<?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>167224</bug_id>
          
          <creation_ts>2017-01-19 19:02:20 -0800</creation_ts>
          <short_desc>Remove PassRefPtr from &quot;page&quot; directory of WebCore, also deploy references</short_desc>
          <delta_ts>2017-01-23 09:42:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>167308</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>achristensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1268306</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-19 19:02:20 -0800</bug_when>
    <thetext>Remove PassRefPtr from &quot;page&quot; directory of WebCore, also deploy references</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268307</commentid>
    <comment_count>1</comment_count>
      <attachid>299300</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-19 19:03:55 -0800</bug_when>
    <thetext>Created attachment 299300
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268325</commentid>
    <comment_count>2</comment_count>
      <attachid>299305</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-19 19:47:56 -0800</bug_when>
    <thetext>Created attachment 299305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268332</commentid>
    <comment_count>3</comment_count>
      <attachid>299305</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-01-19 20:31:38 -0800</bug_when>
    <thetext>Comment on attachment 299305
Patch

Attachment 299305 did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/2918133

Number of test failures exceeded the failure limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268333</commentid>
    <comment_count>4</comment_count>
      <attachid>299306</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-01-19 20:31:41 -0800</bug_when>
    <thetext>Created attachment 299306
Archive of layout-test-results from ews103 for mac-elcapitan

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews103  Port: mac-elcapitan  Platform: Mac OS X 10.11.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268336</commentid>
    <comment_count>5</comment_count>
      <attachid>299305</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-01-19 20:34:26 -0800</bug_when>
    <thetext>Comment on attachment 299305
Patch

Attachment 299305 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/2918134

Number of test failures exceeded the failure limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268337</commentid>
    <comment_count>6</comment_count>
      <attachid>299309</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-01-19 20:34:31 -0800</bug_when>
    <thetext>Created attachment 299309
Archive of layout-test-results from ews107 for mac-elcapitan-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews107  Port: mac-elcapitan-wk2  Platform: Mac OS X 10.11.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268338</commentid>
    <comment_count>7</comment_count>
      <attachid>299305</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-01-19 20:35:01 -0800</bug_when>
    <thetext>Comment on attachment 299305
Patch

Attachment 299305 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/2918128

Number of test failures exceeded the failure limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268339</commentid>
    <comment_count>8</comment_count>
      <attachid>299310</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-01-19 20:35:05 -0800</bug_when>
    <thetext>Created attachment 299310
Archive of layout-test-results from ews115 for mac-elcapitan

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews115  Port: mac-elcapitan  Platform: Mac OS X 10.11.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268379</commentid>
    <comment_count>9</comment_count>
      <attachid>299326</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-19 23:30:38 -0800</bug_when>
    <thetext>Created attachment 299326
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268381</commentid>
    <comment_count>10</comment_count>
      <attachid>299328</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-19 23:42:08 -0800</bug_when>
    <thetext>Created attachment 299328
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268706</commentid>
    <comment_count>11</comment_count>
      <attachid>299420</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-20 19:48:58 -0800</bug_when>
    <thetext>Created attachment 299420
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268767</commentid>
    <comment_count>12</comment_count>
      <attachid>299435</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-21 10:59:24 -0800</bug_when>
    <thetext>Created attachment 299435
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268783</commentid>
    <comment_count>13</comment_count>
      <attachid>299442</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-21 13:44:15 -0800</bug_when>
    <thetext>Created attachment 299442
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268787</commentid>
    <comment_count>14</comment_count>
      <attachid>299444</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-21 13:54:57 -0800</bug_when>
    <thetext>Created attachment 299444
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268815</commentid>
    <comment_count>15</comment_count>
      <attachid>299451</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-21 18:28:02 -0800</bug_when>
    <thetext>Created attachment 299451
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268839</commentid>
    <comment_count>16</comment_count>
      <attachid>299457</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-21 22:04:58 -0800</bug_when>
    <thetext>Created attachment 299457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268875</commentid>
    <comment_count>17</comment_count>
      <attachid>299465</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-22 02:02:29 -0800</bug_when>
    <thetext>Created attachment 299465
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268876</commentid>
    <comment_count>18</comment_count>
      <attachid>299465</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-01-22 03:11:23 -0800</bug_when>
    <thetext>Comment on attachment 299465
Patch

Attachment 299465 did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/2929738

New failing tests:
media/audio-concurrent-supported.html
imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268877</commentid>
    <comment_count>19</comment_count>
      <attachid>299466</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-01-22 03:11:27 -0800</bug_when>
    <thetext>Created attachment 299466
Archive of layout-test-results from ews100 for mac-elcapitan

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews100  Port: mac-elcapitan  Platform: Mac OS X 10.11.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268915</commentid>
    <comment_count>20</comment_count>
      <attachid>299479</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-22 12:55:18 -0800</bug_when>
    <thetext>Created attachment 299479
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268921</commentid>
    <comment_count>21</comment_count>
      <attachid>299479</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-01-22 14:02:54 -0800</bug_when>
    <thetext>Comment on attachment 299479
Patch

Attachment 299479 did not pass mac-ews (mac):
Output: http://webkit-queues.webkit.org/results/2931902

New failing tests:
imported/w3c/web-platform-tests/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268922</commentid>
    <comment_count>22</comment_count>
      <attachid>299483</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-01-22 14:02:57 -0800</bug_when>
    <thetext>Created attachment 299483
Archive of layout-test-results from ews102 for mac-elcapitan

The attached test failures were seen while running run-webkit-tests on the mac-ews.
Bot: ews102  Port: mac-elcapitan  Platform: Mac OS X 10.11.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268943</commentid>
    <comment_count>23</comment_count>
      <attachid>299489</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-22 16:54:59 -0800</bug_when>
    <thetext>Created attachment 299489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268955</commentid>
    <comment_count>24</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-22 19:42:49 -0800</bug_when>
    <thetext>Finally, passing all the EWS tests! Now I need a reviewer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268965</commentid>
    <comment_count>25</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-01-22 20:38:47 -0800</bug_when>
    <thetext>(In reply to comment #24)
&gt; Finally, passing all the EWS tests! Now I need a reviewer.

Looking right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268976</commentid>
    <comment_count>26</comment_count>
      <attachid>299489</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-01-22 21:17:04 -0800</bug_when>
    <thetext>Comment on attachment 299489
Patch

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

r=me

&gt; Source/WebCore/loader/FrameLoader.cpp:1856
&gt; +        if (auto* page = m_frame.page())

Why did we drop the m_frame.document()-&gt;doctype() null check? It seems we now call didReceiveDocType() even if we have no doctype.

&gt; Source/WebCore/page/DebugPageOverlays.cpp:146
&gt; +RefPtr&lt;RegionOverlay&gt; RegionOverlay::create(MainFrame&amp; frame, DebugPageOverlays::RegionType regionType)

Can this return a Ref? The return nullptr below seems useless since the switch handles all enum values.

&gt; Source/WebCore/page/DragController.cpp:198
&gt;          RefPtr&lt;DataTransfer&gt; dataTransfer = DataTransfer::createForDragAndDrop(policy, dragData);

Should be a Ref&lt;&gt; or auto. createForDragAndDrop() returns a Ref&lt;&gt;

&gt; Source/WebCore/page/DragController.cpp:228
&gt;              RefPtr&lt;DataTransfer&gt; dataTransfer = DataTransfer::createForDragAndDrop(DataTransferAccessPolicy::Readable, dragData);

Should be a Ref&lt;&gt; or auto. createForDragAndDrop() returns a Ref&lt;&gt;

&gt; Source/WebCore/page/PerformanceUserTiming.cpp:92
&gt; +    RefPtr&lt;PerformanceEntry&gt; entry = WTFMove(performanceEntry);

Why use a RefPtr here? Can&apos;t we use a Ref&lt;&gt; here and releaseNonNull() below?

&gt; Source/WebKit/win/WebView.cpp:5856
&gt; +        m_page-&gt;focusController().setFocusedElement(nullptr, m_page-&gt;focusController().focusedOrMainFrame());

Why this change?

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:182
&gt; +void WebChromeClient::elementDidFocus(WebCore::Element&amp; element)

No need for WebCore::

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:187
&gt; +void WebChromeClient::elementDidBlur(WebCore::Element&amp; element)

No need for WebCore::</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268979</commentid>
    <comment_count>27</comment_count>
      <attachid>299489</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-22 22:04:38 -0800</bug_when>
    <thetext>Comment on attachment 299489
Patch

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

Thanks for the review.

&gt;&gt; Source/WebCore/loader/FrameLoader.cpp:1856
&gt;&gt; +        if (auto* page = m_frame.page())
&gt; 
&gt; Why did we drop the m_frame.document()-&gt;doctype() null check? It seems we now call didReceiveDocType() even if we have no doctype.

The other call sites for didReceiveDocType, in Document::childrenChanged and Document::updateViewportArguments, are both unconditional. This was the only one checking for a doctype. And if you look at the implementation, didReceiveDocType will call didReceiveMobileDocType with a boolean that correctly is based on whether a doctype is present as well as its contents.

I made this call site for loading from a cached page consistent with the other call sites, and I think it is likely a progression even though I did not create a new test case.

&gt;&gt; Source/WebCore/page/DebugPageOverlays.cpp:146
&gt;&gt; +RefPtr&lt;RegionOverlay&gt; RegionOverlay::create(MainFrame&amp; frame, DebugPageOverlays::RegionType regionType)
&gt; 
&gt; Can this return a Ref? The return nullptr below seems useless since the switch handles all enum values.

Sure. It’s local to this file. It’s sometimes a pain to make something with a switch return a Ref because we have to write the unreachable code to compile correctly with our various compilers, but I will do that.

&gt;&gt; Source/WebCore/page/DragController.cpp:198
&gt;&gt;          RefPtr&lt;DataTransfer&gt; dataTransfer = DataTransfer::createForDragAndDrop(policy, dragData);
&gt; 
&gt; Should be a Ref&lt;&gt; or auto. createForDragAndDrop() returns a Ref&lt;&gt;

OK, done.

&gt;&gt; Source/WebCore/page/DragController.cpp:228
&gt;&gt;              RefPtr&lt;DataTransfer&gt; dataTransfer = DataTransfer::createForDragAndDrop(DataTransferAccessPolicy::Readable, dragData);
&gt; 
&gt; Should be a Ref&lt;&gt; or auto. createForDragAndDrop() returns a Ref&lt;&gt;

OK, done.

&gt;&gt; Source/WebCore/page/PerformanceUserTiming.cpp:92
&gt;&gt; +    RefPtr&lt;PerformanceEntry&gt; entry = WTFMove(performanceEntry);
&gt; 
&gt; Why use a RefPtr here? Can&apos;t we use a Ref&lt;&gt; here and releaseNonNull() below?

I am going to just leave this one alone for now. Changing this to a Ref would make the Vector definition below tricky. And, also, this code is disabled on Mac. I’d be fine if someone wants to come refine this later, but I prefer not to do that right now.

&gt;&gt; Source/WebKit/win/WebView.cpp:5856
&gt;&gt; +        m_page-&gt;focusController().setFocusedElement(nullptr, m_page-&gt;focusController().focusedOrMainFrame());
&gt; 
&gt; Why this change?

I changed setFocusedElement to take a reference for the frame, not a pointer. I could have kept it taking a pointer just for this one Windows-only code path, but I prefer not to. No code for any other platform needs to pass null for the frame; I do not think Windows needs to.

In fact, looking at it further, I think this is unused code on Windows. It’s in IWebViewPrivate.idl so it was exposed, probably for Safari on Windows, but I bet it is unused now and someone working on Windows can just delete this or perhaps empty out the function and make it do nothing.

&gt;&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:182
&gt;&gt; +void WebChromeClient::elementDidFocus(WebCore::Element&amp; element)
&gt; 
&gt; No need for WebCore::

Took care of this. There were lots of other unneeded WebCore prefixes in this file; removed those too.

&gt;&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebChromeClient.cpp:187
&gt;&gt; +void WebChromeClient::elementDidBlur(WebCore::Element&amp; element)
&gt; 
&gt; No need for WebCore::

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268992</commentid>
    <comment_count>28</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2017-01-22 22:25:41 -0800</bug_when>
    <thetext>Committed r211033: &lt;http://trac.webkit.org/changeset/211033&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1269077</commentid>
    <comment_count>29</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-01-23 09:42:15 -0800</bug_when>
    <thetext>iOS build fix: &lt;http://trac.webkit.org/changeset/211039&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299300</attachid>
            <date>2017-01-19 19:03:55 -0800</date>
            <delta_ts>2017-01-19 19:47:51 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167224-20170119190203.patch</filename>
            <type>text/plain</type>
            <size>287146</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwOTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0RPTVdpbmRvd0ZldGNoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCmluZGV4IGFkYWRhY2Q4M2MyNjBjZmE5ZDc2OTlkMzRm
NmE0YmVjOTFkNjFmMDYuLmM1OWQzNjU2YTBjMjEwN2FhOWRhNzZkZjFhNTczN2RlZmY5ZjUyZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3Bw
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNiBDYW5vbiBJbmMuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsMTYgKzMzLDE3IEBACiAjaWYgRU5B
QkxFKEZFVENIX0FQSSkKIAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkZldGNo
UmVxdWVzdC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRmV0Y2hSZXNwb25z
ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgRE9NV2luZG93RmV0Y2g6OmZldGNo
KERPTVdpbmRvdyYgd2luZG93LCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QsIFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBpZiAoIXdpbmRvdy5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCisgICAgYXV0byogZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQoKTsKKyAgICBpZiAo
IWRvY3VtZW50KQogICAgICAgICByZXR1cm47Ci0gICAgRmV0Y2hSZXNwb25zZTo6ZmV0Y2goKndp
bmRvdy5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHJlcXVlc3QsIFdURk1vdmUocHJvbWlzZSkp
OworICAgIEZldGNoUmVzcG9uc2U6OmZldGNoKCpkb2N1bWVudCwgcmVxdWVzdCwgV1RGTW92ZShw
cm9taXNlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcAppbmRleCBl
NTQ4OWZjYjU0MGM5Njk0YWU0Mzc1OTY4M2RlOWFjZjAxODI0YWQ5Li4zZGNiNTYwMzQzZWI1YWI5
NDUxMWEzOTBlYjE5MTFiMzljYjBmMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwCkBAIC0yMDQsNyArMjA0LDcg
QEAgdm9pZCBEYXRhYmFzZUNvbnRleHQ6OmRhdGFiYXNlRXhjZWVkZWRRdW90YShjb25zdCBTdHJp
bmcmIG5hbWUsIERhdGFiYXNlRGV0YWlscwogICAgIGlmIChpczxEb2N1bWVudD4oKm1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCkpIHsKICAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNh
c3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgICAgICBpZiAoUGFn
ZSogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkKLSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNs
aWVudCgpLmV4Y2VlZGVkRGF0YWJhc2VRdW90YShkb2N1bWVudC5mcmFtZSgpLCBuYW1lLCBkZXRh
aWxzKTsKKyAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV4Y2VlZGVkRGF0YWJh
c2VRdW90YSgqZG9jdW1lbnQuZnJhbWUoKSwgbmFtZSwgZGV0YWlscyk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNXb3JrZXJH
bG9iYWxTY29wZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5k
ZXggNDE2YjE4MzRiZDhhYTYzNGI4YzdiYzJjZWU3ZjA5NDZiYzZiYjA3ZS4uMDMyMGY5NTU2YjU3
YjJiMDM3MjkxMmIwOGY1MjkyZWI0Zjg2ZWQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0KQEAgLTM3MjksNyArMzcyOSw3IEBAIC0gKHZvaWQpYWNjZXNzaWJpbGl0
eVNob3dDb250ZXh0TWVudQogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHBhZ2UtPmNvbnRl
eHRNZW51Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVudUF0KCZwYWdlLT5tYWluRnJhbWUoKSwg
cmVjdC5jZW50ZXIoKSk7CisgICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0Nv
bnRleHRNZW51QXQocGFnZS0+bWFpbkZyYW1lKCksIHJlY3QuY2VudGVyKCkpOwogfQogCiAtICh2
b2lkKWFjY2Vzc2liaWxpdHlTY3JvbGxUb1Zpc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCBhM2Y2MmU1NjQ0MTFmMTgwN2Jm
ZjA5NWY1ZGI5Y2E1MmY2ZTZjZGU0Li5hZTdmZThjMTdmMGRiY2QxNWI3MDU0ODZkNjQyYTQ1OGFl
NTdiY2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwCkBAIC0xNzgsNyArMTc4LDcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJv
cGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnQKICAg
ICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgIC8vIERldGVjdCB3aGVuIHdlJ3JlIGdldHRpbmcgdGhl
IHByb3BlcnR5ICdzaG93TW9kYWxEaWFsb2cnLCB0aGlzIGlzIGRpc2FibGVkLCBhbmQgaGFzIGl0
cyBvcmlnaW5hbCB2YWx1ZS4KICAgICAgICAgYm9vbCBpc1Nob3dNb2RhbERpYWxvZ0FuZFNob3Vs
ZEhpZGUgPSBwcm9wZXJ0eU5hbWUgPT0gc3RhdGUtPnByb3BlcnR5TmFtZXMoKS5zaG93TW9kYWxE
aWFsb2cKLSAgICAgICAgICAgICYmICFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhmcmFt
ZSkKKyAgICAgICAgICAgICYmICFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZygqZnJhbWUp
CiAgICAgICAgICAgICAmJiBzbG90LmlzVmFsdWUoKSAmJiBpc0hvc3RGdW5jdGlvbihzbG90Lmdl
dFZhbHVlKHN0YXRlLCBwcm9wZXJ0eU5hbWUpLCBqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25T
aG93TW9kYWxEaWFsb2cpOwogICAgICAgICAvLyBVbmxlc3Mgd2UncmUgaW4gdGhlIHNob3dNb2Rh
bERpYWxvZyBzcGVjaWFsIGNhc2UsIHdlJ3JlIGRvbmUuCiAgICAgICAgIGlmICghaXNTaG93TW9k
YWxEaWFsb2dBbmRTaG91bGRIaWRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMDgxNjBh
ZGQzYTNhM2RlOWNkNDg3ZmQ0MTQxMzgyMTYxYzkxZjE5Yy4uMWEwMzQzOWYwYTRmZGQ0OWZlOTkx
NGJjZWVlOGRhM2IxMzBjM2UwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NDgsMTMg
Kzg0OCwxMSBAQCB2b2lkIERvY3VtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFu
Z2UmIGNoYW5nZSkKIHsKICAgICBDb250YWluZXJOb2RlOjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdl
KTsKIAotI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBGSVhNRTogQ2hyb21lOjpkaWRSZWNlaXZl
RG9jVHlwZSgpIHVzZWQgdG8gYmUgY2FsbGVkIG9ubHkgd2hlbiB0aGUgZG9jdHlwZSBjaGFuZ2Vk
LiBXZSBuZWVkIHRvIGNoZWNrIHRoZQogICAgIC8vIGltcGFjdCBvZiBjYWxsaW5nIHRoaXMgc3lz
dGVtYXRpY2FsbHkuIElmIHRoZSBvdmVyaGVhZCBpcyBuZWdsaWdpYmxlLCB3ZSBuZWVkIHRvIHJl
bmFtZSBkaWRSZWNlaXZlRG9jVHlwZSwKICAgICAvLyBvdGhlcndpc2UsIHdlIG5lZWQgdG8gZGV0
ZWN0IHRoZSBkb2MgdHlwZSBjaGFuZ2VzIGJlZm9yZSB1cGRhdGluZyB0aGUgdmlld3BvcnQuCiAg
ICAgaWYgKFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgp
LmRpZFJlY2VpdmVEb2NUeXBlKGZyYW1lKCkpOwotI2VuZGlmCisgICAgICAgIHBhZ2UtPmNocm9t
ZSgpLmRpZFJlY2VpdmVEb2NUeXBlKCpmcmFtZSgpKTsKIAogICAgIEVsZW1lbnQqIG5ld0RvY3Vt
ZW50RWxlbWVudCA9IGNoaWxkcmVuT2ZUeXBlPEVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpOwogICAg
IGlmIChuZXdEb2N1bWVudEVsZW1lbnQgPT0gbV9kb2N1bWVudEVsZW1lbnQpCkBAIC0zMjE4LDkg
KzMyMTYsNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVWaWV3cG9ydEFyZ3VtZW50cygpCiAgICAg
ICAgIG1fZGlkRGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNDaGFuZ2VkID0gdHJ1ZTsKICNlbmRp
ZgogICAgICAgICBwYWdlKCktPmNocm9tZSgpLmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlk
Q2hhbmdlKG1fdmlld3BvcnRBcmd1bWVudHMpOwotI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAg
cGFnZSgpLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZShmcmFtZSgpKTsKLSNlbmRpZgorICAg
ICAgICBwYWdlKCktPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKCpmcmFtZSgpKTsKICAgICB9
CiB9CiAKQEAgLTM2NDIsNyArMzYzOCw3IEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVt
ZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgRm9jCiAgICAg
ICAgICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKm9sZEZvY3VzZWRFbGVtZW50KSkKICAg
ICAgICAgICAgICAgICBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqb2xkRm9jdXNlZEVsZW1l
bnQpLmVuZEVkaXRpbmcoKTsKICAgICAgICAgICAgIGlmIChwYWdlKCkpCi0gICAgICAgICAgICAg
ICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkQmx1cihvbGRGb2N1c2VkRWxl
bWVudC5nZXQoKSk7CisgICAgICAgICAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5l
bGVtZW50RGlkQmx1cigqb2xkRm9jdXNlZEVsZW1lbnQpOwogICAgICAgICAgICAgQVNTRVJUKCFt
X2ZvY3VzZWRFbGVtZW50KTsKICAgICAgICAgfQogCkBAIC00MDAwLDcgKzM5OTYsNyBAQCB2b2lk
IERvY3VtZW50OjpjcmVhdGVET01XaW5kb3coKQogICAgIEFTU0VSVChtX2ZyYW1lKTsKICAgICBB
U1NFUlQoIW1fZG9tV2luZG93KTsKIAotICAgIG1fZG9tV2luZG93ID0gRE9NV2luZG93OjpjcmVh
dGUodGhpcyk7CisgICAgbV9kb21XaW5kb3cgPSBET01XaW5kb3c6OmNyZWF0ZSgqdGhpcyk7CiAK
ICAgICBBU1NFUlQobV9kb21XaW5kb3ctPmRvY3VtZW50KCkgPT0gdGhpcyk7CiAgICAgQVNTRVJU
KG1fZG9tV2luZG93LT5mcmFtZSgpID09IG1fZnJhbWUpOwpAQCAtNDAxNSw3ICs0MDExLDcgQEAg
dm9pZCBEb2N1bWVudDo6dGFrZURPTVdpbmRvd0Zyb20oRG9jdW1lbnQqIGRvY3VtZW50KQogICAg
IEFTU0VSVChwYWdlQ2FjaGVTdGF0ZSgpID09IE5vdEluUGFnZUNhY2hlKTsKIAogICAgIG1fZG9t
V2luZG93ID0gV1RGTW92ZShkb2N1bWVudC0+bV9kb21XaW5kb3cpOwotICAgIG1fZG9tV2luZG93
LT5kaWRTZWN1cmVUcmFuc2l0aW9uVG8odGhpcyk7CisgICAgbV9kb21XaW5kb3ctPmRpZFNlY3Vy
ZVRyYW5zaXRpb25UbygqdGhpcyk7CiAKICAgICBBU1NFUlQobV9kb21XaW5kb3ctPmRvY3VtZW50
KCkgPT0gdGhpcyk7CiAgICAgQVNTRVJUKG1fZG9tV2luZG93LT5mcmFtZSgpID09IG1fZnJhbWUp
OwpAQCAtNTU3MywxMiArNTU2OSwxMiBAQCB2b2lkIERvY3VtZW50OjpyZXF1ZXN0RnVsbFNjcmVl
bkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgRnVsbFNjcmVlbkNoZWNrVHlwZQogICAgICAg
ICAgICAgYnJlYWs7CiAKICAgICAgICAgYm9vbCBoYXNLZXlib2FyZEFjY2VzcyA9IHRydWU7Ci0g
ICAgICAgIGlmICghcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0c0Z1bGxTY3JlZW5G
b3JFbGVtZW50KGVsZW1lbnQsIGhhc0tleWJvYXJkQWNjZXNzKSkgeworICAgICAgICBpZiAoIXBh
Z2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCgqZWxl
bWVudCwgaGFzS2V5Ym9hcmRBY2Nlc3MpKSB7CiAgICAgICAgICAgICAvLyBUaGUgbmV3IGZ1bGwg
c2NyZWVuIEFQSSBkb2VzIG5vdCBhY2NlcHQgYSAiZmxhZ3MiIHBhcmFtZXRlciwgc28gZmFsbCBi
YWNrIHRvIGRpc2FsbG93aW5nCiAgICAgICAgICAgICAvLyBrZXlib2FyZCBpbnB1dCBpZiB0aGUg
Y2hyb21lIGNsaWVudCByZWZ1c2VzIHRvIGFsbG93IGtleWJvYXJkIGlucHV0LgogICAgICAgICAg
ICAgaGFzS2V5Ym9hcmRBY2Nlc3MgPSBmYWxzZTsKIAotICAgICAgICAgICAgaWYgKCFwYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCwg
aGFzS2V5Ym9hcmRBY2Nlc3MpKQorICAgICAgICAgICAgaWYgKCFwYWdlKCktPmNocm9tZSgpLmNs
aWVudCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoKmVsZW1lbnQsIGhhc0tleWJvYXJk
QWNjZXNzKSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC01NjMxLDcg
KzU2MjcsNyBAQCB2b2lkIERvY3VtZW50OjpyZXF1ZXN0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxl
bWVudCogZWxlbWVudCwgRnVsbFNjcmVlbkNoZWNrVHlwZQogICAgICAgICAvLyA1LiBSZXR1cm4s
IGFuZCBydW4gdGhlIHJlbWFpbmluZyBzdGVwcyBhc3luY2hyb25vdXNseS4KICAgICAgICAgLy8g
Ni4gT3B0aW9uYWxseSwgcGVyZm9ybSBzb21lIGFuaW1hdGlvbi4KICAgICAgICAgbV9hcmVLZXlz
RW5hYmxlZEluRnVsbFNjcmVlbiA9IGhhc0tleWJvYXJkQWNjZXNzOwotICAgICAgICBwYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cisg
ICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVu
dCgqZWxlbWVudCk7CiAKICAgICAgICAgLy8gNy4gT3B0aW9uYWxseSwgZGlzcGxheSBhIG1lc3Nh
Z2UgaW5kaWNhdGluZyBob3cgdGhlIHVzZXIgY2FuIGV4aXQgZGlzcGxheWluZyB0aGUgY29udGV4
dCBvYmplY3QgZnVsbHNjcmVlbi4KICAgICAgICAgcmV0dXJuOwpAQCAtNTcyMywxMiArNTcxOSwx
MiBAQCB2b2lkIERvY3VtZW50Ojp3ZWJraXRFeGl0RnVsbHNjcmVlbigpCiAgICAgLy8gT25seSBl
eGl0IG91dCBvZiBmdWxsIHNjcmVlbiB3aW5kb3cgbW9kZSBpZiB0aGVyZSBhcmUgbm8gcmVtYWlu
aW5nIGVsZW1lbnRzIGluIHRoZSAKICAgICAvLyBmdWxsIHNjcmVlbiBzdGFjay4KICAgICBpZiAo
IW5ld1RvcCkgewotICAgICAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmV4aXRGdWxsU2Ny
ZWVuRm9yRWxlbWVudChtX2Z1bGxTY3JlZW5FbGVtZW50LmdldCgpKTsKKyAgICAgICAgcGFnZSgp
LT5jaHJvbWUoKS5jbGllbnQoKS5leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoKm1fZnVsbFNjcmVl
bkVsZW1lbnQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgLy8gT3RoZXJ3aXNlLCBu
b3RpZnkgdGhlIGNocm9tZSBvZiB0aGUgbmV3IGZ1bGwgc2NyZWVuIGVsZW1lbnQuCi0gICAgcGFn
ZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KG5ld1RvcCk7
CisgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KCpuZXdUb3ApOwogfQogCiBib29sIERvY3VtZW50Ojp3ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggODhlM2U5OTMwMWE3MTlkZTI1NDA4M2E5
MzI2YTNiYWNmM2VjMzhmYy4uZTkwNGI5OGU3NzNhMzNjNzkxMjk4NDgwYzJiMTI4NTVhMDcwNDAx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjM0OCw3ICsyMzQ4LDcgQEAgdm9pZCBFbGVt
ZW50Ojpmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24g
ZGlyZWN0aW9uKQogCiAgICAgaWYgKGRvY3VtZW50KCkuZm9jdXNlZEVsZW1lbnQoKSA9PSB0aGlz
KSB7CiAgICAgICAgIGlmIChkb2N1bWVudCgpLnBhZ2UoKSkKLSAgICAgICAgICAgIGRvY3VtZW50
KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkUmVmb2N1cyh0aGlzKTsKKyAg
ICAgICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlk
UmVmb2N1cygqdGhpcyk7CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIzNzEsNyArMjM3
MSw3IEBAIHZvaWQgRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24s
IEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKICAgICAgICAgLy8gSWYgYSBmb2N1cyBldmVudCBo
YW5kbGVyIGNoYW5nZXMgdGhlIGZvY3VzIHRvIGEgZGlmZmVyZW50IG5vZGUgaXQKICAgICAgICAg
Ly8gZG9lcyBub3QgbWFrZSBzZW5zZSB0byBjb250aW51ZSBhbmQgdXBkYXRlIGFwcGVhcmVuY2Uu
CiAgICAgICAgIHByb3RlY3QgPSB0aGlzOwotICAgICAgICBpZiAoIXBhZ2UtPmZvY3VzQ29udHJv
bGxlcigpLnNldEZvY3VzZWRFbGVtZW50KHRoaXMsIGRvY3VtZW50KCkuZnJhbWUoKSwgZGlyZWN0
aW9uKSkKKyAgICAgICAgaWYgKCFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxl
bWVudCh0aGlzLCAqZG9jdW1lbnQoKS5mcmFtZSgpLCBkaXJlY3Rpb24pKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMjQ0MSw3ICsyNDQxLDcgQEAgdm9pZCBFbGVtZW50OjpibHVy
KCkKICAgICBjYW5jZWxGb2N1c0FwcGVhcmFuY2VVcGRhdGUoKTsKICAgICBpZiAodHJlZVNjb3Bl
KCkuZm9jdXNlZEVsZW1lbnRJblNjb3BlKCkgPT0gdGhpcykgewogICAgICAgICBpZiAoRnJhbWUq
IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpKQotICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+
Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQoMCwgZnJhbWUpOworICAgICAgICAg
ICAgZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQodGhp
cywgKmZyYW1lKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZG9jdW1lbnQoKS5zZXRGb2N1
c2VkRWxlbWVudChudWxscHRyKTsKICAgICB9CkBAIC0yNDY0LDcgKzI0NjQsNyBAQCB2b2lkIEVs
ZW1lbnQ6OmRpc3BhdGNoRm9jdXNPdXRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgUmVmUHRyPEVsZW1lbgogdm9pZCBFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQoUmVmUHRy
PEVsZW1lbnQ+JiYgb2xkRm9jdXNlZEVsZW1lbnQsIEZvY3VzRGlyZWN0aW9uKQogewogICAgIGlm
IChkb2N1bWVudCgpLnBhZ2UoKSkKLSAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgp
LmNsaWVudCgpLmVsZW1lbnREaWRGb2N1cyh0aGlzKTsKKyAgICAgICAgZG9jdW1lbnQoKS5wYWdl
KCktPmNocm9tZSgpLmNsaWVudCgpLmVsZW1lbnREaWRGb2N1cygqdGhpcyk7CiAKICAgICBFdmVu
dERpc3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQoKnRoaXMsIEZvY3VzRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuZm9jdXNFdmVudCwgZmFsc2UsIGZhbHNlLCBkb2N1bWVudCgpLmRlZmF1bHRWaWV3
KCksIDAsIFdURk1vdmUob2xkRm9jdXNlZEVsZW1lbnQpKSk7CiB9CkBAIC0yNDcyLDcgKzI0NzIs
NyBAQCB2b2lkIEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudChSZWZQdHI8RWxlbWVudD4mJiBv
bGRGb2N1c2VkRWxlbWVudCwgRm9jdXNEaXJlYwogdm9pZCBFbGVtZW50OjpkaXNwYXRjaEJsdXJF
dmVudChSZWZQdHI8RWxlbWVudD4mJiBuZXdGb2N1c2VkRWxlbWVudCkKIHsKICAgICBpZiAoZG9j
dW1lbnQoKS5wYWdlKCkpCi0gICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGll
bnQoKS5lbGVtZW50RGlkQmx1cih0aGlzKTsKKyAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNo
cm9tZSgpLmNsaWVudCgpLmVsZW1lbnREaWRCbHVyKCp0aGlzKTsKIAogICAgIEV2ZW50RGlzcGF0
Y2hlcjo6ZGlzcGF0Y2hFdmVudCgqdGhpcywgRm9jdXNFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5ibHVyRXZlbnQsIGZhbHNlLCBmYWxzZSwgZG9jdW1lbnQoKS5kZWZhdWx0VmlldygpLCAwLCBX
VEZNb3ZlKG5ld0ZvY3VzZWRFbGVtZW50KSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGJiM2Fi
OTllNjFjNWJkYzEwNDNmM2ViYzRlMGY3OTZhMmRjYmQ4YjcuLjgyNjNiMTA5Y2YwNzAxMzk3Nzgx
Nzg2ZjVlOTM2ZTYzM2JmYjJiZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTIyNTMsNyArMjI1Myw3
IEBAIHZvaWQgTm9kZTo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiAgICAgfSBl
bHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmNvbnRleHRtZW51RXZlbnQpIHsKICAg
ICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKICAgICAgICAgICAg
IGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgICAgICAgICBwYWdlLT5j
b250ZXh0TWVudUNvbnRyb2xsZXIoKS5oYW5kbGVDb250ZXh0TWVudUV2ZW50KCZldmVudCk7Cisg
ICAgICAgICAgICAgICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuaGFuZGxlQ29udGV4
dE1lbnVFdmVudChldmVudCk7CiAjZW5kaWYKICAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBl
dmVudE5hbWVzKCkudGV4dElucHV0RXZlbnQpIHsKICAgICAgICAgaWYgKGlzPFRleHRFdmVudD4o
ZXZlbnQpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1h
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAppbmRleCBh
Y2YyMjY4YTdlNzkzMDkyN2NlY2JiMTNkMjRkNjRjZmFkYmY2ZGRlLi4wMWYwNzFjY2FkY2RmMTk2
NDFmMjg3Nzc0MTlkYjQ2Y2I1NDBjNjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL0VkaXRvckNvbW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9y
Q29tbWFuZC5jcHAKQEAgLTkzMCw3ICs5MzAsNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlUHJpbnQo
RnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZwog
ICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgcGFnZS0+Y2hyb21lKCkucHJpbnQoJmZyYW1lKTsKKyAgICBwYWdl
LT5jaHJvbWUoKS5wcmludChmcmFtZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKaW5kZXggNjc1OWZmMTc3ZmU3NjcxY2Ji
MTY5MzVlYjM2MTBkMmE1Njk3Yjc4Ni4uYWM1ZDBiZmFkZThiZGViMDE2NWI1YmY2NGVlYjQ2ZTRi
ODM1ZTEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAg
LTIxNTcsNyArMjE1Nyw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldEZvY3VzZWRFbGVtZW50
SWZOZWVkZWQoKQogICAgIGJvb2wgY2FyZXRCcm93c2luZyA9IG1fZnJhbWUtPnNldHRpbmdzKCku
Y2FyZXRCcm93c2luZ0VuYWJsZWQoKTsKICAgICBpZiAoY2FyZXRCcm93c2luZykgewogICAgICAg
ICBpZiAoRWxlbWVudCogYW5jaG9yID0gZW5jbG9zaW5nQW5jaG9yRWxlbWVudChtX3NlbGVjdGlv
bi5iYXNlKCkpKSB7Ci0gICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxl
cigpLnNldEZvY3VzZWRFbGVtZW50KGFuY2hvciwgbV9mcmFtZSk7CisgICAgICAgICAgICBtX2Zy
YW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KGFuY2hvciwg
Km1fZnJhbWUpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtMjE2
OSwxNiArMjE2OSwxNiBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRGb2N1c2VkRWxlbWVudElm
TmVlZGVkKCkKICAgICAgICAgICAgIC8vIHNvIGFkZCB0aGUgIWlzRnJhbWVFbGVtZW50IGNoZWNr
IGhlcmUuIFRoZXJlJ3MgcHJvYmFibHkgYSBiZXR0ZXIgd2F5IHRvIG1ha2UgdGhpcwogICAgICAg
ICAgICAgLy8gd29yayBpbiB0aGUgbG9uZyB0ZXJtLCBidXQgdGhpcyBpcyB0aGUgc2FmZXN0IGZp
eCBhdCB0aGlzIHRpbWUuCiAgICAgICAgICAgICBpZiAodGFyZ2V0LT5pc01vdXNlRm9jdXNhYmxl
KCkgJiYgIWlzRnJhbWVFbGVtZW50KHRhcmdldCkpIHsKLSAgICAgICAgICAgICAgICBtX2ZyYW1l
LT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KHRhcmdldCwgbV9m
cmFtZSk7CisgICAgICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIo
KS5zZXRGb2N1c2VkRWxlbWVudCh0YXJnZXQsICptX2ZyYW1lKTsKICAgICAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICB0YXJnZXQgPSB0YXJnZXQtPnBhcmVu
dE9yU2hhZG93SG9zdEVsZW1lbnQoKTsKICAgICAgICAgfQotICAgICAgICBtX2ZyYW1lLT5kb2N1
bWVudCgpLT5zZXRGb2N1c2VkRWxlbWVudCgwKTsKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQo
KS0+c2V0Rm9jdXNlZEVsZW1lbnQobnVsbHB0cik7CiAgICAgfQogCiAgICAgaWYgKGNhcmV0QnJv
d3NpbmcpCi0gICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9j
dXNlZEVsZW1lbnQoMCwgbV9mcmFtZSk7CisgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Zm9jdXND
b250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQobnVsbHB0ciwgKm1fZnJhbWUpOwogfQogCiB2
b2lkIERyYWdDYXJldENvbnRyb2xsZXI6OnBhaW50RHJhZ0NhcmV0KEZyYW1lKiBmcmFtZSwgR3Jh
cGhpY3NDb250ZXh0JiBwLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIGNvbnN0IExh
eW91dFJlY3QmIGNsaXBSZWN0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlz
dG9yeS9DYWNoZWRGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1l
LmNwcAppbmRleCAzNjMzOThkNmVmY2MxNGM0YjZiYjc1ZjMxMzg3Y2RkN2U3YzU5OWQxLi5hYzI5
Y2JlMTAyMTJkYTlmYTdkY2E2NDJlYWEyYTVlN2NiMWFlNzAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L0NhY2hlZEZyYW1lLmNwcApAQCAtOTgsOSArOTgsOSBAQCB2b2lkIENhY2hlZEZyYW1lQmFz
ZTo6cmVzdG9yZSgpCiAgICAgZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuZGlkUmVzdG9yZUZyb21Q
YWdlQ2FjaGUoKTsKIAogICAgIC8vIFJlY29uc3RydWN0IHRoZSBGcmFtZVRyZWUuIEFuZCBvcGVu
IHRoZSBjaGlsZCBDYWNoZWRGcmFtZXMgaW4gdGhlaXIgcmVzcGVjdGl2ZSBGcmFtZUxvYWRlcnMu
Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY2hpbGRGcmFtZXMuc2l6ZSgpOyArK2kp
IHsKLSAgICAgICAgZnJhbWUudHJlZSgpLmFwcGVuZENoaWxkKCZtX2NoaWxkRnJhbWVzW2ldLT52
aWV3KCktPmZyYW1lKCkpOwotICAgICAgICBtX2NoaWxkRnJhbWVzW2ldLT5vcGVuKCk7CisgICAg
Zm9yIChhdXRvJiBjaGlsZEZyYW1lIDogbV9jaGlsZEZyYW1lcykgeworICAgICAgICBmcmFtZS50
cmVlKCkuYXBwZW5kQ2hpbGQoY2hpbGRGcmFtZS0+dmlldygpLT5mcmFtZSgpKTsKKyAgICAgICAg
Y2hpbGRGcmFtZS0+b3BlbigpOwogICAgIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTE2Myw3
ICsxNjMsNyBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJhbWUoRnJhbWUmIGZyYW1lKQogICAgIC8v
IDEgLSBXZSByZXVzZSB0aGUgbWFpbiBmcmFtZSwgc28gd2hlbiBpdCBuYXZpZ2F0ZXMgdG8gYSBu
ZXcgcGFnZSBsb2FkIGl0IG5lZWRzIHRvIHN0YXJ0IHdpdGggYSBibGFuayBGcmFtZVRyZWUuCiAg
ICAgLy8gMiAtIEl0J3MgbXVjaCBlYXNpZXIgdG8gZGVzdHJveSBhIENhY2hlZEZyYW1lIHdoaWxl
IGl0IHJlc2lkZXMgaW4gdGhlIFBhZ2VDYWNoZSBpZiBpdCBpcyBkaXNjb25uZWN0ZWQgZnJvbSBp
dHMgcGFyZW50LgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NoaWxkRnJhbWVzLnNp
emUoKTsgKytpKQotICAgICAgICBmcmFtZS50cmVlKCkucmVtb3ZlQ2hpbGQoJm1fY2hpbGRGcmFt
ZXNbaV0tPnZpZXcoKS0+ZnJhbWUoKSk7CisgICAgICAgIGZyYW1lLnRyZWUoKS5yZW1vdmVDaGls
ZChtX2NoaWxkRnJhbWVzW2ldLT52aWV3KCktPmZyYW1lKCkpOwogCiAgICAgaWYgKCFtX2lzTWFp
bkZyYW1lKQogICAgICAgICBmcmFtZS5wYWdlKCktPmRlY3JlbWVudFN1YmZyYW1lQ291bnQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggNWJhMmM5NTRiMmJkODk5
NWJjMGIyYjcyZDJmZmNkMzc5MTkxMDdhNi4uNTBlMWZjYjE0MzcxM2EzMGFjOTE1MzMxM2I1ODkz
MjU3OTBkMjFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlw
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAgLTE1
Niw3ICsxNTYsNyBAQCB2b2lkIENvbG9ySW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2ZW50
KEV2ZW50JiBldmVudCkKIAogICAgIGlmIChDaHJvbWUqIGNocm9tZSA9IHRoaXMtPmNocm9tZSgp
KSB7CiAgICAgICAgIGlmICghbV9jaG9vc2VyKQotICAgICAgICAgICAgbV9jaG9vc2VyID0gY2hy
b21lLT5jcmVhdGVDb2xvckNob29zZXIodGhpcywgdmFsdWVBc0NvbG9yKCkpOworICAgICAgICAg
ICAgbV9jaG9vc2VyID0gY2hyb21lLT5jcmVhdGVDb2xvckNob29zZXIoKnRoaXMsIHZhbHVlQXND
b2xvcigpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9jaG9vc2VyLT5yZWF0dGFjaENv
bG9yQ2hvb3Nlcih2YWx1ZUFzQ29sb3IoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBbmNob3JFbGVtZW50LmNwcAppbmRleCA4MTFlYjBkNWQwNWI2YTZjNzY4ODc4ZDAzZmMzM2Mx
YzI0OTQ2ZmIwLi5iYWViNTc2YjE1NjNlYjMxNTdiYjcyZWNkODdiNzgyNzAwOWVmMzA0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtMTI5LDcgKzEyOSw3
IEBAIGJvb2wgSFRNTEFuY2hvckVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRF
dmVudCYgZXZlbnQpIGNvbnN0CiAgICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIGlmICghZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhhbmRs
ZXIoKS50YWJzVG9MaW5rcygmZXZlbnQpKQorICAgIGlmICghZG9jdW1lbnQoKS5mcmFtZSgpLT5l
dmVudEhhbmRsZXIoKS50YWJzVG9MaW5rcyhldmVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIGlmICghcmVuZGVyZXIoKSAmJiBhbmNlc3RvcnNPZlR5cGU8SFRNTENhbnZhc0VsZW1l
bnQ+KCp0aGlzKS5maXJzdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250
cm9sRWxlbWVudC5jcHAKaW5kZXggZWE4YTNiMzNlMDAyNzgzMmQ2NzBmOWUwOTg3YWNjYThkMzY4
YmFhMi4uNjJjMjg2MTdhZTM1ZGU2NzMyZmZhMDY2MzM4ZmUzMTgxNjU0NmNhOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0zNzAsMTAg
KzM3MCw5IEBAIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25z
dAogCiBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5
Ym9hcmRFdmVudCYgZXZlbnQpIGNvbnN0CiB7Ci0gICAgaWYgKGlzRm9jdXNhYmxlKCkpCi0gICAg
ICAgIGlmIChkb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQo
KS5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS50YWJzVG9BbGxGb3JtQ29udHJvbHMoJmV2ZW50KTsK
LSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzRm9jdXNhYmxlKCkKKyAgICAgICAgJiYg
ZG9jdW1lbnQoKS5mcmFtZSgpCisgICAgICAgICYmIGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRI
YW5kbGVyKCkudGFic1RvQWxsRm9ybUNvbnRyb2xzKGV2ZW50KTsKIH0KIAogYm9vbCBIVE1MRm9y
bUNvbnRyb2xFbGVtZW50Ojppc01vdXNlRm9jdXNhYmxlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCmluZGV4IGQ4YTc5M2UzMGViZjFiYzMzYjFhMzJhMmYy
Y2QxY2Y3YjkxODlkYmMuLmE5ZGI5MDUxOGRlNzEwMGY4NjFhZmNkZGJhNmQyNjc1YTIwZTNiZGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcApAQCAtMTcxLDcgKzE3
MSw3IEBAIGJvb2wgSFRNTFZpZGVvRWxlbWVudDo6c3VwcG9ydHNGdWxsc2NyZWVuKEhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogICAgIC8vIElmIHRoZSBmdWxsIHNjcmVlbiBBUEkgaXMgZW5hYmxlZCBhbmQgaXMgc3VwcG9y
dGVkIGZvciB0aGUgY3VycmVudCBlbGVtZW50CiAgICAgLy8gZG8gbm90IHJlcXVpcmUgdGhhdCB0
aGUgcGxheWVyIGhhcyBhIHZpZGVvIHRyYWNrIHRvIGVudGVyIGZ1bGwgc2NyZWVuLgotICAgIGlm
ICh2aWRlb0Z1bGxzY3JlZW5Nb2RlID09IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxs
c2NyZWVuTW9kZVN0YW5kYXJkICYmIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnN1cHBvcnRzRnVs
bFNjcmVlbkZvckVsZW1lbnQodGhpcywgZmFsc2UpKQorICAgIGlmICh2aWRlb0Z1bGxzY3JlZW5N
b2RlID09IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJk
ICYmIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQo
KnRoaXMsIGZhbHNlKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCmluZGV4IDU4YmQ2
MmEzNjQ0N2YxMTQ5OGMzZDhjOTk1N2YxY2QxZjczYjBlNzcuLjk4YmQ3MmJmZjJkMGRmODA2YWIw
YWJmNTM3YmFlNjkwNzIyODQ4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRv
dy9TcGluQnV0dG9uRWxlbWVudC5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIFNwaW5CdXR0
b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKICAgICAgICAgICAg
ICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLnNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxl
bWVudCh0aGlzKTsKICAgICAgICAgICAgICAgICAgICAgbV9jYXB0dXJpbmcgPSB0cnVlOwogICAg
ICAgICAgICAgICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpKQotICAg
ICAgICAgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkucmVnaXN0ZXJQb3B1cE9wZW5pbmdP
YnNlcnZlcih0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLnJl
Z2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoKnRoaXMpOwogICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIFVwRG93blN0YXRlIG9sZFVwRG93blN0YXRlID0gbV91
cERvd25TdGF0ZTsKQEAgLTIwNSw3ICsyMDUsNyBAQCB2b2lkIFNwaW5CdXR0b25FbGVtZW50Ojpy
ZWxlYXNlQ2FwdHVyZSgpCiAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2V0Q2Fw
dHVyaW5nTW91c2VFdmVudHNFbGVtZW50KG51bGxwdHIpOwogICAgICAgICAgICAgbV9jYXB0dXJp
bmcgPSBmYWxzZTsKICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdl
KCkpCi0gICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkudW5yZWdpc3RlclBvcHVwT3Blbmlu
Z09ic2VydmVyKHRoaXMpOworICAgICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLnVucmVnaXN0
ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcigqdGhpcyk7CiAgICAgICAgIH0KICAgICB9CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRv
bkVsZW1lbnRNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcAppbmRleCBmZDBjM2UzNmYzOTMzNDFkYmRhYTE4YzAz
MWUxYjFlNzQ4N2VmY2M5Li5iYTliYWRmZTU2MmU0YmZlN2Y5ZTE0ZjBhNmI1ZWQxOWI1MGFhM2Fm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9s
c0J1dHRvbkVsZW1lbnRNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21h
Yy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAKQEAgLTExNyw3ICsxMTcsNyBAQCB2
b2lkIEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2
ZW50JiBldmVudCkKICAgICAgICAgaWYgKCFwYWdlKQogICAgICAgICAgICAgcmV0dXJuOwogCi0g
ICAgICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dJbWFnZUNvbnRyb2xzTWVu
dSgmZXZlbnQpOworICAgICAgICBwYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93SW1h
Z2VDb250cm9sc01lbnUoZXZlbnQpOwogICAgICAgICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAppbmRleCAzMTU0N2RiN2FmM2I1M2ZkN2ViNDI0
MWM3MDU0M2Y4ZjRiNjZiMTdlLi43NDk4OGNiNWU2MDQ4NzIwODg5M2IwMzE2MDFjYmE4MjM0YmI5
M2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmNwcApAQCAtMzM5LDggKzMzOSw4IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRIb3N0
OjpzaG93Q29udGV4dE1lbnUoRXZlbnQqIGV2ZW50LCBjb25zdCBWZWN0b3I8Q29udGV4dE1lCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byBtZW51UHJvdmlkZXIgPSBGcm9udGVuZE1l
bnVQcm92aWRlcjo6Y3JlYXRlKHRoaXMsIHsgJnN0YXRlLCBmcm9udGVuZEFwaU9iamVjdCB9LCBp
dGVtcyk7Ci0gICAgbV9mcm9udGVuZFBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dD
b250ZXh0TWVudShldmVudCwgbWVudVByb3ZpZGVyLnB0cigpKTsKICAgICBtX21lbnVQcm92aWRl
ciA9IG1lbnVQcm92aWRlci5wdHIoKTsKKyAgICBtX2Zyb250ZW5kUGFnZS0+Y29udGV4dE1lbnVD
b250cm9sbGVyKCkuc2hvd0NvbnRleHRNZW51KCpldmVudCwgbWVudVByb3ZpZGVyKTsKIH0KIAog
I2VuZGlmCkBAIC0zNTUsNyArMzU1LDcgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OmRp
c3BhdGNoRXZlbnRBc0NvbnRleHRNZW51RXZlbnQoRXZlbnQqIGV2ZW50KQogICAgIE1vdXNlRXZl
bnQmIG1vdXNlRXZlbnQgPSBkb3duY2FzdDxNb3VzZUV2ZW50PigqZXZlbnQpOwogICAgIEludFBv
aW50IG1vdXNlUG9pbnQgPSBJbnRQb2ludChtb3VzZUV2ZW50LmNsaWVudFgoKSwgbW91c2VFdmVu
dC5jbGllbnRZKCkpOwogCi0gICAgbV9mcm9udGVuZFBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxl
cigpLnNob3dDb250ZXh0TWVudUF0KGZyYW1lLCBtb3VzZVBvaW50KTsKKyAgICBtX2Zyb250ZW5k
UGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0NvbnRleHRNZW51QXQoKmZyYW1lLCBt
b3VzZVBvaW50KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGV2ZW50KTsKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCBlNzU0OTVmZDQyNGMyM2U4OTUz
NmNhOGQ0MzM5MDUzYmQ0ZTExYmJkLi41Nzc5MGI1MGNmY2RhNGE1MmYwYzRjMDJlYjU3YWIyMzNh
NmQ1N2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtNTcyLDE5
ICs1NzIsMTkgQEAgY2xhc3MgRW1wdHlWaXNpdGVkTGlua1N0b3JlIGZpbmFsIDogcHVibGljIFZp
c2l0ZWRMaW5rU3RvcmUgewogICAgIHZvaWQgYWRkVmlzaXRlZExpbmsoUGFnZSYsIExpbmtIYXNo
KSBmaW5hbCB7IH0KIH07CiAKLVJlZlB0cjxQb3B1cE1lbnU+IEVtcHR5Q2hyb21lQ2xpZW50Ojpj
cmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QKK1JlZlB0cjxQb3B1cE1lbnU+
IEVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JikgY29u
c3QKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVBvcHVwTWVudSk7CiB9CiAKLVJl
ZlB0cjxTZWFyY2hQb3B1cE1lbnU+IEVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1
cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QKK1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IEVt
cHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Jikg
Y29uc3QKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVNlYXJjaFBvcHVwTWVudSk7
CiB9CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKIAotc3RkOjp1bmlxdWVfcHRyPENv
bG9yQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNo
b29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYpCitzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2Vy
PiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVu
dCYsIGNvbnN0IENvbG9yJikKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA5MWMyZDM4NjkwMTBkYTVlYTQzZDAwOWNkMGYxM2Uw
Yjc4ZTdjZmY1Li5jOWViZWE0OGM4ZmE2OWE2ZjU2NzE1ODVjYjZkYjY0YjkzNjA2YTRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC02MSw3ICs2MSw3IEBAIGNsYXNzIEVt
cHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAgICAgdm9pZCBmb2N1c2Vk
RWxlbWVudENoYW5nZWQoRWxlbWVudCopIGZpbmFsIHsgfQogICAgIHZvaWQgZm9jdXNlZEZyYW1l
Q2hhbmdlZChGcmFtZSopIGZpbmFsIHsgfQogCi0gICAgUGFnZSogY3JlYXRlV2luZG93KEZyYW1l
KiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICBQYWdlKiBj
cmVhdGVXaW5kb3coRnJhbWUmLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93
RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWwgeyByZXR1cm4gbnVsbHB0
cjsgfQogICAgIHZvaWQgc2hvdygpIGZpbmFsIHsgfQogCiAgICAgYm9vbCBjYW5SdW5Nb2RhbCgp
IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CkBAIC04NCwxOSArODQsMTkgQEAgY2xhc3MgRW1wdHlD
aHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lkIGFkZE1lc3NhZ2VU
b0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1bnNp
Z25lZCwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQogCiAgICAgYm9vbCBjYW5S
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQotICAg
IGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYsIEZyYW1lKikg
ZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKGNvbnN0IFN0cmluZyYsIEZyYW1lJikgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAg
dm9pZCBjbG9zZVdpbmRvd1Nvb24oKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgcnVuSmF2YVNjcmlw
dEFsZXJ0KEZyYW1lKiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9Ci0gICAgYm9vbCBydW5KYXZh
U2NyaXB0Q29uZmlybShGcmFtZSosIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgcmV0dXJuIGZhbHNl
OyB9Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiwgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lk
IHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQorICAg
IGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7
IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSYsIGNv
bnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFN0cmluZyYpIGZpbmFsIHsgcmV0dXJuIGZhbHNl
OyB9CiAKICAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgZmlu
YWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dz
TWVudVdyaXRpbmdEaXJlY3Rpb24oKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wg
aGFzT3BlbmVkUG9wdXAoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQotICAgIFJlZlB0
cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBmaW5h
bDsKLSAgICBSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50KikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRl
UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxTZWFy
Y2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25z
dCBmaW5hbDsKIAogICAgIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSBmaW5h
bCB7IH0KIApAQCAtMTIwLDI5ICsxMjAsMjkgQEAgY2xhc3MgRW1wdHlDaHJvbWVDbGllbnQgOiBw
dWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICBJbnRSZWN0IHJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5
U2NyZWVuKGNvbnN0IEludFJlY3QmIHIpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHI7IH07CiAjZW5k
aWYKICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gMDsgfQotICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNv
bnN0IEludFNpemUmKSBjb25zdCBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5n
ZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3QgZmluYWwgeyB9CiAKICAgICB2b2lkIHNj
cm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgZmluYWwgeyB9CiAgICAgdm9pZCBtb3VzZURp
ZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQpIGZpbmFsIHsg
fQogCiAgICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rpb24pIGZp
bmFsIHsgfQogCi0gICAgdm9pZCBwcmludChGcmFtZSopIGZpbmFsIHsgfQorICAgIHZvaWQgcHJp
bnQoRnJhbWUmKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZy
YW1lKiwgY29uc3QgU3RyaW5nJiwgRGF0YWJhc2VEZXRhaWxzKSBmaW5hbCB7IH0KKyAgICB2b2lk
IGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSYsIGNvbnN0IFN0cmluZyYsIERhdGFiYXNlRGV0
YWlscykgZmluYWwgeyB9CiAKICAgICB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRf
dCkgZmluYWwgeyB9Ci0gICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCkgZmluYWwgeyB9CisgICAgdm9pZCByZWFjaGVkQXBw
bGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCkgZmluYWwg
eyB9CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8
Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiwgY29u
c3QgQ29sb3ImKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBjcmVh
dGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3QgQ29sb3ImKSBmaW5hbDsK
ICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYpIGZp
bmFsOwogICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZp
bGVJY29uTG9hZGVyJikgZmluYWwgeyB9CiAKLSAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25z
dCBOb2RlKikgZmluYWwgeyB9Ci0gICAgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBOb2RlKikg
ZmluYWwgeyB9CisgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoRWxlbWVudCYpIGZpbmFsIHsgfQor
ICAgIHZvaWQgZWxlbWVudERpZEJsdXIoRWxlbWVudCYpIGZpbmFsIHsgfQogCiAjaWYgIVBMQVRG
T1JNKElPUykKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKSBmaW5hbCB7IH0KQEAg
LTE1MSw4ICsxNTEsOCBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVD
bGllbnQgewogCiAgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNv
bnN0IGZpbmFsIHsgfQogCi0gICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSos
IEdyYXBoaWNzTGF5ZXIqKSBmaW5hbCB7IH0KLSAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3Jh
cGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSBmaW5hbCB7IH0KKyAgICB2b2lkIGF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopIGZpbmFsIHsgfQor
ICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NM
YXllciopIGZpbmFsIHsgfQogICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9u
aXphdGlvbigpIGZpbmFsIHsgfQogICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1
c2goKSBmaW5hbCB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXgg
MTRkNDdkYTk3MmU5MjgzNjlhYzgxM2NmOTYxODQ3NGYxYWYwMDE4NS4uNzhkZmYwYzQzYzVmYjAx
MWM3ODBhNDQ3YTliNjkyYzQ0YWZkNDNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCkBAIC0zOTcsNyArMzk3LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3VibWl0Rm9ybShS
ZWY8Rm9ybVN1Ym1pc3Npb24+JiYgc3VibWlzc2lvbikKIAogICAgIEZyYW1lKiB0YXJnZXRGcmFt
ZSA9IGZpbmRGcmFtZUZvck5hdmlnYXRpb24oc3VibWlzc2lvbi0+dGFyZ2V0KCksICZzdWJtaXNz
aW9uLT5zdGF0ZSgpLnNvdXJjZURvY3VtZW50KCkpOwogICAgIGlmICghdGFyZ2V0RnJhbWUpIHsK
LSAgICAgICAgaWYgKCFET01XaW5kb3c6OmFsbG93UG9wVXAoJm1fZnJhbWUpICYmICFTY3JpcHRD
b250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKKyAgICAgICAgaWYgKCFET01XaW5k
b3c6OmFsbG93UG9wVXAobV9mcmFtZSkgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdV
c2VyR2VzdHVyZSgpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIC8vIEZJWE1FOiB0
YXJnZXRGcmFtZSBjYW4gYmUgbnVsbCBmb3IgdHdvIGRpc3RpbmN0IHJlYXNvbnM6CkBAIC0xODUy
LDExICsxODUyLDkgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlzaW9uYWxMb2FkKCkK
ICAgICAgICAgaGlzdG9yeSgpLnVwZGF0ZUZvckNsaWVudFJlZGlyZWN0KCk7CiAKICAgICBpZiAo
bV9sb2FkaW5nRnJvbUNhY2hlZFBhZ2UpIHsKLSNpZiBQTEFURk9STShJT1MpCiAgICAgICAgIC8v
IE5vdGUsIGRpZFJlY2VpdmVEb2NUeXBlIGlzIGV4cGVjdGVkIHRvIGJlIGNhbGxlZCBmb3IgY2Fj
aGVkIHBhZ2VzLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU5MDY3NTg+IGZvciBtb3JlIGRldGFpbHMu
Ci0gICAgICAgIGlmIChtX2ZyYW1lLmRvY3VtZW50KCktPmRvY3R5cGUoKSAmJiBtX2ZyYW1lLnBh
Z2UoKSkKLSAgICAgICAgICAgIG1fZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9j
VHlwZSgmbV9mcmFtZSk7Ci0jZW5kaWYKKyAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2ZyYW1l
LnBhZ2UoKSkKKyAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKG1f
ZnJhbWUpOwogICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnJlc3VtZShBY3RpdmVET01PYmpl
Y3Q6OlBhZ2VDYWNoZSk7CiAKICAgICAgICAgLy8gRm9yY2UgYSBsYXlvdXQgdG8gdXBkYXRlIHZp
ZXcgc2l6ZSBhbmQgdGhlcmVieSB1cGRhdGUgc2Nyb2xsYmFycy4KQEAgLTI0MzksMTUgKzI0Mzcs
MTUgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGV0YWNoQ2hpbGRyZW4oKQogICAgICAgICBjaGlsZC0+
bG9hZGVyKCkuZGV0YWNoRnJvbVBhcmVudCgpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyOjpjbG9z
ZUFuZFJlbW92ZUNoaWxkKEZyYW1lKiBjaGlsZCkKK3ZvaWQgRnJhbWVMb2FkZXI6OmNsb3NlQW5k
UmVtb3ZlQ2hpbGQoRnJhbWUmIGNoaWxkKQogewotICAgIGNoaWxkLT50cmVlKCkuZGV0YWNoRnJv
bVBhcmVudCgpOworICAgIGNoaWxkLnRyZWUoKS5kZXRhY2hGcm9tUGFyZW50KCk7CiAKLSAgICBj
aGlsZC0+c2V0VmlldyhudWxscHRyKTsKLSAgICBpZiAoY2hpbGQtPm93bmVyRWxlbWVudCgpICYm
IGNoaWxkLT5wYWdlKCkpCi0gICAgICAgIGNoaWxkLT5wYWdlKCktPmRlY3JlbWVudFN1YmZyYW1l
Q291bnQoKTsKLSAgICBjaGlsZC0+d2lsbERldGFjaFBhZ2UoKTsKLSAgICBjaGlsZC0+ZGV0YWNo
RnJvbVBhZ2UoKTsKKyAgICBjaGlsZC5zZXRWaWV3KG51bGxwdHIpOworICAgIGlmIChjaGlsZC5v
d25lckVsZW1lbnQoKSAmJiBjaGlsZC5wYWdlKCkpCisgICAgICAgIGNoaWxkLnBhZ2UoKS0+ZGVj
cmVtZW50U3ViZnJhbWVDb3VudCgpOworICAgIGNoaWxkLndpbGxEZXRhY2hQYWdlKCk7CisgICAg
Y2hpbGQuZGV0YWNoRnJvbVBhZ2UoKTsKIAogICAgIG1fZnJhbWUudHJlZSgpLnJlbW92ZUNoaWxk
KGNoaWxkKTsKIH0KQEAgLTI1MjgsNyArMjUyNiw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmRldGFj
aEZyb21QYXJlbnQoKQogICAgIG1fcHJvZ3Jlc3NUcmFja2VyID0gbnVsbHB0cjsKIAogICAgIGlm
IChGcmFtZSogcGFyZW50ID0gbV9mcmFtZS50cmVlKCkucGFyZW50KCkpIHsKLSAgICAgICAgcGFy
ZW50LT5sb2FkZXIoKS5jbG9zZUFuZFJlbW92ZUNoaWxkKCZtX2ZyYW1lKTsKKyAgICAgICAgcGFy
ZW50LT5sb2FkZXIoKS5jbG9zZUFuZFJlbW92ZUNoaWxkKG1fZnJhbWUpOwogICAgICAgICBwYXJl
bnQtPmxvYWRlcigpLnNjaGVkdWxlQ2hlY2tDb21wbGV0ZWQoKTsKICAgICB9IGVsc2UgewogICAg
ICAgICBtX2ZyYW1lLnNldFZpZXcobnVsbHB0cik7CkBAIC0zMDMyLDcgKzMwMzAsNyBAQCBib29s
IEZyYW1lTG9hZGVyOjpkaXNwYXRjaEJlZm9yZVVubG9hZEV2ZW50KENocm9tZSYgY2hyb21lLCBG
cmFtZUxvYWRlciogZnJhbWVMbwogICAgIGZyYW1lTG9hZGVyQmVpbmdOYXZpZ2F0ZWQtPm1fY3Vy
cmVudE5hdmlnYXRpb25IYXNTaG93bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCA9IHRydWU7CiAK
ICAgICBTdHJpbmcgdGV4dCA9IGRvY3VtZW50LT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29k
aW5nKGJlZm9yZVVubG9hZEV2ZW50LT5yZXR1cm5WYWx1ZSgpKTsKLSAgICByZXR1cm4gY2hyb21l
LnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCh0ZXh0LCAmbV9mcmFtZSk7CisgICAgcmV0dXJu
IGNocm9tZS5ydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwodGV4dCwgbV9mcmFtZSk7CiB9CiAK
IHZvaWQgRnJhbWVMb2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVyTmF2aWdhdGlvblBvbGljeShjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBib29sIHNo
b3VsZENvbnRpbnVlLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwgYWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMKQpAQCAtMzY1Nyw3ICszNjU1LDcgQEAgUmVmUHRyPEZyYW1lPiBjcmVhdGVX
aW5kb3coRnJhbWUmIG9wZW5lckZyYW1lLCBGcmFtZSYgbG9va3VwRnJhbWUsIGNvbnN0IEZyYW1l
TG8KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBzaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5VG9BcHBseShvcGVuZXJGcmFtZSwgcmVxdWVzdC5zaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5KCkpOwotICAgIFBhZ2UqIHBhZ2UgPSBvbGRQYWdlLT5jaHJvbWUoKS5jcmVhdGVX
aW5kb3coJm9wZW5lckZyYW1lLCByZXF1ZXN0V2l0aFJlZmVycmVyLCBmZWF0dXJlcywgTmF2aWdh
dGlvbkFjdGlvbihyZXF1ZXN0V2l0aFJlZmVycmVyLnJlc291cmNlUmVxdWVzdCgpLCBzaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5KSk7CisgICAgUGFnZSogcGFnZSA9IG9sZFBhZ2UtPmNocm9t
ZSgpLmNyZWF0ZVdpbmRvdyhvcGVuZXJGcmFtZSwgcmVxdWVzdFdpdGhSZWZlcnJlciwgZmVhdHVy
ZXMsIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdFdpdGhSZWZlcnJlci5yZXNvdXJjZVJlcXVlc3Qo
KSwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkpOwogICAgIGlmICghcGFnZSkKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTM3MDUsNyArMzcwMyw3IEBAIFJlZlB0cjxGcmFtZT4g
Y3JlYXRlV2luZG93KEZyYW1lJiBvcGVuZXJGcmFtZSwgRnJhbWUmIGxvb2t1cEZyYW1lLCBjb25z
dCBGcmFtZUxvCiAgICAgICAgIHdpbmRvd1JlY3Quc2V0SGVpZ2h0KCpmZWF0dXJlcy5oZWlnaHQg
KyAod2luZG93UmVjdC5oZWlnaHQoKSAtIHZpZXdwb3J0U2l6ZS5oZWlnaHQoKSkpOwogCiAgICAg
Ly8gRW5zdXJlIG5vbi1OYU4gdmFsdWVzLCBtaW5pbXVtIHNpemUgYXMgd2VsbCBhcyBiZWluZyB3
aXRoaW4gdmFsaWQgc2NyZWVuIGFyZWEuCi0gICAgRmxvYXRSZWN0IG5ld1dpbmRvd1JlY3QgPSBE
T01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QocGFnZSwgd2luZG93UmVjdCk7CisgICAgRmxvYXRS
ZWN0IG5ld1dpbmRvd1JlY3QgPSBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHdp
bmRvd1JlY3QpOwogCiAgICAgaWYgKCFmcmFtZS0+cGFnZSgpKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggZmFhMDcxMmZhNGQyNDc4
N2ZhNTVkNDg0YzU0NTQyNjViYTUxYjYyYi4uZDY5YzgyOWM0ZTJmNmFiZjk0Y2UxYjQwNTY0Nzdl
YzZiOTBiNjk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTM2Niw3ICsz
NjYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdEZyb21EZWxlZ2F0ZShSZXNvdXJjZVJl
cXVlc3QmLCB1bnNpZ25lZCBsb25nJiBpZGVudGlmaWVyLCBSZXNvdXJjZUVycm9yJik7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRldGFjaENoaWxkcmVuKCk7Ci0gICAgdm9pZCBjbG9zZUFu
ZFJlbW92ZUNoaWxkKEZyYW1lKik7CisgICAgdm9pZCBjbG9zZUFuZFJlbW92ZUNoaWxkKEZyYW1l
Jik7CiAKICAgICB2b2lkIGxvYWRJblNhbWVEb2N1bWVudChjb25zdCBVUkwmLCBTZXJpYWxpemVk
U2NyaXB0VmFsdWUqIHN0YXRlT2JqZWN0LCBib29sIGlzTmV3TmF2aWdhdGlvbik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAppbmRleCBiYmI2MWViNDgyMTIxOTgzYWJl
YjU3YmNlNGU4NDczNGI3ZmU2MjIzLi5hMDFjZTI5MjlhMTAxMDYwMDRhMjRlNzRhNjA4YjhjZDc2
NzYxYTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCkBAIC0xNTcs
NyArMTU3LDcgQEAgdm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeShjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIGNvbnN0IFIKICAgICBpZiAobV9mcmFtZS5kb2N1
bWVudCgpICYmIG1fZnJhbWUuZG9jdW1lbnQoKS0+aXNTYW5kYm94ZWQoU2FuZGJveFBvcHVwcykp
CiAgICAgICAgIHJldHVybiBjb250aW51ZUFmdGVyTmF2aWdhdGlvblBvbGljeShQb2xpY3lJZ25v
cmUpOwogCi0gICAgaWYgKCFET01XaW5kb3c6OmFsbG93UG9wVXAoJm1fZnJhbWUpKQorICAgIGlm
ICghRE9NV2luZG93OjphbGxvd1BvcFVwKG1fZnJhbWUpKQogICAgICAgICByZXR1cm4gY29udGlu
dWVBZnRlck5hdmlnYXRpb25Qb2xpY3koUG9saWN5SWdub3JlKTsKIAogICAgIG1fY2FsbGJhY2su
c2V0KHJlcXVlc3QsIGZvcm1TdGF0ZSwgZnJhbWVOYW1lLCBhY3Rpb24sIFdURk1vdmUoZnVuY3Rp
b24pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggOGEyOGY4OGU2NjczZGIxNzAyYjE0NDE0ZmFmNzM4
YjVjNzQyZmNlZi4uOWY5YWIwMDBjZjZkOTM4NWY4YTI1OGY1MTUxYjg3MGY3MjkwZDhhYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5jcHAKQEAgLTc4NCw3ICs3ODQsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVH
cm91cDo6Y2FjaGVVcGRhdGVGYWlsZWQoKQogCiB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6
cmVjYWxjdWxhdGVBdmFpbGFibGVTcGFjZUluUXVvdGEoKQogewotICAgIGlmICghbV9mcmFtZS0+
cGFnZSgpLT5hcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSgpLmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVG
b3JPcmlnaW5FeGNsdWRpbmdDYWNoZShtX29yaWdpbi5nZXQoKSwgbV9uZXdlc3RDYWNoZS5nZXQo
KSwgbV9hdmFpbGFibGVTcGFjZUluUXVvdGEpKSB7CisgICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCkt
PmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlKCkuY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdp
bkV4Y2x1ZGluZ0NhY2hlKG1fb3JpZ2luLCBtX25ld2VzdENhY2hlLmdldCgpLCBtX2F2YWlsYWJs
ZVNwYWNlSW5RdW90YSkpIHsKICAgICAgICAgLy8gRmFpbGVkIHRvIGRldGVybWluZSB3aGF0IGlz
IGxlZnQgaW4gdGhlIHF1b3RhLiBGYWxsYmFjayB0byBhbGxvd2luZyBhbnl0aGluZy4KICAgICAg
ICAgbV9hdmFpbGFibGVTcGFjZUluUXVvdGEgPSBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6bm9R
dW90YSgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAppbmRleCBmYzg1MWRhN2NmYThjNDMzMmY2ODVlYTI5
MTIyZTM3ZDRkYjdhYWEyLi5jZWI4M2RmYzYyMTZmZTU1ODQyNzdjOWY5YWFlNTY2MDhkN2M0ZDBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVHcm91cC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKIAogICAgIEFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlJiBzdG9yYWdlKCkgeyByZXR1cm4gbV9zdG9yYWdlOyB9CiAgICAgY29u
c3QgVVJMJiBtYW5pZmVzdFVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFuaWZlc3RVUkw7IH0KLSAg
ICBjb25zdCBTZWN1cml0eU9yaWdpbiogb3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW4u
Z2V0KCk7IH0KKyAgICBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luKCkgY29uc3QgeyByZXR1
cm4gbV9vcmlnaW4uZ2V0KCk7IH0KICAgICBVcGRhdGVTdGF0dXMgdXBkYXRlU3RhdHVzKCkgY29u
c3QgeyByZXR1cm4gbV91cGRhdGVTdGF0dXM7IH0KICAgICB2b2lkIHNldFVwZGF0ZVN0YXR1cyhV
cGRhdGVTdGF0dXMgc3RhdHVzKTsKIApAQCAtMTM1LDcgKzEzNSw3IEBAIHByaXZhdGU6CiAgICAg
UmVmPEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlPiBtX3N0b3JhZ2U7CiAKICAgICBVUkwgbV9tYW5p
ZmVzdFVSTDsKLSAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fb3JpZ2luOworICAgIFJlZjxT
ZWN1cml0eU9yaWdpbj4gbV9vcmlnaW47CiAgICAgVXBkYXRlU3RhdHVzIG1fdXBkYXRlU3RhdHVz
IHsgSWRsZSB9OwogICAgIAogICAgIC8vIFRoaXMgaXMgdGhlIG5ld2VzdCBjb21wbGV0ZSBjYWNo
ZSBpbiB0aGUgZ3JvdXAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAppbmRleCBmNGZhOTViNTE3ZWM3Nzkx
NjI0ZmMwZjI1YTY1NmIwYzA5NDQxNDc3Li5iNmI5ZDdhN2NkNjNjMDc2YWU3YTg0MTA5OTk4MGI0
M2VmODdiNmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKQEAgLTQyMSw3ICs0MjEsNyBAQCB2b2lk
IEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzZXREZWZhdWx0T3JpZ2luUXVvdGEoaW50NjRfdCBx
dW90YSkKICAgICBtX2RlZmF1bHRPcmlnaW5RdW90YSA9IHF1b3RhOwogfQogCi1ib29sIEFwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlOjpjYWxjdWxhdGVRdW90YUZvck9yaWdpbihjb25zdCBTZWN1cml0
eU9yaWdpbiogb3JpZ2luLCBpbnQ2NF90JiBxdW90YSkKK2Jvb2wgQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2U6OmNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmln
aW4sIGludDY0X3QmIHF1b3RhKQogewogICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1
dG9Db3VudGVyIHRyYW5zYWN0aW9uQ291bnRlcjsKIApAQCAtNDMyLDcgKzQzMiw3IEBAIGJvb2wg
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luKiBvcmlnCiAgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRF
X09LKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBzdGF0ZW1lbnQuYmluZFRleHQoMSwg
U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKm9yaWdpbikuZGF0YWJhc2VJ
ZGVudGlmaWVyKCkpOworICAgIHN0YXRlbWVudC5iaW5kVGV4dCgxLCBTZWN1cml0eU9yaWdpbkRh
dGE6OmZyb21TZWN1cml0eU9yaWdpbihvcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKICAg
ICBpbnQgcmVzdWx0ID0gc3RhdGVtZW50LnN0ZXAoKTsKIAogICAgIC8vIFJldHVybiB0aGUgcXVv
dGEsIG9yIGlmIGl0IHdhcyBudWxsIHRoZSBkZWZhdWx0LgpAQCAtNDcyLDcgKzQ3Miw3IEBAIGJv
b2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0ZVVzYWdlRm9yT3JpZ2luKGNvbnN0
IFNlY3VyaXR5T3JpZ2luKiBvcmlnCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEFwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlOjpjYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVk
aW5nQ2FjaGUoY29uc3QgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgQXBwbGljYXRpb25DYWNoZSog
Y2FjaGUsIGludDY0X3QmIHJlbWFpbmluZ1NpemUpCitib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlOjpjYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUoY29uc3Qg
U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQXBwbGljYXRpb25DYWNoZSogY2FjaGUsIGludDY0X3Qm
IHJlbWFpbmluZ1NpemUpCiB7CiAgICAgU1FMaXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0b0Nv
dW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOwogCkBAIC01MDMsNyArNTAzLDcgQEAgYm9vbCBBcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1
ZGluZ0NhY2hlKGNvbnMKICAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0sp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHN0YXRlbWVudC5iaW5kVGV4dCgxLCBTZWN1
cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbigqb3JpZ2luKS5kYXRhYmFzZUlkZW50
aWZpZXIoKSk7CisgICAgc3RhdGVtZW50LmJpbmRUZXh0KDEsIFNlY3VyaXR5T3JpZ2luRGF0YTo6
ZnJvbVNlY3VyaXR5T3JpZ2luKG9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogICAgIGlm
IChleGNsdWRpbmdDYWNoZUlkZW50aWZpZXIgIT0gMCkKICAgICAgICAgc3RhdGVtZW50LmJpbmRJ
bnQ2NCgyLCBleGNsdWRpbmdDYWNoZUlkZW50aWZpZXIpOwogICAgIGludCByZXN1bHQgPSBzdGF0
ZW1lbnQuc3RlcCgpOwpAQCAtNjg4LDE0ICs2ODgsMTQgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZTo6c3RvcmUoQXBwbGljYXRpb25DYWNoZUdyb3VwKiBncm91cCwgR3JvdXBTdG9yYWdl
SUQKIAogICAgIHN0YXRlbWVudC5iaW5kSW50NjQoMSwgdXJsSG9zdEhhc2goZ3JvdXAtPm1hbmlm
ZXN0VVJMKCkpKTsKICAgICBzdGF0ZW1lbnQuYmluZFRleHQoMiwgZ3JvdXAtPm1hbmlmZXN0VVJM
KCkpOwotICAgIHN0YXRlbWVudC5iaW5kVGV4dCgzLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21T
ZWN1cml0eU9yaWdpbigqZ3JvdXAtPm9yaWdpbigpKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7Cisg
ICAgc3RhdGVtZW50LmJpbmRUZXh0KDMsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5
T3JpZ2luKGdyb3VwLT5vcmlnaW4oKSkuZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogCiAgICAgaWYg
KCFleGVjdXRlU3RhdGVtZW50KHN0YXRlbWVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIHVuc2lnbmVkIGdyb3VwU3RvcmFnZUlEID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fZGF0
YWJhc2UubGFzdEluc2VydFJvd0lEKCkpOwogCi0gICAgaWYgKCFlbnN1cmVPcmlnaW5SZWNvcmQo
Z3JvdXAtPm9yaWdpbigpKSkKKyAgICBpZiAoIWVuc3VyZU9yaWdpblJlY29yZCgmZ3JvdXAtPm9y
aWdpbigpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZ3JvdXAtPnNldFN0b3JhZ2VJ
RChncm91cFN0b3JhZ2VJRCk7CkBAIC05NzEsNyArOTcxLDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZTo6Y2hlY2tPcmlnaW5RdW90YShBcHBsaWNhdGlvbkNhY2hlR3JvdXAqIGdyb3Vw
LCBBcHAKIHsKICAgICAvLyBDaGVjayBpZiB0aGUgb2xkQ2FjaGUgd2l0aCB0aGUgbmV3Q2FjaGUg
d291bGQgcmVhY2ggdGhlIHBlci1vcmlnaW4gcXVvdGEuCiAgICAgaW50NjRfdCByZW1haW5pbmdT
cGFjZUluT3JpZ2luOwotICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gPSBncm91cC0+
b3JpZ2luKCk7CisgICAgYXV0byYgb3JpZ2luID0gZ3JvdXAtPm9yaWdpbigpOwogICAgIGlmIChj
YWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUob3JpZ2luLCBvbGRD
YWNoZSwgcmVtYWluaW5nU3BhY2VJbk9yaWdpbikpIHsKICAgICAgICAgaWYgKHJlbWFpbmluZ1Nw
YWNlSW5PcmlnaW4gPCBuZXdDYWNoZS0+ZXN0aW1hdGVkU2l6ZUluU3RvcmFnZSgpKSB7CiAgICAg
ICAgICAgICBpbnQ2NF90IHF1b3RhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaAppbmRleCA5ZmEyOTJlZTUwZmFl
ZTg5YzM1Yzg2MWE4Zjk5ZmExNmY5MDU0NzZkLi45ZDE3YTFiY2QwNmE2YWMxMTFhMGFjYWE2MDc2
NGY2YjE1NDA1MGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaApAQCAtNjMsOCArNjMsOCBAQCBwdWJsaWM6
CiAgICAgaW50NjRfdCBkZWZhdWx0T3JpZ2luUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX2RlZmF1
bHRPcmlnaW5RdW90YTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RGVmYXVsdE9yaWdp
blF1b3RhKGludDY0X3QgcXVvdGEpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2FsY3VsYXRl
VXNhZ2VGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90JiB1c2FnZSk7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjYWxjdWxhdGVRdW90YUZvck9yaWdpbihjb25zdCBTZWN1
cml0eU9yaWdpbiosIGludDY0X3QmIHF1b3RhKTsKLSAgICBib29sIGNhbGN1bGF0ZVJlbWFpbmlu
Z1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShjb25zdCBTZWN1cml0eU9yaWdpbiosIEFwcGxp
Y2F0aW9uQ2FjaGUqLCBpbnQ2NF90JiByZW1haW5pbmdTaXplKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBib29sIGNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgaW50
NjRfdCYgcXVvdGEpOworICAgIGJvb2wgY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4
Y2x1ZGluZ0NhY2hlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgQXBwbGljYXRpb25DYWNoZSosIGlu
dDY0X3QmIHJlbWFpbmluZ1NpemUpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc3RvcmVVcGRh
dGVkUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHF1b3RhKTsK
ICAgICBib29sIGNoZWNrT3JpZ2luUXVvdGEoQXBwbGljYXRpb25DYWNoZUdyb3VwKiwgQXBwbGlj
YXRpb25DYWNoZSogb2xkQ2FjaGUsIEFwcGxpY2F0aW9uQ2FjaGUqIG5ld0NhY2hlLCBpbnQ2NF90
JiB0b3RhbFNwYWNlTmVlZGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAKaW5kZXggYTkyMWIwNWU4NDZhMDVhNWFmY2U2
MzAzYWExOGY4YmYzMDcwOWRiNC4uMmNhNjdlMjdiZTg4NDJjYzdhMjE3ZGFhOTI1NWU4MThlZjlh
MTkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhU
TUxBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9N
SFRNTEFyY2hpdmUuY3BwCkBAIC0xMzMsOCArMTMzLDggQEAgUmVmUHRyPE1IVE1MQXJjaGl2ZT4g
TUhUTUxBcmNoaXZlOjpjcmVhdGUoY29uc3QgVVJMJiB1cmwsIFNoYXJlZEJ1ZmZlciYgZGF0YSkK
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IE1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEoUGFn
ZSogcGFnZSkKIHsKICAgICBWZWN0b3I8UGFnZVNlcmlhbGl6ZXI6OlJlc291cmNlPiByZXNvdXJj
ZXM7Ci0gICAgUGFnZVNlcmlhbGl6ZXIgcGFnZVNlcmlhbGl6ZXIoJnJlc291cmNlcyk7Ci0gICAg
cGFnZVNlcmlhbGl6ZXIuc2VyaWFsaXplKHBhZ2UpOworICAgIFBhZ2VTZXJpYWxpemVyIHBhZ2VT
ZXJpYWxpemVyKHJlc291cmNlcyk7CisgICAgcGFnZVNlcmlhbGl6ZXIuc2VyaWFsaXplKCpwYWdl
KTsKIAogICAgIFN0cmluZyBib3VuZGFyeSA9IGdlbmVyYXRlUmFuZG9tQm91bmRhcnkoKTsKICAg
ICBTdHJpbmcgZW5kT2ZSZXNvdXJjZUJvdW5kYXJ5ID0gbWFrZVN0cmluZygiLS0iLCBib3VuZGFy
eSwgIlxyXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcAppbmRleCBl
MTUxNzZkMzMxOWQ5NGNlMGI5YzkxZmJiZDhlYjczNzgxOTRjODY0Li5lOTcxMzk2MWNlM2I3NDg4
NGExYjNiZTNlNTBhNzM5MDYyM2Y4OWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRo
bWwvTWF0aE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVs
ZW1lbnQuY3BwCkBAIC0xODIsNyArMTgyLDcgQEAgYm9vbCBNYXRoTUxFbGVtZW50Ojppc0tleWJv
YXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQmIGV2ZW50KSBjb25zdAogICAgICAgICByZXR1cm4g
U3R5bGVkRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCk7CiAKICAgICBpZiAoaXNM
aW5rKCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxlcigp
LnRhYnNUb0xpbmtzKCZldmVudCk7CisgICAgICAgIHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCkt
PmV2ZW50SGFuZGxlcigpLnRhYnNUb0xpbmtzKGV2ZW50KTsKIAogICAgIHJldHVybiBTdHlsZWRF
bGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNw
cAppbmRleCA3NGRkZTFhMzRlMTVlOTA5NzFhZDA4NmUyNzBiOWFhNTY5ODgyMTBiLi5lMzYzZjQz
YWRjNmY1YmNlNDkwODQ0MDk3NTM3NDZhYTg2MWU4NGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3Bw
CkBAIC00OCw3ICs0OCw2IEBACiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1
ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSA8cnVudGltZS9WTS5oPgotI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC02MywxMCArNjIsNiBAQCB1c2luZyBuYW1lc3BhY2UgSFRN
TE5hbWVzOwogQ2hyb21lOjpDaHJvbWUoUGFnZSYgcGFnZSwgQ2hyb21lQ2xpZW50JiBjbGllbnQp
CiAgICAgOiBtX3BhZ2UocGFnZSkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKLSAgICAsIG1fZGlz
cGxheUlEKDApCi0jaWYgUExBVEZPUk0oSU9TKQotICAgICwgbV9pc0Rpc3BhdGNoVmlld3BvcnRE
YXRhRGlkQ2hhbmdlU3VwcHJlc3NlZChmYWxzZSkKLSNlbmRpZgogewogfQogCkBAIC0xMTQsNiAr
MTA5LDcgQEAgSW50UmVjdCBDaHJvbWU6OnJvb3RWaWV3VG9TY3JlZW4oY29uc3QgSW50UmVjdCYg
cmVjdCkgY29uc3QKIH0KICAgICAKICNpZiBQTEFURk9STShJT1MpCisKIEludFBvaW50IENocm9t
ZTo6YWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmIHBvaW50KSBj
b25zdAogewogICAgIHJldHVybiBtX2NsaWVudC5hY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290Vmll
dyhwb2ludCk7CkBAIC0xMjMsNiArMTE5LDcgQEAgSW50UmVjdCBDaHJvbWU6OnJvb3RWaWV3VG9B
Y2Nlc3NpYmlsaXR5U2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIG1fY2xpZW50LnJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKHJlY3QpOwogfQorCiAj
ZW5kaWYKIAogUGxhdGZvcm1QYWdlQ2xpZW50IENocm9tZTo6cGxhdGZvcm1QYWdlQ2xpZW50KCkg
Y29uc3QKQEAgLTEzMCw3ICsxMjcsNyBAQCBQbGF0Zm9ybVBhZ2VDbGllbnQgQ2hyb21lOjpwbGF0
Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogICAgIHJldHVybiBtX2NsaWVudC5wbGF0Zm9ybVBhZ2VD
bGllbnQoKTsKIH0KIAotdm9pZCBDaHJvbWU6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZy
YW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAordm9pZCBDaHJvbWU6OmNvbnRlbnRzU2l6
ZUNoYW5nZWQoRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogewogICAg
IG1fY2xpZW50LmNvbnRlbnRzU2l6ZUNoYW5nZWQoZnJhbWUsIHNpemUpOwogfQpAQCAtMTkwLDE1
ICsxODcsMTMgQEAgdm9pZCBDaHJvbWU6OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqIGZyYW1l
KSBjb25zdAogICAgIG1fY2xpZW50LmZvY3VzZWRGcmFtZUNoYW5nZWQoZnJhbWUpOwogfQogCi1Q
YWdlKiBDaHJvbWU6OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYgYWN0aW9uKSBjb25zdAorUGFnZSogQ2hyb21lOjpjcmVhdGVXaW5kb3co
RnJhbWUmIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXaW5k
b3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbikgY29u
c3QKIHsKICAgICBQYWdlKiBuZXdQYWdlID0gbV9jbGllbnQuY3JlYXRlV2luZG93KGZyYW1lLCBy
ZXF1ZXN0LCBmZWF0dXJlcywgYWN0aW9uKTsKICAgICBpZiAoIW5ld1BhZ2UpCi0gICAgICAgIHJl
dHVybiAwOwotCi0gICAgaWYgKFN0b3JhZ2VOYW1lc3BhY2UqIG9sZFNlc3Npb25TdG9yYWdlID0g
bV9wYWdlLnNlc3Npb25TdG9yYWdlKGZhbHNlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgaWYgKGF1dG8qIG9sZFNlc3Npb25TdG9yYWdlID0gbV9wYWdlLnNlc3Npb25TdG9yYWdlKGZh
bHNlKSkKICAgICAgICAgbmV3UGFnZS0+c2V0U2Vzc2lvblN0b3JhZ2Uob2xkU2Vzc2lvblN0b3Jh
Z2UtPmNvcHkobmV3UGFnZSkpOwotCiAgICAgcmV0dXJuIG5ld1BhZ2U7CiB9CiAKQEAgLTI3Niw3
ICsyNzEsNyBAQCBib29sIENocm9tZTo6Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkK
ICAgICByZXR1cm4gbV9jbGllbnQuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCk7CiB9
CiAKLWJvb2wgQ2hyb21lOjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBGcmFtZSogZnJhbWUpCitib29sIENocm9tZTo6cnVuQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmIGZyYW1lKQogewogICAgIC8v
IERlZmVyIGxvYWRzIGluIGNhc2UgdGhlIGNsaWVudCBtZXRob2QgcnVucyBhIG5ldyBldmVudCBs
b29wIHRoYXQgd291bGQKICAgICAvLyBvdGhlcndpc2UgY2F1c2UgdGhlIGxvYWQgdG8gY29udGlu
dWUgd2hpbGUgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBleGVjdXRpbmcgSmF2YVNjcmlwdC4KQEAg
LTI5MCw1MyArMjg1LDQ3IEBAIHZvaWQgQ2hyb21lOjpjbG9zZVdpbmRvd1Nvb24oKQogICAgIG1f
Y2xpZW50LmNsb3NlV2luZG93U29vbigpOwogfQogCi12b2lkIENocm9tZTo6cnVuSmF2YVNjcmlw
dEFsZXJ0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBDaHJvbWU6
OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
IHsKICAgICAvLyBEZWZlciBsb2FkcyBpbiBjYXNlIHRoZSBjbGllbnQgbWV0aG9kIHJ1bnMgYSBu
ZXcgZXZlbnQgbG9vcCB0aGF0IHdvdWxkCiAgICAgLy8gb3RoZXJ3aXNlIGNhdXNlIHRoZSBsb2Fk
IHRvIGNvbnRpbnVlIHdoaWxlIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgZXhlY3V0aW5nIEphdmFT
Y3JpcHQuCiAgICAgUGFnZUdyb3VwTG9hZERlZmVycmVyIGRlZmVycmVyKG1fcGFnZSwgdHJ1ZSk7
CiAKLSAgICBBU1NFUlQoZnJhbWUpOwogICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygp
OwotICAgIFN0cmluZyBkaXNwbGF5TWVzc2FnZSA9IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZp
ZWRCeUVuY29kaW5nKG1lc3NhZ2UpOworICAgIFN0cmluZyBkaXNwbGF5TWVzc2FnZSA9IGZyYW1l
LmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcobWVzc2FnZSk7CiAKICAgICBtX2NsaWVu
dC5ydW5KYXZhU2NyaXB0QWxlcnQoZnJhbWUsIGRpc3BsYXlNZXNzYWdlKTsKIH0KIAotYm9vbCBD
aHJvbWU6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQorYm9vbCBDaHJvbWU6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiBmcmFtZSwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIC8vIERlZmVyIGxvYWRzIGluIGNhc2UgdGhl
IGNsaWVudCBtZXRob2QgcnVucyBhIG5ldyBldmVudCBsb29wIHRoYXQgd291bGQKICAgICAvLyBv
dGhlcndpc2UgY2F1c2UgdGhlIGxvYWQgdG8gY29udGludWUgd2hpbGUgd2UncmUgaW4gdGhlIG1p
ZGRsZSBvZiBleGVjdXRpbmcgSmF2YVNjcmlwdC4KICAgICBQYWdlR3JvdXBMb2FkRGVmZXJyZXIg
ZGVmZXJyZXIobV9wYWdlLCB0cnVlKTsKIAotICAgIEFTU0VSVChmcmFtZSk7CiAgICAgbm90aWZ5
UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7Ci0gICAgU3RyaW5nIGRpc3BsYXlNZXNzYWdlID0gZnJh
bWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcobWVzc2FnZSk7Ci0KLSAgICByZXR1
cm4gbV9jbGllbnQucnVuSmF2YVNjcmlwdENvbmZpcm0oZnJhbWUsIGRpc3BsYXlNZXNzYWdlKTsK
KyAgICByZXR1cm4gbV9jbGllbnQucnVuSmF2YVNjcmlwdENvbmZpcm0oZnJhbWUsIGZyYW1lLmRp
c3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcobWVzc2FnZSkpOwogfQogCi1ib29sIENocm9t
ZTo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgcHJvbXB0
LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCitib29sIENocm9t
ZTo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgcHJvbXB0
LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCiB7CiAgICAgLy8g
RGVmZXIgbG9hZHMgaW4gY2FzZSB0aGUgY2xpZW50IG1ldGhvZCBydW5zIGEgbmV3IGV2ZW50IGxv
b3AgdGhhdCB3b3VsZAogICAgIC8vIG90aGVyd2lzZSBjYXVzZSB0aGUgbG9hZCB0byBjb250aW51
ZSB3aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGV4ZWN1dGluZyBKYXZhU2NyaXB0LgogICAg
IFBhZ2VHcm91cExvYWREZWZlcnJlciBkZWZlcnJlcihtX3BhZ2UsIHRydWUpOwogCi0gICAgQVNT
RVJUKGZyYW1lKTsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKLSAgICBTdHJp
bmcgZGlzcGxheVByb21wdCA9IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5n
KHByb21wdCk7CisgICAgU3RyaW5nIGRpc3BsYXlQcm9tcHQgPSBmcmFtZS5kaXNwbGF5U3RyaW5n
TW9kaWZpZWRCeUVuY29kaW5nKHByb21wdCk7CiAKLSAgICBib29sIG9rID0gbV9jbGllbnQucnVu
SmF2YVNjcmlwdFByb21wdChmcmFtZSwgZGlzcGxheVByb21wdCwgZnJhbWUtPmRpc3BsYXlTdHJp
bmdNb2RpZmllZEJ5RW5jb2RpbmcoZGVmYXVsdFZhbHVlKSwgcmVzdWx0KTsKKyAgICBib29sIG9r
ID0gbV9jbGllbnQucnVuSmF2YVNjcmlwdFByb21wdChmcmFtZSwgZGlzcGxheVByb21wdCwgZnJh
bWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhkZWZhdWx0VmFsdWUpLCByZXN1bHQp
OwogICAgIGlmIChvaykKLSAgICAgICAgcmVzdWx0ID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2Rp
ZmllZEJ5RW5jb2RpbmcocmVzdWx0KTsKKyAgICAgICAgcmVzdWx0ID0gZnJhbWUuZGlzcGxheVN0
cmluZ01vZGlmaWVkQnlFbmNvZGluZyhyZXN1bHQpOwogCiAgICAgcmV0dXJuIG9rOwogfQogCi12
b2lkIENocm9tZTo6c2V0U3RhdHVzYmFyVGV4dChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYg
c3RhdHVzKQordm9pZCBDaHJvbWU6OnNldFN0YXR1c2JhclRleHQoRnJhbWUmIGZyYW1lLCBjb25z
dCBTdHJpbmcmIHN0YXR1cykKIHsKLSAgICBBU1NFUlQoZnJhbWUpOwotICAgIG1fY2xpZW50LnNl
dFN0YXR1c2JhclRleHQoZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmcoc3Rh
dHVzKSk7CisgICAgbV9jbGllbnQuc2V0U3RhdHVzYmFyVGV4dChmcmFtZS5kaXNwbGF5U3RyaW5n
TW9kaWZpZWRCeUVuY29kaW5nKHN0YXR1cykpOwogfQogCiB2b2lkIENocm9tZTo6bW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCB1bnNpZ25lZCBtb2Rp
ZmllckZsYWdzKQpAQCAtNDA3LDkgKzM5Niw5IEBAIHZvaWQgQ2hyb21lOjpzZXRUb29sVGlwKGNv
bnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkKICAgICBtX2NsaWVudC5zZXRUb29sVGlwKHRvb2xU
aXAsIHRvb2xUaXBEaXJlY3Rpb24pOwogfQogCi12b2lkIENocm9tZTo6cHJpbnQoRnJhbWUqIGZy
YW1lKQordm9pZCBDaHJvbWU6OnByaW50KEZyYW1lJiBmcmFtZSkKIHsKLSAgICAvLyBGSVhNRTog
VGhpcyBzaG91bGQgaGF2ZSBQYWdlR3JvdXBMb2FkRGVmZXJyZXIsIGxpa2UgcnVuTW9kYWwoKSBv
ciBydW5KYXZhU2NyaXB0QWxlcnQoKSwgYmVjYXN1ZSBpdCdzIG5vIGRpZmZlcmVudCBmcm9tIHRo
b3NlLgorICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBoYXZlIFBhZ2VHcm91cExvYWREZWZlcnJl
ciwgbGlrZSBydW5Nb2RhbCgpIG9yIHJ1bkphdmFTY3JpcHRBbGVydCgpLCBiZWNhdXNlIGl0J3Mg
bm8gZGlmZmVyZW50IGZyb20gdGhvc2UuCiAgICAgbV9jbGllbnQucHJpbnQoZnJhbWUpOwogfQog
CkBAIC00MjQsMTEgKzQxMywxMyBAQCB2b2lkIENocm9tZTo6ZGlzYWJsZVN1ZGRlblRlcm1pbmF0
aW9uKCkKIH0KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotc3RkOjp1bmlxdWVfcHRy
PENvbG9yQ2hvb3Nlcj4gQ2hyb21lOjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xp
ZW50KiBjbGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCisKK3N0ZDo6dW5pcXVlX3B0
cjxDb2xvckNob29zZXI+IENocm9tZTo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNs
aWVudCYgY2xpZW50LCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQogewogICAgIG5vdGlmeVBv
cHVwT3BlbmluZ09ic2VydmVycygpOwogICAgIHJldHVybiBtX2NsaWVudC5jcmVhdGVDb2xvckNo
b29zZXIoY2xpZW50LCBpbml0aWFsQ29sb3IpOwogfQorCiAjZW5kaWYKIAogdm9pZCBDaHJvbWU6
OnJ1bk9wZW5QYW5lbChGcmFtZSYgZnJhbWUsIEZpbGVDaG9vc2VyJiBmaWxlQ2hvb3NlcikKQEAg
LTUzOCwxMyArNTI5LDEzIEBAIGJvb2wgQ2hyb21lOjpoYXNPcGVuZWRQb3B1cCgpIGNvbnN0CiAg
ICAgcmV0dXJuIG1fY2xpZW50Lmhhc09wZW5lZFBvcHVwKCk7CiB9CiAKLVJlZlB0cjxQb3B1cE1l
bnU+IENocm9tZTo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25z
dAorUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50JiBjbGllbnQpIGNvbnN0CiB7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7
CiAgICAgcmV0dXJuIG1fY2xpZW50LmNyZWF0ZVBvcHVwTWVudShjbGllbnQpOwogfQogCi1SZWZQ
dHI8U2VhcmNoUG9wdXBNZW51PiBDaHJvbWU6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IENocm9tZTo6
Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAogewog
ICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpOwogICAgIHJldHVybiBtX2NsaWVudC5j
cmVhdGVTZWFyY2hQb3B1cE1lbnUoY2xpZW50KTsKQEAgLTU1NSwzMCArNTQ2LDI3IEBAIGJvb2wg
Q2hyb21lOjpyZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkKICAgICByZXR1cm4g
bV9jbGllbnQucmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpOwogfQogCi0jaWYg
UExBVEZPUk0oSU9TKQotLy8gRklYTUU6IE1ha2UgYXJndW1lbnQsIGZyYW1lLCBhIHJlZmVyZW5j
ZS4KLXZvaWQgQ2hyb21lOjpkaWRSZWNlaXZlRG9jVHlwZShGcmFtZSogZnJhbWUpCit2b2lkIENo
cm9tZTo6ZGlkUmVjZWl2ZURvY1R5cGUoRnJhbWUmIGZyYW1lKQogewotICAgIEFTU0VSVChmcmFt
ZSk7Ci0gICAgaWYgKCFmcmFtZS0+aXNNYWluRnJhbWUoKSkKKyNpZiAhUExBVEZPUk0oSU9TKQor
ICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7CisjZWxzZQorICAgIGlmICghZnJhbWUuaXNNYWluRnJh
bWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBoYXNNb2JpbGVEb2NUeXBlID0gZmFs
c2U7Ci0gICAgaWYgKERvY3VtZW50VHlwZSogZG9jdW1lbnRUeXBlID0gZnJhbWUtPmRvY3VtZW50
KCktPmRvY3R5cGUoKSkKLSAgICAgICAgaGFzTW9iaWxlRG9jVHlwZSA9IGRvY3VtZW50VHlwZS0+
cHVibGljSWQoKS5jb250YWlucygieGh0bWwgbW9iaWxlIiwgZmFsc2UpOwotICAgIG1fY2xpZW50
LmRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGhhc01vYmlsZURvY1R5cGUpOwotfQorICAgIGF1dG8q
IGRvY3R5cGUgPSBmcmFtZS5kb2N1bWVudCgpLT5kb2N0eXBlKCk7CisgICAgbV9jbGllbnQuZGlk
UmVjZWl2ZU1vYmlsZURvY1R5cGUoZG9jdHlwZSAmJiBkb2N0eXBlLT5wdWJsaWNJZCgpLmNvbnRh
aW5zSWdub3JpbmdBU0NJSUNhc2UoInhodG1sIG1vYmlsZSIpKTsKICNlbmRpZgorfQogCi12b2lk
IENocm9tZTo6cmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZl
ciogb2JzZXJ2ZXIpCit2b2lkIENocm9tZTo6cmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQ
b3B1cE9wZW5pbmdPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgQVNTRVJUKG9ic2VydmVyKTsK
LSAgICBtX3BvcHVwT3BlbmluZ09ic2VydmVycy5hcHBlbmQob2JzZXJ2ZXIpOworICAgIG1fcG9w
dXBPcGVuaW5nT2JzZXJ2ZXJzLmFwcGVuZCgmb2JzZXJ2ZXIpOwogfQogCi12b2lkIENocm9tZTo6
dW5yZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyKiBvYnNl
cnZlcikKK3ZvaWQgQ2hyb21lOjp1bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBP
cGVuaW5nT2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIGJvb2wgcmVtb3ZlZCA9IG1fcG9wdXBP
cGVuaW5nT2JzZXJ2ZXJzLnJlbW92ZUZpcnN0KG9ic2VydmVyKTsKKyAgICBib29sIHJlbW92ZWQg
PSBtX3BvcHVwT3BlbmluZ09ic2VydmVycy5yZW1vdmVGaXJzdCgmb2JzZXJ2ZXIpOwogICAgIEFT
U0VSVF9VTlVTRUQocmVtb3ZlZCwgcmVtb3ZlZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmluZGV4
IDZkMjVhYzg5MTYwMGYyMTg0YTY1NGRhZDMyMjZkNDZjODE5MzJhNjYuLmIzYzQ2NDdjMWFlOTUw
MDUyMDc4MzQ5ZTA3NmEyOWIwZTZhZGM2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApAQCAtOTUsNyAr
OTUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRS
ZWN0JikgY29uc3Q7CiAKLSAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25z
dCBJbnRTaXplJikgY29uc3Q7CisgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiwg
Y29uc3QgSW50U2l6ZSYpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRXaW5k
b3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEZsb2F0
UmVjdCB3aW5kb3dSZWN0KCkgY29uc3Q7CkBAIC0xMTEsNyArMTExLDcgQEAgcHVibGljOgogICAg
IHZvaWQgZm9jdXNlZEVsZW1lbnRDaGFuZ2VkKEVsZW1lbnQqKSBjb25zdDsKICAgICB2b2lkIGZv
Y3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKSBjb25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFBh
Z2UqIGNyZWF0ZVdpbmRvdyhGcmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBX
aW5kb3dGZWF0dXJlcyYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBjb25zdDsKKyAgICBXRUJD
T1JFX0VYUE9SVCBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUmLCBjb25zdCBGcmFtZUxvYWRSZXF1
ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikgY29u
c3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzaG93KCkgY29uc3Q7CiAKICAgICBib29sIGNh
blJ1bk1vZGFsKCkgY29uc3Q7CkBAIC0xMzIsMjYgKzEzMiwyNiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRSZXNpemFibGUoYm9vbCkgY29uc3Q7CiAKICAgICBib29sIGNhblJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbCgpOwotICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUqKTsKKyAgICBib29sIHJ1bkJlZm9yZVVubG9hZENv
bmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lJik7CiAKICAgICB2b2lkIGNs
b3NlV2luZG93U29vbigpOwogCi0gICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqLCBj
b25zdCBTdHJpbmcmKTsKLSAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiwgY29u
c3QgU3RyaW5nJik7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1
bHQpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChGcmFtZSosIGNv
bnN0IFN0cmluZyYpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiwgY29uc3Qg
U3RyaW5nJik7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYsIGNvbnN0IFN0
cmluZyYpOworICAgIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSYsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFN0YXR1c2JhclRleHQoRnJhbWUmLCBjb25zdCBT
dHJpbmcmKTsKIAogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVz
dFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwogCiAgICAgdm9pZCBzZXRUb29sVGlw
KGNvbnN0IEhpdFRlc3RSZXN1bHQmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJpbnQo
RnJhbWUqKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHByaW50KEZyYW1lJik7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIGVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKTsKIAogI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX0NPTE9SKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0
ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYgaW5pdGlhbENv
bG9yKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29z
ZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcik7CiAjZW5k
aWYKIAogICAgIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNob29zZXImKTsKQEAgLTE2
OCwyOCArMTY4LDI4IEBAIHB1YmxpYzoKICAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0
aW9uSXNOYXR1cmFsKCk7CiAgICAgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVX
cml0aW5nRGlyZWN0aW9uKCk7CiAgICAgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0OwotICAg
IFJlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25z
dDsKLSAgICBSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBN
ZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0OworICAgIFJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+
IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdDsKIAogI2lmIFBM
QVRGT1JNKElPUykKICAgICAvLyBGSVhNRTogQ2FuIHdlIGNvbWUgdXAgd2l0aCBhIGJldHRlciBu
YW1lIGZvciB0aGlzIHNldHRlcj8KICAgICB2b2lkIHNldERpc3BhdGNoVmlld3BvcnREYXRhRGlk
Q2hhbmdlU3VwcHJlc3NlZChib29sIGRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlU3VwcHJl
c3NlZCkgeyBtX2lzRGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkID0gZGlz
cGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkOyB9Ci0KLSAgICB2b2lkIGRpZFJl
Y2VpdmVEb2NUeXBlKEZyYW1lKik7CiAjZW5kaWYKIAotICAgIHZvaWQgcmVnaXN0ZXJQb3B1cE9w
ZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciopOwotICAgIHZvaWQgdW5yZWdpc3Rl
clBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyKik7CisgICAgdm9pZCBk
aWRSZWNlaXZlRG9jVHlwZShGcmFtZSYpOworCisgICAgdm9pZCByZWdpc3RlclBvcHVwT3Blbmlu
Z09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyJik7CisgICAgdm9pZCB1bnJlZ2lzdGVyUG9w
dXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXImKTsKIAogcHJpdmF0ZToKICAg
ICB2b2lkIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpIGNvbnN0OwogCiAgICAgUGFnZSYg
bV9wYWdlOwogICAgIENocm9tZUNsaWVudCYgbV9jbGllbnQ7Ci0gICAgUGxhdGZvcm1EaXNwbGF5
SUQgbV9kaXNwbGF5SUQ7CisgICAgUGxhdGZvcm1EaXNwbGF5SUQgbV9kaXNwbGF5SUQgeyAwIH07
CiAgICAgVmVjdG9yPFBvcHVwT3BlbmluZ09ic2VydmVyKj4gbV9wb3B1cE9wZW5pbmdPYnNlcnZl
cnM7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIGJvb2wgbV9pc0Rpc3BhdGNoVmlld3BvcnREYXRh
RGlkQ2hhbmdlU3VwcHJlc3NlZDsKKyAgICBib29sIG1faXNEaXNwYXRjaFZpZXdwb3J0RGF0YURp
ZENoYW5nZVN1cHByZXNzZWQgeyBmYWxzZSB9OwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWVDbGllbnQuaAppbmRleCAyYzg5YjZjYmE1MDY4MGI5NzJkYzU1ZmM0YjI0YzQ4OTBmYWVi
ODI0Li44YTE2MzkxZmJiODZiY2NiNzRmZmU1YzQxZmY1YTU4NjZjZTdlYTY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyMyw3ICsxMjMsNyBAQCBwdWJsaWM6CiAgICAgLy8g
Y3JlYXRlZCBQYWdlIGhhcyBpdHMgc2hvdyBtZXRob2QgY2FsbGVkLgogICAgIC8vIFRoZSBGcmFt
ZUxvYWRSZXF1ZXN0IHBhcmFtZXRlciBpcyBvbmx5IGZvciBDaHJvbWVDbGllbnQgdG8gY2hlY2sg
aWYgdGhlCiAgICAgLy8gcmVxdWVzdCBjb3VsZCBiZSBmdWxmaWxsZWQuIFRoZSBDaHJvbWVDbGll
bnQgc2hvdWxkIG5vdCBsb2FkIHRoZSByZXF1ZXN0LgotICAgIHZpcnR1YWwgUGFnZSogY3JlYXRl
V2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1
cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpID0gMDsKKyAgICB2aXJ0dWFsIFBhZ2UqIGNy
ZWF0ZVdpbmRvdyhGcmFtZSYsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dG
ZWF0dXJlcyYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNob3coKSA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuTW9kYWwoKSA9IDA7CkBAIC0x
NDYsNjMgKzE0Niw2NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2VUb0Nv
bnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5n
JiBzb3VyY2VJRCkgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGNhblJ1bkJlZm9yZVVubG9hZENv
bmZpcm1QYW5lbCgpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUqKSA9IDA7CisgICAgdmlydHVhbCBi
b29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZy
YW1lJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGNsb3NlV2luZG93U29vbigpID0gMDsKIAot
ICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqLCBjb25zdCBTdHJpbmcm
KSA9IDA7Ci0gICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiwgY29u
c3QgU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZy
YW1lKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwg
U3RyaW5nJiByZXN1bHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0
KEZyYW1lJiwgY29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2Ny
aXB0Q29uZmlybShGcmFtZSYsIGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wg
cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgS2V5
Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSA9IDA7CiAKLSAgICAvLyBNZXRob2RzIHVzZWQg
YnkgSG9zdFdpbmRvdy4KICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNJbW1lZGlhdGVJbnZhbGlk
YXRpb24oKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9v
dFZpZXcoY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNv
bnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBjb25z
dCBJbnRSZWN0JikgPSAwOworCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIHZp
cnR1YWwgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmKSA9IDA7
CiAjZW5kaWYKKwogICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhjb25zdCBJ
bnRQb2ludCYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEludFJlY3Qgcm9vdFZpZXdUb1NjcmVl
bihjb25zdCBJbnRSZWN0JikgY29uc3QgPSAwOworCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZp
cnR1YWwgSW50UG9pbnQgYWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9p
bnQmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRSZWN0IHJvb3RWaWV3VG9BY2Nlc3NpYmls
aXR5U2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdCA9IDA7CiAjZW5kaWYgICAgCisKICAgICB2
aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgPSAwOwor
CiAjaWYgRU5BQkxFKENVUlNPUl9TVVBQT1JUKQogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3Io
Y29uc3QgQ3Vyc29yJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRp
bE1vdXNlTW92ZXMoYm9vbCkgPSAwOwogI2VuZGlmCisKICNpZiAhVVNFKFJFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FX1RJTUVSKQogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpID0g
MDsKICNlbmRpZgotICAgIC8vIEVuZCBtZXRob2RzIHVzZWQgYnkgSG9zdFdpbmRvdy4KIAotICAg
IHZpcnR1YWwgRmxvYXRTaXplIHNjcmVlblNpemUoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0
PENocm9tZUNsaWVudCo+KHRoaXMpLT53aW5kb3dSZWN0KCkuc2l6ZSgpOyB9Ci0gICAgdmlydHVh
bCBGbG9hdFNpemUgYXZhaWxhYmxlU2NyZWVuU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nh
c3Q8Q2hyb21lQ2xpZW50Kj4odGhpcyktPndpbmRvd1JlY3QoKS5zaXplKCk7IH0KKyAgICB2aXJ0
dWFsIEZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxDaHJv
bWVDbGllbnQmPigqdGhpcykud2luZG93UmVjdCgpLnNpemUoKTsgfQorICAgIHZpcnR1YWwgRmxv
YXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemUoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PENo
cm9tZUNsaWVudCY+KCp0aGlzKS53aW5kb3dSZWN0KCkuc2l6ZSgpOyB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgVmlld3BvcnRB
cmd1bWVudHMmKSBjb25zdCB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFu
Z2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYsIGNvbnN0IEludFNpemUmKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3Qg
eyB9OyAvLyBDdXJyZW50bHkgb25seSBNYWMgaGFzIGEgbm9uIGVtcHR5IGltcGxlbWVudGF0aW9u
LgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0
dG9uKFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkKEVsZW1lbnQqLCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFp
bGFiaWxpdHlSZWFzb24pIGNvbnN0IHsgfQorICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBs
dWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCYsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5V
bmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZs
YWdzKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcmLCBU
ZXh0RGlyZWN0aW9uKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUqKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIHByaW50KEZyYW1lJikgPSAwOwogCiAgICAgdmlydHVhbCBDb2xv
ciB1bmRlcmxheUNvbG9yKCkgY29uc3QgeyByZXR1cm4gQ29sb3IoKTsgfQogCiAgICAgdmlydHVh
bCB2b2lkIHBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvckRpZENoYW5nZShDb2xvcikgY29uc3Qg
eyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29u
c3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscykgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUmLCBjb25zdCBTdHJpbmcmIGRhdGFi
YXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzKSA9IDA7CiAKICAgICAvLyBDYWxsYmFjayBpbnZva2Vk
IHdoZW4gdGhlIGFwcGxpY2F0aW9uIGNhY2hlIGZhaWxzIHRvIHNhdmUgYSBjYWNoZSBvYmplY3QK
ICAgICAvLyBiZWNhdXNlIHN0b3JpbmcgaXQgd291bGQgZ3JvdyB0aGUgZGF0YWJhc2UgZmlsZSBw
YXN0IGl0cyBkZWZpbmVkIG1heGltdW0KQEAgLTIxOSw3ICsyMjMsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gc3RvcmFnZSwgaW4gYnl0ZXMsIG5lZWRlZCB0byBzdG9yZSB0aGUgbmV3IGNhY2hlIGFsb25n
IHdpdGggYWxsIG9mIHRoZQogICAgIC8vIG90aGVyIGV4aXN0aW5nIGNhY2hlcyBmb3IgdGhlIG9y
aWdpbiB0aGF0IHdvdWxkIG5vdCBiZSByZXBsYWNlZCBieQogICAgIC8vIHRoZSBuZXcgY2FjaGUu
Ci0gICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2Vj
dXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiYs
IGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkgPSAwOwogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9T
VVBQT1JUKQogICAgIHZpcnR1YWwgdm9pZCBhbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpOwpAQCAt
MjM2LDEwICsyNDAsMTAgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShib29sKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIHNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhGcmFtZSosIGJvb2wpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKEZyYW1lKikgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoRnJhbWUqKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShGcmFtZSop
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKEZyYW1l
JiwgYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoRnJh
bWUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhG
cmFtZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNj
cm9sbGluZ0ZyYW1lKEZyYW1lJikgPSAwOwogCiAgICAgZW51bSBMYXlvdXRUeXBlIHsgTm9ybWFs
TGF5b3V0LCBTY3JvbGwgfTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTGF5b3V0KExheW91dFR5cGUg
PSBOb3JtYWxMYXlvdXQpID0gMDsKQEAgLTI3MCwxNiArMjc0LDE2IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgdmlydHVhbCBzdGQ6OnVuaXF1
ZV9wdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50
KiwgY29uc3QgQ29sb3ImKSA9IDA7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JD
aG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3QgQ29s
b3ImKSA9IDA7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUm
LCBGaWxlQ2hvb3NlciYpID0gMDsKICAgICAvLyBBc3luY2hyb25vdXMgcmVxdWVzdCB0byBsb2Fk
IGFuIGljb24gZm9yIHNwZWNpZmllZCBmaWxlbmFtZXMuCiAgICAgdmlydHVhbCB2b2lkIGxvYWRJ
Y29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciYpID0gMDsK
ICAgICAgICAgCi0gICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBOb2RlKikg
eyB9OwotICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBOb2RlKikgeyB9Owot
ICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkUmVmb2N1cyhjb25zdCBOb2RlKikgeyB9OworICAg
IHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkRm9jdXMoRWxlbWVudCYpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBlbGVtZW50RGlkQmx1cihFbGVtZW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGVsZW1l
bnREaWRSZWZvY3VzKEVsZW1lbnQmKSB7IH0KICAgICAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
UGFpbnRFbnRpcmVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGhhc1N0YWJsZVBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0K
QEAgLTI5MSw5ICsyOTUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZWZQdHI8RGlzcGxheVJl
ZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5
SUQpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCi0gICAgLy8gUGFzcyAwIGFz
IHRoZSBHcmFwaGljc0xheWVyIHRvIGRldGF0Y2ggdGhlIHJvb3QgbGF5ZXIuCi0gICAgdmlydHVh
bCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciopID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1l
KiwgR3JhcGhpY3NMYXllciopID0gMDsKKyAgICAvLyBQYXNzIG51bGxwdHIgYXMgdGhlIEdyYXBo
aWNzTGF5ZXIgdG8gZGV0YXRjaCB0aGUgcm9vdCBsYXllci4KKyAgICB2aXJ0dWFsIHZvaWQgYXR0
YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGlj
c0xheWVyKikgPSAwOwogICAgIC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgbmV4
dCB0aW1lIGNvbnRlbnQgaXMgZHJhd24gdG8gdGhlIHdpbmRvdywKICAgICAvLyB0aGUgY2hhbmdl
cyBhcHBlYXIgb24gdGhlIHNjcmVlbiBpbiBzeW5jaHJvbnkgd2l0aCB1cGRhdGVzIHRvIEdyYXBo
aWNzTGF5ZXJzLgogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hy
b25pemF0aW9uKCkgPSAwOwpAQCAtMzI1LDI2ICszMjksMjggQEAgcHVibGljOgogCiAgICAgdmly
dHVhbCBib29sIGFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKExheWVyRmx1c2hUaHJvdHRsZVN0
YXRlOjpGbGFncykgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxT
Y3JvbGxpbmdDb29yZGluYXRvcj4gY3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSopIGNv
bnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxTY3JvbGxpbmdDb29y
ZGluYXRvcj4gY3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSYpIGNvbnN0IHsgcmV0dXJu
IG51bGxwdHI7IH0KIAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKEFWRk9VTkRBVElPTikKLSAg
ICB2aXJ0dWFsIEdyYXBoaWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkg
Y29uc3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgR3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBn
cmFwaGljc0RldmljZUFkYXB0ZXIoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYK
IAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIHsgcmV0dXJuIGZhbHNlOyB9CisKICNpZiBF
TkFCTEUoVklERU8pCiAgICAgdmlydHVhbCB2b2lkIGVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlk
ZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVv
RnVsbHNjcmVlbk1vZGUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRVcFBsYXliYWNrQ29udHJv
bHNNYW5hZ2VyKEhUTUxNZWRpYUVsZW1lbnQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJQ
bGF5YmFja0NvbnRyb2xzTWFuYWdlcigpIHsgfQogI2VuZGlmCi0gICAgdmlydHVhbCB2b2lkIGV4
aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVu
dCYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91
dEFuaW1hdGlvbihXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgSFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIC8qdGFyZ2V0TW9kZSovKSB7IH0KKworICAgIHZpcnR1
YWwgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1l
bnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhv
dXRBbmltYXRpb24oSFRNTFZpZGVvRWxlbWVudCYsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSkgeyB9CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzRnVsbHNjcmVl
bkZvclZpZGVvUGxheWJhY2soKSB7IHJldHVybiBmYWxzZTsgfSAKIAogI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVu
dChjb25zdCBFbGVtZW50KiwgYm9vbCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KikgeyB9Ci0gICAgdmlydHVhbCB2
b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KikgeyB9CisgICAgdmlydHVhbCBi
b29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYsIGJvb2wpIHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1l
bnQoRWxlbWVudCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1l
bnQoRWxlbWVudCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRSb290RnVsbFNjcmVlbkxheWVy
KEdyYXBoaWNzTGF5ZXIqKSB7IH0KICNlbmRpZgogCkBAIC0zNTMsNyArMzU5LDcgQEAgcHVibGlj
OgogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2aXJ0dWFsIE5TUmVzcG9uZGVy
ICpmaXJzdFJlc3BvbmRlcigpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIE5TUmVzcG9uZGVy
ICpmaXJzdFJlc3BvbmRlcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIHZvaWQg
bWFrZUZpcnN0UmVzcG9uZGVyKE5TUmVzcG9uZGVyICopIHsgfQogICAgIC8vIEZvY3VzZXMgb24g
dGhlIGNvbnRhaW5pbmcgdmlldyBhc3NvY2lhdGVkIHdpdGggdGhpcyBwYWdlLgogICAgIHZpcnR1
YWwgdm9pZCBtYWtlRmlyc3RSZXNwb25kZXIoKSB7IH0KQEAgLTM3NywxMCArMzgzLDEwIEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3Jp
dGluZ0RpcmVjdGlvbigpID0gMDsKICAgICAvLyBDaGVja3MgaWYgdGhlcmUgaXMgYW4gb3BlbmVk
IHBvcHVwLCBjYWxsZWQgYnkgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpLgogICAgIHZpcnR1
YWwgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxQ
b3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7Ci0g
ICAgdmlydHVhbCBSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUo
UG9wdXBNZW51Q2xpZW50KikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPFBvcHVwTWVu
dT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0
dWFsIFJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQmKSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdEFjY2Vzc2liaWxp
dHlOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYT2JqZWN0Q2FjaGU6OkFYTm90
aWZpY2F0aW9uKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcG9zdEFjY2Vzc2liaWxpdHlOb3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCYsIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9u
KSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5S
ZWN0KGNvbnN0IEludFJlY3QmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVjb21tZW5kZWRTY3Jv
bGxiYXJTdHlsZURpZENoYW5nZShTY3JvbGxiYXJTdHlsZSkgeyB9CkBAIC00MDgsMTYgKzQxNCwx
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhj
b25zdCBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiYpIHsgfTsKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygpIHsgcmV0dXJuIGZhbHNlOyB9OwogCi0gICAgdmlydHVh
bCB2b2lkIGRpZEFkZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5ZXIqKSB7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciopIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBkaWRBZGRIZWFkZXJMYXllcihHcmFwaGljc0xheWVyJikgeyB9CisgICAgdmlydHVhbCB2
b2lkIGRpZEFkZEZvb3RlckxheWVyKEdyYXBoaWNzTGF5ZXImKSB7IH0KIAotICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3Kikg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZWRC
YWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9k
dWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCB1aW50NjRfdCkgeyB9CiAKICNpZiBFTkFCTEUoTUVESUFf
U0VTU0lPTikKICAgICB2aXJ0dWFsIHZvaWQgaGFzTWVkaWFTZXNzaW9uV2l0aEFjdGl2ZU1lZGlh
RWxlbWVudHNEaWRDaGFuZ2UoYm9vbCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG1lZGlhU2Vzc2lv
bk1ldGFkYXRhRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1ldGFkYXRhJikg
eyB9CisgICAgdmlydHVhbCB2b2lkIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKGNvbnN0
IE1lZGlhU2Vzc2lvbk1ldGFkYXRhJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGZvY3VzZWRDb250
ZW50TWVkaWFFbGVtZW50RGlkQ2hhbmdlKHVpbnQ2NF90KSB7IH0KICNlbmRpZgogCkBAIC00Mjcs
MTEgKzQzMywxMiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShURUxFUEhPTkVfTlVN
QkVSX0RFVEVDVElPTikgJiYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVU
ZWxlcGhvbmVOdW1iZXJDbGljayhjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2lu
dCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVUZWxlcGhvbmVOdW1iZXJDbGljayhjb25z
dCBTdHJpbmcmLCBjb25zdCBJbnRQb2ludCYpIHsgfQogI2VuZGlmCisKICNpZiBFTkFCTEUoU0VS
VklDRV9DT05UUk9MUykKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlU2VsZWN0aW9uU2VydmljZUNs
aWNrKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxldmFudFNl
bGVjdGlvblNlcnZpY2VzKGJvb2wgLyogaXNUZXh0T25seSAqLykgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKEZyYW1l
U2VsZWN0aW9uJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBJbnRQb2ludCYpIHsgfQor
ICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxldmFudFNlbGVjdGlvblNlcnZpY2VzKGJvb2wgLyppc1Rl
eHRPbmx5Ki8pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudHMoKSBjb25zdCB7IHJldHVybiB0
cnVlOyB9CkBAIC00NDEsMTMgKzQ0OCwxMyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdJUkVMRVNT
X1BMQVlCQUNLX1RBUkdFVCkKICAgICB2aXJ0dWFsIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNr
ZXJDbGllbnQodWludDY0X3QgLypjb250ZXh0SWQqLykgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJl
bW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IC8qY29udGV4dElkKi8pIHsg
fQotICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgLypj
b250ZXh0SWQqLywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sIC8qIGlzVmlkZW8gKi8p
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3Qg
Lypjb250ZXh0SWQqLywgY29uc3QgSW50UG9pbnQmLCBib29sIC8qaXNWaWRlbyovKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSh1
aW50NjRfdCAvKmNvbnRleHRJZCovLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJs
ZWQoYm9vbCkgIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1Rhcmdl
dFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRD
b250ZXh0OjpTdGF0ZSkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNr
VGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRl
eHQ6OlN0YXRlKSB7IH0KICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lkIGltYWdlT3JNZWRpYURv
Y3VtZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBpbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkKGNvbnN0IEludFNpemUmKSB7
IH0KIAogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikKICAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKGNvbnN0IFN0cmluZyYgLypkZXRh
aWxzKi8sIGNvbnN0IFN0cmluZyYgLypkZXNjcmlwdGlvbiovLCBNZWRpYVBsYXllclJlcXVlc3RJ
bnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IDBlN2E3N2I2ZGEyODlhMDI1NjkzNTM0
YWQxZmM0ZDUxMDljNTBmMzMuLjM0NzY1ZmIyNmE0MThlZTczMzg3NmJhMzgyYjg3OWQyMDE4ODQw
YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAK
QEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNsZWFyQ29udGV4
dE1lbnUoKQogICAgIG1fbWVudVByb3ZpZGVyID0gbnVsbHB0cjsKIH0KIAotdm9pZCBDb250ZXh0
TWVudUNvbnRyb2xsZXI6OmhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZlbnQqIGV2ZW50KQordm9p
ZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZlbnQmIGV2
ZW50KQogewogICAgIG1fY29udGV4dE1lbnUgPSBtYXliZUNyZWF0ZUNvbnRleHRNZW51KGV2ZW50
KTsKICAgICBpZiAoIW1fY29udGV4dE1lbnUpCkBAIC0xMTAsOSArMTEwLDkgQEAgc3RhdGljIHN0
ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudUl0ZW0+IHNlcGFyYXRvckl0ZW0oKQogICAgIHJldHVy
biBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnVJdGVtPihuZXcgQ29udGV4dE1lbnVJdGVtKFNl
cGFyYXRvclR5cGUsIENvbnRleHRNZW51SXRlbVRhZ05vQWN0aW9uLCBTdHJpbmcoKSkpOwogfQog
Ci12b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50KiBldmVu
dCwgUGFzc1JlZlB0cjxDb250ZXh0TWVudVByb3ZpZGVyPiBtZW51UHJvdmlkZXIpCit2b2lkIENv
bnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50JiBldmVudCwgQ29udGV4
dE1lbnVQcm92aWRlciYgcHJvdmlkZXIpCiB7Ci0gICAgbV9tZW51UHJvdmlkZXIgPSBtZW51UHJv
dmlkZXI7CisgICAgbV9tZW51UHJvdmlkZXIgPSAmcHJvdmlkZXI7CiAKICAgICBtX2NvbnRleHRN
ZW51ID0gbWF5YmVDcmVhdGVDb250ZXh0TWVudShldmVudCk7CiAgICAgaWYgKCFtX2NvbnRleHRN
ZW51KSB7CkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNo
b3dDb250ZXh0TWVudShFdmVudCogZXZlbnQsIFBhc3NSZWZQdHI8Q29udGV4dE1lbnUKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fbWVudVByb3ZpZGVyLT5wb3B1bGF0ZUNvbnRleHRN
ZW51KG1fY29udGV4dE1lbnUuZ2V0KCkpOworICAgIHByb3ZpZGVyLnBvcHVsYXRlQ29udGV4dE1l
bnUobV9jb250ZXh0TWVudS5nZXQoKSk7CiAgICAgaWYgKG1fY29udGV4dC5oaXRUZXN0UmVzdWx0
KCkuaXNTZWxlY3RlZCgpKSB7CiAgICAgICAgIGFwcGVuZEl0ZW0oKnNlcGFyYXRvckl0ZW0oKSwg
bV9jb250ZXh0TWVudS5nZXQoKSk7CiAgICAgICAgIHBvcHVsYXRlKCk7CkBAIC0xMjksMzMgKzEy
OSwzNCBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50
KiBldmVudCwgUGFzc1JlZlB0cjxDb250ZXh0TWVudQogfQogCiAjaWYgRU5BQkxFKFNFUlZJQ0Vf
Q09OVFJPTFMpCisKIHN0YXRpYyBJbWFnZSogaW1hZ2VGcm9tSW1hZ2VFbGVtZW50Tm9kZShOb2Rl
JiBub2RlKQogewotICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBub2RlLnJlbmRlcmVyKCk7
CisgICAgYXV0byogcmVuZGVyZXIgPSBub2RlLnJlbmRlcmVyKCk7CiAgICAgaWYgKCFpczxSZW5k
ZXJJbWFnZT4ocmVuZGVyZXIpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBDYWNoZWRJ
bWFnZSogaW1hZ2UgPSBkb3duY2FzdDxSZW5kZXJJbWFnZT4oKnJlbmRlcmVyKS5jYWNoZWRJbWFn
ZSgpOworICAgIGF1dG8qIGltYWdlID0gZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlciku
Y2FjaGVkSW1hZ2UoKTsKICAgICBpZiAoIWltYWdlIHx8IGltYWdlLT5lcnJvck9jY3VycmVkKCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwotCiAgICAgcmV0dXJuIGltYWdlLT5pbWFnZUZvclJl
bmRlcmVyKHJlbmRlcmVyKTsKIH0KKwogI2VuZGlmCiAKLXN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0
TWVudT4gQ29udGV4dE1lbnVDb250cm9sbGVyOjptYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50
KiBldmVudCkKK3N0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gQ29udGV4dE1lbnVDb250cm9s
bGVyOjptYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50JiBldmVudCkKIHsKLSAgICBBU1NFUlQo
ZXZlbnQpOwotICAgIAotICAgIGlmICghaXM8TW91c2VFdmVudD4oKmV2ZW50KSkKKyAgICBpZiAo
IWlzPE1vdXNlRXZlbnQ+KGV2ZW50KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBN
b3VzZUV2ZW50JiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VFdmVudD4oKmV2ZW50KTsKLSAg
ICBIaXRUZXN0UmVzdWx0IHJlc3VsdChtb3VzZUV2ZW50LmFic29sdXRlTG9jYXRpb24oKSk7Cisg
ICAgYXV0byYgbW91c2VFdmVudCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+KGV2ZW50KTsKKyAgICBh
dXRvKiBub2RlID0gbW91c2VFdmVudC50YXJnZXQoKS0+dG9Ob2RlKCk7CisgICAgaWYgKCFub2Rl
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvKiBmcmFtZSA9IG5vZGUtPmRvY3Vt
ZW50KCkuZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAotICAgIE5vZGUqIG5vZGUgPSBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpOwotICAgIGlmIChG
cmFtZSogZnJhbWUgPSBub2RlLT5kb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgIHJlc3VsdCA9
IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2ludChtb3VzZUV2ZW50LmFi
c29sdXRlTG9jYXRpb24oKSk7Ci0gICAgCisgICAgYXV0byByZXN1bHQgPSBmcmFtZS0+ZXZlbnRI
YW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQobW91c2VFdmVudC5hYnNvbHV0ZUxvY2F0aW9u
KCkpOwogICAgIGlmICghcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIApAQCAtMTYzLDcgKzE2NCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0
TWVudT4gQ29udGV4dE1lbnVDb250cm9sbGVyOjptYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50
CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBpZiAobm9kZS0+aXNJbWFnZUNv
bnRyb2xzQnV0dG9uRWxlbWVudCgpKSB7Ci0gICAgICAgIGlmIChJbWFnZSogaW1hZ2UgPSBpbWFn
ZUZyb21JbWFnZUVsZW1lbnROb2RlKCpyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpKQorICAg
ICAgICBpZiAoYXV0byogaW1hZ2UgPSBpbWFnZUZyb21JbWFnZUVsZW1lbnROb2RlKCpyZXN1bHQu
aW5uZXJOb25TaGFyZWROb2RlKCkpKQogICAgICAgICAgICAgbV9jb250ZXh0LnNldENvbnRyb2xs
ZWRJbWFnZShpbWFnZSk7CiAKICAgICAgICAgLy8gRklYTUU6IElmIHdlIGNvdWxkbid0IGdldCB0
aGUgaW1hZ2UgdGhlbiB3ZSBzaG91bGRuJ3QgdHJ5IHRvIHNob3cgdGhlIGltYWdlIGNvbnRyb2xz
IG1lbnUgZm9yIGl0LgpAQCAtMTcxLDI0ICsxNzIsMjQgQEAgc3RkOjp1bmlxdWVfcHRyPENvbnRl
eHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZl
bnQKICAgICB9CiAjZW5kaWYKIAotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1l
bnU+KG5ldyBDb250ZXh0TWVudSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q29udGV4
dE1lbnU+KCk7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1l
bnUoRXZlbnQqIGV2ZW50KQordm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0
TWVudShFdmVudCYgZXZlbnQpCiB7CiAgICAgaWYgKG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVy
KCkuZW5hYmxlZCgpKQogICAgICAgICBhZGRJbnNwZWN0RWxlbWVudEl0ZW0oKTsKIAotICAgIGV2
ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7
CiB9CiAKLXN0YXRpYyB2b2lkIG9wZW5OZXdXaW5kb3coY29uc3QgVVJMJiB1cmxUb0xvYWQsIEZy
YW1lKiBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5KQorc3RhdGljIHZvaWQgb3Blbk5ld1dpbmRvdyhjb25zdCBVUkwmIHVybFRv
TG9hZCwgRnJhbWUmIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiB7Ci0gICAgUGFnZSogb2xkUGFnZSA9IGZyYW1lLT5wYWdl
KCk7CisgICAgUGFnZSogb2xkUGFnZSA9IGZyYW1lLnBhZ2UoKTsKICAgICBpZiAoIW9sZFBhZ2Up
CiAgICAgICAgIHJldHVybjsKIAotICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChmcmFtZS0+
ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybFRvTG9hZCwg
ZnJhbWUtPmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSksIExvY2tIaXN0b3J5OjpObywgTG9j
a0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25U
b0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzLCBzaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QoZnJh
bWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybFRvTG9h
ZCwgZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBM
b2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlv
blRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MsIHNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwogCiAgICAgUGFnZSogbmV3UGFnZSA9IG9sZFBhZ2Ut
PmNocm9tZSgpLmNyZWF0ZVdpbmRvdyhmcmFtZSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwg
TmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKSk7CiAgICAgaWYgKCFu
ZXdQYWdlKQpAQCAtMTk4LDE1ICsxOTksMTcgQEAgc3RhdGljIHZvaWQgb3Blbk5ld1dpbmRvdyhj
b25zdCBVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWwKIH0K
IAogI2lmIFBMQVRGT1JNKEdUSykKLXN0YXRpYyB2b2lkIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIo
VUNoYXIgY2hhcmFjdGVyLCBGcmFtZSogZnJhbWUpCisKK3N0YXRpYyB2b2lkIGluc2VydFVuaWNv
ZGVDaGFyYWN0ZXIoVUNoYXIgY2hhcmFjdGVyLCBGcmFtZSYgZnJhbWUpCiB7CiAgICAgU3RyaW5n
IHRleHQoJmNoYXJhY3RlciwgMSk7Ci0gICAgaWYgKCFmcmFtZS0+ZWRpdG9yKCkuc2hvdWxkSW5z
ZXJ0VGV4dCh0ZXh0LCBmcmFtZS0+c2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQo
KSwgRWRpdG9ySW5zZXJ0QWN0aW9uOjpUeXBlZCkpCisgICAgaWYgKCFmcmFtZS5lZGl0b3IoKS5z
aG91bGRJbnNlcnRUZXh0KHRleHQsIGZyYW1lLT5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5n
ZSgpLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OlR5cGVkKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgQVNTRVJUKGZyYW1lLT5kb2N1bWVudCgpKTsKICAgICBUeXBpbmdDb21tYW5kOjppbnNl
cnRUZXh0KCpmcmFtZS0+ZG9jdW1lbnQoKSwgdGV4dCwgMCwgVHlwaW5nQ29tbWFuZDo6VGV4dENv
bXBvc2l0aW9uTm9uZSk7CiB9CisKICNlbmRpZgogCiB2b2lkIENvbnRleHRNZW51Q29udHJvbGxl
cjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjb25z
dCBTdHJpbmcmIHRpdGxlKQpAQCAtMjI1LDcgKzIyOCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24s
IGNvCiAKICAgICBzd2l0Y2ggKGFjdGlvbikgewogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
T3BlbkxpbmtJbk5ld1dpbmRvdzoKLSAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0
VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeTo6U2hvdWxkQWxsb3dFeHRlcm5hbFNjaGVtZXMpOworICAgICAgICBvcGVuTmV3
V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksICpmcmFt
ZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3dFeHRlcm5hbFNjaGVt
ZXMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2Fk
TGlua1RvRGlzazoKICAgICAgICAgLy8gRklYTUU6IFNvbWUgZGF5IHdlIHNob3VsZCBiZSBhYmxl
IHRvIGRvIHRoaXMgZnJvbSB3aXRoaW4gV2ViQ29yZS4gKEJ1ZyAxMTc3MDkpCkBAIC0yMzUsNyAr
MjM4LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVj
dGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KICAgICAgICAgZnJhbWUtPmVkaXRvcigp
LmNvcHlVUkwobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgbV9j
b250ZXh0LmhpdFRlc3RSZXN1bHQoKS50ZXh0Q29udGVudCgpKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdzoKLSAgICAgICAg
b3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlSW1hZ2VVUkwo
KSwgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsK
KyAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRl
SW1hZ2VVUkwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRO
b3RBbGxvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93
bmxvYWRJbWFnZVRvRGlzazoKICAgICAgICAgLy8gRklYTUU6IFNvbWUgZGF5IHdlIHNob3VsZCBi
ZSBhYmxlIHRvIGRvIHRoaXMgZnJvbSB3aXRoaW4gV2ViQ29yZS4gKEJ1ZyAxMTc3MDkpCkBAIC0y
NTIsNyArMjU1LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRl
bVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KICAgICAgICAgYnJlYWs7CiAj
ZW5kaWYKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93Ogot
ICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVN
ZWRpYVVSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90
QWxsb3cpOworICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCku
YWJzb2x1dGVNZWRpYVVSTCgpLCAqZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6
OlNob3VsZE5vdEFsbG93KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdEb3dubG9hZE1lZGlhVG9EaXNrOgogICAgICAgICAvLyBGSVhNRTogU29tZSBkYXkgd2Ug
c2hvdWxkIGJlIGFibGUgdG8gZG8gdGhpcyBmcm9tIHdpdGhpbiBXZWJDb3JlLiAoQnVnIDExNzcw
OSkKQEAgLTI4NSw5ICsyODgsOSBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4
dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwogICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3c6IHsKICAgICAgICAgRG9jdW1l
bnRMb2FkZXIqIGxvYWRlciA9IGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpOwogICAg
ICAgICBpZiAoIWxvYWRlci0+dW5yZWFjaGFibGVVUkwoKS5pc0VtcHR5KCkpCi0gICAgICAgICAg
ICBvcGVuTmV3V2luZG93KGxvYWRlci0+dW5yZWFjaGFibGVVUkwoKSwgZnJhbWUsIFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICAgICAgICAgIG9wZW5O
ZXdXaW5kb3cobG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLCAqZnJhbWUsIFNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgb3Blbk5ld1dpbmRvdyhsb2FkZXItPnVybCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOworICAgICAgICAgICAgb3Blbk5ld1dpbmRvdyhs
b2FkZXItPnVybCgpLCAqZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3Vs
ZE5vdEFsbG93KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgQ29udGV4dE1lbnVJ
dGVtVGFnQ29weToKQEAgLTM5Myw3ICszOTYsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxl
cjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwog
ICAgICAgICBpZiAoRnJhbWUqIHRhcmdldEZyYW1lID0gbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQo
KS50YXJnZXRGcmFtZSgpKQogICAgICAgICAgICAgdGFyZ2V0RnJhbWUtPmxvYWRlcigpLmxvYWRG
cmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlP
cmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1
dGVMaW5rVVJMKCksIGZyYW1lLT5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpLCBMb2NrSGlz
dG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxs
b3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBw
cmVzcywgdGFyZ2V0RnJhbWUtPmlzTWFpbkZyYW1lKCkgPyBTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5OjpTaG91bGRBbGxvdyA6IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3Vs
ZE5vdEFsbG93KSwgbnVsbHB0ciwgbnVsbHB0cik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
IG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwo
KSwgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93KTsKKyAg
ICAgICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0
ZUxpbmtVUkwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRB
bGxvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQm9sZDoK
ICAgICAgICAgZnJhbWUtPmVkaXRvcigpLmNvbW1hbmQoIlRvZ2dsZUJvbGQiKS5leGVjdXRlKCk7
CkBAIC0xNDI5LDI2ICsxNDMyLDMwIEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjaGVj
a09yRW5hYmxlSWZOZWVkZWQoQ29udGV4dE1lbnVJdGVtJiBpdGVtKSBjb25zdAogfQogCiAjaWYg
VVNFKEFDQ0VTU0lCSUxJVFlfQ09OVEVYVF9NRU5VUykKLXZvaWQgQ29udGV4dE1lbnVDb250cm9s
bGVyOjpzaG93Q29udGV4dE1lbnVBdChGcmFtZSogZnJhbWUsIGNvbnN0IEludFBvaW50JiBjbGlj
a1BvaW50KQorCit2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51QXQo
RnJhbWUmIGZyYW1lLCBjb25zdCBJbnRQb2ludCYgY2xpY2tQb2ludCkKIHsKICAgICBjbGVhckNv
bnRleHRNZW51KCk7CiAgICAgCiAgICAgLy8gU2ltdWxhdGUgYSBjbGljayBpbiB0aGUgbWlkZGxl
IG9mIHRoZSBhY2Nlc3NpYmlsaXR5IG9iamVjdC4KICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgbW91
c2VFdmVudChjbGlja1BvaW50LCBjbGlja1BvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZvcm1FdmVu
dDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3VycmVudFRp
bWUoKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7Ci0gICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLmhh
bmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKLSAgICBib29sIGhhbmRsZWQgPSBmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkuc2VuZENvbnRleHRNZW51RXZlbnQobW91c2VFdmVudCk7CisgICAg
ZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KG1vdXNlRXZlbnQpOwor
ICAgIGJvb2wgaGFuZGxlZCA9IGZyYW1lLmV2ZW50SGFuZGxlcigpLnNlbmRDb250ZXh0TWVudUV2
ZW50KG1vdXNlRXZlbnQpOwogICAgIGlmIChoYW5kbGVkKQogICAgICAgICBtX2NsaWVudC5zaG93
Q29udGV4dE1lbnUoKTsKIH0KKwogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9M
UykKLXZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93SW1hZ2VDb250cm9sc01lbnUoRXZl
bnQqIGV2ZW50KQorCit2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0ltYWdlQ29udHJv
bHNNZW51KEV2ZW50JiBldmVudCkKIHsKICAgICBjbGVhckNvbnRleHRNZW51KCk7CiAgICAgaGFu
ZGxlQ29udGV4dE1lbnVFdmVudChldmVudCk7CiAgICAgbV9jbGllbnQuc2hvd0NvbnRleHRNZW51
KCk7CiB9CisKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaAppbmRleCAxMTI1NmUxY2U3OWFiMWU3YjMy
MTU4Zjc4NGRjNzg4MTM2NDc0ZDhkLi5mNjM5NjQ4YjE4NjIwNDYwNmVmY2E1NmE5MDc4MmM4OTM3
YTBlOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMjksMjEgKzI5LDE2IEBACiAKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRleHQuaCIK
ICNpbmNsdWRlICJDb250ZXh0TWVudUl0ZW0uaCIKLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDb250ZXh0TWVudTsKIGNsYXNzIENvbnRl
eHRNZW51Q2xpZW50OwotY2xhc3MgQ29udGV4dE1lbnVJdGVtOwogY2xhc3MgQ29udGV4dE1lbnVQ
cm92aWRlcjsKIGNsYXNzIEV2ZW50OwogY2xhc3MgUGFnZTsKIAogY2xhc3MgQ29udGV4dE1lbnVD
b250cm9sbGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb250ZXh0TWVudUNvbnRyb2xs
ZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKIHB1YmxpYzoKICAgICBDb250ZXh0TWVudUNvbnRyb2xsZXIoUGFnZSYsIENvbnRleHRNZW51
Q2xpZW50Jik7CiAgICAgfkNvbnRleHRNZW51Q29udHJvbGxlcigpOwpAQCAtNTQsOCArNDksOCBA
QCBwdWJsaWM6CiAgICAgQ29udGV4dE1lbnUqIGNvbnRleHRNZW51KCkgY29uc3QgeyByZXR1cm4g
bV9jb250ZXh0TWVudS5nZXQoKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xlYXJDb250
ZXh0TWVudSgpOwogCi0gICAgdm9pZCBoYW5kbGVDb250ZXh0TWVudUV2ZW50KEV2ZW50Kik7Ci0g
ICAgdm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQqLCBQYXNzUmVmUHRyPENvbnRleHRNZW51UHJv
dmlkZXI+KTsKKyAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZlbnQmKTsKKyAgICB2
b2lkIHNob3dDb250ZXh0TWVudShFdmVudCYsIENvbnRleHRNZW51UHJvdmlkZXImKTsKIAogICAg
IHZvaWQgcG9wdWxhdGUoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbnRleHRNZW51SXRl
bVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKQEAgLTY4
LDE2ICs2MywxNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0VGVzdFJl
c3VsdCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCk7IH0KIAogI2lm
IFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCi0gICAgdm9pZCBzaG93Q29udGV4dE1l
bnVBdChGcmFtZSosIGNvbnN0IEludFBvaW50JiBjbGlja1BvaW50KTsKKyAgICB2b2lkIHNob3dD
b250ZXh0TWVudUF0KEZyYW1lJiwgY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQpOwogI2VuZGlm
CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSAgICB2b2lkIHNob3dJbWFnZUNvbnRy
b2xzTWVudShFdmVudCopOworICAgIHZvaWQgc2hvd0ltYWdlQ29udHJvbHNNZW51KEV2ZW50Jik7
CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IG1h
eWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQqKTsKLSAgICB2b2lkIHNob3dDb250ZXh0TWVudShF
dmVudCopOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gbWF5YmVDcmVhdGVDb250
ZXh0TWVudShFdmVudCYpOworICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KEV2ZW50Jik7CiAgICAg
CiAgICAgdm9pZCBhcHBlbmRJdGVtKENvbnRleHRNZW51SXRlbSYsIENvbnRleHRNZW51KiBwYXJl
bnRNZW51KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDRmMDAyZjlkMjUxN2Q5
MWVkNTU3ZWIzMzY4MzEwN2ZjZGVmYTBkOTEuLjM5N2E1N2E5NDUwMjJjN2FmNmQxY2Y1MGMzZGEz
NTNjOTk3NTZiZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE1MCw5ICsxNTAs
OSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBvc3RNZXNzYWdlVGltZXIgOiBwdWJs
aWMgVGltZXJCYXNlIHsKIHB1YmxpYzoKLSAgICBQb3N0TWVzc2FnZVRpbWVyKERPTVdpbmRvdyYg
d2luZG93LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VPcmlnaW4sIERPTVdpbmRvdyYgc291cmNlLCBzdGQ6OnVuaXF1ZV9wdHI8
TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzLCBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+
JiYgdGFyZ2V0T3JpZ2luLCBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiYmIHN0YWNrVHJhY2UpCisg
ICAgUG9zdE1lc3NhZ2VUaW1lcihET01XaW5kb3cmIHdpbmRvdywgUmVmPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgRE9NV2luZG93
JiBzb3VyY2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hhbm5l
bHMsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiB0YXJnZXRPcmlnaW4sIFJlZlB0cjxTY3JpcHRD
YWxsU3RhY2s+JiYgc3RhY2tUcmFjZSkKICAgICAgICAgOiBtX3dpbmRvdyh3aW5kb3cpCi0gICAg
ICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCisgICAgICAgICwgbV9tZXNzYWdlKFdURk1vdmUobWVz
c2FnZSkpCiAgICAgICAgICwgbV9vcmlnaW4oc291cmNlT3JpZ2luKQogICAgICAgICAsIG1fc291
cmNlKHNvdXJjZSkKICAgICAgICAgLCBtX2NoYW5uZWxzKFdURk1vdmUoY2hhbm5lbHMpKQpAQCAt
MTgxLDcgKzE4MSw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgUmVmPERPTVdpbmRvdz4gbV93
aW5kb3c7Ci0gICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9tZXNzYWdlOworICAg
IFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fbWVzc2FnZTsKICAgICBTdHJpbmcgbV9vcmln
aW47CiAgICAgUmVmPERPTVdpbmRvdz4gbV9zb3VyY2U7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1l
c3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBtX2NoYW5uZWxzOwpAQCAtMzI1LDEyICszMjUsMTAgQEAg
dm9pZCBET01XaW5kb3c6OmRpc3BhdGNoQWxsUGVuZGluZ1VubG9hZEV2ZW50cygpCiAvLyAzKSBD
b25zdHJhaW5zIHRoZSB3aW5kb3cgcmVjdCB0byB3aXRoaW4gdGhlIHRvcCBhbmQgbGVmdCBib3Vu
ZGFyaWVzIG9mIHRoZSBhdmFpbGFibGUgc2NyZWVuIHJlY3QuCiAvLyA0KSBDb25zdHJhaW5zIHRo
ZSB3aW5kb3cgcmVjdCB0byB3aXRoaW4gdGhlIGJvdHRvbSBhbmQgcmlnaHQgYm91bmRhcmllcyBv
ZiB0aGUgYXZhaWxhYmxlIHNjcmVlbiByZWN0LgogLy8gNSkgVHJhbnNsYXRlIHRoZSB3aW5kb3cg
cmVjdCBjb29yZGluYXRlcyB0byBiZSB3aXRoaW4gdGhlIGNvb3JkaW5hdGUgc3BhY2Ugb2YgdGhl
IHNjcmVlbi4KLUZsb2F0UmVjdCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSogcGFn
ZSwgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcykKK0Zsb2F0UmVjdCBET01XaW5kb3c6
OmFkanVzdFdpbmRvd1JlY3QoUGFnZSYgcGFnZSwgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hh
bmdlcykKIHsKLSAgICBBU1NFUlQocGFnZSk7Ci0KLSAgICBGbG9hdFJlY3Qgc2NyZWVuID0gc2Ny
ZWVuQXZhaWxhYmxlUmVjdChwYWdlLT5tYWluRnJhbWUoKS52aWV3KCkpOwotICAgIEZsb2F0UmVj
dCB3aW5kb3cgPSBwYWdlLT5jaHJvbWUoKS53aW5kb3dSZWN0KCk7CisgICAgRmxvYXRSZWN0IHNj
cmVlbiA9IHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS5tYWluRnJhbWUoKS52aWV3KCkpOworICAg
IEZsb2F0UmVjdCB3aW5kb3cgPSBwYWdlLmNocm9tZSgpLndpbmRvd1JlY3QoKTsKIAogICAgIC8v
IE1ha2Ugc3VyZSB3ZSdyZSBpbiBhIHZhbGlkIHN0YXRlIGJlZm9yZSBhZGp1c3RpbmcgZGltZW5z
aW9ucy4KICAgICBBU1NFUlQoc3RkOjppc2Zpbml0ZShzY3JlZW4ueCgpKSk7CkBAIC0zNTIsNyAr
MzUwLDcgQEAgRmxvYXRSZWN0IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChQYWdlKiBwYWdl
LCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2UKICAgICBpZiAoIXN0ZDo6aXNuYW4ocGVu
ZGluZ0NoYW5nZXMuaGVpZ2h0KCkpKQogICAgICAgICB3aW5kb3cuc2V0SGVpZ2h0KHBlbmRpbmdD
aGFuZ2VzLmhlaWdodCgpKTsKIAotICAgIEZsb2F0U2l6ZSBtaW5pbXVtU2l6ZSA9IHBhZ2UtPmNo
cm9tZSgpLmNsaWVudCgpLm1pbmltdW1XaW5kb3dTaXplKCk7CisgICAgRmxvYXRTaXplIG1pbmlt
dW1TaXplID0gcGFnZS5jaHJvbWUoKS5jbGllbnQoKS5taW5pbXVtV2luZG93U2l6ZSgpOwogICAg
IHdpbmRvdy5zZXRXaWR0aChzdGQ6Om1pbihzdGQ6Om1heChtaW5pbXVtU2l6ZS53aWR0aCgpLCB3
aW5kb3cud2lkdGgoKSksIHNjcmVlbi53aWR0aCgpKSk7CiAgICAgd2luZG93LnNldEhlaWdodChz
dGQ6Om1pbihzdGQ6Om1heChtaW5pbXVtU2l6ZS5oZWlnaHQoKSwgd2luZG93LmhlaWdodCgpKSwg
c2NyZWVuLmhlaWdodCgpKSk7CiAKQEAgLTM2MywzOCArMzYxLDMxIEBAIEZsb2F0UmVjdCBET01X
aW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSogcGFnZSwgY29uc3QgRmxvYXRSZWN0JiBwZW5k
aW5nQ2hhbmdlCiAgICAgcmV0dXJuIHdpbmRvdzsKIH0KIAotYm9vbCBET01XaW5kb3c6OmFsbG93
UG9wVXAoRnJhbWUqIGZpcnN0RnJhbWUpCitib29sIERPTVdpbmRvdzo6YWxsb3dQb3BVcChGcmFt
ZSYgZmlyc3RGcmFtZSkKIHsKLSAgICBBU1NFUlQoZmlyc3RGcmFtZSk7Ci0gICAgCi0gICAgYXV0
byYgc2V0dGluZ3MgPSBmaXJzdEZyYW1lLT5zZXR0aW5ncygpOwotCi0gICAgaWYgKFNjcmlwdENv
bnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpIHx8IHNldHRpbmdzLmFsbG93V2luZG93
T3BlbldpdGhvdXRVc2VyR2VzdHVyZSgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIHJl
dHVybiBzZXR0aW5ncy5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KCk7Cisg
ICAgYXV0byYgc2V0dGluZ3MgPSBmaXJzdEZyYW1lLnNldHRpbmdzKCk7CisgICAgcmV0dXJuIFNj
cmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpCisgICAgICAgIHx8IHNldHRp
bmdzLmFsbG93V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVyZSgpCisgICAgICAgIHx8IHNldHRp
bmdzLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoKTsKIH0KIAogYm9vbCBE
T01XaW5kb3c6OmFsbG93UG9wVXAoKQogewotICAgIHJldHVybiBtX2ZyYW1lICYmIGFsbG93UG9w
VXAobV9mcmFtZSk7CisgICAgcmV0dXJuIG1fZnJhbWUgJiYgYWxsb3dQb3BVcCgqbV9mcmFtZSk7
CiB9CiAKLWJvb2wgRE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2coY29uc3QgRnJhbWUqIGZy
YW1lKQorYm9vbCBET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhjb25zdCBGcmFtZSYgZnJh
bWUpCiB7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgLy8g
T3ZlcnJpZGUgc3VwcG9ydCBmb3IgbGF5b3V0IHRlc3RpbmcgcHVycG9zZXMuCi0gICAgaWYgKGF1
dG8qIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpIHsKKyAgICBpZiAoYXV0byogZG9jdW1l
bnQgPSBmcmFtZS5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiB3aW5kb3cgPSBkb2N1
bWVudC0+ZG9tV2luZG93KCkpIHsKICAgICAgICAgICAgIGlmICh3aW5kb3ctPm1fY2FuU2hvd01v
ZGFsRGlhbG9nT3ZlcnJpZGUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy0+bV9jYW5T
aG93TW9kYWxEaWFsb2dPdmVycmlkZS52YWx1ZSgpOwogICAgICAgICB9CiAgICAgfQogCi0gICAg
YXV0byogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgcmV0dXJuIHBhZ2UgPyBwYWdlLT5jaHJv
bWUoKS5jYW5SdW5Nb2RhbCgpIDogZmFsc2U7CisgICAgYXV0byogcGFnZSA9IGZyYW1lLnBhZ2Uo
KTsKKyAgICByZXR1cm4gcGFnZSAmJiBwYWdlLT5jaHJvbWUoKS5jYW5SdW5Nb2RhbCgpOwogfQog
CiBzdGF0aWMgdm9pZCBsYW5ndWFnZXNDaGFuZ2VkQ2FsbGJhY2sodm9pZCogY29udGV4dCkKQEAg
LTQwNywyMCArMzk4LDE4IEBAIHZvaWQgRE9NV2luZG93OjpzZXRDYW5TaG93TW9kYWxEaWFsb2dP
dmVycmlkZShib29sIGFsbG93KQogICAgIG1fY2FuU2hvd01vZGFsRGlhbG9nT3ZlcnJpZGUgPSBh
bGxvdzsKIH0KIAotRE9NV2luZG93OjpET01XaW5kb3coRG9jdW1lbnQqIGRvY3VtZW50KQotICAg
IDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1lbnQpCi0gICAgLCBGcmFtZURlc3Ry
dWN0aW9uT2JzZXJ2ZXIoZG9jdW1lbnQtPmZyYW1lKCkpCitET01XaW5kb3c6OkRPTVdpbmRvdyhE
b2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmZG9j
dW1lbnQpCisgICAgLCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1lbnQuZnJhbWUoKSkK
ICAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBBU1NFUlQoZnJhbWUoKSk7Ci0g
ICAgQVNTRVJUKERPTVdpbmRvdzo6ZG9jdW1lbnQoKSk7Ci0KICAgICBhZGRMYW5ndWFnZUNoYW5n
ZU9ic2VydmVyKHRoaXMsICZsYW5ndWFnZXNDaGFuZ2VkQ2FsbGJhY2spOwogfQogCi12b2lkIERP
TVdpbmRvdzo6ZGlkU2VjdXJlVHJhbnNpdGlvblRvKERvY3VtZW50KiBkb2N1bWVudCkKK3ZvaWQg
RE9NV2luZG93OjpkaWRTZWN1cmVUcmFuc2l0aW9uVG8oRG9jdW1lbnQmIGRvY3VtZW50KQogewot
ICAgIG9ic2VydmVDb250ZXh0KGRvY3VtZW50KTsKKyAgICBvYnNlcnZlQ29udGV4dCgmZG9jdW1l
bnQpOwogfQogCiBET01XaW5kb3c6On5ET01XaW5kb3coKQpAQCAtNTQ3LDE0ICs1MzYsMTQgQEAg
dm9pZCBET01XaW5kb3c6OmRlY3JlbWVudEdhbWVwYWRFdmVudExpc3RlbmVyQ291bnQoKQogCiAj
ZW5kaWYKIAotdm9pZCBET01XaW5kb3c6OnJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVy
dHkqIHByb3BlcnR5KQordm9pZCBET01XaW5kb3c6OnJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93
UHJvcGVydHkmIHByb3BlcnR5KQogewotICAgIG1fcHJvcGVydGllcy5hZGQocHJvcGVydHkpOwor
ICAgIG1fcHJvcGVydGllcy5hZGQoJnByb3BlcnR5KTsKIH0KIAotdm9pZCBET01XaW5kb3c6OnVu
cmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSogcHJvcGVydHkpCit2b2lkIERPTVdp
bmRvdzo6dW5yZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5JiBwcm9wZXJ0eSkKIHsK
LSAgICBtX3Byb3BlcnRpZXMucmVtb3ZlKHByb3BlcnR5KTsKKyAgICBtX3Byb3BlcnRpZXMucmVt
b3ZlKCZwcm9wZXJ0eSk7CiB9CiAKIHZvaWQgRE9NV2luZG93OjpyZXNldFVubGVzc1N1c3BlbmRl
ZEZvckRvY3VtZW50U3VzcGVuc2lvbigpCkBAIC05NzQsMjMgKzk2MywxOCBAQCB2b2lkIERPTVdp
bmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVkKFBvc3RNZXNzYWdlVGltZXImIHRpbWVyKQogICAg
IGlmICghZG9jdW1lbnQoKSB8fCAhaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGRpc3BhdGNoTWVzc2FnZUV2ZW50V2l0aE9yaWdpbkNoZWNrKHRp
bWVyLnRhcmdldE9yaWdpbigpLCB0aW1lci5ldmVudCgqZG9jdW1lbnQoKSksIHRpbWVyLnN0YWNr
VHJhY2UoKSk7Ci19Ci0KLXZvaWQgRE9NV2luZG93OjpkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhP
cmlnaW5DaGVjayhTZWN1cml0eU9yaWdpbiogaW50ZW5kZWRUYXJnZXRPcmlnaW4sIEV2ZW50JiBl
dmVudCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UpCi17Ci0gICAgaWYg
KGludGVuZGVkVGFyZ2V0T3JpZ2luKSB7CisgICAgaWYgKGF1dG8qIGludGVuZGVkVGFyZ2V0T3Jp
Z2luID0gdGltZXIudGFyZ2V0T3JpZ2luKCkpIHsKICAgICAgICAgLy8gQ2hlY2sgdGFyZ2V0IG9y
aWdpbiBub3cgc2luY2UgdGhlIHRhcmdldCBkb2N1bWVudCBtYXkgaGF2ZSBjaGFuZ2VkIHNpbmNl
IHRoZSB0aW1lciB3YXMgc2NoZWR1bGVkLgogICAgICAgICBpZiAoIWludGVuZGVkVGFyZ2V0T3Jp
Z2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkg
ewotICAgICAgICAgICAgaWYgKFBhZ2VDb25zb2xlQ2xpZW50KiBwYWdlQ29uc29sZSA9IGNvbnNv
bGUoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIHBhZ2VDb25zb2xlID0gY29uc29sZSgpKSB7
CiAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJVbmFibGUgdG8g
cG9zdCBtZXNzYWdlIHRvICIsIGludGVuZGVkVGFyZ2V0T3JpZ2luLT50b1N0cmluZygpLCAiLiBS
ZWNpcGllbnQgaGFzIG9yaWdpbiAiLCBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLnRvU3Ry
aW5nKCksICIuXG4iKTsKLSAgICAgICAgICAgICAgICBwYWdlQ29uc29sZS0+YWRkTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWVzc2FnZSwgc3Rh
Y2tUcmFjZSk7CisgICAgICAgICAgICAgICAgcGFnZUNvbnNvbGUtPmFkZE1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UsIHRpbWVyLnN0
YWNrVHJhY2UoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICB9CiAKLSAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICBkaXNwYXRjaEV2ZW50
KHRpbWVyLmV2ZW50KCpkb2N1bWVudCgpKSk7CiB9CiAKIERPTVNlbGVjdGlvbiogRE9NV2luZG93
OjpnZXRTZWxlY3Rpb24oKQpAQCAtMTExMyw3ICsxMDk3LDcgQEAgdm9pZCBET01XaW5kb3c6OnBy
aW50KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX3Nob3VsZFByaW50V2hlbkZpbmlz
aGVkTG9hZGluZyA9IGZhbHNlOwotICAgIHBhZ2UtPmNocm9tZSgpLnByaW50KG1fZnJhbWUpOwor
ICAgIHBhZ2UtPmNocm9tZSgpLnByaW50KCptX2ZyYW1lKTsKIH0KIAogdm9pZCBET01XaW5kb3c6
OnN0b3AoKQpAQCAtMTE0NSw3ICsxMTI5LDcgQEAgdm9pZCBET01XaW5kb3c6OmFsZXJ0KGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKICAgICBwYWdlLT5wb2ludGVyTG9ja0NvbnRyb2xsZXIoKS5yZXF1
ZXN0UG9pbnRlclVubG9jaygpOwogI2VuZGlmCiAKLSAgICBwYWdlLT5jaHJvbWUoKS5ydW5KYXZh
U2NyaXB0QWxlcnQobV9mcmFtZSwgbWVzc2FnZSk7CisgICAgcGFnZS0+Y2hyb21lKCkucnVuSmF2
YVNjcmlwdEFsZXJ0KCptX2ZyYW1lLCBtZXNzYWdlKTsKIH0KIAogYm9vbCBET01XaW5kb3c6OmNv
bmZpcm0oY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMTE2Nyw3ICsxMTUxLDcgQEAgYm9vbCBE
T01XaW5kb3c6OmNvbmZpcm0oY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIHBhZ2UtPnBvaW50
ZXJMb2NrQ29udHJvbGxlcigpLnJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CiAjZW5kaWYKIAotICAg
IHJldHVybiBwYWdlLT5jaHJvbWUoKS5ydW5KYXZhU2NyaXB0Q29uZmlybShtX2ZyYW1lLCBtZXNz
YWdlKTsKKyAgICByZXR1cm4gcGFnZS0+Y2hyb21lKCkucnVuSmF2YVNjcmlwdENvbmZpcm0oKm1f
ZnJhbWUsIG1lc3NhZ2UpOwogfQogCiBTdHJpbmcgRE9NV2luZG93Ojpwcm9tcHQoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSkKQEAgLTExOTAsNyArMTE3
NCw3IEBAIFN0cmluZyBET01XaW5kb3c6OnByb21wdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlKQogI2VuZGlmCiAKICAgICBTdHJpbmcgcmV0dXJuVmFs
dWU7Ci0gICAgaWYgKHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRQcm9tcHQobV9mcmFtZSwg
bWVzc2FnZSwgZGVmYXVsdFZhbHVlLCByZXR1cm5WYWx1ZSkpCisgICAgaWYgKHBhZ2UtPmNocm9t
ZSgpLnJ1bkphdmFTY3JpcHRQcm9tcHQoKm1fZnJhbWUsIG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSwg
cmV0dXJuVmFsdWUpKQogICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CiAKICAgICByZXR1cm4g
U3RyaW5nKCk7CkBAIC0xMzY4LDcgKzEzNTIsNyBAQCB2b2lkIERPTVdpbmRvdzo6c2V0U3RhdHVz
KGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQobV9m
cmFtZS0+ZG9jdW1lbnQoKSk7IC8vIENsaWVudCBjYWxscyBzaG91bGRuJ3QgYmUgbWFkZSB3aGVu
IHRoZSBmcmFtZSBpcyBpbiBpbmNvbnNpc3RlbnQgc3RhdGUuCi0gICAgcGFnZS0+Y2hyb21lKCku
c2V0U3RhdHVzYmFyVGV4dChtX2ZyYW1lLCBtX3N0YXR1cyk7CisgICAgcGFnZS0+Y2hyb21lKCku
c2V0U3RhdHVzYmFyVGV4dCgqbV9mcmFtZSwgbV9zdGF0dXMpOwogfSAKICAgICAKIHZvaWQgRE9N
V2luZG93OjpzZXREZWZhdWx0U3RhdHVzKGNvbnN0IFN0cmluZyYgc3RyaW5nKSAKQEAgLTEzODMs
NyArMTM2Nyw3IEBAIHZvaWQgRE9NV2luZG93OjpzZXREZWZhdWx0U3RhdHVzKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQobV9mcmFtZS0+ZG9jdW1l
bnQoKSk7IC8vIENsaWVudCBjYWxscyBzaG91bGRuJ3QgYmUgbWFkZSB3aGVuIHRoZSBmcmFtZSBp
cyBpbiBpbmNvbnNpc3RlbnQgc3RhdGUuCi0gICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFy
VGV4dChtX2ZyYW1lLCBtX2RlZmF1bHRTdGF0dXMpOworICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0
YXR1c2JhclRleHQoKm1fZnJhbWUsIG1fZGVmYXVsdFN0YXR1cyk7CiB9CiAKIERPTVdpbmRvdyog
RE9NV2luZG93OjpzZWxmKCkgY29uc3QKQEAgLTE0MzIsOCArMTQxNiw3IEBAIERPTVdpbmRvdyog
RE9NV2luZG93Ojp0b3AoKSBjb25zdAogCiBEb2N1bWVudCogRE9NV2luZG93Ojpkb2N1bWVudCgp
IGNvbnN0CiB7Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IENvbnRleHRE
ZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgcmV0dXJu
IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KTsKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1l
bnQ+KENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
OwogfQogCiBSZWZQdHI8U3R5bGVNZWRpYT4gRE9NV2luZG93OjpzdHlsZU1lZGlhKCkgY29uc3QK
QEAgLTE2MTgsOCArMTYwMSw3IEBAIHZvaWQgRE9NV2luZG93Ojptb3ZlQnkoZmxvYXQgeCwgZmxv
YXQgeSkgY29uc3QKICAgICBGbG9hdFJlY3QgZnIgPSBwYWdlLT5jaHJvbWUoKS53aW5kb3dSZWN0
KCk7CiAgICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOwogICAgIHVwZGF0ZS5tb3ZlKHgsIHkpOwot
ICAgIC8vIFNlY3VyaXR5IGNoZWNrICh0aGUgc3BlYyB0YWxrcyBhYm91dCBVbml2ZXJzYWxCcm93
c2VyV3JpdGUgdG8gZGlzYWJsZSB0aGlzIGNoZWNrLi4uKQotICAgIHBhZ2UtPmNocm9tZSgpLnNl
dFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKKyAgICBwYWdlLT5j
aHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHVwZGF0ZSkpOwog
fQogCiB2b2lkIERPTVdpbmRvdzo6bW92ZVRvKGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CkBAIC0x
NjMzLDggKzE2MTUsNyBAQCB2b2lkIERPTVdpbmRvdzo6bW92ZVRvKGZsb2F0IHgsIGZsb2F0IHkp
IGNvbnN0CiAgICAgZnIuc2V0TG9jYXRpb24oc3IubG9jYXRpb24oKSk7CiAgICAgRmxvYXRSZWN0
IHVwZGF0ZSA9IGZyOwogICAgIHVwZGF0ZS5tb3ZlKHgsIHkpOwotICAgIC8vIFNlY3VyaXR5IGNo
ZWNrICh0aGUgc3BlYyB0YWxrcyBhYm91dCBVbml2ZXJzYWxCcm93c2VyV3JpdGUgdG8gZGlzYWJs
ZSB0aGlzIGNoZWNrLi4uKQotICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0
V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dS
ZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHVwZGF0ZSkpOwogfQogCiB2b2lkIERPTVdpbmRv
dzo6cmVzaXplQnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKQEAgLTE2NDYsNyArMTYyNyw3IEBA
IHZvaWQgRE9NV2luZG93OjpyZXNpemVCeShmbG9hdCB4LCBmbG9hdCB5KSBjb25zdAogICAgIEZs
b2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLndpbmRvd1JlY3QoKTsKICAgICBGbG9hdFNpemUg
ZGVzdCA9IGZyLnNpemUoKSArIEZsb2F0U2l6ZSh4LCB5KTsKICAgICBGbG9hdFJlY3QgdXBkYXRl
KGZyLmxvY2F0aW9uKCksIGRlc3QpOwotICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3Qo
YWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRX
aW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHVwZGF0ZSkpOwogfQogCiB2b2lkIERP
TVdpbmRvdzo6cmVzaXplVG8oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgY29uc3QKQEAgLTE2
NTgsNyArMTYzOSw3IEBAIHZvaWQgRE9NV2luZG93OjpyZXNpemVUbyhmbG9hdCB3aWR0aCwgZmxv
YXQgaGVpZ2h0KSBjb25zdAogICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLndpbmRv
d1JlY3QoKTsKICAgICBGbG9hdFNpemUgZGVzdCA9IEZsb2F0U2l6ZSh3aWR0aCwgaGVpZ2h0KTsK
ICAgICBGbG9hdFJlY3QgdXBkYXRlKGZyLmxvY2F0aW9uKCksIGRlc3QpOwotICAgIHBhZ2UtPmNo
cm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKKyAg
ICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHVw
ZGF0ZSkpOwogfQogCiBFeGNlcHRpb25PcjxpbnQ+IERPTVdpbmRvdzo6c2V0VGltZW91dChzdGQ6
OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0aW1lb3V0KQpAQCAtMjI4
Nyw4ICsyMjY4LDcgQEAgdm9pZCBET01XaW5kb3c6OnNob3dNb2RhbERpYWxvZyhjb25zdCBTdHJp
bmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBkaWFsb2dGZWEKIHsKICAgICBpZiAoIWlzQ3Vy
cmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgRnJhbWUqIGFj
dGl2ZUZyYW1lID0gYWN0aXZlV2luZG93LmZyYW1lKCk7Ci0gICAgaWYgKCFhY3RpdmVGcmFtZSkK
KyAgICBpZiAoIWFjdGl2ZVdpbmRvdy5mcmFtZSgpKQogICAgICAgICByZXR1cm47CiAgICAgRnJh
bWUqIGZpcnN0RnJhbWUgPSBmaXJzdFdpbmRvdy5mcmFtZSgpOwogICAgIGlmICghZmlyc3RGcmFt
ZSkKQEAgLTIzMDMsNyArMjI4Myw3IEBAIHZvaWQgRE9NV2luZG93OjpzaG93TW9kYWxEaWFsb2co
Y29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGlhbG9nRmVhCiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIWNhblNob3dNb2RhbERpYWxvZyhtX2ZyYW1lKSB8
fCAhZmlyc3RXaW5kb3cuYWxsb3dQb3BVcCgpKQorICAgIGlmICghY2FuU2hvd01vZGFsRGlhbG9n
KCptX2ZyYW1lKSB8fCAhZmlyc3RXaW5kb3cuYWxsb3dQb3BVcCgpKQogICAgICAgICByZXR1cm47
CiAKICAgICBSZWZQdHI8RnJhbWU+IGRpYWxvZ0ZyYW1lID0gY3JlYXRlV2luZG93KHVybFN0cmlu
ZywgZW1wdHlBdG9tLCBwYXJzZURpYWxvZ0ZlYXR1cmVzKGRpYWxvZ0ZlYXR1cmVzU3RyaW5nLCBz
Y3JlZW5BdmFpbGFibGVSZWN0KG1fZnJhbWUtPnZpZXcoKSkpLCBhY3RpdmVXaW5kb3csICpmaXJz
dEZyYW1lLCAqbV9mcmFtZSwgV1RGTW92ZShwcmVwYXJlRGlhbG9nRnVuY3Rpb24pKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5oCmluZGV4IGM1ZTkwMjg5ODg2ZDcyYWE4ODZjNDlhZGI5NDc5NWQzNzcw
NTliMzEuLjVkZTkyNzM0ZjU5MjA5NzA2MGNiYzYxMDU1NzI4MTUxM2I3NDhlZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9ET01XaW5kb3cuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDYsIDIwMDcsIDIwMDksIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMTA3LDcgKzEwNyw3IEBAIGNsYXNzIERP
TVdpbmRvdyBmaW5hbAogICAgICwgcHVibGljIEJhc2U2NFV0aWxpdGllcwogICAgICwgcHVibGlj
IFN1cHBsZW1lbnRhYmxlPERPTVdpbmRvdz4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RE9N
V2luZG93PiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KSB7IHJldHVybiBhZG9wdFJlZigqbmV3
IERPTVdpbmRvdyhkb2N1bWVudCkpOyB9CisgICAgc3RhdGljIFJlZjxET01XaW5kb3c+IGNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NV2luZG93KGRv
Y3VtZW50KSk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5ET01XaW5kb3coKTsKIAog
ICAgIC8vIEluIHNvbWUgcmFyZSBjYXNlcywgd2UnbGwgcmV1c2UgYSBET01XaW5kb3cgZm9yIGEg
bmV3IERvY3VtZW50LiBGb3IgZXhhbXBsZSwKQEAgLTExNywxNSArMTE3LDEwIEBAIHB1YmxpYzoK
ICAgICAvLyB3b24ndCBiZSBibG93biBhd2F5IHdoZW4gdGhlIG5ldHdvcmsgbG9hZCBjb21taXRz
LiBUbyBtYWtlIHRoYXQgaGFwcGVuLCB3ZQogICAgIC8vICJzZWN1cmVseSB0cmFuc2l0aW9uIiB0
aGUgZXhpc3RpbmcgRE9NV2luZG93IHRvIHRoZSBEb2N1bWVudCB0aGF0IHJlc3VsdHMgZnJvbQog
ICAgIC8vIHRoZSBuZXR3b3JrIGxvYWQuIFNlZSBhbHNvIFNlY3VyaXR5Q29udGV4dDo6aXNTZWN1
cmVUcmFuc2l0aW9uVG8uCi0gICAgdm9pZCBkaWRTZWN1cmVUcmFuc2l0aW9uVG8oRG9jdW1lbnQq
KTsKKyAgICB2b2lkIGRpZFNlY3VyZVRyYW5zaXRpb25UbyhEb2N1bWVudCYpOwogCi0gICAgRXZl
bnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBET01XaW5kb3dFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KLSAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsgfQotCi0gICAgRE9NV2luZG93KiB0b0RPTVdpbmRvdygpIG92ZXJyaWRlOwotCi0gICAg
dm9pZCByZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5Kik7Ci0gICAgdm9pZCB1bnJl
Z2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkqKTsKKyAgICB2b2lkIHJlZ2lzdGVyUHJv
cGVydHkoRE9NV2luZG93UHJvcGVydHkmKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJQcm9wZXJ0eShE
T01XaW5kb3dQcm9wZXJ0eSYpOwogCiAgICAgdm9pZCByZXNldFVubGVzc1N1c3BlbmRlZEZvckRv
Y3VtZW50U3VzcGVuc2lvbigpOwogICAgIHZvaWQgc3VzcGVuZEZvckRvY3VtZW50U3VzcGVuc2lv
bigpOwpAQCAtMTM4LDExICsxMzMsMTEgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBib29sIGRpc3BhdGNoQWxsUGVuZGluZ0JlZm9yZVVubG9hZEV2ZW50cygpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGRpc3BhdGNoQWxsUGVuZGluZ1VubG9hZEV2ZW50cygp
OwogCi0gICAgc3RhdGljIEZsb2F0UmVjdCBhZGp1c3RXaW5kb3dSZWN0KFBhZ2UqLCBjb25zdCBG
bG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKTsKKyAgICBzdGF0aWMgRmxvYXRSZWN0IGFkanVzdFdp
bmRvd1JlY3QoUGFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5nZXMpOwogCiAgICAg
Ym9vbCBhbGxvd1BvcFVwKCk7IC8vIENhbGwgb24gZmlyc3Qgd2luZG93LCBub3QgdGFyZ2V0IHdp
bmRvdy4KLSAgICBzdGF0aWMgYm9vbCBhbGxvd1BvcFVwKEZyYW1lKiBmaXJzdEZyYW1lKTsKLSAg
ICBzdGF0aWMgYm9vbCBjYW5TaG93TW9kYWxEaWFsb2coY29uc3QgRnJhbWUqKTsKKyAgICBzdGF0
aWMgYm9vbCBhbGxvd1BvcFVwKEZyYW1lJiBmaXJzdEZyYW1lKTsKKyAgICBzdGF0aWMgYm9vbCBj
YW5TaG93TW9kYWxEaWFsb2coY29uc3QgRnJhbWUmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldENhblNob3dNb2RhbERpYWxvZ092ZXJyaWRlKGJvb2wpOwogCiAgICAgU2NyZWVuKiBzY3Jl
ZW4oKSBjb25zdDsKQEAgLTI0NSw3ICsyNDAsNiBAQCBwdWJsaWM6CiAKICAgICBFeGNlcHRpb25P
cjx2b2lkPiBwb3N0TWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSYsIERPTVdpbmRvdyYgY2FsbGVyV2lu
ZG93LCBKU0M6OkpTVmFsdWUgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiB0YXJnZXRPcmlnaW4sIFZl
Y3RvcjxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0Pj4mJik7CiAgICAgdm9pZCBwb3N0TWVzc2Fn
ZVRpbWVyRmlyZWQoUG9zdE1lc3NhZ2VUaW1lciYpOwotICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdl
RXZlbnRXaXRoT3JpZ2luQ2hlY2soU2VjdXJpdHlPcmlnaW4qIGludGVuZGVkVGFyZ2V0T3JpZ2lu
LCBFdmVudCYsIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxsU3RhY2s+KTsKIAogICAg
IHZvaWQgbGFuZ3VhZ2VzQ2hhbmdlZCgpOwogCkBAIC0yNzIsOSArMjY2LDkgQEAgcHVibGljOgog
CiAgICAgLy8gRXZlbnRzCiAgICAgLy8gRXZlbnRUYXJnZXQgQVBJCi0gICAgYm9vbCBhZGRFdmVu
dExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5l
cj4mJiwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmKSBvdmVycmlkZTsKLSAgICBib29s
IHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50
TGlzdGVuZXImLCBjb25zdCBMaXN0ZW5lck9wdGlvbnMmKSBvdmVycmlkZTsKLSAgICB2b2lkIHJl
bW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBhZGRFdmVudExpc3Rl
bmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiwg
Y29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmKSBmaW5hbDsKKyAgICBib29sIHJlbW92ZUV2
ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXIm
LCBjb25zdCBMaXN0ZW5lck9wdGlvbnMmKSBmaW5hbDsKKyAgICB2b2lkIHJlbW92ZUFsbEV2ZW50
TGlzdGVuZXJzKCkgZmluYWw7CiAKICAgICB1c2luZyBFdmVudFRhcmdldDo6ZGlzcGF0Y2hFdmVu
dDsKICAgICBib29sIGRpc3BhdGNoRXZlbnQoRXZlbnQmLCBFdmVudFRhcmdldCopOwpAQCAtMjg2
LDggKzI4MCw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZmluaXNoZWRMb2FkaW5nKCk7CiAKLSAg
ICB1c2luZyBSZWZDb3VudGVkPERPTVdpbmRvdz46OnJlZjsKLSAgICB1c2luZyBSZWZDb3VudGVk
PERPTVdpbmRvdz46OmRlcmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2lu
ZyBSZWZDb3VudGVkOjpkZXJlZjsKIAogICAgIC8vIEhUTUwgNSBrZXkvdmFsdWUgc3RvcmFnZQog
ICAgIEV4Y2VwdGlvbk9yPFN0b3JhZ2UqPiBzZXNzaW9uU3RvcmFnZSgpIGNvbnN0OwpAQCAtMzEz
LDYgKzMwNyw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKICAgICBQZXJmb3Jt
YW5jZSogcGVyZm9ybWFuY2UoKSBjb25zdDsKICNlbmRpZgorCiAgICAgZG91YmxlIG5vd1RpbWVz
dGFtcCgpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMzQ3LDE2ICszNDIsMjEgQEAg
cHVibGljOgogICAgIFdlYWtQdHI8RE9NV2luZG93PiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4g
bV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KIAogcHJpdmF0ZToKLSAgICBleHBs
aWNpdCBET01XaW5kb3coRG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBET01XaW5kb3coRG9jdW1l
bnQmKTsKKworICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gRE9NV2luZG93RXZlbnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9
CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVj
dXRpb25Db250ZXh0KCk7IH0KKworICAgIERPTVdpbmRvdyogdG9ET01XaW5kb3coKSBmaW5hbDsK
IAogICAgIFBhZ2UqIHBhZ2UoKTsKICAgICBib29sIGFsbG93ZWRUb0NoYW5nZVdpbmRvd0dlb21l
dHJ5KCkgY29uc3Q7CiAKLSAgICB2b2lkIGZyYW1lRGVzdHJveWVkKCkgb3ZlcnJpZGU7Ci0gICAg
dm9pZCB3aWxsRGV0YWNoUGFnZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZnJhbWVEZXN0cm95ZWQo
KSBmaW5hbDsKKyAgICB2b2lkIHdpbGxEZXRhY2hQYWdlKCkgZmluYWw7CiAKLSAgICB2b2lkIHJl
ZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQotICAgIHZvaWQgZGVyZWZFdmVudFRh
cmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQorICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBm
aW5hbCB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJl
ZigpOyB9CiAKICAgICBzdGF0aWMgUmVmUHRyPEZyYW1lPiBjcmVhdGVXaW5kb3coY29uc3QgU3Ry
aW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluZyYgZnJhbWVOYW1lLCBjb25zdCBXaW5k
b3dGZWF0dXJlcyYsIERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBGcmFtZSYgZmlyc3RGcmFtZSwg
RnJhbWUmIG9wZW5lckZyYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoRE9NV2luZG93Jik+IHByZXBh
cmVEaWFsb2dGdW5jdGlvbiA9IG51bGxwdHIpOwogICAgIGJvb2wgaXNJbnNlY3VyZVNjcmlwdEFj
Y2VzcyhET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAppbmRleCBhMzc3MGU4ZTcw
MGM2NTgyNjI2YzY0Yjk4NWZkZWM2ZmMwN2YzM2Y1Li41NTA5NmI2NGFhYTdmMjQ5MzFhMmM3MTlh
N2U1YzYwOWVkNTBmODU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
d1Byb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5
LmNwcApAQCAtNDIsMTQgKzQyLDE0IEBAIERPTVdpbmRvd1Byb3BlcnR5OjpET01XaW5kb3dQcm9w
ZXJ0eShGcmFtZSogZnJhbWUpCiAgICAgLy8gV2Ugc2hvdWxkIGZpeCB0aGF0LiAgPHJkYXI6Ly9w
cm9ibGVtLzExNTY3MTMyPgogICAgIGlmIChtX2ZyYW1lKSB7CiAgICAgICAgIG1fYXNzb2NpYXRl
ZERPTVdpbmRvdyA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRvdygpOwotICAgICAgICBt
X2Fzc29jaWF0ZWRET01XaW5kb3ctPnJlZ2lzdGVyUHJvcGVydHkodGhpcyk7CisgICAgICAgIG1f
YXNzb2NpYXRlZERPTVdpbmRvdy0+cmVnaXN0ZXJQcm9wZXJ0eSgqdGhpcyk7CiAgICAgfQogfQog
CiBET01XaW5kb3dQcm9wZXJ0eTo6fkRPTVdpbmRvd1Byb3BlcnR5KCkKIHsKICAgICBpZiAobV9h
c3NvY2lhdGVkRE9NV2luZG93KQotICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ctPnVucmVn
aXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93LT51bnJl
Z2lzdGVyUHJvcGVydHkoKnRoaXMpOwogCiAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93ID0gbnVs
bHB0cjsKICAgICBtX2ZyYW1lID0gbnVsbHB0cjsKQEAgLTg2LDcgKzg2LDcgQEAgdm9pZCBET01X
aW5kb3dQcm9wZXJ0eTo6d2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkNhY2hlZEZyYW1lKCkKICAg
ICAvLyBET01XaW5kb3dQcm9wZXJ0eSBsaWZldGltZSBpc24ndCB0aWVkIGRpcmVjdGx5IHRvIHRo
ZSBET01XaW5kb3cgaXRzZWxmIHNvIGl0IGlzIGltcG9ydGFudCB0aGF0IGl0IHVucmVnaXN0ZXIK
ICAgICAvLyBpdHNlbGYgZnJvbSBhbnkgRE9NV2luZG93IGl0IGlzIGFzc29jaWF0ZWQgd2l0aCBp
ZiB0aGF0IERPTVdpbmRvdyBpcyBnb2luZyBhd2F5LgogICAgIGlmIChtX2Fzc29jaWF0ZWRET01X
aW5kb3cpCi0gICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+dW5yZWdpc3RlclByb3BlcnR5
KHRoaXMpOworICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ctPnVucmVnaXN0ZXJQcm9wZXJ0
eSgqdGhpcyk7CiAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93ID0gbnVsbHB0cjsKICAgICBtX2Zy
YW1lID0gbnVsbHB0cjsKIH0KQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lkIERPTVdpbmRvd1Byb3Bl
cnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJhbWUoKQogICAgIC8vIERPTVdpbmRvd1By
b3BlcnR5IGxpZmV0aW1lIGlzbid0IHRpZWQgZGlyZWN0bHkgdG8gdGhlIERPTVdpbmRvdyBpdHNl
bGYgc28gaXQgaXMgaW1wb3J0YW50IHRoYXQgaXQgdW5yZWdpc3RlcgogICAgIC8vIGl0c2VsZiBm
cm9tIGFueSBET01XaW5kb3cgaXQgaXMgYXNzb2NpYXRlZCB3aXRoIGlmIHRoYXQgRE9NV2luZG93
IGlzIGdvaW5nIGF3YXkuCiAgICAgaWYgKG1fYXNzb2NpYXRlZERPTVdpbmRvdykKLSAgICAgICAg
bV9hc3NvY2lhdGVkRE9NV2luZG93LT51bnJlZ2lzdGVyUHJvcGVydHkodGhpcyk7CisgICAgICAg
IG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+dW5yZWdpc3RlclByb3BlcnR5KCp0aGlzKTsKICAgICBt
X2Fzc29jaWF0ZWRET01XaW5kb3cgPSBudWxscHRyOwogICAgIG1fZnJhbWUgPSBudWxscHRyOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcAppbmRleCBjYWEwN2E0
N2JlZThmMTljZWUzNDRlZmE1NzZmNTBlZDQ1MTQ3M2VhLi5hZjA4MDJiYzhiZTgwMzgxZDEzMzA1
M2Y3NzhmYzNhNzYzNjQzZTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVn
UGFnZU92ZXJsYXlzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJs
YXlzLmNwcApAQCAtNDQsNyArNDQsNyBAQCBEZWJ1Z1BhZ2VPdmVybGF5cyogRGVidWdQYWdlT3Zl
cmxheXM6OnNoYXJlZERlYnVnT3ZlcmxheXM7CiAKIGNsYXNzIFJlZ2lvbk92ZXJsYXkgOiBwdWJs
aWMgUmVmQ291bnRlZDxSZWdpb25PdmVybGF5PiwgcHVibGljIFBhZ2VPdmVybGF5OjpDbGllbnQg
ewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlZ2lvbk92ZXJsYXk+IGNyZWF0ZShN
YWluRnJhbWUmLCBEZWJ1Z1BhZ2VPdmVybGF5czo6UmVnaW9uVHlwZSk7CisgICAgc3RhdGljIFJl
ZlB0cjxSZWdpb25PdmVybGF5PiBjcmVhdGUoTWFpbkZyYW1lJiwgRGVidWdQYWdlT3ZlcmxheXM6
OlJlZ2lvblR5cGUpOwogICAgIHZpcnR1YWwgflJlZ2lvbk92ZXJsYXkoKTsKIAogICAgIHZvaWQg
cmVjb21wdXRlUmVnaW9uKCk7CkBAIC0xNDMsNyArMTQzLDcgQEAgYm9vbCBOb25GYXN0U2Nyb2xs
YWJsZVJlZ2lvbk92ZXJsYXk6OnVwZGF0ZVJlZ2lvbigpCiAgICAgcmV0dXJuIHJlZ2lvbkNoYW5n
ZWQ7CiB9CiAKLVBhc3NSZWZQdHI8UmVnaW9uT3ZlcmxheT4gUmVnaW9uT3ZlcmxheTo6Y3JlYXRl
KE1haW5GcmFtZSYgZnJhbWUsIERlYnVnUGFnZU92ZXJsYXlzOjpSZWdpb25UeXBlIHJlZ2lvblR5
cGUpCitSZWZQdHI8UmVnaW9uT3ZlcmxheT4gUmVnaW9uT3ZlcmxheTo6Y3JlYXRlKE1haW5GcmFt
ZSYgZnJhbWUsIERlYnVnUGFnZU92ZXJsYXlzOjpSZWdpb25UeXBlIHJlZ2lvblR5cGUpCiB7CiAg
ICAgc3dpdGNoIChyZWdpb25UeXBlKSB7CiAgICAgY2FzZSBEZWJ1Z1BhZ2VPdmVybGF5czo6UmVn
aW9uVHlwZTo6V2hlZWxFdmVudEhhbmRsZXJzOgpAQCAtMTY1LDcgKzE2NSw3IEBAIFJlZ2lvbk92
ZXJsYXk6OlJlZ2lvbk92ZXJsYXkoTWFpbkZyYW1lJiBmcmFtZSwgQ29sb3IgcmVnaW9uQ29sb3Ip
CiBSZWdpb25PdmVybGF5Ojp+UmVnaW9uT3ZlcmxheSgpCiB7CiAgICAgaWYgKG1fb3ZlcmxheSkK
LSAgICAgICAgbV9mcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3Zl
cmxheShtX292ZXJsYXkuZ2V0KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsK
KyAgICAgICAgbV9mcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3Zl
cmxheSgqbV9vdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiB9CiAK
IHZvaWQgUmVnaW9uT3ZlcmxheTo6d2lsbE1vdmVUb1BhZ2UoUGFnZU92ZXJsYXkmLCBQYWdlKiBw
YWdlKQpAQCAtMjQ4LDcgKzI0OCw3IEBAIFJlZ2lvbk92ZXJsYXkmIERlYnVnUGFnZU92ZXJsYXlz
OjplbnN1cmVSZWdpb25PdmVybGF5Rm9yRnJhbWUoTWFpbkZyYW1lJiBmcmFtZSwKIHZvaWQgRGVi
dWdQYWdlT3ZlcmxheXM6OnNob3dSZWdpb25PdmVybGF5KE1haW5GcmFtZSYgZnJhbWUsIFJlZ2lv
blR5cGUgcmVnaW9uVHlwZSkKIHsKICAgICBSZWdpb25PdmVybGF5JiB2aXN1YWxpemVyID0gZW5z
dXJlUmVnaW9uT3ZlcmxheUZvckZyYW1lKGZyYW1lLCByZWdpb25UeXBlKTsKLSAgICBmcmFtZS5w
YWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkoJnZpc3VhbGl6ZXIub3Zl
cmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgZnJhbWUucGFn
ZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KHZpc3VhbGl6ZXIub3Zlcmxh
eSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiB9CiAKIHZvaWQgRGVidWdQ
YWdlT3ZlcmxheXM6OmhpZGVSZWdpb25PdmVybGF5KE1haW5GcmFtZSYgZnJhbWUsIFJlZ2lvblR5
cGUgcmVnaW9uVHlwZSkKQEAgLTI1Nyw3ICsyNTcsNyBAQCB2b2lkIERlYnVnUGFnZU92ZXJsYXlz
OjpoaWRlUmVnaW9uT3ZlcmxheShNYWluRnJhbWUmIGZyYW1lLCBSZWdpb25UeXBlIHJlZ2lvblR5
cAogICAgIGlmIChpdCAhPSBtX2ZyYW1lUmVnaW9uT3ZlcmxheXMuZW5kKCkpIHsKICAgICAgICAg
YXV0byYgdmlzdWFsaXplcnMgPSBpdC0+dmFsdWU7CiAgICAgICAgIGlmIChSZWdpb25PdmVybGF5
KiB2aXN1YWxpemVyID0gdmlzdWFsaXplcnNbaW5kZXhPZihyZWdpb25UeXBlKV0uZ2V0KCkpIHsK
LSAgICAgICAgICAgIGZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VP
dmVybGF5KCZ2aXN1YWxpemVyLT5vdmVybGF5KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9O
b3RGYWRlKTsKKyAgICAgICAgICAgIGZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5z
dGFsbFBhZ2VPdmVybGF5KHZpc3VhbGl6ZXItPm92ZXJsYXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVN
b2RlOjpEb05vdEZhZGUpOwogICAgICAgICAgICAgdmlzdWFsaXplcnNbaW5kZXhPZihyZWdpb25U
eXBlKV0gPSBudWxscHRyOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdD
b250cm9sbGVyLmNwcAppbmRleCBmMjMxOGEwM2MxNGJkMWRmODIzMjBjYzA3Yzc4OTliMjk0Mjdj
NjQ2Li5kZjZjZmUwNGMyN2EzZjk4NDAyMjE5YTY2Yzg4MmIzZDQzYjZmZTYxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIHZvaWQgRHJh
Z0NvbnRyb2xsZXI6OmRyYWdFeGl0ZWQoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogI2VuZGlm
CiAgICAgICAgIFJlZlB0cjxEYXRhVHJhbnNmZXI+IGRhdGFUcmFuc2ZlciA9IERhdGFUcmFuc2Zl
cjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AocG9saWN5LCBkcmFnRGF0YSk7CiAgICAgICAgIGRhdGFU
cmFuc2Zlci0+c2V0U291cmNlT3BlcmF0aW9uKGRyYWdEYXRhLmRyYWdnaW5nU291cmNlT3BlcmF0
aW9uTWFzaygpKTsKLSAgICAgICAgbV9wYWdlLm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmNh
bmNlbERyYWdBbmREcm9wKGNyZWF0ZU1vdXNlRXZlbnQoZHJhZ0RhdGEpLCBkYXRhVHJhbnNmZXIu
Z2V0KCkpOworICAgICAgICBtX3BhZ2UubWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuY2FuY2Vs
RHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChkcmFnRGF0YSksICpkYXRhVHJhbnNmZXIpOwog
ICAgICAgICBkYXRhVHJhbnNmZXItPnNldEFjY2Vzc1BvbGljeShEYXRhVHJhbnNmZXJBY2Nlc3NQ
b2xpY3k6Ok51bWIpOyAvLyBJbnZhbGlkYXRlIGRhdGFUcmFuc2ZlciBoZXJlIGZvciBzZWN1cml0
eS4KICAgICB9CiAgICAgbW91c2VNb3ZlZEludG9Eb2N1bWVudChudWxscHRyKTsKQEAgLTIyNyw3
ICsyMjcsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJhZ09wZXJhdGlvbihjb25z
dCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgICAgICAvLyBTZW5kaW5nIGFuIGV2ZW50IGNh
biByZXN1bHQgaW4gdGhlIGRlc3RydWN0aW9uIG9mIHRoZSB2aWV3IGFuZCBwYXJ0LgogICAgICAg
ICAgICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gZGF0YVRyYW5zZmVyID0gRGF0YVRyYW5zZmVyOjpj
cmVhdGVGb3JEcmFnQW5kRHJvcChEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6OlJlYWRhYmxlLCBk
cmFnRGF0YSk7CiAgICAgICAgICAgICBkYXRhVHJhbnNmZXItPnNldFNvdXJjZU9wZXJhdGlvbihk
cmFnRGF0YS5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2soKSk7Ci0gICAgICAgICAgICBwcmV2
ZW50ZWREZWZhdWx0ID0gbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS5wZXJmb3JtRHJhZ0FuZERy
b3AoY3JlYXRlTW91c2VFdmVudChkcmFnRGF0YSksIGRhdGFUcmFuc2Zlci5nZXQoKSk7CisgICAg
ICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS5wZXJm
b3JtRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChkcmFnRGF0YSksICpkYXRhVHJhbnNmZXIp
OwogICAgICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRBY2Nlc3NQb2xpY3koRGF0YVRyYW5zZmVy
QWNjZXNzUG9saWN5OjpOdW1iKTsgLy8gSW52YWxpZGF0ZSBkYXRhVHJhbnNmZXIgaGVyZSBmb3Ig
c2VjdXJpdHkuCiAgICAgICAgIH0KICAgICAgICAgaWYgKHByZXZlbnRlZERlZmF1bHQpIHsKQEAg
LTU0Nyw3ICs1NDcsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKGNv
bnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIAogICAgIGlmIChyb290RWRpdGFibGVFbGVtZW50KSB7
CiAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSByb290RWRpdGFibGVFbGVtZW50LT5kb2N1bWVu
dCgpLmZyYW1lKCkpCi0gICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJh
Z1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKHJvb3RFZGl0YWJsZUVsZW1lbnQuZ2V0KCkpOwor
ICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLnVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRp
dERyYWdJZk5lZWRlZCgqcm9vdEVkaXRhYmxlRWxlbWVudCk7CiAgICAgfQogCiAgICAgcmV0dXJu
IHRydWU7CkBAIC02MjEsNyArNjIxLDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6dHJ5REhUTUxE
cmFnKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSwgRHJhZ09wZXJhdGlvbiYgb3BlcmEKICAgICBk
YXRhVHJhbnNmZXItPnNldFNvdXJjZU9wZXJhdGlvbihzcmNPcE1hc2spOwogCiAgICAgUGxhdGZv
cm1Nb3VzZUV2ZW50IGV2ZW50ID0gY3JlYXRlTW91c2VFdmVudChkcmFnRGF0YSk7Ci0gICAgaWYg
KCFtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLnVwZGF0ZURyYWdBbmREcm9wKGV2ZW50LCBkYXRh
VHJhbnNmZXIuZ2V0KCkpKSB7CisgICAgaWYgKCFtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLnVw
ZGF0ZURyYWdBbmREcm9wKGV2ZW50LCAqZGF0YVRyYW5zZmVyKSkgewogICAgICAgICBkYXRhVHJh
bnNmZXItPnNldEFjY2Vzc1BvbGljeShEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6Ok51bWIpOyAv
LyBJbnZhbGlkYXRlIGRhdGFUcmFuc2ZlciBoZXJlIGZvciBzZWN1cml0eS4KICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA5
MjNlNDE2OWY3OGQwYWZmMGFjYjMzZGM2OTFiOGE5YTU4MGQzMGVkLi40NjJjYzM0ODM1N2JmZDM2
MzI0NTIzMjJjYTVjZjRkZjhhY2RjYmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCkBAIC0yMjM2LDcgKzIyMzYsNyBAQCBzdGF0aWMgYm9vbCBmaW5kRHJvcFpvbmUoTm9kZSog
dGFyZ2V0LCBEYXRhVHJhbnNmZXIqIGRhdGFUcmFuc2ZlcikKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAgICAgCi1ib29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIpCitib29sIEV2
ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBl
dmVudCwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIpCiB7CiAgICAgUmVmPEZyYW1lPiBwcm90
ZWN0ZWRGcmFtZShtX2ZyYW1lKTsKIApAQCAtMjI3NSwxNiArMjI3NSwxNiBAQCBib29sIEV2ZW50
SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVu
dCwgRGF0YVRyYW5zZgogICAgICAgICAgICAgICAgIC8vIGZvciBub3cgd2UgZG9uJ3QgY2FyZSBp
ZiBldmVudCBoYW5kbGVyIGNhbmNlbHMgZGVmYXVsdCBiZWhhdmlvciwgc2luY2UgdGhlcmUgaXMg
bm9uZQogICAgICAgICAgICAgICAgIGRpc3BhdGNoRHJhZ1NyY0V2ZW50KGV2ZW50TmFtZXMoKS5k
cmFnRXZlbnQsIGV2ZW50KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFjY2VwdCA9IGRp
c3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnZW50ZXJFdmVudCwgKm5ld1RhcmdldCwg
ZXZlbnQsIGRhdGFUcmFuc2Zlcik7CisgICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdF
dmVudChldmVudE5hbWVzKCkuZHJhZ2VudGVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCAmZGF0
YVRyYW5zZmVyKTsKICAgICAgICAgICAgIGlmICghYWNjZXB0KQotICAgICAgICAgICAgICAgIGFj
Y2VwdCA9IGZpbmREcm9wWm9uZShuZXdUYXJnZXQuZ2V0KCksIGRhdGFUcmFuc2Zlcik7CisgICAg
ICAgICAgICAgICAgYWNjZXB0ID0gZmluZERyb3Bab25lKG5ld1RhcmdldC5nZXQoKSwgJmRhdGFU
cmFuc2Zlcik7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAodGFyZ2V0SXNGcmFtZShtX2RyYWdU
YXJnZXQuZ2V0KCksIHRhcmdldEZyYW1lKSkgewogICAgICAgICAgICAgaWYgKHRhcmdldEZyYW1l
KQogICAgICAgICAgICAgICAgIGFjY2VwdCA9IHRhcmdldEZyYW1lLT5ldmVudEhhbmRsZXIoKS51
cGRhdGVEcmFnQW5kRHJvcChldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICAgICAgfSBlbHNlIGlm
IChtX2RyYWdUYXJnZXQpCi0gICAgICAgICAgICBkaXNwYXRjaERyYWdFdmVudChldmVudE5hbWVz
KCkuZHJhZ2xlYXZlRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNmZXIpOwor
ICAgICAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50
LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgJmRhdGFUcmFuc2Zlcik7CiAKICAgICAgICAgaWYgKG5l
d1RhcmdldCkgewogICAgICAgICAgICAgLy8gV2UgZG8gbm90IGV4cGxpY2l0bHkgY2FsbCBkaXNw
YXRjaERyYWdFdmVudCBoZXJlIGJlY2F1c2UgaXQgY291bGQgdWx0aW1hdGVseSByZXN1bHQgaW4g
dGhlIGFwcGVhcmFuY2UgdGhhdApAQCAtMjMwMiw5ICsyMzAyLDkgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERh
dGFUcmFuc2YKICAgICAgICAgICAgICAgICAvLyBmb3Igbm93IHdlIGRvbid0IGNhcmUgaWYgZXZl
bnQgaGFuZGxlciBjYW5jZWxzIGRlZmF1bHQgYmVoYXZpb3IsIHNpbmNlIHRoZXJlIGlzIG5vbmUK
ICAgICAgICAgICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVudChldmVudE5hbWVzKCkuZHJhZ0V2
ZW50LCBldmVudCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRj
aERyYWdFdmVudChldmVudE5hbWVzKCkuZHJhZ292ZXJFdmVudCwgKm5ld1RhcmdldCwgZXZlbnQs
IGRhdGFUcmFuc2Zlcik7CisgICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVudChl
dmVudE5hbWVzKCkuZHJhZ292ZXJFdmVudCwgKm5ld1RhcmdldCwgZXZlbnQsICZkYXRhVHJhbnNm
ZXIpOwogICAgICAgICAgICAgaWYgKCFhY2NlcHQpCi0gICAgICAgICAgICAgICAgYWNjZXB0ID0g
ZmluZERyb3Bab25lKG5ld1RhcmdldC5nZXQoKSwgZGF0YVRyYW5zZmVyKTsKKyAgICAgICAgICAg
ICAgICBhY2NlcHQgPSBmaW5kRHJvcFpvbmUobmV3VGFyZ2V0LmdldCgpLCAmZGF0YVRyYW5zZmVy
KTsKICAgICAgICAgICAgIG1fc2hvdWxkT25seUZpcmVEcmFnT3ZlckV2ZW50ID0gZmFsc2U7CiAg
ICAgICAgIH0KICAgICB9CkBAIC0yMzEyLDcgKzIzMTIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6
dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRy
YW5zZgogICAgIHJldHVybiBhY2NlcHQ7CiB9CiAKLXZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxE
cmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmZXIq
IGRhdGFUcmFuc2ZlcikKK3ZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcChjb25z
dCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlcikK
IHsKICAgICBSZWY8RnJhbWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUpOwogCkBAIC0yMzIzLDEy
ICsyMzIzLDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcChjb25zdCBQ
bGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmCiAgICAgfSBlbHNlIGlmIChtX2Ry
YWdUYXJnZXQpIHsKICAgICAgICAgaWYgKGRyYWdTdGF0ZSgpLnNvdXJjZSAmJiBkcmFnU3RhdGUo
KS5zaG91bGREaXNwYXRjaEV2ZW50cykKICAgICAgICAgICAgIGRpc3BhdGNoRHJhZ1NyY0V2ZW50
KGV2ZW50TmFtZXMoKS5kcmFnRXZlbnQsIGV2ZW50KTsKLSAgICAgICAgZGlzcGF0Y2hEcmFnRXZl
bnQoZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgZGF0
YVRyYW5zZmVyKTsKKyAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWds
ZWF2ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgJmRhdGFUcmFuc2Zlcik7CiAgICAgfQog
ICAgIGNsZWFyRHJhZ1N0YXRlKCk7CiB9CiAKLWJvb2wgRXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJh
Z0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyKiBk
YXRhVHJhbnNmZXIpCitib29sIEV2ZW50SGFuZGxlcjo6cGVyZm9ybURyYWdBbmREcm9wKGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyKQog
ewogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9mcmFtZSk7CiAKQEAgLTIzMzgsNyAr
MjMzOCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERyb3AoY29uc3QgUGxh
dGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zCiAgICAgICAgIGlmICh0YXJnZXRGcmFt
ZSkKICAgICAgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5k
bGVyKCkucGVyZm9ybURyYWdBbmREcm9wKGV2ZW50LCBkYXRhVHJhbnNmZXIpOwogICAgIH0gZWxz
ZSBpZiAobV9kcmFnVGFyZ2V0KQotICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gZGlzcGF0Y2hE
cmFnRXZlbnQoZXZlbnROYW1lcygpLmRyb3BFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsIGRh
dGFUcmFuc2Zlcik7CisgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSBkaXNwYXRjaERyYWdFdmVu
dChldmVudE5hbWVzKCkuZHJvcEV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgJmRhdGFUcmFu
c2Zlcik7CiAgICAgY2xlYXJEcmFnU3RhdGUoKTsKICAgICByZXR1cm4gcHJldmVudGVkRGVmYXVs
dDsKIH0KQEAgLTIzNTMsOSArMjM1MywxMCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6Y2xlYXJEcmFn
U3RhdGUoKQogICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CiAjZW5kaWYKIH0K
KwogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKLXZvaWQgRXZlbnRIYW5kbGVyOjpz
ZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50
KQordm9pZCBFdmVudEhhbmRsZXI6OnNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudChFbGVt
ZW50KiBlbGVtZW50KQogewogICAgIG1fY2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50ID0gZWxl
bWVudDsKICAgICBtX2V2ZW50SGFuZGxlcldpbGxSZXNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxl
bWVudCA9IGZhbHNlOwpAQCAtMjU2Myw3ICsyNTY0LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmRp
c3BhdGNoTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSogdGFy
Z2UKIAogICAgIC8vIElmIGZvY3VzIHNoaWZ0IGlzIGJsb2NrZWQsIHdlIGVhdCB0aGUgZXZlbnQu
CiAgICAgYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpOwotICAgIGlmIChwYWdlICYmICFwYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChlbGVtZW50LCAmbV9mcmFtZSkp
CisgICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVt
ZW50KGVsZW1lbnQsIG1fZnJhbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1
cm4gdHJ1ZTsKQEAgLTM0MTEsMTEgKzM0MTIsMTEgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRyYWdT
b3VyY2VFbmRlZEF0KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERyYWdPcGVyYXQK
ICAgICBtX21vdXNlRG93bk1heVN0YXJ0RHJhZyA9IGZhbHNlOwogfQogCi12b2lkIEV2ZW50SGFu
ZGxlcjo6dXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKEVsZW1lbnQqIHJvb3RF
ZGl0YWJsZUVsZW1lbnQpCit2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ1N0YXRlQWZ0ZXJF
ZGl0RHJhZ0lmTmVlZGVkKEVsZW1lbnQmIHJvb3RFZGl0YWJsZUVsZW1lbnQpCiB7CiAgICAgLy8g
SWYgaW5zZXJ0aW5nIHRoZSBkcmFnZ2VkIGNvbnRlbnRzIHJlbW92ZWQgdGhlIGRyYWcgc291cmNl
LCB3ZSBzdGlsbCB3YW50IHRvIGZpcmUgZHJhZ2VuZCBhdCB0aGUgcm9vdCBlZGl0YWJsZSBlbGVt
ZW50LgogICAgIGlmIChkcmFnU3RhdGUoKS5zb3VyY2UgJiYgIWRyYWdTdGF0ZSgpLnNvdXJjZS0+
aW5Eb2N1bWVudCgpKQotICAgICAgICBkcmFnU3RhdGUoKS5zb3VyY2UgPSByb290RWRpdGFibGVF
bGVtZW50OworICAgICAgICBkcmFnU3RhdGUoKS5zb3VyY2UgPSAmcm9vdEVkaXRhYmxlRWxlbWVu
dDsKIH0KIAogLy8gUmV0dXJuIHZhbHVlIGluZGljYXRlcyBpZiB3ZSBzaG91bGQgY29udGludWUg
ImRlZmF1bHQgcHJvY2Vzc2luZyIsIGkuZS4sIHdoZXRoZXIgZXZlbnQgaGFuZGxlciBjYW5jZWxl
ZC4KQEAgLTM2MjUsMjUgKzM2MjYsMjQgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRleHRJ
bnB1dEV2ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXZlbnQqIHVuZGVybHlpbmdFdmUKICAgICBy
ZXR1cm4gZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCk7CiB9CiAgICAgCi1ib29sIEV2ZW50SGFuZGxl
cjo6aXNLZXlib2FyZE9wdGlvblRhYihLZXlib2FyZEV2ZW50KiBldmVudCkKK2Jvb2wgRXZlbnRI
YW5kbGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKEtleWJvYXJkRXZlbnQmIGV2ZW50KQogewotICAg
IHJldHVybiBldmVudAotICAgICAgICAmJiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCku
a2V5ZG93bkV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZl
bnQpCi0gICAgICAgICYmIGV2ZW50LT5hbHRLZXkoKQotICAgICAgICAmJiBldmVudC0+a2V5SWRl
bnRpZmllcigpID09ICJVKzAwMDkiOyAgICAKKyAgICByZXR1cm4gKGV2ZW50LnR5cGUoKSA9PSBl
dmVudE5hbWVzKCkua2V5ZG93bkV2ZW50IHx8IGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCku
a2V5cHJlc3NFdmVudCkKKyAgICAgICAgJiYgZXZlbnQuYWx0S2V5KCkKKyAgICAgICAgJiYgZXZl
bnQua2V5SWRlbnRpZmllcigpID09ICJVKzAwMDkiOwogfQogCi1ib29sIEV2ZW50SGFuZGxlcjo6
ZXZlbnRJbnZlcnRzVGFic1RvTGlua3NDbGllbnRDYWxsUmVzdWx0KEtleWJvYXJkRXZlbnQqIGV2
ZW50KQorYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2Fs
bFJlc3VsdChLZXlib2FyZEV2ZW50JiBldmVudCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkgfHwg
UExBVEZPUk0oRUZMKQotICAgIHJldHVybiBFdmVudEhhbmRsZXI6OmlzS2V5Ym9hcmRPcHRpb25U
YWIoZXZlbnQpOworICAgIHJldHVybiBpc0tleWJvYXJkT3B0aW9uVGFiKGV2ZW50KTsKICNlbHNl
CiAgICAgVU5VU0VEX1BBUkFNKGV2ZW50KTsKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIH0K
IAotYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQqIGV2ZW50KSBj
b25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQmIGV2ZW50
KSBjb25zdAogewogICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIG5lZWRzIGEgYmV0dGVyIG5h
bWUuIEl0IGNhbiBiZSBjYWxsZWQgZm9yIGtleXByZXNzZXMgb3RoZXIgdGhhbiBUYWIgd2hlbiBz
cGF0aWFsIG5hdmlnYXRpb24gaXMgZW5hYmxlZC4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmgKaW5kZXggZGU3OGJjYWU4NGE3NjY0ZGUyOGQ1ZDE3OTA2YjlhM2RiMmUxYjQyMy4uZTEyODFi
NmFiOTJlYjMwNzI4YWIzOTVkNGFmNGFhMjA2MTc5NDU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5oCkBAIC01Nyw2ICs1NywxMCBAQCBPQkpDX0NMQVNTIFdBS1ZpZXc7CiBPQkpDX0NM
QVNTIE5TVmlldzsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKQorT0JKQ19DTEFTUyBOU0V2
ZW50OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXV0b3Njcm9sbENv
bnRyb2xsZXI7CkBAIC0xMDAsNyArMTA0LDcgQEAgZXh0ZXJuIGNvbnN0IGludCBMaW5rRHJhZ0h5
c3RlcmVzaXM7CiBleHRlcm4gY29uc3QgaW50IEltYWdlRHJhZ0h5c3RlcmVzaXM7CiBleHRlcm4g
Y29uc3QgaW50IFRleHREcmFnSHlzdGVyZXNpczsKIGV4dGVybiBjb25zdCBpbnQgR2VuZXJhbERy
YWdIeXN0ZXJlc2lzOwotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjZW5kaWYKIAog
I2lmIEVOQUJMRShJT1NfR0VTVFVSRV9FVkVOVFMpIHx8IEVOQUJMRShNQUNfR0VTVFVSRV9FVkVO
VFMpCiBleHRlcm4gY29uc3QgZmxvYXQgR2VzdHVyZVVua25vd247CkBAIC0xMzYsNyArMTQwLDcg
QEAgcHVibGljOgogI2lmIEVOQUJMRShQQU5fU0NST0xMSU5HKQogICAgIHZvaWQgZGlkUGFuU2Ny
b2xsU3RhcnQoKTsKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0b3AoKTsKLSAgICB2b2lkIHN0YXJ0
UGFuU2Nyb2xsaW5nKFJlbmRlckVsZW1lbnQqKTsKKyAgICB2b2lkIHN0YXJ0UGFuU2Nyb2xsaW5n
KFJlbmRlckVsZW1lbnQmKTsKICNlbmRpZgogCiAgICAgdm9pZCBzdG9wQXV0b3Njcm9sbFRpbWVy
KGJvb2wgcmVuZGVyZXJJc0JlaW5nRGVzdHJveWVkID0gZmFsc2UpOwpAQCAtMTU2LDEzICsxNjAs
MTMgQEAgcHVibGljOgogICAgIGJvb2wgbW91c2VQcmVzc2VkKCkgY29uc3QgeyByZXR1cm4gbV9t
b3VzZVByZXNzZWQ7IH0KICAgICBOb2RlKiBtb3VzZVByZXNzTm9kZSgpIGNvbnN0IHsgcmV0dXJu
IG1fbW91c2VQcmVzc05vZGUuZ2V0KCk7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4pOyAvLyBBIGNh
bGxlciBpcyByZXNwb25zaWJsZSBmb3IgcmVzZXR0aW5nIGNhcHR1cmluZyBlbGVtZW50IHRvIDAu
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQo
RWxlbWVudCopOwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBib29sIHVwZGF0ZURy
YWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwotICAg
IHZvaWQgY2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRy
YW5zZmVyKik7Ci0gICAgYm9vbCBwZXJmb3JtRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3Vz
ZUV2ZW50JiwgRGF0YVRyYW5zZmVyKik7Ci0gICAgdm9pZCB1cGRhdGVEcmFnU3RhdGVBZnRlckVk
aXREcmFnSWZOZWVkZWQoRWxlbWVudCogcm9vdEVkaXRhYmxlRWxlbWVudCk7CisgICAgYm9vbCB1
cGRhdGVEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXIm
KTsKKyAgICB2b2lkIGNhbmNlbERyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYs
IERhdGFUcmFuc2ZlciYpOworICAgIGJvb2wgcGVyZm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRm
b3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciYpOworICAgIHZvaWQgdXBkYXRlRHJhZ1N0YXRl
QWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKEVsZW1lbnQmIHJvb3RFZGl0YWJsZUVsZW1lbnQpOwogI2Vu
ZGlmCiAKICAgICB2b2lkIHNjaGVkdWxlSG92ZXJTdGF0ZVVwZGF0ZSgpOwpAQCAtMTg3LDggKzE5
MSw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNjcm9sbFJlY3Vyc2l2ZWx5
KFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIE5vZGUqIHN0YXJ0aW5nTm9kZSA9
IG51bGxwdHIpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbG9naWNhbFNjcm9sbFJlY3Vyc2l2
ZWx5KFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBOb2RlKiBzdGFy
dGluZ05vZGUgPSBudWxscHRyKTsKIAotICAgIGJvb2wgdGFic1RvTGlua3MoS2V5Ym9hcmRFdmVu
dCopIGNvbnN0OwotICAgIGJvb2wgdGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQq
KSBjb25zdDsKKyAgICBib29sIHRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQmKSBjb25zdDsKKyAg
ICBib29sIHRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JikgY29uc3Q7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIG1vdXNlTW92ZWQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50
Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBwYXNzTW91c2VNb3ZlZEV2ZW50VG9TY3JvbGxi
YXJzKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwpAQCAtMjEwLDEyICsyMTQsMTIgQEAgcHVi
bGljOgogICAgIHZvaWQgcGxhdGZvcm1Ob3RpZnlJZkVuZEdlc3R1cmUoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiwgY29uc3QgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mKTsKIAogI2lmIEVOQUJM
RShJT1NfVE9VQ0hfRVZFTlRTKSB8fCBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKQotICAgIHR5
cGVkZWYgVmVjdG9yPFJlZlB0cjxUb3VjaD4+IFRvdWNoQXJyYXk7Ci0gICAgdHlwZWRlZiBIYXNo
TWFwPEV2ZW50VGFyZ2V0KiwgVG91Y2hBcnJheSo+IEV2ZW50VGFyZ2V0VG91Y2hNYXA7CisgICAg
dXNpbmcgVG91Y2hBcnJheSA9IFZlY3RvcjxSZWZQdHI8VG91Y2g+PjsKKyAgICB1c2luZyBFdmVu
dFRhcmdldFRvdWNoTWFwID0gSGFzaE1hcDxFdmVudFRhcmdldCosIFRvdWNoQXJyYXkqPjsKICNl
bmRpZgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpIHx8IEVOQUJMRShJT1NfR0VTVFVS
RV9FVkVOVFMpIHx8IEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCi0gICAgdHlwZWRlZiBIYXNo
U2V0PFJlZlB0cjxFdmVudFRhcmdldD4+IEV2ZW50VGFyZ2V0U2V0OworICAgIHVzaW5nIEV2ZW50
VGFyZ2V0U2V0ID0gSGFzaFNldDxSZWZQdHI8RXZlbnRUYXJnZXQ+PjsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCkBAIC0yMzEsNyArMjM1LDcgQEAgcHVibGljOgogI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgdm9pZCBkZWZhdWx0VG91Y2hFdmVudEhhbmRs
ZXIoTm9kZSosIFRvdWNoRXZlbnQqKTsKKyAgICB2b2lkIGRlZmF1bHRUb3VjaEV2ZW50SGFuZGxl
cihOb2RlJiwgVG91Y2hFdmVudCYpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5V
UykKQEAgLTI2NCw4ICsyNjgsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZW5kU2Nyb2xsRXZlbnQoKTsKIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBkZWZpbmVk
KF9fT0JKQ19fKQotI2lmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgbW91c2VEb3duKE5TRXZlbnQgKiwgTlNFdmVudCAqY29ycmVzcG9u
ZGluZ1ByZXNzdXJlRXZlbnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW91c2VEcmFnZ2Vk
KE5TRXZlbnQgKiwgTlNFdmVudCAqY29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgbW91c2VVcChOU0V2ZW50ICosIE5TRXZlbnQgKmNvcnJlc3BvbmRp
bmdQcmVzc3VyZUV2ZW50KTsKQEAgLTI3Myw3ICsyNzYsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBwcmVzc3VyZUNoYW5nZShOU0V2ZW50ICosIE5TRXZlbnQqIGNvcnJlc3Bv
bmRpbmdQcmVzc3VyZUV2ZW50KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGtleUV2ZW50KE5T
RXZlbnQgKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB3aGVlbEV2ZW50KE5TRXZlbnQgKik7
Ci0jZWxzZQorI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBtb3VzZURvd24oV2ViRXZlbnQgKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3Vz
ZVVwKFdlYkV2ZW50ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW91c2VNb3ZlZChXZWJF
dmVudCAqKTsKQEAgLTI4NSwyMyArMjkwLDIwIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHRvdWNoRXZlbnQoV2ViRXZlbnQgKik7CiAjZW5kaWYKIAotI2lmICFQTEFURk9STShJ
T1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcGFzc01vdXNl
TW92ZWRFdmVudFRvU2Nyb2xsYmFycyhOU0V2ZW50ICosIE5TRXZlbnQqIGNvcnJlc3BvbmRpbmdQ
cmVzc3VyZUV2ZW50KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VuZEZha2VFdmVudHNB
ZnRlcldpZGdldFRyYWNraW5nKE5TRXZlbnQgKmluaXRpYXRpbmdFdmVudCk7Ci0jZW5kaWYKIAot
I2lmICFQTEFURk9STShJT1MpCiAgICAgdm9pZCBzZXRBY3RpdmF0aW9uRXZlbnROdW1iZXIoaW50
IG51bSkgeyBtX2FjdGl2YXRpb25FdmVudE51bWJlciA9IG51bTsgfQogCiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIE5TRXZlbnQgKmN1cnJlbnROU0V2ZW50KCk7CiAgICAgc3RhdGljIE5TRXZl
bnQgKmNvcnJlc3BvbmRpbmdQcmVzc3VyZUV2ZW50KCk7Ci0jZWxzZQotICAgIHN0YXRpYyBXZWJF
dmVudCAqY3VycmVudEV2ZW50KCk7Ci0jZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKLSNlbmRpZiAv
LyBQTEFURk9STShDT0NPQSkgJiYgZGVmaW5lZChfX09CSkNfXykKKyNlbmRpZgogCiAjaWYgUExB
VEZPUk0oSU9TKQorICAgIHN0YXRpYyBXZWJFdmVudCAqY3VycmVudEV2ZW50KCk7CisKICAgICB2
b2lkIGludmFsaWRhdGVDbGljaygpOwogI2VuZGlmCiAKQEAgLTMyNCw4ICszMjYsOCBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOwogICAgIHN0YXRpYyBjb25z
dCBkb3VibGUgVGV4dERyYWdEZWxheTsKICAgICAKLSAgICBQYXNzUmVmUHRyPERhdGFUcmFuc2Zl
cj4gY3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdDsKLSNlbmRpZiAvLyBFTkFCTEUo
RFJBR19TVVBQT1JUKQorICAgIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURyYWdnaW5nRGF0YVRy
YW5zZmVyKCkgY29uc3Q7CisjZW5kaWYKIAogICAgIGJvb2wgZXZlbnRBY3RpdmF0ZWRWaWV3KGNv
bnN0IFBsYXRmb3JtTW91c2VFdmVudCYpIGNvbnN0OwogICAgIGJvb2wgdXBkYXRlU2VsZWN0aW9u
Rm9yTW91c2VEb3duRGlzcGF0Y2hpbmdTZWxlY3RTdGFydChOb2RlKiwgY29uc3QgVmlzaWJsZVNl
bGVjdGlvbiYsIFRleHRHcmFudWxhcml0eSk7CkBAIC0zNTksOCArMzYxLDggQEAgcHJpdmF0ZToK
ICAgICAKICAgICBib29sIG1vdXNlRG93bk1heVN0YXJ0U2VsZWN0KCkgY29uc3QgeyByZXR1cm4g
bV9tb3VzZURvd25NYXlTdGFydFNlbGVjdDsgfQogCi0gICAgc3RhdGljIGJvb2wgaXNLZXlib2Fy
ZE9wdGlvblRhYihLZXlib2FyZEV2ZW50Kik7Ci0gICAgc3RhdGljIGJvb2wgZXZlbnRJbnZlcnRz
VGFic1RvTGlua3NDbGllbnRDYWxsUmVzdWx0KEtleWJvYXJkRXZlbnQqKTsKKyAgICBzdGF0aWMg
Ym9vbCBpc0tleWJvYXJkT3B0aW9uVGFiKEtleWJvYXJkRXZlbnQmKTsKKyAgICBzdGF0aWMgYm9v
bCBldmVudEludmVydHNUYWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQoS2V5Ym9hcmRFdmVudCYp
OwogCiAjaWYgIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgZmFrZU1vdXNlTW92
ZUV2ZW50VGltZXJGaXJlZCgpOwpAQCAtMzg1LDYgKzM4Nyw3IEBAIHByaXZhdGU6CiAgICAgTW91
c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyBwcmVwYXJlTW91c2VFdmVudChjb25zdCBIaXRUZXN0
UmVxdWVzdCYsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwogCiAgICAgYm9vbCBkaXNwYXRj
aE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqIHRhcmdldCwg
Ym9vbCBjYW5jZWxhYmxlLCBpbnQgY2xpY2tDb3VudCwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50
JiwgYm9vbCBzZXRVbmRlcik7CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIGJvb2wg
ZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQm
IHRhcmdldCwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyKik7CiAKQEAg
LTM5Miw3ICszOTUsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBoYW5kbGVEcmFnKGNvbnN0IE1v
dXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmLCBDaGVja0RyYWdIeXN0ZXJlc2lzKTsKICNlbmRp
ZgorCiAgICAgYm9vbCBoYW5kbGVNb3VzZVVwKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMmKTsKKwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgdm9pZCBjbGVhckRyYWdT
dGF0ZSgpOwogCkBAIC00MDAsNyArNDA1LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgZHJhZ0h5
c3RlcmVzaXNFeGNlZWRlZChjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CiAgICAgYm9vbCBkcmFn
SHlzdGVyZXNpc0V4Y2VlZGVkKGNvbnN0IEludFBvaW50JikgY29uc3Q7Ci0jZW5kaWYgLy8gRU5B
QkxFKERSQUdfU1VQUE9SVCkKKyNlbmRpZgogICAgIAogICAgIGJvb2wgbW91c2VNb3ZlbWVudEV4
Y2VlZHNUaHJlc2hvbGQoY29uc3QgRmxvYXRQb2ludCYsIGludCBwb2ludHNUaHJlc2hvbGQpIGNv
bnN0OwogCkBAIC00MzEsNiArNDM2LDcgQEAgcHJpdmF0ZToKICAgICAvLyBUaGUgZm9sbG93aW5n
IGFyZSBjYWxsZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBoYW5kbGVNb3VzZVVwIGFuZCBoYW5kbGVE
cmFnLiAgCiAgICAgLy8gSWYgdGhleSByZXR1cm4gdHJ1ZSBpdCBpbmRpY2F0ZXMgdGhhdCB0aGV5
IGhhdmUgY29uc3VtZWQgdGhlIGV2ZW50LgogICAgIGJvb2wgZXZlbnRMb29wSGFuZGxlTW91c2VV
cChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CisKICNpZiBFTkFCTEUoRFJB
R19TVVBQT1JUKQogICAgIGJvb2wgZXZlbnRMb29wSGFuZGxlTW91c2VEcmFnZ2VkKGNvbnN0IE1v
dXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsKICNlbmRpZgpAQCAtNDczLDEwICs0NzksMTIg
QEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Tm9kZT4gbV9tb3VzZVByZXNzTm9kZTsKIAogICAgIGJv
b2wgbV9tb3VzZURvd25NYXlTdGFydFNlbGVjdCB7IGZhbHNlIH07CisKICNpZiBFTkFCTEUoRFJB
R19TVVBQT1JUKQogICAgIGJvb2wgbV9tb3VzZURvd25NYXlTdGFydERyYWcgeyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9kcmFnTWF5U3RhcnRTZWxlY3Rpb25JbnN0ZWFkIHsgZmFsc2UgfTsKICNlbmRp
ZgorCiAgICAgYm9vbCBtX21vdXNlRG93bldhc1NpbmdsZUNsaWNrSW5TZWxlY3Rpb24geyBmYWxz
ZSB9OwogICAgIGVudW0gU2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlIHsgSGF2ZU5vdFN0YXJ0ZWRT
ZWxlY3Rpb24sIFBsYWNlZENhcmV0LCBFeHRlbmRlZFNlbGVjdGlvbiB9OwogICAgIFNlbGVjdGlv
bkluaXRpYXRpb25TdGF0ZSBtX3NlbGVjdGlvbkluaXRpYXRpb25TdGF0ZSB7IEhhdmVOb3RTdGFy
dGVkU2VsZWN0aW9uIH07CkBAIC00ODgsNiArNDk2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1f
cGFuU2Nyb2xsQnV0dG9uUHJlc3NlZCB7IGZhbHNlIH07CiAKICAgICBUaW1lciBtX2hvdmVyVGlt
ZXI7CisKICNpZiBFTkFCTEUoQ1VSU09SX1NVUFBPUlQpCiAgICAgVGltZXIgbV9jdXJzb3JVcGRh
dGVUaW1lcjsKICNlbmRpZgpAQCAtNDk1LDYgKzUwNCw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZP
Uk0oTUFDKQogICAgIFRpbWVyIG1fcGVuZGluZ01vbWVudHVtV2hlZWxFdmVudHNUaW1lcjsKICNl
bmRpZgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPEF1dG9zY3JvbGxDb250cm9sbGVyPiBtX2F1dG9z
Y3JvbGxDb250cm9sbGVyOwogICAgIGJvb2wgbV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9tb3VzZURvd25XYXNJblN1YmZyYW1lIHsgZmFsc2UgfTsK
QEAgLTUyMywxMSArNTMzLDEzIEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9nZXN0dXJlSW5pdGlh
bERpYW1ldGVyIHsgR2VzdHVyZVVua25vd24gfTsKICAgICBmbG9hdCBtX2dlc3R1cmVJbml0aWFs
Um90YXRpb24geyBHZXN0dXJlVW5rbm93biB9OwogI2VuZGlmCisKICNpZiBFTkFCTEUoSU9TX0dF
U1RVUkVfRVZFTlRTKSB8fCBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogICAgIGZsb2F0IG1f
Z2VzdHVyZUxhc3REaWFtZXRlciB7IEdlc3R1cmVVbmtub3duIH07CiAgICAgZmxvYXQgbV9nZXN0
dXJlTGFzdFJvdGF0aW9uIHsgR2VzdHVyZVVua25vd24gfTsKICAgICBFdmVudFRhcmdldFNldCBt
X2dlc3R1cmVUYXJnZXRzOwogI2VuZGlmCisKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRT
KQogICAgIGJvb2wgbV9oYXNBY3RpdmVHZXN0dXJlIHsgZmFsc2UgfTsKICNlbmRpZgpAQCAtNTU4
LDEyICs1NzAsMTQgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBOU1ZpZXcg
Km1fbW91c2VEb3duVmlldyB7IG51bGxwdHIgfTsKICAgICBib29sIG1fc2VuZGluZ0V2ZW50VG9T
dWJ2aWV3IHsgZmFsc2UgfTsKLSNpZiAhUExBVEZPUk0oSU9TKQotICAgIGludCBtX2FjdGl2YXRp
b25FdmVudE51bWJlciB7IC0xIH07CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBp
bnQgbV9hY3RpdmF0aW9uRXZlbnROdW1iZXIgeyAtMSB9OwogI2VuZGlmCisKICNpZiBFTkFCTEUo
VE9VQ0hfRVZFTlRTKSAmJiAhRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi0gICAgdHlwZWRlZiBI
YXNoTWFwPGludCwgUmVmUHRyPEV2ZW50VGFyZ2V0Pj4gVG91Y2hUYXJnZXRNYXA7CisgICAgdXNp
bmcgVG91Y2hUYXJnZXRNYXAgPSBIYXNoTWFwPGludCwgUmVmUHRyPEV2ZW50VGFyZ2V0Pj47CiAg
ICAgVG91Y2hUYXJnZXRNYXAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRzOwogICAgIFJl
ZlB0cjxEb2N1bWVudD4gbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnREb2N1bWVudDsKICAgICB1bnNp
Z25lZCBtX29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdldEtleSB7IDAgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRleCBhN2IyNTU3ZTY5NDZkYjllNTYxMTU3YWRm
NzJjYzI4MjZlZmU4NzQ3Li41ZTUxNjE5MTVmYzQ5NzAyODBjZjkyOTI2MDZlNTgwY2Y3ZWQ3NzM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0zMTYsNyArMzE2
LDcgQEAgRm9jdXNDb250cm9sbGVyOjpGb2N1c0NvbnRyb2xsZXIoUGFnZSYgcGFnZSwgQWN0aXZp
dHlTdGF0ZTo6RmxhZ3MgYWN0aXZpdHlTdGF0ZSkKIHsKIH0KIAotdm9pZCBGb2N1c0NvbnRyb2xs
ZXI6OnNldEZvY3VzZWRGcmFtZShQYXNzUmVmUHRyPEZyYW1lPiBmcmFtZSkKK3ZvaWQgRm9jdXND
b250cm9sbGVyOjpzZXRGb2N1c2VkRnJhbWUoRnJhbWUqIGZyYW1lKQogewogICAgIEFTU0VSVCgh
ZnJhbWUgfHwgZnJhbWUtPnBhZ2UoKSA9PSAmbV9wYWdlKTsKICAgICBpZiAobV9mb2N1c2VkRnJh
bWUgPT0gZnJhbWUgfHwgbV9pc0NoYW5naW5nRm9jdXNlZEZyYW1lKQpAQCAtNzY1LDggKzc2NSw5
IEBAIHN0YXRpYyB2b2lkIGNsZWFyU2VsZWN0aW9uSWZOZWVkZWQoRnJhbWUqIG9sZEZvY3VzZWRG
cmFtZSwgRnJhbWUqIG5ld0ZvY3VzZWRGcmFtCiAgICAgb2xkRm9jdXNlZEZyYW1lLT5zZWxlY3Rp
b24oKS5jbGVhcigpOwogfQogCi1ib29sIEZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEVsZW1l
bnQoRWxlbWVudCogZWxlbWVudCwgUGFzc1JlZlB0cjxGcmFtZT4gbmV3Rm9jdXNlZEZyYW1lLCBG
b2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCitib29sIEZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNl
ZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgRnJhbWUmIG5ld0ZvY3VzZWRGcmFtZSwgRm9jdXNE
aXJlY3Rpb24gZGlyZWN0aW9uKQogeworICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkTmV3Rm9jdXNl
ZEZyYW1lID0gbmV3Rm9jdXNlZEZyYW1lOwogICAgIFJlZlB0cjxGcmFtZT4gb2xkRm9jdXNlZEZy
YW1lID0gZm9jdXNlZEZyYW1lKCk7CiAgICAgUmVmUHRyPERvY3VtZW50PiBvbGREb2N1bWVudCA9
IG9sZEZvY3VzZWRGcmFtZSA/IG9sZEZvY3VzZWRGcmFtZS0+ZG9jdW1lbnQoKSA6IG51bGxwdHI7
CiAgICAgCkBAIC03ODAsNyArNzgxLDcgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3Vz
ZWRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIFBhc3NSZWZQdHI8RnJhbWU+IG5ld0YKIAogICAg
IG1fcGFnZS5lZGl0b3JDbGllbnQoKS53aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogCi0gICAg
Y2xlYXJTZWxlY3Rpb25JZk5lZWRlZChvbGRGb2N1c2VkRnJhbWUuZ2V0KCksIG5ld0ZvY3VzZWRG
cmFtZS5nZXQoKSwgZWxlbWVudCk7CisgICAgY2xlYXJTZWxlY3Rpb25JZk5lZWRlZChvbGRGb2N1
c2VkRnJhbWUuZ2V0KCksICZuZXdGb2N1c2VkRnJhbWUsIGVsZW1lbnQpOwogCiAgICAgaWYgKCFl
bGVtZW50KSB7CiAgICAgICAgIGlmIChvbGREb2N1bWVudCkKQEAgLTc5OSwxMSArODAwLDExIEBA
IGJvb2wgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50
LCBQYXNzUmVmUHRyPEZyYW1lPiBuZXdGCiAgICAgaWYgKG9sZERvY3VtZW50ICYmIG9sZERvY3Vt
ZW50ICE9IG5ld0RvY3VtZW50LnB0cigpKQogICAgICAgICBvbGREb2N1bWVudC0+c2V0Rm9jdXNl
ZEVsZW1lbnQobnVsbHB0cik7CiAKLSAgICBpZiAobmV3Rm9jdXNlZEZyYW1lICYmICFuZXdGb2N1
c2VkRnJhbWUtPnBhZ2UoKSkgeworICAgIGlmIChuZXdGb2N1c2VkRnJhbWUucGFnZSgpKSB7CiAg
ICAgICAgIHNldEZvY3VzZWRGcmFtZShudWxscHRyKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KLSAgICBzZXRGb2N1c2VkRnJhbWUobmV3Rm9jdXNlZEZyYW1lKTsKKyAgICBzZXRGb2N1
c2VkRnJhbWUoJm5ld0ZvY3VzZWRGcmFtZSk7CiAKICAgICBSZWY8RWxlbWVudD4gcHJvdGVjdCgq
ZWxlbWVudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9s
bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCmluZGV4IGVjYmUz
OTYxZGExZjViMDA1YjAxYmNjODI1MTZiNTBhMjdhOGUyYWUuLmM2ZGNmMjIyMDkzNWVjYmIxZmNi
ZDQyMjFmMmNhMmQ5NDczZjc3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9j
dXNDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zMCwxMiArMzAsMTAgQEAKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5jbHVk
ZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1zdHJ1Y3QgRm9jdXNDYW5kaWRhdGU7CiBjbGFzcyBDb250YWluZXJOb2RlOwogY2xhc3Mg
RG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OwpAQCAtNDgsMTkgKzQ2LDIxIEBAIGNsYXNzIE5vZGU7
CiBjbGFzcyBQYWdlOwogY2xhc3MgVHJlZVNjb3BlOwogCitzdHJ1Y3QgRm9jdXNDYW5kaWRhdGU7
CisKIGNsYXNzIEZvY3VzQ29udHJvbGxlciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRm9j
dXNDb250cm9sbGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgRm9jdXNDb250cm9sbGVyKFBhZ2Um
LCBBY3Rpdml0eVN0YXRlOjpGbGFncyk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZv
Y3VzZWRGcmFtZShQYXNzUmVmUHRyPEZyYW1lPik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRGb2N1c2VkRnJhbWUoRnJhbWUqKTsKICAgICBGcmFtZSogZm9jdXNlZEZyYW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9mb2N1c2VkRnJhbWUuZ2V0KCk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBGcmFt
ZSYgZm9jdXNlZE9yTWFpbkZyYW1lKCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29s
IHNldEluaXRpYWxGb2N1cyhGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCopOwogICAgIGJv
b2wgYWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50JiwgYm9vbCBpbml0
aWFsRm9jdXMgPSBmYWxzZSk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldEZvY3VzZWRF
bGVtZW50KEVsZW1lbnQqLCBQYXNzUmVmUHRyPEZyYW1lPiwgRm9jdXNEaXJlY3Rpb24gPSBGb2N1
c0RpcmVjdGlvbk5vbmUpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0Rm9jdXNlZEVsZW1l
bnQoRWxlbWVudCosIEZyYW1lJiwgRm9jdXNEaXJlY3Rpb24gPSBGb2N1c0RpcmVjdGlvbk5vbmUp
OwogCiAgICAgdm9pZCBzZXRBY3Rpdml0eVN0YXRlKEFjdGl2aXR5U3RhdGU6OkZsYWdzKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCmluZGV4IGRlZWIyM2I3NTg0NDliYmZlNWM1NWYxOWQ4
MGQwNDkyODI5MTE3YWEuLjYzODQ5MGU0YmNhMzQ2MmI2Yjc3ZmI2M2JjMDBkZjVjMjJhNTI2YzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC02MywyNSArNjMsNiBAQCBGcmFtZSogRnJh
bWVUcmVlOjpwYXJlbnQoKSBjb25zdAogICAgIHJldHVybiBtX3BhcmVudDsKIH0KIAotYm9vbCBG
cmFtZVRyZWU6OnRyYW5zZmVyQ2hpbGQoUGFzc1JlZlB0cjxGcmFtZT4gY2hpbGQpCi17Ci0gICAg
RnJhbWUqIG9sZFBhcmVudCA9IGNoaWxkLT50cmVlKCkucGFyZW50KCk7Ci0gICAgaWYgKG9sZFBh
cmVudCA9PSAmbV90aGlzRnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsgLy8gfGNoaWxkfCBp
cyBhbHJlYWR5IGEgY2hpbGQgb2YgbV90aGlzRnJhbWUuCi0KLSAgICBpZiAob2xkUGFyZW50KQot
ICAgICAgICBvbGRQYXJlbnQtPnRyZWUoKS5yZW1vdmVDaGlsZChjaGlsZC5nZXQoKSk7Ci0KLSAg
ICBBU1NFUlQoY2hpbGQtPnBhZ2UoKSA9PSBtX3RoaXNGcmFtZS5wYWdlKCkpOwotICAgIGNoaWxk
LT50cmVlKCkubV9wYXJlbnQgPSAmbV90aGlzRnJhbWU7Ci0KLSAgICAvLyBXZSBuZWVkIHRvIGVu
c3VyZSB0aGF0IHRoZSBjaGlsZCBzdGlsbCBoYXMgYSB1bmlxdWUgZnJhbWUgbmFtZSB3aXRoIHJl
c3BlY3QgdG8gaXRzIG5ldyBwYXJlbnQuCi0gICAgY2hpbGQtPnRyZWUoKS5zZXROYW1lKGNoaWxk
LT50cmVlKCkubV9uYW1lKTsKLQotICAgIGFjdHVhbGx5QXBwZW5kQ2hpbGQoY2hpbGQpOyAvLyBO
b3RlLCBvbiByZXR1cm4gfGNoaWxkfCBpcyBudWxsLgotICAgIHJldHVybiB0cnVlOwotfQotCiB1
bnNpZ25lZCBGcmFtZVRyZWU6OmluZGV4SW5QYXJlbnQoKSBjb25zdAogewogICAgIGlmICghbV9w
YXJlbnQpCkBAIC05NSw0NiArNzYsNDAgQEAgdW5zaWduZWQgRnJhbWVUcmVlOjppbmRleEluUGFy
ZW50KCkgY29uc3QKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lk
IEZyYW1lVHJlZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxGcmFtZT4gY2hpbGQpCi17Ci0gICAg
QVNTRVJUKGNoaWxkLT5wYWdlKCkgPT0gbV90aGlzRnJhbWUucGFnZSgpKTsKLSAgICBjaGlsZC0+
dHJlZSgpLm1fcGFyZW50ID0gJm1fdGhpc0ZyYW1lOwotICAgIGFjdHVhbGx5QXBwZW5kQ2hpbGQo
Y2hpbGQpOyAvLyBOb3RlLCBvbiByZXR1cm4gfGNoaWxkfCBpcyBudWxsLgotfQotCi12b2lkIEZy
YW1lVHJlZTo6YWN0dWFsbHlBcHBlbmRDaGlsZChQYXNzUmVmUHRyPEZyYW1lPiBjaGlsZCkKK3Zv
aWQgRnJhbWVUcmVlOjphcHBlbmRDaGlsZChGcmFtZSYgY2hpbGQpCiB7Ci0gICAgQVNTRVJUKGNo
aWxkLT50cmVlKCkubV9wYXJlbnQgPT0gJm1fdGhpc0ZyYW1lKTsKKyAgICBBU1NFUlQoY2hpbGQu
cGFnZSgpID09IG1fdGhpc0ZyYW1lLnBhZ2UoKSk7CisgICAgY2hpbGQudHJlZSgpLm1fcGFyZW50
ID0gJm1fdGhpc0ZyYW1lOwogICAgIEZyYW1lKiBvbGRMYXN0ID0gbV9sYXN0Q2hpbGQ7Ci0gICAg
bV9sYXN0Q2hpbGQgPSBjaGlsZC5nZXQoKTsKKyAgICBtX2xhc3RDaGlsZCA9ICZjaGlsZDsKIAog
ICAgIGlmIChvbGRMYXN0KSB7Ci0gICAgICAgIGNoaWxkLT50cmVlKCkubV9wcmV2aW91c1NpYmxp
bmcgPSBvbGRMYXN0OwotICAgICAgICBvbGRMYXN0LT50cmVlKCkubV9uZXh0U2libGluZyA9IGNo
aWxkOworICAgICAgICBjaGlsZC50cmVlKCkubV9wcmV2aW91c1NpYmxpbmcgPSBvbGRMYXN0Owor
ICAgICAgICBvbGRMYXN0LT50cmVlKCkubV9uZXh0U2libGluZyA9ICZjaGlsZDsKICAgICB9IGVs
c2UKLSAgICAgICAgbV9maXJzdENoaWxkID0gY2hpbGQ7CisgICAgICAgIG1fZmlyc3RDaGlsZCA9
ICZjaGlsZDsKIAogICAgIG1fc2NvcGVkQ2hpbGRDb3VudCA9IGludmFsaWRDb3VudDsKIAogICAg
IEFTU0VSVCghbV9sYXN0Q2hpbGQtPnRyZWUoKS5tX25leHRTaWJsaW5nKTsKIH0KIAotdm9pZCBG
cmFtZVRyZWU6OnJlbW92ZUNoaWxkKEZyYW1lKiBjaGlsZCkKK3ZvaWQgRnJhbWVUcmVlOjpyZW1v
dmVDaGlsZChGcmFtZSYgY2hpbGQpCiB7Ci0gICAgY2hpbGQtPnRyZWUoKS5tX3BhcmVudCA9IG51
bGxwdHI7CisgICAgY2hpbGQudHJlZSgpLm1fcGFyZW50ID0gbnVsbHB0cjsKIAogICAgIC8vIFNs
aWdodGx5IHRyaWNreSB3YXkgdG8gcHJldmVudCBkZWxldGluZyB0aGUgY2hpbGQgdW50aWwgd2Ug
YXJlIGRvbmUgd2l0aCBpdCwgdy9vCiAgICAgLy8gZXh0cmEgcmVmcy4gVGhlc2Ugc3dhcHMgbGVh
dmUgdGhlIGNoaWxkIGluIGEgY2lyY3VsYXIgbGlzdCBieSBpdHNlbGYuIENsZWFyaW5nIGl0cwog
ICAgIC8vIHByZXZpb3VzIGFuZCBuZXh0IHdpbGwgdGhlbiBmaW5hbGx5IGRlcmVmIGl0LgogCi0g
ICAgUmVmUHRyPEZyYW1lPiYgbmV3TG9jYXRpb25Gb3JOZXh0ID0gbV9maXJzdENoaWxkID09IGNo
aWxkID8gbV9maXJzdENoaWxkIDogY2hpbGQtPnRyZWUoKS5tX3ByZXZpb3VzU2libGluZy0+dHJl
ZSgpLm1fbmV4dFNpYmxpbmc7Ci0gICAgRnJhbWUqJiBuZXdMb2NhdGlvbkZvclByZXZpb3VzID0g
bV9sYXN0Q2hpbGQgPT0gY2hpbGQgPyBtX2xhc3RDaGlsZCA6IGNoaWxkLT50cmVlKCkubV9uZXh0
U2libGluZy0+dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nOwotICAgIHN3YXAobmV3TG9jYXRpb25G
b3JOZXh0LCBjaGlsZC0+dHJlZSgpLm1fbmV4dFNpYmxpbmcpOworICAgIFJlZlB0cjxGcmFtZT4m
IG5ld0xvY2F0aW9uRm9yTmV4dCA9IG1fZmlyc3RDaGlsZCA9PSAmY2hpbGQgPyBtX2ZpcnN0Q2hp
bGQgOiBjaGlsZC50cmVlKCkubV9wcmV2aW91c1NpYmxpbmctPnRyZWUoKS5tX25leHRTaWJsaW5n
OworICAgIEZyYW1lKiYgbmV3TG9jYXRpb25Gb3JQcmV2aW91cyA9IG1fbGFzdENoaWxkID09ICZj
aGlsZCA/IG1fbGFzdENoaWxkIDogY2hpbGQudHJlZSgpLm1fbmV4dFNpYmxpbmctPnRyZWUoKS5t
X3ByZXZpb3VzU2libGluZzsKKyAgICBzd2FwKG5ld0xvY2F0aW9uRm9yTmV4dCwgY2hpbGQudHJl
ZSgpLm1fbmV4dFNpYmxpbmcpOwogICAgIC8vIEZvciBzb21lIGluZXhwbGljYWJsZSByZWFzb24s
IHRoZSBmb2xsb3dpbmcgbGluZSBkb2VzIG5vdCBjb21waWxlIHdpdGhvdXQgdGhlIGV4cGxpY2l0
IHN0ZDo6IG5hbWVzcGFjZQotICAgIHN0ZDo6c3dhcChuZXdMb2NhdGlvbkZvclByZXZpb3VzLCBj
aGlsZC0+dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nKTsKKyAgICBzdGQ6OnN3YXAobmV3TG9jYXRp
b25Gb3JQcmV2aW91cywgY2hpbGQudHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nKTsKIAotICAgIGNo
aWxkLT50cmVlKCkubV9wcmV2aW91c1NpYmxpbmcgPSBudWxscHRyOwotICAgIGNoaWxkLT50cmVl
KCkubV9uZXh0U2libGluZyA9IG51bGxwdHI7CisgICAgY2hpbGQudHJlZSgpLm1fcHJldmlvdXNT
aWJsaW5nID0gbnVsbHB0cjsKKyAgICBjaGlsZC50cmVlKCkubV9uZXh0U2libGluZyA9IG51bGxw
dHI7CiAKICAgICBtX3Njb3BlZENoaWxkQ291bnQgPSBpbnZhbGlkQ291bnQ7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVRyZWUuaAppbmRleCBhYjE2ZjBhZDYzOTYyNWFlMmQ3OGMxNzlmMTM1M2JiODRjOThh
ZTFhLi4zZjg3YzI3OWJkYzNhMDY0ZmU4ODgwOGI2MDNhMmFjZjdmMmRjN2ViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVUcmVlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2
IEFwcGxlIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNjUsMTAgKzY1LDkgQEAgcHVi
bGljOgogICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lKiB0cmF2ZXJzZU5leHRXaXRoV3JhcChib29s
KSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBGcmFtZSogdHJhdmVyc2VQcmV2aW91c1dpdGhX
cmFwKGJvb2wpIGNvbnN0OwogICAgIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwZW5kQ2hp
bGQoUGFzc1JlZlB0cjxGcmFtZT4pOwotICAgIGJvb2wgdHJhbnNmZXJDaGlsZChQYXNzUmVmUHRy
PEZyYW1lPik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBlbmRDaGlsZChGcmFtZSYpOwog
ICAgIHZvaWQgZGV0YWNoRnJvbVBhcmVudCgpIHsgbV9wYXJlbnQgPSBudWxscHRyOyB9Ci0gICAg
dm9pZCByZW1vdmVDaGlsZChGcmFtZSopOworICAgIHZvaWQgcmVtb3ZlQ2hpbGQoRnJhbWUmKTsK
IAogICAgIEZyYW1lKiBjaGlsZCh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CiAgICAgRnJhbWUqIGNo
aWxkKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3Q7CkBAIC04Nyw3ICs4Niw2IEBAIHB1
YmxpYzoKIAogcHJpdmF0ZToKICAgICBGcmFtZSogZGVlcExhc3RDaGlsZCgpIGNvbnN0OwotICAg
IHZvaWQgYWN0dWFsbHlBcHBlbmRDaGlsZChQYXNzUmVmUHRyPEZyYW1lPik7CiAKICAgICBib29s
IHNjb3BlZEJ5KFRyZWVTY29wZSopIGNvbnN0OwogICAgIEZyYW1lKiBzY29wZWRDaGlsZCh1bnNp
Z25lZCBpbmRleCwgVHJlZVNjb3BlKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAK
aW5kZXggZDk0YzlkOTIxYTRhNDE5NjNlYzhkYWU3NWMwYjRlMjMyNjA5NzhhMi4uNGQ2MzhhMmU3
NTNjMWVhYjdiZmMwZGM3OGM4NzM3ZDBlNTJjMmEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcApAQCAtNjc3LDcgKzY3Nyw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRDb250ZW50c1NpemUo
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKIAogICAgIHVwZGF0ZVNjcm9sbGFibGVBcmVhU2V0KCk7CiAK
LSAgICBwYWdlLT5jaHJvbWUoKS5jb250ZW50c1NpemVDaGFuZ2VkKCZmcmFtZSgpLCBzaXplKTsg
Ly8gTm90aWZ5IG9ubHkuCisgICAgcGFnZS0+Y2hyb21lKCkuY29udGVudHNTaXplQ2hhbmdlZChm
cmFtZSgpLCBzaXplKTsgLy8gTm90aWZ5IG9ubHkuCiAKICAgICBpZiAoZnJhbWUoKS5pc01haW5G
cmFtZSgpKSB7CiAgICAgICAgIGZyYW1lKCkubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9s
bGVyKCkuZGlkQ2hhbmdlRG9jdW1lbnRTaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL01haW5GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAK
aW5kZXggNDgxNzRjYjI0MzdkNTk2MGIyMWM1MzgzNmM1MjcxYjY2MGQ4ODZjMS4uYTE3YmUzYmI1
M2E4OTJmNWJlNjJkNGM0ZDc3MjRlMGFkNGNmZDRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9NYWluRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1l
LmNwcApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIE1haW5GcmFtZTo6c2VsZk9ubHlEZXJlZigpCiB2
b2lkIE1haW5GcmFtZTo6ZHJvcENoaWxkcmVuKCkKIHsKICAgICB3aGlsZSAoRnJhbWUqIGNoaWxk
ID0gdHJlZSgpLmZpcnN0Q2hpbGQoKSkKLSAgICAgICAgdHJlZSgpLnJlbW92ZUNoaWxkKGNoaWxk
KTsKKyAgICAgICAgdHJlZSgpLnJlbW92ZUNoaWxkKCpjaGlsZCk7CiB9CiAKICNpZiBQTEFURk9S
TShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBkYjE3ZTZiYWY3YWNlNGMyNzI2NWM4ZWRiMzcw
NWZkYjE3ZWIyMGJhLi43ZDZhZjExMGE0Y2Q0ZGFkZWNlZDI0NTkwNjYyNzMwNDJmM2QwYzVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTM2Myw3ICszNjMsNyBAQCBWaWV3cG9ydEFyZ3VtZW50cyBQ
YWdlOjp2aWV3cG9ydEFyZ3VtZW50cygpIGNvbnN0CiBTY3JvbGxpbmdDb29yZGluYXRvciogUGFn
ZTo6c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKQogewogICAgIGlmICghbV9zY3JvbGxpbmdDb29yZGlu
YXRvciAmJiBtX3NldHRpbmdzLT5zY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQoKSkgewotICAg
ICAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yID0gY2hyb21lKCkuY2xpZW50KCkuY3JlYXRlU2Ny
b2xsaW5nQ29vcmRpbmF0b3IodGhpcyk7CisgICAgICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3Ig
PSBjaHJvbWUoKS5jbGllbnQoKS5jcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcigqdGhpcyk7CiAg
ICAgICAgIGlmICghbV9zY3JvbGxpbmdDb29yZGluYXRvcikKICAgICAgICAgICAgIG1fc2Nyb2xs
aW5nQ29vcmRpbmF0b3IgPSBTY3JvbGxpbmdDb29yZGluYXRvcjo6Y3JlYXRlKHRoaXMpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAKaW5kZXggZTcwYmNhMDUyM2YwZTM5NWY4
NzdmZjYzYzEyYWEzOTU1N2FkZWQ3Yy4uMmNhODZmOTgyODA4MTYzNzg0ZjJhYjdmYTQzZWVlYmJl
ZTM3OTVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAKQEAgLTI3NCw3ICsyNzQs
NyBAQCB2b2lkIFBhZ2VPdmVybGF5OjpmYWRlQW5pbWF0aW9uVGltZXJGaXJlZCgpCiAKICAgICAg
ICAgLy8gSWYgdGhpcyB3YXMgYSBmYWRlIG91dCwgdW5pbnN0YWxsIHRoZSBwYWdlIG92ZXJsYXku
CiAgICAgICAgIGlmICh3YXNGYWRpbmdPdXQpCi0gICAgICAgICAgICBjb250cm9sbGVyKCktPnVu
aW5zdGFsbFBhZ2VPdmVybGF5KHRoaXMsIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRl
KTsKKyAgICAgICAgICAgIGNvbnRyb2xsZXIoKS0+dW5pbnN0YWxsUGFnZU92ZXJsYXkoKnRoaXMs
IFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKICAgICB9CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcAppbmRleCA4NjZiODcwY2I4
ZTRkMWI3ZTVkMjFiM2IxNmFjMWU1YzZiM2FiZjgzLi4wNTQzYmQ1MzRkMjUxYmEzN2RjYTQyMWRh
MTdlMmM5OTNhMmRhZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVy
bGF5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNv
bnRyb2xsZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTk1LDI3ICs5NSwyNSBAQCBzdGF0aWMgdm9pZCB1cGRhdGVPdmVybGF5R2Vv
bWV0cnkoUGFnZU92ZXJsYXkmIG92ZXJsYXksIEdyYXBoaWNzTGF5ZXImIGdyYXBoaWNzTAogICAg
IGdyYXBoaWNzTGF5ZXIuc2V0U2l6ZShvdmVybGF5RnJhbWUuc2l6ZSgpKTsKIH0KIAotdm9pZCBQ
YWdlT3ZlcmxheUNvbnRyb2xsZXI6Omluc3RhbGxQYWdlT3ZlcmxheShQYXNzUmVmUHRyPFBhZ2VP
dmVybGF5PiBwYWdlT3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlIGZhZGVNb2RlKQordm9p
ZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6Omluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSYg
b3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlIGZhZGVNb2RlKQogewogICAgIGNyZWF0ZVJv
b3RMYXllcnNJZk5lZWRlZCgpOwogCi0gICAgUmVmUHRyPFBhZ2VPdmVybGF5PiBvdmVybGF5ID0g
cGFnZU92ZXJsYXk7Ci0KLSAgICBpZiAobV9wYWdlT3ZlcmxheXMuY29udGFpbnMob3ZlcmxheSkp
CisgICAgaWYgKG1fcGFnZU92ZXJsYXlzLmNvbnRhaW5zKCZvdmVybGF5KSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgbV9wYWdlT3ZlcmxheXMuYXBwZW5kKG92ZXJsYXkpOworICAgIG1fcGFnZU92
ZXJsYXlzLmFwcGVuZCgmb3ZlcmxheSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NM
YXllcj4gbGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUobV9tYWluRnJhbWUucGFnZSgpLT5j
aHJvbWUoKS5jbGllbnQoKS5ncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAgICAgbGF5
ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQzRCgpKTsKLSAgICBsYXllci0+c2V0QmFja2dy
b3VuZENvbG9yKG92ZXJsYXktPmJhY2tncm91bmRDb2xvcigpKTsKKyAgICBsYXllci0+c2V0QmFj
a2dyb3VuZENvbG9yKG92ZXJsYXkuYmFja2dyb3VuZENvbG9yKCkpOwogI2lmbmRlZiBOREVCVUcK
ICAgICBsYXllci0+c2V0TmFtZSgiUGFnZSBPdmVybGF5IGNvbnRlbnQiKTsKICNlbmRpZgogCiAg
ICAgdXBkYXRlU2V0dGluZ3NGb3JMYXllcigqbGF5ZXIpOwogCi0gICAgc3dpdGNoIChvdmVybGF5
LT5vdmVybGF5VHlwZSgpKSB7CisgICAgc3dpdGNoIChvdmVybGF5Lm92ZXJsYXlUeXBlKCkpIHsK
ICAgICBjYXNlIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZTo6VmlldzoKICAgICAgICAgbV92aWV3
T3ZlcmxheVJvb3RMYXllci0+YWRkQ2hpbGQobGF5ZXIuZ2V0KCkpOwogICAgICAgICBicmVhazsK
QEAgLTEyNSwzMyArMTIzLDMzIEBAIHZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjppbnN0YWxs
UGFnZU92ZXJsYXkoUGFzc1JlZlB0cjxQYWdlT3ZlcmxheT4gcGFnZU92ZXJsCiAgICAgfQogCiAg
ICAgR3JhcGhpY3NMYXllciYgcmF3TGF5ZXIgPSAqbGF5ZXI7Ci0gICAgbV9vdmVybGF5R3JhcGhp
Y3NMYXllcnMuc2V0KG92ZXJsYXkuZ2V0KCksIFdURk1vdmUobGF5ZXIpKTsKKyAgICBtX292ZXJs
YXlHcmFwaGljc0xheWVycy5zZXQoJm92ZXJsYXksIFdURk1vdmUobGF5ZXIpKTsKIAogICAgIHVw
ZGF0ZUZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0aW9uVXBkYXRlcygpOwogCi0gICAg
b3ZlcmxheS0+c2V0UGFnZShtX21haW5GcmFtZS5wYWdlKCkpOworICAgIG92ZXJsYXkuc2V0UGFn
ZShtX21haW5GcmFtZS5wYWdlKCkpOwogCiAgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0g
bV9tYWluRnJhbWUudmlldygpKQogICAgICAgICBmcmFtZVZpZXctPmVudGVyQ29tcG9zaXRpbmdN
b2RlKCk7CiAKLSAgICB1cGRhdGVPdmVybGF5R2VvbWV0cnkoKm92ZXJsYXksIHJhd0xheWVyKTsK
KyAgICB1cGRhdGVPdmVybGF5R2VvbWV0cnkob3ZlcmxheSwgcmF3TGF5ZXIpOwogCiAgICAgaWYg
KGZhZGVNb2RlID09IFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSkKLSAgICAgICAgb3Zlcmxh
eS0+c3RhcnRGYWRlSW5BbmltYXRpb24oKTsKKyAgICAgICAgb3ZlcmxheS5zdGFydEZhZGVJbkFu
aW1hdGlvbigpOwogfQogCi12b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0YWxsUGFn
ZU92ZXJsYXkoUGFnZU92ZXJsYXkqIG92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSBmYWRl
TW9kZSkKK3ZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjp1bmluc3RhbGxQYWdlT3ZlcmxheShQ
YWdlT3ZlcmxheSYgb3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlIGZhZGVNb2RlKQogewog
ICAgIGlmIChmYWRlTW9kZSA9PSBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpIHsKLSAgICAg
ICAgb3ZlcmxheS0+c3RhcnRGYWRlT3V0QW5pbWF0aW9uKCk7CisgICAgICAgIG92ZXJsYXkuc3Rh
cnRGYWRlT3V0QW5pbWF0aW9uKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBvdmVy
bGF5LT5zZXRQYWdlKG51bGxwdHIpOworICAgIG92ZXJsYXkuc2V0UGFnZShudWxscHRyKTsKIAot
ICAgIG1fb3ZlcmxheUdyYXBoaWNzTGF5ZXJzLnRha2Uob3ZlcmxheSktPnJlbW92ZUZyb21QYXJl
bnQoKTsKKyAgICBtX292ZXJsYXlHcmFwaGljc0xheWVycy50YWtlKCZvdmVybGF5KS0+cmVtb3Zl
RnJvbVBhcmVudCgpOwogCi0gICAgYm9vbCByZW1vdmVkID0gbV9wYWdlT3ZlcmxheXMucmVtb3Zl
Rmlyc3Qob3ZlcmxheSk7CisgICAgYm9vbCByZW1vdmVkID0gbV9wYWdlT3ZlcmxheXMucmVtb3Zl
Rmlyc3QoJm92ZXJsYXkpOwogICAgIEFTU0VSVF9VTlVTRUQocmVtb3ZlZCwgcmVtb3ZlZCk7CiAK
ICAgICB1cGRhdGVGb3JjZVN5bmNocm9ub3VzU2Nyb2xsTGF5ZXJQb3NpdGlvblVwZGF0ZXMoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCmluZGV4IDM5Nzgw
OTgyMDA4YzY1MWYyODhiNzk3NmIxYjkzMjk1YWM1MmU3YTQuLjYzODk0N2M2MTg0NmFiMDY3NWNl
ODAzYWJmMTc2YjZiNzFkZDhjMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZU92ZXJsYXlDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3Zlcmxh
eUNvbnRyb2xsZXIuaApAQCAtMzksNyArMzksNiBAQCBjbGFzcyBQYWdlOwogY2xhc3MgUGxhdGZv
cm1Nb3VzZUV2ZW50OwogCiBjbGFzcyBQYWdlT3ZlcmxheUNvbnRyb2xsZXIgZmluYWwgOiBwdWJs
aWMgR3JhcGhpY3NMYXllckNsaWVudCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZU92
ZXJsYXlDb250cm9sbGVyKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
ICAgICBQYWdlT3ZlcmxheUNvbnRyb2xsZXIoTWFpbkZyYW1lJik7CkBAIC01MCw4ICs0OSw4IEBA
IHB1YmxpYzoKIAogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UGFnZU92ZXJsYXk+PiYgcGFnZU92
ZXJsYXlzKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlT3ZlcmxheXM7IH0KIAotICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgaW5zdGFsbFBhZ2VPdmVybGF5KFBhc3NSZWZQdHI8UGFnZU92ZXJsYXk+LCBQ
YWdlT3ZlcmxheTo6RmFkZU1vZGUpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5pbnN0YWxs
UGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkqLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5JiwgUGFnZU92
ZXJsYXk6OkZhZGVNb2RlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuaW5zdGFsbFBhZ2VP
dmVybGF5KFBhZ2VPdmVybGF5JiwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlKTsKIAogICAgIHZvaWQg
c2V0UGFnZU92ZXJsYXlOZWVkc0Rpc3BsYXkoUGFnZU92ZXJsYXkmLCBjb25zdCBJbnRSZWN0Jik7
CiAgICAgdm9pZCBzZXRQYWdlT3ZlcmxheU9wYWNpdHkoUGFnZU92ZXJsYXkmLCBmbG9hdCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCmluZGV4IDdmZmYxMjNmZjY0MTM3ODI1
YzhkMTk4MDNkYmVjZjM5Yzg2MzY4YWYuLjkzZDM3NzdhYTFhOWYwNzlmNzEwNGM5NzQ1ZDdkYTFj
Y2JiZmQ1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCkBAIC04MCw4
ICs4MCw3IEBAIHN0YXRpYyBib29sIGlzQ2hhcnNldFNwZWNpZnlpbmdOb2RlKGNvbnN0IE5vZGUm
IG5vZGUpCiAgICAgICAgICAgICBhdHRyaWJ1dGVzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihhdHRy
aWJ1dGUubmFtZSgpLnRvU3RyaW5nKCksIGF0dHJpYnV0ZS52YWx1ZSgpLnN0cmluZygpKSk7CiAg
ICAgICAgIH0KICAgICB9Ci0gICAgVGV4dEVuY29kaW5nIHRleHRFbmNvZGluZyA9IEhUTUxNZXRh
Q2hhcnNldFBhcnNlcjo6ZW5jb2RpbmdGcm9tTWV0YUF0dHJpYnV0ZXMoYXR0cmlidXRlcyk7Ci0g
ICAgcmV0dXJuIHRleHRFbmNvZGluZy5pc1ZhbGlkKCk7CisgICAgcmV0dXJuIEhUTUxNZXRhQ2hh
cnNldFBhcnNlcjo6ZW5jb2RpbmdGcm9tTWV0YUF0dHJpYnV0ZXMoYXR0cmlidXRlcykuaXNWYWxp
ZCgpOwogfQogCiBzdGF0aWMgYm9vbCBzaG91bGRJZ25vcmVFbGVtZW50KGNvbnN0IEVsZW1lbnQm
IGVsZW1lbnQpCkBAIC05NSwxMCArOTQsOSBAQCBzdGF0aWMgY29uc3QgUXVhbGlmaWVkTmFtZSYg
ZnJhbWVPd25lclVSTEF0dHJpYnV0ZU5hbWUoY29uc3QgSFRNTEZyYW1lT3duZXJFbGVtZQogICAg
IHJldHVybiBpczxIVE1MT2JqZWN0RWxlbWVudD4oZnJhbWVPd25lcikgPyBIVE1MTmFtZXM6OmRh
dGFBdHRyIDogSFRNTE5hbWVzOjpzcmNBdHRyOwogfQogCi1jbGFzcyBTZXJpYWxpemVyTWFya3Vw
QWNjdW11bGF0b3IgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TWFya3VwQWNjdW11bGF0b3Igewor
Y2xhc3MgUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvciBmaW5hbCA6
IHB1YmxpYyBXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRvciB7CiBwdWJsaWM6CiAgICAgU2VyaWFs
aXplck1hcmt1cEFjY3VtdWxhdG9yKFBhZ2VTZXJpYWxpemVyJiwgRG9jdW1lbnQmLCBWZWN0b3I8
Tm9kZSo+Kik7Ci0gICAgdmlydHVhbCB+U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yKCk7CiAK
IHByaXZhdGU6CiAgICAgUGFnZVNlcmlhbGl6ZXImIG1fc2VyaWFsaXplcjsKQEAgLTExMCw3ICsx
MDgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYXBwZW5kRW5kVGFnKGNvbnN0IEVsZW1lbnQmKSBv
dmVycmlkZTsKIH07CiAKLVNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6U2VyaWFsaXplck1h
cmt1cEFjY3VtdWxhdG9yKFBhZ2VTZXJpYWxpemVyJiBzZXJpYWxpemVyLCBEb2N1bWVudCYgZG9j
dW1lbnQsIFZlY3RvcjxOb2RlKj4qIG5vZGVzKQorUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJN
YXJrdXBBY2N1bXVsYXRvcjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yKFBhZ2VTZXJpYWxp
emVyJiBzZXJpYWxpemVyLCBEb2N1bWVudCYgZG9jdW1lbnQsIFZlY3RvcjxOb2RlKj4qIG5vZGVz
KQogICAgIDogTWFya3VwQWNjdW11bGF0b3Iobm9kZXMsIFJlc29sdmVBbGxVUkxzKQogICAgICwg
bV9zZXJpYWxpemVyKHNlcmlhbGl6ZXIpCiAgICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQpAQCAt
MTIwLDE4ICsxMTgsMTQgQEAgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjpTZXJpYWxpemVy
TWFya3VwQWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXImIHNlcmlhbGkKICAgICAgICAgYXBwZW5k
U3RyaW5nKCI8P3htbCB2ZXJzaW9uPVwiIiArIG1fZG9jdW1lbnQueG1sVmVyc2lvbigpICsgIlwi
IGVuY29kaW5nPVwiIiArIG1fZG9jdW1lbnQuY2hhcnNldCgpICsgIlwiPz4iKTsKIH0KIAotU2Vy
aWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjp+U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yKCkK
LXsKLX0KLQotdm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQoU3Ry
aW5nQnVpbGRlciYgb3V0LCBjb25zdCBUZXh0JiB0ZXh0KQordm9pZCBQYWdlU2VyaWFsaXplcjo6
U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0KFN0cmluZ0J1aWxkZXImIG91
dCwgY29uc3QgVGV4dCYgdGV4dCkKIHsKICAgICBFbGVtZW50KiBwYXJlbnQgPSB0ZXh0LnBhcmVu
dEVsZW1lbnQoKTsKICAgICBpZiAocGFyZW50ICYmICFzaG91bGRJZ25vcmVFbGVtZW50KCpwYXJl
bnQpKQogICAgICAgICBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kVGV4dChvdXQsIHRleHQpOwog
fQogCi12b2lkIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRWxlbWVudChTdHJp
bmdCdWlsZGVyJiBvdXQsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIE5hbWVzcGFjZXMqIG5hbWVz
cGFjZXMpCit2b2lkIFBhZ2VTZXJpYWxpemVyOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6
OmFwcGVuZEVsZW1lbnQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBFbGVtZW50JiBlbGVtZW50
LCBOYW1lc3BhY2VzKiBuYW1lc3BhY2VzKQogewogICAgIGlmICghc2hvdWxkSWdub3JlRWxlbWVu
dChlbGVtZW50KSkKICAgICAgICAgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVsZW1lbnQob3V0
LCBlbGVtZW50LCBuYW1lc3BhY2VzKTsKQEAgLTE0NSw3ICsxMzksNyBAQCB2b2lkIFNlcmlhbGl6
ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRWxlbWVudChTdHJpbmdCdWlsZGVyJiBvdXQsIGNv
bnN0IEVsZW1lbgogICAgIC8vIEZJWE1FOiBGb3Igb2JqZWN0IChwbHVnaW5zKSB0YWdzIGFuZCB2
aWRlbyB0YWcgd2UgY291bGQgcmVwbGFjZSB0aGVtIGJ5IGFuIGltYWdlIG9mIHRoZWlyIGN1cnJl
bnQgY29udGVudHMuCiB9CiAKLXZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBl
bmRDdXN0b21BdHRyaWJ1dGVzKFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgRWxlbWVudCYgZWxl
bWVudCwgTmFtZXNwYWNlcyogbmFtZXNwYWNlcykKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OlNlcmlh
bGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kQ3VzdG9tQXR0cmlidXRlcyhTdHJpbmdCdWls
ZGVyJiBvdXQsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIE5hbWVzcGFjZXMqIG5hbWVzcGFjZXMp
CiB7CiAgICAgaWYgKCFpczxIVE1MRnJhbWVPd25lckVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAg
ICByZXR1cm47CkBAIC0xNjQsMzIgKzE1OCwyMCBAQCB2b2lkIFNlcmlhbGl6ZXJNYXJrdXBBY2N1
bXVsYXRvcjo6YXBwZW5kQ3VzdG9tQXR0cmlidXRlcyhTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbgog
ICAgIGFwcGVuZEF0dHJpYnV0ZShvdXQsIGVsZW1lbnQsIEF0dHJpYnV0ZShmcmFtZU93bmVyVVJM
QXR0cmlidXRlTmFtZShmcmFtZU93bmVyKSwgdXJsLnN0cmluZygpKSwgbmFtZXNwYWNlcyk7CiB9
CiAKLXZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoY29uc3Qg
RWxlbWVudCYgZWxlbWVudCkKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJrdXBB
Y2N1bXVsYXRvcjo6YXBwZW5kRW5kVGFnKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAg
aWYgKCFzaG91bGRJZ25vcmVFbGVtZW50KGVsZW1lbnQpKQogICAgICAgICBNYXJrdXBBY2N1bXVs
YXRvcjo6YXBwZW5kRW5kVGFnKGVsZW1lbnQpOwogfQogCi1QYWdlU2VyaWFsaXplcjo6UmVzb3Vy
Y2U6OlJlc291cmNlKCkKLXsKLX0KLQotUGFnZVNlcmlhbGl6ZXI6OlJlc291cmNlOjpSZXNvdXJj
ZShjb25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgUGFzc1JlZlB0cjxTaGFy
ZWRCdWZmZXI+IGRhdGEpCi0gICAgOiB1cmwodXJsKQotICAgICwgbWltZVR5cGUobWltZVR5cGUp
Ci0gICAgLCBkYXRhKGRhdGEpCi17Ci19Ci0KLVBhZ2VTZXJpYWxpemVyOjpQYWdlU2VyaWFsaXpl
cihWZWN0b3I8UGFnZVNlcmlhbGl6ZXI6OlJlc291cmNlPiogcmVzb3VyY2VzKQorUGFnZVNlcmlh
bGl6ZXI6OlBhZ2VTZXJpYWxpemVyKFZlY3RvcjxQYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U+JiBy
ZXNvdXJjZXMpCiAgICAgOiBtX3Jlc291cmNlcyhyZXNvdXJjZXMpCi0gICAgLCBtX2JsYW5rRnJh
bWVDb3VudGVyKDApCiB7CiB9CiAKLXZvaWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShQYWdl
KiBwYWdlKQordm9pZCBQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplKFBhZ2UmIHBhZ2UpCiB7Ci0g
ICAgc2VyaWFsaXplRnJhbWUoJnBhZ2UtPm1haW5GcmFtZSgpKTsKKyAgICBzZXJpYWxpemVGcmFt
ZSgmcGFnZS5tYWluRnJhbWUoKSk7CiB9CiAKIHZvaWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6
ZUZyYW1lKEZyYW1lKiBmcmFtZSkKQEAgLTIxOCw3ICsyMDAsNyBAQCB2b2lkIFBhZ2VTZXJpYWxp
emVyOjpzZXJpYWxpemVGcmFtZShGcmFtZSogZnJhbWUpCiAgICAgfQogICAgIFN0cmluZyB0ZXh0
ID0gYWNjdW11bGF0b3Iuc2VyaWFsaXplTm9kZXMoKmRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQo
KSwgSW5jbHVkZU5vZGUpOwogICAgIENTdHJpbmcgZnJhbWVIVE1MID0gdGV4dEVuY29kaW5nLmVu
Y29kZSh0ZXh0LCBFbnRpdGllc0ZvclVuZW5jb2RhYmxlcyk7Ci0gICAgbV9yZXNvdXJjZXMtPmFw
cGVuZChSZXNvdXJjZSh1cmwsIGRvY3VtZW50LT5zdWdnZXN0ZWRNSU1FVHlwZSgpLCBTaGFyZWRC
dWZmZXI6OmNyZWF0ZShmcmFtZUhUTUwuZGF0YSgpLCBmcmFtZUhUTUwubGVuZ3RoKCkpKSk7Cisg
ICAgbV9yZXNvdXJjZXMuYXBwZW5kKHsgdXJsLCBkb2N1bWVudC0+c3VnZ2VzdGVkTUlNRVR5cGUo
KSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUoZnJhbWVIVE1MLmRhdGEoKSwgZnJhbWVIVE1MLmxlbmd0
aCgpKSB9KTsKICAgICBtX3Jlc291cmNlVVJMcy5hZGQodXJsKTsKIAogICAgIGZvciAoYXV0byYg
bm9kZSA6IG5vZGVzKSB7CkBAIC0yODQsNyArMjY2LDcgQEAgdm9pZCBQYWdlU2VyaWFsaXplcjo6
c2VyaWFsaXplQ1NTU3R5bGVTaGVldChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0LCBjb25zdCBV
UkwKICAgICAgICAgQVNTRVJUKHRleHRFbmNvZGluZy5pc1ZhbGlkKCkpOwogICAgICAgICBTdHJp
bmcgdGV4dFN0cmluZyA9IGNzc1RleHQudG9TdHJpbmcoKTsKICAgICAgICAgQ1N0cmluZyB0ZXh0
ID0gdGV4dEVuY29kaW5nLmVuY29kZSh0ZXh0U3RyaW5nLCBFbnRpdGllc0ZvclVuZW5jb2RhYmxl
cyk7Ci0gICAgICAgIG1fcmVzb3VyY2VzLT5hcHBlbmQoUmVzb3VyY2UodXJsLCBTdHJpbmcoInRl
eHQvY3NzIiksIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHRleHQuZGF0YSgpLCB0ZXh0Lmxlbmd0aCgp
KSkpOworICAgICAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIEFTQ0lJTGl0ZXJhbCB7ICJ0
ZXh0L2NzcyIgfSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUodGV4dC5kYXRhKCksIHRleHQubGVuZ3Ro
KCkpIH0pOwogICAgICAgICBtX3Jlc291cmNlVVJMcy5hZGQodXJsKTsKICAgICB9CiB9CkBAIC0z
MDYsOCArMjg4LDcgQEAgdm9pZCBQYWdlU2VyaWFsaXplcjo6YWRkSW1hZ2VUb1Jlc291cmNlcyhD
YWNoZWRJbWFnZSogaW1hZ2UsIFJlbmRlckVsZW1lbnQqIGltYWcKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIFN0cmluZyBtaW1lVHlwZSA9IGltYWdlLT5yZXNwb25zZSgpLm1pbWVUeXBl
KCk7Ci0gICAgbV9yZXNvdXJjZXMtPmFwcGVuZChSZXNvdXJjZSh1cmwsIG1pbWVUeXBlLCBkYXRh
KSk7CisgICAgbV9yZXNvdXJjZXMuYXBwZW5kKHsgdXJsLCBpbWFnZS0+cmVzcG9uc2UoKS5taW1l
VHlwZSgpLCBXVEZNb3ZlKGRhdGEpIH0pOwogICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwpOwog
fQogCkBAIC0zMzQsMjAgKzMxNSwxOCBAQCB2b2lkIFBhZ2VTZXJpYWxpemVyOjpyZXRyaWV2ZVJl
c291cmNlc0ZvclByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBzdHlsZQogICAgICAg
ICBpZiAoIWltYWdlKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgVVJMIHVybCA9
IGRvY3VtZW50LT5jb21wbGV0ZVVSTChpbWFnZS0+dXJsKCkpOwotICAgICAgICBhZGRJbWFnZVRv
UmVzb3VyY2VzKGltYWdlLCBudWxscHRyLCB1cmwpOworICAgICAgICBhZGRJbWFnZVRvUmVzb3Vy
Y2VzKGltYWdlLCBudWxscHRyLCBkb2N1bWVudC0+Y29tcGxldGVVUkwoaW1hZ2UtPnVybCgpKSk7
CiAgICAgfQogfQogCiBVUkwgUGFnZVNlcmlhbGl6ZXI6OnVybEZvckJsYW5rRnJhbWUoRnJhbWUq
IGZyYW1lKQogewotICAgIEhhc2hNYXA8RnJhbWUqLCBVUkw+OjppdGVyYXRvciBpdGVyID0gbV9i
bGFua0ZyYW1lVVJMcy5maW5kKGZyYW1lKTsKKyAgICBhdXRvIGl0ZXIgPSBtX2JsYW5rRnJhbWVV
UkxzLmZpbmQoZnJhbWUpOwogICAgIGlmIChpdGVyICE9IG1fYmxhbmtGcmFtZVVSTHMuZW5kKCkp
CiAgICAgICAgIHJldHVybiBpdGVyLT52YWx1ZTsKICAgICBTdHJpbmcgdXJsID0gInd5Y2l3eWc6
Ly9mcmFtZS8iICsgU3RyaW5nOjpudW1iZXIobV9ibGFua0ZyYW1lQ291bnRlcisrKTsKICAgICBV
UkwgZmFrZVVSTChQYXJzZWRVUkxTdHJpbmcsIHVybCk7CiAgICAgbV9ibGFua0ZyYW1lVVJMcy5h
ZGQoZnJhbWUsIGZha2VVUkwpOwotCiAgICAgcmV0dXJuIGZha2VVUkw7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZVNlcmlhbGl6ZXIuaAppbmRleCBhMWI0N2I5ZGJiYzAzNGIxNzI5MzU0YzA4MjFh
YWJkZDU3NjJlZWFjLi5kNTc0M2JjNGY2MTQ2MjkyMjhjM2ZmZjBhNGJlZGNiODc1MGMxMWY5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5oCkBAIC0zMCw3ICszMCw2IEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSAiVVJMSGFzaC5oIgogI2lu
Y2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC01Niwy
MCArNTUsMjAgQEAgcHVibGljOgogICAgICAgICBVUkwgdXJsOwogICAgICAgICBTdHJpbmcgbWlt
ZVR5cGU7CiAgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGE7Ci0gICAgICAgIFJlc291
cmNlKCk7Ci0gICAgICAgIFJlc291cmNlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgbWltZVR5
cGUsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhKTsKICAgICB9OwogCi0gICAgZXhwbGlj
aXQgUGFnZVNlcmlhbGl6ZXIoVmVjdG9yPFJlc291cmNlPiopOworICAgIGV4cGxpY2l0IFBhZ2VT
ZXJpYWxpemVyKFZlY3RvcjxSZXNvdXJjZT4mKTsKIAogICAgIC8vIEluaXRpYXRlcyB0aGUgc2Vy
aWFsaXphdGlvbiBvZiB0aGUgZnJhbWUncyBwYWdlLiBBbGwgc2VyaWFsaXplZCBjb250ZW50IGFu
ZCByZXRyaWV2ZWQKICAgICAvLyByZXNvdXJjZXMgYXJlIGFkZGVkIHRvIHRoZSBWZWN0b3IgcGFz
c2VkIHRvIHRoZSBjb25zdHJ1Y3Rvci4gVGhlIGZpcnN0IHJlc291cmNlIGluIHRoYXQKICAgICAv
LyB2ZWN0b3IgaXMgdGhlIHRvcCBmcmFtZSBzZXJpYWxpemVkIGNvbnRlbnQuCi0gICAgdm9pZCBz
ZXJpYWxpemUoUGFnZSopOworICAgIHZvaWQgc2VyaWFsaXplKFBhZ2UmKTsKKworcHJpdmF0ZToK
KyAgICBjbGFzcyBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I7CiAKICAgICBVUkwgdXJsRm9y
QmxhbmtGcmFtZShGcmFtZSopOwogCi1wcml2YXRlOgogICAgIHZvaWQgc2VyaWFsaXplRnJhbWUo
RnJhbWUqKTsKIAogICAgIC8vIFNlcmlhbGl6ZXMgdGhlIHN0eWxlc2hlZXQgYmFjayB0byB0ZXh0
IGFuZCBhZGRzIGl0IHRvIHRoZSByZXNvdXJjZXMgaWYgVVJMIGlzIG5vdC1lbXB0eS4KQEAgLTgw
LDEwICs3OSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmV0cmlldmVSZXNvdXJjZXNGb3JQcm9w
ZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVydGllcyosIERvY3VtZW50Kik7CiAgICAgdm9pZCByZXRy
aWV2ZVJlc291cmNlc0ZvclJ1bGUoU3R5bGVSdWxlJiwgRG9jdW1lbnQqKTsKIAotICAgIFZlY3Rv
cjxSZXNvdXJjZT4qIG1fcmVzb3VyY2VzOworICAgIFZlY3RvcjxSZXNvdXJjZT4mIG1fcmVzb3Vy
Y2VzOwogICAgIExpc3RIYXNoU2V0PFVSTD4gbV9yZXNvdXJjZVVSTHM7CiAgICAgSGFzaE1hcDxG
cmFtZSosIFVSTD4gbV9ibGFua0ZyYW1lVVJMczsKLSAgICB1bnNpZ25lZCBtX2JsYW5rRnJhbWVD
b3VudGVyOworICAgIHVuc2lnbmVkIG1fYmxhbmtGcmFtZUNvdW50ZXIgeyAwIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlRW50cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VFbnRyeS5o
CmluZGV4IGIzYTg0YTNhOWRjYTgyYmJmYThiMzQwNzRiZWNjNzNiNDg3ZWRhYWUuLmY4ZDZjYTdm
ZWM4MGMwZmZlNmE5ODZlYmZlNDgxZWIzNDUwYmNiYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGVyZm9ybWFuY2VFbnRyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVy
Zm9ybWFuY2VFbnRyeS5oCkBAIC0zNCw3ICszNCw2IEBACiAjaWYgRU5BQkxFKFdFQl9USU1JTkcp
CiAKICNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC01NCw3ICs1Myw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgaXNNYXJrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgaXNNZWFzdXJlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAg
IHN0YXRpYyBib29sIHN0YXJ0VGltZUNvbXBhcmVMZXNzVGhhbihQYXNzUmVmUHRyPFBlcmZvcm1h
bmNlRW50cnk+IGEsIFBhc3NSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4gYikKKyAgICBzdGF0aWMg
Ym9vbCBzdGFydFRpbWVDb21wYXJlTGVzc1RoYW4oY29uc3QgUmVmUHRyPFBlcmZvcm1hbmNlRW50
cnk+JiBhLCBjb25zdCBSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4mIGIpCiAgICAgewogICAgICAg
ICByZXR1cm4gYS0+c3RhcnRUaW1lKCkgPCBiLT5zdGFydFRpbWUoKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAKaW5kZXggZDk1MzE4MDU0
NzBmOGVlY2E0Mjg3NjNiN2NhMWVhYzUzZTE3M2I2Zi4uOWE2YzdhY2UzOTQwZWUzOGQ2NTdlYmJh
MzVhMTgzNjM4ODBhNDlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZVVzZXJUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VV
c2VyVGltaW5nLmNwcApAQCAtODcsMTQgKzg3LDE0IEBAIFVzZXJUaW1pbmc6OlVzZXJUaW1pbmco
UGVyZm9ybWFuY2UmIHBlcmZvcm1hbmNlKQogewogfQogCi1zdGF0aWMgdm9pZCBpbnNlcnRQZXJm
b3JtYW5jZUVudHJ5KFBlcmZvcm1hbmNlRW50cnlNYXAmIHBlcmZvcm1hbmNlRW50cnlNYXAsIFBh
c3NSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4gcGVyZm9ybWFuY2VFbnRyeSkKK3N0YXRpYyB2b2lk
IGluc2VydFBlcmZvcm1hbmNlRW50cnkoUGVyZm9ybWFuY2VFbnRyeU1hcCYgcGVyZm9ybWFuY2VF
bnRyeU1hcCwgUmVmPFBlcmZvcm1hbmNlRW50cnk+JiYgcGVyZm9ybWFuY2VFbnRyeSkKIHsKLSAg
ICBSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4gZW50cnkgPSBwZXJmb3JtYW5jZUVudHJ5OwotICAg
IFBlcmZvcm1hbmNlRW50cnlNYXA6Oml0ZXJhdG9yIGl0ID0gcGVyZm9ybWFuY2VFbnRyeU1hcC5m
aW5kKGVudHJ5LT5uYW1lKCkpOworICAgIFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBlbnRyeSA9
IFdURk1vdmUocGVyZm9ybWFuY2VFbnRyeSk7CisgICAgYXV0byBpdCA9IHBlcmZvcm1hbmNlRW50
cnlNYXAuZmluZChlbnRyeS0+bmFtZSgpKTsKICAgICBpZiAoaXQgIT0gcGVyZm9ybWFuY2VFbnRy
eU1hcC5lbmQoKSkKLSAgICAgICAgaXQtPnZhbHVlLmFwcGVuZChlbnRyeSk7CisgICAgICAgIGl0
LT52YWx1ZS5hcHBlbmQoV1RGTW92ZShlbnRyeSkpOwogICAgIGVsc2UKLSAgICAgICAgcGVyZm9y
bWFuY2VFbnRyeU1hcC5zZXQoZW50cnktPm5hbWUoKSwgVmVjdG9yPFJlZlB0cjxQZXJmb3JtYW5j
ZUVudHJ5Pj57IGVudHJ5IH0pOworICAgICAgICBwZXJmb3JtYW5jZUVudHJ5TWFwLnNldChlbnRy
eS0+bmFtZSgpLCBWZWN0b3I8UmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+PiB7IFdURk1vdmUoZW50
cnkpIH0pOwogfQogCiBzdGF0aWMgdm9pZCBjbGVhclBlZm9ybWFuY2VFbnRyaWVzKFBlcmZvcm1h
bmNlRW50cnlNYXAmIHBlcmZvcm1hbmNlRW50cnlNYXAsIGNvbnN0IFN0cmluZyYgbmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZU92ZXJsYXkuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlT3ZlcmxheS5jcHAKaW5kZXggYWU4MTEy
Y2EyNjM5OTE2ZjQxNDVlOTMyM2RlMGQyZjI4MTk1YWNiMC4uZTc0M2Q4ODBlMjBjYjFmZGY4NTcw
MTYwZDBiMWFkNTgzOTI5YjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNv
dXJjZVVzYWdlT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVz
YWdlT3ZlcmxheS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgUmVzb3VyY2VVc2FnZU92ZXJsYXk6On5S
ZXNvdXJjZVVzYWdlT3ZlcmxheSgpCiAKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIGhhY2sgc28g
d2UgZG9uJ3QgdHJ5IHRvIHVuaW5zdGFsbCB0aGUgUGFnZU92ZXJsYXkgZHVyaW5nIFBhZ2UgZGVz
dHJ1Y3Rpb24uCiAgICAgaWYgKG1fcGFnZS5tYWluRnJhbWUoKS5wYWdlKCkpCi0gICAgICAgIG1f
cGFnZS5tYWluRnJhbWUoKS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3Zl
cmxheShtX292ZXJsYXkuZ2V0KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsK
KyAgICAgICAgbV9wYWdlLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5z
dGFsbFBhZ2VPdmVybGF5KCptX292ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RG
YWRlKTsKIH0KIAogdm9pZCBSZXNvdXJjZVVzYWdlT3ZlcmxheTo6aW5pdGlhbGl6ZSgpCkBAIC03
Miw3ICs3Miw3IEBAIHZvaWQgUmVzb3VyY2VVc2FnZU92ZXJsYXk6OmluaXRpYWxpemUoKQogCiAg
ICAgbV9vdmVybGF5LT5zZXRGcmFtZShpbml0aWFsUmVjdCk7CiAgICAgbV9vdmVybGF5LT5zZXRT
aG91bGRJZ25vcmVNb3VzZUV2ZW50c091dHNpZGVCb3VuZHMoZmFsc2UpOwotICAgIG1fcGFnZS5t
YWluRnJhbWUoKS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkobV9v
dmVybGF5LmdldCgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgbV9w
YWdlLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3Zlcmxh
eSgqbV9vdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAgcGxh
dGZvcm1Jbml0aWFsaXplKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkJhc2UuaAppbmRleCA1YWRlMDAyMmViYzBkODRkMjc4NjhmZTI0YjU0ZDY2YTYx
ZTc3ZTU4Li4yZGQwYzMwOWUwNTgyZjM1Y2Y5MzZmNTBhY2Q5YzFhYzM0MTYzNTVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCkBAIC0zMSw3ICsz
MSw2IEBACiAjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1l
cy5oIgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCi0jaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
QW5pbWF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25Db250cm9sbGVyLmNwcAppbmRleCA1ODg5NmRiMmYxZTlmZDQ1Mzc4YjM2N2MwMGVj
NzE3YmIxM2U0OTljLi40YzQwYzkyM2EyM2UyMzM4ODQwODQyZTg4M2NlMDVkYjFlN2JkZDFhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250
cm9sbGVyLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIGJvb2wgQW5pbWF0aW9uQ29udHJvbGxlclBy
aXZhdGU6OmNsZWFyKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQogICAgIEVsZW1lbnQqIGVsZW1l
bnQgPSByZW5kZXJlci5lbGVtZW50KCk7CiAKICAgICBtX2V2ZW50c1RvRGlzcGF0Y2gucmVtb3Zl
QWxsTWF0Y2hpbmcoW2VsZW1lbnRdIChjb25zdCBFdmVudFRvRGlzcGF0Y2gmIGluZm8pIHsKLSAg
ICAgICAgcmV0dXJuIGluZm8uZWxlbWVudCA9PSBlbGVtZW50OworICAgICAgICByZXR1cm4gaW5m
by5lbGVtZW50LnB0cigpID09IGVsZW1lbnQ7CiAgICAgfSk7CiAKICAgICBtX2VsZW1lbnRDaGFu
Z2VzVG9EaXNwYXRjaC5yZW1vdmVBbGxNYXRjaGluZyhbZWxlbWVudF0oYXV0byYgY3VycmVudEVs
ZW1lbnQpIHsKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlOjpmaXJlRXZlbnRzQW5kVXBkYXRlU3R5bGUoKQogICAgIC8vIGZpcmUgYWxsIHRoZSBldmVu
dHMKICAgICBWZWN0b3I8RXZlbnRUb0Rpc3BhdGNoPiBldmVudHNUb0Rpc3BhdGNoID0gV1RGTW92
ZShtX2V2ZW50c1RvRGlzcGF0Y2gpOwogICAgIGZvciAoYXV0byYgZXZlbnQgOiBldmVudHNUb0Rp
c3BhdGNoKSB7Ci0gICAgICAgIEVsZW1lbnQmIGVsZW1lbnQgPSAqZXZlbnQuZWxlbWVudDsKKyAg
ICAgICAgRWxlbWVudCYgZWxlbWVudCA9IGV2ZW50LmVsZW1lbnQ7CiAgICAgICAgIGlmIChldmVu
dC5ldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCkKICAgICAgICAg
ICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0ZShldmVudC5l
dmVudFR5cGUsIGV2ZW50Lm5hbWUsIGV2ZW50LmVsYXBzZWRUaW1lLCBQc2V1ZG9FbGVtZW50Ojpw
c2V1ZG9FbGVtZW50TmFtZUZvckV2ZW50cyhlbGVtZW50LnBzZXVkb0lkKCkpKSk7CiAgICAgICAg
IGVsc2UKQEAgLTIyNSwyMSArMjI1LDE1IEBAIHZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZh
dGU6OnN0YXJ0VXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIoKQogICAgICAgICBtX3VwZGF0
ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAotdm9pZCBBbmlt
YXRpb25Db250cm9sbGVyUHJpdmF0ZTo6YWRkRXZlbnRUb0Rpc3BhdGNoKFBhc3NSZWZQdHI8RWxl
bWVudD4gZWxlbWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKQordm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJp
dmF0ZTo6YWRkRXZlbnRUb0Rpc3BhdGNoKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEF0b21pY1N0
cmluZyYgZXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSkK
IHsKLSAgICBtX2V2ZW50c1RvRGlzcGF0Y2guZ3JvdyhtX2V2ZW50c1RvRGlzcGF0Y2guc2l6ZSgp
KzEpOwotICAgIEV2ZW50VG9EaXNwYXRjaCYgZXZlbnQgPSBtX2V2ZW50c1RvRGlzcGF0Y2hbbV9l
dmVudHNUb0Rpc3BhdGNoLnNpemUoKS0xXTsKLSAgICBldmVudC5lbGVtZW50ID0gZWxlbWVudDsK
LSAgICBldmVudC5ldmVudFR5cGUgPSBldmVudFR5cGU7Ci0gICAgZXZlbnQubmFtZSA9IG5hbWU7
Ci0gICAgZXZlbnQuZWxhcHNlZFRpbWUgPSBlbGFwc2VkVGltZTsKLSAgICAKKyAgICBtX2V2ZW50
c1RvRGlzcGF0Y2guYXBwZW5kKHsgZWxlbWVudCwgZXZlbnRUeXBlLCBuYW1lLCBlbGFwc2VkVGlt
ZSB9KTsKICAgICBzdGFydFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCk7CiB9CiAKLXZv
aWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNo
KFJlZjxFbGVtZW50PiYmIGVsZW1lbnQpCit2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRl
OjphZGRFbGVtZW50Q2hhbmdlVG9EaXNwYXRjaChFbGVtZW50JiBlbGVtZW50KQogewotICAgIG1f
ZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmFwcGVuZChXVEZNb3ZlKGVsZW1lbnQpKTsKKyAgICBt
X2VsZW1lbnRDaGFuZ2VzVG9EaXNwYXRjaC5hcHBlbmQoZWxlbWVudCk7CiAgICAgQVNTRVJUKG1f
ZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmxhc3QoKS0+ZG9jdW1lbnQoKS5wYWdlQ2FjaGVTdGF0
ZSgpID09IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CiAgICAgc3RhcnRVcGRhdGVTdHlsZUlm
TmVlZGVkRGlzcGF0Y2hlcigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKaW5kZXggZmI5Y2M4MmI4
MTUxN2QwYmEzMjczZjM4MGYyMGJjZDhhOTg2MWY1OC4uNDlhZDNmOWM5NTQyNTVjMzFkMGZiZmZh
NGM2MjY4YjA2NzkyMTdlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCkBAIC0yOSwzMyArMjksMjEg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQW5pbWF0aW9uQmFzZS5oIgotI2luY2x1ZGUg
IkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
Ci0jaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQW5pbWF0aW9uQmFz
ZTsKIGNsYXNzIENvbXBvc2l0ZUFuaW1hdGlvbjsKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgRWxl
bWVudDsKIGNsYXNzIEZyYW1lOwotY2xhc3MgUmVuZGVyRWxlbWVudDsKLWNsYXNzIFJlbmRlclN0
eWxlOwogCi1lbnVtIFNldENoYW5nZWQgewotICAgIERvTm90Q2FsbFNldENoYW5nZWQgPSAwLAot
ICAgIENhbGxTZXRDaGFuZ2VkID0gMQotfTsKK2VudW0gU2V0Q2hhbmdlZCB7IERvTm90Q2FsbFNl
dENoYW5nZWQsIENhbGxTZXRDaGFuZ2VkIH07CiAKIGNsYXNzIEFuaW1hdGlvbkNvbnRyb2xsZXJQ
cml2YXRlIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBbmltYXRpb25Db250cm9sbGVyUHJp
dmF0ZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlKEZy
YW1lJik7CiAgICAgfkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlKCk7CkBAIC02OSw4ICs1Nyw4
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXJGaXJl
ZCgpOwogICAgIHZvaWQgc3RhcnRVcGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hlcigpOwotICAg
IHZvaWQgYWRkRXZlbnRUb0Rpc3BhdGNoKFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCwgY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgZG91YmxlIGVs
YXBzZWRUaW1lKTsKLSAgICB2b2lkIGFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKFJlZjxFbGVt
ZW50PiYmKTsKKyAgICB2b2lkIGFkZEV2ZW50VG9EaXNwYXRjaChFbGVtZW50JiwgY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgZG91YmxlIGVsYXBzZWRU
aW1lKTsKKyAgICB2b2lkIGFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKEVsZW1lbnQmKTsKIAog
ICAgIGJvb2wgaGFzQW5pbWF0aW9ucygpIGNvbnN0IHsgcmV0dXJuICFtX2NvbXBvc2l0ZUFuaW1h
dGlvbnMuaXNFbXB0eSgpOyB9CiAKQEAgLTEzNCwyMSArMTIyLDE5IEBAIHByaXZhdGU6CiAgICAg
VGltZXIgbV9hbmltYXRpb25UaW1lcjsKICAgICBUaW1lciBtX3VwZGF0ZVN0eWxlSWZOZWVkZWRE
aXNwYXRjaGVyOwogICAgIEZyYW1lJiBtX2ZyYW1lOwotICAgIAotICAgIGNsYXNzIEV2ZW50VG9E
aXNwYXRjaCB7Ci0gICAgcHVibGljOgotICAgICAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudDsK
KworICAgIHN0cnVjdCBFdmVudFRvRGlzcGF0Y2ggeworICAgICAgICBSZWY8RWxlbWVudD4gZWxl
bWVudDsKICAgICAgICAgQXRvbWljU3RyaW5nIGV2ZW50VHlwZTsKICAgICAgICAgU3RyaW5nIG5h
bWU7CiAgICAgICAgIGRvdWJsZSBlbGFwc2VkVGltZTsKICAgICB9OwotICAgIAogICAgIFZlY3Rv
cjxFdmVudFRvRGlzcGF0Y2g+IG1fZXZlbnRzVG9EaXNwYXRjaDsKICAgICBWZWN0b3I8UmVmPEVs
ZW1lbnQ+PiBtX2VsZW1lbnRDaGFuZ2VzVG9EaXNwYXRjaDsKICAgICAKICAgICBkb3VibGUgbV9i
ZWdpbkFuaW1hdGlvblVwZGF0ZVRpbWU7CiAKLSAgICB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPEFu
aW1hdGlvbkJhc2U+PiBBbmltYXRpb25zU2V0OworICAgIHVzaW5nIEFuaW1hdGlvbnNTZXQgPSBI
YXNoU2V0PFJlZlB0cjxBbmltYXRpb25CYXNlPj47CiAgICAgQW5pbWF0aW9uc1NldCBtX2FuaW1h
dGlvbnNXYWl0aW5nRm9yU3R5bGU7CiAgICAgQW5pbWF0aW9uc1NldCBtX2FuaW1hdGlvbnNXYWl0
aW5nRm9yU3RhcnRUaW1lUmVzcG9uc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAppbmRleCA5ZjZiOTE3YzZlYzFj
NmZlYmJhNjk0MGExNjcwNWJkYmQ1YWM3NGNmLi44YzU0MDNhNGMxOTYzN2FhNjIxZGU2YTQwNzE2
MDcxYWU3ODM1MDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9D
U1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgc3RhdGljIGlu
bGluZSBUcmFuc2Zvcm1PcGVyYXRpb25zIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBh
bmltYXRpb24sIGNvbnMKICAgICByZXR1cm4gdG8uYmxlbmRCeVVzaW5nTWF0cml4SW50ZXJwb2xh
dGlvbihmcm9tLCBwcm9ncmVzcywgaXM8UmVuZGVyQm94PigqYW5pbWF0aW9uLT5yZW5kZXJlcigp
KSA/IGRvd25jYXN0PFJlbmRlckJveD4oKmFuaW1hdGlvbi0+cmVuZGVyZXIoKSkuYm9yZGVyQm94
UmVjdCgpLnNpemUoKSA6IExheW91dFNpemUoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFzc1Jl
ZlB0cjxDbGlwUGF0aE9wZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBD
bGlwUGF0aE9wZXJhdGlvbiogZnJvbSwgQ2xpcFBhdGhPcGVyYXRpb24qIHRvLCBkb3VibGUgcHJv
Z3Jlc3MpCitzdGF0aWMgaW5saW5lIFJlZlB0cjxDbGlwUGF0aE9wZXJhdGlvbj4gYmxlbmRGdW5j
KGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBDbGlwUGF0aE9wZXJhdGlvbiogZnJvbSwgQ2xpcFBhdGhP
cGVyYXRpb24qIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgaWYgKCFmcm9tIHx8ICF0bykK
ICAgICAgICAgcmV0dXJuIHRvOwpAQCAtMTQzLDcgKzE0Myw3IEBAIHN0YXRpYyBpbmxpbmUgUGFz
c1JlZlB0cjxDbGlwUGF0aE9wZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2Uq
LCBDbGlwCiAgICAgcmV0dXJuIFNoYXBlQ2xpcFBhdGhPcGVyYXRpb246OmNyZWF0ZSh0b1NoYXBl
LmJsZW5kKGZyb21TaGFwZSwgcHJvZ3Jlc3MpKTsKIH0KIAotc3RhdGljIGlubGluZSBQYXNzUmVm
UHRyPFNoYXBlVmFsdWU+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgU2hhcGVWYWx1
ZSogZnJvbSwgU2hhcGVWYWx1ZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUg
UmVmUHRyPFNoYXBlVmFsdWU+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgU2hhcGVW
YWx1ZSogZnJvbSwgU2hhcGVWYWx1ZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAo
IWZyb20gfHwgIXRvKQogICAgICAgICByZXR1cm4gdG87CkBAIC0xNjMsNyArMTYzLDcgQEAgc3Rh
dGljIGlubGluZSBQYXNzUmVmUHRyPFNoYXBlVmFsdWU+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRp
b25CYXNlKiwgU2hhcGVWYWx1ZSoKICAgICByZXR1cm4gU2hhcGVWYWx1ZTo6Y3JlYXRlKHRvU2hh
cGUuYmxlbmQoZnJvbVNoYXBlLCBwcm9ncmVzcyksIHRvLT5jc3NCb3goKSk7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgUGFzc1JlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGJsZW5kRnVuYyhjb25zdCBBbmlt
YXRpb25CYXNlKiBhbmltYXRpb24sIEZpbHRlck9wZXJhdGlvbiogZnJvbU9wLCBGaWx0ZXJPcGVy
YXRpb24qIHRvT3AsIGRvdWJsZSBwcm9ncmVzcywgYm9vbCBibGVuZFRvUGFzc3Rocm91Z2ggPSBm
YWxzZSkKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gYmxlbmRGdW5jKGNv
bnN0IEFuaW1hdGlvbkJhc2UqIGFuaW1hdGlvbiwgRmlsdGVyT3BlcmF0aW9uKiBmcm9tT3AsIEZp
bHRlck9wZXJhdGlvbiogdG9PcCwgZG91YmxlIHByb2dyZXNzLCBib29sIGJsZW5kVG9QYXNzdGhy
b3VnaCA9IGZhbHNlKQogewogICAgIEFTU0VSVCh0b09wKTsKICAgICBpZiAodG9PcC0+YmxlbmRp
bmdOZWVkc1JlbmRlcmVyU2l6ZSgpKSB7CkBAIC0yMTgsNyArMjE4LDcgQEAgc3RhdGljIGlubGlu
ZSBGaWx0ZXJPcGVyYXRpb25zIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBj
b25zdCBGaWx0ZXIKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgaW5saW5lIFBhc3NS
ZWZQdHI8U3R5bGVJbWFnZT4gYmxlbmRGaWx0ZXIoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwg
Q2FjaGVkSW1hZ2UqIGltYWdlLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmcm9tLCBjb25zdCBG
aWx0ZXJPcGVyYXRpb25zJiB0bywgZG91YmxlIHByb2dyZXNzKQorc3RhdGljIGlubGluZSBSZWZQ
dHI8U3R5bGVJbWFnZT4gYmxlbmRGaWx0ZXIoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgQ2Fj
aGVkSW1hZ2UqIGltYWdlLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmcm9tLCBjb25zdCBGaWx0
ZXJPcGVyYXRpb25zJiB0bywgZG91YmxlIHByb2dyZXNzKQogewogICAgIEFTU0VSVChpbWFnZSk7
CiAgICAgRmlsdGVyT3BlcmF0aW9ucyBmaWx0ZXJSZXN1bHQgPSBibGVuZEZpbHRlck9wZXJhdGlv
bnMoYW5pbSwgZnJvbSwgdG8sIHByb2dyZXNzKTsKQEAgLTI3OCw3ICsyNzgsNyBAQCBzdGF0aWMg
aW5saW5lIFZlY3RvcjxTVkdMZW5ndGhWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJh
c2UqLCBjb25zdCBWZWN0bwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
UGFzc1JlZlB0cjxTdHlsZUltYWdlPiBjcm9zc2ZhZGVCbGVuZChjb25zdCBBbmltYXRpb25CYXNl
KiwgU3R5bGVDYWNoZWRJbWFnZSogZnJvbVN0eWxlSW1hZ2UsIFN0eWxlQ2FjaGVkSW1hZ2UqIHRv
U3R5bGVJbWFnZSwgZG91YmxlIHByb2dyZXNzKQorc3RhdGljIGlubGluZSBSZWZQdHI8U3R5bGVJ
bWFnZT4gY3Jvc3NmYWRlQmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSosIFN0eWxlQ2FjaGVkSW1h
Z2UqIGZyb21TdHlsZUltYWdlLCBTdHlsZUNhY2hlZEltYWdlKiB0b1N0eWxlSW1hZ2UsIGRvdWJs
ZSBwcm9ncmVzcykKIHsKICAgICAvLyBJZiBwcm9ncmVzcyBpcyBhdCBvbmUgb2YgdGhlIGV4dHJl
bWVzLCB3ZSB3YW50IGdldENvbXB1dGVkU3R5bGUgdG8gc2hvdyB0aGUgaW1hZ2UsCiAgICAgLy8g
bm90IGEgY29tcGxldGVkIGNyb3NzLWZhZGUsIHNvIHdlIGhhbmQgYmFjayBvbmUgb2YgdGhlIGV4
aXN0aW5nIGltYWdlcy4KQEAgLTI5NSw3ICsyOTUsNyBAQCBzdGF0aWMgaW5saW5lIFBhc3NSZWZQ
dHI8U3R5bGVJbWFnZT4gY3Jvc3NmYWRlQmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSosIFN0eWxl
QwogICAgIHJldHVybiBTdHlsZUdlbmVyYXRlZEltYWdlOjpjcmVhdGUoV1RGTW92ZShjcm9zc2Zh
ZGVWYWx1ZSkpOwogfQogCi1zdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gYmxl
bmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFN0eWxlSW1hZ2UqIGZyb20sIFN0eWxl
SW1hZ2UqIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5lIFJlZlB0cjxTdHlsZUlt
YWdlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgU3R5bGVJbWFnZSogZnJv
bSwgU3R5bGVJbWFnZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAoIWZyb20gfHwg
IXRvKQogICAgICAgICByZXR1cm4gdG87CkBAIC0zNjQsMTEgKzM2NCwxMiBAQCBzdGF0aWMgaW5s
aW5lIE5pbmVQaWVjZUltYWdlIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBj
b25zdCBOaW5lUGllYwogICAgIGlmIChmcm9tLmltYWdlKCktPmltYWdlU2l6ZShhbmltLT5yZW5k
ZXJlcigpLCAxLjApICE9IHRvLmltYWdlKCktPmltYWdlU2l6ZShhbmltLT5yZW5kZXJlcigpLCAx
LjApKQogICAgICAgICByZXR1cm4gdG87CiAKLSAgICBhdXRvIG5ld0NvbnRlbnRJbWFnZSA9IGJs
ZW5kRnVuYyhhbmltLCBmcm9tLmltYWdlKCksIHRvLmltYWdlKCksIHByb2dyZXNzKTsKLSAgICBy
ZXR1cm4gTmluZVBpZWNlSW1hZ2UobmV3Q29udGVudEltYWdlLCBmcm9tLmltYWdlU2xpY2VzKCks
IGZyb20uZmlsbCgpLCBmcm9tLmJvcmRlclNsaWNlcygpLCBmcm9tLm91dHNldCgpLCBmcm9tLmhv
cml6b250YWxSdWxlKCksIGZyb20udmVydGljYWxSdWxlKCkpOworICAgIHJldHVybiBOaW5lUGll
Y2VJbWFnZShibGVuZEZ1bmMoYW5pbSwgZnJvbS5pbWFnZSgpLCB0by5pbWFnZSgpLCBwcm9ncmVz
cyksCisgICAgICAgIGZyb20uaW1hZ2VTbGljZXMoKSwgZnJvbS5maWxsKCksIGZyb20uYm9yZGVy
U2xpY2VzKCksIGZyb20ub3V0c2V0KCksIGZyb20uaG9yaXpvbnRhbFJ1bGUoKSwgZnJvbS52ZXJ0
aWNhbFJ1bGUoKSk7CiB9CiAKICNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZPTlRTKQorCiBzdGF0aWMg
aW5saW5lIEZvbnRWYXJpYXRpb25TZXR0aW5ncyBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFz
ZSogYW5pbSwgY29uc3QgRm9udFZhcmlhdGlvblNldHRpbmdzJiBmcm9tLCBjb25zdCBGb250VmFy
aWF0aW9uU2V0dGluZ3MmIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgaWYgKGZyb20uc2l6
ZSgpICE9IHRvLnNpemUoKSkKQEAgLTM4NSw2ICszODYsNyBAQCBzdGF0aWMgaW5saW5lIEZvbnRW
YXJpYXRpb25TZXR0aW5ncyBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgY29u
c3QgRgogICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQorCiAjZW5kaWYKIAogY2xhc3MgQW5p
bWF0aW9uUHJvcGVydHlXcmFwcGVyQmFzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAppbmRleCA1Yjc0ZTc2NzgyOGM0NWE1
NjI5ZTE5ZmUyNjA1MzgzYzJhNWY2ZThhLi42Njk5MjcwN2IxZWVhYjE4NDNmZTAzOWFhYzYyZGUz
MGM0NDMwMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21w
b3NpdGVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Nv
bXBvc2l0ZUFuaW1hdGlvbi5jcHAKQEAgLTEyMSw4ICsxMjEsOCBAQCB2b2lkIENvbXBvc2l0ZUFu
aW1hdGlvbjo6dXBkYXRlVHJhbnNpdGlvbnMoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNvbnN0
IFJlbmRlcgogICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgcnVubmluZyBhbmltYXRp
b24gZm9yIHRoaXMgcHJvcGVydHksIHRoZSB0cmFuc2l0aW9uIGlzIG92ZXJyaWRkZW4KICAgICAg
ICAgICAgICAgICAvLyBhbmQgd2UgaGF2ZSB0byB1c2UgdGhlIHVuYW5pbWF0ZWRTdHlsZSBmcm9t
IHRoZSBhbmltYXRpb24uIFdlIGRvIHRoZSB0ZXN0CiAgICAgICAgICAgICAgICAgLy8gYWdhaW5z
dCB0aGUgdW5hbmltYXRlZCBzdHlsZSBoZXJlLCBidXQgd2UgIm92ZXJyaWRlIiB0aGUgdHJhbnNp
dGlvbiBsYXRlci4KLSAgICAgICAgICAgICAgICBSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IGtl
eWZyYW1lQW5pbSA9IGdldEFuaW1hdGlvbkZvclByb3BlcnR5KHByb3ApOwotICAgICAgICAgICAg
ICAgIGF1dG8qIGZyb21TdHlsZSA9IGtleWZyYW1lQW5pbSA/IGtleWZyYW1lQW5pbS0+dW5hbmlt
YXRlZFN0eWxlKCkgOiBjdXJyZW50U3R5bGU7CisgICAgICAgICAgICAgICAgYXV0byoga2V5ZnJh
bWVBbmltYXRpb24gPSBhbmltYXRpb25Gb3JQcm9wZXJ0eShwcm9wKTsKKyAgICAgICAgICAgICAg
ICBhdXRvKiBmcm9tU3R5bGUgPSBrZXlmcmFtZUFuaW1hdGlvbiA/IGtleWZyYW1lQW5pbWF0aW9u
LT51bmFuaW1hdGVkU3R5bGUoKSA6IGN1cnJlbnRTdHlsZTsKIAogICAgICAgICAgICAgICAgIC8v
IFNlZSBpZiB0aGVyZSBpcyBhIGN1cnJlbnQgdHJhbnNpdGlvbiBmb3IgdGhpcyBwcm9wCiAgICAg
ICAgICAgICAgICAgSW1wbGljaXRBbmltYXRpb24qIGltcGxBbmltID0gbV90cmFuc2l0aW9ucy5n
ZXQocHJvcCk7CkBAIC0xNzIsNyArMTcyLDcgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVw
ZGF0ZVRyYW5zaXRpb25zKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBjb25zdCBSZW5kZXIKICAg
ICAgICAgICAgICAgICAgICAgTE9HKEFuaW1hdGlvbnMsICJDcmVhdGVkIEltcGxpY2l0QW5pbWF0
aW9uICVwIG9uIHJlbmRlcmVyICVwIGZvciBwcm9wZXJ0eSAlcyBkdXJhdGlvbiAlLjJmIGRlbGF5
ICUuMmYiLCBpbXBsaWNpdEFuaW1hdGlvbi5wdHIoKSwgcmVuZGVyZXIsIGdldFByb3BlcnR5TmFt
ZShwcm9wKSwgYW5pbWF0aW9uLmR1cmF0aW9uKCksIGFuaW1hdGlvbi5kZWxheSgpKTsKICAgICAg
ICAgICAgICAgICAgICAgbV90cmFuc2l0aW9ucy5zZXQocHJvcCwgV1RGTW92ZShpbXBsaWNpdEFu
aW1hdGlvbikpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKKwogICAgICAg
ICAgICAgICAgIC8vIFdlIG9ubHkgbmVlZCBvbmUgcGFzcyBmb3IgdGhlIHNpbmdsZSBwcm9wIGNh
c2UKICAgICAgICAgICAgICAgICBpZiAoIWFsbCkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7
CkBAIC0zOTksMjEgKzM5OSwyMSBAQCBkb3VibGUgQ29tcG9zaXRlQW5pbWF0aW9uOjp0aW1lVG9O
ZXh0U2VydmljZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1pblQ7CiB9CiAKLVBhc3NSZWZQdHI8S2V5
ZnJhbWVBbmltYXRpb24+IENvbXBvc2l0ZUFuaW1hdGlvbjo6Z2V0QW5pbWF0aW9uRm9yUHJvcGVy
dHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkgY29uc3QKK0tleWZyYW1lQW5pbWF0aW9uKiBDb21w
b3NpdGVBbmltYXRpb246OmFuaW1hdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVy
dHkpIGNvbnN0CiB7Ci0gICAgUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiByZXR2YWw7Ci0gICAg
CisgICAgS2V5ZnJhbWVBbmltYXRpb24qIHJlc3VsdCA9IG51bGxwdHI7CisKICAgICAvLyBXZSB3
YW50IHRvIHNlbmQgYmFjayB0aGUgbGFzdCBhbmltYXRpb24gd2l0aCB0aGUgcHJvcGVydHkgaWYg
dGhlcmUgYXJlIG11bHRpcGxlcy4KICAgICAvLyBTbyB3ZSBuZWVkIHRvIGl0ZXJhdGUgdGhyb3Vn
aCBhbGwgYW5pbWF0aW9ucwogICAgIGlmICghbV9rZXlmcmFtZUFuaW1hdGlvbnMuaXNFbXB0eSgp
KSB7CiAgICAgICAgIG1fa2V5ZnJhbWVBbmltYXRpb25zLmNoZWNrQ29uc2lzdGVuY3koKTsKICAg
ICAgICAgZm9yIChhdXRvJiBhbmltYXRpb24gOiBtX2tleWZyYW1lQW5pbWF0aW9ucy52YWx1ZXMo
KSkgewogICAgICAgICAgICAgaWYgKGFuaW1hdGlvbi0+aGFzQW5pbWF0aW9uRm9yUHJvcGVydHko
cHJvcGVydHkpKQotICAgICAgICAgICAgICAgIHJldHZhbCA9IGFuaW1hdGlvbjsKKyAgICAgICAg
ICAgICAgICByZXN1bHQgPSBhbmltYXRpb24uZ2V0KCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAg
Ci0gICAgcmV0dXJuIHJldHZhbDsKKworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIGJvb2wgQ29t
cG9zaXRlQW5pbWF0aW9uOjpjb21wdXRlRXh0ZW50T2ZUcmFuc2Zvcm1BbmltYXRpb24oTGF5b3V0
UmVjdCYgYm91bmRzKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9Db21wb3NpdGVBbmltYXRpb24uaAppbmRleCAzMzdmZTZmMTY2ZTcxYzFjZTYxOWFlMjM4ODkz
MTE4N2ZmODY0N2NjLi40MGMzYTQ5MWYyYTU0OGViM2UyYjMzMTZjNGYwZmZlMDUzMjEzOTAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRp
b24uaApAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQW5pbWF0aW5nUHJv
cGVydHkoQ1NTUHJvcGVydHlJRCwgYm9vbCBhY2NlbGVyYXRlZE9ubHksIEFuaW1hdGlvbkJhc2U6
OlJ1bm5pbmdTdGF0ZSkgY29uc3Q7CiAKLSAgICBQYXNzUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9u
PiBnZXRBbmltYXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKKyAgICBLZXlm
cmFtZUFuaW1hdGlvbiogYW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCkgY29uc3Q7
CiAKICAgICB2b2lkIG92ZXJyaWRlSW1wbGljaXRBbmltYXRpb25zKENTU1Byb3BlcnR5SUQpOwog
ICAgIHZvaWQgcmVzdW1lT3ZlcnJpZGRlbkltcGxpY2l0QW5pbWF0aW9ucyhDU1NQcm9wZXJ0eUlE
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5p
bWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0
aW9uLmNwcAppbmRleCA3MTZiZWE4MjQ5MDQ5MmM0M2JjZTE3NzQ5ZDFmZmI1MjEyN2NjY2ZmLi5m
ZGVkNjIzYTZhZGRhOTI0YWI3NjM2M2UyNDY5Y2JjYTMyY2JmYjczIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCkBAIC0xNjMs
MTAgKzE2Myw5IEBAIHZvaWQgSW1wbGljaXRBbmltYXRpb246Om9uQW5pbWF0aW9uRW5kKGRvdWJs
ZSBlbGFwc2VkVGltZSkKICAgICAvLyBydW5uaW5nLiBCdXQgbm93IHRoYXQgdGhlIHRyYW5zaXRp
b24gaGFzIGNvbXBsZXRlZCwgd2UgbmVlZCB0byB1cGRhdGUgdGhpcyBzdHlsZSB3aXRoIGl0cyBu
ZXcKICAgICAvLyBkZXN0aW5hdGlvbi4gSWYgd2UgZGlkbid0LCB0aGUgbmV4dCB0aW1lIHRocm91
Z2ggd2Ugd291bGQgdGhpbmsgYSB0cmFuc2l0aW9uIGhhZCBzdGFydGVkCiAgICAgLy8gKGNvbXBh
cmluZyB0aGUgb2xkIHVuYW5pbWF0ZWQgc3R5bGUgd2l0aCB0aGUgbmV3IGZpbmFsIHN0eWxlIG9m
IHRoZSB0cmFuc2l0aW9uKS4KLSAgICBSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IGtleWZyYW1l
QW5pbSA9IG1fY29tcG9zaXRlQW5pbWF0aW9uLT5nZXRBbmltYXRpb25Gb3JQcm9wZXJ0eShtX2Fu
aW1hdGluZ1Byb3BlcnR5KTsKLSAgICBpZiAoa2V5ZnJhbWVBbmltKQotICAgICAgICBrZXlmcmFt
ZUFuaW0tPnNldFVuYW5pbWF0ZWRTdHlsZShSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoKm1fdG9TdHls
ZSkpOwotICAgIAorICAgIGlmIChhdXRvKiBhbmltYXRpb24gPSBtX2NvbXBvc2l0ZUFuaW1hdGlv
bi0+YW5pbWF0aW9uRm9yUHJvcGVydHkobV9hbmltYXRpbmdQcm9wZXJ0eSkpCisgICAgICAgIGFu
aW1hdGlvbi0+c2V0VW5hbmltYXRlZFN0eWxlKFJlbmRlclN0eWxlOjpjbG9uZVB0cigqbV90b1N0
eWxlKSk7CisKICAgICBzZW5kVHJhbnNpdGlvbkV2ZW50KGV2ZW50TmFtZXMoKS50cmFuc2l0aW9u
ZW5kRXZlbnQsIGVsYXBzZWRUaW1lKTsKICAgICBlbmRBbmltYXRpb24oKTsKIH0KQEAgLTE4Nyw3
ICsxODYsNyBAQCBib29sIEltcGxpY2l0QW5pbWF0aW9uOjpzZW5kVHJhbnNpdGlvbkV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBkb3VibAogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgICAgICAgICAgLy8gU2NoZWR1bGUgZXZlbnQgaGFuZGxpbmcKLSAgICAg
ICAgICAgIG1fY29tcG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Db250cm9sbGVyKCkuYWRkRXZl
bnRUb0Rpc3BhdGNoKGVsZW1lbnQsIGV2ZW50VHlwZSwgcHJvcGVydHlOYW1lLCBlbGFwc2VkVGlt
ZSk7CisgICAgICAgICAgICBtX2NvbXBvc2l0ZUFuaW1hdGlvbi0+YW5pbWF0aW9uQ29udHJvbGxl
cigpLmFkZEV2ZW50VG9EaXNwYXRjaCgqZWxlbWVudCwgZXZlbnRUeXBlLCBwcm9wZXJ0eU5hbWUs
IGVsYXBzZWRUaW1lKTsKIAogICAgICAgICAgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgKHVu
YW5pbWF0ZWQpIHN0eWxlCiAgICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMo
KS50cmFuc2l0aW9uZW5kRXZlbnQgJiYgZWxlbWVudC0+cmVuZGVyZXIoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAppbmRleCA0
NzFiYWNmNmYxYjlmMDVjZTFkMzRkYTg3NWZlOGM2N2M5NGZmNTdkLi5kYzI5ZDIyMzkxYjAzNGJk
Y2VlNTY2ZjNiMmE1YzMxN2EwZGQwMDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCkBAIC0zMjcsNyArMzI3LDcgQEAgYm9v
bCBLZXlmcmFtZUFuaW1hdGlvbjo6c2VuZEFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBkb3VibGUKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAg
ICAvLyBTY2hlZHVsZSBldmVudCBoYW5kbGluZwotICAgICAgICBtX2NvbXBvc2l0ZUFuaW1hdGlv
bi0+YW5pbWF0aW9uQ29udHJvbGxlcigpLmFkZEV2ZW50VG9EaXNwYXRjaChlbGVtZW50LCBldmVu
dFR5cGUsIG1fa2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSwgZWxhcHNlZFRpbWUpOworICAgICAg
ICBtX2NvbXBvc2l0ZUFuaW1hdGlvbi0+YW5pbWF0aW9uQ29udHJvbGxlcigpLmFkZEV2ZW50VG9E
aXNwYXRjaCgqZWxlbWVudCwgZXZlbnRUeXBlLCBtX2tleWZyYW1lcy5hbmltYXRpb25OYW1lKCks
IGVsYXBzZWRUaW1lKTsKIAogICAgICAgICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5hbCAodW5hbmlt
YXRlZCkgc3R5bGUKICAgICAgICAgaWYgKChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLndlYmtp
dEFuaW1hdGlvbkVuZEV2ZW50IHx8IGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuYW5pbWF0aW9u
ZW5kRXZlbnQpICYmIGVsZW1lbnQtPnJlbmRlcmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9l
ZmwvRXZlbnRIYW5kbGVyRWZsLmNwcAppbmRleCAyMTA2ZDFlMTlhNDg2YTM4NWZmZTg3ZjkwMGZh
YWZlOTA4YmNhYzEyLi5mNGM2YmFlZjAxMTI3ODMzMjY4ZjdjZmUyNGM4NGQ4YWQxZDk5MjUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKQEAgLTk2LDEw
ICs5NiwxMiBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lkZ2V0RGlkSGFuZGxlV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBXaQogfQogCiAjaWYgRU5BQkxFKERSQUdf
U1VQUE9SVCkKLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURy
YWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKKworUmVmPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5k
bGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIERh
dGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKIH0KKwogI2VuZGlmCiAKIGJvb2wg
RXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0
aEhpdFRlc3RSZXN1bHRzJiBtZXYsIEZyYW1lKiBzdWJmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3BwCmluZGV4IDQzZjA1Mzc1ZTViZGU2MTRmOTA4YTdj
MTU0ZDgyZDdiMDhlY2UyNGIuLjE1YTE2MzkwNzU4MzMwZmIyZDQ3MWQ1ZDY4ZWI1ZjI4NDVhNzRm
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcApAQCAt
OTYsMTAgKzk2LDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp3aWRnZXREaWRIYW5kbGVXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIFdpCiB9CiAKICNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQotUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3Jl
YXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAorCitSZWY8RGF0YVRyYW5zZmVyPiBFdmVu
dEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKIHsKICAgICByZXR1
cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwogfQorCiAjZW5kaWYKIAog
Ym9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZl
bnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IGU1OTE5NzhjMDBjNDBjNjllNzcz
YTk3NjIxZDc2NzMzYmQ3NTFiMDIuLjY4ZDlmZmQ4ZTNjYzBhZTc0MDhiODBiMGJlMmM1NTkxZWNi
MDRjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAg
LTcyMyw3ICs3MjMsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZXZlbnRBY3RpdmF0ZWRWaWV3KGNv
bnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQpIGNvbnN0CiAKICNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQogCi1QYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVE
cmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CitSZWY8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRs
ZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKIHsKICAgICAvLyBNdXN0IGJl
IGRvbmUgYmVmb3JlIG9uZHJhZ3N0YXJ0IGFkZHMgdHlwZXMgYW5kIGRhdGEgdG8gdGhlIHBib2Fy
ZCwKICAgICAvLyBhbHNvIGRvbmUgZm9yIHNlY3VyaXR5LCBhcyBpdCBlcmFzZXMgZGF0YSBmcm9t
IHRoZSBsYXN0IGRyYWcuCkBAIC03MzQsNyArNzM0LDcgQEAgUGFzc1JlZlB0cjxEYXRhVHJhbnNm
ZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAogCiAj
ZW5kaWYKIAotYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2Fy
ZEV2ZW50KiBldmVudCkgY29uc3QKK2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29u
dHJvbHMoS2V5Ym9hcmRFdmVudCYgZXZlbnQpIGNvbnN0CiB7CiAgICAgUGFnZSogcGFnZSA9IG1f
ZnJhbWUucGFnZSgpOwogICAgIGlmICghcGFnZSkKQEAgLTk3MSwxMCArOTcxLDEwIEBAIHZvaWQg
RXZlbnRIYW5kbGVyOjpwbGF0Zm9ybVByZXBhcmVGb3JXaGVlbEV2ZW50cyhjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIHdoZWVsCiAgICAgICAgICAgICAgICAgbV9mcmFtZS5tYWluRnJhbWUoKS5w
dXNoTmV3TGF0Y2hpbmdTdGF0ZSgpOwogICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUgPSBt
X2ZyYW1lLm1haW5GcmFtZSgpLmxhdGNoaW5nU3RhdGUoKTsKICAgICAgICAgICAgICAgICBsYXRj
aGluZ1N0YXRlLT5zZXRTdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQoZmFsc2UpOwotICAgICAg
ICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldFdoZWVsRXZlbnRFbGVtZW50KHdoZWVsRXZlbnRU
YXJnZXQpOworICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldFdoZWVsRXZlbnRFbGVt
ZW50KHdoZWVsRXZlbnRUYXJnZXQuZ2V0KCkpOwogICAgICAgICAgICAgICAgIGxhdGNoaW5nU3Rh
dGUtPnNldEZyYW1lKCZtX2ZyYW1lKTsKICAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2hhdCBw
cmV2ZW50cyB1cyBmcm9tIGRlbGV0aW5nIHRoaXMgc2Nyb2xsYWJsZSBjb250YWluZXIgd2hpbGUg
c3RpbGwgaG9sZGluZyBhIHBvaW50ZXIgdG8gaXQ/Ci0gICAgICAgICAgICAgICAgbGF0Y2hpbmdT
dGF0ZS0+c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihzY3JvbGxhYmxlQ29udGFpbmVyKTsKKyAgICAg
ICAgICAgICAgICBsYXRjaGluZ1N0YXRlLT5zZXRTY3JvbGxhYmxlQ29udGFpbmVyKHNjcm9sbGFi
bGVDb250YWluZXIuZ2V0KCkpOwogICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldFdp
ZGdldElzTGF0Y2hlZChyZXN1bHQuaXNPdmVyV2lkZ2V0KCkpOwogICAgICAgICAgICAgICAgIGlz
T3ZlcldpZGdldCA9IGxhdGNoaW5nU3RhdGUtPndpZGdldElzTGF0Y2hlZCgpOwogICAgICAgICAg
ICAgICAgIG1fZnJhbWUubWFpbkZyYW1lKCkud2hlZWxFdmVudERlbHRhRmlsdGVyKCktPmJlZ2lu
RmlsdGVyaW5nRGVsdGFzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9T
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyLmgKaW5kZXggNTVlNGQ2NTk1ZWViNjA1M2Y2YTZhOTQ1MGI5
ZGFlYjgxMjhjNTI3MC4uNjViMWNlZWM2YjExMjdiMDU5NjMyMWVjNDg4MjQ1N2RmNDFiMDRmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiUGFnZU92ZXJsYXkuaCIKICNpbmNsdWRl
ICJSYW5nZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KIAogdHlwZWRlZiBzdHJ1Y3QgX19EREhpZ2hsaWdodCAqRERIaWdobGlnaHRSZWY7CiAKQEAg
LTM5LDYgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgTGF5b3V0UmVj
dDsKIGNsYXNzIE1haW5GcmFtZTsKKwogc3RydWN0IEdhcFJlY3RzOwogCiBjbGFzcyBTZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyIDogcHJpdmF0ZSBQYWdlT3ZlcmxheTo6Q2xpZW50IHsKQEAgLTU0
LDE0ICs1NCwxNCBAQCBwcml2YXRlOgogICAgIGNsYXNzIEhpZ2hsaWdodCA6IHB1YmxpYyBSZWZD
b3VudGVkPEhpZ2hsaWdodD4sIHByaXZhdGUgR3JhcGhpY3NMYXllckNsaWVudCB7CiAgICAgICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKEhpZ2hsaWdodCk7CiAgICAgcHVibGljOgotICAgICAgICBz
dGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlRm9yU2VsZWN0aW9uKFNlcnZpY2VzT3ZlcmxheUNv
bnRyb2xsZXImLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+LCBQYXNzUmVmUHRyPFJhbmdlPik7
Ci0gICAgICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIo
U2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFBh
c3NSZWZQdHI8UmFuZ2U+KTsKKyAgICAgICAgc3RhdGljIFJlZjxIaWdobGlnaHQ+IGNyZWF0ZUZv
clNlbGVjdGlvbihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiwgUmV0YWluUHRyPERESGlnaGxp
Z2h0UmVmPiwgUmVmPFJhbmdlPiYmKTsKKyAgICAgICAgc3RhdGljIFJlZjxIaWdobGlnaHQ+IGNy
ZWF0ZUZvclRlbGVwaG9uZU51bWJlcihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiwgUmV0YWlu
UHRyPERESGlnaGxpZ2h0UmVmPiwgUmVmPFJhbmdlPiYmKTsKICAgICAgICAgfkhpZ2hsaWdodCgp
OwogCiAgICAgICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCiAgICAgICAgIERESGlnaGxpZ2h0UmVm
IGRkSGlnaGxpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9kZEhpZ2hsaWdodC5nZXQoKTsgfQotICAg
ICAgICBSYW5nZSogcmFuZ2UoKSBjb25zdCB7IHJldHVybiBtX3JhbmdlLmdldCgpOyB9CisgICAg
ICAgIFJhbmdlJiByYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2UuZ2V0KCk7IH0KICAgICAg
ICAgR3JhcGhpY3NMYXllciogbGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX2dyYXBoaWNzTGF5ZXIu
Z2V0KCk7IH0KIAogICAgICAgICBlbnVtIHsKQEAgLTc3LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAg
ICAgICAgdm9pZCBzZXREREhpZ2hsaWdodChEREhpZ2hsaWdodFJlZik7CiAKICAgICBwcml2YXRl
OgotICAgICAgICBleHBsaWNpdCBIaWdobGlnaHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYs
IFR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFBhc3NSZWZQdHI8UmFuZ2U+KTsKKyAg
ICAgICAgSGlnaGxpZ2h0KFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImLCBUeXBlLCBSZXRhaW5Q
dHI8RERIaWdobGlnaHRSZWY+LCBSZWY8UmFuZ2U+JiYpOwogCiAgICAgICAgIC8vIEdyYXBoaWNz
TGF5ZXJDbGllbnQKICAgICAgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBo
aWNzTGF5ZXIqKSBvdmVycmlkZTsKQEAgLTg3LDcgKzg3LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
dm9pZCBkaWRGaW5pc2hGYWRlT3V0QW5pbWF0aW9uKCk7CiAKICAgICAgICAgUmV0YWluUHRyPERE
SGlnaGxpZ2h0UmVmPiBtX2RkSGlnaGxpZ2h0OwotICAgICAgICBSZWZQdHI8UmFuZ2U+IG1fcmFu
Z2U7CisgICAgICAgIFJlZjxSYW5nZT4gbV9yYW5nZTsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRy
PEdyYXBoaWNzTGF5ZXI+IG1fZ3JhcGhpY3NMYXllcjsKICAgICAgICAgVHlwZSBtX3R5cGU7CiAg
ICAgICAgIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCmlu
ZGV4IDlhODE1YjVhZTU1OTY0OTliZGY2MTZlZDQyMTFiOWE1MjM4MTVlNjIuLjRiMDNlMjJhZTQ2
YmU4OWFlMjMxMDJmYjQ5ZmY0OTIxZDQwNDY4YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQpAQCAtNTUsMjMgKzU1LDIy
IEBAIGNvbnN0IGZsb2F0IGhpZ2hsaWdodEZhZGVBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGln
aGxpZ2h0PiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OmNyZWF0ZUZvclNl
bGVjdGlvbihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiBjb250cm9sbGVyLCBSZXRhaW5QdHI8
RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZSkKK1Jl
ZjxTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ+IFNlcnZpY2VzT3ZlcmxheUNv
bnRyb2xsZXI6OkhpZ2hsaWdodDo6Y3JlYXRlRm9yU2VsZWN0aW9uKFNlcnZpY2VzT3ZlcmxheUNv
bnRyb2xsZXImIGNvbnRyb2xsZXIsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGln
aHQsIFJlZjxSYW5nZT4mJiByYW5nZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdo
bGlnaHQoY29udHJvbGxlciwgSGlnaGxpZ2h0OjpTZWxlY3Rpb25UeXBlLCBkZEhpZ2hsaWdodCwg
cmFuZ2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHQoY29udHJvbGxlciwg
SGlnaGxpZ2h0OjpTZWxlY3Rpb25UeXBlLCBkZEhpZ2hsaWdodCwgV1RGTW92ZShyYW5nZSkpKTsK
IH0KIAotUmVmPFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodD4gU2VydmljZXNP
dmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIoU2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlciYgY29udHJvbGxlciwgUmV0YWluUHRyPERESGlnaGxpZ2h0
UmVmPiBkZEhpZ2hsaWdodCwgUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2UpCitSZWY8U2VydmljZXNP
dmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0PiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpI
aWdobGlnaHQ6OmNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcihTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyJiBjb250cm9sbGVyLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBS
ZWY8UmFuZ2U+JiYgcmFuZ2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0
KGNvbnRyb2xsZXIsIEhpZ2hsaWdodDo6VGVsZXBob25lTnVtYmVyVHlwZSwgZGRIaWdobGlnaHQs
IHJhbmdlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0KGNvbnRyb2xsZXIs
IEhpZ2hsaWdodDo6VGVsZXBob25lTnVtYmVyVHlwZSwgZGRIaWdobGlnaHQsIFdURk1vdmUocmFu
Z2UpKSk7CiB9CiAKLVNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6SGlnaGxp
Z2h0KFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIsIFR5cGUgdHlwZSwgUmV0
YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpS
YW5nZT4gcmFuZ2UpCi0gICAgOiBtX3JhbmdlKHJhbmdlKQorU2VydmljZXNPdmVybGF5Q29udHJv
bGxlcjo6SGlnaGxpZ2h0OjpIaWdobGlnaHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYgY29u
dHJvbGxlciwgVHlwZSB0eXBlLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0
LCBSZWY8V2ViQ29yZTo6UmFuZ2U+JiYgcmFuZ2UpCisgICAgOiBtX3JhbmdlKFdURk1vdmUocmFu
Z2UpKQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX2NvbnRyb2xsZXIoJmNvbnRyb2xsZXIp
CiB7CiAgICAgQVNTRVJUKGRkSGlnaGxpZ2h0KTsKLSAgICBBU1NFUlQobV9yYW5nZSk7CiAKICAg
ICBQYWdlKiBwYWdlID0gY29udHJvbGxlci5tYWluRnJhbWUoKS5wYWdlKCk7CiAgICAgbV9ncmFw
aGljc0xheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKHBhZ2UgPyBwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS5ncmFwaGljc0xheWVyRmFjdG9yeSgpIDogbnVsbHB0ciwgKnRoaXMpOwpAQCAtNDA5
LDcgKzQwOCw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6YnVpbGRQb3RlbnRp
YWxIaWdobGlnaHRzSWZOZWVkZWQoKQogCiAgICAgaWYgKG1fcG90ZW50aWFsSGlnaGxpZ2h0cy5p
c0VtcHR5KCkpIHsKICAgICAgICAgaWYgKG1fc2VydmljZXNPdmVybGF5KQotICAgICAgICAgICAg
bV9tYWluRnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXko
bV9zZXJ2aWNlc092ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAg
ICAgICAgICAgIG1fbWFpbkZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBh
Z2VPdmVybGF5KCptX3NlcnZpY2VzT3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05v
dEZhZGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC01MjcsNyArNTI2LDcgQEAgdm9p
ZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFBob25lTnVtYmVySGlnaGxpZ2h0cygp
CiAgICAgICAgIENHUmVjdCBjZ1JlY3QgPSByZWN0OwogICAgICAgICBSZXRhaW5QdHI8RERIaWdo
bGlnaHRSZWY+IGRkSGlnaGxpZ2h0ID0gYWRvcHRDRihEREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0
c0luVmlzaWJsZVJlY3RXaXRoU3R5bGVBbmREaXJlY3Rpb24obnVsbHB0ciwgJmNnUmVjdCwgMSwg
bWFpbkZyYW1lVmlldy52aXNpYmxlQ29udGVudFJlY3QoKSwgRERIaWdobGlnaHRTdHlsZUJ1YmJs
ZVN0YW5kYXJkIHwgRERIaWdobGlnaHRTdHlsZVN0YW5kYXJkSWNvbkFycm93LCBZRVMsIE5TV3Jp
dGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5PLCBZRVMpKTsKIAotICAgICAgICBuZXdQb3RlbnRpYWxI
aWdobGlnaHRzLmFkZChIaWdobGlnaHQ6OmNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcigqdGhpcywg
ZGRIaWdobGlnaHQsIHJhbmdlKSk7CisgICAgICAgIG5ld1BvdGVudGlhbEhpZ2hsaWdodHMuYWRk
KEhpZ2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKCp0aGlzLCBkZEhpZ2hsaWdodCwg
cmFuZ2UucmVsZWFzZU5vbk51bGwoKSkpOwogICAgIH0KIAogICAgIHJlcGxhY2VIaWdobGlnaHRz
T2ZUeXBlUHJlc2VydmluZ0VxdWl2YWxlbnRIaWdobGlnaHRzKG5ld1BvdGVudGlhbEhpZ2hsaWdo
dHMsIEhpZ2hsaWdodDo6VGVsZXBob25lTnVtYmVyVHlwZSk7CkBAIC01NzAsNyArNTY5LDcgQEAg
dm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFNlbGVjdGlvbkhpZ2hsaWdodCgp
CiAgICAgICAgICAgICBDR1JlY3QgdmlzaWJsZVJlY3QgPSBtYWluRnJhbWVWaWV3LT52aXNpYmxl
Q29udGVudFJlY3QoKTsKICAgICAgICAgICAgIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRI
aWdobGlnaHQgPSBhZG9wdENGKERESGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVj
dFdpdGhTdHlsZUFuZERpcmVjdGlvbihudWxscHRyLCBjZ1JlY3RzLmJlZ2luKCksIGNnUmVjdHMu
c2l6ZSgpLCB2aXNpYmxlUmVjdCwgRERIaWdobGlnaHRTdHlsZUJ1YmJsZU5vbmUgfCBEREhpZ2hs
aWdodFN0eWxlU3RhbmRhcmRJY29uQXJyb3cgfCBEREhpZ2hsaWdodFN0eWxlQnV0dG9uU2hvd0Fs
d2F5cywgWUVTLCBOU1dyaXRpbmdEaXJlY3Rpb25OYXR1cmFsLCBOTywgWUVTKSk7CiAgICAgICAg
ICAgICAKLSAgICAgICAgICAgIG5ld1BvdGVudGlhbEhpZ2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6
Y3JlYXRlRm9yU2VsZWN0aW9uKCp0aGlzLCBkZEhpZ2hsaWdodCwgc2VsZWN0aW9uUmFuZ2UpKTsK
KyAgICAgICAgICAgIG5ld1BvdGVudGlhbEhpZ2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRl
Rm9yU2VsZWN0aW9uKCp0aGlzLCBkZEhpZ2hsaWdodCwgc2VsZWN0aW9uUmFuZ2UucmVsZWFzZU5v
bk51bGwoKSkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC02MzgsMTQgKzYzNyw5IEBAIGJvb2wg
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6aGlnaGxpZ2h0c0FyZUVxdWl2YWxlbnQoY29uc3Qg
SGlnaGxpZ2h0KiBhLCBjb25zCiB7CiAgICAgaWYgKGEgPT0gYikKICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0KICAgICBpZiAoIWEgfHwgIWIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlm
IChhLT50eXBlKCkgPT0gYi0+dHlwZSgpICYmIGFyZVJhbmdlc0VxdWFsKGEtPnJhbmdlKCksIGIt
PnJhbmdlKCkpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gYS0+dHlwZSgpID09IGItPnR5cGUoKSAmJiBhcmVSYW5nZXNFcXVhbCgmYS0+cmFu
Z2UoKSwgJmItPnJhbmdlKCkpOwogfQogCiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdo
bGlnaHQqIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmZpbmRUZWxlcGhvbmVOdW1iZXJIaWdo
bGlnaHRDb250YWluaW5nU2VsZWN0aW9uSGlnaGxpZ2h0KEhpZ2hsaWdodCYgc2VsZWN0aW9uSGln
aGxpZ2h0KQpAQCAtNjY5LDcgKzY2Myw3IEBAIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6Okhp
Z2hsaWdodCogU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6ZmluZFRlbGVwaG9uZU51CiAgICAg
ICAgIGlmIChoaWdobGlnaHQtPnR5cGUoKSAhPSBIaWdobGlnaHQ6OlRlbGVwaG9uZU51bWJlclR5
cGUpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBpZiAoaGlnaGxpZ2h0LT5yYW5n
ZSgpLT5jb250YWlucygqYWN0aXZlU2VsZWN0aW9uUmFuZ2UpKQorICAgICAgICBpZiAoaGlnaGxp
Z2h0LT5yYW5nZSgpLmNvbnRhaW5zKCphY3RpdmVTZWxlY3Rpb25SYW5nZSkpCiAgICAgICAgICAg
ICByZXR1cm4gaGlnaGxpZ2h0LmdldCgpOwogICAgIH0KIApAQCAtODMyLDcgKzgyNiw3IEBAIHZv
aWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6aGFuZGxlQ2xpY2soY29uc3QgSW50UG9pbnQm
IGNsaWNrUG9pbnQsIEhpZ2hsaWdoCiAKICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCku
aGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3Vz
ZWRPck1haW5GcmFtZSgpLnNlbGVjdGlvbigpLCBzZWxlY3RlZFRlbGVwaG9uZU51bWJlcnMsIHdp
bmRvd1BvaW50KTsKICAgICB9IGVsc2UgaWYgKGhpZ2hsaWdodC50eXBlKCkgPT0gSGlnaGxpZ2h0
OjpUZWxlcGhvbmVOdW1iZXJUeXBlKQotICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5o
YW5kbGVUZWxlcGhvbmVOdW1iZXJDbGljayhoaWdobGlnaHQucmFuZ2UoKS0+dGV4dCgpLCB3aW5k
b3dQb2ludCk7CisgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmhhbmRsZVRlbGVwaG9u
ZU51bWJlckNsaWNrKGhpZ2hsaWdodC5yYW5nZSgpLnRleHQoKSwgd2luZG93UG9pbnQpOwogfQog
CiB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmRpZENyZWF0ZUhpZ2hsaWdodChIaWdo
bGlnaHQqIGhpZ2hsaWdodCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNh
dG9yV2luZG93Lm1tCmluZGV4IGU0ZTIwZDIyNzY4Yzg4MmU5MDBiMTJiNDFmZTAyZWNkZmI0OGY2
MjguLmU1OTI5YmE2M2RlNTlmNDk4M2JkOGNmOWMzMDA2NGU2NzE3NzNjYmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQpAQCAtNjQsNyArNjQs
NyBAQCBAaW50ZXJmYWNlIFdlYlRleHRJbmRpY2F0b3JWaWV3IDogTlNWaWV3IHsKICAgICBCT09M
IF9mYWRpbmdPdXQ7CiB9CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3Qp
ZnJhbWUgdGV4dEluZGljYXRvcjooUGFzc1JlZlB0cjxUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNh
dG9yIG1hcmdpbjooTlNTaXplKW1hcmdpbiBvZmZzZXQ6KE5TUG9pbnQpb2Zmc2V0OworLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihUZXh0
SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIG1hcmdpbjooTlNTaXplKW1hcmdpbiBvZmZzZXQ6KE5T
UG9pbnQpb2Zmc2V0OwogCiAtICh2b2lkKXByZXNlbnQ7CiAtICh2b2lkKWhpZGVXaXRoQ29tcGxl
dGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXI7CkBAIC0xNDcsMTIg
KzE0NywxMiBAQCBzdGF0aWMgYm9vbCBpbmRpY2F0b3JXYW50c01hbnVhbEFuaW1hdGlvbihjb25z
dCBUZXh0SW5kaWNhdG9yJiBpbmRpY2F0b3IpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0tIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFBh
c3NSZWZQdHI8VGV4dEluZGljYXRvcj4pdGV4dEluZGljYXRvciBtYXJnaW46KE5TU2l6ZSltYXJn
aW4gb2Zmc2V0OihOU1BvaW50KW9mZnNldAorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6
KE5TUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9y
IG1hcmdpbjooTlNTaXplKW1hcmdpbiBvZmZzZXQ6KE5TUG9pbnQpb2Zmc2V0CiB7CiAgICAgaWYg
KCEoc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1lXSkpCiAgICAgICAgIHJldHVybiBu
aWw7CiAKLSAgICBfdGV4dEluZGljYXRvciA9IHRleHRJbmRpY2F0b3I7CisgICAgX3RleHRJbmRp
Y2F0b3IgPSAmdGV4dEluZGljYXRvcjsKICAgICBfbWFyZ2luID0gbWFyZ2luOwogCiAgICAgc2Vs
Zi53YW50c0xheWVyID0gWUVTOwpAQCAtNDY1LDcgKzQ2NSw4IEBAIHZvaWQgVGV4dEluZGljYXRv
cldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRv
ciwgQ0dSCiAgICAgW21fdGV4dEluZGljYXRvcldpbmRvdyBzZXRPcGFxdWU6Tk9dOwogICAgIFtt
X3RleHRJbmRpY2F0b3JXaW5kb3cgc2V0SWdub3Jlc01vdXNlRXZlbnRzOllFU107CiAKLSAgICBt
X3RleHRJbmRpY2F0b3JWaWV3ID0gYWRvcHROUyhbW1dlYlRleHRJbmRpY2F0b3JWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgW21fdGV4dEluZGljYXRvcldpbmRvdyBm
cmFtZV0uc2l6ZS53aWR0aCwgW21fdGV4dEluZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS5oZWln
aHQpIHRleHRJbmRpY2F0b3I6bV90ZXh0SW5kaWNhdG9yIG1hcmdpbjpOU01ha2VTaXplKGhvcml6
b250YWxNYXJnaW4sIHZlcnRpY2FsTWFyZ2luKSBvZmZzZXQ6ZnJhY3Rpb25hbFRleHRPZmZzZXRd
KTsKKyAgICBtX3RleHRJbmRpY2F0b3JWaWV3ID0gYWRvcHROUyhbW1dlYlRleHRJbmRpY2F0b3JW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgW21fdGV4dEluZGljYXRv
cldpbmRvdyBmcmFtZV0uc2l6ZS53aWR0aCwgW21fdGV4dEluZGljYXRvcldpbmRvdyBmcmFtZV0u
c2l6ZS5oZWlnaHQpCisgICAgICAgIHRleHRJbmRpY2F0b3I6Km1fdGV4dEluZGljYXRvciBtYXJn
aW46TlNNYWtlU2l6ZShob3Jpem9udGFsTWFyZ2luLCB2ZXJ0aWNhbE1hcmdpbikgb2Zmc2V0OmZy
YWN0aW9uYWxUZXh0T2Zmc2V0XSk7CiAgICAgW21fdGV4dEluZGljYXRvcldpbmRvdyBzZXRDb250
ZW50VmlldzptX3RleHRJbmRpY2F0b3JWaWV3LmdldCgpXTsKIAogICAgIFtbbV90YXJnZXRWaWV3
IHdpbmRvd10gYWRkQ2hpbGRXaW5kb3c6bV90ZXh0SW5kaWNhdG9yV2luZG93LmdldCgpIG9yZGVy
ZWQ6TlNXaW5kb3dBYm92ZV07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggYTQzNDE3ZGNlMWM0MDEz
MDg0NjkyMzgzYTEyYThjZjFhYjlkMjBiMy4uMDExYWUwZjIzM2MwOTI2ZmVmZTBmMGQ5MDdjNWYx
YTgwZjI3Mjc0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1
ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZS5oIgog
I2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY5LDExICs2OCwxMSBA
QCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9FWFBPUlQgQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvcihQYWdlKik7CiAKLSAgICB2b2lkIHNldFNjcm9sbGluZ1RyZWUoUGFzc1JlZlB0
cjxTY3JvbGxpbmdUcmVlPiBzY3JvbGxpbmdUcmVlKSB7IG1fc2Nyb2xsaW5nVHJlZSA9IHNjcm9s
bGluZ1RyZWU7IH0KKyAgICB2b2lkIHNldFNjcm9sbGluZ1RyZWUoUmVmPFNjcm9sbGluZ1RyZWU+
JiYgc2Nyb2xsaW5nVHJlZSkgeyBtX3Njcm9sbGluZ1RyZWUgPSBXVEZNb3ZlKHNjcm9sbGluZ1Ry
ZWUpOyB9CiAKICAgICBTY3JvbGxpbmdTdGF0ZVRyZWUqIHNjcm9sbGluZ1N0YXRlVHJlZSgpIHsg
cmV0dXJuIG1fc2Nyb2xsaW5nU3RhdGVUcmVlLmdldCgpOyB9CiAKLSAgICBQYXNzUmVmUHRyPFNj
cm9sbGluZ1RyZWU+IHJlbGVhc2VTY3JvbGxpbmdUcmVlKCkgeyByZXR1cm4gV1RGTW92ZShtX3Nj
cm9sbGluZ1RyZWUpOyB9CisgICAgUmVmUHRyPFNjcm9sbGluZ1RyZWU+IHJlbGVhc2VTY3JvbGxp
bmdUcmVlKCkgeyByZXR1cm4gV1RGTW92ZShtX3Njcm9sbGluZ1RyZWUpOyB9CiAKICAgICB2b2lk
IHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNv
bnN0IEZsb2F0UG9pbnQmLCBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+IGxheW91dFZpZXdwb3J0
T3JpZ2luLCBib29sIHByb2dyYW1tYXRpY1Njcm9sbCwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFj
dGlvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bExhdGNoaW5nU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
TGF0Y2hpbmdTdGF0ZS5jcHAKaW5kZXggZTM5ZDk5ZWZiYTMwNjhjY2IwNTViNDBkMWM3MjQzNzdk
NThlMzViZS4uMDFlNjUyOWIwMmM4YzFkNzBhZTc3MzI4M2ViN2Y3MzAwNTc0Zjk4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0
ZS5jcHAKQEAgLTMxLDkgKzMxLDYgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2Nyb2xsTGF0
Y2hpbmdTdGF0ZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0ZSgpCi0gICAgOiBtX2ZyYW1lKG51bGxwdHIp
Ci0gICAgLCBtX3dpZGdldElzTGF0Y2hlZChmYWxzZSkKLSAgICAsIG1fc3RhcnRlZEdlc3R1cmVB
dFNjcm9sbExpbWl0KGZhbHNlKQogewogfQogICAgIApAQCAtNTAsNyArNDcsNyBAQCB2b2lkIFNj
cm9sbExhdGNoaW5nU3RhdGU6OmNsZWFyKCkKICAgICBtX3ByZXZpb3VzV2hlZWxTY3JvbGxlZEVs
ZW1lbnQgPSBudWxscHRyOwogfQogCi12b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFdoZWVs
RXZlbnRFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKK3ZvaWQgU2Nyb2xsTGF0
Y2hpbmdTdGF0ZTo6c2V0V2hlZWxFdmVudEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKIHsKICAg
ICBtX3doZWVsRXZlbnRFbGVtZW50ID0gZWxlbWVudDsKIH0KQEAgLTYwLDE0ICs1NywxNCBAQCB2
b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFdpZGdldElzTGF0Y2hlZChib29sIGlzT3Zlcldp
ZGdldCkKICAgICBtX3dpZGdldElzTGF0Y2hlZCA9IGlzT3ZlcldpZGdldDsKIH0KIAotdm9pZCBT
Y3JvbGxMYXRjaGluZ1N0YXRlOjpzZXRQcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50KFJlZlB0
cjxFbGVtZW50PiYmIGVsZW1lbnQpCit2b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFByZXZp
b3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBtX3ByZXZp
b3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQgPSBlbGVtZW50OwogfQogCi12b2lkIFNjcm9sbExhdGNo
aW5nU3RhdGU6OnNldFNjcm9sbGFibGVDb250YWluZXIoUGFzc1JlZlB0cjxDb250YWluZXJOb2Rl
PiBub2RlKQordm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRlOjpzZXRTY3JvbGxhYmxlQ29udGFpbmVy
KENvbnRhaW5lck5vZGUqIGNvbnRhaW5lcikKIHsKLSAgICBtX3Njcm9sbGFibGVDb250YWluZXIg
PSBub2RlOworICAgIG1fc2Nyb2xsYWJsZUNvbnRhaW5lciA9IGNvbnRhaW5lcjsKIH0KIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdT
dGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0
ZS5oCmluZGV4IDRkYzBkZDMyMjkzYjM5MGVjOWI2NzFjZmUzYjE5ODU3Yzk3M2M0NzguLjExZGNi
ZDBkYjE1NWUwNDUwMDA1NjIxYTA1MTc0NzZkMmI5MjkzYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRlLmgKQEAgLTQxLDcgKzQx
LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXIoKTsKIAogICAgIEVsZW1lbnQqIHdoZWVsRXZl
bnRFbGVtZW50KCkgeyByZXR1cm4gbV93aGVlbEV2ZW50RWxlbWVudC5nZXQoKTsgfQotICAgIHZv
aWQgc2V0V2hlZWxFdmVudEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50Pik7CisgICAgdm9pZCBz
ZXRXaGVlbEV2ZW50RWxlbWVudChFbGVtZW50Kik7CiAgICAgRnJhbWUqIGZyYW1lKCkgeyByZXR1
cm4gbV9mcmFtZTsgfQogICAgIHZvaWQgc2V0RnJhbWUoRnJhbWUqIGZyYW1lKSB7IG1fZnJhbWUg
PSBmcmFtZTsgfQogCkBAIC00OSwxMCArNDksMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0V2lk
Z2V0SXNMYXRjaGVkKGJvb2wgaXNPdmVyV2lkZ2V0KTsKIAogICAgIEVsZW1lbnQqIHByZXZpb3Vz
V2hlZWxTY3JvbGxlZEVsZW1lbnQoKSB7IHJldHVybiBtX3ByZXZpb3VzV2hlZWxTY3JvbGxlZEVs
ZW1lbnQuZ2V0KCk7IH0KLSAgICB2b2lkIHNldFByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQo
UmVmUHRyPEVsZW1lbnQ+JiYpOworICAgIHZvaWQgc2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxl
bWVudChFbGVtZW50Kik7CiAgICAgCiAgICAgQ29udGFpbmVyTm9kZSogc2Nyb2xsYWJsZUNvbnRh
aW5lcigpIHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUNvbnRhaW5lci5nZXQoKTsgfQotICAgIHZvaWQg
c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+KTsKKyAgICB2
b2lkIHNldFNjcm9sbGFibGVDb250YWluZXIoQ29udGFpbmVyTm9kZSopOwogICAgIGJvb2wgc3Rh
cnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydGVkR2VzdHVy
ZUF0U2Nyb2xsTGltaXQ7IH0KICAgICB2b2lkIHNldFN0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1p
dChib29sIHN0YXJ0ZWRBdExpbWl0KSB7IG1fc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0ID0g
c3RhcnRlZEF0TGltaXQ7IH0KIApAQCAtNjEsMTAgKzYxLDEwIEBAIHByaXZhdGU6CiAgICAgUmVm
UHRyPEVsZW1lbnQ+IG1fcHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudDsKICAgICBSZWZQdHI8
Q29udGFpbmVyTm9kZT4gbV9zY3JvbGxhYmxlQ29udGFpbmVyOwogCi0gICAgRnJhbWUqIG1fZnJh
bWU7Ci0gICAgCi0gICAgYm9vbCBtX3dpZGdldElzTGF0Y2hlZDsKLSAgICBib29sIG1fc3RhcnRl
ZEdlc3R1cmVBdFNjcm9sbExpbWl0OworICAgIEZyYW1lKiBtX2ZyYW1lIHsgbnVsbHB0ciB9Owor
CisgICAgYm9vbCBtX3dpZGdldElzTGF0Y2hlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3N0YXJ0
ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdCB7IGZhbHNlIH07CiB9OwogICAgIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlTm9kZS5jcHAKaW5kZXggYzg0NTliMDVhMGQxNjdiNWFjZWFkMTQwOTVlOTNmNmVk
NzdmMjRkMC4uNjFkYTU4YTlkZWVjMGY2OGQ1ZGE2MjBlMmQ2ZmQ4MDMxNWE3NGMyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUu
Y3BwCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjpzZXRQcm9wZXJ0
eUNoYW5nZWQodW5zaWduZWQgcHJvcGVydHlCaXQpCiAgICAgbV9zY3JvbGxpbmdTdGF0ZVRyZWUu
c2V0SGFzQ2hhbmdlZFByb3BlcnRpZXMoKTsKIH0KIAotUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0
ZU5vZGU+IFNjcm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVBbmRSZXNldChTY3JvbGxpbmdTdGF0ZVRy
ZWUmIGFkb3B0aXZlVHJlZSkKK1JlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRl
Tm9kZTo6Y2xvbmVBbmRSZXNldChTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKIHsK
ICAgICBhdXRvIGNsb25lID0gdGhpcy0+Y2xvbmUoYWRvcHRpdmVUcmVlKTsKIApAQCAtODAsNyAr
ODAsOCBAQCBQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVOb2Rl
OjpjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVAogICAgIHJlc2V0Q2hhbmdlZFByb3BlcnRp
ZXMoKTsKIAogICAgIGNsb25lQW5kUmVzZXRDaGlsZHJlbihjbG9uZS5nZXQoKSwgYWRvcHRpdmVU
cmVlKTsKLSAgICByZXR1cm4gV1RGTW92ZShjbG9uZSk7CisKKyAgICByZXR1cm4gY2xvbmU7CiB9
CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0Q2hpbGRyZW4oU2Nyb2xs
aW5nU3RhdGVOb2RlJiBjbG9uZSwgU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpCkBA
IC05MiwxNCArOTMsMTMgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OmNsb25lQW5kUmVzZXRD
aGlsZHJlbihTY3JvbGxpbmdTdGF0ZU5vZGUmIGNsb25lLCBTY3JvbGwKICAgICAgICAgY2xvbmUu
YXBwZW5kQ2hpbGQoY2hpbGQtPmNsb25lQW5kUmVzZXQoYWRvcHRpdmVUcmVlKSk7CiB9CiAKLXZv
aWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPFNjcm9sbGluZ1N0
YXRlTm9kZT4gY2hpbGROb2RlKQordm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxk
KFJlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+JiYgY2hpbGROb2RlKQogewogICAgIGNoaWxkTm9kZS0+
c2V0UGFyZW50KHRoaXMpOwogCiAgICAgaWYgKCFtX2NoaWxkcmVuKQogICAgICAgICBtX2NoaWxk
cmVuID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4+
PigpOwotCi0gICAgbV9jaGlsZHJlbi0+YXBwZW5kKGNoaWxkTm9kZSk7CisgICAgbV9jaGlsZHJl
bi0+YXBwZW5kKFdURk1vdmUoY2hpbGROb2RlKSk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVO
b2RlOjpzZXRMYXllcihjb25zdCBMYXllclJlcHJlc2VudGF0aW9uJiBsYXllclJlcHJlc2VudGF0
aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZU5vZGUuaAppbmRleCBiZmFkMWM0NWUwZDcxZjliYTdjMmJjMDgyM2YxMWJlNDY4ZDY5ZWMwLi4w
ODdkNjE4MjlhZGU1NDYxMDYxMjA1NzViZDQxYTE2ODBlYmMxZDFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaApAQCAtMjA2LDcg
KzIwNiw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzT3ZlcmZsb3dTY3JvbGxpbmdOb2RlKCkgY29u
c3QgeyByZXR1cm4gbV9ub2RlVHlwZSA9PSBPdmVyZmxvd1Njcm9sbGluZ05vZGU7IH0KIAogICAg
IHZpcnR1YWwgUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xvbmUoU2Nyb2xsaW5nU3RhdGVUcmVl
JiBhZG9wdGl2ZVRyZWUpID0gMDsKLSAgICBQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4g
Y2xvbmVBbmRSZXNldChTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSk7CisgICAgUmVm
PFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xvbmVBbmRSZXNldChTY3JvbGxpbmdTdGF0ZVRyZWUmIGFk
b3B0aXZlVHJlZSk7CiAgICAgdm9pZCBjbG9uZUFuZFJlc2V0Q2hpbGRyZW4oU2Nyb2xsaW5nU3Rh
dGVOb2RlJiwgU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpOwogCiAgICAgZW51bSB7
CkBAIC0yMzgsNyArMjM4LDcgQEAgcHVibGljOgogCiAgICAgVmVjdG9yPFJlZlB0cjxTY3JvbGxp
bmdTdGF0ZU5vZGU+PiogY2hpbGRyZW4oKSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVuLmdldCgp
OyB9CiAKLSAgICB2b2lkIGFwcGVuZENoaWxkKFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2Rl
Pik7CisgICAgdm9pZCBhcHBlbmRDaGlsZChSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiYmKTsKIAog
ICAgIFN0cmluZyBzY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQoKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKaW5k
ZXggOThiNmNhZGNiNGMzNTFjZDJkNzY2NjQ2NTczZTM4NWE3MzJmYzE0Mi4uMGJiYzFiNzMzODI3
MTliNjI1OGQxMWQwNDk0MzNlMzI5ODdhM2UwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwCkBAIC02Nyw3ICs2Nyw3IEBA
IHZvaWQgU2Nyb2xsaW5nU3RhdGVUcmVlOjpzZXRIYXNDaGFuZ2VkUHJvcGVydGllcyhib29sIGNo
YW5nZWRQcm9wZXJ0aWVzKQogI2VuZGlmCiB9CiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVO
b2RlPiBTY3JvbGxpbmdTdGF0ZVRyZWU6OmNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9k
ZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCitSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiBT
Y3JvbGxpbmdTdGF0ZVRyZWU6OmNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUs
IFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7CiAgICAgc3dpdGNoIChub2RlVHlwZSkgewogICAg
IGNhc2UgRml4ZWROb2RlOgpAQCAtODAsNyArODAsNyBAQCBQYXNzUmVmUHRyPFNjcm9sbGluZ1N0
YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVUcmVlOjpjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBl
CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZTo6Y3Jl
YXRlKCp0aGlzLCBub2RlSUQpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGU6OmNy
ZWF0ZSgqdGhpcywgbm9kZUlEKTsKIH0KIAogYm9vbCBTY3JvbGxpbmdTdGF0ZVRyZWU6Om5vZGVU
eXBlQW5kUGFyZW50TWF0Y2goU2Nyb2xsaW5nU3RhdGVOb2RlJiBub2RlLCBTY3JvbGxpbmdOb2Rl
VHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIHBhcmVudElEKSBjb25zdApAQCAtMTI5LDEz
ICsxMjksMTMgQEAgU2Nyb2xsaW5nTm9kZUlEIFNjcm9sbGluZ1N0YXRlVHJlZTo6YXR0YWNoTm9k
ZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2wKICAgICAgICAgaWYgKG5vZGVUeXBl
ID09IEZyYW1lU2Nyb2xsaW5nTm9kZSAmJiBwYXJlbnRJRCkgewogICAgICAgICAgICAgaWYgKGF1
dG8gb3JwaGFuZWROb2RlID0gbV9vcnBoYW5lZFN1YmZyYW1lTm9kZXMudGFrZShuZXdOb2RlSUQp
KSB7CiAgICAgICAgICAgICAgICAgbmV3Tm9kZSA9IG9ycGhhbmVkTm9kZS5nZXQoKTsKLSAgICAg
ICAgICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKFdURk1vdmUob3JwaGFuZWROb2RlKSk7Cisg
ICAgICAgICAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZChvcnBoYW5lZE5vZGUucmVsZWFzZU5v
bk51bGwoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIW5ld05v
ZGUpIHsKICAgICAgICAgICAgIGF1dG8gc3RhdGVOb2RlID0gY3JlYXRlTm9kZShub2RlVHlwZSwg
bmV3Tm9kZUlEKTsKLSAgICAgICAgICAgIG5ld05vZGUgPSBzdGF0ZU5vZGUuZ2V0KCk7CisgICAg
ICAgICAgICBuZXdOb2RlID0gc3RhdGVOb2RlLnB0cigpOwogICAgICAgICAgICAgcGFyZW50LT5h
cHBlbmRDaGlsZChXVEZNb3ZlKHN0YXRlTm9kZSkpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTgy
LDcgKzE4Miw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IFNjcm9sbGlu
Z1N0YXRlVHJlZTo6Y29tbWl0KExheWVyUmVwcmVzZW50YXRpCiAgICAgdHJlZVN0YXRlQ2xvbmUt
PnNldFByZWZlcnJlZExheWVyUmVwcmVzZW50YXRpb24ocHJlZmVycmVkTGF5ZXJSZXByZXNlbnRh
dGlvbik7CiAKICAgICBpZiAobV9yb290U3RhdGVOb2RlKQotICAgICAgICB0cmVlU3RhdGVDbG9u
ZS0+c2V0Um9vdFN0YXRlTm9kZShzdGF0aWNfcG9pbnRlcl9jYXN0PFNjcm9sbGluZ1N0YXRlRnJh
bWVTY3JvbGxpbmdOb2RlPihtX3Jvb3RTdGF0ZU5vZGUtPmNsb25lQW5kUmVzZXQoKnRyZWVTdGF0
ZUNsb25lKSkpOworICAgICAgICB0cmVlU3RhdGVDbG9uZS0+c2V0Um9vdFN0YXRlTm9kZShzdGF0
aWNfcmVmZXJlbmNlX2Nhc3Q8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KG1fcm9v
dFN0YXRlTm9kZS0+Y2xvbmVBbmRSZXNldCgqdHJlZVN0YXRlQ2xvbmUpKSk7CiAKICAgICAvLyBD
b3B5IHRoZSBJRHMgb2YgdGhlIG5vZGVzIHRoYXQgaGF2ZSBiZWVuIHJlbW92ZWQgc2luY2UgdGhl
IGxhc3QgY29tbWl0IGludG8gdGhlIGNsb25lLgogICAgIHRyZWVTdGF0ZUNsb25lLT5tX25vZGVz
UmVtb3ZlZFNpbmNlTGFzdENvbW1pdC5zd2FwKG1fbm9kZXNSZW1vdmVkU2luY2VMYXN0Q29tbWl0
KTsKQEAgLTIxMSw3ICsyMTEsOCBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlVHJlZTo6cmVtb3ZlTm9k
ZUFuZEFsbERlc2NlbmRhbnRzKFNjcm9sbGluZ1N0YXRlTm9kZSogbm9kZSwgUwogICAgIGlmIChu
b2RlID09IG1fcm9vdFN0YXRlTm9kZSkKICAgICAgICAgbV9yb290U3RhdGVOb2RlID0gbnVsbHB0
cjsKICAgICBlbHNlIGlmIChwYXJlbnQpIHsKLSAgICAgICAgQVNTRVJUKHBhcmVudC0+Y2hpbGRy
ZW4oKSAmJiBwYXJlbnQtPmNoaWxkcmVuKCktPmZpbmQobm9kZSkgIT0gbm90Rm91bmQpOworICAg
ICAgICBBU1NFUlQocGFyZW50LT5jaGlsZHJlbigpKTsKKyAgICAgICAgQVNTRVJUKHBhcmVudC0+
Y2hpbGRyZW4oKS0+ZmluZChub2RlKSAhPSBub3RGb3VuZCk7CiAgICAgICAgIGlmIChhdXRvIGNo
aWxkcmVuID0gcGFyZW50LT5jaGlsZHJlbigpKSB7CiAgICAgICAgICAgICBzaXplX3QgaW5kZXgg
PSBjaGlsZHJlbi0+ZmluZChub2RlKTsKICAgICAgICAgICAgIGlmIChpbmRleCAhPSBub3RGb3Vu
ZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0
YXRlVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVU
cmVlLmgKaW5kZXggMzFmNmRiNzllN2I0MGMxYjMyZjJlYTdjZGNmZmM0OGYxN2JmY2UzMS4uM2Iy
NTYxNTFhZDc0NGJjZjAyMzRkNzJkNGZkM2EwYzc1ZDQzNjkxMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmgKQEAgLTc0LDE3ICs3
NCwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9u
KExheWVyUmVwcmVzZW50YXRpb246OlR5cGUgcmVwcmVzZW50YXRpb24pIHsgbV9wcmVmZXJyZWRM
YXllclJlcHJlc2VudGF0aW9uID0gcmVwcmVzZW50YXRpb247IH0KIAogcHJpdmF0ZToKLSAgICB2
b2lkIHNldFJvb3RTdGF0ZU5vZGUoUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xs
aW5nTm9kZT4gcm9vdFN0YXRlTm9kZSkgeyBtX3Jvb3RTdGF0ZU5vZGUgPSByb290U3RhdGVOb2Rl
OyB9CisgICAgdm9pZCBzZXRSb290U3RhdGVOb2RlKFJlZjxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Ny
b2xsaW5nTm9kZT4mJiByb290U3RhdGVOb2RlKSB7IG1fcm9vdFN0YXRlTm9kZSA9IFdURk1vdmUo
cm9vdFN0YXRlTm9kZSk7IH0KICAgICB2b2lkIGFkZE5vZGUoU2Nyb2xsaW5nU3RhdGVOb2RlKik7
CiAKLSAgICBQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gY3JlYXRlTm9kZShTY3JvbGxp
bmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKKyAgICBSZWY8U2Nyb2xsaW5nU3RhdGVOb2Rl
PiBjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogCiAgICAg
Ym9vbCBub2RlVHlwZUFuZFBhcmVudE1hdGNoKFNjcm9sbGluZ1N0YXRlTm9kZSYsIFNjcm9sbGlu
Z05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgcGFyZW50SUQpIGNvbnN0OwogCi0gICAgZW51bSBj
bGFzcyBTdWJmcmFtZU5vZGVSZW1vdmFsIHsKLSAgICAgICAgRGVsZXRlLAotICAgICAgICBPcnBo
YW4KLSAgICB9OworICAgIGVudW0gY2xhc3MgU3ViZnJhbWVOb2RlUmVtb3ZhbCB7IERlbGV0ZSwg
T3JwaGFuIH07CiAgICAgdm9pZCByZW1vdmVOb2RlQW5kQWxsRGVzY2VuZGFudHMoU2Nyb2xsaW5n
U3RhdGVOb2RlKiwgU3ViZnJhbWVOb2RlUmVtb3ZhbCA9IFN1YmZyYW1lTm9kZVJlbW92YWw6OkRl
bGV0ZSk7CiAKICAgICB2b2lkIHJlY3Vyc2l2ZU5vZGVXaWxsQmVSZW1vdmVkKFNjcm9sbGluZ1N0
YXRlTm9kZSogY3Vyck5vZGUsIFN1YmZyYW1lTm9kZVJlbW92YWwpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCBkMDBlYzVkZDliMWI3
ZDRhNmQ2MWJmNWQxMzliNDk5MmU2MzdkOGVmLi45NDNhZmIxYjJlNTNkNWQzZTJlOGNhNzYyNTJl
NDJkNjJmOGFmNzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmNwcApAQCAtMTc5LDcgKzE3OSw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6dXBk
YXRlVHJlZUZyb21TdGF0ZU5vZGUoY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlKiBzdGF0ZU5vZGUs
CiAgICAgICAgIGlmIChwYXJlbnRJdCAhPSBtX25vZGVNYXAuZW5kKCkpIHsKICAgICAgICAgICAg
IFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJlbnQgPSBwYXJlbnRJdC0+dmFsdWU7CiAgICAgICAgICAg
ICBub2RlLT5zZXRQYXJlbnQocGFyZW50KTsKLSAgICAgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hp
bGQobm9kZSk7CisgICAgICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKG5vZGUucmVsZWFzZU5v
bk51bGwoKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTE4OSw3ICsxODksNyBAQCB2b2lkIFNj
cm9sbGluZ1RyZWU6OnVwZGF0ZVRyZWVGcm9tU3RhdGVOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRl
Tm9kZSogc3RhdGVOb2RlLAogICAgIGlmIChhdXRvIG5vZGVDaGlsZHJlbiA9IG5vZGUtPmNoaWxk
cmVuKCkpIHsKICAgICAgICAgZm9yIChhdXRvJiBjaGlsZFNjcm9sbGluZ05vZGUgOiAqbm9kZUNo
aWxkcmVuKSB7CiAgICAgICAgICAgICBjaGlsZFNjcm9sbGluZ05vZGUtPnNldFBhcmVudChudWxs
cHRyKTsKLSAgICAgICAgICAgIG9ycGhhbk5vZGVzLmFkZChjaGlsZFNjcm9sbGluZ05vZGUtPnNj
cm9sbGluZ05vZGVJRCgpLCBjaGlsZFNjcm9sbGluZ05vZGUpOworICAgICAgICAgICAgb3JwaGFu
Tm9kZXMuYWRkKGNoaWxkU2Nyb2xsaW5nTm9kZS0+c2Nyb2xsaW5nTm9kZUlEKCksIGNoaWxkU2Ny
b2xsaW5nTm9kZS5nZXQoKSk7CiAgICAgICAgIH0KICAgICAgICAgbm9kZUNoaWxkcmVuLT5jbGVh
cigpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuaAppbmRleCA2NzM0YjUzYWRhYjVjMzk5YjkzM2FjMzc3ZWRlNzRiOGMyYTA1YTRkLi5hYWYy
ZDQ3OGJiYjgwMDk1ZjU1OTZjOTE0NjA2ZTJiOWI1ZDhmOGNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC03NCw3ICs3NCw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgc2V0TWFpbkZyYW1lUGluU3RhdGUoYm9vbCBwaW5uZWRUb1RoZUxlZnQs
IGJvb2wgcGlubmVkVG9UaGVSaWdodCwgYm9vbCBwaW5uZWRUb1RoZVRvcCwgYm9vbCBwaW5uZWRU
b1RoZUJvdHRvbSk7CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+
IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2Rl
SUQpID0gMDsKKyAgICB2aXJ0dWFsIFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xs
aW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgPSAwOwogCiAg
ICAgLy8gQ2FsbGVkIGFmdGVyIGEgc2Nyb2xsaW5nIHRyZWUgbm9kZSBoYXMgaGFuZGxlZCBhIHNj
cm9sbCBhbmQgdXBkYXRlZCBpdHMgbGF5ZXJzLgogICAgIC8vIFVwZGF0ZXMgRnJhbWVWaWV3L1Jl
bmRlckxheWVyIHNjcm9sbGluZyBzdGF0ZSBhbmQgR3JhcGhpY3NMYXllcnMuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHAKaW5kZXgg
ZGViNzgxYTFjMWY5ZmRkMDMzYzk5OTVjOTkyMWMwNzI5OTI2OWEyYS4uMGY2NjE2ZDBmM2RjMzU3
ODYzMDZmZDQ2NmY3YTY5NjQxNWIyZWVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmNwcApAQCAtNDUsMjIgKzQ1LDIxIEBAIFNj
cm9sbGluZ1RyZWVOb2RlOjp+U2Nyb2xsaW5nVHJlZU5vZGUoKQogewogfQogCi12b2lkIFNjcm9s
bGluZ1RyZWVOb2RlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBj
aGlsZE5vZGUpCit2b2lkIFNjcm9sbGluZ1RyZWVOb2RlOjphcHBlbmRDaGlsZChSZWY8U2Nyb2xs
aW5nVHJlZU5vZGU+JiYgY2hpbGROb2RlKQogewogICAgIGNoaWxkTm9kZS0+c2V0UGFyZW50KHRo
aXMpOwogCiAgICAgaWYgKCFtX2NoaWxkcmVuKQotICAgICAgICBtX2NoaWxkcmVuID0gc3RkOjpt
YWtlX3VuaXF1ZTxTY3JvbGxpbmdUcmVlQ2hpbGRyZW5WZWN0b3I+KCk7Ci0KLSAgICBtX2NoaWxk
cmVuLT5hcHBlbmQoY2hpbGROb2RlKTsKKyAgICAgICAgbV9jaGlsZHJlbiA9IHN0ZDo6bWFrZV91
bmlxdWU8VmVjdG9yPFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4+PigpOworICAgIG1fY2hpbGRy
ZW4tPmFwcGVuZChXVEZNb3ZlKGNoaWxkTm9kZSkpOwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWVO
b2RlOjpyZW1vdmVDaGlsZChTY3JvbGxpbmdUcmVlTm9kZSogbm9kZSkKK3ZvaWQgU2Nyb2xsaW5n
VHJlZU5vZGU6OnJlbW92ZUNoaWxkKFNjcm9sbGluZ1RyZWVOb2RlJiBub2RlKQogewogICAgIGlm
ICghbV9jaGlsZHJlbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgc2l6ZV90IGluZGV4ID0gbV9j
aGlsZHJlbi0+ZmluZChub2RlKTsKKyAgICBzaXplX3QgaW5kZXggPSBtX2NoaWxkcmVuLT5maW5k
KCZub2RlKTsKIAogICAgIC8vIFRoZSBpbmRleCB3aWxsIGJlIG5vdEZvdW5kIGlmIHRoZSBub2Rl
IHRvIHJlbW92ZSBpcyBhIGRlZXBlci10aGFuLTEtbGV2ZWwgZGVzY2VuZGFudCBvcgogICAgIC8v
IGlmIG5vZGUgaXMgdGhlIHJvb3Qgc3RhdGUgbm9kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCmluZGV4IDNlODZlM2Q0NzhkMzQwNjkz
NTllYWE1YzZiOWNmYmFjNjc1Y2VkMDUuLjJlMTYzMjQ2YmI5NmUzM2ZlZjYyYWRhNzFiNDFhMjEz
OTIxMjc5MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZU5vZGUuaApAQCAtNjAsMTEgKzYwLDEwIEBAIHB1YmxpYzoKICAgICBTY3JvbGxpbmdU
cmVlTm9kZSogcGFyZW50KCkgY29uc3QgeyByZXR1cm4gbV9wYXJlbnQ7IH0KICAgICB2b2lkIHNl
dFBhcmVudChTY3JvbGxpbmdUcmVlTm9kZSogcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9
CiAKLSAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+PiBTY3JvbGxp
bmdUcmVlQ2hpbGRyZW5WZWN0b3I7Ci0gICAgU2Nyb2xsaW5nVHJlZUNoaWxkcmVuVmVjdG9yKiBj
aGlsZHJlbigpIHsgcmV0dXJuIG1fY2hpbGRyZW4uZ2V0KCk7IH0KLSAgICAKLSAgICB2b2lkIGFw
cGVuZENoaWxkKFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+KTsKLSAgICB2b2lkIHJlbW92
ZUNoaWxkKFNjcm9sbGluZ1RyZWVOb2RlKik7CisgICAgVmVjdG9yPFJlZlB0cjxTY3JvbGxpbmdU
cmVlTm9kZT4+KiBjaGlsZHJlbigpIHsgcmV0dXJuIG1fY2hpbGRyZW4uZ2V0KCk7IH0KKworICAg
IHZvaWQgYXBwZW5kQ2hpbGQoUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiYmKTsKKyAgICB2b2lkIHJl
bW92ZUNoaWxkKFNjcm9sbGluZ1RyZWVOb2RlJik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGR1bXAoVGV4dFN0cmVhbSYsIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25z
dDsKIApAQCAtNzIsNyArNzEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsaW5nVHJlZU5vZGUo
U2Nyb2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogICAg
IFNjcm9sbGluZ1RyZWUmIHNjcm9sbGluZ1RyZWUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGlu
Z1RyZWU7IH0KIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxpbmdUcmVlQ2hpbGRyZW5WZWN0
b3I+IG1fY2hpbGRyZW47CisgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxSZWZQdHI8U2Nyb2xs
aW5nVHJlZU5vZGU+Pj4gbV9jaGlsZHJlbjsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwg
dm9pZCBkdW1wUHJvcGVydGllcyhUZXh0U3RyZWFtJiwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0
QmVoYXZpb3IpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAppbmRleCBiY2I0OGU0OTVjMWIwYjg5ZTc1
YTdhYTMzZTg1ZTU5NGQ3YzVlNjg1Li5mNjY0ZWQzYWMzYmU1MzhkZmYyZmU1ODgwMmEwOTc3YWEw
YWEwODkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRl
ZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Ro
cmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTM5LDggKzM5LDggQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1UaHJlYWRlZFNjcm9sbGluZ1RyZWU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZShB
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvcikKLSAgICA6IG1f
c2Nyb2xsaW5nQ29vcmRpbmF0b3Ioc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCitUaHJlYWRlZFNjcm9s
bGluZ1RyZWU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
JiBzY3JvbGxpbmdDb29yZGluYXRvcikKKyAgICA6IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IoJnNj
cm9sbGluZ0Nvb3JkaW5hdG9yKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDczMjU0MDU5YzJkNzcw
MjA1Y2VmZGJkMTUzMGFiMjc5MDRhYTczNjMuLjZkMWQ0OWQ2N2VjYTVmYThkNTJhODU4ZWVjZjVm
OTNlZTljOTcwZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Ro
cmVhZGVkU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNC0yMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAg
dm9pZCBpbnZhbGlkYXRlKCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBU
aHJlYWRlZFNjcm9sbGluZ1RyZWUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciopOworICAgIGV4
cGxpY2l0IFRocmVhZGVkU2Nyb2xsaW5nVHJlZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJik7
CiAKICAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwg
Y29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IHN0ZDo6b3B0aW9uYWw8Rmxv
YXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0
aW9uID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykgb3ZlcnJpZGU7CiAgICAg
dm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShTY3JvbGxpbmdOb2RlSUQsIHVu
c2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBvdmVycmlkZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNw
cAppbmRleCAxMGIzZjg3MzQ1ZmRhNDNjY2RmZTljMTVmZTQxN2Y0NmFmNTU0NWVhLi4xZjAzZTY4
NmU5Zjg3NThlYzY1YTliNmY5YjYxN2ViMmY4NjhjNjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuY3BwCkBAIC00MCwx
MyArNDAsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8U2Nyb2xsaW5nVHJlZUlP
Uz4gU2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yKQorUmVmPFNjcm9sbGluZ1RyZWVJT1M+IFNjcm9sbGluZ1RyZWVJ
T1M6OmNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRv
cikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTY3JvbGxpbmdUcmVlSU9TKHNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKSk7CiB9CiAKLVNjcm9sbGluZ1RyZWVJT1M6OlNjcm9sbGluZ1RyZWVJT1Mo
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCi0gICAgOiBt
X3Njcm9sbGluZ0Nvb3JkaW5hdG9yKHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorU2Nyb2xsaW5nVHJl
ZUlPUzo6U2Nyb2xsaW5nVHJlZUlPUyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxp
bmdDb29yZGluYXRvcikKKyAgICA6IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IoJnNjcm9sbGluZ0Nv
b3JkaW5hdG9yKQogewogfQogCkBAIC04MywyMCArODMsMjEgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
SU9TOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBj
b25zdAogICAgIH0pOwogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBTY3JvbGxp
bmdUcmVlSU9TOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2Rl
VHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxTY3JvbGxpbmdUcmVlTm9kZT4gU2Ny
b2xsaW5nVHJlZUlPUzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUg
bm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7CiAgICAgc3dpdGNoIChub2RlVHlw
ZSkgewogICAgIGNhc2UgRnJhbWVTY3JvbGxpbmdOb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAg
IGNhc2UgT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRml4
ZWROb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0
aGlzLCBub2RlSUQpOwogICAgIGNhc2UgU3RpY2t5Tm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9s
bGluZ1RyZWVTdGlja3lOb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgfQotICAgIHJl
dHVybiBudWxscHRyOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTY3Jv
bGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKIEZsb2F0UmVj
dCBTY3JvbGxpbmdUcmVlSU9TOjpmaXhlZFBvc2l0aW9uUmVjdCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaAppbmRleCAxYTlh
YWUxYjQwYzgxMjY4MzQ0ODQxY2U3YjMwNzVlZjcwYTdlNTU0Li5hZWE2OWIzOWY1OWM5NjE1ZDE4
MGFhZWE2ZWI4OTcyNTljZGFkOTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmgKQEAgLTI5LDM1ICsyOSwzMSBAQAogCiAj
aW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVUcmVlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZS5o
IgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I7
CiAKLWNsYXNzIFNjcm9sbGluZ1RyZWVJT1MgOiBwdWJsaWMgU2Nyb2xsaW5nVHJlZSB7CitjbGFz
cyBTY3JvbGxpbmdUcmVlSU9TIGZpbmFsIDogcHVibGljIFNjcm9sbGluZ1RyZWUgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8U2Nyb2xsaW5nVHJlZUlPUz4gY3JlYXRlKEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IqKTsKKyAgICBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVJT1M+IGNyZWF0ZShB
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJik7CiAgICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZUlP
UygpOwogCi0gICAgLy8gTm8gd2hlZWwgZXZlbnRzIG9uIGlPUwotICAgIHZvaWQgaGFuZGxlV2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZSB7IH0KLSAgICBFdmVu
dFJlc3VsdCB0cnlUb0hhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikg
b3ZlcnJpZGUgeyByZXR1cm4gRGlkTm90SGFuZGxlRXZlbnQ7IH0KLQotICAgIHZvaWQgaW52YWxp
ZGF0ZSgpIG92ZXJyaWRlOwotCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVJ
T1MoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciopOwotICAgIGJvb2wgaXNTY3JvbGxpbmdUcmVl
SU9TKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGV4cGxpY2l0IFNjcm9s
bGluZ1RyZWVJT1MoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOwogCi0gICAgUGFzc1JlZlB0
cjxTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9k
ZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1Njcm9sbGluZ1Ry
ZWVJT1MoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2b2lkIHNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24sIGNvbnN0IHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdw
b3J0T3JpZ2luLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbkFjdGlvbjo6U3luYykgb3ZlcnJpZGU7CisgICAgLy8gTm8gd2hlZWwgZXZlbnRzIG9u
IGlPUworICAgIHZvaWQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
KSBmaW5hbCB7IH0KKyAgICBFdmVudFJlc3VsdCB0cnlUb0hhbmRsZVdoZWVsRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JikgZmluYWwgeyByZXR1cm4gRGlkTm90SGFuZGxlRXZlbnQ7IH0K
IAotICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBpbnZhbGlkYXRlKCkgZmluYWw7CiAKLSAgICBGbG9hdFJlY3QgZml4
ZWRQb3NpdGlvblJlY3QoKSBvdmVycmlkZTsKKyAgICBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNy
ZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQp
IGZpbmFsOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qgc3RkOjpvcHRpb25h
bDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRp
b25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBmaW5hbDsKKyAg
ICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGlu
Z05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGZpbmFsOwor
ICAgIEZsb2F0UmVjdCBmaXhlZFBvc2l0aW9uUmVjdCgpIGZpbmFsOwogCiAgICAgUmVmUHRyPEFz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I+IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjLm1tCmluZGV4IGQ0M2Q5NGIyNDdhNmU0ZjkzOTc0MTU4MjYxOTdjMmIw
YWRmMDcxNDguLjg2MTE4YjQ0NTAwNzk0NmNmMGZhNzgzYzVkNTQzZTExOWU5ZWJmNjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGlu
YXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWMubW0KQEAgLTU0LDcgKzU0LDcgQEAgU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWM6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjKFBhZ2UqIHBhZ2UpCiAgICAgOiBBc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yKHBhZ2UpCiAgICAgLCBtX3Njcm9sbGluZ1N0YXRlVHJlZUNvbW1p
dHRlclRpbWVyKCp0aGlzLCAmU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmNvbW1pdFRyZWVTdGF0
ZSkKIHsKLSAgICBzZXRTY3JvbGxpbmdUcmVlKFNjcm9sbGluZ1RyZWVNYWM6OmNyZWF0ZSh0aGlz
KSk7CisgICAgc2V0U2Nyb2xsaW5nVHJlZShTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGUoKnRoaXMp
KTsKIH0KIAogU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6On5TY3JvbGxpbmdDb29yZGluYXRvck1h
YygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZU1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZU1hYy5jcHAKaW5kZXggNzBkYmMwNmNmMDEzYmYzMWI4ZGEwN2ZkZTBkMzk4OGM2MWI0
ZDgwYS4uODk5ZjFlOTAxNjdkYjhjOGVhMWZhNmQ4ZWFlZjRjNzA0MTEyMDU0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFj
LmNwcApAQCAtMzQsMzAgKzM0LDMxIEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1S
ZWY8U2Nyb2xsaW5nVHJlZU1hYz4gU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlKEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorUmVmPFNjcm9sbGluZ1RyZWVN
YWM+IFNjcm9sbGluZ1RyZWVNYWM6OmNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBz
Y3JvbGxpbmdDb29yZGluYXRvcikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTY3JvbGxp
bmdUcmVlTWFjKHNjcm9sbGluZ0Nvb3JkaW5hdG9yKSk7CiB9CiAKLVNjcm9sbGluZ1RyZWVNYWM6
OlNjcm9sbGluZ1RyZWVNYWMoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29v
cmRpbmF0b3IpCitTY3JvbGxpbmdUcmVlTWFjOjpTY3JvbGxpbmdUcmVlTWFjKEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3ImIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQogICAgIDogVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlKHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQogewogfQogCi1QYXNzUmVmUHRyPFNjcm9s
bGluZ1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShT
Y3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxT
Y3JvbGxpbmdUcmVlTm9kZT4gU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5v
ZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7
CiAgICAgc3dpdGNoIChub2RlVHlwZSkgewogICAgIGNhc2UgRnJhbWVTY3JvbGxpbmdOb2RlOgog
ICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6Y3JlYXRl
KCp0aGlzLCBub2RlSUQpOwogICAgIGNhc2UgT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOgogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRml4ZWROb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJl
ZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIGNhc2UgU3RpY2t5Tm9kZToK
ICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjpjcmVhdGUoKnRoaXMsIG5v
ZGVJRCk7CiAgICAgfQotICAgIHJldHVybiBudWxscHRyOworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5v
ZGVJRCk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQTEFURk9S
TShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVNYWMuaAppbmRleCA0M2E0NmI3N2U4NWI0NWZmNjFjYjJiOWE2YmJiMzJjMmMwZWZm
YTU3Li40OTlmYzNmZjE3YmNmOTQ5MGE4MzcyMjY0MmY2YmM4M2JlMDBiN2RkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmgK
QEAgLTMxLDE0ICszMSwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNjcm9s
bGluZ1RyZWVNYWMgOiBwdWJsaWMgVGhyZWFkZWRTY3JvbGxpbmdUcmVlIHsKK2NsYXNzIFNjcm9s
bGluZ1RyZWVNYWMgZmluYWwgOiBwdWJsaWMgVGhyZWFkZWRTY3JvbGxpbmdUcmVlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVNYWM+IGNyZWF0ZShBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yKik7CisgICAgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlTWFjPiBjcmVhdGUo
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOwogCi0gICAgUGFzc1JlZlB0cjxTY3JvbGxpbmdU
cmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9s
bGluZ05vZGVJRCkgb3ZlcnJpZGU7Ci0gICAgCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNjcm9s
bGluZ1RyZWVNYWMoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciopOworICAgIGV4cGxpY2l0IFNj
cm9sbGluZ1RyZWVNYWMoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOworCisgICAgUmVmPFNj
cm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlw
ZSwgU2Nyb2xsaW5nTm9kZUlEKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCmluZGV4IDYxNjA3
MDkwZDI2Yzk5YzFhZTI1M2Y1YTRlYzVkNjZkNTFjM2Q2MTUuLmJhODE1YjMxN2FiZWIyMjRlM2I2
YmM0MzRiNTg4ZjgwYWRjYTkwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2lu
L0V2ZW50SGFuZGxlcldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRI
YW5kbGVyV2luLmNwcApAQCAtOTIsMTAgKzkyLDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpldmVu
dEFjdGl2YXRlZFZpZXcoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCkgY29uc3QKIH0K
IAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRXZl
bnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CisKK1JlZjxEYXRh
VHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25z
dAogewogICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCk7CiB9
CisKICNlbmRpZgogCiB2b2lkIEV2ZW50SGFuZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKaW5k
ZXggMDZhZWU5Zjk3OTYyZmJjYTgyOWNmNWUxYmUzODI1ZTZmYmQ1MmRlNC4uNDgyYjVkZDEzNzVi
NmZlNzcyNjdjYjYyNmY0MTYzNmRmOGY1MzU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCkBAIC02MTYsNyArNjE2LDcgQEAgdm9p
ZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6aGFuZGxlVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3JF
dmVudChFdmVudCogZXZlbnQpCiAgICAgICAgICAgICBzZXRVbmF2YWlsYWJsZVBsdWdpbkluZGlj
YXRvcklzUHJlc3NlZChmYWxzZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKG1fbW91c2VEb3du
V2FzSW5VbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvciAmJiBpc0luVW5hdmFpbGFibGVQbHVnaW5J
bmRpY2F0b3IobW91c2VFdmVudCkpIHsKLSAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGll
bnQoKS51bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoJmVsZW1lbnQsIG1fcGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb24pOworICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgp
LnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChlbGVtZW50LCBtX3BsdWdpblVuYXZhaWxh
YmlsaXR5UmVhc29uKTsKICAgICAgICAgfQogICAgICAgICBtX21vdXNlRG93bldhc0luVW5hdmFp
bGFibGVQbHVnaW5JbmRpY2F0b3IgPSBmYWxzZTsKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRI
YW5kbGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCmluZGV4IGExYTk0YzY3YjdlNDUwZTllYzAzMDVlZTA3MDU5ZGYyMmVjMDc2ZDQuLjYx
Y2FhYmY2YWZhOGU4NzAyNjg2MWI0ZmU4MDk3Y2MwOTYzNTNlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xMDcsNyArMTA3LDcg
QEAgUmVuZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXllckJhY2tpbmcoUmVuZGVyTGF5ZXImIGxh
eWVyKQogewogICAgIGlmIChsYXllci5pc1Jvb3RMYXllcigpKSB7CiAgICAgICAgIG1faXNNYWlu
RnJhbWVSZW5kZXJWaWV3TGF5ZXIgPSByZW5kZXJlcigpLmZyYW1lKCkuaXNNYWluRnJhbWUoKTsK
LSAgICAgICAgbV91c2luZ1RpbGVkQ2FjaGVMYXllciA9IHJlbmRlcmVyKCkucGFnZSgpLmNocm9t
ZSgpLmNsaWVudCgpLnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhyZW5kZXJlcigp
LmZyYW1lKCkudmlldygpKTsKKyAgICAgICAgbV91c2luZ1RpbGVkQ2FjaGVMYXllciA9IHJlbmRl
cmVyKCkucGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZy
YW1lVmlldyhyZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZpZXcoKSk7CiAgICAgfQogICAgIAogICAg
IGNyZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDEyYjYyYzkyODdiYmZmZDll
NTc5OGY3NjVkODJjNTcwMzczMWU2ZGQuLjY1ZmRjNGRmZGE0NmZiZDIyZGJiYzM0N2E5NmIyMWMy
ZWVkZWMxOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckNvbXBvc2l0b3IuY3BwCkBAIC0zMTAzLDcgKzMxMDMsNyBAQCBHcmFwaGljc0xheWVyKiBSZW5k
ZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUxheWVyRm9ySGVhZGVyKGJvb2wgd2FudHNMYXllcikK
ICAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhp
cy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3It
PmZyYW1lVmlld1Jvb3RMYXllckRpZENoYW5nZShtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkpOwog
Ci0gICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmRpZEFkZEhlYWRlckxheWVyKG1fbGF5ZXJG
b3JIZWFkZXIuZ2V0KCkpOworICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5kaWRBZGRIZWFk
ZXJMYXllcigqbV9sYXllckZvckhlYWRlcik7CiAKICAgICByZXR1cm4gbV9sYXllckZvckhlYWRl
ci5nZXQoKTsKIH0KQEAgLTMxNDEsNyArMzE0MSw3IEBAIEdyYXBoaWNzTGF5ZXIqIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJGb3JGb290ZXIoYm9vbCB3YW50c0xheWVyKQogICAg
IGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5z
Y3JvbGxpbmdDb29yZGluYXRvcigpKQogICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJh
bWVWaWV3Um9vdExheWVyRGlkQ2hhbmdlKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKSk7CiAKLSAg
ICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlkQWRkRm9vdGVyTGF5ZXIobV9sYXllckZvckZv
b3Rlci5nZXQoKSk7CisgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmRpZEFkZEZvb3Rlckxh
eWVyKCptX2xheWVyRm9yRm9vdGVyKTsKIAogICAgIHJldHVybiBtX2xheWVyRm9yRm9vdGVyLmdl
dCgpOwogfQpAQCAtMzQ2MywxMSArMzQ2MywxMSBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6YXR0YWNoUm9vdExheWVyKFJvb3RMYXllckF0dGFjaG1lbnQgYXR0YWNobWVudCkKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFJvb3RMYXllckF0dGFjaGVkVmlhQ2hyb21lQ2xp
ZW50OiB7CiAgICAgICAgICAgICBGcmFtZSYgZnJhbWUgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3
KCkuZnJhbWUoKTsKLSAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hS
b290R3JhcGhpY3NMYXllcigmZnJhbWUsIHJvb3RHcmFwaGljc0xheWVyKCkpOworICAgICAgICAg
ICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKGZyYW1l
LCByb290R3JhcGhpY3NMYXllcigpKTsKICAgICAgICAgICAgIGlmIChmcmFtZS5pc01haW5GcmFt
ZSgpKSB7CiAgICAgICAgICAgICAgICAgUGFnZU92ZXJsYXlDb250cm9sbGVyJiBwYWdlT3Zlcmxh
eUNvbnRyb2xsZXIgPSBmcmFtZS5tYWluRnJhbWUoKS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKTsK
ICAgICAgICAgICAgICAgICBwYWdlT3ZlcmxheUNvbnRyb2xsZXIud2lsbEF0dGFjaFJvb3RMYXll
cigpOwotICAgICAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hWaWV3
T3ZlcmxheUdyYXBoaWNzTGF5ZXIoJmZyYW1lLCAmcGFnZU92ZXJsYXlDb250cm9sbGVyLnZpZXdP
dmVybGF5Um9vdExheWVyKCkpOworICAgICAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGll
bnQoKS5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoZnJhbWUsICZwYWdlT3ZlcmxheUNv
bnRyb2xsZXIudmlld092ZXJsYXlSb290TGF5ZXIoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMzUwOCw5ICszNTA4LDkgQEAgdm9pZCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmRldGFjaFJvb3RMYXllcigpCiAgICAgfQogICAgIGNhc2UgUm9vdExh
eWVyQXR0YWNoZWRWaWFDaHJvbWVDbGllbnQ6IHsKICAgICAgICAgRnJhbWUmIGZyYW1lID0gbV9y
ZW5kZXJWaWV3LmZyYW1lVmlldygpLmZyYW1lKCk7Ci0gICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5j
bGllbnQoKS5hdHRhY2hSb290R3JhcGhpY3NMYXllcigmZnJhbWUsIDApOworICAgICAgICBwYWdl
KCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoZnJhbWUsIG51bGxw
dHIpOwogICAgICAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSkKLSAgICAgICAgICAgIHBhZ2Uo
KS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoJmZyYW1l
LCAwKTsKKyAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hWaWV3T3Zl
cmxheUdyYXBoaWNzTGF5ZXIoZnJhbWUsIG51bGxwdHIpOwogICAgIH0KICAgICBicmVhazsKICAg
ICBjYXNlIFJvb3RMYXllclVuYXR0YWNoZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1lbnVMaXN0LmNwcAppbmRleCBkMmMwMmVmOWQ2MGUwNmM2ODY2NzIzZTQ3NDA3MzdhZDhj
MGMzODIxLi4zN2M4M2U4ZDFmNWViYjA1N2IxMTBjYzg4ODEwNTQ1MTJjZDRkNDdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAgLTM3MSw3ICszNzEs
NyBAQCB2b2lkIFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKQogICAgIC8vIGluc2lkZSB0aGUg
c2hvd1BvcHVwIGNhbGwgYW5kIGl0IHdvdWxkIGZhaWwuCiAgICAgY3JlYXRlSW5uZXJCbG9jaygp
OwogICAgIGlmICghbV9wb3B1cCkKLSAgICAgICAgbV9wb3B1cCA9IGRvY3VtZW50KCkucGFnZSgp
LT5jaHJvbWUoKS5jcmVhdGVQb3B1cE1lbnUodGhpcyk7CisgICAgICAgIG1fcG9wdXAgPSBkb2N1
bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY3JlYXRlUG9wdXBNZW51KCp0aGlzKTsKICAgICBtX3Bv
cHVwSXNWaXNpYmxlID0gdHJ1ZTsKIAogICAgIC8vIENvbXB1dGUgdGhlIHRvcCBsZWZ0IHRha2lu
ZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudCwgYnV0IHVzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKaW5kZXggYjQ2ZDhlZDcxODYwOGNhZmU2MTY5
M2UxNGJlMTNlODZkNGNhODIyYy4uY2E5MDA1MTg0ZGIyOWFjOTI3NzBkYTEyNzU1ODE0YzYwODA2
MjFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZp
ZWxkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQu
Y3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgUmVuZGVyU2VhcmNoRmllbGQ6OmFkZFNlYXJjaFJl
c3VsdCgpCiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBhdXRvc2F2ZU5hbWUoKTsK
ICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAgIG1fc2VhcmNoUG9wdXAgPSBwYWdlKCku
Y2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KHRoaXMpOworICAgICAgICBtX3NlYXJjaFBv
cHVwID0gcGFnZSgpLmNocm9tZSgpLmNyZWF0ZVNlYXJjaFBvcHVwTWVudSgqdGhpcyk7CiAKICAg
ICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNoZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hl
cyk7CiB9CkBAIC0xMDgsNyArMTA4LDcgQEAgdm9pZCBSZW5kZXJTZWFyY2hGaWVsZDo6c2hvd1Bv
cHVwKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFtX3NlYXJjaFBvcHVwKQotICAgICAg
ICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNyZWF0ZVNlYXJjaFBvcHVwTWVudSh0
aGlzKTsKKyAgICAgICAgbV9zZWFyY2hQb3B1cCA9IHBhZ2UoKS5jaHJvbWUoKS5jcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoKnRoaXMpOwogCiAgICAgaWYgKCFtX3NlYXJjaFBvcHVwLT5lbmFibGVkKCkp
CiAgICAgICAgIHJldHVybjsKQEAgLTIwMSw3ICsyMDEsNyBAQCB2b2lkIFJlbmRlclNlYXJjaEZp
ZWxkOjp2YWx1ZUNoYW5nZWQodW5zaWduZWQgbGlzdEluZGV4LCBib29sIGZpcmVFdmVudHMpCiAg
ICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBhdXRvc2F2ZU5hbWUoKTsKICAg
ICAgICAgICAgIGlmICghbmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIW1f
c2VhcmNoUG9wdXApCi0gICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBwYWdlKCku
Y2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KHRoaXMpOworICAgICAgICAgICAgICAgICAg
ICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNyZWF0ZVNlYXJjaFBvcHVwTWVudSgq
dGhpcyk7CiAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNlYXJjaGVz
KG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FFbGVtZW50LmNwcAppbmRleCBiZWIwYTM5NTNiYzcyZmVlMTNiMzUzOGZlNTk3
Y2QxOTA5ZDlkM2JlLi40MjAyM2ZhNzY4NjU0ZTEzYWY2ZDMyNjI4MmFlMzgxNjdhY2E5ZGJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKQEAgLTE5Nyw3ICsxOTcsNyBAQCBib29sIFNW
R0FFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQmIGV2ZW50KSBjb25z
dAogICAgICAgICByZXR1cm4gU1ZHRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCk7
CiAKICAgICBpZiAoaXNMaW5rKCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCkt
PmV2ZW50SGFuZGxlcigpLnRhYnNUb0xpbmtzKCZldmVudCk7CisgICAgICAgIHJldHVybiBkb2N1
bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLnRhYnNUb0xpbmtzKGV2ZW50KTsKIAogICAg
IHJldHVybiBTVkdFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcAppbmRleCBm
ZDU2NGFmZjE0MDRlNTg4YTlkYzQxYTYzNjdkYjJmMGNiZGExMjhiLi4wMDQ0MDQxYmY3NTc4YzNj
MmE4NjE3YjdmZTc2NmZkMmNiY2IyZDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBAIE1vY2tQYWdlT3Zl
cmxheUNsaWVudDo6TW9ja1BhZ2VPdmVybGF5Q2xpZW50KCkKIFJlZjxNb2NrUGFnZU92ZXJsYXk+
IE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6aW5zdGFsbE92ZXJsYXkoTWFpbkZyYW1lJiBtYWluRnJh
bWUsIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZSBvdmVybGF5VHlwZSkKIHsKICAgICBhdXRvIG92
ZXJsYXkgPSBQYWdlT3ZlcmxheTo6Y3JlYXRlKCp0aGlzLCBvdmVybGF5VHlwZSk7Ci0gICAgbWFp
bkZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheShvdmVybGF5
LnB0cigpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgbWFpbkZyYW1l
LnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheShvdmVybGF5LCBQYWdl
T3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAKICAgICBhdXRvIG1vY2tPdmVybGF5ID0g
TW9ja1BhZ2VPdmVybGF5OjpjcmVhdGUob3ZlcmxheS5wdHIoKSk7CiAgICAgbV9vdmVybGF5cy5h
ZGQobW9ja092ZXJsYXkucHRyKCkpOwpAQCAtNjUsNyArNjUsNyBAQCB2b2lkIE1vY2tQYWdlT3Zl
cmxheUNsaWVudDo6dW5pbnN0YWxsQWxsT3ZlcmxheXMoKQogICAgICAgICBSZWZQdHI8TW9ja1Bh
Z2VPdmVybGF5PiBtb2NrT3ZlcmxheSA9IG1fb3ZlcmxheXMudGFrZUFueSgpOwogICAgICAgICBQ
YWdlT3ZlcmxheUNvbnRyb2xsZXIqIG92ZXJsYXlDb250cm9sbGVyID0gbW9ja092ZXJsYXktPm92
ZXJsYXkoKS0+Y29udHJvbGxlcigpOwogICAgICAgICBBU1NFUlQob3ZlcmxheUNvbnRyb2xsZXIp
OwotICAgICAgICBvdmVybGF5Q29udHJvbGxlci0+dW5pbnN0YWxsUGFnZU92ZXJsYXkobW9ja092
ZXJsYXktPm92ZXJsYXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAg
ICAgICBvdmVybGF5Q29udHJvbGxlci0+dW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1vY2tPdmVybGF5
LT5vdmVybGF5KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxp
Y2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLm1tCmluZGV4IDNiM2MzYTQyOTRj
MTdjNTc4YjgxOTE1ZGEwYjFjNGY4YmZhMjNlYmEuLjBkNDgyYjRkZDkyNWJjMGI4YjhkNDI2MWVm
YzJjN2E2NTU3NmUwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbQpA
QCAtNTksNyArNTksOSBAQCAtICh1bnNpZ25lZCBsb25nIGxvbmcpdXNhZ2UKIC0gKHVuc2lnbmVk
IGxvbmcgbG9uZylxdW90YQogewogICAgIGxvbmcgbG9uZyBxdW90YTsKLSAgICBpZiAod2ViQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UoKS5jYWxjdWxhdGVRdW90YUZvck9yaWdpbihbX29yaWdpbiBf
Y29yZV0sIHF1b3RhKSkKKyAgICBpZiAoIV9vcmlnaW4pCisgICAgICAgIHJldHVybiAwOworICAg
IGlmICh3ZWJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSgpLmNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2lu
KCpbX29yaWdpbiBfY29yZV0sIHF1b3RhKSkKICAgICAgICAgcmV0dXJuIHF1b3RhOwogICAgIHJl
dHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuaAppbmRleCBmNGYwOTZjNWQ2NDczZWJjNmU3YWJkNTgzYjZkZmVmNGFhYTRk
MTU5Li43ZDhmM2I4N2Y3ZTMyNDUxNmRiMDYxNWJlNThkOGQ5MDU1ODI0YjhhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAt
NTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZm9jdXNlZEVsZW1lbnRDaGFuZ2VkKFdl
YkNvcmU6OkVsZW1lbnQqKSBvdmVycmlkZTsKICAgICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQo
V2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKIAotICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRv
dyhXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25z
dCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rp
b24mKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJh
bWUmLCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2lu
ZG93RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWw7CiAg
ICAgdm9pZCBzaG93KCkgZmluYWw7CiAKICAgICBib29sIGNhblJ1bk1vZGFsKCkgZmluYWw7CkBA
IC03OSwxNiArNzksMTYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wp
IGZpbmFsOwogCi0gICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKEpTQzo6TWVzc2FnZVNvdXJj
ZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFdURjo6U3RyaW5nJiBz
b3VyY2VVUkwpIGZpbmFsOworICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShKU0M6Ok1lc3Nh
Z2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2ln
bmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3Vy
Y2VVUkwpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwo
KSBmaW5hbDsKLSAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBXVEY6
OlN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKKyAgICBib29sIHJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFdlYkNvcmU6OkZy
YW1lJikgZmluYWw7CiAKICAgICB2b2lkIGNsb3NlV2luZG93U29vbigpIGZpbmFsOwogCi0gICAg
dm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmlu
ZyYpIG92ZXJyaWRlOwotICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJh
bWUqLCBjb25zdCBXVEY6OlN0cmluZyYpIG92ZXJyaWRlOwotICAgIGJvb2wgcnVuSmF2YVNjcmlw
dFByb21wdChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBXVEY6OlN0cmluZyYgZGVmYXVsdFZhbHVlLCBXVEY6OlN0cmluZyYgcmVzdWx0KSBvdmVycmlk
ZTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0
cmluZyYpIG92ZXJyaWRlOworICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6
RnJhbWUmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRQ
cm9tcHQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgb3ZlcnJpZGU7CiAKICAgICBib29sIHN1
cHBvcnRzSW1tZWRpYXRlSW52YWxpZGF0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBpbnZhbGlkYXRl
Um9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOwpAQCAtMTA1LDI5ICsxMDUs
MjkgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3Jt
UGFnZUNsaWVudCgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChX
ZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdCBmaW5hbDsKKyAg
ICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBzZXRTdGF0dXNi
YXJUZXh0KGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRTdGF0dXNi
YXJUZXh0KGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzY3JvbGxiYXJzTW9k
ZURpZENoYW5nZSgpIGNvbnN0IGZpbmFsIHsgfQogICAgIGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQ
bHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdp
blVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHVuYXZhaWxhYmxl
UGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVtZW50KiwgV2ViQ29yZTo6UmVuZGVyRW1i
ZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsKKyAg
ICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVtZW50Jiwg
V2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29u
KSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdl
YkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSBmaW5hbDsKIAot
ICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXVEY6OlN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJl
Y3Rpb24pIGZpbmFsOworICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcmLCBXZWJDb3Jl
OjpUZXh0RGlyZWN0aW9uKSBmaW5hbDsKIAotICAgIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUq
KSBmaW5hbDsKLSAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSos
IGNvbnN0IFdURjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUsIFdlYkNvcmU6OkRhdGFiYXNlRGV0YWls
cykgZmluYWw7CisgICAgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOworICAgIHZv
aWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3RyaW5nJiBk
YXRhYmFzZU5hbWUsIFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscykgZmluYWw7CiAgICAgdm9pZCBy
ZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpIGZpbmFsOwotICAgIHZv
aWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkgZmluYWw7CisgICAgdm9pZCByZWFjaGVk
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgaW50
NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSBmaW5hbDsKIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQ
UE9SVCkKICAgICB2b2lkIGFubm90YXRlZFJlZ2lvbnNDaGFuZ2VkKCkgZmluYWw7CiAjZW5kaWYK
IAogICAgIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6RmlsZUNo
b29zZXImKSBvdmVycmlkZTsKLSAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9y
PFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJikgZmluYWw7CisgICAgdm9p
ZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUlj
b25Mb2FkZXImKSBmaW5hbDsKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgdm9pZCBzZXRDdXJz
b3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikgZmluYWw7CkBAIC0xMzUsNyArMTM1LDcgQEAgcHJp
dmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgc3RkOjp1
bmlxdWVfcHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKFdlYkNv
cmU6OkNvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgZmluYWw7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9v
c2VyKFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikg
ZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCkBAIC0xNTEsMTYgKzE1
MSwxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5hYmxlU3VkZGVuVGVybWluYXRpb24oKSBmaW5h
bDsKICAgICB2b2lkIGRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpIGZpbmFsOwogCi0gICAgYm9v
bCBzaG91bGRSZXBsYWNlV2l0aEdlbmVyYXRlZEZpbGVGb3JVcGxvYWQoY29uc3QgV1RGOjpTdHJp
bmcmIHBhdGgsIFdURjo6U3RyaW5nICZnZW5lcmF0ZWRGaWxlbmFtZSkgZmluYWw7Ci0gICAgV1RG
OjpTdHJpbmcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoY29uc3QgV1RGOjpTdHJpbmcmIHBhdGgp
IGZpbmFsOworICAgIGJvb2wgc2hvdWxkUmVwbGFjZVdpdGhHZW5lcmF0ZWRGaWxlRm9yVXBsb2Fk
KGNvbnN0IFN0cmluZyYgcGF0aCwgU3RyaW5nICZnZW5lcmF0ZWRGaWxlbmFtZSkgZmluYWw7Cisg
ICAgU3RyaW5nIGdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkgZmlu
YWw7CiAKLSAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBXZWJDb3JlOjpOb2RlKikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBXZWJDb3JlOjpOb2RlKikgb3Zl
cnJpZGU7CisgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoV2ViQ29yZTo6RWxlbWVudCYpIG92ZXJy
aWRlOworICAgIHZvaWQgZWxlbWVudERpZEJsdXIoV2ViQ29yZTo6RWxlbWVudCYpIG92ZXJyaWRl
OwogCiAgICAgYm9vbCBzaG91bGRQYWludEVudGlyZUNvbnRlbnRzKCkgY29uc3QgZmluYWw7CiAK
LSAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwotICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlH
cmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZp
bmFsOworICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRhY2hWaWV3T3Zl
cmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
KikgZmluYWw7CiAgICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9u
KCkgZmluYWw7CiAgICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIGZpbmFs
OwogCkBAIC0xODksMTYgKzE4OSwxNiBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCi0gICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNv
bnN0IFdlYkNvcmU6OkVsZW1lbnQqLCBib29sIHdpdGhLZXlib2FyZCkgZmluYWw7Ci0gICAgdm9p
ZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBmaW5hbDsKLSAg
ICB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KikgZmluYWw7
CisgICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVs
ZW1lbnQmLCBib29sIHdpdGhLZXlib2FyZCkgZmluYWw7CisgICAgdm9pZCBlbnRlckZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKKyAgICB2b2lkIGV4aXRGdWxs
U2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAogICAg
IGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBvdmVycmlkZTsKICAg
ICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBv
dmVycmlkZTsKICAgICBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3QgZmluYWw7Ci0gICAgUmVm
UHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVu
dUNsaWVudCopIGNvbnN0IG92ZXJyaWRlOwotICAgIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBj
b25zdCBvdmVycmlkZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1
cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgUmVm
UHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNv
cmU6OlBvcHVwTWVudUNsaWVudCYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCB3aGVlbEV2
ZW50SGFuZGxlcnNDaGFuZ2VkKGJvb2wpIGZpbmFsIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggMGVjZmY4ZDVm
YWIxZWU1ZmM1NTI5MmRjMDRhODA1YWQyY2NjZGVkOC4uZTQ5NjdiOWY4YzM3YzYyNWI1MDU1YmM0
MjkxYTc1OTU5ZjA1ZmFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiV2Vi
Q2hyb21lQ2xpZW50LmgiCiAKICNpbXBvcnQgIkRPTUVsZW1lbnRJbnRlcm5hbC5oIgorI2ltcG9y
dCAiRE9NSFRNTElucHV0RWxlbWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJET01Ob2RlSW50ZXJu
YWwuaCIKICNpbXBvcnQgIlBvcHVwTWVudU1hYy5oIgogI2ltcG9ydCAiU2VhcmNoUG9wdXBNZW51
TWFjLmgiCkBAIC0yMjIsNyArMjIzLDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRF
bGVtZW50Q2hhbmdlZChFbGVtZW50KiBlbGVtZW50KQogICAgIGlmICghaXM8SFRNTElucHV0RWxl
bWVudD4oZWxlbWVudCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEhUTUxJbnB1dEVsZW1lbnQm
IGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KTsKKyAg
ICBhdXRvJiBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVu
dCk7CiAgICAgaWYgKCFpbnB1dEVsZW1lbnQuaXNUZXh0KCkpCiAgICAgICAgIHJldHVybjsKIApA
QCAtMjMzLDE0ICsyMzQsMTQgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRGcmFtZUNo
YW5nZWQoRnJhbWUqKQogewogfQogCi1QYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRv
dyhGcmFtZSogZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0
dXJlcyYgZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKQorUGFnZSogV2ViQ2hyb21l
Q2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUmIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0
JiwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9u
JikKIHsKICAgICBpZCBkZWxlZ2F0ZSA9IFttX3dlYlZpZXcgVUlEZWxlZ2F0ZV07CiAgICAgV2Vi
VmlldyAqbmV3V2ViVmlldzsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICBpZiAo
ZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPndlYmtpdEN1cnJlbnRGdWxs
U2NyZWVuRWxlbWVudCgpKQotICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2Vs
RnVsbFNjcmVlbigpOworICAgIGlmIChmcmFtZS5kb2N1bWVudCgpICYmIGZyYW1lLmRvY3VtZW50
KCktPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpKQorICAgICAgICBmcmFtZS5kb2N1
bWVudCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7CiAjZW5kaWYKICAgICAKICAgICBpZiAo
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpjcmVhdGVXZWJW
aWV3V2l0aFJlcXVlc3Q6d2luZG93RmVhdHVyZXM6KV0pIHsKQEAgLTQ2OCw5ICs0NjksOSBAQCBi
b29sIFdlYkNocm9tZUNsaWVudDo6Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkKICAg
ICByZXR1cm4gW1ttX3dlYlZpZXcgVUlEZWxlZ2F0ZV0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3Rvcih3ZWJWaWV3OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmluaXRp
YXRlZEJ5RnJhbWU6KV07CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSogZnJhbWUpCitib29s
IFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgRnJhbWUmIGZyYW1lKQogewotICAgIHJldHVybiBDYWxsVUlEZWxlZ2F0ZVJl
dHVybmluZ0Jvb2xlYW4odHJ1ZSwgbV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpydW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOiksIG1lc3Nh
Z2UsIGtpdChmcmFtZSkpOworICAgIHJldHVybiBDYWxsVUlEZWxlZ2F0ZVJldHVybmluZ0Jvb2xl
YW4odHJ1ZSwgbV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpydW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOiksIG1lc3NhZ2UsIGtpdCgmZnJh
bWUpKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNsb3NlV2luZG93U29vbigpCkBAIC00
OTMsMTIgKzQ5NCwxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xvc2VXaW5kb3dTb29uKCkK
ICAgICBbbV93ZWJWaWV3IHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IoX2Nsb3NlV2luZG93KSB3
aXRoT2JqZWN0Om5pbCBhZnRlckRlbGF5OjAuMF07CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiBmcmFtZSwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIGlkIGRlbGVnYXRlID0gW21fd2ViVmlldyBV
SURlbGVnYXRlXTsKICAgICBTRUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpydW5KYXZh
U2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6KTsKICAgICBpZiAo
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rvcl0pIHsKLSAgICAgICAgQ2FsbFVJ
RGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3RvciwgbWVzc2FnZSwga2l0KGZyYW1lKSk7CisgICAg
ICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIG1lc3NhZ2UsIGtpdCgmZnJh
bWUpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNTEwLDEyICs1MTEsMTIgQEAgdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKICAgICB9CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5K
YXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK2Jv
b2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYgZnJhbWUsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBpZCBkZWxlZ2F0ZSA9IFttX3dlYlZpZXcgVUlE
ZWxlZ2F0ZV07CiAgICAgU0VMIHNlbGVjdG9yID0gQHNlbGVjdG9yKHdlYlZpZXc6cnVuSmF2YVNj
cmlwdENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6KTsKICAgICBpZiAo
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rvcl0pCi0gICAgICAgIHJldHVybiBD
YWxsVUlEZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4oTk8sIG1fd2ViVmlldywgc2VsZWN0b3IsIG1l
c3NhZ2UsIGtpdChmcmFtZSkpOworICAgICAgICByZXR1cm4gQ2FsbFVJRGVsZWdhdGVSZXR1cm5p
bmdCb29sZWFuKE5PLCBtX3dlYlZpZXcsIHNlbGVjdG9yLCBtZXNzYWdlLCBraXQoJmZyYW1lKSk7
CiAKICAgICAvLyBDYWxsIHRoZSBvbGQgdmVyc2lvbiBvZiB0aGUgZGVsZWdhdGUgbWV0aG9kIGlm
IGl0IGlzIGltcGxlbWVudGVkLgogICAgIHNlbGVjdG9yID0gQHNlbGVjdG9yKHdlYlZpZXc6cnVu
SmF2YVNjcmlwdENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOik7CkBAIC01MjUsMTMgKzUyNiwxMyBA
QCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZyYW1l
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgcmV0dXJuIE5POwogfQogCi1ib29sIFdlYkNo
cm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmlu
ZyYgcHJvbXB0LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRUZXh0LCBTdHJpbmcmIHJlc3VsdCkKK2Jv
b2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiBmcmFtZSwgY29u
c3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFRleHQsIFN0cmluZyYgcmVz
dWx0KQogewogICAgIGlkIGRlbGVnYXRlID0gW21fd2ViVmlldyBVSURlbGVnYXRlXTsKICAgICBT
RUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpydW5KYXZhU2NyaXB0VGV4dElucHV0UGFu
ZWxXaXRoUHJvbXB0OmRlZmF1bHRUZXh0OmluaXRpYXRlZEJ5RnJhbWU6KTsKICAgICBOU1N0cmlu
ZyAqZGVmYXVsdFN0cmluZyA9IGRlZmF1bHRUZXh0OwogICAgIGlmIChbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkgewotICAgICAgICByZXN1bHQgPSAoTlNTdHJpbmcgKilD
YWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBwcm9tcHQsIGRlZmF1bHRTdHJpbmcs
IGtpdChmcmFtZSkpOworICAgICAgICByZXN1bHQgPSAoTlNTdHJpbmcgKilDYWxsVUlEZWxlZ2F0
ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBwcm9tcHQsIGRlZmF1bHRTdHJpbmcsIGtpdCgmZnJhbWUp
KTsKICAgICAgICAgcmV0dXJuICFyZXN1bHQuaXNOdWxsKCk7CiAgICAgfQogCkBAIC01NDIsNyAr
NTQzLDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUq
IGZyYW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwgY28KICAgICAgICAgcmV0dXJuICFyZXN1bHQu
aXNOdWxsKCk7CiAgICAgfQogCi0gICAgcmVzdWx0ID0gW1tXZWJEZWZhdWx0VUlEZWxlZ2F0ZSBz
aGFyZWRVSURlbGVnYXRlXSB3ZWJWaWV3Om1fd2ViVmlldyBydW5KYXZhU2NyaXB0VGV4dElucHV0
UGFuZWxXaXRoUHJvbXB0OnByb21wdCBkZWZhdWx0VGV4dDpkZWZhdWx0U3RyaW5nIGluaXRpYXRl
ZEJ5RnJhbWU6a2l0KGZyYW1lKV07CisgICAgcmVzdWx0ID0gW1tXZWJEZWZhdWx0VUlEZWxlZ2F0
ZSBzaGFyZWRVSURlbGVnYXRlXSB3ZWJWaWV3Om1fd2ViVmlldyBydW5KYXZhU2NyaXB0VGV4dElu
cHV0UGFuZWxXaXRoUHJvbXB0OnByb21wdCBkZWZhdWx0VGV4dDpkZWZhdWx0U3RyaW5nIGluaXRp
YXRlZEJ5RnJhbWU6a2l0KCZmcmFtZSldOwogICAgIHJldHVybiAhcmVzdWx0LmlzTnVsbCgpOwog
fQogCkBAIC02MDYsNyArNjA3LDcgQEAgUGxhdGZvcm1QYWdlQ2xpZW50IFdlYkNocm9tZUNsaWVu
dDo6cGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJbnRTaXpl
JikgY29uc3QKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1l
JiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0CiB7CiB9CiAKQEAgLTYzNSwxMiArNjM2LDEyIEBAIGJv
b2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRv
bihSZW5kZXJFbWJlZGRlZE9iamVjCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFdlYkNo
cm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVsZW1lbnQqIGVsZW1l
bnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVn
aW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyRW1iZWRk
ZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uKSBjb25zdAogewotICAgIEFTU0VSVChlbGVtZW50LT5oYXNUYWdOYW1lKG9iamVjdFRh
ZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFt
ZShhcHBsZXRUYWcpKTsKKyAgICBBU1NFUlQoZWxlbWVudC5oYXNUYWdOYW1lKG9iamVjdFRhZykg
fHwgZWxlbWVudC5oYXNUYWdOYW1lKGVtYmVkVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoYXBw
bGV0VGFnKSk7CiAKICAgICBBU1NFUlQocGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gPT0gUmVu
ZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpbk1pc3NpbmcpOwotICAgIENhbGxVSURlbGVnYXRlKG1f
d2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6ZGlkUHJlc3NNaXNzaW5nUGx1Z2luQnV0dG9uOiks
IGtpdChlbGVtZW50KSk7CisgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Io
d2ViVmlldzpkaWRQcmVzc01pc3NpbmdQbHVnaW5CdXR0b246KSwga2l0KCZlbGVtZW50KSk7CiB9
CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBI
aXRUZXN0UmVzdWx0JiByZXN1bHQsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpCkBAIC02NTcsMjEg
KzY1OCwyMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VG9vbFRpcChjb25zdCBTdHJpbmcm
IHRvb2xUaXAsIFRleHREaXJlY3Rpb24pCiAgICAgICAgIFsoV2ViSFRNTFZpZXcgKilkb2N1bWVu
dFZpZXcgX3NldFRvb2xUaXA6dG9vbFRpcF07CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpw
cmludChGcmFtZSogZnJhbWUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUmIGZy
YW1lKQogewotICAgIFdlYkZyYW1lICp3ZWJGcmFtZSA9IGtpdChmcmFtZSk7CisgICAgV2ViRnJh
bWUgKndlYkZyYW1lID0ga2l0KCZmcmFtZSk7CiAgICAgaWYgKFtbbV93ZWJWaWV3IFVJRGVsZWdh
dGVdIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpwcmludEZyYW1lOildKQog
ICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnByaW50
RnJhbWU6KSwgd2ViRnJhbWUpOwogICAgIGVsc2UKICAgICAgICAgQ2FsbFVJRGVsZWdhdGUobV93
ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpwcmludEZyYW1lVmlldzopLCBbd2ViRnJhbWUgZnJh
bWVWaWV3XSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVv
dGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRh
aWxzKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSYg
ZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMpCiB7CiAg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgV2ViU2VjdXJpdHlPcmlnaW4g
KndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0aFdlYkNvcmVT
ZWN1cml0eU9yaWdpbjomZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCldOwotICAg
IENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6ZnJhbWU6ZXhjZWVk
ZWREYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46ZGF0YWJhc2U6KSwga2l0KGZyYW1lKSwg
d2ViT3JpZ2luLCAoTlNTdHJpbmcgKilkYXRhYmFzZU5hbWUpOworICAgIFdlYlNlY3VyaXR5T3Jp
Z2luICp3ZWJPcmlnaW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5pdFdpdGhXZWJD
b3JlU2VjdXJpdHlPcmlnaW46JmZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCldOwor
ICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6ZnJhbWU6ZXhj
ZWVkZWREYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46ZGF0YWJhc2U6KSwga2l0KCZmcmFt
ZSksIHdlYk9yaWdpbiwgKE5TU3RyaW5nICopZGF0YWJhc2VOYW1lKTsKICAgICBbd2ViT3JpZ2lu
IHJlbGVhc2VdOwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKQEAgLTY4MiwxMSAr
NjgzLDExIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGlu
dDY0X3Qgc3BhY2VOZWVkZWQpCiAgICAgLy8gRklYTUU6IEZyZWUgc29tZSBzcGFjZS4KIH0KIAot
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEo
U2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKQordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJp
dHlPcmlnaW4mIG9yaWdpbiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKQogewogICAgIEJFR0lO
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIFdlYlNlY3VyaXR5T3JpZ2luICp3ZWJPcmln
aW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5pdFdpdGhXZWJDb3JlU2VjdXJpdHlP
cmlnaW46b3JpZ2luXTsKKyAgICBXZWJTZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tXZWJT
ZWN1cml0eU9yaWdpbiBhbGxvY10gX2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOiZvcmln
aW5dOwogICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6ZXhj
ZWVkZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGFGb3JTZWN1cml0eU9yaWdpbjp0b3RhbFNw
YWNlTmVlZGVkOiksIHdlYk9yaWdpbiwgc3RhdGljX2Nhc3Q8TlNVSW50ZWdlcj4odG90YWxTcGFj
ZU5lZWRlZCkpOwogICAgIFt3ZWJPcmlnaW4gcmVsZWFzZV07CiAKQEAgLTcwNSwxMiArNzA2LDE0
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojphbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpCiAjZW5k
aWYKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotc3RkOjp1bmlxdWVfcHRyPENvbG9y
Q2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2Vy
Q2xpZW50KiBjbGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCisKK3N0ZDo6dW5pcXVl
X3B0cjxDb2xvckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENv
bG9yQ2hvb3NlckNsaWVudCYgY2xpZW50LCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQogewog
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgPGlucHV0IHR5cGU9J2NvbG9yJz4gZm9yIFdLMSAoQnVn
IDExOTA5NCkuCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7
CiB9CisKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKQEAgLTg0OCwxNCArODUx
LDE0IEBAIFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6OmdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNv
bnN0IFN0cmluZyYgcGF0aCkKICAgICByZXR1cm4gW1ttX3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3
YXJkZXJdIHdlYlZpZXc6bV93ZWJWaWV3IGdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlOnBhdGhdOwog
fQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEZvY3VzKGNvbnN0IFdlYkNvcmU6
Ok5vZGUqIG5vZGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEZvY3VzKFdlYkNv
cmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBA
c2VsZWN0b3Iod2ViVmlldzpmb3JtRGlkRm9jdXNOb2RlOiksIGtpdChjb25zdF9jYXN0PFdlYkNv
cmU6Ok5vZGUqPihub2RlKSkpOworICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVj
dG9yKHdlYlZpZXc6Zm9ybURpZEZvY3VzTm9kZTopLCBraXQoJmVsZW1lbnQpKTsKIH0KIAotdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5v
ZGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIoV2ViQ29yZTo6RWxlbWVu
dCYgZWxlbWVudCkKIHsKLSAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3
ZWJWaWV3OmZvcm1EaWRCbHVyTm9kZTopLCBraXQoY29uc3RfY2FzdDxXZWJDb3JlOjpOb2RlKj4o
bm9kZSkpKTsKKyAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3
OmZvcm1EaWRCbHVyTm9kZTopLCBraXQoJmVsZW1lbnQpKTsKIH0KIAogYm9vbCBXZWJDaHJvbWVD
bGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKQEAgLTg3NCwxOSAr
ODc3LDE5IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpoYXNPcGVuZWRQb3B1cCgpIGNvbnN0CiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi1SZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVu
dCkgY29uc3QKK1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAogewog
I2lmICFQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVNYWMo
Y2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUG9wdXBNZW51TWFjKCZjbGllbnQp
KTsKICNlbHNlCiAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKIH0KIAotUmVmUHRyPFdlYkNv
cmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1l
bnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8V2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVu
dShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKICNpZiAhUExBVEZP
Uk0oSU9TKQotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51TWFjKGNsaWVu
dCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlYXJjaFBvcHVwTWVudU1hYygmY2xpZW50
KSk7CiAjZWxzZQogICAgIHJldHVybiBudWxscHRyOwogI2VuZGlmCkBAIC05MDIsMTEgKzkwNSwx
MSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkUGFpbnRFbnRpcmVDb250ZW50cygpIGNv
bnN0CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGlj
c0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3ZvaWQg
V2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSYgZnJhbWUsIEdy
YXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TOwogCi0gICAgTlNWaWV3ICpkb2N1bWVudFZpZXcgPSBbW2tpdChmcmFtZSkgZnJhbWVW
aWV3XSBkb2N1bWVudFZpZXddOworICAgIE5TVmlldyAqZG9jdW1lbnRWaWV3ID0gW1traXQoJmZy
YW1lKSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld107CiAgICAgaWYgKCFbZG9jdW1lbnRWaWV3IGlz
S2luZE9mQ2xhc3M6W1dlYkhUTUxWaWV3IGNsYXNzXV0pIHsKICAgICAgICAgLy8gV2Ugc2hvdWxk
IG5ldmVyIGJlIGF0dGFjaGluZyB3aGVuIHdlIGRvbid0IGhhdmUgYSBXZWJIVE1MVmlldy4KICAg
ICAgICAgQVNTRVJUKCFncmFwaGljc0xheWVyKTsKQEAgLTkyMSw3ICs5MjQsNyBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFw
aGljc0xheWVyKiBncmFwaAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKLXZv
aWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUq
LCBHcmFwaGljc0xheWVyKikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3Zlcmxh
eUdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikKIHsKICAgICAvLyBGSVhNRTog
SWYgd2Ugd2FudCB2aWV3LXJlbGF0aXZlIHBhZ2Ugb3ZlcmxheXMgaW4gTGVnYWN5IFdlYktpdCwg
dGhpcyB3b3VsZCBiZSB0aGUgcGxhY2UgdG8gaG9vayB0aGVtIHVwLgogfQpAQCAtOTQxLDYgKzk0
NCw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVz
aCgpCiB9CiAKICNpZiBFTkFCTEUoVklERU8pCisKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBw
b3J0c1ZpZGVvRnVsbHNjcmVlbihIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVl
bk1vZGUpCiB7CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtOTY1LDcgKzk2OSwxMCBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3Jl
OjpIVE1MVmlkZW9FbGVtZQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7ICAgIAogfQog
Ci0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisj
ZW5kaWYgLy8gRU5BQkxFKFZJREVPKQorCisjaWYgRU5BQkxFKFZJREVPKSAmJiBQTEFURk9STShN
QUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKwogdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnNldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXIoSFRNTE1lZGlhRWxlbWVudCYgZWxl
bWVudCkKIHsKICAgICBbbV93ZWJWaWV3IF9zZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyRm9y
TWVkaWFFbGVtZW50OmVsZW1lbnRdOwpAQCAtOTc1LDU0ICs5ODIsNTUgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIoKQogewogICAgIFttX3dlYlZp
ZXcgX2NsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXJdOwogfQotI2VuZGlmIC8vIFBMQVRGT1JN
KE1BQykKLSNlbmRpZiAvLyBFTkFCTEUoVklERU8pCisKKyNlbmRpZgogCiAjaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVu
Rm9yRWxlbWVudChjb25zdCBFbGVtZW50KiBlbGVtZW50LCBib29sIHdpdGhLZXlib2FyZCkKK2Jv
b2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVs
ZW1lbnQmIGVsZW1lbnQsIGJvb2wgd2l0aEtleWJvYXJkKQogewogICAgIFNFTCBzZWxlY3RvciA9
IEBzZWxlY3Rvcih3ZWJWaWV3OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6d2l0aEtleWJv
YXJkOik7CiAgICAgaWYgKFtbbV93ZWJWaWV3IFVJRGVsZWdhdGVdIHJlc3BvbmRzVG9TZWxlY3Rv
cjpzZWxlY3Rvcl0pCi0gICAgICAgIHJldHVybiBDYWxsVUlEZWxlZ2F0ZVJldHVybmluZ0Jvb2xl
YW4oZmFsc2UsIG1fd2ViVmlldywgc2VsZWN0b3IsIGtpdChjb25zdF9jYXN0PFdlYkNvcmU6OkVs
ZW1lbnQqPihlbGVtZW50KSksIHdpdGhLZXlib2FyZCk7CisgICAgICAgIHJldHVybiBDYWxsVUlE
ZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4oZmFsc2UsIG1fd2ViVmlldywgc2VsZWN0b3IsIGtpdChj
b25zdF9jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPigmZWxlbWVudCkpLCB3aXRoS2V5Ym9hcmQpOwog
I2lmICFQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIFttX3dlYlZpZXcgX3N1cHBvcnRzRnVsbFNj
cmVlbkZvckVsZW1lbnQ6Y29uc3RfY2FzdDxXZWJDb3JlOjpFbGVtZW50Kj4oZWxlbWVudCkgd2l0
aEtleWJvYXJkOndpdGhLZXlib2FyZF07CisgICAgcmV0dXJuIFttX3dlYlZpZXcgX3N1cHBvcnRz
RnVsbFNjcmVlbkZvckVsZW1lbnQ6Y29uc3RfY2FzdDxXZWJDb3JlOjpFbGVtZW50Kj4oJmVsZW1l
bnQpIHdpdGhLZXlib2FyZDp3aXRoS2V5Ym9hcmRdOwogI2Vsc2UKICAgICByZXR1cm4gTk87CiAj
ZW5kaWYKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1l
bnQoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgU0VMIHNlbGVjdG9yID0gQHNl
bGVjdG9yKHdlYlZpZXc6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDpsaXN0ZW5lcjopOwogICAg
IGlmIChbW21fd2ViVmlldyBVSURlbGVnYXRlXSByZXNwb25kc1RvU2VsZWN0b3I6c2VsZWN0b3Jd
KSB7Ci0gICAgICAgIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciogbGlzdGVuZXIgPSBbW1dlYktp
dEZ1bGxTY3JlZW5MaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhFbGVtZW50OmVsZW1lbnRdOwotICAg
ICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBraXQoZWxlbWVudCksIGxp
c3RlbmVyKTsKKyAgICAgICAgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyKiBsaXN0ZW5lciA9IFtb
V2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aEVsZW1lbnQ6JmVsZW1lbnRd
OworICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBraXQoJmVsZW1l
bnQpLCBsaXN0ZW5lcik7CiAgICAgICAgIFtsaXN0ZW5lciByZWxlYXNlXTsKICAgICB9CiAjaWYg
IVBMQVRGT1JNKElPUykKICAgICBlbHNlCi0gICAgICAgIFttX3dlYlZpZXcgX2VudGVyRnVsbFNj
cmVlbkZvckVsZW1lbnQ6ZWxlbWVudF07CisgICAgICAgIFttX3dlYlZpZXcgX2VudGVyRnVsbFNj
cmVlbkZvckVsZW1lbnQ6JmVsZW1lbnRdOwogI2VuZGlmCiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkK
IHsKICAgICBTRUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpleGl0RnVsbFNjcmVlbkZv
ckVsZW1lbnQ6bGlzdGVuZXI6KTsKICAgICBpZiAoW1ttX3dlYlZpZXcgVUlEZWxlZ2F0ZV0gcmVz
cG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkgewotICAgICAgICBXZWJLaXRGdWxsU2NyZWVuTGlz
dGVuZXIqIGxpc3RlbmVyID0gW1tXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIgYWxsb2NdIGluaXRX
aXRoRWxlbWVudDplbGVtZW50XTsKLSAgICAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBz
ZWxlY3Rvciwga2l0KGVsZW1lbnQpLCBsaXN0ZW5lcik7CisgICAgICAgIFdlYktpdEZ1bGxTY3Jl
ZW5MaXN0ZW5lciogbGlzdGVuZXIgPSBbW1dlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciBhbGxvY10g
aW5pdFdpdGhFbGVtZW50OiZlbGVtZW50XTsKKyAgICAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJW
aWV3LCBzZWxlY3Rvciwga2l0KCZlbGVtZW50KSwgbGlzdGVuZXIpOwogICAgICAgICBbbGlzdGVu
ZXIgcmVsZWFzZV07CiAgICAgfQogI2lmICFQTEFURk9STShJT1MpCiAgICAgZWxzZQotICAgICAg
ICBbbV93ZWJWaWV3IF9leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6ZWxlbWVudF07CisgICAgICAg
IFttX3dlYlZpZXcgX2V4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDomZWxlbWVudF07CiAjZW5kaWYK
IH0KIAogI2VuZGlmIC8vIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIAogI2lmIEVOQUJMRShTVUJU
TEVfQ1JZUFRPKQorCiBib29sIFdlYkNocm9tZUNsaWVudDo6d3JhcENyeXB0b0tleShjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGtleSwgVmVjdG9yPHVpbnQ4X3Q+JiB3cmFwcGVkS2V5KSBjb25zdAog
ewogICAgIFZlY3Rvcjx1aW50OF90PiBtYXN0ZXJLZXk7CkBAIC0xMDQ4LDkgKzEwNTYsMTEgQEAg
Ym9vbCBXZWJDaHJvbWVDbGllbnQ6OnVud3JhcENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhf
dD4mIHdyYXBwZWRLZXksIFZlY3RvcjwKIAogICAgIHJldHVybiB1bndyYXBTZXJpYWxpemVkQ3J5
cHRvS2V5KG1hc3RlcktleSwgd3JhcHBlZEtleSwga2V5KTsKIH0KKwogI2VuZGlmCiAKICNpZiBF
TkFCTEUoU0VSVklDRV9DT05UUk9MUykKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmhhbmRsZVNl
bGVjdGlvblNlcnZpY2VDbGljayhXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYgdGVsZXBob25lTnVtYmVycywgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIHBvaW50KQogewogICAgIFttX3dlYlZpZXcgX3NlbGVjdGlvblNlcnZpY2VDb250cm9s
bGVyXS5oYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soc2VsZWN0aW9uLCB0ZWxlcGhvbmVOdW1i
ZXJzLCBwb2ludCk7CkBAIC0xMDY0LDYgKzEwNzQsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6
aGFzUmVsZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcyhib29sIGlzVGV4dE9ubHkpIGNvbnN0CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJ
T1MpCisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVu
dCh1aW50NjRfdCBjb250ZXh0SWQpCiB7CiAgICAgW21fd2ViVmlldyBfYWRkUGxheWJhY2tUYXJn
ZXRQaWNrZXJDbGllbnQ6Y29udGV4dElkXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
Lm1tCmluZGV4IGJlYjdiMzA5Y2E2Y2RkODMzY2RhZmRiMDRmYjE5MmE0ZGNiMjY0ZDUuLjM4YTRj
ZWNiMTc2MTE0MTdmNzk4ZTg4NGYwNGVhYjkyYjMxMjQyY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJGcmFtZS5tbQpAQCAtMzAyLDE0ICszMDIsMTQgQEAgKyAoUmVmPFdlYkNvcmU6OkZy
YW1lPilfY3JlYXRlRnJhbWVXaXRoUGFnZTooUGFnZSopcGFnZSBmcmFtZU5hbWU6KGNvbnN0IFN0
cmluZyYKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0ga2l0KHBhZ2UpOwogCiAgICAgV2ViRnJhbWUg
KmZyYW1lID0gW1tzZWxmIGFsbG9jXSBfaW5pdFdpdGhXZWJGcmFtZVZpZXc6ZnJhbWVWaWV3IHdl
YlZpZXc6d2ViVmlld107Ci0gICAgUmVmPFdlYkNvcmU6OkZyYW1lPiBjb3JlRnJhbWUgPSBGcmFt
ZTo6Y3JlYXRlKHBhZ2UsIG93bmVyRWxlbWVudCwgbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50KGZy
YW1lKSk7CisgICAgYXV0byBjb3JlRnJhbWUgPSBGcmFtZTo6Y3JlYXRlKHBhZ2UsIG93bmVyRWxl
bWVudCwgbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50KGZyYW1lKSk7CiAgICAgW2ZyYW1lIHJlbGVh
c2VdOwogICAgIGZyYW1lLT5fcHJpdmF0ZS0+Y29yZUZyYW1lID0gY29yZUZyYW1lLnB0cigpOwog
CiAgICAgY29yZUZyYW1lLmdldCgpLnRyZWUoKS5zZXROYW1lKG5hbWUpOwogICAgIGlmIChvd25l
ckVsZW1lbnQpIHsKICAgICAgICAgQVNTRVJUKG93bmVyRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFt
ZSgpKTsKLSAgICAgICAgb3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCktPnRyZWUoKS5h
cHBlbmRDaGlsZChjb3JlRnJhbWUucHRyKCkpOworICAgICAgICBvd25lckVsZW1lbnQtPmRvY3Vt
ZW50KCkuZnJhbWUoKS0+dHJlZSgpLmFwcGVuZENoaWxkKGNvcmVGcmFtZS5nZXQoKSk7CiAgICAg
fQogCiAgICAgY29yZUZyYW1lLmdldCgpLmluaXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCmluZGV4
IGUxMTU1MjkxMDY0NzAxYjg4YjdiMzJhYmNkMWYyZTY1NDMzZTI4OWUuLjQyMWM3NDU3YzkwM2I0
N2UyZTFhN2I0ODg5ODgxZjU3YzMwZWFjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcApAQCAtMTEw
LDcgKzExMCw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVS
ZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlECiAgICAgbV9zY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3Jv
bGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CiB9CiAKLVBhc3NSZWZQ
dHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGlu
Z1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlEKQorUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVT
Y3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9k
ZUlEIG5vZGVJRCkKIHsKICAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2FzZSBGcmFtZVNj
cm9sbGluZ05vZGU6CkBAIC0xMjQsMTQgKzEyNCwxNSBAQCBQYXNzUmVmUHRyPFNjcm9sbGluZ1Ry
ZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3Jv
bAogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6
Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogI2Vsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBicmVhazsKICNlbmRpZgogICAg
IGNhc2UgRml4ZWROb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6
Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIGNhc2UgU3RpY2t5Tm9kZToKICAgICAgICAgcmV0
dXJuIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAg
fQotICAgIHJldHVybiBudWxscHRyOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAK
IHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFu
Z2UoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQg
dmVydGljYWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5n
L1JlbW90ZVNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxp
bmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCmluZGV4IGQ2NWIyZjVlZDZkZGY1N2VjNDQwZGY0OTBk
MmUxMTY4YzhlYzA1YzkuLjczMThjY2M4MTRjYTU3MTZkYzcwYzI0YjZjNDQxNzhkMjU2Y2RhNzAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Ny
b2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVt
b3RlU2Nyb2xsaW5nVHJlZS5oCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OwogCi1jbGFzcyBSZW1vdGVT
Y3JvbGxpbmdUcmVlIDogcHVibGljIFdlYkNvcmU6OlNjcm9sbGluZ1RyZWUgeworY2xhc3MgUmVt
b3RlU2Nyb2xsaW5nVHJlZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTY3JvbGxpbmdUcmVlIHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlbW90ZVNjcm9sbGluZ1RyZWU+IGNyZWF0ZShSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Jik7CiAgICAgdmlydHVhbCB+UmVtb3RlU2Nyb2xs
aW5nVHJlZSgpOwpAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2Nyb2xsaW5n
VHJlZU5vZGVEaWRFbmRTY3JvbGwoKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgUGFzc1JlZlB0
cjxXZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZVR5cGUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCkgb3ZlcnJp
ZGU7CisgICAgUmVmPFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdU
cmVlTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlVHlwZSwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZUlEKSBvdmVycmlkZTsKICAgICAKICAgICBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5
JiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuY3BwCmluZGV4IDgwNTlhZDU1YWFlMzJmOGU1M2E3MDE5YjUyODdlZThiMDk0MGI5MTQuLmE3
OWQxMGE5ZDUwNzcxMDQ1Y2U1ODMwZWE1NzM3NGM4NDE4NTYyN2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZS5jcHAKQEAgLTM2OCwyMiArMzY4LDIyIEBAIFdLQnVuZGxlQmFja0ZvcndhcmRM
aXN0UmVmIFdLQnVuZGxlUGFnZUdldEJhY2tGb3J3YXJkTGlzdChXS0J1bmRsZVBhZ2VSZWYgcGFn
ZVJlCiAKIHZvaWQgV0tCdW5kbGVQYWdlSW5zdGFsbFBhZ2VPdmVybGF5KFdLQnVuZGxlUGFnZVJl
ZiBwYWdlUmVmLCBXS0J1bmRsZVBhZ2VPdmVybGF5UmVmIHBhZ2VPdmVybGF5UmVmKQogewotICAg
IHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmlu
c3RhbGxQYWdlT3ZlcmxheSh0b0ltcGwocGFnZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBX
ZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgdG9JbXBsKHBh
Z2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VP
dmVybGF5KCp0b0ltcGwocGFnZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQ
YWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdl
VW5pbnN0YWxsUGFnZU92ZXJsYXkoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLQnVuZGxlUGFn
ZU92ZXJsYXlSZWYgcGFnZU92ZXJsYXlSZWYpCiB7Ci0gICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWlu
RnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkodG9J
bXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6
OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCkt
PnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCp0b0ltcGwocGFn
ZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1v
ZGU6OkRvTm90RmFkZSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlSW5zdGFsbFBhZ2VPdmVybGF5
V2l0aEFuaW1hdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQYWdlT3Zlcmxh
eVJlZiBwYWdlT3ZlcmxheVJlZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgp
LT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkodG9JbXBsKHBhZ2VP
dmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2Rl
OjpGYWRlKTsKKyAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNv
bnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkoKnRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNv
cmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CiB9CiAK
IHZvaWQgV0tCdW5kbGVQYWdlVW5pbnN0YWxsUGFnZU92ZXJsYXlXaXRoQW5pbWF0aW9uKFdLQnVu
ZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRsZVBhZ2VPdmVybGF5UmVmIHBhZ2VPdmVybGF5UmVm
KQogewotICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KHRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVP
dmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CisgICAgdG9J
bXBsKHBhZ2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0
YWxsUGFnZU92ZXJsYXkoKnRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdl
YkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQ
YWdlU2V0VG9wT3ZlcmhhbmdJbWFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tJbWFnZVJl
ZiBpbWFnZVJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQppbmRleCA4NTA5YWU2NTAyNGQ0ZWU1
OTJlZDEyNWExMjEyMTQwZjA3ZmNlMzFlLi40MWViMDM5NDZmYTlhNGFhZmQwZjhmMTYwOWJjMTNm
Mzc1N2Y5NWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCkBAIC04NjAsNyArODYwLDcgQEAg
SlNWYWx1ZVJlZiBQREZQbHVnaW46OmpzUERGRG9jUHJpbnQoSlNDb250ZXh0UmVmIGN0eCwgSlNP
YmplY3RSZWYgZnVuY3Rpb24sIEpTT2IKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjdHgpOwogCi0gICAgcGFnZS0+Y2hyb21lKCkucHJpbnQoY29y
ZUZyYW1lKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5wcmludCgqY29yZUZyYW1lKTsKIAogICAgIHJl
dHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjdHgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDU2MmE5YTJlMTU3YzQzYzVk
ZTc1YzNmNzI1NjMxMmRmZTRlMTU3YmMuLmQ5YTQyODg2MWJlYzU2NDUzYTdmMGNlMTNkM2JmOTg5
MWYzZDk5MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5jcHAKQEAgLTExMjgsNyArMTEyOCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6Zm9jdXNQ
bHVnaW5FbGVtZW50KCkKICAgICBBU1NFUlQoZnJhbWUoKSk7CiAgICAgCiAgICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBmcmFtZSgpLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigp
LnNldEZvY3VzZWRFbGVtZW50KG1fcGx1Z2luRWxlbWVudC5nZXQoKSwgZnJhbWUoKSk7CisgICAg
ICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG1fcGx1Z2luRWxl
bWVudC5nZXQoKSwgKmZyYW1lKCkpOwogICAgIGVsc2UKICAgICAgICAgZnJhbWUoKS0+ZG9jdW1l
bnQoKS0+c2V0Rm9jdXNlZEVsZW1lbnQobV9wbHVnaW5FbGVtZW50LmdldCgpKTsKIH0KQEAgLTE1
MDgsNyArMTUwOCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0U3RhdHVzYmFyVGV4dChjb25zdCBT
dHJpbmcmIHN0YXR1c2JhclRleHQpCiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAK
LSAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJUZXh0KGZyYW1lKCksIHN0YXR1c2JhclRl
eHQpOworICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQoKmZyYW1lKCksIHN0YXR1
c2JhclRleHQpOwogfQogCiBib29sIFBsdWdpblZpZXc6OmlzQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDQ5ODM0YzNhMzBlYmY5MjE1
ZTlmNTRlOTFkY2IyNGVhMTNmOTRjZWQuLmE4ZGZkZmM5NTMwZWUwNmYzMWM4ZjViMTRmZDY3MmZm
ZTI0YjIzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEwMyw3ICsxMDMsNiBAQCBz
dGF0aWMgZG91YmxlIGFyZWEoV2ViRnJhbWUqIGZyYW1lKQogICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxkb3VibGU+KHNpemUuaGVpZ2h0KCkpICogc2l6ZS53aWR0aCgpOwogfQogCi0KIHN0YXRpYyBX
ZWJGcmFtZSogZmluZExhcmdlc3RGcmFtZUluRnJhbWVTZXQoV2ViUGFnZSYgcGFnZSkKIHsKICAg
ICAvLyBBcHByb3hpbWF0ZSB3aGF0IGEgdXNlciBjb3VsZCBjb25zaWRlciBhIGRlZmF1bHQgdGFy
Z2V0IGZyYW1lIGZvciBhcHBsaWNhdGlvbiBtZW51IG9wZXJhdGlvbnMuCkBAIC0xNzksMjAgKzE3
OCwyMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6dW5mb2N1cygpCiB9CiAKICNpZiBQTEFURk9S
TShDT0NPQSkKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9jdXMoY29uc3QgV2Vi
Q29yZTo6Tm9kZSogbm9kZSkKKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRGb2N1
cyhXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50KQogewotICAgIG1fcGFnZS5lbGVtZW50RGlkRm9j
dXMoY29uc3RfY2FzdDxXZWJDb3JlOjpOb2RlKj4obm9kZSkpOworICAgIG1fcGFnZS5lbGVtZW50
RGlkRm9jdXMoJmVsZW1lbnQpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERp
ZEJsdXIoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpl
bGVtZW50RGlkQmx1cihXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50KQogewotICAgIG1fcGFnZS5l
bGVtZW50RGlkQmx1cihjb25zdF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihub2RlKSk7CisgICAgbV9w
YWdlLmVsZW1lbnREaWRCbHVyKCZlbGVtZW50KTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6
Om1ha2VGaXJzdFJlc3BvbmRlcigpCiB7CiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6TWFrZUZpcnN0UmVzcG9uZGVyKCkpOwotfSAgICAKK30KKwogI2VuZGlmICAgIAog
CiBib29sIFdlYkNocm9tZUNsaWVudDo6Y2FuVGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9uKQpAQCAt
MjI3LDE2ICsyMjgsMTYgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRGcmFtZUNoYW5n
ZWQoRnJhbWUqIGZyYW1lKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Rm9jdXNlZEZyYW1l
Q2hhbmdlZCh3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAwKSwgbV9wYWdlLnBhZ2VJ
RCgpKTsKIH0KIAotUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUqIGZy
YW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJl
cyYgd2luZG93RmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rp
b24pCitQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNv
bnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiB3aW5k
b3dGZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbikKIHsK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpICYm
IGZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkKLSAg
ICAgICAgZnJhbWUtPmRvY3VtZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsKKyAgICBp
ZiAoZnJhbWUuZG9jdW1lbnQoKSAmJiBmcmFtZS5kb2N1bWVudCgpLT53ZWJraXRDdXJyZW50RnVs
bFNjcmVlbkVsZW1lbnQoKSkKKyAgICAgICAgZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2Vs
RnVsbFNjcmVlbigpOwogI2VuZGlmCiAKICAgICBhdXRvJiB3ZWJQcm9jZXNzID0gV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCk7CiAKLSAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJv
bUNvcmVGcmFtZSgqZnJhbWUpOworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpm
cm9tQ29yZUZyYW1lKGZyYW1lKTsKIAogICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRp
b25BY3Rpb25EYXRhOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLm5hdmlnYXRpb25UeXBlID0g
bmF2aWdhdGlvbkFjdGlvbi50eXBlKCk7CkBAIC0yNTAsNyArMjUxLDcgQEAgUGFnZSogV2ViQ2hy
b21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1
ZXN0JiByZXF1ZXMKIAogICAgIHVpbnQ2NF90IG5ld1BhZ2VJRCA9IDA7CiAgICAgV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwotICAgIGlmICghd2ViUHJvY2Vzcy5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVh
dGVOZXdQYWdlKHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZy
YW1lKGZyYW1lKSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgd2luZG93RmVhdHVyZXMsIG5h
dmlnYXRpb25BY3Rpb25EYXRhKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFn
ZTo6UmVwbHkobmV3UGFnZUlELCBwYXJhbWV0ZXJzKSwgbV9wYWdlLnBhZ2VJRCgpKSkKKyAgICBp
ZiAoIXdlYlByb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1
cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCByZXF1ZXN0LnJlc291cmNlUmVxdWVz
dCgpLCB3aW5kb3dGZWF0dXJlcywgbmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpSZXBseShuZXdQYWdlSUQsIHBhcmFtZXRlcnMpLCBt
X3BhZ2UucGFnZUlEKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmICghbmV3
UGFnZUlEKQpAQCAtMzYxLDkgKzM2Miw5IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5SdW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKQogICAgIHJldHVybiBtX3BhZ2UuY2FuUnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsKCk7CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSogZnJhbWUp
Citib29sIFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmIGZyYW1lKQogewotICAgIFdlYkZyYW1lKiB3ZWJGcmFt
ZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZy
YW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogCiAgICAgYm9vbCBzaG91bGRD
bG9zZSA9IGZhbHNlOwogCkBAIC00MDIsMTIgKzQwMywxMiBAQCBzdGF0aWMgYm9vbCBzaG91bGRT
dXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKEZyYW1lJiBmcmFtZSkKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqIGZy
YW1lLCBjb25zdCBTdHJpbmcmIGFsZXJ0VGV4dCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5K
YXZhU2NyaXB0QWxlcnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIGFsZXJ0VGV4dCkKIHsK
LSAgICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncygqZnJhbWUpKQorICAgIGlm
IChzaG91bGRTdXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKGZyYW1lKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZy
YW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZShm
cmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxl
IGNsaWVudC4KQEAgLTQxNSwxNSArNDE2LDE1IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5K
YXZhU2NyaXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGFsZXJ0VGV4dCkKIAog
ICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlzYWJsZXI7CiAKLSAgICBX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3lu
YyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQod2ViRnJhbWUtPmZy
YW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoZnJhbWUpLCBhbGVydFRleHQp
LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OlJlcGx5KCksIG1f
cGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6
SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpOworICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0
eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBhbGVydFRleHQpLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OlJlcGx5KCksIG1fcGFnZS5wYWdlSUQoKSwg
U2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Q
cm9jZXNzV2lsbFN1c3BlbmQpOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNj
cmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCitib29sIFdl
YkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmIGZyYW1lLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgaWYgKHNob3VsZFN1cHByZXNzSmF2YVNjcmlwdERpYWxv
Z3MoKmZyYW1lKSkKKyAgICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncyhmcmFt
ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdl
YkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0g
V2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAK
ICAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCkBAIC00MzIsMTggKzQzMywxOCBAQCBi
b29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhhbmdEZXRl
Y3Rpb25EaXNhYmxlcjsKIAogICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAgaWYgKCFXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3ZWJGcmFtZS0+ZnJh
bWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIG1lc3NhZ2UpLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6UmVwbHkocmVzdWx0
KSwgbV9wYWdlLnBhZ2VJRCgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0
aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCkpCisgICAgaWYgKCFXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3ZWJGcmFtZS0+ZnJhbWVJ
RCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBtZXNzYWdlKSwgTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OlJlcGx5KHJlc3VsdCks
IG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlv
bjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVu
SmF2YVNjcmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQorYm9vbCBXZWJDaHJvbWVD
bGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKIHsKLSAg
ICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncygqZnJhbWUpKQorICAgIGlmIChz
aG91bGRTdXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKGZyYW1lKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUo
KmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFt
ZShmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogICAgIC8vIE5vdGlmeSB0aGUgYnVu
ZGxlIGNsaWVudC4KQEAgLTQ1MSw3ICs0NTIsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVu
SmF2YVNjcmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgYwog
CiAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxlcjsKIAotICAg
IGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdCh3ZWJG
cmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIG1l
c3NhZ2UsIGRlZmF1bHRWYWx1ZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3Jp
cHRQcm9tcHQ6OlJlcGx5KHJlc3VsdCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5p
dHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3Bl
bmQpKQorICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFBy
b21wdCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgm
ZnJhbWUpLCBtZXNzYWdlLCBkZWZhdWx0VmFsdWUpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
dW5KYXZhU2NyaXB0UHJvbXB0OjpSZXBseShyZXN1bHQpLCBtX3BhZ2UucGFnZUlEKCksIFNlY29u
ZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vz
c1dpbGxTdXNwZW5kKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuICFyZXN1
bHQuaXNOdWxsKCk7CkBAIC01NTYsNyArNTU3LDcgQEAgUGxhdGZvcm1QYWdlQ2xpZW50IFdlYkNo
cm9tZUNsaWVudDo6cGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0K
IAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZyYW1l
LCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRl
bnRzU2l6ZUNoYW5nZWQoRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAog
ewogICAgIGlmICghbV9wYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZnJhbWVGbGF0dGVuaW5n
RW5hYmxlZCgpKSB7CiAgICAgICAgIFdlYkZyYW1lKiBsYXJnZXN0RnJhbWUgPSBmaW5kTGFyZ2Vz
dEZyYW1lSW5GcmFtZVNldChtX3BhZ2UpOwpAQCAtNTY2LDE0ICs1NjcsMTQgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRT
aXplJiBzaXplKSBjb24KICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICgmZnJhbWUtPnBhZ2Uo
KS0+bWFpbkZyYW1lKCkgIT0gZnJhbWUpCisgICAgaWYgKCZmcmFtZS5wYWdlKCktPm1haW5GcmFt
ZSgpICE9ICZmcmFtZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wYWdlLnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlQ29udGVudFNpemUoc2l6ZSkpOwogCiAgICAgbV9w
YWdlLmRyYXdpbmdBcmVhKCktPm1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChzaXplKTsKIAot
ICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZnJhbWUtPnZpZXcoKTsKKyAgICBGcmFtZVZpZXcq
IGZyYW1lVmlldyA9IGZyYW1lLnZpZXcoKTsKICAgICBpZiAoZnJhbWVWaWV3ICYmICFmcmFtZVZp
ZXctPmRlbGVnYXRlc1Njcm9sbGluZygpKSAgewogICAgICAgICBib29sIGhhc0hvcml6b250YWxT
Y3JvbGxiYXIgPSBmcmFtZVZpZXctPmhvcml6b250YWxTY3JvbGxiYXIoKTsKICAgICAgICAgYm9v
bCBoYXNWZXJ0aWNhbFNjcm9sbGJhciA9IGZyYW1lVmlldy0+dmVydGljYWxTY3JvbGxiYXIoKTsK
QEAgLTYxMSwyMSArNjEyLDIxIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVbmF2YWls
YWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihSZW5kZXJFbWJlZGRlZE9iamVjCiAgICAgcmV0dXJu
IGZhbHNlOwogfQogICAgIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1Z2lu
QnV0dG9uQ2xpY2tlZChFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1
Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVs
ZW1lbnQmIGVsZW1lbnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0
eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QKIHsKICNpZiBFTkFCTEUo
TkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICBBU1NFUlQoZWxlbWVudC0+aGFzVGFnTmFtZShvYmpl
Y3RUYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoZW1iZWRUYWcpIHx8IGVsZW1lbnQtPmhhc1Rh
Z05hbWUoYXBwbGV0VGFnKSk7CisgICAgQVNTRVJUKGVsZW1lbnQuaGFzVGFnTmFtZShvYmplY3RU
YWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1l
KGFwcGxldFRhZykpOwogICAgIEFTU0VSVChwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiA9PSBS
ZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luTWlzc2luZyB8fCBwbHVnaW5VbmF2YWlsYWJpbGl0
eVJlYXNvbiA9PSBSZW5kZXJFbWJlZGRlZE9iamVjdDo6SW5zZWN1cmVQbHVnaW5WZXJzaW9uIHx8
IHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKTsKIAotICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1l
bnQqIHBsdWdpbkVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Kj4o
ZWxlbWVudCk7CisgICAgYXV0byYgcGx1Z2luRWxlbWVudCA9IGRvd25jYXN0PEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQ+KGVsZW1lbnQpOwogCi0gICAgU3RyaW5nIGZyYW1lVVJMU3RyaW5nID0gcGx1
Z2luRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigp
LT5yZXNwb25zZVVSTCgpLnN0cmluZygpOworICAgIFN0cmluZyBmcmFtZVVSTFN0cmluZyA9IHBs
dWdpbkVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigp
LT5yZXNwb25zZVVSTCgpLnN0cmluZygpOwogICAgIFN0cmluZyBwYWdlVVJMU3RyaW5nID0gbV9w
YWdlLm1haW5GcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZVVSTCgp
LnN0cmluZygpOwotICAgIFN0cmluZyBwbHVnaW5VUkxTdHJpbmcgPSBwbHVnaW5FbGVtZW50LT5k
b2N1bWVudCgpLmNvbXBsZXRlVVJMKHBsdWdpbkVsZW1lbnQtPnVybCgpKS5zdHJpbmcoKTsKLSAg
ICBVUkwgcGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkwgPSBlbGVtZW50LT5kb2N1bWVudCgpLmNvbXBs
ZXRlVVJMKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhwbHVnaW5FbGVtZW50LT5n
ZXRBdHRyaWJ1dGUocGx1Z2luc3BhZ2VBdHRyKSkpOworICAgIFN0cmluZyBwbHVnaW5VUkxTdHJp
bmcgPSBwbHVnaW5FbGVtZW50LmRvY3VtZW50KCkuY29tcGxldGVVUkwocGx1Z2luRWxlbWVudC51
cmwoKSkuc3RyaW5nKCk7CisgICAgVVJMIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMID0gcGx1Z2lu
RWxlbWVudC5kb2N1bWVudCgpLmNvbXBsZXRlVVJMKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRN
TFNwYWNlcyhwbHVnaW5FbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24ocGx1
Z2luc3BhZ2VBdHRyKSkpOwogICAgIGlmICghcGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkwucHJvdG9j
b2xJc0luSFRUUEZhbWlseSgpKQogICAgICAgICBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTCA9IFVS
TCgpOwotICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlVuYXZhaWxhYmxl
UGx1Z2luQnV0dG9uQ2xpY2tlZChwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgcGx1Z2luRWxl
bWVudC0+c2VydmljZVR5cGUoKSwgcGx1Z2luVVJMU3RyaW5nLCBwbHVnaW5zcGFnZUF0dHJpYnV0
ZVVSTC5zdHJpbmcoKSwgZnJhbWVVUkxTdHJpbmcsIHBhZ2VVUkxTdHJpbmcpKTsKKyAgICBtX3Bh
Z2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNs
aWNrZWQocGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIHBsdWdpbkVsZW1lbnQuc2VydmljZVR5
cGUoKSwgcGx1Z2luVVJMU3RyaW5nLCBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTC5zdHJpbmcoKSwg
ZnJhbWVVUkxTdHJpbmcsIHBhZ2VVUkxTdHJpbmcpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFN
KGVsZW1lbnQpOwogICAgIFVOVVNFRF9QQVJBTShwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbik7
CkBAIC02NjAsOSArNjYxLDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29u
c3QgU3RyaW5nJiB0b29sVGlwLCBUZXh0RGlyZWN0aW9uKQogICAgIG1fcGFnZS5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlNldFRvb2xUaXAobV9jYWNoZWRUb29sVGlwKSk7CiB9CiAKLXZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSogZnJhbWUpCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6cHJpbnQoRnJhbWUmIGZyYW1lKQogewotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdl
YkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0g
V2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAK
ICNpZiBQTEFURk9STShHVEspICYmIEhBVkUoR1RLX1VOSVhfUFJJTlRJTkcpCkBAIC02ODgsMTIg
KzY4OSwxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1lKQogICAg
IG1fcGFnZS5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQcmludEZyYW1lKHdlYkZy
YW1lLT5mcmFtZUlEKCkpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQcmludEZyYW1lOjpSZXBs
eSgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0
Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNl
ZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFt
ZSwgRGF0YWJhc2VEZXRhaWxzIGRldGFpbHMpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVk
ZWREYXRhYmFzZVF1b3RhKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUs
IERhdGFiYXNlRGV0YWlscyBkZXRhaWxzKQogewotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdl
YkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0g
V2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAg
ICAgCi0gICAgYXV0byYgb3JpZ2luID0gZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCk7CisgICAgYXV0byYgb3JpZ2luID0gZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KTsKICAgICBhdXRvIG9yaWdpbkRhdGEgPSBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0
eU9yaWdpbihvcmlnaW4pOwogICAgIGF1dG8mIHRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnNp
bmdsZXRvbigpOwogICAgIGF1dG8gY3VycmVudFF1b3RhID0gdHJhY2tlci5xdW90YShvcmlnaW5E
YXRhKTsKQEAgLTcxNiw5ICs3MTcsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZE1h
eEFwcENhY2hlU2l6ZShpbnQ2NF90KQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3Vy
aXR5T3JpZ2luKiBvcmlnaW4sIGludDY0X3QgdG90YWxCeXRlc05lZWRlZCkKK3ZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3Jp
Z2luJiBvcmlnaW4sIGludDY0X3QgdG90YWxCeXRlc05lZWRlZCkKIHsKLSAgICBSZWZQdHI8QVBJ
OjpTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpj
cmVhdGVGcm9tU3RyaW5nKG9yaWdpbi0+dG9TdHJpbmcoKSk7CisgICAgUmVmUHRyPEFQSTo6U2Vj
dXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRl
RnJvbVN0cmluZyhvcmlnaW4udG9TdHJpbmcoKSk7CiAgICAgaWYgKG1fcGFnZS5pbmplY3RlZEJ1
bmRsZVVJQ2xpZW50KCkuZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoJm1fcGFn
ZSwgc2VjdXJpdHlPcmlnaW4uZ2V0KCksIHRvdGFsQnl0ZXNOZWVkZWQpKQogICAgICAgICByZXR1
cm47CiAKQEAgLTcyOSwxNyArNzMwLDE5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVk
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sCiAKICAg
ICB1aW50NjRfdCBuZXdRdW90YSA9IDA7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoCi0gICAgICAgIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKm9yaWdpbikuZGF0YWJhc2VJZGVu
dGlmaWVyKCksIGN1cnJlbnRRdW90YSwgdG90YWxCeXRlc05lZWRlZCksCisgICAgICAgIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3JpZ2luKS5kYXRh
YmFzZUlkZW50aWZpZXIoKSwgY3VycmVudFF1b3RhLCB0b3RhbEJ5dGVzTmVlZGVkKSwKICAgICAg
ICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YTo6UmVwbHkobmV3UXVvdGEpLCBtX3BhZ2UucGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5
KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5k
KTsKIAotICAgIGNhY2hlU3RvcmFnZS5zdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbihvcmlnaW4s
IG5ld1F1b3RhKTsKKyAgICBjYWNoZVN0b3JhZ2Uuc3RvcmVVcGRhdGVkUXVvdGFGb3JPcmlnaW4o
Jm9yaWdpbiwgbmV3UXVvdGEpOwogfQogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQor
CiB2b2lkIFdlYkNocm9tZUNsaWVudDo6YW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKQogewogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CisKICNlbmRpZgogCiBib29sIFdlYkNocm9tZUNsaWVudDo6
c2hvdWxkUmVwbGFjZVdpdGhHZW5lcmF0ZWRGaWxlRm9yVXBsb2FkKGNvbnN0IFN0cmluZyYgcGF0
aCwgU3RyaW5nJiBnZW5lcmF0ZWRGaWxlbmFtZSkKQEAgLTc1NCwxMCArNzU3LDEyIEBAIFN0cmlu
ZyBXZWJDaHJvbWVDbGllbnQ6OmdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNvbnN0IFN0cmluZyYg
cGF0aCkKIH0KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotc3RkOjp1bmlxdWVfcHRy
PENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JD
aG9vc2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCisKK3N0ZDo6
dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9v
c2VyKENvbG9yQ2hvb3NlckNsaWVudCYgY2xpZW50LCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9y
KQogewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvbG9yQ2hvb3Nlcj4oJm1fcGFn
ZSwgY2xpZW50LCBpbml0aWFsQ29sb3IpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdl
YkNvbG9yQ2hvb3Nlcj4oJm1fcGFnZSwgJmNsaWVudCwgaW5pdGlhbENvbG9yKTsKIH0KKwogI2Vu
ZGlmCiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUmIGZyYW1lLCBG
aWxlQ2hvb3NlciYgZmlsZUNob29zZXIpCkBAIC04MzIsMTQgKzgzNywxNCBAQCBib29sIFdlYkNo
cm9tZUNsaWVudDo6aGFzT3BlbmVkUG9wdXAoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1
cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8V2Vi
Q29yZTo6UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3Jl
OjpQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKLSAgICByZXR1cm4gV2ViUG9wdXBN
ZW51OjpjcmVhdGUoJm1fcGFnZSwgY2xpZW50KTsKKyAgICByZXR1cm4gV2ViUG9wdXBNZW51Ojpj
cmVhdGUoJm1fcGFnZSwgJmNsaWVudCk7CiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVw
TWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9w
dXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdlYlNlYXJjaFBvcHVw
TWVudTo6Y3JlYXRlKCZtX3BhZ2UsIGNsaWVudCk7CisgICAgcmV0dXJuIFdlYlNlYXJjaFBvcHVw
TWVudTo6Y3JlYXRlKCZtX3BhZ2UsICZjbGllbnQpOwogfQogCiBHcmFwaGljc0xheWVyRmFjdG9y
eSogV2ViQ2hyb21lQ2xpZW50OjpncmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0CkBAIC04NTgs
NyArODYzLDcgQEAgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gV2ViQ2hy
b21lQ2xpZW50OjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbmkKIAogI2VuZGlmCiAKLXZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5
ZXIqIGxheWVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVy
KEZyYW1lJiwgR3JhcGhpY3NMYXllciogbGF5ZXIpCiB7CiAgICAgaWYgKGxheWVyKQogICAgICAg
ICBtX3BhZ2UuZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllcik7CkBAIC04NjYs
MTAgKzg3MSwxMCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5
ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKiBsYXllcikKICAgICAgICAgbV9wYWdlLmV4aXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0
YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NMYXllciog
Z3JhcGhpY3NMYXllcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdy
YXBoaWNzTGF5ZXIoRnJhbWUmIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQog
ewogICAgIGlmIChhdXRvIGRyYXdpbmdBcmVhID0gbV9wYWdlLmRyYXdpbmdBcmVhKCkpCi0gICAg
ICAgIGRyYXdpbmdBcmVhLT5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoZnJhbWUsIGdy
YXBoaWNzTGF5ZXIpOworICAgICAgICBkcmF3aW5nQXJlYS0+YXR0YWNoVmlld092ZXJsYXlHcmFw
aGljc0xheWVyKCZmcmFtZSwgZ3JhcGhpY3NMYXllcik7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkKQEAgLTg5OCw5ICs5
MDMsOSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNv
bnN0CiAKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogCi1QYXNzUmVmUHRyPFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
KFBhZ2UqIHBhZ2UpIGNvbnN0CitSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSYgcGFnZSkgY29uc3QKIHsK
LSAgICBBU1NFUlQobV9wYWdlLmNvcmVQYWdlKCkgPT0gcGFnZSk7CisgICAgQVNTRVJUX1VOVVNF
RChwYWdlLCBtX3BhZ2UuY29yZVBhZ2UoKSA9PSAmcGFnZSk7CiAgICAgaWYgKG1fcGFnZS5kcmF3
aW5nQXJlYSgpLT50eXBlKCkgIT0gRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3I6OmNyZWF0ZSgmbV9wYWdlKTsKQEAgLTk0OSwxOSArOTU0LDE5IEBAIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihXZWJDb3Jl
OjpIVE1MVmlkCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKLWJvb2wgV2ViQ2hyb21l
Q2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1l
bnQqLCBib29sIHdpdGhLZXlib2FyZCkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1
bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmLCBib29sIHdpdGhLZXli
b2FyZCkKIHsKICAgICByZXR1cm4gbV9wYWdlLmZ1bGxTY3JlZW5NYW5hZ2VyKCktPnN1cHBvcnRz
RnVsbFNjcmVlbih3aXRoS2V5Ym9hcmQpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50
ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50KQordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVu
dCYgZWxlbWVudCkKIHsKLSAgICBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+ZW50ZXJGdWxs
U2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsKKyAgICBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIo
KS0+ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCgmZWxlbWVudCk7CiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCogZWxl
bWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2Vi
Q29yZTo6RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIo
KS0+ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOworICAgIG1fcGFnZS5mdWxsU2Ny
ZWVuTWFuYWdlcigpLT5leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoJmVsZW1lbnQpOwogfQogCiAj
ZW5kaWYKQEAgLTEwNDksMjkgKzEwNTQsMjkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpc2Fi
bGVTdWRkZW5UZXJtaW5hdGlvbigpCiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlByb2Nl
c3NQcm94eTo6RGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkpOwogfQogCi12b2lkIFdlYkNocm9t
ZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXllciogaGVhZGVyUGFyZW50KQor
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5ZXImIGhl
YWRlclBhcmVudCkKIHsKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgaWYgKFBhZ2VC
YW5uZXIqIGJhbm5lciA9IG1fcGFnZS5oZWFkZXJQYWdlQmFubmVyKCkpCi0gICAgICAgIGJhbm5l
ci0+ZGlkQWRkUGFyZW50TGF5ZXIoaGVhZGVyUGFyZW50KTsKKyAgICAgICAgYmFubmVyLT5kaWRB
ZGRQYXJlbnRMYXllcigmaGVhZGVyUGFyZW50KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGhl
YWRlclBhcmVudCk7CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEZv
b3RlckxheWVyKEdyYXBoaWNzTGF5ZXIqIGZvb3RlclBhcmVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpkaWRBZGRGb290ZXJMYXllcihHcmFwaGljc0xheWVyJiBmb290ZXJQYXJlbnQpCiB7CiAj
aWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIGlmIChQYWdlQmFubmVyKiBiYW5uZXIgPSBt
X3BhZ2UuZm9vdGVyUGFnZUJhbm5lcigpKQotICAgICAgICBiYW5uZXItPmRpZEFkZFBhcmVudExh
eWVyKGZvb3RlclBhcmVudCk7CisgICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50TGF5ZXIoJmZv
b3RlclBhcmVudCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShmb290ZXJQYXJlbnQpOwogI2Vu
ZGlmCiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JG
cmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3KiBmcmFtZVZpZXcpIGNvbnN0Citib29sIFdlYkNocm9t
ZUNsaWVudDo6c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmll
dyYgZnJhbWVWaWV3KSBjb25zdAogewotICAgIHJldHVybiBtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+
c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7CisgICAgcmV0dXJu
IG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5zaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXco
JmZyYW1lVmlldyk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojppc1BsYXlpbmdNZWRpYURp
ZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUsIHVp
bnQ2NF90IHNvdXJjZUVsZW1lbnRJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDVjOWQ3NzNh
NzJjMDYwOGMwMjA2OGFjMWQ5ZGRmNDVkNGEwYmQ5YzUuLjBhMDgwMDRmZmVmZWVjYmI0MTM0NDAz
NmYwMmZkYTk0MTc0ZGFjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtNjIsNyArNjIsNyBA
QCBwcml2YXRlOgogICAgIC8vIEZyYW1lIHdhbnRzIHRvIGNyZWF0ZSB0aGUgbmV3IFBhZ2UuICBB
bHNvLCB0aGUgbmV3bHkgY3JlYXRlZCB3aW5kb3cKICAgICAvLyBzaG91bGQgbm90IGJlIHNob3du
IHRvIHRoZSB1c2VyIHVudGlsIHRoZSBDaHJvbWVDbGllbnQgb2YgdGhlIG5ld2x5CiAgICAgLy8g
Y3JlYXRlZCBQYWdlIGhhcyBpdHMgc2hvdyBtZXRob2QgY2FsbGVkLgotICAgIFdlYkNvcmU6OlBh
Z2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9h
ZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6
Ok5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5k
b3coV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29u
c3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0
aW9uJikgZmluYWw7CiAgICAgdm9pZCBzaG93KCkgZmluYWw7CiAgICAgCiAgICAgYm9vbCBjYW5S
dW5Nb2RhbCgpIGZpbmFsOwpAQCAtODcsMTMgKzg3LDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBh
ZGRNZXNzYWdlVG9Db25zb2xlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWws
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29s
dW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSBmaW5hbDsKICAgICAKICAgICBib29s
IGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpIGZpbmFsOwotICAgIGJvb2wgcnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJh
bWUqKSBmaW5hbDsKKyAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAgICAgCiAgICAgdm9pZCBj
bG9zZVdpbmRvd1Nvb24oKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVy
dChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFN0cmluZyYpIGZpbmFsOwotICAgIGJvb2wgcnVuSmF2
YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKLSAg
ICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgZmlu
YWw7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBT
dHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZy
YW1lJiwgY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0
KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
ZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpIGZpbmFsOwogICAgIHZvaWQgc2V0U3RhdHVzYmFy
VGV4dChjb25zdCBTdHJpbmcmKSBmaW5hbDsKIAogICAgIFdlYkNvcmU6OktleWJvYXJkVUlNb2Rl
IGtleWJvYXJkVUlNb2RlKCkgZmluYWw7CkBAIC0xMTcsMjMgKzExNywyMyBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29u
c3QgZmluYWw7Ci0gICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKiwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29udGVudHNT
aXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25z
dCBmaW5hbDsKICAgICB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JikgY29uc3QgZmluYWw7IC8vIEN1cnJlbnRseSBvbmx5IE1hYyBoYXMgYSBub24gZW1wdHkg
aW1wbGVtZW50YXRpb24uCiAKICAgICBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2Fn
ZUJlQnV0dG9uKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVudCosIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0
OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7CisgICAgdm9pZCB1bmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVudCYsIFdlYkNvcmU6OlJl
bmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmlu
YWw7CiAKICAgICB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgZmluYWw7CiAg
ICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVz
dWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgZmluYWw7CiAKICAgICB2b2lkIHNldFRvb2xU
aXAoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7CiAgICAgCi0g
ICAgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopIGZpbmFsOworICAgIHZvaWQgcHJpbnQoV2Vi
Q29yZTo6RnJhbWUmKSBmaW5hbDsKIAotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdl
YkNvcmU6OkZyYW1lKiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIFdlYkNvcmU6OkRhdGFi
YXNlRGV0YWlscykgZmluYWw7CisgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29y
ZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VE
ZXRhaWxzKSBmaW5hbDsKIAogICAgIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90
IHNwYWNlTmVlZGVkKSBmaW5hbDsKLSAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHNwYWNlTmVlZGVkKSBm
aW5hbDsKKyAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90IHNwYWNlTmVlZGVkKSBmaW5hbDsKIAogI2lmIEVO
QUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICB2b2lkIGFubm90YXRlZFJlZ2lvbnNDaGFuZ2Vk
KCkgZmluYWw7CkBAIC0xNDMsNyArMTQzLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgZ2VuZXJh
dGVSZXBsYWNlbWVudEZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKSBmaW5hbDsKICAgICAKICNpZiBF
TkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29s
b3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50
KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9v
c2VyQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKICNlbmRpZgogCiAjaWYg
RU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCkBAIC0xNTIsMTAgKzE1MiwxMCBAQCBwcml2YXRlOgog
CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoYm9v
bCkgZmluYWw7Ci0gICAgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoV2ViQ29yZTo6
RnJhbWUqLCBib29sKSBmaW5hbDsKLSAgICB2b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShXZWJD
b3JlOjpGcmFtZSopIGZpbmFsOwotICAgIHZvaWQgY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJz
KFdlYkNvcmU6OkZyYW1lKikgZmluYWw7Ci0gICAgdm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlv
bkJ5U2Nyb2xsaW5nRnJhbWUoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKKyAgICB2b2lkIHNldE5l
ZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpGcmFtZSYsIGJvb2wpIGZpbmFsOworICAg
IHZvaWQgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CisgICAg
dm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsK
KyAgICB2b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShXZWJDb3Jl
OjpGcmFtZSYpIGZpbmFsOwogICAgIGJvb2wgaXNTdG9wcGluZygpIGZpbmFsOwogCiAgICAgdm9p
ZCBkaWRMYXlvdXQoTGF5b3V0VHlwZSA9IE5vcm1hbExheW91dCkgZmluYWw7CkBAIC0yMDMsMTIg
KzIwMywxMiBAQCBwcml2YXRlOgogICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25J
c05hdHVyYWwoKSBmaW5hbDsKICAgICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVu
dVdyaXRpbmdEaXJlY3Rpb24oKSBmaW5hbDsKICAgICBib29sIGhhc09wZW5lZFBvcHVwKCkgY29u
c3QgZmluYWw7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51
KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IGZpbmFsOwotICAgIFJlZlB0cjxXZWJD
b3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1
cE1lbnVDbGllbnQqKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51
PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7
CisgICAgUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBN
ZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYpIGNvbnN0IGZpbmFsOwogCiAgICAgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3QgZmlu
YWw7Ci0gICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKLSAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5
R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBm
aW5hbDsKKyAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOworICAgIHZvaWQgYXR0YWNoVmlld092ZXJs
YXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
IGZpbmFsOwogICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigp
IGZpbmFsOwogICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBmaW5hbDsK
ICAgICBib29sIGFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKFdlYkNvcmU6OkxheWVyRmx1c2hU
aHJvdHRsZVN0YXRlOjpGbGFncykgZmluYWw7CkBAIC0yMzMsMTEgKzIzMywxMSBAQCBwcml2YXRl
OgogICAgIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IGZpbmFsOwogCiAjaWYg
RU5BQkxFKEFTWU5DX1NDUk9MTElORykKLSAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OlNjcm9sbGlu
Z0Nvb3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihXZWJDb3JlOjpQYWdlKikg
Y29uc3QgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBj
cmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihXZWJDb3JlOjpQYWdlJikgY29uc3QgZmluYWw7CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2b2lkIGVsZW1lbnREaWRSZWZvY3VzKGNv
bnN0IFdlYkNvcmU6Ok5vZGUqKSBmaW5hbDsKKyAgICB2b2lkIGVsZW1lbnREaWRSZWZvY3VzKGNv
bnN0IFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgKFBMQVRGT1JNKElP
UykgJiYgSEFWRShBVktJVCkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkpCkBAIC0yNTMsMTQgKzI1MywxNCBAQCBwcml2YXRlOgogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5G
b3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqLCBib29sIHdpdGhLZXlib2FyZCkgZmlu
YWw7Ci0gICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQq
KSBmaW5hbDsKLSAgICB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVt
ZW50KikgZmluYWw7CisgICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0
IFdlYkNvcmU6OkVsZW1lbnQmLCBib29sIHdpdGhLZXlib2FyZCkgZmluYWw7CisgICAgdm9pZCBl
bnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKKyAgICB2
b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKGNv
bnN0IFdlYkNvcmU6Ok5vZGUqKSBmaW5hbDsKLSAgICB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0
IFdlYkNvcmU6Ok5vZGUqKSBmaW5hbDsKKyAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhXZWJDb3Jl
OjpFbGVtZW50JikgZmluYWw7CisgICAgdm9pZCBlbGVtZW50RGlkQmx1cihXZWJDb3JlOjpFbGVt
ZW50JikgZmluYWw7CiAKICAgICB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcigpIGZpbmFsOwogI2Vu
ZGlmCkBAIC0yOTEsMTAgKzI5MSwxMCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBwbHVnSW5FeHRy
YVN0eWxlU2hlZXQoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgcGx1Z0luRXh0cmFTY3JpcHQo
KSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgZGlkQWRkSGVhZGVyTGF5ZXIoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopIGZpbmFsOwotICAgIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopIGZpbmFsOworICAgIHZvaWQgZGlkQWRkSGVhZGVyTGF5ZXIoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciYpIGZpbmFsOworICAgIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciYpIGZpbmFsOwogCi0gICAgYm9vbCBzaG91bGRVc2VUaWxlZEJh
Y2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3KikgY29uc3QgZmluYWw7
CisgICAgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29y
ZTo6RnJhbWVWaWV3JikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlk
Q2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncywgdWludDY0X3Qp
IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDMyYWY1OWYz
ZmJkNDc0MDlmNDI4ODYzNjlmYTA4YmVkYWNiNWQ0NjguLjQzMzk4ZmM5M2MyM2QxYjEzOGU3YTQ1
ZDJhMTllYThkMzNkM2FkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBA
IC02NDAsMTMgKzY0MCwxMyBAQCBGcmFtZSogV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNo
Q3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aQogewogICAgIFdlYlBh
Z2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCF3ZWJQYWdlKQotICAgICAg
ICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBKdXN0IGNhbGwg
dGhyb3VnaCB0byB0aGUgY2hyb21lIGNsaWVudC4KICAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVl
c3QobV9mcmFtZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIG5h
dmlnYXRpb25BY3Rpb24ucmVzb3VyY2VSZXF1ZXN0KCksIExvY2tIaXN0b3J5OjpObywgTG9ja0Jh
Y2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0lu
dmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBuYXZpZ2F0aW9uQWN0
aW9uLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSk7Ci0gICAgUGFnZSogbmV3UGFnZSA9
IHdlYlBhZ2UtPmNvcmVQYWdlKCktPmNocm9tZSgpLmNyZWF0ZVdpbmRvdyhtX2ZyYW1lLT5jb3Jl
RnJhbWUoKSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgbmF2aWdhdGlvbkFjdGlvbik7Cisg
ICAgUGFnZSogbmV3UGFnZSA9IHdlYlBhZ2UtPmNvcmVQYWdlKCktPmNocm9tZSgpLmNyZWF0ZVdp
bmRvdygqbV9mcmFtZS0+Y29yZUZyYW1lKCksIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIG5h
dmlnYXRpb25BY3Rpb24pOwogICAgIGlmICghbmV3UGFnZSkKLSAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIAogICAgIHJldHVybiAmbmV3UGFnZS0+bWFpbkZy
YW1lKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKaW5kZXggOTY4OTI5ZmRhMzQ3
OWFhZDJiZTRhMTBhMGI0NTk2YWUxNzU1NmQ1MC4uNDFiMzRmMDBhOGM2ZmQyMDNjNTgzNDIwM2U4
MjgwYTVjNDQ1NmY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcApAQCAtNzMsNyAr
NzMsNyBAQCBXZWJJbnNwZWN0b3JDbGllbnQ6On5XZWJJbnNwZWN0b3JDbGllbnQoKQogICAgIH0K
IAogICAgIGlmIChtX3BhaW50UmVjdE92ZXJsYXkgJiYgbV9wYWdlLT5tYWluRnJhbWUoKSkKLSAg
ICAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0
YWxsUGFnZU92ZXJsYXkobV9wYWludFJlY3RPdmVybGF5LmdldCgpLCBQYWdlT3ZlcmxheTo6RmFk
ZU1vZGU6OkZhZGUpOworICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNv
bnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqbV9wYWludFJlY3RPdmVybGF5LCBQYWdl
T3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6
aW5zcGVjdGVkUGFnZURlc3Ryb3llZCgpCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBXZWJJbnNw
ZWN0b3JDbGllbnQ6OmhpZGVIaWdobGlnaHQoKQogewogI2lmICFQTEFURk9STShJT1MpCiAgICAg
aWYgKG1faGlnaGxpZ2h0T3ZlcmxheSAmJiBtX3BhZ2UtPm1haW5GcmFtZSgpKQotICAgICAgICBt
X3BhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdl
T3ZlcmxheShtX2hpZ2hsaWdodE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7
CisgICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVu
aW5zdGFsbFBhZ2VPdmVybGF5KCptX2hpZ2hsaWdodE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRl
TW9kZTo6RmFkZSk7CiAjZWxzZQogICAgIG1fcGFnZS0+aGlkZUluc3BlY3RvckhpZ2hsaWdodCgp
OwogI2VuZGlmCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OnNo
b3dQYWludFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGlmICghbV9wYWludFJl
Y3RPdmVybGF5KSB7CiAgICAgICAgIG1fcGFpbnRSZWN0T3ZlcmxheSA9IFBhZ2VPdmVybGF5Ojpj
cmVhdGUoKnRoaXMsIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZTo6RG9jdW1lbnQpOwotICAgICAg
ICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFn
ZU92ZXJsYXkobV9wYWludFJlY3RPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90
RmFkZSk7CisgICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxl
cigpLmluc3RhbGxQYWdlT3ZlcmxheSgqbV9wYWludFJlY3RPdmVybGF5LCBQYWdlT3ZlcmxheTo6
RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAgfQogCiAgICAgaWYgKCFtX3BhaW50SW5kaWNhdG9y
TGF5ZXJDbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRmluZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0ZpbmRDb250cm9sbGVyLmNwcAppbmRleCAxZTBjZWY0NjUxYjkzYmY4MGZiNzA1NjY1YzZmNjE1
ZmVhYmMyYTg5Li4zMzAzMmMxNzJiMWIyNDM4ZGFmZDYwYzM0NjQ2NmVhNDUwNWU0YTdiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxl
ci5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCB2b2lkIEZpbmRDb250cm9sbGVyOjp1cGRhdGVGaW5k
VUlBZnRlclBhZ2VTY3JvbGwoYm9vbCBmb3VuZCwgY29uc3QgU3RyaW5nJiBzdHJpbgogCiAgICAg
aWYgKCFzaG91bGRTaG93T3ZlcmxheSkgewogICAgICAgICBpZiAobV9maW5kUGFnZU92ZXJsYXkp
Ci0gICAgICAgICAgICBtX3dlYlBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xs
ZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheShtX2ZpbmRQYWdlT3ZlcmxheSwgUGFnZU92ZXJsYXk6
OkZhZGVNb2RlOjpGYWRlKTsKKyAgICAgICAgICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBh
Z2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX2ZpbmRQYWdlT3Zl
cmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKICAgICB9IGVsc2UgewogICAgICAg
ICBpZiAoIW1fZmluZFBhZ2VPdmVybGF5KSB7CiAgICAgICAgICAgICBhdXRvIGZpbmRQYWdlT3Zl
cmxheSA9IFBhZ2VPdmVybGF5OjpjcmVhdGUoKnRoaXMsIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlw
ZTo6RG9jdW1lbnQpOwpAQCAtMzEyLDcgKzMxMiw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6Omhp
ZGVGaW5kVUkoKQogewogICAgIG1fZmluZE1hdGNoZXMuY2xlYXIoKTsKICAgICBpZiAobV9maW5k
UGFnZU92ZXJsYXkpCi0gICAgICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5
Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fZmluZFBhZ2VPdmVybGF5LCBQYWdl
T3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOworICAgICAgICBtX3dlYlBhZ2UtPm1haW5GcmFtZSgp
LT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqbV9maW5kUGFn
ZU92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CiAKICAgICBQbHVnaW5WaWV3
KiBwbHVnaW5WaWV3ID0gcGx1Z2luVmlld0ZvckZyYW1lKG1fd2ViUGFnZS0+bWFpbkZyYW1lKCkp
OwogICAgIApAQCAtMzI1LDYgKzMyNSw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmhpZGVGaW5k
VUkoKQogfQogCiAjaWYgIVBMQVRGT1JNKElPUykKKwogYm9vbCBGaW5kQ29udHJvbGxlcjo6dXBk
YXRlRmluZEluZGljYXRvcihGcmFtZSYgc2VsZWN0ZWRGcmFtZSwgYm9vbCBpc1Nob3dpbmdPdmVy
bGF5LCBib29sIHNob3VsZEFuaW1hdGUpCiB7CiAgICAgUmVmUHRyPFRleHRJbmRpY2F0b3I+IGlu
ZGljYXRvciA9IFRleHRJbmRpY2F0b3I6OmNyZWF0ZVdpdGhTZWxlY3Rpb25JbkZyYW1lKHNlbGVj
dGVkRnJhbWUsIFRleHRJbmRpY2F0b3JPcHRpb25JbmNsdWRlTWFyZ2luSWZSYW5nZU1hdGNoZXNT
ZWxlY3Rpb24sIHNob3VsZEFuaW1hdGUgPyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNp
dGlvbjo6Qm91bmNlIDogVGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246Ok5vbmUp
OwpAQCAtMzY2LDYgKzM2Nyw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmRpZEZhaWxUb0ZpbmRT
dHJpbmcoKQogdm9pZCBGaW5kQ29udHJvbGxlcjo6ZGlkSGlkZUZpbmRJbmRpY2F0b3IoKQogewog
fQorCiAjZW5kaWYKIAogdm9pZCBGaW5kQ29udHJvbGxlcjo6c2hvd0ZpbmRJbmRpY2F0b3JJblNl
bGVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1l
LmNwcAppbmRleCAzNjI5ZDRhZTU4YzdkNDY4NjJlMTVhNzVmOTg0YmRjZDVlZWI4ZjQ2Li45OTlm
ZTI1YzEwMGEzMTM3NmIwZGY3NWE0MzA3YzMxY2E3ZmU0ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBz
dGF0aWMgdWludDY0X3QgZ2VuZXJhdGVMaXN0ZW5lcklEKCkKICAgICByZXR1cm4gdW5pcXVlTGlz
dGVuZXJJRCsrOwogfQogCi1QYXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlV2l0
aENvcmVNYWluRnJhbWUoV2ViUGFnZSogcGFnZSwgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSkK
K1JlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2Uq
IHBhZ2UsIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUpCiB7CiAgICAgYXV0byBmcmFtZSA9IGNy
ZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KHN0YXRpY19jYXN0PFdl
YkZyYW1lTG9hZGVyQ2xpZW50Kj4oJmNvcmVGcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkpKSk7CiAg
ICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDcmVhdGVNYWluRnJhbWUo
ZnJhbWUtPmZyYW1lSUQoKSksIHBhZ2UtPnBhZ2VJRCgpLCBJUEM6OlNlbmRPcHRpb246OkRpc3Bh
dGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CkBAIC0xMjAsMzAgKzEyMCwz
MiBAQCBQYXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlV2l0aENvcmVNYWluRnJh
bWUoV2ViUGFnZSogcGFnZSwgV2ViQ29yZTo6RgogICAgIHJldHVybiBmcmFtZTsKIH0KIAotUGFz
c1JlZlB0cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqIHBhZ2Us
IGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxl
bWVudCkKK1JlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqIHBh
Z2UsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVy
RWxlbWVudCkKIHsKICAgICBhdXRvIGZyYW1lID0gY3JlYXRlKHN0ZDo6bWFrZV91bmlxdWU8V2Vi
RnJhbWVMb2FkZXJDbGllbnQ+KCkpOwogICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RGlkQ3JlYXRlU3ViZnJhbWUoZnJhbWUtPmZyYW1lSUQoKSksIHBhZ2UtPnBhZ2VJRCgp
LCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseSk7CiAKLSAgICBSZWY8V2ViQ29yZTo6RnJhbWU+IGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVh
dGUocGFnZS0+Y29yZVBhZ2UoKSwgb3duZXJFbGVtZW50LCBmcmFtZS0+bV9mcmFtZUxvYWRlckNs
aWVudC5nZXQoKSk7CisgICAgYXV0byBjb3JlRnJhbWUgPSBGcmFtZTo6Y3JlYXRlKHBhZ2UtPmNv
cmVQYWdlKCksIG93bmVyRWxlbWVudCwgZnJhbWUtPm1fZnJhbWVMb2FkZXJDbGllbnQuZ2V0KCkp
OwogICAgIGZyYW1lLT5tX2NvcmVGcmFtZSA9IGNvcmVGcmFtZS5wdHIoKTsKLSAgICBmcmFtZS0+
bV9jb3JlRnJhbWUtPnRyZWUoKS5zZXROYW1lKGZyYW1lTmFtZSk7CisKKyAgICBjb3JlRnJhbWUt
PnRyZWUoKS5zZXROYW1lKGZyYW1lTmFtZSk7CiAgICAgaWYgKG93bmVyRWxlbWVudCkgewogICAg
ICAgICBBU1NFUlQob3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCkpOwotICAgICAgICBv
d25lckVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKS0+dHJlZSgpLmFwcGVuZENoaWxkKFdURk1v
dmUoY29yZUZyYW1lKSk7CisgICAgICAgIG93bmVyRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgp
LT50cmVlKCkuYXBwZW5kQ2hpbGQoY29yZUZyYW1lLmdldCgpKTsKICAgICB9Ci0gICAgZnJhbWUt
Pm1fY29yZUZyYW1lLT5pbml0KCk7CisgICAgY29yZUZyYW1lLT5pbml0KCk7CisKICAgICByZXR1
cm4gZnJhbWU7CiB9CiAKLVBhc3NSZWZQdHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGUoc3Rk
Ojp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRlckNsaWVudCkKK1Jl
ZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2Fk
ZXJDbGllbnQ+IGZyYW1lTG9hZGVyQ2xpZW50KQogewogICAgIGF1dG8gZnJhbWUgPSBhZG9wdFJl
ZigqbmV3IFdlYkZyYW1lKFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKSk7CiAKICAgICAvLyBB
ZGQgZXhwbGljdCByZWYoKSB0aGF0IHdpbGwgYmUgYmFsYW5jZWQgaW4gV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmZyYW1lTG9hZGVyRGVzdHJveWVkKCkuCiAgICAgZnJhbWUtPnJlZigpOwogCi0gICAg
cmV0dXJuIFdURk1vdmUoZnJhbWUpOworICAgIHJldHVybiBmcmFtZTsKIH0KIAogV2ViRnJhbWU6
OldlYkZyYW1lKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4gZnJhbWVMb2Fk
ZXJDbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5o
CmluZGV4IDIzZDQ4ZDI5ZjgzNzY2NTM4NWNmNDE0MWEwYzRmNmU2M2M1NWM2NjAuLmQ0YzdhNDA4
MzRhMjg4OWIyYTFhZmQxZmNkZTM3MDZmYWUwMjZiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCkBAIC02Niw4ICs2Niw4IEBAIHN0cnVjdCBGcmFt
ZUluZm9EYXRhOwogCiBjbGFzcyBXZWJGcmFtZSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJ
OjpPYmplY3Q6OlR5cGU6OkJ1bmRsZUZyYW1lPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2ViRnJhbWU+IGNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2UqLCBXZWJDb3Jl
OjpGcmFtZSopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZyYW1lPiBjcmVhdGVTdWJmcmFt
ZShXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93
bmVyRWxlbWVudCopOworICAgIHN0YXRpYyBSZWY8V2ViRnJhbWU+IGNyZWF0ZVdpdGhDb3JlTWFp
bkZyYW1lKFdlYlBhZ2UqLCBXZWJDb3JlOjpGcmFtZSopOworICAgIHN0YXRpYyBSZWY8V2ViRnJh
bWU+IGNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgV2Vi
Q29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Kik7CiAgICAgfldlYkZyYW1lKCk7CiAKICAgICAv
LyBDYWxsZWQgd2hlbiB0aGUgRnJhbWVMb2FkZXJDbGllbnQgKGFuZCB0aGVyZWZvcmUgdGhlIFdl
YkNvcmU6OkZyYW1lKSBpcyBiZWluZyB0b3JuIGRvd24uCkBAIC0xNjYsOCArMTY2LDggQEAgcHVi
bGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWU+
IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsKLSAgICBXZWJG
cmFtZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsKKyAgICBzdGF0aWMg
UmVmPFdlYkZyYW1lPiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50
Pik7CisgICAgZXhwbGljaXQgV2ViRnJhbWUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVy
Q2xpZW50Pik7CiAKICAgICBXZWJDb3JlOjpGcmFtZSogbV9jb3JlRnJhbWU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKaW5kZXgg
ZDY0Nzg1OTdhODdmZWYzZGMwYjk5OTM1MjEyNjc2ZWZjYzQ5MzMyMy4uMDE2ZDczOGZiNjEyZDI0
M2MwMDQ5ZTUyMDE1ODYyMTMwZmQ5NThmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lk
IFdlYkluc3BlY3Rvcjo6b3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogICAg
IEZyYW1lJiBpbnNwZWN0ZWRNYWluRnJhbWUgPSBpbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKTsK
ICAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QoaW5zcGVjdGVkTWFpbkZyYW1lLmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCh1cmxTdHJpbmcpLCAiX2JsYW5r
IiwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVm
ZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBv
bGljeTo6QWxsb3csIFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCwgU2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogCi0gICAgUGFnZSogbmV3UGFnZSA9
IGluc3BlY3RlZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdygmaW5zcGVjdGVkTWFpbkZyYW1l
LCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QucmVz
b3VyY2VSZXF1ZXN0KCksIE5hdmlnYXRpb25UeXBlOjpMaW5rQ2xpY2tlZCkpOworICAgIFBhZ2Uq
IG5ld1BhZ2UgPSBpbnNwZWN0ZWRQYWdlLT5jaHJvbWUoKS5jcmVhdGVXaW5kb3coaW5zcGVjdGVk
TWFpbkZyYW1lLCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9uQWN0aW9uKHJl
cXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIE5hdmlnYXRpb25UeXBlOjpMaW5rQ2xpY2tlZCkpOwog
ICAgIGlmICghbmV3UGFnZSkKICAgICAgICAgcmV0dXJuOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299305</attachid>
            <date>2017-01-19 19:47:56 -0800</date>
            <delta_ts>2017-01-19 23:30:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167224-20170119194602.patch</filename>
            <type>text/plain</type>
            <size>291633</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwOTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0RPTVdpbmRvd0ZldGNoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCmluZGV4IGFkYWRhY2Q4M2MyNjBjZmE5ZDc2OTlkMzRm
NmE0YmVjOTFkNjFmMDYuLmM1OWQzNjU2YTBjMjEwN2FhOWRhNzZkZjFhNTczN2RlZmY5ZjUyZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3Bw
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNiBDYW5vbiBJbmMuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsMTYgKzMzLDE3IEBACiAjaWYgRU5B
QkxFKEZFVENIX0FQSSkKIAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkZldGNo
UmVxdWVzdC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRmV0Y2hSZXNwb25z
ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgRE9NV2luZG93RmV0Y2g6OmZldGNo
KERPTVdpbmRvdyYgd2luZG93LCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QsIFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBpZiAoIXdpbmRvdy5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCisgICAgYXV0byogZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQoKTsKKyAgICBpZiAo
IWRvY3VtZW50KQogICAgICAgICByZXR1cm47Ci0gICAgRmV0Y2hSZXNwb25zZTo6ZmV0Y2goKndp
bmRvdy5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHJlcXVlc3QsIFdURk1vdmUocHJvbWlzZSkp
OworICAgIEZldGNoUmVzcG9uc2U6OmZldGNoKCpkb2N1bWVudCwgcmVxdWVzdCwgV1RGTW92ZShw
cm9taXNlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcAppbmRleCBl
NTQ4OWZjYjU0MGM5Njk0YWU0Mzc1OTY4M2RlOWFjZjAxODI0YWQ5Li4zZGNiNTYwMzQzZWI1YWI5
NDUxMWEzOTBlYjE5MTFiMzljYjBmMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwCkBAIC0yMDQsNyArMjA0LDcg
QEAgdm9pZCBEYXRhYmFzZUNvbnRleHQ6OmRhdGFiYXNlRXhjZWVkZWRRdW90YShjb25zdCBTdHJp
bmcmIG5hbWUsIERhdGFiYXNlRGV0YWlscwogICAgIGlmIChpczxEb2N1bWVudD4oKm1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCkpIHsKICAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNh
c3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgICAgICBpZiAoUGFn
ZSogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkKLSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNs
aWVudCgpLmV4Y2VlZGVkRGF0YWJhc2VRdW90YShkb2N1bWVudC5mcmFtZSgpLCBuYW1lLCBkZXRh
aWxzKTsKKyAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV4Y2VlZGVkRGF0YWJh
c2VRdW90YSgqZG9jdW1lbnQuZnJhbWUoKSwgbmFtZSwgZGV0YWlscyk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNXb3JrZXJH
bG9iYWxTY29wZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5k
ZXggNDE2YjE4MzRiZDhhYTYzNGI4YzdiYzJjZWU3ZjA5NDZiYzZiYjA3ZS4uMDMyMGY5NTU2YjU3
YjJiMDM3MjkxMmIwOGY1MjkyZWI0Zjg2ZWQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0KQEAgLTM3MjksNyArMzcyOSw3IEBAIC0gKHZvaWQpYWNjZXNzaWJpbGl0
eVNob3dDb250ZXh0TWVudQogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHBhZ2UtPmNvbnRl
eHRNZW51Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVudUF0KCZwYWdlLT5tYWluRnJhbWUoKSwg
cmVjdC5jZW50ZXIoKSk7CisgICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0Nv
bnRleHRNZW51QXQocGFnZS0+bWFpbkZyYW1lKCksIHJlY3QuY2VudGVyKCkpOwogfQogCiAtICh2
b2lkKWFjY2Vzc2liaWxpdHlTY3JvbGxUb1Zpc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCBhM2Y2MmU1NjQ0MTFmMTgwN2Jm
ZjA5NWY1ZGI5Y2E1MmY2ZTZjZGU0Li5hZTdmZThjMTdmMGRiY2QxNWI3MDU0ODZkNjQyYTQ1OGFl
NTdiY2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwCkBAIC0xNzgsNyArMTc4LDcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJv
cGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnQKICAg
ICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgIC8vIERldGVjdCB3aGVuIHdlJ3JlIGdldHRpbmcgdGhl
IHByb3BlcnR5ICdzaG93TW9kYWxEaWFsb2cnLCB0aGlzIGlzIGRpc2FibGVkLCBhbmQgaGFzIGl0
cyBvcmlnaW5hbCB2YWx1ZS4KICAgICAgICAgYm9vbCBpc1Nob3dNb2RhbERpYWxvZ0FuZFNob3Vs
ZEhpZGUgPSBwcm9wZXJ0eU5hbWUgPT0gc3RhdGUtPnByb3BlcnR5TmFtZXMoKS5zaG93TW9kYWxE
aWFsb2cKLSAgICAgICAgICAgICYmICFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhmcmFt
ZSkKKyAgICAgICAgICAgICYmICFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZygqZnJhbWUp
CiAgICAgICAgICAgICAmJiBzbG90LmlzVmFsdWUoKSAmJiBpc0hvc3RGdW5jdGlvbihzbG90Lmdl
dFZhbHVlKHN0YXRlLCBwcm9wZXJ0eU5hbWUpLCBqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25T
aG93TW9kYWxEaWFsb2cpOwogICAgICAgICAvLyBVbmxlc3Mgd2UncmUgaW4gdGhlIHNob3dNb2Rh
bERpYWxvZyBzcGVjaWFsIGNhc2UsIHdlJ3JlIGRvbmUuCiAgICAgICAgIGlmICghaXNTaG93TW9k
YWxEaWFsb2dBbmRTaG91bGRIaWRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMDgxNjBh
ZGQzYTNhM2RlOWNkNDg3ZmQ0MTQxMzgyMTYxYzkxZjE5Yy4uMWEwMzQzOWYwYTRmZGQ0OWZlOTkx
NGJjZWVlOGRhM2IxMzBjM2UwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NDgsMTMg
Kzg0OCwxMSBAQCB2b2lkIERvY3VtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFu
Z2UmIGNoYW5nZSkKIHsKICAgICBDb250YWluZXJOb2RlOjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdl
KTsKIAotI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBGSVhNRTogQ2hyb21lOjpkaWRSZWNlaXZl
RG9jVHlwZSgpIHVzZWQgdG8gYmUgY2FsbGVkIG9ubHkgd2hlbiB0aGUgZG9jdHlwZSBjaGFuZ2Vk
LiBXZSBuZWVkIHRvIGNoZWNrIHRoZQogICAgIC8vIGltcGFjdCBvZiBjYWxsaW5nIHRoaXMgc3lz
dGVtYXRpY2FsbHkuIElmIHRoZSBvdmVyaGVhZCBpcyBuZWdsaWdpYmxlLCB3ZSBuZWVkIHRvIHJl
bmFtZSBkaWRSZWNlaXZlRG9jVHlwZSwKICAgICAvLyBvdGhlcndpc2UsIHdlIG5lZWQgdG8gZGV0
ZWN0IHRoZSBkb2MgdHlwZSBjaGFuZ2VzIGJlZm9yZSB1cGRhdGluZyB0aGUgdmlld3BvcnQuCiAg
ICAgaWYgKFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgp
LmRpZFJlY2VpdmVEb2NUeXBlKGZyYW1lKCkpOwotI2VuZGlmCisgICAgICAgIHBhZ2UtPmNocm9t
ZSgpLmRpZFJlY2VpdmVEb2NUeXBlKCpmcmFtZSgpKTsKIAogICAgIEVsZW1lbnQqIG5ld0RvY3Vt
ZW50RWxlbWVudCA9IGNoaWxkcmVuT2ZUeXBlPEVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpOwogICAg
IGlmIChuZXdEb2N1bWVudEVsZW1lbnQgPT0gbV9kb2N1bWVudEVsZW1lbnQpCkBAIC0zMjE4LDkg
KzMyMTYsNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVWaWV3cG9ydEFyZ3VtZW50cygpCiAgICAg
ICAgIG1fZGlkRGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNDaGFuZ2VkID0gdHJ1ZTsKICNlbmRp
ZgogICAgICAgICBwYWdlKCktPmNocm9tZSgpLmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlk
Q2hhbmdlKG1fdmlld3BvcnRBcmd1bWVudHMpOwotI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAg
cGFnZSgpLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZShmcmFtZSgpKTsKLSNlbmRpZgorICAg
ICAgICBwYWdlKCktPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKCpmcmFtZSgpKTsKICAgICB9
CiB9CiAKQEAgLTM2NDIsNyArMzYzOCw3IEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVt
ZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgRm9jCiAgICAg
ICAgICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKm9sZEZvY3VzZWRFbGVtZW50KSkKICAg
ICAgICAgICAgICAgICBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqb2xkRm9jdXNlZEVsZW1l
bnQpLmVuZEVkaXRpbmcoKTsKICAgICAgICAgICAgIGlmIChwYWdlKCkpCi0gICAgICAgICAgICAg
ICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkQmx1cihvbGRGb2N1c2VkRWxl
bWVudC5nZXQoKSk7CisgICAgICAgICAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5l
bGVtZW50RGlkQmx1cigqb2xkRm9jdXNlZEVsZW1lbnQpOwogICAgICAgICAgICAgQVNTRVJUKCFt
X2ZvY3VzZWRFbGVtZW50KTsKICAgICAgICAgfQogCkBAIC00MDAwLDcgKzM5OTYsNyBAQCB2b2lk
IERvY3VtZW50OjpjcmVhdGVET01XaW5kb3coKQogICAgIEFTU0VSVChtX2ZyYW1lKTsKICAgICBB
U1NFUlQoIW1fZG9tV2luZG93KTsKIAotICAgIG1fZG9tV2luZG93ID0gRE9NV2luZG93OjpjcmVh
dGUodGhpcyk7CisgICAgbV9kb21XaW5kb3cgPSBET01XaW5kb3c6OmNyZWF0ZSgqdGhpcyk7CiAK
ICAgICBBU1NFUlQobV9kb21XaW5kb3ctPmRvY3VtZW50KCkgPT0gdGhpcyk7CiAgICAgQVNTRVJU
KG1fZG9tV2luZG93LT5mcmFtZSgpID09IG1fZnJhbWUpOwpAQCAtNDAxNSw3ICs0MDExLDcgQEAg
dm9pZCBEb2N1bWVudDo6dGFrZURPTVdpbmRvd0Zyb20oRG9jdW1lbnQqIGRvY3VtZW50KQogICAg
IEFTU0VSVChwYWdlQ2FjaGVTdGF0ZSgpID09IE5vdEluUGFnZUNhY2hlKTsKIAogICAgIG1fZG9t
V2luZG93ID0gV1RGTW92ZShkb2N1bWVudC0+bV9kb21XaW5kb3cpOwotICAgIG1fZG9tV2luZG93
LT5kaWRTZWN1cmVUcmFuc2l0aW9uVG8odGhpcyk7CisgICAgbV9kb21XaW5kb3ctPmRpZFNlY3Vy
ZVRyYW5zaXRpb25UbygqdGhpcyk7CiAKICAgICBBU1NFUlQobV9kb21XaW5kb3ctPmRvY3VtZW50
KCkgPT0gdGhpcyk7CiAgICAgQVNTRVJUKG1fZG9tV2luZG93LT5mcmFtZSgpID09IG1fZnJhbWUp
OwpAQCAtNTU3MywxMiArNTU2OSwxMiBAQCB2b2lkIERvY3VtZW50OjpyZXF1ZXN0RnVsbFNjcmVl
bkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgRnVsbFNjcmVlbkNoZWNrVHlwZQogICAgICAg
ICAgICAgYnJlYWs7CiAKICAgICAgICAgYm9vbCBoYXNLZXlib2FyZEFjY2VzcyA9IHRydWU7Ci0g
ICAgICAgIGlmICghcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0c0Z1bGxTY3JlZW5G
b3JFbGVtZW50KGVsZW1lbnQsIGhhc0tleWJvYXJkQWNjZXNzKSkgeworICAgICAgICBpZiAoIXBh
Z2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCgqZWxl
bWVudCwgaGFzS2V5Ym9hcmRBY2Nlc3MpKSB7CiAgICAgICAgICAgICAvLyBUaGUgbmV3IGZ1bGwg
c2NyZWVuIEFQSSBkb2VzIG5vdCBhY2NlcHQgYSAiZmxhZ3MiIHBhcmFtZXRlciwgc28gZmFsbCBi
YWNrIHRvIGRpc2FsbG93aW5nCiAgICAgICAgICAgICAvLyBrZXlib2FyZCBpbnB1dCBpZiB0aGUg
Y2hyb21lIGNsaWVudCByZWZ1c2VzIHRvIGFsbG93IGtleWJvYXJkIGlucHV0LgogICAgICAgICAg
ICAgaGFzS2V5Ym9hcmRBY2Nlc3MgPSBmYWxzZTsKIAotICAgICAgICAgICAgaWYgKCFwYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCwg
aGFzS2V5Ym9hcmRBY2Nlc3MpKQorICAgICAgICAgICAgaWYgKCFwYWdlKCktPmNocm9tZSgpLmNs
aWVudCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoKmVsZW1lbnQsIGhhc0tleWJvYXJk
QWNjZXNzKSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC01NjMxLDcg
KzU2MjcsNyBAQCB2b2lkIERvY3VtZW50OjpyZXF1ZXN0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxl
bWVudCogZWxlbWVudCwgRnVsbFNjcmVlbkNoZWNrVHlwZQogICAgICAgICAvLyA1LiBSZXR1cm4s
IGFuZCBydW4gdGhlIHJlbWFpbmluZyBzdGVwcyBhc3luY2hyb25vdXNseS4KICAgICAgICAgLy8g
Ni4gT3B0aW9uYWxseSwgcGVyZm9ybSBzb21lIGFuaW1hdGlvbi4KICAgICAgICAgbV9hcmVLZXlz
RW5hYmxlZEluRnVsbFNjcmVlbiA9IGhhc0tleWJvYXJkQWNjZXNzOwotICAgICAgICBwYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cisg
ICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVu
dCgqZWxlbWVudCk7CiAKICAgICAgICAgLy8gNy4gT3B0aW9uYWxseSwgZGlzcGxheSBhIG1lc3Nh
Z2UgaW5kaWNhdGluZyBob3cgdGhlIHVzZXIgY2FuIGV4aXQgZGlzcGxheWluZyB0aGUgY29udGV4
dCBvYmplY3QgZnVsbHNjcmVlbi4KICAgICAgICAgcmV0dXJuOwpAQCAtNTcyMywxMiArNTcxOSwx
MiBAQCB2b2lkIERvY3VtZW50Ojp3ZWJraXRFeGl0RnVsbHNjcmVlbigpCiAgICAgLy8gT25seSBl
eGl0IG91dCBvZiBmdWxsIHNjcmVlbiB3aW5kb3cgbW9kZSBpZiB0aGVyZSBhcmUgbm8gcmVtYWlu
aW5nIGVsZW1lbnRzIGluIHRoZSAKICAgICAvLyBmdWxsIHNjcmVlbiBzdGFjay4KICAgICBpZiAo
IW5ld1RvcCkgewotICAgICAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmV4aXRGdWxsU2Ny
ZWVuRm9yRWxlbWVudChtX2Z1bGxTY3JlZW5FbGVtZW50LmdldCgpKTsKKyAgICAgICAgcGFnZSgp
LT5jaHJvbWUoKS5jbGllbnQoKS5leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoKm1fZnVsbFNjcmVl
bkVsZW1lbnQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgLy8gT3RoZXJ3aXNlLCBu
b3RpZnkgdGhlIGNocm9tZSBvZiB0aGUgbmV3IGZ1bGwgc2NyZWVuIGVsZW1lbnQuCi0gICAgcGFn
ZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KG5ld1RvcCk7
CisgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KCpuZXdUb3ApOwogfQogCiBib29sIERvY3VtZW50Ojp3ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggODhlM2U5OTMwMWE3MTlkZTI1NDA4M2E5
MzI2YTNiYWNmM2VjMzhmYy4uZTkwNGI5OGU3NzNhMzNjNzkxMjk4NDgwYzJiMTI4NTVhMDcwNDAx
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjM0OCw3ICsyMzQ4LDcgQEAgdm9pZCBFbGVt
ZW50Ojpmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24g
ZGlyZWN0aW9uKQogCiAgICAgaWYgKGRvY3VtZW50KCkuZm9jdXNlZEVsZW1lbnQoKSA9PSB0aGlz
KSB7CiAgICAgICAgIGlmIChkb2N1bWVudCgpLnBhZ2UoKSkKLSAgICAgICAgICAgIGRvY3VtZW50
KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkUmVmb2N1cyh0aGlzKTsKKyAg
ICAgICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlk
UmVmb2N1cygqdGhpcyk7CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIzNzEsNyArMjM3
MSw3IEBAIHZvaWQgRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24s
IEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKICAgICAgICAgLy8gSWYgYSBmb2N1cyBldmVudCBo
YW5kbGVyIGNoYW5nZXMgdGhlIGZvY3VzIHRvIGEgZGlmZmVyZW50IG5vZGUgaXQKICAgICAgICAg
Ly8gZG9lcyBub3QgbWFrZSBzZW5zZSB0byBjb250aW51ZSBhbmQgdXBkYXRlIGFwcGVhcmVuY2Uu
CiAgICAgICAgIHByb3RlY3QgPSB0aGlzOwotICAgICAgICBpZiAoIXBhZ2UtPmZvY3VzQ29udHJv
bGxlcigpLnNldEZvY3VzZWRFbGVtZW50KHRoaXMsIGRvY3VtZW50KCkuZnJhbWUoKSwgZGlyZWN0
aW9uKSkKKyAgICAgICAgaWYgKCFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxl
bWVudCh0aGlzLCAqZG9jdW1lbnQoKS5mcmFtZSgpLCBkaXJlY3Rpb24pKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMjQ0MSw3ICsyNDQxLDcgQEAgdm9pZCBFbGVtZW50OjpibHVy
KCkKICAgICBjYW5jZWxGb2N1c0FwcGVhcmFuY2VVcGRhdGUoKTsKICAgICBpZiAodHJlZVNjb3Bl
KCkuZm9jdXNlZEVsZW1lbnRJblNjb3BlKCkgPT0gdGhpcykgewogICAgICAgICBpZiAoRnJhbWUq
IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpKQotICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+
Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQoMCwgZnJhbWUpOworICAgICAgICAg
ICAgZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQodGhp
cywgKmZyYW1lKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZG9jdW1lbnQoKS5zZXRGb2N1
c2VkRWxlbWVudChudWxscHRyKTsKICAgICB9CkBAIC0yNDY0LDcgKzI0NjQsNyBAQCB2b2lkIEVs
ZW1lbnQ6OmRpc3BhdGNoRm9jdXNPdXRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgUmVmUHRyPEVsZW1lbgogdm9pZCBFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQoUmVmUHRy
PEVsZW1lbnQ+JiYgb2xkRm9jdXNlZEVsZW1lbnQsIEZvY3VzRGlyZWN0aW9uKQogewogICAgIGlm
IChkb2N1bWVudCgpLnBhZ2UoKSkKLSAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgp
LmNsaWVudCgpLmVsZW1lbnREaWRGb2N1cyh0aGlzKTsKKyAgICAgICAgZG9jdW1lbnQoKS5wYWdl
KCktPmNocm9tZSgpLmNsaWVudCgpLmVsZW1lbnREaWRGb2N1cygqdGhpcyk7CiAKICAgICBFdmVu
dERpc3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQoKnRoaXMsIEZvY3VzRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkuZm9jdXNFdmVudCwgZmFsc2UsIGZhbHNlLCBkb2N1bWVudCgpLmRlZmF1bHRWaWV3
KCksIDAsIFdURk1vdmUob2xkRm9jdXNlZEVsZW1lbnQpKSk7CiB9CkBAIC0yNDcyLDcgKzI0NzIs
NyBAQCB2b2lkIEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudChSZWZQdHI8RWxlbWVudD4mJiBv
bGRGb2N1c2VkRWxlbWVudCwgRm9jdXNEaXJlYwogdm9pZCBFbGVtZW50OjpkaXNwYXRjaEJsdXJF
dmVudChSZWZQdHI8RWxlbWVudD4mJiBuZXdGb2N1c2VkRWxlbWVudCkKIHsKICAgICBpZiAoZG9j
dW1lbnQoKS5wYWdlKCkpCi0gICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGll
bnQoKS5lbGVtZW50RGlkQmx1cih0aGlzKTsKKyAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNo
cm9tZSgpLmNsaWVudCgpLmVsZW1lbnREaWRCbHVyKCp0aGlzKTsKIAogICAgIEV2ZW50RGlzcGF0
Y2hlcjo6ZGlzcGF0Y2hFdmVudCgqdGhpcywgRm9jdXNFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMo
KS5ibHVyRXZlbnQsIGZhbHNlLCBmYWxzZSwgZG9jdW1lbnQoKS5kZWZhdWx0VmlldygpLCAwLCBX
VEZNb3ZlKG5ld0ZvY3VzZWRFbGVtZW50KSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGJiM2Fi
OTllNjFjNWJkYzEwNDNmM2ViYzRlMGY3OTZhMmRjYmQ4YjcuLjc2NjIzMDU0NzFlNTFmYmJmNmU0
ZmEzNTU3NWVkNmFiYWJmYzcwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTIyNTMsNyArMjI1Myw3
IEBAIHZvaWQgTm9kZTo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiAgICAgfSBl
bHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmNvbnRleHRtZW51RXZlbnQpIHsKICAg
ICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKICAgICAgICAgICAg
IGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgICAgICAgICBwYWdlLT5j
b250ZXh0TWVudUNvbnRyb2xsZXIoKS5oYW5kbGVDb250ZXh0TWVudUV2ZW50KCZldmVudCk7Cisg
ICAgICAgICAgICAgICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuaGFuZGxlQ29udGV4
dE1lbnVFdmVudChldmVudCk7CiAjZW5kaWYKICAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBl
dmVudE5hbWVzKCkudGV4dElucHV0RXZlbnQpIHsKICAgICAgICAgaWYgKGlzPFRleHRFdmVudD4o
ZXZlbnQpKSB7CkBAIC0yMjcyLDcgKzIyNzIsNyBAQCB2b2lkIE5vZGU6OmRlZmF1bHRFdmVudEhh
bmRsZXIoRXZlbnQmIGV2ZW50KQogCiAgICAgICAgICAgICBpZiAocmVuZGVyZXIpIHsKICAgICAg
ICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpKQotICAgICAg
ICAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc3RhcnRQYW5TY3JvbGxpbmcoZG93
bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcikpOworICAgICAgICAgICAgICAgICAgICBmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkuc3RhcnRQYW5TY3JvbGxpbmcoZG93bmNhc3Q8UmVuZGVyQm94PigqcmVu
ZGVyZXIpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAppbmRleCBhY2YyMjY4YTdlNzkzMDkyN2NlY2JiMTNk
MjRkNjRjZmFkYmY2ZGRlLi4wMWYwNzFjY2FkY2RmMTk2NDFmMjg3Nzc0MTlkYjQ2Y2I1NDBjNjA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKQEAgLTkzMCw3ICs5
MzAsNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlUHJpbnQoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVk
aXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZwogICAgIFBhZ2UqIHBhZ2UgPSBmcmFtZS5w
YWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcGFnZS0+
Y2hyb21lKCkucHJpbnQoJmZyYW1lKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5wcmludChmcmFtZSk7
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRp
bmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVj
dGlvbi5jcHAKaW5kZXggNjc1OWZmMTc3ZmU3NjcxY2JiMTY5MzVlYjM2MTBkMmE1Njk3Yjc4Ni4u
YWM1ZDBiZmFkZThiZGViMDE2NWI1YmY2NGVlYjQ2ZTRiODM1ZTEzMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTIxNTcsNyArMjE1Nyw3IEBAIHZvaWQg
RnJhbWVTZWxlY3Rpb246OnNldEZvY3VzZWRFbGVtZW50SWZOZWVkZWQoKQogICAgIGJvb2wgY2Fy
ZXRCcm93c2luZyA9IG1fZnJhbWUtPnNldHRpbmdzKCkuY2FyZXRCcm93c2luZ0VuYWJsZWQoKTsK
ICAgICBpZiAoY2FyZXRCcm93c2luZykgewogICAgICAgICBpZiAoRWxlbWVudCogYW5jaG9yID0g
ZW5jbG9zaW5nQW5jaG9yRWxlbWVudChtX3NlbGVjdGlvbi5iYXNlKCkpKSB7Ci0gICAgICAgICAg
ICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KGFu
Y2hvciwgbV9mcmFtZSk7CisgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJv
bGxlcigpLnNldEZvY3VzZWRFbGVtZW50KGFuY2hvciwgKm1fZnJhbWUpOwogICAgICAgICAgICAg
cmV0dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtMjE2OSwxNiArMjE2OSwxNiBAQCB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZXRGb2N1c2VkRWxlbWVudElmTmVlZGVkKCkKICAgICAgICAgICAgIC8v
IHNvIGFkZCB0aGUgIWlzRnJhbWVFbGVtZW50IGNoZWNrIGhlcmUuIFRoZXJlJ3MgcHJvYmFibHkg
YSBiZXR0ZXIgd2F5IHRvIG1ha2UgdGhpcwogICAgICAgICAgICAgLy8gd29yayBpbiB0aGUgbG9u
ZyB0ZXJtLCBidXQgdGhpcyBpcyB0aGUgc2FmZXN0IGZpeCBhdCB0aGlzIHRpbWUuCiAgICAgICAg
ICAgICBpZiAodGFyZ2V0LT5pc01vdXNlRm9jdXNhYmxlKCkgJiYgIWlzRnJhbWVFbGVtZW50KHRh
cmdldCkpIHsKLSAgICAgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxl
cigpLnNldEZvY3VzZWRFbGVtZW50KHRhcmdldCwgbV9mcmFtZSk7CisgICAgICAgICAgICAgICAg
bV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudCh0YXJn
ZXQsICptX2ZyYW1lKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB0YXJnZXQgPSB0YXJnZXQtPnBhcmVudE9yU2hhZG93SG9zdEVsZW1lbnQoKTsK
ICAgICAgICAgfQotICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZXRGb2N1c2VkRWxlbWVu
dCgwKTsKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZEVsZW1lbnQobnVs
bHB0cik7CiAgICAgfQogCiAgICAgaWYgKGNhcmV0QnJvd3NpbmcpCi0gICAgICAgIG1fZnJhbWUt
PnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQoMCwgbV9mcmFtZSk7
CisgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVs
ZW1lbnQobnVsbHB0ciwgKm1fZnJhbWUpOwogfQogCiB2b2lkIERyYWdDYXJldENvbnRyb2xsZXI6
OnBhaW50RHJhZ0NhcmV0KEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NDb250ZXh0JiBwLCBjb25zdCBM
YXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIGNvbnN0IExheW91dFJlY3QmIGNsaXBSZWN0KSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAppbmRleCAzNjMzOThkNmVmY2Mx
NGM0YjZiYjc1ZjMxMzg3Y2RkN2U3YzU5OWQxLi4yMWYyNGFkMzlmNGE5MTY2YzhiMTEzY2FlMjcw
MGZlOWY0NTFjYThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZy
YW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcApAQCAt
OTgsOSArOTgsOSBAQCB2b2lkIENhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSgpCiAgICAgZnJhbWUu
bG9hZGVyKCkuY2xpZW50KCkuZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKIAogICAgIC8vIFJl
Y29uc3RydWN0IHRoZSBGcmFtZVRyZWUuIEFuZCBvcGVuIHRoZSBjaGlsZCBDYWNoZWRGcmFtZXMg
aW4gdGhlaXIgcmVzcGVjdGl2ZSBGcmFtZUxvYWRlcnMuCi0gICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG1fY2hpbGRGcmFtZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgZnJhbWUudHJlZSgp
LmFwcGVuZENoaWxkKCZtX2NoaWxkRnJhbWVzW2ldLT52aWV3KCktPmZyYW1lKCkpOwotICAgICAg
ICBtX2NoaWxkRnJhbWVzW2ldLT5vcGVuKCk7CisgICAgZm9yIChhdXRvJiBjaGlsZEZyYW1lIDog
bV9jaGlsZEZyYW1lcykgeworICAgICAgICBmcmFtZS50cmVlKCkuYXBwZW5kQ2hpbGQoY2hpbGRG
cmFtZS0+dmlldygpLT5mcmFtZSgpKTsKKyAgICAgICAgY2hpbGRGcmFtZS0+b3BlbigpOwogICAg
IH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIENhY2hlZEZy
YW1lQmFzZTo6cmVzdG9yZSgpCiAgICAgICAgICAgICAvLyBGSVhNRTogQWRkIFNDUk9MTF9MSVNU
RU5FUiB0byB0aGUgbGlzdCBvZiBldmVudCB0eXBlcyBvbiBEb2N1bWVudCwgYW5kIHVzZSBtX2Rv
Y3VtZW50LT5oYXNMaXN0ZW5lclR5cGUoKS4gU2VlIDxyZGFyOi8vcHJvYmxlbS85NjE1NDgyPi4K
ICAgICAgICAgICAgIC8vIEZJWE1FOiBDYW4gdXNlIERvY3VtZW50OjpoYXNMaXN0ZW5lclR5cGUo
KSBub3cuCiAgICAgICAgICAgICBpZiAoZG9tV2luZG93LT5zY3JvbGxFdmVudExpc3RlbmVyQ291
bnQoKSAmJiBmcmFtZS5wYWdlKCkpCi0gICAgICAgICAgICAgICAgZnJhbWUucGFnZSgpLT5jaHJv
bWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoJmZyYW1lLCB0cnVlKTsK
KyAgICAgICAgICAgICAgICBmcmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE5lZWRz
U2Nyb2xsTm90aWZpY2F0aW9ucyhmcmFtZSwgdHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CiAjZW5k
aWYKQEAgLTE2Myw3ICsxNjMsNyBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJhbWUoRnJhbWUmIGZy
YW1lKQogICAgIC8vIDEgLSBXZSByZXVzZSB0aGUgbWFpbiBmcmFtZSwgc28gd2hlbiBpdCBuYXZp
Z2F0ZXMgdG8gYSBuZXcgcGFnZSBsb2FkIGl0IG5lZWRzIHRvIHN0YXJ0IHdpdGggYSBibGFuayBG
cmFtZVRyZWUuCiAgICAgLy8gMiAtIEl0J3MgbXVjaCBlYXNpZXIgdG8gZGVzdHJveSBhIENhY2hl
ZEZyYW1lIHdoaWxlIGl0IHJlc2lkZXMgaW4gdGhlIFBhZ2VDYWNoZSBpZiBpdCBpcyBkaXNjb25u
ZWN0ZWQgZnJvbSBpdHMgcGFyZW50LgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2No
aWxkRnJhbWVzLnNpemUoKTsgKytpKQotICAgICAgICBmcmFtZS50cmVlKCkucmVtb3ZlQ2hpbGQo
Jm1fY2hpbGRGcmFtZXNbaV0tPnZpZXcoKS0+ZnJhbWUoKSk7CisgICAgICAgIGZyYW1lLnRyZWUo
KS5yZW1vdmVDaGlsZChtX2NoaWxkRnJhbWVzW2ldLT52aWV3KCktPmZyYW1lKCkpOwogCiAgICAg
aWYgKCFtX2lzTWFpbkZyYW1lKQogICAgICAgICBmcmFtZS5wYWdlKCktPmRlY3JlbWVudFN1YmZy
YW1lQ291bnQoKTsKQEAgLTE4MSw3ICsxODEsNyBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJhbWUo
RnJhbWUmIGZyYW1lKQogICAgIGlmIChtX2lzTWFpbkZyYW1lKSB7CiAgICAgICAgIGlmIChET01X
aW5kb3cqIGRvbVdpbmRvdyA9IG1fZG9jdW1lbnQtPmRvbVdpbmRvdygpKSB7CiAgICAgICAgICAg
ICBpZiAoZG9tV2luZG93LT5zY3JvbGxFdmVudExpc3RlbmVyQ291bnQoKSAmJiBmcmFtZS5wYWdl
KCkpCi0gICAgICAgICAgICAgICAgZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXRO
ZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoJmZyYW1lLCBmYWxzZSk7CisgICAgICAgICAgICAgICAg
ZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlv
bnMoZnJhbWUsIGZhbHNlKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCA1YmEyYzk1NGIyYmQ4OTk1YmMwYjJiNzJkMmZm
Y2QzNzkxOTEwN2E2Li41MGUxZmNiMTQzNzEzYTMwYWM5MTUzMzEzYjU4OTMyNTc5MGQyMWU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAtMTU2LDcgKzE1Niw3IEBA
IHZvaWQgQ29sb3JJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmIGV2ZW50
KQogCiAgICAgaWYgKENocm9tZSogY2hyb21lID0gdGhpcy0+Y2hyb21lKCkpIHsKICAgICAgICAg
aWYgKCFtX2Nob29zZXIpCi0gICAgICAgICAgICBtX2Nob29zZXIgPSBjaHJvbWUtPmNyZWF0ZUNv
bG9yQ2hvb3Nlcih0aGlzLCB2YWx1ZUFzQ29sb3IoKSk7CisgICAgICAgICAgICBtX2Nob29zZXIg
PSBjaHJvbWUtPmNyZWF0ZUNvbG9yQ2hvb3NlcigqdGhpcywgdmFsdWVBc0NvbG9yKCkpOwogICAg
ICAgICBlbHNlCiAgICAgICAgICAgICBtX2Nob29zZXItPnJlYXR0YWNoQ29sb3JDaG9vc2VyKHZh
bHVlQXNDb2xvcigpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1l
bnQuY3BwCmluZGV4IDgxMWViMGQ1ZDA1YjZhNmM3Njg4NzhkMDNmYzMzYzFjMjQ5NDZmYjAuLmJh
ZWI1NzZiMTU2M2ViMzE1N2JiNzJlY2Q4N2I3ODI3MDA5ZWYzMDQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC0xMjksNyArMTI5LDcgQEAgYm9vbCBIVE1M
QW5jaG9yRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50JiBldmVudCkg
Y29uc3QKICAgICBpZiAoIWRvY3VtZW50KCkuZnJhbWUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCi0gICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLnRhYnNUb0xp
bmtzKCZldmVudCkpCisgICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxlcigp
LnRhYnNUb0xpbmtzKGV2ZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFy
ZW5kZXJlcigpICYmIGFuY2VzdG9yc09mVHlwZTxIVE1MQ2FudmFzRWxlbWVudD4oKnRoaXMpLmZp
cnN0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNw
cAppbmRleCBlYThhM2IzM2UwMDI3ODMyZDY3MGY5ZTA5ODdhY2NhOGQzNjhiYWEyLi42MmMyODYx
N2FlMzVkZTY3MzJmZmEwNjYzMzhmZTMxODE2NTQ2Y2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTM3MCwxMCArMzcwLDkgQEAgYm9v
bCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0CiAKIGJvb2wgSFRN
TEZvcm1Db250cm9sRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50JiBl
dmVudCkgY29uc3QKIHsKLSAgICBpZiAoaXNGb2N1c2FibGUoKSkKLSAgICAgICAgaWYgKGRvY3Vt
ZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgIHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCktPmV2
ZW50SGFuZGxlcigpLnRhYnNUb0FsbEZvcm1Db250cm9scygmZXZlbnQpOwotICAgIHJldHVybiBm
YWxzZTsKKyAgICByZXR1cm4gaXNGb2N1c2FibGUoKQorICAgICAgICAmJiBkb2N1bWVudCgpLmZy
YW1lKCkKKyAgICAgICAgJiYgZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS50YWJz
VG9BbGxGb3JtQ29udHJvbHMoZXZlbnQpOwogfQogCiBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQ6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVv
RWxlbWVudC5jcHAKaW5kZXggZDhhNzkzZTMwZWJmMWJjMzNiMWEzMmEyZjJjZDFjZjdiOTE4OWRi
Yy4uYTlkYjkwNTE4ZGU3MTAwZjg2MWFmY2RkYmE2ZDI2NzVhMjBlM2JkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCkBAIC0xNzEsNyArMTcxLDcgQEAgYm9vbCBI
VE1MVmlkZW9FbGVtZW50OjpzdXBwb3J0c0Z1bGxzY3JlZW4oSFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW4KICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgLy8gSWYg
dGhlIGZ1bGwgc2NyZWVuIEFQSSBpcyBlbmFibGVkIGFuZCBpcyBzdXBwb3J0ZWQgZm9yIHRoZSBj
dXJyZW50IGVsZW1lbnQKICAgICAvLyBkbyBub3QgcmVxdWlyZSB0aGF0IHRoZSBwbGF5ZXIgaGFz
IGEgdmlkZW8gdHJhY2sgdG8gZW50ZXIgZnVsbCBzY3JlZW4uCi0gICAgaWYgKHZpZGVvRnVsbHNj
cmVlbk1vZGUgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3Rh
bmRhcmQgJiYgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxl
bWVudCh0aGlzLCBmYWxzZSkpCisgICAgaWYgKHZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gSFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQgJiYgcGFnZS0+Y2hy
b21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCgqdGhpcywgZmFsc2Up
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKaW5kZXggNThiZDYyYTM2NDQ3ZjExNDk4
YzNkOGM5OTU3ZjFjZDFmNzNiMGU3Ny4uOThiZDcyYmZmMmQwZGY4MDZhYjBhYmY1MzdiYWU2OTA3
MjI4NDgwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRv
bkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25F
bGVtZW50LmNwcApAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OmRl
ZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQogICAgICAgICAgICAgICAgICAgICBmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkuc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KHRoaXMpOwog
ICAgICAgICAgICAgICAgICAgICBtX2NhcHR1cmluZyA9IHRydWU7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICAgICAg
ICAgICAgICBwYWdlLT5jaHJvbWUoKS5yZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKHRoaXMp
OworICAgICAgICAgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkucmVnaXN0ZXJQb3B1cE9w
ZW5pbmdPYnNlcnZlcigqdGhpcyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgVXBEb3duU3RhdGUgb2xkVXBEb3duU3RhdGUgPSBtX3VwRG93blN0YXRlOwpA
QCAtMjA1LDcgKzIwNSw3IEBAIHZvaWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OnJlbGVhc2VDYXB0dXJl
KCkKICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZXRDYXB0dXJpbmdNb3VzZUV2
ZW50c0VsZW1lbnQobnVsbHB0cik7CiAgICAgICAgICAgICBtX2NhcHR1cmluZyA9IGZhbHNlOwog
ICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKSkKLSAgICAgICAg
ICAgICAgICBwYWdlLT5jaHJvbWUoKS51bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIodGhp
cyk7CisgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkudW5yZWdpc3RlclBvcHVwT3Blbmlu
Z09ic2VydmVyKCp0aGlzKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVs
ZW1lbnRNYWMuY3BwCmluZGV4IGZkMGMzZTM2ZjM5MzM0MWRiZGFhMThjMDMxZTFiMWU3NDg3ZWZj
YzkuLmJhOWJhZGZlNTYyZTRiZmU3ZjllMTRmMGE2YjVlZDE5YjUwYWEzYWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVu
dE1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJv
bHNCdXR0b25FbGVtZW50TWFjLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgSW1hZ2VDb250
cm9sc0J1dHRvbkVsZW1lbnRNYWM6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQog
ICAgICAgICBpZiAoIXBhZ2UpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgcGFnZS0+
Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0ltYWdlQ29udHJvbHNNZW51KCZldmVudCk7Cisg
ICAgICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dJbWFnZUNvbnRyb2xzTWVu
dShldmVudCk7CiAgICAgICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZEhvc3QuY3BwCmluZGV4IDMxNTQ3ZGI3YWYzYjUzZmQ3ZWI0MjQxYzcwNTQzZjhmNGI2
NmIxN2UuLjc0OTg4Y2I1ZTYwNDg3MjA4ODkzYjAzMTYwMWNiYTgyMzRiYjkzZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCkBA
IC0zMzksOCArMzM5LDggQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250ZXh0
TWVudShFdmVudCogZXZlbnQsIGNvbnN0IFZlY3RvcjxDb250ZXh0TWUKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBhdXRvIG1lbnVQcm92aWRlciA9IEZyb250ZW5kTWVudVByb3ZpZGVyOjpj
cmVhdGUodGhpcywgeyAmc3RhdGUsIGZyb250ZW5kQXBpT2JqZWN0IH0sIGl0ZW1zKTsKLSAgICBt
X2Zyb250ZW5kUGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0NvbnRleHRNZW51KGV2
ZW50LCBtZW51UHJvdmlkZXIucHRyKCkpOwogICAgIG1fbWVudVByb3ZpZGVyID0gbWVudVByb3Zp
ZGVyLnB0cigpOworICAgIG1fZnJvbnRlbmRQYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5z
aG93Q29udGV4dE1lbnUoKmV2ZW50LCBtZW51UHJvdmlkZXIpOwogfQogCiAjZW5kaWYKQEAgLTM1
NSw3ICszNTUsNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6ZGlzcGF0Y2hFdmVudEFz
Q29udGV4dE1lbnVFdmVudChFdmVudCogZXZlbnQpCiAgICAgTW91c2VFdmVudCYgbW91c2VFdmVu
dCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+KCpldmVudCk7CiAgICAgSW50UG9pbnQgbW91c2VQb2lu
dCA9IEludFBvaW50KG1vdXNlRXZlbnQuY2xpZW50WCgpLCBtb3VzZUV2ZW50LmNsaWVudFkoKSk7
CiAKLSAgICBtX2Zyb250ZW5kUGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0NvbnRl
eHRNZW51QXQoZnJhbWUsIG1vdXNlUG9pbnQpOworICAgIG1fZnJvbnRlbmRQYWdlLT5jb250ZXh0
TWVudUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnVBdCgqZnJhbWUsIG1vdXNlUG9pbnQpOwog
I2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZXZlbnQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGU3NTQ5NWZkNDI0YzIzZTg5NTM2Y2E4ZDQzMzkwNTNi
ZDRlMTFiYmQuLjU3NzkwYjUwY2ZjZGE0YTUyZjBjNGMwMmViNTdhYjIzM2E2ZDU3YjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NzIsMTkgKzU3MiwxOSBAQCBj
bGFzcyBFbXB0eVZpc2l0ZWRMaW5rU3RvcmUgZmluYWwgOiBwdWJsaWMgVmlzaXRlZExpbmtTdG9y
ZSB7CiAgICAgdm9pZCBhZGRWaXNpdGVkTGluayhQYWdlJiwgTGlua0hhc2gpIGZpbmFsIHsgfQog
fTsKIAotUmVmUHRyPFBvcHVwTWVudT4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVu
dShQb3B1cE1lbnVDbGllbnQqKSBjb25zdAorUmVmUHRyPFBvcHVwTWVudT4gRW1wdHlDaHJvbWVD
bGllbnQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdAogewogICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEVtcHR5UG9wdXBNZW51KTsKIH0KIAotUmVmUHRyPFNlYXJjaFBv
cHVwTWVudT4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqKSBjb25zdAorUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gRW1wdHlDaHJvbWVDbGll
bnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdAogewogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U2VhcmNoUG9wdXBNZW51KTsKIH0KIAogI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQogCi1zdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBF
bXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCos
IGNvbnN0IENvbG9yJikKK3N0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IEVtcHR5Q2hyb21l
Q2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3QgQ29s
b3ImKQogewogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCmluZGV4IDkxYzJkMzg2OTAxMGRhNWVhNDNkMDA5Y2QwZjEzZTBiNzhlN2NmZjUuLmM5
ZWJlYTQ4YzhmYTY5YTZmNTY3MTU4NWNiNmRiNjRiOTM2MDZhNGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRW1wdHlDbGllbnRzLmgKQEAgLTYxLDcgKzYxLDcgQEAgY2xhc3MgRW1wdHlDaHJvbWVDbGll
bnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdl
ZChFbGVtZW50KikgZmluYWwgeyB9CiAgICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1l
KikgZmluYWwgeyB9CiAKLSAgICBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFt
ZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJikgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIFBhZ2UqIGNyZWF0ZVdpbmRvdyhG
cmFtZSYsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYsIGNv
bnN0IE5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdm9p
ZCBzaG93KCkgZmluYWwgeyB9CiAKICAgICBib29sIGNhblJ1bk1vZGFsKCkgZmluYWwgeyByZXR1
cm4gZmFsc2U7IH0KQEAgLTg0LDE5ICs4NCwxOSBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6
IHB1YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNz
YWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkLCB1bnNpZ25l
ZCwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CiAKICAgICBib29sIGNhblJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbCgpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBydW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiwgRnJhbWUqKSBmaW5hbCB7IHJldHVy
biB0cnVlOyB9CisgICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3Ry
aW5nJiwgRnJhbWUmKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2b2lkIGNsb3NlV2lu
ZG93U29vbigpIGZpbmFsIHsgfQogCi0gICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUq
LCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KLSAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJt
KEZyYW1lKiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBib29s
IHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
LCBTdHJpbmcmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgcnVuSmF2YVNjcmlw
dEFsZXJ0KEZyYW1lJiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CisgICAgYm9vbCBydW5KYXZh
U2NyaXB0Q29uZmlybShGcmFtZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiwgY29uc3QgU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiwgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIGJv
b2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBmaW5hbCB7IHJldHVybiBm
YWxzZTsgfQogICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0Rp
cmVjdGlvbigpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBoYXNPcGVuZWRQb3B1
cCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgUmVmUHRyPFBvcHVwTWVudT4g
Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IGZpbmFsOwotICAgIFJlZlB0
cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQq
KSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4g
Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0IGZpbmFsOwogCiAg
ICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQogCkBAIC0x
MjAsMjkgKzEyMCwyOSBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVD
bGllbnQgewogICAgIEludFJlY3Qgcm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29uc3Qg
SW50UmVjdCYgcikgY29uc3QgZmluYWwgeyByZXR1cm4gcjsgfTsKICNlbmRpZgogICAgIFBsYXRm
b3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCBmaW5hbCB7IHJldHVybiAw
OyB9Ci0gICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYp
IGNvbnN0IGZpbmFsIHsgfQorICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYsIGNv
bnN0IEludFNpemUmKSBjb25zdCBmaW5hbCB7IH0KIAogICAgIHZvaWQgc2Nyb2xsYmFyc01vZGVE
aWRDaGFuZ2UoKSBjb25zdCBmaW5hbCB7IH0KICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCkgZmluYWwgeyB9CiAKICAgICB2b2lk
IHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgVGV4dERpcmVjdGlvbikgZmluYWwgeyB9CiAKLSAg
ICB2b2lkIHByaW50KEZyYW1lKikgZmluYWwgeyB9CisgICAgdm9pZCBwcmludChGcmFtZSYpIGZp
bmFsIHsgfQogCi0gICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBT
dHJpbmcmLCBEYXRhYmFzZURldGFpbHMpIGZpbmFsIHsgfQorICAgIHZvaWQgZXhjZWVkZWREYXRh
YmFzZVF1b3RhKEZyYW1lJiwgY29uc3QgU3RyaW5nJiwgRGF0YWJhc2VEZXRhaWxzKSBmaW5hbCB7
IH0KIAogICAgIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90KSBmaW5hbCB7IH0K
LSAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmln
aW4qLCBpbnQ2NF90KSBmaW5hbCB7IH0KKyAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hl
T3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90KSBmaW5hbCB7IH0KIAogI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+
IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYpIGZp
bmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3Nl
cihDb2xvckNob29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYpIGZpbmFsOwogI2VuZGlmCiAKICAg
ICB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJikgZmluYWw7CiAgICAgdm9p
ZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXIm
KSBmaW5hbCB7IH0KIAotICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IE5vZGUqKSBmaW5h
bCB7IH0KLSAgICB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUqKSBmaW5hbCB7IH0KKyAg
ICB2b2lkIGVsZW1lbnREaWRGb2N1cyhFbGVtZW50JikgZmluYWwgeyB9CisgICAgdm9pZCBlbGVt
ZW50RGlkQmx1cihFbGVtZW50JikgZmluYWwgeyB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAg
IHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpIGZpbmFsIHsgfQpAQCAtMTUxLDggKzE1MSw4
IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAKICAg
ICB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3QgZmluYWwgeyB9
CiAKLSAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXll
ciopIGZpbmFsIHsgfQotICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZy
YW1lKiwgR3JhcGhpY3NMYXllciopIGZpbmFsIHsgfQorICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBo
aWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikgZmluYWwgeyB9CisgICAgdm9pZCBhdHRh
Y2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikgZmluYWwg
eyB9CiAgICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgZmlu
YWwgeyB9CiAgICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIGZpbmFsIHsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAxNGQ0N2RhOTcyZTky
ODM2OWFjODEzY2Y5NjE4NDc0ZjFhZjAwMTg1Li43OGRmZjBjNDNjNWZiMDExYzc4MGE0NDdhOWI2
OTJjNDRhZmQ0M2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTM5
Nyw3ICszOTcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzdWJtaXRGb3JtKFJlZjxGb3JtU3VibWlz
c2lvbj4mJiBzdWJtaXNzaW9uKQogCiAgICAgRnJhbWUqIHRhcmdldEZyYW1lID0gZmluZEZyYW1l
Rm9yTmF2aWdhdGlvbihzdWJtaXNzaW9uLT50YXJnZXQoKSwgJnN1Ym1pc3Npb24tPnN0YXRlKCku
c291cmNlRG9jdW1lbnQoKSk7CiAgICAgaWYgKCF0YXJnZXRGcmFtZSkgewotICAgICAgICBpZiAo
IURPTVdpbmRvdzo6YWxsb3dQb3BVcCgmbV9mcmFtZSkgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQorICAgICAgICBpZiAoIURPTVdpbmRvdzo6YWxsb3dQb3BV
cChtX2ZyYW1lKSAmJiAhU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkp
CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgLy8gRklYTUU6IHRhcmdldEZyYW1lIGNh
biBiZSBudWxsIGZvciB0d28gZGlzdGluY3QgcmVhc29uczoKQEAgLTE4NTIsMTEgKzE4NTIsOSBA
QCB2b2lkIEZyYW1lTG9hZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQoKQogICAgICAgICBoaXN0
b3J5KCkudXBkYXRlRm9yQ2xpZW50UmVkaXJlY3QoKTsKIAogICAgIGlmIChtX2xvYWRpbmdGcm9t
Q2FjaGVkUGFnZSkgewotI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgLy8gTm90ZSwgZGlkUmVj
ZWl2ZURvY1R5cGUgaXMgZXhwZWN0ZWQgdG8gYmUgY2FsbGVkIGZvciBjYWNoZWQgcGFnZXMuIFNl
ZSA8cmRhcjovL3Byb2JsZW0vNTkwNjc1OD4gZm9yIG1vcmUgZGV0YWlscy4KLSAgICAgICAgaWYg
KG1fZnJhbWUuZG9jdW1lbnQoKS0+ZG9jdHlwZSgpICYmIG1fZnJhbWUucGFnZSgpKQotICAgICAg
ICAgICAgbV9mcmFtZS5wYWdlKCktPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKCZtX2ZyYW1l
KTsKLSNlbmRpZgorICAgICAgICBpZiAoYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQorICAg
ICAgICAgICAgcGFnZS0+Y2hyb21lKCkuZGlkUmVjZWl2ZURvY1R5cGUobV9mcmFtZSk7CiAgICAg
ICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+cmVzdW1lKEFjdGl2ZURPTU9iamVjdDo6UGFnZUNhY2hl
KTsKIAogICAgICAgICAvLyBGb3JjZSBhIGxheW91dCB0byB1cGRhdGUgdmlldyBzaXplIGFuZCB0
aGVyZWJ5IHVwZGF0ZSBzY3JvbGxiYXJzLgpAQCAtMjQzOSwxNSArMjQzNywxNSBAQCB2b2lkIEZy
YW1lTG9hZGVyOjpkZXRhY2hDaGlsZHJlbigpCiAgICAgICAgIGNoaWxkLT5sb2FkZXIoKS5kZXRh
Y2hGcm9tUGFyZW50KCk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNsb3NlQW5kUmVtb3ZlQ2hp
bGQoRnJhbWUqIGNoaWxkKQordm9pZCBGcmFtZUxvYWRlcjo6Y2xvc2VBbmRSZW1vdmVDaGlsZChG
cmFtZSYgY2hpbGQpCiB7Ci0gICAgY2hpbGQtPnRyZWUoKS5kZXRhY2hGcm9tUGFyZW50KCk7Cisg
ICAgY2hpbGQudHJlZSgpLmRldGFjaEZyb21QYXJlbnQoKTsKIAotICAgIGNoaWxkLT5zZXRWaWV3
KG51bGxwdHIpOwotICAgIGlmIChjaGlsZC0+b3duZXJFbGVtZW50KCkgJiYgY2hpbGQtPnBhZ2Uo
KSkKLSAgICAgICAgY2hpbGQtPnBhZ2UoKS0+ZGVjcmVtZW50U3ViZnJhbWVDb3VudCgpOwotICAg
IGNoaWxkLT53aWxsRGV0YWNoUGFnZSgpOwotICAgIGNoaWxkLT5kZXRhY2hGcm9tUGFnZSgpOwor
ICAgIGNoaWxkLnNldFZpZXcobnVsbHB0cik7CisgICAgaWYgKGNoaWxkLm93bmVyRWxlbWVudCgp
ICYmIGNoaWxkLnBhZ2UoKSkKKyAgICAgICAgY2hpbGQucGFnZSgpLT5kZWNyZW1lbnRTdWJmcmFt
ZUNvdW50KCk7CisgICAgY2hpbGQud2lsbERldGFjaFBhZ2UoKTsKKyAgICBjaGlsZC5kZXRhY2hG
cm9tUGFnZSgpOwogCiAgICAgbV9mcmFtZS50cmVlKCkucmVtb3ZlQ2hpbGQoY2hpbGQpOwogfQpA
QCAtMjUyOCw3ICsyNTI2LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGV0YWNoRnJvbVBhcmVudCgp
CiAgICAgbV9wcm9ncmVzc1RyYWNrZXIgPSBudWxscHRyOwogCiAgICAgaWYgKEZyYW1lKiBwYXJl
bnQgPSBtX2ZyYW1lLnRyZWUoKS5wYXJlbnQoKSkgewotICAgICAgICBwYXJlbnQtPmxvYWRlcigp
LmNsb3NlQW5kUmVtb3ZlQ2hpbGQoJm1fZnJhbWUpOworICAgICAgICBwYXJlbnQtPmxvYWRlcigp
LmNsb3NlQW5kUmVtb3ZlQ2hpbGQobV9mcmFtZSk7CiAgICAgICAgIHBhcmVudC0+bG9hZGVyKCku
c2NoZWR1bGVDaGVja0NvbXBsZXRlZCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fZnJhbWUu
c2V0VmlldyhudWxscHRyKTsKQEAgLTMwMzIsNyArMzAzMCw3IEBAIGJvb2wgRnJhbWVMb2FkZXI6
OmRpc3BhdGNoQmVmb3JlVW5sb2FkRXZlbnQoQ2hyb21lJiBjaHJvbWUsIEZyYW1lTG9hZGVyKiBm
cmFtZUxvCiAgICAgZnJhbWVMb2FkZXJCZWluZ05hdmlnYXRlZC0+bV9jdXJyZW50TmF2aWdhdGlv
bkhhc1Nob3duQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsID0gdHJ1ZTsKIAogICAgIFN0cmluZyB0
ZXh0ID0gZG9jdW1lbnQtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcoYmVmb3JlVW5s
b2FkRXZlbnQtPnJldHVyblZhbHVlKCkpOwotICAgIHJldHVybiBjaHJvbWUucnVuQmVmb3JlVW5s
b2FkQ29uZmlybVBhbmVsKHRleHQsICZtX2ZyYW1lKTsKKyAgICByZXR1cm4gY2hyb21lLnJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbCh0ZXh0LCBtX2ZyYW1lKTsKIH0KIAogdm9pZCBGcmFtZUxv
YWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgRm9ybVN0YXRlKiBmb3JtU3RhdGUsIGJvb2wgc2hvdWxkQ29udGludWUs
IEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwp
CkBAIC0zNjU3LDcgKzM2NTUsNyBAQCBSZWZQdHI8RnJhbWU+IGNyZWF0ZVdpbmRvdyhGcmFtZSYg
b3BlbmVyRnJhbWUsIEZyYW1lJiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMbwogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb0Fw
cGx5KG9wZW5lckZyYW1lLCByZXF1ZXN0LnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSk7
Ci0gICAgUGFnZSogcGFnZSA9IG9sZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdygmb3BlbmVy
RnJhbWUsIHJlcXVlc3RXaXRoUmVmZXJyZXIsIGZlYXR1cmVzLCBOYXZpZ2F0aW9uQWN0aW9uKHJl
cXVlc3RXaXRoUmVmZXJyZXIucmVzb3VyY2VSZXF1ZXN0KCksIHNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3kpKTsKKyAgICBQYWdlKiBwYWdlID0gb2xkUGFnZS0+Y2hyb21lKCkuY3JlYXRlV2lu
ZG93KG9wZW5lckZyYW1lLCByZXF1ZXN0V2l0aFJlZmVycmVyLCBmZWF0dXJlcywgTmF2aWdhdGlv
bkFjdGlvbihyZXF1ZXN0V2l0aFJlZmVycmVyLnJlc291cmNlUmVxdWVzdCgpLCBzaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5KSk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIApAQCAtMzcwNSw3ICszNzAzLDcgQEAgUmVmUHRyPEZyYW1lPiBjcmVhdGVXaW5kb3co
RnJhbWUmIG9wZW5lckZyYW1lLCBGcmFtZSYgbG9va3VwRnJhbWUsIGNvbnN0IEZyYW1lTG8KICAg
ICAgICAgd2luZG93UmVjdC5zZXRIZWlnaHQoKmZlYXR1cmVzLmhlaWdodCArICh3aW5kb3dSZWN0
LmhlaWdodCgpIC0gdmlld3BvcnRTaXplLmhlaWdodCgpKSk7CiAKICAgICAvLyBFbnN1cmUgbm9u
LU5hTiB2YWx1ZXMsIG1pbmltdW0gc2l6ZSBhcyB3ZWxsIGFzIGJlaW5nIHdpdGhpbiB2YWxpZCBz
Y3JlZW4gYXJlYS4KLSAgICBGbG9hdFJlY3QgbmV3V2luZG93UmVjdCA9IERPTVdpbmRvdzo6YWRq
dXN0V2luZG93UmVjdChwYWdlLCB3aW5kb3dSZWN0KTsKKyAgICBGbG9hdFJlY3QgbmV3V2luZG93
UmVjdCA9IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdCgqcGFnZSwgd2luZG93UmVjdCk7CiAK
ICAgICBpZiAoIWZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBmYWEwNzEyZmE0ZDI0Nzg3ZmE1NWQ0ODRjNTQ1
NDI2NWJhNTFiNjJiLi5kNjljODI5YzRlMmY2YWJmOTRjZTFiNDA1NjQ3N2VjNmI5MGI2OThhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMzY2LDcgKzM2Niw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCByZXF1ZXN0RnJvbURlbGVnYXRlKFJlc291cmNlUmVxdWVzdCYsIHVuc2ln
bmVkIGxvbmcmIGlkZW50aWZpZXIsIFJlc291cmNlRXJyb3ImKTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZGV0YWNoQ2hpbGRyZW4oKTsKLSAgICB2b2lkIGNsb3NlQW5kUmVtb3ZlQ2hpbGQo
RnJhbWUqKTsKKyAgICB2b2lkIGNsb3NlQW5kUmVtb3ZlQ2hpbGQoRnJhbWUmKTsKIAogICAgIHZv
aWQgbG9hZEluU2FtZURvY3VtZW50KGNvbnN0IFVSTCYsIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSog
c3RhdGVPYmplY3QsIGJvb2wgaXNOZXdOYXZpZ2F0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BvbGljeUNoZWNrZXIuY3BwCmluZGV4IGJiYjYxZWI0ODIxMjE5ODNhYmViNTdiY2U0ZTg0NzM0
YjdmZTYyMjMuLmEwMWNlMjkyOWExMDEwNjAwNGEyNGU3NGE2MDhiOGNkNzY3NjFhNjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2
b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmV3V2luZG93UG9saWN5KGNvbnN0IE5hdmlnYXRpb25B
Y3Rpb24mIGFjdGlvbiwgY29uc3QgUgogICAgIGlmIChtX2ZyYW1lLmRvY3VtZW50KCkgJiYgbV9m
cmFtZS5kb2N1bWVudCgpLT5pc1NhbmRib3hlZChTYW5kYm94UG9wdXBzKSkKICAgICAgICAgcmV0
dXJuIGNvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KFBvbGljeUlnbm9yZSk7CiAKLSAgICBp
ZiAoIURPTVdpbmRvdzo6YWxsb3dQb3BVcCgmbV9mcmFtZSkpCisgICAgaWYgKCFET01XaW5kb3c6
OmFsbG93UG9wVXAobV9mcmFtZSkpCiAgICAgICAgIHJldHVybiBjb250aW51ZUFmdGVyTmF2aWdh
dGlvblBvbGljeShQb2xpY3lJZ25vcmUpOwogCiAgICAgbV9jYWxsYmFjay5zZXQocmVxdWVzdCwg
Zm9ybVN0YXRlLCBmcmFtZU5hbWUsIGFjdGlvbiwgV1RGTW92ZShmdW5jdGlvbikpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91
cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdy
b3VwLmNwcAppbmRleCA4YTI4Zjg4ZTY2NzNkYjE3MDJiMTQ0MTRmYWY3MzhiNWM3NDJmY2VmLi45
ZjlhYjAwMGNmNmQ5Mzg1ZjhhMjU4ZjUxNTFiODcwZjcyOTBkOGFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNw
cApAQCAtNzg0LDcgKzc4NCw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpjYWNoZVVw
ZGF0ZUZhaWxlZCgpCiAKIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpyZWNhbGN1bGF0ZUF2
YWlsYWJsZVNwYWNlSW5RdW90YSgpCiB7Ci0gICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCktPmFwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlKCkuY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1
ZGluZ0NhY2hlKG1fb3JpZ2luLmdldCgpLCBtX25ld2VzdENhY2hlLmdldCgpLCBtX2F2YWlsYWJs
ZVNwYWNlSW5RdW90YSkpIHsKKyAgICBpZiAoIW1fZnJhbWUtPnBhZ2UoKS0+YXBwbGljYXRpb25D
YWNoZVN0b3JhZ2UoKS5jYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2Fj
aGUobV9vcmlnaW4sIG1fbmV3ZXN0Q2FjaGUuZ2V0KCksIG1fYXZhaWxhYmxlU3BhY2VJblF1b3Rh
KSkgewogICAgICAgICAvLyBGYWlsZWQgdG8gZGV0ZXJtaW5lIHdoYXQgaXMgbGVmdCBpbiB0aGUg
cXVvdGEuIEZhbGxiYWNrIHRvIGFsbG93aW5nIGFueXRoaW5nLgogICAgICAgICBtX2F2YWlsYWJs
ZVNwYWNlSW5RdW90YSA9IEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpub1F1b3RhKCk7CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVHcm91cC5oCmluZGV4IGZjODUxZGE3Y2ZhOGM0MzMyZjY4NWVhMjkxMjJlMzdkNGRiN2Fh
YTIuLmNlYjgzZGZjNjIxNmZlNTU4NDI3N2M5ZjlhYWU1NjYwOGQ3YzRkMGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3Vw
LmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogCiAgICAgQXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2UmIHN0b3JhZ2UoKSB7IHJldHVybiBtX3N0b3JhZ2U7IH0KICAgICBjb25zdCBVUkwmIG1hbmlm
ZXN0VVJMKCkgY29uc3QgeyByZXR1cm4gbV9tYW5pZmVzdFVSTDsgfQotICAgIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luKiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbi5nZXQoKTsgfQorICAg
IGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbi5n
ZXQoKTsgfQogICAgIFVwZGF0ZVN0YXR1cyB1cGRhdGVTdGF0dXMoKSBjb25zdCB7IHJldHVybiBt
X3VwZGF0ZVN0YXR1czsgfQogICAgIHZvaWQgc2V0VXBkYXRlU3RhdHVzKFVwZGF0ZVN0YXR1cyBz
dGF0dXMpOwogCkBAIC0xMzUsNyArMTM1LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8QXBwbGljYXRp
b25DYWNoZVN0b3JhZ2U+IG1fc3RvcmFnZTsKIAogICAgIFVSTCBtX21hbmlmZXN0VVJMOwotICAg
IFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9vcmlnaW47CisgICAgUmVmPFNlY3VyaXR5T3JpZ2lu
PiBtX29yaWdpbjsKICAgICBVcGRhdGVTdGF0dXMgbV91cGRhdGVTdGF0dXMgeyBJZGxlIH07CiAg
ICAgCiAgICAgLy8gVGhpcyBpcyB0aGUgbmV3ZXN0IGNvbXBsZXRlIGNhY2hlIGluIHRoZSBncm91
cC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2UuY3BwCmluZGV4IGY0ZmE5NWI1MTdlYzc3OTE2MjRmYzBmMjVhNjU2
YjBjMDk0NDE0NzcuLmI2YjlkN2E3Y2Q2M2MwNzZhZTdhODQxMDk5OTgwYjQzZWY4N2I2YWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlLmNwcApAQCAtNDIxLDcgKzQyMSw3IEBAIHZvaWQgQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2U6OnNldERlZmF1bHRPcmlnaW5RdW90YShpbnQ2NF90IHF1b3RhKQogICAgIG1f
ZGVmYXVsdE9yaWdpblF1b3RhID0gcXVvdGE7CiB9CiAKLWJvb2wgQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2U6OmNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4sIGludDY0X3QmIHF1b3RhKQorYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3Vs
YXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgaW50NjRfdCYg
cXVvdGEpCiB7CiAgICAgU1FMaXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0b0NvdW50ZXIgdHJh
bnNhY3Rpb25Db3VudGVyOwogCkBAIC00MzIsNyArNDMyLDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4q
IG9yaWcKICAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIHN0YXRlbWVudC5iaW5kVGV4dCgxLCBTZWN1cml0eU9yaWdp
bkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbigqb3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7
CisgICAgc3RhdGVtZW50LmJpbmRUZXh0KDEsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3Vy
aXR5T3JpZ2luKG9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogICAgIGludCByZXN1bHQg
PSBzdGF0ZW1lbnQuc3RlcCgpOwogCiAgICAgLy8gUmV0dXJuIHRoZSBxdW90YSwgb3IgaWYgaXQg
d2FzIG51bGwgdGhlIGRlZmF1bHQuCkBAIC00NzIsNyArNDcyLDcgQEAgYm9vbCBBcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlVXNhZ2VGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmln
aW4qIG9yaWcKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShjb25z
dCBTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBBcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSwgaW50NjRf
dCYgcmVtYWluaW5nU2l6ZSkKK2Jvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0
ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShjb25zdCBTZWN1cml0eU9yaWdp
biYgb3JpZ2luLCBBcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSwgaW50NjRfdCYgcmVtYWluaW5nU2l6
ZSkKIHsKICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRlciB0cmFuc2Fj
dGlvbkNvdW50ZXI7CiAKQEAgLTUwMyw3ICs1MDMsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlOjpjYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUoY29u
cwogICAgIGlmIChzdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSykKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgc3RhdGVtZW50LmJpbmRUZXh0KDEsIFNlY3VyaXR5T3JpZ2luRGF0
YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpvcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKKyAg
ICBzdGF0ZW1lbnQuYmluZFRleHQoMSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlP
cmlnaW4ob3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CiAgICAgaWYgKGV4Y2x1ZGluZ0Nh
Y2hlSWRlbnRpZmllciAhPSAwKQogICAgICAgICBzdGF0ZW1lbnQuYmluZEludDY0KDIsIGV4Y2x1
ZGluZ0NhY2hlSWRlbnRpZmllcik7CiAgICAgaW50IHJlc3VsdCA9IHN0YXRlbWVudC5zdGVwKCk7
CkBAIC02ODgsMTQgKzY4OCwxNCBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzdG9y
ZShBcHBsaWNhdGlvbkNhY2hlR3JvdXAqIGdyb3VwLCBHcm91cFN0b3JhZ2VJRAogCiAgICAgc3Rh
dGVtZW50LmJpbmRJbnQ2NCgxLCB1cmxIb3N0SGFzaChncm91cC0+bWFuaWZlc3RVUkwoKSkpOwog
ICAgIHN0YXRlbWVudC5iaW5kVGV4dCgyLCBncm91cC0+bWFuaWZlc3RVUkwoKSk7Ci0gICAgc3Rh
dGVtZW50LmJpbmRUZXh0KDMsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2lu
KCpncm91cC0+b3JpZ2luKCkpLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKKyAgICBzdGF0ZW1lbnQu
YmluZFRleHQoMywgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oZ3JvdXAt
Pm9yaWdpbigpKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CiAKICAgICBpZiAoIWV4ZWN1dGVTdGF0
ZW1lbnQoc3RhdGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgdW5zaWduZWQg
Z3JvdXBTdG9yYWdlSUQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9kYXRhYmFzZS5sYXN0SW5z
ZXJ0Um93SUQoKSk7CiAKLSAgICBpZiAoIWVuc3VyZU9yaWdpblJlY29yZChncm91cC0+b3JpZ2lu
KCkpKQorICAgIGlmICghZW5zdXJlT3JpZ2luUmVjb3JkKCZncm91cC0+b3JpZ2luKCkpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBncm91cC0+c2V0U3RvcmFnZUlEKGdyb3VwU3RvcmFn
ZUlEKTsKQEAgLTk3MSw3ICs5NzEsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpj
aGVja09yaWdpblF1b3RhKEFwcGxpY2F0aW9uQ2FjaGVHcm91cCogZ3JvdXAsIEFwcAogewogICAg
IC8vIENoZWNrIGlmIHRoZSBvbGRDYWNoZSB3aXRoIHRoZSBuZXdDYWNoZSB3b3VsZCByZWFjaCB0
aGUgcGVyLW9yaWdpbiBxdW90YS4KICAgICBpbnQ2NF90IHJlbWFpbmluZ1NwYWNlSW5PcmlnaW47
Ci0gICAgY29uc3QgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGdyb3VwLT5vcmlnaW4oKTsKKyAg
ICBhdXRvJiBvcmlnaW4gPSBncm91cC0+b3JpZ2luKCk7CiAgICAgaWYgKGNhbGN1bGF0ZVJlbWFp
bmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShvcmlnaW4sIG9sZENhY2hlLCByZW1haW5p
bmdTcGFjZUluT3JpZ2luKSkgewogICAgICAgICBpZiAocmVtYWluaW5nU3BhY2VJbk9yaWdpbiA8
IG5ld0NhY2hlLT5lc3RpbWF0ZWRTaXplSW5TdG9yYWdlKCkpIHsKICAgICAgICAgICAgIGludDY0
X3QgcXVvdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oCmluZGV4IDlmYTI5MmVlNTBmYWVlODljMzVjODYxYThm
OTlmYTE2ZjkwNTQ3NmQuLjlkMTdhMWJjZDA2YTZhYzExMWEwYWNhYTYwNzY0ZjZiMTU0MDUwZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZS5oCkBAIC02Myw4ICs2Myw4IEBAIHB1YmxpYzoKICAgICBpbnQ2NF90
IGRlZmF1bHRPcmlnaW5RdW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmYXVsdE9yaWdpblF1b3Rh
OyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREZWZhdWx0T3JpZ2luUXVvdGEoaW50NjRf
dCBxdW90YSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjYWxjdWxhdGVVc2FnZUZvck9yaWdp
bihjb25zdCBTZWN1cml0eU9yaWdpbiosIGludDY0X3QmIHVzYWdlKTsKLSAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiwg
aW50NjRfdCYgcXVvdGEpOwotICAgIGJvb2wgY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdp
bkV4Y2x1ZGluZ0NhY2hlKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiwgQXBwbGljYXRpb25DYWNoZSos
IGludDY0X3QmIHJlbWFpbmluZ1NpemUpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2FsY3Vs
YXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90JiBxdW90YSk7
CisgICAgYm9vbCBjYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUo
Y29uc3QgU2VjdXJpdHlPcmlnaW4mLCBBcHBsaWNhdGlvbkNhY2hlKiwgaW50NjRfdCYgcmVtYWlu
aW5nU2l6ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzdG9yZVVwZGF0ZWRRdW90YUZvck9y
aWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiosIGludDY0X3QgcXVvdGEpOwogICAgIGJvb2wgY2hl
Y2tPcmlnaW5RdW90YShBcHBsaWNhdGlvbkNhY2hlR3JvdXAqLCBBcHBsaWNhdGlvbkNhY2hlKiBv
bGRDYWNoZSwgQXBwbGljYXRpb25DYWNoZSogbmV3Q2FjaGUsIGludDY0X3QmIHRvdGFsU3BhY2VO
ZWVkZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRt
bC9NSFRNTEFyY2hpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwv
TUhUTUxBcmNoaXZlLmNwcAppbmRleCBhOTIxYjA1ZTg0NmEwNWE1YWZjZTYzMDNhYTE4ZjhiZjMw
NzA5ZGI0Li4yY2E2N2UyN2JlODg0MmNjN2EyMTdkYWE5MjU1ZTgxOGVmOWExOTJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5j
cHAKQEAgLTEzMyw4ICsxMzMsOCBAQCBSZWZQdHI8TUhUTUxBcmNoaXZlPiBNSFRNTEFyY2hpdmU6
OmNyZWF0ZShjb25zdCBVUkwmIHVybCwgU2hhcmVkQnVmZmVyJiBkYXRhKQogUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gTUhUTUxBcmNoaXZlOjpnZW5lcmF0ZU1IVE1MRGF0YShQYWdlKiBwYWdlKQogewog
ICAgIFZlY3RvcjxQYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U+IHJlc291cmNlczsKLSAgICBQYWdl
U2VyaWFsaXplciBwYWdlU2VyaWFsaXplcigmcmVzb3VyY2VzKTsKLSAgICBwYWdlU2VyaWFsaXpl
ci5zZXJpYWxpemUocGFnZSk7CisgICAgUGFnZVNlcmlhbGl6ZXIgcGFnZVNlcmlhbGl6ZXIocmVz
b3VyY2VzKTsKKyAgICBwYWdlU2VyaWFsaXplci5zZXJpYWxpemUoKnBhZ2UpOwogCiAgICAgU3Ry
aW5nIGJvdW5kYXJ5ID0gZ2VuZXJhdGVSYW5kb21Cb3VuZGFyeSgpOwogICAgIFN0cmluZyBlbmRP
ZlJlc291cmNlQm91bmRhcnkgPSBtYWtlU3RyaW5nKCItLSIsIGJvdW5kYXJ5LCAiXHJcbiIpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCmluZGV4IGUxNTE3NmQzMzE5ZDk0
Y2UwYjljOTFmYmJkOGViNzM3ODE5NGM4NjQuLmU5NzEzOTYxY2UzYjc0ODg0YTFiM2JlM2U1MGE3
MzkwNjIzZjg5ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAKQEAg
LTE4Miw3ICsxODIsNyBAQCBib29sIE1hdGhNTEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUo
S2V5Ym9hcmRFdmVudCYgZXZlbnQpIGNvbnN0CiAgICAgICAgIHJldHVybiBTdHlsZWRFbGVtZW50
Ojppc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KTsKIAogICAgIGlmIChpc0xpbmsoKSkKLSAgICAg
ICAgcmV0dXJuIGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3Mo
JmV2ZW50KTsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVy
KCkudGFic1RvTGlua3MoZXZlbnQpOwogCiAgICAgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6OmlzS2V5
Ym9hcmRGb2N1c2FibGUoZXZlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDc0ZGRl
MWEzNGUxNWU5MDk3MWFkMDg2ZTI3MGI5YWE1Njk4ODIxMGIuLmUzNjNmNDNhZGM2ZjViY2U0OTA4
NDQwOTc1Mzc0NmFhODYxZTg0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTQ4LDcgKzQ4
LDYgQEAKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiV2luZG93RmVh
dHVyZXMuaCIKICNpbmNsdWRlIDxydW50aW1lL1ZNLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CiAKQEAgLTYzLDEwICs2Miw2IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBDaHJv
bWU6OkNocm9tZShQYWdlJiBwYWdlLCBDaHJvbWVDbGllbnQmIGNsaWVudCkKICAgICA6IG1fcGFn
ZShwYWdlKQogICAgICwgbV9jbGllbnQoY2xpZW50KQotICAgICwgbV9kaXNwbGF5SUQoMCkKLSNp
ZiBQTEFURk9STShJT1MpCi0gICAgLCBtX2lzRGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VT
dXBwcmVzc2VkKGZhbHNlKQotI2VuZGlmCiB7CiB9CiAKQEAgLTExNCw2ICsxMDksNyBAQCBJbnRS
ZWN0IENocm9tZTo6cm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAog
fQogICAgIAogI2lmIFBMQVRGT1JNKElPUykKKwogSW50UG9pbnQgQ2hyb21lOjphY2Nlc3NpYmls
aXR5U2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fY2xpZW50LmFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KHBvaW50KTsKQEAg
LTEyMyw2ICsxMTksNyBAQCBJbnRSZWN0IENocm9tZTo6cm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlT
Y3JlZW4oY29uc3QgSW50UmVjdCYgcmVjdCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jbGllbnQu
cm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4ocmVjdCk7CiB9CisKICNlbmRpZgogCiBQbGF0
Zm9ybVBhZ2VDbGllbnQgQ2hyb21lOjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdApAQCAtMTMw
LDcgKzEyNyw3IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBDaHJvbWU6OnBsYXRmb3JtUGFnZUNsaWVu
dCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2xpZW50LnBsYXRmb3JtUGFnZUNsaWVudCgpOwogfQog
Ci12b2lkIENocm9tZTo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IElu
dFNpemUmIHNpemUpIGNvbnN0Cit2b2lkIENocm9tZTo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFt
ZSYgZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CiB7CiAgICAgbV9jbGllbnQuY29u
dGVudHNTaXplQ2hhbmdlZChmcmFtZSwgc2l6ZSk7CiB9CkBAIC0xOTAsMTUgKzE4NywxMyBAQCB2
b2lkIENocm9tZTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSogZnJhbWUpIGNvbnN0CiAgICAg
bV9jbGllbnQuZm9jdXNlZEZyYW1lQ2hhbmdlZChmcmFtZSk7CiB9CiAKLVBhZ2UqIENocm9tZTo6
Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9u
JiBhY3Rpb24pIGNvbnN0CitQYWdlKiBDaHJvbWU6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUs
IGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBm
ZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uKSBjb25zdAogewogICAgIFBh
Z2UqIG5ld1BhZ2UgPSBtX2NsaWVudC5jcmVhdGVXaW5kb3coZnJhbWUsIHJlcXVlc3QsIGZlYXR1
cmVzLCBhY3Rpb24pOwogICAgIGlmICghbmV3UGFnZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAg
ICBpZiAoU3RvcmFnZU5hbWVzcGFjZSogb2xkU2Vzc2lvblN0b3JhZ2UgPSBtX3BhZ2Uuc2Vzc2lv
blN0b3JhZ2UoZmFsc2UpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoYXV0byog
b2xkU2Vzc2lvblN0b3JhZ2UgPSBtX3BhZ2Uuc2Vzc2lvblN0b3JhZ2UoZmFsc2UpKQogICAgICAg
ICBuZXdQYWdlLT5zZXRTZXNzaW9uU3RvcmFnZShvbGRTZXNzaW9uU3RvcmFnZS0+Y29weShuZXdQ
YWdlKSk7Ci0KICAgICByZXR1cm4gbmV3UGFnZTsKIH0KIApAQCAtMjc2LDcgKzI3MSw3IEBAIGJv
b2wgQ2hyb21lOjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKQogICAgIHJldHVybiBt
X2NsaWVudC5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKTsKIH0KIAotYm9vbCBDaHJv
bWU6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZy
YW1lKiBmcmFtZSkKK2Jvb2wgQ2hyb21lOjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSYgZnJhbWUpCiB7CiAgICAgLy8gRGVmZXIgbG9hZHMg
aW4gY2FzZSB0aGUgY2xpZW50IG1ldGhvZCBydW5zIGEgbmV3IGV2ZW50IGxvb3AgdGhhdCB3b3Vs
ZAogICAgIC8vIG90aGVyd2lzZSBjYXVzZSB0aGUgbG9hZCB0byBjb250aW51ZSB3aGlsZSB3ZSdy
ZSBpbiB0aGUgbWlkZGxlIG9mIGV4ZWN1dGluZyBKYXZhU2NyaXB0LgpAQCAtMjkwLDUzICsyODUs
NDcgQEAgdm9pZCBDaHJvbWU6OmNsb3NlV2luZG93U29vbigpCiAgICAgbV9jbGllbnQuY2xvc2VX
aW5kb3dTb29uKCk7CiB9CiAKLXZvaWQgQ2hyb21lOjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUq
IGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIENocm9tZTo6cnVuSmF2YVNjcmlw
dEFsZXJ0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIC8vIERl
ZmVyIGxvYWRzIGluIGNhc2UgdGhlIGNsaWVudCBtZXRob2QgcnVucyBhIG5ldyBldmVudCBsb29w
IHRoYXQgd291bGQKICAgICAvLyBvdGhlcndpc2UgY2F1c2UgdGhlIGxvYWQgdG8gY29udGludWUg
d2hpbGUgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBleGVjdXRpbmcgSmF2YVNjcmlwdC4KICAgICBQ
YWdlR3JvdXBMb2FkRGVmZXJyZXIgZGVmZXJyZXIobV9wYWdlLCB0cnVlKTsKIAotICAgIEFTU0VS
VChmcmFtZSk7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7Ci0gICAgU3RyaW5n
IGRpc3BsYXlNZXNzYWdlID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmco
bWVzc2FnZSk7CisgICAgU3RyaW5nIGRpc3BsYXlNZXNzYWdlID0gZnJhbWUuZGlzcGxheVN0cmlu
Z01vZGlmaWVkQnlFbmNvZGluZyhtZXNzYWdlKTsKIAogICAgIG1fY2xpZW50LnJ1bkphdmFTY3Jp
cHRBbGVydChmcmFtZSwgZGlzcGxheU1lc3NhZ2UpOwogfQogCi1ib29sIENocm9tZTo6cnVuSmF2
YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCitib29s
IENocm9tZTo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCiB7CiAgICAgLy8gRGVmZXIgbG9hZHMgaW4gY2FzZSB0aGUgY2xpZW50IG1ldGhv
ZCBydW5zIGEgbmV3IGV2ZW50IGxvb3AgdGhhdCB3b3VsZAogICAgIC8vIG90aGVyd2lzZSBjYXVz
ZSB0aGUgbG9hZCB0byBjb250aW51ZSB3aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGV4ZWN1
dGluZyBKYXZhU2NyaXB0LgogICAgIFBhZ2VHcm91cExvYWREZWZlcnJlciBkZWZlcnJlcihtX3Bh
Z2UsIHRydWUpOwogCi0gICAgQVNTRVJUKGZyYW1lKTsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdP
YnNlcnZlcnMoKTsKLSAgICBTdHJpbmcgZGlzcGxheU1lc3NhZ2UgPSBmcmFtZS0+ZGlzcGxheVN0
cmluZ01vZGlmaWVkQnlFbmNvZGluZyhtZXNzYWdlKTsKLQotICAgIHJldHVybiBtX2NsaWVudC5y
dW5KYXZhU2NyaXB0Q29uZmlybShmcmFtZSwgZGlzcGxheU1lc3NhZ2UpOworICAgIHJldHVybiBt
X2NsaWVudC5ydW5KYXZhU2NyaXB0Q29uZmlybShmcmFtZSwgZnJhbWUuZGlzcGxheVN0cmluZ01v
ZGlmaWVkQnlFbmNvZGluZyhtZXNzYWdlKSk7CiB9CiAKLWJvb2wgQ2hyb21lOjpydW5KYXZhU2Ny
aXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmlu
ZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKK2Jvb2wgQ2hyb21lOjpydW5KYXZhU2Ny
aXB0UHJvbXB0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmlu
ZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKIHsKICAgICAvLyBEZWZlciBsb2FkcyBp
biBjYXNlIHRoZSBjbGllbnQgbWV0aG9kIHJ1bnMgYSBuZXcgZXZlbnQgbG9vcCB0aGF0IHdvdWxk
CiAgICAgLy8gb3RoZXJ3aXNlIGNhdXNlIHRoZSBsb2FkIHRvIGNvbnRpbnVlIHdoaWxlIHdlJ3Jl
IGluIHRoZSBtaWRkbGUgb2YgZXhlY3V0aW5nIEphdmFTY3JpcHQuCiAgICAgUGFnZUdyb3VwTG9h
ZERlZmVycmVyIGRlZmVycmVyKG1fcGFnZSwgdHJ1ZSk7CiAKLSAgICBBU1NFUlQoZnJhbWUpOwog
ICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpOwotICAgIFN0cmluZyBkaXNwbGF5UHJv
bXB0ID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcocHJvbXB0KTsKKyAg
ICBTdHJpbmcgZGlzcGxheVByb21wdCA9IGZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5j
b2RpbmcocHJvbXB0KTsKIAotICAgIGJvb2wgb2sgPSBtX2NsaWVudC5ydW5KYXZhU2NyaXB0UHJv
bXB0KGZyYW1lLCBkaXNwbGF5UHJvbXB0LCBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlF
bmNvZGluZyhkZWZhdWx0VmFsdWUpLCByZXN1bHQpOworICAgIGJvb2wgb2sgPSBtX2NsaWVudC5y
dW5KYXZhU2NyaXB0UHJvbXB0KGZyYW1lLCBkaXNwbGF5UHJvbXB0LCBmcmFtZS5kaXNwbGF5U3Ry
aW5nTW9kaWZpZWRCeUVuY29kaW5nKGRlZmF1bHRWYWx1ZSksIHJlc3VsdCk7CiAgICAgaWYgKG9r
KQotICAgICAgICByZXN1bHQgPSBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGlu
ZyhyZXN1bHQpOworICAgICAgICByZXN1bHQgPSBmcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRC
eUVuY29kaW5nKHJlc3VsdCk7CiAKICAgICByZXR1cm4gb2s7CiB9CiAKLXZvaWQgQ2hyb21lOjpz
ZXRTdGF0dXNiYXJUZXh0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBzdGF0dXMpCit2b2lk
IENocm9tZTo6c2V0U3RhdHVzYmFyVGV4dChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgc3Rh
dHVzKQogewotICAgIEFTU0VSVChmcmFtZSk7Ci0gICAgbV9jbGllbnQuc2V0U3RhdHVzYmFyVGV4
dChmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhzdGF0dXMpKTsKKyAgICBt
X2NsaWVudC5zZXRTdGF0dXNiYXJUZXh0KGZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5j
b2Rpbmcoc3RhdHVzKSk7CiB9CiAKIHZvaWQgQ2hyb21lOjptb3VzZURpZE1vdmVPdmVyRWxlbWVu
dChjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpCkBA
IC00MDcsOSArMzk2LDkgQEAgdm9pZCBDaHJvbWU6OnNldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJl
c3VsdCYgcmVzdWx0KQogICAgIG1fY2xpZW50LnNldFRvb2xUaXAodG9vbFRpcCwgdG9vbFRpcERp
cmVjdGlvbik7CiB9CiAKLXZvaWQgQ2hyb21lOjpwcmludChGcmFtZSogZnJhbWUpCit2b2lkIENo
cm9tZTo6cHJpbnQoRnJhbWUmIGZyYW1lKQogewotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBo
YXZlIFBhZ2VHcm91cExvYWREZWZlcnJlciwgbGlrZSBydW5Nb2RhbCgpIG9yIHJ1bkphdmFTY3Jp
cHRBbGVydCgpLCBiZWNhc3VlIGl0J3Mgbm8gZGlmZmVyZW50IGZyb20gdGhvc2UuCisgICAgLy8g
RklYTUU6IFRoaXMgc2hvdWxkIGhhdmUgUGFnZUdyb3VwTG9hZERlZmVycmVyLCBsaWtlIHJ1bk1v
ZGFsKCkgb3IgcnVuSmF2YVNjcmlwdEFsZXJ0KCksIGJlY2F1c2UgaXQncyBubyBkaWZmZXJlbnQg
ZnJvbSB0aG9zZS4KICAgICBtX2NsaWVudC5wcmludChmcmFtZSk7CiB9CiAKQEAgLTQyNCwxMSAr
NDEzLDEzIEBAIHZvaWQgQ2hyb21lOjpkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKQogfQogCiAj
aWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi1zdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2Vy
PiBDaHJvbWU6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCwg
Y29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKKworc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nl
cj4gQ2hyb21lOjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiBjbGllbnQs
IGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCiB7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2Jz
ZXJ2ZXJzKCk7CiAgICAgcmV0dXJuIG1fY2xpZW50LmNyZWF0ZUNvbG9yQ2hvb3NlcihjbGllbnQs
IGluaXRpYWxDb2xvcik7CiB9CisKICNlbmRpZgogCiB2b2lkIENocm9tZTo6cnVuT3BlblBhbmVs
KEZyYW1lJiBmcmFtZSwgRmlsZUNob29zZXImIGZpbGVDaG9vc2VyKQpAQCAtNTM4LDEzICs1Mjks
MTMgQEAgYm9vbCBDaHJvbWU6Omhhc09wZW5lZFBvcHVwKCkgY29uc3QKICAgICByZXR1cm4gbV9j
bGllbnQuaGFzT3BlbmVkUG9wdXAoKTsKIH0KIAotUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lOjpj
cmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8UG9w
dXBNZW51PiBDaHJvbWU6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkg
Y29uc3QKIHsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKICAgICByZXR1cm4g
bV9jbGllbnQuY3JlYXRlUG9wdXBNZW51KGNsaWVudCk7CiB9CiAKLVJlZlB0cjxTZWFyY2hQb3B1
cE1lbnU+IENocm9tZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xp
ZW50KSBjb25zdAorUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVTZWFyY2hQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7CiAgICAgbm90aWZ5UG9w
dXBPcGVuaW5nT2JzZXJ2ZXJzKCk7CiAgICAgcmV0dXJuIG1fY2xpZW50LmNyZWF0ZVNlYXJjaFBv
cHVwTWVudShjbGllbnQpOwpAQCAtNTU1LDMwICs1NDYsMjcgQEAgYm9vbCBDaHJvbWU6OnJlcXVp
cmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKQogICAgIHJldHVybiBtX2NsaWVudC5yZXF1
aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCk7CiB9CiAKLSNpZiBQTEFURk9STShJT1Mp
Ci0vLyBGSVhNRTogTWFrZSBhcmd1bWVudCwgZnJhbWUsIGEgcmVmZXJlbmNlLgotdm9pZCBDaHJv
bWU6OmRpZFJlY2VpdmVEb2NUeXBlKEZyYW1lKiBmcmFtZSkKK3ZvaWQgQ2hyb21lOjpkaWRSZWNl
aXZlRG9jVHlwZShGcmFtZSYgZnJhbWUpCiB7Ci0gICAgQVNTRVJUKGZyYW1lKTsKLSAgICBpZiAo
IWZyYW1lLT5pc01haW5GcmFtZSgpKQorI2lmICFQTEFURk9STShJT1MpCisgICAgVU5VU0VEX1BB
UkFNKGZyYW1lKTsKKyNlbHNlCisgICAgaWYgKCFmcmFtZS5pc01haW5GcmFtZSgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBib29sIGhhc01vYmlsZURvY1R5cGUgPSBmYWxzZTsKLSAgICBpZiAo
RG9jdW1lbnRUeXBlKiBkb2N1bWVudFR5cGUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9jdHlwZSgp
KQotICAgICAgICBoYXNNb2JpbGVEb2NUeXBlID0gZG9jdW1lbnRUeXBlLT5wdWJsaWNJZCgpLmNv
bnRhaW5zKCJ4aHRtbCBtb2JpbGUiLCBmYWxzZSk7Ci0gICAgbV9jbGllbnQuZGlkUmVjZWl2ZU1v
YmlsZURvY1R5cGUoaGFzTW9iaWxlRG9jVHlwZSk7Ci19CisgICAgYXV0byogZG9jdHlwZSA9IGZy
YW1lLmRvY3VtZW50KCktPmRvY3R5cGUoKTsKKyAgICBtX2NsaWVudC5kaWRSZWNlaXZlTW9iaWxl
RG9jVHlwZShkb2N0eXBlICYmIGRvY3R5cGUtPnB1YmxpY0lkKCkuY29udGFpbnNJZ25vcmluZ0FT
Q0lJQ2FzZSgieGh0bWwgbW9iaWxlIikpOwogI2VuZGlmCit9CiAKLXZvaWQgQ2hyb21lOjpyZWdp
c3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyKiBvYnNlcnZlcikK
K3ZvaWQgQ2hyb21lOjpyZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09i
c2VydmVyJiBvYnNlcnZlcikKIHsKLSAgICBBU1NFUlQob2JzZXJ2ZXIpOwotICAgIG1fcG9wdXBP
cGVuaW5nT2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZlcik7CisgICAgbV9wb3B1cE9wZW5pbmdPYnNl
cnZlcnMuYXBwZW5kKCZvYnNlcnZlcik7CiB9CiAKLXZvaWQgQ2hyb21lOjp1bnJlZ2lzdGVyUG9w
dXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXIqIG9ic2VydmVyKQordm9pZCBD
aHJvbWU6OnVucmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZl
ciYgb2JzZXJ2ZXIpCiB7Ci0gICAgYm9vbCByZW1vdmVkID0gbV9wb3B1cE9wZW5pbmdPYnNlcnZl
cnMucmVtb3ZlRmlyc3Qob2JzZXJ2ZXIpOworICAgIGJvb2wgcmVtb3ZlZCA9IG1fcG9wdXBPcGVu
aW5nT2JzZXJ2ZXJzLnJlbW92ZUZpcnN0KCZvYnNlcnZlcik7CiAgICAgQVNTRVJUX1VOVVNFRChy
ZW1vdmVkLCByZW1vdmVkKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
aHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggNmQyNWFjODkxNjAw
ZjIxODRhNjU0ZGFkMzIyNmQ0NmM4MTkzMmE2Ni4uYjNjNDY0N2MxYWU5NTAwNTIwNzgzNDllMDc2
YTI5YjBlNmFkYzZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC05NSw3ICs5NSw3IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdDsK
IAotICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNvbnN0IEludFNpemUmKSBj
b25zdDsKKyAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUmLCBjb25zdCBJbnRTaXpl
JikgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3Qg
RmxvYXRSZWN0JikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgRmxvYXRSZWN0IHdpbmRvd1Jl
Y3QoKSBjb25zdDsKQEAgLTExMSw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb2N1c2Vk
RWxlbWVudENoYW5nZWQoRWxlbWVudCopIGNvbnN0OwogICAgIHZvaWQgZm9jdXNlZEZyYW1lQ2hh
bmdlZChGcmFtZSopIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgUGFnZSogY3JlYXRlV2lu
ZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVz
JiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFBh
Z2UqIGNyZWF0ZVdpbmRvdyhGcmFtZSYsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBX
aW5kb3dGZWF0dXJlcyYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBjb25zdDsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNob3coKSBjb25zdDsKIAogICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBj
b25zdDsKQEAgLTEzMiwyNiArMTMyLDI2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlc2l6YWJs
ZShib29sKSBjb25zdDsKIAogICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KCk7Ci0gICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBGcmFtZSopOworICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmKTsKIAogICAgIHZvaWQgY2xvc2VXaW5kb3dTb29u
KCk7CiAKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmluZyYp
OwotICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmKTsK
LSAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KEZyYW1lKiwgY29uc3QgU3RyaW5nJik7
CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmLCBjb25zdCBTdHJpbmcmKTsKKyAg
ICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiwgY29uc3QgU3RyaW5nJik7CisgICAg
Ym9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChGcmFtZSYsIGNvbnN0IFN0cmluZyYpOwogCiAg
ICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5z
aWduZWQgbW9kaWZpZXJGbGFncyk7CiAKICAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgSGl0VGVz
dFJlc3VsdCYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcmludChGcmFtZSopOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJpbnQoRnJhbWUmKTsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZW5hYmxlU3VkZGVuVGVybWluYXRpb24oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpOwogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09M
T1IpCi0gICAgc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2Vy
KENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29z
ZXJDbGllbnQmLCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKTsKICNlbmRpZgogCiAgICAgdm9p
ZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYpOwpAQCAtMTY4LDI4ICsxNjgsMjgg
QEAgcHVibGljOgogICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwo
KTsKICAgICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rp
b24oKTsKICAgICBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3Q7Ci0gICAgUmVmUHRyPFBvcHVw
TWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwotICAgIFJlZlB0
cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQq
KSBjb25zdDsKKyAgICBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50JikgY29uc3Q7CisgICAgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNo
UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oSU9TKQog
ICAgIC8vIEZJWE1FOiBDYW4gd2UgY29tZSB1cCB3aXRoIGEgYmV0dGVyIG5hbWUgZm9yIHRoaXMg
c2V0dGVyPwogICAgIHZvaWQgc2V0RGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVz
c2VkKGJvb2wgZGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkKSB7IG1faXNE
aXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZVN1cHByZXNzZWQgPSBkaXNwYXRjaFZpZXdwb3J0
RGF0YURpZENoYW5nZVN1cHByZXNzZWQ7IH0KLQotICAgIHZvaWQgZGlkUmVjZWl2ZURvY1R5cGUo
RnJhbWUqKTsKICNlbmRpZgogCi0gICAgdm9pZCByZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVy
KFBvcHVwT3BlbmluZ09ic2VydmVyKik7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyUG9wdXBPcGVuaW5n
T2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEb2NU
eXBlKEZyYW1lJik7CisKKyAgICB2b2lkIHJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9w
dXBPcGVuaW5nT2JzZXJ2ZXImKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNl
cnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgbm90aWZ5
UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCkgY29uc3Q7CiAKICAgICBQYWdlJiBtX3BhZ2U7CiAgICAg
Q2hyb21lQ2xpZW50JiBtX2NsaWVudDsKLSAgICBQbGF0Zm9ybURpc3BsYXlJRCBtX2Rpc3BsYXlJ
RDsKKyAgICBQbGF0Zm9ybURpc3BsYXlJRCBtX2Rpc3BsYXlJRCB7IDAgfTsKICAgICBWZWN0b3I8
UG9wdXBPcGVuaW5nT2JzZXJ2ZXIqPiBtX3BvcHVwT3BlbmluZ09ic2VydmVyczsKICNpZiBQTEFU
Rk9STShJT1MpCi0gICAgYm9vbCBtX2lzRGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBw
cmVzc2VkOworICAgIGJvb2wgbV9pc0Rpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlU3VwcHJl
c3NlZCB7IGZhbHNlIH07CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5o
CmluZGV4IDJjODliNmNiYTUwNjgwYjk3MmRjNTVmYzRiMjRjNDg5MGZhZWI4MjQuLjhhMTYzOTFm
YmI4NmJjY2I3NGZmZTVjNDFmZjVhNTg2NmNlN2VhNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaApAQCAtMTIzLDcgKzEyMyw3IEBAIHB1YmxpYzoKICAgICAvLyBjcmVhdGVkIFBhZ2Ug
aGFzIGl0cyBzaG93IG1ldGhvZCBjYWxsZWQuCiAgICAgLy8gVGhlIEZyYW1lTG9hZFJlcXVlc3Qg
cGFyYW1ldGVyIGlzIG9ubHkgZm9yIENocm9tZUNsaWVudCB0byBjaGVjayBpZiB0aGUKICAgICAv
LyByZXF1ZXN0IGNvdWxkIGJlIGZ1bGZpbGxlZC4gVGhlIENocm9tZUNsaWVudCBzaG91bGQgbm90
IGxvYWQgdGhlIHJlcXVlc3QuCi0gICAgdmlydHVhbCBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUq
LCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJikgPSAwOworICAgIHZpcnR1YWwgUGFnZSogY3JlYXRlV2luZG93KEZy
YW1lJiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29u
c3QgTmF2aWdhdGlvbkFjdGlvbiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvdygpID0gMDsK
IAogICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5Nb2RhbCgpID0gMDsKQEAgLTE0Niw2MyArMTQ2LDY3
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdl
U291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGlu
ZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSA9
IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkg
PSAwOwotICAgIHZpcnR1YWwgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBGcmFtZSopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmKSA9IDA7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgPSAwOwogCi0gICAgdmlydHVhbCB2
b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2
aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmKSA9
IDA7Ci0gICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3Vs
dCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmLCBjb25z
dCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZy
YW1lJiwgY29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0
UHJvbXB0KEZyYW1lJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1
bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVz
YmFyVGV4dChjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCBLZXlib2FyZFVJTW9kZSBr
ZXlib2FyZFVJTW9kZSgpID0gMDsKIAotICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93
LgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ltbWVkaWF0ZUludmFsaWRhdGlvbigpIHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJ
bnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290
Vmlldyhjb25zdCBJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29u
dGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKSA9
IDA7CisKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgdmlydHVhbCB2b2lkIGRl
bGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJbnRQb2ludCYpID0gMDsKICNlbmRpZgorCiAg
ICAgdmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JikgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgSW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IEludFJl
Y3QmKSBjb25zdCA9IDA7CisKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBJbnRQb2lu
dCBhY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIEludFJlY3Qgcm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29u
c3QgSW50UmVjdCYpIGNvbnN0ID0gMDsKICNlbmRpZiAgICAKKwogICAgIHZpcnR1YWwgUGxhdGZv
cm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCA9IDA7CisKICNpZiBFTkFCTEUo
Q1VSU09SX1NVUFBPUlQpCiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3Im
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhi
b29sKSA9IDA7CiAjZW5kaWYKKwogI2lmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElN
RVIpCiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgPSAwOwogI2VuZGlmCi0g
ICAgLy8gRW5kIG1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgogCi0gICAgdmlydHVhbCBGbG9h
dFNpemUgc2NyZWVuU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Q2hyb21lQ2xpZW50
Kj4odGhpcyktPndpbmRvd1JlY3QoKS5zaXplKCk7IH0KLSAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBh
dmFpbGFibGVTY3JlZW5TaXplKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxDaHJvbWVDbGll
bnQqPih0aGlzKS0+d2luZG93UmVjdCgpLnNpemUoKTsgfQorICAgIHZpcnR1YWwgRmxvYXRTaXpl
IHNjcmVlblNpemUoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PENocm9tZUNsaWVudCY+KCp0
aGlzKS53aW5kb3dSZWN0KCkuc2l6ZSgpOyB9CisgICAgdmlydHVhbCBGbG9hdFNpemUgYXZhaWxh
YmxlU2NyZWVuU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Q2hyb21lQ2xpZW50Jj4o
KnRoaXMpLndpbmRvd1JlY3QoKS5zaXplKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYpIGNv
bnN0IHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBj
b25zdCBJbnRTaXplJikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVD
aGFuZ2VkKEZyYW1lJiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCB7IH07IC8vIEN1cnJl
bnRseSBvbmx5IE1hYyBoYXMgYSBub24gZW1wdHkgaW1wbGVtZW50YXRpb24uCiAKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVyRW1i
ZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQo
RWxlbWVudCosIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNv
bikgY29uc3QgeyB9CisgICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xp
Y2tlZChFbGVtZW50JiwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uKSBjb25zdCB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1l
bnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpID0gMDsKIAog
ICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rpb24p
ID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSopID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgcHJpbnQoRnJhbWUmKSA9IDA7CiAKICAgICB2aXJ0dWFsIENvbG9yIHVuZGVybGF5Q29s
b3IoKSBjb25zdCB7IHJldHVybiBDb2xvcigpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFnZUV4
dGVuZGVkQmFja2dyb3VuZENvbG9yRGlkQ2hhbmdlKENvbG9yKSBjb25zdCB7IH0KIAotICAgIHZp
cnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmIGRh
dGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGV4Y2Vl
ZGVkRGF0YWJhc2VRdW90YShGcmFtZSYsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRh
YmFzZURldGFpbHMpID0gMDsKIAogICAgIC8vIENhbGxiYWNrIGludm9rZWQgd2hlbiB0aGUgYXBw
bGljYXRpb24gY2FjaGUgZmFpbHMgdG8gc2F2ZSBhIGNhY2hlIG9iamVjdAogICAgIC8vIGJlY2F1
c2Ugc3RvcmluZyBpdCB3b3VsZCBncm93IHRoZSBkYXRhYmFzZSBmaWxlIHBhc3QgaXRzIGRlZmlu
ZWQgbWF4aW11bQpAQCAtMjE5LDcgKzIyMyw3IEBAIHB1YmxpYzoKICAgICAvLyBzdG9yYWdlLCBp
biBieXRlcywgbmVlZGVkIHRvIHN0b3JlIHRoZSBuZXcgY2FjaGUgYWxvbmcgd2l0aCBhbGwgb2Yg
dGhlCiAgICAgLy8gb3RoZXIgZXhpc3RpbmcgY2FjaGVzIGZvciB0aGUgb3JpZ2luIHRoYXQgd291
bGQgbm90IGJlIHJlcGxhY2VkIGJ5CiAgICAgLy8gdGhlIG5ldyBjYWNoZS4KLSAgICB2aXJ0dWFs
IHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbios
IGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWFjaGVk
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCB0b3Rh
bFNwYWNlTmVlZGVkKSA9IDA7CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAg
dmlydHVhbCB2b2lkIGFubm90YXRlZFJlZ2lvbnNDaGFuZ2VkKCk7CkBAIC0yMzYsMTAgKzI0MCwx
MCBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCB2b2lkIGRpZFJl
Y2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNT
Y3JvbGxOb3RpZmljYXRpb25zKEZyYW1lKiwgYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBv
YnNlcnZlZENvbnRlbnRDaGFuZ2UoRnJhbWUqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFy
Q29udGVudENoYW5nZU9ic2VydmVycyhGcmFtZSopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKEZyYW1lKikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoRnJhbWUmLCBib29sKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShGcmFtZSYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKEZyYW1lJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUo
RnJhbWUmKSA9IDA7CiAKICAgICBlbnVtIExheW91dFR5cGUgeyBOb3JtYWxMYXlvdXQsIFNjcm9s
bCB9OwogICAgIHZpcnR1YWwgdm9pZCBkaWRMYXlvdXQoTGF5b3V0VHlwZSA9IE5vcm1hbExheW91
dCkgPSAwOwpAQCAtMjcwLDE2ICsyNzQsMTYgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNo
b29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xv
ciYpID0gMDsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0
ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYpID0gMDsKICNl
bmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2Vy
JikgPSAwOwogICAgIC8vIEFzeW5jaHJvbm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Ig
c3BlY2lmaWVkIGZpbGVuYW1lcy4KICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJikgPSAwOwogICAgICAgICAKLSAg
ICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IE5vZGUqKSB7IH07Ci0gICAgdmly
dHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUqKSB7IH07Ci0gICAgdmlydHVhbCB2
b2lkIGVsZW1lbnREaWRSZWZvY3VzKGNvbnN0IE5vZGUqKSB7IH07CisgICAgdmlydHVhbCB2b2lk
IGVsZW1lbnREaWRGb2N1cyhFbGVtZW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGVsZW1lbnRE
aWRCbHVyKEVsZW1lbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZFJlZm9jdXMo
RWxlbWVudCYpIHsgfQogICAgIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQYWludEVudGlyZUNv
bnRlbnRzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFzU3Rh
YmxlUGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMjkxLDkgKzI5
NSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+
IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3QgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKLSAgICAvLyBQYXNzIDAgYXMgdGhlIEdyYXBoaWNz
TGF5ZXIgdG8gZGV0YXRjaCB0aGUgcm9vdCBsYXllci4KLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
Um9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xh
eWVyKikgPSAwOworICAgIC8vIFBhc3MgbnVsbHB0ciBhcyB0aGUgR3JhcGhpY3NMYXllciB0byBk
ZXRhdGNoIHRoZSByb290IGxheWVyLgorICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhp
Y3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGF0
dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSA9IDA7
CiAgICAgLy8gU2V0cyBhIGZsYWcgdG8gc3BlY2lmeSB0aGF0IHRoZSBuZXh0IHRpbWUgY29udGVu
dCBpcyBkcmF3biB0byB0aGUgd2luZG93LAogICAgIC8vIHRoZSBjaGFuZ2VzIGFwcGVhciBvbiB0
aGUgc2NyZWVuIGluIHN5bmNocm9ueSB3aXRoIHVwZGF0ZXMgdG8gR3JhcGhpY3NMYXllcnMuCiAg
ICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSA9
IDA7CkBAIC0zMjUsMjYgKzMyOSwyOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgYWRq
dXN0TGF5ZXJGbHVzaFRocm90dGxpbmcoTGF5ZXJGbHVzaFRocm90dGxlU3RhdGU6OkZsYWdzKSB7
IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlKikgY29uc3QgeyByZXR1cm4g
bnVsbHB0cjsgfQorICAgIHZpcnR1YWwgUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVh
dGVTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlJikgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQog
CiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotICAgIHZpcnR1YWwgR3Jh
cGhpY3NEZXZpY2VBZGFwdGVyKiBncmFwaGljc0RldmljZUFkYXB0ZXIoKSBjb25zdCB7IHJldHVy
biAwOyB9CisgICAgdmlydHVhbCBHcmFwaGljc0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2aWNl
QWRhcHRlcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCiAgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSkgeyByZXR1cm4gZmFsc2U7IH0KKwogI2lmIEVOQUJMRShWSURFTykK
ICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRN
TFZpZGVvRWxlbWVudCYsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9k
ZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXIoSFRN
TE1lZGlhRWxlbWVudCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjbGVhclBsYXliYWNrQ29udHJv
bHNNYW5hZ2VyKCkgeyB9CiAjZW5kaWYKLSAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNj
cmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JikgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdl
YkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGUgLyp0YXJnZXRNb2RlKi8pIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGV4aXRW
aWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihI
VE1MVmlkZW9FbGVtZW50JiwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5N
b2RlKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5
YmFjaygpIHsgcmV0dXJuIGZhbHNlOyB9IAogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQot
ICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1l
bnQqLCBib29sKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNG
dWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiwgYm9vbCkgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50Jikg
eyB9CisgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50Jikg
eyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFJvb3RGdWxsU2NyZWVuTGF5ZXIoR3JhcGhpY3NMYXll
ciopIHsgfQogI2VuZGlmCiAKQEAgLTM1Myw3ICszNTksNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZpcnR1YWwgTlNSZXNwb25kZXIgKmZpcnN0UmVzcG9u
ZGVyKCkgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgTlNSZXNwb25kZXIgKmZpcnN0UmVzcG9u
ZGVyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgdm9pZCBtYWtlRmlyc3RSZXNw
b25kZXIoTlNSZXNwb25kZXIgKikgeyB9CiAgICAgLy8gRm9jdXNlcyBvbiB0aGUgY29udGFpbmlu
ZyB2aWV3IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBhZ2UuCiAgICAgdmlydHVhbCB2b2lkIG1ha2VG
aXJzdFJlc3BvbmRlcigpIHsgfQpAQCAtMzc3LDEwICszODMsMTAgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9u
KCkgPSAwOwogICAgIC8vIENoZWNrcyBpZiB0aGVyZSBpcyBhbiBvcGVuZWQgcG9wdXAsIGNhbGxl
ZCBieSBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCkuCiAgICAgdmlydHVhbCBib29sIGhhc09w
ZW5lZFBvcHVwKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPFBvcHVwTWVudT4gY3Jl
YXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJl
ZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1
cE1lbnUoUG9wdXBNZW51Q2xpZW50JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPFNl
YXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNv
bnN0ID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlv
bihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24pIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0JiwgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24pIHsgfQogCiAgICAg
dmlydHVhbCB2b2lkIG5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgSW50
UmVjdCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlk
Q2hhbmdlKFNjcm9sbGJhclN0eWxlKSB7IH0KQEAgLTQwOCwxNiArNDE0LDE2IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxS
ZWZQdHI8RWxlbWVudD4+JikgeyB9OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RpZnlPbkZv
cm1DaGFuZ2VzKCkgeyByZXR1cm4gZmFsc2U7IH07CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQWRk
SGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXllciopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRG
b290ZXJMYXllcihHcmFwaGljc0xheWVyKikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhl
YWRlckxheWVyKEdyYXBoaWNzTGF5ZXImKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9v
dGVyTGF5ZXIoR3JhcGhpY3NMYXllciYpIHsgfQogCi0gICAgdmlydHVhbCBib29sIHNob3VsZFVz
ZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcqKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFt
ZVZpZXcoY29uc3QgRnJhbWVWaWV3JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZp
cnR1YWwgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MsIHVpbnQ2NF90KSB7IH0KIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAg
IHZpcnR1YWwgdm9pZCBoYXNNZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50c0RpZENo
YW5nZShib29sKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRD
aGFuZ2UoY29uc3QgV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWV0YWRhdGEmKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoY29uc3QgTWVkaWFTZXNzaW9u
TWV0YWRhdGEmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZENvbnRlbnRNZWRpYUVsZW1l
bnREaWRDaGFuZ2UodWludDY0X3QpIHsgfQogI2VuZGlmCiAKQEAgLTQyNywxMSArNDMzLDEyIEBA
IHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKFRFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9O
KSAmJiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZVRlbGVwaG9uZU51bWJl
ckNsaWNrKGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgeyB9CisgICAg
dmlydHVhbCB2b2lkIGhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGNvbnN0IFN0cmluZyYsIGNv
bnN0IEludFBvaW50JikgeyB9CiAjZW5kaWYKKwogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xT
KQotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soV2ViQ29yZTo6
RnJhbWVTZWxlY3Rpb24mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JikgeyB9Ci0gICAgdmlydHVhbCBib29sIGhhc1JlbGV2YW50U2VsZWN0aW9uU2Vydmlj
ZXMoYm9vbCAvKiBpc1RleHRPbmx5ICovKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soRnJhbWVTZWxlY3Rpb24mLCBj
b25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IEludFBvaW50JikgeyB9CisgICAgdmlydHVhbCBi
b29sIGhhc1JlbGV2YW50U2VsZWN0aW9uU2VydmljZXMoYm9vbCAvKmlzVGV4dE9ubHkqLykgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZERp
c3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KQEAgLTQ0
MSwxMyArNDQ4LDEzIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFS
R0VUKQogICAgIHZpcnR1YWwgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50
NjRfdCAvKmNvbnRleHRJZCovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUGxheWJhY2tU
YXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QgLypjb250ZXh0SWQqLykgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCAvKmNvbnRleHRJZCovLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wgLyogaXNWaWRlbyAqLykgeyB9CisgICAgdmly
dHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCAvKmNvbnRleHRJZCov
LCBjb25zdCBJbnRQb2ludCYsIGJvb2wgLyppc1ZpZGVvKi8pIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVpbnQ2NF90IC8qY29u
dGV4dElkKi8sIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKSAgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUo
Y29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0YXRl
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJT
dGF0ZShjb25zdCBTdHJpbmcmLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3RhdGUpIHsg
fQogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hh
bmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGltYWdl
T3JNZWRpYURvY3VtZW50U2l6ZUNoYW5nZWQoY29uc3QgSW50U2l6ZSYpIHsgfQogCiAjaWYgRU5B
QkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0SW5z
dGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMoY29uc3QgU3RyaW5nJiAvKmRldGFpbHMqLywgY29uc3Qg
U3RyaW5nJiAvKmRlc2NyaXB0aW9uKi8sIE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5n
UGx1Z2luc0NhbGxiYWNrJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHAKaW5kZXggMGU3YTc3YjZkYTI4OWEwMjU2OTM1MzRhZDFmYzRkNTEwOWM1
MGYzMy4uYzFjNDk0ODQwMjgzODQ5ZjE1MmJiMjc0NWY4YTFiNDYwNmVlZDNlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAtOTQsNyArOTQs
NyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y2xlYXJDb250ZXh0TWVudSgpCiAgICAg
bV9tZW51UHJvdmlkZXIgPSBudWxscHRyOwogfQogCi12b2lkIENvbnRleHRNZW51Q29udHJvbGxl
cjo6aGFuZGxlQ29udGV4dE1lbnVFdmVudChFdmVudCogZXZlbnQpCit2b2lkIENvbnRleHRNZW51
Q29udHJvbGxlcjo6aGFuZGxlQ29udGV4dE1lbnVFdmVudChFdmVudCYgZXZlbnQpCiB7CiAgICAg
bV9jb250ZXh0TWVudSA9IG1heWJlQ3JlYXRlQ29udGV4dE1lbnUoZXZlbnQpOwogICAgIGlmICgh
bV9jb250ZXh0TWVudSkKQEAgLTExMCw5ICsxMTAsOSBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PENvbnRleHRNZW51SXRlbT4gc2VwYXJhdG9ySXRlbSgpCiAgICAgcmV0dXJuIHN0ZDo6dW5pcXVl
X3B0cjxDb250ZXh0TWVudUl0ZW0+KG5ldyBDb250ZXh0TWVudUl0ZW0oU2VwYXJhdG9yVHlwZSwg
Q29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb24sIFN0cmluZygpKSk7CiB9CiAKLXZvaWQgQ29udGV4
dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZlbnQqIGV2ZW50LCBQYXNzUmVmUHRy
PENvbnRleHRNZW51UHJvdmlkZXI+IG1lbnVQcm92aWRlcikKK3ZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZlbnQmIGV2ZW50LCBDb250ZXh0TWVudVByb3ZpZGVy
JiBwcm92aWRlcikKIHsKLSAgICBtX21lbnVQcm92aWRlciA9IG1lbnVQcm92aWRlcjsKKyAgICBt
X21lbnVQcm92aWRlciA9ICZwcm92aWRlcjsKIAogICAgIG1fY29udGV4dE1lbnUgPSBtYXliZUNy
ZWF0ZUNvbnRleHRNZW51KGV2ZW50KTsKICAgICBpZiAoIW1fY29udGV4dE1lbnUpIHsKQEAgLTEy
MCw3ICsxMjAsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51
KEV2ZW50KiBldmVudCwgUGFzc1JlZlB0cjxDb250ZXh0TWVudQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgbV9tZW51UHJvdmlkZXItPnBvcHVsYXRlQ29udGV4dE1lbnUobV9jb250ZXh0
TWVudS5nZXQoKSk7CisgICAgcHJvdmlkZXIucG9wdWxhdGVDb250ZXh0TWVudShtX2NvbnRleHRN
ZW51LmdldCgpKTsKICAgICBpZiAobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5pc1NlbGVjdGVk
KCkpIHsKICAgICAgICAgYXBwZW5kSXRlbSgqc2VwYXJhdG9ySXRlbSgpLCBtX2NvbnRleHRNZW51
LmdldCgpKTsKICAgICAgICAgcG9wdWxhdGUoKTsKQEAgLTEyOSwzMyArMTI5LDM0IEBAIHZvaWQg
Q29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZlbnQqIGV2ZW50LCBQYXNz
UmVmUHRyPENvbnRleHRNZW51CiB9CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKwog
c3RhdGljIEltYWdlKiBpbWFnZUZyb21JbWFnZUVsZW1lbnROb2RlKE5vZGUmIG5vZGUpCiB7Ci0g
ICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUucmVuZGVyZXIoKTsKKyAgICBhdXRvKiBy
ZW5kZXJlciA9IG5vZGUucmVuZGVyZXIoKTsKICAgICBpZiAoIWlzPFJlbmRlckltYWdlPihyZW5k
ZXJlcikpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIENhY2hlZEltYWdlKiBpbWFnZSA9
IGRvd25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIpLmNhY2hlZEltYWdlKCk7CisgICAgYXV0
byogaW1hZ2UgPSBkb3duY2FzdDxSZW5kZXJJbWFnZT4oKnJlbmRlcmVyKS5jYWNoZWRJbWFnZSgp
OwogICAgIGlmICghaW1hZ2UgfHwgaW1hZ2UtPmVycm9yT2NjdXJyZWQoKSkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7Ci0KICAgICByZXR1cm4gaW1hZ2UtPmltYWdlRm9yUmVuZGVyZXIocmVuZGVy
ZXIpOwogfQorCiAjZW5kaWYKIAotc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250ZXh0
TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQqIGV2ZW50KQorc3Rk
Ojp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3Jl
YXRlQ29udGV4dE1lbnUoRXZlbnQmIGV2ZW50KQogewotICAgIEFTU0VSVChldmVudCk7Ci0gICAg
Ci0gICAgaWYgKCFpczxNb3VzZUV2ZW50PigqZXZlbnQpKQorICAgIGlmICghaXM8TW91c2VFdmVu
dD4oZXZlbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIE1vdXNlRXZlbnQmIG1v
dXNlRXZlbnQgPSBkb3duY2FzdDxNb3VzZUV2ZW50PigqZXZlbnQpOwotICAgIEhpdFRlc3RSZXN1
bHQgcmVzdWx0KG1vdXNlRXZlbnQuYWJzb2x1dGVMb2NhdGlvbigpKTsKKyAgICBhdXRvJiBtb3Vz
ZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VFdmVudD4oZXZlbnQpOworICAgIGF1dG8qIG5vZGUgPSBt
b3VzZUV2ZW50LnRhcmdldCgpLT50b05vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIGF1dG8qIGZyYW1lID0gbm9kZS0+ZG9jdW1lbnQoKS5mcmFtZSgp
OworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgTm9kZSog
bm9kZSA9IGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCk7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9
IG5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgcmVzdWx0ID0gZnJhbWUtPmV2ZW50
SGFuZGxlcigpLmhpdFRlc3RSZXN1bHRBdFBvaW50KG1vdXNlRXZlbnQuYWJzb2x1dGVMb2NhdGlv
bigpKTsKLSAgICAKKyAgICBhdXRvIHJlc3VsdCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5oaXRU
ZXN0UmVzdWx0QXRQb2ludChtb3VzZUV2ZW50LmFic29sdXRlTG9jYXRpb24oKSk7CiAgICAgaWYg
KCFyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CkBAIC0xNjMsNyArMTY0LDcgQEAgc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250ZXh0
TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQKIAogI2lmIEVOQUJM
RShTRVJWSUNFX0NPTlRST0xTKQogICAgIGlmIChub2RlLT5pc0ltYWdlQ29udHJvbHNCdXR0b25F
bGVtZW50KCkpIHsKLSAgICAgICAgaWYgKEltYWdlKiBpbWFnZSA9IGltYWdlRnJvbUltYWdlRWxl
bWVudE5vZGUoKnJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSkpCisgICAgICAgIGlmIChhdXRv
KiBpbWFnZSA9IGltYWdlRnJvbUltYWdlRWxlbWVudE5vZGUoKnJlc3VsdC5pbm5lck5vblNoYXJl
ZE5vZGUoKSkpCiAgICAgICAgICAgICBtX2NvbnRleHQuc2V0Q29udHJvbGxlZEltYWdlKGltYWdl
KTsKIAogICAgICAgICAvLyBGSVhNRTogSWYgd2UgY291bGRuJ3QgZ2V0IHRoZSBpbWFnZSB0aGVu
IHdlIHNob3VsZG4ndCB0cnkgdG8gc2hvdyB0aGUgaW1hZ2UgY29udHJvbHMgbWVudSBmb3IgaXQu
CkBAIC0xNzEsMjQgKzE3MiwyNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IENvbnRl
eHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudAogICAgIH0KICNl
bmRpZgogCi0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4obmV3IENvbnRl
eHRNZW51KTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDb250ZXh0TWVudT4oKTsKIH0K
IAotdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCogZXZl
bnQpCit2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50JiBl
dmVudCkKIHsKICAgICBpZiAobV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5lbmFibGVkKCkp
CiAgICAgICAgIGFkZEluc3BlY3RFbGVtZW50SXRlbSgpOwogCi0gICAgZXZlbnQtPnNldERlZmF1
bHRIYW5kbGVkKCk7CisgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKIH0KIAotc3RhdGlj
IHZvaWQgb3Blbk5ld1dpbmRvdyhjb25zdCBVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1lLCBT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kp
CitzdGF0aWMgdm9pZCBvcGVuTmV3V2luZG93KGNvbnN0IFVSTCYgdXJsVG9Mb2FkLCBGcmFtZSYg
ZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSkKIHsKLSAgICBQYWdlKiBvbGRQYWdlID0gZnJhbWUtPnBhZ2UoKTsKKyAgICBQYWdl
KiBvbGRQYWdlID0gZnJhbWUucGFnZSgpOwogICAgIGlmICghb2xkUGFnZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5z
ZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFtZS0+bG9hZGVy
KCkub3V0Z29pbmdSZWZlcnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRM
aXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6
WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MsIHNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3kpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChmcmFtZS5kb2N1bWVudCgp
LT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFtZS5sb2Fk
ZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2Fy
ZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJM
OjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcywgc2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSk7CiAKICAgICBQYWdlKiBuZXdQYWdlID0gb2xkUGFnZS0+Y2hyb21lKCkuY3Jl
YXRlV2luZG93KGZyYW1lLCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9uQWN0
aW9uKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpKTsKICAgICBpZiAoIW5ld1BhZ2UpCkBAIC0x
OTgsMTUgKzE5OSwxNyBAQCBzdGF0aWMgdm9pZCBvcGVuTmV3V2luZG93KGNvbnN0IFVSTCYgdXJs
VG9Mb2FkLCBGcmFtZSogZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbAogfQogCiAjaWYgUExBVEZP
Uk0oR1RLKQotc3RhdGljIHZvaWQgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihVQ2hhciBjaGFyYWN0
ZXIsIEZyYW1lKiBmcmFtZSkKKworc3RhdGljIHZvaWQgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihV
Q2hhciBjaGFyYWN0ZXIsIEZyYW1lJiBmcmFtZSkKIHsKICAgICBTdHJpbmcgdGV4dCgmY2hhcmFj
dGVyLCAxKTsKLSAgICBpZiAoIWZyYW1lLT5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KHRleHQs
IGZyYW1lLT5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpLCBFZGl0b3JJbnNl
cnRBY3Rpb246OlR5cGVkKSkKKyAgICBpZiAoIWZyYW1lLmVkaXRvcigpLnNob3VsZEluc2VydFRl
eHQodGV4dCwgZnJhbWUuc2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgRWRp
dG9ySW5zZXJ0QWN0aW9uOjpUeXBlZCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVChm
cmFtZS0+ZG9jdW1lbnQoKSk7Ci0gICAgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dCgqZnJhbWUt
PmRvY3VtZW50KCksIHRleHQsIDAsIFR5cGluZ0NvbW1hbmQ6OlRleHRDb21wb3NpdGlvbk5vbmUp
OworICAgIEFTU0VSVChmcmFtZS5kb2N1bWVudCgpKTsKKyAgICBUeXBpbmdDb21tYW5kOjppbnNl
cnRUZXh0KCpmcmFtZS5kb2N1bWVudCgpLCB0ZXh0LCAwLCBUeXBpbmdDb21tYW5kOjpUZXh0Q29t
cG9zaXRpb25Ob25lKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVy
Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvbnN0
IFN0cmluZyYgdGl0bGUpCkBAIC0yMjUsNyArMjI4LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRy
b2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwg
Y28KIAogICAgIHN3aXRjaCAoYWN0aW9uKSB7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdP
cGVuTGlua0luTmV3V2luZG93OgotICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRU
ZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OjpTaG91bGRBbGxvd0V4dGVybmFsU2NoZW1lcyk7CisgICAgICAgIG9wZW5OZXdX
aW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgKmZyYW1l
LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvd0V4dGVybmFsU2NoZW1l
cyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRM
aW5rVG9EaXNrOgogICAgICAgICAvLyBGSVhNRTogU29tZSBkYXkgd2Ugc2hvdWxkIGJlIGFibGUg
dG8gZG8gdGhpcyBmcm9tIHdpdGhpbiBXZWJDb3JlLiAoQnVnIDExNzcwOSkKQEAgLTIzNSw3ICsy
MzgsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0
ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwogICAgICAgICBmcmFtZS0+ZWRpdG9yKCku
Y29weVVSTChtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBtX2Nv
bnRleHQuaGl0VGVzdFJlc3VsdCgpLnRleHRDb250ZW50KCkpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93OgotICAgICAgICBv
cGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVJbWFnZVVSTCgp
LCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwor
ICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVJ
bWFnZVVSTCgpLCAqZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5v
dEFsbG93KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdEb3du
bG9hZEltYWdlVG9EaXNrOgogICAgICAgICAvLyBGSVhNRTogU29tZSBkYXkgd2Ugc2hvdWxkIGJl
IGFibGUgdG8gZG8gdGhpcyBmcm9tIHdpdGhpbiBXZWJDb3JlLiAoQnVnIDExNzcwOSkKQEAgLTI1
Miw3ICsyNTUsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVt
U2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwogICAgICAgICBicmVhazsKICNl
bmRpZgogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3c6Ci0g
ICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZU1l
ZGlhVVJMKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RB
bGxvdyk7CisgICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5h
YnNvbHV0ZU1lZGlhVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6
U2hvdWxkTm90QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ0Rvd25sb2FkTWVkaWFUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIGRheSB3ZSBz
aG91bGQgYmUgYWJsZSB0byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUuIChCdWcgMTE3NzA5
KQpAQCAtMjg1LDkgKzI4OCw5IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0
TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgY2FzZSBD
b250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdzogewogICAgICAgICBEb2N1bWVu
dExvYWRlciogbG9hZGVyID0gZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCk7CiAgICAg
ICAgIGlmICghbG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLmlzRW1wdHkoKSkKLSAgICAgICAgICAg
IG9wZW5OZXdXaW5kb3cobG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLCBmcmFtZSwgU2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOworICAgICAgICAgICAgb3Blbk5l
d1dpbmRvdyhsb2FkZXItPnVucmVhY2hhYmxlVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBvcGVuTmV3V2luZG93KGxvYWRlci0+dXJsKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgICAgICAgICBvcGVuTmV3V2luZG93KGxv
YWRlci0+dXJsKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxk
Tm90QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdDb3B5OgpAQCAtMzE4LDM0ICszMjEsMzQgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xs
ZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28K
ICAgICAgICAgZnJhbWUtPmVkaXRvcigpLnBlcmZvcm1EZWxldGUoKTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0TFJNTWFyazoKLSAgICAg
ICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9SaWdodE1hcmssIGZyYW1lKTsKKyAgICAg
ICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9SaWdodE1hcmssICpmcmFtZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydFJMTU1h
cms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRNYXJrLCBmcmFt
ZSk7CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRNYXJrLCAqZnJh
bWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJ
bnNlcnRMUkVNYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0
RW1iZWQsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9SaWdo
dEVtYmVkLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ1VuaWNvZGVJbnNlcnRSTEVNYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVy
KHJpZ2h0VG9MZWZ0RW1iZWQsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rl
cihyaWdodFRvTGVmdEVtYmVkLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRMUk9NYXJrOgotICAgICAgICBpbnNlcnRVbmlj
b2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0T3ZlcnJpZGUsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0
VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9SaWdodE92ZXJyaWRlLCAqZnJhbWUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRSTE9NYXJrOgot
ICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHJpZ2h0VG9MZWZ0T3ZlcnJpZGUsIGZyYW1l
KTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdodFRvTGVmdE92ZXJyaWRlLCAq
ZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNv
ZGVJbnNlcnRQREZNYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHBvcERpcmVj
dGlvbmFsRm9ybWF0dGluZywgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVy
KHBvcERpcmVjdGlvbmFsRm9ybWF0dGluZywgKmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0WldTTWFyazoKLSAgICAgICAgaW5z
ZXJ0VW5pY29kZUNoYXJhY3Rlcih6ZXJvV2lkdGhTcGFjZSwgZnJhbWUpOworICAgICAgICBpbnNl
cnRVbmljb2RlQ2hhcmFjdGVyKHplcm9XaWR0aFNwYWNlLCAqZnJhbWUpOwogICAgICAgICBicmVh
azsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRaV0pNYXJrOgotICAg
ICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHplcm9XaWR0aEpvaW5lciwgZnJhbWUpOworICAg
ICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHplcm9XaWR0aEpvaW5lciwgKmZyYW1lKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0WldO
Sk1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoTm9uSm9pbmVy
LCBmcmFtZSk7CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoTm9uSm9p
bmVyLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oRUZMKQpAQCAtMzkzLDcgKzM5Niw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24s
IGNvCiAgICAgICAgIGlmIChGcmFtZSogdGFyZ2V0RnJhbWUgPSBtX2NvbnRleHQuaGl0VGVzdFJl
c3VsdCgpLnRhcmdldEZyYW1lKCkpCiAgICAgICAgICAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCku
bG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1
cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5h
YnNvbHV0ZUxpbmtVUkwoKSwgZnJhbWUtPmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSksIExv
Y2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVy
LCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6
OlN1cHByZXNzLCB0YXJnZXRGcmFtZS0+aXNNYWluRnJhbWUoKSA/IFNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3k6OlNob3VsZEFsbG93IDogU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6
U2hvdWxkTm90QWxsb3cpLCBudWxscHRyLCBudWxscHRyKTsKICAgICAgICAgZWxzZQotICAgICAg
ICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlu
a1VSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3cp
OworICAgICAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFi
c29sdXRlTGlua1VSTCgpLCAqZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNo
b3VsZEFsbG93KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdC
b2xkOgogICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZCgiVG9nZ2xlQm9sZCIpLmV4ZWN1
dGUoKTsKQEAgLTE0MjksMjYgKzE0MzIsMzAgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6
OmNoZWNrT3JFbmFibGVJZk5lZWRlZChDb250ZXh0TWVudUl0ZW0mIGl0ZW0pIGNvbnN0CiB9CiAK
ICNpZiBVU0UoQUNDRVNTSUJJTElUWV9DT05URVhUX01FTlVTKQotdm9pZCBDb250ZXh0TWVudUNv
bnRyb2xsZXI6OnNob3dDb250ZXh0TWVudUF0KEZyYW1lKiBmcmFtZSwgY29uc3QgSW50UG9pbnQm
IGNsaWNrUG9pbnQpCisKK3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1l
bnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBjbGlja1BvaW50KQogewogICAgIGNs
ZWFyQ29udGV4dE1lbnUoKTsKICAgICAKICAgICAvLyBTaW11bGF0ZSBhIGNsaWNrIGluIHRoZSBt
aWRkbGUgb2YgdGhlIGFjY2Vzc2liaWxpdHkgb2JqZWN0LgogICAgIFBsYXRmb3JtTW91c2VFdmVu
dCBtb3VzZUV2ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9y
bUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJy
ZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKLSAgICBmcmFtZS0+ZXZlbnRIYW5kbGVy
KCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KG1vdXNlRXZlbnQpOwotICAgIGJvb2wgaGFuZGxlZCA9
IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsK
KyAgICBmcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VFdmVu
dCk7CisgICAgYm9vbCBoYW5kbGVkID0gZnJhbWUuZXZlbnRIYW5kbGVyKCkuc2VuZENvbnRleHRN
ZW51RXZlbnQobW91c2VFdmVudCk7CiAgICAgaWYgKGhhbmRsZWQpCiAgICAgICAgIG1fY2xpZW50
LnNob3dDb250ZXh0TWVudSgpOwogfQorCiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NP
TlRST0xTKQotdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dJbWFnZUNvbnRyb2xzTWVu
dShFdmVudCogZXZlbnQpCisKK3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93SW1hZ2VD
b250cm9sc01lbnUoRXZlbnQmIGV2ZW50KQogewogICAgIGNsZWFyQ29udGV4dE1lbnUoKTsKICAg
ICBoYW5kbGVDb250ZXh0TWVudUV2ZW50KGV2ZW50KTsKICAgICBtX2NsaWVudC5zaG93Q29udGV4
dE1lbnUoKTsKIH0KKwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oCmluZGV4IDExMjU2ZTFjZTc5YWIx
ZTdiMzIxNThmNzg0ZGM3ODgxMzY0NzRkOGQuLmY2Mzk2NDhiMTg2MjA0NjA2ZWZjYTU2YTkwNzgy
Yzg5MzdhMGU5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xs
ZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0yOSwyMSArMjksMTYgQEAKIAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udGV4
dC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51SXRlbS5oIgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5
YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENvbnRleHRNZW51OwogY2xhc3Mg
Q29udGV4dE1lbnVDbGllbnQ7Ci1jbGFzcyBDb250ZXh0TWVudUl0ZW07CiBjbGFzcyBDb250ZXh0
TWVudVByb3ZpZGVyOwogY2xhc3MgRXZlbnQ7CiBjbGFzcyBQYWdlOwogCiBjbGFzcyBDb250ZXh0
TWVudUNvbnRyb2xsZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnRleHRNZW51Q29u
dHJvbGxlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgogICAgIENvbnRleHRNZW51Q29udHJvbGxlcihQYWdlJiwgQ29udGV4
dE1lbnVDbGllbnQmKTsKICAgICB+Q29udGV4dE1lbnVDb250cm9sbGVyKCk7CkBAIC01NCw4ICs0
OSw4IEBAIHB1YmxpYzoKICAgICBDb250ZXh0TWVudSogY29udGV4dE1lbnUoKSBjb25zdCB7IHJl
dHVybiBtX2NvbnRleHRNZW51LmdldCgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVh
ckNvbnRleHRNZW51KCk7CiAKLSAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZlbnQq
KTsKLSAgICB2b2lkIHNob3dDb250ZXh0TWVudShFdmVudCosIFBhc3NSZWZQdHI8Q29udGV4dE1l
bnVQcm92aWRlcj4pOworICAgIHZvaWQgaGFuZGxlQ29udGV4dE1lbnVFdmVudChFdmVudCYpOwor
ICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KEV2ZW50JiwgQ29udGV4dE1lbnVQcm92aWRlciYpOwog
CiAgICAgdm9pZCBwb3B1bGF0ZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udGV4dE1l
bnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUpOwpA
QCAtNjgsMTYgKzYzLDE2IEBAIHB1YmxpYzoKICAgICBjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRU
ZXN0UmVzdWx0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKTsgfQog
CiAjaWYgVVNFKEFDQ0VTU0lCSUxJVFlfQ09OVEVYVF9NRU5VUykKLSAgICB2b2lkIHNob3dDb250
ZXh0TWVudUF0KEZyYW1lKiwgY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQpOworICAgIHZvaWQg
c2hvd0NvbnRleHRNZW51QXQoRnJhbWUmLCBjb25zdCBJbnRQb2ludCYgY2xpY2tQb2ludCk7CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIHZvaWQgc2hvd0ltYWdl
Q29udHJvbHNNZW51KEV2ZW50Kik7CisgICAgdm9pZCBzaG93SW1hZ2VDb250cm9sc01lbnUoRXZl
bnQmKTsKICNlbmRpZgogCiBwcml2YXRlOgotICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVu
dT4gbWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudCopOwotICAgIHZvaWQgc2hvd0NvbnRleHRN
ZW51KEV2ZW50Kik7CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBtYXliZUNyZWF0
ZUNvbnRleHRNZW51KEV2ZW50Jik7CisgICAgdm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQmKTsK
ICAgICAKICAgICB2b2lkIGFwcGVuZEl0ZW0oQ29udGV4dE1lbnVJdGVtJiwgQ29udGV4dE1lbnUq
IHBhcmVudE1lbnUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggNGYwMDJmOWQy
NTE3ZDkxZWQ1NTdlYjMzNjgzMTA3ZmNkZWZhMGQ5MS4uMzk3YTU3YTk0NTAyMmM3YWY2ZDFjZjUw
YzNkYTM1M2M5OTc1NmJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMTUwLDkg
KzE1MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUG9zdE1lc3NhZ2VUaW1lciA6
IHB1YmxpYyBUaW1lckJhc2UgewogcHVibGljOgotICAgIFBvc3RNZXNzYWdlVGltZXIoRE9NV2lu
ZG93JiB3aW5kb3csIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgRE9NV2luZG93JiBzb3VyY2UsIHN0ZDo6dW5pcXVl
X3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMsIFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4mJiB0YXJnZXRPcmlnaW4sIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2tUcmFj
ZSkKKyAgICBQb3N0TWVzc2FnZVRpbWVyKERPTVdpbmRvdyYgd2luZG93LCBSZWY8U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luLCBET01X
aW5kb3cmIHNvdXJjZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBj
aGFubmVscywgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHRhcmdldE9yaWdpbiwgUmVmUHRyPFNj
cmlwdENhbGxTdGFjaz4mJiBzdGFja1RyYWNlKQogICAgICAgICA6IG1fd2luZG93KHdpbmRvdykK
LSAgICAgICAgLCBtX21lc3NhZ2UobWVzc2FnZSkKKyAgICAgICAgLCBtX21lc3NhZ2UoV1RGTW92
ZShtZXNzYWdlKSkKICAgICAgICAgLCBtX29yaWdpbihzb3VyY2VPcmlnaW4pCiAgICAgICAgICwg
bV9zb3VyY2Uoc291cmNlKQogICAgICAgICAsIG1fY2hhbm5lbHMoV1RGTW92ZShjaGFubmVscykp
CkBAIC0xODEsNyArMTgxLDcgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBSZWY8RE9NV2luZG93
PiBtX3dpbmRvdzsKLSAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtX21lc3NhZ2U7
CisgICAgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9tZXNzYWdlOwogICAgIFN0cmluZyBt
X29yaWdpbjsKICAgICBSZWY8RE9NV2luZG93PiBtX3NvdXJjZTsKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IG1fY2hhbm5lbHM7CkBAIC0zMjUsMTIgKzMyNSwx
MCBAQCB2b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hBbGxQZW5kaW5nVW5sb2FkRXZlbnRzKCkKIC8v
IDMpIENvbnN0cmFpbnMgdGhlIHdpbmRvdyByZWN0IHRvIHdpdGhpbiB0aGUgdG9wIGFuZCBsZWZ0
IGJvdW5kYXJpZXMgb2YgdGhlIGF2YWlsYWJsZSBzY3JlZW4gcmVjdC4KIC8vIDQpIENvbnN0cmFp
bnMgdGhlIHdpbmRvdyByZWN0IHRvIHdpdGhpbiB0aGUgYm90dG9tIGFuZCByaWdodCBib3VuZGFy
aWVzIG9mIHRoZSBhdmFpbGFibGUgc2NyZWVuIHJlY3QuCiAvLyA1KSBUcmFuc2xhdGUgdGhlIHdp
bmRvdyByZWN0IGNvb3JkaW5hdGVzIHRvIGJlIHdpdGhpbiB0aGUgY29vcmRpbmF0ZSBzcGFjZSBv
ZiB0aGUgc2NyZWVuLgotRmxvYXRSZWN0IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChQYWdl
KiBwYWdlLCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKQorRmxvYXRSZWN0IERPTVdp
bmRvdzo6YWRqdXN0V2luZG93UmVjdChQYWdlJiBwYWdlLCBjb25zdCBGbG9hdFJlY3QmIHBlbmRp
bmdDaGFuZ2VzKQogewotICAgIEFTU0VSVChwYWdlKTsKLQotICAgIEZsb2F0UmVjdCBzY3JlZW4g
PSBzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKSk7Ci0gICAgRmxv
YXRSZWN0IHdpbmRvdyA9IHBhZ2UtPmNocm9tZSgpLndpbmRvd1JlY3QoKTsKKyAgICBGbG9hdFJl
Y3Qgc2NyZWVuID0gc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLm1haW5GcmFtZSgpLnZpZXcoKSk7
CisgICAgRmxvYXRSZWN0IHdpbmRvdyA9IHBhZ2UuY2hyb21lKCkud2luZG93UmVjdCgpOwogCiAg
ICAgLy8gTWFrZSBzdXJlIHdlJ3JlIGluIGEgdmFsaWQgc3RhdGUgYmVmb3JlIGFkanVzdGluZyBk
aW1lbnNpb25zLgogICAgIEFTU0VSVChzdGQ6OmlzZmluaXRlKHNjcmVlbi54KCkpKTsKQEAgLTM1
Miw3ICszNTAsNyBAQCBGbG9hdFJlY3QgRE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0KFBhZ2Uq
IHBhZ2UsIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5nZQogICAgIGlmICghc3RkOjppc25h
bihwZW5kaW5nQ2hhbmdlcy5oZWlnaHQoKSkpCiAgICAgICAgIHdpbmRvdy5zZXRIZWlnaHQocGVu
ZGluZ0NoYW5nZXMuaGVpZ2h0KCkpOwogCi0gICAgRmxvYXRTaXplIG1pbmltdW1TaXplID0gcGFn
ZS0+Y2hyb21lKCkuY2xpZW50KCkubWluaW11bVdpbmRvd1NpemUoKTsKKyAgICBGbG9hdFNpemUg
bWluaW11bVNpemUgPSBwYWdlLmNocm9tZSgpLmNsaWVudCgpLm1pbmltdW1XaW5kb3dTaXplKCk7
CiAgICAgd2luZG93LnNldFdpZHRoKHN0ZDo6bWluKHN0ZDo6bWF4KG1pbmltdW1TaXplLndpZHRo
KCksIHdpbmRvdy53aWR0aCgpKSwgc2NyZWVuLndpZHRoKCkpKTsKICAgICB3aW5kb3cuc2V0SGVp
Z2h0KHN0ZDo6bWluKHN0ZDo6bWF4KG1pbmltdW1TaXplLmhlaWdodCgpLCB3aW5kb3cuaGVpZ2h0
KCkpLCBzY3JlZW4uaGVpZ2h0KCkpKTsKIApAQCAtMzYzLDM4ICszNjEsMzEgQEAgRmxvYXRSZWN0
IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChQYWdlKiBwYWdlLCBjb25zdCBGbG9hdFJlY3Qm
IHBlbmRpbmdDaGFuZ2UKICAgICByZXR1cm4gd2luZG93OwogfQogCi1ib29sIERPTVdpbmRvdzo6
YWxsb3dQb3BVcChGcmFtZSogZmlyc3RGcmFtZSkKK2Jvb2wgRE9NV2luZG93OjphbGxvd1BvcFVw
KEZyYW1lJiBmaXJzdEZyYW1lKQogewotICAgIEFTU0VSVChmaXJzdEZyYW1lKTsKLSAgICAKLSAg
ICBhdXRvJiBzZXR0aW5ncyA9IGZpcnN0RnJhbWUtPnNldHRpbmdzKCk7Ci0KLSAgICBpZiAoU2Ny
aXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkgfHwgc2V0dGluZ3MuYWxsb3dX
aW5kb3dPcGVuV2l0aG91dFVzZXJHZXN0dXJlKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0g
ICAgcmV0dXJuIHNldHRpbmdzLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHko
KTsKKyAgICBhdXRvJiBzZXR0aW5ncyA9IGZpcnN0RnJhbWUuc2V0dGluZ3MoKTsKKyAgICByZXR1
cm4gU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkKKyAgICAgICAgfHwg
c2V0dGluZ3MuYWxsb3dXaW5kb3dPcGVuV2l0aG91dFVzZXJHZXN0dXJlKCkKKyAgICAgICAgfHwg
c2V0dGluZ3MuamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSgpOwogfQogCiBi
b29sIERPTVdpbmRvdzo6YWxsb3dQb3BVcCgpCiB7Ci0gICAgcmV0dXJuIG1fZnJhbWUgJiYgYWxs
b3dQb3BVcChtX2ZyYW1lKTsKKyAgICByZXR1cm4gbV9mcmFtZSAmJiBhbGxvd1BvcFVwKCptX2Zy
YW1lKTsKIH0KIAotYm9vbCBET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhjb25zdCBGcmFt
ZSogZnJhbWUpCitib29sIERPTVdpbmRvdzo6Y2FuU2hvd01vZGFsRGlhbG9nKGNvbnN0IEZyYW1l
JiBmcmFtZSkKIHsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KICAg
ICAvLyBPdmVycmlkZSBzdXBwb3J0IGZvciBsYXlvdXQgdGVzdGluZyBwdXJwb3Nlcy4KLSAgICBp
ZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkgeworICAgIGlmIChhdXRvKiBk
b2N1bWVudCA9IGZyYW1lLmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHdpbmRvdyA9
IGRvY3VtZW50LT5kb21XaW5kb3coKSkgewogICAgICAgICAgICAgaWYgKHdpbmRvdy0+bV9jYW5T
aG93TW9kYWxEaWFsb2dPdmVycmlkZSkKICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93LT5t
X2NhblNob3dNb2RhbERpYWxvZ092ZXJyaWRlLnZhbHVlKCk7CiAgICAgICAgIH0KICAgICB9CiAK
LSAgICBhdXRvKiBwYWdlID0gZnJhbWUtPnBhZ2UoKTsKLSAgICByZXR1cm4gcGFnZSA/IHBhZ2Ut
PmNocm9tZSgpLmNhblJ1bk1vZGFsKCkgOiBmYWxzZTsKKyAgICBhdXRvKiBwYWdlID0gZnJhbWUu
cGFnZSgpOworICAgIHJldHVybiBwYWdlICYmIHBhZ2UtPmNocm9tZSgpLmNhblJ1bk1vZGFsKCk7
CiB9CiAKIHN0YXRpYyB2b2lkIGxhbmd1YWdlc0NoYW5nZWRDYWxsYmFjayh2b2lkKiBjb250ZXh0
KQpAQCAtNDA3LDIwICszOTgsMTggQEAgdm9pZCBET01XaW5kb3c6OnNldENhblNob3dNb2RhbERp
YWxvZ092ZXJyaWRlKGJvb2wgYWxsb3cpCiAgICAgbV9jYW5TaG93TW9kYWxEaWFsb2dPdmVycmlk
ZSA9IGFsbG93OwogfQogCi1ET01XaW5kb3c6OkRPTVdpbmRvdyhEb2N1bWVudCogZG9jdW1lbnQp
Ci0gICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcihkb2N1bWVudCkKLSAgICAsIEZyYW1l
RGVzdHJ1Y3Rpb25PYnNlcnZlcihkb2N1bWVudC0+ZnJhbWUoKSkKK0RPTVdpbmRvdzo6RE9NV2lu
ZG93KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVy
KCZkb2N1bWVudCkKKyAgICAsIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcihkb2N1bWVudC5mcmFt
ZSgpKQogICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogICAgIEFTU0VSVChmcmFtZSgp
KTsKLSAgICBBU1NFUlQoRE9NV2luZG93Ojpkb2N1bWVudCgpKTsKLQogICAgIGFkZExhbmd1YWdl
Q2hhbmdlT2JzZXJ2ZXIodGhpcywgJmxhbmd1YWdlc0NoYW5nZWRDYWxsYmFjayk7CiB9CiAKLXZv
aWQgRE9NV2luZG93OjpkaWRTZWN1cmVUcmFuc2l0aW9uVG8oRG9jdW1lbnQqIGRvY3VtZW50KQor
dm9pZCBET01XaW5kb3c6OmRpZFNlY3VyZVRyYW5zaXRpb25UbyhEb2N1bWVudCYgZG9jdW1lbnQp
CiB7Ci0gICAgb2JzZXJ2ZUNvbnRleHQoZG9jdW1lbnQpOworICAgIG9ic2VydmVDb250ZXh0KCZk
b2N1bWVudCk7CiB9CiAKIERPTVdpbmRvdzo6fkRPTVdpbmRvdygpCkBAIC01NDcsMTQgKzUzNiwx
NCBAQCB2b2lkIERPTVdpbmRvdzo6ZGVjcmVtZW50R2FtZXBhZEV2ZW50TGlzdGVuZXJDb3VudCgp
CiAKICNlbmRpZgogCi12b2lkIERPTVdpbmRvdzo6cmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQ
cm9wZXJ0eSogcHJvcGVydHkpCit2b2lkIERPTVdpbmRvdzo6cmVnaXN0ZXJQcm9wZXJ0eShET01X
aW5kb3dQcm9wZXJ0eSYgcHJvcGVydHkpCiB7Ci0gICAgbV9wcm9wZXJ0aWVzLmFkZChwcm9wZXJ0
eSk7CisgICAgbV9wcm9wZXJ0aWVzLmFkZCgmcHJvcGVydHkpOwogfQogCi12b2lkIERPTVdpbmRv
dzo6dW5yZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5KiBwcm9wZXJ0eSkKK3ZvaWQg
RE9NV2luZG93Ojp1bnJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkmIHByb3BlcnR5
KQogewotICAgIG1fcHJvcGVydGllcy5yZW1vdmUocHJvcGVydHkpOworICAgIG1fcHJvcGVydGll
cy5yZW1vdmUoJnByb3BlcnR5KTsKIH0KIAogdm9pZCBET01XaW5kb3c6OnJlc2V0VW5sZXNzU3Vz
cGVuZGVkRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkKQEAgLTk3NCwyMyArOTYzLDE4IEBAIHZvaWQg
RE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQoUG9zdE1lc3NhZ2VUaW1lciYgdGltZXIp
CiAgICAgaWYgKCFkb2N1bWVudCgpIHx8ICFpc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgZGlzcGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2luQ2hl
Y2sodGltZXIudGFyZ2V0T3JpZ2luKCksIHRpbWVyLmV2ZW50KCpkb2N1bWVudCgpKSwgdGltZXIu
c3RhY2tUcmFjZSgpKTsKLX0KLQotdm9pZCBET01XaW5kb3c6OmRpc3BhdGNoTWVzc2FnZUV2ZW50
V2l0aE9yaWdpbkNoZWNrKFNlY3VyaXR5T3JpZ2luKiBpbnRlbmRlZFRhcmdldE9yaWdpbiwgRXZl
bnQmIGV2ZW50LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3RhY2tUcmFjZSkKLXsKLSAg
ICBpZiAoaW50ZW5kZWRUYXJnZXRPcmlnaW4pIHsKKyAgICBpZiAoYXV0byogaW50ZW5kZWRUYXJn
ZXRPcmlnaW4gPSB0aW1lci50YXJnZXRPcmlnaW4oKSkgewogICAgICAgICAvLyBDaGVjayB0YXJn
ZXQgb3JpZ2luIG5vdyBzaW5jZSB0aGUgdGFyZ2V0IGRvY3VtZW50IG1heSBoYXZlIGNoYW5nZWQg
c2luY2UgdGhlIHRpbWVyIHdhcyBzY2hlZHVsZWQuCiAgICAgICAgIGlmICghaW50ZW5kZWRUYXJn
ZXRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCkpKSB7Ci0gICAgICAgICAgICBpZiAoUGFnZUNvbnNvbGVDbGllbnQqIHBhZ2VDb25zb2xlID0g
Y29uc29sZSgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogcGFnZUNvbnNvbGUgPSBjb25zb2xl
KCkpIHsKICAgICAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIlVuYWJs
ZSB0byBwb3N0IG1lc3NhZ2UgdG8gIiwgaW50ZW5kZWRUYXJnZXRPcmlnaW4tPnRvU3RyaW5nKCks
ICIuIFJlY2lwaWVudCBoYXMgb3JpZ2luICIsIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCku
dG9TdHJpbmcoKSwgIi5cbiIpOwotICAgICAgICAgICAgICAgIHBhZ2VDb25zb2xlLT5hZGRNZXNz
YWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdl
LCBzdGFja1RyYWNlKTsKKyAgICAgICAgICAgICAgICBwYWdlQ29uc29sZS0+YWRkTWVzc2FnZShN
ZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWVzc2FnZSwgdGlt
ZXIuc3RhY2tUcmFjZSgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgIH0KIAotICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIGRpc3BhdGNo
RXZlbnQodGltZXIuZXZlbnQoKmRvY3VtZW50KCkpKTsKIH0KIAogRE9NU2VsZWN0aW9uKiBET01X
aW5kb3c6OmdldFNlbGVjdGlvbigpCkBAIC0xMTEzLDcgKzEwOTcsNyBAQCB2b2lkIERPTVdpbmRv
dzo6cHJpbnQoKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIG1fc2hvdWxkUHJpbnRXaGVu
RmluaXNoZWRMb2FkaW5nID0gZmFsc2U7Ci0gICAgcGFnZS0+Y2hyb21lKCkucHJpbnQobV9mcmFt
ZSk7CisgICAgcGFnZS0+Y2hyb21lKCkucHJpbnQoKm1fZnJhbWUpOwogfQogCiB2b2lkIERPTVdp
bmRvdzo6c3RvcCgpCkBAIC0xMTQ1LDcgKzExMjksNyBAQCB2b2lkIERPTVdpbmRvdzo6YWxlcnQo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIHBhZ2UtPnBvaW50ZXJMb2NrQ29udHJvbGxlcigp
LnJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CiAjZW5kaWYKIAotICAgIHBhZ2UtPmNocm9tZSgpLnJ1
bkphdmFTY3JpcHRBbGVydChtX2ZyYW1lLCBtZXNzYWdlKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5y
dW5KYXZhU2NyaXB0QWxlcnQoKm1fZnJhbWUsIG1lc3NhZ2UpOwogfQogCiBib29sIERPTVdpbmRv
dzo6Y29uZmlybShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0xMTY3LDcgKzExNTEsNyBAQCBi
b29sIERPTVdpbmRvdzo6Y29uZmlybShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgcGFnZS0+
cG9pbnRlckxvY2tDb250cm9sbGVyKCkucmVxdWVzdFBvaW50ZXJVbmxvY2soKTsKICNlbmRpZgog
Ci0gICAgcmV0dXJuIHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRDb25maXJtKG1fZnJhbWUs
IG1lc3NhZ2UpOworICAgIHJldHVybiBwYWdlLT5jaHJvbWUoKS5ydW5KYXZhU2NyaXB0Q29uZmly
bSgqbV9mcmFtZSwgbWVzc2FnZSk7CiB9CiAKIFN0cmluZyBET01XaW5kb3c6OnByb21wdChjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlKQpAQCAtMTE5MCw3
ICsxMTc0LDcgQEAgU3RyaW5nIERPTVdpbmRvdzo6cHJvbXB0KGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUpCiAjZW5kaWYKIAogICAgIFN0cmluZyByZXR1
cm5WYWx1ZTsKLSAgICBpZiAocGFnZS0+Y2hyb21lKCkucnVuSmF2YVNjcmlwdFByb21wdChtX2Zy
YW1lLCBtZXNzYWdlLCBkZWZhdWx0VmFsdWUsIHJldHVyblZhbHVlKSkKKyAgICBpZiAocGFnZS0+
Y2hyb21lKCkucnVuSmF2YVNjcmlwdFByb21wdCgqbV9mcmFtZSwgbWVzc2FnZSwgZGVmYXVsdFZh
bHVlLCByZXR1cm5WYWx1ZSkpCiAgICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIAogICAgIHJl
dHVybiBTdHJpbmcoKTsKQEAgLTEzNjgsNyArMTM1Miw3IEBAIHZvaWQgRE9NV2luZG93OjpzZXRT
dGF0dXMoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VS
VChtX2ZyYW1lLT5kb2N1bWVudCgpKTsgLy8gQ2xpZW50IGNhbGxzIHNob3VsZG4ndCBiZSBtYWRl
IHdoZW4gdGhlIGZyYW1lIGlzIGluIGluY29uc2lzdGVudCBzdGF0ZS4KLSAgICBwYWdlLT5jaHJv
bWUoKS5zZXRTdGF0dXNiYXJUZXh0KG1fZnJhbWUsIG1fc3RhdHVzKTsKKyAgICBwYWdlLT5jaHJv
bWUoKS5zZXRTdGF0dXNiYXJUZXh0KCptX2ZyYW1lLCBtX3N0YXR1cyk7CiB9IAogICAgIAogdm9p
ZCBET01XaW5kb3c6OnNldERlZmF1bHRTdGF0dXMoY29uc3QgU3RyaW5nJiBzdHJpbmcpIApAQCAt
MTM4Myw3ICsxMzY3LDcgQEAgdm9pZCBET01XaW5kb3c6OnNldERlZmF1bHRTdGF0dXMoY29uc3Qg
U3RyaW5nJiBzdHJpbmcpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChtX2ZyYW1lLT5k
b2N1bWVudCgpKTsgLy8gQ2xpZW50IGNhbGxzIHNob3VsZG4ndCBiZSBtYWRlIHdoZW4gdGhlIGZy
YW1lIGlzIGluIGluY29uc2lzdGVudCBzdGF0ZS4KLSAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0
dXNiYXJUZXh0KG1fZnJhbWUsIG1fZGVmYXVsdFN0YXR1cyk7CisgICAgcGFnZS0+Y2hyb21lKCku
c2V0U3RhdHVzYmFyVGV4dCgqbV9mcmFtZSwgbV9kZWZhdWx0U3RhdHVzKTsKIH0KIAogRE9NV2lu
ZG93KiBET01XaW5kb3c6OnNlbGYoKSBjb25zdApAQCAtMTQzMiw4ICsxNDE2LDcgQEAgRE9NV2lu
ZG93KiBET01XaW5kb3c6OnRvcCgpIGNvbnN0CiAKIERvY3VtZW50KiBET01XaW5kb3c6OmRvY3Vt
ZW50KCkgY29uc3QKIHsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0gQ29u
dGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBy
ZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOworICAgIHJldHVybiBkb3duY2FzdDxE
b2N1bWVudD4oQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSk7CiB9CiAKIFJlZlB0cjxTdHlsZU1lZGlhPiBET01XaW5kb3c6OnN0eWxlTWVkaWEoKSBj
b25zdApAQCAtMTYxOCw4ICsxNjAxLDcgQEAgdm9pZCBET01XaW5kb3c6Om1vdmVCeShmbG9hdCB4
LCBmbG9hdCB5KSBjb25zdAogICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLndpbmRv
d1JlY3QoKTsKICAgICBGbG9hdFJlY3QgdXBkYXRlID0gZnI7CiAgICAgdXBkYXRlLm1vdmUoeCwg
eSk7Ci0gICAgLy8gU2VjdXJpdHkgY2hlY2sgKHRoZSBzcGVjIHRhbGtzIGFib3V0IFVuaXZlcnNh
bEJyb3dzZXJXcml0ZSB0byBkaXNhYmxlIHRoaXMgY2hlY2suLi4pCi0gICAgcGFnZS0+Y2hyb21l
KCkuc2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIHVwZGF0ZSkpOworICAgIHBh
Z2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdCgqcGFnZSwgdXBkYXRl
KSk7CiB9CiAKIHZvaWQgRE9NV2luZG93Ojptb3ZlVG8oZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QK
QEAgLTE2MzMsOCArMTYxNSw3IEBAIHZvaWQgRE9NV2luZG93Ojptb3ZlVG8oZmxvYXQgeCwgZmxv
YXQgeSkgY29uc3QKICAgICBmci5zZXRMb2NhdGlvbihzci5sb2NhdGlvbigpKTsKICAgICBGbG9h
dFJlY3QgdXBkYXRlID0gZnI7CiAgICAgdXBkYXRlLm1vdmUoeCwgeSk7Ci0gICAgLy8gU2VjdXJp
dHkgY2hlY2sgKHRoZSBzcGVjIHRhbGtzIGFib3V0IFVuaXZlcnNhbEJyb3dzZXJXcml0ZSB0byBk
aXNhYmxlIHRoaXMgY2hlY2suLi4pCi0gICAgcGFnZS0+Y2hyb21lKCkuc2V0V2luZG93UmVjdChh
ZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIHVwZGF0ZSkpOworICAgIHBhZ2UtPmNocm9tZSgpLnNldFdp
bmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdCgqcGFnZSwgdXBkYXRlKSk7CiB9CiAKIHZvaWQgRE9N
V2luZG93OjpyZXNpemVCeShmbG9hdCB4LCBmbG9hdCB5KSBjb25zdApAQCAtMTY0Niw3ICsxNjI3
LDcgQEAgdm9pZCBET01XaW5kb3c6OnJlc2l6ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CiAg
ICAgRmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hyb21lKCkud2luZG93UmVjdCgpOwogICAgIEZsb2F0
U2l6ZSBkZXN0ID0gZnIuc2l6ZSgpICsgRmxvYXRTaXplKHgsIHkpOwogICAgIEZsb2F0UmVjdCB1
cGRhdGUoZnIubG9jYXRpb24oKSwgZGVzdCk7Ci0gICAgcGFnZS0+Y2hyb21lKCkuc2V0V2luZG93
UmVjdChhZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIHVwZGF0ZSkpOworICAgIHBhZ2UtPmNocm9tZSgp
LnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdCgqcGFnZSwgdXBkYXRlKSk7CiB9CiAKIHZv
aWQgRE9NV2luZG93OjpyZXNpemVUbyhmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSBjb25zdApA
QCAtMTY1OCw3ICsxNjM5LDcgQEAgdm9pZCBET01XaW5kb3c6OnJlc2l6ZVRvKGZsb2F0IHdpZHRo
LCBmbG9hdCBoZWlnaHQpIGNvbnN0CiAgICAgRmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hyb21lKCku
d2luZG93UmVjdCgpOwogICAgIEZsb2F0U2l6ZSBkZXN0ID0gRmxvYXRTaXplKHdpZHRoLCBoZWln
aHQpOwogICAgIEZsb2F0UmVjdCB1cGRhdGUoZnIubG9jYXRpb24oKSwgZGVzdCk7Ci0gICAgcGFn
ZS0+Y2hyb21lKCkuc2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIHVwZGF0ZSkp
OworICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdCgqcGFn
ZSwgdXBkYXRlKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPGludD4gRE9NV2luZG93OjpzZXRUaW1lb3V0
KHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgaW50IHRpbWVvdXQpCkBA
IC0yMjg3LDggKzIyNjgsNyBAQCB2b2lkIERPTVdpbmRvdzo6c2hvd01vZGFsRGlhbG9nKGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRpYWxvZ0ZlYQogewogICAgIGlmICgh
aXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBGcmFt
ZSogYWN0aXZlRnJhbWUgPSBhY3RpdmVXaW5kb3cuZnJhbWUoKTsKLSAgICBpZiAoIWFjdGl2ZUZy
YW1lKQorICAgIGlmICghYWN0aXZlV2luZG93LmZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKICAg
ICBGcmFtZSogZmlyc3RGcmFtZSA9IGZpcnN0V2luZG93LmZyYW1lKCk7CiAgICAgaWYgKCFmaXJz
dEZyYW1lKQpAQCAtMjMwMyw3ICsyMjgzLDcgQEAgdm9pZCBET01XaW5kb3c6OnNob3dNb2RhbERp
YWxvZyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBkaWFsb2dGZWEKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghY2FuU2hvd01vZGFsRGlhbG9nKG1fZnJh
bWUpIHx8ICFmaXJzdFdpbmRvdy5hbGxvd1BvcFVwKCkpCisgICAgaWYgKCFjYW5TaG93TW9kYWxE
aWFsb2coKm1fZnJhbWUpIHx8ICFmaXJzdFdpbmRvdy5hbGxvd1BvcFVwKCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIFJlZlB0cjxGcmFtZT4gZGlhbG9nRnJhbWUgPSBjcmVhdGVXaW5kb3codXJs
U3RyaW5nLCBlbXB0eUF0b20sIHBhcnNlRGlhbG9nRmVhdHVyZXMoZGlhbG9nRmVhdHVyZXNTdHJp
bmcsIHNjcmVlbkF2YWlsYWJsZVJlY3QobV9mcmFtZS0+dmlldygpKSksIGFjdGl2ZVdpbmRvdywg
KmZpcnN0RnJhbWUsICptX2ZyYW1lLCBXVEZNb3ZlKHByZXBhcmVEaWFsb2dGdW5jdGlvbikpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggYzVlOTAyODk4ODZkNzJhYTg4NmM0OWFkYjk0Nzk1
ZDM3NzA1OWIzMS4uNWRlOTI3MzRmNTkyMDk3MDYwY2JjNjEwNTU3MjgxNTEzYjc0OGVmMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNywgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBz
dWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0xMDcsNyArMTA3LDcgQEAgY2xh
c3MgRE9NV2luZG93IGZpbmFsCiAgICAgLCBwdWJsaWMgQmFzZTY0VXRpbGl0aWVzCiAgICAgLCBw
dWJsaWMgU3VwcGxlbWVudGFibGU8RE9NV2luZG93PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJl
ZjxET01XaW5kb3c+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRE9NV2luZG93KGRvY3VtZW50KSk7IH0KKyAgICBzdGF0aWMgUmVmPERPTVdpbmRvdz4g
Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01XaW5k
b3coZG9jdW1lbnQpKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfkRPTVdpbmRvdygp
OwogCiAgICAgLy8gSW4gc29tZSByYXJlIGNhc2VzLCB3ZSdsbCByZXVzZSBhIERPTVdpbmRvdyBm
b3IgYSBuZXcgRG9jdW1lbnQuIEZvciBleGFtcGxlLApAQCAtMTE3LDE1ICsxMTcsMTAgQEAgcHVi
bGljOgogICAgIC8vIHdvbid0IGJlIGJsb3duIGF3YXkgd2hlbiB0aGUgbmV0d29yayBsb2FkIGNv
bW1pdHMuIFRvIG1ha2UgdGhhdCBoYXBwZW4sIHdlCiAgICAgLy8gInNlY3VyZWx5IHRyYW5zaXRp
b24iIHRoZSBleGlzdGluZyBET01XaW5kb3cgdG8gdGhlIERvY3VtZW50IHRoYXQgcmVzdWx0cyBm
cm9tCiAgICAgLy8gdGhlIG5ldHdvcmsgbG9hZC4gU2VlIGFsc28gU2VjdXJpdHlDb250ZXh0Ojpp
c1NlY3VyZVRyYW5zaXRpb25Uby4KLSAgICB2b2lkIGRpZFNlY3VyZVRyYW5zaXRpb25UbyhEb2N1
bWVudCopOworICAgIHZvaWQgZGlkU2VjdXJlVHJhbnNpdGlvblRvKERvY3VtZW50Jik7CiAKLSAg
ICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIERPTVdpbmRvd0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQotICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpOyB9Ci0KLSAgICBET01XaW5kb3cqIHRvRE9NV2luZG93KCkgb3ZlcnJpZGU7Ci0K
LSAgICB2b2lkIHJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkqKTsKLSAgICB2b2lk
IHVucmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSopOworICAgIHZvaWQgcmVnaXN0
ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSYpOworICAgIHZvaWQgdW5yZWdpc3RlclByb3Bl
cnR5KERPTVdpbmRvd1Byb3BlcnR5Jik7CiAKICAgICB2b2lkIHJlc2V0VW5sZXNzU3VzcGVuZGVk
Rm9yRG9jdW1lbnRTdXNwZW5zaW9uKCk7CiAgICAgdm9pZCBzdXNwZW5kRm9yRG9jdW1lbnRTdXNw
ZW5zaW9uKCk7CkBAIC0xMzgsMTEgKzEzMywxMSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIGJvb2wgZGlzcGF0Y2hBbGxQZW5kaW5nQmVmb3JlVW5sb2FkRXZlbnRzKCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZGlzcGF0Y2hBbGxQZW5kaW5nVW5sb2FkRXZl
bnRzKCk7CiAKLSAgICBzdGF0aWMgRmxvYXRSZWN0IGFkanVzdFdpbmRvd1JlY3QoUGFnZSosIGNv
bnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5nZXMpOworICAgIHN0YXRpYyBGbG9hdFJlY3QgYWRq
dXN0V2luZG93UmVjdChQYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcyk7CiAK
ICAgICBib29sIGFsbG93UG9wVXAoKTsgLy8gQ2FsbCBvbiBmaXJzdCB3aW5kb3csIG5vdCB0YXJn
ZXQgd2luZG93LgotICAgIHN0YXRpYyBib29sIGFsbG93UG9wVXAoRnJhbWUqIGZpcnN0RnJhbWUp
OwotICAgIHN0YXRpYyBib29sIGNhblNob3dNb2RhbERpYWxvZyhjb25zdCBGcmFtZSopOworICAg
IHN0YXRpYyBib29sIGFsbG93UG9wVXAoRnJhbWUmIGZpcnN0RnJhbWUpOworICAgIHN0YXRpYyBi
b29sIGNhblNob3dNb2RhbERpYWxvZyhjb25zdCBGcmFtZSYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0Q2FuU2hvd01vZGFsRGlhbG9nT3ZlcnJpZGUoYm9vbCk7CiAKICAgICBTY3JlZW4q
IHNjcmVlbigpIGNvbnN0OwpAQCAtMjQ1LDcgKzI0MCw2IEBAIHB1YmxpYzoKIAogICAgIEV4Y2Vw
dGlvbk9yPHZvaWQ+IHBvc3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiwgRE9NV2luZG93JiBjYWxs
ZXJXaW5kb3csIEpTQzo6SlNWYWx1ZSBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdp
biwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYmKTsKICAgICB2b2lkIHBvc3RN
ZXNzYWdlVGltZXJGaXJlZChQb3N0TWVzc2FnZVRpbWVyJik7Ci0gICAgdm9pZCBkaXNwYXRjaE1l
c3NhZ2VFdmVudFdpdGhPcmlnaW5DaGVjayhTZWN1cml0eU9yaWdpbiogaW50ZW5kZWRUYXJnZXRP
cmlnaW4sIEV2ZW50JiwgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4pOwog
CiAgICAgdm9pZCBsYW5ndWFnZXNDaGFuZ2VkKCk7CiAKQEAgLTI3Miw5ICsyNjYsOSBAQCBwdWJs
aWM6CiAKICAgICAvLyBFdmVudHMKICAgICAvLyBFdmVudFRhcmdldCBBUEkKLSAgICBib29sIGFk
ZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExp
c3RlbmVyPiYmLCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOwotICAg
IGJvb2wgcmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwg
RXZlbnRMaXN0ZW5lciYsIGNvbnN0IExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIHZv
aWQgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKSBvdmVycmlkZTsKKyAgICBib29sIGFkZEV2ZW50
TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVy
PiYmLCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyYpIGZpbmFsOworICAgIGJvb2wgcmVt
b3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0
ZW5lciYsIGNvbnN0IExpc3RlbmVyT3B0aW9ucyYpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlQWxs
RXZlbnRMaXN0ZW5lcnMoKSBmaW5hbDsKIAogICAgIHVzaW5nIEV2ZW50VGFyZ2V0OjpkaXNwYXRj
aEV2ZW50OwogICAgIGJvb2wgZGlzcGF0Y2hFdmVudChFdmVudCYsIEV2ZW50VGFyZ2V0Kik7CkBA
IC0yODYsOCArMjgwLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBmaW5pc2hlZExvYWRpbmcoKTsK
IAotICAgIHVzaW5nIFJlZkNvdW50ZWQ8RE9NV2luZG93Pjo6cmVmOwotICAgIHVzaW5nIFJlZkNv
dW50ZWQ8RE9NV2luZG93Pjo6ZGVyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAg
IHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwogCiAgICAgLy8gSFRNTCA1IGtleS92YWx1ZSBzdG9y
YWdlCiAgICAgRXhjZXB0aW9uT3I8U3RvcmFnZSo+IHNlc3Npb25TdG9yYWdlKCkgY29uc3Q7CkBA
IC0zMTMsNiArMzA3LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShXRUJfVElNSU5HKQogICAgIFBl
cmZvcm1hbmNlKiBwZXJmb3JtYW5jZSgpIGNvbnN0OwogI2VuZGlmCisKICAgICBkb3VibGUgbm93
VGltZXN0YW1wKCkgY29uc3Q7CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0zNDcsMTYgKzM0Miwy
MSBAQCBwdWJsaWM6CiAgICAgV2Vha1B0cjxET01XaW5kb3c+IGNyZWF0ZVdlYWtQdHIoKSB7IHJl
dHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogCiBwcml2YXRlOgotICAg
IGV4cGxpY2l0IERPTVdpbmRvdyhEb2N1bWVudCopOworICAgIGV4cGxpY2l0IERPTVdpbmRvdyhE
b2N1bWVudCYpOworCisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZh
Y2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBET01XaW5kb3dFdmVudFRhcmdldEludGVyZmFjZVR5
cGU7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorCisgICAgRE9NV2luZG93KiB0b0RPTVdpbmRvdygpIGZp
bmFsOwogCiAgICAgUGFnZSogcGFnZSgpOwogICAgIGJvb2wgYWxsb3dlZFRvQ2hhbmdlV2luZG93
R2VvbWV0cnkoKSBjb25zdDsKIAotICAgIHZvaWQgZnJhbWVEZXN0cm95ZWQoKSBvdmVycmlkZTsK
LSAgICB2b2lkIHdpbGxEZXRhY2hQYWdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBmcmFtZURlc3Ry
b3llZCgpIGZpbmFsOworICAgIHZvaWQgd2lsbERldGFjaFBhZ2UoKSBmaW5hbDsKIAotICAgIHZv
aWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9Ci0gICAgdm9pZCBkZXJlZkV2
ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CisgICAgdm9pZCByZWZFdmVudFRhcmdl
dCgpIGZpbmFsIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7
IGRlcmVmKCk7IH0KIAogICAgIHN0YXRpYyBSZWZQdHI8RnJhbWU+IGNyZWF0ZVdpbmRvdyhjb25z
dCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgQXRvbWljU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0
IFdpbmRvd0ZlYXR1cmVzJiwgRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIEZyYW1lJiBmaXJzdEZy
YW1lLCBGcmFtZSYgb3BlbmVyRnJhbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZChET01XaW5kb3cmKT4g
cHJlcGFyZURpYWxvZ0Z1bmN0aW9uID0gbnVsbHB0cik7CiAgICAgYm9vbCBpc0luc2VjdXJlU2Ny
aXB0QWNjZXNzKERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBjb25zdCBTdHJpbmcmIHVybFN0cmlu
Zyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCmluZGV4IGEzNzcw
ZThlNzAwYzY1ODI2MjZjNjRiOTg1ZmRlYzZmYzA3ZjMzZjUuLjU1MDk2YjY0YWFhN2YyNDkzMWEy
YzcxOWE3ZTVjNjA5ZWQ1MGY4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93UHJvcGVydHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJv
cGVydHkuY3BwCkBAIC00MiwxNCArNDIsMTQgQEAgRE9NV2luZG93UHJvcGVydHk6OkRPTVdpbmRv
d1Byb3BlcnR5KEZyYW1lKiBmcmFtZSkKICAgICAvLyBXZSBzaG91bGQgZml4IHRoYXQuICA8cmRh
cjovL3Byb2JsZW0vMTE1NjcxMzI+CiAgICAgaWYgKG1fZnJhbWUpIHsKICAgICAgICAgbV9hc3Nv
Y2lhdGVkRE9NV2luZG93ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCk7Ci0gICAg
ICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+cmVnaXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAgICAg
ICAgbV9hc3NvY2lhdGVkRE9NV2luZG93LT5yZWdpc3RlclByb3BlcnR5KCp0aGlzKTsKICAgICB9
CiB9CiAKIERPTVdpbmRvd1Byb3BlcnR5Ojp+RE9NV2luZG93UHJvcGVydHkoKQogewogICAgIGlm
IChtX2Fzc29jaWF0ZWRET01XaW5kb3cpCi0gICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+
dW5yZWdpc3RlclByb3BlcnR5KHRoaXMpOworICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ct
PnVucmVnaXN0ZXJQcm9wZXJ0eSgqdGhpcyk7CiAKICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3cg
PSBudWxscHRyOwogICAgIG1fZnJhbWUgPSBudWxscHRyOwpAQCAtODYsNyArODYsNyBAQCB2b2lk
IERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUo
KQogICAgIC8vIERPTVdpbmRvd1Byb3BlcnR5IGxpZmV0aW1lIGlzbid0IHRpZWQgZGlyZWN0bHkg
dG8gdGhlIERPTVdpbmRvdyBpdHNlbGYgc28gaXQgaXMgaW1wb3J0YW50IHRoYXQgaXQgdW5yZWdp
c3RlcgogICAgIC8vIGl0c2VsZiBmcm9tIGFueSBET01XaW5kb3cgaXQgaXMgYXNzb2NpYXRlZCB3
aXRoIGlmIHRoYXQgRE9NV2luZG93IGlzIGdvaW5nIGF3YXkuCiAgICAgaWYgKG1fYXNzb2NpYXRl
ZERPTVdpbmRvdykKLSAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93LT51bnJlZ2lzdGVyUHJv
cGVydHkodGhpcyk7CisgICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+dW5yZWdpc3RlclBy
b3BlcnR5KCp0aGlzKTsKICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3cgPSBudWxscHRyOwogICAg
IG1fZnJhbWUgPSBudWxscHRyOwogfQpAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgRE9NV2luZG93
UHJvcGVydHk6OndpbGxEZXN0cm95R2xvYmFsT2JqZWN0SW5GcmFtZSgpCiAgICAgLy8gRE9NV2lu
ZG93UHJvcGVydHkgbGlmZXRpbWUgaXNuJ3QgdGllZCBkaXJlY3RseSB0byB0aGUgRE9NV2luZG93
IGl0c2VsZiBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCBpdCB1bnJlZ2lzdGVyCiAgICAgLy8gaXRz
ZWxmIGZyb20gYW55IERPTVdpbmRvdyBpdCBpcyBhc3NvY2lhdGVkIHdpdGggaWYgdGhhdCBET01X
aW5kb3cgaXMgZ29pbmcgYXdheS4KICAgICBpZiAobV9hc3NvY2lhdGVkRE9NV2luZG93KQotICAg
ICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ctPnVucmVnaXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAg
ICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93LT51bnJlZ2lzdGVyUHJvcGVydHkoKnRoaXMpOwog
ICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdyA9IG51bGxwdHI7CiAgICAgbV9mcmFtZSA9IG51bGxw
dHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCmluZGV4IGNh
YTA3YTQ3YmVlOGYxOWNlZTM0NGVmYTU3NmY1MGVkNDUxNDczZWEuLmFmMDgwMmJjOGJlODAzODFk
MTMzMDUzZjc3OGZjM2E3NjM2NDNlNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RGVidWdQYWdlT3ZlcmxheXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdl
T3ZlcmxheXMuY3BwCkBAIC00NCw3ICs0NCw3IEBAIERlYnVnUGFnZU92ZXJsYXlzKiBEZWJ1Z1Bh
Z2VPdmVybGF5czo6c2hhcmVkRGVidWdPdmVybGF5czsKIAogY2xhc3MgUmVnaW9uT3ZlcmxheSA6
IHB1YmxpYyBSZWZDb3VudGVkPFJlZ2lvbk92ZXJsYXk+LCBwdWJsaWMgUGFnZU92ZXJsYXk6OkNs
aWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVnaW9uT3ZlcmxheT4gY3Jl
YXRlKE1haW5GcmFtZSYsIERlYnVnUGFnZU92ZXJsYXlzOjpSZWdpb25UeXBlKTsKKyAgICBzdGF0
aWMgUmVmUHRyPFJlZ2lvbk92ZXJsYXk+IGNyZWF0ZShNYWluRnJhbWUmLCBEZWJ1Z1BhZ2VPdmVy
bGF5czo6UmVnaW9uVHlwZSk7CiAgICAgdmlydHVhbCB+UmVnaW9uT3ZlcmxheSgpOwogCiAgICAg
dm9pZCByZWNvbXB1dGVSZWdpb24oKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBib29sIE5vbkZhc3RT
Y3JvbGxhYmxlUmVnaW9uT3ZlcmxheTo6dXBkYXRlUmVnaW9uKCkKICAgICByZXR1cm4gcmVnaW9u
Q2hhbmdlZDsKIH0KIAotUGFzc1JlZlB0cjxSZWdpb25PdmVybGF5PiBSZWdpb25PdmVybGF5Ojpj
cmVhdGUoTWFpbkZyYW1lJiBmcmFtZSwgRGVidWdQYWdlT3ZlcmxheXM6OlJlZ2lvblR5cGUgcmVn
aW9uVHlwZSkKK1JlZlB0cjxSZWdpb25PdmVybGF5PiBSZWdpb25PdmVybGF5OjpjcmVhdGUoTWFp
bkZyYW1lJiBmcmFtZSwgRGVidWdQYWdlT3ZlcmxheXM6OlJlZ2lvblR5cGUgcmVnaW9uVHlwZSkK
IHsKICAgICBzd2l0Y2ggKHJlZ2lvblR5cGUpIHsKICAgICBjYXNlIERlYnVnUGFnZU92ZXJsYXlz
OjpSZWdpb25UeXBlOjpXaGVlbEV2ZW50SGFuZGxlcnM6CkBAIC0xNjUsNyArMTY1LDcgQEAgUmVn
aW9uT3ZlcmxheTo6UmVnaW9uT3ZlcmxheShNYWluRnJhbWUmIGZyYW1lLCBDb2xvciByZWdpb25D
b2xvcikKIFJlZ2lvbk92ZXJsYXk6On5SZWdpb25PdmVybGF5KCkKIHsKICAgICBpZiAobV9vdmVy
bGF5KQotICAgICAgICBtX2ZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBh
Z2VPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZh
ZGUpOworICAgICAgICBtX2ZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBh
Z2VPdmVybGF5KCptX292ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsK
IH0KIAogdm9pZCBSZWdpb25PdmVybGF5Ojp3aWxsTW92ZVRvUGFnZShQYWdlT3ZlcmxheSYsIFBh
Z2UqIHBhZ2UpCkBAIC0yNDgsNyArMjQ4LDcgQEAgUmVnaW9uT3ZlcmxheSYgRGVidWdQYWdlT3Zl
cmxheXM6OmVuc3VyZVJlZ2lvbk92ZXJsYXlGb3JGcmFtZShNYWluRnJhbWUmIGZyYW1lLAogdm9p
ZCBEZWJ1Z1BhZ2VPdmVybGF5czo6c2hvd1JlZ2lvbk92ZXJsYXkoTWFpbkZyYW1lJiBmcmFtZSwg
UmVnaW9uVHlwZSByZWdpb25UeXBlKQogewogICAgIFJlZ2lvbk92ZXJsYXkmIHZpc3VhbGl6ZXIg
PSBlbnN1cmVSZWdpb25PdmVybGF5Rm9yRnJhbWUoZnJhbWUsIHJlZ2lvblR5cGUpOwotICAgIGZy
YW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSgmdmlzdWFsaXpl
ci5vdmVybGF5KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICBmcmFt
ZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkodmlzdWFsaXplci5v
dmVybGF5KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIH0KIAogdm9pZCBE
ZWJ1Z1BhZ2VPdmVybGF5czo6aGlkZVJlZ2lvbk92ZXJsYXkoTWFpbkZyYW1lJiBmcmFtZSwgUmVn
aW9uVHlwZSByZWdpb25UeXBlKQpAQCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQgRGVidWdQYWdlT3Zl
cmxheXM6OmhpZGVSZWdpb25PdmVybGF5KE1haW5GcmFtZSYgZnJhbWUsIFJlZ2lvblR5cGUgcmVn
aW9uVHlwCiAgICAgaWYgKGl0ICE9IG1fZnJhbWVSZWdpb25PdmVybGF5cy5lbmQoKSkgewogICAg
ICAgICBhdXRvJiB2aXN1YWxpemVycyA9IGl0LT52YWx1ZTsKICAgICAgICAgaWYgKFJlZ2lvbk92
ZXJsYXkqIHZpc3VhbGl6ZXIgPSB2aXN1YWxpemVyc1tpbmRleE9mKHJlZ2lvblR5cGUpXS5nZXQo
KSkgewotICAgICAgICAgICAgZnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxs
UGFnZU92ZXJsYXkoJnZpc3VhbGl6ZXItPm92ZXJsYXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2Rl
OjpEb05vdEZhZGUpOworICAgICAgICAgICAgZnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCku
dW5pbnN0YWxsUGFnZU92ZXJsYXkodmlzdWFsaXplci0+b3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6
RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAgICAgICAgICB2aXN1YWxpemVyc1tpbmRleE9mKHJl
Z2lvblR5cGUpXSA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGYyMzE4YTAzYzE0YmQxZGY4MjMyMGNjMDdjNzg5OWIy
OTQyN2M2NDYuLmRmNmNmZTA0YzI3YTNmOTg0MDIyMTlhNjZjODgyYjNkNDNiNmZlNjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgdm9p
ZCBEcmFnQ29udHJvbGxlcjo6ZHJhZ0V4aXRlZChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAj
ZW5kaWYKICAgICAgICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gZGF0YVRyYW5zZmVyID0gRGF0YVRy
YW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChwb2xpY3ksIGRyYWdEYXRhKTsKICAgICAgICAg
ZGF0YVRyYW5zZmVyLT5zZXRTb3VyY2VPcGVyYXRpb24oZHJhZ0RhdGEuZHJhZ2dpbmdTb3VyY2VP
cGVyYXRpb25NYXNrKCkpOwotICAgICAgICBtX3BhZ2UubWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVy
KCkuY2FuY2VsRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChkcmFnRGF0YSksIGRhdGFUcmFu
c2Zlci5nZXQoKSk7CisgICAgICAgIG1fcGFnZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5j
YW5jZWxEcmFnQW5kRHJvcChjcmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKSwgKmRhdGFUcmFuc2Zl
cik7CiAgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0QWNjZXNzUG9saWN5KERhdGFUcmFuc2ZlckFj
Y2Vzc1BvbGljeTo6TnVtYik7IC8vIEludmFsaWRhdGUgZGF0YVRyYW5zZmVyIGhlcmUgZm9yIHNl
Y3VyaXR5LgogICAgIH0KICAgICBtb3VzZU1vdmVkSW50b0RvY3VtZW50KG51bGxwdHIpOwpAQCAt
MjI3LDcgKzIyNyw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFnT3BlcmF0aW9u
KGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICAgICAgICAgIC8vIFNlbmRpbmcgYW4gZXZl
bnQgY2FuIHJlc3VsdCBpbiB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIHZpZXcgYW5kIHBhcnQuCiAg
ICAgICAgICAgICBSZWZQdHI8RGF0YVRyYW5zZmVyPiBkYXRhVHJhbnNmZXIgPSBEYXRhVHJhbnNm
ZXI6OmNyZWF0ZUZvckRyYWdBbmREcm9wKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6UmVhZGFi
bGUsIGRyYWdEYXRhKTsKICAgICAgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0U291cmNlT3BlcmF0
aW9uKGRyYWdEYXRhLmRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzaygpKTsKLSAgICAgICAgICAg
IHByZXZlbnRlZERlZmF1bHQgPSBtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLnBlcmZvcm1EcmFn
QW5kRHJvcChjcmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKSwgZGF0YVRyYW5zZmVyLmdldCgpKTsK
KyAgICAgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSBtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigp
LnBlcmZvcm1EcmFnQW5kRHJvcChjcmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKSwgKmRhdGFUcmFu
c2Zlcik7CiAgICAgICAgICAgICBkYXRhVHJhbnNmZXItPnNldEFjY2Vzc1BvbGljeShEYXRhVHJh
bnNmZXJBY2Nlc3NQb2xpY3k6Ok51bWIpOyAvLyBJbnZhbGlkYXRlIGRhdGFUcmFuc2ZlciBoZXJl
IGZvciBzZWN1cml0eS4KICAgICAgICAgfQogICAgICAgICBpZiAocHJldmVudGVkRGVmYXVsdCkg
ewpAQCAtNTQ3LDcgKzU0Nyw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERy
YWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogCiAgICAgaWYgKHJvb3RFZGl0YWJsZUVsZW1l
bnQpIHsKICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHJvb3RFZGl0YWJsZUVsZW1lbnQtPmRv
Y3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS51cGRh
dGVEcmFnU3RhdGVBZnRlckVkaXREcmFnSWZOZWVkZWQocm9vdEVkaXRhYmxlRWxlbWVudC5nZXQo
KSk7CisgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ1N0YXRlQWZ0
ZXJFZGl0RHJhZ0lmTmVlZGVkKCpyb290RWRpdGFibGVFbGVtZW50KTsKICAgICB9CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTYyMSw3ICs2MjEsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjp0cnlE
SFRNTERyYWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhLCBEcmFnT3BlcmF0aW9uJiBvcGVyYQog
ICAgIGRhdGFUcmFuc2Zlci0+c2V0U291cmNlT3BlcmF0aW9uKHNyY09wTWFzayk7CiAKICAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQgPSBjcmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKTsKLSAg
ICBpZiAoIW1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQs
IGRhdGFUcmFuc2Zlci5nZXQoKSkpIHsKKyAgICBpZiAoIW1haW5GcmFtZS0+ZXZlbnRIYW5kbGVy
KCkudXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQsICpkYXRhVHJhbnNmZXIpKSB7CiAgICAgICAgIGRh
dGFUcmFuc2Zlci0+c2V0QWNjZXNzUG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVt
Yik7IC8vIEludmFsaWRhdGUgZGF0YVRyYW5zZmVyIGhlcmUgZm9yIHNlY3VyaXR5LgogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmlu
ZGV4IDkyM2U0MTY5Zjc4ZDBhZmYwYWNiMzNkYzY5MWI4YTlhNTgwZDMwZWQuLmE0YTI2Y2NmNjVh
MjViM2E3NzMwNTRiZGNmNmNiOWE3MmUzZmYyYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKQEAgLTEwODQsMTIgKzEwODQsMTIgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRpZFBh
blNjcm9sbFN0b3AoKQogICAgIG1fYXV0b3Njcm9sbENvbnRyb2xsZXItPmRpZFBhblNjcm9sbFN0
b3AoKTsKIH0KIAotdm9pZCBFdmVudEhhbmRsZXI6OnN0YXJ0UGFuU2Nyb2xsaW5nKFJlbmRlckVs
ZW1lbnQqIHJlbmRlcmVyKQordm9pZCBFdmVudEhhbmRsZXI6OnN0YXJ0UGFuU2Nyb2xsaW5nKFJl
bmRlckVsZW1lbnQmIHJlbmRlcmVyKQogewogI2lmICFQTEFURk9STShJT1MpCi0gICAgaWYgKCFp
czxSZW5kZXJCb3g+KCpyZW5kZXJlcikpCisgICAgaWYgKCFpczxSZW5kZXJCb3g+KHJlbmRlcmVy
KSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fYXV0b3Njcm9sbENvbnRyb2xsZXItPnN0YXJ0UGFu
U2Nyb2xsaW5nKGRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIpLCBsYXN0S25vd25Nb3VzZVBv
c2l0aW9uKCkpOworICAgIG1fYXV0b3Njcm9sbENvbnRyb2xsZXItPnN0YXJ0UGFuU2Nyb2xsaW5n
KCZkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKSwgbGFzdEtub3duTW91c2VQb3NpdGlvbigp
KTsKICAgICBpbnZhbGlkYXRlQ2xpY2soKTsKICNlbmRpZgogfQpAQCAtMjIzNiw3ICsyMjM2LDcg
QEAgc3RhdGljIGJvb2wgZmluZERyb3Bab25lKE5vZGUqIHRhcmdldCwgRGF0YVRyYW5zZmVyKiBk
YXRhVHJhbnNmZXIpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogICAgIAotYm9vbCBFdmVudEhhbmRs
ZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERh
dGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQorYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdB
bmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2ZlciYgZGF0
YVRyYW5zZmVyKQogewogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9mcmFtZSk7CiAK
QEAgLTIyNzUsMTYgKzIyNzUsMTYgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdBbmRE
cm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2YKICAgICAgICAg
ICAgICAgICAvLyBmb3Igbm93IHdlIGRvbid0IGNhcmUgaWYgZXZlbnQgaGFuZGxlciBjYW5jZWxz
IGRlZmF1bHQgYmVoYXZpb3IsIHNpbmNlIHRoZXJlIGlzIG5vbmUKICAgICAgICAgICAgICAgICBk
aXNwYXRjaERyYWdTcmNFdmVudChldmVudE5hbWVzKCkuZHJhZ0V2ZW50LCBldmVudCk7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVudChldmVudE5h
bWVzKCkuZHJhZ2VudGVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNmZXIpOwor
ICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdl
bnRlckV2ZW50LCAqbmV3VGFyZ2V0LCBldmVudCwgJmRhdGFUcmFuc2Zlcik7CiAgICAgICAgICAg
ICBpZiAoIWFjY2VwdCkKLSAgICAgICAgICAgICAgICBhY2NlcHQgPSBmaW5kRHJvcFpvbmUobmV3
VGFyZ2V0LmdldCgpLCBkYXRhVHJhbnNmZXIpOworICAgICAgICAgICAgICAgIGFjY2VwdCA9IGZp
bmREcm9wWm9uZShuZXdUYXJnZXQuZ2V0KCksICZkYXRhVHJhbnNmZXIpOwogICAgICAgICB9CiAK
ICAgICAgICAgaWYgKHRhcmdldElzRnJhbWUobV9kcmFnVGFyZ2V0LmdldCgpLCB0YXJnZXRGcmFt
ZSkpIHsKICAgICAgICAgICAgIGlmICh0YXJnZXRGcmFtZSkKICAgICAgICAgICAgICAgICBhY2Nl
cHQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQs
IGRhdGFUcmFuc2Zlcik7CiAgICAgICAgIH0gZWxzZSBpZiAobV9kcmFnVGFyZ2V0KQotICAgICAg
ICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50LCAqbV9k
cmFnVGFyZ2V0LCBldmVudCwgZGF0YVRyYW5zZmVyKTsKKyAgICAgICAgICAgIGRpc3BhdGNoRHJh
Z0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnbGVhdmVFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQs
ICZkYXRhVHJhbnNmZXIpOwogCiAgICAgICAgIGlmIChuZXdUYXJnZXQpIHsKICAgICAgICAgICAg
IC8vIFdlIGRvIG5vdCBleHBsaWNpdGx5IGNhbGwgZGlzcGF0Y2hEcmFnRXZlbnQgaGVyZSBiZWNh
dXNlIGl0IGNvdWxkIHVsdGltYXRlbHkgcmVzdWx0IGluIHRoZSBhcHBlYXJhbmNlIHRoYXQKQEAg
LTIzMDIsOSArMjMwMiw5IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcChj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmCiAgICAgICAgICAgICAg
ICAgLy8gZm9yIG5vdyB3ZSBkb24ndCBjYXJlIGlmIGV2ZW50IGhhbmRsZXIgY2FuY2VscyBkZWZh
dWx0IGJlaGF2aW9yLCBzaW5jZSB0aGVyZSBpcyBub25lCiAgICAgICAgICAgICAgICAgZGlzcGF0
Y2hEcmFnU3JjRXZlbnQoZXZlbnROYW1lcygpLmRyYWdFdmVudCwgZXZlbnQpOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygp
LmRyYWdvdmVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNmZXIpOworICAgICAg
ICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdvdmVyRXZl
bnQsICpuZXdUYXJnZXQsIGV2ZW50LCAmZGF0YVRyYW5zZmVyKTsKICAgICAgICAgICAgIGlmICgh
YWNjZXB0KQotICAgICAgICAgICAgICAgIGFjY2VwdCA9IGZpbmREcm9wWm9uZShuZXdUYXJnZXQu
Z2V0KCksIGRhdGFUcmFuc2Zlcik7CisgICAgICAgICAgICAgICAgYWNjZXB0ID0gZmluZERyb3Ba
b25lKG5ld1RhcmdldC5nZXQoKSwgJmRhdGFUcmFuc2Zlcik7CiAgICAgICAgICAgICBtX3Nob3Vs
ZE9ubHlGaXJlRHJhZ092ZXJFdmVudCA9IGZhbHNlOwogICAgICAgICB9CiAgICAgfQpAQCAtMjMx
Miw3ICsyMzEyLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2YKICAgICByZXR1cm4gYWNjZXB0
OwogfQogCi12b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIpCit2b2lkIEV2
ZW50SGFuZGxlcjo6Y2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBl
dmVudCwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIpCiB7CiAgICAgUmVmPEZyYW1lPiBwcm90
ZWN0ZWRGcmFtZShtX2ZyYW1lKTsKIApAQCAtMjMyMywxMiArMjMyMywxMiBAQCB2b2lkIEV2ZW50
SGFuZGxlcjo6Y2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVu
dCwgRGF0YVRyYW5zZgogICAgIH0gZWxzZSBpZiAobV9kcmFnVGFyZ2V0KSB7CiAgICAgICAgIGlm
IChkcmFnU3RhdGUoKS5zb3VyY2UgJiYgZHJhZ1N0YXRlKCkuc2hvdWxkRGlzcGF0Y2hFdmVudHMp
CiAgICAgICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVudChldmVudE5hbWVzKCkuZHJhZ0V2ZW50
LCBldmVudCk7Ci0gICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnbGVh
dmVFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsIGRhdGFUcmFuc2Zlcik7CisgICAgICAgIGRp
c3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnbGVhdmVFdmVudCwgKm1fZHJhZ1Rhcmdl
dCwgZXZlbnQsICZkYXRhVHJhbnNmZXIpOwogICAgIH0KICAgICBjbGVhckRyYWdTdGF0ZSgpOwog
fQogCi1ib29sIEV2ZW50SGFuZGxlcjo6cGVyZm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3Jt
TW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQorYm9vbCBFdmVu
dEhhbmRsZXI6OnBlcmZvcm1EcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2
ZW50LCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlcikKIHsKICAgICBSZWY8RnJhbWU+IHByb3Rl
Y3RlZEZyYW1lKG1fZnJhbWUpOwogCkBAIC0yMzM4LDcgKzIzMzgsNyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6cGVyZm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQs
IERhdGFUcmFucwogICAgICAgICBpZiAodGFyZ2V0RnJhbWUpCiAgICAgICAgICAgICBwcmV2ZW50
ZWREZWZhdWx0ID0gdGFyZ2V0RnJhbWUtPmV2ZW50SGFuZGxlcigpLnBlcmZvcm1EcmFnQW5kRHJv
cChldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICB9IGVsc2UgaWYgKG1fZHJhZ1RhcmdldCkKLSAg
ICAgICAgcHJldmVudGVkRGVmYXVsdCA9IGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5k
cm9wRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNmZXIpOworICAgICAgICBw
cmV2ZW50ZWREZWZhdWx0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyb3BFdmVu
dCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsICZkYXRhVHJhbnNmZXIpOwogICAgIGNsZWFyRHJhZ1N0
YXRlKCk7CiAgICAgcmV0dXJuIHByZXZlbnRlZERlZmF1bHQ7CiB9CkBAIC0yMzUzLDkgKzIzNTMs
MTAgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyRHJhZ1N0YXRlKCkKICAgICBtX3NlbmRpbmdF
dmVudFRvU3VidmlldyA9IGZhbHNlOwogI2VuZGlmCiB9CisKICNlbmRpZiAvLyBFTkFCTEUoRFJB
R19TVVBQT1JUKQogCi12b2lkIEV2ZW50SGFuZGxlcjo6c2V0Q2FwdHVyaW5nTW91c2VFdmVudHNF
bGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKK3ZvaWQgRXZlbnRIYW5kbGVyOjpz
ZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBt
X2NhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCA9IGVsZW1lbnQ7CiAgICAgbV9ldmVudEhhbmRs
ZXJXaWxsUmVzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQgPSBmYWxzZTsKQEAgLTI1NjMs
NyArMjU2NCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqIHRhcmdlCiAKICAgICAvLyBJZiBmb2N1cyBz
aGlmdCBpcyBibG9ja2VkLCB3ZSBlYXQgdGhlIGV2ZW50LgogICAgIGF1dG8qIHBhZ2UgPSBtX2Zy
YW1lLnBhZ2UoKTsKLSAgICBpZiAocGFnZSAmJiAhcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0
Rm9jdXNlZEVsZW1lbnQoZWxlbWVudCwgJm1fZnJhbWUpKQorICAgIGlmIChwYWdlICYmICFwYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChlbGVtZW50LCBtX2ZyYW1lKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0zNDExLDExICsz
NDEyLDExIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkcmFnU291cmNlRW5kZWRBdChjb25zdCBQbGF0
Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEcmFnT3BlcmF0CiAgICAgbV9tb3VzZURvd25NYXlTdGFy
dERyYWcgPSBmYWxzZTsKIH0KIAotdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0ZUFm
dGVyRWRpdERyYWdJZk5lZWRlZChFbGVtZW50KiByb290RWRpdGFibGVFbGVtZW50KQordm9pZCBF
dmVudEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRlZChFbGVtZW50
JiByb290RWRpdGFibGVFbGVtZW50KQogewogICAgIC8vIElmIGluc2VydGluZyB0aGUgZHJhZ2dl
ZCBjb250ZW50cyByZW1vdmVkIHRoZSBkcmFnIHNvdXJjZSwgd2Ugc3RpbGwgd2FudCB0byBmaXJl
IGRyYWdlbmQgYXQgdGhlIHJvb3QgZWRpdGFibGUgZWxlbWVudC4KICAgICBpZiAoZHJhZ1N0YXRl
KCkuc291cmNlICYmICFkcmFnU3RhdGUoKS5zb3VyY2UtPmluRG9jdW1lbnQoKSkKLSAgICAgICAg
ZHJhZ1N0YXRlKCkuc291cmNlID0gcm9vdEVkaXRhYmxlRWxlbWVudDsKKyAgICAgICAgZHJhZ1N0
YXRlKCkuc291cmNlID0gJnJvb3RFZGl0YWJsZUVsZW1lbnQ7CiB9CiAKIC8vIFJldHVybiB2YWx1
ZSBpbmRpY2F0ZXMgaWYgd2Ugc2hvdWxkIGNvbnRpbnVlICJkZWZhdWx0IHByb2Nlc3NpbmciLCBp
LmUuLCB3aGV0aGVyIGV2ZW50IGhhbmRsZXIgY2FuY2VsZWQuCkBAIC0zNjI1LDI1ICszNjI2LDI0
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVUZXh0SW5wdXRFdmVudChjb25zdCBTdHJpbmcm
IHRleHQsIEV2ZW50KiB1bmRlcmx5aW5nRXZlCiAgICAgcmV0dXJuIGV2ZW50LT5kZWZhdWx0SGFu
ZGxlZCgpOwogfQogICAgIAotYm9vbCBFdmVudEhhbmRsZXI6OmlzS2V5Ym9hcmRPcHRpb25UYWIo
S2V5Ym9hcmRFdmVudCogZXZlbnQpCitib29sIEV2ZW50SGFuZGxlcjo6aXNLZXlib2FyZE9wdGlv
blRhYihLZXlib2FyZEV2ZW50JiBldmVudCkKIHsKLSAgICByZXR1cm4gZXZlbnQKLSAgICAgICAg
JiYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCB8fCBldmVudC0+
dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KQotICAgICAgICAmJiBldmVudC0+
YWx0S2V5KCkKLSAgICAgICAgJiYgZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9PSAiVSswMDA5Ijsg
ICAgCisgICAgcmV0dXJuIChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVu
dCB8fCBldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQpCisgICAgICAg
ICYmIGV2ZW50LmFsdEtleSgpCisgICAgICAgICYmIGV2ZW50LmtleUlkZW50aWZpZXIoKSA9PSAi
VSswMDA5IjsKIH0KIAotYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtz
Q2xpZW50Q2FsbFJlc3VsdChLZXlib2FyZEV2ZW50KiBldmVudCkKK2Jvb2wgRXZlbnRIYW5kbGVy
OjpldmVudEludmVydHNUYWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQoS2V5Ym9hcmRFdmVudCYg
ZXZlbnQpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEVGTCkKLSAgICByZXR1
cm4gRXZlbnRIYW5kbGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKGV2ZW50KTsKKyAgICByZXR1cm4g
aXNLZXlib2FyZE9wdGlvblRhYihldmVudCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShldmVu
dCk7CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CiAKLWJvb2wgRXZlbnRIYW5kbGVyOjp0
YWJzVG9MaW5rcyhLZXlib2FyZEV2ZW50KiBldmVudCkgY29uc3QKK2Jvb2wgRXZlbnRIYW5kbGVy
Ojp0YWJzVG9MaW5rcyhLZXlib2FyZEV2ZW50JiBldmVudCkgY29uc3QKIHsKICAgICAvLyBGSVhN
RTogVGhpcyBmdW5jdGlvbiBuZWVkcyBhIGJldHRlciBuYW1lLiBJdCBjYW4gYmUgY2FsbGVkIGZv
ciBrZXlwcmVzc2VzIG90aGVyIHRoYW4gVGFiIHdoZW4gc3BhdGlhbCBuYXZpZ2F0aW9uIGlzIGVu
YWJsZWQuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IGRlNzhiY2FlODRhNzY2
NGRlMjhkNWQxNzkwNmI5YTNkYjJlMWI0MjMuLmUxMjgxYjZhYjkyZWIzMDcyOGFiMzk1ZDRhZjRh
YTIwNjE3OTQ1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtNTcsNiArNTcs
MTAgQEAgT0JKQ19DTEFTUyBXQUtWaWV3OwogT0JKQ19DTEFTUyBOU1ZpZXc7CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKE1BQykKK09CSkNfQ0xBU1MgTlNFdmVudDsKKyNlbmRpZgorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1dG9zY3JvbGxDb250cm9sbGVyOwpAQCAtMTAwLDcgKzEw
NCw3IEBAIGV4dGVybiBjb25zdCBpbnQgTGlua0RyYWdIeXN0ZXJlc2lzOwogZXh0ZXJuIGNvbnN0
IGludCBJbWFnZURyYWdIeXN0ZXJlc2lzOwogZXh0ZXJuIGNvbnN0IGludCBUZXh0RHJhZ0h5c3Rl
cmVzaXM7CiBleHRlcm4gY29uc3QgaW50IEdlbmVyYWxEcmFnSHlzdGVyZXNpczsKLSNlbmRpZiAv
LyBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2VuZGlmCiAKICNpZiBFTkFCTEUoSU9TX0dFU1RVUkVf
RVZFTlRTKSB8fCBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogZXh0ZXJuIGNvbnN0IGZsb2F0
IEdlc3R1cmVVbmtub3duOwpAQCAtMTM2LDcgKzE0MCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUo
UEFOX1NDUk9MTElORykKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0YXJ0KCk7CiAgICAgdm9pZCBk
aWRQYW5TY3JvbGxTdG9wKCk7Ci0gICAgdm9pZCBzdGFydFBhblNjcm9sbGluZyhSZW5kZXJFbGVt
ZW50Kik7CisgICAgdm9pZCBzdGFydFBhblNjcm9sbGluZyhSZW5kZXJFbGVtZW50Jik7CiAjZW5k
aWYKIAogICAgIHZvaWQgc3RvcEF1dG9zY3JvbGxUaW1lcihib29sIHJlbmRlcmVySXNCZWluZ0Rl
c3Ryb3llZCA9IGZhbHNlKTsKQEAgLTE1NiwxMyArMTYwLDEzIEBAIHB1YmxpYzoKICAgICBib29s
IG1vdXNlUHJlc3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VQcmVzc2VkOyB9CiAgICAgTm9k
ZSogbW91c2VQcmVzc05vZGUoKSBjb25zdCB7IHJldHVybiBtX21vdXNlUHJlc3NOb2RlLmdldCgp
OyB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxl
bWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsgLy8gQSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9y
IHJlc2V0dGluZyBjYXB0dXJpbmcgZWxlbWVudCB0byAwLgorICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KEVsZW1lbnQqKTsKIAogI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCi0gICAgYm9vbCB1cGRhdGVEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXIqKTsKLSAgICB2b2lkIGNhbmNlbERyYWdBbmREcm9w
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwotICAgIGJvb2wgcGVy
Zm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2Zlciop
OwotICAgIHZvaWQgdXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKEVsZW1lbnQq
IHJvb3RFZGl0YWJsZUVsZW1lbnQpOworICAgIGJvb2wgdXBkYXRlRHJhZ0FuZERyb3AoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyJik7CisgICAgdm9pZCBjYW5jZWxEcmFn
QW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXImKTsKKyAgICBi
b29sIHBlcmZvcm1EcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJh
bnNmZXImKTsKKyAgICB2b2lkIHVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRlZChF
bGVtZW50JiByb290RWRpdGFibGVFbGVtZW50KTsKICNlbmRpZgogCiAgICAgdm9pZCBzY2hlZHVs
ZUhvdmVyU3RhdGVVcGRhdGUoKTsKQEAgLTE4Nyw4ICsxOTEsOCBAQCBwdWJsaWM6CiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBzY3JvbGxSZWN1cnNpdmVseShTY3JvbGxEaXJlY3Rpb24sIFNjcm9s
bEdyYW51bGFyaXR5LCBOb2RlKiBzdGFydGluZ05vZGUgPSBudWxscHRyKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGxvZ2ljYWxTY3JvbGxSZWN1cnNpdmVseShTY3JvbGxMb2dpY2FsRGlyZWN0
aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgTm9kZSogc3RhcnRpbmdOb2RlID0gbnVsbHB0cik7CiAK
LSAgICBib29sIHRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQqKSBjb25zdDsKLSAgICBib29sIHRh
YnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KikgY29uc3Q7CisgICAgYm9vbCB0YWJz
VG9MaW5rcyhLZXlib2FyZEV2ZW50JikgY29uc3Q7CisgICAgYm9vbCB0YWJzVG9BbGxGb3JtQ29u
dHJvbHMoS2V5Ym9hcmRFdmVudCYpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBt
b3VzZU1vdmVkKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgcGFzc01vdXNlTW92ZWRFdmVudFRvU2Nyb2xsYmFycyhjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmKTsKQEAgLTIxMCwxMiArMjE0LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHBsYXRmb3Jt
Tm90aWZ5SWZFbmRHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIGNvbnN0IFdlYWtQ
dHI8U2Nyb2xsYWJsZUFyZWE+Jik7CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgfHwg
RU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykKLSAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8VG91
Y2g+PiBUb3VjaEFycmF5OwotICAgIHR5cGVkZWYgSGFzaE1hcDxFdmVudFRhcmdldCosIFRvdWNo
QXJyYXkqPiBFdmVudFRhcmdldFRvdWNoTWFwOworICAgIHVzaW5nIFRvdWNoQXJyYXkgPSBWZWN0
b3I8UmVmUHRyPFRvdWNoPj47CisgICAgdXNpbmcgRXZlbnRUYXJnZXRUb3VjaE1hcCA9IEhhc2hN
YXA8RXZlbnRUYXJnZXQqLCBUb3VjaEFycmF5Kj47CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJT1Nf
VE9VQ0hfRVZFTlRTKSB8fCBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKSB8fCBFTkFCTEUoTUFD
X0dFU1RVUkVfRVZFTlRTKQotICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8RXZlbnRUYXJnZXQ+
PiBFdmVudFRhcmdldFNldDsKKyAgICB1c2luZyBFdmVudFRhcmdldFNldCA9IEhhc2hTZXQ8UmVm
UHRyPEV2ZW50VGFyZ2V0Pj47CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQpAQCAtMjMxLDcgKzIzNSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9T
KQotICAgIHZvaWQgZGVmYXVsdFRvdWNoRXZlbnRIYW5kbGVyKE5vZGUqLCBUb3VjaEV2ZW50Kik7
CisgICAgdm9pZCBkZWZhdWx0VG91Y2hFdmVudEhhbmRsZXIoTm9kZSYsIFRvdWNoRXZlbnQmKTsK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0yNjQsOCArMjY4LDcgQEAg
cHVibGljOgogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VuZFNjcm9sbEV2ZW50KCk7
CiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgZGVmaW5lZChfX09CSkNfXykKLSNpZiAhUExBVEZP
Uk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNl
RG93bihOU0V2ZW50ICosIE5TRXZlbnQgKmNvcnJlc3BvbmRpbmdQcmVzc3VyZUV2ZW50KTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlRHJhZ2dlZChOU0V2ZW50ICosIE5TRXZlbnQgKmNv
cnJlc3BvbmRpbmdQcmVzc3VyZUV2ZW50KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNl
VXAoTlNFdmVudCAqLCBOU0V2ZW50ICpjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CkBAIC0y
NzMsNyArMjc2LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJlc3N1cmVD
aGFuZ2UoTlNFdmVudCAqLCBOU0V2ZW50KiBjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBrZXlFdmVudChOU0V2ZW50ICopOwogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgd2hlZWxFdmVudChOU0V2ZW50ICopOwotI2Vsc2UKKyNlbmRpZgorCisjaWYg
UExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW91c2VEb3duKFdlYkV2ZW50
ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW91c2VVcChXZWJFdmVudCAqKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlTW92ZWQoV2ViRXZlbnQgKik7CkBAIC0yODUsMjMgKzI5
MCwyMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB0b3VjaEV2ZW50KFdlYkV2
ZW50ICopOwogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBhc3NNb3VzZU1vdmVkRXZlbnRUb1Njcm9sbGJhcnMo
TlNFdmVudCAqLCBOU0V2ZW50KiBjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2
ZW50ICppbml0aWF0aW5nRXZlbnQpOwotI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKQogICAg
IHZvaWQgc2V0QWN0aXZhdGlvbkV2ZW50TnVtYmVyKGludCBudW0pIHsgbV9hY3RpdmF0aW9uRXZl
bnROdW1iZXIgPSBudW07IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOU0V2ZW50ICpj
dXJyZW50TlNFdmVudCgpOwogICAgIHN0YXRpYyBOU0V2ZW50ICpjb3JyZXNwb25kaW5nUHJlc3N1
cmVFdmVudCgpOwotI2Vsc2UKLSAgICBzdGF0aWMgV2ViRXZlbnQgKmN1cnJlbnRFdmVudCgpOwot
I2VuZGlmIC8vICFQTEFURk9STShJT1MpCi0jZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIGRl
ZmluZWQoX19PQkpDX18pCisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKKyAgICBzdGF0aWMg
V2ViRXZlbnQgKmN1cnJlbnRFdmVudCgpOworCiAgICAgdm9pZCBpbnZhbGlkYXRlQ2xpY2soKTsK
ICNlbmRpZgogCkBAIC0zMjQsOCArMzI2LDggQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgRHJhZ1N0
YXRlJiBkcmFnU3RhdGUoKTsKICAgICBzdGF0aWMgY29uc3QgZG91YmxlIFRleHREcmFnRGVsYXk7
CiAgICAgCi0gICAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURyYWdnaW5nRGF0YVRy
YW5zZmVyKCkgY29uc3Q7Ci0jZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKKyAgICBSZWY8
RGF0YVRyYW5zZmVyPiBjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0OworI2VuZGlm
CiAKICAgICBib29sIGV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQm
KSBjb25zdDsKICAgICBib29sIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRG93bkRpc3BhdGNoaW5n
U2VsZWN0U3RhcnQoTm9kZSosIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBUZXh0R3JhbnVsYXJp
dHkpOwpAQCAtMzU5LDggKzM2MSw4IEBAIHByaXZhdGU6CiAgICAgCiAgICAgYm9vbCBtb3VzZURv
d25NYXlTdGFydFNlbGVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VEb3duTWF5U3RhcnRTZWxl
Y3Q7IH0KIAotICAgIHN0YXRpYyBib29sIGlzS2V5Ym9hcmRPcHRpb25UYWIoS2V5Ym9hcmRFdmVu
dCopOwotICAgIHN0YXRpYyBib29sIGV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJl
c3VsdChLZXlib2FyZEV2ZW50Kik7CisgICAgc3RhdGljIGJvb2wgaXNLZXlib2FyZE9wdGlvblRh
YihLZXlib2FyZEV2ZW50Jik7CisgICAgc3RhdGljIGJvb2wgZXZlbnRJbnZlcnRzVGFic1RvTGlu
a3NDbGllbnRDYWxsUmVzdWx0KEtleWJvYXJkRXZlbnQmKTsKIAogI2lmICFFTkFCTEUoSU9TX1RP
VUNIX0VWRU5UUykKICAgICB2b2lkIGZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQoKTsKQEAg
LTM4NSw2ICszODcsNyBAQCBwcml2YXRlOgogICAgIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3Vs
dHMgcHJlcGFyZU1vdXNlRXZlbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmKTsKIAogICAgIGJvb2wgZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiB0YXJnZXQsIGJvb2wgY2FuY2VsYWJsZSwgaW50IGNs
aWNrQ291bnQsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGJvb2wgc2V0VW5kZXIpOworCiAj
aWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBib29sIGRpc3BhdGNoRHJhZ0V2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFbGVtZW50JiB0YXJnZXQsIGNvbnN0IFBsYXRmb3Jt
TW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwogCkBAIC0zOTIsNyArMzk1LDkgQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgaGFuZGxlRHJhZyhjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1
bHRzJiwgQ2hlY2tEcmFnSHlzdGVyZXNpcyk7CiAjZW5kaWYKKwogICAgIGJvb2wgaGFuZGxlTW91
c2VVcChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CisKICNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQogICAgIHZvaWQgY2xlYXJEcmFnU3RhdGUoKTsKIApAQCAtNDAwLDcgKzQw
NSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGRyYWdIeXN0ZXJlc2lzRXhjZWVkZWQoY29uc3Qg
RmxvYXRQb2ludCYpIGNvbnN0OwogICAgIGJvb2wgZHJhZ0h5c3RlcmVzaXNFeGNlZWRlZChjb25z
dCBJbnRQb2ludCYpIGNvbnN0OwotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjZW5k
aWYKICAgICAKICAgICBib29sIG1vdXNlTW92ZW1lbnRFeGNlZWRzVGhyZXNob2xkKGNvbnN0IEZs
b2F0UG9pbnQmLCBpbnQgcG9pbnRzVGhyZXNob2xkKSBjb25zdDsKIApAQCAtNDMxLDYgKzQzNiw3
IEBAIHByaXZhdGU6CiAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmUgY2FsbGVkIGF0IHRoZSBiZWdp
bm5pbmcgb2YgaGFuZGxlTW91c2VVcCBhbmQgaGFuZGxlRHJhZy4gIAogICAgIC8vIElmIHRoZXkg
cmV0dXJuIHRydWUgaXQgaW5kaWNhdGVzIHRoYXQgdGhleSBoYXZlIGNvbnN1bWVkIHRoZSBldmVu
dC4KICAgICBib29sIGV2ZW50TG9vcEhhbmRsZU1vdXNlVXAoY29uc3QgTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyYpOworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBib29sIGV2
ZW50TG9vcEhhbmRsZU1vdXNlRHJhZ2dlZChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1
bHRzJik7CiAjZW5kaWYKQEAgLTQ3MywxMCArNDc5LDEyIEBAIHByaXZhdGU6CiAgICAgUmVmUHRy
PE5vZGU+IG1fbW91c2VQcmVzc05vZGU7CiAKICAgICBib29sIG1fbW91c2VEb3duTWF5U3RhcnRT
ZWxlY3QgeyBmYWxzZSB9OworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBib29sIG1f
bW91c2VEb3duTWF5U3RhcnREcmFnIHsgZmFsc2UgfTsKICAgICBib29sIG1fZHJhZ01heVN0YXJ0
U2VsZWN0aW9uSW5zdGVhZCB7IGZhbHNlIH07CiAjZW5kaWYKKwogICAgIGJvb2wgbV9tb3VzZURv
d25XYXNTaW5nbGVDbGlja0luU2VsZWN0aW9uIHsgZmFsc2UgfTsKICAgICBlbnVtIFNlbGVjdGlv
bkluaXRpYXRpb25TdGF0ZSB7IEhhdmVOb3RTdGFydGVkU2VsZWN0aW9uLCBQbGFjZWRDYXJldCwg
RXh0ZW5kZWRTZWxlY3Rpb24gfTsKICAgICBTZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgbV9zZWxl
Y3Rpb25Jbml0aWF0aW9uU3RhdGUgeyBIYXZlTm90U3RhcnRlZFNlbGVjdGlvbiB9OwpAQCAtNDg4
LDYgKzQ5Niw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3BhblNjcm9sbEJ1dHRvblByZXNzZWQg
eyBmYWxzZSB9OwogCiAgICAgVGltZXIgbV9ob3ZlclRpbWVyOworCiAjaWYgRU5BQkxFKENVUlNP
Ul9TVVBQT1JUKQogICAgIFRpbWVyIG1fY3Vyc29yVXBkYXRlVGltZXI7CiAjZW5kaWYKQEAgLTQ5
NSw2ICs1MDQsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBUaW1lciBtX3Bl
bmRpbmdNb21lbnR1bVdoZWVsRXZlbnRzVGltZXI7CiAjZW5kaWYKKwogICAgIHN0ZDo6dW5pcXVl
X3B0cjxBdXRvc2Nyb2xsQ29udHJvbGxlcj4gbV9hdXRvc2Nyb2xsQ29udHJvbGxlcjsKICAgICBi
b29sIG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Nyb2xsIHsgZmFsc2UgfTsKICAgICBib29sIG1f
bW91c2VEb3duV2FzSW5TdWJmcmFtZSB7IGZhbHNlIH07CkBAIC01MjMsMTEgKzUzMywxMyBAQCBw
cml2YXRlOgogICAgIGZsb2F0IG1fZ2VzdHVyZUluaXRpYWxEaWFtZXRlciB7IEdlc3R1cmVVbmtu
b3duIH07CiAgICAgZmxvYXQgbV9nZXN0dXJlSW5pdGlhbFJvdGF0aW9uIHsgR2VzdHVyZVVua25v
d24gfTsKICNlbmRpZgorCiAjaWYgRU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykgfHwgRU5BQkxF
KE1BQ19HRVNUVVJFX0VWRU5UUykKICAgICBmbG9hdCBtX2dlc3R1cmVMYXN0RGlhbWV0ZXIgeyBH
ZXN0dXJlVW5rbm93biB9OwogICAgIGZsb2F0IG1fZ2VzdHVyZUxhc3RSb3RhdGlvbiB7IEdlc3R1
cmVVbmtub3duIH07CiAgICAgRXZlbnRUYXJnZXRTZXQgbV9nZXN0dXJlVGFyZ2V0czsKICNlbmRp
ZgorCiAjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKICAgICBib29sIG1faGFzQWN0aXZl
R2VzdHVyZSB7IGZhbHNlIH07CiAjZW5kaWYKQEAgLTU1OCwxMiArNTcwLDE0IEBAIHByaXZhdGU6
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgTlNWaWV3ICptX21vdXNlRG93blZpZXcgeyBudWxs
cHRyIH07CiAgICAgYm9vbCBtX3NlbmRpbmdFdmVudFRvU3VidmlldyB7IGZhbHNlIH07Ci0jaWYg
IVBMQVRGT1JNKElPUykKLSAgICBpbnQgbV9hY3RpdmF0aW9uRXZlbnROdW1iZXIgeyAtMSB9Owog
I2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgaW50IG1fYWN0aXZhdGlvbkV2ZW50TnVt
YmVyIHsgLTEgfTsKICNlbmRpZgorCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgIUVOQUJM
RShJT1NfVE9VQ0hfRVZFTlRTKQotICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFJlZlB0cjxFdmVu
dFRhcmdldD4+IFRvdWNoVGFyZ2V0TWFwOworICAgIHVzaW5nIFRvdWNoVGFyZ2V0TWFwID0gSGFz
aE1hcDxpbnQsIFJlZlB0cjxFdmVudFRhcmdldD4+OwogICAgIFRvdWNoVGFyZ2V0TWFwIG1fb3Jp
Z2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0czsKICAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fb3JpZ2lu
YXRpbmdUb3VjaFBvaW50RG9jdW1lbnQ7CiAgICAgdW5zaWduZWQgbV9vcmlnaW5hdGluZ1RvdWNo
UG9pbnRUYXJnZXRLZXkgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zv
Y3VzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5j
cHAKaW5kZXggYTdiMjU1N2U2OTQ2ZGI5ZTU2MTE1N2FkZjcyY2MyODI2ZWZlODc0Ny4uNWU1MTYx
OTE1ZmM0OTcwMjgwY2Y5MjkyNjA2ZTU4MGNmN2VkNzczNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmNwcApAQCAtMzE2LDcgKzMxNiw3IEBAIEZvY3VzQ29udHJvbGxlcjo6
Rm9jdXNDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIEFjdGl2aXR5U3RhdGU6OkZsYWdzIGFjdGl2aXR5
U3RhdGUpCiB7CiB9CiAKLXZvaWQgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRnJhbWUoUGFz
c1JlZlB0cjxGcmFtZT4gZnJhbWUpCit2b2lkIEZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEZy
YW1lKEZyYW1lKiBmcmFtZSkKIHsKICAgICBBU1NFUlQoIWZyYW1lIHx8IGZyYW1lLT5wYWdlKCkg
PT0gJm1fcGFnZSk7CiAgICAgaWYgKG1fZm9jdXNlZEZyYW1lID09IGZyYW1lIHx8IG1faXNDaGFu
Z2luZ0ZvY3VzZWRGcmFtZSkKQEAgLTc2NSw4ICs3NjUsOSBAQCBzdGF0aWMgdm9pZCBjbGVhclNl
bGVjdGlvbklmTmVlZGVkKEZyYW1lKiBvbGRGb2N1c2VkRnJhbWUsIEZyYW1lKiBuZXdGb2N1c2Vk
RnJhbQogICAgIG9sZEZvY3VzZWRGcmFtZS0+c2VsZWN0aW9uKCkuY2xlYXIoKTsKIH0KIAotYm9v
bCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIFBh
c3NSZWZQdHI8RnJhbWU+IG5ld0ZvY3VzZWRGcmFtZSwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9u
KQorYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqIGVsZW1l
bnQsIEZyYW1lJiBuZXdGb2N1c2VkRnJhbWUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsK
KyAgICBSZWY8RnJhbWU+IHByb3RlY3RlZE5ld0ZvY3VzZWRGcmFtZSA9IG5ld0ZvY3VzZWRGcmFt
ZTsKICAgICBSZWZQdHI8RnJhbWU+IG9sZEZvY3VzZWRGcmFtZSA9IGZvY3VzZWRGcmFtZSgpOwog
ICAgIFJlZlB0cjxEb2N1bWVudD4gb2xkRG9jdW1lbnQgPSBvbGRGb2N1c2VkRnJhbWUgPyBvbGRG
b2N1c2VkRnJhbWUtPmRvY3VtZW50KCkgOiBudWxscHRyOwogICAgIApAQCAtNzgwLDcgKzc4MSw3
IEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVt
ZW50LCBQYXNzUmVmUHRyPEZyYW1lPiBuZXdGCiAKICAgICBtX3BhZ2UuZWRpdG9yQ2xpZW50KCku
d2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKIAotICAgIGNsZWFyU2VsZWN0aW9uSWZOZWVkZWQo
b2xkRm9jdXNlZEZyYW1lLmdldCgpLCBuZXdGb2N1c2VkRnJhbWUuZ2V0KCksIGVsZW1lbnQpOwor
ICAgIGNsZWFyU2VsZWN0aW9uSWZOZWVkZWQob2xkRm9jdXNlZEZyYW1lLmdldCgpLCAmbmV3Rm9j
dXNlZEZyYW1lLCBlbGVtZW50KTsKIAogICAgIGlmICghZWxlbWVudCkgewogICAgICAgICBpZiAo
b2xkRG9jdW1lbnQpCkBAIC03OTksMTEgKzgwMCwxMSBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6
c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUGFzc1JlZlB0cjxGcmFtZT4gbmV3
RgogICAgIGlmIChvbGREb2N1bWVudCAmJiBvbGREb2N1bWVudCAhPSBuZXdEb2N1bWVudC5wdHIo
KSkKICAgICAgICAgb2xkRG9jdW1lbnQtPnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIpOwogCi0g
ICAgaWYgKG5ld0ZvY3VzZWRGcmFtZSAmJiAhbmV3Rm9jdXNlZEZyYW1lLT5wYWdlKCkpIHsKKyAg
ICBpZiAobmV3Rm9jdXNlZEZyYW1lLnBhZ2UoKSkgewogICAgICAgICBzZXRGb2N1c2VkRnJhbWUo
bnVsbHB0cik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgc2V0Rm9jdXNlZEZy
YW1lKG5ld0ZvY3VzZWRGcmFtZSk7CisgICAgc2V0Rm9jdXNlZEZyYW1lKCZuZXdGb2N1c2VkRnJh
bWUpOwogCiAgICAgUmVmPEVsZW1lbnQ+IHByb3RlY3QoKmVsZW1lbnQpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAppbmRleCBlY2JlMzk2MWRhMWY1YjAwNWIwMWJjYzgyNTE2
YjUwYTI3YThlMmFlLi5jNmRjZjIyMjA5MzVlY2JiMWZjYmQ0MjIxZjJjYTJkOTQ3M2Y3N2EzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsMTIgKzMwLDEwIEBA
CiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8
d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IEZvY3VzQ2FuZGlk
YXRlOwogY2xhc3MgQ29udGFpbmVyTm9kZTsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxlbWVu
dDsKQEAgLTQ4LDE5ICs0NiwyMSBAQCBjbGFzcyBOb2RlOwogY2xhc3MgUGFnZTsKIGNsYXNzIFRy
ZWVTY29wZTsKIAorc3RydWN0IEZvY3VzQ2FuZGlkYXRlOworCiBjbGFzcyBGb2N1c0NvbnRyb2xs
ZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEZvY3VzQ29udHJvbGxlcik7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIGV4cGxpY2l0IEZvY3VzQ29udHJvbGxlcihQYWdlJiwgQWN0aXZpdHlTdGF0ZTo6RmxhZ3Mp
OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGb2N1c2VkRnJhbWUoUGFzc1JlZlB0cjxG
cmFtZT4pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Rm9jdXNlZEZyYW1lKEZyYW1lKik7
CiAgICAgRnJhbWUqIGZvY3VzZWRGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9jdXNlZEZyYW1l
LmdldCgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUmIGZvY3VzZWRPck1haW5GcmFtZSgp
IGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRJbml0aWFsRm9jdXMoRm9jdXNE
aXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqKTsKICAgICBib29sIGFkdmFuY2VGb2N1cyhGb2N1c0Rp
cmVjdGlvbiwgS2V5Ym9hcmRFdmVudCYsIGJvb2wgaW5pdGlhbEZvY3VzID0gZmFsc2UpOwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiwgUGFzc1Jl
ZlB0cjxGcmFtZT4sIEZvY3VzRGlyZWN0aW9uID0gRm9jdXNEaXJlY3Rpb25Ob25lKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBib29sIHNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqLCBGcmFtZSYsIEZv
Y3VzRGlyZWN0aW9uID0gRm9jdXNEaXJlY3Rpb25Ob25lKTsKIAogICAgIHZvaWQgc2V0QWN0aXZp
dHlTdGF0ZShBY3Rpdml0eVN0YXRlOjpGbGFncyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNw
cAppbmRleCBkZWViMjNiNzU4NDQ5YmJmZTVjNTVmMTlkODBkMDQ5MjgyOTExN2FhLi42Mzg0OTBl
NGJjYTM0NjJiNmI3N2ZiNjNiYzAwZGY1YzIyYTUyNmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRy
ZWUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2Vh
cmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgpAQCAtNjMsMjUgKzYzLDYgQEAgRnJhbWUqIEZyYW1lVHJlZTo6cGFyZW50KCkgY29uc3QK
ICAgICByZXR1cm4gbV9wYXJlbnQ7CiB9CiAKLWJvb2wgRnJhbWVUcmVlOjp0cmFuc2ZlckNoaWxk
KFBhc3NSZWZQdHI8RnJhbWU+IGNoaWxkKQotewotICAgIEZyYW1lKiBvbGRQYXJlbnQgPSBjaGls
ZC0+dHJlZSgpLnBhcmVudCgpOwotICAgIGlmIChvbGRQYXJlbnQgPT0gJm1fdGhpc0ZyYW1lKQot
ICAgICAgICByZXR1cm4gZmFsc2U7IC8vIHxjaGlsZHwgaXMgYWxyZWFkeSBhIGNoaWxkIG9mIG1f
dGhpc0ZyYW1lLgotCi0gICAgaWYgKG9sZFBhcmVudCkKLSAgICAgICAgb2xkUGFyZW50LT50cmVl
KCkucmVtb3ZlQ2hpbGQoY2hpbGQuZ2V0KCkpOwotCi0gICAgQVNTRVJUKGNoaWxkLT5wYWdlKCkg
PT0gbV90aGlzRnJhbWUucGFnZSgpKTsKLSAgICBjaGlsZC0+dHJlZSgpLm1fcGFyZW50ID0gJm1f
dGhpc0ZyYW1lOwotCi0gICAgLy8gV2UgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgY2hpbGQgc3Rp
bGwgaGFzIGEgdW5pcXVlIGZyYW1lIG5hbWUgd2l0aCByZXNwZWN0IHRvIGl0cyBuZXcgcGFyZW50
LgotICAgIGNoaWxkLT50cmVlKCkuc2V0TmFtZShjaGlsZC0+dHJlZSgpLm1fbmFtZSk7Ci0KLSAg
ICBhY3R1YWxseUFwcGVuZENoaWxkKGNoaWxkKTsgLy8gTm90ZSwgb24gcmV0dXJuIHxjaGlsZHwg
aXMgbnVsbC4KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogdW5zaWduZWQgRnJhbWVUcmVlOjppbmRl
eEluUGFyZW50KCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGFyZW50KQpAQCAtOTUsNDYgKzc2LDQw
IEBAIHVuc2lnbmVkIEZyYW1lVHJlZTo6aW5kZXhJblBhcmVudCgpIGNvbnN0CiAgICAgUkVMRUFT
RV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBGcmFtZVRyZWU6OmFwcGVuZENoaWxk
KFBhc3NSZWZQdHI8RnJhbWU+IGNoaWxkKQotewotICAgIEFTU0VSVChjaGlsZC0+cGFnZSgpID09
IG1fdGhpc0ZyYW1lLnBhZ2UoKSk7Ci0gICAgY2hpbGQtPnRyZWUoKS5tX3BhcmVudCA9ICZtX3Ro
aXNGcmFtZTsKLSAgICBhY3R1YWxseUFwcGVuZENoaWxkKGNoaWxkKTsgLy8gTm90ZSwgb24gcmV0
dXJuIHxjaGlsZHwgaXMgbnVsbC4KLX0KLQotdm9pZCBGcmFtZVRyZWU6OmFjdHVhbGx5QXBwZW5k
Q2hpbGQoUGFzc1JlZlB0cjxGcmFtZT4gY2hpbGQpCit2b2lkIEZyYW1lVHJlZTo6YXBwZW5kQ2hp
bGQoRnJhbWUmIGNoaWxkKQogewotICAgIEFTU0VSVChjaGlsZC0+dHJlZSgpLm1fcGFyZW50ID09
ICZtX3RoaXNGcmFtZSk7CisgICAgQVNTRVJUKGNoaWxkLnBhZ2UoKSA9PSBtX3RoaXNGcmFtZS5w
YWdlKCkpOworICAgIGNoaWxkLnRyZWUoKS5tX3BhcmVudCA9ICZtX3RoaXNGcmFtZTsKICAgICBG
cmFtZSogb2xkTGFzdCA9IG1fbGFzdENoaWxkOwotICAgIG1fbGFzdENoaWxkID0gY2hpbGQuZ2V0
KCk7CisgICAgbV9sYXN0Q2hpbGQgPSAmY2hpbGQ7CiAKICAgICBpZiAob2xkTGFzdCkgewotICAg
ICAgICBjaGlsZC0+dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nID0gb2xkTGFzdDsKLSAgICAgICAg
b2xkTGFzdC0+dHJlZSgpLm1fbmV4dFNpYmxpbmcgPSBjaGlsZDsKKyAgICAgICAgY2hpbGQudHJl
ZSgpLm1fcHJldmlvdXNTaWJsaW5nID0gb2xkTGFzdDsKKyAgICAgICAgb2xkTGFzdC0+dHJlZSgp
Lm1fbmV4dFNpYmxpbmcgPSAmY2hpbGQ7CiAgICAgfSBlbHNlCi0gICAgICAgIG1fZmlyc3RDaGls
ZCA9IGNoaWxkOworICAgICAgICBtX2ZpcnN0Q2hpbGQgPSAmY2hpbGQ7CiAKICAgICBtX3Njb3Bl
ZENoaWxkQ291bnQgPSBpbnZhbGlkQ291bnQ7CiAKICAgICBBU1NFUlQoIW1fbGFzdENoaWxkLT50
cmVlKCkubV9uZXh0U2libGluZyk7CiB9CiAKLXZvaWQgRnJhbWVUcmVlOjpyZW1vdmVDaGlsZChG
cmFtZSogY2hpbGQpCit2b2lkIEZyYW1lVHJlZTo6cmVtb3ZlQ2hpbGQoRnJhbWUmIGNoaWxkKQog
ewotICAgIGNoaWxkLT50cmVlKCkubV9wYXJlbnQgPSBudWxscHRyOworICAgIGNoaWxkLnRyZWUo
KS5tX3BhcmVudCA9IG51bGxwdHI7CiAKICAgICAvLyBTbGlnaHRseSB0cmlja3kgd2F5IHRvIHBy
ZXZlbnQgZGVsZXRpbmcgdGhlIGNoaWxkIHVudGlsIHdlIGFyZSBkb25lIHdpdGggaXQsIHcvbwog
ICAgIC8vIGV4dHJhIHJlZnMuIFRoZXNlIHN3YXBzIGxlYXZlIHRoZSBjaGlsZCBpbiBhIGNpcmN1
bGFyIGxpc3QgYnkgaXRzZWxmLiBDbGVhcmluZyBpdHMKICAgICAvLyBwcmV2aW91cyBhbmQgbmV4
dCB3aWxsIHRoZW4gZmluYWxseSBkZXJlZiBpdC4KIAotICAgIFJlZlB0cjxGcmFtZT4mIG5ld0xv
Y2F0aW9uRm9yTmV4dCA9IG1fZmlyc3RDaGlsZCA9PSBjaGlsZCA/IG1fZmlyc3RDaGlsZCA6IGNo
aWxkLT50cmVlKCkubV9wcmV2aW91c1NpYmxpbmctPnRyZWUoKS5tX25leHRTaWJsaW5nOwotICAg
IEZyYW1lKiYgbmV3TG9jYXRpb25Gb3JQcmV2aW91cyA9IG1fbGFzdENoaWxkID09IGNoaWxkID8g
bV9sYXN0Q2hpbGQgOiBjaGlsZC0+dHJlZSgpLm1fbmV4dFNpYmxpbmctPnRyZWUoKS5tX3ByZXZp
b3VzU2libGluZzsKLSAgICBzd2FwKG5ld0xvY2F0aW9uRm9yTmV4dCwgY2hpbGQtPnRyZWUoKS5t
X25leHRTaWJsaW5nKTsKKyAgICBSZWZQdHI8RnJhbWU+JiBuZXdMb2NhdGlvbkZvck5leHQgPSBt
X2ZpcnN0Q2hpbGQgPT0gJmNoaWxkID8gbV9maXJzdENoaWxkIDogY2hpbGQudHJlZSgpLm1fcHJl
dmlvdXNTaWJsaW5nLT50cmVlKCkubV9uZXh0U2libGluZzsKKyAgICBGcmFtZSomIG5ld0xvY2F0
aW9uRm9yUHJldmlvdXMgPSBtX2xhc3RDaGlsZCA9PSAmY2hpbGQgPyBtX2xhc3RDaGlsZCA6IGNo
aWxkLnRyZWUoKS5tX25leHRTaWJsaW5nLT50cmVlKCkubV9wcmV2aW91c1NpYmxpbmc7CisgICAg
c3dhcChuZXdMb2NhdGlvbkZvck5leHQsIGNoaWxkLnRyZWUoKS5tX25leHRTaWJsaW5nKTsKICAg
ICAvLyBGb3Igc29tZSBpbmV4cGxpY2FibGUgcmVhc29uLCB0aGUgZm9sbG93aW5nIGxpbmUgZG9l
cyBub3QgY29tcGlsZSB3aXRob3V0IHRoZSBleHBsaWNpdCBzdGQ6OiBuYW1lc3BhY2UKLSAgICBz
dGQ6OnN3YXAobmV3TG9jYXRpb25Gb3JQcmV2aW91cywgY2hpbGQtPnRyZWUoKS5tX3ByZXZpb3Vz
U2libGluZyk7CisgICAgc3RkOjpzd2FwKG5ld0xvY2F0aW9uRm9yUHJldmlvdXMsIGNoaWxkLnRy
ZWUoKS5tX3ByZXZpb3VzU2libGluZyk7CiAKLSAgICBjaGlsZC0+dHJlZSgpLm1fcHJldmlvdXNT
aWJsaW5nID0gbnVsbHB0cjsKLSAgICBjaGlsZC0+dHJlZSgpLm1fbmV4dFNpYmxpbmcgPSBudWxs
cHRyOworICAgIGNoaWxkLnRyZWUoKS5tX3ByZXZpb3VzU2libGluZyA9IG51bGxwdHI7CisgICAg
Y2hpbGQudHJlZSgpLm1fbmV4dFNpYmxpbmcgPSBudWxscHRyOwogCiAgICAgbV9zY29wZWRDaGls
ZENvdW50ID0gaW52YWxpZENvdW50OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmgKaW5kZXggYWIx
NmYwYWQ2Mzk2MjVhZTJkNzhjMTc5ZjEzNTNiYjg0Yzk4YWUxYS4uM2Y4N2MyNzliZGMzYTA2NGZl
ODg4MDhiNjAzYTJhY2Y3ZjJkYzdlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBJbmMuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKQEAgLTY1LDEwICs2NSw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCBGcmFtZSogdHJhdmVyc2VOZXh0V2l0aFdyYXAoYm9vbCkgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgRnJhbWUqIHRyYXZlcnNlUHJldmlvdXNXaXRoV3JhcChib29sKSBjb25zdDsKICAgICAK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGVuZENoaWxkKFBhc3NSZWZQdHI8RnJhbWU+KTsK
LSAgICBib29sIHRyYW5zZmVyQ2hpbGQoUGFzc1JlZlB0cjxGcmFtZT4pOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgYXBwZW5kQ2hpbGQoRnJhbWUmKTsKICAgICB2b2lkIGRldGFjaEZyb21QYXJl
bnQoKSB7IG1fcGFyZW50ID0gbnVsbHB0cjsgfQotICAgIHZvaWQgcmVtb3ZlQ2hpbGQoRnJhbWUq
KTsKKyAgICB2b2lkIHJlbW92ZUNoaWxkKEZyYW1lJik7CiAKICAgICBGcmFtZSogY2hpbGQodW5z
aWduZWQgaW5kZXgpIGNvbnN0OwogICAgIEZyYW1lKiBjaGlsZChjb25zdCBBdG9taWNTdHJpbmcm
IG5hbWUpIGNvbnN0OwpAQCAtODcsNyArODYsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAg
RnJhbWUqIGRlZXBMYXN0Q2hpbGQoKSBjb25zdDsKLSAgICB2b2lkIGFjdHVhbGx5QXBwZW5kQ2hp
bGQoUGFzc1JlZlB0cjxGcmFtZT4pOwogCiAgICAgYm9vbCBzY29wZWRCeShUcmVlU2NvcGUqKSBj
b25zdDsKICAgICBGcmFtZSogc2NvcGVkQ2hpbGQodW5zaWduZWQgaW5kZXgsIFRyZWVTY29wZSop
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGQ5NGM5ZDkyMWE0YTQxOTYz
ZWM4ZGFlNzVjMGI0ZTIzMjYwOTc4YTIuLjRkNjM4YTJlNzUzYzFlYWI3YmZjMGRjNzhjODczN2Qw
ZTUyYzJhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTY3Nyw3ICs2NzcsNyBA
QCB2b2lkIEZyYW1lVmlldzo6c2V0Q29udGVudHNTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiAK
ICAgICB1cGRhdGVTY3JvbGxhYmxlQXJlYVNldCgpOwogCi0gICAgcGFnZS0+Y2hyb21lKCkuY29u
dGVudHNTaXplQ2hhbmdlZCgmZnJhbWUoKSwgc2l6ZSk7IC8vIE5vdGlmeSBvbmx5LgorICAgIHBh
Z2UtPmNocm9tZSgpLmNvbnRlbnRzU2l6ZUNoYW5nZWQoZnJhbWUoKSwgc2l6ZSk7IC8vIE5vdGlm
eSBvbmx5LgogCiAgICAgaWYgKGZyYW1lKCkuaXNNYWluRnJhbWUoKSkgewogICAgICAgICBmcmFt
ZSgpLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmRpZENoYW5nZURvY3VtZW50
U2l6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuY3BwCmluZGV4IDQ4MTc0Y2IyNDM3ZDU5NjBi
MjFjNTM4MzZjNTI3MWI2NjBkODg2YzEuLmExN2JlM2JiNTNhODkyZjViZTYyZDRjNGQ3NzI0ZTBh
ZDRjZmQ0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAKQEAgLTkyLDcgKzkyLDcgQEAg
dm9pZCBNYWluRnJhbWU6OnNlbGZPbmx5RGVyZWYoKQogdm9pZCBNYWluRnJhbWU6OmRyb3BDaGls
ZHJlbigpCiB7CiAgICAgd2hpbGUgKEZyYW1lKiBjaGlsZCA9IHRyZWUoKS5maXJzdENoaWxkKCkp
Ci0gICAgICAgIHRyZWUoKS5yZW1vdmVDaGlsZChjaGlsZCk7CisgICAgICAgIHRyZWUoKS5yZW1v
dmVDaGlsZCgqY2hpbGQpOwogfQogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
aW5kZXggZGIxN2U2YmFmN2FjZTRjMjcyNjVjOGVkYjM3MDVmZGIxN2ViMjBiYS4uN2Q2YWYxMTBh
NGNkNGRhZGVjZWQyNDU5MDY2MjczMDQyZjNkMGM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0z
NjMsNyArMzYzLDcgQEAgVmlld3BvcnRBcmd1bWVudHMgUGFnZTo6dmlld3BvcnRBcmd1bWVudHMo
KSBjb25zdAogU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIFBhZ2U6OnNjcm9sbGluZ0Nvb3JkaW5hdG9y
KCkKIHsKICAgICBpZiAoIW1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IgJiYgbV9zZXR0aW5ncy0+c2Ny
b2xsaW5nQ29vcmRpbmF0b3JFbmFibGVkKCkpIHsKLSAgICAgICAgbV9zY3JvbGxpbmdDb29yZGlu
YXRvciA9IGNocm9tZSgpLmNsaWVudCgpLmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKHRoaXMp
OworICAgICAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yID0gY2hyb21lKCkuY2xpZW50KCkuY3Jl
YXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoKnRoaXMpOwogICAgICAgICBpZiAoIW1fc2Nyb2xsaW5n
Q29vcmRpbmF0b3IpCiAgICAgICAgICAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yID0gU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OmNyZWF0ZSh0aGlzKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92
ZXJsYXkuY3BwCmluZGV4IGU3MGJjYTA1MjNmMGUzOTVmODc3ZmY2M2MxMmFhMzk1NTdhZGVkN2Mu
LjJjYTg2Zjk4MjgwODE2Mzc4NGYyYWI3ZmE0M2VlZWJiZWUzNzk1ZjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZU92ZXJsYXkuY3BwCkBAIC0yNzQsNyArMjc0LDcgQEAgdm9pZCBQYWdlT3ZlcmxheTo6
ZmFkZUFuaW1hdGlvblRpbWVyRmlyZWQoKQogCiAgICAgICAgIC8vIElmIHRoaXMgd2FzIGEgZmFk
ZSBvdXQsIHVuaW5zdGFsbCB0aGUgcGFnZSBvdmVybGF5LgogICAgICAgICBpZiAod2FzRmFkaW5n
T3V0KQotICAgICAgICAgICAgY29udHJvbGxlcigpLT51bmluc3RhbGxQYWdlT3ZlcmxheSh0aGlz
LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgICAgICAgICBjb250cm9s
bGVyKCktPnVuaW5zdGFsbFBhZ2VPdmVybGF5KCp0aGlzLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6
OkRvTm90RmFkZSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVy
bGF5Q29udHJvbGxlci5jcHAKaW5kZXggODY2Yjg3MGNiOGU0ZDFiN2U1ZDIxYjNiMTZhYzFlNWM2
YjNhYmY4My4uMDU0M2JkNTM0ZDI1MWJhMzdkY2E0MjFkYTE3ZTJjOTkzYTJkYWYyYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05NSwyNyArOTUs
MjUgQEAgc3RhdGljIHZvaWQgdXBkYXRlT3ZlcmxheUdlb21ldHJ5KFBhZ2VPdmVybGF5JiBvdmVy
bGF5LCBHcmFwaGljc0xheWVyJiBncmFwaGljc0wKICAgICBncmFwaGljc0xheWVyLnNldFNpemUo
b3ZlcmxheUZyYW1lLnNpemUoKSk7CiB9CiAKLXZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjpp
bnN0YWxsUGFnZU92ZXJsYXkoUGFzc1JlZlB0cjxQYWdlT3ZlcmxheT4gcGFnZU92ZXJsYXksIFBh
Z2VPdmVybGF5OjpGYWRlTW9kZSBmYWRlTW9kZSkKK3ZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVy
OjppbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkmIG92ZXJsYXksIFBhZ2VPdmVybGF5OjpG
YWRlTW9kZSBmYWRlTW9kZSkKIHsKICAgICBjcmVhdGVSb290TGF5ZXJzSWZOZWVkZWQoKTsKIAot
ICAgIFJlZlB0cjxQYWdlT3ZlcmxheT4gb3ZlcmxheSA9IHBhZ2VPdmVybGF5OwotCi0gICAgaWYg
KG1fcGFnZU92ZXJsYXlzLmNvbnRhaW5zKG92ZXJsYXkpKQorICAgIGlmIChtX3BhZ2VPdmVybGF5
cy5jb250YWlucygmb3ZlcmxheSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZU92ZXJs
YXlzLmFwcGVuZChvdmVybGF5KTsKKyAgICBtX3BhZ2VPdmVybGF5cy5hcHBlbmQoJm92ZXJsYXkp
OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGxheWVyID0gR3JhcGhpY3NM
YXllcjo6Y3JlYXRlKG1fbWFpbkZyYW1lLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZ3JhcGhp
Y3NMYXllckZhY3RvcnkoKSwgKnRoaXMpOwogICAgIGxheWVyLT5zZXRBbmNob3JQb2ludChGbG9h
dFBvaW50M0QoKSk7Ci0gICAgbGF5ZXItPnNldEJhY2tncm91bmRDb2xvcihvdmVybGF5LT5iYWNr
Z3JvdW5kQ29sb3IoKSk7CisgICAgbGF5ZXItPnNldEJhY2tncm91bmRDb2xvcihvdmVybGF5LmJh
Y2tncm91bmRDb2xvcigpKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgbGF5ZXItPnNldE5hbWUoIlBh
Z2UgT3ZlcmxheSBjb250ZW50Iik7CiAjZW5kaWYKIAogICAgIHVwZGF0ZVNldHRpbmdzRm9yTGF5
ZXIoKmxheWVyKTsKIAotICAgIHN3aXRjaCAob3ZlcmxheS0+b3ZlcmxheVR5cGUoKSkgeworICAg
IHN3aXRjaCAob3ZlcmxheS5vdmVybGF5VHlwZSgpKSB7CiAgICAgY2FzZSBQYWdlT3ZlcmxheTo6
T3ZlcmxheVR5cGU6OlZpZXc6CiAgICAgICAgIG1fdmlld092ZXJsYXlSb290TGF5ZXItPmFkZENo
aWxkKGxheWVyLmdldCgpKTsKICAgICAgICAgYnJlYWs7CkBAIC0xMjUsMzMgKzEyMywzMyBAQCB2
b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6aW5zdGFsbFBhZ2VPdmVybGF5KFBhc3NSZWZQdHI8
UGFnZU92ZXJsYXk+IHBhZ2VPdmVybAogICAgIH0KIAogICAgIEdyYXBoaWNzTGF5ZXImIHJhd0xh
eWVyID0gKmxheWVyOwotICAgIG1fb3ZlcmxheUdyYXBoaWNzTGF5ZXJzLnNldChvdmVybGF5Lmdl
dCgpLCBXVEZNb3ZlKGxheWVyKSk7CisgICAgbV9vdmVybGF5R3JhcGhpY3NMYXllcnMuc2V0KCZv
dmVybGF5LCBXVEZNb3ZlKGxheWVyKSk7CiAKICAgICB1cGRhdGVGb3JjZVN5bmNocm9ub3VzU2Ny
b2xsTGF5ZXJQb3NpdGlvblVwZGF0ZXMoKTsKIAotICAgIG92ZXJsYXktPnNldFBhZ2UobV9tYWlu
RnJhbWUucGFnZSgpKTsKKyAgICBvdmVybGF5LnNldFBhZ2UobV9tYWluRnJhbWUucGFnZSgpKTsK
IAogICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fbWFpbkZyYW1lLnZpZXcoKSkKICAg
ICAgICAgZnJhbWVWaWV3LT5lbnRlckNvbXBvc2l0aW5nTW9kZSgpOwogCi0gICAgdXBkYXRlT3Zl
cmxheUdlb21ldHJ5KCpvdmVybGF5LCByYXdMYXllcik7CisgICAgdXBkYXRlT3ZlcmxheUdlb21l
dHJ5KG92ZXJsYXksIHJhd0xheWVyKTsKIAogICAgIGlmIChmYWRlTW9kZSA9PSBQYWdlT3Zlcmxh
eTo6RmFkZU1vZGU6OkZhZGUpCi0gICAgICAgIG92ZXJsYXktPnN0YXJ0RmFkZUluQW5pbWF0aW9u
KCk7CisgICAgICAgIG92ZXJsYXkuc3RhcnRGYWRlSW5BbmltYXRpb24oKTsKIH0KIAotdm9pZCBQ
YWdlT3ZlcmxheUNvbnRyb2xsZXI6OnVuaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5KiBv
dmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUgZmFkZU1vZGUpCit2b2lkIFBhZ2VPdmVybGF5
Q29udHJvbGxlcjo6dW5pbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkmIG92ZXJsYXksIFBh
Z2VPdmVybGF5OjpGYWRlTW9kZSBmYWRlTW9kZSkKIHsKICAgICBpZiAoZmFkZU1vZGUgPT0gUGFn
ZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKSB7Ci0gICAgICAgIG92ZXJsYXktPnN0YXJ0RmFkZU91
dEFuaW1hdGlvbigpOworICAgICAgICBvdmVybGF5LnN0YXJ0RmFkZU91dEFuaW1hdGlvbigpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgb3ZlcmxheS0+c2V0UGFnZShudWxscHRyKTsK
KyAgICBvdmVybGF5LnNldFBhZ2UobnVsbHB0cik7CiAKLSAgICBtX292ZXJsYXlHcmFwaGljc0xh
eWVycy50YWtlKG92ZXJsYXkpLT5yZW1vdmVGcm9tUGFyZW50KCk7CisgICAgbV9vdmVybGF5R3Jh
cGhpY3NMYXllcnMudGFrZSgmb3ZlcmxheSktPnJlbW92ZUZyb21QYXJlbnQoKTsKIAotICAgIGJv
b2wgcmVtb3ZlZCA9IG1fcGFnZU92ZXJsYXlzLnJlbW92ZUZpcnN0KG92ZXJsYXkpOworICAgIGJv
b2wgcmVtb3ZlZCA9IG1fcGFnZU92ZXJsYXlzLnJlbW92ZUZpcnN0KCZvdmVybGF5KTsKICAgICBB
U1NFUlRfVU5VU0VEKHJlbW92ZWQsIHJlbW92ZWQpOwogCiAgICAgdXBkYXRlRm9yY2VTeW5jaHJv
bm91c1Njcm9sbExheWVyUG9zaXRpb25VcGRhdGVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlT3ZlcmxheUNvbnRyb2xsZXIuaAppbmRleCAzOTc4MDk4MjAwOGM2NTFmMjg4Yjc5NzZiMWI5
MzI5NWFjNTJlN2E0Li42Mzg5NDdjNjE4NDZhYjA2NzVjZTgwM2FiZjE3NmI2YjcxZGQ4YzBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgKQEAgLTM5LDcg
KzM5LDYgQEAgY2xhc3MgUGFnZTsKIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIAogY2xhc3Mg
UGFnZU92ZXJsYXlDb250cm9sbGVyIGZpbmFsIDogcHVibGljIEdyYXBoaWNzTGF5ZXJDbGllbnQg
ewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VPdmVybGF5Q29udHJvbGxlcik7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgUGFnZU92ZXJsYXlDb250cm9s
bGVyKE1haW5GcmFtZSYpOwpAQCAtNTAsOCArNDksOCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBW
ZWN0b3I8UmVmUHRyPFBhZ2VPdmVybGF5Pj4mIHBhZ2VPdmVybGF5cygpIGNvbnN0IHsgcmV0dXJu
IG1fcGFnZU92ZXJsYXlzOyB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGluc3RhbGxQYWdl
T3ZlcmxheShQYXNzUmVmUHRyPFBhZ2VPdmVybGF5PiwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlKTsK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5
KiwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGluc3Rh
bGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSYsIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCB1bmluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSYsIFBh
Z2VPdmVybGF5OjpGYWRlTW9kZSk7CiAKICAgICB2b2lkIHNldFBhZ2VPdmVybGF5TmVlZHNEaXNw
bGF5KFBhZ2VPdmVybGF5JiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZvaWQgc2V0UGFnZU92ZXJs
YXlPcGFjaXR5KFBhZ2VPdmVybGF5JiwgZmxvYXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJp
YWxpemVyLmNwcAppbmRleCA3ZmZmMTIzZmY2NDEzNzgyNWM4ZDE5ODAzZGJlY2YzOWM4NjM2OGFm
Li45M2QzNzc3YWExYTlmMDc5ZjcxMDRjOTc0NWQ3ZGExY2NiYmZkNTgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcApAQCAtODAsOCArODAsNyBAQCBzdGF0aWMgYm9vbCBp
c0NoYXJzZXRTcGVjaWZ5aW5nTm9kZShjb25zdCBOb2RlJiBub2RlKQogICAgICAgICAgICAgYXR0
cmlidXRlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIoYXR0cmlidXRlLm5hbWUoKS50b1N0cmluZygp
LCBhdHRyaWJ1dGUudmFsdWUoKS5zdHJpbmcoKSkpOwogICAgICAgICB9CiAgICAgfQotICAgIFRl
eHRFbmNvZGluZyB0ZXh0RW5jb2RpbmcgPSBIVE1MTWV0YUNoYXJzZXRQYXJzZXI6OmVuY29kaW5n
RnJvbU1ldGFBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpOwotICAgIHJldHVybiB0ZXh0RW5jb2Rpbmcu
aXNWYWxpZCgpOworICAgIHJldHVybiBIVE1MTWV0YUNoYXJzZXRQYXJzZXI6OmVuY29kaW5nRnJv
bU1ldGFBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpLmlzVmFsaWQoKTsKIH0KIAogc3RhdGljIGJvb2wg
c2hvdWxkSWdub3JlRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50KQpAQCAtOTUsMTAgKzk0
LDkgQEAgc3RhdGljIGNvbnN0IFF1YWxpZmllZE5hbWUmIGZyYW1lT3duZXJVUkxBdHRyaWJ1dGVO
YW1lKGNvbnN0IEhUTUxGcmFtZU93bmVyRWxlbWUKICAgICByZXR1cm4gaXM8SFRNTE9iamVjdEVs
ZW1lbnQ+KGZyYW1lT3duZXIpID8gSFRNTE5hbWVzOjpkYXRhQXR0ciA6IEhUTUxOYW1lczo6c3Jj
QXR0cjsKIH0KIAotY2xhc3MgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yIGZpbmFsIDogcHVi
bGljIFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yIHsKK2NsYXNzIFBhZ2VTZXJpYWxpemVyOjpT
ZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3IgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TWFya3Vw
QWNjdW11bGF0b3IgewogcHVibGljOgogICAgIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcihQ
YWdlU2VyaWFsaXplciYsIERvY3VtZW50JiwgVmVjdG9yPE5vZGUqPiopOwotICAgIHZpcnR1YWwg
flNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcigpOwogCiBwcml2YXRlOgogICAgIFBhZ2VTZXJp
YWxpemVyJiBtX3NlcmlhbGl6ZXI7CkBAIC0xMTAsNyArMTA4LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGFwcGVuZEVuZFRhZyhjb25zdCBFbGVtZW50Jikgb3ZlcnJpZGU7CiB9OwogCi1TZXJpYWxp
emVyTWFya3VwQWNjdW11bGF0b3I6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcihQYWdlU2Vy
aWFsaXplciYgc2VyaWFsaXplciwgRG9jdW1lbnQmIGRvY3VtZW50LCBWZWN0b3I8Tm9kZSo+KiBu
b2RlcykKK1BhZ2VTZXJpYWxpemVyOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OlNlcmlh
bGl6ZXJNYXJrdXBBY2N1bXVsYXRvcihQYWdlU2VyaWFsaXplciYgc2VyaWFsaXplciwgRG9jdW1l
bnQmIGRvY3VtZW50LCBWZWN0b3I8Tm9kZSo+KiBub2RlcykKICAgICA6IE1hcmt1cEFjY3VtdWxh
dG9yKG5vZGVzLCBSZXNvbHZlQWxsVVJMcykKICAgICAsIG1fc2VyaWFsaXplcihzZXJpYWxpemVy
KQogICAgICwgbV9kb2N1bWVudChkb2N1bWVudCkKQEAgLTEyMCwxOCArMTE4LDE0IEBAIFNlcmlh
bGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yKFBhZ2VT
ZXJpYWxpemVyJiBzZXJpYWxpCiAgICAgICAgIGFwcGVuZFN0cmluZygiPD94bWwgdmVyc2lvbj1c
IiIgKyBtX2RvY3VtZW50LnhtbFZlcnNpb24oKSArICJcIiBlbmNvZGluZz1cIiIgKyBtX2RvY3Vt
ZW50LmNoYXJzZXQoKSArICJcIj8+Iik7CiB9CiAKLVNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRv
cjo6flNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcigpCi17Ci19Ci0KLXZvaWQgU2VyaWFsaXpl
ck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3Qg
VGV4dCYgdGV4dCkKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVs
YXRvcjo6YXBwZW5kVGV4dChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IFRleHQmIHRleHQpCiB7
CiAgICAgRWxlbWVudCogcGFyZW50ID0gdGV4dC5wYXJlbnRFbGVtZW50KCk7CiAgICAgaWYgKHBh
cmVudCAmJiAhc2hvdWxkSWdub3JlRWxlbWVudCgqcGFyZW50KSkKICAgICAgICAgTWFya3VwQWNj
dW11bGF0b3I6OmFwcGVuZFRleHQob3V0LCB0ZXh0KTsKIH0KIAotdm9pZCBTZXJpYWxpemVyTWFy
a3VwQWNjdW11bGF0b3I6OmFwcGVuZEVsZW1lbnQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBF
bGVtZW50JiBlbGVtZW50LCBOYW1lc3BhY2VzKiBuYW1lc3BhY2VzKQordm9pZCBQYWdlU2VyaWFs
aXplcjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbGVtZW50KFN0cmluZ0J1
aWxkZXImIG91dCwgY29uc3QgRWxlbWVudCYgZWxlbWVudCwgTmFtZXNwYWNlcyogbmFtZXNwYWNl
cykKIHsKICAgICBpZiAoIXNob3VsZElnbm9yZUVsZW1lbnQoZWxlbWVudCkpCiAgICAgICAgIE1h
cmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbGVtZW50KG91dCwgZWxlbWVudCwgbmFtZXNwYWNlcyk7
CkBAIC0xNDUsNyArMTM5LDcgQEAgdm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFw
cGVuZEVsZW1lbnQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBFbGVtZW4KICAgICAvLyBGSVhN
RTogRm9yIG9iamVjdCAocGx1Z2lucykgdGFncyBhbmQgdmlkZW8gdGFnIHdlIGNvdWxkIHJlcGxh
Y2UgdGhlbSBieSBhbiBpbWFnZSBvZiB0aGVpciBjdXJyZW50IGNvbnRlbnRzLgogfQogCi12b2lk
IFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kQ3VzdG9tQXR0cmlidXRlcyhTdHJp
bmdCdWlsZGVyJiBvdXQsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIE5hbWVzcGFjZXMqIG5hbWVz
cGFjZXMpCit2b2lkIFBhZ2VTZXJpYWxpemVyOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6
OmFwcGVuZEN1c3RvbUF0dHJpYnV0ZXMoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBFbGVtZW50
JiBlbGVtZW50LCBOYW1lc3BhY2VzKiBuYW1lc3BhY2VzKQogewogICAgIGlmICghaXM8SFRNTEZy
YW1lT3duZXJFbGVtZW50PihlbGVtZW50KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTY0LDMyICsx
NTgsMjAgQEAgdm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEN1c3RvbUF0
dHJpYnV0ZXMoU3RyaW5nQnVpbGRlciYgb3V0LCBjb24KICAgICBhcHBlbmRBdHRyaWJ1dGUob3V0
LCBlbGVtZW50LCBBdHRyaWJ1dGUoZnJhbWVPd25lclVSTEF0dHJpYnV0ZU5hbWUoZnJhbWVPd25l
ciksIHVybC5zdHJpbmcoKSksIG5hbWVzcGFjZXMpOwogfQogCi12b2lkIFNlcmlhbGl6ZXJNYXJr
dXBBY2N1bXVsYXRvcjo6YXBwZW5kRW5kVGFnKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCit2b2lk
IFBhZ2VTZXJpYWxpemVyOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVuZFRh
Zyhjb25zdCBFbGVtZW50JiBlbGVtZW50KQogewogICAgIGlmICghc2hvdWxkSWdub3JlRWxlbWVu
dChlbGVtZW50KSkKICAgICAgICAgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVuZFRhZyhlbGVt
ZW50KTsKIH0KIAotUGFnZVNlcmlhbGl6ZXI6OlJlc291cmNlOjpSZXNvdXJjZSgpCi17Ci19Ci0K
LVBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZTo6UmVzb3VyY2UoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgbWltZVR5cGUsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhKQotICAgIDog
dXJsKHVybCkKLSAgICAsIG1pbWVUeXBlKG1pbWVUeXBlKQotICAgICwgZGF0YShkYXRhKQotewot
fQotCi1QYWdlU2VyaWFsaXplcjo6UGFnZVNlcmlhbGl6ZXIoVmVjdG9yPFBhZ2VTZXJpYWxpemVy
OjpSZXNvdXJjZT4qIHJlc291cmNlcykKK1BhZ2VTZXJpYWxpemVyOjpQYWdlU2VyaWFsaXplcihW
ZWN0b3I8UGFnZVNlcmlhbGl6ZXI6OlJlc291cmNlPiYgcmVzb3VyY2VzKQogICAgIDogbV9yZXNv
dXJjZXMocmVzb3VyY2VzKQotICAgICwgbV9ibGFua0ZyYW1lQ291bnRlcigwKQogewogfQogCi12
b2lkIFBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemUoUGFnZSogcGFnZSkKK3ZvaWQgUGFnZVNlcmlh
bGl6ZXI6OnNlcmlhbGl6ZShQYWdlJiBwYWdlKQogewotICAgIHNlcmlhbGl6ZUZyYW1lKCZwYWdl
LT5tYWluRnJhbWUoKSk7CisgICAgc2VyaWFsaXplRnJhbWUoJnBhZ2UubWFpbkZyYW1lKCkpOwog
fQogCiB2b2lkIFBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVGcmFtZShGcmFtZSogZnJhbWUpCkBA
IC0yMTgsNyArMjAwLDcgQEAgdm9pZCBQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplRnJhbWUoRnJh
bWUqIGZyYW1lKQogICAgIH0KICAgICBTdHJpbmcgdGV4dCA9IGFjY3VtdWxhdG9yLnNlcmlhbGl6
ZU5vZGVzKCpkb2N1bWVudC0+ZG9jdW1lbnRFbGVtZW50KCksIEluY2x1ZGVOb2RlKTsKICAgICBD
U3RyaW5nIGZyYW1lSFRNTCA9IHRleHRFbmNvZGluZy5lbmNvZGUodGV4dCwgRW50aXRpZXNGb3JV
bmVuY29kYWJsZXMpOwotICAgIG1fcmVzb3VyY2VzLT5hcHBlbmQoUmVzb3VyY2UodXJsLCBkb2N1
bWVudC0+c3VnZ2VzdGVkTUlNRVR5cGUoKSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUoZnJhbWVIVE1M
LmRhdGEoKSwgZnJhbWVIVE1MLmxlbmd0aCgpKSkpOworICAgIG1fcmVzb3VyY2VzLmFwcGVuZCh7
IHVybCwgZG9jdW1lbnQtPnN1Z2dlc3RlZE1JTUVUeXBlKCksIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRl
KGZyYW1lSFRNTC5kYXRhKCksIGZyYW1lSFRNTC5sZW5ndGgoKSkgfSk7CiAgICAgbV9yZXNvdXJj
ZVVSTHMuYWRkKHVybCk7CiAKICAgICBmb3IgKGF1dG8mIG5vZGUgOiBub2RlcykgewpAQCAtMjg0
LDcgKzI2Niw3IEBAIHZvaWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUNTU1N0eWxlU2hlZXQo
Q1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCwgY29uc3QgVVJMCiAgICAgICAgIEFTU0VSVCh0ZXh0
RW5jb2RpbmcuaXNWYWxpZCgpKTsKICAgICAgICAgU3RyaW5nIHRleHRTdHJpbmcgPSBjc3NUZXh0
LnRvU3RyaW5nKCk7CiAgICAgICAgIENTdHJpbmcgdGV4dCA9IHRleHRFbmNvZGluZy5lbmNvZGUo
dGV4dFN0cmluZywgRW50aXRpZXNGb3JVbmVuY29kYWJsZXMpOwotICAgICAgICBtX3Jlc291cmNl
cy0+YXBwZW5kKFJlc291cmNlKHVybCwgU3RyaW5nKCJ0ZXh0L2NzcyIpLCBTaGFyZWRCdWZmZXI6
OmNyZWF0ZSh0ZXh0LmRhdGEoKSwgdGV4dC5sZW5ndGgoKSkpKTsKKyAgICAgICAgbV9yZXNvdXJj
ZXMuYXBwZW5kKHsgdXJsLCBBU0NJSUxpdGVyYWwgeyAidGV4dC9jc3MiIH0sIFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlKHRleHQuZGF0YSgpLCB0ZXh0Lmxlbmd0aCgpKSB9KTsKICAgICAgICAgbV9yZXNv
dXJjZVVSTHMuYWRkKHVybCk7CiAgICAgfQogfQpAQCAtMzA2LDggKzI4OCw3IEBAIHZvaWQgUGFn
ZVNlcmlhbGl6ZXI6OmFkZEltYWdlVG9SZXNvdXJjZXMoQ2FjaGVkSW1hZ2UqIGltYWdlLCBSZW5k
ZXJFbGVtZW50KiBpbWFnCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTdHJpbmcgbWlt
ZVR5cGUgPSBpbWFnZS0+cmVzcG9uc2UoKS5taW1lVHlwZSgpOwotICAgIG1fcmVzb3VyY2VzLT5h
cHBlbmQoUmVzb3VyY2UodXJsLCBtaW1lVHlwZSwgZGF0YSkpOworICAgIG1fcmVzb3VyY2VzLmFw
cGVuZCh7IHVybCwgaW1hZ2UtPnJlc3BvbnNlKCkubWltZVR5cGUoKSwgV1RGTW92ZShkYXRhKSB9
KTsKICAgICBtX3Jlc291cmNlVVJMcy5hZGQodXJsKTsKIH0KIApAQCAtMzM0LDIwICszMTUsMTgg
QEAgdm9pZCBQYWdlU2VyaWFsaXplcjo6cmV0cmlldmVSZXNvdXJjZXNGb3JQcm9wZXJ0aWVzKGNv
bnN0IFN0eWxlUHJvcGVydGllcyogc3R5bGUKICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCi0gICAgICAgIFVSTCB1cmwgPSBkb2N1bWVudC0+Y29tcGxldGVVUkwo
aW1hZ2UtPnVybCgpKTsKLSAgICAgICAgYWRkSW1hZ2VUb1Jlc291cmNlcyhpbWFnZSwgbnVsbHB0
ciwgdXJsKTsKKyAgICAgICAgYWRkSW1hZ2VUb1Jlc291cmNlcyhpbWFnZSwgbnVsbHB0ciwgZG9j
dW1lbnQtPmNvbXBsZXRlVVJMKGltYWdlLT51cmwoKSkpOwogICAgIH0KIH0KIAogVVJMIFBhZ2VT
ZXJpYWxpemVyOjp1cmxGb3JCbGFua0ZyYW1lKEZyYW1lKiBmcmFtZSkKIHsKLSAgICBIYXNoTWFw
PEZyYW1lKiwgVVJMPjo6aXRlcmF0b3IgaXRlciA9IG1fYmxhbmtGcmFtZVVSTHMuZmluZChmcmFt
ZSk7CisgICAgYXV0byBpdGVyID0gbV9ibGFua0ZyYW1lVVJMcy5maW5kKGZyYW1lKTsKICAgICBp
ZiAoaXRlciAhPSBtX2JsYW5rRnJhbWVVUkxzLmVuZCgpKQogICAgICAgICByZXR1cm4gaXRlci0+
dmFsdWU7CiAgICAgU3RyaW5nIHVybCA9ICJ3eWNpd3lnOi8vZnJhbWUvIiArIFN0cmluZzo6bnVt
YmVyKG1fYmxhbmtGcmFtZUNvdW50ZXIrKyk7CiAgICAgVVJMIGZha2VVUkwoUGFyc2VkVVJMU3Ry
aW5nLCB1cmwpOwogICAgIG1fYmxhbmtGcmFtZVVSTHMuYWRkKGZyYW1lLCBmYWtlVVJMKTsKLQog
ICAgIHJldHVybiBmYWtlVVJMOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VTZXJpYWxpemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmgK
aW5kZXggYTFiNDdiOWRiYmMwMzRiMTcyOTM1NGMwODIxYWFiZGQ1NzYyZWVhYy4uZDU3NDNiYzRm
NjE0NjI5MjI4YzNmZmYwYTRiZWRjYjg3NTBjMTFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlU2VyaWFsaXplci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNl
cmlhbGl6ZXIuaApAQCAtMzAsNyArMzAsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUg
IlVSTC5oIgogI2luY2x1ZGUgIlVSTEhhc2guaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIK
ICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTYsMjAgKzU1LDIwIEBAIHB1YmxpYzoKICAg
ICAgICAgVVJMIHVybDsKICAgICAgICAgU3RyaW5nIG1pbWVUeXBlOwogICAgICAgICBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBkYXRhOwotICAgICAgICBSZXNvdXJjZSgpOwotICAgICAgICBSZXNvdXJj
ZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gZGF0YSk7CiAgICAgfTsKIAotICAgIGV4cGxpY2l0IFBhZ2VTZXJpYWxpemVyKFZlY3Rv
cjxSZXNvdXJjZT4qKTsKKyAgICBleHBsaWNpdCBQYWdlU2VyaWFsaXplcihWZWN0b3I8UmVzb3Vy
Y2U+Jik7CiAKICAgICAvLyBJbml0aWF0ZXMgdGhlIHNlcmlhbGl6YXRpb24gb2YgdGhlIGZyYW1l
J3MgcGFnZS4gQWxsIHNlcmlhbGl6ZWQgY29udGVudCBhbmQgcmV0cmlldmVkCiAgICAgLy8gcmVz
b3VyY2VzIGFyZSBhZGRlZCB0byB0aGUgVmVjdG9yIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3Iu
IFRoZSBmaXJzdCByZXNvdXJjZSBpbiB0aGF0CiAgICAgLy8gdmVjdG9yIGlzIHRoZSB0b3AgZnJh
bWUgc2VyaWFsaXplZCBjb250ZW50LgotICAgIHZvaWQgc2VyaWFsaXplKFBhZ2UqKTsKKyAgICB2
b2lkIHNlcmlhbGl6ZShQYWdlJik7CisKK3ByaXZhdGU6CisgICAgY2xhc3MgU2VyaWFsaXplck1h
cmt1cEFjY3VtdWxhdG9yOwogCiAgICAgVVJMIHVybEZvckJsYW5rRnJhbWUoRnJhbWUqKTsKIAot
cHJpdmF0ZToKICAgICB2b2lkIHNlcmlhbGl6ZUZyYW1lKEZyYW1lKik7CiAKICAgICAvLyBTZXJp
YWxpemVzIHRoZSBzdHlsZXNoZWV0IGJhY2sgdG8gdGV4dCBhbmQgYWRkcyBpdCB0byB0aGUgcmVz
b3VyY2VzIGlmIFVSTCBpcyBub3QtZW1wdHkuCkBAIC04MCwxMCArNzksMTAgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHJldHJpZXZlUmVzb3VyY2VzRm9yUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3Bl
cnRpZXMqLCBEb2N1bWVudCopOwogICAgIHZvaWQgcmV0cmlldmVSZXNvdXJjZXNGb3JSdWxlKFN0
eWxlUnVsZSYsIERvY3VtZW50Kik7CiAKLSAgICBWZWN0b3I8UmVzb3VyY2U+KiBtX3Jlc291cmNl
czsKKyAgICBWZWN0b3I8UmVzb3VyY2U+JiBtX3Jlc291cmNlczsKICAgICBMaXN0SGFzaFNldDxV
Ukw+IG1fcmVzb3VyY2VVUkxzOwogICAgIEhhc2hNYXA8RnJhbWUqLCBVUkw+IG1fYmxhbmtGcmFt
ZVVSTHM7Ci0gICAgdW5zaWduZWQgbV9ibGFua0ZyYW1lQ291bnRlcjsKKyAgICB1bnNpZ25lZCBt
X2JsYW5rRnJhbWVDb3VudGVyIHsgMCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnkuaAppbmRleCBiM2E4NGEzYTlkY2E4MmJi
ZmE4YjM0MDc0YmVjYzczYjQ4N2VkYWFlLi5mOGQ2Y2E3ZmVjODBjMGZmZTZhOTg2ZWJmZTQ4MWVi
MzQ1MGJjYmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlRW50
cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnkuaApAQCAtMzQs
NyArMzQsNiBAQAogI2lmIEVOQUJMRShXRUJfVElNSU5HKQogCiAjaW5jbHVkZSAiUGVyZm9ybWFu
Y2UuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgpAQCAtNTQsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlz
TWFyaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzTWVhc3Vy
ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICBzdGF0aWMgYm9vbCBzdGFydFRpbWVD
b21wYXJlTGVzc1RoYW4oUGFzc1JlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBhLCBQYXNzUmVmUHRy
PFBlcmZvcm1hbmNlRW50cnk+IGIpCisgICAgc3RhdGljIGJvb2wgc3RhcnRUaW1lQ29tcGFyZUxl
c3NUaGFuKGNvbnN0IFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiYgYSwgY29uc3QgUmVmUHRyPFBl
cmZvcm1hbmNlRW50cnk+JiBiKQogICAgIHsKICAgICAgICAgcmV0dXJuIGEtPnN0YXJ0VGltZSgp
IDwgYi0+c3RhcnRUaW1lKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZVVzZXJUaW1pbmcuY3BwCmluZGV4IGQ5NTMxODA1NDcwZjhlZWNhNDI4NzYzYjdjYTFlYWM1
M2UxNzNiNmYuLjlhNmM3YWNlMzk0MGVlMzhkNjU3ZWJiYTM1YTE4MzYzODgwYTQ5YTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAKQEAgLTg3LDE0
ICs4NywxNCBAQCBVc2VyVGltaW5nOjpVc2VyVGltaW5nKFBlcmZvcm1hbmNlJiBwZXJmb3JtYW5j
ZSkKIHsKIH0KIAotc3RhdGljIHZvaWQgaW5zZXJ0UGVyZm9ybWFuY2VFbnRyeShQZXJmb3JtYW5j
ZUVudHJ5TWFwJiBwZXJmb3JtYW5jZUVudHJ5TWFwLCBQYXNzUmVmUHRyPFBlcmZvcm1hbmNlRW50
cnk+IHBlcmZvcm1hbmNlRW50cnkpCitzdGF0aWMgdm9pZCBpbnNlcnRQZXJmb3JtYW5jZUVudHJ5
KFBlcmZvcm1hbmNlRW50cnlNYXAmIHBlcmZvcm1hbmNlRW50cnlNYXAsIFJlZjxQZXJmb3JtYW5j
ZUVudHJ5PiYmIHBlcmZvcm1hbmNlRW50cnkpCiB7Ci0gICAgUmVmUHRyPFBlcmZvcm1hbmNlRW50
cnk+IGVudHJ5ID0gcGVyZm9ybWFuY2VFbnRyeTsKLSAgICBQZXJmb3JtYW5jZUVudHJ5TWFwOjpp
dGVyYXRvciBpdCA9IHBlcmZvcm1hbmNlRW50cnlNYXAuZmluZChlbnRyeS0+bmFtZSgpKTsKKyAg
ICBSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4gZW50cnkgPSBXVEZNb3ZlKHBlcmZvcm1hbmNlRW50
cnkpOworICAgIGF1dG8gaXQgPSBwZXJmb3JtYW5jZUVudHJ5TWFwLmZpbmQoZW50cnktPm5hbWUo
KSk7CiAgICAgaWYgKGl0ICE9IHBlcmZvcm1hbmNlRW50cnlNYXAuZW5kKCkpCi0gICAgICAgIGl0
LT52YWx1ZS5hcHBlbmQoZW50cnkpOworICAgICAgICBpdC0+dmFsdWUuYXBwZW5kKFdURk1vdmUo
ZW50cnkpKTsKICAgICBlbHNlCi0gICAgICAgIHBlcmZvcm1hbmNlRW50cnlNYXAuc2V0KGVudHJ5
LT5uYW1lKCksIFZlY3RvcjxSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4+eyBlbnRyeSB9KTsKKyAg
ICAgICAgcGVyZm9ybWFuY2VFbnRyeU1hcC5zZXQoZW50cnktPm5hbWUoKSwgVmVjdG9yPFJlZlB0
cjxQZXJmb3JtYW5jZUVudHJ5Pj4geyBXVEZNb3ZlKGVudHJ5KSB9KTsKIH0KIAogc3RhdGljIHZv
aWQgY2xlYXJQZWZvcm1hbmNlRW50cmllcyhQZXJmb3JtYW5jZUVudHJ5TWFwJiBwZXJmb3JtYW5j
ZUVudHJ5TWFwLCBjb25zdCBTdHJpbmcmIG5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVz
b3VyY2VVc2FnZU92ZXJsYXkuY3BwCmluZGV4IGFlODExMmNhMjYzOTkxNmY0MTQ1ZTkzMjNkZTBk
MmYyODE5NWFjYjAuLmU3NDNkODgwZTIwY2IxZmRmODU3MDE2MGQwYjFhZDU4MzkyOWI4ZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZU92ZXJsYXkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZU92ZXJsYXkuY3BwCkBAIC01Myw3
ICs1Myw3IEBAIFJlc291cmNlVXNhZ2VPdmVybGF5Ojp+UmVzb3VyY2VVc2FnZU92ZXJsYXkoKQog
CiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSBoYWNrIHNvIHdlIGRvbid0IHRyeSB0byB1bmluc3Rh
bGwgdGhlIFBhZ2VPdmVybGF5IGR1cmluZyBQYWdlIGRlc3RydWN0aW9uLgogICAgIGlmIChtX3Bh
Z2UubWFpbkZyYW1lKCkucGFnZSgpKQotICAgICAgICBtX3BhZ2UubWFpbkZyYW1lKCkucGFnZU92
ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkobV9vdmVybGF5LmdldCgpLCBQ
YWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgICAgIG1fcGFnZS5tYWluRnJh
bWUoKS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqbV9vdmVy
bGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiB9CiAKIHZvaWQgUmVzb3Vy
Y2VVc2FnZU92ZXJsYXk6OmluaXRpYWxpemUoKQpAQCAtNzIsNyArNzIsNyBAQCB2b2lkIFJlc291
cmNlVXNhZ2VPdmVybGF5Ojppbml0aWFsaXplKCkKIAogICAgIG1fb3ZlcmxheS0+c2V0RnJhbWUo
aW5pdGlhbFJlY3QpOwogICAgIG1fb3ZlcmxheS0+c2V0U2hvdWxkSWdub3JlTW91c2VFdmVudHNP
dXRzaWRlQm91bmRzKGZhbHNlKTsKLSAgICBtX3BhZ2UubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlD
b250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSwgUGFnZU92ZXJs
YXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgIG1fcGFnZS5tYWluRnJhbWUoKS5wYWdlT3Zl
cmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fb3ZlcmxheSwgUGFnZU92ZXJs
YXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKaW5kZXgg
NWFkZTAwMjJlYmMwZDg0ZDI3ODY4ZmUyNGI1NGQ2NmE2MWU3N2U1OC4uMmRkMGMzMDllMDU4MmYz
NWNmOTM2ZjUwYWNkOWMxYWMzNDE2MzU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0FuaW1hdGlvbkJhc2UuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkFuaW1h
dGlvbi5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJSZW5kZXJT
dHlsZUNvbnN0YW50cy5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8
d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAK
aW5kZXggNTg4OTZkYjJmMWU5ZmQ0NTM3OGIzNjdjMDBlYzcxN2JiMTNlNDk5Yy4uNGM0MGM5MjNh
MjNlMjMzODg0MDg0MmU4ODNjZTA1ZGIxZTdiZGQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTEwNCw3ICsx
MDQsNyBAQCBib29sIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjpjbGVhcihSZW5kZXJFbGVt
ZW50JiByZW5kZXJlcikKICAgICBFbGVtZW50KiBlbGVtZW50ID0gcmVuZGVyZXIuZWxlbWVudCgp
OwogCiAgICAgbV9ldmVudHNUb0Rpc3BhdGNoLnJlbW92ZUFsbE1hdGNoaW5nKFtlbGVtZW50XSAo
Y29uc3QgRXZlbnRUb0Rpc3BhdGNoJiBpbmZvKSB7Ci0gICAgICAgIHJldHVybiBpbmZvLmVsZW1l
bnQgPT0gZWxlbWVudDsKKyAgICAgICAgcmV0dXJuIGluZm8uZWxlbWVudC5wdHIoKSA9PSBlbGVt
ZW50OwogICAgIH0pOwogCiAgICAgbV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2gucmVtb3ZlQWxs
TWF0Y2hpbmcoW2VsZW1lbnRdKGF1dG8mIGN1cnJlbnRFbGVtZW50KSB7CkBAIC0yMDMsNyArMjAz
LDcgQEAgdm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6ZmlyZUV2ZW50c0FuZFVwZGF0
ZVN0eWxlKCkKICAgICAvLyBmaXJlIGFsbCB0aGUgZXZlbnRzCiAgICAgVmVjdG9yPEV2ZW50VG9E
aXNwYXRjaD4gZXZlbnRzVG9EaXNwYXRjaCA9IFdURk1vdmUobV9ldmVudHNUb0Rpc3BhdGNoKTsK
ICAgICBmb3IgKGF1dG8mIGV2ZW50IDogZXZlbnRzVG9EaXNwYXRjaCkgewotICAgICAgICBFbGVt
ZW50JiBlbGVtZW50ID0gKmV2ZW50LmVsZW1lbnQ7CisgICAgICAgIEVsZW1lbnQmIGVsZW1lbnQg
PSBldmVudC5lbGVtZW50OwogICAgICAgICBpZiAoZXZlbnQuZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS50cmFuc2l0aW9uZW5kRXZlbnQpCiAgICAgICAgICAgICBlbGVtZW50LmRpc3BhdGNoRXZl
bnQoVHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnQuZXZlbnRUeXBlLCBldmVudC5uYW1lLCBl
dmVudC5lbGFwc2VkVGltZSwgUHNldWRvRWxlbWVudDo6cHNldWRvRWxlbWVudE5hbWVGb3JFdmVu
dHMoZWxlbWVudC5wc2V1ZG9JZCgpKSkpOwogICAgICAgICBlbHNlCkBAIC0yMjUsMjEgKzIyNSwx
NSBAQCB2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjpzdGFydFVwZGF0ZVN0eWxlSWZO
ZWVkZWREaXNwYXRjaGVyKCkKICAgICAgICAgbV91cGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hl
ci5zdGFydE9uZVNob3QoMCk7CiB9CiAKLXZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6
OmFkZEV2ZW50VG9EaXNwYXRjaChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGRvdWJsZSBlbGFwc2Vk
VGltZSkKK3ZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFkZEV2ZW50VG9EaXNwYXRj
aChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpCiB7Ci0gICAgbV9ldmVudHNUb0Rpc3Bh
dGNoLmdyb3cobV9ldmVudHNUb0Rpc3BhdGNoLnNpemUoKSsxKTsKLSAgICBFdmVudFRvRGlzcGF0
Y2gmIGV2ZW50ID0gbV9ldmVudHNUb0Rpc3BhdGNoW21fZXZlbnRzVG9EaXNwYXRjaC5zaXplKCkt
MV07Ci0gICAgZXZlbnQuZWxlbWVudCA9IGVsZW1lbnQ7Ci0gICAgZXZlbnQuZXZlbnRUeXBlID0g
ZXZlbnRUeXBlOwotICAgIGV2ZW50Lm5hbWUgPSBuYW1lOwotICAgIGV2ZW50LmVsYXBzZWRUaW1l
ID0gZWxhcHNlZFRpbWU7Ci0gICAgCisgICAgbV9ldmVudHNUb0Rpc3BhdGNoLmFwcGVuZCh7IGVs
ZW1lbnQsIGV2ZW50VHlwZSwgbmFtZSwgZWxhcHNlZFRpbWUgfSk7CiAgICAgc3RhcnRVcGRhdGVT
dHlsZUlmTmVlZGVkRGlzcGF0Y2hlcigpOwogfQogCi12b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQ
cml2YXRlOjphZGRFbGVtZW50Q2hhbmdlVG9EaXNwYXRjaChSZWY8RWxlbWVudD4mJiBlbGVtZW50
KQordm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6YWRkRWxlbWVudENoYW5nZVRvRGlz
cGF0Y2goRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBtX2VsZW1lbnRDaGFuZ2VzVG9EaXNwYXRj
aC5hcHBlbmQoV1RGTW92ZShlbGVtZW50KSk7CisgICAgbV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0
Y2guYXBwZW5kKGVsZW1lbnQpOwogICAgIEFTU0VSVChtX2VsZW1lbnRDaGFuZ2VzVG9EaXNwYXRj
aC5sYXN0KCktPmRvY3VtZW50KCkucGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5Q
YWdlQ2FjaGUpOwogICAgIHN0YXJ0VXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIoKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRy
b2xsZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25D
b250cm9sbGVyUHJpdmF0ZS5oCmluZGV4IGZiOWNjODJiODE1MTdkMGJhMzI3M2YzODBmMjBiY2Q4
YTk4NjFmNTguLjQ5YWQzZjljOTU0MjU1YzMxZDBmYmZmYTRjNjI2OGIwNjc5MjE3ZTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQ
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29u
dHJvbGxlclByaXZhdGUuaApAQCAtMjksMzMgKzI5LDIxIEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkFuaW1hdGlvbkJhc2UuaCIKLSNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAj
aW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0
b21pY1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIEFuaW1hdGlvbkJhc2U7CiBjbGFzcyBDb21wb3NpdGVBbmlt
YXRpb247CiBjbGFzcyBEb2N1bWVudDsKLWNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKLWNs
YXNzIFJlbmRlckVsZW1lbnQ7Ci1jbGFzcyBSZW5kZXJTdHlsZTsKIAotZW51bSBTZXRDaGFuZ2Vk
IHsKLSAgICBEb05vdENhbGxTZXRDaGFuZ2VkID0gMCwKLSAgICBDYWxsU2V0Q2hhbmdlZCA9IDEK
LX07CitlbnVtIFNldENoYW5nZWQgeyBEb05vdENhbGxTZXRDaGFuZ2VkLCBDYWxsU2V0Q2hhbmdl
ZCB9OwogCiBjbGFzcyBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZSB7Ci0gICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBs
aWNpdCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZShGcmFtZSYpOwogICAgIH5BbmltYXRpb25D
b250cm9sbGVyUHJpdmF0ZSgpOwpAQCAtNjksOCArNTcsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyRmlyZWQoKTsKICAgICB2b2lkIHN0YXJ0VXBk
YXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIoKTsKLSAgICB2b2lkIGFkZEV2ZW50VG9EaXNwYXRj
aChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSk7Ci0gICAgdm9pZCBh
ZGRFbGVtZW50Q2hhbmdlVG9EaXNwYXRjaChSZWY8RWxlbWVudD4mJik7CisgICAgdm9pZCBhZGRF
dmVudFRvRGlzcGF0Y2goRWxlbWVudCYsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBj
b25zdCBTdHJpbmcmIG5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSk7CisgICAgdm9pZCBhZGRFbGVt
ZW50Q2hhbmdlVG9EaXNwYXRjaChFbGVtZW50Jik7CiAKICAgICBib29sIGhhc0FuaW1hdGlvbnMo
KSBjb25zdCB7IHJldHVybiAhbV9jb21wb3NpdGVBbmltYXRpb25zLmlzRW1wdHkoKTsgfQogCkBA
IC0xMzQsMjEgKzEyMiwxOSBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1fYW5pbWF0aW9uVGltZXI7
CiAgICAgVGltZXIgbV91cGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hlcjsKICAgICBGcmFtZSYg
bV9mcmFtZTsKLSAgICAKLSAgICBjbGFzcyBFdmVudFRvRGlzcGF0Y2ggewotICAgIHB1YmxpYzoK
LSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQ7CisKKyAgICBzdHJ1Y3QgRXZlbnRUb0Rp
c3BhdGNoIHsKKyAgICAgICAgUmVmPEVsZW1lbnQ+IGVsZW1lbnQ7CiAgICAgICAgIEF0b21pY1N0
cmluZyBldmVudFR5cGU7CiAgICAgICAgIFN0cmluZyBuYW1lOwogICAgICAgICBkb3VibGUgZWxh
cHNlZFRpbWU7CiAgICAgfTsKLSAgICAKICAgICBWZWN0b3I8RXZlbnRUb0Rpc3BhdGNoPiBtX2V2
ZW50c1RvRGlzcGF0Y2g7CiAgICAgVmVjdG9yPFJlZjxFbGVtZW50Pj4gbV9lbGVtZW50Q2hhbmdl
c1RvRGlzcGF0Y2g7CiAgICAgCiAgICAgZG91YmxlIG1fYmVnaW5BbmltYXRpb25VcGRhdGVUaW1l
OwogCi0gICAgdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxBbmltYXRpb25CYXNlPj4gQW5pbWF0aW9u
c1NldDsKKyAgICB1c2luZyBBbmltYXRpb25zU2V0ID0gSGFzaFNldDxSZWZQdHI8QW5pbWF0aW9u
QmFzZT4+OwogICAgIEFuaW1hdGlvbnNTZXQgbV9hbmltYXRpb25zV2FpdGluZ0ZvclN0eWxlOwog
ICAgIEFuaW1hdGlvbnNTZXQgbV9hbmltYXRpb25zV2FpdGluZ0ZvclN0YXJ0VGltZVJlc3BvbnNl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0
eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0
eUFuaW1hdGlvbi5jcHAKaW5kZXggOWY2YjkxN2M2ZWMxYzZmZWJiYTY5NDBhMTY3MDViZGJkNWFj
NzRjZi4uOGM1NDAzYTRjMTk2MzdhYTYyMWRlNmE0MDcxNjA3MWFlNzgzNTAyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9u
LmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRpYyBpbmxpbmUgVHJhbnNmb3JtT3BlcmF0aW9u
cyBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbWF0aW9uLCBjb25zCiAgICAgcmV0
dXJuIHRvLmJsZW5kQnlVc2luZ01hdHJpeEludGVycG9sYXRpb24oZnJvbSwgcHJvZ3Jlc3MsIGlz
PFJlbmRlckJveD4oKmFuaW1hdGlvbi0+cmVuZGVyZXIoKSkgPyBkb3duY2FzdDxSZW5kZXJCb3g+
KCphbmltYXRpb24tPnJlbmRlcmVyKCkpLmJvcmRlckJveFJlY3QoKS5zaXplKCkgOiBMYXlvdXRT
aXplKCkpOwogfQogCi1zdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8Q2xpcFBhdGhPcGVyYXRpb24+
IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgQ2xpcFBhdGhPcGVyYXRpb24qIGZyb20s
IENsaXBQYXRoT3BlcmF0aW9uKiB0bywgZG91YmxlIHByb2dyZXNzKQorc3RhdGljIGlubGluZSBS
ZWZQdHI8Q2xpcFBhdGhPcGVyYXRpb24+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwg
Q2xpcFBhdGhPcGVyYXRpb24qIGZyb20sIENsaXBQYXRoT3BlcmF0aW9uKiB0bywgZG91YmxlIHBy
b2dyZXNzKQogewogICAgIGlmICghZnJvbSB8fCAhdG8pCiAgICAgICAgIHJldHVybiB0bzsKQEAg
LTE0Myw3ICsxNDMsNyBAQCBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8Q2xpcFBhdGhPcGVyYXRp
b24+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgQ2xpcAogICAgIHJldHVybiBTaGFw
ZUNsaXBQYXRoT3BlcmF0aW9uOjpjcmVhdGUodG9TaGFwZS5ibGVuZChmcm9tU2hhcGUsIHByb2dy
ZXNzKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxTaGFwZVZhbHVlPiBibGVuZEZ1
bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIFNoYXBlVmFsdWUqIGZyb20sIFNoYXBlVmFsdWUqIHRv
LCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5lIFJlZlB0cjxTaGFwZVZhbHVlPiBibGVu
ZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIFNoYXBlVmFsdWUqIGZyb20sIFNoYXBlVmFsdWUq
IHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgaWYgKCFmcm9tIHx8ICF0bykKICAgICAgICAg
cmV0dXJuIHRvOwpAQCAtMTYzLDcgKzE2Myw3IEBAIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxT
aGFwZVZhbHVlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIFNoYXBlVmFsdWUqCiAg
ICAgcmV0dXJuIFNoYXBlVmFsdWU6OmNyZWF0ZSh0b1NoYXBlLmJsZW5kKGZyb21TaGFwZSwgcHJv
Z3Jlc3MpLCB0by0+Y3NzQm94KCkpOwogfQogCi1zdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8Rmls
dGVyT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbWF0aW9uLCBG
aWx0ZXJPcGVyYXRpb24qIGZyb21PcCwgRmlsdGVyT3BlcmF0aW9uKiB0b09wLCBkb3VibGUgcHJv
Z3Jlc3MsIGJvb2wgYmxlbmRUb1Bhc3N0aHJvdWdoID0gZmFsc2UpCitzdGF0aWMgaW5saW5lIFJl
ZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmlt
YXRpb24sIEZpbHRlck9wZXJhdGlvbiogZnJvbU9wLCBGaWx0ZXJPcGVyYXRpb24qIHRvT3AsIGRv
dWJsZSBwcm9ncmVzcywgYm9vbCBibGVuZFRvUGFzc3Rocm91Z2ggPSBmYWxzZSkKIHsKICAgICBB
U1NFUlQodG9PcCk7CiAgICAgaWYgKHRvT3AtPmJsZW5kaW5nTmVlZHNSZW5kZXJlclNpemUoKSkg
ewpAQCAtMjE4LDcgKzIxOCw3IEBAIHN0YXRpYyBpbmxpbmUgRmlsdGVyT3BlcmF0aW9ucyBibGVu
ZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgY29uc3QgRmlsdGVyCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KIAotc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGJsZW5k
RmlsdGVyKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIENhY2hlZEltYWdlKiBpbWFnZSwgY29u
c3QgRmlsdGVyT3BlcmF0aW9ucyYgZnJvbSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgdG8sIGRv
dWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPFN0eWxlSW1hZ2U+IGJsZW5kRmls
dGVyKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIENhY2hlZEltYWdlKiBpbWFnZSwgY29uc3Qg
RmlsdGVyT3BlcmF0aW9ucyYgZnJvbSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgdG8sIGRvdWJs
ZSBwcm9ncmVzcykKIHsKICAgICBBU1NFUlQoaW1hZ2UpOwogICAgIEZpbHRlck9wZXJhdGlvbnMg
ZmlsdGVyUmVzdWx0ID0gYmxlbmRGaWx0ZXJPcGVyYXRpb25zKGFuaW0sIGZyb20sIHRvLCBwcm9n
cmVzcyk7CkBAIC0yNzgsNyArMjc4LDcgQEAgc3RhdGljIGlubGluZSBWZWN0b3I8U1ZHTGVuZ3Ro
VmFsdWU+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgY29uc3QgVmVjdG8KICAgICBy
ZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4g
Y3Jvc3NmYWRlQmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSosIFN0eWxlQ2FjaGVkSW1hZ2UqIGZy
b21TdHlsZUltYWdlLCBTdHlsZUNhY2hlZEltYWdlKiB0b1N0eWxlSW1hZ2UsIGRvdWJsZSBwcm9n
cmVzcykKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPFN0eWxlSW1hZ2U+IGNyb3NzZmFkZUJsZW5kKGNv
bnN0IEFuaW1hdGlvbkJhc2UqLCBTdHlsZUNhY2hlZEltYWdlKiBmcm9tU3R5bGVJbWFnZSwgU3R5
bGVDYWNoZWRJbWFnZSogdG9TdHlsZUltYWdlLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgLy8g
SWYgcHJvZ3Jlc3MgaXMgYXQgb25lIG9mIHRoZSBleHRyZW1lcywgd2Ugd2FudCBnZXRDb21wdXRl
ZFN0eWxlIHRvIHNob3cgdGhlIGltYWdlLAogICAgIC8vIG5vdCBhIGNvbXBsZXRlZCBjcm9zcy1m
YWRlLCBzbyB3ZSBoYW5kIGJhY2sgb25lIG9mIHRoZSBleGlzdGluZyBpbWFnZXMuCkBAIC0yOTUs
NyArMjk1LDcgQEAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGNyb3NzZmFk
ZUJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBTdHlsZUMKICAgICByZXR1cm4gU3R5bGVHZW5l
cmF0ZWRJbWFnZTo6Y3JlYXRlKFdURk1vdmUoY3Jvc3NmYWRlVmFsdWUpKTsKIH0KIAotc3RhdGlj
IGlubGluZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25C
YXNlKiBhbmltLCBTdHlsZUltYWdlKiBmcm9tLCBTdHlsZUltYWdlKiB0bywgZG91YmxlIHByb2dy
ZXNzKQorc3RhdGljIGlubGluZSBSZWZQdHI8U3R5bGVJbWFnZT4gYmxlbmRGdW5jKGNvbnN0IEFu
aW1hdGlvbkJhc2UqIGFuaW0sIFN0eWxlSW1hZ2UqIGZyb20sIFN0eWxlSW1hZ2UqIHRvLCBkb3Vi
bGUgcHJvZ3Jlc3MpCiB7CiAgICAgaWYgKCFmcm9tIHx8ICF0bykKICAgICAgICAgcmV0dXJuIHRv
OwpAQCAtMzY0LDExICszNjQsMTIgQEAgc3RhdGljIGlubGluZSBOaW5lUGllY2VJbWFnZSBibGVu
ZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgY29uc3QgTmluZVBpZWMKICAgICBpZiAo
ZnJvbS5pbWFnZSgpLT5pbWFnZVNpemUoYW5pbS0+cmVuZGVyZXIoKSwgMS4wKSAhPSB0by5pbWFn
ZSgpLT5pbWFnZVNpemUoYW5pbS0+cmVuZGVyZXIoKSwgMS4wKSkKICAgICAgICAgcmV0dXJuIHRv
OwogCi0gICAgYXV0byBuZXdDb250ZW50SW1hZ2UgPSBibGVuZEZ1bmMoYW5pbSwgZnJvbS5pbWFn
ZSgpLCB0by5pbWFnZSgpLCBwcm9ncmVzcyk7Ci0gICAgcmV0dXJuIE5pbmVQaWVjZUltYWdlKG5l
d0NvbnRlbnRJbWFnZSwgZnJvbS5pbWFnZVNsaWNlcygpLCBmcm9tLmZpbGwoKSwgZnJvbS5ib3Jk
ZXJTbGljZXMoKSwgZnJvbS5vdXRzZXQoKSwgZnJvbS5ob3Jpem9udGFsUnVsZSgpLCBmcm9tLnZl
cnRpY2FsUnVsZSgpKTsKKyAgICByZXR1cm4gTmluZVBpZWNlSW1hZ2UoYmxlbmRGdW5jKGFuaW0s
IGZyb20uaW1hZ2UoKSwgdG8uaW1hZ2UoKSwgcHJvZ3Jlc3MpLAorICAgICAgICBmcm9tLmltYWdl
U2xpY2VzKCksIGZyb20uZmlsbCgpLCBmcm9tLmJvcmRlclNsaWNlcygpLCBmcm9tLm91dHNldCgp
LCBmcm9tLmhvcml6b250YWxSdWxlKCksIGZyb20udmVydGljYWxSdWxlKCkpOwogfQogCiAjaWYg
RU5BQkxFKFZBUklBVElPTl9GT05UUykKKwogc3RhdGljIGlubGluZSBGb250VmFyaWF0aW9uU2V0
dGluZ3MgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIGNvbnN0IEZvbnRWYXJp
YXRpb25TZXR0aW5ncyYgZnJvbSwgY29uc3QgRm9udFZhcmlhdGlvblNldHRpbmdzJiB0bywgZG91
YmxlIHByb2dyZXNzKQogewogICAgIGlmIChmcm9tLnNpemUoKSAhPSB0by5zaXplKCkpCkBAIC0z
ODUsNiArMzg2LDcgQEAgc3RhdGljIGlubGluZSBGb250VmFyaWF0aW9uU2V0dGluZ3MgYmxlbmRG
dW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIGNvbnN0IEYKICAgICB9CiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KKwogI2VuZGlmCiAKIGNsYXNzIEFuaW1hdGlvblByb3BlcnR5V3JhcHBlckJh
c2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRl
QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFu
aW1hdGlvbi5jcHAKaW5kZXggNWI3NGU3Njc4MjhjNDVhNTYyOWUxOWZlMjYwNTM4M2MyYTVmNmU4
YS4uNjY5OTI3MDdiMWVlYWIxODQzZmUwMzlhYWM2MmRlMzBjNDQzMDJhNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCkBA
IC0xMjEsOCArMTIxLDggQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZVRyYW5zaXRp
b25zKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBjb25zdCBSZW5kZXIKICAgICAgICAgICAgICAg
ICAvLyBJZiB0aGVyZSBpcyBhIHJ1bm5pbmcgYW5pbWF0aW9uIGZvciB0aGlzIHByb3BlcnR5LCB0
aGUgdHJhbnNpdGlvbiBpcyBvdmVycmlkZGVuCiAgICAgICAgICAgICAgICAgLy8gYW5kIHdlIGhh
dmUgdG8gdXNlIHRoZSB1bmFuaW1hdGVkU3R5bGUgZnJvbSB0aGUgYW5pbWF0aW9uLiBXZSBkbyB0
aGUgdGVzdAogICAgICAgICAgICAgICAgIC8vIGFnYWluc3QgdGhlIHVuYW5pbWF0ZWQgc3R5bGUg
aGVyZSwgYnV0IHdlICJvdmVycmlkZSIgdGhlIHRyYW5zaXRpb24gbGF0ZXIuCi0gICAgICAgICAg
ICAgICAgUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiBrZXlmcmFtZUFuaW0gPSBnZXRBbmltYXRp
b25Gb3JQcm9wZXJ0eShwcm9wKTsKLSAgICAgICAgICAgICAgICBhdXRvKiBmcm9tU3R5bGUgPSBr
ZXlmcmFtZUFuaW0gPyBrZXlmcmFtZUFuaW0tPnVuYW5pbWF0ZWRTdHlsZSgpIDogY3VycmVudFN0
eWxlOworICAgICAgICAgICAgICAgIGF1dG8qIGtleWZyYW1lQW5pbWF0aW9uID0gYW5pbWF0aW9u
Rm9yUHJvcGVydHkocHJvcCk7CisgICAgICAgICAgICAgICAgYXV0byogZnJvbVN0eWxlID0ga2V5
ZnJhbWVBbmltYXRpb24gPyBrZXlmcmFtZUFuaW1hdGlvbi0+dW5hbmltYXRlZFN0eWxlKCkgOiBj
dXJyZW50U3R5bGU7CiAKICAgICAgICAgICAgICAgICAvLyBTZWUgaWYgdGhlcmUgaXMgYSBjdXJy
ZW50IHRyYW5zaXRpb24gZm9yIHRoaXMgcHJvcAogICAgICAgICAgICAgICAgIEltcGxpY2l0QW5p
bWF0aW9uKiBpbXBsQW5pbSA9IG1fdHJhbnNpdGlvbnMuZ2V0KHByb3ApOwpAQCAtMTcyLDcgKzE3
Miw3IEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVUcmFuc2l0aW9ucyhSZW5kZXJF
bGVtZW50KiByZW5kZXJlciwgY29uc3QgUmVuZGVyCiAgICAgICAgICAgICAgICAgICAgIExPRyhB
bmltYXRpb25zLCAiQ3JlYXRlZCBJbXBsaWNpdEFuaW1hdGlvbiAlcCBvbiByZW5kZXJlciAlcCBm
b3IgcHJvcGVydHkgJXMgZHVyYXRpb24gJS4yZiBkZWxheSAlLjJmIiwgaW1wbGljaXRBbmltYXRp
b24ucHRyKCksIHJlbmRlcmVyLCBnZXRQcm9wZXJ0eU5hbWUocHJvcCksIGFuaW1hdGlvbi5kdXJh
dGlvbigpLCBhbmltYXRpb24uZGVsYXkoKSk7CiAgICAgICAgICAgICAgICAgICAgIG1fdHJhbnNp
dGlvbnMuc2V0KHByb3AsIFdURk1vdmUoaW1wbGljaXRBbmltYXRpb24pKTsKICAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICAgICAgCisKICAgICAgICAgICAgICAgICAvLyBXZSBvbmx5IG5l
ZWQgb25lIHBhc3MgZm9yIHRoZSBzaW5nbGUgcHJvcCBjYXNlCiAgICAgICAgICAgICAgICAgaWYg
KCFhbGwpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzk5LDIxICszOTksMjEgQEAg
ZG91YmxlIENvbXBvc2l0ZUFuaW1hdGlvbjo6dGltZVRvTmV4dFNlcnZpY2UoKSBjb25zdAogICAg
IHJldHVybiBtaW5UOwogfQogCi1QYXNzUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiBDb21wb3Np
dGVBbmltYXRpb246OmdldEFuaW1hdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVy
dHkpIGNvbnN0CitLZXlmcmFtZUFuaW1hdGlvbiogQ29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRp
b25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5KSBjb25zdAogewotICAgIFJlZlB0
cjxLZXlmcmFtZUFuaW1hdGlvbj4gcmV0dmFsOwotICAgIAorICAgIEtleWZyYW1lQW5pbWF0aW9u
KiByZXN1bHQgPSBudWxscHRyOworCiAgICAgLy8gV2Ugd2FudCB0byBzZW5kIGJhY2sgdGhlIGxh
c3QgYW5pbWF0aW9uIHdpdGggdGhlIHByb3BlcnR5IGlmIHRoZXJlIGFyZSBtdWx0aXBsZXMuCiAg
ICAgLy8gU28gd2UgbmVlZCB0byBpdGVyYXRlIHRocm91Z2ggYWxsIGFuaW1hdGlvbnMKICAgICBp
ZiAoIW1fa2V5ZnJhbWVBbmltYXRpb25zLmlzRW1wdHkoKSkgewogICAgICAgICBtX2tleWZyYW1l
QW5pbWF0aW9ucy5jaGVja0NvbnNpc3RlbmN5KCk7CiAgICAgICAgIGZvciAoYXV0byYgYW5pbWF0
aW9uIDogbV9rZXlmcmFtZUFuaW1hdGlvbnMudmFsdWVzKCkpIHsKICAgICAgICAgICAgIGlmIChh
bmltYXRpb24tPmhhc0FuaW1hdGlvbkZvclByb3BlcnR5KHByb3BlcnR5KSkKLSAgICAgICAgICAg
ICAgICByZXR2YWwgPSBhbmltYXRpb247CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gYW5pbWF0
aW9uLmdldCgpOwogICAgICAgICB9CiAgICAgfQotICAgIAotICAgIHJldHVybiByZXR2YWw7CisK
KyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBib29sIENvbXBvc2l0ZUFuaW1hdGlvbjo6Y29tcHV0
ZUV4dGVudE9mVHJhbnNmb3JtQW5pbWF0aW9uKExheW91dFJlY3QmIGJvdW5kcykgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgK
aW5kZXggMzM3ZmU2ZjE2NmU3MWMxY2U2MTlhZTIzODg5MzExODdmZjg2NDdjYy4uNDBjM2E0OTFm
MmE1NDhlYjNlMmIzMzE2YzRmMGZmZTA1MzIxMzkwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgKQEAgLTcxLDcgKzcxLDcgQEAg
cHVibGljOgogCiAgICAgYm9vbCBpc0FuaW1hdGluZ1Byb3BlcnR5KENTU1Byb3BlcnR5SUQsIGJv
b2wgYWNjZWxlcmF0ZWRPbmx5LCBBbmltYXRpb25CYXNlOjpSdW5uaW5nU3RhdGUpIGNvbnN0Owog
Ci0gICAgUGFzc1JlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4gZ2V0QW5pbWF0aW9uRm9yUHJvcGVy
dHkoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CisgICAgS2V5ZnJhbWVBbmltYXRpb24qIGFuaW1hdGlv
bkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQpIGNvbnN0OwogCiAgICAgdm9pZCBvdmVycmlkZUlt
cGxpY2l0QW5pbWF0aW9ucyhDU1NQcm9wZXJ0eUlEKTsKICAgICB2b2lkIHJlc3VtZU92ZXJyaWRk
ZW5JbXBsaWNpdEFuaW1hdGlvbnMoQ1NTUHJvcGVydHlJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKaW5kZXggNzE2YmVhODI0
OTA0OTJjNDNiY2UxNzc0OWQxZmZiNTIxMjdjY2NmZi4uZmRlZDYyM2E2YWRkYTkyNGFiNzYzNjNl
MjQ2OWNiY2EzMmNiZmI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vSW1wbGljaXRBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcApAQCAtMTYzLDEwICsxNjMsOSBAQCB2b2lkIEltcGxp
Y2l0QW5pbWF0aW9uOjpvbkFuaW1hdGlvbkVuZChkb3VibGUgZWxhcHNlZFRpbWUpCiAgICAgLy8g
cnVubmluZy4gQnV0IG5vdyB0aGF0IHRoZSB0cmFuc2l0aW9uIGhhcyBjb21wbGV0ZWQsIHdlIG5l
ZWQgdG8gdXBkYXRlIHRoaXMgc3R5bGUgd2l0aCBpdHMgbmV3CiAgICAgLy8gZGVzdGluYXRpb24u
IElmIHdlIGRpZG4ndCwgdGhlIG5leHQgdGltZSB0aHJvdWdoIHdlIHdvdWxkIHRoaW5rIGEgdHJh
bnNpdGlvbiBoYWQgc3RhcnRlZAogICAgIC8vIChjb21wYXJpbmcgdGhlIG9sZCB1bmFuaW1hdGVk
IHN0eWxlIHdpdGggdGhlIG5ldyBmaW5hbCBzdHlsZSBvZiB0aGUgdHJhbnNpdGlvbikuCi0gICAg
UmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiBrZXlmcmFtZUFuaW0gPSBtX2NvbXBvc2l0ZUFuaW1h
dGlvbi0+Z2V0QW5pbWF0aW9uRm9yUHJvcGVydHkobV9hbmltYXRpbmdQcm9wZXJ0eSk7Ci0gICAg
aWYgKGtleWZyYW1lQW5pbSkKLSAgICAgICAga2V5ZnJhbWVBbmltLT5zZXRVbmFuaW1hdGVkU3R5
bGUoUmVuZGVyU3R5bGU6OmNsb25lUHRyKCptX3RvU3R5bGUpKTsKLSAgICAKKyAgICBpZiAoYXV0
byogYW5pbWF0aW9uID0gbV9jb21wb3NpdGVBbmltYXRpb24tPmFuaW1hdGlvbkZvclByb3BlcnR5
KG1fYW5pbWF0aW5nUHJvcGVydHkpKQorICAgICAgICBhbmltYXRpb24tPnNldFVuYW5pbWF0ZWRT
dHlsZShSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoKm1fdG9TdHlsZSkpOworCiAgICAgc2VuZFRyYW5z
aXRpb25FdmVudChldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2ZW50LCBlbGFwc2VkVGltZSk7
CiAgICAgZW5kQW5pbWF0aW9uKCk7CiB9CkBAIC0xODcsNyArMTg2LDcgQEAgYm9vbCBJbXBsaWNp
dEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgZG91YmwKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgICAg
IC8vIFNjaGVkdWxlIGV2ZW50IGhhbmRsaW5nCi0gICAgICAgICAgICBtX2NvbXBvc2l0ZUFuaW1h
dGlvbi0+YW5pbWF0aW9uQ29udHJvbGxlcigpLmFkZEV2ZW50VG9EaXNwYXRjaChlbGVtZW50LCBl
dmVudFR5cGUsIHByb3BlcnR5TmFtZSwgZWxhcHNlZFRpbWUpOworICAgICAgICAgICAgbV9jb21w
b3NpdGVBbmltYXRpb24tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS5hZGRFdmVudFRvRGlzcGF0Y2go
KmVsZW1lbnQsIGV2ZW50VHlwZSwgcHJvcGVydHlOYW1lLCBlbGFwc2VkVGltZSk7CiAKICAgICAg
ICAgICAgIC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsICh1bmFuaW1hdGVkKSBzdHlsZQogICAgICAg
ICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2ZW50ICYm
IGVsZW1lbnQtPnJlbmRlcmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKaW5kZXggNDcxYmFjZjZmMWI5ZjA1Y2UxZDM0ZGE4
NzVmZThjNjdjOTRmZjU3ZC4uZGMyOWQyMjM5MWIwMzRiZGNlZTU2NmYzYjJhNWMzMTdhMGRkMDAz
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmlt
YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5p
bWF0aW9uLmNwcApAQCAtMzI3LDcgKzMyNyw3IEBAIGJvb2wgS2V5ZnJhbWVBbmltYXRpb246OnNl
bmRBbmltYXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgZG91YmxlCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgLy8gU2NoZWR1bGUgZXZlbnQgaGFu
ZGxpbmcKLSAgICAgICAgbV9jb21wb3NpdGVBbmltYXRpb24tPmFuaW1hdGlvbkNvbnRyb2xsZXIo
KS5hZGRFdmVudFRvRGlzcGF0Y2goZWxlbWVudCwgZXZlbnRUeXBlLCBtX2tleWZyYW1lcy5hbmlt
YXRpb25OYW1lKCksIGVsYXBzZWRUaW1lKTsKKyAgICAgICAgbV9jb21wb3NpdGVBbmltYXRpb24t
PmFuaW1hdGlvbkNvbnRyb2xsZXIoKS5hZGRFdmVudFRvRGlzcGF0Y2goKmVsZW1lbnQsIGV2ZW50
VHlwZSwgbV9rZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpLCBlbGFwc2VkVGltZSk7CiAKICAgICAg
ICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgKHVuYW5pbWF0ZWQpIHN0eWxlCiAgICAgICAgIGlm
ICgoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS53ZWJraXRBbmltYXRpb25FbmRFdmVudCB8fCBl
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmFuaW1hdGlvbmVuZEV2ZW50KSAmJiBlbGVtZW50LT5y
ZW5kZXJlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5k
bGVyRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAK
aW5kZXggMjEwNmQxZTE5YTQ4NmEzODVmZmU4N2Y5MDBmYWFmZTkwOGJjYWMxMi4uZjRjNmJhZWYw
MTEyNzgzMzI2OGY3Y2ZlMjRjODRkOGFkMWQ5OTI1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCkBAIC05NiwxMCArOTYsMTIgQEAgYm9vbCBFdmVudEhh
bmRsZXI6OndpZGdldERpZEhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiBldmVudCwgV2kKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNzUmVmUHRyPERh
dGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNv
bnN0CisKK1JlZjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRh
VHJhbnNmZXIoKSBjb25zdAogewogICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRy
YWdBbmREcm9wKCk7CiB9CisKICNlbmRpZgogCiBib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNl
UHJlc3NFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBG
cmFtZSogc3ViZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9FdmVu
dEhhbmRsZXJHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3Rr
LmNwcAppbmRleCA0M2YwNTM3NWU1YmRlNjE0ZjkwOGE3YzE1NGQ4MmQ3YjA4ZWNlMjRiLi4xNWEx
NjM5MDc1ODMzMGZiMmQ0NzFkNWQ2OGViNWYyODQ1YTc0ZjgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAKQEAgLTk2LDEwICs5NiwxMiBAQCBib29sIEV2
ZW50SGFuZGxlcjo6d2lkZ2V0RGlkSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIGV2ZW50LCBXaQogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBhc3NSZWZQ
dHI8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVy
KCkgY29uc3QKKworUmVmPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2lu
Z0RhdGFUcmFuc2ZlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRl
Rm9yRHJhZ0FuZERyb3AoKTsKIH0KKwogI2VuZGlmCiAKIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNz
TW91c2VQcmVzc0V2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBt
ZXYsIEZyYW1lKiBzdWJmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L0V2ZW50SGFuZGxlck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbQppbmRleCBlNTkxOTc4YzAwYzQwYzY5ZTc3M2E5NzYyMWQ3NjczM2JkNzUxYjAyLi42
OGQ5ZmZkOGUzY2MwYWU3NDA4YjgwYjBiZTJjNTU5MWVjYjA0YzA3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCkBAIC03MjMsNyArNzIzLDcgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQm
IGV2ZW50KSBjb25zdAogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIAotUGFzc1JlZlB0cjxE
YXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBj
b25zdAorUmVmPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFU
cmFuc2ZlcigpIGNvbnN0CiB7CiAgICAgLy8gTXVzdCBiZSBkb25lIGJlZm9yZSBvbmRyYWdzdGFy
dCBhZGRzIHR5cGVzIGFuZCBkYXRhIHRvIHRoZSBwYm9hcmQsCiAgICAgLy8gYWxzbyBkb25lIGZv
ciBzZWN1cml0eSwgYXMgaXQgZXJhc2VzIGRhdGEgZnJvbSB0aGUgbGFzdCBkcmFnLgpAQCAtNzM0
LDcgKzczNCw3IEBAIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKIAogI2VuZGlmCiAKLWJvb2wgRXZlbnRIYW5k
bGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCogZXZlbnQpIGNvbnN0Citi
b29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQmIGV2
ZW50KSBjb25zdAogewogICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKTsKICAgICBpZiAo
IXBhZ2UpCkBAIC05NzEsMTAgKzk3MSwxMCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6cGxhdGZvcm1Q
cmVwYXJlRm9yV2hlZWxFdmVudHMoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbAogICAg
ICAgICAgICAgICAgIG1fZnJhbWUubWFpbkZyYW1lKCkucHVzaE5ld0xhdGNoaW5nU3RhdGUoKTsK
ICAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlID0gbV9mcmFtZS5tYWluRnJhbWUoKS5sYXRj
aGluZ1N0YXRlKCk7CiAgICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0U3RhcnRlZEdl
c3R1cmVBdFNjcm9sbExpbWl0KGZhbHNlKTsKLSAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRl
LT5zZXRXaGVlbEV2ZW50RWxlbWVudCh3aGVlbEV2ZW50VGFyZ2V0KTsKKyAgICAgICAgICAgICAg
ICBsYXRjaGluZ1N0YXRlLT5zZXRXaGVlbEV2ZW50RWxlbWVudCh3aGVlbEV2ZW50VGFyZ2V0Lmdl
dCgpKTsKICAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlLT5zZXRGcmFtZSgmbV9mcmFtZSk7
CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdoYXQgcHJldmVudHMgdXMgZnJvbSBkZWxldGlu
ZyB0aGlzIHNjcm9sbGFibGUgY29udGFpbmVyIHdoaWxlIHN0aWxsIGhvbGRpbmcgYSBwb2ludGVy
IHRvIGl0PwotICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldFNjcm9sbGFibGVDb250
YWluZXIoc2Nyb2xsYWJsZUNvbnRhaW5lcik7CisgICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0
ZS0+c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihzY3JvbGxhYmxlQ29udGFpbmVyLmdldCgpKTsKICAg
ICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlLT5zZXRXaWRnZXRJc0xhdGNoZWQocmVzdWx0Lmlz
T3ZlcldpZGdldCgpKTsKICAgICAgICAgICAgICAgICBpc092ZXJXaWRnZXQgPSBsYXRjaGluZ1N0
YXRlLT53aWRnZXRJc0xhdGNoZWQoKTsKICAgICAgICAgICAgICAgICBtX2ZyYW1lLm1haW5GcmFt
ZSgpLndoZWVsRXZlbnREZWx0YUZpbHRlcigpLT5iZWdpbkZpbHRlcmluZ0RlbHRhcygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5o
CmluZGV4IDU1ZTRkNjU5NWVlYjYwNTNmNmE2YTk0NTBiOWRhZWI4MTI4YzUyNzAuLjY1YjFjZWVj
NmIxMTI3YjA1OTYzMjFlYzQ4ODI0NTdkZjQxYjA0ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmgKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsNyArMzEsNiBAQAog
I2luY2x1ZGUgIlBhZ2VPdmVybGF5LmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKICNpbmNsdWRlICJU
aW1lci5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIHR5cGVkZWYgc3RydWN0IF9f
RERIaWdobGlnaHQgKkRESGlnaGxpZ2h0UmVmOwogCkBAIC0zOSw2ICszOCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIExheW91dFJlY3Q7CiBjbGFzcyBNYWluRnJhbWU7CisK
IHN0cnVjdCBHYXBSZWN0czsKIAogY2xhc3MgU2VydmljZXNPdmVybGF5Q29udHJvbGxlciA6IHBy
aXZhdGUgUGFnZU92ZXJsYXk6OkNsaWVudCB7CkBAIC01NCwxNCArNTQsMTQgQEAgcHJpdmF0ZToK
ICAgICBjbGFzcyBIaWdobGlnaHQgOiBwdWJsaWMgUmVmQ291bnRlZDxIaWdobGlnaHQ+LCBwcml2
YXRlIEdyYXBoaWNzTGF5ZXJDbGllbnQgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShI
aWdobGlnaHQpOwogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIFJlZjxIaWdobGlnaHQ+IGNy
ZWF0ZUZvclNlbGVjdGlvbihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiwgUmV0YWluUHRyPERE
SGlnaGxpZ2h0UmVmPiwgUGFzc1JlZlB0cjxSYW5nZT4pOwotICAgICAgICBzdGF0aWMgUmVmPEhp
Z2hsaWdodD4gY3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXImLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+LCBQYXNzUmVmUHRyPFJhbmdlPik7CisgICAg
ICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGVGb3JTZWxlY3Rpb24oU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlciYsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFJlZjxSYW5nZT4mJik7
CisgICAgICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIo
U2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFJl
ZjxSYW5nZT4mJik7CiAgICAgICAgIH5IaWdobGlnaHQoKTsKIAogICAgICAgICB2b2lkIGludmFs
aWRhdGUoKTsKIAogICAgICAgICBEREhpZ2hsaWdodFJlZiBkZEhpZ2hsaWdodCgpIGNvbnN0IHsg
cmV0dXJuIG1fZGRIaWdobGlnaHQuZ2V0KCk7IH0KLSAgICAgICAgUmFuZ2UqIHJhbmdlKCkgY29u
c3QgeyByZXR1cm4gbV9yYW5nZS5nZXQoKTsgfQorICAgICAgICBSYW5nZSYgcmFuZ2UoKSBjb25z
dCB7IHJldHVybiBtX3JhbmdlLmdldCgpOyB9CiAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIGxheWVy
KCkgY29uc3QgeyByZXR1cm4gbV9ncmFwaGljc0xheWVyLmdldCgpOyB9CiAKICAgICAgICAgZW51
bSB7CkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgc2V0RERIaWdobGln
aHQoRERIaWdobGlnaHRSZWYpOwogCiAgICAgcHJpdmF0ZToKLSAgICAgICAgZXhwbGljaXQgSGln
aGxpZ2h0KFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImLCBUeXBlLCBSZXRhaW5QdHI8RERIaWdo
bGlnaHRSZWY+LCBQYXNzUmVmUHRyPFJhbmdlPik7CisgICAgICAgIEhpZ2hsaWdodChTZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyJiwgVHlwZSwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUmVm
PFJhbmdlPiYmKTsKIAogICAgICAgICAvLyBHcmFwaGljc0xheWVyQ2xpZW50CiAgICAgICAgIHZv
aWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CkBA
IC04Nyw3ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgZGlkRmluaXNoRmFkZU91dEFu
aW1hdGlvbigpOwogCiAgICAgICAgIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gbV9kZEhpZ2hs
aWdodDsKLSAgICAgICAgUmVmUHRyPFJhbmdlPiBtX3JhbmdlOworICAgICAgICBSZWY8UmFuZ2U+
IG1fcmFuZ2U7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBtX2dyYXBo
aWNzTGF5ZXI7CiAgICAgICAgIFR5cGUgbV90eXBlOwogICAgICAgICBTZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQppbmRleCA5YTgxNWI1YWU1NTk2NDk5YmRm
NjE2ZWQ0MjExYjlhNTIzODE1ZTYyLi40YjAzZTIyYWU0NmJlODlhZTIzMTAyZmI0OWZmNDkyMWQ0
MDQ2OGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3Zl
cmxheUNvbnRyb2xsZXIubW0KQEAgLTU1LDIzICs1NSwyMiBAQCBjb25zdCBmbG9hdCBoaWdobGln
aHRGYWRlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjM7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
UmVmPFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodD4gU2VydmljZXNPdmVybGF5
Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24oU2VydmljZXNPdmVybGF5
Q29udHJvbGxlciYgY29udHJvbGxlciwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hs
aWdodCwgUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2UpCitSZWY8U2VydmljZXNPdmVybGF5Q29udHJv
bGxlcjo6SGlnaGxpZ2h0PiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OmNy
ZWF0ZUZvclNlbGVjdGlvbihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiBjb250cm9sbGVyLCBS
ZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBSZWY8UmFuZ2U+JiYgcmFuZ2Up
CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0KGNvbnRyb2xsZXIsIEhpZ2hs
aWdodDo6U2VsZWN0aW9uVHlwZSwgZGRIaWdobGlnaHQsIHJhbmdlKSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSGlnaGxpZ2h0KGNvbnRyb2xsZXIsIEhpZ2hsaWdodDo6U2VsZWN0aW9uVHlw
ZSwgZGRIaWdobGlnaHQsIFdURk1vdmUocmFuZ2UpKSk7CiB9CiAKLVJlZjxTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyOjpIaWdobGlnaHQ+IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hs
aWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIm
IGNvbnRyb2xsZXIsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFBhc3NS
ZWZQdHI8UmFuZ2U+IHJhbmdlKQorUmVmPFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hs
aWdodD4gU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JUZWxl
cGhvbmVOdW1iZXIoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYgY29udHJvbGxlciwgUmV0YWlu
UHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCwgUmVmPFJhbmdlPiYmIHJhbmdlKQogewot
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodChjb250cm9sbGVyLCBIaWdobGlnaHQ6
OlRlbGVwaG9uZU51bWJlclR5cGUsIGRkSGlnaGxpZ2h0LCByYW5nZSkpOworICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEhpZ2hsaWdodChjb250cm9sbGVyLCBIaWdobGlnaHQ6OlRlbGVwaG9uZU51
bWJlclR5cGUsIGRkSGlnaGxpZ2h0LCBXVEZNb3ZlKHJhbmdlKSkpOwogfQogCi1TZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OkhpZ2hsaWdodChTZXJ2aWNlc092ZXJsYXlDb250
cm9sbGVyJiBjb250cm9sbGVyLCBUeXBlIHR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4g
ZGRIaWdobGlnaHQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+IHJhbmdlKQotICAgIDogbV9y
YW5nZShyYW5nZSkKK1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6SGlnaGxp
Z2h0KFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIsIFR5cGUgdHlwZSwgUmV0
YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCwgUmVmPFdlYkNvcmU6OlJhbmdlPiYm
IHJhbmdlKQorICAgIDogbV9yYW5nZShXVEZNb3ZlKHJhbmdlKSkKICAgICAsIG1fdHlwZSh0eXBl
KQogICAgICwgbV9jb250cm9sbGVyKCZjb250cm9sbGVyKQogewogICAgIEFTU0VSVChkZEhpZ2hs
aWdodCk7Ci0gICAgQVNTRVJUKG1fcmFuZ2UpOwogCiAgICAgUGFnZSogcGFnZSA9IGNvbnRyb2xs
ZXIubWFpbkZyYW1lKCkucGFnZSgpOwogICAgIG1fZ3JhcGhpY3NMYXllciA9IEdyYXBoaWNzTGF5
ZXI6OmNyZWF0ZShwYWdlID8gcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuZ3JhcGhpY3NMYXllckZh
Y3RvcnkoKSA6IG51bGxwdHIsICp0aGlzKTsKQEAgLTQwOSw3ICs0MDgsNyBAQCB2b2lkIFNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkUG90ZW50aWFsSGlnaGxpZ2h0c0lmTmVlZGVkKCkK
IAogICAgIGlmIChtX3BvdGVudGlhbEhpZ2hsaWdodHMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlm
IChtX3NlcnZpY2VzT3ZlcmxheSkKLSAgICAgICAgICAgIG1fbWFpbkZyYW1lLnBhZ2VPdmVybGF5
Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fc2VydmljZXNPdmVybGF5LCBQYWdl
T3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgICAgICAgICBtX21haW5GcmFtZS5w
YWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqbV9zZXJ2aWNlc092
ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtNTI3LDcgKzUyNiw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJv
bGxlcjo6YnVpbGRQaG9uZU51bWJlckhpZ2hsaWdodHMoKQogICAgICAgICBDR1JlY3QgY2dSZWN0
ID0gcmVjdDsKICAgICAgICAgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCA9
IGFkb3B0Q0YoRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxl
QW5kRGlyZWN0aW9uKG51bGxwdHIsICZjZ1JlY3QsIDEsIG1haW5GcmFtZVZpZXcudmlzaWJsZUNv
bnRlbnRSZWN0KCksIERESGlnaGxpZ2h0U3R5bGVCdWJibGVTdGFuZGFyZCB8IERESGlnaGxpZ2h0
U3R5bGVTdGFuZGFyZEljb25BcnJvdywgWUVTLCBOU1dyaXRpbmdEaXJlY3Rpb25OYXR1cmFsLCBO
TywgWUVTKSk7CiAKLSAgICAgICAgbmV3UG90ZW50aWFsSGlnaGxpZ2h0cy5hZGQoSGlnaGxpZ2h0
OjpjcmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIoKnRoaXMsIGRkSGlnaGxpZ2h0LCByYW5nZSkpOwor
ICAgICAgICBuZXdQb3RlbnRpYWxIaWdobGlnaHRzLmFkZChIaWdobGlnaHQ6OmNyZWF0ZUZvclRl
bGVwaG9uZU51bWJlcigqdGhpcywgZGRIaWdobGlnaHQsIHJhbmdlLnJlbGVhc2VOb25OdWxsKCkp
KTsKICAgICB9CiAKICAgICByZXBsYWNlSGlnaGxpZ2h0c09mVHlwZVByZXNlcnZpbmdFcXVpdmFs
ZW50SGlnaGxpZ2h0cyhuZXdQb3RlbnRpYWxIaWdobGlnaHRzLCBIaWdobGlnaHQ6OlRlbGVwaG9u
ZU51bWJlclR5cGUpOwpAQCAtNTcwLDcgKzU2OSw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlcjo6YnVpbGRTZWxlY3Rpb25IaWdobGlnaHQoKQogICAgICAgICAgICAgQ0dSZWN0IHZp
c2libGVSZWN0ID0gbWFpbkZyYW1lVmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KCk7CiAgICAgICAg
ICAgICBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0ID0gYWRvcHRDRihEREhp
Z2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJsZVJlY3RXaXRoU3R5bGVBbmREaXJlY3Rpb24o
bnVsbHB0ciwgY2dSZWN0cy5iZWdpbigpLCBjZ1JlY3RzLnNpemUoKSwgdmlzaWJsZVJlY3QsIERE
SGlnaGxpZ2h0U3R5bGVCdWJibGVOb25lIHwgRERIaWdobGlnaHRTdHlsZVN0YW5kYXJkSWNvbkFy
cm93IHwgRERIaWdobGlnaHRTdHlsZUJ1dHRvblNob3dBbHdheXMsIFlFUywgTlNXcml0aW5nRGly
ZWN0aW9uTmF0dXJhbCwgTk8sIFlFUykpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBuZXdQ
b3RlbnRpYWxIaWdobGlnaHRzLmFkZChIaWdobGlnaHQ6OmNyZWF0ZUZvclNlbGVjdGlvbigqdGhp
cywgZGRIaWdobGlnaHQsIHNlbGVjdGlvblJhbmdlKSk7CisgICAgICAgICAgICBuZXdQb3RlbnRp
YWxIaWdobGlnaHRzLmFkZChIaWdobGlnaHQ6OmNyZWF0ZUZvclNlbGVjdGlvbigqdGhpcywgZGRI
aWdobGlnaHQsIHNlbGVjdGlvblJhbmdlLnJlbGVhc2VOb25OdWxsKCkpKTsKICAgICAgICAgfQog
ICAgIH0KIApAQCAtNjM4LDE0ICs2MzcsOSBAQCBib29sIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXI6OmhpZ2hsaWdodHNBcmVFcXVpdmFsZW50KGNvbnN0IEhpZ2hsaWdodCogYSwgY29ucwogewog
ICAgIGlmIChhID09IGIpCiAgICAgICAgIHJldHVybiB0cnVlOwotCiAgICAgaWYgKCFhIHx8ICFi
KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoYS0+dHlwZSgpID09IGItPnR5cGUo
KSAmJiBhcmVSYW5nZXNFcXVhbChhLT5yYW5nZSgpLCBiLT5yYW5nZSgpKSkKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGEtPnR5cGUoKSA9PSBi
LT50eXBlKCkgJiYgYXJlUmFuZ2VzRXF1YWwoJmEtPnJhbmdlKCksICZiLT5yYW5nZSgpKTsKIH0K
IAogU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0KiBTZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyOjpmaW5kVGVsZXBob25lTnVtYmVySGlnaGxpZ2h0Q29udGFpbmluZ1NlbGVjdGlv
bkhpZ2hsaWdodChIaWdobGlnaHQmIHNlbGVjdGlvbkhpZ2hsaWdodCkKQEAgLTY2OSw3ICs2NjMs
NyBAQCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQqIFNlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXI6OmZpbmRUZWxlcGhvbmVOdQogICAgICAgICBpZiAoaGlnaGxpZ2h0LT50eXBl
KCkgIT0gSGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlKQogICAgICAgICAgICAgY29udGlu
dWU7CiAKLSAgICAgICAgaWYgKGhpZ2hsaWdodC0+cmFuZ2UoKS0+Y29udGFpbnMoKmFjdGl2ZVNl
bGVjdGlvblJhbmdlKSkKKyAgICAgICAgaWYgKGhpZ2hsaWdodC0+cmFuZ2UoKS5jb250YWlucygq
YWN0aXZlU2VsZWN0aW9uUmFuZ2UpKQogICAgICAgICAgICAgcmV0dXJuIGhpZ2hsaWdodC5nZXQo
KTsKICAgICB9CiAKQEAgLTgzMiw3ICs4MjYsNyBAQCB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXI6OmhhbmRsZUNsaWNrKGNvbnN0IEludFBvaW50JiBjbGlja1BvaW50LCBIaWdobGlnaAog
CiAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmhhbmRsZVNlbGVjdGlvblNlcnZpY2VD
bGljayhwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5zZWxlY3Rp
b24oKSwgc2VsZWN0ZWRUZWxlcGhvbmVOdW1iZXJzLCB3aW5kb3dQb2ludCk7CiAgICAgfSBlbHNl
IGlmIChoaWdobGlnaHQudHlwZSgpID09IEhpZ2hsaWdodDo6VGVsZXBob25lTnVtYmVyVHlwZSkK
LSAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFuZGxlVGVsZXBob25lTnVtYmVyQ2xp
Y2soaGlnaGxpZ2h0LnJhbmdlKCktPnRleHQoKSwgd2luZG93UG9pbnQpOworICAgICAgICBwYWdl
LT5jaHJvbWUoKS5jbGllbnQoKS5oYW5kbGVUZWxlcGhvbmVOdW1iZXJDbGljayhoaWdobGlnaHQu
cmFuZ2UoKS50ZXh0KCksIHdpbmRvd1BvaW50KTsKIH0KIAogdm9pZCBTZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyOjpkaWRDcmVhdGVIaWdobGlnaHQoSGlnaGxpZ2h0KiBoaWdobGlnaHQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQppbmRleCBlNGUy
MGQyMjc2OGM4ODJlOTAwYjEyYjQxZmUwMmVjZGZiNDhmNjI4Li5lNTkyOWJhNjNkZTU5ZjQ5ODNi
ZDhjZjljMzAwNjRlNjcxNzczY2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW0KQEAgLTY0LDcgKzY0LDcgQEAgQGludGVyZmFjZSBXZWJUZXh0
SW5kaWNhdG9yVmlldyA6IE5TVmlldyB7CiAgICAgQk9PTCBfZmFkaW5nT3V0OwogfQogCi0tIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFBh
c3NSZWZQdHI8VGV4dEluZGljYXRvcj4pdGV4dEluZGljYXRvciBtYXJnaW46KE5TU2l6ZSltYXJn
aW4gb2Zmc2V0OihOU1BvaW50KW9mZnNldDsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1l
OihOU1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooVGV4dEluZGljYXRvciYpdGV4dEluZGljYXRv
ciBtYXJnaW46KE5TU2l6ZSltYXJnaW4gb2Zmc2V0OihOU1BvaW50KW9mZnNldDsKIAogLSAodm9p
ZClwcmVzZW50OwogLSAodm9pZCloaWRlV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKHZv
aWQpKWNvbXBsZXRpb25IYW5kbGVyOwpAQCAtMTQ3LDEyICsxNDcsMTIgQEAgc3RhdGljIGJvb2wg
aW5kaWNhdG9yV2FudHNNYW51YWxBbmltYXRpb24oY29uc3QgVGV4dEluZGljYXRvciYgaW5kaWNh
dG9yKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJh
bWU6KE5TUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihQYXNzUmVmUHRyPFRleHRJbmRpY2F0b3I+
KXRleHRJbmRpY2F0b3IgbWFyZ2luOihOU1NpemUpbWFyZ2luIG9mZnNldDooTlNQb2ludClvZmZz
ZXQKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgdGV4dEluZGlj
YXRvcjooVGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciBtYXJnaW46KE5TU2l6ZSltYXJnaW4g
b2Zmc2V0OihOU1BvaW50KW9mZnNldAogewogICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdFdp
dGhGcmFtZTpmcmFtZV0pKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgX3RleHRJbmRpY2F0
b3IgPSB0ZXh0SW5kaWNhdG9yOworICAgIF90ZXh0SW5kaWNhdG9yID0gJnRleHRJbmRpY2F0b3I7
CiAgICAgX21hcmdpbiA9IG1hcmdpbjsKIAogICAgIHNlbGYud2FudHNMYXllciA9IFlFUzsKQEAg
LTQ2NSw3ICs0NjUsOCBAQCB2b2lkIFRleHRJbmRpY2F0b3JXaW5kb3c6OnNldFRleHRJbmRpY2F0
b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENHUgogICAgIFttX3RleHRJbmRp
Y2F0b3JXaW5kb3cgc2V0T3BhcXVlOk5PXTsKICAgICBbbV90ZXh0SW5kaWNhdG9yV2luZG93IHNl
dElnbm9yZXNNb3VzZUV2ZW50czpZRVNdOwogCi0gICAgbV90ZXh0SW5kaWNhdG9yVmlldyA9IGFk
b3B0TlMoW1tXZWJUZXh0SW5kaWNhdG9yVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIFttX3RleHRJbmRpY2F0b3JXaW5kb3cgZnJhbWVdLnNpemUud2lkdGgsIFttX3Rl
eHRJbmRpY2F0b3JXaW5kb3cgZnJhbWVdLnNpemUuaGVpZ2h0KSB0ZXh0SW5kaWNhdG9yOm1fdGV4
dEluZGljYXRvciBtYXJnaW46TlNNYWtlU2l6ZShob3Jpem9udGFsTWFyZ2luLCB2ZXJ0aWNhbE1h
cmdpbikgb2Zmc2V0OmZyYWN0aW9uYWxUZXh0T2Zmc2V0XSk7CisgICAgbV90ZXh0SW5kaWNhdG9y
VmlldyA9IGFkb3B0TlMoW1tXZWJUZXh0SW5kaWNhdG9yVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIFttX3RleHRJbmRpY2F0b3JXaW5kb3cgZnJhbWVdLnNpemUud2lk
dGgsIFttX3RleHRJbmRpY2F0b3JXaW5kb3cgZnJhbWVdLnNpemUuaGVpZ2h0KQorICAgICAgICB0
ZXh0SW5kaWNhdG9yOiptX3RleHRJbmRpY2F0b3IgbWFyZ2luOk5TTWFrZVNpemUoaG9yaXpvbnRh
bE1hcmdpbiwgdmVydGljYWxNYXJnaW4pIG9mZnNldDpmcmFjdGlvbmFsVGV4dE9mZnNldF0pOwog
ICAgIFttX3RleHRJbmRpY2F0b3JXaW5kb3cgc2V0Q29udGVudFZpZXc6bV90ZXh0SW5kaWNhdG9y
Vmlldy5nZXQoKV07CiAKICAgICBbW21fdGFyZ2V0VmlldyB3aW5kb3ddIGFkZENoaWxkV2luZG93
Om1fdGV4dEluZGljYXRvcldpbmRvdy5nZXQoKSBvcmRlcmVkOk5TV2luZG93QWJvdmVdOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvci5oCmluZGV4IGE0MzQxN2RjZTFjNDAxMzA4NDY5MjM4M2ExMmE4Y2YxYWI5ZDIw
YjMuLjAxMWFlMGYyMzNjMDkyNmZlZmUwZjBkOTA3YzVmMWE4MGYyNzI3NDEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRv
ci5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWUuaCIKICNpbmNsdWRlICJUaW1lci5oIgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CkBAIC02OSwxMSArNjgsMTEgQEAgcHVibGljOgogcHJvdGVjdGVkOgog
ICAgIFdFQkNPUkVfRVhQT1JUIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSopOwogCi0g
ICAgdm9pZCBzZXRTY3JvbGxpbmdUcmVlKFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZT4gc2Nyb2xs
aW5nVHJlZSkgeyBtX3Njcm9sbGluZ1RyZWUgPSBzY3JvbGxpbmdUcmVlOyB9CisgICAgdm9pZCBz
ZXRTY3JvbGxpbmdUcmVlKFJlZjxTY3JvbGxpbmdUcmVlPiYmIHNjcm9sbGluZ1RyZWUpIHsgbV9z
Y3JvbGxpbmdUcmVlID0gV1RGTW92ZShzY3JvbGxpbmdUcmVlKTsgfQogCiAgICAgU2Nyb2xsaW5n
U3RhdGVUcmVlKiBzY3JvbGxpbmdTdGF0ZVRyZWUoKSB7IHJldHVybiBtX3Njcm9sbGluZ1N0YXRl
VHJlZS5nZXQoKTsgfQogCi0gICAgUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlPiByZWxlYXNlU2Ny
b2xsaW5nVHJlZSgpIHsgcmV0dXJuIFdURk1vdmUobV9zY3JvbGxpbmdUcmVlKTsgfQorICAgIFJl
ZlB0cjxTY3JvbGxpbmdUcmVlPiByZWxlYXNlU2Nyb2xsaW5nVHJlZSgpIHsgcmV0dXJuIFdURk1v
dmUobV9zY3JvbGxpbmdUcmVlKTsgfQogCiAgICAgdm9pZCB1cGRhdGVTY3JvbGxQb3NpdGlvbkFm
dGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50Jiwgc3RkOjpv
cHRpb25hbDxGbG9hdFBvaW50PiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgYm9vbCBwcm9ncmFtbWF0
aWNTY3JvbGwsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuY3BwCmluZGV4
IGUzOWQ5OWVmYmEzMDY4Y2NiMDU1YjQwZDFjNzI0Mzc3ZDU4ZTM1YmUuLjAxZTY1MjliMDJjOGMx
ZDcwYWU3NzMyODNlYjdmNzMwMDU3NGY5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuY3BwCkBAIC0zMSw5ICszMSw2IEBA
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNjcm9sbExhdGNoaW5nU3RhdGU6OlNjcm9sbExhdGNo
aW5nU3RhdGUoKQotICAgIDogbV9mcmFtZShudWxscHRyKQotICAgICwgbV93aWRnZXRJc0xhdGNo
ZWQoZmFsc2UpCi0gICAgLCBtX3N0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdChmYWxzZSkKIHsK
IH0KICAgICAKQEAgLTUwLDcgKzQ3LDcgQEAgdm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRlOjpjbGVh
cigpCiAgICAgbV9wcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50ID0gbnVsbHB0cjsKIH0KIAot
dm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRlOjpzZXRXaGVlbEV2ZW50RWxlbWVudChQYXNzUmVmUHRy
PEVsZW1lbnQ+IGVsZW1lbnQpCit2b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFdoZWVsRXZl
bnRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgbV93aGVlbEV2ZW50RWxlbWVudCA9
IGVsZW1lbnQ7CiB9CkBAIC02MCwxNCArNTcsMTQgQEAgdm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRl
OjpzZXRXaWRnZXRJc0xhdGNoZWQoYm9vbCBpc092ZXJXaWRnZXQpCiAgICAgbV93aWRnZXRJc0xh
dGNoZWQgPSBpc092ZXJXaWRnZXQ7CiB9CiAKLXZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0
UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudChSZWZQdHI8RWxlbWVudD4mJiBlbGVtZW50KQor
dm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRlOjpzZXRQcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50
KEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgbV9wcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50
ID0gZWxlbWVudDsKIH0KIAotdm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRlOjpzZXRTY3JvbGxhYmxl
Q29udGFpbmVyKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gbm9kZSkKK3ZvaWQgU2Nyb2xsTGF0
Y2hpbmdTdGF0ZTo6c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihDb250YWluZXJOb2RlKiBjb250YWlu
ZXIpCiB7Ci0gICAgbV9zY3JvbGxhYmxlQ29udGFpbmVyID0gbm9kZTsKKyAgICBtX3Njcm9sbGFi
bGVDb250YWluZXIgPSBjb250YWluZXI7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuaAppbmRleCA0ZGMwZGQzMjI5M2Iz
OTBlYzliNjcxY2ZlM2IxOTg1N2M5NzNjNDc4Li4xMWRjYmQwZGIxNTVlMDQ1MDAwNTYyMWEwNTE3
NDc2ZDJiOTI5M2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxMYXRjaGluZ1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IGNsZWFyKCk7CiAKICAgICBFbGVtZW50KiB3aGVlbEV2ZW50RWxlbWVudCgpIHsgcmV0dXJuIG1f
d2hlZWxFdmVudEVsZW1lbnQuZ2V0KCk7IH0KLSAgICB2b2lkIHNldFdoZWVsRXZlbnRFbGVtZW50
KFBhc3NSZWZQdHI8RWxlbWVudD4pOworICAgIHZvaWQgc2V0V2hlZWxFdmVudEVsZW1lbnQoRWxl
bWVudCopOwogICAgIEZyYW1lKiBmcmFtZSgpIHsgcmV0dXJuIG1fZnJhbWU7IH0KICAgICB2b2lk
IHNldEZyYW1lKEZyYW1lKiBmcmFtZSkgeyBtX2ZyYW1lID0gZnJhbWU7IH0KIApAQCAtNDksMTAg
KzQ5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdpZGdldElzTGF0Y2hlZChib29sIGlzT3Zl
cldpZGdldCk7CiAKICAgICBFbGVtZW50KiBwcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50KCkg
eyByZXR1cm4gbV9wcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50LmdldCgpOyB9Ci0gICAgdm9p
ZCBzZXRQcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50KFJlZlB0cjxFbGVtZW50PiYmKTsKKyAg
ICB2b2lkIHNldFByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQoRWxlbWVudCopOwogICAgIAog
ICAgIENvbnRhaW5lck5vZGUqIHNjcm9sbGFibGVDb250YWluZXIoKSB7IHJldHVybiBtX3Njcm9s
bGFibGVDb250YWluZXIuZ2V0KCk7IH0KLSAgICB2b2lkIHNldFNjcm9sbGFibGVDb250YWluZXIo
UGFzc1JlZlB0cjxDb250YWluZXJOb2RlPik7CisgICAgdm9pZCBzZXRTY3JvbGxhYmxlQ29udGFp
bmVyKENvbnRhaW5lck5vZGUqKTsKICAgICBib29sIHN0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1p
dCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0OyB9CiAgICAg
dm9pZCBzZXRTdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQoYm9vbCBzdGFydGVkQXRMaW1pdCkg
eyBtX3N0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdCA9IHN0YXJ0ZWRBdExpbWl0OyB9CiAKQEAg
LTYxLDEwICs2MSwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxFbGVtZW50PiBtX3ByZXZpb3Vz
V2hlZWxTY3JvbGxlZEVsZW1lbnQ7CiAgICAgUmVmUHRyPENvbnRhaW5lck5vZGU+IG1fc2Nyb2xs
YWJsZUNvbnRhaW5lcjsKIAotICAgIEZyYW1lKiBtX2ZyYW1lOwotICAgIAotICAgIGJvb2wgbV93
aWRnZXRJc0xhdGNoZWQ7Ci0gICAgYm9vbCBtX3N0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdDsK
KyAgICBGcmFtZSogbV9mcmFtZSB7IG51bGxwdHIgfTsKKworICAgIGJvb2wgbV93aWRnZXRJc0xh
dGNoZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQg
eyBmYWxzZSB9OwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwCmluZGV4
IGM4NDU5YjA1YTBkMTY3YjVhY2VhZDE0MDk1ZTkzZjZlZDc3ZjI0ZDAuLjYxZGE1OGE5ZGVlYzBm
NjhkNWRhNjIwZTJkNmZkODAzMTVhNzRjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcApAQCAtNzIsNyArNzIsNyBAQCB2
b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6c2V0UHJvcGVydHlDaGFuZ2VkKHVuc2lnbmVkIHByb3Bl
cnR5Qml0KQogICAgIG1fc2Nyb2xsaW5nU3RhdGVUcmVlLnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVz
KCk7CiB9CiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZU5v
ZGU6OmNsb25lQW5kUmVzZXQoU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpCitSZWY8
U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZU5vZGU6OmNsb25lQW5kUmVzZXQoU2Ny
b2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpCiB7CiAgICAgYXV0byBjbG9uZSA9IHRoaXMt
PmNsb25lKGFkb3B0aXZlVHJlZSk7CiAKQEAgLTgwLDcgKzgwLDggQEAgUGFzc1JlZlB0cjxTY3Jv
bGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVBbmRSZXNldChTY3JvbGxp
bmdTdGF0ZVQKICAgICByZXNldENoYW5nZWRQcm9wZXJ0aWVzKCk7CiAKICAgICBjbG9uZUFuZFJl
c2V0Q2hpbGRyZW4oY2xvbmUuZ2V0KCksIGFkb3B0aXZlVHJlZSk7Ci0gICAgcmV0dXJuIFdURk1v
dmUoY2xvbmUpOworCisgICAgcmV0dXJuIGNsb25lOwogfQogCiB2b2lkIFNjcm9sbGluZ1N0YXRl
Tm9kZTo6Y2xvbmVBbmRSZXNldENoaWxkcmVuKFNjcm9sbGluZ1N0YXRlTm9kZSYgY2xvbmUsIFNj
cm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVlKQpAQCAtOTIsMTQgKzkzLDEzIEBAIHZvaWQg
U2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0Q2hpbGRyZW4oU2Nyb2xsaW5nU3RhdGVO
b2RlJiBjbG9uZSwgU2Nyb2xsCiAgICAgICAgIGNsb25lLmFwcGVuZENoaWxkKGNoaWxkLT5jbG9u
ZUFuZFJlc2V0KGFkb3B0aXZlVHJlZSkpOwogfQogCi12b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6
YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IGNoaWxkTm9kZSkKK3Zv
aWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjphcHBlbmRDaGlsZChSZWY8U2Nyb2xsaW5nU3RhdGVOb2Rl
PiYmIGNoaWxkTm9kZSkKIHsKICAgICBjaGlsZE5vZGUtPnNldFBhcmVudCh0aGlzKTsKIAogICAg
IGlmICghbV9jaGlsZHJlbikKICAgICAgICAgbV9jaGlsZHJlbiA9IHN0ZDo6bWFrZV91bmlxdWU8
VmVjdG9yPFJlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+Pj4oKTsKLQotICAgIG1fY2hpbGRyZW4t
PmFwcGVuZChjaGlsZE5vZGUpOworICAgIG1fY2hpbGRyZW4tPmFwcGVuZChXVEZNb3ZlKGNoaWxk
Tm9kZSkpOwogfQogCiB2b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6c2V0TGF5ZXIoY29uc3QgTGF5
ZXJSZXByZXNlbnRhdGlvbiYgbGF5ZXJSZXByZXNlbnRhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmgKaW5kZXggYmZhZDFjNDVl
MGQ3MWY5YmE3YzJiYzA4MjNmMTFiZTQ2OGQ2OWVjMC4uMDg3ZDYxODI5YWRlNTQ2MTA2MTIwNTc1
YmQ0MWExNjgwZWJjMWQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmgKQEAgLTIwNiw3ICsyMDYsNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc092ZXJmbG93U2Nyb2xsaW5nTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbm9kZVR5cGUg
PT0gT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOyB9CiAKICAgICB2aXJ0dWFsIFJlZjxTY3JvbGxpbmdT
dGF0ZU5vZGU+IGNsb25lKFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVlKSA9IDA7Ci0g
ICAgUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IGNsb25lQW5kUmVzZXQoU2Nyb2xsaW5n
U3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpOworICAgIFJlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+IGNs
b25lQW5kUmVzZXQoU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpOwogICAgIHZvaWQg
Y2xvbmVBbmRSZXNldENoaWxkcmVuKFNjcm9sbGluZ1N0YXRlTm9kZSYsIFNjcm9sbGluZ1N0YXRl
VHJlZSYgYWRvcHRpdmVUcmVlKTsKIAogICAgIGVudW0gewpAQCAtMjM4LDcgKzIzOCw3IEBAIHB1
YmxpYzoKIAogICAgIFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPj4qIGNoaWxkcmVu
KCkgY29uc3QgeyByZXR1cm4gbV9jaGlsZHJlbi5nZXQoKTsgfQogCi0gICAgdm9pZCBhcHBlbmRD
aGlsZChQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4pOworICAgIHZvaWQgYXBwZW5kQ2hp
bGQoUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4mJik7CiAKICAgICBTdHJpbmcgc2Nyb2xsaW5nU3Rh
dGVUcmVlQXNUZXh0KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwCmluZGV4IDk4YjZjYWRjYjRjMzUxY2QyZDc2
NjY0NjU3M2UzODVhNzMyZmMxNDIuLjBiYmMxYjczMzgyNzE5YjYyNThkMTFkMDQ5NDMzZTMyOTg3
YTNlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nU3RhdGVUcmVlLmNwcApAQCAtNjcsNyArNjcsNyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlVHJl
ZTo6c2V0SGFzQ2hhbmdlZFByb3BlcnRpZXMoYm9vbCBjaGFuZ2VkUHJvcGVydGllcykKICNlbmRp
ZgogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVUcmVl
OjpjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQg
bm9kZUlEKQorUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVUcmVlOjpjcmVh
dGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlE
KQogewogICAgIHN3aXRjaCAobm9kZVR5cGUpIHsKICAgICBjYXNlIEZpeGVkTm9kZToKQEAgLTgw
LDcgKzgwLDcgQEAgUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRl
VHJlZTo6Y3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZQogICAgICAgICByZXR1cm4gU2Nyb2xs
aW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAg
ICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAg
cmV0dXJuIFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9
CiAKIGJvb2wgU2Nyb2xsaW5nU3RhdGVUcmVlOjpub2RlVHlwZUFuZFBhcmVudE1hdGNoKFNjcm9s
bGluZ1N0YXRlTm9kZSYgbm9kZSwgU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGlu
Z05vZGVJRCBwYXJlbnRJRCkgY29uc3QKQEAgLTEyOSwxMyArMTI5LDEzIEBAIFNjcm9sbGluZ05v
ZGVJRCBTY3JvbGxpbmdTdGF0ZVRyZWU6OmF0dGFjaE5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9k
ZVR5cGUsIFNjcm9sCiAgICAgICAgIGlmIChub2RlVHlwZSA9PSBGcmFtZVNjcm9sbGluZ05vZGUg
JiYgcGFyZW50SUQpIHsKICAgICAgICAgICAgIGlmIChhdXRvIG9ycGhhbmVkTm9kZSA9IG1fb3Jw
aGFuZWRTdWJmcmFtZU5vZGVzLnRha2UobmV3Tm9kZUlEKSkgewogICAgICAgICAgICAgICAgIG5l
d05vZGUgPSBvcnBoYW5lZE5vZGUuZ2V0KCk7Ci0gICAgICAgICAgICAgICAgcGFyZW50LT5hcHBl
bmRDaGlsZChXVEZNb3ZlKG9ycGhhbmVkTm9kZSkpOworICAgICAgICAgICAgICAgIHBhcmVudC0+
YXBwZW5kQ2hpbGQob3JwaGFuZWROb2RlLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFuZXdOb2RlKSB7CiAgICAgICAgICAgICBhdXRv
IHN0YXRlTm9kZSA9IGNyZWF0ZU5vZGUobm9kZVR5cGUsIG5ld05vZGVJRCk7Ci0gICAgICAgICAg
ICBuZXdOb2RlID0gc3RhdGVOb2RlLmdldCgpOworICAgICAgICAgICAgbmV3Tm9kZSA9IHN0YXRl
Tm9kZS5wdHIoKTsKICAgICAgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoV1RGTW92ZShzdGF0
ZU5vZGUpKTsKICAgICAgICAgfQogICAgIH0KQEAgLTE4Miw3ICsxODIsNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8U2Nyb2xsaW5nU3RhdGVUcmVlPiBTY3JvbGxpbmdTdGF0ZVRyZWU6OmNvbW1pdChMYXll
clJlcHJlc2VudGF0aQogICAgIHRyZWVTdGF0ZUNsb25lLT5zZXRQcmVmZXJyZWRMYXllclJlcHJl
c2VudGF0aW9uKHByZWZlcnJlZExheWVyUmVwcmVzZW50YXRpb24pOwogCiAgICAgaWYgKG1fcm9v
dFN0YXRlTm9kZSkKLSAgICAgICAgdHJlZVN0YXRlQ2xvbmUtPnNldFJvb3RTdGF0ZU5vZGUoc3Rh
dGljX3BvaW50ZXJfY2FzdDxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4obV9yb290
U3RhdGVOb2RlLT5jbG9uZUFuZFJlc2V0KCp0cmVlU3RhdGVDbG9uZSkpKTsKKyAgICAgICAgdHJl
ZVN0YXRlQ2xvbmUtPnNldFJvb3RTdGF0ZU5vZGUoc3RhdGljX3JlZmVyZW5jZV9jYXN0PFNjcm9s
bGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPihtX3Jvb3RTdGF0ZU5vZGUtPmNsb25lQW5kUmVz
ZXQoKnRyZWVTdGF0ZUNsb25lKSkpOwogCiAgICAgLy8gQ29weSB0aGUgSURzIG9mIHRoZSBub2Rl
cyB0aGF0IGhhdmUgYmVlbiByZW1vdmVkIHNpbmNlIHRoZSBsYXN0IGNvbW1pdCBpbnRvIHRoZSBj
bG9uZS4KICAgICB0cmVlU3RhdGVDbG9uZS0+bV9ub2Rlc1JlbW92ZWRTaW5jZUxhc3RDb21taXQu
c3dhcChtX25vZGVzUmVtb3ZlZFNpbmNlTGFzdENvbW1pdCk7CkBAIC0yMTEsNyArMjExLDggQEAg
dm9pZCBTY3JvbGxpbmdTdGF0ZVRyZWU6OnJlbW92ZU5vZGVBbmRBbGxEZXNjZW5kYW50cyhTY3Jv
bGxpbmdTdGF0ZU5vZGUqIG5vZGUsIFMKICAgICBpZiAobm9kZSA9PSBtX3Jvb3RTdGF0ZU5vZGUp
CiAgICAgICAgIG1fcm9vdFN0YXRlTm9kZSA9IG51bGxwdHI7CiAgICAgZWxzZSBpZiAocGFyZW50
KSB7Ci0gICAgICAgIEFTU0VSVChwYXJlbnQtPmNoaWxkcmVuKCkgJiYgcGFyZW50LT5jaGlsZHJl
bigpLT5maW5kKG5vZGUpICE9IG5vdEZvdW5kKTsKKyAgICAgICAgQVNTRVJUKHBhcmVudC0+Y2hp
bGRyZW4oKSk7CisgICAgICAgIEFTU0VSVChwYXJlbnQtPmNoaWxkcmVuKCktPmZpbmQobm9kZSkg
IT0gbm90Rm91bmQpOwogICAgICAgICBpZiAoYXV0byBjaGlsZHJlbiA9IHBhcmVudC0+Y2hpbGRy
ZW4oKSkgewogICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gY2hpbGRyZW4tPmZpbmQobm9kZSk7
CiAgICAgICAgICAgICBpZiAoaW5kZXggIT0gbm90Rm91bmQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5oCmluZGV4IDMxZjZkYjc5ZTdi
NDBjMWIzMmYyZWE3Y2RjZmZjNDhmMTdiZmNlMzEuLjNiMjU2MTUxYWQ3NDRiY2YwMjM0ZDcyZDRm
ZDNhMGM3NWQ0MzY5MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1N0YXRlVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1N0YXRlVHJlZS5oCkBAIC03NCwxNyArNzQsMTQgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0UHJlZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbihMYXllclJlcHJlc2VudGF0aW9uOjpU
eXBlIHJlcHJlc2VudGF0aW9uKSB7IG1fcHJlZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbiA9IHJl
cHJlc2VudGF0aW9uOyB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBzZXRSb290U3RhdGVOb2RlKFBh
c3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+IHJvb3RTdGF0ZU5vZGUp
IHsgbV9yb290U3RhdGVOb2RlID0gcm9vdFN0YXRlTm9kZTsgfQorICAgIHZvaWQgc2V0Um9vdFN0
YXRlTm9kZShSZWY8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+JiYgcm9vdFN0YXRl
Tm9kZSkgeyBtX3Jvb3RTdGF0ZU5vZGUgPSBXVEZNb3ZlKHJvb3RTdGF0ZU5vZGUpOyB9CiAgICAg
dm9pZCBhZGROb2RlKFNjcm9sbGluZ1N0YXRlTm9kZSopOwogCi0gICAgUGFzc1JlZlB0cjxTY3Jv
bGxpbmdTdGF0ZU5vZGU+IGNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05v
ZGVJRCk7CisgICAgUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4gY3JlYXRlTm9kZShTY3JvbGxpbmdO
b2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKIAogICAgIGJvb2wgbm9kZVR5cGVBbmRQYXJlbnRN
YXRjaChTY3JvbGxpbmdTdGF0ZU5vZGUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9k
ZUlEIHBhcmVudElEKSBjb25zdDsKIAotICAgIGVudW0gY2xhc3MgU3ViZnJhbWVOb2RlUmVtb3Zh
bCB7Ci0gICAgICAgIERlbGV0ZSwKLSAgICAgICAgT3JwaGFuCi0gICAgfTsKKyAgICBlbnVtIGNs
YXNzIFN1YmZyYW1lTm9kZVJlbW92YWwgeyBEZWxldGUsIE9ycGhhbiB9OwogICAgIHZvaWQgcmVt
b3ZlTm9kZUFuZEFsbERlc2NlbmRhbnRzKFNjcm9sbGluZ1N0YXRlTm9kZSosIFN1YmZyYW1lTm9k
ZVJlbW92YWwgPSBTdWJmcmFtZU5vZGVSZW1vdmFsOjpEZWxldGUpOwogCiAgICAgdm9pZCByZWN1
cnNpdmVOb2RlV2lsbEJlUmVtb3ZlZChTY3JvbGxpbmdTdGF0ZU5vZGUqIGN1cnJOb2RlLCBTdWJm
cmFtZU5vZGVSZW1vdmFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZS5jcHAKaW5kZXggZDAwZWM1ZGQ5YjFiN2Q0YTZkNjFiZjVkMTM5YjQ5OTJlNjM3
ZDhlZi4uOTQzYWZiMWIyZTUzZDVkM2UyZThjYTc2MjUyZTQyZDYyZjhhZjcxOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTE3OSw3
ICsxNzksNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnVwZGF0ZVRyZWVGcm9tU3RhdGVOb2RlKGNv
bnN0IFNjcm9sbGluZ1N0YXRlTm9kZSogc3RhdGVOb2RlLAogICAgICAgICBpZiAocGFyZW50SXQg
IT0gbV9ub2RlTWFwLmVuZCgpKSB7CiAgICAgICAgICAgICBTY3JvbGxpbmdUcmVlTm9kZSogcGFy
ZW50ID0gcGFyZW50SXQtPnZhbHVlOwogICAgICAgICAgICAgbm9kZS0+c2V0UGFyZW50KHBhcmVu
dCk7Ci0gICAgICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKG5vZGUpOworICAgICAgICAgICAg
cGFyZW50LT5hcHBlbmRDaGlsZChub2RlLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICB9CiAg
ICAgfQogCkBAIC0xODksNyArMTg5LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjp1cGRhdGVUcmVl
RnJvbVN0YXRlTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUqIHN0YXRlTm9kZSwKICAgICBp
ZiAoYXV0byBub2RlQ2hpbGRyZW4gPSBub2RlLT5jaGlsZHJlbigpKSB7CiAgICAgICAgIGZvciAo
YXV0byYgY2hpbGRTY3JvbGxpbmdOb2RlIDogKm5vZGVDaGlsZHJlbikgewogICAgICAgICAgICAg
Y2hpbGRTY3JvbGxpbmdOb2RlLT5zZXRQYXJlbnQobnVsbHB0cik7Ci0gICAgICAgICAgICBvcnBo
YW5Ob2Rlcy5hZGQoY2hpbGRTY3JvbGxpbmdOb2RlLT5zY3JvbGxpbmdOb2RlSUQoKSwgY2hpbGRT
Y3JvbGxpbmdOb2RlKTsKKyAgICAgICAgICAgIG9ycGhhbk5vZGVzLmFkZChjaGlsZFNjcm9sbGlu
Z05vZGUtPnNjcm9sbGluZ05vZGVJRCgpLCBjaGlsZFNjcm9sbGluZ05vZGUuZ2V0KCkpOwogICAg
ICAgICB9CiAgICAgICAgIG5vZGVDaGlsZHJlbi0+Y2xlYXIoKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggNjczNGI1M2FkYWI1
YzM5OWI5MzNhYzM3N2VkZTc0YjhjMmEwNWE0ZC4uYWFmMmQ0NzhiYmI4MDA5NWY1NTk2YzkxNDYw
NmUyYjliNWQ4ZjhjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1haW5G
cmFtZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBib29sIHBpbm5lZFRvVGhlUmlnaHQs
IGJvb2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVkVG9UaGVCb3R0b20pOwogCi0gICAgdmly
dHVhbCBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9k
ZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSA9IDA7CisgICAgdmlydHVhbCBS
ZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05v
ZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpID0gMDsKIAogICAgIC8vIENhbGxlZCBhZnRlciBhIHNj
cm9sbGluZyB0cmVlIG5vZGUgaGFzIGhhbmRsZWQgYSBzY3JvbGwgYW5kIHVwZGF0ZWQgaXRzIGxh
eWVycy4KICAgICAvLyBVcGRhdGVzIEZyYW1lVmlldy9SZW5kZXJMYXllciBzY3JvbGxpbmcgc3Rh
dGUgYW5kIEdyYXBoaWNzTGF5ZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwCmluZGV4IGRlYjc4MWExYzFmOWZkZDAzM2M5OTk1
Yzk5MjFjMDcyOTkyNjlhMmEuLjBmNjYxNmQwZjNkYzM1Nzg2MzA2ZmQ0NjZmN2E2OTY0MTViMmVl
ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlTm9kZS5jcHAKQEAgLTQ1LDIyICs0NSwyMSBAQCBTY3JvbGxpbmdUcmVlTm9kZTo6flNjcm9s
bGluZ1RyZWVOb2RlKCkKIHsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlTm9kZTo6YXBwZW5kQ2hp
bGQoUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gY2hpbGROb2RlKQordm9pZCBTY3JvbGxp
bmdUcmVlTm9kZTo6YXBwZW5kQ2hpbGQoUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiYmIGNoaWxkTm9k
ZSkKIHsKICAgICBjaGlsZE5vZGUtPnNldFBhcmVudCh0aGlzKTsKIAogICAgIGlmICghbV9jaGls
ZHJlbikKLSAgICAgICAgbV9jaGlsZHJlbiA9IHN0ZDo6bWFrZV91bmlxdWU8U2Nyb2xsaW5nVHJl
ZUNoaWxkcmVuVmVjdG9yPigpOwotCi0gICAgbV9jaGlsZHJlbi0+YXBwZW5kKGNoaWxkTm9kZSk7
CisgICAgICAgIG1fY2hpbGRyZW4gPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxSZWZQdHI8U2Ny
b2xsaW5nVHJlZU5vZGU+Pj4oKTsKKyAgICBtX2NoaWxkcmVuLT5hcHBlbmQoV1RGTW92ZShjaGls
ZE5vZGUpKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlTm9kZTo6cmVtb3ZlQ2hpbGQoU2Nyb2xs
aW5nVHJlZU5vZGUqIG5vZGUpCit2b2lkIFNjcm9sbGluZ1RyZWVOb2RlOjpyZW1vdmVDaGlsZChT
Y3JvbGxpbmdUcmVlTm9kZSYgbm9kZSkKIHsKICAgICBpZiAoIW1fY2hpbGRyZW4pCiAgICAgICAg
IHJldHVybjsKIAotICAgIHNpemVfdCBpbmRleCA9IG1fY2hpbGRyZW4tPmZpbmQobm9kZSk7Cisg
ICAgc2l6ZV90IGluZGV4ID0gbV9jaGlsZHJlbi0+ZmluZCgmbm9kZSk7CiAKICAgICAvLyBUaGUg
aW5kZXggd2lsbCBiZSBub3RGb3VuZCBpZiB0aGUgbm9kZSB0byByZW1vdmUgaXMgYSBkZWVwZXIt
dGhhbi0xLWxldmVsIGRlc2NlbmRhbnQgb3IKICAgICAvLyBpZiBub2RlIGlzIHRoZSByb290IHN0
YXRlIG5vZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZU5vZGUuaAppbmRleCAzZTg2ZTNkNDc4ZDM0MDY5MzU5ZWFhNWM2YjljZmJhYzY3NWNlZDA1
Li4yZTE2MzI0NmJiOTZlMzNmZWY2MmFkYTcxYjQxYTIxMzkyMTI3OTMyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKQEAgLTYwLDEx
ICs2MCwxMCBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsaW5nVHJlZU5vZGUqIHBhcmVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFyZW50OyB9CiAgICAgdm9pZCBzZXRQYXJlbnQoU2Nyb2xsaW5nVHJlZU5v
ZGUqIHBhcmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsgfQogCi0gICAgdHlwZWRlZiBWZWN0b3I8
UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPj4gU2Nyb2xsaW5nVHJlZUNoaWxkcmVuVmVjdG9yOwot
ICAgIFNjcm9sbGluZ1RyZWVDaGlsZHJlblZlY3RvciogY2hpbGRyZW4oKSB7IHJldHVybiBtX2No
aWxkcmVuLmdldCgpOyB9Ci0gICAgCi0gICAgdm9pZCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPFNj
cm9sbGluZ1RyZWVOb2RlPik7Ci0gICAgdm9pZCByZW1vdmVDaGlsZChTY3JvbGxpbmdUcmVlTm9k
ZSopOworICAgIFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+PiogY2hpbGRyZW4oKSB7
IHJldHVybiBtX2NoaWxkcmVuLmdldCgpOyB9CisKKyAgICB2b2lkIGFwcGVuZENoaWxkKFJlZjxT
Y3JvbGxpbmdUcmVlTm9kZT4mJik7CisgICAgdm9pZCByZW1vdmVDaGlsZChTY3JvbGxpbmdUcmVl
Tm9kZSYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkdW1wKFRleHRTdHJlYW0mLCBTY3Jv
bGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7CiAKQEAgLTcyLDcgKzcxLDcgQEAg
cHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxp
bmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKICAgICBTY3JvbGxpbmdUcmVlJiBzY3JvbGxp
bmdUcmVlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxpbmdUcmVlOyB9CiAKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8U2Nyb2xsaW5nVHJlZUNoaWxkcmVuVmVjdG9yPiBtX2NoaWxkcmVuOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPj4+IG1fY2hpbGRy
ZW47CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZHVtcFByb3BlcnRpZXMoVGV4
dFN0cmVhbSYsIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdU
cmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5n
VHJlZS5jcHAKaW5kZXggYmNiNDhlNDk1YzFiMGI4OWU3NWE3YWEzM2U4NWU1OTRkN2M1ZTY4NS4u
ZjY2NGVkM2FjM2JlNTM4ZGZmMmZlNTg4MDJhMDk3N2FhMGFhMDg5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3Bw
CkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCi0gICAgOiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKHNj
cm9sbGluZ0Nvb3JkaW5hdG9yKQorVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpUaHJlYWRlZFNjcm9s
bGluZ1RyZWUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYgc2Nyb2xsaW5nQ29vcmRpbmF0b3Ip
CisgICAgOiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKCZzY3JvbGxpbmdDb29yZGluYXRvcikKIHsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRT
Y3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNj
cm9sbGluZ1RyZWUuaAppbmRleCA3MzI1NDA1OWMyZDc3MDIwNWNlZmRiZDE1MzBhYjI3OTA0YWE3
MzYzLi42ZDFkNDlkNjdlY2E1ZmE4ZDUyYTg1OGVlY2Y1ZjkzZWU5Yzk3MGRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZSgpIG92ZXJy
aWRlOwogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlKEFz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqKTsKKyAgICBleHBsaWNpdCBUaHJlYWRlZFNjcm9sbGlu
Z1RyZWUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOwogCiAgICAgdm9pZCBzY3JvbGxpbmdU
cmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9s
bFBvc2l0aW9uLCBjb25zdCBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9y
dE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb246OlN5bmMpIG92ZXJyaWRlOwogICAgIHZvaWQgY3VycmVudFNuYXBQb2ludElu
ZGljZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNp
Z25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5jcHAKaW5kZXggMTBiM2Y4NzM0NWZkYTQz
Y2NkZmU5YzE1ZmU0MTdmNDZhZjU1NDVlYS4uMWYwM2U2ODZlOWY4NzU4ZWM2NWE5YjZmOWI2MTdl
YjJmODY4YzY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9z
L1Njcm9sbGluZ1RyZWVJT1MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNwcApAQCAtNDAsMTMgKzQwLDEzIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotUmVmPFNjcm9sbGluZ1RyZWVJT1M+IFNjcm9sbGluZ1RyZWVJT1M6OmNy
ZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvcikKK1Jl
ZjxTY3JvbGxpbmdUcmVlSU9TPiBTY3JvbGxpbmdUcmVlSU9TOjpjcmVhdGUoQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvciYgc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiB7CiAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU2Nyb2xsaW5nVHJlZUlPUyhzY3JvbGxpbmdDb29yZGluYXRvcikpOwogfQogCi1T
Y3JvbGxpbmdUcmVlSU9TOjpTY3JvbGxpbmdUcmVlSU9TKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQotICAgIDogbV9zY3JvbGxpbmdDb29yZGluYXRvcihz
Y3JvbGxpbmdDb29yZGluYXRvcikKK1Njcm9sbGluZ1RyZWVJT1M6OlNjcm9sbGluZ1RyZWVJT1Mo
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYgc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCisgICAgOiBt
X3Njcm9sbGluZ0Nvb3JkaW5hdG9yKCZzY3JvbGxpbmdDb29yZGluYXRvcikKIHsKIH0KIApAQCAt
ODMsMjAgKzgzLDIxIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUlPUzo6c2Nyb2xsaW5nVHJlZU5vZGVE
aWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgY29uc3QKICAgICB9KTsKIH0KIAotUGFz
c1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gU2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRlU2Nyb2xs
aW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBu
b2RlSUQpCitSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZVNj
cm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2Rl
SUQgbm9kZUlEKQogewogICAgIHN3aXRjaCAobm9kZVR5cGUpIHsKICAgICBjYXNlIEZyYW1lU2Ny
b2xsaW5nTm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVJT1M6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICBjYXNlIE92ZXJmbG93U2Nyb2xsaW5n
Tm9kZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICBicmVhazsKICAgICBjYXNlIEZpeGVkTm9kZToKICAgICAgICAgcmV0dXJu
IFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICBjYXNl
IFN0aWNreU5vZGU6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZTo6Y3Jl
YXRlKCp0aGlzLCBub2RlSUQpOwogICAgIH0KLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3Jl
YXRlKCp0aGlzLCBub2RlSUQpOwogfQogCiBGbG9hdFJlY3QgU2Nyb2xsaW5nVHJlZUlPUzo6Zml4
ZWRQb3NpdGlvblJlY3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L2lvcy9TY3JvbGxpbmdUcmVlSU9TLmgKaW5kZXggMWE5YWFlMWI0MGM4MTI2ODM0NDg0MWNlN2Iz
MDc1ZWY3MGE3ZTU1NC4uYWVhNjliMzlmNTljOTYxNWQxODBhYWVhNmViODk3MjU5Y2RhZDk0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1Ry
ZWVJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5n
VHJlZUlPUy5oCkBAIC0yOSwzNSArMjksMzEgQEAKIAogI2luY2x1ZGUgIlNjcm9sbGluZ1N0YXRl
VHJlZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBjbGFzcyBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOwogCi1jbGFzcyBTY3JvbGxpbmdUcmVl
SU9TIDogcHVibGljIFNjcm9sbGluZ1RyZWUgeworY2xhc3MgU2Nyb2xsaW5nVHJlZUlPUyBmaW5h
bCA6IHB1YmxpYyBTY3JvbGxpbmdUcmVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNjcm9s
bGluZ1RyZWVJT1M+IGNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKik7CisgICAgc3Rh
dGljIFJlZjxTY3JvbGxpbmdUcmVlSU9TPiBjcmVhdGUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ciYpOwogICAgIHZpcnR1YWwgflNjcm9sbGluZ1RyZWVJT1MoKTsKIAotICAgIC8vIE5vIHdoZWVs
IGV2ZW50cyBvbiBpT1MKLSAgICB2b2lkIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50Jikgb3ZlcnJpZGUgeyB9Ci0gICAgRXZlbnRSZXN1bHQgdHJ5VG9IYW5kbGVXaGVl
bEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92ZXJyaWRlIHsgcmV0dXJuIERpZE5v
dEhhbmRsZUV2ZW50OyB9Ci0KLSAgICB2b2lkIGludmFsaWRhdGUoKSBvdmVycmlkZTsKLQogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBTY3JvbGxpbmdUcmVlSU9TKEFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IqKTsKLSAgICBib29sIGlzU2Nyb2xsaW5nVHJlZUlPUygpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIHRydWU7IH0KKyAgICBleHBsaWNpdCBTY3JvbGxpbmdUcmVlSU9TKEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3ImKTsKIAotICAgIFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IGNy
ZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQp
IG92ZXJyaWRlOworICAgIGJvb2wgaXNTY3JvbGxpbmdUcmVlSU9TKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gdHJ1ZTsgfQogCi0gICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3Jv
bGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBzdGQ6
Om9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5
ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpIG92
ZXJyaWRlOworICAgIC8vIE5vIHdoZWVsIGV2ZW50cyBvbiBpT1MKKyAgICB2b2lkIGhhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgZmluYWwgeyB9CisgICAgRXZlbnRS
ZXN1bHQgdHJ5VG9IYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGZp
bmFsIHsgcmV0dXJuIERpZE5vdEhhbmRsZUV2ZW50OyB9CiAKLSAgICB2b2lkIGN1cnJlbnRTbmFw
UG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQg
aG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIG92ZXJyaWRlOworICAgIHZvaWQgaW52YWxp
ZGF0ZSgpIGZpbmFsOwogCi0gICAgRmxvYXRSZWN0IGZpeGVkUG9zaXRpb25SZWN0KCkgb3ZlcnJp
ZGU7CisgICAgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShT
Y3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSBmaW5hbDsKKyAgICB2b2lkIHNjcm9s
bGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIGNvbnN0IHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZp
ZXdwb3J0T3JpZ2luLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5
ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykgZmluYWw7CisgICAgdm9pZCBjdXJyZW50U25hcFBvaW50
SW5kaWNlc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6
b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBmaW5hbDsKKyAgICBGbG9hdFJlY3QgZml4ZWRQb3Np
dGlvblJlY3QoKSBmaW5hbDsKIAogICAgIFJlZlB0cjxBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
PiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQppbmRl
eCBkNDNkOTRiMjQ3YTZlNGY5Mzk3NDE1ODI2MTk3YzJiMGFkZjA3MTQ4Li44NjExOGI0NDUwMDc5
NDZjZjBmYTc4M2M1ZDU0M2UxMTllOWViZjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCkBA
IC01NCw3ICs1NCw3IEBAIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpTY3JvbGxpbmdDb29yZGlu
YXRvck1hYyhQYWdlKiBwYWdlKQogICAgIDogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcihwYWdl
KQogICAgICwgbV9zY3JvbGxpbmdTdGF0ZVRyZWVDb21taXR0ZXJUaW1lcigqdGhpcywgJlNjcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjOjpjb21taXRUcmVlU3RhdGUpCiB7Ci0gICAgc2V0U2Nyb2xsaW5n
VHJlZShTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGUodGhpcykpOworICAgIHNldFNjcm9sbGluZ1Ry
ZWUoU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlKCp0aGlzKSk7CiB9CiAKIFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjOjp+U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuY3BwCmluZGV4IDcw
ZGJjMDZjZjAxM2JmMzFiOGRhMDdmZGUwZDM5ODhjNjFiNGQ4MGEuLjg5OWYxZTkwMTY3ZGI4Yzhl
YTFmYTZkOGVhZWY0YzcwNDExMjA1NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5jcHAKQEAgLTM0LDMwICszNCwzMSBA
QAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVmPFNjcm9sbGluZ1RyZWVNYWM+IFNj
cm9sbGluZ1RyZWVNYWM6OmNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxp
bmdDb29yZGluYXRvcikKK1JlZjxTY3JvbGxpbmdUcmVlTWFjPiBTY3JvbGxpbmdUcmVlTWFjOjpj
cmVhdGUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYgc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiB7
CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2Nyb2xsaW5nVHJlZU1hYyhzY3JvbGxpbmdDb29y
ZGluYXRvcikpOwogfQogCi1TY3JvbGxpbmdUcmVlTWFjOjpTY3JvbGxpbmdUcmVlTWFjKEFzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorU2Nyb2xsaW5nVHJl
ZU1hYzo6U2Nyb2xsaW5nVHJlZU1hYyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxp
bmdDb29yZGluYXRvcikKICAgICA6IFRocmVhZGVkU2Nyb2xsaW5nVHJlZShzY3JvbGxpbmdDb29y
ZGluYXRvcikKIHsKIH0KIAotUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gU2Nyb2xsaW5n
VHJlZU1hYzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5
cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCitSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9s
bGluZ1RyZWVNYWM6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5v
ZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQogewogICAgIHN3aXRjaCAobm9kZVR5cGUp
IHsKICAgICBjYXNlIEZyYW1lU2Nyb2xsaW5nTm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICBj
YXNlIE92ZXJmbG93U2Nyb2xsaW5nTm9kZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBicmVhazsKICAgICBjYXNlIEZpeGVk
Tm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhp
cywgbm9kZUlEKTsKICAgICBjYXNlIFN0aWNreU5vZGU6CiAgICAgICAgIHJldHVybiBTY3JvbGxp
bmdUcmVlU3RpY2t5Tm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIH0KLSAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU2Nyb2xs
aW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmgKaW5kZXggNDNh
NDZiNzdlODViNDVmZjYxY2IyYjlhNmJiYjMyYzJjMGVmZmE1Ny4uNDk5ZmMzZmYxN2JjZjk0OTBh
ODM3MjI2NDJmNmJjODNiZTAwYjdkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCkBAIC0zMSwxNCArMzEsMTQgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTY3JvbGxpbmdUcmVlTWFjIDogcHVibGljIFRo
cmVhZGVkU2Nyb2xsaW5nVHJlZSB7CitjbGFzcyBTY3JvbGxpbmdUcmVlTWFjIGZpbmFsIDogcHVi
bGljIFRocmVhZGVkU2Nyb2xsaW5nVHJlZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTY3Jv
bGxpbmdUcmVlTWFjPiBjcmVhdGUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciopOworICAgIHN0
YXRpYyBSZWY8U2Nyb2xsaW5nVHJlZU1hYz4gY3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3ImKTsKIAotICAgIFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGlu
Z1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOwot
ICAgIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBTY3JvbGxpbmdUcmVlTWFjKEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IqKTsKKyAgICBleHBsaWNpdCBTY3JvbGxpbmdUcmVlTWFjKEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3ImKTsKKworICAgIFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRl
U2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgZmlu
YWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS93
aW4vRXZlbnRIYW5kbGVyV2luLmNwcAppbmRleCA2MTYwNzA5MGQyNmM5OWMxYWUyNTNmNWE0ZWM1
ZDY2ZDUxYzNkNjE1Li4zMjQzMGM0N2I4N2QxYzA4ODQ0OWFjYmRjZDBiMzY0NzEzZjA5NDJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAKQEAgLTgxLDcg
KzgxLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OndpZGdldERpZEhhbmRsZVdoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW4KICAgICByZXR1cm4gZG93bmNhc3Q8RnJh
bWVWaWV3Pih3aWRnZXQpLmZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3
aGVlbEV2ZW50KTsKIH0KIAotYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9s
cyhLZXlib2FyZEV2ZW50KikgY29uc3QKK2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3Jt
Q29udHJvbHMoS2V5Ym9hcmRFdmVudCYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBA
IC05MiwxMCArOTIsMTIgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50QWN0aXZhdGVkVmlldyhj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KSBjb25zdAogfQogCiAjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkKLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKKworUmVmPERhdGFUcmFuc2Zlcj4gRXZlbnRI
YW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKIH0KKwogI2VuZGlmCiAKIHZv
aWQgRXZlbnRIYW5kbGVyOjpmb2N1c0RvY3VtZW50VmlldygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAppbmRleCAwNmFlZTlmOTc5NjJm
YmNhODI5Y2Y1ZTFiZTM4MjVlNmZiZDUyZGU0Li40ODJiNWRkMTM3NWI2ZmU3NzI2N2NiNjI2ZjQx
NjM2ZGY4ZjUzNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RW1iZWRkZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bWJlZGRlZE9iamVjdC5jcHAKQEAgLTYxNiw3ICs2MTYsNyBAQCB2b2lkIFJlbmRlckVtYmVkZGVk
T2JqZWN0OjpoYW5kbGVVbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvckV2ZW50KEV2ZW50KiBldmVu
dCkKICAgICAgICAgICAgIHNldFVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9ySXNQcmVzc2VkKGZh
bHNlKTsKICAgICAgICAgfQogICAgICAgICBpZiAobV9tb3VzZURvd25XYXNJblVuYXZhaWxhYmxl
UGx1Z2luSW5kaWNhdG9yICYmIGlzSW5VbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcihtb3VzZUV2
ZW50KSkgewotICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLnVuYXZhaWxhYmxl
UGx1Z2luQnV0dG9uQ2xpY2tlZCgmZWxlbWVudCwgbV9wbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNv
bik7CisgICAgICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkudW5hdmFpbGFibGVQbHVn
aW5CdXR0b25DbGlja2VkKGVsZW1lbnQsIG1fcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pOwog
ICAgICAgICB9CiAgICAgICAgIG1fbW91c2VEb3duV2FzSW5VbmF2YWlsYWJsZVBsdWdpbkluZGlj
YXRvciA9IGZhbHNlOwogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggYTFh
OTRjNjdiN2U0NTBlOWVjMDMwNWVlMDcwNTlkZjIyZWMwNzZkNC4uNjFjYWFiZjZhZmE4ZTg3MDI2
ODYxYjRmZTgwOTdjYzA5NjM1M2VlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCBSZW5kZXJMYXllckJh
Y2tpbmc6OlJlbmRlckxheWVyQmFja2luZyhSZW5kZXJMYXllciYgbGF5ZXIpCiB7CiAgICAgaWYg
KGxheWVyLmlzUm9vdExheWVyKCkpIHsKICAgICAgICAgbV9pc01haW5GcmFtZVJlbmRlclZpZXdM
YXllciA9IHJlbmRlcmVyKCkuZnJhbWUoKS5pc01haW5GcmFtZSgpOwotICAgICAgICBtX3VzaW5n
VGlsZWRDYWNoZUxheWVyID0gcmVuZGVyZXIoKS5wYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuc2hv
dWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KHJlbmRlcmVyKCkuZnJhbWUoKS52aWV3KCkp
OworICAgICAgICBtX3VzaW5nVGlsZWRDYWNoZUxheWVyID0gcmVuZGVyZXIoKS5wYWdlKCkuY2hy
b21lKCkuY2xpZW50KCkuc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KHJlbmRlcmVy
KCkudmlldygpLmZyYW1lVmlldygpKTsKICAgICB9CiAgICAgCiAgICAgY3JlYXRlUHJpbWFyeUdy
YXBoaWNzTGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMTJiNjJjOTI4N2JiZmZkOWU1Nzk4Zjc2NWQ4MmM1NzAz
NzMxZTZkZC4uNjVmZGM0ZGZkYTQ2ZmJkMjJkYmJjMzQ3YTk2YjIxYzJlZWRlYzE5NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAK
QEAgLTMxMDMsNyArMzEwMyw3IEBAIEdyYXBoaWNzTGF5ZXIqIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6dXBkYXRlTGF5ZXJGb3JIZWFkZXIoYm9vbCB3YW50c0xheWVyKQogICAgIGlmIChTY3JvbGxp
bmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxpbmdDb29y
ZGluYXRvcigpKQogICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3Um9vdExh
eWVyRGlkQ2hhbmdlKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKSk7CiAKLSAgICBwYWdlKCkuY2hy
b21lKCkuY2xpZW50KCkuZGlkQWRkSGVhZGVyTGF5ZXIobV9sYXllckZvckhlYWRlci5nZXQoKSk7
CisgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmRpZEFkZEhlYWRlckxheWVyKCptX2xheWVy
Rm9ySGVhZGVyKTsKIAogICAgIHJldHVybiBtX2xheWVyRm9ySGVhZGVyLmdldCgpOwogfQpAQCAt
MzE0MSw3ICszMTQxLDcgQEAgR3JhcGhpY3NMYXllciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1
cGRhdGVMYXllckZvckZvb3Rlcihib29sIHdhbnRzTGF5ZXIpCiAgICAgaWYgKFNjcm9sbGluZ0Nv
b3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5h
dG9yKCkpCiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdSb290TGF5ZXJE
aWRDaGFuZ2UobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpKTsKIAotICAgIHBhZ2UoKS5jaHJvbWUo
KS5jbGllbnQoKS5kaWRBZGRGb290ZXJMYXllcihtX2xheWVyRm9yRm9vdGVyLmdldCgpKTsKKyAg
ICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlkQWRkRm9vdGVyTGF5ZXIoKm1fbGF5ZXJGb3JG
b290ZXIpOwogCiAgICAgcmV0dXJuIG1fbGF5ZXJGb3JGb290ZXIuZ2V0KCk7CiB9CkBAIC0zNDYz
LDExICszNDYzLDExIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphdHRhY2hSb290TGF5
ZXIoUm9vdExheWVyQXR0YWNobWVudCBhdHRhY2htZW50KQogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgUm9vdExheWVyQXR0YWNoZWRWaWFDaHJvbWVDbGllbnQ6IHsKICAgICAgICAg
ICAgIEZyYW1lJiBmcmFtZSA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5mcmFtZSgpOwotICAg
ICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFJvb3RHcmFwaGljc0xheWVy
KCZmcmFtZSwgcm9vdEdyYXBoaWNzTGF5ZXIoKSk7CisgICAgICAgICAgICBwYWdlKCkuY2hyb21l
KCkuY2xpZW50KCkuYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoZnJhbWUsIHJvb3RHcmFwaGljc0xh
eWVyKCkpOwogICAgICAgICAgICAgaWYgKGZyYW1lLmlzTWFpbkZyYW1lKCkpIHsKICAgICAgICAg
ICAgICAgICBQYWdlT3ZlcmxheUNvbnRyb2xsZXImIHBhZ2VPdmVybGF5Q29udHJvbGxlciA9IGZy
YW1lLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpOwogICAgICAgICAgICAgICAg
IHBhZ2VPdmVybGF5Q29udHJvbGxlci53aWxsQXR0YWNoUm9vdExheWVyKCk7Ci0gICAgICAgICAg
ICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NM
YXllcigmZnJhbWUsICZwYWdlT3ZlcmxheUNvbnRyb2xsZXIudmlld092ZXJsYXlSb290TGF5ZXIo
KSk7CisgICAgICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFZpZXdP
dmVybGF5R3JhcGhpY3NMYXllcihmcmFtZSwgJnBhZ2VPdmVybGF5Q29udHJvbGxlci52aWV3T3Zl
cmxheVJvb3RMYXllcigpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CkBAIC0zNTA4LDkgKzM1MDgsOSBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6
ZGV0YWNoUm9vdExheWVyKCkKICAgICB9CiAgICAgY2FzZSBSb290TGF5ZXJBdHRhY2hlZFZpYUNo
cm9tZUNsaWVudDogewogICAgICAgICBGcmFtZSYgZnJhbWUgPSBtX3JlbmRlclZpZXcuZnJhbWVW
aWV3KCkuZnJhbWUoKTsKLSAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFJv
b3RHcmFwaGljc0xheWVyKCZmcmFtZSwgMCk7CisgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGll
bnQoKS5hdHRhY2hSb290R3JhcGhpY3NMYXllcihmcmFtZSwgbnVsbHB0cik7CiAgICAgICAgIGlm
IChmcmFtZS5pc01haW5GcmFtZSgpKQotICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVu
dCgpLmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcigmZnJhbWUsIDApOworICAgICAgICAg
ICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXll
cihmcmFtZSwgbnVsbHB0cik7CiAgICAgfQogICAgIGJyZWFrOwogICAgIGNhc2UgUm9vdExheWVy
VW5hdHRhY2hlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJN
ZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3Bw
CmluZGV4IGQyYzAyZWY5ZDYwZTA2YzY4NjY3MjNlNDc0MDczN2FkOGMwYzM4MjEuLjM3YzgzZThk
MWY1ZWJiMDU3YjExMGNjODg4MTA1NDUxMmNkNGQ0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMzcxLDcgKzM3MSw3IEBAIHZvaWQgUmVuZGVy
TWVudUxpc3Q6OnNob3dQb3B1cCgpCiAgICAgLy8gaW5zaWRlIHRoZSBzaG93UG9wdXAgY2FsbCBh
bmQgaXQgd291bGQgZmFpbC4KICAgICBjcmVhdGVJbm5lckJsb2NrKCk7CiAgICAgaWYgKCFtX3Bv
cHVwKQotICAgICAgICBtX3BvcHVwID0gZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNyZWF0
ZVBvcHVwTWVudSh0aGlzKTsKKyAgICAgICAgbV9wb3B1cCA9IGRvY3VtZW50KCkucGFnZSgpLT5j
aHJvbWUoKS5jcmVhdGVQb3B1cE1lbnUoKnRoaXMpOwogICAgIG1fcG9wdXBJc1Zpc2libGUgPSB0
cnVlOwogCiAgICAgLy8gQ29tcHV0ZSB0aGUgdG9wIGxlZnQgdGFraW5nIHRyYW5zZm9ybXMgaW50
byBhY2NvdW50LCBidXQgdXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyU2VhcmNoRmllbGQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNl
YXJjaEZpZWxkLmNwcAppbmRleCBiNDZkOGVkNzE4NjA4Y2FmZTYxNjkzZTE0YmUxM2U4NmQ0Y2E4
MjJjLi5jYTkwMDUxODRkYjI5YWM5Mjc3MGRhMTI3NTU4MTRjNjA4MDYyMWNhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKQEAgLTk3LDcgKzk3
LDcgQEAgdm9pZCBSZW5kZXJTZWFyY2hGaWVsZDo6YWRkU2VhcmNoUmVzdWx0KCkKIAogICAgIGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZlTmFtZSgpOwogICAgIGlmICghbV9zZWFy
Y2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQb3B1cCA9IHBhZ2UoKS5jaHJvbWUoKS5jcmVhdGVT
ZWFyY2hQb3B1cE1lbnUodGhpcyk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hy
b21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KCp0aGlzKTsKIAogICAgIG1fc2VhcmNoUG9wdXAt
PnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBtX3JlY2VudFNlYXJjaGVzKTsKIH0KQEAgLTEwOCw3
ICsxMDgsNyBAQCB2b2lkIFJlbmRlclNlYXJjaEZpZWxkOjpzaG93UG9wdXAoKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAgIG1fc2VhcmNoUG9wdXAg
PSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KHRoaXMpOworICAgICAgICBt
X3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNyZWF0ZVNlYXJjaFBvcHVwTWVudSgqdGhp
cyk7CiAKICAgICBpZiAoIW1fc2VhcmNoUG9wdXAtPmVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJu
OwpAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgUmVuZGVyU2VhcmNoRmllbGQ6OnZhbHVlQ2hhbmdl
ZCh1bnNpZ25lZCBsaXN0SW5kZXgsIGJvb2wgZmlyZUV2ZW50cykKICAgICAgICAgICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZlTmFtZSgpOwogICAgICAgICAgICAgaWYgKCFu
YW1lLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIGlmICghbV9zZWFyY2hQb3B1cCkKLSAg
ICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IHBhZ2UoKS5jaHJvbWUoKS5jcmVhdGVT
ZWFyY2hQb3B1cE1lbnUodGhpcyk7CisgICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAg
PSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KCp0aGlzKTsKICAgICAgICAg
ICAgICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNoZXMobmFtZSwgbV9yZWNlbnRT
ZWFyY2hlcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1l
bnQuY3BwCmluZGV4IGJlYjBhMzk1M2JjNzJmZWUxM2IzNTM4ZmU1OTdjZDE5MDlkOWQzYmUuLjQy
MDIzZmE3Njg2NTRlMTNhZjZkMzI2MjgyYWUzODE2N2FjYTlkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0FFbGVtZW50LmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIGJvb2wgU1ZHQUVsZW1lbnQ6OmlzS2V5
Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCYgZXZlbnQpIGNvbnN0CiAgICAgICAgIHJldHVy
biBTVkdFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KTsKIAogICAgIGlmIChpc0xp
bmsoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCku
dGFic1RvTGlua3MoJmV2ZW50KTsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50KCkuZnJhbWUoKS0+
ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoZXZlbnQpOwogCiAgICAgcmV0dXJuIFNWR0VsZW1l
bnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCmluZGV4IGZkNTY0YWZmMTQwNGU1ODhh
OWRjNDFhNjM2N2RiMmYwY2JkYTEyOGIuLjAwNDQwNDFiZjc1NzhjM2MyYTg2MTdiN2ZlNzY2ZmQy
Y2JjYjJkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVy
bGF5Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3Zlcmxh
eUNsaWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgTW9ja1BhZ2VPdmVybGF5Q2xpZW50OjpNb2Nr
UGFnZU92ZXJsYXlDbGllbnQoKQogUmVmPE1vY2tQYWdlT3ZlcmxheT4gTW9ja1BhZ2VPdmVybGF5
Q2xpZW50OjppbnN0YWxsT3ZlcmxheShNYWluRnJhbWUmIG1haW5GcmFtZSwgUGFnZU92ZXJsYXk6
Ok92ZXJsYXlUeXBlIG92ZXJsYXlUeXBlKQogewogICAgIGF1dG8gb3ZlcmxheSA9IFBhZ2VPdmVy
bGF5OjpjcmVhdGUoKnRoaXMsIG92ZXJsYXlUeXBlKTsKLSAgICBtYWluRnJhbWUucGFnZU92ZXJs
YXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KG92ZXJsYXkucHRyKCksIFBhZ2VPdmVy
bGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICBtYWluRnJhbWUucGFnZU92ZXJsYXlDb250
cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KG92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9k
ZTo6RG9Ob3RGYWRlKTsKIAogICAgIGF1dG8gbW9ja092ZXJsYXkgPSBNb2NrUGFnZU92ZXJsYXk6
OmNyZWF0ZShvdmVybGF5LnB0cigpKTsKICAgICBtX292ZXJsYXlzLmFkZChtb2NrT3ZlcmxheS5w
dHIoKSk7CkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgTW9ja1BhZ2VPdmVybGF5Q2xpZW50Ojp1bmlu
c3RhbGxBbGxPdmVybGF5cygpCiAgICAgICAgIFJlZlB0cjxNb2NrUGFnZU92ZXJsYXk+IG1vY2tP
dmVybGF5ID0gbV9vdmVybGF5cy50YWtlQW55KCk7CiAgICAgICAgIFBhZ2VPdmVybGF5Q29udHJv
bGxlciogb3ZlcmxheUNvbnRyb2xsZXIgPSBtb2NrT3ZlcmxheS0+b3ZlcmxheSgpLT5jb250cm9s
bGVyKCk7CiAgICAgICAgIEFTU0VSVChvdmVybGF5Q29udHJvbGxlcik7Ci0gICAgICAgIG92ZXJs
YXlDb250cm9sbGVyLT51bmluc3RhbGxQYWdlT3ZlcmxheShtb2NrT3ZlcmxheS0+b3ZlcmxheSgp
LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgICAgIG92ZXJsYXlDb250
cm9sbGVyLT51bmluc3RhbGxQYWdlT3ZlcmxheSgqbW9ja092ZXJsYXktPm92ZXJsYXkoKSwgUGFn
ZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZVF1b3Rh
TWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0
aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0KaW5kZXggM2IzYzNhNDI5NGMxN2M1NzhiODE5MTVkYTBi
MWM0ZjhiZmEyM2ViYS4uMGQ0ODJiNGRkOTI1YmMwYjhiOGQ0MjYxZWZjMmM3YTY1NTc2ZTA5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRp
b25DYWNoZVF1b3RhTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLm1tCkBAIC01OSw3ICs1OSw5IEBA
IC0gKHVuc2lnbmVkIGxvbmcgbG9uZyl1c2FnZQogLSAodW5zaWduZWQgbG9uZyBsb25nKXF1b3Rh
CiB7CiAgICAgbG9uZyBsb25nIHF1b3RhOwotICAgIGlmICh3ZWJBcHBsaWNhdGlvbkNhY2hlU3Rv
cmFnZSgpLmNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKFtfb3JpZ2luIF9jb3JlXSwgcXVvdGEpKQor
ICAgIGlmICghX29yaWdpbikKKyAgICAgICAgcmV0dXJuIDA7CisgICAgaWYgKHdlYkFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlKCkuY2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oKltfb3JpZ2luIF9jb3Jl
XSwgcXVvdGEpKQogICAgICAgICByZXR1cm4gcXVvdGE7CiAgICAgcmV0dXJuIDA7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmlu
ZGV4IGY0ZjA5NmM1ZDY0NzNlYmM2ZTdhYmQ1ODNiNmRmZWY0YWFhNGQxNTkuLjdkOGYzYjg3Zjdl
MzI0NTE2ZGIwNjE1YmU1OGQ4ZDkwNTU4MjRiOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC01OSw3ICs1OSw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBmb2N1c2VkRWxlbWVudENoYW5nZWQoV2ViQ29yZTo6RWxlbWVudCop
IG92ZXJyaWRlOwogICAgIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSop
IGZpbmFsOwogCi0gICAgV2ViQ29yZTo6UGFnZSogY3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1l
KiwgY29uc3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRv
d0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpIGZpbmFsOworICAg
IFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNv
cmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNv
bnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbDsKICAgICB2b2lkIHNob3coKSBm
aW5hbDsKIAogICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBmaW5hbDsKQEAgLTc5LDE2ICs3OSwxNiBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRSZXNpemFibGUoYm9vbCkgZmluYWw7CiAKLSAgICB2
b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VM
ZXZlbCwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVu
c2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgV1RGOjpTdHJpbmcmIHNvdXJjZVVSTCkgZmluYWw7
CisgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpN
ZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwg
dW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgZmluYWw7CiAK
ICAgICBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpIGZpbmFsOwotICAgIGJv
b2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdl
LCBXZWJDb3JlOjpGcmFtZSopIGZpbmFsOworICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKIAog
ICAgIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgZmluYWw7CiAKLSAgICB2b2lkIHJ1bkphdmFTY3Jp
cHRBbGVydChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7Ci0g
ICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6
U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6
OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBk
ZWZhdWx0VmFsdWUsIFdURjo6U3RyaW5nJiByZXN1bHQpIG92ZXJyaWRlOworICAgIHZvaWQgcnVu
SmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7
CisgICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0
cmluZyYpIG92ZXJyaWRlOworICAgIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpG
cmFtZSYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUs
IFN0cmluZyYgcmVzdWx0KSBvdmVycmlkZTsKIAogICAgIGJvb2wgc3VwcG9ydHNJbW1lZGlhdGVJ
bnZhbGlkYXRpb24oKSBmaW5hbDsKICAgICB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CkBAIC0xMDUsMjkgKzEwNSwyOSBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29u
c3QgZmluYWw7Ci0gICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKiwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29udGVudHNT
aXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25z
dCBmaW5hbDsKICAgICB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JikgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgV1RG
OjpTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3Ry
aW5nJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29u
c3QgZmluYWwgeyB9CiAgICAgYm9vbCBzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1
dHRvbihXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlS
ZWFzb24pIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlj
a2VkKFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1
Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOworICAgIHZvaWQgdW5hdmFpbGFi
bGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQmLCBXZWJDb3JlOjpSZW5kZXJF
bWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOwog
ICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJl
c3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIGZpbmFsOwogCi0gICAgdm9pZCBzZXRUb29s
VGlwKGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7Cisg
ICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24p
IGZpbmFsOwogCi0gICAgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopIGZpbmFsOwotICAgIHZv
aWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJp
bmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKKyAgICB2
b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CisgICAgdm9pZCBleGNlZWRlZERhdGFi
YXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2Vi
Q29yZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKICAgICB2b2lkIHJlYWNoZWRNYXhBcHBDYWNo
ZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkgZmluYWw7Ci0gICAgdm9pZCByZWFjaGVkQXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0
b3RhbFNwYWNlTmVlZGVkKSBmaW5hbDsKKyAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hl
T3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90IHRvdGFsU3BhY2VO
ZWVkZWQpIGZpbmFsOwogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIHZvaWQg
YW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKSBmaW5hbDsKICNlbmRpZgogCiAgICAgdm9pZCBydW5P
cGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciYpIG92ZXJyaWRl
OwotICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+Jiwg
V2ViQ29yZTo6RmlsZUljb25Mb2FkZXImKSBmaW5hbDsKKyAgICB2b2lkIGxvYWRJY29uRm9yRmls
ZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpIGZpbmFs
OwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3Jl
OjpDdXJzb3ImKSBmaW5hbDsKQEAgLTEzNSw3ICsxMzUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2Vy
Q2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29s
b3JDaG9vc2VyQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKQEAgLTE1MSwxNiArMTUxLDE2IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBlbmFibGVTdWRkZW5UZXJtaW5hdGlvbigpIGZpbmFsOwogICAgIHZvaWQgZGlz
YWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkgZmluYWw7CiAKLSAgICBib29sIHNob3VsZFJlcGxhY2VX
aXRoR2VuZXJhdGVkRmlsZUZvclVwbG9hZChjb25zdCBXVEY6OlN0cmluZyYgcGF0aCwgV1RGOjpT
dHJpbmcgJmdlbmVyYXRlZEZpbGVuYW1lKSBmaW5hbDsKLSAgICBXVEY6OlN0cmluZyBnZW5lcmF0
ZVJlcGxhY2VtZW50RmlsZShjb25zdCBXVEY6OlN0cmluZyYgcGF0aCkgZmluYWw7CisgICAgYm9v
bCBzaG91bGRSZXBsYWNlV2l0aEdlbmVyYXRlZEZpbGVGb3JVcGxvYWQoY29uc3QgU3RyaW5nJiBw
YXRoLCBTdHJpbmcgJmdlbmVyYXRlZEZpbGVuYW1lKSBmaW5hbDsKKyAgICBTdHJpbmcgZ2VuZXJh
dGVSZXBsYWNlbWVudEZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKSBmaW5hbDsKIAotICAgIHZvaWQg
ZWxlbWVudERpZEZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBvdmVycmlkZTsKLSAgICB2b2lk
IGVsZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBvdmVycmlkZTsKKyAgICB2b2lk
IGVsZW1lbnREaWRGb2N1cyhXZWJDb3JlOjpFbGVtZW50Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBl
bGVtZW50RGlkQmx1cihXZWJDb3JlOjpFbGVtZW50Jikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNo
b3VsZFBhaW50RW50aXJlQ29udGVudHMoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgYXR0YWNo
Um9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
Kikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2Vi
Q29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7CisgICAgdm9pZCBh
dHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXll
cihXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKICAgICB2
b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSBmaW5hbDsKICAgICB2
b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgZmluYWw7CiAKQEAgLTE4OSwxNiAr
MTg5LDE2IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
LSAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxl
bWVudCosIGJvb2wgd2l0aEtleWJvYXJkKSBmaW5hbDsKLSAgICB2b2lkIGVudGVyRnVsbFNjcmVl
bkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopIGZpbmFsOwotICAgIHZvaWQgZXhpdEZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBmaW5hbDsKKyAgICBib29sIHN1cHBv
cnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCYsIGJvb2wgd2l0
aEtleWJvYXJkKSBmaW5hbDsKKyAgICB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2Vi
Q29yZTo6RWxlbWVudCYpIGZpbmFsOworICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKICNlbmRpZgogCiAgICAgYm9vbCBzZWxlY3RJdGVt
V3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIG92ZXJyaWRlOwogICAgIGJvb2wgc2VsZWN0SXRl
bUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpIG92ZXJyaWRlOwogICAgIGJv
b2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBmaW5hbDsKLSAgICBSZWZQdHI8V2ViQ29yZTo6UG9w
dXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2Vh
cmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IG92ZXJyaWRlOwor
ICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQ
b3B1cE1lbnVDbGllbnQmKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xp
ZW50JikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHdoZWVsRXZlbnRIYW5kbGVyc0NoYW5n
ZWQoYm9vbCkgZmluYWwgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCAwZWNmZjhkNWZhYjFlZTVmYzU1MjkyZGMw
NGE4MDVhZDJjY2NkZWQ4Li5lNDk2N2I5ZjhjMzdjNjI1YjUwNTViYzQyOTFhNzU5NTlmMDVmYWQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJXZWJDaHJvbWVDbGllbnQuaCIK
IAogI2ltcG9ydCAiRE9NRWxlbWVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01IVE1MSW5wdXRF
bGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgogI2ltcG9ydCAi
UG9wdXBNZW51TWFjLmgiCiAjaW1wb3J0ICJTZWFyY2hQb3B1cE1lbnVNYWMuaCIKQEAgLTIyMiw3
ICsyMjMsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEVsZW1lbnRDaGFuZ2VkKEVs
ZW1lbnQqIGVsZW1lbnQpCiAgICAgaWYgKCFpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgSFRNTElucHV0RWxlbWVudCYgaW5wdXRFbGVtZW50ID0g
ZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpOworICAgIGF1dG8mIGlucHV0RWxl
bWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KTsKICAgICBpZiAoIWlu
cHV0RWxlbWVudC5pc1RleHQoKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC0yMzMsMTQgKzIzNCwx
NCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSopCiB7
CiB9CiAKLVBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwg
Y29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywg
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpCitQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdp
bmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dG
ZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKQogewogICAgIGlkIGRl
bGVnYXRlID0gW21fd2ViVmlldyBVSURlbGVnYXRlXTsKICAgICBXZWJWaWV3ICpuZXdXZWJWaWV3
OwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQo
KSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkp
Ci0gICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7Cisg
ICAgaWYgKGZyYW1lLmRvY3VtZW50KCkgJiYgZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVu
dEZ1bGxTY3JlZW5FbGVtZW50KCkpCisgICAgICAgIGZyYW1lLmRvY3VtZW50KCktPndlYmtpdENh
bmNlbEZ1bGxTY3JlZW4oKTsKICNlbmRpZgogICAgIAogICAgIGlmIChbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OmNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdDp3
aW5kb3dGZWF0dXJlczopXSkgewpAQCAtNDY4LDkgKzQ2OSw5IEBAIGJvb2wgV2ViQ2hyb21lQ2xp
ZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKQogICAgIHJldHVybiBbW21fd2Vi
VmlldyBVSURlbGVnYXRlXSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6cnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTopXTsK
IH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKiBmcmFtZSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50
OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFt
ZSYgZnJhbWUpCiB7Ci0gICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVhbih0
cnVlLCBtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6KSwgbWVzc2FnZSwga2l0KGZyYW1lKSk7
CisgICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVhbih0cnVlLCBtX3dlYlZp
ZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNz
YWdlOmluaXRpYXRlZEJ5RnJhbWU6KSwgbWVzc2FnZSwga2l0KCZmcmFtZSkpOwogfQogCiB2b2lk
IFdlYkNocm9tZUNsaWVudDo6Y2xvc2VXaW5kb3dTb29uKCkKQEAgLTQ5MywxMiArNDk0LDEyIEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjbG9zZVdpbmRvd1Nvb24oKQogICAgIFttX3dlYlZpZXcg
cGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihfY2xvc2VXaW5kb3cpIHdpdGhPYmplY3Q6bmlsIGFm
dGVyRGVsYXk6MC4wXTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRB
bGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCiB7CiAgICAgaWQgZGVsZWdhdGUgPSBbbV93ZWJWaWV3IFVJRGVsZWdhdGVdOwogICAg
IFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVs
V2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTopOwogICAgIGlmIChbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkgewotICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZp
ZXcsIHNlbGVjdG9yLCBtZXNzYWdlLCBraXQoZnJhbWUpKTsKKyAgICAgICAgQ2FsbFVJRGVsZWdh
dGUobV93ZWJWaWV3LCBzZWxlY3RvciwgbWVzc2FnZSwga2l0KCZmcmFtZSkpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC01MTAsMTIgKzUxMSwxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
KQogICAgIH0KIH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJt
KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQorYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQogewogICAgIGlkIGRlbGVnYXRlID0gW21fd2ViVmlldyBVSURlbGVnYXRlXTsKICAgICBT
RUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpydW5KYXZhU2NyaXB0Q29uZmlybVBhbmVs
V2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTopOwogICAgIGlmIChbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkKLSAgICAgICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0
dXJuaW5nQm9vbGVhbihOTywgbV93ZWJWaWV3LCBzZWxlY3RvciwgbWVzc2FnZSwga2l0KGZyYW1l
KSk7CisgICAgICAgIHJldHVybiBDYWxsVUlEZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4oTk8sIG1f
d2ViVmlldywgc2VsZWN0b3IsIG1lc3NhZ2UsIGtpdCgmZnJhbWUpKTsKIAogICAgIC8vIENhbGwg
dGhlIG9sZCB2ZXJzaW9uIG9mIHRoZSBkZWxlZ2F0ZSBtZXRob2QgaWYgaXQgaXMgaW1wbGVtZW50
ZWQuCiAgICAgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpydW5KYXZhU2NyaXB0Q29uZmly
bVBhbmVsV2l0aE1lc3NhZ2U6KTsKQEAgLTUyNSwxMyArNTI2LDEzIEBAIGJvb2wgV2ViQ2hyb21l
Q2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKICAgICByZXR1cm4gTk87CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5K
YXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0
IFN0cmluZyYgZGVmYXVsdFRleHQsIFN0cmluZyYgcmVzdWx0KQorYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHByb21w
dCwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VGV4dCwgU3RyaW5nJiByZXN1bHQpCiB7CiAgICAgaWQg
ZGVsZWdhdGUgPSBbbV93ZWJWaWV3IFVJRGVsZWdhdGVdOwogICAgIFNFTCBzZWxlY3RvciA9IEBz
ZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6ZGVm
YXVsdFRleHQ6aW5pdGlhdGVkQnlGcmFtZTopOwogICAgIE5TU3RyaW5nICpkZWZhdWx0U3RyaW5n
ID0gZGVmYXVsdFRleHQ7CiAgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6c2Vs
ZWN0b3JdKSB7Ci0gICAgICAgIHJlc3VsdCA9IChOU1N0cmluZyAqKUNhbGxVSURlbGVnYXRlKG1f
d2ViVmlldywgc2VsZWN0b3IsIHByb21wdCwgZGVmYXVsdFN0cmluZywga2l0KGZyYW1lKSk7Cisg
ICAgICAgIHJlc3VsdCA9IChOU1N0cmluZyAqKUNhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2Vs
ZWN0b3IsIHByb21wdCwgZGVmYXVsdFN0cmluZywga2l0KCZmcmFtZSkpOwogICAgICAgICByZXR1
cm4gIXJlc3VsdC5pc051bGwoKTsKICAgICB9CiAKQEAgLTU0Miw3ICs1NDMsNyBAQCBib29sIFdl
YkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0
cmluZyYgcHJvbXB0LCBjbwogICAgICAgICByZXR1cm4gIXJlc3VsdC5pc051bGwoKTsKICAgICB9
CiAKLSAgICByZXN1bHQgPSBbW1dlYkRlZmF1bHRVSURlbGVnYXRlIHNoYXJlZFVJRGVsZWdhdGVd
IHdlYlZpZXc6bV93ZWJWaWV3IHJ1bkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6
cHJvbXB0IGRlZmF1bHRUZXh0OmRlZmF1bHRTdHJpbmcgaW5pdGlhdGVkQnlGcmFtZTpraXQoZnJh
bWUpXTsKKyAgICByZXN1bHQgPSBbW1dlYkRlZmF1bHRVSURlbGVnYXRlIHNoYXJlZFVJRGVsZWdh
dGVdIHdlYlZpZXc6bV93ZWJWaWV3IHJ1bkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9t
cHQ6cHJvbXB0IGRlZmF1bHRUZXh0OmRlZmF1bHRTdHJpbmcgaW5pdGlhdGVkQnlGcmFtZTpraXQo
JmZyYW1lKV07CiAgICAgcmV0dXJuICFyZXN1bHQuaXNOdWxsKCk7CiB9CiAKQEAgLTYwNiw3ICs2
MDcsNyBAQCBQbGF0Zm9ybVBhZ2VDbGllbnQgV2ViQ2hyb21lQ2xpZW50OjpwbGF0Zm9ybVBhZ2VD
bGllbnQoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6
Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNvbnN0IEludFNpemUmKSBjb25zdAordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUmLCBjb25zdCBJbnRTaXpl
JikgY29uc3QKIHsKIH0KIApAQCAtNjM1LDEyICs2MzYsMTIgQEAgYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFJlbmRlckVtYmVkZGVk
T2JqZWMKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVyRW1iZWRk
ZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1Z2luQnV0
dG9uQ2xpY2tlZChFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2lu
VW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0CiB7
Ci0gICAgQVNTRVJUKGVsZW1lbnQtPmhhc1RhZ05hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50LT5o
YXNUYWdOYW1lKGVtYmVkVGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGFwcGxldFRhZykpOwor
ICAgIEFTU0VSVChlbGVtZW50Lmhhc1RhZ05hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUoZW1iZWRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShhcHBsZXRUYWcpKTsKIAogICAg
IEFTU0VSVChwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiA9PSBSZW5kZXJFbWJlZGRlZE9iamVj
dDo6UGx1Z2luTWlzc2luZyk7Ci0gICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0
b3Iod2ViVmlldzpkaWRQcmVzc01pc3NpbmdQbHVnaW5CdXR0b246KSwga2l0KGVsZW1lbnQpKTsK
KyAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmRpZFByZXNz
TWlzc2luZ1BsdWdpbkJ1dHRvbjopLCBraXQoJmVsZW1lbnQpKTsKIH0KIAogdm9pZCBXZWJDaHJv
bWVDbGllbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJl
c3VsdCwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykKQEAgLTY1NywyMSArNjU4LDIxIEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERp
cmVjdGlvbikKICAgICAgICAgWyhXZWJIVE1MVmlldyAqKWRvY3VtZW50VmlldyBfc2V0VG9vbFRp
cDp0b29sVGlwXTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lKiBmcmFt
ZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSYgZnJhbWUpCiB7Ci0gICAgV2Vi
RnJhbWUgKndlYkZyYW1lID0ga2l0KGZyYW1lKTsKKyAgICBXZWJGcmFtZSAqd2ViRnJhbWUgPSBr
aXQoJmZyYW1lKTsKICAgICBpZiAoW1ttX3dlYlZpZXcgVUlEZWxlZ2F0ZV0gcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnByaW50RnJhbWU6KV0pCiAgICAgICAgIENhbGxVSURl
bGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6cHJpbnRGcmFtZTopLCB3ZWJGcmFt
ZSk7CiAgICAgZWxzZQogICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rv
cih3ZWJWaWV3OnByaW50RnJhbWVWaWV3OiksIFt3ZWJGcmFtZSBmcmFtZVZpZXddKTsKIH0KIAot
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUs
IGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMpCit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lJiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiBkYXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscykKIHsKICAgICBCRUdJTl9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CiAKLSAgICBXZWJTZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tX
ZWJTZWN1cml0eU9yaWdpbiBhbGxvY10gX2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOiZm
cmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKV07Ci0gICAgQ2FsbFVJRGVsZWdhdGUo
bV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpmcmFtZTpleGNlZWRlZERhdGFiYXNlUXVvdGFG
b3JTZWN1cml0eU9yaWdpbjpkYXRhYmFzZTopLCBraXQoZnJhbWUpLCB3ZWJPcmlnaW4sIChOU1N0
cmluZyAqKWRhdGFiYXNlTmFtZSk7CisgICAgV2ViU2VjdXJpdHlPcmlnaW4gKndlYk9yaWdpbiA9
IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdp
bjomZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKV07CisgICAgQ2FsbFVJRGVsZWdh
dGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpmcmFtZTpleGNlZWRlZERhdGFiYXNlUXVv
dGFGb3JTZWN1cml0eU9yaWdpbjpkYXRhYmFzZTopLCBraXQoJmZyYW1lKSwgd2ViT3JpZ2luLCAo
TlNTdHJpbmcgKilkYXRhYmFzZU5hbWUpOwogICAgIFt3ZWJPcmlnaW4gcmVsZWFzZV07CiAKICAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpAQCAtNjgyLDExICs2ODMsMTEgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRl
ZCkKICAgICAvLyBGSVhNRTogRnJlZSBzb21lIHNwYWNlLgogfQogCi12b2lkIFdlYkNocm9tZUNs
aWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiog
b3JpZ2luLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiYgb3JpZ2lu
LCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENF
UFRJT05TOwogCi0gICAgV2ViU2VjdXJpdHlPcmlnaW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJp
dHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdpbjpvcmlnaW5dOwor
ICAgIFdlYlNlY3VyaXR5T3JpZ2luICp3ZWJPcmlnaW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFs
bG9jXSBfaW5pdFdpdGhXZWJDb3JlU2VjdXJpdHlPcmlnaW46Jm9yaWdpbl07CiAgICAgQ2FsbFVJ
RGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpleGNlZWRlZEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YUZvclNlY3VyaXR5T3JpZ2luOnRvdGFsU3BhY2VOZWVkZWQ6KSwgd2Vi
T3JpZ2luLCBzdGF0aWNfY2FzdDxOU1VJbnRlZ2VyPih0b3RhbFNwYWNlTmVlZGVkKSk7CiAgICAg
W3dlYk9yaWdpbiByZWxlYXNlXTsKIApAQCAtNzA1LDEyICs3MDYsMTQgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmFubm90YXRlZFJlZ2lvbnNDaGFuZ2VkKCkKICNlbmRpZgogCiAjaWYgRU5BQkxF
KElOUFVUX1RZUEVfQ09MT1IpCi1zdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCwg
Y29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKKworc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nl
cj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50
JiBjbGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCiB7CiAgICAgLy8gRklYTUU6IElt
cGxlbWVudCA8aW5wdXQgdHlwZT0nY29sb3InPiBmb3IgV0sxIChCdWcgMTE5MDk0KS4KICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KKwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQpAQCAtODQ4LDE0ICs4NTEsMTQgQEAgU3RyaW5nIFdl
YkNocm9tZUNsaWVudDo6Z2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoY29uc3QgU3RyaW5nJiBwYXRo
KQogICAgIHJldHVybiBbW21fd2ViVmlldyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzpt
X3dlYlZpZXcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGU6cGF0aF07CiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjplbGVtZW50RGlkRm9jdXMoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9jdXMoV2ViQ29yZTo6RWxlbWVudCYgZWxl
bWVudCkKIHsKLSAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3
OmZvcm1EaWRGb2N1c05vZGU6KSwga2l0KGNvbnN0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KG5vZGUp
KSk7CisgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpmb3Jt
RGlkRm9jdXNOb2RlOiksIGtpdCgmZWxlbWVudCkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVu
dDo6ZWxlbWVudERpZEJsdXIoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3ZvaWQgV2ViQ2hy
b21lQ2xpZW50OjplbGVtZW50RGlkQmx1cihXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50KQogewot
ICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6Zm9ybURpZEJs
dXJOb2RlOiksIGtpdChjb25zdF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihub2RlKSkpOworICAgIENh
bGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6Zm9ybURpZEJsdXJOb2Rl
OiksIGtpdCgmZWxlbWVudCkpOwogfQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRl
bVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQpAQCAtODc0LDE5ICs4NzcsMTkgQEAgYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6Omhhc09wZW5lZFBvcHVwKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRl
UG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUmVmUHRy
PFdlYkNvcmU6OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoV2Vi
Q29yZTo6UG9wdXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7CiAjaWYgIVBMQVRGT1JNKElP
UykKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudU1hYyhjbGllbnQpKTsKKyAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBQb3B1cE1lbnVNYWMoJmNsaWVudCkpOwogI2Vsc2UKICAgICBy
ZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogfQogCi1SZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1
cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCYgY2xpZW50KSBjb25zdAogewogI2lmICFQTEFURk9STShJT1MpCi0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVNYWMoY2xpZW50KSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU2VhcmNoUG9wdXBNZW51TWFjKCZjbGllbnQpKTsKICNlbHNlCiAgICAg
cmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKQEAgLTkwMiwxMSArOTA1LDExIEBAIGJvb2wgV2ViQ2hy
b21lQ2xpZW50OjpzaG91bGRQYWludEVudGlyZUNvbnRlbnRzKCkgY29uc3QKICNlbmRpZgogfQog
Ci12b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZy
YW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lJiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3Jh
cGhpY3NMYXllcikKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBO
U1ZpZXcgKmRvY3VtZW50VmlldyA9IFtba2l0KGZyYW1lKSBmcmFtZVZpZXddIGRvY3VtZW50Vmll
d107CisgICAgTlNWaWV3ICpkb2N1bWVudFZpZXcgPSBbW2tpdCgmZnJhbWUpIGZyYW1lVmlld10g
ZG9jdW1lbnRWaWV3XTsKICAgICBpZiAoIVtkb2N1bWVudFZpZXcgaXNLaW5kT2ZDbGFzczpbV2Vi
SFRNTFZpZXcgY2xhc3NdXSkgewogICAgICAgICAvLyBXZSBzaG91bGQgbmV2ZXIgYmUgYXR0YWNo
aW5nIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhIFdlYkhUTUxWaWV3LgogICAgICAgICBBU1NFUlQoIWdy
YXBoaWNzTGF5ZXIpOwpAQCAtOTIxLDcgKzkyNCw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojph
dHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBo
CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIq
KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihG
cmFtZSYsIEdyYXBoaWNzTGF5ZXIqKQogewogICAgIC8vIEZJWE1FOiBJZiB3ZSB3YW50IHZpZXct
cmVsYXRpdmUgcGFnZSBvdmVybGF5cyBpbiBMZWdhY3kgV2ViS2l0LCB0aGlzIHdvdWxkIGJlIHRo
ZSBwbGFjZSB0byBob29rIHRoZW0gdXAuCiB9CkBAIC05NDEsNiArOTQ0LDcgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkKIH0KIAogI2lmIEVO
QUJMRShWSURFTykKKwogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2Ny
ZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkKIHsKICNpZiBQ
TEFURk9STShJT1MpCkBAIC05NjUsNyArOTY5LDEwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpl
eGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1l
CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsgICAgCiB9CiAKLSNpZiBQTEFURk9STShN
QUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyNlbmRpZiAvLyBFTkFCTEUo
VklERU8pCisKKyNpZiBFTkFCTEUoVklERU8pICYmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJ
REVPX1BSRVNFTlRBVElPTl9NT0RFKQorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VXBQbGF5
YmFja0NvbnRyb2xzTWFuYWdlcihIVE1MTWVkaWFFbGVtZW50JiBlbGVtZW50KQogewogICAgIFtt
X3dlYlZpZXcgX3NldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXJGb3JNZWRpYUVsZW1lbnQ6ZWxl
bWVudF07CkBAIC05NzUsNTQgKzk4Miw1NSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xlYXJQ
bGF5YmFja0NvbnRyb2xzTWFuYWdlcigpCiB7CiAgICAgW21fd2ViVmlldyBfY2xlYXJQbGF5YmFj
a0NvbnRyb2xzTWFuYWdlcl07CiB9Ci0jZW5kaWYgLy8gUExBVEZPUk0oTUFDKQotI2VuZGlmIC8v
IEVOQUJMRShWSURFTykKKworI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAK
LWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0
IEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgd2l0aEtleWJvYXJkKQorYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCwg
Ym9vbCB3aXRoS2V5Ym9hcmQpCiB7CiAgICAgU0VMIHNlbGVjdG9yID0gQHNlbGVjdG9yKHdlYlZp
ZXc6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDp3aXRoS2V5Ym9hcmQ6KTsKICAgICBpZiAo
W1ttX3dlYlZpZXcgVUlEZWxlZ2F0ZV0gcmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkKLSAg
ICAgICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVhbihmYWxzZSwgbV93ZWJW
aWV3LCBzZWxlY3Rvciwga2l0KGNvbnN0X2Nhc3Q8V2ViQ29yZTo6RWxlbWVudCo+KGVsZW1lbnQp
KSwgd2l0aEtleWJvYXJkKTsKKyAgICAgICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0dXJuaW5n
Qm9vbGVhbihmYWxzZSwgbV93ZWJWaWV3LCBzZWxlY3Rvciwga2l0KGNvbnN0X2Nhc3Q8V2ViQ29y
ZTo6RWxlbWVudCo+KCZlbGVtZW50KSksIHdpdGhLZXlib2FyZCk7CiAjaWYgIVBMQVRGT1JNKElP
UykKLSAgICByZXR1cm4gW21fd2ViVmlldyBfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDpj
b25zdF9jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPihlbGVtZW50KSB3aXRoS2V5Ym9hcmQ6d2l0aEtl
eWJvYXJkXTsKKyAgICByZXR1cm4gW21fd2ViVmlldyBfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxl
bWVudDpjb25zdF9jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPigmZWxlbWVudCkgd2l0aEtleWJvYXJk
OndpdGhLZXlib2FyZF07CiAjZWxzZQogICAgIHJldHVybiBOTzsKICNlbmRpZgogfQogCi12b2lk
IFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVt
ZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxl
bWVudCYgZWxlbWVudCkKIHsKICAgICBTRUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpl
bnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50Omxpc3RlbmVyOik7CiAgICAgaWYgKFtbbV93ZWJWaWV3
IFVJRGVsZWdhdGVdIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rvcl0pIHsKLSAgICAgICAgV2Vi
S2l0RnVsbFNjcmVlbkxpc3RlbmVyKiBsaXN0ZW5lciA9IFtbV2ViS2l0RnVsbFNjcmVlbkxpc3Rl
bmVyIGFsbG9jXSBpbml0V2l0aEVsZW1lbnQ6ZWxlbWVudF07Ci0gICAgICAgIENhbGxVSURlbGVn
YXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIGtpdChlbGVtZW50KSwgbGlzdGVuZXIpOworICAgICAg
ICBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIqIGxpc3RlbmVyID0gW1tXZWJLaXRGdWxsU2NyZWVu
TGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoRWxlbWVudDomZWxlbWVudF07CisgICAgICAgIENhbGxV
SURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIGtpdCgmZWxlbWVudCksIGxpc3RlbmVyKTsK
ICAgICAgICAgW2xpc3RlbmVyIHJlbGVhc2VdOwogICAgIH0KICNpZiAhUExBVEZPUk0oSU9TKQog
ICAgIGVsc2UKLSAgICAgICAgW21fd2ViVmlldyBfZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDpl
bGVtZW50XTsKKyAgICAgICAgW21fd2ViVmlldyBfZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDom
ZWxlbWVudF07CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2Ny
ZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4
aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogewogICAgIFNFTCBzZWxl
Y3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDpsaXN0ZW5l
cjopOwogICAgIGlmIChbW21fd2ViVmlldyBVSURlbGVnYXRlXSByZXNwb25kc1RvU2VsZWN0b3I6
c2VsZWN0b3JdKSB7Ci0gICAgICAgIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciogbGlzdGVuZXIg
PSBbW1dlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhFbGVtZW50OmVsZW1l
bnRdOwotICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBraXQoZWxl
bWVudCksIGxpc3RlbmVyKTsKKyAgICAgICAgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyKiBsaXN0
ZW5lciA9IFtbV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aEVsZW1lbnQ6
JmVsZW1lbnRdOworICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBr
aXQoJmVsZW1lbnQpLCBsaXN0ZW5lcik7CiAgICAgICAgIFtsaXN0ZW5lciByZWxlYXNlXTsKICAg
ICB9CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBlbHNlCi0gICAgICAgIFttX3dlYlZpZXcgX2V4
aXRGdWxsU2NyZWVuRm9yRWxlbWVudDplbGVtZW50XTsKKyAgICAgICAgW21fd2ViVmlldyBfZXhp
dEZ1bGxTY3JlZW5Gb3JFbGVtZW50OiZlbGVtZW50XTsKICNlbmRpZgogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogCiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCisKIGJv
b2wgV2ViQ2hyb21lQ2xpZW50Ojp3cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
a2V5LCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXkpIGNvbnN0CiB7CiAgICAgVmVjdG9yPHVp
bnQ4X3Q+IG1hc3RlcktleTsKQEAgLTEwNDgsOSArMTA1NiwxMSBAQCBib29sIFdlYkNocm9tZUNs
aWVudDo6dW53cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgd3JhcHBlZEtleSwg
VmVjdG9yPAogCiAgICAgcmV0dXJuIHVud3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkobWFzdGVyS2V5
LCB3cmFwcGVkS2V5LCBrZXkpOwogfQorCiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NP
TlRST0xTKQorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6aGFuZGxlU2VsZWN0aW9uU2VydmljZUNs
aWNrKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiB0ZWxlcGhvbmVOdW1iZXJzLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQpCiB7
CiAgICAgW21fd2ViVmlldyBfc2VsZWN0aW9uU2VydmljZUNvbnRyb2xsZXJdLmhhbmRsZVNlbGVj
dGlvblNlcnZpY2VDbGljayhzZWxlY3Rpb24sIHRlbGVwaG9uZU51bWJlcnMsIHBvaW50KTsKQEAg
LTEwNjQsNiArMTA3NCw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpoYXNSZWxldmFudFNlbGVj
dGlvblNlcnZpY2VzKGJvb2wgaXNUZXh0T25seSkgY29uc3QKICNlbmRpZgogCiAjaWYgRU5BQkxF
KFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRGT1JNKElPUykKKwogdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IGNvbnRl
eHRJZCkKIHsKICAgICBbbV93ZWJWaWV3IF9hZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudDpj
b250ZXh0SWRdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFt
ZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggYmViN2Iz
MDljYTZjZGQ4MzNjZGFmZGIwNGZiMTkyYTRkY2IyNjRkNS4uMzhhNGNlY2IxNzYxMTQxN2Y3OThl
ODg0ZjA0ZWFiOTJiMzEyNDJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1t
CkBAIC0zMDIsMTQgKzMwMiwxNCBAQCArIChSZWY8V2ViQ29yZTo6RnJhbWU+KV9jcmVhdGVGcmFt
ZVdpdGhQYWdlOihQYWdlKilwYWdlIGZyYW1lTmFtZTooY29uc3QgU3RyaW5nJgogICAgIFdlYlZp
ZXcgKndlYlZpZXcgPSBraXQocGFnZSk7CiAKICAgICBXZWJGcmFtZSAqZnJhbWUgPSBbW3NlbGYg
YWxsb2NdIF9pbml0V2l0aFdlYkZyYW1lVmlldzpmcmFtZVZpZXcgd2ViVmlldzp3ZWJWaWV3XTsK
LSAgICBSZWY8V2ViQ29yZTo6RnJhbWU+IGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZSwg
b3duZXJFbGVtZW50LCBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQoZnJhbWUpKTsKKyAgICBhdXRv
IGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZSwgb3duZXJFbGVtZW50LCBuZXcgV2ViRnJh
bWVMb2FkZXJDbGllbnQoZnJhbWUpKTsKICAgICBbZnJhbWUgcmVsZWFzZV07CiAgICAgZnJhbWUt
Pl9wcml2YXRlLT5jb3JlRnJhbWUgPSBjb3JlRnJhbWUucHRyKCk7CiAKICAgICBjb3JlRnJhbWUu
Z2V0KCkudHJlZSgpLnNldE5hbWUobmFtZSk7CiAgICAgaWYgKG93bmVyRWxlbWVudCkgewogICAg
ICAgICBBU1NFUlQob3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCkpOwotICAgICAgICBv
d25lckVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKS0+dHJlZSgpLmFwcGVuZENoaWxkKGNvcmVG
cmFtZS5wdHIoKSk7CisgICAgICAgIG93bmVyRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpLT50
cmVlKCkuYXBwZW5kQ2hpbGQoY29yZUZyYW1lLmdldCgpKTsKICAgICB9CiAKICAgICBjb3JlRnJh
bWUuZ2V0KCkuaW5pdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Nj
cm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZTExNTUyOTEwNjQ3MDFi
ODhiN2IzMmFiY2QxZjJlNjU0MzNlMjg5ZS4uNDIxYzc0NTdjOTAzYjQ3ZTJlMWE3YjQ4ODk4ODFm
NTdjMzBlYWM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGlu
Zy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
U2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAgdm9p
ZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNj
cm9sbGluZ05vZGVJRCBub2RlSUQKICAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Ny
b2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChub2RlSUQsIHNjcm9sbFBvc2l0aW9uLCByZXBy
ZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKIH0KIAotUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVl
Tm9kZT4gUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xs
aW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCitSZWY8U2Nyb2xs
aW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2Rl
KFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQogewog
ICAgIHN3aXRjaCAobm9kZVR5cGUpIHsKICAgICBjYXNlIEZyYW1lU2Nyb2xsaW5nTm9kZToKQEAg
LTEyNCwxNCArMTI0LDE1IEBAIFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNj
cm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sCiAgICAgICAgIHJldHVy
biBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjpjcmVhdGUoKnRoaXMsIG5v
ZGVJRCk7CiAjZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgICAgIGJyZWFrOwogI2VuZGlmCiAgICAgY2FzZSBGaXhlZE5vZGU6
CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5v
ZGVJRCk7CiAgICAgY2FzZSBTdGlja3lOb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJl
ZVN0aWNreU5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICB9Ci0gICAgcmV0dXJuIG51
bGxwdHI7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFNjcm9sbGluZ1Ry
ZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKIH0KIAogdm9pZCBSZW1vdGVTY3Jv
bGxpbmdUcmVlOjpjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShTY3JvbGxpbmdOb2Rl
SUQgbm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5n
VHJlZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxp
bmdUcmVlLmgKaW5kZXggZDY1YjJmNWVkNmRkZjU3ZWM0NDBkZjQ5MGQyZTExNjhjOGVjMDVjOS4u
NzMxOGNjYzgxNGNhNTcxNmRjNzBjMjRiNmM0NDE3OGQyNTZjZGE3MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVl
LmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7CiAKLWNsYXNzIFJlbW90ZVNjcm9sbGluZ1RyZWUgOiBw
dWJsaWMgV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZSB7CitjbGFzcyBSZW1vdGVTY3JvbGxpbmdUcmVl
IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNjcm9sbGluZ1RyZWUgewogcHVibGljOgogICAgIHN0
YXRpYyBSZWY8UmVtb3RlU2Nyb2xsaW5nVHJlZT4gY3JlYXRlKFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkmKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVTY3JvbGxpbmdUcmVlKCk7CkBAIC02
NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZEVuZFNj
cm9sbCgpIG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdO
b2RlVHlwZSwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKKyAgICBSZWY8V2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFdlYkNvcmU6
OlNjcm9sbGluZ05vZGVUeXBlLCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOwog
ICAgIAogICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkmIG1fc2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKaW5kZXggODA1
OWFkNTVhYWUzMmY4ZTUzYTcwMTliNTI4N2VlOGIwOTQwYjkxNC4uYTc5ZDEwYTlkNTA3NzEwNDVj
ZTU4MzBlYTU3Mzc0Yzg0MTg1NjI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcApA
QCAtMzY4LDIyICszNjgsMjIgQEAgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RSZWYgV0tCdW5kbGVQ
YWdlR2V0QmFja0ZvcndhcmRMaXN0KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmUKIAogdm9pZCBXS0J1
bmRsZVBhZ2VJbnN0YWxsUGFnZU92ZXJsYXkoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLQnVu
ZGxlUGFnZU92ZXJsYXlSZWYgcGFnZU92ZXJsYXlSZWYpCiB7Ci0gICAgdG9JbXBsKHBhZ2VSZWYp
LT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5
KHRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVy
bGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFt
ZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkoKnRvSW1wbChw
YWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRl
TW9kZTo6RG9Ob3RGYWRlKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VVbmluc3RhbGxQYWdlT3Zl
cmxheShXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQYWdlT3ZlcmxheVJlZiBwYWdl
T3ZlcmxheVJlZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgpLT5wYWdlT3Zl
cmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSh0b0ltcGwocGFnZU92ZXJsYXlS
ZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90
RmFkZSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250
cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKnRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNv
cmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsK
IH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VJbnN0YWxsUGFnZU92ZXJsYXlXaXRoQW5pbWF0aW9uKFdL
QnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRsZVBhZ2VPdmVybGF5UmVmIHBhZ2VPdmVybGF5
UmVmKQogewotICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSh0b0ltcGwocGFnZU92ZXJsYXlSZWYpLT5jb3Jl
T3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOworICAgIHRv
SW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3Rh
bGxQYWdlT3ZlcmxheSgqdG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2Vi
Q29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBh
Z2VVbmluc3RhbGxQYWdlT3ZlcmxheVdpdGhBbmltYXRpb24oV0tCdW5kbGVQYWdlUmVmIHBhZ2VS
ZWYsIFdLQnVuZGxlUGFnZU92ZXJsYXlSZWYgcGFnZU92ZXJsYXlSZWYpCiB7Ci0gICAgdG9JbXBs
KHBhZ2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxs
UGFnZU92ZXJsYXkodG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29y
ZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICB0b0ltcGwocGFnZVJlZiktPm1h
aW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgq
dG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJs
YXk6OkZhZGVNb2RlOjpGYWRlKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VTZXRUb3BPdmVyaGFu
Z0ltYWdlKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0ltYWdlUmVmIGltYWdlUmVmKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVk
UERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXBy
ZWNhdGVkUERGUGx1Z2luLm1tCmluZGV4IDg1MDlhZTY1MDI0ZDRlZTU5MmVkMTI1YTEyMTIxNDBm
MDdmY2UzMWUuLjQxZWIwMzk0NmZhOWE0YWFmZDBmOGYxNjA5YmMxM2YzNzU3Zjk1Y2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBE
RlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0Rl
cHJlY2F0ZWRQREZQbHVnaW4ubW0KQEAgLTg2MCw3ICs4NjAsNyBAQCBKU1ZhbHVlUmVmIFBERlBs
dWdpbjo6anNQREZEb2NQcmludChKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBmdW5jdGlv
biwgSlNPYgogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGN0eCk7CiAKLSAgICBwYWdlLT5jaHJvbWUoKS5wcmludChjb3JlRnJhbWUpOworICAgIHBh
Z2UtPmNocm9tZSgpLnByaW50KCpjb3JlRnJhbWUpOwogCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGN0eCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKaW5kZXggNTYyYTlhMmUxNTdjNDNjNWRlNzVjM2Y3MjU2MzEyZGZl
NGUxNTdiYy4uZDlhNDI4ODYxYmVjNTY0NTNhN2YwY2UxM2QzYmY5ODkxZjNkOTkyOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAt
MTEyOCw3ICsxMTI4LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojpmb2N1c1BsdWdpbkVsZW1lbnQoKQog
ICAgIEFTU0VSVChmcmFtZSgpKTsKICAgICAKICAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1lKCkt
PnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1l
bnQobV9wbHVnaW5FbGVtZW50LmdldCgpLCBmcmFtZSgpKTsKKyAgICAgICAgcGFnZS0+Zm9jdXND
b250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQobV9wbHVnaW5FbGVtZW50LmdldCgpLCAqZnJh
bWUoKSk7CiAgICAgZWxzZQogICAgICAgICBmcmFtZSgpLT5kb2N1bWVudCgpLT5zZXRGb2N1c2Vk
RWxlbWVudChtX3BsdWdpbkVsZW1lbnQuZ2V0KCkpOwogfQpAQCAtMTUwOCw3ICsxNTA4LDcgQEAg
dm9pZCBQbHVnaW5WaWV3OjpzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYgc3RhdHVzYmFy
VGV4dCkKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhZ2UtPmNocm9t
ZSgpLnNldFN0YXR1c2JhclRleHQoZnJhbWUoKSwgc3RhdHVzYmFyVGV4dCk7CisgICAgcGFnZS0+
Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dCgqZnJhbWUoKSwgc3RhdHVzYmFyVGV4dCk7CiB9CiAK
IGJvb2wgUGx1Z2luVmlldzo6aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKaW5kZXggNDk4MzRjM2EzMGViZjkyMTVlOWY1NGU5MWRjYjI0ZWEx
M2Y5NGNlZC4uYThkZmRmYzk1MzBlZTA2ZjMxYzhmNWIxNGZkNjcyZmZlMjRiMjNjYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTAzLDcgKzEwMyw2IEBAIHN0YXRpYyBkb3VibGUgYXJl
YShXZWJGcmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oc2l6ZS5o
ZWlnaHQoKSkgKiBzaXplLndpZHRoKCk7CiB9CiAKLQogc3RhdGljIFdlYkZyYW1lKiBmaW5kTGFy
Z2VzdEZyYW1lSW5GcmFtZVNldChXZWJQYWdlJiBwYWdlKQogewogICAgIC8vIEFwcHJveGltYXRl
IHdoYXQgYSB1c2VyIGNvdWxkIGNvbnNpZGVyIGEgZGVmYXVsdCB0YXJnZXQgZnJhbWUgZm9yIGFw
cGxpY2F0aW9uIG1lbnUgb3BlcmF0aW9ucy4KQEAgLTE3OSwyMCArMTc4LDIyIEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojp1bmZvY3VzKCkKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRGb2N1cyhjb25zdCBXZWJDb3JlOjpOb2RlKiBub2Rl
KQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEZvY3VzKFdlYkNvcmU6OkVsZW1l
bnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9wYWdlLmVsZW1lbnREaWRGb2N1cyhjb25zdF9jYXN0PFdl
YkNvcmU6Ok5vZGUqPihub2RlKSk7CisgICAgbV9wYWdlLmVsZW1lbnREaWRGb2N1cygmZWxlbWVu
dCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkQmx1cihjb25zdCBXZWJD
b3JlOjpOb2RlKiBub2RlKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRCbHVyKFdl
YkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9wYWdlLmVsZW1lbnREaWRCbHVyKGNv
bnN0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KG5vZGUpKTsKKyAgICBtX3BhZ2UuZWxlbWVudERpZEJs
dXIoJmVsZW1lbnQpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6bWFrZUZpcnN0UmVzcG9u
ZGVyKCkKIHsKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpNYWtlRmly
c3RSZXNwb25kZXIoKSk7Ci19ICAgIAorfQorCiAjZW5kaWYgICAgCiAKIGJvb2wgV2ViQ2hyb21l
Q2xpZW50OjpjYW5UYWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24pCkBAIC0yMjcsMTYgKzIyOCwxNiBA
QCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSogZnJhbWUp
CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGb2N1c2VkRnJhbWVDaGFuZ2VkKHdlYkZyYW1l
ID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDApLCBtX3BhZ2UucGFnZUlEKCkpOwogfQogCi1QYWdl
KiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJhbWUsIGNvbnN0IEZyYW1l
TG9hZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiB3aW5kb3dGZWF0dXJl
cywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbikKK1BhZ2UqIFdlYkNo
cm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVx
dWVzdCYgcmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIHdpbmRvd0ZlYXR1cmVzLCBjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQogewogI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKLSAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50
KCktPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpKQotICAgICAgICBmcmFtZS0+ZG9j
dW1lbnQoKS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOworICAgIGlmIChmcmFtZS5kb2N1bWVu
dCgpICYmIGZyYW1lLmRvY3VtZW50KCktPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgp
KQorICAgICAgICBmcmFtZS5kb2N1bWVudCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7CiAj
ZW5kaWYKIAogICAgIGF1dG8mIHdlYlByb2Nlc3MgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKTsK
IAotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFt
ZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJh
bWUpOwogCiAgICAgTmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGE7CiAg
ICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEubmF2aWdhdGlvblR5cGUgPSBuYXZpZ2F0aW9uQWN0aW9u
LnR5cGUoKTsKQEAgLTI1MCw3ICsyNTEsNyBAQCBQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0
ZVdpbmRvdyhGcmFtZSogZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlcwogCiAg
ICAgdWludDY0X3QgbmV3UGFnZUlEID0gMDsKICAgICBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
IHBhcmFtZXRlcnM7Ci0gICAgaWYgKCF3ZWJQcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2Uod2ViRnJh
bWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoZnJhbWUpLCByZXF1
ZXN0LnJlc291cmNlUmVxdWVzdCgpLCB3aW5kb3dGZWF0dXJlcywgbmF2aWdhdGlvbkFjdGlvbkRh
dGEpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpSZXBseShuZXdQYWdl
SUQsIHBhcmFtZXRlcnMpLCBtX3BhZ2UucGFnZUlEKCkpKQorICAgIGlmICghd2ViUHJvY2Vzcy5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpDcmVhdGVOZXdQYWdlKHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6
ZnJvbUZyYW1lKCZmcmFtZSksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHdpbmRvd0ZlYXR1
cmVzLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0
ZU5ld1BhZ2U6OlJlcGx5KG5ld1BhZ2VJRCwgcGFyYW1ldGVycyksIG1fcGFnZS5wYWdlSUQoKSkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKCFuZXdQYWdlSUQpCkBAIC0zNjEs
OSArMzYyLDkgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCgpCiAgICAgcmV0dXJuIG1fcGFnZS5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoKTsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKiBmcmFtZSkKK2Jvb2wgV2ViQ2hyb21l
Q2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBGcmFtZSYgZnJhbWUpCiB7Ci0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZy
b21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6
ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAKICAgICBib29sIHNob3VsZENsb3NlID0gZmFsc2U7CiAK
QEAgLTQwMiwxMiArNDAzLDEyIEBAIHN0YXRpYyBib29sIHNob3VsZFN1cHByZXNzSmF2YVNjcmlw
dERpYWxvZ3MoRnJhbWUmIGZyYW1lKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmlu
ZyYgYWxlcnRUZXh0KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChG
cmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgYWxlcnRUZXh0KQogewotICAgIGlmIChzaG91bGRT
dXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKCpmcmFtZSkpCisgICAgaWYgKHNob3VsZFN1cHByZXNz
SmF2YVNjcmlwdERpYWxvZ3MoZnJhbWUpKQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJGcmFt
ZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAgIFdlYkZy
YW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKICAgICBBU1NF
UlQod2ViRnJhbWUpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgpAQCAtNDE1
LDE1ICs0MTYsMTUgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChG
cmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgYWxlcnRUZXh0KQogCiAgICAgSGFuZ0RldGVjdGlv
bkRpc2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxlcjsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0
eU9yaWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIGFsZXJ0VGV4dCksIE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6UmVwbHkoKSwgbV9wYWdlLnBhZ2VJRCgpLCBT
ZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVBy
b2Nlc3NXaWxsU3VzcGVuZCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2
YVNjcmlwdEFsZXJ0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJv
bUZyYW1lKCZmcmFtZSksIGFsZXJ0VGV4dCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkph
dmFTY3JpcHRBbGVydDo6UmVwbHkoKSwgbV9wYWdlLnBhZ2VJRCgpLCBTZWNvbmRzOjppbmZpbml0
eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVu
ZCk7CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFt
ZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50Ojpy
dW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
IHsKLSAgICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncygqZnJhbWUpKQorICAg
IGlmIChzaG91bGRTdXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKGZyYW1lKSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3Jl
RnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNv
cmVGcmFtZShmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogICAgIC8vIE5vdGlmeSB0
aGUgYnVuZGxlIGNsaWVudC4KQEAgLTQzMiwxOCArNDMzLDE4IEBAIGJvb2wgV2ViQ2hyb21lQ2xp
ZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKICAgICBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIgaGFuZ0RldGVjdGlvbkRpc2FibGVyOwog
CiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtKHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5
T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGZyYW1lKSwgbWVzc2FnZSksIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpSZXBseShyZXN1bHQpLCBtX3BhZ2UucGFnZUlE
KCksIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRm
b3JtUHJvY2Vzc1dpbGxTdXNwZW5kKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJ1bkphdmFTY3JpcHRDb25maXJtKHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3Jp
Z2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIG1lc3NhZ2UpLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6UmVwbHkocmVzdWx0KSwgbV9wYWdlLnBhZ2VJRCgp
LCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9y
bVByb2Nlc3NXaWxsU3VzcGVuZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0
KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1
bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNj
cmlwdFByb21wdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3Ry
aW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQogewotICAgIGlmIChzaG91bGRTdXBw
cmVzc0phdmFTY3JpcHREaWFsb2dzKCpmcmFtZSkpCisgICAgaWYgKHNob3VsZFN1cHByZXNzSmF2
YVNjcmlwdERpYWxvZ3MoZnJhbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAgIFdl
YkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKICAgICBB
U1NFUlQod2ViRnJhbWUpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgpAQCAt
NDUxLDcgKzQ1Miw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0
KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjCiAKICAgICBIYW5nRGV0ZWN0
aW9uRGlzYWJsZXIgaGFuZ0RldGVjdGlvbkRpc2FibGVyOwogCi0gICAgaWYgKCFXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0KHdlYkZyYW1lLT5mcmFtZUlEKCks
IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGZyYW1lKSwgbWVzc2FnZSwgZGVmYXVsdFZh
bHVlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6UmVwbHko
cmVzdWx0KSwgbV9wYWdlLnBhZ2VJRCgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRT
eW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCkpCisgICAgaWYgKCFX
ZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3lu
YyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0KHdlYkZyYW1lLT5m
cmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIG1lc3NhZ2Us
IGRlZmF1bHRWYWx1ZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9t
cHQ6OlJlcGx5KHJlc3VsdCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwg
SVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gIXJlc3VsdC5pc051bGwoKTsKQEAg
LTU1Niw3ICs1NTcsNyBAQCBQbGF0Zm9ybVBhZ2VDbGllbnQgV2ViQ2hyb21lQ2xpZW50OjpwbGF0
Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIFdlYkNocm9t
ZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNpemUm
IHNpemUpIGNvbnN0Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChG
cmFtZSYgZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3Bh
Z2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5mcmFtZUZsYXR0ZW5pbmdFbmFibGVkKCkpIHsKICAg
ICAgICAgV2ViRnJhbWUqIGxhcmdlc3RGcmFtZSA9IGZpbmRMYXJnZXN0RnJhbWVJbkZyYW1lU2V0
KG1fcGFnZSk7CkBAIC01NjYsMTQgKzU2NywxNCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29u
dGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbgog
ICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCZmcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKSAh
PSBmcmFtZSkKKyAgICBpZiAoJmZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCkgIT0gJmZyYW1lKQog
ICAgICAgICByZXR1cm47CiAKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEaWRDaGFuZ2VDb250ZW50U2l6ZShzaXplKSk7CiAKICAgICBtX3BhZ2UuZHJhd2luZ0FyZWEo
KS0+bWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKHNpemUpOwogCi0gICAgRnJhbWVWaWV3KiBm
cmFtZVZpZXcgPSBmcmFtZS0+dmlldygpOworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZnJh
bWUudmlldygpOwogICAgIGlmIChmcmFtZVZpZXcgJiYgIWZyYW1lVmlldy0+ZGVsZWdhdGVzU2Ny
b2xsaW5nKCkpICB7CiAgICAgICAgIGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhciA9IGZyYW1l
Vmlldy0+aG9yaXpvbnRhbFNjcm9sbGJhcigpOwogICAgICAgICBib29sIGhhc1ZlcnRpY2FsU2Ny
b2xsYmFyID0gZnJhbWVWaWV3LT52ZXJ0aWNhbFNjcm9sbGJhcigpOwpAQCAtNjExLDIxICs2MTIs
MjEgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2Fn
ZUJlQnV0dG9uKFJlbmRlckVtYmVkZGVkT2JqZWMKICAgICByZXR1cm4gZmFsc2U7CiB9CiAgICAg
Ci12b2lkIFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVs
ZW1lbnQqIGVsZW1lbnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0
eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCYgZWxlbWVudCwg
UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVu
YXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdAogewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5f
QVBJKQotICAgIEFTU0VSVChlbGVtZW50LT5oYXNUYWdOYW1lKG9iamVjdFRhZykgfHwgZWxlbWVu
dC0+aGFzVGFnTmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShhcHBsZXRUYWcp
KTsKKyAgICBBU1NFUlQoZWxlbWVudC5oYXNUYWdOYW1lKG9iamVjdFRhZykgfHwgZWxlbWVudC5o
YXNUYWdOYW1lKGVtYmVkVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoYXBwbGV0VGFnKSk7CiAg
ICAgQVNTRVJUKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uID09IFJlbmRlckVtYmVkZGVkT2Jq
ZWN0OjpQbHVnaW5NaXNzaW5nIHx8IHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uID09IFJlbmRl
ckVtYmVkZGVkT2JqZWN0OjpJbnNlY3VyZVBsdWdpblZlcnNpb24gfHwgcGx1Z2luVW5hdmFpbGFi
aWxpdHlSZWFzb24pOwogCi0gICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z2luRWxlbWVu
dCA9IHN0YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqPihlbGVtZW50KTsKKyAgICBh
dXRvJiBwbHVnaW5FbGVtZW50ID0gZG93bmNhc3Q8SFRNTFBsdWdJbkltYWdlRWxlbWVudD4oZWxl
bWVudCk7CiAKLSAgICBTdHJpbmcgZnJhbWVVUkxTdHJpbmcgPSBwbHVnaW5FbGVtZW50LT5kb2N1
bWVudCgpLmZyYW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlVVJMKCku
c3RyaW5nKCk7CisgICAgU3RyaW5nIGZyYW1lVVJMU3RyaW5nID0gcGx1Z2luRWxlbWVudC5kb2N1
bWVudCgpLmZyYW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlVVJMKCku
c3RyaW5nKCk7CiAgICAgU3RyaW5nIHBhZ2VVUkxTdHJpbmcgPSBtX3BhZ2UubWFpbkZyYW1lKCkt
PmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlVVJMKCkuc3RyaW5nKCk7Ci0gICAg
U3RyaW5nIHBsdWdpblVSTFN0cmluZyA9IHBsdWdpbkVsZW1lbnQtPmRvY3VtZW50KCkuY29tcGxl
dGVVUkwocGx1Z2luRWxlbWVudC0+dXJsKCkpLnN0cmluZygpOwotICAgIFVSTCBwbHVnaW5zcGFn
ZUF0dHJpYnV0ZVVSTCA9IGVsZW1lbnQtPmRvY3VtZW50KCkuY29tcGxldGVVUkwoc3RyaXBMZWFk
aW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHBsdWdpbkVsZW1lbnQtPmdldEF0dHJpYnV0ZShwbHVn
aW5zcGFnZUF0dHIpKSk7CisgICAgU3RyaW5nIHBsdWdpblVSTFN0cmluZyA9IHBsdWdpbkVsZW1l
bnQuZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChwbHVnaW5FbGVtZW50LnVybCgpKS5zdHJpbmcoKTsK
KyAgICBVUkwgcGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkwgPSBwbHVnaW5FbGVtZW50LmRvY3VtZW50
KCkuY29tcGxldGVVUkwoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHBsdWdpbkVs
ZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihwbHVnaW5zcGFnZUF0dHIpKSk7
CiAgICAgaWYgKCFwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTC5wcm90b2NvbElzSW5IVFRQRmFtaWx5
KCkpCiAgICAgICAgIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMID0gVVJMKCk7Ci0gICAgbV9wYWdl
LnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6VW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlj
a2VkKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBwbHVnaW5FbGVtZW50LT5zZXJ2aWNlVHlw
ZSgpLCBwbHVnaW5VUkxTdHJpbmcsIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMLnN0cmluZygpLCBm
cmFtZVVSTFN0cmluZywgcGFnZVVSTFN0cmluZykpOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChwbHVnaW5VbmF2
YWlsYWJpbGl0eVJlYXNvbiwgcGx1Z2luRWxlbWVudC5zZXJ2aWNlVHlwZSgpLCBwbHVnaW5VUkxT
dHJpbmcsIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMLnN0cmluZygpLCBmcmFtZVVSTFN0cmluZywg
cGFnZVVSTFN0cmluZykpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZWxlbWVudCk7CiAgICAg
VU5VU0VEX1BBUkFNKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKTsKQEAgLTY2MCw5ICs2NjEs
OSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmIHRvb2xU
aXAsIFRleHREaXJlY3Rpb24pCiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6U2V0VG9vbFRpcChtX2NhY2hlZFRvb2xUaXApKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnByaW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFt
ZSYgZnJhbWUpCiB7Ci0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3Jl
RnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNv
cmVGcmFtZShmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogI2lmIFBMQVRGT1JNKEdU
SykgJiYgSEFWRShHVEtfVU5JWF9QUklOVElORykKQEAgLTY4OCwxMiArNjg5LDEyIEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSogZnJhbWUpCiAgICAgbV9wYWdlLnNlbmRTeW5j
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlByaW50RnJhbWUod2ViRnJhbWUtPmZyYW1lSUQoKSks
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlByaW50RnJhbWU6OlJlcGx5KCksIFNlY29uZHM6Omlu
ZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxT
dXNwZW5kKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90
YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFp
bHMgZGV0YWlscykKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEo
RnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxz
IGRldGFpbHMpCiB7Ci0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3Jl
RnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNv
cmVGcmFtZShmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKICAgICAKLSAgICBhdXRvJiBv
cmlnaW4gPSBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICBhdXRvJiBv
cmlnaW4gPSBmcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpOwogICAgIGF1dG8gb3Jp
Z2luRGF0YSA9IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKG9yaWdpbik7
CiAgICAgYXV0byYgdHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6c2luZ2xldG9uKCk7CiAgICAg
YXV0byBjdXJyZW50UXVvdGEgPSB0cmFja2VyLnF1b3RhKG9yaWdpbkRhdGEpOwpAQCAtNzE2LDkg
KzcxNyw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGlu
dDY0X3QpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qIG9yaWdp
biwgaW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNo
ZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgaW50
NjRfdCB0b3RhbEJ5dGVzTmVlZGVkKQogewotICAgIFJlZlB0cjxBUEk6OlNlY3VyaXR5T3JpZ2lu
PiBzZWN1cml0eU9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmco
b3JpZ2luLT50b1N0cmluZygpKTsKKyAgICBSZWZQdHI8QVBJOjpTZWN1cml0eU9yaWdpbj4gc2Vj
dXJpdHlPcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG9yaWdp
bi50b1N0cmluZygpKTsKICAgICBpZiAobV9wYWdlLmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS5k
aWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgmbV9wYWdlLCBzZWN1cml0eU9yaWdp
bi5nZXQoKSwgdG90YWxCeXRlc05lZWRlZCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtNzI5LDE3
ICs3MzAsMTkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hl
T3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwKIAogICAgIHVpbnQ2NF90IG5ld1F1
b3RhID0gMDsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kU3luYygKLSAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVhY2hl
ZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE6
OmZyb21TZWN1cml0eU9yaWdpbigqb3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSwgY3VycmVu
dFF1b3RhLCB0b3RhbEJ5dGVzTmVlZGVkKSwKKyAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihvcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigp
LCBjdXJyZW50UXVvdGEsIHRvdGFsQnl0ZXNOZWVkZWQpLAogICAgICAgICBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhOjpSZXBseShuZXdR
dW90YSksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3lu
Y09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpOwogCi0gICAgY2FjaGVT
dG9yYWdlLnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2luKG9yaWdpbiwgbmV3UXVvdGEpOworICAg
IGNhY2hlU3RvcmFnZS5zdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbigmb3JpZ2luLCBuZXdRdW90
YSk7CiB9CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCisKIHZvaWQgV2ViQ2hyb21l
Q2xpZW50Ojphbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KKwogI2VuZGlmCiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRSZXBsYWNlV2l0
aEdlbmVyYXRlZEZpbGVGb3JVcGxvYWQoY29uc3QgU3RyaW5nJiBwYXRoLCBTdHJpbmcmIGdlbmVy
YXRlZEZpbGVuYW1lKQpAQCAtNzU0LDEwICs3NTcsMTIgQEAgU3RyaW5nIFdlYkNocm9tZUNsaWVu
dDo6Z2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKQogfQogCiAjaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi1zdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBX
ZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqIGNs
aWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKKworc3RkOjp1bmlxdWVfcHRyPENvbG9y
Q2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2Vy
Q2xpZW50JiBjbGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCiB7Ci0gICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8V2ViQ29sb3JDaG9vc2VyPigmbV9wYWdlLCBjbGllbnQsIGluaXRp
YWxDb2xvcik7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2ViQ29sb3JDaG9vc2VyPigm
bV9wYWdlLCAmY2xpZW50LCBpbml0aWFsQ29sb3IpOwogfQorCiAjZW5kaWYKIAogdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSYgZnJhbWUsIEZpbGVDaG9vc2VyJiBmaWxl
Q2hvb3NlcikKQEAgLTgzMiwxNCArODM3LDE0IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpoYXNP
cGVuZWRQb3B1cCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1SZWZQdHI8V2ViQ29y
ZTo6UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQ
b3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+
IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVu
dCYgY2xpZW50KSBjb25zdAogewotICAgIHJldHVybiBXZWJQb3B1cE1lbnU6OmNyZWF0ZSgmbV9w
YWdlLCBjbGllbnQpOworICAgIHJldHVybiBXZWJQb3B1cE1lbnU6OmNyZWF0ZSgmbV9wYWdlLCAm
Y2xpZW50KTsKIH0KIAotUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21l
Q2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBj
bGllbnQpIGNvbnN0CitSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVD
bGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmIGNs
aWVudCkgY29uc3QKIHsKLSAgICByZXR1cm4gV2ViU2VhcmNoUG9wdXBNZW51OjpjcmVhdGUoJm1f
cGFnZSwgY2xpZW50KTsKKyAgICByZXR1cm4gV2ViU2VhcmNoUG9wdXBNZW51OjpjcmVhdGUoJm1f
cGFnZSwgJmNsaWVudCk7CiB9CiAKIEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBXZWJDaHJvbWVDbGll
bnQ6OmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3QKQEAgLTg1OCw3ICs4NjMsNyBAQCBSZWZQ
dHI8V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0
ZURpc3BsYXlSZWZyZXNoTW9uaQogCiAjZW5kaWYKIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciogbGF5ZXIpCit2b2lk
IFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGlj
c0xheWVyKiBsYXllcikKIHsKICAgICBpZiAobGF5ZXIpCiAgICAgICAgIG1fcGFnZS5lbnRlckFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyKTsKQEAgLTg2NiwxMCArODcxLDEwIEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBo
aWNzTGF5ZXIqIGxheWVyKQogICAgICAgICBtX3BhZ2UuZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdy
YXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQor
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFt
ZSYgZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAgICAgaWYgKGF1dG8g
ZHJhd2luZ0FyZWEgPSBtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKLSAgICAgICAgZHJhd2luZ0FyZWEt
PmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihmcmFtZSwgZ3JhcGhpY3NMYXllcik7Cisg
ICAgICAgIGRyYXdpbmdBcmVhLT5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoJmZyYW1l
LCBncmFwaGljc0xheWVyKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldE5lZWRzT25l
U2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKQpAQCAtODk4LDkgKzkwMyw5IEBAIGJvb2wgV2Vi
Q2hyb21lQ2xpZW50OjpsYXllclRyZWVTdGF0ZUlzRnJvemVuKCkgY29uc3QKIAogI2lmIEVOQUJM
RShBU1lOQ19TQ1JPTExJTkcpCiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IFdl
YkNocm9tZUNsaWVudDo6Y3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSogcGFnZSkgY29u
c3QKK1JlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVT
Y3JvbGxpbmdDb29yZGluYXRvcihQYWdlJiBwYWdlKSBjb25zdAogewotICAgIEFTU0VSVChtX3Bh
Z2UuY29yZVBhZ2UoKSA9PSBwYWdlKTsKKyAgICBBU1NFUlRfVU5VU0VEKHBhZ2UsIG1fcGFnZS5j
b3JlUGFnZSgpID09ICZwYWdlKTsKICAgICBpZiAobV9wYWdlLmRyYXdpbmdBcmVhKCktPnR5cGUo
KSAhPSBEcmF3aW5nQXJlYVR5cGVSZW1vdGVMYXllclRyZWUpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIHJldHVybiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6Y3JlYXRlKCZtX3Bh
Z2UpOwpAQCAtOTQ5LDE5ICs5NTQsMTkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRl
b0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6OkhUTUxWaWQKIAogI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRz
RnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtl
eWJvYXJkKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1l
bnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCYsIGJvb2wgd2l0aEtleWJvYXJkKQogewogICAgIHJl
dHVybiBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+c3VwcG9ydHNGdWxsU2NyZWVuKHdpdGhL
ZXlib2FyZCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JF
bGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50KQogewot
ICAgIG1fcGFnZS5mdWxsU2NyZWVuTWFuYWdlcigpLT5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KGVsZW1lbnQpOworICAgIG1fcGFnZS5mdWxsU2NyZWVuTWFuYWdlcigpLT5lbnRlckZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KCZlbGVtZW50KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRG
dWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50KQordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JiBl
bGVtZW50KQogewotICAgIG1fcGFnZS5mdWxsU2NyZWVuTWFuYWdlcigpLT5leGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoZWxlbWVudCk7CisgICAgbV9wYWdlLmZ1bGxTY3JlZW5NYW5hZ2VyKCktPmV4
aXRGdWxsU2NyZWVuRm9yRWxlbWVudCgmZWxlbWVudCk7CiB9CiAKICNlbmRpZgpAQCAtMTA0OSwy
OSArMTA1NCwyOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlzYWJsZVN1ZGRlblRlcm1pbmF0
aW9uKCkKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaXNhYmxl
U3VkZGVuVGVybWluYXRpb24oKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRI
ZWFkZXJMYXllcihHcmFwaGljc0xheWVyKiBoZWFkZXJQYXJlbnQpCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6ZGlkQWRkSGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXllciYgaGVhZGVyUGFyZW50KQogewog
I2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBpZiAoUGFnZUJhbm5lciogYmFubmVyID0g
bV9wYWdlLmhlYWRlclBhZ2VCYW5uZXIoKSkKLSAgICAgICAgYmFubmVyLT5kaWRBZGRQYXJlbnRM
YXllcihoZWFkZXJQYXJlbnQpOworICAgICAgICBiYW5uZXItPmRpZEFkZFBhcmVudExheWVyKCZo
ZWFkZXJQYXJlbnQpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oaGVhZGVyUGFyZW50KTsKICNl
bmRpZgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkQWRkRm9vdGVyTGF5ZXIoR3JhcGhp
Y3NMYXllciogZm9vdGVyUGFyZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEZvb3Rl
ckxheWVyKEdyYXBoaWNzTGF5ZXImIGZvb3RlclBhcmVudCkKIHsKICNpZiBFTkFCTEUoUlVCQkVS
X0JBTkRJTkcpCiAgICAgaWYgKFBhZ2VCYW5uZXIqIGJhbm5lciA9IG1fcGFnZS5mb290ZXJQYWdl
QmFubmVyKCkpCi0gICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50TGF5ZXIoZm9vdGVyUGFyZW50
KTsKKyAgICAgICAgYmFubmVyLT5kaWRBZGRQYXJlbnRMYXllcigmZm9vdGVyUGFyZW50KTsKICNl
bHNlCiAgICAgVU5VU0VEX1BBUkFNKGZvb3RlclBhcmVudCk7CiAjZW5kaWYKIH0KIAotYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBG
cmFtZVZpZXcqIGZyYW1lVmlldykgY29uc3QKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRV
c2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3JiBmcmFtZVZpZXcpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5zaG91bGRVc2VUaWxlZEJh
Y2tpbmdGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKKyAgICByZXR1cm4gbV9wYWdlLmRyYXdpbmdB
cmVhKCktPnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldygmZnJhbWVWaWV3KTsKIH0K
IAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSwgdWludDY0X3Qgc291cmNlRWxl
bWVudElEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNWM5ZDc3M2E3MmMwNjA4YzAyMDY4YWMx
ZDlkZGY0NWQ0YTBiZDljNS4uMGEwODAwNGZmZWZlZWNiYjQxMzQ0MDM2ZjAyZmRhOTQxNzRkYWNl
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAgICAg
Ly8gRnJhbWUgd2FudHMgdG8gY3JlYXRlIHRoZSBuZXcgUGFnZS4gIEFsc28sIHRoZSBuZXdseSBj
cmVhdGVkIHdpbmRvdwogICAgIC8vIHNob3VsZCBub3QgYmUgc2hvd24gdG8gdGhlIHVzZXIgdW50
aWwgdGhlIENocm9tZUNsaWVudCBvZiB0aGUgbmV3bHkKICAgICAvLyBjcmVhdGVkIFBhZ2UgaGFz
IGl0cyBzaG93IG1ldGhvZCBjYWxsZWQuCi0gICAgV2ViQ29yZTo6UGFnZSogY3JlYXRlV2luZG93
KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0
IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlv
biYpIGZpbmFsOworICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFt
ZSYsIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5k
b3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbDsKICAg
ICB2b2lkIHNob3coKSBmaW5hbDsKICAgICAKICAgICBib29sIGNhblJ1bk1vZGFsKCkgZmluYWw7
CkBAIC04NywxMyArODcsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNv
bGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlSUQpIGZpbmFsOwogICAgIAogICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5s
b2FkQ29uZmlybVBhbmVsKCkgZmluYWw7Ci0gICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSopIGZpbmFsOworICAg
IGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
V2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKICAgICAKICAgICB2b2lkIGNsb3NlV2luZG93U29vbigp
IGZpbmFsOwogICAgIAotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1l
KiwgY29uc3QgU3RyaW5nJikgZmluYWw7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShX
ZWJDb3JlOjpGcmFtZSosIGNvbnN0IFN0cmluZyYpIGZpbmFsOwotICAgIGJvb2wgcnVuSmF2YVNj
cmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KSBmaW5hbDsKKyAgICB2b2lkIHJ1
bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOwor
ICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJp
bmcmKSBmaW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUm
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJp
bmcmIHJlc3VsdCkgZmluYWw7CiAgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmlu
ZyYpIGZpbmFsOwogCiAgICAgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUo
KSBmaW5hbDsKQEAgLTExNywyMyArMTE3LDIzIEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFBs
YXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCBmaW5hbDsKLSAgICB2
b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJikgY29uc3QgZmluYWw7CisgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNv
cmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0IGZpbmFsOwogICAgIHZv
aWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBmaW5h
bDsgLy8gQ3VycmVudGx5IG9ubHkgTWFjIGhhcyBhIG5vbiBlbXB0eSBpbXBsZW1lbnRhdGlvbi4K
IAogICAgIGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29y
ZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25z
dCBmaW5hbDsKLSAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3Jl
OjpFbGVtZW50KiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxh
YmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0
dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVtZW50JiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmpl
Y3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQg
c2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBt
b2RpZmllckZsYWdzKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcm
LCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIHByaW50KFdl
YkNvcmU6OkZyYW1lKikgZmluYWw7CisgICAgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSYpIGZp
bmFsOwogCi0gICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBj
b25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5h
bDsKKyAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMpIGZpbmFsOwog
CiAgICAgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpIGZp
bmFsOwotICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiosIGludDY0X3Qgc3BhY2VOZWVkZWQpIGZpbmFsOworICAgIHZvaWQg
cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biYsIGludDY0X3Qgc3BhY2VOZWVkZWQpIGZpbmFsOwogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9T
VVBQT1JUKQogICAgIHZvaWQgYW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKSBmaW5hbDsKQEAgLTE0
Myw3ICsxNDMsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBnZW5lcmF0ZVJlcGxhY2VtZW50Rmls
ZShjb25zdCBTdHJpbmcmIHBhdGgpIGZpbmFsOwogICAgIAogI2lmIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb2xvckNob29zZXI+IGNyZWF0
ZUNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBXZWJDb3Jl
OjpDb2xvciYpIGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb2xvckNob29z
ZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQmLCBjb25z
dCBXZWJDb3JlOjpDb2xvciYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU9TX1RPVUNI
X0VWRU5UUykKQEAgLTE1MiwxMCArMTUyLDEwIEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9STShJ
T1MpCiAgICAgdm9pZCBkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShib29sKSBmaW5hbDsKLSAgICB2
b2lkIHNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpGcmFtZSosIGJvb2wpIGZp
bmFsOwotICAgIHZvaWQgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKFdlYkNvcmU6OkZyYW1lKikgZmlu
YWw7Ci0gICAgdm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoV2ViQ29yZTo6RnJhbWUq
KSBmaW5hbDsKLSAgICB2b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFt
ZShXZWJDb3JlOjpGcmFtZSopIGZpbmFsOworICAgIHZvaWQgc2V0TmVlZHNTY3JvbGxOb3RpZmlj
YXRpb25zKFdlYkNvcmU6OkZyYW1lJiwgYm9vbCkgZmluYWw7CisgICAgdm9pZCBvYnNlcnZlZENv
bnRlbnRDaGFuZ2UoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKKyAgICB2b2lkIGNsZWFyQ29udGVu
dENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOworICAgIHZvaWQgbm90aWZ5
UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lJikgZmluYWw7
CiAgICAgYm9vbCBpc1N0b3BwaW5nKCkgZmluYWw7CiAKICAgICB2b2lkIGRpZExheW91dChMYXlv
dXRUeXBlID0gTm9ybWFsTGF5b3V0KSBmaW5hbDsKQEAgLTIwMywxMiArMjAzLDEyIEBAIHByaXZh
dGU6CiAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIGZpbmFs
OwogICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlv
bigpIGZpbmFsOwogICAgIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBmaW5hbDsKLSAgICBS
ZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBN
ZW51Q2xpZW50KikgY29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVw
TWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNv
bnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVu
dShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9w
dXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CiAKICAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVy
RmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIGF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIGZpbmFsOwotICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdl
YkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOworICAgIHZvaWQg
YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKikgZmluYWw7CisgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIo
V2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7CiAgICAgdm9p
ZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgZmluYWw7CiAgICAgdm9p
ZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIGZpbmFsOwogICAgIGJvb2wgYWRqdXN0
TGF5ZXJGbHVzaFRocm90dGxpbmcoV2ViQ29yZTo6TGF5ZXJGbHVzaFRocm90dGxlU3RhdGU6OkZs
YWdzKSBmaW5hbDsKQEAgLTIzMywxMSArMjMzLDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBsYXll
clRyZWVTdGF0ZUlzRnJvemVuKCkgY29uc3QgZmluYWw7CiAKICNpZiBFTkFCTEUoQVNZTkNfU0NS
T0xMSU5HKQotICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNy
ZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFdlYkNvcmU6OlBhZ2UqKSBjb25zdCBmaW5hbDsKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yKFdlYkNvcmU6OlBhZ2UmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oSU9TKQotICAgIHZvaWQgZWxlbWVudERpZFJlZm9jdXMoY29uc3QgV2ViQ29yZTo6Tm9k
ZSopIGZpbmFsOworICAgIHZvaWQgZWxlbWVudERpZFJlZm9jdXMoY29uc3QgV2ViQ29yZTo6RWxl
bWVudCYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiAoUExBVEZPUk0oSU9TKSAmJiBIQVZFKEFWS0lU
KSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkK
QEAgLTI1MywxNCArMjUzLDE0IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKLSAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3Qg
V2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJkKSBmaW5hbDsKLSAgICB2b2lkIGVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopIGZpbmFsOwotICAgIHZv
aWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBmaW5hbDsKKyAg
ICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVu
dCYsIGJvb2wgd2l0aEtleWJvYXJkKSBmaW5hbDsKKyAgICB2b2lkIGVudGVyRnVsbFNjcmVlbkZv
ckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOworICAgIHZvaWQgZXhpdEZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgV2ViQ29yZTo6Tm9k
ZSopIGZpbmFsOwotICAgIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgV2ViQ29yZTo6Tm9kZSop
IGZpbmFsOworICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5h
bDsKKyAgICB2b2lkIGVsZW1lbnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKIAog
ICAgIHZvaWQgbWFrZUZpcnN0UmVzcG9uZGVyKCkgZmluYWw7CiAjZW5kaWYKQEAgLTI5MSwxMCAr
MjkxLDEwIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIHBsdWdJbkV4dHJhU3R5bGVTaGVldCgpIGNv
bnN0IGZpbmFsOwogICAgIFN0cmluZyBwbHVnSW5FeHRyYVNjcmlwdCgpIGNvbnN0IGZpbmFsOwog
Ci0gICAgdm9pZCBkaWRBZGRIZWFkZXJMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmlu
YWw7Ci0gICAgdm9pZCBkaWRBZGRGb290ZXJMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikg
ZmluYWw7CisgICAgdm9pZCBkaWRBZGRIZWFkZXJMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVy
JikgZmluYWw7CisgICAgdm9pZCBkaWRBZGRGb290ZXJMYXllcihXZWJDb3JlOjpHcmFwaGljc0xh
eWVyJikgZmluYWw7CiAKLSAgICBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmll
dyhjb25zdCBXZWJDb3JlOjpGcmFtZVZpZXcqKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHNob3Vs
ZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBXZWJDb3JlOjpGcmFtZVZpZXcmKSBj
b25zdCBmaW5hbDsKIAogICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCB1aW50NjRfdCkgZmluYWw7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMzJhZjU5ZjNmYmQ0NzQwOWY0Mjg4NjM2
OWZhMDhiZWRhY2I1ZDQ2OC4uNDMzOThmYzkzYzIzZDFiMTM4ZTdhNDVkMmExOWVhOGQzM2QzYWQ5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTY0MCwxMyArNjQwLDEz
IEBAIEZyYW1lKiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpCiB7CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1f
ZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXdlYlBhZ2UpCi0gICAgICAgIHJldHVybiAwOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIEp1c3QgY2FsbCB0aHJvdWdoIHRvIHRoZSBj
aHJvbWUgY2xpZW50LgogICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChtX2ZyYW1lLT5jb3Jl
RnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgbmF2aWdhdGlvbkFjdGlvbi5y
ZXNvdXJjZVJlcXVlc3QoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpO
bywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBO
ZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIG5hdmlnYXRpb25BY3Rpb24uc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSgpKTsKLSAgICBQYWdlKiBuZXdQYWdlID0gd2ViUGFnZS0+Y29yZVBh
Z2UoKS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KG1fZnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0
LCBXaW5kb3dGZWF0dXJlcygpLCBuYXZpZ2F0aW9uQWN0aW9uKTsKKyAgICBQYWdlKiBuZXdQYWdl
ID0gd2ViUGFnZS0+Y29yZVBhZ2UoKS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KCptX2ZyYW1lLT5j
b3JlRnJhbWUoKSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgbmF2aWdhdGlvbkFjdGlvbik7
CiAgICAgaWYgKCFuZXdQYWdlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgCiAgICAgcmV0dXJuICZuZXdQYWdlLT5tYWluRnJhbWUoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViSW5zcGVjdG9yQ2xpZW50LmNwcAppbmRleCA5Njg5MjlmZGEzNDc5YWFkMmJlNGExMGEwYjQ1
OTZhZTE3NTU2ZDUwLi40MWIzNGYwMGE4YzZmZDIwM2M1ODM0MjAzZTgyODBhNWM0NDU2Zjc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC03Myw3ICs3Myw3IEBAIFdlYkluc3Bl
Y3RvckNsaWVudDo6fldlYkluc3BlY3RvckNsaWVudCgpCiAgICAgfQogCiAgICAgaWYgKG1fcGFp
bnRSZWN0T3ZlcmxheSAmJiBtX3BhZ2UtPm1haW5GcmFtZSgpKQotICAgICAgICBtX3BhZ2UtPm1h
aW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSht
X3BhaW50UmVjdE92ZXJsYXkuZ2V0KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7Cisg
ICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5z
dGFsbFBhZ2VPdmVybGF5KCptX3BhaW50UmVjdE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9k
ZTo6RmFkZSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjppbnNwZWN0ZWRQYWdlRGVz
dHJveWVkKCkKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6aGlk
ZUhpZ2hsaWdodCgpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBpZiAobV9oaWdobGlnaHRP
dmVybGF5ICYmIG1fcGFnZS0+bWFpbkZyYW1lKCkpCi0gICAgICAgIG1fcGFnZS0+bWFpbkZyYW1l
KCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1faGlnaGxp
Z2h0T3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICAgICAgbV9wYWdl
LT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJs
YXkoKm1faGlnaGxpZ2h0T3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKICNl
bHNlCiAgICAgbV9wYWdlLT5oaWRlSW5zcGVjdG9ySGlnaGxpZ2h0KCk7CiAjZW5kaWYKQEAgLTEz
Niw3ICsxMzYsNyBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6c2hvd1BhaW50UmVjdChjb25z
dCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFtX3BhaW50UmVjdE92ZXJsYXkpIHsKICAg
ICAgICAgbV9wYWludFJlY3RPdmVybGF5ID0gUGFnZU92ZXJsYXk6OmNyZWF0ZSgqdGhpcywgUGFn
ZU92ZXJsYXk6Ok92ZXJsYXlUeXBlOjpEb2N1bWVudCk7Ci0gICAgICAgIG1fcGFnZS0+bWFpbkZy
YW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheShtX3BhaW50
UmVjdE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAg
bV9wYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VP
dmVybGF5KCptX3BhaW50UmVjdE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RG
YWRlKTsKICAgICB9CiAKICAgICBpZiAoIW1fcGFpbnRJbmRpY2F0b3JMYXllckNsaWVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIu
Y3BwCmluZGV4IDFlMGNlZjQ2NTFiOTNiZjgwZmI3MDU2NjVjNmY2MTVmZWFiYzJhODkuLjMzMDMy
YzE3MmIxYjI0MzhkYWZkNjBjMzQ2NDY2ZWE0NTA1ZTRhN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcApAQCAtMTg5LDcg
KzE4OSw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OnVwZGF0ZUZpbmRVSUFmdGVyUGFnZVNjcm9s
bChib29sIGZvdW5kLCBjb25zdCBTdHJpbmcmIHN0cmluCiAKICAgICBpZiAoIXNob3VsZFNob3dP
dmVybGF5KSB7CiAgICAgICAgIGlmIChtX2ZpbmRQYWdlT3ZlcmxheSkKLSAgICAgICAgICAgIG1f
d2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBh
Z2VPdmVybGF5KG1fZmluZFBhZ2VPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUp
OworICAgICAgICAgICAgbV93ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9s
bGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fZmluZFBhZ2VPdmVybGF5LCBQYWdlT3Zlcmxh
eTo6RmFkZU1vZGU6OkZhZGUpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICghbV9maW5kUGFn
ZU92ZXJsYXkpIHsKICAgICAgICAgICAgIGF1dG8gZmluZFBhZ2VPdmVybGF5ID0gUGFnZU92ZXJs
YXk6OmNyZWF0ZSgqdGhpcywgUGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlOjpEb2N1bWVudCk7CkBA
IC0zMTIsNyArMzEyLDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6aGlkZUZpbmRVSSgpCiB7CiAg
ICAgbV9maW5kTWF0Y2hlcy5jbGVhcigpOwogICAgIGlmIChtX2ZpbmRQYWdlT3ZlcmxheSkKLSAg
ICAgICAgbV93ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5p
bnN0YWxsUGFnZU92ZXJsYXkobV9maW5kUGFnZU92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9k
ZTo6RmFkZSk7CisgICAgICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX2ZpbmRQYWdlT3ZlcmxheSwgUGFnZU92
ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKIAogICAgIFBsdWdpblZpZXcqIHBsdWdpblZpZXcgPSBw
bHVnaW5WaWV3Rm9yRnJhbWUobV93ZWJQYWdlLT5tYWluRnJhbWUoKSk7CiAgICAgCkBAIC0zMjUs
NiArMzI1LDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6aGlkZUZpbmRVSSgpCiB9CiAKICNpZiAh
UExBVEZPUk0oSU9TKQorCiBib29sIEZpbmRDb250cm9sbGVyOjp1cGRhdGVGaW5kSW5kaWNhdG9y
KEZyYW1lJiBzZWxlY3RlZEZyYW1lLCBib29sIGlzU2hvd2luZ092ZXJsYXksIGJvb2wgc2hvdWxk
QW5pbWF0ZSkKIHsKICAgICBSZWZQdHI8VGV4dEluZGljYXRvcj4gaW5kaWNhdG9yID0gVGV4dElu
ZGljYXRvcjo6Y3JlYXRlV2l0aFNlbGVjdGlvbkluRnJhbWUoc2VsZWN0ZWRGcmFtZSwgVGV4dElu
ZGljYXRvck9wdGlvbkluY2x1ZGVNYXJnaW5JZlJhbmdlTWF0Y2hlc1NlbGVjdGlvbiwgc2hvdWxk
QW5pbWF0ZSA/IFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UgOiBU
ZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Tm9uZSk7CkBAIC0zNjYsNiArMzY3
LDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6ZGlkRmFpbFRvRmluZFN0cmluZygpCiB2b2lkIEZp
bmRDb250cm9sbGVyOjpkaWRIaWRlRmluZEluZGljYXRvcigpCiB7CiB9CisKICNlbmRpZgogCiB2
b2lkIEZpbmRDb250cm9sbGVyOjpzaG93RmluZEluZGljYXRvckluU2VsZWN0aW9uKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4IDM2Mjlk
NGFlNThjN2Q0Njg2MmUxNWE3NWY5ODRiZGNkNWVlYjhmNDYuLjk5OWZlMjVjMTAwYTMxMzc2YjBk
Zjc1YTQzMDdjMzFjYTdmZTRlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIHN0YXRpYyB1aW50NjRfdCBn
ZW5lcmF0ZUxpc3RlbmVySUQoKQogICAgIHJldHVybiB1bmlxdWVMaXN0ZW5lcklEKys7CiB9CiAK
LVBhc3NSZWZQdHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGVXaXRoQ29yZU1haW5GcmFtZShX
ZWJQYWdlKiBwYWdlLCBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lKQorUmVmPFdlYkZyYW1lPiBX
ZWJGcmFtZTo6Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSogcGFnZSwgV2ViQ29yZTo6
RnJhbWUqIGNvcmVGcmFtZSkKIHsKICAgICBhdXRvIGZyYW1lID0gY3JlYXRlKHN0ZDo6dW5pcXVl
X3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4oc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2FkZXJDbGll
bnQqPigmY29yZUZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKSkpKTsKICAgICBwYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENyZWF0ZU1haW5GcmFtZShmcmFtZS0+ZnJhbWVJRCgp
KSwgcGFnZS0+cGFnZUlEKCksIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldo
ZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKQEAgLTEyMCwzMCArMTIwLDMyIEBAIFBhc3NSZWZQdHI8
V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGVXaXRoQ29yZU1haW5GcmFtZShXZWJQYWdlKiBwYWdl
LCBXZWJDb3JlOjpGCiAgICAgcmV0dXJuIGZyYW1lOwogfQogCi1QYXNzUmVmUHRyPFdlYkZyYW1l
PiBXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBm
cmFtZU5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50KQorUmVmPFdlYkZy
YW1lPiBXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5n
JiBmcmFtZU5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50KQogewogICAg
IGF1dG8gZnJhbWUgPSBjcmVhdGUoc3RkOjptYWtlX3VuaXF1ZTxXZWJGcmFtZUxvYWRlckNsaWVu
dD4oKSk7CiAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDcmVhdGVT
dWJmcmFtZShmcmFtZS0+ZnJhbWVJRCgpKSwgcGFnZS0+cGFnZUlEKCksIElQQzo6U2VuZE9wdGlv
bjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIAotICAgIFJl
ZjxXZWJDb3JlOjpGcmFtZT4gY29yZUZyYW1lID0gRnJhbWU6OmNyZWF0ZShwYWdlLT5jb3JlUGFn
ZSgpLCBvd25lckVsZW1lbnQsIGZyYW1lLT5tX2ZyYW1lTG9hZGVyQ2xpZW50LmdldCgpKTsKKyAg
ICBhdXRvIGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZS0+Y29yZVBhZ2UoKSwgb3duZXJF
bGVtZW50LCBmcmFtZS0+bV9mcmFtZUxvYWRlckNsaWVudC5nZXQoKSk7CiAgICAgZnJhbWUtPm1f
Y29yZUZyYW1lID0gY29yZUZyYW1lLnB0cigpOwotICAgIGZyYW1lLT5tX2NvcmVGcmFtZS0+dHJl
ZSgpLnNldE5hbWUoZnJhbWVOYW1lKTsKKworICAgIGNvcmVGcmFtZS0+dHJlZSgpLnNldE5hbWUo
ZnJhbWVOYW1lKTsKICAgICBpZiAob3duZXJFbGVtZW50KSB7CiAgICAgICAgIEFTU0VSVChvd25l
ckVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSk7Ci0gICAgICAgIG93bmVyRWxlbWVudC0+ZG9j
dW1lbnQoKS5mcmFtZSgpLT50cmVlKCkuYXBwZW5kQ2hpbGQoV1RGTW92ZShjb3JlRnJhbWUpKTsK
KyAgICAgICAgb3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCktPnRyZWUoKS5hcHBlbmRD
aGlsZChjb3JlRnJhbWUuZ2V0KCkpOwogICAgIH0KLSAgICBmcmFtZS0+bV9jb3JlRnJhbWUtPmlu
aXQoKTsKKyAgICBjb3JlRnJhbWUtPmluaXQoKTsKKwogICAgIHJldHVybiBmcmFtZTsKIH0KIAot
UGFzc1JlZlB0cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2Vi
RnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9hZGVyQ2xpZW50KQorUmVmPFdlYkZyYW1lPiBXZWJG
cmFtZTo6Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4gZnJhbWVM
b2FkZXJDbGllbnQpCiB7CiAgICAgYXV0byBmcmFtZSA9IGFkb3B0UmVmKCpuZXcgV2ViRnJhbWUo
V1RGTW92ZShmcmFtZUxvYWRlckNsaWVudCkpKTsKIAogICAgIC8vIEFkZCBleHBsaWN0IHJlZigp
IHRoYXQgd2lsbCBiZSBiYWxhbmNlZCBpbiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVMb2Fk
ZXJEZXN0cm95ZWQoKS4KICAgICBmcmFtZS0+cmVmKCk7CiAKLSAgICByZXR1cm4gV1RGTW92ZShm
cmFtZSk7CisgICAgcmV0dXJuIGZyYW1lOwogfQogCiBXZWJGcmFtZTo6V2ViRnJhbWUoc3RkOjp1
bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRlckNsaWVudCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5kZXggMjNkNDhkMjlm
ODM3NjY1Mzg1Y2Y0MTQxYTBjNGY2ZTYzYzU1YzY2MC4uZDRjN2E0MDgzNGEyODg5YjJhMWFmZDFm
Y2RlMzcwNmZhZTAyNmIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmgKQEAgLTY2LDggKzY2LDggQEAgc3RydWN0IEZyYW1lSW5mb0RhdGE7CiAKIGNs
YXNzIFdlYkZyYW1lIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6
QnVuZGxlRnJhbWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZT4g
Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSosIFdlYkNvcmU6OkZyYW1lKik7Ci0gICAg
c3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWU+IGNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqLCBjb25z
dCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Kik7Cisg
ICAgc3RhdGljIFJlZjxXZWJGcmFtZT4gY3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSos
IFdlYkNvcmU6OkZyYW1lKik7CisgICAgc3RhdGljIFJlZjxXZWJGcmFtZT4gY3JlYXRlU3ViZnJh
bWUoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVP
d25lckVsZW1lbnQqKTsKICAgICB+V2ViRnJhbWUoKTsKIAogICAgIC8vIENhbGxlZCB3aGVuIHRo
ZSBGcmFtZUxvYWRlckNsaWVudCAoYW5kIHRoZXJlZm9yZSB0aGUgV2ViQ29yZTo6RnJhbWUpIGlz
IGJlaW5nIHRvcm4gZG93bi4KQEAgLTE2Niw4ICsxNjYsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
cHJpdmF0ZToKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZT4gY3JlYXRlKHN0ZDo6dW5p
cXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4pOwotICAgIFdlYkZyYW1lKHN0ZDo6dW5pcXVl
X3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4pOworICAgIHN0YXRpYyBSZWY8V2ViRnJhbWU+IGNy
ZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsKKyAgICBleHBsaWNp
dCBXZWJGcmFtZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsKIAogICAg
IFdlYkNvcmU6OkZyYW1lKiBtX2NvcmVGcmFtZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAppbmRleCBkNjQ3ODU5N2E4N2ZlZjNk
YzBiOTk5MzUyMTI2NzZlZmNjNDkzMzIzLi4wMTZkNzM4ZmI2MTJkMjQzYzAwNDllNTIwMTU4NjIx
MzBmZDk1OGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViSW5zcGVjdG9yLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yOjpv
cGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiAgICAgRnJhbWUmIGluc3BlY3Rl
ZE1haW5GcmFtZSA9IGluc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpOwogICAgIEZyYW1lTG9hZFJl
cXVlc3QgcmVxdWVzdChpbnNwZWN0ZWRNYWluRnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmln
aW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybFN0cmluZyksICJfYmxhbmsiLCBMb2NrSGlzdG9yeTo6
Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZp
Z2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgUmVw
bGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
OjpTaG91bGROb3RBbGxvdyk7CiAKLSAgICBQYWdlKiBuZXdQYWdlID0gaW5zcGVjdGVkUGFnZS0+
Y2hyb21lKCkuY3JlYXRlV2luZG93KCZpbnNwZWN0ZWRNYWluRnJhbWUsIHJlcXVlc3QsIFdpbmRv
d0ZlYXR1cmVzKCksIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwg
TmF2aWdhdGlvblR5cGU6OkxpbmtDbGlja2VkKSk7CisgICAgUGFnZSogbmV3UGFnZSA9IGluc3Bl
Y3RlZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdyhpbnNwZWN0ZWRNYWluRnJhbWUsIHJlcXVl
c3QsIFdpbmRvd0ZlYXR1cmVzKCksIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdC5yZXNvdXJjZVJl
cXVlc3QoKSwgTmF2aWdhdGlvblR5cGU6OkxpbmtDbGlja2VkKSk7CiAgICAgaWYgKCFuZXdQYWdl
KQogICAgICAgICByZXR1cm47CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>299306</attachid>
            <date>2017-01-19 20:31:41 -0800</date>
            <delta_ts>2017-01-19 23:31:17 -0800</delta_ts>
            <desc>Archive of layout-test-results from ews103 for mac-elcapitan</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>436183</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
AAAAAAAAAAAADgAcAGFjY2Vzc2liaWxpdHkvVVQJAAMXjoFYWY6BWHV4CwABBPUBAAAEFAAAAFBL
AwQUAAIACACDoTNKcGNKQAkBAADaAQAAPQAcAGFjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS1u
b2RlLW1lbW9yeS1tYW5hZ2VtZW50LWFjdHVhbC50eHRVVAkAAxaOgVgWjoFYdXgLAAEE9QEAAAQU
AAAApZHNTsMwEITvfoolZ5QHQOIQSkFIhUQkUrlukk1jcO3IaxP89mz6Q+HMJY5Gs9+Ox82oGQJx
gD1+EANHTxBGDFB0HTHrVhsd0ovrqWzfqQsMKI7Ju4m8SdBTwG6kHuaRrAwSWLEuPwkmp22A4EBW
9GQoUJ8rVVpZcmBfQ3IRZm0MMBGgfL2WDG6ArCrqOoO9uHBH4hycMW6WPW2CrFnXDazK52qzbtaZ
MNVD8bQB+pokIPV3MQRnX50huLr9Ue9PSQ86jy4agUlSHymHLTIMaJjyI6pD+4n8C3QZKN4W4UbO
LbWFJzxOX+RH7+J04pzrWf2ftzRybm6IxqQKPUshy/vJHZT604pS31BLAwQUAAIACACDoTNKFU07
DEcBAAAlAwAAOwAcAGFjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS1ub2RlLW1lbW9yeS1tYW5h
Z2VtZW50LWRpZmYudHh0VVQJAAMWjoFYFo6BWHV4CwABBPUBAAAEFAAAAMVRwW7CMAy99yu8Xkva
w06bNKkFumkaE4iisatp3REpbVCdDPr3C10ZILRJnKZItuL4PT/nCSEgetPKVsTRGA1G6TKLlrR6
kaZPQytVEc1JETJFClttjTDERjTEVhmOMM+JWa6kkqY9v4laFyQqqnTTigpr/KCKaiNot6HcUBGa
nfGCIPgXEZgbi6qTEMcgbgd3EOxDHHswrYFtRzIANwy2UilgIkAXG0kMugR/lmSZD042O07XWWql
9JYKWLXgL9JsAaPp62ySLlI/9MAdsUfAYfuhNUbXc60Ibh5+qmMymK+p6OqSwTSWemCO9SfyCcw9
X5L1zUXPM/oDdDrLCx6T58k14nitrXLLUqcxhCUylKiYwp7rQu8RkbzvC/cuO4eThvAbfiw/Ndpu
DkS/7nI9IXSf05tbWqXaGTbsPDt8tfPpzDrvC1BLAwQUAAIACACDoTNKTqtOreUAAACRAQAAPwAc
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
bnQtYWN0dWFsLnR4dFVUCQADFo6BWBaOgVh1eAsAAQT1AQAABBQAAACtUk1PwzAMvedXmJ7RfgAS
hzIGQhpsYpXG1W3dNZDFVZxs9N/j7IPBGU6Jnt97tl9iqt4KRJIIW/wgAUmBIPYYoWwaErG1dTaO
L9zSon6nJgqgMobAAwU3QksRm55a2PfkVUjglZovIwxsfYTIoC0CDarzUZkKIDhuMFr2x17oHO8l
q7a53OOOlKP8lgKFiTELr5MdBrqGkRPsrXMglFlCwerg3EGxLFerArbKwg0ps+Psqy3rEYpqtqpg
unhezmfVrFBP81A+zYE+B92K2rsUI/tXdgRXt9/o/Wm9Ay49J6dmul5INIE1CnTohCZHqwb9DuWH
0UVQvmXgRs811WUgPKov8GPgNJx8zplO/8nvkv2fvHK651foknPjEoNouPkDaR7G/ErYmC9QSwME
FAACAAgAg6EzSjEWh21QAQAAkwMAADIAHABhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHktbm9k
ZS1yZXBhcmVudC1kaWZmLnR4dFVUCQADFo6BWBaOgVh1eAsAAQT1AQAABBQAAAC9UsFOwkAQvfcr
xl7Ltpp4MjFpgWqMGIgl4nVop7LJ2iWdXaF/71KLQEATPJhNdtPpvPf2zT4hBEQvWtl34miIBqN0
lkUzmj9K0x19K1URPZMiZIoUNtoaYYiNqImtMhxhnhOznEslTXP4JSpdkGtcYk2VEbReUm6oCM3a
eEEQ/Kc25saiapXjGMR17+oSgnaPYw/GFbBt0T1wKrCSSgETAbq9lsSgS/AnSZb54O7L+Eaus9RK
6RUVMG/An6bZFAbjp8konaZ+6IFbYoOAre2+NUZXz1oRXNx+V4dkMF9Q0dYlg6ktdcAcqw/kPZj7
fUzWNRcdz+AX0L5WB9sO6OB6p3WCu+RhdI4bXmir3HSoNRXCDBlKVExhx3VkcIdIXjeFG3e6LCQ1
4Rd8V76vtV1uiX40/1fCk2M5nwzaGXfRKq1SzQRrdonZPrRLyUFwvE9QSwMEFAACAAgAg6EzSoDu
+PwGAQAA9wEAADYAHABhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHktbm9kZS1yZXBhcmVudC1l
eHBlY3RlZC50eHRVVAkAAxaOgVgWjoFYdXgLAAEE9QEAAAQUAAAAjZBBTsQwDEX3OYXpGnEDFsPQ
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
d8eH0R93J4fcHx/Zh90fH/X3vT8+GhxEf3w0PKD++Mj5f+mPj9zD6o+PRgfbHx+d/ff98T8S5vj3
6WBXPuSfeHjTU39fyr8BUEsDBBQAAgAIAIOhM0o4Brje1gAAAJcBAAAxABwAYWNjZXNzaWJpbGl0
eS9tYWMvYXJlYS13aXRoLWFyaWEtbGFiZWwtYWN0dWFsLnR4dFVUCQADFo6BWBaOgVh1eAsAAQT1
AQAABBQAAACtUMtKxEAQvM9XFDlrPsBbWCMIqxtIYL12ko4Z7M3I9MzG/L29ioiCNy99qK4XBdfN
XpFYk92ZEih6uhbqWbCG+KIIi2FMYOETL0lL5w4LNA8Dq15hCxmrF4Eyg+xGzyaaUDRV2xY4GYue
2ZhTEAkrj+g3FF3ddtgdHpp93dWFebq76n4P+nD1vReftl1YUjQRx3IKQ1Ye688O5cg6RP+avJXT
OWQxU0b1dPuN36CJfPYha4kj6e9n+f95j/yW/si6TPE12ZRFtoai2eMyfczs3I85nHsHUEsDBBQA
AgAIAIOhM0rJhJ++MQEAABADAAAvABwAYWNjZXNzaWJpbGl0eS9tYWMvYXJlYS13aXRoLWFyaWEt
bGFiZWwtZGlmZi50eHRVVAkAAxaOgVgWjoFYdXgLAAEE9QEAAAQUAAAAvVFNS8NAEL3nVwy99JBu
9uJBPLW2EcRqgy3W6ySZ2oVptuzM2ubfm5SCVPAiKguzMB/vvZlnjAH74jnuSOwMFW2+Xto1lQ9O
z99tdFzbZ2JCIcvY+qhGSdQEksgqFquKRFzp2Glrd1hZDITm4HRrMDg0jCWxoeOeKqU606MmaZr+
GzFWGpFPtOMxmKvRNaR9GI8TWDQg8QQzgo4ADo4ZhAiwi8GRgN/AoJgslwPopAq+Ude58cz+QDWU
LQxW+XIF08VjMc9X+SBLoHumn4ALfVPfaOjmKGQbX0WhOmfaUaNZTVIFt1fnG3ACw8nr7DNzA0Wg
d+ejDH8V9YmOOkzSu8n9/CeIsvWRu/0JvlGbwRrlazH7A8J+kW/I4HSvs7+byNwWGDr8/h4aIvVW
XbiXfABQSwMEFAACAAgAg6EzSh3dZuzIAAAAYQEAADMAHABhY2Nlc3NpYmlsaXR5L21hYy9hcmVh
LXdpdGgtYXJpYS1sYWJlbC1leHBlY3RlZC50eHRVVAkAAxaOgVgWjoFYdXgLAAEE9QEAAAQUAAAA
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
0sc+Cw0100SzlqIpzOdK7emy0htypvWq+qhe91VjhlcbkDFmNi0yL76Ed8tY/p8GigVX696VruHv
S/KZeTliMnK4niJlcu7PApz7BlBLAwQUAAIACACEoTNKwUidgDwBAAAoAwAAOgAcAGFjY2Vzc2li
aWxpdHkvbWFjL2FyaWEtbGl2ZXJlZ2lvbi1tYXJxdWVlLWRlZmF1bHQtZGlmZi50eHRVVAkAAxiO
gVgYjoFYdXgLAAEE9QEAAAQUAAAAxVFNS8NAEL3nVwy9VEk3exI8NtYIYsXSFut1kkzqwjSrO7O2
/fduigreLbIww8DO+5hnjAH77DnuSOwtKtpqs7Ibqh+cfrWb6Li1S2JCIct49FGNkqgJJJFVLDYN
ibjasdOj3WFjMTg07D4o0Nb53uwwvEci01KHacXQ4Y0apbbQg2Z5nv+HBmw0Ip8UTKdgribXkA9l
Os3gqQeJJ8QJJC7YO2YQIsBUgyMB38FoUa5WI0iqBbeUfnae2e+phfoIo3W1WsPs6XExr9bVqMgg
PTNswC+pM99rSHsUis43UaitmHbUayEaXL8tNbU6Kj0jR7oYly/l8r6cJ1vjS3ACY99147MAoySr
OsxZflfez/8QXl595HQmSmfsCtigQHFGkh8n31RwOtdXwl1kPi4wJPTBt4ZIQ1i/8ss+AVBLAwQU
AAIACACEoTNK7zZYw+0AAACfAQAAPgAcAGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbGl2ZXJlZ2lv
bi1tYXJxdWVlLWRlZmF1bHQtZXhwZWN0ZWQudHh0VVQJAAMXjoFYF46BWHV4CwABBPUBAAAEFAAA
ALWQQWrDMBBF9zrF4I0TaA3tDUzwopASU5vS7dgZxYKxRTWjBt++4ySbHqCbP5Lm8/hfM6bvTPTi
5vvh1fVTEFASNZ1QTQgeS0iRCSaU2+MYU6JR4UweMytgCvjM4YdAFDUL7KL3+8q50wKSx5FEnmCN
Ga6BGcRwaJoCCUQPRVt3XQGzufBC5vSROV7pDMMKRd90PRxO7+2x6ZvCmG6zA96oYQgcdD3ERS0g
U6p8HLPQuWGaadFKNIXlUquNISt9ImfalfVX/fFWHy1wuQfrXFrc8j+4KFZTt/ud/vgMn5nXFpMB
N5umTM79KercL1BLAwQUAAIACACEoTNKJFxckJIIAABUHwAAQgAcAGFjY2Vzc2liaWxpdHkvbWFj
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
AACJoTNKAAAAAAAAAAAAAAAAFgAcAGNyeXB0by93b3JrZXJzL3N1YnRsZS9VVAkAAyKOgVhZjoFY
dXgLAAEE9QEAAAQUAAAAUEsDBAoAAgAAAImhM0ol4NMILAAAACwAAAAxABwAY3J5cHRvL3dvcmtl
cnMvc3VidGxlL3JzYS1nZW5lcmF0ZS1rZXktc3RkZXJyLnR4dFVUCQADIo6BWCKOgVh1eAsAAQT1
AQAABBQAAABDb3VsZCBub3QgZ2VuZXJhdGUgYSBrZXkgcGFpciwgc3RhdHVzIC00MzA0ClBLAwQK
AAAAAACIoTNKAAAAAAAAAAAAAAAABQAcAGNzczMvVVQJAAMfjoFYWY6BWHV4CwABBPUBAAAEFAAA
AFBLAwQKAAAAAACIoTNKAAAAAAAAAAAAAAAADQAcAGNzczMvZmlsdGVycy9VVAkAAx+OgVhZjoFY
dXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAImhM0oAAAAAAAAAAAAAAAAWABwAY3NzMy9maWx0ZXJz
L2JhY2tkcm9wL1VUCQADIY6BWFmOgVh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAiKEzSrBxfSn/
EAAAfTUAAFIAHABjc3MzL2ZpbHRlcnMvYmFja2Ryb3AvYmFja2Ryb3AtZmlsdGVyLXdpdGgtYm9y
ZGVyLXJhZGl1cy1hbmQtcmVmbGVjdGlvbi1hY3R1YWwucG5nVVQJAAMfjoFYH46BWHV4CwABBPUB
AAAEFAAAAO1YeTyUe/tmImtH1vRaZixFqaRisk9R1OlYchiyjA5RxGTJMobhUFSY6W1xWiylk4oo
ysg2KUwSkheFMYxllAZjX2b5fed8fs3M+3l///zez/v+N/4x88zzvZ77ez/3fd3X9b3k4uSwQfZv
smJiYhuOONofFxNbBxMTg3hKrwdXbsf8fg782xZ9yDM64PSpgNCo82Fip/bt2xNobhpganpq7+5A
s1MBpoEnA/eZwOG/BQTu3W9uah1x/hZYJB513OGgWGm75lcxMVPIEfsDv8aJMygktPsS23YG7l/Q
vNVkC+vR9upn9ob2LZddGtXuHc19cnbz3+/Z9e6Q6YrV9V2WstC3q5T3dTVLI+R46EJkTp28lC4h
8UYnWU6d1TZptrVRfGQkqo0+1hvvI6P6wRxe1jsS77ZyayRq+mZP3ydnktXfpX3qseYt+s3SKfDB
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
zxH+2SOaN7g/M7hjuImug0VFggtNq8PMBdcOXKK25GCme6vajLPJV5eb6p0b3qL9vexvxcNm0mwK
k0n4481NTS9rojlEYMWJgV2l5d4Vwem17vi16mQSIRRZYJTGUqOf1Rpd299sOj1ZiWWesI9mB9mL
fPfF0Wvw8tXGROhGHfsA4MIKuG0llbsdYmvSXF6veaYAHYs/YMFOhPslNVB1iW6a1a+cMILo4DBw
Hn/8+SUVYhEnWXmj4yY7oWv7/YdRsk/+MzDdL7ksw6/HJEah8vPjzfTlt5erQ99RAviw82STs+QY
2AGLQ2ZQlTeY5sef3PcBsmNySkomUhgpjBRGCiOFkcJIYaQwUhgpjBRGCiOFkcJIYaQwUhgpjBRG
CiOFkcJIYaQwUhgpjBTmfwPDWHQ29JiCMb88lwF/u51dd5Q6+V/+F1BLAwQUAAIACACIoTNKIiIw
iHwAAACHCAAAVAAcAGNzczMvZmlsdGVycy9iYWNrZHJvcC9iYWNrZHJvcC1maWx0ZXItd2l0aC1i
b3JkZXItcmFkaXVzLWFuZC1yZWZsZWN0aW9uLWFkZC1kaWZmLnBuZ1VUCQADH46BWB+OgVh1eAsA
AQT1AQAABBQAAADrDPBz5+WS4mJgYOD19HAJYmBgVmBgYIrgAAow7Je9u4aBgcPP08UxpILx7QVG
XgYGnkMGf2bvPHq7YUnwBhNBRiYWDgEFhwYGXIwAxQJRcTX8akYZo4xRxihjlDHKGGUMa8aBPQeY
7Q0YNtRF3ZsGamF4uvq5rHNKaAIAUEsDBBQAAgAIAIihM0p4cYqXpAUAAHASAABWABwAY3NzMy9m
aWx0ZXJzL2JhY2tkcm9wL2JhY2tkcm9wLWZpbHRlci13aXRoLWJvcmRlci1yYWRpdXMtYW5kLXJl
ZmxlY3Rpb24tYWRkLWRpZmZzLmh0bWxVVAkAAx+OgVgfjoFYdXgLAAEE9QEAAAQUAAAArVhLb+M2
EL77V3ANFJKRSM7u3mLZQOoEaIAUW3RzKYIcaIm2iVCiSlJx3ML/vcOHJEqWk22yOdgy5/Vx5psh
leTT9bfl/V9/3KDf7n+/W4ySrcqZ/iI4gy9FFSOLVMqv0zVligg5XeH0KRO8bB4iK4l2VG2jFRcZ
PAuc0UpGuMgiQdaMpIryIsJZFmv/ydT6HSVS7fU3gr+Y5nhDlrxQmBZEoH/Nqv4ruaTa/hLhleSs
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
dR4uWjPzbgj6X7oLzXl7WTh3h/Fjpw97Iy+gb+xi8+vTOvSD+2OlAXbnrEJrfobez9Bvzgcj5UZt
XStyL4/aWNkhbjS/tJ4eF8edojUfbQf3WyEVBD91Bl3efVzdj5PYDmgHU5P4uu+ubD70DXHkEBmi
tmcJvCa7Wyy8ndkX5Ln9N9L/UEsDBBQAAgAIAImhM0qscASgngEAAMgDAABQABwAY3NzMy9maWx0
ZXJzL2JhY2tkcm9wL2JhY2tkcm9wLWZpbHRlci13aXRoLXJlZmxlY3Rpb24tYWRkLWJhY2tkcm9w
LWV4cGVjdGVkLmh0bWxVVAkAAyGOgVghjoFYdXgLAAEE9QEAAAQUAAAAlVL/jpswDP5/T2FFOqmV
RguVOlUM+hT3AoEYiC5NosRA0bR3XwLceruhVcsfju34cz7/KDrk4voFwiluSBw0v2HJBomjNY4Y
1EYTairZKAV1pcBB1pjMBltxJEnh9bWTHgg9BdlxCgLBYaOwJmk0mAa4BlR4C9lglNSZnoBDxes3
4YxNGqkIHQxc9QhSS5JcqQl6K3jICjLkdagFOqlbGDvUH39AAYpPAd5xv5GUW6vkHBOsQ3FcGC/s
PU1Rnw0/tPBj1uKxxsvIPQdeeaN6wu+/38jYHFJ7f3gUNvTJNXcph1P6h7dD2Xb0lztybp3ptUhq
o4zLQcW41vFpCfq5cDy8F/c/TLMNqt+2uF42qV6eMHVtxXen8/krPER6OO8fmGTE6k1S8mkyOXhO
vQtj2WWX9GUPlerd7mzv++2ac8U9JaZJaLL4oQFLkY8qV1xxXKdbHJc9L+KE43JX5l6yFFI4wel9
j11YJAi8VMkqFT5kEGMYTLNc9p9lbO1KVK/FMYL+hc9mfPYEH4gObbiEHKAONfqQYi05BgX3k8df
UEsDBBQAAgAIAIihM0p6ZnI+jAoAAD0uAABPABwAY3NzMy9maWx0ZXJzL2JhY2tkcm9wL2JhY2tk
cm9wLWZpbHRlci13aXRoLXJlZmxlY3Rpb24tYWRkLWJhY2tkcm9wLWV4cGVjdGVkLnBuZ1VUCQAD
II6BWCCOgVh1eAsAAQT1AQAABBQAAADtmPtf0vcexwHTzHKaOqdpSuXStgloalImuGNN5oWObh3n
pSi1VTan4QVTLpZptZJmKx1mrGU6s0nbWYlXONkks3SpE1siEk4yr4gIisL5eh7H75c/4Tx2vv7i
4/Hmc3l+3u/X+wLn90V8ZGmxwQKBQFiSQoIjEQgTNAKBijY3AyyczNOpwL9t6Xui0xOOJiUkUzO+
QOATD3v7Hkr09jqC8/FJ3J6Y5LM9afshL6+EQzhvnN+OpDjzCyRgE5Ia+dGHiNpO51EEwvMhKTjo
ExpyQhKb8nIEdfbvjSTeVPke77bvE546LxQjZ124uB/e+uTag9vSb56S45D5j2ywscmKfzldeKlr
bGws7LIS+G2elrUWXnJbn2BD00xuNEetMrdGE1mIvLdNW2KUMZg9LAQStLmbrrvsnt0UAtmEHJTZ
Yw6n1miZ8ApguhJwwI0I2ijhSJPE8HDxZsg0REKaDJNcsDZo0HavkoX8ubIyeT1kmq5gIWfc2O+s
sQZt0VFCxGdRPffNIRMtcmjiCm9w6CvC0mzPp9Lfl5aWJEp5Da+lIUc18kwiPshc+lP5bId0gK6b
qMuS0jUSiUbKZGo6sILcedWserb0ALeIrpubKFFVqqpE6c9GxTINVdrb2toqiMie3FkoJzAWtTxV
bhCE74zksq7f8qWNzz7TyZy0VIyyH39LnDM+yL7Evj+l6l/aTQbf5ZonoaMia+Z+Wj/TrVH2v6aN
N/QoS57M9O+GFqXmAF5r2xm/sNUwTXqUwCtX2Xc6uohEGInuum7nNci7bhTWgFB6Rn4ztbpObns5
tL0Bs+LlgyiG2bDZwtzoI8tvXnuu+CdzM7CD+FysXTVsVtpkCgbT0twB/Y/3ZL1fp75JS24LXLzY
zhGne658jESFAkDFT9pulO1tl6X9eHRv+/0KSeHKk7BIQn6LsqVKljbqdW+2uqOb6lRlw16hRKOH
bC9fuupjyJuR89iGXGfdTwo2W/k5dHisNY744LeHjo61vn4jmm+Z9L2JhZAUtAIg7MwLk659ekVk
T3+0jhMf3w5qoM8OR+zrjZPFdNHlBCZdr7ZYr98emLvwU8GdZFAUYcvuNLiEmci1aRP8QMv6B3zd
irBSYoWIFzRBD8Kf8VS+kH4Y8yoZ9IrnWsArxxW9N6cH0rqaGbfr5H4g9KqCVesub/JzNxIoDnDu
xR/whUZJsgnQ+rlnJGiX+UXA01uOd24ySogQIcLxMNUGCXlkCwB8jkM1krWDDY5Y0H892Ci1zrGQ
3t+POKNgJBjpr4rkl9oJFHDS57uzBqg8brrtaoiH9i7QNK4OkZsnfPyLXFWqdcX153hgXXjwAYV1
or6864WLi4tezc8cODYU5rgI9Zx7BUB/KXh1QUybLFuaH1PxxOe8BZXkz/r2ZViCzyMJEUrNEAEV
qNZanXcHcfcDsPtPN/UljXD3PhUceF+02ADsb2CPge8ZDwWKSrRU9eUsWxCoV7Ud/upvULdwA7jd
KsW7ji5kXzxGizuZG6YpNQyIuqm8qqFO0Ed1gLdXcQIu5s2HlH6P3Z3VGXtqfDGUfYPqDTWAoUwg
SO9nzPfvWFC95J4akDX5EhzxmsHCdQx38KWpd4Qvo6zSB76wuIunpEQ9btxs1D3d0cnHa1N/TLY6
HUVQ+6v5b5vHnQZPLwA6vBMma6LuSP5dzzenVryytEbrHp3XaUWw1sdwi5wnXb+z+RoMthwViHxB
C4pqGr1S2Jowwa8q2sBl3PWcAnfTLYDeY9HMVa15SJW+JvNc2QWKooOnckQKbDODL6KKPMvH8JBU
yGsGmAylrNqkKTM+z8o1ME5TMDlXIWzMmrqRK/kKXKZYZlJk4zlG4nwHkCJWSH3PSHiKNQ7o/4FV
TWrmICNv0DSCbtAvmda+Kb6FsrKyulW1E2yalCAgNGs9bhgPSd5A1iTFxV81OsoUyD/kr1FG+Re3
V4iov1hTYzxKoSmsD76jXTDa1wGAlqRlfGqU7/aAlEztyEb5nuoICNW7tvZjo6Q8DWQN69U2o32Y
LamGeUN+S43hdxWboNfumdHr9aTn8wakrl7u2tgv29kzxQ2kL8xodVOCKf3CGK+RYFhUTQJr+cAE
Jm0JYCypxY2jadoFYA4zzCykD8yWdpbVesWPaZX9zVjlYhfBkHu+I2WOU6j3c9qH++/dxDCKmMty
bjl/8M2J9NQP4seqdc7MM7skqm90gRnNt3U5RRD1/lWDKe8+vn/y+oylflMHXuTSiVdo5Mq0zuyi
d8Hn7nu7X4LAY44nUprSfZwDm6MbOrupouylb8FziPGULJNh3M69gheE68yPlbc0/n/+UQSVun12
wAn1fR4OzV2vs38V5HrbgvWATBET8hntDV3zFcPF+LgyiO0a4HfP+2mH7eUjwR6FoPtPRFBKTIa1
TtpRbkC8irs7XBMY4KepC0JDrn/Hvl/SxXJms9sz9eqzzYI4Pe7UAfmgmMacNJpNvfLiGagZhzZO
F2Gu+olSJWIeUA0ajeiUGlSjE7qQ7Fq0tr7Pmt9HL5KWEUBw6/5i4aTZYxv9LPlmn8tqffbvxb8o
wNjPYSisRdWOIZszhxjP5sWhzPkI/JHRgC5IRB7Lc2XKsQ0OIvb70sEJSKdNd1jIk0H628w+391Z
i/yhiXgoRYQjy2Vt/88+ISN1B8dK5zPo4RDuWiAL7GMu50GrI4DV5XYTX0CS71+W6Vn7RKMcsAUy
xX1PThkk3AdAWpy4aeoIMY0HA1Wb9HxwK5QongB/7NEgM8jru9bjiJmRv9SRYCQY6a+JVBs9Cwxd
/8yKHSv9/MthBPQhDzgzzpp+LCysayMBQ8sp2QoR4IFm8eRqQEDAwEZCbW5O3Rboe/sd4E2ExR6P
aJ14kaPilUxmPfEKVWRDBZoYJETMD3TPhhu6CSXv2XlsgQj/U35kCmxRaEOvtvRgll6dZsY0unZ1
nsTyshijpuU7G+bvU+sJ0NZk8/EU1lNm2+GFU/qB27IqmdfuWro0VIAVQ8PR9HXhS8VbfLUYO7/t
UbfQf92N2+IUyR86iP5eI5mIwfuPMMsxGVh5EmYC+np4YZntZmnopTOt6qUIoy7JNM3cQXygH807
NCsVVNwAOwR/4zLty+rOXVDT+M0WaBrfMh+mTpCDK3WuLioBRnVCJTYqed9h7jUiT3qc2OAidnHt
abbSxDdouqmFTcYz3lpUo65rmrEwO9rhbh2VLeL6h0kXXZnNn0yGrn64TcE9+XSTYpsI02xlVJtp
nss0bFdCyzX1K7q0KZuqabUi5GaHrW5iGhhKfzKkOL5pnkRvezfWoysHEt0+Wxzx+KX2UBAUDczc
+R225VBcw4WIat+tWCgm91hIGww5HZKUL9Kkoq+0CdLtQ5RZCD/gOfQjTy+g/5iEGQjGHPhWLpsJ
djcC4TO1izX2MQeM5hIOMIgem9vqC91dwUIW3w0/Cq0JB+5+UdYL7SkG7v7Z7yZ0tw8wAR/5MhJq
hyEWDuj2P/IhAf5mhyNymklQtNDbKCy3ZFuomxGjhAgYBAaBQWAQGAQGgUFgEBgEBoFBYBAYBAaB
QWAQGAQGgUFgEBgEBoFBYBAY5P8RZJowPoXD2hVsUiCAP9KeiODaDymn/w1QSwMECgAAAAAAjKEz
SgAAAAAAAAAAAAAAAAYAHABjc3NvbS9VVAkAAyiOgVhZjoFYdXgLAAEE9QEAAAQUAAAAUEsDBBQA
AgAIAIyhM0qeTWUzBwYAAGdAAAAkABwAY3Nzb20vY3NzdmFsdWUtY29tcGFyaXNvbi1hY3R1YWwu
dHh0VVQJAAMojoFYKI6BWHV4CwABBPUBAAAEFAAAANWbX2+jOBDA3/sprFarEh2khoRuem+rXVU6
6d52de8GHOKrsTnjNMl++hub0CTNn7ZpDVQqxIHS+XlmsGfG7q8Zq5CmlUaPVLEpo/BtRjT6/vPn
P4TPKZLJvzTVFUplURLFKinQQqoHc0EpuMNXw4uLi/tvf/2Nfi3k03MVuozwl0s0lQqVSpZU6RW6
XLBMzy4RURTR/+aED5GYc44AQUiNiFhLQx59hD9CNBM5umaigqdp9oM9Diu94vR6cFgeLdqVp9oW
iMtluwLTtjtYtCtwzETbFtStCgxxmbYq8PZx0bK8Wbse81i07DPBgiYPTAcp4akXhBgGAfQHgs8v
g5Z9F4ZzIrKXBloj6uOlK6mJpl4YZzTf63ejIq2IqOBW4UoHDcUwjhXJOueIMM77wIGHsZ4r0b1d
1t5hvfQ8W7nx3rniXjYvitWfNzcm2BqWYt+LE5I+5ErORRawguTUlbK2YXJFqegNzZZqrAnfQ+rG
kInk2XP5Uyk0eBPLZ9qVkpiYQXSuO5Bcd9ha47UQbjSfgoE1VR7Zs38KAFQ408BacOURH10PrzsS
b/ttzfAmHje2IFp3YAgrtexE6pPyX8PgKACCJ70xBH8+wj4ax6YRwHmfhbPS2TxrIEILYQHCGsNc
aZ/jsDLquf8sTjeGG5mA/SsAWAp72pvBpMqoCiBMYfPKWSp4OwbxN2gSdQQwxh0JPmgB6ydv1Imj
NztPvCiOfezjPeestCyDVHKpXCnn6v4+jm9v2xe8221rjleyuDFDKfkqlwKepUJmGQwajdtAc2La
9myu2y/r9tb1ydYDTfNo3mGGnaAk7vL1pj9Cit9USR9BAm8OH022GxPTiOpG97AfrnzrVw5V4cYX
Q1wdk08EJDmaSRFkc2Ub7mqHuOgFRtWM1ucAuYrGsv0Y0OFgmcBHqwJtB63WXxDtrmCiaCXnKqVV
nfsncnk4/a/naZv6B/UTLmsVGypQUe+YnmnqqYryPmpHgxyK0AiNT1Nw5k51VjyKuwN40kBdVn8b
TusvHsIm2SolM+WHvRFhrip3o9EuVS2rZgpR6KMF2S9LtQl0Sk0HXsE387sxNdMEvAmZCh8KIQG6
sXkSUYzwQzU+Z7XNLYwJUIS3QDGj/JFqlpKuSPYUUpdAz2R1Y8Am9DFrQIwK7XEmKFE+4nSqESRN
61YitZaFj6ZKFt5VmqYDH+56VxjjQWd1/z1480m4qebAj63rxBGKsW3V5N++/hjh7zU8ZI/EC/0w
vvPvJpBBwlUblAQmWfTuTCR/hcO7+9uoR108zz7W83qnLkdxte3VppcpUymnAAdaMYgYd2bN2ngb
NAMDSNFo3BskLWuv6iHaDpL16A+Ddzu4pkpWVTAlGfW2lyPpkhQlp3YS99HxO/GBUkLb48+RLmww
DvQCiOnOzUl/O/I2W+wMpy2rxtGiNOVyYatex4ojEJsGik45iHBWobAQJmA6a9qz2zBKQBN6e8Yy
0xrMbjAY+CgcDAadd7DWcl0Y6VeP3fgWRkHUVFyRohnEF2hz4VBtaBuwmpFMLlxZpD8kZlmpOawZ
6zjM/AxHgy419LL1rC+fq0pHez3mCUuDhP5mVHl4GJn4dhiak2mGp/dyMVsE1qwAkcF0LlKXxen6
Re8PT6VpWXkjH1GR9UhNLxt0KyQ8F9vpxtMR7nTjqRXADUhslrtifGJl0TlMlRJOvcgfd4jwQBe1
TfyoW8sURCu2BKce+3gY+4E52S8HVvPb3g/bOK19ud7hQo7qj8K872ZKOYbR3A/M/irCnA1PdaGu
W4acr8pZ1TWFoiUn6f7iZtsc275hvfftJnJbFlgvx1DtHdzAjMLlbtK4uRMtO8+jD8NXBeG8Ydyl
T1he3xj1Ff7Vmt9J/1tQhKOx8zO636d0u49wt0/rZrkiqzras/9vhipaMuId/N+z5pWaMl6ve7qJ
+9YAwLJhizvDOakfa/p3AbsxakaqWSKJygJFc8iePE4SylG91HKU6/lTrlR6kg6F5RJFcIzgGEMA
i478utkATkQOT5iSjFml/QrH5ETI24v+NV7TLyW83w0v/gdQSwMEFAACAAgAjKEzSnD9YVShCAAA
7GsAACIAHABjc3NvbS9jc3N2YWx1ZS1jb21wYXJpc29uLWRpZmYudHh0VVQJAAMojoFYKI6BWHV4
CwABBPUBAAAEFAAAANVcUXPbuBF+z6/AJHMTekxKpCQ6Sp+SXpqZm/ahU9/cPUMkJKEBCRYELft+
fQHQiuVIMkFwQSsTS6JF49tvFyCxAPdLFEVo+gdnTUHq6Rcs8fQff95O/ySrf1L5+PH3hrJ8+h/C
CK7JlOEH3shIklpGgtQNk/U0q2te6Pc7zBoSZbyosKA1LyNyX5FMknwi7+Wb6+trn7ZwJhvMjKVP
n1CUhEkSo+v249OnN+j3La2RxkJ3RNA1Jeq3LZbo19vbPzQW4qv/KrI1esJEOy6+6S+EUGfYw+QN
Uv+if3++vUW/7/j3pjV6O4t/eYvWXKBK8IoI+YDe7mgut28RFgSR/2lq55qSwrmpGNA2ru6d22YD
zBbObRe0HOCtdG2bxFXm2vbmbufedOscqLvCPVTRjqy+URllmGVBlMRqnKBrpD5/uXKPvro6cJl3
DfaSy5eBBJdYkiBJc7I5YrMnLgUua3WqsGC2B5ykqcA5JOQsjjfAkPEklY0oQR1/jKTpHLdgdHZa
I1iQN0Xx8LfpVN+AJ1V53HkrnH3bCN6UeUQLvCEWLhzibgQhpQ/gA8ImRkOMdkZqxVn+I9Sal1JF
nm620oI6LbdqdpPDQFoaxl1bvE7XMhUMSUSAj2KVKSxS2vB6xKgDHKL3k/fDkQwb42cv6E5nsZTD
PDUA1VCA797ZwHXfe1UOFCzUbBCiOESLVB9E6v0YltHK5g6k8RKDZ7CSFlF/MwjyNMX2BudksjMy
cz1FflBYBtC8Hd0QuMiJiNRtlTa1Tc5xs1BIU7ScDcdaxMMxTrpoYtqTafcw26yCWZqGcRgf9Ukt
eaVyfsaFBeV3X7+m6c3NIIznZIy/lrCdflacPWx4GZA7UvI8V4NxH2J1uNTH5l1/b355PD74fnnQ
YH94dtLWwzmqsFW6tqdW8vIvIniIVP6mXyFaHh4s9cGsPQC1Cx4S03Eevers7CSuz0HhUmUIkqoV
bN4Ic2C1JIkLaMR6f0G7YFvMHvnx9GN3Ea7Uh2tbY9a41YFilcUKUvNGZKRuU78Vvz+d/bW3PZP5
RW0Ly6zzyYAi7hP+B/7fU9thBLqvAzRDc7R4GZBRK4cMEkpBsL7zahep/ZCHDB0U60yl4lRnn0fD
sxG11Sh/bqBt1sInKAnRDh9n8I7YL5E/MYh6U+mMJZVYRR7pJQpKVMoxNZkJFhSzU4sUmyXTAeJS
ASY3CnBL2B2RNMMAoEc025WVo9nOCO1v1Xr3gar0PmC0JFiEiJG1RCpNeTxacSl5EaK14EXwLsuy
q1CdDd7FcXwFsYo+4qE/MdN5ufoxGXo6Q2lsjloSnz98mce/tjxU6oWDJEzSj+HHpUq/1Lfmdh3p
TCv4qGfpd3Hy8evNzA9bt6iZrr04z7tnZ0PwiXBGRcaIsqMc1NbiGCLGbUifrGhchT6bL3ygS952
m18rz9BN74PxsL7SM8HrOlrjnASH21PkHhcVI+buG6LzZ9ITie6AK+gMmyfEE4SUcfLs5HIUTv0i
9OzaHtnL7q1DwvjOLHrOpe5q1o4EWTOSWe0BGjw9aTndGc0ecaWslPLwpqbvfOoGqK4BtUC7urqC
5Nr63ub6l0W+s/NiFM32K1qkEm81MaCnL06tXA5t1Vuc851FnLyA6u2g/cvEqZ3W9M9kfgXEuzs8
pt9dHezevW5WNItW5C9KRBBPZnoSnyT6TR8mLz8qoWa9LGlBy020bsrMckneDlUv0LUkVR3MQ0TK
3A/57ogdTJauDGyfF85jqOeF5m+Zxkz1jlMav7Dl1ge3zjAjwSxcwKB9I7vW6XAG5nqBpaD3qi8X
YTxJw0i/mV9ObNQOeCK57yszPAaEu3slWerBp+8F5xD35yP9oARTm2HfrtPA4DbsodrWgICCVAxn
x3txAyAP42g6rX8MrDPdx70XIoOTz2hRcv8843o6M7uHzCdP86gLzNje3HMiK7ppT8xH4GEdj2cZ
7Qg+dV+Tr9y/r92vEP15Cf2o0u2HdkozdUOoJhXFwckaov3wW1PW7iJ2Tm6PWAr2yUwKgfwiaxPb
QbY7o5bjerviWORq+bBRSU7AsFrJoHYz5qyJH1tZOPqiIZSo7HmmXnP1WqgJF535c/00HZcb1ULn
/nr78oN6LV+YoqGp7rvlsvw57Ofrr59/+5dTsWjZMIZobdBw+VidigKiC1+xVLkwek/LWrUm+Rd6
N6nlAyPvr84YtCkTBTUoRrdoVc4KajEb3cViZItWBbfAvSjHtWhX3Atp0aokGNbgduRhY1d+DGly
UNEy7AjuXeoMaX5AgbQPGk5l1R6IuBVjeyDiVsLtcYTAFH5DEhxeLu6LjWOR+QjBgSxNh6Tbp6Ad
0m7PMnh4l12L5yGZ9Cu592C5V6G+L88HlfdDkuohCgA3W72OWVcBAuh85yxbAGfhKnYYKRwwEglI
soOEFaCrRCc5BuiaKn4tyz6kH6Ajur9gBNJ8P5mJP8cdxSmQhC5C0uLDIX9CmJ8i/CPKZ2C39lwl
MrAs3KU64NEAEfjApiMWsiDQ5ZmVmAjcxZ4SJOgtAyDhkj9aA+ROo8UKXiQFen07SatAt76dBFle
YjBQxjXSkOor/vJHy1Uy9jqBAhaagW48DpCn+eLhIGobLSRQUjgfzxLHE9B5ZX8hsrsL7KGLF+uB
pqHAEj9IblDCQJ+chsoJR4uXNxGil3qNkaWLI/rgWfB4sb1xITJJ0E0DZ3ElPItLk2T6ivOFCzkh
3QaXf8KSuxgqoFLTsTsQSqAKWifhV9YKn/JcECFICe24fQorvPVQm+gi14WkMVzkCzrQHKXBoByG
CYohqcDJkD2OXEDxMmxZ5CDJMyQVZ6E0JIkB8mrYJ4QDRNm+xsdwKbePFep4AuHx2PuQF19g7F9R
bA56jfyUI/DnHHk/nxwedHYCEdGDpoEA0vvRIgQq2Idk7UHmPxq91/rPAcaM/2X/lwKOkUBv/g9Q
SwMEFAACAAgAjKEzSmMerDO/BQAACyoAACYAHABjc3NvbS9jc3N2YWx1ZS1jb21wYXJpc29uLWV4
cGVjdGVkLnR4dFVUCQADKI6BWCiOgVh1eAsAAQT1AQAABBQAAADNWlFvozgQfu+vsFqtluggNSS0
6b2t9rTPJ3V17w44xFdjc8Zp2v31NzahSRoSEyDdSoU4EH/zzYyxvzH9uWQl0rTU6JkqtmAUvi2J
Rt8fH/8hfEWRnP9LE12iROYFUayUAq2lejIXlII7/HV8dXX197fHR/RzLd/6leg6wl+u0UIqVChZ
UKVf0fWapXp5jYiiiP63InyMmnvSvGtP1b0rLl66dk26G827dp0y0d1T3bFriIukY9e753Xnnsuu
MXrOO0cpWNP5E9NBQnjiBSGG4YH+QPD5ZdQ57vBAEJG6BriQ+iSOkppo6oVxSrMDLjVtrYgo4Vbu
5lXjjeNYkXRAxAjjbFhEPI71Sokhvd5E0ealWyRc+Vop7qWrPH/98/bWTLXjQhzmbU6Sp0zJlUgD
lpOMuh3Yhc0UpeICuDt0bYD62HSFaS55+h5pIYWGqLNsqd3EmVjCGqZ7YVQkrK9t4Vx+JRAITZVH
DuKUABQVLVhtIEqP+Ojr+GtvIMvFOnkWsstTonUvN23/omf/N9faoDmnWlA43hSmfh9hH01j0wjg
fIjKWdFizjFwoYWzUGEFaK70QWwmWM1onSy6wjIxi+E9QFk8ezqYA6RKqQpgGmWrsoWwuJsC0C2a
Rb2hprg3RKN/Np5n8nSOr2zuRXHsYx8fpKPUsggSyaVyE7758SOO7+76QOxTsc62RHU5WUj+mknh
0WcqZJrCIKzDC82ZaduzuW6/bNo712c7Herm0dXZDOOgIG0UWc1MSPGLKukjkGjm8NFstzEzjahq
DGl28IDYrF3QKVemQ1weQyICpIBmUgTpStlGm2oD5wMDlvVz3AXavVqkh6tNq4dvDh8du1qj1icH
SBuZqmgpVyqhZaXu5vKlWeBVM50Vd0HVo52u3OID7Quiv2P/pl372XcOfxShCZqexuOsjTsWCMVD
QL2xqkrP84B7DBqEjSQpJDMC82BcrlTZZnTv41e9KvQQhT5ak0OB3g36FPWG4XM2E1cgmSYQdWTq
DxSCuLi1GoQoRnhTBdKiGtoBnAFeeAd4S8qfqWYJ6Y95QLIqmjpadYWnnprNfgID+e5xJihRPuJ0
oREIkk1rLrWWuY8WSubeTZIkIx/uejcY49EAtfEBDfNJuFHe8Gc1eByhGNtWxeHb/V8T/L2iARqL
eKEfxg/+wwx0Fly1E3RgJJX3YFbkGxw+/LiLLkK2W8xsXj+d48612PLb8k2YSjgFM+CfMYbxABGu
Aro1YmABPJpMLwCuZZWzixrZA7eZH4xG20c8UbIsgwVJqbe73URfSF5waqdcHx2/EzfI2e7PzhEy
W8AGPmCb7t2cfQSl8+Kz91B/sJPOjUDK5drWNccEOqzTgaILTpM2W3oWzixUnSZEu9lbgBGhd+cy
M+HBvAfDH0qw0Wg0INXK80rSfy7ursxhFER1xYpAYcNqgLYXmuqTXVPlkqRy7Y7SJTDNNk992CBV
K5n5G09Gw7B2x8bmvKt7zn3o1ZwlwZz+YlR5eByZVXscmpNphqffdjBbDmuWM5EFi5VI2hXc1SC9
BHKpaVF6Ex9RkV6EujtcO8tjVwItX/VN8ECv+uxPuYGMzUZSjE/so50BWyaEUy/yp4OAPdF15bEf
DeV3TrRiL5DGqY/HsR+Yk/3SsO/a/V1inSY7MHqE2lkrCjPqzARwDLC+H5i3HYS1GO5VKTYUWsZf
i2U5HJ6iBSfJ4fZad8TdGNp8nR+AtoJ2s6lCtdf4ahWFL/vSansnehlQNzbTKHPCeW1tn8ecZdWN
yeVptI7GnnD9AJecz+LvTe5vTuoQyfwESQRR/VqtYfb/e1BJC0a8xv/1qYfegvFqb9C1mm2gAHVr
JR4A+CRnG9hepl0hS0m5nEuiUqgQMtAzHidQrKBqm+Wohfe93G6etINC0MgRHBM4prDAoiM/N6/B
icighxH4Zk/yHo7ZiSV5YKZ1Tj6XO7tJvvofUEsDBBQAAgAIAIyhM0ofHi/luBUAACgtAQAqABwA
Y3Nzb20vY3NzdmFsdWUtY29tcGFyaXNvbi1wcmV0dHktZGlmZi5odG1sVVQJAAMojoFYKI6BWHV4
CwABBPUBAAAEFAAAAO1d+5ObSJL+3X9FxXR4rN4FiaeEuj194bHdcRe3dzFxntj9caOAksQYAQOo
W+29+98vqwoE6O3u4mFaM24J8az88suszKIe7xfp0r97835BsAtfS5Ji5CxwnJD0l3erdCZb72B3
kj755O7Nje8FXyV08+AlXkpc9K83CP5LyTqVXeKEMU69MLhBQRiQW3bIDmOXxLIdpmm4vEFqtEYu
bBP39s3/veG3y27ihH4Y36ArRZ+yY8N7zyefvNksO25j5+s8DleBK+enziz6f/lB/AlJ6HsuunJd
lx+bhUEqz/DS859u0DIMwiTCTlbAJY7nHhRZJUuk8F1RCMIxOWLig0QPhBVooW6VVNf1PfdPcJDI
CYm9Welg4n0j7Bnlh8o+maU3SBma+X7XSyIfw028AJDJSvjouekCLlaUt1n5sOt6wXxzJS9bphq6
VdVOVlwvWECh0s3pi/CBxFsSmaZ5ewhsQjgMQ6qTv8GzkuzimR9iECP25ou0qjl61kcQH4Ms+aNC
gN5LQURlS+QU2z6RHeL7FSlldt8KSo8LkE5mOqRUe4xxVJTsC3Go7g6Shl1cpcw2XTLO5rgDoZRo
zZ/weR2BeuH+IBqR0JB+bUt4sHiJ5xL7iX4iVtRf/dD5+huO0yGIejPz4iSVnYXnuweBpY/7AtdL
x24WkyWoVjrxvOwZOfyccLJNT6nQzsxZB2xJPQf7Mva9OdhGGu4RKyaU6f+OA9cnORzZfSiE9PeC
cIUWfHZWcUJVQ4u9bYHYBu2sco3BMzfE4cbDinesFBWe79JhHpOn2y1iDs1T+uIQo2EanoR5OIvD
5RbYmX+kz6Co//dqaZMY2ETK7OJ784LvutGMtdNpxQHm5rLPDeaWbBjGXndT1v7Gx9AbmdwEuBls
HH7Gg4ye+yjCi1uhk545rJLgTMS9DodXEgdhOeKkophaJy1mBmDuTTLW5IJUbBUukrm1skOAJ/sJ
csQEf5XpDl4gb4nnpKKZG6RtALd9TFGkJzrgGqAMUJRsC23LXWjFMqYHfe+MzAoHQGkFd9xUjyVr
3nOpO3Orl4Kyk8OnT8n09lidvrlT5mXK5cis4nB17bo7N0Au8Q9fQaYnSzP6C/qyiqIwTqGmjTMm
A6jLJQnSBP1lBM/Dq3QRcrx5bUyDGWB9Cjx1ck2xC9g5B+r/zTm0MBgowU7O3dk4JzZ1N9j3P+Yl
2Hu2xuuyJV7LW9X7EuKCbJembOqd7UcD7kefs7HsjUlXHrOvnMMwIrzalB+J/dVL5TSmZseR4AVH
Qy25LYlhZEJfJSlOV8mvKxvq8E19OKTWs7c49JI0DH0bx9Xj+aNnPmEWWhxYht82ezfOSed2nMVR
dDOPFuj24ZDwkOc4GsoVtJh5a8Lvk/ljpSrSELMYhJvZbi3+6IEviLeotrnnN9kLXLIGJ3VEtKIi
LBVhn1yZM6pUb1bmxQJazMxg91ZN8Dw7XJ8s6LgoqMpJnFdC/BcrbLa9qcGyn5sCbyKzyqO9WYyX
vIRbdlINI0o28vGAp93F5glizfAxq+uJD4EjxMxnVEzj6X1Br6xOPnCQAVE9tgkj3d3wuBocZ/fg
8O1y+GBI4OZ+lj/mQ+4U8lRHKR/9Pa8jt3KS8SR3aLvFPGIkpWwnWWIey5d9bhDGsPv2gJfJ5Kch
WLLv4VyO3K6Vfaf42Cb+DZ6BhUk7l/P97CasQg5A1J/Q/6Kfbt9sKuJS9b19tY8hQg9ncvoUkb23
+ulgibITt1LcBfGZg9wEo5gGowfqqKslSZI88DiI8z61lKzjC3PU51SFUMVAQPTghavk42YPBLPf
SPCxVFnuq+fzkGO7iilXLtSXA2sZE3Lfnv3OmJg5ET2vA88qTUYNiHFISm2iUl1kYd+BoK9cz9or
sKqg7Hfy+t31Hm5moZNhGK5S6i/K5mf7K1aTZIeALzMoC9Rgai5IubJkd4EY5vcF4U8aZTXtHMpP
ZUhDlMIxm5+dUS1BDx6mPjn9r4wTUFg7Dh9B4RAJLDBcmwVFXjqkQdBGDsPMovhNKJL9zr0DDWTp
n1KtRPMmne0Yf+m5kGVxwaiCkjz53lOjQBwWJvgBsAcEyFa9Us70dqo6WR3qPGQqGj/y2n+PDq4+
ffpUMukr6/7TvXm/1z9BcLmfxZ8/f95X6huyjMBDVZSfhWlbZw5hE0pasfzPU0uxMr/l+ATH/2Th
QZ4K0D0sbVrQU96Psla394kTexHoNHZ++WmRplFyMxrhP/B6OA/DOVwUeQmlLts38j07Gf3x54rE
TyN1aAy17McQQsvhH8lPd3Bfdr87VL2zE7pEpjokj3Dev4GmqTJ/MazSJVCorKHQDt0n+AJ7gHLj
JPnlXZ4J0PbChXo3+jvoE3zW6BNO8ejzP76M/kHs//TS7OvXlee7o/+BehcnZARMATjllICHhfR9
5afJyEkSkAk+HzDYFChmGeHYS8JAhsBlhf1huk6hOGq1FKVGoHe7R1hyfmg/TdpRsoAo2t06hWYs
qNLYwxpFoQLNz2BpfhE7vLtTATM4flc5C6z59DlQI7+7+33h0Zg+SanFeTOPZHb98cuXv1M4UGj/
AVImqICFpqxf6Y44hiP+0zC7O+gMRHmxQNoZAmmHBRJbGP2MwujnF4Z9lYtUMk56Nju8W/DzGMUz
3ZOMKp13VHTjDNF/Duwkuj0iP6Tdd7+BRPDFtj98+cJ/od8fww3JEvTzn6swvdWUt3yD5dhRDKli
DE6Q72MVS3YYTAeRP6ltou/S97mymy3ITpbdkH3cguxxV4SftEH6aN0N4a0WhHc6ovhpG4pfdkR4
VWleesMLOiK82orNpx2RXmteelWJnI5Irzcv/fjhsSPCG20Iv+iI8C2EeMbDsjNOr4UoL2+Sc7Dv
DGSVvnVCf2UN69cdAWXSZsqDA/c5qUAQpvWC0kJUGIe0YWugmi6ZH+FGpWkfji+b4sm0PUiGphlj
t4OgaEproGiKMu8oKGproChDM13FQRdB0brhUQqHK8S46nbEWgux6ir2B+5quXy6GY1oI/EwCo45
5NLrDdZ3qSlCGe0iM48JCToKjdkt0hQ2JxDA2i2vhWDZDn33MBjs9eIje7PaFJFaiI2zruSdgsFq
lQqF+TwTm9pNpYXQ2AGnkJJ4gI94j6xDQ0Ms0ZXWUEgGWEI/X+nT2yH77A4mageYUdiPCLjqNia9
hUAZp2mnLElvCYKoOxAYbbOgsJpnQFO7kbQQ4dJ+LwNDidYSUiRkmHRDhs9jwPhe1BRhxi0hojJE
GBoqx4Tu6Qgok+7RpNQAIQK+2i2thdhXpy8JJnRgmJp/HEkRs87w2PVWSVO8aiHgVccGYDFCltY1
NIw2OhIonUNB7ZKhFF7mZbyp270YbTQLz+2BZpqSIilH/GyShhHvr90UgVqIeq/u701zPO4SCkYn
CFHYz/Mgqt1uWgiAo9B/mofBgDyQIKTDhNXc/cCmRbfZJ93PfmTbpf1W6YJ884wXLzTkkSPcWJcA
Y9weuEEYfCNxKCFNeUv/JGSVNyy6ofGNLiI36RstC0fQnIZqdx5WG93/ktNg4MBbsjH4srvig/Gb
4m0bAb2iLLuMiam0yZJSACsAp7otymyjywdxjzXJNReymS3E8HQgbEek19tUfWEm34dI7QbRUu+M
mCThKnZIwrsX2OH6VA8Dnviy3gUyv7Yp4phtQwQ06jRA4y5yqNqZRSiYtRtlC9G5ijSkI+NcSHyv
OXq1MfKNYoHMLqIxbZsbpa7wL0KpbisaK51yS3QuDQlFIZv36UgAwOZBbGo0sdo2RFxcDpCKVAk9
4mP9pppFR+s8gQ5Vci+FtXbbbCEY59MbIdphD6latB6xtzI49rB/vKNeU3Qz2sXEAkjUMUCyIP4D
ofP7dAMWs4tUKfX1FANh7RbX4phCOv7HI0E6oM/CscTmCaRzOmVbfPo6CdFCD64cx7mW4OjgSlGU
6+712h9POoAk/cY+7bcC/1gPFlNDpsK2OIwfJp905SNHMp7beKBKqjmVppYEoEp8MiqZvhMbTGlL
+JWiTu/HWhfxtn5s5hauoutarN0HtTE0k0FcQO54seMTQAqURfFSlO4xftJC5sIJXuBEkQF8NN3o
ID5q+/jQKRmpG+g0TloXeVT4w7owrduPTfQW52eIwySRZ9glg/IgPbLGy8gnLOOT0OEj5tGX3W3x
1OgcngUSeyAF5EjloNVJVM0+sHQ3empXY7X7ljaGsxI/fGRdak6/vrfDtRyTGZ0ovSkeT9pChCb9
z8oE2AwEEQATpOXQncb3EOZDvSYh9fr6upNoWx3gX+lteacVUbszaCFhUpCs5f3voJwuJKOo2HG8
90IZrWSB3fCxqckxlTaA6j4sLSRKZrZWFP1j1sabM+i/oX7dRZC0DhtZ4QkF0a1ul2W1kBs5K9tz
ZJt880g8UIYabUobqvSDbqrnThnE1iCQU29J1wibrQKnwU6cltFWqv4jgNNCJpOkJEoGuoRI4P4Q
BBp31u62G3wEoVm7J5u0NhOarnRzbkWrheSAyehTVOiiNZKpnDUUqXFkWojUEwf7ZKBJRgfxmLYQ
kCdfySM3HUnrqAFNWwjIlziNvTX4Z0NShqYk0w/24+iw2tYQ0rrhdYtKS5wDqrvGmrbRqypbNTg8
o+0wP1N2uGRNUaqF2LrUu6eDgLQQT8/9p2iRdBeSVqbliXzsHBsd1jYokw74k8IRv9imave/LfZU
yvrYk3Swd4ZXpK6rb8SKI9q6e+8up9OuIckWiswBq0Jpe3N+QO8gkqqi/Nik3H0B3LyCal/GQWkh
L+iXx1AVrSsQ/riuQv8xWVjqjN9D19BC9kLXIOetS2wBIJSQyMODE4sBbRb19vzSAKXaOdvGu4EM
DkCmQMrsIjjjLnKnMFeRQNZviC1kQy5OFnaIY1eOydwLg4GPbeIj3on9DJS2r2+MeFbHsGLrwtMV
7XX4M6L1NTpwOp3sFQdzuIJ2YKBjuSbwZ53V5tca2tOOMrOw9E4r54jr2FkTvLqqN3ZPLxKfn3RU
h0e0E56x8DfXoBckd/fvR/SLbX/4j7/xX+LW86Z3C1a+j7yEwQZl4GvQowF5gLvj1AvmfM5+OBVu
SNxP3sMwSZ98wufwz8r3XYYgFEFTHILPWRi7BwiOxSEYv1IIJwLN+DkrlPcAQkschM7rJOFUIAmX
rxPCA4uzPwfDZ6253gcIVZG+MH2dGGrCMHze+u99wFAXhuGzVpHvA4SGQAgXrxNCcenJM1e07wOI
4jKUzahT7DsDmU9N/ld0oim8z9BOamiAKE0p+D35YLndpg/Qisto9q2o/cxOnn0Adioc2BctRt4j
aDVFNLSaoswv0FJoVdHQKkMzXcXBBVpNq9XTlpYOFOEuelbNaeLyrGOL2T+vX00f8DVqwZfNRXsB
mAJsNkLg6ty+gtTQN18iLtGjE7gen60VfLQ3X6Q9JbW4vM4LFiQ+Nt10/8G06qBlqZvj8xDum/GL
S+sccJYpKa2q/l0Ly/cAS10RjWUywBKXechlfK3IqvWxtPAIIkDvmXvQxSV5OE1fs2/QxQIZvVog
jZoYWfiBZwDcN7MXl53R7qYDg609q9BJ2umGfHwpZLpMbE/JOxaLK1/fly/my5FVldcK7aQxypaa
JkUooW++Q1zepucLVDNg2cfJddLozKarpKccF5esqWMDEB0hS3vlmBoCOx8qrx1LtQHTLy2W/SIO
98ztGgJfx83tgWaaJya3ogvmyIcWn+4DoOIytqv7e9Mcj18xlkad5Cw8wvOA7psnEJe8RaH/NA8D
EJ0EoetKfObkCY91LTaVssWiX96nT822S/ut0gX55hmv8GmILEe4rx0AjbFwFQVh8I3EoYQ05S39
Y8tzFBsW3dD4xgV/Y/KDmEjh2prTc9/coSVwWMcZk+/hwFtiNu2yu4rxgdmr+4CrwGRUUZYXZIvB
1UoNjC2lTQLQ7pmPMAV2Ez02F2WPQ3xTXP55fGWOPmOo10DD0jpQ34Vr30xcbI/OmCThKnZIwjsT
2uH6VH9C3gyVTa7Gru0pic2agAZKX2AuYB43yOdqN1qhKumbmxGXWapIQzoyzgXW93pLdYGzlFBE
kXnB1JzWxNPSMNQXYd0zvzBWmnDXSKE9FqLQC4p5HfeFeqs46WsMPVZrApqDlk2oi1QJPeJjvcd7
jbHWFpkPBSIvVU7fvI24RNJLMXhmRIdQIFWL1iP2Zh7HHvaPD53oKfWNWpC1AFiVzsW5IP4DST0H
v0pwzQZpWxoJJEYRffMh4ud/+a5lx68cx+HrjV8pinL96kfMjif16YN+Y5/2dYV/rNerqSGTrzjN
lfFh8klXPpbXf5dUcypNLQlUIyHWeCjT3hWDKX0DeaWo0/uxdtHa2OqkFe0uCNNVLvTNqwqcRocp
qlAcnwcc8AaVU9QV5dVb30Rc1s2NrUCb4gsoa7pxQVmtDWV4EnNsF7QLtLUGOb297Lh4zfTMv090
8bMmxmGSyDPsksqCTGSNl5FPWJtHdT2m6pHjS8G8EpsxmtJKgecexQD+pHLQuujmbmJ22GJ24+R2
9d43bylw6iHih4+sA+3prm10ZduYzHzAqqc2NRGMK208e1b+yebiiwDeIC0njDSrhOQSogYJqdfX
1xed3U2s+myh1Aes0+rsm3sTl+wrSNby8QMoJq6EFFTsON6zr4x5ssBu+NjTxWwUgXBfwN0CV1yS
Twf05n/Mf/DGRfpvqF9foLa05t1GUUMIon7PXLklLq93VrbnyDb55pF4oAw12sg+VOkH3VTPneDY
Y2MzUm8J2MmzVeD0d0CMZQhu8rpAvAOxuCw8SUmUDHQJkcC9kHkX6XHTnmS7EVeQTvrm4Sei57PX
lcvKIRRYcYktQ8qn2Jp07LSpnDWZQN/xFZdl8sXjNcm4oDoVl0wmX8kjdwaSdnEJDFxxyeQSp7G3
htrPkJShKcn0g/04OnnRa8FZq7VOKwILcY65Z1HFVGBP7IDemGbbp5HNz5QdLlZP6S0uLyz15b3A
Ki4XnPtP0SK5AJsBK3L638jHzrG5Jl4ZtJP6/GxRzb3YS/StdhPfuzkbDUrSwd51nZC6rvatKI5o
61ffl2Y6bUgfyRL7fg57VSG2N+cH9Is+VEXppIHsdmtqXs19W3hYEZfTXnzgixSh1ayIi/M7UxF6
pyyiNODz4uxeqlpxmfc8xk+83Rlqy7fXKCGRh/n26VB75vmlyQH6Zj8C38lmoAK+Bd7mBWJl3CCP
CwckUh29cy3iMnkXJws7xLErx2TuhcHAxzbxER8oeQbW29f31QisZhBHarRGGvzp8GdE62t04HS6
rBIO5nAF7SJIZ2OYwJ911juF16KzabNWUviuTqu4CWfIvsrKBrlx/M+ZH2IKPj+8S4lP3mz2qx86
X98d2P8bjlOULEAM990pNp1kkqoq59BIPdY+8QK5t77s0H2CY4t06d+9+X9QSwMECgAAAAAAjKEz
SgAAAAAAAAAAAAAAAA0AHABkaXNwbGF5bGlzdHMvVVQJAAMojoFYWY6BWHV4CwABBPUBAAAEFAAA
AFBLAwQUAAIACACMoTNKo1f96FAAAACOAAAAMgAcAGRpc3BsYXlsaXN0cy9leHRlbnQtaW5jbHVk
ZXMtdHJhbnNmb3Jtcy1zdGRlcnIudHh0VVQJAAMojoFYKI6BWHV4CwABBPUBAAAEFAAAAHMvSizI
yEwuds7PK0mtKLGySk8tcQ7x1dBUyCxWyMsvUahMLVFIzs8tSCzJTMpJVSjPLMlQKEpNzi9KycxL
B8qAtRXrcbmjG1SMZhAxhgAAUEsDBBQAAgAIAIyhM0rylpXVRwAAAEkAAAApABwAZGlzcGxheWxp
c3RzL2xheWVyLWRpc3BheS1saXN0LXN0ZGVyci50eHRVVAkAAyiOgVgojoFYdXgLAAEE9QEAAAQU
AAAAcy9KLMjITC52zs8rSa0osbJKTy1xDvHV0FTILFbIyy9RqEwtUUjOzy1ILMlMyklVKM8syVAo
Sk3OL0rJzEsHyoC1FetxAQBQSwMECgAAAAAAj6EzSgAAAAAAAAAAAAAAAAgAHABlZGl0aW5nL1VU
CQADLY6BWFmOgVh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAjqEzSgAAAAAAAAAAAAAAAA4AHABl
ZGl0aW5nL2NhcmV0L1VUCQADK46BWFmOgVh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAjaEzSijb
LXDJAQAApQQAACQAHABlZGl0aW5nL2NhcmV0L2NhcmV0LWNvbG9yLWFjdHVhbC50eHRVVAkAAyqO
gVgqjoFYdXgLAAEE9QEAAAQUAAAA1ZPfb9owEMff+StO9KVIaHJKCxnSNLVL1iG1rFqjVlPVByc5
klODjZKjwND+99n5NcYWba/LgxOfP9/z+b6x782C2fwaPP/Gv74M/ClsMHwg3HgUf0ilSvAeM4yY
tJo+dq3MNdOCImm/e/5/kDGTO8xBMpyKoRhAQd8QXCG2YyF6AF9QxZjbNB1Il/zteau+ynT0AvtP
we3N9y6yZXW8g/3VZ+9rhbpDZ1yzE/d8OxEle5T57jitRUfjGm3gALcM+xM2r9/4i194AAtBvlY/
uQ3FnFpwCv0gpcIgBZtRw1K+IBTrHIFTg3OKEMkcGQz0SgWFGQKpMh5m0tQbmiHJ9VrFEO4gQWZS
yYEu0pnOYZHrZRUsp3phJ/3uGh23KXI8ck2RxuwlKj4tVlINTBLFklSzkdUOQemq3JXZVjE0iphe
B9VZUlnUJSg2K35MLO1xJHNO4ZrxTf9Pfnizh6bDF2cHljjukSUzlZFC2N/fXc6PPXHOrACeyuO/
O/lYPs/wFCZ1RJTP80FH/upzlfNA0e20QU0TH1M0vhojl7vKnPf9f/+rxFb0StEUVroge9vAmVgn
o5SyGESra0NO04s2MqrbaQKhuRu9H1BLAwQUAAIACACNoTNKSYNsXfkAAACwAgAAIgAcAGVkaXRp
bmcvY2FyZXQvY2FyZXQtY29sb3ItZGlmZi50eHRVVAkAAyqOgVgqjoFYdXgLAAEE9QEAAAQUAAAA
1VDLTsMwELznK1bimBpTVVxyQCHYKhF9SG2UiKPrbFJLro3ijVr+noRyAFTBiQOXGWl3NDO7jDHg
pbf9AQMXihSX1ZZXuHsy9EFZb2zNN2hRBeRWvfqeGGEg1mHoLQWOtSHjWq5Vh3RGpr31HcPTC2rC
+ppOFMVx/JdZSlOv7HtSmgKbTm4hnk5mkKYRkyIv8tUchFzI+X0hEwh739s6w9Y4ebbMnVgvN8q1
mHQjQtP5A9yAb0DkJdxBthbPAz0Wy8VAV7XXwyWOgDzMflVd6nDEXWnwKMyXHkl1cbzyZBqjFRnv
IvjJ7GE/1t8OT9Sj+JPft80/tHwDUEsDBBQAAgAIAI2hM0rTbEvjCAIAAHQFAAAmABwAZWRpdGlu
Zy9jYXJldC9jYXJldC1jb2xvci1leHBlY3RlZC50eHRVVAkAAyqOgVgqjoFYdXgLAAEE9QEAAAQU
AAAA1ZTBbptAEIbvfoqRfYklq1rixKZIbRUXmlpKnChBiaoohwXGsAretWCJ7Vp9986CcQmJm17L
gRXDN8O/8+/guVN/OjsH17vwzs98z4E8UUUaTTAW0ouEFjKeSvfq8obLGJ3M3GGeqQUwUHNwp3fw
GSZX7g9avvuXF7T0IhUWC5QatILhu1THeyVhhcGdwJUrXshw7t8Mz5QWcxFyLZT8a62viRF/iymG
hm2Ua7357yqmfIMZcA1HbMD6kIufCDZj6xFjHYAblBFmpswB5FD6x5N99iRV4RNsjXe/DpF7VkUb
2Bq3K9QeWKMdO7ZP1mNWsq3K1+2yBh2OdmgN+7jWsO1pWl7xpy94AANBVsg/3EpEOjGgA10/ETkh
uc7NKV3wJ4S8yBB0QrhOEEKeoQaCnkUughRByDIepJz0BnSLM1XICIINxKjNSWzkhSpVWTUnZbB8
pEmgh+5hjZZdixwNbRJJZpsJOcqXXPapiNRcyPpDJncAUlVyl/RZmrg6IxLP/WovCc93EqSmN2Zo
uNkO1zoTQaHxQ/ctP2hk6w6fHjcsseyWJVOZComwvb0+m7U9sY5NAjyU2//U+1Zej/AQxLsIK6/H
Rkfe9bmq2cg47DSh1MT7BMlXMnKxqcz50v33U8XWrFMmObBUuTDTBtbYOBkmIo3oJ1jn7UNW3Yt9
ZLhrJwUCmo3Ob1BLAwQUAAIACACNoTNKmNv6J9IHAAB0GgAAKgAcAGVkaXRpbmcvY2FyZXQvY2Fy
ZXQtY29sb3ItcHJldHR5LWRpZmYuaHRtbFVUCQADKo6BWCqOgVh1eAsAAQT1AQAABBQAAADVWW1v
2zgS/p5fISS4DbCIZDu2e7Hd+rCJnd3i2u5hE7S4TwdKpCw2lOglqcTp7f73G77Jkiw5uTccrkVt
mRyS8/LMPEP1baZytjx5mxGE4SsnCgVJhoQk6t15qdLw6hyGpXpmZHkyZ7R4uAjmj1RSRXDw95MA
/iiyUyEmCRdIUV7Mg4IXZGGmYi4wEWHMleL5PBhtdwGGZ4IXJ7+f2O3cJglnXMyDs+F4ZuaiW8rI
iqapm49R8rARvCxw6EXTK/23fpA9QXJGcXCGMbZzKS9UmKKcsud5kPOCyy1KnII5EhsKKo9IHgzt
0JaDccYOQRhY9EiMQtmopel4PO7YX6JChpIImtYmJf1GzBn1Q0NGUjUPhtHUj2MqtwzBJrQAzzgN
nyhWGSweDv/g9EMY02JTrbS6udDop2Z0nLq0yEApVYln/JGIlkXT6XTR52xCrBsiHZMPcJZ0i1PG
EZgh6CZTzchpqRswH4Et/igOrqcKTBy2TFYoZiRMCGMNK0Ozb8NLTxlYF5oYaqg9CbTda3ZHEh27
XtCYxU3ItOHiMOv9DoAabnf2hPVuC+GF/cE0chFE+qttYa96kmISP+vPwKh6zXjy8BckVASmzlMq
pAqTjDLc61h93B2svzi2mSA5hPbihfPcGd79FnBhrEUasJt61AFaFE0QCxGjG8gNxTvMEkQj/SdU
YEa8O9w+2oX6d0ZsQPd4TkohdWi02u0MRDFEp/QRgzMr4NjkMeod06KB80M4bAR5XrSAGU1fipd1
cRAp/qKbo1TwvOVsVx/1Gdrrn8o8JgLQROrosqNe8cMy6lA7mzUKoE+XrjLoM3kymXSWm3r0qxqj
N5raFLBpUBV8hwMHzy6IWHUbcBq7glUz3JjYWXAsSfS65UiR2gqdnVpN50BfTRxqvCGNXIVFoc1W
MwX+ND/BDkHQQ6gHrEI0RxvSiMw8uKwcHjOkvagFEygNoAOo4p6Ctt37qFxNZr21NyXpvgBoWMGO
FT3WsrljKU5xcykEW/aLz8hscYzTq51clanr4bKin64xPtggwIT1ryCzF7UZfB/cldstFwqYVjgk
g1PznBRKBt8P4DxUqoxbf1s21s0MoF4BThMfKbPAyPTwfyWjlUEACSPsy9kbD2xdbhBjN16DTulL
y2U52oUtes+hL3BDl8OKd9pHg9+PnlNldpXSjWO69Iz4lljaDJ9I/EBVqIROO+sJq3gQXcpFzYyJ
M/pMKqRKeV3GwOEVH0Y6ezrV0UsU5yxGojnvj04ZMRm6n8j5t2q0Kk5jm8euj9KPvlvQz/0tYV/l
ONrK7WGR0h2x+7h6PGyaFCHTg9g0O2TxJwq1QLSgVu35LaQFJjsoUkdM2xNhTYUuu1wxatDblati
hVbTJWwnNcF5Md+9qOibvaIjC2JPQvaXUdY9VwzmflYKV51Z42iaCpRbDVt50mwjajly01NpD33z
DL0mf3JcTxg0jtAzv4KY3sxu9/BynNwzaRzRnKvaSHzYHjebY7eHdd8hhntbAuzrrD3mB18U/FVn
WJ+99xzZupO8+aMvaIdqHkmS2m1H5sj28vWaW3ABw4ueKuPs1y2Y7Drc2uHzetglwlBM2BylkGEX
B8vtuNnEEHIBpp4GvwWni5OKiGv03V7NEHToPA3V85Z0bnXaq5ETbF1xM8JMgayaUaSb0R6OOsuJ
lL7x6PVzV1hq2XFnCvVrqBAoBhqiR8pLeVONQDP7jRQ3NbLs4nnfcrQppk4uupYDag0SfG13vx0S
XREZew58lTYOGtDjEKVzokEXru3rafrqPBuXkFVFve54fsf0cZ7yxPmQl0rXi3r6xaw0TOKmAC8p
6AIMNvKG1MnS7AI9zH1G7EkDx7Qb0F/boHigYC620g5qMnikSNdk9dFhApSNBX+CgEMnkCFY65oi
qiLdBFV2TKaui69aEffbVwfdyOp/wyaJ+lc67R4/pxhuWdYwHSDpL98djAJ9GJfoEXwPHiAtXqnf
9A6oLhxFY9sy7V9+ePbviMHZarWqpfTZ1e3qdnrbWZ+guexG8Xq97tJ6TvItVKhG8F2b1pKM4BE0
bWT+enY1vHJ1K2EEib+Z9sBfBfSIuTZlWuTtwL11eysTQbcQU5G8O82U2sr5YIC+ol204XwDi7ZU
auiasQGjsRx8/bUk4nkwiibRpfsRQWsZfZWnS9jX7LcMmjsnHJNQx5A8gdyfINI6mO8mV7UloJR7
URhz/AxfkA+gN5Ly3bm/Cej3hdloOfgM8YSaNVghhQbrL3eDLyT+M1Xu67qkDA9+Ad5FkgwAKeDO
UBGosHB9L5mSA4IBGsVmkEBbq+ynjU4IjUuJWKR2CtQZNbWovQQ6P5wxl/O+cX1pD+y9pCWibyxB
82XPXg4qSeEFzW1/30KcL0fgOphfNqQgqesy3xWx3C46BYGdz5fr1fv7959+DFbrD+sff7hfA3Yz
XjJ8TSBj19ZL74vVzx9/QcWGzIX+DIwmw4Cnwer95+C7jVoE1z+v/mqffrr/+ME+nWEoZvZuwYPx
68WdtoAHcNN/ylmX/xVnAeN8BkyvaMNh8y+dw5+4oikUOI2fto3mq25pLYXPl2760B+vw53MAOD4
Rdy96MPxK3w4+tfcd5NpZN2ZVlnX7C99M8ec+O9ZN3mFdZf/t9ZNX2Hd+H9o3T+TAK0vQxdQrc1/
Nv0DUEsDBBQAAgAIAI6hM0otpAs0DSsAABFTAAAzABwAZWRpdGluZy9jYXJldC9jb2xvci1zcGFu
LWluc2lkZS1lZGl0YWJsZS1hY3R1YWwucG5nVVQJAAMrjoFYK46BWHV4CwABBPUBAAAEFAAAAO2c
+V+S2fv/W6Zpr2lqcswts3Jc0klLxbVyHMu1tFRyoXIhFzRBxQ2ZptI294XcYMzUFsXEhXCdUnO5
VUoSQlRyAUJEUkQDAb/4eX/e03z/gO8v34f8Avd9n3Ofc57nul7nOo9zPbh33sV+57YD29atW7fz
3Nnf3Nat23hw3boNXlu+V9wpiPnzhuJLJ8rOK8r/eqB/KCIats44CHTV2OS42Un/k2ZmQcbGv/qf
MLsW4B8QcCLoatBxs2uQw4VhikrrEW72Z9bhB1S569adWnfut9MXY9fzR7dKo/g+Nl8mDQ89PqTr
vRi2517lTyXOh8EPzuuc685y++WyPpjwpFLT8chWu18cz+b1Yh+fyXxy1sF8hYdo8aHEsfPzmX0o
JnmysXqMI2oUiPv78o2ZPJkVY6mIVwRq90nuOfXHuvUbvtvyw0HFj5uU059Wincxx/X+c/2fB+c3
7TsY9N1/yyjuuZiu39TN/Z3/4F+lzv/xaPO/Ls1Gv9t3sEKl3vDQt/efWn9N/dtbT32K2nv+j6Lw
D613v3Vg/aa7cf9Xf5xPrYc3Xlg+9O/Wr6+fR6KXkBRt67l7Vc8jEhiMcvQyEc2QyK9HSLvQ0q6F
saVWZF0QDEZekZJXnASJHAti6wp6PNUVLaFQcDI6zllouQK5PrsV5j8zNpeGrCwXrxalQGRDkCqs
hqSry0Y+x5UJ0CvUdBkHLecsaKPntb2ZNguplQy5XLCSJKq5QEN2FWLWBbb8vAJrT7FeKOFWRaB4
DcSlJCtgHI4dXr6FY+1BVtnLxzXkV+PpgJ8JakpLg67XW9oAJDhP/Ww/PJTmXxRA1LDIhI1ClZd5
bXIeNxsnndo6190IJ82aa+61Sj1KSO/nvsfaYtopdydrzeki2GLJa1XwH4k8YhJvoQwiKaOkRiRO
cpvalpsqjLFzDyl2hvHvuR7ExqGoFp5vhGSELBvheqJFnhUa4kyNfIOoku3OGl//3tzw9osIsiKi
tGvIv1QJ0hfeInDLI1wFKObCyxSrsCcKeI7b0l/4sHQp/RFJwqpJKSR2cqg6SRTF0oOIn4xwxWFs
jnNEPCWqTM83WHJT4+vNSz/byCg2VqguZGLXtFgTbck951owEI1HOJPjBhAmSfp2E7QkPk1duEDT
lqyOlqKEnlNyJSeMCT0iUhtbLbDNARXiXchX7VHj2yGxvWkdkoxbP7smzWfzltvm9doI8sXTZPe/
E9tNE9tzLIvC2htE3Vrqc3e5RMXsh44nch0h8dA9S4IVuSABhnF1LITxzY61CWtP8vfSqb7AxxQb
6Th3M/rL5ooHvjPXKIoOtKkjEWihKbp2djJQLcZoR1PYjyurtPPas18veF0bqeu3jjVnbXk/MF5u
2sL1MTnwInIAnlfbR2zhwzzJONkMlJyeMDLJJhDImkySao1PC1HetawwPtLFGZ6hQCTNJyey/Sb5
B55d7BQKZGMC/gHW7VZkf6gfolVYLEg8U0GndFCtBMi25X7PV29+SgN1wE/EyxltMoa/XHpP+mmu
Y95U0UFto5y95lWiIjVBh2sHnH6tm+AW8zODQpo51b/yNX3lVTzWZpe41VCcZZiP5mKSuPtwEGud
zZvZQuxSM4BJ4wkSmf4ayx+HTqRBUcSCsynosF5A82rrfG51JeM+PCaE1+UQGXuGWpyeOKXFmWIF
qFJpWqwdjCJ+hM5gCKL3NC61/7KB1nIYxtRl6rvWV2Npe824s0ejHw/HfzBavO/Z/NjAtuyuzdFb
Ir63ThBns/WXm10nqijLtoVhLuTFmSZV7JgBLlXgzQzSONCeCT01C8c0OUG+3oG8qn9Jep8afgI1
5Im6ZGVMiH5Cbs403gDyJ1jn/EWDmHcKIcv1kMLeN5H3aWnxWVrBwPjqrE2/F5s2j+8EMK4fmTjJ
hwqXk1XGxVwnivLAjWT3lqTu7fb0uuAqIrEl6bJV+HwfvQaVXNTgHeHZODylz8AbJC47JbirL4pH
4EW+NZVdLVKfZQt7pGvHSzJSbd6qEB7TzaF1WeWx4KgDcWPs0T6bFcGKTKDLFVoLhOVuByutCbxl
E5YMYc1BxBig7VvaJBNa8utz2ouBUgYVae80exF4e2ESlyeIgPuSgRJmGzn+GsOscIIukoE34yrb
JfFTxyLigJxoKKPcZ+JHjNklChWTCUurkHwK/vom3mL+Eiyfzgnd3SO+wOuDMZuCC+tcw3iTYSE8
iRmPbNpZF6oMfD1WDYj6JVFEK2YdyuIC7w2MGXcIAiGCMvl0qB8DCrLM5FuFYK0zmfWCumHLQvEX
L/brRauVpvqI6korP9m0JySBleNa++dKQbW4YOgBN0LiyxT5UkAKV+XmEZtZIXbCAlpzkEShdXKu
wow4ISPMr6nMR730bK7m7rjuqPoXvjCRZD49Kjf2743q55fhTPkiESdfNcdW2XLbyjLFajYyfVht
Jsi0iT4dlZSVO0fZNJmC/ppSsTzCsY6W2ltNX6A4+s1nDdsdouhcWpgPna7XSY/r8w8xfQzflyRZ
jFhZ5G5QevX3wrsU67q0BGLTaFXMcUdiLQtq3L9qPU99gWuiVXGueBSeMM82bYuTTFfLp4flJi6S
H8Zks8jq0e/wsZ162Mc2EmuT/MWmMRH+clGZyohzODybu1v+aXd5OmrGv55PX+8A4RWVtyy1CHyb
brd82mT4iKB1OS1rCL/VMGnuQahnI+DDNorugno6VR2LG2GJpRybtpiIc5icqZKd+YvpCh90XV1Z
KiIk5REF8APGtpKaPId4yafNNmayKVd5QLHGMDQvPdLVWkP6aTPt2vyq7nlGRAC2oD+tZasKHZUa
6uOva58aQktblQ8RopBdAquZyU5PXFQmx75dSFWwj7aWrUrbdNTQC7/oeIVCmqGYSyjIMXZE5APv
mZEeKdAmBcxxTz4PJH5ki78r5u0wgkBBDq1CZKEGRDKIcQHvT5rpSgqLl05qQDCpq+TdQbqejCYd
KDiz4/joNaO2LhPbvJv6ENCrDLFomNYawx/8ME+CkSo1/KTE0CQHm9GoI7HvbqmfGOW6IAv8ViS0
auv8UNMs4sfAj4soxvzY0X2F+k06AYSHgZM1sI9BNTCpaetc6hAfil6EhqrD+z0ZIB8I88gK62wi
H4tpZSgPjkV5y9ptpO2SRFzczDsxiNeu1PLZrv7VyihTNsr1W2qkLbAgcpY7+zVajEHnY30aLQJl
xcX0KM3gdhOaqFmVZ4kV9CTm3tpF93iSECFt2MmY6PnaRN0OcFmNWauSW9wLllX5Chv6N4LTg9Tg
swhcgsPS8A7umcV+prTffdegou/00rwyyXgnmsfLbBZ1aFvXhNMmimcHeiYlL2HKPbGMBiAughL/
5bcwLZN6f8YiKLJydxO81Xq2PFAbAFOzy7TP8BtixAAkybwLNHABEmoRzWg411VYi8p7ANvPA7xC
Q0GFnv7kRR5GMQoGIIpkNCPvZ/ZmwxjEh5hDM9pJE9rl2/2+/Om+uHk4XlcA806HrmgxClcNNpqp
y/sYVdbfeBhYQiZxkNRZX7B9uArBKYjksCTVB4ikfti0cKZ2yrwmTEhQ61u8Mcr2YtSqA63CYTzr
y/v0pKjRtDKVSOp20ve/tpfwZvYzINJOiBOtTS7iEbAoQENSovGcMQ0PQvHkDLzsVpT9gPXVxY1G
ljwwuYCAvtFlMVZjbROyoqnFHw6i3VOVQMBbdh2gNl2p343ZLpvWeU3IPonJHfU54I7D5Hqrlem/
Q5BiAgwsVEVx4Nf9gUEwDRzgZInZdEWUKLan7ykA0t5Nl9FaF+sR4K00DlfdwwSL0ImfFhJsrTB3
SuS+HhsQ1oxkwngxMOCSEH+/i3AcCwzM+TwnkWa+9gVqJ7ksEQi2xzHFzaAKD4jouWd/GUTsIzlK
I+flow1oXX2GaDHAEy4zV+QIbm1rQXhjdp2Z46Dre9STi8PCneE3boF8r/X2+htYXIkeBpXF33Vu
VjQkG6C1zEa/EHTr9BgZVjZ2sOquYjH5L2NgOp0eKD8Tab33Zfq5QmRnXciHifRoMk6cj8tv+7S9
9cpAnRAVqacnHdLu/ZPUiwabcdysqhunZFycPDiVMypIWgqRimzwiGJen7KhLRft1WVoERl9gDF/
3qNIuDMitv2AvU4sO6rnl03vmkPVL6cHMhMPYwLtPCZ1le5Rm/MmSqzJUnDMNQ8B5kxkS5woLi9b
X0k8sKPsU4EhPPPBhzZjXM4ZlIGdCwqbWPbCAXxuiFMW8UX6E2TuJxGkHOJBFZYZRD8j7RsRyaRE
bC1Bq7YAbaxBjDvMhMRUsuFvCTH+vfOZcXUz+vjy+lYf/NjXPg37ftd7TQu0Kv8KGMdmRcxxax7i
gPHGKzk7KSEEHhP5YR7D9V0kYIr9MwOJC/l4fkQDbxTRAK7c4CXNnL1UdqXQMRICOaYyEuK5rU2S
iEJhlID7rfiNvC2sto4L+LIXrsIla167LYdT6c6w9DK5j6A/e+RYYoPjWHLygfo9CJ2HIaZEfW8x
5iqGF++XRTSRoThzDeEOnmNuHf2spyhfJenndPl1mVzqGbPo6fsypjM7klilNO/X2FFv4MU6eH7U
JKe4oLk+8uPJ3XWwy6AHrZIwanDVg/kG8mytftVRL7kXJL1uiWDVuxhMe9n6ULXed6xBXd/iz2gr
rOh1Tfiqk9MW4+j4UnirKpJByBa4zoBTygpj83qm9GC98wVXGSbcWEQDGV7Tfw2l7FgE/n3Y2gUL
BZ+zsJa8T2dzm2FjLyLwMmIrCmBAxLkQcJNrRagn9Tg3a6hBpYk6SS/P3fgiWuXSrht94Ibe16mk
oq0FwE3WAUhjzBEqbLSTEJErq4TfqPu9IJzIetin0whgbtGiQYwAxPUEqlkMXkDt6hc6A1cbhXm3
dF68B242i4U2K0JOmPYuXyjxXs5j/4FGI9vFY0A+zpwppyii8reBwqeyW07ajI6p0p307zlGD3Ys
z9jMDAcRg9XnY6eUM4wmVU9M3Q1Le8KeaFNdH4E8eO5SMY2RUbrw7Muw3eNAu5fCpzcsCI/IFQUD
mQ9VO8l7VnwO4x7YOG6YzmRIZYr4oAJb3kdPY70sGpgXESZ90nMCDoAeRy/W4lAOS4Q/Qb4KJa+y
H3C/U95IrjMuEvdB8fYf4DlmtmlTLTJ+RDXacEVP9o7HQUQ17gS5YUsPg7wzHE4wMVohIAf0XWfw
M2qpZuCRC+kBeaG/TnvmnKlBDT3DcvYF0XWqqzlbOomJAPGDsVXTNfPOjv2uVCsgzdnque/+1vgF
rZ/iwOt42kauObnXZRYeoIksSsXyDpD7XobPp2JNfuIwBeth2MHITVGNHrB72hOqKysK7skn+Qrf
xVsusyfDoBbeqS9QivABYjT1NDQtBurXC6/hh18FJWC0Yqp4Z9P0Wd2uyUUtunZBxR5YTp2YH45s
atyRkyQS7bBrXOejiHVfQOtbZ4DWygYr+2d5tgAYnE8zvgg6kx2ok54fAb9tytSYVL2pq9KkA9iz
c4ucgVjYdUoIGZPexK5w++GDcRbIO0eT0nOh1OQJA6qDdal38Upi4puJ3JFyVWcADOg3KebexoZ1
NoZdJrqK6ZS8isPWYstePeOVWJI38SELdpA6842E1lbADARkl94HWWRp2mONIQEfkeoWUUkDddXR
VaFDIkeqTdmjYsLDt1pC+4Hf2DPnw9X3FO5o8qEJsxJVzdNphjoruakhVu150VHsqqLOfkkM6uNP
ZLzoDdwcxMgRhQ1ch8YXJpeyb1a2Gbk2PIiuDQtQftiDJ8826dc/Uuwn+CKUBgY4u9zXwJ9vEF2h
buxqSv34IS2sOgaG825ugo+9DU5n5BUnovPejzw8tKwEPorIMecR9BOUG2DZaabQZX0lhj4VUzOj
PaJQ1RdASCgifNeHZF+hnwoU1zWzOYBBoR6HMWG0eEtGXVgEwSeRQUR5+zbMPypd4I5m8hPZLTtg
MoK6YwMY1I7leydXpsNv3fFxwpbsuxUNMTDgmUTfPrYCCyVLPqf0hfJw/cLKzQQD77E/tK22Oaz3
Ie7tF2agMmb82fpu7NEd9JRzSwszPHbY+/L/dS1ABJfdoNZio0WWzPrQlfGnsJhy9OcvoJSkTxlz
xkJWznC5pgpvRjUg5cTo+kHZM1HoyAn5fP3M7UDt+QmltlgUSCV3Bz2WhQdxBzMpVWASO0oE95ow
hJCZPEHgkbqkfoeYSvdf6uZqEY9mL4FLyv7qdSKqDvJLVPtBl2jpdZp6HdRkyyDo4Wq1a9lq03Wg
41MLnwgWI0Zpojbvm1mCkHb8o2EzXjovCFjKXtnRf5jkQkwvCkk9lywS+zMWjIQcA29AE3kttB1v
+aRK50uehXoTu8Skfz+gKb6OGxU92unvcbkwuc5YpdAkIJDiEUa/5zCXVYw1OZE9ZaOS3jEyMWAW
vCRB1i9RhvRMYOp9X8XyvsnCZCe9dsmCSWohLabflU7v+11v84/DGW9edebRqIzBt6HpcWjPMeMx
wrEqCxoh9HQhtWQ/6PzLZlvPa8HAxUK2xD8m2e2UjeiZa9Umx13YqU+/Jduya/yLcZi5wxj6wQZN
F1KTS3KpT3qvY3lNqDp5WXlYmtOWXbhvi054babvrqYJUEhLBvdJqCcI7vmA7xTKeEm2zJg9RB97
8uIaqaQnxP4KjmzQRqxHMQODxfRJWQLJd6xePUwonAvXyptTr0eFT872xqlUWKnXz+gvP4VqTPJa
Z3nlUaY9r7GohnP8BJffBvKAToMHLKO84vcz74jRqImeNP/kh8jPzZ42X/PJDW3CVz4mVE4mbFmX
jwDIJhUm/MVmvmk9DZPOCrvO781F3YpSchqAH9T3XUBkmNg5q+SZ8OstDfy90K1h5HljWHNpgxYP
B7Ymn/6g+sgbT3SbKvcObQCUFWJf8a63ueDQYcq5yIxrhivDC/OKppboNk81xuaYjTA4jXqBzlar
7x87zk2NkAmwfW+JrgwlxGuf8CMYxvMjF4KvxLwy2Qnk6/UMbPiY1nysy/XMoJIJ6j7iqJZ9AeJD
6U6AW0eLsTLw9IM1sy409r3iYh4Jut9kKQeBprZE+AF7Hnm858jqNCn0D8nNbdXOabdz8Mb1B4EL
t0ceH7c/mR5oplvuTLHsqC3SrZLNTWYUf/bZTbAOK/SLSRvkJDFuXFSn2hBD1UMmDfzpphr82i7J
oxj271urPnu5aENJ8GInEN8vfYLVoqpzP3CMgVTAijJqKXrNOIETGLeYVDlPzhbg4E2zUsDoZdHb
eYEzxQe9ktFcsRIaU1cLh2jsqu8Gtzgv9UPSI2QJ8Le6tOOBHG0LLVD3++TJ/K7FfBxjaWruqdnu
SF+XJa+VgeRjx+tv7edR6PvJF3h3FIvlfYEYK3hGu1L2Djz28YrYarlvY77LPMbYECwohyQlo6yb
pHjKvKAU3iSdteUU+gIL8EaG3DpkuVk60lBk2BWM1iDMBGhoQZ2NZmqdQ5iRjzWW6q/bwDIOHQZ6
JDcqhWOtwp4SELkhAMRnMXk1RA4Jexx6F3HQdPNPg8ZHN7sj+D559YO5hNRGUSROQF8ct2XXi4Kn
dlxKXjjRffpvk6mDsQNwmErMsQSdKwR0TihqMHRCxzXOocUaSouR/MbXCHuw5EWkM8oxNNdYpUpf
SEOioYqgKAu483uZxnTO9u8QzyNwmm22WaWBgGbFduONT+72/FlMuUB6ZWUc7v2HsZwQ65Uk95IP
7Io0KDCgWRddu+ntoqfSVkQg52dUHmZkvNFTSil/4KZipAW9adFxlO+MvD8itE4HLWeXHHsIG7/O
rOFFejoxrJF3oQOXRyVUIr4idnexX2NawFU/v9+KNhmMghd72iVL/IKU4VdVsJSpUtSil8Zez7RK
g5QpE/t0+HdWxwNL6cn72noi/8cAHFoRUZOr+yCXufeqkSGTRROpG3EzCis4rA1tzxNb3pjfzLES
ug68ZQX9wGsv2X/PRqVXVHIMyasmckCMwlq0zm+Xl140I5uFH62FiAfjT7v8wdi0AvYFAWcmkj1e
tMlbI6azNrTlZZEL9T3oTH7tLIPNR7Fv7jPk6j5Suf4kA2bx3XJijLKrIVrDnDlzuXwpmHKBwTFJ
9QVFTNZ12WKKVX8Ig9ou0Y/WC0Dv05cv15WOcYOarANQCMV0N7CuyCzSTDk8CmPB0n7Y/fbUwfBt
zxOhu96wHp7d9hYV3zXDwIoENgF+3ithWM4Ou12H6/H1sKIZZnnCcMP400DDZQduQYH4MK9qpCOI
9lIgf625fBsQWOxhzLAW5pdObzq7gbzLMa0Av7uq0Dmhb5nrV5uIbWNkpszEVjDjklVvHlMKwE0c
yJS8hcoBbsW+PaBcbFfR94ZKG4Y2aFkcBxUXhO/M3zO/vabqgZ2EXNGGsHie9+aJz5SP6Sl+423W
Up27M8lE0zboc3PDzNEc+V2+rEi377zBvuc1ZbHdr+jHXZaSHxZ2jSgfgsYNqukbJyQXlZzbVKSW
1fdUBzsINfI9savmnGfeDvAfFLUXPgEXcZzZ7+OOWWTfGycm8YjTZwaHiz8a6Qtr9crN54fRPGw+
FR7PFwRljXTq4kHu2ZqTHS9E0U6zvXYe0RXx4mj6+am7keq1k5jcSDy3e9R8sceWXRyIyV4N3vS5
/k2C5mG2gLpIHarsNwZMDBk0+YDD0c6o4bym61Pd9mnfHymv/Ku2fUjSyzYGMTBax0AOWZpMohTf
sZdpoo/Ia6s1xoqPAs5pR6EbM4ID2qnXIsKrnGGbGlp9GgTXV8OzviXu2MdG16NsfZV8++GqR3sT
2MWLMsUe6eLYXvtCshCZ9iRQHmy/x9i1LtBa+N7gQWIS6Alwav7D/U799rlQHuahSrWJTR05yDcH
r5RPxtx5pwkkDkd1S1XbpipZx2pUyfEwK0OYNXgACSOF88cWXvU5z57JPlSyMz8oAe2Jrc0mwFoy
ggMPgJlPlgPxysulNpLS4ZNEFHk+khl3sNOfXcY6ibJHNSjXx8WhwJffZrYxEilvgVA6lSXktzQ3
WFcaavGF/OOT0PwQMrJqcyFaxRQ3Wu/EkYlKOocVK6pCymbwRabtJvILgMu165FT+me25flgMkQT
eNjgHLsSlcSA1wCH5hqimRhME7WM4bUrgH0KlhxF7MmYtbHvT4ju6ETn2xvpE+t7XI17E+LG4DEX
B2oNwHjvwVnLCB7VRONYVw+ycje4IkhD14KhPP+oWBDoyWturesR2jKyyfopCs1LDEeB+k5nF7Wc
s/YeMI5g/X118bRxx6eM6BhrnMgxvjaA+fVNKHExovyYvTgNtbib0N9j/msyqdxkuRiG+5VyVgqI
T07Wy1JQDfT8t6dtwSDByZykZAQYzNr2Oj4aTYrmTO/69Uh3fNftZs8gajzxT3jTgHn4LD5Dw0l3
0xufge/7ygzHfcItQBgtnCjtBMnfDbTBAuP9sD/w+9GfHek9BcD3AQZDAS3bT+XX8Ir397q4ydJG
lJ9Wek1DEZgXgz8FG8g284o3ONCeDp0A+Lzpr4HaUxeRAd1qt3qrxqaXWdeGhhsIpyvJwJ0QUbhb
YKkxxvor4tl3HOkjD/qF50iOrmyZ7WTM1zX2b3lxarbuosnD+tTAiqYxOz2y40kbzPPWtwtT2jak
go5jFJhNVuxdZxDvggDvHuPAgZs8G1N7ftKM7LhURJr5i2rhlFNMK2ifIlT+EcqAe95i+fo2dH4o
JyX6xOeVOpy0CXakB+OFp5594iGndu0PfItHKjtasj67tyBcZsPymkxyS3EnlwLtLgs8ci0cwg70
9j6T3/BpLVW1erS6ochNGdGsXCiuijw8Bj9akhREs8wR31AGWsW/bIe3IFwnALXjvduSDKDd00jo
mGLHI97qGnsG5ediSIt7/H3t12p9KYIUPeWT9vSDxa0A87LzvqmZGvv17M2nR0eM2nJyL8qwD883
3v7QdDFXq0U0cJ3k7gXHBmoj/+x92QfWJ4TllTqfLIefQA6MvjMKiNNVaZHE6/wYYi30DfaeNVJq
E7EISTf4bb5Cd537oc1g7Rzr1iF9AE6/UInUCY0DRi+aoBT7KsxPC0Us4j4VBGl/5ZhYC6ancvPA
1Vl5ttiQ36M2bSSD7Q91fu4KOJAMkDXH9EQFS4TMp7ybr6qrBXmU7tEceEUL66XA0iPGclcBbi80
r6Ku1icHhJFPIbjs84IxTPQFqgppuzN1o7I28r6eRZQ3LbTsKwSFnv+RbMuZg99GDKiR4EvPO/Ka
qgJR9OQwC6MV6Fi/Jeoillil5HDaAip7FMMK9xKPjcT9Sq510aUV1lX7WM0a7+6om/m50poi/7hI
R+WVmaRa4qvts2oruwhhhxf10WBi2IE8IGC2G2OhzDIubAACOf7RtMciWLBOeXqCSs0ztaYGMrCo
mitkvWrKK4bX3m1M09kMZkuLYXGzw9TkETGcYqITY1+1Mnxi/tUYFUWVMfQJ4ZchS7kbVaPz9Tf/
FOoDDoIrtcIZI42ojyaCY/5h6OoIpkNEVjyyPuxBbV8A+i/VvyuR5UArOBnGm+vDsA7x4j1bCBv9
aEdgykC8JuDDDb/MeU241TzsGlqjr+F4VeFucgDjgdwaZhhOAOUt1nFZcxlxMAbc634nKYpcBKQ+
YA/Wlo0dN0ICvTc+m1vgehaybuk38SENPDpxuD5sdtimOyq71O1lP+v7w6JdNSQ9GLWdbvMRunKV
ZmJBsYnqfl9C7s1Qq9pRVlBJVLPUvbu6HYsB5WhRRB6lAM3IOOj3gW2a6Tzb8Ksxj1P6/oZ1p5E1
bd+Se3UjieM/FCYaWLgyhutH4kZNG5yP13+kahBRAkksXzyoW0NsYMssXV2QO3u45WopiUEgPorR
GKzeW5dXU/fzUrGnUDypRvDHCBgmOVoQle2PYJOGEGZObdgn+MHxd1cpcJJ1qsJSw7wtq8y8VqTz
4nKBha4gH5JFRqXY6vfueTokCcV99d7B4xH2nkyHFSpiWfX52ByeJmX4RHjMFPEYUPiW+T/78/Jg
NdHwBeHf8fI8isV0LRDp+qDN9JiWPYpcIuzHB8bTkIGgkXqU34pC6ImRyGMWOuZw3vvECIuzdGua
OoaZOTe8MLxcMTSpiKa0eL0dGJi83GypeGl+1B4WSmOgKkEQ3ACewwMuDZPIN/T5YNws3PojcuUq
6oDOrl4BrjK8tE0uL+cU5rVMgYhj/acB1Ytn3xcVr4zEoClJfEkUkq/RUVcv8hrOF89mwBbjwwAO
tDvb7aryf0/827dM2XsI20O5MYEHbxC2PHGMxu/p63+QZ2vgEEE86deaRJDLwC3bqT33j4b/J0/g
r4ib+9RJ4Ydo7lOXNTfezD79V9RPlW1/YHln4TL78L+yeEY0tMdEwHUA/3PxenrZpNX/ZiQ82ds9
ugGBuLWDJIsxeNwv+EV5S9GODazh5vjXsbMNGI1DfVVx9ir7DpYGXkz4luwQpX/jHSzWIjzl3b8T
ILZ+5yLc8MQnEoJeHj/88qPytaQtBksjYydymtI+LMOJCVERB6A4GtwGoQTwtQJV/0l5yL706cSx
U7389nI446Wk3Vtb7/yD5Qpg91b25g5qijSWunqqG1/CqMdHVw0ZZlanIz8Ipd3nJRVBl7//liVR
uq2ofNPZpOjjbY9BbzIY4lyNA5Z27r3pC04se1n5/MYT7uLMaonjgJjV6688kQMpN7C5H6WvsaT8
7RXad/4ObiUWqk2PWM/U/dy7m+DEohUSXcxtIuGPW5ukb8Q5aKBE+qPoYtKmKJHbmGEbvjm+VaBR
pRYM4BdnLKwm9/wD4/OlK9UbDi+9S/q0UcOMFXMlIrZdpVzPb+4+xUoQRx4u9yHewC2PVMwWYSAL
2F5ypyuLZo8cQyy/T09aWGggtsB02/zA1XGx3bbqRr6SQQy2t3rCxTV+MLtcqfnTpno9CiwcUcil
EltFOeEugOYdOz8LpnjAtIXrHFEwEJmG+DAHkHtcXRMn9lY8gEgn3PFWcdPuOPNirhO0APvltvZ/
jkMO9xo+cRW3Js6Wasg+52jEkIaH8B5MBnVgqW1FFn2Zq756KNaQtvwlxSYxXgxArIuXRzh4vmHb
L2Am8EoxkIRpMx39eV9BPK2pvCMvwYw5qb70VMBqWz0Fo/irCx9x/1RqvsJ/cynpnPj2T04vDOc2
f0t1wX437/jZfieNNBDNhrvyzS/TI8mGFeRqtIzHc32DKV4SK5Njf0cJ3HGSi7JnXwm1bQVTWhri
blLRES8r9Md2dRPm17emflboL7c0LDEJUWRBAnOZ7abat3pWznE735ce26HFTlzkuqIlISOLXasg
xHhkSyjq8v1HpJkPtDbj1FXTEtoZwDMPCEL9hAViB8/GQZ9tuZKkiabXO8N/RUsnNaprmKunf+Ro
PKKftUEokTfEJCn6kQ9Uuw6UfXw6Wb+ieCevH9m2PMqgkPb5VVzntcxGV5P26Yhklm/5IHKcCwrr
ZXjj5vY+1oZFiXSoOikatTKXjk5Ezdp8Mz6tbWGCtoV83WczM64R6GVGhR5E3CvK1fMZ30ahYBVL
wTWlJi8r97lGWgteHpA45oR8wRidjRFdX1ktSHYaR2vAPSbkipmLEhYyE0UTarM3Up7t+05Uea7R
mLXZE87+lIZsnoziWDDjGlnHIkgHiLJMyJ0++t2iYLNJZbLZqHyRWB3BetgtJqPlz/YdPzn2wk/0
XNTnPOAwdTnV7ZehWgPFA2EF1IoHptDJSYs6SGJ8p57fcX4IdEDqM+2GKejd8e7Mx6+PNCxCfFsd
3ruR2VOVA8Y4cV98DEcfCgIWRjjWxCQT6D2DBDpArTWN01TicQ5kLIpTIZ/s/uWGpL8zN3WvNs7V
9ST16hTEvfAefS7X9QdtdxOM1DXfaExdZpu2iffherJH3poQK51Nq0ymaGqGkfccnWDSmScVv5oJ
88kjv4OG/Gd/z732aR7TJr04kOWEaZ464jkZsDkpTq3zZHVcv3kVpnWhzP1+WRTSQalK2qRwHnOW
i69nm2Sowpff12E8anv/1j7LYMdlvCXbAm5atUMn3u1gvSZl4Ou/hEdru2rczu7VXJv4qjdHbw+W
Ba+eg3tVl1232YsLBbllTLWINGmJAd0n9+jsGM44cwh6clENXn7wju2sajSmaSQwXjElIFZjlnM7
mBxPjUc5GPzgOpf9piwKMB962jQc9zxzKVaThuk4qlRmuP3x4nufBwSuqc0uHfhwneWP3+QX/F2a
5UY3fMXTztfeY/N5lwrdfHJ4eiFKj2feYXi2HoKyJvdtqVGGlzXg5VpKdzi1wHiLACWIIgG+4eLB
gTbE4kG7swYeZLux1RyBit2Jnzaq2GQ/GHXfMdXn1Jja8tnOsAA+nqjyI2875OubYE8LxqsUS3bT
IEufOO27iyv/qXa77+czoofd8y3SqnVgpbmi/2a1XTl8U2t7hs+tyIba4iq/B5kGv5EatGhQH7YR
Jj8cnl34QW1p3wZYd/69ovevFI7jDektLiZoYTWhmr13mBTAb5GwmiUWgDrW2efNlFCf+Vz0w3HC
3cRO+I10kykhadIjOXHWkgMiRw0gsIiT8ff/MlFMtGF+7x3OyfKi4z3gDO+Rif3u97FF93SUMmk8
u5h6Y4rkY5e1CcsADLyynrvn+oE2jDwy+zBb01qsluPTlRWLSGZFpif4wJD3HzLGFhsoFmNzaTrE
+f6MWKOBJqZsdqj+qM7MYOs+/X8Zgu2WnGKGVgo8+a8x3+cnYlsVxMwxh/xF+W6WfaywLulfm62u
G1hQhP3hMbWkfZtFMjgwTIo6/RyJjP9Qqn4ScybAwOIzQjzeKv7dtPG9z8DvfaS9Q7U42Yx50mzl
pYGLH+ZWBQ4/61IvIZClmYLGxfpqK8z2Rg5chUGKalP4aIyEhxxbHlvCoqcrkkIMbHaYcQw8YLHz
2ThLTDhYZNFrmE57xEhgDOfH1L3qVcYMp8G9R0k+L9wEAblNsM7xA7RXvxeHz37KLYnaWQjkZ0gu
c5NPMvnhyFDIScybUIM7Iz746Py9CJ2L7FUjQOjcZsOtnNQE63fHnkK1Fb0GowY0/pW2GHTT+PBX
lO6zh4slu1HXdYmkUbP4tBFO2sVA7fjJZZ4he9Yd5J7Z5FjmTdVsr7CRceN97fA1Zy2BcEeSN211
uX8200wz1hEXp4k0ob5wmV3j6SNs1o2LFpjJ2WUkPkKHuFylRKtGlxcrZrm86KfLfnexXhN1z3by
KN/M74+/ew6+RK6HG504erxhw5SiK597fiSYbf0ncpHi9pjNH8jIPneIBp26thCD6u7Z1+T1r+eQ
H36e3tHtjp3PeSZ9E9vvPRuS+6B/57eBblnQ+vXi+sHdL87+Kxz6ePjXi0qVzjsXDnzL9dwg2/LL
KUnPnX+V22H41zpl684DZ/9JAv1LY/2mszakH7Z+WynHN+072F7htXHrv1r8ax1XW+mQ5j/Zpb82
/7Eh4Ou+0IPfqiV9t++gbOrM4W89TVY6/8cO3LWdh/+p9i79jw1PcD53b3/D9WXDtoxx98qb36pJ
9pz/YyF7e+a30f3sd2q9UeL9kxn/VDtlo6iWBNf88dto27f/cirZteb7byL12f7U+kFXg9/O/DPa
K7HrN3V/0aGeWoO0BmkN0hqkNUhrkNYgrUFag7QGaQ3SGqQ1SGuQ1iCtQVqDtAZpDdL/35D+PFLt
tm7dj/dX/wtgDdiaVa1BWoO0BmkN0hqkNUhrkNYgrUFag7QGaQ3SGqQ1SGuQ1iD9v4b0dWXfSXfC
zwvmZesUn3N2Lr/hz1z58/8AUEsDBBQAAgAIAI2hM0pEeeiuvjUAAFheAAA+ABwAZWRpdGluZy9j
YXJldC9jb2xvci1zcGFuLWluc2lkZS1lZGl0YWJsZS1iYWNrZ3JvdW5kLWFjdHVhbC5wbmdVVAkA
AyqOgVgqjoFYdXgLAAEE9QEAAAQUAAAA7bz5X5LZ+/jfajU12jKT0+RSk2YuSWmpuGC7qYnlmgvS
IpkpkpgSIFLjNI5ZWm7kSmVJpkKiQm7QZiqoVCiEuFSKDCKaIhibfmzm9X2/3v/A9/P4/CC/wOPm
PpznOfd1ruVc1yH9JNjjxx9+/WHJkiU/eh4/4rdkyfJtS5YsO71ab+FKYdLvlxfeLK8cPX3l/EXY
+ZiERPiSfTD7c/suOJzbu2cfLPKs0x6g0wUnO6d9+yMjI8/D9pyHxSazyxcaLU3w8zi0hNxtJFmy
5MASzyMHA64ulQ2s6U8cOO3+lQstb1+f99ejP+zMt99Fd/+0vfZEgR3HzC93ewHb5uGdOw9OPTp5
1y/65If7jw7K++coQyxnWRRTXKzpn01gUhS2QwqVKwf3J04ZIcVWt3AalVdAMVawx+u3Hbi2ZOmy
FasXPnzat/4bnvTSzub3/+/K968CDyx7uON/3Xa5cM3xA2D7S2t/+2/LhVsM/q/c8un0pjvuqhz3
EB2bqWUH9Q6pSoZCdK/dta95sx7YYei8AhqM17bhXUNraTQxfk6MD2LOYpl0hY7zh+OchjmPVcQw
lTGV0YWgTYXYKvitgcm5iUmyWOWIlztWun9LdT/t7j6eileT8KE6FXFexcvSLbTSjBHwKgKdgf/o
SIVruO46rqINIxiU+Wel0gakx4w/H6RdrwFN2LGUCoP5rwbB80rEfFK/a2KKqfbTqmC8jo/HPe3U
1BVLaCDtwo8SK5sJeIvaLkgcFsymyWqrcgY2jzap7sMl8Yo8rhTTIGty0Y05pgw7Bk2iOdggCWJV
nu+s09+RGtZBmUv3rMGJA4yprcx4xVHozNHKoiHtaKVL/2f9Svviz+sqARoqIGxgIokeBplt5ENK
VJ1RES2fVgJO4zR0vGbMmzHiHWSq+dhG403+yn/+dmwL5+rbhcnDDCsoeN3YMsPnL8Ykvnj18a6+
vnwzk+DmLz8H0xu64DSwvODrW4DuA6CaoVyYwz+uz0QdavKl3WbOSZkMdSFFVdjrtkCrqDKZfd5W
zZAUMaJ12j0GEdPZhKruhFJ5VYS8kB+rPZ39hqJppLhMawn2us+mc597vz8myuDXPx2rhsZgWHql
ybyWM9/Mp2EHnhx2/SZk6oS934fTS0iREMjTj68Ww/6QxWxMxQ5IIyoB89MAqE43NK+Ln66amwbM
IxOJmv6oRIk3FKN4YID7+7RYJ7knKAdpE9xnEyotXD+v6Z1wYcpdpLOc74/FuBFTRHNLK+2o0F7P
EWwuxxEaOmFBKIa8xJE37aRhSdAt/TMDJXO58Qga1AD/7bXUuX7DlD9AuUffuYBBrYSTWFjzJmEI
Q1XERFtBzaTR3cj82hOPd1CI8x+zdB9ntGJ3vFo2NCcbny7xym9JQag+cebGOeVUUpRqOoID1Y0F
T+4fIKezTN5LLPDTFigfZNUkRPE0uGQCxdQYS12xhYIPtclrThBaxmFZ4a1UR4z6bw93zAjHVLzK
t9wWP+OBv1IcCOShd59Potq7ZyqovdulrP0UdJfyilXqcEUykEwUvzyb/31MCPXc5PzcJpA73i9J
/wT02w2oE17yyCRqQcYG5Ty5U4FsALOz7esZf7fRTE1sU1bobai2FVo1tFZ0vOdUVI0iYUcsdEjV
jQoi2r0Q9HWXMU5lvu1FR20hzVLHXxO1IxYkwNwXAOis6xQZ1SJt7wqPw2a6lvlLUotoN9JCAgQH
XSEqVvCg+u7wuDVJrECqBnRUQktso6IaARmYHmiIdqFpwW6C+He8bTLV2w5lnpthgk2O8dUVI3Oz
zPmxfjFoljcivuDYJBirZKorpXfvVm/Cjd022tC+IQdmuTuEceWV3JDx9Ubl90UN+lyfWjqy52Pz
gjrQegy4zDNmWxBz0zVug1cuTtyKch0eqwVJa8GXtqwS1BUAhMII9/q5uOnO9zU4L/1EW2He69dA
Fk36EwM32mKpr0mOA3WRG22kbvPh2GI3RtspZQjvbH6t5YU0lRbZV1ZFYKNH0NImifv85LxuaKck
ASROCDI/eBofyZ92aNXVumtqUWT8qhZmxNelBqE6/1m0jg6f1L83YMm7nVru/rcO5pafqSHTi/Jr
O3CggbOjLTERRbwbODqlCORCGSZJ49U+8oLZIrgCGOvygenbhTyJ68PEf3SOLZykGoiv3BsvKc2y
YCysxblnGX2NMuDMrcyp5UW8VBHt67OMGF2sUJykyPNRCByIzYxJTEOMCZE8mz80YPrtxaqgrtHY
KBfh2IKszq8JFM6UYO4o1tg7/VwaK7VOCzE12CovcxieZ8jonZ/v5zmXyH4Ifv5KzQUSvgXRG3vH
isWu4jEavUWGWYmfbRpqaWxzm6jBfHxtQitVBlIwvU+N3ELcFBW+kLzxZJ1aexCc136WV8zG8ZsG
ExWZqOYyhm6hNVzxLg1UV6ofZNej2D4X22yHA798PombbML0lJkEkvC82tJ6dQFRVYC5eWQ0x99g
1FyMcJ9t4FSnxbMjvvX6IDDc3pWAqy97uaXKOmdZqsnMfczNELBLEd5Brh2c1A1iLoVUIcmfyrMz
k1VsKIPG9JEb4qcMK1e5f3tZSeWjEhvYkIk/5O9nazqQKfOzeObOKOCPE5vpz1vHSCljpKD5b1nz
p4Wlt5O6md2fdR6uXzYocp85MlVdlVX7YAZ/W6XVfzcajaVes4FQRWDip9pKsDxJNp3MLRoM8EV0
WFqmH7YumN1hqmrvtYaqWL0/xl1O7TXQvjDooSPnEgTL69Xf2twZmM7zJv6aw5pOLaJ/E4fkKrLc
X6BlTGoYCqHwy53XbF/Mh5yg4AZWYBDM94yb8UhNFi5W118Oqqu21bzZQdTdNVXd7U0kJ5T0+cpX
biFZQyRelfRm0e7KpiHdxP6C+XyEKr8ktbM4o0hh5olSn5XKK66oo9WJg77N8ueKtuLsO4mftxug
28fSUv5OG2uMr8mAxAYqx3qUcTdDHLziOyvsJJM1Ph3OdxTWLoYfoJSk+spe/8JQV3o1QfG6dj5J
QaKKn5T+Pu02JHdTvFNS5sYoZPcChVt8BoRFE8EzsEWnYqkTO+92OCvDmIowWbW/duBC/M017opX
mqH5uTHlGwtQzdvtYhDdWJ8tg3yBZt7p4cqR3XivviJuEF4ZhaeBhkhZME1oph3ZFnk3o+d5bpmh
Ai3Y2uyFB6u6hrRdCg0bE5vQKabBm+SDVLMLsMlPY0sNrh6QpUVryNmgXON1qoh2yx/lElRXDL9x
D3SwXBZzDt/mMljDm8LwmyIgjtSq2FUpouCUx+QswWAyH4XjjzWL3SbHWiZxiBLRgikr7jNNcP70
I+Lqawzu4GB7op4gc8RlmzmcZckSdJcb1XX3pLPwnORRe6m6SPaulqgbV07zmJ6/1Nq6fr1uUDVU
gZ9F4emlSWEQ/iYbk0ect2ZDLtEe5+5RpS5n92b0lqcUgkrgfgJNi3rKdH4Kw+IAu+Mz1aHeu/RD
mbT6BEFabQmbZuNSOY27M0krflogCx6MET0RlipVSlQYVMArHTbxtqHf0Chrg+ZVQwSmVpSIvcsd
kxvXVI730SbUtqWcBC4GiHfPordanidUIUIcEy4Fe4FvsJwLjIcthecuny4ToVCjJewf7PI9tXKn
8+UwwUxJX7nAQb8vSAyRfnIoo1UpUYLgaXX53nNFKSoUn3YVKKtxBWxNO5wnsjwtey368h7znL6O
Wj591CHvx4O4CMZPUrPHh0+I+u5WFMtDiYbjFetW97WR7C4WskqnFHJVqt36QtaBi7qFce8V3Tnn
BTbQ3KR8u1lh5qZAbznpCzsMMSUs/ZTLoSE/r4VetXohk6zBs4/hvtu48fRC1tsUq9RvliRC3tLW
AD20v36XaD0CSElWvzTVvlQLPkSTqL/5IvAaoVTe5j435S9YTxYXcT1D3bw93D7P3M0+C+Yz5xQk
I4a1MdJKLOWhxSe1Z2O/QBzeJRaI1l5puVV8KMC5XZ37nHqqisMGTil68rNje8WwPSd9va1T66KD
S3i3C91OY/IB05JwsTM/Fx2FjreGHpL65gJmErVsgipA+VOVwQNCXjNP/Np07itGLUqNgUhD/cu9
LcX1PAl7G7n7fJgR66bLwMhOxwrFrjWcAIaWlL3Ep0n9jmqrebujxmarLJTy3X2kxO/uOIwrnQtx
eCKd9X74PDYCV6owkx7NL/BjnCHZfazK4voif2kxAyrQXwLJ5++xPj0FAcS5vobMb61SZicz9la5
d/iXjf6ez6UaFWJLLTJC2jhfbkriPMqKVMF2uOe53VLsK68ylZTBljSU8pEt4cypilWrFKQeTT0F
By9xhrMtfzZHV3JqI0jzuQCiIpbAdrmoY2tt0R3e4Jr2xrDueooMQZOsBcKf5sE3y3SqoeKNfnqu
/p4TUrZI+/lSMKNHKhcpbQEpQjoubECPt4aFr/BoyCeDuoZx9DTzs1U6oJCeW7ysSGEzaKkKS5rr
aSsaq7nielEIidqnoZidsHjzeLz5Huv+FYfWebdY4YNiWpge039LJE/BMLNNfAiR99XbjrxuolHQ
zHCEU70oEpvDgCQl+QAHHhmtoQiFyDjtzFtHRo1SYfdXKTI0wjN3eirU6xAINyFOmci9ShppgqUU
RvflqMrHa7sj1UpIHudRiioZbNkXsFGoQn08CsC8t9TtE91vvCAkoOn+z5CYK2osbZPlXqA0hBN6
3k8vN7GpRCIeWpP4SoAXqqNpOFU4zbAi4RxBhhslJO6A8dX1lSVF6stGgCsP1lbH5E+K0WG+F4S1
pRKSyYLlFfYl9J9PF9EuE1NosYfVcNoGoHn9+P0nNYVtFwTB+n20OI1tN9IgFCBOdNkFhhsV/FKX
ndJru/bj5tTXv+5mNgmpcWh2GNn35SXK7nlbpr/Br6vglXJa4tdtZWhcPs58Er51R7c7oa2J1sqO
zpKqrnsc8LJwC+gwEYynt0foxpciUPWWWzPUmKIQ5YcoX0jT8X3YIq+yPiHpm1BpM3p7PL5zMC/y
kWCYGAsyxO+stdlaqf62YN+OuzWXlBnL7YgcrcLuMhmLsMuK5Ee5awTBwBabxEZlPQUyWyxe7WGb
29Xs332l3L56Aklo6ml5gy5twRbZfrO2xumSlWB6tptIcLjURuWx4OJKp7MHoib7z8Z+GBw/al1S
Z5LOGnyfm72LdrTkC1r/fd5BNK6l6kzl1oG/jymOc8jOJXtqBTmPxYbJLw17WvpE3tg8dBTiJHU2
dybdyNg7PRDcypKANblGFelw269gTxfo1M3gnrVOqNbt2JKERxbxu5e/wDwy9xhNUjyA4ZS3PfTf
O8x37nCQACxFoU8b6S44S2krremG6G+I8rfR9nNeSgyNa5AwY4WNtqfkGv06x0PoeI36uQky6Yab
RocYPY9tA2fjRi/H95W6bZN/OBfkEKRYHZi5EQZhDc0UjcNZ09z8/pZd2IbaFLNSYGG+JDRafokj
xqMUpOz1PTuygaG52apITpA1UFZr5kv6uLOTQLeegINQjdySp0d5Axbuqg7FX2fUH6jj1NPgIjFw
LCS7qNGYJQ9/N4cmzqKlO7YtGNPyjqMvBf7Fbo2WwHPvzzUgTNli5Irt2G2b5LmVC3FIohvbhJ1b
R4E0MytMCi5M3BNbCmkD85qJeR2xzAGYLWDRZBFYdzy7u6CxpFPppNvlEVsLH9hPgUhfJQ8WLSw0
d2HauJuPJ5R16llsArJul8dr5JU9e5unbiPCs86Ijx8bAzLvHstcl//S8zZqtLafnL80OYIsup+4
U6iZtDH0Fv+NsAb+Tq2OHGCfyjZaCTf3sPkQNT14MBFOjMYPF7ixGoCHvU5Mu3pcp+Es6jg05j+L
qqazWQ4pTSGU2QviHhEnQ5lJ9fbsAV5aWMm04/D13CQrYUcsduzWhXn4mHV0cKYeoi/JZPb0uYbd
rk+IXU9TXr2mJjyNY8t1Jzc+D1RP0Mq2NdGqmxgZ4rX9tIhukuBn0gnC3sPq6Ljpu9mM7MmWe+Nj
/mn7Q1NQ/BvGX5gi5RWh08XgEnp16qotXZUN49ZohPCX+LkG18H63RFgbDjHtzfniLw1F8DyMYfy
thhFHij090OquQxxN2x9/sFIwdaAqBLuI7/pG/mAQaNjLIipXXvng1p0SFIuZPLxJg5nb1fdltMW
p453NNs5dZ59GxuZc1LEvhTBGqzHZLSKKkyjDztUVf+oKgLkNyf9UlTcmOtA0gekTGX4OhnHRWSJ
hpVHC2H11EowvFA0BClNx3vZe1YlqA9M/JF/uNSSPVcDT9nybNQ2TJ7tUlNPtdaPjtnIig0IE/Sm
9e2rtk1L99CMk5mCj7DDjRWPSrY8qsteGrB1vSi3xAwgK+45wT2xcd7MtiKhEjXo20RgX5oUz+R/
rAPdk9RqZ6Z8zOVeId0Ibh0aHoxnLdkHtYF/uiOpXRqXyJbDwqb7mkd0kHhOnZxWx23oszwpRxvz
fnP5oW+bu9wT0ue8nzipjde76Hk/4dcjG/PHXTsIV1hn1aezx4r9cgHlZqYCVXaTsQitRxcd22qB
o7+ECCf66y3T45OKR+qqqbNzP0mnmgfQ/WqwiYW+KlYP0TRaHwNpT/ajwaHyCF5Jv6A8b10m8/NW
xgO36qlLqVPN90q2ez6rPVyZt24ne4OyEQenGI8iYlC8gvHnVh5+PGnsKHfjPTQTIedkpq473Qcm
NJem5GRP5rzm7ScNwVa1N5tt9gwXdqc1O86D7/kKB4WKloGN104UTcpnOMWbA5X3EAO88UtipEoD
chfAOUhgCF2ME92XtdqVWrjkt2vz5cX8+EHOKIVjSo+eDmWsrU2N5tL2TEaFCGnVq3CGYnkTj908
xCI71UdTcxzPNxebFMPDhGjMyXV9YuEQbw7HZPaJlaomawd5/Em1mjzZrzS2g66a3VvIjxcEK413
TPRtXtApxVm+vStG7t/cuda3zDQ4jl6wNIDRIzSpFEWJl3b/6bh1goZCg+DLCD/ClRtHjx9T7ovy
PWEtV9Xxk3QliJPCK/Id+0M8EwYh+af0dxC/3iBIatMcob8LrAPAjtG1T6AmBZxyh8iHODh1VXWx
s/8majGJKEeIsR95a/uHD4ajeqO5NvrDBQmWCaAUowXLO3kULh90YPZT7cQAhPWq1rOqBgjuiY8L
hc2Yukh0Gxuqs3f0uujZlgwCsvKkkXaf2C92iayZ09aVsEEhvS4JBiqAkuUfezizBdAifnn0gsrs
J7vMfxgald9zH9zHEWnS0rHKyxbbOyIewoBVRzPHuvDysi5ECFOJ0RTtCAIi3LBlOX9dOPPhu3gB
H1dE+BNW7IS+EUiyjYF7u2jxpbF0FWfeJICjqmO3CaLvHDxA3rGLtKpXWpTPHceUvrFnIzy7aWhZ
qGGflr4gXCk0AHCseOllxsfaBJL5A5lczgQeupt98FC2Kohqb43d4EurC+uxWJP+8qC5jLOhKNmx
m1LbKc7048fu+EBDewr9pgebAd2kEBDohHvXLDqzcDyUOa2rry5hwyY12p6Pyk5CS6WbXDKa5Qg/
b2Cff48jdTIhGaR82UT86FwJF/JSGRn2ryFSUfL1pi895ez93oILo+3eai/yAy+g17o+1yzNJEPI
LetBm5ZBZALUratUoQKS+FE5WEP8vR5+kM2Xi0oybiGXhkxcnArGK4ITDQaRjT4cuYuZINUBAOy1
3so32+t5CNnoZRsHoLe6fqZ7jlprtXIPdPHS+Ka/4sNWdZ7ZlmZQ67Ft60RQ9tUWRTXC7XPaFvnj
7IxAg/M5ytGZ7PBbhcwtfz2qU9cBntL6IfgFsRCKF8SiLIjO1Mmkrc/TSqC2jV3bzqSYWUILgSUw
opMNgV5pUB8dJtTflKUUlM35tFAJUREbhUaJbJOZHsv0cGvPlE3DzXREtMyrudbxb4uULxbgbxfB
a2O5xV/fbieOj/kC+4vKzsqvmiCVaZlYtW/mW9GF9Wzk6Ywed+wywuNqFJsvlJutAaoJRx6VpOTN
6gvb7C5yqMjzWcUPc3b8Bvw91xhQlM2naYe/Fe1gW8r9R/Xth4wswXgf3D+h5Lt8OlxTOJtQt41Z
ezdy7yhb8bSrTNd1N3PdK6ElUqZI9hXV5QXZnQZ5eRI9o0ndXeKaiqHIIgK1ChXnVYOAiNntt49R
HRMZcSS4oOAu94PSMk1GEqjyHyH4asVjYmPMp/KkCX+SD7e4T1gKkRVo4p4Ky/mZ08a0aFAaereL
7agHf5Q4EEiEDLXCTRbUhYPP3MRN/yJbEvhCWE4RL1J8ynsk00UPjvZQNSE6s/zEuFtJvegFg6Uq
gAi/iOraFNqTa47rOW95FkmRUOu4sX1DzcRbl+Zcs2odzcz5enVNP0QaxDZs0/wRc2TsCFENSAPV
zu5CgTuGjLKtDf/ir9iRem/8Myv6R8EuQgaen/ZzQuGB7taYtBfZ93IziqV6zyGEPVCwyz4+48yH
iuk+7b4HyHj/gbAcjmgmNRf5AFYdlp12ouh6PBnYXqcqSjiekGtBSoW1gjsObC+A65mpNh6fznW7
Kdhm9HYnifpo5Os5/fp6QHbxUDHf7t4J44jZRn4vgM+b6NkNMyFCEp9uAsyFYS5EyFX1bV1mNRmB
4QmPdppz31QaD3Zv/zyeF7IT7BlBbXPC239lE66SJe2EMVD88aH0w9b/RFzAH88NMfrUqBisS2+V
ogJdFAYZxSeQqsy40WETjTkJjISSgLHcpgjYMHGkMc9Ixo7oTLp0NN8RGjS2aShodC97eN1bLoI6
uOC3ZX6BmWxZX9/oSOeVby4SYQT57+cmxnwls8CWmhJQgXPUwHHTaPo58AAX1Te9EErtmqjwkIrR
xW4XJe7wyQT1kTAxNyspZEQuz96xPt1/6z6YcSZUyIjsu1o/9w5UBD8FHvByJ1ocSgsR21M+wiZT
eDf6IVYePyV4neNNiu6fC8l6fD4jRlOkasPNuVLqs4/Yoq6x9kV7bLwJc4/h0phyp5FcYj/aCsZv
Tqpeqxony2IGOe8LZqaqtgIDa34Mn47wArkjzm98GE7KSXyg0FW5CJbemczOfWODymPHRCeU+0Tz
j9Zz6kHCUWLi6CtDxmU3c0uXR9TXux8PqODc+suep5Gkp+PHsRJvaCh9VcNOM10SsZHWuE/T/9gK
e0ZMegxTAa1KFC0+/LFw6+ffJu+n/JrDEy944mu8ybv76lNaYWEuwi/+JIeh5nz4ESG4TqwSjqVQ
haWdMRH5OFgw9pyAZg0PS6aeT6/DMXbH1gz0cEYVpe5xU10xgiBzkOwnhQPToYsMj0m6HLsQNjXb
Z/XEcJ9bTHLYZKcuElu/KJYp5r83+SmVV467HTp/CbeLzflmJ+0k282Du5SORCKnzA2s1X+aIEcQ
O5Cz+y8lhivz4OffOOA0TTFh/eVAJRPW+rEyNxZtlUrDkNKRv77OdanJXXpFFxt9uYULrghvaTq0
5ZmPaFm1MxzoiLYiHfQxP/gE1b8r7aW0VwnjRLXs8Jm4F6B8AZ5lzLaQqHcHTxPs2gtZliv9BWsD
J5+cCpqoWHdmzPgptbN/y5OqE4raBnYg8OdoK8MPvCZMrn8ZT26zdTKUZLe6AEmvQHcYp7JK36hT
Gk7X03aj7Nu17BsnFXF+sJX3WMBv/qpz91hLrlptfYFBkZFXmYOJO1EbdkHX+QtqQybrAoI+9L21
+5uMes+SI483DpaYs22hVr1m7PZk9pnyIMkeB9ETj5Ym8JZcsOiiX4tLQExwKeF6R4DeE/9BQCr/
19dv7FC/sJAJFg9VxjtpvRVdCXOoiRBGz6VkO47dRTKqYpeHy5gdK6IPQ3raD7NRWGLflPcbW6Ec
2JAi1pLyt4yqYgXYuKGJXe63sVn9Oj7kmMDF+TH00fjNwxPrg/RM600qEBkaMig3xem7k7BrK1H9
OqcCOvHIXy/KH3goiFDCCNTjczMiZh6qm4v9TmneUEtEa2Oslt+oGE+v1rnIo6Uh5buXEzFRpBn5
DIF6kMzuwIq+XmnxDpxYnZ8kBp9NRy84iGusYCa1pyMHbLCnL5WwlsBZA+/8qKA8OV0qNfd8MtVJ
/UCz+6XoCz0cIF1lOC8b8zW3JCu6HB6Erw7votoSMtKkEFZoP1L80Ict/HmWup1IncuPPG+FTSpH
Oh+Eh21p7v111PaiBB/tO3GSoELUnt5XAdq9nNs42Epb5xXTzy7tbzT+S4PEOhI9JsazXWRdbAYu
dq6gbrvwcxDVBCbs9VJ9GTidhe5H8mn95rv1RRnkt2iGzNblWN84D8++3xTXRjU+4X4LQYPL9M9I
17BTp0VueS0E/4nCHIUzKogN+TtU8D14OwRcFkEI0aNwabIYNbKvd+5xpkrfu8p740l6L2xybA3q
q1XqHxXF03vztt45IVqd2CIPm/jzo5fal0ZKx/YFkpsqUGdvvQRJT3gGxDCtXdLG1D9n9fvI3mel
zKyRosMiRkPIYRXwdpQ3UERuCZy88LyabL69kDrgI6wdvNBgmQ6nwafYWRdGsdtMYAcaFS5nW15M
nwl23+144Yk0QfBgryie4Vhbgvi+XVL9fbtkIvdq/bQxkSbq/lMAyi9BKdACz9q5qQ9lcdhQnHAI
joOFYTOxNqeS7KqYr6m7O42Z+n0O9EY6Ewb4FgDmVwurYjkJUY963GH+UOBFYaOs6SpRQe2t0A38
THLwodFFPdPKKzpU2DpliCHf3tIgf2hgL7jFjrfbA1Ju9xexD9WmTUC7zoMHoozqqrubeC9xt/wI
yRY2TEfU7Q3ygqAkeIZwX5vOEVvmvtscamtp/rqK/tDtyUZBe+4t5R8d2X9HwoiEdSa1773SWEMw
SyyfACiZkVdVVUd+SriXLbE/WWIBTavpEE+vpFZD5C+ljERhAAkO76P1w7mcar9ZHu8EUZwuIWff
u5DaUNEpbkGEOSoedGIjCEFtOM1YeaOxsj52nNoMN6f3dB6b3gXz77Q70JH5x+t8H6kIadKk9o8N
w9Hgn8RyYV1z6pfSueyrE2H6508pA6rpUE0Ps/dsw26XS6bsRncAW9U9VOQ+OOKEn7/fFjLRP3Nf
sXv5X3Cp7KDc+SLkYxDfzMPzfvY92Jk7JXu+70WUjx93fhK552TmdBUiraUYlB7IOiiLSCG7+RJ9
O7nKzRrlYDmzgkODGQfwRdoPHqxE81VxMQQiWx7E9xG+MjNuUCSqj+pdE7LIiphgF3oXgi9ta5AJ
aMULjqqyAE4xrdstVDbgoBwMNPOczAU90MDfGaFkLvg7MnvN3PcHmAUR0oZvHQwbPDtHm3z2Onn0
WeJg20XudC3ogkutr7FB32ZE4XxHszJEdVmQc/+faoPr21cgse+Ly8MyvYjvSvvRNvz8keZLoqsr
p1PLVWdpxUnfiyQ+bbvuK4U8039aPLvme6sXZ1cil2K6EZwbcw3cM8CbfhRIp/FZM9O03n6E2syk
gWYubiRwB5SaOxWr13+79fPlFSP2DjO/ghe6i1/JkuxUkP8S9VDUqcUbs/wBvAZ7qGZ7Z/+Ys2NB
O2Kz5YrV6z/u3LZUsHM48b91GCsyIZ9O0j+7KR8Xbf9f5RnEU8tIRSvM3N/QJBESj3QeSM7SydgQ
w0w7jX/yztkeWxTdqVXqxniW1RX9vrTf12X2IwBVMXZXsq/Cv2H4hK463f/8WVGcocIxBHwbTcyX
3zrVUB2rgxeIkAk/gFPE93Wjr6Z1OKKYbhB+uomSL/mn4xcv/+11hGD61TmTGhMhcrim4CckMC7r
7bHwR+6NsP3DZpbt/pn/0fdCKUkZhRIUB8k6AKWjaT/Iy26IBkVS00TneuEgV7sQPvVkRH0vczDB
1tud4RxtbKsHGWNXGux9rX0SmnIV4P6DE0D1oMmx+fOP+1W7mGXPrOiRJcyW2WHtxfBuGKf5p/9U
hlxdAXbkXxtZfSjlc432co8nXXsfLQqm2V/seH9NyxKd9VbtLVUAkkb5VXIpAYhJwDxfjczpihaU
vnFiRhAxI4Yw+dop1Q0N5032yH7m8/CU5xMfi6Ap72IDJ4TMuZXi89AX0U6vs5JHdlRO77gmNc83
dYDkmf5VST/blSHxFrURg0Rpq/hco9GDqrNtgRvlWueWQ//WrRQ3v3iQeW1c3XEHMpln+sBZUpgP
ve7mN30qxUb8E3twP+UE/k/74gcp5Vq7GUsQ9t1aQPLntcGiYAI/px5dDf1b+/LDqJOw1td9F7Ou
iRW93xPkB5aNnA9m6q7ceKoQzJSUzbzEjUFS7qbAmzkzaSUXCFLyrH5odzmnOycrmaE9pB1LFrsM
YYIkXA9PUKjRxlR/a32pF+ZfsQKlrlD+epY5FkgJdZtXcaD/5Gq/5+nJrqqDpLAhNa+yzXV0b2Ua
aOaBYi1T+8OYFYWeLZyGAaT2pVO3AlXAb4EqmEAdpPx7tNYA3X44SPXyiXZPT6ttUs3CF2Ll+01z
+VAXqJvE0zcUIvEKfkohQJOq3K/mihFodlgQiqkZCBaDZhuk1fN9S8zxxK9/WFT9UzUygR3SkE0U
Tzx6Obbi3s0znVGgBMWzNLdYxcc2UJJiPMq9qSV8/sK2bNOQRuHABK3x00rAcwzLvxT5SiPzBMM7
7GpvNQ0qyJWo5mFjWXUgueh5b3VcvbMYyGlolMERTZdSi058pdFbqn99u90WOJ2d3TK/F/Npuelp
36UN/SLbYF92R7RFTbNoN6KBNSiwAE2lJ6pF+JBRGAAr6D1qi7zrjFOWi9FfcmHludA1EUxmHfAS
Nl/RLgEs3MAOMrj6YnkQ/Xnr7jE3FYE7osqAar+MEb5dmJz/ngBSRHLQ3QlBsw0cXBDQXPLngoBb
eeT7ITO6Zm5XhousFPlFW27t/NNSGC6P6MO1SCEU2x04+eAsA3U7XrVyqPf7ni1G2D2d0VEpXQh9
FKuD1P7klcehXu6eLtNOpMePm0f3U0Ign5YZPtHZcRJ6duEaZfuHSBwCtJdMmm+1hncp1jZ55Zek
lMxdLRL2l/OYPsxK8vd9wlnmvK7SZXAq85/keP1AeoiXaiWveicbbZQYdjcmhdofEyEvrJyRF6c4
Ajz/2CSuWhuCZwH28mPqkI+GnfkN3RgImzYqQ+A1/+RM6zvUOYyaE35JittOkRAOJu8XsaNZ6CFX
Sk7bv2rsxYaVrBeXojo4TMLSl5jC6RugPLce/y1PfERXnlSsiyMhDb5KBiZTZgNSvkZbpT5zhjdc
w37P+63TG/s3mwcUN4Ns+SEn/k1wZT87AfvkAvmykXCPdb+FwdRSwv9yzbv+4sqgvJS+4BxO+m/p
Fxv2k+yeEKdzlOaCCo49M9fuajHrzGNQt+97glkFKKLbGpD/0qfEt+S+NliPlRjxvbpF6g3b1hzn
0Zcjyl8aVaT9gxkCFggbU6qLiyJIAM8PARt/r1h3RCq3W/KU+z1fXMA60wQCD7BM5hMhH8hs6Nx0
77fbiOThAFujUpaul2R3r9DLzulxiuiidwnUM5THLnbflc69kplQfP7mQS9PM6kcue8hiDNkd78y
y1FgRHNLPFY7zwJsoAznE9iSi/5bHnWXO02dVSm+VIzDQZ9bSe46CbcLkSJXxMBeuOVhu/ig03pk
rk8cMqevHClrD9jYIcmjJIvq2PvtrTzbAvQaEkslRTCAKmBjk2QT8dubmX4xiF44+FkfdY81OCM5
aIB5lwsKzp6sWHdVGvUliFx2z2ujP1HMzP7Ye7XOcDpCtb1OfYUIIkqgmj4+T1Lb3ElZRxaOg6dm
Q/mNQZDZ6WMNFx7xGsx2Y3v3g0W7XmJKRT+9VLsqTliuGbzyvaCDvNX8veAide4ryWRBsjawpdB5
tb/ni0sD3tP7S8Su4oJQIpgIlyI2J77PiLjCci6QCDHQuNPPyGDPX0nZnVVEQsk2i7rE4KH2pOrx
yHssBVQhl2wKGWJnZiu0rv8xm2DwNlSWIMRu9S5SzIktv5RH3v+gV+vpZHcaYZ46lhxCaGEnbjul
7OYdRA4CsDtjst+Xt7z8Me6ZSbGonroK07igF/sGQa1D1FXN+l59W7ck22y6jqy5aHztQqFh86eV
iZ8iMp/2ZJltuAgDUdal2L3DdnhHfBgstbu4EGS+8NWw969JfFd8PWGuRGQTFWLQxzdV96Suyx1d
E+Z9gLUhQ/GoIsrVjwWQL8zPB8xccFNfb7k9UdW5v4OtQTWwIeXfU1ro0956L6Jch7cIuc4nvSBD
CxFiNbTIvX1JSzGrFnw/FMe6W+Ys+F4GqLjvCOiET2ufyTqiRs11omhfbJ/68bovzGEXxnldsupM
wTWzu7s9bpcjj5x1ixZo3PLcPnB1EyimOrSh9KyzRsCJ2FTn8N6WP5N+L0+6bGxkcsFwSOW8YLvV
XRrRq2GHJokPAuOfeAIfbY6z4YrklqJfiRVGLRcRvo5Ngi5eR2REf6+Yneixf+rS8qET+Cxs//mY
ZdlHNN/L4HaGEb5XE/rHKiukdks9qYGZT6rFeas8U0KzqR0jf6Szc8rirFl38yV9fIYSY3wcuYH/
PSfv/4WoEEEmMXxMvKcR+32D2nXN+fKBvGtmDzq77wQt6JSZijcVeWa/i5yfNbpFU1Te/zG6xS+u
k86Ifht3GZCAFTMPitUnMw9VUe62R6+RJ5R5L6tx5hZ0BwAKu7ANm7/sEC17/08SLfev4nMfvAY5
zCDWEqR4IDOfS+d0zZfKYqPCODtQ3yz3VbLDR+0qiyPyuGdDCzjWCuvUyt6fKVdblcqn46rqLPuB
7yoz0NMpCEaRqqFb1vVm+PFNnUZSi//sBQ90VPzWwPUvwm+poiBvBo6V2lFiStuiI/rkdt+KmM0p
xQmfE56eAgd6dgwk2+Ik3hSiOFm1dejbW6mEwA5j1gy/bHZjdyA/48BFHZaewMAnZolSGoA0MONq
OCmOiwT2VuUllEjDFX13DJI/LVc8fmOhL8FWjyO7JJgGxm/dljAEtsU/ZCIoP1v1uBNx4A73AdLx
UbjLey+pfbWJTAHHE2hyEDT7XiDwh+dWHpU8U079WlVneTboY/7QIHNAFke/2XVqrJArG31bEAWO
77SMU9E7Hu2m69zGaL/VNL67YVsXsYp1qgwTM1D8K4G7nn23AUOqpBX3v6wc1170NdChgoeOG/VV
lBbEa8OEBi3bTP+zRB1+0A5dvDQsnNec62Z2H5iOF4H3bIkVeTunt1MjP5Ue9J97bLa0I3ElEO/O
v1O3dGg6gfRWvu5PuycL4XTwd2slhVz2y4KpFtyCIKjXxuyln6iRL7RTWfjmiDfOvrR8bhcRsXVf
Nyk6y/55ppCx/GnPWdC8atiBIxpyGVJ1V1IdcXkupuYPWPv1RAFkTMwnGyzoMjTFgTMb8racI6o3
CxX9VIFJwQML/SgCgYOsnJ/gdtxL76Hn5TDPc6qFSLfOza11CELe8sh9+m5WFV+d6zapUOd6uKvf
W5hx2Vvyd5jWmz5yH5Fbehrl3BlpydktSVMR3iRMuOFdocfiDEtifnbIK+vZT0yfan7jZD6ZVxYn
p9NAINbCtHo1OVYvl5WvEEyEf/4h+GNj/+vmmkrESGiuD1NVs1s/LYQcvebfMGb+Z6evq48zbrHr
V1d+r0+rRE5caaGkCIsYRzpvvNxyH8aJ1fNoOOA2Ozx/JRlt4em10Q+896khx33B+RZ+CzOCU1Bx
LU02FaiNFO3FsDgZECDaR1CcuqmSpuGK13ISrpyJYEX7kX5Z1z3kPj5stiTaO/tO0eBMueKv49lv
zKIarqp6bGTLVOFOKbnZTWdgX8PIe50/D0tyCI09j8FX4XMj2/jCoTml4re5mRyjz+zb65LyvBf8
vP2DIgxJEelJztkmagkKfdVTOqlx1O0xDIp60eLbcXtl9rUuku/D9SSc1BkKjvu5ZMdyWXvYYEZ8
dnV/3Rkisgd+lFdDZyiqFb/N04qdRvU2RUd5ZfZ0sbV6BnL+LLq5EmGmD2yssyFmwj9S9Us3/TNX
p1bonziAdCzp/3mXOZ1qY5jBczm4/9q6V6EdEMp0irJ4VP+EZUORz8RvOS+PKP+MuhPQXUlGPeuQ
BYV1TLqPtMDNJ8VyVayXJm9a5Yq8GVzkkXLUhXmhNNv/2rRwIzBw14IxWAv99qryu5NWqf10WtM6
kjT7oHgu53pIw/rkwO4fKczOEjcOsDBHhPg1d+RK6XgHuEhOL0nizV1QRXtgI8hTT5jBd1xuwZYU
Npm3aEUA6FCKQwcn+WSRaBQd4dthfNNvlNtjeGE+L8ZrbKDe7pmVYQK/RQmEWGCx8h1xcjt6hzQN
zkmOQBcfRE58zHOwMGnQ9JBPt23b273P0jMX6fHkTW2r695u45aN/Nxf3jQpbjfT2PuJnIG3rIa5
emZ+hlp+NzG6fPcx9A5UC+uM0xq4NfBVPqO0bJelxIL5dS3zpHTugQHuyc67e+PMFcRZfsPhzOPm
YOBKgDnXPN3XlDV52sYbnNZpmaYqer7zercx/QN0tiKmOdSU1ZwQRRl3vWf6uBNz0vYFRZec00EF
ewwEmW3oPpX+i5mk4+69/g3WOPs1ByeO5CuGHwNw0S2akAlkvppUl2KXFdj8YSi0o04ublIfy9x8
YdUB76t+xCr5gkudxu8IyX4304Km8vJFgH+D5GdpB1QbB0JYJryKdR8W9ATr1DVMzdUt4zzOiL5P
w7A/0NkPYNPdWtSQ4+e1ZUXPLEvFVfwuC/8I0ctRvJL3N+w03Cx+9a7fzRr1tWOgjlVxwL8pI7Ck
gzTHhsSwTuVhaqIn5gL0flK8kn1orhh/T2Rtg2MWvJWAIQAp+kTDPSfD5eLfJ8LbCzNOJsQnspAR
sPVBkw/zknITpknZt06IcqsxFsXIUHBLu4uhNaGlLnGu4bD/xM266pEvH+vKxksoqL87Slr8OOEj
W4vCx0vFIudbFevqeCiaVccJnJthtPj3odyPI799Cl9BzIjlkvt37yJybkhhL5zyhHM8Mexdw1x/
eePjgYYdQdYNpw40OJDcqvH/OJMWnc9cPVsSZql2d6r2WnocKbe7PHg1+EGdo8xXw1qCsFrjXQLZ
4goWKZ8pHk5QScksSHafzwbWNvSAI+vFFZz40Zv9qHXCkUJVXszvY0hqldYb2tn6rmFtwMTzfD4y
+KmqVWcuKWC9v9GX2W9cabZX6lz+MDpmYjA343XC1FzLRCLFEvXUi9g9wNUfk1OwA9KxfSLMXxXh
BP9J7c9Z4eGMipFjyxo2QcZClWMUQGd3XdNYoROJKU7gYHi1PMNJEmLUFtbwiWm0t0o/vh9mR+Gf
ov9c4OFpOwah+5HCr5gMBVFBuaZ61YouBzNH4+MdP25Gvr8Kyml6lCdteJrIG+7vsNJZ6oscmhML
+813w4KHdnVIAjY2NOpHafJVhBX1ca9Z0WcU8hAxNTNK5//vdsv112uNvnn/LagslupTUftIryIp
MdaCwwXQdRwENBIwXC49NI1peuKCLZ11IzTvHn6Cr10FVHQrtqoUMz4e1vny7tLuYlpe2Rog3Z1I
JIx3cTZcD3dtroz0vay8IB5imGPnzgfqUTQpI++4MIBSi8myWy+szPSI5jQjQ+Js1d3M3DJlavhF
4o64hqCooZS6jv3xtp7RbjIrj1+oKFfKQmCaucSoJ5jq6AoPMQF6Cj/wZlpmVGV19tIw28buxtwd
O1dBlkCCVJgRW1yyvyCQ78Ml+Y6sPmD7A6dVnWZp0VT9VzB4mHUqixc8yvbVJtydY9QQ8UncYR9c
mQ8/814kln7rcKc/wUfYpETj/2N4ZMtWRfwxqPdZ9kroU8sizLjuLfDlZmc1J4UvT1Np6W5xy+/1
r7w09EHvJ/lBtbZ2yy8y/1GUXV+U+kTOy8Gzq5I13U0+9Fg+Y82HU33c/AImW2RSb2qmYjNf5/qQ
GybMUaEsCHEUleJlhzw5fRcmLrwBhw3y/hmUNG2VuWnF4bGm3ap2zYKEzBLMcQ8hyYzkyfvifwbT
NHqeS9XfqvGR32PSKhB1s2JhLczo3OC5nvJZwr+nij5CP71YESmsotLtl9OSSlppkmbwfcfr2r6k
FJgb/+7IrmOZsbCTBVBocCb0Be3LN5+uu/96mKUr9V1XxoQNs1TTiln7BbMROrrM78YLydH74b7+
gF84EV9jwod/XYAsjRjDY56S4K0Sy9Axr3+jEtz1HRbbSCm9Ntf/e9jq+vsV4GYWpo4XbfC/dvgg
a44faPwhjfXfo1G/hB1YZpeUXJ/5P00PBC/beIf86oHdf7cL326+c+2WMbR6x/+cnnqXd23Fo8rL
T9b9t8OalWbbzrcFS/+n1eor5tuWSqyMrA7/z5mrM7FL17R/nOp1XkRaRFpEWkRaRFpEWkRaRFpE
+v8b6Xy2zdYlS4zff/8vgMUZW0RaRFpEWkRaRFpEWkRaRFpEWkRaRFpEWkRaRFpEWkRaRFpEWkRa
RFpEWkRaRFpEWkRaRFpEWkT6fw5p3nT5H5Pr95DBVUsWXp5HwUfIh878/n8AUEsDBBQAAgAIAI2h
M0r5A2df3AAAALUOAAA8ABwAZWRpdGluZy9jYXJldC9jb2xvci1zcGFuLWluc2lkZS1lZGl0YWJs
ZS1iYWNrZ3JvdW5kLWRpZmYucG5nVVQJAAMqjoFYKo6BWHV4CwABBPUBAAAEFAAAAOsM8HPn5ZLi
YmBg4PX0cAliYGBWYGBgiuAACjDsl727hoGBr8bTxTGkgvHtZUOuwwECzo7q3+03e36tbnZ8cnBH
J/fhrsCSWDkmFg4BBYcGBsbBxTjwn6vGb8vvPTb//tr9u9TOsorp39Orz57M45A40XJz4qqGxpDZ
k6uVEhSE09xXMbEF5fq962xo9Jkhu5JLwmOr5U51JjajxLIlWgkKo5pGNY1qGtU0qmlU06imUU2j
mkY1jWoa1TRoNc0ebF0xMhgVuh+Y+3tZXkQ0mtuD+qOern4u65wSmgBQSwMEFAACAAgAjqEzSrY0
txqcBQAASBIAAD4AHABlZGl0aW5nL2NhcmV0L2NvbG9yLXNwYW4taW5zaWRlLWVkaXRhYmxlLWJh
Y2tncm91bmQtZGlmZnMuaHRtbFVUCQADK46BWCuOgVh1eAsAAQT1AQAABBQAAACtWEtv4zYQvvtX
cA0UkpFIzm5vsWIgdQI0QIoturkUQQ6UNLaJUKJKUXG8hf97h6QelCwn293NIY45r48z3wzJRB9u
Pq8e/v7zlvz+8Mf9chJtVcb1B9AUPxRTHJaQMsXyzTyhEtQ8EVzIoCxoHrC8ZCkEWk5jDkFMk+eN
FFWehtpPNLf2k6hUe/1J8CdkGd3ASuSKshwk+des6p9ClBhH5JeExqXglYJFK8uo3DCUfLwoXrtV
USmOTuwyQRuWkpLxF5BW52B+j4ZdEpZtnOApKwtO95ck5iJ5bswd+wRNpeClY2NBBbFQSmSX5FOL
7TBmF1eoljvmO5aqLWL/BNkbZip1U0TTFCtxSS6cTIyacRoDdyzXKAjWNGMc9xjsIH5mKij3pYIs
0LJFX7NkX3VaP47FsBtpEnEYBF5iqvOUJVQJOZZfy5QEOO9CNniQWlWWG25h8E4eC5mCDJQoMMtt
pWNOu0q18Cy6sAQOiQI3eQpeVZBCIiS1NEOegtQEapxE85qo0bxugFike90HGjRJOC3Lq2mz1akl
dKTkso0RqXSJtE8HK3XtWXo1hdfCAAtMhaYkpYoGal9AJ5oSkSecJc9X03LHVLJ9EHeavb7asnI2
Xd7WesSsRnPr/Z24NFEV5SNRreC9mNdG639FTNl6PRJPL78X7QZ1TsbCv+Sp1LO8qBSxgZItJM+x
eJ3a/ec4ARSYyFuab1BBic2Gw7UV+LMpMRagK2j8LCPbRWshO/tlrX8ZzY10LAmnUST7BNnfK3QN
piowR2D2vNJK7+EZeGpJ8QOwHCb8EKjaT82ZHwDUUuU0nDdgGGtDpWMIlkP4Wzf2cjKJUvbS9Hf/
pKi5W0hYs1fd/N9w+k2X94LqQR2GYTRH1/oITCQr1HLC1sTf4YQUu1BBqf6qcgwym9gB1XwP0yor
rssHnFj+bDGZvFBJkvbsuiKpSKoMchX+U4HcfzGzTkjfG5xyXmOrt4BmdhZ6DWk8cumMR8/Y6jXc
K0f8tiPbsOEG1LVSkmFDgu85WfFm5Ix4LRfDIt94s/POsUm+dtzCRle3HPSfv+3vUt/rD8XG+GA/
PMunn4zWOv0OrO4gHSLVlPvJOLXL70DZDV8H46GmQw0FLJgVUlYhOy5Quq7yRB+OjcpKZAUHPR0n
dk9nZyPG9vzUzB7zHJFfZy10vEFWMl9053W5FTubE733x6bYTzOrc9zydr1UVCq9gl1mpKWWHI53
YH1Xkjc7MAXB7eaws0dM49IIQrxh3b5gGu8Z3o2wQL6nvXjnw4z0jEqZoEcMYhftJq2sD6p/2oGt
WINMl8bYPOBERH+1eIwiemZ6TSr6GWw9PA0SIqEEda8pUbblxHFJfBMXL4KE5WZSdNWyDlH0FBou
hWZE6tSEEjLxgnCai5Y3iNahwqsgbITc3xjXNm7Hfwl4L0xgtWU87anaWXbuqK6ZLJVRnDkE6m3L
rvfcDIFjgU+jPqZbDVhnImwnnDlg3Dk8bL/+6ezNwvrUXHTO6gH0ja7qthhzZCbEN7oxA8px4u4d
LVaVlGjB91+wek1naS69Qxhn4Okp8AZt6mqWbgk6vrnNo7pnkYtycGlrmlpHPTmxrXK37y7g+BjR
EqQTOGqiGBs25lzWib3LFcgXyu9uFk4LjDiv8Y46NNTte8OK1pcFJHmz7FslY3eOz86Li2HvHXt3
8jQIMes9SU0slFM5iNbpd++yY7D6SbXGZk3HSufA9t2Zl1jW3dWD+W0eLloz8yhE/cfuQnPeXhbO
68P4qdPHvcEr6hu70Hz7vPbd4O5YaYDd1Va+NT8jH2fkl9oHh3yjtnUrCieP2ljZIW40H1tPT4vj
TtGaT7aD+60QS6DPnUGXdxdX9+UktgPZ4dQEV/fDlc2HviGOHCJD1PYswfdxfYvFZ5l9Gc/tP4z+
A1BLAwQUAAIACACOoTNKIOIl5bkAAAA8AQAAQQAcAGVkaXRpbmcvY2FyZXQvY29sb3Itc3Bhbi1p
bnNpZGUtZWRpdGFibGUtYmFja2dyb3VuZC1leHBlY3RlZC5odG1sVVQJAAMrjoFYK46BWHV4CwAB
BPUBAAAEFAAAAG2PzW7CQAyE732KUe79uXAJlKfoCzjZCWux2UW7JqFvXxcEVSVO1lgz39hfURuM
zTDLkQ3tXAmLYhil0ho0YyzZmA0MajIkIujSsKpFCAYZj4dazjm4L5WKduKokzKgchaPD8kt4MIM
nZxNb/BScaf4KjcNv5Wc78ipVD5Hvr3svBvNvhM/u1WDxR6bj83pskWkHqI9ZFlYp1TWHlFDYN52
++fh/9mr/Pvp9XpAf/uh2+/eneCc2/gBUEsDBBQAAgAIAI2hM0rEE+eGfTYAAJheAABAABwAZWRp
dGluZy9jYXJldC9jb2xvci1zcGFuLWluc2lkZS1lZGl0YWJsZS1iYWNrZ3JvdW5kLWV4cGVjdGVk
LnBuZ1VUCQADKo6BWCqOgVh1eAsAAQT1AQAABBQAAADtvHlc0tn/+Ns2NU2WMzWT42RqqZkrk5aG
uLSOuZJimistkpqiiSkqIDXVlFlaipIp0qZkLpQLuEJNWQoKk6iEKJQKJIgkiIai/mg+n+935j7u
3/c+7uNx4x94HN7L87wer+2c8zon+6i/5/rvfvlu2bJl672OHApctmyl6bJlK45/u1rXcjft93O6
L6vzh4+fPx0LOx2fkgpfdhp2Zjdsl+PuPXt/dYCdhJ08BYzes8t5j+Opk9HRv54E7toRRXHQ3bQ8
JdDzwLJaltH4smX7lnkd2h+Uvlw+vFaLFkZ4fBoHhEdnex8KPMDLv9VJi8m5FUlJ4CE3WjHyJ2AG
AUc6e60DHx+pbNgZF9D7AKNYZMvGfGdB9GJNN5qmmgfSRzOM8xSzjkwCip1BY7enCJAl7LveoTtX
ffu96b4Ly5av0P3Yu37VojDuqV7O/7bofuz76daFj9/+67LSMys23uLcGPz9X3fqLln5/8ole2NX
KC2xSsscrAaP5T2eA9FVoBzs56vYd58XY5O0MvqibCRv6XOeZ/zA6xkte0nLHpnNUsw60ZaKP73G
Ls1iAVlybhZ8lx8n5kCK/uDrdwuTisVJRBlW5Yyt/3zJ4/MlkQpjouV4LHBGvtztnDUhXFoQGtC1
THrb1AJG2EmRg5emwXgTGQxF9XHLHUwDbEm9sYa3+vXcXzCcXGay+MHEflEuXJT/5ZqaZaJ9v8YA
u8DFYp50zzeUjle4a4lLGmJOGx5rWd8TOTxTWgTnw0ItW+26kaoAfu9BdSFHltk83gpakDpnjTpv
VmSwUZvHkzwLwbN7P0bPMwLkoLF5zx2mws83hU2fHwDmHnT0JGWpOrZOnrvaYcg690cHHsPD2yUi
W/l2tahhmT0LLXYERH363cCWtsCnY6YsoEqLnDzMxOktMuTN+IjTUzdiXE+Pzpu1T81x6VnJF9dF
nJiaJnlgHp2BJ/hszLOJmrqewx8SO20haXzTR/FZ4/jN0PlGKOrPfXOO94ct+a+hS2ooFN3DRfeM
lM22SRDBeaih0c3CaT9hA5rGvoRvG7PIUZVKXHO4beI98R5F5lMy2qQs122pv3jxk/7SpxGVx5LK
ICn95ZaiJHVdOz84D7sowQri+O0Jfcb6izNJS2nJ1NZh+FQ5dK48B21lXHfjKcbv1Dkyajh+SgRd
FOXQl+bpHubsEcCSEmAw28zGbMbTpssNTOb+urrBRQF+0z2g/kCcbyaGu35YC36cJtQQhKF07KJO
V+IV0hr+zIRbAUSz0rLeznfePqWYaTuJloDINaJt84zxjPaI2WHCIi45iQLVx35+KXNp3DwFAcz8
usGlmFZXAycxUBat/DCapoSeYQ01Z8axEEX1vuVmAOLSu7yFd9NaiQd27osyTCgJ3kXt6CT1C+IC
j+gHA7OlTJAbVl0Fbeec5++wRh0iEbVdxCGnrv3CVukxssuwImsW9NEVdZf3JEaz8Y49isc0br0O
S5qefpuXNf2O6DG2Blxhj532xJ7vfGJ0PqpqF4hXbHKqPSG1swXREx9V70ZgvE+3huYyJRlP2UoW
kqby+6LJ2D8lEjCDdXF8Hf3TOgmA0Ddq+0XHBAhjy/r2cNbYMv2B/tOTTUzKfFP/5w6otmOu/Wju
oa3IzVs8nP+cURMU6Bi11crSm3LXyS2i2AgCsig5E1CF+VxA1I5Nf7ne8oalQF2L3NpaXMUvO83+
GDT3vgX+wT3HGnSNZAPVMLZ4IDppiMwoQAi9FTpTh/ej0tQ1VeE0EBf+JpgOAacZNew6AqIl12Fg
bzqMouvM8i4MLS3OQkvnhySCO9qhiTPO4Wh1CDbVzaEu+QG4/bbZCuCpujBvn2CoywfNOujnPzuQ
2Fkk8dNgABjxc0LU4qjH4sNJAlY4L3DGak7kcbfeBY0asps+V7PnqgvCXgc4wcVVcjiZGIblZog/
vrO3uOoSwi98+RLIoMh/pEWK2+03tKIT3XsoLdUDqMXmmb0otH5AWuiAOzPUoB7jTneRJw8w+zPG
MmSt4x5LCp2Md4ynuEtSNlvsP54VzVcOdCzUe8zXU2uxnu30iE8/6IctQGYzFpzhitw7w1YDNx9W
eEgX+jOrXSZbBLXhLJdZzfn5bhS/baBmXWsilItJi3oD5o5Ol4gdFc4l0vokUC8d3IMIwgxmPkva
OtCDbNSXnL8zQSjLs6TpdDpLeBg+pFPphyuzTgxnPm2xG0Im1xDhc0MUWl2te4m4gIuMBFB7Rjlq
gRQ5u8b908XD9UA+j0XZu6RhYw/0D2BIxjDMn3r+VyxL5hjuslHaLo9Ex0UFP+ulUW5YJYdXe+6K
ja0HISU7KbUq3I6VwUqxT0Tx+fYhn5D0+eEcnfEb51x1mzjJjIOqn4TYMd4WdECIc32Hu1h4Mttk
LCjb6ExP8xCyXRZpoEh/A5Lyk3R3b9bHfDwoGz9hcTDSeIT92oYj+fHGvGCWluPpJg1InYtxk4Xm
EDXFxErSkWh3oPpEFGJxJoU4P5T5M3XiCnRousI5MkLn4yJc5XHgKo77x/36T0h3RA31mhhHtmJB
oKghFXVYS76rtRnvxNO1ovh5/m7slAH2WfqnSyZtO1EYA3zrkMh/rwnGoMRWMquLE/GIIs77xOSc
cNssKSnr7NSXmNIo58VKtDIjAfaVmXEAeC1KVSJs6/SGzFywRxyfJ2HnSLLK81D1MeixNe586e4k
rhPbuX3cTz1dVJqfv7chP8NDeTsvok1ZSI4Yer/a+bj2ub52H8ZG4oF3O5qTh9WO5rxxFe9q9Ghg
dy+9dptCMyBlgQVdinmaIpzWbrUB2KZ9ZOkWl1xYFQELmFk1wNlvPP/uzQC7RnawRFrn46rkmWhu
m4RGSFy4lQu7obeSW3oLaxvSmeGCuqb5YUVUgSZJU5TEc+nsbm4KBeefJ5lQ3IneJGIFVLLwCpQX
ju22WhtqYKy8ddU26+PVrMe1Wwxa33VshpH94YqWO7CHP74ptS5YNObjqleG0utSti2oz4a0hrmV
V3akcDJDPVznk8Kx1qhcqdVOocpNCNGHL0nJi1JlQahwE/VdeUKYoKKJatixQ5a4sbj6NF0dTu8X
uHQI/TaT7nyCANqWFhTkRDB6ZFO8EWIyhf/haUu7j5b5Q35mZhRLA/ZCpQxK2YsT7AFJ6/SzBCgz
4HXHYXvE7V/wiOkH7gDUJYNxthVd54Wb0dhG4xIjVbMff7KNGraxvg55burCGtd7My8bMOFeJowN
f6ABY7g/NNN8cSM88g4gaXhmzzP66FbFcVm6TifJtVtCgykr6UobeiD3TUISTdZKi08WqMqQUzp1
pLKUQHaGvzwPuPXTH85tJ9tppkljLpcSPJVbb+U7iX4UJcRAcsNipIdE9Bh3VXHqQk/aRx47Kw2V
MSo0v6ET7ufnawYUffT5Vnq4f2tlLXNtsPEj9mtzISjO89SdOjnoJGxzTurCbowL/1HdLGpK57pG
1ThiSumokbqx6KhRYxb8rOSsCSvNnl83Uc2Y3U/jI56coUAzyIWjiahBCV/oh4FBUBvcio4Pb54c
ZIctSLDQRSWeKz/sX8VGvqLUwfkt8tZ0d3aqTKRdcBX8SLoRWUeDDXdXRloBf7KWRafdICVcf0H7
rUo4XIy0t+k8vmOKPXqjOJjZouhz6qlI/qvCJSl8jbNhI6yRXoWxIJO3mFHGQ5YS+ZvJ/qhbEtjo
05BQt2+qME0RrmH6s0X7B4JonRV12x6zmfhThEfnr1VGgBwKU6Jkqt/dCpfvn/8ctNoPwnOkod2x
R1cfgBh+awe1RnlUGAX6do2fhE79BN1V+IjkDlgprUx4LBt1WFaq5AXboz+sA3/T5Ob2IYn3GAw7
51roFgDhvQPDvvcQTdc53LvDME1i3G82GrGTFIJ1CZ3HcY9wF3lQ8Ni4PAmLwix+fuORZb3lTxE6
xcWrKmb8sWWpe6BD97gu/VnEvUSWH/QXoYddFEbXhW92CGArI/GhtH14ZqfVofJLtuBsmy0dc22l
m6BguFVXMCZq9Up1Q4PDkRJKfxzvMe/SMbbysDtBFiG566CwBSSKfGI12cortBtYjQORUfa7aNt0
XT53Dv35pUmUP33ufRi3ZQA3HsjIqEmdc7hWpXr349W6EX/n5i6/s27efzoWApYqzfdxKO4NYfjI
0dvHi26m1XC/JKXcpqKx++7gJdstfaJ5i4AIeBSmTG0uO1xUHEg7QXJ4V53H0YW+dnOgOmPkWO3p
O4z3T9wBEhzYgP65Q0bvpifcqPCJGNkI8WqSzWuS9pwRtQ3Alvw8/IleJl1K5m9Z1qifZXG+oR69
nsxlCCC5X43QvCYZG/UTAxVc2kxjqrTBjhSEG6txZ2cSFiE0dFF9ZKQgQAYVI7t8ohDXDw8MI2ox
cGy9H7QzDlKTUBerYC+Jcbcc3hd7I6BQe4l+SKuyPIpITlQoR6gYPrUffoJwT4vPxMWPSzmuglTU
8Y2vB4n1GJ8uq6eh7BFCPh0mAWPaao2rcj3hrbIbZ5YKL49fbsIRDCCGOFbFZ/pVOAjHSWO+R1pf
6m4R4F+V+zfAo/gDV9Dp/Jk9CrxsPYlSmpDUS2Wyaq1IJTizD6mocNZNouDza+cBWtTqtxB/pk12
oHuUj1cnib0wxCZsVODQ1G6wox/KQYiLHCj2FdKqlMV9ACLb6rDM+xRoaUPrx8MAl3JihdExbsK8
gyLtu2D/PH8sO227xY4v0Srel3GhLpHquKAF3fffO58E8eihAIjMme2p/hN17WxtXeKjhHA6pTEl
0iR39Ir9+fuwHuWCa5KsKwFV5LjQd+nfdtzLDubfyiqBH/L3sgPtPFstfhYqt/GEhztjDGKaPWvw
qpatP5Gccn31wrzoZ/Hf/I/9wkOpbSI7POlEIzd4qTaLZLxnw2CQxE/2PuA31Vz1TGEbNe7G3qUI
46S/bfexxNN4uRXhPDnfrY636Xb7HG+lYPIsxGmzWu1UP1HOLmtJux0741T4WyMVPEWVh3Zv4Y3e
abfpOlL/xoOHtl/0PRPqFKye8nRX3s5MB3mCxDB3okYGex8xK4g27qplZ83UAxCZodLz8nho6ySQ
/UNuxM6SDFLpuG9M2JDIHlmJyla5omYHIj+FBM/NaSYIiRYoRv1V11Bl3uLHvAGRRStb0IxJ6BVM
HLYhNBhnMwRvcfk7KYcJIxkb3hbuz8C0V5/I2TL88Tf1ETbFhfBrPa/gGBvw+XfAY1QjEz+zXcUS
3ItWWI1vAroUbawqvV7IIaRZAQM38SPeE/LTaCM/kR8bnEvMOTjjIjkCHglbfUF9xCe3Gy47WKXm
7TEGHuJrHfPePaI/wsVXSgWT0+XVBiWTm4seInk5d8xyrHgynr9H99uqifKetkBE7OdwXXyTuRxl
NZI9dyK+1QTiW4KGW4tfdsShZi50++SE8o73mwUBvXGpVlhOUh3VigkOR8w+mBCx5m6ni2PDKuLL
e6rciEvDA0TvA0fzjohjA7zFBW7hNWMN7HxXwqmSX6ECShNVMzTuj3yyORSpy70tuWa/j/tUwUo6
pA0ZZQ/LLJor+fdd2d/IibMZRKrrirqWdubu5p17UdfrPZ0tPG3DbJHy05qIXNNo/ehTZYgvA5Ha
GN7p4vyZxpxZbr8Zp3uryhXGocxjhQv0pZS+HZ4O4byG4XiFJIkHhFALeMYkE9E1OKXmP3GUjdLF
UUXM/K12ktW4D/C7Irh/7mZR7PHcDTv+cKZN3ZT9MGHUdcRN4tzbefuFw97KKRY6mFoFW0bExwPP
ErpmFkHMjl7gHN87916CdegsAmfuuT+864ec6eI2ZFAkP2ZQmH4mD5HIurWxwJUdcM9PuFZeL1dU
ZN2FQ20dFWg8SSj66EvZMi7hD5Dh8m6Es/pDMEnbk25aTmCkOfDLXB7ysLI578HChy9kFMJVY5/q
xHV50pj6J8RPTydKn/CVaA/cqsTbtNbxnZ0UuIyiGNGscNaZVhylw4oD676VdbcE/egReQwF2MGf
6/vbvlJPorTUFrfh3RsGg/9rVmdr/+9mRZJ6PdCcYhiIWvIBMr0NDqY9VlbAhThuisThW6Zp3cT6
J/WsuEArzQGmQdIGM1GtvmG0+C9eW3UaDq4o38Rm7+ppMDxuGXCkq81hb/fJ1wnRBUdFzLNRDEFj
Zk5HP8Sj94+E4+FblM5Q2wy4SUlpC86JtAGQNZUD3rs1MSqv/408ZzfzLCycMLi7CkvN2LFo1WP+
jDW+snlT2IaMiuqZPD8V88IeJO8ufii7phCefCS84OiZh4MMintfRVwqz9JYXs9fPHMav368JT/t
zK1e79VH4ftwkLT8toaUQEc/Ry9tQdMjVo0gw0MeFRmM8iBRX1WoX/gSRaQ8sk1xCEOqHfAr4VLU
JL19qo7e1RuK3be8D6a6QuE+USX4NrrdZHGaoCjNJQT0zVl3Msau7uG99UpHYl95DUSlYZnEXCha
5ULab36yi1WA9iJNcN7kB0lwD9C7LDSdLPyQfCfbscnOeXDveOv6RH6apNbP60b9qDkJXtg+Szqe
J5GzRgeQyr3JnTGO6XwnMlx2QFxQFzd/d7ZucozlVBN9Trte+Gm9PO5myJYbko4JPa/fCVvDaqJ/
Dc19ypXHo+BEes1waEzd6BMjr9Da+mKwzwnxAq3HA7TB4UQcKFKZOefnTQPP1MT705kbbmV42eY3
UQj6GUmLhF+JlHaqHNVqsazYSSgZJwLtnkzsEjbV8AZY/SLFnDaa6lbF7GpxU+j8OCB4NKPudHZ3
UmqZyoU1z9OqNaNOflFM5Mm0X2v4m8ULtvEcivqxYgSdxc8sng3nbSY5+aUpz9zAcy7Vw+NB4Lzr
++fR8/xBumw2ZH7IHkvtOOO+wRsqnCHwaQfFsvf2v6lcdIoZ+eYan9Kh0pgopyrvXjA69jb6Q9z0
KEPu5HiBgc/kn26c42VcqP/Q80erPLIMXPIcdrCk/TIw/7ZbD28Th4F2lzfCsZItfU7D2iN+wb2l
SDwM97LTEv0BNjfxoQd/Yua7Qo7foK0U7ymur11fHBtSMrHfhsTqu2wrGZdo+RpjimgFMv17Ljw1
zDkH45piD2O9yTu4+q2q/TFcUCLGhweLtSI/0eO91VmJ4SZnOSxZXbzrYEzevLO8++bGsN5dRHAu
QuRSrPfZ4VdvDYOsZZwtnk2zq4ksBovxMtcBtSpSzBU3Jg7CF6yoMhZ9mqpxFedxe1LUC5iRMrch
ryN1+NjGifjbDzNVQm2sKrwGimpf6PmhqpRa1v7W65Djr3Ewonuwf9wTbp/FxS6D5LSWaE9/33p4
qSUfvqiie/anuMuloxO7O01NuT/gOJekar8qTgKq7JUjM8mLVZEBDzcY1DrDoaosCgAoLV1+jvau
PoVkcV+uUtGBB27n7z+Qrwmuc7RB/QCmNIT3Wa7NfhFgIWf/UIJ2ZpHruyW5EG6CWS8lw4sfqBS0
AVikUEwb2KNnNiP3ri5VUC40VhKqmAK1pvKZvBiACkeJOT0mZP7rSceiO2zZ93mcNR5T2eCE0v4K
uCxA2FH8gaJG0J7Dk89yRHfLExxTxiwwFtyj5UaWq+FlVxdbZTPTe1MFHbHhqLStZmUTaZjwrU7t
yE+Qp052sWo1OkOy/WHEviJQmLYfunBs+BLVZbhFotmaP7G/BF8qLbwZn3/HfBsw0sKAiuefKvvE
N1f9lLWoGXVlXWiKfNVUufLMr7deXuWZ3VqPtPFqE8wNUMs+vbyhCezqeDL/7lE7sN3c4KE4afV2
qxp3ec4TOyRfCE8dnG7WqUWfdIZKx7T/jBRqRA/4eivEnvnK8mJOaFr2S6mSor7vBI/nu0/FEt0m
hX02qAyxxbOeAOrEfjAhv7Mxf8x5FwvVWjRQ+wqEupQ1Ypk1cjlP3PDcqWdt0oQmOhzL+CAwWl/y
JoXNU2ydnSYa3WT2mAYzaZsrsTOraosoghqaoMzSq/Mt3Xy7fLqqjZpkwrznxmTcdENc98+9NvZt
YFpbtU8UX6k/5exZBBGTuuWOQiMrf6wfhtoTz2/5q4j6xbmkNJjS629H7xJXyY6VeM6XmG01vEyF
jA3KNGWMOJua6Kfo0nz3gl5/Qgn7dCS9ywkAaxQ0W3XUphIAZs6/dAn6NC0ECizmN38ffvkEH1yv
svMSUtQyH49U7vNU+VC5v6wC2Eh14w86zkaGUFPJWyWghGH0TIYdyF7syRUTh4OJcGEH3Jg/wHTy
W0zMgZTYk/zPhBeUDERLAnzGNmy9RGkb1Q7vEb+pVNn/xpe2xd1omiuG80f64/TVaPIq85UEveN1
3PONDZyEQWEb8cbZRde8emdzC+7qhtbvovUTmk3nL8cfkh4izgGuutfP7kT6dwmN8m0MrnFXmV26
M/GBEbeetxOfg8Vf/Snl7j5WR/zV5/l3cDmlstVNkfhfof6g3Vzaid5K5aB2931EMmQ4vIAtmr6E
Q9yH1YTnX/UtuZhcC+xs0JSkHEnBWZIuwTr8u/ZtK4avNtdsPKLEuV3nmU6cLoCEBiLSd10dHDTw
YiWx4g19KzaQUcMyKT4+HiktcsjTZYH92SGL4eruNrEqPq/E65RBVZP4iJ93RXYIqI1w8E+eTf3d
vRYZXcaj2p7nAOhIc4UZ9Enrq20Yyw01Cbq8L7Ur7vvWmf4BejifX3mmBtzDH5I6LJWAYBbF/nwE
l1CqIsgeBZKG1NZblsy5NWOx0JlTFIhNXZumLpD4meKQF2oc82tZVoF6B4qC+BGg6rzwuL+9udGp
8V11LR5uKFdQFnFZRM4W/nhBZcrAzenbaTbiPjcMyQ6bmuHZ4aaOXdBJfY3dAkmO8SfGytBzb51y
0FlRiFXbk89eqqh+ORXPx/tuIQ+YDMbU2zEqw8clqkOxxFR31fXImcmYyM7hcsShXSTzMwtRW4Oq
B073P+toXOjRjrpjy7hhXtvxoH2wuw1mazvOeujCC121dwxHHMqwhvHbKDXrNBMUebyA/bZ4eqp6
C/DYs/URyihvd4+k0xsfRJAKUu+rF6pBvOW3FPm4V7bIQmZ8XEqFXxz3cCO70Z0vJqaK/zSgnXOz
sAI9qntpVz6sgQ83nvM6jiA9mTiCGveBhlHXNO8wX0jDt1Bads8PlVujTkhI5TAN0JqgbvfjSiNs
mpTCgIXdO2rYulx8Y1FEeAN84TqzIo3SQfKH0zLs+NcohFi2itq/oIujxdw23WAGLs+G8Wsb4FNd
uRa9MxrK0460SI8SLmqxqcOZDAsv/NwA6eNrB3fzKTW8F8/GW/eqWK6B5NTRsjYPAH9kN9EelFC3
UAb1RAXphZWk7Tm7UKW+b+sxyqx25DO0oD18ITrLPW9m7xToCauHjtnBHO5/3J/cSE74xYwyrnNe
/BGnnhdLRT+dJgXWiSr1BqWEHYw4Pcjkq8DVf6nry1+o/UHlCPXkd7DnToXrGqQNoqGxytLVewpX
3RckPzRaTQ7h492I6tzdzacDeStBw/OC2TLGb5nwSIZpvDXpR18YIKj94W+hzSSHC5XIxwyHlJh7
dQ79bLF9iCjoUWXEkXCFNMD/ZhirPqEtnsAwjWYMV4gtkHrWqI2yedGp/kHKUI+pCmBwoL/Vq/Cn
E9aS92BRzknrle8rE5bJhpsZHxYyucVDh++hd/nC2GfaOYGhXvFbmPdaBYdt2Mxt45nIIttWdGVQ
ga2Zyu5ScVg5JoERkJeJJDjsJDDePspEPh6odQWsLKjUO0pqg64m7/kjGzb5K04k9j+kAvkmPIGU
SLSKoXp0Zf/n6DLYXxGKwIDctD4Yrr1B7X+smXlcCpm55tcMCppMKGp1KlzuexMTCpQRXBBIfGq5
ebr66mjdjTrkeW/6Ed7mq0PbqvXcz7oFCjfPwjE7F85F4SNHA5zc1VctIfQhL5IeqwJxudoehKnS
qyUZtH88rM4Alj+Yye5PKwJUV+r9WFFnSZlRdJNqYoopemgpgdDL5kAZq5vtLRWFLzlq+2PNZscH
CaArFuJQJMLyMS6j+9Tt1PqJk5Wp1isbrJAHfbrmgljCWjLe/P5rR6Y3n3Ei4bpQmhnqodNYymJQ
/kiYMGET48rzflsZojm9SVBe3WGHtA+jtsGTAVuUVrIkL6eKupgYa9KmPkrhi/Cak5O/Fy3iZ8Y2
pBYv7cgp3NFPgp0I47a+K9ofdxPFKwinrkyGDgt6JLdBrWP+KFVdvEkJdge8M62psNqTl9YYSEvn
Dpw2pg412iG9cg5qHlQllyW1MnNvO7WKhA4fa/nPEtZw9EdL4OGtK98h/lTeQ2eAYQoRrlUc3c4i
9CMMWoIpXwLX0dwLXFjRC1mDLnzRStMasZWnaS83yvJX9cFTea2Zf25tY5ietCahfUWrzSHAA5EK
bVHrNkr+YoE8bqQsrVCWKI38+fRTpgtkY/+ggsG635LVYYaEoKYfmmD+zBQU4TOKZMFntyiHA/2b
45P6Ww0Tn8R7XatIQHJmqqmhid6ndIBa5cNijfE1T8NbiVr/4/ZPXd8NgJk3DaVzEWmxvhmlip4E
STiP8mX+s8W9FGQRVYN+Q4I315+k5MEkkZiotF5bbNt0E78sWDiDhEB5fWUH8ywY/n+IkMcpV5pH
uQF8cfDsDHXiGyJjvCW1pFCeMXkDN0eqlv13IkVRF0VxaaTzR/oqumYopWGCMvulxOsv7GUjiB2i
F1Ik8gaEfCOVGYCv1BshzQzv0g3w2HQI0nAN/ImKknrO4GGfhXBtlbCE//qaxtdGl2fD7x5c6hF8
BPt04X28u36V1cTmPTnk5GDx0O1knblLKE9icelNQkPvfSWyEdcuqwIQplXV1TXR7+vBXdOGj1kF
ZEyCshl9MeEsF/2pJX54oD8OUuJkh+RMp1T1tTfu4UgyTrXUmFfwTtTaqDIUgwOpmJ2qMm55fzKX
1lKbOE8ruhlZRK0cK7rLO2JMqs4JXb2Td/tpUig1qpZ1Ohx7HV7FrlivRWfJipBBQxzoRnYk030z
DNyPmG/0WQjfGkyFvZGfDp2VwFJpqlldGg1kCT2kyUUgZ7ezGOayU5xMVF9bbpiBU/+eroCNj83P
GP4cbdlNmDxPsgLl51ob6uEeujL5J8n+xFfWosdp5KxaNzAR3M2Z2Tw/I2ihV7IrYFuPcfs15Xk4
mXfu0EBtlj07PJILX1dwfmyAO25guCzR+u+R/NBuOpxsguDXxwH5g/XjjiVRHmfDKeMprbQyNc2o
YzBV2ZJC9msbXKJgDKjsiTlkeOmgKwXO32CoS3IwixTFU4x7fRIBuSuMqq3O47EmAt88pHTIxFgH
MibYPWLG/D8FECe+vTgUtZs0XvSw17LBEmnMbLQAksOA1fuy/trt0V3Eqf1xxapvjSw+xbWvGwgo
VLn/XYvwLsTU4J5EOxPxkQhaX/Rwp3qwY+iH35TPyOJEjuVUZ6MdkNteOknhX/U9fOF5TPUFM1Pi
s/vcc7pbb9gc9XeuRB62JWX1m4zh0kszn7EImkH9k+JgbnPXoaz6I9v2XXi+Y/nazh2G5E3/VGOc
O3exPfEl6lN5ybb/Kc/Q/UMMWEEqWWXu8YoyGTX+JnvAXsVYkDMjDXId5yHoHbN99kjq3g6ZG+1p
Tk/c27IhMGj2HQBZKb09vrsS0jzqu1CTDTl9UpRooHYO9b+ZQSxS3QhorklYgBf3i8Q/lmpZ++d7
rvTPIjFlQvdzJ+W1YRVmf7/Wc11p4sZb2lvQrOey73V5AwO+TEaWiNEf9E74V4ydaov4NnQSj/2T
/IzY7QqWsxPrgTWDBVDXHv2fxJ7rmO1MvIf0/FlqO0mDF+Y/NmALVGWzrumNDifYh1uuhhE3RL1w
O3PH5BhTXyHyXC6x8Dg/+4dz2/0dJiLkj5tFRdUqKjKr1OQms3miGH/gP/Ix+u39+ZT1R3JNxwyM
mfqehPPMvLshWTDQpSKj9Z3kiMlwRt6ULfaZI/0MAUrvflvCeXn4lizBnzlj/lqjnuszo+8sgV5j
A4awO4rMyZoOkfJl6pqkLM3++sPNSUtKg1J92gXOuT9MNJ2em0Wey/A+th4JLTs9vg9JennXgINn
5HnYMfT17Uk8yX7NyTeHN6q0Lu3/JSttex7luY+yEN1JmWXkHSWc92OSnxvbaHZ6FKVchyWVhFR4
vDRkHfWAZBnO/Uh0k14xoH26kqOsYjK7BtuKAOcXT/SLb8l55SY46GDkWMNdcxMrUpryWY0wq+VA
/1zCHCt57r292p5+hL5bAJvDkHjiFnn7w6L6yXrVmBkRQP+evleoYVFLj81NJ+fnbb766n3f9Zd1
+cZ/K9BFtulFwm/vyJn9VZvZ2EWVARgjhRiE0JSFNuCsv8YHqDT1yK68jO6R+/qY2IU/AfTfWzpl
NWMUNI8596V4JCBrQ1ZAViiFVujWopk4aKy8dTjrV2sPvdRnOZEJAVm8Zsz0ZbqIyzIAZ/YWbA5p
6S2UykT4rTJ9Y5EmXKAs6vhS6tDRzMZMZsroTvu6hJauH9bm/F038r9LwOr6KtXZdZliR2Jz+ruX
xpT0idMmrekz9cThqFqs4/ddebbD8kRk+H/WgEVWYOCHhRlzEiW6OPR1pCKT2wESTOXODGzn+g1J
g6lhpapSScTQDIUa2fDCb0c6ny8IXj/6Pd4ow6tLsPSz26eL+tWkCxGTCHwVSTTWUHBcB0mNiFZM
bCJ+fuWyIMWGimEAFO/vBUgXzEyFJGMEB6vAQddG0ehnU4ZmqgfMSPS2CRgg3PX9cv3jQyObqY9n
x6CEHWyodsQghP7KGbVksvjpKsASxUopq2/S9by+08rLue3DegNgHS4/PKEiKUJkHVJJHeo+sXuX
L2/s7mzvpEzXkVTD8ZJZ2mx7/A0m4LN91II0hMtPK4L6RkXMtnBrPJ/2EhF2++YC57wGb78B2tmJ
9pAzekZWGDTtk+Mzyh7+Ns6BkzX2GJr2SZrbAiAqLr4W+i64bmJaNv3mS4lP4yJ8Dp4K51QvYpbm
hfSm0a2Kpi8L5BF8wp1yHPTEcGydS95oog2iB1yE6omPSrmdVcZRiC2yz42Upm6TgTUW4sybwbnn
v6xAh9bG8wbaFuRJ0LbZdkWNUyi21zm4AAfHmG0I5dZHWbzWrM8u+p4tG9v1X8/me9Hh6WCYUqWA
7XtaWoG+D4bpq4NWn4UAt561vsSvHFqJzpxtFboVmqDvMkyr/cPt35d9qW+5dHFOO5WH1QaxgOQ8
ZupmTgcga2qObG4LMfzsj296ZVHhEEtWkBdD7A+VMfadcFFksMOF1pdmK/UmVesmIYZ9YI3XfP5E
n6QY6m3o6g97GmgiIX30yQ8yIbNsAEUv/Ahgwj1tyGpGatSXSXaZD8y0LcFzsEBUtDymRHuZHurP
47ega0pLokgAr96gjb9X6h2SqRyWPeG0SdwUxYwTre7+wwzjJVhkby0Tuqjs/3wzCT0aZG9Uxljo
JzncuevtsLc8SxTrQ4B6hRUxSz12ZnPO56aUnr6+39vLXKZC7H7gzhY63KvK4/Im/jONLcJfwycz
maLzDZV6gTGQ0s9PtZlTQTNOxE8jHOLi9LjYma5RNjro5NMujjexXckd3+Hc7AWHNKdFW2ePTTNC
aIhB8V3DwkenrS8NubCne+rwaOvs4elsMPpU5mQKMdxPce4qyBeWNDd9b41brDfRpms2aHWb2jHZ
hhvga5FdyVZBvSbOug6uyyBrvw/DtPgQ2dNkjDxeNh0aJQ5ZzYWnkT6jauIjq2pRGQ8jHANlEflF
BOkvJATuBJCNuH4CU5ZZgVuV5CILZYdxb+Z/rN4TmvUZop/bWnNNpCZjFyrNTzROWmju6oxD5VsD
JrEpauecli/rbTBC9zS8HeBsezyYZH4T4nWmiM30v7VpsKUmKbo1OM3BVzRHntNMZ1crYJ5diCzj
/wZIS8tbrW8S7AxX4Th7KvT0IA5H4y7xzI0Mq6n5+1Np1UyByOXWTlSMzBSowLsV7OmK5Qi+1Gds
YCnDeCvdItVPQuBJxJEk3sqoNRbym3ruwZsuIp7Fbr1w5q5B2/tvUt9H5T7pyzP/IRbmTtbLcvgL
1eUT1Ssoc4hltTk+B88z96xN/av0YsoiQWQbE7phEG8y13dJDydeG+6zj/FDjuhRZYxrIAOg8hft
7EUshrQO9lc4EjXde7qY88hmZmTFl0WtjOM+q5/HuI4a8jkuR70jhTonYAct8ehc1l7KqPe9F4Zh
3H7owisRasWie86AbrgSLZwZc1TlLyobSG5wTeDqKeHUVuEzNG3uxJ7lXtvDc3/xE137E9FbN4uy
Rj0izetcsLoR4fbyvM6ltu+IhT+A145v2mXD/aavSxc4kAOSGnL093dnmVfewNM4JYLpCumdxV7v
ueMVTAmEsccdAsx8KyhLTKsvsSvoamuqYeNluWdH+lfTiheNZ5vevF5lnj2j0cUWX4otOb3DpuLd
RCC3f5V5VzDwAaU0xNhcE+fFcCnYtMMerFOCnZ5hFfHQ+UFmqmnX4Qjo0hwXnI0dwH+pGGJ2WCTb
ekqkKvMbxWnhK/IvO4AOhvEGnHtJG0nB+d8WyZ5LZx61iwH/9SmIFZ5lvxfmPFWcJ4H6OVcR0oPA
7561/badZNHNvmm/9tWIb4wLpD3WSSEKu5aHW3fo72U0yHbEdS+bDI+lMKuVnTVIUBiBhklcnE2I
AfERxs0vwfdDI8QO+NCx6SelGzgMdFQl1DDCrlbXKwrVAMZOwpSOu39+oW/v/eeznahI/BLjxOMo
XIv2eZk+4pdgUKol6fqYPxi+CHtK67QKrkQx2mozjEkZcWzm+6RFpTKZdYVd+RvwmIUFUtU8XQ5o
R5epRDqHsQVAgkYKlDft9MXyUIKtgUDSUFyaj4Nc8Q6kJsxLG2RlkpGFoZu2pLuNiNoUQlXUFuVF
ffQ9Gu7zq20YciG8FhgJ4Ia8ApZPwMlIa+YwI9CBjtOs/xbhEjT5By7eMiwOU9H/sJ02rngib2Pj
zc8E5K6wZ7x9InqTIj/gXl/7SJ8ios4mfakqPZVS2iI+39qcLC6GGKVcD1+scYxjwrF5rTVHqu3P
319nx72I6HssCHMmvRbtfoWIrhWMP7GzRH6yBnkMctqXEmVbsg+C+h0dc7Hx84J1yv/msSdqni/d
rBigLdABYq1Mz9wkZHJVwYtg2qOCa9VFekOOsQw6zty0udZUopD8ku/0PnxhqHLK9dJ9vSeMsuGO
BQV2KdOgtO90I1qXGFQBLNZ2LTvXGP38S2hoi3rlAqYEk0o8hLtjS8Ec45hzW6mRa4IqX6IXVW/g
ZVVYBVoCAjAE04cn0bjL1tyfcZBmac3F+gnNc4y6PoPGdBjA2JMt3lqTjvSr5plvcZk9rIo4bnuZ
bH+gw/d+v/O9NzLzsqYfysetFhNTekwXbueho9sHSBMZZC7Jde5tnvu24ijCSaAyYH7/3EF3Yv6r
XWu9BCBeftYdrJerRKB6o4KNpb1tDj4ZCfSPVBX/zPa5AVFGAaVO2PjR0dEEm41VDahhl78SvW/J
WT/VnrtykzksuamLpNwH1fM9eX7J72KaKyz+M0ZYDHnfaWaqcbDnbrc1nrrmacto5qhpc/CkOetT
9nqsZXaoM457Gd9Im02WSKNMkFdg/i3E9YD29MUvJaCDwpFYVHuKbLg/P9NyipFHEQ2UqQL9U0KN
y+/QaYrRiPSyhyt1DQUuHSfOLS7S8gqWPbLzOpCYySkZMNvutbGgVDQigtQ3rBtL+fA52Xvy98IX
Sc2vP17OI4GjpIF4lw+NmoKHEUnYeT435zMHjLgMcHZ4F2yf0eUzkI6XEYoKLJr9f8fNhsWthaBo
MuH0y4jjhOWz9hbOm4+scCK6Zx8oTauRoYHNx87n6jWYJWUAXntREJzfIxnJ1J9C33xZZBjI0fIR
I3e2+D4iWAEDnQGqLa7dUKFoikK7vXfsY+9ZzfmEl8Gy98C/le7nw+87V5kjOV2RFwMRNkydR2/f
FLSy07S6cEhtrYhhx00+x+W38sbsHQx9o5PSV3uJ2qSZa0qGEhsLtYsHBfwgZZY7kV3RALUiss1I
6Y0ZYyENqnixFfCbnXS725ArgWJVy6crgLamuX4yrVM/txHqm4g0YYx7GN4pXPfCQDT0aY45xFOV
PgSGLrbs9/KXdJVNNACx/LgYeVIRMa1BIvolbw71TfPL46vvNYf3fskeRPKYAm33msbQxDKJGjd0
fyfM3Q9zcgbaXPFIEGmzsgqxCzkcT+Sk1lGdPUacACklbbQklFjFGNXLT3lT2wCc6hwmUTpcVmcn
V3h5PcCBDliU2Ymzkyc/FjZVvDIV1CSNNcJrNehJp2CWmrzQGNFHzLP1cYTvYmxplh1b/dIrNrzr
B8q02uiwl5eH5gr085Ww2S+Fm3uybyTbVC610VlbEYeskxlW6VbF9l7ouaNZb041jp3vLEXcoWfH
b/w4lGyzkIpveV2lvt8NQs4wWJc0AYzqNaIV2kE2t7h6YLyJf938T6D1D5fM3YAbC0CnypN2bOsk
dNZltel8YQ3SgxnJClzCDYDFz66HzIXbFKctosOFnW//nFgWuxYsLUhdfKnLqx2APhvv0pzBA4N1
2v+aRdr3O6EPwn14L10K92e2r/MHfncUsBlwaXiueOi+FRJt7ekpvdLRnO6IDPS2unRhLgqIbYl6
SljXyjxRF5VeBuKO/TkS8fPd1hjRBvfmkmDgT7Fnkc+eOGr6sM3xfsAngQCnnmEi48KDqKbIu86F
bnMQw0d+gMy3OdJ50e6bVgabJKfeR/xFWBea8sNZ+1r/UEKI4eX+1tjyraJSbaW5GQQIqxKsJZUW
QQBKVgcDBoATsJN/4Vq3w62b9zrJd6Iksq2ZiBhyn6OB5vUOg1ZJRvOG09Yra0SEGm8HCJR9eLD5
vbOFU/O3ew1eSLbzG2yQ6xiSlA+Zhr/6iyh0dYbheXsPam1iHHLyWr934o9Ha3viwDJhqtM8RXLZ
sMiyEjkZFbw6f88O0bXOoNWseIU1bqZiIQ5q+N7P4mRlvc2lN5VDxpSovsgZHLjZJ7DV6oChOWD+
N8M79opSXJM496QswpGO8Dsa6V9UiB3Paf7ZBXmRsZWrDJv03kNvopu7QYAtR/m3W08Xmp8JfRO0
G94zXIJITrcX0Lntk3tE/sfGOc2owQDMYioZFUmoiNDfVShDSAn0kds5TG7h0BFT5AOfSGbUgugK
TxfzIzdJpmfRk6HszAHlyMJ0z1C5rYEWb/ZH/7Zcvq9Y7TJJ2a7a2XW4XRYsxeWwRvneA1eVL+81
0nh/jFWstGp+ccD+F3YMAt+AcAtpZGWWgkLLPTruD/1B9S9ofVSeINtiASR4bw/hfkgQOizl3xuA
Hweur85yl0UMTFVjv/tPrHpKf36bfrmsndE8aYryTLH2nWmh5LvhNB2ftDOHZxxqW+3NydSclnpJ
Bjeli++QO++MugVRRNBvQ8FQZMOpVAGPU8yhIHZvk8xIVKr8dg1w+62cq9TCibUswYSW3xjNxlYz
3qdy8ybcImdOscmzO1c+I0jTS2e6bfAi8QOF1geY6NF5ZQY4UhSfmib3lEVskuTjBji1iMvbUG9U
YTN1km+fB2AsUC85Rf1mlnHhg3dpeHdsadoZDPMwNxSPeDX2eN09pjU0b6g8j2zDl7Ykzk1nGy3v
PPyh+TiWiKjjX08X7a41UsdiYDTtKw+DccUv85oYrlsU13nwvPyaFwVZlXwtQ1qXiOK6K/6baz0N
fd+Z8xfftC0yvTUxWJNfZrlDFRemvM3dsOfcHTaWM+p0oSvyXpodfN8uk0dsj5KLb+1hWZYPIyvY
uw0n5KD3/FQBvKU/TX7XdKsuYS3WtLYMjc5cMsdqqOBQyV1ZFIJUPqSOy5KQzM08LUxC02pD3wWJ
4W7+oHpaY1Z6kPK2yyNaSX5eG72mNgPb+AjckMMOEYKkmq5Em5H+Ws1xajXmND3RWMUdUN+cWUSj
KL9cvUP9uXF84X88hMFeh+W83VUT8u4LNZExz+JcyJs++pnSKQRoKDvVHHj9tlm4YZCYyy18ue5d
sJGgz2jtl8HF83FdvyFPnfbUlgKgWA8zRQwZZm967NvSqFUM9W7171MT39Bf76l91tY4OV6+SCJl
DgaXlj0or/0753nf9/dLRTgchH7Xkn65lFrzz0Yn00/jP+2dspaBkyJtCf+7GWvZxRffmJteWnNc
9c+eqGlz0+XjVr9ID/zvnq0T55av7Xy/fMD1nzlCt7VH9mVe/6Plnxf8HLFvhUP6hT15/+z0Aq/Y
eKvswX37f/ZgrTa4dUHP+ESP2f9i/VVwYdUjUuzjdV+RviJ9RfqK9BXpK9JXpK9IX5H+H0CqdL2W
umyZ8Q9fzgL4KrGvSF+RviJ9RfqK9BXpK9JXpK9IX5G+In1F+or0Fekr0lekr0hfkb4ifUX6ivQV
6SvSV6T/ryNdZLs/wXB2b92TPbv2X5U/TwsumJmCdhVf+1fZz8Fvj+zbcD/W+F/HI0/onsjL7jr0
ryajA/tWIL49rPrX+c0nLHUd9/fdsf2fpvff6zp1cOfdNf/aQwjSCSPtlMMP/2q6+v2tC0YH3rr+
6/Tld177VtRtKsj+94HMly+sGvv+unj/PydGP/fXPZ9wx/fQv5q2rTI3vXp0t/4/j1+VtvHWhYlX
0dv/1bRhm+ly4OUHGf9XYayKttyx6Yd/7YL8VtelbT/2XPqXfAi6538V2VeR/f9DZJ+XCozV+h8O
uNot0328Dvsfqj1w4vf/A1BLAwQUAAIACACOoTNK+QNnX9wAAAC1DgAAMQAcAGVkaXRpbmcvY2Fy
ZXQvY29sb3Itc3Bhbi1pbnNpZGUtZWRpdGFibGUtZGlmZi5wbmdVVAkAAyuOgVgrjoFYdXgLAAEE
9QEAAAQUAAAA6wzwc+flkuJiYGDg9fRwCWJgYFZgYGCK4AAKMOyXvbuGgYGvxtPFMaSC8e1lQ67D
AQLOjurf7Td7fq1udnxycEcn9+GuwJJYOSYWDgEFhwYGxsHFOPCfq8Zvy+89Nv/+2v271M6yiunf
06vPnszjkDjRcnPiqobGkNmTq5USFITT3FcxsQXl+r3rbGj0mSG7kkvCY6vlTnUmNqPEsiVaCQqj
mkY1jWoa1TSqaVTTqKZRTaOaRjWNahrVNGg1zR5sXTEyGBW6H5j7e1leRDSa24P6o56ufi7rnBKa
AFBLAwQUAAIACACOoTNKEl9ppJQFAAAyEgAAMwAcAGVkaXRpbmcvY2FyZXQvY29sb3Itc3Bhbi1p
bnNpZGUtZWRpdGFibGUtZGlmZnMuaHRtbFVUCQADK46BWCuOgVh1eAsAAQT1AQAABBQAAACtWEtv
4zYQvvtXcA0UkpFIzm5vsWIgdQI0QIoturkUQQ60NLaJ0KJKUnG8hf97h6QelCwn293NIY45r48z
3wzJJB9uPi8e/v7zlvz+8Mf9fJRs9JabD6AZfmimOcwhY5rl62lKJehpKriQkSpoHrFcsQwiI6dL
DrExTqbOaJQovTefBH9itqVrWIhcU5aDJP/aVfNTCIXORX5J6FIJXmqYNbItlWuGko8XxWu7KkrN
0YlbJmjDMqIYfwHpdA7292DYOWHbtRc8Y6rgdH9Jllykz7W5Z5+iqRRceTYOVLQUWovtJfnUYDsM
2S1LVMs98x3L9Aaxf4LtG2Y681NEswzTf0kuvEwMmnG6BO5ZrlAQreiWcdxjtIPlM9OR2isN28jI
Zl1Nxb6atH4ciuE2Uifi0As8x1TnGUupFnIov5YeUQqctyFrPMincptbQmHwVr4UMgMZaVFglptK
LzltK9XAc+hiBRxSDX7yNLzqKINUSOpoVubo1RCodpJMK6Im04r1S5HtDfkNaJJyqtTVuN7q2BE6
0XLexEh0NkfaZ72VqvYsuxrDa2GBRbZCY5JRTSO9L6AVjYnIU87S56ux2jGdbh7EnWFvqDdMTcbz
20qP2NVk6ry/E5emuqR8IKoTvBfz2mr9r4gZW60G4pnl96LdoM7JWPiXPJV6lhelJi5QuoH0eSle
x27/OU4ADTbyhuZrVNBiveZw7QThZEysBZgKWj/zxHXRSsjWfl7pXyZTKx1KwmkU6T5F9ncKXYEp
C8wR2D0vjNJ7eHqeGlL8ACyPCT8EqvJTceYHADVUOQ3nDRjW2lLpGILjEP42jT0fjZKMvdT93T0p
Ku4WElbs1TT/qSNvPL8X1EznOI6TKfoz514qWaHnI7Yi4Q7HotjFGpT+q8zR82TkplL9Pc7KbXGt
HnBMhZPZaPRCJUmbA+uKZCItt5Dr+J8S5P6LHXBChkHvaAtqW4MbzdwADGqmBOTSm4mBtTVruEGO
+F0bNmHjNehrrSXDLoQw8FIRTMgZCRoCxkW+DibnrWObceO4gY2ubjmYP3/b32Vh0J2EtfHBfQSO
RD8ZrXP6HVj96dlHanj2k3Eal9+Bsp24HsZDRYcKCjgwC1HmGtlxgdJVmafmRKxVFmJbcDAjceT2
dHY2YOwOTcPsIc8J+XXSQMe7YinzWXtIq43YuZyYvT/WxX6aOJ3jPnfrSlOpzQp2mZUqIzkc78D5
LiWvd2ALgtvNYefOldqlFcR4rbp9wTTeM7wQYYHCwHgJzvsZ6RgpmaJHDOIW3SadrAuqe8SBq1iN
zJTG2jzgGER/lXiIImZQBnUquhlsPDz1EiJBgb43lFBNOXFGktDGxdsfYbmdFG21nEMUPcWWS7Gd
iyY1sYSteEE49e0q6EVrUeH9D9ZC7m+saxe35b8EvAymsNgwnnVU3Sw791RXTCptFScegTrbcusd
N33gWODTqI/pVgE2mYibCWdPFX8O99uveyQHk7g6Kmets2oAfaOrqi2GHNkJ8Y1u7IDynPh7R4tF
KSVa8P0XrF7dWYZL7xDGG3hmCrxBm6qayi9Byze/eXT7FvJR9m5qdVObqCcntlNu990GHB4jRoJ0
Ak9NFEPDxp7LJrF3uQb5QvndzcxrgQHnFd5Bh5a6XW9Y0eqygCSvl0OnZO3O8a15cdHvvWPvXp56
ISadd6iNhXIqe9Fa/fYxdgzWvKNW2KzZUOk82KE/81LHurtqML/Nw1ljZl+CqP/YXmjOm8vCeXUY
P7X6uDd4RX1rF9tvn1ehH9wfKzWwu8oqdOZn5OOE/FL54JCv9aZqReHl0RhrN8St5mPj6Wl23ClG
88l1cLcVlhLoc2vQ5t3H1X45ie1Adjg1wdf9cOXyYW6IA4dIH7U7S/BRXN1i8S3mnsNT96+h/wBQ
SwMEFAACAAgAjqEzSoR9PRG0AAAAGgEAADYAHABlZGl0aW5nL2NhcmV0L2NvbG9yLXNwYW4taW5z
aWRlLWVkaXRhYmxlLWV4cGVjdGVkLmh0bWxVVAkAAyuOgVgrjoFYdXgLAAEE9QEAAAQUAAAAbY9L
bsMwDET3PcXA+3422ThpTtELyNY4IiJLgcjY7e3LxECAAFkRM+Q8DH+SKIxqmMOZCr02wlIwjKHR
FFIw1mIsBkaxMGQiyqJonIMvhxzGM7iwQCZP0vOODNBLcKuoxBuQM1ax5P5UG0+tXkt0cK7NDznK
JIwfbwcnQ+0v87tbJVrqsfvaXX73SJRTsoesC9uU69ojSYws++74OvycvcvBC28F3u8F+u2H7nj4
dIJztvEPUEsDBBQAAgAIAI6hM0rsRh1WGCsAALNSAAA1ABwAZWRpdGluZy9jYXJldC9jb2xvci1z
cGFuLWluc2lkZS1lZGl0YWJsZS1leHBlY3RlZC5wbmdVVAkAAyuOgVgrjoFYdXgLAAEE9QEAAAQU
AAAA7bz5P9vZ+//fbbpMWzrtdNFa2qKqlNobS9Jd1TYtrZ0qacYS2hAEkS4zVFu0QYIg01FRtRW1
E51RS4SkI0gjSJVIIySIiCTEJ17v7/c1/fwDnx/eN36I3M7t/jx5nuuc67rOuV2P20n+xcl294+H
f9ywYcNuu6uXbmzYsPnohg2b3LdvVbTkRD26p/inG3nZPTLgV3BASAQcuuGOhfkZ87MAk0BzsLkZ
2MwiwOxOoPkdozMW/hZGZ/xNAb6frHYrHtoYccP2woZyiip3w4ZzG+wunXeN2TgzsmMZzvQGzc6E
P3ny9I1DtsllLeNbv514Gah/oVDr2MVrr349E9j14m/twDdar7aDt5N+yXZxPYn+2c5O1grkgfGL
NuJcIZODoLTwgNEtdJ7ImhNNYcRVtIyybJBi3zi8SUrhrh83btqyfc/Rcw82KL44bX64Gn24/9WP
37Vtd92448kPDzf8l3tIczi3CZZzveTJv20KBPzg/wXy8PGJo6hVMQoUP+WCH3orTY1uDlgSK1rK
WPh/iEvU1WXq2IoAtapS5uHFFLauylrbmlgr/DKWeLYdApIxxtaIpPuqcb/yzzMPNUW38HxKguTk
1mXyLB21Qi8Ry+RzJOcE2NKXbaB6+PtVacXqYfmC82okTyxLeAllgpbbQKVXrArCBKkWBhu7o4zk
zG5b4PzLsZlwlKy24iAqX3SP6HBavXLuQVOt5upS2urZ5q/7Kw4BFyvTTueQCxbJz07Anm+eCe40
cpqPtBo6xmwMVJPhWiW4MRpevnDeuqosN7xJyfgfl6Dj9qFOzxanm9Tzr6k66jQRqaPRd1MdzhFn
mEToUpWhrGrsrkUTY9aGJbRpy6bGT47txdZ/vMdkjkbVj+0OPxs/ykGOzoa0Loa0pcm/pSkdbPl2
OUkZ+e2iF2fsCHHsSKKtzdR1r1aQJnJumQNC1X/5wfCs9fzLNGtNs5AQL3SM98qUm0YYvMQLqkZI
MvSVDdGV3JqGBpy6Hudj5hBkr1Fjb9FbN7WE2W2oe2ZHQEITkEk8JzqBM7UCRFmLip3VKHGjQiWq
4sM8FaM1xyPyeakIKW/fSgprKWXMnjhhn3iw+csPJRWUN8ym8WR7pRxBPMdK+WDT5/ZE1aul2NyP
Z7mv06fErdKS1ka5yFeQ/iF+3CJh/MXZ3F/BzKiJf9ISFmatWoVWZveJw2yDOpNkWZrC3pdlbBfa
XS8rp15LL0fZC+hITSpyoUBDLeFbUsKv9RPahoBlZusK876FuC6BVzdl5Fvrr3OBAU6XgE4PVVNj
Y45nqZOtw4YgAps8WOKvkIb202FGmLyO4Kxq/Mr0uBr/XtKAjAMUN4zvwy99rAydjuiO1ofou7HK
VuceKsff1leRSTufjSpWGtXXdLj84bVb1nK5YFVefl5JOgIvj8ibC4tuYp4vQsTmfG7kbNZY+jDX
7UacN6LeARyxkY+wVkaM0lBdP6VBfOWL4auLL6phn4LKOqdjdBKeiGA5SaV67Af3Y60wm9/M4eVc
/C2BsBMoQnKxCdyltTWscwQlJ+SqHjK893BnD8iyvNWFtS9/9rcB01RIXF1OF3c2zfE+A2Lup5ha
OvJyg2UN/D1aVT2QKcnqtL7r4O30sYqopuv2uWMaZY++hXNxkoaGDsareVT5jZ59uTmhfjR1s5M0
0qL4Yo3oDXz6ZkXsTZ+ka3tRDlt5sjp0T6oyoutiapBnkegqLtSJvKjvo+wcgj0gKhNUi/OSNCse
DK/wozWI354Rfw25E0HDjUYuTVXIp2LBgbxzeNlxty2w9sCWjGzf1W+BAoUropAn9TpJQKspR8rr
XvKaz9OrheGxNNykhsa0QLHeTYqyBj2osYNjDhBLmi6QxXlcEEoIKquLli73x45MZJcE2F8zYJbV
6flAYZlQt4NEbdroz0na471JDDNDntBGI1xqBYlWvo7pr3G2wd2ppS7x2tTJsQ3AlGY8ZkQftCpY
XWGd4ApBq8Ik9NHSK4ybLEI9nq0PYTTI1UQrb79qyrMmQUIgfhXKbNI8Ef0UPv5mzLlXYNFQ3glm
SbGhOrW7q4MSogbw0Nlkz8E6zfA4JjMx1KoI2V1oiOS6mEKRaozJmKc/ObcrDzJfviXA79rVyD4u
v4FO1sZazKRjepjSM7ihRmCPVOYofB+iRp518eYwcSJuWFxr0GrUG+hYraWyRNLYe4xZHejhVaWu
XtVie5qWVBrCfU8Am5PHKvUfu9is1tXhgR5xLYM15TWLJBLr7ubVGj9ZTYkyjbXQ1CprShLmcqzb
oGERuIHESXhF3MjsZtDs5jYkPwI/8E4Rl1oBGSU6bW0a8tmxHHrz5JRQosE9NbcWHhfZRFoe33SZ
hF+2W5Eqy78oJ8axZKM1Vp9PhyPIA+zlLXptRTs70pa70naJW1dXeLNpyOmAJGzLNLjm2SWCS9U3
hJloNKMTJJ+rOXIdsBMU3xkd33lvbKdfTMxHTfXrSS0cG4FHU1YhkxE/7CA8iJo7GEKvcl9p91tu
JxGsWhA8L5ZlfC893hG6auog3TPK8xW/HdlSDsssyS0FSffiHGQ2AoSzI6VvN3/SolUym4RaSmrT
Ac4lDy2qbiisgBvQRgUJ4hKfv30X/jy4G7DnNIQUTP8NS1worNEbYRuiJLFfqkPyCbUTcCxnp9/S
30Mt2j439iYVBw6B5vaBjKyF2VRVosJCiC5wT8ZCwOnshdkxZVTMUjFeWtxo7TDe4zeeHwOc9lcu
IU0YrvQZlhFHDyTBtiKXJPhVydgQnbj4C+XwQLmacsyHzVMxOMwrqLBKS11FvLaqZx1ZC45wwIqC
xE9FpoR4B8TMPfOzjlf4AcpxMhzJ8xJYdy2XKKJjY64WlwI7e1qYzR2GvGBb8q5/zWstYs+tDeAF
fKwTtdyZpGPDtYOP1PeADUwyqmE1Lbg7mN12qrTTJ8hxoS5VSoEr3aTf9SvoTaOiYCxBN585SLac
n271IbtIuQS9vy5qSD+NlSty5WyHBfG+2V3+yNXhO9iqMiL0Pv7Ez7jSJrvAqlQwp7IstPqz+TKO
tTw5tRgBEkeYKTVwQizPerNGteVsh/iZfCyRqRsU3lgm/0dj5TqyNVCFGY2gLM5qGyLsHPkogTgh
vF6AFFjFt7vFt78Az/qtivyS0q9FF4W2RpzBGWi5MCYb1bEBPh0uzpiS3Mgu4vGRuPG6slAcfldr
SNMZvC9fT0IUyIivvAdYQ2bhTOMXM7/WHuNYsSSJkRWOdgerwiWYcBUY2gDMrLcts4dPMFA85st4
UUaRdSGf/jWPT0kej2XUpgbWQ2Xs+Logq5gnyI+EqFAmCAIcJJdnVSg3BY2QYjEzgdzkX5rKfLjX
3A5TFI5CpxIeN0Jlr8dTGGjRHVy71NK8psa7t0SYv0KvWO6ucNCg06HkUdLWU+G1Myxjb/Q7vMJp
VA1gL5/tAqhn1bpIwphR1p0aDNbwuLr4TectRgdBD1qr7dHaymsilkQJus1hXiTLbNGpEWG1AUu+
WFchiOhByz5WUckJZ2RtcFwAlCpt1vcZjCpLSosbHp9K0B95Uu3TZfNAVxZWXYSQrSWHsSsWjdd9
6BGhkjbFLgbu51NeGm6TwITHv+B3AU703D/XHZEvzD3WuS26gewzJStI1TD+VI6MyusirmZm3q6o
Gv0h5HDD8Dc3wx2Yx6WKzNfRlyUlhg5PHQX/rk5u0QwAfHkjIG8N09/JM5W6H/haWbqhRCwEdT/8
5K702y2NFrmoQoN8pZ7oLH5XJVS173NhYTdPVZbuEgmqfjpkwnftTo3W32ZFY6a3YPLm3JVSO9G9
KewPEP1tcwGN2MzNTytVJ1Ia3ksVMeiu/kp3Z59FQ6rXAXnlsIYJcT6zolSgsfDHtpRCqjS4ketk
3AvZISU1pmU4xDXPpYRbE+wdGDHP2RtKnaywruLK5GjA52I4UbFLch94aY8Ge7jDk8ngtmbDnf4z
QzfQZVLi9FJI3XvYC3N+TtHNgruo0jj5NFU+vfS739LvAYQ86ddb5kslRt1PG56iPACdaJuKxokV
Bn7FIw8vJopbSsboq/WK4YLu1mf0rb5T8lP6OmVa2/4q9GwnbnjiBBx47W8Tgv0VuwcdPuRPimlL
sb3jYR4IJ3Y7/mlWro14I6iOxzzOGhBrX/cO90XiRVq8y1MOujvoawGgWZ7Hfq01FWAHm5J91PO5
2X3lLdEQ+bhzbZmVrhqvVFWqG8YxyKnaY+UsTqsoK3Nz9sA8jh3jeeUGCvDuMHk/eShFl2eL+Qf2
rj5nUBrbIP0agVKtsQYT7VEjlpFDUa92+vyqT/JS/Kwl2ZlhVHaiyZd1nedHiP5dz9v/+eXBkT5I
Yy2qykeQX917x2xzNaiv5a1WaIAdn1cETvKaufbVjVURLpj3Z3yiQ2+r/bGMlZwU9w3USeJIi/dY
bACzP0hF36q9UtX1ufY/GlSUXJjGHn1SqXWlBuc1WLZsz2ArPPwjNEfeB44fMi/UC7f72gEbJIbt
TJjuTCgdxK92/yV/u3OwXEJ6x6zdKTHw+UowcGdr/TJikfE4J76mctpzKwHp2fCUeNiC+b742Xzt
fWypfckODEiRf2nRDA3w6vuS0gpN2xlsHXQb+eHtEcXO6F6p7InjzOcaVH4d700WNWmklv9a3hNX
6889kQ83nruGqyISQpk6auE9mNKDTP1BemUPZPAl95COoLr8tZrG6lKnMGq4dnrAkC73YrWyeRXS
txVvR4poNXrMrEhSzuKRptpxRlHmvhK4xk2ne8896rpJKZXeOw6Tk9mWKO5QJmJk0Ee/8xaAckrH
lpdLYEIbjkdU8efZE3AfqjljmplvlprHbBL5CxNosVn8ZnZgd/As7Hj48iPDpUdGsmRkHYN26Vqf
0V2vbHQAGcYuMqhTnHFWm++PWE8tHaWRgEZzWdcW/2roPQ4mzbWVIxdNe5G+ac2bbhzIbblG6Zp0
CA6Tk1VmuTu0SG+FElcYBqgyGpn+K2PPtLWedZ5HzxKJEHFCEzIX0QGyIHEmqXsfxE6ao1oVgboE
qxtRE+A7SctG+Srl8rLRDpqQ9xTFLnc31/fWmaQjw1+2inoQVZ8CxdlR3QxKVG3sldOQZBfYCUGe
IB6yEif34yb5dlIZ3OIJBwQFPRF83viffqxJMMC+Nc2R8Waw+hhY8zo1EBN3Jni/9vXct5btMu+/
9bexRcLcV0uD4SuDsYUQunVe6J1qC14++wMhf8BAz89G9vJ5c+kD+HP9fWBNz9XUm5T6iXkuGq1n
Vtm7e1Q3iGOSP/c8VnO0/OxEaUTYBUfvdC7nmn15z4xn4iAHEmRNQVAiBiU5HWmOGGxGLryXwde3
9zCstTmt7yaAdYRNWaJN7AHCdHSJmzaplNYt8zZvHVcTuNMf9lUQfV9dPfhAz3fuqejtIBYlwdJr
OfoDzQ5GekeEsb+fgvxaZcA2IztSZgnyQ5xdrgzGbg9QVelEsGcirtu0jLuyDKfPu+59FHvZ2O3Z
DeO8XLOca41IzAT3Z+ZvCGTTV6AjZ5Ed6lnueXdkZS0SHYNUVeuXYX0O8NomkeWxmAlCWNI80OK9
Yp+Empv6sUu6aNA2ccqZcmpy6uo1ijWk4apH4/OZJmvIEL2FD+ctajPx6B4lD9vxl2xNt+MR8JPK
aU8cuw3oonotdZnBeA163o9RPKgXyrgCYXTfHA4Np5PLJYwanyxnHTdcVV7v/hmHcBdAsErXoh55
IrI6bDCl9LERw4zfBw/KKRLNdC1I+ugSS+OUamhrM9Qqa+bDHF/TvEZTVuIj4wQlRLfHH74b+x9f
Ky1AHLqcaljlNKkPrwV7iG/UzqSnWty1H3wGPcDjuafuU1/6sG0QDg+OUFcyzfQhj5r2oOmq2wJZ
JtAAQkCdD3NumlbVSoqdm2HJZ+Aj3SGUvqJo20Whx+INwgxZ2hyIz9SbZrQWBsZlbNOfuDufgd41
GNBQX8rs31i7XFdmw3ssqC4tS8OJGUqBXuaoDc6xP2dsqefrnKAiU8/DnmeXXPWIcoHtSudzAYO9
A3868iavd27LdhrkSRbHVDlnO6eQU0Pw5Xv9QCsaqy4XzPppUQW408+gGHqK4cH5cnTba67SC76z
S2uHYxsVRD7vrnTcEF5sP5BW7WJHoug599phU73DejvMsCUccCpo1RpVgcKmfJLa6AHeOf15Zjf+
cVtkRffW0ztuHmhE2NUlwcw5P/uA+hJD9xSZT5ht05SEauBUfynqzU7yVs+NTsJRO6Usl0foRkKV
YvPqP+hH751k6ch10+3u5IVpNPQfTs8QsQOYC1WzHF0vIVqn0hHspto3qBUj3JymSEimvUG+i8md
pvxy+vSh6n+GXPso06EEdErve3/yeVc0VnXBAWxst1wt7LJ2Fub59/FFjQQBbUDPnGacNeaCwsw5
atOueeBHCf5CRjlbdxuOEcS+9Lcr+pCzEEMdZBrvtmiZlPncp94T1jqMNEz67CQEzYS83PeDUCcS
7EuAB+dMSkOUEtHnQCtc54od9k75ExOXuoHkz5UGVKHETr/6Yu613PnIvIwC77Sn9oTKEBWqWJc2
n9G6D6e13S6sOj0P6yOM6I86RrOjl8Mmy08wswdrqwJVrka/nA7vu1lp/SkQfvRd4DCixYWJLbcX
3k8TCyQJCHrUPc/8tGgNIzyrYJFKe9d0B7jbpEW9ht8je8M5NM5rlfOSIi1IpHxt2evi/IsfQ4m+
01VZFQGAQ70bV96XUZcnPhhpt800TQ/8BLLgL0T7cngdUuOqGXfw4XAgf8LUMS4WpGbhiKf6kQc+
DWXqdW7lGmRlsS+5N37jaEHROcU9UAJ13hKfJBILF3s6sxOtgkFVQMoy0unPyY/D8U2ZWhYjntV+
ToxoXN4lPXIw+oWDDuk8umUZR8DSJY0NE0t/pDaPt8KZH8OGroDx0f3AuM7XFgkilK3xkVYgHNSz
OwKR4a1egjlX+BDwZch1cqfbo7z99yyF5hrAjXZ+nxd0KZnPc4MoHmnFPUUmyFoenDiXk4jDF5If
4RKSizX17A9kIUgqo/EYkzMuV/ACWqIDxOXI/MoNXO4OXR9I8AVM9XbEpQBKsLo9IDjf3DFCgwor
fr/YmXZR6c8IUFcsw7xFVbWQulILc1Ud7GTW7HJso3DAQdaE+2kis5mex3sJrwOAed7sbqQxuyrO
5hlWACOcxEjCgrKHMrmBsQ2P6oIAfsYtQZ64xJEaa/b9EQkWfhuYImHhCA3yFeB951W66q+QcaLv
Yk3XzRZHaq8fvlUUC2s/JTZif9HZpgkgGWWOe3Rg9KkuNgibYKD4fp6z2H2VknpaaJr33h1PqZUA
gptecAP95lpYshaReqmWpXDbkR6eR9WuQMtkv/LmwCZcgkTXviOPDg+WI11DOXBB0/C0ZxGHNrIo
vi7jSGKYd4Aad6VxeLhO56GGYHRVIN504P43euEBmvMRrR2k2CrfVDjDqzF3+ohw2n6Slr/aAhTQ
ZMPULL2PgJe49B+5KunpxQ3RBjxP7jXA7kYR3M6GeWUU4uGFv1L+S+HrovNOm5y0df6KyAzxYtTw
tR+S5q7zRXYVyUU2M0Eiea6PjHtRTSMUxwoYgYTjfIGgmIOlPpm9rWSKFXYCVnCdm2Q5sfUv7ymv
G/NWWgAvc8MG76wfjto53Jr2Tu3unfG4V7T/bBs1PUmy1DkfrfQkghbZIB4L1BuO92RI2Ghk+W+B
moBMLd8GgKlPBgH9A0BvGGiuOMy5TGSLEb0D+IwgcO6t1OJUn4qmySBmjCxm8u3ATFh0U2xyNItb
yLt6a1Li+NFjrC8PbKc6yPvPCnCCMnXUafWd0hxJd/YAwi40YvEk5JOJMyPISZsUfidXgMEU+yRH
U8KW+QI5n3SlV6UoKCsdWcnBKU6mlImJ4M/W+XFOCYJ6iIQ0UG+9607LdMhLCTUV1uLAG5FyaDLv
md6BVq3jLuKS+Ohm8mc0G5GTVOCbBkZaBufYIvElnR6JEftDW6Zz8D7M3yWRVSkUlW5vOKs21NBj
K7r5dclt9T9eXoqyPOpuzI9PcDJE/c+MY99z36wITVN8jPCJ2b5in2jYhXuNhxvXpjviP9PtIYis
9jFkjKryquqgNu4V4zEBRGCLoyCCYGN31enriVfX8gA7sHrH7Q5hF1I9hvJFUrHH4GBnr8z7VVfy
6+KQGVOH1HCaDdQLEDxCrrzRSLgLIEXpKVcybmLUNaYjHM5WCPbIpiUL82LfHVfvWm/TB4Q0+hLC
zGkhitNVjkS2bJOH6HoYLc0rmtgV2nBMFih+0m8IFPsZgLSTuwoXmieNYxp+enPiEOAJid0fGdL1
6IXfk7xG99er8VIrZ8gAOisDl8tT+rXR0N+XGlmsKz7xOvAhBSIMu8BNO4vE2/+uy77yyjLcTt04
VOk5reVY26SZc2LXzfzIbeS/89F6pqQHEefQP5iRXKQOhGcdQHNuNxq9/+xIZbfjFREyP+wFFXYm
G7G0lqsb0Q4zlObCnvHqkPypDyGrZXF3PYVcR5TziWSf0q85ema6Kid8Xfw6P5YPB95UfssZANu+
NOlA9D70M+9oKNJ05rnvTdK3EhroNGFeiRB2GsxC8tT7eGcovjHHkdzT3CtcdERBNNMDLaFkF1PY
pCbksbEz4xznQciUHu4+rMYQ4gnDaGmLenndyx+jTwmz2ALV55AGUmx6NYmxMfAwo9JRCGxwhOaY
3+bx2K6dC40hiG4Ynp/iIib1RAym6GvSCrJMBB5RBCmdZ3WKn50WBKCyAOkYNsTyWRb4jienWnWm
qmtJiDbYnEzL0L+rlsp6jyS9m8vBJAUNhz7rEx0nS6x/GoLkOeMWPfLHsVmO98nNqtQoqI0BDWbs
xyeIYoPFBDoidP7nHK0dLiTTIkF0O2CbruLok32L8HLGsdFvMr8SJB8HlftEFMVOVthjH2qleWAm
xQtqZvxA09NkHq8vHjgvfj/s0MaunuYZyxd8gF6GPF6XqXwhZ6zayVEQDd2msxr0+XlTSB5FzAPn
0IMONy1ShfcV+zPj3ERQ8AjJ2kH4smS7nTvM70Lts6ZFu84j1UHLUF67wbMewfsZ2dP5/sbII+Tk
ntw3jnbRuIzIVUAwo2QzRU42Rhuz6CeA6deJZJnuXdt2ayZaUqs9Q5EFMS1P2wr9b3TGkszNOn8B
fHYihSgROT5lQsnwCYEY6tyRjUViap7XEdUnX9uVj2rlu/RUh7I/+qeed7nzjmpuNQ6RoUf1AebE
z0MFKzo03SvFAaS584sAxtaOM+L+yfoIyxM9psarQrZZm2Onsv0iI7vDtzA092BmH/We/pGS4WPu
Ar5hGt/bZiOhJxB55wJRb2cI0vM8whuiZu7s1qV8InOLv77b5o4+7D39tDxVcjZVeinH2qg496Ea
WbOjo+pBWC4W9sIMo9blXkWS/vyg6jZd53TG49eetvm7XM314cPW7LeRlw/br/4lff2gzyzYrHd+
qdEyHrAd0L5PZf7jH/Nv6qTIBo+a2rLpPTwZrMATmePK4D4vVJa7G/9lBCLcVMqYojVcWyUa0Rya
uv92x596oXM6Uy0AGgD4Vu78T7cM3ZumXVIhjOyz07mZXg9upKVp8QNcymP7i3gZj/sqvR3fOifl
HM4VF8ZR3JV+4e070f1XSIr/HQ/zDzVQxNu/losNmJNBOZPLcL4H5dTA0uvT7D8aDDZrP66AT+w4
AP6r3FmFvJxR7SwiARBVHvlDrpSEwc/Y3UFIz5v5JyuLM1JcVsbq+69T1J97GNyIaj/mvF0PCeHF
ByaQM3+zpJSDT5LH4n0xHQWlXSKSTXar9U8FoV86Yb+XDuaBS6anO3RAEpII2dDsjU22NKle7e4G
YWxtU9nPryGNrxJc9g4M7JH4V8IIBcDe02R7xtWBWONz3L038DduUhYGdQrYdv7JiME86x2nwOrV
7oEj+hDclHVmdUNAfiIGLSqeXpjiaNu9mXPwCfLKNz7YKhJVpdYvssrZxVrt8IRqx5PI+BKPQTbs
D3f8DfP2084uDFdWeT1290KWqE7rSEDDwVKgRBOqZ/XQMgkhdca0vtdxfkNeqPMoNSsmnj7Cbhxt
rw3tDxkmO/0Ztu0rkdiCc9Z0dulOX5wEc41vKVkveuab4D3wfRSYy6S7ND2tEHcRGetXe5kRNqFr
qjhgZFnrlqt+go6UZ06gbqK+7qUisXOwxIiefQ3zC297vPJrMTNs1ypB1zwebEFeuH5/tNbn5I6Z
rJmAocwi/8JRa8QZQbXjKTHO4Wa5L1Z/s9HpbVtL7hNAtSlNgT45hJd00czVO5gZ98GUnrjB1lAv
80yJZbbOPNvuigqEltCgGl+a7/meaHiatHBfoDiNBdDliNH8AsXOJYre6KJ+4HqdEVuLnNVabUh1
YRLQOn5hQzrt/DczLNOU5vI6OKkWhbtc68hjEmGPCsrT2a/v5FWUmiB+9EOEho2AQr0WJ4VnV1qI
KL0WuynaQJUhxTJ9/CFsUzUw26DzriJsjXsYkB0HRcWx7A3NYfYEuD7z99KIwqYgn63kjfNTZ6E5
WEmInX4nrAMl/2dK9yEtCReaWmhDW5hvpFbVQm30SV/dGyGp7L8uB3AZN/CHsovAhdNNvZSz2b53
XsCjpdiV2NSyqDJcU6qy8cjHN1qhAYgNdsgLofnXcDP3UpUxqqDpIQhEKsPkqgXfgP2ReUPhvJ//
Krh7fJs/4EkeFna3ERgcKfc40KHfxTg6AW+Z+OlukoHHgyL0ZjzyWiK145TQJhMZauyrlF9bE5Iw
2xg5at5LMw3nVTCnfDTCYkF13c3O0F4xAp/FP5XMJWxOem6CX+yrDfNMNC6TNDsI6yM9epc6vWC3
sdLaTNhkSMCmauiShIO7g1HzdtKa9jIvw/Jon2us26Ny8LoAdw2UPMEFadtuQ7b/2vB+OuA65VxZ
rZ/9JConSQRlvMJUQslCVwGwwraBb1Lm2DZ5LoHZ2By05COsDml6F+Rpi4zqN36n3ipZSD0cDZwu
nhMT4BNvYhd9wqLKaE1T3bH1IavNQH55lnMb3zMaHTnxT0FxtKUdIMWihcLrukdbIAicy+jI08Ya
jFt35VVUlineHtvSj+wnRrWMdB4WirjTsa1E38I8++7K9xBko5B9mzvXJjVFq2awQB42V1ArMkeB
RVlccoR6Cy4dAyh+8RqwbRUxLSeMD4m4fEvgE27/YEAQBNOEXGTwhOYoFKFZVwVz4f+TAJxt2z5h
e0vYFsKNKtxz9vqWvkJL8fbJsctCNK6vqPMwFQS6vhom/bl03/7e+H3/I1YoCn+opd4QflzsMuF7
7PcPyUd/afxx0O8cFanVsKqp/AsJmc0D6d0//h5Mt27cVGXfGf0/qoIPO3ReFP0wObZVF7EcFfZn
r+Ck7hanLQ9h4b4t/tbOTLLyT5P/NEPeH98IKLjsGvevMiI39YfF2F0Cbr3a3ZTvJAr7zn1xdT7X
rSYW1Wk4bXiWV52l8YhsUmeROd//UurN56qM4BI95j3yIfy7Ddo3Eo+d+/8HfP0Hp4Etr62BoSfT
dpeAmuF/bnIUrpiwk7YIN9/haYPyRY8ONv8x+i1qhOcbLbKf4LWpiYAg4wx5cfZ/jXb03Jfnp+69
PXFUMtC+/HRS5dXE/QR20lbnwYx5TZuLkuutr5Y39P6SMFEiR0ckNMy7K87S5H627ctUcOT4f8e1
5+yxLU6ighHVXzhz/kVXdEFdxhl+4aOW3OWPpFdTBq33gBOs5gy/P9W7Kx6UA7vFbHqmmwArN6rR
hDIG8gtpJqrfaThKPvy5RYv6KaHrorrxxP3baxXcxBJv9qn/VBiHCMN191ZlrFb1XKzfgno3tV2Z
TbeNBkbI7qfFDc+uqTtOtvp6CBAxS20aQG8+DHuku+KrkjNyyiVpTdBQo0dbE16MRdU1jbwIcxKi
Px7H+8w+Oqg6Oo+p27VWp+fNsjkTSUXWbN22QgN48TFxvvUK11mDEjtYreScMJ+edGTk2xX4XvbB
vqR+7BxQPpemLPHHhvgKc0RN0JnlL9tA7kWZ/OsVqBUe711abH9BohtxPrNNQokmDsnnn6FFTbtk
RHFLhVL6x+PwtYKlinE4IlHYIkAKpD7yOCGOZW2t6FRjrdjTb+DNxmYoY86UnZrb9p2J0s8l7Fh5
A1vh+aH0qf3ljzM3i5dh0qUOC2KlXCseEKOBF5VCBgRAYTa1H//UcJusxA44aZSmQr75aEC2pj4Z
7w2Lqh6QJdlM+wcgroiX/qNEIP0Vk44bDtTf0b70zRYU21O/VjN3a3NCNS8UGqoJFAbur9NOViGf
R65Y0eo//GBwxnf568EKoayR3hLWPHWzwhJzqTABL2laq6AoLIUvFSbQm0bh1gIE1QqjOBqLmUOS
yjRkqH4rEIAJLFCyWIluOzJ6r5newjdrUbP/Cq+qHRUTxWr26But1JDhfHEzZ0CcTV+rpAY0PFRk
iZkQP69WVF96vitLlvZfB/qgcv123GohFWzHvo2K4VixAN4zwW4leG9Jt5t6/txzyC5s84Q2L/Op
RfPYbpHOuBDc6DUylxpdCpGtCRtQYT+uitEle5VjPz1O9BqZulWi/B9hifaxN26OfXm6oHq03n9K
XIlNIzNh/1P4fkfTkNzs8k7pykw0wUt62vL4kUXSm+VPvL9dOHj42l4Xjvgwvf5KCyy9ZG+DW4HW
NdFb8tooxgBUBOVeeUReSBetzFf01m1301C2HmitwJ1UtcGh+t2cGSjKFC45ZWffkpNeYklNWKzm
DeStKUnahPjVZcuw8r0+Yz+6vXELnz8fNki1OUpbOqI3e+y7UOL9pWvLhFkFoveeqMRvJbC3eQYa
7oXKrPT+odg5LId11ma3bLCOKAocn3BUD8DZDhJwg67zvNS1GnZS0JLqax2js0wGxXw37CndOuUU
6UNmeWThK29tFYOIbHJpImnj8jLwKc+bYwn3NERJyEla9lx+hoGnJPqZ1/CdrvTGcnhZyNqgkiGN
Mq1tdjF9mOLyZkKqtaOetp3z3tfFgUMqvv+NX0fvXTlwdl79RVrCQoHI93fH7YX2tLWCeP2ovdGK
QzyfffUCWjBoz5dcJdn8ZLeLgL503M0Mg/HWvfr1hY7tyJo6ZFTxodxQEegC6ARQrgucSbu/2iWg
6zPCPIoORbpZORvNPlKGoexCYS5S62M5V3pbTuIShAF4LUgOxu1fzZrO0w8v3c51r/xsBohhMkdr
g13Qz2CoyzMXMjZLYaiuqabI6Gt/vuRf5mm7WcJcYjrysGvyhLb9FTHtElurVcrAY61jDR42FgjQ
2A7nQ8CFV8pQVR2LJh2VrszsyCNxJHtf44kOSXGgr5/CYZSbhgC7m6ghU9ew1dZvo337VvTuroUm
3v6XkmiJ16Yqg682/y5tO8V8aolv5wpzOaXiO693XufPdK2oYFuX2UlrdXPRB5vkD64w8HE307B7
j4/0p80HFqk+KZo4dalhLi6mXc/XKF5Kw5fjtbMRMiYLmIHr5smsHU+NTwBfQLXHOcleuiqCZQ5o
9V6+MBdiFoP+o7h5Gmx4pDuFA8+HtWu5nQ9D8ryU7WJh2oThS76Cg4wBigNvTcn0oiiwl8NzwUtd
V0Lf6gnz/G98TWedJyH1s1ne/oiv+/DuzDytcaXo+rbZ8uiWkK6CeBdjkMrkWpib8k3Xigry23vg
9+9c+MIfqsPqHt37H0kji/u+zK1J09zRzwfOaiMOkQdS514pI7+5KxE6vRRxOsBOaUrMflkTwH3k
iucvfO4ERuknd7krfeqcb0OOOyoSRqV3yiGh1tu1cA5fsvYo8S5+0wb6slHZ3SYv+CaDI7/qs6Zc
6IBdFLurB1hh+G4l57vPo8qECeIm1hINtEILkPh/MHKuzOm208kzxYR51KTOk8fh+UWC2hqTmazJ
Eu/7xTMn0wbUyC2nRHa3EEO3VMuRMyF07uQOX93CkM/u5b/1U69ZlM6thTDXAfe9FZVasIAGOrjH
GnsJ3Py53cAcc+lXfXFb/5i6ImPQBeT9uQMx8qP/Osbxnbm6Jq1a6d23NSRdtonzWcyUx5weZP7V
m0p/WiS0yv3zgZl6+xGNro3gGRegjEEdlJ2CpV2ehIxCdZ15jXx4hVXGY3GstnYrrdIXNqAt9nt9
xHUS4ZsazIn/XIjiyDHz9azYiBXpWdr+dG9w981XkpRv2diz0OA2aWSzzncvsl3f6ZzTbx2B6kVb
Jn5Ki/mYbEyeTP/vxJ2z2GQ7uhl23G5C/nz4OXBEA3a8twmh/d/nPz3+oDL1Yxctf/H9q+W/Y1K8
8oMzcb37v5eQgjbZnjgqlOk5gapbVnP1mwfAqzuOPP5ue9S+CfLGwP2ZF/Tcd4/lbL96LuddSca/
b4LftPcFcLx8YJ1ZZ9aZdWadWWfWmXVmnVln1pl1Zp1ZZ9aZdWadWWfWmXXmfxvTEO7nv2HDXv21
uwDWbbXOrDPrzDqzzqwz68w6s86sM+vMOvO/l8llv/HsvG8dvIe1718h0bnbLx/oHX2WtevSv/ek
fTi2Reto0i+mu7+T0xzYcfXcASOV7y9Ou6j4VaVXvx7+7mY3/b0vHujfMd7z3RVwSXtePFC98I/p
v9Aed62jGz0+Bh79rnulY0c3An77M+hf6Oi7q+c2VT0hnfuue9UL5zbBtl+m/d+vvyXwp/SH33V/
9rcHWyb2PCWc/25Exzfu6Dp+YvNP3ymotiuajv3s+L2Q6LLCapcdth7/t/svexRNF0/mbP1uRM8U
1lk32LrB/tcbbHZ1YwHVo1LzGeDiBsWf3WWnS+UXbj/6P1BLAwQKAAAAAACPoTNKAAAAAAAAAAAA
AAAAEQAcAGVkaXRpbmcvZGVsZXRpbmcvVVQJAAMtjoFYWY6BWHV4CwABBPUBAAAEFAAAAFBLAwQU
AAIACACOoTNK0z9KCDEBAAAPAgAAIwAcAGVkaXRpbmcvZGVsZXRpbmcvNTU0Njc2My1hY3R1YWwu
dHh0VVQJAAMsjoFYLI6BWHV4CwABBPUBAAAEFAAAAIVRTUsDMRC9768Y8GB7KZ73IFR3rYV+iF0U
j/mYbUKzE0hmWeqvd7atBRHxkpm8vPfmI3W1bJabBVT1ql7Mm7qE7GIf7KNTtMcdBjSMttquX8d7
OaE+hClwvCJpPKFNsYM7iC28wD08bKsPCc/NeiXhxkbTd0gssv85qm09eT6Wm925uo80v2BVHChz
QtVBZh/ChUD78mm+2tVF/WuYAfWbx6HyPwYSy/L9r5dNZN96o8a8aJzPwJg5QxsTKDBJZQeDQwIr
irG4oPlbDOwUS3MqiUKjaFAg2Y9PmcE4H+y4AAU6RHMARRaQbJapGdOJGdSVOBmcNw66XhCNIgqe
DtOTnqJw09llBo3kePk4uj2T6QgmEo8r9XRyRutZ6YCQcD+2qjHEYVYUbYyFVmKmPosvUEsDBBQA
AgAIAI6hM0qvs41aBQIAALIIAAAhABwAZWRpdGluZy9kZWxldGluZy81NTQ2NzYzLWRpZmYudHh0
VVQJAAMsjoFYLI6BWHV4CwABBPUBAAAEFAAAANVVwW7aQBC9+ytGyqGJHOOiBCpxqIDaTVEJiQIC
9bi2x3iVZbfyjmXo13dsCCJpGpBS0laWWDR+8+a9mZXH8zzwp0YVC7R+IEj44WzszzD6Kmlz9Aup
Ev8OFQqLvhIrU5BHaMnL0RaKrI+JJKnnfsKY+k+rddn+0L7wcPkdY8KkQUtyXNc9YikRUyFUXajb
Ba953rwEt3nehm7X8cJgMBmMriAIh+FVbxJ2wGamUEkf51KHa8qBDm6u74SeYyevfiHNzQLeg0kh
GEzhI/Rvgm98fJlcD/k4SUzMTjQBGWjtRT2nocRoKrEM5CMdndmz4ZEhmcpYkDT694Y+ZZX0MTen
avvW0KkulDpjpXss7jV6MFakqdSSVp3ReK2GZfc2scCU2lKOYgGWpFIbAFv/3BuOQ8f94+5uD3B1
eyQ38NLgdx0x587sn7x51fiPPewXOn9CuKQtwd6SF7s5vQPzXjMd7w2nE1TfLPybrfqfbs6/9EV6
m1vylPIXpkcEMMmkhWo5WkhNDgLiXNgMygw1PKxHjtqH8kCZIPYncs6IkHOQQ9xymVuCOOPVW/VS
QKRMfA9CJ4A6sdw4wrxGKrEFnpaZjDNYFByJkJOU1Pdndb42jM3XLA1WiVxnfcn0uzVYryA2mqqp
SF0zV2tdRAoh55XHUiNUpmw44Hj8uKkxjhsJ5hQ/nJ9QSwMEFAACAAgAjqEzSpVfy1CDAQAA4wYA
ACUAHABlZGl0aW5nL2RlbGV0aW5nLzU1NDY3NjMtZXhwZWN0ZWQudHh0VVQJAAMsjoFYLI6BWHV4
CwABBPUBAAAEFAAAAOVVTUvDQBC9+ysGPGgvIoiXHoRqohZqBRsqHjfJpDu4nYXdKbH/3klbSz/E
CCJSzCEbJu+9ffN2l02TftYf3kGSDtK7XpZ2IVo/c+U1TojTkoR40ufk8eHJ8AS7oXlDFfwUzsFX
kPTHcAXXj8mLDvfZw0CH49IXsymygHi4bEUdpXsWaszHhHVCWza6z5+Wh16oosIIef5Ea9nOjW2M
j9BhIViu2znlmXMd9dnSYGub38aaqiImmXeHo6Ubdd1b1RJfc5SAZgpRyLkVQDu/7Q1G6ZdBbTao
khtZ7fz5SVy/Hc4X63As+CZrgdYpLzY5vW/yDmNtEkUL/mVQB7Rt/tvx3VXcE9riZ5YiCEaJUPkA
BopgooXaIkPZbDM1r9X4MTmINaLNmaCMHJWDWtK8KUSBwpIrmyAN5M4Xr2C4BOQyamqCYYF0Zg08
rS0VFqYzreSoJEf82lnw2Ss2LFXOINNvXO0wPlmCeQ6FZ2mWhHihjHobmNwhBL0b1GqOztdnR/q8
A1BLAwQUAAIACACOoTNK4gVkFTwJAADVKQAAKQAcAGVkaXRpbmcvZGVsZXRpbmcvNTU0Njc2My1w
cmV0dHktZGlmZi5odG1sVVQJAAMsjoFYLI6BWHV4CwABBPUBAAAEFAAAAO1aa3PbuBX97l+Bsafx
7o5JSZbkWJLjjm3Ju5km2czak0w/dUARFBGDhEpAlu22/70XL4qkSEnJ2JvdaZNJROJ57r3nPgDp
LJYJO987iwkO4SMhEqNpjDNB5JvDhYy800NoFvKRkfO9IaPp3REa3lNBJQnRv/YQ/JHkQXohmfIM
S8rTIUp5Ska6K+BZSDIv4FLyZIg68wcUwjMJR3v/2TPL2UWmnPFsiA7a3YHu868pI2MaRbY/wNO7
WcYXaei5odGp+lvcyOwgOKMhOgjD0PRFPJVehBPKHoco4SkXczy1ABOczShA7pAEtU3TnINwWo6M
MJDonmhAcaeCtNvt1qwvcCo8QTIaFToFfSJ6j+KmHiORHKK233ftIRVzhmERmoJmLMIlDWUMk9vt
v1h8OAxpOstnGmzWNOqpbB0Ll6YxgJL58Jjfk6wiUb/fHzUpmxCjBl/Z5B3sJezkiHEMYmR0Fsuy
5dSoKxAfgyxuKw6qpxJEbFdEljhgxJsSxkpSenrdkpaWMUjnaRsqqi0zPF8huyFTZbtG0ujJZcpU
6WI56/QOhGrPH8wOk4c5mBfWB9HIEfLVR1XCRniChiR4VP8jDfWS8endR5xJH0QdRjQT0pvGlIWN
ilXb3cD8o02LZSQB0x5t2c/u4dRvCOcFakiJdn3HOmCLpFPMPMzoDHxD8hqxMqKY/gtOQ0acOuw6
SoXqPSbGoCs+TxeZUKZRsKseiAOwzsJZDPbMiWOcR8PbhKLE83U6zDLyOKoQ0+9vs5dRMfIl36pm
P8p4UlG2jY9qD6X1D4skIBmwiRTZZVod8PUwalk7GJQCoHOXujDoPLnX69WGm6L18xijFuobFzBu
kAd8ywNLzzqKGLglOnVtwCoIrkWsDTgmSTSqZUOQmmfKOxVMq0AXTSxrnCAlX4VJnvFW3QX61K8g
R0bwnacaDCCa4BkpWWaIjnOFBwwrLaqBUwgNgAGg2CdUlXtlldPeoDH2RiRaBQBFK1gxT48Fb66Z
GkZheSoYWzQPH5DBaFNOz1eyUaaIw3pFc7oOw7UFUEhY8wwy2Iqm9RO6WcznPJOQaTPLZFBqkpBU
CvRTC/bDCxlzo2+TjVUxA6yXwNOps5SeoMc05P98jAKDgRJ6sAtnJ47YKtxgxq4cgtrRxyaXJfjB
q6T3BOoC23TczvNOdWvQ+8Z9cs/OXbq0TR1On8+JSZvekgR3VHoyU25nNGGAI/9YjApi9KzQB0Ji
uRCXiwByeJ4PfeU9tXDUFMk5C3BW7ndbR4xoD111JPwpb82DU9f4sa2j1KOrFtRzc0nYFDk2lnIr
WkT0gZh1bDxul0Xysa5BjJutZ/ElhViQVaiWr/nk0TQkDxCkNoi2SoQFCHVy2WBUSm+nNoqlCqZ1
2NrUBPsF/GEr0JMV0I4hsUtC5k2Dtc95BrOvOeC8MittTaMMJwZhxU/KZUTBR64aIu26bh6h1uRL
m+sJg8IRauYdEtPJ4HpFL5uTGzq1Isp9eRkZrpfH5eLYrmHUt87hxpIgdHHWbHPhgoI76rSLvbcu
R1bOJCevXUBbh7nBSQqnHZFgU8sXY27KM2geNUQZK78qwUTd5kYO59ftuiEMB4QNcQQedrQ23bTr
RXRCTkHUffRvtD/ayxNxIX1XZzMMFTqPPPk4J7VL7TcisgMrR9yYMB0g82IUq2K0IUcdJEQIV3g0
6rnOLAXvuNGBepdUCCkGCqJ7yhfiKm+BYvaJpFeFZFmX513JUU0xxeSiYjmwVjPBxXb7bplog0jX
5cCd0FhqQI1DpPKJUrqwZV9D0VfMs8ECvCotxh2X30N6P4z41OqQL6SKF0X3C9hCZxLbBXyJAAtk
sI4TpJgs9SpQw9zGxOzUspl2BviVDJIjCX2BGW2pJtA9xSomy/eWEwA2yPgSDA6VQIxhri2KqPRV
EZTL0evbKj4vRey7iw6qkFX/2uUk6q50qjV+QkM4ZRnBlIGEO3zXZBSow7jA96B70ACp5JXiSW8t
1Xkdv2tKptXlh8v+NTY4GI/HBZc+OL0eX/eva+MTFJf1LJ5MJnWohySZQ4QqGd+WaZWRPjwC0pLn
Twan7VMbt6aM4OwfujxwRwHVoo9NsRpy1rK3bmdimtE52DSbvtmPpZyLYauFv+AHf8b5DCbNqVDU
1W0tRgPR+vLPBckeWx2/5x/bFx9KS/+L2D+HdfV656i88pSHxFM2JEsY91ewtDLmm95pYQqAsheF
AQ8f4QP8AXBjId4cupOAui+MO+etT2BPiFmtMZa4Nfl80/pMgr9RaT8uF5SFrd8g72JBWsAUUKcn
CURYOL4vmBQtEgI10lkLjghEP/T7vZPXJ10P6pYFZr58kICmUwZRuAM6XO/RZ/OmdnVmR+ZYUhmi
DiyofNezGgeBJHUD9WF/VUEcnndAc9B/XhoFPl0c8yoNxHxUOxCS8+H5ZPz29u2Hn9F48m7y88Xt
BKgb8wULLwk47MQo6W06/vX9bzidkWGm/kcaSRvxCI3ffkKvZnKELn8d/908/XL7/p15Ogghlpmj
BUf93YdbtEAHUNNzKev4RZQFCecTUHpMSwobfq5t/sAljSC+Kf68iIzdFyTEVaxMf2NL2ZwQP6QL
xn4EA2+nyO5c+aZ5OIpoqgrcDzcGJWj5wraN+TIVEmrVBAlJGbMDwFLXF+9uJlVj6I9mN4Yssd2H
7aCN9tpgC76Dp7+MvT5+jZE+fm/LFBLd4bntXnep3cKziHFGtpt2q1l7O1j0+NuiTNGqqrL53NSz
Kda8qBKfOcf1f/+Q9r0C2AafPNC3DuXFdkfTrSxx8W0rPaMbPws1Tl44oz+Lrz2LpK9f0AnGqgAm
f2jmvYhOT/8fWP6cxdmzWH/wPxM7Ou3fRdQ1Cb9bAfJcVVxnl+N1t1lntzFVX5wJKfSXhxhNMyxi
tIxJitytA7QKxwR7tSZBBoECAnOIvp3Tv91A5rcb4HnYfM+FcBoikoYCmbtiNVJdIduBPyxjOo1R
soCWgMAk9QOeH/X8lMPYzKziq7tB2MeErfTVQXcwMhPSR3cfiGiqV1c3JupnNEC8mYIbEMaX/ldx
drvOdzml95p1/meudDvPcXp/mRDSewFkf7gzdn8DdpqK84jzs5Z6+DodPyvGky0Y1RfEAX6qx/k1
zlD50PexZy3za87/AlBLAwQUAAIACACOoTNKK0qqN1IAAABfAAAAJQAcAGVkaXRpbmcvZGVsZXRp
bmcvNTg0NzMzMC0yLWFjdHVhbC50eHRVVAkAAyyOgVgsjoFYdXgLAAEE9QEAAAQUAAAAHcnRCcMw
DATQ/0xxE3SODtAF1PgSC2S5WAeh26f078F7dS+IpcIxFwz7suq4OhONQXme8CxvhCU4PvoivAQX
B9Ttp/pXc9k7iDWnHtuTEXO7AVBLAwQUAAIACACOoTNKZNN3QLsAAABNAQAAIwAcAGVkaXRpbmcv
ZGVsZXRpbmcvNTg0NzMzMC0yLWRpZmYudHh0VVQJAAMsjoFYLI6BWHV4CwABBPUBAAAEFAAAALVO
QU7DQBC75xW+b7dLGxAcIwQSEjdA9DzNDmSkSbbKzIr294QInoB8sCVbtmOMSO9F68iWHsgpPR5e
04GPz+K/dF9Fc3phZTJOSpdSPTqbx5mtqlviLC7TZ8pLZhU3d9e3bXsV95HPJ+6d89bP3oQQ/nWM
eq+k61TXIe42LcJus0fXNXgbxPBTZPgoMwj9TDbga+AJf1WQySQzaAKPJ79AxRziPMIHWpSt1nKA
jsqYS/FtExeEJ1YtzTdQSwMEFAACAAgAjqEzSiCiLOdMAAAAWwAAACcAHABlZGl0aW5nL2RlbGV0
aW5nLzU4NDczMzAtMi1leHBlY3RlZC50eHRVVAkAAyyOgVgsjoFYdXgLAAEE9QEAAAQUAAAAHcnR
CYAwDAXA/07xJnAaF4g2mkCbSvNA3F7x7+BW8wQ1mTjGhGCfkobbNFC1KT1OeKRXhQS0X3zQPAmn
dtDkU/5VnbI1xRyDSynlBVBLAwQUAAIACACOoTNK7a0Oy5UHAACiGAAAKwAcAGVkaXRpbmcvZGVs
ZXRpbmcvNTg0NzMzMC0yLXByZXR0eS1kaWZmLmh0bWxVVAkAAyyOgVgsjoFYdXgLAAEE9QEAAAQU
AAAAtVlrb+M2Fv2eXyEkaAMUkWTH9tSPGRc7eWCAbouiGbQfF5RIWZxQopakEmfa/e+9fMmSLDlZ
dLeDjiXykjz3de6l5n2uCrY9e58ThOGnIAoFaY6EJOrDZa2ycHkJw1K9MLI9WzNaPl4F6ycqqSI4
+OMsgP8U2asQk5QLpCgv10HJS7IxUwkXmIgw4UrxYh1Mq32A4Zngzdl/zux2bpOUMy7WwcVktjJz
0T1l5JZmmZtPUPq4E7wucehFs6X+0z7IniA5ozi4wBjbuYyXKsxQQdnLOih4yWWFUgewQGJHAfKU
FMHEDlUclDN6CMJAoydiAOXTHtLZbDawv0SlDCURNGtNSvqVmDPah4aMZGodTKKFH8dUVgzBJrQE
yziEzxSrHBZPJt84fAhjWu6alRabc41+6nrHwaVlDqBUI57zJyJ6Gi0Wi82YsQmxZoi0T/4JZ0m3
OGMcgRqC7nLV9ZyWugH1Eejij+JgeqpAxUlPZYUSRsKUMNbRMjT7dqz0nIN2ofGhDrVngaoDsgeS
at+NBo1Z3A2Zfri4mPV2h4CaVHt7wt2+AvfC/qAauQoi/dPXcBSepJgkL/rvwED9yHj6+AsSKgJV
1xkVUoVpThkeNaw+7gHWX53aTJACXHv1ynnuDG9+G3BhokU6YbfwUQfRomiKWIgY3UFuKD6gliA6
0j+hEjPizeH20SbU7zmxDj3Ec1oLqV2jYfczECXgndp7DM5sAscmj4F3CkUnzo/DYSfIy6YXmNHi
NX9ZEweR4q+aOcoEL3rGdvyoz9BW/7kuEiIgmkg7uuyoB35Moy5qV6sOAfp0GaJBn8nz+XyQbtre
bzhGb7SwKWDToCF8FwcuPIdCxMLthNPMEVZLcaPiIOHYIjFqlhMkVQmdnRqmM6BnExc1XpFOrsKi
0GarmQJ7mlfQQxD0GOoBC4gWaEc6nlkH143BE4a0FbVgCtQAGACKewr6eh+8spyvRrk3I9mBAHRY
wY5NeWxl88BSnOHuUnC2HBdfkdXmVE1vdnIs08bhsmK8XGN8tEGACRtfQVavoom/Cx7qquJCQaUV
LpLBqEVBSiWD72I4D9Uq59bethrrZgaiXkGcpt5TZoGRGan/jYwGgyAkjLCns3c+sDXdIMZuPIJB
6Wtbywq0D3vlvYC+wA1dT5q60z8a7H7ynCazm5TuHDOEM+IVsWUzfCbJI1WhEjrtrCUs8CC6lpuW
GnOn9IVUSNXyY51ADW/qYaSzZxCOXqI4ZwkS3Xl/dMaIydDDRMG/NqMNOc1sHrs+Sj/6bkE/j7eE
Y8xxspU7hEVG98Tu4/h40lUpQqYHsWl2XMWfKXCB6IVas+fXkJaY7IGkTqh2KIQtCEN6OTLqlLel
Y7FSw3QJO1ia4LyE718F+u4AdGqD2Bch+2bAuuemgrnXBnDTmXWOpplAhUXYy5NuG9HKkZsRpj22
zQv0mvzZ1XrCoHGEnvkNhend6v4QXq4mj0waQ3TnmjYSH7fH3ebY7WHNdxzDoy0B9jxrj/mHJwV/
1Zm0Zz/7Gtm7k7z73hPaMcwTSdK67cgC2V6+zbklFzC8GWEZp79uweTQ4VYPn9eTIRGGEsLWKIMM
uzpabsfNJqYgl6DqefBncL45awpxq3z3VzMEHTrPQvVSkcGtzkcROcHeFTcnzBBk04wi3YyO1KiL
gkjpG49ROw+5pZUdD4ao31IKocRAQ/REeS1vmhFoZr+S8qZVLIfqvG85+iWmXVw0l0PUmkjw3O7e
XSQ6Epn5GvgmNC40oMchSudEp1y4tm+k6WvX2aSGrCrbvOPrO6ZP64ynzoa8Vpov2umXsNpUEjcF
8ZIBFqhgU69Iu1iaXaCH+ZwTe1LsKu0O8GsdFA8UzCVW2oWaDJ4o0pysfnIxAWATwZ/B4dAJ5AjW
uqaIqkg3QY0e84Xr4ptWxL17dtCNrP5/0i2i/pNOv8cvKIZbllVMO0j6y/dARYE+jEv0BLYHC5Be
XWnf9I5KXTiNZrZlOnz88NV/wAcXt7e3rZS+WN7f3i/uB/kJmsvhKL67uxtCvSZFBQzVcb5r03qS
ETwC0k7m362Wk6XjrZQRJP5l2gN/FdAj5tqUa5H3sfvq9l6mglbgU5F+OM+VquQ6jtEXtI92nO9g
UUWlDl0zFjOayPjLv2siXuJpNI+u3UsErWX0RZ5vYV+z3zbo7pxyTELtQ/IMcj+Ap7UzP8yXrSUA
yn0oTDh+gR/IB8CNpPxw6W8C+nthPt3Gv4E/gbPiW6RQfPf7Q/w7SX6kyv18rCnD8a9Qd5EkMUQK
mDNUBBgWru81UzImGEKj3MVwRSDmYbGcfz+bTcLrEDqXGrFI7RXgmXZhtL4CXR7PmNv52Li+tQcy
hzYa90T0lSXofO0xX0WhgnoJc88/NA+X2ykYDea3HSlI59dloCRfbj/nVDf1EpJdX2xQkAokcyAv
6NK9RTTP6e8OsNaGJaNSpzwpLAnADnoK7Kg/rgWCcxW5E8GRoJ7/aavaisvLrZt2sv+1Le0l71Vb
tuROmvT6DSb9tkxktRm3a1///wmw2f8B2JFjuqYFHnzdrk7oJPYTuPgbrG+wf9Kt9N+JrN6PIRdI
bfNPE38BUEsDBBQAAgAIAI6hM0rFOmnTqwEAANATAAA7ABwAZWRpdGluZy9kZWxldGluZy9jb2xs
YXBzZS13aGl0ZXNwYWNlLTM1ODc2MDEtZml4LWFjdHVhbC50eHRVVAkAAyyOgVgsjoFYdXgLAAEE
9QEAAAQUAAAA7ZZda8IwFIbv+ysOeKPgRazVlV4MdK1O8GNUcYyxi9qmGlYbaSPWjf33JbaU4SZz
ndvApRdJmr7nzemTEI5l9ia9YRdMq291WxPLgA2eTQnemMS7WjjhHI9xgF1GaGjcHvoypIz4xHXE
WLGko3T8Z47xgq4Dz+Rqhs3RwBaxRiRa8CO6BA2oDyWGEwaXML5pDXln9qa8bY/MO95dTwZ93pU8
6q6XOGTAKDS+GnQm2/HO6Jvw60XgaxL+SeCrReDXJfyTwK8Vga+eAH6a2FsY2PsowWaRBIsE/eHi
ju+TkLCtMRzn56KVzZl0E8Ysws4SYkaCIBOEc6PT6o+tsziEjV/BLG8AWXjIwkPCl4WHLDyOKDyQ
WOvTjI5S/aj9eRUPgbPFETgMyqiKKhCTJww6QkkTIQXAxqGHIxF9QHJMeDug7iM8C5AvB6W5mHpb
eBbsU61e1TPtha4lDV3bafes+YbtO+/UTbif0YjrDCirqwRiGhAPSp0O4k/lIbPKzWy+sJ0a1bRq
TcusUKLqiutEmBmwojER3NKD4i5I4PHhLix/r2UJ8YkZ/xvlFVBLAwQUAAIACACOoTNKX2DAMw0B
AADeAgAAOQAcAGVkaXRpbmcvZGVsZXRpbmcvY29sbGFwc2Utd2hpdGVzcGFjZS0zNTg3NjAxLWZp
eC1kaWZmLnR4dFVUCQADLI6BWC2OgVh1eAsAAQT1AQAABBQAAADVkE9PwzAMxe/7FJY4diGrqgHa
AZWSalTsj7RNqzhmqdtGypppcbTx7ckGB0ATHBEXPyt+ev7FjDHga2v8Fh0XkiTPyyUvcfOs6UMy
r03FF2hQOuRGvlpPjNAR26PzhhzHSpPuGl4Fz7lR1hi5c8gOrQ7OnVTIkuHd7c0gZrU+MjzuUBFW
13SkXhRFf4AgFXlpzgBpCizuDyGK+wmkaY/lolgVszGIfJKPH1b5CFxrvakybHSXv28qOjGfLmTX
4Gh/qlDv7RYGYGsQxRruIZuLlyBPq+kkyFVlVfhgR0AWkl9dlxgOuFlrPAj9hWNUXnyeWdK1VpK0
7XrwU9hje8Jfhrupk/lT3rfJP4x8A1BLAwQUAAIACACOoTNKjcEJ0c8BAACfFAAAPQAcAGVkaXRp
bmcvZGVsZXRpbmcvY29sbGFwc2Utd2hpdGVzcGFjZS0zNTg3NjAxLWZpeC1leHBlY3RlZC50eHRV
VAkAAyyOgVgsjoFYdXgLAAEE9QEAAAQUAAAA7Zhdb4IwFIbv/RUn8UYTL6qiI1ws0YHOxI8Fjcuy
7AKhaDNsDdSIW/bfV4QY58d0zG2JKxcUynveHh7a5gRDbw1a3SboRtto1gaGBsGEzT2njseEGg7h
hI5bVO91TIuOseZHZ3B9NgUEzAW9NYRrqPf0B9HcDjpt0WQdZs+nmHLgDMpHVRljJ4UFHg0JXujk
Qxra/d7uLuPEJbbFCaOfet1MouT72MN2pN2w23oiHaXjv3aMtwBdqDnet/SVaFFnOQ65WMj9u1pX
NEd3gspXgy7kc+wYfRN+OQ18RcI/C/xSGvhlCf8s8Itp4JfOAD9ObBMGdvYlWE2TYJqgPxzccl1C
CV9q3f56XtSSPp0taMB9bE0h4MTzEoEo3Rq1dt+4iElY+RXMcgeQhYcsPCR8WXjIwuOEwuO0fzEn
qX7U/rKKB89aYh8sDjlUQHkIyAsGFaGwilAGwMTUwX4UfUBySnjdY/YzvEYg3w5K12LmLOE1Yh9r
1YKaaK9UJayoykq7ZS0+2LbzSl2FxxHzhU6DXGkWQsA84kC20UDiyD8lVmszUwxsxkZFpVBUEisU
ltSMbfmYazBjAYm4xRPFnhDPEZersPV9MUlIdIzE22TeAVBLAwQUAAIACACPoTNKmCakjOYHAACL
GgAAQQAcAGVkaXRpbmcvZGVsZXRpbmcvY29sbGFwc2Utd2hpdGVzcGFjZS0zNTg3NjAxLWZpeC1w
cmV0dHktZGlmZi5odG1sVVQJAAMtjoFYLY6BWHV4CwABBPUBAAAEFAAAANVZbW/jNhL+nl8hJLgG
KCLZju3UL7s+NLHTLm53e2iCXdynAyVRFjeUqCOpxNm7/vcO32RJlpy0d0VxXXQtkUPymZlnXqh9
k8qMrk7epBjF8JNhibwoRVxg+fa8lIk/O4dhIZ8pXp0sKMkfLrzFIxFE4tj794kH/0m8k36MI8aR
JCxfeDnL8VJPhYzHmPshk5JlC29U7LwYnnG8PPnlxGxnN4kYZXzhnQ3Hcz0X3BKK1yRJ7HyIooct
Z2Ue+040mak/9YPMCYJREntncRybuYTl0k9QRujzwstYzkSBIgswQ3xLAPIIZ97QDBUMlNN6cExB
o0esAaWjFtLxeNyxv0C58AXmJKlNCvIV6zPqh/oUJ3LhDYOpG4+JKCiCTUgOlrEIn0gsU1g8HP7F
4kNxTPJttdJgs65RT03vWLgkTwGUrMRT9oh5S6PpdLrsMzbGxgyB8sl7OEvYxQllCNTgZJvKpueU
1A2oj0AXdxQD0xMJKg5bKksUUuxHmNKGlr7et2GlpxS087UPFdWeOCr2yO5wpHzXSxq9uEmZNl0s
Z53dgVDDYmdO2OwKcC/sD6rhCy9QP20Ne+EJEuPwWf3taajXlEUPf0dcBqDqIiFcSD9KCY17DauO
u4P1F8c24zgD1168cJ49w5nfEM4PlUiDdlPHOmCLJBGiPqJkC7EhWYdaHCum/4jymGJnDruPMqF6
T7Fx6J7PUcmFco2C3Y5AFIJ3SucxOLMijgkeDe8YigbPD+mw5fh52SJmMH3JX8bEXiDZi2YOEs6y
lrFtflRnKKt/LLMQc2ATrrPLjDrgh2nUsnY+byRAFy5dadBF8mQy6Uw3de9XOUZtNDUhYMKgSviW
B5aeXRQxcBt0GtuEVVNcq9iZcEyR6DXLkSRVcBWdCqY1oMsmljVOkUaswiLfRKueAnvqV9CDY/Tg
qwEDiGRoixueWXiXlcFDipQVlWAEqQEwABT75LX13ntlNpn35t4EJ/sEoGgFO1blsRbNHUvjJG4u
BWeLfvE5ni+P1fRqJ5tl6jhsVPSX6zg+2MCLMe1fgecvohl8692VRcG4hErLLZPBqFmGcym8bwdw
Hiplyoy9TTVWzQywXgJPI+cpvUDL9NT/SkaBQUAJLezS2ZUjtko3iNIbh6BT+tLUsgzt/FZ5z6Av
sEOXw6rutI8Gux89p4rsKqQbx3ThDFiBTdn0n3D4QKQvuQo7YwkD3AsuxbKmxsQqfSYkkqW4LkOo
4VU9DFT0dMJRSyRjNES8Oe+OTijWEbqfyNjXarRKTmMTx7aPUo+uW1DP/S1hX+Y42srtaZGQHTb7
2Hw8bKoUIN2DmDA7rOJPBHIBb1Gt2vOrT/IY7yBJHVFtXwhrELr0ssmoUd5mNovlCqYN2M7SBOeF
bPci0Ks90JEhsStC5k2Dtc9VBbOvFeCqM2scTRKOMoOwFSfNNqIWIzc9mfbQNs/Qa7InW+sxhcYR
euZXFKar+e2eXrYm90xqQzTnqjYyPmyPm82x3cOY75DDvS1B7PKsOeZ7lxTcVWdYn713NbJ1J7n6
ziW0Q5hHgqR22xEZMr18PefmjMPwsifLWP1VCya6Djd6uLgedolQFGK6QAlE2MXBcjOuN9EFOQdV
T73/eKfLk6oQ18p3ezVF0KGzxJfPBe7c6rQXkRVsXXFTTHWCrJpRpJrRnhp1lmEhXOPRa+cut9Si
404n6teUQigx0BA9ElaKm2oEmtmvOL+pFcuuOu9ajnaJqRcXlcuBtZoJLrfbd8tEm0TGrga+Co2l
BvQ4WKqYaJQL2/b1NH31OhuWEFV5Pe+4+h6Tx0XCImtDVkqVL+rhF9JSVxI7BXxJAAtUsJFTpF4s
9S7Qw9yn2Jw0sJV2C/iVDpJ5EuZCI22pJrxHglROlh8sJwBsyNkTOBw6gRTBWtsUERmoJqjSYzK1
XXzVith3lx1UI6v+HzaLqPuk0+7xMxLDLcsophwk3OW7o6JAH8YEegTbgwVwq67Ub3oHpc4fBWPT
Mu0/frjq3+GDs/V6XQvps9nt+nZ625mfoLnsZvFms+lCvcBZARmq4XzbprUkA3gEpI3I38xnw5nN
WxHFiP9TtwfuKqBG9LUpVSJvBvar2xsRcVKAT3n09jSVshCLwQB9Qbtgy9gWFhVEKOrqsQEloRh8
+VeJ+fNgFEyCS/sSQGsZfBGnK9hX77fymjtHLMa+8iF+Arm/gqeVM99OZrUlAMp+KAxZ/Aw/EA+A
Gwnx9tzdBNT3wnS0GnwCf0LOGqyRRIPN57vBZxz+jUj7c10SGg9+hrqLBB4AU8CcvsSQYeH6XlIp
BjgGauTbAVwRsH4AK1JUCAhYFcE6gP3xdPbd1XDkQ1viQz9TIhrInQSUoya42reh88MZfWfvG1d3
ec9cV1oi6iLjNb8B7eUAX+4E9UeAfWdxvhqBRWF+1ZCCWK/LfJOHolh2CkLRPl9t1u/u3338wVtv
3m9++P5+A5ROWUnjawyBvDHGe5evf/rwM8q3eMHV355GMvRY4q3fffK+2cqld/3T+h/m6cf7D+/N
01kMOc5cOZg3fr24RQs0ATP9r4x1+YcYCwrRJ6D6mjQMtvjcOfyRSZJA3lP8aeuof+qa1iL7fGWn
D+3xOt6JFC518Yu8e9GG41fYcPT7zHeTKmbd6Q5apfLPfTPHjPjfaTd5hXaX/7faTV+h3fhP1O63
BEDrR1cRyNb636B+BVBLAwQUAAIACACPoTNK+51ddc0BAADiCwAALgAcAGVkaXRpbmcvZGVsZXRp
bmcvZGVsZXRlLTM2MDg0NDUtZml4LWFjdHVhbC50eHRVVAkAAy2OgVgtjoFYdXgLAAEE9QEAAAQU
AAAA7VZdT4MwFH3fr7jZXjRZTMtwAg8mTlCX6DTbojHGBwadNCI10GXMxf/u7RgbTufH9MEYeGhJ
Oef09twDwbHb/XbnGGzn1Dk+6DsWjNngkrOxzf3DwI3uWI+FzJNcRNbVuicdIfmQe666rzilYqn4
pxWTQIxC30a0ZPb5WVdxrViNMIzFAzRADKEmWSphH3oXBx2c7PYljq1z+xqnk/7ZKU41X3ijBxZJ
kAL075L+STveCP3QfG0T8xul+b9iPt3EfK00/1fMJ5uYT0vz3zE/dCcsBlfCFqmTbUj4EwODkLRJ
SAWgyyKfxYq9BvIVeisU3j1Mlb3Pa6ELsPAnMFUdybBG3Zhj9ww93TX0GXZFGtu4qqzQlGpwMxAx
Ai3Y0h5TSETIfagdHRG8tm/nWrlaOwp5xGCqwrGqR00zXWy+pPRVnKazVGUMqtepnnOaqWYUKACz
9MWjqAgdc18GiLWgmkD1zQ6tLtrRzcQ1s95o5uIp+RCL6ro2x5LXdawvfa943E9qV9isdpNi7TB2
4x24Yq+OsMoiRRolJvLwpZQBPlT0auWTEpf9IHh8z42ZtOBRJFxlOfsseAEPffzHyGmLJZo3trgy
Sw4uDDB2lRdQSwMEFAACAAgAj6EzStO5n+4AAQAAxAIAACwAHABlZGl0aW5nL2RlbGV0aW5nL2Rl
bGV0ZS0zNjA4NDQ1LWZpeC1kaWZmLnR4dFVUCQADLY6BWC2OgVh1eAsAAQT1AQAABBQAAADVUE1L
w0AQvedXDHhM121JK5KDxLhLDfYD2pDgcZtM0oVtVpJZWv+9iQp+UPQmeJk3zDzeezOMMeCZNe6A
HReKFJf5lue4e9D0DrHTpuQbNKg65EY9W0eMsCPWYucMdRxLTbqpedlzPhpkwdX4ejqdsUqfGJ6e
sCAsL+lEnu/7f+OqCnLKvHpGEbDJaAb+ZBRAFHlMiiRNVnMQciHnt6kModtbZ8oYa93IN/GkEevl
RjU1hu1QoWrtAcZgKxBJBjcQr8VjD/fpctHDRWmL/qaGgCwEv7LOZTjiLtN4FPpLjjA/O15Z0pUu
FGnbePCT2N1+iL/tP1QM5E963zb/UPIFUEsDBBQAAgAIAI+hM0qBBU998gEAALEMAAAwABwAZWRp
dGluZy9kZWxldGluZy9kZWxldGUtMzYwODQ0NS1maXgtZXhwZWN0ZWQudHh0VVQJAAMtjoFYLY6B
WHV4CwABBPUBAAAEFAAAAO1WwW6bQBS8+yue7EsiWdEupg5wqBQXkiIlTuVYiaKqBwxrsyphI1jL
pFb/vW/BOBjbcevm0goOrLTMDLPz3kM4tjt2h1dgO9fO1cXYsSANxTwKBmzGYyfgksczN7Zvb0Ze
PGNWou4wTcQTEBBTsN17+AiDW/sRl8/jm2tcOoHw508sliAF9A6iWs6WhQWb3HO2sPmGDeth5/ZQ
SD7lvie5iN/U+hQq83csYr7CVuRqTxrFRvEfUiwG1ka0ZLsGNR/BjmSZxLG7+3IxxOXg3Op/SvpP
yrEl9Jfha8eE32vCf5fw6THha0347xI+OSZ82oS/I/zIe2EJeBJOSJecQsp/MDAIyfqEtABGLA5Y
oth7IL9DH0TC/w5LFe/PvdA1WAQvsFQVKbBG11hhzw09+2DoObYmjWWsKys0pRp8nYgEgRacaM8Z
pCLiAXQuLwlep99WWqWaG0c8ZrBUzVHXo6aZrV/+ShmrdlrmXVUwqN6lesnpZ5pRoQDk3ZfM4yp0
wQMZItaCdgrtrTcMRhjHqBDXzG6vX4pn5E0squvaCks2fey3fl497gHvClt4Nyl6h4WXnMED2zhC
nUWqNEpM5OFQyhAfKnq7dcDiaz0IHt/3EiYteBYpV71cfBb8kEcB/mOUtPUWLQtb3ck7Bzcm2Hat
X1BLAwQUAAIACACPoTNKPehVxdsHAAB+GgAANAAcAGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLTM2
MDg0NDUtZml4LXByZXR0eS1kaWZmLmh0bWxVVAkAAy2OgVgtjoFYdXgLAAEE9QEAAAQUAAAA1Vlr
b+M2Fv2eXyEkaAMUkWTHdtaPGS+a2GkHnZkWTTCD/bSgRMrihBJdkUqcafvf9/IlS7LkZF9YbAcd
S+QleR/n3nOpeZPKjC1P3qQEYfjJiERenKJCEPn2vJSJPz2HYSGfGVmezBnNHy68+SMVVBLs/X7i
wX+S7KSPScwLJCnP517Oc7LQUxEvMCn8iEvJs7k33O48DM8EL07+PDHb2U1izngx984Go5meC24p
IyuaJHY+QvHDpuBljn0nmkzVn/pB5gTBGcXeGcbYzCU8l36CMsqe517Gcy62KLYKZqjYUFB5SDJv
YIa2HIzTdhSEgUWPRCuUDluajkajjv0FyoUvSEGT2qSgX4k+o36oz0gi594gmLhxTMWWIdiE5uAZ
q+ETxTKFxYPBN1Y/hDHNN9VKo5sNjXpqRseqS/MUlJKVeMofSdGyaDKZLPqcTYhxQ6Bi8h7OEnZx
wjgCMwq6SWUzckrqBsxHYIs7ioPrqQQTBy2TJYoY8WPCWMNKX+/b8NJTCtb5OoYKak8F2u41uyOx
il0vaPTiJmTacLGYdX4HQA22O3PCereF8ML+YBq58AL107awVz1BMYme1d+eVvWa8fjhF1TIAEyd
J7QQ0o9TynCvY9Vxd7D+4thmBckgtBcvnGfPcO43gPMjJdKA3cShDtAiaYyYjxjdQG5I3mFWQRTS
f0Q5ZsS5w+6jXKjeU2ICusdzXBZChUap3c5AFEF0ShcxOLMCjkkerd4xLRo4P4TDpiDPixYwg8lL
8TIu9gLJX3RzkBQ8aznb1kd1hvL6xzKLSAFoInV0mVGn+GEZtaidzRoF0KVLVxl0mTwejzvLTT36
VY1RG01MCpg0qAq+xYGFZxdEjLoNOI1swaoZrk3sLDiGJHrdcqRIbQuVnUpN60BXTSxqnCGNXIVF
vslWPQX+1K9gR0HQg68GjEI0QxvSiMzcu6wcHjGkvKgEYygNoAOoYp+8tt37qEzHs97am5BkXwAU
rGDHih5r2dyxFCe4uRSCLfrFZ2S2OMbp1U62ytT1sFnRT9cYH2zgYcL6V5DZi9qE33l35XbLCwlM
W1gkg1OzjORSeN+FcB4qZcqNvw0bq2YGUC8Bp7GLlF6gZXr4v5JRyiCAhBZ25ezKAVuVG8TYjdOg
U/rScFmGdn6L3jPoC+zQ5aDinfbR4Pej51SZXaV045guPQO+JYY2/ScSPVDpy0KlnfGEUdwLLsWi
ZsbYGn0mJJKluC4j4PCKDwOVPZ3qqCWScxahojnvjk4Y0Rm6n8j412q0Kk4jk8e2j1KPrltQz/0t
YV/lONrK7WGR0B0x+9h6PGiaFCDdg5g0O2TxJwq1oGhBrdrzq09zTHZQpI6YtifCmgpddtli1KC3
qa1iuVLTJmwnNcF5Ed+9qOjVXtGhAbEjIfOmlbXPFYPZ10rhqjNrHE2TAmVGw1aeNNuIWo7c9FTa
Q988Q6/JnyzXEwaNI/TMryCmq9ntHl6Wk3smtSOac1UbiQ/b42ZzbPcw7jvEcG9LgF2dNcd874qC
u+oM6rP3jiNbd5Krv7iCdqjmkSSp3XZEhkwvX6+5OS9geNFTZaz9qgUTXYcbO1xeD7pEGIoIm6ME
MuziYLkZ15toQs7B1FPvD+90cVIRcY2+26sZgg6dJ7583pLOrU57NbKCrStuSpgukFUzilQz2sNR
ZxkRwjUevX7uCkstO+50oX4NFQLFQEP0SHkpbqoRaGa/kvymRpZdPO9ajjbF1MlF1XJArUaCq+32
3SLRFpGR48BXaWOhAT0OkSonGnRh276epq/Os1EJWZXX647jd0wf5wmPrQ95KVW9qKdfxErNJHYK
8JKALsBgQ2dInSz1LtDD3KfEnBRapt2A/soGyT0Jc5GRtlAT3iNFqibLDxYToGxU8CcIOHQCKYK1
timiMlBNUGXHeGK7+KoVse+uOqhGVv0/aJKo+6TT7vEziuGWZQxTARLu8t3BKNCHcYEewffgAdLi
lfpN74Dq/GEwMi3T/uOHY/+OGJytVqtaSp9Nb1e3k9vO+gTNZTeK1+t1l9Zzkm2hQjWCb9u0lmQA
j6BpI/PXs+lgautWzAgq/q7bA3cVUCP62pQqkTeh/er2RsQF3UJMi/jtaSrlVszDEH1Bu2DD+QYW
balQ0NVjIaORCL/8VpLiORwG4+DSvgTQWgZfxOkS9tX7Lb3mzjHHxFcxJE8g91eItArm2/G0tgSU
sh8KI46f4QfyAfRGQrw9dzcB9b0wHS7DTxBPqFnhCkkUrj/fhZ9J9BOV9ue6pAyHvwLvIkFCQAq4
05cEKixc30smRUgwQCPfhHBFIPsH4o+uBtPxeOJDJ+JDC1MiFsidBMWGTX1qn4POD2f0Nb1vXF3f
PXNDaYmou4vX/Oyzl4OakjtBfe/fNxPnyyE4EeaXDSlI77rMt3kktotOQeDp8+V69e7+3ccfvNX6
/fqH7+/XgOKUlwxfE8jdtfHXu3z184dfUb4h80L97WlNBh5PvNW7T963G7nwrn9e/c08/Xj/4b15
OsNQ1swtg3uj14tbbQEZ4Kb/lLMu/yvOAu75BOhe0YbD5p87hz9ySRModQo/bRv1T93SWjKfL+30
oT9ehzuRwj0Ov4i7F304eoUPh/+a+25Shaw73TSr6v25b+aYE/8968avsO7y/9a6ySusG/0Prftn
EqD1o4kDqrX+Z6d/AFBLAwQUAAIACACPoTNKLBZefR4CAAB3DgAALgAcAGVkaXRpbmcvZGVsZXRp
bmcvZGVsZXRlLTM2MDg0NjItZml4LWFjdHVhbC50eHRVVAkAAy2OgVgtjoFYdXgLAAEE9QEAAAQU
AAAA7VRdb9owFH3nV1zBSyvlwU5cSPMwCZbAIgGdAHWapj2ExCnWgl0lZoSi/fc5X4zBaCmrJjSR
hzhyzjm+5/jaju1O3GEPbKfv9NoTx4Ilnd4zurRZ8H7m8Qc6phH1JRPc+nToz1BIFjLfy75rzkXx
onhRPDvFZCYWUWArtKT23WCUca04e0MYizkYIEJoSJpKeAfjj+2hGmz3Xr07d/ZnNXyYDPpqaATC
X8wplyAFkNeS/pPt2BP6y/D1U8I3LuG/Sfj4lPD1S/hvEj46JXx8luEXVrc5NPiT5fzSfNUNeyT4
Hy7mhSHjTK6s4XgTT7ucs8WSJzKm3hwSyaKoBPAHq9vuj50zbNvIW9EYPAlXSEPXkLAnCiZCaROh
GsCI8oDGGfsA5Bh6JxL+N1hnQf44CN2ARbCCdZZ9gTU1s8S2TJLemCTH7kirDdtVztA6acKXqYgV
0IIr/TGFREQsgEa3i9Rz/bXUqtRcHjFOYZ21wa4eNlGKjdaGUXEm2Ulc5weyoGCi3d5UJJzq5hYF
ID+48YJvQ5cskDOFtaDu1fcWcOeeaui1O+gV+jrRMKlMtlKMjCNqQuhXUaT1fFEltqiKtFRVXG3/
fmGdkdqn0W5OKEUvWlC+sW5UHprHebhFmo4q4xiRZ01U4DJaRJQL8AX3KftOg3rthbV+t+N7MZUW
PIqEZUemuLf9GYsCdWsUrjYTuOqe7Zm8PdXEVPV27SdQSwMEFAACAAgAj6EzSsPhH0oAAQAAxAIA
ACwAHABlZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS0zNjA4NDYyLWZpeC1kaWZmLnR4dFVUCQADLY6B
WC2OgVh1eAsAAQT1AQAABBQAAADVUE1Lw0AQvfdXDHhM122NFslBYtxQg/2ANiR43CaTdGGblews
jf/eRAU/KHoTvMwbZh7vvRnGGPDMaHdAy4UkyeN8y3PcPSh6h8gpXfINapQWuZbPxhEjtMRatE6T
5VgqUk3Ny57z0SDzZ5Pry9kFq1THsHvCgrA8p45Gnuf9jassyEn96hmGwKbjK/CmYx/CcMRikaTJ
ag4iXsTz2zQOwO6N02WEtWriN/GkEevlRjY1Bu1QoWrNASZgKhBJBjcQrcVjD/fpctHDWWmK/qaG
gAz4v7JOZTjiLlN4FOpLjiA/OV4ZUpUqJCnTjOAnsbv9EH/bf6gYyJ/0vm3+oeQLUEsDBBQAAgAI
AI+hM0p/A4MDQQIAAEYPAAAwABwAZWRpdGluZy9kZWxldGluZy9kZWxldGUtMzYwODQ2Mi1maXgt
ZXhwZWN0ZWQudHh0VVQJAAMtjoFYLY6BWHV4CwABBPUBAAAEFAAAAO1WTY/aMBC98ytGcNmVONjB
C9kcKkETaCRgK0BbVVUPITFgNdirxJSwUf97nS/KAgssXVWoIodYmrx5nvc8HsUy7ZHd74Bpda1O
c2QZEM7EwvdadMq45THJ+NTm5kNv4PApNYLkDZNAzAGBmIBpP8IHaD2YX9XyadTrqqXiCXcxp1yC
FFA7iipZOyUs6fiR0aXJXpRhfNkb7gvJJsx1JBP8INfHWVL8kPrUTbAbdFtfroxXxivjhTNmY8pU
aEn3jad08FQkjaQaNsPPzb5ajk4r8tak/+Q4doj+0nztHPNrV/PfxXx8jvna1fx3MR+dYz6+SPMz
qZs51NsnOR2ab5qwJ4L/4WbOZMI4kyujP1zb08xjpljyUAbUmUMome/nAPVD2m52h9YFtq3vrGgA
joQbVEW3ELJnCjpCUR2hEsCAco8GSfYrkFPSW75wf0CcGPnrVegaLLwVxIn3GVav6jm2oZPoTicp
dotaHdg2c4LWSB2+jUWggAbcaE8RhMJnHlTabaSe2+85V8Fmc59xCnHSBtt8WEcRrjXWGUXOKLmJ
cXohsxRMqvd3RRKONH0jBSC9uMGCb0KXzJMzhTWg7JR3NrDnjmro2O51Mn6NVDEpRDYijGon1ITQ
n6JI43BROTarijRUVVwd/25hrYE6p8G2TyhCRyUo3VirFRrqp2m4R1UNFcIxIgdFFODcWkSUCnAF
dyn7Sb1y6cheL+W4TkClAU8iZMmVyea2O2O+p6ZGpmodwEX3bEbS9lSBsert0m9QSwMEFAACAAgA
j6EzSmedIfrbBwAAfhoAADQAHABlZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS0zNjA4NDYyLWZpeC1w
cmV0dHktZGlmZi5odG1sVVQJAAMtjoFYLY6BWHV4CwABBPUBAAAEFAAAANVZa2/jNhb9nl8hJGgD
FJFkx3bWjxkvmthpB52ZFk0wg/20oCTK4oQSXZJKnGn73/fyJUuy5GRfWGwHHUvkJXkf595zqXmT
yZwuT95kGCXwk2OJvDhDXGD59ryUqT89h2EhnylenswpKR4uvPkjEUTixPv9xIP/JN5JP8Ex40gS
Vsy9ghV4oacixhPM/YhJyfK5N9zuvASecbI4+fPEbGc3iRllfO6dDUYzPRfcEopXJE3tfITihw1n
ZZH4TjSdqj/1g8wJglGSeGdJkpi5lBXST1FO6PPcy1nBxBbFVsEc8Q0BlYc49wZmaMvAOG0HxxQs
esRaoWzY0nQ0GnXsL1AhfIE5SWuTgnzF+oz6oT7FqZx7g2DixhMithTBJqQAz1gNn0giM1g8GHxj
9UNJQopNtdLoZkOjnprRseqSIgOlZCWesUfMWxZNJpNFn7MxNm4IVEzew1nCLk4pQ2AGJ5tMNiOn
pG7AfAS2uKMYuJ5IMHHQMlmiiGI/xpQ2rPT1vg0vPWVgna9jqKD2xNF2r9kdjlXsekGjFzch04aL
xazzOwBqsN2ZE9a7LYQX9gfT8IUXqJ+2hb3qCZLg6Fn97WlVrymLH35BXAZg6jwlXEg/zghNeh2r
jruD9RfHNuM4h9BevHCePcO53wDOj5RIA3YThzpAiyQxoj6iZAO5IVmHWRwrpP+IioRi5w67j3Kh
es+wCegez3HJhQqNUrudgSiC6JQuYnBmBRyTPFq9Y1o0cH4Ihw3Hz4sWMIPJS/EyLvYCyV50c5By
lrecbeujOkN5/WOZR5gDmnAdXWbUKX5YRi1qZ7NGAXTp0lUGXSaPx+POclOPflVj1EYTkwImDaqC
b3Fg4dkFEaNuA04jW7BqhmsTOwuOIYletxwpUluuslOpaR3oqolFjTOkkauwyDfZqqfAn/oV7OAY
PfhqwChEcrTBjcjMvcvK4RFFyotKMIbSADqAKvbJa9u9j8p0POutvSlO9wVAwQp2rOixls0dS5M0
aS6FYIt+8RmeLY5xerWTrTJ1PWxW9NN1khxs4CWY9q/Asxe1Cb/z7srtlnEJTMstksGpeY4LKbzv
QjgPlTJjxt+GjVUzA6iXgNPYRUov0DI9/F/JKGUQQEILu3J25YCtyg2i9MZp0Cl9abgsRzu/Re85
9AV26HJQ8U77aPD70XOqzK5SunFMl54B22JDm/4Tjh6I9CVXaWc8YRT3gkuxqJkxtkafCYlkKa7L
CDi84sNAZU+nOmqJZIxGiDfn3dEpxTpD9xM5+1qNVsVpZPLY9lHq0XUL6rm/JeyrHEdbuT0sUrLD
Zh9bjwdNkwKkexCTZocs/kSgFvAW1Ko9v/qkSPAOitQR0/ZEWFOhyy5bjBr0NrVVrFBq2oTtpCY4
L2K7FxW92is6NCB2JGTetLL2uWIw+1opXHVmjaNJylFuNGzlSbONqOXITU+lPfTNM/Sa7MlyPabQ
OELP/Apiuprd7uFlOblnUjuiOVe1kclhe9xsju0exn2HGO5tCRJXZ80x37ui4K46g/rsvePI1p3k
6i+uoB2qeSRJarcdkSPTy9drbsE4DC96qoy1X7VgoutwY4fL60GXCEURpnOUQoZdHCw343oTTcgF
mHrq/eGdLk4qIq7Rd3s1RdChs9SXz1vcudVpr0ZWsHXFzTDVBbJqRpFqRns46izHQrjGo9fPXWGp
ZcedLtSvoUKgGGiIHgkrxU01As3sV1zc1Miyi+ddy9GmmDq5qFoOqNVIcLXdvlsk2iIychz4Km0s
NKDHwVLlRIMubNvX0/TVeTYqIauKet1x/J6Qx3nKYutDVkpVL+rpF9FSM4mdArykoAsw2NAZUidL
vQv0MPcZNieFlmk3oL+yQTJPwlxkpC3UhPdIkKrJ8oPFBCgbcfYEAYdOIEOw1jZFRAaqCarsGE9s
F1+1IvbdVQfVyKr/B00SdZ902j1+ThK4ZRnDVICEu3x3MAr0YUygR/A9eAC3eKV+0zugOn8YjEzL
tP/44di/IwZnq9WqltJn09vV7eS2sz5Bc9mN4vV63aX1HOdbqFCN4Ns2rSUZwCNo2sj89Ww6mNq6
FVOM+N91e+CuAmpEX5syJfImtF/d3oiYky3ElMdvTzMpt2IehugL2gUbxjawaEuEgq4eCymJRPjl
txLz53AYjINL+xJAaxl8EadL2Ffvt/SaO8cswb6KIX4Cub9CpFUw346ntSWglP1QGLHkGX4gH0Bv
JMTbc3cTUN8Ls+Ey/ATxhJoVrpBE4frzXfgZRz8RaX+uS0KT8FfgXSRwCEgBd/oSQ4WF63tJpQhx
AtAoNiFcEfD+Afujq8F0fHXpQyfiQwtTIhrInQTFhk19ap+Dzg9n9DW9b1xd3z1zQ2mJqLuL1/zs
s5eDmlI4QX3v3zcT58shOBHmlw0pSO+6zLdFJLaLTkHg6fPlevXu/t3HH7zV+v36h+/v14DijJU0
ucaQu2vjr3fF6ucPv6Jig+dc/e1pTQYeS73Vu0/etxu58K5/Xv3NPP14/+G9eTpLoKyZWwbzRq8X
t9oCMsBN/ylnXf5XnAXc8wnQvSINh80/dw5/ZJKkUOoUfto26p+6pbVkPl/a6UN/vA53IoN7XPIi
7l704egVPhz+a+67yRSy7nTTrKr3576ZY07896wbv8K6y/9b6yavsG70P7Tun0mA1o8mDqjW+p+d
/gFQSwMEFAACAAgAj6EzSuWbmgRwAQAAIwYAAC4AHABlZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS0z
Nzc1MTcyLWZpeC1hY3R1YWwudHh0VVQJAAMtjoFYLY6BWHV4CwABBPUBAAAEFAAAAN2TUU/CMBSF
3/kVN+EFEh5KgrrswQTsxCUwzLZgfCxbB41da7YSmIv/3RUmymBKItHEl61dv3N6d25rYdu3nSFg
a2QN+75lworOpoyuMAtvFkTMqUc5DRSTwnyoW3GkYhELiB43rAPHdCGXfE9DQzwZu3puJvoJUSJj
QCAjGEzwI1zDnT8eFa9mKINlTIUCJb9bP2bZ1ZKmomtVwF9Yn8SRKGKCqcx0vN2v98tvWK5EqhJK
YkgV47wExNy87Y8860gq58+56nhgdFKfcLGborX9OVOYvxLIHx68H1n+r4PGSUYTIApaqIPakLIX
CgZC60uEGgAuFSFNtLoGOUU+4DJ4glwH+VqL7mAZZpDr7Les0TFK9srorS+M3obdt24RIUUWy2Xa
rvhrTdcoJTuRW2zgVktBH+Be2dievqPdz6WgiqstOBMUcu++7xx6V2lf3798cw2PwQFJqDLhWaZM
d2l7IIMF42Ex3BRfzGdFVI03UEsDBBQAAgAIAI+hM0rvfHxpNwEAAHwDAAAsABwAZWRpdGluZy9k
ZWxldGluZy9kZWxldGUtMzc3NTE3Mi1maXgtZGlmZi50eHRVVAkAAy2OgVgujoFYdXgLAAEE9QEA
AAQUAAAAvVFdT8IwFH3nV9zEx1HrREKyBzOwE4l8JIxAfCzbHTQprVnvwvj3bkIUDQFjoi+9zT3n
ntN7yhgDPre62KDjQpLk0SLmC1w+KzqUXqF0yqeoUTrkWu5sQYzQEcvRFZocx1SRMiueVpzPC7JW
p9P2O7csUyXD8hUTwvSaSmp4nvc/rjKhQup3zzAE5jfb4PnNFoRhg0ViMBuM+yCiYdTvzqIA3NoW
Ou3hSploLz4wYjKaSrPCIK9PyHK7gRuwGfQm4gXu4Wk2GlblKrVJtY0hIAt3Z/BTvltczhVuhfri
HSxOtseWVKYSScqaBpwTe1jXT46rVJKafKT3Dbkkuc/leAjT3+RyAT8l6dcjV4QlVeQz0j/iySxT
RtEuGMcfu3cPPWG3xlGOcgOOlNYHQvUNj91hHP1F0m9QSwMEFAACAAgAj6EzSncJhlWIAQAA5gYA
ADAAHABlZGl0aW5nL2RlbGV0aW5nL2RlbGV0ZS0zNzc1MTcyLWZpeC1leHBlY3RlZC50eHRVVAkA
Ay2OgVgtjoFYdXgLAAEE9QEAAAQUAAAA3ZNLb4JAFIX3/oqbdKOJizGxLWHRBAu1JIoNEpsuES46
Kcw0MEYp6X/vjFKr+EzbdOGG13zn3Mu5M5Zpe7bTBdPqWV3Ds3TIpnwWhx2cUGaFVFA2sZk56Ls+
m6CeqitEKU+AAI+gMzBf4A4evX5P3q5CHswSZAIEh/aR9Zq1U3aO4xHFuUm3SuvPez87XNCIBr6g
nB31up+qhocYY6DYDbvKygnHVSibGgx/EsqJ9X2WLSW5ErgQEj5ifRbnRxFlVOS6M1z/ulF+M/mc
ZSJFP4FM0DguATmEB6M3tP4l56rjjtFZczJlNYEH5/NHYV76xvuV5WVttNjPMQVfQJ00SQMy+o6g
EbK4IaQG4CILMVXqA8g58k7Mg1coVJAfB9E1zMMcCpX9itWaWsneau3FtdZestvWdZ9xlid8ljUq
/krT0krJWuTKAm61FfINbrVt2qMvtLXZCqm42iymDKEYPhnOrneV9tT5K5bHcB8c+CkKHd54RtWU
VhsymNI4lI/L5uX7WEZV+wRQSwMECgAAAAAAj6EzSgAAAAAAAAAAAAAAABQAHABlZGl0aW5nL2V4
ZWNDb21tYW5kL1VUCQADLY6BWFmOgVh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAjqEzSiuHNvST
AAAAEgEAACQAHABlZGl0aW5nL2V4ZWNDb21tYW5kLzE2MDQ5LWFjdHVhbC50eHRVVAkAAyuOgVgr
joFYdXgLAAEE9QEAAAQUAAAAjY7BDcIwDEXvneIvQIcAiQm6QJq4JCLYxXEp3R731AtIXHywnv57
Qy4NRs38ChoRyoRziPeLVFHEwBgJM+kk+qAEYQT/KpnDlaIV4R5DJh95G2ybHQqTka6iCS3LUhNy
eDngENOK0ddvKgsnxF3Sd103fMu4itKPjLJnzDUU3rUn4bpB6fZXDIsdQUrPxbV0tHwAUEsDBBQA
AgAIAI6hM0rahsEaKQEAAEECAAAiABwAZWRpdGluZy9leGVjQ29tbWFuZC8xNjA0OS1kaWZmLnR4
dFVUCQADK46BWCuOgVh1eAsAAQT1AQAABBQAAAC1j8FOwzAQRO/5ilVPoNR1iygSUKooBS7cANGz
E29TC8cb7DVN/h6nQuqpEhckay15xzPzhBAgP8jGFoN8VKzk0/ZNbrF6Mfx7ldFYLV/RogoorRoo
smAMLDyGaDlI1IaNayT2WG+obZXTcnEzv74V2HdYM+oZ95zlef6fWarmqOwxqShALKZLyMdRFBm8
702A0SdNgoAIZgelqj83ZMlDrRxUCB36HfkWNZADlV49chLbhGDIzZILJpOegYcuidSO0R/Iawh7
ilbDXn0nQRI5PECV3BtP0Wmox5BZJlahS0GBB4sPk9NeHPd34JvqYj6FdK6Wy8v7ybq0EVdy/LTO
8gzOYDyTxzMYZsTorDJurC3I2QE8Nn+CccQnII9fMcXiiaW0qX9q9QNQSwMEFAACAAgAjqEzSnjX
u2bGAAAAUgEAACYAHABlZGl0aW5nL2V4ZWNDb21tYW5kLzE2MDQ5LWV4cGVjdGVkLnR4dFVUCQAD
K46BWCuOgVh1eAsAAQT1AQAABBQAAACNj01uwkAMhfc5xRMrkMqPkNi0lEWQOEEuMEmcZNTpOHgc
ILfHYVE2RUKyvPB79vNXdD5BKal1RiKCb5C76ufIgQWViygJPUnD8ks1OMLZVEjNHKhSz3GFoiM7
clPo2JvJNUpyZamROh5Cjc5dzGCmSFeUdr0VHmKNagpZZfvUW07SMdD37CkvH/InpC3nmw9YbXe7
xdfskIeB9utp6ZBlxX8EJxZ6QeAngj44H6ePlxzDCKH2LY7I+mQROg8WS38YebDXsztQSwMEFAAC
AAgAjqEzSrQW3HsdCAAAYRwAACoAHABlZGl0aW5nL2V4ZWNDb21tYW5kLzE2MDQ5LXByZXR0eS1k
aWZmLmh0bWxVVAkAAyuOgVgrjoFYdXgLAAEE9QEAAAQUAAAA1Vltb+u2Ff6eXyEk2M1aRJId21ls
Jx6WNxToOgzLxfpxoCTK4g0lqiQV23ftf9/hmyzJkp1i3YD2trVEHpLn9XkOde8ymdPV2V2GUQI/
OZbIizPEBZb3l5VM/dtLGBZyR/HqbEFJ8XblLd6JIBIn3r/PPPhH4q30ExwzjiRhxcIrWIGXeipi
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
/PcUQw/gCdRPDyBeoGtHW1gTadMVxcMbd1EhIcwjmRxzaTA2azhrRcTQL7hnVuLG6tS1yAWWiQOv
OhF7p6JBXY1WVOAV0TjyNEPLrjaL1ZhQBF0S61jE0UnFKIa79jH9BXBifVj+BC1n3auyRjirYojV
+xnQ8rwmasjRH/ntr1cvbFKZdj7xDWEqFoeR22C1M8xSSdvgvgVs+uLHHLNw4Ze2egNQSwMEFAAC
AAgAj6EzSlW/7lbZAAAAhwEAACYAHABlZGl0aW5nL2V4ZWNDb21tYW5kLzQ3ODY0MDQtMi1kaWZm
LnR4dFVUCQADLY6BWC6OgVh1eAsAAQT1AQAABBQAAAC1Tk1PwzAMvfdXRNkxM0FVGTt0VcXHiRtI
7OwmHouUJqhxUEH8eNINJPgBSLb8rPeenwFA6Ofo80hJ3yGjvt8/6T0ND46/x0123upH8oSJtMf3
mBmYEsNEKXtOmqxjF140zWRu4zhisLq53m6aywZqoPmVDJO94JkrpdR/56HhjP6U1vcC6vWVUPV6
I/q+Ep+ite6tW4AQJgamUuUaDp52kqdM8sw5u5NFKStYNtmuUvnHsIsBMJhjnLpDjD+sGHAq/fFb
dYgmp05WalG0uTuDIj751B+frL4AUEsDBBQAAgAIAI+hM0ou4GaTvQAAADMBAAAqABwAZWRpdGlu
Zy9leGVjQ29tbWFuZC80Nzg2NDA0LTItZXhwZWN0ZWQudHh0VVQJAAMtjoFYLY6BWHV4CwABBPUB
AAAEFAAAAE2O0W3DMAxE/zPFQfluJkj82QGKLkBbdCTAIQuKctCiw5dxmrQABeL4jjq+l9rg3Lxh
VgNh7GdcCxvjgy1GlypneGG88UVXxmuMyKFByasKogiNF5426SVoczLnjCroktmWKqEmFWdxXLUv
+Q+AV7ZPL7eg+7fhVTkgzaoYyeJ9JbSyrYk6CsUhz/3D7hvHXNchOh4hnKvTuPApuXVOG6r5lMJ3
F+m4fx79QjIVtSHyfuEj9r9p1qm3Ie1+AFBLAwQKAAAAAACPoTNKAAAAAAAAAAAAAAAADgAcAGVk
aXRpbmcvaW5wdXQvVVQJAAMtjoFYWY6BWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACOoTNKF6Op
4XEUAAB9PAAAMgAcAGVkaXRpbmcvaW5wdXQvY29tcG9zaXRpb24tdW5kZXJsaW5lLXJ0bC1hY3R1
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
DyIFUkRSkr/L5L6XkKxLlsyD2vNE1uy2npoxljAzcwFdueQsbrQu86sITIgk3qAHvoskFrQGdlwR
4bLu11q8Wp/KxDKxffcKhSNdnD9XjrHIlp86ywMfR1zLdIKi1jzVrwWa5w+rDdsn1GhnCgi8xJqM
G2ZeYMSdaCiYZyRXwis/a9SLRrlMUtJihrQglx5sjuWbm61YqsanbO+Q5ZY4CTN4HANxsMEni65W
dNr/+dEbxEIcyObWlDydKHfxoc9cAGLHe4TDmEPNpZDY0ZLk/E6v1sgLSbp/578lOln3PqyYfNIv
trlt1r4nDl5KL5vN6fNM94kkx503w06jbITSzG61MQoUs5JeUO/sGdY4f9bv3ZWee/mde0IIdBb/
X402weLtABjrgZrvCjonbpw/FAzI1NXIyFAuGbU7BCVZ9h+HtMyf6Ned8QMXg/8AFtKesXs5B7m4
KXnexsi3c6fX6DWmPLcOqBtnS+Ls9gKbZtmH3P6IWypLXpuoTuCilP3jsl51STpW6Srluh+HxDkP
pRCSUE5if3GaBTOco+LXo86b48+NqqyUla3WTM//pWjfZrTp65lmTJ6RN0PZWtSB7iGX6GgW+KsW
FUJ73eF1UwhPWUfjvfcH06OQc1xVByZpfNOXXlhoVpu1Qv9OcjRjxV4Iz5wSljmN2Aff/+mrxtf9
4PcE59TF3Bn3Lw2yo3surf9xTynsK0lTqtYb2JOdX7Xi7qVqne1+9N1X/TEr09Ta3J//zzqmqedt
Zr5q6NV+s9507sH2LV9meemuN713+/BXC89pa7sfeZz+1azzaokGR4OjwdHgaHA0OBocDY4GR4Oj
wdHgaHA0OBocDY4GR4OjwdHgaHA0OBocDY4GR4OjwdHgaHA0OBocDY4GR4OjwdHgaHA0OBqc/weO
3GUSl2mlMxwzqKX+nTwBO15x7NKv/wVQSwMEFAACAAgAjqEzSpv1G2TYBwAAAQ8AADAAHABlZGl0
aW5nL2lucHV0L2NvbXBvc2l0aW9uLXVuZGVybGluZS1ydGwtZGlmZi5wbmdVVAkAAyuOgVgrjoFY
dXgLAAEE9QEAAAQUAAAA7ZdpUNKNFsb/IhYqIKYtagq+r2vmWIlbomKu5Noikkvmi7nlTq6VQrlU
RpKFKaY4dc1bWGpmaomWZQaKZGZoqLyvS+6ipJUbXu/9cmfu53s/3Bm//eaZ5zwz58M5Z841b08X
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
DH6JflV2JMD/QIypZ++Dmo35x7PUh+QECMLnm7sKnjXB7WJx4n36TF2Sx9/oSELuTPjioyj1G1BL
AwQUAAIACACOoTNK79B5SW0BAAAVAwAAPwAcAGVkaXRpbmcvaW5wdXQvZWRpdGFibGUtY29udGFp
bmVyLXdpdGgtd29yZC13cmFwLW5vcm1hbC1kaWZmLnR4dFVUCQADLI6BWCyOgVh1eAsAAQT1AQAA
BBQAAADFkcGOEzEMQO/zFT5SDZkBBFr1gNSldCVEEdVORc+ejLsTyZtUsaNp/55kusvCgSPikshx
4vccG2Og/RE4PZK0n1Gx3Ry69kD9V6dP26fkeGjviQmFWsZLSGqURE0kSazS0uDU+YfW+VPSOcKe
ydjgFZ2naCano5lCHMwU8WR8iI/Ihs4nskpDo2et6rr+byJoNSHPGqsVmOXrG6jLslpVcOc8MliM
pBCzLjjJEdvEmNWhv8AxMIcpYyFzRGMmqVTwdgGdjTl3cIOO8BGUzlquKHmFaT6snwrPUQXvFrD+
A4Q84UWgWDsPv9qAPiQ/FGIfzvBKxyQgqS9sW/oHHQlkhgPTUReV2d12HYhi1JlwnwFNSWWF529a
P5dv5Ddv89f8tjw31w6ud7PxsXzXCyK6hzHP9u72y/af02UMifNECD68uWnggALvl8umgmvvyVoS
OSbmyw6j5NllXY2JKqhgv+n2sP7+bbfd7DfVT1BLAwQUAAIACACOoTNKVHn04LQBAAAuAwAAQwAc
AGVkaXRpbmcvaW5wdXQvZWRpdGFibGUtY29udGFpbmVyLXdpdGgtd29yZC13cmFwLW5vcm1hbC1l
eHBlY3RlZC50eHRVVAkAAyyOgVgsjoFYdXgLAAEE9QEAAAQUAAAAfZJdb9MwFIbv8yuOerWKNQWE
EJsEEqrK1dAqGmnXjnOSWHPsyD6el3/PsV0CRYI7f74fj92gJyk8Qm8dtGGAkWi+3+9jjHXE9llR
bd2wb/ef7j5+uKuhGRGI70C+JEeUzx5Uz1OHBMpD50Q0MDs7o9PLDfoZpRJaL+Cls1r7dW8LynjV
IQjATpFoNQtaQ0IZdDCKF2UGiNZ1u+jEfG+sm4Suq+rRgA9Sove3sNgAUWkNHpOOR6fQg+1hc/p6
Pm9g4lNiQD7Zs7eN2EG7wKY5nhs4PH4/PRyb44Y1GwuTMCHnTPVuYbIv3JTblmZk8wRNl9TTUHPM
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
9OD8rQAAAAEBAAA1ABwAZWRpdGluZy9pbnB1dC9pbWUtY29tcG9zaXRpb24tY2xlYXJwcmVlZGl0
LWFjdHVhbC50eHRVVAkAAyyOgVgsjoFYdXgLAAEE9QEAAAQUAAAATY5BCsJADEX3c4rs3PQSUkcQ
FMXWA6ROtIE0UzrTorc3TBXcBPL/+/lpe06QKWWbPWa4C+HE+gQ09WV7HMaYCEKkpJsMZi9kKP2c
sHId9SwBWItXpAeTBOfaWO7DgDqjyLsCUuyEABUOJ19ZZpytqMcJ75mmVK1P/JcYGyARAT+KvEZK
AUSVt3GakTV9Xc6MAgvKTM65/fZw9Duoz6fLufGuudW1bxqoj357dR9QSwMEFAACAAgAjqEzSlR/
mcvuAAAAvQEAADMAHABlZGl0aW5nL2lucHV0L2ltZS1jb21wb3NpdGlvbi1jbGVhcnByZWVkaXQt
ZGlmZi50eHRVVAkAAyyOgVgsjoFYdXgLAAEE9QEAAAQUAAAAvY7BbsIwDIbvfQrf2yyHafeykklo
ICa6jbNpzIjkJlXjTPTtlxbEI0yWbNn+/P9WSoH+Dpx6inqNgtocW32k07uTe3lNjq0+EBNG0oxT
SKKEoqiRYmKJmqwT53+080MS7XpSXeiHEPM0eNXlw3EYaaYUXQfqhOyTXKUoy/JfzbGThLxY1zWo
5+oFyjnVdQGfAWZZ6NFnhqcKyOOJCdDDZmcqWPShu+CYZWiMFSzaIBeCm+PMWohE4M7L+HZydsQW
gucpc17Q+Xjf5heR4Rc5UQE5VPvVNKZtodnvPvatKcq31WZr1o8eHsDWrA7FH1BLAwQUAAIACACO
oTNK4Z1NI6gAAAACAQAANwAcAGVkaXRpbmcvaW5wdXQvaW1lLWNvbXBvc2l0aW9uLWNsZWFycHJl
ZWRpdC1leHBlY3RlZC50eHRVVAkAAyyOgVgsjoFYdXgLAAEE9QEAAAQUAAAATY5BCgIxDEX3PUV2
buYSMnQhKIrVA2RstIGYyrQz6O0NHUU3gf//S35OiQtUKtVmwgoXIRxZb4DmPk3n+yMXgpip6KqC
xTMZSt8kLtxAiSUCa8uadWWS6Nwpt/twR51Q5NUBKQ5CgAqbne9s5zFZUcIRL5XG0i1P/JcYG6EQ
AV+bvay0AsgqL+O0Imv5pFwZBWaUiZxz4dz3PgTo97vDPvif3vr10b0BUEsDBBQAAgAIAI6hM0pA
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
fS+pFCFOABrFJlTJzPXT+PK76dVs6kPjUiIayJ0EdYZNLWofgc4PZ/TlvG9cXdo9cy9piagbi9f8
2LOXg0pSOEF929+3EOfLIbgO5pcNKUjqusw3RSS2i05BYOfz5Xr17v7dxx+81fr9+ofv79eA3YyV
NLnGkLFr46V3xeqnDz+jYoPnXP3taU0GHku91btP3jcbufCuf1r9wzz9eP/hvXk6S6CYmbsF80av
F7faAh7ATf8rZ13+Ic4CxvkEmF6RhsPmnzuHPzJJUihwCj9tG/VP3dJaCp8v7fShP16HO5HB7S15
EXcv+nD0Ch8Of5/7bjKFrDvdKqua/blv5pgT/zvrxq+w7vL/1rrJK6wb/YnW/ZYEaP1ouoBqrf+x
6VdQSwMECgACAAAAjqEzSk/TucUFAAAABQAAACYAHABlZGl0aW5nL2luc2VydGluZy81Njg1NjAx
LTEtYWN0dWFsLnR4dFVUCQADLI6BWCyOgVh1eAsAAQT1AQAABBQAAAA8YnI+ClBLAwQUAAIACACO
oTNKpzNpdokAAAD+AAAAJAAcAGVkaXRpbmcvaW5zZXJ0aW5nLzU2ODU2MDEtMS1kaWZmLnR4dFVU
CQADLI6BWCyOgVh1eAsAAQT1AQAABBQAAAC1jbEKwjAQQPd8RfZwnhlaHEoJopObgp3T5pCD2Epy
kfj30uIvOL3HWx4AaLwvsTwp48mLx/Nww4HGC8sPx8Ix4JUi+UwY/WcpAkJZIFEuUTJSYOH5gTxn
Sps17aFp9xYsUH3RJBR2UkUZY/5785MUH7eXcxqsNlY7p6AbU98Ffve1wxXKrEV9AVBLAwQUAAIA
CACOoTNKYtilqBAAAAARAAAAKAAcAGVkaXRpbmcvaW5zZXJ0aW5nLzU2ODU2MDEtMS1leHBlY3Rl
ZC50eHRVVAkAAyyOgVgsjoFYdXgLAAEE9QEAAAQUAAAAs0kqsrNJySyzq7DRB1FcAFBLAwQUAAIA
CACOoTNKBUCdS1AHAADwFgAALAAcAGVkaXRpbmcvaW5zZXJ0aW5nLzU2ODU2MDEtMS1wcmV0dHkt
ZGlmZi5odG1sVVQJAAMsjoFYLI6BWHV4CwABBPUBAAAEFAAAAI1YWW/jNhB+z68QEnQDLCLJju3U
R9ZFNwcK9EDRLLqPBSVRFjeUqJJUbKftf+/wkiVZcrKLXUvkkPxm5puDus1kTtdntxlGCfzkWCIv
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
AGVkaXRpbmcvaW5zZXJ0aW5nLzU2ODU2MDEtMi1hY3R1YWwudHh0VVQJAAMsjoFYLI6BWHV4CwAB
BPUBAAAEFAAAADxicj4KUEsDBBQAAgAIAI6hM0pvO5bHiQAAAAEBAAAkABwAZWRpdGluZy9pbnNl
cnRpbmcvNTY4NTYwMS0yLWRpZmYudHh0VVQJAAMsjoFYLI6BWHV4CwABBPUBAAAEFAAAALXNsQrC
MBCA4T1PkT2cZ4UWh1KC6OSmYOe0OeQgbSW5SH17afAVnP5v+wFA42MJeaKEZycOL/0dexquLL+c
MgePNwrkEmFwnyULCCWBSCkHSUiehecn8pwoFtXNsW72FRyA1heNQn4nqyhjzH9vbpTsQnlZq6HS
ptLWKmiH2LWe310BblJms/oCUEsDBBQAAgAIAI6hM0oUvcgtEQAAABQAAAAoABwAZWRpdGluZy9p
bnNlcnRpbmcvNTY4NTYwMS0yLWV4cGVjdGVkLnR4dFVUCQADLI6BWCyOgVh1eAsAAQT1AQAABBQA
AACzSSqys0nJLLOzATH0QSwuAFBLAwQUAAIACACOoTNKwj+spFEHAAD5FgAALAAcAGVkaXRpbmcv
aW5zZXJ0aW5nLzU2ODU2MDEtMi1wcmV0dHktZGlmZi5odG1sVVQJAAMsjoFYLI6BWHV4CwABBPUB
AAAEFAAAAI1YWW/jNhB+z68QEnQDLCLJju3UR9ZFNwcK9EDRLLqPBSVRFjeUqJJUbKftf+/wkiVZ
crKLXUvkkPxm5puDus1kTtdntxlGCfzkWCIvzhAXWH66rGTqzy9hWMg9xeuzJSXF85W3fCGCSJx4
/5x58EfinfQTHDOOJGHF0itYgVd6KmI8wdyPmJQsX3rjcucl8IyT1dl/Z2Y7u0nMKONL72I0Wei5
4JFQfE/S1M5HKH7ecFYVie9E07n62zzInCAYJYl3kSSJmUtZIf0U5YTul17OCiZKFFuAOeIbApDH
OPdGZqhkoJzWg2MKGr1gDSgbd5BOJpOe/QUqhC8wJ2ljUpBXrM9oHupTnMqlNwpmbjwhoqQINiEF
WMYi3JJEZrB4NPrO4kNJQopNvdJgs65RT23vWLikyACUrMUz9oJ5R6PZbLYaMjbGxgyB8skvcJaw
i1PKEKjBySaTbc8pqTtQH4Eu7igGpicSVBx1VJYootiPMaUtLX29b8tK2wy087UPFdW2HJUHZE84
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
MzzM/K2LZ7Qp3o9tKECDumJ6hvqYf+gbq7OO+Xu3/wFQSwMEFAACAAgAjqEzShj7fku1AAAA/gAA
ADoAHABlZGl0aW5nL21hYy9pbnB1dC9OU0JhY2tncm91bmRDb2xvci10cmFuc3BhcmVudC1hY3R1
YWwudHh0VVQJAAMsjoFYLI6BWHV4CwABBPUBAAAEFAAAAF2OsW7CQBBE+/uK6UgaFKV05yALRQJT
nH9g7VuOA7OH1usE/j4nIijoRqOZp7fatX63abBtvK/XTYUxCePzo0J3u3CjmrXCLIH3pQ9IEyQb
SJD7Iw+GN/6hcSZLErEgM039bBx8CRKXka1+dC2deartu7Cui3fXuY4ngx3ojmt9/XLGXvMZBCWJ
jN9kB1jJ04WUxdDTcIqaixqGPGZFyPwvl2QY58AFzQX79dyt7rOn49I59wdQSwMEFAACAAgAjqEz
St7SbwgtAQAASQIAADgAHABlZGl0aW5nL21hYy9pbnB1dC9OU0JhY2tncm91bmRDb2xvci10cmFu
c3BhcmVudC1kaWZmLnR4dFVUCQADLI6BWCyOgVh1eAsAAQT1AQAABBQAAAC9kMFOAjEQhu/7FHND
s5SK0cueWHBjjArGEj3PboelWlrSnSq8vQWVqNw9zWSS+eb/RggB8snbuKJOXiGjrJ6VfKb61vBX
GUdjtXwkS9iRtLj1kQVTxyJQFy13krRh41q5wkYat44sp2qMzWsbfHR64q0PggO6bo2BHAvarKlh
0gPecJbn+f8nwIYj2v390QjEsH8B+bB/CaNRlk9mUzW7q+C+Uqq8rgqwxhGcnxUw366pCsGHAhKV
FmmuwXTgPAM68PVL0oITekMbcZcHesgcTB2TrEqNawctcfk9m2JyLvkmsTa90yyfZzBPVsBL3AOn
qvyzDovgV4CQVFqCd8NL+KEF9UEZmp0zaE+f8YxrbNSU0ARHr4FDykEGmXgolSrgcLoDbfQvyBEg
bX0AUEsDBBQAAgAIAI6hM0pTGS5udwAAALYAAAA8ABwAZWRpdGluZy9tYWMvaW5wdXQvTlNCYWNr
Z3JvdW5kQ29sb3ItdHJhbnNwYXJlbnQtZXhwZWN0ZWQudHh0VVQJAAMsjoFYLI6BWHV4CwABBPUB
AAAEFAAAAGWNQQ7CMAwE73nFvoAHcCvcEVL4gBubNKLYKHHE9xshUQlxm8Ps7E2awxdykOISJ/da
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
oQ7NWhnLyYDsMZamsf++k9Iu+gXdXHHhoHsQEdxHlDSwumcycs2xdUc+vQT7OY8pSOfeWZiUndAa
k6GxGs6sSUwdd8HCeHYDeRfGKZnzM+kF+zgjD5OtGV8MSYznkSx8MvIysTfutrZYUVXVv0iQt0Ty
rVDXgHebe6huUdcFFLAbQZP3rLqBPAfXIALKDJRzDqwQeyj3D21bQhZXOnMm+ygSr9zBaYXy0LQH
eNq97V+bQ1Nu81e0oHTzLiq7BP0t8IcsvgBQSwMEFAACAAgAjqEzSirAH9SDAAAAqgAAAD8AHABl
ZGl0aW5nL21hYy9pbnB1dC9jcmFzaC1mb3ItZW1wdHktdGV4dC1hbHRlcm5hdGl2ZS1leHBlY3Rl
ZC50eHRVVAkAAyyOgVgsjoFYdXgLAAEE9QEAAAQUAAAAVctBDoIwFIThfU8x6dp4B2O602ACF6gw
SJPSZ/oeIre3W5eT/5tQdKuELdEQwfVtB4zfNrKxlmjpQ0xCRRFDZpxg0uRYoy7OdQW6jSNVTzhk
w55yhpJNKGtqN5nhH5e+91ibii82OUvOsnPC84AfQj/g2t0ftzAEf3bOkkajmvsr7gdQSwMEFAAC
AAgAj6EzSh5VnMneBwAAbhoAAEMAHABlZGl0aW5nL21hYy9pbnB1dC9jcmFzaC1mb3ItZW1wdHkt
dGV4dC1hbHRlcm5hdGl2ZS1wcmV0dHktZGlmZi5odG1sVVQJAAMtjoFYLY6BWHV4CwABBPUBAAAE
FAAAAK1Z3W7jNha+z1MICbYBikiyYzsb2xkvOomDAttuB5tge7mgJMrihBJVkkrs2d1338M/WZIl
20Cng45k8pD8zu93qHnIZE5XFw8ZRgk8ciyRF2eICyw/XVcy9e+vYVjIHcWriwUlxduNt3gngkic
eP+58OA/ibfST3DMOJKEFQuvYAVe6qmI8QRzP2JSsnzhjcutl8A7TpYX/7sw29lNYkYZX3hXo8lc
zwXPhOInkqZ2PkLx24azqkh8J5reqz/Ng8wJglGSeFdJkpi5lBXST1FO6G7h5axgokSxBZgjviEA
eYxzb2SGSgbKaT04pqDRO9aAsnEH6WQy6dlfoEL4AnOSNiYF+Yb1Gc1DfYpTufBGwcyNJ0SUFMEm
pADLWIQfJJEZLB6N/mLxoSQhxaZeabBZ16i3tncsXFJkAErW4hl7x7yj0Ww2Ww4ZG2NjhkD55Bc4
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
IklqxFsI8AUxKSgiHS48KKZ8p3Aj9fGEiZKcWKujl6Lt2QdXOVKazEzPRaFnGoOfCmEVz3d2OEq6
jgVjCD4fEon7XFB40KsgCw/pmlNhVxmzb6ytv36eA/mIzzZS/Oc/zpg3UEsDBBQAAgAIAI6hM0oZ
huMtFgEAAAUCAAAwABwAZWRpdGluZy9tYWMvcGFzdGVib2FyZC90ZXh0LXByZWNvbXBvc2VkLWRp
ZmYudHh0VVQJAAMsjoFYLY6BWHV4CwABBPUBAAAEFAAAAL2QP1PDMAzFd38KbYULjo8DlkwpJcfA
n3KkR2clVltzTuyz5dJ+e5KUoQc7izRIeu/3JKUE9eFs6iiqB2RU1bpWa2qeDP+0+2SsVu9kCSMp
i0eXWDJFloFishwVacOm36oOW+UxMjUOg1ZMB5Y+UOs67yJpSQdPLZPO+cAiy7L/c8aWE9rJtyxB
Xl/dQTaWshTZYvlaL58reKnqev5YFWBNT3BzW8Dq6KkKwYUC+mQtmAi9Y8AeXPM5JIEL2qNNOCLA
jDFsifONCZEXu4E810Oq2aWA1YAMvMOhDGAQiIOhPWnYBNcNA4LWGj+hjx5ov/AY4Yw/FyDgbV7X
xaSgvEXTwygPrv8rcHYp5Olseo4++f/aAPENUEsDBBQAAgAIAI6hM0q5uYGbaAAAAJwAAAA0ABwA
ZWRpdGluZy9tYWMvcGFzdGVib2FyZC90ZXh0LXByZWNvbXBvc2VkLWV4cGVjdGVkLnR4dFVUCQAD
LI6BWCyOgVh1eAsAAQT1AQAABBQAAABlzbsNwzAMBNBeU9wETp/OGxhwFmAsGhEgmQRJ5LO9BcNF
kDTX3D3cjT0QD+rB74BxWOEnZ6wmrReMpRa9C1lGcVB90cehxos0Fec8pDSN83w9/EUrlQ2ZgiDb
P/9yp1Ly6G/H+c8g7VBLAwQUAAIACACPoTNKgJ1RHgoIAAAEGwAAOAAcAGVkaXRpbmcvbWFjL3Bh
c3RlYm9hcmQvdGV4dC1wcmVjb21wb3NlZC1wcmV0dHktZGlmZi5odG1sVVQJAAMtjoFYLY6BWHV4
CwABBPUBAAAEFAAAAMVZbW/juBH+nl9BJOilPUSSHdvbxNlNsZs4LdB7Q73ofSwoibK4oUQdSdnO
tv3vHb7Jkiw5OfTQ3uLWtvj2zMwz8wy173NVsPuz9znBKXwURGGU5FhIoj5c1ioLbi7hsVQvjNyf
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
AABQABwAZWRpdGluZy9tYWMvc3BlbGxpbmcvYWNjZXB0LWNhbmRpZGF0ZS1hbGxvd3MtYXV0b2Nv
cnJlY3Qtb24tbmV4dC13b3JkLWFjdHVhbC50eHRVVAkAAy2OgVgtjoFYdXgLAAEE9QEAAAQUAAAA
rVLNTsMwDL73Kaxx4Ibg2gPSWANM2p9oBeKYJW4bKU1GnFD2NjwLT4YLAwkYAiSkKI7jz5+dzxHF
tJouLqAQM3ExrkQOPa6vDfaF0ZNWugZLtKii8S6/+S6y8NHURsnhnIkvjNT6ZD/koC6W86vBz8Ow
Qx18B8fgayim13AKZ8vils1lNZ+xOdBepQ5dhOh/h9pHfzIkHkR8iAz+scwf0LKujTNxmy/Kd0nG
u7vC945iQNkBRWPtDuCa/Hw8K8Uetf5f/8+MX4g+5K/GZQmUlEKiOlm7XclAqMEQxJAwyypRVjBZ
zlczUYmsaocAUoR7DMyC7LWSRWGCDQ8alHTaaMkQ0N4dRtCG5NoiyBS98iG8vgF4UVoT3qVB094H
TUdw69Pu+wAhMjPCpg2SEEYSeDYBO7RbsN410HHDssERVIxapwa8UikQmBpGHHsJ9ZLA+Qi7utwe
j3r0lnmUZU+P2TNQSwMEFAACAAgAj6EzSmamWCrNAwAAnjwAAE4AHABlZGl0aW5nL21hYy9zcGVs
bGluZy9hY2NlcHQtY2FuZGlkYXRlLWFsbG93cy1hdXRvY29ycmVjdC1vbi1uZXh0LXdvcmQtZGlm
Zi50eHRVVAkAAy2OgVgtjoFYdXgLAAEE9QEAAAQUAAAA7Zvbbts4EIbv/RSD9GJbuIwspUdfFHFq
NTU2J9RGgl7S0tgmQJOuSNXx2+yz7JMtlbhFkkrtkg6d7JaAbUESxRn+3wQi/0iEEIjOJS/nqKI+
1TRKL4bRBY7/ZHq9OSgZz6NPyJEqjDhdyVITjUqTAlXJtYowZ5qJaTSnWaQWyHm1Q7MMF5pkVOQs
pxoJ5VwuFaGllpksCsw0kYIIvNRkKYuc4OXCHMN8V1/qVrvdfix50UyXlF9ltb8PJH4edzrQrjaw
v98iaX8wGpwcQj89Sg97o7QLaiZLnh/glIn0OoOB6J8ef6Jiit2i+oVJIefQATmB/uAc3sHBaf+z
2XwcHR+ZzZNcZmbgQoOWkPyyVV0OSxyfM1z22a08uhe1h0+kZhOWUc2kaB7Q+1mV+tDoXVH6PqCn
ouT8mcnUfYj/ohWdTJhgetU9GV5nYFLtrY/15VIoXSCdg9KM83UDM9wPvaNh2oKfyXNzVKbPGwrd
OXNLJLAUyYck9YrH1YVPtKle0/iXYSxaP34Cd7v8oaeN6nwbGtcjTazCJdtBSu4fKfGA1ENOj7RK
9qzC7YUqcUDqTeN6pC+swr0ISB2QetO4HulLq3AvA1IHpN40rkf6yircq4DUAak3jeuRvrYK9zog
dUDqTeN6pG+swr0JSB2QetO4Hulbq3BvA1IHpN40bnAvOnaLpk6A6rIy9adyA1bLtXAcsLpg9ady
A1Y7ZyoO1pQTVn8qN2C1szni4CU5YfWncgNWO6sjDn6SE1Z/KjdgtbM74uApOWH1p3IDVjvLIw6+
0mP5t8/WK8XOSYmDXeWE1Z/KDVjt3JQ4WFZOWP2p3IDVzlGJg23lhNWfyg3PaNhZKkkwrlywelS5
AaudpZIE48oJqz+VG7BaPlIVjKsfsQ6EwkKPjCZd8y1wjnwFXIopFLjgNDPD2vxhNpvZ8ZR9RdG7
Jc51jtfHRqsF5htVqb+iuY/n/h5wYR8U/A/8mW9xCeztgdVglfyvrJLEzgJPNrbAEztzNgkWuBNW
fyrfiwOW7D3wnfLG1GmOSlEzjp/OmTyOz/ukKdTCxrOmIOHvMW3ausUcbocPOXGCs95wCKrMMnMP
mJScr85ooTAHpkAXJbagBaN0OIL3p8dnR+koNbuz6hwqDV+xMD2h2ZtRo/bVO63m0u9vtSrIpfhD
Q84UHXOEG2+3mthgPqocK/xSVrCq11zVLnyW5bpWQSGanhEWs4IqhB0Kd9b46/vWjkkJYVxOQWZZ
WShgE9gx565OLakCITWs45r0TBHtfLty14yPNPX791+ttvn+A1BLAwQUAAIACACPoTNKbSCu5zkD
AAD1OgAAUgAcAGVkaXRpbmcvbWFjL3NwZWxsaW5nL2FjY2VwdC1jYW5kaWRhdGUtYWxsb3dzLWF1
dG9jb3JyZWN0LW9uLW5leHQtd29yZC1leHBlY3RlZC50eHRVVAkAAy2OgVgtjoFYdXgLAAEE9QEA
AAQUAAAA7ZrdbtowFMfveYojerHtpmrSby4m0SbrkCitRtSplyY5AUvBZrZTxtvsWfZkM4NNLU3a
nVFDtVniQyTG5/j/OyH2H8dRJ+n0LiCKu/FFO4lboEeyLLIzHHIRZ9xwMeyI6OryExNDbKn5K+RK
jmEPZA5R5wbew9lVdGvfPiaXXfu2k8m0HKMwYCSEz7ZqxI9SmOLghuM04g/SaH2uPNyThuc8ZYZL
UdHXYjjno3nifSwwNZj9Hs5bURbFO5vn3w/wD1qxPOeCm1mr119kYDNtL49Fciq0UcjGoA0vimUD
O9oP7W4/flKc+4OyXd7TZ+XMOhK5EKRa72D+xR2DX41t/GwYQuvXrv9qj486eiF+zgSu5hmSwoWe
5/av8A1XyD4p3L6vECpPZwJX8zwghTvwPKk8nQlczfOQFO7Q86TydCZwNc8jUrgjz5PK05nA1TyP
SeGOPU8qT2cCV/M8IYU78TypPJ0JXM3zlBTu1POk8nQmcI1DsUdbH+15ouQVqDuJa5gS17zed6Iz
dSdxDVOa9RR474nO1J3ENUxpXkbg3SI6U3cS1zCl+RmBd4zoTN1JXMOU5mkE3jWiM3UncQ1Tmq8R
eOfoNfyXs/Eqobklgfej6EzdSVzDlOaYBN6TojN1J3ENU5prEnhfis7UncQ1ey1otknonSkyU4cS
1zCl2Sahd6boTN1JXMOUuCnKO1MrTDtCozKJFaRlnwrHWMygkGIICicFS+2Y1t+LRpkLD/kdivYD
aRY5Lo4lswlm61Sou4J5iV1721u+ewFf/RW+ubWus62m3g/5Z/yQkOZuh2u72yHNeg29u01n6k7i
F/G4wv3t3h7vzZbGqDWzw3hymuRweK7nSb4S1p0oeQX/g5nSxh1kfxfc2lzput3vgy7T1P7052VR
zK6Z0pgB12BUiY1GEvcTOL+6vO7GSdxIRvMTqA3cobK9oP00YlZm28HElhOkTGQ8Y7YJZFK8MZBx
zQYFAiuNTKVSixzAPnQ50PilnFOaSpXpXbiV5bJIQSPanhEmI8U0QpPBylJ+ea9qQmJbDcohyDQt
lQaeQ9Oe+3lqyjQIaWAZ16Znq6f565u7jUZdr9+/NX4AUEsDBBQAAgAIAI+hM0rylnrMdQwAAEmU
AABWABwAZWRpdGluZy9tYWMvc3BlbGxpbmcvYWNjZXB0LWNhbmRpZGF0ZS1hbGxvd3MtYXV0b2Nv
cnJlY3Qtb24tbmV4dC13b3JkLXByZXR0eS1kaWZmLmh0bWxVVAkAAy2OgVgtjoFYdXgLAAEE9QEA
AAQUAAAA7V3rkptGFv4/T9HlqfVkU0YSktBt7NmyR3LiWttJZabiyq+tBhqJGGiFbubi3X2XfZZ9
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
GlT251uAnf35FVunv/ff930Brq+9x9aRfX9+ndbdwl+nJS959XKPjh1d6NuLRljtUSbuowi7zz7K
9LzhVmnbWvU2+3w5mRg8dhzMuRdT+vRZ/h9UUN1zQ0Qx/p+c/bywqzRe7XphX1iaVbqlTr00t+PJ
rXH96cPn9+Pb8QuLtkrz0F0imi/9h7mQD44CwLF+PFU9xgfuzR7k47qDw8nzrhAFSYQNFZghmMqx
bKrBWRw52HphVVcpfnurY+JVWfvCDyB2X6KaO3cxvcg68v/8G5SDgWfNUlQMuc/HonTSUpWWSMtW
eJxlbZeWXpLHZc8b6j/b+y9QSwMEFAACAAgAj6EzSpbLZ7N7AAAAlQAAAEUAHABlZGl0aW5nL21h
Yy9zcGVsbGluZy9hY2NlcHQtY2FuZGlkYXRlLXVuZG8tZG9lcy1ub3Qtc2VsZWN0LWFjdHVhbC50
eHRVVAkAAy2OgVgtjoFYdXgLAAEE9QEAAAQUAAAAFcxBCsIwEIXhfU4xO3feQaQ7xUBzgSF5bQfi
tGQmUm9vXD5+3hdv80zWc4bZ0mv9Rm6GQmLkrSOENM2J7q9nfExpCmn7B5jTB00WwVgbO3Utu+hK
rMTDOnwQmbVIYQc1HJUz3lCnssP04mSoyD7eoL3JKsp1wKdfQwg/UEsDBBQAAgAIAI+hM0pW0yDt
lwIAANkfAABDABwAZWRpdGluZy9tYWMvc3BlbGxpbmcvYWNjZXB0LWNhbmRpZGF0ZS11bmRvLWRv
ZXMtbm90LXNlbGVjdC1kaWZmLnR4dFVUCQADLY6BWC6OgVh1eAsAAQT1AQAABBQAAADtmVtP2zAU
x9/7KY7EwzYVkwHl1oephWSsWlsQiUB7NPFpa8m1q/gE6LefQysELLBhRrgoL7HsxOfy/1nJic0Y
g+DUqHyKNgg58SA6i4MzPP8padns51KJ4AQVcouB4nOTEyO0xDK0uSIboJAk9TiY8jSwM1Sq6PA0
xRmxlGshBSdkuRaGCYOWaUPMOnspMbyauQbFGl1Ro9lsvmowPKWcq+tQOh1g66tbLWiur25Dp9Ng
UdhLesNDCKN+dNhNojbYicmV2Mex1NHCaU+HR4MTrsfYzoorjDIzha9gRhD2TuHb8rp/FP5yzY9k
0HfNijCpy1gTkPnnZ8viucTzU4mXobwTU/usdHhoSI5kykka/XByB5MijfhaHhQ3yX3WuVJfXLxV
pQt8NJJa0rw9jBfRuLC7y7HQXGpLGfIpWJJKLR9wqX/v9uPocaluZ+hs3lLr3p1nCfbS8pSTWC+m
rxBe0Y2Bv7p88py3T+a+yT8s/S+0lehdjnrDw/VGjdobdSV6l6Pe9HC9WaP2Rl2J3uWoWx6uWzXq
t/S5f8XVs+XheqtePd6oK9G7HPW2h+vtGrU36kr0Lke94+F6p0btjboSvctR73q43q1Re6OuRO9y
1Hservdq1A+g7mmLGSVOmfbYGAFSIAfIcKZ46lJ6cFvmpQGM5QXq7h2NFqEuxpL5DMVzFnAlq+iR
Xb93toBrWd/re+GD7tf60H76pPqH/4Osl7poePcl5yt+Wuq3jRdsOO7GMdg8TdHaUa7U/JhnFl2R
aYGyHBvQgCSKEzg4Ghz3oyRy3UlxDy3BBWbOErrehBMUh9AuWeAaFgfUzsrNEfWyXMVrEYuTav2J
YHFQ7WYjmEyOpeYKChZrzitzpS6IotRdazQbvwFQSwMEFAACAAgAj6EzSlQcGi0fAgAAeB4AAEcA
HABlZGl0aW5nL21hYy9zcGVsbGluZy9hY2NlcHQtY2FuZGlkYXRlLXVuZG8tZG9lcy1ub3Qtc2Vs
ZWN0LWV4cGVjdGVkLnR4dFVUCQADLY6BWC2OgVh1eAsAAQT1AQAABBQAAADtmEtP3DAQx+/5FCNx
aHtBLW9yqBSISyPtS00E6tGNJ1lLXnsVO2z329dhV4iHS8GUwCJfEsWPefx/o2RikmZFNjqDlAzI
WVKQGPRUtYKdYM0lYdxwWWcyHQ9/UFlj3HRXqBo1g8+gKkizc/i6vp6M05/29r0YDuxti6mynaE0
YNSj10bkXjgL/HXOcZHyWyHFF87hkTK84iU1XEmHrVVqp9MuiRwFlgbZdWofZSvEJxttX8kCrSou
uVnGo3wVjY06WY+laiG1aZDOQBsuxHqBzfxbMsjJg0LdTNCavKHVnZnnyPXS4rg5fOm2bxn8ba4N
/NPlk/e8dS53Ld4z9J+49iK2m/OOh+udwNmPcy9iuznverjeDZz9OPcitpvznofrvcD5rXzhX7Fy
9j1c74fK8ePci9huzgcerg8CZz/OvYjt5nzo4fowcPbj3IvYbs5HHq6PAmc/zr2I7eZ87OH6OHB2
cc6kxsYUVpa4VooBZ0gBGpwLWtp8/nr08tLq1/wSZXJLoVWoq7FiOUf2jOLtpYIeONbbrOINqm7m
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
Db7nvMYDFNETS/aCy2msUnDtjg/WNKVSQ6SSQCAqTIU5iVGDNEalOn50BQkX4Dmd6yuwTjG7tvvC
3XFLboQFEWQmyCIFiWasNBNlEoXeYiarC4G/TRSZlqDDBaGxQZaZ192t0xNxvKqbnrLuluhG1Q5Y
EKnQ9KF6JmYSBS3kKYryvQTwKFoKrSMnEhhXEKKRsJOn4ay0oKJOSQyEaYRCUZr1F4FutxLotI1A
hnlGGZq/hlQv5JV1LAJ6z1aL2ttLQRd+hFxooA8NZ7ECyTMaQ90urubPg4wcsjktZ0fWXjneK+Hv
hqrd3S84nap21yxFSIR1VE6DMM7Wc76UzUrUh8tVuWercrWqkDxZ73rk9i6W45xtkmNM4tyqRUSg
8mHBJTVHWHlyRynNYj2suuw+tbdKj30I9WFT+wNQSwMEFAACAAgAj6EzSpZwZL3+AAAAsAIAACIA
HABlZGl0aW5nL3Bhc3RlYm9hcmQvODE0NS0zLWRpZmYudHh0VVQJAAMtjoFYLo6BWHV4CwABBPUB
AAAEFAAAANWQT0vDQBDF7/kUAx7TdQ21IDlIjBtqsH+gDQkeN8kkXdjuluyE1m9voh6sFD158DIP
Zh6/eTOMMeC51f0eHReSJE+KLS+wfFb0KXGvdM03qFE65Fq+2p4YoSPWoes1OY61ImVafpCOsLSy
q/ldcDtjU4anA1aE9TWdyPN9/y93yYp6qd83RRGwYDIDP5hMIYo8log0S1dzEMkimT9kSQhuZ3td
x9gqk3wgUyPWy400LYbdWKHp7B5uwDYg0hzuIV6Ll0GesuVikKvaVsMlhoAsBL+6LmU4YpkrPAp1
liMsLrZXllSjKknKGg9+gj3uxvjb4YnVaP7C+zb5h8g3UEsDBBQAAgAIAI+hM0r/1gS/gAIAAJ8I
AAAmABwAZWRpdGluZy9wYXN0ZWJvYXJkLzgxNDUtMy1leHBlY3RlZC50eHRVVAkAAy2OgVgtjoFY
dXgLAAEE9QEAAAQUAAAA3ZRPb9pAEMXvfIqRc0mkKLIxAdeHSkntpkj5UyUoVVX1sLYHvKrZRbtL
DYn63TtrYwIEAsqlUjmAWf/2zduZZ8dRf9C/vYIovo6vLgZxCDqX0yK7xBEXccYNF6O+iO5u7pkY
YajsNwyVHIMLcghR/xE+wuVd9J1+vgxurunnKJPpdIzCgJHg7aVa8SsLJSaPHMuIr9kIv21dvpWG
D3nKDJfiTa1PuTX/gAWmll2R27jzHyjWQ1zdg9m2IXbseI4MzgyNpB7T3pG+Y8+e/OwteTDLhkMu
uJmHtw/LVl0s1iJZCm0UsjFow4tiAVCwPl9cP8T/ZNKvhNb2F2yOCpiBY/fUPQHNnxAC1511XbcF
cI8iQ2V370AO2X5ZyPQXPNtG/tmJLmGZzeHZ9r5mg9NgwfaCzuw86FTshvTXTd2KbdAGHtg4PVep
esX3vFUeoIqemooXruSZycF3OyE4g5xrQrTRwCCtmgpjliFBxJic4sdnMJQKAq9zfgbOLmXf9V+0
O36tjTBhio0Um+Sg0V4bUuJCo6JHzGZ1ovC3jaIgCxQuSGwbdJ15qu7sPogXNNXoyFRtSIWaJ2DC
tEFbh9NJ7CEqWShzVPX/GpBpOlXko2QahDSQoLWwtEe4qFvQSOcsAyaIMKjqZr1h0O82Br22NSiw
LLhAe9eK0iDPnG0RoGe2GWpvLQVd+JFIRWAIx95kBloWPIMjt/qc/NzIyKaad+otxdozL1gxvjdU
7e76ht2panftKBKmnK12jpmQYj6WU33SmPrwflf+wa58cpWwJ2dvj/zeu+14BzfJs02S0mmlTKEJ
YSI1t6+w+s2d5rzI6LKpslxqL5xuW0joZdP6C1BLAwQUAAIACACPoTNKsprrwsICAABaCAAADQAc
AGVycm9yX2xvZy50eHRVVAkAAy6OgVgRjoFYdXgLAAEE9QEAAAQUAAAAxVVNc9owEL33V+xwSTtT
LJtvfEshbWhJmgmkOTCZjLAXrMSSPJJckn/ftQmEJpCESWc6HABp972nJ+3uZJzk8J0rCLpQ88Og
FvqB1+jUakGD/gftK5hYm4YLbhT9zEQM9XbQalzB4bEfdP1uCEGt7fn0CcJGox76YNH8RgMRGidm
IuIOIdZo4fTnGISK0jxGIL5BHxaJiBKQ3EUJ7bsEV7mKS/ww2aas2W3W260XlDWXyjrteggDJVwI
I7RWaAU9TjQgLCjtINJqJua5wRgmiVBF2Gj4EFkGXu3kb7fqr/P/D2da7W5zpUxm8jozONPmNqTz
igifafSDFnl0mBWnZTWv4QUd+HihxN0nODs+Y02v6dU7MBRTg+QNRdS89qZv1SoYtLkUak6WGslT
0Bka7shCu1Njp+6vNEba4E5xfrcRQk9LyVUMqVAYwgHLrWF2KhRLnMtIwQzYL53mEi3rc8fZ0eWI
XeL0h3APX19ykcbsHFPkFlnK73Xuqg6tqxbSU2eXSF5xLKj2oK8jQlPuXNMbqewEH5ZAY8JZArAC
0lagGsH4PkPbK13aB6AQwKSQ6LkCoISiWxicDvrC7AtUZvdy67Qc6pdkvNUkHkVUGtepnnvuzlXo
FUhJFUUsR8Zo829IsIB65CgMEPFXkSIwJ7MV2vK+isdCAYep4BbYjV0j6dyQ1Dcato6vbIBJjAXf
G6rM+gtGx2hUdYlGl+KMTt8K5nlsVLIXmz2qEnai4zylrK2om7Rr3eWTTKg30cV5kd3bkqf5r5Pc
vI/j5nUKg5k27p1Ea5BKUfAX1FehMi0e51S7cmkorEO10bw71I02NiZhGFw9XdyM7myL7uyIpsnw
PLpcjIqR1HucFctS2K+jLHB6K1z1oWhQHmzpy3XS0QyCbmu/2UHzLeL5PHEwGnwbH52ffAab5M4V
4yDWC/XhD1BLAwQUAAIACACmoTNK7Ir1QD0DAADUDQAAEQAcAGZ1bGxfcmVzdWx0cy5qc29uVVQJ
AANYjoFYWY6BWHV4CwABBPUBAAAEFAAAAM1X32/bNhD+VwI+rYAYW/6h2Bn6kDVG0a3tijptBwyD
cCbPFmdS1EgqsVD0f99RitMVG/piwphfTNO87767+3gkb25vy/er9YfXd+sfPrOAPnh2/ZkJ76fx
e6t0QNdPbUDspbPNP8d8+J8/qFDxjXWSxg6kaj2HWnKHW40iKFtfVsHoaOmwsS6wa/Z+9ZL8rl/9
+pZlDA8NrUNJ8+9u1muaARFaIAv26s3NyxVNEFZkV4auQXb9O3v+nP2RMWVgh6VU223ZoBNYE/T4
cpx/yf6b41dGHKTkxzX/F3rfS2EkfHae9MmiGKx5VMU96Ba5sKYBp/wphb1b/XbHIjxKFVS9iyCq
9uiOP2aTq0WxXCTwIMBh6AOIA2KvrTsVllAjDPcN1Jx4K4k8RgIbjecs0+xynn+XTC/ynbNtLc/O
K1b3gOKFNYbEHD3ny2I+5fnp2c+L8WyZAGY5XiSAmcwn8yKBUg2IYR80bS/Y+fyqKPIEBN+uf3qS
wYteK8FBTXpxVK2TiZODJ8pPuhO2DqDqY297oN7GHxw0vLbOgE6xAU1jveqbI4WFTpM37oI+b5uc
LWL8EjUeO9d8PiuuimmKtIIQ6L3aKK1CF7G+maBU0k4n+CRlpAmngIsKxX5jDzzgIQXmvwkbNNZ1
nHoC5dMkZG7NxhLz1InoByhPh33c3lQtGDZF70fDBnUizjun5ADt4wbfIa8UOnCi6lKVco9dIrK0
jo4FlMSVvoH6gwpofCJ0re7R4S52BwPurxaRS9xCq1PJTSpH60jJCRr/t7vEbv4kC6IbgLQnU1yB
jr1y6FD3dEOwTwMutGpI5b1evBPn7Z+LyXDN9HvVNBF1NplO84zVrSmpfi7mxdb0BpmOM2ZDha4U
DnyF8VnSnzx0f3Zt0zMKrsXB1Ciyi9GSlYbOtsQmPm/IvyOmo49Wtwb96BYCjFaf1qNPuPlFhdHr
fu1d/xLKGEkoeidSA2oD3kfHs9lkkbFGHVA/wmIdTz2isAXtiYOEQKGz8eI6n757c2Hri5+hbsF1
F/kyu5iM8yuCr8CXDd1JQ0fIQVTHALbqENH6XBSPudhq2Hd9OC1RKIcqQDz9fEmPCBxsvzz78W9Q
SwMEFAACAAgAgaEzSlsEWA6iBQAATRAAAAoAHABodHRwZC5jb25mVVQJAAMRjoFYLo6BWHV4CwAB
BPUBAAAEFAAAAK1XbW/bNhD+rl9BuDCwFZOcuHHnFUEA13GWLEmdWU4DLEkNWqIk1hKpkVRie+t+
+46U5RfJUQNsDhCJx+e5Ox2Px6NLxBMRI84VarQyKRqWdZ0pMkcBjcmHlkrS1h2ZXlJl3VD/DGQA
2whbkVKp76TUb1iuxwX5yLF4ESY1YqoRYGVME8Izhd4dHFiXhKS9mD4RNGTWNZ6vxyPyZ0akkuhw
G1VQDzvgLGVuigVxzXcAUPN3JB3LVVioHcBK7x0XMyPrHGhpnzNGPEU5kzdE9CMa+9ow/CzrimP/
mvsZfBnOFKfMJ/NJkgtiOiVz4rVwir2ItFsgnqxBjuTb5IzRuV9HNIASCXsekXLi8STFqtbqNrCs
JFMRm+gl+I7fK9Qe+vJV9OXL9IhL9X26RpXolHlx5teaXkFKxJiH4A4LaFjH3aBK9IhgHzKkjruC
lIhSxnUkmC4REkjqOoaeL8dU0lrP9HyJ4oW0jgHTJQIjIVcU601RR9yCaQVvtpcuwSFJcFq7ditM
Je/NZqzPeAMpE2OK62kaUCIJ8iyoql2EFaRETKO0U7BWvzIZxhqliVZeiT7hhKDD9s/OAfwdWtbx
KRVQfLhYoNaJpXUMU/Np6EKXESLRGY9j/uwukivKZhJdZ7Ginyl5lmgApvq/XgDSbAFp6D2NHoIl
QX2iR7lSAckK8YG5n3zCFhsoCgRP9Ix13Fr7cmJZPVNTdE03LjuRyqsMuKyFEv2DGl8enB/uz6PH
+7F6/Pv+1H+8d+XjRP/7sXHyst1TeNmY1RIXUkgGC+PuccvoBxduJeljxhn1cGycgGPiHIoEg/cr
zmdZKtEwCHSVDq/IE4nRMxbMsgZCcAGy3cOIaKne8o6aq4YhnXGRYDgBmxFqxqiZoaZCD42meGig
5olEzake/TUiARFEfKMg1mNwS9i9kDClRQ0EZXdKGfFfp7F5ahgJZzv4jRVkn6DmbQPy0gh2UcY2
zm03kHkpMsulIcMqEyZM1vFFUFSYdd57JxDcQn5SxphK4+XL1vP9K8zCDAwgHyPHn1XELEYOiyti
wpBDWFWsQEwq4kAgJxBVk5BvfhUNC+yQqslIZ+ca3Y+wkGDuwh3a3W7nF7uLHCp5/lrhUvALmpyy
+Ct881e8T2X7oN22f7uBaSortBl8zky8SLscGVfsWfWLGYSNVcPGOIh5RZxCIFL+4he3czNpNVQp
fG6q9ojtqdAz8KhMxmqJnDiryD2IkYeriyRhkaqhkU/IkU9VJYD2QL9XZYgMOaJqdhnZ4zvkwEM9
lyPwkYadohQjpxg5U3gpQ+8uPp0O71z7sN05BPOpeSmD+jfd9+/X+rwURi8GXZsyYd/4XGAuhxdd
e1SomXHatStJctt3Yd0KTObJ9j7E0TbiqIIYn0G2rxEq6FoGsrvPt8/s1XbXvyLAN4JyOOwWeifD
1odtDpphn/pm/8F+gb0BeQ6ZCVkI+ZTnDiyWzhPICVh/WOvV2uyUm5W340UKJ3WaxlDWtROtuQ2N
OnJUuFxjBszjPmUhmtu6qRVw7iDnjz2z4ZKmyAmXu/RzzPwYzh3oa2zpCarTHt4hw+NdN+DGo28p
CewnqR9lBdJUVjvV8fULTBXEfBtLm0rTmtXVWNMMbGrsnlCYK5MNOHA2Sl8HnGL1GqAteSY8YhTL
fZnhU7GdEetuwHQiKL/WmGDlr4V/lUWGiUkQ49B04ebYlYiz3SkZcaEmPCVsomAI0zVhK/qvlXOj
fDhgIRy7+rTbEsJlzkdwmg5+vx2448n1YHw+PP2GvoxHvf5gGzjSyp23yEb3Z48l45+pUBmOda+B
3n7oHh29yw3vbeHMhHu18ea4tcUHdW+sN6gHS0JsmRKPBtQzt2y5kIokKBVc5bdPB5Cr3qohpPD+
jxZqq73UDZvz9sF5cHT/5AdwCf4vFrZ6xX8BUEsDBAoAAAAAAIGhM0oAAAAAAAAAAAAAAAAaABwA
cHl3ZWJzb2NrZXQud3MubG9nLWVyci50eHRVVAkAAxKOgVgSjoFYdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAAIGhM0oAAAAAAAAAAAAAAAAaABwAcHl3ZWJzb2NrZXQud3MubG9nLW91dC50eHRVVAkA
AxKOgVgSjoFYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAIKhM0oAAAAAAAAAAAAAAAAbABwAcHl3
ZWJzb2NrZXQud3NzLmxvZy1lcnIudHh0VVQJAAMTjoFYE46BWHV4CwABBPUBAAAEFAAAAFBLAwQK
AAAAAACCoTNKAAAAAAAAAAAAAAAAGwAcAHB5d2Vic29ja2V0Lndzcy5sb2ctb3V0LnR4dFVUCQAD
E46BWBOOgVh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgApqEzSkUmHTnRJwAAy6oAAAwAHAByZXN1
bHRzLmh0bWxVVAkAA1iOgVhYjoFYdXgLAAEE9QEAAAQUAAAAzX35d9vIkfDv/ivachKQEQ/JM85O
RIl+jsaOtevrSfIm+TRaPZAERYxAgguAOjLR//5VVd8HQFJ23tvZrG0C3dXV1dV1daH68PnPn4/P
//HlLZtV82z47LCsHrJk+GyUTx7Yb88Y/DePi+t0ccD2BvRzmi+q7jSep9nDAXufZLdJlY7jDivj
RdktkyKdGu3K9J/JAdvfX1aDZ4/PONQh+6MFuZsl0+qA/bi8H5hPq3wpHkLH2b7oYkL9EaG6PfZ7
r5I59Vnao4zyqsrnMI3eD6JBVRws8qrVK5JylVVlt8jv2qyaiG53s7RKuuUyHsNYi/yuiJdNvQ6m
aVFW3XzarR6WSRhGMY8zDmNCMOw+bdGpSu6rblUAOafQ44Bl+V1SjOMyEV1Fs2U8maSLa5jx8l7R
qZodJPNl9dBBjOhfbus90U48794lo5u06q5g5WD1smRcIaaLhFO2O8//GXoHIHpjWIoEVgP/jtNF
Ukh6A7FnSXo9q+RoPZisJMk4z/LigF0X8YPHJyXQJ0sK3segr+g6isc310W+Wky6AgrR12+eTot4
nnSY/XB+LVclnQCd2E97e5LlJLp/4o8ceBeTuIq7yf0yXkySydHONM7KZOdSQJuk5TKLHwzKvKjy
PBvFkh7LvEyrNIcdNE3vkwkfkXj1pRy/4MOr38QCcZZeQyd6x3GaZnlcwSp2AZMkc1dWbSCfTsX1
KG69fPWqw/Qfe70/t0X7vJgkBWekMs/SCStT2NaF+bZbxJN0Veod2eP06I5WsK0W61bIIDsIA4fq
+2rePiaaTxSd00UG3NYdZfn4ZmBLKPYDdNyTkkoTvkgyINytQGS8KkrEbZJMY1hjwc2rogButrm0
wOUy34ZnzSnk9rGadnFJPYaIRzDLlSQQ8URXyCd8wAXjvtzbJD2BCeLrWtajNtTkOpmE23LycRRL
GHKZTLrFarFAvkriInvozpOyjK8Ta3YHRFq+Ji8me6YuuBPLOMqzydqlUtz6g73RPCnSAKOJSyQr
/FgL3hEO5hslIeQIYpqwF1DHZXJLAtX4Rs+XuI7lBvJJNgXiLlbOKGoeAW0md4ai20sp7TmE+245
iyf5HX8h///FTz/9NLDkO+kTwXU56KMUNEPvZemLG+S5QSObCmHVIG7qpp3FIyW21PqKhcW1mqWT
SbIwSbTMU1AyRTe5hd1XmppJTEKpGBO2IJYwLH6QiNZwq6uA6mYlhSKOtgRJnnX/medzj3Hrxf2e
uav3LKH45z/93ubf/T1v5fUjRTu5usAH7htU3OpxPRnrpxmQ/S/3NhHUJlOCLGavoA0poD1QOvx/
vf941W4gpLYQjQl2p1lyDyMahon31EdrlMWullCMm8M8QaUCmpzx1rNzGN1eCbIBpGg6B6nZwA+2
FgqPLpXk3t7vbSX5ozZNaoYbGgKsUcWE+JADAx0H9CNuk5THDTyHzUEDFXHJ1eULoWJArZXVZltA
2t8/OkaP+i2m/krOHO1I8exHbaptatxIDqvDdMhmL10HB/7vRzQg/I6lZ0YjWw9C/pFcsP+QWlwu
dBe2ZTku8ox8gMO+8LS4x8VSMCxXC7AZwMqGQenhzlC1gmbjIl1Ww2fplLXu0gVsrx5idgqqOyna
Qo7L373Jar58U56DYG8BHZ7dgjV6fVVWMTLCdLUY4/Kw6ywfxdkZPm21n/EZIvjnoqn0SPA/8Ygd
Gc/IUgKemJ0jiQ7YxWXHf/e5muGWdN8BdW8evsRlWdN3Fpfvq2op3pLJ7TU4QaZ9F6fZCnR5XSOk
QWObeVqWsKan3OD3MSnki98e7RflLF9lk/P8+jpLCBVoUxUrB/wUxgbwNdMk5vpbWs3OKth5ATrB
7kvyVVXTXXOMRUrV5vGZ/rNIqlWx0GwAPK444c3PP1+dvj37+uH8rJUulqtKsoPFItIpAiagRoKP
BWNKFmVlMQYnaZVlV6J979cyXxAzO02HGgPQW2n19h48yhJ+tpAuEgdkXmD45B7Gxeeg68vqBB98
nraiXiTcGORc0eyIdfdN5hVTv8DeHbazcznw6UIve+VqVFYoAVFbEbR2hzlv+CC7bL99aVMR3y/D
c+j32Tn443kRFw8oFTsMGDGHEdg5OItl/4zoUfa51F0+9EGLw7JfEX/0QWwB7Byd47KPjwRlr+4K
UE1FbwkOP1rJ7M+venK4dyd///j2gJ2CkzOu8gJEP4tvc1CJAGy6Qo6HmU8TEPnjBF+CfJ7RTBl4
LWxZ5GNwA9gCbOWyp+gbWqWL/cteliyuofuQvWq7RMc2A5PQQRh7DinncTWeJeUZRR3yorXIJ2Cz
l+KnKazwTU809wY3X7ZUbxCIVm9O9I/2kGFYwab1kMFK2Qis386EaRJmGaMj+nl6/rBMaqgC9goo
FHoJO4bg816f4J/mtkA01xC67YhChXJgBy1WXLVpZItkDtqPYErkHHR6vMkxoDzh7WwI07x4G49n
9OpDirt3BuyZJWqybwowPHvArlWOQbSe6NADGykL9HLxw110Qh5hC8SWsVvF9lmVCYtXkzRnVXxd
IjrszdefTz5zwf1aySe+XUkAnwhRBfB6qZRSH/R7Ka+wG24vLb08IM9dQYZ9UKcV8dgdAYyzsWDP
Xl5cR23ee2D1XcKWTxE5CeQ1czv2e71eP2IHLIp0X8QTeonuuzSyFoge3rvMnHA/EvJBTPyRJaCE
nVmhTP8ZzAWTepac78LgVfUgqadpZvUjglk8ux6wCVJM1J2fCQIFv+R+tZDAHZ9415Y3QG+5wOUQ
WgkozkMQRGMw2SNDaEgwsHT0Sk8FoLJdePoag8JxdVTdV5ElVqPDSXrLxjByeeSGNobGO3KUhxFM
g+YKS3XYh7fDQ3wkx4enXI1HfLHxASpwp82Qd43sXVWhRQR0I5uoxXlG7qwtkd3hbj15J2jI7YgR
D9HV4U3iBbwFA4hGYxSq5UMS8op+inVpHtC9AffkLRlVMYUuWiAK5yCtTGuEh/Y+pIsbWHDxXm9j
/bZHKKoV9SOCxgLbMDWI/10lxYMSz1EvBMTgIKMnvjvmQXpkvmjXG82ep+op2Bt3qeoAzlYWL8uk
votJxnWtBS3rkEVcBwa1QYRrC/00v0NRZOpBDacD8gxjoFHbI5wR0TdNRh+6ptJqCfyEk6DIP7eC
/fYd7lU4JAj1LbBxWsqHalOAL1cm1ZsKxA2sa9KKrBOHyOrDMefQiefPxXY7B0+haDlYxMsl+PTv
zz9+EJodj/k88yldlElRvZn8Go+BqNha06CmQSsaJSCKkrcLxI+gBrhGdIZdjX1QgGFLG8VmVjR2
XbFu4QtTtfJ25xQ0PyISa6tjI96irptwkQa2QC2B7PvL6uXe/g+Ch2u5nLdvZEVDS27KjOiCGhqN
S1zTXNPWR3LHJzzJxyuUYb1xkeAYXKK1DIrypoY8g0mapBiYQI+TLGuCOjGgYtseiIszmJZYJ4vk
b8CMox7ChhhoncvHR7qWtT1llB82yI3JHWj/mGoKIdAuljHhgrXI74TnewP469AcTuLC0t1d1zzL
uAQ3Wl+kl7YVxt85dkxIYpPeA4PRibmEkMdVHwTiFvjK0sc00LUvbbiCjNoG6zzam9kCapnOBHMG
AKQmwv9M0cPXuSN6tQeKDYUJJdiLdxHOAO/TllFwvSWdVrhNxLChLcJbqG2xlfSsb2eIJViN/07L
dJQlbyxTxNgADULEPVxGNHcuWc8ya0x99bxmPJNJxlkSFycY8r+Ns5Ydw7G4QbYxFn2D1uhVruRB
iS9jjDjiBiMbaFdGKK21NUqgQdWUTUgd9nJvb0+Z7JZ2LB8W4xb+7LC4uC7lsgKocx53a8m2LUCU
4Q9kv+yhhQQQnQbssYMRe4d5bvkikQvUypfVlbJwTe7REekjZjVi//qXYiC9+vkiezib5XdfVeBP
xjZbbS+0oGCFRCpuJZ7JIiG1o5AK3xRWFJ7+W6X8SivGvNVEwhupdh6sxkium1sD+BpIvv0CrS0T
JuwuoKQOESakdToMtIzlCxh6B/QR/JsrIC1xiZ19e6rDLgwgoI4ua8z1/zuTCDkQa6fBA/JfywRD
GzbLiZV+Hoxn98xg69Ukpb33PMvHNC4InDMeB2jraMs0zZKDfp+79Xs2GkY45C9xmXyJq5lFyZF4
qHd1CHHXrigSpHmOxAxPQjbQclMOhMbarKqWgLAbJQo03j3SY71mragPRM+Linx/+aKNsYv+CPQX
+AU1QCIYbLW46VuRIDMCFMJzw/UBN75vhz80US13HnogPa1YvIpBxCKEQEeDZLehDcODHsFFxOgH
RsgpihAZvw778fCwRBOWQ6TEm3wxztLxDZ7r4e9WNUvL9s6QgXPwpz/vH/axvRt/EE3xD5NlOIO8
Q6iWnYr4fYpv0+sYBBal++CTluUj4VPtFncMWO0wsfA4im/sv5DUCxPPmK2dFKWmHYilCBLUdiYB
O9wVtJEkEoTWC+nj/X8V51C8Wc3jC5ncsCKrKf0tMirLWkY1nBmDVTUoDNYRLOJQLxhmtxQsLAeV
bMwcjkxLoZjfCvXaknoWzJ9xtYoz65yulM0snwSFHG9MgbCz/zr5ErkCToKliD5XGfS7RwdGrYiZ
cVrswAHK5vxXsHHImzM613lz9jj/HWerRI1DHS3HzgjA6WkohWHAEJFg9oc/WH3xv5rO0bs3Jx9k
BBl0k9ePmfCJwudv/34ewRDMfXHy8c1f3+7WvqbDDXAC294Y1soaIqjmmFk3d86v+MHiX7Wcfwcu
ETLm59Gv0N5kJpKu/MyXv+zZ5yXGC3CKrko6Qm/XuQ32SXtvuSpn5rjCNbQ7mVkInnayXoLFQMfE
as1Q4Wr74JnNTPas+LOBHUsytpFuqZ7CcNGXN2dnkaZGWHWuyqS8Sgx5doWmiyaSAdxa4Q22vRF1
lrMCDvp4cnZ28umv1vbW52nz+CYBGVUkrJrFFfr9mHyqshSJlOUyhT9B+zIQuF2xr6v7iiHmuJlN
uLzLHawrEyPLhI1eDSPY+R4BPmjwavUKnuc3yaKslzs8BFmWyQR5jjzRz+DyCKKeLE6TqtBii0O7
2LskEjq7U7zc5y9pA0euWNVtVDfNisQo4jwQOadVYwZTdpuwspJFDPb9BMGtnYZlq9qg7TSf7Yjt
MBbNAvFRm+C5fOoealstOMFo3ptPW2xnsTNAZVLWBX2m4aoIG2ggI6dh1o9bzP/49M3Z+6ie1DoT
65vIfH7y8e3nr+cNA5kpSRsPpYSbwx9GdlQAln80J6NDps0hY6BNfnwwnqZ649niOgiqYdTo6XJs
wk6uY/GkIk7Iu3hhYvpk4MhA0GrBFeB95QWNlRAXU3XY1e8DWp8vP+/gmDT4rIdHwAKTptgx2pBS
YOOhtxtK3gAVB/tvRUYZkQ46gWAgInKqo/bOwTVFeqt5ZoX2RZuOORAezHforJd+Ix7P7Oi501Mr
OOzHf63vNUmnU9kH/20dAoflHNpIPIniaolZP9oIoInt1syMd+EDYkMckT9jWwx8h203HPHOGuvO
GkWYl/4xIvGDUOp4cGAIkg4zvS1hvTD3YDGKPINGq1CuRNrhjByErhLaMBLtZ7gZ9ismzNXFtt2k
VuVEOds+qJlQN9a80hN5fhSahTiFdlakKQbyxeP8LhhWlE3Wk66mIkEHDwunTDYwfbPwyPYIhkQx
dsga4fKthDqqJdT3IFYdjXg+pkugR29mNtv4mcib4WzjhvusVNtOnj06mIRIvQlwSxBb8nGwNax1
/GAYN+Y2xfnZ7hTN8QqfXy2TYqxOWrahmESDoLdwWelfoHx+347avsqpFTHacXou4gO2c3YlHJcr
wto4I9mKWkvK+8WmrkgFOE7uJdju6QKcdcxSGOVxMfl6+gG8dX6ipXErXZ8dUy6B0Ds79YfpRm9l
Ku3uptZpoIS0a64ZGkEiDGDJxBSp5kNlXebkA5pgdzo7liksA24iWG54pV2py4xEyYkkS9lXpLpS
D2kjvYCdeQfm4+lqUR6hJP8DuRlHyCaw0fNJ8vX05DifL/MFpkZI3FzLF32S0/zODpNY4QKhwg55
lPcbYwKCoyKZhIfYtsKBgtfGTqacUTK7dqJgkOZblJWPnNQmoiuRV54JiDbDw6oYSrUuHx5WEyuk
HAwdm/qaR0axlxHHMUKpR6HEfxPAwB/fyRxqiArVyguKEgRUlGdRmF/AeJkiAivX+NXTa3seXAgZ
ETf0sdlYL9zFt6Ze4FnXpgDdUM4JOIKiW0Mx7WokCgKRBuh2AtwNSoSFOSHYfoo5JCdK2elapK8f
Eqf1pBEFWeyxNoyM9X8pd/uG2z3mOWJbWu0qTmYmxBAoJ1qmv0gxRMcmY8LsYDMnZT9ybDcnztZ2
pQoKCClaaCBXamwrjzEG5bIYq5eHcmzB+N86ev0ADXzPDyheByPWSjlYaJnAD2PjUKvZ+LjQI1xy
jTOcgd7Miwc6iQ2O0AddAH+gghzaZ8e+5cM/IqGzVPHlSIeyc6oiSfi//OgAvhNJPPRPWL4wwckE
MKLEUotosBTelxNQ5tNN8oAfjCFw1wNdJHdKGQkQr1lL57wTN0N/PLeHv2wpIS1oCfwCWlyGDsI0
0UmNiJYDz7wydB+mikncBk4SI9G1Ji7qZx4G10Qh0dHDBDO9oDd9iHqMQVInfigWLrxYOfa6GvNu
g40W5NvIZS1PTZSXplITerXnDepfZ1hRY/d0mZ71ynyeqFw3rjgw4U2mzfCjLX2kxx6DmZK4OBns
w+N8tag0keVHXE3RVZGDQd9oQ2dMVFCpd/TEZXkzcc7Kd6DW5JDduifGOMix7Ffau2CzhDS5ZhoK
DP/UPDsvH+1p0CMz65Zm7wRVbZAqkZq4pe26fNcIeJbEk6RwE/ArcQxqZTZatNf95ALoWDmxAIEw
lpZzpLO0VraLba7WJLwIsFZqS2B60r96T2i+BwdNYOxlXMz2Sdfxt/Q5VMtMAHG4VWZ9tA+YUmIv
doxcoG4MBoFKMpFUFpkllCwEDbjqwpEHQazlLDlSHe4WnqivSORGLipjI8cdNjI2ckxSpoepbVmC
ficsXmsk3JzHtuHfiFg3fahFWp8Sjz1ZQm4cx4MO2/gZfJceRfSxm06Zcb1ErHnAPyjj/fGDMvOT
rfrVIjOCuik1r4+Y48mEgXzUx4RTvo8xy3E1J1WA1KY2lGGA61iiDNjGPjI+2ePY49ELnZSWcvZe
sBtwxgmAmTgb4shgjczoh4sqf9HnrT07wAmjNH6NYOsgbB04ZqrPsnCwJ2lji82n2ZQWXCvMUBNn
WMtmDVEIazAKCRgu+BbLaMJx89FMce7BIxuiS5qbpzisBR1OZ2vQGi5edQACq6ocF/eUwZiBTe/g
yIbzGKqDgG4khyLdSP4rWke8DRfDcTeeuiLsqXPjsLL8Wk6PHjB4sHaGITR++/fise3CxfNllqiF
o1+BAxh3YiJRoHFqWm6jAQbm9DhbTRJZ9kR4s30KqcvqI7B0NNZdIl5DP8wZopQh2QilpQTCpWQN
69hxrxAFrCB+cIs833qT62337/F63bE815fH88wmpE7VR9GNZ61VTgmKqr6CYz65NRlKMHsSuyKD
G+Eu0nmLf23vwOIPQbEss3ictPr/c/FL+ct9vHe5+y/1r9/1McFZfJcBDPWfK6xiwmuXYO1VYgYM
trN5vIiv6TPEHtVEOsdJn4HJRG7Eb49APeNR7wo63sEiwIREfL28vWZUkuloh9emoqpsouYT/ntn
eLjMs4drTHXEqmug1/Y6e2wf/3jV2d/bkd1BIWYHL8bjMRXGub2mpbMGx1JX32P0fRp+H8ffZni0
JJPJsUwPPtJGuzRAY0TMWS96RtYdmXa4rry56ZO0VQNqTutmjc3dSW74HctvTi0cwN1/b5nu5DhA
d/606es73cr8rk4/dQO3JlQKZ/jNdPrzm6yAtw+nyS24WpRJqbvzz2eR/XvCqStbUSFauuKZDrVc
cH5abhC6qLtSC9szH2ohgTEdBhM8CDZA2B5o+MXg2cYz8dfsyQR4dD48Dc/ZHtDlT3t22ptFCUtf
m3Jfww21iNc1Xzhf8E6XNokeA9sSYIQ3A35hKznF8dsJiLktrpNKfJL9l4cTWmX+UapQW8a30gSa
jo6E3NcAQ1OZKa9f7slj7nkdSVAqdqw3k/ldN5/dZoPxAIgRjXdcYOkBmznDmMEKKw+7s8pZuVri
500sS+7TcX5dxMtZOiasSW0sYLnsrw7OeVpeHT/ggHrOTgBqtK7zqKazlUrNlRLHMflfjPbfYgJ/
yUYP3JsjJ9+TYWIV8KSEo3HE8Ql+88ADLRSRbJrpnrMbxSTX9x35felMTfc90oB8sSd21N4gVJ9K
Azk0kHmNZxOqVGjAmiuCQlbDBJIdihV8zRCUWV0p8KV8sJ+Jgwq4BMsNICubnr0VFxEbwvwUHjuA
c+9LK2sHGkFVfPJpNR/ZOlRtyS1kRY0UuDDHEFEHT5ZZMsDBnMf5jzFqZqKe1OELLkpcAK5aq2v5
TjEvVYoH0QtmKm+FHzVotEo2sGqsAeykDm1EhPRUvQ0h5a60HBWg16zBwjxgtbbvwFGWuqTLEWsw
Gk3FpPAxZxnUbEF1RrTHeX3BbP3/l+dzbbIbjzAV7u7z4ucko4/CePDYfH+FxXvf8ZKIR+xPojbq
DfcB/4ZGNTz+CQucG8/fk4WN7fEFf0PwJnY/C8wfWc24Ax+AGsAesAGEPylK/Ds2TkUUV66KrK7k
QF2NFuPwRJ8/WNVfqAiyU4PYSpBJK7I3YHBegbHV/6XbuvifX7qXf2z/gulofZ0Ja9TRw3pfG+FF
TW2c6FFkvjYFpAMTBTIWA2oRpm1vtmZXAuZuz9Ql+AZI231s7MN1naPQqFwi8Bz5lglaJMcD0a2H
6PP17iSX+qwL7tjyPvK7zBRfBri1rhOvwo0zcupwR0EamHTmqY1NK2F3NpfELVRBEsPaJXxZglvE
UimVKBpll5oSukV/Sj1wsu+qUMEouygVYf9zOp02Vy2KLzAk9LujHdwmO5deoanvs4NDxcxdbpPH
QO5zqwiLKFrnzcWYiJFcrOdDITQXkHuCodIjvJZNH38MjAPREButkZ5G6oSdudz+npCNzNy2n2YX
Mgpt/gmbh09Dy4aMSbZUz0laqIrLvApMY2cvWgNNihjTX0VdJe+VuQOdje1+3yXzto7Dp+EtXi5z
4G+Rv2Ct+NLvDsxDr4CjwMCEqZ0CIEeWkjjDOvlY19OBKMRpn71kXXvSIpX876C+fVHbrhWbVb4M
DSNEcP04/3DH4eJZDxSi/BvKhNPFjbbI1NjmDgRM4/DG9pmB2/kf81WZfF5VQblMn3X26AqFZHJO
kpi+BbUf9cwCqifvTt98fBuw8+WB8cnU7c/SkvHKTndJdJuwOaI0oYOFfEonxooyzcLYjTkGZa0h
Bo3aUBpbimGZ+6uebB+hqU03pulmrcBcNhcVrtp21TBZ96q5j5FUWKcka6ZcsxrfhZBOZUBT0SvM
TBWoahiaoNhr7dOLPuAZ1c7SB2Bkprp4YFkh51lQjLkR6AB31HDImm/XOd4fRGUjw2NuFodh8UZU
HVPjv4NssmGT2GyD2HIek9Ssh/oPE+o/fKggJANAuYw0mPK5polDyhpf0Y2BNbI/LzYXqhDnxama
7M9W4n6z1MGbTtqhmFYwaLUx8JpPsRtUtdp/8WTyFm8NwohDgnAjogYyXmTLdkca6aq462ABEetB
gT7QkPiZnZkCpk7trLww2GOJpUbk0tjNxK1u+FBWB5chPT/P7Bp0hMh/wxEf3TE5zv+VPNAULVl8
a5SPJj2GD3rzpIqhOQoF/qCcpdPKejKuigwe1MjM8i4Ft5q1eHWy3rTI58ezuDhGn1b0Fz8tgYJX
SbIojQ4sNrMnc8UvqjnP3+ENlZRi57DlCNjtZuAA/XUzoJ/A894Y5s1mML9gaTJgmI3hZpvB/RBv
Mf+kGSYvG3WsuW4joONmoLJS3rZgq2awvNrCtkCnWwJ9xzdWA+xHf6f5zBkyZXGjuf2SypzQnmGM
1IzgzL8eFckmIUxkVWAvddYwFZoxzQxvj75o/H6Iy724GQl9iWl/jLKpFFHpQs3zXjP47nelhClB
/q3UcEXK9yHG92ELA6yI6mzNziIOR00umpG+XIPCW/NOBA8RMVDzDFrtDW9Q8BHxxHUIiUD1+k3m
02qHye8L89CgwesVvmFYTy6HBg2URvyeQwpVUMdxlebIdQveWBpTwunwj1r0LR3OkZow+aK2yioT
aYrn/IBd2p/8k4NFVLGbRX7H4sVDNcO7teIROgoEBY0zdlKJplgBbxSPsgc2po8CMD8xZ5oCBUOo
YAYTnN6z8DysrBP4TZXRrQ8gHNqJoK9q6+0KVQQ1avPjPTwfGdhf/RrgnQ/1OUwnh0bRsOn7DWlX
X0gsLwHN/ZqbgkJDyVyfwGgTmF6VbDSo5SrbHfix7TujW1B2+s3qeNnAAIk8yu+bztqteyit8IIP
xw2eGy22PKgSdzR6vXspbtEofKtmtKavdfxg32a+rqt54hwdzl4OpbwgSh/24cnhsuD3aFoU25EV
Tt9OUpnjCg3N/P/64HYIFTOL/juspBGdcdxMkdJ+kzzwIrQW58rvqoxHPPHJTAFIlnEhvORapMDH
7i6SO7w+EHAClzEZ3/DCDr8s6GMKFnlDiblai2Jh8mueLlpqeIHSRnQxI2kiMC4uNXbHEOYwIEpo
4p3GUdC+s8woV3CSHbKNpa46sUO2J+sE8gfDI2Za6l4Ze1E1VQc8LbQ2NJhUTFC/MkK4+mFAQoq3
6nvBtdEQNTXR4ckIh/EiJeEiJXMlKXOj3lpfY6wYwc5tjAYSq7pfQ7C6yO9OxVdVqnlzEBVMCNkp
LfG7YR7kBPGUF5OStdJe0lN3RKNNcJsmd5iaiDW7c/za4VfMa7+LF2Qx4GduWCcVj43gJ55NiEmJ
W4bVNcy9wAmeJOOSvgDhaPXkvfY2reo/jD2exYsGk83mltqIvsEAOnwbYu7A8U2+socZJWPULvxG
bbpuJqlM0ii+7G10EQWeMIVZVxuKupDVE91gKzUV1iGfL1ee0eLi7105VCeyNtrnXGrJpFyT+EYQ
piGMCyoKVGpZRh3WFBQ1Arn6048m+tuOXr0K0/dmi8RErcgGzufwiI8eSlYBIUZW431eYuO/8bt1
y/hWpdio+4UcPGtufgvPZpNpkOKL2k4WfSOr6mOrSBfd+I0J5XnAUD8O2KO82dOYj/vVfsh/WisE
WjpDzySfjM9bJL3Cwgl4+OZUfqbL5sGvjNwOuAZ1Ukb0aS7eKq6RxEurzSQBTBkRGNYXdBUDbFTR
lbfVnayPbXG0C/4CrOhL1Uqzqj6foWzVM0Cf8gOS6qRK5i2PiB32n2efP/X4N1Lp9KGFQwiP1WpM
dxbVURBv50YhYA55XTekKaWxo39DHRCc97JkUM2BpFgBmgZYi2XSIqDuekxQX9Lk3BK6uKQN5m06
cUoiidvNrbxzfKQM3yO+TrBA5nqEpubvefP95hkVLwSzdOH9SjKpUSOBowx7mSOaL8ZCXPllOLh8
44Ugv5bJJ2HXr5dsG3q8wYF4xcntZKh9f12Ymm4b7z4UPnyTc8OjTF1Zy9LeaetqaOIxr/EwGAvh
r0yu3GDByQ2lmiAvRE0unkjfZrpayIVT3u6yzbysQLox5DYpqvNc0uq9qKqjmEfUKXJrvYrCR3WV
hZvKgD627as1/k2zTefXF2Ux3my6Vm5gu+6e6Q2QrUtYNMb+lC/c4TUdt6SNW5a8eRijrMeozDOw
Eu0bZBpXWVzVaPdUF8aE1vdxu8sSYe+d2rkt1sXvAhl+4ay6Lpvq8/+VSjgEbrYPpdewA3H/vH2B
2SaM8U40d1DSX28guo6CWRWYKFePNb3ApGuOFmVN2hpHJ8DbuaS/i9rBdJ46OobKCJiwdTbp76J2
6JsueYl7gM51dyabQeHaDzfrEO7lwGcyPBRcCPdze6pD024u075+Hz5lmVWWMS3iRonFG03bxihU
L96rh0zXrNX0aqp8/Bi4LUFYIx/BsLD0J1kaDXrTtEgkfPy3FcFtuU/wmjnyvEU/FZszn4bsCMr0
+Tm/c/I9n9dl3b2w8eOJoCKRLRXlGEQLzrx+qLd5xnak2kN/XUbTBKaCt2LbkzPcX11wy7j/gj6G
kkWe6KOUDli+FkHMej9eeDEyP79Z0Ed3+dR32Cib3AiS8drC7+1E/82KDRkHMyYYrKthliwWnyWa
QvG5fG4U+bGlYf0Ednc9N2ImvwDk9ars23K9olVGZSZR3+vIr1MlaGm0MKoGW0Wp+PdDRuEqUZuK
ziKwTzrhxTpU+afCqnMVWfWg3DcEBWWvjG10OUo7Q/G7vhdPxna78XR6q/M31wg1qISTETVIrWpW
dWWuAoTGtluURRGVyAL1UOyppbwqDV1JVFOixUFC4FnWIioKq1h1umTVFFk6zt4agVIrAc8HOcoS
2PiU5/nVVqrEJu5XOuIbvNqb2PG9lO/0w72OhV/eyQ+9T2VpnSKfU/EOjZRzwINzt87R+BZx7UUQ
mADhS2y4jdb8rdKB/GLL0O1xup1d4tOvZocV6ddweopXSBerpSWPZJmcncOlEBMRsBnMb4K3ly3Q
pUniInsAFVGWaMgPEVtcrOQ+RYant73D/nK4U4eAcX2TK9/t4l5AhrqeoBr54SFdrsaLlk5UESib
5weNiPAKo09BhHrCkPQ3E4uBONQWSJL7SgD3VWL9lVEdLfSMiWMLLO4ArNyn7wX6vEg21fFWBayf
Or59f1wYg1k8AUtSlyCUValaKvljkdy1ERfLJW5YFevSrS3Xxexrswi+oc9bqNx5qFxXPULOfYrb
4mR373jk4+XhELflyqgX91Smse6hMxbtHb4QlU1bknFmCZviWQ2D3c3AiBNX4DG6whUvvEN8Anrk
qZW+wX5df4vclgQOgFBEVnxZ5UQ5Bo6OmCPdEWKV3KudlHn/pelP6aJiyyHepDFh8RilNhahMwqk
8odXolTdztD+zTX40jJsuHEjgQIzgJFqw6RnGqT1U0G0rMdah2AOLl1XpI7IlCjh1M2UJhcaXBFo
04IZJrk2LrLhOxtUTxYP3cI1M7TDoU4Cg2VBWnuudf70qp6Wy7bViV1Hfr/v533I5I4GHJ17Lmyk
6uPDvl3tnbpFawe2ruxyIy+1Y4es88bBNyevE/begrKPfuTPPx4MnBjQSbu02PyjJx4rPOyX4yJd
VsNnh/SFfb7I8hj8FNsS3BlqIxa9OVkeVuxFHQsUDVU7cpTyPBvFhay9vGMnmbk9RKNFXiU7w69l
QpI/7bBfO+yG5H6G5dgxx0JmfIJLDv8b4xOe+UvNZD5uh35NSaxm8TWXD3pIKaV+jW9jTomD2zyd
wJR1bWgO9U2WWYm2QBQ5HK8TvR1QiV8ArHy1FWCgtBlfca9Pt6JOO0PR1IYuF8yMu6hVMwIuxpJR
P2Lk4SE/90MAvijZYVh1EmaNhz2j/B7AirM9eXQGIzQnAuwMqUaYhq39ZY7AGqSsDbg5PqHztJ2h
OObiwBoQ4B7c0Q4ysszoY+kClAWYU/mUUS1MYmaRmZfIhDpu/+xYZDXSAredgHXyyDeWgY8aFIXK
YZ+GNBhD7xnxz2eKV0yVvDNUr/tU1/TZ/wdQSwMEFAACAAgApqEzSs7XfkW01gAA5twEAAoAHABz
dGF0cy5qc29uVVQJAANYjoFYWI6BWHV4CwABBPUBAAAEFAAAAKX9aZPkOnIgiv4V2Xy9Yhuxk+9b
q9Xzpm2kblmf1l3smayMGcHMZFdkRCoispZzTf/9YSPgYMAdzKOxUXZWnYITcPi+4f/9H4fbTfyP
/88//L//4/bx/n653m/d8fLWTe/L717vbyf/X67z7eN0v9nf/39s/Md/0PIf/0EYru2vqrf/p//j
v/7xH/7Hx3k5XI5z97Qcl2453y6n6T5379P1NuOQhgSJu19FBVIENL1O18sZhzRmSEK6H2FXh8vp
cvULDtP523SrAxD/+A8ybEUyu3bU7ofJALrnj/PhvlzO3eHy9v5xn4/d7f7zNOPQxgRtsH8cBw/r
6fKju71Ox8t3Yh8m78N4vPS1fTi8LucXFIy7mAhGqn/8B9av6Hh7v9wWf4DLaTl2T9Ph68v18nE+
4ltSLG9JONSIgBqwtpvOFtblepyvxNF0gsOGwf0YPZz7/OOOf5znjzPjflhchqOcj4vDxRTWfRcH
/7/TvUuU3PO+CpiHaxEm7EP27gfzmymW9wJbrk1eroT7IR+XM4YtNyot570j13g/5eY5uvm8nDke
YqayeYFuftR5+eDOPlSWc3Tzg8zLHYlWl/cDenaez864+yEqqDPo1/v89dGR0sgryxX69QFs3i03
leUcRd2QUcdF737UUDeimAdnh9xdXhxKtCMgWkcDbDCVs6NkY8C9a7dcV6iuR5drcHaHB179uka/
PgLUeRGtKstR1A0Adb0TBP1QWY6izmSi5cp9XVW+zlGiHVlGnfA/xspylGhHQLTu66z2dYZSnTGA
ZZT7URMXKM0Pu2gevbgBXFzv5HBf4zgUdQNAnRae9Cpfl+hycHbtOE5Xvt6jy3U+O3eakMsazeNE
C6VN70VOhWFRlhmBnFeOaFWFaAUqaUcgaaUjG1lBXY+yjMnignN3dl47O/p1DbSMEx3MVPi9R2ne
sB0qskeJVo8Vmvea//lyvnfP83T/uM7dbb7frSF068LfToe5u85na4eg1pGFK1myFoVwv0fL09rC
3bfpukxPp7k7zs/L2VsYKByR7VfGufsRjnhaztZ8vc7TV78q/7E7XS63uTvM5/t8tUZYnXDsTY/h
9E5fMNE7+IL1G9jd9HG/dK/T6bn7Op2nTmDAhgwsWhtqC6rcFwaI9X2GxJ0mtj95HdaOfbGeJ3CD
FO6HagDDQakESgvjfgx1dP18f53PNxTvIuNdO1GpeRWMtaLvz8uPGQekM6acAc1VHdDN2c/d23T9
ioMaMihnqvJoqj5iiT6bdQLy4bjzEOxP1iAqie4KkIKzhrkeaFAoIA6os/c6pgqoRZxRUQSMe4E7
tihT4aiSCZhwOBeyhSiUlQdwfYxle3cLyvrMs3XrnOzBSUECUnAmmDStM0r8jIDWe+b/JtoV+ClR
jEUDKZyy90etM851pvkm3yJzzMjGlkjAMc/6vCmmeq+DHkVfQL4lrcl71jQrKkBjwpuSJK0SVAHk
g/MGudHBr/22zN+dcuze56sDM73M3Wk+v9xfbx5M7b9/m6/35TCduum0vCDqytv7IXKjvDJ3CDIB
G8Q3Owv2QEDsM0SvpftA3N9erRq+Lb/O+FJl0tIQtzH9qoRFR+3o29v0o5uebpfTx52CzzJ8aPm1
4X/fA10BVHonePful/Me+CLDd1THRt28qul8Of98u3zcuqfT5fCVAD5m4NxvHqeD5c39bFzlkFHt
BMnqn+y6SgIs3+KYNXHQojqd8eosjmhwtDf6SmwT8AAMp+wgNAKoBtTrtIYU+4C+zPdf8NikAy3z
bblooxz3Ey6xX1m/qx2Y3cENEhCsc4aZGZqUEP/Kk253eF1OR4Iqsqzw/grXOwjtZBXGtzk4Hg2i
y4TsIh/OAU64ebscb/OpExr3MlSObTt1EQjheTlZFRN0wsc5qlXkiN5/DATlTDXp9iN1UF3z8/N8
uFvltby83s/z7YaCiKzjjT2v+8A+LDrep+V8x7/PZV6dTxG//nKdft6sprFq/TsKwrAEQbitFN8/
vE7nl7m9jV5lII5veXmIF9Tdc4uZrO0gnsHegFX554PzHE/z3dLcdbq9osBCPCtjs7iNy/t0WO4/
SWyYvN4RCYMHmc5WbN/Js/T5Nhnz6tvUTzP/sBDP0wk/ScaK0+mRNSOcw+XtyRpHOGFqcCHu/4rV
1iJeJgoLoyywGMX563J8X7qIi+XWWbPu9vH0bhnk1Pn8B4kZkelsdDpilLKKW2pf0VP2QBzjRtsm
gLB24XJ2JiPBLUO+Hfd/QUa/fngSp4lUZJRIn6LzS6/z28UJq53cKgF1OPOUGV1Ii9PHFV0crYs6
Zfsbxa8zEwN3pGSgqPPX+O2ls9z1NpOiBmwghI5MFQdkmMhjAfCo92nqdPB8vbx11vbC73PMO3Iq
dyhE1/v1YvWL5fY9yUUvhjJtKWdwqIHX8HS9XAgkiQyEuQDRah6XFBIUZ3eafqKZvSEKEIgoXhcl
Kf2Iy5LMe44FeKD7o8VQzJx60uuu03H5wPejgExxGUumR3g2ix9LB9fnkwVnRcVxpsQkJGavt0py
dlHIiTjQKAqVEf11rxq6QnXhhwFqz8l9UYrX893Cwu9ZAzVhBYPk2zzw8cPxwA6NIbNIcs6JKmj4
00K2NyX5sTFmwkqu8hFY69h+m04f8637vtxfu5AKt//quvzAd9sDvDs2Lu9tOTufGVeuuiBD0VdZ
IyPxeTqdXDq8ofMZM6URJLdiHQAlWBfQlN9o3ZCj9JPOks2ZmFGyPTCsXTXfgzjaZ9WMPWHlQbhO
Eh+771a6zNa6Ph8dDVpYlw9raOOMPQyAG1Uu84g38zbd7BWclvfOlyIQ1DdsuVrUbjiKHC/9KBfC
K53MpjG5ithTxK0MWW65ZOsggbCwFDu5io2PK26JKaC1/RaqO8AvLx/BF/Yw3MDeRae9LGQPL8xl
INNxNszUJH0KuI5Rf9mUIh8y23mnvyIKSFNbEY7H/PZuVXe0SVr832e54n0JhVMdQWmiZl95vbha
FD5kc7heTjityHwod77SJMlS+M2uWWhLF1ANczToAfl176fV2rqt9NvwSgRAtUOQps5mjcnTM35A
4KyxVFy20dukb8ELY1SYnUqAEP9DyRCapmdSVEBK6nNEpLAs8jXukh59YaTG0PZtecvXuMtoVoRq
gZYcpZ6GkuNklU9IV4KxseYgZyxHaB/vR0cHFkfT3VoUTx9Ox9EWGQPGReEdBeS/fu9u7v8v9wMu
ChQgLheIQ0hher4TesyMYB/CB/U9mMvzs+WQeT4n7nuzCvf6s/u4TdS5RIbnbiBazdaW8OTtQRGL
M0U6lSo5oVGvl/tEqg5ORUcgEZ3nlxCGa7gEGqAqlI2JLFqcyfDuzBFnXq6uAS5YoO0EQvO4X0hK
mYw2l0wZhhraSH/bJ16gWDFbV536vhpq7OpNUr/UW97ErXNw6+4o8euYyH6fLGHf8XuCgQd3GMZV
w5ckpWRfWsoFcsNtx0ibK2D1Ft6V8ga5IkKgG6VJaMyMM+WLc1WLfppaeMwWjtMMa2Xe8bhfcAPm
d7JkLPD++jFHpsWFkSzlbb913XESBF4RrE/ZhBBJhSFrcYMWRnF0ZqZwzunIqvGaWIS9KleCQVnB
45rXXHjyeEDb+zK8R8FMRGeEKXQNH6qhd/xiec3dLATnk2Mg67jdL7iYktBB8vU1gsIqgU0gf30x
uRR1UiVtelHLAwQn/NbNP94n75MSNgCr2XJQtNhbPd+eL9c3Qp7omvA9f1hBuVLH60xZlAJYlLCY
GqrIQqu1Al4K7mj0JTm1WyJuB3gnKikjTyiOV9I+oj7wmwtBo7fLN/cv1hTIOeoKnKDAVmGBYQqy
ryrCQT3Ot4MVgRMZNwZ8wqjgxXl6I0KYMGIoHiKGID5zOE1v7w07X5cBlVh2jMPCAbEitqDNNhBo
D3iyQAmrTI41anVFk6sW9be5S+TD0ICPhMnUU+LW+zXrHzrIVaHLJJp7Xm3HjaN+pUgpCd8O4yO6
UYJWv7ADns7wYkW1KOF5QN+W2/K0nHwiz3NdcCyovh2Te21ANuzTiIgBNhwfoNsJ1ty19s/xjfeb
5p5xF4bjRrv1n+EYz31RRdtHFb6TNlf7ARyaBN1eyTds7dWbwqRzKJLrGlAL+hR23OE++P0WEQKH
7wKiOCQFrizlGHfvs0FimgEWAT7yCn+XQhEpFB+6z5x/QEHZZ5KJZKw6qM4EV4YmJgv3/oofVYCe
vWR8NngJ31ruePOxtdRqQmdoRBKqbqWLw1McQgoP6zbg38h8KF2qT6g6eR8v881a2rH8JtzP6ef6
XffBd/sZsoURXDxLOUXs4nc2Zpp8VSJQqPrM9ulKJZEyj37TOcFz/GkthuWwl54MFCGwO/B4XOWl
+3WzZ3xPgDx7nms0GzyEbw/IDcWz3dUSn3DPOC/lW5c+gsuAu7Gc7R1bGiLbVQ3ooFUubbmTC/At
gRZU2P+0+hvf8a1kM4FLEa0cPCoWvSnCQO1r4YffYlvjNh7Iy8IS4dvr5eN09CzxOn2bC9va58cI
T0nWkp5lpRPupw2FO6E1VXKF2+TAKUksEMgq5B5DB/y3l9hv7sj1OD9PFgZRlAhKgH0LUOzC9TBd
XZ81ay7Hn7GEIndLhwQ2CtfASkrQdgUAgC+E8tyQEo9iBoUMKq59yS6LHRIAXHC5usszTGz4/+7i
L9ONumuVE6u+bDVTKNxvwu/zaXqxqufdZX+t1Lanc7TkoiHzj3u3Xgz6qTEX8gI/E3wp1grkQofk
AXaRmD0hNw7ENgeS+IHuH9ezxdyzT0t1nrMb3KFykjRct7PEth+ICZhWwlVl39trzpzyqhMO+NuL
dSOX8yoNny54SbbsAdJDE0STNi1XofBA+wDIrNahhe6Ye7wxe53W5b0SBpFKZn4g+NG3K9Q5NFMJ
XShsQB2y9LItcJCTHAGok8F2g4TUACjMNWVgR94+cN5LNx0OVqy5Mx/b/DDoehV63tr843D6uFH4
WssO/eayJZtB3C7P9+7kgg7EAWXBMTKgPLPJOtFjlSqN0mwOmgBGH3kYWjIlMOL5QagQTNg3xNYa
3eySsqXZ2rASkcSe4S3vitKpVKkRGi5SpKqJEiub2nI1K4kiMOrlWQjL5M8ksOl7eHohK/LR98s+
sOIjMGtuRJMFB5vtldCviaBi3kkNwxrkzvk93o/AWABigyxEVSn7FHo4RA5yZX6KlUW0R6ByTXLg
7pQA2EqNmsBo8NcAe2zCRI/NHs+X6xtW/a1y0jgpsO16Ly4IWl4Tx0ki8iqSKCdH5UTkHstjL5et
pS3haCDMt4Zfq3rqvpwoHc0zUTiQhlKgL84z8WVFpMUIem9ANKu0ZoMVQUhtUz/qpy0dRqAT0JrK
V9QyT6a75dzXUF9FNLmoJAyCOeENII5b5LjsBo2JsJF4F7d5q/O2PJ3cUAKc68CN9WPult0Svf+d
oHkgYIbUZJCBvFt9H/mP4BzJaxZJhnKcrl8pLuG6Kpuq1xqdKqqqQKVKJAfR0XYsNc70R0YoVC6R
S/qRE1tKlWrgP1P17irFNlftLh8wtjyTtZYqJ5u28qrODI5ofTox+mfessatdKSzdkMY/l4puoAN
tCnD2WTXtfYbNM3hO4V2jO9vYxTxRLTG83cutzrd8WuCHcC5irsO+3C93G7P0+q14DseALH7EUy6
7rARXlpmfucMSL7beNtt0I55l2JINng9MJHs8d0BChD3iLGEfQEK/KKGoj9S6F1e2id2DC/N/3iw
xzMsHApQX15NVkU2nnJRuXQf9/ZXr2gtKA7+ZHA54PS+oGGKSMbOkJxKUfCVs+UDvqFqC4mkVUhu
SRDnPtMX6AIJXkTANRgPUN3gU1Z8nzyyrss83Z0rEX7DvwA9TQ5LBJueZturGhvRKjoPpnIRUbLy
+qYpSiifDMudWlJGKBm/MfV4yKP7dewc5HdkGJBHUV9zPAkbu6mlQTDDz9kYSVt7eY5hVI7LqUwh
SvjMitwZ3zxXwhE7qAb0jfOcythjhx4vH0+EEhrEdhLITu0efVWfuiNDhcAt5D7sz0kis+BOa2jP
smoTNVrVvM5t+BeiJopMgsF01Wj8RFDF7bwRCVGp4nfjrjUxH+YYWNKZiDkMEkj2orBjgxgncAlM
mHpQgDYgHLhP6GTgNcBywK0+JRNEKvc745QAiWDNb+yMAOgRsfYwSdk4tC6vXqmm4UQrRTDIpSkz
mxoGjEaBZQwZQkPert1NgeVruZIHcZVKJHdFuFV9CEgZ6Cj1DeHdQPobco8w2G6rEEzlYtSt6Uqr
GPw+NwmcbSgsKKgnK3cI3S73u+OP4uUbYTbCyH6vcl0CISJjucJvVH+yhg3wNbpVQ+U2Yw9Cpdrl
rYyhihVV7krbWP5gI170rSZ7aL3ByRgIV3fCtX0kbyoa2z+76fT+OhHbMjWFleG8TtdjK1vD9xqm
+0qrVG6ZX91u3jIJcXtrGEuBQlkQx+k+dR/XxUvhhisxbm9AVfnseDm+UEa0ashLIiZPDKNXaQqC
g+xSmFq3QrHnT+acVSEiQOXfjthTwI2r4GpgWdcnpIFsIs0oTNadZTpU3lCYeVNSpSroTwe5OYFb
OLitEk1dmZtg66F6Oyj/4BH3YSj8ByFazE3oORCSde8t9HvuYv0Fv46ShYT6hBPi1YjrjaOcEOAC
Sj8CemwncFZFRSBjLOPTe9Xgb1CBqmrgAU94taCowkeVmwR31YbsJgs42MxPowmJUs+DYTSZj6t2
PrDqeAD23NUnP6e51X5Avk9OMLkOQkiwNoYLCioGKBwof1tmCwjP1vE0NT6M6s+pSbgP6gJ5mj/O
40i8HLYCMJqd8TyNww478ckz8QCHiDvzNI87QMglCcX6X6mTxPCnP4kfS71dn5wqcvoLT1PVw1ai
o+CF5DoWnJiiMObZJWNh9rivf7+6ftBVMPhhqHiCfszzMsZCPvqBfn4MuAdywseIg8F8PsAXe6X8
ozf5866azs1iWg3EG76fPE/c5XBiPaHfz/fZ2XEgDjs71+RyxYHJ/CQO6H1drTg/e/B8fyVSoWPu
PhoLw/fr1tP3vkP/o++e3t7xw+Vrc/mz2AQJcLVeHA4h4zu0qP8HPg5+xxD4fPnKC69YZ+8G3n4E
/fr9Yg3om5NWBByRzxVCBOHWXB5gLSxNBR5+yLMzoa5n1JM2oGFUbkq2M6CygD+X7nV936Nw115z
Ga3Xdc5lBntYrgdLXW/TNVQE/sD3uE53kUV8P4N6v5x+vmCuswHVzHJTauyn+MSovUP+HI+HQ5IZ
kvDbWqc822PMrfIaAzr/ZBG5AGdpBTwNaMOXm8Jdfx6n/M6X7vk6vTgZ8KcjVSdiwOw5uXl54gHB
3fxtPl+OBCiWrz3WonNiY8SWRIYD5+rlLYWKcxrVgAZdFJoNW2Tnqu6P23z9xVHAX87/jj0jZsC0
CJmGibEHSoq1JB/3C8MBCQVO6F+eGEm+A3RBM94IeEXmN1DSDVhXaHm/d+8W1v1CzBI0YMCK3IxI
30gZgh4AuhioxcsAGr1GJg/elEGQRlkM8eTfOnv3k1XCtEtKrRswSEgWpdb1O+TEHQJq732oakul
Tc/BgBFhchMffNwP2chkwFgVfzCWp40BknfmQZooTDW4GDCFQm4aD7bU5AcduJn71OakBJsDI9U8
sNPH23J2ta80DJEJSqqUT87Hm0/2V4qBe8Af8Gm4B76jrmwEaFG+OUkgEjPNdf44L3dKDYNtmSGH
MB5pgDRdDGjU9/NZ/ESpIYN6mm6zlsSFg8WhXKwnxRIgcPSBH4+xYXM+M9btgV36r1cF/6rhE6KT
kMk9MBPgRIINgdKxBgPm+vorCC+woZrHmuzP09dgO/wbrc8A1OyNPNowTQqRDzYfJgBb5pAA1gyc
bughxXqc09IYV2fAIF0Zg8Nbvt6VRjNgKITnb5kfHHggtCQD6dC+AbP0ZHyGYn2q5wHmDtGRRvLI
ohoPIKwYRNrCm+jBVeawwQPeCIQB4xpO9toQPVqbYcCYULnpRIcE5TTE4fL+k4AC9AOcMAK5xnVG
UOZZEwQlvgirygDJAAZxbSmAuHYAQaaBmY8Kw2rSX+frhbgvs7XJtlYtVb9uwFBnuX3w4WEzrbpK
AyYNyu17uI+yjrg3wLVw1MADh+0zqCC0EBj3Tc3Wmjuc3Is+T1crJ2+xN9ylGl7n24zHNwSITTAg
L53/Hv99aj3e0R3uhHcMURhTxsubXcKcrSMig273ImR9C27+EV4WsP/eNV91yqiBIUkvzlKW1Zgi
/F+2AthzXN7xvUgO9uKTZyBU4oM11t07hMdzUSDRYjFxatTa5G15MiIWR8WYV0J/8zDdD6/dcfm2
uMjpz67Hv82Kb69DhD6elkP3NP+6pPkWazjMXTqMG+KQdcZuzinteEDJLdYjuBqd319NQfhbiMef
sDlpHojIZ4PtBT4i527ZbmO9bfyKBaASWD5D2Ab+avKlSjDYzNHF2+V88aYK/k1TY4+7fy3RXwB+
5j5/locHUFa0hVpxf3M4T+h8WjAP9KEzFi++9dyt64hPIyQpR84DyKcoCkQDS77eCKoDgiWP9QmY
CwOED9ZHIvAH+AE6ANYOcI9hzdcrFgn24mCsYQ8RTAIHo2qCqQ4GBwL4L4+o3lICjghT28Ovl8tb
EAjzG7rUlDQY45XbL0v804B8cv0t/fqPv3sgDXOFBRAZ+PQ9/1kOBJbIUdKX+f6HqNX8e09rzLZh
Hfg7ANSU+yJWbvKSlHxPyPOCBKca/du86wS9lRA050bjAERNEPuHy8Ic99hJHe3vy8cdi2l5uQYu
x79mEcdPudO02EP0tYutdrQQ6VAe540kNveSdtwQGcHiWTI7HaXWdE1DJLGaSI5XGaQDvjbzEngH
zEfqXme0asgTELB18mB3xwr4kr62xG90ebaqF88XspQX2xCsVZgXnN1Fvgv/XAVUVtGiozI7/rNV
ubmVGLjA1EBgwklOQV9cX57wzWfmAGnrwOE4ijOWwCB2yNb4SQHh+mxBjOwvby+0cJPAmCmesSyy
cvltZsveE5FQBSY9nNdQPJQmcI9AFBlPJmCK8e8ft/vy/LOdZMxpU/9wE3tIU+JT58c8y3YMhl5M
bnycl4OvYVmOC2i4umHDWsb89sEYQ2Brri4lfoVf9SOuLlDEf/ejcl19Dqb5gWxZf8LFjI9P2HK+
kpgqSt6K5XLGVq8FCLE1g61eAVitR3TnqxGjypgKWDzgx9Z5MchjF/sWAj/2ajmqIsZXLDc9ulzE
xKBJxV1MVPAm0c/HhmTi0o4M/7pU5dmHh9VSHVDMxRjA+m3+yJBskM/4x/Ny0EMKlxv9hF9b37pz
pjSKthGgrRhXmg8u0E+DO4OjtsDiEb9xZsYW1qTBUa5b+7Yon1CUi6HcuXxkFEPsXLZobcR3PgxN
YpEcJ3NAK8DpL84t8GOb5rd5j357ddAISjMKxzlXxXJV2bok5IsB8oVXr4z1Cl3dgyszVQa3XHLA
2WRskRuOt0G0ZIvVOCi5jLKJdHlEtUnfFOkooUJ8qzqlcYbTimjdlsLVGOTOPLmnwDbKIcNGoFVI
HFeggrEWZ2uNa1/V5C6GS2Io0Uz10zi6B9kSxITBAlQAKHotZCHDtc8G3RWl3RucK5sXzSS6bw0E
aY6SlJ8mzDTWVtqoODG8vRY3VUbWZmlOCEJZqoCKPEEJfGAtvYfbCmvhD2HYGnyxGptWscEPLXjf
4g6DW7aKta6L+PT6wnq6roqJhPMHFCj1fY8D/mlAKZiVYziucVnGuZ/71fOazsQprS/tOznUTHri
85lQwct0pTzENTaXLdmAUrnOrO0HVz9KBpROAZky/1xCzQnCfSDVum3WEyZO39Q+VjXiy3XbJja4
VStEyWJSVeh8wgmdNz+u8MseedO4E/hqNbY41IoAdPXQVEKSE+eWzSuXjBDmvGmuqAG9sr6tSVBi
BdTCRXqRvDg24XXyUheI2r7x5XwcmvfNBty47EvNXzFN8XNz3re0Ace5ZMyixeUsZNXvJHhsLHns
8cIkbhbzEmmyQmq4MAeOI4Kzo8QjFENLMHF022OmMzC+tmQQHN8ceE8uLVbTQT2hvNuOG26SG9X0
nhhhp7G2VGK4VGK6aWIaQdhLbYHKCP7kzWjaKPEIh2gtHgY8tqJaAhFXBGv5DOHla3zbMAxX1wMC
33avC1qp4FugOgRETr2JXXFkOK78gEhB/HSNR/Akby0eCSUAfG3Em8BtJdY2dkbcogd+DKxJK9ha
45Zpv4klVWxL3JMZdEuSGkl4E+CyZf2yNaHwx6bDrPAA3va+KqKY48464A/QZluGivFz75BnHNfZ
QrUMHYFfWN800UZcpAzNzAAhhpkCLlCf0o3Fp3F9D41ikyYcbGIrhDcxtsO1hKkC/C9fmswqvpDA
N983EwsWKqGAWEHoFWfEup5H3PXMXwddkMXWUTYBtim6c5xLoJGm63EO/NNctvkbD2kNbZ0ve8IV
6Zvf1gaXTKXFUIvua0NI5KHIgelKQgZXJaYZ3xF4PqZXTTMNj+9w8GnUcR1xj900Q3mCsNI0b90Y
emyQNXQK1NRoBU2HwEwx4n/pgYgLtbMShCPDoetZt1kGRqRL29wtCKGq2+kYMxJ5R9EiNvzbGpBa
HolXqgM8vdDrHXkR4s54cWfjI71wPDI15hvzGchHmShQDhvHZvbMKEKLQWPNV8tU0IYa5qJJK6go
B4QC6qJKSw1lMNOmMoHnF1RT9eLuxJh502fhajEGPMfLx2ZSReLZSrYJ8lcsTM5QnA3t+pMeDymx
Zs3PgNs6sPak7nYa3HPUm+qPiqWDUxmH4UdV/TRuVcNKBCR0OeBKQMgmysaRCMyIlhSXigg/tksR
eiJSzkqtLSpCBS+UEqKZqWX4fQvRzAgxIv7IJfAoRG4jhu4+Xkwg2iU3uCe0MclrxWW4lQXrVhDX
U+IOOx/6JpMowmSARRQuclqzOHB52iY2ji4exnamGK/2Gcam0mZEcoE1zUu80oi18+OaCA1JXZJp
zX8j3AHePjgeKOdDuxDD9LhgA6EKF/geH+/b4ISu2+yNl1MIsSOBKAmXvxnCHInQ1LCj1AjXoINs
OgU9Tm3j0JIPRxxrQCZi1IIXDHHR3rggwvwwxDNUszIDkZ+ATjfmP+LeZ7uwwV4qHiWRrGlbC6KC
Rg+tKKrGL1yy5p31eDyw37iQNTOViFX0BbHVbHNOuN2yXf0jcYtNl6KtIhlHvJxkaBb7Es4QU+1y
qx5Xgz1v1YnhmowJ1kyyo15YaV1XEogSt1IZzMIJpGwUx/eom2WjggipqXxdoHuodAyIUEUp1mTN
yCUiHaCuDxEtR9zGlbpZioJHeMxQ2va6pr2JlK9u1cMzvHhU9G3XgONhEtkskJOEBmVDK7yD16Ew
UNWAlHaLkaDzUqZVChMM7heovp2cIdwp2Xa9OW44gLJZJK9kcKcECAfQl7gJ1hOxxKadieogUOvl
e+eqGQrcxiwDgawqWXAy1U1xyvAiUC7aZYUDUdcnZLvOTOOmfckjFamGl84yIZr2MR7q51q0DBZF
dH3A5ol62FrgAVTWt4MthmhY4WW4ZB2qsGlKw3ms2fiB8idMMiAKVOGGGognYl0EPdEjBCLHWMwB
z/uC2jqFNJwoRfR8qHYQlnC+FW8a15xIgIIgE2hULYxrXCpK2SJ0ZgRBbO2yQob7U1slWOlgxJWg
7JuNePiF82aiHy9vgEX5iNEhDRGg4q1QC16XwfjYriElgu6m3XCKxwRFX0bmGK+ldlCsyabuxoU5
0KDg3ZFNQosIdrSrWdB9g4g9kpFieEyPC9NswsPbhESv2rEtIpZpxmbTJZ5sgOmdejEmUSHONG+J
FTw+xNolhQxvNeWgLBBjT4P7BKBzETUbcANVq2YvG2okZtbUvjGhQil4XAsWLvmJn2PNvCXigbyZ
brZkTuigpjuDN2QzGHyum6gD4fuaHf29eK1zu+jX4Fhv6y88VwAKOvz/VWoD8TSibho7R7y1V5p2
5Bi3D9vdGyMhF9pJDjxbzfq2nSQIGlXtWMOA54zbvfMonehmqH7EK5bapVpE4JX1zfobg38aFDVg
ZSQDPp9CtIOfI27oAEsFcaE4blG3KzEZ0bHCh2alFu7GsB0KxOCuhOBN5sRrfplse46CsBdApZfv
WKnk8fBsFpAqeHECkYBsd1Dgc1i4Ei3uxGP8TDQVyIDTqW5GIPFeNiZKL4TXvBDUmB+b7IXiCySi
mK56jIwTdAI9L7SB74h7y49FEW79jzS6Z8fwHQZCqAa1MbFhKAwIGPPp2Tss5+pNfL6L7R29w0Aj
vCES/Qds9Qjm12nXXr5/9A4DHeEGLyPFRu8wUJRoCNdXoh8fVTmjbv/gHT9pFAzxMnke+o7BOwwk
EXFiQQfv+I+zYuuV4PGI01rqjqZuXKPfZnk1Yuwh3hADYVDi3FiVHgNTLgw+9MfgOAfEJuoRd2zy
jp84pwusjZ+YA8DA4B4C6T1xZ2D4IHJyRBEzoBXM59NaDHhzhqgMETjeVG0U5I7RXgw0ahm8xEES
8mWUbaQrHOe8pHSxuyaUgVkw+Gpk8g4DPWY40rDROww4RYYoPUYlelskI+NcGKjrMGiISOGaCHIY
YmTjlNKr1pcZrgQFH5uEIjlOZqzYuBS7EywMTAQzeI8yw4/NC6FWi4HinM2ALEeioAP+6QFgHGll
7A3OXM1To0NwGMgEEoIBZeyxRwaOtkv8GAhYrC85sNrJUVIbx9a5cd3LwFhdJIRq8MUGzHVFZiwa
nFQ2lh7fPceGgQmNhG3MCdu4b63GRtEw0E1IUAo2ioaByXOGKNhWhN4WhTg1/f5JNAzEf3H2Zjid
c/BSABZuwc0lMxYHr1RNSVw28HJxtVlJ4G6BKObYK7Z/Gg0D8wsIe4XhH4eGmsCkA24sgTm9iB7C
htEwUEqDMzjD7TwBXqlAi75wajGm6U0phhuJuv1tXBsMrBzfLnZPk2FgXBThVfSG4FHTsjsk4blL
0TSYFL481Wzj7hQ2UIaBkb24W8AJmc5YbVz/jqEuDBTK41jTuC4C3jMWs+E4tUD3t26tHSXuO+sW
i3H80EyWBtP+UjcG5uAYooyVE3Kt7QwJnFQG0YwwMeLjUA8iFfo9YT2Y0lZU+4fCMNCxRTEJ4TzD
ty10NXk84mGinrWcKaMI20WXoknuHezCQEsGziX4faeaElwuCVQPwbgckmrhuCJRpqX8NR4h0uVV
V8yOERcMvW5xCG51sLbZMOIW7tg2eAY8gCvAqf3bMxUqGzV+bNkkUUmQ6Ob5HbV7+isDbX2GKC7E
aVRVX4La0frKwMQKQokQrCngzrEJ4jjWwBNNaOkwbmTC91HqNyZw5QniUlj/Ks6cvWjJcUIQp8rE
9UUSuXcsDAOtylRYShL3xVtSHOteYWCEECFLFY7xdrShxy8bZoYQ2YCNhGGgtY4Q5HggkVXfNdoz
E4aB+njCk8K/zXXpjlTzDAR/wigmwt4SNznSdEwTny02u6fCMDDz3aBjfDiuesHOg5jYP1KGgdEP
BNZRxb2xGMTe1hmvhGTtFZ89k1AZGI6CXxeeJGAgg4nEEnHnkcEYC1b3hIes4acRwYBiWzRjmIIw
S4e+6TkyIswh2oEtifoig2neNTYJh4FeCII3GREVk6JlNAx46jXNsSOC9YJw9wfeXG5GIg/I2loM
z/wK2UyHoeNsGJh1jKfy+EA4/KJ0X8XeeTYM1EXGO69NkFU9Hh9STbRxgmLAI2HogxBE4liK9tdx
RabahovAHUjTPDnuS6XuG4OXmg9E/Bi8ecvys4i7Xg9hYBqdIZ52wMMdvWyJR1SFDiXGldw/nJqB
5h0i54w7JbAuBIma46p/aIamsKE4DDxUg5OK5ETwmDdvC9fAvW5mGgZcnQhVWlusl3tbWBioCyXO
TcRYZN+UDT2RINqR+8UrFAR4KhOhlpFIY7K2Y0EEcLlumsgadw2UaXuwxNZ1M9YicbEGn02tByMH
nFrGtgbGRvIwMMI9ml21QbZEyrzvW3yiiIi7ataccTwc2Jt28RROqNvVcv9IHgYG2eI7xwskmGje
mCYyLPB9aI5MvcDVr1JtNxIvDOk3UfNh/0QeBjqODT40Ga+wENtXdPfP6/I2TzueKYm0OfBhEWtP
4t/um5nnI35sKNVktbQS7ThmYDgM5R4QiQ7TdA8GolZhGNqmIu6L6qYeRMfieHopXVk2yv1TmBiY
XUykiAShEYBfhizXuIhQbS2s8HANa6OdE544CL+jJh9x500tPOJe1dj0pHF1YpqhC2wsDgPPieCR
YFybsLZwQT9sVLusEncqhGkbeziDMdlmTyKmqNteKF6iyBVvR1MJO3Vol+H2hAJnbQe8x/fOdFsy
oSJ53BFGRj3BZhoTVd7AF+NIBJjjiS01NgM1A5GtUGW0ZFS75/Ew0AS0Fvjvf1+Q5YGyUX9WHkgy
uFegh2aVIJ6ZGvtWQYnBfYK2XEAn4jAwKYQiMjw3NbQ/jiNNAPsWnbiBU9oOMY7Xk3I5tnB+xIvz
9UYo9OPuV1pZnsNL2ad4I8m2gKj2zJ4iIqlMtC0G/OR9c+8K98QUawb+iTAs1zvaEnBy4bJNLrjW
l02tj3bLMfA0IkHpON5Ev6H0/bOAGBhnQGhfQShA0wwKovalGdqnRj+8DVd8YpIQA8+94vzN8FQk
100mISx6xtu9gZzIUCnZwrjG1cE2ttXvHwXEwIN1FJfg5g7Uv0hgDTfpQSwUG8WHq9B2zTZehMva
5aDok3UMvMpIhIgkkbfum1V6eH6IyXb1sVREUE83xRoeChWwvgNpZZFEyGDk7for3OwRzVo7dOMb
z7NSpYASmjFN9kKlCsiQYHfFCIkm2oobLx0WvJk7ZkSygI/NGvkRl6Z9s4CXaA1gQzONiEfUmFTN
7Cved5uetzD4NDsU42CtK5mrTKNDhbjR7aY8PA7I2/4y4QVx2U4TcGK52rhgw94ZQgy8OI5L8YEI
KI2yqfLx1YDA/cDF6oPlONJFWbBc68RAjw07AutvUBs87bqnPh0P7MByTER19bhlCasq+k9NEWJg
nhtOp3h1AANRODRaTVDpDg4b8OkNQ5mdUHunCLm7Ljs4jNk969izdrNYbMSFWd+38G3wPDeokHPq
tlZZoDVR+CSbvYi4jTNuUqbj/kFAXog3Y664v8tU32QQQahN0xxfgBdTMt2uecIHq3DTtErxxADb
uCC1N9fw+xqauX28HpKBaC/+4BoePixpvJIDG3BbAWhsJGGKYtvwZncUUZkHsqWMfWqCEAOTwE05
iac6iMcXo6T/AiCFstfAaHpEX1lw+Rxs+VrlrkfUzLP2Kbo6Zm3Tal5NduPLZbl3Uw39YsuH8uQV
Y20gth4tVL8anRY24XjnGXFYXMxF9NDvRwnn19cNH6tJ0dUsr0bcEqsX0NWx2cqnYOuzEPxoGnzv
pok7V2qH4q7PZIO0yFmOx28OEF1dL3GGr+7z2V3aY6xPkcARn0nWy5tKrgNdHKP+BNqsYsGZRRUE
V5s6RhBMr0ukyao7h4uJzC3IHAlO3BgD9KbrT7kZglfWMDCBOEnIidVDSaw2VGeWoMt5Xo7NylbE
tfFSxg21YkH82oby26xaLYiffCwRN9SK5tDV0rREnCQOLvLW8eF+OMHJlmbxDW84yYgW2nF6haoB
8VNGdPEIjl13DP0AKly2sqZeIOgFaCWsZp7QC71qkYshNKpuawWNI30N/lPGAHHhbbQdcem4Nmmk
1aY6LwbXSLwlIfArM00Od2VzuPnH21gjkN6r1tddBRjOpUNLq/i2N5zYh4LTKkFdQ31e94UVVCs5
ND1BcaYlIwwnBPvYspw5Id/6UsboqpggEJeXuyynZPWhijjZjC2Cd7lwVEAOLfvNV4riwhncG9Kp
qQhbZlSte2O4XgKYw07uRiPimJPtj48Ew+nWckJGrmPjqI8TvuKQ6d2dojJlmBMkB+QzlrzRhBm1
llURe3fTgnDN1vSXBmLzg2rZr4ZYbUTLIHC9KrglxFp2lCA+DoxfJFhMGULrQExy78TWm6aQJBhV
yLZFQOg2YPz653UqSVZcrerSEDK1OcE4n5mmbDfEhfdjSy0Sx14z25T56XrocenKWlYcIwxQGJeo
E6smLEhVRlXqkUBKuvata2OEj8xZ++iKCEitnQCENSUIZgH2hGfavpqYxz9umprJzc/DDz+03FxD
BeN0m+wIlllrbgn57JoocAE9lt5iX6srwPeeBTT2kjX+7REI2HocWFKBPNk3D45fOvAc8LGF+LHH
lostCSturS+ndk6EjkddSmddG7qEimfZErADwWjGNH0mXEYNIILnfA5d63nFP81axOLnXeBssids
TJi+bQNwwL8+liHESrW0m0WAn10XoY1qfTqK9bZkJtC+zj+iomiM4NFtwLlC6Tip8uLGdU0u4hjn
LQtoILSpGVunFoSLCSQyFuUnwjmcq3aQn7BiRtHiUZzBTZlWqg2x66lwjGkpQk5Fc1gzM6QJVaRK
Y7/umRPWm2hG0TQhGeXYMmBGgmJARg15NkAS1Cp4WzYRYXq+DdNXJ9rhtza03CRGZTjWyahUJIzQ
xFC8YfPZCJLlrKnJ/YwafL1sRWSOhKMlm14eFY4BwVNsxricccVQUuxQfzkeJzpdEs1YG/OCE41u
oZ1TyXOgzJGJJZKyuGUzbDxQXx/akSgid8+hk1r/uiCC/cDJRB+dwu+8VMe1lz1xXgOKxf2fYdUy
MHS1aSWPiejdOgiYtJgJWueinRwylPXIdVsnE9oBeDqYt4HTm2l6aK5rGSc32WI1N04YpzfTojdO
ma49b5mfbgAmLmWa9qMieEWqdo6G0MrQhqwjnkgQMVh0gFVNUlEFELzEfC3XRIXfe98O+xLXPjRr
PQh675sSUhC+Fm9qRUOs1s2Is6DSwFy3Dm4ogtW8tP1Z9R0j/NLb/hIRL+e8rE6qVGYRabm1p4hI
/XMC7yCKxrHmAcKYGYZmEM7VzOKGWJPccUFhTKuoS1JShhUUU6mEpAILUrbiEkdOGJBNN9dQBToa
hGQYMu4WNyZKAVeL/SnKDGomZ46EYuFyEw+StbnlOJc/Vqn81ydEFMivOBN+CELi6bh082l+m893
fGXetvRsEuXT82n+8XT54Ze437vptLycu9v9Ot8Pr1Vw7gyxPGxgsZMiCrvr5Xbrph/LrbvZ30+n
p+mKgojp9GF9MoHFlPjTx/1+OePLRP6yTNMD3uw/WU7LeY77P1zOdwwdDsoq64e1Ntea9gkf3eV6
nPGNj2Dp4JKseeHfP2735fln8/MxYAG+zhKQ5T6/de/z9WABdK/z8vJ67w6v0/llxk/TA6RknR3v
trt8m6/Pp8v3bvq4XwggDNypdxBKME+TpU6H4rfp+rKcbziCVD5dtkAAdb1NP9DFMStRW/x+vVi8
3H9279P1tpxf8A1kdIBiifDt6el2OX3cZ4vT5XREQUTx6EC4FFd84z2T2XW2SL3N3ffr9J4wQ5Ab
QInL6TNlqrjFj6Tz5QxJYnq0uKvFKS2jQvj5NHHdZbp39g6X49ytREdQBiDX0decmw06bq/X5fy1
u1+654XiOgiI+6BhuJrz5fzz7fJx655Ol8PX7m2+vtgbuk43XARJXYigKIgTRlYq9UTf3ZZfcdwa
QHLOx+Z9kAWRCSe7FbceJ/g1JeT34h7JG4vLtWR3uVo8L9fb/V/m+52SLUMBKEbcl7NHsoOH74GJ
GuN4UWYZZjnfKY5ZM/fD+mgCM4DCvEjy/JJkCU5wGZAfTZ608/eXpGQsUr54wH3Huj9HNFch6uTK
ecLzY4a44hC9GRIq3nRyDQL5Kh8xU3UoPQYi3E2AMPgwsy4gHKxcebMEt/LTDQM05ANFXGdAXnXY
27KXFggYAyLzeXh80bM8z9PzgaM7AEdxnoNVwHVk/BnHZ0+DeMBGh++GgatRD8LxSxDcAUg0THBg
BiB38J7/WDtaT1JLCBpFINy3IGykS9+jO1AZM776i/dDsYPjcp0P9+XirBSHIxQtCmxCeKLbwLm9
n6af6HJwBhNC1oVU8mfx6ut8cf+DHkcDOOGdDOQ4V4uXqBfRTWmAG+GjRBmxblfUTkLcOSIkFEXm
xYFb7FkcVk/TO74HBeWJT+nKkkKcnO5QbaxXCzBuRJaSYCUPhp5i3C5WFWqPFmTnJCOiL9xRoEhi
ec4Q3IhBFzOag7d02rxbuYUH7jYD+77cX1d3xZkg1qJDUQVIz9mFTCO8vOqQaIeg9wZkplNOXOra
Dq0fZo14dFOK5ofoQM2nZ89it/uEH9AMgB1CPRMq+WhK0IDb3THZqBBUtXAEuMPJeOsvQ5KK/ok3
BhoKqqEu447+3NxRbGWKZOAnHgwoltzfzecjiqYRp9FH5msqGy0IPeEkyM0v8nay/3MQuJ4FWtLS
GbXrHOo1vsi0zoY3ALh6I7tgqgyTh5LP0ItK4gDFgNzeMnCH7Ubuy2E6Rbdvfn62HIaKIwDJKXFr
GqG3TLpLej1jXUDX+Yq4Y0B9g84nLNFECHwxbnWeqjNCj3MAOI8z/Fg0q/+n48en00xELHSoekpi
z/8wBNE3OEgBDnKWDlMME38N0jEAkvGhV4MYoS2RNW6laE9JZOJwJktRX77OWbklZ6EcTvOEonro
t9JTtEQVQXnQSpeZ+zFgXtUQljGwWkIf+oChibKNDXQ8hK8bQuxKry0Qp9NREiBqF7GBKosmaCVw
s8efZI3xTPfL23JAwYDbdpvhuaSxW09zRVxdp+AY7sbV2Yq0BTQgHenLoXva2EHZQeFm8uoZovQL
WMlX1eSav4SS+3y749btg/s1VEwsdDW4kd5k1wl+nnaaZMZieFlVsjbPoKQObngMMauWY4qCapBs
EcRoGkQC3NJjpBZyMm01GuCO+SAax+IA+wzsGEOuW9gV2+J9OlhhevkgDDZW176Vo7aMAgPlTchU
IwyGcha4RB2sUTy20FJaGjcdEUw9zffv84ySviZYD0RkUNYX9bCFl8T+34dY4i7jVebwBV+fTHCq
sIotPOLGthaCDiC26R53/0TUOSc2pPBzv7ax4st1cYFeJ5rwKO8A8j7OIFsfsj3PL3bltxCf7Tw1
W63XTTfUtQ27AvmvHtioCVwz1Lr2ma25MDVuj9UM1jIQ+QZSaRv57v7zY7l+JQLgIh+mTOGvSZuF
CJ/rjFhHNNCDWLGJB8xzuNkX9/fr/t+tabUcPk6Tpdjr4oLfzq+3RwFZj45Oe0hWi6ivgc2YmrvN
9+7bMnX3y3v3dLlbgwNPXWqQ8UylBjnCHhIEjqq/WbLGc1ODKjIfwIxrpHHA94W/NRMp7nafj82c
71rvG/goFcY/ZFzwPAsgEqhtLtf76+XlcraOYmkmUASXcTCCINqqplpbWVthQr4j5dNiSDXZGu5y
X2aciXXJgNESBumakMPiRNamL+g3VkYm+UaID5i08pMfBEyzvliRdn99C9K6hQ0N0se5PdsrsdZS
BYQijM0ACRIYhbqLfBRvR2tOJVvbYpHrMv3LS7maEoMNAS1AUi8Xx5f4xVEK5JJIxTkh3Gkt6B/3
RnZzbebY3AkgrYfMIkkuTKLZ0oersiKyu09PJyIbzcGtA0NoZ45QyTrRgBKBsgACR/NYHquwoUIE
rnv7uN27p3mVb1bSPf3sjvPzZAERwrKvQV7O96tTIIfubXGh7KPlrun9/WTVW2C15+WH/YD/D8Rl
6IKyuKyLDQIAkDu9LENKQZd4EnuaDl9fvArtzhd3rdYVOM3Tt5nQLUBHBOeRPWwOJ5jmvnmZ3g5U
8365LT7wXtZmBIRGC3g+LjRJrsX1wzqilgm9JSos8uMpKSsEZ44PWxNxlzQ0UDODpKwjFmdINSpw
WBaEYLah/3JE9PHnecIiGr4oYmOHbdSJp9r36/w8X69tMuWATV19ABOgesQuj2xG8BCoZsjN3Sls
/U5WJDBT04yrQxTx4Ukk1ZoRagqo+zA5WOMlGmQdzljYhA80hpNGaTxJuSVOIq7h6VOXHx42N7u3
9GwtQRzCq+j+iiWQHqfL+eV1shKjVWQ1AGLVqRdmU8mDE6rZVv/JsgLuvHLbms8liaXnNUMsc+9y
thJmOuG3Y2raNm1mTQQtbxNZhidL/t0WDTzRhYUGVjT5Bxk1yDQ0S8QkED4ivLgbqzKtTLY21Nvl
m/OCLh/37vIcNkTXwKl8w1KnN6b8ceztkNVIQ8kmaxNBdJ3aJVkqnwWUs2dMvk9H0i0cAD04ZcAj
eXqjfvnVe4OLL0RslHYphhkYYSO4aW9EIfyErAmcXO2zqzoMiMRc6v5ApddGsSgszxT5KUUgi1Li
DrrO+ElBfGVI1W+p6vTrPL9HGW01PWFv65Lchgdl03BvIc351kBN6HBHwtO3aTl5u8XH1/ADgpo2
39q+xVeTN3XGuSNtpamq5e7VOhe/Oso4tbTCOhd2YLUMsQcdizdoy4Pz0m4QD5ZHBOMVbpBjXdAS
NCNKaAJsim0oQ/J2t9Cn6/FGk97ItiEFueFznLN5UeEb05jn+Xu4DF+e8m06ffiQkQ/IdMtz93Jd
gjE9n90+jwQ5i4KcGav651EK4YTzaDF7KBe/u+sy2f+lNLXvkMgtLnJMJ/Ugnufp/mHl0M0KHgvi
1oaVGz9UnsF8+3h/v1zvt+5wuyEBMLcYTG0BTrGLEiYAx8vhw6PebcTSmGeJH0RfA+ie94+zx4RD
dn38KuAJXed3e+jA8S2NLGF8Z/CJuQ30FVz4Q8v4gmFSWP6Gba8FT0K2VT5pTcJrciuoIXbpYhab
bbHzNuEBJ1r5NKsh4TmBw3DsAfvIQeaS3l3jckHYyU8e4/3Y3Byu7kFAMbzS7MJOD6wamM5dxXQ6
4UwGxzIMfnpjYLP7Tysaf71c3qxCxG1Rz2qs1lO3nJ+dJWzdL4saTxMUrytWm9mDnMepeysb8R3B
4cIwmeoWOjNjjqUHq/DFtyVrwyTn22F6n638eOum9wWXF6Cp2XfejGMpwZxstxuZD/fLFccuvCAD
LshbOd3tPL37ZeDPVnlcpze8LGt97iqOKY+1BBCAN9avc9TBd2vl3Z4vV6TM3IPsM8g8Tg8HSXIz
zy8Frp2W/QO8NZJzyz1HFgZq6PP8zGYc5KVax4b/hag/9NsdM2gXWn7cLj9aT+jZ6j6ruC5v7x/O
zlzOx9nljiwFnn7isE0uoutdCt5a1eIRHbsalnh+RnEMZkm0kSCowPqhD+xIhRp4is6askURQovl
tzfgf5wsMu3/3O0XEsrxW8v7BT2UMY+0AseRlysQwdM8VcSla/Hnx0+cKd3HGNdcasF/VAiA58eY
x5CQ1AynbhxGJjkwk6ag2eX2NqFZNp7fmRqLGMKGagMdhE7L+893HDFGQzr1qWbOCbZ9s8TQkFOm
IC79yFWRpXAIeU/epH1EEuT0llBa34NZjVtVufjX+Yp1pfH82tMYO5ZijUFVI7QMXFV79+D2ajVT
qAT2v7oQjMtB+78JLgb4j16vWz60oF8vp2PX90jrvA7Nnu57PB6+z99bo2d9r/DlY1oOoizFHrvD
cj1YydP3GgWz2uC8GMZYgnm/nH6+XM5onSxL9Y5hOyZFfEs48+m0vN9mtK+BpQaPvB8J4DxiV+Do
EQkOMDQwOByHw0s088q5XGbwTl6WBlBUijyXUJzbS9GL6Nsw8k1JFM46FJGHuPbYk3BwyjEZw6B6
o44Z/L7XaQK8cCsxusHvWw7FqYwg4eCnUhk7iqdR7whb4dsR+VjOFzOcAjPipwJ3PiI4zqfC4ai8
HSWyjVKHw3AaXJ+1oe48HQtnKpFJJ1Rj9aYm/HAa5kPJ3aTwI1iKlUJrqIAJfzpfzjQok8Wxsy/N
SMobXI5ysCWGyJsINdhE9K4GgGiZm79r8Jz8eZ+WKw1QZ/Gs0jxWjCBxODITkrtLPhLCA0eWAmTQ
h7mApDDD96OzGhQSEa4rQTF8Q5IXxyrAJLImTAJZ7kIRWBnws6g2lMQc+FlEPsvonaSBxC2u/Awv
RTx1KpzldWYMkNDaoJbQ47q8GVqS4shVorBP9EDCwfcjDeDM8EQhweneCKYZ0xTnUyQBE3zJcLPp
8Xj4nausuFyJ36hIOPitS2DlehEtSVGPAxJA4PhhAD2pknGDRQy4Sk50SMh3VVpxhtoFToYi40Wy
9BpyjXjslj5CvIAkH7lX7ViPytdak+CGvq1YV5YnrI1M09CrRwQQzms6IwsM5tjgPAUr/F9TVygz
rsBU8frh8E2pvCk1Ng+HW5qm368zcANR6/aFPaCIECNASsqNV5mYhHDeTFtjZOlB3NQOa+WRS3B4
RhX7qsqibEYTdku5L0U5lbirogGSTcq5I6IEF9UCXD1PFQD1zeBXpjMZxhEtZShmJZsQLfHwHoMq
63cQ1HGeJ135CJTyYSiGbxjRdAFQD4JhYbAyAUgSgHLwsUgM1gEJApAAkVk/NIQCpAhAoE0cVonU
AXECEIhGG18FGHPYga4qN5hsDIRuZbLkfAMyHCRVB4S9kypTzEn1m97oOiBstLRMfK168gbTjgYc
EM+AYA8yAgjHUZTqAZDwGWLKoBtxHEmAbNZCNvYSh0y+lgck/Q/KEuM4sqOq8YBcBmkd8oMA6nFA
+daKsVfI0XA6iqo4dMSDAW8IIIPviIMd+aNRARKOAzKARWBlEELZOI6MBHTU5yElyI4UfrSMIz/Y
uu5qJ0AcB2QA04JCAAQQTtkx/hiYFvQbI7dGHK0HBNnnYUsIIJz7tQC8thaxhSJ5b8dVxGW28Awh
hUEiCLabYqBGAtQAQIGRHwgoRIp7UAwqGVATgIEi1AwDKcnRj6QlYw2kVh/B1BUwGAnD1UCAAnni
cQDlBsiuiBtkIG3mx1NzMupO6XYGrI3Q5U/virA3GNDuoWuYJgbCBmIC7ErmwRIYKMLAYyAfHFpZ
Yu9xtKwrXJRsbkRb5MN6jUNIwgyJ4ZBEgkRYVxmSxCHpDAn2UmEehUYhBb4Op4OTnxBIgsDTAE6n
sZBx3hN+uj6fjrvwFDf06UZ8TyzvCU7rwDAucEhqC4n0LRFhn8k0Ylxj6idDwvfUqy0kEuOIkuap
7SZAcg4qp9NpmMRKYjTaZ2AeAQYJ31MP9gQbhzHKJPhuBBzsjWtyT4gNkmVoOF2aJ/pfGdY6VLuW
oMWl/AhKrJiv6uRomheXyqMCQhnl5AAFV6kj9ElZnmVUg4KL9REYHrgsCFBwS2E0e9RMgIKr4xEo
9rGPzY2bHNtDJQYa9wBdopJtZooUADBHBrT5SlZFcgSAuVRgNrPfAZyiVQLQxA7yEfwTcDy2xr1c
p6ObilEpXPGNtdO1W/8JToxpOFdDWj4CRHl4BMIgPn9bAegATScIEGflPqt1NHD9uEFCafVA8KG2
9iNEdIcj1MwKo/7HIxNbzNLLpXok3wUPl6t91q4PJTc4PEKfiWJ/Lnr7yFacIGqdidpXUMsKX/Y4
gBFwVXjkorKeUYJhzACSBfoAYCROIDYnEGMFAIGCHqAgEI2uABiIHfAMABbvlziUOA7HrWjjlQ1I
4gTDDuGKZRDyOwRyO6Wg3IAhMMDAJXLkEjkhnFkmozgOq4ZCYgc9uIPQ4FE7AqFfeoCDR7d43QGh
HnoGduB/VHDQ4zgY4SX2eaBAicOewKEEGzBe6Fc2gKNg1OASwTi8cj3BBz3gRBcu5rq2AYKVe7m9
gwoATggTNgAyGuJowP+qReNDnxqFjiGrexM2F/byPh+6+cf09n6qlariksKnT/ryheVaYAKVFD5t
kntDhK+yqOZXUXkZUjhl6a2p7oF60gi835WQXNkD8aC7ys1xoIN1C4B4mwi+hJXnY2wBEA97KtBh
xzcFwRkAcRNK79hBT9BC8Rwu6vWhQi8MvgQg0BwWSuT+AkGPUOh/ElUQxF3Al3XxkC4q+saYUEok
5TsxqgdhBFWCZie0qKwnHj/nSu0BQN3GWHvwaosFRWABvrDmw1R1qiRAKFO+9Tv8ByH9WkWbee6d
ZGTpYADXLDHKszBkfGVHiP/YsT1CRnOgslJ7TWt7BDxgBPj4KKc22EjU5/eVdqGvUYGZe7glI0TO
FhphuUOLKTU+0tAIGxaq7jQCsHUT+O4GYJTncRINQsEvYpAF6qoVe4/bI+CZ/YTXqtHOj09JRoiO
x+3hxujY76eUZoVhnlIi1yGAsGP39vN8f51v7im7t+l06g7T+w3vbQVS2qeU11xr7CHCG4ZM8Who
5RFzgYtmUT4ZGhsQXXtwd7hcrsfb736gL09mLa19p2hu7f2OT1zz3bd98dBotDB8t34H5iHj63Xx
ZTf2Jx758ub/vf3NN/sd58NpuoY6Qft3fqDZ8+KGRB7n0/K2oINS0jgLHz4wvrA19CdaSLePp/fl
h8Vr7BBzYztP8/M66gGHCMK90vsxyqTZ1H6tr22brssNe7wwzV4KUPxbDPnClzdHKdcPy1Jv83GZ
cBg5ugTK7Dz+um/L/N06FC/ddL9fl6eP+3wjwzacgWB/LkNccRQ6+Tx6HJ7CuLs4qaOFL7UJj2ue
Lpr5Be5Cv+TpsKEZLs6d+YI3uLL8OJ/j21HkNJyHaMnmEqgGX54Vjivait6YX526qvHFWab52Ov6
TIXrqP9CdtTnEU1hA+nu/JcbJy4l3wgOvPheZXxl1odqzNHdk5801NywAN67AKlwF7z8QsxmZHnY
hYwzuSRbpev1bfLTRr640S5haQD15fL8xc9sxKcsVAeuHiYr9PFFYNKyn5Sanhe7TH4bdMOySG1z
aUAxfJVvx+rNdNVwd4nUMz5wCKqYzrOG+K/z+2k6zMcdW5AFgFhKn8cM7doEL46how1uhbQVXs/2
KI7n/MLTcrt/wRu2WcaJLOd75YVf1pZkHIIqbQu1hUDMx8gYkeU8VLAcbatmeRJJ2j6H04PxVZkV
R5Cp+f5qddkXfAIVy9NFZHzgNQ1CP1xOl+uX6Xz8gg68+RKGmNRBD7kPzqzJwpgSBRDoyxhysbUJ
2GQRIQAEcRtD7qwxxWWC5ZY2p8MrPhZkyI1PJpQyR8MEwPC4wpervAXwFje9ZsxrWGpYzp/EF4q0
0MeIvUMW51ZtdaIXU4nFrbj/cpuv6Dh1nnRFyCE7bOp19p0bh/Pl6iWt1+VfgghDIXGQje7zlNkI
KEw7/0IMEeVh0HlKuYKXiS8T3pAvxtqa4qv49yQceAAmLIXV1ozZd3QBkt8sVbRHKM4i2olBWY7i
0BAMPdOCZywombrEwA7wlaC8XaY2t+L6W9vW5RyLmHgJbRceiQ0ASpTnLggHZyp/gxui45v7w6+M
FZMzmCjO3ToxqBjjOvYe5COT+JZDQSvRD4uDKwKxtNA1FiMxJKRZHFEZxy6xvpaKxB03+ESCEpGs
/9Y9R9Zu7VrXiHuFsYNKtCiOrR6ppAWBjQWpMwnky5fGfCDJyjE0Giy9WCp3xnVzlo3M9Y9OR8fU
B+Q1nORUufdYpFPcX+v8Ml+BS4Csw/fjFbTuz9SYNDM5vpAXBF+yKK0PhCq+ydZHNdBH1ThP1o+J
MQ/9QGg4hfEamccjtnAL0JOnV0PZ3VQiWaj4Tj/JMf3ZpHNTYjzO5zwsxy/uOS58XT6/DA8BV7Uh
fgJRKoKhrgZxGi/XjwWJ0+yh+lKLlZe+S41pVg4s04gdhG8/o30ccgEBUApNIhprROTJ/UvDChpK
ncAez48fvC8sqBSko0cpKVmuMhVqbdGpKuhU1NQK/v1SNkRc0Tekob3nx389klhTDoLpa31qpYT6
G186tPijZXfwAuel/tihQkUp4Ay0AXCilMWuY4c+9dQGT4GvZJX3D0K/uddHe8Ej+jZ/HC9+wXQ+
vGKmIcva3sQHCVa7NEDY+EhhYNcNBbaa5iZYAunRUDeHO0THutvH9Xp5me4zDqRPQEIXUSQeAAVf
y9LawaNEgaUoHlmmGRMLmln0kPzM53cXPCnxgQMSefcshMlDOO12mOJ4shCWnogAoyjTd+vovQjk
C27DshxZk+szTms64Gm6LQe/wHnS6EMRviQqNhXq6DrEkODlDT+7X6byMlfXxKL5HCci4qEGldwj
FQel8Pjwmg+FfZluX+j5oSrRntIPr6z4KR2WDWZ0bUSZ0sUQ+Dgn+WM6NUjff94kENxX6UWLyloT
u3Y/5uXRbnSrP85LLBbOc72/+L9E4yDrfBgTOGkEQZfWyj6vzIbFr/P10h0/YtbIjRF0rx00IOXA
jztcVPHkw3N+WQ7hOApkUXx8XE/Ep3KIKuRc1BCD8ecXKz4b+2TFB9dXu+3F++CtJZkQLrpcv09X
F+16e7doeHLioPGSB3hKzFlMA5gx/hCMcn8Xh//iFApYy4sEndOLX6j0oko6QsXhhiNY+Ty9LchI
Vr+Sp5Uyp0jcSnwJy6zku6Vjb4L/HBHAVukq3dJQ5QRXYgNv/UIBvukMiFjJF0d9Py8nqzPsbQV9
eHIjdOe39/vPNBkdzawyAQqWQLWqf4ilm57v/vFONxVz9qOt//MD8xzYmEO6MTMd9VrYkE9Q7tgQ
yIp72zI6+AFI2JA1srrjdJ9QIKD6KFT7RxfucnSv3cRTdJbt8JOAQi5YBgzx4sZi39zTYMHoo7fE
2UM10g5w3f11Pnfh7B9n/HUcNiZDx28ZNoZBzO2/SsbLmr6hTRaf2SzPFWZKJhMUgrcL3i/n2xyg
HufzzzZQUMho0vDmAPTsngPEV+ZyMycr9YBuhyhZA0PCeZ6cAIE0CZeBVxd8vn9EYXyKNDRgqvQW
SVhLI4apYm760H+CbPfdWS4N8e8usgYh7CSvTL2gtm4H9e7bsy54WbIHPmtSC8viwAcJYnMOhPEp
8cJKNLYJZ9dBGRi/r2WUgj5rGetubt+CzjlZIjoJ/+sPa0G8+t/+73+zv/3VQ/wSK6z+ZDcyWTPx
l7t1kL78+5//8td//uNf//jPX/78l3/+45c//e2Pf/393/7y1y9/+3/+7Y+/W0GDLY35fTlWBufg
p84fb0/z9f90pSYokCEBMTILdw/lj65Ixe3xD9Pt3jMERKw/JLax+KPOf3YR4T/9+f/8/b/86Z+/
/PK33//tj1/++Ne/ohvTCazkQdE/7OvLHH6bv6zK9I/BZ8OAxnYONhaJ5z9kG/DL63T7n+FRly8C
gTJkIH6kVcBY/PKXP7tXkrGVGdkgNwNR5QzN0+xg+Fv78j//9Ndf/valoA2KJES+C2dWxUoL5Hze
LsJ2mrEPdDQC6PxxOmFwTPPE7kXQF5JGxVBQmKxQ2A6e+uXPv/+3X/7XX/5G81S+W+/S6xrVHa6z
I+df7McvJ6syEvVhHJL3D2bS/82xA0UtsVyTlWkCvxfw7dPl8vXj/c/T2+xLIP79r3/68uMNu461
KY2V1ejV8/3xx7tdfLOe4Jc//4JtUbWud4lX4pn/N8i4TD9hem7MJBcUdJ7eb6+Xu739N/LSKUJd
X8TeYOYPIQ5CczUvBaAgJdX/9de//Pn/++Wf//KHf//XP/75b5QEjI1TiWx2kv0nRUa0lVlp3TYp
4vf/+sdf/u33f/Ai/AuuG0RJHwwAz8B+C26yfAIzy5u4+ae//OVf/vj7P9MIydzqJQ8TDZIjCC5E
7zCKA8jJg14/iXmOYV7uIMoH4OcLweu6FEcB4r9dLwe3+Pzy5U9nK8s//MvzNL+MNUC/X0tuw1on
xM4ohKzmQJ09vKCny+U0T+egRJ+n0w1VLiwjCryTS+nk3//5/9mKGVInZzHuZIzuaR5o6JJ1YEHN
3KK1AiX8WN+04Wrs9ElMsLx17UvAfztjkZI8y2P/7HJv9p+G3D5ggFzihlKd5QWc6FRN6G5YACP+
vlxrUCT+S4iL/hY7SAC9y32F3fDf0LuHywdO0EKizExIqtWP+OP//W9//eMvv/zpL38m1MWYKQLk
3giU/QaEZeLwwUOtSSugkOIoq7PSW2H76Pg3WL0ZP1qmFzd2yBT3FvryA6VyVhP00InIF4pSu0Bx
sMMgp93BMSuiMIX3N+B3nxWbEeGbdsTDh8KCv7miaQwG2KwBz/NCKJ7ZCIJiovTqRpJGP8Vi6yif
JB3VPjXXctiHmh/avKJf/vbXP1lLkrwTgcoEgrAmVO2MBvXWqJ3++d//9Z/+2KCeKmYhG/3pnzHu
kah/1jAWXCX/8e12P6A3k+lR5voijJZalNlz3FHAoz0oNHBsFSslfLAuN/T5MF3opDpcriH393r4
cnidrtPB3pALD94+nkJ0Yv5xmOdj6FNDmgLXiWggqRqJdQvVNRz9cDmu+XpNX/Aa8jy/TPflG/WJ
XhaV/vHRAfsJ17F2mux9+SfpUQDMiKLVgBcAXEPv9f40W8KaFQUEZI+z5+IOGtzll/kef6OwlRsn
wGNaW2wd59N8n91vL66Vzmnn6Xz0AWB8f2POi0uRQvXxkIGnXbb/bK0sToDR4JgqGXwRzNm98keg
SBZrZf1007t7K7NxmsEQ27jOb5dvs7916ihDX7RalNfuhpcsz8t8bBA4G1StzwRlmya/5IOxTEYr
c9v7tr+6PiJ7T3eKpqUpUvtRrVF8t7Z+2b8OTZovniiuFOdlmnKFdgwQPfyK23WDODNlDDqnmVey
snR5W55OFn3exyEoDFxG9gMimEBYniwYAUP1xQ3wglEsWvwNUgAG0IkzhvmSxWmchjq5fD5xjl1S
E9zY0/yynF1BBkFZPSLlUIrIcmanKGZj3rcLHGgM/4LCP0fuEJESbeoahqKNS46F6Dtdzo6byCtV
Q4k7uV+LrVgLPEUxEygaCvPFCIEUX+2lDq0LfWT6UkJ6ymnywsBKMVvcp1/tMHcjUacJKWtt4G/L
5eO2k7uHT3KFpRCKIVhRKRbtq8dLdfo/8ViDyXpTwJTNLb4tx+OJVAiwwCuFAqhDB8Ms2AWXZ5o3
OBOI+ipvmNKjypQ3zDFKI5UxLyhNa0RyaGojCqGPrR1H0avWBMmDjZAYYYWtJSW2EUltZEQ0+KMx
QNwv7EGliJywA/aY4EDlGZ4nGDyijTqxEp/VUJk5d5osbMxYdY7goAr7Krqj6XuOl95d8D4YyO8L
ZXGNJSdJxCSliM+MBQYk29552Eeswj5Mt/k2n10jNXk7oDW4ZNA9NLDbC2Nls7NCCIDyoZREeA9x
f1rCk42ALn1DnBjrGG27ZrwvGamQcr7AvuVmarHHuasaEbsNco1sEkEgqSDZ2BOCPeBtxeLzdXqh
EcjUSEjn1+mWlQ2FQ0WoKyhZSR/W/HZLeLecyd9w4QVTtxiddLUnbjqF6r8rGPcwcI9oCofa+fl5
PjgALXdY8ybNrGEGCgpD7O3tNVPmgGGfNRdLy2m6ku4UR9zEUrCkqUkUqHHP9WYabDt7bBiJa4AI
pDwxPezxxCg+2eMyDoXMV4W99W6v5+yJpeUamD2aI4XLqP1AN6yPjzDUbna/6OM8UyJI2BBiGRIi
tVdWSMOhuOWXHaEKXSrcODxqtzVEgZaYy1w1ZSjkbRit5abRTl8/7FQghqI2jtg6yJaaTl4/lm4j
ryOrLTk5GFnzGMteo1ekIyYfIqv/FRqKvs0n/pAccNvZckKKcGH0IXKl7mbYkocYXvK9BZvZxZSP
bv7f+UaC07X5oRaco2PXa/Q5aGDiZ47Chkv453jafqAA9NVxpvM91TP8+RfWUwCGcuaoADsAMHpN
wGB5Whp4g7c8hUuv9pLaCCvGlUpwT8TNcwqiqs3JAlflFMfOexLFPLgKEX0ClnmA5YGt//5//e1f
/+UPl5NrZLSAGccnYQrYzaNTdsIB+P37uxXyMcGLXp5vOelrM5I9DHuBKwRBQTAohGIXFAwzFKM5
Y+j0EcZA7SN3WxQP1m3PYggYI2iI0Ln0xoH4p8vx5wqCUSByW4YrUV9LoPwufI94BIKypccHqw1X
LUmjVwRpgAY20Fq8oa2eArCZna3qp6A2wXU55TUKl4dbJTExyAITAtkHI6krw5C5iP3xLJI6CxhG
nqcdPO6DIg3DiwYooREYnIIhMJz+08f9fjnvIFHRg2H/fjwmBoSisB5OiMcJhFFINar28sGWYSl0
DHkXyqRWlcerpUQgnGSc/Y9HbAwUNsaC31hd9FDEMYBexCHVqj7uQlC7KLmeYzAkBUNhzAIloKYg
ACEq08jOR2FOCeKBFQqBxQd4Hi+W0gh6xHgFSFHqJKDvEDyvtQFAaWjQYEfqRpLjAXmqQsuDTVDs
Drry1vb7RwAUWcEu3I0cL+6CulA9FC2c0Td9hEHJcS2LjkfFq0xGsfrYF4+MGF4lbkpkjSN2G/80
3eY99zlmonIZ46Gq20fqOoZaW+l2C6SNAhDpxgaNVTRQVzEO+wiblP4jRhJwF6QOAs+tMJmbzbck
QRkpQ96FH4lQvQ5K9DNT61F/RMVIbUJg9l7JHRRdaYGpMXAQSvKDKQzbOy02QVGW5thB/umvuygT
TILw7pKQiA4zFF0MpcDCTkJdielRGICyKPoehnLYwoichFIgfcaHn+EtqruglOAI3KJ+zCPnH/dB
6vRM5L62BSNy0vzVGH0BAqWuFQwQAKmDrcAgZS/Kq8AtonQpf6QK/zj3t/TcqBulPd0Pr3/8RlGp
I20w3x64WMt5uYe1ilirckTCXfAo0hjv9G0y7gPG+YO4T7meimJIXZuCHltFvlHaQ+T2u/A+Y1Ki
+eRUoEiBF4Ycd6wvBJd4J78OYl45YZO/Tp47x7pAA3r5bSooJUwtklTindq7BM81iU2srU01YPI8
cmvk3qv0CldT9wbH1qsUey5PTn1dmlo4L98ahTXFanHW8taoMCt4OQMYwPnbVHRUydrLP2tc1K+P
Mx6ImOFYexmq3D+1B/BsSJXiKbyrvkmx5N7BgwPAyvPr/ja57FHz9GDSHujhL3dAUt5YO325fqSw
J4v16pFryN2zpqQleRa+nxLxlxMlokyUHEKy36uxG7orA+qTZHhQKTpCa5x9Ol7efQYI5SoDUtOy
oMrDdL6c3fMgrkUG5SoDqrFlehl9qEDQFIS8A+CfOySE2vWQJfARemaIk6z2YnkSn6q7LUeUuAyo
wiaQgIo1A/LSMsTi4sMa6wxI6g5TNZwszKHD63z4mhKEBQ5oaH2GxlMz9gNFkHjk4EazhRezxDe7
szd/Mcv5+dITcFIFrizGLzzuhaLONTkiC0+kvheKSk3mFCA9KCxTu+oBz+RG5seTKepkosSyQnh3
oHhXJxggXlnnHApOPxY0KCksU5y8Brn23Jag4AAKzAb+I34lhV9wR4+9MRkGp2D0JW/WZCPFAWO+
Y2dAKOSOGcXRLN8NaBMs90CJpmEocWkIGqHwuUaUZeTs9UXb+u1SOzKi5EVMRo3UzehSzjGEeygO
ZLLkYlXqC0Uh9RMikoJjdKn6BHE5pECSBToMJpAoIcBVAYNTe9HUXrIQ8COVYzNJqUx7imsyUkJ/
l6qQPGUWDUAMZcc0XSwleQZgi/QEXVGcwjJ9g2K/cvsjdX7AaR6DI6YbKA5hpnad5S5ITAC5M+QQ
XnmNpHGaN+C7Pphm5T2QUivrfZkfEEhLKaE7AJ7K86kfeaGnkDcUikzUrpDi65FVRVyVlygR1etC
iUlEVFL4SPXAJTkmVFL6fFA1Rnr8PKm/+pqdU6KSMs3HHpCRzCWWj7ugNDljNU2ckEBKk752l3VZ
T8ExWbSAoBNlglIH6vOBnLwYNbErCr1GPZiy/1WWMu1p9N9T/l7dgswRKRei8A1Q6rN97Cjkdc58
H7PgAu0wxUAMGwhyX/EmuqMYhXDwnBnEerGzYRU/o0gQH1tNkOJjDNiYd1d2JcXCW7uZVKLuS0vR
XZmMt/BK1bZGtVEuHD/I8C/EVLT/AkPr4IueCRRWjI6tsKTZ0yuK37FO0EbzqL53FEqj1CgKrILO
4oexEfhZMwwwwbXsFLxeLnf6fmMhld8J1cDF8bNkLD1235fNOegu+iw5QFSyPpQBZ6C+PIrGW43w
jQAYijqMJGDIfShVOEpHBKWfbtrHZTUrD6p/G18ThJXPEOb1IJ1zqAgbEBH2WLKP3wQQXg/NZ9v5
EigU1hM78cNP8A1kJEh89knZxYCLI1HQlRKfvLIk8SlhrEthzDeKYzoez/P33N6E6w0gnfJY0npf
GUoCBkH8Z5rgcXQOxQ4N/+2zUnAuM3sYeTMmBpf4fCdLCIIiBQIDaI3l7T3eNv5Ws8x9RJvT7e+q
RsWfRNj2eHkr9/Yc5m67Mc84JXJCHG9HIKGkqD4rkdFeTJxY8jdCtKD/zZ3w+Dckot/oXmtc5w6l
4u7R9ndcvErE/it7l/D1Y2lL7e6jxA+F0R/SVohjuyeOVoxHQFlhQGya5kggXO5lMhs8/tRvHmuD
fyMf3Iduhk+1PuIXowlqy52PKBOPiCSoTwXA5XDGoH9HgfW6Nd4Gp16xR8eVvfs4fhRBb3kmHq4c
BsJeKkfi4TDyHvxDwoIcZYbSPRDaRWPf43QZHLWGEPzFtDgcRD4MeIjmYaQXvp4hsmk7SQklWYbI
a0wV0tRmMrgQEqto//Wxx6efVsY587bFlZoVlr7cP1EJlx97LR1NEKIuiXnEZhyhuOdlQIahY+VQ
Ks7kAxLnv2EMJq5hskhTY2pToejDUv31Rpp1pkeCbZ/1MwiSyaxJjLfaNZsGR41GpTQ2rAGX+LKM
BA2mPaQNl9Jsjy0JBmLikPi+SAPOJSNQ1Cz10dXnMOBSLm+DGHFDj9zARQEgFVdTbz1LctwkjqyR
QNataTysr2E8rm8MecNPljfkfBQj9gjjhouoRcFYeT7J6r/fbpfDMnlbou3Dy132UjMUpMAV+sfj
tfjtM0Vwfm95tp+Moa8zDFPoW/zWyU04BTDEyqEo4H65T6emTuaI4bEOEfNCKtFAg6qMakDzB90Z
GNIEG5bj+nDVzohwMRjtiUo9gWj2HQPXcHIZkNDZjknaOFBWxARGRYwDxImh3yO59k0DxNlvICLn
m0Em6L2UHCdGfHopLqZ1YeJGZWQR2Sv1ZbpNuOEzZFyD1DI+jgW/tLEgL5fsp4apYAMwqq8s82xA
mLIB9GHMCL5ep/Wggrs2ZQQFEX0rE3vWY1qwOmQEhzEWx1D9rhkjFF54BlgES6jhMjg0WWwvG+/o
lBEclMoIz8Hwh8EyOKaGvJW9Y27wzfS1zbRHu+AAxQPAhxEq2xY7FJgGRFE29CZEEWcbAWeYsvlz
M9IBBSHGGhEVGzDEBnRxU6JHp43gGzDlBlS9Lw9dP2Qu8K65tQUejyCII+TrBEG2h/50dL3JxOqs
US2RlmycBPIlbhqqyxk4KAAlMCoo2gpxDIJL7MvuymJ6BL4BhtFQ0cSMb0AUokcKdIYPCkLKFh8R
GFi7D5p8RG2gR29xM6EF54Shpue23cv4LWROBiWgj435OCHmI/iKbYUMOMB3oLED7JH6o8EYsRzH
gn+eo8JoM/AHB9GXJ5CPJ1DECVTBB9KgU4twGuClclFI3zd+Atk8AbF6lCUNcXS+D05FQB76oHh9
wAQuDPIWYvktR7rOcRwMKDsXk7hwAKaplYkTjPnz4GHJ2mwiXJowjJO282dwSlKoNCna1fGLFLhi
3Q5DwLUjIMfeN3EqtHcfxwZg7LJ1fzucCN9HX9wokA1JP3BCP7CCK9E5T5QZCmgyu8u1sUQ4GkwJ
QqBDbHCiAGgoJxBsh03hmMx05XSeNo+YJATsOJZqktcnw+HSQaFo3MzWwHGga97Fw1glHAGmwOHQ
I0P6cMbK5OwsJ4baO8QmpNhlsVAg+Ihpiu3kGHwX4DZlqa02gxNxEEMpag06Qg2/UIGKh2KsEn4h
qgSg0IF0OFHkO3VJR8Y0Mk4I30QmSyfvFDCeTsttj5gcM3Nv5q8VEz1x3kI9sX9ernb55bqHuodS
0En2qDuJPYwcM2K3wxJxcmAFf0qGjJDDbwLV/tvpUjhVgwjIWOyhHAyFWyCqoAYp6+OUcHocC5+O
c3QWHw4i49FR1ogP7sFBZM40flx2X5+BhxNT3oM3QaKECfdwyzAIKZcvE2SMH4eN4dQgMa7Yjp/D
KVLuCHEQLGWyaPAV26wHTLV828OUI2o6bGb14iStS9PB1IfC4lvoH9ZvZhfBiSZ43w8rm/NFdfwO
ulypauPqZp4Ivjy3SPq41Vgd5oEu16zWUwYnoeBLTa21vBwDgi6WQ3VWQzEvCT9ztY9sOzoH33i1
5Xg7swj/uqw1ttYG2OCnz82ILkSg5MO8J3zzY7W3eDPoCl/Oaz3scGoQvnQoWxhNdewMjjZNUxqB
Lq2rDbjFkCf8u9XpBeWUJnwxK5lTP4wkw8VCX+343Mwowr88lNtm1TE5+PLq/IjtLDZ8OWhZ7jfZ
pSaDyLE20+NxwhEOwDQZlFGEqmojaLbTrfDlfXXMw2YUHL5cPCyPfaDT4eCeHn9aTsv9p187ne7d
fXrpLudueZte5u77cn/tXD+v/9P1glSvuASp+4oPTcGJC9dl6nwf7Hzs3pYf9iee3nZqm2cooL0f
7rNzSanuOodSJAxQhuOyvyy22bhEbfc2Xb/OV78G/Lm7uvKHcN6QOzuGLx2u061eVuF40H9m9BaM
+8z2K91a+du53iIMCstQ/ET6dRDImovvQsa9+7a4AuK5e7+4ygN7R4fLOdbuda56A4PfJ/jSyQ+p
H/fpz/1xs7/dZmepuDufMXgS7Nfx5gO0gMvbfbKbbSORPyCxJJ2ny4/ujqHPEQ3Llx1G1WBU82Yv
9vrT7vJsqfmNIJ8MUfu5VxxQ8+Xt6WK3hC6VeTfeW5Z57dPH7Se2bszLPCb+4xEJkZHQL/eZecZc
U+Xa8X++ORq0DHO0t/N0uhy+dosnn/ty/pgCLU32+m/ETbmiNJzHI1a612W+TtfDK3rOUN4eDpoL
Pd+mQxBAHtjH1fF2l2qHuvmHpXmsgjLtS0eCXDE+T4GuPdDT9DSfMAAyA/BAwJ35dU4ghl/I0rb4
lkOAxPPA/ABoud0dhgKDzaEO056zC5VXGETeZ4jZTY1c6tjCrwF/7hAnZ5UDLvogQze+3MLqBLaW
p7UAxcVXhVJSY8vHvNwh2DwsH7GVQ15pqivdh43ClrO+XD88rOfo0rQS5CjgSvS0Kn9TVJFlsJU6
fzNXYsCVElsp8jedDtEPKwdspWndDYpcWRKFApL7dTkeE23fuufL1amUbnk5X65Wta41jCgf6Uz1
YNxY4COr8+YXJ7OsuvnPj3nujvPzZBejLMQKYGI1KwB7f3Otc0e70VXHogonvn8U4YGnRjy44xoG
xNYOG1EVJc3T07WbDlcnqZ0BhuIlCwPlSEtBGWyF5GQFvLNb7qvE7L6/2lv4sH/9vJxxAcpYuS0A
9cXiJYjR2z3odVrEs6wCdTSXI9MFBF2teXm8Xt7RxfmIgJDLA1rL4nycrsfOlTbhNCQyJJGnVXlQ
wZ6d35b7rbs8/d2ReqwmJKV7VjQgH+ABWlPnipOzqp7JGtuOLw63m1fFxId5Wg9eJJjO1sCxtJb1
JPr9DSYkVNynj7fz9WLpZLLGAQoB8CMYwLklu+V5OYRKOBSF+ShAHgdb7euMk1TmuBDiggR6+Xhf
zi/eO8G/m68A1CBFnv128zwThRMGInP9aqE9mpnefArscvx5nt6WgzW0Tpb1yBvuE2O7AIyLZar1
jo9/tzRpbSFoq92CsdZNN1cb7QTh87ScPq6oWwVMUkB+PjZrxenZOWfZSgzmIWkH6gTPx1sBF/ge
fitH7Z6Pk9s2BWYo7fahYrZH3jzO98lav6jpC2zKMMQ73o3zWz3GgnG5/tFj8+pislcri6yhibSe
q1U5jqH1z9NvfC/seTmdujfnVVge/m6F0a37db5euuPHFW+SVyFIHyFav8InH2IIKG8vaBH3m3Uf
LVNamWs/YD8yY1CjyHVQ/QOZq/+QQL4uTpnf7A8rxG9uNBcGKpSmhg3mQLg/bjrp9HG/dK/z8vJ6
x8CEeFGccud/aGRL6EY0wFQKydawFGpSUdz0GY72zosezQbWcnYjuqbTjaIFno/E/XsPGyAhUO9F
ycEJZ2tbnNAb4yIBi9b49sq+zyfrVlk/enq2zIXBCdWpkUKNv3uzjsD16trCePedM10G3SQCyfPu
3LFltMCeLsefIT4ynQjmVqEI/PH25rd3y9VW0D9fpzdEWqvwVFginjxnMRwore7QUSsq1OdFECo8
RjRs79xeObg4K2SshXP5Gd1kpEtHxfDnSk/e0Rua/JulRZOTM96Ez8wJQdFq92bXLvaC20jlAKnZ
845IvVgV5T6BojMz4+DqpgaxZeeb1SZ+cJu/lu5yPeIoFPlyfFcuY1toLuR1uM7WeLWSxgpw/zsK
DlArS9Wx0/HoG3QytWcOQJEkCjlqmpIZvUYgK7Tjb/tzLfJ3JoKHYNnIGS4JPMoOWYK56p5B76c3
dH8ciA3/VsfaRvmo2Diqy3pwjS5IzvoHjGWyiGFVFPOZwkBh5fHj/eRsSiu+9vG9yurL9+1shbT9
n+vyo1vbl7rbwUUpP87h79HN5ZMCl886bNZ2f7aGs4/uWL/kp4XlfQt0e7w8ZdieOIZ4dCLUy3V5
Wc6dNUyfP84HnGJ1isbq+FQWj0NiMqz32fcjo81aevVPHAw/EDa+QBRRlSG5prIGteoUztYFM1qX
7W7XWsfUUkKQt7QS0okX3W/hadEAKjpqnsYd+zTh8Iwh7e0KAyVfPp5FeNodBqtPsIx/l2FQG1Mz
EzxKS6bUjHyVVt5dXywF3T5urlMb55VMRNqVC5o1QL01RUKCDIWSwYC8GACSrsqfKStMXMWwUhBz
VBjEiAs280HFxvFsbSmz20juLu/TwXoPqOwTxS7HlrmE6sQMR3gzbB1IvMosJ7JwGwfoQNfeYd0X
v/oPv/zyv1dJ99cPl+6Z3O93zDlXieNk8fZXxtSz9XQu3+2Jnn4Gal+oU3GwLx2m227guYDF1e3M
yQN0U0NBXNFceFqcn36n0VqVtYCI7pMlxs/ZbKI03dchwRVimk7eurrPLQ2frUDpe3G3Bsw5ef6U
mSwyDYF3Xkpvy/Ghl58oKQGL1AemuGwyy315c8KTVi8qxbz8bQx+gGGg8Rjd8Crv9jrP9+50mSh+
VhpQqSPT1U3JSvT7/PR1cVnE29fOpUpoTQq4WKT6v3xkK1BXMbj4/OjxhNMHcBZ0qtiuScLdTgJw
Or2XL+o+DLohBUwrLx76KB+cgPq4+yjoT9y9lGPNmqII4uyzyA3nJO/KabH1NZEsGabT6Wk6fHXU
ZRE1vb2jpiPwfv1L7GNd+HlfAh02opJC9t1YzuR4uLsn74l4hfNsxSBKTlmlunAn39JmBBMCx7fL
x/WAU2aWx65geNhiKblsK7pubXwJKOOdQ27GlRqeLsCG8cJ1/j+8VYvSxlCILsk/LSzahKIL5oyZ
xgeLKxjMx4/rLjdIAgdW+Vg66nij+wJsEZvH4sz6b1MIEr5bC2x5j+Uht1h3yY+/e5/ur797mn9d
5usfPq7f5r9dfvc03ZZD9UuON+KkMDdBzeRokYXkGNhVcMy/s+h0ZDl76E7t/M6Jl+UcBdgdyZKY
PLXTQfcBO7VC9wT6z27uTYid/u79enl3YWJE1pj8YLEHppMotcCcHvrFixlrhFhVGDPzv6NcOVCy
5AHmArkI8K9uV7TRDooqPf5Uevik2FQcOxXGZ+CAdAIE4h41VGETDB2O4oiFFeFc77nOICe6y8cd
v0hdwFWJTJzt8LvD9P67p487vi2ZtwUmLVWu7vryZOUoiu71QSS/j5zhKc53sIyx40ixlnu9fCUf
Id0u9tpWUMsZgxRbRh7J6OVqTQ1PiPZ/p5OFbHF1e53ekakEJj8274GNqXfXAjtep+9/8paGC+AH
UYBel+RNNHnSjuVpe/k5dkx5sLkYtQAbjKEV/d8Q08OsEZBAEiy1l64izF9ikFwMlV2Q2EWqfVhB
TNdDQDYOQQz5QGDQHby6yHPugJgicdcGuBcRJX5P6H0NJWIlyvx0ktyLAFGIyRhQXln17xdLyE9u
oAvOGIAEJbzlLbNGwfa719upQyl6bVnw4AzcTz5bCADw37kK4WVCd8ZHIEYEvK46WbeFwJCFgHeP
zJ6jMvyo+RpBQmBF/ZuLTGRICPYVQFeuKSkEwBoVJOw7k9vp0j1mXXCap6snSmtNPzuk40CyvAVl
Nw19cri8/8QBZtEECpYKcrCOQxAAKIlrRA494sjaWjiCNlJSYLdP37rOeAZPRRU4crZNMBo/ztb2
u7yclxvOwhqopj6V5xXHo9DDgJIEKetivcBmF5o8TveRzaoK7fDz5EZwXXGVlm8LNJcSTOaMAIGC
AwRUknXt1g4n660Qwsn0CCVtj9rklPVd+ke5mwn7xVpu6Mgzb+IKhN0oeaTQ0428MCZE/6hjP86T
f9QAp0bJVSnAH9SsdTKCosWGPHtHo7Tc1tY3mgwmnO3WZ/4edWa6Op+CfL+cXEzqcDlZaTmd3l8n
FKKUpfFsMGKY//OD0FKGIVivss/TfFuOOFVBWVBYcltg2VXBjUug7kpqpziRuIG+kFOc1SmedED5
OJaWk6wbvA1dJ0WLGJwKnq670KQwOihVFHkuAbmmsAiBjrp8v064GBeq0JRqRK/+8nF4xa9p6EvB
ZCj99Lq8vJ7QihmzVgYl8SsIc65x8Rvq4Y/W+3x69jzs3iKnrHiFmExAQM3n24db9uT/Dr172WdY
fiQja9uEXk6hQnh9+e9RHFT01RQVlsAVltlFm9bsuf/8nQsz4WgTeWNg4r2ji+BcXudna9adCa7D
rPFkX5JOD0OkR7p/x/fEtY+6uPaNdgvXbsV+ZHyBX3mWHYOvnRswtxb6yaRvm0nbj05C/eQfFxxG
Pp0CGY1HQ9kFf3EpNCCsUQm8TJ0PeBCml+gR0ytdGWEBiKHfabhB40bjxo1ohV2g/g+xHFTzYz5q
FtbLec25Wrl9ux5w6ztfnB+P3XBSvbDFSWnIXDL4pHCPRLwacACz+8cOBL0ryoUDhq4jiEG1dS2u
nJQoIzCibkOEOi3SfBN9qbYlGoe7fNydzYXTuRkRIYsqFDxIBXbl4rpjNuDcW4ln38Ex/1hu9xvO
dgYJDdc8HtzXgaZkEdfZhMs4zsFlmEqg3tJybiBYflIU+AQbfrTRIEZkDUO4v6QNolGyRiNtGoWE
f7DwKB6YAiaod8cZl1Tk5VE9UWFcIDn9iF6WjbhECvfvl/dl/p3Eta8qrlCNO8waXJgD3QDeYoHx
UxLxDLhuQsHcUN3nutzvFzzJoBWiDVBFNf8gjgbEpakbzKXFhvMfCFiBoWswC2MN+TMe2JWlJVrJ
9b2cLk/T6Q/pz5hUA5QufTsxmTd0eNtNnTCI2oeXmdoKBhc1IM+wK2dBbU2BeErv32sYqWOfL6uA
h2fHE0nQFS4iSEDVB9O8mZPivOQHhqGwHdcChw55aTwxSWY4BccCdyA6fnVWzHR+OeExMs0RIQ3A
hEcKiCSJwhIueBCRCACPLcXqGwrQzQBzA9QjFmG678vZVy3hjis3iNBKN05ugoMUbalCSScI12DA
pPZD9TiIX0DLx/LwdH0hjJ+hDGZX8iEuToBbYAxAwML8zsS8uT5LYAKjiXqBCOHSYo0Bqxv2zpq3
yVk7mx0YfnfFhW5brsHK8/WJeLR2b9AC+I14QI2PBcrk2FQWlP8BkrYu9WKARLdugsPSbO+QCFuA
yLEr55c9pZHJF0S8WBuJ1O8DqhoJCQ6yt1iKM+jo33tfyO94zbuhoqHAF6ul3NaQnQ+5oBG7Aani
yOYxlZfSSGlKiXVLCMRDZGYtYq5JujqKAgc1cCTKo5n+c9Y2odOzzeVyTYY9ZuNJm00JBGt+fRwp
gMd/5CYjXQbZAqud/NASukxMsGaBghN6nrpxB71HzkLY1USynSNbetSaRAmJRnRDIun/I3kgPvrQ
/w6P9GY2c9Q+7EmuSDy5IppU7s+4NyYp+mbgOAdaDpcTTlO9QsydTNLBCkNpmpeR37FRekUdC0YS
wg3KHY4okRAG0TsHfmzn23DfAyYmWD0H5G0XfDtQ1u23ECiEsREpeaqV4gVs4UTKDHLAIobvMPaB
0xNQK3S90VrXSYcCVFkmqhQZF/7mik4PRDZXYUKrUmrbdKYk2+t3gBj4RAW+VDN7OrpSj8BJlmLw
bIwoso3StOkCJ3zUDKVUNO4fFeZa9iO8vPm+HO090DVVsMqjCHyUsq95fQKtPamGmZ6vF9yP4Bqr
X3gsYvrF397/8pMMcFqAuR5CwlspgbuijO/e1BEbimDy7O5HusyxZl/7TyR1QWmegvSYIIQwgcBv
vSzuq4Woct7bNW/cPp6fkeZap9D5Z8o6vJOFpz300HQigzHcqs4RYmgnv71Vj4cOWGlq5Br2fOnf
LSm/UKVLTGIW4q6AIG5Ag/JRZzcY8xAZpnyWdRTtY+6ELBkltgMrtLzDpiviqFXkqdFC6kezkzbM
kUo/XGjjNMlkU2h/Ls8g8ykd2ka1w4Sl4IEQlygLLVFjHbuAjLY8aogItFIGFZdFOlRSBoIXekSN
XBlKkIbOr+FRBCMQobC1sBtZY/PplP38A69dASLdmZ5qaBl6jUgAA7XSpogEbQECFicYQGAlW0VB
yXI+uII9oi4FtdnXuprpeDmfUCWccS79sxEjQyPuLVCCjUjtV1VpkbwHtqUhbW6DSIwsceUDZgHn
IBIp0Mt0eq22uV3ULso6SMXa0Z52ynZTjoSX2gBewVPRwHV0hsc40qIAJ2rQnYS0uEB3KJZG4LJO
I74a7Y8SnWVDq3BzLcBuxGG5yRhzOT+NtYZRoWUQDvKB6r5pxOygi7IlT+yrJyR87n5nvPn283af
8Sy3KPVWzQRdo8IkQ29rLwQqrc4THudkplku6x1ZR1ZUToVBD8ak55ceq1wULr9L30Xrihpoe/qw
PL2oj6i7wNRwWLPOT8u9rwor2MCLB0aBqAJKWeImhihd/Jp3FUyMvYEpkEV1tY+m0h/QQBKDqeoB
94Bjaq6Z2enHsg9noEKmlmtxQLpM6igkA0nVKLKiJMiPwOUbS/NlOf8bUXArge70tYR6xHouiTQz
36sAdtRTgAbO0gvetl9G0RiaOPBQ3Yg0qtDFGXvan8tSZ2UIG39vpTmQeAN4lRPydEsomAGJa4FS
iOnwQQS0FFY1kK2xIKUOrZKgYVc1NyGeTNH6VJMnFUedLCSC7X2sqNYhywzxlNOoEcs+Zz6ulw+i
BHpbjCQfghlt4xV41WU73SYwhis4gyW9qnLt8p1IBZlmRdmjEqDuDPQKDjyPUH4IjFGNBQIEjF3N
q1YNsRIeLsFtwk30mCy/xesA9UAlEty9NRXS0K4XeSgOwOVPqb/Hh1rC239+EC3vAtQAYvl8R0WU
MydYO30RxqZYgf2yPONGnwFBQjBGtdItMU9UNBVWUdX95XUgQAxRoLoIS2rVakxIHME27vGh3i3E
G0NcqaEt9LBvdsa+uCzINoARkcXVtaenyL3xpRy/xC1SSEzF3W1cCDp9CNyr0i2qZQ1Ie7aMqqtP
T9bBcc9AU4EZYJZ6owM0rgMMVVfi2J+OYMuyBV+wzxfCkiXqA9W5DPwdPP0DKm9KcqjFZb1LiNq8
WOkEkFJUZwpjm1knuNFMNISBhlKnB8aeDuRYzJ+md5xbpGl3z7UUkgSOjRzgEBdggF6e7h83opx3
kzcye+pccFMdrcZ7QHUj9A0uXRQdCbVgMNFPikVrgPROcpJQTHpEXKUHI8QCkHi0DaTDnHu7DtFN
jE92E0qzsyq0sKfxhABa+YHmYYiLF2XP5U6BREUDxxaLRLlBNMn0zbI5ZwXQfW0gwVT6aIDJ3Fse
uL4Qem/jvzNhcerRGtGNVRG0DhDERZDaVbAQwzWN0LRgPdI9US2FoWOIstkxj43PoiwC2OQ0hNFI
mwDM5Tb7CI57h/HdChe8QHvbiqt2ZBuIGU2iDJz1aJnojnkhsEupsAypQkiNy2FVRuEYOmGPrE9Q
ZmfYHJQJ4pEAU9ZACrnnjHjlaC8pLeEDC42pUXonOeR+FpzNTVkE1Cj+P3+8UfXsusmVoLPat6iQ
zdWqyEKWKeRmBToDEqeMnVA2FC6/BkQ/gAaXj/Pynx+ECOx3tvaC5gE81weCs2XFUxXZcTwmie52
Q2zbyRNN0vRlaXtab9ohhzVl1UwXgnRI2ZZZnR5B9HeX9uuwR67gaV/QCoYQ6DoH8P04EU17oFit
EiT0PJInq6B+j2yWdGVX+AWPoIEAWrmZUs/vKHZjEonwZwJ/ul6+4v0UjA2tqTPtKtBhQ9EDkask
S27ZZ/uMSetsZC2XvlWWhk5RaqW/if6XvjhjpRE1lbLcP/D+HA7cRF+yNdZp6DSfX4jIMMzj8PYA
ScIbHzTSp1UV3JZLDlS0EFa2kRP3/KgnouGAt8puQ1wIL14ynEopWW12IbwM1fR2knhuth2P2OCz
R2Any2wEIKAURZqaj44MJrwo0S4PCw7hwYWVCJUxIIO9gJreKuuL9fMIyci4RCz4DFORMx/HZsVg
2BPlMIOgoPTvZXEqnttkCtZImJT4JmIwI+K20pX2vz8f/y8fn0ENG6wkLsN9Pl2me2N2Hd87hhT0
2hI24IDE00pBeUVf8/ZycqASnSHk4H6djwQQmDcrjEcwxpQeYw2qF8vuxSpm5sszjhXZDAsSpQFU
JL4vxnRlXn5bbrfl/EL1tgvDkOFHlAFAhNP6Jg9DSUfF34EPX44kSLZEjAegpkQ5pUGSSVP8SFCl
jHUaImfMCbOzvDBGl4iS6uGTARdPkzi8fmjaWo+pc5wQQUeBKt4hABzb6EkQ1HA3qsYF13SgD8yn
aNmugDFh4o4IOZTx1LfLcXleqKYZubMW7vbthaqBa5fZZwepkZ4FCeOyJ6FqAhIzXlmro7npG49U
U2cOUpLzRCTUQ2S8reAXYuzz2JxPUrz8QLVCg+lFrs2acXwmJ9XPoBkSmayXY3iHCbVRcvZCpcfe
qiX/ZIER73f2lzrCJjoh+GdmK/v5vEQ8nat23UrR8E2+QcGa85w8HRC+GyxdNVC5UcFbQpKXoxVr
5VROKLXjCnDgr9gTVLbUafCYvtkp43JImBg7m8/oJlIMfEeUiwgwD+WITIH3ktAzhAeN9L89sA09
mYLpz9B7Y4r4hnfGRwFsvZYj8saXWR+9rUw8QsPvhDegdloZlFsHjDD6ujgtnfiodpIkZDyDM55u
FvzU/Doc76UPvAkJe/G9ThSZjkT+a+/I9jj//XUhUAasstJ3zZkh9/Lm6UQ86ALnme/qTPKEheOd
YdnCR/ZtvegyGARXFUVMlFYCb0XC0SugyIKe1q5189WVVIg4vRPPeAFJohy5a6YqWSErAK64ecpF
exDgtj+NrGPgRSmL6YlOH2I4AB+xJ8oyLTa8QjBMo6xiQYYx4v4OmIvkWj+ZHj7x0hnlz6v28zsf
uB3HhCY6sndZ30xu3pLSpK4lctSimKCgyUkvVPCEjc1H5YqyYzrLAJIMzp0b94wkx7vhBNtZKEj0
6wJ963QvZ3rXVBaiT0B+4hW+nQQ/qp2dGqR1YpD3ZfDpRsS7Euj7UhtmblTawRENHl29RuezvF/n
tw9c0/WCmgkWs3v0MM6BI3jepFDwThaDPcCGxJyI3l2zM6HC6MF9w4gMpk5CqWGRytIyIgpYybe/
VLPcDyurIl5fLONySu2ZWoGDk2VZuyHLvw/Tbb7N/qVyXJ6DwiOHxlG0pp3hNY4byhr2xSDx0irY
K7ujzm1HaAW0rTuxynr9idI54uBjMUmEaawUEy8HH0aqjcIbL82n+RhVO1D4B7ePJ3tM6tUaKVQz
eAi1KpmwAZO9XV0LY8hjIc0xPkL2zbSrD2YQNpCANpCEocyHKsfvHvloCHEs7E3BGi8EEQ8X6NYz
b49vheEOPuaS5dqaRmhU7MvS43XFRjXf1MzdRa3CWdE33ehm9yfj2Gs+5GAIwhA31KNzntca5XlS
iE9POiRecRrayWj6vSLJeGNMeFFxRqSzS6mtNdqj5or56RQrB9rJ58rQSUFEPNWURZmaLoEjZm9K
pG+zpnufL1Y24jblWFbl9bumE+AKSMM5ut6oG3YIf/wORVmvK4cdJSCkUGFAqKw23n+FV+OvP9/v
F78k/NpZVXK8vHVW2X3Mt86pgzp9OHstFie4+mIn99ZnGyOklwO6MDKMW+gdSB6b5r9frl+tvPZL
HKJOs/91bRbo7O3c/3W+3ezhu/Bv65+QKY/jggoqm37X29Rdpvm9W+xNX+/d1/lnd5z9hlFIUX86
SH6uMBuCsJgsfiIYey8OFAoiCkAf4cj9Qm4znzhRtD4dEOOim6Y3aR8v89nR/tzNP9K5/v79Kwor
SlC/IZEywg7SJzbEAWK0J62A5Ne36VDdkUUTDizvaPQ6fUhbOjwd4H25dxFJbMcwmwMl/ZshGKT5
TN88Awd0tRyMyXRxEYxFcvf+8XRaDuSWJCvwLeTjzZEnGvNGfJq777EzfZzb+AGskeeZWxuZc9kd
lxdsdqdbqzJKwJh3u1Yx3lwLiI6nYUd2LWuuFHllDg16OtvJgTFp6WnCt7aJBxAOe7fl5YzD6PMt
cJlnpJT0TsqBAYgS7yUIVCw1r1GaUqj0pDSgeI+BbRkfZEkC6uZk1NfDjXXf2BcF92cNrOUZ353i
NYoHnHN7/7rQ58uX7oe8ahRVO2he6u0RhxWcE3rVEzYVQ+bKoMVi7MRtcRc5CMDWvQlV32NiRqWb
bKFqzOgO9PX7J/HDeY2YashuCU2ZN+WynTGBDi7eIXugLwswa1+oy0jQbRAC6gBXpBaDNRWJ2bpm
JgDThrxpmztIQaKyNvCT1rjQTWJsoV1l4QRaViwdiaEt1HWNV18OTQNAAfrlPsFR1Y/X5VuLFWTe
vq/H5NGhR20Jyrrh4PJlSm4A+mnKHpFlK/Ouh/0JjJvP2KGZepzmZlFzv37S+BNZ7xrHYUZizN5m
9bwjR4hMqkeptRPRIisO7TpM9Mi3prEjAHI3+eLDjh70chNClqLGZ9ZUVbU39JVgpZXPe3uUwpuh
rsiJz4ALF40MU4FirKTqVzVAxeYfP+HVpDRYFdJpeVvuTYBjhqdTmwPu8TX315fwWEDV9/np63L/
JTtugOVW0jq6y6i7lGMy9Jw2VS6greLRkyJ6P02LT5N3RDfPmAaye7XsXxiLhSlWIHZWs2LLYpTB
29u5as8tsvYtukjnb+UA4qppnB6PwptUNWNSwg6QMSmEn1RWiEA3Dh79qOBVuwGjCUbmaWytyNgH
jlOwHv63ZaHD63z42n3csMlRY8q4hM+r7NlvGBpbLktU6iHrk/Nx/jEfj08o6YwZed49jmFBy7jo
zUWt49ZoLwqTK9RZtYmeUeVN5tymP2HA0HR6uVyX++sb+t2MaF7aSJ7IvQiPRts0o8yiM5QwLCva
n34n7duWmdZ93i5swknbeE8ftzlKBRTnvMDEEInt+vLx5gaEHi5nK3VvWFvYmPSsP0K2YJHI0Zgs
Q0+hKo06XTlkw2adG3zRvU/HI/by5Ji0oT+CTqNBHiyxBudqBc7h3wkbq9YCeq6MB93nB93Xg0Va
sLtCjzEWFCVMsZ6NfLcMYpmNHEuYvharQvGQacqMfvhUPMj1Ov3snj6en+dr922Zv3fEXL0xGRYO
Dqgii8aO0+Zv03l5/ziFcC8GJG8mPBarSqz4hJeHdjhNN5TIBVQlafbso/UPXb5Aeqd5cqTXudi/
s4jOnivPWF/bmDo1/Jb9gHcmh74Wm0M3qwHihhyL3hejGJP7xiJ3K/Eogbvz5Rzly/R0QreiDKAk
7n9UYEXnAAWSCUH7KVJypFgepWqg13Xmr8dLdH4bZSqOqcg82Ag+LNTwB51Ivb1NpxOFdw0YOOfI
KLw3UZdJQXsBLznkop1KRqhCIxug7HbgSo6Fjhn7B0++4RuOKcoRJLTP18mkqSKUHZqKAcbinq+y
PchxVS8Ka4rrjQChhbJgBe6iy/YZawolCm8nJH4OhOHzSp4yKDrrgVAcfCMu65v0i26wB3ej/QXV
9edekybTbJghGvtm05H3yn4N7jv08TxK/3B5W+ShlwmOmjuftozQ+UQcKWCBagsXK2u6/nlaTh9X
dDd8KMwWbnYoJRRXA7CcpfsRBFr7+lWJE4vo6DEsLi3pbEDr78UDHa7TDfVajCmOE7XOcblZqXn5
boFY3Un4pGOKpbLxIcPikLoHDVwVEEaZBARDtw1Mg1w3tIkxEvjjG88xBd4ESj1Qjo1+HtNWpFKi
VBbiTJQhjlpgAc/9spzCNWm0TYTkuDQ5QWQieExQfDvuOvUMJH8rWZ7u8HG7X96WX2fSG3ZRlDX1
HYo8Un9KJb7UhVgpDikGPQQvKtzrYaYuZMSIbfEMbEzd3VE1l5ZkjOc1o/gscfJ6WKGQRPVKKmRo
jaUoin+QSaaCxwemKqOF8Uo6xgcUcNSMggfq0axupDZNDI/LPu8SxF8eteRmmy7xiAONkQgHdHBF
HcM41Jxrq4xOYTpn51pt3mZXb4ZCjR0taacSy2PuvaB1tMeKSG5Q8t6j5gI688m5n5ldCTSvQHdc
tclssxHMkNIREhpxFoout98mSwM2Pu2ohMvO5KhdVEWDlME+VyWAyYQ4OGkxsM8xDHFawYtLAYb0
5kb2ZcjcbgFI/zvTCi0q8JLHfcJ90f1NqHlAgUe7329Xpjjqo2IMLLRYe+HjDQfGCwpKKZQHabFf
LYyZbVg2nx7TFnv5UI2lOFdk8UqByAZRqR4wuN/10NA7WHg7yIu+lBfDZwiUgiyAnjW5Fuyz+VaW
4pIrLuPdHO35vs3/5HIdnxK5ZigOrDimaWjEjeUF8363jiGvQw6AB12sgxWRw01CuaGyWL4C0lt8
3CNp9wBeVn4kldYttUVW47A8qnOjCLfVIXTQJAgxIGhKRobRoU9RjMgs4t+KE+R9kFYeM+WN8EbV
1mcEAzBQ/NBBOepqUdnnDq8yQfrSC07nULxRk8nO9aGBbYADfmoTOqvjQeaOBaoWoMm/QO7liSOf
rQlkKT4qeHBamTY7U1SBlzKujPKpw4HSjDvkLjRdWMri4IYBXfrgWUrUVATiMWGxs2BJDhRzbkTH
DlNSZc3gwpLRQ/9NTD6whgCqGwAtu4cBx2aTuPitPoPKMmQMCqKl/6krYSOmIzZlebs9EJH35w8v
9vEqscmhqmuDAfC/P4s+Aw5cRnB3uB8ELWpZIJK2cPf6XkA8wGKhFeqa1/wUAjjUkMzHVR/SAJ8m
SpOVj4usK45G23Y5N6aQOFJQd9SyLXRJj4bvt9QoxpEZLFNeK6lB7ZFnxLlV1iV+3i8zYr/fQAsi
BeSQk71r00KoBPykrOwLTztaMb85BlJGa5QkzStamMlCqT9WHyYveL80y1fi2lWH1fn4DYxnTOED
86EkxN8EkwHniA8e6mfiKZQhoTNLjyw//lIJSeIgxhqh4OHHJisLTJni/EYdUYHI1pjK4FDSoxw3
pmr2ZM1IakU31qki6ZSyEYtoYq0v6A5YmHj8jhBShhWRJz6SIqodd1IgSOYFk6Cr1lvHNZlIXLga
RO48m/0m65ABKx90mNJWOoVEme/EKRJDRCFwB380NXZ4BPI63V672OaJwlKln8d2WW343oahZH1B
VSc3r1TWSK5McX3yQjnwa13WDnrLeYfNjakyzMdb1vMObwukbMbyIn6r+7w+c77BH+4xUDGloeYv
kIYelfbJAhi09GACmM7G6SLeKEZUAO9V/b0oYsLM/PcqcIIcyXyv/Xg8vo/RqKOPWSD7BhvRCCq1
RTK0bf3RZd+0pPYkGMAVZRepdXQqoDby0umSsE7hNwgFmI7zqrdvhsPRPjqWCg4rcqsRVGiREQhJ
stHk16obConixLG0Xwx+Ny2hOFbDzlXdRgZLe+Cy5MkgpN1CmWiGl+a3wiXXniJCj7TS6DOsJXOa
cfAe5DryRDgk1kaHmlnN9n7BPcRBFSYJKPT87dFjBoINzrgbhs816rLordI58lJ5kVqCsxoRPNLm
p0456lpY87fDG6BW9FXtuiHSm2YFyCv5BoOeNNqb4BSwsU3ZlvFbZS+QlX4AIUn5hIHSN0sqYLSa
cun6Ea3vecgUElGJcUDD51swJOn2/W/NOJJyAuST7Sd8LXTsFUXLzjyN5usCL6hSdiCZLB4egrKb
6jFfFnujSsfWxkEdsu+xIqJWyoaDEAnEWi7lYdxu/HfML7j3Qy961h0kY90360VerWna9x2S4unz
IDAvGfIAJwdIdQel2Ng9XY/X7tpZsDMKZo03hiGBqbTw3sveXlg33w6T69PrNbEVHpPWDgZI5t17
SyDuTFx0z8v1du/cVKHGqWLcyQvnPC/pzkyve9492QMdLufn0+Hefe84744oJBlTv/5gWSTf7bGk
PZgl3/Oxe76c7539E3G26HD62GYehF3fEOupDcW0ud9Qdl3v/RgujKvu+XT3cpJEEYuBTY9tniYU
5YtX3eJvnoYiwLlcsUuEYm+M2xN9uElk1rCjMMMA5WT1lPcxBAK8u41MBAFmtID3dRwB2o0Y1j1/
94LevWPjruqZuKoMyFdix7l/bkfS7cgS8fI+Hc9uS6x7IjYVNWXaU4/SDomhwVRpJ+3HdH47VwcG
P9eoS7rRBAUKRVEguHPQJ3Bn2mLmoDTvvr8uVrjeAgV20wtxNEDMueLgbkX9YIWY7E7n7unywx3s
SMLpZZWIrGfoRYcSsnt6uc7vVgRZnFGgxGj2c6ok8SQBJan0npKX0f7euFX5TkBfvewg6EiNBaB1
CGHvWgW48Cump9v75ea2dp+WsyPyp9Pl8LWLQ8vtTUi/0wfwHBQCmuLIAYALIVjEnaaDtZRe/dB5
S/YchbVah6aI+j1drsc5Ym6xqJtDub09eI9B4qvWNTEwwWKwqX1URRx1KLYXH921IC+nD0uzDycV
CgW1pnNMEYB5mg5fX/zTAXZD9+tyvi0Hu6UBBbMGhE0ZsF53VODfj3+30FD0a1HDPn68fsQgjQCS
k4IS0MQjGIHe4uomb3Z0X81da9ShqNEMoMZbFoamJmbQfXAJYPlMlCJPpPATVXFMcAuO5PWx8sR5
Q/vyGYqvNYNngn24RtqqwBIno/wnTUGXayFHm/vGJ/S4iu0/bsKeRHcIoPHwQtreLT7jWwQ3ohJX
4xyEi8JRl/JhaNAuCmgdWu8hjb4NRe9BHMMAAskKJgIQUgKVXiPQHDKN8cGlPUq7XEJp6kf0sSZf
SVyolmK+rdEIKbTWE5iyFg/HFioMB7CrMTk4lV2tch4VZ2w0NU4iQOG4GoFkzA4Feoe4NOMMULzv
Bh/2amyUVJkYSI1WnPVt+rFDsKnMTaACjJS5HOVNIMB95ErCA2/AvE3Xl8X54z0ufRTYm+Mtzlry
ByXccSjvlbdMHfwSGCvYvGXUcZxEBNAqgWZ2oB+/S8MKjiKpY+UElD21/CTCcCuYZbkIwny47Mft
Jw6kj7Ol/KAnEvm4DSQUkPsuoCR36RH0NiXgd+8qK7OXO3ELtiQ1pneQBwoM2NaQPIDxKXBWBILH
N3zGwxEyFvcVRvUpW4DjXhEHDBSotEEPOJVyCWjLJxTFDueDoeQAFCXUSXWHCEe8zoj3td2qqbtx
PjSadK4+YQ4DLRmG0m5JieHiU4PbHwyYFvywj5WScHeRDTWvcwfHodvTUMKkyBmFb9wsGRhpPVd1
K7qxgZcb43ut+wln6r7E3g5656jlNKhS9z9KFxxRmm/N3b2nw2HK8dPOJC5oho1mZTTFSpxi+ViV
fYjfLXG/m9e8FtxOZUcc1Ahuzmc+Wo4Lvi0YPHPmG4vpUIqBcFFhVGk4qJ3sjeseJQuW5A3Ro3FH
QcjCFN8djpMzTrKiKlXpkAWKPVlqjpjSwC+V4ZYSIBDtE+ctqwuPFwnoIvjRGf3eOCYuyKSqBh9x
2wT3b0GcApi9VPQXt3OGsYT1oCUJXa2ASzsMebgGrq1xpKepAHEj0dBFbBEcN8C/ANlxBAzOOXos
InNiN1ejOwOOok9J71C0+LUZTdoUj3jHT9qrQtrE+bi4kMYDQgza7p5OW4EXPJeQhqGYIoPS8HtQ
TQtiVWN4abFxSty9gxsz3mIi0wh4JNkA51U3CKIgMVQIqr5QRWuqBPAyTgYKmiI6H2uHzDvgMs8U
9qAc9tqDuP5RnNQ/j5SPi4rekNGDKkeidGHkJ/M4uBGt9/sLbe9cjp/yY4ksCoiQ+GAmi6M3E6zT
aXq/zXHwJqU4eL83Ftq2IBiw6WsBpUdQOEeCzBeorIH8g6+FeTwTnpnfa2zhNoMYP4snnMGHYZ/K
WP0M/Kh8Y5/uFlyoxwENCTdZucXUeFYi9U1FUKqd68NNEjN+LrOEgxr7Mo/QyizhzgtnWyX7SKX4
iTT0pgPZ7hB66G6M+m2hflwPgWQeZ2kaKC6ucETBCHjoA9uVu0QpS24Sv3JHnBPfHggwgUgJYkMQ
FNoXHvY6uxbEuHALCwbPw2jNRq4ej/twPmzjZWPLvcHdirFe3IJuC7dIof/rjrgO0yDMBTwq0g+k
Af8JWTyaWvwOj9TgkVc+fCZSgyvRsVQ0QjWinUTiKVsvsHmIZjqUwDd1TkPLocDTfmxTBCKawhzP
IJrf4Jqg0KCOH/N0m7bZQJjdVTuG4OsJZ+xxK0UNSWKEzddXSbUu8fBr1Kbw74Vs6neco7fh6gYf
ElEU/glvtVCEKGsDP8dpnpymJrQNnjDguJj4HCQ2buIrDeGMG+6cwWw3y4llhCTwKLrh+x3pNlVs
43R9S/3gJC96KiH5ifDFWi2bdI9+sPnwG1PAn/TvMSlO07nCUS14zdmiHBJcd0ExCuoV0dgv7pkW
MWnfXtpwboj4ITM7NGoTDO91zYZBN0Q4NFz/tpyaxCvmZDUzihvZOF2Citoit03LKdS1hOYsVc+x
Zj5wH1WU9rVuFczhcmpUtbQakcTCaWKoh9gIOYxzz/j5OlSOl7mVHr3qGwICV4SCfcp2x1Uq53xb
+tK02PC8L7BivKxhshVhwDHPPo95nIP0Zws7UUhQMecCJsJUxk8ItA2QzDusGVQVqrKmfGQtwseN
NlgkVzHa8M2hmFOlrBZ7LhSlW60/XU+Byx7DC2C61ZqBZy2gS8DCj0b8DzfBAWf6qI+mIRlctwlT
K2TdodvwgnVYIaXT2I6GMYjiTW6clj20gbc0bGqcW/UQeKSaQ6Mg9OS1a4BwfjeGlGgP8Qjc1oS1
blSMZCUy3NLk4lM+LB7n4tCiK1zYup9BFIVlpIMWVdwxwLkRaslNLRFmnxBxqf5TdT+ERQ67FoBd
WLd9CTtH1ZwVyknAg5TQMjGN6pr1gCiqtvH8lrIlciD9WCt6xWlhwGkBsvLge0datIDbAOM+ryMd
ECf2fhN/aPgIONI5B+TgZ+Gz3ZllQszr0kRpBCwN0a6gawUjtPZHD6tLslC7EyIopYGiZlfQuk5O
oriJKBzqEX1LnBWFBiJxLn+nW10oOIXAnJ1/C9sUnWuVbe1pzIAhE6ciVcsXwb15qIyc8/xQhr+/
SpPxakcdLjnwDJeA4cs+Nxrg/jJu04GStz3ZYby6kgF2B1oS9yVxTIn+QZrhjd1KUI3dKrfSu+I5
lnrpe9ddLkV3fT91T08/XP872bfOYLP5ULT2r0MY/PCD743hB0KVDeImTWFwYLToTsvt7t/Kpsc5
cDkWrf0P00BYHMbwnR5ZwBhyrtHekB9PIt2UitD3TvTiqxLMOkCBKTceQHETpiewvjvgRzIZN36I
n3mcUHGzIp3CCh/LKQXriArVj93BDco43ujxKNHw53H4i2YPExyWdYRDY2LCMJYjJfjmgky4oJsD
dCCmZTAMsW6Eg5sh4hD7/d4gF91jQzeYR42xGH5zksfjh5jXAoduZIFRm0JDDwHR5TAbscHzEPH8
5MmXgtT35VwTmajGnq27HS6OlRiBYjH0JSspOKdlZYB1TgsxWUcPxVScOPjMyRrh5khIN13Fqe/v
TWkjdJ6S4acircSjHSDL2yn8T1yV4tXxM8XAF3oUTj/uGGDz6o9zIITDWvH4IGOUG4vRuXlKr5dv
s5+KcuiWCzEsSFSZIRGfjpNwDi3q66vzPpjjb8tUOjDV7dcWU7E6flQYHGIpx7//PN9owhFwTAsc
ybSOH1FxPBQnqBjMZymGoZQCmORtrnWTYm6dRTIhw4Wpi4eanCHnQnFTnXZlmYl11qjovAthpcNA
KbeR17VtdZIOOVwK6m3/VpjI85Nkd71c7sQFczBzC+7jQclS46SEknURHrjowC1eDvflm5vE48it
WwiCA7opO/yOcC0f2Qs+zrfDfD5O3n6nKFfXz7USrgyEewoSghB4JgMCs7YfhpKR3DiKkvSocUBG
UpdtTH0aVEU5se6ZEDRgThqw+d2xhAOlZfdxXbysomwrIbDBb+uUq3XIVU8PuSonm6URThsRoSgk
myw5JcuT3zY2GilluKiq2zpTkgPWRH3AWn1U20jOjgO6UoGRW2kqlQX3cricLteGeTQMdY6oDjdj
1HCzciLZ+uxdzeFgpGnOIJOCwW8rIB49hVNDZ6qSvRQrWHQ5eq91pOwsxqpstaW/kaS/uimx+k86
+E+3+ynIQGoSmaobE1bDBLzIFAoh8cuBAeq1BDWuTTHSW5UlPW9cBs7DTVmohBUKR5D5MZxy3Jht
2imbw+nalMpsQFhVe6aQxg8wD2bFkbizjU0woFPxmNsPLk2zDvYhAo4SMo0gVTVRLBk6pWWR7Mnw
eXpbTj8bKgd4vZ7LBuLqe1IAMY6Ykkm5BxN5h3IHHmOwKEt0Wx/co9u5wRS/M4Fx69ZGph00rgVm
JITrH6M2PUVIBD2C4YEg+o4MCyVVBxe7wh4O3VSASUAXAPqOlcmBkj4c9NB1NoG897iJVVluo+wF
xIzv3dUfrNP2fps/jpduPr0F++5AaFjs6lZnf9nn7Y/7FbUkA3ogbiB97SBFAsZQoKDb31cCNFHa
XtsaljPUvAeDXmMElXaVB1ZQQbq7x0GkpI0F55m2RmMKUjBJXhifIzRhrUmjWXedT240czMgJgTD
9MDWWxAETZqxLgOcH/Zm/+Hyfpppquay9JXl1rQSkayfWtFcEG4sVMlmmGkbNSOr+nY+iCW6b8tt
eVpOy/0nfTABr72O4WVFMaN3BOx8X69LTNZtOB11bVvljVYYCcTXcmrSBcVk1JFOsnWH062tI8s4
MTl1Wg6kzbbh/Z6KMShSJ6m6TnIjdoO9Jd3c8TAnfKLDh0PpzhhcK+mGVuL1oEM2JgIdtCicQeO/
dIWB+zCQ7kNdXtdlmib9xrFATxqo7faiuul+/XAiRJDhKV411etqiNRoIPQBrdo6/ZBhC2CN8kru
Ihl+1OzpdVYuGt+X0cj+3ho33lfv24vp5e39tMxHPyyakNK8rgo37L4cm9yu+gIxgqGKh3ZATJnk
UnDsvdWF1iZ+vznL6uxewqQlNcx/wC3VxCJriMUyE2goAaRJWWbqPPoQcyUTikAHgUaRRyCSBFIO
qzfV3MVADquXWKpge+dUVB2oHMLYYKSxIesx6IcwA2uEGdiOdA6ZHAUeHXxqoaS5wyU4BUeS5MTu
ACltHYxD3X1y4bLbz/N9+uHikc8EH+UjFVH5yjh51RonX3/4Abjgz5fDx22XC94XZAPe2PCZQM27
9/l6COUxLaOZ16NLjgJD7UjD1lVl0LdPIRx36VJ19x/3+3U633Y8AcCrVkU0Uh3huBOdL+e5ZabW
WcLLq4Ozvs+v3cfZnu20nOkEBLTjwJsfJVOQIZweNZlXXyC5Ai0vsIzYao2HJmmJzpWkzXhgvjXM
+E1ZxurpZPaw5t+Lk8gtQBITP7CQZtlVSDPUDcGHZDBrJYPrMfuEJRGx1BRC2lRrESp2N2ul7ce6
OHPlOKvBcnSv4nxtkHXpNAlVzbKQgXLgbHsRsrVxv84/GyacYLoeIH/wblnLu+X1YFth+0tKYvS6
bpnIsBHWxdwM5a1zpeqU9xiHpl6dGQ1mID9UCDXCmcDp95ks0gklEwfwESWTe1edlHebkrw7zXcn
C91LL/RLOHxg+GVl54iuEeoLE1D3VBKsp5Jgan+qkJH5e6bq5uAmwUw6JKOqi+VKzJhO5A/12qfS
DtuTnzHly1BS4EWADeUFeB2M3wW8riyvd8/Lj2MrHybg42A8PYb+mMVq7Eh94h0uQXrYIAFaPAxW
wZIgSyWHegAi4ciuflneppe5dTgx9nW/4lHlCK9yCFsTOG2wYrFaUUrGjFWPxSCh0iHfhYPFgZDL
IoestL1WT1KaVDQ30zFJejv1OHHNiGoYvgqhH0eH1lSdr8vd06MV+97YwAGx/eKMk7kL0WNppwcH
TDTKJ1n9Wbitu67JOquefJqQ92tAvVVjwDENvS0uJTO84DkvbkCRSmJU6ya/PP94vzUlrOw5iegU
U2uGP3k1KlKxPRo7GkvfiUw5a/LRM/0JASvJwCMsb/NElI6ng84Xa8VqrCij3oMcUCW7Lcal06BM
fyLpyEjzahMTfUiGgAy2dPVgVAa7rHvW1PUZclOwEqYMqOfQCWXHijK8ypKIrRYvkPH0bZ2wrBWc
7KgTHmS95KCsPyWVmOBYtE3UOj4oDaSw0JSw3LpimLSDRcuBAlVllFwUg8HkKwt15a+/htcXaUcX
JJhgnXFddpDmtFb7ZQdZHCThe5BVoyoH8PpWAA8t6CpV2UiqMlH3NDdFamSgFZjlMLjPlJcX7nVc
Xzpz/3lqdfmoUhqCiy8rwwWNGshYUMlXL560pbe1JdX6T/oZWVFek5ClwaqCweqDUjRuSmNBUHkP
TuovbvDmGIvZ6da6ppHV6wBK05k0V7mus/hj4Qe5E5hub1VIGdI8gKmPMvP7UEvQyCGDvi4HaeB4
xIQ2VsdSZQHKgWgmW1o4IrhKECSKQeoXvEqGRDckFd0YC3Fsaj4O7bL1BtdRoTjn/fXnLVXnEJqq
Jx03GNrgZDlcv69rg/SzB4NFoIRretMiR/sauRNZRIjlplhYBkmzvL00a3yh5wZrxaCxRV01lHm9
zFNkq+6oapRk1PeynoqFUx2X2/up1UOKZLwKW/t5aTSmMKAT/JtzhKRo1EDCvCLsS9n2yZBWFwjz
gkFBG7YiwxiMV32QmOjymJ1+7kp0kVHHEPhmnCx6kbuLFMlyDN5jUevSkGg1tbK6+NzytyL5u0za
KUpxG7JgYSiLrwR7CDWGuAMdddA9kvh1jt2xu80nYO4/E25icdlGJ+J1udqVag5Wk68BwonIbm1D
ISPMt+3vTmDjiJWCrb7r6rqyRqCoHtur25Bk8Mog0aJa9xkV5xFlPFYo3K5oZKhGpFipWoNFng2h
pXpQhXSxQA7QXZyh8C1ILpGIwvDpdiW1KwHoptPy0rASuBkxzQONf7J/TGgyUgjT7bQ8K+coSCq4
I8gbk5viMArPkqzf3JQVPzhrQA82MoOmlGsqe7LWCZXS2WHR3Sfz0bzn+0NgiqQhaHRw4NIW8Xjy
5jmSXnjoJaJjGNyU0fiHYj7R7cz6D5hJB5LSgkxKq/0SsSdpkPW0r8W71TakjAWt6sMvKrxFVvBx
Q2eAQ+kAaYOBqSKFDVaJ6vBWVEdhFtAWN3Txpi7jpZohualTOzfFsR5E6EOS1YliU8ss6uloCobo
67ZYRbOL7pnM/dYnaGwy/nSpyLi/HFqS/SaK7xjGQfIlAzft6p8UmSIhN2M2AYfHYugFVENTY38k
1hYMUSzJogp0wMO2H0+QPelcy1Y7ZjKbGu7aWHfX6hkWUgDyvi4vqrE8UlGJUlEpCpIk9wSrxiWo
L6u4BZQ43ZSxpxK8lOofnDr3U/ka4Qyo+UBjZx3dZGyPobG9h4oI0gpjpRUmSrLeM6RGcEnk+1ah
vJxDUU2jGkbVg09VfUza3j3qt1dCfFQ7xWaKyfoW0aPDbMicRD1HbynRa1PGOzfP9D2WU1FhPkPn
10E0gbYQ+H4vh5H5BKbbdR50oSOgwYIrNgkbUh2bTwySMCTlbGLdeUgLHEBG5vrGMoqg0IrdvlWx
29frYwvOck0M7XJ/U9SSSl31+yhhysWAzb2DIAaKlTaYeWg6AFn4Vs1LPUmytb7IfM24a+AdDQNU
KLjaflXriWOkC4KUNdbsbNGys5FC+MIfUqQ/ZMoal4GofhZU9fNQLwOo+vZkcllspoVoqKB45xyZ
y/XYSvgMY70XtsCMITFTJ91SypFJ037YXzqmyWQnrHaHZs2G+Mks2ohI7aqRRZaOgAYO0YNS4dW7
Y8G7a4YFQNDfVTloakea3JHGh94VOQhOl49siwY1qIiyYAR3eeXDdGwrbWn2pCxJ6uFy/32R8y5k
r/c7eorUlGozCVVTSpeTbtq2R8rggTdaM5jS+ZSbslzJfYvLa9SYhBLX9fhHKTI0KTKGeslGEXDT
lL7kDAucPOjLVvUiiCP6DF9tKsXTnm60QWJFuQ8hKjJFzIe9sQ+y2RkWrj1U4gNOp4INpek4qIcx
r0ue80qNSEFyjlUTlAxDG7HbyKdxjI/I2TmykIGocZHPLdiAzKD2fHc7OumxABHhYw2R8Kan03zz
C/yv3XS+nH++XT5u3eXp7/Ph7mqZ+t/9eL0/ADVpNoKLp0AGwwD1BgMUleBeQExigKLS0TIONmkA
0goDFN0YDwgYLOjR0B3JvCNXA2EaOxpRQLEoZD3aStUIoF4MGCCRb83x7iDpHRkUUCyQWne0mmTo
0VA6ilPWPCDAJSgggQIC15/fuUABKfz6Wb41UOKEEuSIsggrKZs1dqTRHeVb80Z942gG5TWT6WjY
c/3o0cxYULagAbkXzxBAPPOaq+keGtcvcXk0FEy7CmwEEO/RHcV0uL811pZHI0cJEogR0aTsfmSo
GGHFjlrIlujRROY14x+Iawg2FJDMdAQdMmxHHBVsPN+a8DH1hszGWUQXvKZbvIZTtiiQ3dQiKEHG
FoV0/Q1eG1FkD5+ibMZQHKnhcxISP1rJIqKBI4FLSPMZ3d9LXK/pckdDA0co0ypZKEjdUkcosocs
IaFJi/IaCkiWmrZx/f2IIlsCTTu2tciAq+y+ANTSa7hgG2RJkKaBI1T3yyxqHUkxbhoCCYXEM0WO
BsyPRfUISpKjKO6taUagW1L5cLCIDcUSSgAK6BHg8KG2P7ojrT5jjjIcRwoIEt0+GkMNGzUWJKla
MhLdke4/g6NeosgWmZD8Y1EN8Y+rSK0/JUgYyraKf06QoDJS8tJCauAIt7TF+CkzQqLXL1QpkRoe
G0clkhafQjZHcaRlsSPZOBqutHm+fuPfhGqQ9oBS5MA/gySOa6SRfcZC7nG/RgJmA0ODULcW9yKg
svWPe7aiCCgoZT51OIHTZMbS4K2tBr/h5pbIFoAz4VpeGy6T9PgpNmEomyjxGUC9RClAyML+b1AA
61EcSVkwLm+pbfTaxswlfs5qA9kDbtywwv7nrZgNjqO+sP9dorSSy346Hb7S3aYMFNbCrEwZVSdb
ruCgFBhVH0NxSEwRuFEQzUeelKjPnarmrMg8p5atkO8C2kSogcYS74TMpZ+cLAUciEejiqaiVv9+
zqFIA+ap+TYB1wDhM+zfptaENzXSLTRDRM69FaFHyouKiab0KEikTbSahiMLuGA6uBgfGvrtD6nd
hBwzBm5b+vBhrXyL0eVbGstsA6TQTWg91nC9rWtsDK7SSOt/pRaCtWohJMbkD+KmNe7O1Ce1wPmN
5OMZ2EN5ZRZGkikqtOcVvJBHlpkMZf5P9tU6P3ommMKGW3OPUpGeUG30M2nsHc6HrCZrZTU3rxto
PG3caMk0st3nR6YRRS/3V9QZsn7BIPULWdyt0o6RM3Tyhlyg1MjakchnFXuBdbBtC19b8wO3RXVU
QRAji1+YQfucH8Yu88awkr4csCgqLcFU8hkWKqviEYIH6muk53X9Kdh6IQVZ3bEZYZqfT61UcJGv
qGY4LkvGNs01qciIKifj40A/Lgc6pukXaNSAjS7dDluTzWFr9e6EgqZnV9TTrBDZtjrrev0gWYal
P1EURibqJcKrGy3TMth4a2ztel+UstG6KpXr1X8kswuzHz2KLDDadPw8DBPPJ2vUqGt0cPb6gOmu
90tF+a6gHIoJCXualQX2EHXwYvy0x8N0/jY1p7Do9uwU0igeOVkSxPtuHR1H6ivF9jfjcVKB8pFu
Uc0P79EVJwZ/8CK3/JCu1PZdIY1WOTULuExj3mTSxbLhtJryaRHZ4wU5rXcJWd2yXV9TsEJnud7u
3el+v7ZKJFWzMbnxriXbkA/yfC5ZZanN/v4TTYpjvXmgSNcsdkr2CfhyHzoEg56f2WN25MMLQLT6
HUxdoG+bmVmrmVmUjR7YXFmyY0ltCjOxcZeMHGChypGr1Tl1NL0hI6e29EY/P62qZa8VphYtpjZ1
/tnshhyaAkJrsgdDN6vGCKm3e4N7U7Bon4zTjX3deqyZstSQCVk2NZja5B+qDFeU7Um6GnEkrTxW
H5gfxjdIq2Pn9ZkDmn/MUPfAq14U2WPJkUcPawM8KKUtDN3azaKF334mA76c2nKBGKn92Vh/i72k
m+l8eG29ArJ5+EXUil8ZWfzKOBbrWB88XfY93avr1eiV6V6NpyXViLpShSwXLVmuqjPU6qY5eV9q
rNdNPzp3vOnc9fuJqCcZBHnpuLx6MngCX18txzJvwmUNIwtOT5CtkdNkjoFL+qVTFZm19TgdiJs4
+k5dYuDxFzdR23LYTEevVY/1AGwdB5o5eiy2uc7Qm3+A9y0Ja32sq/RHddyTgyqEIYYFgOAJrf7k
jpgvGZEcWKO1EEy7p4fXjqUcJB/tJbMefMAyMLCJlLRqRT2Js8WtIQdv9Fhgc8ObrdFcsnjPksla
CJF04vuiec6a7A99/Ato5Kceex7r0YDa+yGN+TxDjz1iXk6ao5+fHviefmHSbhLyE61qJN2BAKIj
ZqZMjZtID9WM9MQF4DaTTTlwkGTluSrwBjodLZFFgNaM1d7wKM4bUxfK9/7W3HxMQLpZlLe4zick
b1+X9+5wWt7f52N3nQ/3OmSZFIXqC3U8//CvjC3nw+nD2pmdf7vs+XJ9u6GAouHrAfGkubaAbq/T
8fIdB2IykKxI7YksV7iz2qO5s+Lrx3J9kIIxxLZma2kIOkFw16d0QPTh8mad1uW+nF/Cqvtp/V/3
NPN0X74hhMBSaZVLYICWbbfUOsOX08edWMrTUldWF59odEuflx/zEV8n8iezHeHWuWe/nk+X75ah
rpeTdc1ecCAqAfFpPN4/7nwLj9pTn8F5SzvK9GJXi72q03K0CL2ccUgyQZLewsloSaey6sFqh0S4
lg+yw3TDIZsE2f1fHC9ZPTAOgxXXzZyT7qA8LycnUP2S2/fICh7caXq/da/fSe5wXJ8rhkx6gvTm
CgCsh+RtBH/m2zf3hpD7FgoJdB6F1FqE9d2/qmpxVdlc8V9QyKCrQaagzeV9Orh3teNYzss57m92
A14Wex/22u8X5+/Zb1zwbecCpdElC8YoUe22g4j4BC5BjaJXfXEsRP1ePHQUVK4IcxHSUYbbTvQS
5IY9czj90Z61W8WJ/RMOe1jvyY+nHZLVfJ1fLLhAR14KOIjnyZG4Z6Ff/3Q+zj+qINfGTOMz/N5+
5WOQDS4uV3DLTwtyOXQf75YZZwyaScD8k4O8D1usbcupI8CDGMTgjnuQKggeDzFhMdz0cr5ZB68L
qMjS43U5WrcPPfqQdzv4KjeF7vblci/Q8T5dZ2LTKiPVd9J4uMvZCiK3Sat2DhYGhGe/FjaPblaA
zY7++Z8KIm6/ERNjAh7iH0wATGz2mbGCgst35nuZAloP1+kGJHC5UwzUCKiT+cRVos7ygp6vl7eu
cnMYYJ3JiuUnYcBJC8J6+A8YWJGvSfiEYWTS96sVei+Wc9abcRGbKFpiE//7dDxi6ncN2aw0NXqb
30P+Pj99Xe4BCZYmLSQLK2weWCkoVECpQ3hv9j+ggWPPu74xG5Abt09qd2eyZ7AyTdmvMdZWHKIs
BZjVZS/ZGEzTb/Z6Lg5mInWaoIKD4uFo5SscB3Rvn2D4TKdeksTKnU/QI8/X64IAkc5J7r7tZW/R
b3EH2Xt+e7e6eOe9MgDKbZlFm/pXP0n2R0M9iMx1PLiH4Zhv9iCRZj0fX86JT7wdcLm/4izHJWAM
36iEi3EP/UF4oIcFMjc4gj0N+fJxJ+GBnWbnKqIOxRnUqcoX46GbiEYKsCfQrWSoTpgMGwY9Ls/P
APCtYUSwTLx+sDuLfbB1Lb1XKRkgmty9DvjBT5fbp/SzBhfrRwQKYEp11jlcN7wSn//M/fU6TyhK
BdR6yletByQ4k3Y9O5CrdRXd2T/ePpx3+g1FTJbZzFd6Rbv3t32oYXZAjvU/TLBnl+erRX/0XpKT
Ff62bhrzlHsSsU9tjFTiXJXDdHhdZcD9OhMwWIbhZ3jEXllw4LCLMF39DSMDDyuBAu8Dhswe0J2t
U8WMUXgEWOf7sL7rcltc30X0leK+bq+YI8Kzpx6HZkRm3wCgXXWe+tvDlrxv3Ucknc/z4V45HUdh
6byhHEku3uO4fTw1MJTvzE/lXaOu4SDdo5k5n2b64lRBSJwX8F4spOPhdTkdmwSZD8dcowDTQSFF
RCfTx4XOKHzHF0M8HO4fY4yhqnn6Nn+GlnjekIvGxp6rp9mCKHi6IIgbvq+8Ldf4wkyLDFBIIyAo
ll8uzDTeOhjYSu/juQxi+nY9RAsQh9AnCNLTlCgALL/Ozlj4db5ecHSMG7ZIsgPDh/VQnUw6oiAz
o7l5CdEps0usKeACGxBi63yZpo1XTMNWrgWl1sJ0BuMgKg2cL9f6NXfzN4q1WA9ImXuGDUGbYFu8
z22mAhAc56+BvYjRZBSkkIgPU0X3p3ufr664wusEt2l8o1mZeKODR1cLE7tW7RHIzzLcJbeHYsd7
IzR+V5mBeZDlQx19TYbJtOpzIAYqggdlh4MBKtd18SkoUPbfaUaPyDPZH1VuEMAoFAlUd1IlQfon
qmgp26wffRZkDUInif3+s0t+DA5FFedha2B39p7ICoskPwFQ0qdusOscrLDp2RkR1ix1JB028zRd
cUEt8rHc4I04/gGXSwKFZAp1rQpCtv/UikkcK1mYuejdSJoxOKmUt8zWLIH/Ns44Ii9bu+uCd+Sj
I37FeX7xmZWOcpl8yH1IIffB5336h7RNtx6qEYIcEsn59JjPNqQIKRLR9fLsUW6ToV2evgFLT+Yf
XoucpuvLTK+PNZYeAAPqY3UJ7VHPxzVdFS/yHL0C7zJSJg5PEsBHnpTOXrY3s+zxujWo//qB6DgH
pE9ABteLMa4egP1n8/XbfBPHFQ4KQuR9wIjgwz7Ol/VsKCiWQLFhiKIkkMnp4y1G1NesqdUB1k9Z
zhPmVMscHOFF9QaUknuAqAQEOCXXy33aDWHMEPLL0EVEz58PXc/zMXIh1ZqN6T6DEbCTXG2OIKT7
fg2c+XZxIa4Tuj2Zgea5NI/Hcw7ufTlMJwoWy7ByMeSjnd3CmE5gvHoMd/a63O92efdZAhjynkTt
+gqkEWcTNUJ6ma3iv19/dm+W6TOY6WYZ8I6CMiWaAtd+nKHL9slT8r44pVwrGC6HD+f5dU/T4at7
YOF8DA+PosJZJbnn53XzPiYB7cWv4u6+nFJA/zofPq43LOIxZoBjQNsYN2atx/fFR+1XcW9BXp6f
u6efPlz5/dXKnvPG4gfJjlvnhRyuZaLn54sOlJ8GGgR4iKgGYWRlWnjAOmZO43+r60GRIhOSrUVY
jghADM0niU+XCc07DMmg9Yql9yJhqJht7ldXpHtJPvP50sw/DMmp8zytsrGQIhzh/i4fh1eQyo9G
Vv3YKUjte9OLxB4Cp7u9TwhvszUF5YFxZ5hw0UOKcFcec+7w5gOxeUPAWksHhyIriLyT6uc2J+rG
ECOy0cH8M272Z2C7kDWKkbeQQTpep+8Yksd8hWOInjGnuoGx6les3EFgdkiBHB1nsaye3Xn+fvoJ
JUDDAh8Safqxab2/eb2avLFE6H5p1FYMqQRi9TR5jDuvNsDTfP8+z+dGXU2WItrEQqEBFBqtVOLq
pm44hD5D8PZRTPreUnCiXcqS+UHHwbIsVnWAeph7YjF8LzrvJddb+jCrE4tz+5pNBiDSQ4/Z4HWL
vZy/X+Ct0wUbqX5Bx/G7w0PgNkl/Mv43pBqLOF0sFfzM//mx2H/p2aspKIbk8Og4ETRe2QM1QwrA
YYmChGIZBbz0GwwIrQoJp6gxwXM2RRzjFLyo9sHGYjPrNMGkjqAWwWkxs+jYR7FBMBfHd5OvC/j9
qx0ZuMwfq7EhgGGX91gz4EETAYOhIXoyd4ABLDCfUQkDBkm+/ZClV/oqRBKZMbqc31yofCSGr5sQ
+wwxFCthGZDfvusxf0KEzGNQGUXg6OfOsFhyb4PecDHKkW1KYjyDOcFmfyHgDEBrhGKtqBOvrqms
sYcsftyvMfZr+WGOiIlVEzQRAtFoAiVGzCQE36rBCssvr4t/suH4EzOKs+XPAunIKJBwUN4ASdUl
qLltAGTlQwRV1kE9HA3Wg+jCA23ZzTQCKjJq7QDMeXC+hiD4JvbqJ1BzglqNwDgaU6Aq+DBuC98X
y0bRRs5CbxuWaUd+ZP5MbgULdh9i7DlXYy3WcEbQx9O7RdEp2cnoicb0KeWGMShtHl3RlQoCEfiI
B2q1MxAO8ly85oh9KGqN9qyFkp/YqcwOl3Qmilyf13MnD1nct4+by5lN1v1FwcTy/jB7X+eKy3Vn
fskaFxLHFVx0VFETSqxawouuHIShIEUnHwWYnShX0RWzDLFo62p9p4+b1afR4vCE+yMgGBfg2Svz
biavgdym67efQKFn7WB6//pDFFAgze4YlghvD6mPksUBiXHUtvXzl8lvwCoqZ2ZdO5c9mK7O8kNB
MeChpxiLr9vy/zpUcF3n59N8wC9WZ2vN6Q/pn58aQQlYgT0cBs+uoR8uZ39qACXMRaSZgOlsYruk
hnRd2PanAHC8MIjGX3e7fFwR/DCdjTWf0xLZ0AqQErajdrrOE70zmaGFenP2eL7nhfCeVXZ4dXjE
MMbYAgiLG7SWXGffwWPGyYc4KCWexlX9Rsl8ux5wKCJBEcw5C2yMWGl9nqWFg/OhBxELsN9PHy/L
uTTwXNTC/zXKTCrzvp+vFA9zviQfwzk8M7repPWu2yymFW9vk9VP1ncKcf39uxkSND8kPFYZsh/s
EzBkFj4yTawPG7E7ClvbD01nYRvssRhg8qGlgGwQIgoBp9XFx92pMZlZPmTBfFlyrDtxq3xPgweG
rtdpPffqkMHlYR8tXhiTnzmu9QJRUhdgdkUqPY8nYN70SRo+BjzI4/C8ts8BrRD/24fQISPEhzi4
evw8afuOyX8fw3wRpjXExvvxuXEIlbGp/FAFnlS+Nxw9nNL1pgH2CaBxqnlYQ3Pe5vNEF9+ZSjbg
jmTamKOSjgJGH2RgKagcLcqQ8fMB2QkJnI9JZfnbV1myu6zwh91HtwWIwhkTHD/UeShdcZc2954U
ut7koLYIHji4/FvYR6zlm06tUM6Y9ChLpBBDRGd7YXciFAkikSYlSpaz1Wou3jOdKApMRByyUr4D
TcKmJ793dMcirQ11LTEsdvYuSyA5PyTZHuC6/MDA5IuIJbkm5ucs/2fH5dbYC8tQel+cxWMpsCeF
E1ZCPSb17lGgUgcg5pPAXMW5i3dLGZBJ8nradyVocq2NnZzeXX711kfjeD24JgMSq7f59Byih2mL
N456CDk1IPOLOCFMM98fFPmums8hyQz/4JY7rYkaK3SF+hXT4TCfVk80NIu2UhksJbd9/Vbv37WM
pbLRbHLy1RcdLCcsvz2kx7tYnAMeGX2rY/zC7V92wfMgRHi/0m+YJOZj1UP1AxaR769TMGOpjLwD
mXvPtfBPEIx1kIFL8e5zMCTARx8RMKvGwl2sflU1YY6C/2FWuw2QzANon8R7t0T57lyRb0QvN3zm
E1QhVTdLRLT61cQIveUqK1Xkcqkzw+Fhwv8wyKZiZOTS4Y5kv9ocfNvM9wBurdwjNwcH83nF2AJG
kzF8NxsEVetkjGMMbAoU0lduMdIMPmsATE7w9WUiRgV9VM1lxJ9juBtWOaCiL8dG8vCpGB1eky+P
HVqoA55DLWHCUq3sLkK/PD9b4dq9Lk75u64g3L3JaYa11X4dObsBDcuiylLKPYVRbCgyxLyP37BK
8rGnm4yJcVBjlecxPm7nvxEcY/kTfkiSjB3Ph4+czV5brFZ8PF1+UM3JOtnNPCQsmFm7t1zPdHc5
HE4fN19P60W2N29x9zi71blnvA4JhZFDKC6bEyWrD/9lCJ7up+sy46EYDaIeMtvGD5t5On3g7n4O
drhekFjs/HH+PI4HEDZIdffVvTQwLED0JAfaD6fZmvux7IKon9TJQHE7cQphWIsXVsvwuOM0OQbD
46QRWPtT5ie8YnEh5XNkqG3kEWdPub4RGkqfskW/Crun0+Xw9RadE1dyhJYYyvWdsJhk8GVGsYli
eVuikOiiPM12LZqwGIsitlieG1MEsT7/fLl3xwviNcncc82DMRrDLUk85MwRBkCAUjXfCR2LHFyN
JI1WVVZcRfVWwQSUfmS5hFzfT0yFgellIK9VikAUmqDqa6WB2xQaeihQkZanfoX+0/ntKc6mQXNQ
IqfHfAxB1rUNlOep4sHHtVxrmdVF1gqfv7vXE7APSVgA6dXcWCQROnHsbpZVrLbBqdloUODmfwiQ
hPfdotflxTUun33TSsiAk/gbWFnYydvs0YotyPUF24c73fZkoZfaVyk1zOj5mEOYM+RVY4VuQB26
HQAvDO3ZNGi3qVSMBZ3FTqMKnvChOXJ9Si1D2U9tKF1l+teerNCNrYGdHbcHkqlhoJmq7BPd0Vir
f7Wy0ctrwgaX6/sbWfJXzcoceavzpVVi+OZMtTgX8zJknpEQJcSgK6WzjVJekdk21E8NOyQviiK2
SZvjpJjHF1wuqGDSpiyaZUUhjVNpLedV5j5lHt/TYANMEIX7oztM5fp8elCN7v9i7mutuI7exA6F
wmtFyrtEOkk6WYi4+O1YqX2OWzx+XKOp79BHZ5fl+ihqIPr8ALkbCNU+q9kwmyk6hvYqUQNoIE/k
puTtcZ7fG0JXZR0guM/ZGoxQk/lDhogdseardYlWrRpXS+9QltJ44Hjv2CeFsq4ZsCtPFTnYE34r
QoCaliH8hANKUqQ+FE6h7ABkqo8xRWluPdP7YvkqkikxZcOXj+e9iCFngDEFuMeaBsfL0zfX4MbL
+eKqLqO7sE6Ksg7Gr3iblswDHuKVxtZrwAcxGEGrIQUII09VfLXG1a8Xn1HYLYuULnib9aZ9SvRs
myYOBd2Pt+n6nx+zZdXlDacoLsEt+uEj/DcoWJTqhwL3cX/1o+4vmZJ5YEQJmFR4RCmiXJ+mSfLO
FJeysikMhqEhIJlHZ/BiIujhFiD5PaEdkjLPYuFrP318XrmKN3QPWQ2A0ppPSDJa84ETKlYd6ORW
duQxM4zB5KaM+FRD3GCc5ULkBmSealQ2DrWUFcqgwKf3YyOjB5ha0xJN0SKD89Jlia271vCKu2nI
15K3Y4hvd3xXrk9iJ0mj2SccWby2Wa61VsmciuYJgW+U61ghVRmo2Y5XjxJP2dgVgyax1sKv905+
29Qy4sHbXQONa+185/OeaBR9BJ1LJudqa1lIFAYoXpN9bv4NCdfUEfEQIK7PM0E/w3O5nez9Yx7r
NM+nU45EHy9WuLig1ctcdBUCHTDd8KQCqGY1LD9WHcgOlIoHIwPdasaII+OxloCOOQmf+PL9Ti/X
6f11OaxFbC/TWgSGYyT3M5vep1QH8KEUvITZvKhXnAz5thzmzt8I2l+Vj6GdKNdRlAf46T5B5YiP
1qDgQPee8WrKtIuF01eioTMdDh9vH6eQYScbsofU4+5JZvQjA8b/KGo6rGi2VsZDphhN0qk19Ozs
IOP0iIkmma8zh/0VX72oQ8GIBAZ0/YIi9qfZGXleD6EwYobV22T+bZq+npvDAeSz6FztES15qlNA
rVkF/+0hizCPz3hz5HBjlco0HAhfsFO85+2s+Ru+VKelPqATE17RGPOfX2cX4OlbtWY01PqWqHg4
hBfG79P9Fd8KzzcphjxiZZshCLOWqH4mlepKlS7GXlOTidWa+lpJSa4u1VpFQZlaYYR9vgafK4aN
fWRdg1pLJZTO75/nuOjF9V0QM7fVmt9SuoiQ1G4Rt1gdGFNgYK0O2HBkTAqjQPI9OucwjkxYh61F
CYcjEYgFkYNYW1LC12d5wEYfYY6zPfZptwdio3QcaAwJhXJQDKc+3VU1pQTvLo2Rs/J6dBojtvhZ
Kb7Orrwc3EA9Qmgr0Ewd6lKGzXCFB02xfK6RBLYNyzyfc0VAQHhlumtQQShUCZvAg1SSoCrBdQKs
FhVahgDMMZ38nvV2Q6mwj4RZTdHFsS9wSHtoN83d20nR4bKcp6Sin+8RnhkXpQjzUtATMSz7yp8h
w1w8JRv89C/v6SeqiLqdSsrxZGkPsQs5ukibMfoOv4R45SmS78A4rRHN1Efe8dVsJMYk2JCv+0mt
p58fbcRTxHSIfcksCsKHMOJ/5w5irGQYypetXmdXEfj87P0NK20/ph3XwRMoPx540389fdxjc0cY
JnC+NCHGoIGnQDCvBIw/Rz2DNA8ykJfnvh4WAyXkER4rT9lkB8RPyw80lrOOTaRk/DpyjQaRk9PZ
PvYpzXOcbE2XvaV5V5HIsFFgxcgZFFK+MBelXMNkcZRXZnPX7cRRBOXt6BwRSItXTZ0vHgXUZzZk
uWEgVha18KzyWfx4pMwqSU67MmMY6IjdQSj5ZIg+ibkh5xXV6OCnFHj3e2L5yZHQh07KfJ5Cqv6a
Q1uPrIm3T3KU1KVICYc6Xrz1EITUmsLcjih4VB8oXeWbZP6DMegNUJ9VdSMuylNGKhCGbwcS9dgV
epMZAIgoJzH6NL9O35bLR6ruXIIxlVuDndEK1CnKCzwLbDEkXqjj0DWjWattKrsTSc7npqDI9Sma
GruiVJVJEvTlApryZe7gQcx1ziFF5vnU3tOIkUUr7l1Dg4V4+mkdhjtOUOh5szp17zaMrJwsWU7E
pqewpYKiVUCsYbmdRhhPib5hiHW4nMv/Jh2h585MGh5nKS9pnSDwSc4XBeerOPEzzTHqHu0mnMHz
jfvx4lJshmQs5zgbv0nTWmwEUsNquF9eXk6othb5jkB4+vZ6+Tgd/V04uFdHN+s8ALvdNcQYPuP0
sP/o+i9cEG4rdN3fkcpMAxEYnmrkcAhpk/SFLjC8PuG2qjJrQronwJoXxbNp64zJrQ4jIuI8FZEM
0YFTrGSYW/ZffQnFd+KW1VjecpTga76zKiGtXLx/4CTICqPdiKrR3rY6JAe6Kk2PXPH8Yml3F54B
3ZlU2It5Isl2wF0SAM/V+8ZG3LKPOffnudrWX+mZjX0qZvcPPeTg4sZw9MOXn32d36oN2gNqeW6h
MCrc9jqU6sEuPTbCJjw1dhgVB17z+HIRnE1BpKk8hDGfVaXn6zabOdPzoHjqrAk78Tozuu7v0/kv
8VmrP3jHEN9JxosT5sXzJmknwTRtIyYG5dYrjP33EC/+WNc3664lI5c6X0zSeIDg+eiVqGDDZpO8
wN56/0idKsao7nsIyNtqIkHybB4nKCw3a08cXl2taxzpmRXOJ/bJAGl4Ma0H0KHqQafqgH0QRaYS
434M0ax6GG2xooKYmuExCS6FbRh1BRGeg8S3lDHorJ11ksCvl4vv9Qi5SPeGHjE4wtMHB8hKkedy
QKHXoaDAFwXG865CXYYcqi5NC99x3LvflO/WUrygtNhK28oEeVA6gQojLVRDKOJkJQD5p9S2LyBD
H+XgqVXM35TnIEkXg66z4+i9qGIvonUosiSHp9ZHjyWehtrt1Rz4NhmQria/bbFvsHJ+UDg8XYS1
Z62CEWxvOdP4y+gLFotBBdlK9keK7oUsthmf9Kow0W/UChww6ZgjJ1mKPzTfN2U5YAtXOq/6vryZ
nLXCd5WJBqYRUR2cZ7hNN0IiGSDZXFcFejVTTNm+E5JW8IJR1rdeNqogy5OmJsi7Y8Y/tWGMavGz
pUzvytIsrYudrq9Db654/06l2sidEcEkbtkIVRojrK2m9++PAWPVVw1F8nmAEL0QqiiHp07roKKd
XRd5OnWGhiJRKhbcrwmLYOPqTV4TkYN7SJpxoBeTD/KgzXBOGwp7yRBdqvgesoxyDRbxtZs3+08W
l/j7Ov8M4wM+cYU8i3fhyyxiDjqQhTi2uUkXxqlEjY/bfTl8/YlvpJS/6yihNc00Hf8+HVIz7a3N
OsCMyZWQgO5/k1nKM4WywbuUVcERVVdTY2fU+TasAbfFKcXFSg4fHtyNHZO1vEIFijpHLrP0+oTc
AnfpxwesIhuxtXFAvPSGJWZC0hGsPtVbBfZlOcufhyrGJs4izgSwiDNltkPCUz1wfPZmOmN4wDTn
5cHs7EDm36bTB5r9F6BmzOVizbjO/Xbhtj3jyHUP8tzaT7XSO0bfdU8LnvbOIGMfoEyFTGtL+PfX
5T5bd9xCOl+OvgxinS+GvnGyvmUVUxWrKri4gXNxmkV4Vmnvg9osP6nkw7cuyaDz+JFntztQeWN5
WBxbPVAeaH6c3VliZjtAbVfjiweU3593UlkVPdo7MKbz8swrkTbW/oyeqsZh+YkcHqL56wirGoKe
0ZoYlmbF+AdqfGYARTQKQuTjjCnhH5nU913vwUk+DmhnQq57z2Xz4ooivNiekFiH3lKmQT9NZqjQ
C1FvxPJ7jGWH1AbC7gsHaBaptCC94R18iD3smqlPyhRBqxzLy3wnUXFQmXhcZd9YBdWcYsPyq4W8
8IjLMaQ7jiYLDEW+eptuXz+Dn1KaxcQO8ND2wADyITcbYCjG1Gp4sS7vhgcyhrXHxRNsuYZ8U9QL
q3lRjZXnhejwQ6/TNFbdEF7uc8U3voQAlL/Xt2/S5PjYPBN9ojxzIOxz03dBPQ1m8jzO2CaV8vjP
z9Ykd1Pg9+xrnSwau8ajckkOlodwOE1vaG2xyUNgZVFNU77wQp5knWofu1Niqm5b5x12gwMRBZDo
yJYnASOHm4fKNyZkHggMrmw6uuEIPkdOyCuT55/K9THaca3e8vN1193h601en2cPWeF9syhazsW8
fhRIhuEn0EZOBBOiQwgXR2+fAHjDP8bEaBLGjyTzkcJkMQUGT7gpWDRG8ma4Jzm+HeLRLW8v+PJM
b6Ofc7NWKAUqWegXD00eWx8HaKiNjoZDKeiD6IwG/zDfOnHbC5jGSBK3PnOenyG/pkYAnTcQCTaQ
J3PH2io/QjSJzPlIFaQyk9xhHUfAy/g+QZwv7NTGU5iNn3wq0vpN7204YnG+Q9SqUAOV4v3Fp0Dm
4y29XhCmxwUx7TgV7W3Jbgr385TWAV+voKoopyxdSZ2b1/30cb/jmkRlTSJG/wZZEGzf56eX8O/9
b2S3JU/PR/pW9SElANal5Ihunt6KfnicL6y3mhgfLMXTy7VhkhiLrmJavavxg6dHRh2U0fejirLY
vFXyNqwlq2nkmNCPQ393+JIs10yD124KdsXLQIYUvmayGI2QfPrQ2PNxc6b5cTlMRHksA/VS/o+p
ouvDVyv4x2DiIAT/3jEKCNbymtxP4aoc5m66d9Z9D88LA8eeLDZmuaZCyBDG9RDXUF0oA0dXg0JA
2YNO91iO75IRawUxGX9MT9yFMmyWR7KGhdv37Xyom+g9SW+ex0qrpEhzSIYyZtOj8rEYw79FN0a7
2k2n3XEeUHwRhIzZbKBFwumx3aKuJNvB6xSlPBGibFptTCUUuX9NyyGPDU151Pv14+0djFkJdIpy
iwCNmik4R7bfpfrnYyM+NqQkXXifdfRBsjG3xAblda7k686PH0flBQgU9V6/lgNCQEdlernCqxwv
RmBbB9WEAXRPLp9xztoNPJXo/lyniRwk8o/feKMo2vEpzO6h4ctFXp5zQG5Ny7Lk2ff1Q1BYGvhn
NZM1IFwgLvW0lcSIw5MJXjHqK2zF78p7+uhIYZ58VwfD+UbRcijUBYnQIR8pRF/hE907LiSjhPXe
OetjchYGA4M/juNBg1sZc0S6eL8+4dbjhQr7Jmc8INaHK0ExuwfyOFaCwjHP4HyZvx4z3Vyeu+Ix
MfyULEEBtbgxVEE3meS4kkk2OYGh3S1bPAUmPVwXIhdCE5CdmCHJQXzmJqOcOl9owzBFeQKVsZwJ
j/FTWmKUFJ4alSsbQmEAoWN68OzzPN12MUm+eR7EDoeT4wEt0lBUQUC+qIKYeLuc972Qlp9cZHHG
VHoCZg3Axqdycjw21DyHwBOVR2M5D+2ioc62GeGMvtSFSj0qmXOrDsboKfWhFzfiMpjrhCuZi6jC
hNQhP08FoBXvSlLGDsu1Qg5eaFzHoeEw8ohqMAjq8Xyhh44fW0dkxZZGswUHbxDfVJ7X7idU60dm
dgIBgL1/XNeniS1vzvdXYo8sj/j27+RG8znWHVNxiVwr5heHxw0RhIUJWA1sgWHjfe+31vcESTQq
O1guNuGx95tzsYXn3xyxvos1rhoNPCzntrnOBj2SLEkzF7ZJlPPljCSq0/MwbCyaWqqpGPRNlPRQ
zAqF9yiU12W+TtfDq5/XR5dnpZdfPDWKVItXA4ufD7yp4uhF4ikv6qWA9CgPi296MDxn5SURBkUB
KCxGtANrBXMpTHf1C1eXH/6HOpnINEPDFXm5Cgizzo5dX8cJENDlLC13SBoEqJm/PbQLEeUwQyr0
CZNafBls0b7x2XiG5MB1WB/C9r2N9/t8jS/trG8Bhb8rnJ842R89+ZhOzkPYcyheF6pAjB5RtF7m
6Y7Clhn2IHNZShs2ClGB3fpsp2hAxG+cZ1Dw4QsKleTzdDKPbPAHBlPAyAN/w+SzTMMsvC3h377p
W/CiEnFpRCtgXtz/ouaFTGMu+mSfsdYH8AyEzONj+s0biwQ8l2LBB6rINETDmy++or2JU9eShoIb
MjjpS4p084qINzFkGrsTrNuo8EDqJ72G9QhyFSytCG96XdPTlM5D+/NCcqqKnxwxJgig8CzmtkKa
q7kJnncxgCaNKNh2AIi2gV+ca64f1rcd3fRUsj+P7xjRPfXUXJcScShAlQD6R80GiKA9yJH5bM4P
H7c3BCLgHIfCMhSeRinDe3aBWTR2KJK9tO6DP0Boz/L2V2UyOnhu4Hvw2wCV41vK1+56qzRCNrDS
BccQy0Qoh/xYs2uWOP3sHoDiuwL3lV9HD8lJsCcfssSd0/QWYyBEnd8JIY+Hn04WpxswDonVjnjT
bn6w3MNi+QkXZGMLzbmZO/xgwtihF6NlFFngVJGFiUx5msfNtV6o97vjhVxZJ0tWeQ/fD69JyMcN
rakJFNBQUPs6bh42OO+V+twUNBp5ubalw6srPrqgkaT0Jqo/XigPGB5kyz7JkM8XngfGSLSlkbKo
c+G3kRVh91iX2kYRIMxQpK02CZf96M784ufwDWLjDK621Q5FlyC5oQmDhgmcNHoiRSqbMwdzYtQo
/0OBCSU4awzp5cY4pF8bmPv3E0GjaWJlifdHiJ4XltWTFycqvdcj2i9WsCxD3GJvzK7dLTGG3OoC
ZNkC8U2OIr16kaeG53PhIPriJd6Iypj0z/Utt6K1Bn22hGX1Fl4rTppk3dTTzzaEaJytaOVwvAR1
G3mZ77sQsMJ5tTFf5+Xl9R7mBLnUG74J8MzxmF/Eg5dL5AJZVl7+GCKZQBG15wsZdMus7PGo0js1
KRO8Tjoivg+eRQ7UyuEOpvOxuYV8ApM7xKJsa4zsE6mZRrJimgnfyR6AtnXKc5DahmVDzS3zCXS2
Do6JLE2Pi2BZ8XkIvlZBbXODKzAchCkOLuKkwTSod42ggPYmfIpjei3UhxBcLaWMWfjD63z4Ol+f
LtMVXZrLN8bev9gdA0zz0bteIbJ09pnc+Cc5GGXd6w59ElWD8YHZMliXMXRZ+Z5gjN4pJceRE18z
QGb36Qktyc2gxwH9Vs7DG1+AHahH9WpgWuB7NGDQch5vpIQZBmnQRbLMZgctIEc19hpdpA2YwZgK
55XuTa8JJA59rcBAjrpnvCdwP5Tn0sXXBPo1EGzzsxPDMqa07BlxZZsqCF3cNPo1M5YPTo7FJtGv
DaxQ6jEesn4Nv2pTUnEfqVj2WuOkn68aRKBXssIRwusIYb0lLXSRrn1rvWp8i2NBWCsWJRuGEUeG
AlUfqQbf2sQD/h3wjuXocSkiMnouJf6l/uGSw7vH1zkaX+43aqqyTleu0xs2ay7XP/D7PiUr10k5
N+wYhwQeSvStgmvFJQoKlADiUMHjlL5iNnoF89vl7wu+Cjwj6d4Vl+vTzfOP+fCHy9ub1dh+HRu1
woRYUPxZb3szJsZNmO7lSNij2X7yMwREdBzZaLdDfCzrS/8WOV9XuU1yYl22b1w9UBQu9mNKEYtE
YVNF+cfGfjDEomzjAgnBlBgIHKqhsD/W5ycYt9RNrAKav0/zCbjiShP7A4aayVFndyriujQrjQwZ
U4Fv0yFq9fePwFJKGa3ZiNdqGA3qWvIQsj//8k+J1v8Qnn92hlsoLiag5SqJoHBir+V0v1+Xp1js
eU2dJZaw/Xu3x+k+deQQFX8VuczJm+WxA9n3qR7nw+U6EWEuv7tcQgIo6Pnipib4EtRv03VxydjZ
j2wlAIFiDl+QFzTIaXYhcyc6Dmh4hcVZMqk0KXUkprfL/BPyxOpcAuL8hJgyf5puWB+zxx2ogHGT
SAZwdKrcTZhc3CV5qneLYZbYikt8NtODdwgBxr97b4z4cC52WlvpQ1Q79ONef3any+Xrx3vM+m3+
tvMsgMvb/KKxcfgw3k73J3t3wdNADusbOOgoyMD3CrjRfpyKSm+yuedO7tcuWtzd98v16CvzLY1g
qT0PEvjRQ2q1z1ydFFIuyQzd0A7+96trDPDTq4ix9Pl5AE/MYs0ZfLPuyPV2jy0M14845N/y/URA
E8Wkek4AI+7FQ8qD4p08XTtEvGEw3bv7q9PGLp/x3ISUh8a7QnZJQIqVR7TF4B9GABP5e5EfdEkJ
rXXcjO+BtQRAbA88L6H7+HpGCN9bMbJKSK6ZdSQUYjjzWDqwVkj7spVYEb+uZHh9N5hqmEWCMnzU
Q48X4ItiNmTM6HMlOCd2CSb7SZ2flAjLOL4s18RLngfLWPvebhP/Ghy5nvtvFR+tzS3xHoVyAOtq
4PNeC8aITYKRoCrPJw5HI7APRlP6Wot4MmEtNgolYMw6qJ+Wg9ba4F8DM6p94DDi0Xq2lvOJXcJB
tzkcF/19/GuimLAb85Fy5FwgXrFfpcpbGwqM4HuEUx6Bh2XNhb7H9wjGckJ3Xw7CqjwcH31t8K9i
VmL3BPbBDvNT4Er0vTDEDnU5Uz46t8x6WGKkKATscfQVfMkt1kYTXMOL6aJcrIfTg0LCLf5zrEBk
lLOqH0fRE2LL1FhUjtalEJTQAvOHQWB1FXY4UsAwbcXzjDTFrZaV+H2D2ePw5qJMIGiSFzPLWQzP
K8v21uTHdzkWA1AZX/1qYb9ILNMFB/gR/WugbwIVgSGle7wcPrzZ7Y0cZzccbtRjQPn9FxYKQg3I
Dydgf/+43Zfnn90VteoCtPwoDZepKHUDy6tASg3nR3kG8A57eP2Q7vsJ68uXiXyg2P6//z9QSwME
FAACAAgAkaEzSnMJZQvlBAAAvRoAABkAHAB3cHR3a19wcm9jZXNzX2xvZy5vdXQudHh0VVQJAAMy
joFYFI6BWHV4CwABBPUBAAAEFAAAAOVYW1PjNhR+96/QQ2eAQmI7d2u67Ti3ne1uaYcsS2dKl1Hs
EyJiy15JTsi/75EJgYUQcBK226lmCEbWuX/nEyfdXvv0LZ3BsJRGTI8SGZc0KK3o24SLS6ITkikg
aSI1qXu1RtPqFhNoWe+O+7+vPA8CJNNGSMCMdHzCBbE/JVEWg7K7TDO7dzawz2D4nuvFr3bGo9A+
gQiYAjti8yTTubqSBJVFWtkXs1RfBCC1WuPpnWVGKk6tRYZck5OBT1LJp0wDmcDcKr9gHR4eWuve
zSRfBnhPt8nS3g5DtQOGWsspxHtWySzr6eBPlXEoSMSIX2YmC4kgI5nEu0y9naQglIrKwejS6owh
mBA9Zho/gEj4kqEUiZkOxqDyPcUvBdOZBGtw+0SSidVBXXzEA5O1LmjGI0UtslgDkJxF5DiLhyAp
qXj1WqVC9p3rWssdwcHy3CcW8ZDr+XLDrONEkzZgVoCSX5lAEBCnRt0KdWr47DbJ298+PhLwRxok
oaQPQ+J6awQG2fAKAk2/0hAkcZyIYxYDebDekMdlWor+WXe8aZXAtcaMYq3U11oXr9tM8YB08LWW
jAssM7Eemun49OPJaW+V+MJh8h6h+S4EYbJukvpIh9OjtRZt9WnXpfjsVmnDpfUKbXjUadMevq3S
rk97Fdr2aRuP1WnTo80+9b1Vdv1MjxNskfnzlhHfPKS7sm9Wl0tTDWp3jt+sKcDtUjnesN605dJ+
z1oVj4niVLFLWJX+e2A2KF8l3zNVDiFcq+jjhwHBljQNMEU8mhyavAV5K3/VM1wZohkCCW42UXGG
J6MnEUz2qw4J2VwdWNYZ1gW7MNO4odkQm57MuB4TNycztCg5IMfiO4M+IKcpnoPQeinfjxMkAePY
q/L0OoL+9jQdJQGLTOBl1P7/purqLVWP/ltUvSzh6zB03/8w2I6i/S51+rTv0W6b1qu03qZugzYa
tF6nPZd6depjJjxawc+GeXbrtNY3XFn1/3WKLsqpXX7JNSJrCcUjrL4gJ5BmIc/75SiX74mAp2OQ
MXr/Sry7pmR+hGBE//gUSH7jrAjkeECXyDrK/5zNZuUHW9eiVBKtq0ao6tVoNpvIL+NppcVWHYum
UGpELCw/1lpZsefe7X23N0gpYplAHpJ0rHV6lI8YtNVyHHxE3FWbbtMrKOouRVvOs6IzpRaS+Vxz
Z7X1AtGFZM1z7hltNl/k762wV6tV7xx2b2TjJLxI56hBJcEEdFlpJkIWJQLKCNZBvnmDWNqRYGp6
c5AkgppiHRH0Z2/v9udgF1orWyttcxHuzMM7Zds7NpjwlAznZIQ3XGauJJAykfs1hMOeH4Z4vyrC
IkxJODfjLI7CaOTJC/4EmwNnZaYNQVDy2d4v/3jwQ2GnPnCF/PWaFV2htVBQ5+V0joEVlMErUxWV
2sCKmJ+XZ4mcgDwvX6niCjYKzRgd6zjaOCuv0qcFXbnN2oaBbJf4QueVSYIp1besVA6M75b6CgTz
yx8/qRSCn//6bP99eGDrJInUZs32ADHfH/1u3F/PkPArQ3WLkmzVhrtDxmZ9dr6YYoua3B2Ei9qU
mRAg7Sz/Z/f8ImaCj/B80YJvGvgW6Fp4vlmqdxT2bgC3g3iKSm0H1B1lb0XcT31bN9BM5t+JmQmE
qJuZF2fr5ZyYj17bibtbiJthyPoHUEsBAh4DCgAAAAAAgqEzSgAAAAAAAAAAAAAAAAsAGAAAAAAA
AAAQAO1BAAAAAF93cHRfY2VydHMvVVQFAAMUjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
gqEzSgA6uV8RCQAAOhEAABUAGAAAAAAAAQAAAKSBRQAAAF93cHRfY2VydHMvMDQ4MUZFLnBlbVVU
BQADFI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIKhM0o8isMN8AkAADsSAAAVABgAAAAA
AAEAAACkgaUJAABfd3B0X2NlcnRzLzA0ODFGRi5wZW1VVAUAAxSOgVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACCoTNKADq5XxEJAAA6EQAAFQAYAAAAAAABAAAApIHkEwAAX3dwdF9jZXJ0cy9j
YWNlcnQucGVtVVQFAAMUjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAgqEzSup4vQtJBQAA
1wYAABQAGAAAAAAAAQAAAKSBRB0AAF93cHRfY2VydHMvY2FrZXkucGVtVVQFAAMUjoFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAgqEzShkoN9hJAAAAZQAAABQAGAAAAAAAAQAAAKSB2yIAAF93
cHRfY2VydHMvaW5kZXgudHh0VVQFAAMUjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgACAAAAgqEz
SphceX8VAAAAFQAAABkAGAAAAAAAAQAAAKSBciMAAF93cHRfY2VydHMvaW5kZXgudHh0LmF0dHJV
VAUAAxSOgVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAACCoTNKmFx5fxUAAAAVAAAAHQAYAAAA
AAABAAAApIHaIwAAX3dwdF9jZXJ0cy9pbmRleC50eHQuYXR0ci5vbGRVVAUAAxSOgVh1eAsAAQT1
AQAABBQAAABQSwECHgMKAAIAAACCoTNKaWuUcjcAAAA3AAAAGAAYAAAAAAABAAAApIFGJAAAX3dw
dF9jZXJ0cy9pbmRleC50eHQub2xkVVQFAAMUjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
gqEzSvfSrbcMBQAAjwYAABgAGAAAAAAAAQAAAKSBzyQAAF93cHRfY2VydHMvbG9jYWxob3N0Lmtl
eVVUBQADFI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIKhM0o8isMN8AkAADsSAAAYABgA
AAAAAAEAAACkgS0qAABfd3B0X2NlcnRzL2xvY2FsaG9zdC5wZW1VVAUAAxSOgVh1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAIAAACCoTNKh8ZvegcAAAAHAAAAEQAYAAAAAAABAAAApIFvNAAAX3dwdF9j
ZXJ0cy9zZXJpYWxVVAUAAxSOgVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAACCoTNK+6PDQQcA
AAAHAAAAFQAYAAAAAAABAAAApIHBNAAAX3dwdF9jZXJ0cy9zZXJpYWwub2xkVVQFAAMUjoFYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAgaEzSgAAAAAAAAAAAAAAAA4AGAAAAAAAAAAAAKSBFzUA
AGFjY2Vzc19sb2cudHh0VVQFAAMRjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAhKEzSgAA
AAAAAAAAAAAAAA4AGAAAAAAAAAAQAO1BXzUAAGFjY2Vzc2liaWxpdHkvVVQFAAMXjoFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAg6EzSnBjSkAJAQAA2gEAAD0AGAAAAAAAAQAAAKSBpzUAAGFj
Y2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS1ub2RlLW1lbW9yeS1tYW5hZ2VtZW50LWFjdHVhbC50
eHRVVAUAAxaOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACDoTNKFU07DEcBAAAlAwAAOwAY
AAAAAAABAAAApIEnNwAAYWNjZXNzaWJpbGl0eS9hY2Nlc3NpYmlsaXR5LW5vZGUtbWVtb3J5LW1h
bmFnZW1lbnQtZGlmZi50eHRVVAUAAxaOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACDoTNK
TqtOreUAAACRAQAAPwAYAAAAAAABAAAApIHjOAAAYWNjZXNzaWJpbGl0eS9hY2Nlc3NpYmlsaXR5
LW5vZGUtbWVtb3J5LW1hbmFnZW1lbnQtZXhwZWN0ZWQudHh0VVQFAAMWjoFYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAg6EzShMp+outCAAAtyAAAEMAGAAAAAAAAQAAAKSBQToAAGFjY2Vzc2li
aWxpdHkvYWNjZXNzaWJpbGl0eS1ub2RlLW1lbW9yeS1tYW5hZ2VtZW50LXByZXR0eS1kaWZmLmh0
bWxVVAUAAxaOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACDoTNKTG+E8SkBAABcAgAANAAY
AAAAAAABAAAApIFrQwAAYWNjZXNzaWJpbGl0eS9hY2Nlc3NpYmlsaXR5LW5vZGUtcmVwYXJlbnQt
YWN0dWFsLnR4dFVUBQADFo6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIOhM0oxFodtUAEA
AJMDAAAyABgAAAAAAAEAAACkgQJFAABhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHktbm9kZS1y
ZXBhcmVudC1kaWZmLnR4dFVUBQADFo6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIOhM0qA
7vj8BgEAAPcBAAA2ABgAAAAAAAEAAACkgb5GAABhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHkt
bm9kZS1yZXBhcmVudC1leHBlY3RlZC50eHRVVAUAAxaOgVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACDoTNKjrMzNr8IAADfIgAAOgAYAAAAAAABAAAApIE0SAAAYWNjZXNzaWJpbGl0eS9hY2Nl
c3NpYmlsaXR5LW5vZGUtcmVwYXJlbnQtcHJldHR5LWRpZmYuaHRtbFVUBQADFo6BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAIOhM0oQlmGL1gAAADYBAAA2ABgAAAAAAAEAAACkgWdRAABhY2Nl
c3NpYmlsaXR5L2FjY2Vzc2liaWxpdHktb2JqZWN0LWRldGFjaGVkLWFjdHVhbC50eHRVVAUAAxaO
gVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACDoTNKoUKMRwQBAAAZAgAANAAYAAAAAAABAAAA
pIGtUgAAYWNjZXNzaWJpbGl0eS9hY2Nlc3NpYmlsaXR5LW9iamVjdC1kZXRhY2hlZC1kaWZmLnR4
dFVUBQADFo6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIOhM0q15y4vwwAAACMBAAA4ABgA
AAAAAAEAAACkgR9UAABhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHktb2JqZWN0LWRldGFjaGVk
LWV4cGVjdGVkLnR4dFVUBQADFo6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIShM0paexKy
NggAAFAcAAA8ABgAAAAAAAEAAACkgVRVAABhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHktb2Jq
ZWN0LWRldGFjaGVkLXByZXR0eS1kaWZmLmh0bWxVVAUAAxeOgVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACEoTNKXZ1p0sgAAAAtAgAALgAYAAAAAAABAAAApIEAXgAAYWNjZXNzaWJpbGl0eS9h
cmlhLWNoZWNrYm94LWNoZWNrZWQtYWN0dWFsLnR4dFVUBQADF46BWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAIShM0riEgVE1AAAAA4DAAAsABgAAAAAAAEAAACkgTBfAABhY2Nlc3NpYmlsaXR5
L2FyaWEtY2hlY2tib3gtY2hlY2tlZC1kaWZmLnR4dFVUBQADF46BWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAIShM0q1b1sLtgAAAOEBAAAwABgAAAAAAAEAAACkgWpgAABhY2Nlc3NpYmlsaXR5
L2FyaWEtY2hlY2tib3gtY2hlY2tlZC1leHBlY3RlZC50eHRVVAUAAxeOgVh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACEoTNKc51saEIIAABTJgAANAAYAAAAAAABAAAApIGKYQAAYWNjZXNzaWJp
bGl0eS9hcmlhLWNoZWNrYm94LWNoZWNrZWQtcHJldHR5LWRpZmYuaHRtbFVUBQADF46BWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAIShM0rD/InutAAAACkBAAArABgAAAAAAAEAAACkgTpqAABh
Y2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtdGV4dC1hY3R1YWwudHh0VVQFAAMXjoFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAhKEzSjP9gKv1AAAANwIAACkAGAAAAAAAAQAAAKSBU2sAAGFj
Y2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC10ZXh0LWRpZmYudHh0VVQFAAMXjoFYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAhKEzSgoaGrW9AAAANAEAAC0AGAAAAAAAAQAAAKSBq2wAAGFjY2Vz
c2liaWxpdHkvYXJpYS1jaGVja2JveC10ZXh0LWV4cGVjdGVkLnR4dFVUBQADF46BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAIShM0rZHY3mJggAAKIeAAAxABgAAAAAAAEAAACkgc9tAABhY2Nl
c3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtdGV4dC1wcmV0dHktZGlmZi5odG1sVVQFAAMXjoFYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhKEzShBgohXZAAAAagEAACYAGAAAAAAAAQAAAKSBYHYA
AGFjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC1hY3R1YWwudHh0VVQFAAMXjoFYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAhKEzSljry6sIAQAAHwIAACQAGAAAAAAAAQAAAKSBmXcAAGFjY2Vz
c2liaWxpdHkvYXJpYS1jb21ib2JveC1kaWZmLnR4dFVUBQADF46BWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAIShM0okS38S1wAAAGcBAAAoABgAAAAAAAEAAACkgf94AABhY2Nlc3NpYmlsaXR5
L2FyaWEtY29tYm9ib3gtZXhwZWN0ZWQudHh0VVQFAAMXjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAhKEzSlR8Ek9GCAAAjR8AACwAGAAAAAAAAQAAAKSBOHoAAGFjY2Vzc2liaWxpdHkvYXJp
YS1jb21ib2JveC1wcmV0dHktZGlmZi5odG1sVVQFAAMXjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAhKEzSgAAAAAAAAAAAAAAABIAGAAAAAAAAAAQAO1B5IIAAGFjY2Vzc2liaWxpdHkvbWFj
L1VUBQADGI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIOhM0oWgR9YkgEAALcFAAAmABgA
AAAAAAEAAACkgTCDAABhY2Nlc3NpYmlsaXR5L21hYy9hY2Nlc3NrZXktYWN0dWFsLnR4dFVUBQAD
Fo6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIOhM0pVMlSi8AEAAPMGAAAkABgAAAAAAAEA
AACkgSKFAABhY2Nlc3NpYmlsaXR5L21hYy9hY2Nlc3NrZXktZGlmZi50eHRVVAUAAxaOgVh1eAsA
AQT1AQAABBQAAABQSwECHgMKAAIAAACDoTNKgzagJRUAAAAVAAAAKAAYAAAAAAABAAAApIFwhwAA
YWNjZXNzaWJpbGl0eS9tYWMvYWNjZXNza2V5LWV4cGVjdGVkLnR4dFVUBQADFo6BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAIOhM0paEgtCCwoAADdFAAAsABgAAAAAAAEAAACkgeeHAABhY2Nl
c3NpYmlsaXR5L21hYy9hY2Nlc3NrZXktcHJldHR5LWRpZmYuaHRtbFVUBQADFo6BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAIOhM0o4Brje1gAAAJcBAAAxABgAAAAAAAEAAACkgViSAABhY2Nl
c3NpYmlsaXR5L21hYy9hcmVhLXdpdGgtYXJpYS1sYWJlbC1hY3R1YWwudHh0VVQFAAMWjoFYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAg6EzSsmEn74xAQAAEAMAAC8AGAAAAAAAAQAAAKSBmZMA
AGFjY2Vzc2liaWxpdHkvbWFjL2FyZWEtd2l0aC1hcmlhLWxhYmVsLWRpZmYudHh0VVQFAAMWjoFY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAg6EzSh3dZuzIAAAAYQEAADMAGAAAAAAAAQAAAKSB
M5UAAGFjY2Vzc2liaWxpdHkvbWFjL2FyZWEtd2l0aC1hcmlhLWxhYmVsLWV4cGVjdGVkLnR4dFVU
BQADFo6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIOhM0rA3BjndwgAACUfAAA3ABgAAAAA
AAEAAACkgWiWAABhY2Nlc3NpYmlsaXR5L21hYy9hcmVhLXdpdGgtYXJpYS1sYWJlbC1wcmV0dHkt
ZGlmZi5odG1sVVQFAAMWjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhKEzSpPUU0HXAAAA
VQEAACsAGAAAAAAAAQAAAKSBUJ8AAGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtZGlyZWN0b3J5LWFj
dHVhbC50eHRVVAUAAxeOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACEoTNKf3OQ3ygBAABY
AgAAKQAYAAAAAAABAAAApIGMoAAAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1kaXJlY3RvcnktZGlm
Zi50eHRVVAUAAxeOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACEoTNKSEJOXcIAAAAhAQAA
LQAYAAAAAAABAAAApIEXogAAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1kaXJlY3RvcnktZXhwZWN0
ZWQudHh0VVQFAAMXjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhKEzSjmGAWN7CAAAdx4A
ADEAGAAAAAAAAQAAAKSBQKMAAGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtZGlyZWN0b3J5LXByZXR0
eS1kaWZmLmh0bWxVVAUAAxeOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACEoTNKTQdq9BYB
AAC0AgAAOQAYAAAAAAABAAAApIEmrAAAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1leHBhbmRlZC1z
dGFuZGFyZC1pdGVtcy1hY3R1YWwudHh0VVQFAAMXjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAhKEzSnRtPyZ3AQAA9wQAADcAGAAAAAAAAQAAAKSBr60AAGFjY2Vzc2liaWxpdHkvbWFjL2Fy
aWEtZXhwYW5kZWQtc3RhbmRhcmQtaXRlbXMtZGlmZi50eHRVVAUAAxeOgVh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACEoTNKXzrV+/YAAABDAgAAOwAYAAAAAAABAAAApIGXrwAAYWNjZXNzaWJp
bGl0eS9tYWMvYXJpYS1leHBhbmRlZC1zdGFuZGFyZC1pdGVtcy1leHBlY3RlZC50eHRVVAUAAxeO
gVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACEoTNKYw9yT/AIAACTJQAAPwAYAAAAAAABAAAA
pIECsQAAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1leHBhbmRlZC1zdGFuZGFyZC1pdGVtcy1wcmV0
dHktZGlmZi5odG1sVVQFAAMXjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhKEzSuipsStn
AQAAzgMAAD0AGAAAAAAAAQAAAKSBa7oAAGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtZ3JpZC13aXRo
LXN0cmFuZ2UtaGllcmFyY2h5LWFjdHVhbC50eHRVVAUAAxeOgVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACEoTNKklXiMrMBAAA1BgAAOwAYAAAAAAABAAAApIFJvAAAYWNjZXNzaWJpbGl0eS9t
YWMvYXJpYS1ncmlkLXdpdGgtc3RyYW5nZS1oaWVyYXJjaHktZGlmZi50eHRVVAUAAxeOgVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACACEoTNKnZDrNj0BAAAZAwAAPwAYAAAAAAABAAAApIFxvgAA
YWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1ncmlkLXdpdGgtc3RyYW5nZS1oaWVyYXJjaHktZXhwZWN0
ZWQudHh0VVQFAAMXjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhKEzSgQUPLdJCQAAACwA
AEMAGAAAAAAAAQAAAKSBJ8AAAGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtZ3JpZC13aXRoLXN0cmFu
Z2UtaGllcmFyY2h5LXByZXR0eS1kaWZmLmh0bWxVVAUAAxeOgVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACEoTNKzCW3S/kAAAC3AQAAPAAYAAAAAAABAAAApIHtyQAAYWNjZXNzaWJpbGl0eS9t
YWMvYXJpYS1saXZlcmVnaW9uLW1hcnF1ZWUtZGVmYXVsdC1hY3R1YWwudHh0VVQFAAMXjoFYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhKEzSsFInYA8AQAAKAMAADoAGAAAAAAAAQAAAKSBXMsA
AGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbGl2ZXJlZ2lvbi1tYXJxdWVlLWRlZmF1bHQtZGlmZi50
eHRVVAUAAxiOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACEoTNK7zZYw+0AAACfAQAAPgAY
AAAAAAABAAAApIEMzQAAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1saXZlcmVnaW9uLW1hcnF1ZWUt
ZGVmYXVsdC1leHBlY3RlZC50eHRVVAUAAxeOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACE
oTNKJFxckJIIAABUHwAAQgAYAAAAAAABAAAApIFxzgAAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1s
aXZlcmVnaW9uLW1hcnF1ZWUtZGVmYXVsdC1wcmV0dHktZGlmZi5odG1sVVQFAAMYjoFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAh6EzSgAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1Bf9cAAGNv
bXBvc2l0aW5nL1VUBQADHY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIehM0oAAAAAAAAA
AAAAAAASABgAAAAAAAAAEADtQcXXAABjb21wb3NpdGluZy92aWRlby9VVAUAAx2OgVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACHoTNKcqT8JdpBAACsYwAAMgAYAAAAAAAAAAAApIER2AAAY29t
cG9zaXRpbmcvdmlkZW8vdmlkZW8tY2xpcC1jaGFuZ2Utc3JjLWFjdHVhbC5wbmdVVAUAAx2OgVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACHoTNKTa2g5cgTAADcGQAAMAAYAAAAAAAAAAAApIFX
GgEAY29tcG9zaXRpbmcvdmlkZW8vdmlkZW8tY2xpcC1jaGFuZ2Utc3JjLWRpZmYucG5nVVQFAAMd
joFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh6EzSsOOS8OSBQAALBIAADIAGAAAAAAAAQAA
AKSBiS4BAGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLWNsaXAtY2hhbmdlLXNyYy1kaWZmcy5odG1s
VVQFAAMdjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh6EzSk16RIrIAQAAmgMAADUAGAAA
AAAAAQAAAKSBhzQBAGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLWNsaXAtY2hhbmdlLXNyYy1leHBl
Y3RlZC5odG1sVVQFAAMdjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAh6EzSkpPPH01BwAA
1C4AADQAGAAAAAAAAAAAAKSBvjYBAGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLWNsaXAtY2hhbmdl
LXNyYy1leHBlY3RlZC5wbmdVVAUAAx2OgVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACJoTNK
AAAAAAAAAAAAAAAABwAYAAAAAAAAABAA7UFhPgEAY3J5cHRvL1VUBQADIo6BWHV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAImhM0oAAAAAAAAAAAAAAAAOABgAAAAAAAAAEADtQaI+AQBjcnlwdG8v
c3VidGxlL1VUBQADIo6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAImhM0ol4NMILAAAACwA
AAA+ABgAAAAAAAEAAACkgeo+AQBjcnlwdG8vc3VidGxlL3JzYS1nZW5lcmF0ZS1rZXktbWFsZm9y
bWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUBQADIY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAImhM0owO7ixSwAAAGgAAAA8ABgAAAAAAAEAAACkgY4/AQBjcnlwdG8vc3VidGxlL3JzYS1p
bXBvcnQta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLXN0ZGVyci50eHRVVAUAAyKOgVh1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAACJoTNKAAAAAAAAAAAAAAAADwAYAAAAAAAAABAA7UFPQAEAY3J5
cHRvL3dvcmtlcnMvVVQFAAMijoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAiaEzSgAAAAAA
AAAAAAAAABYAGAAAAAAAAAAQAO1BmEABAGNyeXB0by93b3JrZXJzL3N1YnRsZS9VVAUAAyKOgVh1
eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAACJoTNKJeDTCCwAAAAsAAAAMQAYAAAAAAABAAAApIHo
QAEAY3J5cHRvL3dvcmtlcnMvc3VidGxlL3JzYS1nZW5lcmF0ZS1rZXktc3RkZXJyLnR4dFVUBQAD
Io6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIihM0oAAAAAAAAAAAAAAAAFABgAAAAAAAAA
EADtQX9BAQBjc3MzL1VUBQADH46BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIihM0oAAAAA
AAAAAAAAAAANABgAAAAAAAAAEADtQb5BAQBjc3MzL2ZpbHRlcnMvVVQFAAMfjoFYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAiaEzSgAAAAAAAAAAAAAAABYAGAAAAAAAAAAQAO1BBUIBAGNzczMv
ZmlsdGVycy9iYWNrZHJvcC9VVAUAAyGOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACIoTNK
sHF9Kf8QAAB9NQAAUgAYAAAAAAAAAAAApIFVQgEAY3NzMy9maWx0ZXJzL2JhY2tkcm9wL2JhY2tk
cm9wLWZpbHRlci13aXRoLWJvcmRlci1yYWRpdXMtYW5kLXJlZmxlY3Rpb24tYWN0dWFsLnBuZ1VU
BQADH46BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIihM0ozP6ejFREAAIg1AABWABgAAAAA
AAAAAACkgeBTAQBjc3MzL2ZpbHRlcnMvYmFja2Ryb3AvYmFja2Ryb3AtZmlsdGVyLXdpdGgtYm9y
ZGVyLXJhZGl1cy1hbmQtcmVmbGVjdGlvbi1hZGQtYWN0dWFsLnBuZ1VUBQADH46BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAIihM0oiIjCIfAAAAIcIAABUABgAAAAAAAAAAACkgYVlAQBjc3Mz
L2ZpbHRlcnMvYmFja2Ryb3AvYmFja2Ryb3AtZmlsdGVyLXdpdGgtYm9yZGVyLXJhZGl1cy1hbmQt
cmVmbGVjdGlvbi1hZGQtZGlmZi5wbmdVVAUAAx+OgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACIoTNKeHGKl6QFAABwEgAAVgAYAAAAAAABAAAApIGPZgEAY3NzMy9maWx0ZXJzL2JhY2tkcm9w
L2JhY2tkcm9wLWZpbHRlci13aXRoLWJvcmRlci1yYWRpdXMtYW5kLXJlZmxlY3Rpb24tYWRkLWRp
ZmZzLmh0bWxVVAUAAx+OgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACIoTNKB0gRA4IBAACS
AwAAWQAYAAAAAAABAAAApIHDbAEAY3NzMy9maWx0ZXJzL2JhY2tkcm9wL2JhY2tkcm9wLWZpbHRl
ci13aXRoLWJvcmRlci1yYWRpdXMtYW5kLXJlZmxlY3Rpb24tYWRkLWV4cGVjdGVkLmh0bWxVVAUA
Ax+OgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACIoTNKKim6nQ0RAAB8NQAAWAAYAAAAAAAA
AAAApIHYbgEAY3NzMy9maWx0ZXJzL2JhY2tkcm9wL2JhY2tkcm9wLWZpbHRlci13aXRoLWJvcmRl
ci1yYWRpdXMtYW5kLXJlZmxlY3Rpb24tYWRkLWV4cGVjdGVkLnBuZ1VUBQADH46BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAIihM0peK7G8fAAAAIcIAABQABgAAAAAAAAAAACkgXeAAQBjc3Mz
L2ZpbHRlcnMvYmFja2Ryb3AvYmFja2Ryb3AtZmlsdGVyLXdpdGgtYm9yZGVyLXJhZGl1cy1hbmQt
cmVmbGVjdGlvbi1kaWZmLnBuZ1VUBQADII6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIih
M0r2b5mPogUAAGgSAABSABgAAAAAAAEAAACkgX2BAQBjc3MzL2ZpbHRlcnMvYmFja2Ryb3AvYmFj
a2Ryb3AtZmlsdGVyLXdpdGgtYm9yZGVyLXJhZGl1cy1hbmQtcmVmbGVjdGlvbi1kaWZmcy5odG1s
VVQFAAMgjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAiKEzSjYADWOEAQAAoQMAAFUAGAAA
AAAAAQAAAKSBq4cBAGNzczMvZmlsdGVycy9iYWNrZHJvcC9iYWNrZHJvcC1maWx0ZXItd2l0aC1i
b3JkZXItcmFkaXVzLWFuZC1yZWZsZWN0aW9uLWV4cGVjdGVkLmh0bWxVVAUAAyCOgVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACIoTNKI/OKmSERAACINQAAVAAYAAAAAAAAAAAApIG+iQEAY3Nz
My9maWx0ZXJzL2JhY2tkcm9wL2JhY2tkcm9wLWZpbHRlci13aXRoLWJvcmRlci1yYWRpdXMtYW5k
LXJlZmxlY3Rpb24tZXhwZWN0ZWQucG5nVVQFAAMfjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAiKEzSnoK1en1CgAAPC4AAE0AGAAAAAAAAAAAAKSBbZsBAGNzczMvZmlsdGVycy9iYWNrZHJv
cC9iYWNrZHJvcC1maWx0ZXItd2l0aC1yZWZsZWN0aW9uLWFkZC1iYWNrZHJvcC1hY3R1YWwucG5n
VVQFAAMgjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAiaEzSoLMeeQCAgAAvwkAAEsAGAAA
AAAAAAAAAKSB6aYBAGNzczMvZmlsdGVycy9iYWNrZHJvcC9iYWNrZHJvcC1maWx0ZXItd2l0aC1y
ZWZsZWN0aW9uLWFkZC1iYWNrZHJvcC1kaWZmLnBuZ1VUBQADIY6BWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAImhM0rOpfTjnQUAAF4SAABNABgAAAAAAAEAAACkgXCpAQBjc3MzL2ZpbHRlcnMv
YmFja2Ryb3AvYmFja2Ryb3AtZmlsdGVyLXdpdGgtcmVmbGVjdGlvbi1hZGQtYmFja2Ryb3AtZGlm
ZnMuaHRtbFVUBQADIY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAImhM0qscASgngEAAMgD
AABQABgAAAAAAAEAAACkgZSvAQBjc3MzL2ZpbHRlcnMvYmFja2Ryb3AvYmFja2Ryb3AtZmlsdGVy
LXdpdGgtcmVmbGVjdGlvbi1hZGQtYmFja2Ryb3AtZXhwZWN0ZWQuaHRtbFVUBQADIY6BWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAIihM0p6ZnI+jAoAAD0uAABPABgAAAAAAAAAAACkgbyxAQBj
c3MzL2ZpbHRlcnMvYmFja2Ryb3AvYmFja2Ryb3AtZmlsdGVyLXdpdGgtcmVmbGVjdGlvbi1hZGQt
YmFja2Ryb3AtZXhwZWN0ZWQucG5nVVQFAAMgjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
jKEzSgAAAAAAAAAAAAAAAAYAGAAAAAAAAAAQAO1B0bwBAGNzc29tL1VUBQADKI6BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAIyhM0qeTWUzBwYAAGdAAAAkABgAAAAAAAEAAACkgRG9AQBjc3Nv
bS9jc3N2YWx1ZS1jb21wYXJpc29uLWFjdHVhbC50eHRVVAUAAyiOgVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACMoTNKcP1hVKEIAADsawAAIgAYAAAAAAABAAAApIF2wwEAY3Nzb20vY3NzdmFs
dWUtY29tcGFyaXNvbi1kaWZmLnR4dFVUBQADKI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AIyhM0pjHqwzvwUAAAsqAAAmABgAAAAAAAEAAACkgXPMAQBjc3NvbS9jc3N2YWx1ZS1jb21wYXJp
c29uLWV4cGVjdGVkLnR4dFVUBQADKI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIyhM0of
Hi/luBUAACgtAQAqABgAAAAAAAEAAACkgZLSAQBjc3NvbS9jc3N2YWx1ZS1jb21wYXJpc29uLXBy
ZXR0eS1kaWZmLmh0bWxVVAUAAyiOgVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACMoTNKAAAA
AAAAAAAAAAAADQAYAAAAAAAAABAA7UGu6AEAZGlzcGxheWxpc3RzL1VUBQADKI6BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAIyhM0qjV/3oUAAAAI4AAAAyABgAAAAAAAEAAACkgfXoAQBkaXNw
bGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVzLXRyYW5zZm9ybXMtc3RkZXJyLnR4dFVUBQADKI6BWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIyhM0rylpXVRwAAAEkAAAApABgAAAAAAAEAAACkgbHp
AQBkaXNwbGF5bGlzdHMvbGF5ZXItZGlzcGF5LWxpc3Qtc3RkZXJyLnR4dFVUBQADKI6BWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAI+hM0oAAAAAAAAAAAAAAAAIABgAAAAAAAAAEADtQVvqAQBl
ZGl0aW5nL1VUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAI6hM0oAAAAAAAAAAAAA
AAAOABgAAAAAAAAAEADtQZ3qAQBlZGl0aW5nL2NhcmV0L1VUBQADK46BWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAI2hM0oo2y1wyQEAAKUEAAAkABgAAAAAAAEAAACkgeXqAQBlZGl0aW5nL2Nh
cmV0L2NhcmV0LWNvbG9yLWFjdHVhbC50eHRVVAUAAyqOgVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACNoTNKSYNsXfkAAACwAgAAIgAYAAAAAAABAAAApIEM7QEAZWRpdGluZy9jYXJldC9jYXJl
dC1jb2xvci1kaWZmLnR4dFVUBQADKo6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI2hM0rT
bEvjCAIAAHQFAAAmABgAAAAAAAEAAACkgWHuAQBlZGl0aW5nL2NhcmV0L2NhcmV0LWNvbG9yLWV4
cGVjdGVkLnR4dFVUBQADKo6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI2hM0qY2/on0gcA
AHQaAAAqABgAAAAAAAEAAACkgcnwAQBlZGl0aW5nL2NhcmV0L2NhcmV0LWNvbG9yLXByZXR0eS1k
aWZmLmh0bWxVVAUAAyqOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACOoTNKLaQLNA0rAAAR
UwAAMwAYAAAAAAAAAAAApIH/+AEAZWRpdGluZy9jYXJldC9jb2xvci1zcGFuLWluc2lkZS1lZGl0
YWJsZS1hY3R1YWwucG5nVVQFAAMrjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjaEzSkR5
6K6+NQAAWF4AAD4AGAAAAAAAAAAAAKSBeSQCAGVkaXRpbmcvY2FyZXQvY29sb3Itc3Bhbi1pbnNp
ZGUtZWRpdGFibGUtYmFja2dyb3VuZC1hY3R1YWwucG5nVVQFAAMqjoFYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAjaEzSvkDZ1/cAAAAtQ4AADwAGAAAAAAAAAAAAKSBr1oCAGVkaXRpbmcvY2Fy
ZXQvY29sb3Itc3Bhbi1pbnNpZGUtZWRpdGFibGUtYmFja2dyb3VuZC1kaWZmLnBuZ1VUBQADKo6B
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0q2NLcanAUAAEgSAAA+ABgAAAAAAAEAAACk
gQFcAgBlZGl0aW5nL2NhcmV0L2NvbG9yLXNwYW4taW5zaWRlLWVkaXRhYmxlLWJhY2tncm91bmQt
ZGlmZnMuaHRtbFVUBQADK46BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0og4iXluQAA
ADwBAABBABgAAAAAAAEAAACkgRViAgBlZGl0aW5nL2NhcmV0L2NvbG9yLXNwYW4taW5zaWRlLWVk
aXRhYmxlLWJhY2tncm91bmQtZXhwZWN0ZWQuaHRtbFVUBQADK46BWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAI2hM0rEE+eGfTYAAJheAABAABgAAAAAAAAAAACkgUljAgBlZGl0aW5nL2NhcmV0
L2NvbG9yLXNwYW4taW5zaWRlLWVkaXRhYmxlLWJhY2tncm91bmQtZXhwZWN0ZWQucG5nVVQFAAMq
joFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSvkDZ1/cAAAAtQ4AADEAGAAAAAAAAAAA
AKSBQJoCAGVkaXRpbmcvY2FyZXQvY29sb3Itc3Bhbi1pbnNpZGUtZWRpdGFibGUtZGlmZi5wbmdV
VAUAAyuOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACOoTNKEl9ppJQFAAAyEgAAMwAYAAAA
AAABAAAApIGHmwIAZWRpdGluZy9jYXJldC9jb2xvci1zcGFuLWluc2lkZS1lZGl0YWJsZS1kaWZm
cy5odG1sVVQFAAMrjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSoR9PRG0AAAAGgEA
ADYAGAAAAAAAAQAAAKSBiKECAGVkaXRpbmcvY2FyZXQvY29sb3Itc3Bhbi1pbnNpZGUtZWRpdGFi
bGUtZXhwZWN0ZWQuaHRtbFVUBQADK46BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0rs
Rh1WGCsAALNSAAA1ABgAAAAAAAAAAACkgayiAgBlZGl0aW5nL2NhcmV0L2NvbG9yLXNwYW4taW5z
aWRlLWVkaXRhYmxlLWV4cGVjdGVkLnBuZ1VUBQADK46BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAI+hM0oAAAAAAAAAAAAAAAARABgAAAAAAAAAEADtQTPOAgBlZGl0aW5nL2RlbGV0aW5nL1VU
BQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0rTP0oIMQEAAA8CAAAjABgAAAAA
AAEAAACkgX7OAgBlZGl0aW5nL2RlbGV0aW5nLzU1NDY3NjMtYWN0dWFsLnR4dFVUBQADLI6BWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0qvs41aBQIAALIIAAAhABgAAAAAAAEAAACkgQzQ
AgBlZGl0aW5nL2RlbGV0aW5nLzU1NDY3NjMtZGlmZi50eHRVVAUAAyyOgVh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACOoTNKlV/LUIMBAADjBgAAJQAYAAAAAAABAAAApIFs0gIAZWRpdGluZy9k
ZWxldGluZy81NTQ2NzYzLWV4cGVjdGVkLnR4dFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAI6hM0riBWQVPAkAANUpAAApABgAAAAAAAEAAACkgU7UAgBlZGl0aW5nL2RlbGV0aW5n
LzU1NDY3NjMtcHJldHR5LWRpZmYuaHRtbFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAI6hM0orSqo3UgAAAF8AAAAlABgAAAAAAAEAAACkge3dAgBlZGl0aW5nL2RlbGV0aW5nLzU4
NDczMzAtMi1hY3R1YWwudHh0VVQFAAMsjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEz
SmTTd0C7AAAATQEAACMAGAAAAAAAAQAAAKSBnt4CAGVkaXRpbmcvZGVsZXRpbmcvNTg0NzMzMC0y
LWRpZmYudHh0VVQFAAMsjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSiCiLOdMAAAA
WwAAACcAGAAAAAAAAQAAAKSBtt8CAGVkaXRpbmcvZGVsZXRpbmcvNTg0NzMzMC0yLWV4cGVjdGVk
LnR4dFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0rtrQ7LlQcAAKIYAAAr
ABgAAAAAAAEAAACkgWPgAgBlZGl0aW5nL2RlbGV0aW5nLzU4NDczMzAtMi1wcmV0dHktZGlmZi5o
dG1sVVQFAAMsjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSsU6adOrAQAA0BMAADsA
GAAAAAAAAQAAAKSBXegCAGVkaXRpbmcvZGVsZXRpbmcvY29sbGFwc2Utd2hpdGVzcGFjZS0zNTg3
NjAxLWZpeC1hY3R1YWwudHh0VVQFAAMsjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEz
Sl9gwDMNAQAA3gIAADkAGAAAAAAAAQAAAKSBfeoCAGVkaXRpbmcvZGVsZXRpbmcvY29sbGFwc2Ut
d2hpdGVzcGFjZS0zNTg3NjAxLWZpeC1kaWZmLnR4dFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAI6hM0qNwQnRzwEAAJ8UAAA9ABgAAAAAAAEAAACkgf3rAgBlZGl0aW5nL2RlbGV0
aW5nL2NvbGxhcHNlLXdoaXRlc3BhY2UtMzU4NzYwMS1maXgtZXhwZWN0ZWQudHh0VVQFAAMsjoFY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj6EzSpgmpIzmBwAAixoAAEEAGAAAAAAAAQAAAKSB
Q+4CAGVkaXRpbmcvZGVsZXRpbmcvY29sbGFwc2Utd2hpdGVzcGFjZS0zNTg3NjAxLWZpeC1wcmV0
dHktZGlmZi5odG1sVVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj6EzSvudXXXN
AQAA4gsAAC4AGAAAAAAAAQAAAKSBpPYCAGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLTM2MDg0NDUt
Zml4LWFjdHVhbC50eHRVVAUAAy2OgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACPoTNK07mf
7gABAADEAgAALAAYAAAAAAABAAAApIHZ+AIAZWRpdGluZy9kZWxldGluZy9kZWxldGUtMzYwODQ0
NS1maXgtZGlmZi50eHRVVAUAAy2OgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACPoTNKgQVP
ffIBAACxDAAAMAAYAAAAAAABAAAApIE/+gIAZWRpdGluZy9kZWxldGluZy9kZWxldGUtMzYwODQ0
NS1maXgtZXhwZWN0ZWQudHh0VVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj6Ez
Sj3oVcXbBwAAfhoAADQAGAAAAAAAAQAAAKSBm/wCAGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLTM2
MDg0NDUtZml4LXByZXR0eS1kaWZmLmh0bWxVVAUAAy2OgVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACPoTNKLBZefR4CAAB3DgAALgAYAAAAAAABAAAApIHkBAMAZWRpdGluZy9kZWxldGluZy9k
ZWxldGUtMzYwODQ2Mi1maXgtYWN0dWFsLnR4dFVUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAI+hM0rD4R9KAAEAAMQCAAAsABgAAAAAAAEAAACkgWoHAwBlZGl0aW5nL2RlbGV0aW5n
L2RlbGV0ZS0zNjA4NDYyLWZpeC1kaWZmLnR4dFVUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAI+hM0p/A4MDQQIAAEYPAAAwABgAAAAAAAEAAACkgdAIAwBlZGl0aW5nL2RlbGV0aW5n
L2RlbGV0ZS0zNjA4NDYyLWZpeC1leHBlY3RlZC50eHRVVAUAAy2OgVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACPoTNKZ50h+tsHAAB+GgAANAAYAAAAAAABAAAApIF7CwMAZWRpdGluZy9kZWxl
dGluZy9kZWxldGUtMzYwODQ2Mi1maXgtcHJldHR5LWRpZmYuaHRtbFVUBQADLY6BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAI+hM0rlm5oEcAEAACMGAAAuABgAAAAAAAEAAACkgcQTAwBlZGl0
aW5nL2RlbGV0aW5nL2RlbGV0ZS0zNzc1MTcyLWZpeC1hY3R1YWwudHh0VVQFAAMtjoFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAj6EzSu98fGk3AQAAfAMAACwAGAAAAAAAAQAAAKSBnBUDAGVk
aXRpbmcvZGVsZXRpbmcvZGVsZXRlLTM3NzUxNzItZml4LWRpZmYudHh0VVQFAAMtjoFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAj6EzSncJhlWIAQAA5gYAADAAGAAAAAAAAQAAAKSBORcDAGVk
aXRpbmcvZGVsZXRpbmcvZGVsZXRlLTM3NzUxNzItZml4LWV4cGVjdGVkLnR4dFVUBQADLY6BWHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAI+hM0oAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQSsZ
AwBlZGl0aW5nL2V4ZWNDb21tYW5kL1VUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AI6hM0orhzb0kwAAABIBAAAkABgAAAAAAAEAAACkgXkZAwBlZGl0aW5nL2V4ZWNDb21tYW5kLzE2
MDQ5LWFjdHVhbC50eHRVVAUAAyuOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACOoTNK2obB
GikBAABBAgAAIgAYAAAAAAABAAAApIFqGgMAZWRpdGluZy9leGVjQ29tbWFuZC8xNjA0OS1kaWZm
LnR4dFVUBQADK46BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0p417tmxgAAAFIBAAAm
ABgAAAAAAAEAAACkge8bAwBlZGl0aW5nL2V4ZWNDb21tYW5kLzE2MDQ5LWV4cGVjdGVkLnR4dFVU
BQADK46BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0q0Ftx7HQgAAGEcAAAqABgAAAAA
AAEAAACkgRUdAwBlZGl0aW5nL2V4ZWNDb21tYW5kLzE2MDQ5LXByZXR0eS1kaWZmLmh0bWxVVAUA
AyuOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACOoTNKqwdVApoAAADYAAAAJAAYAAAAAAAB
AAAApIGWJQMAZWRpdGluZy9leGVjQ29tbWFuZC8xOTA4OS1hY3R1YWwudHh0VVQFAAMrjoFYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSm38bucLAQAA0QEAACIAGAAAAAAAAQAAAKSBjiYD
AGVkaXRpbmcvZXhlY0NvbW1hbmQvMTkwODktZGlmZi50eHRVVAUAAyuOgVh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACOoTNKSn7js6IAAADjAAAAJgAYAAAAAAABAAAApIH1JwMAZWRpdGluZy9l
eGVjQ29tbWFuZC8xOTA4OS1leHBlY3RlZC50eHRVVAUAAyuOgVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACOoTNK6gPEju0HAADCGAAAKgAYAAAAAAABAAAApIH3KAMAZWRpdGluZy9leGVjQ29t
bWFuZC8xOTA4OS1wcmV0dHktZGlmZi5odG1sVVQFAAMrjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAjqEzSlpAncjVAAAAtgMAACYAGAAAAAAAAQAAAKSBSDEDAGVkaXRpbmcvZXhlY0NvbW1h
bmQvMTk2NTMtMS1hY3R1YWwudHh0VVQFAAMrjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
jqEzSqJfWUqYAQAA7QUAACQAGAAAAAAAAQAAAKSBfTIDAGVkaXRpbmcvZXhlY0NvbW1hbmQvMTk2
NTMtMS1kaWZmLnR4dFVUBQADK46BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0pXX7wH
AAEAADAEAAAoABgAAAAAAAEAAACkgXM0AwBlZGl0aW5nL2V4ZWNDb21tYW5kLzE5NjUzLTEtZXhw
ZWN0ZWQudHh0VVQFAAMrjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSkFwGlJgCQAA
NjIAACwAGAAAAAAAAQAAAKSB1TUDAGVkaXRpbmcvZXhlY0NvbW1hbmQvMTk2NTMtMS1wcmV0dHkt
ZGlmZi5odG1sVVQFAAMsjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSuPbS9OpAAAA
5gAAACQAGAAAAAAAAQAAAKSBmz8DAGVkaXRpbmcvZXhlY0NvbW1hbmQvMjUyNTYtYWN0dWFsLnR4
dFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0qLt0LzKwEAAPsBAAAiABgA
AAAAAAEAAACkgaJAAwBlZGl0aW5nL2V4ZWNDb21tYW5kLzI1MjU2LWRpZmYudHh0VVQFAAMsjoFY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSg5wya3CAAAADAEAACYAGAAAAAAAAQAAAKSB
KUIDAGVkaXRpbmcvZXhlY0NvbW1hbmQvMjUyNTYtZXhwZWN0ZWQudHh0VVQFAAMsjoFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSvc30n0LCAAAfRkAACoAGAAAAAAAAQAAAKSBS0MDAGVk
aXRpbmcvZXhlY0NvbW1hbmQvMjUyNTYtcHJldHR5LWRpZmYuaHRtbFVUBQADLI6BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAI6hM0pvBetCvAAAABEBAAAkABgAAAAAAAEAAACkgbpLAwBlZGl0
aW5nL2V4ZWNDb21tYW5kLzI1MzIwLWFjdHVhbC50eHRVVAUAAyyOgVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACACOoTNKkRjqUjgBAABOAgAAIgAYAAAAAAABAAAApIHUTAMAZWRpdGluZy9leGVj
Q29tbWFuZC8yNTMyMC1kaWZmLnR4dFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AI6hM0pkpydPzAAAADwBAAAmABgAAAAAAAEAAACkgWhOAwBlZGl0aW5nL2V4ZWNDb21tYW5kLzI1
MzIwLWV4cGVjdGVkLnR4dFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0qr
gHXHHggAAOEaAAAqABgAAAAAAAEAAACkgZRPAwBlZGl0aW5nL2V4ZWNDb21tYW5kLzI1MzIwLXBy
ZXR0eS1kaWZmLmh0bWxVVAUAAyyOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACOoTNKu6Ol
f4MCAABnCAAAKAAYAAAAAAABAAAApIEWWAMAZWRpdGluZy9leGVjQ29tbWFuZC80NjQxODgwLTEt
YWN0dWFsLnR4dFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0oCzxDgAgEA
ALgCAAAmABgAAAAAAAEAAACkgftaAwBlZGl0aW5nL2V4ZWNDb21tYW5kLzQ2NDE4ODAtMS1kaWZm
LnR4dFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0oOnk54ogIAADYJAAAq
ABgAAAAAAAEAAACkgV1cAwBlZGl0aW5nL2V4ZWNDb21tYW5kLzQ2NDE4ODAtMS1leHBlY3RlZC50
eHRVVAUAAyyOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACPoTNKoqxNddsHAAB4GgAALgAY
AAAAAAABAAAApIFjXwMAZWRpdGluZy9leGVjQ29tbWFuZC80NjQxODgwLTEtcHJldHR5LWRpZmYu
aHRtbFVUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI+hM0p82YjwTwIAANgHAAAo
ABgAAAAAAAEAAACkgaZnAwBlZGl0aW5nL2V4ZWNDb21tYW5kLzQ2NDE4ODAtMi1hY3R1YWwudHh0
VVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj6EzSh/Ig64DAQAAuAIAACYAGAAA
AAAAAQAAAKSBV2oDAGVkaXRpbmcvZXhlY0NvbW1hbmQvNDY0MTg4MC0yLWRpZmYudHh0VVQFAAMt
joFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj6EzSkIa25htAgAApwgAACoAGAAAAAAAAQAA
AKSBumsDAGVkaXRpbmcvZXhlY0NvbW1hbmQvNDY0MTg4MC0yLWV4cGVjdGVkLnR4dFVUBQADLY6B
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI+hM0oJJdGq2wcAAHgaAAAuABgAAAAAAAEAAACk
gYtuAwBlZGl0aW5nL2V4ZWNDb21tYW5kLzQ2NDE4ODAtMi1wcmV0dHktZGlmZi5odG1sVVQFAAMt
joFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj6EzSgLu/MBlAQAAhQMAACYAGAAAAAAAAQAA
AKSBznYDAGVkaXRpbmcvZXhlY0NvbW1hbmQvNDc0NzQ1MC1hY3R1YWwudHh0VVQFAAMtjoFYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj6EzSuHgQnoDAgAAiwUAACQAGAAAAAAAAQAAAKSBk3gD
AGVkaXRpbmcvZXhlY0NvbW1hbmQvNDc0NzQ1MC1kaWZmLnR4dFVUBQADLY6BWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAI+hM0ot03co5QEAAIMFAAAoABgAAAAAAAEAAACkgfR6AwBlZGl0aW5n
L2V4ZWNDb21tYW5kLzQ3NDc0NTAtZXhwZWN0ZWQudHh0VVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAj6EzSjImWdhZCQAAzSgAACwAGAAAAAAAAQAAAKSBO30DAGVkaXRpbmcvZXhl
Y0NvbW1hbmQvNDc0NzQ1MC1wcmV0dHktZGlmZi5odG1sVVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAj6EzSrrFfNDYAAAAXgEAACgAGAAAAAAAAQAAAKSB+oYDAGVkaXRpbmcvZXhl
Y0NvbW1hbmQvNDc4NjQwNC0xLWFjdHVhbC50eHRVVAUAAy2OgVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACPoTNK9/y3pvQAAAC+AQAAJgAYAAAAAAABAAAApIE0iAMAZWRpdGluZy9leGVjQ29t
bWFuZC80Nzg2NDA0LTEtZGlmZi50eHRVVAUAAy2OgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACPoTNKvvMzqOsAAAB5AQAAKgAYAAAAAAABAAAApIGIiQMAZWRpdGluZy9leGVjQ29tbWFuZC80
Nzg2NDA0LTEtZXhwZWN0ZWQudHh0VVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
j6EzSm6yBrXoBwAA5RwAAC4AGAAAAAAAAQAAAKSB14oDAGVkaXRpbmcvZXhlY0NvbW1hbmQvNDc4
NjQwNC0xLXByZXR0eS1kaWZmLmh0bWxVVAUAAy2OgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACPoTNKNzuKmqsAAAAYAQAAKAAYAAAAAAABAAAApIEnkwMAZWRpdGluZy9leGVjQ29tbWFuZC80
Nzg2NDA0LTItYWN0dWFsLnR4dFVUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI+h
M0pVv+5W2QAAAIcBAAAmABgAAAAAAAEAAACkgTSUAwBlZGl0aW5nL2V4ZWNDb21tYW5kLzQ3ODY0
MDQtMi1kaWZmLnR4dFVUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI+hM0ou4GaT
vQAAADMBAAAqABgAAAAAAAEAAACkgW2VAwBlZGl0aW5nL2V4ZWNDb21tYW5kLzQ3ODY0MDQtMi1l
eHBlY3RlZC50eHRVVAUAAy2OgVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACPoTNKAAAAAAAA
AAAAAAAADgAYAAAAAAAAABAA7UGOlgMAZWRpdGluZy9pbnB1dC9VVAUAAy2OgVh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACOoTNKF6Op4XEUAAB9PAAAMgAYAAAAAAAAAAAApIHWlgMAZWRpdGlu
Zy9pbnB1dC9jb21wb3NpdGlvbi11bmRlcmxpbmUtcnRsLWFjdHVhbC5wbmdVVAUAAyuOgVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACACOoTNKm/UbZNgHAAABDwAAMAAYAAAAAAAAAAAApIGzqwMA
ZWRpdGluZy9pbnB1dC9jb21wb3NpdGlvbi11bmRlcmxpbmUtcnRsLWRpZmYucG5nVVQFAAMrjoFY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSlk/Bi2MBQAAMBIAADIAGAAAAAAAAQAAAKSB
9bMDAGVkaXRpbmcvaW5wdXQvY29tcG9zaXRpb24tdW5kZXJsaW5lLXJ0bC1kaWZmcy5odG1sVVQF
AAMrjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSotckGF8AQAAoQIAADUAGAAAAAAA
AQAAAKSB7bkDAGVkaXRpbmcvaW5wdXQvY29tcG9zaXRpb24tdW5kZXJsaW5lLXJ0bC1leHBlY3Rl
ZC5odG1sVVQFAAMrjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSmWj/minIwAA8UgA
ADQAGAAAAAAAAAAAAKSB2LsDAGVkaXRpbmcvaW5wdXQvY29tcG9zaXRpb24tdW5kZXJsaW5lLXJ0
bC1leHBlY3RlZC5wbmdVVAUAAyuOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACOoTNKu9p+
Zr8BAAAuAwAAQQAYAAAAAAABAAAApIHt3wMAZWRpdGluZy9pbnB1dC9lZGl0YWJsZS1jb250YWlu
ZXItd2l0aC13b3JkLXdyYXAtbm9ybWFsLWFjdHVhbC50eHRVVAUAAyyOgVh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACOoTNK79B5SW0BAAAVAwAAPwAYAAAAAAABAAAApIEn4gMAZWRpdGluZy9p
bnB1dC9lZGl0YWJsZS1jb250YWluZXItd2l0aC13b3JkLXdyYXAtbm9ybWFsLWRpZmYudHh0VVQF
AAMsjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSlR59OC0AQAALgMAAEMAGAAAAAAA
AQAAAKSBDeQDAGVkaXRpbmcvaW5wdXQvZWRpdGFibGUtY29udGFpbmVyLXdpdGgtd29yZC13cmFw
LW5vcm1hbC1leHBlY3RlZC50eHRVVAUAAyyOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACO
oTNK7tYQRJQIAABPHQAARwAYAAAAAAABAAAApIE+5gMAZWRpdGluZy9pbnB1dC9lZGl0YWJsZS1j
b250YWluZXItd2l0aC13b3JkLXdyYXAtbm9ybWFsLXByZXR0eS1kaWZmLmh0bWxVVAUAAyyOgVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACOoTNKbtZ0MEsCAADlCwAAJQAYAAAAAAABAAAApIFT
7wMAZWRpdGluZy9pbnB1dC9lbWFjcy1jdHJsLW8tYWN0dWFsLnR4dFVUBQADLI6BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAI6hM0rCWDHE/QAAALICAAAjABgAAAAAAAEAAACkgf3xAwBlZGl0
aW5nL2lucHV0L2VtYWNzLWN0cmwtby1kaWZmLnR4dFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAI6hM0q6SjMjbAIAALQMAAAnABgAAAAAAAEAAACkgVfzAwBlZGl0aW5nL2lucHV0
L2VtYWNzLWN0cmwtby1leHBlY3RlZC50eHRVVAUAAyyOgVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACOoTNK/gPn7tgHAAB1GgAAKwAYAAAAAAABAAAApIEk9gMAZWRpdGluZy9pbnB1dC9lbWFj
cy1jdHJsLW8tcHJldHR5LWRpZmYuaHRtbFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAI6hM0pJ9OD8rQAAAAEBAAA1ABgAAAAAAAEAAACkgWH+AwBlZGl0aW5nL2lucHV0L2ltZS1j
b21wb3NpdGlvbi1jbGVhcnByZWVkaXQtYWN0dWFsLnR4dFVUBQADLI6BWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAI6hM0pUf5nL7gAAAL0BAAAzABgAAAAAAAEAAACkgX3/AwBlZGl0aW5nL2lu
cHV0L2ltZS1jb21wb3NpdGlvbi1jbGVhcnByZWVkaXQtZGlmZi50eHRVVAUAAyyOgVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACOoTNK4Z1NI6gAAAACAQAANwAYAAAAAAABAAAApIHYAAQAZWRp
dGluZy9pbnB1dC9pbWUtY29tcG9zaXRpb24tY2xlYXJwcmVlZGl0LWV4cGVjdGVkLnR4dFVUBQAD
LI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0pAwLzF+wcAAJ8aAAA7ABgAAAAAAAEA
AACkgfEBBABlZGl0aW5nL2lucHV0L2ltZS1jb21wb3NpdGlvbi1jbGVhcnByZWVkaXQtcHJldHR5
LWRpZmYuaHRtbFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0oqQW+YwwAA
AEUBAAAsABgAAAAAAAEAAACkgWEKBABlZGl0aW5nL2lucHV0L29wdGlvbi1wYWdlLXVwLWRvd24t
YWN0dWFsLnR4dFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0qvUcELTwEA
ALsCAAAqABgAAAAAAAEAAACkgYoLBABlZGl0aW5nL2lucHV0L29wdGlvbi1wYWdlLXVwLWRvd24t
ZGlmZi50eHRVVAUAAyyOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACOoTNKYV7wV8EAAABp
AQAALgAYAAAAAAABAAAApIE9DQQAZWRpdGluZy9pbnB1dC9vcHRpb24tcGFnZS11cC1kb3duLWV4
cGVjdGVkLnR4dFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI+hM0pRTsvZkggA
AAYoAAAyABgAAAAAAAEAAACkgWYOBABlZGl0aW5nL2lucHV0L29wdGlvbi1wYWdlLXVwLWRvd24t
cHJldHR5LWRpZmYuaHRtbFVUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAI+hM0oA
AAAAAAAAAAAAAAASABgAAAAAAAAAEADtQWQXBABlZGl0aW5nL2luc2VydGluZy9VVAUAAy2OgVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACOoTNKXRH4jkwCAAA0BwAAJAAYAAAAAAABAAAApIGw
FwQAZWRpdGluZy9pbnNlcnRpbmcvNDI3ODY5OC1hY3R1YWwudHh0VVQFAAMrjoFYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAjqEzSrFHcx7+AAAAsAIAACIAGAAAAAAAAQAAAKSBWhoEAGVkaXRp
bmcvaW5zZXJ0aW5nLzQyNzg2OTgtZGlmZi50eHRVVAUAAyuOgVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACACOoTNKttTuXXACAAADCAAAJgAYAAAAAAABAAAApIG0GwQAZWRpdGluZy9pbnNlcnRp
bmcvNDI3ODY5OC1leHBlY3RlZC50eHRVVAUAAyuOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACOoTNKkf1LzNcHAAB0GgAAKgAYAAAAAAABAAAApIGEHgQAZWRpdGluZy9pbnNlcnRpbmcvNDI3
ODY5OC1wcmV0dHktZGlmZi5odG1sVVQFAAMrjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgACAAAA
jqEzSk/TucUFAAAABQAAACYAGAAAAAAAAQAAAKSBvyYEAGVkaXRpbmcvaW5zZXJ0aW5nLzU2ODU2
MDEtMS1hY3R1YWwudHh0VVQFAAMsjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSqcz
aXaJAAAA/gAAACQAGAAAAAAAAQAAAKSBJCcEAGVkaXRpbmcvaW5zZXJ0aW5nLzU2ODU2MDEtMS1k
aWZmLnR4dFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0pi2KWoEAAAABEA
AAAoABgAAAAAAAEAAACkgQsoBABlZGl0aW5nL2luc2VydGluZy81Njg1NjAxLTEtZXhwZWN0ZWQu
dHh0VVQFAAMsjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSgVAnUtQBwAA8BYAACwA
GAAAAAAAAQAAAKSBfSgEAGVkaXRpbmcvaW5zZXJ0aW5nLzU2ODU2MDEtMS1wcmV0dHktZGlmZi5o
dG1sVVQFAAMsjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgACAAAAjqEzSk/TucUFAAAABQAAACYA
GAAAAAAAAQAAAKSBMzAEAGVkaXRpbmcvaW5zZXJ0aW5nLzU2ODU2MDEtMi1hY3R1YWwudHh0VVQF
AAMsjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSm87lseJAAAAAQEAACQAGAAAAAAA
AQAAAKSBmDAEAGVkaXRpbmcvaW5zZXJ0aW5nLzU2ODU2MDEtMi1kaWZmLnR4dFVUBQADLI6BWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0oUvcgtEQAAABQAAAAoABgAAAAAAAEAAACkgX8x
BABlZGl0aW5nL2luc2VydGluZy81Njg1NjAxLTItZXhwZWN0ZWQudHh0VVQFAAMsjoFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSsI/rKRRBwAA+RYAACwAGAAAAAAAAQAAAKSB8jEEAGVk
aXRpbmcvaW5zZXJ0aW5nLzU2ODU2MDEtMi1wcmV0dHktZGlmZi5odG1sVVQFAAMsjoFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgACAAAAj6EzSpMG1zIBAAAAAQAAACYAGAAAAAAAAQAAAKSBqTkEAGVk
aXRpbmcvaW5zZXJ0aW5nLzU2ODU2MDEtMy1hY3R1YWwudHh0VVQFAAMtjoFYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAj6EzSlDHfo2JAAAACAEAACQAGAAAAAAAAQAAAKSBCjoEAGVkaXRpbmcv
aW5zZXJ0aW5nLzU2ODU2MDEtMy1kaWZmLnR4dFVUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAI+hM0pWdj/1EQAAAB8AAAAoABgAAAAAAAEAAACkgfE6BABlZGl0aW5nL2luc2VydGlu
Zy81Njg1NjAxLTMtZXhwZWN0ZWQudHh0VVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAj6EzSg/HZjNRBwAABhcAACwAGAAAAAAAAQAAAKSBZDsEAGVkaXRpbmcvaW5zZXJ0aW5nLzU2
ODU2MDEtMy1wcmV0dHktZGlmZi5odG1sVVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAj6EzSsfXR3q2AAAAIAEAACYAGAAAAAAAAQAAAKSBG0MEAGVkaXRpbmcvaW5zZXJ0aW5nLzU5
OTQ0ODAtMi1hY3R1YWwudHh0VVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj6Ez
Sln/dmQlAQAAEwIAACQAGAAAAAAAAQAAAKSBMUQEAGVkaXRpbmcvaW5zZXJ0aW5nLzU5OTQ0ODAt
Mi1kaWZmLnR4dFVUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI+hM0oS+42VewAA
AK0AAAAoABgAAAAAAAEAAACkgbRFBABlZGl0aW5nL2luc2VydGluZy81OTk0NDgwLTItZXhwZWN0
ZWQudHh0VVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj6EzSgIjSt8fCAAApxwA
ACwAGAAAAAAAAQAAAKSBkUYEAGVkaXRpbmcvaW5zZXJ0aW5nLzU5OTQ0ODAtMi1wcmV0dHktZGlm
Zi5odG1sVVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAj6EzSgAAAAAAAAAAAAAA
AAwAGAAAAAAAAAAQAO1BFk8EAGVkaXRpbmcvbWFjL1VUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAI+hM0oAAAAAAAAAAAAAAAASABgAAAAAAAAAEADtQVxPBABlZGl0aW5nL21hYy9p
bnB1dC9VVAUAAy2OgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACOoTNKGJbsmdwAAADCAQAA
JAAYAAAAAAABAAAApIGoTwQAZWRpdGluZy9tYWMvaW5wdXQvNTU3NjYxOS1hY3R1YWwudHh0VVQF
AAMsjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSgZ/lHUHAgAAEwcAACIAGAAAAAAA
AQAAAKSB4lAEAGVkaXRpbmcvbWFjL2lucHV0LzU1NzY2MTktZGlmZi50eHRVVAUAAyyOgVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACACOoTNKU+RUWKYBAACMBgAAJgAYAAAAAAABAAAApIFFUwQA
ZWRpdGluZy9tYWMvaW5wdXQvNTU3NjYxOS1leHBlY3RlZC50eHRVVAUAAyyOgVh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACOoTNK9d7pcBEJAAD3JgAAKgAYAAAAAAABAAAApIFLVQQAZWRpdGlu
Zy9tYWMvaW5wdXQvNTU3NjYxOS1wcmV0dHktZGlmZi5odG1sVVQFAAMsjoFYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAjqEzShj7fku1AAAA/gAAADoAGAAAAAAAAQAAAKSBwF4EAGVkaXRpbmcv
bWFjL2lucHV0L05TQmFja2dyb3VuZENvbG9yLXRyYW5zcGFyZW50LWFjdHVhbC50eHRVVAUAAyyO
gVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACOoTNK3tJvCC0BAABJAgAAOAAYAAAAAAABAAAA
pIHpXwQAZWRpdGluZy9tYWMvaW5wdXQvTlNCYWNrZ3JvdW5kQ29sb3ItdHJhbnNwYXJlbnQtZGlm
Zi50eHRVVAUAAyyOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACOoTNKUxkubncAAAC2AAAA
PAAYAAAAAAABAAAApIGIYQQAZWRpdGluZy9tYWMvaW5wdXQvTlNCYWNrZ3JvdW5kQ29sb3ItdHJh
bnNwYXJlbnQtZXhwZWN0ZWQudHh0VVQFAAMsjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
jqEzSnuja9cYCAAASRsAAEAAGAAAAAAAAQAAAKSBdWIEAGVkaXRpbmcvbWFjL2lucHV0L05TQmFj
a2dyb3VuZENvbG9yLXRyYW5zcGFyZW50LXByZXR0eS1kaWZmLmh0bWxVVAUAAyyOgVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACOoTNK4bKBAW8AAAB6AAAAJgAYAAAAAAABAAAApIEHawQAZWRp
dGluZy9tYWMvaW5wdXQvYm9sZC1ub2RlLWFjdHVhbC50eHRVVAUAAyyOgVh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACOoTNKQ+LPJ9oAAABtAQAAJAAYAAAAAAABAAAApIHWawQAZWRpdGluZy9t
YWMvaW5wdXQvYm9sZC1ub2RlLWRpZmYudHh0VVQFAAMsjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAjqEzSvv4yjJuAAAAegAAACgAGAAAAAAAAQAAAKSBDm0EAGVkaXRpbmcvbWFjL2lucHV0
L2JvbGQtbm9kZS1leHBlY3RlZC50eHRVVAUAAyyOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACOoTNKZ49RAcUHAADhGAAALAAYAAAAAAABAAAApIHebQQAZWRpdGluZy9tYWMvaW5wdXQvYm9s
ZC1ub2RlLXByZXR0eS1kaWZmLmh0bWxVVAUAAyyOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACOoTNKOB0WCIUAAACtAAAAPQAYAAAAAAABAAAApIEJdgQAZWRpdGluZy9tYWMvaW5wdXQvY3Jh
c2gtZm9yLWVtcHR5LXRleHQtYWx0ZXJuYXRpdmUtYWN0dWFsLnR4dFVUBQADLI6BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAI6hM0rkp6eP2wAAAJYBAAA7ABgAAAAAAAEAAACkgQV3BABlZGl0
aW5nL21hYy9pbnB1dC9jcmFzaC1mb3ItZW1wdHktdGV4dC1hbHRlcm5hdGl2ZS1kaWZmLnR4dFVU
BQADLI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0oqwB/UgwAAAKoAAAA/ABgAAAAA
AAEAAACkgVV4BABlZGl0aW5nL21hYy9pbnB1dC9jcmFzaC1mb3ItZW1wdHktdGV4dC1hbHRlcm5h
dGl2ZS1leHBlY3RlZC50eHRVVAUAAyyOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACPoTNK
HlWcyd4HAABuGgAAQwAYAAAAAAABAAAApIFReQQAZWRpdGluZy9tYWMvaW5wdXQvY3Jhc2gtZm9y
LWVtcHR5LXRleHQtYWx0ZXJuYXRpdmUtcHJldHR5LWRpZmYuaHRtbFVUBQADLY6BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAI+hM0oyZU1TZQAAAN8AAAAwABgAAAAAAAEAAACkgayBBABlZGl0
aW5nL21hYy9pbnB1dC9kZXZhbmFnYXJpLWxpZ2F0dXJlLWFjdHVhbC50eHRVVAUAAy2OgVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACACPoTNKp20x4DcBAAB+AgAALgAYAAAAAAABAAAApIF7ggQA
ZWRpdGluZy9tYWMvaW5wdXQvZGV2YW5hZ2FyaS1saWdhdHVyZS1kaWZmLnR4dFVUBQADLY6BWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI+hM0rxveb8wgAAAIoBAAAyABgAAAAAAAEAAACkgRqE
BABlZGl0aW5nL21hYy9pbnB1dC9kZXZhbmFnYXJpLWxpZ2F0dXJlLWV4cGVjdGVkLnR4dFVUBQAD
LY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI+hM0rndfMiKAgAABYcAAA2ABgAAAAAAAEA
AACkgUiFBABlZGl0aW5nL21hYy9pbnB1dC9kZXZhbmFnYXJpLWxpZ2F0dXJlLXByZXR0eS1kaWZm
Lmh0bWxVVAUAAy2OgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACPoTNKC8ErWpsAAADFAAAA
QAAYAAAAAAABAAAApIHgjQQAZWRpdGluZy9tYWMvaW5wdXQvZWRpdC1kaWN0YXRlZC10ZXh0LXdp
dGgtYWx0ZXJuYXRpdmUtYWN0dWFsLnR4dFVUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAI+hM0pD6Ad/+QAAAMMBAAA+ABgAAAAAAAEAAACkgfWOBABlZGl0aW5nL21hYy9pbnB1dC9l
ZGl0LWRpY3RhdGVkLXRleHQtd2l0aC1hbHRlcm5hdGl2ZS1kaWZmLnR4dFVUBQADLY6BWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAI+hM0pYhMvkpAAAAOIAAABCABgAAAAAAAEAAACkgWaQBABl
ZGl0aW5nL21hYy9pbnB1dC9lZGl0LWRpY3RhdGVkLXRleHQtd2l0aC1hbHRlcm5hdGl2ZS1leHBl
Y3RlZC50eHRVVAUAAy2OgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACPoTNKgRSWOhkIAABY
HAAARgAYAAAAAAABAAAApIGGkQQAZWRpdGluZy9tYWMvaW5wdXQvZWRpdC1kaWN0YXRlZC10ZXh0
LXdpdGgtYWx0ZXJuYXRpdmUtcHJldHR5LWRpZmYuaHRtbFVUBQADLY6BWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAI+hM0oVYAXwbAAAAA0BAAA9ABgAAAAAAAEAAACkgR+aBABlZGl0aW5nL21h
Yy9pbnB1dC9maXJzdHJlY3Rmb3JjaGFyYWN0ZXJyYW5nZS1wbGFpbi1hY3R1YWwudHh0VVQFAAMt
joFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj6EzSrBiYMIWAQAARQIAADsAGAAAAAAAAQAA
AKSBApsEAGVkaXRpbmcvbWFjL2lucHV0L2ZpcnN0cmVjdGZvcmNoYXJhY3RlcnJhbmdlLXBsYWlu
LWRpZmYudHh0VVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj6EzSv70r9i9AAAA
0AEAAD8AGAAAAAAAAQAAAKSBjZwEAGVkaXRpbmcvbWFjL2lucHV0L2ZpcnN0cmVjdGZvcmNoYXJh
Y3RlcnJhbmdlLXBsYWluLWV4cGVjdGVkLnR4dFVUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAI+hM0oAAAAAAAAAAAAAAAAXABgAAAAAAAAAEADtQcOdBABlZGl0aW5nL21hYy9wYXN0
ZWJvYXJkL1VUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0rcI/XBowAAANwA
AAAyABgAAAAAAAEAAACkgRSeBABlZGl0aW5nL21hYy9wYXN0ZWJvYXJkL3RleHQtcHJlY29tcG9z
ZWQtYWN0dWFsLnR4dFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0oZhuMt
FgEAAAUCAAAwABgAAAAAAAEAAACkgSOfBABlZGl0aW5nL21hYy9wYXN0ZWJvYXJkL3RleHQtcHJl
Y29tcG9zZWQtZGlmZi50eHRVVAUAAyyOgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACOoTNK
ubmBm2gAAACcAAAANAAYAAAAAAABAAAApIGjoAQAZWRpdGluZy9tYWMvcGFzdGVib2FyZC90ZXh0
LXByZWNvbXBvc2VkLWV4cGVjdGVkLnR4dFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAI+hM0qAnVEeCggAAAQbAAA4ABgAAAAAAAEAAACkgXmhBABlZGl0aW5nL21hYy9wYXN0ZWJv
YXJkL3RleHQtcHJlY29tcG9zZWQtcHJldHR5LWRpZmYuaHRtbFVUBQADLY6BWHV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAI+hM0oAAAAAAAAAAAAAAAAWABgAAAAAAAAAEADtQfWpBABlZGl0aW5n
L21hYy9zZWxlY3Rpb24vVVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSk2e
wSkLAwAAbAkAACYAGAAAAAAAAQAAAKSBRaoEAGVkaXRpbmcvbWFjL3NlbGVjdGlvbi8yNTIyOC1h
Y3R1YWwudHh0VVQFAAMsjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjqEzSjrbjQEIAQAA
3AEAACQAGAAAAAAAAQAAAKSBsK0EAGVkaXRpbmcvbWFjL3NlbGVjdGlvbi8yNTIyOC1kaWZmLnR4
dFVUBQADLI6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI6hM0px5gwmKAMAAKoJAAAoABgA
AAAAAAEAAACkgRavBABlZGl0aW5nL21hYy9zZWxlY3Rpb24vMjUyMjgtZXhwZWN0ZWQudHh0VVQF
AAMsjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj6EzSpGnFvbTBwAADhkAACwAGAAAAAAA
AQAAAKSBoLIEAGVkaXRpbmcvbWFjL3NlbGVjdGlvbi8yNTIyOC1wcmV0dHktZGlmZi5odG1sVVQF
AAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAj6EzSgAAAAAAAAAAAAAAABUAGAAAAAAA
AAAQAO1B2boEAGVkaXRpbmcvbWFjL3NwZWxsaW5nL1VUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAI+hM0qLqpttYQEAABMDAABQABgAAAAAAAEAAACkgSi7BABlZGl0aW5nL21hYy9z
cGVsbGluZy9hY2NlcHQtY2FuZGlkYXRlLWFsbG93cy1hdXRvY29ycmVjdC1vbi1uZXh0LXdvcmQt
YWN0dWFsLnR4dFVUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI+hM0pmplgqzQMA
AJ48AABOABgAAAAAAAEAAACkgRO9BABlZGl0aW5nL21hYy9zcGVsbGluZy9hY2NlcHQtY2FuZGlk
YXRlLWFsbG93cy1hdXRvY29ycmVjdC1vbi1uZXh0LXdvcmQtZGlmZi50eHRVVAUAAy2OgVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACACPoTNKbSCu5zkDAAD1OgAAUgAYAAAAAAABAAAApIFowQQA
ZWRpdGluZy9tYWMvc3BlbGxpbmcvYWNjZXB0LWNhbmRpZGF0ZS1hbGxvd3MtYXV0b2NvcnJlY3Qt
b24tbmV4dC13b3JkLWV4cGVjdGVkLnR4dFVUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAI+hM0rylnrMdQwAAEmUAABWABgAAAAAAAEAAACkgS3FBABlZGl0aW5nL21hYy9zcGVsbGlu
Zy9hY2NlcHQtY2FuZGlkYXRlLWFsbG93cy1hdXRvY29ycmVjdC1vbi1uZXh0LXdvcmQtcHJldHR5
LWRpZmYuaHRtbFVUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI+hM0rYT/qHcgAA
AI8AAABJABgAAAAAAAEAAACkgTLSBABlZGl0aW5nL21hYy9zcGVsbGluZy9hY2NlcHQtY2FuZGlk
YXRlLXJlcGxhY2luZy1tdWx0aXBsZS13b3Jkcy1hY3R1YWwudHh0VVQFAAMtjoFYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAj6EzSnA0PlaAAgAAbhsAAEcAGAAAAAAAAQAAAKSBJ9MEAGVkaXRp
bmcvbWFjL3NwZWxsaW5nL2FjY2VwdC1jYW5kaWRhdGUtcmVwbGFjaW5nLW11bHRpcGxlLXdvcmRz
LWRpZmYudHh0VVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj6EzSiXbbucHAgAA
DRoAAEsAGAAAAAAAAQAAAKSBKNYEAGVkaXRpbmcvbWFjL3NwZWxsaW5nL2FjY2VwdC1jYW5kaWRh
dGUtcmVwbGFjaW5nLW11bHRpcGxlLXdvcmRzLWV4cGVjdGVkLnR4dFVUBQADLY6BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAI+hM0qFXuPgKAoAAHRPAABPABgAAAAAAAEAAACkgbTYBABlZGl0
aW5nL21hYy9zcGVsbGluZy9hY2NlcHQtY2FuZGlkYXRlLXJlcGxhY2luZy1tdWx0aXBsZS13b3Jk
cy1wcmV0dHktZGlmZi5odG1sVVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj6Ez
SpbLZ7N7AAAAlQAAAEUAGAAAAAAAAQAAAKSBZeMEAGVkaXRpbmcvbWFjL3NwZWxsaW5nL2FjY2Vw
dC1jYW5kaWRhdGUtdW5kby1kb2VzLW5vdC1zZWxlY3QtYWN0dWFsLnR4dFVUBQADLY6BWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAI+hM0pW0yDtlwIAANkfAABDABgAAAAAAAEAAACkgV/kBABl
ZGl0aW5nL21hYy9zcGVsbGluZy9hY2NlcHQtY2FuZGlkYXRlLXVuZG8tZG9lcy1ub3Qtc2VsZWN0
LWRpZmYudHh0VVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj6EzSlQcGi0fAgAA
eB4AAEcAGAAAAAAAAQAAAKSBc+cEAGVkaXRpbmcvbWFjL3NwZWxsaW5nL2FjY2VwdC1jYW5kaWRh
dGUtdW5kby1kb2VzLW5vdC1zZWxlY3QtZXhwZWN0ZWQudHh0VVQFAAMtjoFYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAj6EzSgAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BE+oEAGVkaXRpbmcv
cGFzdGVib2FyZC9VVAUAAy2OgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACPoTNKXgqMAroB
AAB+BAAAJAAYAAAAAAABAAAApIFg6gQAZWRpdGluZy9wYXN0ZWJvYXJkLzgxNDUtMS1hY3R1YWwu
dHh0VVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj6EzSrhqD2E3AQAAjgMAACIA
GAAAAAAAAQAAAKSBeOwEAGVkaXRpbmcvcGFzdGVib2FyZC84MTQ1LTEtZGlmZi50eHRVVAUAAy2O
gVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACPoTNKDUO7adMBAABNBQAAJgAYAAAAAAABAAAA
pIEL7gQAZWRpdGluZy9wYXN0ZWJvYXJkLzgxNDUtMS1leHBlY3RlZC50eHRVVAUAAy2OgVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACACPoTNKZws4PxQIAAB8GwAAKgAYAAAAAAABAAAApIE+8AQA
ZWRpdGluZy9wYXN0ZWJvYXJkLzgxNDUtMS1wcmV0dHktZGlmZi5odG1sVVQFAAMtjoFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAj6EzSv3TH+t5AgAAdQgAACQAGAAAAAAAAQAAAKSBtvgEAGVk
aXRpbmcvcGFzdGVib2FyZC84MTQ1LTItYWN0dWFsLnR4dFVUBQADLY6BWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAI+hM0o17n5r/wAAALACAAAiABgAAAAAAAEAAACkgY37BABlZGl0aW5nL3Bh
c3RlYm9hcmQvODE0NS0yLWRpZmYudHh0VVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAj6EzSvIpcBecAgAARAkAACYAGAAAAAAAAQAAAKSB6PwEAGVkaXRpbmcvcGFzdGVib2FyZC84
MTQ1LTItZXhwZWN0ZWQudHh0VVQFAAMtjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj6Ez
Soh2N2LYBwAAdBoAACoAGAAAAAAAAQAAAKSB5P8EAGVkaXRpbmcvcGFzdGVib2FyZC84MTQ1LTIt
cHJldHR5LWRpZmYuaHRtbFVUBQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI+hM0pZ
SXVrXAIAANAHAAAkABgAAAAAAAEAAACkgSAIBQBlZGl0aW5nL3Bhc3RlYm9hcmQvODE0NS0zLWFj
dHVhbC50eHRVVAUAAy2OgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACPoTNKlnBkvf4AAACw
AgAAIgAYAAAAAAABAAAApIHaCgUAZWRpdGluZy9wYXN0ZWJvYXJkLzgxNDUtMy1kaWZmLnR4dFVU
BQADLY6BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI+hM0r/1gS/gAIAAJ8IAAAmABgAAAAA
AAEAAACkgTQMBQBlZGl0aW5nL3Bhc3RlYm9hcmQvODE0NS0zLWV4cGVjdGVkLnR4dFVUBQADLY6B
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI+hM0qymuvCwgIAAFoIAAANABgAAAAAAAEAAACk
gRQPBQBlcnJvcl9sb2cudHh0VVQFAAMujoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgApqEz
SuyK9UA9AwAA1A0AABEAGAAAAAAAAQAAAKSBHRIFAGZ1bGxfcmVzdWx0cy5qc29uVVQFAANYjoFY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAgaEzSlsEWA6iBQAATRAAAAoAGAAAAAAAAQAAAKSB
pRUFAGh0dHBkLmNvbmZVVAUAAxGOgVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACBoTNKAAAA
AAAAAAAAAAAAGgAYAAAAAAAAAAAApIGLGwUAcHl3ZWJzb2NrZXQud3MubG9nLWVyci50eHRVVAUA
AxKOgVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACBoTNKAAAAAAAAAAAAAAAAGgAYAAAAAAAA
AAAApIHfGwUAcHl3ZWJzb2NrZXQud3MubG9nLW91dC50eHRVVAUAAxKOgVh1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAACCoTNKAAAAAAAAAAAAAAAAGwAYAAAAAAAAAAAApIEzHAUAcHl3ZWJzb2Nr
ZXQud3NzLmxvZy1lcnIudHh0VVQFAAMTjoFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAgqEz
SgAAAAAAAAAAAAAAABsAGAAAAAAAAAAAAKSBiBwFAHB5d2Vic29ja2V0Lndzcy5sb2ctb3V0LnR4
dFVUBQADE46BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKahM0pFJh050ScAAMuqAAAMABgA
AAAAAAEAAACkgd0cBQByZXN1bHRzLmh0bWxVVAUAA1iOgVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACmoTNKztd+RbTWAADm3AQACgAYAAAAAAABAAAApIH0RAUAc3RhdHMuanNvblVUBQADWI6B
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJGhM0pzCWUL5QQAAL0aAAAZABgAAAAAAAEAAACk
gewbBgB3cHR3a19wcm9jZXNzX2xvZy5vdXQudHh0VVQFAAMyjoFYdXgLAAEE9QEAAAQUAAAAUEsF
BgAAAAAsASwBnYYAACQhBgAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>299309</attachid>
            <date>2017-01-19 20:34:31 -0800</date>
            <delta_ts>2017-01-19 23:31:21 -0800</delta_ts>
            <desc>Archive of layout-test-results from ews107 for mac-elcapitan-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>358086</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
+7ZmAzvdHtfbrG1VxGbjc4uxIbayx1J9tuv7W2/WzckYinR8OlQlz8fziVFcN8tg5Kgrc7DR3fXo
vDmWs11wCKvON3FN3efGt3ne6XTiyrOMRXIPhZHru95Sm9xKiaf9jnUvW/fbINqpbV76zt6pFINp
stx9VQ1/PNQuDSmdq69leH/yr739iy0lpadZh2h38RXyrdi6x9BdzWaDp9JLT6stty7FcHeYVbP1
ZJCX+VFpvL6mL+28lV7avbU1KTXt/O2oPfuktw1Iz3q6lftFGA7NXb9SglE12/RW0iwf98bF3hhr
wwNpeH50DKtV7BWzo52fSqZalXq7mlU4vCbyerJTonK42HaOrqTKp1FXTdte6zgZ7tuJyaS137B6
+ViX1OcO3+reuVzol87tpJanefXXXz+w0Bu4n5Hwb1BLAwQKAAIAAAAioTNK7Tb5mwcAAAAHAAAA
EQAcAF93cHRfY2VydHMvc2VyaWFsVVQJAANgjYFYYI2BWHV4CwABBPUBAAAEFAAAADBCQjZDNgpQ
SwMECgACAAAAIqEzSi5l1LAHAAAABwAAABUAHABfd3B0X2NlcnRzL3NlcmlhbC5vbGRVVAkAA2CN
gVhgjYFYdXgLAAEE9QEAAAQUAAAAMEJCNkM1ClBLAwQKAAAAAAAgoTNKAAAAAAAAAAAAAAAADgAc
AGFjY2Vzc19sb2cudHh0VVQJAANcjYFYZ42BWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAmoTNK
AAAAAAAAAAAAAAAADgAcAGFjY2Vzc2liaWxpdHkvVVQJAANnjYFY7Y2BWHV4CwABBPUBAAAEFAAA
AFBLAwQUAAIACAAjoTNKcGNKQAkBAADaAQAAPQAcAGFjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0
eS1ub2RlLW1lbW9yeS1tYW5hZ2VtZW50LWFjdHVhbC50eHRVVAkAA2KNgVhijYFYdXgLAAEE9QEA
AAQUAAAApZHNTsMwEITvfoolZ5QHQOIQSkFIhUQkUrlukk1jcO3IaxP89mz6Q+HMJY5Gs9+Ox82o
GQJxgD1+EANHTxBGDFB0HTHrVhsd0ovrqWzfqQsMKI7Ju4m8SdBTwG6kHuaRrAwSWLEuPwkmp22A
4EBW9GQoUJ8rVVpZcmBfQ3IRZm0MMBGgfL2WDG6ArCrqOoO9uHBH4hycMW6WPW2CrFnXDazK52qz
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
AGFjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmliZWRieS1vbi1pbnB1dC1kaWZmLnR4dFVUCQADZY2B
WGWNgVh1eAsAAQT1AQAABBQAAAC9zrFOxDAMBuA9T2F1DblIJyamHgIJiY1DHGuauqolt6liR72+
PbmDhe1YWOzlt//POQf+I3GZUPxT0OCfT0d/wu6V9Gc9FuLevyFjEPQctlTUKYq6jFJYxYcYUYQ6
YtLNh0zB9SgxU4d9t7k0O5qXeoTnBaNiv9OzGmvt/zWHqCXwtbdtwe3v7sFeRtsaODCnVaA+B00g
lUjDBjoizGXqMEMaYKK51GIIg2I2sI4Ux2skpqn+r6GVmEGQhwtAc4m6M2Dce838QsK3b1FKM5BA
c/h8QV4e/s64UdEYezuiMV9QSwMEFAACAAgAJaEzSiu0VeODAAAADQEAADQAHABhY2Nlc3NpYmls
aXR5L2FyaWEtZGVzY3JpYmVkYnktb24taW5wdXQtZXhwZWN0ZWQudHh0VVQJAANljYFYZY2BWHV4
CwABBPUBAAAEFAAAAJWOMQrDMBAEe71icR8/IJ27PMBFWvtyQgdnSfhOGP8+wpA2JPUMuzMnMVDZ
anPecYgqjDXeXmy+N3JIBrBJ7tzGMKmWw3CWBi+wyiTxhCdGbtvaF0r8yFhinwxHEkqX8eVlDGHu
xkLEZrKKip/okHapLiWjRw7T88Fa7/i7Ab81DOENUEsDBBQAAgAIACWhM0pCLznQ0wcAAPcZAAA4
ABwAYWNjZXNzaWJpbGl0eS9hcmlhLWRlc2NyaWJlZGJ5LW9uLWlucHV0LXByZXR0eS1kaWZmLmh0
bWxVVAkAA2WNgVhljYFYdXgLAAEE9QEAAAQUAAAArVltb+M2Ev6eX0EkuAYoItmO7W1sZ1Ps5gUF
enc4XIr2vh0oibK4oUSVpGJ7e/ffb/gmS7Jk+9p20bUtvj0z88w8Q+19pnL2cHGfEZzAR04URnGG
hSTq43Wl0uDuGh5LtWPk4WLJaPF2g5bvVFJFEvTbBYL/FNmqICExF1hRXixRwQuyMkMRFwkRQcSV
4vkSTcotSuA7SVYX/72w27lNYs64WKKr8XRhxsIXysgTTVM3HuH4bS14VSSBn5re6T/Ng+wJkjOa
oKskSexYygsVpDinbLdEOS+4LHHsAOZYrClAnpAcje2jkoNxxg5BGFj0TgygbNJBOp1Oe/aXuJCB
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
/UtS4HAioCMGZyUO8z9Bn+J8h58QTZFUvWLhIB2HgzTVkt/bpc8C95cNxtnXCYZF9t5olKvjSwRD
a/p3iUb3K0Sj8+zUKNbhbx6Szt8rP3pfJyLPzI9SwX+JkOzNkq/aaH+p612nf0jI+80hV7e27IoX
gZfX9+rv3ITK2ZKn+Atfhs4P0fb8m93N3hyizptmdUp32b+Cn8qP/qhx2TJ/Jer/UEsDBBQAAgAI
ACWhM0qbw5g+1QAAAEUBAAAiABwAYWNjZXNzaWJpbGl0eS9hcmlhLWhlbHAtYWN0dWFsLnR4dFVU
CQADZo2BWGaNgVh1eAsAAQT1AQAABBQAAAB1kEFLw0AQhe/7Kx45KWgu/oJaUxCqDSTY8zSdmKWT
bNiZJc2/d3tQEPTyTm8+vjft4BXGajkHMlD09DiwzCCz6E/JGEuIFwUp+DpzZ3wunTtM0NR1rPqA
NSQsXgTKDMoZPStCj6LeNE2BMbfok3OzDyJh4TNOK4q2alpsD2/1vmqrIjPdbvO6xyxkfYjjB0ni
XYjHp+07jXxH1+dkFqZ76BCSZAbDvAmXOGa38t/rF9Yu+tl8mP6EdOK7CwaOP6Sb9ve8PomsNUXN
1rdXxcTO/VJ37gtQSwMEFAACAAgAJaEzSv7h9VYoAQAAaAIAACAAHABhY2Nlc3NpYmlsaXR5L2Fy
aWEtaGVscC1kaWZmLnR4dFVUCQADZo2BWGaNgVh1eAsAAQT1AQAABBQAAAC1kE9rwkAQxe/5FENO
LelmD156jH8ilNoqjZjzGCd16eiG3Vk0376rWKSlQi9lYOayv/fePqUU6JXlsCOvJyioy7rSNa2f
jVzOKBje6DdiQk+asbdBlJAX5cgHFq+xach7szZspNfoDKotcafo2FEjtMnlKEmWZf/nhI0E5LNP
UYAaPDxCdlpFkcB8Dz6cuQeIinAwzOCJAON2hjzYFtLFsKpSiNk8vlN82Vpme6ANrHtIl2W1hPH8
ZTErl2WaJxBHnQjoGKW1brdCDjS1rh6MX3FHd3gcBRG7vwfjIRUjTOltZEK+caYTY/c/yIZN8wFb
chHPpsOn2R8c/dYGjsEJzr451Oghv43/7n5VuWb4koLzRy6ttoG5X6DzsawYWVygU0HfOks+AVBL
AwQUAAIACAAloTNKDhyQbsgAAAAtAQAAJAAcAGFjY2Vzc2liaWxpdHkvYXJpYS1oZWxwLWV4cGVj
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
AJ8CAAA5ABwAYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi11cGRhdGVzLWFsbGRlc2NlbmRhbnRz
LWRpZmYudHh0VVQJAANnjYFYZ42BWHV4CwABBPUBAAAEFAAAAMWQQW/CMAyF7/0VVk+bShqBtgO3
MtZJaEygFcHZNGZEMimqE0H//QLjMsGm3aZIzsHPz5+fUgr0suGwI9HP6FGXq0qvaP1q/eV7CpaN
ficmFNKMXRO88iRetSSBvWisaxKxa8vWdxpbi2prjSGnwt5glCpkNiQ1OYPOi6LjnmpPJvdHn2RZ
9g8IWPuAfAYoClDD3hCyUymKBGYOJJwNexBXwcEygxABxtpaEmg2kM5HVZVChBb8oKjcNMzNgQys
O0gXZbWA8extPi0XZZonEJ86TcAOrcvrbTyoJTdugvNgBfq/dgdX3ZGfOEPHu/79La/sZTSZ3vKS
bRM4EhL0c1ihwEP+F/HgS/x4Lf6R42rTIIZwPuIS7SYwd3NsJSYWoX0b6JTSt+CST1BLAwQUAAIA
CAAmoTNKaAqD9PwAAAC0AQAAPQAcAGFjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tdXBkYXRlcy1h
bGxkZXNjZW5kYW50cy1leHBlY3RlZC50eHRVVAkAA2eNgVhnjYFYdXgLAAEE9QEAAAQUAAAAfZDP
asMwDMbvfgqRyzbICuluu5U2h8FGA8kLaLFSGxy7WApt3n5K27E/sF2E0e/Tp09uhY5sjBCLafUN
1TPsEnAaSZyPh2tzfWliTOIowzfwdAEpEgRkuZHOeYbFUatDAT8AZo+PzltLEXqH8UCsU+oIFGik
KCVgCODljoHOnkV9VOiDzTpx8sqmo0UhdSSfv1CPvSM9YB+Bp74n5hLmNF1HmAhQa/bLugGKZtO2
BYyqQk1QwpBCSCey8D5D0dVtB9v9W/Nad3WxMsYschjRx9Xnvm2aoh7EUP0H17/hRl6ipfN99fCn
0y39MIUwN5hZQy2/mCcy5kcyYz4AUEsDBBQAAgAIACahM0qdp3P5dAgAAOcfAABBABwAYWNjZXNz
aWJpbGl0eS9hcmlhLWhpZGRlbi11cGRhdGVzLWFsbGRlc2NlbmRhbnRzLXByZXR0eS1kaWZmLmh0
bWxVVAkAA2eNgVhnjYFYdXgLAAEE9QEAAAQUAAAAzVlrc9s2Fv3uX4GxZ+tux6TejiU52klsebaz
6daz9mw+7oAkKCIGCZUAbSnb/ve9eFEkRcrqJunUGYcPXAD3ce49F/R1IlO2OLlOCI7gkhKJUZjg
XBD59ryQsXd1Dq+F3DKyOJkxmj1doNkzFVSSCP33BMGPJBvpRSTkOZaUZzOU8YzM9VDA84jkXsCl
5OkMDdYbFME9ieYnv52Y5ewiIWc8n6Gz/miqx/w7ysgtjWM7HuDwaZXzIos8JxpfqX/VjcwOgjMa
obMoisxYzDPpxTilbDtDKc+4WOPQKpjifEVB5QFJUd+8WnMwTtuREwYWPROtUDJoaDoajVrWFzgT
niA5jSuDgn4meo/qph4jsZyhvj9x7yMq1gzDIjQDz1gNX2gkE5jc7//F6oejiGarcqbRzYZG3dWj
Y9WlWQJKyVI84c8kb1g0mUzmXc4mxLjBVzH5AHsJOzlmHIMZOV0lsh45JXUD5mOwxW3FwfVUgon9
hskSB4x4IWGsZqWn16156SUB6zwdQwW1lxyvd5o9kFDFrhM0enIdMk24WMw6vwOg+uuN2WG5WUN4
YX0wjVwgX12aFnaqJ2hEgq36H2lV3zMePt3jXPpg6iymuZBemFAWdTpWbfcA8y8OLZaTFEJ78cp+
dg/nfgM4L1AiNdhNHOoALZKGmHmY0RXkhuQtZuVEIf3vOIsYce6w6ygXqueEmIDu8BwWuVChUWo3
MxAHEJ3CRQz2LIFjkkerd0iLGs734bDKyXbeAKY/eS1exsXIl/xVN/txztOGs219VHsor/+zSAOS
A5pIFV3mrVN8v4xa1E6ntQLo0qWtDLpMHo/HreWmGv2yxqiFJiYFTBqUBd/iwMKzDSJG3RqcRrZg
VQzXJrYWHEMSnW45UKTWucpOpaZ1oKsmFjXOkFquwiTPZKseAn/qR7AjJ/jJUy+MQjTFK1KLzAwN
S4cHDCsvKsEQSgPoAKrYO9S0exeVq/G0s/bGJN4VAAUrWLGkx0o2t0yN4qg+FYItusWnZDo/xOnl
SrbKVPWwWdFN11G0twCKCOueQaavatP7AT0U6zXPJTBtbpEMTk1TkkmBfujBfriQCTf+NmysmhlA
vQSchi5SeoKW6eD/UkYpgwESWtiVs0sHbFVuMGM3ToNW6aHhshRvvAa9p9AX2FfDfsk7za3B7wf3
KTO7TOnaNm16+nxNDG16LyR4otKTuUo74wmjOPKHYl4xY2yNPhMSy0K8LwLg8JIPfZU9reqoKZJz
FuC8Pu62jhnRGbobSPnn8m1ZnEYmj20fpW5dt6Duu1vCrspxsJXbwSKmG2LWsfW4XzfJx7oHMWm2
z+IvFGpB3oBaueZnj2YR2UCROmDajggrKrTZZYtRjd6ubBXLlJo2YVupCfYL+OZVRS93ig4MiB0J
mSetrL0vGcw+lgqXnVltaxrnODUaNvKk3kZUcuSmo9Lu+2YLvSZ/sVxPGDSO0DMfQUyX07sdvCwn
dwxqR9THyjYy2m+P682xXcO4bx/DnS1B5Oqs2eadKwruqNOvjj46jmycSS7fuIK2r+aBJKmcdkSK
TS9frbkZz+H1vKPKWPtVCybaNjd2uLzut4kwHBA2wzFk2MXedPNeL6IJOQNTT9Gv6HR+UhJxhb6b
sxmGDp3HntyuSetSp50aWcHGETchTBfIshnFqhnt4KizlAjhGo9OP7eFpZIdD7pQH0OFQDHQED1T
Xoib8g00s59JdlMhyzaedy1Hk2Kq5KJqOaBWI8HVdvtskWiLyMhx4FHaWGhAj0OkyokaXdi2r6Pp
q/JsUEBWZdW64/g9os+zmIfWh7yQql5U0y9ghWYSOwR4iUEXYLCBM6RKlnoV6GEeE2J26lmmXYH+
ygbJkYSxwEhbqAn0TLGqyfIniwlQNsj5CwQcOoEEw1zbFFHpqyaotGM8sV182YrYZ1cdVCOrfvt1
EnWfdJo9fkojOGUZw1SAhDt8tzAK9GFc4GfwPXiANHiletLbozpv4I9My7T7+OHYvyUGZ7e3t5WU
Pru6u72b3LXWJ2gu21G8XC7btJ6RdA0VqhZ826Y1JH24BU1rmb+cXvWvbN0KGcH5f3R74I4C6o0+
NiVK5Lpnv7pdizCna4hpHr49TaRci1mvhz/hjb/ifAWT1lQo6Op3PUYD0fv0S0HybW/gj/2hffCh
tfQ/idMFrKvXW6D6yiGPiKdiSF5A7m8QaRXMt+OryhRQyn4oDHi0hQvkA+iNhXh77k4C6nthMlj0
/g3xhJrVu8US95YfH3ofSfAPKu3lfUFZ1PsX8C4WpAdIAXd6kkCFheN7waTo4TAEdNOAMuCEHs4p
9hJAG8m8Yh2BgwVgkEVEhCSLMCSFB/1MgZkvNxK0HNSVq3wbOt8f0Wf2rvfqLI9EAs111BBRBxlU
+wakv5UCrzoJffrftRTniym4EsYXNSlI8tdlgKjPFz9nkNnaLxcIPAZZzRjUCQLUqIo9EYjH6Ltf
Ci7n9+8eHswdsswBc2Kueh7oc4KtFXtcPjyim59/uv+wfFyaV77dH4INxn6xyYP+ETZ3CGmjv7I6
g2PUGRyvjr5UlapktpLWw/uqH4c7c0x+FXcVucPGD48w/rssEOv5AQfAoX1xDybBRd8D0swTsAgU
Gf0RM1fMXACXaglakRZoYJ9+T1yPtnD0Z7Bw+C0tHP9RFr6TP6oj3veDv/7fMd1Ljjq8gc1fx7YV
OuiUA/byYzLAOAX6xsXddU9d9P27Hz+Yp9awqwGR8IJBOSVo4KOPuDJXoLFvH38XCr6utaNvZO1w
z9rJn8Da8Rda2w3412I97LD+m5LD12pKBpNjnDvpdq7qNVxjEheMbe/VH5AjROE0khfkKxP45THa
Xv5h/cSbY9R5061OrQP7Evw0LrpDh05Y/33/f1BLAwQKAAAAAAAkoTNKAAAAAAAAAAAAAAAAEgAc
AGFjY2Vzc2liaWxpdHkvbWFjL1VUCQADZI2BWO2NgVh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
I6EzShaBH1iSAQAAtwUAACYAHABhY2Nlc3NpYmlsaXR5L21hYy9hY2Nlc3NrZXktYWN0dWFsLnR4
dFVUCQADYo2BWGKNgVh1eAsAAQT1AQAABBQAAADtUstu2zAQvPsreGyBIlFatCiEoIDtuEhQuXUc
5XFdkWt7IZo0yFVcNci/ZxmpbvPqBxQ5ibszmp0lZ4tVTTwYlBhZLYAsmsHwau4t5mp4dYnVMCD0
nSOMOtCGybtcHZfTQmnvGB0LPl6RNQEFOIQQoFV+oSL9QvX+i6DHaDe5ksMMhMNC2mkn+EyIufp+
1n1vPmfZO/Upy24FKomTFTk9mC71BdimQ7563UQ0ucqkmDiobCoOpLgkZ/z2yTi0qBlNiT95CqHG
MAe3FK03rrH2bWIwBP4DPxaYOPMyeEGR+LebglyN5vxkYnEti8cn15P9baj7Z2S9rk8bz1jgNdqu
WfrNfbWTejy2kBUaWPZ39WN6YoREC0oGu87YQowFRX7eRLL6D6MH9xwPZrcatL7hsW+Slw89SG45
C34ZMIpCtvdR2ufzIlcdOYUs7oPWAlNFlrjdX4PuOzW2eyte25QmiQmPgt9GEdy9aJo6C3ILjr9h
W3kIRtaapPqI4gZYr/oMdEuMmtimxuA10a+J/r8SfQdQSwMEFAACAAgAI6EzSlUyVKLwAQAA8wYA
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
+f95j/yW/si6TPE12ZRFtoai2eMyfczs3I85nHsHUEsDBBQAAgAIACOhM0rJhJ++MQEAABADAAAv
ABwAYWNjZXNzaWJpbGl0eS9tYWMvYXJlYS13aXRoLWFyaWEtbGFiZWwtZGlmZi50eHRVVAkAA2KN
gVhijYFYdXgLAAEE9QEAAAQUAAAAvVFNS8NAEL3nVwy99JBu9uJBPLW2EcRqgy3W6ySZ2oVptuzM
2ubfm5SCVPAiKguzMB/vvZlnjAH74jnuSOwMFW2+Xto1lQ9Oz99tdFzbZ2JCIcvY+qhGSdQEksgq
FquKRFzp2Glrd1hZDITm4HRrMDg0jCWxoeOeKqU606MmaZr+GzFWGpFPtOMxmKvRNaR9GI8TWDQg
8QQzgo4ADo4ZhAiwi8GRgN/AoJgslwPopAq+Ude58cz+QDWULQxW+XIF08VjMc9X+SBLoHumn4AL
fVPfaOjmKGQbX0WhOmfaUaNZTVIFt1fnG3ACw8nr7DNzA0Wgd+ejDH8V9YmOOkzSu8n9/CeIsvWR
u/0JvlGbwRrlazH7A8J+kW/I4HSvs7+byNwWGDr8/h4aIvVWXbiXfABQSwMEFAACAAgAI6EzSh3d
ZuzIAAAAYQEAADMAHABhY2Nlc3NpYmlsaXR5L21hYy9hcmVhLXdpdGgtYXJpYS1sYWJlbC1leHBl
Y3RlZC50eHRVVAkAA2KNgVhijYFYdXgLAAEE9QEAAAQUAAAArY+xTsNgDIT3/ymsLF0gD8BWlWxA
IyUDq5M41MLNX9n+CXl7XKiE2FluON19uoPUn9jAyTz0hA6ojPeCAwmsWd8N8hIeIZDQmRa3OqXj
AlbGkczuYMsFVhYBIwIMVaYozVC1+66r4BwpfKNIzlkkrzTBsEHVN10Ph+Nz+9T0TRXMdI0DflN5
YGHfDnlxjRJpPeexGE3Nz4Z6IhuVL84xLubv9q+Pv84DtEofnIvt/hP6Qp9+A97Oz0Vka1GDcS24
Fkrpz7GUvgBQSwMEFAACAAgAI6EzSsDcGOd3CAAAJR8AADcAHABhY2Nlc3NpYmlsaXR5L21hYy9h
cmVhLXdpdGgtYXJpYS1sYWJlbC1wcmV0dHktZGlmZi5odG1sVVQJAANijYFYYo2BWHV4CwABBPUB
AAAEFAAAAN1ZbW/juBH+nl9BJOgGOESSndg5v2Rd7CYOWnTvLmiCbr8VlERZ3FCiT6QSe9v+9w7f
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
emv6/2/ILxbbJ+9QsrXxHs3naXwuvcvkTnB774dSm/ztqFs45nqKxvoJ5rMsxlEztV4MsuAPUEsD
BBQAAgAIACShM0qdkOs2PQEAABkDAAA/ABwAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1ncmlkLXdp
dGgtc3RyYW5nZS1oaWVyYXJjaHktZXhwZWN0ZWQudHh0VVQJAANjjYFYY42BWHV4CwABBPUBAAAE
FAAAAL1STUvDQBA9Z3/FkEsUpFgQD72F0ENBbWiCeF2302Rhs1tmd0nzb/wt/jIntSp+VUHw8nZg
33vzBt7jQ3IjO0xqzVC6bTSSdBiSkrRCMU1q9OENRN1qD4EnxlYGkBby1SKHhvQaeh1akNBqJEmq
HZ4purGO0AOhXSMBGuzQsl5buMfQI1oWGgM+jIi7rfPISgTliFCFV8VEiKUFH5VC789gcPEgROSt
HknzFreBtMyrKoWOWbJBZm6cMa7HNdwPkNbzqoZieV1ezet5yp5ipO8PmKhWmzXnLFy0HNzD5cfP
PCz4it3J+emEnMGRk+V3Kx5nML599p1i+qWicCZ2Njuy5lOmi5/IxzMWaEz2vxa/sKyCDFrVuAt/
MfaBtG1upYkv/vt5BtOD66E8m2jMUEry3ImxzxRRiHfFEOIJUEsDBBQAAgAIACShM0oEFDy3SQkA
AAAsAABDABwAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1ncmlkLXdpdGgtc3RyYW5nZS1oaWVyYXJj
aHktcHJldHR5LWRpZmYuaHRtbFVUCQADY42BWGONgVh1eAsAAQT1AQAABBQAAADtWltz27gVfvev
wMTTuN0xKcmSHEt23HF8aXea7XrWnk3fOiAJiohBQguAtpW2/70HF1IkRUryxnH8sMnEJHE95zu3
D4hPEpWy052ThOAIHilRGIUJFpKo93u5ir2jPWiWasHI6c6U0exuH03vqaSKROg/Owj+KPKovIiE
XGBFeTZFGc/IsekKuIiI8AKuFE+naDB/RBG8k+h45387djm3SMgZF1O02x9OTJ9/RRm5oHHs+gMc
3s0Ez7PIK4bGR/pvdSO7g+SMRmg3iiLbF/NMeTFOKVtMUcozLuc4dAKmWMwoiDwgKerbpjkH5Ywe
gjDQ6J4YgZJBQ9LhcNiyvsSZ9CQRNK50SvqFmD2qm3qMxGqK+v64aI+onDMMi9AMkHESPtBIJTC5
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
vTYBt0KT6kQHTnWbWY4btBbbNbDxLbiQhZZm8vTqpKcf5v3sx4/2q5Xi6A6Z8JwBpybo0EefcGWu
REPffT7Jl55V2clXKrsSY0udKzO1+vazznJ0i0ZFomX7rf7v/u8PTAc5ejoygycj46hOGzh/Ezyf
vwJwBs/nNmtjZrQSM4evQPuDZ9b+9weRqeptjgLR9QqAGv4B1HZAjb4dUF8JXIUBtcGncX0F+I1f
Dr8aHdoIY8mCquC5xg7cvum90XPdVQ62ubkbrLm601eQxX1lnDO2uNa/WRohKpESOXnem73BNld7
g3cvddE42Oa6bbCGh9YuZr/GfxoPc3V/0rO/+Pt/UEsDBBQAAgAIACShM0rMJbdL+QAAALcBAAA8
ABwAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1saXZlcmVnaW9uLW1hcnF1ZWUtZGVmYXVsdC1hY3R1
YWwudHh0VVQJAANkjYFYZI2BWHV4CwABBPUBAAAEFAAAALVRzWrDMAy++ylELm1hDWxvEEoGhYyW
NWy7KoncGJSYWfJK3n5qtx72ALt8FrL4fqQJ02cmenTTT/Hk2jEIKIkajqgGBL+fkCITjCi3Zh9T
ol5hII+ZFTAF3HL4IhBFzQLr6P2mdO4wg+S+J5EHWGKGS2AGMTo0TIEEoofiWJ1OBUw2hWeySR+Z
44UG6BYo2vrUwu7wcmzqti6M0z1X+wbwxhq6wEGXXZzVDDKl0sc+Cw0100SzlqIpzOdK7emy0hty
pvWq+qhe91VjhlcbkDFmNi0yL76Ed8tY/p8GigVX696VruHvS/KZeTliMnK4niJlcu7PApz7BlBL
AwQUAAIACAAkoTNKwUidgDwBAAAoAwAAOgAcAGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbGl2ZXJl
Z2lvbi1tYXJxdWVlLWRlZmF1bHQtZGlmZi50eHRVVAkAA2SNgVhkjYFYdXgLAAEE9QEAAAQUAAAA
xVFNS8NAEL3nVwy9VEk3exI8NtYIYsXSFut1kkzqwjSrO7O2/fduigreLbIww8DO+5hnjAH77Dnu
SOwtKtpqs7Ibqh+cfrWb6Li1S2JCIct49FGNkqgJJJFVLDYNibjasdOj3WFjMTg07D4o0Nb53uww
vEci01KHacXQ4Y0apbbQg2Z5nv+HBmw0Ip8UTKdgribXkA9lOs3gqQeJJ8QJJC7YO2YQIsBUgyMB
38FoUa5WI0iqBbeUfnae2e+phfoIo3W1WsPs6XExr9bVqMggPTNswC+pM99rSHsUis43UaitmHbU
ayEaXL8tNbU6Kj0jR7oYly/l8r6cJ1vjS3ACY99147MAoySrOsxZflfez/8QXl595HQmSmfsCtig
QHFGkh8n31RwOtdXwl1kPi4wJPTBt4ZIQ1i/8ss+AVBLAwQUAAIACAAkoTNK7zZYw+0AAACfAQAA
PgAcAGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbGl2ZXJlZ2lvbi1tYXJxdWVlLWRlZmF1bHQtZXhw
ZWN0ZWQudHh0VVQJAANkjYFYZI2BWHV4CwABBPUBAAAEFAAAALWQQWrDMBBF9zrF4I0TaA3tDUzw
opASU5vS7dgZxYKxRTWjBt++4ySbHqCbP5Lm8/hfM6bvTPTi5vvh1fVTEFASNZ1QTQgeS0iRCSaU
2+MYU6JR4UweMytgCvjM4YdAFDUL7KL3+8q50wKSx5FEnmCNGa6BGcRwaJoCCUQPRVt3XQGzufBC
5vSROV7pDMMKRd90PRxO7+2x6ZvCmG6zA96oYQgcdD3ERS0gU6p8HLPQuWGaadFKNIXlUquNISt9
ImfalfVX/fFWHy1wuQfrXFrc8j+4KFZTt/ud/vgMn5nXFpMBN5umTM79KercL1BLAwQUAAIACAAk
oTNKJFxckJIIAABUHwAAQgAcAGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbGl2ZXJlZ2lvbi1tYXJx
dWVlLWRlZmF1bHQtcHJldHR5LWRpZmYuaHRtbFVUCQADZI2BWGSNgVh1eAsAAQT1AQAABBQAAADd
WW1v47gR/p5fQSTopj1Ekp3E2djOusgmDnroXi+4BLf9VlASZXFDiT6RSuxt+987fJMlWbJ9uL0C
7R72JJFDcl6emWfovUllxmZHNynBMTwyIjGKUlwIIj+cljLxrk9hWMg1I7OjCaP5yxmavFJBJYnR
P48Q/JFkJb2YRLzAkvJ8gnKek6meCnkRk8ILuZQ8m6DhcoVieCfx9OjfR2Y7u0nEGS8m6GRwMdZz
/gNl5J4miZ0PcfSyKHiZx54TTa7Vf/WDzAmCMxqjkziOzVzCc+klOKNsPUEZz7lY4sgqmOFiQUHl
IcnQwAwtORin7SgIA4teiVYoHbY0vbi46Nhf4Fx4ghQ0qU0K+pXoM+qHeowkcoIG/siNx1QsGYZN
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
AABGAAAAOwAcAGNvbXBvc2l0aW5nL2lmcmFtZXMvb3ZlcmxhcHBlZC1uZXN0ZWQtaWZyYW1lcy1j
cmFzaC1sb2cudHh0VVQJAAPAjYFYwI2BWHV4CwABBPUBAAAEFAAAAPPLV0guSizOUMjJT1dIyy/N
SwGSRQrJ+bl6iQUFOal64alJ3pklIMo5P68kNa9EzyW1LDUnvyAXyLYyM7YwM9TjAgBQSwMECgAA
AAAAS6EzSgAAAAAAAAAAAAAAABsAHABjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9VVAkAA66N
gVjtjYFYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAGuhM0raIQ5kokAAAE3jAABBABwAY29tcG9z
aXRpbmcvbGF5ZXItY3JlYXRpb24vZml4ZWQtb3ZlcmxhcC1leHRlbnQtcnRsLWNyYXNoLWxvZy50
eHRVVAkAA+qNgViujYFYdXgLAAEE9QEAAAQUAAAA7Fzrc5vIsv98+Svmw60tOQnyPHhXbk4hJLI+
69e1lGRvbW1RPIaYYwm0gBJ7//rbA3oAwo7Jus5u1Z5UxcJi6P51T7+mZ/B1noW8KCzU/hdmq7G/
Xi/5+BMPfkpK8eFkacnTcjzlX/gyW6/gGv2iMYMov0rXfnnbpQH/Tj9my82KF6cfr84/XMxOX51u
ycW5v+Jfs/zu9CPPiyRLi1P79OdrZ87zLwkAOn0KwP06PN1eF6cXfng1P30mXuksgp9JnPDc+g5x
pS3YrqQaVl6jEfwck7H6+kRysoijxcOatwf+bGiypqDRpV8mX/gJKC0XOrzuTME//vEP9Av5VfpQ
8BydTbvMVEwkaeqX/HSRrDocKCa6jIlMTLi0sGlhY8woQzI2MJau5qhPANAggls/I4LHhIw1NCLq
e0IJPZFu+DrLy6OnCJHsNEsfVtmmQB8+NDBOmD1jJiGyquuOPKWaKjt4qsi6rhi6qtgaNlVJkgRy
ZH/17ziaJ2nI0STLSgtpgBKjgodZGhWSNH8oSr5CZzAPn/OkfBCaKnlYVlB46gdLHkmSk/vFLY/Q
4jbnfrRHYiJUTWIOKpqHebZcJulnSZrdh3wtKLTnZ/az403sqWc7zmw+R6P52fv57P3Hk8Z4Man7
SfppdnPpnV1+tM/P4KHp9EY85ZcI3+POvwaFS0Df4uhc3VzPZ97l1eLM/T9J+niBbvhn4Qzokvs5
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
ZW50LWZpeGVkLXJlZ2lvbi1zY3JvbGxlZC1jcmFzaC1sb2cudHh0VVQJAAO/jYFYv42BWHV4CwAB
BPUBAAAEFAAAAPPLV0guSizOUMjJT1dIyy/NSwGSRQrJ+bl6iQUFOal64alJ3pklIMo5P68kNa9E
zyW1LDUnvyAXyLYyM7awMNTjAgBQSwMECgAAAAAAVKEzSgAAAAAAAAAAAAAAABAAHABjb21wb3Np
dGluZy9ydGwvVVQJAAPAjYFY7Y2BWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABUoTNKakv4w0MA
AABGAAAAMAAcAGNvbXBvc2l0aW5nL3J0bC9ydGwtZml4ZWQtb3ZlcmZsb3ctY3Jhc2gtbG9nLnR4
dFVUCQADwI2BWMCNgVh1eAsAAQT1AQAABBQAAADzy1dILkoszlDIyU9XSMsvzUsBkkUKyfm5eokF
BTmpeuGpSd6ZJSDKOT+vJDWvRM8ltSw1J78gF8i2MjO2NDbR4wIAUEsDBAoAAAAAACmhM0oAAAAA
AAAAAAAAAAAHABwAY3J5cHRvL1VUCQADbo2BWO2NgVh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAA
KaEzSgAAAAAAAAAAAAAAAA4AHABjcnlwdG8vc3VidGxlL1VUCQADbY2BWO2NgVh1eAsAAQT1AQAA
BBQAAABQSwMECgACAAAAKaEzSiXg0wgsAAAALAAAAD4AHABjcnlwdG8vc3VidGxlL3JzYS1nZW5l
cmF0ZS1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUCQADbY2BWG2NgVh1eAsA
AQT1AQAABBQAAABDb3VsZCBub3QgZ2VuZXJhdGUgYSBrZXkgcGFpciwgc3RhdHVzIC00MzA0ClBL
AwQUAAIACAApoTNKMDu4sUsAAABoAAAAPAAcAGNyeXB0by9zdWJ0bGUvcnNhLWltcG9ydC1rZXkt
bWFsZm9ybWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUCQADbY2BWG2NgVh1eAsAAQT1AQAABBQA
AABty7ENgDAMRNGeKW4fGlawZEuxgDhyLkRsDw0d9X9/S7+Eht3ujuksMQhRdXpUOaBCgaShBtFH
a5E0XdaP44w3skgFZ6Cln9Z/hgdQSwMECgAAAAAAKaEzSgAAAAAAAAAAAAAAAA8AHABjcnlwdG8v
d29ya2Vycy9VVAkAA26NgVjtjYFYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAACmhM0oAAAAAAAAA
AAAAAAAWABwAY3J5cHRvL3dvcmtlcnMvc3VidGxlL1VUCQADbo2BWO2NgVh1eAsAAQT1AQAABBQA
AABQSwMECgACAAAAKaEzSiXg0wgsAAAALAAAADEAHABjcnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNh
LWdlbmVyYXRlLWtleS1zdGRlcnIudHh0VVQJAANujYFYbo2BWHV4CwABBPUBAAAEFAAAAENvdWxk
IG5vdCBnZW5lcmF0ZSBhIGtleSBwYWlyLCBzdGF0dXMgLTQzMDQKUEsDBAoAAAAAAE2hM0oAAAAA
AAAAAAAAAAAHABwAY3NzMi4xL1VUCQADsY2BWO2NgVh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
TaEzSkFpZSahAAAALAEAACoAHABjc3MyLjEvdDEwMDEtYWJzLXBvcy1jYi0wMS1iLWNyYXNoLWxv
Zy50eHRVVAkAA7GNgVixjYFYdXgLAAEE9QEAAAQUAAAAxY6xDoIwFAB3v+JtTrSARhJWwUWiSRPj
YAwp5QlNoI+8Fg1/L36Fy92NVyp1VTmctB2whUDAqFvYyptH9rKZ7dA2FGRlG9a8yIo6LwurO0c+
WKNwIg5eGhqFnqYBxR2bsw0/HckFdEEU+MaBpnHtOo2TLIqTKDmsTHfpvsaPT+JMGNa+3+bwKJkd
QfqEC4GfTQ+vdQyIobWMJhAv+b/uNl9QSwMECgAAAAAATaEzSgAAAAAAAAAAAAAAAAUAHABjc3Mz
L1VUCQADsY2BWO2NgVh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAATaEzSgAAAAAAAAAAAAAAAA4A
HABjc3MzL2JsZW5kaW5nL1VUCQADsY2BWO2NgVh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgATaEz
SkFpZSahAAAALAEAAEEAHABjc3MzL2JsZW5kaW5nL2VmZmVjdC1iYWNrZ3JvdW5kLWJsZW5kLW1v
ZGUtc3RhY2tpbmctY3Jhc2gtbG9nLnR4dFVUCQADsY2BWLGNgVh1eAsAAQT1AQAABBQAAADFjrEO
gjAUAHe/4m1OtIBGElbBRaJJE+NgDCnlCU2gj7wWDX8vfoXL3Y1XKnVVOZy0HbCFQMCoW9jKm0f2
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
2s+QlKEpyfSD/Tg6edFrwVmrtU4rAgtxjrlnUcVUYE/sgN6YZtunkc3PlB0uVk/pLS4vLPXlvcAq
Lhec+0/RIrkAmwErcvrfyMfOsbkmXhm0k/r8bFHNvdhL9K12E9+7ORsNStLB3nWdkLqu9q0ojmjr
V9+XZjptSB/JEvt+DntVIbY35wf0iz5URemkgex2a2pezX1beFgRl9NefOCLFKHVrIiL8ztTEXqn
LKI04PPi7F6qWnGZ9zzGT7zdGWrLt9coIZGH+fbpUHvm+aXJAfpmPwLfyWagAr4F3uYFYmXcII8L
ByRSHb1zLeIyeRcnCzvEsSvHZO6FwcDHNvERHyh5Btbb1/fVCKxmEEdqtEYa/OnwZ0Tra3TgdLqs
Eg7mcAXtIkhnY5jAn3XWO4XXorNps1ZS+K5Oq7gJZ8i+ysoGuXH8z5kfYgo+P7xLiU/ebParHzpf
3x3Y/xuOU5QsQAz33Sk2nWSSqirn0Eg91j7xArm3vuzQfYJji3Tp3735f1BLAwQKAAAAAABRoTNK
AAAAAAAAAAAAAAAADQAcAGRpc3BsYXlsaXN0cy9VVAkAA7qNgVjtjYFYdXgLAAEE9QEAAAQUAAAA
UEsDBBQAAgAIAFGhM0qjV/3oUAAAAI4AAAAyABwAZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRl
cy10cmFuc2Zvcm1zLXN0ZGVyci50eHRVVAkAA7qNgVi6jYFYdXgLAAEE9QEAAAQUAAAAcy9KLMjI
TC52zs8rSa0osbJKTy1xDvHV0FTILFbIyy9RqEwtUUjOzy1ILMlMyklVKM8syVAoSk3OL0rJzEsH
yoC1FetxuaMbVIxmEDGGAABQSwMEFAACAAgAUaEzSvKWldVHAAAASQAAACkAHABkaXNwbGF5bGlz
dHMvbGF5ZXItZGlzcGF5LWxpc3Qtc3RkZXJyLnR4dFVUCQADuo2BWLqNgVh1eAsAAQT1AQAABBQA
AABzL0osyMhMLnbOzytJrSixskpPLXEO8dXQVMgsVsjLL1GoTC1RSM7PLUgsyUzKSVUozyzJUChK
Tc4vSsnMSwfKgLUV63EBAFBLAwQUAAIACABVoTNK3ajRocICAABaCAAADQAcAGVycm9yX2xvZy50
eHRVVAkAA8GNgVhnjYFYdXgLAAEE9QEAAAQUAAAAxVVdT9swFH3fr7jqC5u0xEk/07yxwka3whAt
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
HgMKAAIAAAAioTNKLmXUsAcAAAAHAAAAFQAYAAAAAAABAAAApIGePgEAX3dwdF9jZXJ0cy9zZXJp
YWwub2xkVVQFAANgjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAIKEzSgAAAAAAAAAAAAAA
AA4AGAAAAAAAAAAAAKSB9D4BAGFjY2Vzc19sb2cudHh0VVQFAANcjYFYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAJqEzSgAAAAAAAAAAAAAAAA4AGAAAAAAAAAAQAO1BPD8BAGFjY2Vzc2liaWxp
dHkvVVQFAANnjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAI6EzSnBjSkAJAQAA2gEAAD0A
GAAAAAAAAQAAAKSBhD8BAGFjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS1ub2RlLW1lbW9yeS1t
YW5hZ2VtZW50LWFjdHVhbC50eHRVVAUAA2KNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAj
oTNKFU07DEcBAAAlAwAAOwAYAAAAAAABAAAApIEEQQEAYWNjZXNzaWJpbGl0eS9hY2Nlc3NpYmls
aXR5LW5vZGUtbWVtb3J5LW1hbmFnZW1lbnQtZGlmZi50eHRVVAUAA2KNgVh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAjoTNKTqtOreUAAACRAQAAPwAYAAAAAAABAAAApIHAQgEAYWNjZXNzaWJp
bGl0eS9hY2Nlc3NpYmlsaXR5LW5vZGUtbWVtb3J5LW1hbmFnZW1lbnQtZXhwZWN0ZWQudHh0VVQF
AANijYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAI6EzShMp+outCAAAtyAAAEMAGAAAAAAA
AQAAAKSBHkQBAGFjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS1ub2RlLW1lbW9yeS1tYW5hZ2Vt
ZW50LXByZXR0eS1kaWZmLmh0bWxVVAUAA2KNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAj
oTNKTG+E8SkBAABcAgAANAAYAAAAAAABAAAApIFITQEAYWNjZXNzaWJpbGl0eS9hY2Nlc3NpYmls
aXR5LW5vZGUtcmVwYXJlbnQtYWN0dWFsLnR4dFVUBQADYo2BWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIACOhM0oxFodtUAEAAJMDAAAyABgAAAAAAAEAAACkgd9OAQBhY2Nlc3NpYmlsaXR5L2Fj
Y2Vzc2liaWxpdHktbm9kZS1yZXBhcmVudC1kaWZmLnR4dFVUBQADYo2BWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIACOhM0qA7vj8BgEAAPcBAAA2ABgAAAAAAAEAAACkgZtQAQBhY2Nlc3NpYmls
aXR5L2FjY2Vzc2liaWxpdHktbm9kZS1yZXBhcmVudC1leHBlY3RlZC50eHRVVAUAA2KNgVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAjoTNKjrMzNr8IAADfIgAAOgAYAAAAAAABAAAApIERUgEA
YWNjZXNzaWJpbGl0eS9hY2Nlc3NpYmlsaXR5LW5vZGUtcmVwYXJlbnQtcHJldHR5LWRpZmYuaHRt
bFVUBQADYo2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACOhM0oQlmGL1gAAADYBAAA2ABgA
AAAAAAEAAACkgURbAQBhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHktb2JqZWN0LWRldGFjaGVk
LWFjdHVhbC50eHRVVAUAA2KNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAjoTNKoUKMRwQB
AAAZAgAANAAYAAAAAAABAAAApIGKXAEAYWNjZXNzaWJpbGl0eS9hY2Nlc3NpYmlsaXR5LW9iamVj
dC1kZXRhY2hlZC1kaWZmLnR4dFVUBQADYo2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACOh
M0q15y4vwwAAACMBAAA4ABgAAAAAAAEAAACkgfxdAQBhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxp
dHktb2JqZWN0LWRldGFjaGVkLWV4cGVjdGVkLnR4dFVUBQADYo2BWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIACOhM0paexKyNggAAFAcAAA8ABgAAAAAAAEAAACkgTFfAQBhY2Nlc3NpYmlsaXR5
L2FjY2Vzc2liaWxpdHktb2JqZWN0LWRldGFjaGVkLXByZXR0eS1kaWZmLmh0bWxVVAUAA2KNgVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAkoTNKXZ1p0sgAAAAtAgAALgAYAAAAAAABAAAApIHd
ZwEAYWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNrYm94LWNoZWNrZWQtYWN0dWFsLnR4dFVUBQADY42B
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACShM0riEgVE1AAAAA4DAAAsABgAAAAAAAEAAACk
gQ1pAQBhY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtY2hlY2tlZC1kaWZmLnR4dFVUBQADY42B
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACShM0q1b1sLtgAAAOEBAAAwABgAAAAAAAEAAACk
gUdqAQBhY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtY2hlY2tlZC1leHBlY3RlZC50eHRVVAUA
A2ONgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAkoTNKc51saEIIAABTJgAANAAYAAAAAAAB
AAAApIFnawEAYWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNrYm94LWNoZWNrZWQtcHJldHR5LWRpZmYu
aHRtbFVUBQADY42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACShM0rD/InutAAAACkBAAAr
ABgAAAAAAAEAAACkgRd0AQBhY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtdGV4dC1hY3R1YWwu
dHh0VVQFAANjjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJKEzSjP9gKv1AAAANwIAACkA
GAAAAAAAAQAAAKSBMHUBAGFjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC10ZXh0LWRpZmYudHh0
VVQFAANjjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJKEzSgoaGrW9AAAANAEAAC0AGAAA
AAAAAQAAAKSBiHYBAGFjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC10ZXh0LWV4cGVjdGVkLnR4
dFVUBQADY42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACShM0rZHY3mJggAAKIeAAAxABgA
AAAAAAEAAACkgax3AQBhY2Nlc3NpYmlsaXR5L2FyaWEtY2hlY2tib3gtdGV4dC1wcmV0dHktZGlm
Zi5odG1sVVQFAANjjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJKEzShBgohXZAAAAagEA
ACYAGAAAAAAAAQAAAKSBPYABAGFjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC1hY3R1YWwudHh0
VVQFAANjjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJKEzSljry6sIAQAAHwIAACQAGAAA
AAAAAQAAAKSBdoEBAGFjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC1kaWZmLnR4dFVUBQADY42B
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACShM0okS38S1wAAAGcBAAAoABgAAAAAAAEAAACk
gdyCAQBhY2Nlc3NpYmlsaXR5L2FyaWEtY29tYm9ib3gtZXhwZWN0ZWQudHh0VVQFAANjjYFYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJKEzSlR8Ek9GCAAAjR8AACwAGAAAAAAAAQAAAKSBFYQB
AGFjY2Vzc2liaWxpdHkvYXJpYS1jb21ib2JveC1wcmV0dHktZGlmZi5odG1sVVQFAANkjYFYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJKEzSuqO28f8AAAAzwEAADAAGAAAAAAAAQAAAKSBwYwB
AGFjY2Vzc2liaWxpdHkvYXJpYS1jb250cm9scy13aXRoLXRhYnMtYWN0dWFsLnR4dFVUBQADZI2B
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACShM0rBRWLl+wAAAAMCAAAuABgAAAAAAAEAAACk
gSeOAQBhY2Nlc3NpYmlsaXR5L2FyaWEtY29udHJvbHMtd2l0aC10YWJzLWRpZmYudHh0VVQFAANk
jYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJKEzShf3IK7nAAAAvAEAADIAGAAAAAAAAQAA
AKSBio8BAGFjY2Vzc2liaWxpdHkvYXJpYS1jb250cm9scy13aXRoLXRhYnMtZXhwZWN0ZWQudHh0
VVQFAANkjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJaEzStqdm2spCAAATBwAADYAGAAA
AAAAAQAAAKSB3ZABAGFjY2Vzc2liaWxpdHkvYXJpYS1jb250cm9scy13aXRoLXRhYnMtcHJldHR5
LWRpZmYuaHRtbFVUBQADZY2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACWhM0ohuTENKwEA
ANwDAAAlABgAAAAAAAEAAACkgXaZAQBhY2Nlc3NpYmlsaXR5L2FyaWEtY3VycmVudC1hY3R1YWwu
dHh0VVQFAANljYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJaEzSvF5eiEgAQAAsQQAACMA
GAAAAAAAAQAAAKSBAJsBAGFjY2Vzc2liaWxpdHkvYXJpYS1jdXJyZW50LWRpZmYudHh0VVQFAANl
jYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJaEzSmYgBNv7AAAA7wIAACcAGAAAAAAAAQAA
AKSBfZwBAGFjY2Vzc2liaWxpdHkvYXJpYS1jdXJyZW50LWV4cGVjdGVkLnR4dFVUBQADZY2BWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACWhM0qIR8xWrAgAAMArAAArABgAAAAAAAEAAACkgdmd
AQBhY2Nlc3NpYmlsaXR5L2FyaWEtY3VycmVudC1wcmV0dHktZGlmZi5odG1sVVQFAANljYFYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJaEzSg93BPl9AAAAtQAAADIAGAAAAAAAAQAAAKSB6qYB
AGFjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmliZWRieS1vbi1pbnB1dC1hY3R1YWwudHh0VVQFAANl
jYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJaEzSphKtT/hAAAAEQIAADAAGAAAAAAAAQAA
AKSB06cBAGFjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmliZWRieS1vbi1pbnB1dC1kaWZmLnR4dFVU
BQADZY2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACWhM0ortFXjgwAAAA0BAAA0ABgAAAAA
AAEAAACkgR6pAQBhY2Nlc3NpYmlsaXR5L2FyaWEtZGVzY3JpYmVkYnktb24taW5wdXQtZXhwZWN0
ZWQudHh0VVQFAANljYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJaEzSkIvOdDTBwAA9xkA
ADgAGAAAAAAAAQAAAKSBD6oBAGFjY2Vzc2liaWxpdHkvYXJpYS1kZXNjcmliZWRieS1vbi1pbnB1
dC1wcmV0dHktZGlmZi5odG1sVVQFAANljYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJaEz
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
ZGRlbi11cGRhdGVzLWFsbGRlc2NlbmRhbnRzLWFjdHVhbC50eHRVVAUAA2eNgVh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAmoTNKif5/YCkBAACfAgAAOQAYAAAAAAABAAAApIH75wEAYWNjZXNz
aWJpbGl0eS9hcmlhLWhpZGRlbi11cGRhdGVzLWFsbGRlc2NlbmRhbnRzLWRpZmYudHh0VVQFAANn
jYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJqEzSmgKg/T8AAAAtAEAAD0AGAAAAAAAAQAA
AKSBl+kBAGFjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tdXBkYXRlcy1hbGxkZXNjZW5kYW50cy1l
eHBlY3RlZC50eHRVVAUAA2eNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAmoTNKnadz+XQI
AADnHwAAQQAYAAAAAAABAAAApIEK6wEAYWNjZXNzaWJpbGl0eS9hcmlhLWhpZGRlbi11cGRhdGVz
LWFsbGRlc2NlbmRhbnRzLXByZXR0eS1kaWZmLmh0bWxVVAUAA2eNgVh1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAAAkoTNKAAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA7UH58wEAYWNjZXNzaWJpbGl0
eS9tYWMvVVQFAANkjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAI6EzShaBH1iSAQAAtwUA
ACYAGAAAAAAAAQAAAKSBRfQBAGFjY2Vzc2liaWxpdHkvbWFjL2FjY2Vzc2tleS1hY3R1YWwudHh0
VVQFAANijYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAI6EzSlUyVKLwAQAA8wYAACQAGAAA
AAAAAQAAAKSBN/YBAGFjY2Vzc2liaWxpdHkvbWFjL2FjY2Vzc2tleS1kaWZmLnR4dFVUBQADYo2B
WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAACOhM0qDNqAlFQAAABUAAAAoABgAAAAAAAEAAACk
gYX4AQBhY2Nlc3NpYmlsaXR5L21hYy9hY2Nlc3NrZXktZXhwZWN0ZWQudHh0VVQFAANijYFYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAI6EzSloSC0ILCgAAN0UAACwAGAAAAAAAAQAAAKSB/PgB
AGFjY2Vzc2liaWxpdHkvbWFjL2FjY2Vzc2tleS1wcmV0dHktZGlmZi5odG1sVVQFAANijYFYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAI6EzSjgGuN7WAAAAlwEAADEAGAAAAAAAAQAAAKSBbQMC
AGFjY2Vzc2liaWxpdHkvbWFjL2FyZWEtd2l0aC1hcmlhLWxhYmVsLWFjdHVhbC50eHRVVAUAA2KN
gVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAjoTNKyYSfvjEBAAAQAwAALwAYAAAAAAABAAAA
pIGuBAIAYWNjZXNzaWJpbGl0eS9tYWMvYXJlYS13aXRoLWFyaWEtbGFiZWwtZGlmZi50eHRVVAUA
A2KNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAjoTNKHd1m7MgAAABhAQAAMwAYAAAAAAAB
AAAApIFIBgIAYWNjZXNzaWJpbGl0eS9tYWMvYXJlYS13aXRoLWFyaWEtbGFiZWwtZXhwZWN0ZWQu
dHh0VVQFAANijYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAI6EzSsDcGOd3CAAAJR8AADcA
GAAAAAAAAQAAAKSBfQcCAGFjY2Vzc2liaWxpdHkvbWFjL2FyZWEtd2l0aC1hcmlhLWxhYmVsLXBy
ZXR0eS1kaWZmLmh0bWxVVAUAA2KNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAjoTNKk9RT
QdcAAABVAQAAKwAYAAAAAAABAAAApIFlEAIAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1kaXJlY3Rv
cnktYWN0dWFsLnR4dFVUBQADYo2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACOhM0p/c5Df
KAEAAFgCAAApABgAAAAAAAEAAACkgaERAgBhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWRpcmVjdG9y
eS1kaWZmLnR4dFVUBQADYo2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACOhM0pIQk5dwgAA
ACEBAAAtABgAAAAAAAEAAACkgSwTAgBhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWRpcmVjdG9yeS1l
eHBlY3RlZC50eHRVVAUAA2KNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAkoTNKOYYBY3sI
AAB3HgAAMQAYAAAAAAABAAAApIFVFAIAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1kaXJlY3Rvcnkt
cHJldHR5LWRpZmYuaHRtbFVUBQADY42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACShM0pN
B2r0FgEAALQCAAA5ABgAAAAAAAEAAACkgTsdAgBhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWV4cGFu
ZGVkLXN0YW5kYXJkLWl0ZW1zLWFjdHVhbC50eHRVVAUAA2ONgVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAkoTNKdG0/JncBAAD3BAAANwAYAAAAAAABAAAApIHEHgIAYWNjZXNzaWJpbGl0eS9t
YWMvYXJpYS1leHBhbmRlZC1zdGFuZGFyZC1pdGVtcy1kaWZmLnR4dFVUBQADY42BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIACShM0pfOtX79gAAAEMCAAA7ABgAAAAAAAEAAACkgawgAgBhY2Nl
c3NpYmlsaXR5L21hYy9hcmlhLWV4cGFuZGVkLXN0YW5kYXJkLWl0ZW1zLWV4cGVjdGVkLnR4dFVU
BQADY42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACShM0pjD3JP8AgAAJMlAAA/ABgAAAAA
AAEAAACkgRciAgBhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWV4cGFuZGVkLXN0YW5kYXJkLWl0ZW1z
LXByZXR0eS1kaWZmLmh0bWxVVAUAA2ONgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAkoTNK
6KmxK2cBAADOAwAAPQAYAAAAAAABAAAApIGAKwIAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1ncmlk
LXdpdGgtc3RyYW5nZS1oaWVyYXJjaHktYWN0dWFsLnR4dFVUBQADY42BWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIACShM0qSVeIyswEAADUGAAA7ABgAAAAAAAEAAACkgV4tAgBhY2Nlc3NpYmls
aXR5L21hYy9hcmlhLWdyaWQtd2l0aC1zdHJhbmdlLWhpZXJhcmNoeS1kaWZmLnR4dFVUBQADY42B
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACShM0qdkOs2PQEAABkDAAA/ABgAAAAAAAEAAACk
gYYvAgBhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWdyaWQtd2l0aC1zdHJhbmdlLWhpZXJhcmNoeS1l
eHBlY3RlZC50eHRVVAUAA2ONgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAkoTNKBBQ8t0kJ
AAAALAAAQwAYAAAAAAABAAAApIE8MQIAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1ncmlkLXdpdGgt
c3RyYW5nZS1oaWVyYXJjaHktcHJldHR5LWRpZmYuaHRtbFVUBQADY42BWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIACShM0rMJbdL+QAAALcBAAA8ABgAAAAAAAEAAACkgQI7AgBhY2Nlc3NpYmls
aXR5L21hYy9hcmlhLWxpdmVyZWdpb24tbWFycXVlZS1kZWZhdWx0LWFjdHVhbC50eHRVVAUAA2SN
gVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAkoTNKwUidgDwBAAAoAwAAOgAYAAAAAAABAAAA
pIFxPAIAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1saXZlcmVnaW9uLW1hcnF1ZWUtZGVmYXVsdC1k
aWZmLnR4dFVUBQADZI2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACShM0rvNljD7QAAAJ8B
AAA+ABgAAAAAAAEAAACkgSE+AgBhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWxpdmVyZWdpb24tbWFy
cXVlZS1kZWZhdWx0LWV4cGVjdGVkLnR4dFVUBQADZI2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIACShM0okXFyQkggAAFQfAABCABgAAAAAAAEAAACkgYY/AgBhY2Nlc3NpYmlsaXR5L21hYy9h
cmlhLWxpdmVyZWdpb24tbWFycXVlZS1kZWZhdWx0LXByZXR0eS1kaWZmLmh0bWxVVAUAA2SNgVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABJoTNKWpqDZjM3AAAaxgAAOAAYAAAAAAABAAAApIGU
SAIAY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50LTYzNzgxLXNhbXBsZS50
eHRVVAUAA6mNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABHoTNKzj5C7xE3AAAKxwAAOAAY
AAAAAAABAAAApIE5gAIAY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50LTYz
Nzg5LXNhbXBsZS50eHRVVAUAA6aNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABKoTNKallo
7F83AACmxgAAOAAYAAAAAAABAAAApIG8twIAY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRl
dmVsb3BtZW50LTYzODk4LXNhbXBsZS50eHRVVAUAA6yNgVh1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAABVoTNKAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UGN7wIAY29tcG9zaXRpbmcvVVQFAAPB
jYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAa6EzSpRwmqeRQQAAuxMBADsAGAAAAAAAAQAA
AKSB0+8CAGNvbXBvc2l0aW5nL2Fic29sdXRlLWluc2lkZS1vdXQtb2Ytdmlldy1maXhlZC1jcmFz
aC1sb2cudHh0VVQFAAPqjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAATaEzSgAAAAAAAAAA
AAAAABwAGAAAAAAAAAAQAO1B2TEDAGNvbXBvc2l0aW5nL2NvbnRlbnRzLW9wYXF1ZS9VVAUAA7GN
gVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABsoTNK/BUNVUJCAACRDgEAQQAYAAAAAAABAAAA
pIEvMgMAY29tcG9zaXRpbmcvY29udGVudHMtb3BhcXVlL2JvZHktYmFja2dyb3VuZC1wYWludGVk
LWNyYXNoLWxvZy50eHRVVAUAA+uNgVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABNoTNKAAAA
AAAAAAAAAAAAFAAYAAAAAAAAABAA7UHsdAMAY29tcG9zaXRpbmcvY3VsbGluZy9VVAUAA7GNgVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABsoTNKJf9bhdRKAAAzLAEANAAYAAAAAAABAAAApIE6
dQMAY29tcG9zaXRpbmcvY3VsbGluZy9jbGVhci1maXhlZC1pZnJhbWUtY3Jhc2gtbG9nLnR4dFVU
BQAD642BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFShM0oAAAAAAAAAAAAAAAAVABgAAAAA
AAAAEADtQXzAAwBjb21wb3NpdGluZy9nZW9tZXRyeS9VVAUAA8CNgVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACABUoTNKsSwAy0MAAABGAAAANgAYAAAAAAABAAAApIHLwAMAY29tcG9zaXRpbmcv
Z2VvbWV0cnkvZml4ZWQtaW4tY29tcG9zaXRlZC1jcmFzaC1sb2cudHh0VVQFAAPAjYFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAVKEzSgAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1BfsEDAGNv
bXBvc2l0aW5nL2lmcmFtZXMvVVQFAAPAjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVKEz
SgNQjc9DAAAARgAAADsAGAAAAAAAAQAAAKSBzMEDAGNvbXBvc2l0aW5nL2lmcmFtZXMvb3Zlcmxh
cHBlZC1uZXN0ZWQtaWZyYW1lcy1jcmFzaC1sb2cudHh0VVQFAAPAjYFYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAS6EzSgAAAAAAAAAAAAAAABsAGAAAAAAAAAAQAO1BhMIDAGNvbXBvc2l0aW5n
L2xheWVyLWNyZWF0aW9uL1VUBQADro2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGuhM0ra
IQ5kokAAAE3jAABBABgAAAAAAAEAAACkgdnCAwBjb21wb3NpdGluZy9sYXllci1jcmVhdGlvbi9m
aXhlZC1vdmVybGFwLWV4dGVudC1ydGwtY3Jhc2gtbG9nLnR4dFVUBQAD6o2BWHV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAFWhM0oAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQfYDBABjb21wb3Np
dGluZy9vdmVyZmxvdy9VVAUAA8GNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABVoTNKvaer
XUMAAABGAAAAPwAYAAAAAAABAAAApIFFBAQAY29tcG9zaXRpbmcvb3ZlcmZsb3cvZml4ZWQtcG9z
aXRpb24tYW5jZXN0b3ItY2xpcC1jcmFzaC1sb2cudHh0VVQFAAPBjYFYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAVKEzSgAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1BAQUEAGNvbXBvc2l0aW5n
L3JlZ2lvbnMvVVQFAAO/jYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVKEzSjAnUi9DAAAA
RgAAAEoAGAAAAAAAAQAAAKSBTwUEAGNvbXBvc2l0aW5nL3JlZ2lvbnMvY29tcG9zaXRlZC1jb250
ZW50LWZpeGVkLXJlZ2lvbi1zY3JvbGxlZC1jcmFzaC1sb2cudHh0VVQFAAO/jYFYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAVKEzSgAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1BFgYEAGNvbXBv
c2l0aW5nL3J0bC9VVAUAA8CNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABUoTNKakv4w0MA
AABGAAAAMAAYAAAAAAABAAAApIFgBgQAY29tcG9zaXRpbmcvcnRsL3J0bC1maXhlZC1vdmVyZmxv
dy1jcmFzaC1sb2cudHh0VVQFAAPAjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAKaEzSgAA
AAAAAAAAAAAAAAcAGAAAAAAAAAAQAO1BDQcEAGNyeXB0by9VVAUAA26NgVh1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAAApoTNKAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA7UFOBwQAY3J5cHRvL3N1
YnRsZS9VVAUAA22NgVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAAApoTNKJeDTCCwAAAAsAAAA
PgAYAAAAAAABAAAApIGWBwQAY3J5cHRvL3N1YnRsZS9yc2EtZ2VuZXJhdGUta2V5LW1hbGZvcm1l
ZC1wYXJhbWV0ZXJzLXN0ZGVyci50eHRVVAUAA22NgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAApoTNKMDu4sUsAAABoAAAAPAAYAAAAAAABAAAApIE6CAQAY3J5cHRvL3N1YnRsZS9yc2EtaW1w
b3J0LWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1zdGRlcnIudHh0VVQFAANtjYFYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAKaEzSgAAAAAAAAAAAAAAAA8AGAAAAAAAAAAQAO1B+wgEAGNyeXB0
by93b3JrZXJzL1VUBQADbo2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACmhM0oAAAAAAAAA
AAAAAAAWABgAAAAAAAAAEADtQUQJBABjcnlwdG8vd29ya2Vycy9zdWJ0bGUvVVQFAANujYFYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgACAAAAKaEzSiXg0wgsAAAALAAAADEAGAAAAAAAAQAAAKSBlAkE
AGNyeXB0by93b3JrZXJzL3N1YnRsZS9yc2EtZ2VuZXJhdGUta2V5LXN0ZGVyci50eHRVVAUAA26N
gVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABNoTNKAAAAAAAAAAAAAAAABwAYAAAAAAAAABAA
7UErCgQAY3NzMi4xL1VUBQADsY2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAE2hM0pBaWUm
oQAAACwBAAAqABgAAAAAAAEAAACkgWwKBABjc3MyLjEvdDEwMDEtYWJzLXBvcy1jYi0wMS1iLWNy
YXNoLWxvZy50eHRVVAUAA7GNgVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABNoTNKAAAAAAAA
AAAAAAAABQAYAAAAAAAAABAA7UFxCwQAY3NzMy9VVAUAA7GNgVh1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAABNoTNKAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA7UGwCwQAY3NzMy9ibGVuZGluZy9V
VAUAA7GNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABNoTNKQWllJqEAAAAsAQAAQQAYAAAA
AAABAAAApIH4CwQAY3NzMy9ibGVuZGluZy9lZmZlY3QtYmFja2dyb3VuZC1ibGVuZC1tb2RlLXN0
YWNraW5nLWNyYXNoLWxvZy50eHRVVAUAA7GNgVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABR
oTNKAAAAAAAAAAAAAAAABgAYAAAAAAAAABAA7UEUDQQAY3Nzb20vVVQFAAO6jYFYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAUaEzSp5NZTMHBgAAZ0AAACQAGAAAAAAAAQAAAKSBVA0EAGNzc29t
L2Nzc3ZhbHVlLWNvbXBhcmlzb24tYWN0dWFsLnR4dFVUBQADuo2BWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAFGhM0pw/WFUoQgAAOxrAAAiABgAAAAAAAEAAACkgbkTBABjc3NvbS9jc3N2YWx1
ZS1jb21wYXJpc29uLWRpZmYudHh0VVQFAAO6jYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
UaEzSmMerDO/BQAACyoAACYAGAAAAAAAAQAAAKSBthwEAGNzc29tL2Nzc3ZhbHVlLWNvbXBhcmlz
b24tZXhwZWN0ZWQudHh0VVQFAAO6jYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUaEzSh8e
L+W4FQAAKC0BACoAGAAAAAAAAQAAAKSB1SIEAGNzc29tL2Nzc3ZhbHVlLWNvbXBhcmlzb24tcHJl
dHR5LWRpZmYuaHRtbFVUBQADuo2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFGhM0oAAAAA
AAAAAAAAAAANABgAAAAAAAAAEADtQfE4BABkaXNwbGF5bGlzdHMvVVQFAAO6jYFYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAUaEzSqNX/ehQAAAAjgAAADIAGAAAAAAAAQAAAKSBODkEAGRpc3Bs
YXlsaXN0cy9leHRlbnQtaW5jbHVkZXMtdHJhbnNmb3Jtcy1zdGRlcnIudHh0VVQFAAO6jYFYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAUaEzSvKWldVHAAAASQAAACkAGAAAAAAAAQAAAKSB9DkE
AGRpc3BsYXlsaXN0cy9sYXllci1kaXNwYXktbGlzdC1zdGRlcnIudHh0VVQFAAO6jYFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAVaEzSt2o0aHCAgAAWggAAA0AGAAAAAAAAQAAAKSBnjoEAGVy
cm9yX2xvZy50eHRVVAUAA8GNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABsoTNKWW693iQD
AACeDAAAEQAYAAAAAAABAAAApIGnPQQAZnVsbF9yZXN1bHRzLmpzb25VVAUAA+uNgVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAgoTNKWwRYDqIFAABNEAAACgAYAAAAAAABAAAApIEWQQQAaHR0
cGQuY29uZlVUBQADXI2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACGhM0oAAAAAAAAAAAAA
AAAaABgAAAAAAAAAAACkgfxGBABweXdlYnNvY2tldC53cy5sb2ctZXJyLnR4dFVUBQADXY2BWHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACGhM0oAAAAAAAAAAAAAAAAaABgAAAAAAAAAAACkgVBH
BABweXdlYnNvY2tldC53cy5sb2ctb3V0LnR4dFVUBQADXY2BWHV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAACKhM0oAAAAAAAAAAAAAAAAbABgAAAAAAAAAAACkgaRHBABweXdlYnNvY2tldC53c3Mu
bG9nLWVyci50eHRVVAUAA1+NgVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAhoTNKAAAAAAAA
AAAAAAAAGwAYAAAAAAAAAAAApIH5RwQAcHl3ZWJzb2NrZXQud3NzLmxvZy1vdXQudHh0VVQFAANe
jYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbKEzSkUmHTnRJwAAy6oAAAwAGAAAAAAAAQAA
AKSBTkgEAHJlc3VsdHMuaHRtbFVUBQAD7I2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGyh
M0qUc3CLub8AAFZ3BAAKABgAAAAAAAEAAACkgWVwBABzdGF0cy5qc29uVVQFAAPrjYFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAJqEzShIbL7PfBAAA6RoAABkAGAAAAAAAAQAAAKSBYjAFAHdw
dHdrX3Byb2Nlc3NfbG9nLm91dC50eHRVVAUAA2eNgVh1eAsAAQT1AQAABBQAAABQSwUGAAAAAJcA
lwAcQQAAlDUFAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>299310</attachid>
            <date>2017-01-19 20:35:05 -0800</date>
            <delta_ts>2017-01-19 23:31:25 -0800</delta_ts>
            <desc>Archive of layout-test-results from ews115 for mac-elcapitan</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>328443</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
Wf2ftzRybm6IxqQKPUshy/vJHZT604pS31BLAwQUAAIACAAdoTNKe/LMb0cBAAAhAwAAOwAcAGFj
Y2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS1ub2RlLW1lbW9yeS1tYW5hZ2VtZW50LWRpZmYudHh0
VVQJAANZjYFYWY2BWHV4CwABBPUBAAAEFAAAAMVRwW7CMAy99yu8Xkvaw06bNKkFumkaE2hFY1fT
uhApbVDjDPr3C10ZILRJnKZItuL4PT/nCSEgetfKVmSiMTJG6SKLFrR8kdynoZWqiMa0tKtIYast
CybDoiFjFZsI85yMkUupJLfnN1HrgkRFlW5aUWGNK6qoZkG7DeVMRcg79oIg+AcJmLNF1QmIYxC3
gzsI9iGOPZjWYGxHMgA3DLZSKTBEgC42kgzoEvxZkmU+ONHGcbrOUiult1TAsgV/nmZzGE1fZ5N0
nvqhB+6IPQIOuw8ts67ftCK4efipjokxX1PR1aUBbiz1wBzrTzQnMPd8SdY3Fz3P6A/Q6SwveEye
J9eIM2ttlVuWOo0hLNBAicpQ2HNd6D0iko994d5l52/SEH7Dj+WnRtvNgejXXa4nhO5zenNLq1Q7
w8Y4zw5f7Xw6s877AlBLAwQUAAIACAAdoTNKTqtOreUAAACRAQAAPwAcAGFjY2Vzc2liaWxpdHkv
YWNjZXNzaWJpbGl0eS1ub2RlLW1lbW9yeS1tYW5hZ2VtZW50LWV4cGVjdGVkLnR4dFVUCQADWY2B
WFmNgVh1eAsAAQT1AQAABBQAAAB9j8FOwzAQRO/+iiFnxB9wKCU3IBHJDzjxhhhcO7I3Tf33bJoW
FSFxsazdNzsz7WgTmBLjoL8oIc2RwKNm7PqeUrKddZbzWzBUdZ/Uc4IWYophougyDLHuRzJYRvIi
JHhB10/GFKxncIBYGHLEZB6UqryYnG/fI4cZi3UOiQha3mglQxhQ1LumKXAQSn+QkENwLizi02UU
bdm02Fev9UvZloXcVCsOOk0SkMzTzBz8e3CEu8ef6fMl6Xm+lo4zbbpe+6NONyrZ/r21sde++380
t06b6lJ4mJ3LtY5JelwTqF9llPoGUEsDBBQAAgAIAB2hM0purvWhrAgAALUgAABDABwAYWNjZXNz
aWJpbGl0eS9hY2Nlc3NpYmlsaXR5LW5vZGUtbWVtb3J5LW1hbmFnZW1lbnQtcHJldHR5LWRpZmYu
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
V4s8OkDkUbfI3xbM5QFgLg8Hox9VSJVgVrP18Dbww3zO3Iz3+lxl3k7RfzhA9O+yQCxnO+SHa/r8
ESSCh26Dk5k3RFZLzZzf6ZL5dw5V6g/XZe8dkThMSKT79Upa2UXYPWRekC+y96Gyj99W9hBnL1hU
JO+SULdRpV3XmhlQO7yJFiZvq4XI2vj2q7XhvOWN9THov61CXGWqBcU3d42tHFTPIsCT9qcQO2mn
tnYogh+QaIyygJDPH6566qHbN395b96+KH+oBSLhBYNCRux6nTtUy0cfsEAxZoL49qQvcp5vqovx
b9LFdj7ZSFxZgILKC0E3v5hX7SSqMYUuIFnq4m+UcvOLGlPdPwLJXf7v1TP5TerpTjT/p2rqSFT7
9NSef35PHb0pP/pWnHwwOMQEg24TKKrteHlcMLZ+VH82ESEqvpzR7Ed7fgja89+LUA+Gh8AZdsOp
XUC+xn8aD30vhYug/quW/wJQSwMEFAACAAgAHaEzShCWYYvWAAAANgEAADYAHABhY2Nlc3NpYmls
aXR5L2FjY2Vzc2liaWxpdHktb2JqZWN0LWRldGFjaGVkLWFjdHVhbC50eHRVVAkAA1mNgVhZjYFY
dXgLAAEE9QEAAAQUAAAAVZBBTsMwEEX3PsUna5QbsAglSEhFiUgk1k4yIS6uXWXGSn17JhVFYjOL
me/3vtwvjiHEgrP9JganlSCLFVTjSMxucN5JboYTjcKwep1I7LjQhG2hoFlCiNP+iDIu0QWBRCj1
niuNaYKCb7xH5JiwOe/BRLA6V6feOKNoq64rcNaU/SJNztH7uKloyCj6uutxaN7bY93XhTLNa/V2
BF0vWoym5yQSw0f0hIenv+3Lb4XbnpeYvMK06pqoxKdlzNYzlWY33xvOyfvc2pVVvP+NZo35Zzfm
B1BLAwQUAAIACAAdoTNKVgs5BAQBAAAVAgAANAAcAGFjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0
eS1vYmplY3QtZGV0YWNoZWQtZGlmZi50eHRVVAkAA1mNgVhZjYFYdXgLAAEE9QEAAAQUAAAAvY8x
a8NADIV3/wrVq3O+oUOngpPahdKUmNrU89mWkytqrlg6Ev/7XoxTyNilCCSe0ON9UkqB/nDkv5B1
bsTooql0g+2rlWVsvKVe59j6vSYzOS9KkEWNyJ6Etek6ZLatJSvTrVKu/cROVI9iugP2Cs/fQWOf
ylmiJEn+M9t04g3NyVkG6n71AMmlZVkEuyOwn90rCClwskTAiGBCHy0yuAHicl1VMQRaNnsMl4Mj
cifsoZ0grouqhqfdW7kt6iJOIwilLg64Pr3xIu747gjh7vF3my98894yyOgxSp7XL9u/GPngPAUQ
nP0pNIZhMMQYQGaI5b3BE02lGTlQX8MC6Q189ANQSwMEFAACAAgAHaEzSrXnLi/DAAAAIwEAADgA
HABhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHktb2JqZWN0LWRldGFjaGVkLWV4cGVjdGVkLnR4
dFVUCQADWY2BWFmNgVh1eAsAAQT1AQAABBQAAABVj8FSwzAMRO/+iiVnhj/gUCA3mGRIfsBJFGJw
rU4kT+q/r1JaZrjosHraXfVLECiJ4uh/SCB5JejiFYdxJJEwhBi0NMM3jSrwtp1I/bjQhG2hZCwh
8bQfUcGJQ1Iow1zv3JNzTTLjq98jCmdsIUYIEbzNNVguz6jaQ9dVOBrlv8jImWPkzYKGgqqvux6v
zUf7Xvd1ZZ5ux0HnkxWj6SWrcvrkSHh4/lPfbhWu+v7omun37lZnzjGW1q9iKfe9+xfl3AVQSwME
FAACAAgAHaEzSlDUkFY1CAAAThwAADwAHABhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHktb2Jq
ZWN0LWRldGFjaGVkLXByZXR0eS1kaWZmLmh0bWxVVAkAA1qNgVhajYFYdXgLAAEE9QEAAAQUAAAA
vVlrb+O4Ff2eX8Em6AZYRLId2xk/EhcziYMtOtsNmqDzsaAkyuKEEr0ildjT7n/fy5csyZLtYhab
QUYUn+c+z6Vym8iULc5uE4IjeKREYhQmOBdE3l0WMvYml9At5JaRxdmM0ez1Cs3eqKCSROi/Zwh+
JNlILyIhz7GkPJuhjGdkrocCnkck9wIuJU9naLDeoAjaJJqf/XZmtrObhJzxfIYu+sOpHvMfKSMP
NI7teIDD11XOiyzy3NR4ov5VDzInCM5ohC6iKDJjMc+kF+OUsu0MpTzjYo1DCzDF+YoC5AFJUd90
rTkIp+XICQOJ3ogGlAwaSIfDYcv+AmfCEySncWVQ0G9En1E91GMkljPU98euP6JizTBsQjPQjEX4
TiOZwOJ+/68WH44imq3KlQabNY1q1a1j4dIsAVCynJ7wN5I3JBqPx/MuZRNi1OArm3yGs4RdHDOO
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
LWFjdHVhbC50eHRVVAkAA1qNgVhajYFYdXgLAAEE9QEAAAQUAAAA7ZFBasNADEX3OsXH69Z3MMGF
QEpMbWi244ncGapmYDRD4ttXaU2h0CMUgVbvP30Q6GQDgKYQFYW12A6uoHvZd/CB/fucbqzwKWf2
RVYEdzkLG8VwObrHL4jPcKXkONfCLdHxAq3es+oD1lRxjSJQtoTtHM2XFjRDN44NPoxyb2zkkkTS
1VTzimbqxwm74/Nw6Ke+MSfd8Z9KbdTddtiKL06U6anbH/4CNKQqZrXSuXKLV7cl2n/n9qaliqyD
y/rtvLNEv15A9AlQSwMEFAACAAgAHaEzSsP9MTTUAAAACgMAACwAHABhY2Nlc3NpYmlsaXR5L2Fy
aWEtY2hlY2tib3gtY2hlY2tlZC1kaWZmLnR4dFVUCQADWo2BWFuNgVh1eAsAAQT1AQAABBQAAADt
kjFPw0AMhff7Fd6PywmxMKa0QUItIlIiMvsubnviqqDYlpJ/D6RFYkCMnZAl28N77xts5xz41yHr
idhvUNBXXeM7Ctskl/GgKfd+Q0EPPuM8qDghFjcSaxb2GCMxp5ByktnjmNDFI8W3MEznhXpH0ztF
ob6QSYy19hpMjKKYF2JZgru/ub0Du/SyNPBV9app4NtXJF6fnZAY9piZjPtDIaOSsY+rp91vAj4O
mnsItOgK6PCSWfxjr4dlXf5krznPNY78I/Tz/G3VtLB+ea53VVuZD1BLAwQUAAIACAAdoTNKtW9b
C7YAAADhAQAAMAAcAGFjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1jaGVja2VkLWV4cGVjdGVk
LnR4dFVUCQADWo2BWFqNgVh1eAsAAQT1AQAABBQAAADdkMEKwkAMRO/7FUPP6j8U6UFQLLYHr9tt
ahejC5tdtH9vlCJ68QMkMJe8TIaBOeoAMO3oBYkkqY42oTxsSriR3LkLdxK4ECO5xBNGe+2ZlCLY
6O3yBVEPm1L0XU60MmZ/hWTnSGSBKWTcPDOE9EI1evULA4q6bJoCF6XsiZQcAnO4qVU3oWirpsV6
v6u3VVsV6mme+DvSyst6fqzBB8tCv4AUM/2NwVztkJmn2kb52Juv2ox5AFBLAwQUAAIACAAgoTNK
IK+a2T4IAABRJgAANAAcAGFjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC1jaGVja2VkLXByZXR0
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
PyyflqYrsOeDVUHYvyzyzQki33SL/HXBvDkBzJvTwehHFVIlfNVsPbwP/DSfM3fhoz5XmXdQ9MkJ
on+fh2I975b/30zxgne/uOctXNQXUGpBRnjRrZC9ZxvbPqaturyQw48LaycdlPSAFOwElbRLCuRh
8Qnf9tRTN0JFoW3773SLr5WKpicoaNqtIJVfPJd7AyLMxQFSCxFegqjAXzdwB/0T4HZM+nN4v6XY
Hgz+X8H9gQj5jURzhxK6w/lOeYPOVt9sEA+uT1HM9ZGwsJwiKSjdflR/5NVRIXnxtYN4eAra4d9F
BgajU+CMuuHUyNNf8Z/GQ7NoILH6b/D/A1BLAwQKAAAAAAAxoTNKAAAAAAAAAAAAAAAAEgAcAGFj
Y2Vzc2liaWxpdHkvbWFjL1VUCQADfY2BWLeNgVh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAHaEz
ShaBH1iSAQAAtwUAACYAHABhY2Nlc3NpYmlsaXR5L21hYy9hY2Nlc3NrZXktYWN0dWFsLnR4dFVU
CQADWY2BWFmNgVh1eAsAAQT1AQAABBQAAADtUstu2zAQvPsreGyBIlFatCiEoIDtuEhQuXUc5XFd
kWt7IZo0yFVcNci/ZxmpbvPqBxQ5ibszmp0lZ4tVTTwYlBhZLYAsmsHwau4t5mp4dYnVMCD0nSOM
OtCGybtcHZfTQmnvGB0LPl6RNQEFOIQQoFV+oSL9QvX+i6DHaDe5ksMMhMNC2mkn+EyIufp+1n1v
PmfZO/Upy24FKomTFTk9mC71BdimQ7563UQ0ucqkmDiobCoOpLgkZ/z2yTi0qBlNiT95CqHGMAe3
FK03rrH2bWIwBP4DPxaYOPMyeEGR+LebglyN5vxkYnEti8cn15P9baj7Z2S9rk8bz1jgNdquWfrN
fbWTejy2kBUaWPZ39WN6YoREC0oGu87YQowFRX7eRLL6D6MH9xwPZrcatL7hsW+Slw89SG45C34Z
MIpCtvdR2ufzIlcdOYUs7oPWAlNFlrjdX4PuOzW2eyte25QmiQmPgt9GEdy9aJo6C3ILjr9hW3kI
RtaapPqI4gZYr/oMdEuMmtimxuA10a+J/r8SfQdQSwMEFAACAAgAHaEzSjJ7JI/vAQAA7wYAACQA
HABhY2Nlc3NpYmlsaXR5L21hYy9hY2Nlc3NrZXktZGlmZi50eHRVVAkAA1mNgVhZjYFYdXgLAAEE
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
WQT9eKc+fxnb9qkxsu1fO8Tbt9sA3xMuskKX+Ppt+EqZoEuUgzaUnxHcT7rFN2zDdyPuVtiHorpL
iK3sdB2LH1UCxH6XEFuZ6QuJffq0X9mo30pLd7oBJ/pRHxB7wOwTihfgqX+O0zD8S5e4W1npjkOB
twG9Zyoft/uxv7fAW6nrs/r9hm5zxKCVrEQLEPs/fX8dYtn7qqu27I6VPOi/JCA71nIrmckb1t9T
yvEtfsRhx1Bbee2eriTG3CX2K+AGrYx3C6k4RYtu64ZBK+Nd/e3D9z6olQREJLMucY524LwUb25J
wvcyKZztSmvtSa3fNf5WyrulyO88pU3aQ020Qi9pKjLEsEOYQ3uXIkm8+MjoguEkkb811SXYVir7
6dPt1FCKFc2v1t6yJX4dtktJWgnvEjHML8QPekD5+T2kS28etrLeRwacF/Mf8NqjiPmQ/K7F8xWB
yXy+7Bh6+y1PJbmLNFnXwPxde9+/1Y8gnJcowd2Thn8HPfLRy0X/I2GdHUZrfDg+xN74cHKozXHH
3uvuuNM/tPa4Mziw/rgz3O/+uOMcQn/ccfe7P+6M9r4/7pztfX/cGR9af9yZHGZ/3LUPtj/u9g+0
P+4O9r4/7g4PvT/uOvvfH3fdg+mPu6MD7o+7Z3vfH3fHh9EfdyeH3B8f2YfdHx/1970/PhocRH98
NDyg/vjI+X/pj4/cw+qPj0YH2x8fnf33/fE/Eub49+lgVz7kn3d401N/W8q/AVBLAwQUAAIACAAd
oTNKOAa43tYAAACXAQAAMQAcAGFjY2Vzc2liaWxpdHkvbWFjL2FyZWEtd2l0aC1hcmlhLWxhYmVs
LWFjdHVhbC50eHRVVAkAA1qNgVhajYFYdXgLAAEE9QEAAAQUAAAArVDLSsRAELzPVxQ5az7AW1gj
CKsbSGC9dpKOGezNyPTMxvy9vYqIgjcvfaiuFwXXzV6RWJPdmRIoeroW6lmwhviiCIthTGDhEy9J
S+cOCzQPA6teYQsZqxeBMoPsRs8mmlA0VdsWOBmLntmYUxAJK4/oNxRd3XbYHR6afd3VhXm6u+p+
D/pw9b0Xn7ZdWFI0EcdyCkNWHuvPDuXIOkT/mryV0zlkMVNG9XT7jd+giXz2IWuJI+nvZ/n/eY/8
lv7IukzxNdmURbaGotnjMn3M7NyPOZx7B1BLAwQUAAIACAAdoTNKnGFF3jABAAAMAwAALwAcAGFj
Y2Vzc2liaWxpdHkvbWFjL2FyZWEtd2l0aC1hcmlhLWxhYmVsLWRpZmYudHh0VVQJAANajYFYWo2B
WHV4CwABBPUBAAAEFAAAAL1RTUvDQBC951cMufSQbvbiQTylthHEagMp1uskmbQL02zZnbXNvzcp
BangRVQWZmE+3nszTykF+tVy2JPXCxTU+abUG6qejFy++2C40QuqwlYz9jaIEvKiHPnA4jXWNXlv
KsNGer3HWqMjVEcjO4XOoGKsiBWdDlQLNamcJEqS5J9osZaAfCbNMlA301tIxpBlEaw68OEMM4WB
AI6GGTwR4BCdIQ+2hbiYlWUMg1CPWxo6W8tsj9RA1UO8zss1zFfPxTJf53EawfDUOAFX+ua2EzfM
kUtbWwdPTc60p07ShnztzEGM7cB4mMzeFp+ZOygcvRsb/ORXUV/oJJMoeZg9Ln+C6Hc28LA/wTdq
U9ig/1pM/4BwXOQbMjjf6+JvG5j7At2AP95DXKDRqiv3og9QSwMEFAACAAgAHaEzSh3dZuzIAAAA
YQEAADMAHABhY2Nlc3NpYmlsaXR5L21hYy9hcmVhLXdpdGgtYXJpYS1sYWJlbC1leHBlY3RlZC50
eHRVVAkAA1qNgVhajYFYdXgLAAEE9QEAAAQUAAAArY+xTsNgDIT3/ymsLF0gD8BWlWxAIyUDq5M4
1MLNX9n+CXl7XKiE2FluON19uoPUn9jAyTz0hA6ojPeCAwmsWd8N8hIeIZDQmRa3OqXjAlbGkczu
YMsFVhYBIwIMVaYozVC1+66r4BwpfKNIzlkkrzTBsEHVN10Ph+Nz+9T0TRXMdI0DflN5YGHfDnlx
jRJpPeexGE3Nz4Z6IhuVL84xLubv9q+Pv84DtEofnIvt/hP6Qp9+A97Oz0Vka1GDcS24Fkrpz7GU
vgBQSwMEFAACAAgAHaEzSvQBmXJ2CAAAIx8AADcAHABhY2Nlc3NpYmlsaXR5L21hYy9hcmVhLXdp
dGgtYXJpYS1sYWJlbC1wcmV0dHktZGlmZi5odG1sVVQJAANajYFYWo2BWHV4CwABBPUBAAAEFAAA
AN1ZbW/juBH+nl9BJOgGOESSndg5v2Rd7CYOrujeXYAE3X4rKImyuKFEn0gl9rb97x2+yZIsOd7e
HlB0D3uSyCE5L8/MM/TepDJji5OblOAYHhmRGEUpLgSR789LmXiTcxgWcsvI4mTGaP58gWYvVFBJ
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
BT+th26GoevU/5T+H1BLAwQUAAIACAAwoTNKjNBfV9UAAAA3AQAANQAcAGFjY2Vzc2liaWxpdHkv
bWFjL2FyaWEtbGl2ZXJlZ2lvbi1vbi1pbWFnZS1hY3R1YWwudHh0VVQJAAN8jYFYfI2BWHV4CwAB
BPUBAAAEFAAAAFWPQW6DQAxF93OKL9ZVD9AdaqgUKW1Q4QITxoDVYSzNmCBuX6Oki268sJ+f/T/q
8+UNPS8UIKti86ycJoySkUR53E+SCCq4EQYfIwXn+pkLlIpanb2i/j7XiHwnZJpY0rNtkCT4BF78
RNg4RmySf7DNlAwh+KhQPx3kMPs0UXh17ppQ1mGgUl6wy/rYK2S01cxk1hFVW3ddhcUocxs5Soyy
WYrbjqpvuh7v18/20vRNZU534PAhUPg6UvHg1R49Dmte6TF+Xh3XGPfW52Kyv7n7Z3TuF1BLAwQU
AAIACAAwoTNK/cQWCOQAAACbAQAAMwAcAGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbGl2ZXJlZ2lv
bi1vbi1pbWFnZS1kaWZmLnR4dFVUCQADfI2BWH2NgVh1eAsAAQT1AQAABBQAAAC9kMFOwzAMhu99
iv/ehWiCE6cWFaQJTjCxs5t6rUWaoMal69uTjj0DkmVL1id/v2yMgf2Mfh452YaU7PPpw564fRW9
jadZfGcbbufeelrjrEY5qZk4zV6TJec4JWnFi652JGdpEjJefnjiXmIwuWSkng1fvtkpd3d60aIs
y39Uk9OZ/FVcVTD73T3K/e4BVVWUL/Xh7RFHGblDdmAhUQk9znFCiCrntYmBoREtw5H33BUocBwk
YcuT+0CK+v1QY3PjT35bZygGUMA1CBbxHkucvrAMHDLCIK9Q6jfSDRT6/KB8/xdQSwMEFAACAAgA
MKEzSvghJpGxAAAAAwEAADcAHABhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWxpdmVyZWdpb24tb24t
aW1hZ2UtZXhwZWN0ZWQudHh0VVQJAAN8jYFYfI2BWHV4CwABBPUBAAAEFAAAAFWOQQ6CMBBF9z3F
D2vjHYhhYaJCpBcY6QCNpU3aIuH2DgEXbv5i/ps3o/RoEzKnLDlSRvm8lnD2w4g82OCPsUDBgzzs
RANjsc5hCfGNZWQvCINcRqZhI7uR/MDmrFTtkeau45ROWMO87yUWWjJaFmuPoinbtsAklLiF7INz
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
B/iBfAC9kZQfLv1NQH8vzKeb+F8QT6hZ8R1SKL7//TH+nSQ/UeV+PtWU4fiOJPU2BpyAM0NFoL7C
5b1mSsYoTQHbNKEMGCEuUBojQVHIoGMRZAuKhfCvuYmF0MfUiEVqr0C7aVep1jehy9MZc1cfG9d3
+ADg1pvXt5eg++HHCUFJKb2UufYfe4nLzTdlIqs1OBKENh1RSPG24HRQBmj6cvPw8cefV8FnWkCj
Ag4LdgiSByCmbz4lVzQ73EGy6ZqRQK0AeBPsNoO4gQn+p21OC4aXGzftZP+2s2QON5DX/fWqr6Zv
cNP1uJv6Nv9vyly/QZnZuDKfc6ovZ1K5wvzxnz9+DDSKAwtjNwxCUDhhsf24sKOM6U8QT8BWcC3T
FIAYsAHaask0R+WW4Oj/a+jsDYbO3+71v4O03o+pLZDL5m8m/gtQSwMECgAAAAAALqEzSgAAAAAA
AAAAAAAAAB8AHABhY2Nlc3NpYmlsaXR5L21hYy92YWx1ZS1jaGFuZ2UvVVQJAAN3jYFYt42BWHV4
CwABBPUBAAAEFAAAAFBLAwQUAAIACAAuoTNKHxF8U8EAAAATAQAAUAAcAGFjY2Vzc2liaWxpdHkv
bWFjL3ZhbHVlLWNoYW5nZS92YWx1ZS1jaGFuZ2UtdXNlci1pbmZvLWNvbnRlbnRlZGl0YWJsZS1h
Y3R1YWwudHh0VVQJAAN3jYFYd42BWHV4CwABBPUBAAAEFAAAAFWOwWrDMBBE7/qKwedQaHvrLbQu
FNLGYP3Axlo5C4oWvFKM/74KaaG97OW9nZn3/cfhBV4uHKC1YCUpkmdEXZC1SNzeNDOK4sSYKCUO
7vHp2fmzGApbMVwp1cbOlGe+/8hERTQbqvECyVERqNCDc8cMq9PEZjtsWrFKSjBmULuLsEEjumE/
jh0uzaKZmxk1JV3bwtOGzvejx+vxczj0vu9aprvpoBA4fP1px23gUvmOf1pjTWkbaLEW9svdv0Tn
vgFQSwMEFAACAAgALqEzSsObu4zMAQAAyQwAAE4AHABhY2Nlc3NpYmlsaXR5L21hYy92YWx1ZS1j
aGFuZ2UvdmFsdWUtY2hhbmdlLXVzZXItaW5mby1jb250ZW50ZWRpdGFibGUtZGlmZi50eHRVVAkA
A3eNgVh3jYFYdXgLAAEE9QEAAAQUAAAA7ZZRa9swFIXf9SsufnVUzy172VOyxIOwbg3YtIOyh2v7
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
ABwAY3J5cHRvL3N1YnRsZS9yc2EtZ2VuZXJhdGUta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLXN0
ZGVyci50eHRVVAkAA3KNgVhyjYFYdXgLAAEE9QEAAAQUAAAAQ291bGQgbm90IGdlbmVyYXRlIGEg
a2V5IHBhaXIsIHN0YXR1cyAtNDMwNApQSwMEFAACAAgALKEzSjA7uLFLAAAAaAAAADwAHABjcnlw
dG8vc3VidGxlL3JzYS1pbXBvcnQta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLXN0ZGVyci50eHRV
VAkAA3ONgVhzjYFYdXgLAAEE9QEAAAQUAAAAbcuxDYAwDETRniluHxpWsGRLsYA4ci5EbA8NHfV/
f0u/hIbd7o7pLDEIUXV6VDmgQoGkoQbRR2uRNF3Wj+OMN7JIBWegpZ/Wf4YHUEsDBAoAAAAAACih
M0oAAAAAAAAAAAAAAAAPABwAY3J5cHRvL3dvcmtlcnMvVVQJAANrjYFYt42BWHV4CwABBPUBAAAE
FAAAAFBLAwQKAAAAAAAooTNKAAAAAAAAAAAAAAAAFgAcAGNyeXB0by93b3JrZXJzL3N1YnRsZS9V
VAkAA2uNgVi3jYFYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAgAAACihM0ol4NMILAAAACwAAAAxABwA
Y3J5cHRvL3dvcmtlcnMvc3VidGxlL3JzYS1nZW5lcmF0ZS1rZXktc3RkZXJyLnR4dFVUCQADa42B
WGuNgVh1eAsAAQT1AQAABBQAAABDb3VsZCBub3QgZ2VuZXJhdGUgYSBrZXkgcGFpciwgc3RhdHVz
IC00MzA0ClBLAwQKAAAAAAAvoTNKAAAAAAAAAAAAAAAABgAcAGNzc29tL1VUCQADeo2BWLeNgVh1
eAsAAQT1AQAABBQAAABQSwMEFAACAAgAL6EzSp5NZTMHBgAAZ0AAACQAHABjc3NvbS9jc3N2YWx1
ZS1jb21wYXJpc29uLWFjdHVhbC50eHRVVAkAA3mNgVh5jYFYdXgLAAEE9QEAAAQUAAAA1Ztfb6M4
EMDf+ymsVqsSHaSGhG56b6tdVTrp3nZ17wYc4quxOeM0yX76G5vQJM2ftmkNVCrEgdL5eWawZ8bu
rxmrkKaVRo9UsSmj8G1GNPr+8+c/hM8pksm/NNUVSmVREsUqKdBCqgdzQSm4w1fDi4uL+29//Y1+
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
1BbW8IlptLdKP74fZkfhn6L/XODhaTsGofuRwq+YDAVRQbmmetWKLgczR+PjHT9uRr6/CsppepQn
bXiayBvu77DSWeqLHJoTC/vNd8OCh3Z1SAI2NjTqR2nyVYQV9XGvWdFnFPIQMTUzSuf/73bL9ddr
jb55/y2oLJbqU1H7SK8iKTHWgsMF0HUcBDQSMFwuPTSNaXrigi2ddSM07x5+gq9dBVR0K7aqFDM+
Htb58u7S7mJaXtkaIN2dSCSMd3E2XA93ba6M9L2svCAeYphj584H6lE0KSPvuDCAUovJslsvrMz0
iOY0I0PibNXdzNwyZWr4ReKOuIagqKGUuo798bae0W4yK49fqChXykJgmrnEqCeY6ugKDzEBego/
8GZaZlRldfbSMNvG7sbcHTtXQZZAglSYEVtcsr8gkO/DJfmOrD5g+wOnVZ1madFU/VcweJh1KosX
PMr21SbcnWPUEPFJ3GEfXJkPP/NeJJZ+63CnP8FH2KRE4/9jeGTLVkX8Maj3WfZK6FPLIsy47i3w
5WZnNSeFL09Taeluccvv9a+8NPRB7yf5QbW2dssvMv9RlF1flPpEzsvBs6uSNd1NPvRYPmPNh1N9
3PwCJltkUm9qpmIzX+f6kBsmzFGhLAhxFJXiZYc8OX0XJi68AYcN8v4ZlDRtlblpxeGxpt2qds2C
hMwSzHEPIcmM5Mn74n8G0zR6nkvV36rxkd9j0ioQdbNiYS3M6NzguZ7yWcK/p4o+Qj+9WBEprKLS
7ZfTkkpaaZJm8H3H69q+pBSYG//uyK5jmbGwkwVQaHAm9AXtyzefrrv/epilK/VdV8aEDbNU04pZ
+wWzETq6zO/GC8nR++G+/oBfOBFfY8KHf12ALI0Yw2OekuCtEsvQMa9/oxLc9R0W20gpvTbX/3vY
6vr7FeBmFqaOF23wv3b4IGuOH2j8IY3136NRv4QdWGaXlFyf+T9NDwQv23iH/OqB3X+3C99uvnPt
ljG0esf/nJ56l3dtxaPKy0/W/bfDmpVm2863BUv/p9XqK+bblkqsjKwO/8+ZqzOxS9e0f5zqdV5E
WkRaRFpEWkRaRFpEWkRaRPr/G+l8ts3WJUuM33//L4DFGVtEWkRaRFpEWkRaRFpEWkRaRFpEWkRa
RFpEWkRaRFpEWkRaRFpEWkRaRFpEWkRaRFpEWkRaRFpE+n8Oad50+R+T6/eQwVVLFl6eR8FHyIfO
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
Kwonj9pY2SFuNB9bT0+L407Rmk+2g/utEEugz51Bl3cXV/flJLYD2eHUBFf3w5XNh74hjhwiQ9T2
LMH3cX2LxWeZfRnP7T+M/gNQSwMEFAACAAgANaEzSiDiJeW5AAAAPAEAAEEAHABlZGl0aW5nL2Nh
cmV0L2NvbG9yLXNwYW4taW5zaWRlLWVkaXRhYmxlLWJhY2tncm91bmQtZXhwZWN0ZWQuaHRtbFVU
CQADho2BWIaNgVh1eAsAAQT1AQAABBQAAABtj81uwkAMhO99ilHu/blwCZSn6As42QlrsdlFuyah
b18XBFUlTtZYM9/YX1EbjM0wy5EN7VwJi2IYpdIaNGMs2ZgNDGoyJCLo0rCqRQgGGY+HWs45uC+V
inbiqJMyoHIWjw/JLeDCDJ2cTW/wUnGn+Co3Db+VnO/IqVQ+R7697Lwbzb4TP7tVg8Uem4/N6bJF
pB6iPWRZWKdU1h5RQ2Dedvvn4f/Zq/z76fV6QH/7odvv3p3gnNv4AVBLAwQUAAIACAA1oTNKxBPn
hn02AACYXgAAQAAcAGVkaXRpbmcvY2FyZXQvY29sb3Itc3Bhbi1pbnNpZGUtZWRpdGFibGUtYmFj
a2dyb3VuZC1leHBlY3RlZC5wbmdVVAkAA4aNgViGjYFYdXgLAAEE9QEAAAQUAAAA7bx5XNLZ//jb
NjVNljM1k+NkaqmZK5OWhri0jrmSYporLZKaookpKiA11ZRZWoqSKdKmZC6UC7hCTVkKCpOohCiU
CiSIJIiGov5oPp/vd+Y+7t/3Pu7jceMfeBzey/O8Hq/tnPM6J/uov+f67375btmyZeu9jhwKXLZs
pemyZSuOf7ta13I37fdzui+r84ePnz8dCzsdn5IKX3YadmY3bJfj7j17f3WAnYSdPAWM3rPLeY/j
qZPR0b+eBO7aEUVx0N20PCXQ88CyWpbR+LJl+5Z5HdoflL5cPrxWixZGeHwaB4RHZ3sfCjzAy7/V
SYvJuRVJSeAhN1ox8idgBgFHOnutAx8fqWzYGRfQ+wCjWGTLxnxnQfRiTTeappoH0kczjPMUs45M
AoqdQWO3pwiQJey73qE7V337vem+C8uWr9D92Lt+1aIw7qlezv+26H7s++nWhY/f/uuy0jMrNt7i
3Bj8/V936i5Z+f/KJXtjVygtsUrLHKwGj+U9ngPRVaAc7Oer2HefF2OTtDL6omwkb+lznmf8wOsZ
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
eZ7wLG+EJTg++iK8BBcH1O2n+ldz2TuINace25MRc7sBUEsDBBQAAgAIADehM0q41mCPvAAAAEkB
AAAjABwAZWRpdGluZy9kZWxldGluZy81ODQ3MzMwLTItZGlmZi50eHRVVAkAA4qNgViKjYFYdXgL
AAEE9QEAAAQUAAAAtY7BasNADETv/grdN8o2cUt7NCGFQo8JzVn2qrFA9gZLS5K/j2vaTyhzmIGB
eYOIEL+yloEt7skpvp8O8cTtp/iv7Ypointuyzkq3XNxdDbHia2oW+QkLuM5JlZewsvb82tdP+EW
+Xbhzjmt/eZVCOEfUdR5IV1ATQO4WdUQNqstNE0Fx14MfoYMvvMEBN1E1sO15xH+pkBGk8RAI/Bw
8TuomIM4D+A9zcmWaj5ArTJMOfu6wlnhg1Vz9QBQSwMEFAACAAgAN6EzSiCiLOdMAAAAWwAAACcA
HABlZGl0aW5nL2RlbGV0aW5nLzU4NDczMzAtMi1leHBlY3RlZC50eHRVVAkAA4qNgViKjYFYdXgL
AAEE9QEAAAQUAAAAHcnRCYAwDAXA/07xJnAaF4g2mkCbSvNA3F7x7+BW8wQ1mTjGhGCfkobbNFC1
KT1OeKRXhQS0X3zQPAmndtDkU/5VnbI1xRyDSynlBVBLAwQUAAIACAA3oTNK6nvrbpQHAACgGAAA
KwAcAGVkaXRpbmcvZGVsZXRpbmcvNTg0NzMzMC0yLXByZXR0eS1kaWZmLmh0bWxVVAkAA4qNgViK
jYFYdXgLAAEE9QEAAAQUAAAAtVlrb+M2Fv2eXyEk6AYYRJId21M/ZrzYyQMDbHdRIIP244ISKYsT
StSSVOJkd/97L1+yJEtOFm076FgiL8lzX+deaj7lqmDbs085QRh+CqJQkOZISKI+X9YqC5eXMCzV
CyPbszWj5eNVsH6ikiqCg/+cBfCfInsVYpJygRTl5TooeUk2ZirhAhMRJlwpXqyDabUPMDwTvDn7
35ndzm2ScsbFOriYzFZmLrqnjNzSLHPzCUofd4LXJQ69aLbUf9oH2RMkZxQHFxhjO5fxUoUZKih7
WQcFL7msUOoAFkjsKECekiKY2KGKg3JGD0EYaPREDKB82kM6m80G9peolKEkgmatSUlfiTmjfWjI
SKbWwSRa+HFMZcUQbEJLsIxD+EyxymHxZPKDw4cwpuWuWWmxOdfop653HFxa5gBKNeI5fyKip9Fi
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
fLCe/ntDLg1GzfwKGhHKhHOI94tUUcTAGAkz6ST6oARhBP8qmcOVohXhHkMmH3kbbJsdCpORrqIJ
LctSE3J4OeAQ04rR128qCyfEXdJ3XTd8y7iK0o+MsmfMNRTetSfhukHp9lcMix1BSs/FtXS0fABQ
SwMEFAACAAgANaEzSoQc2ZgoAQAAPQIAACIAHABlZGl0aW5nL2V4ZWNDb21tYW5kLzE2MDQ5LWRp
ZmYudHh0VVQJAAOGjYFYh42BWHV4CwABBPUBAAAEFAAAALWPwU7DMBBE7/mKVU+g1HWLKBJQqigt
XDiC6NmJt6mF4w32miZ/j1Mh9VSJC5K1lrzjmXlCCJAfZGOLQW4VK/m8e5M7rF4N/15lNFbLLVax
kVYNFFkwBhYeQ7QcJGrDxjUSe6w31LbKabm4m9/eC+w7rBn1jHvO8jz/vyRVc1T2lFMUIBbTJeTj
KIoM3g8mwOiTJkFABLOHUtWfG7LkoVYOKoQO/Z58ixrIgUqvHjmJbQIw5GbJBZNJz8BDl0Rqz+iP
5DWEA0Wr4aC+kyCJHB6hSu6Np+g01GPILBOr0KWgwIPFp8l5L077B/BNdTWfQjo3y+X142Rd2ogr
OX5aZ3kGFzBeyOMFDDNidFYZN9YW5OwAHps/wTjiM5DHr5hi8cxS2tQ/tfoBUEsDBBQAAgAIADWh
M0p417tmxgAAAFIBAAAmABwAZWRpdGluZy9leGVjQ29tbWFuZC8xNjA0OS1leHBlY3RlZC50eHRV
VAkAA4aNgViGjYFYdXgLAAEE9QEAAAQUAAAAjY9NbsJADIX3OcUTK5DKj5DYtJRFkDhBLjBJnGTU
6Th4HCC3x2FRNkVCsrzwe/bzV3Q+QSmpdUYigm+Qu+rnyIEFlYsoCT1Jw/JLNTjC2VRIzRyoUs9x
haIjO3JT6NibyTVKcmWpkToeQo3OXcxgpkhXlHa9FR5ijWoKWWX71FtO0jHQ9+wpLx/yJ6Qt55sP
WG13u8XX7JCHgfbraemQZcV/BCcWekHgJ4I+OB+nj5ccwwih9i2OyPpkEToPFkt/GHmw17M7UEsD
BBQAAgAIADahM0qkltt8HAgAAF8cAAAqABwAZWRpdGluZy9leGVjQ29tbWFuZC8xNjA0OS1wcmV0
dHktZGlmZi5odG1sVVQJAAOHjYFYh42BWHV4CwABBPUBAAAEFAAAANVZbW/rthX+nl8hJNhNV0SS
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
eHBlY3RlZC50eHRVVAkAA4qNgViKjYFYdXgLAAEE9QEAAAQUAAAA3VRNb9pAEL3zK0bk0ERCyIBN
HB8qQeymqARaoKl63OAFr2J2kXcRENT/3vEH/gAcSHuo1AuWlzfvvZk3XsfuTXqDB7CdvvPQmTgW
SE+sfLdL54w7LlOMz3vcHj6OCJ9TKwh/YRaIBWggZmD3nuAjdIf2T3x8njz28XHliulqQbkCJcA4
i6o4RxbW9PmJ0bXNCjasHyePB0KxGZsSxQR/k+veC82PqU+nITZHd/DPf8AYh5ivoW5piFeKbhRG
cjbMxnvQp+QKBN3+8P7Lt+/DiXOJdsv4w1oymzHO1NYajNPpdZIzW6y5VAElC5CK+X4CwF371OmP
nX8S/hFRod4nWxoAUXCt1bQbkOyVgqlpm7amVQBGlLs0CKtLIJeUd30xfYFdOMhfpdAULNwt7MLZ
x1izZibYW1PfGKYeYQ+ovx7yhthWO4HuwZMw6l2U+BH+toAHiNYiWPEMt2au8kBvGRZUJx6TCJFK
Qg+ZcSkEIkHuEwLlYR2KyrBeeRS3gQQqXDgCSxKQeUCWXh2qZYp6S880W7qGmmPGpxTDBVfwDwpZ
GI+p52QJz3QmAhq9pvSAR9Xylhrmnt+405F/IaTKOpDgs5eQkMlaTpQGSLrINV1UjNqO2k0nEQ2B
8Xr1VG74oe2TMJpvRZfgs680LtNzCer6pmHm2j2bebPZLlaUp47QfepZs/GViKPH9sJxULdePWn7
mnDBtwuxkje52afNvtO1oV3s2tBKXXOhSpyn3kc471Es39Tvag09cdDYaJUs32ixLVgKyaL36Eae
egw1tLSF/FE+w/S8mewCHjzjBVAp7I+FnlL++Nr+a4HfUEsDBBQAAgAIADehM0qj/Yii2wcAAHYa
AAAuABwAZWRpdGluZy9leGVjQ29tbWFuZC80NjQxODgwLTItcHJldHR5LWRpZmYuaHRtbFVUCQAD
io2BWIqNgVh1eAsAAQT1AQAABBQAAADVWW1v4zYS/p5fISS4BigiyY7t1C+7PjSx0y5ud1tcgl30
04GSKIsbSnRJKnG21//e4ZssyZKTu97hcF10LZFDcl6emWeofZPJnC5P3mQYJfCTY4m8OENcYPn2
vJSpPz2HYSGfKV6ezCkpHi68+SMRROLE++3Eg/8k3kk/wTHjSBJWzL2CFXihpyLGE8z9iEnJ8rk3
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
mjYi+Hxlpw/t8TreiQwub8mLvHvRhpNX2HD8n5nvJlPMutOdskrZX4Zmjhnxv9Nu+grtLv9vtZu9
QrvJ76jdvxMAnR9dLSBb639r+hdQSwMEFAACAAgANqEzSkn04PytAAAAAQEAADUAHABlZGl0aW5n
L2lucHV0L2ltZS1jb21wb3NpdGlvbi1jbGVhcnByZWVkaXQtYWN0dWFsLnR4dFVUCQADiI2BWIiN
gVh1eAsAAQT1AQAABBQAAABNjkEKwkAMRfdziuzc9BJSRxAUxdYDpE60gTRTOtOitzdMFdwE8v/7
+Wl7TpApZZs9ZrgL4cT6BDT1ZXscxpgIQqSkmwxmL2Qo/Zywch31LAFYi1ekB5ME59pY7sOAOqPI
uwJS7IQAFQ4nX1lmnK2oxwnvmaZUrU/8lxgbIBEBP4q8RkoBRJW3cZqRNX1dzowCC8pMzrn99nD0
O6jPp8u58a651bVvGqiPfnt1H1BLAwQUAAIACAA2oTNKWUZUiO4AAAC5AQAAMwAcAGVkaXRpbmcv
aW5wdXQvaW1lLWNvbXBvc2l0aW9uLWNsZWFycHJlZWRpdC1kaWZmLnR4dFVUCQADiI2BWImNgVh1
eAsAAQT1AQAABBQAAAC9jsFugzAMhu88he+Q5TDtTgeZVK1Vp7GtZwNuG8kkiDhTefsFWvURJku2
bH/+fyulQP94jgMFXaOgNsdGH6l9t3Ivr9Fyr2tq41kzzj6KEgqiJgqRJWjqrVh31taNUbQdSHV+
GH1IU+9Ux4TTONFCKbqO1An1T3KVLM/zf7TGTiLyalyWoJ6LF8iXVJYZfHlYZGFAlxieCyCHLROg
g+3eFLDqQ3fBKcnQFApYtUEuBDfHhe0hEIE9rePbyckS9+Adz4lzgtaF+za9iAy/yJEySKGa76oy
TQPVYf9xaEyWv222O1M/engAO7P5zP4AUEsDBBQAAgAIADahM0rhnU0jqAAAAAIBAAA3ABwAZWRp
dGluZy9pbnB1dC9pbWUtY29tcG9zaXRpb24tY2xlYXJwcmVlZGl0LWV4cGVjdGVkLnR4dFVUCQAD
iI2BWIiNgVh1eAsAAQT1AQAABBQAAABNjkEKAjEMRfc9RXZu5hIydCEoitUDZGy0gZjKtDPo7Q0d
RTeB//9Lfk6JC1Qq1WbCChchHFlvgOY+Tef7IxeCmKnoqoLFMxlK3yQu3ECJJQJry5p1ZZLo3Cm3
+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
cgdjt+lx8E3erOUOxg6Xx8H3ZulheDB+eH8cfG+WIIYHY4jZUfCN3ixDjA7GEPPj4HuzDDE6BEOY
C+6Xj6vVcUAegiYkkuMhnB7Bwd9zmWr9qM93177+x3//BlBLAwQUAAIACAA3oTNKdo2dxm4AAAAT
AQAAMAAcAGVkaXRpbmcvaW5wdXQvcGFzc3dvcmQtZWNoby1wYXNzbm9kZTItYWN0dWFsLnR4dFVU
CQADio2BWIqNgVh1eAsAAQT1AQAABBQAAADFzdEJAkEMBND/rSIFiAUIflqBNhCys97C4h2TBLzu
FQVPbMDPYeYxF3i49Cb9tmSITUoXJcRhSVSxmYTFWKWUc5rB/fAp2a9TiLYA94L78hyiHpsOx07U
InW8UzmRMzf4IlIxdP2Cwfx1f7h8AFBLAwQUAAIACAA3oTNKwbieLN0AAACHAgAALgAcAGVkaXRp
bmcvaW5wdXQvcGFzc3dvcmQtZWNoby1wYXNzbm9kZTItZGlmZi50eHRVVAkAA4qNgViLjYFYdXgL
AAEE9QEAAAQUAAAA1Y89awMxDIZ3/wrtjmPaoUOhcJRk6pjSzIqtuzM450OSafLvex/9gk5dCkUg
8SIeva+cc+BfSq5nEr9DRb8/HvyRTk9J38djTTn6HZ1q5zNeS1WnJOqYpGYVTzFpGjqfhrGqH1Hk
tXB0FPriZjWUSLeOLiMFpbjVixpr7d+4YtCKefFsGnA3mzuwc2saA8/TOYHUwnICQo8sgEwgFCpT
hFCYp8z5CmaqQw2BRO4/15y6XgFbJd7Cx3sPLWahDazGqzLuB7tQEGn67BurXL/QWRi7Zy78K261
/Gdx3wBQSwMEFAACAAgAN6EzSk/OKnZqAAAAFQEAADIAHABlZGl0aW5nL2lucHV0L3Bhc3N3b3Jk
LWVjaG8tcGFzc25vZGUyLWV4cGVjdGVkLnR4dFVUCQADio2BWIqNgVh1eAsAAQT1AQAABBQAAADF
zd0JwkAQBOD3VDEFBAsQrEIbWPbmzMGhYX/AdG9UiIIF5HGY+ZgLPRytot3mDOgk5hAjnJrGAr2b
UaMvGIZzqtL9uJXWrlNAatAO4GNehyynKt05QjRS+if90zdCYZflh4blV77CLp9PUEsDBBQAAgAI
ADihM0r4FAp08QcAAFQdAAA2ABwAZWRpdGluZy9pbnB1dC9wYXNzd29yZC1lY2hvLXBhc3Nub2Rl
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
gBsJcXfpbgLqe2E2Xod/gj8hZ4UPSKLw8etz+BVHvxBpfz5XhCbhA46qTQg8AWP6EkN+hct7RaUI
cQLEKDahCmWun2Y389nNaOyPfWhcKkQDuZMAZ9xG0fgIdHk8oy/nQ+Pq0u6Ze0lHRN1YvPbHnoMc
ZJLCCerb/qGFuFyPwXQwv25JQVA3Zb4vIlGuegWhOsM8lauIf7+Rq1u4LulXwKbed+o5tC+3oZq1
24CjYNj9DKsL4fS+rlbopKInlGAfsEhX0fe0aETP5dpON2UPP5qowBP9mft/UEsDBAoAAgAAADih
M0pP07nFBQAAAAUAAAAmABwAZWRpdGluZy9pbnNlcnRpbmcvNTY4NTYwMS0yLWFjdHVhbC50eHRV
VAkAA4uNgViLjYFYdXgLAAEE9QEAAAQUAAAAPGJyPgpQSwMEFAACAAgAOKEzSkc2e2eHAAAA/QAA
ACQAHABlZGl0aW5nL2luc2VydGluZy81Njg1NjAxLTItZGlmZi50eHRVVAkAA4uNgViLjYFYdXgL
AAEE9QEAAAQUAAAAtc2xCsIwEIDhPU+RPZxnhBaHUoLUyVGwc9IcJRBbSS5S314afAWn/9t+AJD4
WGN5UsbBssXreMeR3C3wL5cSoseBXJkx2s9aGJgyQ6JcImckHzgsM4YlU6pq2nPTHjWcgLYXTUz+
wBsLpdQ/X3biYmM9GSNBS6WlMQI6l/rOh3dfgbuE2i2+UEsDBBQAAgAIADihM0oUvcgtEQAAABQA
AAAoABwAZWRpdGluZy9pbnNlcnRpbmcvNTY4NTYwMS0yLWV4cGVjdGVkLnR4dFVUCQADi42BWIuN
gVh1eAsAAQT1AQAABBQAAACzSSqys0nJLLOzATH0QSwuAFBLAwQUAAIACAA4oTNKOLEG1sQCAABU
CAAADQAcAGVycm9yX2xvZy50eHRVVAkAA4uNgVhTjYFYdXgLAAEE9QEAAAQUAAAAxVVNc9owEL33
V+xwSTtTWzbY+OOWQtrQkjQTSHNgmIyxBVZiSR5JLsm/79oEQpOQhElnOhwAafe9pyft7mScV/A9
EeBG0HZiJ4x91/a9TuQ7+N8NpjDRuoiXiRL4s2QZdMPIc6dweOy4kRPF4LYD28GPG3teJ3ZAU/Wb
KkipMmzO0sRQyCTVcPpzDEykRZVRQL5BH5Y5S3PgiUlz3Dc5XeeKhNMPk+eUdf3QCbsvKGuvlIVB
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
AAAEFAAAAFBLAQIeAwoAAgAAAByhM0pUIFCJBwAAAAcAAAARABgAAAAAAAEAAACkgYF2AABfd3B0
X2NlcnRzL3NlcmlhbFVUBQADV42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAByhM0qq07Zu
BwAAAAcAAAAVABgAAAAAAAEAAACkgdN2AABfd3B0X2NlcnRzL3NlcmlhbC5vbGRVVAUAA1eNgVh1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAaoTNKAAAAAAAAAAAAAAAADgAYAAAAAAAAAAAApIEp
dwAAYWNjZXNzX2xvZy50eHRVVAUAA1ONgVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAgoTNK
AAAAAAAAAAAAAAAADgAYAAAAAAAAABAA7UFxdwAAYWNjZXNzaWJpbGl0eS9VVAUAA1yNgVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAdoTNKcGNKQAkBAADaAQAAPQAYAAAAAAABAAAApIG5dwAA
YWNjZXNzaWJpbGl0eS9hY2Nlc3NpYmlsaXR5LW5vZGUtbWVtb3J5LW1hbmFnZW1lbnQtYWN0dWFs
LnR4dFVUBQADWY2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAB2hM0p78sxvRwEAACEDAAA7
ABgAAAAAAAEAAACkgTl5AABhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHktbm9kZS1tZW1vcnkt
bWFuYWdlbWVudC1kaWZmLnR4dFVUBQADWY2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAB2h
M0pOq06t5QAAAJEBAAA/ABgAAAAAAAEAAACkgfV6AABhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxp
dHktbm9kZS1tZW1vcnktbWFuYWdlbWVudC1leHBlY3RlZC50eHRVVAUAA1mNgVh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAdoTNKbq71oawIAAC1IAAAQwAYAAAAAAABAAAApIFTfAAAYWNjZXNz
aWJpbGl0eS9hY2Nlc3NpYmlsaXR5LW5vZGUtbWVtb3J5LW1hbmFnZW1lbnQtcHJldHR5LWRpZmYu
aHRtbFVUBQADWY2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAB2hM0pMb4TxKQEAAFwCAAA0
ABgAAAAAAAEAAACkgXyFAABhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHktbm9kZS1yZXBhcmVu
dC1hY3R1YWwudHh0VVQFAANZjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHaEzSoEjpIJQ
AQAAjwMAADIAGAAAAAAAAQAAAKSBE4cAAGFjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS1ub2Rl
LXJlcGFyZW50LWRpZmYudHh0VVQFAANZjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHaEz
SoDu+PwGAQAA9wEAADYAGAAAAAAAAQAAAKSBz4gAAGFjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0
eS1ub2RlLXJlcGFyZW50LWV4cGVjdGVkLnR4dFVUBQADWY2BWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAB2hM0owtgpFvggAAN0iAAA6ABgAAAAAAAEAAACkgUWKAABhY2Nlc3NpYmlsaXR5L2Fj
Y2Vzc2liaWxpdHktbm9kZS1yZXBhcmVudC1wcmV0dHktZGlmZi5odG1sVVQFAANZjYFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAHaEzShCWYYvWAAAANgEAADYAGAAAAAAAAQAAAKSBd5MAAGFj
Y2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS1vYmplY3QtZGV0YWNoZWQtYWN0dWFsLnR4dFVUBQAD
WY2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAB2hM0pWCzkEBAEAABUCAAA0ABgAAAAAAAEA
AACkgb2UAABhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHktb2JqZWN0LWRldGFjaGVkLWRpZmYu
dHh0VVQFAANZjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHaEzSrXnLi/DAAAAIwEAADgA
GAAAAAAAAQAAAKSBL5YAAGFjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS1vYmplY3QtZGV0YWNo
ZWQtZXhwZWN0ZWQudHh0VVQFAANZjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHaEzSlDU
kFY1CAAAThwAADwAGAAAAAAAAQAAAKSBZJcAAGFjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS1v
YmplY3QtZGV0YWNoZWQtcHJldHR5LWRpZmYuaHRtbFVUBQADWo2BWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAB2hM0pdnWnSyAAAAC0CAAAuABgAAAAAAAEAAACkgQ+gAABhY2Nlc3NpYmlsaXR5
L2FyaWEtY2hlY2tib3gtY2hlY2tlZC1hY3R1YWwudHh0VVQFAANajYFYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAHaEzSsP9MTTUAAAACgMAACwAGAAAAAAAAQAAAKSBP6EAAGFjY2Vzc2liaWxp
dHkvYXJpYS1jaGVja2JveC1jaGVja2VkLWRpZmYudHh0VVQFAANajYFYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAHaEzSrVvWwu2AAAA4QEAADAAGAAAAAAAAQAAAKSBeaIAAGFjY2Vzc2liaWxp
dHkvYXJpYS1jaGVja2JveC1jaGVja2VkLWV4cGVjdGVkLnR4dFVUBQADWo2BWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIACChM0ogr5rZPggAAFEmAAA0ABgAAAAAAAEAAACkgZmjAABhY2Nlc3Np
YmlsaXR5L2FyaWEtY2hlY2tib3gtY2hlY2tlZC1wcmV0dHktZGlmZi5odG1sVVQFAANbjYFYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIKEzSsP8ie60AAAAKQEAACsAGAAAAAAAAQAAAKSBRawA
AGFjY2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC10ZXh0LWFjdHVhbC50eHRVVAUAA1uNgVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAgoTNKYZw2efUAAAAzAgAAKQAYAAAAAAABAAAApIFerQAA
YWNjZXNzaWJpbGl0eS9hcmlhLWNoZWNrYm94LXRleHQtZGlmZi50eHRVVAUAA1uNgVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAgoTNKChoatb0AAAA0AQAALQAYAAAAAAABAAAApIG2rgAAYWNj
ZXNzaWJpbGl0eS9hcmlhLWNoZWNrYm94LXRleHQtZXhwZWN0ZWQudHh0VVQFAANbjYFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAIKEzSsVrPNIlCAAAoB4AADEAGAAAAAAAAQAAAKSB2q8AAGFj
Y2Vzc2liaWxpdHkvYXJpYS1jaGVja2JveC10ZXh0LXByZXR0eS1kaWZmLmh0bWxVVAUAA1uNgVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAgoTNKEGCiFdkAAABqAQAAJgAYAAAAAAABAAAApIFq
uAAAYWNjZXNzaWJpbGl0eS9hcmlhLWNvbWJvYm94LWFjdHVhbC50eHRVVAUAA1uNgVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAgoTNKv/AoHQgBAAAbAgAAJAAYAAAAAAABAAAApIGjuQAAYWNj
ZXNzaWJpbGl0eS9hcmlhLWNvbWJvYm94LWRpZmYudHh0VVQFAANbjYFYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAIKEzSiRLfxLXAAAAZwEAACgAGAAAAAAAAQAAAKSBCbsAAGFjY2Vzc2liaWxp
dHkvYXJpYS1jb21ib2JveC1leHBlY3RlZC50eHRVVAUAA1uNgVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAgoTNKertsZUUIAACLHwAALAAYAAAAAAABAAAApIFCvAAAYWNjZXNzaWJpbGl0eS9h
cmlhLWNvbWJvYm94LXByZXR0eS1kaWZmLmh0bWxVVAUAA1yNgVh1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAAAxoTNKAAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA7UHtxAAAYWNjZXNzaWJpbGl0eS9t
YWMvVVQFAAN9jYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHaEzShaBH1iSAQAAtwUAACYA
GAAAAAAAAQAAAKSBOcUAAGFjY2Vzc2liaWxpdHkvbWFjL2FjY2Vzc2tleS1hY3R1YWwudHh0VVQF
AANZjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHaEzSjJ7JI/vAQAA7wYAACQAGAAAAAAA
AQAAAKSBK8cAAGFjY2Vzc2liaWxpdHkvbWFjL2FjY2Vzc2tleS1kaWZmLnR4dFVUBQADWY2BWHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAB2hM0qDNqAlFQAAABUAAAAoABgAAAAAAAEAAACkgXjJ
AABhY2Nlc3NpYmlsaXR5L21hYy9hY2Nlc3NrZXktZXhwZWN0ZWQudHh0VVQFAANZjYFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAHaEzSsd9MncKCgAANUUAACwAGAAAAAAAAQAAAKSB78kAAGFj
Y2Vzc2liaWxpdHkvbWFjL2FjY2Vzc2tleS1wcmV0dHktZGlmZi5odG1sVVQFAANZjYFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAHaEzSjgGuN7WAAAAlwEAADEAGAAAAAAAAQAAAKSBX9QAAGFj
Y2Vzc2liaWxpdHkvbWFjL2FyZWEtd2l0aC1hcmlhLWxhYmVsLWFjdHVhbC50eHRVVAUAA1qNgVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAdoTNKnGFF3jABAAAMAwAALwAYAAAAAAABAAAApIGg
1QAAYWNjZXNzaWJpbGl0eS9tYWMvYXJlYS13aXRoLWFyaWEtbGFiZWwtZGlmZi50eHRVVAUAA1qN
gVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAdoTNKHd1m7MgAAABhAQAAMwAYAAAAAAABAAAA
pIE51wAAYWNjZXNzaWJpbGl0eS9tYWMvYXJlYS13aXRoLWFyaWEtbGFiZWwtZXhwZWN0ZWQudHh0
VVQFAANajYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHaEzSvQBmXJ2CAAAIx8AADcAGAAA
AAAAAQAAAKSBbtgAAGFjY2Vzc2liaWxpdHkvbWFjL2FyZWEtd2l0aC1hcmlhLWxhYmVsLXByZXR0
eS1kaWZmLmh0bWxVVAUAA1qNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAdoTNKk9RTQdcA
AABVAQAAKwAYAAAAAAABAAAApIFV4QAAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1kaXJlY3Rvcnkt
YWN0dWFsLnR4dFVUBQADWo2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAB2hM0oQ9ioDKAEA
AFQCAAApABgAAAAAAAEAAACkgZHiAABhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWRpcmVjdG9yeS1k
aWZmLnR4dFVUBQADWo2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAB2hM0pIQk5dwgAAACEB
AAAtABgAAAAAAAEAAACkgRzkAABhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWRpcmVjdG9yeS1leHBl
Y3RlZC50eHRVVAUAA1qNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAgoTNK6eFnyHkIAAB1
HgAAMQAYAAAAAAABAAAApIFF5QAAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1kaXJlY3RvcnktcHJl
dHR5LWRpZmYuaHRtbFVUBQADW42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACChM0pNB2r0
FgEAALQCAAA5ABgAAAAAAAEAAACkgSnuAABhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWV4cGFuZGVk
LXN0YW5kYXJkLWl0ZW1zLWFjdHVhbC50eHRVVAUAA1uNgVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAgoTNKrF/q4XYBAADzBAAANwAYAAAAAAABAAAApIGy7wAAYWNjZXNzaWJpbGl0eS9tYWMv
YXJpYS1leHBhbmRlZC1zdGFuZGFyZC1pdGVtcy1kaWZmLnR4dFVUBQADW42BWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIACChM0pfOtX79gAAAEMCAAA7ABgAAAAAAAEAAACkgZnxAABhY2Nlc3Np
YmlsaXR5L21hYy9hcmlhLWV4cGFuZGVkLXN0YW5kYXJkLWl0ZW1zLWV4cGVjdGVkLnR4dFVUBQAD
W42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACChM0qG8IQv7wgAAJElAAA/ABgAAAAAAAEA
AACkgQTzAABhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWV4cGFuZGVkLXN0YW5kYXJkLWl0ZW1zLXBy
ZXR0eS1kaWZmLmh0bWxVVAUAA1yNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAgoTNK6Kmx
K2cBAADOAwAAPQAYAAAAAAABAAAApIFs/AAAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1ncmlkLXdp
dGgtc3RyYW5nZS1oaWVyYXJjaHktYWN0dWFsLnR4dFVUBQADXI2BWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIACChM0pp5GthswEAADEGAAA7ABgAAAAAAAEAAACkgUr+AABhY2Nlc3NpYmlsaXR5
L21hYy9hcmlhLWdyaWQtd2l0aC1zdHJhbmdlLWhpZXJhcmNoeS1kaWZmLnR4dFVUBQADXI2BWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACChM0qdkOs2PQEAABkDAAA/ABgAAAAAAAEAAACkgXIA
AQBhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWdyaWQtd2l0aC1zdHJhbmdlLWhpZXJhcmNoeS1leHBl
Y3RlZC50eHRVVAUAA1yNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAgoTNKLQdBD0gJAAD+
KwAAQwAYAAAAAAABAAAApIEoAgEAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1ncmlkLXdpdGgtc3Ry
YW5nZS1oaWVyYXJjaHktcHJldHR5LWRpZmYuaHRtbFVUBQADXI2BWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIACGhM0rMJbdL+QAAALcBAAA8ABgAAAAAAAEAAACkge0LAQBhY2Nlc3NpYmlsaXR5
L21hYy9hcmlhLWxpdmVyZWdpb24tbWFycXVlZS1kZWZhdWx0LWFjdHVhbC50eHRVVAUAA16NgVh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAhoTNKLwtkgjsBAAAkAwAAOgAYAAAAAAABAAAApIFc
DQEAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1saXZlcmVnaW9uLW1hcnF1ZWUtZGVmYXVsdC1kaWZm
LnR4dFVUBQADXo2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACGhM0rvNljD7QAAAJ8BAAA+
ABgAAAAAAAEAAACkgQsPAQBhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWxpdmVyZWdpb24tbWFycXVl
ZS1kZWZhdWx0LWV4cGVjdGVkLnR4dFVUBQADXo2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ACGhM0piiM9DkQgAAFIfAABCABgAAAAAAAEAAACkgXAQAQBhY2Nlc3NpYmlsaXR5L21hYy9hcmlh
LWxpdmVyZWdpb24tbWFycXVlZS1kZWZhdWx0LXByZXR0eS1kaWZmLmh0bWxVVAUAA16NgVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAwoTNKjNBfV9UAAAA3AQAANQAYAAAAAAABAAAApIF9GQEA
YWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1saXZlcmVnaW9uLW9uLWltYWdlLWFjdHVhbC50eHRVVAUA
A3yNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAwoTNK/cQWCOQAAACbAQAAMwAYAAAAAAAB
AAAApIHBGgEAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1saXZlcmVnaW9uLW9uLWltYWdlLWRpZmYu
dHh0VVQFAAN8jYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMKEzSvghJpGxAAAAAwEAADcA
GAAAAAAAAQAAAKSBEhwBAGFjY2Vzc2liaWxpdHkvbWFjL2FyaWEtbGl2ZXJlZ2lvbi1vbi1pbWFn
ZS1leHBlY3RlZC50eHRVVAUAA3yNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAxoTNKqyLX
77oHAAChGAAAOwAYAAAAAAABAAAApIE0HQEAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1saXZlcmVn
aW9uLW9uLWltYWdlLXByZXR0eS1kaWZmLmh0bWxVVAUAA32NgVh1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAAAuoTNKAAAAAAAAAAAAAAAAHwAYAAAAAAAAABAA7UFjJQEAYWNjZXNzaWJpbGl0eS9t
YWMvdmFsdWUtY2hhbmdlL1VUBQADd42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC6hM0of
EXxTwQAAABMBAABQABgAAAAAAAEAAACkgbwlAQBhY2Nlc3NpYmlsaXR5L21hYy92YWx1ZS1jaGFu
Z2UvdmFsdWUtY2hhbmdlLXVzZXItaW5mby1jb250ZW50ZWRpdGFibGUtYWN0dWFsLnR4dFVUBQAD
d42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC6hM0rDm7uMzAEAAMkMAABOABgAAAAAAAEA
AACkgQcnAQBhY2Nlc3NpYmlsaXR5L21hYy92YWx1ZS1jaGFuZ2UvdmFsdWUtY2hhbmdlLXVzZXIt
aW5mby1jb250ZW50ZWRpdGFibGUtZGlmZi50eHRVVAUAA3eNgVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAAuoTNKHZMAPy0BAAAfCwAAUgAYAAAAAAABAAAApIFbKQEAYWNjZXNzaWJpbGl0eS9t
YWMvdmFsdWUtY2hhbmdlL3ZhbHVlLWNoYW5nZS11c2VyLWluZm8tY29udGVudGVkaXRhYmxlLWV4
cGVjdGVkLnR4dFVUBQADd42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC6hM0o82wbZqAkA
AFVDAABWABgAAAAAAAEAAACkgRQrAQBhY2Nlc3NpYmlsaXR5L21hYy92YWx1ZS1jaGFuZ2UvdmFs
dWUtY2hhbmdlLXVzZXItaW5mby1jb250ZW50ZWRpdGFibGUtcHJldHR5LWRpZmYuaHRtbFVUBQAD
d42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACuhM0oAAAAAAAAAAAAAAAAHABgAAAAAAAAA
EADtQUw1AQBjcnlwdG8vVVQFAANyjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAALKEzSgAA
AAAAAAAAAAAAAA4AGAAAAAAAAAAQAO1BjTUBAGNyeXB0by9zdWJ0bGUvVVQFAANzjYFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgACAAAAK6EzSiXg0wgsAAAALAAAAD4AGAAAAAAAAQAAAKSB1TUBAGNy
eXB0by9zdWJ0bGUvcnNhLWdlbmVyYXRlLWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1zdGRlcnIu
dHh0VVQFAANyjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALKEzSjA7uLFLAAAAaAAAADwA
GAAAAAAAAQAAAKSBeTYBAGNyeXB0by9zdWJ0bGUvcnNhLWltcG9ydC1rZXktbWFsZm9ybWVkLXBh
cmFtZXRlcnMtc3RkZXJyLnR4dFVUBQADc42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACih
M0oAAAAAAAAAAAAAAAAPABgAAAAAAAAAEADtQTo3AQBjcnlwdG8vd29ya2Vycy9VVAUAA2uNgVh1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAooTNKAAAAAAAAAAAAAAAAFgAYAAAAAAAAABAA7UGD
NwEAY3J5cHRvL3dvcmtlcnMvc3VidGxlL1VUBQADa42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AgAAACihM0ol4NMILAAAACwAAAAxABgAAAAAAAEAAACkgdM3AQBjcnlwdG8vd29ya2Vycy9zdWJ0
bGUvcnNhLWdlbmVyYXRlLWtleS1zdGRlcnIudHh0VVQFAANrjYFYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAL6EzSgAAAAAAAAAAAAAAAAYAGAAAAAAAAAAQAO1BajgBAGNzc29tL1VUBQADeo2B
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC+hM0qeTWUzBwYAAGdAAAAkABgAAAAAAAEAAACk
gao4AQBjc3NvbS9jc3N2YWx1ZS1jb21wYXJpc29uLWFjdHVhbC50eHRVVAUAA3mNgVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAvoTNKFNtj9qAIAADoawAAIgAYAAAAAAABAAAApIEPPwEAY3Nz
b20vY3NzdmFsdWUtY29tcGFyaXNvbi1kaWZmLnR4dFVUBQADeo2BWHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAC+hM0pjHqwzvwUAAAsqAAAmABgAAAAAAAEAAACkgQtIAQBjc3NvbS9jc3N2YWx1
ZS1jb21wYXJpc29uLWV4cGVjdGVkLnR4dFVUBQADeo2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAC+hM0q0rhiutxUAACYtAQAqABgAAAAAAAEAAACkgSpOAQBjc3NvbS9jc3N2YWx1ZS1jb21w
YXJpc29uLXByZXR0eS1kaWZmLmh0bWxVVAUAA3qNgVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AAAvoTNKAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UFFZAEAZGlzcGxheWxpc3RzL1VUBQADeY2B
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC+hM0qjV/3oUAAAAI4AAAAyABgAAAAAAAEAAACk
gYxkAQBkaXNwbGF5bGlzdHMvZXh0ZW50LWluY2x1ZGVzLXRyYW5zZm9ybXMtc3RkZXJyLnR4dFVU
BQADeY2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC+hM0rylpXVRwAAAEkAAAApABgAAAAA
AAEAAACkgUhlAQBkaXNwbGF5bGlzdHMvbGF5ZXItZGlzcGF5LWxpc3Qtc3RkZXJyLnR4dFVUBQAD
eY2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAADehM0oAAAAAAAAAAAAAAAAIABgAAAAAAAAA
EADtQfJlAQBlZGl0aW5nL1VUBQADiY2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAADWhM0oA
AAAAAAAAAAAAAAAOABgAAAAAAAAAEADtQTRmAQBlZGl0aW5nL2NhcmV0L1VUBQADho2BWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIADWhM0oo2y1wyQEAAKUEAAAkABgAAAAAAAEAAACkgXxmAQBl
ZGl0aW5nL2NhcmV0L2NhcmV0LWNvbG9yLWFjdHVhbC50eHRVVAUAA4WNgVh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAA1oTNK+VGZ6PgAAACsAgAAIgAYAAAAAAABAAAApIGjaAEAZWRpdGluZy9j
YXJldC9jYXJldC1jb2xvci1kaWZmLnR4dFVUBQADhY2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIADWhM0rTbEvjCAIAAHQFAAAmABgAAAAAAAEAAACkgfdpAQBlZGl0aW5nL2NhcmV0L2NhcmV0
LWNvbG9yLWV4cGVjdGVkLnR4dFVUBQADhY2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADWh
M0qSn5D70QcAAHIaAAAqABgAAAAAAAEAAACkgV9sAQBlZGl0aW5nL2NhcmV0L2NhcmV0LWNvbG9y
LXByZXR0eS1kaWZmLmh0bWxVVAUAA4WNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA1oTNK
LaQLNA0rAAARUwAAMwAYAAAAAAAAAAAApIGUdAEAZWRpdGluZy9jYXJldC9jb2xvci1zcGFuLWlu
c2lkZS1lZGl0YWJsZS1hY3R1YWwucG5nVVQFAAOGjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgANaEzSkR56K6+NQAAWF4AAD4AGAAAAAAAAAAAAKSBDqABAGVkaXRpbmcvY2FyZXQvY29sb3It
c3Bhbi1pbnNpZGUtZWRpdGFibGUtYmFja2dyb3VuZC1hY3R1YWwucG5nVVQFAAOGjYFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgANaEzSvkDZ1/cAAAAtQ4AADwAGAAAAAAAAAAAAKSBRNYBAGVk
aXRpbmcvY2FyZXQvY29sb3Itc3Bhbi1pbnNpZGUtZWRpdGFibGUtYmFja2dyb3VuZC1kaWZmLnBu
Z1VUBQADho2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADWhM0q2NLcanAUAAEgSAAA+ABgA
AAAAAAEAAACkgZbXAQBlZGl0aW5nL2NhcmV0L2NvbG9yLXNwYW4taW5zaWRlLWVkaXRhYmxlLWJh
Y2tncm91bmQtZGlmZnMuaHRtbFVUBQADho2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADWh
M0og4iXluQAAADwBAABBABgAAAAAAAEAAACkgardAQBlZGl0aW5nL2NhcmV0L2NvbG9yLXNwYW4t
aW5zaWRlLWVkaXRhYmxlLWJhY2tncm91bmQtZXhwZWN0ZWQuaHRtbFVUBQADho2BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIADWhM0rEE+eGfTYAAJheAABAABgAAAAAAAAAAACkgd7eAQBlZGl0
aW5nL2NhcmV0L2NvbG9yLXNwYW4taW5zaWRlLWVkaXRhYmxlLWJhY2tncm91bmQtZXhwZWN0ZWQu
cG5nVVQFAAOGjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANaEzSvkDZ1/cAAAAtQ4AADEA
GAAAAAAAAAAAAKSB1RUCAGVkaXRpbmcvY2FyZXQvY29sb3Itc3Bhbi1pbnNpZGUtZWRpdGFibGUt
ZGlmZi5wbmdVVAUAA4aNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA1oTNKEl9ppJQFAAAy
EgAAMwAYAAAAAAABAAAApIEcFwIAZWRpdGluZy9jYXJldC9jb2xvci1zcGFuLWluc2lkZS1lZGl0
YWJsZS1kaWZmcy5odG1sVVQFAAOGjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANaEzSoR9
PRG0AAAAGgEAADYAGAAAAAAAAQAAAKSBHR0CAGVkaXRpbmcvY2FyZXQvY29sb3Itc3Bhbi1pbnNp
ZGUtZWRpdGFibGUtZXhwZWN0ZWQuaHRtbFVUBQADho2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIADWhM0rsRh1WGCsAALNSAAA1ABgAAAAAAAAAAACkgUEeAgBlZGl0aW5nL2NhcmV0L2NvbG9y
LXNwYW4taW5zaWRlLWVkaXRhYmxlLWV4cGVjdGVkLnBuZ1VUBQADho2BWHV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAADihM0oAAAAAAAAAAAAAAAARABgAAAAAAAAAEADtQchJAgBlZGl0aW5nL2Rl
bGV0aW5nL1VUBQADi42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADehM0rTP0oIMQEAAA8C
AAAjABgAAAAAAAEAAACkgRNKAgBlZGl0aW5nL2RlbGV0aW5nLzU1NDY3NjMtYWN0dWFsLnR4dFVU
BQADiY2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADehM0pZ/ezKBQIAAK4IAAAhABgAAAAA
AAEAAACkgaFLAgBlZGl0aW5nL2RlbGV0aW5nLzU1NDY3NjMtZGlmZi50eHRVVAUAA4mNgVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAA3oTNKlV/LUIMBAADjBgAAJQAYAAAAAAABAAAApIEBTgIA
ZWRpdGluZy9kZWxldGluZy81NTQ2NzYzLWV4cGVjdGVkLnR4dFVUBQADiY2BWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIADehM0qiQSbSOgkAANMpAAApABgAAAAAAAEAAACkgeNPAgBlZGl0aW5n
L2RlbGV0aW5nLzU1NDY3NjMtcHJldHR5LWRpZmYuaHRtbFVUBQADiY2BWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIADehM0orSqo3UgAAAF8AAAAlABgAAAAAAAEAAACkgYBZAgBlZGl0aW5nL2Rl
bGV0aW5nLzU4NDczMzAtMi1hY3R1YWwudHh0VVQFAAOKjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAN6EzSrjWYI+8AAAASQEAACMAGAAAAAAAAQAAAKSBMVoCAGVkaXRpbmcvZGVsZXRpbmcv
NTg0NzMzMC0yLWRpZmYudHh0VVQFAAOKjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAN6Ez
SiCiLOdMAAAAWwAAACcAGAAAAAAAAQAAAKSBSlsCAGVkaXRpbmcvZGVsZXRpbmcvNTg0NzMzMC0y
LWV4cGVjdGVkLnR4dFVUBQADio2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADehM0rqe+tu
lAcAAKAYAAArABgAAAAAAAEAAACkgfdbAgBlZGl0aW5nL2RlbGV0aW5nLzU4NDczMzAtMi1wcmV0
dHktZGlmZi5odG1sVVQFAAOKjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAN6EzSsU6adOr
AQAA0BMAADsAGAAAAAAAAQAAAKSB8GMCAGVkaXRpbmcvZGVsZXRpbmcvY29sbGFwc2Utd2hpdGVz
cGFjZS0zNTg3NjAxLWZpeC1hY3R1YWwudHh0VVQFAAOKjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAN6EzSkgT1KcLAQAA2gIAADkAGAAAAAAAAQAAAKSBEGYCAGVkaXRpbmcvZGVsZXRpbmcv
Y29sbGFwc2Utd2hpdGVzcGFjZS0zNTg3NjAxLWZpeC1kaWZmLnR4dFVUBQADio2BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIADehM0qNwQnRzwEAAJ8UAAA9ABgAAAAAAAEAAACkgY5nAgBlZGl0
aW5nL2RlbGV0aW5nL2NvbGxhcHNlLXdoaXRlc3BhY2UtMzU4NzYwMS1maXgtZXhwZWN0ZWQudHh0
VVQFAAOKjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOKEzSkYQgjjjBwAAiRoAAEEAGAAA
AAAAAQAAAKSB1GkCAGVkaXRpbmcvZGVsZXRpbmcvY29sbGFwc2Utd2hpdGVzcGFjZS0zNTg3NjAx
LWZpeC1wcmV0dHktZGlmZi5odG1sVVQFAAOLjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
OKEzSgAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1BMnICAGVkaXRpbmcvZXhlY0NvbW1hbmQvVVQF
AAOLjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANaEzSiuHNvSTAAAAEgEAACQAGAAAAAAA
AQAAAKSBgHICAGVkaXRpbmcvZXhlY0NvbW1hbmQvMTYwNDktYWN0dWFsLnR4dFVUBQADho2BWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADWhM0qEHNmYKAEAAD0CAAAiABgAAAAAAAEAAACkgXFz
AgBlZGl0aW5nL2V4ZWNDb21tYW5kLzE2MDQ5LWRpZmYudHh0VVQFAAOGjYFYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgANaEzSnjXu2bGAAAAUgEAACYAGAAAAAAAAQAAAKSB9XQCAGVkaXRpbmcv
ZXhlY0NvbW1hbmQvMTYwNDktZXhwZWN0ZWQudHh0VVQFAAOGjYFYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgANqEzSqSW23wcCAAAXxwAACoAGAAAAAAAAQAAAKSBG3YCAGVkaXRpbmcvZXhlY0Nv
bW1hbmQvMTYwNDktcHJldHR5LWRpZmYuaHRtbFVUBQADh42BWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIADahM0qrB1UCmgAAANgAAAAkABgAAAAAAAEAAACkgZt+AgBlZGl0aW5nL2V4ZWNDb21t
YW5kLzE5MDg5LWFjdHVhbC50eHRVVAUAA4eNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA2
oTNKRfILgwwBAADNAQAAIgAYAAAAAAABAAAApIGTfwIAZWRpdGluZy9leGVjQ29tbWFuZC8xOTA4
OS1kaWZmLnR4dFVUBQADh42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADahM0pKfuOzogAA
AOMAAAAmABgAAAAAAAEAAACkgfuAAgBlZGl0aW5nL2V4ZWNDb21tYW5kLzE5MDg5LWV4cGVjdGVk
LnR4dFVUBQADh42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADahM0oocMXl7AcAAMAYAAAq
ABgAAAAAAAEAAACkgf2BAgBlZGl0aW5nL2V4ZWNDb21tYW5kLzE5MDg5LXByZXR0eS1kaWZmLmh0
bWxVVAUAA4eNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA2oTNKWkCdyNUAAAC2AwAAJgAY
AAAAAAABAAAApIFNigIAZWRpdGluZy9leGVjQ29tbWFuZC8xOTY1My0xLWFjdHVhbC50eHRVVAUA
A4eNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA2oTNKX/v67JcBAADpBQAAJAAYAAAAAAAB
AAAApIGCiwIAZWRpdGluZy9leGVjQ29tbWFuZC8xOTY1My0xLWRpZmYudHh0VVQFAAOHjYFYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANqEzSldfvAcAAQAAMAQAACgAGAAAAAAAAQAAAKSBd40C
AGVkaXRpbmcvZXhlY0NvbW1hbmQvMTk2NTMtMS1leHBlY3RlZC50eHRVVAUAA4eNgVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAA2oTNKctKHjl8JAAA0MgAALAAYAAAAAAABAAAApIHZjgIAZWRp
dGluZy9leGVjQ29tbWFuZC8xOTY1My0xLXByZXR0eS1kaWZmLmh0bWxVVAUAA4iNgVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAA2oTNK49tL06kAAADmAAAAJAAYAAAAAAABAAAApIGemAIAZWRp
dGluZy9leGVjQ29tbWFuZC8yNTI1Ni1hY3R1YWwudHh0VVQFAAOIjYFYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgANqEzSnHyjn0pAQAA9wEAACIAGAAAAAAAAQAAAKSBpZkCAGVkaXRpbmcvZXhl
Y0NvbW1hbmQvMjUyNTYtZGlmZi50eHRVVAUAA4iNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAA2oTNKDnDJrcIAAAAMAQAAJgAYAAAAAAABAAAApIEqmwIAZWRpdGluZy9leGVjQ29tbWFuZC8y
NTI1Ni1leHBlY3RlZC50eHRVVAUAA4iNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA2oTNK
0G5bnAgIAAB7GQAAKgAYAAAAAAABAAAApIFMnAIAZWRpdGluZy9leGVjQ29tbWFuZC8yNTI1Ni1w
cmV0dHktZGlmZi5odG1sVVQFAAOIjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANqEzSm8F
60K8AAAAEQEAACQAGAAAAAAAAQAAAKSBuKQCAGVkaXRpbmcvZXhlY0NvbW1hbmQvMjUzMjAtYWN0
dWFsLnR4dFVUBQADiI2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADahM0rqlMZ5NgEAAEoC
AAAiABgAAAAAAAEAAACkgdKlAgBlZGl0aW5nL2V4ZWNDb21tYW5kLzI1MzIwLWRpZmYudHh0VVQF
AAOIjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANqEzSmSnJ0/MAAAAPAEAACYAGAAAAAAA
AQAAAKSBZKcCAGVkaXRpbmcvZXhlY0NvbW1hbmQvMjUzMjAtZXhwZWN0ZWQudHh0VVQFAAOIjYFY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANqEzSh5oky8cCAAA3xoAACoAGAAAAAAAAQAAAKSB
kKgCAGVkaXRpbmcvZXhlY0NvbW1hbmQvMjUzMjAtcHJldHR5LWRpZmYuaHRtbFVUBQADiI2BWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADehM0q7o6V/gwIAAGcIAAAoABgAAAAAAAEAAACkgRCx
AgBlZGl0aW5nL2V4ZWNDb21tYW5kLzQ2NDE4ODAtMS1hY3R1YWwudHh0VVQFAAOJjYFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAN6EzSuYyyuoCAQAAtAIAACYAGAAAAAAAAQAAAKSB9bMCAGVk
aXRpbmcvZXhlY0NvbW1hbmQvNDY0MTg4MC0xLWRpZmYudHh0VVQFAAOJjYFYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAN6EzSg6eTniiAgAANgkAACoAGAAAAAAAAQAAAKSBV7UCAGVkaXRpbmcv
ZXhlY0NvbW1hbmQvNDY0MTg4MC0xLWV4cGVjdGVkLnR4dFVUBQADiY2BWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIADehM0oIdBR92wcAAHYaAAAuABgAAAAAAAEAAACkgV24AgBlZGl0aW5nL2V4
ZWNDb21tYW5kLzQ2NDE4ODAtMS1wcmV0dHktZGlmZi5odG1sVVQFAAOKjYFYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAN6EzSnzZiPBPAgAA2AcAACgAGAAAAAAAAQAAAKSBoMACAGVkaXRpbmcv
ZXhlY0NvbW1hbmQvNDY0MTg4MC0yLWFjdHVhbC50eHRVVAUAA4qNgVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAA3oTNKNAz2agIBAAC0AgAAJgAYAAAAAAABAAAApIFRwwIAZWRpdGluZy9leGVj
Q29tbWFuZC80NjQxODgwLTItZGlmZi50eHRVVAUAA4qNgVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAA3oTNKQhrbmG0CAACnCAAAKgAYAAAAAAABAAAApIGzxAIAZWRpdGluZy9leGVjQ29tbWFu
ZC80NjQxODgwLTItZXhwZWN0ZWQudHh0VVQFAAOKjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAN6EzSqP9iKLbBwAAdhoAAC4AGAAAAAAAAQAAAKSBhMcCAGVkaXRpbmcvZXhlY0NvbW1hbmQv
NDY0MTg4MC0yLXByZXR0eS1kaWZmLmh0bWxVVAUAA4qNgVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAA3oTNKAu78wGUBAACFAwAAJgAYAAAAAAABAAAApIHHzwIAZWRpdGluZy9leGVjQ29tbWFu
ZC80NzQ3NDUwLWFjdHVhbC50eHRVVAUAA4qNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA3
oTNKt5WvAwICAACHBQAAJAAYAAAAAAABAAAApIGM0QIAZWRpdGluZy9leGVjQ29tbWFuZC80NzQ3
NDUwLWRpZmYudHh0VVQFAAOKjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAN6EzSi3Tdyjl
AQAAgwUAACgAGAAAAAAAAQAAAKSB7NMCAGVkaXRpbmcvZXhlY0NvbW1hbmQvNDc0NzQ1MC1leHBl
Y3RlZC50eHRVVAUAA4qNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA3oTNKdAr8D1cJAADL
KAAALAAYAAAAAAABAAAApIEz1gIAZWRpdGluZy9leGVjQ29tbWFuZC80NzQ3NDUwLXByZXR0eS1k
aWZmLmh0bWxVVAUAA4qNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA3oTNKusV80NgAAABe
AQAAKAAYAAAAAAABAAAApIHw3wIAZWRpdGluZy9leGVjQ29tbWFuZC80Nzg2NDA0LTEtYWN0dWFs
LnR4dFVUBQADio2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADehM0oWMiXZ8wAAALoBAAAm
ABgAAAAAAAEAAACkgSrhAgBlZGl0aW5nL2V4ZWNDb21tYW5kLzQ3ODY0MDQtMS1kaWZmLnR4dFVU
BQADio2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADehM0q+8zOo6wAAAHkBAAAqABgAAAAA
AAEAAACkgX3iAgBlZGl0aW5nL2V4ZWNDb21tYW5kLzQ3ODY0MDQtMS1leHBlY3RlZC50eHRVVAUA
A4qNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA4oTNK+0c2N+MHAADjHAAALgAYAAAAAAAB
AAAApIHM4wIAZWRpdGluZy9leGVjQ29tbWFuZC80Nzg2NDA0LTEtcHJldHR5LWRpZmYuaHRtbFVU
BQADi42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADihM0o3O4qaqwAAABgBAAAoABgAAAAA
AAEAAACkgRfsAgBlZGl0aW5nL2V4ZWNDb21tYW5kLzQ3ODY0MDQtMi1hY3R1YWwudHh0VVQFAAOL
jYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOKEzSkvGiJ7YAAAAgwEAACYAGAAAAAAAAQAA
AKSBJO0CAGVkaXRpbmcvZXhlY0NvbW1hbmQvNDc4NjQwNC0yLWRpZmYudHh0VVQFAAOLjYFYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOKEzSi7gZpO9AAAAMwEAACoAGAAAAAAAAQAAAKSBXO4C
AGVkaXRpbmcvZXhlY0NvbW1hbmQvNDc4NjQwNC0yLWV4cGVjdGVkLnR4dFVUBQADi42BWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAADihM0oAAAAAAAAAAAAAAAAOABgAAAAAAAAAEADtQX3vAgBl
ZGl0aW5nL2lucHV0L1VUBQADi42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADahM0oXo6nh
cRQAAH08AAAyABgAAAAAAAAAAACkgcXvAgBlZGl0aW5nL2lucHV0L2NvbXBvc2l0aW9uLXVuZGVy
bGluZS1ydGwtYWN0dWFsLnBuZ1VUBQADh42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADah
M0qb9Rtk2AcAAAEPAAAwABgAAAAAAAAAAACkgaIEAwBlZGl0aW5nL2lucHV0L2NvbXBvc2l0aW9u
LXVuZGVybGluZS1ydGwtZGlmZi5wbmdVVAUAA4eNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAA2oTNKWT8GLYwFAAAwEgAAMgAYAAAAAAABAAAApIHkDAMAZWRpdGluZy9pbnB1dC9jb21wb3Np
dGlvbi11bmRlcmxpbmUtcnRsLWRpZmZzLmh0bWxVVAUAA4eNgVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAA2oTNKi1yQYXwBAAChAgAANQAYAAAAAAABAAAApIHcEgMAZWRpdGluZy9pbnB1dC9j
b21wb3NpdGlvbi11bmRlcmxpbmUtcnRsLWV4cGVjdGVkLmh0bWxVVAUAA4eNgVh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAA2oTNKZaP+aKcjAADxSAAANAAYAAAAAAAAAAAApIHHFAMAZWRpdGlu
Zy9pbnB1dC9jb21wb3NpdGlvbi11bmRlcmxpbmUtcnRsLWV4cGVjdGVkLnBuZ1VUBQADh42BWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADahM0q72n5mvwEAAC4DAABBABgAAAAAAAEAAACkgdw4
AwBlZGl0aW5nL2lucHV0L2VkaXRhYmxlLWNvbnRhaW5lci13aXRoLXdvcmQtd3JhcC1ub3JtYWwt
YWN0dWFsLnR4dFVUBQADiI2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADahM0qtLrGKbgEA
ABEDAAA/ABgAAAAAAAEAAACkgRY7AwBlZGl0aW5nL2lucHV0L2VkaXRhYmxlLWNvbnRhaW5lci13
aXRoLXdvcmQtd3JhcC1ub3JtYWwtZGlmZi50eHRVVAUAA4iNgVh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAA2oTNKVHn04LQBAAAuAwAAQwAYAAAAAAABAAAApIH9PAMAZWRpdGluZy9pbnB1dC9l
ZGl0YWJsZS1jb250YWluZXItd2l0aC13b3JkLXdyYXAtbm9ybWFsLWV4cGVjdGVkLnR4dFVUBQAD
iI2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADahM0qKGJ00kggAAE0dAABHABgAAAAAAAEA
AACkgS4/AwBlZGl0aW5nL2lucHV0L2VkaXRhYmxlLWNvbnRhaW5lci13aXRoLXdvcmQtd3JhcC1u
b3JtYWwtcHJldHR5LWRpZmYuaHRtbFVUBQADiI2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ADahM0pu1nQwSwIAAOULAAAlABgAAAAAAAEAAACkgUFIAwBlZGl0aW5nL2lucHV0L2VtYWNzLWN0
cmwtby1hY3R1YWwudHh0VVQFAAOIjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANqEzSi18
RtP8AAAArgIAACMAGAAAAAAAAQAAAKSB60oDAGVkaXRpbmcvaW5wdXQvZW1hY3MtY3RybC1vLWRp
ZmYudHh0VVQFAAOIjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANqEzSrpKMyNsAgAAtAwA
ACcAGAAAAAAAAQAAAKSBREwDAGVkaXRpbmcvaW5wdXQvZW1hY3MtY3RybC1vLWV4cGVjdGVkLnR4
dFVUBQADiI2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADahM0qkgO4O1wcAAHMaAAArABgA
AAAAAAEAAACkgRFPAwBlZGl0aW5nL2lucHV0L2VtYWNzLWN0cmwtby1wcmV0dHktZGlmZi5odG1s
VVQFAAOIjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANqEzSkn04PytAAAAAQEAADUAGAAA
AAAAAQAAAKSBTVcDAGVkaXRpbmcvaW5wdXQvaW1lLWNvbXBvc2l0aW9uLWNsZWFycHJlZWRpdC1h
Y3R1YWwudHh0VVQFAAOIjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgANqEzSllGVIjuAAAA
uQEAADMAGAAAAAAAAQAAAKSBaVgDAGVkaXRpbmcvaW5wdXQvaW1lLWNvbXBvc2l0aW9uLWNsZWFy
cHJlZWRpdC1kaWZmLnR4dFVUBQADiI2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADahM0rh
nU0jqAAAAAIBAAA3ABgAAAAAAAEAAACkgcRZAwBlZGl0aW5nL2lucHV0L2ltZS1jb21wb3NpdGlv
bi1jbGVhcnByZWVkaXQtZXhwZWN0ZWQudHh0VVQFAAOIjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAN6EzSiDF3Wn6BwAAnRoAADsAGAAAAAAAAQAAAKSB3VoDAGVkaXRpbmcvaW5wdXQvaW1l
LWNvbXBvc2l0aW9uLWNsZWFycHJlZWRpdC1wcmV0dHktZGlmZi5odG1sVVQFAAOJjYFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAN6EzSipBb5jDAAAARQEAACwAGAAAAAAAAQAAAKSBTGMDAGVk
aXRpbmcvaW5wdXQvb3B0aW9uLXBhZ2UtdXAtZG93bi1hY3R1YWwudHh0VVQFAAOJjYFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAN6EzSqvxTvBOAQAAtwIAACoAGAAAAAAAAQAAAKSBdWQDAGVk
aXRpbmcvaW5wdXQvb3B0aW9uLXBhZ2UtdXAtZG93bi1kaWZmLnR4dFVUBQADiY2BWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIADehM0phXvBXwQAAAGkBAAAuABgAAAAAAAEAAACkgSdmAwBlZGl0
aW5nL2lucHV0L29wdGlvbi1wYWdlLXVwLWRvd24tZXhwZWN0ZWQudHh0VVQFAAOJjYFYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAN6EzSogxAcqPCAAABCgAADIAGAAAAAAAAQAAAKSBUGcDAGVk
aXRpbmcvaW5wdXQvb3B0aW9uLXBhZ2UtdXAtZG93bi1wcmV0dHktZGlmZi5odG1sVVQFAAOJjYFY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAN6EzSnaNncZuAAAAEwEAADAAGAAAAAAAAQAAAKSB
S3ADAGVkaXRpbmcvaW5wdXQvcGFzc3dvcmQtZWNoby1wYXNzbm9kZTItYWN0dWFsLnR4dFVUBQAD
io2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADehM0rBuJ4s3QAAAIcCAAAuABgAAAAAAAEA
AACkgSNxAwBlZGl0aW5nL2lucHV0L3Bhc3N3b3JkLWVjaG8tcGFzc25vZGUyLWRpZmYudHh0VVQF
AAOKjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAN6EzSk/OKnZqAAAAFQEAADIAGAAAAAAA
AQAAAKSBaHIDAGVkaXRpbmcvaW5wdXQvcGFzc3dvcmQtZWNoby1wYXNzbm9kZTItZXhwZWN0ZWQu
dHh0VVQFAAOKjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOKEzSvgUCnTxBwAAVB0AADYA
GAAAAAAAAQAAAKSBPnMDAGVkaXRpbmcvaW5wdXQvcGFzc3dvcmQtZWNoby1wYXNzbm9kZTItcHJl
dHR5LWRpZmYuaHRtbFVUBQADi42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAADihM0oAAAAA
AAAAAAAAAAASABgAAAAAAAAAEADtQZ97AwBlZGl0aW5nL2luc2VydGluZy9VVAUAA4uNgVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAA2oTNKXRH4jkwCAAA0BwAAJAAYAAAAAAABAAAApIHrewMA
ZWRpdGluZy9pbnNlcnRpbmcvNDI3ODY5OC1hY3R1YWwudHh0VVQFAAOIjYFYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgANqEzSj16cdH9AAAArAIAACIAGAAAAAAAAQAAAKSBlX4DAGVkaXRpbmcv
aW5zZXJ0aW5nLzQyNzg2OTgtZGlmZi50eHRVVAUAA4iNgVh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAA2oTNKttTuXXACAAADCAAAJgAYAAAAAAABAAAApIHufwMAZWRpdGluZy9pbnNlcnRpbmcv
NDI3ODY5OC1leHBlY3RlZC50eHRVVAUAA4iNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA2
oTNKm7khENUHAAByGgAAKgAYAAAAAAABAAAApIG+ggMAZWRpdGluZy9pbnNlcnRpbmcvNDI3ODY5
OC1wcmV0dHktZGlmZi5odG1sVVQFAAOIjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgACAAAAN6Ez
Sk/TucUFAAAABQAAACYAGAAAAAAAAQAAAKSB94oDAGVkaXRpbmcvaW5zZXJ0aW5nLzU2ODU2MDEt
MS1hY3R1YWwudHh0VVQFAAOKjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAN6EzSoJnn6iI
AAAA+gAAACQAGAAAAAAAAQAAAKSBXIsDAGVkaXRpbmcvaW5zZXJ0aW5nLzU2ODU2MDEtMS1kaWZm
LnR4dFVUBQADio2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADehM0pi2KWoEAAAABEAAAAo
ABgAAAAAAAEAAACkgUKMAwBlZGl0aW5nL2luc2VydGluZy81Njg1NjAxLTEtZXhwZWN0ZWQudHh0
VVQFAAOKjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOKEzSvNLVu9OBwAA7hYAACwAGAAA
AAAAAQAAAKSBtIwDAGVkaXRpbmcvaW5zZXJ0aW5nLzU2ODU2MDEtMS1wcmV0dHktZGlmZi5odG1s
VVQFAAOLjYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgACAAAAOKEzSk/TucUFAAAABQAAACYAGAAA
AAAAAQAAAKSBaJQDAGVkaXRpbmcvaW5zZXJ0aW5nLzU2ODU2MDEtMi1hY3R1YWwudHh0VVQFAAOL
jYFYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOKEzSkc2e2eHAAAA/QAAACQAGAAAAAAAAQAA
AKSBzZQDAGVkaXRpbmcvaW5zZXJ0aW5nLzU2ODU2MDEtMi1kaWZmLnR4dFVUBQADi42BWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIADihM0oUvcgtEQAAABQAAAAoABgAAAAAAAEAAACkgbKVAwBl
ZGl0aW5nL2luc2VydGluZy81Njg1NjAxLTItZXhwZWN0ZWQudHh0VVQFAAOLjYFYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAOKEzSjixBtbEAgAAVAgAAA0AGAAAAAAAAQAAAKSBJZYDAGVycm9y
X2xvZy50eHRVVAUAA4uNgVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABPoTNKh5ArAS8DAACl
DAAAEQAYAAAAAAABAAAApIEwmQMAZnVsbF9yZXN1bHRzLmpzb25VVAUAA7WNgVh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAaoTNKWwRYDqIFAABNEAAACgAYAAAAAAABAAAApIGqnAMAaHR0cGQu
Y29uZlVUBQADU42BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABqhM0oAAAAAAAAAAAAAAAAa
ABgAAAAAAAAAAACkgZCiAwBweXdlYnNvY2tldC53cy5sb2ctZXJyLnR4dFVUBQADVI2BWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAABqhM0oAAAAAAAAAAAAAAAAaABgAAAAAAAAAAACkgeSiAwBw
eXdlYnNvY2tldC53cy5sb2ctb3V0LnR4dFVUBQADVI2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAABuhM0oAAAAAAAAAAAAAAAAbABgAAAAAAAAAAACkgTijAwBweXdlYnNvY2tldC53c3MubG9n
LWVyci50eHRVVAUAA1WNgVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAboTNKAAAAAAAAAAAA
AAAAGwAYAAAAAAAAAAAApIGNowMAcHl3ZWJzb2NrZXQud3NzLmxvZy1vdXQudHh0VVQFAANVjYFY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAT6EzSkUmHTnRJwAAy6oAAAwAGAAAAAAAAQAAAKSB
4qMDAHJlc3VsdHMuaHRtbFVUBQADtY2BWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAE+hM0ow
KsfMRtcAAOKQBAAKABgAAAAAAAEAAACkgfnLAwBzdGF0cy5qc29uVVQFAAO1jYFYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAKqEzSm0ygUrXBAAAWBsAABkAGAAAAAAAAQAAAKSBg6MEAHdwdHdr
X3Byb2Nlc3NfbG9nLm91dC50eHRVVAUAA3CNgVh1eAsAAQT1AQAABBQAAABQSwUGAAAAAM4AzgA4
WgAAragEAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299326</attachid>
            <date>2017-01-19 23:30:38 -0800</date>
            <delta_ts>2017-01-19 23:42:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167224-20170119232846.patch</filename>
            <type>text/plain</type>
            <size>315963</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwOTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0RPTVdpbmRvd0ZldGNoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCmluZGV4IGFkYWRhY2Q4M2MyNjBjZmE5ZDc2OTlkMzRm
NmE0YmVjOTFkNjFmMDYuLmM1OWQzNjU2YTBjMjEwN2FhOWRhNzZkZjFhNTczN2RlZmY5ZjUyZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3Bw
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNiBDYW5vbiBJbmMuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsMTYgKzMzLDE3IEBACiAjaWYgRU5B
QkxFKEZFVENIX0FQSSkKIAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkZldGNo
UmVxdWVzdC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRmV0Y2hSZXNwb25z
ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgRE9NV2luZG93RmV0Y2g6OmZldGNo
KERPTVdpbmRvdyYgd2luZG93LCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QsIFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBpZiAoIXdpbmRvdy5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCisgICAgYXV0byogZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQoKTsKKyAgICBpZiAo
IWRvY3VtZW50KQogICAgICAgICByZXR1cm47Ci0gICAgRmV0Y2hSZXNwb25zZTo6ZmV0Y2goKndp
bmRvdy5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHJlcXVlc3QsIFdURk1vdmUocHJvbWlzZSkp
OworICAgIEZldGNoUmVzcG9uc2U6OmZldGNoKCpkb2N1bWVudCwgcmVxdWVzdCwgV1RGTW92ZShw
cm9taXNlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcAppbmRleCBl
NTQ4OWZjYjU0MGM5Njk0YWU0Mzc1OTY4M2RlOWFjZjAxODI0YWQ5Li4zZGNiNTYwMzQzZWI1YWI5
NDUxMWEzOTBlYjE5MTFiMzljYjBmMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwCkBAIC0yMDQsNyArMjA0LDcg
QEAgdm9pZCBEYXRhYmFzZUNvbnRleHQ6OmRhdGFiYXNlRXhjZWVkZWRRdW90YShjb25zdCBTdHJp
bmcmIG5hbWUsIERhdGFiYXNlRGV0YWlscwogICAgIGlmIChpczxEb2N1bWVudD4oKm1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCkpIHsKICAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNh
c3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgICAgICBpZiAoUGFn
ZSogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkKLSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNs
aWVudCgpLmV4Y2VlZGVkRGF0YWJhc2VRdW90YShkb2N1bWVudC5mcmFtZSgpLCBuYW1lLCBkZXRh
aWxzKTsKKyAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV4Y2VlZGVkRGF0YWJh
c2VRdW90YSgqZG9jdW1lbnQuZnJhbWUoKSwgbmFtZSwgZGV0YWlscyk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNXb3JrZXJH
bG9iYWxTY29wZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5k
ZXggNDE2YjE4MzRiZDhhYTYzNGI4YzdiYzJjZWU3ZjA5NDZiYzZiYjA3ZS4uMDMyMGY5NTU2YjU3
YjJiMDM3MjkxMmIwOGY1MjkyZWI0Zjg2ZWQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0KQEAgLTM3MjksNyArMzcyOSw3IEBAIC0gKHZvaWQpYWNjZXNzaWJpbGl0
eVNob3dDb250ZXh0TWVudQogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHBhZ2UtPmNvbnRl
eHRNZW51Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVudUF0KCZwYWdlLT5tYWluRnJhbWUoKSwg
cmVjdC5jZW50ZXIoKSk7CisgICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0Nv
bnRleHRNZW51QXQocGFnZS0+bWFpbkZyYW1lKCksIHJlY3QuY2VudGVyKCkpOwogfQogCiAtICh2
b2lkKWFjY2Vzc2liaWxpdHlTY3JvbGxUb1Zpc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCBhM2Y2MmU1NjQ0MTFmMTgwN2Jm
ZjA5NWY1ZGI5Y2E1MmY2ZTZjZGU0Li5hZTdmZThjMTdmMGRiY2QxNWI3MDU0ODZkNjQyYTQ1OGFl
NTdiY2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwCkBAIC0xNzgsNyArMTc4LDcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJv
cGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnQKICAg
ICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgIC8vIERldGVjdCB3aGVuIHdlJ3JlIGdldHRpbmcgdGhl
IHByb3BlcnR5ICdzaG93TW9kYWxEaWFsb2cnLCB0aGlzIGlzIGRpc2FibGVkLCBhbmQgaGFzIGl0
cyBvcmlnaW5hbCB2YWx1ZS4KICAgICAgICAgYm9vbCBpc1Nob3dNb2RhbERpYWxvZ0FuZFNob3Vs
ZEhpZGUgPSBwcm9wZXJ0eU5hbWUgPT0gc3RhdGUtPnByb3BlcnR5TmFtZXMoKS5zaG93TW9kYWxE
aWFsb2cKLSAgICAgICAgICAgICYmICFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhmcmFt
ZSkKKyAgICAgICAgICAgICYmICFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZygqZnJhbWUp
CiAgICAgICAgICAgICAmJiBzbG90LmlzVmFsdWUoKSAmJiBpc0hvc3RGdW5jdGlvbihzbG90Lmdl
dFZhbHVlKHN0YXRlLCBwcm9wZXJ0eU5hbWUpLCBqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25T
aG93TW9kYWxEaWFsb2cpOwogICAgICAgICAvLyBVbmxlc3Mgd2UncmUgaW4gdGhlIHNob3dNb2Rh
bERpYWxvZyBzcGVjaWFsIGNhc2UsIHdlJ3JlIGRvbmUuCiAgICAgICAgIGlmICghaXNTaG93TW9k
YWxEaWFsb2dBbmRTaG91bGRIaWRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMDgxNjBh
ZGQzYTNhM2RlOWNkNDg3ZmQ0MTQxMzgyMTYxYzkxZjE5Yy4uMWEwMzQzOWYwYTRmZGQ0OWZlOTkx
NGJjZWVlOGRhM2IxMzBjM2UwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NDgsMTMg
Kzg0OCwxMSBAQCB2b2lkIERvY3VtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFu
Z2UmIGNoYW5nZSkKIHsKICAgICBDb250YWluZXJOb2RlOjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdl
KTsKIAotI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBGSVhNRTogQ2hyb21lOjpkaWRSZWNlaXZl
RG9jVHlwZSgpIHVzZWQgdG8gYmUgY2FsbGVkIG9ubHkgd2hlbiB0aGUgZG9jdHlwZSBjaGFuZ2Vk
LiBXZSBuZWVkIHRvIGNoZWNrIHRoZQogICAgIC8vIGltcGFjdCBvZiBjYWxsaW5nIHRoaXMgc3lz
dGVtYXRpY2FsbHkuIElmIHRoZSBvdmVyaGVhZCBpcyBuZWdsaWdpYmxlLCB3ZSBuZWVkIHRvIHJl
bmFtZSBkaWRSZWNlaXZlRG9jVHlwZSwKICAgICAvLyBvdGhlcndpc2UsIHdlIG5lZWQgdG8gZGV0
ZWN0IHRoZSBkb2MgdHlwZSBjaGFuZ2VzIGJlZm9yZSB1cGRhdGluZyB0aGUgdmlld3BvcnQuCiAg
ICAgaWYgKFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgp
LmRpZFJlY2VpdmVEb2NUeXBlKGZyYW1lKCkpOwotI2VuZGlmCisgICAgICAgIHBhZ2UtPmNocm9t
ZSgpLmRpZFJlY2VpdmVEb2NUeXBlKCpmcmFtZSgpKTsKIAogICAgIEVsZW1lbnQqIG5ld0RvY3Vt
ZW50RWxlbWVudCA9IGNoaWxkcmVuT2ZUeXBlPEVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpOwogICAg
IGlmIChuZXdEb2N1bWVudEVsZW1lbnQgPT0gbV9kb2N1bWVudEVsZW1lbnQpCkBAIC0zMjE4LDkg
KzMyMTYsNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVWaWV3cG9ydEFyZ3VtZW50cygpCiAgICAg
ICAgIG1fZGlkRGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNDaGFuZ2VkID0gdHJ1ZTsKICNlbmRp
ZgogICAgICAgICBwYWdlKCktPmNocm9tZSgpLmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlk
Q2hhbmdlKG1fdmlld3BvcnRBcmd1bWVudHMpOwotI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAg
cGFnZSgpLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZShmcmFtZSgpKTsKLSNlbmRpZgorICAg
ICAgICBwYWdlKCktPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKCpmcmFtZSgpKTsKICAgICB9
CiB9CiAKQEAgLTM2NDIsNyArMzYzOCw3IEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVt
ZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgRm9jCiAgICAg
ICAgICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKm9sZEZvY3VzZWRFbGVtZW50KSkKICAg
ICAgICAgICAgICAgICBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqb2xkRm9jdXNlZEVsZW1l
bnQpLmVuZEVkaXRpbmcoKTsKICAgICAgICAgICAgIGlmIChwYWdlKCkpCi0gICAgICAgICAgICAg
ICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkQmx1cihvbGRGb2N1c2VkRWxl
bWVudC5nZXQoKSk7CisgICAgICAgICAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5l
bGVtZW50RGlkQmx1cigqb2xkRm9jdXNlZEVsZW1lbnQpOwogICAgICAgICAgICAgQVNTRVJUKCFt
X2ZvY3VzZWRFbGVtZW50KTsKICAgICAgICAgfQogCkBAIC00MDAwLDcgKzM5OTYsNyBAQCB2b2lk
IERvY3VtZW50OjpjcmVhdGVET01XaW5kb3coKQogICAgIEFTU0VSVChtX2ZyYW1lKTsKICAgICBB
U1NFUlQoIW1fZG9tV2luZG93KTsKIAotICAgIG1fZG9tV2luZG93ID0gRE9NV2luZG93OjpjcmVh
dGUodGhpcyk7CisgICAgbV9kb21XaW5kb3cgPSBET01XaW5kb3c6OmNyZWF0ZSgqdGhpcyk7CiAK
ICAgICBBU1NFUlQobV9kb21XaW5kb3ctPmRvY3VtZW50KCkgPT0gdGhpcyk7CiAgICAgQVNTRVJU
KG1fZG9tV2luZG93LT5mcmFtZSgpID09IG1fZnJhbWUpOwpAQCAtNDAxNSw3ICs0MDExLDcgQEAg
dm9pZCBEb2N1bWVudDo6dGFrZURPTVdpbmRvd0Zyb20oRG9jdW1lbnQqIGRvY3VtZW50KQogICAg
IEFTU0VSVChwYWdlQ2FjaGVTdGF0ZSgpID09IE5vdEluUGFnZUNhY2hlKTsKIAogICAgIG1fZG9t
V2luZG93ID0gV1RGTW92ZShkb2N1bWVudC0+bV9kb21XaW5kb3cpOwotICAgIG1fZG9tV2luZG93
LT5kaWRTZWN1cmVUcmFuc2l0aW9uVG8odGhpcyk7CisgICAgbV9kb21XaW5kb3ctPmRpZFNlY3Vy
ZVRyYW5zaXRpb25UbygqdGhpcyk7CiAKICAgICBBU1NFUlQobV9kb21XaW5kb3ctPmRvY3VtZW50
KCkgPT0gdGhpcyk7CiAgICAgQVNTRVJUKG1fZG9tV2luZG93LT5mcmFtZSgpID09IG1fZnJhbWUp
OwpAQCAtNTU3MywxMiArNTU2OSwxMiBAQCB2b2lkIERvY3VtZW50OjpyZXF1ZXN0RnVsbFNjcmVl
bkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgRnVsbFNjcmVlbkNoZWNrVHlwZQogICAgICAg
ICAgICAgYnJlYWs7CiAKICAgICAgICAgYm9vbCBoYXNLZXlib2FyZEFjY2VzcyA9IHRydWU7Ci0g
ICAgICAgIGlmICghcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0c0Z1bGxTY3JlZW5G
b3JFbGVtZW50KGVsZW1lbnQsIGhhc0tleWJvYXJkQWNjZXNzKSkgeworICAgICAgICBpZiAoIXBh
Z2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCgqZWxl
bWVudCwgaGFzS2V5Ym9hcmRBY2Nlc3MpKSB7CiAgICAgICAgICAgICAvLyBUaGUgbmV3IGZ1bGwg
c2NyZWVuIEFQSSBkb2VzIG5vdCBhY2NlcHQgYSAiZmxhZ3MiIHBhcmFtZXRlciwgc28gZmFsbCBi
YWNrIHRvIGRpc2FsbG93aW5nCiAgICAgICAgICAgICAvLyBrZXlib2FyZCBpbnB1dCBpZiB0aGUg
Y2hyb21lIGNsaWVudCByZWZ1c2VzIHRvIGFsbG93IGtleWJvYXJkIGlucHV0LgogICAgICAgICAg
ICAgaGFzS2V5Ym9hcmRBY2Nlc3MgPSBmYWxzZTsKIAotICAgICAgICAgICAgaWYgKCFwYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCwg
aGFzS2V5Ym9hcmRBY2Nlc3MpKQorICAgICAgICAgICAgaWYgKCFwYWdlKCktPmNocm9tZSgpLmNs
aWVudCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoKmVsZW1lbnQsIGhhc0tleWJvYXJk
QWNjZXNzKSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC01NjMxLDcg
KzU2MjcsNyBAQCB2b2lkIERvY3VtZW50OjpyZXF1ZXN0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxl
bWVudCogZWxlbWVudCwgRnVsbFNjcmVlbkNoZWNrVHlwZQogICAgICAgICAvLyA1LiBSZXR1cm4s
IGFuZCBydW4gdGhlIHJlbWFpbmluZyBzdGVwcyBhc3luY2hyb25vdXNseS4KICAgICAgICAgLy8g
Ni4gT3B0aW9uYWxseSwgcGVyZm9ybSBzb21lIGFuaW1hdGlvbi4KICAgICAgICAgbV9hcmVLZXlz
RW5hYmxlZEluRnVsbFNjcmVlbiA9IGhhc0tleWJvYXJkQWNjZXNzOwotICAgICAgICBwYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cisg
ICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVu
dCgqZWxlbWVudCk7CiAKICAgICAgICAgLy8gNy4gT3B0aW9uYWxseSwgZGlzcGxheSBhIG1lc3Nh
Z2UgaW5kaWNhdGluZyBob3cgdGhlIHVzZXIgY2FuIGV4aXQgZGlzcGxheWluZyB0aGUgY29udGV4
dCBvYmplY3QgZnVsbHNjcmVlbi4KICAgICAgICAgcmV0dXJuOwpAQCAtNTcyMywxMiArNTcxOSwx
MiBAQCB2b2lkIERvY3VtZW50Ojp3ZWJraXRFeGl0RnVsbHNjcmVlbigpCiAgICAgLy8gT25seSBl
eGl0IG91dCBvZiBmdWxsIHNjcmVlbiB3aW5kb3cgbW9kZSBpZiB0aGVyZSBhcmUgbm8gcmVtYWlu
aW5nIGVsZW1lbnRzIGluIHRoZSAKICAgICAvLyBmdWxsIHNjcmVlbiBzdGFjay4KICAgICBpZiAo
IW5ld1RvcCkgewotICAgICAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmV4aXRGdWxsU2Ny
ZWVuRm9yRWxlbWVudChtX2Z1bGxTY3JlZW5FbGVtZW50LmdldCgpKTsKKyAgICAgICAgcGFnZSgp
LT5jaHJvbWUoKS5jbGllbnQoKS5leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoKm1fZnVsbFNjcmVl
bkVsZW1lbnQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgLy8gT3RoZXJ3aXNlLCBu
b3RpZnkgdGhlIGNocm9tZSBvZiB0aGUgbmV3IGZ1bGwgc2NyZWVuIGVsZW1lbnQuCi0gICAgcGFn
ZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KG5ld1RvcCk7
CisgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KCpuZXdUb3ApOwogfQogCiBib29sIERvY3VtZW50Ojp3ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggODhlM2U5OTMwMWE3MTlkZTI1NDA4M2E5
MzI2YTNiYWNmM2VjMzhmYy4uODVlMGIyNmYxYzNlNzhiMmNiYmM2ODViNmFkMTlmMjVkMGQ5YmVh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjM0OCw3ICsyMzQ4LDcgQEAgdm9pZCBFbGVt
ZW50Ojpmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24g
ZGlyZWN0aW9uKQogCiAgICAgaWYgKGRvY3VtZW50KCkuZm9jdXNlZEVsZW1lbnQoKSA9PSB0aGlz
KSB7CiAgICAgICAgIGlmIChkb2N1bWVudCgpLnBhZ2UoKSkKLSAgICAgICAgICAgIGRvY3VtZW50
KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkUmVmb2N1cyh0aGlzKTsKKyAg
ICAgICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlk
UmVmb2N1cygqdGhpcyk7CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIzNzEsNyArMjM3
MSw3IEBAIHZvaWQgRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24s
IEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKICAgICAgICAgLy8gSWYgYSBmb2N1cyBldmVudCBo
YW5kbGVyIGNoYW5nZXMgdGhlIGZvY3VzIHRvIGEgZGlmZmVyZW50IG5vZGUgaXQKICAgICAgICAg
Ly8gZG9lcyBub3QgbWFrZSBzZW5zZSB0byBjb250aW51ZSBhbmQgdXBkYXRlIGFwcGVhcmVuY2Uu
CiAgICAgICAgIHByb3RlY3QgPSB0aGlzOwotICAgICAgICBpZiAoIXBhZ2UtPmZvY3VzQ29udHJv
bGxlcigpLnNldEZvY3VzZWRFbGVtZW50KHRoaXMsIGRvY3VtZW50KCkuZnJhbWUoKSwgZGlyZWN0
aW9uKSkKKyAgICAgICAgaWYgKCFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxl
bWVudCh0aGlzLCAqZG9jdW1lbnQoKS5mcmFtZSgpLCBkaXJlY3Rpb24pKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMjQ0MSw3ICsyNDQxLDcgQEAgdm9pZCBFbGVtZW50OjpibHVy
KCkKICAgICBjYW5jZWxGb2N1c0FwcGVhcmFuY2VVcGRhdGUoKTsKICAgICBpZiAodHJlZVNjb3Bl
KCkuZm9jdXNlZEVsZW1lbnRJblNjb3BlKCkgPT0gdGhpcykgewogICAgICAgICBpZiAoRnJhbWUq
IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpKQotICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+
Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQoMCwgZnJhbWUpOworICAgICAgICAg
ICAgZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQobnVs
bHB0ciwgKmZyYW1lKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZG9jdW1lbnQoKS5zZXRG
b2N1c2VkRWxlbWVudChudWxscHRyKTsKICAgICB9CkBAIC0yNDY0LDcgKzI0NjQsNyBAQCB2b2lk
IEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNPdXRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgUmVmUHRyPEVsZW1lbgogdm9pZCBFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQoUmVm
UHRyPEVsZW1lbnQ+JiYgb2xkRm9jdXNlZEVsZW1lbnQsIEZvY3VzRGlyZWN0aW9uKQogewogICAg
IGlmIChkb2N1bWVudCgpLnBhZ2UoKSkKLSAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9t
ZSgpLmNsaWVudCgpLmVsZW1lbnREaWRGb2N1cyh0aGlzKTsKKyAgICAgICAgZG9jdW1lbnQoKS5w
YWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVsZW1lbnREaWRGb2N1cygqdGhpcyk7CiAKICAgICBF
dmVudERpc3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQoKnRoaXMsIEZvY3VzRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuZm9jdXNFdmVudCwgZmFsc2UsIGZhbHNlLCBkb2N1bWVudCgpLmRlZmF1bHRW
aWV3KCksIDAsIFdURk1vdmUob2xkRm9jdXNlZEVsZW1lbnQpKSk7CiB9CkBAIC0yNDcyLDcgKzI0
NzIsNyBAQCB2b2lkIEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudChSZWZQdHI8RWxlbWVudD4m
JiBvbGRGb2N1c2VkRWxlbWVudCwgRm9jdXNEaXJlYwogdm9pZCBFbGVtZW50OjpkaXNwYXRjaEJs
dXJFdmVudChSZWZQdHI8RWxlbWVudD4mJiBuZXdGb2N1c2VkRWxlbWVudCkKIHsKICAgICBpZiAo
ZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5j
bGllbnQoKS5lbGVtZW50RGlkQmx1cih0aGlzKTsKKyAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLmVsZW1lbnREaWRCbHVyKCp0aGlzKTsKIAogICAgIEV2ZW50RGlz
cGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudCgqdGhpcywgRm9jdXNFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5ibHVyRXZlbnQsIGZhbHNlLCBmYWxzZSwgZG9jdW1lbnQoKS5kZWZhdWx0VmlldygpLCAw
LCBXVEZNb3ZlKG5ld0ZvY3VzZWRFbGVtZW50KSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGJi
M2FiOTllNjFjNWJkYzEwNDNmM2ViYzRlMGY3OTZhMmRjYmQ4YjcuLjc2NjIzMDU0NzFlNTFmYmJm
NmU0ZmEzNTU3NWVkNmFiYWJmYzcwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTIyNTMsNyArMjI1
Myw3IEBAIHZvaWQgTm9kZTo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiAgICAg
fSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmNvbnRleHRtZW51RXZlbnQpIHsK
ICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKICAgICAgICAg
ICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgICAgICAgICBwYWdl
LT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5oYW5kbGVDb250ZXh0TWVudUV2ZW50KCZldmVudCk7
CisgICAgICAgICAgICAgICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuaGFuZGxlQ29u
dGV4dE1lbnVFdmVudChldmVudCk7CiAjZW5kaWYKICAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkudGV4dElucHV0RXZlbnQpIHsKICAgICAgICAgaWYgKGlzPFRleHRFdmVu
dD4oZXZlbnQpKSB7CkBAIC0yMjcyLDcgKzIyNzIsNyBAQCB2b2lkIE5vZGU6OmRlZmF1bHRFdmVu
dEhhbmRsZXIoRXZlbnQmIGV2ZW50KQogCiAgICAgICAgICAgICBpZiAocmVuZGVyZXIpIHsKICAg
ICAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpKQotICAg
ICAgICAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc3RhcnRQYW5TY3JvbGxpbmco
ZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcikpOworICAgICAgICAgICAgICAgICAgICBmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkuc3RhcnRQYW5TY3JvbGxpbmcoZG93bmNhc3Q8UmVuZGVyQm94Pigq
cmVuZGVyZXIpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAppbmRleCBhY2YyMjY4YTdlNzkzMDkyN2NlY2Ji
MTNkMjRkNjRjZmFkYmY2ZGRlLi4wMWYwNzFjY2FkY2RmMTk2NDFmMjg3Nzc0MTlkYjQ2Y2I1NDBj
NjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKQEAgLTkzMCw3
ICs5MzAsNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlUHJpbnQoRnJhbWUmIGZyYW1lLCBFdmVudCos
IEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZwogICAgIFBhZ2UqIHBhZ2UgPSBmcmFt
ZS5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcGFn
ZS0+Y2hyb21lKCkucHJpbnQoJmZyYW1lKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5wcmludChmcmFt
ZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAKaW5kZXggNjc1OWZmMTc3ZmU3NjcxY2JiMTY5MzVlYjM2MTBkMmE1Njk3Yjc4
Ni4uYWM1ZDBiZmFkZThiZGViMDE2NWI1YmY2NGVlYjQ2ZTRiODM1ZTEzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTIxNTcsNyArMjE1Nyw3IEBAIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldEZvY3VzZWRFbGVtZW50SWZOZWVkZWQoKQogICAgIGJvb2wg
Y2FyZXRCcm93c2luZyA9IG1fZnJhbWUtPnNldHRpbmdzKCkuY2FyZXRCcm93c2luZ0VuYWJsZWQo
KTsKICAgICBpZiAoY2FyZXRCcm93c2luZykgewogICAgICAgICBpZiAoRWxlbWVudCogYW5jaG9y
ID0gZW5jbG9zaW5nQW5jaG9yRWxlbWVudChtX3NlbGVjdGlvbi5iYXNlKCkpKSB7Ci0gICAgICAg
ICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50
KGFuY2hvciwgbV9mcmFtZSk7CisgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29u
dHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KGFuY2hvciwgKm1fZnJhbWUpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtMjE2OSwxNiArMjE2OSwxNiBAQCB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXRGb2N1c2VkRWxlbWVudElmTmVlZGVkKCkKICAgICAgICAgICAg
IC8vIHNvIGFkZCB0aGUgIWlzRnJhbWVFbGVtZW50IGNoZWNrIGhlcmUuIFRoZXJlJ3MgcHJvYmFi
bHkgYSBiZXR0ZXIgd2F5IHRvIG1ha2UgdGhpcwogICAgICAgICAgICAgLy8gd29yayBpbiB0aGUg
bG9uZyB0ZXJtLCBidXQgdGhpcyBpcyB0aGUgc2FmZXN0IGZpeCBhdCB0aGlzIHRpbWUuCiAgICAg
ICAgICAgICBpZiAodGFyZ2V0LT5pc01vdXNlRm9jdXNhYmxlKCkgJiYgIWlzRnJhbWVFbGVtZW50
KHRhcmdldCkpIHsKLSAgICAgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJv
bGxlcigpLnNldEZvY3VzZWRFbGVtZW50KHRhcmdldCwgbV9mcmFtZSk7CisgICAgICAgICAgICAg
ICAgbV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudCh0
YXJnZXQsICptX2ZyYW1lKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB0YXJnZXQgPSB0YXJnZXQtPnBhcmVudE9yU2hhZG93SG9zdEVsZW1lbnQo
KTsKICAgICAgICAgfQotICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZXRGb2N1c2VkRWxl
bWVudCgwKTsKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZEVsZW1lbnQo
bnVsbHB0cik7CiAgICAgfQogCiAgICAgaWYgKGNhcmV0QnJvd3NpbmcpCi0gICAgICAgIG1fZnJh
bWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQoMCwgbV9mcmFt
ZSk7CisgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNl
ZEVsZW1lbnQobnVsbHB0ciwgKm1fZnJhbWUpOwogfQogCiB2b2lkIERyYWdDYXJldENvbnRyb2xs
ZXI6OnBhaW50RHJhZ0NhcmV0KEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NDb250ZXh0JiBwLCBjb25z
dCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIGNvbnN0IExheW91dFJlY3QmIGNsaXBSZWN0KSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAppbmRleCAzNjMzOThkNmVm
Y2MxNGM0YjZiYjc1ZjMxMzg3Y2RkN2U3YzU5OWQxLi4yMWYyNGFkMzlmNGE5MTY2YzhiMTEzY2Fl
MjcwMGZlOWY0NTFjYThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hl
ZEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcApA
QCAtOTgsOSArOTgsOSBAQCB2b2lkIENhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSgpCiAgICAgZnJh
bWUubG9hZGVyKCkuY2xpZW50KCkuZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKIAogICAgIC8v
IFJlY29uc3RydWN0IHRoZSBGcmFtZVRyZWUuIEFuZCBvcGVuIHRoZSBjaGlsZCBDYWNoZWRGcmFt
ZXMgaW4gdGhlaXIgcmVzcGVjdGl2ZSBGcmFtZUxvYWRlcnMuCi0gICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG1fY2hpbGRGcmFtZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgZnJhbWUudHJl
ZSgpLmFwcGVuZENoaWxkKCZtX2NoaWxkRnJhbWVzW2ldLT52aWV3KCktPmZyYW1lKCkpOwotICAg
ICAgICBtX2NoaWxkRnJhbWVzW2ldLT5vcGVuKCk7CisgICAgZm9yIChhdXRvJiBjaGlsZEZyYW1l
IDogbV9jaGlsZEZyYW1lcykgeworICAgICAgICBmcmFtZS50cmVlKCkuYXBwZW5kQ2hpbGQoY2hp
bGRGcmFtZS0+dmlldygpLT5mcmFtZSgpKTsKKyAgICAgICAgY2hpbGRGcmFtZS0+b3BlbigpOwog
ICAgIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIENhY2hl
ZEZyYW1lQmFzZTo6cmVzdG9yZSgpCiAgICAgICAgICAgICAvLyBGSVhNRTogQWRkIFNDUk9MTF9M
SVNURU5FUiB0byB0aGUgbGlzdCBvZiBldmVudCB0eXBlcyBvbiBEb2N1bWVudCwgYW5kIHVzZSBt
X2RvY3VtZW50LT5oYXNMaXN0ZW5lclR5cGUoKS4gU2VlIDxyZGFyOi8vcHJvYmxlbS85NjE1NDgy
Pi4KICAgICAgICAgICAgIC8vIEZJWE1FOiBDYW4gdXNlIERvY3VtZW50OjpoYXNMaXN0ZW5lclR5
cGUoKSBub3cuCiAgICAgICAgICAgICBpZiAoZG9tV2luZG93LT5zY3JvbGxFdmVudExpc3RlbmVy
Q291bnQoKSAmJiBmcmFtZS5wYWdlKCkpCi0gICAgICAgICAgICAgICAgZnJhbWUucGFnZSgpLT5j
aHJvbWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoJmZyYW1lLCB0cnVl
KTsKKyAgICAgICAgICAgICAgICBmcmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE5l
ZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhmcmFtZSwgdHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CiAj
ZW5kaWYKQEAgLTE2Myw3ICsxNjMsNyBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJhbWUoRnJhbWUm
IGZyYW1lKQogICAgIC8vIDEgLSBXZSByZXVzZSB0aGUgbWFpbiBmcmFtZSwgc28gd2hlbiBpdCBu
YXZpZ2F0ZXMgdG8gYSBuZXcgcGFnZSBsb2FkIGl0IG5lZWRzIHRvIHN0YXJ0IHdpdGggYSBibGFu
ayBGcmFtZVRyZWUuCiAgICAgLy8gMiAtIEl0J3MgbXVjaCBlYXNpZXIgdG8gZGVzdHJveSBhIENh
Y2hlZEZyYW1lIHdoaWxlIGl0IHJlc2lkZXMgaW4gdGhlIFBhZ2VDYWNoZSBpZiBpdCBpcyBkaXNj
b25uZWN0ZWQgZnJvbSBpdHMgcGFyZW50LgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBt
X2NoaWxkRnJhbWVzLnNpemUoKTsgKytpKQotICAgICAgICBmcmFtZS50cmVlKCkucmVtb3ZlQ2hp
bGQoJm1fY2hpbGRGcmFtZXNbaV0tPnZpZXcoKS0+ZnJhbWUoKSk7CisgICAgICAgIGZyYW1lLnRy
ZWUoKS5yZW1vdmVDaGlsZChtX2NoaWxkRnJhbWVzW2ldLT52aWV3KCktPmZyYW1lKCkpOwogCiAg
ICAgaWYgKCFtX2lzTWFpbkZyYW1lKQogICAgICAgICBmcmFtZS5wYWdlKCktPmRlY3JlbWVudFN1
YmZyYW1lQ291bnQoKTsKQEAgLTE4MSw3ICsxODEsNyBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJh
bWUoRnJhbWUmIGZyYW1lKQogICAgIGlmIChtX2lzTWFpbkZyYW1lKSB7CiAgICAgICAgIGlmIChE
T01XaW5kb3cqIGRvbVdpbmRvdyA9IG1fZG9jdW1lbnQtPmRvbVdpbmRvdygpKSB7CiAgICAgICAg
ICAgICBpZiAoZG9tV2luZG93LT5zY3JvbGxFdmVudExpc3RlbmVyQ291bnQoKSAmJiBmcmFtZS5w
YWdlKCkpCi0gICAgICAgICAgICAgICAgZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5z
ZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoJmZyYW1lLCBmYWxzZSk7CisgICAgICAgICAgICAg
ICAgZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNh
dGlvbnMoZnJhbWUsIGZhbHNlKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCA1YmEyYzk1NGIyYmQ4OTk1YmMwYjJiNzJk
MmZmY2QzNzkxOTEwN2E2Li41MGUxZmNiMTQzNzEzYTMwYWM5MTUzMzEzYjU4OTMyNTc5MGQyMWU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAtMTU2LDcgKzE1Niw3
IEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmIGV2
ZW50KQogCiAgICAgaWYgKENocm9tZSogY2hyb21lID0gdGhpcy0+Y2hyb21lKCkpIHsKICAgICAg
ICAgaWYgKCFtX2Nob29zZXIpCi0gICAgICAgICAgICBtX2Nob29zZXIgPSBjaHJvbWUtPmNyZWF0
ZUNvbG9yQ2hvb3Nlcih0aGlzLCB2YWx1ZUFzQ29sb3IoKSk7CisgICAgICAgICAgICBtX2Nob29z
ZXIgPSBjaHJvbWUtPmNyZWF0ZUNvbG9yQ2hvb3NlcigqdGhpcywgdmFsdWVBc0NvbG9yKCkpOwog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2Nob29zZXItPnJlYXR0YWNoQ29sb3JDaG9vc2Vy
KHZhbHVlQXNDb2xvcigpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwCmluZGV4IDgxMWViMGQ1ZDA1YjZhNmM3Njg4NzhkMDNmYzMzYzFjMjQ5NDZmYjAu
LmJhZWI1NzZiMTU2M2ViMzE1N2JiNzJlY2Q4N2I3ODI3MDA5ZWYzMDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC0xMjksNyArMTI5LDcgQEAgYm9vbCBI
VE1MQW5jaG9yRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50JiBldmVu
dCkgY29uc3QKICAgICBpZiAoIWRvY3VtZW50KCkuZnJhbWUoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLnRhYnNU
b0xpbmtzKCZldmVudCkpCisgICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxl
cigpLnRhYnNUb0xpbmtzKGV2ZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYg
KCFyZW5kZXJlcigpICYmIGFuY2VzdG9yc09mVHlwZTxIVE1MQ2FudmFzRWxlbWVudD4oKnRoaXMp
LmZpcnN0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJv
bEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcAppbmRleCBlYThhM2IzM2UwMDI3ODMyZDY3MGY5ZTA5ODdhY2NhOGQzNjhiYWEyLi42MmMy
ODYxN2FlMzVkZTY3MzJmZmEwNjYzMzhmZTMxODE2NTQ2Y2E4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTM3MCwxMCArMzcwLDkgQEAg
Ym9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0CiAKIGJvb2wg
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50
JiBldmVudCkgY29uc3QKIHsKLSAgICBpZiAoaXNGb2N1c2FibGUoKSkKLSAgICAgICAgaWYgKGRv
Y3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgIHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCkt
PmV2ZW50SGFuZGxlcigpLnRhYnNUb0FsbEZvcm1Db250cm9scygmZXZlbnQpOwotICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gaXNGb2N1c2FibGUoKQorICAgICAgICAmJiBkb2N1bWVudCgp
LmZyYW1lKCkKKyAgICAgICAgJiYgZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS50
YWJzVG9BbGxGb3JtQ29udHJvbHMoZXZlbnQpOwogfQogCiBib29sIEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQ6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudC5jcHAKaW5kZXggZDhhNzkzZTMwZWJmMWJjMzNiMWEzMmEyZjJjZDFjZjdiOTE4
OWRiYy4uYTlkYjkwNTE4ZGU3MTAwZjg2MWFmY2RkYmE2ZDI2NzVhMjBlM2JkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCkBAIC0xNzEsNyArMTcxLDcgQEAgYm9v
bCBIVE1MVmlkZW9FbGVtZW50OjpzdXBwb3J0c0Z1bGxzY3JlZW4oSFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpWaWRlb0Z1bGxzY3JlZW4KICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgLy8g
SWYgdGhlIGZ1bGwgc2NyZWVuIEFQSSBpcyBlbmFibGVkIGFuZCBpcyBzdXBwb3J0ZWQgZm9yIHRo
ZSBjdXJyZW50IGVsZW1lbnQKICAgICAvLyBkbyBub3QgcmVxdWlyZSB0aGF0IHRoZSBwbGF5ZXIg
aGFzIGEgdmlkZW8gdHJhY2sgdG8gZW50ZXIgZnVsbCBzY3JlZW4uCi0gICAgaWYgKHZpZGVvRnVs
bHNjcmVlbk1vZGUgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
U3RhbmRhcmQgJiYgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9y
RWxlbWVudCh0aGlzLCBmYWxzZSkpCisgICAgaWYgKHZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQgJiYgcGFnZS0+
Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCgqdGhpcywgZmFs
c2UpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKaW5kZXggNThiZDYyYTM2NDQ3ZjEx
NDk4YzNkOGM5OTU3ZjFjZDFmNzNiMGU3Ny4uOThiZDcyYmZmMmQwZGY4MDZhYjBhYmY1MzdiYWU2
OTA3MjI4NDgwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1
dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0
b25FbGVtZW50LmNwcApAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgU3BpbkJ1dHRvbkVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQogICAgICAgICAgICAgICAgICAgICBm
cmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KHRoaXMp
OwogICAgICAgICAgICAgICAgICAgICBtX2NhcHR1cmluZyA9IHRydWU7CiAgICAgICAgICAgICAg
ICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICAg
ICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5yZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKHRo
aXMpOworICAgICAgICAgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkucmVnaXN0ZXJQb3B1
cE9wZW5pbmdPYnNlcnZlcigqdGhpcyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQogICAgICAgICAgICAgVXBEb3duU3RhdGUgb2xkVXBEb3duU3RhdGUgPSBtX3VwRG93blN0YXRl
OwpAQCAtMjA1LDcgKzIwNSw3IEBAIHZvaWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OnJlbGVhc2VDYXB0
dXJlKCkKICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZXRDYXB0dXJpbmdNb3Vz
ZUV2ZW50c0VsZW1lbnQobnVsbHB0cik7CiAgICAgICAgICAgICBtX2NhcHR1cmluZyA9IGZhbHNl
OwogICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKSkKLSAgICAg
ICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS51bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIo
dGhpcyk7CisgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkudW5yZWdpc3RlclBvcHVwT3Bl
bmluZ09ic2VydmVyKCp0aGlzKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1h
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRv
bkVsZW1lbnRNYWMuY3BwCmluZGV4IGZkMGMzZTM2ZjM5MzM0MWRiZGFhMThjMDMxZTFiMWU3NDg3
ZWZjYzkuLmJhOWJhZGZlNTYyZTRiZmU3ZjllMTRmMGE2YjVlZDE5YjUwYWEzYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxl
bWVudE1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgSW1hZ2VD
b250cm9sc0J1dHRvbkVsZW1lbnRNYWM6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50
KQogICAgICAgICBpZiAoIXBhZ2UpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgcGFn
ZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0ltYWdlQ29udHJvbHNNZW51KCZldmVudCk7
CisgICAgICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dJbWFnZUNvbnRyb2xz
TWVudShldmVudCk7CiAgICAgICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZEhvc3QuY3BwCmluZGV4IDMxNTQ3ZGI3YWYzYjUzZmQ3ZWI0MjQxYzcwNTQzZjhm
NGI2NmIxN2UuLjc0OTg4Y2I1ZTYwNDg3MjA4ODkzYjAzMTYwMWNiYTgyMzRiYjkzZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3Bw
CkBAIC0zMzksOCArMzM5LDggQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250
ZXh0TWVudShFdmVudCogZXZlbnQsIGNvbnN0IFZlY3RvcjxDb250ZXh0TWUKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBhdXRvIG1lbnVQcm92aWRlciA9IEZyb250ZW5kTWVudVByb3ZpZGVy
OjpjcmVhdGUodGhpcywgeyAmc3RhdGUsIGZyb250ZW5kQXBpT2JqZWN0IH0sIGl0ZW1zKTsKLSAg
ICBtX2Zyb250ZW5kUGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0NvbnRleHRNZW51
KGV2ZW50LCBtZW51UHJvdmlkZXIucHRyKCkpOwogICAgIG1fbWVudVByb3ZpZGVyID0gbWVudVBy
b3ZpZGVyLnB0cigpOworICAgIG1fZnJvbnRlbmRQYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIo
KS5zaG93Q29udGV4dE1lbnUoKmV2ZW50LCBtZW51UHJvdmlkZXIpOwogfQogCiAjZW5kaWYKQEAg
LTM1NSw3ICszNTUsNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6ZGlzcGF0Y2hFdmVu
dEFzQ29udGV4dE1lbnVFdmVudChFdmVudCogZXZlbnQpCiAgICAgTW91c2VFdmVudCYgbW91c2VF
dmVudCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+KCpldmVudCk7CiAgICAgSW50UG9pbnQgbW91c2VQ
b2ludCA9IEludFBvaW50KG1vdXNlRXZlbnQuY2xpZW50WCgpLCBtb3VzZUV2ZW50LmNsaWVudFko
KSk7CiAKLSAgICBtX2Zyb250ZW5kUGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0Nv
bnRleHRNZW51QXQoZnJhbWUsIG1vdXNlUG9pbnQpOworICAgIG1fZnJvbnRlbmRQYWdlLT5jb250
ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnVBdCgqZnJhbWUsIG1vdXNlUG9pbnQp
OwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZXZlbnQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGU3NTQ5NWZkNDI0YzIzZTg5NTM2Y2E4ZDQzMzkw
NTNiZDRlMTFiYmQuLjU3NzkwYjUwY2ZjZGE0YTUyZjBjNGMwMmViNTdhYjIzM2E2ZDU3YjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NzIsMTkgKzU3MiwxOSBA
QCBjbGFzcyBFbXB0eVZpc2l0ZWRMaW5rU3RvcmUgZmluYWwgOiBwdWJsaWMgVmlzaXRlZExpbmtT
dG9yZSB7CiAgICAgdm9pZCBhZGRWaXNpdGVkTGluayhQYWdlJiwgTGlua0hhc2gpIGZpbmFsIHsg
fQogfTsKIAotUmVmUHRyPFBvcHVwTWVudT4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdAorUmVmUHRyPFBvcHVwTWVudT4gRW1wdHlDaHJv
bWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdAogewogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5UG9wdXBNZW51KTsKIH0KIAotUmVmUHRyPFNlYXJj
aFBvcHVwTWVudT4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqKSBjb25zdAorUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gRW1wdHlDaHJvbWVD
bGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdAogewog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U2VhcmNoUG9wdXBNZW51KTsKIH0KIAogI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogCi1zdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2Vy
PiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVu
dCosIGNvbnN0IENvbG9yJikKK3N0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IEVtcHR5Q2hy
b21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3Qg
Q29sb3ImKQogewogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5oCmluZGV4IDkxYzJkMzg2OTAxMGRhNWVhNDNkMDA5Y2QwZjEzZTBiNzhlN2NmZjUu
LmM5ZWJlYTQ4YzhmYTY5YTZmNTY3MTU4NWNiNmRiNjRiOTM2MDZhNGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTYxLDcgKzYxLDcgQEAgY2xhc3MgRW1wdHlDaHJvbWVD
bGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lkIGZvY3VzZWRFbGVtZW50Q2hh
bmdlZChFbGVtZW50KikgZmluYWwgeyB9CiAgICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKEZy
YW1lKikgZmluYWwgeyB9CiAKLSAgICBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBG
cmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9u
QWN0aW9uJikgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIFBhZ2UqIGNyZWF0ZVdpbmRv
dyhGcmFtZSYsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYs
IGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAgICAg
dm9pZCBzaG93KCkgZmluYWwgeyB9CiAKICAgICBib29sIGNhblJ1bk1vZGFsKCkgZmluYWwgeyBy
ZXR1cm4gZmFsc2U7IH0KQEAgLTg0LDE5ICs4NCwxOSBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVu
dCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShN
ZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkLCB1bnNp
Z25lZCwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CiAKICAgICBib29sIGNhblJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbCgpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBydW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiwgRnJhbWUqKSBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CisgICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3Qg
U3RyaW5nJiwgRnJhbWUmKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2b2lkIGNsb3Nl
V2luZG93U29vbigpIGZpbmFsIHsgfQogCi0gICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJh
bWUqLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KLSAgICBib29sIHJ1bkphdmFTY3JpcHRDb25m
aXJtKEZyYW1lKiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBi
b29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmLCBTdHJpbmcmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgcnVuSmF2YVNj
cmlwdEFsZXJ0KEZyYW1lJiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CisgICAgYm9vbCBydW5K
YXZhU2NyaXB0Q29uZmlybShGcmFtZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAg
IGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBmaW5hbCB7IHJldHVy
biBmYWxzZTsgfQogICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGlu
Z0RpcmVjdGlvbigpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBoYXNPcGVuZWRQ
b3B1cCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgUmVmUHRyPFBvcHVwTWVu
dT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IGZpbmFsOwotICAgIFJl
ZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUo
UG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFNlYXJjaFBvcHVwTWVu
dT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0IGZpbmFsOwog
CiAgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQogCkBA
IC0xMjAsMjkgKzEyMCwyOSBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJv
bWVDbGllbnQgewogICAgIEludFJlY3Qgcm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29u
c3QgSW50UmVjdCYgcikgY29uc3QgZmluYWwgeyByZXR1cm4gcjsgfTsKICNlbmRpZgogICAgIFBs
YXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biAwOyB9Ci0gICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6
ZSYpIGNvbnN0IGZpbmFsIHsgfQorICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYs
IGNvbnN0IEludFNpemUmKSBjb25zdCBmaW5hbCB7IH0KIAogICAgIHZvaWQgc2Nyb2xsYmFyc01v
ZGVEaWRDaGFuZ2UoKSBjb25zdCBmaW5hbCB7IH0KICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJF
bGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCkgZmluYWwgeyB9CiAKICAgICB2
b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgVGV4dERpcmVjdGlvbikgZmluYWwgeyB9CiAK
LSAgICB2b2lkIHByaW50KEZyYW1lKikgZmluYWwgeyB9CisgICAgdm9pZCBwcmludChGcmFtZSYp
IGZpbmFsIHsgfQogCi0gICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25z
dCBTdHJpbmcmLCBEYXRhYmFzZURldGFpbHMpIGZpbmFsIHsgfQorICAgIHZvaWQgZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKEZyYW1lJiwgY29uc3QgU3RyaW5nJiwgRGF0YWJhc2VEZXRhaWxzKSBmaW5h
bCB7IH0KIAogICAgIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90KSBmaW5hbCB7
IH0KLSAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlP
cmlnaW4qLCBpbnQ2NF90KSBmaW5hbCB7IH0KKyAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90KSBmaW5hbCB7IH0KIAogI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29z
ZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYp
IGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hv
b3NlcihDb2xvckNob29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYpIGZpbmFsOwogI2VuZGlmCiAK
ICAgICB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJikgZmluYWw7CiAgICAg
dm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2Fk
ZXImKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IE5vZGUqKSBm
aW5hbCB7IH0KLSAgICB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUqKSBmaW5hbCB7IH0K
KyAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhFbGVtZW50JikgZmluYWwgeyB9CisgICAgdm9pZCBl
bGVtZW50RGlkQmx1cihFbGVtZW50JikgZmluYWwgeyB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQog
ICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpIGZpbmFsIHsgfQpAQCAtMTUxLDggKzE1
MSw4IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAK
ICAgICB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3QgZmluYWwg
eyB9CiAKLSAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NM
YXllciopIGZpbmFsIHsgfQotICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVy
KEZyYW1lKiwgR3JhcGhpY3NMYXllciopIGZpbmFsIHsgfQorICAgIHZvaWQgYXR0YWNoUm9vdEdy
YXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikgZmluYWwgeyB9CisgICAgdm9pZCBh
dHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikgZmlu
YWwgeyB9CiAgICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkg
ZmluYWwgeyB9CiAgICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIGZpbmFs
IHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAxNGQ0N2RhOTcy
ZTkyODM2OWFjODEzY2Y5NjE4NDc0ZjFhZjAwMTg1Li43OGRmZjBjNDNjNWZiMDExYzc4MGE0NDdh
OWI2OTJjNDRhZmQ0M2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAg
LTM5Nyw3ICszOTcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzdWJtaXRGb3JtKFJlZjxGb3JtU3Vi
bWlzc2lvbj4mJiBzdWJtaXNzaW9uKQogCiAgICAgRnJhbWUqIHRhcmdldEZyYW1lID0gZmluZEZy
YW1lRm9yTmF2aWdhdGlvbihzdWJtaXNzaW9uLT50YXJnZXQoKSwgJnN1Ym1pc3Npb24tPnN0YXRl
KCkuc291cmNlRG9jdW1lbnQoKSk7CiAgICAgaWYgKCF0YXJnZXRGcmFtZSkgewotICAgICAgICBp
ZiAoIURPTVdpbmRvdzo6YWxsb3dQb3BVcCgmbV9mcmFtZSkgJiYgIVNjcmlwdENvbnRyb2xsZXI6
OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQorICAgICAgICBpZiAoIURPTVdpbmRvdzo6YWxsb3dQ
b3BVcChtX2ZyYW1lKSAmJiAhU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJl
KCkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgLy8gRklYTUU6IHRhcmdldEZyYW1l
IGNhbiBiZSBudWxsIGZvciB0d28gZGlzdGluY3QgcmVhc29uczoKQEAgLTE4NTIsMTEgKzE4NTIs
OSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQoKQogICAgICAgICBo
aXN0b3J5KCkudXBkYXRlRm9yQ2xpZW50UmVkaXJlY3QoKTsKIAogICAgIGlmIChtX2xvYWRpbmdG
cm9tQ2FjaGVkUGFnZSkgewotI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgLy8gTm90ZSwgZGlk
UmVjZWl2ZURvY1R5cGUgaXMgZXhwZWN0ZWQgdG8gYmUgY2FsbGVkIGZvciBjYWNoZWQgcGFnZXMu
IFNlZSA8cmRhcjovL3Byb2JsZW0vNTkwNjc1OD4gZm9yIG1vcmUgZGV0YWlscy4KLSAgICAgICAg
aWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+ZG9jdHlwZSgpICYmIG1fZnJhbWUucGFnZSgpKQotICAg
ICAgICAgICAgbV9mcmFtZS5wYWdlKCktPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKCZtX2Zy
YW1lKTsKLSNlbmRpZgorICAgICAgICBpZiAoYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQor
ICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkuZGlkUmVjZWl2ZURvY1R5cGUobV9mcmFtZSk7CiAg
ICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+cmVzdW1lKEFjdGl2ZURPTU9iamVjdDo6UGFnZUNh
Y2hlKTsKIAogICAgICAgICAvLyBGb3JjZSBhIGxheW91dCB0byB1cGRhdGUgdmlldyBzaXplIGFu
ZCB0aGVyZWJ5IHVwZGF0ZSBzY3JvbGxiYXJzLgpAQCAtMjQzOSwxNSArMjQzNywxNSBAQCB2b2lk
IEZyYW1lTG9hZGVyOjpkZXRhY2hDaGlsZHJlbigpCiAgICAgICAgIGNoaWxkLT5sb2FkZXIoKS5k
ZXRhY2hGcm9tUGFyZW50KCk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNsb3NlQW5kUmVtb3Zl
Q2hpbGQoRnJhbWUqIGNoaWxkKQordm9pZCBGcmFtZUxvYWRlcjo6Y2xvc2VBbmRSZW1vdmVDaGls
ZChGcmFtZSYgY2hpbGQpCiB7Ci0gICAgY2hpbGQtPnRyZWUoKS5kZXRhY2hGcm9tUGFyZW50KCk7
CisgICAgY2hpbGQudHJlZSgpLmRldGFjaEZyb21QYXJlbnQoKTsKIAotICAgIGNoaWxkLT5zZXRW
aWV3KG51bGxwdHIpOwotICAgIGlmIChjaGlsZC0+b3duZXJFbGVtZW50KCkgJiYgY2hpbGQtPnBh
Z2UoKSkKLSAgICAgICAgY2hpbGQtPnBhZ2UoKS0+ZGVjcmVtZW50U3ViZnJhbWVDb3VudCgpOwot
ICAgIGNoaWxkLT53aWxsRGV0YWNoUGFnZSgpOwotICAgIGNoaWxkLT5kZXRhY2hGcm9tUGFnZSgp
OworICAgIGNoaWxkLnNldFZpZXcobnVsbHB0cik7CisgICAgaWYgKGNoaWxkLm93bmVyRWxlbWVu
dCgpICYmIGNoaWxkLnBhZ2UoKSkKKyAgICAgICAgY2hpbGQucGFnZSgpLT5kZWNyZW1lbnRTdWJm
cmFtZUNvdW50KCk7CisgICAgY2hpbGQud2lsbERldGFjaFBhZ2UoKTsKKyAgICBjaGlsZC5kZXRh
Y2hGcm9tUGFnZSgpOwogCiAgICAgbV9mcmFtZS50cmVlKCkucmVtb3ZlQ2hpbGQoY2hpbGQpOwog
fQpAQCAtMjUyOCw3ICsyNTI2LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGV0YWNoRnJvbVBhcmVu
dCgpCiAgICAgbV9wcm9ncmVzc1RyYWNrZXIgPSBudWxscHRyOwogCiAgICAgaWYgKEZyYW1lKiBw
YXJlbnQgPSBtX2ZyYW1lLnRyZWUoKS5wYXJlbnQoKSkgewotICAgICAgICBwYXJlbnQtPmxvYWRl
cigpLmNsb3NlQW5kUmVtb3ZlQ2hpbGQoJm1fZnJhbWUpOworICAgICAgICBwYXJlbnQtPmxvYWRl
cigpLmNsb3NlQW5kUmVtb3ZlQ2hpbGQobV9mcmFtZSk7CiAgICAgICAgIHBhcmVudC0+bG9hZGVy
KCkuc2NoZWR1bGVDaGVja0NvbXBsZXRlZCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fZnJh
bWUuc2V0VmlldyhudWxscHRyKTsKQEAgLTMwMzIsNyArMzAzMCw3IEBAIGJvb2wgRnJhbWVMb2Fk
ZXI6OmRpc3BhdGNoQmVmb3JlVW5sb2FkRXZlbnQoQ2hyb21lJiBjaHJvbWUsIEZyYW1lTG9hZGVy
KiBmcmFtZUxvCiAgICAgZnJhbWVMb2FkZXJCZWluZ05hdmlnYXRlZC0+bV9jdXJyZW50TmF2aWdh
dGlvbkhhc1Nob3duQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsID0gdHJ1ZTsKIAogICAgIFN0cmlu
ZyB0ZXh0ID0gZG9jdW1lbnQtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcoYmVmb3Jl
VW5sb2FkRXZlbnQtPnJldHVyblZhbHVlKCkpOwotICAgIHJldHVybiBjaHJvbWUucnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsKHRleHQsICZtX2ZyYW1lKTsKKyAgICByZXR1cm4gY2hyb21lLnJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCh0ZXh0LCBtX2ZyYW1lKTsKIH0KIAogdm9pZCBGcmFt
ZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgRm9ybVN0YXRlKiBmb3JtU3RhdGUsIGJvb2wgc2hvdWxkQ29udGlu
dWUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRV
UkwpCkBAIC0zNjU3LDcgKzM2NTUsNyBAQCBSZWZQdHI8RnJhbWU+IGNyZWF0ZVdpbmRvdyhGcmFt
ZSYgb3BlbmVyRnJhbWUsIEZyYW1lJiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMbwogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lU
b0FwcGx5KG9wZW5lckZyYW1lLCByZXF1ZXN0LnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ko
KSk7Ci0gICAgUGFnZSogcGFnZSA9IG9sZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdygmb3Bl
bmVyRnJhbWUsIHJlcXVlc3RXaXRoUmVmZXJyZXIsIGZlYXR1cmVzLCBOYXZpZ2F0aW9uQWN0aW9u
KHJlcXVlc3RXaXRoUmVmZXJyZXIucmVzb3VyY2VSZXF1ZXN0KCksIHNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kpKTsKKyAgICBQYWdlKiBwYWdlID0gb2xkUGFnZS0+Y2hyb21lKCkuY3JlYXRl
V2luZG93KG9wZW5lckZyYW1lLCByZXF1ZXN0V2l0aFJlZmVycmVyLCBmZWF0dXJlcywgTmF2aWdh
dGlvbkFjdGlvbihyZXF1ZXN0V2l0aFJlZmVycmVyLnJlc291cmNlUmVxdWVzdCgpLCBzaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5KSk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIApAQCAtMzcwNSw3ICszNzAzLDcgQEAgUmVmUHRyPEZyYW1lPiBjcmVhdGVXaW5k
b3coRnJhbWUmIG9wZW5lckZyYW1lLCBGcmFtZSYgbG9va3VwRnJhbWUsIGNvbnN0IEZyYW1lTG8K
ICAgICAgICAgd2luZG93UmVjdC5zZXRIZWlnaHQoKmZlYXR1cmVzLmhlaWdodCArICh3aW5kb3dS
ZWN0LmhlaWdodCgpIC0gdmlld3BvcnRTaXplLmhlaWdodCgpKSk7CiAKICAgICAvLyBFbnN1cmUg
bm9uLU5hTiB2YWx1ZXMsIG1pbmltdW0gc2l6ZSBhcyB3ZWxsIGFzIGJlaW5nIHdpdGhpbiB2YWxp
ZCBzY3JlZW4gYXJlYS4KLSAgICBGbG9hdFJlY3QgbmV3V2luZG93UmVjdCA9IERPTVdpbmRvdzo6
YWRqdXN0V2luZG93UmVjdChwYWdlLCB3aW5kb3dSZWN0KTsKKyAgICBGbG9hdFJlY3QgbmV3V2lu
ZG93UmVjdCA9IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdCgqcGFnZSwgd2luZG93UmVjdCk7
CiAKICAgICBpZiAoIWZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBmYWEwNzEyZmE0ZDI0Nzg3ZmE1NWQ0ODRj
NTQ1NDI2NWJhNTFiNjJiLi5kNjljODI5YzRlMmY2YWJmOTRjZTFiNDA1NjQ3N2VjNmI5MGI2OThh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMzY2LDcgKzM2Niw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0RnJvbURlbGVnYXRlKFJlc291cmNlUmVxdWVzdCYsIHVu
c2lnbmVkIGxvbmcmIGlkZW50aWZpZXIsIFJlc291cmNlRXJyb3ImKTsKIAogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGV0YWNoQ2hpbGRyZW4oKTsKLSAgICB2b2lkIGNsb3NlQW5kUmVtb3ZlQ2hp
bGQoRnJhbWUqKTsKKyAgICB2b2lkIGNsb3NlQW5kUmVtb3ZlQ2hpbGQoRnJhbWUmKTsKIAogICAg
IHZvaWQgbG9hZEluU2FtZURvY3VtZW50KGNvbnN0IFVSTCYsIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSogc3RhdGVPYmplY3QsIGJvb2wgaXNOZXdOYXZpZ2F0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1BvbGljeUNoZWNrZXIuY3BwCmluZGV4IGJiYjYxZWI0ODIxMjE5ODNhYmViNTdiY2U0ZTg0
NzM0YjdmZTYyMjMuLmEwMWNlMjkyOWExMDEwNjAwNGEyNGU3NGE2MDhiOGNkNzY3NjFhNjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBA
QCB2b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmV3V2luZG93UG9saWN5KGNvbnN0IE5hdmlnYXRp
b25BY3Rpb24mIGFjdGlvbiwgY29uc3QgUgogICAgIGlmIChtX2ZyYW1lLmRvY3VtZW50KCkgJiYg
bV9mcmFtZS5kb2N1bWVudCgpLT5pc1NhbmRib3hlZChTYW5kYm94UG9wdXBzKSkKICAgICAgICAg
cmV0dXJuIGNvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KFBvbGljeUlnbm9yZSk7CiAKLSAg
ICBpZiAoIURPTVdpbmRvdzo6YWxsb3dQb3BVcCgmbV9mcmFtZSkpCisgICAgaWYgKCFET01XaW5k
b3c6OmFsbG93UG9wVXAobV9mcmFtZSkpCiAgICAgICAgIHJldHVybiBjb250aW51ZUFmdGVyTmF2
aWdhdGlvblBvbGljeShQb2xpY3lJZ25vcmUpOwogCiAgICAgbV9jYWxsYmFjay5zZXQocmVxdWVz
dCwgZm9ybVN0YXRlLCBmcmFtZU5hbWUsIGFjdGlvbiwgV1RGTW92ZShmdW5jdGlvbikpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmNwcAppbmRleCA4YTI4Zjg4ZTY2NzNkYjE3MDJiMTQ0MTRmYWY3MzhiNWM3NDJmY2Vm
Li45ZjlhYjAwMGNmNmQ5Mzg1ZjhhMjU4ZjUxNTFiODcwZjcyOTBkOGFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3Vw
LmNwcApAQCAtNzg0LDcgKzc4NCw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpjYWNo
ZVVwZGF0ZUZhaWxlZCgpCiAKIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpyZWNhbGN1bGF0
ZUF2YWlsYWJsZVNwYWNlSW5RdW90YSgpCiB7Ci0gICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCktPmFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlKCkuY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4
Y2x1ZGluZ0NhY2hlKG1fb3JpZ2luLmdldCgpLCBtX25ld2VzdENhY2hlLmdldCgpLCBtX2F2YWls
YWJsZVNwYWNlSW5RdW90YSkpIHsKKyAgICBpZiAoIW1fZnJhbWUtPnBhZ2UoKS0+YXBwbGljYXRp
b25DYWNoZVN0b3JhZ2UoKS5jYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5n
Q2FjaGUobV9vcmlnaW4sIG1fbmV3ZXN0Q2FjaGUuZ2V0KCksIG1fYXZhaWxhYmxlU3BhY2VJblF1
b3RhKSkgewogICAgICAgICAvLyBGYWlsZWQgdG8gZGV0ZXJtaW5lIHdoYXQgaXMgbGVmdCBpbiB0
aGUgcXVvdGEuIEZhbGxiYWNrIHRvIGFsbG93aW5nIGFueXRoaW5nLgogICAgICAgICBtX2F2YWls
YWJsZVNwYWNlSW5RdW90YSA9IEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpub1F1b3RhKCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVHcm91cC5oCmluZGV4IGZjODUxZGE3Y2ZhOGM0MzMyZjY4NWVhMjkxMjJlMzdkNGRi
N2FhYTIuLmNlYjgzZGZjNjIxNmZlNTU4NDI3N2M5ZjlhYWU1NjYwOGQ3YzRkMGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdy
b3VwLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogCiAgICAgQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2UmIHN0b3JhZ2UoKSB7IHJldHVybiBtX3N0b3JhZ2U7IH0KICAgICBjb25zdCBVUkwmIG1h
bmlmZXN0VVJMKCkgY29uc3QgeyByZXR1cm4gbV9tYW5pZmVzdFVSTDsgfQotICAgIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luKiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbi5nZXQoKTsgfQor
ICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdp
bi5nZXQoKTsgfQogICAgIFVwZGF0ZVN0YXR1cyB1cGRhdGVTdGF0dXMoKSBjb25zdCB7IHJldHVy
biBtX3VwZGF0ZVN0YXR1czsgfQogICAgIHZvaWQgc2V0VXBkYXRlU3RhdHVzKFVwZGF0ZVN0YXR1
cyBzdGF0dXMpOwogCkBAIC0xMzUsNyArMTM1LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8QXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2U+IG1fc3RvcmFnZTsKIAogICAgIFVSTCBtX21hbmlmZXN0VVJMOwot
ICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9vcmlnaW47CisgICAgUmVmPFNlY3VyaXR5T3Jp
Z2luPiBtX29yaWdpbjsKICAgICBVcGRhdGVTdGF0dXMgbV91cGRhdGVTdGF0dXMgeyBJZGxlIH07
CiAgICAgCiAgICAgLy8gVGhpcyBpcyB0aGUgbmV3ZXN0IGNvbXBsZXRlIGNhY2hlIGluIHRoZSBn
cm91cC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCmluZGV4IGY0ZmE5NWI1MTdlYzc3OTE2MjRmYzBmMjVh
NjU2YjBjMDk0NDE0NzcuLmI2YjlkN2E3Y2Q2M2MwNzZhZTdhODQxMDk5OTgwYjQzZWY4N2I2YWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlLmNwcApAQCAtNDIxLDcgKzQyMSw3IEBAIHZvaWQgQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2U6OnNldERlZmF1bHRPcmlnaW5RdW90YShpbnQ2NF90IHF1b3RhKQogICAg
IG1fZGVmYXVsdE9yaWdpblF1b3RhID0gcXVvdGE7CiB9CiAKLWJvb2wgQXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2U6OmNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBv
cmlnaW4sIGludDY0X3QmIHF1b3RhKQorYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2Fs
Y3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgaW50NjRf
dCYgcXVvdGEpCiB7CiAgICAgU1FMaXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0b0NvdW50ZXIg
dHJhbnNhY3Rpb25Db3VudGVyOwogCkBAIC00MzIsNyArNDMyLDcgQEAgYm9vbCBBcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmln
aW4qIG9yaWcKICAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIHN0YXRlbWVudC5iaW5kVGV4dCgxLCBTZWN1cml0eU9y
aWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbigqb3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIo
KSk7CisgICAgc3RhdGVtZW50LmJpbmRUZXh0KDEsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNl
Y3VyaXR5T3JpZ2luKG9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogICAgIGludCByZXN1
bHQgPSBzdGF0ZW1lbnQuc3RlcCgpOwogCiAgICAgLy8gUmV0dXJuIHRoZSBxdW90YSwgb3IgaWYg
aXQgd2FzIG51bGwgdGhlIGRlZmF1bHQuCkBAIC00NzIsNyArNDcyLDcgQEAgYm9vbCBBcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlVXNhZ2VGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlP
cmlnaW4qIG9yaWcKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgQXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShj
b25zdCBTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBBcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSwgaW50
NjRfdCYgcmVtYWluaW5nU2l6ZSkKK2Jvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1
bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShjb25zdCBTZWN1cml0eU9y
aWdpbiYgb3JpZ2luLCBBcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSwgaW50NjRfdCYgcmVtYWluaW5n
U2l6ZSkKIHsKICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRlciB0cmFu
c2FjdGlvbkNvdW50ZXI7CiAKQEAgLTUwMyw3ICs1MDMsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjpjYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUo
Y29ucwogICAgIGlmIChzdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSykKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgc3RhdGVtZW50LmJpbmRUZXh0KDEsIFNlY3VyaXR5T3JpZ2lu
RGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpvcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpKTsK
KyAgICBzdGF0ZW1lbnQuYmluZFRleHQoMSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJp
dHlPcmlnaW4ob3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CiAgICAgaWYgKGV4Y2x1ZGlu
Z0NhY2hlSWRlbnRpZmllciAhPSAwKQogICAgICAgICBzdGF0ZW1lbnQuYmluZEludDY0KDIsIGV4
Y2x1ZGluZ0NhY2hlSWRlbnRpZmllcik7CiAgICAgaW50IHJlc3VsdCA9IHN0YXRlbWVudC5zdGVw
KCk7CkBAIC02ODgsMTQgKzY4OCwxNCBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpz
dG9yZShBcHBsaWNhdGlvbkNhY2hlR3JvdXAqIGdyb3VwLCBHcm91cFN0b3JhZ2VJRAogCiAgICAg
c3RhdGVtZW50LmJpbmRJbnQ2NCgxLCB1cmxIb3N0SGFzaChncm91cC0+bWFuaWZlc3RVUkwoKSkp
OwogICAgIHN0YXRlbWVudC5iaW5kVGV4dCgyLCBncm91cC0+bWFuaWZlc3RVUkwoKSk7Ci0gICAg
c3RhdGVtZW50LmJpbmRUZXh0KDMsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3Jp
Z2luKCpncm91cC0+b3JpZ2luKCkpLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKKyAgICBzdGF0ZW1l
bnQuYmluZFRleHQoMywgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oZ3Jv
dXAtPm9yaWdpbigpKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CiAKICAgICBpZiAoIWV4ZWN1dGVT
dGF0ZW1lbnQoc3RhdGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgdW5zaWdu
ZWQgZ3JvdXBTdG9yYWdlSUQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9kYXRhYmFzZS5sYXN0
SW5zZXJ0Um93SUQoKSk7CiAKLSAgICBpZiAoIWVuc3VyZU9yaWdpblJlY29yZChncm91cC0+b3Jp
Z2luKCkpKQorICAgIGlmICghZW5zdXJlT3JpZ2luUmVjb3JkKCZncm91cC0+b3JpZ2luKCkpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBncm91cC0+c2V0U3RvcmFnZUlEKGdyb3VwU3Rv
cmFnZUlEKTsKQEAgLTk3MSw3ICs5NzEsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdl
OjpjaGVja09yaWdpblF1b3RhKEFwcGxpY2F0aW9uQ2FjaGVHcm91cCogZ3JvdXAsIEFwcAogewog
ICAgIC8vIENoZWNrIGlmIHRoZSBvbGRDYWNoZSB3aXRoIHRoZSBuZXdDYWNoZSB3b3VsZCByZWFj
aCB0aGUgcGVyLW9yaWdpbiBxdW90YS4KICAgICBpbnQ2NF90IHJlbWFpbmluZ1NwYWNlSW5Pcmln
aW47Ci0gICAgY29uc3QgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGdyb3VwLT5vcmlnaW4oKTsK
KyAgICBhdXRvJiBvcmlnaW4gPSBncm91cC0+b3JpZ2luKCk7CiAgICAgaWYgKGNhbGN1bGF0ZVJl
bWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShvcmlnaW4sIG9sZENhY2hlLCByZW1h
aW5pbmdTcGFjZUluT3JpZ2luKSkgewogICAgICAgICBpZiAocmVtYWluaW5nU3BhY2VJbk9yaWdp
biA8IG5ld0NhY2hlLT5lc3RpbWF0ZWRTaXplSW5TdG9yYWdlKCkpIHsKICAgICAgICAgICAgIGlu
dDY0X3QgcXVvdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oCmluZGV4IDlmYTI5MmVlNTBmYWVlODljMzVjODYx
YThmOTlmYTE2ZjkwNTQ3NmQuLjlkMTdhMWJjZDA2YTZhYzExMWEwYWNhYTYwNzY0ZjZiMTU0MDUw
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZS5oCkBAIC02Myw4ICs2Myw4IEBAIHB1YmxpYzoKICAgICBpbnQ2
NF90IGRlZmF1bHRPcmlnaW5RdW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmYXVsdE9yaWdpblF1
b3RhOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREZWZhdWx0T3JpZ2luUXVvdGEoaW50
NjRfdCBxdW90YSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjYWxjdWxhdGVVc2FnZUZvck9y
aWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiosIGludDY0X3QmIHVzYWdlKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
KiwgaW50NjRfdCYgcXVvdGEpOwotICAgIGJvb2wgY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9y
aWdpbkV4Y2x1ZGluZ0NhY2hlKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiwgQXBwbGljYXRpb25DYWNo
ZSosIGludDY0X3QmIHJlbWFpbmluZ1NpemUpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2Fs
Y3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90JiBxdW90
YSk7CisgICAgYm9vbCBjYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2Fj
aGUoY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBBcHBsaWNhdGlvbkNhY2hlKiwgaW50NjRfdCYgcmVt
YWluaW5nU2l6ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzdG9yZVVwZGF0ZWRRdW90YUZv
ck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiosIGludDY0X3QgcXVvdGEpOwogICAgIGJvb2wg
Y2hlY2tPcmlnaW5RdW90YShBcHBsaWNhdGlvbkNhY2hlR3JvdXAqLCBBcHBsaWNhdGlvbkNhY2hl
KiBvbGRDYWNoZSwgQXBwbGljYXRpb25DYWNoZSogbmV3Q2FjaGUsIGludDY0X3QmIHRvdGFsU3Bh
Y2VOZWVkZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9t
aHRtbC9NSFRNTEFyY2hpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0
bWwvTUhUTUxBcmNoaXZlLmNwcAppbmRleCBhOTIxYjA1ZTg0NmEwNWE1YWZjZTYzMDNhYTE4Zjhi
ZjMwNzA5ZGI0Li4yY2E2N2UyN2JlODg0MmNjN2EyMTdkYWE5MjU1ZTgxOGVmOWExOTJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2
ZS5jcHAKQEAgLTEzMyw4ICsxMzMsOCBAQCBSZWZQdHI8TUhUTUxBcmNoaXZlPiBNSFRNTEFyY2hp
dmU6OmNyZWF0ZShjb25zdCBVUkwmIHVybCwgU2hhcmVkQnVmZmVyJiBkYXRhKQogUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gTUhUTUxBcmNoaXZlOjpnZW5lcmF0ZU1IVE1MRGF0YShQYWdlKiBwYWdlKQog
ewogICAgIFZlY3RvcjxQYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U+IHJlc291cmNlczsKLSAgICBQ
YWdlU2VyaWFsaXplciBwYWdlU2VyaWFsaXplcigmcmVzb3VyY2VzKTsKLSAgICBwYWdlU2VyaWFs
aXplci5zZXJpYWxpemUocGFnZSk7CisgICAgUGFnZVNlcmlhbGl6ZXIgcGFnZVNlcmlhbGl6ZXIo
cmVzb3VyY2VzKTsKKyAgICBwYWdlU2VyaWFsaXplci5zZXJpYWxpemUoKnBhZ2UpOwogCiAgICAg
U3RyaW5nIGJvdW5kYXJ5ID0gZ2VuZXJhdGVSYW5kb21Cb3VuZGFyeSgpOwogICAgIFN0cmluZyBl
bmRPZlJlc291cmNlQm91bmRhcnkgPSBtYWtlU3RyaW5nKCItLSIsIGJvdW5kYXJ5LCAiXHJcbiIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCmluZGV4IGUxNTE3NmQzMzE5
ZDk0Y2UwYjljOTFmYmJkOGViNzM3ODE5NGM4NjQuLmU5NzEzOTYxY2UzYjc0ODg0YTFiM2JlM2U1
MGE3MzkwNjIzZjg5ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAK
QEAgLTE4Miw3ICsxODIsNyBAQCBib29sIE1hdGhNTEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2Fi
bGUoS2V5Ym9hcmRFdmVudCYgZXZlbnQpIGNvbnN0CiAgICAgICAgIHJldHVybiBTdHlsZWRFbGVt
ZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KTsKIAogICAgIGlmIChpc0xpbmsoKSkKLSAg
ICAgICAgcmV0dXJuIGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlu
a3MoJmV2ZW50KTsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5k
bGVyKCkudGFic1RvTGlua3MoZXZlbnQpOwogCiAgICAgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6Omlz
S2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDc0
ZGRlMWEzNGUxNWU5MDk3MWFkMDg2ZTI3MGI5YWE1Njk4ODIxMGIuLmUzNjNmNDNhZGM2ZjViY2U0
OTA4NDQwOTc1Mzc0NmFhODYxZTg0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTQ4LDcg
KzQ4LDYgQEAKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiV2luZG93
RmVhdHVyZXMuaCIKICNpbmNsdWRlIDxydW50aW1lL1ZNLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKQEAgLTYzLDEwICs2Miw2IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBD
aHJvbWU6OkNocm9tZShQYWdlJiBwYWdlLCBDaHJvbWVDbGllbnQmIGNsaWVudCkKICAgICA6IG1f
cGFnZShwYWdlKQogICAgICwgbV9jbGllbnQoY2xpZW50KQotICAgICwgbV9kaXNwbGF5SUQoMCkK
LSNpZiBQTEFURk9STShJT1MpCi0gICAgLCBtX2lzRGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFu
Z2VTdXBwcmVzc2VkKGZhbHNlKQotI2VuZGlmCiB7CiB9CiAKQEAgLTExNCw2ICsxMDksNyBAQCBJ
bnRSZWN0IENocm9tZTo6cm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JiByZWN0KSBjb25z
dAogfQogICAgIAogI2lmIFBMQVRGT1JNKElPUykKKwogSW50UG9pbnQgQ2hyb21lOjphY2Nlc3Np
YmlsaXR5U2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fY2xpZW50LmFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KHBvaW50KTsK
QEAgLTEyMyw2ICsxMTksNyBAQCBJbnRSZWN0IENocm9tZTo6cm9vdFZpZXdUb0FjY2Vzc2liaWxp
dHlTY3JlZW4oY29uc3QgSW50UmVjdCYgcmVjdCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jbGll
bnQucm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4ocmVjdCk7CiB9CisKICNlbmRpZgogCiBQ
bGF0Zm9ybVBhZ2VDbGllbnQgQ2hyb21lOjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdApAQCAt
MTMwLDcgKzEyNyw3IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBDaHJvbWU6OnBsYXRmb3JtUGFnZUNs
aWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2xpZW50LnBsYXRmb3JtUGFnZUNsaWVudCgpOwog
fQogCi12b2lkIENocm9tZTo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0
IEludFNpemUmIHNpemUpIGNvbnN0Cit2b2lkIENocm9tZTo6Y29udGVudHNTaXplQ2hhbmdlZChG
cmFtZSYgZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CiB7CiAgICAgbV9jbGllbnQu
Y29udGVudHNTaXplQ2hhbmdlZChmcmFtZSwgc2l6ZSk7CiB9CkBAIC0xOTAsMTUgKzE4NywxMyBA
QCB2b2lkIENocm9tZTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSogZnJhbWUpIGNvbnN0CiAg
ICAgbV9jbGllbnQuZm9jdXNlZEZyYW1lQ2hhbmdlZChmcmFtZSk7CiB9CiAKLVBhZ2UqIENocm9t
ZTo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiBhY3Rpb24pIGNvbnN0CitQYWdlKiBDaHJvbWU6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJh
bWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVz
JiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uKSBjb25zdAogewogICAg
IFBhZ2UqIG5ld1BhZ2UgPSBtX2NsaWVudC5jcmVhdGVXaW5kb3coZnJhbWUsIHJlcXVlc3QsIGZl
YXR1cmVzLCBhY3Rpb24pOwogICAgIGlmICghbmV3UGFnZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0K
LSAgICBpZiAoU3RvcmFnZU5hbWVzcGFjZSogb2xkU2Vzc2lvblN0b3JhZ2UgPSBtX3BhZ2Uuc2Vz
c2lvblN0b3JhZ2UoZmFsc2UpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoYXV0
byogb2xkU2Vzc2lvblN0b3JhZ2UgPSBtX3BhZ2Uuc2Vzc2lvblN0b3JhZ2UoZmFsc2UpKQogICAg
ICAgICBuZXdQYWdlLT5zZXRTZXNzaW9uU3RvcmFnZShvbGRTZXNzaW9uU3RvcmFnZS0+Y29weShu
ZXdQYWdlKSk7Ci0KICAgICByZXR1cm4gbmV3UGFnZTsKIH0KIApAQCAtMjc2LDcgKzI3MSw3IEBA
IGJvb2wgQ2hyb21lOjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKQogICAgIHJldHVy
biBtX2NsaWVudC5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKTsKIH0KIAotYm9vbCBD
aHJvbWU6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IEZyYW1lKiBmcmFtZSkKK2Jvb2wgQ2hyb21lOjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSYgZnJhbWUpCiB7CiAgICAgLy8gRGVmZXIgbG9h
ZHMgaW4gY2FzZSB0aGUgY2xpZW50IG1ldGhvZCBydW5zIGEgbmV3IGV2ZW50IGxvb3AgdGhhdCB3
b3VsZAogICAgIC8vIG90aGVyd2lzZSBjYXVzZSB0aGUgbG9hZCB0byBjb250aW51ZSB3aGlsZSB3
ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGV4ZWN1dGluZyBKYXZhU2NyaXB0LgpAQCAtMjkwLDUzICsy
ODUsNDcgQEAgdm9pZCBDaHJvbWU6OmNsb3NlV2luZG93U29vbigpCiAgICAgbV9jbGllbnQuY2xv
c2VXaW5kb3dTb29uKCk7CiB9CiAKLXZvaWQgQ2hyb21lOjpydW5KYXZhU2NyaXB0QWxlcnQoRnJh
bWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIENocm9tZTo6cnVuSmF2YVNj
cmlwdEFsZXJ0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIC8v
IERlZmVyIGxvYWRzIGluIGNhc2UgdGhlIGNsaWVudCBtZXRob2QgcnVucyBhIG5ldyBldmVudCBs
b29wIHRoYXQgd291bGQKICAgICAvLyBvdGhlcndpc2UgY2F1c2UgdGhlIGxvYWQgdG8gY29udGlu
dWUgd2hpbGUgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBleGVjdXRpbmcgSmF2YVNjcmlwdC4KICAg
ICBQYWdlR3JvdXBMb2FkRGVmZXJyZXIgZGVmZXJyZXIobV9wYWdlLCB0cnVlKTsKIAotICAgIEFT
U0VSVChmcmFtZSk7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7Ci0gICAgU3Ry
aW5nIGRpc3BsYXlNZXNzYWdlID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rp
bmcobWVzc2FnZSk7CisgICAgU3RyaW5nIGRpc3BsYXlNZXNzYWdlID0gZnJhbWUuZGlzcGxheVN0
cmluZ01vZGlmaWVkQnlFbmNvZGluZyhtZXNzYWdlKTsKIAogICAgIG1fY2xpZW50LnJ1bkphdmFT
Y3JpcHRBbGVydChmcmFtZSwgZGlzcGxheU1lc3NhZ2UpOwogfQogCi1ib29sIENocm9tZTo6cnVu
SmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiti
b29sIENocm9tZTo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpCiB7CiAgICAgLy8gRGVmZXIgbG9hZHMgaW4gY2FzZSB0aGUgY2xpZW50IG1l
dGhvZCBydW5zIGEgbmV3IGV2ZW50IGxvb3AgdGhhdCB3b3VsZAogICAgIC8vIG90aGVyd2lzZSBj
YXVzZSB0aGUgbG9hZCB0byBjb250aW51ZSB3aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGV4
ZWN1dGluZyBKYXZhU2NyaXB0LgogICAgIFBhZ2VHcm91cExvYWREZWZlcnJlciBkZWZlcnJlciht
X3BhZ2UsIHRydWUpOwogCi0gICAgQVNTRVJUKGZyYW1lKTsKICAgICBub3RpZnlQb3B1cE9wZW5p
bmdPYnNlcnZlcnMoKTsKLSAgICBTdHJpbmcgZGlzcGxheU1lc3NhZ2UgPSBmcmFtZS0+ZGlzcGxh
eVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhtZXNzYWdlKTsKLQotICAgIHJldHVybiBtX2NsaWVu
dC5ydW5KYXZhU2NyaXB0Q29uZmlybShmcmFtZSwgZGlzcGxheU1lc3NhZ2UpOworICAgIHJldHVy
biBtX2NsaWVudC5ydW5KYXZhU2NyaXB0Q29uZmlybShmcmFtZSwgZnJhbWUuZGlzcGxheVN0cmlu
Z01vZGlmaWVkQnlFbmNvZGluZyhtZXNzYWdlKSk7CiB9CiAKLWJvb2wgQ2hyb21lOjpydW5KYXZh
U2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0
cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKK2Jvb2wgQ2hyb21lOjpydW5KYXZh
U2NyaXB0UHJvbXB0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0
cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKIHsKICAgICAvLyBEZWZlciBsb2Fk
cyBpbiBjYXNlIHRoZSBjbGllbnQgbWV0aG9kIHJ1bnMgYSBuZXcgZXZlbnQgbG9vcCB0aGF0IHdv
dWxkCiAgICAgLy8gb3RoZXJ3aXNlIGNhdXNlIHRoZSBsb2FkIHRvIGNvbnRpbnVlIHdoaWxlIHdl
J3JlIGluIHRoZSBtaWRkbGUgb2YgZXhlY3V0aW5nIEphdmFTY3JpcHQuCiAgICAgUGFnZUdyb3Vw
TG9hZERlZmVycmVyIGRlZmVycmVyKG1fcGFnZSwgdHJ1ZSk7CiAKLSAgICBBU1NFUlQoZnJhbWUp
OwogICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpOwotICAgIFN0cmluZyBkaXNwbGF5
UHJvbXB0ID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcocHJvbXB0KTsK
KyAgICBTdHJpbmcgZGlzcGxheVByb21wdCA9IGZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5
RW5jb2RpbmcocHJvbXB0KTsKIAotICAgIGJvb2wgb2sgPSBtX2NsaWVudC5ydW5KYXZhU2NyaXB0
UHJvbXB0KGZyYW1lLCBkaXNwbGF5UHJvbXB0LCBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVk
QnlFbmNvZGluZyhkZWZhdWx0VmFsdWUpLCByZXN1bHQpOworICAgIGJvb2wgb2sgPSBtX2NsaWVu
dC5ydW5KYXZhU2NyaXB0UHJvbXB0KGZyYW1lLCBkaXNwbGF5UHJvbXB0LCBmcmFtZS5kaXNwbGF5
U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKGRlZmF1bHRWYWx1ZSksIHJlc3VsdCk7CiAgICAgaWYg
KG9rKQotICAgICAgICByZXN1bHQgPSBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNv
ZGluZyhyZXN1bHQpOworICAgICAgICByZXN1bHQgPSBmcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZp
ZWRCeUVuY29kaW5nKHJlc3VsdCk7CiAKICAgICByZXR1cm4gb2s7CiB9CiAKLXZvaWQgQ2hyb21l
OjpzZXRTdGF0dXNiYXJUZXh0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBzdGF0dXMpCit2
b2lkIENocm9tZTo6c2V0U3RhdHVzYmFyVGV4dChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYg
c3RhdHVzKQogewotICAgIEFTU0VSVChmcmFtZSk7Ci0gICAgbV9jbGllbnQuc2V0U3RhdHVzYmFy
VGV4dChmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhzdGF0dXMpKTsKKyAg
ICBtX2NsaWVudC5zZXRTdGF0dXNiYXJUZXh0KGZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5
RW5jb2Rpbmcoc3RhdHVzKSk7CiB9CiAKIHZvaWQgQ2hyb21lOjptb3VzZURpZE1vdmVPdmVyRWxl
bWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3Mp
CkBAIC00MDcsOSArMzk2LDkgQEAgdm9pZCBDaHJvbWU6OnNldFRvb2xUaXAoY29uc3QgSGl0VGVz
dFJlc3VsdCYgcmVzdWx0KQogICAgIG1fY2xpZW50LnNldFRvb2xUaXAodG9vbFRpcCwgdG9vbFRp
cERpcmVjdGlvbik7CiB9CiAKLXZvaWQgQ2hyb21lOjpwcmludChGcmFtZSogZnJhbWUpCit2b2lk
IENocm9tZTo6cHJpbnQoRnJhbWUmIGZyYW1lKQogewotICAgIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBoYXZlIFBhZ2VHcm91cExvYWREZWZlcnJlciwgbGlrZSBydW5Nb2RhbCgpIG9yIHJ1bkphdmFT
Y3JpcHRBbGVydCgpLCBiZWNhc3VlIGl0J3Mgbm8gZGlmZmVyZW50IGZyb20gdGhvc2UuCisgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIGhhdmUgUGFnZUdyb3VwTG9hZERlZmVycmVyLCBsaWtlIHJ1
bk1vZGFsKCkgb3IgcnVuSmF2YVNjcmlwdEFsZXJ0KCksIGJlY2F1c2UgaXQncyBubyBkaWZmZXJl
bnQgZnJvbSB0aG9zZS4KICAgICBtX2NsaWVudC5wcmludChmcmFtZSk7CiB9CiAKQEAgLTQyNCwx
MSArNDEzLDEzIEBAIHZvaWQgQ2hyb21lOjpkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKQogfQog
CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi1zdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9v
c2VyPiBDaHJvbWU6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqIGNsaWVu
dCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKKworc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hv
b3Nlcj4gQ2hyb21lOjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiBjbGll
bnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCiB7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5n
T2JzZXJ2ZXJzKCk7CiAgICAgcmV0dXJuIG1fY2xpZW50LmNyZWF0ZUNvbG9yQ2hvb3NlcihjbGll
bnQsIGluaXRpYWxDb2xvcik7CiB9CisKICNlbmRpZgogCiB2b2lkIENocm9tZTo6cnVuT3BlblBh
bmVsKEZyYW1lJiBmcmFtZSwgRmlsZUNob29zZXImIGZpbGVDaG9vc2VyKQpAQCAtNTM4LDEzICs1
MjksMTMgQEAgYm9vbCBDaHJvbWU6Omhhc09wZW5lZFBvcHVwKCkgY29uc3QKICAgICByZXR1cm4g
bV9jbGllbnQuaGFzT3BlbmVkUG9wdXAoKTsKIH0KIAotUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21l
OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8
UG9wdXBNZW51PiBDaHJvbWU6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmIGNsaWVu
dCkgY29uc3QKIHsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKICAgICByZXR1
cm4gbV9jbGllbnQuY3JlYXRlUG9wdXBNZW51KGNsaWVudCk7CiB9CiAKLVJlZlB0cjxTZWFyY2hQ
b3B1cE1lbnU+IENocm9tZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCog
Y2xpZW50KSBjb25zdAorUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7CiAgICAgbm90aWZ5
UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7CiAgICAgcmV0dXJuIG1fY2xpZW50LmNyZWF0ZVNlYXJj
aFBvcHVwTWVudShjbGllbnQpOwpAQCAtNTU1LDMwICs1NDYsMjcgQEAgYm9vbCBDaHJvbWU6OnJl
cXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKQogICAgIHJldHVybiBtX2NsaWVudC5y
ZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCk7CiB9CiAKLSNpZiBQTEFURk9STShJ
T1MpCi0vLyBGSVhNRTogTWFrZSBhcmd1bWVudCwgZnJhbWUsIGEgcmVmZXJlbmNlLgotdm9pZCBD
aHJvbWU6OmRpZFJlY2VpdmVEb2NUeXBlKEZyYW1lKiBmcmFtZSkKK3ZvaWQgQ2hyb21lOjpkaWRS
ZWNlaXZlRG9jVHlwZShGcmFtZSYgZnJhbWUpCiB7Ci0gICAgQVNTRVJUKGZyYW1lKTsKLSAgICBp
ZiAoIWZyYW1lLT5pc01haW5GcmFtZSgpKQorI2lmICFQTEFURk9STShJT1MpCisgICAgVU5VU0VE
X1BBUkFNKGZyYW1lKTsKKyNlbHNlCisgICAgaWYgKCFmcmFtZS5pc01haW5GcmFtZSgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBib29sIGhhc01vYmlsZURvY1R5cGUgPSBmYWxzZTsKLSAgICBp
ZiAoRG9jdW1lbnRUeXBlKiBkb2N1bWVudFR5cGUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9jdHlw
ZSgpKQotICAgICAgICBoYXNNb2JpbGVEb2NUeXBlID0gZG9jdW1lbnRUeXBlLT5wdWJsaWNJZCgp
LmNvbnRhaW5zKCJ4aHRtbCBtb2JpbGUiLCBmYWxzZSk7Ci0gICAgbV9jbGllbnQuZGlkUmVjZWl2
ZU1vYmlsZURvY1R5cGUoaGFzTW9iaWxlRG9jVHlwZSk7Ci19CisgICAgYXV0byogZG9jdHlwZSA9
IGZyYW1lLmRvY3VtZW50KCktPmRvY3R5cGUoKTsKKyAgICBtX2NsaWVudC5kaWRSZWNlaXZlTW9i
aWxlRG9jVHlwZShkb2N0eXBlICYmIGRvY3R5cGUtPnB1YmxpY0lkKCkuY29udGFpbnNJZ25vcmlu
Z0FTQ0lJQ2FzZSgieGh0bWwgbW9iaWxlIikpOwogI2VuZGlmCit9CiAKLXZvaWQgQ2hyb21lOjpy
ZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyKiBvYnNlcnZl
cikKK3ZvaWQgQ2hyb21lOjpyZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3Blbmlu
Z09ic2VydmVyJiBvYnNlcnZlcikKIHsKLSAgICBBU1NFUlQob2JzZXJ2ZXIpOwotICAgIG1fcG9w
dXBPcGVuaW5nT2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZlcik7CisgICAgbV9wb3B1cE9wZW5pbmdP
YnNlcnZlcnMuYXBwZW5kKCZvYnNlcnZlcik7CiB9CiAKLXZvaWQgQ2hyb21lOjp1bnJlZ2lzdGVy
UG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXIqIG9ic2VydmVyKQordm9p
ZCBDaHJvbWU6OnVucmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNl
cnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgYm9vbCByZW1vdmVkID0gbV9wb3B1cE9wZW5pbmdPYnNl
cnZlcnMucmVtb3ZlRmlyc3Qob2JzZXJ2ZXIpOworICAgIGJvb2wgcmVtb3ZlZCA9IG1fcG9wdXBP
cGVuaW5nT2JzZXJ2ZXJzLnJlbW92ZUZpcnN0KCZvYnNlcnZlcik7CiAgICAgQVNTRVJUX1VOVVNF
RChyZW1vdmVkLCByZW1vdmVkKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggNmQyNWFjODkx
NjAwZjIxODRhNjU0ZGFkMzIyNmQ0NmM4MTkzMmE2Ni4uYjNjNDY0N2MxYWU5NTAwNTIwNzgzNDll
MDc2YTI5YjBlNmFkYzZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC05NSw3ICs5NSw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25z
dDsKIAotICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNvbnN0IEludFNpemUm
KSBjb25zdDsKKyAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUmLCBjb25zdCBJbnRT
aXplJikgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFdpbmRvd1JlY3QoY29u
c3QgRmxvYXRSZWN0JikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgRmxvYXRSZWN0IHdpbmRv
d1JlY3QoKSBjb25zdDsKQEAgLTExMSw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb2N1
c2VkRWxlbWVudENoYW5nZWQoRWxlbWVudCopIGNvbnN0OwogICAgIHZvaWQgZm9jdXNlZEZyYW1l
Q2hhbmdlZChGcmFtZSopIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgUGFnZSogY3JlYXRl
V2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1
cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JU
IFBhZ2UqIGNyZWF0ZVdpbmRvdyhGcmFtZSYsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25z
dCBXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBjb25zdDsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNob3coKSBjb25zdDsKIAogICAgIGJvb2wgY2FuUnVuTW9kYWwo
KSBjb25zdDsKQEAgLTEzMiwyNiArMTMyLDI2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlc2l6
YWJsZShib29sKSBjb25zdDsKIAogICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKCk7Ci0gICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBGcmFtZSopOworICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmKTsKIAogICAgIHZvaWQgY2xvc2VXaW5kb3dT
b29uKCk7CiAKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmlu
ZyYpOwotICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcm
KTsKLSAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCk7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KEZyYW1lKiwgY29uc3QgU3RyaW5n
Jik7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmLCBjb25zdCBTdHJpbmcmKTsK
KyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiwgY29uc3QgU3RyaW5nJik7Cisg
ICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChGcmFtZSYsIGNvbnN0IFN0cmluZyYpOwog
CiAgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0Jiwg
dW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CiAKICAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgSGl0
VGVzdFJlc3VsdCYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcmludChGcmFtZSopOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJpbnQoRnJhbWUmKTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZW5hYmxlU3VkZGVuVGVybWluYXRpb24oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpOwogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVf
Q09MT1IpCi0gICAgc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9v
c2VyKENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNo
b29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKTsKICNlbmRpZgogCiAgICAg
dm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYpOwpAQCAtMTY4LDI4ICsxNjgs
MjggQEAgcHVibGljOgogICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKTsKICAgICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJl
Y3Rpb24oKTsKICAgICBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3Q7Ci0gICAgUmVmUHRyPFBv
cHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwotICAgIFJl
ZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqKSBjb25zdDsKKyAgICBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50JikgY29uc3Q7CisgICAgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2Vh
cmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oSU9T
KQogICAgIC8vIEZJWE1FOiBDYW4gd2UgY29tZSB1cCB3aXRoIGEgYmV0dGVyIG5hbWUgZm9yIHRo
aXMgc2V0dGVyPwogICAgIHZvaWQgc2V0RGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBw
cmVzc2VkKGJvb2wgZGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkKSB7IG1f
aXNEaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZVN1cHByZXNzZWQgPSBkaXNwYXRjaFZpZXdw
b3J0RGF0YURpZENoYW5nZVN1cHByZXNzZWQ7IH0KLQotICAgIHZvaWQgZGlkUmVjZWl2ZURvY1R5
cGUoRnJhbWUqKTsKICNlbmRpZgogCi0gICAgdm9pZCByZWdpc3RlclBvcHVwT3BlbmluZ09ic2Vy
dmVyKFBvcHVwT3BlbmluZ09ic2VydmVyKik7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyUG9wdXBPcGVu
aW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVE
b2NUeXBlKEZyYW1lJik7CisKKyAgICB2b2lkIHJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIo
UG9wdXBPcGVuaW5nT2JzZXJ2ZXImKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJQb3B1cE9wZW5pbmdP
YnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgbm90
aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCkgY29uc3Q7CiAKICAgICBQYWdlJiBtX3BhZ2U7CiAg
ICAgQ2hyb21lQ2xpZW50JiBtX2NsaWVudDsKLSAgICBQbGF0Zm9ybURpc3BsYXlJRCBtX2Rpc3Bs
YXlJRDsKKyAgICBQbGF0Zm9ybURpc3BsYXlJRCBtX2Rpc3BsYXlJRCB7IDAgfTsKICAgICBWZWN0
b3I8UG9wdXBPcGVuaW5nT2JzZXJ2ZXIqPiBtX3BvcHVwT3BlbmluZ09ic2VydmVyczsKICNpZiBQ
TEFURk9STShJT1MpCi0gICAgYm9vbCBtX2lzRGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VT
dXBwcmVzc2VkOworICAgIGJvb2wgbV9pc0Rpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlU3Vw
cHJlc3NlZCB7IGZhbHNlIH07CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCmluZGV4IDJjODliNmNiYTUwNjgwYjk3MmRjNTVmYzRiMjRjNDg5MGZhZWI4MjQuLjhhMTYz
OTFmYmI4NmJjY2I3NGZmZTVjNDFmZjVhNTg2NmNlN2VhNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaApAQCAtMTIzLDcgKzEyMyw3IEBAIHB1YmxpYzoKICAgICAvLyBjcmVhdGVkIFBh
Z2UgaGFzIGl0cyBzaG93IG1ldGhvZCBjYWxsZWQuCiAgICAgLy8gVGhlIEZyYW1lTG9hZFJlcXVl
c3QgcGFyYW1ldGVyIGlzIG9ubHkgZm9yIENocm9tZUNsaWVudCB0byBjaGVjayBpZiB0aGUKICAg
ICAvLyByZXF1ZXN0IGNvdWxkIGJlIGZ1bGZpbGxlZC4gVGhlIENocm9tZUNsaWVudCBzaG91bGQg
bm90IGxvYWQgdGhlIHJlcXVlc3QuCi0gICAgdmlydHVhbCBQYWdlKiBjcmVhdGVXaW5kb3coRnJh
bWUqLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJikgPSAwOworICAgIHZpcnR1YWwgUGFnZSogY3JlYXRlV2luZG93
KEZyYW1lJiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwg
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvdygpID0g
MDsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5Nb2RhbCgpID0gMDsKQEAgLTE0Niw2MyArMTQ2
LDY3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNz
YWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQg
bGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlE
KSA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KCkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmKSA9IDA7
CiAKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgPSAwOwogCi0gICAgdmlydHVh
bCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmluZyYpID0gMDsKLSAg
ICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcm
KSA9IDA7Ci0gICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJl
c3VsdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmLCBj
b25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRDb25maXJt
KEZyYW1lJiwgY29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2Ny
aXB0UHJvbXB0KEZyYW1lJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
ZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3Rh
dHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCBLZXlib2FyZFVJTW9k
ZSBrZXlib2FyZFVJTW9kZSgpID0gMDsKIAotICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2lu
ZG93LgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ltbWVkaWF0ZUludmFsaWRhdGlvbigpIHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25z
dCBJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRS
b290Vmlldyhjb25zdCBJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
Q29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3Qm
KSA9IDA7CisKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgdmlydHVhbCB2b2lk
IGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJbnRQb2ludCYpID0gMDsKICNlbmRpZgor
CiAgICAgdmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50Jikg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgSW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IElu
dFJlY3QmKSBjb25zdCA9IDA7CisKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBJbnRQ
b2ludCBhY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIEludFJlY3Qgcm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4o
Y29uc3QgSW50UmVjdCYpIGNvbnN0ID0gMDsKICNlbmRpZiAgICAKKwogICAgIHZpcnR1YWwgUGxh
dGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCA9IDA7CisKICNpZiBFTkFC
TEUoQ1VSU09SX1NVUFBPUlQpCiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJz
b3ImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zl
cyhib29sKSA9IDA7CiAjZW5kaWYKKwogI2lmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVf
VElNRVIpCiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgPSAwOwogI2VuZGlm
Ci0gICAgLy8gRW5kIG1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgogCi0gICAgdmlydHVhbCBG
bG9hdFNpemUgc2NyZWVuU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Q2hyb21lQ2xp
ZW50Kj4odGhpcyktPndpbmRvd1JlY3QoKS5zaXplKCk7IH0KLSAgICB2aXJ0dWFsIEZsb2F0U2l6
ZSBhdmFpbGFibGVTY3JlZW5TaXplKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxDaHJvbWVD
bGllbnQqPih0aGlzKS0+d2luZG93UmVjdCgpLnNpemUoKTsgfQorICAgIHZpcnR1YWwgRmxvYXRT
aXplIHNjcmVlblNpemUoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PENocm9tZUNsaWVudCY+
KCp0aGlzKS53aW5kb3dSZWN0KCkuc2l6ZSgpOyB9CisgICAgdmlydHVhbCBGbG9hdFNpemUgYXZh
aWxhYmxlU2NyZWVuU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Q2hyb21lQ2xpZW50
Jj4oKnRoaXMpLndpbmRvd1JlY3QoKS5zaXplKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYp
IGNvbnN0IHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUq
LCBjb25zdCBJbnRTaXplJikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1Np
emVDaGFuZ2VkKEZyYW1lJiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCB7IH07IC8vIEN1
cnJlbnRseSBvbmx5IE1hYyBoYXMgYSBub24gZW1wdHkgaW1wbGVtZW50YXRpb24uCiAKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVy
RW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNr
ZWQoRWxlbWVudCosIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJl
YXNvbikgY29uc3QgeyB9CisgICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9u
Q2xpY2tlZChFbGVtZW50JiwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmls
aXR5UmVhc29uKSBjb25zdCB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVs
ZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpID0gMDsK
IAogICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rp
b24pID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSopID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcHJpbnQoRnJhbWUmKSA9IDA7CiAKICAgICB2aXJ0dWFsIENvbG9yIHVuZGVybGF5
Q29sb3IoKSBjb25zdCB7IHJldHVybiBDb2xvcigpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFn
ZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yRGlkQ2hhbmdlKENvbG9yKSBjb25zdCB7IH0KIAotICAg
IHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcm
IGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGV4
Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSYsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBE
YXRhYmFzZURldGFpbHMpID0gMDsKIAogICAgIC8vIENhbGxiYWNrIGludm9rZWQgd2hlbiB0aGUg
YXBwbGljYXRpb24gY2FjaGUgZmFpbHMgdG8gc2F2ZSBhIGNhY2hlIG9iamVjdAogICAgIC8vIGJl
Y2F1c2Ugc3RvcmluZyBpdCB3b3VsZCBncm93IHRoZSBkYXRhYmFzZSBmaWxlIHBhc3QgaXRzIGRl
ZmluZWQgbWF4aW11bQpAQCAtMjE5LDcgKzIyMyw3IEBAIHB1YmxpYzoKICAgICAvLyBzdG9yYWdl
LCBpbiBieXRlcywgbmVlZGVkIHRvIHN0b3JlIHRoZSBuZXcgY2FjaGUgYWxvbmcgd2l0aCBhbGwg
b2YgdGhlCiAgICAgLy8gb3RoZXIgZXhpc3RpbmcgY2FjaGVzIGZvciB0aGUgb3JpZ2luIHRoYXQg
d291bGQgbm90IGJlIHJlcGxhY2VkIGJ5CiAgICAgLy8gdGhlIG5ldyBjYWNoZS4KLSAgICB2aXJ0
dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdp
biosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWFj
aGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCB0
b3RhbFNwYWNlTmVlZGVkKSA9IDA7CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAg
ICAgdmlydHVhbCB2b2lkIGFubm90YXRlZFJlZ2lvbnNDaGFuZ2VkKCk7CkBAIC0yMzYsMTAgKzI0
MCwxMCBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVl
ZHNTY3JvbGxOb3RpZmljYXRpb25zKEZyYW1lKiwgYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoRnJhbWUqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNs
ZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhGcmFtZSopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKEZyYW1lKikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoRnJhbWUmLCBib29sKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShGcmFtZSYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKEZyYW1lJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJh
bWUoRnJhbWUmKSA9IDA7CiAKICAgICBlbnVtIExheW91dFR5cGUgeyBOb3JtYWxMYXlvdXQsIFNj
cm9sbCB9OwogICAgIHZpcnR1YWwgdm9pZCBkaWRMYXlvdXQoTGF5b3V0VHlwZSA9IE5vcm1hbExh
eW91dCkgPSAwOwpAQCAtMjcwLDE2ICsyNzQsMTYgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBF
TkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDb2xv
ckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBD
b2xvciYpID0gMDsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNy
ZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYpID0gMDsK
ICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9v
c2VyJikgPSAwOwogICAgIC8vIEFzeW5jaHJvbm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBm
b3Igc3BlY2lmaWVkIGZpbGVuYW1lcy4KICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxl
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJikgPSAwOwogICAgICAgICAK
LSAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IE5vZGUqKSB7IH07Ci0gICAg
dmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUqKSB7IH07Ci0gICAgdmlydHVh
bCB2b2lkIGVsZW1lbnREaWRSZWZvY3VzKGNvbnN0IE5vZGUqKSB7IH07CisgICAgdmlydHVhbCB2
b2lkIGVsZW1lbnREaWRGb2N1cyhFbGVtZW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGVsZW1l
bnREaWRCbHVyKEVsZW1lbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZFJlZm9j
dXMoRWxlbWVudCYpIHsgfQogICAgIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQYWludEVudGly
ZUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFz
U3RhYmxlUGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMjkxLDkg
KzI5NSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0
b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3Qg
eyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKLSAgICAvLyBQYXNzIDAgYXMgdGhlIEdyYXBo
aWNzTGF5ZXIgdG8gZGV0YXRjaCB0aGUgcm9vdCBsYXllci4KLSAgICB2aXJ0dWFsIHZvaWQgYXR0
YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGlj
c0xheWVyKikgPSAwOworICAgIC8vIFBhc3MgbnVsbHB0ciBhcyB0aGUgR3JhcGhpY3NMYXllciB0
byBkZXRhdGNoIHRoZSByb290IGxheWVyLgorICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3Jh
cGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSA9
IDA7CiAgICAgLy8gU2V0cyBhIGZsYWcgdG8gc3BlY2lmeSB0aGF0IHRoZSBuZXh0IHRpbWUgY29u
dGVudCBpcyBkcmF3biB0byB0aGUgd2luZG93LAogICAgIC8vIHRoZSBjaGFuZ2VzIGFwcGVhciBv
biB0aGUgc2NyZWVuIGluIHN5bmNocm9ueSB3aXRoIHVwZGF0ZXMgdG8gR3JhcGhpY3NMYXllcnMu
CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24o
KSA9IDA7CkBAIC0zMjUsMjYgKzMyOSwyOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wg
YWRqdXN0TGF5ZXJGbHVzaFRocm90dGxpbmcoTGF5ZXJGbHVzaFRocm90dGxlU3RhdGU6OkZsYWdz
KSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGluZ0Nv
b3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlKikgY29uc3QgeyByZXR1
cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBj
cmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlJikgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsg
fQogCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotICAgIHZpcnR1YWwg
R3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBncmFwaGljc0RldmljZUFkYXB0ZXIoKSBjb25zdCB7IHJl
dHVybiAwOyB9CisgICAgdmlydHVhbCBHcmFwaGljc0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2
aWNlQWRhcHRlcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCiAgICAgdmly
dHVhbCBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSkgeyByZXR1cm4gZmFsc2U7IH0KKwogI2lmIEVOQUJMRShWSURF
TykKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQo
SFRNTFZpZGVvRWxlbWVudCYsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXIo
SFRNTE1lZGlhRWxlbWVudCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjbGVhclBsYXliYWNrQ29u
dHJvbHNNYW5hZ2VyKCkgeyB9CiAjZW5kaWYKLSAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVs
bHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JikgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9u
KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVv
RnVsbHNjcmVlbk1vZGUgLyp0YXJnZXRNb2RlKi8pIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGV4
aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlv
bihIVE1MVmlkZW9FbGVtZW50JiwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9Q
bGF5YmFjaygpIHsgcmV0dXJuIGZhbHNlOyB9IAogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVs
ZW1lbnQqLCBib29sKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1
bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1
bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiwgYm9vbCkgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50
JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50
JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFJvb3RGdWxsU2NyZWVuTGF5ZXIoR3JhcGhpY3NM
YXllciopIHsgfQogI2VuZGlmCiAKQEAgLTM1Myw3ICszNTksNyBAQCBwdWJsaWM6CiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZpcnR1YWwgTlNSZXNwb25kZXIgKmZpcnN0UmVz
cG9uZGVyKCkgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgTlNSZXNwb25kZXIgKmZpcnN0UmVz
cG9uZGVyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgdm9pZCBtYWtlRmlyc3RS
ZXNwb25kZXIoTlNSZXNwb25kZXIgKikgeyB9CiAgICAgLy8gRm9jdXNlcyBvbiB0aGUgY29udGFp
bmluZyB2aWV3IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBhZ2UuCiAgICAgdmlydHVhbCB2b2lkIG1h
a2VGaXJzdFJlc3BvbmRlcigpIHsgfQpAQCAtMzc3LDEwICszODMsMTAgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0
aW9uKCkgPSAwOwogICAgIC8vIENoZWNrcyBpZiB0aGVyZSBpcyBhbiBvcGVuZWQgcG9wdXAsIGNh
bGxlZCBieSBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCkuCiAgICAgdmlydHVhbCBib29sIGhh
c09wZW5lZFBvcHVwKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPFBvcHVwTWVudT4g
Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFs
IFJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVD
bGllbnQqKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVmUHRy
PFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYp
IGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24p
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0JiwgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24pIHsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3Qg
SW50UmVjdCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxl
RGlkQ2hhbmdlKFNjcm9sbGJhclN0eWxlKSB7IH0KQEAgLTQwOCwxNiArNDE0LDE2IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3Rv
cjxSZWZQdHI8RWxlbWVudD4+JikgeyB9OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RpZnlP
bkZvcm1DaGFuZ2VzKCkgeyByZXR1cm4gZmFsc2U7IH07CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
QWRkSGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXllciopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRB
ZGRGb290ZXJMYXllcihHcmFwaGljc0xheWVyKikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFk
ZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5ZXImKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRk
Rm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciYpIHsgfQogCi0gICAgdmlydHVhbCBib29sIHNob3Vs
ZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcqKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JG
cmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAg
IHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MsIHVpbnQ2NF90KSB7IH0KIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQog
ICAgIHZpcnR1YWwgdm9pZCBoYXNNZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50c0Rp
ZENoYW5nZShib29sKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFTZXNzaW9uTWV0YWRhdGFE
aWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWV0YWRhdGEmKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoY29uc3QgTWVkaWFTZXNz
aW9uTWV0YWRhdGEmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZENvbnRlbnRNZWRpYUVs
ZW1lbnREaWRDaGFuZ2UodWludDY0X3QpIHsgfQogI2VuZGlmCiAKQEAgLTQyNywxMSArNDMzLDEy
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKFRFTEVQSE9ORV9OVU1CRVJfREVURUNU
SU9OKSAmJiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZVRlbGVwaG9uZU51
bWJlckNsaWNrKGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGNvbnN0IFN0cmluZyYs
IGNvbnN0IEludFBvaW50JikgeyB9CiAjZW5kaWYKKwogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRS
T0xTKQotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb24mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JikgeyB9Ci0gICAgdmlydHVhbCBib29sIGhhc1JlbGV2YW50U2VsZWN0aW9uU2Vy
dmljZXMoYm9vbCAvKiBpc1RleHRPbmx5ICovKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAg
IHZpcnR1YWwgdm9pZCBoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soRnJhbWVTZWxlY3Rpb24m
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IEludFBvaW50JikgeyB9CisgICAgdmlydHVh
bCBib29sIGhhc1JlbGV2YW50U2VsZWN0aW9uU2VydmljZXMoYm9vbCAvKmlzVGV4dE9ubHkqLykg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZERpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KQEAg
LTQ0MSwxMyArNDQ4LDEzIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKQogICAgIHZpcnR1YWwgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1
aW50NjRfdCAvKmNvbnRleHRJZCovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QgLypjb250ZXh0SWQqLykgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCAvKmNvbnRleHRJZCov
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wgLyogaXNWaWRlbyAqLykgeyB9CisgICAg
dmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCAvKmNvbnRleHRJ
ZCovLCBjb25zdCBJbnRQb2ludCYsIGJvb2wgLyppc1ZpZGVvKi8pIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVpbnQ2NF90IC8q
Y29udGV4dElkKi8sIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKSAg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3Rh
dGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0
YXRlKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3RhdGUp
IHsgfQogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXpl
Q2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGlt
YWdlT3JNZWRpYURvY3VtZW50U2l6ZUNoYW5nZWQoY29uc3QgSW50U2l6ZSYpIHsgfQogCiAjaWYg
RU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMoY29uc3QgU3RyaW5nJiAvKmRldGFpbHMqLywgY29u
c3QgU3RyaW5nJiAvKmRlc2NyaXB0aW9uKi8sIE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNz
aW5nUGx1Z2luc0NhbGxiYWNrJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRN
ZW51Q29udHJvbGxlci5jcHAKaW5kZXggMGU3YTc3YjZkYTI4OWEwMjU2OTM1MzRhZDFmYzRkNTEw
OWM1MGYzMy4uYzFjNDk0ODQwMjgzODQ5ZjE1MmJiMjc0NWY4YTFiNDYwNmVlZDNlNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAtOTQsNyAr
OTQsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y2xlYXJDb250ZXh0TWVudSgpCiAg
ICAgbV9tZW51UHJvdmlkZXIgPSBudWxscHRyOwogfQogCi12b2lkIENvbnRleHRNZW51Q29udHJv
bGxlcjo6aGFuZGxlQ29udGV4dE1lbnVFdmVudChFdmVudCogZXZlbnQpCit2b2lkIENvbnRleHRN
ZW51Q29udHJvbGxlcjo6aGFuZGxlQ29udGV4dE1lbnVFdmVudChFdmVudCYgZXZlbnQpCiB7CiAg
ICAgbV9jb250ZXh0TWVudSA9IG1heWJlQ3JlYXRlQ29udGV4dE1lbnUoZXZlbnQpOwogICAgIGlm
ICghbV9jb250ZXh0TWVudSkKQEAgLTExMCw5ICsxMTAsOSBAQCBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPENvbnRleHRNZW51SXRlbT4gc2VwYXJhdG9ySXRlbSgpCiAgICAgcmV0dXJuIHN0ZDo6dW5p
cXVlX3B0cjxDb250ZXh0TWVudUl0ZW0+KG5ldyBDb250ZXh0TWVudUl0ZW0oU2VwYXJhdG9yVHlw
ZSwgQ29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb24sIFN0cmluZygpKSk7CiB9CiAKLXZvaWQgQ29u
dGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZlbnQqIGV2ZW50LCBQYXNzUmVm
UHRyPENvbnRleHRNZW51UHJvdmlkZXI+IG1lbnVQcm92aWRlcikKK3ZvaWQgQ29udGV4dE1lbnVD
b250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZlbnQmIGV2ZW50LCBDb250ZXh0TWVudVByb3Zp
ZGVyJiBwcm92aWRlcikKIHsKLSAgICBtX21lbnVQcm92aWRlciA9IG1lbnVQcm92aWRlcjsKKyAg
ICBtX21lbnVQcm92aWRlciA9ICZwcm92aWRlcjsKIAogICAgIG1fY29udGV4dE1lbnUgPSBtYXli
ZUNyZWF0ZUNvbnRleHRNZW51KGV2ZW50KTsKICAgICBpZiAoIW1fY29udGV4dE1lbnUpIHsKQEAg
LTEyMCw3ICsxMjAsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRN
ZW51KEV2ZW50KiBldmVudCwgUGFzc1JlZlB0cjxDb250ZXh0TWVudQogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgbV9tZW51UHJvdmlkZXItPnBvcHVsYXRlQ29udGV4dE1lbnUobV9jb250
ZXh0TWVudS5nZXQoKSk7CisgICAgcHJvdmlkZXIucG9wdWxhdGVDb250ZXh0TWVudShtX2NvbnRl
eHRNZW51LmdldCgpKTsKICAgICBpZiAobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5pc1NlbGVj
dGVkKCkpIHsKICAgICAgICAgYXBwZW5kSXRlbSgqc2VwYXJhdG9ySXRlbSgpLCBtX2NvbnRleHRN
ZW51LmdldCgpKTsKICAgICAgICAgcG9wdWxhdGUoKTsKQEAgLTEyOSwzMyArMTI5LDM0IEBAIHZv
aWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZlbnQqIGV2ZW50LCBQ
YXNzUmVmUHRyPENvbnRleHRNZW51CiB9CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykK
Kwogc3RhdGljIEltYWdlKiBpbWFnZUZyb21JbWFnZUVsZW1lbnROb2RlKE5vZGUmIG5vZGUpCiB7
Ci0gICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUucmVuZGVyZXIoKTsKKyAgICBhdXRv
KiByZW5kZXJlciA9IG5vZGUucmVuZGVyZXIoKTsKICAgICBpZiAoIWlzPFJlbmRlckltYWdlPihy
ZW5kZXJlcikpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIENhY2hlZEltYWdlKiBpbWFn
ZSA9IGRvd25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIpLmNhY2hlZEltYWdlKCk7CisgICAg
YXV0byogaW1hZ2UgPSBkb3duY2FzdDxSZW5kZXJJbWFnZT4oKnJlbmRlcmVyKS5jYWNoZWRJbWFn
ZSgpOwogICAgIGlmICghaW1hZ2UgfHwgaW1hZ2UtPmVycm9yT2NjdXJyZWQoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0KICAgICByZXR1cm4gaW1hZ2UtPmltYWdlRm9yUmVuZGVyZXIocmVu
ZGVyZXIpOwogfQorCiAjZW5kaWYKIAotc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250
ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQqIGV2ZW50KQor
c3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJl
Q3JlYXRlQ29udGV4dE1lbnUoRXZlbnQmIGV2ZW50KQogewotICAgIEFTU0VSVChldmVudCk7Ci0g
ICAgCi0gICAgaWYgKCFpczxNb3VzZUV2ZW50PigqZXZlbnQpKQorICAgIGlmICghaXM8TW91c2VF
dmVudD4oZXZlbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIE1vdXNlRXZlbnQm
IG1vdXNlRXZlbnQgPSBkb3duY2FzdDxNb3VzZUV2ZW50PigqZXZlbnQpOwotICAgIEhpdFRlc3RS
ZXN1bHQgcmVzdWx0KG1vdXNlRXZlbnQuYWJzb2x1dGVMb2NhdGlvbigpKTsKKyAgICBhdXRvJiBt
b3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VFdmVudD4oZXZlbnQpOworICAgIGF1dG8qIG5vZGUg
PSBtb3VzZUV2ZW50LnRhcmdldCgpLT50b05vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIGF1dG8qIGZyYW1lID0gbm9kZS0+ZG9jdW1lbnQoKS5mcmFt
ZSgpOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgTm9k
ZSogbm9kZSA9IGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCk7Ci0gICAgaWYgKEZyYW1lKiBmcmFt
ZSA9IG5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgcmVzdWx0ID0gZnJhbWUtPmV2
ZW50SGFuZGxlcigpLmhpdFRlc3RSZXN1bHRBdFBvaW50KG1vdXNlRXZlbnQuYWJzb2x1dGVMb2Nh
dGlvbigpKTsKLSAgICAKKyAgICBhdXRvIHJlc3VsdCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5o
aXRUZXN0UmVzdWx0QXRQb2ludChtb3VzZUV2ZW50LmFic29sdXRlTG9jYXRpb24oKSk7CiAgICAg
aWYgKCFyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCkBAIC0xNjMsNyArMTY0LDcgQEAgc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250
ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQKIAogI2lmIEVO
QUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGlmIChub2RlLT5pc0ltYWdlQ29udHJvbHNCdXR0
b25FbGVtZW50KCkpIHsKLSAgICAgICAgaWYgKEltYWdlKiBpbWFnZSA9IGltYWdlRnJvbUltYWdl
RWxlbWVudE5vZGUoKnJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSkpCisgICAgICAgIGlmIChh
dXRvKiBpbWFnZSA9IGltYWdlRnJvbUltYWdlRWxlbWVudE5vZGUoKnJlc3VsdC5pbm5lck5vblNo
YXJlZE5vZGUoKSkpCiAgICAgICAgICAgICBtX2NvbnRleHQuc2V0Q29udHJvbGxlZEltYWdlKGlt
YWdlKTsKIAogICAgICAgICAvLyBGSVhNRTogSWYgd2UgY291bGRuJ3QgZ2V0IHRoZSBpbWFnZSB0
aGVuIHdlIHNob3VsZG4ndCB0cnkgdG8gc2hvdyB0aGUgaW1hZ2UgY29udHJvbHMgbWVudSBmb3Ig
aXQuCkBAIC0xNzEsMjQgKzE3MiwyNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IENv
bnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudAogICAgIH0K
ICNlbmRpZgogCi0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4obmV3IENv
bnRleHRNZW51KTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDb250ZXh0TWVudT4oKTsK
IH0KIAotdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCog
ZXZlbnQpCit2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50
JiBldmVudCkKIHsKICAgICBpZiAobV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5lbmFibGVk
KCkpCiAgICAgICAgIGFkZEluc3BlY3RFbGVtZW50SXRlbSgpOwogCi0gICAgZXZlbnQtPnNldERl
ZmF1bHRIYW5kbGVkKCk7CisgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKIH0KIAotc3Rh
dGljIHZvaWQgb3Blbk5ld1dpbmRvdyhjb25zdCBVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1l
LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kpCitzdGF0aWMgdm9pZCBvcGVuTmV3V2luZG93KGNvbnN0IFVSTCYgdXJsVG9Mb2FkLCBGcmFt
ZSYgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSkKIHsKLSAgICBQYWdlKiBvbGRQYWdlID0gZnJhbWUtPnBhZ2UoKTsKKyAgICBQ
YWdlKiBvbGRQYWdlID0gZnJhbWUucGFnZSgpOwogICAgIGlmICghb2xkUGFnZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgp
LT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFtZS0+bG9h
ZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0Zvcndh
cmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MsIHNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChmcmFtZS5kb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFtZS5s
b2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9y
d2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlk
VVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcywgc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSk7CiAKICAgICBQYWdlKiBuZXdQYWdlID0gb2xkUGFnZS0+Y2hyb21lKCku
Y3JlYXRlV2luZG93KGZyYW1lLCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9u
QWN0aW9uKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpKTsKICAgICBpZiAoIW5ld1BhZ2UpCkBA
IC0xOTgsMTUgKzE5OSwxNyBAQCBzdGF0aWMgdm9pZCBvcGVuTmV3V2luZG93KGNvbnN0IFVSTCYg
dXJsVG9Mb2FkLCBGcmFtZSogZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbAogfQogCiAjaWYgUExB
VEZPUk0oR1RLKQotc3RhdGljIHZvaWQgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihVQ2hhciBjaGFy
YWN0ZXIsIEZyYW1lKiBmcmFtZSkKKworc3RhdGljIHZvaWQgaW5zZXJ0VW5pY29kZUNoYXJhY3Rl
cihVQ2hhciBjaGFyYWN0ZXIsIEZyYW1lJiBmcmFtZSkKIHsKICAgICBTdHJpbmcgdGV4dCgmY2hh
cmFjdGVyLCAxKTsKLSAgICBpZiAoIWZyYW1lLT5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KHRl
eHQsIGZyYW1lLT5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpLCBFZGl0b3JJ
bnNlcnRBY3Rpb246OlR5cGVkKSkKKyAgICBpZiAoIWZyYW1lLmVkaXRvcigpLnNob3VsZEluc2Vy
dFRleHQodGV4dCwgZnJhbWUuc2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwg
RWRpdG9ySW5zZXJ0QWN0aW9uOjpUeXBlZCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VS
VChmcmFtZS0+ZG9jdW1lbnQoKSk7Ci0gICAgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dCgqZnJh
bWUtPmRvY3VtZW50KCksIHRleHQsIDAsIFR5cGluZ0NvbW1hbmQ6OlRleHRDb21wb3NpdGlvbk5v
bmUpOworICAgIEFTU0VSVChmcmFtZS5kb2N1bWVudCgpKTsKKyAgICBUeXBpbmdDb21tYW5kOjpp
bnNlcnRUZXh0KCpmcmFtZS5kb2N1bWVudCgpLCB0ZXh0LCAwLCBUeXBpbmdDb21tYW5kOjpUZXh0
Q29tcG9zaXRpb25Ob25lKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgQ29udGV4dE1lbnVDb250cm9s
bGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNv
bnN0IFN0cmluZyYgdGl0bGUpCkBAIC0yMjUsNyArMjI4LDcgQEAgdm9pZCBDb250ZXh0TWVudUNv
bnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlv
biwgY28KIAogICAgIHN3aXRjaCAoYWN0aW9uKSB7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1U
YWdPcGVuTGlua0luTmV3V2luZG93OgotICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5o
aXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5OjpTaG91bGRBbGxvd0V4dGVybmFsU2NoZW1lcyk7CisgICAgICAgIG9wZW5O
ZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgKmZy
YW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvd0V4dGVybmFsU2No
ZW1lcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxv
YWRMaW5rVG9EaXNrOgogICAgICAgICAvLyBGSVhNRTogU29tZSBkYXkgd2Ugc2hvdWxkIGJlIGFi
bGUgdG8gZG8gdGhpcyBmcm9tIHdpdGhpbiBXZWJDb3JlLiAoQnVnIDExNzcwOSkKQEAgLTIzNSw3
ICsyMzgsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2Vs
ZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwogICAgICAgICBmcmFtZS0+ZWRpdG9y
KCkuY29weVVSTChtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBt
X2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLnRleHRDb250ZW50KCkpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93OgotICAgICAg
ICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVJbWFnZVVS
TCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cp
OworICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1
dGVJbWFnZVVSTCgpLCAqZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3Vs
ZE5vdEFsbG93KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdE
b3dubG9hZEltYWdlVG9EaXNrOgogICAgICAgICAvLyBGSVhNRTogU29tZSBkYXkgd2Ugc2hvdWxk
IGJlIGFibGUgdG8gZG8gdGhpcyBmcm9tIHdpdGhpbiBXZWJDb3JlLiAoQnVnIDExNzcwOSkKQEAg
LTI1Miw3ICsyNTUsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJ
dGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwogICAgICAgICBicmVhazsK
ICNlbmRpZgogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3c6
Ci0gICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0
ZU1lZGlhVVJMKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRO
b3RBbGxvdyk7CisgICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQo
KS5hYnNvbHV0ZU1lZGlhVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eTo6U2hvdWxkTm90QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51
SXRlbVRhZ0Rvd25sb2FkTWVkaWFUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIGRheSB3
ZSBzaG91bGQgYmUgYWJsZSB0byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUuIChCdWcgMTE3
NzA5KQpAQCAtMjg1LDkgKzI4OCw5IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250
ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdzogewogICAgICAgICBEb2N1
bWVudExvYWRlciogbG9hZGVyID0gZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCk7CiAg
ICAgICAgIGlmICghbG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLmlzRW1wdHkoKSkKLSAgICAgICAg
ICAgIG9wZW5OZXdXaW5kb3cobG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLCBmcmFtZSwgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOworICAgICAgICAgICAgb3Bl
bk5ld1dpbmRvdyhsb2FkZXItPnVucmVhY2hhYmxlVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBvcGVuTmV3V2luZG93KGxvYWRlci0+dXJsKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgICAgICAgICBvcGVuTmV3V2luZG93
KGxvYWRlci0+dXJsKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hv
dWxkTm90QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdDb3B5OgpAQCAtMzE4LDM0ICszMjEsMzQgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRy
b2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwg
Y28KICAgICAgICAgZnJhbWUtPmVkaXRvcigpLnBlcmZvcm1EZWxldGUoKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0TFJNTWFyazoKLSAg
ICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9SaWdodE1hcmssIGZyYW1lKTsKKyAg
ICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9SaWdodE1hcmssICpmcmFtZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydFJM
TU1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRNYXJrLCBm
cmFtZSk7CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRNYXJrLCAq
ZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNv
ZGVJbnNlcnRMUkVNYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1Jp
Z2h0RW1iZWQsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9S
aWdodEVtYmVkLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51
SXRlbVRhZ1VuaWNvZGVJbnNlcnRSTEVNYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFj
dGVyKHJpZ2h0VG9MZWZ0RW1iZWQsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJh
Y3RlcihyaWdodFRvTGVmdEVtYmVkLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRMUk9NYXJrOgotICAgICAgICBpbnNlcnRV
bmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0T3ZlcnJpZGUsIGZyYW1lKTsKKyAgICAgICAgaW5z
ZXJ0VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9SaWdodE92ZXJyaWRlLCAqZnJhbWUpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRSTE9NYXJr
OgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHJpZ2h0VG9MZWZ0T3ZlcnJpZGUsIGZy
YW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdodFRvTGVmdE92ZXJyaWRl
LCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1Vu
aWNvZGVJbnNlcnRQREZNYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHBvcERp
cmVjdGlvbmFsRm9ybWF0dGluZywgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFj
dGVyKHBvcERpcmVjdGlvbmFsRm9ybWF0dGluZywgKmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0WldTTWFyazoKLSAgICAgICAg
aW5zZXJ0VW5pY29kZUNoYXJhY3Rlcih6ZXJvV2lkdGhTcGFjZSwgZnJhbWUpOworICAgICAgICBp
bnNlcnRVbmljb2RlQ2hhcmFjdGVyKHplcm9XaWR0aFNwYWNlLCAqZnJhbWUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRaV0pNYXJrOgot
ICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHplcm9XaWR0aEpvaW5lciwgZnJhbWUpOwor
ICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHplcm9XaWR0aEpvaW5lciwgKmZyYW1lKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0
WldOSk1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoTm9uSm9p
bmVyLCBmcmFtZSk7CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoTm9u
Sm9pbmVyLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oRUZMKQpAQCAtMzkzLDcgKzM5Niw3IEBAIHZvaWQgQ29udGV4dE1lbnVD
b250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rp
b24sIGNvCiAgICAgICAgIGlmIChGcmFtZSogdGFyZ2V0RnJhbWUgPSBtX2NvbnRleHQuaGl0VGVz
dFJlc3VsdCgpLnRhcmdldEZyYW1lKCkpCiAgICAgICAgICAgICB0YXJnZXRGcmFtZS0+bG9hZGVy
KCkubG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5z
ZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQo
KS5hYnNvbHV0ZUxpbmtVUkwoKSwgZnJhbWUtPmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSks
IExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVy
cmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xp
Y3k6OlN1cHByZXNzLCB0YXJnZXRGcmFtZS0+aXNNYWluRnJhbWUoKSA/IFNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93IDogU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eTo6U2hvdWxkTm90QWxsb3cpLCBudWxscHRyLCBudWxscHRyKTsKICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRl
TGlua1VSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxs
b3cpOworICAgICAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgp
LmFic29sdXRlTGlua1VSTCgpLCAqZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6
OlNob3VsZEFsbG93KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1U
YWdCb2xkOgogICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZCgiVG9nZ2xlQm9sZCIpLmV4
ZWN1dGUoKTsKQEAgLTE0MjksMjYgKzE0MzIsMzAgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xs
ZXI6OmNoZWNrT3JFbmFibGVJZk5lZWRlZChDb250ZXh0TWVudUl0ZW0mIGl0ZW0pIGNvbnN0CiB9
CiAKICNpZiBVU0UoQUNDRVNTSUJJTElUWV9DT05URVhUX01FTlVTKQotdm9pZCBDb250ZXh0TWVu
dUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudUF0KEZyYW1lKiBmcmFtZSwgY29uc3QgSW50UG9p
bnQmIGNsaWNrUG9pbnQpCisKK3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4
dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBjbGlja1BvaW50KQogewogICAg
IGNsZWFyQ29udGV4dE1lbnUoKTsKICAgICAKICAgICAvLyBTaW11bGF0ZSBhIGNsaWNrIGluIHRo
ZSBtaWRkbGUgb2YgdGhlIGFjY2Vzc2liaWxpdHkgb2JqZWN0LgogICAgIFBsYXRmb3JtTW91c2VF
dmVudCBtb3VzZUV2ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0
Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBj
dXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKLSAgICBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KG1vdXNlRXZlbnQpOwotICAgIGJvb2wgaGFuZGxl
ZCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50
KTsKKyAgICBmcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VF
dmVudCk7CisgICAgYm9vbCBoYW5kbGVkID0gZnJhbWUuZXZlbnRIYW5kbGVyKCkuc2VuZENvbnRl
eHRNZW51RXZlbnQobW91c2VFdmVudCk7CiAgICAgaWYgKGhhbmRsZWQpCiAgICAgICAgIG1fY2xp
ZW50LnNob3dDb250ZXh0TWVudSgpOwogfQorCiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNF
X0NPTlRST0xTKQotdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dJbWFnZUNvbnRyb2xz
TWVudShFdmVudCogZXZlbnQpCisKK3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93SW1h
Z2VDb250cm9sc01lbnUoRXZlbnQmIGV2ZW50KQogewogICAgIGNsZWFyQ29udGV4dE1lbnUoKTsK
ICAgICBoYW5kbGVDb250ZXh0TWVudUV2ZW50KGV2ZW50KTsKICAgICBtX2NsaWVudC5zaG93Q29u
dGV4dE1lbnUoKTsKIH0KKwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oCmluZGV4IDExMjU2ZTFjZTc5
YWIxZTdiMzIxNThmNzg0ZGM3ODgxMzY0NzRkOGQuLmY2Mzk2NDhiMTg2MjA0NjA2ZWZjYTU2YTkw
NzgyYzg5MzdhMGU5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1l
bnVDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRy
b2xsZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yOSwyMSArMjksMTYgQEAKIAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29u
dGV4dC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51SXRlbS5oIgotI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENvbnRleHRNZW51OwogY2xh
c3MgQ29udGV4dE1lbnVDbGllbnQ7Ci1jbGFzcyBDb250ZXh0TWVudUl0ZW07CiBjbGFzcyBDb250
ZXh0TWVudVByb3ZpZGVyOwogY2xhc3MgRXZlbnQ7CiBjbGFzcyBQYWdlOwogCiBjbGFzcyBDb250
ZXh0TWVudUNvbnRyb2xsZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnRleHRNZW51
Q29udHJvbGxlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgogICAgIENvbnRleHRNZW51Q29udHJvbGxlcihQYWdlJiwgQ29u
dGV4dE1lbnVDbGllbnQmKTsKICAgICB+Q29udGV4dE1lbnVDb250cm9sbGVyKCk7CkBAIC01NCw4
ICs0OSw4IEBAIHB1YmxpYzoKICAgICBDb250ZXh0TWVudSogY29udGV4dE1lbnUoKSBjb25zdCB7
IHJldHVybiBtX2NvbnRleHRNZW51LmdldCgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBj
bGVhckNvbnRleHRNZW51KCk7CiAKLSAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZl
bnQqKTsKLSAgICB2b2lkIHNob3dDb250ZXh0TWVudShFdmVudCosIFBhc3NSZWZQdHI8Q29udGV4
dE1lbnVQcm92aWRlcj4pOworICAgIHZvaWQgaGFuZGxlQ29udGV4dE1lbnVFdmVudChFdmVudCYp
OworICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KEV2ZW50JiwgQ29udGV4dE1lbnVQcm92aWRlciYp
OwogCiAgICAgdm9pZCBwb3B1bGF0ZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udGV4
dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUp
OwpAQCAtNjgsMTYgKzYzLDE2IEBAIHB1YmxpYzoKICAgICBjb25zdCBIaXRUZXN0UmVzdWx0JiBo
aXRUZXN0UmVzdWx0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKTsg
fQogCiAjaWYgVVNFKEFDQ0VTU0lCSUxJVFlfQ09OVEVYVF9NRU5VUykKLSAgICB2b2lkIHNob3dD
b250ZXh0TWVudUF0KEZyYW1lKiwgY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQpOworICAgIHZv
aWQgc2hvd0NvbnRleHRNZW51QXQoRnJhbWUmLCBjb25zdCBJbnRQb2ludCYgY2xpY2tQb2ludCk7
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIHZvaWQgc2hvd0lt
YWdlQ29udHJvbHNNZW51KEV2ZW50Kik7CisgICAgdm9pZCBzaG93SW1hZ2VDb250cm9sc01lbnUo
RXZlbnQmKTsKICNlbmRpZgogCiBwcml2YXRlOgotICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0
TWVudT4gbWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudCopOwotICAgIHZvaWQgc2hvd0NvbnRl
eHRNZW51KEV2ZW50Kik7CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBtYXliZUNy
ZWF0ZUNvbnRleHRNZW51KEV2ZW50Jik7CisgICAgdm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQm
KTsKICAgICAKICAgICB2b2lkIGFwcGVuZEl0ZW0oQ29udGV4dE1lbnVJdGVtJiwgQ29udGV4dE1l
bnUqIHBhcmVudE1lbnUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRp
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCmluZGV4IDhjMjczODFh
ZDY5YmMyZWFiOTIzMmYyOGFhNTc2MDUwM2I2ZGIxOGQuLjZiYjg5NjFkOWNlODI4YTk4MjU0MjU5
MDAxMjZmOGU1YmRhN2MzNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGlt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCkBAIC0zNjEsNyAr
MzYxLDcgQEAgdm9pZCBET01UaW1lcjo6ZmlyZWQoKQogICAgICAgICBpZiAoV0tPYnNlcnZlZENv
bnRlbnRDaGFuZ2UoKSA9PSBXS0NvbnRlbnRWaXNpYmlsaXR5Q2hhbmdlIHx8IHNob3VsZFJlcG9y
dExhY2tPZkNoYW5nZXMpIHsKICAgICAgICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25j
YXN0PERvY3VtZW50Pihjb250ZXh0KTsKICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9j
dW1lbnQucGFnZSgpKQotICAgICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLm9i
c2VydmVkQ29udGVudENoYW5nZShkb2N1bWVudC5mcmFtZSgpKTsKKyAgICAgICAgICAgICAgICBw
YWdlLT5jaHJvbWUoKS5jbGllbnQoKS5vYnNlcnZlZENvbnRlbnRDaGFuZ2UoKmRvY3VtZW50LmZy
YW1lKCkpOwogICAgICAgICB9CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKaW5kZXggNGYwMDJmOWQyNTE3ZDkxZWQ1NTdlYjMzNjgzMTA3ZmNkZWZhMGQ5MS4uMzk3YTU3
YTk0NTAyMmM3YWY2ZDFjZjUwYzNkYTM1M2M5OTc1NmJlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcApAQCAtMTUwLDkgKzE1MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
UG9zdE1lc3NhZ2VUaW1lciA6IHB1YmxpYyBUaW1lckJhc2UgewogcHVibGljOgotICAgIFBvc3RN
ZXNzYWdlVGltZXIoRE9NV2luZG93JiB3aW5kb3csIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgRE9NV2luZG93JiBz
b3VyY2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMs
IFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiB0YXJnZXRPcmlnaW4sIFJlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+JiYgc3RhY2tUcmFjZSkKKyAgICBQb3N0TWVzc2FnZVRpbWVyKERPTVdpbmRvdyYgd2lu
ZG93LCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlT3JpZ2luLCBET01XaW5kb3cmIHNvdXJjZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQ
b3J0Q2hhbm5lbEFycmF5PiBjaGFubmVscywgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHRhcmdl
dE9yaWdpbiwgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4mJiBzdGFja1RyYWNlKQogICAgICAgICA6
IG1fd2luZG93KHdpbmRvdykKLSAgICAgICAgLCBtX21lc3NhZ2UobWVzc2FnZSkKKyAgICAgICAg
LCBtX21lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSkKICAgICAgICAgLCBtX29yaWdpbihzb3VyY2VP
cmlnaW4pCiAgICAgICAgICwgbV9zb3VyY2Uoc291cmNlKQogICAgICAgICAsIG1fY2hhbm5lbHMo
V1RGTW92ZShjaGFubmVscykpCkBAIC0xODEsNyArMTgxLDcgQEAgcHJpdmF0ZToKICAgICB9CiAK
ICAgICBSZWY8RE9NV2luZG93PiBtX3dpbmRvdzsKLSAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBtX21lc3NhZ2U7CisgICAgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9tZXNz
YWdlOwogICAgIFN0cmluZyBtX29yaWdpbjsKICAgICBSZWY8RE9NV2luZG93PiBtX3NvdXJjZTsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IG1fY2hhbm5lbHM7
CkBAIC0zMjUsMTIgKzMyNSwxMCBAQCB2b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hBbGxQZW5kaW5n
VW5sb2FkRXZlbnRzKCkKIC8vIDMpIENvbnN0cmFpbnMgdGhlIHdpbmRvdyByZWN0IHRvIHdpdGhp
biB0aGUgdG9wIGFuZCBsZWZ0IGJvdW5kYXJpZXMgb2YgdGhlIGF2YWlsYWJsZSBzY3JlZW4gcmVj
dC4KIC8vIDQpIENvbnN0cmFpbnMgdGhlIHdpbmRvdyByZWN0IHRvIHdpdGhpbiB0aGUgYm90dG9t
IGFuZCByaWdodCBib3VuZGFyaWVzIG9mIHRoZSBhdmFpbGFibGUgc2NyZWVuIHJlY3QuCiAvLyA1
KSBUcmFuc2xhdGUgdGhlIHdpbmRvdyByZWN0IGNvb3JkaW5hdGVzIHRvIGJlIHdpdGhpbiB0aGUg
Y29vcmRpbmF0ZSBzcGFjZSBvZiB0aGUgc2NyZWVuLgotRmxvYXRSZWN0IERPTVdpbmRvdzo6YWRq
dXN0V2luZG93UmVjdChQYWdlKiBwYWdlLCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2Vz
KQorRmxvYXRSZWN0IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChQYWdlJiBwYWdlLCBjb25z
dCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKQogewotICAgIEFTU0VSVChwYWdlKTsKLQotICAg
IEZsb2F0UmVjdCBzY3JlZW4gPSBzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5GcmFtZSgp
LnZpZXcoKSk7Ci0gICAgRmxvYXRSZWN0IHdpbmRvdyA9IHBhZ2UtPmNocm9tZSgpLndpbmRvd1Jl
Y3QoKTsKKyAgICBGbG9hdFJlY3Qgc2NyZWVuID0gc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLm1h
aW5GcmFtZSgpLnZpZXcoKSk7CisgICAgRmxvYXRSZWN0IHdpbmRvdyA9IHBhZ2UuY2hyb21lKCku
d2luZG93UmVjdCgpOwogCiAgICAgLy8gTWFrZSBzdXJlIHdlJ3JlIGluIGEgdmFsaWQgc3RhdGUg
YmVmb3JlIGFkanVzdGluZyBkaW1lbnNpb25zLgogICAgIEFTU0VSVChzdGQ6OmlzZmluaXRlKHNj
cmVlbi54KCkpKTsKQEAgLTM1Miw3ICszNTAsNyBAQCBGbG9hdFJlY3QgRE9NV2luZG93OjphZGp1
c3RXaW5kb3dSZWN0KFBhZ2UqIHBhZ2UsIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5nZQog
ICAgIGlmICghc3RkOjppc25hbihwZW5kaW5nQ2hhbmdlcy5oZWlnaHQoKSkpCiAgICAgICAgIHdp
bmRvdy5zZXRIZWlnaHQocGVuZGluZ0NoYW5nZXMuaGVpZ2h0KCkpOwogCi0gICAgRmxvYXRTaXpl
IG1pbmltdW1TaXplID0gcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkubWluaW11bVdpbmRvd1NpemUo
KTsKKyAgICBGbG9hdFNpemUgbWluaW11bVNpemUgPSBwYWdlLmNocm9tZSgpLmNsaWVudCgpLm1p
bmltdW1XaW5kb3dTaXplKCk7CiAgICAgd2luZG93LnNldFdpZHRoKHN0ZDo6bWluKHN0ZDo6bWF4
KG1pbmltdW1TaXplLndpZHRoKCksIHdpbmRvdy53aWR0aCgpKSwgc2NyZWVuLndpZHRoKCkpKTsK
ICAgICB3aW5kb3cuc2V0SGVpZ2h0KHN0ZDo6bWluKHN0ZDo6bWF4KG1pbmltdW1TaXplLmhlaWdo
dCgpLCB3aW5kb3cuaGVpZ2h0KCkpLCBzY3JlZW4uaGVpZ2h0KCkpKTsKIApAQCAtMzYzLDM4ICsz
NjEsMzEgQEAgRmxvYXRSZWN0IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChQYWdlKiBwYWdl
LCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2UKICAgICByZXR1cm4gd2luZG93OwogfQog
Ci1ib29sIERPTVdpbmRvdzo6YWxsb3dQb3BVcChGcmFtZSogZmlyc3RGcmFtZSkKK2Jvb2wgRE9N
V2luZG93OjphbGxvd1BvcFVwKEZyYW1lJiBmaXJzdEZyYW1lKQogewotICAgIEFTU0VSVChmaXJz
dEZyYW1lKTsKLSAgICAKLSAgICBhdXRvJiBzZXR0aW5ncyA9IGZpcnN0RnJhbWUtPnNldHRpbmdz
KCk7Ci0KLSAgICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkg
fHwgc2V0dGluZ3MuYWxsb3dXaW5kb3dPcGVuV2l0aG91dFVzZXJHZXN0dXJlKCkpCi0gICAgICAg
IHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIHNldHRpbmdzLmphdmFTY3JpcHRDYW5PcGVuV2lu
ZG93c0F1dG9tYXRpY2FsbHkoKTsKKyAgICBhdXRvJiBzZXR0aW5ncyA9IGZpcnN0RnJhbWUuc2V0
dGluZ3MoKTsKKyAgICByZXR1cm4gU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0
dXJlKCkKKyAgICAgICAgfHwgc2V0dGluZ3MuYWxsb3dXaW5kb3dPcGVuV2l0aG91dFVzZXJHZXN0
dXJlKCkKKyAgICAgICAgfHwgc2V0dGluZ3MuamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21h
dGljYWxseSgpOwogfQogCiBib29sIERPTVdpbmRvdzo6YWxsb3dQb3BVcCgpCiB7Ci0gICAgcmV0
dXJuIG1fZnJhbWUgJiYgYWxsb3dQb3BVcChtX2ZyYW1lKTsKKyAgICByZXR1cm4gbV9mcmFtZSAm
JiBhbGxvd1BvcFVwKCptX2ZyYW1lKTsKIH0KIAotYm9vbCBET01XaW5kb3c6OmNhblNob3dNb2Rh
bERpYWxvZyhjb25zdCBGcmFtZSogZnJhbWUpCitib29sIERPTVdpbmRvdzo6Y2FuU2hvd01vZGFs
RGlhbG9nKGNvbnN0IEZyYW1lJiBmcmFtZSkKIHsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KICAgICAvLyBPdmVycmlkZSBzdXBwb3J0IGZvciBsYXlvdXQgdGVzdGlu
ZyBwdXJwb3Nlcy4KLSAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkg
eworICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZyYW1lLmRvY3VtZW50KCkpIHsKICAgICAgICAg
aWYgKGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50LT5kb21XaW5kb3coKSkgewogICAgICAgICAgICAg
aWYgKHdpbmRvdy0+bV9jYW5TaG93TW9kYWxEaWFsb2dPdmVycmlkZSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gd2luZG93LT5tX2NhblNob3dNb2RhbERpYWxvZ092ZXJyaWRlLnZhbHVlKCk7CiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBhdXRvKiBwYWdlID0gZnJhbWUtPnBhZ2UoKTsKLSAgICBy
ZXR1cm4gcGFnZSA/IHBhZ2UtPmNocm9tZSgpLmNhblJ1bk1vZGFsKCkgOiBmYWxzZTsKKyAgICBh
dXRvKiBwYWdlID0gZnJhbWUucGFnZSgpOworICAgIHJldHVybiBwYWdlICYmIHBhZ2UtPmNocm9t
ZSgpLmNhblJ1bk1vZGFsKCk7CiB9CiAKIHN0YXRpYyB2b2lkIGxhbmd1YWdlc0NoYW5nZWRDYWxs
YmFjayh2b2lkKiBjb250ZXh0KQpAQCAtNDA3LDIwICszOTgsMTggQEAgdm9pZCBET01XaW5kb3c6
OnNldENhblNob3dNb2RhbERpYWxvZ092ZXJyaWRlKGJvb2wgYWxsb3cpCiAgICAgbV9jYW5TaG93
TW9kYWxEaWFsb2dPdmVycmlkZSA9IGFsbG93OwogfQogCi1ET01XaW5kb3c6OkRPTVdpbmRvdyhE
b2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcihkb2N1
bWVudCkKLSAgICAsIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcihkb2N1bWVudC0+ZnJhbWUoKSkK
K0RPTVdpbmRvdzo6RE9NV2luZG93KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IENvbnRleHRE
ZXN0cnVjdGlvbk9ic2VydmVyKCZkb2N1bWVudCkKKyAgICAsIEZyYW1lRGVzdHJ1Y3Rpb25PYnNl
cnZlcihkb2N1bWVudC5mcmFtZSgpKQogICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewog
ICAgIEFTU0VSVChmcmFtZSgpKTsKLSAgICBBU1NFUlQoRE9NV2luZG93Ojpkb2N1bWVudCgpKTsK
LQogICAgIGFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodGhpcywgJmxhbmd1YWdlc0NoYW5nZWRD
YWxsYmFjayk7CiB9CiAKLXZvaWQgRE9NV2luZG93OjpkaWRTZWN1cmVUcmFuc2l0aW9uVG8oRG9j
dW1lbnQqIGRvY3VtZW50KQordm9pZCBET01XaW5kb3c6OmRpZFNlY3VyZVRyYW5zaXRpb25UbyhE
b2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgb2JzZXJ2ZUNvbnRleHQoZG9jdW1lbnQpOworICAg
IG9ic2VydmVDb250ZXh0KCZkb2N1bWVudCk7CiB9CiAKIERPTVdpbmRvdzo6fkRPTVdpbmRvdygp
CkBAIC01NDcsMTQgKzUzNiwxNCBAQCB2b2lkIERPTVdpbmRvdzo6ZGVjcmVtZW50R2FtZXBhZEV2
ZW50TGlzdGVuZXJDb3VudCgpCiAKICNlbmRpZgogCi12b2lkIERPTVdpbmRvdzo6cmVnaXN0ZXJQ
cm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSogcHJvcGVydHkpCit2b2lkIERPTVdpbmRvdzo6cmVn
aXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSYgcHJvcGVydHkpCiB7Ci0gICAgbV9wcm9w
ZXJ0aWVzLmFkZChwcm9wZXJ0eSk7CisgICAgbV9wcm9wZXJ0aWVzLmFkZCgmcHJvcGVydHkpOwog
fQogCi12b2lkIERPTVdpbmRvdzo6dW5yZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5
KiBwcm9wZXJ0eSkKK3ZvaWQgRE9NV2luZG93Ojp1bnJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93
UHJvcGVydHkmIHByb3BlcnR5KQogewotICAgIG1fcHJvcGVydGllcy5yZW1vdmUocHJvcGVydHkp
OworICAgIG1fcHJvcGVydGllcy5yZW1vdmUoJnByb3BlcnR5KTsKIH0KIAogdm9pZCBET01XaW5k
b3c6OnJlc2V0VW5sZXNzU3VzcGVuZGVkRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkKQEAgLTk3NCwy
MyArOTYzLDE4IEBAIHZvaWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQoUG9zdE1l
c3NhZ2VUaW1lciYgdGltZXIpCiAgICAgaWYgKCFkb2N1bWVudCgpIHx8ICFpc0N1cnJlbnRseURp
c3BsYXllZEluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZGlzcGF0Y2hNZXNzYWdl
RXZlbnRXaXRoT3JpZ2luQ2hlY2sodGltZXIudGFyZ2V0T3JpZ2luKCksIHRpbWVyLmV2ZW50KCpk
b2N1bWVudCgpKSwgdGltZXIuc3RhY2tUcmFjZSgpKTsKLX0KLQotdm9pZCBET01XaW5kb3c6OmRp
c3BhdGNoTWVzc2FnZUV2ZW50V2l0aE9yaWdpbkNoZWNrKFNlY3VyaXR5T3JpZ2luKiBpbnRlbmRl
ZFRhcmdldE9yaWdpbiwgRXZlbnQmIGV2ZW50LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4g
c3RhY2tUcmFjZSkKLXsKLSAgICBpZiAoaW50ZW5kZWRUYXJnZXRPcmlnaW4pIHsKKyAgICBpZiAo
YXV0byogaW50ZW5kZWRUYXJnZXRPcmlnaW4gPSB0aW1lci50YXJnZXRPcmlnaW4oKSkgewogICAg
ICAgICAvLyBDaGVjayB0YXJnZXQgb3JpZ2luIG5vdyBzaW5jZSB0aGUgdGFyZ2V0IGRvY3VtZW50
IG1heSBoYXZlIGNoYW5nZWQgc2luY2UgdGhlIHRpbWVyIHdhcyBzY2hlZHVsZWQuCiAgICAgICAg
IGlmICghaW50ZW5kZWRUYXJnZXRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KGRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCkpKSB7Ci0gICAgICAgICAgICBpZiAoUGFnZUNvbnNvbGVDbGll
bnQqIHBhZ2VDb25zb2xlID0gY29uc29sZSgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogcGFn
ZUNvbnNvbGUgPSBjb25zb2xlKCkpIHsKICAgICAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9
IG1ha2VTdHJpbmcoIlVuYWJsZSB0byBwb3N0IG1lc3NhZ2UgdG8gIiwgaW50ZW5kZWRUYXJnZXRP
cmlnaW4tPnRvU3RyaW5nKCksICIuIFJlY2lwaWVudCBoYXMgb3JpZ2luICIsIGRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCkudG9TdHJpbmcoKSwgIi5cbiIpOwotICAgICAgICAgICAgICAgIHBh
Z2VDb25zb2xlLT5hZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2
ZWw6OkVycm9yLCBtZXNzYWdlLCBzdGFja1RyYWNlKTsKKyAgICAgICAgICAgICAgICBwYWdlQ29u
c29sZS0+YWRkTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpF
cnJvciwgbWVzc2FnZSwgdGltZXIuc3RhY2tUcmFjZSgpKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KIAotICAgIGRpc3BhdGNoRXZlbnQoZXZl
bnQpOworICAgIGRpc3BhdGNoRXZlbnQodGltZXIuZXZlbnQoKmRvY3VtZW50KCkpKTsKIH0KIAog
RE9NU2VsZWN0aW9uKiBET01XaW5kb3c6OmdldFNlbGVjdGlvbigpCkBAIC0xMTEzLDcgKzEwOTcs
NyBAQCB2b2lkIERPTVdpbmRvdzo6cHJpbnQoKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IG1fc2hvdWxkUHJpbnRXaGVuRmluaXNoZWRMb2FkaW5nID0gZmFsc2U7Ci0gICAgcGFnZS0+Y2hy
b21lKCkucHJpbnQobV9mcmFtZSk7CisgICAgcGFnZS0+Y2hyb21lKCkucHJpbnQoKm1fZnJhbWUp
OwogfQogCiB2b2lkIERPTVdpbmRvdzo6c3RvcCgpCkBAIC0xMTQ1LDcgKzExMjksNyBAQCB2b2lk
IERPTVdpbmRvdzo6YWxlcnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIHBhZ2UtPnBvaW50
ZXJMb2NrQ29udHJvbGxlcigpLnJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CiAjZW5kaWYKIAotICAg
IHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRBbGVydChtX2ZyYW1lLCBtZXNzYWdlKTsKKyAg
ICBwYWdlLT5jaHJvbWUoKS5ydW5KYXZhU2NyaXB0QWxlcnQoKm1fZnJhbWUsIG1lc3NhZ2UpOwog
fQogCiBib29sIERPTVdpbmRvdzo6Y29uZmlybShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0x
MTY3LDcgKzExNTEsNyBAQCBib29sIERPTVdpbmRvdzo6Y29uZmlybShjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCiAgICAgcGFnZS0+cG9pbnRlckxvY2tDb250cm9sbGVyKCkucmVxdWVzdFBvaW50ZXJV
bmxvY2soKTsKICNlbmRpZgogCi0gICAgcmV0dXJuIHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3Jp
cHRDb25maXJtKG1fZnJhbWUsIG1lc3NhZ2UpOworICAgIHJldHVybiBwYWdlLT5jaHJvbWUoKS5y
dW5KYXZhU2NyaXB0Q29uZmlybSgqbV9mcmFtZSwgbWVzc2FnZSk7CiB9CiAKIFN0cmluZyBET01X
aW5kb3c6OnByb21wdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVs
dFZhbHVlKQpAQCAtMTE5MCw3ICsxMTc0LDcgQEAgU3RyaW5nIERPTVdpbmRvdzo6cHJvbXB0KGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUpCiAjZW5kaWYK
IAogICAgIFN0cmluZyByZXR1cm5WYWx1ZTsKLSAgICBpZiAocGFnZS0+Y2hyb21lKCkucnVuSmF2
YVNjcmlwdFByb21wdChtX2ZyYW1lLCBtZXNzYWdlLCBkZWZhdWx0VmFsdWUsIHJldHVyblZhbHVl
KSkKKyAgICBpZiAocGFnZS0+Y2hyb21lKCkucnVuSmF2YVNjcmlwdFByb21wdCgqbV9mcmFtZSwg
bWVzc2FnZSwgZGVmYXVsdFZhbHVlLCByZXR1cm5WYWx1ZSkpCiAgICAgICAgIHJldHVybiByZXR1
cm5WYWx1ZTsKIAogICAgIHJldHVybiBTdHJpbmcoKTsKQEAgLTEzNjgsNyArMTM1Miw3IEBAIHZv
aWQgRE9NV2luZG93OjpzZXRTdGF0dXMoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIEFTU0VSVChtX2ZyYW1lLT5kb2N1bWVudCgpKTsgLy8gQ2xpZW50IGNhbGxz
IHNob3VsZG4ndCBiZSBtYWRlIHdoZW4gdGhlIGZyYW1lIGlzIGluIGluY29uc2lzdGVudCBzdGF0
ZS4KLSAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJUZXh0KG1fZnJhbWUsIG1fc3RhdHVz
KTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJUZXh0KCptX2ZyYW1lLCBtX3N0YXR1
cyk7CiB9IAogICAgIAogdm9pZCBET01XaW5kb3c6OnNldERlZmF1bHRTdGF0dXMoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpIApAQCAtMTM4Myw3ICsxMzY3LDcgQEAgdm9pZCBET01XaW5kb3c6OnNldERl
ZmF1bHRTdGF0dXMoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgICAgIHJldHVybjsKIAogICAg
IEFTU0VSVChtX2ZyYW1lLT5kb2N1bWVudCgpKTsgLy8gQ2xpZW50IGNhbGxzIHNob3VsZG4ndCBi
ZSBtYWRlIHdoZW4gdGhlIGZyYW1lIGlzIGluIGluY29uc2lzdGVudCBzdGF0ZS4KLSAgICBwYWdl
LT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJUZXh0KG1fZnJhbWUsIG1fZGVmYXVsdFN0YXR1cyk7Cisg
ICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dCgqbV9mcmFtZSwgbV9kZWZhdWx0U3Rh
dHVzKTsKIH0KIAogRE9NV2luZG93KiBET01XaW5kb3c6OnNlbGYoKSBjb25zdApAQCAtMTQzMiw4
ICsxNDE2LDcgQEAgRE9NV2luZG93KiBET01XaW5kb3c6OnRvcCgpIGNvbnN0CiAKIERvY3VtZW50
KiBET01XaW5kb3c6OmRvY3VtZW50KCkgY29uc3QKIHsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0ID0gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKTsKLSAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOworICAg
IHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiB9CiAKIFJlZlB0cjxTdHlsZU1lZGlhPiBET01XaW5k
b3c6OnN0eWxlTWVkaWEoKSBjb25zdApAQCAtMTYxOCw4ICsxNjAxLDcgQEAgdm9pZCBET01XaW5k
b3c6Om1vdmVCeShmbG9hdCB4LCBmbG9hdCB5KSBjb25zdAogICAgIEZsb2F0UmVjdCBmciA9IHBh
Z2UtPmNocm9tZSgpLndpbmRvd1JlY3QoKTsKICAgICBGbG9hdFJlY3QgdXBkYXRlID0gZnI7CiAg
ICAgdXBkYXRlLm1vdmUoeCwgeSk7Ci0gICAgLy8gU2VjdXJpdHkgY2hlY2sgKHRoZSBzcGVjIHRh
bGtzIGFib3V0IFVuaXZlcnNhbEJyb3dzZXJXcml0ZSB0byBkaXNhYmxlIHRoaXMgY2hlY2suLi4p
Ci0gICAgcGFnZS0+Y2hyb21lKCkuc2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KHBhZ2Us
IHVwZGF0ZSkpOworICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93
UmVjdCgqcGFnZSwgdXBkYXRlKSk7CiB9CiAKIHZvaWQgRE9NV2luZG93Ojptb3ZlVG8oZmxvYXQg
eCwgZmxvYXQgeSkgY29uc3QKQEAgLTE2MzMsOCArMTYxNSw3IEBAIHZvaWQgRE9NV2luZG93Ojpt
b3ZlVG8oZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKICAgICBmci5zZXRMb2NhdGlvbihzci5sb2Nh
dGlvbigpKTsKICAgICBGbG9hdFJlY3QgdXBkYXRlID0gZnI7CiAgICAgdXBkYXRlLm1vdmUoeCwg
eSk7Ci0gICAgLy8gU2VjdXJpdHkgY2hlY2sgKHRoZSBzcGVjIHRhbGtzIGFib3V0IFVuaXZlcnNh
bEJyb3dzZXJXcml0ZSB0byBkaXNhYmxlIHRoaXMgY2hlY2suLi4pCi0gICAgcGFnZS0+Y2hyb21l
KCkuc2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIHVwZGF0ZSkpOworICAgIHBh
Z2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdCgqcGFnZSwgdXBkYXRl
KSk7CiB9CiAKIHZvaWQgRE9NV2luZG93OjpyZXNpemVCeShmbG9hdCB4LCBmbG9hdCB5KSBjb25z
dApAQCAtMTY0Niw3ICsxNjI3LDcgQEAgdm9pZCBET01XaW5kb3c6OnJlc2l6ZUJ5KGZsb2F0IHgs
IGZsb2F0IHkpIGNvbnN0CiAgICAgRmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hyb21lKCkud2luZG93
UmVjdCgpOwogICAgIEZsb2F0U2l6ZSBkZXN0ID0gZnIuc2l6ZSgpICsgRmxvYXRTaXplKHgsIHkp
OwogICAgIEZsb2F0UmVjdCB1cGRhdGUoZnIubG9jYXRpb24oKSwgZGVzdCk7Ci0gICAgcGFnZS0+
Y2hyb21lKCkuc2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIHVwZGF0ZSkpOwor
ICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdCgqcGFnZSwg
dXBkYXRlKSk7CiB9CiAKIHZvaWQgRE9NV2luZG93OjpyZXNpemVUbyhmbG9hdCB3aWR0aCwgZmxv
YXQgaGVpZ2h0KSBjb25zdApAQCAtMTY1OCw3ICsxNjM5LDcgQEAgdm9pZCBET01XaW5kb3c6OnJl
c2l6ZVRvKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpIGNvbnN0CiAgICAgRmxvYXRSZWN0IGZy
ID0gcGFnZS0+Y2hyb21lKCkud2luZG93UmVjdCgpOwogICAgIEZsb2F0U2l6ZSBkZXN0ID0gRmxv
YXRTaXplKHdpZHRoLCBoZWlnaHQpOwogICAgIEZsb2F0UmVjdCB1cGRhdGUoZnIubG9jYXRpb24o
KSwgZGVzdCk7Ci0gICAgcGFnZS0+Y2hyb21lKCkuc2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dS
ZWN0KHBhZ2UsIHVwZGF0ZSkpOworICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRq
dXN0V2luZG93UmVjdCgqcGFnZSwgdXBkYXRlKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPGludD4gRE9N
V2luZG93OjpzZXRUaW1lb3V0KHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlv
biwgaW50IHRpbWVvdXQpCkBAIC0yMjg3LDggKzIyNjgsNyBAQCB2b2lkIERPTVdpbmRvdzo6c2hv
d01vZGFsRGlhbG9nKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRpYWxv
Z0ZlYQogewogICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAg
IHJldHVybjsKLSAgICBGcmFtZSogYWN0aXZlRnJhbWUgPSBhY3RpdmVXaW5kb3cuZnJhbWUoKTsK
LSAgICBpZiAoIWFjdGl2ZUZyYW1lKQorICAgIGlmICghYWN0aXZlV2luZG93LmZyYW1lKCkpCiAg
ICAgICAgIHJldHVybjsKICAgICBGcmFtZSogZmlyc3RGcmFtZSA9IGZpcnN0V2luZG93LmZyYW1l
KCk7CiAgICAgaWYgKCFmaXJzdEZyYW1lKQpAQCAtMjMwMyw3ICsyMjgzLDcgQEAgdm9pZCBET01X
aW5kb3c6OnNob3dNb2RhbERpYWxvZyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3Ry
aW5nJiBkaWFsb2dGZWEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghY2FuU2hv
d01vZGFsRGlhbG9nKG1fZnJhbWUpIHx8ICFmaXJzdFdpbmRvdy5hbGxvd1BvcFVwKCkpCisgICAg
aWYgKCFjYW5TaG93TW9kYWxEaWFsb2coKm1fZnJhbWUpIHx8ICFmaXJzdFdpbmRvdy5hbGxvd1Bv
cFVwKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxGcmFtZT4gZGlhbG9nRnJhbWUg
PSBjcmVhdGVXaW5kb3codXJsU3RyaW5nLCBlbXB0eUF0b20sIHBhcnNlRGlhbG9nRmVhdHVyZXMo
ZGlhbG9nRmVhdHVyZXNTdHJpbmcsIHNjcmVlbkF2YWlsYWJsZVJlY3QobV9mcmFtZS0+dmlldygp
KSksIGFjdGl2ZVdpbmRvdywgKmZpcnN0RnJhbWUsICptX2ZyYW1lLCBXVEZNb3ZlKHByZXBhcmVE
aWFsb2dGdW5jdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggYzVlOTAyODk4ODZk
NzJhYTg4NmM0OWFkYjk0Nzk1ZDM3NzA1OWIzMS4uNWRlOTI3MzRmNTkyMDk3MDYwY2JjNjEwNTU3
MjgxNTEzYjc0OGVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0x
MDcsNyArMTA3LDcgQEAgY2xhc3MgRE9NV2luZG93IGZpbmFsCiAgICAgLCBwdWJsaWMgQmFzZTY0
VXRpbGl0aWVzCiAgICAgLCBwdWJsaWMgU3VwcGxlbWVudGFibGU8RE9NV2luZG93PiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxET01XaW5kb3c+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NV2luZG93KGRvY3VtZW50KSk7IH0KKyAgICBzdGF0
aWMgUmVmPERPTVdpbmRvdz4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBET01XaW5kb3coZG9jdW1lbnQpKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZp
cnR1YWwgfkRPTVdpbmRvdygpOwogCiAgICAgLy8gSW4gc29tZSByYXJlIGNhc2VzLCB3ZSdsbCBy
ZXVzZSBhIERPTVdpbmRvdyBmb3IgYSBuZXcgRG9jdW1lbnQuIEZvciBleGFtcGxlLApAQCAtMTE3
LDE1ICsxMTcsMTAgQEAgcHVibGljOgogICAgIC8vIHdvbid0IGJlIGJsb3duIGF3YXkgd2hlbiB0
aGUgbmV0d29yayBsb2FkIGNvbW1pdHMuIFRvIG1ha2UgdGhhdCBoYXBwZW4sIHdlCiAgICAgLy8g
InNlY3VyZWx5IHRyYW5zaXRpb24iIHRoZSBleGlzdGluZyBET01XaW5kb3cgdG8gdGhlIERvY3Vt
ZW50IHRoYXQgcmVzdWx0cyBmcm9tCiAgICAgLy8gdGhlIG5ldHdvcmsgbG9hZC4gU2VlIGFsc28g
U2VjdXJpdHlDb250ZXh0Ojppc1NlY3VyZVRyYW5zaXRpb25Uby4KLSAgICB2b2lkIGRpZFNlY3Vy
ZVRyYW5zaXRpb25UbyhEb2N1bWVudCopOworICAgIHZvaWQgZGlkU2VjdXJlVHJhbnNpdGlvblRv
KERvY3VtZW50Jik7CiAKLSAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVy
ZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIERPTVdpbmRvd0V2ZW50VGFyZ2V0SW50ZXJm
YWNlVHlwZTsgfQotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
cjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9Ci0KLSAgICBET01XaW5kb3cqIHRvRE9NV2lu
ZG93KCkgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIHJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJv
cGVydHkqKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSop
OworICAgIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSYpOworICAgIHZv
aWQgdW5yZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5Jik7CiAKICAgICB2b2lkIHJl
c2V0VW5sZXNzU3VzcGVuZGVkRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCk7CiAgICAgdm9pZCBzdXNw
ZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCk7CkBAIC0xMzgsMTEgKzEzMywxMSBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgZGlzcGF0Y2hBbGxQZW5kaW5nQmVmb3Jl
VW5sb2FkRXZlbnRzKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZGlzcGF0Y2hB
bGxQZW5kaW5nVW5sb2FkRXZlbnRzKCk7CiAKLSAgICBzdGF0aWMgRmxvYXRSZWN0IGFkanVzdFdp
bmRvd1JlY3QoUGFnZSosIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5nZXMpOworICAgIHN0
YXRpYyBGbG9hdFJlY3QgYWRqdXN0V2luZG93UmVjdChQYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBw
ZW5kaW5nQ2hhbmdlcyk7CiAKICAgICBib29sIGFsbG93UG9wVXAoKTsgLy8gQ2FsbCBvbiBmaXJz
dCB3aW5kb3csIG5vdCB0YXJnZXQgd2luZG93LgotICAgIHN0YXRpYyBib29sIGFsbG93UG9wVXAo
RnJhbWUqIGZpcnN0RnJhbWUpOwotICAgIHN0YXRpYyBib29sIGNhblNob3dNb2RhbERpYWxvZyhj
b25zdCBGcmFtZSopOworICAgIHN0YXRpYyBib29sIGFsbG93UG9wVXAoRnJhbWUmIGZpcnN0RnJh
bWUpOworICAgIHN0YXRpYyBib29sIGNhblNob3dNb2RhbERpYWxvZyhjb25zdCBGcmFtZSYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2FuU2hvd01vZGFsRGlhbG9nT3ZlcnJpZGUoYm9v
bCk7CiAKICAgICBTY3JlZW4qIHNjcmVlbigpIGNvbnN0OwpAQCAtMjQ1LDcgKzI0MCw2IEBAIHB1
YmxpYzoKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBvc3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRl
JiwgRE9NV2luZG93JiBjYWxsZXJXaW5kb3csIEpTQzo6SlNWYWx1ZSBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIHRhcmdldE9yaWdpbiwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYm
KTsKICAgICB2b2lkIHBvc3RNZXNzYWdlVGltZXJGaXJlZChQb3N0TWVzc2FnZVRpbWVyJik7Ci0g
ICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmlnaW5DaGVjayhTZWN1cml0eU9yaWdp
biogaW50ZW5kZWRUYXJnZXRPcmlnaW4sIEV2ZW50JiwgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlNj
cmlwdENhbGxTdGFjaz4pOwogCiAgICAgdm9pZCBsYW5ndWFnZXNDaGFuZ2VkKCk7CiAKQEAgLTI3
Miw5ICsyNjYsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBFdmVudHMKICAgICAvLyBFdmVudFRhcmdl
dCBBUEkKLSAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVu
dFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0aW9u
cyYpIG92ZXJyaWRlOwotICAgIGJvb2wgcmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGNvbnN0IExpc3RlbmVyT3B0aW9ucyYp
IG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKSBvdmVycmlkZTsK
KyAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyYpIGZp
bmFsOworICAgIGJvb2wgcmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGNvbnN0IExpc3RlbmVyT3B0aW9ucyYpIGZpbmFsOwor
ICAgIHZvaWQgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKSBmaW5hbDsKIAogICAgIHVzaW5nIEV2
ZW50VGFyZ2V0OjpkaXNwYXRjaEV2ZW50OwogICAgIGJvb2wgZGlzcGF0Y2hFdmVudChFdmVudCYs
IEV2ZW50VGFyZ2V0Kik7CkBAIC0yODYsOCArMjgwLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBm
aW5pc2hlZExvYWRpbmcoKTsKIAotICAgIHVzaW5nIFJlZkNvdW50ZWQ8RE9NV2luZG93Pjo6cmVm
OwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8RE9NV2luZG93Pjo6ZGVyZWY7CisgICAgdXNpbmcgUmVm
Q291bnRlZDo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwogCiAgICAgLy8gSFRN
TCA1IGtleS92YWx1ZSBzdG9yYWdlCiAgICAgRXhjZXB0aW9uT3I8U3RvcmFnZSo+IHNlc3Npb25T
dG9yYWdlKCkgY29uc3Q7CkBAIC0zMTMsNiArMzA3LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShX
RUJfVElNSU5HKQogICAgIFBlcmZvcm1hbmNlKiBwZXJmb3JtYW5jZSgpIGNvbnN0OwogI2VuZGlm
CisKICAgICBkb3VibGUgbm93VGltZXN0YW1wKCkgY29uc3Q7CiAKICNpZiBQTEFURk9STShJT1Mp
CkBAIC0zNDcsMTYgKzM0MiwyMSBAQCBwdWJsaWM6CiAgICAgV2Vha1B0cjxET01XaW5kb3c+IGNy
ZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsg
fQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IERPTVdpbmRvdyhEb2N1bWVudCopOworICAgIGV4
cGxpY2l0IERPTVdpbmRvdyhEb2N1bWVudCYpOworCisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2Ug
ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBET01XaW5kb3dFdmVu
dFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ29udGV4dERlc3RydWN0
aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorCisgICAgRE9NV2luZG93
KiB0b0RPTVdpbmRvdygpIGZpbmFsOwogCiAgICAgUGFnZSogcGFnZSgpOwogICAgIGJvb2wgYWxs
b3dlZFRvQ2hhbmdlV2luZG93R2VvbWV0cnkoKSBjb25zdDsKIAotICAgIHZvaWQgZnJhbWVEZXN0
cm95ZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXRhY2hQYWdlKCkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBmcmFtZURlc3Ryb3llZCgpIGZpbmFsOworICAgIHZvaWQgd2lsbERldGFjaFBhZ2Uo
KSBmaW5hbDsKIAotICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9
Ci0gICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CisgICAg
dm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZl
bnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAgIHN0YXRpYyBSZWZQdHI8RnJhbWU+
IGNyZWF0ZVdpbmRvdyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgQXRvbWljU3RyaW5n
JiBmcmFtZU5hbWUsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgRE9NV2luZG93JiBhY3RpdmVXaW5k
b3csIEZyYW1lJiBmaXJzdEZyYW1lLCBGcmFtZSYgb3BlbmVyRnJhbWUsIHN0ZDo6ZnVuY3Rpb248
dm9pZChET01XaW5kb3cmKT4gcHJlcGFyZURpYWxvZ0Z1bmN0aW9uID0gbnVsbHB0cik7CiAgICAg
Ym9vbCBpc0luc2VjdXJlU2NyaXB0QWNjZXNzKERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBjb25z
dCBTdHJpbmcmIHVybFN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvd1Byb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVy
dHkuY3BwCmluZGV4IGEzNzcwZThlNzAwYzY1ODI2MjZjNjRiOTg1ZmRlYzZmYzA3ZjMzZjUuLjU1
MDk2YjY0YWFhN2YyNDkzMWEyYzcxOWE3ZTVjNjA5ZWQ1MGY4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCkBAIC00MiwxNCArNDIsMTQgQEAgRE9NV2luZG93
UHJvcGVydHk6OkRPTVdpbmRvd1Byb3BlcnR5KEZyYW1lKiBmcmFtZSkKICAgICAvLyBXZSBzaG91
bGQgZml4IHRoYXQuICA8cmRhcjovL3Byb2JsZW0vMTE1NjcxMzI+CiAgICAgaWYgKG1fZnJhbWUp
IHsKICAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
ZG9tV2luZG93KCk7Ci0gICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+cmVnaXN0ZXJQcm9w
ZXJ0eSh0aGlzKTsKKyAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93LT5yZWdpc3RlclByb3Bl
cnR5KCp0aGlzKTsKICAgICB9CiB9CiAKIERPTVdpbmRvd1Byb3BlcnR5Ojp+RE9NV2luZG93UHJv
cGVydHkoKQogewogICAgIGlmIChtX2Fzc29jaWF0ZWRET01XaW5kb3cpCi0gICAgICAgIG1fYXNz
b2NpYXRlZERPTVdpbmRvdy0+dW5yZWdpc3RlclByb3BlcnR5KHRoaXMpOworICAgICAgICBtX2Fz
c29jaWF0ZWRET01XaW5kb3ctPnVucmVnaXN0ZXJQcm9wZXJ0eSgqdGhpcyk7CiAKICAgICBtX2Fz
c29jaWF0ZWRET01XaW5kb3cgPSBudWxscHRyOwogICAgIG1fZnJhbWUgPSBudWxscHRyOwpAQCAt
ODYsNyArODYsNyBAQCB2b2lkIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9i
amVjdEluQ2FjaGVkRnJhbWUoKQogICAgIC8vIERPTVdpbmRvd1Byb3BlcnR5IGxpZmV0aW1lIGlz
bid0IHRpZWQgZGlyZWN0bHkgdG8gdGhlIERPTVdpbmRvdyBpdHNlbGYgc28gaXQgaXMgaW1wb3J0
YW50IHRoYXQgaXQgdW5yZWdpc3RlcgogICAgIC8vIGl0c2VsZiBmcm9tIGFueSBET01XaW5kb3cg
aXQgaXMgYXNzb2NpYXRlZCB3aXRoIGlmIHRoYXQgRE9NV2luZG93IGlzIGdvaW5nIGF3YXkuCiAg
ICAgaWYgKG1fYXNzb2NpYXRlZERPTVdpbmRvdykKLSAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2lu
ZG93LT51bnJlZ2lzdGVyUHJvcGVydHkodGhpcyk7CisgICAgICAgIG1fYXNzb2NpYXRlZERPTVdp
bmRvdy0+dW5yZWdpc3RlclByb3BlcnR5KCp0aGlzKTsKICAgICBtX2Fzc29jaWF0ZWRET01XaW5k
b3cgPSBudWxscHRyOwogICAgIG1fZnJhbWUgPSBudWxscHRyOwogfQpAQCAtMTAwLDcgKzEwMCw3
IEBAIHZvaWQgRE9NV2luZG93UHJvcGVydHk6OndpbGxEZXN0cm95R2xvYmFsT2JqZWN0SW5GcmFt
ZSgpCiAgICAgLy8gRE9NV2luZG93UHJvcGVydHkgbGlmZXRpbWUgaXNuJ3QgdGllZCBkaXJlY3Rs
eSB0byB0aGUgRE9NV2luZG93IGl0c2VsZiBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCBpdCB1bnJl
Z2lzdGVyCiAgICAgLy8gaXRzZWxmIGZyb20gYW55IERPTVdpbmRvdyBpdCBpcyBhc3NvY2lhdGVk
IHdpdGggaWYgdGhhdCBET01XaW5kb3cgaXMgZ29pbmcgYXdheS4KICAgICBpZiAobV9hc3NvY2lh
dGVkRE9NV2luZG93KQotICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ctPnVucmVnaXN0ZXJQ
cm9wZXJ0eSh0aGlzKTsKKyAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93LT51bnJlZ2lzdGVy
UHJvcGVydHkoKnRoaXMpOwogICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdyA9IG51bGxwdHI7CiAg
ICAgbV9mcmFtZSA9IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RlYnVnUGFnZU92ZXJsYXlzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3Zl
cmxheXMuY3BwCmluZGV4IGNhYTA3YTQ3YmVlOGYxOWNlZTM0NGVmYTU3NmY1MGVkNDUxNDczZWEu
LmFmMDgwMmJjOGJlODAzODFkMTMzMDUzZjc3OGZjM2E3NjM2NDNlNGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCkBAIC00NCw3ICs0NCw3IEBAIERlYnVnUGFn
ZU92ZXJsYXlzKiBEZWJ1Z1BhZ2VPdmVybGF5czo6c2hhcmVkRGVidWdPdmVybGF5czsKIAogY2xh
c3MgUmVnaW9uT3ZlcmxheSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlZ2lvbk92ZXJsYXk+LCBwdWJs
aWMgUGFnZU92ZXJsYXk6OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
UmVnaW9uT3ZlcmxheT4gY3JlYXRlKE1haW5GcmFtZSYsIERlYnVnUGFnZU92ZXJsYXlzOjpSZWdp
b25UeXBlKTsKKyAgICBzdGF0aWMgUmVmUHRyPFJlZ2lvbk92ZXJsYXk+IGNyZWF0ZShNYWluRnJh
bWUmLCBEZWJ1Z1BhZ2VPdmVybGF5czo6UmVnaW9uVHlwZSk7CiAgICAgdmlydHVhbCB+UmVnaW9u
T3ZlcmxheSgpOwogCiAgICAgdm9pZCByZWNvbXB1dGVSZWdpb24oKTsKQEAgLTE0Myw3ICsxNDMs
NyBAQCBib29sIE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uT3ZlcmxheTo6dXBkYXRlUmVnaW9uKCkK
ICAgICByZXR1cm4gcmVnaW9uQ2hhbmdlZDsKIH0KIAotUGFzc1JlZlB0cjxSZWdpb25PdmVybGF5
PiBSZWdpb25PdmVybGF5OjpjcmVhdGUoTWFpbkZyYW1lJiBmcmFtZSwgRGVidWdQYWdlT3Zlcmxh
eXM6OlJlZ2lvblR5cGUgcmVnaW9uVHlwZSkKK1JlZlB0cjxSZWdpb25PdmVybGF5PiBSZWdpb25P
dmVybGF5OjpjcmVhdGUoTWFpbkZyYW1lJiBmcmFtZSwgRGVidWdQYWdlT3ZlcmxheXM6OlJlZ2lv
blR5cGUgcmVnaW9uVHlwZSkKIHsKICAgICBzd2l0Y2ggKHJlZ2lvblR5cGUpIHsKICAgICBjYXNl
IERlYnVnUGFnZU92ZXJsYXlzOjpSZWdpb25UeXBlOjpXaGVlbEV2ZW50SGFuZGxlcnM6CkBAIC0x
NjUsNyArMTY1LDcgQEAgUmVnaW9uT3ZlcmxheTo6UmVnaW9uT3ZlcmxheShNYWluRnJhbWUmIGZy
YW1lLCBDb2xvciByZWdpb25Db2xvcikKIFJlZ2lvbk92ZXJsYXk6On5SZWdpb25PdmVybGF5KCkK
IHsKICAgICBpZiAobV9vdmVybGF5KQotICAgICAgICBtX2ZyYW1lLnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSwgUGFnZU92ZXJsYXk6
OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgICAgICBtX2ZyYW1lLnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX292ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRl
TW9kZTo6RG9Ob3RGYWRlKTsKIH0KIAogdm9pZCBSZWdpb25PdmVybGF5Ojp3aWxsTW92ZVRvUGFn
ZShQYWdlT3ZlcmxheSYsIFBhZ2UqIHBhZ2UpCkBAIC0yNDgsNyArMjQ4LDcgQEAgUmVnaW9uT3Zl
cmxheSYgRGVidWdQYWdlT3ZlcmxheXM6OmVuc3VyZVJlZ2lvbk92ZXJsYXlGb3JGcmFtZShNYWlu
RnJhbWUmIGZyYW1lLAogdm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6c2hvd1JlZ2lvbk92ZXJsYXko
TWFpbkZyYW1lJiBmcmFtZSwgUmVnaW9uVHlwZSByZWdpb25UeXBlKQogewogICAgIFJlZ2lvbk92
ZXJsYXkmIHZpc3VhbGl6ZXIgPSBlbnN1cmVSZWdpb25PdmVybGF5Rm9yRnJhbWUoZnJhbWUsIHJl
Z2lvblR5cGUpOwotICAgIGZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdl
T3ZlcmxheSgmdmlzdWFsaXplci5vdmVybGF5KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9O
b3RGYWRlKTsKKyAgICBmcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92
ZXJsYXkodmlzdWFsaXplci5vdmVybGF5KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RG
YWRlKTsKIH0KIAogdm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6aGlkZVJlZ2lvbk92ZXJsYXkoTWFp
bkZyYW1lJiBmcmFtZSwgUmVnaW9uVHlwZSByZWdpb25UeXBlKQpAQCAtMjU3LDcgKzI1Nyw3IEBA
IHZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OmhpZGVSZWdpb25PdmVybGF5KE1haW5GcmFtZSYgZnJh
bWUsIFJlZ2lvblR5cGUgcmVnaW9uVHlwCiAgICAgaWYgKGl0ICE9IG1fZnJhbWVSZWdpb25PdmVy
bGF5cy5lbmQoKSkgewogICAgICAgICBhdXRvJiB2aXN1YWxpemVycyA9IGl0LT52YWx1ZTsKICAg
ICAgICAgaWYgKFJlZ2lvbk92ZXJsYXkqIHZpc3VhbGl6ZXIgPSB2aXN1YWxpemVyc1tpbmRleE9m
KHJlZ2lvblR5cGUpXS5nZXQoKSkgewotICAgICAgICAgICAgZnJhbWUucGFnZU92ZXJsYXlDb250
cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoJnZpc3VhbGl6ZXItPm92ZXJsYXkoKSwgUGFn
ZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgICAgICAgICAgZnJhbWUucGFnZU92
ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkodmlzdWFsaXplci0+b3Zlcmxh
eSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAgICAgICAgICB2aXN1
YWxpemVyc1tpbmRleE9mKHJlZ2lvblR5cGUpXSA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGYyMzE4YTAzYzE0YmQx
ZGY4MjMyMGNjMDdjNzg5OWIyOTQyN2M2NDYuLmRmNmNmZTA0YzI3YTNmOTg0MDIyMTlhNjZjODgy
YjNkNDNiNmZlNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0x
OTcsNyArMTk3LDcgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZHJhZ0V4aXRlZChjb25zdCBEcmFn
RGF0YSYgZHJhZ0RhdGEpCiAjZW5kaWYKICAgICAgICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gZGF0
YVRyYW5zZmVyID0gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChwb2xpY3ksIGRy
YWdEYXRhKTsKICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRTb3VyY2VPcGVyYXRpb24oZHJhZ0Rh
dGEuZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrKCkpOwotICAgICAgICBtX3BhZ2UubWFpbkZy
YW1lKCkuZXZlbnRIYW5kbGVyKCkuY2FuY2VsRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChk
cmFnRGF0YSksIGRhdGFUcmFuc2Zlci5nZXQoKSk7CisgICAgICAgIG1fcGFnZS5tYWluRnJhbWUo
KS5ldmVudEhhbmRsZXIoKS5jYW5jZWxEcmFnQW5kRHJvcChjcmVhdGVNb3VzZUV2ZW50KGRyYWdE
YXRhKSwgKmRhdGFUcmFuc2Zlcik7CiAgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0QWNjZXNzUG9s
aWN5KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7IC8vIEludmFsaWRhdGUgZGF0YVRy
YW5zZmVyIGhlcmUgZm9yIHNlY3VyaXR5LgogICAgIH0KICAgICBtb3VzZU1vdmVkSW50b0RvY3Vt
ZW50KG51bGxwdHIpOwpAQCAtMjI3LDcgKzIyNyw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnBl
cmZvcm1EcmFnT3BlcmF0aW9uKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICAgICAgICAg
IC8vIFNlbmRpbmcgYW4gZXZlbnQgY2FuIHJlc3VsdCBpbiB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhl
IHZpZXcgYW5kIHBhcnQuCiAgICAgICAgICAgICBSZWZQdHI8RGF0YVRyYW5zZmVyPiBkYXRhVHJh
bnNmZXIgPSBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdBbmREcm9wKERhdGFUcmFuc2ZlckFj
Y2Vzc1BvbGljeTo6UmVhZGFibGUsIGRyYWdEYXRhKTsKICAgICAgICAgICAgIGRhdGFUcmFuc2Zl
ci0+c2V0U291cmNlT3BlcmF0aW9uKGRyYWdEYXRhLmRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFz
aygpKTsKLSAgICAgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSBtYWluRnJhbWUtPmV2ZW50SGFu
ZGxlcigpLnBlcmZvcm1EcmFnQW5kRHJvcChjcmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKSwgZGF0
YVRyYW5zZmVyLmdldCgpKTsKKyAgICAgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSBtYWluRnJh
bWUtPmV2ZW50SGFuZGxlcigpLnBlcmZvcm1EcmFnQW5kRHJvcChjcmVhdGVNb3VzZUV2ZW50KGRy
YWdEYXRhKSwgKmRhdGFUcmFuc2Zlcik7CiAgICAgICAgICAgICBkYXRhVHJhbnNmZXItPnNldEFj
Y2Vzc1BvbGljeShEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6Ok51bWIpOyAvLyBJbnZhbGlkYXRl
IGRhdGFUcmFuc2ZlciBoZXJlIGZvciBzZWN1cml0eS4KICAgICAgICAgfQogICAgICAgICBpZiAo
cHJldmVudGVkRGVmYXVsdCkgewpAQCAtNTQ3LDcgKzU0Nyw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xs
ZXI6OmNvbmNsdWRlRWRpdERyYWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogCiAgICAgaWYg
KHJvb3RFZGl0YWJsZUVsZW1lbnQpIHsKICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHJvb3RF
ZGl0YWJsZUVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgIGZyYW1lLT5l
dmVudEhhbmRsZXIoKS51cGRhdGVEcmFnU3RhdGVBZnRlckVkaXREcmFnSWZOZWVkZWQocm9vdEVk
aXRhYmxlRWxlbWVudC5nZXQoKSk7CisgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCku
dXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKCpyb290RWRpdGFibGVFbGVtZW50
KTsKICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTYyMSw3ICs2MjEsNyBAQCBib29sIERy
YWdDb250cm9sbGVyOjp0cnlESFRNTERyYWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhLCBEcmFn
T3BlcmF0aW9uJiBvcGVyYQogICAgIGRhdGFUcmFuc2Zlci0+c2V0U291cmNlT3BlcmF0aW9uKHNy
Y09wTWFzayk7CiAKICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQgPSBjcmVhdGVNb3VzZUV2
ZW50KGRyYWdEYXRhKTsKLSAgICBpZiAoIW1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRl
RHJhZ0FuZERyb3AoZXZlbnQsIGRhdGFUcmFuc2Zlci5nZXQoKSkpIHsKKyAgICBpZiAoIW1haW5G
cmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQsICpkYXRhVHJhbnNm
ZXIpKSB7CiAgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0QWNjZXNzUG9saWN5KERhdGFUcmFuc2Zl
ckFjY2Vzc1BvbGljeTo6TnVtYik7IC8vIEludmFsaWRhdGUgZGF0YVRyYW5zZmVyIGhlcmUgZm9y
IHNlY3VyaXR5LgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuY3BwCmluZGV4IDkyM2U0MTY5Zjc4ZDBhZmYwYWNiMzNkYzY5MWI4YTlhNTgw
ZDMwZWQuLmE0YTI2Y2NmNjVhMjViM2E3NzMwNTRiZGNmNmNiOWE3MmUzZmYyYzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTEwODQsMTIgKzEwODQsMTIgQEAgdm9pZCBF
dmVudEhhbmRsZXI6OmRpZFBhblNjcm9sbFN0b3AoKQogICAgIG1fYXV0b3Njcm9sbENvbnRyb2xs
ZXItPmRpZFBhblNjcm9sbFN0b3AoKTsKIH0KIAotdm9pZCBFdmVudEhhbmRsZXI6OnN0YXJ0UGFu
U2Nyb2xsaW5nKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyKQordm9pZCBFdmVudEhhbmRsZXI6OnN0
YXJ0UGFuU2Nyb2xsaW5nKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQogewogI2lmICFQTEFURk9S
TShJT1MpCi0gICAgaWYgKCFpczxSZW5kZXJCb3g+KCpyZW5kZXJlcikpCisgICAgaWYgKCFpczxS
ZW5kZXJCb3g+KHJlbmRlcmVyKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fYXV0b3Njcm9sbENv
bnRyb2xsZXItPnN0YXJ0UGFuU2Nyb2xsaW5nKGRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIp
LCBsYXN0S25vd25Nb3VzZVBvc2l0aW9uKCkpOworICAgIG1fYXV0b3Njcm9sbENvbnRyb2xsZXIt
PnN0YXJ0UGFuU2Nyb2xsaW5nKCZkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKSwgbGFzdEtu
b3duTW91c2VQb3NpdGlvbigpKTsKICAgICBpbnZhbGlkYXRlQ2xpY2soKTsKICNlbmRpZgogfQpA
QCAtMjIzNiw3ICsyMjM2LDcgQEAgc3RhdGljIGJvb2wgZmluZERyb3Bab25lKE5vZGUqIHRhcmdl
dCwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogICAg
IAotYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91
c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQorYm9vbCBFdmVudEhh
bmRsZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQs
IERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyKQogewogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVk
RnJhbWUobV9mcmFtZSk7CiAKQEAgLTIyNzUsMTYgKzIyNzUsMTYgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERh
dGFUcmFuc2YKICAgICAgICAgICAgICAgICAvLyBmb3Igbm93IHdlIGRvbid0IGNhcmUgaWYgZXZl
bnQgaGFuZGxlciBjYW5jZWxzIGRlZmF1bHQgYmVoYXZpb3IsIHNpbmNlIHRoZXJlIGlzIG5vbmUK
ICAgICAgICAgICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVudChldmVudE5hbWVzKCkuZHJhZ0V2
ZW50LCBldmVudCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRj
aERyYWdFdmVudChldmVudE5hbWVzKCkuZHJhZ2VudGVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50
LCBkYXRhVHJhbnNmZXIpOworICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQo
ZXZlbnROYW1lcygpLmRyYWdlbnRlckV2ZW50LCAqbmV3VGFyZ2V0LCBldmVudCwgJmRhdGFUcmFu
c2Zlcik7CiAgICAgICAgICAgICBpZiAoIWFjY2VwdCkKLSAgICAgICAgICAgICAgICBhY2NlcHQg
PSBmaW5kRHJvcFpvbmUobmV3VGFyZ2V0LmdldCgpLCBkYXRhVHJhbnNmZXIpOworICAgICAgICAg
ICAgICAgIGFjY2VwdCA9IGZpbmREcm9wWm9uZShuZXdUYXJnZXQuZ2V0KCksICZkYXRhVHJhbnNm
ZXIpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHRhcmdldElzRnJhbWUobV9kcmFnVGFyZ2V0
LmdldCgpLCB0YXJnZXRGcmFtZSkpIHsKICAgICAgICAgICAgIGlmICh0YXJnZXRGcmFtZSkKICAg
ICAgICAgICAgICAgICBhY2NlcHQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRl
RHJhZ0FuZERyb3AoZXZlbnQsIGRhdGFUcmFuc2Zlcik7CiAgICAgICAgIH0gZWxzZSBpZiAobV9k
cmFnVGFyZ2V0KQotICAgICAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRy
YWdsZWF2ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgZGF0YVRyYW5zZmVyKTsKKyAgICAg
ICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnbGVhdmVFdmVudCwgKm1f
ZHJhZ1RhcmdldCwgZXZlbnQsICZkYXRhVHJhbnNmZXIpOwogCiAgICAgICAgIGlmIChuZXdUYXJn
ZXQpIHsKICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCBleHBsaWNpdGx5IGNhbGwgZGlzcGF0Y2hE
cmFnRXZlbnQgaGVyZSBiZWNhdXNlIGl0IGNvdWxkIHVsdGltYXRlbHkgcmVzdWx0IGluIHRoZSBh
cHBlYXJhbmNlIHRoYXQKQEAgLTIzMDIsOSArMjMwMiw5IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp1
cGRhdGVEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJh
bnNmCiAgICAgICAgICAgICAgICAgLy8gZm9yIG5vdyB3ZSBkb24ndCBjYXJlIGlmIGV2ZW50IGhh
bmRsZXIgY2FuY2VscyBkZWZhdWx0IGJlaGF2aW9yLCBzaW5jZSB0aGVyZSBpcyBub25lCiAgICAg
ICAgICAgICAgICAgZGlzcGF0Y2hEcmFnU3JjRXZlbnQoZXZlbnROYW1lcygpLmRyYWdFdmVudCwg
ZXZlbnQpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFn
RXZlbnQoZXZlbnROYW1lcygpLmRyYWdvdmVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCBkYXRh
VHJhbnNmZXIpOworICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnRO
YW1lcygpLmRyYWdvdmVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCAmZGF0YVRyYW5zZmVyKTsK
ICAgICAgICAgICAgIGlmICghYWNjZXB0KQotICAgICAgICAgICAgICAgIGFjY2VwdCA9IGZpbmRE
cm9wWm9uZShuZXdUYXJnZXQuZ2V0KCksIGRhdGFUcmFuc2Zlcik7CisgICAgICAgICAgICAgICAg
YWNjZXB0ID0gZmluZERyb3Bab25lKG5ld1RhcmdldC5nZXQoKSwgJmRhdGFUcmFuc2Zlcik7CiAg
ICAgICAgICAgICBtX3Nob3VsZE9ubHlGaXJlRHJhZ092ZXJFdmVudCA9IGZhbHNlOwogICAgICAg
ICB9CiAgICAgfQpAQCAtMjMxMiw3ICsyMzEyLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0
ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2YK
ICAgICByZXR1cm4gYWNjZXB0OwogfQogCi12b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsRHJhZ0Fu
ZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyKiBkYXRh
VHJhbnNmZXIpCit2b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxh
dGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIpCiB7CiAg
ICAgUmVmPEZyYW1lPiBwcm90ZWN0ZWRGcmFtZShtX2ZyYW1lKTsKIApAQCAtMjMyMywxMiArMjMy
MywxMiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZgogICAgIH0gZWxzZSBpZiAobV9kcmFnVGFy
Z2V0KSB7CiAgICAgICAgIGlmIChkcmFnU3RhdGUoKS5zb3VyY2UgJiYgZHJhZ1N0YXRlKCkuc2hv
dWxkRGlzcGF0Y2hFdmVudHMpCiAgICAgICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVudChldmVu
dE5hbWVzKCkuZHJhZ0V2ZW50LCBldmVudCk7Ci0gICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50KGV2
ZW50TmFtZXMoKS5kcmFnbGVhdmVFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsIGRhdGFUcmFu
c2Zlcik7CisgICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnbGVhdmVF
dmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsICZkYXRhVHJhbnNmZXIpOwogICAgIH0KICAgICBj
bGVhckRyYWdTdGF0ZSgpOwogfQogCi1ib29sIEV2ZW50SGFuZGxlcjo6cGVyZm9ybURyYWdBbmRE
cm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2ZlciogZGF0YVRy
YW5zZmVyKQorYm9vbCBFdmVudEhhbmRsZXI6OnBlcmZvcm1EcmFnQW5kRHJvcChjb25zdCBQbGF0
Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlcikKIHsKICAg
ICBSZWY8RnJhbWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUpOwogCkBAIC0yMzM4LDcgKzIzMzgs
NyBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGVyZm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3Jt
TW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFucwogICAgICAgICBpZiAodGFyZ2V0RnJhbWUpCiAg
ICAgICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gdGFyZ2V0RnJhbWUtPmV2ZW50SGFuZGxlcigp
LnBlcmZvcm1EcmFnQW5kRHJvcChldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICB9IGVsc2UgaWYg
KG1fZHJhZ1RhcmdldCkKLSAgICAgICAgcHJldmVudGVkRGVmYXVsdCA9IGRpc3BhdGNoRHJhZ0V2
ZW50KGV2ZW50TmFtZXMoKS5kcm9wRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCBkYXRhVHJh
bnNmZXIpOworICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZl
bnROYW1lcygpLmRyb3BFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsICZkYXRhVHJhbnNmZXIp
OwogICAgIGNsZWFyRHJhZ1N0YXRlKCk7CiAgICAgcmV0dXJuIHByZXZlbnRlZERlZmF1bHQ7CiB9
CkBAIC0yMzUzLDkgKzIzNTMsMTAgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyRHJhZ1N0YXRl
KCkKICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwogI2VuZGlmCiB9CisKICNl
bmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCi12b2lkIEV2ZW50SGFuZGxlcjo6c2V0Q2Fw
dHVyaW5nTW91c2VFdmVudHNFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKK3Zv
aWQgRXZlbnRIYW5kbGVyOjpzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQoRWxlbWVudCog
ZWxlbWVudCkKIHsKICAgICBtX2NhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCA9IGVsZW1lbnQ7
CiAgICAgbV9ldmVudEhhbmRsZXJXaWxsUmVzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQg
PSBmYWxzZTsKQEAgLTI1NjMsNyArMjU2NCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRj
aE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqIHRhcmdlCiAK
ICAgICAvLyBJZiBmb2N1cyBzaGlmdCBpcyBibG9ja2VkLCB3ZSBlYXQgdGhlIGV2ZW50LgogICAg
IGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKTsKLSAgICBpZiAocGFnZSAmJiAhcGFnZS0+Zm9j
dXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQoZWxlbWVudCwgJm1fZnJhbWUpKQorICAg
IGlmIChwYWdlICYmICFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChl
bGVtZW50LCBtX2ZyYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRy
dWU7CkBAIC0zNDExLDExICszNDEyLDExIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkcmFnU291cmNl
RW5kZWRBdChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEcmFnT3BlcmF0CiAgICAg
bV9tb3VzZURvd25NYXlTdGFydERyYWcgPSBmYWxzZTsKIH0KIAotdm9pZCBFdmVudEhhbmRsZXI6
OnVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRlZChFbGVtZW50KiByb290RWRpdGFi
bGVFbGVtZW50KQordm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERy
YWdJZk5lZWRlZChFbGVtZW50JiByb290RWRpdGFibGVFbGVtZW50KQogewogICAgIC8vIElmIGlu
c2VydGluZyB0aGUgZHJhZ2dlZCBjb250ZW50cyByZW1vdmVkIHRoZSBkcmFnIHNvdXJjZSwgd2Ug
c3RpbGwgd2FudCB0byBmaXJlIGRyYWdlbmQgYXQgdGhlIHJvb3QgZWRpdGFibGUgZWxlbWVudC4K
ICAgICBpZiAoZHJhZ1N0YXRlKCkuc291cmNlICYmICFkcmFnU3RhdGUoKS5zb3VyY2UtPmluRG9j
dW1lbnQoKSkKLSAgICAgICAgZHJhZ1N0YXRlKCkuc291cmNlID0gcm9vdEVkaXRhYmxlRWxlbWVu
dDsKKyAgICAgICAgZHJhZ1N0YXRlKCkuc291cmNlID0gJnJvb3RFZGl0YWJsZUVsZW1lbnQ7CiB9
CiAKIC8vIFJldHVybiB2YWx1ZSBpbmRpY2F0ZXMgaWYgd2Ugc2hvdWxkIGNvbnRpbnVlICJkZWZh
dWx0IHByb2Nlc3NpbmciLCBpLmUuLCB3aGV0aGVyIGV2ZW50IGhhbmRsZXIgY2FuY2VsZWQuCkBA
IC0zNjI1LDI1ICszNjI2LDI0IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVUZXh0SW5wdXRF
dmVudChjb25zdCBTdHJpbmcmIHRleHQsIEV2ZW50KiB1bmRlcmx5aW5nRXZlCiAgICAgcmV0dXJu
IGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpOwogfQogICAgIAotYm9vbCBFdmVudEhhbmRsZXI6Omlz
S2V5Ym9hcmRPcHRpb25UYWIoS2V5Ym9hcmRFdmVudCogZXZlbnQpCitib29sIEV2ZW50SGFuZGxl
cjo6aXNLZXlib2FyZE9wdGlvblRhYihLZXlib2FyZEV2ZW50JiBldmVudCkKIHsKLSAgICByZXR1
cm4gZXZlbnQKLSAgICAgICAgJiYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRv
d25FdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KQot
ICAgICAgICAmJiBldmVudC0+YWx0S2V5KCkKLSAgICAgICAgJiYgZXZlbnQtPmtleUlkZW50aWZp
ZXIoKSA9PSAiVSswMDA5IjsgICAgCisgICAgcmV0dXJuIChldmVudC50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLmtleWRvd25FdmVudCB8fCBldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXBy
ZXNzRXZlbnQpCisgICAgICAgICYmIGV2ZW50LmFsdEtleSgpCisgICAgICAgICYmIGV2ZW50Lmtl
eUlkZW50aWZpZXIoKSA9PSAiVSswMDA5IjsKIH0KIAotYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50
SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdChLZXlib2FyZEV2ZW50KiBldmVudCkK
K2Jvb2wgRXZlbnRIYW5kbGVyOjpldmVudEludmVydHNUYWJzVG9MaW5rc0NsaWVudENhbGxSZXN1
bHQoS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRG
T1JNKEVGTCkKLSAgICByZXR1cm4gRXZlbnRIYW5kbGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKGV2
ZW50KTsKKyAgICByZXR1cm4gaXNLZXlib2FyZE9wdGlvblRhYihldmVudCk7CiAjZWxzZQogICAg
IFVOVVNFRF9QQVJBTShldmVudCk7CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CiAKLWJv
b2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9MaW5rcyhLZXlib2FyZEV2ZW50KiBldmVudCkgY29uc3QK
K2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9MaW5rcyhLZXlib2FyZEV2ZW50JiBldmVudCkgY29u
c3QKIHsKICAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBuZWVkcyBhIGJldHRlciBuYW1lLiBJ
dCBjYW4gYmUgY2FsbGVkIGZvciBrZXlwcmVzc2VzIG90aGVyIHRoYW4gVGFiIHdoZW4gc3BhdGlh
bCBuYXZpZ2F0aW9uIGlzIGVuYWJsZWQuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmlu
ZGV4IGRlNzhiY2FlODRhNzY2NGRlMjhkNWQxNzkwNmI5YTNkYjJlMWI0MjMuLmUxMjgxYjZhYjky
ZWIzMDcyOGFiMzk1ZDRhZjRhYTIwNjE3OTQ1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuaApAQCAtNTcsNiArNTcsMTAgQEAgT0JKQ19DTEFTUyBXQUtWaWV3OwogT0JKQ19DTEFTUyBO
U1ZpZXc7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykKK09CSkNfQ0xBU1MgTlNFdmVudDsK
KyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1dG9zY3JvbGxDb250cm9s
bGVyOwpAQCAtMTAwLDcgKzEwNCw3IEBAIGV4dGVybiBjb25zdCBpbnQgTGlua0RyYWdIeXN0ZXJl
c2lzOwogZXh0ZXJuIGNvbnN0IGludCBJbWFnZURyYWdIeXN0ZXJlc2lzOwogZXh0ZXJuIGNvbnN0
IGludCBUZXh0RHJhZ0h5c3RlcmVzaXM7CiBleHRlcm4gY29uc3QgaW50IEdlbmVyYWxEcmFnSHlz
dGVyZXNpczsKLSNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2VuZGlmCiAKICNpZiBF
TkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKSB8fCBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQog
ZXh0ZXJuIGNvbnN0IGZsb2F0IEdlc3R1cmVVbmtub3duOwpAQCAtMTM2LDcgKzE0MCw3IEBAIHB1
YmxpYzoKICNpZiBFTkFCTEUoUEFOX1NDUk9MTElORykKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0
YXJ0KCk7CiAgICAgdm9pZCBkaWRQYW5TY3JvbGxTdG9wKCk7Ci0gICAgdm9pZCBzdGFydFBhblNj
cm9sbGluZyhSZW5kZXJFbGVtZW50Kik7CisgICAgdm9pZCBzdGFydFBhblNjcm9sbGluZyhSZW5k
ZXJFbGVtZW50Jik7CiAjZW5kaWYKIAogICAgIHZvaWQgc3RvcEF1dG9zY3JvbGxUaW1lcihib29s
IHJlbmRlcmVySXNCZWluZ0Rlc3Ryb3llZCA9IGZhbHNlKTsKQEAgLTE1NiwxMyArMTYwLDEzIEBA
IHB1YmxpYzoKICAgICBib29sIG1vdXNlUHJlc3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VQ
cmVzc2VkOyB9CiAgICAgTm9kZSogbW91c2VQcmVzc05vZGUoKSBjb25zdCB7IHJldHVybiBtX21v
dXNlUHJlc3NOb2RlLmdldCgpOyB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhcHR1
cmluZ01vdXNlRXZlbnRzRWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsgLy8gQSBjYWxsZXIg
aXMgcmVzcG9uc2libGUgZm9yIHJlc2V0dGluZyBjYXB0dXJpbmcgZWxlbWVudCB0byAwLgorICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KEVsZW1l
bnQqKTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgYm9vbCB1cGRhdGVEcmFnQW5k
RHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXIqKTsKLSAgICB2b2lk
IGNhbmNlbERyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2Zl
ciopOwotICAgIGJvb2wgcGVyZm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVu
dCYsIERhdGFUcmFuc2ZlciopOwotICAgIHZvaWQgdXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJh
Z0lmTmVlZGVkKEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnQpOworICAgIGJvb2wgdXBkYXRl
RHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyJik7Cisg
ICAgdm9pZCBjYW5jZWxEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRh
VHJhbnNmZXImKTsKKyAgICBib29sIHBlcmZvcm1EcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1v
dXNlRXZlbnQmLCBEYXRhVHJhbnNmZXImKTsKKyAgICB2b2lkIHVwZGF0ZURyYWdTdGF0ZUFmdGVy
RWRpdERyYWdJZk5lZWRlZChFbGVtZW50JiByb290RWRpdGFibGVFbGVtZW50KTsKICNlbmRpZgog
CiAgICAgdm9pZCBzY2hlZHVsZUhvdmVyU3RhdGVVcGRhdGUoKTsKQEAgLTE4Nyw4ICsxOTEsOCBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JvbGxSZWN1cnNpdmVseShTY3Jv
bGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBOb2RlKiBzdGFydGluZ05vZGUgPSBudWxs
cHRyKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGxvZ2ljYWxTY3JvbGxSZWN1cnNpdmVseShT
Y3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgTm9kZSogc3RhcnRpbmdO
b2RlID0gbnVsbHB0cik7CiAKLSAgICBib29sIHRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQqKSBj
b25zdDsKLSAgICBib29sIHRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KikgY29u
c3Q7CisgICAgYm9vbCB0YWJzVG9MaW5rcyhLZXlib2FyZEV2ZW50JikgY29uc3Q7CisgICAgYm9v
bCB0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCYpIGNvbnN0OwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBtb3VzZU1vdmVkKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcGFzc01vdXNlTW92ZWRFdmVudFRvU2Nyb2xsYmFycyhj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKQEAgLTIxMCwxMiArMjE0LDEyIEBAIHB1YmxpYzoK
ICAgICB2b2lkIHBsYXRmb3JtTm90aWZ5SWZFbmRHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYsIGNvbnN0IFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+Jik7CiAKICNpZiBFTkFCTEUoSU9T
X1RPVUNIX0VWRU5UUykgfHwgRU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykKLSAgICB0eXBlZGVm
IFZlY3RvcjxSZWZQdHI8VG91Y2g+PiBUb3VjaEFycmF5OwotICAgIHR5cGVkZWYgSGFzaE1hcDxF
dmVudFRhcmdldCosIFRvdWNoQXJyYXkqPiBFdmVudFRhcmdldFRvdWNoTWFwOworICAgIHVzaW5n
IFRvdWNoQXJyYXkgPSBWZWN0b3I8UmVmUHRyPFRvdWNoPj47CisgICAgdXNpbmcgRXZlbnRUYXJn
ZXRUb3VjaE1hcCA9IEhhc2hNYXA8RXZlbnRUYXJnZXQqLCBUb3VjaEFycmF5Kj47CiAjZW5kaWYK
IAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKSB8fCBFTkFCTEUoSU9TX0dFU1RVUkVfRVZF
TlRTKSB8fCBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQotICAgIHR5cGVkZWYgSGFzaFNldDxS
ZWZQdHI8RXZlbnRUYXJnZXQ+PiBFdmVudFRhcmdldFNldDsKKyAgICB1c2luZyBFdmVudFRhcmdl
dFNldCA9IEhhc2hTZXQ8UmVmUHRyPEV2ZW50VGFyZ2V0Pj47CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShJT1NfVE9VQ0hfRVZFTlRTKQpAQCAtMjMxLDcgKzIzNSw3IEBAIHB1YmxpYzoKICNlbmRpZgog
CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHZvaWQgZGVmYXVsdFRvdWNoRXZlbnRIYW5kbGVyKE5v
ZGUqLCBUb3VjaEV2ZW50Kik7CisgICAgdm9pZCBkZWZhdWx0VG91Y2hFdmVudEhhbmRsZXIoTm9k
ZSYsIFRvdWNoRXZlbnQmKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBA
IC0yNjQsOCArMjY4LDcgQEAgcHVibGljOgogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2VuZFNjcm9sbEV2ZW50KCk7CiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgZGVmaW5lZChfX09C
SkNfXykKLSNpZiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIG1vdXNlRG93bihOU0V2ZW50ICosIE5TRXZlbnQgKmNvcnJlc3BvbmRpbmdQ
cmVzc3VyZUV2ZW50KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlRHJhZ2dlZChOU0V2
ZW50ICosIE5TRXZlbnQgKmNvcnJlc3BvbmRpbmdQcmVzc3VyZUV2ZW50KTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIG1vdXNlVXAoTlNFdmVudCAqLCBOU0V2ZW50ICpjb3JyZXNwb25kaW5nUHJl
c3N1cmVFdmVudCk7CkBAIC0yNzMsNyArMjc2LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcHJlc3N1cmVDaGFuZ2UoTlNFdmVudCAqLCBOU0V2ZW50KiBjb3JyZXNwb25kaW5n
UHJlc3N1cmVFdmVudCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBrZXlFdmVudChOU0V2ZW50
ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgd2hlZWxFdmVudChOU0V2ZW50ICopOwotI2Vs
c2UKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
bW91c2VEb3duKFdlYkV2ZW50ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW91c2VVcChX
ZWJFdmVudCAqKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlTW92ZWQoV2ViRXZlbnQg
Kik7CkBAIC0yODUsMjMgKzI5MCwyMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCB0b3VjaEV2ZW50KFdlYkV2ZW50ICopOwogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKQor
I2lmIFBMQVRGT1JNKE1BQykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBhc3NNb3VzZU1vdmVk
RXZlbnRUb1Njcm9sbGJhcnMoTlNFdmVudCAqLCBOU0V2ZW50KiBjb3JyZXNwb25kaW5nUHJlc3N1
cmVFdmVudCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbmRGYWtlRXZlbnRzQWZ0ZXJX
aWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQpOwotI2VuZGlmCiAKLSNpZiAh
UExBVEZPUk0oSU9TKQogICAgIHZvaWQgc2V0QWN0aXZhdGlvbkV2ZW50TnVtYmVyKGludCBudW0p
IHsgbV9hY3RpdmF0aW9uRXZlbnROdW1iZXIgPSBudW07IH0KIAogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBOU0V2ZW50ICpjdXJyZW50TlNFdmVudCgpOwogICAgIHN0YXRpYyBOU0V2ZW50ICpj
b3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCgpOwotI2Vsc2UKLSAgICBzdGF0aWMgV2ViRXZlbnQg
KmN1cnJlbnRFdmVudCgpOwotI2VuZGlmIC8vICFQTEFURk9STShJT1MpCi0jZW5kaWYgLy8gUExB
VEZPUk0oQ09DT0EpICYmIGRlZmluZWQoX19PQkpDX18pCisjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KElPUykKKyAgICBzdGF0aWMgV2ViRXZlbnQgKmN1cnJlbnRFdmVudCgpOworCiAgICAgdm9pZCBp
bnZhbGlkYXRlQ2xpY2soKTsKICNlbmRpZgogCkBAIC0zMjQsOCArMzI2LDggQEAgcHJpdmF0ZToK
ICAgICBzdGF0aWMgRHJhZ1N0YXRlJiBkcmFnU3RhdGUoKTsKICAgICBzdGF0aWMgY29uc3QgZG91
YmxlIFRleHREcmFnRGVsYXk7CiAgICAgCi0gICAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IGNy
ZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7Ci0jZW5kaWYgLy8gRU5BQkxFKERSQUdf
U1VQUE9SVCkKKyAgICBSZWY8RGF0YVRyYW5zZmVyPiBjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2Zl
cigpIGNvbnN0OworI2VuZGlmCiAKICAgICBib29sIGV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQ
bGF0Zm9ybU1vdXNlRXZlbnQmKSBjb25zdDsKICAgICBib29sIHVwZGF0ZVNlbGVjdGlvbkZvck1v
dXNlRG93bkRpc3BhdGNoaW5nU2VsZWN0U3RhcnQoTm9kZSosIGNvbnN0IFZpc2libGVTZWxlY3Rp
b24mLCBUZXh0R3JhbnVsYXJpdHkpOwpAQCAtMzU5LDggKzM2MSw4IEBAIHByaXZhdGU6CiAgICAg
CiAgICAgYm9vbCBtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91
c2VEb3duTWF5U3RhcnRTZWxlY3Q7IH0KIAotICAgIHN0YXRpYyBib29sIGlzS2V5Ym9hcmRPcHRp
b25UYWIoS2V5Ym9hcmRFdmVudCopOwotICAgIHN0YXRpYyBib29sIGV2ZW50SW52ZXJ0c1RhYnNU
b0xpbmtzQ2xpZW50Q2FsbFJlc3VsdChLZXlib2FyZEV2ZW50Kik7CisgICAgc3RhdGljIGJvb2wg
aXNLZXlib2FyZE9wdGlvblRhYihLZXlib2FyZEV2ZW50Jik7CisgICAgc3RhdGljIGJvb2wgZXZl
bnRJbnZlcnRzVGFic1RvTGlua3NDbGllbnRDYWxsUmVzdWx0KEtleWJvYXJkRXZlbnQmKTsKIAog
I2lmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICB2b2lkIGZha2VNb3VzZU1vdmVFdmVu
dFRpbWVyRmlyZWQoKTsKQEAgLTM4NSw2ICszODcsNyBAQCBwcml2YXRlOgogICAgIE1vdXNlRXZl
bnRXaXRoSGl0VGVzdFJlc3VsdHMgcHJlcGFyZU1vdXNlRXZlbnQoY29uc3QgSGl0VGVzdFJlcXVl
c3QmLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKIAogICAgIGJvb2wgZGlzcGF0Y2hNb3Vz
ZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiB0YXJnZXQsIGJvb2wg
Y2FuY2VsYWJsZSwgaW50IGNsaWNrQ291bnQsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIGJv
b2wgc2V0VW5kZXIpOworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBib29sIGRpc3Bh
dGNoRHJhZ0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFbGVtZW50JiB0YXJn
ZXQsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwogCkBAIC0zOTIs
NyArMzk1LDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaGFuZGxlRHJhZyhjb25zdCBNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwgQ2hlY2tEcmFnSHlzdGVyZXNpcyk7CiAjZW5kaWYKKwog
ICAgIGJvb2wgaGFuZGxlTW91c2VVcChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRz
Jik7CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHZvaWQgY2xlYXJEcmFnU3RhdGUo
KTsKIApAQCAtNDAwLDcgKzQwNSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGRyYWdIeXN0ZXJl
c2lzRXhjZWVkZWQoY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0OwogICAgIGJvb2wgZHJhZ0h5c3Rl
cmVzaXNFeGNlZWRlZChjb25zdCBJbnRQb2ludCYpIGNvbnN0OwotI2VuZGlmIC8vIEVOQUJMRShE
UkFHX1NVUFBPUlQpCisjZW5kaWYKICAgICAKICAgICBib29sIG1vdXNlTW92ZW1lbnRFeGNlZWRz
VGhyZXNob2xkKGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgcG9pbnRzVGhyZXNob2xkKSBjb25zdDsK
IApAQCAtNDMxLDYgKzQzNiw3IEBAIHByaXZhdGU6CiAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmUg
Y2FsbGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgaGFuZGxlTW91c2VVcCBhbmQgaGFuZGxlRHJhZy4g
IAogICAgIC8vIElmIHRoZXkgcmV0dXJuIHRydWUgaXQgaW5kaWNhdGVzIHRoYXQgdGhleSBoYXZl
IGNvbnN1bWVkIHRoZSBldmVudC4KICAgICBib29sIGV2ZW50TG9vcEhhbmRsZU1vdXNlVXAoY29u
c3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOworCiAjaWYgRU5BQkxFKERSQUdfU1VQ
UE9SVCkKICAgICBib29sIGV2ZW50TG9vcEhhbmRsZU1vdXNlRHJhZ2dlZChjb25zdCBNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CiAjZW5kaWYKQEAgLTQ3MywxMCArNDc5LDEyIEBAIHBy
aXZhdGU6CiAgICAgUmVmUHRyPE5vZGU+IG1fbW91c2VQcmVzc05vZGU7CiAKICAgICBib29sIG1f
bW91c2VEb3duTWF5U3RhcnRTZWxlY3QgeyBmYWxzZSB9OworCiAjaWYgRU5BQkxFKERSQUdfU1VQ
UE9SVCkKICAgICBib29sIG1fbW91c2VEb3duTWF5U3RhcnREcmFnIHsgZmFsc2UgfTsKICAgICBi
b29sIG1fZHJhZ01heVN0YXJ0U2VsZWN0aW9uSW5zdGVhZCB7IGZhbHNlIH07CiAjZW5kaWYKKwog
ICAgIGJvb2wgbV9tb3VzZURvd25XYXNTaW5nbGVDbGlja0luU2VsZWN0aW9uIHsgZmFsc2UgfTsK
ICAgICBlbnVtIFNlbGVjdGlvbkluaXRpYXRpb25TdGF0ZSB7IEhhdmVOb3RTdGFydGVkU2VsZWN0
aW9uLCBQbGFjZWRDYXJldCwgRXh0ZW5kZWRTZWxlY3Rpb24gfTsKICAgICBTZWxlY3Rpb25Jbml0
aWF0aW9uU3RhdGUgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgeyBIYXZlTm90U3RhcnRlZFNl
bGVjdGlvbiB9OwpAQCAtNDg4LDYgKzQ5Niw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX3BhblNj
cm9sbEJ1dHRvblByZXNzZWQgeyBmYWxzZSB9OwogCiAgICAgVGltZXIgbV9ob3ZlclRpbWVyOwor
CiAjaWYgRU5BQkxFKENVUlNPUl9TVVBQT1JUKQogICAgIFRpbWVyIG1fY3Vyc29yVXBkYXRlVGlt
ZXI7CiAjZW5kaWYKQEAgLTQ5NSw2ICs1MDQsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1B
QykKICAgICBUaW1lciBtX3BlbmRpbmdNb21lbnR1bVdoZWVsRXZlbnRzVGltZXI7CiAjZW5kaWYK
KwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBdXRvc2Nyb2xsQ29udHJvbGxlcj4gbV9hdXRvc2Nyb2xs
Q29udHJvbGxlcjsKICAgICBib29sIG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Nyb2xsIHsgZmFs
c2UgfTsKICAgICBib29sIG1fbW91c2VEb3duV2FzSW5TdWJmcmFtZSB7IGZhbHNlIH07CkBAIC01
MjMsMTEgKzUzMywxMyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fZ2VzdHVyZUluaXRpYWxEaWFt
ZXRlciB7IEdlc3R1cmVVbmtub3duIH07CiAgICAgZmxvYXQgbV9nZXN0dXJlSW5pdGlhbFJvdGF0
aW9uIHsgR2VzdHVyZVVua25vd24gfTsKICNlbmRpZgorCiAjaWYgRU5BQkxFKElPU19HRVNUVVJF
X0VWRU5UUykgfHwgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKICAgICBmbG9hdCBtX2dlc3R1
cmVMYXN0RGlhbWV0ZXIgeyBHZXN0dXJlVW5rbm93biB9OwogICAgIGZsb2F0IG1fZ2VzdHVyZUxh
c3RSb3RhdGlvbiB7IEdlc3R1cmVVbmtub3duIH07CiAgICAgRXZlbnRUYXJnZXRTZXQgbV9nZXN0
dXJlVGFyZ2V0czsKICNlbmRpZgorCiAjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKICAg
ICBib29sIG1faGFzQWN0aXZlR2VzdHVyZSB7IGZhbHNlIH07CiAjZW5kaWYKQEAgLTU1OCwxMiAr
NTcwLDE0IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgTlNWaWV3ICptX21v
dXNlRG93blZpZXcgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX3NlbmRpbmdFdmVudFRvU3Vidmll
dyB7IGZhbHNlIH07Ci0jaWYgIVBMQVRGT1JNKElPUykKLSAgICBpbnQgbV9hY3RpdmF0aW9uRXZl
bnROdW1iZXIgeyAtMSB9OwogI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgaW50IG1f
YWN0aXZhdGlvbkV2ZW50TnVtYmVyIHsgLTEgfTsKICNlbmRpZgorCiAjaWYgRU5BQkxFKFRPVUNI
X0VWRU5UUykgJiYgIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotICAgIHR5cGVkZWYgSGFzaE1h
cDxpbnQsIFJlZlB0cjxFdmVudFRhcmdldD4+IFRvdWNoVGFyZ2V0TWFwOworICAgIHVzaW5nIFRv
dWNoVGFyZ2V0TWFwID0gSGFzaE1hcDxpbnQsIFJlZlB0cjxFdmVudFRhcmdldD4+OwogICAgIFRv
dWNoVGFyZ2V0TWFwIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0czsKICAgICBSZWZQdHI8
RG9jdW1lbnQ+IG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQ7CiAgICAgdW5zaWduZWQg
bV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRLZXkgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXggYTdiMjU1N2U2OTQ2ZGI5ZTU2MTE1N2FkZjcyY2My
ODI2ZWZlODc0Ny4uNWFhODZjOTljODlmM2FmZWRkYTk3NTg5NmQ3MmMyMDcxNWQ5NTU4MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAtMzE2LDcgKzMxNiw3IEBA
IEZvY3VzQ29udHJvbGxlcjo6Rm9jdXNDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIEFjdGl2aXR5U3Rh
dGU6OkZsYWdzIGFjdGl2aXR5U3RhdGUpCiB7CiB9CiAKLXZvaWQgRm9jdXNDb250cm9sbGVyOjpz
ZXRGb2N1c2VkRnJhbWUoUGFzc1JlZlB0cjxGcmFtZT4gZnJhbWUpCit2b2lkIEZvY3VzQ29udHJv
bGxlcjo6c2V0Rm9jdXNlZEZyYW1lKEZyYW1lKiBmcmFtZSkKIHsKICAgICBBU1NFUlQoIWZyYW1l
IHx8IGZyYW1lLT5wYWdlKCkgPT0gJm1fcGFnZSk7CiAgICAgaWYgKG1fZm9jdXNlZEZyYW1lID09
IGZyYW1lIHx8IG1faXNDaGFuZ2luZ0ZvY3VzZWRGcmFtZSkKQEAgLTc2NSw4ICs3NjUsOSBAQCBz
dGF0aWMgdm9pZCBjbGVhclNlbGVjdGlvbklmTmVlZGVkKEZyYW1lKiBvbGRGb2N1c2VkRnJhbWUs
IEZyYW1lKiBuZXdGb2N1c2VkRnJhbQogICAgIG9sZEZvY3VzZWRGcmFtZS0+c2VsZWN0aW9uKCku
Y2xlYXIoKTsKIH0KIAotYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRFbGVtZW50KEVs
ZW1lbnQqIGVsZW1lbnQsIFBhc3NSZWZQdHI8RnJhbWU+IG5ld0ZvY3VzZWRGcmFtZSwgRm9jdXNE
aXJlY3Rpb24gZGlyZWN0aW9uKQorYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRFbGVt
ZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZyYW1lJiBuZXdGb2N1c2VkRnJhbWUsIEZvY3VzRGlyZWN0
aW9uIGRpcmVjdGlvbikKIHsKKyAgICBSZWY8RnJhbWU+IHByb3RlY3RlZE5ld0ZvY3VzZWRGcmFt
ZSA9IG5ld0ZvY3VzZWRGcmFtZTsKICAgICBSZWZQdHI8RnJhbWU+IG9sZEZvY3VzZWRGcmFtZSA9
IGZvY3VzZWRGcmFtZSgpOwogICAgIFJlZlB0cjxEb2N1bWVudD4gb2xkRG9jdW1lbnQgPSBvbGRG
b2N1c2VkRnJhbWUgPyBvbGRGb2N1c2VkRnJhbWUtPmRvY3VtZW50KCkgOiBudWxscHRyOwogICAg
IApAQCAtNzgwLDcgKzc4MSw3IEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRWxl
bWVudChFbGVtZW50KiBlbGVtZW50LCBQYXNzUmVmUHRyPEZyYW1lPiBuZXdGCiAKICAgICBtX3Bh
Z2UuZWRpdG9yQ2xpZW50KCkud2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKIAotICAgIGNsZWFy
U2VsZWN0aW9uSWZOZWVkZWQob2xkRm9jdXNlZEZyYW1lLmdldCgpLCBuZXdGb2N1c2VkRnJhbWUu
Z2V0KCksIGVsZW1lbnQpOworICAgIGNsZWFyU2VsZWN0aW9uSWZOZWVkZWQob2xkRm9jdXNlZEZy
YW1lLmdldCgpLCAmbmV3Rm9jdXNlZEZyYW1lLCBlbGVtZW50KTsKIAogICAgIGlmICghZWxlbWVu
dCkgewogICAgICAgICBpZiAob2xkRG9jdW1lbnQpCkBAIC03OTksMTEgKzgwMCwxMSBAQCBib29s
IEZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUGFz
c1JlZlB0cjxGcmFtZT4gbmV3RgogICAgIGlmIChvbGREb2N1bWVudCAmJiBvbGREb2N1bWVudCAh
PSBuZXdEb2N1bWVudC5wdHIoKSkKICAgICAgICAgb2xkRG9jdW1lbnQtPnNldEZvY3VzZWRFbGVt
ZW50KG51bGxwdHIpOwogCi0gICAgaWYgKG5ld0ZvY3VzZWRGcmFtZSAmJiAhbmV3Rm9jdXNlZEZy
YW1lLT5wYWdlKCkpIHsKKyAgICBpZiAoIW5ld0ZvY3VzZWRGcmFtZS5wYWdlKCkpIHsKICAgICAg
ICAgc2V0Rm9jdXNlZEZyYW1lKG51bGxwdHIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
fQotICAgIHNldEZvY3VzZWRGcmFtZShuZXdGb2N1c2VkRnJhbWUpOworICAgIHNldEZvY3VzZWRG
cmFtZSgmbmV3Rm9jdXNlZEZyYW1lKTsKIAogICAgIFJlZjxFbGVtZW50PiBwcm90ZWN0KCplbGVt
ZW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKaW5kZXggZWNiZTM5NjFk
YTFmNWIwMDViMDFiY2M4MjUxNmI1MGEyN2E4ZTJhZS4uYzZkY2YyMjIwOTM1ZWNiYjFmY2JkNDIy
MWYyY2EyZDk0NzNmNzdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTMwLDEyICszMCwxMCBAQAogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKICNpbmNsdWRlICJU
aW1lci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LXN0cnVjdCBGb2N1c0NhbmRpZGF0ZTsKIGNsYXNzIENvbnRhaW5lck5vZGU7CiBjbGFzcyBEb2N1
bWVudDsKIGNsYXNzIEVsZW1lbnQ7CkBAIC00OCwxOSArNDYsMjEgQEAgY2xhc3MgTm9kZTsKIGNs
YXNzIFBhZ2U7CiBjbGFzcyBUcmVlU2NvcGU7CiAKK3N0cnVjdCBGb2N1c0NhbmRpZGF0ZTsKKwog
Y2xhc3MgRm9jdXNDb250cm9sbGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGb2N1c0Nv
bnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBGb2N1c0NvbnRyb2xsZXIoUGFnZSYsIEFj
dGl2aXR5U3RhdGU6OkZsYWdzKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Rm9jdXNl
ZEZyYW1lKFBhc3NSZWZQdHI8RnJhbWU+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZv
Y3VzZWRGcmFtZShGcmFtZSopOwogICAgIEZyYW1lKiBmb2N1c2VkRnJhbWUoKSBjb25zdCB7IHJl
dHVybiBtX2ZvY3VzZWRGcmFtZS5nZXQoKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lJiBm
b2N1c2VkT3JNYWluRnJhbWUoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0
SW5pdGlhbEZvY3VzKEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50Kik7CiAgICAgYm9vbCBh
ZHZhbmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQmLCBib29sIGluaXRpYWxG
b2N1cyA9IGZhbHNlKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0Rm9jdXNlZEVsZW1l
bnQoRWxlbWVudCosIFBhc3NSZWZQdHI8RnJhbWU+LCBGb2N1c0RpcmVjdGlvbiA9IEZvY3VzRGly
ZWN0aW9uTm9uZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRGb2N1c2VkRWxlbWVudChF
bGVtZW50KiwgRnJhbWUmLCBGb2N1c0RpcmVjdGlvbiA9IEZvY3VzRGlyZWN0aW9uTm9uZSk7CiAK
ICAgICB2b2lkIHNldEFjdGl2aXR5U3RhdGUoQWN0aXZpdHlTdGF0ZTo6RmxhZ3MpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVHJlZS5jcHAKaW5kZXggZGVlYjIzYjc1ODQ0OWJiZmU1YzU1ZjE5ZDgwZDA0
OTI4MjkxMTdhYS4uNjM4NDkwZTRiY2EzNDYyYjZiNzdmYjYzYmMwMGRmNWMyMmE1MjZjNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDYsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICog
Q29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTYzLDI1ICs2Myw2IEBAIEZyYW1lKiBGcmFtZVRy
ZWU6OnBhcmVudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFyZW50OwogfQogCi1ib29sIEZyYW1l
VHJlZTo6dHJhbnNmZXJDaGlsZChQYXNzUmVmUHRyPEZyYW1lPiBjaGlsZCkKLXsKLSAgICBGcmFt
ZSogb2xkUGFyZW50ID0gY2hpbGQtPnRyZWUoKS5wYXJlbnQoKTsKLSAgICBpZiAob2xkUGFyZW50
ID09ICZtX3RoaXNGcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyB8Y2hpbGR8IGlzIGFs
cmVhZHkgYSBjaGlsZCBvZiBtX3RoaXNGcmFtZS4KLQotICAgIGlmIChvbGRQYXJlbnQpCi0gICAg
ICAgIG9sZFBhcmVudC0+dHJlZSgpLnJlbW92ZUNoaWxkKGNoaWxkLmdldCgpKTsKLQotICAgIEFT
U0VSVChjaGlsZC0+cGFnZSgpID09IG1fdGhpc0ZyYW1lLnBhZ2UoKSk7Ci0gICAgY2hpbGQtPnRy
ZWUoKS5tX3BhcmVudCA9ICZtX3RoaXNGcmFtZTsKLQotICAgIC8vIFdlIG5lZWQgdG8gZW5zdXJl
IHRoYXQgdGhlIGNoaWxkIHN0aWxsIGhhcyBhIHVuaXF1ZSBmcmFtZSBuYW1lIHdpdGggcmVzcGVj
dCB0byBpdHMgbmV3IHBhcmVudC4KLSAgICBjaGlsZC0+dHJlZSgpLnNldE5hbWUoY2hpbGQtPnRy
ZWUoKS5tX25hbWUpOwotCi0gICAgYWN0dWFsbHlBcHBlbmRDaGlsZChjaGlsZCk7IC8vIE5vdGUs
IG9uIHJldHVybiB8Y2hpbGR8IGlzIG51bGwuCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHVuc2ln
bmVkIEZyYW1lVHJlZTo6aW5kZXhJblBhcmVudCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BhcmVu
dCkKQEAgLTk1LDQ2ICs3Niw0MCBAQCB1bnNpZ25lZCBGcmFtZVRyZWU6OmluZGV4SW5QYXJlbnQo
KSBjb25zdAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgRnJh
bWVUcmVlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPEZyYW1lPiBjaGlsZCkKLXsKLSAgICBBU1NF
UlQoY2hpbGQtPnBhZ2UoKSA9PSBtX3RoaXNGcmFtZS5wYWdlKCkpOwotICAgIGNoaWxkLT50cmVl
KCkubV9wYXJlbnQgPSAmbV90aGlzRnJhbWU7Ci0gICAgYWN0dWFsbHlBcHBlbmRDaGlsZChjaGls
ZCk7IC8vIE5vdGUsIG9uIHJldHVybiB8Y2hpbGR8IGlzIG51bGwuCi19Ci0KLXZvaWQgRnJhbWVU
cmVlOjphY3R1YWxseUFwcGVuZENoaWxkKFBhc3NSZWZQdHI8RnJhbWU+IGNoaWxkKQordm9pZCBG
cmFtZVRyZWU6OmFwcGVuZENoaWxkKEZyYW1lJiBjaGlsZCkKIHsKLSAgICBBU1NFUlQoY2hpbGQt
PnRyZWUoKS5tX3BhcmVudCA9PSAmbV90aGlzRnJhbWUpOworICAgIEFTU0VSVChjaGlsZC5wYWdl
KCkgPT0gbV90aGlzRnJhbWUucGFnZSgpKTsKKyAgICBjaGlsZC50cmVlKCkubV9wYXJlbnQgPSAm
bV90aGlzRnJhbWU7CiAgICAgRnJhbWUqIG9sZExhc3QgPSBtX2xhc3RDaGlsZDsKLSAgICBtX2xh
c3RDaGlsZCA9IGNoaWxkLmdldCgpOworICAgIG1fbGFzdENoaWxkID0gJmNoaWxkOwogCiAgICAg
aWYgKG9sZExhc3QpIHsKLSAgICAgICAgY2hpbGQtPnRyZWUoKS5tX3ByZXZpb3VzU2libGluZyA9
IG9sZExhc3Q7Ci0gICAgICAgIG9sZExhc3QtPnRyZWUoKS5tX25leHRTaWJsaW5nID0gY2hpbGQ7
CisgICAgICAgIGNoaWxkLnRyZWUoKS5tX3ByZXZpb3VzU2libGluZyA9IG9sZExhc3Q7CisgICAg
ICAgIG9sZExhc3QtPnRyZWUoKS5tX25leHRTaWJsaW5nID0gJmNoaWxkOwogICAgIH0gZWxzZQot
ICAgICAgICBtX2ZpcnN0Q2hpbGQgPSBjaGlsZDsKKyAgICAgICAgbV9maXJzdENoaWxkID0gJmNo
aWxkOwogCiAgICAgbV9zY29wZWRDaGlsZENvdW50ID0gaW52YWxpZENvdW50OwogCiAgICAgQVNT
RVJUKCFtX2xhc3RDaGlsZC0+dHJlZSgpLm1fbmV4dFNpYmxpbmcpOwogfQogCi12b2lkIEZyYW1l
VHJlZTo6cmVtb3ZlQ2hpbGQoRnJhbWUqIGNoaWxkKQordm9pZCBGcmFtZVRyZWU6OnJlbW92ZUNo
aWxkKEZyYW1lJiBjaGlsZCkKIHsKLSAgICBjaGlsZC0+dHJlZSgpLm1fcGFyZW50ID0gbnVsbHB0
cjsKKyAgICBjaGlsZC50cmVlKCkubV9wYXJlbnQgPSBudWxscHRyOwogCiAgICAgLy8gU2xpZ2h0
bHkgdHJpY2t5IHdheSB0byBwcmV2ZW50IGRlbGV0aW5nIHRoZSBjaGlsZCB1bnRpbCB3ZSBhcmUg
ZG9uZSB3aXRoIGl0LCB3L28KICAgICAvLyBleHRyYSByZWZzLiBUaGVzZSBzd2FwcyBsZWF2ZSB0
aGUgY2hpbGQgaW4gYSBjaXJjdWxhciBsaXN0IGJ5IGl0c2VsZi4gQ2xlYXJpbmcgaXRzCiAgICAg
Ly8gcHJldmlvdXMgYW5kIG5leHQgd2lsbCB0aGVuIGZpbmFsbHkgZGVyZWYgaXQuCiAKLSAgICBS
ZWZQdHI8RnJhbWU+JiBuZXdMb2NhdGlvbkZvck5leHQgPSBtX2ZpcnN0Q2hpbGQgPT0gY2hpbGQg
PyBtX2ZpcnN0Q2hpbGQgOiBjaGlsZC0+dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nLT50cmVlKCku
bV9uZXh0U2libGluZzsKLSAgICBGcmFtZSomIG5ld0xvY2F0aW9uRm9yUHJldmlvdXMgPSBtX2xh
c3RDaGlsZCA9PSBjaGlsZCA/IG1fbGFzdENoaWxkIDogY2hpbGQtPnRyZWUoKS5tX25leHRTaWJs
aW5nLT50cmVlKCkubV9wcmV2aW91c1NpYmxpbmc7Ci0gICAgc3dhcChuZXdMb2NhdGlvbkZvck5l
eHQsIGNoaWxkLT50cmVlKCkubV9uZXh0U2libGluZyk7CisgICAgUmVmUHRyPEZyYW1lPiYgbmV3
TG9jYXRpb25Gb3JOZXh0ID0gbV9maXJzdENoaWxkID09ICZjaGlsZCA/IG1fZmlyc3RDaGlsZCA6
IGNoaWxkLnRyZWUoKS5tX3ByZXZpb3VzU2libGluZy0+dHJlZSgpLm1fbmV4dFNpYmxpbmc7Cisg
ICAgRnJhbWUqJiBuZXdMb2NhdGlvbkZvclByZXZpb3VzID0gbV9sYXN0Q2hpbGQgPT0gJmNoaWxk
ID8gbV9sYXN0Q2hpbGQgOiBjaGlsZC50cmVlKCkubV9uZXh0U2libGluZy0+dHJlZSgpLm1fcHJl
dmlvdXNTaWJsaW5nOworICAgIHN3YXAobmV3TG9jYXRpb25Gb3JOZXh0LCBjaGlsZC50cmVlKCku
bV9uZXh0U2libGluZyk7CiAgICAgLy8gRm9yIHNvbWUgaW5leHBsaWNhYmxlIHJlYXNvbiwgdGhl
IGZvbGxvd2luZyBsaW5lIGRvZXMgbm90IGNvbXBpbGUgd2l0aG91dCB0aGUgZXhwbGljaXQgc3Rk
OjogbmFtZXNwYWNlCi0gICAgc3RkOjpzd2FwKG5ld0xvY2F0aW9uRm9yUHJldmlvdXMsIGNoaWxk
LT50cmVlKCkubV9wcmV2aW91c1NpYmxpbmcpOworICAgIHN0ZDo6c3dhcChuZXdMb2NhdGlvbkZv
clByZXZpb3VzLCBjaGlsZC50cmVlKCkubV9wcmV2aW91c1NpYmxpbmcpOwogCi0gICAgY2hpbGQt
PnRyZWUoKS5tX3ByZXZpb3VzU2libGluZyA9IG51bGxwdHI7Ci0gICAgY2hpbGQtPnRyZWUoKS5t
X25leHRTaWJsaW5nID0gbnVsbHB0cjsKKyAgICBjaGlsZC50cmVlKCkubV9wcmV2aW91c1NpYmxp
bmcgPSBudWxscHRyOworICAgIGNoaWxkLnRyZWUoKS5tX25leHRTaWJsaW5nID0gbnVsbHB0cjsK
IAogICAgIG1fc2NvcGVkQ2hpbGRDb3VudCA9IGludmFsaWRDb3VudDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVHJlZS5oCmluZGV4IGFiMTZmMGFkNjM5NjI1YWUyZDc4YzE3OWYxMzUzYmI4NGM5OGFlMWEu
LjNmODdjMjc5YmRjM2EwNjRmZTg4ODA4YjYwM2EyYWNmN2YyZGM3ZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVRyZWUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBw
bGUgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02NSwxMCArNjUsOSBAQCBwdWJsaWM6
CiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUqIHRyYXZlcnNlTmV4dFdpdGhXcmFwKGJvb2wpIGNv
bnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lKiB0cmF2ZXJzZVByZXZpb3VzV2l0aFdyYXAo
Ym9vbCkgY29uc3Q7CiAgICAgCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBlbmRDaGlsZChQ
YXNzUmVmUHRyPEZyYW1lPik7Ci0gICAgYm9vbCB0cmFuc2ZlckNoaWxkKFBhc3NSZWZQdHI8RnJh
bWU+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGVuZENoaWxkKEZyYW1lJik7CiAgICAg
dm9pZCBkZXRhY2hGcm9tUGFyZW50KCkgeyBtX3BhcmVudCA9IG51bGxwdHI7IH0KLSAgICB2b2lk
IHJlbW92ZUNoaWxkKEZyYW1lKik7CisgICAgdm9pZCByZW1vdmVDaGlsZChGcmFtZSYpOwogCiAg
ICAgRnJhbWUqIGNoaWxkKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKICAgICBGcmFtZSogY2hpbGQo
Y29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdDsKQEAgLTg3LDcgKzg2LDYgQEAgcHVibGlj
OgogCiBwcml2YXRlOgogICAgIEZyYW1lKiBkZWVwTGFzdENoaWxkKCkgY29uc3Q7Ci0gICAgdm9p
ZCBhY3R1YWxseUFwcGVuZENoaWxkKFBhc3NSZWZQdHI8RnJhbWU+KTsKIAogICAgIGJvb2wgc2Nv
cGVkQnkoVHJlZVNjb3BlKikgY29uc3Q7CiAgICAgRnJhbWUqIHNjb3BlZENoaWxkKHVuc2lnbmVk
IGluZGV4LCBUcmVlU2NvcGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRl
eCBkOTRjOWQ5MjFhNGE0MTk2M2VjOGRhZTc1YzBiNGUyMzI2MDk3OGEyLi40ZDYzOGEyZTc1M2Mx
ZWFiN2JmYzBkYzc4Yzg3MzdkMGU1MmMyYTBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CkBAIC02NzcsNyArNjc3LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNldENvbnRlbnRzU2l6ZShjb25z
dCBJbnRTaXplJiBzaXplKQogCiAgICAgdXBkYXRlU2Nyb2xsYWJsZUFyZWFTZXQoKTsKIAotICAg
IHBhZ2UtPmNocm9tZSgpLmNvbnRlbnRzU2l6ZUNoYW5nZWQoJmZyYW1lKCksIHNpemUpOyAvLyBO
b3RpZnkgb25seS4KKyAgICBwYWdlLT5jaHJvbWUoKS5jb250ZW50c1NpemVDaGFuZ2VkKGZyYW1l
KCksIHNpemUpOyAvLyBOb3RpZnkgb25seS4KIAogICAgIGlmIChmcmFtZSgpLmlzTWFpbkZyYW1l
KCkpIHsKICAgICAgICAgZnJhbWUoKS5tYWluRnJhbWUoKS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIo
KS5kaWRDaGFuZ2VEb2N1bWVudFNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvTWFpbkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcAppbmRl
eCA0ODE3NGNiMjQzN2Q1OTYwYjIxYzUzODM2YzUyNzFiNjYwZDg4NmMxLi5hMTdiZTNiYjUzYTg5
MmY1YmU2MmQ0YzRkNzcyNGUwYWQ0Y2ZkNGNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL01haW5GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuY3Bw
CkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgTWFpbkZyYW1lOjpzZWxmT25seURlcmVmKCkKIHZvaWQg
TWFpbkZyYW1lOjpkcm9wQ2hpbGRyZW4oKQogewogICAgIHdoaWxlIChGcmFtZSogY2hpbGQgPSB0
cmVlKCkuZmlyc3RDaGlsZCgpKQotICAgICAgICB0cmVlKCkucmVtb3ZlQ2hpbGQoY2hpbGQpOwor
ICAgICAgICB0cmVlKCkucmVtb3ZlQ2hpbGQoKmNoaWxkKTsKIH0KIAogI2lmIFBMQVRGT1JNKE1B
QykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGRiMTdlNmJhZjdhY2U0YzI3MjY1YzhlZGIzNzA1ZmRi
MTdlYjIwYmEuLjdkNmFmMTEwYTRjZDRkYWRlY2VkMjQ1OTA2NjI3MzA0MmYzZDBjNWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmNwcApAQCAtMzYzLDcgKzM2Myw3IEBAIFZpZXdwb3J0QXJndW1lbnRzIFBhZ2U6
OnZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3QKIFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBQYWdlOjpz
Y3JvbGxpbmdDb29yZGluYXRvcigpCiB7CiAgICAgaWYgKCFtX3Njcm9sbGluZ0Nvb3JkaW5hdG9y
ICYmIG1fc2V0dGluZ3MtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxlZCgpKSB7Ci0gICAgICAg
IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBjaHJvbWUoKS5jbGllbnQoKS5jcmVhdGVTY3JvbGxp
bmdDb29yZGluYXRvcih0aGlzKTsKKyAgICAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvciA9IGNo
cm9tZSgpLmNsaWVudCgpLmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKCp0aGlzKTsKICAgICAg
ICAgaWYgKCFtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKQogICAgICAgICAgICAgbV9zY3JvbGxpbmdD
b29yZGluYXRvciA9IFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGUodGhpcyk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmNwcAppbmRleCBlNzBiY2EwNTIzZjBlMzk1Zjg3N2Zm
NjNjMTJhYTM5NTU3YWRlZDdjLi4yY2E4NmY5ODI4MDgxNjM3ODRmMmFiN2ZhNDNlZWViYmVlMzc5
NWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmNwcApAQCAtMjc0LDcgKzI3NCw3IEBA
IHZvaWQgUGFnZU92ZXJsYXk6OmZhZGVBbmltYXRpb25UaW1lckZpcmVkKCkKIAogICAgICAgICAv
LyBJZiB0aGlzIHdhcyBhIGZhZGUgb3V0LCB1bmluc3RhbGwgdGhlIHBhZ2Ugb3ZlcmxheS4KICAg
ICAgICAgaWYgKHdhc0ZhZGluZ091dCkKLSAgICAgICAgICAgIGNvbnRyb2xsZXIoKS0+dW5pbnN0
YWxsUGFnZU92ZXJsYXkodGhpcywgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwor
ICAgICAgICAgICAgY29udHJvbGxlcigpLT51bmluc3RhbGxQYWdlT3ZlcmxheSgqdGhpcywgUGFn
ZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCmluZGV4IDg2NmI4NzBjYjhlNGQx
YjdlNWQyMWIzYjE2YWMxZTVjNmIzYWJmODMuLjA1NDNiZDUzNGQyNTFiYTM3ZGNhNDIxZGExN2Uy
Yzk5M2EyZGFmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJv
bGxlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtOTUsMjcgKzk1LDI1IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZU92ZXJsYXlHZW9tZXRy
eShQYWdlT3ZlcmxheSYgb3ZlcmxheSwgR3JhcGhpY3NMYXllciYgZ3JhcGhpY3NMCiAgICAgZ3Jh
cGhpY3NMYXllci5zZXRTaXplKG92ZXJsYXlGcmFtZS5zaXplKCkpOwogfQogCi12b2lkIFBhZ2VP
dmVybGF5Q29udHJvbGxlcjo6aW5zdGFsbFBhZ2VPdmVybGF5KFBhc3NSZWZQdHI8UGFnZU92ZXJs
YXk+IHBhZ2VPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUgZmFkZU1vZGUpCit2b2lkIFBh
Z2VPdmVybGF5Q29udHJvbGxlcjo6aW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5JiBvdmVy
bGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUgZmFkZU1vZGUpCiB7CiAgICAgY3JlYXRlUm9vdExh
eWVyc0lmTmVlZGVkKCk7CiAKLSAgICBSZWZQdHI8UGFnZU92ZXJsYXk+IG92ZXJsYXkgPSBwYWdl
T3ZlcmxheTsKLQotICAgIGlmIChtX3BhZ2VPdmVybGF5cy5jb250YWlucyhvdmVybGF5KSkKKyAg
ICBpZiAobV9wYWdlT3ZlcmxheXMuY29udGFpbnMoJm92ZXJsYXkpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBtX3BhZ2VPdmVybGF5cy5hcHBlbmQob3ZlcmxheSk7CisgICAgbV9wYWdlT3Zlcmxh
eXMuYXBwZW5kKCZvdmVybGF5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVy
PiBsYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShtX21haW5GcmFtZS5wYWdlKCktPmNocm9t
ZSgpLmNsaWVudCgpLmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKICAgICBsYXllci0+
c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDNEKCkpOwotICAgIGxheWVyLT5zZXRCYWNrZ3JvdW5k
Q29sb3Iob3ZlcmxheS0+YmFja2dyb3VuZENvbG9yKCkpOworICAgIGxheWVyLT5zZXRCYWNrZ3Jv
dW5kQ29sb3Iob3ZlcmxheS5iYWNrZ3JvdW5kQ29sb3IoKSk7CiAjaWZuZGVmIE5ERUJVRwogICAg
IGxheWVyLT5zZXROYW1lKCJQYWdlIE92ZXJsYXkgY29udGVudCIpOwogI2VuZGlmCiAKICAgICB1
cGRhdGVTZXR0aW5nc0ZvckxheWVyKCpsYXllcik7CiAKLSAgICBzd2l0Y2ggKG92ZXJsYXktPm92
ZXJsYXlUeXBlKCkpIHsKKyAgICBzd2l0Y2ggKG92ZXJsYXkub3ZlcmxheVR5cGUoKSkgewogICAg
IGNhc2UgUGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlOjpWaWV3OgogICAgICAgICBtX3ZpZXdPdmVy
bGF5Um9vdExheWVyLT5hZGRDaGlsZChsYXllci5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwpAQCAt
MTI1LDMzICsxMjMsMzMgQEAgdm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6Omluc3RhbGxQYWdl
T3ZlcmxheShQYXNzUmVmUHRyPFBhZ2VPdmVybGF5PiBwYWdlT3ZlcmwKICAgICB9CiAKICAgICBH
cmFwaGljc0xheWVyJiByYXdMYXllciA9ICpsYXllcjsKLSAgICBtX292ZXJsYXlHcmFwaGljc0xh
eWVycy5zZXQob3ZlcmxheS5nZXQoKSwgV1RGTW92ZShsYXllcikpOworICAgIG1fb3ZlcmxheUdy
YXBoaWNzTGF5ZXJzLnNldCgmb3ZlcmxheSwgV1RGTW92ZShsYXllcikpOwogCiAgICAgdXBkYXRl
Rm9yY2VTeW5jaHJvbm91c1Njcm9sbExheWVyUG9zaXRpb25VcGRhdGVzKCk7CiAKLSAgICBvdmVy
bGF5LT5zZXRQYWdlKG1fbWFpbkZyYW1lLnBhZ2UoKSk7CisgICAgb3ZlcmxheS5zZXRQYWdlKG1f
bWFpbkZyYW1lLnBhZ2UoKSk7CiAKICAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBtX21h
aW5GcmFtZS52aWV3KCkpCiAgICAgICAgIGZyYW1lVmlldy0+ZW50ZXJDb21wb3NpdGluZ01vZGUo
KTsKIAotICAgIHVwZGF0ZU92ZXJsYXlHZW9tZXRyeSgqb3ZlcmxheSwgcmF3TGF5ZXIpOworICAg
IHVwZGF0ZU92ZXJsYXlHZW9tZXRyeShvdmVybGF5LCByYXdMYXllcik7CiAKICAgICBpZiAoZmFk
ZU1vZGUgPT0gUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKQotICAgICAgICBvdmVybGF5LT5z
dGFydEZhZGVJbkFuaW1hdGlvbigpOworICAgICAgICBvdmVybGF5LnN0YXJ0RmFkZUluQW5pbWF0
aW9uKCk7CiB9CiAKLXZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjp1bmluc3RhbGxQYWdlT3Zl
cmxheShQYWdlT3ZlcmxheSogb3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlIGZhZGVNb2Rl
KQordm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnVuaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VP
dmVybGF5JiBvdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUgZmFkZU1vZGUpCiB7CiAgICAg
aWYgKGZhZGVNb2RlID09IFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSkgewotICAgICAgICBv
dmVybGF5LT5zdGFydEZhZGVPdXRBbmltYXRpb24oKTsKKyAgICAgICAgb3ZlcmxheS5zdGFydEZh
ZGVPdXRBbmltYXRpb24oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG92ZXJsYXkt
PnNldFBhZ2UobnVsbHB0cik7CisgICAgb3ZlcmxheS5zZXRQYWdlKG51bGxwdHIpOwogCi0gICAg
bV9vdmVybGF5R3JhcGhpY3NMYXllcnMudGFrZShvdmVybGF5KS0+cmVtb3ZlRnJvbVBhcmVudCgp
OworICAgIG1fb3ZlcmxheUdyYXBoaWNzTGF5ZXJzLnRha2UoJm92ZXJsYXkpLT5yZW1vdmVGcm9t
UGFyZW50KCk7CiAKLSAgICBib29sIHJlbW92ZWQgPSBtX3BhZ2VPdmVybGF5cy5yZW1vdmVGaXJz
dChvdmVybGF5KTsKKyAgICBib29sIHJlbW92ZWQgPSBtX3BhZ2VPdmVybGF5cy5yZW1vdmVGaXJz
dCgmb3ZlcmxheSk7CiAgICAgQVNTRVJUX1VOVVNFRChyZW1vdmVkLCByZW1vdmVkKTsKIAogICAg
IHVwZGF0ZUZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0aW9uVXBkYXRlcygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgKaW5kZXggMzk3ODA5ODIw
MDhjNjUxZjI4OGI3OTc2YjFiOTMyOTVhYzUyZTdhNC4uNjM4OTQ3YzYxODQ2YWIwNjc1Y2U4MDNh
YmYxNzZiNmI3MWRkOGMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3Zl
cmxheUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29u
dHJvbGxlci5oCkBAIC0zOSw3ICszOSw2IEBAIGNsYXNzIFBhZ2U7CiBjbGFzcyBQbGF0Zm9ybU1v
dXNlRXZlbnQ7CiAKIGNsYXNzIFBhZ2VPdmVybGF5Q29udHJvbGxlciBmaW5hbCA6IHB1YmxpYyBH
cmFwaGljc0xheWVyQ2xpZW50IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQYWdlT3Zlcmxh
eUNvbnRyb2xsZXIpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAg
IFBhZ2VPdmVybGF5Q29udHJvbGxlcihNYWluRnJhbWUmKTsKQEAgLTUwLDggKzQ5LDggQEAgcHVi
bGljOgogCiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxQYWdlT3ZlcmxheT4+JiBwYWdlT3Zlcmxh
eXMoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VPdmVybGF5czsgfQogCi0gICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBpbnN0YWxsUGFnZU92ZXJsYXkoUGFzc1JlZlB0cjxQYWdlT3ZlcmxheT4sIFBhZ2VP
dmVybGF5OjpGYWRlTW9kZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1bmluc3RhbGxQYWdl
T3ZlcmxheShQYWdlT3ZlcmxheSosIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSk7CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBpbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkmLCBQYWdlT3Zlcmxh
eTo6RmFkZU1vZGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5pbnN0YWxsUGFnZU92ZXJs
YXkoUGFnZU92ZXJsYXkmLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUpOwogCiAgICAgdm9pZCBzZXRQ
YWdlT3ZlcmxheU5lZWRzRGlzcGxheShQYWdlT3ZlcmxheSYsIGNvbnN0IEludFJlY3QmKTsKICAg
ICB2b2lkIHNldFBhZ2VPdmVybGF5T3BhY2l0eShQYWdlT3ZlcmxheSYsIGZsb2F0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKaW5kZXggN2ZmZjEyM2ZmNjQxMzc4MjVjOGQx
OTgwM2RiZWNmMzljODYzNjhhZi4uOTNkMzc3N2FhMWE5ZjA3OWY3MTA0Yzk3NDVkN2RhMWNjYmJm
ZDU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKQEAgLTgwLDggKzgw
LDcgQEAgc3RhdGljIGJvb2wgaXNDaGFyc2V0U3BlY2lmeWluZ05vZGUoY29uc3QgTm9kZSYgbm9k
ZSkKICAgICAgICAgICAgIGF0dHJpYnV0ZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGF0dHJpYnV0
ZS5uYW1lKCkudG9TdHJpbmcoKSwgYXR0cmlidXRlLnZhbHVlKCkuc3RyaW5nKCkpKTsKICAgICAg
ICAgfQogICAgIH0KLSAgICBUZXh0RW5jb2RpbmcgdGV4dEVuY29kaW5nID0gSFRNTE1ldGFDaGFy
c2V0UGFyc2VyOjplbmNvZGluZ0Zyb21NZXRhQXR0cmlidXRlcyhhdHRyaWJ1dGVzKTsKLSAgICBy
ZXR1cm4gdGV4dEVuY29kaW5nLmlzVmFsaWQoKTsKKyAgICByZXR1cm4gSFRNTE1ldGFDaGFyc2V0
UGFyc2VyOjplbmNvZGluZ0Zyb21NZXRhQXR0cmlidXRlcyhhdHRyaWJ1dGVzKS5pc1ZhbGlkKCk7
CiB9CiAKIHN0YXRpYyBib29sIHNob3VsZElnbm9yZUVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxl
bWVudCkKQEAgLTk1LDEwICs5NCw5IEBAIHN0YXRpYyBjb25zdCBRdWFsaWZpZWROYW1lJiBmcmFt
ZU93bmVyVVJMQXR0cmlidXRlTmFtZShjb25zdCBIVE1MRnJhbWVPd25lckVsZW1lCiAgICAgcmV0
dXJuIGlzPEhUTUxPYmplY3RFbGVtZW50PihmcmFtZU93bmVyKSA/IEhUTUxOYW1lczo6ZGF0YUF0
dHIgOiBIVE1MTmFtZXM6OnNyY0F0dHI7CiB9CiAKLWNsYXNzIFNlcmlhbGl6ZXJNYXJrdXBBY2N1
bXVsYXRvciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRvciB7CitjbGFz
cyBQYWdlU2VyaWFsaXplcjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yIGZpbmFsIDogcHVi
bGljIFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yIHsKIHB1YmxpYzoKICAgICBTZXJpYWxpemVy
TWFya3VwQWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXImLCBEb2N1bWVudCYsIFZlY3RvcjxOb2Rl
Kj4qKTsKLSAgICB2aXJ0dWFsIH5TZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3IoKTsKIAogcHJp
dmF0ZToKICAgICBQYWdlU2VyaWFsaXplciYgbV9zZXJpYWxpemVyOwpAQCAtMTEwLDcgKzEwOCw3
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhcHBlbmRFbmRUYWcoY29uc3QgRWxlbWVudCYpIG92ZXJy
aWRlOwogfTsKIAotU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjpTZXJpYWxpemVyTWFya3Vw
QWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXImIHNlcmlhbGl6ZXIsIERvY3VtZW50JiBkb2N1bWVu
dCwgVmVjdG9yPE5vZGUqPiogbm9kZXMpCitQYWdlU2VyaWFsaXplcjo6U2VyaWFsaXplck1hcmt1
cEFjY3VtdWxhdG9yOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXIm
IHNlcmlhbGl6ZXIsIERvY3VtZW50JiBkb2N1bWVudCwgVmVjdG9yPE5vZGUqPiogbm9kZXMpCiAg
ICAgOiBNYXJrdXBBY2N1bXVsYXRvcihub2RlcywgUmVzb2x2ZUFsbFVSTHMpCiAgICAgLCBtX3Nl
cmlhbGl6ZXIoc2VyaWFsaXplcikKICAgICAsIG1fZG9jdW1lbnQoZG9jdW1lbnQpCkBAIC0xMjAs
MTggKzExOCwxNCBAQCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OlNlcmlhbGl6ZXJNYXJr
dXBBY2N1bXVsYXRvcihQYWdlU2VyaWFsaXplciYgc2VyaWFsaQogICAgICAgICBhcHBlbmRTdHJp
bmcoIjw/eG1sIHZlcnNpb249XCIiICsgbV9kb2N1bWVudC54bWxWZXJzaW9uKCkgKyAiXCIgZW5j
b2Rpbmc9XCIiICsgbV9kb2N1bWVudC5jaGFyc2V0KCkgKyAiXCI/PiIpOwogfQogCi1TZXJpYWxp
emVyTWFya3VwQWNjdW11bGF0b3I6On5TZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3IoKQotewot
fQotCi12b2lkIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kVGV4dChTdHJpbmdC
dWlsZGVyJiBvdXQsIGNvbnN0IFRleHQmIHRleHQpCit2b2lkIFBhZ2VTZXJpYWxpemVyOjpTZXJp
YWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQoU3RyaW5nQnVpbGRlciYgb3V0LCBj
b25zdCBUZXh0JiB0ZXh0KQogewogICAgIEVsZW1lbnQqIHBhcmVudCA9IHRleHQucGFyZW50RWxl
bWVudCgpOwogICAgIGlmIChwYXJlbnQgJiYgIXNob3VsZElnbm9yZUVsZW1lbnQoKnBhcmVudCkp
CiAgICAgICAgIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0KG91dCwgdGV4dCk7CiB9CiAK
LXZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbGVtZW50KFN0cmluZ0J1
aWxkZXImIG91dCwgY29uc3QgRWxlbWVudCYgZWxlbWVudCwgTmFtZXNwYWNlcyogbmFtZXNwYWNl
cykKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBw
ZW5kRWxlbWVudChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIE5h
bWVzcGFjZXMqIG5hbWVzcGFjZXMpCiB7CiAgICAgaWYgKCFzaG91bGRJZ25vcmVFbGVtZW50KGVs
ZW1lbnQpKQogICAgICAgICBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRWxlbWVudChvdXQsIGVs
ZW1lbnQsIG5hbWVzcGFjZXMpOwpAQCAtMTQ1LDcgKzEzOSw3IEBAIHZvaWQgU2VyaWFsaXplck1h
cmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbGVtZW50KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3Qg
RWxlbWVuCiAgICAgLy8gRklYTUU6IEZvciBvYmplY3QgKHBsdWdpbnMpIHRhZ3MgYW5kIHZpZGVv
IHRhZyB3ZSBjb3VsZCByZXBsYWNlIHRoZW0gYnkgYW4gaW1hZ2Ugb2YgdGhlaXIgY3VycmVudCBj
b250ZW50cy4KIH0KIAotdm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEN1
c3RvbUF0dHJpYnV0ZXMoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBFbGVtZW50JiBlbGVtZW50
LCBOYW1lc3BhY2VzKiBuYW1lc3BhY2VzKQordm9pZCBQYWdlU2VyaWFsaXplcjo6U2VyaWFsaXpl
ck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRDdXN0b21BdHRyaWJ1dGVzKFN0cmluZ0J1aWxkZXIm
IG91dCwgY29uc3QgRWxlbWVudCYgZWxlbWVudCwgTmFtZXNwYWNlcyogbmFtZXNwYWNlcykKIHsK
ICAgICBpZiAoIWlzPEhUTUxGcmFtZU93bmVyRWxlbWVudD4oZWxlbWVudCkpCiAgICAgICAgIHJl
dHVybjsKQEAgLTE2NCwzMiArMTU4LDIwIEBAIHZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxh
dG9yOjphcHBlbmRDdXN0b21BdHRyaWJ1dGVzKFN0cmluZ0J1aWxkZXImIG91dCwgY29uCiAgICAg
YXBwZW5kQXR0cmlidXRlKG91dCwgZWxlbWVudCwgQXR0cmlidXRlKGZyYW1lT3duZXJVUkxBdHRy
aWJ1dGVOYW1lKGZyYW1lT3duZXIpLCB1cmwuc3RyaW5nKCkpLCBuYW1lc3BhY2VzKTsKIH0KIAot
dm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVuZFRhZyhjb25zdCBFbGVt
ZW50JiBlbGVtZW50KQordm9pZCBQYWdlU2VyaWFsaXplcjo6U2VyaWFsaXplck1hcmt1cEFjY3Vt
dWxhdG9yOjphcHBlbmRFbmRUYWcoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBpZiAo
IXNob3VsZElnbm9yZUVsZW1lbnQoZWxlbWVudCkpCiAgICAgICAgIE1hcmt1cEFjY3VtdWxhdG9y
OjphcHBlbmRFbmRUYWcoZWxlbWVudCk7CiB9CiAKLVBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZTo6
UmVzb3VyY2UoKQotewotfQotCi1QYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U6OlJlc291cmNlKGNv
bnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gZGF0YSkKLSAgICA6IHVybCh1cmwpCi0gICAgLCBtaW1lVHlwZShtaW1lVHlwZSkKLSAg
ICAsIGRhdGEoZGF0YSkKLXsKLX0KLQotUGFnZVNlcmlhbGl6ZXI6OlBhZ2VTZXJpYWxpemVyKFZl
Y3RvcjxQYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U+KiByZXNvdXJjZXMpCitQYWdlU2VyaWFsaXpl
cjo6UGFnZVNlcmlhbGl6ZXIoVmVjdG9yPFBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZT4mIHJlc291
cmNlcykKICAgICA6IG1fcmVzb3VyY2VzKHJlc291cmNlcykKLSAgICAsIG1fYmxhbmtGcmFtZUNv
dW50ZXIoMCkKIHsKIH0KIAotdm9pZCBQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplKFBhZ2UqIHBh
Z2UpCit2b2lkIFBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemUoUGFnZSYgcGFnZSkKIHsKLSAgICBz
ZXJpYWxpemVGcmFtZSgmcGFnZS0+bWFpbkZyYW1lKCkpOworICAgIHNlcmlhbGl6ZUZyYW1lKCZw
YWdlLm1haW5GcmFtZSgpKTsKIH0KIAogdm9pZCBQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplRnJh
bWUoRnJhbWUqIGZyYW1lKQpAQCAtMjE4LDcgKzIwMCw3IEBAIHZvaWQgUGFnZVNlcmlhbGl6ZXI6
OnNlcmlhbGl6ZUZyYW1lKEZyYW1lKiBmcmFtZSkKICAgICB9CiAgICAgU3RyaW5nIHRleHQgPSBh
Y2N1bXVsYXRvci5zZXJpYWxpemVOb2RlcygqZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpLCBJ
bmNsdWRlTm9kZSk7CiAgICAgQ1N0cmluZyBmcmFtZUhUTUwgPSB0ZXh0RW5jb2RpbmcuZW5jb2Rl
KHRleHQsIEVudGl0aWVzRm9yVW5lbmNvZGFibGVzKTsKLSAgICBtX3Jlc291cmNlcy0+YXBwZW5k
KFJlc291cmNlKHVybCwgZG9jdW1lbnQtPnN1Z2dlc3RlZE1JTUVUeXBlKCksIFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlKGZyYW1lSFRNTC5kYXRhKCksIGZyYW1lSFRNTC5sZW5ndGgoKSkpKTsKKyAgICBt
X3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIGRvY3VtZW50LT5zdWdnZXN0ZWRNSU1FVHlwZSgpLCBT
aGFyZWRCdWZmZXI6OmNyZWF0ZShmcmFtZUhUTUwuZGF0YSgpLCBmcmFtZUhUTUwubGVuZ3RoKCkp
IH0pOwogICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwpOwogCiAgICAgZm9yIChhdXRvJiBub2Rl
IDogbm9kZXMpIHsKQEAgLTI4NCw3ICsyNjYsNyBAQCB2b2lkIFBhZ2VTZXJpYWxpemVyOjpzZXJp
YWxpemVDU1NTdHlsZVNoZWV0KENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQsIGNvbnN0IFVSTAog
ICAgICAgICBBU1NFUlQodGV4dEVuY29kaW5nLmlzVmFsaWQoKSk7CiAgICAgICAgIFN0cmluZyB0
ZXh0U3RyaW5nID0gY3NzVGV4dC50b1N0cmluZygpOwogICAgICAgICBDU3RyaW5nIHRleHQgPSB0
ZXh0RW5jb2RpbmcuZW5jb2RlKHRleHRTdHJpbmcsIEVudGl0aWVzRm9yVW5lbmNvZGFibGVzKTsK
LSAgICAgICAgbV9yZXNvdXJjZXMtPmFwcGVuZChSZXNvdXJjZSh1cmwsIFN0cmluZygidGV4dC9j
c3MiKSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUodGV4dC5kYXRhKCksIHRleHQubGVuZ3RoKCkpKSk7
CisgICAgICAgIG1fcmVzb3VyY2VzLmFwcGVuZCh7IHVybCwgQVNDSUlMaXRlcmFsIHsgInRleHQv
Y3NzIiB9LCBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh0ZXh0LmRhdGEoKSwgdGV4dC5sZW5ndGgoKSkg
fSk7CiAgICAgICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwpOwogICAgIH0KIH0KQEAgLTMwNiw4
ICsyODgsNyBAQCB2b2lkIFBhZ2VTZXJpYWxpemVyOjphZGRJbWFnZVRvUmVzb3VyY2VzKENhY2hl
ZEltYWdlKiBpbWFnZSwgUmVuZGVyRWxlbWVudCogaW1hZwogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgU3RyaW5nIG1pbWVUeXBlID0gaW1hZ2UtPnJlc3BvbnNlKCkubWltZVR5cGUoKTsK
LSAgICBtX3Jlc291cmNlcy0+YXBwZW5kKFJlc291cmNlKHVybCwgbWltZVR5cGUsIGRhdGEpKTsK
KyAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIGltYWdlLT5yZXNwb25zZSgpLm1pbWVUeXBl
KCksIFdURk1vdmUoZGF0YSkgfSk7CiAgICAgbV9yZXNvdXJjZVVSTHMuYWRkKHVybCk7CiB9CiAK
QEAgLTMzNCwyMCArMzE1LDE4IEBAIHZvaWQgUGFnZVNlcmlhbGl6ZXI6OnJldHJpZXZlUmVzb3Vy
Y2VzRm9yUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMqIHN0eWxlCiAgICAgICAgIGlm
ICghaW1hZ2UpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBVUkwgdXJsID0gZG9j
dW1lbnQtPmNvbXBsZXRlVVJMKGltYWdlLT51cmwoKSk7Ci0gICAgICAgIGFkZEltYWdlVG9SZXNv
dXJjZXMoaW1hZ2UsIG51bGxwdHIsIHVybCk7CisgICAgICAgIGFkZEltYWdlVG9SZXNvdXJjZXMo
aW1hZ2UsIG51bGxwdHIsIGRvY3VtZW50LT5jb21wbGV0ZVVSTChpbWFnZS0+dXJsKCkpKTsKICAg
ICB9CiB9CiAKIFVSTCBQYWdlU2VyaWFsaXplcjo6dXJsRm9yQmxhbmtGcmFtZShGcmFtZSogZnJh
bWUpCiB7Ci0gICAgSGFzaE1hcDxGcmFtZSosIFVSTD46Oml0ZXJhdG9yIGl0ZXIgPSBtX2JsYW5r
RnJhbWVVUkxzLmZpbmQoZnJhbWUpOworICAgIGF1dG8gaXRlciA9IG1fYmxhbmtGcmFtZVVSTHMu
ZmluZChmcmFtZSk7CiAgICAgaWYgKGl0ZXIgIT0gbV9ibGFua0ZyYW1lVVJMcy5lbmQoKSkKICAg
ICAgICAgcmV0dXJuIGl0ZXItPnZhbHVlOwogICAgIFN0cmluZyB1cmwgPSAid3ljaXd5ZzovL2Zy
YW1lLyIgKyBTdHJpbmc6Om51bWJlcihtX2JsYW5rRnJhbWVDb3VudGVyKyspOwogICAgIFVSTCBm
YWtlVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKTsKICAgICBtX2JsYW5rRnJhbWVVUkxzLmFkZChm
cmFtZSwgZmFrZVVSTCk7Ci0KICAgICByZXR1cm4gZmFrZVVSTDsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlU2VyaWFsaXplci5oCmluZGV4IGExYjQ3YjlkYmJjMDM0YjE3MjkzNTRjMDgyMWFhYmRk
NTc2MmVlYWMuLmQ1NzQzYmM0ZjYxNDYyOTIyOGMzZmZmMGE0YmVkY2I4NzUwYzExZjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmgKQEAgLTMwLDcgKzMwLDYgQEAKIAogI3ByYWdt
YSBvbmNlCiAKLSNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJVUkxIYXNoLmgiCiAjaW5jbHVk
ZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTU2LDIwICs1
NSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIFVSTCB1cmw7CiAgICAgICAgIFN0cmluZyBtaW1lVHlw
ZTsKICAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YTsKLSAgICAgICAgUmVzb3VyY2Uo
KTsKLSAgICAgICAgUmVzb3VyY2UoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwg
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEpOwogICAgIH07CiAKLSAgICBleHBsaWNpdCBQ
YWdlU2VyaWFsaXplcihWZWN0b3I8UmVzb3VyY2U+Kik7CisgICAgZXhwbGljaXQgUGFnZVNlcmlh
bGl6ZXIoVmVjdG9yPFJlc291cmNlPiYpOwogCiAgICAgLy8gSW5pdGlhdGVzIHRoZSBzZXJpYWxp
emF0aW9uIG9mIHRoZSBmcmFtZSdzIHBhZ2UuIEFsbCBzZXJpYWxpemVkIGNvbnRlbnQgYW5kIHJl
dHJpZXZlZAogICAgIC8vIHJlc291cmNlcyBhcmUgYWRkZWQgdG8gdGhlIFZlY3RvciBwYXNzZWQg
dG8gdGhlIGNvbnN0cnVjdG9yLiBUaGUgZmlyc3QgcmVzb3VyY2UgaW4gdGhhdAogICAgIC8vIHZl
Y3RvciBpcyB0aGUgdG9wIGZyYW1lIHNlcmlhbGl6ZWQgY29udGVudC4KLSAgICB2b2lkIHNlcmlh
bGl6ZShQYWdlKik7CisgICAgdm9pZCBzZXJpYWxpemUoUGFnZSYpOworCitwcml2YXRlOgorICAg
IGNsYXNzIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjsKIAogICAgIFVSTCB1cmxGb3JCbGFu
a0ZyYW1lKEZyYW1lKik7CiAKLXByaXZhdGU6CiAgICAgdm9pZCBzZXJpYWxpemVGcmFtZShGcmFt
ZSopOwogCiAgICAgLy8gU2VyaWFsaXplcyB0aGUgc3R5bGVzaGVldCBiYWNrIHRvIHRleHQgYW5k
IGFkZHMgaXQgdG8gdGhlIHJlc291cmNlcyBpZiBVUkwgaXMgbm90LWVtcHR5LgpAQCAtODAsMTAg
Kzc5LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXRyaWV2ZVJlc291cmNlc0ZvclByb3BlcnRp
ZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiwgRG9jdW1lbnQqKTsKICAgICB2b2lkIHJldHJpZXZl
UmVzb3VyY2VzRm9yUnVsZShTdHlsZVJ1bGUmLCBEb2N1bWVudCopOwogCi0gICAgVmVjdG9yPFJl
c291cmNlPiogbV9yZXNvdXJjZXM7CisgICAgVmVjdG9yPFJlc291cmNlPiYgbV9yZXNvdXJjZXM7
CiAgICAgTGlzdEhhc2hTZXQ8VVJMPiBtX3Jlc291cmNlVVJMczsKICAgICBIYXNoTWFwPEZyYW1l
KiwgVVJMPiBtX2JsYW5rRnJhbWVVUkxzOwotICAgIHVuc2lnbmVkIG1fYmxhbmtGcmFtZUNvdW50
ZXI7CisgICAgdW5zaWduZWQgbV9ibGFua0ZyYW1lQ291bnRlciB7IDAgfTsKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2VFbnRyeS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmgKaW5k
ZXggYjNhODRhM2E5ZGNhODJiYmZhOGIzNDA3NGJlY2M3M2I0ODdlZGFhZS4uZjhkNmNhN2ZlYzgw
YzBmZmU2YTk4NmViZmU0ODFlYjM0NTBiY2JjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QZXJmb3JtYW5jZUVudHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZUVudHJ5LmgKQEAgLTM0LDcgKzM0LDYgQEAKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKIAog
I2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTU0LDcgKzUzLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgYm9vbCBpc01hcmsoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBpc01lYXN1cmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgc3Rh
dGljIGJvb2wgc3RhcnRUaW1lQ29tcGFyZUxlc3NUaGFuKFBhc3NSZWZQdHI8UGVyZm9ybWFuY2VF
bnRyeT4gYSwgUGFzc1JlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBiKQorICAgIHN0YXRpYyBib29s
IHN0YXJ0VGltZUNvbXBhcmVMZXNzVGhhbihjb25zdCBSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4m
IGEsIGNvbnN0IFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiYgYikKICAgICB7CiAgICAgICAgIHJl
dHVybiBhLT5zdGFydFRpbWUoKSA8IGItPnN0YXJ0VGltZSgpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcAppbmRleCBkOTUzMTgwNTQ3MGY4
ZWVjYTQyODc2M2I3Y2ExZWFjNTNlMTczYjZmLi45YTZjN2FjZTM5NDBlZTM4ZDY1N2ViYmEzNWEx
ODM2Mzg4MGE0OWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
VXNlclRpbWluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJU
aW1pbmcuY3BwCkBAIC04NywxNCArODcsMTQgQEAgVXNlclRpbWluZzo6VXNlclRpbWluZyhQZXJm
b3JtYW5jZSYgcGVyZm9ybWFuY2UpCiB7CiB9CiAKLXN0YXRpYyB2b2lkIGluc2VydFBlcmZvcm1h
bmNlRW50cnkoUGVyZm9ybWFuY2VFbnRyeU1hcCYgcGVyZm9ybWFuY2VFbnRyeU1hcCwgUGFzc1Jl
ZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBwZXJmb3JtYW5jZUVudHJ5KQorc3RhdGljIHZvaWQgaW5z
ZXJ0UGVyZm9ybWFuY2VFbnRyeShQZXJmb3JtYW5jZUVudHJ5TWFwJiBwZXJmb3JtYW5jZUVudHJ5
TWFwLCBSZWY8UGVyZm9ybWFuY2VFbnRyeT4mJiBwZXJmb3JtYW5jZUVudHJ5KQogewotICAgIFJl
ZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBlbnRyeSA9IHBlcmZvcm1hbmNlRW50cnk7Ci0gICAgUGVy
Zm9ybWFuY2VFbnRyeU1hcDo6aXRlcmF0b3IgaXQgPSBwZXJmb3JtYW5jZUVudHJ5TWFwLmZpbmQo
ZW50cnktPm5hbWUoKSk7CisgICAgUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+IGVudHJ5ID0gV1RG
TW92ZShwZXJmb3JtYW5jZUVudHJ5KTsKKyAgICBhdXRvIGl0ID0gcGVyZm9ybWFuY2VFbnRyeU1h
cC5maW5kKGVudHJ5LT5uYW1lKCkpOwogICAgIGlmIChpdCAhPSBwZXJmb3JtYW5jZUVudHJ5TWFw
LmVuZCgpKQotICAgICAgICBpdC0+dmFsdWUuYXBwZW5kKGVudHJ5KTsKKyAgICAgICAgaXQtPnZh
bHVlLmFwcGVuZChXVEZNb3ZlKGVudHJ5KSk7CiAgICAgZWxzZQotICAgICAgICBwZXJmb3JtYW5j
ZUVudHJ5TWFwLnNldChlbnRyeS0+bmFtZSgpLCBWZWN0b3I8UmVmUHRyPFBlcmZvcm1hbmNlRW50
cnk+PnsgZW50cnkgfSk7CisgICAgICAgIHBlcmZvcm1hbmNlRW50cnlNYXAuc2V0KGVudHJ5LT5u
YW1lKCksIFZlY3RvcjxSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4+IHsgV1RGTW92ZShlbnRyeSkg
fSk7CiB9CiAKIHN0YXRpYyB2b2lkIGNsZWFyUGVmb3JtYW5jZUVudHJpZXMoUGVyZm9ybWFuY2VF
bnRyeU1hcCYgcGVyZm9ybWFuY2VFbnRyeU1hcCwgY29uc3QgU3RyaW5nJiBuYW1lKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlT3ZlcmxheS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmNwcAppbmRleCBhZTgxMTJjYTI2
Mzk5MTZmNDE0NWU5MzIzZGUwZDJmMjgxOTVhY2IwLi5lNzQzZDg4MGUyMGNiMWZkZjg1NzAxNjBk
MGIxYWQ1ODM5MjliOGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNl
VXNhZ2VPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNlVXNhZ2VP
dmVybGF5LmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZXNvdXJjZVVzYWdlT3ZlcmxheTo6flJlc291
cmNlVXNhZ2VPdmVybGF5KCkKIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgaGFjayBzbyB3ZSBk
b24ndCB0cnkgdG8gdW5pbnN0YWxsIHRoZSBQYWdlT3ZlcmxheSBkdXJpbmcgUGFnZSBkZXN0cnVj
dGlvbi4KICAgICBpZiAobV9wYWdlLm1haW5GcmFtZSgpLnBhZ2UoKSkKLSAgICAgICAgbV9wYWdl
Lm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5
KG1fb3ZlcmxheS5nZXQoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAg
ICAgICBtX3BhZ2UubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxs
UGFnZU92ZXJsYXkoKm1fb3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUp
OwogfQogCiB2b2lkIFJlc291cmNlVXNhZ2VPdmVybGF5Ojppbml0aWFsaXplKCkKQEAgLTcyLDcg
KzcyLDcgQEAgdm9pZCBSZXNvdXJjZVVzYWdlT3ZlcmxheTo6aW5pdGlhbGl6ZSgpCiAKICAgICBt
X292ZXJsYXktPnNldEZyYW1lKGluaXRpYWxSZWN0KTsKICAgICBtX292ZXJsYXktPnNldFNob3Vs
ZElnbm9yZU1vdXNlRXZlbnRzT3V0c2lkZUJvdW5kcyhmYWxzZSk7Ci0gICAgbV9wYWdlLm1haW5G
cmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheShtX292ZXJs
YXkuZ2V0KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICBtX3BhZ2Uu
bWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KCpt
X292ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKICAgICBwbGF0Zm9y
bUluaXRpYWxpemUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vQW5pbWF0aW9uQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQmFzZS5oCmluZGV4IDVhZGUwMDIyZWJjMGQ4NGQyNzg2OGZlMjRiNTRkNjZhNjFlNzdl
NTguLjJkZDBjMzA5ZTA1ODJmMzVjZjkzNmY1MGFjZDljMWFjMzQxNjM1NWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKQEAgLTMxLDcgKzMxLDYg
QEAKICNpbmNsdWRlICJBbmltYXRpb24uaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgi
CiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291
bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDU4ODk2ZGIyZjFlOWZkNDUzNzhiMzY3YzAwZWM3MTdi
YjEzZTQ5OWMuLjRjNDBjOTIzYTIzZTIzMzg4NDA4NDJlODgzY2UwNWRiMWU3YmRkMWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xs
ZXIuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgYm9vbCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0
ZTo6Y2xlYXIoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiAgICAgRWxlbWVudCogZWxlbWVudCA9
IHJlbmRlcmVyLmVsZW1lbnQoKTsKIAogICAgIG1fZXZlbnRzVG9EaXNwYXRjaC5yZW1vdmVBbGxN
YXRjaGluZyhbZWxlbWVudF0gKGNvbnN0IEV2ZW50VG9EaXNwYXRjaCYgaW5mbykgewotICAgICAg
ICByZXR1cm4gaW5mby5lbGVtZW50ID09IGVsZW1lbnQ7CisgICAgICAgIHJldHVybiBpbmZvLmVs
ZW1lbnQucHRyKCkgPT0gZWxlbWVudDsKICAgICB9KTsKIAogICAgIG1fZWxlbWVudENoYW5nZXNU
b0Rpc3BhdGNoLnJlbW92ZUFsbE1hdGNoaW5nKFtlbGVtZW50XShhdXRvJiBjdXJyZW50RWxlbWVu
dCkgewpAQCAtMjAzLDcgKzIwMyw3IEBAIHZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6
OmZpcmVFdmVudHNBbmRVcGRhdGVTdHlsZSgpCiAgICAgLy8gZmlyZSBhbGwgdGhlIGV2ZW50cwog
ICAgIFZlY3RvcjxFdmVudFRvRGlzcGF0Y2g+IGV2ZW50c1RvRGlzcGF0Y2ggPSBXVEZNb3ZlKG1f
ZXZlbnRzVG9EaXNwYXRjaCk7CiAgICAgZm9yIChhdXRvJiBldmVudCA6IGV2ZW50c1RvRGlzcGF0
Y2gpIHsKLSAgICAgICAgRWxlbWVudCYgZWxlbWVudCA9ICpldmVudC5lbGVtZW50OworICAgICAg
ICBFbGVtZW50JiBlbGVtZW50ID0gZXZlbnQuZWxlbWVudDsKICAgICAgICAgaWYgKGV2ZW50LmV2
ZW50VHlwZSA9PSBldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2ZW50KQogICAgICAgICAgICAg
ZWxlbWVudC5kaXNwYXRjaEV2ZW50KFRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50LmV2ZW50
VHlwZSwgZXZlbnQubmFtZSwgZXZlbnQuZWxhcHNlZFRpbWUsIFBzZXVkb0VsZW1lbnQ6OnBzZXVk
b0VsZW1lbnROYW1lRm9yRXZlbnRzKGVsZW1lbnQucHNldWRvSWQoKSkpKTsKICAgICAgICAgZWxz
ZQpAQCAtMjI1LDIxICsyMjUsMTUgQEAgdm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6
c3RhcnRVcGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hlcigpCiAgICAgICAgIG1fdXBkYXRlU3R5
bGVJZk5lZWRlZERpc3BhdGNoZXIuc3RhcnRPbmVTaG90KDApOwogfQogCi12b2lkIEFuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2goUGFzc1JlZlB0cjxFbGVtZW50
PiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBu
YW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpCit2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRl
OjphZGRFdmVudFRvRGlzcGF0Y2goRWxlbWVudCYgZWxlbWVudCwgY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKQogewot
ICAgIG1fZXZlbnRzVG9EaXNwYXRjaC5ncm93KG1fZXZlbnRzVG9EaXNwYXRjaC5zaXplKCkrMSk7
Ci0gICAgRXZlbnRUb0Rpc3BhdGNoJiBldmVudCA9IG1fZXZlbnRzVG9EaXNwYXRjaFttX2V2ZW50
c1RvRGlzcGF0Y2guc2l6ZSgpLTFdOwotICAgIGV2ZW50LmVsZW1lbnQgPSBlbGVtZW50OwotICAg
IGV2ZW50LmV2ZW50VHlwZSA9IGV2ZW50VHlwZTsKLSAgICBldmVudC5uYW1lID0gbmFtZTsKLSAg
ICBldmVudC5lbGFwc2VkVGltZSA9IGVsYXBzZWRUaW1lOwotICAgIAorICAgIG1fZXZlbnRzVG9E
aXNwYXRjaC5hcHBlbmQoeyBlbGVtZW50LCBldmVudFR5cGUsIG5hbWUsIGVsYXBzZWRUaW1lIH0p
OwogICAgIHN0YXJ0VXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIoKTsKIH0KIAotdm9pZCBB
bmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6YWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2goUmVm
PEVsZW1lbnQ+JiYgZWxlbWVudCkKK3ZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFk
ZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9lbGVt
ZW50Q2hhbmdlc1RvRGlzcGF0Y2guYXBwZW5kKFdURk1vdmUoZWxlbWVudCkpOworICAgIG1fZWxl
bWVudENoYW5nZXNUb0Rpc3BhdGNoLmFwcGVuZChlbGVtZW50KTsKICAgICBBU1NFUlQobV9lbGVt
ZW50Q2hhbmdlc1RvRGlzcGF0Y2gubGFzdCgpLT5kb2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkg
PT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKICAgICBzdGFydFVwZGF0ZVN0eWxlSWZOZWVk
ZWREaXNwYXRjaGVyKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaAppbmRleCBmYjljYzgyYjgxNTE3
ZDBiYTMyNzNmMzgwZjIwYmNkOGE5ODYxZjU4Li40OWFkM2Y5Yzk1NDI1NWMzMWQwZmJmZmE0YzYy
NjhiMDY3OTIxN2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKQEAgLTI5LDMzICsyOSwyMSBAQAog
I3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBbmltYXRpb25CYXNlLmgiCi0jaW5jbHVkZSAiQ1NT
UHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRy
Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNp
bmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBbmltYXRpb25CYXNlOwog
Y2xhc3MgQ29tcG9zaXRlQW5pbWF0aW9uOwogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBFbGVtZW50
OwogY2xhc3MgRnJhbWU7Ci1jbGFzcyBSZW5kZXJFbGVtZW50OwotY2xhc3MgUmVuZGVyU3R5bGU7
CiAKLWVudW0gU2V0Q2hhbmdlZCB7Ci0gICAgRG9Ob3RDYWxsU2V0Q2hhbmdlZCA9IDAsCi0gICAg
Q2FsbFNldENoYW5nZWQgPSAxCi19OworZW51bSBTZXRDaGFuZ2VkIHsgRG9Ob3RDYWxsU2V0Q2hh
bmdlZCwgQ2FsbFNldENoYW5nZWQgfTsKIAogY2xhc3MgQW5pbWF0aW9uQ29udHJvbGxlclByaXZh
dGUgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRl
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUoRnJhbWUm
KTsKICAgICB+QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUoKTsKQEAgLTY5LDggKzU3LDggQEAg
cHVibGljOgogCiAgICAgdm9pZCB1cGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hlckZpcmVkKCk7
CiAgICAgdm9pZCBzdGFydFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCk7Ci0gICAgdm9p
ZCBhZGRFdmVudFRvRGlzcGF0Y2goUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50LCBjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUgZWxhcHNl
ZFRpbWUpOwotICAgIHZvaWQgYWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2goUmVmPEVsZW1lbnQ+
JiYpOworICAgIHZvaWQgYWRkRXZlbnRUb0Rpc3BhdGNoKEVsZW1lbnQmLCBjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUp
OworICAgIHZvaWQgYWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2goRWxlbWVudCYpOwogCiAgICAg
Ym9vbCBoYXNBbmltYXRpb25zKCkgY29uc3QgeyByZXR1cm4gIW1fY29tcG9zaXRlQW5pbWF0aW9u
cy5pc0VtcHR5KCk7IH0KIApAQCAtMTM0LDIxICsxMjIsMTkgQEAgcHJpdmF0ZToKICAgICBUaW1l
ciBtX2FuaW1hdGlvblRpbWVyOwogICAgIFRpbWVyIG1fdXBkYXRlU3R5bGVJZk5lZWRlZERpc3Bh
dGNoZXI7CiAgICAgRnJhbWUmIG1fZnJhbWU7Ci0gICAgCi0gICAgY2xhc3MgRXZlbnRUb0Rpc3Bh
dGNoIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50OworCisg
ICAgc3RydWN0IEV2ZW50VG9EaXNwYXRjaCB7CisgICAgICAgIFJlZjxFbGVtZW50PiBlbGVtZW50
OwogICAgICAgICBBdG9taWNTdHJpbmcgZXZlbnRUeXBlOwogICAgICAgICBTdHJpbmcgbmFtZTsK
ICAgICAgICAgZG91YmxlIGVsYXBzZWRUaW1lOwogICAgIH07Ci0gICAgCiAgICAgVmVjdG9yPEV2
ZW50VG9EaXNwYXRjaD4gbV9ldmVudHNUb0Rpc3BhdGNoOwogICAgIFZlY3RvcjxSZWY8RWxlbWVu
dD4+IG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoOwogICAgIAogICAgIGRvdWJsZSBtX2JlZ2lu
QW5pbWF0aW9uVXBkYXRlVGltZTsKIAotICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8QW5pbWF0
aW9uQmFzZT4+IEFuaW1hdGlvbnNTZXQ7CisgICAgdXNpbmcgQW5pbWF0aW9uc1NldCA9IEhhc2hT
ZXQ8UmVmUHRyPEFuaW1hdGlvbkJhc2U+PjsKICAgICBBbmltYXRpb25zU2V0IG1fYW5pbWF0aW9u
c1dhaXRpbmdGb3JTdHlsZTsKICAgICBBbmltYXRpb25zU2V0IG1fYW5pbWF0aW9uc1dhaXRpbmdG
b3JTdGFydFRpbWVSZXNwb25zZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCmluZGV4IDlmNmI5MTdjNmVjMWM2ZmVi
YmE2OTQwYTE2NzA1YmRiZDVhYzc0Y2YuLjhjNTQwM2E0YzE5NjM3YWE2MjFkZTZhNDA3MTYwNzFh
ZTc4MzUwMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1By
b3BlcnR5QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9D
U1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKQEAgLTEyNSw3ICsxMjUsNyBAQCBzdGF0aWMgaW5saW5l
IFRyYW5zZm9ybU9wZXJhdGlvbnMgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW1h
dGlvbiwgY29ucwogICAgIHJldHVybiB0by5ibGVuZEJ5VXNpbmdNYXRyaXhJbnRlcnBvbGF0aW9u
KGZyb20sIHByb2dyZXNzLCBpczxSZW5kZXJCb3g+KCphbmltYXRpb24tPnJlbmRlcmVyKCkpID8g
ZG93bmNhc3Q8UmVuZGVyQm94PigqYW5pbWF0aW9uLT5yZW5kZXJlcigpKS5ib3JkZXJCb3hSZWN0
KCkuc2l6ZSgpIDogTGF5b3V0U2l6ZSgpKTsKIH0KIAotc3RhdGljIGlubGluZSBQYXNzUmVmUHRy
PENsaXBQYXRoT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIENsaXBQ
YXRoT3BlcmF0aW9uKiBmcm9tLCBDbGlwUGF0aE9wZXJhdGlvbiogdG8sIGRvdWJsZSBwcm9ncmVz
cykKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29u
c3QgQW5pbWF0aW9uQmFzZSosIENsaXBQYXRoT3BlcmF0aW9uKiBmcm9tLCBDbGlwUGF0aE9wZXJh
dGlvbiogdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAoIWZyb20gfHwgIXRvKQogICAg
ICAgICByZXR1cm4gdG87CkBAIC0xNDMsNyArMTQzLDcgQEAgc3RhdGljIGlubGluZSBQYXNzUmVm
UHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIENs
aXAKICAgICByZXR1cm4gU2hhcGVDbGlwUGF0aE9wZXJhdGlvbjo6Y3JlYXRlKHRvU2hhcGUuYmxl
bmQoZnJvbVNoYXBlLCBwcm9ncmVzcykpOwogfQogCi1zdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8
U2hhcGVWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBTaGFwZVZhbHVlKiBm
cm9tLCBTaGFwZVZhbHVlKiB0bywgZG91YmxlIHByb2dyZXNzKQorc3RhdGljIGlubGluZSBSZWZQ
dHI8U2hhcGVWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBTaGFwZVZhbHVl
KiBmcm9tLCBTaGFwZVZhbHVlKiB0bywgZG91YmxlIHByb2dyZXNzKQogewogICAgIGlmICghZnJv
bSB8fCAhdG8pCiAgICAgICAgIHJldHVybiB0bzsKQEAgLTE2Myw3ICsxNjMsNyBAQCBzdGF0aWMg
aW5saW5lIFBhc3NSZWZQdHI8U2hhcGVWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJh
c2UqLCBTaGFwZVZhbHVlKgogICAgIHJldHVybiBTaGFwZVZhbHVlOjpjcmVhdGUodG9TaGFwZS5i
bGVuZChmcm9tU2hhcGUsIHByb2dyZXNzKSwgdG8tPmNzc0JveCgpKTsKIH0KIAotc3RhdGljIGlu
bGluZSBQYXNzUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlv
bkJhc2UqIGFuaW1hdGlvbiwgRmlsdGVyT3BlcmF0aW9uKiBmcm9tT3AsIEZpbHRlck9wZXJhdGlv
biogdG9PcCwgZG91YmxlIHByb2dyZXNzLCBib29sIGJsZW5kVG9QYXNzdGhyb3VnaCA9IGZhbHNl
KQorc3RhdGljIGlubGluZSBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29uc3Qg
QW5pbWF0aW9uQmFzZSogYW5pbWF0aW9uLCBGaWx0ZXJPcGVyYXRpb24qIGZyb21PcCwgRmlsdGVy
T3BlcmF0aW9uKiB0b09wLCBkb3VibGUgcHJvZ3Jlc3MsIGJvb2wgYmxlbmRUb1Bhc3N0aHJvdWdo
ID0gZmFsc2UpCiB7CiAgICAgQVNTRVJUKHRvT3ApOwogICAgIGlmICh0b09wLT5ibGVuZGluZ05l
ZWRzUmVuZGVyZXJTaXplKCkpIHsKQEAgLTIxOCw3ICsyMTgsNyBAQCBzdGF0aWMgaW5saW5lIEZp
bHRlck9wZXJhdGlvbnMgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIGNvbnN0
IEZpbHRlcgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0
cjxTdHlsZUltYWdlPiBibGVuZEZpbHRlcihjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBDYWNo
ZWRJbWFnZSogaW1hZ2UsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZyb20sIGNvbnN0IEZpbHRl
ck9wZXJhdGlvbnMmIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5lIFJlZlB0cjxT
dHlsZUltYWdlPiBibGVuZEZpbHRlcihjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBDYWNoZWRJ
bWFnZSogaW1hZ2UsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZyb20sIGNvbnN0IEZpbHRlck9w
ZXJhdGlvbnMmIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgQVNTRVJUKGltYWdlKTsKICAg
ICBGaWx0ZXJPcGVyYXRpb25zIGZpbHRlclJlc3VsdCA9IGJsZW5kRmlsdGVyT3BlcmF0aW9ucyhh
bmltLCBmcm9tLCB0bywgcHJvZ3Jlc3MpOwpAQCAtMjc4LDcgKzI3OCw3IEBAIHN0YXRpYyBpbmxp
bmUgVmVjdG9yPFNWR0xlbmd0aFZhbHVlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSos
IGNvbnN0IFZlY3RvCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIGlubGluZSBQYXNz
UmVmUHRyPFN0eWxlSW1hZ2U+IGNyb3NzZmFkZUJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBT
dHlsZUNhY2hlZEltYWdlKiBmcm9tU3R5bGVJbWFnZSwgU3R5bGVDYWNoZWRJbWFnZSogdG9TdHls
ZUltYWdlLCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5lIFJlZlB0cjxTdHlsZUltYWdl
PiBjcm9zc2ZhZGVCbGVuZChjb25zdCBBbmltYXRpb25CYXNlKiwgU3R5bGVDYWNoZWRJbWFnZSog
ZnJvbVN0eWxlSW1hZ2UsIFN0eWxlQ2FjaGVkSW1hZ2UqIHRvU3R5bGVJbWFnZSwgZG91YmxlIHBy
b2dyZXNzKQogewogICAgIC8vIElmIHByb2dyZXNzIGlzIGF0IG9uZSBvZiB0aGUgZXh0cmVtZXMs
IHdlIHdhbnQgZ2V0Q29tcHV0ZWRTdHlsZSB0byBzaG93IHRoZSBpbWFnZSwKICAgICAvLyBub3Qg
YSBjb21wbGV0ZWQgY3Jvc3MtZmFkZSwgc28gd2UgaGFuZCBiYWNrIG9uZSBvZiB0aGUgZXhpc3Rp
bmcgaW1hZ2VzLgpAQCAtMjk1LDcgKzI5NSw3IEBAIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxT
dHlsZUltYWdlPiBjcm9zc2ZhZGVCbGVuZChjb25zdCBBbmltYXRpb25CYXNlKiwgU3R5bGVDCiAg
ICAgcmV0dXJuIFN0eWxlR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZShXVEZNb3ZlKGNyb3NzZmFkZVZh
bHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBibGVuZEZ1
bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgU3R5bGVJbWFnZSogZnJvbSwgU3R5bGVJbWFn
ZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPFN0eWxlSW1hZ2U+
IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBTdHlsZUltYWdlKiBmcm9tLCBT
dHlsZUltYWdlKiB0bywgZG91YmxlIHByb2dyZXNzKQogewogICAgIGlmICghZnJvbSB8fCAhdG8p
CiAgICAgICAgIHJldHVybiB0bzsKQEAgLTM2NCwxMSArMzY0LDEyIEBAIHN0YXRpYyBpbmxpbmUg
TmluZVBpZWNlSW1hZ2UgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIGNvbnN0
IE5pbmVQaWVjCiAgICAgaWYgKGZyb20uaW1hZ2UoKS0+aW1hZ2VTaXplKGFuaW0tPnJlbmRlcmVy
KCksIDEuMCkgIT0gdG8uaW1hZ2UoKS0+aW1hZ2VTaXplKGFuaW0tPnJlbmRlcmVyKCksIDEuMCkp
CiAgICAgICAgIHJldHVybiB0bzsKIAotICAgIGF1dG8gbmV3Q29udGVudEltYWdlID0gYmxlbmRG
dW5jKGFuaW0sIGZyb20uaW1hZ2UoKSwgdG8uaW1hZ2UoKSwgcHJvZ3Jlc3MpOwotICAgIHJldHVy
biBOaW5lUGllY2VJbWFnZShuZXdDb250ZW50SW1hZ2UsIGZyb20uaW1hZ2VTbGljZXMoKSwgZnJv
bS5maWxsKCksIGZyb20uYm9yZGVyU2xpY2VzKCksIGZyb20ub3V0c2V0KCksIGZyb20uaG9yaXpv
bnRhbFJ1bGUoKSwgZnJvbS52ZXJ0aWNhbFJ1bGUoKSk7CisgICAgcmV0dXJuIE5pbmVQaWVjZUlt
YWdlKGJsZW5kRnVuYyhhbmltLCBmcm9tLmltYWdlKCksIHRvLmltYWdlKCksIHByb2dyZXNzKSwK
KyAgICAgICAgZnJvbS5pbWFnZVNsaWNlcygpLCBmcm9tLmZpbGwoKSwgZnJvbS5ib3JkZXJTbGlj
ZXMoKSwgZnJvbS5vdXRzZXQoKSwgZnJvbS5ob3Jpem9udGFsUnVsZSgpLCBmcm9tLnZlcnRpY2Fs
UnVsZSgpKTsKIH0KIAogI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCisKIHN0YXRpYyBpbmxp
bmUgRm9udFZhcmlhdGlvblNldHRpbmdzIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBh
bmltLCBjb25zdCBGb250VmFyaWF0aW9uU2V0dGluZ3MmIGZyb20sIGNvbnN0IEZvbnRWYXJpYXRp
b25TZXR0aW5ncyYgdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAoZnJvbS5zaXplKCkg
IT0gdG8uc2l6ZSgpKQpAQCAtMzg1LDYgKzM4Niw3IEBAIHN0YXRpYyBpbmxpbmUgRm9udFZhcmlh
dGlvblNldHRpbmdzIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25zdCBG
CiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CisKICNlbmRpZgogCiBjbGFzcyBBbmltYXRp
b25Qcm9wZXJ0eVdyYXBwZXJCYXNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCmluZGV4IDViNzRlNzY3ODI4YzQ1YTU2Mjll
MTlmZTI2MDUzODNjMmE1ZjZlOGEuLjY2OTkyNzA3YjFlZWFiMTg0M2ZlMDM5YWFjNjJkZTMwYzQ0
MzAyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0
ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9z
aXRlQW5pbWF0aW9uLmNwcApAQCAtMTIxLDggKzEyMSw4IEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0
aW9uOjp1cGRhdGVUcmFuc2l0aW9ucyhSZW5kZXJFbGVtZW50KiByZW5kZXJlciwgY29uc3QgUmVu
ZGVyCiAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBydW5uaW5nIGFuaW1hdGlvbiBm
b3IgdGhpcyBwcm9wZXJ0eSwgdGhlIHRyYW5zaXRpb24gaXMgb3ZlcnJpZGRlbgogICAgICAgICAg
ICAgICAgIC8vIGFuZCB3ZSBoYXZlIHRvIHVzZSB0aGUgdW5hbmltYXRlZFN0eWxlIGZyb20gdGhl
IGFuaW1hdGlvbi4gV2UgZG8gdGhlIHRlc3QKICAgICAgICAgICAgICAgICAvLyBhZ2FpbnN0IHRo
ZSB1bmFuaW1hdGVkIHN0eWxlIGhlcmUsIGJ1dCB3ZSAib3ZlcnJpZGUiIHRoZSB0cmFuc2l0aW9u
IGxhdGVyLgotICAgICAgICAgICAgICAgIFJlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4ga2V5ZnJh
bWVBbmltID0gZ2V0QW5pbWF0aW9uRm9yUHJvcGVydHkocHJvcCk7Ci0gICAgICAgICAgICAgICAg
YXV0byogZnJvbVN0eWxlID0ga2V5ZnJhbWVBbmltID8ga2V5ZnJhbWVBbmltLT51bmFuaW1hdGVk
U3R5bGUoKSA6IGN1cnJlbnRTdHlsZTsKKyAgICAgICAgICAgICAgICBhdXRvKiBrZXlmcmFtZUFu
aW1hdGlvbiA9IGFuaW1hdGlvbkZvclByb3BlcnR5KHByb3ApOworICAgICAgICAgICAgICAgIGF1
dG8qIGZyb21TdHlsZSA9IGtleWZyYW1lQW5pbWF0aW9uID8ga2V5ZnJhbWVBbmltYXRpb24tPnVu
YW5pbWF0ZWRTdHlsZSgpIDogY3VycmVudFN0eWxlOwogCiAgICAgICAgICAgICAgICAgLy8gU2Vl
IGlmIHRoZXJlIGlzIGEgY3VycmVudCB0cmFuc2l0aW9uIGZvciB0aGlzIHByb3AKICAgICAgICAg
ICAgICAgICBJbXBsaWNpdEFuaW1hdGlvbiogaW1wbEFuaW0gPSBtX3RyYW5zaXRpb25zLmdldChw
cm9wKTsKQEAgLTE3Miw3ICsxNzIsNyBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRl
VHJhbnNpdGlvbnMoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNvbnN0IFJlbmRlcgogICAgICAg
ICAgICAgICAgICAgICBMT0coQW5pbWF0aW9ucywgIkNyZWF0ZWQgSW1wbGljaXRBbmltYXRpb24g
JXAgb24gcmVuZGVyZXIgJXAgZm9yIHByb3BlcnR5ICVzIGR1cmF0aW9uICUuMmYgZGVsYXkgJS4y
ZiIsIGltcGxpY2l0QW5pbWF0aW9uLnB0cigpLCByZW5kZXJlciwgZ2V0UHJvcGVydHlOYW1lKHBy
b3ApLCBhbmltYXRpb24uZHVyYXRpb24oKSwgYW5pbWF0aW9uLmRlbGF5KCkpOwogICAgICAgICAg
ICAgICAgICAgICBtX3RyYW5zaXRpb25zLnNldChwcm9wLCBXVEZNb3ZlKGltcGxpY2l0QW5pbWF0
aW9uKSk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAorCiAgICAgICAgICAg
ICAgICAgLy8gV2Ugb25seSBuZWVkIG9uZSBwYXNzIGZvciB0aGUgc2luZ2xlIHByb3AgY2FzZQog
ICAgICAgICAgICAgICAgIGlmICghYWxsKQogICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAg
LTM5OSwyMSArMzk5LDIxIEBAIGRvdWJsZSBDb21wb3NpdGVBbmltYXRpb246OnRpbWVUb05leHRT
ZXJ2aWNlKCkgY29uc3QKICAgICByZXR1cm4gbWluVDsKIH0KIAotUGFzc1JlZlB0cjxLZXlmcmFt
ZUFuaW1hdGlvbj4gQ29tcG9zaXRlQW5pbWF0aW9uOjpnZXRBbmltYXRpb25Gb3JQcm9wZXJ0eShD
U1NQcm9wZXJ0eUlEIHByb3BlcnR5KSBjb25zdAorS2V5ZnJhbWVBbmltYXRpb24qIENvbXBvc2l0
ZUFuaW1hdGlvbjo6YW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkg
Y29uc3QKIHsKLSAgICBSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IHJldHZhbDsKLSAgICAKKyAg
ICBLZXlmcmFtZUFuaW1hdGlvbiogcmVzdWx0ID0gbnVsbHB0cjsKKwogICAgIC8vIFdlIHdhbnQg
dG8gc2VuZCBiYWNrIHRoZSBsYXN0IGFuaW1hdGlvbiB3aXRoIHRoZSBwcm9wZXJ0eSBpZiB0aGVy
ZSBhcmUgbXVsdGlwbGVzLgogICAgIC8vIFNvIHdlIG5lZWQgdG8gaXRlcmF0ZSB0aHJvdWdoIGFs
bCBhbmltYXRpb25zCiAgICAgaWYgKCFtX2tleWZyYW1lQW5pbWF0aW9ucy5pc0VtcHR5KCkpIHsK
ICAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbnMuY2hlY2tDb25zaXN0ZW5jeSgpOwogICAgICAg
ICBmb3IgKGF1dG8mIGFuaW1hdGlvbiA6IG1fa2V5ZnJhbWVBbmltYXRpb25zLnZhbHVlcygpKSB7
CiAgICAgICAgICAgICBpZiAoYW5pbWF0aW9uLT5oYXNBbmltYXRpb25Gb3JQcm9wZXJ0eShwcm9w
ZXJ0eSkpCi0gICAgICAgICAgICAgICAgcmV0dmFsID0gYW5pbWF0aW9uOworICAgICAgICAgICAg
ICAgIHJlc3VsdCA9IGFuaW1hdGlvbi5nZXQoKTsKICAgICAgICAgfQogICAgIH0KLSAgICAKLSAg
ICByZXR1cm4gcmV0dmFsOworCisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBDb21wb3Np
dGVBbmltYXRpb246OmNvbXB1dGVFeHRlbnRPZlRyYW5zZm9ybUFuaW1hdGlvbihMYXlvdXRSZWN0
JiBib3VuZHMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9Db21wb3NpdGVBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Nv
bXBvc2l0ZUFuaW1hdGlvbi5oCmluZGV4IDMzN2ZlNmYxNjZlNzFjMWNlNjE5YWUyMzg4OTMxMTg3
ZmY4NjQ3Y2MuLjQwYzNhNDkxZjJhNTQ4ZWIzZTJiMzMxNmM0ZjBmZmUwNTMyMTM5MDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5o
CkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNBbmltYXRpbmdQcm9wZXJ0
eShDU1NQcm9wZXJ0eUlELCBib29sIGFjY2VsZXJhdGVkT25seSwgQW5pbWF0aW9uQmFzZTo6UnVu
bmluZ1N0YXRlKSBjb25zdDsKIAotICAgIFBhc3NSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IGdl
dEFuaW1hdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQpIGNvbnN0OworICAgIEtleWZyYW1l
QW5pbWF0aW9uKiBhbmltYXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKIAog
ICAgIHZvaWQgb3ZlcnJpZGVJbXBsaWNpdEFuaW1hdGlvbnMoQ1NTUHJvcGVydHlJRCk7CiAgICAg
dm9pZCByZXN1bWVPdmVycmlkZGVuSW1wbGljaXRBbmltYXRpb25zKENTU1Byb3BlcnR5SUQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24u
Y3BwCmluZGV4IDcxNmJlYTgyNDkwNDkyYzQzYmNlMTc3NDlkMWZmYjUyMTI3Y2NjZmYuLmZkZWQ2
MjNhNmFkZGE5MjRhYjc2MzYzZTI0NjljYmNhMzJjYmZiNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKQEAgLTE2MywxMCAr
MTYzLDkgQEAgdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6b25BbmltYXRpb25FbmQoZG91YmxlIGVs
YXBzZWRUaW1lKQogICAgIC8vIHJ1bm5pbmcuIEJ1dCBub3cgdGhhdCB0aGUgdHJhbnNpdGlvbiBo
YXMgY29tcGxldGVkLCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGlzIHN0eWxlIHdpdGggaXRzIG5ldwog
ICAgIC8vIGRlc3RpbmF0aW9uLiBJZiB3ZSBkaWRuJ3QsIHRoZSBuZXh0IHRpbWUgdGhyb3VnaCB3
ZSB3b3VsZCB0aGluayBhIHRyYW5zaXRpb24gaGFkIHN0YXJ0ZWQKICAgICAvLyAoY29tcGFyaW5n
IHRoZSBvbGQgdW5hbmltYXRlZCBzdHlsZSB3aXRoIHRoZSBuZXcgZmluYWwgc3R5bGUgb2YgdGhl
IHRyYW5zaXRpb24pLgotICAgIFJlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4ga2V5ZnJhbWVBbmlt
ID0gbV9jb21wb3NpdGVBbmltYXRpb24tPmdldEFuaW1hdGlvbkZvclByb3BlcnR5KG1fYW5pbWF0
aW5nUHJvcGVydHkpOwotICAgIGlmIChrZXlmcmFtZUFuaW0pCi0gICAgICAgIGtleWZyYW1lQW5p
bS0+c2V0VW5hbmltYXRlZFN0eWxlKFJlbmRlclN0eWxlOjpjbG9uZVB0cigqbV90b1N0eWxlKSk7
Ci0gICAgCisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbiA9IG1fY29tcG9zaXRlQW5pbWF0aW9uLT5h
bmltYXRpb25Gb3JQcm9wZXJ0eShtX2FuaW1hdGluZ1Byb3BlcnR5KSkKKyAgICAgICAgYW5pbWF0
aW9uLT5zZXRVbmFuaW1hdGVkU3R5bGUoUmVuZGVyU3R5bGU6OmNsb25lUHRyKCptX3RvU3R5bGUp
KTsKKwogICAgIHNlbmRUcmFuc2l0aW9uRXZlbnQoZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRF
dmVudCwgZWxhcHNlZFRpbWUpOwogICAgIGVuZEFuaW1hdGlvbigpOwogfQpAQCAtMTg3LDcgKzE4
Niw3IEBAIGJvb2wgSW1wbGljaXRBbmltYXRpb246OnNlbmRUcmFuc2l0aW9uRXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGRvdWJsCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgICAgICAgICAvLyBTY2hlZHVsZSBldmVudCBoYW5kbGluZwotICAgICAgICAg
ICAgbV9jb21wb3NpdGVBbmltYXRpb24tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS5hZGRFdmVudFRv
RGlzcGF0Y2goZWxlbWVudCwgZXZlbnRUeXBlLCBwcm9wZXJ0eU5hbWUsIGVsYXBzZWRUaW1lKTsK
KyAgICAgICAgICAgIG1fY29tcG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Db250cm9sbGVyKCku
YWRkRXZlbnRUb0Rpc3BhdGNoKCplbGVtZW50LCBldmVudFR5cGUsIHByb3BlcnR5TmFtZSwgZWxh
cHNlZFRpbWUpOwogCiAgICAgICAgICAgICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5hbCAodW5hbmlt
YXRlZCkgc3R5bGUKICAgICAgICAgICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnRy
YW5zaXRpb25lbmRFdmVudCAmJiBlbGVtZW50LT5yZW5kZXJlcigpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCmluZGV4IDQ3MWJh
Y2Y2ZjFiOWYwNWNlMWQzNGRhODc1ZmU4YzY3Yzk0ZmY1N2QuLmRjMjlkMjIzOTFiMDM0YmRjZWU1
NjZmM2IyYTVjMzE3YTBkZDAwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKQEAgLTMyNyw3ICszMjcsNyBAQCBib29sIEtl
eWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIGRvdWJsZQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIC8v
IFNjaGVkdWxlIGV2ZW50IGhhbmRsaW5nCi0gICAgICAgIG1fY29tcG9zaXRlQW5pbWF0aW9uLT5h
bmltYXRpb25Db250cm9sbGVyKCkuYWRkRXZlbnRUb0Rpc3BhdGNoKGVsZW1lbnQsIGV2ZW50VHlw
ZSwgbV9rZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpLCBlbGFwc2VkVGltZSk7CisgICAgICAgIG1f
Y29tcG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Db250cm9sbGVyKCkuYWRkRXZlbnRUb0Rpc3Bh
dGNoKCplbGVtZW50LCBldmVudFR5cGUsIG1fa2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSwgZWxh
cHNlZFRpbWUpOwogCiAgICAgICAgIC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsICh1bmFuaW1hdGVk
KSBzdHlsZQogICAgICAgICBpZiAoKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkud2Via2l0QW5p
bWF0aW9uRW5kRXZlbnQgfHwgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5hbmltYXRpb25lbmRF
dmVudCkgJiYgZWxlbWVudC0+cmVuZGVyZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9F
dmVudEhhbmRsZXJFZmwuY3BwCmluZGV4IDIxMDZkMWUxOWE0ODZhMzg1ZmZlODdmOTAwZmFhZmU5
MDhiY2FjMTIuLmFhZDA3ZDZmZjZiMTdlY2RkNzE3MTFlNDFlZjViNGUwM2VlMDA1MWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcApAQCAtNDksNyArNDks
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjb25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0
RHJhZ0RlbGF5ID0gMC4wOwogI2VuZGlmCiAKLWJvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxG
b3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCopIGNvbnN0Citib29sIEV2ZW50SGFuZGxlcjo6dGFi
c1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQmKSBjb25zdAogewogICAgIHJldHVybiB0
cnVlOwogfQpAQCAtOTYsMTAgKzk2LDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp3aWRnZXREaWRI
YW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIFdpCiB9CiAK
ICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50
SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAorCitSZWY8RGF0YVRy
YW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QK
IHsKICAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwogfQor
CiAjZW5kaWYKIAogYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZy
YW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAKaW5kZXggNDNmMDUz
NzVlNWJkZTYxNGY5MDhhN2MxNTRkODJkN2IwOGVjZTI0Yi4uYWFhZGUwMDJjNWM4OWJkY2VjMDI1
MzY1YjAxOTdhNTAxOTZjMmI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsv
RXZlbnRIYW5kbGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9FdmVudEhh
bmRsZXJHdGsuY3BwCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNvbnN0
IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgPSAwLjA7CiAjZW5kaWYKIAotYm9v
bCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KikgY29u
c3QKK2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVu
dCYpIGNvbnN0CiB7CiAgICAgLy8gV2UgYWx3YXlzIGFsbG93IHRhYnMgdG8gYWxsIGNvbnRyb2xz
CiAgICAgcmV0dXJuIHRydWU7CkBAIC05NiwxMCArOTYsMTIgQEAgYm9vbCBFdmVudEhhbmRsZXI6
OndpZGdldERpZEhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVu
dCwgV2kKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNzUmVmUHRyPERhdGFUcmFu
c2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CisK
K1JlZjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNm
ZXIoKSBjb25zdAogewogICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdBbmRE
cm9wKCk7CiB9CisKICNlbmRpZgogCiBib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUHJlc3NF
dmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBGcmFtZSog
c3ViZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRs
ZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KaW5k
ZXggNTI0ZmI1YWVhNWIzZDUyMzZiOTQxZDdhZDI1ODhiNDg5Y2JkYTdhMC4uMjliYWRlZjU5NTU4
NGEzZmNlNTNjYTJmODI0MWU0ZjZlZmQ3NTRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9z
L0V2ZW50SGFuZGxlcklPUy5tbQpAQCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVy
Ojp0b3VjaEV2ZW50KFdlYkV2ZW50ICpldmVudCkKIH0KICNlbmRpZgogCi1ib29sIEV2ZW50SGFu
ZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqIGV2ZW50KSBjb25zdAor
Ym9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JiBl
dmVudCkgY29uc3QKIHsKICAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7CiAgICAgaWYg
KCFwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVy
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4
IGU1OTE5NzhjMDBjNDBjNjllNzczYTk3NjIxZDc2NzMzYmQ3NTFiMDIuLjY4ZDlmZmQ4ZTNjYzBh
ZTc0MDhiODBiMGJlMmM1NTkxZWNiMDRjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9F
dmVudEhhbmRsZXJNYWMubW0KQEAgLTcyMyw3ICs3MjMsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6
ZXZlbnRBY3RpdmF0ZWRWaWV3KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQpIGNvbnN0
CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogCi1QYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4g
RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CitSZWY8RGF0
YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29u
c3QKIHsKICAgICAvLyBNdXN0IGJlIGRvbmUgYmVmb3JlIG9uZHJhZ3N0YXJ0IGFkZHMgdHlwZXMg
YW5kIGRhdGEgdG8gdGhlIHBib2FyZCwKICAgICAvLyBhbHNvIGRvbmUgZm9yIHNlY3VyaXR5LCBh
cyBpdCBlcmFzZXMgZGF0YSBmcm9tIHRoZSBsYXN0IGRyYWcuCkBAIC03MzQsNyArNzM0LDcgQEAg
UGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRh
VHJhbnNmZXIoKSBjb25zdAogCiAjZW5kaWYKIAotYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0Fs
bEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KiBldmVudCkgY29uc3QKK2Jvb2wgRXZlbnRIYW5k
bGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCYgZXZlbnQpIGNvbnN0CiB7
CiAgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpOwogICAgIGlmICghcGFnZSkKQEAgLTk3
MSwxMCArOTcxLDEwIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpwbGF0Zm9ybVByZXBhcmVGb3JXaGVl
bEV2ZW50cyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsCiAgICAgICAgICAgICAgICAg
bV9mcmFtZS5tYWluRnJhbWUoKS5wdXNoTmV3TGF0Y2hpbmdTdGF0ZSgpOwogICAgICAgICAgICAg
ICAgIGxhdGNoaW5nU3RhdGUgPSBtX2ZyYW1lLm1haW5GcmFtZSgpLmxhdGNoaW5nU3RhdGUoKTsK
ICAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlLT5zZXRTdGFydGVkR2VzdHVyZUF0U2Nyb2xs
TGltaXQoZmFsc2UpOwotICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldFdoZWVsRXZl
bnRFbGVtZW50KHdoZWVsRXZlbnRUYXJnZXQpOworICAgICAgICAgICAgICAgIGxhdGNoaW5nU3Rh
dGUtPnNldFdoZWVsRXZlbnRFbGVtZW50KHdoZWVsRXZlbnRUYXJnZXQuZ2V0KCkpOwogICAgICAg
ICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldEZyYW1lKCZtX2ZyYW1lKTsKICAgICAgICAgICAg
ICAgICAvLyBGSVhNRTogV2hhdCBwcmV2ZW50cyB1cyBmcm9tIGRlbGV0aW5nIHRoaXMgc2Nyb2xs
YWJsZSBjb250YWluZXIgd2hpbGUgc3RpbGwgaG9sZGluZyBhIHBvaW50ZXIgdG8gaXQ/Ci0gICAg
ICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihzY3JvbGxh
YmxlQ29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlLT5zZXRTY3JvbGxh
YmxlQ29udGFpbmVyKHNjcm9sbGFibGVDb250YWluZXIuZ2V0KCkpOwogICAgICAgICAgICAgICAg
IGxhdGNoaW5nU3RhdGUtPnNldFdpZGdldElzTGF0Y2hlZChyZXN1bHQuaXNPdmVyV2lkZ2V0KCkp
OwogICAgICAgICAgICAgICAgIGlzT3ZlcldpZGdldCA9IGxhdGNoaW5nU3RhdGUtPndpZGdldElz
TGF0Y2hlZCgpOwogICAgICAgICAgICAgICAgIG1fZnJhbWUubWFpbkZyYW1lKCkud2hlZWxFdmVu
dERlbHRhRmlsdGVyKCktPmJlZ2luRmlsdGVyaW5nRGVsdGFzKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmgKaW5kZXggNTVlNGQ2
NTk1ZWViNjA1M2Y2YTZhOTQ1MGI5ZGFlYjgxMjhjNTI3MC4uNjViMWNlZWM2YjExMjdiMDU5NjMy
MWVjNDg4MjQ1N2RmNDFiMDRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
U2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAiUGFn
ZU92ZXJsYXkuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX19EREhpZ2hsaWdodCAq
RERIaWdobGlnaHRSZWY7CiAKQEAgLTM5LDYgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgIAogY2xhc3MgTGF5b3V0UmVjdDsKIGNsYXNzIE1haW5GcmFtZTsKKwogc3RydWN0IEdhcFJl
Y3RzOwogCiBjbGFzcyBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyIDogcHJpdmF0ZSBQYWdlT3Zl
cmxheTo6Q2xpZW50IHsKQEAgLTU0LDE0ICs1NCwxNCBAQCBwcml2YXRlOgogICAgIGNsYXNzIEhp
Z2hsaWdodCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdodD4sIHByaXZhdGUgR3JhcGhpY3NM
YXllckNsaWVudCB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEhpZ2hsaWdodCk7CiAg
ICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlRm9yU2VsZWN0
aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+
LCBQYXNzUmVmUHRyPFJhbmdlPik7Ci0gICAgICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBjcmVh
dGVGb3JUZWxlcGhvbmVOdW1iZXIoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFJldGFpblB0
cjxEREhpZ2hsaWdodFJlZj4sIFBhc3NSZWZQdHI8UmFuZ2U+KTsKKyAgICAgICAgc3RhdGljIFJl
ZjxIaWdobGlnaHQ+IGNyZWF0ZUZvclNlbGVjdGlvbihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
JiwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUmVmPFJhbmdlPiYmKTsKKyAgICAgICAgc3Rh
dGljIFJlZjxIaWdobGlnaHQ+IGNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcihTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyJiwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUmVmPFJhbmdlPiYmKTsK
ICAgICAgICAgfkhpZ2hsaWdodCgpOwogCiAgICAgICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCiAg
ICAgICAgIERESGlnaGxpZ2h0UmVmIGRkSGlnaGxpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9kZEhp
Z2hsaWdodC5nZXQoKTsgfQotICAgICAgICBSYW5nZSogcmFuZ2UoKSBjb25zdCB7IHJldHVybiBt
X3JhbmdlLmdldCgpOyB9CisgICAgICAgIFJhbmdlJiByYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cmFuZ2UuZ2V0KCk7IH0KICAgICAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIoKSBjb25zdCB7IHJl
dHVybiBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCk7IH0KIAogICAgICAgICBlbnVtIHsKQEAgLTc3LDcg
Kzc3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBzZXREREhpZ2hsaWdodChEREhpZ2hsaWdo
dFJlZik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBleHBsaWNpdCBIaWdobGlnaHQoU2Vydmlj
ZXNPdmVybGF5Q29udHJvbGxlciYsIFR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFBh
c3NSZWZQdHI8UmFuZ2U+KTsKKyAgICAgICAgSGlnaGxpZ2h0KFNlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXImLCBUeXBlLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+LCBSZWY8UmFuZ2U+JiYpOwog
CiAgICAgICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICAgICAgdm9pZCBub3RpZnlGbHVz
aFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKQEAgLTg3LDcgKzg3LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBkaWRGaW5pc2hGYWRlT3V0QW5pbWF0aW9uKCk7CiAK
ICAgICAgICAgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBtX2RkSGlnaGxpZ2h0OwotICAgICAg
ICBSZWZQdHI8UmFuZ2U+IG1fcmFuZ2U7CisgICAgICAgIFJlZjxSYW5nZT4gbV9yYW5nZTsKICAg
ICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fZ3JhcGhpY3NMYXllcjsKICAg
ICAgICAgVHlwZSBtX3R5cGU7CiAgICAgICAgIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIqIG1f
Y29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyLm1tCmluZGV4IDlhODE1YjVhZTU1OTY0OTliZGY2MTZlZDQyMTFiOWE1
MjM4MTVlNjIuLjRiMDNlMjJhZTQ2YmU4OWFlMjMxMDJmYjQ5ZmY0OTIxZDQwNDY4YmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxl
ci5tbQpAQCAtNTUsMjMgKzU1LDIyIEBAIGNvbnN0IGZsb2F0IGhpZ2hsaWdodEZhZGVBbmltYXRp
b25EdXJhdGlvbiA9IDAuMzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8U2VydmljZXNP
dmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0PiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpI
aWdobGlnaHQ6OmNyZWF0ZUZvclNlbGVjdGlvbihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiBj
b250cm9sbGVyLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBQYXNzUmVm
UHRyPFJhbmdlPiByYW5nZSkKK1JlZjxTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGln
aHQ+IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6Y3JlYXRlRm9yU2VsZWN0
aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIsIFJldGFpblB0cjxEREhp
Z2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFJlZjxSYW5nZT4mJiByYW5nZSkKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHQoY29udHJvbGxlciwgSGlnaGxpZ2h0OjpTZWxlY3Rp
b25UeXBlLCBkZEhpZ2hsaWdodCwgcmFuZ2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBI
aWdobGlnaHQoY29udHJvbGxlciwgSGlnaGxpZ2h0OjpTZWxlY3Rpb25UeXBlLCBkZEhpZ2hsaWdo
dCwgV1RGTW92ZShyYW5nZSkpKTsKIH0KIAotUmVmPFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6
OkhpZ2hsaWdodD4gU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVG
b3JUZWxlcGhvbmVOdW1iZXIoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYgY29udHJvbGxlciwg
UmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCwgUGFzc1JlZlB0cjxSYW5nZT4g
cmFuZ2UpCitSZWY8U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0PiBTZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OmNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcihT
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiBjb250cm9sbGVyLCBSZXRhaW5QdHI8RERIaWdobGln
aHRSZWY+IGRkSGlnaGxpZ2h0LCBSZWY8UmFuZ2U+JiYgcmFuZ2UpCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSGlnaGxpZ2h0KGNvbnRyb2xsZXIsIEhpZ2hsaWdodDo6VGVsZXBob25lTnVt
YmVyVHlwZSwgZGRIaWdobGlnaHQsIHJhbmdlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
SGlnaGxpZ2h0KGNvbnRyb2xsZXIsIEhpZ2hsaWdodDo6VGVsZXBob25lTnVtYmVyVHlwZSwgZGRI
aWdobGlnaHQsIFdURk1vdmUocmFuZ2UpKSk7CiB9CiAKLVNlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXI6OkhpZ2hsaWdodDo6SGlnaGxpZ2h0KFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImIGNvbnRy
b2xsZXIsIFR5cGUgdHlwZSwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpSYW5nZT4gcmFuZ2UpCi0gICAgOiBtX3JhbmdlKHJhbmdlKQor
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpIaWdobGlnaHQoU2VydmljZXNP
dmVybGF5Q29udHJvbGxlciYgY29udHJvbGxlciwgVHlwZSB0eXBlLCBSZXRhaW5QdHI8RERIaWdo
bGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBSZWY8V2ViQ29yZTo6UmFuZ2U+JiYgcmFuZ2UpCisgICAg
OiBtX3JhbmdlKFdURk1vdmUocmFuZ2UpKQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBtX2Nv
bnRyb2xsZXIoJmNvbnRyb2xsZXIpCiB7CiAgICAgQVNTRVJUKGRkSGlnaGxpZ2h0KTsKLSAgICBB
U1NFUlQobV9yYW5nZSk7CiAKICAgICBQYWdlKiBwYWdlID0gY29udHJvbGxlci5tYWluRnJhbWUo
KS5wYWdlKCk7CiAgICAgbV9ncmFwaGljc0xheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKHBh
Z2UgPyBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5ncmFwaGljc0xheWVyRmFjdG9yeSgpIDogbnVs
bHB0ciwgKnRoaXMpOwpAQCAtNDA5LDcgKzQwOCw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlcjo6YnVpbGRQb3RlbnRpYWxIaWdobGlnaHRzSWZOZWVkZWQoKQogCiAgICAgaWYgKG1f
cG90ZW50aWFsSGlnaGxpZ2h0cy5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKG1fc2VydmljZXNP
dmVybGF5KQotICAgICAgICAgICAgbV9tYWluRnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCku
dW5pbnN0YWxsUGFnZU92ZXJsYXkobV9zZXJ2aWNlc092ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRl
TW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAgICAgIG1fbWFpbkZyYW1lLnBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX3NlcnZpY2VzT3ZlcmxheSwgUGFnZU92
ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC01MjcsNyArNTI2LDcgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFBo
b25lTnVtYmVySGlnaGxpZ2h0cygpCiAgICAgICAgIENHUmVjdCBjZ1JlY3QgPSByZWN0OwogICAg
ICAgICBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0ID0gYWRvcHRDRihEREhp
Z2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJsZVJlY3RXaXRoU3R5bGVBbmREaXJlY3Rpb24o
bnVsbHB0ciwgJmNnUmVjdCwgMSwgbWFpbkZyYW1lVmlldy52aXNpYmxlQ29udGVudFJlY3QoKSwg
RERIaWdobGlnaHRTdHlsZUJ1YmJsZVN0YW5kYXJkIHwgRERIaWdobGlnaHRTdHlsZVN0YW5kYXJk
SWNvbkFycm93LCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5PLCBZRVMpKTsKIAot
ICAgICAgICBuZXdQb3RlbnRpYWxIaWdobGlnaHRzLmFkZChIaWdobGlnaHQ6OmNyZWF0ZUZvclRl
bGVwaG9uZU51bWJlcigqdGhpcywgZGRIaWdobGlnaHQsIHJhbmdlKSk7CisgICAgICAgIG5ld1Bv
dGVudGlhbEhpZ2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVy
KCp0aGlzLCBkZEhpZ2hsaWdodCwgcmFuZ2UucmVsZWFzZU5vbk51bGwoKSkpOwogICAgIH0KIAog
ICAgIHJlcGxhY2VIaWdobGlnaHRzT2ZUeXBlUHJlc2VydmluZ0VxdWl2YWxlbnRIaWdobGlnaHRz
KG5ld1BvdGVudGlhbEhpZ2hsaWdodHMsIEhpZ2hsaWdodDo6VGVsZXBob25lTnVtYmVyVHlwZSk7
CkBAIC01NzAsNyArNTY5LDcgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWls
ZFNlbGVjdGlvbkhpZ2hsaWdodCgpCiAgICAgICAgICAgICBDR1JlY3QgdmlzaWJsZVJlY3QgPSBt
YWluRnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKICAgICAgICAgICAgIFJldGFpblB0
cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQgPSBhZG9wdENGKERESGlnaGxpZ2h0Q3JlYXRl
V2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZUFuZERpcmVjdGlvbihudWxscHRyLCBjZ1Jl
Y3RzLmJlZ2luKCksIGNnUmVjdHMuc2l6ZSgpLCB2aXNpYmxlUmVjdCwgRERIaWdobGlnaHRTdHls
ZUJ1YmJsZU5vbmUgfCBEREhpZ2hsaWdodFN0eWxlU3RhbmRhcmRJY29uQXJyb3cgfCBEREhpZ2hs
aWdodFN0eWxlQnV0dG9uU2hvd0Fsd2F5cywgWUVTLCBOU1dyaXRpbmdEaXJlY3Rpb25OYXR1cmFs
LCBOTywgWUVTKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIG5ld1BvdGVudGlhbEhpZ2hs
aWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yU2VsZWN0aW9uKCp0aGlzLCBkZEhpZ2hsaWdo
dCwgc2VsZWN0aW9uUmFuZ2UpKTsKKyAgICAgICAgICAgIG5ld1BvdGVudGlhbEhpZ2hsaWdodHMu
YWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yU2VsZWN0aW9uKCp0aGlzLCBkZEhpZ2hsaWdodCwgc2Vs
ZWN0aW9uUmFuZ2UucmVsZWFzZU5vbk51bGwoKSkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC02
MzgsMTQgKzYzNyw5IEBAIGJvb2wgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6aGlnaGxpZ2h0
c0FyZUVxdWl2YWxlbnQoY29uc3QgSGlnaGxpZ2h0KiBhLCBjb25zCiB7CiAgICAgaWYgKGEgPT0g
YikKICAgICAgICAgcmV0dXJuIHRydWU7Ci0KICAgICBpZiAoIWEgfHwgIWIpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIGlmIChhLT50eXBlKCkgPT0gYi0+dHlwZSgpICYmIGFyZVJhbmdl
c0VxdWFsKGEtPnJhbmdlKCksIGItPnJhbmdlKCkpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQot
ICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gYS0+dHlwZSgpID09IGItPnR5cGUoKSAmJiBh
cmVSYW5nZXNFcXVhbCgmYS0+cmFuZ2UoKSwgJmItPnJhbmdlKCkpOwogfQogCiBTZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQqIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmZp
bmRUZWxlcGhvbmVOdW1iZXJIaWdobGlnaHRDb250YWluaW5nU2VsZWN0aW9uSGlnaGxpZ2h0KEhp
Z2hsaWdodCYgc2VsZWN0aW9uSGlnaGxpZ2h0KQpAQCAtNjY5LDcgKzY2Myw3IEBAIFNlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodCogU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6
ZmluZFRlbGVwaG9uZU51CiAgICAgICAgIGlmIChoaWdobGlnaHQtPnR5cGUoKSAhPSBIaWdobGln
aHQ6OlRlbGVwaG9uZU51bWJlclR5cGUpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAg
ICBpZiAoaGlnaGxpZ2h0LT5yYW5nZSgpLT5jb250YWlucygqYWN0aXZlU2VsZWN0aW9uUmFuZ2Up
KQorICAgICAgICBpZiAoaGlnaGxpZ2h0LT5yYW5nZSgpLmNvbnRhaW5zKCphY3RpdmVTZWxlY3Rp
b25SYW5nZSkpCiAgICAgICAgICAgICByZXR1cm4gaGlnaGxpZ2h0LmdldCgpOwogICAgIH0KIApA
QCAtODMyLDcgKzgyNiw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6aGFuZGxl
Q2xpY2soY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQsIEhpZ2hsaWdoCiAKICAgICAgICAgcGFn
ZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKHBhZ2UtPmZv
Y3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLnNlbGVjdGlvbigpLCBzZWxlY3Rl
ZFRlbGVwaG9uZU51bWJlcnMsIHdpbmRvd1BvaW50KTsKICAgICB9IGVsc2UgaWYgKGhpZ2hsaWdo
dC50eXBlKCkgPT0gSGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlKQotICAgICAgICBwYWdl
LT5jaHJvbWUoKS5jbGllbnQoKS5oYW5kbGVUZWxlcGhvbmVOdW1iZXJDbGljayhoaWdobGlnaHQu
cmFuZ2UoKS0+dGV4dCgpLCB3aW5kb3dQb2ludCk7CisgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNs
aWVudCgpLmhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGhpZ2hsaWdodC5yYW5nZSgpLnRleHQo
KSwgd2luZG93UG9pbnQpOwogfQogCiB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmRp
ZENyZWF0ZUhpZ2hsaWdodChIaWdobGlnaHQqIGhpZ2hsaWdodCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4IGU0ZTIwZDIyNzY4Yzg4MmU5
MDBiMTJiNDFmZTAyZWNkZmI0OGY2MjguLmU1OTI5YmE2M2RlNTlmNDk4M2JkOGNmOWMzMDA2NGU2
NzE3NzNjYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0
b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldp
bmRvdy5tbQpAQCAtNjQsNyArNjQsNyBAQCBAaW50ZXJmYWNlIFdlYlRleHRJbmRpY2F0b3JWaWV3
IDogTlNWaWV3IHsKICAgICBCT09MIF9mYWRpbmdPdXQ7CiB9CiAKLS0gKGluc3RhbmNldHlwZSlp
bml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooUGFzc1JlZlB0cjxUZXh0
SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yIG1hcmdpbjooTlNTaXplKW1hcmdpbiBvZmZzZXQ6KE5T
UG9pbnQpb2Zmc2V0OworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFt
ZSB0ZXh0SW5kaWNhdG9yOihUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIG1hcmdpbjooTlNT
aXplKW1hcmdpbiBvZmZzZXQ6KE5TUG9pbnQpb2Zmc2V0OwogCiAtICh2b2lkKXByZXNlbnQ7CiAt
ICh2b2lkKWhpZGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlv
bkhhbmRsZXI7CkBAIC0xNDcsMTIgKzE0NywxMiBAQCBzdGF0aWMgYm9vbCBpbmRpY2F0b3JXYW50
c01hbnVhbEFuaW1hdGlvbihjb25zdCBUZXh0SW5kaWNhdG9yJiBpbmRpY2F0b3IpCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZy
YW1lIHRleHRJbmRpY2F0b3I6KFBhc3NSZWZQdHI8VGV4dEluZGljYXRvcj4pdGV4dEluZGljYXRv
ciBtYXJnaW46KE5TU2l6ZSltYXJnaW4gb2Zmc2V0OihOU1BvaW50KW9mZnNldAorLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihUZXh0SW5k
aWNhdG9yJil0ZXh0SW5kaWNhdG9yIG1hcmdpbjooTlNTaXplKW1hcmdpbiBvZmZzZXQ6KE5TUG9p
bnQpb2Zmc2V0CiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZyYW1l
XSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfdGV4dEluZGljYXRvciA9IHRleHRJbmRp
Y2F0b3I7CisgICAgX3RleHRJbmRpY2F0b3IgPSAmdGV4dEluZGljYXRvcjsKICAgICBfbWFyZ2lu
ID0gbWFyZ2luOwogCiAgICAgc2VsZi53YW50c0xheWVyID0gWUVTOwpAQCAtNDY1LDcgKzQ2NSw4
IEBAIHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4dElu
ZGljYXRvcj4gdGV4dEluZGljYXRvciwgQ0dSCiAgICAgW21fdGV4dEluZGljYXRvcldpbmRvdyBz
ZXRPcGFxdWU6Tk9dOwogICAgIFttX3RleHRJbmRpY2F0b3JXaW5kb3cgc2V0SWdub3Jlc01vdXNl
RXZlbnRzOllFU107CiAKLSAgICBtX3RleHRJbmRpY2F0b3JWaWV3ID0gYWRvcHROUyhbW1dlYlRl
eHRJbmRpY2F0b3JWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgW21f
dGV4dEluZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS53aWR0aCwgW21fdGV4dEluZGljYXRvcldp
bmRvdyBmcmFtZV0uc2l6ZS5oZWlnaHQpIHRleHRJbmRpY2F0b3I6bV90ZXh0SW5kaWNhdG9yIG1h
cmdpbjpOU01ha2VTaXplKGhvcml6b250YWxNYXJnaW4sIHZlcnRpY2FsTWFyZ2luKSBvZmZzZXQ6
ZnJhY3Rpb25hbFRleHRPZmZzZXRdKTsKKyAgICBtX3RleHRJbmRpY2F0b3JWaWV3ID0gYWRvcHRO
UyhbW1dlYlRleHRJbmRpY2F0b3JWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgW21fdGV4dEluZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS53aWR0aCwgW21fdGV4dElu
ZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS5oZWlnaHQpCisgICAgICAgIHRleHRJbmRpY2F0b3I6
Km1fdGV4dEluZGljYXRvciBtYXJnaW46TlNNYWtlU2l6ZShob3Jpem9udGFsTWFyZ2luLCB2ZXJ0
aWNhbE1hcmdpbikgb2Zmc2V0OmZyYWN0aW9uYWxUZXh0T2Zmc2V0XSk7CiAgICAgW21fdGV4dElu
ZGljYXRvcldpbmRvdyBzZXRDb250ZW50VmlldzptX3RleHRJbmRpY2F0b3JWaWV3LmdldCgpXTsK
IAogICAgIFtbbV90YXJnZXRWaWV3IHdpbmRvd10gYWRkQ2hpbGRXaW5kb3c6bV90ZXh0SW5kaWNh
dG9yV2luZG93LmdldCgpIG9yZGVyZWQ6TlNXaW5kb3dBYm92ZV07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgK
aW5kZXggYTQzNDE3ZGNlMWM0MDEzMDg0NjkyMzgzYTEyYThjZjFhYjlkMjBiMy4uMDExYWUwZjIz
M2MwOTI2ZmVmZTBmMGQ5MDdjNWYxYTgwZjI3Mjc0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAt
MzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5jbHVk
ZSAiU2Nyb2xsaW5nVHJlZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSA8d3RmL1Bh
c3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTY5LDExICs2OCwxMSBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09SRV9F
WFBPUlQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlKik7CiAKLSAgICB2b2lkIHNldFNj
cm9sbGluZ1RyZWUoUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlPiBzY3JvbGxpbmdUcmVlKSB7IG1f
c2Nyb2xsaW5nVHJlZSA9IHNjcm9sbGluZ1RyZWU7IH0KKyAgICB2b2lkIHNldFNjcm9sbGluZ1Ry
ZWUoUmVmPFNjcm9sbGluZ1RyZWU+JiYgc2Nyb2xsaW5nVHJlZSkgeyBtX3Njcm9sbGluZ1RyZWUg
PSBXVEZNb3ZlKHNjcm9sbGluZ1RyZWUpOyB9CiAKICAgICBTY3JvbGxpbmdTdGF0ZVRyZWUqIHNj
cm9sbGluZ1N0YXRlVHJlZSgpIHsgcmV0dXJuIG1fc2Nyb2xsaW5nU3RhdGVUcmVlLmdldCgpOyB9
CiAKLSAgICBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWU+IHJlbGVhc2VTY3JvbGxpbmdUcmVlKCkg
eyByZXR1cm4gV1RGTW92ZShtX3Njcm9sbGluZ1RyZWUpOyB9CisgICAgUmVmUHRyPFNjcm9sbGlu
Z1RyZWU+IHJlbGVhc2VTY3JvbGxpbmdUcmVlKCkgeyByZXR1cm4gV1RGTW92ZShtX3Njcm9sbGlu
Z1RyZWUpOyB9CiAKICAgICB2b2lkIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9s
bChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmLCBzdGQ6Om9wdGlvbmFsPEZsb2F0
UG9pbnQ+IGxheW91dFZpZXdwb3J0T3JpZ2luLCBib29sIHByb2dyYW1tYXRpY1Njcm9sbCwgU2Ny
b2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAKaW5kZXggZTM5ZDk5ZWZiYTMw
NjhjY2IwNTViNDBkMWM3MjQzNzdkNThlMzViZS4uMDFlNjUyOWIwMmM4YzFkNzBhZTc3MzI4M2Vi
N2Y3MzAwNTc0Zjk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAKQEAgLTMxLDkgKzMxLDYgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0ZSgpCi0g
ICAgOiBtX2ZyYW1lKG51bGxwdHIpCi0gICAgLCBtX3dpZGdldElzTGF0Y2hlZChmYWxzZSkKLSAg
ICAsIG1fc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0KGZhbHNlKQogewogfQogICAgIApAQCAt
NTAsNyArNDcsNyBAQCB2b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OmNsZWFyKCkKICAgICBtX3By
ZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQgPSBudWxscHRyOwogfQogCi12b2lkIFNjcm9sbExh
dGNoaW5nU3RhdGU6OnNldFdoZWVsRXZlbnRFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxl
bWVudCkKK3ZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0V2hlZWxFdmVudEVsZW1lbnQoRWxl
bWVudCogZWxlbWVudCkKIHsKICAgICBtX3doZWVsRXZlbnRFbGVtZW50ID0gZWxlbWVudDsKIH0K
QEAgLTYwLDE0ICs1NywxNCBAQCB2b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFdpZGdldElz
TGF0Y2hlZChib29sIGlzT3ZlcldpZGdldCkKICAgICBtX3dpZGdldElzTGF0Y2hlZCA9IGlzT3Zl
cldpZGdldDsKIH0KIAotdm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRlOjpzZXRQcmV2aW91c1doZWVs
U2Nyb2xsZWRFbGVtZW50KFJlZlB0cjxFbGVtZW50PiYmIGVsZW1lbnQpCit2b2lkIFNjcm9sbExh
dGNoaW5nU3RhdGU6OnNldFByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQoRWxlbWVudCogZWxl
bWVudCkKIHsKICAgICBtX3ByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQgPSBlbGVtZW50Owog
fQogCi12b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFNjcm9sbGFibGVDb250YWluZXIoUGFz
c1JlZlB0cjxDb250YWluZXJOb2RlPiBub2RlKQordm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRlOjpz
ZXRTY3JvbGxhYmxlQ29udGFpbmVyKENvbnRhaW5lck5vZGUqIGNvbnRhaW5lcikKIHsKLSAgICBt
X3Njcm9sbGFibGVDb250YWluZXIgPSBub2RlOworICAgIG1fc2Nyb2xsYWJsZUNvbnRhaW5lciA9
IGNvbnRhaW5lcjsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oCmluZGV4IDRkYzBkZDMyMjkzYjM5MGVjOWI2NzFjZmUz
YjE5ODU3Yzk3M2M0NzguLjExZGNiZDBkYjE1NWUwNDUwMDA1NjIxYTA1MTc0NzZkMmI5MjkzYTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5n
U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGlu
Z1N0YXRlLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXIoKTsKIAog
ICAgIEVsZW1lbnQqIHdoZWVsRXZlbnRFbGVtZW50KCkgeyByZXR1cm4gbV93aGVlbEV2ZW50RWxl
bWVudC5nZXQoKTsgfQotICAgIHZvaWQgc2V0V2hlZWxFdmVudEVsZW1lbnQoUGFzc1JlZlB0cjxF
bGVtZW50Pik7CisgICAgdm9pZCBzZXRXaGVlbEV2ZW50RWxlbWVudChFbGVtZW50Kik7CiAgICAg
RnJhbWUqIGZyYW1lKCkgeyByZXR1cm4gbV9mcmFtZTsgfQogICAgIHZvaWQgc2V0RnJhbWUoRnJh
bWUqIGZyYW1lKSB7IG1fZnJhbWUgPSBmcmFtZTsgfQogCkBAIC00OSwxMCArNDksMTAgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0V2lkZ2V0SXNMYXRjaGVkKGJvb2wgaXNPdmVyV2lkZ2V0KTsKIAog
ICAgIEVsZW1lbnQqIHByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQoKSB7IHJldHVybiBtX3By
ZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQuZ2V0KCk7IH0KLSAgICB2b2lkIHNldFByZXZpb3Vz
V2hlZWxTY3JvbGxlZEVsZW1lbnQoUmVmUHRyPEVsZW1lbnQ+JiYpOworICAgIHZvaWQgc2V0UHJl
dmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudChFbGVtZW50Kik7CiAgICAgCiAgICAgQ29udGFpbmVy
Tm9kZSogc2Nyb2xsYWJsZUNvbnRhaW5lcigpIHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUNvbnRhaW5l
ci5nZXQoKTsgfQotICAgIHZvaWQgc2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihQYXNzUmVmUHRyPENv
bnRhaW5lck5vZGU+KTsKKyAgICB2b2lkIHNldFNjcm9sbGFibGVDb250YWluZXIoQ29udGFpbmVy
Tm9kZSopOwogICAgIGJvb2wgc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0KCkgY29uc3QgeyBy
ZXR1cm4gbV9zdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQ7IH0KICAgICB2b2lkIHNldFN0YXJ0
ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdChib29sIHN0YXJ0ZWRBdExpbWl0KSB7IG1fc3RhcnRlZEdl
c3R1cmVBdFNjcm9sbExpbWl0ID0gc3RhcnRlZEF0TGltaXQ7IH0KIApAQCAtNjEsMTAgKzYxLDEw
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fcHJldmlvdXNXaGVlbFNjcm9sbGVk
RWxlbWVudDsKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9zY3JvbGxhYmxlQ29udGFpbmVy
OwogCi0gICAgRnJhbWUqIG1fZnJhbWU7Ci0gICAgCi0gICAgYm9vbCBtX3dpZGdldElzTGF0Y2hl
ZDsKLSAgICBib29sIG1fc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0OworICAgIEZyYW1lKiBt
X2ZyYW1lIHsgbnVsbHB0ciB9OworCisgICAgYm9vbCBtX3dpZGdldElzTGF0Y2hlZCB7IGZhbHNl
IH07CisgICAgYm9vbCBtX3N0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdCB7IGZhbHNlIH07CiB9
OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5jcHAKaW5kZXggYzg0NTliMDVhMGQx
NjdiNWFjZWFkMTQwOTVlOTNmNmVkNzdmMjRkMC4uNjFkYTU4YTlkZWVjMGY2OGQ1ZGE2MjBlMmQ2
ZmQ4MDMxNWE3NGMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nU3RhdGVOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgU2Nyb2xsaW5n
U3RhdGVOb2RlOjpzZXRQcm9wZXJ0eUNoYW5nZWQodW5zaWduZWQgcHJvcGVydHlCaXQpCiAgICAg
bV9zY3JvbGxpbmdTdGF0ZVRyZWUuc2V0SGFzQ2hhbmdlZFByb3BlcnRpZXMoKTsKIH0KIAotUGFz
c1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVBbmRS
ZXNldChTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKK1JlZjxTY3JvbGxpbmdTdGF0
ZU5vZGU+IFNjcm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVBbmRSZXNldChTY3JvbGxpbmdTdGF0ZVRy
ZWUmIGFkb3B0aXZlVHJlZSkKIHsKICAgICBhdXRvIGNsb25lID0gdGhpcy0+Y2xvbmUoYWRvcHRp
dmVUcmVlKTsKIApAQCAtODAsNyArODAsOCBAQCBQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9k
ZT4gU2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVAogICAg
IHJlc2V0Q2hhbmdlZFByb3BlcnRpZXMoKTsKIAogICAgIGNsb25lQW5kUmVzZXRDaGlsZHJlbihj
bG9uZS5nZXQoKSwgYWRvcHRpdmVUcmVlKTsKLSAgICByZXR1cm4gV1RGTW92ZShjbG9uZSk7CisK
KyAgICByZXR1cm4gY2xvbmU7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9uZUFu
ZFJlc2V0Q2hpbGRyZW4oU2Nyb2xsaW5nU3RhdGVOb2RlJiBjbG9uZSwgU2Nyb2xsaW5nU3RhdGVU
cmVlJiBhZG9wdGl2ZVRyZWUpCkBAIC05MiwxNCArOTMsMTMgQEAgdm9pZCBTY3JvbGxpbmdTdGF0
ZU5vZGU6OmNsb25lQW5kUmVzZXRDaGlsZHJlbihTY3JvbGxpbmdTdGF0ZU5vZGUmIGNsb25lLCBT
Y3JvbGwKICAgICAgICAgY2xvbmUuYXBwZW5kQ2hpbGQoY2hpbGQtPmNsb25lQW5kUmVzZXQoYWRv
cHRpdmVUcmVlKSk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjphcHBlbmRDaGlsZChQ
YXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2hpbGROb2RlKQordm9pZCBTY3JvbGxpbmdT
dGF0ZU5vZGU6OmFwcGVuZENoaWxkKFJlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+JiYgY2hpbGROb2Rl
KQogewogICAgIGNoaWxkTm9kZS0+c2V0UGFyZW50KHRoaXMpOwogCiAgICAgaWYgKCFtX2NoaWxk
cmVuKQogICAgICAgICBtX2NoaWxkcmVuID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8UmVmUHRy
PFNjcm9sbGluZ1N0YXRlTm9kZT4+PigpOwotCi0gICAgbV9jaGlsZHJlbi0+YXBwZW5kKGNoaWxk
Tm9kZSk7CisgICAgbV9jaGlsZHJlbi0+YXBwZW5kKFdURk1vdmUoY2hpbGROb2RlKSk7CiB9CiAK
IHZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjpzZXRMYXllcihjb25zdCBMYXllclJlcHJlc2VudGF0
aW9uJiBsYXllclJlcHJlc2VudGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaAppbmRleCBiZmFkMWM0NWUwZDcxZjliYTdjMmJj
MDgyM2YxMWJlNDY4ZDY5ZWMwLi4wODdkNjE4MjlhZGU1NDYxMDYxMjA1NzViZDQxYTE2ODBlYmMx
ZDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZU5vZGUuaApAQCAtMjA2LDcgKzIwNiw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9ub2RlVHlwZSA9PSBPdmVyZmxvd1Nj
cm9sbGluZ05vZGU7IH0KIAogICAgIHZpcnR1YWwgUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xv
bmUoU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpID0gMDsKLSAgICBQYXNzUmVmUHRy
PFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xvbmVBbmRSZXNldChTY3JvbGxpbmdTdGF0ZVRyZWUmIGFk
b3B0aXZlVHJlZSk7CisgICAgUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xvbmVBbmRSZXNldChT
Y3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSk7CiAgICAgdm9pZCBjbG9uZUFuZFJlc2V0
Q2hpbGRyZW4oU2Nyb2xsaW5nU3RhdGVOb2RlJiwgU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2
ZVRyZWUpOwogCiAgICAgZW51bSB7CkBAIC0yMzgsNyArMjM4LDcgQEAgcHVibGljOgogCiAgICAg
VmVjdG9yPFJlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+PiogY2hpbGRyZW4oKSBjb25zdCB7IHJl
dHVybiBtX2NoaWxkcmVuLmdldCgpOyB9CiAKLSAgICB2b2lkIGFwcGVuZENoaWxkKFBhc3NSZWZQ
dHI8U2Nyb2xsaW5nU3RhdGVOb2RlPik7CisgICAgdm9pZCBhcHBlbmRDaGlsZChSZWY8U2Nyb2xs
aW5nU3RhdGVOb2RlPiYmKTsKIAogICAgIFN0cmluZyBzY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHQo
KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlVHJlZS5jcHAKaW5kZXggOThiNmNhZGNiNGMzNTFjZDJkNzY2NjQ2NTczZTM4NWE3
MzJmYzE0Mi4uMGJiYzFiNzMzODI3MTliNjI1OGQxMWQwNDk0MzNlMzI5ODdhM2UwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUu
Y3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVUcmVlOjpzZXRIYXNDaGFu
Z2VkUHJvcGVydGllcyhib29sIGNoYW5nZWRQcm9wZXJ0aWVzKQogI2VuZGlmCiB9CiAKLVBhc3NS
ZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZVRyZWU6OmNyZWF0ZU5vZGUo
U2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCitSZWY8
U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZVRyZWU6OmNyZWF0ZU5vZGUoU2Nyb2xs
aW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7CiAgICAgc3dp
dGNoIChub2RlVHlwZSkgewogICAgIGNhc2UgRml4ZWROb2RlOgpAQCAtODAsNyArODAsNyBAQCBQ
YXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVUcmVlOjpjcmVhdGVO
b2RlKFNjcm9sbGluZ05vZGVUeXBlCiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdTdGF0ZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIH0KICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gU2Nyb2xs
aW5nU3RhdGVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKIH0KIAogYm9vbCBTY3Jv
bGxpbmdTdGF0ZVRyZWU6Om5vZGVUeXBlQW5kUGFyZW50TWF0Y2goU2Nyb2xsaW5nU3RhdGVOb2Rl
JiBub2RlLCBTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIHBhcmVu
dElEKSBjb25zdApAQCAtMTI5LDEzICsxMjksMTMgQEAgU2Nyb2xsaW5nTm9kZUlEIFNjcm9sbGlu
Z1N0YXRlVHJlZTo6YXR0YWNoTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2wK
ICAgICAgICAgaWYgKG5vZGVUeXBlID09IEZyYW1lU2Nyb2xsaW5nTm9kZSAmJiBwYXJlbnRJRCkg
ewogICAgICAgICAgICAgaWYgKGF1dG8gb3JwaGFuZWROb2RlID0gbV9vcnBoYW5lZFN1YmZyYW1l
Tm9kZXMudGFrZShuZXdOb2RlSUQpKSB7CiAgICAgICAgICAgICAgICAgbmV3Tm9kZSA9IG9ycGhh
bmVkTm9kZS5nZXQoKTsKLSAgICAgICAgICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKFdURk1v
dmUob3JwaGFuZWROb2RlKSk7CisgICAgICAgICAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZChv
cnBoYW5lZE5vZGUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
IAogICAgICAgICBpZiAoIW5ld05vZGUpIHsKICAgICAgICAgICAgIGF1dG8gc3RhdGVOb2RlID0g
Y3JlYXRlTm9kZShub2RlVHlwZSwgbmV3Tm9kZUlEKTsKLSAgICAgICAgICAgIG5ld05vZGUgPSBz
dGF0ZU5vZGUuZ2V0KCk7CisgICAgICAgICAgICBuZXdOb2RlID0gc3RhdGVOb2RlLnB0cigpOwog
ICAgICAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZChXVEZNb3ZlKHN0YXRlTm9kZSkpOwogICAg
ICAgICB9CiAgICAgfQpAQCAtMTgyLDcgKzE4Miw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTY3JvbGxp
bmdTdGF0ZVRyZWU+IFNjcm9sbGluZ1N0YXRlVHJlZTo6Y29tbWl0KExheWVyUmVwcmVzZW50YXRp
CiAgICAgdHJlZVN0YXRlQ2xvbmUtPnNldFByZWZlcnJlZExheWVyUmVwcmVzZW50YXRpb24ocHJl
ZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbik7CiAKICAgICBpZiAobV9yb290U3RhdGVOb2RlKQot
ICAgICAgICB0cmVlU3RhdGVDbG9uZS0+c2V0Um9vdFN0YXRlTm9kZShzdGF0aWNfcG9pbnRlcl9j
YXN0PFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPihtX3Jvb3RTdGF0ZU5vZGUtPmNs
b25lQW5kUmVzZXQoKnRyZWVTdGF0ZUNsb25lKSkpOworICAgICAgICB0cmVlU3RhdGVDbG9uZS0+
c2V0Um9vdFN0YXRlTm9kZShzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8U2Nyb2xsaW5nU3RhdGVGcmFt
ZVNjcm9sbGluZ05vZGU+KG1fcm9vdFN0YXRlTm9kZS0+Y2xvbmVBbmRSZXNldCgqdHJlZVN0YXRl
Q2xvbmUpKSk7CiAKICAgICAvLyBDb3B5IHRoZSBJRHMgb2YgdGhlIG5vZGVzIHRoYXQgaGF2ZSBi
ZWVuIHJlbW92ZWQgc2luY2UgdGhlIGxhc3QgY29tbWl0IGludG8gdGhlIGNsb25lLgogICAgIHRy
ZWVTdGF0ZUNsb25lLT5tX25vZGVzUmVtb3ZlZFNpbmNlTGFzdENvbW1pdC5zd2FwKG1fbm9kZXNS
ZW1vdmVkU2luY2VMYXN0Q29tbWl0KTsKQEAgLTIxMSw3ICsyMTEsOCBAQCB2b2lkIFNjcm9sbGlu
Z1N0YXRlVHJlZTo6cmVtb3ZlTm9kZUFuZEFsbERlc2NlbmRhbnRzKFNjcm9sbGluZ1N0YXRlTm9k
ZSogbm9kZSwgUwogICAgIGlmIChub2RlID09IG1fcm9vdFN0YXRlTm9kZSkKICAgICAgICAgbV9y
b290U3RhdGVOb2RlID0gbnVsbHB0cjsKICAgICBlbHNlIGlmIChwYXJlbnQpIHsKLSAgICAgICAg
QVNTRVJUKHBhcmVudC0+Y2hpbGRyZW4oKSAmJiBwYXJlbnQtPmNoaWxkcmVuKCktPmZpbmQobm9k
ZSkgIT0gbm90Rm91bmQpOworICAgICAgICBBU1NFUlQocGFyZW50LT5jaGlsZHJlbigpKTsKKyAg
ICAgICAgQVNTRVJUKHBhcmVudC0+Y2hpbGRyZW4oKS0+ZmluZChub2RlKSAhPSBub3RGb3VuZCk7
CiAgICAgICAgIGlmIChhdXRvIGNoaWxkcmVuID0gcGFyZW50LT5jaGlsZHJlbigpKSB7CiAgICAg
ICAgICAgICBzaXplX3QgaW5kZXggPSBjaGlsZHJlbi0+ZmluZChub2RlKTsKICAgICAgICAgICAg
IGlmIChpbmRleCAhPSBub3RGb3VuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmgKaW5kZXggMzFmNmRiNzllN2I0MGMxYjMyZjJlYTdj
ZGNmZmM0OGYxN2JmY2UzMS4uM2IyNTYxNTFhZDc0NGJjZjAyMzRkNzJkNGZkM2EwYzc1ZDQzNjkx
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3Rh
dGVUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3Rh
dGVUcmVlLmgKQEAgLTc0LDE3ICs3NCwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmVmZXJy
ZWRMYXllclJlcHJlc2VudGF0aW9uKExheWVyUmVwcmVzZW50YXRpb246OlR5cGUgcmVwcmVzZW50
YXRpb24pIHsgbV9wcmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9uID0gcmVwcmVzZW50YXRpb247
IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIHNldFJvb3RTdGF0ZU5vZGUoUGFzc1JlZlB0cjxTY3Jv
bGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4gcm9vdFN0YXRlTm9kZSkgeyBtX3Jvb3RTdGF0
ZU5vZGUgPSByb290U3RhdGVOb2RlOyB9CisgICAgdm9pZCBzZXRSb290U3RhdGVOb2RlKFJlZjxT
Y3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4mJiByb290U3RhdGVOb2RlKSB7IG1fcm9v
dFN0YXRlTm9kZSA9IFdURk1vdmUocm9vdFN0YXRlTm9kZSk7IH0KICAgICB2b2lkIGFkZE5vZGUo
U2Nyb2xsaW5nU3RhdGVOb2RlKik7CiAKLSAgICBQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9k
ZT4gY3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKKyAgICBS
ZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3Jv
bGxpbmdOb2RlSUQpOwogCiAgICAgYm9vbCBub2RlVHlwZUFuZFBhcmVudE1hdGNoKFNjcm9sbGlu
Z1N0YXRlTm9kZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgcGFyZW50SUQp
IGNvbnN0OwogCi0gICAgZW51bSBjbGFzcyBTdWJmcmFtZU5vZGVSZW1vdmFsIHsKLSAgICAgICAg
RGVsZXRlLAotICAgICAgICBPcnBoYW4KLSAgICB9OworICAgIGVudW0gY2xhc3MgU3ViZnJhbWVO
b2RlUmVtb3ZhbCB7IERlbGV0ZSwgT3JwaGFuIH07CiAgICAgdm9pZCByZW1vdmVOb2RlQW5kQWxs
RGVzY2VuZGFudHMoU2Nyb2xsaW5nU3RhdGVOb2RlKiwgU3ViZnJhbWVOb2RlUmVtb3ZhbCA9IFN1
YmZyYW1lTm9kZVJlbW92YWw6OkRlbGV0ZSk7CiAKICAgICB2b2lkIHJlY3Vyc2l2ZU5vZGVXaWxs
QmVSZW1vdmVkKFNjcm9sbGluZ1N0YXRlTm9kZSogY3Vyck5vZGUsIFN1YmZyYW1lTm9kZVJlbW92
YWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNw
cAppbmRleCBkMDBlYzVkZDliMWI3ZDRhNmQ2MWJmNWQxMzliNDk5MmU2MzdkOGVmLi40MGJjYzYz
ZmY4YzMzN2FmYmMxMGJkNGI5OWViMWMwMDNmNDc1MGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtMTc5LDcgKzE3OSw3IEBAIHZv
aWQgU2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJlZUZyb21TdGF0ZU5vZGUoY29uc3QgU2Nyb2xsaW5n
U3RhdGVOb2RlKiBzdGF0ZU5vZGUsCiAgICAgICAgIGlmIChwYXJlbnRJdCAhPSBtX25vZGVNYXAu
ZW5kKCkpIHsKICAgICAgICAgICAgIFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJlbnQgPSBwYXJlbnRJ
dC0+dmFsdWU7CiAgICAgICAgICAgICBub2RlLT5zZXRQYXJlbnQocGFyZW50KTsKLSAgICAgICAg
ICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQobm9kZSk7CisgICAgICAgICAgICBwYXJlbnQtPmFwcGVu
ZENoaWxkKCpub2RlKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTg5LDcgKzE4OSw3IEBAIHZv
aWQgU2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJlZUZyb21TdGF0ZU5vZGUoY29uc3QgU2Nyb2xsaW5n
U3RhdGVOb2RlKiBzdGF0ZU5vZGUsCiAgICAgaWYgKGF1dG8gbm9kZUNoaWxkcmVuID0gbm9kZS0+
Y2hpbGRyZW4oKSkgewogICAgICAgICBmb3IgKGF1dG8mIGNoaWxkU2Nyb2xsaW5nTm9kZSA6ICpu
b2RlQ2hpbGRyZW4pIHsKICAgICAgICAgICAgIGNoaWxkU2Nyb2xsaW5nTm9kZS0+c2V0UGFyZW50
KG51bGxwdHIpOwotICAgICAgICAgICAgb3JwaGFuTm9kZXMuYWRkKGNoaWxkU2Nyb2xsaW5nTm9k
ZS0+c2Nyb2xsaW5nTm9kZUlEKCksIGNoaWxkU2Nyb2xsaW5nTm9kZSk7CisgICAgICAgICAgICBv
cnBoYW5Ob2Rlcy5hZGQoY2hpbGRTY3JvbGxpbmdOb2RlLT5zY3JvbGxpbmdOb2RlSUQoKSwgY2hp
bGRTY3JvbGxpbmdOb2RlLmdldCgpKTsKICAgICAgICAgfQogICAgICAgICBub2RlQ2hpbGRyZW4t
PmNsZWFyKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5oCmluZGV4IDY3MzRiNTNhZGFiNWMzOTliOTMzYWMzNzdlZGU3NGI4YzJhMDVhNGQu
LmFhZjJkNDc4YmJiODAwOTVmNTU5NmM5MTQ2MDZlMmI5YjVkOGY4Y2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTc0LDcgKzc0LDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBzZXRNYWluRnJhbWVQaW5TdGF0ZShib29sIHBpbm5lZFRvVGhl
TGVmdCwgYm9vbCBwaW5uZWRUb1RoZVJpZ2h0LCBib29sIHBpbm5lZFRvVGhlVG9wLCBib29sIHBp
bm5lZFRvVGhlQm90dG9tKTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVl
Tm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGlu
Z05vZGVJRCkgPSAwOworICAgIHZpcnR1YWwgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVT
Y3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSA9IDA7
CiAKICAgICAvLyBDYWxsZWQgYWZ0ZXIgYSBzY3JvbGxpbmcgdHJlZSBub2RlIGhhcyBoYW5kbGVk
IGEgc2Nyb2xsIGFuZCB1cGRhdGVkIGl0cyBsYXllcnMuCiAgICAgLy8gVXBkYXRlcyBGcmFtZVZp
ZXcvUmVuZGVyTGF5ZXIgc2Nyb2xsaW5nIHN0YXRlIGFuZCBHcmFwaGljc0xheWVycy4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmNwcApp
bmRleCBkZWI3ODFhMWMxZjlmZGQwMzNjOTk5NWM5OTIxYzA3Mjk5MjY5YTJhLi4wZjY2MTZkMGYz
ZGMzNTc4NjMwNmZkNDY2ZjdhNjk2NDE1YjJlZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwCkBAIC00NSwyMiArNDUsMjEg
QEAgU2Nyb2xsaW5nVHJlZU5vZGU6On5TY3JvbGxpbmdUcmVlTm9kZSgpCiB7CiB9CiAKLXZvaWQg
U2Nyb2xsaW5nVHJlZU5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5v
ZGU+IGNoaWxkTm9kZSkKK3ZvaWQgU2Nyb2xsaW5nVHJlZU5vZGU6OmFwcGVuZENoaWxkKFJlZjxT
Y3JvbGxpbmdUcmVlTm9kZT4mJiBjaGlsZE5vZGUpCiB7CiAgICAgY2hpbGROb2RlLT5zZXRQYXJl
bnQodGhpcyk7CiAKICAgICBpZiAoIW1fY2hpbGRyZW4pCi0gICAgICAgIG1fY2hpbGRyZW4gPSBz
dGQ6Om1ha2VfdW5pcXVlPFNjcm9sbGluZ1RyZWVDaGlsZHJlblZlY3Rvcj4oKTsKLQotICAgIG1f
Y2hpbGRyZW4tPmFwcGVuZChjaGlsZE5vZGUpOworICAgICAgICBtX2NoaWxkcmVuID0gc3RkOjpt
YWtlX3VuaXF1ZTxWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPj4+KCk7CisgICAgbV9j
aGlsZHJlbi0+YXBwZW5kKFdURk1vdmUoY2hpbGROb2RlKSk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5n
VHJlZU5vZGU6OnJlbW92ZUNoaWxkKFNjcm9sbGluZ1RyZWVOb2RlKiBub2RlKQordm9pZCBTY3Jv
bGxpbmdUcmVlTm9kZTo6cmVtb3ZlQ2hpbGQoU2Nyb2xsaW5nVHJlZU5vZGUmIG5vZGUpCiB7CiAg
ICAgaWYgKCFtX2NoaWxkcmVuKQogICAgICAgICByZXR1cm47CiAKLSAgICBzaXplX3QgaW5kZXgg
PSBtX2NoaWxkcmVuLT5maW5kKG5vZGUpOworICAgIHNpemVfdCBpbmRleCA9IG1fY2hpbGRyZW4t
PmZpbmQoJm5vZGUpOwogCiAgICAgLy8gVGhlIGluZGV4IHdpbGwgYmUgbm90Rm91bmQgaWYgdGhl
IG5vZGUgdG8gcmVtb3ZlIGlzIGEgZGVlcGVyLXRoYW4tMS1sZXZlbCBkZXNjZW5kYW50IG9yCiAg
ICAgLy8gaWYgbm9kZSBpcyB0aGUgcm9vdCBzdGF0ZSBub2RlLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKaW5kZXggM2U4NmUzZDQ3OGQz
NDA2OTM1OWVhYTVjNmI5Y2ZiYWM2NzVjZWQwNS4uMmUxNjMyNDZiYjk2ZTMzZmVmNjJhZGE3MWI0
MWEyMTM5MjEyNzkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlTm9kZS5oCkBAIC02MCwxMSArNjAsMTAgQEAgcHVibGljOgogICAgIFNjcm9s
bGluZ1RyZWVOb2RlKiBwYXJlbnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudDsgfQogICAgIHZv
aWQgc2V0UGFyZW50KFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJlbnQpIHsgbV9wYXJlbnQgPSBwYXJl
bnQ7IH0KIAotICAgIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4+IFNj
cm9sbGluZ1RyZWVDaGlsZHJlblZlY3RvcjsKLSAgICBTY3JvbGxpbmdUcmVlQ2hpbGRyZW5WZWN0
b3IqIGNoaWxkcmVuKCkgeyByZXR1cm4gbV9jaGlsZHJlbi5nZXQoKTsgfQotICAgIAotICAgIHZv
aWQgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4pOwotICAgIHZvaWQg
cmVtb3ZlQ2hpbGQoU2Nyb2xsaW5nVHJlZU5vZGUqKTsKKyAgICBWZWN0b3I8UmVmUHRyPFNjcm9s
bGluZ1RyZWVOb2RlPj4qIGNoaWxkcmVuKCkgeyByZXR1cm4gbV9jaGlsZHJlbi5nZXQoKTsgfQor
CisgICAgdm9pZCBhcHBlbmRDaGlsZChSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+JiYpOworICAgIHZv
aWQgcmVtb3ZlQ2hpbGQoU2Nyb2xsaW5nVHJlZU5vZGUmKTsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZHVtcChUZXh0U3RyZWFtJiwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3Ip
IGNvbnN0OwogCkBAIC03Miw3ICs3MSw3IEBAIHByb3RlY3RlZDoKICAgICBTY3JvbGxpbmdUcmVl
Tm9kZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7
CiAgICAgU2Nyb2xsaW5nVHJlZSYgc2Nyb2xsaW5nVHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Ny
b2xsaW5nVHJlZTsgfQogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ1RyZWVDaGlsZHJl
blZlY3Rvcj4gbV9jaGlsZHJlbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPFJlZlB0cjxT
Y3JvbGxpbmdUcmVlTm9kZT4+PiBtX2NoaWxkcmVuOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdmly
dHVhbCB2b2lkIGR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBTY3JvbGxpbmdTdGF0ZVRyZWVB
c1RleHRCZWhhdmlvcikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IGJjYjQ4ZTQ5NWMxYjBi
ODllNzVhN2FhMzNlODVlNTk0ZDdjNWU2ODUuLmY2NjRlZDNhYzNiZTUzOGRmZjJmZTU4ODAyYTA5
NzdhYTBhYTA4OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Ro
cmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcApAQCAtMzksOCArMzksOCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLVRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6VGhyZWFkZWRTY3JvbGxpbmdU
cmVlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQotICAg
IDogbV9zY3JvbGxpbmdDb29yZGluYXRvcihzY3JvbGxpbmdDb29yZGluYXRvcikKK1RocmVhZGVk
U2Nyb2xsaW5nVHJlZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlKEFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3ImIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorICAgIDogbV9zY3JvbGxpbmdDb29yZGluYXRv
cigmc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKaW5kZXggNzMyNTQwNTlj
MmQ3NzAyMDVjZWZkYmQxNTMwYWIyNzkwNGFhNzM2My4uNmQxZDQ5ZDY3ZWNhNWZhOGQ1MmE4NThl
ZWNmNWY5M2VlOWM5NzBkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE0LTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGludmFsaWRhdGUoKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgotICAgIGV4cGxp
Y2l0IFRocmVhZGVkU2Nyb2xsaW5nVHJlZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKik7Cisg
ICAgZXhwbGljaXQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3ImKTsKIAogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qgc3RkOjpvcHRpb25h
bDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRp
b25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBvdmVycmlkZTsK
ICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFNjcm9sbGluZ05vZGVJ
RCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIG92ZXJyaWRlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJ
T1MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJ
T1MuY3BwCmluZGV4IDEwYjNmODczNDVmZGE0M2NjZGZlOWMxNWZlNDE3ZjQ2YWY1NTQ1ZWEuLjFm
MDNlNjg2ZTlmODc1OGVjNjVhOWI2ZjliNjE3ZWIyZjg2OGM2NDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5jcHAKQEAg
LTQwLDEzICs0MCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxTY3JvbGxpbmdU
cmVlSU9TPiBTY3JvbGxpbmdUcmVlSU9TOjpjcmVhdGUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCitSZWY8U2Nyb2xsaW5nVHJlZUlPUz4gU2Nyb2xsaW5n
VHJlZUlPUzo6Y3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNjcm9sbGluZ1RyZWVJT1Moc2Ny
b2xsaW5nQ29vcmRpbmF0b3IpKTsKIH0KIAotU2Nyb2xsaW5nVHJlZUlPUzo6U2Nyb2xsaW5nVHJl
ZUlPUyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvcikKLSAg
ICA6IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3Ioc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCitTY3JvbGxp
bmdUcmVlSU9TOjpTY3JvbGxpbmdUcmVlSU9TKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yKQorICAgIDogbV9zY3JvbGxpbmdDb29yZGluYXRvcigmc2Nyb2xs
aW5nQ29vcmRpbmF0b3IpCiB7CiB9CiAKQEAgLTgzLDIwICs4MywyMSBAQCB2b2lkIFNjcm9sbGlu
Z1RyZWVJT1M6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2Rl
SUQsIGNvbnN0CiAgICAgfSk7CiB9CiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFNj
cm9sbGluZ1RyZWVJT1M6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBl
IG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQorUmVmPFNjcm9sbGluZ1RyZWVOb2Rl
PiBTY3JvbGxpbmdUcmVlSU9TOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2Rl
VHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKIHsKICAgICBzd2l0Y2ggKG5v
ZGVUeXBlKSB7CiAgICAgY2FzZSBGcmFtZVNjcm9sbGluZ05vZGU6CiAgICAgICAgIHJldHVybiBT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7
CiAgICAgY2FzZSBPdmVyZmxvd1Njcm9sbGluZ05vZGU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBGaXhlZE5vZGU6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVh
dGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgY2FzZSBTdGlja3lOb2RlOgogICAgICAgICByZXR1cm4g
U2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICB9Ci0g
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKIH0KIAogRmxv
YXRSZWN0IFNjcm9sbGluZ1RyZWVJT1M6OmZpeGVkUG9zaXRpb25SZWN0KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5oCmluZGV4
IDFhOWFhZTFiNDBjODEyNjgzNDQ4NDFjZTdiMzA3NWVmNzBhN2U1NTQuLmFlYTY5YjM5ZjU5Yzk2
MTVkMTgwYWFlYTZlYjg5NzI1OWNkYWQ5NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaApAQCAtMjksMzUgKzI5LDMxIEBA
CiAKICNpbmNsdWRlICJTY3JvbGxpbmdTdGF0ZVRyZWUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdU
cmVlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvcjsKIAotY2xhc3MgU2Nyb2xsaW5nVHJlZUlPUyA6IHB1YmxpYyBTY3JvbGxpbmdUcmVlIHsK
K2NsYXNzIFNjcm9sbGluZ1RyZWVJT1MgZmluYWwgOiBwdWJsaWMgU2Nyb2xsaW5nVHJlZSB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlSU9TPiBjcmVhdGUoQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvciopOworICAgIHN0YXRpYyBSZWY8U2Nyb2xsaW5nVHJlZUlPUz4gY3Jl
YXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImKTsKICAgICB2aXJ0dWFsIH5TY3JvbGxpbmdU
cmVlSU9TKCk7CiAKLSAgICAvLyBObyB3aGVlbCBldmVudHMgb24gaU9TCi0gICAgdm9pZCBoYW5k
bGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92ZXJyaWRlIHsgfQotICAg
IEV2ZW50UmVzdWx0IHRyeVRvSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmKSBvdmVycmlkZSB7IHJldHVybiBEaWROb3RIYW5kbGVFdmVudDsgfQotCi0gICAgdm9pZCBp
bnZhbGlkYXRlKCkgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgU2Nyb2xsaW5n
VHJlZUlPUyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKik7Ci0gICAgYm9vbCBpc1Njcm9sbGlu
Z1RyZWVJT1MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAgZXhwbGljaXQg
U2Nyb2xsaW5nVHJlZUlPUyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJik7CiAKLSAgICBQYXNz
UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxp
bmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKKyAgICBib29sIGlzU2Nyb2xs
aW5nVHJlZUlPUygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZvaWQgc2Ny
b2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qgc3RkOjpvcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0
Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBvdmVycmlkZTsKKyAgICAvLyBObyB3aGVlbCBldmVu
dHMgb24gaU9TCisgICAgdm9pZCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYpIGZpbmFsIHsgfQorICAgIEV2ZW50UmVzdWx0IHRyeVRvSGFuZGxlV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBmaW5hbCB7IHJldHVybiBEaWROb3RIYW5kbGVFdmVu
dDsgfQogCi0gICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShXZWJDb3Jl
OjpTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2Fs
KSBvdmVycmlkZTsKKyAgICB2b2lkIGludmFsaWRhdGUoKSBmaW5hbDsKIAotICAgIEZsb2F0UmVj
dCBmaXhlZFBvc2l0aW9uUmVjdCgpIG92ZXJyaWRlOworICAgIFJlZjxTY3JvbGxpbmdUcmVlTm9k
ZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05v
ZGVJRCkgZmluYWw7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxp
bmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBzdGQ6Om9w
dGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpIGZpbmFs
OworICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgZmlu
YWw7CisgICAgRmxvYXRSZWN0IGZpeGVkUG9zaXRpb25SZWN0KCkgZmluYWw7CiAKICAgICBSZWZQ
dHI8QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcj4gbV9zY3JvbGxpbmdDb29yZGluYXRvcjsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
Q29vcmRpbmF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KaW5kZXggZDQzZDk0YjI0N2E2ZTRmOTM5NzQxNTgyNjE5
N2MyYjBhZGYwNzE0OC4uODYxMThiNDQ1MDA3OTQ2Y2YwZmE3ODNjNWQ1NDNlMTE5ZTllYmY2MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQpAQCAtNTQsNyArNTQsNyBAQCBTY3JvbGxpbmdDb29y
ZGluYXRvck1hYzo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMoUGFnZSogcGFnZSkKICAgICA6IEFz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IocGFnZSkKICAgICAsIG1fc2Nyb2xsaW5nU3RhdGVUcmVl
Q29tbWl0dGVyVGltZXIoKnRoaXMsICZTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6Y29tbWl0VHJl
ZVN0YXRlKQogewotICAgIHNldFNjcm9sbGluZ1RyZWUoU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRl
KHRoaXMpKTsKKyAgICBzZXRTY3JvbGxpbmdUcmVlKFNjcm9sbGluZ1RyZWVNYWM6OmNyZWF0ZSgq
dGhpcykpOwogfQogCiBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6flNjcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlTWFjLmNwcAppbmRleCA3MGRiYzA2Y2YwMTNiZjMxYjhkYTA3ZmRlMGQzOTg4
YzYxYjRkODBhLi44OTlmMWU5MDE2N2RiOGM4ZWExZmE2ZDhlYWVmNGM3MDQxMTIwNTRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1h
Yy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1Ry
ZWVNYWMuY3BwCkBAIC0zNCwzMCArMzQsMzEgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiAKLVJlZjxTY3JvbGxpbmdUcmVlTWFjPiBTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGUoQXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCitSZWY8U2Nyb2xsaW5n
VHJlZU1hYz4gU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3ImIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNj
cm9sbGluZ1RyZWVNYWMoc2Nyb2xsaW5nQ29vcmRpbmF0b3IpKTsKIH0KIAotU2Nyb2xsaW5nVHJl
ZU1hYzo6U2Nyb2xsaW5nVHJlZU1hYyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxp
bmdDb29yZGluYXRvcikKK1Njcm9sbGluZ1RyZWVNYWM6OlNjcm9sbGluZ1RyZWVNYWMoQXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvciYgc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiAgICAgOiBUaHJlYWRl
ZFNjcm9sbGluZ1RyZWUoc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiB7CiB9CiAKLVBhc3NSZWZQdHI8
U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9sbGluZ1RyZWVNYWM6OmNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQor
UmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGVTY3JvbGxpbmdU
cmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJ
RCkKIHsKICAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2FzZSBGcmFtZVNjcm9sbGluZ05v
ZGU6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpj
cmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgY2FzZSBPdmVyZmxvd1Njcm9sbGluZ05vZGU6CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaXhlZE5vZGU6CiAgICAgICAgIHJldHVybiBTY3JvbGxp
bmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgY2FzZSBTdGlja3lO
b2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OmNyZWF0ZSgqdGhp
cywgbm9kZUlEKTsKICAgICB9Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhp
cywgbm9kZUlEKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpICYmIFBM
QVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdUcmVlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZU1hYy5oCmluZGV4IDQzYTQ2Yjc3ZTg1YjQ1ZmY2MWNiMmI5YTZiYmIzMmMy
YzBlZmZhNTcuLjQ5OWZjM2ZmMTdiY2Y5NDkwYTgzNzIyNjQyZjZiYzgzYmUwMGI3ZGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFj
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVN
YWMuaApAQCAtMzEsMTQgKzMxLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3Mg
U2Nyb2xsaW5nVHJlZU1hYyA6IHB1YmxpYyBUaHJlYWRlZFNjcm9sbGluZ1RyZWUgeworY2xhc3Mg
U2Nyb2xsaW5nVHJlZU1hYyBmaW5hbCA6IHB1YmxpYyBUaHJlYWRlZFNjcm9sbGluZ1RyZWUgewog
cHVibGljOgotICAgIHN0YXRpYyBSZWY8U2Nyb2xsaW5nVHJlZU1hYz4gY3JlYXRlKEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IqKTsKKyAgICBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVNYWM+IGNy
ZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJik7CiAKLSAgICBQYXNzUmVmUHRyPFNjcm9s
bGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwg
U2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKLSAgICAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQg
U2Nyb2xsaW5nVHJlZU1hYyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKik7CisgICAgZXhwbGlj
aXQgU2Nyb2xsaW5nVHJlZU1hYyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJik7CisKKyAgICBS
ZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05v
ZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2lu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAKaW5kZXgg
NjE2MDcwOTBkMjZjOTljMWFlMjUzZjVhNGVjNWQ2NmQ1MWMzZDYxNS4uMzI0MzBjNDdiODdkMWMw
ODg0NDlhY2JkY2QwYjM2NDcxM2YwOTQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9F
dmVudEhhbmRsZXJXaW4uY3BwCkBAIC04MSw3ICs4MSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp3
aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxF
dmVuCiAgICAgcmV0dXJuIGRvd25jYXN0PEZyYW1lVmlldz4od2lkZ2V0KS5mcmFtZSgpLmV2ZW50
SGFuZGxlcigpLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiB9CiAKLWJvb2wgRXZlbnRI
YW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCopIGNvbnN0Citib29s
IEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQmKSBjb25z
dAogewogICAgIHJldHVybiB0cnVlOwogfQpAQCAtOTIsMTAgKzkyLDEyIEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjpldmVudEFjdGl2YXRlZFZpZXcoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVu
dCkgY29uc3QKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNzUmVmUHRyPERhdGFU
cmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0
CisKK1JlZjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJh
bnNmZXIoKSBjb25zdAogewogICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKCk7CiB9CisKICNlbmRpZgogCiB2b2lkIEV2ZW50SGFuZGxlcjo6Zm9jdXNEb2N1bWVu
dFZpZXcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVk
ZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9i
amVjdC5jcHAKaW5kZXggMDZhZWU5Zjk3OTYyZmJjYTgyOWNmNWUxYmUzODI1ZTZmYmQ1MmRlNC4u
NDgyYjVkZDEzNzViNmZlNzcyNjdjYjYyNmY0MTYzNmRmOGY1MzU4MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCkBAIC02MTYsNyAr
NjE2LDcgQEAgdm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6aGFuZGxlVW5hdmFpbGFibGVQbHVn
aW5JbmRpY2F0b3JFdmVudChFdmVudCogZXZlbnQpCiAgICAgICAgICAgICBzZXRVbmF2YWlsYWJs
ZVBsdWdpbkluZGljYXRvcklzUHJlc3NlZChmYWxzZSk7CiAgICAgICAgIH0KICAgICAgICAgaWYg
KG1fbW91c2VEb3duV2FzSW5VbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvciAmJiBpc0luVW5hdmFp
bGFibGVQbHVnaW5JbmRpY2F0b3IobW91c2VFdmVudCkpIHsKLSAgICAgICAgICAgIHBhZ2UoKS5j
aHJvbWUoKS5jbGllbnQoKS51bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoJmVsZW1lbnQs
IG1fcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pOworICAgICAgICAgICAgcGFnZSgpLmNocm9t
ZSgpLmNsaWVudCgpLnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChlbGVtZW50LCBtX3Bs
dWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKTsKICAgICAgICAgfQogICAgICAgICBtX21vdXNlRG93
bldhc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3IgPSBmYWxzZTsKICAgICAgICAgZXZlbnQt
PnNldERlZmF1bHRIYW5kbGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IGExYTk0YzY3YjdlNDUwZTllYzAzMDVlZTA3MDU5ZGYy
MmVjMDc2ZDQuLjYxY2FhYmY2YWZhOGU4NzAyNjg2MWI0ZmU4MDk3Y2MwOTYzNTNlZTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0x
MDcsNyArMTA3LDcgQEAgUmVuZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXllckJhY2tpbmcoUmVu
ZGVyTGF5ZXImIGxheWVyKQogewogICAgIGlmIChsYXllci5pc1Jvb3RMYXllcigpKSB7CiAgICAg
ICAgIG1faXNNYWluRnJhbWVSZW5kZXJWaWV3TGF5ZXIgPSByZW5kZXJlcigpLmZyYW1lKCkuaXNN
YWluRnJhbWUoKTsKLSAgICAgICAgbV91c2luZ1RpbGVkQ2FjaGVMYXllciA9IHJlbmRlcmVyKCku
cGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmll
dyhyZW5kZXJlcigpLmZyYW1lKCkudmlldygpKTsKKyAgICAgICAgbV91c2luZ1RpbGVkQ2FjaGVM
YXllciA9IHJlbmRlcmVyKCkucGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLnNob3VsZFVzZVRpbGVk
QmFja2luZ0ZvckZyYW1lVmlldyhyZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZpZXcoKSk7CiAgICAg
fQogICAgIAogICAgIGNyZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDEyYjYy
YzkyODdiYmZmZDllNTc5OGY3NjVkODJjNTcwMzczMWU2ZGQuLjY1ZmRjNGRmZGE0NmZiZDIyZGJi
YzM0N2E5NmIyMWMyZWVkZWMxOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0zMTAzLDcgKzMxMDMsNyBAQCBHcmFwaGlj
c0xheWVyKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUxheWVyRm9ySGVhZGVyKGJvb2wg
d2FudHNMYXllcikKICAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKICAgICAgICAgc2Nyb2xsaW5n
Q29vcmRpbmF0b3ItPmZyYW1lVmlld1Jvb3RMYXllckRpZENoYW5nZShtX3JlbmRlclZpZXcuZnJh
bWVWaWV3KCkpOwogCi0gICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmRpZEFkZEhlYWRlckxh
eWVyKG1fbGF5ZXJGb3JIZWFkZXIuZ2V0KCkpOworICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQo
KS5kaWRBZGRIZWFkZXJMYXllcigqbV9sYXllckZvckhlYWRlcik7CiAKICAgICByZXR1cm4gbV9s
YXllckZvckhlYWRlci5nZXQoKTsKIH0KQEAgLTMxNDEsNyArMzE0MSw3IEBAIEdyYXBoaWNzTGF5
ZXIqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJGb3JGb290ZXIoYm9vbCB3YW50
c0xheWVyKQogICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0
b3IgPSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQogICAgICAgICBzY3JvbGxpbmdDb29y
ZGluYXRvci0+ZnJhbWVWaWV3Um9vdExheWVyRGlkQ2hhbmdlKG1fcmVuZGVyVmlldy5mcmFtZVZp
ZXcoKSk7CiAKLSAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlkQWRkRm9vdGVyTGF5ZXIo
bV9sYXllckZvckZvb3Rlci5nZXQoKSk7CisgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmRp
ZEFkZEZvb3RlckxheWVyKCptX2xheWVyRm9yRm9vdGVyKTsKIAogICAgIHJldHVybiBtX2xheWVy
Rm9yRm9vdGVyLmdldCgpOwogfQpAQCAtMzQ2MywxMSArMzQ2MywxMSBAQCB2b2lkIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6YXR0YWNoUm9vdExheWVyKFJvb3RMYXllckF0dGFjaG1lbnQgYXR0YWNo
bWVudCkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFJvb3RMYXllckF0dGFjaGVk
VmlhQ2hyb21lQ2xpZW50OiB7CiAgICAgICAgICAgICBGcmFtZSYgZnJhbWUgPSBtX3JlbmRlclZp
ZXcuZnJhbWVWaWV3KCkuZnJhbWUoKTsKLSAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGll
bnQoKS5hdHRhY2hSb290R3JhcGhpY3NMYXllcigmZnJhbWUsIHJvb3RHcmFwaGljc0xheWVyKCkp
OworICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFJvb3RHcmFwaGlj
c0xheWVyKGZyYW1lLCByb290R3JhcGhpY3NMYXllcigpKTsKICAgICAgICAgICAgIGlmIChmcmFt
ZS5pc01haW5GcmFtZSgpKSB7CiAgICAgICAgICAgICAgICAgUGFnZU92ZXJsYXlDb250cm9sbGVy
JiBwYWdlT3ZlcmxheUNvbnRyb2xsZXIgPSBmcmFtZS5tYWluRnJhbWUoKS5wYWdlT3ZlcmxheUNv
bnRyb2xsZXIoKTsKICAgICAgICAgICAgICAgICBwYWdlT3ZlcmxheUNvbnRyb2xsZXIud2lsbEF0
dGFjaFJvb3RMYXllcigpOwotICAgICAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQo
KS5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoJmZyYW1lLCAmcGFnZU92ZXJsYXlDb250
cm9sbGVyLnZpZXdPdmVybGF5Um9vdExheWVyKCkpOworICAgICAgICAgICAgICAgIHBhZ2UoKS5j
aHJvbWUoKS5jbGllbnQoKS5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoZnJhbWUsICZw
YWdlT3ZlcmxheUNvbnRyb2xsZXIudmlld092ZXJsYXlSb290TGF5ZXIoKSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMzUwOCw5ICszNTA4LDkgQEAg
dm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRldGFjaFJvb3RMYXllcigpCiAgICAgfQogICAg
IGNhc2UgUm9vdExheWVyQXR0YWNoZWRWaWFDaHJvbWVDbGllbnQ6IHsKICAgICAgICAgRnJhbWUm
IGZyYW1lID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLmZyYW1lKCk7Ci0gICAgICAgIHBhZ2Uo
KS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hSb290R3JhcGhpY3NMYXllcigmZnJhbWUsIDApOwor
ICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIo
ZnJhbWUsIG51bGxwdHIpOwogICAgICAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSkKLSAgICAg
ICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNz
TGF5ZXIoJmZyYW1lLCAwKTsKKyAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5h
dHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoZnJhbWUsIG51bGxwdHIpOwogICAgIH0KICAg
ICBicmVhazsKICAgICBjYXNlIFJvb3RMYXllclVuYXR0YWNoZWQ6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRleCBkMmMwMmVmOWQ2MGUwNmM2ODY2NzIz
ZTQ3NDA3MzdhZDhjMGMzODIxLi4zN2M4M2U4ZDFmNWViYjA1N2IxMTBjYzg4ODEwNTQ1MTJjZDRk
NDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKQEAg
LTM3MSw3ICszNzEsNyBAQCB2b2lkIFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKQogICAgIC8v
IGluc2lkZSB0aGUgc2hvd1BvcHVwIGNhbGwgYW5kIGl0IHdvdWxkIGZhaWwuCiAgICAgY3JlYXRl
SW5uZXJCbG9jaygpOwogICAgIGlmICghbV9wb3B1cCkKLSAgICAgICAgbV9wb3B1cCA9IGRvY3Vt
ZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jcmVhdGVQb3B1cE1lbnUodGhpcyk7CisgICAgICAgIG1f
cG9wdXAgPSBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY3JlYXRlUG9wdXBNZW51KCp0aGlz
KTsKICAgICBtX3BvcHVwSXNWaXNpYmxlID0gdHJ1ZTsKIAogICAgIC8vIENvbXB1dGUgdGhlIHRv
cCBsZWZ0IHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudCwgYnV0IHVzZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKaW5kZXggYjQ2ZDhlZDcx
ODYwOGNhZmU2MTY5M2UxNGJlMTNlODZkNGNhODIyYy4uY2E5MDA1MTg0ZGIyOWFjOTI3NzBkYTEy
NzU1ODE0YzYwODA2MjFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNlYXJjaEZpZWxkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U2VhcmNoRmllbGQuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgUmVuZGVyU2VhcmNoRmllbGQ6
OmFkZFNlYXJjaFJlc3VsdCgpCiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBhdXRv
c2F2ZU5hbWUoKTsKICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAgIG1fc2VhcmNoUG9w
dXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KHRoaXMpOworICAgICAg
ICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNyZWF0ZVNlYXJjaFBvcHVwTWVudSgq
dGhpcyk7CiAKICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNoZXMobmFtZSwgbV9y
ZWNlbnRTZWFyY2hlcyk7CiB9CkBAIC0xMDgsNyArMTA4LDcgQEAgdm9pZCBSZW5kZXJTZWFyY2hG
aWVsZDo6c2hvd1BvcHVwKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFtX3NlYXJjaFBv
cHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNyZWF0ZVNlYXJj
aFBvcHVwTWVudSh0aGlzKTsKKyAgICAgICAgbV9zZWFyY2hQb3B1cCA9IHBhZ2UoKS5jaHJvbWUo
KS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUoKnRoaXMpOwogCiAgICAgaWYgKCFtX3NlYXJjaFBvcHVw
LT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTIwMSw3ICsyMDEsNyBAQCB2b2lkIFJl
bmRlclNlYXJjaEZpZWxkOjp2YWx1ZUNoYW5nZWQodW5zaWduZWQgbGlzdEluZGV4LCBib29sIGZp
cmVFdmVudHMpCiAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBhdXRvc2F2
ZU5hbWUoKTsKICAgICAgICAgICAgIGlmICghbmFtZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAg
ICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoUG9w
dXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KHRoaXMpOworICAgICAg
ICAgICAgICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNyZWF0ZVNlYXJj
aFBvcHVwTWVudSgqdGhpcyk7CiAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cC0+c2F2ZVJl
Y2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAppbmRleCBiZWIwYTM5NTNiYzcyZmVl
MTNiMzUzOGZlNTk3Y2QxOTA5ZDlkM2JlLi40MjAyM2ZhNzY4NjU0ZTEzYWY2ZDMyNjI4MmFlMzgx
NjdhY2E5ZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKQEAgLTE5Nyw3ICsxOTcs
NyBAQCBib29sIFNWR0FFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQm
IGV2ZW50KSBjb25zdAogICAgICAgICByZXR1cm4gU1ZHRWxlbWVudDo6aXNLZXlib2FyZEZvY3Vz
YWJsZShldmVudCk7CiAKICAgICBpZiAoaXNMaW5rKCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVu
dCgpLmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLnRhYnNUb0xpbmtzKCZldmVudCk7CisgICAgICAg
IHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLnRhYnNUb0xpbmtzKGV2
ZW50KTsKIAogICAgIHJldHVybiBTVkdFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50
LmNwcAppbmRleCBmZDU2NGFmZjE0MDRlNTg4YTlkYzQxYTYzNjdkYjJmMGNiZGExMjhiLi4wMDQ0
MDQxYmY3NTc4YzNjMmE4NjE3YjdmZTc2NmZkMmNiY2IyZDczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCkBAIC01MSw3ICs1MSw3IEBA
IE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6TW9ja1BhZ2VPdmVybGF5Q2xpZW50KCkKIFJlZjxNb2Nr
UGFnZU92ZXJsYXk+IE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6aW5zdGFsbE92ZXJsYXkoTWFpbkZy
YW1lJiBtYWluRnJhbWUsIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZSBvdmVybGF5VHlwZSkKIHsK
ICAgICBhdXRvIG92ZXJsYXkgPSBQYWdlT3ZlcmxheTo6Y3JlYXRlKCp0aGlzLCBvdmVybGF5VHlw
ZSk7Ci0gICAgbWFpbkZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3Zl
cmxheShvdmVybGF5LnB0cigpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7Cisg
ICAgbWFpbkZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheShv
dmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAKICAgICBhdXRvIG1v
Y2tPdmVybGF5ID0gTW9ja1BhZ2VPdmVybGF5OjpjcmVhdGUob3ZlcmxheS5wdHIoKSk7CiAgICAg
bV9vdmVybGF5cy5hZGQobW9ja092ZXJsYXkucHRyKCkpOwpAQCAtNjUsNyArNjUsNyBAQCB2b2lk
IE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6dW5pbnN0YWxsQWxsT3ZlcmxheXMoKQogICAgICAgICBS
ZWZQdHI8TW9ja1BhZ2VPdmVybGF5PiBtb2NrT3ZlcmxheSA9IG1fb3ZlcmxheXMudGFrZUFueSgp
OwogICAgICAgICBQYWdlT3ZlcmxheUNvbnRyb2xsZXIqIG92ZXJsYXlDb250cm9sbGVyID0gbW9j
a092ZXJsYXktPm92ZXJsYXkoKS0+Y29udHJvbGxlcigpOwogICAgICAgICBBU1NFUlQob3Zlcmxh
eUNvbnRyb2xsZXIpOwotICAgICAgICBvdmVybGF5Q29udHJvbGxlci0+dW5pbnN0YWxsUGFnZU92
ZXJsYXkobW9ja092ZXJsYXktPm92ZXJsYXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05v
dEZhZGUpOworICAgICAgICBvdmVybGF5Q29udHJvbGxlci0+dW5pbnN0YWxsUGFnZU92ZXJsYXko
Km1vY2tPdmVybGF5LT5vdmVybGF5KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRl
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLm1tCmluZGV4
IDNiM2MzYTQyOTRjMTdjNTc4YjgxOTE1ZGEwYjFjNGY4YmZhMjNlYmEuLjBkNDgyYjRkZDkyNWJj
MGI4YjhkNDI2MWVmYzJjN2E2NTU3NmUwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZVF1b3Rh
TWFuYWdlci5tbQpAQCAtNTksNyArNTksOSBAQCAtICh1bnNpZ25lZCBsb25nIGxvbmcpdXNhZ2UK
IC0gKHVuc2lnbmVkIGxvbmcgbG9uZylxdW90YQogewogICAgIGxvbmcgbG9uZyBxdW90YTsKLSAg
ICBpZiAod2ViQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKS5jYWxjdWxhdGVRdW90YUZvck9yaWdp
bihbX29yaWdpbiBfY29yZV0sIHF1b3RhKSkKKyAgICBpZiAoIV9vcmlnaW4pCisgICAgICAgIHJl
dHVybiAwOworICAgIGlmICh3ZWJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSgpLmNhbGN1bGF0ZVF1
b3RhRm9yT3JpZ2luKCpbX29yaWdpbiBfY29yZV0sIHF1b3RhKSkKICAgICAgICAgcmV0dXJuIHF1
b3RhOwogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBmNGYwOTZjNWQ2NDczZWJjNmU3YWJkNTgz
YjZkZmVmNGFhYTRkMTU5Li43ZDhmM2I4N2Y3ZTMyNDUxNmRiMDYxNWJlNThkOGQ5MDU1ODI0Yjhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaApAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZm9jdXNlZEVsZW1l
bnRDaGFuZ2VkKFdlYkNvcmU6OkVsZW1lbnQqKSBvdmVycmlkZTsKICAgICB2b2lkIGZvY3VzZWRG
cmFtZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKIAotICAgIFdlYkNvcmU6OlBhZ2Uq
IGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5h
dmlnYXRpb25BY3Rpb24mKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3co
V2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3Qg
V2ViQ29yZTo6V2luZG93RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9u
JikgZmluYWw7CiAgICAgdm9pZCBzaG93KCkgZmluYWw7CiAKICAgICBib29sIGNhblJ1bk1vZGFs
KCkgZmluYWw7CkBAIC03OSwxNiArNzksMTYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0UmVz
aXphYmxlKGJvb2wpIGZpbmFsOwogCi0gICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKEpTQzo6
TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNz
YWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFdU
Rjo6U3RyaW5nJiBzb3VyY2VVUkwpIGZpbmFsOworICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29s
ZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwoKSBmaW5hbDsKLSAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bChjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKKyAg
ICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAKICAgICB2b2lkIGNsb3NlV2luZG93U29vbigpIGZp
bmFsOwogCi0gICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUqLCBjb25z
dCBXVEY6OlN0cmluZyYpIG92ZXJyaWRlOwotICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0o
V2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYpIG92ZXJyaWRlOwotICAgIGJvb2wg
cnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVmYXVsdFZhbHVlLCBXVEY6OlN0cmluZyYgcmVz
dWx0KSBvdmVycmlkZTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFt
ZSYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZp
cm0oV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICBib29sIHJ1
bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgb3ZlcnJpZGU7CiAK
ICAgICBib29sIHN1cHBvcnRzSW1tZWRpYXRlSW52YWxpZGF0aW9uKCkgZmluYWw7CiAgICAgdm9p
ZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOwpAQCAt
MTA1LDI5ICsxMDUsMjkgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgUGxhdGZvcm1QYWdlQ2xp
ZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgY29udGVudHNT
aXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25z
dCBmaW5hbDsKKyAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzY3JvbGxSZWN0
SW50b1ZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9p
ZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBz
Y3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0IGZpbmFsIHsgfQogICAgIGJvb2wgc2hvdWxk
VW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRP
YmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsKLSAgICB2b2lk
IHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVtZW50KiwgV2ViQ29y
ZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25z
dCBmaW5hbDsKKyAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3Jl
OjpFbGVtZW50JiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxh
YmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdz
KSBmaW5hbDsKIAotICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXVEY6OlN0cmluZyYsIFdlYkNv
cmU6OlRleHREaXJlY3Rpb24pIGZpbmFsOworICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJp
bmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKSBmaW5hbDsKIAotICAgIHZvaWQgcHJpbnQoV2Vi
Q29yZTo6RnJhbWUqKSBmaW5hbDsKLSAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJD
b3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUsIFdlYkNvcmU6OkRh
dGFiYXNlRGV0YWlscykgZmluYWw7CisgICAgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSYpIGZp
bmFsOworICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lJiwgY29u
c3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscykgZmluYWw7
CiAgICAgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpIGZp
bmFsOwotICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkgZmluYWw7CisgICAg
dm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luJiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSBmaW5hbDsKIAogI2lmIEVOQUJMRShE
QVNIQk9BUkRfU1VQUE9SVCkKICAgICB2b2lkIGFubm90YXRlZFJlZ2lvbnNDaGFuZ2VkKCkgZmlu
YWw7CiAjZW5kaWYKIAogICAgIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lJiwgV2Vi
Q29yZTo6RmlsZUNob29zZXImKSBvdmVycmlkZTsKLSAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMo
Y29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJikgZmlu
YWw7CisgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgV2Vi
Q29yZTo6RmlsZUljb25Mb2FkZXImKSBmaW5hbDsKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAg
dm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikgZmluYWw7CkBAIC0xMzUsNyAr
MTM1LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Ip
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JD
aG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9y
JikgZmluYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3Jl
YXRlQ29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCYsIGNvbnN0IFdlYkNv
cmU6OkNvbG9yJikgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCkBA
IC0xNTEsMTYgKzE1MSwxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5hYmxlU3VkZGVuVGVybWlu
YXRpb24oKSBmaW5hbDsKICAgICB2b2lkIGRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpIGZpbmFs
OwogCi0gICAgYm9vbCBzaG91bGRSZXBsYWNlV2l0aEdlbmVyYXRlZEZpbGVGb3JVcGxvYWQoY29u
c3QgV1RGOjpTdHJpbmcmIHBhdGgsIFdURjo6U3RyaW5nICZnZW5lcmF0ZWRGaWxlbmFtZSkgZmlu
YWw7Ci0gICAgV1RGOjpTdHJpbmcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoY29uc3QgV1RGOjpT
dHJpbmcmIHBhdGgpIGZpbmFsOworICAgIGJvb2wgc2hvdWxkUmVwbGFjZVdpdGhHZW5lcmF0ZWRG
aWxlRm9yVXBsb2FkKGNvbnN0IFN0cmluZyYgcGF0aCwgU3RyaW5nICZnZW5lcmF0ZWRGaWxlbmFt
ZSkgZmluYWw7CisgICAgU3RyaW5nIGdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNvbnN0IFN0cmlu
ZyYgcGF0aCkgZmluYWw7CiAKLSAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBXZWJDb3Jl
OjpOb2RlKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBXZWJDb3Jl
OjpOb2RlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoV2ViQ29yZTo6RWxl
bWVudCYpIG92ZXJyaWRlOworICAgIHZvaWQgZWxlbWVudERpZEJsdXIoV2ViQ29yZTo6RWxlbWVu
dCYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzaG91bGRQYWludEVudGlyZUNvbnRlbnRzKCkgY29u
c3QgZmluYWw7CiAKLSAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZy
YW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwotICAgIHZvaWQgYXR0YWNo
Vmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGZpbmFsOworICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29y
ZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBh
dHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgZmluYWw7CiAgICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3lu
Y2hyb25pemF0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJG
bHVzaCgpIGZpbmFsOwogCkBAIC0xODksMTYgKzE4OSwxNiBAQCBwcml2YXRlOgogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5G
b3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqLCBib29sIHdpdGhLZXlib2FyZCkgZmlu
YWw7Ci0gICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQq
KSBmaW5hbDsKLSAgICB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVt
ZW50KikgZmluYWw7CisgICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0
IFdlYkNvcmU6OkVsZW1lbnQmLCBib29sIHdpdGhLZXlib2FyZCkgZmluYWw7CisgICAgdm9pZCBl
bnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKKyAgICB2
b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CiAj
ZW5kaWYKIAogICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBv
dmVycmlkZTsKICAgICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdE
aXJlY3Rpb24oKSBvdmVycmlkZTsKICAgICBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3QgZmlu
YWw7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNv
cmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IG92ZXJyaWRlOwotICAgIFJlZlB0cjxXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1l
bnVDbGllbnQqKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51
PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3Qgb3ZlcnJp
ZGU7CisgICAgUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9w
dXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAg
dm9pZCB3aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKGJvb2wpIGZpbmFsIHsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0g
Yi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5k
ZXggMGVjZmY4ZDVmYWIxZWU1ZmM1NTI5MmRjMDRhODA1YWQyY2NjZGVkOC4uZTQ5NjdiOWY4YzM3
YzYyNWI1MDU1YmM0MjkxYTc1OTU5ZjA1ZmFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtMzAsNiArMzAsNyBAQAog
I2ltcG9ydCAiV2ViQ2hyb21lQ2xpZW50LmgiCiAKICNpbXBvcnQgIkRPTUVsZW1lbnRJbnRlcm5h
bC5oIgorI2ltcG9ydCAiRE9NSFRNTElucHV0RWxlbWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJE
T01Ob2RlSW50ZXJuYWwuaCIKICNpbXBvcnQgIlBvcHVwTWVudU1hYy5oIgogI2ltcG9ydCAiU2Vh
cmNoUG9wdXBNZW51TWFjLmgiCkBAIC0yMjIsNyArMjIzLDcgQEAgdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmZvY3VzZWRFbGVtZW50Q2hhbmdlZChFbGVtZW50KiBlbGVtZW50KQogICAgIGlmICghaXM8
SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEhUTUxJ
bnB1dEVsZW1lbnQmIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCpl
bGVtZW50KTsKKyAgICBhdXRvJiBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVt
ZW50PigqZWxlbWVudCk7CiAgICAgaWYgKCFpbnB1dEVsZW1lbnQuaXNUZXh0KCkpCiAgICAgICAg
IHJldHVybjsKIApAQCAtMjMzLDE0ICsyMzQsMTQgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZv
Y3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKQogewogfQogCi1QYWdlKiBXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25z
dCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKQorUGFn
ZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUmIGZyYW1lLCBjb25zdCBGcmFt
ZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZp
Z2F0aW9uQWN0aW9uJikKIHsKICAgICBpZCBkZWxlZ2F0ZSA9IFttX3dlYlZpZXcgVUlEZWxlZ2F0
ZV07CiAgICAgV2ViVmlldyAqbmV3V2ViVmlldzsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKLSAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPndlYmtp
dEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpKQotICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+
d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOworICAgIGlmIChmcmFtZS5kb2N1bWVudCgpICYmIGZy
YW1lLmRvY3VtZW50KCktPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpKQorICAgICAg
ICBmcmFtZS5kb2N1bWVudCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7CiAjZW5kaWYKICAg
ICAKICAgICBpZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmll
dzpjcmVhdGVXZWJWaWV3V2l0aFJlcXVlc3Q6d2luZG93RmVhdHVyZXM6KV0pIHsKQEAgLTQ2OCw5
ICs0NjksOSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsKCkKICAgICByZXR1cm4gW1ttX3dlYlZpZXcgVUlEZWxlZ2F0ZV0gcmVzcG9uZHNUb1Nl
bGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhN
ZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6KV07CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50Ojpy
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSog
ZnJhbWUpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmIGZyYW1lKQogewotICAgIHJldHVybiBDYWxs
VUlEZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4odHJ1ZSwgbV93ZWJWaWV3LCBAc2VsZWN0b3Iod2Vi
VmlldzpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZy
YW1lOiksIG1lc3NhZ2UsIGtpdChmcmFtZSkpOworICAgIHJldHVybiBDYWxsVUlEZWxlZ2F0ZVJl
dHVybmluZ0Jvb2xlYW4odHJ1ZSwgbV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpydW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOiksIG1lc3Nh
Z2UsIGtpdCgmZnJhbWUpKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNsb3NlV2luZG93
U29vbigpCkBAIC00OTMsMTIgKzQ5NCwxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xvc2VX
aW5kb3dTb29uKCkKICAgICBbbV93ZWJWaWV3IHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IoX2Ns
b3NlV2luZG93KSB3aXRoT2JqZWN0Om5pbCBhZnRlckRlbGF5OjAuMF07CiB9CiAKLXZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZy
YW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIGlkIGRlbGVnYXRlID0g
W21fd2ViVmlldyBVSURlbGVnYXRlXTsKICAgICBTRUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2Vi
VmlldzpydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6
KTsKICAgICBpZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rvcl0pIHsKLSAg
ICAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3RvciwgbWVzc2FnZSwga2l0KGZy
YW1lKSk7CisgICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIG1lc3Nh
Z2UsIGtpdCgmZnJhbWUpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNTEwLDEyICs1
MTEsMTIgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSog
ZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICB9CiB9CiAKLWJvb2wgV2ViQ2hyb21l
Q2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFt
ZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBpZCBkZWxlZ2F0ZSA9IFtt
X3dlYlZpZXcgVUlEZWxlZ2F0ZV07CiAgICAgU0VMIHNlbGVjdG9yID0gQHNlbGVjdG9yKHdlYlZp
ZXc6cnVuSmF2YVNjcmlwdENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6
KTsKICAgICBpZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rvcl0pCi0gICAg
ICAgIHJldHVybiBDYWxsVUlEZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4oTk8sIG1fd2ViVmlldywg
c2VsZWN0b3IsIG1lc3NhZ2UsIGtpdChmcmFtZSkpOworICAgICAgICByZXR1cm4gQ2FsbFVJRGVs
ZWdhdGVSZXR1cm5pbmdCb29sZWFuKE5PLCBtX3dlYlZpZXcsIHNlbGVjdG9yLCBtZXNzYWdlLCBr
aXQoJmZyYW1lKSk7CiAKICAgICAvLyBDYWxsIHRoZSBvbGQgdmVyc2lvbiBvZiB0aGUgZGVsZWdh
dGUgbWV0aG9kIGlmIGl0IGlzIGltcGxlbWVudGVkLgogICAgIHNlbGVjdG9yID0gQHNlbGVjdG9y
KHdlYlZpZXc6cnVuSmF2YVNjcmlwdENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOik7CkBAIC01MjUs
MTMgKzUyNiwxMyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0o
RnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgcmV0dXJuIE5POwogfQog
Ci1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSogZnJhbWUs
IGNvbnN0IFN0cmluZyYgcHJvbXB0LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRUZXh0LCBTdHJpbmcm
IHJlc3VsdCkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1l
JiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFRleHQs
IFN0cmluZyYgcmVzdWx0KQogewogICAgIGlkIGRlbGVnYXRlID0gW21fd2ViVmlldyBVSURlbGVn
YXRlXTsKICAgICBTRUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpydW5KYXZhU2NyaXB0
VGV4dElucHV0UGFuZWxXaXRoUHJvbXB0OmRlZmF1bHRUZXh0OmluaXRpYXRlZEJ5RnJhbWU6KTsK
ICAgICBOU1N0cmluZyAqZGVmYXVsdFN0cmluZyA9IGRlZmF1bHRUZXh0OwogICAgIGlmIChbZGVs
ZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkgewotICAgICAgICByZXN1bHQgPSAo
TlNTdHJpbmcgKilDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBwcm9tcHQsIGRl
ZmF1bHRTdHJpbmcsIGtpdChmcmFtZSkpOworICAgICAgICByZXN1bHQgPSAoTlNTdHJpbmcgKilD
YWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBwcm9tcHQsIGRlZmF1bHRTdHJpbmcs
IGtpdCgmZnJhbWUpKTsKICAgICAgICAgcmV0dXJuICFyZXN1bHQuaXNOdWxsKCk7CiAgICAgfQog
CkBAIC01NDIsNyArNTQzLDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQ
cm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwgY28KICAgICAgICAgcmV0
dXJuICFyZXN1bHQuaXNOdWxsKCk7CiAgICAgfQogCi0gICAgcmVzdWx0ID0gW1tXZWJEZWZhdWx0
VUlEZWxlZ2F0ZSBzaGFyZWRVSURlbGVnYXRlXSB3ZWJWaWV3Om1fd2ViVmlldyBydW5KYXZhU2Ny
aXB0VGV4dElucHV0UGFuZWxXaXRoUHJvbXB0OnByb21wdCBkZWZhdWx0VGV4dDpkZWZhdWx0U3Ry
aW5nIGluaXRpYXRlZEJ5RnJhbWU6a2l0KGZyYW1lKV07CisgICAgcmVzdWx0ID0gW1tXZWJEZWZh
dWx0VUlEZWxlZ2F0ZSBzaGFyZWRVSURlbGVnYXRlXSB3ZWJWaWV3Om1fd2ViVmlldyBydW5KYXZh
U2NyaXB0VGV4dElucHV0UGFuZWxXaXRoUHJvbXB0OnByb21wdCBkZWZhdWx0VGV4dDpkZWZhdWx0
U3RyaW5nIGluaXRpYXRlZEJ5RnJhbWU6a2l0KCZmcmFtZSldOwogICAgIHJldHVybiAhcmVzdWx0
LmlzTnVsbCgpOwogfQogCkBAIC02MDYsNyArNjA3LDcgQEAgUGxhdGZvcm1QYWdlQ2xpZW50IFdl
YkNocm9tZUNsaWVudDo6cGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QKICAgICByZXR1cm4gMDsK
IH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBj
b25zdCBJbnRTaXplJikgY29uc3QKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVD
aGFuZ2VkKEZyYW1lJiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0CiB7CiB9CiAKQEAgLTYzNSwxMiAr
NjM2LDEyIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1l
c3NhZ2VCZUJ1dHRvbihSZW5kZXJFbWJlZGRlZE9iamVjCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci12b2lkIFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVs
ZW1lbnQqIGVsZW1lbnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0
eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCYgZWxlbWVudCwg
UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVu
YXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdAogewotICAgIEFTU0VSVChlbGVtZW50LT5oYXNUYWdO
YW1lKG9iamVjdFRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShlbWJlZFRhZykgfHwgZWxlbWVu
dC0+aGFzVGFnTmFtZShhcHBsZXRUYWcpKTsKKyAgICBBU1NFUlQoZWxlbWVudC5oYXNUYWdOYW1l
KG9iamVjdFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGVtYmVkVGFnKSB8fCBlbGVtZW50Lmhh
c1RhZ05hbWUoYXBwbGV0VGFnKSk7CiAKICAgICBBU1NFUlQocGx1Z2luVW5hdmFpbGFiaWxpdHlS
ZWFzb24gPT0gUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpbk1pc3NpbmcpOwotICAgIENhbGxV
SURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6ZGlkUHJlc3NNaXNzaW5nUGx1
Z2luQnV0dG9uOiksIGtpdChlbGVtZW50KSk7CisgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3
LCBAc2VsZWN0b3Iod2ViVmlldzpkaWRQcmVzc01pc3NpbmdQbHVnaW5CdXR0b246KSwga2l0KCZl
bGVtZW50KSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxl
bWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3Mp
CkBAIC02NTcsMjEgKzY1OCwyMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VG9vbFRpcChj
b25zdCBTdHJpbmcmIHRvb2xUaXAsIFRleHREaXJlY3Rpb24pCiAgICAgICAgIFsoV2ViSFRNTFZp
ZXcgKilkb2N1bWVudFZpZXcgX3NldFRvb2xUaXA6dG9vbFRpcF07CiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpwcmludChGcmFtZSogZnJhbWUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cHJp
bnQoRnJhbWUmIGZyYW1lKQogewotICAgIFdlYkZyYW1lICp3ZWJGcmFtZSA9IGtpdChmcmFtZSk7
CisgICAgV2ViRnJhbWUgKndlYkZyYW1lID0ga2l0KCZmcmFtZSk7CiAgICAgaWYgKFtbbV93ZWJW
aWV3IFVJRGVsZWdhdGVdIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpwcmlu
dEZyYW1lOildKQogICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3
ZWJWaWV3OnByaW50RnJhbWU6KSwgd2ViRnJhbWUpOwogICAgIGVsc2UKICAgICAgICAgQ2FsbFVJ
RGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpwcmludEZyYW1lVmlldzopLCBb
d2ViRnJhbWUgZnJhbWVWaWV3XSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRl
ZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwg
RGF0YWJhc2VEZXRhaWxzKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VR
dW90YShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURl
dGFpbHMpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgV2ViU2Vj
dXJpdHlPcmlnaW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0
V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdpbjomZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCldOwotICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6
ZnJhbWU6ZXhjZWVkZWREYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46ZGF0YWJhc2U6KSwg
a2l0KGZyYW1lKSwgd2ViT3JpZ2luLCAoTlNTdHJpbmcgKilkYXRhYmFzZU5hbWUpOworICAgIFdl
YlNlY3VyaXR5T3JpZ2luICp3ZWJPcmlnaW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBf
aW5pdFdpdGhXZWJDb3JlU2VjdXJpdHlPcmlnaW46JmZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCldOworICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZp
ZXc6ZnJhbWU6ZXhjZWVkZWREYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46ZGF0YWJhc2U6
KSwga2l0KCZmcmFtZSksIHdlYk9yaWdpbiwgKE5TU3RyaW5nICopZGF0YWJhc2VOYW1lKTsKICAg
ICBbd2ViT3JpZ2luIHJlbGVhc2VdOwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
QEAgLTY4MiwxMSArNjgzLDExIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkTWF4QXBw
Q2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpCiAgICAgLy8gRklYTUU6IEZyZWUgc29tZSBz
cGFjZS4KIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hl
T3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgaW50NjRfdCB0b3RhbFNwYWNlTmVl
ZGVkKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEoU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKQog
ewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIFdlYlNlY3VyaXR5T3Jp
Z2luICp3ZWJPcmlnaW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5pdFdpdGhXZWJD
b3JlU2VjdXJpdHlPcmlnaW46b3JpZ2luXTsKKyAgICBXZWJTZWN1cml0eU9yaWdpbiAqd2ViT3Jp
Z2luID0gW1tXZWJTZWN1cml0eU9yaWdpbiBhbGxvY10gX2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5
T3JpZ2luOiZvcmlnaW5dOwogICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9y
KHdlYlZpZXc6ZXhjZWVkZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGFGb3JTZWN1cml0eU9y
aWdpbjp0b3RhbFNwYWNlTmVlZGVkOiksIHdlYk9yaWdpbiwgc3RhdGljX2Nhc3Q8TlNVSW50ZWdl
cj4odG90YWxTcGFjZU5lZWRlZCkpOwogICAgIFt3ZWJPcmlnaW4gcmVsZWFzZV07CiAKQEAgLTcw
NSwxMiArNzA2LDE0IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojphbm5vdGF0ZWRSZWdpb25zQ2hh
bmdlZCgpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotc3RkOjp1bmlx
dWVfcHRyPENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIo
Q29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCisK
K3N0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29s
b3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCYgY2xpZW50LCBjb25zdCBDb2xvciYgaW5pdGlh
bENvbG9yKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgPGlucHV0IHR5cGU9J2NvbG9yJz4g
Zm9yIFdLMSAoQnVnIDExOTA5NCkuCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0
dXJuIG51bGxwdHI7CiB9CisKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKQEAg
LTg0OCwxNCArODUxLDE0IEBAIFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6OmdlbmVyYXRlUmVwbGFj
ZW1lbnRGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICByZXR1cm4gW1ttX3dlYlZpZXcgX1VJ
RGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6bV93ZWJWaWV3IGdlbmVyYXRlUmVwbGFjZW1lbnRG
aWxlOnBhdGhdOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEZvY3VzKGNv
bnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERp
ZEZvY3VzKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgQ2FsbFVJRGVsZWdhdGUo
bV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpmb3JtRGlkRm9jdXNOb2RlOiksIGtpdChjb25z
dF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihub2RlKSkpOworICAgIENhbGxVSURlbGVnYXRlKG1fd2Vi
VmlldywgQHNlbGVjdG9yKHdlYlZpZXc6Zm9ybURpZEZvY3VzTm9kZTopLCBraXQoJmVsZW1lbnQp
KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNv
cmU6Ok5vZGUqIG5vZGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIoV2Vi
Q29yZTo6RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcs
IEBzZWxlY3Rvcih3ZWJWaWV3OmZvcm1EaWRCbHVyTm9kZTopLCBraXQoY29uc3RfY2FzdDxXZWJD
b3JlOjpOb2RlKj4obm9kZSkpKTsKKyAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxl
Y3Rvcih3ZWJWaWV3OmZvcm1EaWRCbHVyTm9kZTopLCBraXQoJmVsZW1lbnQpKTsKIH0KIAogYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkK
QEAgLTg3NCwxOSArODc3LDE5IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpoYXNPcGVuZWRQb3B1
cCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1SZWZQdHI8V2ViQ29yZTo6UG9wdXBN
ZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVD
bGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYgY2xpZW50
KSBjb25zdAogewogI2lmICFQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQ
b3B1cE1lbnVNYWMoY2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUG9wdXBNZW51
TWFjKCZjbGllbnQpKTsKICNlbHNlCiAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKIH0KIAot
UmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVT
ZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitS
ZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNl
YXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsK
ICNpZiAhUExBVEZPUk0oSU9TKQotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBN
ZW51TWFjKGNsaWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlYXJjaFBvcHVwTWVu
dU1hYygmY2xpZW50KSk7CiAjZWxzZQogICAgIHJldHVybiBudWxscHRyOwogI2VuZGlmCkBAIC05
MDIsMTEgKzkwNSwxMSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkUGFpbnRFbnRpcmVD
b250ZW50cygpIGNvbnN0CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFj
aFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NM
YXllcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFt
ZSYgZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgTlNWaWV3ICpkb2N1bWVudFZpZXcgPSBbW2tpdChm
cmFtZSkgZnJhbWVWaWV3XSBkb2N1bWVudFZpZXddOworICAgIE5TVmlldyAqZG9jdW1lbnRWaWV3
ID0gW1traXQoJmZyYW1lKSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld107CiAgICAgaWYgKCFbZG9j
dW1lbnRWaWV3IGlzS2luZE9mQ2xhc3M6W1dlYkhUTUxWaWV3IGNsYXNzXV0pIHsKICAgICAgICAg
Ly8gV2Ugc2hvdWxkIG5ldmVyIGJlIGF0dGFjaGluZyB3aGVuIHdlIGRvbid0IGhhdmUgYSBXZWJI
VE1MVmlldy4KICAgICAgICAgQVNTRVJUKCFncmFwaGljc0xheWVyKTsKQEAgLTkyMSw3ICs5MjQs
NyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUq
IGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNz
TGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRh
Y2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikKIHsKICAg
ICAvLyBGSVhNRTogSWYgd2Ugd2FudCB2aWV3LXJlbGF0aXZlIHBhZ2Ugb3ZlcmxheXMgaW4gTGVn
YWN5IFdlYktpdCwgdGhpcyB3b3VsZCBiZSB0aGUgcGxhY2UgdG8gaG9vayB0aGVtIHVwLgogfQpA
QCAtOTQxLDYgKzk0NCw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUNvbXBvc2l0
aW5nTGF5ZXJGbHVzaCgpCiB9CiAKICNpZiBFTkFCTEUoVklERU8pCisKIGJvb2wgV2ViQ2hyb21l
Q2xpZW50OjpzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGUpCiB7CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtOTY1LDcgKzk2OSwx
MCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxl
bWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7ICAgIAogfQogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFU
SU9OX01PREUpCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQorCisjaWYgRU5BQkxFKFZJREVPKSAm
JiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKwogdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnNldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXIoSFRNTE1lZGlh
RWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBbbV93ZWJWaWV3IF9zZXRVcFBsYXliYWNrQ29udHJv
bHNNYW5hZ2VyRm9yTWVkaWFFbGVtZW50OmVsZW1lbnRdOwpAQCAtOTc1LDU0ICs5ODIsNTUgQEAg
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIoKQogewog
ICAgIFttX3dlYlZpZXcgX2NsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXJdOwogfQotI2VuZGlm
IC8vIFBMQVRGT1JNKE1BQykKLSNlbmRpZiAvLyBFTkFCTEUoVklERU8pCisKKyNlbmRpZgogCiAj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9y
dHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBFbGVtZW50KiBlbGVtZW50LCBib29sIHdpdGhL
ZXlib2FyZCkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVt
ZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIGJvb2wgd2l0aEtleWJvYXJkKQogewogICAgIFNF
TCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1l
bnQ6d2l0aEtleWJvYXJkOik7CiAgICAgaWYgKFtbbV93ZWJWaWV3IFVJRGVsZWdhdGVdIHJlc3Bv
bmRzVG9TZWxlY3RvcjpzZWxlY3Rvcl0pCi0gICAgICAgIHJldHVybiBDYWxsVUlEZWxlZ2F0ZVJl
dHVybmluZ0Jvb2xlYW4oZmFsc2UsIG1fd2ViVmlldywgc2VsZWN0b3IsIGtpdChjb25zdF9jYXN0
PFdlYkNvcmU6OkVsZW1lbnQqPihlbGVtZW50KSksIHdpdGhLZXlib2FyZCk7CisgICAgICAgIHJl
dHVybiBDYWxsVUlEZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4oZmFsc2UsIG1fd2ViVmlldywgc2Vs
ZWN0b3IsIGtpdChjb25zdF9jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPigmZWxlbWVudCkpLCB3aXRo
S2V5Ym9hcmQpOwogI2lmICFQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIFttX3dlYlZpZXcgX3N1
cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6Y29uc3RfY2FzdDxXZWJDb3JlOjpFbGVtZW50Kj4o
ZWxlbWVudCkgd2l0aEtleWJvYXJkOndpdGhLZXlib2FyZF07CisgICAgcmV0dXJuIFttX3dlYlZp
ZXcgX3N1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6Y29uc3RfY2FzdDxXZWJDb3JlOjpFbGVt
ZW50Kj4oJmVsZW1lbnQpIHdpdGhLZXlib2FyZDp3aXRoS2V5Ym9hcmRdOwogI2Vsc2UKICAgICBy
ZXR1cm4gTk87CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNj
cmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpl
bnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgU0VMIHNl
bGVjdG9yID0gQHNlbGVjdG9yKHdlYlZpZXc6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDpsaXN0
ZW5lcjopOwogICAgIGlmIChbW21fd2ViVmlldyBVSURlbGVnYXRlXSByZXNwb25kc1RvU2VsZWN0
b3I6c2VsZWN0b3JdKSB7Ci0gICAgICAgIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciogbGlzdGVu
ZXIgPSBbW1dlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhFbGVtZW50OmVs
ZW1lbnRdOwotICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBraXQo
ZWxlbWVudCksIGxpc3RlbmVyKTsKKyAgICAgICAgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyKiBs
aXN0ZW5lciA9IFtbV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aEVsZW1l
bnQ6JmVsZW1lbnRdOworICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9y
LCBraXQoJmVsZW1lbnQpLCBsaXN0ZW5lcik7CiAgICAgICAgIFtsaXN0ZW5lciByZWxlYXNlXTsK
ICAgICB9CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBlbHNlCi0gICAgICAgIFttX3dlYlZpZXcg
X2VudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6ZWxlbWVudF07CisgICAgICAgIFttX3dlYlZpZXcg
X2VudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6JmVsZW1lbnRdOwogI2VuZGlmCiB9CiAKLXZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVu
dCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVu
dCYgZWxlbWVudCkKIHsKICAgICBTRUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpleGl0
RnVsbFNjcmVlbkZvckVsZW1lbnQ6bGlzdGVuZXI6KTsKICAgICBpZiAoW1ttX3dlYlZpZXcgVUlE
ZWxlZ2F0ZV0gcmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkgewotICAgICAgICBXZWJLaXRG
dWxsU2NyZWVuTGlzdGVuZXIqIGxpc3RlbmVyID0gW1tXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIg
YWxsb2NdIGluaXRXaXRoRWxlbWVudDplbGVtZW50XTsKLSAgICAgICAgQ2FsbFVJRGVsZWdhdGUo
bV93ZWJWaWV3LCBzZWxlY3Rvciwga2l0KGVsZW1lbnQpLCBsaXN0ZW5lcik7CisgICAgICAgIFdl
YktpdEZ1bGxTY3JlZW5MaXN0ZW5lciogbGlzdGVuZXIgPSBbW1dlYktpdEZ1bGxTY3JlZW5MaXN0
ZW5lciBhbGxvY10gaW5pdFdpdGhFbGVtZW50OiZlbGVtZW50XTsKKyAgICAgICAgQ2FsbFVJRGVs
ZWdhdGUobV93ZWJWaWV3LCBzZWxlY3Rvciwga2l0KCZlbGVtZW50KSwgbGlzdGVuZXIpOwogICAg
ICAgICBbbGlzdGVuZXIgcmVsZWFzZV07CiAgICAgfQogI2lmICFQTEFURk9STShJT1MpCiAgICAg
ZWxzZQotICAgICAgICBbbV93ZWJWaWV3IF9leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6ZWxlbWVu
dF07CisgICAgICAgIFttX3dlYlZpZXcgX2V4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDomZWxlbWVu
dF07CiAjZW5kaWYKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIAogI2lm
IEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorCiBib29sIFdlYkNocm9tZUNsaWVudDo6d3JhcENyeXB0
b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSwgVmVjdG9yPHVpbnQ4X3Q+JiB3cmFwcGVk
S2V5KSBjb25zdAogewogICAgIFZlY3Rvcjx1aW50OF90PiBtYXN0ZXJLZXk7CkBAIC0xMDQ4LDkg
KzEwNTYsMTEgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnVud3JhcENyeXB0b0tleShjb25zdCBW
ZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXksIFZlY3RvcjwKIAogICAgIHJldHVybiB1bndyYXBT
ZXJpYWxpemVkQ3J5cHRvS2V5KG1hc3RlcktleSwgd3JhcHBlZEtleSwga2V5KTsKIH0KKwogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKwogdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbiYg
c2VsZWN0aW9uLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdGVsZXBob25lTnVtYmVycywgY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmIHBvaW50KQogewogICAgIFttX3dlYlZpZXcgX3NlbGVjdGlvblNl
cnZpY2VDb250cm9sbGVyXS5oYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soc2VsZWN0aW9uLCB0
ZWxlcGhvbmVOdW1iZXJzLCBwb2ludCk7CkBAIC0xMDY0LDYgKzEwNzQsNyBAQCBib29sIFdlYkNo
cm9tZUNsaWVudDo6aGFzUmVsZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcyhib29sIGlzVGV4dE9ubHkp
IGNvbnN0CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYm
ICFQTEFURk9STShJT1MpCisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRQbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudCh1aW50NjRfdCBjb250ZXh0SWQpCiB7CiAgICAgW21fd2ViVmlldyBfYWRk
UGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQ6Y29udGV4dElkXTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkZyYW1lLm1tCmluZGV4IGJlYjdiMzA5Y2E2Y2RkODMzY2RhZmRiMDRmYjE5MmE0ZGNi
MjY0ZDUuLjM4YTRjZWNiMTc2MTE0MTdmNzk4ZTg4NGYwNGVhYjkyYjMxMjQyY2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtMzAyLDE0ICszMDIsMTQgQEAgKyAoUmVm
PFdlYkNvcmU6OkZyYW1lPilfY3JlYXRlRnJhbWVXaXRoUGFnZTooUGFnZSopcGFnZSBmcmFtZU5h
bWU6KGNvbnN0IFN0cmluZyYKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0ga2l0KHBhZ2UpOwogCiAg
ICAgV2ViRnJhbWUgKmZyYW1lID0gW1tzZWxmIGFsbG9jXSBfaW5pdFdpdGhXZWJGcmFtZVZpZXc6
ZnJhbWVWaWV3IHdlYlZpZXc6d2ViVmlld107Ci0gICAgUmVmPFdlYkNvcmU6OkZyYW1lPiBjb3Jl
RnJhbWUgPSBGcmFtZTo6Y3JlYXRlKHBhZ2UsIG93bmVyRWxlbWVudCwgbmV3IFdlYkZyYW1lTG9h
ZGVyQ2xpZW50KGZyYW1lKSk7CisgICAgYXV0byBjb3JlRnJhbWUgPSBGcmFtZTo6Y3JlYXRlKHBh
Z2UsIG93bmVyRWxlbWVudCwgbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50KGZyYW1lKSk7CiAgICAg
W2ZyYW1lIHJlbGVhc2VdOwogICAgIGZyYW1lLT5fcHJpdmF0ZS0+Y29yZUZyYW1lID0gY29yZUZy
YW1lLnB0cigpOwogCiAgICAgY29yZUZyYW1lLmdldCgpLnRyZWUoKS5zZXROYW1lKG5hbWUpOwog
ICAgIGlmIChvd25lckVsZW1lbnQpIHsKICAgICAgICAgQVNTRVJUKG93bmVyRWxlbWVudC0+ZG9j
dW1lbnQoKS5mcmFtZSgpKTsKLSAgICAgICAgb3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1l
KCktPnRyZWUoKS5hcHBlbmRDaGlsZChjb3JlRnJhbWUucHRyKCkpOworICAgICAgICBvd25lckVs
ZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKS0+dHJlZSgpLmFwcGVuZENoaWxkKGNvcmVGcmFtZS5n
ZXQoKSk7CiAgICAgfQogCiAgICAgY29yZUZyYW1lLmdldCgpLmluaXQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDE0ZTk3MTBkMTVkNzliZjNiNTVjNDAw
OWU1NjY4NGEwZWUzZDc4MzcuLjI5ODE1M2RmM2M0YWQ3Zjc0YWIyNWY5ODA5YmZkZGIyMmQ4MDcz
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtNTkzLDcg
KzU5Myw3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6ZGVzdHJveVN0cmVhbShOUFN0cmVhbSogc3Ry
ZWFtLCBOUFJlYXNvbiByZWFzb24pCiB2b2lkIFBsdWdpblZpZXc6OnN0YXR1cyhjb25zdCBjaGFy
KiBtZXNzYWdlKQogewogICAgIGlmIChQYWdlKiBwYWdlID0gbV9wYXJlbnRGcmFtZS0+cGFnZSgp
KQotICAgICAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJUZXh0KG1fcGFyZW50RnJhbWUu
Z2V0KCksIFN0cmluZzo6ZnJvbVVURjgobWVzc2FnZSkpOworICAgICAgICBwYWdlLT5jaHJvbWUo
KS5zZXRTdGF0dXNiYXJUZXh0KCptX3BhcmVudEZyYW1lLCBTdHJpbmc6OmZyb21VVEY4KG1lc3Nh
Z2UpKTsKIH0KIAogTlBFcnJvciBQbHVnaW5WaWV3OjpzZXRWYWx1ZShOUFBWYXJpYWJsZSB2YXJp
YWJsZSwgdm9pZCogdmFsdWUpCkBAIC03OTMsNyArNzkzLDcgQEAgUGx1Z2luVmlldzo6UGx1Z2lu
VmlldyhGcmFtZSogcGFyZW50RnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUsIFBsdWdpblBhY2th
Z2UqIHAKIHZvaWQgUGx1Z2luVmlldzo6Zm9jdXNQbHVnaW5FbGVtZW50KCkKIHsKICAgICBpZiAo
UGFnZSogcGFnZSA9IG1fcGFyZW50RnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+Zm9jdXND
b250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQobV9lbGVtZW50LCBtX3BhcmVudEZyYW1lKTsK
KyAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQobV9lbGVt
ZW50LCAqbV9wYXJlbnRGcmFtZSk7CiAgICAgZWxzZQogICAgICAgICBtX3BhcmVudEZyYW1lLT5k
b2N1bWVudCgpLT5zZXRGb2N1c2VkRWxlbWVudChtX2VsZW1lbnQpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXgg
YTc3M2IxYWIxNDE3NGUwMjBjNjJkOWQwNDc4NmQyYTI4MjFjYjc4NC4uNzBjM2U2MjEzN2MzNDRj
NzAwOWU3MDQ3Yjk1MmEwZmI5YTZkYTY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xODksMTUgKzE4OSwxNSBA
QCBzdGF0aWMgQ09NUHRyPElQcm9wZXJ0eUJhZz4gY3JlYXRlV2luZG93RmVhdHVyZXNQcm9wZXJ0
eUJhZyhjb25zdCBXaW5kb3dGZWF0dXJlcwogICAgIHJldHVybiBDT01QdHI8SVByb3BlcnR5QmFn
PihBZG9wdENPTSwgQ09NUHJvcGVydHlCYWc8Q09NVmFyaWFudD46OmFkb3B0KG1hcCkpOwogfQog
Ci1QYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJhbWUsIGNvbnN0
IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24pCitQYWdlKiBXZWJDaHJvbWVDbGll
bnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBj
b25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5h
dmlnYXRpb25BY3Rpb24pCiB7CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiBkZWxlZ2F0ZSA9
IHVpRGVsZWdhdGUoKTsKICAgICBpZiAoIWRlbGVnYXRlKQogICAgICAgICByZXR1cm4gMDsKIAog
I2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCkgJiYg
ZnJhbWUtPmRvY3VtZW50KCktPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpKQotICAg
ICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOworICAgIGlm
IChmcmFtZS5kb2N1bWVudCgpICYmIGZyYW1lLmRvY3VtZW50KCktPndlYmtpdEN1cnJlbnRGdWxs
U2NyZWVuRWxlbWVudCgpKQorICAgICAgICBmcmFtZS5kb2N1bWVudCgpLT53ZWJraXRDYW5jZWxG
dWxsU2NyZWVuKCk7CiAjZW5kaWYKIAogICAgIENPTVB0cjxXZWJNdXRhYmxlVVJMUmVxdWVzdD4g
cmVxdWVzdCA9IGFkb3B0Q09NKFdlYk11dGFibGVVUkxSZXF1ZXN0OjpjcmVhdGVJbnN0YW5jZShS
ZXNvdXJjZVJlcXVlc3QobmF2aWdhdGlvbkFjdGlvbi51cmwoKSkpKTsKQEAgLTM2MSwxMiArMzYx
LDEyIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKiBmcmFt
ZSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSYgZnJhbWUpCiB7CiAgICAgQk9PTCByZXN1bHQgPSBU
UlVFOwogICAgIElXZWJVSURlbGVnYXRlKiB1aTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmll
dy0+dWlEZWxlZ2F0ZSgmdWkpKSAmJiB1aSkgewotICAgICAgICBXZWJGcmFtZSogd2ViRnJhbWUg
PSBraXQoZnJhbWUpOworICAgICAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBraXQoJmZyYW1lKTsK
ICAgICAgICAgdWktPnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlKG1fd2Vi
VmlldywgQlN0cmluZyhtZXNzYWdlKSwgd2ViRnJhbWUsICZyZXN1bHQpOwogICAgICAgICB1aS0+
UmVsZWFzZSgpOwogICAgIH0KQEAgLTU0MCw3ICs1NDAsNyBAQCBib29sIFdlYkNocm9tZUNsaWVu
dDo6c2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVyRW1iZWRkZWRP
YmplYwogICAgIHJldHVybiB1aURlbGVnYXRlUHJpdmF0ZTM7CiB9CiAKLXZvaWQgV2ViQ2hyb21l
Q2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCogZWxlbWVudCwg
UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVu
YXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuYXZhaWxh
YmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJFbWJlZGRlZE9i
amVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFz
b24pIGNvbnN0CiB7CiAgICAgQVNTRVJUX1VOVVNFRChwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNv
biwgcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gPT0gUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBs
dWdpbk1pc3NpbmcpOwogCkBAIC01NTIsNyArNTUyLDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJF
bWIKICAgICBpZiAoIXVpRGVsZWdhdGVQcml2YXRlMykKICAgICAgICAgcmV0dXJuOwogCi0gICAg
Q09NUHRyPElET01FbGVtZW50PiBlKEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5j
ZShlbGVtZW50KSk7CisgICAgQ09NUHRyPElET01FbGVtZW50PiBlKEFkb3B0Q09NLCBET01FbGVt
ZW50OjpjcmVhdGVJbnN0YW5jZSgmZWxlbWVudCkpOwogICAgIHVpRGVsZWdhdGVQcml2YXRlMy0+
ZGlkUHJlc3NNaXNzaW5nUGx1Z2luQnV0dG9uKGUuZ2V0KCkpOwogfQogCkBAIC01NjEsMjEgKzU2
MSwyMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmIHRv
b2xUaXAsIFRleHREaXJlY3Rpb24pCiAgICAgbV93ZWJWaWV3LT5zZXRUb29sVGlwKHRvb2xUaXAp
OwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1lKQordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lJiBmcmFtZSkKIHsKICAgICBDT01QdHI8SVdlYlVJ
RGVsZWdhdGU+IHVpRGVsZWdhdGU7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVs
ZWdhdGUoJnVpRGVsZWdhdGUpKSkKLSAgICAgICAgdWlEZWxlZ2F0ZS0+cHJpbnRGcmFtZShtX3dl
YlZpZXcsIGtpdChmcmFtZSkpOworICAgICAgICB1aURlbGVnYXRlLT5wcmludEZyYW1lKG1fd2Vi
Vmlldywga2l0KCZmcmFtZSkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50aWZp
ZXIsIERhdGFiYXNlRGV0YWlscykKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFi
YXNlUXVvdGEoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRpZmllciwg
RGF0YWJhc2VEZXRhaWxzKQogewotICAgIENPTVB0cjxXZWJTZWN1cml0eU9yaWdpbj4gb3JpZ2lu
KEFkb3B0Q09NLCBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlSW5zdGFuY2UoJmZyYW1lLT5kb2N1
bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSk7CisgICAgQ09NUHRyPFdlYlNlY3VyaXR5T3JpZ2lu
PiBvcmlnaW4oQWRvcHRDT00sIFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVJbnN0YW5jZSgmZnJh
bWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkpOwogICAgIENPTVB0cjxJV2ViVUlEZWxl
Z2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0
ZSgmdWlEZWxlZ2F0ZSkpKSB7CiAgICAgICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZVByaXZhdGU+
IHVpRGVsZWdhdGVQcml2YXRlKFF1ZXJ5LCB1aURlbGVnYXRlKTsKICAgICAgICAgaWYgKHVpRGVs
ZWdhdGVQcml2YXRlKQotICAgICAgICAgICAgdWlEZWxlZ2F0ZVByaXZhdGUtPmV4Y2VlZGVkRGF0
YWJhc2VRdW90YShtX3dlYlZpZXcsIGtpdChmcmFtZSksIG9yaWdpbi5nZXQoKSwgQlN0cmluZyhk
YXRhYmFzZUlkZW50aWZpZXIpKTsKKyAgICAgICAgICAgIHVpRGVsZWdhdGVQcml2YXRlLT5leGNl
ZWRlZERhdGFiYXNlUXVvdGEobV93ZWJWaWV3LCBraXQoJmZyYW1lKSwgb3JpZ2luLmdldCgpLCBC
U3RyaW5nKGRhdGFiYXNlSWRlbnRpZmllcikpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAg
IC8vIEZJWE1FOiByZW1vdmUgdGhpcyB3b3JrYXJvdW5kIG9uY2Ugc2hpcHBpbmcgU2FmYXJpIGhh
cyB0aGUgbmVjZXNzYXJ5IGRlbGVnYXRlIGltcGxlbWVudGVkLgogICAgICAgICAgICAgV0NIQVIg
cGF0aFtNQVhfUEFUSF07CkBAIC03MTcsMTIgKzcxNywxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6c2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpCiAgICAgbV93ZWJWaWV3LT5zZXRM
YXN0Q3Vyc29yKDo6R2V0Q3Vyc29yKCkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0
YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGlj
c0xheWVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZy
YW1lJiwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBtX3dlYlZpZXctPnNl
dFJvb3RDaGlsZExheWVyKGdyYXBoaWNzTGF5ZXIpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVu
dDo6YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciop
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZy
YW1lJiwgR3JhcGhpY3NMYXllciopCiB7CiAgICAgLy8gRklYTUU6IElmIHdlIHdhbnQgdmlldy1y
ZWxhdGl2ZSBwYWdlIG92ZXJsYXlzIGluIExlZ2FjeSBXZWJLaXQgb24gV2luZG93cywgdGhpcyB3
b3VsZCBiZSB0aGUgcGxhY2UgdG8gaG9vayB0aGVtIHVwLgogfQpAQCAtNzgxLDU5ICs3ODEsNjEg
QEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6Omhhc09wZW5lZFBvcHVwKCkgY29uc3QKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLVJlZlB0cjxQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRl
UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUmVmUHRyPFBvcHVwTWVu
dT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JiBjbGll
bnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVXaW4oY2xpZW50
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVXaW4oJmNsaWVudCkpOwogfQog
Ci1SZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBv
cHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxTZWFyY2hQb3B1
cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCYgY2xpZW50KSBjb25zdAogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9w
dXBNZW51V2luKGNsaWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBN
ZW51V2luKCZjbGllbnQpKTsKIH0KIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLWJvb2wg
V2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1l
bnQqIGVsZW1lbnQsIGJvb2wgcmVxdWVzdGluZ0tleWJvYXJkQWNjZXNzKQorCitib29sIFdlYkNo
cm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiBl
bGVtZW50LCBib29sIHJlcXVlc3RpbmdLZXlib2FyZEFjY2VzcykKIHsKICAgICBDT01QdHI8SVdl
YlVJRGVsZWdhdGU+IHVpRGVsZWdhdGU7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVp
RGVsZWdhdGUoJnVpRGVsZWdhdGUpKSkgewogICAgICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGVQ
cml2YXRlND4gdWlEZWxlZ2F0ZVByaXZhdGU0KFF1ZXJ5LCB1aURlbGVnYXRlKTsKICAgICAgICAg
Qk9PTCBzdXBwb3J0cyA9IEZBTFNFOwotICAgICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRvbUVs
ZW1lbnQoQWRvcHRDT00sIERPTUVsZW1lbnQ6OmNyZWF0ZUluc3RhbmNlKGNvbnN0X2Nhc3Q8RWxl
bWVudCo+KGVsZW1lbnQpKSk7CisgICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxlbWVu
dChBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoY29uc3RfY2FzdDxFbGVtZW50
Kj4oJmVsZW1lbnQpKSk7CiAKICAgICAgICAgaWYgKHVpRGVsZWdhdGVQcml2YXRlNCAmJiBTVUND
RUVERUQodWlEZWxlZ2F0ZVByaXZhdGU0LT5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGRv
bUVsZW1lbnQuZ2V0KCksIHJlcXVlc3RpbmdLZXlib2FyZEFjY2VzcywgJnN1cHBvcnRzKSkpCiAg
ICAgICAgICAgICByZXR1cm4gc3VwcG9ydHM7CiAgICAgfQogCi0gICAgcmV0dXJuIG1fd2ViVmll
dy0+c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50LCByZXF1ZXN0aW5nS2V5Ym9h
cmRBY2Nlc3MpOworICAgIHJldHVybiBtX3dlYlZpZXctPnN1cHBvcnRzRnVsbFNjcmVlbkZvckVs
ZW1lbnQoJmVsZW1lbnQsIHJlcXVlc3RpbmdLZXlib2FyZEFjY2Vzcyk7CiB9CiAKLXZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQp
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50
JiBlbGVtZW50KQogewogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKICAg
ICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CiAg
ICAgICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZVByaXZhdGU0PiB1aURlbGVnYXRlUHJpdmF0ZTQo
UXVlcnksIHVpRGVsZWdhdGUpOwotICAgICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1l
bnQoQWRvcHRDT00sIERPTUVsZW1lbnQ6OmNyZWF0ZUluc3RhbmNlKGVsZW1lbnQpKTsKKyAgICAg
ICAgQ09NUHRyPElET01FbGVtZW50PiBkb21FbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50Ojpj
cmVhdGVJbnN0YW5jZSgmZWxlbWVudCkpOwogICAgICAgICBpZiAodWlEZWxlZ2F0ZVByaXZhdGU0
ICYmIFNVQ0NFRURFRCh1aURlbGVnYXRlUHJpdmF0ZTQtPmVudGVyRnVsbFNjcmVlbkZvckVsZW1l
bnQoZG9tRWxlbWVudC5nZXQoKSkpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0gCiAKLSAg
ICBtX3dlYlZpZXctPnNldEZ1bGxTY3JlZW5FbGVtZW50KGVsZW1lbnQpOworICAgIG1fd2ViVmll
dy0+c2V0RnVsbFNjcmVlbkVsZW1lbnQoJmVsZW1lbnQpOwogICAgIG1fd2ViVmlldy0+ZnVsbFNj
cmVlbkNvbnRyb2xsZXIoKS0+ZW50ZXJGdWxsU2NyZWVuKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVu
dCkKIHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdhdGU7CiAgICAgaWYgKFNV
Q0NFRURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUpKSkgewogICAgICAgICBD
T01QdHI8SVdlYlVJRGVsZWdhdGVQcml2YXRlND4gdWlEZWxlZ2F0ZVByaXZhdGU0KFF1ZXJ5LCB1
aURlbGVnYXRlKTsKLSAgICAgICAgQ09NUHRyPElET01FbGVtZW50PiBkb21FbGVtZW50KEFkb3B0
Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZShlbGVtZW50KSk7CisgICAgICAgIENPTVB0
cjxJRE9NRWxlbWVudD4gZG9tRWxlbWVudChBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5z
dGFuY2UoJmVsZW1lbnQpKTsKICAgICAgICAgaWYgKHVpRGVsZWdhdGVQcml2YXRlNCAmJiBTVUND
RUVERUQodWlEZWxlZ2F0ZVByaXZhdGU0LT5leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoZG9tRWxl
bWVudC5nZXQoKSkpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEFTU0VSVChl
bGVtZW50ID09IG1fd2ViVmlldy0+ZnVsbFNjcmVlbkVsZW1lbnQoKSk7CisgICAgQVNTRVJUKCZl
bGVtZW50ID09IG1fd2ViVmlldy0+ZnVsbFNjcmVlbkVsZW1lbnQoKSk7CiAgICAgbV93ZWJWaWV3
LT5mdWxsU2NyZWVuQ29udHJvbGxlcigpLT5leGl0RnVsbFNjcmVlbigpOwogfQorCiAjZW5kaWYK
IAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OkFYU3RhcnRGcmFtZUxvYWQoKQpAQCAtODUyLDEwICs4
NTQsMTAgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OkFYRmluaXNoRnJhbWVMb2FkKCkKICAgICAg
ICAgZGVsZWdhdGUtPmZpcmVGcmFtZUxvYWRGaW5pc2hlZEV2ZW50cygpOwogfQogCi1ib29sIFdl
YkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZy
YW1lVmlldyogZnJhbWVWaWV3KSBjb25zdAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVz
ZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcmIGZyYW1lVmlldykgY29u
c3QKIHsKICNpZiAhVVNFKENBSVJPKQotICAgIHJldHVybiBmcmFtZVZpZXcgJiYgZnJhbWVWaWV3
LT5mcmFtZSgpLmlzTWFpbkZyYW1lKCk7CisgICAgcmV0dXJuIGZyYW1lVmlldy5mcmFtZSgpLmlz
TWFpbkZyYW1lKCk7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA5
Mjg3MmI0MWMxMmZiMzE1ZTU0MWVjYmRiOTVkYmNiMTU2NjI3MmRjLi5iZTIwMjg4ODQ4MDg3YTEx
NjYyZDdhNGIzYzliNDM4NDFlMzZjNzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzcsMTM3ICszNywxMzcgQEAgY2xh
c3MgV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTsKIAogaW50ZXJmYWNlIElXZWJVSURl
bGVnYXRlOwogCi1jbGFzcyBXZWJDaHJvbWVDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6Q2hyb21l
Q2xpZW50IHsKK2NsYXNzIFdlYkNocm9tZUNsaWVudCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpD
aHJvbWVDbGllbnQgewogcHVibGljOgogICAgIFdlYkNocm9tZUNsaWVudChXZWJWaWV3Kik7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCk7CisgICAgdm9pZCBjaHJvbWVEZXN0
cm95ZWQoKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRv
d1JlY3QoKTsKKyAgICB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0
JikgZmluYWw7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKSBmaW5hbDsKICAg
ICAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAgIFdlYkNv
cmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGZvY3Vz
KCk7Ci0gICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKTsKKyAgICB2b2lkIGZvY3VzKCkgZmluYWw7
CisgICAgdm9pZCB1bmZvY3VzKCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuVGFrZUZv
Y3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsKLSAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3Vz
KFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsKKyAgICBib29sIGNhblRha2VGb2N1cyhXZWJDb3Jl
OjpGb2N1c0RpcmVjdGlvbikgZmluYWw7CisgICAgdm9pZCB0YWtlRm9jdXMoV2ViQ29yZTo6Rm9j
dXNEaXJlY3Rpb24pIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGZvY3VzZWRFbGVtZW50Q2hh
bmdlZChXZWJDb3JlOjpFbGVtZW50Kik7Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzZWRGcmFtZUNo
YW5nZWQoV2ViQ29yZTo6RnJhbWUqKTsKKyAgICB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChX
ZWJDb3JlOjpFbGVtZW50KikgZmluYWw7CisgICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKFdl
YkNvcmU6OkZyYW1lKikgZmluYWw7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhZ2UqIGNyZWF0
ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3Qm
LCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRp
b25BY3Rpb24mKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2hvdygpOworICAgIFdlYkNvcmU6OlBhZ2Uq
IGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5h
dmlnYXRpb25BY3Rpb24mKSBmaW5hbDsKKyAgICB2b2lkIHNob3coKSBmaW5hbDsKIAotICAgIHZp
cnR1YWwgYm9vbCBjYW5SdW5Nb2RhbCgpOwotICAgIHZpcnR1YWwgdm9pZCBydW5Nb2RhbCgpOwor
ICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBmaW5hbDsKKyAgICB2b2lkIHJ1bk1vZGFsKCkgZmluYWw7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wpOwotICAgIHZpcnR1
YWwgYm9vbCB0b29sYmFyc1Zpc2libGUoKTsKKyAgICB2b2lkIHNldFRvb2xiYXJzVmlzaWJsZShi
b29sKSBmaW5hbDsKKyAgICBib29sIHRvb2xiYXJzVmlzaWJsZSgpIGZpbmFsOwogICAgIAotICAg
IHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJWaXNpYmxlKGJvb2wpOwotICAgIHZpcnR1YWwgYm9v
bCBzdGF0dXNiYXJWaXNpYmxlKCk7CisgICAgdm9pZCBzZXRTdGF0dXNiYXJWaXNpYmxlKGJvb2wp
IGZpbmFsOworICAgIGJvb2wgc3RhdHVzYmFyVmlzaWJsZSgpIGZpbmFsOwogICAgIAotICAgIHZp
cnR1YWwgdm9pZCBzZXRTY3JvbGxiYXJzVmlzaWJsZShib29sKTsKLSAgICB2aXJ0dWFsIGJvb2wg
c2Nyb2xsYmFyc1Zpc2libGUoKTsKKyAgICB2b2lkIHNldFNjcm9sbGJhcnNWaXNpYmxlKGJvb2wp
IGZpbmFsOworICAgIGJvb2wgc2Nyb2xsYmFyc1Zpc2libGUoKSBmaW5hbDsKICAgICAKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0TWVudWJhclZpc2libGUoYm9vbCk7Ci0gICAgdmlydHVhbCBib29sIG1l
bnViYXJWaXNpYmxlKCk7CisgICAgdm9pZCBzZXRNZW51YmFyVmlzaWJsZShib29sKSBmaW5hbDsK
KyAgICBib29sIG1lbnViYXJWaXNpYmxlKCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
UmVzaXphYmxlKGJvb2wpOworICAgIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpIGZpbmFsOwogCi0g
ICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNDOjpNZXNzYWdlU291cmNlLCBK
U0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgV1RGOjpTdHJpbmcmIHVybCk7
CisgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpN
ZXNzYWdlTGV2ZWwsIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVt
YmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFdURjo6U3RyaW5nJiB1cmwpIGZpbmFs
OwogCi0gICAgdmlydHVhbCBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpOwot
ICAgIHZpcnR1YWwgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgV1RGOjpT
dHJpbmcmIG1lc3NhZ2UsIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSk7CisgICAgYm9vbCBjYW5SdW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSBmaW5hbDsKKyAgICBib29sIHJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbChjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUm
KSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKTsKKyAgICB2b2lk
IGNsb3NlV2luZG93U29vbigpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3Jp
cHRBbGVydChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJik7Ci0gICAgdmlydHVh
bCBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpT
dHJpbmcmKTsKLSAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpG
cmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVm
YXVsdFZhbHVlLCBXVEY6OlN0cmluZyYgcmVzdWx0KTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U3Rh
dHVzYmFyVGV4dChjb25zdCBXVEY6OlN0cmluZyYpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFs
ZXJ0KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV1RGOjpTdHJpbmcmKSBmaW5hbDsKKyAgICBib29s
IHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV1RGOjpTdHJpbmcm
KSBmaW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUmLCBj
b25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlZmF1bHRWYWx1
ZSwgV1RGOjpTdHJpbmcmIHJlc3VsdCkgZmluYWw7CisgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0
KGNvbnN0IFdURjo6U3RyaW5nJikgZmluYWw7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OktleWJv
YXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCk7CisgICAgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUg
a2V5Ym9hcmRVSU1vZGUoKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9v
dFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlk
YXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgdmly
dHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpOwotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOworICAgIHZvaWQgaW52YWxpZGF0ZVJvb3RW
aWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIGludmFsaWRhdGVD
b250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsKKyAgICB2
b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYpIGZpbmFsOworICAgIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9s
bERlbHRhLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIGNsaXBSZWN0KSBmaW5hbDsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50
UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0Owot
ICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0
Zm9ybVBhZ2VDbGllbnQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hh
bmdlZChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdDsKKyAg
ICBXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JikgY29uc3QgZmluYWw7CisgICAgV2ViQ29yZTo6SW50UmVjdCByb290Vmlld1RvU2NyZWVu
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBmaW5hbDsKKyAgICBQbGF0Zm9ybVBhZ2VD
bGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBjb250ZW50
c1NpemVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNv
bnN0IGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkg
Y29uc3QgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0
IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29y
ZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25z
dDsKLSAgICB2aXJ0dWFsIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNv
cmU6OkVsZW1lbnQqLCBXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFp
bGFiaWxpdHlSZWFzb24pIGNvbnN0OworICAgIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2Uo
KSBjb25zdCBmaW5hbCB7IH0KKyAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0
IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSBmaW5hbDsK
KyAgICBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFdlYkNvcmU6
OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3Qg
ZmluYWw7CisgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6
RWxlbWVudCYsIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbikgY29uc3QgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChj
b25zdCBXVEY6OlN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24pOworICAgIHZvaWQgc2V0
VG9vbFRpcChjb25zdCBXVEY6OlN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24pIGZpbmFs
OwogCi0gICAgdmlydHVhbCB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKik7CisgICAgdm9pZCBw
cmludChXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVk
RGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29y
ZTo6RGF0YWJhc2VEZXRhaWxzKTsKKyAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJD
b3JlOjpGcmFtZSYsIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxz
KSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0
X3Qgc3BhY2VOZWVkZWQpOwotICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNl
TmVlZGVkKTsKKyAgICB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5l
ZWRlZCkgZmluYWw7CisgICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSBmaW5h
bDsKIAotICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUmLCBXZWJD
b3JlOjpGaWxlQ2hvb3NlciYpOwotICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNv
bnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpOworICAg
IHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6RmlsZUNob29zZXIm
KSBmaW5hbDsKKyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3Ry
aW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJikgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOwotICAgIHZpcnR1YWwgdm9pZCBz
ZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKTsKKyAgICB2b2lkIHNldEN1cnNvcihjb25z
dCBXZWJDb3JlOjpDdXJzb3ImKSBmaW5hbDsKKyAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGls
TW91c2VNb3Zlcyhib29sKSBmaW5hbDsKKyAgICB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1cnJl
bnRDdXJzb3IoKSBmaW5hbDsKIAogICAgIC8vIFBhc3MgMCBhcyB0aGUgR3JhcGhpY3NMYXllciB0
byBkZXRhdGNoIHRoZSByb290IGxheWVyLgotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3Jh
cGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKLSAg
ICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dGFjaFJvb3RHcmFw
aGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFs
OworICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1l
JiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwogICAgIC8vIFNldHMgYSBmbGFnIHRv
IHNwZWNpZnkgdGhhdCB0aGUgbmV4dCB0aW1lIGNvbnRlbnQgaXMgZHJhd24gdG8gdGhlIHdpbmRv
dywKICAgICAvLyB0aGUgY2hhbmdlcyBhcHBlYXIgb24gdGhlIHNjcmVlbiBpbiBzeW5jaHJvbnkg
d2l0aCB1cGRhdGVzIHRvIEdyYXBoaWNzTGF5ZXJzLgotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVk
c09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgeyB9CisgICAgdm9pZCBzZXROZWVkc09u
ZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgZmluYWwgeyB9CiAgICAgLy8gU2V0cyBhIGZs
YWcgdG8gc3BlY2lmeSB0aGF0IHRoZSB2aWV3IG5lZWRzIHRvIGJlIHVwZGF0ZWQsIHNvIHdlIG5l
ZWQKICAgICAvLyB0byBkbyBhbiBlYWdlciBsYXlvdXQgYmVmb3JlIHRoZSBkcmF3aW5nLgotICAg
IHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIHZvaWQg
c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBmaW5hbDsKIAogI2lmIFBMQVRGT1JNKFdJ
TikgJiYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBXZWJDb3JlOjpHcmFwaGljc0RldmljZUFkYXB0
ZXIqIGdyYXBoaWNzRGV2aWNlQWRhcHRlcigpIGNvbnN0IG92ZXJyaWRlOworICAgIFdlYkNvcmU6
OkdyYXBoaWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3QgZmlu
YWw7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IHsgfQorICAgIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBmaW5hbCB7IH0KIAogI2lmIEVOQUJMRShW
SURFTykKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKLSAgICB2aXJ0dWFs
IHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZp
ZGVvRWxlbWVudCYpOwotICAgIHZpcnR1YWwgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlk
ZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmKTsKKyAgICBib29sIHN1cHBvcnRz
VmlkZW9GdWxsc2NyZWVuKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxs
c2NyZWVuTW9kZSkgZmluYWw7CisgICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVv
RWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JikgZmluYWw7CisgICAgdm9pZCBleGl0
VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQm
KSBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShM
RUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNs
aWVudCogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRf
Y2FzdDxXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQqPihtX25vdGlmaWNhdGlvbnNEZWxlZ2F0
ZS5nZXQoKSk7IH0KKyAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQqIG5vdGlmaWNhdGlv
blByZXNlbnRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29y
ZTo6Tm90aWZpY2F0aW9uQ2xpZW50Kj4obV9ub3RpZmljYXRpb25zRGVsZWdhdGUuZ2V0KCkpOyB9
CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklz
TmF0dXJhbCgpOwotICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01l
bnVXcml0aW5nRGlyZWN0aW9uKCk7Ci0gICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1
cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7Ci0gICAgdmlydHVhbCBSZWZQ
dHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29y
ZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0Rp
cmVjdGlvbklzTmF0dXJhbCgpIGZpbmFsOworICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZv
bGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpIGZpbmFsOworICAgIGJvb2wgaGFzT3BlbmVkUG9w
dXAoKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQ
b3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CisgICAgUmVm
UHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNv
cmU6OlBvcHVwTWVudUNsaWVudCYpIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNv
bnN0IFdlYkNvcmU6OkVsZW1lbnQqLCBib29sIHdpdGhLZXlib2FyZCk7Ci0gICAgdmlydHVhbCB2
b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOwotICAgIHZp
cnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOwor
ICAgIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVt
ZW50JiwgYm9vbCB3aXRoS2V5Ym9hcmQpIGZpbmFsOworICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVu
Rm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CisgICAgdm9pZCBleGl0RnVsbFNj
cmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOwogI2VuZGlmCiAKLSAgICB2
b2lkIHdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoYm9vbCkgb3ZlcnJpZGUgeyB9CisgICAgdm9p
ZCB3aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKGJvb2wpIGZpbmFsIHsgfQogCiAgICAgV2ViVmll
dyogd2ViVmlldygpIHsgcmV0dXJuIG1fd2ViVmlldzsgfQogCi0gICAgdmlydHVhbCB2b2lkIEFY
U3RhcnRGcmFtZUxvYWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgQVhGaW5pc2hGcmFtZUxvYWQoKTsK
KyAgICB2b2lkIEFYU3RhcnRGcmFtZUxvYWQoKSBmaW5hbDsKKyAgICB2b2lkIEFYRmluaXNoRnJh
bWVMb2FkKCkgZmluYWw7CiAKLSAgICBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1l
Vmlldyhjb25zdCBXZWJDb3JlOjpGcmFtZVZpZXcqKSBjb25zdCBvdmVycmlkZTsKKyAgICBib29s
IHNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBXZWJDb3JlOjpGcmFtZVZp
ZXcmKSBjb25zdCBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+
IHVpRGVsZWdhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3Jv
bGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
U2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IGUxMTU1MjkxMDY0NzAxYjg4
YjdiMzJhYmNkMWYyZTY1NDMzZTI4OWUuLjQyMWM3NDU3YzkwM2I0N2UyZTFhN2I0ODg5ODgxZjU3
YzMwZWFjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcv
UmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Nj
cm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQg
UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3Jv
bGxpbmdOb2RlSUQgbm9kZUlECiAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9s
bGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgcmVwcmVz
ZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CiB9CiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5v
ZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGlu
Z05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQorUmVmPFNjcm9sbGlu
Z1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShT
Y3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKIHsKICAg
ICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2FzZSBGcmFtZVNjcm9sbGluZ05vZGU6CkBAIC0x
MjQsMTQgKzEyNCwxNSBAQCBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3Jv
bGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbAogICAgICAgICByZXR1cm4g
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6Y3JlYXRlKCp0aGlzLCBub2Rl
SUQpOwogI2Vsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVy
biBudWxscHRyOworICAgICAgICBicmVhazsKICNlbmRpZgogICAgIGNhc2UgRml4ZWROb2RlOgog
ICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2Rl
SUQpOwogICAgIGNhc2UgU3RpY2t5Tm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVT
dGlja3lOb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgfQotICAgIHJldHVybiBudWxs
cHRyOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTY3JvbGxpbmdUcmVl
Rml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKIHZvaWQgUmVtb3RlU2Nyb2xs
aW5nVHJlZTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlE
IG5vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1Ry
ZWUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5n
VHJlZS5oCmluZGV4IGQ2NWIyZjVlZDZkZGY1N2VjNDQwZGY0OTBkMmUxMTY4YzhlYzA1YzkuLjcz
MThjY2M4MTRjYTU3MTZkYzcwYzI0YjZjNDQxNzhkMjU2Y2RhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5o
CkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5OwogCi1jbGFzcyBSZW1vdGVTY3JvbGxpbmdUcmVlIDogcHVi
bGljIFdlYkNvcmU6OlNjcm9sbGluZ1RyZWUgeworY2xhc3MgUmVtb3RlU2Nyb2xsaW5nVHJlZSBm
aW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTY3JvbGxpbmdUcmVlIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFJlbW90ZVNjcm9sbGluZ1RyZWU+IGNyZWF0ZShSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5Jik7CiAgICAgdmlydHVhbCB+UmVtb3RlU2Nyb2xsaW5nVHJlZSgpOwpAQCAtNjUs
NyArNjUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRTY3Jv
bGwoKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZVR5cGUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisgICAgUmVmPFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShXZWJDb3JlOjpT
Y3JvbGxpbmdOb2RlVHlwZSwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKICAg
ICAKICAgICBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5JiBtX3Njcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4IDgwNTlh
ZDU1YWFlMzJmOGU1M2E3MDE5YjUyODdlZThiMDk0MGI5MTQuLmE3OWQxMGE5ZDUwNzcxMDQ1Y2U1
ODMwZWE1NzM3NGM4NDE4NTYyN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAg
LTM2OCwyMiArMzY4LDIyIEBAIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0UmVmIFdLQnVuZGxlUGFn
ZUdldEJhY2tGb3J3YXJkTGlzdChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlCiAKIHZvaWQgV0tCdW5k
bGVQYWdlSW5zdGFsbFBhZ2VPdmVybGF5KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRs
ZVBhZ2VPdmVybGF5UmVmIHBhZ2VPdmVybGF5UmVmKQogewotICAgIHRvSW1wbChwYWdlUmVmKS0+
bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSh0
b0ltcGwocGFnZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3Zlcmxh
eTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJhbWUo
KS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KCp0b0ltcGwocGFn
ZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1v
ZGU6OkRvTm90RmFkZSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlVW5pbnN0YWxsUGFnZU92ZXJs
YXkoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLQnVuZGxlUGFnZU92ZXJsYXlSZWYgcGFnZU92
ZXJsYXlSZWYpCiB7Ci0gICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJs
YXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkodG9JbXBsKHBhZ2VPdmVybGF5UmVm
KS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZh
ZGUpOworICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCp0b0ltcGwocGFnZU92ZXJsYXlSZWYpLT5jb3Jl
T3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiB9
CiAKIHZvaWQgV0tCdW5kbGVQYWdlSW5zdGFsbFBhZ2VPdmVybGF5V2l0aEFuaW1hdGlvbihXS0J1
bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQYWdlT3ZlcmxheVJlZiBwYWdlT3ZlcmxheVJl
ZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRy
b2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkodG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92
ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICB0b0lt
cGwocGFnZVJlZiktPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxs
UGFnZU92ZXJsYXkoKnRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNv
cmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdl
VW5pbnN0YWxsUGFnZU92ZXJsYXlXaXRoQW5pbWF0aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVm
LCBXS0J1bmRsZVBhZ2VPdmVybGF5UmVmIHBhZ2VPdmVybGF5UmVmKQogewotICAgIHRvSW1wbChw
YWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBh
Z2VPdmVybGF5KHRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6
OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWlu
RnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKnRv
SW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5
OjpGYWRlTW9kZTo6RmFkZSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2V0VG9wT3ZlcmhhbmdJ
bWFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tJbWFnZVJlZiBpbWFnZVJlZikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBE
RlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVj
YXRlZFBERlBsdWdpbi5tbQppbmRleCA4NTA5YWU2NTAyNGQ0ZWU1OTJlZDEyNWExMjEyMTQwZjA3
ZmNlMzFlLi40MWViMDM5NDZmYTlhNGFhZmQwZjhmMTYwOWJjMTNmMzc1N2Y5NWNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQ
bHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXBy
ZWNhdGVkUERGUGx1Z2luLm1tCkBAIC04NjAsNyArODYwLDcgQEAgSlNWYWx1ZVJlZiBQREZQbHVn
aW46OmpzUERGRG9jUHJpbnQoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
IEpTT2IKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjdHgpOwogCi0gICAgcGFnZS0+Y2hyb21lKCkucHJpbnQoY29yZUZyYW1lKTsKKyAgICBwYWdl
LT5jaHJvbWUoKS5wcmludCgqY29yZUZyYW1lKTsKIAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjdHgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwCmluZGV4IDU2MmE5YTJlMTU3YzQzYzVkZTc1YzNmNzI1NjMxMmRmZTRl
MTU3YmMuLmQ5YTQyODg2MWJlYzU2NDUzYTdmMGNlMTNkM2JmOTg5MWYzZDk5MjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTEx
MjgsNyArMTEyOCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6Zm9jdXNQbHVnaW5FbGVtZW50KCkKICAg
ICBBU1NFUlQoZnJhbWUoKSk7CiAgICAgCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFtZSgpLT5w
YWdlKCkpCi0gICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50
KG1fcGx1Z2luRWxlbWVudC5nZXQoKSwgZnJhbWUoKSk7CisgICAgICAgIHBhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG1fcGx1Z2luRWxlbWVudC5nZXQoKSwgKmZyYW1l
KCkpOwogICAgIGVsc2UKICAgICAgICAgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZEVs
ZW1lbnQobV9wbHVnaW5FbGVtZW50LmdldCgpKTsKIH0KQEAgLTE1MDgsNyArMTUwOCw3IEBAIHZv
aWQgUGx1Z2luVmlldzo6c2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmIHN0YXR1c2JhclRl
eHQpCiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBwYWdlLT5jaHJvbWUo
KS5zZXRTdGF0dXNiYXJUZXh0KGZyYW1lKCksIHN0YXR1c2JhclRleHQpOworICAgIHBhZ2UtPmNo
cm9tZSgpLnNldFN0YXR1c2JhclRleHQoKmZyYW1lKCksIHN0YXR1c2JhclRleHQpOwogfQogCiBi
b29sIFBsdWdpblZpZXc6OmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCmluZGV4IDQ5ODM0YzNhMzBlYmY5MjE1ZTlmNTRlOTFkY2IyNGVhMTNm
OTRjZWQuLmE4ZGZkZmM5NTMwZWUwNmYzMWM4ZjViMTRmZDY3MmZmZTI0YjIzY2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKQEAgLTEwMyw3ICsxMDMsNiBAQCBzdGF0aWMgZG91YmxlIGFyZWEo
V2ViRnJhbWUqIGZyYW1lKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHNpemUuaGVp
Z2h0KCkpICogc2l6ZS53aWR0aCgpOwogfQogCi0KIHN0YXRpYyBXZWJGcmFtZSogZmluZExhcmdl
c3RGcmFtZUluRnJhbWVTZXQoV2ViUGFnZSYgcGFnZSkKIHsKICAgICAvLyBBcHByb3hpbWF0ZSB3
aGF0IGEgdXNlciBjb3VsZCBjb25zaWRlciBhIGRlZmF1bHQgdGFyZ2V0IGZyYW1lIGZvciBhcHBs
aWNhdGlvbiBtZW51IG9wZXJhdGlvbnMuCkBAIC0xNzksMjAgKzE3OCwyMiBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6dW5mb2N1cygpCiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKLXZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9jdXMoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkK
Kwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRGb2N1cyhXZWJDb3JlOjpFbGVtZW50
JiBlbGVtZW50KQogewotICAgIG1fcGFnZS5lbGVtZW50RGlkRm9jdXMoY29uc3RfY2FzdDxXZWJD
b3JlOjpOb2RlKj4obm9kZSkpOworICAgIG1fcGFnZS5lbGVtZW50RGlkRm9jdXMoJmVsZW1lbnQp
OwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIoY29uc3QgV2ViQ29y
ZTo6Tm9kZSogbm9kZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkQmx1cihXZWJD
b3JlOjpFbGVtZW50JiBlbGVtZW50KQogewotICAgIG1fcGFnZS5lbGVtZW50RGlkQmx1cihjb25z
dF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihub2RlKSk7CisgICAgbV9wYWdlLmVsZW1lbnREaWRCbHVy
KCZlbGVtZW50KTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om1ha2VGaXJzdFJlc3BvbmRl
cigpCiB7CiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TWFrZUZpcnN0
UmVzcG9uZGVyKCkpOwotfSAgICAKK30KKwogI2VuZGlmICAgIAogCiBib29sIFdlYkNocm9tZUNs
aWVudDo6Y2FuVGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9uKQpAQCAtMjI3LDE2ICsyMjgsMTYgQEAg
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqIGZyYW1lKQog
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Rm9jdXNlZEZyYW1lQ2hhbmdlZCh3ZWJGcmFtZSA/
IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAwKSwgbV9wYWdlLnBhZ2VJRCgpKTsKIH0KIAotUGFnZSog
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZUxv
YWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgd2luZG93RmVhdHVyZXMs
IGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24pCitQYWdlKiBXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiB3aW5kb3dGZWF0dXJlcywgY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbikKIHsKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCi0gICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpICYmIGZyYW1lLT5kb2N1bWVudCgp
LT53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkKLSAgICAgICAgZnJhbWUtPmRvY3Vt
ZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsKKyAgICBpZiAoZnJhbWUuZG9jdW1lbnQo
KSAmJiBmcmFtZS5kb2N1bWVudCgpLT53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkK
KyAgICAgICAgZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOwogI2Vu
ZGlmCiAKICAgICBhdXRvJiB3ZWJQcm9jZXNzID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCk7CiAK
LSAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUp
OworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1l
KTsKIAogICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhOwogICAg
IG5hdmlnYXRpb25BY3Rpb25EYXRhLm5hdmlnYXRpb25UeXBlID0gbmF2aWdhdGlvbkFjdGlvbi50
eXBlKCk7CkBAIC0yNTAsNyArMjUxLDcgQEAgUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVX
aW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXMKIAogICAg
IHVpbnQ2NF90IG5ld1BhZ2VJRCA9IDA7CiAgICAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBw
YXJhbWV0ZXJzOwotICAgIGlmICghd2ViUHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlKHdlYkZyYW1l
LT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGZyYW1lKSwgcmVxdWVz
dC5yZXNvdXJjZVJlcXVlc3QoKSwgd2luZG93RmVhdHVyZXMsIG5hdmlnYXRpb25BY3Rpb25EYXRh
KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6UmVwbHkobmV3UGFnZUlE
LCBwYXJhbWV0ZXJzKSwgbV9wYWdlLnBhZ2VJRCgpKSkKKyAgICBpZiAoIXdlYlByb2Nlc3MucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
Q3JlYXRlTmV3UGFnZSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZy
b21GcmFtZSgmZnJhbWUpLCByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCB3aW5kb3dGZWF0dXJl
cywgbmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVO
ZXdQYWdlOjpSZXBseShuZXdQYWdlSUQsIHBhcmFtZXRlcnMpLCBtX3BhZ2UucGFnZUlEKCkpKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmICghbmV3UGFnZUlEKQpAQCAtMzYxLDkg
KzM2Miw5IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwoKQogICAgIHJldHVybiBtX3BhZ2UuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KCk7CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSogZnJhbWUpCitib29sIFdlYkNocm9tZUNs
aWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
RnJhbWUmIGZyYW1lKQogewotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9t
Q29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZy
b21Db3JlRnJhbWUoZnJhbWUpOwogCiAgICAgYm9vbCBzaG91bGRDbG9zZSA9IGZhbHNlOwogCkBA
IC00MDIsMTIgKzQwMywxMiBAQCBzdGF0aWMgYm9vbCBzaG91bGRTdXBwcmVzc0phdmFTY3JpcHRE
aWFsb2dzKEZyYW1lJiBmcmFtZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcm
IGFsZXJ0VGV4dCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJh
bWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIGFsZXJ0VGV4dCkKIHsKLSAgICBpZiAoc2hvdWxkU3Vw
cHJlc3NKYXZhU2NyaXB0RGlhbG9ncygqZnJhbWUpKQorICAgIGlmIChzaG91bGRTdXBwcmVzc0ph
dmFTY3JpcHREaWFsb2dzKGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViRnJhbWUq
IHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFt
ZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAgICAgQVNTRVJU
KHdlYkZyYW1lKTsKIAogICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVudC4KQEAgLTQxNSwx
NSArNDE2LDE1IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJh
bWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGFsZXJ0VGV4dCkKIAogICAgIEhhbmdEZXRlY3Rpb25E
aXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlzYWJsZXI7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlP
cmlnaW5EYXRhOjpmcm9tRnJhbWUoZnJhbWUpLCBhbGVydFRleHQpLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OlJlcGx5KCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vj
b25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9j
ZXNzV2lsbFN1c3BlbmQpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFT
Y3JpcHRBbGVydCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21G
cmFtZSgmZnJhbWUpLCBhbGVydFRleHQpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZh
U2NyaXB0QWxlcnQ6OlJlcGx5KCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHko
KSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQp
OwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUq
IGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVu
SmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7
Ci0gICAgaWYgKHNob3VsZFN1cHByZXNzSmF2YVNjcmlwdERpYWxvZ3MoKmZyYW1lKSkKKyAgICBp
ZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncyhmcmFtZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZy
YW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3Jl
RnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKICAgICAvLyBOb3RpZnkgdGhl
IGJ1bmRsZSBjbGllbnQuCkBAIC00MzIsMTggKzQzMywxOCBAQCBib29sIFdlYkNocm9tZUNsaWVu
dDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCiAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxlcjsKIAog
ICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9y
aWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIG1lc3NhZ2UpLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6UmVwbHkocmVzdWx0KSwgbV9wYWdlLnBhZ2VJRCgp
LCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9y
bVByb2Nlc3NXaWxsU3VzcGVuZCkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdp
bkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBtZXNzYWdlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OlJlcGx5KHJlc3VsdCksIG1fcGFnZS5wYWdlSUQoKSwg
U2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Q
cm9jZXNzV2lsbFN1c3BlbmQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChG
cmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0
VmFsdWUsIFN0cmluZyYgcmVzdWx0KQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3Jp
cHRQcm9tcHQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKIHsKLSAgICBpZiAoc2hvdWxkU3VwcHJl
c3NKYXZhU2NyaXB0RGlhbG9ncygqZnJhbWUpKQorICAgIGlmIChzaG91bGRTdXBwcmVzc0phdmFT
Y3JpcHREaWFsb2dzKGZyYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgV2ViRnJh
bWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAgICAgQVNT
RVJUKHdlYkZyYW1lKTsKIAogICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVudC4KQEAgLTQ1
MSw3ICs0NTIsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChG
cmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgYwogCiAgICAgSGFuZ0RldGVjdGlv
bkRpc2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxlcjsKIAotICAgIGlmICghV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBT
ZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIG1lc3NhZ2UsIGRlZmF1bHRWYWx1
ZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OlJlcGx5KHJl
c3VsdCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3lu
Y09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpKQorICAgIGlmICghV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdCh3ZWJGcmFtZS0+ZnJh
bWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBtZXNzYWdlLCBk
ZWZhdWx0VmFsdWUpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0
OjpSZXBseShyZXN1bHQpLCBtX3BhZ2UucGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCksIElQ
Qzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuICFyZXN1bHQuaXNOdWxsKCk7CkBAIC01
NTYsNyArNTU3LDcgQEAgUGxhdGZvcm1QYWdlQ2xpZW50IFdlYkNocm9tZUNsaWVudDo6cGxhdGZv
cm1QYWdlQ2xpZW50KCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRTaXplJiBz
aXplKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJh
bWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogewogICAgIGlmICghbV9wYWdl
LmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpKSB7CiAgICAg
ICAgIFdlYkZyYW1lKiBsYXJnZXN0RnJhbWUgPSBmaW5kTGFyZ2VzdEZyYW1lSW5GcmFtZVNldCht
X3BhZ2UpOwpAQCAtNTY2LDE0ICs1NjcsMTQgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRl
bnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb24KICAg
ICAgICAgfQogICAgIH0KIAotICAgIGlmICgmZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkgIT0g
ZnJhbWUpCisgICAgaWYgKCZmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgpICE9ICZmcmFtZSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGlkQ2hhbmdlQ29udGVudFNpemUoc2l6ZSkpOwogCiAgICAgbV9wYWdlLmRyYXdpbmdBcmVhKCkt
Pm1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChzaXplKTsKIAotICAgIEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gZnJhbWUtPnZpZXcoKTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGZyYW1l
LnZpZXcoKTsKICAgICBpZiAoZnJhbWVWaWV3ICYmICFmcmFtZVZpZXctPmRlbGVnYXRlc1Njcm9s
bGluZygpKSAgewogICAgICAgICBib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIgPSBmcmFtZVZp
ZXctPmhvcml6b250YWxTY3JvbGxiYXIoKTsKICAgICAgICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9s
bGJhciA9IGZyYW1lVmlldy0+dmVydGljYWxTY3JvbGxiYXIoKTsKQEAgLTYxMSwyMSArNjEyLDIx
IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VC
ZUJ1dHRvbihSZW5kZXJFbWJlZGRlZE9iamVjCiAgICAgcmV0dXJuIGZhbHNlOwogfQogICAgIAot
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVt
ZW50KiBlbGVtZW50LCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlS
ZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0Cit2b2lkIFdlYkNocm9tZUNs
aWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVsZW1lbnQmIGVsZW1lbnQsIFJl
bmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2
YWlsYWJpbGl0eVJlYXNvbikgY29uc3QKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQ
SSkKLSAgICBBU1NFUlQoZWxlbWVudC0+aGFzVGFnTmFtZShvYmplY3RUYWcpIHx8IGVsZW1lbnQt
Pmhhc1RhZ05hbWUoZW1iZWRUYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoYXBwbGV0VGFnKSk7
CisgICAgQVNTRVJUKGVsZW1lbnQuaGFzVGFnTmFtZShvYmplY3RUYWcpIHx8IGVsZW1lbnQuaGFz
VGFnTmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGFwcGxldFRhZykpOwogICAg
IEFTU0VSVChwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiA9PSBSZW5kZXJFbWJlZGRlZE9iamVj
dDo6UGx1Z2luTWlzc2luZyB8fCBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiA9PSBSZW5kZXJF
bWJlZGRlZE9iamVjdDo6SW5zZWN1cmVQbHVnaW5WZXJzaW9uIHx8IHBsdWdpblVuYXZhaWxhYmls
aXR5UmVhc29uKTsKIAotICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIHBsdWdpbkVsZW1lbnQg
PSBzdGF0aWNfY2FzdDxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Kj4oZWxlbWVudCk7CisgICAgYXV0
byYgcGx1Z2luRWxlbWVudCA9IGRvd25jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ+KGVsZW1l
bnQpOwogCi0gICAgU3RyaW5nIGZyYW1lVVJMU3RyaW5nID0gcGx1Z2luRWxlbWVudC0+ZG9jdW1l
bnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZVVSTCgpLnN0
cmluZygpOworICAgIFN0cmluZyBmcmFtZVVSTFN0cmluZyA9IHBsdWdpbkVsZW1lbnQuZG9jdW1l
bnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZVVSTCgpLnN0
cmluZygpOwogICAgIFN0cmluZyBwYWdlVVJMU3RyaW5nID0gbV9wYWdlLm1haW5GcmFtZSgpLT5s
b2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZVVSTCgpLnN0cmluZygpOwotICAgIFN0
cmluZyBwbHVnaW5VUkxTdHJpbmcgPSBwbHVnaW5FbGVtZW50LT5kb2N1bWVudCgpLmNvbXBsZXRl
VVJMKHBsdWdpbkVsZW1lbnQtPnVybCgpKS5zdHJpbmcoKTsKLSAgICBVUkwgcGx1Z2luc3BhZ2VB
dHRyaWJ1dGVVUkwgPSBlbGVtZW50LT5kb2N1bWVudCgpLmNvbXBsZXRlVVJMKHN0cmlwTGVhZGlu
Z0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhwbHVnaW5FbGVtZW50LT5nZXRBdHRyaWJ1dGUocGx1Z2lu
c3BhZ2VBdHRyKSkpOworICAgIFN0cmluZyBwbHVnaW5VUkxTdHJpbmcgPSBwbHVnaW5FbGVtZW50
LmRvY3VtZW50KCkuY29tcGxldGVVUkwocGx1Z2luRWxlbWVudC51cmwoKSkuc3RyaW5nKCk7Cisg
ICAgVVJMIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMID0gcGx1Z2luRWxlbWVudC5kb2N1bWVudCgp
LmNvbXBsZXRlVVJMKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhwbHVnaW5FbGVt
ZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24ocGx1Z2luc3BhZ2VBdHRyKSkpOwog
ICAgIGlmICghcGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgp
KQogICAgICAgICBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTCA9IFVSTCgpOwotICAgIG1fcGFnZS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tl
ZChwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgcGx1Z2luRWxlbWVudC0+c2VydmljZVR5cGUo
KSwgcGx1Z2luVVJMU3RyaW5nLCBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTC5zdHJpbmcoKSwgZnJh
bWVVUkxTdHJpbmcsIHBhZ2VVUkxTdHJpbmcpKTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQocGx1Z2luVW5hdmFp
bGFiaWxpdHlSZWFzb24sIHBsdWdpbkVsZW1lbnQuc2VydmljZVR5cGUoKSwgcGx1Z2luVVJMU3Ry
aW5nLCBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTC5zdHJpbmcoKSwgZnJhbWVVUkxTdHJpbmcsIHBh
Z2VVUkxTdHJpbmcpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGVsZW1lbnQpOwogICAgIFVO
VVNFRF9QQVJBTShwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbik7CkBAIC02NjAsOSArNjYxLDkg
QEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlw
LCBUZXh0RGlyZWN0aW9uKQogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlNldFRvb2xUaXAobV9jYWNoZWRUb29sVGlwKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpwcmludChGcmFtZSogZnJhbWUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUm
IGZyYW1lKQogewotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZy
YW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3Jl
RnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKICNpZiBQTEFURk9STShHVEsp
ICYmIEhBVkUoR1RLX1VOSVhfUFJJTlRJTkcpCkBAIC02ODgsMTIgKzY4OSwxMiBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1lKQogICAgIG1fcGFnZS5zZW5kU3luYyhN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQcmludEZyYW1lKHdlYkZyYW1lLT5mcmFtZUlEKCkpLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQcmludEZyYW1lOjpSZXBseSgpLCBTZWNvbmRzOjppbmZp
bml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3Vz
cGVuZCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEo
RnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxz
IGRldGFpbHMpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZy
YW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscyBk
ZXRhaWxzKQogewotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZy
YW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3Jl
RnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAgICAgCi0gICAgYXV0byYgb3Jp
Z2luID0gZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCk7CisgICAgYXV0byYgb3Jp
Z2luID0gZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKICAgICBhdXRvIG9yaWdp
bkRhdGEgPSBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihvcmlnaW4pOwog
ICAgIGF1dG8mIHRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnNpbmdsZXRvbigpOwogICAgIGF1
dG8gY3VycmVudFF1b3RhID0gdHJhY2tlci5xdW90YShvcmlnaW5EYXRhKTsKQEAgLTcxNiw5ICs3
MTcsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2
NF90KQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpy
ZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4s
IGludDY0X3QgdG90YWxCeXRlc05lZWRlZCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVk
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGludDY0
X3QgdG90YWxCeXRlc05lZWRlZCkKIHsKLSAgICBSZWZQdHI8QVBJOjpTZWN1cml0eU9yaWdpbj4g
c2VjdXJpdHlPcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG9y
aWdpbi0+dG9TdHJpbmcoKSk7CisgICAgUmVmUHRyPEFQSTo6U2VjdXJpdHlPcmlnaW4+IHNlY3Vy
aXR5T3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW4u
dG9TdHJpbmcoKSk7CiAgICAgaWYgKG1fcGFnZS5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkuZGlk
UmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoJm1fcGFnZSwgc2VjdXJpdHlPcmlnaW4u
Z2V0KCksIHRvdGFsQnl0ZXNOZWVkZWQpKQogICAgICAgICByZXR1cm47CiAKQEAgLTcyOSwxNyAr
NzMwLDE5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sCiAKICAgICB1aW50NjRfdCBuZXdRdW90
YSA9IDA7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZFN5bmMoCi0gICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhOjpm
cm9tU2VjdXJpdHlPcmlnaW4oKm9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCksIGN1cnJlbnRR
dW90YSwgdG90YWxCeXRlc05lZWRlZCksCisgICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSwg
Y3VycmVudFF1b3RhLCB0b3RhbEJ5dGVzTmVlZGVkKSwKICAgICAgICAgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YTo6UmVwbHkobmV3UXVv
dGEpLCBtX3BhZ2UucGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNP
cHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKTsKIAotICAgIGNhY2hlU3Rv
cmFnZS5zdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbihvcmlnaW4sIG5ld1F1b3RhKTsKKyAgICBj
YWNoZVN0b3JhZ2Uuc3RvcmVVcGRhdGVkUXVvdGFGb3JPcmlnaW4oJm9yaWdpbiwgbmV3UXVvdGEp
OwogfQogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQorCiB2b2lkIFdlYkNocm9tZUNs
aWVudDo6YW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CisKICNlbmRpZgogCiBib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkUmVwbGFjZVdpdGhH
ZW5lcmF0ZWRGaWxlRm9yVXBsb2FkKGNvbnN0IFN0cmluZyYgcGF0aCwgU3RyaW5nJiBnZW5lcmF0
ZWRGaWxlbmFtZSkKQEAgLTc1NCwxMCArNzU3LDEyIEBAIFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6
OmdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkKIH0KIAogI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQotc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gV2Vi
Q2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiBjbGll
bnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCisKK3N0ZDo6dW5pcXVlX3B0cjxDb2xvckNo
b29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNs
aWVudCYgY2xpZW50LCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQogewotICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFdlYkNvbG9yQ2hvb3Nlcj4oJm1fcGFnZSwgY2xpZW50LCBpbml0aWFs
Q29sb3IpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvbG9yQ2hvb3Nlcj4oJm1f
cGFnZSwgJmNsaWVudCwgaW5pdGlhbENvbG9yKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUmIGZyYW1lLCBGaWxlQ2hvb3NlciYgZmlsZUNo
b29zZXIpCkBAIC04MzIsMTQgKzgzNywxNCBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6aGFzT3Bl
bmVkUG9wdXAoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUmVmUHRyPFdlYkNvcmU6
OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9w
dXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBX
ZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQm
IGNsaWVudCkgY29uc3QKIHsKLSAgICByZXR1cm4gV2ViUG9wdXBNZW51OjpjcmVhdGUoJm1fcGFn
ZSwgY2xpZW50KTsKKyAgICByZXR1cm4gV2ViUG9wdXBNZW51OjpjcmVhdGUoJm1fcGFnZSwgJmNs
aWVudCk7CiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNs
aWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xp
ZW50KSBjb25zdAorUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xp
ZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JiBjbGll
bnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdlYlNlYXJjaFBvcHVwTWVudTo6Y3JlYXRlKCZtX3Bh
Z2UsIGNsaWVudCk7CisgICAgcmV0dXJuIFdlYlNlYXJjaFBvcHVwTWVudTo6Y3JlYXRlKCZtX3Bh
Z2UsICZjbGllbnQpOwogfQogCiBHcmFwaGljc0xheWVyRmFjdG9yeSogV2ViQ2hyb21lQ2xpZW50
OjpncmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0CkBAIC04NTgsNyArODYzLDcgQEAgUmVmUHRy
PFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVE
aXNwbGF5UmVmcmVzaE1vbmkKIAogI2VuZGlmCiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRh
Y2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqIGxheWVyKQordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NM
YXllciogbGF5ZXIpCiB7CiAgICAgaWYgKGxheWVyKQogICAgICAgICBtX3BhZ2UuZW50ZXJBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllcik7CkBAIC04NjYsMTAgKzg3MSwxMCBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGlj
c0xheWVyKiBsYXllcikKICAgICAgICAgbV9wYWdlLmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZSgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlHcmFw
aGljc0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUm
IGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQogewogICAgIGlmIChhdXRvIGRy
YXdpbmdBcmVhID0gbV9wYWdlLmRyYXdpbmdBcmVhKCkpCi0gICAgICAgIGRyYXdpbmdBcmVhLT5h
dHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoZnJhbWUsIGdyYXBoaWNzTGF5ZXIpOworICAg
ICAgICBkcmF3aW5nQXJlYS0+YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKCZmcmFtZSwg
Z3JhcGhpY3NMYXllcik7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXROZWVkc09uZVNo
b3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkKQEAgLTg5OCw5ICs5MDMsOSBAQCBib29sIFdlYkNo
cm9tZUNsaWVudDo6bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0CiAKICNpZiBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UqIHBhZ2UpIGNvbnN0
CitSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2Ny
b2xsaW5nQ29vcmRpbmF0b3IoUGFnZSYgcGFnZSkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9wYWdl
LmNvcmVQYWdlKCkgPT0gcGFnZSk7CisgICAgQVNTRVJUX1VOVVNFRChwYWdlLCBtX3BhZ2UuY29y
ZVBhZ2UoKSA9PSAmcGFnZSk7CiAgICAgaWYgKG1fcGFnZS5kcmF3aW5nQXJlYSgpLT50eXBlKCkg
IT0gRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICByZXR1cm4gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNyZWF0ZSgmbV9wYWdl
KTsKQEAgLTk0OSwxOSArOTU0LDE5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9G
dWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihXZWJDb3JlOjpIVE1MVmlkCiAKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1
bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqLCBib29sIHdpdGhLZXli
b2FyZCkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50
KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmLCBib29sIHdpdGhLZXlib2FyZCkKIHsKICAgICByZXR1
cm4gbV9wYWdlLmZ1bGxTY3JlZW5NYW5hZ2VyKCktPnN1cHBvcnRzRnVsbFNjcmVlbih3aXRoS2V5
Ym9hcmQpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxl
bWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCkKIHsKLSAg
ICBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChl
bGVtZW50KTsKKyAgICBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+ZW50ZXJGdWxsU2NyZWVu
Rm9yRWxlbWVudCgmZWxlbWVudCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVs
bFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCkKK3ZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYgZWxl
bWVudCkKIHsKLSAgICBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+ZXhpdEZ1bGxTY3JlZW5G
b3JFbGVtZW50KGVsZW1lbnQpOworICAgIG1fcGFnZS5mdWxsU2NyZWVuTWFuYWdlcigpLT5leGl0
RnVsbFNjcmVlbkZvckVsZW1lbnQoJmVsZW1lbnQpOwogfQogCiAjZW5kaWYKQEAgLTEwNDksMjkg
KzEwNTQsMjkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpc2FibGVTdWRkZW5UZXJtaW5hdGlv
bigpCiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlzYWJsZVN1
ZGRlblRlcm1pbmF0aW9uKCkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkQWRkSGVh
ZGVyTGF5ZXIoR3JhcGhpY3NMYXllciogaGVhZGVyUGFyZW50KQordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmRpZEFkZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5ZXImIGhlYWRlclBhcmVudCkKIHsKICNp
ZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgaWYgKFBhZ2VCYW5uZXIqIGJhbm5lciA9IG1f
cGFnZS5oZWFkZXJQYWdlQmFubmVyKCkpCi0gICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50TGF5
ZXIoaGVhZGVyUGFyZW50KTsKKyAgICAgICAgYmFubmVyLT5kaWRBZGRQYXJlbnRMYXllcigmaGVh
ZGVyUGFyZW50KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGhlYWRlclBhcmVudCk7CiAjZW5k
aWYKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEZvb3RlckxheWVyKEdyYXBoaWNz
TGF5ZXIqIGZvb3RlclBhcmVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRGb290ZXJM
YXllcihHcmFwaGljc0xheWVyJiBmb290ZXJQYXJlbnQpCiB7CiAjaWYgRU5BQkxFKFJVQkJFUl9C
QU5ESU5HKQogICAgIGlmIChQYWdlQmFubmVyKiBiYW5uZXIgPSBtX3BhZ2UuZm9vdGVyUGFnZUJh
bm5lcigpKQotICAgICAgICBiYW5uZXItPmRpZEFkZFBhcmVudExheWVyKGZvb3RlclBhcmVudCk7
CisgICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50TGF5ZXIoJmZvb3RlclBhcmVudCk7CiAjZWxz
ZQogICAgIFVOVVNFRF9QQVJBTShmb290ZXJQYXJlbnQpOwogI2VuZGlmCiB9CiAKLWJvb2wgV2Vi
Q2hyb21lQ2xpZW50OjpzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJh
bWVWaWV3KiBmcmFtZVZpZXcpIGNvbnN0Citib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNl
VGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaWV3KSBjb25z
dAogewotICAgIHJldHVybiBtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+c2hvdWxkVXNlVGlsZWRCYWNr
aW5nRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7CisgICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5nQXJl
YSgpLT5zaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoJmZyYW1lVmlldyk7CiB9CiAK
IHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUsIHVpbnQ2NF90IHNvdXJjZUVsZW1l
bnRJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDVjOWQ3NzNhNzJjMDYwOGMwMjA2OGFjMWQ5
ZGRmNDVkNGEwYmQ5YzUuLjBhMDgwMDRmZmVmZWVjYmI0MTM0NDAzNmYwMmZkYTk0MTc0ZGFjZTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIC8v
IEZyYW1lIHdhbnRzIHRvIGNyZWF0ZSB0aGUgbmV3IFBhZ2UuICBBbHNvLCB0aGUgbmV3bHkgY3Jl
YXRlZCB3aW5kb3cKICAgICAvLyBzaG91bGQgbm90IGJlIHNob3duIHRvIHRoZSB1c2VyIHVudGls
IHRoZSBDaHJvbWVDbGllbnQgb2YgdGhlIG5ld2x5CiAgICAgLy8gY3JlYXRlZCBQYWdlIGhhcyBp
dHMgc2hvdyBtZXRob2QgY2FsbGVkLgotICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhX
ZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBX
ZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24m
KSBmaW5hbDsKKyAgICBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWUm
LCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93
RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWw7CiAgICAg
dm9pZCBzaG93KCkgZmluYWw7CiAgICAgCiAgICAgYm9vbCBjYW5SdW5Nb2RhbCgpIGZpbmFsOwpA
QCAtODcsMTMgKzg3LDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xl
KEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZUlEKSBmaW5hbDsKICAgICAKICAgICBib29sIGNhblJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbCgpIGZpbmFsOwotICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKKyAgICBi
b29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFdl
YkNvcmU6OkZyYW1lJikgZmluYWw7CiAgICAgCiAgICAgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSBm
aW5hbDsKICAgICAKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSos
IGNvbnN0IFN0cmluZyYpIGZpbmFsOwotICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2Vi
Q29yZTo6RnJhbWUqLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKLSAgICBib29sIHJ1bkphdmFTY3Jp
cHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgZmluYWw7CisgICAgdm9pZCBydW5K
YXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAg
ICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3RyaW5n
JikgZmluYWw7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lJiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5n
JiByZXN1bHQpIGZpbmFsOwogICAgIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcm
KSBmaW5hbDsKIAogICAgIFdlYkNvcmU6OktleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkg
ZmluYWw7CkBAIC0xMTcsMjMgKzExNywyMyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBQbGF0
Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgZmluYWw7Ci0gICAgdm9p
ZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJDb3Jl
OjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgZmluYWw7
IC8vIEN1cnJlbnRseSBvbmx5IE1hYyBoYXMgYSBub24gZW1wdHkgaW1wbGVtZW50YXRpb24uCiAK
ICAgICBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFdlYkNvcmU6
OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3Qg
ZmluYWw7Ci0gICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6
RWxlbWVudCosIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbikgY29uc3QgZmluYWw7CisgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVudCYsIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0
OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHNj
cm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBtb3VzZURpZE1v
dmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9k
aWZpZXJGbGFncykgZmluYWw7CiAKICAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwg
V2ViQ29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7CiAgICAgCi0gICAgdm9pZCBwcmludChXZWJD
b3JlOjpGcmFtZSopIGZpbmFsOworICAgIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUmKSBmaW5h
bDsKIAotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwgY29u
c3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscykgZmluYWw7
CisgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBT
dHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKIAog
ICAgIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKSBmaW5h
bDsKLSAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHNwYWNlTmVlZGVkKSBmaW5hbDsKKyAgICB2b2lkIHJl
YWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
LCBpbnQ2NF90IHNwYWNlTmVlZGVkKSBmaW5hbDsKIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQ
UE9SVCkKICAgICB2b2lkIGFubm90YXRlZFJlZ2lvbnNDaGFuZ2VkKCkgZmluYWw7CkBAIC0xNDMs
NyArMTQzLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGUo
Y29uc3QgU3RyaW5nJiBwYXRoKSBmaW5hbDsKICAgICAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9D
T0xPUikKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVD
b2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgV2ViQ29yZTo6
Q29sb3ImKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2Vy
PiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3Qg
V2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9F
VkVOVFMpCkBAIC0xNTIsMTAgKzE1MiwxMCBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oSU9T
KQogICAgIHZvaWQgZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoYm9vbCkgZmluYWw7Ci0gICAgdm9p
ZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoV2ViQ29yZTo6RnJhbWUqLCBib29sKSBmaW5h
bDsKLSAgICB2b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShXZWJDb3JlOjpGcmFtZSopIGZpbmFs
OwotICAgIHZvaWQgY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKFdlYkNvcmU6OkZyYW1lKikg
ZmluYWw7Ci0gICAgdm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUo
V2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKKyAgICB2b2lkIHNldE5lZWRzU2Nyb2xsTm90aWZpY2F0
aW9ucyhXZWJDb3JlOjpGcmFtZSYsIGJvb2wpIGZpbmFsOworICAgIHZvaWQgb2JzZXJ2ZWRDb250
ZW50Q2hhbmdlKFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CisgICAgdm9pZCBjbGVhckNvbnRlbnRD
aGFuZ2VPYnNlcnZlcnMoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKKyAgICB2b2lkIG5vdGlmeVJl
dmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwog
ICAgIGJvb2wgaXNTdG9wcGluZygpIGZpbmFsOwogCiAgICAgdm9pZCBkaWRMYXlvdXQoTGF5b3V0
VHlwZSA9IE5vcm1hbExheW91dCkgZmluYWw7CkBAIC0yMDMsMTIgKzIwMywxMiBAQCBwcml2YXRl
OgogICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBmaW5hbDsK
ICAgICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24o
KSBmaW5hbDsKICAgICBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3QgZmluYWw7Ci0gICAgUmVm
UHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVu
dUNsaWVudCopIGNvbnN0IGZpbmFsOwotICAgIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25z
dCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUo
V2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFdlYkNv
cmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCYpIGNvbnN0IGZpbmFsOwogCiAgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllckZh
Y3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBhdHRh
Y2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqKSBmaW5hbDsKLSAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJD
b3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKKyAgICB2b2lkIGF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIGZpbmFsOworICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdl
YkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwogICAgIHZvaWQg
c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIGZpbmFsOwogICAgIHZvaWQg
c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBmaW5hbDsKICAgICBib29sIGFkanVzdExh
eWVyRmx1c2hUaHJvdHRsaW5nKFdlYkNvcmU6OkxheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpGbGFn
cykgZmluYWw7CkBAIC0yMzMsMTEgKzIzMywxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbGF5ZXJU
cmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9M
TElORykKLSAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVh
dGVTY3JvbGxpbmdDb29yZGluYXRvcihXZWJDb3JlOjpQYWdlKikgY29uc3QgZmluYWw7CisgICAg
UmVmUHRyPFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdDb29y
ZGluYXRvcihXZWJDb3JlOjpQYWdlJikgY29uc3QgZmluYWw7CiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKElPUykKLSAgICB2b2lkIGVsZW1lbnREaWRSZWZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUq
KSBmaW5hbDsKKyAgICB2b2lkIGVsZW1lbnREaWRSZWZvY3VzKGNvbnN0IFdlYkNvcmU6OkVsZW1l
bnQmKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgKFBMQVRGT1JNKElPUykgJiYgSEFWRShBVktJVCkp
IHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCkBA
IC0yNTMsMTQgKzI1MywxNCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCi0gICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdl
YkNvcmU6OkVsZW1lbnQqLCBib29sIHdpdGhLZXlib2FyZCkgZmluYWw7Ci0gICAgdm9pZCBlbnRl
ckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBmaW5hbDsKLSAgICB2b2lk
IGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KikgZmluYWw7CisgICAg
Ym9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQm
LCBib29sIHdpdGhLZXlib2FyZCkgZmluYWw7CisgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JF
bGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKKyAgICB2b2lkIGV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUq
KSBmaW5hbDsKLSAgICB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBm
aW5hbDsKKyAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7
CisgICAgdm9pZCBlbGVtZW50RGlkQmx1cihXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CiAKICAg
ICB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcigpIGZpbmFsOwogI2VuZGlmCkBAIC0yOTEsMTAgKzI5
MSwxMCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBwbHVnSW5FeHRyYVN0eWxlU2hlZXQoKSBjb25z
dCBmaW5hbDsKICAgICBTdHJpbmcgcGx1Z0luRXh0cmFTY3JpcHQoKSBjb25zdCBmaW5hbDsKIAot
ICAgIHZvaWQgZGlkQWRkSGVhZGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFs
OwotICAgIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZp
bmFsOworICAgIHZvaWQgZGlkQWRkSGVhZGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciYp
IGZpbmFsOworICAgIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciYpIGZpbmFsOwogCi0gICAgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXco
Y29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3KikgY29uc3QgZmluYWw7CisgICAgYm9vbCBzaG91bGRV
c2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3JikgY29u
c3QgZmluYWw7CiAKICAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncywgdWludDY0X3QpIGZpbmFsOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDMyYWY1OWYzZmJkNDc0MDlmNDI4ODYzNjlm
YTA4YmVkYWNiNWQ0NjguLjQzMzk4ZmM5M2MyM2QxYjEzOGU3YTQ1ZDJhMTllYThkMzNkM2FkOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC02NDAsMTMgKzY0MCwxMyBA
QCBGcmFtZSogV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aQogewogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2Zy
YW1lLT5wYWdlKCk7CiAgICAgaWYgKCF3ZWJQYWdlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBKdXN0IGNhbGwgdGhyb3VnaCB0byB0aGUgY2hy
b21lIGNsaWVudC4KICAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QobV9mcmFtZS0+Y29yZUZy
YW1lKCktPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIG5hdmlnYXRpb25BY3Rpb24ucmVz
b3VyY2VSZXF1ZXN0KCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8s
IE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3
RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBuYXZpZ2F0aW9uQWN0aW9uLnNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3koKSk7Ci0gICAgUGFnZSogbmV3UGFnZSA9IHdlYlBhZ2UtPmNvcmVQYWdl
KCktPmNocm9tZSgpLmNyZWF0ZVdpbmRvdyhtX2ZyYW1lLT5jb3JlRnJhbWUoKSwgcmVxdWVzdCwg
V2luZG93RmVhdHVyZXMoKSwgbmF2aWdhdGlvbkFjdGlvbik7CisgICAgUGFnZSogbmV3UGFnZSA9
IHdlYlBhZ2UtPmNvcmVQYWdlKCktPmNocm9tZSgpLmNyZWF0ZVdpbmRvdygqbV9mcmFtZS0+Y29y
ZUZyYW1lKCksIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIG5hdmlnYXRpb25BY3Rpb24pOwog
ICAgIGlmICghbmV3UGFnZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIAogICAgIHJldHVybiAmbmV3UGFnZS0+bWFpbkZyYW1lKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3Rv
ckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Ykluc3BlY3RvckNsaWVudC5jcHAKaW5kZXggOTY4OTI5ZmRhMzQ3OWFhZDJiZTRhMTBhMGI0NTk2
YWUxNzU1NmQ1MC4uNDFiMzRmMDBhOGM2ZmQyMDNjNTgzNDIwM2U4MjgwYTVjNDQ1NmY3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCBXZWJJbnNwZWN0
b3JDbGllbnQ6On5XZWJJbnNwZWN0b3JDbGllbnQoKQogICAgIH0KIAogICAgIGlmIChtX3BhaW50
UmVjdE92ZXJsYXkgJiYgbV9wYWdlLT5tYWluRnJhbWUoKSkKLSAgICAgICAgbV9wYWdlLT5tYWlu
RnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkobV9w
YWludFJlY3RPdmVybGF5LmdldCgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOworICAg
ICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3Rh
bGxQYWdlT3ZlcmxheSgqbV9wYWludFJlY3RPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6
OkZhZGUpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6aW5zcGVjdGVkUGFnZURlc3Ry
b3llZCgpCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmhpZGVI
aWdobGlnaHQoKQogewogI2lmICFQTEFURk9STShJT1MpCiAgICAgaWYgKG1faGlnaGxpZ2h0T3Zl
cmxheSAmJiBtX3BhZ2UtPm1haW5GcmFtZSgpKQotICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgp
LT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheShtX2hpZ2hsaWdo
dE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CisgICAgICAgIG1fcGFnZS0+
bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5
KCptX2hpZ2hsaWdodE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CiAjZWxz
ZQogICAgIG1fcGFnZS0+aGlkZUluc3BlY3RvckhpZ2hsaWdodCgpOwogI2VuZGlmCkBAIC0xMzYs
NyArMTM2LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OnNob3dQYWludFJlY3QoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQogewogICAgIGlmICghbV9wYWludFJlY3RPdmVybGF5KSB7CiAgICAg
ICAgIG1fcGFpbnRSZWN0T3ZlcmxheSA9IFBhZ2VPdmVybGF5OjpjcmVhdGUoKnRoaXMsIFBhZ2VP
dmVybGF5OjpPdmVybGF5VHlwZTo6RG9jdW1lbnQpOwotICAgICAgICBtX3BhZ2UtPm1haW5GcmFt
ZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkobV9wYWludFJl
Y3RPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgICAgIG1f
cGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3Zl
cmxheSgqbV9wYWludFJlY3RPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFk
ZSk7CiAgICAgfQogCiAgICAgaWYgKCFtX3BhaW50SW5kaWNhdG9yTGF5ZXJDbGllbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQWNjZWxlcmF0ZWREcmF3
aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0FjY2VsZXJhdGVk
RHJhd2luZ0FyZWEuaAppbmRleCBjODRlZTM4YjMxM2I4YjZhNWY2ZDNjYzE0ZTkyYWRhNDcyMWEy
YjdlLi4wYjUwODNiMmU2ODgyODk0MWZkNjZkODZhMzhhMTE5YzNmM2MyNTgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQWNjZWxlcmF0ZWREcmF3aW5nQXJl
YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9BY2NlbGVyYXRlZERy
YXdpbmdBcmVhLmgKQEAgLTY5LDcgKzY5LDcgQEAgcHJvdGVjdGVkOgogI2VuZGlmCiAKICAgICB2
b2lkIGFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3Ms
IGJvb2wgLyogd2FudHNEaWRVcGRhdGVBY3Rpdml0eVN0YXRlICovLCBjb25zdCBWZWN0b3I8dWlu
dDY0X3Q+JiAvKiBjYWxsYmFja0lEcyAqLykgb3ZlcnJpZGU7Ci0gICAgdm9pZCBhdHRhY2hWaWV3
T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIo
V2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIGxheWVySG9zdERpZEZsdXNoTGF5ZXJzKCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCmluZGV4
IDFlMGNlZjQ2NTFiOTNiZjgwZmI3MDU2NjVjNmY2MTVmZWFiYzJhODkuLjMzMDMyYzE3MmIxYjI0
MzhkYWZkNjBjMzQ2NDY2ZWE0NTA1ZTRhN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcApAQCAtMTg5LDcgKzE4OSw3IEBA
IHZvaWQgRmluZENvbnRyb2xsZXI6OnVwZGF0ZUZpbmRVSUFmdGVyUGFnZVNjcm9sbChib29sIGZv
dW5kLCBjb25zdCBTdHJpbmcmIHN0cmluCiAKICAgICBpZiAoIXNob3VsZFNob3dPdmVybGF5KSB7
CiAgICAgICAgIGlmIChtX2ZpbmRQYWdlT3ZlcmxheSkKLSAgICAgICAgICAgIG1fd2ViUGFnZS0+
bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5
KG1fZmluZFBhZ2VPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOworICAgICAg
ICAgICAgbV93ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5p
bnN0YWxsUGFnZU92ZXJsYXkoKm1fZmluZFBhZ2VPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1v
ZGU6OkZhZGUpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICghbV9maW5kUGFnZU92ZXJsYXkp
IHsKICAgICAgICAgICAgIGF1dG8gZmluZFBhZ2VPdmVybGF5ID0gUGFnZU92ZXJsYXk6OmNyZWF0
ZSgqdGhpcywgUGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlOjpEb2N1bWVudCk7CkBAIC0zMTIsNyAr
MzEyLDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6aGlkZUZpbmRVSSgpCiB7CiAgICAgbV9maW5k
TWF0Y2hlcy5jbGVhcigpOwogICAgIGlmIChtX2ZpbmRQYWdlT3ZlcmxheSkKLSAgICAgICAgbV93
ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFn
ZU92ZXJsYXkobV9maW5kUGFnZU92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7
CisgICAgICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigp
LnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX2ZpbmRQYWdlT3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZh
ZGVNb2RlOjpGYWRlKTsKIAogICAgIFBsdWdpblZpZXcqIHBsdWdpblZpZXcgPSBwbHVnaW5WaWV3
Rm9yRnJhbWUobV93ZWJQYWdlLT5tYWluRnJhbWUoKSk7CiAgICAgCkBAIC0zMjUsNiArMzI1LDcg
QEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6aGlkZUZpbmRVSSgpCiB9CiAKICNpZiAhUExBVEZPUk0o
SU9TKQorCiBib29sIEZpbmRDb250cm9sbGVyOjp1cGRhdGVGaW5kSW5kaWNhdG9yKEZyYW1lJiBz
ZWxlY3RlZEZyYW1lLCBib29sIGlzU2hvd2luZ092ZXJsYXksIGJvb2wgc2hvdWxkQW5pbWF0ZSkK
IHsKICAgICBSZWZQdHI8VGV4dEluZGljYXRvcj4gaW5kaWNhdG9yID0gVGV4dEluZGljYXRvcjo6
Y3JlYXRlV2l0aFNlbGVjdGlvbkluRnJhbWUoc2VsZWN0ZWRGcmFtZSwgVGV4dEluZGljYXRvck9w
dGlvbkluY2x1ZGVNYXJnaW5JZlJhbmdlTWF0Y2hlc1NlbGVjdGlvbiwgc2hvdWxkQW5pbWF0ZSA/
IFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UgOiBUZXh0SW5kaWNh
dG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Tm9uZSk7CkBAIC0zNjYsNiArMzY3LDcgQEAgdm9p
ZCBGaW5kQ29udHJvbGxlcjo6ZGlkRmFpbFRvRmluZFN0cmluZygpCiB2b2lkIEZpbmRDb250cm9s
bGVyOjpkaWRIaWRlRmluZEluZGljYXRvcigpCiB7CiB9CisKICNlbmRpZgogCiB2b2lkIEZpbmRD
b250cm9sbGVyOjpzaG93RmluZEluZGljYXRvckluU2VsZWN0aW9uKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4IDM2MjlkNGFlNThjN2Q0
Njg2MmUxNWE3NWY5ODRiZGNkNWVlYjhmNDYuLjk5OWZlMjVjMTAwYTMxMzc2YjBkZjc1YTQzMDdj
MzFjYTdmZTRlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkZyYW1lLmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUxp
c3RlbmVySUQoKQogICAgIHJldHVybiB1bmlxdWVMaXN0ZW5lcklEKys7CiB9CiAKLVBhc3NSZWZQ
dHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGVXaXRoQ29yZU1haW5GcmFtZShXZWJQYWdlKiBw
YWdlLCBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lKQorUmVmPFdlYkZyYW1lPiBXZWJGcmFtZTo6
Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSogcGFnZSwgV2ViQ29yZTo6RnJhbWUqIGNv
cmVGcmFtZSkKIHsKICAgICBhdXRvIGZyYW1lID0gY3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxXZWJG
cmFtZUxvYWRlckNsaWVudD4oc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2FkZXJDbGllbnQqPigmY29y
ZUZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKSkpKTsKICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRpZENyZWF0ZU1haW5GcmFtZShmcmFtZS0+ZnJhbWVJRCgpKSwgcGFnZS0+
cGFnZUlEKCksIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5n
Rm9yU3luY1JlcGx5KTsKQEAgLTEyMCwzMCArMTIwLDMyIEBAIFBhc3NSZWZQdHI8V2ViRnJhbWU+
IFdlYkZyYW1lOjpjcmVhdGVXaXRoQ29yZU1haW5GcmFtZShXZWJQYWdlKiBwYWdlLCBXZWJDb3Jl
OjpGCiAgICAgcmV0dXJuIGZyYW1lOwogfQogCi1QYXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFt
ZTo6Y3JlYXRlU3ViZnJhbWUoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUs
IEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50KQorUmVmPFdlYkZyYW1lPiBXZWJG
cmFtZTo6Y3JlYXRlU3ViZnJhbWUoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5h
bWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50KQogewogICAgIGF1dG8gZnJh
bWUgPSBjcmVhdGUoc3RkOjptYWtlX3VuaXF1ZTxXZWJGcmFtZUxvYWRlckNsaWVudD4oKSk7CiAg
ICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDcmVhdGVTdWJmcmFtZShm
cmFtZS0+ZnJhbWVJRCgpKSwgcGFnZS0+cGFnZUlEKCksIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0
Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIAotICAgIFJlZjxXZWJDb3Jl
OjpGcmFtZT4gY29yZUZyYW1lID0gRnJhbWU6OmNyZWF0ZShwYWdlLT5jb3JlUGFnZSgpLCBvd25l
ckVsZW1lbnQsIGZyYW1lLT5tX2ZyYW1lTG9hZGVyQ2xpZW50LmdldCgpKTsKKyAgICBhdXRvIGNv
cmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZS0+Y29yZVBhZ2UoKSwgb3duZXJFbGVtZW50LCBm
cmFtZS0+bV9mcmFtZUxvYWRlckNsaWVudC5nZXQoKSk7CiAgICAgZnJhbWUtPm1fY29yZUZyYW1l
ID0gY29yZUZyYW1lLnB0cigpOwotICAgIGZyYW1lLT5tX2NvcmVGcmFtZS0+dHJlZSgpLnNldE5h
bWUoZnJhbWVOYW1lKTsKKworICAgIGNvcmVGcmFtZS0+dHJlZSgpLnNldE5hbWUoZnJhbWVOYW1l
KTsKICAgICBpZiAob3duZXJFbGVtZW50KSB7CiAgICAgICAgIEFTU0VSVChvd25lckVsZW1lbnQt
PmRvY3VtZW50KCkuZnJhbWUoKSk7Ci0gICAgICAgIG93bmVyRWxlbWVudC0+ZG9jdW1lbnQoKS5m
cmFtZSgpLT50cmVlKCkuYXBwZW5kQ2hpbGQoV1RGTW92ZShjb3JlRnJhbWUpKTsKKyAgICAgICAg
b3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCktPnRyZWUoKS5hcHBlbmRDaGlsZChjb3Jl
RnJhbWUuZ2V0KCkpOwogICAgIH0KLSAgICBmcmFtZS0+bV9jb3JlRnJhbWUtPmluaXQoKTsKKyAg
ICBjb3JlRnJhbWUtPmluaXQoKTsKKwogICAgIHJldHVybiBmcmFtZTsKIH0KIAotUGFzc1JlZlB0
cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2Fk
ZXJDbGllbnQ+IGZyYW1lTG9hZGVyQ2xpZW50KQorUmVmPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3Jl
YXRlKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4gZnJhbWVMb2FkZXJDbGll
bnQpCiB7CiAgICAgYXV0byBmcmFtZSA9IGFkb3B0UmVmKCpuZXcgV2ViRnJhbWUoV1RGTW92ZShm
cmFtZUxvYWRlckNsaWVudCkpKTsKIAogICAgIC8vIEFkZCBleHBsaWN0IHJlZigpIHRoYXQgd2ls
bCBiZSBiYWxhbmNlZCBpbiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVMb2FkZXJEZXN0cm95
ZWQoKS4KICAgICBmcmFtZS0+cmVmKCk7CiAKLSAgICByZXR1cm4gV1RGTW92ZShmcmFtZSk7Cisg
ICAgcmV0dXJuIGZyYW1lOwogfQogCiBXZWJGcmFtZTo6V2ViRnJhbWUoc3RkOjp1bmlxdWVfcHRy
PFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRlckNsaWVudCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5kZXggMjNkNDhkMjlmODM3NjY1Mzg1
Y2Y0MTQxYTBjNGY2ZTYzYzU1YzY2MC4uZDRjN2E0MDgzNGEyODg5YjJhMWFmZDFmY2RlMzcwNmZh
ZTAyNmIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1l
LmgKQEAgLTY2LDggKzY2LDggQEAgc3RydWN0IEZyYW1lSW5mb0RhdGE7CiAKIGNsYXNzIFdlYkZy
YW1lIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxlRnJh
bWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZT4gY3JlYXRlV2l0
aENvcmVNYWluRnJhbWUoV2ViUGFnZSosIFdlYkNvcmU6OkZyYW1lKik7Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViRnJhbWU+IGNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcm
IGZyYW1lTmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Kik7CisgICAgc3RhdGlj
IFJlZjxXZWJGcmFtZT4gY3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSosIFdlYkNvcmU6
OkZyYW1lKik7CisgICAgc3RhdGljIFJlZjxXZWJGcmFtZT4gY3JlYXRlU3ViZnJhbWUoV2ViUGFn
ZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1l
bnQqKTsKICAgICB+V2ViRnJhbWUoKTsKIAogICAgIC8vIENhbGxlZCB3aGVuIHRoZSBGcmFtZUxv
YWRlckNsaWVudCAoYW5kIHRoZXJlZm9yZSB0aGUgV2ViQ29yZTo6RnJhbWUpIGlzIGJlaW5nIHRv
cm4gZG93bi4KQEAgLTE2Niw4ICsxNjYsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToK
LSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZT4gY3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxX
ZWJGcmFtZUxvYWRlckNsaWVudD4pOwotICAgIFdlYkZyYW1lKHN0ZDo6dW5pcXVlX3B0cjxXZWJG
cmFtZUxvYWRlckNsaWVudD4pOworICAgIHN0YXRpYyBSZWY8V2ViRnJhbWU+IGNyZWF0ZShzdGQ6
OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsKKyAgICBleHBsaWNpdCBXZWJGcmFt
ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsKIAogICAgIFdlYkNvcmU6
OkZyYW1lKiBtX2NvcmVGcmFtZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAppbmRleCBkNjQ3ODU5N2E4N2ZlZjNkYzBiOTk5MzUy
MTI2NzZlZmNjNDkzMzIzLi4wMTZkNzM4ZmI2MTJkMjQzYzAwNDllNTIwMTU4NjIxMzBmZDk1OGZj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVj
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVj
dG9yLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yOjpvcGVuSW5OZXdU
YWIoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiAgICAgRnJhbWUmIGluc3BlY3RlZE1haW5GcmFt
ZSA9IGluc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpOwogICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVx
dWVzdChpbnNwZWN0ZWRNYWluRnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVz
b3VyY2VSZXF1ZXN0KHVybFN0cmluZyksICJfYmxhbmsiLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tC
YWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9J
bnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgUmVwbGFjZURvY3Vt
ZW50SWZKYXZhU2NyaXB0VVJMLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRO
b3RBbGxvdyk7CiAKLSAgICBQYWdlKiBuZXdQYWdlID0gaW5zcGVjdGVkUGFnZS0+Y2hyb21lKCku
Y3JlYXRlV2luZG93KCZpbnNwZWN0ZWRNYWluRnJhbWUsIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVz
KCksIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgTmF2aWdhdGlv
blR5cGU6OkxpbmtDbGlja2VkKSk7CisgICAgUGFnZSogbmV3UGFnZSA9IGluc3BlY3RlZFBhZ2Ut
PmNocm9tZSgpLmNyZWF0ZVdpbmRvdyhpbnNwZWN0ZWRNYWluRnJhbWUsIHJlcXVlc3QsIFdpbmRv
d0ZlYXR1cmVzKCksIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwg
TmF2aWdhdGlvblR5cGU6OkxpbmtDbGlja2VkKSk7CiAgICAgaWYgKCFuZXdQYWdlKQogICAgICAg
ICByZXR1cm47CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299328</attachid>
            <date>2017-01-19 23:42:08 -0800</date>
            <delta_ts>2017-01-20 19:48:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167224-20170119234016.patch</filename>
            <type>text/plain</type>
            <size>316479</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwOTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0RPTVdpbmRvd0ZldGNoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCmluZGV4IGFkYWRhY2Q4M2MyNjBjZmE5ZDc2OTlkMzRm
NmE0YmVjOTFkNjFmMDYuLmM1OWQzNjU2YTBjMjEwN2FhOWRhNzZkZjFhNTczN2RlZmY5ZjUyZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3Bw
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNiBDYW5vbiBJbmMuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsMTYgKzMzLDE3IEBACiAjaWYgRU5B
QkxFKEZFVENIX0FQSSkKIAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkZldGNo
UmVxdWVzdC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRmV0Y2hSZXNwb25z
ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgRE9NV2luZG93RmV0Y2g6OmZldGNo
KERPTVdpbmRvdyYgd2luZG93LCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QsIFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBpZiAoIXdpbmRvdy5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCisgICAgYXV0byogZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQoKTsKKyAgICBpZiAo
IWRvY3VtZW50KQogICAgICAgICByZXR1cm47Ci0gICAgRmV0Y2hSZXNwb25zZTo6ZmV0Y2goKndp
bmRvdy5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHJlcXVlc3QsIFdURk1vdmUocHJvbWlzZSkp
OworICAgIEZldGNoUmVzcG9uc2U6OmZldGNoKCpkb2N1bWVudCwgcmVxdWVzdCwgV1RGTW92ZShw
cm9taXNlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcAppbmRleCBl
NTQ4OWZjYjU0MGM5Njk0YWU0Mzc1OTY4M2RlOWFjZjAxODI0YWQ5Li4zZGNiNTYwMzQzZWI1YWI5
NDUxMWEzOTBlYjE5MTFiMzljYjBmMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwCkBAIC0yMDQsNyArMjA0LDcg
QEAgdm9pZCBEYXRhYmFzZUNvbnRleHQ6OmRhdGFiYXNlRXhjZWVkZWRRdW90YShjb25zdCBTdHJp
bmcmIG5hbWUsIERhdGFiYXNlRGV0YWlscwogICAgIGlmIChpczxEb2N1bWVudD4oKm1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCkpIHsKICAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNh
c3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgICAgICBpZiAoUGFn
ZSogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkKLSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNs
aWVudCgpLmV4Y2VlZGVkRGF0YWJhc2VRdW90YShkb2N1bWVudC5mcmFtZSgpLCBuYW1lLCBkZXRh
aWxzKTsKKyAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV4Y2VlZGVkRGF0YWJh
c2VRdW90YSgqZG9jdW1lbnQuZnJhbWUoKSwgbmFtZSwgZGV0YWlscyk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNXb3JrZXJH
bG9iYWxTY29wZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5k
ZXggNDE2YjE4MzRiZDhhYTYzNGI4YzdiYzJjZWU3ZjA5NDZiYzZiYjA3ZS4uMDMyMGY5NTU2YjU3
YjJiMDM3MjkxMmIwOGY1MjkyZWI0Zjg2ZWQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0KQEAgLTM3MjksNyArMzcyOSw3IEBAIC0gKHZvaWQpYWNjZXNzaWJpbGl0
eVNob3dDb250ZXh0TWVudQogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHBhZ2UtPmNvbnRl
eHRNZW51Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVudUF0KCZwYWdlLT5tYWluRnJhbWUoKSwg
cmVjdC5jZW50ZXIoKSk7CisgICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0Nv
bnRleHRNZW51QXQocGFnZS0+bWFpbkZyYW1lKCksIHJlY3QuY2VudGVyKCkpOwogfQogCiAtICh2
b2lkKWFjY2Vzc2liaWxpdHlTY3JvbGxUb1Zpc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCBhM2Y2MmU1NjQ0MTFmMTgwN2Jm
ZjA5NWY1ZGI5Y2E1MmY2ZTZjZGU0Li5hZTdmZThjMTdmMGRiY2QxNWI3MDU0ODZkNjQyYTQ1OGFl
NTdiY2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwCkBAIC0xNzgsNyArMTc4LDcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJv
cGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnQKICAg
ICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgIC8vIERldGVjdCB3aGVuIHdlJ3JlIGdldHRpbmcgdGhl
IHByb3BlcnR5ICdzaG93TW9kYWxEaWFsb2cnLCB0aGlzIGlzIGRpc2FibGVkLCBhbmQgaGFzIGl0
cyBvcmlnaW5hbCB2YWx1ZS4KICAgICAgICAgYm9vbCBpc1Nob3dNb2RhbERpYWxvZ0FuZFNob3Vs
ZEhpZGUgPSBwcm9wZXJ0eU5hbWUgPT0gc3RhdGUtPnByb3BlcnR5TmFtZXMoKS5zaG93TW9kYWxE
aWFsb2cKLSAgICAgICAgICAgICYmICFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhmcmFt
ZSkKKyAgICAgICAgICAgICYmICFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZygqZnJhbWUp
CiAgICAgICAgICAgICAmJiBzbG90LmlzVmFsdWUoKSAmJiBpc0hvc3RGdW5jdGlvbihzbG90Lmdl
dFZhbHVlKHN0YXRlLCBwcm9wZXJ0eU5hbWUpLCBqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25T
aG93TW9kYWxEaWFsb2cpOwogICAgICAgICAvLyBVbmxlc3Mgd2UncmUgaW4gdGhlIHNob3dNb2Rh
bERpYWxvZyBzcGVjaWFsIGNhc2UsIHdlJ3JlIGRvbmUuCiAgICAgICAgIGlmICghaXNTaG93TW9k
YWxEaWFsb2dBbmRTaG91bGRIaWRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMDgxNjBh
ZGQzYTNhM2RlOWNkNDg3ZmQ0MTQxMzgyMTYxYzkxZjE5Yy4uMWEwMzQzOWYwYTRmZGQ0OWZlOTkx
NGJjZWVlOGRhM2IxMzBjM2UwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NDgsMTMg
Kzg0OCwxMSBAQCB2b2lkIERvY3VtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFu
Z2UmIGNoYW5nZSkKIHsKICAgICBDb250YWluZXJOb2RlOjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdl
KTsKIAotI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBGSVhNRTogQ2hyb21lOjpkaWRSZWNlaXZl
RG9jVHlwZSgpIHVzZWQgdG8gYmUgY2FsbGVkIG9ubHkgd2hlbiB0aGUgZG9jdHlwZSBjaGFuZ2Vk
LiBXZSBuZWVkIHRvIGNoZWNrIHRoZQogICAgIC8vIGltcGFjdCBvZiBjYWxsaW5nIHRoaXMgc3lz
dGVtYXRpY2FsbHkuIElmIHRoZSBvdmVyaGVhZCBpcyBuZWdsaWdpYmxlLCB3ZSBuZWVkIHRvIHJl
bmFtZSBkaWRSZWNlaXZlRG9jVHlwZSwKICAgICAvLyBvdGhlcndpc2UsIHdlIG5lZWQgdG8gZGV0
ZWN0IHRoZSBkb2MgdHlwZSBjaGFuZ2VzIGJlZm9yZSB1cGRhdGluZyB0aGUgdmlld3BvcnQuCiAg
ICAgaWYgKFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgp
LmRpZFJlY2VpdmVEb2NUeXBlKGZyYW1lKCkpOwotI2VuZGlmCisgICAgICAgIHBhZ2UtPmNocm9t
ZSgpLmRpZFJlY2VpdmVEb2NUeXBlKCpmcmFtZSgpKTsKIAogICAgIEVsZW1lbnQqIG5ld0RvY3Vt
ZW50RWxlbWVudCA9IGNoaWxkcmVuT2ZUeXBlPEVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpOwogICAg
IGlmIChuZXdEb2N1bWVudEVsZW1lbnQgPT0gbV9kb2N1bWVudEVsZW1lbnQpCkBAIC0zMjE4LDkg
KzMyMTYsNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVWaWV3cG9ydEFyZ3VtZW50cygpCiAgICAg
ICAgIG1fZGlkRGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNDaGFuZ2VkID0gdHJ1ZTsKICNlbmRp
ZgogICAgICAgICBwYWdlKCktPmNocm9tZSgpLmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlk
Q2hhbmdlKG1fdmlld3BvcnRBcmd1bWVudHMpOwotI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAg
cGFnZSgpLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZShmcmFtZSgpKTsKLSNlbmRpZgorICAg
ICAgICBwYWdlKCktPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKCpmcmFtZSgpKTsKICAgICB9
CiB9CiAKQEAgLTM2NDIsNyArMzYzOCw3IEBAIGJvb2wgRG9jdW1lbnQ6OnNldEZvY3VzZWRFbGVt
ZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbiwgRm9jCiAgICAg
ICAgICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oKm9sZEZvY3VzZWRFbGVtZW50KSkKICAg
ICAgICAgICAgICAgICBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigqb2xkRm9jdXNlZEVsZW1l
bnQpLmVuZEVkaXRpbmcoKTsKICAgICAgICAgICAgIGlmIChwYWdlKCkpCi0gICAgICAgICAgICAg
ICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkQmx1cihvbGRGb2N1c2VkRWxl
bWVudC5nZXQoKSk7CisgICAgICAgICAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5l
bGVtZW50RGlkQmx1cigqb2xkRm9jdXNlZEVsZW1lbnQpOwogICAgICAgICAgICAgQVNTRVJUKCFt
X2ZvY3VzZWRFbGVtZW50KTsKICAgICAgICAgfQogCkBAIC00MDAwLDcgKzM5OTYsNyBAQCB2b2lk
IERvY3VtZW50OjpjcmVhdGVET01XaW5kb3coKQogICAgIEFTU0VSVChtX2ZyYW1lKTsKICAgICBB
U1NFUlQoIW1fZG9tV2luZG93KTsKIAotICAgIG1fZG9tV2luZG93ID0gRE9NV2luZG93OjpjcmVh
dGUodGhpcyk7CisgICAgbV9kb21XaW5kb3cgPSBET01XaW5kb3c6OmNyZWF0ZSgqdGhpcyk7CiAK
ICAgICBBU1NFUlQobV9kb21XaW5kb3ctPmRvY3VtZW50KCkgPT0gdGhpcyk7CiAgICAgQVNTRVJU
KG1fZG9tV2luZG93LT5mcmFtZSgpID09IG1fZnJhbWUpOwpAQCAtNDAxNSw3ICs0MDExLDcgQEAg
dm9pZCBEb2N1bWVudDo6dGFrZURPTVdpbmRvd0Zyb20oRG9jdW1lbnQqIGRvY3VtZW50KQogICAg
IEFTU0VSVChwYWdlQ2FjaGVTdGF0ZSgpID09IE5vdEluUGFnZUNhY2hlKTsKIAogICAgIG1fZG9t
V2luZG93ID0gV1RGTW92ZShkb2N1bWVudC0+bV9kb21XaW5kb3cpOwotICAgIG1fZG9tV2luZG93
LT5kaWRTZWN1cmVUcmFuc2l0aW9uVG8odGhpcyk7CisgICAgbV9kb21XaW5kb3ctPmRpZFNlY3Vy
ZVRyYW5zaXRpb25UbygqdGhpcyk7CiAKICAgICBBU1NFUlQobV9kb21XaW5kb3ctPmRvY3VtZW50
KCkgPT0gdGhpcyk7CiAgICAgQVNTRVJUKG1fZG9tV2luZG93LT5mcmFtZSgpID09IG1fZnJhbWUp
OwpAQCAtNTU3MywxMiArNTU2OSwxMiBAQCB2b2lkIERvY3VtZW50OjpyZXF1ZXN0RnVsbFNjcmVl
bkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgRnVsbFNjcmVlbkNoZWNrVHlwZQogICAgICAg
ICAgICAgYnJlYWs7CiAKICAgICAgICAgYm9vbCBoYXNLZXlib2FyZEFjY2VzcyA9IHRydWU7Ci0g
ICAgICAgIGlmICghcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0c0Z1bGxTY3JlZW5G
b3JFbGVtZW50KGVsZW1lbnQsIGhhc0tleWJvYXJkQWNjZXNzKSkgeworICAgICAgICBpZiAoIXBh
Z2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCgqZWxl
bWVudCwgaGFzS2V5Ym9hcmRBY2Nlc3MpKSB7CiAgICAgICAgICAgICAvLyBUaGUgbmV3IGZ1bGwg
c2NyZWVuIEFQSSBkb2VzIG5vdCBhY2NlcHQgYSAiZmxhZ3MiIHBhcmFtZXRlciwgc28gZmFsbCBi
YWNrIHRvIGRpc2FsbG93aW5nCiAgICAgICAgICAgICAvLyBrZXlib2FyZCBpbnB1dCBpZiB0aGUg
Y2hyb21lIGNsaWVudCByZWZ1c2VzIHRvIGFsbG93IGtleWJvYXJkIGlucHV0LgogICAgICAgICAg
ICAgaGFzS2V5Ym9hcmRBY2Nlc3MgPSBmYWxzZTsKIAotICAgICAgICAgICAgaWYgKCFwYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCwg
aGFzS2V5Ym9hcmRBY2Nlc3MpKQorICAgICAgICAgICAgaWYgKCFwYWdlKCktPmNocm9tZSgpLmNs
aWVudCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoKmVsZW1lbnQsIGhhc0tleWJvYXJk
QWNjZXNzKSkKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC01NjMxLDcg
KzU2MjcsNyBAQCB2b2lkIERvY3VtZW50OjpyZXF1ZXN0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxl
bWVudCogZWxlbWVudCwgRnVsbFNjcmVlbkNoZWNrVHlwZQogICAgICAgICAvLyA1LiBSZXR1cm4s
IGFuZCBydW4gdGhlIHJlbWFpbmluZyBzdGVwcyBhc3luY2hyb25vdXNseS4KICAgICAgICAgLy8g
Ni4gT3B0aW9uYWxseSwgcGVyZm9ybSBzb21lIGFuaW1hdGlvbi4KICAgICAgICAgbV9hcmVLZXlz
RW5hYmxlZEluRnVsbFNjcmVlbiA9IGhhc0tleWJvYXJkQWNjZXNzOwotICAgICAgICBwYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7Cisg
ICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVu
dCgqZWxlbWVudCk7CiAKICAgICAgICAgLy8gNy4gT3B0aW9uYWxseSwgZGlzcGxheSBhIG1lc3Nh
Z2UgaW5kaWNhdGluZyBob3cgdGhlIHVzZXIgY2FuIGV4aXQgZGlzcGxheWluZyB0aGUgY29udGV4
dCBvYmplY3QgZnVsbHNjcmVlbi4KICAgICAgICAgcmV0dXJuOwpAQCAtNTcyMywxMiArNTcxOSwx
MiBAQCB2b2lkIERvY3VtZW50Ojp3ZWJraXRFeGl0RnVsbHNjcmVlbigpCiAgICAgLy8gT25seSBl
eGl0IG91dCBvZiBmdWxsIHNjcmVlbiB3aW5kb3cgbW9kZSBpZiB0aGVyZSBhcmUgbm8gcmVtYWlu
aW5nIGVsZW1lbnRzIGluIHRoZSAKICAgICAvLyBmdWxsIHNjcmVlbiBzdGFjay4KICAgICBpZiAo
IW5ld1RvcCkgewotICAgICAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmV4aXRGdWxsU2Ny
ZWVuRm9yRWxlbWVudChtX2Z1bGxTY3JlZW5FbGVtZW50LmdldCgpKTsKKyAgICAgICAgcGFnZSgp
LT5jaHJvbWUoKS5jbGllbnQoKS5leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoKm1fZnVsbFNjcmVl
bkVsZW1lbnQpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgLy8gT3RoZXJ3aXNlLCBu
b3RpZnkgdGhlIGNocm9tZSBvZiB0aGUgbmV3IGZ1bGwgc2NyZWVuIGVsZW1lbnQuCi0gICAgcGFn
ZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KG5ld1RvcCk7
CisgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KCpuZXdUb3ApOwogfQogCiBib29sIERvY3VtZW50Ojp3ZWJraXRGdWxsc2NyZWVuRW5hYmxlZCgp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggODhlM2U5OTMwMWE3MTlkZTI1NDA4M2E5
MzI2YTNiYWNmM2VjMzhmYy4uODVlMGIyNmYxYzNlNzhiMmNiYmM2ODViNmFkMTlmMjVkMGQ5YmVh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMjM0OCw3ICsyMzQ4LDcgQEAgdm9pZCBFbGVt
ZW50Ojpmb2N1cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24g
ZGlyZWN0aW9uKQogCiAgICAgaWYgKGRvY3VtZW50KCkuZm9jdXNlZEVsZW1lbnQoKSA9PSB0aGlz
KSB7CiAgICAgICAgIGlmIChkb2N1bWVudCgpLnBhZ2UoKSkKLSAgICAgICAgICAgIGRvY3VtZW50
KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkUmVmb2N1cyh0aGlzKTsKKyAg
ICAgICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlk
UmVmb2N1cygqdGhpcyk7CiAKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTIzNzEsNyArMjM3
MSw3IEBAIHZvaWQgRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24s
IEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKICAgICAgICAgLy8gSWYgYSBmb2N1cyBldmVudCBo
YW5kbGVyIGNoYW5nZXMgdGhlIGZvY3VzIHRvIGEgZGlmZmVyZW50IG5vZGUgaXQKICAgICAgICAg
Ly8gZG9lcyBub3QgbWFrZSBzZW5zZSB0byBjb250aW51ZSBhbmQgdXBkYXRlIGFwcGVhcmVuY2Uu
CiAgICAgICAgIHByb3RlY3QgPSB0aGlzOwotICAgICAgICBpZiAoIXBhZ2UtPmZvY3VzQ29udHJv
bGxlcigpLnNldEZvY3VzZWRFbGVtZW50KHRoaXMsIGRvY3VtZW50KCkuZnJhbWUoKSwgZGlyZWN0
aW9uKSkKKyAgICAgICAgaWYgKCFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxl
bWVudCh0aGlzLCAqZG9jdW1lbnQoKS5mcmFtZSgpLCBkaXJlY3Rpb24pKQogICAgICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMjQ0MSw3ICsyNDQxLDcgQEAgdm9pZCBFbGVtZW50OjpibHVy
KCkKICAgICBjYW5jZWxGb2N1c0FwcGVhcmFuY2VVcGRhdGUoKTsKICAgICBpZiAodHJlZVNjb3Bl
KCkuZm9jdXNlZEVsZW1lbnRJblNjb3BlKCkgPT0gdGhpcykgewogICAgICAgICBpZiAoRnJhbWUq
IGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpKQotICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+
Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQoMCwgZnJhbWUpOworICAgICAgICAg
ICAgZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQobnVs
bHB0ciwgKmZyYW1lKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgZG9jdW1lbnQoKS5zZXRG
b2N1c2VkRWxlbWVudChudWxscHRyKTsKICAgICB9CkBAIC0yNDY0LDcgKzI0NjQsNyBAQCB2b2lk
IEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNPdXRFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgUmVmUHRyPEVsZW1lbgogdm9pZCBFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQoUmVm
UHRyPEVsZW1lbnQ+JiYgb2xkRm9jdXNlZEVsZW1lbnQsIEZvY3VzRGlyZWN0aW9uKQogewogICAg
IGlmIChkb2N1bWVudCgpLnBhZ2UoKSkKLSAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9t
ZSgpLmNsaWVudCgpLmVsZW1lbnREaWRGb2N1cyh0aGlzKTsKKyAgICAgICAgZG9jdW1lbnQoKS5w
YWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVsZW1lbnREaWRGb2N1cygqdGhpcyk7CiAKICAgICBF
dmVudERpc3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQoKnRoaXMsIEZvY3VzRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuZm9jdXNFdmVudCwgZmFsc2UsIGZhbHNlLCBkb2N1bWVudCgpLmRlZmF1bHRW
aWV3KCksIDAsIFdURk1vdmUob2xkRm9jdXNlZEVsZW1lbnQpKSk7CiB9CkBAIC0yNDcyLDcgKzI0
NzIsNyBAQCB2b2lkIEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudChSZWZQdHI8RWxlbWVudD4m
JiBvbGRGb2N1c2VkRWxlbWVudCwgRm9jdXNEaXJlYwogdm9pZCBFbGVtZW50OjpkaXNwYXRjaEJs
dXJFdmVudChSZWZQdHI8RWxlbWVudD4mJiBuZXdGb2N1c2VkRWxlbWVudCkKIHsKICAgICBpZiAo
ZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5j
bGllbnQoKS5lbGVtZW50RGlkQmx1cih0aGlzKTsKKyAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLmVsZW1lbnREaWRCbHVyKCp0aGlzKTsKIAogICAgIEV2ZW50RGlz
cGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudCgqdGhpcywgRm9jdXNFdmVudDo6Y3JlYXRlKGV2ZW50TmFt
ZXMoKS5ibHVyRXZlbnQsIGZhbHNlLCBmYWxzZSwgZG9jdW1lbnQoKS5kZWZhdWx0VmlldygpLCAw
LCBXVEZNb3ZlKG5ld0ZvY3VzZWRFbGVtZW50KSkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL05vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCmluZGV4IGJi
M2FiOTllNjFjNWJkYzEwNDNmM2ViYzRlMGY3OTZhMmRjYmQ4YjcuLjc2NjIzMDU0NzFlNTFmYmJm
NmU0ZmEzNTU3NWVkNmFiYWJmYzcwNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKQEAgLTIyNTMsNyArMjI1
Myw3IEBAIHZvaWQgTm9kZTo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiAgICAg
fSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmNvbnRleHRtZW51RXZlbnQpIHsK
ICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKICAgICAgICAg
ICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgICAgICAgICBwYWdl
LT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5oYW5kbGVDb250ZXh0TWVudUV2ZW50KCZldmVudCk7
CisgICAgICAgICAgICAgICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuaGFuZGxlQ29u
dGV4dE1lbnVFdmVudChldmVudCk7CiAjZW5kaWYKICAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkudGV4dElucHV0RXZlbnQpIHsKICAgICAgICAgaWYgKGlzPFRleHRFdmVu
dD4oZXZlbnQpKSB7CkBAIC0yMjcyLDcgKzIyNzIsNyBAQCB2b2lkIE5vZGU6OmRlZmF1bHRFdmVu
dEhhbmRsZXIoRXZlbnQmIGV2ZW50KQogCiAgICAgICAgICAgICBpZiAocmVuZGVyZXIpIHsKICAg
ICAgICAgICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1lbnQoKS5mcmFtZSgpKQotICAg
ICAgICAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc3RhcnRQYW5TY3JvbGxpbmco
ZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlcikpOworICAgICAgICAgICAgICAgICAgICBmcmFt
ZS0+ZXZlbnRIYW5kbGVyKCkuc3RhcnRQYW5TY3JvbGxpbmcoZG93bmNhc3Q8UmVuZGVyQm94Pigq
cmVuZGVyZXIpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAppbmRleCBhY2YyMjY4YTdlNzkzMDkyN2NlY2Ji
MTNkMjRkNjRjZmFkYmY2ZGRlLi4wMWYwNzFjY2FkY2RmMTk2NDFmMjg3Nzc0MTlkYjQ2Y2I1NDBj
NjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKQEAgLTkzMCw3
ICs5MzAsNyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlUHJpbnQoRnJhbWUmIGZyYW1lLCBFdmVudCos
IEVkaXRvckNvbW1hbmRTb3VyY2UsIGNvbnN0IFN0cmluZwogICAgIFBhZ2UqIHBhZ2UgPSBmcmFt
ZS5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcGFn
ZS0+Y2hyb21lKCkucHJpbnQoJmZyYW1lKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5wcmludChmcmFt
ZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNl
bGVjdGlvbi5jcHAKaW5kZXggNjc1OWZmMTc3ZmU3NjcxY2JiMTY5MzVlYjM2MTBkMmE1Njk3Yjc4
Ni4uYWM1ZDBiZmFkZThiZGViMDE2NWI1YmY2NGVlYjQ2ZTRiODM1ZTEzMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAKQEAgLTIxNTcsNyArMjE1Nyw3IEBAIHZv
aWQgRnJhbWVTZWxlY3Rpb246OnNldEZvY3VzZWRFbGVtZW50SWZOZWVkZWQoKQogICAgIGJvb2wg
Y2FyZXRCcm93c2luZyA9IG1fZnJhbWUtPnNldHRpbmdzKCkuY2FyZXRCcm93c2luZ0VuYWJsZWQo
KTsKICAgICBpZiAoY2FyZXRCcm93c2luZykgewogICAgICAgICBpZiAoRWxlbWVudCogYW5jaG9y
ID0gZW5jbG9zaW5nQW5jaG9yRWxlbWVudChtX3NlbGVjdGlvbi5iYXNlKCkpKSB7Ci0gICAgICAg
ICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50
KGFuY2hvciwgbV9mcmFtZSk7CisgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29u
dHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KGFuY2hvciwgKm1fZnJhbWUpOwogICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQpAQCAtMjE2OSwxNiArMjE2OSwxNiBAQCB2b2lk
IEZyYW1lU2VsZWN0aW9uOjpzZXRGb2N1c2VkRWxlbWVudElmTmVlZGVkKCkKICAgICAgICAgICAg
IC8vIHNvIGFkZCB0aGUgIWlzRnJhbWVFbGVtZW50IGNoZWNrIGhlcmUuIFRoZXJlJ3MgcHJvYmFi
bHkgYSBiZXR0ZXIgd2F5IHRvIG1ha2UgdGhpcwogICAgICAgICAgICAgLy8gd29yayBpbiB0aGUg
bG9uZyB0ZXJtLCBidXQgdGhpcyBpcyB0aGUgc2FmZXN0IGZpeCBhdCB0aGlzIHRpbWUuCiAgICAg
ICAgICAgICBpZiAodGFyZ2V0LT5pc01vdXNlRm9jdXNhYmxlKCkgJiYgIWlzRnJhbWVFbGVtZW50
KHRhcmdldCkpIHsKLSAgICAgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJv
bGxlcigpLnNldEZvY3VzZWRFbGVtZW50KHRhcmdldCwgbV9mcmFtZSk7CisgICAgICAgICAgICAg
ICAgbV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudCh0
YXJnZXQsICptX2ZyYW1lKTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9
CiAgICAgICAgICAgICB0YXJnZXQgPSB0YXJnZXQtPnBhcmVudE9yU2hhZG93SG9zdEVsZW1lbnQo
KTsKICAgICAgICAgfQotICAgICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT5zZXRGb2N1c2VkRWxl
bWVudCgwKTsKKyAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZEVsZW1lbnQo
bnVsbHB0cik7CiAgICAgfQogCiAgICAgaWYgKGNhcmV0QnJvd3NpbmcpCi0gICAgICAgIG1fZnJh
bWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQoMCwgbV9mcmFt
ZSk7CisgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNl
ZEVsZW1lbnQobnVsbHB0ciwgKm1fZnJhbWUpOwogfQogCiB2b2lkIERyYWdDYXJldENvbnRyb2xs
ZXI6OnBhaW50RHJhZ0NhcmV0KEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NDb250ZXh0JiBwLCBjb25z
dCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIGNvbnN0IExheW91dFJlY3QmIGNsaXBSZWN0KSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAppbmRleCAzNjMzOThkNmVm
Y2MxNGM0YjZiYjc1ZjMxMzg3Y2RkN2U3YzU5OWQxLi4yMWYyNGFkMzlmNGE5MTY2YzhiMTEzY2Fl
MjcwMGZlOWY0NTFjYThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hl
ZEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcApA
QCAtOTgsOSArOTgsOSBAQCB2b2lkIENhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSgpCiAgICAgZnJh
bWUubG9hZGVyKCkuY2xpZW50KCkuZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKIAogICAgIC8v
IFJlY29uc3RydWN0IHRoZSBGcmFtZVRyZWUuIEFuZCBvcGVuIHRoZSBjaGlsZCBDYWNoZWRGcmFt
ZXMgaW4gdGhlaXIgcmVzcGVjdGl2ZSBGcmFtZUxvYWRlcnMuCi0gICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG1fY2hpbGRGcmFtZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgZnJhbWUudHJl
ZSgpLmFwcGVuZENoaWxkKCZtX2NoaWxkRnJhbWVzW2ldLT52aWV3KCktPmZyYW1lKCkpOwotICAg
ICAgICBtX2NoaWxkRnJhbWVzW2ldLT5vcGVuKCk7CisgICAgZm9yIChhdXRvJiBjaGlsZEZyYW1l
IDogbV9jaGlsZEZyYW1lcykgeworICAgICAgICBmcmFtZS50cmVlKCkuYXBwZW5kQ2hpbGQoY2hp
bGRGcmFtZS0+dmlldygpLT5mcmFtZSgpKTsKKyAgICAgICAgY2hpbGRGcmFtZS0+b3BlbigpOwog
ICAgIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIENhY2hl
ZEZyYW1lQmFzZTo6cmVzdG9yZSgpCiAgICAgICAgICAgICAvLyBGSVhNRTogQWRkIFNDUk9MTF9M
SVNURU5FUiB0byB0aGUgbGlzdCBvZiBldmVudCB0eXBlcyBvbiBEb2N1bWVudCwgYW5kIHVzZSBt
X2RvY3VtZW50LT5oYXNMaXN0ZW5lclR5cGUoKS4gU2VlIDxyZGFyOi8vcHJvYmxlbS85NjE1NDgy
Pi4KICAgICAgICAgICAgIC8vIEZJWE1FOiBDYW4gdXNlIERvY3VtZW50OjpoYXNMaXN0ZW5lclR5
cGUoKSBub3cuCiAgICAgICAgICAgICBpZiAoZG9tV2luZG93LT5zY3JvbGxFdmVudExpc3RlbmVy
Q291bnQoKSAmJiBmcmFtZS5wYWdlKCkpCi0gICAgICAgICAgICAgICAgZnJhbWUucGFnZSgpLT5j
aHJvbWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoJmZyYW1lLCB0cnVl
KTsKKyAgICAgICAgICAgICAgICBmcmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE5l
ZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhmcmFtZSwgdHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CiAj
ZW5kaWYKQEAgLTE2Myw3ICsxNjMsNyBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJhbWUoRnJhbWUm
IGZyYW1lKQogICAgIC8vIDEgLSBXZSByZXVzZSB0aGUgbWFpbiBmcmFtZSwgc28gd2hlbiBpdCBu
YXZpZ2F0ZXMgdG8gYSBuZXcgcGFnZSBsb2FkIGl0IG5lZWRzIHRvIHN0YXJ0IHdpdGggYSBibGFu
ayBGcmFtZVRyZWUuCiAgICAgLy8gMiAtIEl0J3MgbXVjaCBlYXNpZXIgdG8gZGVzdHJveSBhIENh
Y2hlZEZyYW1lIHdoaWxlIGl0IHJlc2lkZXMgaW4gdGhlIFBhZ2VDYWNoZSBpZiBpdCBpcyBkaXNj
b25uZWN0ZWQgZnJvbSBpdHMgcGFyZW50LgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBt
X2NoaWxkRnJhbWVzLnNpemUoKTsgKytpKQotICAgICAgICBmcmFtZS50cmVlKCkucmVtb3ZlQ2hp
bGQoJm1fY2hpbGRGcmFtZXNbaV0tPnZpZXcoKS0+ZnJhbWUoKSk7CisgICAgICAgIGZyYW1lLnRy
ZWUoKS5yZW1vdmVDaGlsZChtX2NoaWxkRnJhbWVzW2ldLT52aWV3KCktPmZyYW1lKCkpOwogCiAg
ICAgaWYgKCFtX2lzTWFpbkZyYW1lKQogICAgICAgICBmcmFtZS5wYWdlKCktPmRlY3JlbWVudFN1
YmZyYW1lQ291bnQoKTsKQEAgLTE4MSw3ICsxODEsNyBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJh
bWUoRnJhbWUmIGZyYW1lKQogICAgIGlmIChtX2lzTWFpbkZyYW1lKSB7CiAgICAgICAgIGlmIChE
T01XaW5kb3cqIGRvbVdpbmRvdyA9IG1fZG9jdW1lbnQtPmRvbVdpbmRvdygpKSB7CiAgICAgICAg
ICAgICBpZiAoZG9tV2luZG93LT5zY3JvbGxFdmVudExpc3RlbmVyQ291bnQoKSAmJiBmcmFtZS5w
YWdlKCkpCi0gICAgICAgICAgICAgICAgZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5z
ZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoJmZyYW1lLCBmYWxzZSk7CisgICAgICAgICAgICAg
ICAgZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNh
dGlvbnMoZnJhbWUsIGZhbHNlKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCA1YmEyYzk1NGIyYmQ4OTk1YmMwYjJiNzJk
MmZmY2QzNzkxOTEwN2E2Li41MGUxZmNiMTQzNzEzYTMwYWM5MTUzMzEzYjU4OTMyNTc5MGQyMWU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAtMTU2LDcgKzE1Niw3
IEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmIGV2
ZW50KQogCiAgICAgaWYgKENocm9tZSogY2hyb21lID0gdGhpcy0+Y2hyb21lKCkpIHsKICAgICAg
ICAgaWYgKCFtX2Nob29zZXIpCi0gICAgICAgICAgICBtX2Nob29zZXIgPSBjaHJvbWUtPmNyZWF0
ZUNvbG9yQ2hvb3Nlcih0aGlzLCB2YWx1ZUFzQ29sb3IoKSk7CisgICAgICAgICAgICBtX2Nob29z
ZXIgPSBjaHJvbWUtPmNyZWF0ZUNvbG9yQ2hvb3NlcigqdGhpcywgdmFsdWVBc0NvbG9yKCkpOwog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2Nob29zZXItPnJlYXR0YWNoQ29sb3JDaG9vc2Vy
KHZhbHVlQXNDb2xvcigpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwCmluZGV4IDgxMWViMGQ1ZDA1YjZhNmM3Njg4NzhkMDNmYzMzYzFjMjQ5NDZmYjAu
LmJhZWI1NzZiMTU2M2ViMzE1N2JiNzJlY2Q4N2I3ODI3MDA5ZWYzMDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC0xMjksNyArMTI5LDcgQEAgYm9vbCBI
VE1MQW5jaG9yRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50JiBldmVu
dCkgY29uc3QKICAgICBpZiAoIWRvY3VtZW50KCkuZnJhbWUoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLnRhYnNU
b0xpbmtzKCZldmVudCkpCisgICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxl
cigpLnRhYnNUb0xpbmtzKGV2ZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYg
KCFyZW5kZXJlcigpICYmIGFuY2VzdG9yc09mVHlwZTxIVE1MQ2FudmFzRWxlbWVudD4oKnRoaXMp
LmZpcnN0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJv
bEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcAppbmRleCBlYThhM2IzM2UwMDI3ODMyZDY3MGY5ZTA5ODdhY2NhOGQzNjhiYWEyLi42MmMy
ODYxN2FlMzVkZTY3MzJmZmEwNjYzMzhmZTMxODE2NTQ2Y2E4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTM3MCwxMCArMzcwLDkgQEAg
Ym9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0CiAKIGJvb2wg
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50
JiBldmVudCkgY29uc3QKIHsKLSAgICBpZiAoaXNGb2N1c2FibGUoKSkKLSAgICAgICAgaWYgKGRv
Y3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgIHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCkt
PmV2ZW50SGFuZGxlcigpLnRhYnNUb0FsbEZvcm1Db250cm9scygmZXZlbnQpOwotICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gaXNGb2N1c2FibGUoKQorICAgICAgICAmJiBkb2N1bWVudCgp
LmZyYW1lKCkKKyAgICAgICAgJiYgZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS50
YWJzVG9BbGxGb3JtQ29udHJvbHMoZXZlbnQpOwogfQogCiBib29sIEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQ6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudC5jcHAKaW5kZXggZDhhNzkzZTMwZWJmMWJjMzNiMWEzMmEyZjJjZDFjZjdiOTE4
OWRiYy4uYTlkYjkwNTE4ZGU3MTAwZjg2MWFmY2RkYmE2ZDI2NzVhMjBlM2JkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCkBAIC0xNzEsNyArMTcxLDcgQEAgYm9v
bCBIVE1MVmlkZW9FbGVtZW50OjpzdXBwb3J0c0Z1bGxzY3JlZW4oSFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpWaWRlb0Z1bGxzY3JlZW4KICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgLy8g
SWYgdGhlIGZ1bGwgc2NyZWVuIEFQSSBpcyBlbmFibGVkIGFuZCBpcyBzdXBwb3J0ZWQgZm9yIHRo
ZSBjdXJyZW50IGVsZW1lbnQKICAgICAvLyBkbyBub3QgcmVxdWlyZSB0aGF0IHRoZSBwbGF5ZXIg
aGFzIGEgdmlkZW8gdHJhY2sgdG8gZW50ZXIgZnVsbCBzY3JlZW4uCi0gICAgaWYgKHZpZGVvRnVs
bHNjcmVlbk1vZGUgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
U3RhbmRhcmQgJiYgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9y
RWxlbWVudCh0aGlzLCBmYWxzZSkpCisgICAgaWYgKHZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQgJiYgcGFnZS0+
Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCgqdGhpcywgZmFs
c2UpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKaW5kZXggNThiZDYyYTM2NDQ3ZjEx
NDk4YzNkOGM5OTU3ZjFjZDFmNzNiMGU3Ny4uOThiZDcyYmZmMmQwZGY4MDZhYjBhYmY1MzdiYWU2
OTA3MjI4NDgwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1
dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0
b25FbGVtZW50LmNwcApAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgU3BpbkJ1dHRvbkVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQogICAgICAgICAgICAgICAgICAgICBm
cmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KHRoaXMp
OwogICAgICAgICAgICAgICAgICAgICBtX2NhcHR1cmluZyA9IHRydWU7CiAgICAgICAgICAgICAg
ICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICAg
ICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5yZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKHRo
aXMpOworICAgICAgICAgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkucmVnaXN0ZXJQb3B1
cE9wZW5pbmdPYnNlcnZlcigqdGhpcyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQogICAgICAgICAgICAgVXBEb3duU3RhdGUgb2xkVXBEb3duU3RhdGUgPSBtX3VwRG93blN0YXRl
OwpAQCAtMjA1LDcgKzIwNSw3IEBAIHZvaWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OnJlbGVhc2VDYXB0
dXJlKCkKICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZXRDYXB0dXJpbmdNb3Vz
ZUV2ZW50c0VsZW1lbnQobnVsbHB0cik7CiAgICAgICAgICAgICBtX2NhcHR1cmluZyA9IGZhbHNl
OwogICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKSkKLSAgICAg
ICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS51bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIo
dGhpcyk7CisgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkudW5yZWdpc3RlclBvcHVwT3Bl
bmluZ09ic2VydmVyKCp0aGlzKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1h
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRv
bkVsZW1lbnRNYWMuY3BwCmluZGV4IGZkMGMzZTM2ZjM5MzM0MWRiZGFhMThjMDMxZTFiMWU3NDg3
ZWZjYzkuLmJhOWJhZGZlNTYyZTRiZmU3ZjllMTRmMGE2YjVlZDE5YjUwYWEzYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxl
bWVudE1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgSW1hZ2VD
b250cm9sc0J1dHRvbkVsZW1lbnRNYWM6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50
KQogICAgICAgICBpZiAoIXBhZ2UpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgcGFn
ZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0ltYWdlQ29udHJvbHNNZW51KCZldmVudCk7
CisgICAgICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dJbWFnZUNvbnRyb2xz
TWVudShldmVudCk7CiAgICAgICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZEhvc3QuY3BwCmluZGV4IDMxNTQ3ZGI3YWYzYjUzZmQ3ZWI0MjQxYzcwNTQzZjhm
NGI2NmIxN2UuLjc0OTg4Y2I1ZTYwNDg3MjA4ODkzYjAzMTYwMWNiYTgyMzRiYjkzZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3Bw
CkBAIC0zMzksOCArMzM5LDggQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250
ZXh0TWVudShFdmVudCogZXZlbnQsIGNvbnN0IFZlY3RvcjxDb250ZXh0TWUKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBhdXRvIG1lbnVQcm92aWRlciA9IEZyb250ZW5kTWVudVByb3ZpZGVy
OjpjcmVhdGUodGhpcywgeyAmc3RhdGUsIGZyb250ZW5kQXBpT2JqZWN0IH0sIGl0ZW1zKTsKLSAg
ICBtX2Zyb250ZW5kUGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0NvbnRleHRNZW51
KGV2ZW50LCBtZW51UHJvdmlkZXIucHRyKCkpOwogICAgIG1fbWVudVByb3ZpZGVyID0gbWVudVBy
b3ZpZGVyLnB0cigpOworICAgIG1fZnJvbnRlbmRQYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIo
KS5zaG93Q29udGV4dE1lbnUoKmV2ZW50LCBtZW51UHJvdmlkZXIpOwogfQogCiAjZW5kaWYKQEAg
LTM1NSw3ICszNTUsNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6ZGlzcGF0Y2hFdmVu
dEFzQ29udGV4dE1lbnVFdmVudChFdmVudCogZXZlbnQpCiAgICAgTW91c2VFdmVudCYgbW91c2VF
dmVudCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+KCpldmVudCk7CiAgICAgSW50UG9pbnQgbW91c2VQ
b2ludCA9IEludFBvaW50KG1vdXNlRXZlbnQuY2xpZW50WCgpLCBtb3VzZUV2ZW50LmNsaWVudFko
KSk7CiAKLSAgICBtX2Zyb250ZW5kUGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0Nv
bnRleHRNZW51QXQoZnJhbWUsIG1vdXNlUG9pbnQpOworICAgIG1fZnJvbnRlbmRQYWdlLT5jb250
ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnVBdCgqZnJhbWUsIG1vdXNlUG9pbnQp
OwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZXZlbnQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGU3NTQ5NWZkNDI0YzIzZTg5NTM2Y2E4ZDQzMzkw
NTNiZDRlMTFiYmQuLjU3NzkwYjUwY2ZjZGE0YTUyZjBjNGMwMmViNTdhYjIzM2E2ZDU3YjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NzIsMTkgKzU3MiwxOSBA
QCBjbGFzcyBFbXB0eVZpc2l0ZWRMaW5rU3RvcmUgZmluYWwgOiBwdWJsaWMgVmlzaXRlZExpbmtT
dG9yZSB7CiAgICAgdm9pZCBhZGRWaXNpdGVkTGluayhQYWdlJiwgTGlua0hhc2gpIGZpbmFsIHsg
fQogfTsKIAotUmVmUHRyPFBvcHVwTWVudT4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdAorUmVmUHRyPFBvcHVwTWVudT4gRW1wdHlDaHJv
bWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdAogewogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5UG9wdXBNZW51KTsKIH0KIAotUmVmUHRyPFNlYXJj
aFBvcHVwTWVudT4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqKSBjb25zdAorUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gRW1wdHlDaHJvbWVD
bGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdAogewog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U2VhcmNoUG9wdXBNZW51KTsKIH0KIAogI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogCi1zdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2Vy
PiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVu
dCosIGNvbnN0IENvbG9yJikKK3N0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IEVtcHR5Q2hy
b21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3Qg
Q29sb3ImKQogewogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5oCmluZGV4IDkxYzJkMzg2OTAxMGRhNWVhNDNkMDA5Y2QwZjEzZTBiNzhlN2NmZjUu
LmM5ZWJlYTQ4YzhmYTY5YTZmNTY3MTU4NWNiNmRiNjRiOTM2MDZhNGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTYxLDcgKzYxLDcgQEAgY2xhc3MgRW1wdHlDaHJvbWVD
bGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lkIGZvY3VzZWRFbGVtZW50Q2hh
bmdlZChFbGVtZW50KikgZmluYWwgeyB9CiAgICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKEZy
YW1lKikgZmluYWwgeyB9CiAKLSAgICBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBG
cmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9u
QWN0aW9uJikgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIFBhZ2UqIGNyZWF0ZVdpbmRv
dyhGcmFtZSYsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYs
IGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAgICAg
dm9pZCBzaG93KCkgZmluYWwgeyB9CiAKICAgICBib29sIGNhblJ1bk1vZGFsKCkgZmluYWwgeyBy
ZXR1cm4gZmFsc2U7IH0KQEAgLTg0LDE5ICs4NCwxOSBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVu
dCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShN
ZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkLCB1bnNp
Z25lZCwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CiAKICAgICBib29sIGNhblJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbCgpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBydW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiwgRnJhbWUqKSBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CisgICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3Qg
U3RyaW5nJiwgRnJhbWUmKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2b2lkIGNsb3Nl
V2luZG93U29vbigpIGZpbmFsIHsgfQogCi0gICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJh
bWUqLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KLSAgICBib29sIHJ1bkphdmFTY3JpcHRDb25m
aXJtKEZyYW1lKiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBi
b29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmLCBTdHJpbmcmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgcnVuSmF2YVNj
cmlwdEFsZXJ0KEZyYW1lJiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CisgICAgYm9vbCBydW5K
YXZhU2NyaXB0Q29uZmlybShGcmFtZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAg
IGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBmaW5hbCB7IHJldHVy
biBmYWxzZTsgfQogICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGlu
Z0RpcmVjdGlvbigpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBoYXNPcGVuZWRQ
b3B1cCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgUmVmUHRyPFBvcHVwTWVu
dT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IGZpbmFsOwotICAgIFJl
ZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUo
UG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFNlYXJjaFBvcHVwTWVu
dT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0IGZpbmFsOwog
CiAgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQogCkBA
IC0xMjAsMjkgKzEyMCwyOSBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJv
bWVDbGllbnQgewogICAgIEludFJlY3Qgcm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29u
c3QgSW50UmVjdCYgcikgY29uc3QgZmluYWwgeyByZXR1cm4gcjsgfTsKICNlbmRpZgogICAgIFBs
YXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biAwOyB9Ci0gICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6
ZSYpIGNvbnN0IGZpbmFsIHsgfQorICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYs
IGNvbnN0IEludFNpemUmKSBjb25zdCBmaW5hbCB7IH0KIAogICAgIHZvaWQgc2Nyb2xsYmFyc01v
ZGVEaWRDaGFuZ2UoKSBjb25zdCBmaW5hbCB7IH0KICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJF
bGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCkgZmluYWwgeyB9CiAKICAgICB2
b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgVGV4dERpcmVjdGlvbikgZmluYWwgeyB9CiAK
LSAgICB2b2lkIHByaW50KEZyYW1lKikgZmluYWwgeyB9CisgICAgdm9pZCBwcmludChGcmFtZSYp
IGZpbmFsIHsgfQogCi0gICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25z
dCBTdHJpbmcmLCBEYXRhYmFzZURldGFpbHMpIGZpbmFsIHsgfQorICAgIHZvaWQgZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKEZyYW1lJiwgY29uc3QgU3RyaW5nJiwgRGF0YWJhc2VEZXRhaWxzKSBmaW5h
bCB7IH0KIAogICAgIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90KSBmaW5hbCB7
IH0KLSAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlP
cmlnaW4qLCBpbnQ2NF90KSBmaW5hbCB7IH0KKyAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90KSBmaW5hbCB7IH0KIAogI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29z
ZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYp
IGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hv
b3NlcihDb2xvckNob29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYpIGZpbmFsOwogI2VuZGlmCiAK
ICAgICB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJikgZmluYWw7CiAgICAg
dm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2Fk
ZXImKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IE5vZGUqKSBm
aW5hbCB7IH0KLSAgICB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUqKSBmaW5hbCB7IH0K
KyAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhFbGVtZW50JikgZmluYWwgeyB9CisgICAgdm9pZCBl
bGVtZW50RGlkQmx1cihFbGVtZW50JikgZmluYWwgeyB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQog
ICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpIGZpbmFsIHsgfQpAQCAtMTUxLDggKzE1
MSw4IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAK
ICAgICB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3QgZmluYWwg
eyB9CiAKLSAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NM
YXllciopIGZpbmFsIHsgfQotICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVy
KEZyYW1lKiwgR3JhcGhpY3NMYXllciopIGZpbmFsIHsgfQorICAgIHZvaWQgYXR0YWNoUm9vdEdy
YXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikgZmluYWwgeyB9CisgICAgdm9pZCBh
dHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikgZmlu
YWwgeyB9CiAgICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkg
ZmluYWwgeyB9CiAgICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIGZpbmFs
IHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAxNGQ0N2RhOTcy
ZTkyODM2OWFjODEzY2Y5NjE4NDc0ZjFhZjAwMTg1Li43OGRmZjBjNDNjNWZiMDExYzc4MGE0NDdh
OWI2OTJjNDRhZmQ0M2MxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAg
LTM5Nyw3ICszOTcsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpzdWJtaXRGb3JtKFJlZjxGb3JtU3Vi
bWlzc2lvbj4mJiBzdWJtaXNzaW9uKQogCiAgICAgRnJhbWUqIHRhcmdldEZyYW1lID0gZmluZEZy
YW1lRm9yTmF2aWdhdGlvbihzdWJtaXNzaW9uLT50YXJnZXQoKSwgJnN1Ym1pc3Npb24tPnN0YXRl
KCkuc291cmNlRG9jdW1lbnQoKSk7CiAgICAgaWYgKCF0YXJnZXRGcmFtZSkgewotICAgICAgICBp
ZiAoIURPTVdpbmRvdzo6YWxsb3dQb3BVcCgmbV9mcmFtZSkgJiYgIVNjcmlwdENvbnRyb2xsZXI6
OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQorICAgICAgICBpZiAoIURPTVdpbmRvdzo6YWxsb3dQ
b3BVcChtX2ZyYW1lKSAmJiAhU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJl
KCkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgLy8gRklYTUU6IHRhcmdldEZyYW1l
IGNhbiBiZSBudWxsIGZvciB0d28gZGlzdGluY3QgcmVhc29uczoKQEAgLTE4NTIsMTEgKzE4NTIs
OSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQoKQogICAgICAgICBo
aXN0b3J5KCkudXBkYXRlRm9yQ2xpZW50UmVkaXJlY3QoKTsKIAogICAgIGlmIChtX2xvYWRpbmdG
cm9tQ2FjaGVkUGFnZSkgewotI2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgLy8gTm90ZSwgZGlk
UmVjZWl2ZURvY1R5cGUgaXMgZXhwZWN0ZWQgdG8gYmUgY2FsbGVkIGZvciBjYWNoZWQgcGFnZXMu
IFNlZSA8cmRhcjovL3Byb2JsZW0vNTkwNjc1OD4gZm9yIG1vcmUgZGV0YWlscy4KLSAgICAgICAg
aWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+ZG9jdHlwZSgpICYmIG1fZnJhbWUucGFnZSgpKQotICAg
ICAgICAgICAgbV9mcmFtZS5wYWdlKCktPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKCZtX2Zy
YW1lKTsKLSNlbmRpZgorICAgICAgICBpZiAoYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQor
ICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkuZGlkUmVjZWl2ZURvY1R5cGUobV9mcmFtZSk7CiAg
ICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+cmVzdW1lKEFjdGl2ZURPTU9iamVjdDo6UGFnZUNh
Y2hlKTsKIAogICAgICAgICAvLyBGb3JjZSBhIGxheW91dCB0byB1cGRhdGUgdmlldyBzaXplIGFu
ZCB0aGVyZWJ5IHVwZGF0ZSBzY3JvbGxiYXJzLgpAQCAtMjQzOSwxNSArMjQzNywxNSBAQCB2b2lk
IEZyYW1lTG9hZGVyOjpkZXRhY2hDaGlsZHJlbigpCiAgICAgICAgIGNoaWxkLT5sb2FkZXIoKS5k
ZXRhY2hGcm9tUGFyZW50KCk7CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNsb3NlQW5kUmVtb3Zl
Q2hpbGQoRnJhbWUqIGNoaWxkKQordm9pZCBGcmFtZUxvYWRlcjo6Y2xvc2VBbmRSZW1vdmVDaGls
ZChGcmFtZSYgY2hpbGQpCiB7Ci0gICAgY2hpbGQtPnRyZWUoKS5kZXRhY2hGcm9tUGFyZW50KCk7
CisgICAgY2hpbGQudHJlZSgpLmRldGFjaEZyb21QYXJlbnQoKTsKIAotICAgIGNoaWxkLT5zZXRW
aWV3KG51bGxwdHIpOwotICAgIGlmIChjaGlsZC0+b3duZXJFbGVtZW50KCkgJiYgY2hpbGQtPnBh
Z2UoKSkKLSAgICAgICAgY2hpbGQtPnBhZ2UoKS0+ZGVjcmVtZW50U3ViZnJhbWVDb3VudCgpOwot
ICAgIGNoaWxkLT53aWxsRGV0YWNoUGFnZSgpOwotICAgIGNoaWxkLT5kZXRhY2hGcm9tUGFnZSgp
OworICAgIGNoaWxkLnNldFZpZXcobnVsbHB0cik7CisgICAgaWYgKGNoaWxkLm93bmVyRWxlbWVu
dCgpICYmIGNoaWxkLnBhZ2UoKSkKKyAgICAgICAgY2hpbGQucGFnZSgpLT5kZWNyZW1lbnRTdWJm
cmFtZUNvdW50KCk7CisgICAgY2hpbGQud2lsbERldGFjaFBhZ2UoKTsKKyAgICBjaGlsZC5kZXRh
Y2hGcm9tUGFnZSgpOwogCiAgICAgbV9mcmFtZS50cmVlKCkucmVtb3ZlQ2hpbGQoY2hpbGQpOwog
fQpAQCAtMjUyOCw3ICsyNTI2LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGV0YWNoRnJvbVBhcmVu
dCgpCiAgICAgbV9wcm9ncmVzc1RyYWNrZXIgPSBudWxscHRyOwogCiAgICAgaWYgKEZyYW1lKiBw
YXJlbnQgPSBtX2ZyYW1lLnRyZWUoKS5wYXJlbnQoKSkgewotICAgICAgICBwYXJlbnQtPmxvYWRl
cigpLmNsb3NlQW5kUmVtb3ZlQ2hpbGQoJm1fZnJhbWUpOworICAgICAgICBwYXJlbnQtPmxvYWRl
cigpLmNsb3NlQW5kUmVtb3ZlQ2hpbGQobV9mcmFtZSk7CiAgICAgICAgIHBhcmVudC0+bG9hZGVy
KCkuc2NoZWR1bGVDaGVja0NvbXBsZXRlZCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fZnJh
bWUuc2V0VmlldyhudWxscHRyKTsKQEAgLTMwMzIsNyArMzAzMCw3IEBAIGJvb2wgRnJhbWVMb2Fk
ZXI6OmRpc3BhdGNoQmVmb3JlVW5sb2FkRXZlbnQoQ2hyb21lJiBjaHJvbWUsIEZyYW1lTG9hZGVy
KiBmcmFtZUxvCiAgICAgZnJhbWVMb2FkZXJCZWluZ05hdmlnYXRlZC0+bV9jdXJyZW50TmF2aWdh
dGlvbkhhc1Nob3duQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsID0gdHJ1ZTsKIAogICAgIFN0cmlu
ZyB0ZXh0ID0gZG9jdW1lbnQtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcoYmVmb3Jl
VW5sb2FkRXZlbnQtPnJldHVyblZhbHVlKCkpOwotICAgIHJldHVybiBjaHJvbWUucnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsKHRleHQsICZtX2ZyYW1lKTsKKyAgICByZXR1cm4gY2hyb21lLnJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCh0ZXh0LCBtX2ZyYW1lKTsKIH0KIAogdm9pZCBGcmFt
ZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgRm9ybVN0YXRlKiBmb3JtU3RhdGUsIGJvb2wgc2hvdWxkQ29udGlu
dWUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRV
UkwpCkBAIC0zNjU3LDcgKzM2NTUsNyBAQCBSZWZQdHI8RnJhbWU+IGNyZWF0ZVdpbmRvdyhGcmFt
ZSYgb3BlbmVyRnJhbWUsIEZyYW1lJiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMbwogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lU
b0FwcGx5KG9wZW5lckZyYW1lLCByZXF1ZXN0LnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ko
KSk7Ci0gICAgUGFnZSogcGFnZSA9IG9sZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdygmb3Bl
bmVyRnJhbWUsIHJlcXVlc3RXaXRoUmVmZXJyZXIsIGZlYXR1cmVzLCBOYXZpZ2F0aW9uQWN0aW9u
KHJlcXVlc3RXaXRoUmVmZXJyZXIucmVzb3VyY2VSZXF1ZXN0KCksIHNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kpKTsKKyAgICBQYWdlKiBwYWdlID0gb2xkUGFnZS0+Y2hyb21lKCkuY3JlYXRl
V2luZG93KG9wZW5lckZyYW1lLCByZXF1ZXN0V2l0aFJlZmVycmVyLCBmZWF0dXJlcywgTmF2aWdh
dGlvbkFjdGlvbihyZXF1ZXN0V2l0aFJlZmVycmVyLnJlc291cmNlUmVxdWVzdCgpLCBzaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5KSk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIApAQCAtMzcwNSw3ICszNzAzLDcgQEAgUmVmUHRyPEZyYW1lPiBjcmVhdGVXaW5k
b3coRnJhbWUmIG9wZW5lckZyYW1lLCBGcmFtZSYgbG9va3VwRnJhbWUsIGNvbnN0IEZyYW1lTG8K
ICAgICAgICAgd2luZG93UmVjdC5zZXRIZWlnaHQoKmZlYXR1cmVzLmhlaWdodCArICh3aW5kb3dS
ZWN0LmhlaWdodCgpIC0gdmlld3BvcnRTaXplLmhlaWdodCgpKSk7CiAKICAgICAvLyBFbnN1cmUg
bm9uLU5hTiB2YWx1ZXMsIG1pbmltdW0gc2l6ZSBhcyB3ZWxsIGFzIGJlaW5nIHdpdGhpbiB2YWxp
ZCBzY3JlZW4gYXJlYS4KLSAgICBGbG9hdFJlY3QgbmV3V2luZG93UmVjdCA9IERPTVdpbmRvdzo6
YWRqdXN0V2luZG93UmVjdChwYWdlLCB3aW5kb3dSZWN0KTsKKyAgICBGbG9hdFJlY3QgbmV3V2lu
ZG93UmVjdCA9IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdCgqcGFnZSwgd2luZG93UmVjdCk7
CiAKICAgICBpZiAoIWZyYW1lLT5wYWdlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAppbmRleCBmYWEwNzEyZmE0ZDI0Nzg3ZmE1NWQ0ODRj
NTQ1NDI2NWJhNTFiNjJiLi5kNjljODI5YzRlMmY2YWJmOTRjZTFiNDA1NjQ3N2VjNmI5MGI2OThh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApAQCAtMzY2LDcgKzM2Niw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0RnJvbURlbGVnYXRlKFJlc291cmNlUmVxdWVzdCYsIHVu
c2lnbmVkIGxvbmcmIGlkZW50aWZpZXIsIFJlc291cmNlRXJyb3ImKTsKIAogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGV0YWNoQ2hpbGRyZW4oKTsKLSAgICB2b2lkIGNsb3NlQW5kUmVtb3ZlQ2hp
bGQoRnJhbWUqKTsKKyAgICB2b2lkIGNsb3NlQW5kUmVtb3ZlQ2hpbGQoRnJhbWUmKTsKIAogICAg
IHZvaWQgbG9hZEluU2FtZURvY3VtZW50KGNvbnN0IFVSTCYsIFNlcmlhbGl6ZWRTY3JpcHRWYWx1
ZSogc3RhdGVPYmplY3QsIGJvb2wgaXNOZXdOYXZpZ2F0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL1BvbGljeUNoZWNrZXIuY3BwCmluZGV4IGJiYjYxZWI0ODIxMjE5ODNhYmViNTdiY2U0ZTg0
NzM0YjdmZTYyMjMuLmEwMWNlMjkyOWExMDEwNjAwNGEyNGU3NGE2MDhiOGNkNzY3NjFhNjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBA
QCB2b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNrTmV3V2luZG93UG9saWN5KGNvbnN0IE5hdmlnYXRp
b25BY3Rpb24mIGFjdGlvbiwgY29uc3QgUgogICAgIGlmIChtX2ZyYW1lLmRvY3VtZW50KCkgJiYg
bV9mcmFtZS5kb2N1bWVudCgpLT5pc1NhbmRib3hlZChTYW5kYm94UG9wdXBzKSkKICAgICAgICAg
cmV0dXJuIGNvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KFBvbGljeUlnbm9yZSk7CiAKLSAg
ICBpZiAoIURPTVdpbmRvdzo6YWxsb3dQb3BVcCgmbV9mcmFtZSkpCisgICAgaWYgKCFET01XaW5k
b3c6OmFsbG93UG9wVXAobV9mcmFtZSkpCiAgICAgICAgIHJldHVybiBjb250aW51ZUFmdGVyTmF2
aWdhdGlvblBvbGljeShQb2xpY3lJZ25vcmUpOwogCiAgICAgbV9jYWxsYmFjay5zZXQocmVxdWVz
dCwgZm9ybVN0YXRlLCBmcmFtZU5hbWUsIGFjdGlvbiwgV1RGTW92ZShmdW5jdGlvbikpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmNwcAppbmRleCA4YTI4Zjg4ZTY2NzNkYjE3MDJiMTQ0MTRmYWY3MzhiNWM3NDJmY2Vm
Li45ZjlhYjAwMGNmNmQ5Mzg1ZjhhMjU4ZjUxNTFiODcwZjcyOTBkOGFhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3Vw
LmNwcApAQCAtNzg0LDcgKzc4NCw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpjYWNo
ZVVwZGF0ZUZhaWxlZCgpCiAKIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpyZWNhbGN1bGF0
ZUF2YWlsYWJsZVNwYWNlSW5RdW90YSgpCiB7Ci0gICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCktPmFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlKCkuY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4
Y2x1ZGluZ0NhY2hlKG1fb3JpZ2luLmdldCgpLCBtX25ld2VzdENhY2hlLmdldCgpLCBtX2F2YWls
YWJsZVNwYWNlSW5RdW90YSkpIHsKKyAgICBpZiAoIW1fZnJhbWUtPnBhZ2UoKS0+YXBwbGljYXRp
b25DYWNoZVN0b3JhZ2UoKS5jYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5n
Q2FjaGUobV9vcmlnaW4sIG1fbmV3ZXN0Q2FjaGUuZ2V0KCksIG1fYXZhaWxhYmxlU3BhY2VJblF1
b3RhKSkgewogICAgICAgICAvLyBGYWlsZWQgdG8gZGV0ZXJtaW5lIHdoYXQgaXMgbGVmdCBpbiB0
aGUgcXVvdGEuIEZhbGxiYWNrIHRvIGFsbG93aW5nIGFueXRoaW5nLgogICAgICAgICBtX2F2YWls
YWJsZVNwYWNlSW5RdW90YSA9IEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpub1F1b3RhKCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVHcm91cC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVHcm91cC5oCmluZGV4IGZjODUxZGE3Y2ZhOGM0MzMyZjY4NWVhMjkxMjJlMzdkNGRi
N2FhYTIuLmNlYjgzZGZjNjIxNmZlNTU4NDI3N2M5ZjlhYWU1NjYwOGQ3YzRkMGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdy
b3VwLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVibGljOgogCiAgICAgQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2UmIHN0b3JhZ2UoKSB7IHJldHVybiBtX3N0b3JhZ2U7IH0KICAgICBjb25zdCBVUkwmIG1h
bmlmZXN0VVJMKCkgY29uc3QgeyByZXR1cm4gbV9tYW5pZmVzdFVSTDsgfQotICAgIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luKiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbi5nZXQoKTsgfQor
ICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdp
bi5nZXQoKTsgfQogICAgIFVwZGF0ZVN0YXR1cyB1cGRhdGVTdGF0dXMoKSBjb25zdCB7IHJldHVy
biBtX3VwZGF0ZVN0YXR1czsgfQogICAgIHZvaWQgc2V0VXBkYXRlU3RhdHVzKFVwZGF0ZVN0YXR1
cyBzdGF0dXMpOwogCkBAIC0xMzUsNyArMTM1LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8QXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2U+IG1fc3RvcmFnZTsKIAogICAgIFVSTCBtX21hbmlmZXN0VVJMOwot
ICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4gbV9vcmlnaW47CisgICAgUmVmPFNlY3VyaXR5T3Jp
Z2luPiBtX29yaWdpbjsKICAgICBVcGRhdGVTdGF0dXMgbV91cGRhdGVTdGF0dXMgeyBJZGxlIH07
CiAgICAgCiAgICAgLy8gVGhpcyBpcyB0aGUgbmV3ZXN0IGNvbXBsZXRlIGNhY2hlIGluIHRoZSBn
cm91cC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCmluZGV4IGY0ZmE5NWI1MTdlYzc3OTE2MjRmYzBmMjVh
NjU2YjBjMDk0NDE0NzcuLmI2YjlkN2E3Y2Q2M2MwNzZhZTdhODQxMDk5OTgwYjQzZWY4N2I2YWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlLmNwcApAQCAtNDIxLDcgKzQyMSw3IEBAIHZvaWQgQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2U6OnNldERlZmF1bHRPcmlnaW5RdW90YShpbnQ2NF90IHF1b3RhKQogICAg
IG1fZGVmYXVsdE9yaWdpblF1b3RhID0gcXVvdGE7CiB9CiAKLWJvb2wgQXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2U6OmNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBv
cmlnaW4sIGludDY0X3QmIHF1b3RhKQorYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2Fs
Y3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgaW50NjRf
dCYgcXVvdGEpCiB7CiAgICAgU1FMaXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0b0NvdW50ZXIg
dHJhbnNhY3Rpb25Db3VudGVyOwogCkBAIC00MzIsNyArNDMyLDcgQEAgYm9vbCBBcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmln
aW4qIG9yaWcKICAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIHN0YXRlbWVudC5iaW5kVGV4dCgxLCBTZWN1cml0eU9y
aWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbigqb3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIo
KSk7CisgICAgc3RhdGVtZW50LmJpbmRUZXh0KDEsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNl
Y3VyaXR5T3JpZ2luKG9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogICAgIGludCByZXN1
bHQgPSBzdGF0ZW1lbnQuc3RlcCgpOwogCiAgICAgLy8gUmV0dXJuIHRoZSBxdW90YSwgb3IgaWYg
aXQgd2FzIG51bGwgdGhlIGRlZmF1bHQuCkBAIC00NzIsNyArNDcyLDcgQEAgYm9vbCBBcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlVXNhZ2VGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlP
cmlnaW4qIG9yaWcKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgQXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShj
b25zdCBTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBBcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSwgaW50
NjRfdCYgcmVtYWluaW5nU2l6ZSkKK2Jvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1
bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShjb25zdCBTZWN1cml0eU9y
aWdpbiYgb3JpZ2luLCBBcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSwgaW50NjRfdCYgcmVtYWluaW5n
U2l6ZSkKIHsKICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRlciB0cmFu
c2FjdGlvbkNvdW50ZXI7CiAKQEAgLTUwMyw3ICs1MDMsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjpjYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUo
Y29ucwogICAgIGlmIChzdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSykKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgc3RhdGVtZW50LmJpbmRUZXh0KDEsIFNlY3VyaXR5T3JpZ2lu
RGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpvcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpKTsK
KyAgICBzdGF0ZW1lbnQuYmluZFRleHQoMSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJp
dHlPcmlnaW4ob3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CiAgICAgaWYgKGV4Y2x1ZGlu
Z0NhY2hlSWRlbnRpZmllciAhPSAwKQogICAgICAgICBzdGF0ZW1lbnQuYmluZEludDY0KDIsIGV4
Y2x1ZGluZ0NhY2hlSWRlbnRpZmllcik7CiAgICAgaW50IHJlc3VsdCA9IHN0YXRlbWVudC5zdGVw
KCk7CkBAIC02ODgsMTQgKzY4OCwxNCBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpz
dG9yZShBcHBsaWNhdGlvbkNhY2hlR3JvdXAqIGdyb3VwLCBHcm91cFN0b3JhZ2VJRAogCiAgICAg
c3RhdGVtZW50LmJpbmRJbnQ2NCgxLCB1cmxIb3N0SGFzaChncm91cC0+bWFuaWZlc3RVUkwoKSkp
OwogICAgIHN0YXRlbWVudC5iaW5kVGV4dCgyLCBncm91cC0+bWFuaWZlc3RVUkwoKSk7Ci0gICAg
c3RhdGVtZW50LmJpbmRUZXh0KDMsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3Jp
Z2luKCpncm91cC0+b3JpZ2luKCkpLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKKyAgICBzdGF0ZW1l
bnQuYmluZFRleHQoMywgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oZ3Jv
dXAtPm9yaWdpbigpKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CiAKICAgICBpZiAoIWV4ZWN1dGVT
dGF0ZW1lbnQoc3RhdGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgdW5zaWdu
ZWQgZ3JvdXBTdG9yYWdlSUQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9kYXRhYmFzZS5sYXN0
SW5zZXJ0Um93SUQoKSk7CiAKLSAgICBpZiAoIWVuc3VyZU9yaWdpblJlY29yZChncm91cC0+b3Jp
Z2luKCkpKQorICAgIGlmICghZW5zdXJlT3JpZ2luUmVjb3JkKCZncm91cC0+b3JpZ2luKCkpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBncm91cC0+c2V0U3RvcmFnZUlEKGdyb3VwU3Rv
cmFnZUlEKTsKQEAgLTk3MSw3ICs5NzEsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdl
OjpjaGVja09yaWdpblF1b3RhKEFwcGxpY2F0aW9uQ2FjaGVHcm91cCogZ3JvdXAsIEFwcAogewog
ICAgIC8vIENoZWNrIGlmIHRoZSBvbGRDYWNoZSB3aXRoIHRoZSBuZXdDYWNoZSB3b3VsZCByZWFj
aCB0aGUgcGVyLW9yaWdpbiBxdW90YS4KICAgICBpbnQ2NF90IHJlbWFpbmluZ1NwYWNlSW5Pcmln
aW47Ci0gICAgY29uc3QgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiA9IGdyb3VwLT5vcmlnaW4oKTsK
KyAgICBhdXRvJiBvcmlnaW4gPSBncm91cC0+b3JpZ2luKCk7CiAgICAgaWYgKGNhbGN1bGF0ZVJl
bWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShvcmlnaW4sIG9sZENhY2hlLCByZW1h
aW5pbmdTcGFjZUluT3JpZ2luKSkgewogICAgICAgICBpZiAocmVtYWluaW5nU3BhY2VJbk9yaWdp
biA8IG5ld0NhY2hlLT5lc3RpbWF0ZWRTaXplSW5TdG9yYWdlKCkpIHsKICAgICAgICAgICAgIGlu
dDY0X3QgcXVvdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oCmluZGV4IDlmYTI5MmVlNTBmYWVlODljMzVjODYx
YThmOTlmYTE2ZjkwNTQ3NmQuLjlkMTdhMWJjZDA2YTZhYzExMWEwYWNhYTYwNzY0ZjZiMTU0MDUw
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZS5oCkBAIC02Myw4ICs2Myw4IEBAIHB1YmxpYzoKICAgICBpbnQ2
NF90IGRlZmF1bHRPcmlnaW5RdW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmYXVsdE9yaWdpblF1
b3RhOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXREZWZhdWx0T3JpZ2luUXVvdGEoaW50
NjRfdCBxdW90YSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjYWxjdWxhdGVVc2FnZUZvck9y
aWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiosIGludDY0X3QmIHVzYWdlKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
KiwgaW50NjRfdCYgcXVvdGEpOwotICAgIGJvb2wgY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9y
aWdpbkV4Y2x1ZGluZ0NhY2hlKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiwgQXBwbGljYXRpb25DYWNo
ZSosIGludDY0X3QmIHJlbWFpbmluZ1NpemUpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2Fs
Y3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90JiBxdW90
YSk7CisgICAgYm9vbCBjYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2Fj
aGUoY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBBcHBsaWNhdGlvbkNhY2hlKiwgaW50NjRfdCYgcmVt
YWluaW5nU2l6ZSk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzdG9yZVVwZGF0ZWRRdW90YUZv
ck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiosIGludDY0X3QgcXVvdGEpOwogICAgIGJvb2wg
Y2hlY2tPcmlnaW5RdW90YShBcHBsaWNhdGlvbkNhY2hlR3JvdXAqLCBBcHBsaWNhdGlvbkNhY2hl
KiBvbGRDYWNoZSwgQXBwbGljYXRpb25DYWNoZSogbmV3Q2FjaGUsIGludDY0X3QmIHRvdGFsU3Bh
Y2VOZWVkZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9t
aHRtbC9NSFRNTEFyY2hpdmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0
bWwvTUhUTUxBcmNoaXZlLmNwcAppbmRleCBhOTIxYjA1ZTg0NmEwNWE1YWZjZTYzMDNhYTE4Zjhi
ZjMwNzA5ZGI0Li4yY2E2N2UyN2JlODg0MmNjN2EyMTdkYWE5MjU1ZTgxOGVmOWExOTJmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2
ZS5jcHAKQEAgLTEzMyw4ICsxMzMsOCBAQCBSZWZQdHI8TUhUTUxBcmNoaXZlPiBNSFRNTEFyY2hp
dmU6OmNyZWF0ZShjb25zdCBVUkwmIHVybCwgU2hhcmVkQnVmZmVyJiBkYXRhKQogUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gTUhUTUxBcmNoaXZlOjpnZW5lcmF0ZU1IVE1MRGF0YShQYWdlKiBwYWdlKQog
ewogICAgIFZlY3RvcjxQYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U+IHJlc291cmNlczsKLSAgICBQ
YWdlU2VyaWFsaXplciBwYWdlU2VyaWFsaXplcigmcmVzb3VyY2VzKTsKLSAgICBwYWdlU2VyaWFs
aXplci5zZXJpYWxpemUocGFnZSk7CisgICAgUGFnZVNlcmlhbGl6ZXIgcGFnZVNlcmlhbGl6ZXIo
cmVzb3VyY2VzKTsKKyAgICBwYWdlU2VyaWFsaXplci5zZXJpYWxpemUoKnBhZ2UpOwogCiAgICAg
U3RyaW5nIGJvdW5kYXJ5ID0gZ2VuZXJhdGVSYW5kb21Cb3VuZGFyeSgpOwogICAgIFN0cmluZyBl
bmRPZlJlc291cmNlQm91bmRhcnkgPSBtYWtlU3RyaW5nKCItLSIsIGJvdW5kYXJ5LCAiXHJcbiIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCmluZGV4IGUxNTE3NmQzMzE5
ZDk0Y2UwYjljOTFmYmJkOGViNzM3ODE5NGM4NjQuLmU5NzEzOTYxY2UzYjc0ODg0YTFiM2JlM2U1
MGE3MzkwNjIzZjg5ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAK
QEAgLTE4Miw3ICsxODIsNyBAQCBib29sIE1hdGhNTEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2Fi
bGUoS2V5Ym9hcmRFdmVudCYgZXZlbnQpIGNvbnN0CiAgICAgICAgIHJldHVybiBTdHlsZWRFbGVt
ZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KTsKIAogICAgIGlmIChpc0xpbmsoKSkKLSAg
ICAgICAgcmV0dXJuIGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlu
a3MoJmV2ZW50KTsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5k
bGVyKCkudGFic1RvTGlua3MoZXZlbnQpOwogCiAgICAgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6Omlz
S2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDc0
ZGRlMWEzNGUxNWU5MDk3MWFkMDg2ZTI3MGI5YWE1Njk4ODIxMGIuLmUzNjNmNDNhZGM2ZjViY2U0
OTA4NDQwOTc1Mzc0NmFhODYxZTg0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTQ4LDcg
KzQ4LDYgQEAKICNpbmNsdWRlICJTdG9yYWdlTmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiV2luZG93
RmVhdHVyZXMuaCIKICNpbmNsdWRlIDxydW50aW1lL1ZNLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvVmVj
dG9yLmg+CiAKQEAgLTYzLDEwICs2Miw2IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBD
aHJvbWU6OkNocm9tZShQYWdlJiBwYWdlLCBDaHJvbWVDbGllbnQmIGNsaWVudCkKICAgICA6IG1f
cGFnZShwYWdlKQogICAgICwgbV9jbGllbnQoY2xpZW50KQotICAgICwgbV9kaXNwbGF5SUQoMCkK
LSNpZiBQTEFURk9STShJT1MpCi0gICAgLCBtX2lzRGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFu
Z2VTdXBwcmVzc2VkKGZhbHNlKQotI2VuZGlmCiB7CiB9CiAKQEAgLTExNCw2ICsxMDksNyBAQCBJ
bnRSZWN0IENocm9tZTo6cm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JiByZWN0KSBjb25z
dAogfQogICAgIAogI2lmIFBMQVRGT1JNKElPUykKKwogSW50UG9pbnQgQ2hyb21lOjphY2Nlc3Np
YmlsaXR5U2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAg
ICAgcmV0dXJuIG1fY2xpZW50LmFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KHBvaW50KTsK
QEAgLTEyMyw2ICsxMTksNyBAQCBJbnRSZWN0IENocm9tZTo6cm9vdFZpZXdUb0FjY2Vzc2liaWxp
dHlTY3JlZW4oY29uc3QgSW50UmVjdCYgcmVjdCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jbGll
bnQucm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4ocmVjdCk7CiB9CisKICNlbmRpZgogCiBQ
bGF0Zm9ybVBhZ2VDbGllbnQgQ2hyb21lOjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdApAQCAt
MTMwLDcgKzEyNyw3IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBDaHJvbWU6OnBsYXRmb3JtUGFnZUNs
aWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2xpZW50LnBsYXRmb3JtUGFnZUNsaWVudCgpOwog
fQogCi12b2lkIENocm9tZTo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0
IEludFNpemUmIHNpemUpIGNvbnN0Cit2b2lkIENocm9tZTo6Y29udGVudHNTaXplQ2hhbmdlZChG
cmFtZSYgZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CiB7CiAgICAgbV9jbGllbnQu
Y29udGVudHNTaXplQ2hhbmdlZChmcmFtZSwgc2l6ZSk7CiB9CkBAIC0xOTAsMTUgKzE4NywxMyBA
QCB2b2lkIENocm9tZTo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSogZnJhbWUpIGNvbnN0CiAg
ICAgbV9jbGllbnQuZm9jdXNlZEZyYW1lQ2hhbmdlZChmcmFtZSk7CiB9CiAKLVBhZ2UqIENocm9t
ZTo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiBhY3Rpb24pIGNvbnN0CitQYWdlKiBDaHJvbWU6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJh
bWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVz
JiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uKSBjb25zdAogewogICAg
IFBhZ2UqIG5ld1BhZ2UgPSBtX2NsaWVudC5jcmVhdGVXaW5kb3coZnJhbWUsIHJlcXVlc3QsIGZl
YXR1cmVzLCBhY3Rpb24pOwogICAgIGlmICghbmV3UGFnZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0K
LSAgICBpZiAoU3RvcmFnZU5hbWVzcGFjZSogb2xkU2Vzc2lvblN0b3JhZ2UgPSBtX3BhZ2Uuc2Vz
c2lvblN0b3JhZ2UoZmFsc2UpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoYXV0
byogb2xkU2Vzc2lvblN0b3JhZ2UgPSBtX3BhZ2Uuc2Vzc2lvblN0b3JhZ2UoZmFsc2UpKQogICAg
ICAgICBuZXdQYWdlLT5zZXRTZXNzaW9uU3RvcmFnZShvbGRTZXNzaW9uU3RvcmFnZS0+Y29weShu
ZXdQYWdlKSk7Ci0KICAgICByZXR1cm4gbmV3UGFnZTsKIH0KIApAQCAtMjc2LDcgKzI3MSw3IEBA
IGJvb2wgQ2hyb21lOjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKQogICAgIHJldHVy
biBtX2NsaWVudC5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKTsKIH0KIAotYm9vbCBD
aHJvbWU6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IEZyYW1lKiBmcmFtZSkKK2Jvb2wgQ2hyb21lOjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSYgZnJhbWUpCiB7CiAgICAgLy8gRGVmZXIgbG9h
ZHMgaW4gY2FzZSB0aGUgY2xpZW50IG1ldGhvZCBydW5zIGEgbmV3IGV2ZW50IGxvb3AgdGhhdCB3
b3VsZAogICAgIC8vIG90aGVyd2lzZSBjYXVzZSB0aGUgbG9hZCB0byBjb250aW51ZSB3aGlsZSB3
ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGV4ZWN1dGluZyBKYXZhU2NyaXB0LgpAQCAtMjkwLDUzICsy
ODUsNDcgQEAgdm9pZCBDaHJvbWU6OmNsb3NlV2luZG93U29vbigpCiAgICAgbV9jbGllbnQuY2xv
c2VXaW5kb3dTb29uKCk7CiB9CiAKLXZvaWQgQ2hyb21lOjpydW5KYXZhU2NyaXB0QWxlcnQoRnJh
bWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIENocm9tZTo6cnVuSmF2YVNj
cmlwdEFsZXJ0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIC8v
IERlZmVyIGxvYWRzIGluIGNhc2UgdGhlIGNsaWVudCBtZXRob2QgcnVucyBhIG5ldyBldmVudCBs
b29wIHRoYXQgd291bGQKICAgICAvLyBvdGhlcndpc2UgY2F1c2UgdGhlIGxvYWQgdG8gY29udGlu
dWUgd2hpbGUgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBleGVjdXRpbmcgSmF2YVNjcmlwdC4KICAg
ICBQYWdlR3JvdXBMb2FkRGVmZXJyZXIgZGVmZXJyZXIobV9wYWdlLCB0cnVlKTsKIAotICAgIEFT
U0VSVChmcmFtZSk7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7Ci0gICAgU3Ry
aW5nIGRpc3BsYXlNZXNzYWdlID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rp
bmcobWVzc2FnZSk7CisgICAgU3RyaW5nIGRpc3BsYXlNZXNzYWdlID0gZnJhbWUuZGlzcGxheVN0
cmluZ01vZGlmaWVkQnlFbmNvZGluZyhtZXNzYWdlKTsKIAogICAgIG1fY2xpZW50LnJ1bkphdmFT
Y3JpcHRBbGVydChmcmFtZSwgZGlzcGxheU1lc3NhZ2UpOwogfQogCi1ib29sIENocm9tZTo6cnVu
SmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiti
b29sIENocm9tZTo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpCiB7CiAgICAgLy8gRGVmZXIgbG9hZHMgaW4gY2FzZSB0aGUgY2xpZW50IG1l
dGhvZCBydW5zIGEgbmV3IGV2ZW50IGxvb3AgdGhhdCB3b3VsZAogICAgIC8vIG90aGVyd2lzZSBj
YXVzZSB0aGUgbG9hZCB0byBjb250aW51ZSB3aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGV4
ZWN1dGluZyBKYXZhU2NyaXB0LgogICAgIFBhZ2VHcm91cExvYWREZWZlcnJlciBkZWZlcnJlciht
X3BhZ2UsIHRydWUpOwogCi0gICAgQVNTRVJUKGZyYW1lKTsKICAgICBub3RpZnlQb3B1cE9wZW5p
bmdPYnNlcnZlcnMoKTsKLSAgICBTdHJpbmcgZGlzcGxheU1lc3NhZ2UgPSBmcmFtZS0+ZGlzcGxh
eVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhtZXNzYWdlKTsKLQotICAgIHJldHVybiBtX2NsaWVu
dC5ydW5KYXZhU2NyaXB0Q29uZmlybShmcmFtZSwgZGlzcGxheU1lc3NhZ2UpOworICAgIHJldHVy
biBtX2NsaWVudC5ydW5KYXZhU2NyaXB0Q29uZmlybShmcmFtZSwgZnJhbWUuZGlzcGxheVN0cmlu
Z01vZGlmaWVkQnlFbmNvZGluZyhtZXNzYWdlKSk7CiB9CiAKLWJvb2wgQ2hyb21lOjpydW5KYXZh
U2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0
cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKK2Jvb2wgQ2hyb21lOjpydW5KYXZh
U2NyaXB0UHJvbXB0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0
cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKIHsKICAgICAvLyBEZWZlciBsb2Fk
cyBpbiBjYXNlIHRoZSBjbGllbnQgbWV0aG9kIHJ1bnMgYSBuZXcgZXZlbnQgbG9vcCB0aGF0IHdv
dWxkCiAgICAgLy8gb3RoZXJ3aXNlIGNhdXNlIHRoZSBsb2FkIHRvIGNvbnRpbnVlIHdoaWxlIHdl
J3JlIGluIHRoZSBtaWRkbGUgb2YgZXhlY3V0aW5nIEphdmFTY3JpcHQuCiAgICAgUGFnZUdyb3Vw
TG9hZERlZmVycmVyIGRlZmVycmVyKG1fcGFnZSwgdHJ1ZSk7CiAKLSAgICBBU1NFUlQoZnJhbWUp
OwogICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpOwotICAgIFN0cmluZyBkaXNwbGF5
UHJvbXB0ID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcocHJvbXB0KTsK
KyAgICBTdHJpbmcgZGlzcGxheVByb21wdCA9IGZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5
RW5jb2RpbmcocHJvbXB0KTsKIAotICAgIGJvb2wgb2sgPSBtX2NsaWVudC5ydW5KYXZhU2NyaXB0
UHJvbXB0KGZyYW1lLCBkaXNwbGF5UHJvbXB0LCBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVk
QnlFbmNvZGluZyhkZWZhdWx0VmFsdWUpLCByZXN1bHQpOworICAgIGJvb2wgb2sgPSBtX2NsaWVu
dC5ydW5KYXZhU2NyaXB0UHJvbXB0KGZyYW1lLCBkaXNwbGF5UHJvbXB0LCBmcmFtZS5kaXNwbGF5
U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKGRlZmF1bHRWYWx1ZSksIHJlc3VsdCk7CiAgICAgaWYg
KG9rKQotICAgICAgICByZXN1bHQgPSBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNv
ZGluZyhyZXN1bHQpOworICAgICAgICByZXN1bHQgPSBmcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZp
ZWRCeUVuY29kaW5nKHJlc3VsdCk7CiAKICAgICByZXR1cm4gb2s7CiB9CiAKLXZvaWQgQ2hyb21l
OjpzZXRTdGF0dXNiYXJUZXh0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBzdGF0dXMpCit2
b2lkIENocm9tZTo6c2V0U3RhdHVzYmFyVGV4dChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYg
c3RhdHVzKQogewotICAgIEFTU0VSVChmcmFtZSk7Ci0gICAgbV9jbGllbnQuc2V0U3RhdHVzYmFy
VGV4dChmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhzdGF0dXMpKTsKKyAg
ICBtX2NsaWVudC5zZXRTdGF0dXNiYXJUZXh0KGZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5
RW5jb2Rpbmcoc3RhdHVzKSk7CiB9CiAKIHZvaWQgQ2hyb21lOjptb3VzZURpZE1vdmVPdmVyRWxl
bWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3Mp
CkBAIC00MDcsOSArMzk2LDkgQEAgdm9pZCBDaHJvbWU6OnNldFRvb2xUaXAoY29uc3QgSGl0VGVz
dFJlc3VsdCYgcmVzdWx0KQogICAgIG1fY2xpZW50LnNldFRvb2xUaXAodG9vbFRpcCwgdG9vbFRp
cERpcmVjdGlvbik7CiB9CiAKLXZvaWQgQ2hyb21lOjpwcmludChGcmFtZSogZnJhbWUpCit2b2lk
IENocm9tZTo6cHJpbnQoRnJhbWUmIGZyYW1lKQogewotICAgIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBoYXZlIFBhZ2VHcm91cExvYWREZWZlcnJlciwgbGlrZSBydW5Nb2RhbCgpIG9yIHJ1bkphdmFT
Y3JpcHRBbGVydCgpLCBiZWNhc3VlIGl0J3Mgbm8gZGlmZmVyZW50IGZyb20gdGhvc2UuCisgICAg
Ly8gRklYTUU6IFRoaXMgc2hvdWxkIGhhdmUgUGFnZUdyb3VwTG9hZERlZmVycmVyLCBsaWtlIHJ1
bk1vZGFsKCkgb3IgcnVuSmF2YVNjcmlwdEFsZXJ0KCksIGJlY2F1c2UgaXQncyBubyBkaWZmZXJl
bnQgZnJvbSB0aG9zZS4KICAgICBtX2NsaWVudC5wcmludChmcmFtZSk7CiB9CiAKQEAgLTQyNCwx
MSArNDEzLDEzIEBAIHZvaWQgQ2hyb21lOjpkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKQogfQog
CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi1zdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9v
c2VyPiBDaHJvbWU6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqIGNsaWVu
dCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKKworc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hv
b3Nlcj4gQ2hyb21lOjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiBjbGll
bnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCiB7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5n
T2JzZXJ2ZXJzKCk7CiAgICAgcmV0dXJuIG1fY2xpZW50LmNyZWF0ZUNvbG9yQ2hvb3NlcihjbGll
bnQsIGluaXRpYWxDb2xvcik7CiB9CisKICNlbmRpZgogCiB2b2lkIENocm9tZTo6cnVuT3BlblBh
bmVsKEZyYW1lJiBmcmFtZSwgRmlsZUNob29zZXImIGZpbGVDaG9vc2VyKQpAQCAtNTM4LDEzICs1
MjksMTMgQEAgYm9vbCBDaHJvbWU6Omhhc09wZW5lZFBvcHVwKCkgY29uc3QKICAgICByZXR1cm4g
bV9jbGllbnQuaGFzT3BlbmVkUG9wdXAoKTsKIH0KIAotUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21l
OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8
UG9wdXBNZW51PiBDaHJvbWU6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmIGNsaWVu
dCkgY29uc3QKIHsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKICAgICByZXR1
cm4gbV9jbGllbnQuY3JlYXRlUG9wdXBNZW51KGNsaWVudCk7CiB9CiAKLVJlZlB0cjxTZWFyY2hQ
b3B1cE1lbnU+IENocm9tZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCog
Y2xpZW50KSBjb25zdAorUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7CiAgICAgbm90aWZ5
UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7CiAgICAgcmV0dXJuIG1fY2xpZW50LmNyZWF0ZVNlYXJj
aFBvcHVwTWVudShjbGllbnQpOwpAQCAtNTU1LDMwICs1NDYsMjcgQEAgYm9vbCBDaHJvbWU6OnJl
cXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKQogICAgIHJldHVybiBtX2NsaWVudC5y
ZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCk7CiB9CiAKLSNpZiBQTEFURk9STShJ
T1MpCi0vLyBGSVhNRTogTWFrZSBhcmd1bWVudCwgZnJhbWUsIGEgcmVmZXJlbmNlLgotdm9pZCBD
aHJvbWU6OmRpZFJlY2VpdmVEb2NUeXBlKEZyYW1lKiBmcmFtZSkKK3ZvaWQgQ2hyb21lOjpkaWRS
ZWNlaXZlRG9jVHlwZShGcmFtZSYgZnJhbWUpCiB7Ci0gICAgQVNTRVJUKGZyYW1lKTsKLSAgICBp
ZiAoIWZyYW1lLT5pc01haW5GcmFtZSgpKQorI2lmICFQTEFURk9STShJT1MpCisgICAgVU5VU0VE
X1BBUkFNKGZyYW1lKTsKKyNlbHNlCisgICAgaWYgKCFmcmFtZS5pc01haW5GcmFtZSgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBib29sIGhhc01vYmlsZURvY1R5cGUgPSBmYWxzZTsKLSAgICBp
ZiAoRG9jdW1lbnRUeXBlKiBkb2N1bWVudFR5cGUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9jdHlw
ZSgpKQotICAgICAgICBoYXNNb2JpbGVEb2NUeXBlID0gZG9jdW1lbnRUeXBlLT5wdWJsaWNJZCgp
LmNvbnRhaW5zKCJ4aHRtbCBtb2JpbGUiLCBmYWxzZSk7Ci0gICAgbV9jbGllbnQuZGlkUmVjZWl2
ZU1vYmlsZURvY1R5cGUoaGFzTW9iaWxlRG9jVHlwZSk7Ci19CisgICAgYXV0byogZG9jdHlwZSA9
IGZyYW1lLmRvY3VtZW50KCktPmRvY3R5cGUoKTsKKyAgICBtX2NsaWVudC5kaWRSZWNlaXZlTW9i
aWxlRG9jVHlwZShkb2N0eXBlICYmIGRvY3R5cGUtPnB1YmxpY0lkKCkuY29udGFpbnNJZ25vcmlu
Z0FTQ0lJQ2FzZSgieGh0bWwgbW9iaWxlIikpOwogI2VuZGlmCit9CiAKLXZvaWQgQ2hyb21lOjpy
ZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyKiBvYnNlcnZl
cikKK3ZvaWQgQ2hyb21lOjpyZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3Blbmlu
Z09ic2VydmVyJiBvYnNlcnZlcikKIHsKLSAgICBBU1NFUlQob2JzZXJ2ZXIpOwotICAgIG1fcG9w
dXBPcGVuaW5nT2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZlcik7CisgICAgbV9wb3B1cE9wZW5pbmdP
YnNlcnZlcnMuYXBwZW5kKCZvYnNlcnZlcik7CiB9CiAKLXZvaWQgQ2hyb21lOjp1bnJlZ2lzdGVy
UG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXIqIG9ic2VydmVyKQordm9p
ZCBDaHJvbWU6OnVucmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNl
cnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgYm9vbCByZW1vdmVkID0gbV9wb3B1cE9wZW5pbmdPYnNl
cnZlcnMucmVtb3ZlRmlyc3Qob2JzZXJ2ZXIpOworICAgIGJvb2wgcmVtb3ZlZCA9IG1fcG9wdXBP
cGVuaW5nT2JzZXJ2ZXJzLnJlbW92ZUZpcnN0KCZvYnNlcnZlcik7CiAgICAgQVNTRVJUX1VOVVNF
RChyZW1vdmVkLCByZW1vdmVkKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggNmQyNWFjODkx
NjAwZjIxODRhNjU0ZGFkMzIyNmQ0NmM4MTkzMmE2Ni4uYjNjNDY0N2MxYWU5NTAwNTIwNzgzNDll
MDc2YTI5YjBlNmFkYzZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC05NSw3ICs5NSw3IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25z
dDsKIAotICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNvbnN0IEludFNpemUm
KSBjb25zdDsKKyAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUmLCBjb25zdCBJbnRT
aXplJikgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFdpbmRvd1JlY3QoY29u
c3QgRmxvYXRSZWN0JikgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgRmxvYXRSZWN0IHdpbmRv
d1JlY3QoKSBjb25zdDsKQEAgLTExMSw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb2N1
c2VkRWxlbWVudENoYW5nZWQoRWxlbWVudCopIGNvbnN0OwogICAgIHZvaWQgZm9jdXNlZEZyYW1l
Q2hhbmdlZChGcmFtZSopIGNvbnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgUGFnZSogY3JlYXRl
V2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1
cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JU
IFBhZ2UqIGNyZWF0ZVdpbmRvdyhGcmFtZSYsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25z
dCBXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBjb25zdDsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNob3coKSBjb25zdDsKIAogICAgIGJvb2wgY2FuUnVuTW9kYWwo
KSBjb25zdDsKQEAgLTEzMiwyNiArMTMyLDI2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlc2l6
YWJsZShib29sKSBjb25zdDsKIAogICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKCk7Ci0gICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBGcmFtZSopOworICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmKTsKIAogICAgIHZvaWQgY2xvc2VXaW5kb3dT
b29uKCk7CiAKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmlu
ZyYpOwotICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcm
KTsKLSAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCk7Ci0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KEZyYW1lKiwgY29uc3QgU3RyaW5n
Jik7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmLCBjb25zdCBTdHJpbmcmKTsK
KyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiwgY29uc3QgU3RyaW5nJik7Cisg
ICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChGcmFtZSYsIGNvbnN0IFN0cmluZyYpOwog
CiAgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0Jiwg
dW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CiAKICAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgSGl0
VGVzdFJlc3VsdCYpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcmludChGcmFtZSopOwor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJpbnQoRnJhbWUmKTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZW5hYmxlU3VkZGVuVGVybWluYXRpb24oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpOwogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVf
Q09MT1IpCi0gICAgc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9v
c2VyKENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNo
b29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKTsKICNlbmRpZgogCiAgICAg
dm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYpOwpAQCAtMTY4LDI4ICsxNjgs
MjggQEAgcHVibGljOgogICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKTsKICAgICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJl
Y3Rpb24oKTsKICAgICBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3Q7Ci0gICAgUmVmUHRyPFBv
cHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwotICAgIFJl
ZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqKSBjb25zdDsKKyAgICBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50JikgY29uc3Q7CisgICAgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2Vh
cmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oSU9T
KQogICAgIC8vIEZJWE1FOiBDYW4gd2UgY29tZSB1cCB3aXRoIGEgYmV0dGVyIG5hbWUgZm9yIHRo
aXMgc2V0dGVyPwogICAgIHZvaWQgc2V0RGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBw
cmVzc2VkKGJvb2wgZGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkKSB7IG1f
aXNEaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZVN1cHByZXNzZWQgPSBkaXNwYXRjaFZpZXdw
b3J0RGF0YURpZENoYW5nZVN1cHByZXNzZWQ7IH0KLQotICAgIHZvaWQgZGlkUmVjZWl2ZURvY1R5
cGUoRnJhbWUqKTsKICNlbmRpZgogCi0gICAgdm9pZCByZWdpc3RlclBvcHVwT3BlbmluZ09ic2Vy
dmVyKFBvcHVwT3BlbmluZ09ic2VydmVyKik7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyUG9wdXBPcGVu
aW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVE
b2NUeXBlKEZyYW1lJik7CisKKyAgICB2b2lkIHJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIo
UG9wdXBPcGVuaW5nT2JzZXJ2ZXImKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJQb3B1cE9wZW5pbmdP
YnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgbm90
aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCkgY29uc3Q7CiAKICAgICBQYWdlJiBtX3BhZ2U7CiAg
ICAgQ2hyb21lQ2xpZW50JiBtX2NsaWVudDsKLSAgICBQbGF0Zm9ybURpc3BsYXlJRCBtX2Rpc3Bs
YXlJRDsKKyAgICBQbGF0Zm9ybURpc3BsYXlJRCBtX2Rpc3BsYXlJRCB7IDAgfTsKICAgICBWZWN0
b3I8UG9wdXBPcGVuaW5nT2JzZXJ2ZXIqPiBtX3BvcHVwT3BlbmluZ09ic2VydmVyczsKICNpZiBQ
TEFURk9STShJT1MpCi0gICAgYm9vbCBtX2lzRGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VT
dXBwcmVzc2VkOworICAgIGJvb2wgbV9pc0Rpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlU3Vw
cHJlc3NlZCB7IGZhbHNlIH07CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCmluZGV4IDJjODliNmNiYTUwNjgwYjk3MmRjNTVmYzRiMjRjNDg5MGZhZWI4MjQuLjhhMTYz
OTFmYmI4NmJjY2I3NGZmZTVjNDFmZjVhNTg2NmNlN2VhNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaApAQCAtMTIzLDcgKzEyMyw3IEBAIHB1YmxpYzoKICAgICAvLyBjcmVhdGVkIFBh
Z2UgaGFzIGl0cyBzaG93IG1ldGhvZCBjYWxsZWQuCiAgICAgLy8gVGhlIEZyYW1lTG9hZFJlcXVl
c3QgcGFyYW1ldGVyIGlzIG9ubHkgZm9yIENocm9tZUNsaWVudCB0byBjaGVjayBpZiB0aGUKICAg
ICAvLyByZXF1ZXN0IGNvdWxkIGJlIGZ1bGZpbGxlZC4gVGhlIENocm9tZUNsaWVudCBzaG91bGQg
bm90IGxvYWQgdGhlIHJlcXVlc3QuCi0gICAgdmlydHVhbCBQYWdlKiBjcmVhdGVXaW5kb3coRnJh
bWUqLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJikgPSAwOworICAgIHZpcnR1YWwgUGFnZSogY3JlYXRlV2luZG93
KEZyYW1lJiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwg
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvdygpID0g
MDsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5Nb2RhbCgpID0gMDsKQEAgLTE0Niw2MyArMTQ2
LDY3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNz
YWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQg
bGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlE
KSA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KCkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmKSA9IDA7
CiAKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgPSAwOwogCi0gICAgdmlydHVh
bCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmluZyYpID0gMDsKLSAg
ICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcm
KSA9IDA7Ci0gICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJl
c3VsdCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmLCBj
b25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRDb25maXJt
KEZyYW1lJiwgY29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2Ny
aXB0UHJvbXB0KEZyYW1lJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
ZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3Rh
dHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCBLZXlib2FyZFVJTW9k
ZSBrZXlib2FyZFVJTW9kZSgpID0gMDsKIAotICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2lu
ZG93LgogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0ltbWVkaWF0ZUludmFsaWRhdGlvbigpIHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25z
dCBJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRS
b290Vmlldyhjb25zdCBJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
Q29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3Qm
KSA9IDA7CisKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgdmlydHVhbCB2b2lk
IGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJbnRQb2ludCYpID0gMDsKICNlbmRpZgor
CiAgICAgdmlydHVhbCBJbnRQb2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50Jikg
Y29uc3QgPSAwOwogICAgIHZpcnR1YWwgSW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IElu
dFJlY3QmKSBjb25zdCA9IDA7CisKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBJbnRQ
b2ludCBhY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYpIGNvbnN0
ID0gMDsKICAgICB2aXJ0dWFsIEludFJlY3Qgcm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4o
Y29uc3QgSW50UmVjdCYpIGNvbnN0ID0gMDsKICNlbmRpZiAgICAKKwogICAgIHZpcnR1YWwgUGxh
dGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCA9IDA7CisKICNpZiBFTkFC
TEUoQ1VSU09SX1NVUFBPUlQpCiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJz
b3ImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zl
cyhib29sKSA9IDA7CiAjZW5kaWYKKwogI2lmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVf
VElNRVIpCiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgPSAwOwogI2VuZGlm
Ci0gICAgLy8gRW5kIG1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgogCi0gICAgdmlydHVhbCBG
bG9hdFNpemUgc2NyZWVuU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Q2hyb21lQ2xp
ZW50Kj4odGhpcyktPndpbmRvd1JlY3QoKS5zaXplKCk7IH0KLSAgICB2aXJ0dWFsIEZsb2F0U2l6
ZSBhdmFpbGFibGVTY3JlZW5TaXplKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxDaHJvbWVD
bGllbnQqPih0aGlzKS0+d2luZG93UmVjdCgpLnNpemUoKTsgfQorICAgIHZpcnR1YWwgRmxvYXRT
aXplIHNjcmVlblNpemUoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PENocm9tZUNsaWVudCY+
KCp0aGlzKS53aW5kb3dSZWN0KCkuc2l6ZSgpOyB9CisgICAgdmlydHVhbCBGbG9hdFNpemUgYXZh
aWxhYmxlU2NyZWVuU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Q2hyb21lQ2xpZW50
Jj4oKnRoaXMpLndpbmRvd1JlY3QoKS5zaXplKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYp
IGNvbnN0IHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUq
LCBjb25zdCBJbnRTaXplJikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1Np
emVDaGFuZ2VkKEZyYW1lJiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCB7IH07IC8vIEN1
cnJlbnRseSBvbmx5IE1hYyBoYXMgYSBub24gZW1wdHkgaW1wbGVtZW50YXRpb24uCiAKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVy
RW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNr
ZWQoRWxlbWVudCosIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJl
YXNvbikgY29uc3QgeyB9CisgICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9u
Q2xpY2tlZChFbGVtZW50JiwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmls
aXR5UmVhc29uKSBjb25zdCB7IH0KICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVs
ZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpID0gMDsK
IAogICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rp
b24pID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSopID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcHJpbnQoRnJhbWUmKSA9IDA7CiAKICAgICB2aXJ0dWFsIENvbG9yIHVuZGVybGF5
Q29sb3IoKSBjb25zdCB7IHJldHVybiBDb2xvcigpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFn
ZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yRGlkQ2hhbmdlKENvbG9yKSBjb25zdCB7IH0KIAotICAg
IHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcm
IGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGV4
Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSYsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBE
YXRhYmFzZURldGFpbHMpID0gMDsKIAogICAgIC8vIENhbGxiYWNrIGludm9rZWQgd2hlbiB0aGUg
YXBwbGljYXRpb24gY2FjaGUgZmFpbHMgdG8gc2F2ZSBhIGNhY2hlIG9iamVjdAogICAgIC8vIGJl
Y2F1c2Ugc3RvcmluZyBpdCB3b3VsZCBncm93IHRoZSBkYXRhYmFzZSBmaWxlIHBhc3QgaXRzIGRl
ZmluZWQgbWF4aW11bQpAQCAtMjE5LDcgKzIyMyw3IEBAIHB1YmxpYzoKICAgICAvLyBzdG9yYWdl
LCBpbiBieXRlcywgbmVlZGVkIHRvIHN0b3JlIHRoZSBuZXcgY2FjaGUgYWxvbmcgd2l0aCBhbGwg
b2YgdGhlCiAgICAgLy8gb3RoZXIgZXhpc3RpbmcgY2FjaGVzIGZvciB0aGUgb3JpZ2luIHRoYXQg
d291bGQgbm90IGJlIHJlcGxhY2VkIGJ5CiAgICAgLy8gdGhlIG5ldyBjYWNoZS4KLSAgICB2aXJ0
dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdp
biosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWFj
aGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCB0
b3RhbFNwYWNlTmVlZGVkKSA9IDA7CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAg
ICAgdmlydHVhbCB2b2lkIGFubm90YXRlZFJlZ2lvbnNDaGFuZ2VkKCk7CkBAIC0yMzYsMTAgKzI0
MCwxMCBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVl
ZHNTY3JvbGxOb3RpZmljYXRpb25zKEZyYW1lKiwgYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoRnJhbWUqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNs
ZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhGcmFtZSopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
bm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKEZyYW1lKikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoRnJhbWUmLCBib29sKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShGcmFtZSYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKEZyYW1lJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJh
bWUoRnJhbWUmKSA9IDA7CiAKICAgICBlbnVtIExheW91dFR5cGUgeyBOb3JtYWxMYXlvdXQsIFNj
cm9sbCB9OwogICAgIHZpcnR1YWwgdm9pZCBkaWRMYXlvdXQoTGF5b3V0VHlwZSA9IE5vcm1hbExh
eW91dCkgPSAwOwpAQCAtMjcwLDE2ICsyNzQsMTYgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBF
TkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDb2xv
ckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBD
b2xvciYpID0gMDsKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNy
ZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYpID0gMDsK
ICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9v
c2VyJikgPSAwOwogICAgIC8vIEFzeW5jaHJvbm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBm
b3Igc3BlY2lmaWVkIGZpbGVuYW1lcy4KICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxl
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJikgPSAwOwogICAgICAgICAK
LSAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IE5vZGUqKSB7IH07Ci0gICAg
dmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUqKSB7IH07Ci0gICAgdmlydHVh
bCB2b2lkIGVsZW1lbnREaWRSZWZvY3VzKGNvbnN0IE5vZGUqKSB7IH07CisgICAgdmlydHVhbCB2
b2lkIGVsZW1lbnREaWRGb2N1cyhFbGVtZW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGVsZW1l
bnREaWRCbHVyKEVsZW1lbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZFJlZm9j
dXMoRWxlbWVudCYpIHsgfQogICAgIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQYWludEVudGly
ZUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFz
U3RhYmxlUGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMjkxLDkg
KzI5NSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0
b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3Qg
eyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKLSAgICAvLyBQYXNzIDAgYXMgdGhlIEdyYXBo
aWNzTGF5ZXIgdG8gZGV0YXRjaCB0aGUgcm9vdCBsYXllci4KLSAgICB2aXJ0dWFsIHZvaWQgYXR0
YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGlj
c0xheWVyKikgPSAwOworICAgIC8vIFBhc3MgbnVsbHB0ciBhcyB0aGUgR3JhcGhpY3NMYXllciB0
byBkZXRhdGNoIHRoZSByb290IGxheWVyLgorICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3Jh
cGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSA9
IDA7CiAgICAgLy8gU2V0cyBhIGZsYWcgdG8gc3BlY2lmeSB0aGF0IHRoZSBuZXh0IHRpbWUgY29u
dGVudCBpcyBkcmF3biB0byB0aGUgd2luZG93LAogICAgIC8vIHRoZSBjaGFuZ2VzIGFwcGVhciBv
biB0aGUgc2NyZWVuIGluIHN5bmNocm9ueSB3aXRoIHVwZGF0ZXMgdG8gR3JhcGhpY3NMYXllcnMu
CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24o
KSA9IDA7CkBAIC0zMjUsMjYgKzMyOSwyOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wg
YWRqdXN0TGF5ZXJGbHVzaFRocm90dGxpbmcoTGF5ZXJGbHVzaFRocm90dGxlU3RhdGU6OkZsYWdz
KSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGluZ0Nv
b3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlKikgY29uc3QgeyByZXR1
cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBj
cmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlJikgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsg
fQogCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotICAgIHZpcnR1YWwg
R3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBncmFwaGljc0RldmljZUFkYXB0ZXIoKSBjb25zdCB7IHJl
dHVybiAwOyB9CisgICAgdmlydHVhbCBHcmFwaGljc0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2
aWNlQWRhcHRlcigpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCiAgICAgdmly
dHVhbCBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSkgeyByZXR1cm4gZmFsc2U7IH0KKwogI2lmIEVOQUJMRShWSURF
TykKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQo
SFRNTFZpZGVvRWxlbWVudCYsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZSkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXIo
SFRNTE1lZGlhRWxlbWVudCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBjbGVhclBsYXliYWNrQ29u
dHJvbHNNYW5hZ2VyKCkgeyB9CiAjZW5kaWYKLSAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVs
bHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JikgeyB9Ci0g
ICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9u
KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVv
RnVsbHNjcmVlbk1vZGUgLyp0YXJnZXRNb2RlKi8pIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGV4
aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYpIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlv
bihIVE1MVmlkZW9FbGVtZW50JiwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlKSB7IH0KICAgICB2aXJ0dWFsIGJvb2wgcmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9Q
bGF5YmFjaygpIHsgcmV0dXJuIGZhbHNlOyB9IAogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVs
ZW1lbnQqLCBib29sKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1
bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1
bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9y
dHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiwgYm9vbCkgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50
JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50
JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFJvb3RGdWxsU2NyZWVuTGF5ZXIoR3JhcGhpY3NM
YXllciopIHsgfQogI2VuZGlmCiAKQEAgLTM1Myw3ICszNTksNyBAQCBwdWJsaWM6CiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZpcnR1YWwgTlNSZXNwb25kZXIgKmZpcnN0UmVz
cG9uZGVyKCkgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgTlNSZXNwb25kZXIgKmZpcnN0UmVz
cG9uZGVyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgdm9pZCBtYWtlRmlyc3RS
ZXNwb25kZXIoTlNSZXNwb25kZXIgKikgeyB9CiAgICAgLy8gRm9jdXNlcyBvbiB0aGUgY29udGFp
bmluZyB2aWV3IGFzc29jaWF0ZWQgd2l0aCB0aGlzIHBhZ2UuCiAgICAgdmlydHVhbCB2b2lkIG1h
a2VGaXJzdFJlc3BvbmRlcigpIHsgfQpAQCAtMzc3LDEwICszODMsMTAgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0
aW9uKCkgPSAwOwogICAgIC8vIENoZWNrcyBpZiB0aGVyZSBpcyBhbiBvcGVuZWQgcG9wdXAsIGNh
bGxlZCBieSBSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVwKCkuCiAgICAgdmlydHVhbCBib29sIGhh
c09wZW5lZFBvcHVwKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPFBvcHVwTWVudT4g
Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFs
IFJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVD
bGllbnQqKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVmUHRy
PFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYp
IGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwgdm9pZCBwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNh
dGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24p
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0JiwgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24pIHsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIG5vdGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3Qg
SW50UmVjdCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxl
RGlkQ2hhbmdlKFNjcm9sbGJhclN0eWxlKSB7IH0KQEAgLTQwOCwxNiArNDE0LDE2IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3Rv
cjxSZWZQdHI8RWxlbWVudD4+JikgeyB9OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RpZnlP
bkZvcm1DaGFuZ2VzKCkgeyByZXR1cm4gZmFsc2U7IH07CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlk
QWRkSGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXllciopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRB
ZGRGb290ZXJMYXllcihHcmFwaGljc0xheWVyKikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFk
ZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5ZXImKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRk
Rm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciYpIHsgfQogCi0gICAgdmlydHVhbCBib29sIHNob3Vs
ZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcqKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JG
cmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAg
IHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRp
YVN0YXRlRmxhZ3MsIHVpbnQ2NF90KSB7IH0KIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQog
ICAgIHZpcnR1YWwgdm9pZCBoYXNNZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50c0Rp
ZENoYW5nZShib29sKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFTZXNzaW9uTWV0YWRhdGFE
aWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWV0YWRhdGEmKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoY29uc3QgTWVkaWFTZXNz
aW9uTWV0YWRhdGEmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZENvbnRlbnRNZWRpYUVs
ZW1lbnREaWRDaGFuZ2UodWludDY0X3QpIHsgfQogI2VuZGlmCiAKQEAgLTQyNywxMSArNDMzLDEy
IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5BQkxFKFRFTEVQSE9ORV9OVU1CRVJfREVURUNU
SU9OKSAmJiBQTEFURk9STShNQUMpCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZVRlbGVwaG9uZU51
bWJlckNsaWNrKGNvbnN0IFN0cmluZyYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGNvbnN0IFN0cmluZyYs
IGNvbnN0IEludFBvaW50JikgeyB9CiAjZW5kaWYKKwogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRS
T0xTKQotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soV2ViQ29y
ZTo6RnJhbWVTZWxlY3Rpb24mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JikgeyB9Ci0gICAgdmlydHVhbCBib29sIGhhc1JlbGV2YW50U2VsZWN0aW9uU2Vy
dmljZXMoYm9vbCAvKiBpc1RleHRPbmx5ICovKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAg
IHZpcnR1YWwgdm9pZCBoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soRnJhbWVTZWxlY3Rpb24m
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IEludFBvaW50JikgeyB9CisgICAgdmlydHVh
bCBib29sIGhhc1JlbGV2YW50U2VsZWN0aW9uU2VydmljZXMoYm9vbCAvKmlzVGV4dE9ubHkqLykg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHNob3Vs
ZERpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KQEAg
LTQ0MSwxMyArNDQ4LDEzIEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tf
VEFSR0VUKQogICAgIHZpcnR1YWwgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1
aW50NjRfdCAvKmNvbnRleHRJZCovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUGxheWJh
Y2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QgLypjb250ZXh0SWQqLykgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCAvKmNvbnRleHRJZCov
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wgLyogaXNWaWRlbyAqLykgeyB9CisgICAg
dmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCAvKmNvbnRleHRJ
ZCovLCBjb25zdCBJbnRQb2ludCYsIGJvb2wgLyppc1ZpZGVvKi8pIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVpbnQ2NF90IC8q
Y29udGV4dElkKi8sIE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKSAg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3Rh
dGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0
YXRlKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNr
ZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3RhdGUp
IHsgfQogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXpl
Q2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGlt
YWdlT3JNZWRpYURvY3VtZW50U2l6ZUNoYW5nZWQoY29uc3QgSW50U2l6ZSYpIHsgfQogCiAjaWYg
RU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVBTUVSKQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0
SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMoY29uc3QgU3RyaW5nJiAvKmRldGFpbHMqLywgY29u
c3QgU3RyaW5nJiAvKmRlc2NyaXB0aW9uKi8sIE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNz
aW5nUGx1Z2luc0NhbGxiYWNrJikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRN
ZW51Q29udHJvbGxlci5jcHAKaW5kZXggMGU3YTc3YjZkYTI4OWEwMjU2OTM1MzRhZDFmYzRkNTEw
OWM1MGYzMy4uYzFjNDk0ODQwMjgzODQ5ZjE1MmJiMjc0NWY4YTFiNDYwNmVlZDNlNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAtOTQsNyAr
OTQsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y2xlYXJDb250ZXh0TWVudSgpCiAg
ICAgbV9tZW51UHJvdmlkZXIgPSBudWxscHRyOwogfQogCi12b2lkIENvbnRleHRNZW51Q29udHJv
bGxlcjo6aGFuZGxlQ29udGV4dE1lbnVFdmVudChFdmVudCogZXZlbnQpCit2b2lkIENvbnRleHRN
ZW51Q29udHJvbGxlcjo6aGFuZGxlQ29udGV4dE1lbnVFdmVudChFdmVudCYgZXZlbnQpCiB7CiAg
ICAgbV9jb250ZXh0TWVudSA9IG1heWJlQ3JlYXRlQ29udGV4dE1lbnUoZXZlbnQpOwogICAgIGlm
ICghbV9jb250ZXh0TWVudSkKQEAgLTExMCw5ICsxMTAsOSBAQCBzdGF0aWMgc3RkOjp1bmlxdWVf
cHRyPENvbnRleHRNZW51SXRlbT4gc2VwYXJhdG9ySXRlbSgpCiAgICAgcmV0dXJuIHN0ZDo6dW5p
cXVlX3B0cjxDb250ZXh0TWVudUl0ZW0+KG5ldyBDb250ZXh0TWVudUl0ZW0oU2VwYXJhdG9yVHlw
ZSwgQ29udGV4dE1lbnVJdGVtVGFnTm9BY3Rpb24sIFN0cmluZygpKSk7CiB9CiAKLXZvaWQgQ29u
dGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZlbnQqIGV2ZW50LCBQYXNzUmVm
UHRyPENvbnRleHRNZW51UHJvdmlkZXI+IG1lbnVQcm92aWRlcikKK3ZvaWQgQ29udGV4dE1lbnVD
b250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZlbnQmIGV2ZW50LCBDb250ZXh0TWVudVByb3Zp
ZGVyJiBwcm92aWRlcikKIHsKLSAgICBtX21lbnVQcm92aWRlciA9IG1lbnVQcm92aWRlcjsKKyAg
ICBtX21lbnVQcm92aWRlciA9ICZwcm92aWRlcjsKIAogICAgIG1fY29udGV4dE1lbnUgPSBtYXli
ZUNyZWF0ZUNvbnRleHRNZW51KGV2ZW50KTsKICAgICBpZiAoIW1fY29udGV4dE1lbnUpIHsKQEAg
LTEyMCw3ICsxMjAsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRN
ZW51KEV2ZW50KiBldmVudCwgUGFzc1JlZlB0cjxDb250ZXh0TWVudQogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgbV9tZW51UHJvdmlkZXItPnBvcHVsYXRlQ29udGV4dE1lbnUobV9jb250
ZXh0TWVudS5nZXQoKSk7CisgICAgcHJvdmlkZXIucG9wdWxhdGVDb250ZXh0TWVudShtX2NvbnRl
eHRNZW51LmdldCgpKTsKICAgICBpZiAobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5pc1NlbGVj
dGVkKCkpIHsKICAgICAgICAgYXBwZW5kSXRlbSgqc2VwYXJhdG9ySXRlbSgpLCBtX2NvbnRleHRN
ZW51LmdldCgpKTsKICAgICAgICAgcG9wdWxhdGUoKTsKQEAgLTEyOSwzMyArMTI5LDM0IEBAIHZv
aWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZlbnQqIGV2ZW50LCBQ
YXNzUmVmUHRyPENvbnRleHRNZW51CiB9CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykK
Kwogc3RhdGljIEltYWdlKiBpbWFnZUZyb21JbWFnZUVsZW1lbnROb2RlKE5vZGUmIG5vZGUpCiB7
Ci0gICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IG5vZGUucmVuZGVyZXIoKTsKKyAgICBhdXRv
KiByZW5kZXJlciA9IG5vZGUucmVuZGVyZXIoKTsKICAgICBpZiAoIWlzPFJlbmRlckltYWdlPihy
ZW5kZXJlcikpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIENhY2hlZEltYWdlKiBpbWFn
ZSA9IGRvd25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIpLmNhY2hlZEltYWdlKCk7CisgICAg
YXV0byogaW1hZ2UgPSBkb3duY2FzdDxSZW5kZXJJbWFnZT4oKnJlbmRlcmVyKS5jYWNoZWRJbWFn
ZSgpOwogICAgIGlmICghaW1hZ2UgfHwgaW1hZ2UtPmVycm9yT2NjdXJyZWQoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7Ci0KICAgICByZXR1cm4gaW1hZ2UtPmltYWdlRm9yUmVuZGVyZXIocmVu
ZGVyZXIpOwogfQorCiAjZW5kaWYKIAotc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250
ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQqIGV2ZW50KQor
c3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJl
Q3JlYXRlQ29udGV4dE1lbnUoRXZlbnQmIGV2ZW50KQogewotICAgIEFTU0VSVChldmVudCk7Ci0g
ICAgCi0gICAgaWYgKCFpczxNb3VzZUV2ZW50PigqZXZlbnQpKQorICAgIGlmICghaXM8TW91c2VF
dmVudD4oZXZlbnQpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIE1vdXNlRXZlbnQm
IG1vdXNlRXZlbnQgPSBkb3duY2FzdDxNb3VzZUV2ZW50PigqZXZlbnQpOwotICAgIEhpdFRlc3RS
ZXN1bHQgcmVzdWx0KG1vdXNlRXZlbnQuYWJzb2x1dGVMb2NhdGlvbigpKTsKKyAgICBhdXRvJiBt
b3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VFdmVudD4oZXZlbnQpOworICAgIGF1dG8qIG5vZGUg
PSBtb3VzZUV2ZW50LnRhcmdldCgpLT50b05vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIGF1dG8qIGZyYW1lID0gbm9kZS0+ZG9jdW1lbnQoKS5mcmFt
ZSgpOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgTm9k
ZSogbm9kZSA9IGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCk7Ci0gICAgaWYgKEZyYW1lKiBmcmFt
ZSA9IG5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgcmVzdWx0ID0gZnJhbWUtPmV2
ZW50SGFuZGxlcigpLmhpdFRlc3RSZXN1bHRBdFBvaW50KG1vdXNlRXZlbnQuYWJzb2x1dGVMb2Nh
dGlvbigpKTsKLSAgICAKKyAgICBhdXRvIHJlc3VsdCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5o
aXRUZXN0UmVzdWx0QXRQb2ludChtb3VzZUV2ZW50LmFic29sdXRlTG9jYXRpb24oKSk7CiAgICAg
aWYgKCFyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCkBAIC0xNjMsNyArMTY0LDcgQEAgc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250
ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQKIAogI2lmIEVO
QUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAgIGlmIChub2RlLT5pc0ltYWdlQ29udHJvbHNCdXR0
b25FbGVtZW50KCkpIHsKLSAgICAgICAgaWYgKEltYWdlKiBpbWFnZSA9IGltYWdlRnJvbUltYWdl
RWxlbWVudE5vZGUoKnJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSkpCisgICAgICAgIGlmIChh
dXRvKiBpbWFnZSA9IGltYWdlRnJvbUltYWdlRWxlbWVudE5vZGUoKnJlc3VsdC5pbm5lck5vblNo
YXJlZE5vZGUoKSkpCiAgICAgICAgICAgICBtX2NvbnRleHQuc2V0Q29udHJvbGxlZEltYWdlKGlt
YWdlKTsKIAogICAgICAgICAvLyBGSVhNRTogSWYgd2UgY291bGRuJ3QgZ2V0IHRoZSBpbWFnZSB0
aGVuIHdlIHNob3VsZG4ndCB0cnkgdG8gc2hvdyB0aGUgaW1hZ2UgY29udHJvbHMgbWVudSBmb3Ig
aXQuCkBAIC0xNzEsMjQgKzE3MiwyNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IENv
bnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudAogICAgIH0K
ICNlbmRpZgogCi0gICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4obmV3IENv
bnRleHRNZW51KTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDb250ZXh0TWVudT4oKTsK
IH0KIAotdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCog
ZXZlbnQpCit2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50
JiBldmVudCkKIHsKICAgICBpZiAobV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5lbmFibGVk
KCkpCiAgICAgICAgIGFkZEluc3BlY3RFbGVtZW50SXRlbSgpOwogCi0gICAgZXZlbnQtPnNldERl
ZmF1bHRIYW5kbGVkKCk7CisgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKIH0KIAotc3Rh
dGljIHZvaWQgb3Blbk5ld1dpbmRvdyhjb25zdCBVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1l
LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kpCitzdGF0aWMgdm9pZCBvcGVuTmV3V2luZG93KGNvbnN0IFVSTCYgdXJsVG9Mb2FkLCBGcmFt
ZSYgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSkKIHsKLSAgICBQYWdlKiBvbGRQYWdlID0gZnJhbWUtPnBhZ2UoKTsKKyAgICBQ
YWdlKiBvbGRQYWdlID0gZnJhbWUucGFnZSgpOwogICAgIGlmICghb2xkUGFnZSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgp
LT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFtZS0+bG9h
ZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0Zvcndh
cmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MsIHNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kpOworICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChmcmFtZS5kb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFtZS5s
b2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9y
d2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlk
VVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcywgc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSk7CiAKICAgICBQYWdlKiBuZXdQYWdlID0gb2xkUGFnZS0+Y2hyb21lKCku
Y3JlYXRlV2luZG93KGZyYW1lLCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9u
QWN0aW9uKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpKTsKICAgICBpZiAoIW5ld1BhZ2UpCkBA
IC0xOTgsMTUgKzE5OSwxNyBAQCBzdGF0aWMgdm9pZCBvcGVuTmV3V2luZG93KGNvbnN0IFVSTCYg
dXJsVG9Mb2FkLCBGcmFtZSogZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbAogfQogCiAjaWYgUExB
VEZPUk0oR1RLKQotc3RhdGljIHZvaWQgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihVQ2hhciBjaGFy
YWN0ZXIsIEZyYW1lKiBmcmFtZSkKKworc3RhdGljIHZvaWQgaW5zZXJ0VW5pY29kZUNoYXJhY3Rl
cihVQ2hhciBjaGFyYWN0ZXIsIEZyYW1lJiBmcmFtZSkKIHsKICAgICBTdHJpbmcgdGV4dCgmY2hh
cmFjdGVyLCAxKTsKLSAgICBpZiAoIWZyYW1lLT5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KHRl
eHQsIGZyYW1lLT5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpLCBFZGl0b3JJ
bnNlcnRBY3Rpb246OlR5cGVkKSkKKyAgICBpZiAoIWZyYW1lLmVkaXRvcigpLnNob3VsZEluc2Vy
dFRleHQodGV4dCwgZnJhbWUuc2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwg
RWRpdG9ySW5zZXJ0QWN0aW9uOjpUeXBlZCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VS
VChmcmFtZS0+ZG9jdW1lbnQoKSk7Ci0gICAgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dCgqZnJh
bWUtPmRvY3VtZW50KCksIHRleHQsIDAsIFR5cGluZ0NvbW1hbmQ6OlRleHRDb21wb3NpdGlvbk5v
bmUpOworICAgIEFTU0VSVChmcmFtZS5kb2N1bWVudCgpKTsKKyAgICBUeXBpbmdDb21tYW5kOjpp
bnNlcnRUZXh0KCpmcmFtZS5kb2N1bWVudCgpLCB0ZXh0LCAwLCBUeXBpbmdDb21tYW5kOjpUZXh0
Q29tcG9zaXRpb25Ob25lKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgQ29udGV4dE1lbnVDb250cm9s
bGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNv
bnN0IFN0cmluZyYgdGl0bGUpCkBAIC0yMjUsNyArMjI4LDcgQEAgdm9pZCBDb250ZXh0TWVudUNv
bnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlv
biwgY28KIAogICAgIHN3aXRjaCAoYWN0aW9uKSB7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1U
YWdPcGVuTGlua0luTmV3V2luZG93OgotICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5o
aXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5OjpTaG91bGRBbGxvd0V4dGVybmFsU2NoZW1lcyk7CisgICAgICAgIG9wZW5O
ZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgKmZy
YW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvd0V4dGVybmFsU2No
ZW1lcyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxv
YWRMaW5rVG9EaXNrOgogICAgICAgICAvLyBGSVhNRTogU29tZSBkYXkgd2Ugc2hvdWxkIGJlIGFi
bGUgdG8gZG8gdGhpcyBmcm9tIHdpdGhpbiBXZWJDb3JlLiAoQnVnIDExNzcwOSkKQEAgLTIzNSw3
ICsyMzgsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2Vs
ZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwogICAgICAgICBmcmFtZS0+ZWRpdG9y
KCkuY29weVVSTChtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBt
X2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLnRleHRDb250ZW50KCkpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93OgotICAgICAg
ICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVJbWFnZVVS
TCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cp
OworICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1
dGVJbWFnZVVSTCgpLCAqZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3Vs
ZE5vdEFsbG93KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdE
b3dubG9hZEltYWdlVG9EaXNrOgogICAgICAgICAvLyBGSVhNRTogU29tZSBkYXkgd2Ugc2hvdWxk
IGJlIGFibGUgdG8gZG8gdGhpcyBmcm9tIHdpdGhpbiBXZWJDb3JlLiAoQnVnIDExNzcwOSkKQEAg
LTI1Miw3ICsyNTUsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJ
dGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwogICAgICAgICBicmVhazsK
ICNlbmRpZgogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3c6
Ci0gICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0
ZU1lZGlhVVJMKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRO
b3RBbGxvdyk7CisgICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQo
KS5hYnNvbHV0ZU1lZGlhVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eTo6U2hvdWxkTm90QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51
SXRlbVRhZ0Rvd25sb2FkTWVkaWFUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIGRheSB3
ZSBzaG91bGQgYmUgYWJsZSB0byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUuIChCdWcgMTE3
NzA5KQpAQCAtMjg1LDkgKzI4OCw5IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250
ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdzogewogICAgICAgICBEb2N1
bWVudExvYWRlciogbG9hZGVyID0gZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCk7CiAg
ICAgICAgIGlmICghbG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLmlzRW1wdHkoKSkKLSAgICAgICAg
ICAgIG9wZW5OZXdXaW5kb3cobG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLCBmcmFtZSwgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOworICAgICAgICAgICAgb3Bl
bk5ld1dpbmRvdyhsb2FkZXItPnVucmVhY2hhYmxlVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBvcGVuTmV3V2luZG93KGxvYWRlci0+dXJsKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgICAgICAgICBvcGVuTmV3V2luZG93
KGxvYWRlci0+dXJsKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hv
dWxkTm90QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdDb3B5OgpAQCAtMzE4LDM0ICszMjEsMzQgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRy
b2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwg
Y28KICAgICAgICAgZnJhbWUtPmVkaXRvcigpLnBlcmZvcm1EZWxldGUoKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0TFJNTWFyazoKLSAg
ICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9SaWdodE1hcmssIGZyYW1lKTsKKyAg
ICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9SaWdodE1hcmssICpmcmFtZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydFJM
TU1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRNYXJrLCBm
cmFtZSk7CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRNYXJrLCAq
ZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNv
ZGVJbnNlcnRMUkVNYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1Jp
Z2h0RW1iZWQsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9S
aWdodEVtYmVkLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51
SXRlbVRhZ1VuaWNvZGVJbnNlcnRSTEVNYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFj
dGVyKHJpZ2h0VG9MZWZ0RW1iZWQsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJh
Y3RlcihyaWdodFRvTGVmdEVtYmVkLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRMUk9NYXJrOgotICAgICAgICBpbnNlcnRV
bmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0T3ZlcnJpZGUsIGZyYW1lKTsKKyAgICAgICAgaW5z
ZXJ0VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9SaWdodE92ZXJyaWRlLCAqZnJhbWUpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRSTE9NYXJr
OgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHJpZ2h0VG9MZWZ0T3ZlcnJpZGUsIGZy
YW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdodFRvTGVmdE92ZXJyaWRl
LCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1Vu
aWNvZGVJbnNlcnRQREZNYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHBvcERp
cmVjdGlvbmFsRm9ybWF0dGluZywgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFj
dGVyKHBvcERpcmVjdGlvbmFsRm9ybWF0dGluZywgKmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0WldTTWFyazoKLSAgICAgICAg
aW5zZXJ0VW5pY29kZUNoYXJhY3Rlcih6ZXJvV2lkdGhTcGFjZSwgZnJhbWUpOworICAgICAgICBp
bnNlcnRVbmljb2RlQ2hhcmFjdGVyKHplcm9XaWR0aFNwYWNlLCAqZnJhbWUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRaV0pNYXJrOgot
ICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHplcm9XaWR0aEpvaW5lciwgZnJhbWUpOwor
ICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHplcm9XaWR0aEpvaW5lciwgKmZyYW1lKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0
WldOSk1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoTm9uSm9p
bmVyLCBmcmFtZSk7CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoTm9u
Sm9pbmVyLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oRUZMKQpAQCAtMzkzLDcgKzM5Niw3IEBAIHZvaWQgQ29udGV4dE1lbnVD
b250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rp
b24sIGNvCiAgICAgICAgIGlmIChGcmFtZSogdGFyZ2V0RnJhbWUgPSBtX2NvbnRleHQuaGl0VGVz
dFJlc3VsdCgpLnRhcmdldEZyYW1lKCkpCiAgICAgICAgICAgICB0YXJnZXRGcmFtZS0+bG9hZGVy
KCkubG9hZEZyYW1lUmVxdWVzdChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5z
ZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3QobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQo
KS5hYnNvbHV0ZUxpbmtVUkwoKSwgZnJhbWUtPmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSks
IExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVy
cmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xp
Y3k6OlN1cHByZXNzLCB0YXJnZXRGcmFtZS0+aXNNYWluRnJhbWUoKSA/IFNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93IDogU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eTo6U2hvdWxkTm90QWxsb3cpLCBudWxscHRyLCBudWxscHRyKTsKICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRl
TGlua1VSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxs
b3cpOworICAgICAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgp
LmFic29sdXRlTGlua1VSTCgpLCAqZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6
OlNob3VsZEFsbG93KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1U
YWdCb2xkOgogICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuY29tbWFuZCgiVG9nZ2xlQm9sZCIpLmV4
ZWN1dGUoKTsKQEAgLTE0MjksMjYgKzE0MzIsMzAgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xs
ZXI6OmNoZWNrT3JFbmFibGVJZk5lZWRlZChDb250ZXh0TWVudUl0ZW0mIGl0ZW0pIGNvbnN0CiB9
CiAKICNpZiBVU0UoQUNDRVNTSUJJTElUWV9DT05URVhUX01FTlVTKQotdm9pZCBDb250ZXh0TWVu
dUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudUF0KEZyYW1lKiBmcmFtZSwgY29uc3QgSW50UG9p
bnQmIGNsaWNrUG9pbnQpCisKK3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4
dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFBvaW50JiBjbGlja1BvaW50KQogewogICAg
IGNsZWFyQ29udGV4dE1lbnUoKTsKICAgICAKICAgICAvLyBTaW11bGF0ZSBhIGNsaWNrIGluIHRo
ZSBtaWRkbGUgb2YgdGhlIGFjY2Vzc2liaWxpdHkgb2JqZWN0LgogICAgIFBsYXRmb3JtTW91c2VF
dmVudCBtb3VzZUV2ZW50KGNsaWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0
Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBj
dXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ssIE5vVGFwKTsKLSAgICBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KG1vdXNlRXZlbnQpOwotICAgIGJvb2wgaGFuZGxl
ZCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50
KTsKKyAgICBmcmFtZS5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VF
dmVudCk7CisgICAgYm9vbCBoYW5kbGVkID0gZnJhbWUuZXZlbnRIYW5kbGVyKCkuc2VuZENvbnRl
eHRNZW51RXZlbnQobW91c2VFdmVudCk7CiAgICAgaWYgKGhhbmRsZWQpCiAgICAgICAgIG1fY2xp
ZW50LnNob3dDb250ZXh0TWVudSgpOwogfQorCiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNF
X0NPTlRST0xTKQotdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dJbWFnZUNvbnRyb2xz
TWVudShFdmVudCogZXZlbnQpCisKK3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93SW1h
Z2VDb250cm9sc01lbnUoRXZlbnQmIGV2ZW50KQogewogICAgIGNsZWFyQ29udGV4dE1lbnUoKTsK
ICAgICBoYW5kbGVDb250ZXh0TWVudUV2ZW50KGV2ZW50KTsKICAgICBtX2NsaWVudC5zaG93Q29u
dGV4dE1lbnUoKTsKIH0KKwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oCmluZGV4IDExMjU2ZTFjZTc5
YWIxZTdiMzIxNThmNzg0ZGM3ODgxMzY0NzRkOGQuLmY2Mzk2NDhiMTg2MjA0NjA2ZWZjYTU2YTkw
NzgyYzg5MzdhMGU5NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1l
bnVDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRy
b2xsZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0yOSwyMSArMjksMTYgQEAKIAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29u
dGV4dC5oIgogI2luY2x1ZGUgIkNvbnRleHRNZW51SXRlbS5oIgotI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Jl
ZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENvbnRleHRNZW51OwogY2xh
c3MgQ29udGV4dE1lbnVDbGllbnQ7Ci1jbGFzcyBDb250ZXh0TWVudUl0ZW07CiBjbGFzcyBDb250
ZXh0TWVudVByb3ZpZGVyOwogY2xhc3MgRXZlbnQ7CiBjbGFzcyBQYWdlOwogCiBjbGFzcyBDb250
ZXh0TWVudUNvbnRyb2xsZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnRleHRNZW51
Q29udHJvbGxlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgogICAgIENvbnRleHRNZW51Q29udHJvbGxlcihQYWdlJiwgQ29u
dGV4dE1lbnVDbGllbnQmKTsKICAgICB+Q29udGV4dE1lbnVDb250cm9sbGVyKCk7CkBAIC01NCw4
ICs0OSw4IEBAIHB1YmxpYzoKICAgICBDb250ZXh0TWVudSogY29udGV4dE1lbnUoKSBjb25zdCB7
IHJldHVybiBtX2NvbnRleHRNZW51LmdldCgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBj
bGVhckNvbnRleHRNZW51KCk7CiAKLSAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZl
bnQqKTsKLSAgICB2b2lkIHNob3dDb250ZXh0TWVudShFdmVudCosIFBhc3NSZWZQdHI8Q29udGV4
dE1lbnVQcm92aWRlcj4pOworICAgIHZvaWQgaGFuZGxlQ29udGV4dE1lbnVFdmVudChFdmVudCYp
OworICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KEV2ZW50JiwgQ29udGV4dE1lbnVQcm92aWRlciYp
OwogCiAgICAgdm9pZCBwb3B1bGF0ZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udGV4
dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUp
OwpAQCAtNjgsMTYgKzYzLDE2IEBAIHB1YmxpYzoKICAgICBjb25zdCBIaXRUZXN0UmVzdWx0JiBo
aXRUZXN0UmVzdWx0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKTsg
fQogCiAjaWYgVVNFKEFDQ0VTU0lCSUxJVFlfQ09OVEVYVF9NRU5VUykKLSAgICB2b2lkIHNob3dD
b250ZXh0TWVudUF0KEZyYW1lKiwgY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQpOworICAgIHZv
aWQgc2hvd0NvbnRleHRNZW51QXQoRnJhbWUmLCBjb25zdCBJbnRQb2ludCYgY2xpY2tQb2ludCk7
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIHZvaWQgc2hvd0lt
YWdlQ29udHJvbHNNZW51KEV2ZW50Kik7CisgICAgdm9pZCBzaG93SW1hZ2VDb250cm9sc01lbnUo
RXZlbnQmKTsKICNlbmRpZgogCiBwcml2YXRlOgotICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0
TWVudT4gbWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudCopOwotICAgIHZvaWQgc2hvd0NvbnRl
eHRNZW51KEV2ZW50Kik7CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBtYXliZUNy
ZWF0ZUNvbnRleHRNZW51KEV2ZW50Jik7CisgICAgdm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQm
KTsKICAgICAKICAgICB2b2lkIGFwcGVuZEl0ZW0oQ29udGV4dE1lbnVJdGVtJiwgQ29udGV4dE1l
bnUqIHBhcmVudE1lbnUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRp
bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCmluZGV4IDhjMjczODFh
ZDY5YmMyZWFiOTIzMmYyOGFhNTc2MDUwM2I2ZGIxOGQuLjZiYjg5NjFkOWNlODI4YTk4MjU0MjU5
MDAxMjZmOGU1YmRhN2MzNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGlt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCkBAIC0zNjEsNyAr
MzYxLDcgQEAgdm9pZCBET01UaW1lcjo6ZmlyZWQoKQogICAgICAgICBpZiAoV0tPYnNlcnZlZENv
bnRlbnRDaGFuZ2UoKSA9PSBXS0NvbnRlbnRWaXNpYmlsaXR5Q2hhbmdlIHx8IHNob3VsZFJlcG9y
dExhY2tPZkNoYW5nZXMpIHsKICAgICAgICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25j
YXN0PERvY3VtZW50Pihjb250ZXh0KTsKICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9j
dW1lbnQucGFnZSgpKQotICAgICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLm9i
c2VydmVkQ29udGVudENoYW5nZShkb2N1bWVudC5mcmFtZSgpKTsKKyAgICAgICAgICAgICAgICBw
YWdlLT5jaHJvbWUoKS5jbGllbnQoKS5vYnNlcnZlZENvbnRlbnRDaGFuZ2UoKmRvY3VtZW50LmZy
YW1lKCkpOwogICAgICAgICB9CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5j
cHAKaW5kZXggNGYwMDJmOWQyNTE3ZDkxZWQ1NTdlYjMzNjgzMTA3ZmNkZWZhMGQ5MS4uZGYxNjFj
M2Q2ZTM4ZGUyYzBmYWRkMGNiZmJjZTYxYmZlODE1NmYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcApAQCAtMTUwLDkgKzE1MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
UG9zdE1lc3NhZ2VUaW1lciA6IHB1YmxpYyBUaW1lckJhc2UgewogcHVibGljOgotICAgIFBvc3RN
ZXNzYWdlVGltZXIoRE9NV2luZG93JiB3aW5kb3csIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgRE9NV2luZG93JiBz
b3VyY2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMs
IFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiB0YXJnZXRPcmlnaW4sIFJlZlB0cjxTY3JpcHRDYWxs
U3RhY2s+JiYgc3RhY2tUcmFjZSkKKyAgICBQb3N0TWVzc2FnZVRpbWVyKERPTVdpbmRvdyYgd2lu
ZG93LCBSZWY8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlT3JpZ2luLCBET01XaW5kb3cmIHNvdXJjZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQ
b3J0Q2hhbm5lbEFycmF5PiBjaGFubmVscywgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHRhcmdl
dE9yaWdpbiwgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4mJiBzdGFja1RyYWNlKQogICAgICAgICA6
IG1fd2luZG93KHdpbmRvdykKLSAgICAgICAgLCBtX21lc3NhZ2UobWVzc2FnZSkKKyAgICAgICAg
LCBtX21lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSkKICAgICAgICAgLCBtX29yaWdpbihzb3VyY2VP
cmlnaW4pCiAgICAgICAgICwgbV9zb3VyY2Uoc291cmNlKQogICAgICAgICAsIG1fY2hhbm5lbHMo
V1RGTW92ZShjaGFubmVscykpCkBAIC0xODEsNyArMTgxLDcgQEAgcHJpdmF0ZToKICAgICB9CiAK
ICAgICBSZWY8RE9NV2luZG93PiBtX3dpbmRvdzsKLSAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlw
dFZhbHVlPiBtX21lc3NhZ2U7CisgICAgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9tZXNz
YWdlOwogICAgIFN0cmluZyBtX29yaWdpbjsKICAgICBSZWY8RE9NV2luZG93PiBtX3NvdXJjZTsK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IG1fY2hhbm5lbHM7
CkBAIC0zMjUsMTIgKzMyNSwxMCBAQCB2b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hBbGxQZW5kaW5n
VW5sb2FkRXZlbnRzKCkKIC8vIDMpIENvbnN0cmFpbnMgdGhlIHdpbmRvdyByZWN0IHRvIHdpdGhp
biB0aGUgdG9wIGFuZCBsZWZ0IGJvdW5kYXJpZXMgb2YgdGhlIGF2YWlsYWJsZSBzY3JlZW4gcmVj
dC4KIC8vIDQpIENvbnN0cmFpbnMgdGhlIHdpbmRvdyByZWN0IHRvIHdpdGhpbiB0aGUgYm90dG9t
IGFuZCByaWdodCBib3VuZGFyaWVzIG9mIHRoZSBhdmFpbGFibGUgc2NyZWVuIHJlY3QuCiAvLyA1
KSBUcmFuc2xhdGUgdGhlIHdpbmRvdyByZWN0IGNvb3JkaW5hdGVzIHRvIGJlIHdpdGhpbiB0aGUg
Y29vcmRpbmF0ZSBzcGFjZSBvZiB0aGUgc2NyZWVuLgotRmxvYXRSZWN0IERPTVdpbmRvdzo6YWRq
dXN0V2luZG93UmVjdChQYWdlKiBwYWdlLCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2Vz
KQorRmxvYXRSZWN0IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChQYWdlJiBwYWdlLCBjb25z
dCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKQogewotICAgIEFTU0VSVChwYWdlKTsKLQotICAg
IEZsb2F0UmVjdCBzY3JlZW4gPSBzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5GcmFtZSgp
LnZpZXcoKSk7Ci0gICAgRmxvYXRSZWN0IHdpbmRvdyA9IHBhZ2UtPmNocm9tZSgpLndpbmRvd1Jl
Y3QoKTsKKyAgICBGbG9hdFJlY3Qgc2NyZWVuID0gc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLm1h
aW5GcmFtZSgpLnZpZXcoKSk7CisgICAgRmxvYXRSZWN0IHdpbmRvdyA9IHBhZ2UuY2hyb21lKCku
d2luZG93UmVjdCgpOwogCiAgICAgLy8gTWFrZSBzdXJlIHdlJ3JlIGluIGEgdmFsaWQgc3RhdGUg
YmVmb3JlIGFkanVzdGluZyBkaW1lbnNpb25zLgogICAgIEFTU0VSVChzdGQ6OmlzZmluaXRlKHNj
cmVlbi54KCkpKTsKQEAgLTM1Miw3ICszNTAsNyBAQCBGbG9hdFJlY3QgRE9NV2luZG93OjphZGp1
c3RXaW5kb3dSZWN0KFBhZ2UqIHBhZ2UsIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5nZQog
ICAgIGlmICghc3RkOjppc25hbihwZW5kaW5nQ2hhbmdlcy5oZWlnaHQoKSkpCiAgICAgICAgIHdp
bmRvdy5zZXRIZWlnaHQocGVuZGluZ0NoYW5nZXMuaGVpZ2h0KCkpOwogCi0gICAgRmxvYXRTaXpl
IG1pbmltdW1TaXplID0gcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkubWluaW11bVdpbmRvd1NpemUo
KTsKKyAgICBGbG9hdFNpemUgbWluaW11bVNpemUgPSBwYWdlLmNocm9tZSgpLmNsaWVudCgpLm1p
bmltdW1XaW5kb3dTaXplKCk7CiAgICAgd2luZG93LnNldFdpZHRoKHN0ZDo6bWluKHN0ZDo6bWF4
KG1pbmltdW1TaXplLndpZHRoKCksIHdpbmRvdy53aWR0aCgpKSwgc2NyZWVuLndpZHRoKCkpKTsK
ICAgICB3aW5kb3cuc2V0SGVpZ2h0KHN0ZDo6bWluKHN0ZDo6bWF4KG1pbmltdW1TaXplLmhlaWdo
dCgpLCB3aW5kb3cuaGVpZ2h0KCkpLCBzY3JlZW4uaGVpZ2h0KCkpKTsKIApAQCAtMzYzLDM4ICsz
NjEsMzEgQEAgRmxvYXRSZWN0IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChQYWdlKiBwYWdl
LCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2UKICAgICByZXR1cm4gd2luZG93OwogfQog
Ci1ib29sIERPTVdpbmRvdzo6YWxsb3dQb3BVcChGcmFtZSogZmlyc3RGcmFtZSkKK2Jvb2wgRE9N
V2luZG93OjphbGxvd1BvcFVwKEZyYW1lJiBmaXJzdEZyYW1lKQogewotICAgIEFTU0VSVChmaXJz
dEZyYW1lKTsKLSAgICAKLSAgICBhdXRvJiBzZXR0aW5ncyA9IGZpcnN0RnJhbWUtPnNldHRpbmdz
KCk7Ci0KLSAgICBpZiAoU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkg
fHwgc2V0dGluZ3MuYWxsb3dXaW5kb3dPcGVuV2l0aG91dFVzZXJHZXN0dXJlKCkpCi0gICAgICAg
IHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIHNldHRpbmdzLmphdmFTY3JpcHRDYW5PcGVuV2lu
ZG93c0F1dG9tYXRpY2FsbHkoKTsKKyAgICBhdXRvJiBzZXR0aW5ncyA9IGZpcnN0RnJhbWUuc2V0
dGluZ3MoKTsKKyAgICByZXR1cm4gU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0
dXJlKCkKKyAgICAgICAgfHwgc2V0dGluZ3MuYWxsb3dXaW5kb3dPcGVuV2l0aG91dFVzZXJHZXN0
dXJlKCkKKyAgICAgICAgfHwgc2V0dGluZ3MuamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21h
dGljYWxseSgpOwogfQogCiBib29sIERPTVdpbmRvdzo6YWxsb3dQb3BVcCgpCiB7Ci0gICAgcmV0
dXJuIG1fZnJhbWUgJiYgYWxsb3dQb3BVcChtX2ZyYW1lKTsKKyAgICByZXR1cm4gbV9mcmFtZSAm
JiBhbGxvd1BvcFVwKCptX2ZyYW1lKTsKIH0KIAotYm9vbCBET01XaW5kb3c6OmNhblNob3dNb2Rh
bERpYWxvZyhjb25zdCBGcmFtZSogZnJhbWUpCitib29sIERPTVdpbmRvdzo6Y2FuU2hvd01vZGFs
RGlhbG9nKGNvbnN0IEZyYW1lJiBmcmFtZSkKIHsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0KICAgICAvLyBPdmVycmlkZSBzdXBwb3J0IGZvciBsYXlvdXQgdGVzdGlu
ZyBwdXJwb3Nlcy4KLSAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkg
eworICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZyYW1lLmRvY3VtZW50KCkpIHsKICAgICAgICAg
aWYgKGF1dG8qIHdpbmRvdyA9IGRvY3VtZW50LT5kb21XaW5kb3coKSkgewogICAgICAgICAgICAg
aWYgKHdpbmRvdy0+bV9jYW5TaG93TW9kYWxEaWFsb2dPdmVycmlkZSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gd2luZG93LT5tX2NhblNob3dNb2RhbERpYWxvZ092ZXJyaWRlLnZhbHVlKCk7CiAg
ICAgICAgIH0KICAgICB9CiAKLSAgICBhdXRvKiBwYWdlID0gZnJhbWUtPnBhZ2UoKTsKLSAgICBy
ZXR1cm4gcGFnZSA/IHBhZ2UtPmNocm9tZSgpLmNhblJ1bk1vZGFsKCkgOiBmYWxzZTsKKyAgICBh
dXRvKiBwYWdlID0gZnJhbWUucGFnZSgpOworICAgIHJldHVybiBwYWdlICYmIHBhZ2UtPmNocm9t
ZSgpLmNhblJ1bk1vZGFsKCk7CiB9CiAKIHN0YXRpYyB2b2lkIGxhbmd1YWdlc0NoYW5nZWRDYWxs
YmFjayh2b2lkKiBjb250ZXh0KQpAQCAtNDA3LDIwICszOTgsMTggQEAgdm9pZCBET01XaW5kb3c6
OnNldENhblNob3dNb2RhbERpYWxvZ092ZXJyaWRlKGJvb2wgYWxsb3cpCiAgICAgbV9jYW5TaG93
TW9kYWxEaWFsb2dPdmVycmlkZSA9IGFsbG93OwogfQogCi1ET01XaW5kb3c6OkRPTVdpbmRvdyhE
b2N1bWVudCogZG9jdW1lbnQpCi0gICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcihkb2N1
bWVudCkKLSAgICAsIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcihkb2N1bWVudC0+ZnJhbWUoKSkK
K0RPTVdpbmRvdzo6RE9NV2luZG93KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IENvbnRleHRE
ZXN0cnVjdGlvbk9ic2VydmVyKCZkb2N1bWVudCkKKyAgICAsIEZyYW1lRGVzdHJ1Y3Rpb25PYnNl
cnZlcihkb2N1bWVudC5mcmFtZSgpKQogICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewog
ICAgIEFTU0VSVChmcmFtZSgpKTsKLSAgICBBU1NFUlQoRE9NV2luZG93Ojpkb2N1bWVudCgpKTsK
LQogICAgIGFkZExhbmd1YWdlQ2hhbmdlT2JzZXJ2ZXIodGhpcywgJmxhbmd1YWdlc0NoYW5nZWRD
YWxsYmFjayk7CiB9CiAKLXZvaWQgRE9NV2luZG93OjpkaWRTZWN1cmVUcmFuc2l0aW9uVG8oRG9j
dW1lbnQqIGRvY3VtZW50KQordm9pZCBET01XaW5kb3c6OmRpZFNlY3VyZVRyYW5zaXRpb25UbyhE
b2N1bWVudCYgZG9jdW1lbnQpCiB7Ci0gICAgb2JzZXJ2ZUNvbnRleHQoZG9jdW1lbnQpOworICAg
IG9ic2VydmVDb250ZXh0KCZkb2N1bWVudCk7CiB9CiAKIERPTVdpbmRvdzo6fkRPTVdpbmRvdygp
CkBAIC01NDcsMTQgKzUzNiwxNCBAQCB2b2lkIERPTVdpbmRvdzo6ZGVjcmVtZW50R2FtZXBhZEV2
ZW50TGlzdGVuZXJDb3VudCgpCiAKICNlbmRpZgogCi12b2lkIERPTVdpbmRvdzo6cmVnaXN0ZXJQ
cm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSogcHJvcGVydHkpCit2b2lkIERPTVdpbmRvdzo6cmVn
aXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSYgcHJvcGVydHkpCiB7Ci0gICAgbV9wcm9w
ZXJ0aWVzLmFkZChwcm9wZXJ0eSk7CisgICAgbV9wcm9wZXJ0aWVzLmFkZCgmcHJvcGVydHkpOwog
fQogCi12b2lkIERPTVdpbmRvdzo6dW5yZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5
KiBwcm9wZXJ0eSkKK3ZvaWQgRE9NV2luZG93Ojp1bnJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93
UHJvcGVydHkmIHByb3BlcnR5KQogewotICAgIG1fcHJvcGVydGllcy5yZW1vdmUocHJvcGVydHkp
OworICAgIG1fcHJvcGVydGllcy5yZW1vdmUoJnByb3BlcnR5KTsKIH0KIAogdm9pZCBET01XaW5k
b3c6OnJlc2V0VW5sZXNzU3VzcGVuZGVkRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkKQEAgLTk3NCwy
MyArOTYzLDE4IEBAIHZvaWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQoUG9zdE1l
c3NhZ2VUaW1lciYgdGltZXIpCiAgICAgaWYgKCFkb2N1bWVudCgpIHx8ICFpc0N1cnJlbnRseURp
c3BsYXllZEluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZGlzcGF0Y2hNZXNzYWdl
RXZlbnRXaXRoT3JpZ2luQ2hlY2sodGltZXIudGFyZ2V0T3JpZ2luKCksIHRpbWVyLmV2ZW50KCpk
b2N1bWVudCgpKSwgdGltZXIuc3RhY2tUcmFjZSgpKTsKLX0KLQotdm9pZCBET01XaW5kb3c6OmRp
c3BhdGNoTWVzc2FnZUV2ZW50V2l0aE9yaWdpbkNoZWNrKFNlY3VyaXR5T3JpZ2luKiBpbnRlbmRl
ZFRhcmdldE9yaWdpbiwgRXZlbnQmIGV2ZW50LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4g
c3RhY2tUcmFjZSkKLXsKLSAgICBpZiAoaW50ZW5kZWRUYXJnZXRPcmlnaW4pIHsKKyAgICBpZiAo
YXV0byogaW50ZW5kZWRUYXJnZXRPcmlnaW4gPSB0aW1lci50YXJnZXRPcmlnaW4oKSkgewogICAg
ICAgICAvLyBDaGVjayB0YXJnZXQgb3JpZ2luIG5vdyBzaW5jZSB0aGUgdGFyZ2V0IGRvY3VtZW50
IG1heSBoYXZlIGNoYW5nZWQgc2luY2UgdGhlIHRpbWVyIHdhcyBzY2hlZHVsZWQuCiAgICAgICAg
IGlmICghaW50ZW5kZWRUYXJnZXRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KGRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCkpKSB7Ci0gICAgICAgICAgICBpZiAoUGFnZUNvbnNvbGVDbGll
bnQqIHBhZ2VDb25zb2xlID0gY29uc29sZSgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogcGFn
ZUNvbnNvbGUgPSBjb25zb2xlKCkpIHsKICAgICAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9
IG1ha2VTdHJpbmcoIlVuYWJsZSB0byBwb3N0IG1lc3NhZ2UgdG8gIiwgaW50ZW5kZWRUYXJnZXRP
cmlnaW4tPnRvU3RyaW5nKCksICIuIFJlY2lwaWVudCBoYXMgb3JpZ2luICIsIGRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCkudG9TdHJpbmcoKSwgIi5cbiIpOwotICAgICAgICAgICAgICAgIHBh
Z2VDb25zb2xlLT5hZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2
ZWw6OkVycm9yLCBtZXNzYWdlLCBzdGFja1RyYWNlKTsKKyAgICAgICAgICAgICAgICBwYWdlQ29u
c29sZS0+YWRkTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpF
cnJvciwgbWVzc2FnZSwgdGltZXIuc3RhY2tUcmFjZSgpKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KIAotICAgIGRpc3BhdGNoRXZlbnQoZXZl
bnQpOworICAgIGRpc3BhdGNoRXZlbnQodGltZXIuZXZlbnQoKmRvY3VtZW50KCkpKTsKIH0KIAog
RE9NU2VsZWN0aW9uKiBET01XaW5kb3c6OmdldFNlbGVjdGlvbigpCkBAIC0xMTEzLDcgKzEwOTcs
NyBAQCB2b2lkIERPTVdpbmRvdzo6cHJpbnQoKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IG1fc2hvdWxkUHJpbnRXaGVuRmluaXNoZWRMb2FkaW5nID0gZmFsc2U7Ci0gICAgcGFnZS0+Y2hy
b21lKCkucHJpbnQobV9mcmFtZSk7CisgICAgcGFnZS0+Y2hyb21lKCkucHJpbnQoKm1fZnJhbWUp
OwogfQogCiB2b2lkIERPTVdpbmRvdzo6c3RvcCgpCkBAIC0xMTQ1LDcgKzExMjksNyBAQCB2b2lk
IERPTVdpbmRvdzo6YWxlcnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIHBhZ2UtPnBvaW50
ZXJMb2NrQ29udHJvbGxlcigpLnJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CiAjZW5kaWYKIAotICAg
IHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRBbGVydChtX2ZyYW1lLCBtZXNzYWdlKTsKKyAg
ICBwYWdlLT5jaHJvbWUoKS5ydW5KYXZhU2NyaXB0QWxlcnQoKm1fZnJhbWUsIG1lc3NhZ2UpOwog
fQogCiBib29sIERPTVdpbmRvdzo6Y29uZmlybShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0x
MTY3LDcgKzExNTEsNyBAQCBib29sIERPTVdpbmRvdzo6Y29uZmlybShjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCiAgICAgcGFnZS0+cG9pbnRlckxvY2tDb250cm9sbGVyKCkucmVxdWVzdFBvaW50ZXJV
bmxvY2soKTsKICNlbmRpZgogCi0gICAgcmV0dXJuIHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3Jp
cHRDb25maXJtKG1fZnJhbWUsIG1lc3NhZ2UpOworICAgIHJldHVybiBwYWdlLT5jaHJvbWUoKS5y
dW5KYXZhU2NyaXB0Q29uZmlybSgqbV9mcmFtZSwgbWVzc2FnZSk7CiB9CiAKIFN0cmluZyBET01X
aW5kb3c6OnByb21wdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVs
dFZhbHVlKQpAQCAtMTE5MCw3ICsxMTc0LDcgQEAgU3RyaW5nIERPTVdpbmRvdzo6cHJvbXB0KGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUpCiAjZW5kaWYK
IAogICAgIFN0cmluZyByZXR1cm5WYWx1ZTsKLSAgICBpZiAocGFnZS0+Y2hyb21lKCkucnVuSmF2
YVNjcmlwdFByb21wdChtX2ZyYW1lLCBtZXNzYWdlLCBkZWZhdWx0VmFsdWUsIHJldHVyblZhbHVl
KSkKKyAgICBpZiAocGFnZS0+Y2hyb21lKCkucnVuSmF2YVNjcmlwdFByb21wdCgqbV9mcmFtZSwg
bWVzc2FnZSwgZGVmYXVsdFZhbHVlLCByZXR1cm5WYWx1ZSkpCiAgICAgICAgIHJldHVybiByZXR1
cm5WYWx1ZTsKIAogICAgIHJldHVybiBTdHJpbmcoKTsKQEAgLTEzNjgsNyArMTM1Miw3IEBAIHZv
aWQgRE9NV2luZG93OjpzZXRTdGF0dXMoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIEFTU0VSVChtX2ZyYW1lLT5kb2N1bWVudCgpKTsgLy8gQ2xpZW50IGNhbGxz
IHNob3VsZG4ndCBiZSBtYWRlIHdoZW4gdGhlIGZyYW1lIGlzIGluIGluY29uc2lzdGVudCBzdGF0
ZS4KLSAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJUZXh0KG1fZnJhbWUsIG1fc3RhdHVz
KTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJUZXh0KCptX2ZyYW1lLCBtX3N0YXR1
cyk7CiB9IAogICAgIAogdm9pZCBET01XaW5kb3c6OnNldERlZmF1bHRTdGF0dXMoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpIApAQCAtMTM4Myw3ICsxMzY3LDcgQEAgdm9pZCBET01XaW5kb3c6OnNldERl
ZmF1bHRTdGF0dXMoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgICAgIHJldHVybjsKIAogICAg
IEFTU0VSVChtX2ZyYW1lLT5kb2N1bWVudCgpKTsgLy8gQ2xpZW50IGNhbGxzIHNob3VsZG4ndCBi
ZSBtYWRlIHdoZW4gdGhlIGZyYW1lIGlzIGluIGluY29uc2lzdGVudCBzdGF0ZS4KLSAgICBwYWdl
LT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJUZXh0KG1fZnJhbWUsIG1fZGVmYXVsdFN0YXR1cyk7Cisg
ICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dCgqbV9mcmFtZSwgbV9kZWZhdWx0U3Rh
dHVzKTsKIH0KIAogRE9NV2luZG93KiBET01XaW5kb3c6OnNlbGYoKSBjb25zdApAQCAtMTQzMiw4
ICsxNDE2LDcgQEAgRE9NV2luZG93KiBET01XaW5kb3c6OnRvcCgpIGNvbnN0CiAKIERvY3VtZW50
KiBET01XaW5kb3c6OmRvY3VtZW50KCkgY29uc3QKIHsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBjb250ZXh0ID0gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKTsKLSAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOworICAg
IHJldHVybiBkb3duY2FzdDxEb2N1bWVudD4oQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiB9CiAKIFJlZlB0cjxTdHlsZU1lZGlhPiBET01XaW5k
b3c6OnN0eWxlTWVkaWEoKSBjb25zdApAQCAtMTYxOCw4ICsxNjAxLDcgQEAgdm9pZCBET01XaW5k
b3c6Om1vdmVCeShmbG9hdCB4LCBmbG9hdCB5KSBjb25zdAogICAgIEZsb2F0UmVjdCBmciA9IHBh
Z2UtPmNocm9tZSgpLndpbmRvd1JlY3QoKTsKICAgICBGbG9hdFJlY3QgdXBkYXRlID0gZnI7CiAg
ICAgdXBkYXRlLm1vdmUoeCwgeSk7Ci0gICAgLy8gU2VjdXJpdHkgY2hlY2sgKHRoZSBzcGVjIHRh
bGtzIGFib3V0IFVuaXZlcnNhbEJyb3dzZXJXcml0ZSB0byBkaXNhYmxlIHRoaXMgY2hlY2suLi4p
Ci0gICAgcGFnZS0+Y2hyb21lKCkuc2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KHBhZ2Us
IHVwZGF0ZSkpOworICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93
UmVjdCgqcGFnZSwgdXBkYXRlKSk7CiB9CiAKIHZvaWQgRE9NV2luZG93Ojptb3ZlVG8oZmxvYXQg
eCwgZmxvYXQgeSkgY29uc3QKQEAgLTE2MzMsOCArMTYxNSw3IEBAIHZvaWQgRE9NV2luZG93Ojpt
b3ZlVG8oZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKICAgICBmci5zZXRMb2NhdGlvbihzci5sb2Nh
dGlvbigpKTsKICAgICBGbG9hdFJlY3QgdXBkYXRlID0gZnI7CiAgICAgdXBkYXRlLm1vdmUoeCwg
eSk7Ci0gICAgLy8gU2VjdXJpdHkgY2hlY2sgKHRoZSBzcGVjIHRhbGtzIGFib3V0IFVuaXZlcnNh
bEJyb3dzZXJXcml0ZSB0byBkaXNhYmxlIHRoaXMgY2hlY2suLi4pCi0gICAgcGFnZS0+Y2hyb21l
KCkuc2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIHVwZGF0ZSkpOworICAgIHBh
Z2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdCgqcGFnZSwgdXBkYXRl
KSk7CiB9CiAKIHZvaWQgRE9NV2luZG93OjpyZXNpemVCeShmbG9hdCB4LCBmbG9hdCB5KSBjb25z
dApAQCAtMTY0Niw3ICsxNjI3LDcgQEAgdm9pZCBET01XaW5kb3c6OnJlc2l6ZUJ5KGZsb2F0IHgs
IGZsb2F0IHkpIGNvbnN0CiAgICAgRmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hyb21lKCkud2luZG93
UmVjdCgpOwogICAgIEZsb2F0U2l6ZSBkZXN0ID0gZnIuc2l6ZSgpICsgRmxvYXRTaXplKHgsIHkp
OwogICAgIEZsb2F0UmVjdCB1cGRhdGUoZnIubG9jYXRpb24oKSwgZGVzdCk7Ci0gICAgcGFnZS0+
Y2hyb21lKCkuc2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIHVwZGF0ZSkpOwor
ICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdCgqcGFnZSwg
dXBkYXRlKSk7CiB9CiAKIHZvaWQgRE9NV2luZG93OjpyZXNpemVUbyhmbG9hdCB3aWR0aCwgZmxv
YXQgaGVpZ2h0KSBjb25zdApAQCAtMTY1OCw3ICsxNjM5LDcgQEAgdm9pZCBET01XaW5kb3c6OnJl
c2l6ZVRvKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpIGNvbnN0CiAgICAgRmxvYXRSZWN0IGZy
ID0gcGFnZS0+Y2hyb21lKCkud2luZG93UmVjdCgpOwogICAgIEZsb2F0U2l6ZSBkZXN0ID0gRmxv
YXRTaXplKHdpZHRoLCBoZWlnaHQpOwogICAgIEZsb2F0UmVjdCB1cGRhdGUoZnIubG9jYXRpb24o
KSwgZGVzdCk7Ci0gICAgcGFnZS0+Y2hyb21lKCkuc2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dS
ZWN0KHBhZ2UsIHVwZGF0ZSkpOworICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRq
dXN0V2luZG93UmVjdCgqcGFnZSwgdXBkYXRlKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPGludD4gRE9N
V2luZG93OjpzZXRUaW1lb3V0KHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlv
biwgaW50IHRpbWVvdXQpCkBAIC0xNjgxLDcgKzE2NjIsNyBAQCB2b2lkIERPTVdpbmRvdzo6Y2xl
YXJUaW1lb3V0KGludCB0aW1lb3V0SWQpCiAKICAgICAgICAgICAgICAgICBpZiAoIVdlYlRocmVh
ZENvdW50T2ZPYnNlcnZlZENvbnRlbnRNb2RpZmllcnMoKSkgewogICAgICAgICAgICAgICAgICAg
ICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgICAgICAgICAgICAg
ICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLm9ic2VydmVkQ29udGVudENoYW5nZShtX2ZyYW1l
KTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLm9ic2Vy
dmVkQ29udGVudENoYW5nZSgqbV9mcmFtZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgfQogICAgICAgICB9CkBAIC0xODQxLDcgKzE4MjIsNyBAQCB2b2lkIERPTVdpbmRvdzo6aW5j
cmVtZW50U2Nyb2xsRXZlbnRMaXN0ZW5lcnNDb3VudCgpCiAgICAgaWYgKCsrbV9zY3JvbGxFdmVu
dExpc3RlbmVyQ291bnQgPT0gMSAmJiBkb2N1bWVudCA9PSAmZG9jdW1lbnQtPnRvcERvY3VtZW50
KCkpIHsKICAgICAgICAgRnJhbWUqIGZyYW1lID0gdGhpcy0+ZnJhbWUoKTsKICAgICAgICAgaWYg
KGZyYW1lICYmIGZyYW1lLT5wYWdlKCkpCi0gICAgICAgICAgICBmcmFtZS0+cGFnZSgpLT5jaHJv
bWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoZnJhbWUsIHRydWUpOwor
ICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3Jv
bGxOb3RpZmljYXRpb25zKCpmcmFtZSwgdHJ1ZSk7CiAgICAgfQogfQogCkBAIC0xODUxLDcgKzE4
MzIsNyBAQCB2b2lkIERPTVdpbmRvdzo6ZGVjcmVtZW50U2Nyb2xsRXZlbnRMaXN0ZW5lcnNDb3Vu
dCgpCiAgICAgaWYgKCEtLW1fc2Nyb2xsRXZlbnRMaXN0ZW5lckNvdW50ICYmIGRvY3VtZW50ID09
ICZkb2N1bWVudC0+dG9wRG9jdW1lbnQoKSkgewogICAgICAgICBGcmFtZSogZnJhbWUgPSB0aGlz
LT5mcmFtZSgpOwogICAgICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSAmJiBkb2N1bWVu
dC0+cGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCi0gICAgICAg
ICAgICBmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlm
aWNhdGlvbnMoZnJhbWUsIGZhbHNlKTsKKyAgICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmNocm9t
ZSgpLmNsaWVudCgpLnNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucygqZnJhbWUsIGZhbHNlKTsK
ICAgICB9CiB9CiAKQEAgLTIyODcsOCArMjI2OCw3IEBAIHZvaWQgRE9NV2luZG93OjpzaG93TW9k
YWxEaWFsb2coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGlhbG9nRmVh
CiB7CiAgICAgaWYgKCFpc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKICAgICAgICAgcmV0
dXJuOwotICAgIEZyYW1lKiBhY3RpdmVGcmFtZSA9IGFjdGl2ZVdpbmRvdy5mcmFtZSgpOwotICAg
IGlmICghYWN0aXZlRnJhbWUpCisgICAgaWYgKCFhY3RpdmVXaW5kb3cuZnJhbWUoKSkKICAgICAg
ICAgcmV0dXJuOwogICAgIEZyYW1lKiBmaXJzdEZyYW1lID0gZmlyc3RXaW5kb3cuZnJhbWUoKTsK
ICAgICBpZiAoIWZpcnN0RnJhbWUpCkBAIC0yMzAzLDcgKzIyODMsNyBAQCB2b2lkIERPTVdpbmRv
dzo6c2hvd01vZGFsRGlhbG9nKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcm
IGRpYWxvZ0ZlYQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFjYW5TaG93TW9k
YWxEaWFsb2cobV9mcmFtZSkgfHwgIWZpcnN0V2luZG93LmFsbG93UG9wVXAoKSkKKyAgICBpZiAo
IWNhblNob3dNb2RhbERpYWxvZygqbV9mcmFtZSkgfHwgIWZpcnN0V2luZG93LmFsbG93UG9wVXAo
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPEZyYW1lPiBkaWFsb2dGcmFtZSA9IGNy
ZWF0ZVdpbmRvdyh1cmxTdHJpbmcsIGVtcHR5QXRvbSwgcGFyc2VEaWFsb2dGZWF0dXJlcyhkaWFs
b2dGZWF0dXJlc1N0cmluZywgc2NyZWVuQXZhaWxhYmxlUmVjdChtX2ZyYW1lLT52aWV3KCkpKSwg
YWN0aXZlV2luZG93LCAqZmlyc3RGcmFtZSwgKm1fZnJhbWUsIFdURk1vdmUocHJlcGFyZURpYWxv
Z0Z1bmN0aW9uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCBjNWU5MDI4OTg4NmQ3MmFh
ODg2YzQ5YWRiOTQ3OTVkMzc3MDU5YjMxLi41ZGU5MjczNGY1OTIwOTcwNjBjYmM2MTA1NTcyODE1
MTNiNzQ4ZWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlv
biBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTEwNyw3
ICsxMDcsNyBAQCBjbGFzcyBET01XaW5kb3cgZmluYWwKICAgICAsIHB1YmxpYyBCYXNlNjRVdGls
aXRpZXMKICAgICAsIHB1YmxpYyBTdXBwbGVtZW50YWJsZTxET01XaW5kb3c+IHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgUmVmPERPTVdpbmRvdz4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBET01XaW5kb3coZG9jdW1lbnQpKTsgfQorICAgIHN0YXRpYyBS
ZWY8RE9NV2luZG93PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KSB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IERPTVdpbmRvdyhkb2N1bWVudCkpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVh
bCB+RE9NV2luZG93KCk7CiAKICAgICAvLyBJbiBzb21lIHJhcmUgY2FzZXMsIHdlJ2xsIHJldXNl
IGEgRE9NV2luZG93IGZvciBhIG5ldyBEb2N1bWVudC4gRm9yIGV4YW1wbGUsCkBAIC0xMTcsMTUg
KzExNywxMCBAQCBwdWJsaWM6CiAgICAgLy8gd29uJ3QgYmUgYmxvd24gYXdheSB3aGVuIHRoZSBu
ZXR3b3JrIGxvYWQgY29tbWl0cy4gVG8gbWFrZSB0aGF0IGhhcHBlbiwgd2UKICAgICAvLyAic2Vj
dXJlbHkgdHJhbnNpdGlvbiIgdGhlIGV4aXN0aW5nIERPTVdpbmRvdyB0byB0aGUgRG9jdW1lbnQg
dGhhdCByZXN1bHRzIGZyb20KICAgICAvLyB0aGUgbmV0d29yayBsb2FkLiBTZWUgYWxzbyBTZWN1
cml0eUNvbnRleHQ6OmlzU2VjdXJlVHJhbnNpdGlvblRvLgotICAgIHZvaWQgZGlkU2VjdXJlVHJh
bnNpdGlvblRvKERvY3VtZW50Kik7CisgICAgdm9pZCBkaWRTZWN1cmVUcmFuc2l0aW9uVG8oRG9j
dW1lbnQmKTsKIAotICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0SW50ZXJmYWNl
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRE9NV2luZG93RXZlbnRUYXJnZXRJbnRlcmZhY2VU
eXBlOyB9Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KLQotICAgIERPTVdpbmRvdyogdG9ET01XaW5kb3co
KSBvdmVycmlkZTsKLQotICAgIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0
eSopOwotICAgIHZvaWQgdW5yZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5Kik7Cisg
ICAgdm9pZCByZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5Jik7CisgICAgdm9pZCB1
bnJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkmKTsKIAogICAgIHZvaWQgcmVzZXRV
bmxlc3NTdXNwZW5kZWRGb3JEb2N1bWVudFN1c3BlbnNpb24oKTsKICAgICB2b2lkIHN1c3BlbmRG
b3JEb2N1bWVudFN1c3BlbnNpb24oKTsKQEAgLTEzOCwxMSArMTMzLDExIEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBkaXNwYXRjaEFsbFBlbmRpbmdCZWZvcmVVbmxv
YWRFdmVudHMoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgdm9pZCBkaXNwYXRjaEFsbFBl
bmRpbmdVbmxvYWRFdmVudHMoKTsKIAotICAgIHN0YXRpYyBGbG9hdFJlY3QgYWRqdXN0V2luZG93
UmVjdChQYWdlKiwgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcyk7CisgICAgc3RhdGlj
IEZsb2F0UmVjdCBhZGp1c3RXaW5kb3dSZWN0KFBhZ2UmLCBjb25zdCBGbG9hdFJlY3QmIHBlbmRp
bmdDaGFuZ2VzKTsKIAogICAgIGJvb2wgYWxsb3dQb3BVcCgpOyAvLyBDYWxsIG9uIGZpcnN0IHdp
bmRvdywgbm90IHRhcmdldCB3aW5kb3cuCi0gICAgc3RhdGljIGJvb2wgYWxsb3dQb3BVcChGcmFt
ZSogZmlyc3RGcmFtZSk7Ci0gICAgc3RhdGljIGJvb2wgY2FuU2hvd01vZGFsRGlhbG9nKGNvbnN0
IEZyYW1lKik7CisgICAgc3RhdGljIGJvb2wgYWxsb3dQb3BVcChGcmFtZSYgZmlyc3RGcmFtZSk7
CisgICAgc3RhdGljIGJvb2wgY2FuU2hvd01vZGFsRGlhbG9nKGNvbnN0IEZyYW1lJik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDYW5TaG93TW9kYWxEaWFsb2dPdmVycmlkZShib29sKTsK
IAogICAgIFNjcmVlbiogc2NyZWVuKCkgY29uc3Q7CkBAIC0yNDUsNyArMjQwLDYgQEAgcHVibGlj
OgogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcG9zdE1lc3NhZ2UoSlNDOjpFeGVjU3RhdGUmLCBE
T01XaW5kb3cmIGNhbGxlcldpbmRvdywgSlNDOjpKU1ZhbHVlIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgdGFyZ2V0T3JpZ2luLCBWZWN0b3I8SlNDOjpTdHJvbmc8SlNDOjpKU09iamVjdD4+JiYpOwog
ICAgIHZvaWQgcG9zdE1lc3NhZ2VUaW1lckZpcmVkKFBvc3RNZXNzYWdlVGltZXImKTsKLSAgICB2
b2lkIGRpc3BhdGNoTWVzc2FnZUV2ZW50V2l0aE9yaWdpbkNoZWNrKFNlY3VyaXR5T3JpZ2luKiBp
bnRlbmRlZFRhcmdldE9yaWdpbiwgRXZlbnQmLCBQYXNzUmVmUHRyPEluc3BlY3Rvcjo6U2NyaXB0
Q2FsbFN0YWNrPik7CiAKICAgICB2b2lkIGxhbmd1YWdlc0NoYW5nZWQoKTsKIApAQCAtMjcyLDkg
KzI2Niw5IEBAIHB1YmxpYzoKIAogICAgIC8vIEV2ZW50cwogICAgIC8vIEV2ZW50VGFyZ2V0IEFQ
SQotICAgIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYsIGNvbnN0IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zJikg
b3ZlcnJpZGU7Ci0gICAgYm9vbCByZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgY29uc3QgTGlzdGVuZXJPcHRpb25zJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCByZW1vdmVBbGxFdmVudExpc3RlbmVycygpIG92ZXJyaWRlOworICAg
IGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVm
PEV2ZW50TGlzdGVuZXI+JiYsIGNvbnN0IEFkZEV2ZW50TGlzdGVuZXJPcHRpb25zJikgZmluYWw7
CisgICAgYm9vbCByZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRU
eXBlLCBFdmVudExpc3RlbmVyJiwgY29uc3QgTGlzdGVuZXJPcHRpb25zJikgZmluYWw7CisgICAg
dm9pZCByZW1vdmVBbGxFdmVudExpc3RlbmVycygpIGZpbmFsOwogCiAgICAgdXNpbmcgRXZlbnRU
YXJnZXQ6OmRpc3BhdGNoRXZlbnQ7CiAgICAgYm9vbCBkaXNwYXRjaEV2ZW50KEV2ZW50JiwgRXZl
bnRUYXJnZXQqKTsKQEAgLTI4Niw4ICsyODAsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZpbmlz
aGVkTG9hZGluZygpOwogCi0gICAgdXNpbmcgUmVmQ291bnRlZDxET01XaW5kb3c+OjpyZWY7Ci0g
ICAgdXNpbmcgUmVmQ291bnRlZDxET01XaW5kb3c+OjpkZXJlZjsKKyAgICB1c2luZyBSZWZDb3Vu
dGVkOjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVyZWY7CiAKICAgICAvLyBIVE1MIDUg
a2V5L3ZhbHVlIHN0b3JhZ2UKICAgICBFeGNlcHRpb25PcjxTdG9yYWdlKj4gc2Vzc2lvblN0b3Jh
Z2UoKSBjb25zdDsKQEAgLTMxMyw2ICszMDcsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQl9U
SU1JTkcpCiAgICAgUGVyZm9ybWFuY2UqIHBlcmZvcm1hbmNlKCkgY29uc3Q7CiAjZW5kaWYKKwog
ICAgIGRvdWJsZSBub3dUaW1lc3RhbXAoKSBjb25zdDsKIAogI2lmIFBMQVRGT1JNKElPUykKQEAg
LTM0NywxNiArMzQyLDIxIEBAIHB1YmxpYzoKICAgICBXZWFrUHRyPERPTVdpbmRvdz4gY3JlYXRl
V2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAK
IHByaXZhdGU6Ci0gICAgZXhwbGljaXQgRE9NV2luZG93KERvY3VtZW50Kik7CisgICAgZXhwbGlj
aXQgRE9NV2luZG93KERvY3VtZW50Jik7CisKKyAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVu
dFRhcmdldEludGVyZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIERPTVdpbmRvd0V2ZW50VGFy
Z2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CisKKyAgICBET01XaW5kb3cqIHRv
RE9NV2luZG93KCkgZmluYWw7CiAKICAgICBQYWdlKiBwYWdlKCk7CiAgICAgYm9vbCBhbGxvd2Vk
VG9DaGFuZ2VXaW5kb3dHZW9tZXRyeSgpIGNvbnN0OwogCi0gICAgdm9pZCBmcmFtZURlc3Ryb3ll
ZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbERldGFjaFBhZ2UoKSBvdmVycmlkZTsKKyAgICB2
b2lkIGZyYW1lRGVzdHJveWVkKCkgZmluYWw7CisgICAgdm9pZCB3aWxsRGV0YWNoUGFnZSgpIGZp
bmFsOwogCi0gICAgdm9pZCByZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgcmVmKCk7IH0KLSAg
ICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IGRlcmVmKCk7IH0KKyAgICB2b2lk
IHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQorICAgIHZvaWQgZGVyZWZFdmVudFRh
cmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQogCiAgICAgc3RhdGljIFJlZlB0cjxGcmFtZT4gY3Jl
YXRlV2luZG93KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBBdG9taWNTdHJpbmcmIGZy
YW1lTmFtZSwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywg
RnJhbWUmIGZpcnN0RnJhbWUsIEZyYW1lJiBvcGVuZXJGcmFtZSwgc3RkOjpmdW5jdGlvbjx2b2lk
KERPTVdpbmRvdyYpPiBwcmVwYXJlRGlhbG9nRnVuY3Rpb24gPSBudWxscHRyKTsKICAgICBib29s
IGlzSW5zZWN1cmVTY3JpcHRBY2Nlc3MoRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIGNvbnN0IFN0
cmluZyYgdXJsU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93UHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5j
cHAKaW5kZXggYTM3NzBlOGU3MDBjNjU4MjYyNmM2NGI5ODVmZGVjNmZjMDdmMzNmNS4uNTUwOTZi
NjRhYWE3ZjI0OTMxYTJjNzE5YTdlNWM2MDllZDUwZjg1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3dQcm9wZXJ0eS5jcHAKQEAgLTQyLDE0ICs0MiwxNCBAQCBET01XaW5kb3dQcm9w
ZXJ0eTo6RE9NV2luZG93UHJvcGVydHkoRnJhbWUqIGZyYW1lKQogICAgIC8vIFdlIHNob3VsZCBm
aXggdGhhdC4gIDxyZGFyOi8vcHJvYmxlbS8xMTU2NzEzMj4KICAgICBpZiAobV9mcmFtZSkgewog
ICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3cgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT5kb21X
aW5kb3coKTsKLSAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93LT5yZWdpc3RlclByb3BlcnR5
KHRoaXMpOworICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ctPnJlZ2lzdGVyUHJvcGVydHko
KnRoaXMpOwogICAgIH0KIH0KIAogRE9NV2luZG93UHJvcGVydHk6On5ET01XaW5kb3dQcm9wZXJ0
eSgpCiB7CiAgICAgaWYgKG1fYXNzb2NpYXRlZERPTVdpbmRvdykKLSAgICAgICAgbV9hc3NvY2lh
dGVkRE9NV2luZG93LT51bnJlZ2lzdGVyUHJvcGVydHkodGhpcyk7CisgICAgICAgIG1fYXNzb2Np
YXRlZERPTVdpbmRvdy0+dW5yZWdpc3RlclByb3BlcnR5KCp0aGlzKTsKIAogICAgIG1fYXNzb2Np
YXRlZERPTVdpbmRvdyA9IG51bGxwdHI7CiAgICAgbV9mcmFtZSA9IG51bGxwdHI7CkBAIC04Niw3
ICs4Niw3IEBAIHZvaWQgRE9NV2luZG93UHJvcGVydHk6OndpbGxEZXN0cm95R2xvYmFsT2JqZWN0
SW5DYWNoZWRGcmFtZSgpCiAgICAgLy8gRE9NV2luZG93UHJvcGVydHkgbGlmZXRpbWUgaXNuJ3Qg
dGllZCBkaXJlY3RseSB0byB0aGUgRE9NV2luZG93IGl0c2VsZiBzbyBpdCBpcyBpbXBvcnRhbnQg
dGhhdCBpdCB1bnJlZ2lzdGVyCiAgICAgLy8gaXRzZWxmIGZyb20gYW55IERPTVdpbmRvdyBpdCBp
cyBhc3NvY2lhdGVkIHdpdGggaWYgdGhhdCBET01XaW5kb3cgaXMgZ29pbmcgYXdheS4KICAgICBp
ZiAobV9hc3NvY2lhdGVkRE9NV2luZG93KQotICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ct
PnVucmVnaXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93
LT51bnJlZ2lzdGVyUHJvcGVydHkoKnRoaXMpOwogICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdyA9
IG51bGxwdHI7CiAgICAgbV9mcmFtZSA9IG51bGxwdHI7CiB9CkBAIC0xMDAsNyArMTAwLDcgQEAg
dm9pZCBET01XaW5kb3dQcm9wZXJ0eTo6d2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkZyYW1lKCkK
ICAgICAvLyBET01XaW5kb3dQcm9wZXJ0eSBsaWZldGltZSBpc24ndCB0aWVkIGRpcmVjdGx5IHRv
IHRoZSBET01XaW5kb3cgaXRzZWxmIHNvIGl0IGlzIGltcG9ydGFudCB0aGF0IGl0IHVucmVnaXN0
ZXIKICAgICAvLyBpdHNlbGYgZnJvbSBhbnkgRE9NV2luZG93IGl0IGlzIGFzc29jaWF0ZWQgd2l0
aCBpZiB0aGF0IERPTVdpbmRvdyBpcyBnb2luZyBhd2F5LgogICAgIGlmIChtX2Fzc29jaWF0ZWRE
T01XaW5kb3cpCi0gICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+dW5yZWdpc3RlclByb3Bl
cnR5KHRoaXMpOworICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ctPnVucmVnaXN0ZXJQcm9w
ZXJ0eSgqdGhpcyk7CiAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93ID0gbnVsbHB0cjsKICAgICBt
X2ZyYW1lID0gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVi
dWdQYWdlT3ZlcmxheXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5
cy5jcHAKaW5kZXggY2FhMDdhNDdiZWU4ZjE5Y2VlMzQ0ZWZhNTc2ZjUwZWQ0NTE0NzNlYS4uYWYw
ODAyYmM4YmU4MDM4MWQxMzMwNTNmNzc4ZmMzYTc2MzY0M2U0YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgRGVidWdQYWdlT3Zl
cmxheXMqIERlYnVnUGFnZU92ZXJsYXlzOjpzaGFyZWREZWJ1Z092ZXJsYXlzOwogCiBjbGFzcyBS
ZWdpb25PdmVybGF5IDogcHVibGljIFJlZkNvdW50ZWQ8UmVnaW9uT3ZlcmxheT4sIHB1YmxpYyBQ
YWdlT3ZlcmxheTo6Q2xpZW50IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZWdp
b25PdmVybGF5PiBjcmVhdGUoTWFpbkZyYW1lJiwgRGVidWdQYWdlT3ZlcmxheXM6OlJlZ2lvblR5
cGUpOworICAgIHN0YXRpYyBSZWZQdHI8UmVnaW9uT3ZlcmxheT4gY3JlYXRlKE1haW5GcmFtZSYs
IERlYnVnUGFnZU92ZXJsYXlzOjpSZWdpb25UeXBlKTsKICAgICB2aXJ0dWFsIH5SZWdpb25PdmVy
bGF5KCk7CiAKICAgICB2b2lkIHJlY29tcHV0ZVJlZ2lvbigpOwpAQCAtMTQzLDcgKzE0Myw3IEBA
IGJvb2wgTm9uRmFzdFNjcm9sbGFibGVSZWdpb25PdmVybGF5Ojp1cGRhdGVSZWdpb24oKQogICAg
IHJldHVybiByZWdpb25DaGFuZ2VkOwogfQogCi1QYXNzUmVmUHRyPFJlZ2lvbk92ZXJsYXk+IFJl
Z2lvbk92ZXJsYXk6OmNyZWF0ZShNYWluRnJhbWUmIGZyYW1lLCBEZWJ1Z1BhZ2VPdmVybGF5czo6
UmVnaW9uVHlwZSByZWdpb25UeXBlKQorUmVmUHRyPFJlZ2lvbk92ZXJsYXk+IFJlZ2lvbk92ZXJs
YXk6OmNyZWF0ZShNYWluRnJhbWUmIGZyYW1lLCBEZWJ1Z1BhZ2VPdmVybGF5czo6UmVnaW9uVHlw
ZSByZWdpb25UeXBlKQogewogICAgIHN3aXRjaCAocmVnaW9uVHlwZSkgewogICAgIGNhc2UgRGVi
dWdQYWdlT3ZlcmxheXM6OlJlZ2lvblR5cGU6OldoZWVsRXZlbnRIYW5kbGVyczoKQEAgLTE2NSw3
ICsxNjUsNyBAQCBSZWdpb25PdmVybGF5OjpSZWdpb25PdmVybGF5KE1haW5GcmFtZSYgZnJhbWUs
IENvbG9yIHJlZ2lvbkNvbG9yKQogUmVnaW9uT3ZlcmxheTo6flJlZ2lvbk92ZXJsYXkoKQogewog
ICAgIGlmIChtX292ZXJsYXkpCi0gICAgICAgIG1fZnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVy
KCkudW5pbnN0YWxsUGFnZU92ZXJsYXkobV9vdmVybGF5LmdldCgpLCBQYWdlT3ZlcmxheTo6RmFk
ZU1vZGU6OkRvTm90RmFkZSk7CisgICAgICAgIG1fZnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVy
KCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fb3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2Rl
OjpEb05vdEZhZGUpOwogfQogCiB2b2lkIFJlZ2lvbk92ZXJsYXk6OndpbGxNb3ZlVG9QYWdlKFBh
Z2VPdmVybGF5JiwgUGFnZSogcGFnZSkKQEAgLTI0OCw3ICsyNDgsNyBAQCBSZWdpb25PdmVybGF5
JiBEZWJ1Z1BhZ2VPdmVybGF5czo6ZW5zdXJlUmVnaW9uT3ZlcmxheUZvckZyYW1lKE1haW5GcmFt
ZSYgZnJhbWUsCiB2b2lkIERlYnVnUGFnZU92ZXJsYXlzOjpzaG93UmVnaW9uT3ZlcmxheShNYWlu
RnJhbWUmIGZyYW1lLCBSZWdpb25UeXBlIHJlZ2lvblR5cGUpCiB7CiAgICAgUmVnaW9uT3Zlcmxh
eSYgdmlzdWFsaXplciA9IGVuc3VyZVJlZ2lvbk92ZXJsYXlGb3JGcmFtZShmcmFtZSwgcmVnaW9u
VHlwZSk7Ci0gICAgZnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVy
bGF5KCZ2aXN1YWxpemVyLm92ZXJsYXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZh
ZGUpOworICAgIGZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3Zlcmxh
eSh2aXN1YWxpemVyLm92ZXJsYXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUp
OwogfQogCiB2b2lkIERlYnVnUGFnZU92ZXJsYXlzOjpoaWRlUmVnaW9uT3ZlcmxheShNYWluRnJh
bWUmIGZyYW1lLCBSZWdpb25UeXBlIHJlZ2lvblR5cGUpCkBAIC0yNTcsNyArMjU3LDcgQEAgdm9p
ZCBEZWJ1Z1BhZ2VPdmVybGF5czo6aGlkZVJlZ2lvbk92ZXJsYXkoTWFpbkZyYW1lJiBmcmFtZSwg
UmVnaW9uVHlwZSByZWdpb25UeXAKICAgICBpZiAoaXQgIT0gbV9mcmFtZVJlZ2lvbk92ZXJsYXlz
LmVuZCgpKSB7CiAgICAgICAgIGF1dG8mIHZpc3VhbGl6ZXJzID0gaXQtPnZhbHVlOwogICAgICAg
ICBpZiAoUmVnaW9uT3ZlcmxheSogdmlzdWFsaXplciA9IHZpc3VhbGl6ZXJzW2luZGV4T2YocmVn
aW9uVHlwZSldLmdldCgpKSB7Ci0gICAgICAgICAgICBmcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xs
ZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgmdmlzdWFsaXplci0+b3ZlcmxheSgpLCBQYWdlT3Zl
cmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgICAgICAgICBmcmFtZS5wYWdlT3Zlcmxh
eUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSh2aXN1YWxpemVyLT5vdmVybGF5KCks
IFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKICAgICAgICAgICAgIHZpc3VhbGl6
ZXJzW2luZGV4T2YocmVnaW9uVHlwZSldID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggZjIzMThhMDNjMTRiZDFkZjgy
MzIwY2MwN2M3ODk5YjI5NDI3YzY0Ni4uZGY2Y2ZlMDRjMjdhM2Y5ODQwMjIxOWE2NmM4ODJiM2Q0
M2I2ZmU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTE5Nyw3
ICsxOTcsNyBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpkcmFnRXhpdGVkKGNvbnN0IERyYWdEYXRh
JiBkcmFnRGF0YSkKICNlbmRpZgogICAgICAgICBSZWZQdHI8RGF0YVRyYW5zZmVyPiBkYXRhVHJh
bnNmZXIgPSBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdBbmREcm9wKHBvbGljeSwgZHJhZ0Rh
dGEpOwogICAgICAgICBkYXRhVHJhbnNmZXItPnNldFNvdXJjZU9wZXJhdGlvbihkcmFnRGF0YS5k
cmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2soKSk7Ci0gICAgICAgIG1fcGFnZS5tYWluRnJhbWUo
KS5ldmVudEhhbmRsZXIoKS5jYW5jZWxEcmFnQW5kRHJvcChjcmVhdGVNb3VzZUV2ZW50KGRyYWdE
YXRhKSwgZGF0YVRyYW5zZmVyLmdldCgpKTsKKyAgICAgICAgbV9wYWdlLm1haW5GcmFtZSgpLmV2
ZW50SGFuZGxlcigpLmNhbmNlbERyYWdBbmREcm9wKGNyZWF0ZU1vdXNlRXZlbnQoZHJhZ0RhdGEp
LCAqZGF0YVRyYW5zZmVyKTsKICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRBY2Nlc3NQb2xpY3ko
RGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1iKTsgLy8gSW52YWxpZGF0ZSBkYXRhVHJhbnNm
ZXIgaGVyZSBmb3Igc2VjdXJpdHkuCiAgICAgfQogICAgIG1vdXNlTW92ZWRJbnRvRG9jdW1lbnQo
bnVsbHB0cik7CkBAIC0yMjcsNyArMjI3LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6cGVyZm9y
bURyYWdPcGVyYXRpb24oY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogICAgICAgICAgICAgLy8g
U2VuZGluZyBhbiBldmVudCBjYW4gcmVzdWx0IGluIHRoZSBkZXN0cnVjdGlvbiBvZiB0aGUgdmll
dyBhbmQgcGFydC4KICAgICAgICAgICAgIFJlZlB0cjxEYXRhVHJhbnNmZXI+IGRhdGFUcmFuc2Zl
ciA9IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoRGF0YVRyYW5zZmVyQWNjZXNz
UG9saWN5OjpSZWFkYWJsZSwgZHJhZ0RhdGEpOwogICAgICAgICAgICAgZGF0YVRyYW5zZmVyLT5z
ZXRTb3VyY2VPcGVyYXRpb24oZHJhZ0RhdGEuZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrKCkp
OwotICAgICAgICAgICAgcHJldmVudGVkRGVmYXVsdCA9IG1haW5GcmFtZS0+ZXZlbnRIYW5kbGVy
KCkucGVyZm9ybURyYWdBbmREcm9wKGNyZWF0ZU1vdXNlRXZlbnQoZHJhZ0RhdGEpLCBkYXRhVHJh
bnNmZXIuZ2V0KCkpOworICAgICAgICAgICAgcHJldmVudGVkRGVmYXVsdCA9IG1haW5GcmFtZS0+
ZXZlbnRIYW5kbGVyKCkucGVyZm9ybURyYWdBbmREcm9wKGNyZWF0ZU1vdXNlRXZlbnQoZHJhZ0Rh
dGEpLCAqZGF0YVRyYW5zZmVyKTsKICAgICAgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0QWNjZXNz
UG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7IC8vIEludmFsaWRhdGUgZGF0
YVRyYW5zZmVyIGhlcmUgZm9yIHNlY3VyaXR5LgogICAgICAgICB9CiAgICAgICAgIGlmIChwcmV2
ZW50ZWREZWZhdWx0KSB7CkBAIC01NDcsNyArNTQ3LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6
Y29uY2x1ZGVFZGl0RHJhZyhjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAKICAgICBpZiAocm9v
dEVkaXRhYmxlRWxlbWVudCkgewogICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gcm9vdEVkaXRh
YmxlRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpKQotICAgICAgICAgICAgZnJhbWUtPmV2ZW50
SGFuZGxlcigpLnVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRlZChyb290RWRpdGFi
bGVFbGVtZW50LmdldCgpKTsKKyAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS51cGRh
dGVEcmFnU3RhdGVBZnRlckVkaXREcmFnSWZOZWVkZWQoKnJvb3RFZGl0YWJsZUVsZW1lbnQpOwog
ICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpAQCAtNjIxLDcgKzYyMSw3IEBAIGJvb2wgRHJhZ0Nv
bnRyb2xsZXI6OnRyeURIVE1MRHJhZyhjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEsIERyYWdPcGVy
YXRpb24mIG9wZXJhCiAgICAgZGF0YVRyYW5zZmVyLT5zZXRTb3VyY2VPcGVyYXRpb24oc3JjT3BN
YXNrKTsKIAogICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVudCA9IGNyZWF0ZU1vdXNlRXZlbnQo
ZHJhZ0RhdGEpOwotICAgIGlmICghbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS51cGRhdGVEcmFn
QW5kRHJvcChldmVudCwgZGF0YVRyYW5zZmVyLmdldCgpKSkgeworICAgIGlmICghbWFpbkZyYW1l
LT5ldmVudEhhbmRsZXIoKS51cGRhdGVEcmFnQW5kRHJvcChldmVudCwgKmRhdGFUcmFuc2Zlcikp
IHsKICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRBY2Nlc3NQb2xpY3koRGF0YVRyYW5zZmVyQWNj
ZXNzUG9saWN5OjpOdW1iKTsgLy8gSW52YWxpZGF0ZSBkYXRhVHJhbnNmZXIgaGVyZSBmb3Igc2Vj
dXJpdHkuCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKaW5kZXggOTIzZTQxNjlmNzhkMGFmZjBhY2IzM2RjNjkxYjhhOWE1ODBkMzBl
ZC4uYTRhMjZjY2Y2NWEyNWIzYTc3MzA1NGJkY2Y2Y2I5YTcyZTNmZjJjOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTA4NCwxMiArMTA4NCwxMiBAQCB2b2lkIEV2ZW50
SGFuZGxlcjo6ZGlkUGFuU2Nyb2xsU3RvcCgpCiAgICAgbV9hdXRvc2Nyb2xsQ29udHJvbGxlci0+
ZGlkUGFuU2Nyb2xsU3RvcCgpOwogfQogCi12b2lkIEV2ZW50SGFuZGxlcjo6c3RhcnRQYW5TY3Jv
bGxpbmcoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIpCit2b2lkIEV2ZW50SGFuZGxlcjo6c3RhcnRQ
YW5TY3JvbGxpbmcoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiB7CiAjaWYgIVBMQVRGT1JNKElP
UykKLSAgICBpZiAoIWlzPFJlbmRlckJveD4oKnJlbmRlcmVyKSkKKyAgICBpZiAoIWlzPFJlbmRl
ckJveD4ocmVuZGVyZXIpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9hdXRvc2Nyb2xsQ29udHJv
bGxlci0+c3RhcnRQYW5TY3JvbGxpbmcoZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlciksIGxh
c3RLbm93bk1vdXNlUG9zaXRpb24oKSk7CisgICAgbV9hdXRvc2Nyb2xsQ29udHJvbGxlci0+c3Rh
cnRQYW5TY3JvbGxpbmcoJmRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIpLCBsYXN0S25vd25N
b3VzZVBvc2l0aW9uKCkpOwogICAgIGludmFsaWRhdGVDbGljaygpOwogI2VuZGlmCiB9CkBAIC0y
MjM2LDcgKzIyMzYsNyBAQCBzdGF0aWMgYm9vbCBmaW5kRHJvcFpvbmUoTm9kZSogdGFyZ2V0LCBE
YXRhVHJhbnNmZXIqIGRhdGFUcmFuc2ZlcikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAgICAgCi1i
b29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIpCitib29sIEV2ZW50SGFuZGxl
cjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0
YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIpCiB7CiAgICAgUmVmPEZyYW1lPiBwcm90ZWN0ZWRGcmFt
ZShtX2ZyYW1lKTsKIApAQCAtMjI3NSwxNiArMjI3NSwxNiBAQCBib29sIEV2ZW50SGFuZGxlcjo6
dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRy
YW5zZgogICAgICAgICAgICAgICAgIC8vIGZvciBub3cgd2UgZG9uJ3QgY2FyZSBpZiBldmVudCBo
YW5kbGVyIGNhbmNlbHMgZGVmYXVsdCBiZWhhdmlvciwgc2luY2UgdGhlcmUgaXMgbm9uZQogICAg
ICAgICAgICAgICAgIGRpc3BhdGNoRHJhZ1NyY0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnRXZlbnQs
IGV2ZW50KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFjY2VwdCA9IGRpc3BhdGNoRHJh
Z0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnZW50ZXJFdmVudCwgKm5ld1RhcmdldCwgZXZlbnQsIGRh
dGFUcmFuc2Zlcik7CisgICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVudChldmVu
dE5hbWVzKCkuZHJhZ2VudGVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCAmZGF0YVRyYW5zZmVy
KTsKICAgICAgICAgICAgIGlmICghYWNjZXB0KQotICAgICAgICAgICAgICAgIGFjY2VwdCA9IGZp
bmREcm9wWm9uZShuZXdUYXJnZXQuZ2V0KCksIGRhdGFUcmFuc2Zlcik7CisgICAgICAgICAgICAg
ICAgYWNjZXB0ID0gZmluZERyb3Bab25lKG5ld1RhcmdldC5nZXQoKSwgJmRhdGFUcmFuc2Zlcik7
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAodGFyZ2V0SXNGcmFtZShtX2RyYWdUYXJnZXQuZ2V0
KCksIHRhcmdldEZyYW1lKSkgewogICAgICAgICAgICAgaWYgKHRhcmdldEZyYW1lKQogICAgICAg
ICAgICAgICAgIGFjY2VwdCA9IHRhcmdldEZyYW1lLT5ldmVudEhhbmRsZXIoKS51cGRhdGVEcmFn
QW5kRHJvcChldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICAgICAgfSBlbHNlIGlmIChtX2RyYWdU
YXJnZXQpCi0gICAgICAgICAgICBkaXNwYXRjaERyYWdFdmVudChldmVudE5hbWVzKCkuZHJhZ2xl
YXZlRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNmZXIpOworICAgICAgICAg
ICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50LCAqbV9kcmFn
VGFyZ2V0LCBldmVudCwgJmRhdGFUcmFuc2Zlcik7CiAKICAgICAgICAgaWYgKG5ld1RhcmdldCkg
ewogICAgICAgICAgICAgLy8gV2UgZG8gbm90IGV4cGxpY2l0bHkgY2FsbCBkaXNwYXRjaERyYWdF
dmVudCBoZXJlIGJlY2F1c2UgaXQgY291bGQgdWx0aW1hdGVseSByZXN1bHQgaW4gdGhlIGFwcGVh
cmFuY2UgdGhhdApAQCAtMjMwMiw5ICsyMzAyLDkgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0
ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2YK
ICAgICAgICAgICAgICAgICAvLyBmb3Igbm93IHdlIGRvbid0IGNhcmUgaWYgZXZlbnQgaGFuZGxl
ciBjYW5jZWxzIGRlZmF1bHQgYmVoYXZpb3IsIHNpbmNlIHRoZXJlIGlzIG5vbmUKICAgICAgICAg
ICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVudChldmVudE5hbWVzKCkuZHJhZ0V2ZW50LCBldmVu
dCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVu
dChldmVudE5hbWVzKCkuZHJhZ292ZXJFdmVudCwgKm5ld1RhcmdldCwgZXZlbnQsIGRhdGFUcmFu
c2Zlcik7CisgICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVudChldmVudE5hbWVz
KCkuZHJhZ292ZXJFdmVudCwgKm5ld1RhcmdldCwgZXZlbnQsICZkYXRhVHJhbnNmZXIpOwogICAg
ICAgICAgICAgaWYgKCFhY2NlcHQpCi0gICAgICAgICAgICAgICAgYWNjZXB0ID0gZmluZERyb3Ba
b25lKG5ld1RhcmdldC5nZXQoKSwgZGF0YVRyYW5zZmVyKTsKKyAgICAgICAgICAgICAgICBhY2Nl
cHQgPSBmaW5kRHJvcFpvbmUobmV3VGFyZ2V0LmdldCgpLCAmZGF0YVRyYW5zZmVyKTsKICAgICAg
ICAgICAgIG1fc2hvdWxkT25seUZpcmVEcmFnT3ZlckV2ZW50ID0gZmFsc2U7CiAgICAgICAgIH0K
ICAgICB9CkBAIC0yMzEyLDcgKzIzMTIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJh
Z0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZgogICAg
IHJldHVybiBhY2NlcHQ7CiB9CiAKLXZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJv
cChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmZXIqIGRhdGFUcmFu
c2ZlcikKK3ZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlcikKIHsKICAgICBS
ZWY8RnJhbWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUpOwogCkBAIC0yMzIzLDEyICsyMzIzLDEy
IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1v
dXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmCiAgICAgfSBlbHNlIGlmIChtX2RyYWdUYXJnZXQp
IHsKICAgICAgICAgaWYgKGRyYWdTdGF0ZSgpLnNvdXJjZSAmJiBkcmFnU3RhdGUoKS5zaG91bGRE
aXNwYXRjaEV2ZW50cykKICAgICAgICAgICAgIGRpc3BhdGNoRHJhZ1NyY0V2ZW50KGV2ZW50TmFt
ZXMoKS5kcmFnRXZlbnQsIGV2ZW50KTsKLSAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnRO
YW1lcygpLmRyYWdsZWF2ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgZGF0YVRyYW5zZmVy
KTsKKyAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50
LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgJmRhdGFUcmFuc2Zlcik7CiAgICAgfQogICAgIGNsZWFy
RHJhZ1N0YXRlKCk7CiB9CiAKLWJvb2wgRXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERyb3Ao
Y29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNm
ZXIpCitib29sIEV2ZW50SGFuZGxlcjo6cGVyZm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3Jt
TW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyKQogewogICAgIFJl
ZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9mcmFtZSk7CiAKQEAgLTIzMzgsNyArMjMzOCw3IEBA
IGJvb2wgRXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3Vz
ZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zCiAgICAgICAgIGlmICh0YXJnZXRGcmFtZSkKICAgICAg
ICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkucGVy
Zm9ybURyYWdBbmREcm9wKGV2ZW50LCBkYXRhVHJhbnNmZXIpOwogICAgIH0gZWxzZSBpZiAobV9k
cmFnVGFyZ2V0KQotICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gZGlzcGF0Y2hEcmFnRXZlbnQo
ZXZlbnROYW1lcygpLmRyb3BFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsIGRhdGFUcmFuc2Zl
cik7CisgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSBkaXNwYXRjaERyYWdFdmVudChldmVudE5h
bWVzKCkuZHJvcEV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgJmRhdGFUcmFuc2Zlcik7CiAg
ICAgY2xlYXJEcmFnU3RhdGUoKTsKICAgICByZXR1cm4gcHJldmVudGVkRGVmYXVsdDsKIH0KQEAg
LTIzNTMsOSArMjM1MywxMCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6Y2xlYXJEcmFnU3RhdGUoKQog
ICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CiAjZW5kaWYKIH0KKwogI2VuZGlm
IC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKLXZvaWQgRXZlbnRIYW5kbGVyOjpzZXRDYXB0dXJp
bmdNb3VzZUV2ZW50c0VsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50KQordm9pZCBF
dmVudEhhbmRsZXI6OnNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudChFbGVtZW50KiBlbGVt
ZW50KQogewogICAgIG1fY2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50ID0gZWxlbWVudDsKICAg
ICBtX2V2ZW50SGFuZGxlcldpbGxSZXNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCA9IGZh
bHNlOwpAQCAtMjU2Myw3ICsyNTY0LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoTW91
c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSogdGFyZ2UKIAogICAg
IC8vIElmIGZvY3VzIHNoaWZ0IGlzIGJsb2NrZWQsIHdlIGVhdCB0aGUgZXZlbnQuCiAgICAgYXV0
byogcGFnZSA9IG1fZnJhbWUucGFnZSgpOwotICAgIGlmIChwYWdlICYmICFwYWdlLT5mb2N1c0Nv
bnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChlbGVtZW50LCAmbV9mcmFtZSkpCisgICAgaWYg
KHBhZ2UgJiYgIXBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KGVsZW1l
bnQsIG1fZnJhbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsK
QEAgLTM0MTEsMTEgKzM0MTIsMTEgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRyYWdTb3VyY2VFbmRl
ZEF0KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERyYWdPcGVyYXQKICAgICBtX21v
dXNlRG93bk1heVN0YXJ0RHJhZyA9IGZhbHNlOwogfQogCi12b2lkIEV2ZW50SGFuZGxlcjo6dXBk
YXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVs
ZW1lbnQpCit2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lm
TmVlZGVkKEVsZW1lbnQmIHJvb3RFZGl0YWJsZUVsZW1lbnQpCiB7CiAgICAgLy8gSWYgaW5zZXJ0
aW5nIHRoZSBkcmFnZ2VkIGNvbnRlbnRzIHJlbW92ZWQgdGhlIGRyYWcgc291cmNlLCB3ZSBzdGls
bCB3YW50IHRvIGZpcmUgZHJhZ2VuZCBhdCB0aGUgcm9vdCBlZGl0YWJsZSBlbGVtZW50LgogICAg
IGlmIChkcmFnU3RhdGUoKS5zb3VyY2UgJiYgIWRyYWdTdGF0ZSgpLnNvdXJjZS0+aW5Eb2N1bWVu
dCgpKQotICAgICAgICBkcmFnU3RhdGUoKS5zb3VyY2UgPSByb290RWRpdGFibGVFbGVtZW50Owor
ICAgICAgICBkcmFnU3RhdGUoKS5zb3VyY2UgPSAmcm9vdEVkaXRhYmxlRWxlbWVudDsKIH0KIAog
Ly8gUmV0dXJuIHZhbHVlIGluZGljYXRlcyBpZiB3ZSBzaG91bGQgY29udGludWUgImRlZmF1bHQg
cHJvY2Vzc2luZyIsIGkuZS4sIHdoZXRoZXIgZXZlbnQgaGFuZGxlciBjYW5jZWxlZC4KQEAgLTM2
MjUsMjUgKzM2MjYsMjQgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRleHRJbnB1dEV2ZW50
KGNvbnN0IFN0cmluZyYgdGV4dCwgRXZlbnQqIHVuZGVybHlpbmdFdmUKICAgICByZXR1cm4gZXZl
bnQtPmRlZmF1bHRIYW5kbGVkKCk7CiB9CiAgICAgCi1ib29sIEV2ZW50SGFuZGxlcjo6aXNLZXli
b2FyZE9wdGlvblRhYihLZXlib2FyZEV2ZW50KiBldmVudCkKK2Jvb2wgRXZlbnRIYW5kbGVyOjpp
c0tleWJvYXJkT3B0aW9uVGFiKEtleWJvYXJkRXZlbnQmIGV2ZW50KQogewotICAgIHJldHVybiBl
dmVudAotICAgICAgICAmJiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2
ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQpCi0gICAg
ICAgICYmIGV2ZW50LT5hbHRLZXkoKQotICAgICAgICAmJiBldmVudC0+a2V5SWRlbnRpZmllcigp
ID09ICJVKzAwMDkiOyAgICAKKyAgICByZXR1cm4gKGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVz
KCkua2V5ZG93bkV2ZW50IHx8IGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5cHJlc3NF
dmVudCkKKyAgICAgICAgJiYgZXZlbnQuYWx0S2V5KCkKKyAgICAgICAgJiYgZXZlbnQua2V5SWRl
bnRpZmllcigpID09ICJVKzAwMDkiOwogfQogCi1ib29sIEV2ZW50SGFuZGxlcjo6ZXZlbnRJbnZl
cnRzVGFic1RvTGlua3NDbGllbnRDYWxsUmVzdWx0KEtleWJvYXJkRXZlbnQqIGV2ZW50KQorYm9v
bCBFdmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdChL
ZXlib2FyZEV2ZW50JiBldmVudCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0o
RUZMKQotICAgIHJldHVybiBFdmVudEhhbmRsZXI6OmlzS2V5Ym9hcmRPcHRpb25UYWIoZXZlbnQp
OworICAgIHJldHVybiBpc0tleWJvYXJkT3B0aW9uVGFiKGV2ZW50KTsKICNlbHNlCiAgICAgVU5V
U0VEX1BBUkFNKGV2ZW50KTsKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIH0KIAotYm9vbCBF
dmVudEhhbmRsZXI6OnRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQqIGV2ZW50KSBjb25zdAorYm9v
bCBFdmVudEhhbmRsZXI6OnRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQmIGV2ZW50KSBjb25zdAog
ewogICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIG5lZWRzIGEgYmV0dGVyIG5hbWUuIEl0IGNh
biBiZSBjYWxsZWQgZm9yIGtleXByZXNzZXMgb3RoZXIgdGhhbiBUYWIgd2hlbiBzcGF0aWFsIG5h
dmlnYXRpb24gaXMgZW5hYmxlZC4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXgg
ZGU3OGJjYWU4NGE3NjY0ZGUyOGQ1ZDE3OTA2YjlhM2RiMmUxYjQyMy4uZTEyODFiNmFiOTJlYjMw
NzI4YWIzOTVkNGFmNGFhMjA2MTc5NDU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5o
CkBAIC01Nyw2ICs1NywxMCBAQCBPQkpDX0NMQVNTIFdBS1ZpZXc7CiBPQkpDX0NMQVNTIE5TVmll
dzsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKQorT0JKQ19DTEFTUyBOU0V2ZW50OworI2Vu
ZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXV0b3Njcm9sbENvbnRyb2xsZXI7
CkBAIC0xMDAsNyArMTA0LDcgQEAgZXh0ZXJuIGNvbnN0IGludCBMaW5rRHJhZ0h5c3RlcmVzaXM7
CiBleHRlcm4gY29uc3QgaW50IEltYWdlRHJhZ0h5c3RlcmVzaXM7CiBleHRlcm4gY29uc3QgaW50
IFRleHREcmFnSHlzdGVyZXNpczsKIGV4dGVybiBjb25zdCBpbnQgR2VuZXJhbERyYWdIeXN0ZXJl
c2lzOwotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjZW5kaWYKIAogI2lmIEVOQUJM
RShJT1NfR0VTVFVSRV9FVkVOVFMpIHx8IEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiBleHRl
cm4gY29uc3QgZmxvYXQgR2VzdHVyZVVua25vd247CkBAIC0xMzYsNyArMTQwLDcgQEAgcHVibGlj
OgogI2lmIEVOQUJMRShQQU5fU0NST0xMSU5HKQogICAgIHZvaWQgZGlkUGFuU2Nyb2xsU3RhcnQo
KTsKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0b3AoKTsKLSAgICB2b2lkIHN0YXJ0UGFuU2Nyb2xs
aW5nKFJlbmRlckVsZW1lbnQqKTsKKyAgICB2b2lkIHN0YXJ0UGFuU2Nyb2xsaW5nKFJlbmRlckVs
ZW1lbnQmKTsKICNlbmRpZgogCiAgICAgdm9pZCBzdG9wQXV0b3Njcm9sbFRpbWVyKGJvb2wgcmVu
ZGVyZXJJc0JlaW5nRGVzdHJveWVkID0gZmFsc2UpOwpAQCAtMTU2LDEzICsxNjAsMTMgQEAgcHVi
bGljOgogICAgIGJvb2wgbW91c2VQcmVzc2VkKCkgY29uc3QgeyByZXR1cm4gbV9tb3VzZVByZXNz
ZWQ7IH0KICAgICBOb2RlKiBtb3VzZVByZXNzTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VQ
cmVzc05vZGUuZ2V0KCk7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2FwdHVyaW5n
TW91c2VFdmVudHNFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4pOyAvLyBBIGNhbGxlciBpcyBy
ZXNwb25zaWJsZSBmb3IgcmVzZXR0aW5nIGNhcHR1cmluZyBlbGVtZW50IHRvIDAuCisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQoRWxlbWVudCop
OwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBib29sIHVwZGF0ZURyYWdBbmREcm9w
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwotICAgIHZvaWQgY2Fu
Y2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyKik7
Ci0gICAgYm9vbCBwZXJmb3JtRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jiwg
RGF0YVRyYW5zZmVyKik7Ci0gICAgdm9pZCB1cGRhdGVEcmFnU3RhdGVBZnRlckVkaXREcmFnSWZO
ZWVkZWQoRWxlbWVudCogcm9vdEVkaXRhYmxlRWxlbWVudCk7CisgICAgYm9vbCB1cGRhdGVEcmFn
QW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXImKTsKKyAgICB2
b2lkIGNhbmNlbERyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFu
c2ZlciYpOworICAgIGJvb2wgcGVyZm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYsIERhdGFUcmFuc2ZlciYpOworICAgIHZvaWQgdXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0
RHJhZ0lmTmVlZGVkKEVsZW1lbnQmIHJvb3RFZGl0YWJsZUVsZW1lbnQpOwogI2VuZGlmCiAKICAg
ICB2b2lkIHNjaGVkdWxlSG92ZXJTdGF0ZVVwZGF0ZSgpOwpAQCAtMTg3LDggKzE5MSw4IEBAIHB1
YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNjcm9sbFJlY3Vyc2l2ZWx5KFNjcm9sbERp
cmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIE5vZGUqIHN0YXJ0aW5nTm9kZSA9IG51bGxwdHIp
OwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbG9naWNhbFNjcm9sbFJlY3Vyc2l2ZWx5KFNjcm9s
bExvZ2ljYWxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBOb2RlKiBzdGFydGluZ05vZGUg
PSBudWxscHRyKTsKIAotICAgIGJvb2wgdGFic1RvTGlua3MoS2V5Ym9hcmRFdmVudCopIGNvbnN0
OwotICAgIGJvb2wgdGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdDsK
KyAgICBib29sIHRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQmKSBjb25zdDsKKyAgICBib29sIHRh
YnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JikgY29uc3Q7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIG1vdXNlTW92ZWQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBwYXNzTW91c2VNb3ZlZEV2ZW50VG9TY3JvbGxiYXJzKGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYpOwpAQCAtMjEwLDEyICsyMTQsMTIgQEAgcHVibGljOgogICAg
IHZvaWQgcGxhdGZvcm1Ob3RpZnlJZkVuZEdlc3R1cmUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiwgY29uc3QgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mKTsKIAogI2lmIEVOQUJMRShJT1NfVE9V
Q0hfRVZFTlRTKSB8fCBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKQotICAgIHR5cGVkZWYgVmVj
dG9yPFJlZlB0cjxUb3VjaD4+IFRvdWNoQXJyYXk7Ci0gICAgdHlwZWRlZiBIYXNoTWFwPEV2ZW50
VGFyZ2V0KiwgVG91Y2hBcnJheSo+IEV2ZW50VGFyZ2V0VG91Y2hNYXA7CisgICAgdXNpbmcgVG91
Y2hBcnJheSA9IFZlY3RvcjxSZWZQdHI8VG91Y2g+PjsKKyAgICB1c2luZyBFdmVudFRhcmdldFRv
dWNoTWFwID0gSGFzaE1hcDxFdmVudFRhcmdldCosIFRvdWNoQXJyYXkqPjsKICNlbmRpZgogCiAj
aWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpIHx8IEVOQUJMRShJT1NfR0VTVFVSRV9FVkVOVFMp
IHx8IEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCi0gICAgdHlwZWRlZiBIYXNoU2V0PFJlZlB0
cjxFdmVudFRhcmdldD4+IEV2ZW50VGFyZ2V0U2V0OworICAgIHVzaW5nIEV2ZW50VGFyZ2V0U2V0
ID0gSGFzaFNldDxSZWZQdHI8RXZlbnRUYXJnZXQ+PjsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElP
U19UT1VDSF9FVkVOVFMpCkBAIC0yMzEsNyArMjM1LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNp
ZiBQTEFURk9STShJT1MpCi0gICAgdm9pZCBkZWZhdWx0VG91Y2hFdmVudEhhbmRsZXIoTm9kZSos
IFRvdWNoRXZlbnQqKTsKKyAgICB2b2lkIGRlZmF1bHRUb3VjaEV2ZW50SGFuZGxlcihOb2RlJiwg
VG91Y2hFdmVudCYpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTI2
NCw4ICsyNjgsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZW5k
U2Nyb2xsRXZlbnQoKTsKIAotI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBkZWZpbmVkKF9fT0JKQ19f
KQotI2lmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgbW91c2VEb3duKE5TRXZlbnQgKiwgTlNFdmVudCAqY29ycmVzcG9uZGluZ1ByZXNz
dXJlRXZlbnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW91c2VEcmFnZ2VkKE5TRXZlbnQg
KiwgTlNFdmVudCAqY29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgbW91c2VVcChOU0V2ZW50ICosIE5TRXZlbnQgKmNvcnJlc3BvbmRpbmdQcmVzc3Vy
ZUV2ZW50KTsKQEAgLTI3Myw3ICsyNzYsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBwcmVzc3VyZUNoYW5nZShOU0V2ZW50ICosIE5TRXZlbnQqIGNvcnJlc3BvbmRpbmdQcmVz
c3VyZUV2ZW50KTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGtleUV2ZW50KE5TRXZlbnQgKik7
CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB3aGVlbEV2ZW50KE5TRXZlbnQgKik7Ci0jZWxzZQor
I2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3Vz
ZURvd24oV2ViRXZlbnQgKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3VzZVVwKFdlYkV2
ZW50ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW91c2VNb3ZlZChXZWJFdmVudCAqKTsK
QEAgLTI4NSwyMyArMjkwLDIwIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHRv
dWNoRXZlbnQoV2ViRXZlbnQgKik7CiAjZW5kaWYKIAotI2lmICFQTEFURk9STShJT1MpCisjaWYg
UExBVEZPUk0oTUFDKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcGFzc01vdXNlTW92ZWRFdmVu
dFRvU2Nyb2xsYmFycyhOU0V2ZW50ICosIE5TRXZlbnQqIGNvcnJlc3BvbmRpbmdQcmVzc3VyZUV2
ZW50KTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VuZEZha2VFdmVudHNBZnRlcldpZGdl
dFRyYWNraW5nKE5TRXZlbnQgKmluaXRpYXRpbmdFdmVudCk7Ci0jZW5kaWYKIAotI2lmICFQTEFU
Rk9STShJT1MpCiAgICAgdm9pZCBzZXRBY3RpdmF0aW9uRXZlbnROdW1iZXIoaW50IG51bSkgeyBt
X2FjdGl2YXRpb25FdmVudE51bWJlciA9IG51bTsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIE5TRXZlbnQgKmN1cnJlbnROU0V2ZW50KCk7CiAgICAgc3RhdGljIE5TRXZlbnQgKmNvcnJl
c3BvbmRpbmdQcmVzc3VyZUV2ZW50KCk7Ci0jZWxzZQotICAgIHN0YXRpYyBXZWJFdmVudCAqY3Vy
cmVudEV2ZW50KCk7Ci0jZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKLSNlbmRpZiAvLyBQTEFURk9S
TShDT0NPQSkgJiYgZGVmaW5lZChfX09CSkNfXykKKyNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9T
KQorICAgIHN0YXRpYyBXZWJFdmVudCAqY3VycmVudEV2ZW50KCk7CisKICAgICB2b2lkIGludmFs
aWRhdGVDbGljaygpOwogI2VuZGlmCiAKQEAgLTMyNCw4ICszMjYsOCBAQCBwcml2YXRlOgogICAg
IHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOwogICAgIHN0YXRpYyBjb25zdCBkb3VibGUg
VGV4dERyYWdEZWxheTsKICAgICAKLSAgICBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gY3JlYXRl
RHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdDsKLSNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQ
T1JUKQorICAgIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkg
Y29uc3Q7CisjZW5kaWYKIAogICAgIGJvb2wgZXZlbnRBY3RpdmF0ZWRWaWV3KGNvbnN0IFBsYXRm
b3JtTW91c2VFdmVudCYpIGNvbnN0OwogICAgIGJvb2wgdXBkYXRlU2VsZWN0aW9uRm9yTW91c2VE
b3duRGlzcGF0Y2hpbmdTZWxlY3RTdGFydChOb2RlKiwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYs
IFRleHRHcmFudWxhcml0eSk7CkBAIC0zNTksOCArMzYxLDggQEAgcHJpdmF0ZToKICAgICAKICAg
ICBib29sIG1vdXNlRG93bk1heVN0YXJ0U2VsZWN0KCkgY29uc3QgeyByZXR1cm4gbV9tb3VzZURv
d25NYXlTdGFydFNlbGVjdDsgfQogCi0gICAgc3RhdGljIGJvb2wgaXNLZXlib2FyZE9wdGlvblRh
YihLZXlib2FyZEV2ZW50Kik7Ci0gICAgc3RhdGljIGJvb2wgZXZlbnRJbnZlcnRzVGFic1RvTGlu
a3NDbGllbnRDYWxsUmVzdWx0KEtleWJvYXJkRXZlbnQqKTsKKyAgICBzdGF0aWMgYm9vbCBpc0tl
eWJvYXJkT3B0aW9uVGFiKEtleWJvYXJkRXZlbnQmKTsKKyAgICBzdGF0aWMgYm9vbCBldmVudElu
dmVydHNUYWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQoS2V5Ym9hcmRFdmVudCYpOwogCiAjaWYg
IUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgZmFrZU1vdXNlTW92ZUV2ZW50VGlt
ZXJGaXJlZCgpOwpAQCAtMzg1LDYgKzM4Nyw3IEBAIHByaXZhdGU6CiAgICAgTW91c2VFdmVudFdp
dGhIaXRUZXN0UmVzdWx0cyBwcmVwYXJlTW91c2VFdmVudChjb25zdCBIaXRUZXN0UmVxdWVzdCYs
IGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwogCiAgICAgYm9vbCBkaXNwYXRjaE1vdXNlRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqIHRhcmdldCwgYm9vbCBjYW5j
ZWxhYmxlLCBpbnQgY2xpY2tDb3VudCwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgYm9vbCBz
ZXRVbmRlcik7CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIGJvb2wgZGlzcGF0Y2hE
cmFnRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIHRhcmdldCwg
Y29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyKik7CiAKQEAgLTM5Miw3ICsz
OTUsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBoYW5kbGVEcmFnKGNvbnN0IE1vdXNlRXZlbnRX
aXRoSGl0VGVzdFJlc3VsdHMmLCBDaGVja0RyYWdIeXN0ZXJlc2lzKTsKICNlbmRpZgorCiAgICAg
Ym9vbCBoYW5kbGVNb3VzZVVwKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsK
KwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgdm9pZCBjbGVhckRyYWdTdGF0ZSgpOwog
CkBAIC00MDAsNyArNDA1LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgZHJhZ0h5c3RlcmVzaXNF
eGNlZWRlZChjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CiAgICAgYm9vbCBkcmFnSHlzdGVyZXNp
c0V4Y2VlZGVkKGNvbnN0IEludFBvaW50JikgY29uc3Q7Ci0jZW5kaWYgLy8gRU5BQkxFKERSQUdf
U1VQUE9SVCkKKyNlbmRpZgogICAgIAogICAgIGJvb2wgbW91c2VNb3ZlbWVudEV4Y2VlZHNUaHJl
c2hvbGQoY29uc3QgRmxvYXRQb2ludCYsIGludCBwb2ludHNUaHJlc2hvbGQpIGNvbnN0OwogCkBA
IC00MzEsNiArNDM2LDcgQEAgcHJpdmF0ZToKICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZSBjYWxs
ZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBoYW5kbGVNb3VzZVVwIGFuZCBoYW5kbGVEcmFnLiAgCiAg
ICAgLy8gSWYgdGhleSByZXR1cm4gdHJ1ZSBpdCBpbmRpY2F0ZXMgdGhhdCB0aGV5IGhhdmUgY29u
c3VtZWQgdGhlIGV2ZW50LgogICAgIGJvb2wgZXZlbnRMb29wSGFuZGxlTW91c2VVcChjb25zdCBN
b3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JU
KQogICAgIGJvb2wgZXZlbnRMb29wSGFuZGxlTW91c2VEcmFnZ2VkKGNvbnN0IE1vdXNlRXZlbnRX
aXRoSGl0VGVzdFJlc3VsdHMmKTsKICNlbmRpZgpAQCAtNDczLDEwICs0NzksMTIgQEAgcHJpdmF0
ZToKICAgICBSZWZQdHI8Tm9kZT4gbV9tb3VzZVByZXNzTm9kZTsKIAogICAgIGJvb2wgbV9tb3Vz
ZURvd25NYXlTdGFydFNlbGVjdCB7IGZhbHNlIH07CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JU
KQogICAgIGJvb2wgbV9tb3VzZURvd25NYXlTdGFydERyYWcgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9kcmFnTWF5U3RhcnRTZWxlY3Rpb25JbnN0ZWFkIHsgZmFsc2UgfTsKICNlbmRpZgorCiAgICAg
Ym9vbCBtX21vdXNlRG93bldhc1NpbmdsZUNsaWNrSW5TZWxlY3Rpb24geyBmYWxzZSB9OwogICAg
IGVudW0gU2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlIHsgSGF2ZU5vdFN0YXJ0ZWRTZWxlY3Rpb24s
IFBsYWNlZENhcmV0LCBFeHRlbmRlZFNlbGVjdGlvbiB9OwogICAgIFNlbGVjdGlvbkluaXRpYXRp
b25TdGF0ZSBtX3NlbGVjdGlvbkluaXRpYXRpb25TdGF0ZSB7IEhhdmVOb3RTdGFydGVkU2VsZWN0
aW9uIH07CkBAIC00ODgsNiArNDk2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fcGFuU2Nyb2xs
QnV0dG9uUHJlc3NlZCB7IGZhbHNlIH07CiAKICAgICBUaW1lciBtX2hvdmVyVGltZXI7CisKICNp
ZiBFTkFCTEUoQ1VSU09SX1NVUFBPUlQpCiAgICAgVGltZXIgbV9jdXJzb3JVcGRhdGVUaW1lcjsK
ICNlbmRpZgpAQCAtNDk1LDYgKzUwNCw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFDKQog
ICAgIFRpbWVyIG1fcGVuZGluZ01vbWVudHVtV2hlZWxFdmVudHNUaW1lcjsKICNlbmRpZgorCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPEF1dG9zY3JvbGxDb250cm9sbGVyPiBtX2F1dG9zY3JvbGxDb250
cm9sbGVyOwogICAgIGJvb2wgbV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9tb3VzZURvd25XYXNJblN1YmZyYW1lIHsgZmFsc2UgfTsKQEAgLTUyMywx
MSArNTMzLDEzIEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9nZXN0dXJlSW5pdGlhbERpYW1ldGVy
IHsgR2VzdHVyZVVua25vd24gfTsKICAgICBmbG9hdCBtX2dlc3R1cmVJbml0aWFsUm90YXRpb24g
eyBHZXN0dXJlVW5rbm93biB9OwogI2VuZGlmCisKICNpZiBFTkFCTEUoSU9TX0dFU1RVUkVfRVZF
TlRTKSB8fCBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogICAgIGZsb2F0IG1fZ2VzdHVyZUxh
c3REaWFtZXRlciB7IEdlc3R1cmVVbmtub3duIH07CiAgICAgZmxvYXQgbV9nZXN0dXJlTGFzdFJv
dGF0aW9uIHsgR2VzdHVyZVVua25vd24gfTsKICAgICBFdmVudFRhcmdldFNldCBtX2dlc3R1cmVU
YXJnZXRzOwogI2VuZGlmCisKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogICAgIGJv
b2wgbV9oYXNBY3RpdmVHZXN0dXJlIHsgZmFsc2UgfTsKICNlbmRpZgpAQCAtNTU4LDEyICs1NzAs
MTQgQEAgcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBOU1ZpZXcgKm1fbW91c2VE
b3duVmlldyB7IG51bGxwdHIgfTsKICAgICBib29sIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3IHsg
ZmFsc2UgfTsKLSNpZiAhUExBVEZPUk0oSU9TKQotICAgIGludCBtX2FjdGl2YXRpb25FdmVudE51
bWJlciB7IC0xIH07CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpbnQgbV9hY3Rp
dmF0aW9uRXZlbnROdW1iZXIgeyAtMSB9OwogI2VuZGlmCisKICNpZiBFTkFCTEUoVE9VQ0hfRVZF
TlRTKSAmJiAhRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCi0gICAgdHlwZWRlZiBIYXNoTWFwPGlu
dCwgUmVmUHRyPEV2ZW50VGFyZ2V0Pj4gVG91Y2hUYXJnZXRNYXA7CisgICAgdXNpbmcgVG91Y2hU
YXJnZXRNYXAgPSBIYXNoTWFwPGludCwgUmVmUHRyPEV2ZW50VGFyZ2V0Pj47CiAgICAgVG91Y2hU
YXJnZXRNYXAgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRzOwogICAgIFJlZlB0cjxEb2N1
bWVudD4gbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnREb2N1bWVudDsKICAgICB1bnNpZ25lZCBtX29y
aWdpbmF0aW5nVG91Y2hQb2ludFRhcmdldEtleSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcAppbmRleCBhN2IyNTU3ZTY5NDZkYjllNTYxMTU3YWRmNzJjYzI4MjZl
ZmU4NzQ3Li41YWE4NmM5OWM4OWYzYWZlZGRhOTc1ODk2ZDcyYzIwNzE1ZDk1NTgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCkBAIC0zMTYsNyArMzE2LDcgQEAgRm9j
dXNDb250cm9sbGVyOjpGb2N1c0NvbnRyb2xsZXIoUGFnZSYgcGFnZSwgQWN0aXZpdHlTdGF0ZTo6
RmxhZ3MgYWN0aXZpdHlTdGF0ZSkKIHsKIH0KIAotdm9pZCBGb2N1c0NvbnRyb2xsZXI6OnNldEZv
Y3VzZWRGcmFtZShQYXNzUmVmUHRyPEZyYW1lPiBmcmFtZSkKK3ZvaWQgRm9jdXNDb250cm9sbGVy
OjpzZXRGb2N1c2VkRnJhbWUoRnJhbWUqIGZyYW1lKQogewogICAgIEFTU0VSVCghZnJhbWUgfHwg
ZnJhbWUtPnBhZ2UoKSA9PSAmbV9wYWdlKTsKICAgICBpZiAobV9mb2N1c2VkRnJhbWUgPT0gZnJh
bWUgfHwgbV9pc0NoYW5naW5nRm9jdXNlZEZyYW1lKQpAQCAtNzY1LDggKzc2NSw5IEBAIHN0YXRp
YyB2b2lkIGNsZWFyU2VsZWN0aW9uSWZOZWVkZWQoRnJhbWUqIG9sZEZvY3VzZWRGcmFtZSwgRnJh
bWUqIG5ld0ZvY3VzZWRGcmFtCiAgICAgb2xkRm9jdXNlZEZyYW1lLT5zZWxlY3Rpb24oKS5jbGVh
cigpOwogfQogCi1ib29sIEZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVu
dCogZWxlbWVudCwgUGFzc1JlZlB0cjxGcmFtZT4gbmV3Rm9jdXNlZEZyYW1lLCBGb2N1c0RpcmVj
dGlvbiBkaXJlY3Rpb24pCitib29sIEZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEVsZW1lbnQo
RWxlbWVudCogZWxlbWVudCwgRnJhbWUmIG5ld0ZvY3VzZWRGcmFtZSwgRm9jdXNEaXJlY3Rpb24g
ZGlyZWN0aW9uKQogeworICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkTmV3Rm9jdXNlZEZyYW1lID0g
bmV3Rm9jdXNlZEZyYW1lOwogICAgIFJlZlB0cjxGcmFtZT4gb2xkRm9jdXNlZEZyYW1lID0gZm9j
dXNlZEZyYW1lKCk7CiAgICAgUmVmUHRyPERvY3VtZW50PiBvbGREb2N1bWVudCA9IG9sZEZvY3Vz
ZWRGcmFtZSA/IG9sZEZvY3VzZWRGcmFtZS0+ZG9jdW1lbnQoKSA6IG51bGxwdHI7CiAgICAgCkBA
IC03ODAsNyArNzgxLDcgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRFbGVtZW50
KEVsZW1lbnQqIGVsZW1lbnQsIFBhc3NSZWZQdHI8RnJhbWU+IG5ld0YKIAogICAgIG1fcGFnZS5l
ZGl0b3JDbGllbnQoKS53aWxsU2V0SW5wdXRNZXRob2RTdGF0ZSgpOwogCi0gICAgY2xlYXJTZWxl
Y3Rpb25JZk5lZWRlZChvbGRGb2N1c2VkRnJhbWUuZ2V0KCksIG5ld0ZvY3VzZWRGcmFtZS5nZXQo
KSwgZWxlbWVudCk7CisgICAgY2xlYXJTZWxlY3Rpb25JZk5lZWRlZChvbGRGb2N1c2VkRnJhbWUu
Z2V0KCksICZuZXdGb2N1c2VkRnJhbWUsIGVsZW1lbnQpOwogCiAgICAgaWYgKCFlbGVtZW50KSB7
CiAgICAgICAgIGlmIChvbGREb2N1bWVudCkKQEAgLTc5OSwxMSArODAwLDExIEBAIGJvb2wgRm9j
dXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBQYXNzUmVm
UHRyPEZyYW1lPiBuZXdGCiAgICAgaWYgKG9sZERvY3VtZW50ICYmIG9sZERvY3VtZW50ICE9IG5l
d0RvY3VtZW50LnB0cigpKQogICAgICAgICBvbGREb2N1bWVudC0+c2V0Rm9jdXNlZEVsZW1lbnQo
bnVsbHB0cik7CiAKLSAgICBpZiAobmV3Rm9jdXNlZEZyYW1lICYmICFuZXdGb2N1c2VkRnJhbWUt
PnBhZ2UoKSkgeworICAgIGlmICghbmV3Rm9jdXNlZEZyYW1lLnBhZ2UoKSkgewogICAgICAgICBz
ZXRGb2N1c2VkRnJhbWUobnVsbHB0cik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0g
ICAgc2V0Rm9jdXNlZEZyYW1lKG5ld0ZvY3VzZWRGcmFtZSk7CisgICAgc2V0Rm9jdXNlZEZyYW1l
KCZuZXdGb2N1c2VkRnJhbWUpOwogCiAgICAgUmVmPEVsZW1lbnQ+IHByb3RlY3QoKmVsZW1lbnQp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAppbmRleCBlY2JlMzk2MWRhMWY1
YjAwNWIwMWJjYzgyNTE2YjUwYTI3YThlMmFlLi5jNmRjZjIyMjA5MzVlY2JiMWZjYmQ0MjIxZjJj
YTJkOTQ3M2Y3N2EzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzAsMTIgKzMwLDEwIEBACiAjaW5jbHVkZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgIlRpbWVy
LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3Ry
dWN0IEZvY3VzQ2FuZGlkYXRlOwogY2xhc3MgQ29udGFpbmVyTm9kZTsKIGNsYXNzIERvY3VtZW50
OwogY2xhc3MgRWxlbWVudDsKQEAgLTQ4LDE5ICs0NiwyMSBAQCBjbGFzcyBOb2RlOwogY2xhc3Mg
UGFnZTsKIGNsYXNzIFRyZWVTY29wZTsKIAorc3RydWN0IEZvY3VzQ2FuZGlkYXRlOworCiBjbGFz
cyBGb2N1c0NvbnRyb2xsZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEZvY3VzQ29udHJv
bGxlcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IEZvY3VzQ29udHJvbGxlcihQYWdlJiwgQWN0aXZp
dHlTdGF0ZTo6RmxhZ3MpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGb2N1c2VkRnJh
bWUoUGFzc1JlZlB0cjxGcmFtZT4pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Rm9jdXNl
ZEZyYW1lKEZyYW1lKik7CiAgICAgRnJhbWUqIGZvY3VzZWRGcmFtZSgpIGNvbnN0IHsgcmV0dXJu
IG1fZm9jdXNlZEZyYW1lLmdldCgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUmIGZvY3Vz
ZWRPck1haW5GcmFtZSgpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRJbml0
aWFsRm9jdXMoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQqKTsKICAgICBib29sIGFkdmFu
Y2VGb2N1cyhGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCYsIGJvb2wgaW5pdGlhbEZvY3Vz
ID0gZmFsc2UpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRGb2N1c2VkRWxlbWVudChF
bGVtZW50KiwgUGFzc1JlZlB0cjxGcmFtZT4sIEZvY3VzRGlyZWN0aW9uID0gRm9jdXNEaXJlY3Rp
b25Ob25lKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldEZvY3VzZWRFbGVtZW50KEVsZW1l
bnQqLCBGcmFtZSYsIEZvY3VzRGlyZWN0aW9uID0gRm9jdXNEaXJlY3Rpb25Ob25lKTsKIAogICAg
IHZvaWQgc2V0QWN0aXZpdHlTdGF0ZShBY3Rpdml0eVN0YXRlOjpGbGFncyk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVUcmVlLmNwcAppbmRleCBkZWViMjNiNzU4NDQ5YmJmZTVjNTVmMTlkODBkMDQ5Mjgy
OTExN2FhLi42Mzg0OTBlNGJjYTM0NjJiNmI3N2ZiNjNiYzAwZGY1YzIyYTUyNmM2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVRyZWUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5
cmlnaHQgKEMpIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgpAQCAtNjMsMjUgKzYzLDYgQEAgRnJhbWUqIEZyYW1lVHJlZTo6
cGFyZW50KCkgY29uc3QKICAgICByZXR1cm4gbV9wYXJlbnQ7CiB9CiAKLWJvb2wgRnJhbWVUcmVl
Ojp0cmFuc2ZlckNoaWxkKFBhc3NSZWZQdHI8RnJhbWU+IGNoaWxkKQotewotICAgIEZyYW1lKiBv
bGRQYXJlbnQgPSBjaGlsZC0+dHJlZSgpLnBhcmVudCgpOwotICAgIGlmIChvbGRQYXJlbnQgPT0g
Jm1fdGhpc0ZyYW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7IC8vIHxjaGlsZHwgaXMgYWxyZWFk
eSBhIGNoaWxkIG9mIG1fdGhpc0ZyYW1lLgotCi0gICAgaWYgKG9sZFBhcmVudCkKLSAgICAgICAg
b2xkUGFyZW50LT50cmVlKCkucmVtb3ZlQ2hpbGQoY2hpbGQuZ2V0KCkpOwotCi0gICAgQVNTRVJU
KGNoaWxkLT5wYWdlKCkgPT0gbV90aGlzRnJhbWUucGFnZSgpKTsKLSAgICBjaGlsZC0+dHJlZSgp
Lm1fcGFyZW50ID0gJm1fdGhpc0ZyYW1lOwotCi0gICAgLy8gV2UgbmVlZCB0byBlbnN1cmUgdGhh
dCB0aGUgY2hpbGQgc3RpbGwgaGFzIGEgdW5pcXVlIGZyYW1lIG5hbWUgd2l0aCByZXNwZWN0IHRv
IGl0cyBuZXcgcGFyZW50LgotICAgIGNoaWxkLT50cmVlKCkuc2V0TmFtZShjaGlsZC0+dHJlZSgp
Lm1fbmFtZSk7Ci0KLSAgICBhY3R1YWxseUFwcGVuZENoaWxkKGNoaWxkKTsgLy8gTm90ZSwgb24g
cmV0dXJuIHxjaGlsZHwgaXMgbnVsbC4KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogdW5zaWduZWQg
RnJhbWVUcmVlOjppbmRleEluUGFyZW50KCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGFyZW50KQpA
QCAtOTUsNDYgKzc2LDQwIEBAIHVuc2lnbmVkIEZyYW1lVHJlZTo6aW5kZXhJblBhcmVudCgpIGNv
bnN0CiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBGcmFtZVRy
ZWU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8RnJhbWU+IGNoaWxkKQotewotICAgIEFTU0VSVChj
aGlsZC0+cGFnZSgpID09IG1fdGhpc0ZyYW1lLnBhZ2UoKSk7Ci0gICAgY2hpbGQtPnRyZWUoKS5t
X3BhcmVudCA9ICZtX3RoaXNGcmFtZTsKLSAgICBhY3R1YWxseUFwcGVuZENoaWxkKGNoaWxkKTsg
Ly8gTm90ZSwgb24gcmV0dXJuIHxjaGlsZHwgaXMgbnVsbC4KLX0KLQotdm9pZCBGcmFtZVRyZWU6
OmFjdHVhbGx5QXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxGcmFtZT4gY2hpbGQpCit2b2lkIEZyYW1l
VHJlZTo6YXBwZW5kQ2hpbGQoRnJhbWUmIGNoaWxkKQogewotICAgIEFTU0VSVChjaGlsZC0+dHJl
ZSgpLm1fcGFyZW50ID09ICZtX3RoaXNGcmFtZSk7CisgICAgQVNTRVJUKGNoaWxkLnBhZ2UoKSA9
PSBtX3RoaXNGcmFtZS5wYWdlKCkpOworICAgIGNoaWxkLnRyZWUoKS5tX3BhcmVudCA9ICZtX3Ro
aXNGcmFtZTsKICAgICBGcmFtZSogb2xkTGFzdCA9IG1fbGFzdENoaWxkOwotICAgIG1fbGFzdENo
aWxkID0gY2hpbGQuZ2V0KCk7CisgICAgbV9sYXN0Q2hpbGQgPSAmY2hpbGQ7CiAKICAgICBpZiAo
b2xkTGFzdCkgewotICAgICAgICBjaGlsZC0+dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nID0gb2xk
TGFzdDsKLSAgICAgICAgb2xkTGFzdC0+dHJlZSgpLm1fbmV4dFNpYmxpbmcgPSBjaGlsZDsKKyAg
ICAgICAgY2hpbGQudHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nID0gb2xkTGFzdDsKKyAgICAgICAg
b2xkTGFzdC0+dHJlZSgpLm1fbmV4dFNpYmxpbmcgPSAmY2hpbGQ7CiAgICAgfSBlbHNlCi0gICAg
ICAgIG1fZmlyc3RDaGlsZCA9IGNoaWxkOworICAgICAgICBtX2ZpcnN0Q2hpbGQgPSAmY2hpbGQ7
CiAKICAgICBtX3Njb3BlZENoaWxkQ291bnQgPSBpbnZhbGlkQ291bnQ7CiAKICAgICBBU1NFUlQo
IW1fbGFzdENoaWxkLT50cmVlKCkubV9uZXh0U2libGluZyk7CiB9CiAKLXZvaWQgRnJhbWVUcmVl
OjpyZW1vdmVDaGlsZChGcmFtZSogY2hpbGQpCit2b2lkIEZyYW1lVHJlZTo6cmVtb3ZlQ2hpbGQo
RnJhbWUmIGNoaWxkKQogewotICAgIGNoaWxkLT50cmVlKCkubV9wYXJlbnQgPSBudWxscHRyOwor
ICAgIGNoaWxkLnRyZWUoKS5tX3BhcmVudCA9IG51bGxwdHI7CiAKICAgICAvLyBTbGlnaHRseSB0
cmlja3kgd2F5IHRvIHByZXZlbnQgZGVsZXRpbmcgdGhlIGNoaWxkIHVudGlsIHdlIGFyZSBkb25l
IHdpdGggaXQsIHcvbwogICAgIC8vIGV4dHJhIHJlZnMuIFRoZXNlIHN3YXBzIGxlYXZlIHRoZSBj
aGlsZCBpbiBhIGNpcmN1bGFyIGxpc3QgYnkgaXRzZWxmLiBDbGVhcmluZyBpdHMKICAgICAvLyBw
cmV2aW91cyBhbmQgbmV4dCB3aWxsIHRoZW4gZmluYWxseSBkZXJlZiBpdC4KIAotICAgIFJlZlB0
cjxGcmFtZT4mIG5ld0xvY2F0aW9uRm9yTmV4dCA9IG1fZmlyc3RDaGlsZCA9PSBjaGlsZCA/IG1f
Zmlyc3RDaGlsZCA6IGNoaWxkLT50cmVlKCkubV9wcmV2aW91c1NpYmxpbmctPnRyZWUoKS5tX25l
eHRTaWJsaW5nOwotICAgIEZyYW1lKiYgbmV3TG9jYXRpb25Gb3JQcmV2aW91cyA9IG1fbGFzdENo
aWxkID09IGNoaWxkID8gbV9sYXN0Q2hpbGQgOiBjaGlsZC0+dHJlZSgpLm1fbmV4dFNpYmxpbmct
PnRyZWUoKS5tX3ByZXZpb3VzU2libGluZzsKLSAgICBzd2FwKG5ld0xvY2F0aW9uRm9yTmV4dCwg
Y2hpbGQtPnRyZWUoKS5tX25leHRTaWJsaW5nKTsKKyAgICBSZWZQdHI8RnJhbWU+JiBuZXdMb2Nh
dGlvbkZvck5leHQgPSBtX2ZpcnN0Q2hpbGQgPT0gJmNoaWxkID8gbV9maXJzdENoaWxkIDogY2hp
bGQudHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nLT50cmVlKCkubV9uZXh0U2libGluZzsKKyAgICBG
cmFtZSomIG5ld0xvY2F0aW9uRm9yUHJldmlvdXMgPSBtX2xhc3RDaGlsZCA9PSAmY2hpbGQgPyBt
X2xhc3RDaGlsZCA6IGNoaWxkLnRyZWUoKS5tX25leHRTaWJsaW5nLT50cmVlKCkubV9wcmV2aW91
c1NpYmxpbmc7CisgICAgc3dhcChuZXdMb2NhdGlvbkZvck5leHQsIGNoaWxkLnRyZWUoKS5tX25l
eHRTaWJsaW5nKTsKICAgICAvLyBGb3Igc29tZSBpbmV4cGxpY2FibGUgcmVhc29uLCB0aGUgZm9s
bG93aW5nIGxpbmUgZG9lcyBub3QgY29tcGlsZSB3aXRob3V0IHRoZSBleHBsaWNpdCBzdGQ6OiBu
YW1lc3BhY2UKLSAgICBzdGQ6OnN3YXAobmV3TG9jYXRpb25Gb3JQcmV2aW91cywgY2hpbGQtPnRy
ZWUoKS5tX3ByZXZpb3VzU2libGluZyk7CisgICAgc3RkOjpzd2FwKG5ld0xvY2F0aW9uRm9yUHJl
dmlvdXMsIGNoaWxkLnRyZWUoKS5tX3ByZXZpb3VzU2libGluZyk7CiAKLSAgICBjaGlsZC0+dHJl
ZSgpLm1fcHJldmlvdXNTaWJsaW5nID0gbnVsbHB0cjsKLSAgICBjaGlsZC0+dHJlZSgpLm1fbmV4
dFNpYmxpbmcgPSBudWxscHRyOworICAgIGNoaWxkLnRyZWUoKS5tX3ByZXZpb3VzU2libGluZyA9
IG51bGxwdHI7CisgICAgY2hpbGQudHJlZSgpLm1fbmV4dFNpYmxpbmcgPSBudWxscHRyOwogCiAg
ICAgbV9zY29wZWRDaGlsZENvdW50ID0gaW52YWxpZENvdW50OwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVU
cmVlLmgKaW5kZXggYWIxNmYwYWQ2Mzk2MjVhZTJkNzhjMTc5ZjEzNTNiYjg0Yzk4YWUxYS4uM2Y4
N2MyNzliZGMzYTA2NGZlODg4MDhiNjAzYTJhY2Y3ZjJkYzdlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
VHJlZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBJ
bmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTY1LDEwICs2NSw5IEBAIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCBGcmFtZSogdHJhdmVyc2VOZXh0V2l0aFdyYXAoYm9vbCkgY29uc3Q7
CiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUqIHRyYXZlcnNlUHJldmlvdXNXaXRoV3JhcChib29s
KSBjb25zdDsKICAgICAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGVuZENoaWxkKFBhc3NS
ZWZQdHI8RnJhbWU+KTsKLSAgICBib29sIHRyYW5zZmVyQ2hpbGQoUGFzc1JlZlB0cjxGcmFtZT4p
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwZW5kQ2hpbGQoRnJhbWUmKTsKICAgICB2b2lk
IGRldGFjaEZyb21QYXJlbnQoKSB7IG1fcGFyZW50ID0gbnVsbHB0cjsgfQotICAgIHZvaWQgcmVt
b3ZlQ2hpbGQoRnJhbWUqKTsKKyAgICB2b2lkIHJlbW92ZUNoaWxkKEZyYW1lJik7CiAKICAgICBG
cmFtZSogY2hpbGQodW5zaWduZWQgaW5kZXgpIGNvbnN0OwogICAgIEZyYW1lKiBjaGlsZChjb25z
dCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0OwpAQCAtODcsNyArODYsNiBAQCBwdWJsaWM6CiAK
IHByaXZhdGU6CiAgICAgRnJhbWUqIGRlZXBMYXN0Q2hpbGQoKSBjb25zdDsKLSAgICB2b2lkIGFj
dHVhbGx5QXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxGcmFtZT4pOwogCiAgICAgYm9vbCBzY29wZWRC
eShUcmVlU2NvcGUqKSBjb25zdDsKICAgICBGcmFtZSogc2NvcGVkQ2hpbGQodW5zaWduZWQgaW5k
ZXgsIFRyZWVTY29wZSopIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGQ5
NGM5ZDkyMWE0YTQxOTYzZWM4ZGFlNzVjMGI0ZTIzMjYwOTc4YTIuLjRkNjM4YTJlNzUzYzFlYWI3
YmZjMGRjNzhjODczN2QwZTUyYzJhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAg
LTY3Nyw3ICs2NzcsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0Q29udGVudHNTaXplKGNvbnN0IElu
dFNpemUmIHNpemUpCiAKICAgICB1cGRhdGVTY3JvbGxhYmxlQXJlYVNldCgpOwogCi0gICAgcGFn
ZS0+Y2hyb21lKCkuY29udGVudHNTaXplQ2hhbmdlZCgmZnJhbWUoKSwgc2l6ZSk7IC8vIE5vdGlm
eSBvbmx5LgorICAgIHBhZ2UtPmNocm9tZSgpLmNvbnRlbnRzU2l6ZUNoYW5nZWQoZnJhbWUoKSwg
c2l6ZSk7IC8vIE5vdGlmeSBvbmx5LgogCiAgICAgaWYgKGZyYW1lKCkuaXNNYWluRnJhbWUoKSkg
ewogICAgICAgICBmcmFtZSgpLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmRp
ZENoYW5nZURvY3VtZW50U2l6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9N
YWluRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuY3BwCmluZGV4IDQ4
MTc0Y2IyNDM3ZDU5NjBiMjFjNTM4MzZjNTI3MWI2NjBkODg2YzEuLmExN2JlM2JiNTNhODkyZjVi
ZTYyZDRjNGQ3NzI0ZTBhZDRjZmQ0Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TWFpbkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAKQEAg
LTkyLDcgKzkyLDcgQEAgdm9pZCBNYWluRnJhbWU6OnNlbGZPbmx5RGVyZWYoKQogdm9pZCBNYWlu
RnJhbWU6OmRyb3BDaGlsZHJlbigpCiB7CiAgICAgd2hpbGUgKEZyYW1lKiBjaGlsZCA9IHRyZWUo
KS5maXJzdENoaWxkKCkpCi0gICAgICAgIHRyZWUoKS5yZW1vdmVDaGlsZChjaGlsZCk7CisgICAg
ICAgIHRyZWUoKS5yZW1vdmVDaGlsZCgqY2hpbGQpOwogfQogCiAjaWYgUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKaW5kZXggZGIxN2U2YmFmN2FjZTRjMjcyNjVjOGVkYjM3MDVmZGIxN2Vi
MjBiYS4uN2Q2YWYxMTBhNGNkNGRhZGVjZWQyNDU5MDY2MjczMDQyZjNkMGM1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCkBAIC0zNjMsNyArMzYzLDcgQEAgVmlld3BvcnRBcmd1bWVudHMgUGFnZTo6dmll
d3BvcnRBcmd1bWVudHMoKSBjb25zdAogU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIFBhZ2U6OnNjcm9s
bGluZ0Nvb3JkaW5hdG9yKCkKIHsKICAgICBpZiAoIW1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IgJiYg
bV9zZXR0aW5ncy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFibGVkKCkpIHsKLSAgICAgICAgbV9z
Y3JvbGxpbmdDb29yZGluYXRvciA9IGNocm9tZSgpLmNsaWVudCgpLmNyZWF0ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yKHRoaXMpOworICAgICAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yID0gY2hyb21l
KCkuY2xpZW50KCkuY3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoKnRoaXMpOwogICAgICAgICBp
ZiAoIW1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiAgICAgICAgICAgICBtX3Njcm9sbGluZ0Nvb3Jk
aW5hdG9yID0gU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNyZWF0ZSh0aGlzKTsKICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwCmluZGV4IGU3MGJjYTA1MjNmMGUzOTVmODc3ZmY2M2Mx
MmFhMzk1NTdhZGVkN2MuLjJjYTg2Zjk4MjgwODE2Mzc4NGYyYWI3ZmE0M2VlZWJiZWUzNzk1Zjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwCkBAIC0yNzQsNyArMjc0LDcgQEAgdm9p
ZCBQYWdlT3ZlcmxheTo6ZmFkZUFuaW1hdGlvblRpbWVyRmlyZWQoKQogCiAgICAgICAgIC8vIElm
IHRoaXMgd2FzIGEgZmFkZSBvdXQsIHVuaW5zdGFsbCB0aGUgcGFnZSBvdmVybGF5LgogICAgICAg
ICBpZiAod2FzRmFkaW5nT3V0KQotICAgICAgICAgICAgY29udHJvbGxlcigpLT51bmluc3RhbGxQ
YWdlT3ZlcmxheSh0aGlzLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAg
ICAgICAgICBjb250cm9sbGVyKCktPnVuaW5zdGFsbFBhZ2VPdmVybGF5KCp0aGlzLCBQYWdlT3Zl
cmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKaW5kZXggODY2Yjg3MGNiOGU0ZDFiN2U1
ZDIxYjNiMTZhYzFlNWM2YjNhYmY4My4uMDU0M2JkNTM0ZDI1MWJhMzdkY2E0MjFkYTE3ZTJjOTkz
YTJkYWYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVy
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC05NSwyNyArOTUsMjUgQEAgc3RhdGljIHZvaWQgdXBkYXRlT3ZlcmxheUdlb21ldHJ5KFBh
Z2VPdmVybGF5JiBvdmVybGF5LCBHcmFwaGljc0xheWVyJiBncmFwaGljc0wKICAgICBncmFwaGlj
c0xheWVyLnNldFNpemUob3ZlcmxheUZyYW1lLnNpemUoKSk7CiB9CiAKLXZvaWQgUGFnZU92ZXJs
YXlDb250cm9sbGVyOjppbnN0YWxsUGFnZU92ZXJsYXkoUGFzc1JlZlB0cjxQYWdlT3ZlcmxheT4g
cGFnZU92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSBmYWRlTW9kZSkKK3ZvaWQgUGFnZU92
ZXJsYXlDb250cm9sbGVyOjppbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkmIG92ZXJsYXks
IFBhZ2VPdmVybGF5OjpGYWRlTW9kZSBmYWRlTW9kZSkKIHsKICAgICBjcmVhdGVSb290TGF5ZXJz
SWZOZWVkZWQoKTsKIAotICAgIFJlZlB0cjxQYWdlT3ZlcmxheT4gb3ZlcmxheSA9IHBhZ2VPdmVy
bGF5OwotCi0gICAgaWYgKG1fcGFnZU92ZXJsYXlzLmNvbnRhaW5zKG92ZXJsYXkpKQorICAgIGlm
IChtX3BhZ2VPdmVybGF5cy5jb250YWlucygmb3ZlcmxheSkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fcGFnZU92ZXJsYXlzLmFwcGVuZChvdmVybGF5KTsKKyAgICBtX3BhZ2VPdmVybGF5cy5h
cHBlbmQoJm92ZXJsYXkpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IGxh
eWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKG1fbWFpbkZyYW1lLnBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRoaXMpOwogICAgIGxheWVyLT5zZXRB
bmNob3JQb2ludChGbG9hdFBvaW50M0QoKSk7Ci0gICAgbGF5ZXItPnNldEJhY2tncm91bmRDb2xv
cihvdmVybGF5LT5iYWNrZ3JvdW5kQ29sb3IoKSk7CisgICAgbGF5ZXItPnNldEJhY2tncm91bmRD
b2xvcihvdmVybGF5LmJhY2tncm91bmRDb2xvcigpKTsKICNpZm5kZWYgTkRFQlVHCiAgICAgbGF5
ZXItPnNldE5hbWUoIlBhZ2UgT3ZlcmxheSBjb250ZW50Iik7CiAjZW5kaWYKIAogICAgIHVwZGF0
ZVNldHRpbmdzRm9yTGF5ZXIoKmxheWVyKTsKIAotICAgIHN3aXRjaCAob3ZlcmxheS0+b3Zlcmxh
eVR5cGUoKSkgeworICAgIHN3aXRjaCAob3ZlcmxheS5vdmVybGF5VHlwZSgpKSB7CiAgICAgY2Fz
ZSBQYWdlT3ZlcmxheTo6T3ZlcmxheVR5cGU6OlZpZXc6CiAgICAgICAgIG1fdmlld092ZXJsYXlS
b290TGF5ZXItPmFkZENoaWxkKGxheWVyLmdldCgpKTsKICAgICAgICAgYnJlYWs7CkBAIC0xMjUs
MzMgKzEyMywzMyBAQCB2b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6aW5zdGFsbFBhZ2VPdmVy
bGF5KFBhc3NSZWZQdHI8UGFnZU92ZXJsYXk+IHBhZ2VPdmVybAogICAgIH0KIAogICAgIEdyYXBo
aWNzTGF5ZXImIHJhd0xheWVyID0gKmxheWVyOwotICAgIG1fb3ZlcmxheUdyYXBoaWNzTGF5ZXJz
LnNldChvdmVybGF5LmdldCgpLCBXVEZNb3ZlKGxheWVyKSk7CisgICAgbV9vdmVybGF5R3JhcGhp
Y3NMYXllcnMuc2V0KCZvdmVybGF5LCBXVEZNb3ZlKGxheWVyKSk7CiAKICAgICB1cGRhdGVGb3Jj
ZVN5bmNocm9ub3VzU2Nyb2xsTGF5ZXJQb3NpdGlvblVwZGF0ZXMoKTsKIAotICAgIG92ZXJsYXkt
PnNldFBhZ2UobV9tYWluRnJhbWUucGFnZSgpKTsKKyAgICBvdmVybGF5LnNldFBhZ2UobV9tYWlu
RnJhbWUucGFnZSgpKTsKIAogICAgIGlmIChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IG1fbWFpbkZy
YW1lLnZpZXcoKSkKICAgICAgICAgZnJhbWVWaWV3LT5lbnRlckNvbXBvc2l0aW5nTW9kZSgpOwog
Ci0gICAgdXBkYXRlT3ZlcmxheUdlb21ldHJ5KCpvdmVybGF5LCByYXdMYXllcik7CisgICAgdXBk
YXRlT3ZlcmxheUdlb21ldHJ5KG92ZXJsYXksIHJhd0xheWVyKTsKIAogICAgIGlmIChmYWRlTW9k
ZSA9PSBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpCi0gICAgICAgIG92ZXJsYXktPnN0YXJ0
RmFkZUluQW5pbWF0aW9uKCk7CisgICAgICAgIG92ZXJsYXkuc3RhcnRGYWRlSW5BbmltYXRpb24o
KTsKIH0KIAotdm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnVuaW5zdGFsbFBhZ2VPdmVybGF5
KFBhZ2VPdmVybGF5KiBvdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUgZmFkZU1vZGUpCit2
b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJs
YXkmIG92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSBmYWRlTW9kZSkKIHsKICAgICBpZiAo
ZmFkZU1vZGUgPT0gUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKSB7Ci0gICAgICAgIG92ZXJs
YXktPnN0YXJ0RmFkZU91dEFuaW1hdGlvbigpOworICAgICAgICBvdmVybGF5LnN0YXJ0RmFkZU91
dEFuaW1hdGlvbigpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgb3ZlcmxheS0+c2V0
UGFnZShudWxscHRyKTsKKyAgICBvdmVybGF5LnNldFBhZ2UobnVsbHB0cik7CiAKLSAgICBtX292
ZXJsYXlHcmFwaGljc0xheWVycy50YWtlKG92ZXJsYXkpLT5yZW1vdmVGcm9tUGFyZW50KCk7Cisg
ICAgbV9vdmVybGF5R3JhcGhpY3NMYXllcnMudGFrZSgmb3ZlcmxheSktPnJlbW92ZUZyb21QYXJl
bnQoKTsKIAotICAgIGJvb2wgcmVtb3ZlZCA9IG1fcGFnZU92ZXJsYXlzLnJlbW92ZUZpcnN0KG92
ZXJsYXkpOworICAgIGJvb2wgcmVtb3ZlZCA9IG1fcGFnZU92ZXJsYXlzLnJlbW92ZUZpcnN0KCZv
dmVybGF5KTsKICAgICBBU1NFUlRfVU5VU0VEKHJlbW92ZWQsIHJlbW92ZWQpOwogCiAgICAgdXBk
YXRlRm9yY2VTeW5jaHJvbm91c1Njcm9sbExheWVyUG9zaXRpb25VcGRhdGVzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaAppbmRleCAzOTc4MDk4MjAwOGM2
NTFmMjg4Yjc5NzZiMWI5MzI5NWFjNTJlN2E0Li42Mzg5NDdjNjE4NDZhYjA2NzVjZTgwM2FiZjE3
NmI2YjcxZGQ4YzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5
Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9s
bGVyLmgKQEAgLTM5LDcgKzM5LDYgQEAgY2xhc3MgUGFnZTsKIGNsYXNzIFBsYXRmb3JtTW91c2VF
dmVudDsKIAogY2xhc3MgUGFnZU92ZXJsYXlDb250cm9sbGVyIGZpbmFsIDogcHVibGljIEdyYXBo
aWNzTGF5ZXJDbGllbnQgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2VPdmVybGF5Q29u
dHJvbGxlcik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgUGFn
ZU92ZXJsYXlDb250cm9sbGVyKE1haW5GcmFtZSYpOwpAQCAtNTAsOCArNDksOCBAQCBwdWJsaWM6
CiAKICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFBhZ2VPdmVybGF5Pj4mIHBhZ2VPdmVybGF5cygp
IGNvbnN0IHsgcmV0dXJuIG1fcGFnZU92ZXJsYXlzOyB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGluc3RhbGxQYWdlT3ZlcmxheShQYXNzUmVmUHRyPFBhZ2VPdmVybGF5PiwgUGFnZU92ZXJs
YXk6OkZhZGVNb2RlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuaW5zdGFsbFBhZ2VPdmVy
bGF5KFBhZ2VPdmVybGF5KiwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSYsIFBhZ2VPdmVybGF5OjpG
YWRlTW9kZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1bmluc3RhbGxQYWdlT3ZlcmxheShQ
YWdlT3ZlcmxheSYsIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSk7CiAKICAgICB2b2lkIHNldFBhZ2VP
dmVybGF5TmVlZHNEaXNwbGF5KFBhZ2VPdmVybGF5JiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZv
aWQgc2V0UGFnZU92ZXJsYXlPcGFjaXR5KFBhZ2VPdmVybGF5JiwgZmxvYXQpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAppbmRleCA3ZmZmMTIzZmY2NDEzNzgyNWM4ZDE5ODAz
ZGJlY2YzOWM4NjM2OGFmLi45M2QzNzc3YWExYTlmMDc5ZjcxMDRjOTc0NWQ3ZGExY2NiYmZkNTgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcApAQCAtODAsOCArODAsNyBA
QCBzdGF0aWMgYm9vbCBpc0NoYXJzZXRTcGVjaWZ5aW5nTm9kZShjb25zdCBOb2RlJiBub2RlKQog
ICAgICAgICAgICAgYXR0cmlidXRlcy5hcHBlbmQoc3RkOjptYWtlX3BhaXIoYXR0cmlidXRlLm5h
bWUoKS50b1N0cmluZygpLCBhdHRyaWJ1dGUudmFsdWUoKS5zdHJpbmcoKSkpOwogICAgICAgICB9
CiAgICAgfQotICAgIFRleHRFbmNvZGluZyB0ZXh0RW5jb2RpbmcgPSBIVE1MTWV0YUNoYXJzZXRQ
YXJzZXI6OmVuY29kaW5nRnJvbU1ldGFBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpOwotICAgIHJldHVy
biB0ZXh0RW5jb2RpbmcuaXNWYWxpZCgpOworICAgIHJldHVybiBIVE1MTWV0YUNoYXJzZXRQYXJz
ZXI6OmVuY29kaW5nRnJvbU1ldGFBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMpLmlzVmFsaWQoKTsKIH0K
IAogc3RhdGljIGJvb2wgc2hvdWxkSWdub3JlRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50
KQpAQCAtOTUsMTAgKzk0LDkgQEAgc3RhdGljIGNvbnN0IFF1YWxpZmllZE5hbWUmIGZyYW1lT3du
ZXJVUkxBdHRyaWJ1dGVOYW1lKGNvbnN0IEhUTUxGcmFtZU93bmVyRWxlbWUKICAgICByZXR1cm4g
aXM8SFRNTE9iamVjdEVsZW1lbnQ+KGZyYW1lT3duZXIpID8gSFRNTE5hbWVzOjpkYXRhQXR0ciA6
IEhUTUxOYW1lczo6c3JjQXR0cjsKIH0KIAotY2xhc3MgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxh
dG9yIGZpbmFsIDogcHVibGljIFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yIHsKK2NsYXNzIFBh
Z2VTZXJpYWxpemVyOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3IgZmluYWwgOiBwdWJsaWMg
V2ViQ29yZTo6TWFya3VwQWNjdW11bGF0b3IgewogcHVibGljOgogICAgIFNlcmlhbGl6ZXJNYXJr
dXBBY2N1bXVsYXRvcihQYWdlU2VyaWFsaXplciYsIERvY3VtZW50JiwgVmVjdG9yPE5vZGUqPiop
OwotICAgIHZpcnR1YWwgflNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcigpOwogCiBwcml2YXRl
OgogICAgIFBhZ2VTZXJpYWxpemVyJiBtX3NlcmlhbGl6ZXI7CkBAIC0xMTAsNyArMTA4LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGFwcGVuZEVuZFRhZyhjb25zdCBFbGVtZW50Jikgb3ZlcnJpZGU7
CiB9OwogCi1TZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1
bXVsYXRvcihQYWdlU2VyaWFsaXplciYgc2VyaWFsaXplciwgRG9jdW1lbnQmIGRvY3VtZW50LCBW
ZWN0b3I8Tm9kZSo+KiBub2RlcykKK1BhZ2VTZXJpYWxpemVyOjpTZXJpYWxpemVyTWFya3VwQWNj
dW11bGF0b3I6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcihQYWdlU2VyaWFsaXplciYgc2Vy
aWFsaXplciwgRG9jdW1lbnQmIGRvY3VtZW50LCBWZWN0b3I8Tm9kZSo+KiBub2RlcykKICAgICA6
IE1hcmt1cEFjY3VtdWxhdG9yKG5vZGVzLCBSZXNvbHZlQWxsVVJMcykKICAgICAsIG1fc2VyaWFs
aXplcihzZXJpYWxpemVyKQogICAgICwgbV9kb2N1bWVudChkb2N1bWVudCkKQEAgLTEyMCwxOCAr
MTE4LDE0IEBAIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6U2VyaWFsaXplck1hcmt1cEFj
Y3VtdWxhdG9yKFBhZ2VTZXJpYWxpemVyJiBzZXJpYWxpCiAgICAgICAgIGFwcGVuZFN0cmluZygi
PD94bWwgdmVyc2lvbj1cIiIgKyBtX2RvY3VtZW50LnhtbFZlcnNpb24oKSArICJcIiBlbmNvZGlu
Zz1cIiIgKyBtX2RvY3VtZW50LmNoYXJzZXQoKSArICJcIj8+Iik7CiB9CiAKLVNlcmlhbGl6ZXJN
YXJrdXBBY2N1bXVsYXRvcjo6flNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcigpCi17Ci19Ci0K
LXZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0KFN0cmluZ0J1aWxk
ZXImIG91dCwgY29uc3QgVGV4dCYgdGV4dCkKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6
ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kVGV4dChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0
IFRleHQmIHRleHQpCiB7CiAgICAgRWxlbWVudCogcGFyZW50ID0gdGV4dC5wYXJlbnRFbGVtZW50
KCk7CiAgICAgaWYgKHBhcmVudCAmJiAhc2hvdWxkSWdub3JlRWxlbWVudCgqcGFyZW50KSkKICAg
ICAgICAgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQob3V0LCB0ZXh0KTsKIH0KIAotdm9p
ZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVsZW1lbnQoU3RyaW5nQnVpbGRl
ciYgb3V0LCBjb25zdCBFbGVtZW50JiBlbGVtZW50LCBOYW1lc3BhY2VzKiBuYW1lc3BhY2VzKQor
dm9pZCBQYWdlU2VyaWFsaXplcjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRF
bGVtZW50KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgRWxlbWVudCYgZWxlbWVudCwgTmFtZXNw
YWNlcyogbmFtZXNwYWNlcykKIHsKICAgICBpZiAoIXNob3VsZElnbm9yZUVsZW1lbnQoZWxlbWVu
dCkpCiAgICAgICAgIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbGVtZW50KG91dCwgZWxlbWVu
dCwgbmFtZXNwYWNlcyk7CkBAIC0xNDUsNyArMTM5LDcgQEAgdm9pZCBTZXJpYWxpemVyTWFya3Vw
QWNjdW11bGF0b3I6OmFwcGVuZEVsZW1lbnQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBFbGVt
ZW4KICAgICAvLyBGSVhNRTogRm9yIG9iamVjdCAocGx1Z2lucykgdGFncyBhbmQgdmlkZW8gdGFn
IHdlIGNvdWxkIHJlcGxhY2UgdGhlbSBieSBhbiBpbWFnZSBvZiB0aGVpciBjdXJyZW50IGNvbnRl
bnRzLgogfQogCi12b2lkIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kQ3VzdG9t
QXR0cmlidXRlcyhTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIE5h
bWVzcGFjZXMqIG5hbWVzcGFjZXMpCit2b2lkIFBhZ2VTZXJpYWxpemVyOjpTZXJpYWxpemVyTWFy
a3VwQWNjdW11bGF0b3I6OmFwcGVuZEN1c3RvbUF0dHJpYnV0ZXMoU3RyaW5nQnVpbGRlciYgb3V0
LCBjb25zdCBFbGVtZW50JiBlbGVtZW50LCBOYW1lc3BhY2VzKiBuYW1lc3BhY2VzKQogewogICAg
IGlmICghaXM8SFRNTEZyYW1lT3duZXJFbGVtZW50PihlbGVtZW50KSkKICAgICAgICAgcmV0dXJu
OwpAQCAtMTY0LDMyICsxNTgsMjAgQEAgdm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6
OmFwcGVuZEN1c3RvbUF0dHJpYnV0ZXMoU3RyaW5nQnVpbGRlciYgb3V0LCBjb24KICAgICBhcHBl
bmRBdHRyaWJ1dGUob3V0LCBlbGVtZW50LCBBdHRyaWJ1dGUoZnJhbWVPd25lclVSTEF0dHJpYnV0
ZU5hbWUoZnJhbWVPd25lciksIHVybC5zdHJpbmcoKSksIG5hbWVzcGFjZXMpOwogfQogCi12b2lk
IFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRW5kVGFnKGNvbnN0IEVsZW1lbnQm
IGVsZW1lbnQpCit2b2lkIFBhZ2VTZXJpYWxpemVyOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0
b3I6OmFwcGVuZEVuZFRhZyhjb25zdCBFbGVtZW50JiBlbGVtZW50KQogewogICAgIGlmICghc2hv
dWxkSWdub3JlRWxlbWVudChlbGVtZW50KSkKICAgICAgICAgTWFya3VwQWNjdW11bGF0b3I6OmFw
cGVuZEVuZFRhZyhlbGVtZW50KTsKIH0KIAotUGFnZVNlcmlhbGl6ZXI6OlJlc291cmNlOjpSZXNv
dXJjZSgpCi17Ci19Ci0KLVBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZTo6UmVzb3VyY2UoY29uc3Qg
VVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBkYXRhKQotICAgIDogdXJsKHVybCkKLSAgICAsIG1pbWVUeXBlKG1pbWVUeXBlKQotICAgICwg
ZGF0YShkYXRhKQotewotfQotCi1QYWdlU2VyaWFsaXplcjo6UGFnZVNlcmlhbGl6ZXIoVmVjdG9y
PFBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZT4qIHJlc291cmNlcykKK1BhZ2VTZXJpYWxpemVyOjpQ
YWdlU2VyaWFsaXplcihWZWN0b3I8UGFnZVNlcmlhbGl6ZXI6OlJlc291cmNlPiYgcmVzb3VyY2Vz
KQogICAgIDogbV9yZXNvdXJjZXMocmVzb3VyY2VzKQotICAgICwgbV9ibGFua0ZyYW1lQ291bnRl
cigwKQogewogfQogCi12b2lkIFBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemUoUGFnZSogcGFnZSkK
K3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShQYWdlJiBwYWdlKQogewotICAgIHNlcmlh
bGl6ZUZyYW1lKCZwYWdlLT5tYWluRnJhbWUoKSk7CisgICAgc2VyaWFsaXplRnJhbWUoJnBhZ2Uu
bWFpbkZyYW1lKCkpOwogfQogCiB2b2lkIFBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVGcmFtZShG
cmFtZSogZnJhbWUpCkBAIC0yMTgsNyArMjAwLDcgQEAgdm9pZCBQYWdlU2VyaWFsaXplcjo6c2Vy
aWFsaXplRnJhbWUoRnJhbWUqIGZyYW1lKQogICAgIH0KICAgICBTdHJpbmcgdGV4dCA9IGFjY3Vt
dWxhdG9yLnNlcmlhbGl6ZU5vZGVzKCpkb2N1bWVudC0+ZG9jdW1lbnRFbGVtZW50KCksIEluY2x1
ZGVOb2RlKTsKICAgICBDU3RyaW5nIGZyYW1lSFRNTCA9IHRleHRFbmNvZGluZy5lbmNvZGUodGV4
dCwgRW50aXRpZXNGb3JVbmVuY29kYWJsZXMpOwotICAgIG1fcmVzb3VyY2VzLT5hcHBlbmQoUmVz
b3VyY2UodXJsLCBkb2N1bWVudC0+c3VnZ2VzdGVkTUlNRVR5cGUoKSwgU2hhcmVkQnVmZmVyOjpj
cmVhdGUoZnJhbWVIVE1MLmRhdGEoKSwgZnJhbWVIVE1MLmxlbmd0aCgpKSkpOworICAgIG1fcmVz
b3VyY2VzLmFwcGVuZCh7IHVybCwgZG9jdW1lbnQtPnN1Z2dlc3RlZE1JTUVUeXBlKCksIFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlKGZyYW1lSFRNTC5kYXRhKCksIGZyYW1lSFRNTC5sZW5ndGgoKSkgfSk7
CiAgICAgbV9yZXNvdXJjZVVSTHMuYWRkKHVybCk7CiAKICAgICBmb3IgKGF1dG8mIG5vZGUgOiBu
b2RlcykgewpAQCAtMjg0LDcgKzI2Niw3IEBAIHZvaWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6
ZUNTU1N0eWxlU2hlZXQoQ1NTU3R5bGVTaGVldCogc3R5bGVTaGVldCwgY29uc3QgVVJMCiAgICAg
ICAgIEFTU0VSVCh0ZXh0RW5jb2RpbmcuaXNWYWxpZCgpKTsKICAgICAgICAgU3RyaW5nIHRleHRT
dHJpbmcgPSBjc3NUZXh0LnRvU3RyaW5nKCk7CiAgICAgICAgIENTdHJpbmcgdGV4dCA9IHRleHRF
bmNvZGluZy5lbmNvZGUodGV4dFN0cmluZywgRW50aXRpZXNGb3JVbmVuY29kYWJsZXMpOwotICAg
ICAgICBtX3Jlc291cmNlcy0+YXBwZW5kKFJlc291cmNlKHVybCwgU3RyaW5nKCJ0ZXh0L2NzcyIp
LCBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh0ZXh0LmRhdGEoKSwgdGV4dC5sZW5ndGgoKSkpKTsKKyAg
ICAgICAgbV9yZXNvdXJjZXMuYXBwZW5kKHsgdXJsLCBBU0NJSUxpdGVyYWwgeyAidGV4dC9jc3Mi
IH0sIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHRleHQuZGF0YSgpLCB0ZXh0Lmxlbmd0aCgpKSB9KTsK
ICAgICAgICAgbV9yZXNvdXJjZVVSTHMuYWRkKHVybCk7CiAgICAgfQogfQpAQCAtMzA2LDggKzI4
OCw3IEBAIHZvaWQgUGFnZVNlcmlhbGl6ZXI6OmFkZEltYWdlVG9SZXNvdXJjZXMoQ2FjaGVkSW1h
Z2UqIGltYWdlLCBSZW5kZXJFbGVtZW50KiBpbWFnCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBTdHJpbmcgbWltZVR5cGUgPSBpbWFnZS0+cmVzcG9uc2UoKS5taW1lVHlwZSgpOwotICAg
IG1fcmVzb3VyY2VzLT5hcHBlbmQoUmVzb3VyY2UodXJsLCBtaW1lVHlwZSwgZGF0YSkpOworICAg
IG1fcmVzb3VyY2VzLmFwcGVuZCh7IHVybCwgaW1hZ2UtPnJlc3BvbnNlKCkubWltZVR5cGUoKSwg
V1RGTW92ZShkYXRhKSB9KTsKICAgICBtX3Jlc291cmNlVVJMcy5hZGQodXJsKTsKIH0KIApAQCAt
MzM0LDIwICszMTUsMTggQEAgdm9pZCBQYWdlU2VyaWFsaXplcjo6cmV0cmlldmVSZXNvdXJjZXNG
b3JQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVydGllcyogc3R5bGUKICAgICAgICAgaWYgKCFp
bWFnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIFVSTCB1cmwgPSBkb2N1bWVu
dC0+Y29tcGxldGVVUkwoaW1hZ2UtPnVybCgpKTsKLSAgICAgICAgYWRkSW1hZ2VUb1Jlc291cmNl
cyhpbWFnZSwgbnVsbHB0ciwgdXJsKTsKKyAgICAgICAgYWRkSW1hZ2VUb1Jlc291cmNlcyhpbWFn
ZSwgbnVsbHB0ciwgZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGltYWdlLT51cmwoKSkpOwogICAgIH0K
IH0KIAogVVJMIFBhZ2VTZXJpYWxpemVyOjp1cmxGb3JCbGFua0ZyYW1lKEZyYW1lKiBmcmFtZSkK
IHsKLSAgICBIYXNoTWFwPEZyYW1lKiwgVVJMPjo6aXRlcmF0b3IgaXRlciA9IG1fYmxhbmtGcmFt
ZVVSTHMuZmluZChmcmFtZSk7CisgICAgYXV0byBpdGVyID0gbV9ibGFua0ZyYW1lVVJMcy5maW5k
KGZyYW1lKTsKICAgICBpZiAoaXRlciAhPSBtX2JsYW5rRnJhbWVVUkxzLmVuZCgpKQogICAgICAg
ICByZXR1cm4gaXRlci0+dmFsdWU7CiAgICAgU3RyaW5nIHVybCA9ICJ3eWNpd3lnOi8vZnJhbWUv
IiArIFN0cmluZzo6bnVtYmVyKG1fYmxhbmtGcmFtZUNvdW50ZXIrKyk7CiAgICAgVVJMIGZha2VV
UkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpOwogICAgIG1fYmxhbmtGcmFtZVVSTHMuYWRkKGZyYW1l
LCBmYWtlVVJMKTsKLQogICAgIHJldHVybiBmYWtlVVJMOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VTZXJpYWxpemVyLmgKaW5kZXggYTFiNDdiOWRiYmMwMzRiMTcyOTM1NGMwODIxYWFiZGQ1NzYy
ZWVhYy4uZDU3NDNiYzRmNjE0NjI5MjI4YzNmZmYwYTRiZWRjYjg3NTBjMTFmOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuaApAQCAtMzAsNyArMzAsNiBAQAogCiAjcHJhZ21hIG9u
Y2UKIAotI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIlVSTEhhc2guaCIKICNpbmNsdWRlICJT
aGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgpAQCAtNTYsMjAgKzU1LDIw
IEBAIHB1YmxpYzoKICAgICAgICAgVVJMIHVybDsKICAgICAgICAgU3RyaW5nIG1pbWVUeXBlOwog
ICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhOwotICAgICAgICBSZXNvdXJjZSgpOwot
ICAgICAgICBSZXNvdXJjZShjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQYXNz
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSk7CiAgICAgfTsKIAotICAgIGV4cGxpY2l0IFBhZ2VT
ZXJpYWxpemVyKFZlY3RvcjxSZXNvdXJjZT4qKTsKKyAgICBleHBsaWNpdCBQYWdlU2VyaWFsaXpl
cihWZWN0b3I8UmVzb3VyY2U+Jik7CiAKICAgICAvLyBJbml0aWF0ZXMgdGhlIHNlcmlhbGl6YXRp
b24gb2YgdGhlIGZyYW1lJ3MgcGFnZS4gQWxsIHNlcmlhbGl6ZWQgY29udGVudCBhbmQgcmV0cmll
dmVkCiAgICAgLy8gcmVzb3VyY2VzIGFyZSBhZGRlZCB0byB0aGUgVmVjdG9yIHBhc3NlZCB0byB0
aGUgY29uc3RydWN0b3IuIFRoZSBmaXJzdCByZXNvdXJjZSBpbiB0aGF0CiAgICAgLy8gdmVjdG9y
IGlzIHRoZSB0b3AgZnJhbWUgc2VyaWFsaXplZCBjb250ZW50LgotICAgIHZvaWQgc2VyaWFsaXpl
KFBhZ2UqKTsKKyAgICB2b2lkIHNlcmlhbGl6ZShQYWdlJik7CisKK3ByaXZhdGU6CisgICAgY2xh
c3MgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOwogCiAgICAgVVJMIHVybEZvckJsYW5rRnJh
bWUoRnJhbWUqKTsKIAotcHJpdmF0ZToKICAgICB2b2lkIHNlcmlhbGl6ZUZyYW1lKEZyYW1lKik7
CiAKICAgICAvLyBTZXJpYWxpemVzIHRoZSBzdHlsZXNoZWV0IGJhY2sgdG8gdGV4dCBhbmQgYWRk
cyBpdCB0byB0aGUgcmVzb3VyY2VzIGlmIFVSTCBpcyBub3QtZW1wdHkuCkBAIC04MCwxMCArNzks
MTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJldHJpZXZlUmVzb3VyY2VzRm9yUHJvcGVydGllcyhj
b25zdCBTdHlsZVByb3BlcnRpZXMqLCBEb2N1bWVudCopOwogICAgIHZvaWQgcmV0cmlldmVSZXNv
dXJjZXNGb3JSdWxlKFN0eWxlUnVsZSYsIERvY3VtZW50Kik7CiAKLSAgICBWZWN0b3I8UmVzb3Vy
Y2U+KiBtX3Jlc291cmNlczsKKyAgICBWZWN0b3I8UmVzb3VyY2U+JiBtX3Jlc291cmNlczsKICAg
ICBMaXN0SGFzaFNldDxVUkw+IG1fcmVzb3VyY2VVUkxzOwogICAgIEhhc2hNYXA8RnJhbWUqLCBV
Ukw+IG1fYmxhbmtGcmFtZVVSTHM7Ci0gICAgdW5zaWduZWQgbV9ibGFua0ZyYW1lQ291bnRlcjsK
KyAgICB1bnNpZ25lZCBtX2JsYW5rRnJhbWVDb3VudGVyIHsgMCB9OwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZUVudHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnkuaAppbmRleCBi
M2E4NGEzYTlkY2E4MmJiZmE4YjM0MDc0YmVjYzczYjQ4N2VkYWFlLi5mOGQ2Y2E3ZmVjODBjMGZm
ZTZhOTg2ZWJmZTQ4MWViMzQ1MGJjYmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BlcmZvcm1hbmNlRW50cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNl
RW50cnkuaApAQCAtMzQsNyArMzQsNiBAQAogI2lmIEVOQUJMRShXRUJfVElNSU5HKQogCiAjaW5j
bHVkZSAiUGVyZm9ybWFuY2UuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNTQsNyArNTMsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGlzTWFyaygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCBib29sIGlzTWVhc3VyZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICBzdGF0aWMg
Ym9vbCBzdGFydFRpbWVDb21wYXJlTGVzc1RoYW4oUGFzc1JlZlB0cjxQZXJmb3JtYW5jZUVudHJ5
PiBhLCBQYXNzUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+IGIpCisgICAgc3RhdGljIGJvb2wgc3Rh
cnRUaW1lQ29tcGFyZUxlc3NUaGFuKGNvbnN0IFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiYgYSwg
Y29uc3QgUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+JiBiKQogICAgIHsKICAgICAgICAgcmV0dXJu
IGEtPnN0YXJ0VGltZSgpIDwgYi0+c3RhcnRUaW1lKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwCmluZGV4IGQ5NTMxODA1NDcwZjhlZWNh
NDI4NzYzYjdjYTFlYWM1M2UxNzNiNmYuLjlhNmM3YWNlMzk0MGVlMzhkNjU3ZWJiYTM1YTE4MzYz
ODgwYTQ5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2Vy
VGltaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWlu
Zy5jcHAKQEAgLTg3LDE0ICs4NywxNCBAQCBVc2VyVGltaW5nOjpVc2VyVGltaW5nKFBlcmZvcm1h
bmNlJiBwZXJmb3JtYW5jZSkKIHsKIH0KIAotc3RhdGljIHZvaWQgaW5zZXJ0UGVyZm9ybWFuY2VF
bnRyeShQZXJmb3JtYW5jZUVudHJ5TWFwJiBwZXJmb3JtYW5jZUVudHJ5TWFwLCBQYXNzUmVmUHRy
PFBlcmZvcm1hbmNlRW50cnk+IHBlcmZvcm1hbmNlRW50cnkpCitzdGF0aWMgdm9pZCBpbnNlcnRQ
ZXJmb3JtYW5jZUVudHJ5KFBlcmZvcm1hbmNlRW50cnlNYXAmIHBlcmZvcm1hbmNlRW50cnlNYXAs
IFJlZjxQZXJmb3JtYW5jZUVudHJ5PiYmIHBlcmZvcm1hbmNlRW50cnkpCiB7Ci0gICAgUmVmUHRy
PFBlcmZvcm1hbmNlRW50cnk+IGVudHJ5ID0gcGVyZm9ybWFuY2VFbnRyeTsKLSAgICBQZXJmb3Jt
YW5jZUVudHJ5TWFwOjppdGVyYXRvciBpdCA9IHBlcmZvcm1hbmNlRW50cnlNYXAuZmluZChlbnRy
eS0+bmFtZSgpKTsKKyAgICBSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4gZW50cnkgPSBXVEZNb3Zl
KHBlcmZvcm1hbmNlRW50cnkpOworICAgIGF1dG8gaXQgPSBwZXJmb3JtYW5jZUVudHJ5TWFwLmZp
bmQoZW50cnktPm5hbWUoKSk7CiAgICAgaWYgKGl0ICE9IHBlcmZvcm1hbmNlRW50cnlNYXAuZW5k
KCkpCi0gICAgICAgIGl0LT52YWx1ZS5hcHBlbmQoZW50cnkpOworICAgICAgICBpdC0+dmFsdWUu
YXBwZW5kKFdURk1vdmUoZW50cnkpKTsKICAgICBlbHNlCi0gICAgICAgIHBlcmZvcm1hbmNlRW50
cnlNYXAuc2V0KGVudHJ5LT5uYW1lKCksIFZlY3RvcjxSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4+
eyBlbnRyeSB9KTsKKyAgICAgICAgcGVyZm9ybWFuY2VFbnRyeU1hcC5zZXQoZW50cnktPm5hbWUo
KSwgVmVjdG9yPFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5Pj4geyBXVEZNb3ZlKGVudHJ5KSB9KTsK
IH0KIAogc3RhdGljIHZvaWQgY2xlYXJQZWZvcm1hbmNlRW50cmllcyhQZXJmb3JtYW5jZUVudHJ5
TWFwJiBwZXJmb3JtYW5jZUVudHJ5TWFwLCBjb25zdCBTdHJpbmcmIG5hbWUpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZU92ZXJsYXkuY3BwCmluZGV4IGFlODExMmNhMjYzOTkx
NmY0MTQ1ZTkzMjNkZTBkMmYyODE5NWFjYjAuLmU3NDNkODgwZTIwY2IxZmRmODU3MDE2MGQwYjFh
ZDU4MzkyOWI4ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2Fn
ZU92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZU92ZXJs
YXkuY3BwCkBAIC01Myw3ICs1Myw3IEBAIFJlc291cmNlVXNhZ2VPdmVybGF5Ojp+UmVzb3VyY2VV
c2FnZU92ZXJsYXkoKQogCiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYSBoYWNrIHNvIHdlIGRvbid0
IHRyeSB0byB1bmluc3RhbGwgdGhlIFBhZ2VPdmVybGF5IGR1cmluZyBQYWdlIGRlc3RydWN0aW9u
LgogICAgIGlmIChtX3BhZ2UubWFpbkZyYW1lKCkucGFnZSgpKQotICAgICAgICBtX3BhZ2UubWFp
bkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkobV9v
dmVybGF5LmdldCgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgICAg
IG1fcGFnZS5tYWluRnJhbWUoKS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdl
T3ZlcmxheSgqbV9vdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiB9
CiAKIHZvaWQgUmVzb3VyY2VVc2FnZU92ZXJsYXk6OmluaXRpYWxpemUoKQpAQCAtNzIsNyArNzIs
NyBAQCB2b2lkIFJlc291cmNlVXNhZ2VPdmVybGF5Ojppbml0aWFsaXplKCkKIAogICAgIG1fb3Zl
cmxheS0+c2V0RnJhbWUoaW5pdGlhbFJlY3QpOwogICAgIG1fb3ZlcmxheS0+c2V0U2hvdWxkSWdu
b3JlTW91c2VFdmVudHNPdXRzaWRlQm91bmRzKGZhbHNlKTsKLSAgICBtX3BhZ2UubWFpbkZyYW1l
KCkucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KG1fb3ZlcmxheS5n
ZXQoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgIG1fcGFnZS5tYWlu
RnJhbWUoKS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fb3Zl
cmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgIHBsYXRmb3JtSW5p
dGlhbGl6ZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25CYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRp
b25CYXNlLmgKaW5kZXggNWFkZTAwMjJlYmMwZDg0ZDI3ODY4ZmUyNGI1NGQ2NmE2MWU3N2U1OC4u
MmRkMGMzMDllMDU4MmYzNWNmOTM2ZjUwYWNkOWMxYWMzNDE2MzU1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaApAQCAtMzEsNyArMzEsNiBAQAog
I2luY2x1ZGUgIkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNp
bmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
Q29udHJvbGxlci5jcHAKaW5kZXggNTg4OTZkYjJmMWU5ZmQ0NTM3OGIzNjdjMDBlYzcxN2JiMTNl
NDk5Yy4uNGM0MGM5MjNhMjNlMjMzODg0MDg0MmU4ODNjZTA1ZGIxZTdiZGQxYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5j
cHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjpj
bGVhcihSZW5kZXJFbGVtZW50JiByZW5kZXJlcikKICAgICBFbGVtZW50KiBlbGVtZW50ID0gcmVu
ZGVyZXIuZWxlbWVudCgpOwogCiAgICAgbV9ldmVudHNUb0Rpc3BhdGNoLnJlbW92ZUFsbE1hdGNo
aW5nKFtlbGVtZW50XSAoY29uc3QgRXZlbnRUb0Rpc3BhdGNoJiBpbmZvKSB7Ci0gICAgICAgIHJl
dHVybiBpbmZvLmVsZW1lbnQgPT0gZWxlbWVudDsKKyAgICAgICAgcmV0dXJuIGluZm8uZWxlbWVu
dC5wdHIoKSA9PSBlbGVtZW50OwogICAgIH0pOwogCiAgICAgbV9lbGVtZW50Q2hhbmdlc1RvRGlz
cGF0Y2gucmVtb3ZlQWxsTWF0Y2hpbmcoW2VsZW1lbnRdKGF1dG8mIGN1cnJlbnRFbGVtZW50KSB7
CkBAIC0yMDMsNyArMjAzLDcgQEAgdm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6Zmly
ZUV2ZW50c0FuZFVwZGF0ZVN0eWxlKCkKICAgICAvLyBmaXJlIGFsbCB0aGUgZXZlbnRzCiAgICAg
VmVjdG9yPEV2ZW50VG9EaXNwYXRjaD4gZXZlbnRzVG9EaXNwYXRjaCA9IFdURk1vdmUobV9ldmVu
dHNUb0Rpc3BhdGNoKTsKICAgICBmb3IgKGF1dG8mIGV2ZW50IDogZXZlbnRzVG9EaXNwYXRjaCkg
ewotICAgICAgICBFbGVtZW50JiBlbGVtZW50ID0gKmV2ZW50LmVsZW1lbnQ7CisgICAgICAgIEVs
ZW1lbnQmIGVsZW1lbnQgPSBldmVudC5lbGVtZW50OwogICAgICAgICBpZiAoZXZlbnQuZXZlbnRU
eXBlID09IGV2ZW50TmFtZXMoKS50cmFuc2l0aW9uZW5kRXZlbnQpCiAgICAgICAgICAgICBlbGVt
ZW50LmRpc3BhdGNoRXZlbnQoVHJhbnNpdGlvbkV2ZW50OjpjcmVhdGUoZXZlbnQuZXZlbnRUeXBl
LCBldmVudC5uYW1lLCBldmVudC5lbGFwc2VkVGltZSwgUHNldWRvRWxlbWVudDo6cHNldWRvRWxl
bWVudE5hbWVGb3JFdmVudHMoZWxlbWVudC5wc2V1ZG9JZCgpKSkpOwogICAgICAgICBlbHNlCkBA
IC0yMjUsMjEgKzIyNSwxNSBAQCB2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjpzdGFy
dFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCkKICAgICAgICAgbV91cGRhdGVTdHlsZUlm
TmVlZGVkRGlzcGF0Y2hlci5zdGFydE9uZVNob3QoMCk7CiB9CiAKLXZvaWQgQW5pbWF0aW9uQ29u
dHJvbGxlclByaXZhdGU6OmFkZEV2ZW50VG9EaXNwYXRjaChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVs
ZW1lbnQsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGRvdWJsZSBlbGFwc2VkVGltZSkKK3ZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFk
ZEV2ZW50VG9EaXNwYXRjaChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpCiB7Ci0gICAg
bV9ldmVudHNUb0Rpc3BhdGNoLmdyb3cobV9ldmVudHNUb0Rpc3BhdGNoLnNpemUoKSsxKTsKLSAg
ICBFdmVudFRvRGlzcGF0Y2gmIGV2ZW50ID0gbV9ldmVudHNUb0Rpc3BhdGNoW21fZXZlbnRzVG9E
aXNwYXRjaC5zaXplKCktMV07Ci0gICAgZXZlbnQuZWxlbWVudCA9IGVsZW1lbnQ7Ci0gICAgZXZl
bnQuZXZlbnRUeXBlID0gZXZlbnRUeXBlOwotICAgIGV2ZW50Lm5hbWUgPSBuYW1lOwotICAgIGV2
ZW50LmVsYXBzZWRUaW1lID0gZWxhcHNlZFRpbWU7Ci0gICAgCisgICAgbV9ldmVudHNUb0Rpc3Bh
dGNoLmFwcGVuZCh7IGVsZW1lbnQsIGV2ZW50VHlwZSwgbmFtZSwgZWxhcHNlZFRpbWUgfSk7CiAg
ICAgc3RhcnRVcGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hlcigpOwogfQogCi12b2lkIEFuaW1h
dGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFbGVtZW50Q2hhbmdlVG9EaXNwYXRjaChSZWY8RWxl
bWVudD4mJiBlbGVtZW50KQordm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6YWRkRWxl
bWVudENoYW5nZVRvRGlzcGF0Y2goRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBtX2VsZW1lbnRD
aGFuZ2VzVG9EaXNwYXRjaC5hcHBlbmQoV1RGTW92ZShlbGVtZW50KSk7CisgICAgbV9lbGVtZW50
Q2hhbmdlc1RvRGlzcGF0Y2guYXBwZW5kKGVsZW1lbnQpOwogICAgIEFTU0VSVChtX2VsZW1lbnRD
aGFuZ2VzVG9EaXNwYXRjaC5sYXN0KCktPmRvY3VtZW50KCkucGFnZUNhY2hlU3RhdGUoKSA9PSBE
b2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpOwogICAgIHN0YXJ0VXBkYXRlU3R5bGVJZk5lZWRlZERp
c3BhdGNoZXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCmluZGV4IGZiOWNjODJiODE1MTdkMGJh
MzI3M2YzODBmMjBiY2Q4YTk4NjFmNTguLjQ5YWQzZjljOTU0MjU1YzMxZDBmYmZmYTRjNjI2OGIw
Njc5MjE3ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaApAQCAtMjksMzMgKzI5LDIxIEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgIkFuaW1hdGlvbkJhc2UuaCIKLSNpbmNsdWRlICJDU1NQcm9w
ZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
LSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEFuaW1hdGlvbkJhc2U7CiBjbGFz
cyBDb21wb3NpdGVBbmltYXRpb247CiBjbGFzcyBEb2N1bWVudDsKLWNsYXNzIEVsZW1lbnQ7CiBj
bGFzcyBGcmFtZTsKLWNsYXNzIFJlbmRlckVsZW1lbnQ7Ci1jbGFzcyBSZW5kZXJTdHlsZTsKIAot
ZW51bSBTZXRDaGFuZ2VkIHsKLSAgICBEb05vdENhbGxTZXRDaGFuZ2VkID0gMCwKLSAgICBDYWxs
U2V0Q2hhbmdlZCA9IDEKLX07CitlbnVtIFNldENoYW5nZWQgeyBEb05vdENhbGxTZXRDaGFuZ2Vk
LCBDYWxsU2V0Q2hhbmdlZCB9OwogCiBjbGFzcyBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZSB7
Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUpOyBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1
YmxpYzoKICAgICBleHBsaWNpdCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZShGcmFtZSYpOwog
ICAgIH5BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZSgpOwpAQCAtNjksOCArNTcsOCBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyRmlyZWQoKTsKICAg
ICB2b2lkIHN0YXJ0VXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIoKTsKLSAgICB2b2lkIGFk
ZEV2ZW50VG9EaXNwYXRjaChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGNvbnN0IEF0b21p
Y1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGRvdWJsZSBlbGFwc2VkVGlt
ZSk7Ci0gICAgdm9pZCBhZGRFbGVtZW50Q2hhbmdlVG9EaXNwYXRjaChSZWY8RWxlbWVudD4mJik7
CisgICAgdm9pZCBhZGRFdmVudFRvRGlzcGF0Y2goRWxlbWVudCYsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSk7Cisg
ICAgdm9pZCBhZGRFbGVtZW50Q2hhbmdlVG9EaXNwYXRjaChFbGVtZW50Jik7CiAKICAgICBib29s
IGhhc0FuaW1hdGlvbnMoKSBjb25zdCB7IHJldHVybiAhbV9jb21wb3NpdGVBbmltYXRpb25zLmlz
RW1wdHkoKTsgfQogCkBAIC0xMzQsMjEgKzEyMiwxOSBAQCBwcml2YXRlOgogICAgIFRpbWVyIG1f
YW5pbWF0aW9uVGltZXI7CiAgICAgVGltZXIgbV91cGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hl
cjsKICAgICBGcmFtZSYgbV9mcmFtZTsKLSAgICAKLSAgICBjbGFzcyBFdmVudFRvRGlzcGF0Y2gg
ewotICAgIHB1YmxpYzoKLSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQ7CisKKyAgICBz
dHJ1Y3QgRXZlbnRUb0Rpc3BhdGNoIHsKKyAgICAgICAgUmVmPEVsZW1lbnQ+IGVsZW1lbnQ7CiAg
ICAgICAgIEF0b21pY1N0cmluZyBldmVudFR5cGU7CiAgICAgICAgIFN0cmluZyBuYW1lOwogICAg
ICAgICBkb3VibGUgZWxhcHNlZFRpbWU7CiAgICAgfTsKLSAgICAKICAgICBWZWN0b3I8RXZlbnRU
b0Rpc3BhdGNoPiBtX2V2ZW50c1RvRGlzcGF0Y2g7CiAgICAgVmVjdG9yPFJlZjxFbGVtZW50Pj4g
bV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2g7CiAgICAgCiAgICAgZG91YmxlIG1fYmVnaW5Bbmlt
YXRpb25VcGRhdGVUaW1lOwogCi0gICAgdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxBbmltYXRpb25C
YXNlPj4gQW5pbWF0aW9uc1NldDsKKyAgICB1c2luZyBBbmltYXRpb25zU2V0ID0gSGFzaFNldDxS
ZWZQdHI8QW5pbWF0aW9uQmFzZT4+OwogICAgIEFuaW1hdGlvbnNTZXQgbV9hbmltYXRpb25zV2Fp
dGluZ0ZvclN0eWxlOwogICAgIEFuaW1hdGlvbnNTZXQgbV9hbmltYXRpb25zV2FpdGluZ0ZvclN0
YXJ0VGltZVJlc3BvbnNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXggOWY2YjkxN2M2ZWMxYzZmZWJiYTY5
NDBhMTY3MDViZGJkNWFjNzRjZi4uOGM1NDAzYTRjMTk2MzdhYTYyMWRlNmE0MDcxNjA3MWFlNzgz
NTAyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVy
dHlBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1By
b3BlcnR5QW5pbWF0aW9uLmNwcApAQCAtMTI1LDcgKzEyNSw3IEBAIHN0YXRpYyBpbmxpbmUgVHJh
bnNmb3JtT3BlcmF0aW9ucyBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbWF0aW9u
LCBjb25zCiAgICAgcmV0dXJuIHRvLmJsZW5kQnlVc2luZ01hdHJpeEludGVycG9sYXRpb24oZnJv
bSwgcHJvZ3Jlc3MsIGlzPFJlbmRlckJveD4oKmFuaW1hdGlvbi0+cmVuZGVyZXIoKSkgPyBkb3du
Y2FzdDxSZW5kZXJCb3g+KCphbmltYXRpb24tPnJlbmRlcmVyKCkpLmJvcmRlckJveFJlY3QoKS5z
aXplKCkgOiBMYXlvdXRTaXplKCkpOwogfQogCi1zdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8Q2xp
cFBhdGhPcGVyYXRpb24+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgQ2xpcFBhdGhP
cGVyYXRpb24qIGZyb20sIENsaXBQYXRoT3BlcmF0aW9uKiB0bywgZG91YmxlIHByb2dyZXNzKQor
c3RhdGljIGlubGluZSBSZWZQdHI8Q2xpcFBhdGhPcGVyYXRpb24+IGJsZW5kRnVuYyhjb25zdCBB
bmltYXRpb25CYXNlKiwgQ2xpcFBhdGhPcGVyYXRpb24qIGZyb20sIENsaXBQYXRoT3BlcmF0aW9u
KiB0bywgZG91YmxlIHByb2dyZXNzKQogewogICAgIGlmICghZnJvbSB8fCAhdG8pCiAgICAgICAg
IHJldHVybiB0bzsKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8
Q2xpcFBhdGhPcGVyYXRpb24+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgQ2xpcAog
ICAgIHJldHVybiBTaGFwZUNsaXBQYXRoT3BlcmF0aW9uOjpjcmVhdGUodG9TaGFwZS5ibGVuZChm
cm9tU2hhcGUsIHByb2dyZXNzKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxTaGFw
ZVZhbHVlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIFNoYXBlVmFsdWUqIGZyb20s
IFNoYXBlVmFsdWUqIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5lIFJlZlB0cjxT
aGFwZVZhbHVlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIFNoYXBlVmFsdWUqIGZy
b20sIFNoYXBlVmFsdWUqIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgaWYgKCFmcm9tIHx8
ICF0bykKICAgICAgICAgcmV0dXJuIHRvOwpAQCAtMTYzLDcgKzE2Myw3IEBAIHN0YXRpYyBpbmxp
bmUgUGFzc1JlZlB0cjxTaGFwZVZhbHVlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSos
IFNoYXBlVmFsdWUqCiAgICAgcmV0dXJuIFNoYXBlVmFsdWU6OmNyZWF0ZSh0b1NoYXBlLmJsZW5k
KGZyb21TaGFwZSwgcHJvZ3Jlc3MpLCB0by0+Y3NzQm94KCkpOwogfQogCi1zdGF0aWMgaW5saW5l
IFBhc3NSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFz
ZSogYW5pbWF0aW9uLCBGaWx0ZXJPcGVyYXRpb24qIGZyb21PcCwgRmlsdGVyT3BlcmF0aW9uKiB0
b09wLCBkb3VibGUgcHJvZ3Jlc3MsIGJvb2wgYmxlbmRUb1Bhc3N0aHJvdWdoID0gZmFsc2UpCitz
dGF0aWMgaW5saW5lIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGJsZW5kRnVuYyhjb25zdCBBbmlt
YXRpb25CYXNlKiBhbmltYXRpb24sIEZpbHRlck9wZXJhdGlvbiogZnJvbU9wLCBGaWx0ZXJPcGVy
YXRpb24qIHRvT3AsIGRvdWJsZSBwcm9ncmVzcywgYm9vbCBibGVuZFRvUGFzc3Rocm91Z2ggPSBm
YWxzZSkKIHsKICAgICBBU1NFUlQodG9PcCk7CiAgICAgaWYgKHRvT3AtPmJsZW5kaW5nTmVlZHNS
ZW5kZXJlclNpemUoKSkgewpAQCAtMjE4LDcgKzIxOCw3IEBAIHN0YXRpYyBpbmxpbmUgRmlsdGVy
T3BlcmF0aW9ucyBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgY29uc3QgRmls
dGVyCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0
eWxlSW1hZ2U+IGJsZW5kRmlsdGVyKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIENhY2hlZElt
YWdlKiBpbWFnZSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZnJvbSwgY29uc3QgRmlsdGVyT3Bl
cmF0aW9ucyYgdG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPFN0eWxl
SW1hZ2U+IGJsZW5kRmlsdGVyKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIENhY2hlZEltYWdl
KiBpbWFnZSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZnJvbSwgY29uc3QgRmlsdGVyT3BlcmF0
aW9ucyYgdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBBU1NFUlQoaW1hZ2UpOwogICAgIEZp
bHRlck9wZXJhdGlvbnMgZmlsdGVyUmVzdWx0ID0gYmxlbmRGaWx0ZXJPcGVyYXRpb25zKGFuaW0s
IGZyb20sIHRvLCBwcm9ncmVzcyk7CkBAIC0yNzgsNyArMjc4LDcgQEAgc3RhdGljIGlubGluZSBW
ZWN0b3I8U1ZHTGVuZ3RoVmFsdWU+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgY29u
c3QgVmVjdG8KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgaW5saW5lIFBhc3NSZWZQ
dHI8U3R5bGVJbWFnZT4gY3Jvc3NmYWRlQmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSosIFN0eWxl
Q2FjaGVkSW1hZ2UqIGZyb21TdHlsZUltYWdlLCBTdHlsZUNhY2hlZEltYWdlKiB0b1N0eWxlSW1h
Z2UsIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPFN0eWxlSW1hZ2U+IGNy
b3NzZmFkZUJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBTdHlsZUNhY2hlZEltYWdlKiBmcm9t
U3R5bGVJbWFnZSwgU3R5bGVDYWNoZWRJbWFnZSogdG9TdHlsZUltYWdlLCBkb3VibGUgcHJvZ3Jl
c3MpCiB7CiAgICAgLy8gSWYgcHJvZ3Jlc3MgaXMgYXQgb25lIG9mIHRoZSBleHRyZW1lcywgd2Ug
d2FudCBnZXRDb21wdXRlZFN0eWxlIHRvIHNob3cgdGhlIGltYWdlLAogICAgIC8vIG5vdCBhIGNv
bXBsZXRlZCBjcm9zcy1mYWRlLCBzbyB3ZSBoYW5kIGJhY2sgb25lIG9mIHRoZSBleGlzdGluZyBp
bWFnZXMuCkBAIC0yOTUsNyArMjk1LDcgQEAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0eWxl
SW1hZ2U+IGNyb3NzZmFkZUJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBTdHlsZUMKICAgICBy
ZXR1cm4gU3R5bGVHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKFdURk1vdmUoY3Jvc3NmYWRlVmFsdWUp
KTsKIH0KIAotc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGJsZW5kRnVuYyhj
b25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBTdHlsZUltYWdlKiBmcm9tLCBTdHlsZUltYWdlKiB0
bywgZG91YmxlIHByb2dyZXNzKQorc3RhdGljIGlubGluZSBSZWZQdHI8U3R5bGVJbWFnZT4gYmxl
bmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFN0eWxlSW1hZ2UqIGZyb20sIFN0eWxl
SW1hZ2UqIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgaWYgKCFmcm9tIHx8ICF0bykKICAg
ICAgICAgcmV0dXJuIHRvOwpAQCAtMzY0LDExICszNjQsMTIgQEAgc3RhdGljIGlubGluZSBOaW5l
UGllY2VJbWFnZSBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgY29uc3QgTmlu
ZVBpZWMKICAgICBpZiAoZnJvbS5pbWFnZSgpLT5pbWFnZVNpemUoYW5pbS0+cmVuZGVyZXIoKSwg
MS4wKSAhPSB0by5pbWFnZSgpLT5pbWFnZVNpemUoYW5pbS0+cmVuZGVyZXIoKSwgMS4wKSkKICAg
ICAgICAgcmV0dXJuIHRvOwogCi0gICAgYXV0byBuZXdDb250ZW50SW1hZ2UgPSBibGVuZEZ1bmMo
YW5pbSwgZnJvbS5pbWFnZSgpLCB0by5pbWFnZSgpLCBwcm9ncmVzcyk7Ci0gICAgcmV0dXJuIE5p
bmVQaWVjZUltYWdlKG5ld0NvbnRlbnRJbWFnZSwgZnJvbS5pbWFnZVNsaWNlcygpLCBmcm9tLmZp
bGwoKSwgZnJvbS5ib3JkZXJTbGljZXMoKSwgZnJvbS5vdXRzZXQoKSwgZnJvbS5ob3Jpem9udGFs
UnVsZSgpLCBmcm9tLnZlcnRpY2FsUnVsZSgpKTsKKyAgICByZXR1cm4gTmluZVBpZWNlSW1hZ2Uo
YmxlbmRGdW5jKGFuaW0sIGZyb20uaW1hZ2UoKSwgdG8uaW1hZ2UoKSwgcHJvZ3Jlc3MpLAorICAg
ICAgICBmcm9tLmltYWdlU2xpY2VzKCksIGZyb20uZmlsbCgpLCBmcm9tLmJvcmRlclNsaWNlcygp
LCBmcm9tLm91dHNldCgpLCBmcm9tLmhvcml6b250YWxSdWxlKCksIGZyb20udmVydGljYWxSdWxl
KCkpOwogfQogCiAjaWYgRU5BQkxFKFZBUklBVElPTl9GT05UUykKKwogc3RhdGljIGlubGluZSBG
b250VmFyaWF0aW9uU2V0dGluZ3MgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0s
IGNvbnN0IEZvbnRWYXJpYXRpb25TZXR0aW5ncyYgZnJvbSwgY29uc3QgRm9udFZhcmlhdGlvblNl
dHRpbmdzJiB0bywgZG91YmxlIHByb2dyZXNzKQogewogICAgIGlmIChmcm9tLnNpemUoKSAhPSB0
by5zaXplKCkpCkBAIC0zODUsNiArMzg2LDcgQEAgc3RhdGljIGlubGluZSBGb250VmFyaWF0aW9u
U2V0dGluZ3MgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIGNvbnN0IEYKICAg
ICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KKwogI2VuZGlmCiAKIGNsYXNzIEFuaW1hdGlvblBy
b3BlcnR5V3JhcHBlckJhc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKaW5kZXggNWI3NGU3Njc4MjhjNDVhNTYyOWUxOWZl
MjYwNTM4M2MyYTVmNmU4YS4uNjY5OTI3MDdiMWVlYWIxODQzZmUwMzlhYWM2MmRlMzBjNDQzMDJh
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5p
bWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVB
bmltYXRpb24uY3BwCkBAIC0xMjEsOCArMTIxLDggQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246
OnVwZGF0ZVRyYW5zaXRpb25zKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBjb25zdCBSZW5kZXIK
ICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHJ1bm5pbmcgYW5pbWF0aW9uIGZvciB0
aGlzIHByb3BlcnR5LCB0aGUgdHJhbnNpdGlvbiBpcyBvdmVycmlkZGVuCiAgICAgICAgICAgICAg
ICAgLy8gYW5kIHdlIGhhdmUgdG8gdXNlIHRoZSB1bmFuaW1hdGVkU3R5bGUgZnJvbSB0aGUgYW5p
bWF0aW9uLiBXZSBkbyB0aGUgdGVzdAogICAgICAgICAgICAgICAgIC8vIGFnYWluc3QgdGhlIHVu
YW5pbWF0ZWQgc3R5bGUgaGVyZSwgYnV0IHdlICJvdmVycmlkZSIgdGhlIHRyYW5zaXRpb24gbGF0
ZXIuCi0gICAgICAgICAgICAgICAgUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiBrZXlmcmFtZUFu
aW0gPSBnZXRBbmltYXRpb25Gb3JQcm9wZXJ0eShwcm9wKTsKLSAgICAgICAgICAgICAgICBhdXRv
KiBmcm9tU3R5bGUgPSBrZXlmcmFtZUFuaW0gPyBrZXlmcmFtZUFuaW0tPnVuYW5pbWF0ZWRTdHls
ZSgpIDogY3VycmVudFN0eWxlOworICAgICAgICAgICAgICAgIGF1dG8qIGtleWZyYW1lQW5pbWF0
aW9uID0gYW5pbWF0aW9uRm9yUHJvcGVydHkocHJvcCk7CisgICAgICAgICAgICAgICAgYXV0byog
ZnJvbVN0eWxlID0ga2V5ZnJhbWVBbmltYXRpb24gPyBrZXlmcmFtZUFuaW1hdGlvbi0+dW5hbmlt
YXRlZFN0eWxlKCkgOiBjdXJyZW50U3R5bGU7CiAKICAgICAgICAgICAgICAgICAvLyBTZWUgaWYg
dGhlcmUgaXMgYSBjdXJyZW50IHRyYW5zaXRpb24gZm9yIHRoaXMgcHJvcAogICAgICAgICAgICAg
ICAgIEltcGxpY2l0QW5pbWF0aW9uKiBpbXBsQW5pbSA9IG1fdHJhbnNpdGlvbnMuZ2V0KHByb3Ap
OwpAQCAtMTcyLDcgKzE3Miw3IEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVUcmFu
c2l0aW9ucyhSZW5kZXJFbGVtZW50KiByZW5kZXJlciwgY29uc3QgUmVuZGVyCiAgICAgICAgICAg
ICAgICAgICAgIExPRyhBbmltYXRpb25zLCAiQ3JlYXRlZCBJbXBsaWNpdEFuaW1hdGlvbiAlcCBv
biByZW5kZXJlciAlcCBmb3IgcHJvcGVydHkgJXMgZHVyYXRpb24gJS4yZiBkZWxheSAlLjJmIiwg
aW1wbGljaXRBbmltYXRpb24ucHRyKCksIHJlbmRlcmVyLCBnZXRQcm9wZXJ0eU5hbWUocHJvcCks
IGFuaW1hdGlvbi5kdXJhdGlvbigpLCBhbmltYXRpb24uZGVsYXkoKSk7CiAgICAgICAgICAgICAg
ICAgICAgIG1fdHJhbnNpdGlvbnMuc2V0KHByb3AsIFdURk1vdmUoaW1wbGljaXRBbmltYXRpb24p
KTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgCisKICAgICAgICAgICAgICAg
ICAvLyBXZSBvbmx5IG5lZWQgb25lIHBhc3MgZm9yIHRoZSBzaW5nbGUgcHJvcCBjYXNlCiAgICAg
ICAgICAgICAgICAgaWYgKCFhbGwpCiAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzk5
LDIxICszOTksMjEgQEAgZG91YmxlIENvbXBvc2l0ZUFuaW1hdGlvbjo6dGltZVRvTmV4dFNlcnZp
Y2UoKSBjb25zdAogICAgIHJldHVybiBtaW5UOwogfQogCi1QYXNzUmVmUHRyPEtleWZyYW1lQW5p
bWF0aW9uPiBDb21wb3NpdGVBbmltYXRpb246OmdldEFuaW1hdGlvbkZvclByb3BlcnR5KENTU1By
b3BlcnR5SUQgcHJvcGVydHkpIGNvbnN0CitLZXlmcmFtZUFuaW1hdGlvbiogQ29tcG9zaXRlQW5p
bWF0aW9uOjphbmltYXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5KSBjb25z
dAogewotICAgIFJlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4gcmV0dmFsOwotICAgIAorICAgIEtl
eWZyYW1lQW5pbWF0aW9uKiByZXN1bHQgPSBudWxscHRyOworCiAgICAgLy8gV2Ugd2FudCB0byBz
ZW5kIGJhY2sgdGhlIGxhc3QgYW5pbWF0aW9uIHdpdGggdGhlIHByb3BlcnR5IGlmIHRoZXJlIGFy
ZSBtdWx0aXBsZXMuCiAgICAgLy8gU28gd2UgbmVlZCB0byBpdGVyYXRlIHRocm91Z2ggYWxsIGFu
aW1hdGlvbnMKICAgICBpZiAoIW1fa2V5ZnJhbWVBbmltYXRpb25zLmlzRW1wdHkoKSkgewogICAg
ICAgICBtX2tleWZyYW1lQW5pbWF0aW9ucy5jaGVja0NvbnNpc3RlbmN5KCk7CiAgICAgICAgIGZv
ciAoYXV0byYgYW5pbWF0aW9uIDogbV9rZXlmcmFtZUFuaW1hdGlvbnMudmFsdWVzKCkpIHsKICAg
ICAgICAgICAgIGlmIChhbmltYXRpb24tPmhhc0FuaW1hdGlvbkZvclByb3BlcnR5KHByb3BlcnR5
KSkKLSAgICAgICAgICAgICAgICByZXR2YWwgPSBhbmltYXRpb247CisgICAgICAgICAgICAgICAg
cmVzdWx0ID0gYW5pbWF0aW9uLmdldCgpOwogICAgICAgICB9CiAgICAgfQotICAgIAotICAgIHJl
dHVybiByZXR2YWw7CisKKyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBib29sIENvbXBvc2l0ZUFu
aW1hdGlvbjo6Y29tcHV0ZUV4dGVudE9mVHJhbnNmb3JtQW5pbWF0aW9uKExheW91dFJlY3QmIGJv
dW5kcykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Nv
bXBvc2l0ZUFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9z
aXRlQW5pbWF0aW9uLmgKaW5kZXggMzM3ZmU2ZjE2NmU3MWMxY2U2MTlhZTIzODg5MzExODdmZjg2
NDdjYy4uNDBjM2E0OTFmMmE1NDhlYjNlMmIzMzE2YzRmMGZmZTA1MzIxMzkwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgKQEAg
LTcxLDcgKzcxLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0FuaW1hdGluZ1Byb3BlcnR5KENT
U1Byb3BlcnR5SUQsIGJvb2wgYWNjZWxlcmF0ZWRPbmx5LCBBbmltYXRpb25CYXNlOjpSdW5uaW5n
U3RhdGUpIGNvbnN0OwogCi0gICAgUGFzc1JlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4gZ2V0QW5p
bWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CisgICAgS2V5ZnJhbWVBbmlt
YXRpb24qIGFuaW1hdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQpIGNvbnN0OwogCiAgICAg
dm9pZCBvdmVycmlkZUltcGxpY2l0QW5pbWF0aW9ucyhDU1NQcm9wZXJ0eUlEKTsKICAgICB2b2lk
IHJlc3VtZU92ZXJyaWRkZW5JbXBsaWNpdEFuaW1hdGlvbnMoQ1NTUHJvcGVydHlJRCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAK
aW5kZXggNzE2YmVhODI0OTA0OTJjNDNiY2UxNzc0OWQxZmZiNTIxMjdjY2NmZi4uZmRlZDYyM2E2
YWRkYTkyNGFiNzYzNjNlMjQ2OWNiY2EzMmNiZmI3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcApAQCAtMTYzLDEwICsxNjMs
OSBAQCB2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjpvbkFuaW1hdGlvbkVuZChkb3VibGUgZWxhcHNl
ZFRpbWUpCiAgICAgLy8gcnVubmluZy4gQnV0IG5vdyB0aGF0IHRoZSB0cmFuc2l0aW9uIGhhcyBj
b21wbGV0ZWQsIHdlIG5lZWQgdG8gdXBkYXRlIHRoaXMgc3R5bGUgd2l0aCBpdHMgbmV3CiAgICAg
Ly8gZGVzdGluYXRpb24uIElmIHdlIGRpZG4ndCwgdGhlIG5leHQgdGltZSB0aHJvdWdoIHdlIHdv
dWxkIHRoaW5rIGEgdHJhbnNpdGlvbiBoYWQgc3RhcnRlZAogICAgIC8vIChjb21wYXJpbmcgdGhl
IG9sZCB1bmFuaW1hdGVkIHN0eWxlIHdpdGggdGhlIG5ldyBmaW5hbCBzdHlsZSBvZiB0aGUgdHJh
bnNpdGlvbikuCi0gICAgUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiBrZXlmcmFtZUFuaW0gPSBt
X2NvbXBvc2l0ZUFuaW1hdGlvbi0+Z2V0QW5pbWF0aW9uRm9yUHJvcGVydHkobV9hbmltYXRpbmdQ
cm9wZXJ0eSk7Ci0gICAgaWYgKGtleWZyYW1lQW5pbSkKLSAgICAgICAga2V5ZnJhbWVBbmltLT5z
ZXRVbmFuaW1hdGVkU3R5bGUoUmVuZGVyU3R5bGU6OmNsb25lUHRyKCptX3RvU3R5bGUpKTsKLSAg
ICAKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uID0gbV9jb21wb3NpdGVBbmltYXRpb24tPmFuaW1h
dGlvbkZvclByb3BlcnR5KG1fYW5pbWF0aW5nUHJvcGVydHkpKQorICAgICAgICBhbmltYXRpb24t
PnNldFVuYW5pbWF0ZWRTdHlsZShSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoKm1fdG9TdHlsZSkpOwor
CiAgICAgc2VuZFRyYW5zaXRpb25FdmVudChldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2ZW50
LCBlbGFwc2VkVGltZSk7CiAgICAgZW5kQW5pbWF0aW9uKCk7CiB9CkBAIC0xODcsNyArMTg2LDcg
QEAgYm9vbCBJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudChjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgZG91YmwKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICAgICAgICAgIC8vIFNjaGVkdWxlIGV2ZW50IGhhbmRsaW5nCi0gICAgICAgICAgICBt
X2NvbXBvc2l0ZUFuaW1hdGlvbi0+YW5pbWF0aW9uQ29udHJvbGxlcigpLmFkZEV2ZW50VG9EaXNw
YXRjaChlbGVtZW50LCBldmVudFR5cGUsIHByb3BlcnR5TmFtZSwgZWxhcHNlZFRpbWUpOworICAg
ICAgICAgICAgbV9jb21wb3NpdGVBbmltYXRpb24tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS5hZGRF
dmVudFRvRGlzcGF0Y2goKmVsZW1lbnQsIGV2ZW50VHlwZSwgcHJvcGVydHlOYW1lLCBlbGFwc2Vk
VGltZSk7CiAKICAgICAgICAgICAgIC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsICh1bmFuaW1hdGVk
KSBzdHlsZQogICAgICAgICAgICAgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkudHJhbnNp
dGlvbmVuZEV2ZW50ICYmIGVsZW1lbnQtPnJlbmRlcmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKaW5kZXggNDcxYmFjZjZm
MWI5ZjA1Y2UxZDM0ZGE4NzVmZThjNjdjOTRmZjU3ZC4uZGMyOWQyMjM5MWIwMzRiZGNlZTU2NmYz
YjJhNWMzMTdhMGRkMDAzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcApAQCAtMzI3LDcgKzMyNyw3IEBAIGJvb2wgS2V5ZnJh
bWVBbmltYXRpb246OnNlbmRBbmltYXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50
VHlwZSwgZG91YmxlCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgLy8gU2No
ZWR1bGUgZXZlbnQgaGFuZGxpbmcKLSAgICAgICAgbV9jb21wb3NpdGVBbmltYXRpb24tPmFuaW1h
dGlvbkNvbnRyb2xsZXIoKS5hZGRFdmVudFRvRGlzcGF0Y2goZWxlbWVudCwgZXZlbnRUeXBlLCBt
X2tleWZyYW1lcy5hbmltYXRpb25OYW1lKCksIGVsYXBzZWRUaW1lKTsKKyAgICAgICAgbV9jb21w
b3NpdGVBbmltYXRpb24tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS5hZGRFdmVudFRvRGlzcGF0Y2go
KmVsZW1lbnQsIGV2ZW50VHlwZSwgbV9rZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpLCBlbGFwc2Vk
VGltZSk7CiAKICAgICAgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgKHVuYW5pbWF0ZWQpIHN0
eWxlCiAgICAgICAgIGlmICgoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS53ZWJraXRBbmltYXRp
b25FbmRFdmVudCB8fCBldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLmFuaW1hdGlvbmVuZEV2ZW50
KSAmJiBlbGVtZW50LT5yZW5kZXJlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50
SGFuZGxlckVmbC5jcHAKaW5kZXggMjEwNmQxZTE5YTQ4NmEzODVmZmU4N2Y5MDBmYWFmZTkwOGJj
YWMxMi4uYWFkMDdkNmZmNmIxN2VjZGQ3MTcxMWU0MWVmNWI0ZTAzZWUwMDUxYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCkBAIC00OSw3ICs0OSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRleHREcmFn
RGVsYXkgPSAwLjA7CiAjZW5kaWYKIAotYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1D
b250cm9scyhLZXlib2FyZEV2ZW50KikgY29uc3QKK2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9B
bGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7
CiB9CkBAIC05NiwxMCArOTYsMTIgQEAgYm9vbCBFdmVudEhhbmRsZXI6OndpZGdldERpZEhhbmRs
ZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgV2kKIH0KIAogI2lm
IEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5k
bGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CisKK1JlZjxEYXRhVHJhbnNm
ZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAogewog
ICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCk7CiB9CisKICNl
bmRpZgogCiBib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUHJlc3NFdmVudFRvU3ViZnJhbWUo
TW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBGcmFtZSogc3ViZnJhbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcAppbmRleCA0M2YwNTM3NWU1
YmRlNjE0ZjkwOGE3YzE1NGQ4MmQ3YjA4ZWNlMjRiLi5hYWFkZTAwMmM1Yzg5YmRjZWMwMjUzNjVi
MDE5N2E1MDE5NmMyYjgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9FdmVu
dEhhbmRsZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxl
ckd0ay5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29uc3QgZG91
YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAuMDsKICNlbmRpZgogCi1ib29sIEV2
ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdAor
Ym9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50Jikg
Y29uc3QKIHsKICAgICAvLyBXZSBhbHdheXMgYWxsb3cgdGFicyB0byBhbGwgY29udHJvbHMKICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTk2LDEwICs5NiwxMiBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lk
Z2V0RGlkSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBX
aQogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVy
PiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKKworUmVm
PERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2Zlcigp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3Ao
KTsKIH0KKwogI2VuZGlmCiAKIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50
VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBtZXYsIEZyYW1lKiBzdWJm
cmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklP
Uy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQppbmRleCA1
MjRmYjVhZWE1YjNkNTIzNmI5NDFkN2FkMjU4OGI0ODljYmRhN2EwLi4yOWJhZGVmNTk1NTg0YTNm
Y2U1M2NhMmY4MjQxZTRmNmVmZDc1NGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZl
bnRIYW5kbGVySU9TLm1tCkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnRv
dWNoRXZlbnQoV2ViRXZlbnQgKmV2ZW50KQogfQogI2VuZGlmCiAKLWJvb2wgRXZlbnRIYW5kbGVy
Ojp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCogZXZlbnQpIGNvbnN0Citib29s
IEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQmIGV2ZW50
KSBjb25zdAogewogICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKTsKICAgICBpZiAoIXBh
Z2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KaW5kZXggZTU5
MTk3OGMwMGM0MGM2OWU3NzNhOTc2MjFkNzY3MzNiZDc1MWIwMi4uNjhkOWZmZDhlM2NjMGFlNzQw
OGI4MGIwYmUyYzU1OTFlY2IwNGMwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvRXZlbnRIYW5kbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50
SGFuZGxlck1hYy5tbQpAQCAtNzIzLDcgKzcyMyw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpldmVu
dEFjdGl2YXRlZFZpZXcoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCkgY29uc3QKIAog
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBFdmVu
dEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKK1JlZjxEYXRhVHJh
bnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAog
ewogICAgIC8vIE11c3QgYmUgZG9uZSBiZWZvcmUgb25kcmFnc3RhcnQgYWRkcyB0eXBlcyBhbmQg
ZGF0YSB0byB0aGUgcGJvYXJkLAogICAgIC8vIGFsc28gZG9uZSBmb3Igc2VjdXJpdHksIGFzIGl0
IGVyYXNlcyBkYXRhIGZyb20gdGhlIGxhc3QgZHJhZy4KQEAgLTczNCw3ICs3MzQsNyBAQCBQYXNz
UmVmUHRyPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFu
c2ZlcigpIGNvbnN0CiAKICNlbmRpZgogCi1ib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9y
bUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqIGV2ZW50KSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6
OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JiBldmVudCkgY29uc3QKIHsKICAg
ICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpAQCAtOTcxLDEw
ICs5NzEsMTAgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnBsYXRmb3JtUHJlcGFyZUZvcldoZWVsRXZl
bnRzKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWwKICAgICAgICAgICAgICAgICBtX2Zy
YW1lLm1haW5GcmFtZSgpLnB1c2hOZXdMYXRjaGluZ1N0YXRlKCk7CiAgICAgICAgICAgICAgICAg
bGF0Y2hpbmdTdGF0ZSA9IG1fZnJhbWUubWFpbkZyYW1lKCkubGF0Y2hpbmdTdGF0ZSgpOwogICAg
ICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldFN0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1p
dChmYWxzZSk7Ci0gICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0V2hlZWxFdmVudEVs
ZW1lbnQod2hlZWxFdmVudFRhcmdldCk7CisgICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+
c2V0V2hlZWxFdmVudEVsZW1lbnQod2hlZWxFdmVudFRhcmdldC5nZXQoKSk7CiAgICAgICAgICAg
ICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0RnJhbWUoJm1fZnJhbWUpOwogICAgICAgICAgICAgICAg
IC8vIEZJWE1FOiBXaGF0IHByZXZlbnRzIHVzIGZyb20gZGVsZXRpbmcgdGhpcyBzY3JvbGxhYmxl
IGNvbnRhaW5lciB3aGlsZSBzdGlsbCBob2xkaW5nIGEgcG9pbnRlciB0byBpdD8KLSAgICAgICAg
ICAgICAgICBsYXRjaGluZ1N0YXRlLT5zZXRTY3JvbGxhYmxlQ29udGFpbmVyKHNjcm9sbGFibGVD
b250YWluZXIpOworICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldFNjcm9sbGFibGVD
b250YWluZXIoc2Nyb2xsYWJsZUNvbnRhaW5lci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgbGF0
Y2hpbmdTdGF0ZS0+c2V0V2lkZ2V0SXNMYXRjaGVkKHJlc3VsdC5pc092ZXJXaWRnZXQoKSk7CiAg
ICAgICAgICAgICAgICAgaXNPdmVyV2lkZ2V0ID0gbGF0Y2hpbmdTdGF0ZS0+d2lkZ2V0SXNMYXRj
aGVkKCk7CiAgICAgICAgICAgICAgICAgbV9mcmFtZS5tYWluRnJhbWUoKS53aGVlbEV2ZW50RGVs
dGFGaWx0ZXIoKS0+YmVnaW5GaWx0ZXJpbmdEZWx0YXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaAppbmRleCA1NWU0ZDY1OTVl
ZWI2MDUzZjZhNmE5NDUwYjlkYWViODEyOGM1MjcwLi42NWIxY2VlYzZiMTEyN2IwNTk2MzIxZWM0
ODgyNDU3ZGY0MWIwNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJQYWdlT3Zl
cmxheS5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgogCiB0eXBlZGVmIHN0cnVjdCBfX0RESGlnaGxpZ2h0ICpEREhp
Z2hsaWdodFJlZjsKIApAQCAtMzksNiArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
CiBjbGFzcyBMYXlvdXRSZWN0OwogY2xhc3MgTWFpbkZyYW1lOworCiBzdHJ1Y3QgR2FwUmVjdHM7
CiAKIGNsYXNzIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIgOiBwcml2YXRlIFBhZ2VPdmVybGF5
OjpDbGllbnQgewpAQCAtNTQsMTQgKzU0LDE0IEBAIHByaXZhdGU6CiAgICAgY2xhc3MgSGlnaGxp
Z2h0IDogcHVibGljIFJlZkNvdW50ZWQ8SGlnaGxpZ2h0PiwgcHJpdmF0ZSBHcmFwaGljc0xheWVy
Q2xpZW50IHsKICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSGlnaGxpZ2h0KTsKICAgICBw
dWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGVGb3JTZWxlY3Rpb24o
U2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFBh
c3NSZWZQdHI8UmFuZ2U+KTsKLSAgICAgICAgc3RhdGljIFJlZjxIaWdobGlnaHQ+IGNyZWF0ZUZv
clRlbGVwaG9uZU51bWJlcihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiwgUmV0YWluUHRyPERE
SGlnaGxpZ2h0UmVmPiwgUGFzc1JlZlB0cjxSYW5nZT4pOworICAgICAgICBzdGF0aWMgUmVmPEhp
Z2hsaWdodD4gY3JlYXRlRm9yU2VsZWN0aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImLCBS
ZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+LCBSZWY8UmFuZ2U+JiYpOworICAgICAgICBzdGF0aWMg
UmVmPEhpZ2hsaWdodD4gY3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKFNlcnZpY2VzT3ZlcmxheUNv
bnRyb2xsZXImLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+LCBSZWY8UmFuZ2U+JiYpOwogICAg
ICAgICB+SGlnaGxpZ2h0KCk7CiAKICAgICAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKICAgICAg
ICAgRERIaWdobGlnaHRSZWYgZGRIaWdobGlnaHQoKSBjb25zdCB7IHJldHVybiBtX2RkSGlnaGxp
Z2h0LmdldCgpOyB9Ci0gICAgICAgIFJhbmdlKiByYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFu
Z2UuZ2V0KCk7IH0KKyAgICAgICAgUmFuZ2UmIHJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9yYW5n
ZS5nZXQoKTsgfQogICAgICAgICBHcmFwaGljc0xheWVyKiBsYXllcigpIGNvbnN0IHsgcmV0dXJu
IG1fZ3JhcGhpY3NMYXllci5nZXQoKTsgfQogCiAgICAgICAgIGVudW0gewpAQCAtNzcsNyArNzcs
NyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHNldERESGlnaGxpZ2h0KERESGlnaGxpZ2h0UmVm
KTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIGV4cGxpY2l0IEhpZ2hsaWdodChTZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyJiwgVHlwZSwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUGFzc1Jl
ZlB0cjxSYW5nZT4pOworICAgICAgICBIaWdobGlnaHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxl
ciYsIFR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFJlZjxSYW5nZT4mJik7CiAKICAg
ICAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAogICAgICAgICB2b2lkIG5vdGlmeUZsdXNoUmVx
dWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwpAQCAtODcsNyArODcsNyBAQCBw
cml2YXRlOgogICAgICAgICB2b2lkIGRpZEZpbmlzaEZhZGVPdXRBbmltYXRpb24oKTsKIAogICAg
ICAgICBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IG1fZGRIaWdobGlnaHQ7Ci0gICAgICAgIFJl
ZlB0cjxSYW5nZT4gbV9yYW5nZTsKKyAgICAgICAgUmVmPFJhbmdlPiBtX3JhbmdlOwogICAgICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9ncmFwaGljc0xheWVyOwogICAgICAg
ICBUeXBlIG1fdHlwZTsKICAgICAgICAgU2VydmljZXNPdmVybGF5Q29udHJvbGxlciogbV9jb250
cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXIubW0KaW5kZXggOWE4MTViNWFlNTU5NjQ5OWJkZjYxNmVkNDIxMWI5YTUyMzgx
NWU2Mi4uNGIwM2UyMmFlNDZiZTg5YWUyMzEwMmZiNDlmZjQ5MjFkNDA0NjhiZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1t
CkBAIC01NSwyMyArNTUsMjIgQEAgY29uc3QgZmxvYXQgaGlnaGxpZ2h0RmFkZUFuaW1hdGlvbkR1
cmF0aW9uID0gMC4zOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyOjpIaWdobGlnaHQ+IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hs
aWdodDo6Y3JlYXRlRm9yU2VsZWN0aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImIGNvbnRy
b2xsZXIsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFBhc3NSZWZQdHI8
UmFuZ2U+IHJhbmdlKQorUmVmPFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodD4g
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24o
U2VydmljZXNPdmVybGF5Q29udHJvbGxlciYgY29udHJvbGxlciwgUmV0YWluUHRyPERESGlnaGxp
Z2h0UmVmPiBkZEhpZ2hsaWdodCwgUmVmPFJhbmdlPiYmIHJhbmdlKQogewotICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IEhpZ2hsaWdodChjb250cm9sbGVyLCBIaWdobGlnaHQ6OlNlbGVjdGlvblR5
cGUsIGRkSGlnaGxpZ2h0LCByYW5nZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hs
aWdodChjb250cm9sbGVyLCBIaWdobGlnaHQ6OlNlbGVjdGlvblR5cGUsIGRkSGlnaGxpZ2h0LCBX
VEZNb3ZlKHJhbmdlKSkpOwogfQogCi1SZWY8U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGln
aGxpZ2h0PiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OmNyZWF0ZUZvclRl
bGVwaG9uZU51bWJlcihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiBjb250cm9sbGVyLCBSZXRh
aW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBQYXNzUmVmUHRyPFJhbmdlPiByYW5n
ZSkKK1JlZjxTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ+IFNlcnZpY2VzT3Zl
cmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKFNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIsIFJldGFpblB0cjxEREhpZ2hsaWdodFJl
Zj4gZGRIaWdobGlnaHQsIFJlZjxSYW5nZT4mJiByYW5nZSkKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBIaWdobGlnaHQoY29udHJvbGxlciwgSGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJU
eXBlLCBkZEhpZ2hsaWdodCwgcmFuZ2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdo
bGlnaHQoY29udHJvbGxlciwgSGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlLCBkZEhpZ2hs
aWdodCwgV1RGTW92ZShyYW5nZSkpKTsKIH0KIAotU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6
SGlnaGxpZ2h0OjpIaWdobGlnaHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYgY29udHJvbGxl
ciwgVHlwZSB0eXBlLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBQYXNz
UmVmUHRyPFdlYkNvcmU6OlJhbmdlPiByYW5nZSkKLSAgICA6IG1fcmFuZ2UocmFuZ2UpCitTZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OkhpZ2hsaWdodChTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyJiBjb250cm9sbGVyLCBUeXBlIHR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdo
dFJlZj4gZGRIaWdobGlnaHQsIFJlZjxXZWJDb3JlOjpSYW5nZT4mJiByYW5nZSkKKyAgICA6IG1f
cmFuZ2UoV1RGTW92ZShyYW5nZSkpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fY29udHJv
bGxlcigmY29udHJvbGxlcikKIHsKICAgICBBU1NFUlQoZGRIaWdobGlnaHQpOwotICAgIEFTU0VS
VChtX3JhbmdlKTsKIAogICAgIFBhZ2UqIHBhZ2UgPSBjb250cm9sbGVyLm1haW5GcmFtZSgpLnBh
Z2UoKTsKICAgICBtX2dyYXBoaWNzTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUocGFnZSA/
IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgOiBudWxscHRy
LCAqdGhpcyk7CkBAIC00MDksNyArNDA4LDcgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyOjpidWlsZFBvdGVudGlhbEhpZ2hsaWdodHNJZk5lZWRlZCgpCiAKICAgICBpZiAobV9wb3Rl
bnRpYWxIaWdobGlnaHRzLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAobV9zZXJ2aWNlc092ZXJs
YXkpCi0gICAgICAgICAgICBtX21haW5GcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmlu
c3RhbGxQYWdlT3ZlcmxheShtX3NlcnZpY2VzT3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2Rl
OjpEb05vdEZhZGUpOworICAgICAgICAgICAgbV9tYWluRnJhbWUucGFnZU92ZXJsYXlDb250cm9s
bGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fc2VydmljZXNPdmVybGF5LCBQYWdlT3Zlcmxh
eTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTUy
Nyw3ICs1MjYsNyBAQCB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkUGhvbmVO
dW1iZXJIaWdobGlnaHRzKCkKICAgICAgICAgQ0dSZWN0IGNnUmVjdCA9IHJlY3Q7CiAgICAgICAg
IFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQgPSBhZG9wdENGKERESGlnaGxp
Z2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZUFuZERpcmVjdGlvbihudWxs
cHRyLCAmY2dSZWN0LCAxLCBtYWluRnJhbWVWaWV3LnZpc2libGVDb250ZW50UmVjdCgpLCBEREhp
Z2hsaWdodFN0eWxlQnViYmxlU3RhbmRhcmQgfCBEREhpZ2hsaWdodFN0eWxlU3RhbmRhcmRJY29u
QXJyb3csIFlFUywgTlNXcml0aW5nRGlyZWN0aW9uTmF0dXJhbCwgTk8sIFlFUykpOwogCi0gICAg
ICAgIG5ld1BvdGVudGlhbEhpZ2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBo
b25lTnVtYmVyKCp0aGlzLCBkZEhpZ2hsaWdodCwgcmFuZ2UpKTsKKyAgICAgICAgbmV3UG90ZW50
aWFsSGlnaGxpZ2h0cy5hZGQoSGlnaGxpZ2h0OjpjcmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIoKnRo
aXMsIGRkSGlnaGxpZ2h0LCByYW5nZS5yZWxlYXNlTm9uTnVsbCgpKSk7CiAgICAgfQogCiAgICAg
cmVwbGFjZUhpZ2hsaWdodHNPZlR5cGVQcmVzZXJ2aW5nRXF1aXZhbGVudEhpZ2hsaWdodHMobmV3
UG90ZW50aWFsSGlnaGxpZ2h0cywgSGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlKTsKQEAg
LTU3MCw3ICs1NjksNyBAQCB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkU2Vs
ZWN0aW9uSGlnaGxpZ2h0KCkKICAgICAgICAgICAgIENHUmVjdCB2aXNpYmxlUmVjdCA9IG1haW5G
cmFtZVZpZXctPnZpc2libGVDb250ZW50UmVjdCgpOwogICAgICAgICAgICAgUmV0YWluUHRyPERE
SGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCA9IGFkb3B0Q0YoRERIaWdobGlnaHRDcmVhdGVXaXRo
UmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxlQW5kRGlyZWN0aW9uKG51bGxwdHIsIGNnUmVjdHMu
YmVnaW4oKSwgY2dSZWN0cy5zaXplKCksIHZpc2libGVSZWN0LCBEREhpZ2hsaWdodFN0eWxlQnVi
YmxlTm9uZSB8IERESGlnaGxpZ2h0U3R5bGVTdGFuZGFyZEljb25BcnJvdyB8IERESGlnaGxpZ2h0
U3R5bGVCdXR0b25TaG93QWx3YXlzLCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5P
LCBZRVMpKTsKICAgICAgICAgICAgIAotICAgICAgICAgICAgbmV3UG90ZW50aWFsSGlnaGxpZ2h0
cy5hZGQoSGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24oKnRoaXMsIGRkSGlnaGxpZ2h0LCBz
ZWxlY3Rpb25SYW5nZSkpOworICAgICAgICAgICAgbmV3UG90ZW50aWFsSGlnaGxpZ2h0cy5hZGQo
SGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24oKnRoaXMsIGRkSGlnaGxpZ2h0LCBzZWxlY3Rp
b25SYW5nZS5yZWxlYXNlTm9uTnVsbCgpKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTYzOCwx
NCArNjM3LDkgQEAgYm9vbCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpoaWdobGlnaHRzQXJl
RXF1aXZhbGVudChjb25zdCBIaWdobGlnaHQqIGEsIGNvbnMKIHsKICAgICBpZiAoYSA9PSBiKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKLQogICAgIGlmICghYSB8fCAhYikKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgaWYgKGEtPnR5cGUoKSA9PSBiLT50eXBlKCkgJiYgYXJlUmFuZ2VzRXF1
YWwoYS0+cmFuZ2UoKSwgYi0+cmFuZ2UoKSkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiBhLT50eXBlKCkgPT0gYi0+dHlwZSgpICYmIGFyZVJh
bmdlc0VxdWFsKCZhLT5yYW5nZSgpLCAmYi0+cmFuZ2UoKSk7CiB9CiAKIFNlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXI6OkhpZ2hsaWdodCogU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6ZmluZFRl
bGVwaG9uZU51bWJlckhpZ2hsaWdodENvbnRhaW5pbmdTZWxlY3Rpb25IaWdobGlnaHQoSGlnaGxp
Z2h0JiBzZWxlY3Rpb25IaWdobGlnaHQpCkBAIC02NjksNyArNjYzLDcgQEAgU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0KiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpmaW5k
VGVsZXBob25lTnUKICAgICAgICAgaWYgKGhpZ2hsaWdodC0+dHlwZSgpICE9IEhpZ2hsaWdodDo6
VGVsZXBob25lTnVtYmVyVHlwZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlm
IChoaWdobGlnaHQtPnJhbmdlKCktPmNvbnRhaW5zKCphY3RpdmVTZWxlY3Rpb25SYW5nZSkpCisg
ICAgICAgIGlmIChoaWdobGlnaHQtPnJhbmdlKCkuY29udGFpbnMoKmFjdGl2ZVNlbGVjdGlvblJh
bmdlKSkKICAgICAgICAgICAgIHJldHVybiBoaWdobGlnaHQuZ2V0KCk7CiAgICAgfQogCkBAIC04
MzIsNyArODI2LDcgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpoYW5kbGVDbGlj
ayhjb25zdCBJbnRQb2ludCYgY2xpY2tQb2ludCwgSGlnaGxpZ2gKIAogICAgICAgICBwYWdlLT5j
aHJvbWUoKS5jbGllbnQoKS5oYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2socGFnZS0+Zm9jdXND
b250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkuc2VsZWN0aW9uKCksIHNlbGVjdGVkVGVs
ZXBob25lTnVtYmVycywgd2luZG93UG9pbnQpOwogICAgIH0gZWxzZSBpZiAoaGlnaGxpZ2h0LnR5
cGUoKSA9PSBIaWdobGlnaHQ6OlRlbGVwaG9uZU51bWJlclR5cGUpCi0gICAgICAgIHBhZ2UtPmNo
cm9tZSgpLmNsaWVudCgpLmhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGhpZ2hsaWdodC5yYW5n
ZSgpLT50ZXh0KCksIHdpbmRvd1BvaW50KTsKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50
KCkuaGFuZGxlVGVsZXBob25lTnVtYmVyQ2xpY2soaGlnaGxpZ2h0LnJhbmdlKCkudGV4dCgpLCB3
aW5kb3dQb2ludCk7CiB9CiAKIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6ZGlkQ3Jl
YXRlSGlnaGxpZ2h0KEhpZ2hsaWdodCogaGlnaGxpZ2h0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KaW5kZXggZTRlMjBkMjI3NjhjODgyZTkwMGIx
MmI0MWZlMDJlY2RmYjQ4ZjYyOC4uZTU5MjliYTYzZGU1OWY0OTgzYmQ4Y2Y5YzMwMDY0ZTY3MTc3
M2NiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldp
bmRvdy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93
Lm1tCkBAIC02NCw3ICs2NCw3IEBAIEBpbnRlcmZhY2UgV2ViVGV4dEluZGljYXRvclZpZXcgOiBO
U1ZpZXcgewogICAgIEJPT0wgX2ZhZGluZ091dDsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoRnJhbWU6KE5TUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihQYXNzUmVmUHRyPFRleHRJbmRp
Y2F0b3I+KXRleHRJbmRpY2F0b3IgbWFyZ2luOihOU1NpemUpbWFyZ2luIG9mZnNldDooTlNQb2lu
dClvZmZzZXQ7CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIHRl
eHRJbmRpY2F0b3I6KFRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3IgbWFyZ2luOihOU1NpemUp
bWFyZ2luIG9mZnNldDooTlNQb2ludClvZmZzZXQ7CiAKIC0gKHZvaWQpcHJlc2VudDsKIC0gKHZv
aWQpaGlkZVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFu
ZGxlcjsKQEAgLTE0NywxMiArMTQ3LDEyIEBAIHN0YXRpYyBib29sIGluZGljYXRvcldhbnRzTWFu
dWFsQW5pbWF0aW9uKGNvbnN0IFRleHRJbmRpY2F0b3ImIGluZGljYXRvcikKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUg
dGV4dEluZGljYXRvcjooUGFzc1JlZlB0cjxUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yIG1h
cmdpbjooTlNTaXplKW1hcmdpbiBvZmZzZXQ6KE5TUG9pbnQpb2Zmc2V0CistIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFRleHRJbmRpY2F0
b3ImKXRleHRJbmRpY2F0b3IgbWFyZ2luOihOU1NpemUpbWFyZ2luIG9mZnNldDooTlNQb2ludClv
ZmZzZXQKIHsKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdKSkK
ICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF90ZXh0SW5kaWNhdG9yID0gdGV4dEluZGljYXRv
cjsKKyAgICBfdGV4dEluZGljYXRvciA9ICZ0ZXh0SW5kaWNhdG9yOwogICAgIF9tYXJnaW4gPSBt
YXJnaW47CiAKICAgICBzZWxmLndhbnRzTGF5ZXIgPSBZRVM7CkBAIC00NjUsNyArNDY1LDggQEAg
dm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNh
dG9yPiB0ZXh0SW5kaWNhdG9yLCBDR1IKICAgICBbbV90ZXh0SW5kaWNhdG9yV2luZG93IHNldE9w
YXF1ZTpOT107CiAgICAgW21fdGV4dEluZGljYXRvcldpbmRvdyBzZXRJZ25vcmVzTW91c2VFdmVu
dHM6WUVTXTsKIAotICAgIG1fdGV4dEluZGljYXRvclZpZXcgPSBhZG9wdE5TKFtbV2ViVGV4dElu
ZGljYXRvclZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCBbbV90ZXh0
SW5kaWNhdG9yV2luZG93IGZyYW1lXS5zaXplLndpZHRoLCBbbV90ZXh0SW5kaWNhdG9yV2luZG93
IGZyYW1lXS5zaXplLmhlaWdodCkgdGV4dEluZGljYXRvcjptX3RleHRJbmRpY2F0b3IgbWFyZ2lu
Ok5TTWFrZVNpemUoaG9yaXpvbnRhbE1hcmdpbiwgdmVydGljYWxNYXJnaW4pIG9mZnNldDpmcmFj
dGlvbmFsVGV4dE9mZnNldF0pOworICAgIG1fdGV4dEluZGljYXRvclZpZXcgPSBhZG9wdE5TKFtb
V2ViVGV4dEluZGljYXRvclZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCBbbV90ZXh0SW5kaWNhdG9yV2luZG93IGZyYW1lXS5zaXplLndpZHRoLCBbbV90ZXh0SW5kaWNh
dG9yV2luZG93IGZyYW1lXS5zaXplLmhlaWdodCkKKyAgICAgICAgdGV4dEluZGljYXRvcjoqbV90
ZXh0SW5kaWNhdG9yIG1hcmdpbjpOU01ha2VTaXplKGhvcml6b250YWxNYXJnaW4sIHZlcnRpY2Fs
TWFyZ2luKSBvZmZzZXQ6ZnJhY3Rpb25hbFRleHRPZmZzZXRdKTsKICAgICBbbV90ZXh0SW5kaWNh
dG9yV2luZG93IHNldENvbnRlbnRWaWV3Om1fdGV4dEluZGljYXRvclZpZXcuZ2V0KCldOwogCiAg
ICAgW1ttX3RhcmdldFZpZXcgd2luZG93XSBhZGRDaGlsZFdpbmRvdzptX3RleHRJbmRpY2F0b3JX
aW5kb3cuZ2V0KCkgb3JkZXJlZDpOU1dpbmRvd0Fib3ZlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRl
eCBhNDM0MTdkY2UxYzQwMTMwODQ2OTIzODNhMTJhOGNmMWFiOWQyMGIzLi4wMTFhZTBmMjMzYzA5
MjZmZWZlMGYwZDkwN2M1ZjFhODBmMjcyNzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0zMCw3
ICszMCw2IEBACiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJT
Y3JvbGxpbmdUcmVlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNjksMTEgKzY4LDExIEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9S
VCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UqKTsKIAotICAgIHZvaWQgc2V0U2Nyb2xs
aW5nVHJlZShQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWU+IHNjcm9sbGluZ1RyZWUpIHsgbV9zY3Jv
bGxpbmdUcmVlID0gc2Nyb2xsaW5nVHJlZTsgfQorICAgIHZvaWQgc2V0U2Nyb2xsaW5nVHJlZShS
ZWY8U2Nyb2xsaW5nVHJlZT4mJiBzY3JvbGxpbmdUcmVlKSB7IG1fc2Nyb2xsaW5nVHJlZSA9IFdU
Rk1vdmUoc2Nyb2xsaW5nVHJlZSk7IH0KIAogICAgIFNjcm9sbGluZ1N0YXRlVHJlZSogc2Nyb2xs
aW5nU3RhdGVUcmVlKCkgeyByZXR1cm4gbV9zY3JvbGxpbmdTdGF0ZVRyZWUuZ2V0KCk7IH0KIAot
ICAgIFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZT4gcmVsZWFzZVNjcm9sbGluZ1RyZWUoKSB7IHJl
dHVybiBXVEZNb3ZlKG1fc2Nyb2xsaW5nVHJlZSk7IH0KKyAgICBSZWZQdHI8U2Nyb2xsaW5nVHJl
ZT4gcmVsZWFzZVNjcm9sbGluZ1RyZWUoKSB7IHJldHVybiBXVEZNb3ZlKG1fc2Nyb2xsaW5nVHJl
ZSk7IH0KIAogICAgIHZvaWQgdXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNj
cm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYsIHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2lu
dD4gbGF5b3V0Vmlld3BvcnRPcmlnaW4sIGJvb2wgcHJvZ3JhbW1hdGljU2Nyb2xsLCBTY3JvbGxp
bmdMYXllclBvc2l0aW9uQWN0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRlLmNwcAppbmRleCBlMzlkOTllZmJhMzA2OGNj
YjA1NWI0MGQxYzcyNDM3N2Q1OGUzNWJlLi4wMWU2NTI5YjAyYzhjMWQ3MGFlNzczMjgzZWI3Zjcz
MDA1NzRmOTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxMYXRjaGluZ1N0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxMYXRjaGluZ1N0YXRlLmNwcApAQCAtMzEsOSArMzEsNiBAQAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBTY3JvbGxMYXRjaGluZ1N0YXRlOjpTY3JvbGxMYXRjaGluZ1N0YXRlKCkKLSAgICA6
IG1fZnJhbWUobnVsbHB0cikKLSAgICAsIG1fd2lkZ2V0SXNMYXRjaGVkKGZhbHNlKQotICAgICwg
bV9zdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQoZmFsc2UpCiB7CiB9CiAgICAgCkBAIC01MCw3
ICs0Nyw3IEBAIHZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6Y2xlYXIoKQogICAgIG1fcHJldmlv
dXNXaGVlbFNjcm9sbGVkRWxlbWVudCA9IG51bGxwdHI7CiB9CiAKLXZvaWQgU2Nyb2xsTGF0Y2hp
bmdTdGF0ZTo6c2V0V2hlZWxFdmVudEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50
KQordm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRlOjpzZXRXaGVlbEV2ZW50RWxlbWVudChFbGVtZW50
KiBlbGVtZW50KQogewogICAgIG1fd2hlZWxFdmVudEVsZW1lbnQgPSBlbGVtZW50OwogfQpAQCAt
NjAsMTQgKzU3LDE0IEBAIHZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0V2lkZ2V0SXNMYXRj
aGVkKGJvb2wgaXNPdmVyV2lkZ2V0KQogICAgIG1fd2lkZ2V0SXNMYXRjaGVkID0gaXNPdmVyV2lk
Z2V0OwogfQogCi12b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFByZXZpb3VzV2hlZWxTY3Jv
bGxlZEVsZW1lbnQoUmVmUHRyPEVsZW1lbnQ+JiYgZWxlbWVudCkKK3ZvaWQgU2Nyb2xsTGF0Y2hp
bmdTdGF0ZTo6c2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudChFbGVtZW50KiBlbGVtZW50
KQogewogICAgIG1fcHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudCA9IGVsZW1lbnQ7CiB9CiAK
LXZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihQYXNzUmVm
UHRyPENvbnRhaW5lck5vZGU+IG5vZGUpCit2b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFNj
cm9sbGFibGVDb250YWluZXIoQ29udGFpbmVyTm9kZSogY29udGFpbmVyKQogewotICAgIG1fc2Ny
b2xsYWJsZUNvbnRhaW5lciA9IG5vZGU7CisgICAgbV9zY3JvbGxhYmxlQ29udGFpbmVyID0gY29u
dGFpbmVyOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxMYXRjaGluZ1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxMYXRjaGluZ1N0YXRlLmgKaW5kZXggNGRjMGRkMzIyOTNiMzkwZWM5YjY3MWNmZTNiMTk4
NTdjOTczYzQ3OC4uMTFkY2JkMGRiMTU1ZTA0NTAwMDU2MjFhMDUxNzQ3NmQyYjkyOTNhMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3Rh
dGUuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhcigpOwogCiAgICAg
RWxlbWVudCogd2hlZWxFdmVudEVsZW1lbnQoKSB7IHJldHVybiBtX3doZWVsRXZlbnRFbGVtZW50
LmdldCgpOyB9Ci0gICAgdm9pZCBzZXRXaGVlbEV2ZW50RWxlbWVudChQYXNzUmVmUHRyPEVsZW1l
bnQ+KTsKKyAgICB2b2lkIHNldFdoZWVsRXZlbnRFbGVtZW50KEVsZW1lbnQqKTsKICAgICBGcmFt
ZSogZnJhbWUoKSB7IHJldHVybiBtX2ZyYW1lOyB9CiAgICAgdm9pZCBzZXRGcmFtZShGcmFtZSog
ZnJhbWUpIHsgbV9mcmFtZSA9IGZyYW1lOyB9CiAKQEAgLTQ5LDEwICs0OSwxMCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRXaWRnZXRJc0xhdGNoZWQoYm9vbCBpc092ZXJXaWRnZXQpOwogCiAgICAg
RWxlbWVudCogcHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudCgpIHsgcmV0dXJuIG1fcHJldmlv
dXNXaGVlbFNjcm9sbGVkRWxlbWVudC5nZXQoKTsgfQotICAgIHZvaWQgc2V0UHJldmlvdXNXaGVl
bFNjcm9sbGVkRWxlbWVudChSZWZQdHI8RWxlbWVudD4mJik7CisgICAgdm9pZCBzZXRQcmV2aW91
c1doZWVsU2Nyb2xsZWRFbGVtZW50KEVsZW1lbnQqKTsKICAgICAKICAgICBDb250YWluZXJOb2Rl
KiBzY3JvbGxhYmxlQ29udGFpbmVyKCkgeyByZXR1cm4gbV9zY3JvbGxhYmxlQ29udGFpbmVyLmdl
dCgpOyB9Ci0gICAgdm9pZCBzZXRTY3JvbGxhYmxlQ29udGFpbmVyKFBhc3NSZWZQdHI8Q29udGFp
bmVyTm9kZT4pOworICAgIHZvaWQgc2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihDb250YWluZXJOb2Rl
Kik7CiAgICAgYm9vbCBzdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQoKSBjb25zdCB7IHJldHVy
biBtX3N0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdDsgfQogICAgIHZvaWQgc2V0U3RhcnRlZEdl
c3R1cmVBdFNjcm9sbExpbWl0KGJvb2wgc3RhcnRlZEF0TGltaXQpIHsgbV9zdGFydGVkR2VzdHVy
ZUF0U2Nyb2xsTGltaXQgPSBzdGFydGVkQXRMaW1pdDsgfQogCkBAIC02MSwxMCArNjEsMTAgQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8RWxlbWVudD4gbV9wcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVt
ZW50OwogICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBtX3Njcm9sbGFibGVDb250YWluZXI7CiAK
LSAgICBGcmFtZSogbV9mcmFtZTsKLSAgICAKLSAgICBib29sIG1fd2lkZ2V0SXNMYXRjaGVkOwot
ICAgIGJvb2wgbV9zdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQ7CisgICAgRnJhbWUqIG1fZnJh
bWUgeyBudWxscHRyIH07CisKKyAgICBib29sIG1fd2lkZ2V0SXNMYXRjaGVkIHsgZmFsc2UgfTsK
KyAgICBib29sIG1fc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0IHsgZmFsc2UgfTsKIH07CiAg
ICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcAppbmRleCBjODQ1OWIwNWEwZDE2N2I1
YWNlYWQxNDA5NWU5M2Y2ZWQ3N2YyNGQwLi42MWRhNThhOWRlZWMwZjY4ZDVkYTYyMGUyZDZmZDgw
MzE1YTc0YzIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdTdGF0ZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlTm9kZS5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBTY3JvbGxpbmdTdGF0
ZU5vZGU6OnNldFByb3BlcnR5Q2hhbmdlZCh1bnNpZ25lZCBwcm9wZXJ0eUJpdCkKICAgICBtX3Nj
cm9sbGluZ1N0YXRlVHJlZS5zZXRIYXNDaGFuZ2VkUHJvcGVydGllcygpOwogfQogCi1QYXNzUmVm
UHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0
KFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVlKQorUmVmPFNjcm9sbGluZ1N0YXRlTm9k
ZT4gU2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYg
YWRvcHRpdmVUcmVlKQogewogICAgIGF1dG8gY2xvbmUgPSB0aGlzLT5jbG9uZShhZG9wdGl2ZVRy
ZWUpOwogCkBAIC04MCw3ICs4MCw4IEBAIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBT
Y3JvbGxpbmdTdGF0ZU5vZGU6OmNsb25lQW5kUmVzZXQoU2Nyb2xsaW5nU3RhdGVUCiAgICAgcmVz
ZXRDaGFuZ2VkUHJvcGVydGllcygpOwogCiAgICAgY2xvbmVBbmRSZXNldENoaWxkcmVuKGNsb25l
LmdldCgpLCBhZG9wdGl2ZVRyZWUpOwotICAgIHJldHVybiBXVEZNb3ZlKGNsb25lKTsKKworICAg
IHJldHVybiBjbG9uZTsKIH0KIAogdm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OmNsb25lQW5kUmVz
ZXRDaGlsZHJlbihTY3JvbGxpbmdTdGF0ZU5vZGUmIGNsb25lLCBTY3JvbGxpbmdTdGF0ZVRyZWUm
IGFkb3B0aXZlVHJlZSkKQEAgLTkyLDE0ICs5MywxMyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlTm9k
ZTo6Y2xvbmVBbmRSZXNldENoaWxkcmVuKFNjcm9sbGluZ1N0YXRlTm9kZSYgY2xvbmUsIFNjcm9s
bAogICAgICAgICBjbG9uZS5hcHBlbmRDaGlsZChjaGlsZC0+Y2xvbmVBbmRSZXNldChhZG9wdGl2
ZVRyZWUpKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxkKFBhc3NS
ZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjaGlsZE5vZGUpCit2b2lkIFNjcm9sbGluZ1N0YXRl
Tm9kZTo6YXBwZW5kQ2hpbGQoUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4mJiBjaGlsZE5vZGUpCiB7
CiAgICAgY2hpbGROb2RlLT5zZXRQYXJlbnQodGhpcyk7CiAKICAgICBpZiAoIW1fY2hpbGRyZW4p
CiAgICAgICAgIG1fY2hpbGRyZW4gPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxSZWZQdHI8U2Ny
b2xsaW5nU3RhdGVOb2RlPj4+KCk7Ci0KLSAgICBtX2NoaWxkcmVuLT5hcHBlbmQoY2hpbGROb2Rl
KTsKKyAgICBtX2NoaWxkcmVuLT5hcHBlbmQoV1RGTW92ZShjaGlsZE5vZGUpKTsKIH0KIAogdm9p
ZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OnNldExheWVyKGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24m
IGxheWVyUmVwcmVzZW50YXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5oCmluZGV4IGJmYWQxYzQ1ZTBkNzFmOWJhN2MyYmMwODIz
ZjExYmU0NjhkNjllYzAuLjA4N2Q2MTgyOWFkZTU0NjEwNjEyMDU3NWJkNDFhMTY4MGViYzFkMWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
Tm9kZS5oCkBAIC0yMDYsNyArMjA2LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNPdmVyZmxvd1Nj
cm9sbGluZ05vZGUoKSBjb25zdCB7IHJldHVybiBtX25vZGVUeXBlID09IE92ZXJmbG93U2Nyb2xs
aW5nTm9kZTsgfQogCiAgICAgdmlydHVhbCBSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9uZShT
Y3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkgPSAwOwotICAgIFBhc3NSZWZQdHI8U2Ny
b2xsaW5nU3RhdGVOb2RlPiBjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRp
dmVUcmVlKTsKKyAgICBSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9uZUFuZFJlc2V0KFNjcm9s
bGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVlKTsKICAgICB2b2lkIGNsb25lQW5kUmVzZXRDaGls
ZHJlbihTY3JvbGxpbmdTdGF0ZU5vZGUmLCBTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJl
ZSk7CiAKICAgICBlbnVtIHsKQEAgLTIzOCw3ICsyMzgsNyBAQCBwdWJsaWM6CiAKICAgICBWZWN0
b3I8UmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4+KiBjaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJu
IG1fY2hpbGRyZW4uZ2V0KCk7IH0KIAotICAgIHZvaWQgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxT
Y3JvbGxpbmdTdGF0ZU5vZGU+KTsKKyAgICB2b2lkIGFwcGVuZENoaWxkKFJlZjxTY3JvbGxpbmdT
dGF0ZU5vZGU+JiYpOwogCiAgICAgU3RyaW5nIHNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dCgpIGNv
bnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZVRyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVUcmVlLmNwcAppbmRleCA5OGI2Y2FkY2I0YzM1MWNkMmQ3NjY2NDY1NzNlMzg1YTczMmZj
MTQyLi4wYmJjMWI3MzM4MjcxOWI2MjU4ZDExZDA0OTQzM2UzMjk4N2EzZTA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAK
QEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVRyZWU6OnNldEhhc0NoYW5nZWRQ
cm9wZXJ0aWVzKGJvb2wgY2hhbmdlZFByb3BlcnRpZXMpCiAjZW5kaWYKIH0KIAotUGFzc1JlZlB0
cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlTm9kZShTY3Jv
bGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxTY3Jv
bGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlTm9kZShTY3JvbGxpbmdO
b2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKIHsKICAgICBzd2l0Y2gg
KG5vZGVUeXBlKSB7CiAgICAgY2FzZSBGaXhlZE5vZGU6CkBAIC04MCw3ICs4MCw3IEBAIFBhc3NS
ZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZVRyZWU6OmNyZWF0ZU5vZGUo
U2Nyb2xsaW5nTm9kZVR5cGUKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgfQogICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBTY3JvbGxpbmdT
dGF0ZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogfQogCiBib29sIFNjcm9sbGlu
Z1N0YXRlVHJlZTo6bm9kZVR5cGVBbmRQYXJlbnRNYXRjaChTY3JvbGxpbmdTdGF0ZU5vZGUmIG5v
ZGUsIFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgcGFyZW50SUQp
IGNvbnN0CkBAIC0xMjksMTMgKzEyOSwxMyBAQCBTY3JvbGxpbmdOb2RlSUQgU2Nyb2xsaW5nU3Rh
dGVUcmVlOjphdHRhY2hOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbAogICAg
ICAgICBpZiAobm9kZVR5cGUgPT0gRnJhbWVTY3JvbGxpbmdOb2RlICYmIHBhcmVudElEKSB7CiAg
ICAgICAgICAgICBpZiAoYXV0byBvcnBoYW5lZE5vZGUgPSBtX29ycGhhbmVkU3ViZnJhbWVOb2Rl
cy50YWtlKG5ld05vZGVJRCkpIHsKICAgICAgICAgICAgICAgICBuZXdOb2RlID0gb3JwaGFuZWRO
b2RlLmdldCgpOwotICAgICAgICAgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoV1RGTW92ZShv
cnBoYW5lZE5vZGUpKTsKKyAgICAgICAgICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKG9ycGhh
bmVkTm9kZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAg
ICAgICAgIGlmICghbmV3Tm9kZSkgewogICAgICAgICAgICAgYXV0byBzdGF0ZU5vZGUgPSBjcmVh
dGVOb2RlKG5vZGVUeXBlLCBuZXdOb2RlSUQpOwotICAgICAgICAgICAgbmV3Tm9kZSA9IHN0YXRl
Tm9kZS5nZXQoKTsKKyAgICAgICAgICAgIG5ld05vZGUgPSBzdGF0ZU5vZGUucHRyKCk7CiAgICAg
ICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKFdURk1vdmUoc3RhdGVOb2RlKSk7CiAgICAgICAg
IH0KICAgICB9CkBAIC0xODIsNyArMTgyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ1N0
YXRlVHJlZT4gU2Nyb2xsaW5nU3RhdGVUcmVlOjpjb21taXQoTGF5ZXJSZXByZXNlbnRhdGkKICAg
ICB0cmVlU3RhdGVDbG9uZS0+c2V0UHJlZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbihwcmVmZXJy
ZWRMYXllclJlcHJlc2VudGF0aW9uKTsKIAogICAgIGlmIChtX3Jvb3RTdGF0ZU5vZGUpCi0gICAg
ICAgIHRyZWVTdGF0ZUNsb25lLT5zZXRSb290U3RhdGVOb2RlKHN0YXRpY19wb2ludGVyX2Nhc3Q8
U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KG1fcm9vdFN0YXRlTm9kZS0+Y2xvbmVB
bmRSZXNldCgqdHJlZVN0YXRlQ2xvbmUpKSk7CisgICAgICAgIHRyZWVTdGF0ZUNsb25lLT5zZXRS
b290U3RhdGVOb2RlKHN0YXRpY19yZWZlcmVuY2VfY2FzdDxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Ny
b2xsaW5nTm9kZT4obV9yb290U3RhdGVOb2RlLT5jbG9uZUFuZFJlc2V0KCp0cmVlU3RhdGVDbG9u
ZSkpKTsKIAogICAgIC8vIENvcHkgdGhlIElEcyBvZiB0aGUgbm9kZXMgdGhhdCBoYXZlIGJlZW4g
cmVtb3ZlZCBzaW5jZSB0aGUgbGFzdCBjb21taXQgaW50byB0aGUgY2xvbmUuCiAgICAgdHJlZVN0
YXRlQ2xvbmUtPm1fbm9kZXNSZW1vdmVkU2luY2VMYXN0Q29tbWl0LnN3YXAobV9ub2Rlc1JlbW92
ZWRTaW5jZUxhc3RDb21taXQpOwpAQCAtMjExLDcgKzIxMSw4IEBAIHZvaWQgU2Nyb2xsaW5nU3Rh
dGVUcmVlOjpyZW1vdmVOb2RlQW5kQWxsRGVzY2VuZGFudHMoU2Nyb2xsaW5nU3RhdGVOb2RlKiBu
b2RlLCBTCiAgICAgaWYgKG5vZGUgPT0gbV9yb290U3RhdGVOb2RlKQogICAgICAgICBtX3Jvb3RT
dGF0ZU5vZGUgPSBudWxscHRyOwogICAgIGVsc2UgaWYgKHBhcmVudCkgewotICAgICAgICBBU1NF
UlQocGFyZW50LT5jaGlsZHJlbigpICYmIHBhcmVudC0+Y2hpbGRyZW4oKS0+ZmluZChub2RlKSAh
PSBub3RGb3VuZCk7CisgICAgICAgIEFTU0VSVChwYXJlbnQtPmNoaWxkcmVuKCkpOworICAgICAg
ICBBU1NFUlQocGFyZW50LT5jaGlsZHJlbigpLT5maW5kKG5vZGUpICE9IG5vdEZvdW5kKTsKICAg
ICAgICAgaWYgKGF1dG8gY2hpbGRyZW4gPSBwYXJlbnQtPmNoaWxkcmVuKCkpIHsKICAgICAgICAg
ICAgIHNpemVfdCBpbmRleCA9IGNoaWxkcmVuLT5maW5kKG5vZGUpOwogICAgICAgICAgICAgaWYg
KGluZGV4ICE9IG5vdEZvdW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVRyZWUuaAppbmRleCAzMWY2ZGI3OWU3YjQwYzFiMzJmMmVhN2NkY2Zm
YzQ4ZjE3YmZjZTMxLi4zYjI1NjE1MWFkNzQ0YmNmMDIzNGQ3MmQ0ZmQzYTBjNzVkNDM2OTExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRy
ZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRy
ZWUuaApAQCAtNzQsMTcgKzc0LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByZWZlcnJlZExh
eWVyUmVwcmVzZW50YXRpb24oTGF5ZXJSZXByZXNlbnRhdGlvbjo6VHlwZSByZXByZXNlbnRhdGlv
bikgeyBtX3ByZWZlcnJlZExheWVyUmVwcmVzZW50YXRpb24gPSByZXByZXNlbnRhdGlvbjsgfQog
CiBwcml2YXRlOgotICAgIHZvaWQgc2V0Um9vdFN0YXRlTm9kZShQYXNzUmVmUHRyPFNjcm9sbGlu
Z1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPiByb290U3RhdGVOb2RlKSB7IG1fcm9vdFN0YXRlTm9k
ZSA9IHJvb3RTdGF0ZU5vZGU7IH0KKyAgICB2b2lkIHNldFJvb3RTdGF0ZU5vZGUoUmVmPFNjcm9s
bGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPiYmIHJvb3RTdGF0ZU5vZGUpIHsgbV9yb290U3Rh
dGVOb2RlID0gV1RGTW92ZShyb290U3RhdGVOb2RlKTsgfQogICAgIHZvaWQgYWRkTm9kZShTY3Jv
bGxpbmdTdGF0ZU5vZGUqKTsKIAotICAgIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBj
cmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOworICAgIFJlZjxT
Y3JvbGxpbmdTdGF0ZU5vZGU+IGNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGlu
Z05vZGVJRCk7CiAKICAgICBib29sIG5vZGVUeXBlQW5kUGFyZW50TWF0Y2goU2Nyb2xsaW5nU3Rh
dGVOb2RlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBwYXJlbnRJRCkgY29u
c3Q7CiAKLSAgICBlbnVtIGNsYXNzIFN1YmZyYW1lTm9kZVJlbW92YWwgewotICAgICAgICBEZWxl
dGUsCi0gICAgICAgIE9ycGhhbgotICAgIH07CisgICAgZW51bSBjbGFzcyBTdWJmcmFtZU5vZGVS
ZW1vdmFsIHsgRGVsZXRlLCBPcnBoYW4gfTsKICAgICB2b2lkIHJlbW92ZU5vZGVBbmRBbGxEZXNj
ZW5kYW50cyhTY3JvbGxpbmdTdGF0ZU5vZGUqLCBTdWJmcmFtZU5vZGVSZW1vdmFsID0gU3ViZnJh
bWVOb2RlUmVtb3ZhbDo6RGVsZXRlKTsKIAogICAgIHZvaWQgcmVjdXJzaXZlTm9kZVdpbGxCZVJl
bW92ZWQoU2Nyb2xsaW5nU3RhdGVOb2RlKiBjdXJyTm9kZSwgU3ViZnJhbWVOb2RlUmVtb3ZhbCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmlu
ZGV4IGQwMGVjNWRkOWIxYjdkNGE2ZDYxYmY1ZDEzOWI0OTkyZTYzN2Q4ZWYuLjQwYmNjNjNmZjhj
MzM3YWZiYzEwYmQ0Yjk5ZWIxYzAwM2Y0NzUwYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC0xNzksNyArMTc5LDcgQEAgdm9pZCBT
Y3JvbGxpbmdUcmVlOjp1cGRhdGVUcmVlRnJvbVN0YXRlTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0
ZU5vZGUqIHN0YXRlTm9kZSwKICAgICAgICAgaWYgKHBhcmVudEl0ICE9IG1fbm9kZU1hcC5lbmQo
KSkgewogICAgICAgICAgICAgU2Nyb2xsaW5nVHJlZU5vZGUqIHBhcmVudCA9IHBhcmVudEl0LT52
YWx1ZTsKICAgICAgICAgICAgIG5vZGUtPnNldFBhcmVudChwYXJlbnQpOwotICAgICAgICAgICAg
cGFyZW50LT5hcHBlbmRDaGlsZChub2RlKTsKKyAgICAgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hp
bGQoKm5vZGUpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xODksNyArMTg5LDcgQEAgdm9pZCBT
Y3JvbGxpbmdUcmVlOjp1cGRhdGVUcmVlRnJvbVN0YXRlTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0
ZU5vZGUqIHN0YXRlTm9kZSwKICAgICBpZiAoYXV0byBub2RlQ2hpbGRyZW4gPSBub2RlLT5jaGls
ZHJlbigpKSB7CiAgICAgICAgIGZvciAoYXV0byYgY2hpbGRTY3JvbGxpbmdOb2RlIDogKm5vZGVD
aGlsZHJlbikgewogICAgICAgICAgICAgY2hpbGRTY3JvbGxpbmdOb2RlLT5zZXRQYXJlbnQobnVs
bHB0cik7Ci0gICAgICAgICAgICBvcnBoYW5Ob2Rlcy5hZGQoY2hpbGRTY3JvbGxpbmdOb2RlLT5z
Y3JvbGxpbmdOb2RlSUQoKSwgY2hpbGRTY3JvbGxpbmdOb2RlKTsKKyAgICAgICAgICAgIG9ycGhh
bk5vZGVzLmFkZChjaGlsZFNjcm9sbGluZ05vZGUtPnNjcm9sbGluZ05vZGVJRCgpLCBjaGlsZFNj
cm9sbGluZ05vZGUuZ2V0KCkpOwogICAgICAgICB9CiAgICAgICAgIG5vZGVDaGlsZHJlbi0+Y2xl
YXIoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmgKaW5kZXggNjczNGI1M2FkYWI1YzM5OWI5MzNhYzM3N2VkZTc0YjhjMmEwNWE0ZC4uYWFm
MmQ0NzhiYmI4MDA5NWY1NTk2YzkxNDYwNmUyYjliNWQ4ZjhjYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHNldE1haW5GcmFtZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0
LCBib29sIHBpbm5lZFRvVGhlUmlnaHQsIGJvb2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVk
VG9UaGVCb3R0b20pOwogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2Rl
PiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9k
ZUlEKSA9IDA7CisgICAgdmlydHVhbCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9s
bGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpID0gMDsKIAog
ICAgIC8vIENhbGxlZCBhZnRlciBhIHNjcm9sbGluZyB0cmVlIG5vZGUgaGFzIGhhbmRsZWQgYSBz
Y3JvbGwgYW5kIHVwZGF0ZWQgaXRzIGxheWVycy4KICAgICAvLyBVcGRhdGVzIEZyYW1lVmlldy9S
ZW5kZXJMYXllciBzY3JvbGxpbmcgc3RhdGUgYW5kIEdyYXBoaWNzTGF5ZXJzLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwCmluZGV4
IGRlYjc4MWExYzFmOWZkZDAzM2M5OTk1Yzk5MjFjMDcyOTkyNjlhMmEuLjBmNjYxNmQwZjNkYzM1
Nzg2MzA2ZmQ0NjZmN2E2OTY0MTViMmVlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHAKQEAgLTQ1LDIyICs0NSwyMSBAQCBT
Y3JvbGxpbmdUcmVlTm9kZTo6flNjcm9sbGluZ1RyZWVOb2RlKCkKIHsKIH0KIAotdm9pZCBTY3Jv
bGxpbmdUcmVlTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4g
Y2hpbGROb2RlKQordm9pZCBTY3JvbGxpbmdUcmVlTm9kZTo6YXBwZW5kQ2hpbGQoUmVmPFNjcm9s
bGluZ1RyZWVOb2RlPiYmIGNoaWxkTm9kZSkKIHsKICAgICBjaGlsZE5vZGUtPnNldFBhcmVudCh0
aGlzKTsKIAogICAgIGlmICghbV9jaGlsZHJlbikKLSAgICAgICAgbV9jaGlsZHJlbiA9IHN0ZDo6
bWFrZV91bmlxdWU8U2Nyb2xsaW5nVHJlZUNoaWxkcmVuVmVjdG9yPigpOwotCi0gICAgbV9jaGls
ZHJlbi0+YXBwZW5kKGNoaWxkTm9kZSk7CisgICAgICAgIG1fY2hpbGRyZW4gPSBzdGQ6Om1ha2Vf
dW5pcXVlPFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+Pj4oKTsKKyAgICBtX2NoaWxk
cmVuLT5hcHBlbmQoV1RGTW92ZShjaGlsZE5vZGUpKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVl
Tm9kZTo6cmVtb3ZlQ2hpbGQoU2Nyb2xsaW5nVHJlZU5vZGUqIG5vZGUpCit2b2lkIFNjcm9sbGlu
Z1RyZWVOb2RlOjpyZW1vdmVDaGlsZChTY3JvbGxpbmdUcmVlTm9kZSYgbm9kZSkKIHsKICAgICBp
ZiAoIW1fY2hpbGRyZW4pCiAgICAgICAgIHJldHVybjsKIAotICAgIHNpemVfdCBpbmRleCA9IG1f
Y2hpbGRyZW4tPmZpbmQobm9kZSk7CisgICAgc2l6ZV90IGluZGV4ID0gbV9jaGlsZHJlbi0+Zmlu
ZCgmbm9kZSk7CiAKICAgICAvLyBUaGUgaW5kZXggd2lsbCBiZSBub3RGb3VuZCBpZiB0aGUgbm9k
ZSB0byByZW1vdmUgaXMgYSBkZWVwZXItdGhhbi0xLWxldmVsIGRlc2NlbmRhbnQgb3IKICAgICAv
LyBpZiBub2RlIGlzIHRoZSByb290IHN0YXRlIG5vZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaAppbmRleCAzZTg2ZTNkNDc4ZDM0MDY5
MzU5ZWFhNWM2YjljZmJhYzY3NWNlZDA1Li4yZTE2MzI0NmJiOTZlMzNmZWY2MmFkYTcxYjQxYTIx
MzkyMTI3OTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVOb2RlLmgKQEAgLTYwLDExICs2MCwxMCBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsaW5n
VHJlZU5vZGUqIHBhcmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9CiAgICAgdm9pZCBz
ZXRQYXJlbnQoU2Nyb2xsaW5nVHJlZU5vZGUqIHBhcmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsg
fQogCi0gICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPj4gU2Nyb2xs
aW5nVHJlZUNoaWxkcmVuVmVjdG9yOwotICAgIFNjcm9sbGluZ1RyZWVDaGlsZHJlblZlY3Rvciog
Y2hpbGRyZW4oKSB7IHJldHVybiBtX2NoaWxkcmVuLmdldCgpOyB9Ci0gICAgCi0gICAgdm9pZCBh
cHBlbmRDaGlsZChQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPik7Ci0gICAgdm9pZCByZW1v
dmVDaGlsZChTY3JvbGxpbmdUcmVlTm9kZSopOworICAgIFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5n
VHJlZU5vZGU+PiogY2hpbGRyZW4oKSB7IHJldHVybiBtX2NoaWxkcmVuLmdldCgpOyB9CisKKyAg
ICB2b2lkIGFwcGVuZENoaWxkKFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4mJik7CisgICAgdm9pZCBy
ZW1vdmVDaGlsZChTY3JvbGxpbmdUcmVlTm9kZSYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkdW1wKFRleHRTdHJlYW0mLCBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcikgY29u
c3Q7CiAKQEAgLTcyLDcgKzcxLDcgQEAgcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ1RyZWVOb2Rl
KFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKICAg
ICBTY3JvbGxpbmdUcmVlJiBzY3JvbGxpbmdUcmVlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxp
bmdUcmVlOyB9CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nVHJlZUNoaWxkcmVuVmVj
dG9yPiBtX2NoaWxkcmVuOworICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8UmVmUHRyPFNjcm9s
bGluZ1RyZWVOb2RlPj4+IG1fY2hpbGRyZW47CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFs
IHZvaWQgZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVhbSYsIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4
dEJlaGF2aW9yKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggYmNiNDhlNDk1YzFiMGI4OWU3
NWE3YWEzM2U4NWU1OTRkN2M1ZTY4NS4uZjY2NGVkM2FjM2JlNTM4ZGZmMmZlNTg4MDJhMDk3N2Fh
MGFhMDg5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFk
ZWRTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9U
aHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWUo
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCi0gICAgOiBt
X3Njcm9sbGluZ0Nvb3JkaW5hdG9yKHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ciYgc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCisgICAgOiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKCZz
Y3JvbGxpbmdDb29yZGluYXRvcikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAppbmRleCA3MzI1NDA1OWMyZDc3
MDIwNWNlZmRiZDE1MzBhYjI3OTA0YWE3MzYzLi42ZDFkNDlkNjdlY2E1ZmE4ZDUyYTg1OGVlY2Y1
ZjkzZWU5Yzk3MGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9U
aHJlYWRlZFNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTQtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAg
IHZvaWQgaW52YWxpZGF0ZSgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQg
VGhyZWFkZWRTY3JvbGxpbmdUcmVlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqKTsKKyAgICBl
eHBsaWNpdCBUaHJlYWRlZFNjcm9sbGluZ1RyZWUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYp
OwogCiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQs
IGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBzdGQ6Om9wdGlvbmFsPEZs
b2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFj
dGlvbiA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpIG92ZXJyaWRlOwogICAg
IHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlELCB1
bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5j
cHAKaW5kZXggMTBiM2Y4NzM0NWZkYTQzY2NkZmU5YzE1ZmU0MTdmNDZhZjU1NDVlYS4uMWYwM2U2
ODZlOWY4NzU4ZWM2NWE5YjZmOWI2MTdlYjJmODY4YzY0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNwcApAQCAtNDAs
MTMgKzQwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVmPFNjcm9sbGluZ1RyZWVJ
T1M+IFNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKiBz
Y3JvbGxpbmdDb29yZGluYXRvcikKK1JlZjxTY3JvbGxpbmdUcmVlSU9TPiBTY3JvbGxpbmdUcmVl
SU9TOjpjcmVhdGUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYgc2Nyb2xsaW5nQ29vcmRpbmF0
b3IpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2Nyb2xsaW5nVHJlZUlPUyhzY3JvbGxp
bmdDb29yZGluYXRvcikpOwogfQogCi1TY3JvbGxpbmdUcmVlSU9TOjpTY3JvbGxpbmdUcmVlSU9T
KEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQotICAgIDog
bV9zY3JvbGxpbmdDb29yZGluYXRvcihzY3JvbGxpbmdDb29yZGluYXRvcikKK1Njcm9sbGluZ1Ry
ZWVJT1M6OlNjcm9sbGluZ1RyZWVJT1MoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYgc2Nyb2xs
aW5nQ29vcmRpbmF0b3IpCisgICAgOiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKCZzY3JvbGxpbmdD
b29yZGluYXRvcikKIHsKIH0KIApAQCAtODMsMjAgKzgzLDIxIEBAIHZvaWQgU2Nyb2xsaW5nVHJl
ZUlPUzo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwg
Y29uc3QKICAgICB9KTsKIH0KIAotUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gU2Nyb2xs
aW5nVHJlZUlPUzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9k
ZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCitSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFNj
cm9sbGluZ1RyZWVJT1M6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBl
IG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQogewogICAgIHN3aXRjaCAobm9kZVR5
cGUpIHsKICAgICBjYXNlIEZyYW1lU2Nyb2xsaW5nTm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAg
ICBjYXNlIE92ZXJmbG93U2Nyb2xsaW5nTm9kZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBicmVhazsKICAgICBjYXNlIEZp
eGVkTm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgq
dGhpcywgbm9kZUlEKTsKICAgICBjYXNlIFN0aWNreU5vZGU6CiAgICAgICAgIHJldHVybiBTY3Jv
bGxpbmdUcmVlU3RpY2t5Tm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIH0KLSAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU2Ny
b2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogfQogCiBGbG9hdFJl
Y3QgU2Nyb2xsaW5nVHJlZUlPUzo6Zml4ZWRQb3NpdGlvblJlY3QoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmgKaW5kZXggMWE5
YWFlMWI0MGM4MTI2ODM0NDg0MWNlN2IzMDc1ZWY3MGE3ZTU1NC4uYWVhNjliMzlmNTljOTYxNWQx
ODBhYWVhNmViODk3MjU5Y2RhZDk0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5oCkBAIC0yOSwzNSArMjksMzEgQEAKIAog
I2luY2x1ZGUgIlNjcm9sbGluZ1N0YXRlVHJlZS5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWUu
aCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
OwogCi1jbGFzcyBTY3JvbGxpbmdUcmVlSU9TIDogcHVibGljIFNjcm9sbGluZ1RyZWUgeworY2xh
c3MgU2Nyb2xsaW5nVHJlZUlPUyBmaW5hbCA6IHB1YmxpYyBTY3JvbGxpbmdUcmVlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVJT1M+IGNyZWF0ZShBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yKik7CisgICAgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlSU9TPiBjcmVhdGUo
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOwogICAgIHZpcnR1YWwgflNjcm9sbGluZ1RyZWVJ
T1MoKTsKIAotICAgIC8vIE5vIHdoZWVsIGV2ZW50cyBvbiBpT1MKLSAgICB2b2lkIGhhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGUgeyB9Ci0gICAgRXZl
bnRSZXN1bHQgdHJ5VG9IYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYp
IG92ZXJyaWRlIHsgcmV0dXJuIERpZE5vdEhhbmRsZUV2ZW50OyB9Ci0KLSAgICB2b2lkIGludmFs
aWRhdGUoKSBvdmVycmlkZTsKLQogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBTY3JvbGxpbmdUcmVl
SU9TKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqKTsKLSAgICBib29sIGlzU2Nyb2xsaW5nVHJl
ZUlPUygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAgICBleHBsaWNpdCBTY3Jv
bGxpbmdUcmVlSU9TKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImKTsKIAotICAgIFBhc3NSZWZQ
dHI8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05v
ZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOworICAgIGJvb2wgaXNTY3JvbGxpbmdU
cmVlSU9TKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdm9pZCBzY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBjb25zdCBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3
cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb246OlN5bmMpIG92ZXJyaWRlOworICAgIC8vIE5vIHdoZWVsIGV2ZW50cyBv
biBpT1MKKyAgICB2b2lkIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JikgZmluYWwgeyB9CisgICAgRXZlbnRSZXN1bHQgdHJ5VG9IYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpIGZpbmFsIHsgcmV0dXJuIERpZE5vdEhhbmRsZUV2ZW50OyB9
CiAKLSAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFdlYkNvcmU6OlNj
cm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIG92
ZXJyaWRlOworICAgIHZvaWQgaW52YWxpZGF0ZSgpIGZpbmFsOwogCi0gICAgRmxvYXRSZWN0IGZp
eGVkUG9zaXRpb25SZWN0KCkgb3ZlcnJpZGU7CisgICAgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBj
cmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlE
KSBmaW5hbDsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05v
ZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IHN0ZDo6b3B0aW9u
YWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxpbmdMYXllclBvc2l0
aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykgZmluYWw7Cisg
ICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShXZWJDb3JlOjpTY3JvbGxp
bmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKSBmaW5hbDsK
KyAgICBGbG9hdFJlY3QgZml4ZWRQb3NpdGlvblJlY3QoKSBmaW5hbDsKIAogICAgIFJlZlB0cjxB
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yPiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yOwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29y
ZGluYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdDb29yZGluYXRvck1hYy5tbQppbmRleCBkNDNkOTRiMjQ3YTZlNGY5Mzk3NDE1ODI2MTk3YzJi
MGFkZjA3MTQ4Li44NjExOGI0NDUwMDc5NDZjZjBmYTc4M2M1ZDU0M2UxMTllOWViZjYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRp
bmF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjLm1tCkBAIC01NCw3ICs1NCw3IEBAIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYyhQYWdlKiBwYWdlKQogICAgIDogQXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvcihwYWdlKQogICAgICwgbV9zY3JvbGxpbmdTdGF0ZVRyZWVDb21t
aXR0ZXJUaW1lcigqdGhpcywgJlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpjb21taXRUcmVlU3Rh
dGUpCiB7Ci0gICAgc2V0U2Nyb2xsaW5nVHJlZShTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGUodGhp
cykpOworICAgIHNldFNjcm9sbGluZ1RyZWUoU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlKCp0aGlz
KSk7CiB9CiAKIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjp+U2Nyb2xsaW5nQ29vcmRpbmF0b3JN
YWMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVNYWMuY3BwCmluZGV4IDcwZGJjMDZjZjAxM2JmMzFiOGRhMDdmZGUwZDM5ODhjNjFi
NGQ4MGEuLjg5OWYxZTkwMTY3ZGI4YzhlYTFmYTZkOGVhZWY0YzcwNDExMjA1NGQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1h
Yy5jcHAKQEAgLTM0LDMwICszNCwzMSBAQAogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAot
UmVmPFNjcm9sbGluZ1RyZWVNYWM+IFNjcm9sbGluZ1RyZWVNYWM6OmNyZWF0ZShBc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvcikKK1JlZjxTY3JvbGxpbmdUcmVl
TWFjPiBTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYg
c2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2Nyb2xs
aW5nVHJlZU1hYyhzY3JvbGxpbmdDb29yZGluYXRvcikpOwogfQogCi1TY3JvbGxpbmdUcmVlTWFj
OjpTY3JvbGxpbmdUcmVlTWFjKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nv
b3JkaW5hdG9yKQorU2Nyb2xsaW5nVHJlZU1hYzo6U2Nyb2xsaW5nVHJlZU1hYyhBc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRvcikKICAgICA6IFRocmVhZGVkU2Ny
b2xsaW5nVHJlZShzY3JvbGxpbmdDb29yZGluYXRvcikKIHsKIH0KIAotUGFzc1JlZlB0cjxTY3Jv
bGxpbmdUcmVlTm9kZT4gU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUo
U2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCitSZWY8
U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9sbGluZ1RyZWVNYWM6OmNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQog
ewogICAgIHN3aXRjaCAobm9kZVR5cGUpIHsKICAgICBjYXNlIEZyYW1lU2Nyb2xsaW5nTm9kZToK
ICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OmNyZWF0
ZSgqdGhpcywgbm9kZUlEKTsKICAgICBjYXNlIE92ZXJmbG93U2Nyb2xsaW5nTm9kZToKICAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAg
ICBicmVhazsKICAgICBjYXNlIEZpeGVkTm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1Ry
ZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICBjYXNlIFN0aWNreU5vZGU6
CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZTo6Y3JlYXRlKCp0aGlzLCBu
b2RlSUQpOwogICAgIH0KLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBu
b2RlSUQpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZP
Uk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlTWFjLmgKaW5kZXggNDNhNDZiNzdlODViNDVmZjYxY2IyYjlhNmJiYjMyYzJjMGVm
ZmE1Ny4uNDk5ZmMzZmYxN2JjZjk0OTBhODM3MjI2NDJmNmJjODNiZTAwYjdkZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5o
CkBAIC0zMSwxNCArMzEsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTY3Jv
bGxpbmdUcmVlTWFjIDogcHVibGljIFRocmVhZGVkU2Nyb2xsaW5nVHJlZSB7CitjbGFzcyBTY3Jv
bGxpbmdUcmVlTWFjIGZpbmFsIDogcHVibGljIFRocmVhZGVkU2Nyb2xsaW5nVHJlZSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlTWFjPiBjcmVhdGUoQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvciopOworICAgIHN0YXRpYyBSZWY8U2Nyb2xsaW5nVHJlZU1hYz4gY3JlYXRl
KEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImKTsKIAotICAgIFBhc3NSZWZQdHI8U2Nyb2xsaW5n
VHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3Jv
bGxpbmdOb2RlSUQpIG92ZXJyaWRlOwotICAgIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBTY3Jv
bGxpbmdUcmVlTWFjKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqKTsKKyAgICBleHBsaWNpdCBT
Y3JvbGxpbmdUcmVlTWFjKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImKTsKKworICAgIFJlZjxT
Y3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5
cGUsIFNjcm9sbGluZ05vZGVJRCkgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAppbmRleCA2MTYw
NzA5MGQyNmM5OWMxYWUyNTNmNWE0ZWM1ZDY2ZDUxYzNkNjE1Li4zMjQzMGM0N2I4N2QxYzA4ODQ0
OWFjYmRjZDBiMzY0NzEzZjA5NDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dp
bi9FdmVudEhhbmRsZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50
SGFuZGxlcldpbi5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OndpZGdl
dERpZEhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW4K
ICAgICByZXR1cm4gZG93bmNhc3Q8RnJhbWVWaWV3Pih3aWRnZXQpLmZyYW1lKCkuZXZlbnRIYW5k
bGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKIH0KIAotYm9vbCBFdmVudEhhbmRs
ZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KikgY29uc3QKK2Jvb2wgRXZl
bnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCYpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC05MiwxMCArOTIsMTIgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OmV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KSBj
b25zdAogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBhc3NSZWZQdHI8RGF0YVRyYW5z
ZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKKwor
UmVmPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2Zl
cigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERy
b3AoKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgRXZlbnRIYW5kbGVyOjpmb2N1c0RvY3VtZW50Vmll
dygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0
LmNwcAppbmRleCAwNmFlZTlmOTc5NjJmYmNhODI5Y2Y1ZTFiZTM4MjVlNmZiZDUyZGU0Li40ODJi
NWRkMTM3NWI2ZmU3NzI2N2NiNjI2ZjQxNjM2ZGY4ZjUzNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTYxNiw3ICs2MTYs
NyBAQCB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpoYW5kbGVVbmF2YWlsYWJsZVBsdWdpbklu
ZGljYXRvckV2ZW50KEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIHNldFVuYXZhaWxhYmxlUGx1
Z2luSW5kaWNhdG9ySXNQcmVzc2VkKGZhbHNlKTsKICAgICAgICAgfQogICAgICAgICBpZiAobV9t
b3VzZURvd25XYXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yICYmIGlzSW5VbmF2YWlsYWJs
ZVBsdWdpbkluZGljYXRvcihtb3VzZUV2ZW50KSkgewotICAgICAgICAgICAgcGFnZSgpLmNocm9t
ZSgpLmNsaWVudCgpLnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCgmZWxlbWVudCwgbV9w
bHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbik7CisgICAgICAgICAgICBwYWdlKCkuY2hyb21lKCku
Y2xpZW50KCkudW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKGVsZW1lbnQsIG1fcGx1Z2lu
VW5hdmFpbGFiaWxpdHlSZWFzb24pOwogICAgICAgICB9CiAgICAgICAgIG1fbW91c2VEb3duV2Fz
SW5VbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvciA9IGZhbHNlOwogICAgICAgICBldmVudC0+c2V0
RGVmYXVsdEhhbmRsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5jcHAKaW5kZXggYTFhOTRjNjdiN2U0NTBlOWVjMDMwNWVlMDcwNTlkZjIyZWMw
NzZkNC4uNjFjYWFiZjZhZmE4ZTg3MDI2ODYxYjRmZTgwOTdjYzA5NjM1M2VlOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTEwNyw3
ICsxMDcsNyBAQCBSZW5kZXJMYXllckJhY2tpbmc6OlJlbmRlckxheWVyQmFja2luZyhSZW5kZXJM
YXllciYgbGF5ZXIpCiB7CiAgICAgaWYgKGxheWVyLmlzUm9vdExheWVyKCkpIHsKICAgICAgICAg
bV9pc01haW5GcmFtZVJlbmRlclZpZXdMYXllciA9IHJlbmRlcmVyKCkuZnJhbWUoKS5pc01haW5G
cmFtZSgpOwotICAgICAgICBtX3VzaW5nVGlsZWRDYWNoZUxheWVyID0gcmVuZGVyZXIoKS5wYWdl
KCkuY2hyb21lKCkuY2xpZW50KCkuc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KHJl
bmRlcmVyKCkuZnJhbWUoKS52aWV3KCkpOworICAgICAgICBtX3VzaW5nVGlsZWRDYWNoZUxheWVy
ID0gcmVuZGVyZXIoKS5wYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuc2hvdWxkVXNlVGlsZWRCYWNr
aW5nRm9yRnJhbWVWaWV3KHJlbmRlcmVyKCkudmlldygpLmZyYW1lVmlldygpKTsKICAgICB9CiAg
ICAgCiAgICAgY3JlYXRlUHJpbWFyeUdyYXBoaWNzTGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMTJiNjJjOTI4
N2JiZmZkOWU1Nzk4Zjc2NWQ4MmM1NzAzNzMxZTZkZC4uNjVmZGM0ZGZkYTQ2ZmJkMjJkYmJjMzQ3
YTk2YjIxYzJlZWRlYzE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTMxMDMsNyArMzEwMyw3IEBAIEdyYXBoaWNzTGF5
ZXIqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJGb3JIZWFkZXIoYm9vbCB3YW50
c0xheWVyKQogICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0
b3IgPSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQogICAgICAgICBzY3JvbGxpbmdDb29y
ZGluYXRvci0+ZnJhbWVWaWV3Um9vdExheWVyRGlkQ2hhbmdlKG1fcmVuZGVyVmlldy5mcmFtZVZp
ZXcoKSk7CiAKLSAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlkQWRkSGVhZGVyTGF5ZXIo
bV9sYXllckZvckhlYWRlci5nZXQoKSk7CisgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmRp
ZEFkZEhlYWRlckxheWVyKCptX2xheWVyRm9ySGVhZGVyKTsKIAogICAgIHJldHVybiBtX2xheWVy
Rm9ySGVhZGVyLmdldCgpOwogfQpAQCAtMzE0MSw3ICszMTQxLDcgQEAgR3JhcGhpY3NMYXllciog
UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllckZvckZvb3Rlcihib29sIHdhbnRzTGF5
ZXIpCiAgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9
IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5h
dG9yLT5mcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LmZyYW1lVmlldygp
KTsKIAotICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5kaWRBZGRGb290ZXJMYXllcihtX2xh
eWVyRm9yRm9vdGVyLmdldCgpKTsKKyAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlkQWRk
Rm9vdGVyTGF5ZXIoKm1fbGF5ZXJGb3JGb290ZXIpOwogCiAgICAgcmV0dXJuIG1fbGF5ZXJGb3JG
b290ZXIuZ2V0KCk7CiB9CkBAIC0zNDYzLDExICszNDYzLDExIEBAIHZvaWQgUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjphdHRhY2hSb290TGF5ZXIoUm9vdExheWVyQXR0YWNobWVudCBhdHRhY2htZW50
KQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUm9vdExheWVyQXR0YWNoZWRWaWFD
aHJvbWVDbGllbnQ6IHsKICAgICAgICAgICAgIEZyYW1lJiBmcmFtZSA9IG1fcmVuZGVyVmlldy5m
cmFtZVZpZXcoKS5mcmFtZSgpOwotICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgp
LmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKCZmcmFtZSwgcm9vdEdyYXBoaWNzTGF5ZXIoKSk7Cisg
ICAgICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoUm9vdEdyYXBoaWNzTGF5
ZXIoZnJhbWUsIHJvb3RHcmFwaGljc0xheWVyKCkpOwogICAgICAgICAgICAgaWYgKGZyYW1lLmlz
TWFpbkZyYW1lKCkpIHsKICAgICAgICAgICAgICAgICBQYWdlT3ZlcmxheUNvbnRyb2xsZXImIHBh
Z2VPdmVybGF5Q29udHJvbGxlciA9IGZyYW1lLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpOwogICAgICAgICAgICAgICAgIHBhZ2VPdmVybGF5Q29udHJvbGxlci53aWxsQXR0YWNo
Um9vdExheWVyKCk7Ci0gICAgICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0
dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcigmZnJhbWUsICZwYWdlT3ZlcmxheUNvbnRyb2xs
ZXIudmlld092ZXJsYXlSb290TGF5ZXIoKSk7CisgICAgICAgICAgICAgICAgcGFnZSgpLmNocm9t
ZSgpLmNsaWVudCgpLmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihmcmFtZSwgJnBhZ2VP
dmVybGF5Q29udHJvbGxlci52aWV3T3ZlcmxheVJvb3RMYXllcigpKTsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0zNTA4LDkgKzM1MDgsOSBAQCB2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGV0YWNoUm9vdExheWVyKCkKICAgICB9CiAgICAgY2Fz
ZSBSb290TGF5ZXJBdHRhY2hlZFZpYUNocm9tZUNsaWVudDogewogICAgICAgICBGcmFtZSYgZnJh
bWUgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkuZnJhbWUoKTsKLSAgICAgICAgcGFnZSgpLmNo
cm9tZSgpLmNsaWVudCgpLmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKCZmcmFtZSwgMCk7CisgICAg
ICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hSb290R3JhcGhpY3NMYXllcihmcmFt
ZSwgbnVsbHB0cik7CiAgICAgICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKQotICAgICAgICAg
ICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXll
cigmZnJhbWUsIDApOworICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFj
aFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihmcmFtZSwgbnVsbHB0cik7CiAgICAgfQogICAgIGJy
ZWFrOwogICAgIGNhc2UgUm9vdExheWVyVW5hdHRhY2hlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IGQyYzAyZWY5ZDYwZTA2YzY4NjY3MjNlNDc0
MDczN2FkOGMwYzM4MjEuLjM3YzgzZThkMWY1ZWJiMDU3YjExMGNjODg4MTA1NDUxMmNkNGQ0N2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMzcx
LDcgKzM3MSw3IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpCiAgICAgLy8gaW5z
aWRlIHRoZSBzaG93UG9wdXAgY2FsbCBhbmQgaXQgd291bGQgZmFpbC4KICAgICBjcmVhdGVJbm5l
ckJsb2NrKCk7CiAgICAgaWYgKCFtX3BvcHVwKQotICAgICAgICBtX3BvcHVwID0gZG9jdW1lbnQo
KS5wYWdlKCktPmNocm9tZSgpLmNyZWF0ZVBvcHVwTWVudSh0aGlzKTsKKyAgICAgICAgbV9wb3B1
cCA9IGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jcmVhdGVQb3B1cE1lbnUoKnRoaXMpOwog
ICAgIG1fcG9wdXBJc1Zpc2libGUgPSB0cnVlOwogCiAgICAgLy8gQ29tcHV0ZSB0aGUgdG9wIGxl
ZnQgdGFraW5nIHRyYW5zZm9ybXMgaW50byBhY2NvdW50LCBidXQgdXNlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcAppbmRleCBiNDZkOGVkNzE4NjA4
Y2FmZTYxNjkzZTE0YmUxM2U4NmQ0Y2E4MjJjLi5jYTkwMDUxODRkYjI5YWM5Mjc3MGRhMTI3NTU4
MTRjNjA4MDYyMWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U2VhcmNoRmllbGQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFy
Y2hGaWVsZC5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBSZW5kZXJTZWFyY2hGaWVsZDo6YWRk
U2VhcmNoUmVzdWx0KCkKIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZl
TmFtZSgpOwogICAgIGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQb3B1cCA9
IHBhZ2UoKS5jaHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7CisgICAgICAgIG1f
c2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KCp0aGlz
KTsKIAogICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBtX3JlY2Vu
dFNlYXJjaGVzKTsKIH0KQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFJlbmRlclNlYXJjaEZpZWxk
OjpzaG93UG9wdXAoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fc2VhcmNoUG9wdXAp
Ci0gICAgICAgIG1fc2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9w
dXBNZW51KHRoaXMpOworICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNy
ZWF0ZVNlYXJjaFBvcHVwTWVudSgqdGhpcyk7CiAKICAgICBpZiAoIW1fc2VhcmNoUG9wdXAtPmVu
YWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgUmVuZGVy
U2VhcmNoRmllbGQ6OnZhbHVlQ2hhbmdlZCh1bnNpZ25lZCBsaXN0SW5kZXgsIGJvb2wgZmlyZUV2
ZW50cykKICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZlTmFt
ZSgpOwogICAgICAgICAgICAgaWYgKCFuYW1lLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAg
IGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cCA9
IHBhZ2UoKS5jaHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7CisgICAgICAgICAg
ICAgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9w
dXBNZW51KCp0aGlzKTsKICAgICAgICAgICAgICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50
U2VhcmNoZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hlcyk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCmluZGV4IGJlYjBhMzk1M2JjNzJmZWUxM2Iz
NTM4ZmU1OTdjZDE5MDlkOWQzYmUuLjQyMDIzZmE3Njg2NTRlMTNhZjZkMzI2MjgyYWUzODE2N2Fj
YTlkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBA
IGJvb2wgU1ZHQUVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCYgZXZl
bnQpIGNvbnN0CiAgICAgICAgIHJldHVybiBTVkdFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxl
KGV2ZW50KTsKIAogICAgIGlmIChpc0xpbmsoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50KCku
ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoJmV2ZW50KTsKKyAgICAgICAgcmV0
dXJuIGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoZXZlbnQp
OwogCiAgICAgcmV0dXJuIFNWR0VsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGll
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3Bw
CmluZGV4IGZkNTY0YWZmMTQwNGU1ODhhOWRjNDFhNjM2N2RiMmYwY2JkYTEyOGIuLjAwNDQwNDFi
Zjc1NzhjM2MyYTg2MTdiN2ZlNzY2ZmQyY2JjYjJkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgTW9j
a1BhZ2VPdmVybGF5Q2xpZW50OjpNb2NrUGFnZU92ZXJsYXlDbGllbnQoKQogUmVmPE1vY2tQYWdl
T3ZlcmxheT4gTW9ja1BhZ2VPdmVybGF5Q2xpZW50OjppbnN0YWxsT3ZlcmxheShNYWluRnJhbWUm
IG1haW5GcmFtZSwgUGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlIG92ZXJsYXlUeXBlKQogewogICAg
IGF1dG8gb3ZlcmxheSA9IFBhZ2VPdmVybGF5OjpjcmVhdGUoKnRoaXMsIG92ZXJsYXlUeXBlKTsK
LSAgICBtYWluRnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5
KG92ZXJsYXkucHRyKCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICBt
YWluRnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KG92ZXJs
YXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIAogICAgIGF1dG8gbW9ja092
ZXJsYXkgPSBNb2NrUGFnZU92ZXJsYXk6OmNyZWF0ZShvdmVybGF5LnB0cigpKTsKICAgICBtX292
ZXJsYXlzLmFkZChtb2NrT3ZlcmxheS5wdHIoKSk7CkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgTW9j
a1BhZ2VPdmVybGF5Q2xpZW50Ojp1bmluc3RhbGxBbGxPdmVybGF5cygpCiAgICAgICAgIFJlZlB0
cjxNb2NrUGFnZU92ZXJsYXk+IG1vY2tPdmVybGF5ID0gbV9vdmVybGF5cy50YWtlQW55KCk7CiAg
ICAgICAgIFBhZ2VPdmVybGF5Q29udHJvbGxlciogb3ZlcmxheUNvbnRyb2xsZXIgPSBtb2NrT3Zl
cmxheS0+b3ZlcmxheSgpLT5jb250cm9sbGVyKCk7CiAgICAgICAgIEFTU0VSVChvdmVybGF5Q29u
dHJvbGxlcik7Ci0gICAgICAgIG92ZXJsYXlDb250cm9sbGVyLT51bmluc3RhbGxQYWdlT3Zlcmxh
eShtb2NrT3ZlcmxheS0+b3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFk
ZSk7CisgICAgICAgIG92ZXJsYXlDb250cm9sbGVyLT51bmluc3RhbGxQYWdlT3ZlcmxheSgqbW9j
a092ZXJsYXktPm92ZXJsYXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0KaW5kZXggM2Iz
YzNhNDI5NGMxN2M1NzhiODE5MTVkYTBiMWM0ZjhiZmEyM2ViYS4uMGQ0ODJiNGRkOTI1YmMwYjhi
OGQ0MjYxZWZjMmM3YTY1NTc2ZTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5h
Z2VyLm1tCkBAIC01OSw3ICs1OSw5IEBAIC0gKHVuc2lnbmVkIGxvbmcgbG9uZyl1c2FnZQogLSAo
dW5zaWduZWQgbG9uZyBsb25nKXF1b3RhCiB7CiAgICAgbG9uZyBsb25nIHF1b3RhOwotICAgIGlm
ICh3ZWJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSgpLmNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKFtf
b3JpZ2luIF9jb3JlXSwgcXVvdGEpKQorICAgIGlmICghX29yaWdpbikKKyAgICAgICAgcmV0dXJu
IDA7CisgICAgaWYgKHdlYkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlKCkuY2FsY3VsYXRlUXVvdGFG
b3JPcmlnaW4oKltfb3JpZ2luIF9jb3JlXSwgcXVvdGEpKQogICAgICAgICByZXR1cm4gcXVvdGE7
CiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGY0ZjA5NmM1ZDY0NzNlYmM2ZTdhYmQ1ODNiNmRm
ZWY0YWFhNGQxNTkuLjdkOGYzYjg3ZjdlMzI0NTE2ZGIwNjE1YmU1OGQ4ZDkwNTU4MjRiOGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmb2N1c2VkRWxlbWVudENo
YW5nZWQoV2ViQ29yZTo6RWxlbWVudCopIG92ZXJyaWRlOwogICAgIHZvaWQgZm9jdXNlZEZyYW1l
Q2hhbmdlZChXZWJDb3JlOjpGcmFtZSopIGZpbmFsOwogCi0gICAgV2ViQ29yZTo6UGFnZSogY3Jl
YXRlV2luZG93KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdh
dGlvbkFjdGlvbiYpIGZpbmFsOworICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJD
b3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJD
b3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBm
aW5hbDsKICAgICB2b2lkIHNob3coKSBmaW5hbDsKIAogICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBm
aW5hbDsKQEAgLTc5LDE2ICs3OSwxNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRSZXNpemFi
bGUoYm9vbCkgZmluYWw7CiAKLSAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNDOjpNZXNz
YWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2Us
IHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgV1RGOjpT
dHJpbmcmIHNvdXJjZVVSTCkgZmluYWw7CisgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKEpT
Qzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCkgZmluYWw7CiAKICAgICBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCgpIGZpbmFsOwotICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNv
bnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSopIGZpbmFsOworICAgIGJv
b2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgV2Vi
Q29yZTo6RnJhbWUmKSBmaW5hbDsKIAogICAgIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgZmluYWw7
CiAKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdU
Rjo6U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJD
b3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBydW5K
YXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFdURjo6U3RyaW5nJiByZXN1bHQp
IG92ZXJyaWRlOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lJiwg
Y29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShX
ZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIGJvb2wgcnVuSmF2
YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KSBvdmVycmlkZTsKIAogICAg
IGJvb2wgc3VwcG9ydHNJbW1lZGlhdGVJbnZhbGlkYXRpb24oKSBmaW5hbDsKICAgICB2b2lkIGlu
dmFsaWRhdGVSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CkBAIC0xMDUs
MjkgKzEwNSwyOSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQg
cGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb250ZW50c1NpemVD
aGFuZ2VkKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0IGZp
bmFsOworICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNjcm9sbFJlY3RJbnRv
Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHNl
dFN0YXR1c2JhclRleHQoY29uc3QgV1RGOjpTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNl
dFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNjcm9s
bGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgZmluYWwgeyB9CiAgICAgYm9vbCBzaG91bGRVbmF2
YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVj
dDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgdW5h
dmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJDb3JlOjpS
ZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZp
bmFsOworICAgIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVs
ZW1lbnQmLCBXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24pIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQo
Y29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIGZp
bmFsOwogCi0gICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6
VGV4dERpcmVjdGlvbikgZmluYWw7CisgICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYs
IFdlYkNvcmU6OlRleHREaXJlY3Rpb24pIGZpbmFsOwogCi0gICAgdm9pZCBwcmludChXZWJDb3Jl
OjpGcmFtZSopIGZpbmFsOwotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6
OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJh
c2VEZXRhaWxzKSBmaW5hbDsKKyAgICB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lJikgZmluYWw7
CisgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBT
dHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKICAg
ICB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkgZmluYWw7
Ci0gICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSBmaW5hbDsKKyAgICB2b2lk
IHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4mLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpIGZpbmFsOwogCiAjaWYgRU5BQkxFKERBU0hC
T0FSRF9TVVBQT1JUKQogICAgIHZvaWQgYW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKSBmaW5hbDsK
ICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3Jl
OjpGaWxlQ2hvb3NlciYpIG92ZXJyaWRlOwotICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25z
dCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXImKSBmaW5hbDsK
KyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBXZWJDb3Jl
OjpGaWxlSWNvbkxvYWRlciYpIGZpbmFsOwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICB2b2lk
IHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBmaW5hbDsKQEAgLTEzNSw3ICsxMzUs
NyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29z
ZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBm
aW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVD
b2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6
Q29sb3ImKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKQEAgLTE1
MSwxNiArMTUxLDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbmFibGVTdWRkZW5UZXJtaW5hdGlv
bigpIGZpbmFsOwogICAgIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkgZmluYWw7CiAK
LSAgICBib29sIHNob3VsZFJlcGxhY2VXaXRoR2VuZXJhdGVkRmlsZUZvclVwbG9hZChjb25zdCBX
VEY6OlN0cmluZyYgcGF0aCwgV1RGOjpTdHJpbmcgJmdlbmVyYXRlZEZpbGVuYW1lKSBmaW5hbDsK
LSAgICBXVEY6OlN0cmluZyBnZW5lcmF0ZVJlcGxhY2VtZW50RmlsZShjb25zdCBXVEY6OlN0cmlu
ZyYgcGF0aCkgZmluYWw7CisgICAgYm9vbCBzaG91bGRSZXBsYWNlV2l0aEdlbmVyYXRlZEZpbGVG
b3JVcGxvYWQoY29uc3QgU3RyaW5nJiBwYXRoLCBTdHJpbmcgJmdlbmVyYXRlZEZpbGVuYW1lKSBm
aW5hbDsKKyAgICBTdHJpbmcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoY29uc3QgU3RyaW5nJiBw
YXRoKSBmaW5hbDsKIAotICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5v
ZGUqKSBvdmVycmlkZTsKLSAgICB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5v
ZGUqKSBvdmVycmlkZTsKKyAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhXZWJDb3JlOjpFbGVtZW50
Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBlbGVtZW50RGlkQmx1cihXZWJDb3JlOjpFbGVtZW50Jikg
b3ZlcnJpZGU7CiAKICAgICBib29sIHNob3VsZFBhaW50RW50aXJlQ29udGVudHMoKSBjb25zdCBm
aW5hbDsKIAotICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUq
LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBhdHRhY2hWaWV3
T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKikgZmluYWw7CisgICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpG
cmFtZSYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dGFj
aFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBmaW5hbDsKICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJv
bml6YXRpb24oKSBmaW5hbDsKICAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNo
KCkgZmluYWw7CiAKQEAgLTE4OSwxNiArMTg5LDE2IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVs
ZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJkKSBmaW5hbDsK
LSAgICB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopIGZp
bmFsOwotICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQq
KSBmaW5hbDsKKyAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2Vi
Q29yZTo6RWxlbWVudCYsIGJvb2wgd2l0aEtleWJvYXJkKSBmaW5hbDsKKyAgICB2b2lkIGVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOworICAgIHZvaWQg
ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKICNlbmRp
ZgogCiAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIG92ZXJy
aWRlOwogICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVj
dGlvbigpIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBmaW5hbDsK
LSAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6
UG9wdXBNZW51Q2xpZW50KikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNs
aWVudCopIGNvbnN0IG92ZXJyaWRlOworICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNy
ZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBvdmVycmlkZTsK
KyAgICBSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1l
bnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lk
IHdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoYm9vbCkgZmluYWwgeyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCAw
ZWNmZjhkNWZhYjFlZTVmYzU1MjkyZGMwNGE4MDVhZDJjY2NkZWQ4Li5lNDk2N2I5ZjhjMzdjNjI1
YjUwNTViYzQyOTFhNzU5NTlmMDVmYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1w
b3J0ICJXZWJDaHJvbWVDbGllbnQuaCIKIAogI2ltcG9ydCAiRE9NRWxlbWVudEludGVybmFsLmgi
CisjaW1wb3J0ICJET01IVE1MSW5wdXRFbGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTU5v
ZGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiUG9wdXBNZW51TWFjLmgiCiAjaW1wb3J0ICJTZWFyY2hQ
b3B1cE1lbnVNYWMuaCIKQEAgLTIyMiw3ICsyMjMsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6
Zm9jdXNlZEVsZW1lbnRDaGFuZ2VkKEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgaWYgKCFpczxIVE1M
SW5wdXRFbGVtZW50PihlbGVtZW50KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSFRNTElucHV0
RWxlbWVudCYgaW5wdXRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1l
bnQpOworICAgIGF1dG8mIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+
KCplbGVtZW50KTsKICAgICBpZiAoIWlucHV0RWxlbWVudC5pc1RleHQoKSkKICAgICAgICAgcmV0
dXJuOwogCkBAIC0yMzMsMTQgKzIzNCwxNCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXNl
ZEZyYW1lQ2hhbmdlZChGcmFtZSopCiB7CiB9CiAKLVBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlV2luZG93KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdp
bmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpCitQYWdlKiBX
ZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9h
ZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRp
b25BY3Rpb24mKQogewogICAgIGlkIGRlbGVnYXRlID0gW21fd2ViVmlldyBVSURlbGVnYXRlXTsK
ICAgICBXZWJWaWV3ICpuZXdXZWJWaWV3OwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQot
ICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+d2Via2l0Q3Vy
cmVudEZ1bGxTY3JlZW5FbGVtZW50KCkpCi0gICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT53ZWJr
aXRDYW5jZWxGdWxsU2NyZWVuKCk7CisgICAgaWYgKGZyYW1lLmRvY3VtZW50KCkgJiYgZnJhbWUu
ZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkpCisgICAgICAgIGZy
YW1lLmRvY3VtZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsKICNlbmRpZgogICAgIAog
ICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OmNy
ZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdDp3aW5kb3dGZWF0dXJlczopXSkgewpAQCAtNDY4LDkgKzQ2
OSw5IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoKQogICAgIHJldHVybiBbW21fd2ViVmlldyBVSURlbGVnYXRlXSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKHdlYlZpZXc6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3Nh
Z2U6aW5pdGlhdGVkQnlGcmFtZTopXTsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKiBmcmFt
ZSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSYgZnJhbWUpCiB7Ci0gICAgcmV0dXJuIENhbGxVSURl
bGVnYXRlUmV0dXJuaW5nQm9vbGVhbih0cnVlLCBtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3
OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6
KSwgbWVzc2FnZSwga2l0KGZyYW1lKSk7CisgICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0dXJu
aW5nQm9vbGVhbih0cnVlLCBtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6KSwgbWVzc2FnZSwg
a2l0KCZmcmFtZSkpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xvc2VXaW5kb3dTb29u
KCkKQEAgLTQ5MywxMiArNDk0LDEyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjbG9zZVdpbmRv
d1Nvb24oKQogICAgIFttX3dlYlZpZXcgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihfY2xvc2VX
aW5kb3cpIHdpdGhPYmplY3Q6bmlsIGFmdGVyRGVsYXk6MC4wXTsKIH0KIAotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUm
IGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgaWQgZGVsZWdhdGUgPSBbbV93
ZWJWaWV3IFVJRGVsZWdhdGVdOwogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3
OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTopOwog
ICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkgewotICAgICAg
ICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBtZXNzYWdlLCBraXQoZnJhbWUp
KTsKKyAgICAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3RvciwgbWVzc2FnZSwg
a2l0KCZmcmFtZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC01MTAsMTIgKzUxMSwx
MiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiBmcmFt
ZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIH0KIH0KIAotYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiBm
cmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIGlkIGRlbGVnYXRlID0gW21fd2Vi
VmlldyBVSURlbGVnYXRlXTsKICAgICBTRUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpy
dW5KYXZhU2NyaXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTopOwog
ICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkKLSAgICAgICAg
cmV0dXJuIENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVhbihOTywgbV93ZWJWaWV3LCBzZWxl
Y3RvciwgbWVzc2FnZSwga2l0KGZyYW1lKSk7CisgICAgICAgIHJldHVybiBDYWxsVUlEZWxlZ2F0
ZVJldHVybmluZ0Jvb2xlYW4oTk8sIG1fd2ViVmlldywgc2VsZWN0b3IsIG1lc3NhZ2UsIGtpdCgm
ZnJhbWUpKTsKIAogICAgIC8vIENhbGwgdGhlIG9sZCB2ZXJzaW9uIG9mIHRoZSBkZWxlZ2F0ZSBt
ZXRob2QgaWYgaXQgaXMgaW1wbGVtZW50ZWQuCiAgICAgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2Vi
VmlldzpydW5KYXZhU2NyaXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6KTsKQEAgLTUyNSwxMyAr
NTI2LDEzIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFt
ZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICByZXR1cm4gTk87CiB9CiAKLWJv
b2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29u
c3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFRleHQsIFN0cmluZyYgcmVz
dWx0KQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmIGZy
YW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VGV4dCwgU3Ry
aW5nJiByZXN1bHQpCiB7CiAgICAgaWQgZGVsZWdhdGUgPSBbbV93ZWJWaWV3IFVJRGVsZWdhdGVd
OwogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRUZXh0
SW5wdXRQYW5lbFdpdGhQcm9tcHQ6ZGVmYXVsdFRleHQ6aW5pdGlhdGVkQnlGcmFtZTopOwogICAg
IE5TU3RyaW5nICpkZWZhdWx0U3RyaW5nID0gZGVmYXVsdFRleHQ7CiAgICAgaWYgKFtkZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6c2VsZWN0b3JdKSB7Ci0gICAgICAgIHJlc3VsdCA9IChOU1N0
cmluZyAqKUNhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIHByb21wdCwgZGVmYXVs
dFN0cmluZywga2l0KGZyYW1lKSk7CisgICAgICAgIHJlc3VsdCA9IChOU1N0cmluZyAqKUNhbGxV
SURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIHByb21wdCwgZGVmYXVsdFN0cmluZywga2l0
KCZmcmFtZSkpOwogICAgICAgICByZXR1cm4gIXJlc3VsdC5pc051bGwoKTsKICAgICB9CiAKQEAg
LTU0Miw3ICs1NDMsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21w
dChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgcHJvbXB0LCBjbwogICAgICAgICByZXR1cm4g
IXJlc3VsdC5pc051bGwoKTsKICAgICB9CiAKLSAgICByZXN1bHQgPSBbW1dlYkRlZmF1bHRVSURl
bGVnYXRlIHNoYXJlZFVJRGVsZWdhdGVdIHdlYlZpZXc6bV93ZWJWaWV3IHJ1bkphdmFTY3JpcHRU
ZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6cHJvbXB0IGRlZmF1bHRUZXh0OmRlZmF1bHRTdHJpbmcg
aW5pdGlhdGVkQnlGcmFtZTpraXQoZnJhbWUpXTsKKyAgICByZXN1bHQgPSBbW1dlYkRlZmF1bHRV
SURlbGVnYXRlIHNoYXJlZFVJRGVsZWdhdGVdIHdlYlZpZXc6bV93ZWJWaWV3IHJ1bkphdmFTY3Jp
cHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6cHJvbXB0IGRlZmF1bHRUZXh0OmRlZmF1bHRTdHJp
bmcgaW5pdGlhdGVkQnlGcmFtZTpraXQoJmZyYW1lKV07CiAgICAgcmV0dXJuICFyZXN1bHQuaXNO
dWxsKCk7CiB9CiAKQEAgLTYwNiw3ICs2MDcsNyBAQCBQbGF0Zm9ybVBhZ2VDbGllbnQgV2ViQ2hy
b21lQ2xpZW50OjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogICAgIHJldHVybiAwOwogfQog
Ci12b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNvbnN0
IEludFNpemUmKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5n
ZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3QKIHsKIH0KIApAQCAtNjM1LDEyICs2MzYs
MTIgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2Fn
ZUJlQnV0dG9uKFJlbmRlckVtYmVkZGVkT2JqZWMKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZv
aWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVu
dCogZWxlbWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVh
c29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50JiBlbGVtZW50LCBSZW5k
ZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFp
bGFiaWxpdHlSZWFzb24pIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQtPmhhc1RhZ05hbWUo
b2JqZWN0VGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGVtYmVkVGFnKSB8fCBlbGVtZW50LT5o
YXNUYWdOYW1lKGFwcGxldFRhZykpOworICAgIEFTU0VSVChlbGVtZW50Lmhhc1RhZ05hbWUob2Jq
ZWN0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZW1iZWRUYWcpIHx8IGVsZW1lbnQuaGFzVGFn
TmFtZShhcHBsZXRUYWcpKTsKIAogICAgIEFTU0VSVChwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNv
biA9PSBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luTWlzc2luZyk7Ci0gICAgQ2FsbFVJRGVs
ZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpkaWRQcmVzc01pc3NpbmdQbHVnaW5C
dXR0b246KSwga2l0KGVsZW1lbnQpKTsKKyAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBz
ZWxlY3Rvcih3ZWJWaWV3OmRpZFByZXNzTWlzc2luZ1BsdWdpbkJ1dHRvbjopLCBraXQoJmVsZW1l
bnQpKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50
KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykKQEAg
LTY1NywyMSArNjU4LDIxIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRUb29sVGlwKGNvbnN0
IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikKICAgICAgICAgWyhXZWJIVE1MVmlldyAq
KWRvY3VtZW50VmlldyBfc2V0VG9vbFRpcDp0b29sVGlwXTsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnByaW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChG
cmFtZSYgZnJhbWUpCiB7Ci0gICAgV2ViRnJhbWUgKndlYkZyYW1lID0ga2l0KGZyYW1lKTsKKyAg
ICBXZWJGcmFtZSAqd2ViRnJhbWUgPSBraXQoJmZyYW1lKTsKICAgICBpZiAoW1ttX3dlYlZpZXcg
VUlEZWxlZ2F0ZV0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnByaW50RnJh
bWU6KV0pCiAgICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZp
ZXc6cHJpbnRGcmFtZTopLCB3ZWJGcmFtZSk7CiAgICAgZWxzZQogICAgICAgICBDYWxsVUlEZWxl
Z2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnByaW50RnJhbWVWaWV3OiksIFt3ZWJG
cmFtZSBmcmFtZVZpZXddKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0
YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRh
YmFzZURldGFpbHMpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3Rh
KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWls
cykKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBXZWJTZWN1cml0
eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdpbiBhbGxvY10gX2luaXRXaXRo
V2ViQ29yZVNlY3VyaXR5T3JpZ2luOiZmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4o
KV07Ci0gICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpmcmFt
ZTpleGNlZWRlZERhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjpkYXRhYmFzZTopLCBraXQo
ZnJhbWUpLCB3ZWJPcmlnaW4sIChOU1N0cmluZyAqKWRhdGFiYXNlTmFtZSk7CisgICAgV2ViU2Vj
dXJpdHlPcmlnaW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0
V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdpbjomZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmln
aW4oKV07CisgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpm
cmFtZTpleGNlZWRlZERhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjpkYXRhYmFzZTopLCBr
aXQoJmZyYW1lKSwgd2ViT3JpZ2luLCAoTlNTdHJpbmcgKilkYXRhYmFzZU5hbWUpOwogICAgIFt3
ZWJPcmlnaW4gcmVsZWFzZV07CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpAQCAt
NjgyLDExICs2ODMsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRNYXhBcHBDYWNo
ZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkKICAgICAvLyBGSVhNRTogRnJlZSBzb21lIHNwYWNl
LgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YShTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQp
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YShTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpCiB7CiAg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgV2ViU2VjdXJpdHlPcmlnaW4g
KndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0aFdlYkNvcmVT
ZWN1cml0eU9yaWdpbjpvcmlnaW5dOworICAgIFdlYlNlY3VyaXR5T3JpZ2luICp3ZWJPcmlnaW4g
PSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5pdFdpdGhXZWJDb3JlU2VjdXJpdHlPcmln
aW46Jm9yaWdpbl07CiAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2Vi
VmlldzpleGNlZWRlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YUZvclNlY3VyaXR5T3JpZ2lu
OnRvdGFsU3BhY2VOZWVkZWQ6KSwgd2ViT3JpZ2luLCBzdGF0aWNfY2FzdDxOU1VJbnRlZ2VyPih0
b3RhbFNwYWNlTmVlZGVkKSk7CiAgICAgW3dlYk9yaWdpbiByZWxlYXNlXTsKIApAQCAtNzA1LDEy
ICs3MDYsMTQgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFubm90YXRlZFJlZ2lvbnNDaGFuZ2Vk
KCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi1zdGQ6OnVuaXF1ZV9w
dHI8Q29sb3JDaG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xv
ckNob29zZXJDbGllbnQqIGNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKKworc3Rk
Ojp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNo
b29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiBjbGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29s
b3IpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCA8aW5wdXQgdHlwZT0nY29sb3InPiBmb3Ig
V0sxIChCdWcgMTE5MDk0KS4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4g
bnVsbHB0cjsKIH0KKwogI2VuZGlmCiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQpAQCAtODQ4
LDE0ICs4NTEsMTQgQEAgU3RyaW5nIFdlYkNocm9tZUNsaWVudDo6Z2VuZXJhdGVSZXBsYWNlbWVu
dEZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVybiBbW21fd2ViVmlldyBfVUlEZWxl
Z2F0ZUZvcndhcmRlcl0gd2ViVmlldzptX3dlYlZpZXcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGU6
cGF0aF07CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9jdXMoY29uc3Qg
V2ViQ29yZTo6Tm9kZSogbm9kZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9j
dXMoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBDYWxsVUlEZWxlZ2F0ZShtX3dl
YlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZvcm1EaWRGb2N1c05vZGU6KSwga2l0KGNvbnN0X2Nh
c3Q8V2ViQ29yZTo6Tm9kZSo+KG5vZGUpKSk7CisgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3
LCBAc2VsZWN0b3Iod2ViVmlldzpmb3JtRGlkRm9jdXNOb2RlOiksIGtpdCgmZWxlbWVudCkpOwog
fQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIoY29uc3QgV2ViQ29yZTo6
Tm9kZSogbm9kZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkQmx1cihXZWJDb3Jl
OjpFbGVtZW50JiBlbGVtZW50KQogewotICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNl
bGVjdG9yKHdlYlZpZXc6Zm9ybURpZEJsdXJOb2RlOiksIGtpdChjb25zdF9jYXN0PFdlYkNvcmU6
Ok5vZGUqPihub2RlKSkpOworICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9y
KHdlYlZpZXc6Zm9ybURpZEJsdXJOb2RlOiksIGtpdCgmZWxlbWVudCkpOwogfQogCiBib29sIFdl
YkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQpAQCAt
ODc0LDE5ICs4NzcsMTkgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6Omhhc09wZW5lZFBvcHVwKCkg
Y29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+
IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVu
dCogY2xpZW50KSBjb25zdAorUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xp
ZW50OjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JiBjbGllbnQpIGNv
bnN0CiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVw
TWVudU1hYyhjbGllbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQb3B1cE1lbnVNYWMo
JmNsaWVudCkpOwogI2Vsc2UKICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogfQogCi1SZWZQ
dHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJj
aFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0
cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNo
UG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAogewogI2lm
ICFQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVN
YWMoY2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VhcmNoUG9wdXBNZW51TWFj
KCZjbGllbnQpKTsKICNlbHNlCiAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKQEAgLTkwMiwx
MSArOTA1LDExIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRQYWludEVudGlyZUNvbnRl
bnRzKCkgY29uc3QKICNlbmRpZgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9v
dEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVy
KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lJiBm
cmFtZSwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBCRUdJTl9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CiAKLSAgICBOU1ZpZXcgKmRvY3VtZW50VmlldyA9IFtba2l0KGZyYW1l
KSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld107CisgICAgTlNWaWV3ICpkb2N1bWVudFZpZXcgPSBb
W2tpdCgmZnJhbWUpIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKICAgICBpZiAoIVtkb2N1bWVu
dFZpZXcgaXNLaW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkgewogICAgICAgICAvLyBX
ZSBzaG91bGQgbmV2ZXIgYmUgYXR0YWNoaW5nIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhIFdlYkhUTUxW
aWV3LgogICAgICAgICBBU1NFUlQoIWdyYXBoaWNzTGF5ZXIpOwpAQCAtOTIxLDcgKzkyNCw3IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJh
bWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
IH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXll
cihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZp
ZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKQogewogICAgIC8v
IEZJWE1FOiBJZiB3ZSB3YW50IHZpZXctcmVsYXRpdmUgcGFnZSBvdmVybGF5cyBpbiBMZWdhY3kg
V2ViS2l0LCB0aGlzIHdvdWxkIGJlIHRoZSBwbGFjZSB0byBob29rIHRoZW0gdXAuCiB9CkBAIC05
NDEsNiArOTQ0LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQ29tcG9zaXRpbmdM
YXllckZsdXNoKCkKIH0KIAogI2lmIEVOQUJMRShWSURFTykKKwogYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9G
dWxsc2NyZWVuTW9kZSkKIHsKICNpZiBQTEFURk9STShJT1MpCkBAIC05NjUsNyArOTY5LDEwIEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50
KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsg
ICAgCiB9CiAKLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05f
TU9ERSkKKyNlbmRpZiAvLyBFTkFCTEUoVklERU8pCisKKyNpZiBFTkFCTEUoVklERU8pICYmIFBM
QVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorCiB2b2lkIFdl
YkNocm9tZUNsaWVudDo6c2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlcihIVE1MTWVkaWFFbGVt
ZW50JiBlbGVtZW50KQogewogICAgIFttX3dlYlZpZXcgX3NldFVwUGxheWJhY2tDb250cm9sc01h
bmFnZXJGb3JNZWRpYUVsZW1lbnQ6ZWxlbWVudF07CkBAIC05NzUsNTQgKzk4Miw1NSBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6Y2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigpCiB7CiAgICAg
W21fd2ViVmlldyBfY2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcl07CiB9Ci0jZW5kaWYgLy8g
UExBVEZPUk0oTUFDKQotI2VuZGlmIC8vIEVOQUJMRShWSURFTykKKworI2VuZGlmCiAKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1
bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgd2l0aEtleWJv
YXJkKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQo
Y29uc3QgRWxlbWVudCYgZWxlbWVudCwgYm9vbCB3aXRoS2V5Ym9hcmQpCiB7CiAgICAgU0VMIHNl
bGVjdG9yID0gQHNlbGVjdG9yKHdlYlZpZXc6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDp3
aXRoS2V5Ym9hcmQ6KTsKICAgICBpZiAoW1ttX3dlYlZpZXcgVUlEZWxlZ2F0ZV0gcmVzcG9uZHNU
b1NlbGVjdG9yOnNlbGVjdG9yXSkKLSAgICAgICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0dXJu
aW5nQm9vbGVhbihmYWxzZSwgbV93ZWJWaWV3LCBzZWxlY3Rvciwga2l0KGNvbnN0X2Nhc3Q8V2Vi
Q29yZTo6RWxlbWVudCo+KGVsZW1lbnQpKSwgd2l0aEtleWJvYXJkKTsKKyAgICAgICAgcmV0dXJu
IENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVhbihmYWxzZSwgbV93ZWJWaWV3LCBzZWxlY3Rv
ciwga2l0KGNvbnN0X2Nhc3Q8V2ViQ29yZTo6RWxlbWVudCo+KCZlbGVtZW50KSksIHdpdGhLZXli
b2FyZCk7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICByZXR1cm4gW21fd2ViVmlldyBfc3VwcG9y
dHNGdWxsU2NyZWVuRm9yRWxlbWVudDpjb25zdF9jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPihlbGVt
ZW50KSB3aXRoS2V5Ym9hcmQ6d2l0aEtleWJvYXJkXTsKKyAgICByZXR1cm4gW21fd2ViVmlldyBf
c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDpjb25zdF9jYXN0PFdlYkNvcmU6OkVsZW1lbnQq
PigmZWxlbWVudCkgd2l0aEtleWJvYXJkOndpdGhLZXlib2FyZF07CiAjZWxzZQogICAgIHJldHVy
biBOTzsKICNlbmRpZgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVu
Rm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBTRUwgc2VsZWN0
b3IgPSBAc2VsZWN0b3Iod2ViVmlldzplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50Omxpc3RlbmVy
Oik7CiAgICAgaWYgKFtbbV93ZWJWaWV3IFVJRGVsZWdhdGVdIHJlc3BvbmRzVG9TZWxlY3Rvcjpz
ZWxlY3Rvcl0pIHsKLSAgICAgICAgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyKiBsaXN0ZW5lciA9
IFtbV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aEVsZW1lbnQ6ZWxlbWVu
dF07Ci0gICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIGtpdChlbGVt
ZW50KSwgbGlzdGVuZXIpOworICAgICAgICBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIqIGxpc3Rl
bmVyID0gW1tXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoRWxlbWVudDom
ZWxlbWVudF07CisgICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIGtp
dCgmZWxlbWVudCksIGxpc3RlbmVyKTsKICAgICAgICAgW2xpc3RlbmVyIHJlbGVhc2VdOwogICAg
IH0KICNpZiAhUExBVEZPUk0oSU9TKQogICAgIGVsc2UKLSAgICAgICAgW21fd2ViVmlldyBfZW50
ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDplbGVtZW50XTsKKyAgICAgICAgW21fd2ViVmlldyBfZW50
ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDomZWxlbWVudF07CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQor
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50JiBl
bGVtZW50KQogewogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OmV4aXRGdWxs
U2NyZWVuRm9yRWxlbWVudDpsaXN0ZW5lcjopOwogICAgIGlmIChbW21fd2ViVmlldyBVSURlbGVn
YXRlXSByZXNwb25kc1RvU2VsZWN0b3I6c2VsZWN0b3JdKSB7Ci0gICAgICAgIFdlYktpdEZ1bGxT
Y3JlZW5MaXN0ZW5lciogbGlzdGVuZXIgPSBbW1dlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciBhbGxv
Y10gaW5pdFdpdGhFbGVtZW50OmVsZW1lbnRdOwotICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dl
YlZpZXcsIHNlbGVjdG9yLCBraXQoZWxlbWVudCksIGxpc3RlbmVyKTsKKyAgICAgICAgV2ViS2l0
RnVsbFNjcmVlbkxpc3RlbmVyKiBsaXN0ZW5lciA9IFtbV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVy
IGFsbG9jXSBpbml0V2l0aEVsZW1lbnQ6JmVsZW1lbnRdOworICAgICAgICBDYWxsVUlEZWxlZ2F0
ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBraXQoJmVsZW1lbnQpLCBsaXN0ZW5lcik7CiAgICAgICAg
IFtsaXN0ZW5lciByZWxlYXNlXTsKICAgICB9CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBlbHNl
Ci0gICAgICAgIFttX3dlYlZpZXcgX2V4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDplbGVtZW50XTsK
KyAgICAgICAgW21fd2ViVmlldyBfZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50OiZlbGVtZW50XTsK
ICNlbmRpZgogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogCiAjaWYgRU5B
QkxFKFNVQlRMRV9DUllQVE8pCisKIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojp3cmFwQ3J5cHRvS2V5
KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXkp
IGNvbnN0CiB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IG1hc3RlcktleTsKQEAgLTEwNDgsOSArMTA1
NiwxMSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6dW53cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rv
cjx1aW50OF90PiYgd3JhcHBlZEtleSwgVmVjdG9yPAogCiAgICAgcmV0dXJuIHVud3JhcFNlcmlh
bGl6ZWRDcnlwdG9LZXkobWFzdGVyS2V5LCB3cmFwcGVkS2V5LCBrZXkpOwogfQorCiAjZW5kaWYK
IAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6
aGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uJiBzZWxl
Y3Rpb24sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0ZWxlcGhvbmVOdW1iZXJzLCBjb25zdCBXZWJD
b3JlOjpJbnRQb2ludCYgcG9pbnQpCiB7CiAgICAgW21fd2ViVmlldyBfc2VsZWN0aW9uU2Vydmlj
ZUNvbnRyb2xsZXJdLmhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhzZWxlY3Rpb24sIHRlbGVw
aG9uZU51bWJlcnMsIHBvaW50KTsKQEAgLTEwNjQsNiArMTA3NCw3IEBAIGJvb2wgV2ViQ2hyb21l
Q2xpZW50OjpoYXNSZWxldmFudFNlbGVjdGlvblNlcnZpY2VzKGJvb2wgaXNUZXh0T25seSkgY29u
c3QKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgIVBM
QVRGT1JNKElPUykKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFkZFBsYXliYWNrVGFyZ2V0UGlj
a2VyQ2xpZW50KHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAgICBbbV93ZWJWaWV3IF9hZGRQbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudDpjb250ZXh0SWRdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0KaW5kZXggYmViN2IzMDljYTZjZGQ4MzNjZGFmZGIwNGZiMTkyYTRkY2IyNjRk
NS4uMzhhNGNlY2IxNzYxMTQxN2Y3OThlODg0ZjA0ZWFiOTJiMzEyNDJjZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC0zMDIsMTQgKzMwMiwxNCBAQCArIChSZWY8V2Vi
Q29yZTo6RnJhbWU+KV9jcmVhdGVGcmFtZVdpdGhQYWdlOihQYWdlKilwYWdlIGZyYW1lTmFtZToo
Y29uc3QgU3RyaW5nJgogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBraXQocGFnZSk7CiAKICAgICBX
ZWJGcmFtZSAqZnJhbWUgPSBbW3NlbGYgYWxsb2NdIF9pbml0V2l0aFdlYkZyYW1lVmlldzpmcmFt
ZVZpZXcgd2ViVmlldzp3ZWJWaWV3XTsKLSAgICBSZWY8V2ViQ29yZTo6RnJhbWU+IGNvcmVGcmFt
ZSA9IEZyYW1lOjpjcmVhdGUocGFnZSwgb3duZXJFbGVtZW50LCBuZXcgV2ViRnJhbWVMb2FkZXJD
bGllbnQoZnJhbWUpKTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZSwg
b3duZXJFbGVtZW50LCBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQoZnJhbWUpKTsKICAgICBbZnJh
bWUgcmVsZWFzZV07CiAgICAgZnJhbWUtPl9wcml2YXRlLT5jb3JlRnJhbWUgPSBjb3JlRnJhbWUu
cHRyKCk7CiAKICAgICBjb3JlRnJhbWUuZ2V0KCkudHJlZSgpLnNldE5hbWUobmFtZSk7CiAgICAg
aWYgKG93bmVyRWxlbWVudCkgewogICAgICAgICBBU1NFUlQob3duZXJFbGVtZW50LT5kb2N1bWVu
dCgpLmZyYW1lKCkpOwotICAgICAgICBvd25lckVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKS0+
dHJlZSgpLmFwcGVuZENoaWxkKGNvcmVGcmFtZS5wdHIoKSk7CisgICAgICAgIG93bmVyRWxlbWVu
dC0+ZG9jdW1lbnQoKS5mcmFtZSgpLT50cmVlKCkuYXBwZW5kQ2hpbGQoY29yZUZyYW1lLmdldCgp
KTsKICAgICB9CiAKICAgICBjb3JlRnJhbWUuZ2V0KCkuaW5pdCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2lu
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggMTRlOTcxMGQxNWQ3OWJmM2I1NWM0MDA5ZTU2
Njg0YTBlZTNkNzgzNy4uMjk4MTUzZGYzYzRhZDdmNzRhYjI1Zjk4MDliZmRkYjIyZDgwNzM4NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC01OTMsNyArNTkz
LDcgQEAgTlBFcnJvciBQbHVnaW5WaWV3OjpkZXN0cm95U3RyZWFtKE5QU3RyZWFtKiBzdHJlYW0s
IE5QUmVhc29uIHJlYXNvbikKIHZvaWQgUGx1Z2luVmlldzo6c3RhdHVzKGNvbnN0IGNoYXIqIG1l
c3NhZ2UpCiB7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX3BhcmVudEZyYW1lLT5wYWdlKCkpCi0g
ICAgICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQobV9wYXJlbnRGcmFtZS5nZXQo
KSwgU3RyaW5nOjpmcm9tVVRGOChtZXNzYWdlKSk7CisgICAgICAgIHBhZ2UtPmNocm9tZSgpLnNl
dFN0YXR1c2JhclRleHQoKm1fcGFyZW50RnJhbWUsIFN0cmluZzo6ZnJvbVVURjgobWVzc2FnZSkp
OwogfQogCiBOUEVycm9yIFBsdWdpblZpZXc6OnNldFZhbHVlKE5QUFZhcmlhYmxlIHZhcmlhYmxl
LCB2b2lkKiB2YWx1ZSkKQEAgLTc5Myw3ICs3OTMsNyBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3
KEZyYW1lKiBwYXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSog
cAogdm9pZCBQbHVnaW5WaWV3Ojpmb2N1c1BsdWdpbkVsZW1lbnQoKQogewogICAgIGlmIChQYWdl
KiBwYWdlID0gbV9wYXJlbnRGcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChtX2VsZW1lbnQsIG1fcGFyZW50RnJhbWUpOworICAg
ICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChtX2VsZW1lbnQs
ICptX3BhcmVudEZyYW1lKTsKICAgICBlbHNlCiAgICAgICAgIG1fcGFyZW50RnJhbWUtPmRvY3Vt
ZW50KCktPnNldEZvY3VzZWRFbGVtZW50KG1fZWxlbWVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBhNzcz
YjFhYjE0MTc0ZTAyMGM2MmQ5ZDA0Nzg2ZDJhMjgyMWNiNzg0Li43MGMzZTYyMTM3YzM0NGM3MDA5
ZTcwNDdiOTUyYTBmYjlhNmRhNjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTE4OSwxNSArMTg5LDE1IEBAIHN0
YXRpYyBDT01QdHI8SVByb3BlcnR5QmFnPiBjcmVhdGVXaW5kb3dGZWF0dXJlc1Byb3BlcnR5QmFn
KGNvbnN0IFdpbmRvd0ZlYXR1cmVzCiAgICAgcmV0dXJuIENPTVB0cjxJUHJvcGVydHlCYWc+KEFk
b3B0Q09NLCBDT01Qcm9wZXJ0eUJhZzxDT01WYXJpYW50Pjo6YWRvcHQobWFwKSk7CiB9CiAKLVBh
Z2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJh
bWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbikKK1BhZ2UqIFdlYkNocm9tZUNsaWVudDo6
Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0
IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdh
dGlvbkFjdGlvbikKIHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IGRlbGVnYXRlID0gdWlE
ZWxlZ2F0ZSgpOwogICAgIGlmICghZGVsZWdhdGUpCiAgICAgICAgIHJldHVybiAwOwogCiAjaWYg
RU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFt
ZS0+ZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkpCi0gICAgICAg
IGZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7CisgICAgaWYgKGZy
YW1lLmRvY3VtZW50KCkgJiYgZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxTY3Jl
ZW5FbGVtZW50KCkpCisgICAgICAgIGZyYW1lLmRvY3VtZW50KCktPndlYmtpdENhbmNlbEZ1bGxT
Y3JlZW4oKTsKICNlbmRpZgogCiAgICAgQ09NUHRyPFdlYk11dGFibGVVUkxSZXF1ZXN0PiByZXF1
ZXN0ID0gYWRvcHRDT00oV2ViTXV0YWJsZVVSTFJlcXVlc3Q6OmNyZWF0ZUluc3RhbmNlKFJlc291
cmNlUmVxdWVzdChuYXZpZ2F0aW9uQWN0aW9uLnVybCgpKSkpOwpAQCAtMzYxLDEyICszNjEsMTIg
QEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgp
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUqIGZyYW1lKQor
Ym9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIEZyYW1lJiBmcmFtZSkKIHsKICAgICBCT09MIHJlc3VsdCA9IFRSVUU7
CiAgICAgSVdlYlVJRGVsZWdhdGUqIHVpOwogICAgIGlmIChTVUNDRUVERUQobV93ZWJWaWV3LT51
aURlbGVnYXRlKCZ1aSkpICYmIHVpKSB7Ci0gICAgICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IGtp
dChmcmFtZSk7CisgICAgICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IGtpdCgmZnJhbWUpOwogICAg
ICAgICB1aS0+cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2UobV93ZWJWaWV3
LCBCU3RyaW5nKG1lc3NhZ2UpLCB3ZWJGcmFtZSwgJnJlc3VsdCk7CiAgICAgICAgIHVpLT5SZWxl
YXNlKCk7CiAgICAgfQpAQCAtNTQwLDcgKzU0MCw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojpz
aG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihSZW5kZXJFbWJlZGRlZE9iamVj
CiAgICAgcmV0dXJuIHVpRGVsZWdhdGVQcml2YXRlMzsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50KiBlbGVtZW50LCBSZW5k
ZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFp
bGFiaWxpdHlSZWFzb24pIGNvbnN0Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQ
bHVnaW5CdXR0b25DbGlja2VkKEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0
OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikg
Y29uc3QKIHsKICAgICBBU1NFUlRfVU5VU0VEKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBw
bHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiA9PSBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2lu
TWlzc2luZyk7CiAKQEAgLTU1Miw3ICs1NTIsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6dW5h
dmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlckVtYgog
ICAgIGlmICghdWlEZWxlZ2F0ZVByaXZhdGUzKQogICAgICAgICByZXR1cm47CiAKLSAgICBDT01Q
dHI8SURPTUVsZW1lbnQ+IGUoQWRvcHRDT00sIERPTUVsZW1lbnQ6OmNyZWF0ZUluc3RhbmNlKGVs
ZW1lbnQpKTsKKyAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGUoQWRvcHRDT00sIERPTUVsZW1lbnQ6
OmNyZWF0ZUluc3RhbmNlKCZlbGVtZW50KSk7CiAgICAgdWlEZWxlZ2F0ZVByaXZhdGUzLT5kaWRQ
cmVzc01pc3NpbmdQbHVnaW5CdXR0b24oZS5nZXQoKSk7CiB9CiAKQEAgLTU2MSwyMSArNTYxLDIx
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbFRp
cCwgVGV4dERpcmVjdGlvbikKICAgICBtX3dlYlZpZXctPnNldFRvb2xUaXAodG9vbFRpcCk7CiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSogZnJhbWUpCit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6cHJpbnQoRnJhbWUmIGZyYW1lKQogewogICAgIENPTVB0cjxJV2ViVUlEZWxl
Z2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0
ZSgmdWlEZWxlZ2F0ZSkpKQotICAgICAgICB1aURlbGVnYXRlLT5wcmludEZyYW1lKG1fd2ViVmll
dywga2l0KGZyYW1lKSk7CisgICAgICAgIHVpRGVsZWdhdGUtPnByaW50RnJhbWUobV93ZWJWaWV3
LCBraXQoJmZyYW1lKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFi
YXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRpZmllciwg
RGF0YWJhc2VEZXRhaWxzKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VR
dW90YShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyLCBEYXRh
YmFzZURldGFpbHMpCiB7Ci0gICAgQ09NUHRyPFdlYlNlY3VyaXR5T3JpZ2luPiBvcmlnaW4oQWRv
cHRDT00sIFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVJbnN0YW5jZSgmZnJhbWUtPmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCkpKTsKKyAgICBDT01QdHI8V2ViU2VjdXJpdHlPcmlnaW4+IG9y
aWdpbihBZG9wdENPTSwgV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUluc3RhbmNlKCZmcmFtZS5k
b2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSk7CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRl
PiB1aURlbGVnYXRlOwogICAgIGlmIChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1
aURlbGVnYXRlKSkpIHsKICAgICAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlUHJpdmF0ZT4gdWlE
ZWxlZ2F0ZVByaXZhdGUoUXVlcnksIHVpRGVsZWdhdGUpOwogICAgICAgICBpZiAodWlEZWxlZ2F0
ZVByaXZhdGUpCi0gICAgICAgICAgICB1aURlbGVnYXRlUHJpdmF0ZS0+ZXhjZWVkZWREYXRhYmFz
ZVF1b3RhKG1fd2ViVmlldywga2l0KGZyYW1lKSwgb3JpZ2luLmdldCgpLCBCU3RyaW5nKGRhdGFi
YXNlSWRlbnRpZmllcikpOworICAgICAgICAgICAgdWlEZWxlZ2F0ZVByaXZhdGUtPmV4Y2VlZGVk
RGF0YWJhc2VRdW90YShtX3dlYlZpZXcsIGtpdCgmZnJhbWUpLCBvcmlnaW4uZ2V0KCksIEJTdHJp
bmcoZGF0YWJhc2VJZGVudGlmaWVyKSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8g
RklYTUU6IHJlbW92ZSB0aGlzIHdvcmthcm91bmQgb25jZSBzaGlwcGluZyBTYWZhcmkgaGFzIHRo
ZSBuZWNlc3NhcnkgZGVsZWdhdGUgaW1wbGVtZW50ZWQuCiAgICAgICAgICAgICBXQ0hBUiBwYXRo
W01BWF9QQVRIXTsKQEAgLTcxNywxMiArNzE3LDEyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpz
ZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCkKICAgICBtX3dlYlZpZXctPnNldExhc3RD
dXJzb3IoOjpHZXRDdXJzb3IoKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hS
b290R3JhcGhpY3NMYXllcihGcmFtZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5
ZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUm
LCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQogewogICAgIG1fd2ViVmlldy0+c2V0Um9v
dENoaWxkTGF5ZXIoZ3JhcGhpY3NMYXllcik7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojph
dHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUm
LCBHcmFwaGljc0xheWVyKikKIHsKICAgICAvLyBGSVhNRTogSWYgd2Ugd2FudCB2aWV3LXJlbGF0
aXZlIHBhZ2Ugb3ZlcmxheXMgaW4gTGVnYWN5IFdlYktpdCBvbiBXaW5kb3dzLCB0aGlzIHdvdWxk
IGJlIHRoZSBwbGFjZSB0byBob29rIHRoZW0gdXAuCiB9CkBAIC03ODEsNTkgKzc4MSw2MSBAQCBi
b29sIFdlYkNocm9tZUNsaWVudDo6aGFzT3BlbmVkUG9wdXAoKSBjb25zdAogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotUmVmUHRyPFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1
cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8UG9wdXBNZW51PiBX
ZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudVdpbihjbGllbnQpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudVdpbigmY2xpZW50KSk7CiB9CiAKLVJl
ZlB0cjxTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBN
ZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUmVmUHRyPFNlYXJjaFBvcHVwTWVu
dT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
JiBjbGllbnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1l
bnVXaW4oY2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVX
aW4oJmNsaWVudCkpOwogfQogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotYm9vbCBXZWJD
aHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxlbWVudCog
ZWxlbWVudCwgYm9vbCByZXF1ZXN0aW5nS2V5Ym9hcmRBY2Nlc3MpCisKK2Jvb2wgV2ViQ2hyb21l
Q2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1l
bnQsIGJvb2wgcmVxdWVzdGluZ0tleWJvYXJkQWNjZXNzKQogewogICAgIENPTVB0cjxJV2ViVUlE
ZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxl
Z2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CiAgICAgICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZVByaXZh
dGU0PiB1aURlbGVnYXRlUHJpdmF0ZTQoUXVlcnksIHVpRGVsZWdhdGUpOwogICAgICAgICBCT09M
IHN1cHBvcnRzID0gRkFMU0U7Ci0gICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxlbWVu
dChBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoY29uc3RfY2FzdDxFbGVtZW50
Kj4oZWxlbWVudCkpKTsKKyAgICAgICAgQ09NUHRyPElET01FbGVtZW50PiBkb21FbGVtZW50KEFk
b3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZShjb25zdF9jYXN0PEVsZW1lbnQqPigm
ZWxlbWVudCkpKTsKIAogICAgICAgICBpZiAodWlEZWxlZ2F0ZVByaXZhdGU0ICYmIFNVQ0NFRURF
RCh1aURlbGVnYXRlUHJpdmF0ZTQtPnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoZG9tRWxl
bWVudC5nZXQoKSwgcmVxdWVzdGluZ0tleWJvYXJkQWNjZXNzLCAmc3VwcG9ydHMpKSkKICAgICAg
ICAgICAgIHJldHVybiBzdXBwb3J0czsKICAgICB9CiAKLSAgICByZXR1cm4gbV93ZWJWaWV3LT5z
dXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQsIHJlcXVlc3RpbmdLZXlib2FyZEFj
Y2Vzcyk7CisgICAgcmV0dXJuIG1fd2ViVmlldy0+c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVu
dCgmZWxlbWVudCwgcmVxdWVzdGluZ0tleWJvYXJkQWNjZXNzKTsKIH0KIAotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQmIGVs
ZW1lbnQpCiB7CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOwogICAgIGlm
IChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkpIHsKICAgICAg
ICAgQ09NUHRyPElXZWJVSURlbGVnYXRlUHJpdmF0ZTQ+IHVpRGVsZWdhdGVQcml2YXRlNChRdWVy
eSwgdWlEZWxlZ2F0ZSk7Ci0gICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxlbWVudChB
ZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoZWxlbWVudCkpOworICAgICAgICBD
T01QdHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00sIERPTUVsZW1lbnQ6OmNyZWF0
ZUluc3RhbmNlKCZlbGVtZW50KSk7CiAgICAgICAgIGlmICh1aURlbGVnYXRlUHJpdmF0ZTQgJiYg
U1VDQ0VFREVEKHVpRGVsZWdhdGVQcml2YXRlNC0+ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChk
b21FbGVtZW50LmdldCgpKSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfSAKIAotICAgIG1f
d2ViVmlldy0+c2V0RnVsbFNjcmVlbkVsZW1lbnQoZWxlbWVudCk7CisgICAgbV93ZWJWaWV3LT5z
ZXRGdWxsU2NyZWVuRWxlbWVudCgmZWxlbWVudCk7CiAgICAgbV93ZWJWaWV3LT5mdWxsU2NyZWVu
Q29udHJvbGxlcigpLT5lbnRlckZ1bGxTY3JlZW4oKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQog
ewogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICBpZiAoU1VDQ0VF
REVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CiAgICAgICAgIENPTVB0
cjxJV2ViVUlEZWxlZ2F0ZVByaXZhdGU0PiB1aURlbGVnYXRlUHJpdmF0ZTQoUXVlcnksIHVpRGVs
ZWdhdGUpOwotICAgICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00s
IERPTUVsZW1lbnQ6OmNyZWF0ZUluc3RhbmNlKGVsZW1lbnQpKTsKKyAgICAgICAgQ09NUHRyPElE
T01FbGVtZW50PiBkb21FbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5j
ZSgmZWxlbWVudCkpOwogICAgICAgICBpZiAodWlEZWxlZ2F0ZVByaXZhdGU0ICYmIFNVQ0NFRURF
RCh1aURlbGVnYXRlUHJpdmF0ZTQtPmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChkb21FbGVtZW50
LmdldCgpKSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUKGVsZW1l
bnQgPT0gbV93ZWJWaWV3LT5mdWxsU2NyZWVuRWxlbWVudCgpKTsKKyAgICBBU1NFUlQoJmVsZW1l
bnQgPT0gbV93ZWJWaWV3LT5mdWxsU2NyZWVuRWxlbWVudCgpKTsKICAgICBtX3dlYlZpZXctPmZ1
bGxTY3JlZW5Db250cm9sbGVyKCktPmV4aXRGdWxsU2NyZWVuKCk7CiB9CisKICNlbmRpZgogCiB2
b2lkIFdlYkNocm9tZUNsaWVudDo6QVhTdGFydEZyYW1lTG9hZCgpCkBAIC04NTIsMTAgKzg1NCwx
MCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6QVhGaW5pc2hGcmFtZUxvYWQoKQogICAgICAgICBk
ZWxlZ2F0ZS0+ZmlyZUZyYW1lTG9hZEZpbmlzaGVkRXZlbnRzKCk7CiB9CiAKLWJvb2wgV2ViQ2hy
b21lQ2xpZW50OjpzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJhbWVW
aWV3KiBmcmFtZVZpZXcpIGNvbnN0Citib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGls
ZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaWV3KSBjb25zdAog
ewogI2lmICFVU0UoQ0FJUk8pCi0gICAgcmV0dXJuIGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmZy
YW1lKCkuaXNNYWluRnJhbWUoKTsKKyAgICByZXR1cm4gZnJhbWVWaWV3LmZyYW1lKCkuaXNNYWlu
RnJhbWUoKTsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDkyODcy
YjQxYzEyZmIzMTVlNTQxZWNiZGI5NWRiY2IxNTY2MjcyZGMuLmJlMjAyODg4NDgwODdhMTE2NjJk
N2E0YjNjOWI0Mzg0MWUzNmM3MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNywxMzcgKzM3LDEzNyBAQCBjbGFzcyBX
ZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOwogCiBpbnRlcmZhY2UgSVdlYlVJRGVsZWdh
dGU7CiAKLWNsYXNzIFdlYkNocm9tZUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpDaHJvbWVDbGll
bnQgeworY2xhc3MgV2ViQ2hyb21lQ2xpZW50IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkNocm9t
ZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgV2ViQ2hyb21lQ2xpZW50KFdlYlZpZXcqKTsKIAotICAg
IHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKKyAgICB2b2lkIGNocm9tZURlc3Ryb3ll
ZCgpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0Jik7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93UmVj
dCgpOworICAgIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBm
aW5hbDsKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93UmVjdCgpIGZpbmFsOwogICAgIAot
ICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHBhZ2VSZWN0KCk7CisgICAgV2ViQ29yZTo6
RmxvYXRSZWN0IHBhZ2VSZWN0KCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKTsK
LSAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpOworICAgIHZvaWQgZm9jdXMoKSBmaW5hbDsKKyAg
ICB2b2lkIHVuZm9jdXMoKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9jdXMo
V2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pOwotICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoV2Vi
Q29yZTo6Rm9jdXNEaXJlY3Rpb24pOworICAgIGJvb2wgY2FuVGFrZUZvY3VzKFdlYkNvcmU6OkZv
Y3VzRGlyZWN0aW9uKSBmaW5hbDsKKyAgICB2b2lkIHRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0Rp
cmVjdGlvbikgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEVsZW1lbnRDaGFuZ2Vk
KFdlYkNvcmU6OkVsZW1lbnQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdl
ZChXZWJDb3JlOjpGcmFtZSopOworICAgIHZvaWQgZm9jdXNlZEVsZW1lbnRDaGFuZ2VkKFdlYkNv
cmU6OkVsZW1lbnQqKSBmaW5hbDsKKyAgICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoV2ViQ29y
ZTo6RnJhbWUqKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6UGFnZSogY3JlYXRlV2lu
ZG93KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCYsIGNv
bnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFj
dGlvbiYpOwotICAgIHZpcnR1YWwgdm9pZCBzaG93KCk7CisgICAgV2ViQ29yZTo6UGFnZSogY3Jl
YXRlV2luZG93KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdh
dGlvbkFjdGlvbiYpIGZpbmFsOworICAgIHZvaWQgc2hvdygpIGZpbmFsOwogCi0gICAgdmlydHVh
bCBib29sIGNhblJ1bk1vZGFsKCk7Ci0gICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsKCk7CisgICAg
Ym9vbCBjYW5SdW5Nb2RhbCgpIGZpbmFsOworICAgIHZvaWQgcnVuTW9kYWwoKSBmaW5hbDsKIAot
ICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFyc1Zpc2libGUoYm9vbCk7Ci0gICAgdmlydHVhbCBi
b29sIHRvb2xiYXJzVmlzaWJsZSgpOworICAgIHZvaWQgc2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wp
IGZpbmFsOworICAgIGJvb2wgdG9vbGJhcnNWaXNpYmxlKCkgZmluYWw7CiAgICAgCi0gICAgdmly
dHVhbCB2b2lkIHNldFN0YXR1c2JhclZpc2libGUoYm9vbCk7Ci0gICAgdmlydHVhbCBib29sIHN0
YXR1c2JhclZpc2libGUoKTsKKyAgICB2b2lkIHNldFN0YXR1c2JhclZpc2libGUoYm9vbCkgZmlu
YWw7CisgICAgYm9vbCBzdGF0dXNiYXJWaXNpYmxlKCkgZmluYWw7CiAgICAgCi0gICAgdmlydHVh
bCB2b2lkIHNldFNjcm9sbGJhcnNWaXNpYmxlKGJvb2wpOwotICAgIHZpcnR1YWwgYm9vbCBzY3Jv
bGxiYXJzVmlzaWJsZSgpOworICAgIHZvaWQgc2V0U2Nyb2xsYmFyc1Zpc2libGUoYm9vbCkgZmlu
YWw7CisgICAgYm9vbCBzY3JvbGxiYXJzVmlzaWJsZSgpIGZpbmFsOwogICAgIAotICAgIHZpcnR1
YWwgdm9pZCBzZXRNZW51YmFyVmlzaWJsZShib29sKTsKLSAgICB2aXJ0dWFsIGJvb2wgbWVudWJh
clZpc2libGUoKTsKKyAgICB2b2lkIHNldE1lbnViYXJWaXNpYmxlKGJvb2wpIGZpbmFsOworICAg
IGJvb2wgbWVudWJhclZpc2libGUoKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRSZXNp
emFibGUoYm9vbCk7CisgICAgdm9pZCBzZXRSZXNpemFibGUoYm9vbCkgZmluYWw7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6
TWVzc2FnZUxldmVsLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51
bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBXVEY6OlN0cmluZyYgdXJsKTsKKyAg
ICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3Nh
Z2VMZXZlbCwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIs
IHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgV1RGOjpTdHJpbmcmIHVybCkgZmluYWw7CiAK
LSAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCk7Ci0gICAg
dmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBXVEY6OlN0cmlu
ZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUqIGZyYW1lKTsKKyAgICBib29sIGNhblJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbCgpIGZpbmFsOworICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsKGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSYpIGZp
bmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGNsb3NlV2luZG93U29vbigpOworICAgIHZvaWQgY2xv
c2VXaW5kb3dTb29uKCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcnVuSmF2YVNjcmlwdEFs
ZXJ0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIGJv
b2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmlu
ZyYpOwotICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1l
KiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZWZhdWx0
VmFsdWUsIFdURjo6U3RyaW5nJiByZXN1bHQpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNi
YXJUZXh0KGNvbnN0IFdURjo6U3RyaW5nJik7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQo
V2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXVEY6OlN0cmluZyYpIGZpbmFsOworICAgIGJvb2wgcnVu
SmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXVEY6OlN0cmluZyYpIGZp
bmFsOworICAgIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0
IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVmYXVsdFZhbHVlLCBX
VEY6OlN0cmluZyYgcmVzdWx0KSBmaW5hbDsKKyAgICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29u
c3QgV1RGOjpTdHJpbmcmKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6S2V5Ym9hcmRV
SU1vZGUga2V5Ym9hcmRVSU1vZGUoKTsKKyAgICBXZWJDb3JlOjpLZXlib2FyZFVJTW9kZSBrZXli
b2FyZFVJTW9kZSgpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmll
dyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVD
b250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSAgICB2aXJ0dWFs
IHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0Jik7Ci0gICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBz
Y3JvbGxEZWx0YSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCk7CisgICAgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXco
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRl
bnRzQW5kUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOworICAgIHZvaWQg
aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikg
ZmluYWw7CisgICAgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVs
dGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgY2xpcFJlY3QpIGZpbmFsOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpJbnRQb2lu
dCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Q7Ci0gICAg
dmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpIGNvbnN0OwotICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3Jt
UGFnZUNsaWVudCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2Vk
KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0OworICAgIFdl
YkNvcmU6OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
KSBjb25zdCBmaW5hbDsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IGZpbmFsOworICAgIFBsYXRmb3JtUGFnZUNsaWVu
dCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGNvbnRlbnRzU2l6
ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3Qg
ZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25z
dCB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2Vi
Q29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwotICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihXZWJDb3JlOjpS
ZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0Owot
ICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6
RWxlbWVudCosIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbikgY29uc3Q7CisgICAgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNv
bnN0IGZpbmFsIHsgfQorICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2Vi
Q29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIGZpbmFsOworICAg
IGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29yZTo6UmVu
ZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5h
bDsKKyAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVt
ZW50JiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uKSBjb25zdCBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0
IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbik7CisgICAgdm9pZCBzZXRUb29s
VGlwKGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKTsKKyAgICB2b2lkIHByaW50
KFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRh
YmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJDb3JlOjpE
YXRhYmFzZURldGFpbHMpOworICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6
OkZyYW1lJiwgY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMpIGZp
bmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBz
cGFjZU5lZWRlZCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVk
ZWQpOworICAgIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVk
KSBmaW5hbDsKKyAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpIGZpbmFsOwog
Ci0gICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6
OkZpbGVDaG9vc2VyJik7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3Qg
VmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJik7CisgICAgdm9p
ZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciYpIGZp
bmFsOworICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+
JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXImKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBz
ZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJik7Ci0gICAgdmlydHVhbCB2b2lkIHNldEN1
cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TGFz
dFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpOworICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdl
YkNvcmU6OkN1cnNvciYpIGZpbmFsOworICAgIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3Vz
ZU1vdmVzKGJvb2wpIGZpbmFsOworICAgIHZvaWQgc2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1
cnNvcigpIGZpbmFsOwogCiAgICAgLy8gUGFzcyAwIGFzIHRoZSBHcmFwaGljc0xheWVyIHRvIGRl
dGF0Y2ggdGhlIHJvb3QgbGF5ZXIuCi0gICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFwaGlj
c0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwotICAgIHZv
aWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNz
TGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7Cisg
ICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7CiAgICAgLy8gU2V0cyBhIGZsYWcgdG8gc3Bl
Y2lmeSB0aGF0IHRoZSBuZXh0IHRpbWUgY29udGVudCBpcyBkcmF3biB0byB0aGUgd2luZG93LAog
ICAgIC8vIHRoZSBjaGFuZ2VzIGFwcGVhciBvbiB0aGUgc2NyZWVuIGluIHN5bmNocm9ueSB3aXRo
IHVwZGF0ZXMgdG8gR3JhcGhpY3NMYXllcnMuCi0gICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25l
U2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSB7IH0KKyAgICB2b2lkIHNldE5lZWRzT25lU2hv
dERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSBmaW5hbCB7IH0KICAgICAvLyBTZXRzIGEgZmxhZyB0
byBzcGVjaWZ5IHRoYXQgdGhlIHZpZXcgbmVlZHMgdG8gYmUgdXBkYXRlZCwgc28gd2UgbmVlZAog
ICAgIC8vIHRvIGRvIGFuIGVhZ2VyIGxheW91dCBiZWZvcmUgdGhlIGRyYXdpbmcuCi0gICAgdmly
dHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAgdm9pZCBzY2hl
ZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIGZpbmFsOwogCiAjaWYgUExBVEZPUk0oV0lOKSAm
JiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFdlYkNvcmU6OkdyYXBoaWNzRGV2aWNlQWRhcHRlciog
Z3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6R3Jh
cGhpY3NEZXZpY2VBZGFwdGVyKiBncmFwaGljc0RldmljZUFkYXB0ZXIoKSBjb25zdCBmaW5hbDsK
ICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JikgY29uc3QgeyB9CisgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IGZpbmFsIHsgfQogCiAjaWYgRU5BQkxFKFZJREVP
KQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwotICAgIHZpcnR1YWwgdm9p
ZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZW50Jik7Ci0gICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpOworICAgIGJvb2wgc3VwcG9ydHNWaWRl
b0Z1bGxzY3JlZW4oV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlKSBmaW5hbDsKKyAgICB2b2lkIGVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVt
ZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmKSBmaW5hbDsKKyAgICB2b2lkIGV4aXRWaWRl
b0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpIGZp
bmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FD
WV9OT1RJRklDQVRJT05TKQotICAgIHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50
KiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdCB7IHJldHVybiByZWludGVycHJldF9jYXN0
PFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudCo+KG1fbm90aWZpY2F0aW9uc0RlbGVnYXRlLmdl
dCgpKTsgfQorICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudCogbm90aWZpY2F0aW9uUHJl
c2VudGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpO
b3RpZmljYXRpb25DbGllbnQqPihtX25vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5nZXQoKSk7IH0KICNl
bmRpZgogCi0gICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1
cmFsKCk7Ci0gICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdy
aXRpbmdEaXJlY3Rpb24oKTsKLSAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25z
dDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVu
dShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxX
ZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQ
b3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0
aW9uSXNOYXR1cmFsKCkgZmluYWw7CisgICAgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93
c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgZmluYWw7CisgICAgYm9vbCBoYXNPcGVuZWRQb3B1cCgp
IGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVw
TWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6
UG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3Qg
V2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJkKTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Kik7Ci0gICAgdmlydHVh
bCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Kik7CisgICAg
Ym9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQm
LCBib29sIHdpdGhLZXlib2FyZCkgZmluYWw7CisgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JF
bGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKKyAgICB2b2lkIGV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAotICAgIHZvaWQg
d2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChib29sKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIHdo
ZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoYm9vbCkgZmluYWwgeyB9CiAKICAgICBXZWJWaWV3KiB3
ZWJWaWV3KCkgeyByZXR1cm4gbV93ZWJWaWV3OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgQVhTdGFy
dEZyYW1lTG9hZCgpOwotICAgIHZpcnR1YWwgdm9pZCBBWEZpbmlzaEZyYW1lTG9hZCgpOworICAg
IHZvaWQgQVhTdGFydEZyYW1lTG9hZCgpIGZpbmFsOworICAgIHZvaWQgQVhGaW5pc2hGcmFtZUxv
YWQoKSBmaW5hbDsKIAotICAgIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3
KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyopIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgc2hv
dWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyYp
IGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlE
ZWxlZ2F0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGlu
Zy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3Jv
bGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZTExNTUyOTEwNjQ3MDFiODhiN2Iz
MmFiY2QxZjJlNjU0MzNlMjg5ZS4uNDIxYzc0NTdjOTAzYjQ3ZTJlMWE3YjQ4ODk4ODFmNTdjMzBl
YWM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1v
dGVTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xs
aW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAgdm9pZCBSZW1v
dGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Nyb2xsKFNjcm9sbGlu
Z05vZGVJRCBub2RlSUQKICAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuc2Nyb2xsaW5n
VHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChub2RlSUQsIHNjcm9sbFBvc2l0aW9uLCByZXByZXNlbnRz
UHJvZ3JhbW1hdGljU2Nyb2xsKTsKIH0KIAotUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4g
UmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9k
ZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCitSZWY8U2Nyb2xsaW5nVHJl
ZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9s
bGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQogewogICAgIHN3
aXRjaCAobm9kZVR5cGUpIHsKICAgICBjYXNlIEZyYW1lU2Nyb2xsaW5nTm9kZToKQEAgLTEyNCwx
NCArMTI0LDE1IEBAIFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGlu
Z1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sCiAgICAgICAgIHJldHVybiBTY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7
CiAjZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIGJyZWFrOwogI2VuZGlmCiAgICAgY2FzZSBGaXhlZE5vZGU6CiAgICAg
ICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7
CiAgICAgY2FzZSBTdGlja3lOb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZVN0aWNr
eU5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICB9Ci0gICAgcmV0dXJuIG51bGxwdHI7
CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGaXhl
ZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKIH0KIAogdm9pZCBSZW1vdGVTY3JvbGxpbmdU
cmVlOjpjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVl
LmgKaW5kZXggZDY1YjJmNWVkNmRkZjU3ZWM0NDBkZjQ5MGQyZTExNjhjOGVjMDVjOS4uNzMxOGNj
YzgxNGNhNTcxNmRjNzBjMjRiNmM0NDE3OGQyNTZjZGE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKQEAg
LTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHk7CiAKLWNsYXNzIFJlbW90ZVNjcm9sbGluZ1RyZWUgOiBwdWJsaWMg
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZSB7CitjbGFzcyBSZW1vdGVTY3JvbGxpbmdUcmVlIGZpbmFs
IDogcHVibGljIFdlYkNvcmU6OlNjcm9sbGluZ1RyZWUgewogcHVibGljOgogICAgIHN0YXRpYyBS
ZWY8UmVtb3RlU2Nyb2xsaW5nVHJlZT4gY3JlYXRlKFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHkmKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVTY3JvbGxpbmdUcmVlKCk7CkBAIC02NSw3ICs2
NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZEVuZFNjcm9sbCgp
IG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlVHlw
ZSwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKKyAgICBSZWY8V2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFdlYkNvcmU6OlNjcm9s
bGluZ05vZGVUeXBlLCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOwogICAgIAog
ICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkmIG1fc2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKaW5kZXggODA1OWFkNTVh
YWUzMmY4ZTUzYTcwMTliNTI4N2VlOGIwOTQwYjkxNC4uYTc5ZDEwYTlkNTA3NzEwNDVjZTU4MzBl
YTU3Mzc0Yzg0MTg1NjI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcApAQCAtMzY4
LDIyICszNjgsMjIgQEAgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RSZWYgV0tCdW5kbGVQYWdlR2V0
QmFja0ZvcndhcmRMaXN0KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmUKIAogdm9pZCBXS0J1bmRsZVBh
Z2VJbnN0YWxsUGFnZU92ZXJsYXkoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLQnVuZGxlUGFn
ZU92ZXJsYXlSZWYgcGFnZU92ZXJsYXlSZWYpCiB7Ci0gICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWlu
RnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KHRvSW1w
bChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpG
YWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgpLT5w
YWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkoKnRvSW1wbChwYWdlT3Zl
cmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6
RG9Ob3RGYWRlKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VVbmluc3RhbGxQYWdlT3ZlcmxheShX
S0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQYWdlT3ZlcmxheVJlZiBwYWdlT3Zlcmxh
eVJlZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNv
bnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSh0b0ltcGwocGFnZU92ZXJsYXlSZWYpLT5j
b3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7
CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVy
KCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKnRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVy
bGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIH0KIAog
dm9pZCBXS0J1bmRsZVBhZ2VJbnN0YWxsUGFnZU92ZXJsYXlXaXRoQW5pbWF0aW9uKFdLQnVuZGxl
UGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRsZVBhZ2VPdmVybGF5UmVmIHBhZ2VPdmVybGF5UmVmKQog
ewotICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxl
cigpLmluc3RhbGxQYWdlT3ZlcmxheSh0b0ltcGwocGFnZU92ZXJsYXlSZWYpLT5jb3JlT3Zlcmxh
eSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOworICAgIHRvSW1wbChw
YWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdl
T3ZlcmxheSgqdG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6
UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VVbmlu
c3RhbGxQYWdlT3ZlcmxheVdpdGhBbmltYXRpb24oV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdL
QnVuZGxlUGFnZU92ZXJsYXlSZWYgcGFnZU92ZXJsYXlSZWYpCiB7Ci0gICAgdG9JbXBsKHBhZ2VS
ZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92
ZXJsYXkodG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6UGFn
ZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFt
ZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqdG9JbXBs
KHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZh
ZGVNb2RlOjpGYWRlKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VTZXRUb3BPdmVyaGFuZ0ltYWdl
KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0ltYWdlUmVmIGltYWdlUmVmKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1
Z2luLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVk
UERGUGx1Z2luLm1tCmluZGV4IDg1MDlhZTY1MDI0ZDRlZTU5MmVkMTI1YTEyMTIxNDBmMDdmY2Uz
MWUuLjQxZWIwMzk0NmZhOWE0YWFmZDBmOGYxNjA5YmMxM2YzNzU3Zjk1Y2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdp
bi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0
ZWRQREZQbHVnaW4ubW0KQEAgLTg2MCw3ICs4NjAsNyBAQCBKU1ZhbHVlUmVmIFBERlBsdWdpbjo6
anNQREZEb2NQcmludChKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNP
YgogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGN0
eCk7CiAKLSAgICBwYWdlLT5jaHJvbWUoKS5wcmludChjb3JlRnJhbWUpOworICAgIHBhZ2UtPmNo
cm9tZSgpLnByaW50KCpjb3JlRnJhbWUpOwogCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGN0eCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luVmlldy5jcHAKaW5kZXggNTYyYTlhMmUxNTdjNDNjNWRlNzVjM2Y3MjU2MzEyZGZlNGUxNTdi
Yy4uZDlhNDI4ODYxYmVjNTY0NTNhN2YwY2UxM2QzYmY5ODkxZjNkOTkyOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtMTEyOCw3
ICsxMTI4LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojpmb2N1c1BsdWdpbkVsZW1lbnQoKQogICAgIEFT
U0VSVChmcmFtZSgpKTsKICAgICAKICAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1lKCktPnBhZ2Uo
KSkKLSAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQobV9w
bHVnaW5FbGVtZW50LmdldCgpLCBmcmFtZSgpKTsKKyAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQobV9wbHVnaW5FbGVtZW50LmdldCgpLCAqZnJhbWUoKSk7
CiAgICAgZWxzZQogICAgICAgICBmcmFtZSgpLT5kb2N1bWVudCgpLT5zZXRGb2N1c2VkRWxlbWVu
dChtX3BsdWdpbkVsZW1lbnQuZ2V0KCkpOwogfQpAQCAtMTUwOCw3ICsxNTA4LDcgQEAgdm9pZCBQ
bHVnaW5WaWV3OjpzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYgc3RhdHVzYmFyVGV4dCkK
ICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhZ2UtPmNocm9tZSgpLnNl
dFN0YXR1c2JhclRleHQoZnJhbWUoKSwgc3RhdHVzYmFyVGV4dCk7CisgICAgcGFnZS0+Y2hyb21l
KCkuc2V0U3RhdHVzYmFyVGV4dCgqZnJhbWUoKSwgc3RhdHVzYmFyVGV4dCk7CiB9CiAKIGJvb2wg
UGx1Z2luVmlldzo6aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKaW5kZXggNDk4MzRjM2EzMGViZjkyMTVlOWY1NGU5MWRjYjI0ZWExM2Y5NGNl
ZC4uYThkZmRmYzk1MzBlZTA2ZjMxYzhmNWIxNGZkNjcyZmZlMjRiMjNjYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcApAQCAtMTAzLDcgKzEwMyw2IEBAIHN0YXRpYyBkb3VibGUgYXJlYShXZWJG
cmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4oc2l6ZS5oZWlnaHQo
KSkgKiBzaXplLndpZHRoKCk7CiB9CiAKLQogc3RhdGljIFdlYkZyYW1lKiBmaW5kTGFyZ2VzdEZy
YW1lSW5GcmFtZVNldChXZWJQYWdlJiBwYWdlKQogewogICAgIC8vIEFwcHJveGltYXRlIHdoYXQg
YSB1c2VyIGNvdWxkIGNvbnNpZGVyIGEgZGVmYXVsdCB0YXJnZXQgZnJhbWUgZm9yIGFwcGxpY2F0
aW9uIG1lbnUgb3BlcmF0aW9ucy4KQEAgLTE3OSwyMCArMTc4LDIyIEBAIHZvaWQgV2ViQ2hyb21l
Q2xpZW50Ojp1bmZvY3VzKCkKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmVsZW1lbnREaWRGb2N1cyhjb25zdCBXZWJDb3JlOjpOb2RlKiBub2RlKQorCit2
b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEZvY3VzKFdlYkNvcmU6OkVsZW1lbnQmIGVs
ZW1lbnQpCiB7Ci0gICAgbV9wYWdlLmVsZW1lbnREaWRGb2N1cyhjb25zdF9jYXN0PFdlYkNvcmU6
Ok5vZGUqPihub2RlKSk7CisgICAgbV9wYWdlLmVsZW1lbnREaWRGb2N1cygmZWxlbWVudCk7CiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkQmx1cihjb25zdCBXZWJDb3JlOjpO
b2RlKiBub2RlKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRCbHVyKFdlYkNvcmU6
OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9wYWdlLmVsZW1lbnREaWRCbHVyKGNvbnN0X2Nh
c3Q8V2ViQ29yZTo6Tm9kZSo+KG5vZGUpKTsKKyAgICBtX3BhZ2UuZWxlbWVudERpZEJsdXIoJmVs
ZW1lbnQpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6bWFrZUZpcnN0UmVzcG9uZGVyKCkK
IHsKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpNYWtlRmlyc3RSZXNw
b25kZXIoKSk7Ci19ICAgIAorfQorCiAjZW5kaWYgICAgCiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50
OjpjYW5UYWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24pCkBAIC0yMjcsMTYgKzIyOCwxNiBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSogZnJhbWUpCiAgICAg
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGb2N1c2VkRnJhbWVDaGFuZ2VkKHdlYkZyYW1lID8gd2Vi
RnJhbWUtPmZyYW1lSUQoKSA6IDApLCBtX3BhZ2UucGFnZUlEKCkpOwogfQogCi1QYWdlKiBXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiB3aW5kb3dGZWF0dXJlcywgY29u
c3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbikKK1BhZ2UqIFdlYkNocm9tZUNs
aWVudDo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYg
cmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIHdpbmRvd0ZlYXR1cmVzLCBjb25zdCBOYXZp
Z2F0aW9uQWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQogewogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKLSAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPndl
YmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpKQotICAgICAgICBmcmFtZS0+ZG9jdW1lbnQo
KS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOworICAgIGlmIChmcmFtZS5kb2N1bWVudCgpICYm
IGZyYW1lLmRvY3VtZW50KCktPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpKQorICAg
ICAgICBmcmFtZS5kb2N1bWVudCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7CiAjZW5kaWYK
IAogICAgIGF1dG8mIHdlYlByb2Nlc3MgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKTsKIAotICAg
IFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7Cisg
ICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwog
CiAgICAgTmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRhdGE7CiAgICAgbmF2
aWdhdGlvbkFjdGlvbkRhdGEubmF2aWdhdGlvblR5cGUgPSBuYXZpZ2F0aW9uQWN0aW9uLnR5cGUo
KTsKQEAgLTI1MCw3ICsyNTEsNyBAQCBQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRv
dyhGcmFtZSogZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlcwogCiAgICAgdWlu
dDY0X3QgbmV3UGFnZUlEID0gMDsKICAgICBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzIHBhcmFt
ZXRlcnM7Ci0gICAgaWYgKCF3ZWJQcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2Uod2ViRnJhbWUtPmZy
YW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoZnJhbWUpLCByZXF1ZXN0LnJl
c291cmNlUmVxdWVzdCgpLCB3aW5kb3dGZWF0dXJlcywgbmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpSZXBseShuZXdQYWdlSUQsIHBh
cmFtZXRlcnMpLCBtX3BhZ2UucGFnZUlEKCkpKQorICAgIGlmICghd2ViUHJvY2Vzcy5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVh
dGVOZXdQYWdlKHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZy
YW1lKCZmcmFtZSksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHdpbmRvd0ZlYXR1cmVzLCBu
YXZpZ2F0aW9uQWN0aW9uRGF0YSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1Bh
Z2U6OlJlcGx5KG5ld1BhZ2VJRCwgcGFyYW1ldGVycyksIG1fcGFnZS5wYWdlSUQoKSkpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKCFuZXdQYWdlSUQpCkBAIC0zNjEsOSArMzYy
LDkgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bCgpCiAgICAgcmV0dXJuIG1fcGFnZS5jYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKTsK
IH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKiBmcmFtZSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50
OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFt
ZSYgZnJhbWUpCiB7Ci0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3Jl
RnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNv
cmVGcmFtZShmcmFtZSk7CiAKICAgICBib29sIHNob3VsZENsb3NlID0gZmFsc2U7CiAKQEAgLTQw
MiwxMiArNDAzLDEyIEBAIHN0YXRpYyBib29sIHNob3VsZFN1cHByZXNzSmF2YVNjcmlwdERpYWxv
Z3MoRnJhbWUmIGZyYW1lKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgYWxl
cnRUZXh0KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYg
ZnJhbWUsIGNvbnN0IFN0cmluZyYgYWxlcnRUZXh0KQogewotICAgIGlmIChzaG91bGRTdXBwcmVz
c0phdmFTY3JpcHREaWFsb2dzKCpmcmFtZSkpCisgICAgaWYgKHNob3VsZFN1cHByZXNzSmF2YVNj
cmlwdERpYWxvZ3MoZnJhbWUpKQogICAgICAgICByZXR1cm47CiAKLSAgICBXZWJGcmFtZSogd2Vi
RnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAgIFdlYkZyYW1lKiB3
ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKICAgICBBU1NFUlQod2Vi
RnJhbWUpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgpAQCAtNDE1LDE1ICs0
MTYsMTUgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSog
ZnJhbWUsIGNvbnN0IFN0cmluZyYgYWxlcnRUZXh0KQogCiAgICAgSGFuZ0RldGVjdGlvbkRpc2Fi
bGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxlcjsKIAotICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJ1bkphdmFTY3JpcHRBbGVydCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdp
bkRhdGE6OmZyb21GcmFtZShmcmFtZSksIGFsZXJ0VGV4dCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6UmVwbHkoKSwgbV9wYWdlLnBhZ2VJRCgpLCBTZWNvbmRz
OjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NX
aWxsU3VzcGVuZCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlw
dEFsZXJ0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1l
KCZmcmFtZSksIGFsZXJ0VGV4dCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3Jp
cHRBbGVydDo6UmVwbHkoKSwgbV9wYWdlLnBhZ2VJRCgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJ
UEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCk7CiB9
CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJh
bWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZh
U2NyaXB0Q29uZmlybShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKLSAg
ICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncygqZnJhbWUpKQorICAgIGlmIChz
aG91bGRTdXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKGZyYW1lKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUo
KmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFt
ZShmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogICAgIC8vIE5vdGlmeSB0aGUgYnVu
ZGxlIGNsaWVudC4KQEAgLTQzMiwxOCArNDMzLDE4IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojpy
dW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
ICAgICBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIgaGFuZ0RldGVjdGlvbkRpc2FibGVyOwogCiAgICAg
Ym9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJ1bkphdmFTY3JpcHRDb25maXJtKHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2lu
RGF0YTo6ZnJvbUZyYW1lKGZyYW1lKSwgbWVzc2FnZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJ1bkphdmFTY3JpcHRDb25maXJtOjpSZXBseShyZXN1bHQpLCBtX3BhZ2UucGFnZUlEKCksIFNl
Y29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJv
Y2Vzc1dpbGxTdXNwZW5kKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1
bkphdmFTY3JpcHRDb25maXJtKHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0
YTo6ZnJvbUZyYW1lKCZmcmFtZSksIG1lc3NhZ2UpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpS
dW5KYXZhU2NyaXB0Q29uZmlybTo6UmVwbHkocmVzdWx0KSwgbV9wYWdlLnBhZ2VJRCgpLCBTZWNv
bmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nl
c3NXaWxsU3VzcGVuZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1l
KiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1
ZSwgU3RyaW5nJiByZXN1bHQpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFBy
b21wdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBk
ZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQogewotICAgIGlmIChzaG91bGRTdXBwcmVzc0ph
dmFTY3JpcHREaWFsb2dzKCpmcmFtZSkpCisgICAgaWYgKHNob3VsZFN1cHByZXNzSmF2YVNjcmlw
dERpYWxvZ3MoZnJhbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBXZWJGcmFtZSog
d2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAgIFdlYkZyYW1l
KiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKICAgICBBU1NFUlQo
d2ViRnJhbWUpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgpAQCAtNDUxLDcg
KzQ1Miw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1l
KiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjCiAKICAgICBIYW5nRGV0ZWN0aW9uRGlz
YWJsZXIgaGFuZ0RldGVjdGlvbkRpc2FibGVyOwogCi0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3Vy
aXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGZyYW1lKSwgbWVzc2FnZSwgZGVmYXVsdFZhbHVlKSwg
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6UmVwbHkocmVzdWx0
KSwgbV9wYWdlLnBhZ2VJRCgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0
aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCkpCisgICAgaWYgKCFXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0KHdlYkZyYW1lLT5mcmFtZUlE
KCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIG1lc3NhZ2UsIGRlZmF1
bHRWYWx1ZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OlJl
cGx5KHJlc3VsdCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpT
ZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gIXJlc3VsdC5pc051bGwoKTsKQEAgLTU1Niw3
ICs1NTcsNyBAQCBQbGF0Zm9ybVBhZ2VDbGllbnQgV2ViQ2hyb21lQ2xpZW50OjpwbGF0Zm9ybVBh
Z2VDbGllbnQoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVu
dDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUp
IGNvbnN0Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYg
ZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BhZ2UuY29y
ZVBhZ2UoKS0+c2V0dGluZ3MoKS5mcmFtZUZsYXR0ZW5pbmdFbmFibGVkKCkpIHsKICAgICAgICAg
V2ViRnJhbWUqIGxhcmdlc3RGcmFtZSA9IGZpbmRMYXJnZXN0RnJhbWVJbkZyYW1lU2V0KG1fcGFn
ZSk7CkBAIC01NjYsMTQgKzU2NywxNCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNT
aXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbgogICAgICAg
ICB9CiAgICAgfQogCi0gICAgaWYgKCZmcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKSAhPSBmcmFt
ZSkKKyAgICBpZiAoJmZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCkgIT0gJmZyYW1lKQogICAgICAg
ICByZXR1cm47CiAKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRD
aGFuZ2VDb250ZW50U2l6ZShzaXplKSk7CiAKICAgICBtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+bWFp
bkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKHNpemUpOwogCi0gICAgRnJhbWVWaWV3KiBmcmFtZVZp
ZXcgPSBmcmFtZS0+dmlldygpOworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZnJhbWUudmll
dygpOwogICAgIGlmIChmcmFtZVZpZXcgJiYgIWZyYW1lVmlldy0+ZGVsZWdhdGVzU2Nyb2xsaW5n
KCkpICB7CiAgICAgICAgIGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhciA9IGZyYW1lVmlldy0+
aG9yaXpvbnRhbFNjcm9sbGJhcigpOwogICAgICAgICBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFy
ID0gZnJhbWVWaWV3LT52ZXJ0aWNhbFNjcm9sbGJhcigpOwpAQCAtNjExLDIxICs2MTIsMjEgQEAg
Ym9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0
dG9uKFJlbmRlckVtYmVkZGVkT2JqZWMKICAgICByZXR1cm4gZmFsc2U7CiB9CiAgICAgCi12b2lk
IFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVsZW1lbnQq
IGVsZW1lbnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNv
biBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCYgZWxlbWVudCwgUmVuZGVy
RW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxh
YmlsaXR5UmVhc29uKSBjb25zdAogewogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQot
ICAgIEFTU0VSVChlbGVtZW50LT5oYXNUYWdOYW1lKG9iamVjdFRhZykgfHwgZWxlbWVudC0+aGFz
VGFnTmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShhcHBsZXRUYWcpKTsKKyAg
ICBBU1NFUlQoZWxlbWVudC5oYXNUYWdOYW1lKG9iamVjdFRhZykgfHwgZWxlbWVudC5oYXNUYWdO
YW1lKGVtYmVkVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoYXBwbGV0VGFnKSk7CiAgICAgQVNT
RVJUKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uID09IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQ
bHVnaW5NaXNzaW5nIHx8IHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uID09IFJlbmRlckVtYmVk
ZGVkT2JqZWN0OjpJbnNlY3VyZVBsdWdpblZlcnNpb24gfHwgcGx1Z2luVW5hdmFpbGFiaWxpdHlS
ZWFzb24pOwogCi0gICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z2luRWxlbWVudCA9IHN0
YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqPihlbGVtZW50KTsKKyAgICBhdXRvJiBw
bHVnaW5FbGVtZW50ID0gZG93bmNhc3Q8SFRNTFBsdWdJbkltYWdlRWxlbWVudD4oZWxlbWVudCk7
CiAKLSAgICBTdHJpbmcgZnJhbWVVUkxTdHJpbmcgPSBwbHVnaW5FbGVtZW50LT5kb2N1bWVudCgp
LmZyYW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlVVJMKCkuc3RyaW5n
KCk7CisgICAgU3RyaW5nIGZyYW1lVVJMU3RyaW5nID0gcGx1Z2luRWxlbWVudC5kb2N1bWVudCgp
LmZyYW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlVVJMKCkuc3RyaW5n
KCk7CiAgICAgU3RyaW5nIHBhZ2VVUkxTdHJpbmcgPSBtX3BhZ2UubWFpbkZyYW1lKCktPmxvYWRl
cigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlVVJMKCkuc3RyaW5nKCk7Ci0gICAgU3RyaW5n
IHBsdWdpblVSTFN0cmluZyA9IHBsdWdpbkVsZW1lbnQtPmRvY3VtZW50KCkuY29tcGxldGVVUkwo
cGx1Z2luRWxlbWVudC0+dXJsKCkpLnN0cmluZygpOwotICAgIFVSTCBwbHVnaW5zcGFnZUF0dHJp
YnV0ZVVSTCA9IGVsZW1lbnQtPmRvY3VtZW50KCkuY29tcGxldGVVUkwoc3RyaXBMZWFkaW5nQW5k
VHJhaWxpbmdIVE1MU3BhY2VzKHBsdWdpbkVsZW1lbnQtPmdldEF0dHJpYnV0ZShwbHVnaW5zcGFn
ZUF0dHIpKSk7CisgICAgU3RyaW5nIHBsdWdpblVSTFN0cmluZyA9IHBsdWdpbkVsZW1lbnQuZG9j
dW1lbnQoKS5jb21wbGV0ZVVSTChwbHVnaW5FbGVtZW50LnVybCgpKS5zdHJpbmcoKTsKKyAgICBV
UkwgcGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkwgPSBwbHVnaW5FbGVtZW50LmRvY3VtZW50KCkuY29t
cGxldGVVUkwoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHBsdWdpbkVsZW1lbnQu
YXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihwbHVnaW5zcGFnZUF0dHIpKSk7CiAgICAg
aWYgKCFwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTC5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCkpCiAg
ICAgICAgIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMID0gVVJMKCk7Ci0gICAgbV9wYWdlLnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6VW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKHBs
dWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBwbHVnaW5FbGVtZW50LT5zZXJ2aWNlVHlwZSgpLCBw
bHVnaW5VUkxTdHJpbmcsIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMLnN0cmluZygpLCBmcmFtZVVS
TFN0cmluZywgcGFnZVVSTFN0cmluZykpOworICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChwbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbiwgcGx1Z2luRWxlbWVudC5zZXJ2aWNlVHlwZSgpLCBwbHVnaW5VUkxTdHJpbmcs
IHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMLnN0cmluZygpLCBmcmFtZVVSTFN0cmluZywgcGFnZVVS
TFN0cmluZykpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZWxlbWVudCk7CiAgICAgVU5VU0VE
X1BBUkFNKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKTsKQEAgLTY2MCw5ICs2NjEsOSBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmIHRvb2xUaXAsIFRl
eHREaXJlY3Rpb24pCiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6U2V0
VG9vbFRpcChtX2NhY2hlZFRvb2xUaXApKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBy
aW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSYgZnJh
bWUpCiB7Ci0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUo
KmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFt
ZShmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogI2lmIFBMQVRGT1JNKEdUSykgJiYg
SEFWRShHVEtfVU5JWF9QUklOVElORykKQEAgLTY4OCwxMiArNjg5LDEyIEBAIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpwcmludChGcmFtZSogZnJhbWUpCiAgICAgbV9wYWdlLnNlbmRTeW5jKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlByaW50RnJhbWUod2ViRnJhbWUtPmZyYW1lSUQoKSksIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlByaW50RnJhbWU6OlJlcGx5KCksIFNlY29uZHM6OmluZmluaXR5
KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5k
KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFt
ZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMgZGV0
YWlscykKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUm
IGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzIGRldGFp
bHMpCiB7Ci0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUo
KmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFt
ZShmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKICAgICAKLSAgICBhdXRvJiBvcmlnaW4g
PSBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICBhdXRvJiBvcmlnaW4g
PSBmcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpOwogICAgIGF1dG8gb3JpZ2luRGF0
YSA9IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKG9yaWdpbik7CiAgICAg
YXV0byYgdHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6c2luZ2xldG9uKCk7CiAgICAgYXV0byBj
dXJyZW50UXVvdGEgPSB0cmFja2VyLnF1b3RhKG9yaWdpbkRhdGEpOwpAQCAtNzE2LDkgKzcxNyw5
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qp
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNo
ZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgaW50
NjRfdCB0b3RhbEJ5dGVzTmVlZGVkKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgaW50NjRfdCB0
b3RhbEJ5dGVzTmVlZGVkKQogewotICAgIFJlZlB0cjxBUEk6OlNlY3VyaXR5T3JpZ2luPiBzZWN1
cml0eU9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2lu
LT50b1N0cmluZygpKTsKKyAgICBSZWZQdHI8QVBJOjpTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlP
cmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG9yaWdpbi50b1N0
cmluZygpKTsKICAgICBpZiAobV9wYWdlLmluamVjdGVkQnVuZGxlVUlDbGllbnQoKS5kaWRSZWFj
aEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgmbV9wYWdlLCBzZWN1cml0eU9yaWdpbi5nZXQo
KSwgdG90YWxCeXRlc05lZWRlZCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtNzI5LDE3ICs3MzAs
MTkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwKIAogICAgIHVpbnQ2NF90IG5ld1F1b3RhID0g
MDsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kU3luYygKLSAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21T
ZWN1cml0eU9yaWdpbigqb3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSwgY3VycmVudFF1b3Rh
LCB0b3RhbEJ5dGVzTmVlZGVkKSwKKyAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVh
Y2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGE6OmZyb21TZWN1cml0eU9yaWdpbihvcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpLCBjdXJy
ZW50UXVvdGEsIHRvdGFsQnl0ZXNOZWVkZWQpLAogICAgICAgICBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhOjpSZXBseShuZXdRdW90YSks
IG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlv
bjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpOwogCi0gICAgY2FjaGVTdG9yYWdl
LnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2luKG9yaWdpbiwgbmV3UXVvdGEpOworICAgIGNhY2hl
U3RvcmFnZS5zdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbigmb3JpZ2luLCBuZXdRdW90YSk7CiB9
CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50
Ojphbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
KwogI2VuZGlmCiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRSZXBsYWNlV2l0aEdlbmVy
YXRlZEZpbGVGb3JVcGxvYWQoY29uc3QgU3RyaW5nJiBwYXRoLCBTdHJpbmcmIGdlbmVyYXRlZEZp
bGVuYW1lKQpAQCAtNzU0LDEwICs3NTcsMTIgQEAgU3RyaW5nIFdlYkNocm9tZUNsaWVudDo6Z2Vu
ZXJhdGVSZXBsYWNlbWVudEZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKQogfQogCiAjaWYgRU5BQkxF
KElOUFVUX1RZUEVfQ09MT1IpCi1zdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCwg
Y29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKKworc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nl
cj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50
JiBjbGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCiB7Ci0gICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8V2ViQ29sb3JDaG9vc2VyPigmbV9wYWdlLCBjbGllbnQsIGluaXRpYWxDb2xv
cik7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2ViQ29sb3JDaG9vc2VyPigmbV9wYWdl
LCAmY2xpZW50LCBpbml0aWFsQ29sb3IpOwogfQorCiAjZW5kaWYKIAogdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSYgZnJhbWUsIEZpbGVDaG9vc2VyJiBmaWxlQ2hvb3Nl
cikKQEAgLTgzMiwxNCArODM3LDE0IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpoYXNPcGVuZWRQ
b3B1cCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1SZWZQdHI8V2ViQ29yZTo6UG9w
dXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1l
bnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNo
cm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYgY2xp
ZW50KSBjb25zdAogewotICAgIHJldHVybiBXZWJQb3B1cE1lbnU6OmNyZWF0ZSgmbV9wYWdlLCBj
bGllbnQpOworICAgIHJldHVybiBXZWJQb3B1cE1lbnU6OmNyZWF0ZSgmbV9wYWdlLCAmY2xpZW50
KTsKIH0KIAotUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50
OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQp
IGNvbnN0CitSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gV2ViU2VhcmNoUG9wdXBNZW51OjpjcmVhdGUoJm1fcGFnZSwg
Y2xpZW50KTsKKyAgICByZXR1cm4gV2ViU2VhcmNoUG9wdXBNZW51OjpjcmVhdGUoJm1fcGFnZSwg
JmNsaWVudCk7CiB9CiAKIEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBXZWJDaHJvbWVDbGllbnQ6Omdy
YXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3QKQEAgLTg1OCw3ICs4NjMsNyBAQCBSZWZQdHI8V2Vi
Q29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURpc3Bs
YXlSZWZyZXNoTW9uaQogCiAjZW5kaWYKIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJv
b3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciogbGF5ZXIpCit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVy
KiBsYXllcikKIHsKICAgICBpZiAobGF5ZXIpCiAgICAgICAgIG1fcGFnZS5lbnRlckFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyKTsKQEAgLTg2NiwxMCArODcxLDEwIEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5
ZXIqIGxheWVyKQogICAgICAgICBtX3BhZ2UuZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2Rl
KCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNz
TGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSYgZnJh
bWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAgICAgaWYgKGF1dG8gZHJhd2lu
Z0FyZWEgPSBtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKLSAgICAgICAgZHJhd2luZ0FyZWEtPmF0dGFj
aFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihmcmFtZSwgZ3JhcGhpY3NMYXllcik7CisgICAgICAg
IGRyYXdpbmdBcmVhLT5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoJmZyYW1lLCBncmFw
aGljc0xheWVyKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldE5lZWRzT25lU2hvdERy
YXdpbmdTeW5jaHJvbml6YXRpb24oKQpAQCAtODk4LDkgKzkwMyw5IEBAIGJvb2wgV2ViQ2hyb21l
Q2xpZW50OjpsYXllclRyZWVTdGF0ZUlzRnJvemVuKCkgY29uc3QKIAogI2lmIEVOQUJMRShBU1lO
Q19TQ1JPTExJTkcpCiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSogcGFnZSkgY29uc3QKK1Jl
ZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTY3JvbGxp
bmdDb29yZGluYXRvcihQYWdlJiBwYWdlKSBjb25zdAogewotICAgIEFTU0VSVChtX3BhZ2UuY29y
ZVBhZ2UoKSA9PSBwYWdlKTsKKyAgICBBU1NFUlRfVU5VU0VEKHBhZ2UsIG1fcGFnZS5jb3JlUGFn
ZSgpID09ICZwYWdlKTsKICAgICBpZiAobV9wYWdlLmRyYXdpbmdBcmVhKCktPnR5cGUoKSAhPSBE
cmF3aW5nQXJlYVR5cGVSZW1vdGVMYXllclRyZWUpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIHJldHVybiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6Y3JlYXRlKCZtX3BhZ2UpOwpA
QCAtOTQ5LDE5ICs5NTQsMTkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxz
Y3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6OkhUTUxWaWQKIAogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNj
cmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJk
KQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29u
c3QgV2ViQ29yZTo6RWxlbWVudCYsIGJvb2wgd2l0aEtleWJvYXJkKQogewogICAgIHJldHVybiBt
X3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+c3VwcG9ydHNGdWxsU2NyZWVuKHdpdGhLZXlib2Fy
ZCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50KQogewotICAgIG1f
cGFnZS5mdWxsU2NyZWVuTWFuYWdlcigpLT5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1l
bnQpOworICAgIG1fcGFnZS5mdWxsU2NyZWVuTWFuYWdlcigpLT5lbnRlckZ1bGxTY3JlZW5Gb3JF
bGVtZW50KCZlbGVtZW50KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2Ny
ZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50KQordm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50
KQogewotICAgIG1fcGFnZS5mdWxsU2NyZWVuTWFuYWdlcigpLT5leGl0RnVsbFNjcmVlbkZvckVs
ZW1lbnQoZWxlbWVudCk7CisgICAgbV9wYWdlLmZ1bGxTY3JlZW5NYW5hZ2VyKCktPmV4aXRGdWxs
U2NyZWVuRm9yRWxlbWVudCgmZWxlbWVudCk7CiB9CiAKICNlbmRpZgpAQCAtMTA0OSwyOSArMTA1
NCwyOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkK
ICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpEaXNhYmxlU3VkZGVu
VGVybWluYXRpb24oKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRIZWFkZXJM
YXllcihHcmFwaGljc0xheWVyKiBoZWFkZXJQYXJlbnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
ZGlkQWRkSGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXllciYgaGVhZGVyUGFyZW50KQogewogI2lmIEVO
QUJMRShSVUJCRVJfQkFORElORykKICAgICBpZiAoUGFnZUJhbm5lciogYmFubmVyID0gbV9wYWdl
LmhlYWRlclBhZ2VCYW5uZXIoKSkKLSAgICAgICAgYmFubmVyLT5kaWRBZGRQYXJlbnRMYXllciho
ZWFkZXJQYXJlbnQpOworICAgICAgICBiYW5uZXItPmRpZEFkZFBhcmVudExheWVyKCZoZWFkZXJQ
YXJlbnQpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oaGVhZGVyUGFyZW50KTsKICNlbmRpZgog
fQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkQWRkRm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXll
ciogZm9vdGVyUGFyZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEZvb3RlckxheWVy
KEdyYXBoaWNzTGF5ZXImIGZvb3RlclBhcmVudCkKIHsKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJ
TkcpCiAgICAgaWYgKFBhZ2VCYW5uZXIqIGJhbm5lciA9IG1fcGFnZS5mb290ZXJQYWdlQmFubmVy
KCkpCi0gICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50TGF5ZXIoZm9vdGVyUGFyZW50KTsKKyAg
ICAgICAgYmFubmVyLT5kaWRBZGRQYXJlbnRMYXllcigmZm9vdGVyUGFyZW50KTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKGZvb3RlclBhcmVudCk7CiAjZW5kaWYKIH0KIAotYm9vbCBXZWJDaHJv
bWVDbGllbnQ6OnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZp
ZXcqIGZyYW1lVmlldykgY29uc3QKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVc2VUaWxl
ZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3JiBmcmFtZVZpZXcpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5zaG91bGRVc2VUaWxlZEJhY2tpbmdG
b3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKKyAgICByZXR1cm4gbV9wYWdlLmRyYXdpbmdBcmVhKCkt
PnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldygmZnJhbWVWaWV3KTsKIH0KIAogdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSwgdWludDY0X3Qgc291cmNlRWxlbWVudElE
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNWM5ZDc3M2E3MmMwNjA4YzAyMDY4YWMxZDlkZGY0
NWQ0YTBiZDljNS4uMGEwODAwNGZmZWZlZWNiYjQxMzQ0MDM2ZjAyZmRhOTQxNzRkYWNlOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6CiAgICAgLy8gRnJh
bWUgd2FudHMgdG8gY3JlYXRlIHRoZSBuZXcgUGFnZS4gIEFsc28sIHRoZSBuZXdseSBjcmVhdGVk
IHdpbmRvdwogICAgIC8vIHNob3VsZCBub3QgYmUgc2hvd24gdG8gdGhlIHVzZXIgdW50aWwgdGhl
IENocm9tZUNsaWVudCBvZiB0aGUgbmV3bHkKICAgICAvLyBjcmVhdGVkIFBhZ2UgaGFzIGl0cyBz
aG93IG1ldGhvZCBjYWxsZWQuCi0gICAgV2ViQ29yZTo6UGFnZSogY3JlYXRlV2luZG93KFdlYkNv
cmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNv
cmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpIGZp
bmFsOworICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSYsIGNv
bnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0
dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbDsKICAgICB2b2lk
IHNob3coKSBmaW5hbDsKICAgICAKICAgICBib29sIGNhblJ1bk1vZGFsKCkgZmluYWw7CkBAIC04
NywxMyArODcsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlND
OjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmlu
ZyYgc291cmNlSUQpIGZpbmFsOwogICAgIAogICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsKCkgZmluYWw7Ci0gICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwo
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSopIGZpbmFsOworICAgIGJvb2wg
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgV2ViQ29y
ZTo6RnJhbWUmKSBmaW5hbDsKICAgICAKICAgICB2b2lkIGNsb3NlV2luZG93U29vbigpIGZpbmFs
OwogICAgIAotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lKiwgY29u
c3QgU3RyaW5nJikgZmluYWw7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3Jl
OjpGcmFtZSosIGNvbnN0IFN0cmluZyYpIGZpbmFsOwotICAgIGJvb2wgcnVuSmF2YVNjcmlwdFBy
b21wdChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KSBmaW5hbDsKKyAgICB2b2lkIHJ1bkphdmFT
Y3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIGJv
b2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmKSBm
aW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUmLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJl
c3VsdCkgZmluYWw7CiAgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpIGZp
bmFsOwogCiAgICAgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5h
bDsKQEAgLTExNywyMyArMTE3LDIzIEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFBsYXRmb3Jt
UGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIGNv
bnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JikgY29uc3QgZmluYWw7CisgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6OkZy
YW1lJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc2Ny
b2xsUmVjdEludG9WaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBmaW5hbDsgLy8g
Q3VycmVudGx5IG9ubHkgTWFjIGhhcyBhIG5vbiBlbXB0eSBpbXBsZW1lbnRhdGlvbi4KIAogICAg
IGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29yZTo6UmVu
ZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5h
bDsKLSAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVt
ZW50KiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xp
Y2tlZChXZWJDb3JlOjpFbGVtZW50JiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBs
dWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgc2Nyb2xs
YmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmll
ckZsYWdzKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcmLCBXZWJD
b3JlOjpUZXh0RGlyZWN0aW9uKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIHByaW50KFdlYkNvcmU6
OkZyYW1lKikgZmluYWw7CisgICAgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwog
Ci0gICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBT
dHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKKyAg
ICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmlu
ZyYgZGF0YWJhc2VOYW1lLCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMpIGZpbmFsOwogCiAgICAg
dm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpIGZpbmFsOwot
ICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbiosIGludDY0X3Qgc3BhY2VOZWVkZWQpIGZpbmFsOworICAgIHZvaWQgcmVhY2hl
ZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIGlu
dDY0X3Qgc3BhY2VOZWVkZWQpIGZpbmFsOwogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JU
KQogICAgIHZvaWQgYW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKSBmaW5hbDsKQEAgLTE0Myw3ICsx
NDMsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBnZW5lcmF0ZVJlcGxhY2VtZW50RmlsZShjb25z
dCBTdHJpbmcmIHBhdGgpIGZpbmFsOwogICAgIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
KQotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9y
Q2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xv
ciYpIGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb2xvckNob29zZXI+IGNy
ZWF0ZUNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQmLCBjb25zdCBXZWJD
b3JlOjpDb2xvciYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5U
UykKQEAgLTE1MiwxMCArMTUyLDEwIEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9STShJT1MpCiAg
ICAgdm9pZCBkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShib29sKSBmaW5hbDsKLSAgICB2b2lkIHNl
dE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpGcmFtZSosIGJvb2wpIGZpbmFsOwot
ICAgIHZvaWQgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKFdlYkNvcmU6OkZyYW1lKikgZmluYWw7Ci0g
ICAgdm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoV2ViQ29yZTo6RnJhbWUqKSBmaW5h
bDsKLSAgICB2b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShXZWJD
b3JlOjpGcmFtZSopIGZpbmFsOworICAgIHZvaWQgc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25z
KFdlYkNvcmU6OkZyYW1lJiwgYm9vbCkgZmluYWw7CisgICAgdm9pZCBvYnNlcnZlZENvbnRlbnRD
aGFuZ2UoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKKyAgICB2b2lkIGNsZWFyQ29udGVudENoYW5n
ZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOworICAgIHZvaWQgbm90aWZ5UmV2ZWFs
ZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAgICAg
Ym9vbCBpc1N0b3BwaW5nKCkgZmluYWw7CiAKICAgICB2b2lkIGRpZExheW91dChMYXlvdXRUeXBl
ID0gTm9ybWFsTGF5b3V0KSBmaW5hbDsKQEAgLTIwMywxMiArMjAzLDEyIEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIGZpbmFsOwogICAg
IGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpIGZp
bmFsOwogICAgIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBmaW5hbDsKLSAgICBSZWZQdHI8
V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xp
ZW50KikgY29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4g
Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IGZp
bmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJD
b3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6
U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51
Q2xpZW50JikgY29uc3QgZmluYWw7CiAKICAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9y
eSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIGF0dGFjaFJv
b3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
IGZpbmFsOwotICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6
OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOworICAgIHZvaWQgYXR0YWNo
Um9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
KikgZmluYWw7CisgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29y
ZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7CiAgICAgdm9pZCBzZXRO
ZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBzY2hl
ZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIGZpbmFsOwogICAgIGJvb2wgYWRqdXN0TGF5ZXJG
bHVzaFRocm90dGxpbmcoV2ViQ29yZTo6TGF5ZXJGbHVzaFRocm90dGxlU3RhdGU6OkZsYWdzKSBm
aW5hbDsKQEAgLTIzMywxMSArMjMzLDExIEBAIHByaXZhdGU6CiAgICAgYm9vbCBsYXllclRyZWVT
dGF0ZUlzRnJvemVuKCkgY29uc3QgZmluYWw7CiAKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KQotICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yKFdlYkNvcmU6OlBhZ2UqKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yKFdlYkNvcmU6OlBhZ2UmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
SU9TKQotICAgIHZvaWQgZWxlbWVudERpZFJlZm9jdXMoY29uc3QgV2ViQ29yZTo6Tm9kZSopIGZp
bmFsOworICAgIHZvaWQgZWxlbWVudERpZFJlZm9jdXMoY29uc3QgV2ViQ29yZTo6RWxlbWVudCYp
IGZpbmFsOwogI2VuZGlmCiAKICNpZiAoUExBVEZPUk0oSU9TKSAmJiBIQVZFKEFWS0lUKSkgfHwg
KFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKQEAgLTI1
MywxNCArMjUzLDE0IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKLSAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29y
ZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJkKSBmaW5hbDsKLSAgICB2b2lkIGVudGVyRnVs
bFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopIGZpbmFsOwotICAgIHZvaWQgZXhp
dEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBmaW5hbDsKKyAgICBib29s
IHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCYsIGJv
b2wgd2l0aEtleWJvYXJkKSBmaW5hbDsKKyAgICB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1l
bnQoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOworICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JF
bGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
Q09DT0EpCi0gICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgV2ViQ29yZTo6Tm9kZSopIGZp
bmFsOwotICAgIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgV2ViQ29yZTo6Tm9kZSopIGZpbmFs
OworICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKKyAg
ICB2b2lkIGVsZW1lbnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKIAogICAgIHZv
aWQgbWFrZUZpcnN0UmVzcG9uZGVyKCkgZmluYWw7CiAjZW5kaWYKQEAgLTI5MSwxMCArMjkxLDEw
IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIHBsdWdJbkV4dHJhU3R5bGVTaGVldCgpIGNvbnN0IGZp
bmFsOwogICAgIFN0cmluZyBwbHVnSW5FeHRyYVNjcmlwdCgpIGNvbnN0IGZpbmFsOwogCi0gICAg
dm9pZCBkaWRBZGRIZWFkZXJMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7Ci0g
ICAgdm9pZCBkaWRBZGRGb290ZXJMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7
CisgICAgdm9pZCBkaWRBZGRIZWFkZXJMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyJikgZmlu
YWw7CisgICAgdm9pZCBkaWRBZGRGb290ZXJMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyJikg
ZmluYWw7CiAKLSAgICBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25z
dCBXZWJDb3JlOjpGcmFtZVZpZXcqKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHNob3VsZFVzZVRp
bGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBXZWJDb3JlOjpGcmFtZVZpZXcmKSBjb25zdCBm
aW5hbDsKIAogICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCB1aW50NjRfdCkgZmluYWw7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMzJhZjU5ZjNmYmQ0NzQwOWY0Mjg4NjM2OWZhMDhi
ZWRhY2I1ZDQ2OC4uNDMzOThmYzkzYzIzZDFiMTM4ZTdhNDVkMmExOWVhOGQzM2QzYWQ5ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTY0MCwxMyArNjQwLDEzIEBAIEZy
YW1lKiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0IE5hdmln
YXRpb25BY3Rpb24mIG5hdmlnYXRpCiB7CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1fZnJhbWUt
PnBhZ2UoKTsKICAgICBpZiAoIXdlYlBhZ2UpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIEp1c3QgY2FsbCB0aHJvdWdoIHRvIHRoZSBjaHJvbWUg
Y2xpZW50LgogICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChtX2ZyYW1lLT5jb3JlRnJhbWUo
KS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgbmF2aWdhdGlvbkFjdGlvbi5yZXNvdXJj
ZVJlcXVlc3QoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5
YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFt
ZU9wZW5lclBvbGljeTo6QWxsb3csIG5hdmlnYXRpb25BY3Rpb24uc2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSgpKTsKLSAgICBQYWdlKiBuZXdQYWdlID0gd2ViUGFnZS0+Y29yZVBhZ2UoKS0+
Y2hyb21lKCkuY3JlYXRlV2luZG93KG1fZnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0LCBXaW5k
b3dGZWF0dXJlcygpLCBuYXZpZ2F0aW9uQWN0aW9uKTsKKyAgICBQYWdlKiBuZXdQYWdlID0gd2Vi
UGFnZS0+Y29yZVBhZ2UoKS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KCptX2ZyYW1lLT5jb3JlRnJh
bWUoKSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgbmF2aWdhdGlvbkFjdGlvbik7CiAgICAg
aWYgKCFuZXdQYWdlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgCiAgICAgcmV0dXJuICZuZXdQYWdlLT5tYWluRnJhbWUoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5z
cGVjdG9yQ2xpZW50LmNwcAppbmRleCA5Njg5MjlmZGEzNDc5YWFkMmJlNGExMGEwYjQ1OTZhZTE3
NTU2ZDUwLi40MWIzNGYwMGE4YzZmZDIwM2M1ODM0MjAzZTgyODBhNWM0NDU2Zjc5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3Rv
ckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC03Myw3ICs3Myw3IEBAIFdlYkluc3BlY3RvckNs
aWVudDo6fldlYkluc3BlY3RvckNsaWVudCgpCiAgICAgfQogCiAgICAgaWYgKG1fcGFpbnRSZWN0
T3ZlcmxheSAmJiBtX3BhZ2UtPm1haW5GcmFtZSgpKQotICAgICAgICBtX3BhZ2UtPm1haW5GcmFt
ZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheShtX3BhaW50
UmVjdE92ZXJsYXkuZ2V0KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CisgICAgICAg
IG1fcGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBh
Z2VPdmVybGF5KCptX3BhaW50UmVjdE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFk
ZSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjppbnNwZWN0ZWRQYWdlRGVzdHJveWVk
KCkKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6aGlkZUhpZ2hs
aWdodCgpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBpZiAobV9oaWdobGlnaHRPdmVybGF5
ICYmIG1fcGFnZS0+bWFpbkZyYW1lKCkpCi0gICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPnBh
Z2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1faGlnaGxpZ2h0T3Zl
cmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICAgICAgbV9wYWdlLT5tYWlu
RnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1f
aGlnaGxpZ2h0T3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKICNlbHNlCiAg
ICAgbV9wYWdlLT5oaWRlSW5zcGVjdG9ySGlnaGxpZ2h0KCk7CiAjZW5kaWYKQEAgLTEzNiw3ICsx
MzYsNyBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6c2hvd1BhaW50UmVjdChjb25zdCBGbG9h
dFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFtX3BhaW50UmVjdE92ZXJsYXkpIHsKICAgICAgICAg
bV9wYWludFJlY3RPdmVybGF5ID0gUGFnZU92ZXJsYXk6OmNyZWF0ZSgqdGhpcywgUGFnZU92ZXJs
YXk6Ok92ZXJsYXlUeXBlOjpEb2N1bWVudCk7Ci0gICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCkt
PnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheShtX3BhaW50UmVjdE92
ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAgbV9wYWdl
LT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5
KCptX3BhaW50UmVjdE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsK
ICAgICB9CiAKICAgICBpZiAoIW1fcGFpbnRJbmRpY2F0b3JMYXllckNsaWVudCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCmlu
ZGV4IDFlMGNlZjQ2NTFiOTNiZjgwZmI3MDU2NjVjNmY2MTVmZWFiYzJhODkuLjMzMDMyYzE3MmIx
YjI0MzhkYWZkNjBjMzQ2NDY2ZWE0NTA1ZTRhN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcApAQCAtMTg5LDcgKzE4OSw3
IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OnVwZGF0ZUZpbmRVSUFmdGVyUGFnZVNjcm9sbChib29s
IGZvdW5kLCBjb25zdCBTdHJpbmcmIHN0cmluCiAKICAgICBpZiAoIXNob3VsZFNob3dPdmVybGF5
KSB7CiAgICAgICAgIGlmIChtX2ZpbmRQYWdlT3ZlcmxheSkKLSAgICAgICAgICAgIG1fd2ViUGFn
ZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVy
bGF5KG1fZmluZFBhZ2VPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOworICAg
ICAgICAgICAgbV93ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCku
dW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fZmluZFBhZ2VPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFk
ZU1vZGU6OkZhZGUpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlmICghbV9maW5kUGFnZU92ZXJs
YXkpIHsKICAgICAgICAgICAgIGF1dG8gZmluZFBhZ2VPdmVybGF5ID0gUGFnZU92ZXJsYXk6OmNy
ZWF0ZSgqdGhpcywgUGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlOjpEb2N1bWVudCk7CkBAIC0zMTIs
NyArMzEyLDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6aGlkZUZpbmRVSSgpCiB7CiAgICAgbV9m
aW5kTWF0Y2hlcy5jbGVhcigpOwogICAgIGlmIChtX2ZpbmRQYWdlT3ZlcmxheSkKLSAgICAgICAg
bV93ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxs
UGFnZU92ZXJsYXkobV9maW5kUGFnZU92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFk
ZSk7CisgICAgICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxl
cigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX2ZpbmRQYWdlT3ZlcmxheSwgUGFnZU92ZXJsYXk6
OkZhZGVNb2RlOjpGYWRlKTsKIAogICAgIFBsdWdpblZpZXcqIHBsdWdpblZpZXcgPSBwbHVnaW5W
aWV3Rm9yRnJhbWUobV93ZWJQYWdlLT5tYWluRnJhbWUoKSk7CiAgICAgCkBAIC0zMjUsNiArMzI1
LDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6aGlkZUZpbmRVSSgpCiB9CiAKICNpZiAhUExBVEZP
Uk0oSU9TKQorCiBib29sIEZpbmRDb250cm9sbGVyOjp1cGRhdGVGaW5kSW5kaWNhdG9yKEZyYW1l
JiBzZWxlY3RlZEZyYW1lLCBib29sIGlzU2hvd2luZ092ZXJsYXksIGJvb2wgc2hvdWxkQW5pbWF0
ZSkKIHsKICAgICBSZWZQdHI8VGV4dEluZGljYXRvcj4gaW5kaWNhdG9yID0gVGV4dEluZGljYXRv
cjo6Y3JlYXRlV2l0aFNlbGVjdGlvbkluRnJhbWUoc2VsZWN0ZWRGcmFtZSwgVGV4dEluZGljYXRv
ck9wdGlvbkluY2x1ZGVNYXJnaW5JZlJhbmdlTWF0Y2hlc1NlbGVjdGlvbiwgc2hvdWxkQW5pbWF0
ZSA/IFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uOjpCb3VuY2UgOiBUZXh0SW5k
aWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Tm9uZSk7CkBAIC0zNjYsNiArMzY3LDcgQEAg
dm9pZCBGaW5kQ29udHJvbGxlcjo6ZGlkRmFpbFRvRmluZFN0cmluZygpCiB2b2lkIEZpbmRDb250
cm9sbGVyOjpkaWRIaWRlRmluZEluZGljYXRvcigpCiB7CiB9CisKICNlbmRpZgogCiB2b2lkIEZp
bmRDb250cm9sbGVyOjpzaG93RmluZEluZGljYXRvckluU2VsZWN0aW9uKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCmluZGV4IDM2MjlkNGFlNThj
N2Q0Njg2MmUxNWE3NWY5ODRiZGNkNWVlYjhmNDYuLjk5OWZlMjVjMTAwYTMxMzc2YjBkZjc1YTQz
MDdjMzFjYTdmZTRlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0
ZUxpc3RlbmVySUQoKQogICAgIHJldHVybiB1bmlxdWVMaXN0ZW5lcklEKys7CiB9CiAKLVBhc3NS
ZWZQdHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGVXaXRoQ29yZU1haW5GcmFtZShXZWJQYWdl
KiBwYWdlLCBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lKQorUmVmPFdlYkZyYW1lPiBXZWJGcmFt
ZTo6Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSogcGFnZSwgV2ViQ29yZTo6RnJhbWUq
IGNvcmVGcmFtZSkKIHsKICAgICBhdXRvIGZyYW1lID0gY3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxX
ZWJGcmFtZUxvYWRlckNsaWVudD4oc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2FkZXJDbGllbnQqPigm
Y29yZUZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKSkpKTsKICAgICBwYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRpZENyZWF0ZU1haW5GcmFtZShmcmFtZS0+ZnJhbWVJRCgpKSwgcGFn
ZS0+cGFnZUlEKCksIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0
aW5nRm9yU3luY1JlcGx5KTsKQEAgLTEyMCwzMCArMTIwLDMyIEBAIFBhc3NSZWZQdHI8V2ViRnJh
bWU+IFdlYkZyYW1lOjpjcmVhdGVXaXRoQ29yZU1haW5GcmFtZShXZWJQYWdlKiBwYWdlLCBXZWJD
b3JlOjpGCiAgICAgcmV0dXJuIGZyYW1lOwogfQogCi1QYXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJG
cmFtZTo6Y3JlYXRlU3ViZnJhbWUoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBmcmFtZU5h
bWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50KQorUmVmPFdlYkZyYW1lPiBX
ZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUoV2ViUGFnZSogcGFnZSwgY29uc3QgU3RyaW5nJiBmcmFt
ZU5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50KQogewogICAgIGF1dG8g
ZnJhbWUgPSBjcmVhdGUoc3RkOjptYWtlX3VuaXF1ZTxXZWJGcmFtZUxvYWRlckNsaWVudD4oKSk7
CiAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDcmVhdGVTdWJmcmFt
ZShmcmFtZS0+ZnJhbWVJRCgpKSwgcGFnZS0+cGFnZUlEKCksIElQQzo6U2VuZE9wdGlvbjo6RGlz
cGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIAotICAgIFJlZjxXZWJD
b3JlOjpGcmFtZT4gY29yZUZyYW1lID0gRnJhbWU6OmNyZWF0ZShwYWdlLT5jb3JlUGFnZSgpLCBv
d25lckVsZW1lbnQsIGZyYW1lLT5tX2ZyYW1lTG9hZGVyQ2xpZW50LmdldCgpKTsKKyAgICBhdXRv
IGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZS0+Y29yZVBhZ2UoKSwgb3duZXJFbGVtZW50
LCBmcmFtZS0+bV9mcmFtZUxvYWRlckNsaWVudC5nZXQoKSk7CiAgICAgZnJhbWUtPm1fY29yZUZy
YW1lID0gY29yZUZyYW1lLnB0cigpOwotICAgIGZyYW1lLT5tX2NvcmVGcmFtZS0+dHJlZSgpLnNl
dE5hbWUoZnJhbWVOYW1lKTsKKworICAgIGNvcmVGcmFtZS0+dHJlZSgpLnNldE5hbWUoZnJhbWVO
YW1lKTsKICAgICBpZiAob3duZXJFbGVtZW50KSB7CiAgICAgICAgIEFTU0VSVChvd25lckVsZW1l
bnQtPmRvY3VtZW50KCkuZnJhbWUoKSk7Ci0gICAgICAgIG93bmVyRWxlbWVudC0+ZG9jdW1lbnQo
KS5mcmFtZSgpLT50cmVlKCkuYXBwZW5kQ2hpbGQoV1RGTW92ZShjb3JlRnJhbWUpKTsKKyAgICAg
ICAgb3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCktPnRyZWUoKS5hcHBlbmRDaGlsZChj
b3JlRnJhbWUuZ2V0KCkpOwogICAgIH0KLSAgICBmcmFtZS0+bV9jb3JlRnJhbWUtPmluaXQoKTsK
KyAgICBjb3JlRnJhbWUtPmluaXQoKTsKKwogICAgIHJldHVybiBmcmFtZTsKIH0KIAotUGFzc1Jl
ZlB0cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVM
b2FkZXJDbGllbnQ+IGZyYW1lTG9hZGVyQ2xpZW50KQorUmVmPFdlYkZyYW1lPiBXZWJGcmFtZTo6
Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4gZnJhbWVMb2FkZXJD
bGllbnQpCiB7CiAgICAgYXV0byBmcmFtZSA9IGFkb3B0UmVmKCpuZXcgV2ViRnJhbWUoV1RGTW92
ZShmcmFtZUxvYWRlckNsaWVudCkpKTsKIAogICAgIC8vIEFkZCBleHBsaWN0IHJlZigpIHRoYXQg
d2lsbCBiZSBiYWxhbmNlZCBpbiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZnJhbWVMb2FkZXJEZXN0
cm95ZWQoKS4KICAgICBmcmFtZS0+cmVmKCk7CiAKLSAgICByZXR1cm4gV1RGTW92ZShmcmFtZSk7
CisgICAgcmV0dXJuIGZyYW1lOwogfQogCiBXZWJGcmFtZTo6V2ViRnJhbWUoc3RkOjp1bmlxdWVf
cHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRlckNsaWVudCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5kZXggMjNkNDhkMjlmODM3NjY1
Mzg1Y2Y0MTQxYTBjNGY2ZTYzYzU1YzY2MC4uZDRjN2E0MDgzNGEyODg5YjJhMWFmZDFmY2RlMzcw
NmZhZTAyNmIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZy
YW1lLmgKQEAgLTY2LDggKzY2LDggQEAgc3RydWN0IEZyYW1lSW5mb0RhdGE7CiAKIGNsYXNzIFdl
YkZyYW1lIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6QnVuZGxl
RnJhbWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZT4gY3JlYXRl
V2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSosIFdlYkNvcmU6OkZyYW1lKik7Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8V2ViRnJhbWU+IGNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqLCBjb25zdCBTdHJp
bmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Kik7CisgICAgc3Rh
dGljIFJlZjxXZWJGcmFtZT4gY3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSosIFdlYkNv
cmU6OkZyYW1lKik7CisgICAgc3RhdGljIFJlZjxXZWJGcmFtZT4gY3JlYXRlU3ViZnJhbWUoV2Vi
UGFnZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVs
ZW1lbnQqKTsKICAgICB+V2ViRnJhbWUoKTsKIAogICAgIC8vIENhbGxlZCB3aGVuIHRoZSBGcmFt
ZUxvYWRlckNsaWVudCAoYW5kIHRoZXJlZm9yZSB0aGUgV2ViQ29yZTo6RnJhbWUpIGlzIGJlaW5n
IHRvcm4gZG93bi4KQEAgLTE2Niw4ICsxNjYsOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0
ZToKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZT4gY3JlYXRlKHN0ZDo6dW5pcXVlX3B0
cjxXZWJGcmFtZUxvYWRlckNsaWVudD4pOwotICAgIFdlYkZyYW1lKHN0ZDo6dW5pcXVlX3B0cjxX
ZWJGcmFtZUxvYWRlckNsaWVudD4pOworICAgIHN0YXRpYyBSZWY8V2ViRnJhbWU+IGNyZWF0ZShz
dGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsKKyAgICBleHBsaWNpdCBXZWJG
cmFtZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsKIAogICAgIFdlYkNv
cmU6OkZyYW1lKiBtX2NvcmVGcmFtZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAppbmRleCBkNjQ3ODU5N2E4N2ZlZjNkYzBiOTk5
MzUyMTI2NzZlZmNjNDkzMzIzLi4wMTZkNzM4ZmI2MTJkMjQzYzAwNDllNTIwMTU4NjIxMzBmZDk1
OGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5z
cGVjdG9yLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yOjpvcGVuSW5O
ZXdUYWIoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiAgICAgRnJhbWUmIGluc3BlY3RlZE1haW5G
cmFtZSA9IGluc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpOwogICAgIEZyYW1lTG9hZFJlcXVlc3Qg
cmVxdWVzdChpbnNwZWN0ZWRNYWluRnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwg
UmVzb3VyY2VSZXF1ZXN0KHVybFN0cmluZyksICJfYmxhbmsiLCBMb2NrSGlzdG9yeTo6Tm8sIExv
Y2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9u
VG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywgUmVwbGFjZURv
Y3VtZW50SWZKYXZhU2NyaXB0VVJMLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91
bGROb3RBbGxvdyk7CiAKLSAgICBQYWdlKiBuZXdQYWdlID0gaW5zcGVjdGVkUGFnZS0+Y2hyb21l
KCkuY3JlYXRlV2luZG93KCZpbnNwZWN0ZWRNYWluRnJhbWUsIHJlcXVlc3QsIFdpbmRvd0ZlYXR1
cmVzKCksIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgTmF2aWdh
dGlvblR5cGU6OkxpbmtDbGlja2VkKSk7CisgICAgUGFnZSogbmV3UGFnZSA9IGluc3BlY3RlZFBh
Z2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdyhpbnNwZWN0ZWRNYWluRnJhbWUsIHJlcXVlc3QsIFdp
bmRvd0ZlYXR1cmVzKCksIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3Qo
KSwgTmF2aWdhdGlvblR5cGU6OkxpbmtDbGlja2VkKSk7CiAgICAgaWYgKCFuZXdQYWdlKQogICAg
ICAgICByZXR1cm47CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299420</attachid>
            <date>2017-01-20 19:48:58 -0800</date>
            <delta_ts>2017-01-21 10:59:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167224-20170120194704.patch</filename>
            <type>text/plain</type>
            <size>319132</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMDA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0RPTVdpbmRvd0ZldGNoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCmluZGV4IGFkYWRhY2Q4M2MyNjBjZmE5ZDc2OTlkMzRm
NmE0YmVjOTFkNjFmMDYuLmM1OWQzNjU2YTBjMjEwN2FhOWRhNzZkZjFhNTczN2RlZmY5ZjUyZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3Bw
CkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNiBDYW5vbiBJbmMuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsMTYgKzMzLDE3IEBACiAjaWYgRU5B
QkxFKEZFVENIX0FQSSkKIAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkZldGNo
UmVxdWVzdC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRmV0Y2hSZXNwb25z
ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgRE9NV2luZG93RmV0Y2g6OmZldGNo
KERPTVdpbmRvdyYgd2luZG93LCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QsIFJlZjxEZWZlcnJlZFBy
b21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBpZiAoIXdpbmRvdy5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCisgICAgYXV0byogZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQoKTsKKyAgICBpZiAo
IWRvY3VtZW50KQogICAgICAgICByZXR1cm47Ci0gICAgRmV0Y2hSZXNwb25zZTo6ZmV0Y2goKndp
bmRvdy5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHJlcXVlc3QsIFdURk1vdmUocHJvbWlzZSkp
OworICAgIEZldGNoUmVzcG9uc2U6OmZldGNoKCpkb2N1bWVudCwgcmVxdWVzdCwgV1RGTW92ZShw
cm9taXNlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcAppbmRleCBl
NTQ4OWZjYjU0MGM5Njk0YWU0Mzc1OTY4M2RlOWFjZjAxODI0YWQ5Li4zZGNiNTYwMzQzZWI1YWI5
NDUxMWEzOTBlYjE5MTFiMzljYjBmMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwCkBAIC0yMDQsNyArMjA0LDcg
QEAgdm9pZCBEYXRhYmFzZUNvbnRleHQ6OmRhdGFiYXNlRXhjZWVkZWRRdW90YShjb25zdCBTdHJp
bmcmIG5hbWUsIERhdGFiYXNlRGV0YWlscwogICAgIGlmIChpczxEb2N1bWVudD4oKm1fc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCkpIHsKICAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNh
c3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgICAgICBpZiAoUGFn
ZSogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkKLSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNs
aWVudCgpLmV4Y2VlZGVkRGF0YWJhc2VRdW90YShkb2N1bWVudC5mcmFtZSgpLCBuYW1lLCBkZXRh
aWxzKTsKKyAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV4Y2VlZGVkRGF0YWJh
c2VRdW90YSgqZG9jdW1lbnQuZnJhbWUoKSwgbmFtZSwgZGV0YWlscyk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNXb3JrZXJH
bG9iYWxTY29wZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
bWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5k
ZXggNDE2YjE4MzRiZDhhYTYzNGI4YzdiYzJjZWU3ZjA5NDZiYzZiYjA3ZS4uMDMyMGY5NTU2YjU3
YjJiMDM3MjkxMmIwOGY1MjkyZWI0Zjg2ZWQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXJNYWMubW0KQEAgLTM3MjksNyArMzcyOSw3IEBAIC0gKHZvaWQpYWNjZXNzaWJpbGl0
eVNob3dDb250ZXh0TWVudQogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHBhZ2UtPmNvbnRl
eHRNZW51Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVudUF0KCZwYWdlLT5tYWluRnJhbWUoKSwg
cmVjdC5jZW50ZXIoKSk7CisgICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0Nv
bnRleHRNZW51QXQocGFnZS0+bWFpbkZyYW1lKCksIHJlY3QuY2VudGVyKCkpOwogfQogCiAtICh2
b2lkKWFjY2Vzc2liaWxpdHlTY3JvbGxUb1Zpc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCBhM2Y2MmU1NjQ0MTFmMTgwN2Jm
ZjA5NWY1ZGI5Y2E1MmY2ZTZjZGU0Li5hZTdmZThjMTdmMGRiY2QxNWI3MDU0ODZkNjQyYTQ1OGFl
NTdiY2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRv
d0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwCkBAIC0xNzgsNyArMTc4LDcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJv
cGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnQKICAg
ICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgIC8vIERldGVjdCB3aGVuIHdlJ3JlIGdldHRpbmcgdGhl
IHByb3BlcnR5ICdzaG93TW9kYWxEaWFsb2cnLCB0aGlzIGlzIGRpc2FibGVkLCBhbmQgaGFzIGl0
cyBvcmlnaW5hbCB2YWx1ZS4KICAgICAgICAgYm9vbCBpc1Nob3dNb2RhbERpYWxvZ0FuZFNob3Vs
ZEhpZGUgPSBwcm9wZXJ0eU5hbWUgPT0gc3RhdGUtPnByb3BlcnR5TmFtZXMoKS5zaG93TW9kYWxE
aWFsb2cKLSAgICAgICAgICAgICYmICFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhmcmFt
ZSkKKyAgICAgICAgICAgICYmICFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZygqZnJhbWUp
CiAgICAgICAgICAgICAmJiBzbG90LmlzVmFsdWUoKSAmJiBpc0hvc3RGdW5jdGlvbihzbG90Lmdl
dFZhbHVlKHN0YXRlLCBwcm9wZXJ0eU5hbWUpLCBqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25T
aG93TW9kYWxEaWFsb2cpOwogICAgICAgICAvLyBVbmxlc3Mgd2UncmUgaW4gdGhlIHNob3dNb2Rh
bERpYWxvZyBzcGVjaWFsIGNhc2UsIHdlJ3JlIGRvbmUuCiAgICAgICAgIGlmICghaXNTaG93TW9k
YWxEaWFsb2dBbmRTaG91bGRIaWRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMDgxNjBh
ZGQzYTNhM2RlOWNkNDg3ZmQ0MTQxMzgyMTYxYzkxZjE5Yy4uOTQ4ZDY3Y2VlNDM5YjUwZGY4MGJj
ZmY1OWI3N2YwMjI2NzBiY2ViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NDgsMTMg
Kzg0OCwxMSBAQCB2b2lkIERvY3VtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFu
Z2UmIGNoYW5nZSkKIHsKICAgICBDb250YWluZXJOb2RlOjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdl
KTsKIAotI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBGSVhNRTogQ2hyb21lOjpkaWRSZWNlaXZl
RG9jVHlwZSgpIHVzZWQgdG8gYmUgY2FsbGVkIG9ubHkgd2hlbiB0aGUgZG9jdHlwZSBjaGFuZ2Vk
LiBXZSBuZWVkIHRvIGNoZWNrIHRoZQogICAgIC8vIGltcGFjdCBvZiBjYWxsaW5nIHRoaXMgc3lz
dGVtYXRpY2FsbHkuIElmIHRoZSBvdmVyaGVhZCBpcyBuZWdsaWdpYmxlLCB3ZSBuZWVkIHRvIHJl
bmFtZSBkaWRSZWNlaXZlRG9jVHlwZSwKICAgICAvLyBvdGhlcndpc2UsIHdlIG5lZWQgdG8gZGV0
ZWN0IHRoZSBkb2MgdHlwZSBjaGFuZ2VzIGJlZm9yZSB1cGRhdGluZyB0aGUgdmlld3BvcnQuCiAg
ICAgaWYgKFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgp
LmRpZFJlY2VpdmVEb2NUeXBlKGZyYW1lKCkpOwotI2VuZGlmCisgICAgICAgIHBhZ2UtPmNocm9t
ZSgpLmRpZFJlY2VpdmVEb2NUeXBlKCpmcmFtZSgpKTsKIAogICAgIEVsZW1lbnQqIG5ld0RvY3Vt
ZW50RWxlbWVudCA9IGNoaWxkcmVuT2ZUeXBlPEVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpOwogICAg
IGlmIChuZXdEb2N1bWVudEVsZW1lbnQgPT0gbV9kb2N1bWVudEVsZW1lbnQpCkBAIC0yMzcyLDkg
KzIzNzAsMTAgQEAgdm9pZCBEb2N1bWVudDo6cGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9N
T2JqZWN0cygpCiB7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChXZWJUaHJlYWRDb3VudE9m
T2JzZXJ2ZWRDb250ZW50TW9kaWZpZXJzKCkgPiAwKSB7Ci0gICAgICAgIEZyYW1lKiBmcmFtZSA9
IHRoaXMtPmZyYW1lKCk7Ci0gICAgICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUgPyBmcmFtZS0+
cGFnZSgpIDogbnVsbHB0cikKLSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmNs
ZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhmcmFtZSk7CisgICAgICAgIGlmIChhdXRvKiBmcmFt
ZSA9IHRoaXMtPmZyYW1lKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUt
PnBhZ2UoKSkKKyAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5jbGVhckNv
bnRlbnRDaGFuZ2VPYnNlcnZlcnMoKmZyYW1lKTsKKyAgICAgICAgfQogICAgIH0KICNlbmRpZgog
fQpAQCAtMzIxOCw5ICszMjE3LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlVmlld3BvcnRBcmd1
bWVudHMoKQogICAgICAgICBtX2RpZERpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZCA9
IHRydWU7CiAjZW5kaWYKICAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5kaXNwYXRjaFZpZXdwb3J0
UHJvcGVydGllc0RpZENoYW5nZShtX3ZpZXdwb3J0QXJndW1lbnRzKTsKLSNpZiBQTEFURk9STShJ
T1MpCi0gICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuZGlkUmVjZWl2ZURvY1R5cGUoZnJhbWUoKSk7
Ci0jZW5kaWYKKyAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZSgqZnJh
bWUoKSk7CiAgICAgfQogfQogCkBAIC0zNjQyLDcgKzM2MzksNyBAQCBib29sIERvY3VtZW50Ojpz
ZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rp
b24sIEZvYwogICAgICAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCpvbGRGb2N1c2Vk
RWxlbWVudCkpCiAgICAgICAgICAgICAgICAgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKm9s
ZEZvY3VzZWRFbGVtZW50KS5lbmRFZGl0aW5nKCk7CiAgICAgICAgICAgICBpZiAocGFnZSgpKQot
ICAgICAgICAgICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZEJsdXIo
b2xkRm9jdXNlZEVsZW1lbnQuZ2V0KCkpOworICAgICAgICAgICAgICAgIHBhZ2UoKS0+Y2hyb21l
KCkuY2xpZW50KCkuZWxlbWVudERpZEJsdXIoKm9sZEZvY3VzZWRFbGVtZW50KTsKICAgICAgICAg
ICAgIEFTU0VSVCghbV9mb2N1c2VkRWxlbWVudCk7CiAgICAgICAgIH0KIApAQCAtNDAwMCw3ICsz
OTk3LDcgQEAgdm9pZCBEb2N1bWVudDo6Y3JlYXRlRE9NV2luZG93KCkKICAgICBBU1NFUlQobV9m
cmFtZSk7CiAgICAgQVNTRVJUKCFtX2RvbVdpbmRvdyk7CiAKLSAgICBtX2RvbVdpbmRvdyA9IERP
TVdpbmRvdzo6Y3JlYXRlKHRoaXMpOworICAgIG1fZG9tV2luZG93ID0gRE9NV2luZG93OjpjcmVh
dGUoKnRoaXMpOwogCiAgICAgQVNTRVJUKG1fZG9tV2luZG93LT5kb2N1bWVudCgpID09IHRoaXMp
OwogICAgIEFTU0VSVChtX2RvbVdpbmRvdy0+ZnJhbWUoKSA9PSBtX2ZyYW1lKTsKQEAgLTQwMTUs
NyArNDAxMiw3IEBAIHZvaWQgRG9jdW1lbnQ6OnRha2VET01XaW5kb3dGcm9tKERvY3VtZW50KiBk
b2N1bWVudCkKICAgICBBU1NFUlQocGFnZUNhY2hlU3RhdGUoKSA9PSBOb3RJblBhZ2VDYWNoZSk7
CiAKICAgICBtX2RvbVdpbmRvdyA9IFdURk1vdmUoZG9jdW1lbnQtPm1fZG9tV2luZG93KTsKLSAg
ICBtX2RvbVdpbmRvdy0+ZGlkU2VjdXJlVHJhbnNpdGlvblRvKHRoaXMpOworICAgIG1fZG9tV2lu
ZG93LT5kaWRTZWN1cmVUcmFuc2l0aW9uVG8oKnRoaXMpOwogCiAgICAgQVNTRVJUKG1fZG9tV2lu
ZG93LT5kb2N1bWVudCgpID09IHRoaXMpOwogICAgIEFTU0VSVChtX2RvbVdpbmRvdy0+ZnJhbWUo
KSA9PSBtX2ZyYW1lKTsKQEAgLTU1NzMsMTIgKzU1NzAsMTIgQEAgdm9pZCBEb2N1bWVudDo6cmVx
dWVzdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZ1bGxTY3JlZW5DaGVj
a1R5cGUKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGJvb2wgaGFzS2V5Ym9hcmRBY2Nl
c3MgPSB0cnVlOwotICAgICAgICBpZiAoIXBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9y
dHNGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50LCBoYXNLZXlib2FyZEFjY2VzcykpIHsKKyAg
ICAgICAgaWYgKCFwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZv
ckVsZW1lbnQoKmVsZW1lbnQsIGhhc0tleWJvYXJkQWNjZXNzKSkgewogICAgICAgICAgICAgLy8g
VGhlIG5ldyBmdWxsIHNjcmVlbiBBUEkgZG9lcyBub3QgYWNjZXB0IGEgImZsYWdzIiBwYXJhbWV0
ZXIsIHNvIGZhbGwgYmFjayB0byBkaXNhbGxvd2luZwogICAgICAgICAgICAgLy8ga2V5Ym9hcmQg
aW5wdXQgaWYgdGhlIGNocm9tZSBjbGllbnQgcmVmdXNlcyB0byBhbGxvdyBrZXlib2FyZCBpbnB1
dC4KICAgICAgICAgICAgIGhhc0tleWJvYXJkQWNjZXNzID0gZmFsc2U7CiAKLSAgICAgICAgICAg
IGlmICghcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVt
ZW50KGVsZW1lbnQsIGhhc0tleWJvYXJkQWNjZXNzKSkKKyAgICAgICAgICAgIGlmICghcGFnZSgp
LT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KCplbGVtZW50
LCBoYXNLZXlib2FyZEFjY2VzcykpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
IApAQCAtNTYzMSw3ICs1NjI4LDcgQEAgdm9pZCBEb2N1bWVudDo6cmVxdWVzdEZ1bGxTY3JlZW5G
b3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZ1bGxTY3JlZW5DaGVja1R5cGUKICAgICAgICAg
Ly8gNS4gUmV0dXJuLCBhbmQgcnVuIHRoZSByZW1haW5pbmcgc3RlcHMgYXN5bmNocm9ub3VzbHku
CiAgICAgICAgIC8vIDYuIE9wdGlvbmFsbHksIHBlcmZvcm0gc29tZSBhbmltYXRpb24uCiAgICAg
ICAgIG1fYXJlS2V5c0VuYWJsZWRJbkZ1bGxTY3JlZW4gPSBoYXNLZXlib2FyZEFjY2VzczsKLSAg
ICAgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KGVsZW1lbnQpOworICAgICAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVudGVyRnVsbFNj
cmVlbkZvckVsZW1lbnQoKmVsZW1lbnQpOwogCiAgICAgICAgIC8vIDcuIE9wdGlvbmFsbHksIGRp
c3BsYXkgYSBtZXNzYWdlIGluZGljYXRpbmcgaG93IHRoZSB1c2VyIGNhbiBleGl0IGRpc3BsYXlp
bmcgdGhlIGNvbnRleHQgb2JqZWN0IGZ1bGxzY3JlZW4uCiAgICAgICAgIHJldHVybjsKQEAgLTU3
MjMsMTIgKzU3MjAsMTIgQEAgdm9pZCBEb2N1bWVudDo6d2Via2l0RXhpdEZ1bGxzY3JlZW4oKQog
ICAgIC8vIE9ubHkgZXhpdCBvdXQgb2YgZnVsbCBzY3JlZW4gd2luZG93IG1vZGUgaWYgdGhlcmUg
YXJlIG5vIHJlbWFpbmluZyBlbGVtZW50cyBpbiB0aGUgCiAgICAgLy8gZnVsbCBzY3JlZW4gc3Rh
Y2suCiAgICAgaWYgKCFuZXdUb3ApIHsKLSAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQo
KS5leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQobV9mdWxsU2NyZWVuRWxlbWVudC5nZXQoKSk7Cisg
ICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
KCptX2Z1bGxTY3JlZW5FbGVtZW50KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8v
IE90aGVyd2lzZSwgbm90aWZ5IHRoZSBjaHJvbWUgb2YgdGhlIG5ldyBmdWxsIHNjcmVlbiBlbGVt
ZW50LgotICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJGdWxsU2NyZWVuRm9yRWxl
bWVudChuZXdUb3ApOworICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJGdWxsU2Ny
ZWVuRm9yRWxlbWVudCgqbmV3VG9wKTsKIH0KIAogYm9vbCBEb2N1bWVudDo6d2Via2l0RnVsbHNj
cmVlbkVuYWJsZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDg4ZTNlOTkzMDFh
NzE5ZGUyNTQwODNhOTMyNmEzYmFjZjNlYzM4ZmMuLjg1ZTBiMjZmMWMzZTc4YjJjYmJjNjg1YjZh
ZDE5ZjI1ZDBkOWJlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTIzNDgsNyArMjM0OCw3
IEBAIHZvaWQgRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZv
Y3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIAogICAgIGlmIChkb2N1bWVudCgpLmZvY3VzZWRFbGVt
ZW50KCkgPT0gdGhpcykgewogICAgICAgICBpZiAoZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAg
ICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZFJlZm9j
dXModGhpcyk7CisgICAgICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50
KCkuZWxlbWVudERpZFJlZm9jdXMoKnRoaXMpOwogCiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0yMzcxLDcgKzIzNzEsNyBAQCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVByZXZp
b3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAgICAgICAgIC8vIElmIGEg
Zm9jdXMgZXZlbnQgaGFuZGxlciBjaGFuZ2VzIHRoZSBmb2N1cyB0byBhIGRpZmZlcmVudCBub2Rl
IGl0CiAgICAgICAgIC8vIGRvZXMgbm90IG1ha2Ugc2Vuc2UgdG8gY29udGludWUgYW5kIHVwZGF0
ZSBhcHBlYXJlbmNlLgogICAgICAgICBwcm90ZWN0ID0gdGhpczsKLSAgICAgICAgaWYgKCFwYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudCh0aGlzLCBkb2N1bWVudCgpLmZy
YW1lKCksIGRpcmVjdGlvbikpCisgICAgICAgIGlmICghcGFnZS0+Zm9jdXNDb250cm9sbGVyKCku
c2V0Rm9jdXNlZEVsZW1lbnQodGhpcywgKmRvY3VtZW50KCkuZnJhbWUoKSwgZGlyZWN0aW9uKSkK
ICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI0NDEsNyArMjQ0MSw3IEBAIHZvaWQg
RWxlbWVudDo6Ymx1cigpCiAgICAgY2FuY2VsRm9jdXNBcHBlYXJhbmNlVXBkYXRlKCk7CiAgICAg
aWYgKHRyZWVTY29wZSgpLmZvY3VzZWRFbGVtZW50SW5TY29wZSgpID09IHRoaXMpIHsKICAgICAg
ICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgIGZy
YW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KDAsIGZyYW1l
KTsKKyAgICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3Vz
ZWRFbGVtZW50KG51bGxwdHIsICpmcmFtZSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRv
Y3VtZW50KCkuc2V0Rm9jdXNlZEVsZW1lbnQobnVsbHB0cik7CiAgICAgfQpAQCAtMjQ2NCw3ICsy
NDY0LDcgQEAgdm9pZCBFbGVtZW50OjpkaXNwYXRjaEZvY3VzT3V0RXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIFJlZlB0cjxFbGVtZW4KIHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hG
b2N1c0V2ZW50KFJlZlB0cjxFbGVtZW50PiYmIG9sZEZvY3VzZWRFbGVtZW50LCBGb2N1c0RpcmVj
dGlvbikKIHsKICAgICBpZiAoZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgIGRvY3VtZW50KCku
cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkRm9jdXModGhpcyk7CisgICAgICAg
IGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkRm9jdXMoKnRo
aXMpOwogCiAgICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KCp0aGlzLCBGb2N1c0V2
ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmZvY3VzRXZlbnQsIGZhbHNlLCBmYWxzZSwgZG9jdW1l
bnQoKS5kZWZhdWx0VmlldygpLCAwLCBXVEZNb3ZlKG9sZEZvY3VzZWRFbGVtZW50KSkpOwogfQpA
QCAtMjQ3Miw3ICsyNDcyLDcgQEAgdm9pZCBFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQoUmVm
UHRyPEVsZW1lbnQ+JiYgb2xkRm9jdXNlZEVsZW1lbnQsIEZvY3VzRGlyZWMKIHZvaWQgRWxlbWVu
dDo6ZGlzcGF0Y2hCbHVyRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1lbnQp
CiB7CiAgICAgaWYgKGRvY3VtZW50KCkucGFnZSgpKQotICAgICAgICBkb2N1bWVudCgpLnBhZ2Uo
KS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZEJsdXIodGhpcyk7CisgICAgICAgIGRvY3Vt
ZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkQmx1cigqdGhpcyk7CiAK
ICAgICBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQoKnRoaXMsIEZvY3VzRXZlbnQ6OmNy
ZWF0ZShldmVudE5hbWVzKCkuYmx1ckV2ZW50LCBmYWxzZSwgZmFsc2UsIGRvY3VtZW50KCkuZGVm
YXVsdFZpZXcoKSwgMCwgV1RGTW92ZShuZXdGb2N1c2VkRWxlbWVudCkpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcAppbmRleCBiYjNhYjk5ZTYxYzViZGMxMDQzZjNlYmM0ZTBmNzk2YTJkY2JkOGI3Li43NjYy
MzA1NDcxZTUxZmJiZjZlNGZhMzU1NzVlZDZhYmFiZmM3MDc2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBA
IC0yMjUzLDcgKzIyNTMsNyBAQCB2b2lkIE5vZGU6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQm
IGV2ZW50KQogICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5jb250ZXh0
bWVudUV2ZW50KSB7CiAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1l
KCkpCiAgICAgICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCkpCi0gICAgICAg
ICAgICAgICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuaGFuZGxlQ29udGV4dE1lbnVF
dmVudCgmZXZlbnQpOworICAgICAgICAgICAgICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxl
cigpLmhhbmRsZUNvbnRleHRNZW51RXZlbnQoZXZlbnQpOwogI2VuZGlmCiAgICAgfSBlbHNlIGlm
IChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnRleHRJbnB1dEV2ZW50KSB7CiAgICAgICAgIGlm
IChpczxUZXh0RXZlbnQ+KGV2ZW50KSkgewpAQCAtMjI3Miw3ICsyMjcyLDcgQEAgdm9pZCBOb2Rl
OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKIAogICAgICAgICAgICAgaWYgKHJl
bmRlcmVyKSB7CiAgICAgICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCku
ZnJhbWUoKSkKLSAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLnN0YXJ0
UGFuU2Nyb2xsaW5nKGRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIpKTsKKyAgICAgICAgICAg
ICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLnN0YXJ0UGFuU2Nyb2xsaW5nKGRvd25jYXN0
PFJlbmRlckJveD4oKnJlbmRlcmVyKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggYWNmMjI2OGE3
ZTc5MzA5MjdjZWNiYjEzZDI0ZDY0Y2ZhZGJmNmRkZS4uMDFmMDcxY2NhZGNkZjE5NjQxZjI4Nzc3
NDE5ZGI0NmNiNTQwYzYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQu
Y3BwCkBAIC05MzAsNyArOTMwLDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZVByaW50KEZyYW1lJiBm
cmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcKICAgICBQYWdl
KiBwYWdlID0gZnJhbWUucGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIHBhZ2UtPmNocm9tZSgpLnByaW50KCZmcmFtZSk7CisgICAgcGFnZS0+Y2hyb21l
KCkucHJpbnQoZnJhbWUpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDY3NTlmZjE3N2ZlNzY3MWNiYjE2OTM1ZWIz
NjEwZDJhNTY5N2I3ODYuLmFjNWQwYmZhZGU4YmRlYjAxNjViNWJmNjRlZWI0NmU0YjgzNWUxMzEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0yMTU3LDcg
KzIxNTcsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRGb2N1c2VkRWxlbWVudElmTmVlZGVk
KCkKICAgICBib29sIGNhcmV0QnJvd3NpbmcgPSBtX2ZyYW1lLT5zZXR0aW5ncygpLmNhcmV0QnJv
d3NpbmdFbmFibGVkKCk7CiAgICAgaWYgKGNhcmV0QnJvd3NpbmcpIHsKICAgICAgICAgaWYgKEVs
ZW1lbnQqIGFuY2hvciA9IGVuY2xvc2luZ0FuY2hvckVsZW1lbnQobV9zZWxlY3Rpb24uYmFzZSgp
KSkgewotICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRG
b2N1c2VkRWxlbWVudChhbmNob3IsIG1fZnJhbWUpOworICAgICAgICAgICAgbV9mcmFtZS0+cGFn
ZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChhbmNob3IsICptX2ZyYW1l
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTIxNjksMTYgKzIx
NjksMTYgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0Rm9jdXNlZEVsZW1lbnRJZk5lZWRlZCgp
CiAgICAgICAgICAgICAvLyBzbyBhZGQgdGhlICFpc0ZyYW1lRWxlbWVudCBjaGVjayBoZXJlLiBU
aGVyZSdzIHByb2JhYmx5IGEgYmV0dGVyIHdheSB0byBtYWtlIHRoaXMKICAgICAgICAgICAgIC8v
IHdvcmsgaW4gdGhlIGxvbmcgdGVybSwgYnV0IHRoaXMgaXMgdGhlIHNhZmVzdCBmaXggYXQgdGhp
cyB0aW1lLgogICAgICAgICAgICAgaWYgKHRhcmdldC0+aXNNb3VzZUZvY3VzYWJsZSgpICYmICFp
c0ZyYW1lRWxlbWVudCh0YXJnZXQpKSB7Ci0gICAgICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgp
LT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudCh0YXJnZXQsIG1fZnJhbWUpOwor
ICAgICAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9j
dXNlZEVsZW1lbnQodGFyZ2V0LCAqbV9mcmFtZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0LT5wYXJlbnRPclNoYWRv
d0hvc3RFbGVtZW50KCk7CiAgICAgICAgIH0KLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
c2V0Rm9jdXNlZEVsZW1lbnQoMCk7CisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnNldEZv
Y3VzZWRFbGVtZW50KG51bGxwdHIpOwogICAgIH0KIAogICAgIGlmIChjYXJldEJyb3dzaW5nKQot
ICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVt
ZW50KDAsIG1fZnJhbWUpOworICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxl
cigpLnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIsICptX2ZyYW1lKTsKIH0KIAogdm9pZCBEcmFn
Q2FyZXRDb250cm9sbGVyOjpwYWludERyYWdDYXJldChGcmFtZSogZnJhbWUsIEdyYXBoaWNzQ29u
dGV4dCYgcCwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25zdCBMYXlvdXRSZWN0
JiBjbGlwUmVjdCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2Fj
aGVkRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKaW5k
ZXggMzYzMzk4ZDZlZmNjMTRjNGI2YmI3NWYzMTM4N2NkZDdlN2M1OTlkMS4uMjFmMjRhZDM5ZjRh
OTE2NmM4YjExM2NhZTI3MDBmZTlmNDUxY2E4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNo
ZWRGcmFtZS5jcHAKQEAgLTk4LDkgKzk4LDkgQEAgdm9pZCBDYWNoZWRGcmFtZUJhc2U6OnJlc3Rv
cmUoKQogICAgIGZyYW1lLmxvYWRlcigpLmNsaWVudCgpLmRpZFJlc3RvcmVGcm9tUGFnZUNhY2hl
KCk7CiAKICAgICAvLyBSZWNvbnN0cnVjdCB0aGUgRnJhbWVUcmVlLiBBbmQgb3BlbiB0aGUgY2hp
bGQgQ2FjaGVkRnJhbWVzIGluIHRoZWlyIHJlc3BlY3RpdmUgRnJhbWVMb2FkZXJzLgotICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NoaWxkRnJhbWVzLnNpemUoKTsgKytpKSB7Ci0gICAg
ICAgIGZyYW1lLnRyZWUoKS5hcHBlbmRDaGlsZCgmbV9jaGlsZEZyYW1lc1tpXS0+dmlldygpLT5m
cmFtZSgpKTsKLSAgICAgICAgbV9jaGlsZEZyYW1lc1tpXS0+b3BlbigpOworICAgIGZvciAoYXV0
byYgY2hpbGRGcmFtZSA6IG1fY2hpbGRGcmFtZXMpIHsKKyAgICAgICAgZnJhbWUudHJlZSgpLmFw
cGVuZENoaWxkKGNoaWxkRnJhbWUtPnZpZXcoKS0+ZnJhbWUoKSk7CisgICAgICAgIGNoaWxkRnJh
bWUtPm9wZW4oKTsKICAgICB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0xMTEsNyArMTExLDcg
QEAgdm9pZCBDYWNoZWRGcmFtZUJhc2U6OnJlc3RvcmUoKQogICAgICAgICAgICAgLy8gRklYTUU6
IEFkZCBTQ1JPTExfTElTVEVORVIgdG8gdGhlIGxpc3Qgb2YgZXZlbnQgdHlwZXMgb24gRG9jdW1l
bnQsIGFuZCB1c2UgbV9kb2N1bWVudC0+aGFzTGlzdGVuZXJUeXBlKCkuIFNlZSA8cmRhcjovL3By
b2JsZW0vOTYxNTQ4Mj4uCiAgICAgICAgICAgICAvLyBGSVhNRTogQ2FuIHVzZSBEb2N1bWVudDo6
aGFzTGlzdGVuZXJUeXBlKCkgbm93LgogICAgICAgICAgICAgaWYgKGRvbVdpbmRvdy0+c2Nyb2xs
RXZlbnRMaXN0ZW5lckNvdW50KCkgJiYgZnJhbWUucGFnZSgpKQotICAgICAgICAgICAgICAgIGZy
YW1lLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25z
KCZmcmFtZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5j
bGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoZnJhbWUsIHRydWUpOwogICAgICAg
ICB9CiAgICAgfQogI2VuZGlmCkBAIC0xNjMsNyArMTYzLDcgQEAgQ2FjaGVkRnJhbWU6OkNhY2hl
ZEZyYW1lKEZyYW1lJiBmcmFtZSkKICAgICAvLyAxIC0gV2UgcmV1c2UgdGhlIG1haW4gZnJhbWUs
IHNvIHdoZW4gaXQgbmF2aWdhdGVzIHRvIGEgbmV3IHBhZ2UgbG9hZCBpdCBuZWVkcyB0byBzdGFy
dCB3aXRoIGEgYmxhbmsgRnJhbWVUcmVlLgogICAgIC8vIDIgLSBJdCdzIG11Y2ggZWFzaWVyIHRv
IGRlc3Ryb3kgYSBDYWNoZWRGcmFtZSB3aGlsZSBpdCByZXNpZGVzIGluIHRoZSBQYWdlQ2FjaGUg
aWYgaXQgaXMgZGlzY29ubmVjdGVkIGZyb20gaXRzIHBhcmVudC4KICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgbV9jaGlsZEZyYW1lcy5zaXplKCk7ICsraSkKLSAgICAgICAgZnJhbWUudHJl
ZSgpLnJlbW92ZUNoaWxkKCZtX2NoaWxkRnJhbWVzW2ldLT52aWV3KCktPmZyYW1lKCkpOworICAg
ICAgICBmcmFtZS50cmVlKCkucmVtb3ZlQ2hpbGQobV9jaGlsZEZyYW1lc1tpXS0+dmlldygpLT5m
cmFtZSgpKTsKIAogICAgIGlmICghbV9pc01haW5GcmFtZSkKICAgICAgICAgZnJhbWUucGFnZSgp
LT5kZWNyZW1lbnRTdWJmcmFtZUNvdW50KCk7CkBAIC0xODEsNyArMTgxLDcgQEAgQ2FjaGVkRnJh
bWU6OkNhY2hlZEZyYW1lKEZyYW1lJiBmcmFtZSkKICAgICBpZiAobV9pc01haW5GcmFtZSkgewog
ICAgICAgICBpZiAoRE9NV2luZG93KiBkb21XaW5kb3cgPSBtX2RvY3VtZW50LT5kb21XaW5kb3co
KSkgewogICAgICAgICAgICAgaWYgKGRvbVdpbmRvdy0+c2Nyb2xsRXZlbnRMaXN0ZW5lckNvdW50
KCkgJiYgZnJhbWUucGFnZSgpKQotICAgICAgICAgICAgICAgIGZyYW1lLnBhZ2UoKS0+Y2hyb21l
KCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKCZmcmFtZSwgZmFsc2UpOwor
ICAgICAgICAgICAgICAgIGZyYW1lLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNT
Y3JvbGxOb3RpZmljYXRpb25zKGZyYW1lLCBmYWxzZSk7CiAgICAgICAgIH0KICAgICB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXggNWJhMmM5NTRiMmJk
ODk5NWJjMGIyYjcyZDJmZmNkMzc5MTkxMDdhNi4uNTBlMWZjYjE0MzcxM2EzMGFjOTE1MzMxM2I1
ODkzMjU3OTBkMjFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKQEAg
LTE1Niw3ICsxNTYsNyBAQCB2b2lkIENvbG9ySW5wdXRUeXBlOjpoYW5kbGVET01BY3RpdmF0ZUV2
ZW50KEV2ZW50JiBldmVudCkKIAogICAgIGlmIChDaHJvbWUqIGNocm9tZSA9IHRoaXMtPmNocm9t
ZSgpKSB7CiAgICAgICAgIGlmICghbV9jaG9vc2VyKQotICAgICAgICAgICAgbV9jaG9vc2VyID0g
Y2hyb21lLT5jcmVhdGVDb2xvckNob29zZXIodGhpcywgdmFsdWVBc0NvbG9yKCkpOworICAgICAg
ICAgICAgbV9jaG9vc2VyID0gY2hyb21lLT5jcmVhdGVDb2xvckNob29zZXIoKnRoaXMsIHZhbHVl
QXNDb2xvcigpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9jaG9vc2VyLT5yZWF0dGFj
aENvbG9yQ2hvb3Nlcih2YWx1ZUFzQ29sb3IoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCA4MTFlYjBkNWQwNWI2YTZjNzY4ODc4ZDAzZmMz
M2MxYzI0OTQ2ZmIwLi5iYWViNTc2YjE1NjNlYjMxNTdiYjcyZWNkODdiNzgyNzAwOWVmMzA0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtMTI5LDcgKzEy
OSw3IEBAIGJvb2wgSFRNTEFuY2hvckVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9h
cmRFdmVudCYgZXZlbnQpIGNvbnN0CiAgICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhh
bmRsZXIoKS50YWJzVG9MaW5rcygmZXZlbnQpKQorICAgIGlmICghZG9jdW1lbnQoKS5mcmFtZSgp
LT5ldmVudEhhbmRsZXIoKS50YWJzVG9MaW5rcyhldmVudCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIGlmICghcmVuZGVyZXIoKSAmJiBhbmNlc3RvcnNPZlR5cGU8SFRNTENhbnZhc0Vs
ZW1lbnQ+KCp0aGlzKS5maXJzdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1D
b250cm9sRWxlbWVudC5jcHAKaW5kZXggZWE4YTNiMzNlMDAyNzgzMmQ2NzBmOWUwOTg3YWNjYThk
MzY4YmFhMi4uNjJjMjg2MTdhZTM1ZGU2NzMyZmZhMDY2MzM4ZmUzMTgxNjU0NmNhOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCkBAIC0zNzAs
MTAgKzM3MCw5IEBAIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNGb2N1c2FibGUoKSBj
b25zdAogCiBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUo
S2V5Ym9hcmRFdmVudCYgZXZlbnQpIGNvbnN0CiB7Ci0gICAgaWYgKGlzRm9jdXNhYmxlKCkpCi0g
ICAgICAgIGlmIChkb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgICAgICByZXR1cm4gZG9jdW1l
bnQoKS5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS50YWJzVG9BbGxGb3JtQ29udHJvbHMoJmV2ZW50
KTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzRm9jdXNhYmxlKCkKKyAgICAgICAg
JiYgZG9jdW1lbnQoKS5mcmFtZSgpCisgICAgICAgICYmIGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZl
bnRIYW5kbGVyKCkudGFic1RvQWxsRm9ybUNvbnRyb2xzKGV2ZW50KTsKIH0KIAogYm9vbCBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50Ojppc01vdXNlRm9jdXNhYmxlKCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCmluZGV4IGQ4YTc5M2UzMGViZjFiYzMzYjFhMzJh
MmYyY2QxY2Y3YjkxODlkYmMuLmE5ZGI5MDUxOGRlNzEwMGY4NjFhZmNkZGJhNmQyNjc1YTIwZTNi
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcApAQCAtMTcxLDcg
KzE3MSw3IEBAIGJvb2wgSFRNTFZpZGVvRWxlbWVudDo6c3VwcG9ydHNGdWxsc2NyZWVuKEhUTUxN
ZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5f
QVBJKQogICAgIC8vIElmIHRoZSBmdWxsIHNjcmVlbiBBUEkgaXMgZW5hYmxlZCBhbmQgaXMgc3Vw
cG9ydGVkIGZvciB0aGUgY3VycmVudCBlbGVtZW50CiAgICAgLy8gZG8gbm90IHJlcXVpcmUgdGhh
dCB0aGUgcGxheWVyIGhhcyBhIHZpZGVvIHRyYWNrIHRvIGVudGVyIGZ1bGwgc2NyZWVuLgotICAg
IGlmICh2aWRlb0Z1bGxzY3JlZW5Nb2RlID09IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9G
dWxsc2NyZWVuTW9kZVN0YW5kYXJkICYmIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnN1cHBvcnRz
RnVsbFNjcmVlbkZvckVsZW1lbnQodGhpcywgZmFsc2UpKQorICAgIGlmICh2aWRlb0Z1bGxzY3Jl
ZW5Nb2RlID09IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5k
YXJkICYmIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1l
bnQoKnRoaXMsIGZhbHNlKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5kaWYKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCmluZGV4IDU4
YmQ2MmEzNjQ0N2YxMTQ5OGMzZDhjOTk1N2YxY2QxZjczYjBlNzcuLjk4YmQ3MmJmZjJkMGRmODA2
YWIwYWJmNTM3YmFlNjkwNzIyODQ4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3No
YWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCB2b2lkIFNwaW5C
dXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKICAgICAgICAg
ICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLnNldENhcHR1cmluZ01vdXNlRXZlbnRz
RWxlbWVudCh0aGlzKTsKICAgICAgICAgICAgICAgICAgICAgbV9jYXB0dXJpbmcgPSB0cnVlOwog
ICAgICAgICAgICAgICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpKQot
ICAgICAgICAgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkucmVnaXN0ZXJQb3B1cE9wZW5p
bmdPYnNlcnZlcih0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgp
LnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoKnRoaXMpOwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIFVwRG93blN0YXRlIG9sZFVwRG93blN0YXRlID0g
bV91cERvd25TdGF0ZTsKQEAgLTIwNSw3ICsyMDUsNyBAQCB2b2lkIFNwaW5CdXR0b25FbGVtZW50
OjpyZWxlYXNlQ2FwdHVyZSgpCiAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2V0
Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KG51bGxwdHIpOwogICAgICAgICAgICAgbV9jYXB0
dXJpbmcgPSBmYWxzZTsKICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS5w
YWdlKCkpCi0gICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkudW5yZWdpc3RlclBvcHVwT3Bl
bmluZ09ic2VydmVyKHRoaXMpOworICAgICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLnVucmVn
aXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcigqdGhpcyk7CiAgICAgICAgIH0KICAgICB9CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1
dHRvbkVsZW1lbnRNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcAppbmRleCBmZDBjM2UzNmYzOTMzNDFkYmRhYTE4
YzAzMWUxYjFlNzQ4N2VmY2M5Li5iYTliYWRmZTU2MmU0YmZlN2Y5ZTE0ZjBhNmI1ZWQxOWI1MGFh
M2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250
cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAKQEAgLTExNyw3ICsxMTcsNyBA
QCB2b2lkIEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjpkZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50JiBldmVudCkKICAgICAgICAgaWYgKCFwYWdlKQogICAgICAgICAgICAgcmV0dXJuOwog
Ci0gICAgICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dJbWFnZUNvbnRyb2xz
TWVudSgmZXZlbnQpOworICAgICAgICBwYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93
SW1hZ2VDb250cm9sc01lbnUoZXZlbnQpOwogICAgICAgICBldmVudC5zZXREZWZhdWx0SGFuZGxl
ZCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAppbmRleCAzMTU0N2RiN2FmM2I1M2ZkN2Vi
NDI0MWM3MDU0M2Y4ZjRiNjZiMTdlLi43NDk4OGNiNWU2MDQ4NzIwODg5M2IwMzE2MDFjYmE4MjM0
YmI5M2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LmNwcApAQCAtMzM5LDggKzMzOSw4IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRI
b3N0OjpzaG93Q29udGV4dE1lbnUoRXZlbnQqIGV2ZW50LCBjb25zdCBWZWN0b3I8Q29udGV4dE1l
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byBtZW51UHJvdmlkZXIgPSBGcm9udGVu
ZE1lbnVQcm92aWRlcjo6Y3JlYXRlKHRoaXMsIHsgJnN0YXRlLCBmcm9udGVuZEFwaU9iamVjdCB9
LCBpdGVtcyk7Ci0gICAgbV9mcm9udGVuZFBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNo
b3dDb250ZXh0TWVudShldmVudCwgbWVudVByb3ZpZGVyLnB0cigpKTsKICAgICBtX21lbnVQcm92
aWRlciA9IG1lbnVQcm92aWRlci5wdHIoKTsKKyAgICBtX2Zyb250ZW5kUGFnZS0+Y29udGV4dE1l
bnVDb250cm9sbGVyKCkuc2hvd0NvbnRleHRNZW51KCpldmVudCwgbWVudVByb3ZpZGVyKTsKIH0K
IAogI2VuZGlmCkBAIC0zNTUsNyArMzU1LDcgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6
OmRpc3BhdGNoRXZlbnRBc0NvbnRleHRNZW51RXZlbnQoRXZlbnQqIGV2ZW50KQogICAgIE1vdXNl
RXZlbnQmIG1vdXNlRXZlbnQgPSBkb3duY2FzdDxNb3VzZUV2ZW50PigqZXZlbnQpOwogICAgIElu
dFBvaW50IG1vdXNlUG9pbnQgPSBJbnRQb2ludChtb3VzZUV2ZW50LmNsaWVudFgoKSwgbW91c2VF
dmVudC5jbGllbnRZKCkpOwogCi0gICAgbV9mcm9udGVuZFBhZ2UtPmNvbnRleHRNZW51Q29udHJv
bGxlcigpLnNob3dDb250ZXh0TWVudUF0KGZyYW1lLCBtb3VzZVBvaW50KTsKKyAgICBtX2Zyb250
ZW5kUGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0NvbnRleHRNZW51QXQoKmZyYW1l
LCBtb3VzZVBvaW50KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGV2ZW50KTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCBlNzU0OTVmZDQyNGMyM2U4
OTUzNmNhOGQ0MzM5MDUzYmQ0ZTExYmJkLi41Nzc5MGI1MGNmY2RhNGE1MmYwYzRjMDJlYjU3YWIy
MzNhNmQ1N2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApAQCAtNTcy
LDE5ICs1NzIsMTkgQEAgY2xhc3MgRW1wdHlWaXNpdGVkTGlua1N0b3JlIGZpbmFsIDogcHVibGlj
IFZpc2l0ZWRMaW5rU3RvcmUgewogICAgIHZvaWQgYWRkVmlzaXRlZExpbmsoUGFnZSYsIExpbmtI
YXNoKSBmaW5hbCB7IH0KIH07CiAKLVJlZlB0cjxQb3B1cE1lbnU+IEVtcHR5Q2hyb21lQ2xpZW50
OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QKK1JlZlB0cjxQb3B1cE1l
bnU+IEVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Jikg
Y29uc3QKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVBvcHVwTWVudSk7CiB9CiAK
LVJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IEVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QKK1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+
IEVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
JikgY29uc3QKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVNlYXJjaFBvcHVwTWVu
dSk7CiB9CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKIAotc3RkOjp1bmlxdWVfcHRy
PENvbG9yQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xv
ckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYpCitzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9v
c2VyPiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNs
aWVudCYsIGNvbnN0IENvbG9yJikKIHsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA5MWMyZDM4NjkwMTBkYTVlYTQzZDAwOWNkMGYx
M2UwYjc4ZTdjZmY1Li5jOWViZWE0OGM4ZmE2OWE2ZjU2NzE1ODVjYjZkYjY0YjkzNjA2YTRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC02MSw3ICs2MSw3IEBAIGNsYXNz
IEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAgICAgdm9pZCBmb2N1
c2VkRWxlbWVudENoYW5nZWQoRWxlbWVudCopIGZpbmFsIHsgfQogICAgIHZvaWQgZm9jdXNlZEZy
YW1lQ2hhbmdlZChGcmFtZSopIGZpbmFsIHsgfQogCi0gICAgUGFnZSogY3JlYXRlV2luZG93KEZy
YW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29u
c3QgTmF2aWdhdGlvbkFjdGlvbiYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICBQYWdl
KiBjcmVhdGVXaW5kb3coRnJhbWUmLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2lu
ZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWwgeyByZXR1cm4gbnVs
bHB0cjsgfQogICAgIHZvaWQgc2hvdygpIGZpbmFsIHsgfQogCiAgICAgYm9vbCBjYW5SdW5Nb2Rh
bCgpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CkBAIC04NCwxOSArODQsMTkgQEAgY2xhc3MgRW1w
dHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lkIGFkZE1lc3Nh
Z2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmLCB1
bnNpZ25lZCwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQogCiAgICAgYm9vbCBj
YW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQot
ICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYsIEZyYW1l
KikgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsKGNvbnN0IFN0cmluZyYsIEZyYW1lJikgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAg
ICAgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgcnVuSmF2YVNj
cmlwdEFsZXJ0KEZyYW1lKiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9Ci0gICAgYm9vbCBydW5K
YXZhU2NyaXB0Q29uZmlybShGcmFtZSosIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQor
ICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmLCBjb25zdCBTdHJpbmcmKSBmaW5h
bCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSYs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFN0cmluZyYpIGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9CiAKICAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkg
ZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xs
b3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJv
b2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQotICAgIFJl
ZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBm
aW5hbDsKLSAgICBSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUo
UG9wdXBNZW51Q2xpZW50KikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFBvcHVwTWVudT4gY3Jl
YXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxT
ZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBj
b25zdCBmaW5hbDsKIAogICAgIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSBm
aW5hbCB7IH0KIApAQCAtMTIwLDI5ICsxMjAsMjkgQEAgY2xhc3MgRW1wdHlDaHJvbWVDbGllbnQg
OiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICBJbnRSZWN0IHJvb3RWaWV3VG9BY2Nlc3NpYmls
aXR5U2NyZWVuKGNvbnN0IEludFJlY3QmIHIpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHI7IH07CiAj
ZW5kaWYKICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gMDsgfQotICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSos
IGNvbnN0IEludFNpemUmKSBjb25zdCBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbnRlbnRzU2l6ZUNo
YW5nZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3QgZmluYWwgeyB9CiAKICAgICB2b2lk
IHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgZmluYWwgeyB9CiAgICAgdm9pZCBtb3Vz
ZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQpIGZpbmFs
IHsgfQogCiAgICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rpb24p
IGZpbmFsIHsgfQogCi0gICAgdm9pZCBwcmludChGcmFtZSopIGZpbmFsIHsgfQorICAgIHZvaWQg
cHJpbnQoRnJhbWUmKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3Rh
KEZyYW1lKiwgY29uc3QgU3RyaW5nJiwgRGF0YWJhc2VEZXRhaWxzKSBmaW5hbCB7IH0KKyAgICB2
b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSYsIGNvbnN0IFN0cmluZyYsIERhdGFiYXNl
RGV0YWlscykgZmluYWwgeyB9CiAKICAgICB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50
NjRfdCkgZmluYWwgeyB9Ci0gICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCkgZmluYWwgeyB9CisgICAgdm9pZCByZWFjaGVk
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCkgZmlu
YWwgeyB9CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50Kiwg
Y29uc3QgQ29sb3ImKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBj
cmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3QgQ29sb3ImKSBmaW5h
bDsKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYp
IGZpbmFsOwogICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYs
IEZpbGVJY29uTG9hZGVyJikgZmluYWwgeyB9CiAKLSAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhj
b25zdCBOb2RlKikgZmluYWwgeyB9Ci0gICAgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBOb2Rl
KikgZmluYWwgeyB9CisgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoRWxlbWVudCYpIGZpbmFsIHsg
fQorICAgIHZvaWQgZWxlbWVudERpZEJsdXIoRWxlbWVudCYpIGZpbmFsIHsgfQogCiAjaWYgIVBM
QVRGT1JNKElPUykKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKSBmaW5hbCB7IH0K
QEAgLTE1MSw4ICsxNTEsOCBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJv
bWVDbGllbnQgewogCiAgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYp
IGNvbnN0IGZpbmFsIHsgfQogCi0gICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFt
ZSosIEdyYXBoaWNzTGF5ZXIqKSBmaW5hbCB7IH0KLSAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5
R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSBmaW5hbCB7IH0KKyAgICB2b2lk
IGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopIGZpbmFsIHsg
fQorICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhp
Y3NMYXllciopIGZpbmFsIHsgfQogICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNo
cm9uaXphdGlvbigpIGZpbmFsIHsgfQogICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVy
Rmx1c2goKSBmaW5hbCB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5k
ZXggMTRkNDdkYTk3MmU5MjgzNjlhYzgxM2NmOTYxODQ3NGYxYWYwMDE4NS4uNzhkZmYwYzQzYzVm
YjAxMWM3ODBhNDQ3YTliNjkyYzQ0YWZkNDNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuY3BwCkBAIC0zOTcsNyArMzk3LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3VibWl0Rm9y
bShSZWY8Rm9ybVN1Ym1pc3Npb24+JiYgc3VibWlzc2lvbikKIAogICAgIEZyYW1lKiB0YXJnZXRG
cmFtZSA9IGZpbmRGcmFtZUZvck5hdmlnYXRpb24oc3VibWlzc2lvbi0+dGFyZ2V0KCksICZzdWJt
aXNzaW9uLT5zdGF0ZSgpLnNvdXJjZURvY3VtZW50KCkpOwogICAgIGlmICghdGFyZ2V0RnJhbWUp
IHsKLSAgICAgICAgaWYgKCFET01XaW5kb3c6OmFsbG93UG9wVXAoJm1fZnJhbWUpICYmICFTY3Jp
cHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKKyAgICAgICAgaWYgKCFET01X
aW5kb3c6OmFsbG93UG9wVXAobV9mcmFtZSkgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3Np
bmdVc2VyR2VzdHVyZSgpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIC8vIEZJWE1F
OiB0YXJnZXRGcmFtZSBjYW4gYmUgbnVsbCBmb3IgdHdvIGRpc3RpbmN0IHJlYXNvbnM6CkBAIC0x
ODUyLDExICsxODUyLDkgQEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlzaW9uYWxMb2Fk
KCkKICAgICAgICAgaGlzdG9yeSgpLnVwZGF0ZUZvckNsaWVudFJlZGlyZWN0KCk7CiAKICAgICBp
ZiAobV9sb2FkaW5nRnJvbUNhY2hlZFBhZ2UpIHsKLSNpZiBQTEFURk9STShJT1MpCiAgICAgICAg
IC8vIE5vdGUsIGRpZFJlY2VpdmVEb2NUeXBlIGlzIGV4cGVjdGVkIHRvIGJlIGNhbGxlZCBmb3Ig
Y2FjaGVkIHBhZ2VzLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzU5MDY3NTg+IGZvciBtb3JlIGRldGFp
bHMuCi0gICAgICAgIGlmIChtX2ZyYW1lLmRvY3VtZW50KCktPmRvY3R5cGUoKSAmJiBtX2ZyYW1l
LnBhZ2UoKSkKLSAgICAgICAgICAgIG1fZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5kaWRSZWNlaXZl
RG9jVHlwZSgmbV9mcmFtZSk7Ci0jZW5kaWYKKyAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2Zy
YW1lLnBhZ2UoKSkKKyAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBl
KG1fZnJhbWUpOwogICAgICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnJlc3VtZShBY3RpdmVET01P
YmplY3Q6OlBhZ2VDYWNoZSk7CiAKICAgICAgICAgLy8gRm9yY2UgYSBsYXlvdXQgdG8gdXBkYXRl
IHZpZXcgc2l6ZSBhbmQgdGhlcmVieSB1cGRhdGUgc2Nyb2xsYmFycy4KQEAgLTI0MzksMTUgKzI0
MzcsMTUgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGV0YWNoQ2hpbGRyZW4oKQogICAgICAgICBjaGls
ZC0+bG9hZGVyKCkuZGV0YWNoRnJvbVBhcmVudCgpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyOjpj
bG9zZUFuZFJlbW92ZUNoaWxkKEZyYW1lKiBjaGlsZCkKK3ZvaWQgRnJhbWVMb2FkZXI6OmNsb3Nl
QW5kUmVtb3ZlQ2hpbGQoRnJhbWUmIGNoaWxkKQogewotICAgIGNoaWxkLT50cmVlKCkuZGV0YWNo
RnJvbVBhcmVudCgpOworICAgIGNoaWxkLnRyZWUoKS5kZXRhY2hGcm9tUGFyZW50KCk7CiAKLSAg
ICBjaGlsZC0+c2V0VmlldyhudWxscHRyKTsKLSAgICBpZiAoY2hpbGQtPm93bmVyRWxlbWVudCgp
ICYmIGNoaWxkLT5wYWdlKCkpCi0gICAgICAgIGNoaWxkLT5wYWdlKCktPmRlY3JlbWVudFN1YmZy
YW1lQ291bnQoKTsKLSAgICBjaGlsZC0+d2lsbERldGFjaFBhZ2UoKTsKLSAgICBjaGlsZC0+ZGV0
YWNoRnJvbVBhZ2UoKTsKKyAgICBjaGlsZC5zZXRWaWV3KG51bGxwdHIpOworICAgIGlmIChjaGls
ZC5vd25lckVsZW1lbnQoKSAmJiBjaGlsZC5wYWdlKCkpCisgICAgICAgIGNoaWxkLnBhZ2UoKS0+
ZGVjcmVtZW50U3ViZnJhbWVDb3VudCgpOworICAgIGNoaWxkLndpbGxEZXRhY2hQYWdlKCk7Cisg
ICAgY2hpbGQuZGV0YWNoRnJvbVBhZ2UoKTsKIAogICAgIG1fZnJhbWUudHJlZSgpLnJlbW92ZUNo
aWxkKGNoaWxkKTsKIH0KQEAgLTI1MjgsNyArMjUyNiw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmRl
dGFjaEZyb21QYXJlbnQoKQogICAgIG1fcHJvZ3Jlc3NUcmFja2VyID0gbnVsbHB0cjsKIAogICAg
IGlmIChGcmFtZSogcGFyZW50ID0gbV9mcmFtZS50cmVlKCkucGFyZW50KCkpIHsKLSAgICAgICAg
cGFyZW50LT5sb2FkZXIoKS5jbG9zZUFuZFJlbW92ZUNoaWxkKCZtX2ZyYW1lKTsKKyAgICAgICAg
cGFyZW50LT5sb2FkZXIoKS5jbG9zZUFuZFJlbW92ZUNoaWxkKG1fZnJhbWUpOwogICAgICAgICBw
YXJlbnQtPmxvYWRlcigpLnNjaGVkdWxlQ2hlY2tDb21wbGV0ZWQoKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBtX2ZyYW1lLnNldFZpZXcobnVsbHB0cik7CkBAIC0zMDMyLDcgKzMwMzAsNyBAQCBi
b29sIEZyYW1lTG9hZGVyOjpkaXNwYXRjaEJlZm9yZVVubG9hZEV2ZW50KENocm9tZSYgY2hyb21l
LCBGcmFtZUxvYWRlciogZnJhbWVMbwogICAgIGZyYW1lTG9hZGVyQmVpbmdOYXZpZ2F0ZWQtPm1f
Y3VycmVudE5hdmlnYXRpb25IYXNTaG93bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCA9IHRydWU7
CiAKICAgICBTdHJpbmcgdGV4dCA9IGRvY3VtZW50LT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVu
Y29kaW5nKGJlZm9yZVVubG9hZEV2ZW50LT5yZXR1cm5WYWx1ZSgpKTsKLSAgICByZXR1cm4gY2hy
b21lLnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCh0ZXh0LCAmbV9mcmFtZSk7CisgICAgcmV0
dXJuIGNocm9tZS5ydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwodGV4dCwgbV9mcmFtZSk7CiB9
CiAKIHZvaWQgRnJhbWVMb2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVyTmF2aWdhdGlvblBvbGljeShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBib29s
IHNob3VsZENvbnRpbnVlLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwgYWxsb3dOYXZpZ2F0
aW9uVG9JbnZhbGlkVVJMKQpAQCAtMzY1Nyw3ICszNjU1LDcgQEAgUmVmUHRyPEZyYW1lPiBjcmVh
dGVXaW5kb3coRnJhbWUmIG9wZW5lckZyYW1lLCBGcmFtZSYgbG9va3VwRnJhbWUsIGNvbnN0IEZy
YW1lTG8KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBzaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5VG9BcHBseShvcGVuZXJGcmFtZSwgcmVxdWVzdC5zaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5KCkpOwotICAgIFBhZ2UqIHBhZ2UgPSBvbGRQYWdlLT5jaHJvbWUoKS5jcmVh
dGVXaW5kb3coJm9wZW5lckZyYW1lLCByZXF1ZXN0V2l0aFJlZmVycmVyLCBmZWF0dXJlcywgTmF2
aWdhdGlvbkFjdGlvbihyZXF1ZXN0V2l0aFJlZmVycmVyLnJlc291cmNlUmVxdWVzdCgpLCBzaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KSk7CisgICAgUGFnZSogcGFnZSA9IG9sZFBhZ2UtPmNo
cm9tZSgpLmNyZWF0ZVdpbmRvdyhvcGVuZXJGcmFtZSwgcmVxdWVzdFdpdGhSZWZlcnJlciwgZmVh
dHVyZXMsIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdFdpdGhSZWZlcnJlci5yZXNvdXJjZVJlcXVl
c3QoKSwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkpOwogICAgIGlmICghcGFnZSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTM3MDUsNyArMzcwMyw3IEBAIFJlZlB0cjxGcmFt
ZT4gY3JlYXRlV2luZG93KEZyYW1lJiBvcGVuZXJGcmFtZSwgRnJhbWUmIGxvb2t1cEZyYW1lLCBj
b25zdCBGcmFtZUxvCiAgICAgICAgIHdpbmRvd1JlY3Quc2V0SGVpZ2h0KCpmZWF0dXJlcy5oZWln
aHQgKyAod2luZG93UmVjdC5oZWlnaHQoKSAtIHZpZXdwb3J0U2l6ZS5oZWlnaHQoKSkpOwogCiAg
ICAgLy8gRW5zdXJlIG5vbi1OYU4gdmFsdWVzLCBtaW5pbXVtIHNpemUgYXMgd2VsbCBhcyBiZWlu
ZyB3aXRoaW4gdmFsaWQgc2NyZWVuIGFyZWEuCi0gICAgRmxvYXRSZWN0IG5ld1dpbmRvd1JlY3Qg
PSBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QocGFnZSwgd2luZG93UmVjdCk7CisgICAgRmxv
YXRSZWN0IG5ld1dpbmRvd1JlY3QgPSBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoKnBhZ2Us
IHdpbmRvd1JlY3QpOwogCiAgICAgaWYgKCFmcmFtZS0+cGFnZSgpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5o
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggZmFhMDcxMmZhNGQy
NDc4N2ZhNTVkNDg0YzU0NTQyNjViYTUxYjYyYi4uZDY5YzgyOWM0ZTJmNmFiZjk0Y2UxYjQwNTY0
NzdlYzZiOTBiNjk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTM2Niw3
ICszNjYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVxdWVzdEZyb21EZWxlZ2F0ZShSZXNvdXJj
ZVJlcXVlc3QmLCB1bnNpZ25lZCBsb25nJiBpZGVudGlmaWVyLCBSZXNvdXJjZUVycm9yJik7CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRldGFjaENoaWxkcmVuKCk7Ci0gICAgdm9pZCBjbG9z
ZUFuZFJlbW92ZUNoaWxkKEZyYW1lKik7CisgICAgdm9pZCBjbG9zZUFuZFJlbW92ZUNoaWxkKEZy
YW1lJik7CiAKICAgICB2b2lkIGxvYWRJblNhbWVEb2N1bWVudChjb25zdCBVUkwmLCBTZXJpYWxp
emVkU2NyaXB0VmFsdWUqIHN0YXRlT2JqZWN0LCBib29sIGlzTmV3TmF2aWdhdGlvbik7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAppbmRleCBiYmI2MWViNDgyMTIxOTgz
YWJlYjU3YmNlNGU4NDczNGI3ZmU2MjIzLi5hMDFjZTI5MjlhMTAxMDYwMDRhMjRlNzRhNjA4Yjhj
ZDc2NzYxYTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCkBAIC0x
NTcsNyArMTU3LDcgQEAgdm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeShj
b25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIGNvbnN0IFIKICAgICBpZiAobV9mcmFtZS5k
b2N1bWVudCgpICYmIG1fZnJhbWUuZG9jdW1lbnQoKS0+aXNTYW5kYm94ZWQoU2FuZGJveFBvcHVw
cykpCiAgICAgICAgIHJldHVybiBjb250aW51ZUFmdGVyTmF2aWdhdGlvblBvbGljeShQb2xpY3lJ
Z25vcmUpOwogCi0gICAgaWYgKCFET01XaW5kb3c6OmFsbG93UG9wVXAoJm1fZnJhbWUpKQorICAg
IGlmICghRE9NV2luZG93OjphbGxvd1BvcFVwKG1fZnJhbWUpKQogICAgICAgICByZXR1cm4gY29u
dGludWVBZnRlck5hdmlnYXRpb25Qb2xpY3koUG9saWN5SWdub3JlKTsKIAogICAgIG1fY2FsbGJh
Y2suc2V0KHJlcXVlc3QsIGZvcm1TdGF0ZSwgZnJhbWVOYW1lLCBhY3Rpb24sIFdURk1vdmUoZnVu
Y3Rpb24pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlR3JvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKaW5kZXggOGEyOGY4OGU2NjczZGIxNzAyYjE0NDE0ZmFm
NzM4YjVjNzQyZmNlZi4uOWY5YWIwMDBjZjZkOTM4NWY4YTI1OGY1MTUxYjg3MGY3MjkwZDhhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVHcm91cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVHcm91cC5jcHAKQEAgLTc4NCw3ICs3ODQsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2Fj
aGVHcm91cDo6Y2FjaGVVcGRhdGVGYWlsZWQoKQogCiB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91
cDo6cmVjYWxjdWxhdGVBdmFpbGFibGVTcGFjZUluUXVvdGEoKQogewotICAgIGlmICghbV9mcmFt
ZS0+cGFnZSgpLT5hcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSgpLmNhbGN1bGF0ZVJlbWFpbmluZ1Np
emVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShtX29yaWdpbi5nZXQoKSwgbV9uZXdlc3RDYWNoZS5n
ZXQoKSwgbV9hdmFpbGFibGVTcGFjZUluUXVvdGEpKSB7CisgICAgaWYgKCFtX2ZyYW1lLT5wYWdl
KCktPmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlKCkuY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9y
aWdpbkV4Y2x1ZGluZ0NhY2hlKG1fb3JpZ2luLCBtX25ld2VzdENhY2hlLmdldCgpLCBtX2F2YWls
YWJsZVNwYWNlSW5RdW90YSkpIHsKICAgICAgICAgLy8gRmFpbGVkIHRvIGRldGVybWluZSB3aGF0
IGlzIGxlZnQgaW4gdGhlIHF1b3RhLiBGYWxsYmFjayB0byBhbGxvd2luZyBhbnl0aGluZy4KICAg
ICAgICAgbV9hdmFpbGFibGVTcGFjZUluUXVvdGEgPSBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6
bm9RdW90YSgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBj
YWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAppbmRleCBmYzg1MWRhN2NmYThjNDMzMmY2ODVl
YTI5MTIyZTM3ZDRkYjdhYWEyLi5jZWI4M2RmYzYyMTZmZTU1ODQyNzdjOWY5YWFlNTY2MDhkN2M0
ZDBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZUdyb3VwLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVHcm91cC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKIAogICAgIEFwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlJiBzdG9yYWdlKCkgeyByZXR1cm4gbV9zdG9yYWdlOyB9CiAgICAg
Y29uc3QgVVJMJiBtYW5pZmVzdFVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFuaWZlc3RVUkw7IH0K
LSAgICBjb25zdCBTZWN1cml0eU9yaWdpbiogb3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmln
aW4uZ2V0KCk7IH0KKyAgICBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luKCkgY29uc3QgeyBy
ZXR1cm4gbV9vcmlnaW4uZ2V0KCk7IH0KICAgICBVcGRhdGVTdGF0dXMgdXBkYXRlU3RhdHVzKCkg
Y29uc3QgeyByZXR1cm4gbV91cGRhdGVTdGF0dXM7IH0KICAgICB2b2lkIHNldFVwZGF0ZVN0YXR1
cyhVcGRhdGVTdGF0dXMgc3RhdHVzKTsKIApAQCAtMTM1LDcgKzEzNSw3IEBAIHByaXZhdGU6CiAg
ICAgUmVmPEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlPiBtX3N0b3JhZ2U7CiAKICAgICBVUkwgbV9t
YW5pZmVzdFVSTDsKLSAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fb3JpZ2luOworICAgIFJl
ZjxTZWN1cml0eU9yaWdpbj4gbV9vcmlnaW47CiAgICAgVXBkYXRlU3RhdHVzIG1fdXBkYXRlU3Rh
dHVzIHsgSWRsZSB9OwogICAgIAogICAgIC8vIFRoaXMgaXMgdGhlIG5ld2VzdCBjb21wbGV0ZSBj
YWNoZSBpbiB0aGUgZ3JvdXAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAppbmRleCBmNGZhOTViNTE3ZWM3
NzkxNjI0ZmMwZjI1YTY1NmIwYzA5NDQxNDc3Li5iNmI5ZDdhN2NkNjNjMDc2YWU3YTg0MTA5OTk4
MGI0M2VmODdiNmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKQEAgLTQyMSw3ICs0MjEsNyBAQCB2
b2lkIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzZXREZWZhdWx0T3JpZ2luUXVvdGEoaW50NjRf
dCBxdW90YSkKICAgICBtX2RlZmF1bHRPcmlnaW5RdW90YSA9IHF1b3RhOwogfQogCi1ib29sIEFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjYWxjdWxhdGVRdW90YUZvck9yaWdpbihjb25zdCBTZWN1
cml0eU9yaWdpbiogb3JpZ2luLCBpbnQ2NF90JiBxdW90YSkKK2Jvb2wgQXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2U6OmNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBv
cmlnaW4sIGludDY0X3QmIHF1b3RhKQogewogICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVz
c0F1dG9Db3VudGVyIHRyYW5zYWN0aW9uQ291bnRlcjsKIApAQCAtNDMyLDcgKzQzMiw3IEBAIGJv
b2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0
IFNlY3VyaXR5T3JpZ2luKiBvcmlnCiAgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FM
SVRFX09LKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBzdGF0ZW1lbnQuYmluZFRleHQo
MSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKm9yaWdpbikuZGF0YWJh
c2VJZGVudGlmaWVyKCkpOworICAgIHN0YXRlbWVudC5iaW5kVGV4dCgxLCBTZWN1cml0eU9yaWdp
bkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihvcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpKTsK
ICAgICBpbnQgcmVzdWx0ID0gc3RhdGVtZW50LnN0ZXAoKTsKIAogICAgIC8vIFJldHVybiB0aGUg
cXVvdGEsIG9yIGlmIGl0IHdhcyBudWxsIHRoZSBkZWZhdWx0LgpAQCAtNDcyLDcgKzQ3Miw3IEBA
IGJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0ZVVzYWdlRm9yT3JpZ2luKGNv
bnN0IFNlY3VyaXR5T3JpZ2luKiBvcmlnCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEFw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhj
bHVkaW5nQ2FjaGUoY29uc3QgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgQXBwbGljYXRpb25DYWNo
ZSogY2FjaGUsIGludDY0X3QmIHJlbWFpbmluZ1NpemUpCitib29sIEFwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlOjpjYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUoY29u
c3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgQXBwbGljYXRpb25DYWNoZSogY2FjaGUsIGludDY0
X3QmIHJlbWFpbmluZ1NpemUpCiB7CiAgICAgU1FMaXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0
b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOwogCkBAIC01MDMsNyArNTAzLDcgQEAgYm9vbCBB
cHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4
Y2x1ZGluZ0NhY2hlKGNvbnMKICAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVf
T0spCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHN0YXRlbWVudC5iaW5kVGV4dCgxLCBT
ZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbigqb3JpZ2luKS5kYXRhYmFzZUlk
ZW50aWZpZXIoKSk7CisgICAgc3RhdGVtZW50LmJpbmRUZXh0KDEsIFNlY3VyaXR5T3JpZ2luRGF0
YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKG9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogICAg
IGlmIChleGNsdWRpbmdDYWNoZUlkZW50aWZpZXIgIT0gMCkKICAgICAgICAgc3RhdGVtZW50LmJp
bmRJbnQ2NCgyLCBleGNsdWRpbmdDYWNoZUlkZW50aWZpZXIpOwogICAgIGludCByZXN1bHQgPSBz
dGF0ZW1lbnQuc3RlcCgpOwpAQCAtNjg4LDE0ICs2ODgsMTQgQEAgYm9vbCBBcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZTo6c3RvcmUoQXBwbGljYXRpb25DYWNoZUdyb3VwKiBncm91cCwgR3JvdXBTdG9y
YWdlSUQKIAogICAgIHN0YXRlbWVudC5iaW5kSW50NjQoMSwgdXJsSG9zdEhhc2goZ3JvdXAtPm1h
bmlmZXN0VVJMKCkpKTsKICAgICBzdGF0ZW1lbnQuYmluZFRleHQoMiwgZ3JvdXAtPm1hbmlmZXN0
VVJMKCkpOwotICAgIHN0YXRlbWVudC5iaW5kVGV4dCgzLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZy
b21TZWN1cml0eU9yaWdpbigqZ3JvdXAtPm9yaWdpbigpKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7
CisgICAgc3RhdGVtZW50LmJpbmRUZXh0KDMsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3Vy
aXR5T3JpZ2luKGdyb3VwLT5vcmlnaW4oKSkuZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogCiAgICAg
aWYgKCFleGVjdXRlU3RhdGVtZW50KHN0YXRlbWVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIHVuc2lnbmVkIGdyb3VwU3RvcmFnZUlEID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1f
ZGF0YWJhc2UubGFzdEluc2VydFJvd0lEKCkpOwogCi0gICAgaWYgKCFlbnN1cmVPcmlnaW5SZWNv
cmQoZ3JvdXAtPm9yaWdpbigpKSkKKyAgICBpZiAoIWVuc3VyZU9yaWdpblJlY29yZCgmZ3JvdXAt
Pm9yaWdpbigpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZ3JvdXAtPnNldFN0b3Jh
Z2VJRChncm91cFN0b3JhZ2VJRCk7CkBAIC05NzEsNyArOTcxLDcgQEAgYm9vbCBBcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZTo6Y2hlY2tPcmlnaW5RdW90YShBcHBsaWNhdGlvbkNhY2hlR3JvdXAqIGdy
b3VwLCBBcHAKIHsKICAgICAvLyBDaGVjayBpZiB0aGUgb2xkQ2FjaGUgd2l0aCB0aGUgbmV3Q2Fj
aGUgd291bGQgcmVhY2ggdGhlIHBlci1vcmlnaW4gcXVvdGEuCiAgICAgaW50NjRfdCByZW1haW5p
bmdTcGFjZUluT3JpZ2luOwotICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gPSBncm91
cC0+b3JpZ2luKCk7CisgICAgYXV0byYgb3JpZ2luID0gZ3JvdXAtPm9yaWdpbigpOwogICAgIGlm
IChjYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUob3JpZ2luLCBv
bGRDYWNoZSwgcmVtYWluaW5nU3BhY2VJbk9yaWdpbikpIHsKICAgICAgICAgaWYgKHJlbWFpbmlu
Z1NwYWNlSW5PcmlnaW4gPCBuZXdDYWNoZS0+ZXN0aW1hdGVkU2l6ZUluU3RvcmFnZSgpKSB7CiAg
ICAgICAgICAgICBpbnQ2NF90IHF1b3RhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaAppbmRleCA5ZmEyOTJlZTUw
ZmFlZTg5YzM1Yzg2MWE4Zjk5ZmExNmY5MDU0NzZkLi45ZDE3YTFiY2QwNmE2YWMxMTFhMGFjYWE2
MDc2NGY2YjE1NDA1MGZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaApAQCAtNjMsOCArNjMsOCBAQCBwdWJs
aWM6CiAgICAgaW50NjRfdCBkZWZhdWx0T3JpZ2luUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX2Rl
ZmF1bHRPcmlnaW5RdW90YTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RGVmYXVsdE9y
aWdpblF1b3RhKGludDY0X3QgcXVvdGEpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2FsY3Vs
YXRlVXNhZ2VGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90JiB1c2FnZSk7
Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjYWxjdWxhdGVRdW90YUZvck9yaWdpbihjb25zdCBT
ZWN1cml0eU9yaWdpbiosIGludDY0X3QmIHF1b3RhKTsKLSAgICBib29sIGNhbGN1bGF0ZVJlbWFp
bmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShjb25zdCBTZWN1cml0eU9yaWdpbiosIEFw
cGxpY2F0aW9uQ2FjaGUqLCBpbnQ2NF90JiByZW1haW5pbmdTaXplKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwg
aW50NjRfdCYgcXVvdGEpOworICAgIGJvb2wgY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdp
bkV4Y2x1ZGluZ0NhY2hlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgQXBwbGljYXRpb25DYWNoZSos
IGludDY0X3QmIHJlbWFpbmluZ1NpemUpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc3RvcmVV
cGRhdGVkUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHF1b3Rh
KTsKICAgICBib29sIGNoZWNrT3JpZ2luUXVvdGEoQXBwbGljYXRpb25DYWNoZUdyb3VwKiwgQXBw
bGljYXRpb25DYWNoZSogb2xkQ2FjaGUsIEFwcGxpY2F0aW9uQ2FjaGUqIG5ld0NhY2hlLCBpbnQ2
NF90JiB0b3RhbFNwYWNlTmVlZGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAKaW5kZXggYTkyMWIwNWU4NDZhMDVhNWFm
Y2U2MzAzYWExOGY4YmYzMDcwOWRiNC4uMmNhNjdlMjdiZTg4NDJjYzdhMjE3ZGFhOTI1NWU4MThl
ZjlhMTkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwv
TUhUTUxBcmNoaXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRt
bC9NSFRNTEFyY2hpdmUuY3BwCkBAIC0xMzMsOCArMTMzLDggQEAgUmVmUHRyPE1IVE1MQXJjaGl2
ZT4gTUhUTUxBcmNoaXZlOjpjcmVhdGUoY29uc3QgVVJMJiB1cmwsIFNoYXJlZEJ1ZmZlciYgZGF0
YSkKIFJlZlB0cjxTaGFyZWRCdWZmZXI+IE1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEo
UGFnZSogcGFnZSkKIHsKICAgICBWZWN0b3I8UGFnZVNlcmlhbGl6ZXI6OlJlc291cmNlPiByZXNv
dXJjZXM7Ci0gICAgUGFnZVNlcmlhbGl6ZXIgcGFnZVNlcmlhbGl6ZXIoJnJlc291cmNlcyk7Ci0g
ICAgcGFnZVNlcmlhbGl6ZXIuc2VyaWFsaXplKHBhZ2UpOworICAgIFBhZ2VTZXJpYWxpemVyIHBh
Z2VTZXJpYWxpemVyKHJlc291cmNlcyk7CisgICAgcGFnZVNlcmlhbGl6ZXIuc2VyaWFsaXplKCpw
YWdlKTsKIAogICAgIFN0cmluZyBib3VuZGFyeSA9IGdlbmVyYXRlUmFuZG9tQm91bmRhcnkoKTsK
ICAgICBTdHJpbmcgZW5kT2ZSZXNvdXJjZUJvdW5kYXJ5ID0gbWFrZVN0cmluZygiLS0iLCBib3Vu
ZGFyeSwgIlxyXG4iKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcAppbmRl
eCBlMTUxNzZkMzMxOWQ5NGNlMGI5YzkxZmJiZDhlYjczNzgxOTRjODY0Li5lOTcxMzk2MWNlM2I3
NDg4NGExYjNiZTNlNTBhNzM5MDYyM2Y4OWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9t
YXRobWwvTWF0aE1MRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TEVsZW1lbnQuY3BwCkBAIC0xODIsNyArMTgyLDcgQEAgYm9vbCBNYXRoTUxFbGVtZW50Ojppc0tl
eWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQmIGV2ZW50KSBjb25zdAogICAgICAgICByZXR1
cm4gU3R5bGVkRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCk7CiAKICAgICBpZiAo
aXNMaW5rKCkpCi0gICAgICAgIHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxl
cigpLnRhYnNUb0xpbmtzKCZldmVudCk7CisgICAgICAgIHJldHVybiBkb2N1bWVudCgpLmZyYW1l
KCktPmV2ZW50SGFuZGxlcigpLnRhYnNUb0xpbmtzKGV2ZW50KTsKIAogICAgIHJldHVybiBTdHls
ZWRFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmNwcAppbmRleCA3NGRkZTFhMzRlMTVlOTA5NzFhZDA4NmUyNzBiOWFhNTY5ODgyMTBiLi5lMzYz
ZjQzYWRjNmY1YmNlNDkwODQ0MDk3NTM3NDZhYTg2MWU4NGRkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
Y3BwCkBAIC00OCw3ICs0OCw2IEBACiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2lu
Y2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSA8cnVudGltZS9WTS5oPgotI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgogCkBAIC02MywxMCArNjIsNiBAQCB1c2luZyBuYW1lc3BhY2Ug
SFRNTE5hbWVzOwogQ2hyb21lOjpDaHJvbWUoUGFnZSYgcGFnZSwgQ2hyb21lQ2xpZW50JiBjbGll
bnQpCiAgICAgOiBtX3BhZ2UocGFnZSkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKLSAgICAsIG1f
ZGlzcGxheUlEKDApCi0jaWYgUExBVEZPUk0oSU9TKQotICAgICwgbV9pc0Rpc3BhdGNoVmlld3Bv
cnREYXRhRGlkQ2hhbmdlU3VwcHJlc3NlZChmYWxzZSkKLSNlbmRpZgogewogfQogCkBAIC0xMTQs
NiArMTA5LDcgQEAgSW50UmVjdCBDaHJvbWU6OnJvb3RWaWV3VG9TY3JlZW4oY29uc3QgSW50UmVj
dCYgcmVjdCkgY29uc3QKIH0KICAgICAKICNpZiBQTEFURk9STShJT1MpCisKIEludFBvaW50IENo
cm9tZTo6YWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmIHBvaW50
KSBjb25zdAogewogICAgIHJldHVybiBtX2NsaWVudC5hY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290
Vmlldyhwb2ludCk7CkBAIC0xMjMsNiArMTE5LDcgQEAgSW50UmVjdCBDaHJvbWU6OnJvb3RWaWV3
VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0CiB7CiAgICAg
cmV0dXJuIG1fY2xpZW50LnJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKHJlY3QpOwogfQor
CiAjZW5kaWYKIAogUGxhdGZvcm1QYWdlQ2xpZW50IENocm9tZTo6cGxhdGZvcm1QYWdlQ2xpZW50
KCkgY29uc3QKQEAgLTEzMCw3ICsxMjcsNyBAQCBQbGF0Zm9ybVBhZ2VDbGllbnQgQ2hyb21lOjpw
bGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogICAgIHJldHVybiBtX2NsaWVudC5wbGF0Zm9ybVBh
Z2VDbGllbnQoKTsKIH0KIAotdm9pZCBDaHJvbWU6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUq
IGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAordm9pZCBDaHJvbWU6OmNvbnRlbnRz
U2l6ZUNoYW5nZWQoRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogewog
ICAgIG1fY2xpZW50LmNvbnRlbnRzU2l6ZUNoYW5nZWQoZnJhbWUsIHNpemUpOwogfQpAQCAtMTkw
LDE1ICsxODcsMTMgQEAgdm9pZCBDaHJvbWU6OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqIGZy
YW1lKSBjb25zdAogICAgIG1fY2xpZW50LmZvY3VzZWRGcmFtZUNoYW5nZWQoZnJhbWUpOwogfQog
Ci1QYWdlKiBDaHJvbWU6OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJhbWUsIGNvbnN0IEZyYW1lTG9h
ZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uKSBjb25zdAorUGFnZSogQ2hyb21lOjpjcmVhdGVXaW5k
b3coRnJhbWUmIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBX
aW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbikg
Y29uc3QKIHsKICAgICBQYWdlKiBuZXdQYWdlID0gbV9jbGllbnQuY3JlYXRlV2luZG93KGZyYW1l
LCByZXF1ZXN0LCBmZWF0dXJlcywgYWN0aW9uKTsKICAgICBpZiAoIW5ld1BhZ2UpCi0gICAgICAg
IHJldHVybiAwOwotCi0gICAgaWYgKFN0b3JhZ2VOYW1lc3BhY2UqIG9sZFNlc3Npb25TdG9yYWdl
ID0gbV9wYWdlLnNlc3Npb25TdG9yYWdlKGZhbHNlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgaWYgKGF1dG8qIG9sZFNlc3Npb25TdG9yYWdlID0gbV9wYWdlLnNlc3Npb25TdG9yYWdl
KGZhbHNlKSkKICAgICAgICAgbmV3UGFnZS0+c2V0U2Vzc2lvblN0b3JhZ2Uob2xkU2Vzc2lvblN0
b3JhZ2UtPmNvcHkobmV3UGFnZSkpOwotCiAgICAgcmV0dXJuIG5ld1BhZ2U7CiB9CiAKQEAgLTI3
Niw3ICsyNzEsNyBAQCBib29sIENocm9tZTo6Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KCkKICAgICByZXR1cm4gbV9jbGllbnQuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCk7
CiB9CiAKLWJvb2wgQ2hyb21lOjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBGcmFtZSogZnJhbWUpCitib29sIENocm9tZTo6cnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmIGZyYW1lKQogewogICAg
IC8vIERlZmVyIGxvYWRzIGluIGNhc2UgdGhlIGNsaWVudCBtZXRob2QgcnVucyBhIG5ldyBldmVu
dCBsb29wIHRoYXQgd291bGQKICAgICAvLyBvdGhlcndpc2UgY2F1c2UgdGhlIGxvYWQgdG8gY29u
dGludWUgd2hpbGUgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBleGVjdXRpbmcgSmF2YVNjcmlwdC4K
QEAgLTI5MCw1MyArMjg1LDQ3IEBAIHZvaWQgQ2hyb21lOjpjbG9zZVdpbmRvd1Nvb24oKQogICAg
IG1fY2xpZW50LmNsb3NlV2luZG93U29vbigpOwogfQogCi12b2lkIENocm9tZTo6cnVuSmF2YVNj
cmlwdEFsZXJ0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBDaHJv
bWU6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKIHsKICAgICAvLyBEZWZlciBsb2FkcyBpbiBjYXNlIHRoZSBjbGllbnQgbWV0aG9kIHJ1bnMg
YSBuZXcgZXZlbnQgbG9vcCB0aGF0IHdvdWxkCiAgICAgLy8gb3RoZXJ3aXNlIGNhdXNlIHRoZSBs
b2FkIHRvIGNvbnRpbnVlIHdoaWxlIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgZXhlY3V0aW5nIEph
dmFTY3JpcHQuCiAgICAgUGFnZUdyb3VwTG9hZERlZmVycmVyIGRlZmVycmVyKG1fcGFnZSwgdHJ1
ZSk7CiAKLSAgICBBU1NFUlQoZnJhbWUpOwogICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVy
cygpOwotICAgIFN0cmluZyBkaXNwbGF5TWVzc2FnZSA9IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9k
aWZpZWRCeUVuY29kaW5nKG1lc3NhZ2UpOworICAgIFN0cmluZyBkaXNwbGF5TWVzc2FnZSA9IGZy
YW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcobWVzc2FnZSk7CiAKICAgICBtX2Ns
aWVudC5ydW5KYXZhU2NyaXB0QWxlcnQoZnJhbWUsIGRpc3BsYXlNZXNzYWdlKTsKIH0KIAotYm9v
bCBDaHJvbWU6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQorYm9vbCBDaHJvbWU6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiBmcmFt
ZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIC8vIERlZmVyIGxvYWRzIGluIGNhc2Ug
dGhlIGNsaWVudCBtZXRob2QgcnVucyBhIG5ldyBldmVudCBsb29wIHRoYXQgd291bGQKICAgICAv
LyBvdGhlcndpc2UgY2F1c2UgdGhlIGxvYWQgdG8gY29udGludWUgd2hpbGUgd2UncmUgaW4gdGhl
IG1pZGRsZSBvZiBleGVjdXRpbmcgSmF2YVNjcmlwdC4KICAgICBQYWdlR3JvdXBMb2FkRGVmZXJy
ZXIgZGVmZXJyZXIobV9wYWdlLCB0cnVlKTsKIAotICAgIEFTU0VSVChmcmFtZSk7CiAgICAgbm90
aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7Ci0gICAgU3RyaW5nIGRpc3BsYXlNZXNzYWdlID0g
ZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcobWVzc2FnZSk7Ci0KLSAgICBy
ZXR1cm4gbV9jbGllbnQucnVuSmF2YVNjcmlwdENvbmZpcm0oZnJhbWUsIGRpc3BsYXlNZXNzYWdl
KTsKKyAgICByZXR1cm4gbV9jbGllbnQucnVuSmF2YVNjcmlwdENvbmZpcm0oZnJhbWUsIGZyYW1l
LmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcobWVzc2FnZSkpOwogfQogCi1ib29sIENo
cm9tZTo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgcHJv
bXB0LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCitib29sIENo
cm9tZTo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgcHJv
bXB0LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCiB7CiAgICAg
Ly8gRGVmZXIgbG9hZHMgaW4gY2FzZSB0aGUgY2xpZW50IG1ldGhvZCBydW5zIGEgbmV3IGV2ZW50
IGxvb3AgdGhhdCB3b3VsZAogICAgIC8vIG90aGVyd2lzZSBjYXVzZSB0aGUgbG9hZCB0byBjb250
aW51ZSB3aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGV4ZWN1dGluZyBKYXZhU2NyaXB0Lgog
ICAgIFBhZ2VHcm91cExvYWREZWZlcnJlciBkZWZlcnJlcihtX3BhZ2UsIHRydWUpOwogCi0gICAg
QVNTRVJUKGZyYW1lKTsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKLSAgICBT
dHJpbmcgZGlzcGxheVByb21wdCA9IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29k
aW5nKHByb21wdCk7CisgICAgU3RyaW5nIGRpc3BsYXlQcm9tcHQgPSBmcmFtZS5kaXNwbGF5U3Ry
aW5nTW9kaWZpZWRCeUVuY29kaW5nKHByb21wdCk7CiAKLSAgICBib29sIG9rID0gbV9jbGllbnQu
cnVuSmF2YVNjcmlwdFByb21wdChmcmFtZSwgZGlzcGxheVByb21wdCwgZnJhbWUtPmRpc3BsYXlT
dHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcoZGVmYXVsdFZhbHVlKSwgcmVzdWx0KTsKKyAgICBib29s
IG9rID0gbV9jbGllbnQucnVuSmF2YVNjcmlwdFByb21wdChmcmFtZSwgZGlzcGxheVByb21wdCwg
ZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhkZWZhdWx0VmFsdWUpLCByZXN1
bHQpOwogICAgIGlmIChvaykKLSAgICAgICAgcmVzdWx0ID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdN
b2RpZmllZEJ5RW5jb2RpbmcocmVzdWx0KTsKKyAgICAgICAgcmVzdWx0ID0gZnJhbWUuZGlzcGxh
eVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhyZXN1bHQpOwogCiAgICAgcmV0dXJuIG9rOwogfQog
Ci12b2lkIENocm9tZTo6c2V0U3RhdHVzYmFyVGV4dChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmlu
ZyYgc3RhdHVzKQordm9pZCBDaHJvbWU6OnNldFN0YXR1c2JhclRleHQoRnJhbWUmIGZyYW1lLCBj
b25zdCBTdHJpbmcmIHN0YXR1cykKIHsKLSAgICBBU1NFUlQoZnJhbWUpOwotICAgIG1fY2xpZW50
LnNldFN0YXR1c2JhclRleHQoZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmco
c3RhdHVzKSk7CisgICAgbV9jbGllbnQuc2V0U3RhdHVzYmFyVGV4dChmcmFtZS5kaXNwbGF5U3Ry
aW5nTW9kaWZpZWRCeUVuY29kaW5nKHN0YXR1cykpOwogfQogCiB2b2lkIENocm9tZTo6bW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCB1bnNpZ25lZCBt
b2RpZmllckZsYWdzKQpAQCAtNDA3LDkgKzM5Niw5IEBAIHZvaWQgQ2hyb21lOjpzZXRUb29sVGlw
KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkKICAgICBtX2NsaWVudC5zZXRUb29sVGlwKHRv
b2xUaXAsIHRvb2xUaXBEaXJlY3Rpb24pOwogfQogCi12b2lkIENocm9tZTo6cHJpbnQoRnJhbWUq
IGZyYW1lKQordm9pZCBDaHJvbWU6OnByaW50KEZyYW1lJiBmcmFtZSkKIHsKLSAgICAvLyBGSVhN
RTogVGhpcyBzaG91bGQgaGF2ZSBQYWdlR3JvdXBMb2FkRGVmZXJyZXIsIGxpa2UgcnVuTW9kYWwo
KSBvciBydW5KYXZhU2NyaXB0QWxlcnQoKSwgYmVjYXN1ZSBpdCdzIG5vIGRpZmZlcmVudCBmcm9t
IHRob3NlLgorICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBoYXZlIFBhZ2VHcm91cExvYWREZWZl
cnJlciwgbGlrZSBydW5Nb2RhbCgpIG9yIHJ1bkphdmFTY3JpcHRBbGVydCgpLCBiZWNhdXNlIGl0
J3Mgbm8gZGlmZmVyZW50IGZyb20gdGhvc2UuCiAgICAgbV9jbGllbnQucHJpbnQoZnJhbWUpOwog
fQogCkBAIC00MjQsMTEgKzQxMywxMyBAQCB2b2lkIENocm9tZTo6ZGlzYWJsZVN1ZGRlblRlcm1p
bmF0aW9uKCkKIH0KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotc3RkOjp1bmlxdWVf
cHRyPENvbG9yQ2hvb3Nlcj4gQ2hyb21lOjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2Vy
Q2xpZW50KiBjbGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCisKK3N0ZDo6dW5pcXVl
X3B0cjxDb2xvckNob29zZXI+IENocm9tZTo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3Nl
ckNsaWVudCYgY2xpZW50LCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQogewogICAgIG5vdGlm
eVBvcHVwT3BlbmluZ09ic2VydmVycygpOwogICAgIHJldHVybiBtX2NsaWVudC5jcmVhdGVDb2xv
ckNob29zZXIoY2xpZW50LCBpbml0aWFsQ29sb3IpOwogfQorCiAjZW5kaWYKIAogdm9pZCBDaHJv
bWU6OnJ1bk9wZW5QYW5lbChGcmFtZSYgZnJhbWUsIEZpbGVDaG9vc2VyJiBmaWxlQ2hvb3NlcikK
QEAgLTUzOCwxMyArNTI5LDEzIEBAIGJvb2wgQ2hyb21lOjpoYXNPcGVuZWRQb3B1cCgpIGNvbnN0
CiAgICAgcmV0dXJuIG1fY2xpZW50Lmhhc09wZW5lZFBvcHVwKCk7CiB9CiAKLVJlZlB0cjxQb3B1
cE1lbnU+IENocm9tZTo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBj
b25zdAorUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJz
KCk7CiAgICAgcmV0dXJuIG1fY2xpZW50LmNyZWF0ZVBvcHVwTWVudShjbGllbnQpOwogfQogCi1S
ZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJvbWU6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IENocm9t
ZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAog
ewogICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpOwogICAgIHJldHVybiBtX2NsaWVu
dC5jcmVhdGVTZWFyY2hQb3B1cE1lbnUoY2xpZW50KTsKQEAgLTU1NSwzMCArNTQ2LDI3IEBAIGJv
b2wgQ2hyb21lOjpyZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkKICAgICByZXR1
cm4gbV9jbGllbnQucmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpOwogfQogCi0j
aWYgUExBVEZPUk0oSU9TKQotLy8gRklYTUU6IE1ha2UgYXJndW1lbnQsIGZyYW1lLCBhIHJlZmVy
ZW5jZS4KLXZvaWQgQ2hyb21lOjpkaWRSZWNlaXZlRG9jVHlwZShGcmFtZSogZnJhbWUpCit2b2lk
IENocm9tZTo6ZGlkUmVjZWl2ZURvY1R5cGUoRnJhbWUmIGZyYW1lKQogewotICAgIEFTU0VSVChm
cmFtZSk7Ci0gICAgaWYgKCFmcmFtZS0+aXNNYWluRnJhbWUoKSkKKyNpZiAhUExBVEZPUk0oSU9T
KQorICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7CisjZWxzZQorICAgIGlmICghZnJhbWUuaXNNYWlu
RnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBoYXNNb2JpbGVEb2NUeXBlID0g
ZmFsc2U7Ci0gICAgaWYgKERvY3VtZW50VHlwZSogZG9jdW1lbnRUeXBlID0gZnJhbWUtPmRvY3Vt
ZW50KCktPmRvY3R5cGUoKSkKLSAgICAgICAgaGFzTW9iaWxlRG9jVHlwZSA9IGRvY3VtZW50VHlw
ZS0+cHVibGljSWQoKS5jb250YWlucygieGh0bWwgbW9iaWxlIiwgZmFsc2UpOwotICAgIG1fY2xp
ZW50LmRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGhhc01vYmlsZURvY1R5cGUpOwotfQorICAgIGF1
dG8qIGRvY3R5cGUgPSBmcmFtZS5kb2N1bWVudCgpLT5kb2N0eXBlKCk7CisgICAgbV9jbGllbnQu
ZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoZG9jdHlwZSAmJiBkb2N0eXBlLT5wdWJsaWNJZCgpLmNv
bnRhaW5zSWdub3JpbmdBU0NJSUNhc2UoInhodG1sIG1vYmlsZSIpKTsKICNlbmRpZgorfQogCi12
b2lkIENocm9tZTo6cmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNl
cnZlciogb2JzZXJ2ZXIpCit2b2lkIENocm9tZTo6cmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZl
cihQb3B1cE9wZW5pbmdPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgQVNTRVJUKG9ic2VydmVy
KTsKLSAgICBtX3BvcHVwT3BlbmluZ09ic2VydmVycy5hcHBlbmQob2JzZXJ2ZXIpOworICAgIG1f
cG9wdXBPcGVuaW5nT2JzZXJ2ZXJzLmFwcGVuZCgmb2JzZXJ2ZXIpOwogfQogCi12b2lkIENocm9t
ZTo6dW5yZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyKiBv
YnNlcnZlcikKK3ZvaWQgQ2hyb21lOjp1bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9w
dXBPcGVuaW5nT2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIGJvb2wgcmVtb3ZlZCA9IG1fcG9w
dXBPcGVuaW5nT2JzZXJ2ZXJzLnJlbW92ZUZpcnN0KG9ic2VydmVyKTsKKyAgICBib29sIHJlbW92
ZWQgPSBtX3BvcHVwT3BlbmluZ09ic2VydmVycy5yZW1vdmVGaXJzdCgmb2JzZXJ2ZXIpOwogICAg
IEFTU0VSVF9VTlVTRUQocmVtb3ZlZCwgcmVtb3ZlZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmlu
ZGV4IDZkMjVhYzg5MTYwMGYyMTg0YTY1NGRhZDMyMjZkNDZjODE5MzJhNjYuLmIzYzQ2NDdjMWFl
OTUwMDUyMDc4MzQ5ZTA3NmEyOWIwZTZhZGM2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApAQCAtOTUs
NyArOTUsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJ
bnRSZWN0JikgY29uc3Q7CiAKLSAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBj
b25zdCBJbnRTaXplJikgY29uc3Q7CisgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1l
JiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRX
aW5kb3dSZWN0KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEZs
b2F0UmVjdCB3aW5kb3dSZWN0KCkgY29uc3Q7CkBAIC0xMTEsNyArMTExLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgZm9jdXNlZEVsZW1lbnRDaGFuZ2VkKEVsZW1lbnQqKSBjb25zdDsKICAgICB2b2lk
IGZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKSBjb25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JU
IFBhZ2UqIGNyZWF0ZVdpbmRvdyhGcmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25z
dCBXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBjb25zdDsKKyAgICBX
RUJDT1JFX0VYUE9SVCBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUmLCBjb25zdCBGcmFtZUxvYWRS
ZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikg
Y29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzaG93KCkgY29uc3Q7CiAKICAgICBib29s
IGNhblJ1bk1vZGFsKCkgY29uc3Q7CkBAIC0xMzIsMjYgKzEzMiwyNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRSZXNpemFibGUoYm9vbCkgY29uc3Q7CiAKICAgICBib29sIGNhblJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbCgpOwotICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUqKTsKKyAgICBib29sIHJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lJik7CiAKICAgICB2b2lk
IGNsb3NlV2luZG93U29vbigpOwogCi0gICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUq
LCBjb25zdCBTdHJpbmcmKTsKLSAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiwg
Y29uc3QgU3RyaW5nJik7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiBy
ZXN1bHQpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChGcmFtZSos
IGNvbnN0IFN0cmluZyYpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiwgY29u
c3QgU3RyaW5nJik7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYsIGNvbnN0
IFN0cmluZyYpOworICAgIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSYsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFN0YXR1c2JhclRleHQoRnJhbWUmLCBjb25z
dCBTdHJpbmcmKTsKIAogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0
VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwogCiAgICAgdm9pZCBzZXRUb29s
VGlwKGNvbnN0IEhpdFRlc3RSZXN1bHQmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJp
bnQoRnJhbWUqKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHByaW50KEZyYW1lJik7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKTsKIAogI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNy
ZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYgaW5pdGlh
bENvbG9yKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNo
b29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcik7CiAj
ZW5kaWYKIAogICAgIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNob29zZXImKTsKQEAg
LTE2OCwyOCArMTY4LDI4IEBAIHB1YmxpYzoKICAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGly
ZWN0aW9uSXNOYXR1cmFsKCk7CiAgICAgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01l
bnVXcml0aW5nRGlyZWN0aW9uKCk7CiAgICAgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0Owot
ICAgIFJlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBj
b25zdDsKLSAgICBSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUo
UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0OworICAgIFJlZlB0cjxTZWFyY2hQb3B1cE1l
bnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdDsKIAogI2lm
IFBMQVRGT1JNKElPUykKICAgICAvLyBGSVhNRTogQ2FuIHdlIGNvbWUgdXAgd2l0aCBhIGJldHRl
ciBuYW1lIGZvciB0aGlzIHNldHRlcj8KICAgICB2b2lkIHNldERpc3BhdGNoVmlld3BvcnREYXRh
RGlkQ2hhbmdlU3VwcHJlc3NlZChib29sIGRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlU3Vw
cHJlc3NlZCkgeyBtX2lzRGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkID0g
ZGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkOyB9Ci0KLSAgICB2b2lkIGRp
ZFJlY2VpdmVEb2NUeXBlKEZyYW1lKik7CiAjZW5kaWYKIAotICAgIHZvaWQgcmVnaXN0ZXJQb3B1
cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciopOwotICAgIHZvaWQgdW5yZWdp
c3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyKik7CisgICAgdm9p
ZCBkaWRSZWNlaXZlRG9jVHlwZShGcmFtZSYpOworCisgICAgdm9pZCByZWdpc3RlclBvcHVwT3Bl
bmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyJik7CisgICAgdm9pZCB1bnJlZ2lzdGVy
UG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXImKTsKIAogcHJpdmF0ZToK
ICAgICB2b2lkIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpIGNvbnN0OwogCiAgICAgUGFn
ZSYgbV9wYWdlOwogICAgIENocm9tZUNsaWVudCYgbV9jbGllbnQ7Ci0gICAgUGxhdGZvcm1EaXNw
bGF5SUQgbV9kaXNwbGF5SUQ7CisgICAgUGxhdGZvcm1EaXNwbGF5SUQgbV9kaXNwbGF5SUQgeyAw
IH07CiAgICAgVmVjdG9yPFBvcHVwT3BlbmluZ09ic2VydmVyKj4gbV9wb3B1cE9wZW5pbmdPYnNl
cnZlcnM7CiAjaWYgUExBVEZPUk0oSU9TKQotICAgIGJvb2wgbV9pc0Rpc3BhdGNoVmlld3BvcnRE
YXRhRGlkQ2hhbmdlU3VwcHJlc3NlZDsKKyAgICBib29sIG1faXNEaXNwYXRjaFZpZXdwb3J0RGF0
YURpZENoYW5nZVN1cHByZXNzZWQgeyBmYWxzZSB9OwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaAppbmRleCAyYzg5YjZjYmE1MDY4MGI5NzJkYzU1ZmM0YjI0YzQ4OTBm
YWViODI0Li44YTE2MzkxZmJiODZiY2NiNzRmZmU1YzQxZmY1YTU4NjZjZTdlYTY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTEyMyw3ICsxMjMsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gY3JlYXRlZCBQYWdlIGhhcyBpdHMgc2hvdyBtZXRob2QgY2FsbGVkLgogICAgIC8vIFRoZSBG
cmFtZUxvYWRSZXF1ZXN0IHBhcmFtZXRlciBpcyBvbmx5IGZvciBDaHJvbWVDbGllbnQgdG8gY2hl
Y2sgaWYgdGhlCiAgICAgLy8gcmVxdWVzdCBjb3VsZCBiZSBmdWxmaWxsZWQuIFRoZSBDaHJvbWVD
bGllbnQgc2hvdWxkIG5vdCBsb2FkIHRoZSByZXF1ZXN0LgotICAgIHZpcnR1YWwgUGFnZSogY3Jl
YXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0Zl
YXR1cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpID0gMDsKKyAgICB2aXJ0dWFsIFBhZ2Uq
IGNyZWF0ZVdpbmRvdyhGcmFtZSYsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5k
b3dGZWF0dXJlcyYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNob3coKSA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuTW9kYWwoKSA9IDA7CkBA
IC0xNDYsNjMgKzE0Niw2NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2VU
b0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VJRCkgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGNhblJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbCgpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUqKSA9IDA7CisgICAgdmlydHVh
bCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IEZyYW1lJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGNsb3NlV2luZG93U29vbigpID0gMDsK
IAotICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqLCBjb25zdCBTdHJp
bmcmKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiwg
Y29uc3QgU3RyaW5nJikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0
KEZyYW1lKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1
ZSwgU3RyaW5nJiByZXN1bHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcnVuSmF2YVNjcmlwdEFs
ZXJ0KEZyYW1lJiwgY29uc3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBydW5KYXZh
U2NyaXB0Q29uZmlybShGcmFtZSYsIGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJv
b2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwg
S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSA9IDA7CiAKLSAgICAvLyBNZXRob2RzIHVz
ZWQgYnkgSG9zdFdpbmRvdy4KICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNJbW1lZGlhdGVJbnZh
bGlkYXRpb24oKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
Um9vdFZpZXcoY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBj
b25zdCBJbnRSZWN0JikgPSAwOworCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAg
IHZpcnR1YWwgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmKSA9
IDA7CiAjZW5kaWYKKwogICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhjb25z
dCBJbnRQb2ludCYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEludFJlY3Qgcm9vdFZpZXdUb1Nj
cmVlbihjb25zdCBJbnRSZWN0JikgY29uc3QgPSAwOworCiAjaWYgUExBVEZPUk0oSU9TKQogICAg
IHZpcnR1YWwgSW50UG9pbnQgYWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50
UG9pbnQmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRSZWN0IHJvb3RWaWV3VG9BY2Nlc3Np
YmlsaXR5U2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdCA9IDA7CiAjZW5kaWYgICAgCisKICAg
ICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgPSAw
OworCiAjaWYgRU5BQkxFKENVUlNPUl9TVVBQT1JUKQogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJz
b3IoY29uc3QgQ3Vyc29yJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5V
bnRpbE1vdXNlTW92ZXMoYm9vbCkgPSAwOwogI2VuZGlmCisKICNpZiAhVVNFKFJFUVVFU1RfQU5J
TUFUSU9OX0ZSQU1FX1RJTUVSKQogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigp
ID0gMDsKICNlbmRpZgotICAgIC8vIEVuZCBtZXRob2RzIHVzZWQgYnkgSG9zdFdpbmRvdy4KIAot
ICAgIHZpcnR1YWwgRmxvYXRTaXplIHNjcmVlblNpemUoKSBjb25zdCB7IHJldHVybiBjb25zdF9j
YXN0PENocm9tZUNsaWVudCo+KHRoaXMpLT53aW5kb3dSZWN0KCkuc2l6ZSgpOyB9Ci0gICAgdmly
dHVhbCBGbG9hdFNpemUgYXZhaWxhYmxlU2NyZWVuU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0
X2Nhc3Q8Q2hyb21lQ2xpZW50Kj4odGhpcyktPndpbmRvd1JlY3QoKS5zaXplKCk7IH0KKyAgICB2
aXJ0dWFsIEZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxD
aHJvbWVDbGllbnQmPigqdGhpcykud2luZG93UmVjdCgpLnNpemUoKTsgfQorICAgIHZpcnR1YWwg
RmxvYXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemUoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0
PENocm9tZUNsaWVudCY+KCp0aGlzKS53aW5kb3dSZWN0KCkuc2l6ZSgpOyB9CiAKICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgVmlld3Bv
cnRBcmd1bWVudHMmKSBjb25zdCB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVD
aGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYsIGNvbnN0IEludFNpemUmKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29u
c3QgeyB9OyAvLyBDdXJyZW50bHkgb25seSBNYWMgaGFzIGEgbm9uIGVtcHR5IGltcGxlbWVudGF0
aW9uLgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJl
QnV0dG9uKFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdW5hdmFpbGFibGVQbHVn
aW5CdXR0b25DbGlja2VkKEVsZW1lbnQqLCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IHsgfQorICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJs
ZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCYsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVn
aW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmll
ckZsYWdzKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcm
LCBUZXh0RGlyZWN0aW9uKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUqKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHByaW50KEZyYW1lJikgPSAwOwogCiAgICAgdmlydHVhbCBD
b2xvciB1bmRlcmxheUNvbG9yKCkgY29uc3QgeyByZXR1cm4gQ29sb3IoKTsgfQogCiAgICAgdmly
dHVhbCB2b2lkIHBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvckRpZENoYW5nZShDb2xvcikgY29u
c3QgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwg
Y29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscykgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUmLCBjb25zdCBTdHJpbmcmIGRh
dGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzKSA9IDA7CiAKICAgICAvLyBDYWxsYmFjayBpbnZv
a2VkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGNhY2hlIGZhaWxzIHRvIHNhdmUgYSBjYWNoZSBvYmpl
Y3QKICAgICAvLyBiZWNhdXNlIHN0b3JpbmcgaXQgd291bGQgZ3JvdyB0aGUgZGF0YWJhc2UgZmls
ZSBwYXN0IGl0cyBkZWZpbmVkIG1heGltdW0KQEAgLTIxOSw3ICsyMjMsNyBAQCBwdWJsaWM6CiAg
ICAgLy8gc3RvcmFnZSwgaW4gYnl0ZXMsIG5lZWRlZCB0byBzdG9yZSB0aGUgbmV3IGNhY2hlIGFs
b25nIHdpdGggYWxsIG9mIHRoZQogICAgIC8vIG90aGVyIGV4aXN0aW5nIGNhY2hlcyBmb3IgdGhl
IG9yaWdpbiB0aGF0IHdvdWxkIG5vdCBiZSByZXBsYWNlZCBieQogICAgIC8vIHRoZSBuZXcgY2Fj
aGUuCi0gICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEo
U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdp
biYsIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkgPSAwOwogCiAjaWYgRU5BQkxFKERBU0hCT0FS
RF9TVVBQT1JUKQogICAgIHZpcnR1YWwgdm9pZCBhbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpOwpA
QCAtMjM2LDEwICsyNDAsMTAgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZp
cnR1YWwgdm9pZCBkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShib29sKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIHNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhGcmFtZSosIGJvb2wpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKEZyYW1lKikgPSAwOwotICAgIHZp
cnR1YWwgdm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoRnJhbWUqKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShGcmFt
ZSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKEZy
YW1lJiwgYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBvYnNlcnZlZENvbnRlbnRDaGFuZ2Uo
RnJhbWUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQ29udGVudENoYW5nZU9ic2VydmVy
cyhGcmFtZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25C
eVNjcm9sbGluZ0ZyYW1lKEZyYW1lJikgPSAwOwogCiAgICAgZW51bSBMYXlvdXRUeXBlIHsgTm9y
bWFsTGF5b3V0LCBTY3JvbGwgfTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTGF5b3V0KExheW91dFR5
cGUgPSBOb3JtYWxMYXlvdXQpID0gMDsKQEAgLTI3MCwxNiArMjc0LDE2IEBAIHB1YmxpYzoKICNl
bmRpZgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgdmlydHVhbCBzdGQ6OnVu
aXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xp
ZW50KiwgY29uc3QgQ29sb3ImKSA9IDA7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q29s
b3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3Qg
Q29sb3ImKSA9IDA7CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJh
bWUmLCBGaWxlQ2hvb3NlciYpID0gMDsKICAgICAvLyBBc3luY2hyb25vdXMgcmVxdWVzdCB0byBs
b2FkIGFuIGljb24gZm9yIHNwZWNpZmllZCBmaWxlbmFtZXMuCiAgICAgdmlydHVhbCB2b2lkIGxv
YWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciYpID0g
MDsKICAgICAgICAgCi0gICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBOb2Rl
KikgeyB9OwotICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBOb2RlKikgeyB9
OwotICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkUmVmb2N1cyhjb25zdCBOb2RlKikgeyB9Owor
ICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkRm9jdXMoRWxlbWVudCYpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBlbGVtZW50RGlkQmx1cihFbGVtZW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGVs
ZW1lbnREaWRSZWZvY3VzKEVsZW1lbnQmKSB7IH0KICAgICAKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkUGFpbnRFbnRpcmVDb250ZW50cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmly
dHVhbCBib29sIGhhc1N0YWJsZVBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7
IH0KQEAgLTI5MSw5ICsyOTUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZWZQdHI8RGlzcGxh
eVJlZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNw
bGF5SUQpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCi0gICAgLy8gUGFzcyAw
IGFzIHRoZSBHcmFwaGljc0xheWVyIHRvIGRldGF0Y2ggdGhlIHJvb3QgbGF5ZXIuCi0gICAgdmly
dHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciop
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZy
YW1lKiwgR3JhcGhpY3NMYXllciopID0gMDsKKyAgICAvLyBQYXNzIG51bGxwdHIgYXMgdGhlIEdy
YXBoaWNzTGF5ZXIgdG8gZGV0YXRjaCB0aGUgcm9vdCBsYXllci4KKyAgICB2aXJ0dWFsIHZvaWQg
YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFw
aGljc0xheWVyKikgPSAwOwogICAgIC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUg
bmV4dCB0aW1lIGNvbnRlbnQgaXMgZHJhd24gdG8gdGhlIHdpbmRvdywKICAgICAvLyB0aGUgY2hh
bmdlcyBhcHBlYXIgb24gdGhlIHNjcmVlbiBpbiBzeW5jaHJvbnkgd2l0aCB1cGRhdGVzIHRvIEdy
YXBoaWNzTGF5ZXJzLgogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3lu
Y2hyb25pemF0aW9uKCkgPSAwOwpAQCAtMzI1LDI2ICszMjksMjggQEAgcHVibGljOgogCiAgICAg
dmlydHVhbCBib29sIGFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKExheWVyRmx1c2hUaHJvdHRs
ZVN0YXRlOjpGbGFncykgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gY3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSop
IGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxTY3JvbGxpbmdD
b29yZGluYXRvcj4gY3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSYpIGNvbnN0IHsgcmV0
dXJuIG51bGxwdHI7IH0KIAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKEFWRk9VTkRBVElPTikK
LSAgICB2aXJ0dWFsIEdyYXBoaWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVy
KCkgY29uc3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgR3JhcGhpY3NEZXZpY2VBZGFwdGVy
KiBncmFwaGljc0RldmljZUFkYXB0ZXIoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5k
aWYKIAogICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIHsgcmV0dXJuIGZhbHNlOyB9CisKICNp
ZiBFTkFCTEUoVklERU8pCiAgICAgdmlydHVhbCB2b2lkIGVudGVyVmlkZW9GdWxsc2NyZWVuRm9y
VmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRVcFBsYXliYWNrQ29u
dHJvbHNNYW5hZ2VyKEhUTUxNZWRpYUVsZW1lbnQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xl
YXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigpIHsgfQogI2VuZGlmCi0gICAgdmlydHVhbCB2b2lk
IGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxl
bWVudCYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0
aG91dEFuaW1hdGlvbihXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgSFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlIC8qdGFyZ2V0TW9kZSovKSB7IH0KKworICAgIHZp
cnR1YWwgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0Vs
ZW1lbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdp
dGhvdXRBbmltYXRpb24oSFRNTFZpZGVvRWxlbWVudCYsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSkgeyB9CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzRnVsbHNj
cmVlbkZvclZpZGVvUGxheWJhY2soKSB7IHJldHVybiBmYWxzZTsgfSAKIAogI2lmIEVOQUJMRShG
VUxMU0NSRUVOX0FQSSkKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxl
bWVudChjb25zdCBFbGVtZW50KiwgYm9vbCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFs
IHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KikgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KikgeyB9CisgICAgdmlydHVh
bCBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYsIGJvb2wp
IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQoRWxlbWVudCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVs
ZW1lbnQoRWxlbWVudCYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRSb290RnVsbFNjcmVlbkxh
eWVyKEdyYXBoaWNzTGF5ZXIqKSB7IH0KICNlbmRpZgogCkBAIC0zNTMsNyArMzU5LDcgQEAgcHVi
bGljOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2aXJ0dWFsIE5TUmVzcG9u
ZGVyICpmaXJzdFJlc3BvbmRlcigpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIE5TUmVzcG9u
ZGVyICpmaXJzdFJlc3BvbmRlcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIHZv
aWQgbWFrZUZpcnN0UmVzcG9uZGVyKE5TUmVzcG9uZGVyICopIHsgfQogICAgIC8vIEZvY3VzZXMg
b24gdGhlIGNvbnRhaW5pbmcgdmlldyBhc3NvY2lhdGVkIHdpdGggdGhpcyBwYWdlLgogICAgIHZp
cnR1YWwgdm9pZCBtYWtlRmlyc3RSZXNwb25kZXIoKSB7IH0KQEAgLTM3NywxMCArMzgzLDEwIEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51
V3JpdGluZ0RpcmVjdGlvbigpID0gMDsKICAgICAvLyBDaGVja3MgaWYgdGhlcmUgaXMgYW4gb3Bl
bmVkIHBvcHVwLCBjYWxsZWQgYnkgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpLgogICAgIHZp
cnR1YWwgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJlZlB0
cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7
Ci0gICAgdmlydHVhbCBSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1l
bnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPFBvcHVw
TWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIFJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQmKSBjb25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdEFjY2Vzc2li
aWxpdHlOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYT2JqZWN0Q2FjaGU6OkFY
Tm90aWZpY2F0aW9uKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcG9zdEFjY2Vzc2liaWxpdHlOb3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCYsIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0
aW9uKSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxl
SW5SZWN0KGNvbnN0IEludFJlY3QmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVjb21tZW5kZWRT
Y3JvbGxiYXJTdHlsZURpZENoYW5nZShTY3JvbGxiYXJTdHlsZSkgeyB9CkBAIC00MDgsMTYgKzQx
NCwxNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9s
cyhjb25zdCBWZWN0b3I8UmVmUHRyPEVsZW1lbnQ+PiYpIHsgfTsKICAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkTm90aWZ5T25Gb3JtQ2hhbmdlcygpIHsgcmV0dXJuIGZhbHNlOyB9OwogCi0gICAgdmly
dHVhbCB2b2lkIGRpZEFkZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5ZXIqKSB7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciopIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBkaWRBZGRIZWFkZXJMYXllcihHcmFwaGljc0xheWVyJikgeyB9CisgICAgdmlydHVh
bCB2b2lkIGRpZEFkZEZvb3RlckxheWVyKEdyYXBoaWNzTGF5ZXImKSB7IH0KIAotICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3
KikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGls
ZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQ
cm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCB1aW50NjRfdCkgeyB9CiAKICNpZiBFTkFCTEUoTUVE
SUFfU0VTU0lPTikKICAgICB2aXJ0dWFsIHZvaWQgaGFzTWVkaWFTZXNzaW9uV2l0aEFjdGl2ZU1l
ZGlhRWxlbWVudHNEaWRDaGFuZ2UoYm9vbCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG1lZGlhU2Vz
c2lvbk1ldGFkYXRhRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1ldGFkYXRh
JikgeyB9CisgICAgdmlydHVhbCB2b2lkIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKGNv
bnN0IE1lZGlhU2Vzc2lvbk1ldGFkYXRhJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGZvY3VzZWRD
b250ZW50TWVkaWFFbGVtZW50RGlkQ2hhbmdlKHVpbnQ2NF90KSB7IH0KICNlbmRpZgogCkBAIC00
MjcsMTEgKzQzMywxMiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShURUxFUEhPTkVf
TlVNQkVSX0RFVEVDVElPTikgJiYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgdm9pZCBoYW5k
bGVUZWxlcGhvbmVOdW1iZXJDbGljayhjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVUZWxlcGhvbmVOdW1iZXJDbGljayhj
b25zdCBTdHJpbmcmLCBjb25zdCBJbnRQb2ludCYpIHsgfQogI2VuZGlmCisKICNpZiBFTkFCTEUo
U0VSVklDRV9DT05UUk9MUykKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlU2VsZWN0aW9uU2Vydmlj
ZUNsaWNrKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxldmFu
dFNlbGVjdGlvblNlcnZpY2VzKGJvb2wgLyogaXNUZXh0T25seSAqLykgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKEZy
YW1lU2VsZWN0aW9uJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBJbnRQb2ludCYpIHsg
fQorICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxldmFudFNlbGVjdGlvblNlcnZpY2VzKGJvb2wgLypp
c1RleHRPbmx5Ki8pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudHMoKSBjb25zdCB7IHJldHVy
biB0cnVlOyB9CkBAIC00NDEsMTMgKzQ0OCwxMyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdJUkVM
RVNTX1BMQVlCQUNLX1RBUkdFVCkKICAgICB2aXJ0dWFsIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQ
aWNrZXJDbGllbnQodWludDY0X3QgLypjb250ZXh0SWQqLykgeyB9CiAgICAgdmlydHVhbCB2b2lk
IHJlbW92ZVBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IC8qY29udGV4dElkKi8p
IHsgfQotICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3Qg
Lypjb250ZXh0SWQqLywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sIC8qIGlzVmlkZW8g
Ki8pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0
X3QgLypjb250ZXh0SWQqLywgY29uc3QgSW50UG9pbnQmLCBib29sIC8qaXNWaWRlbyovKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5n
ZSh1aW50NjRfdCAvKmNvbnRleHRJZCovLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVu
YWJsZWQoYm9vbCkgIHsgfQotICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1Rh
cmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJn
ZXRDb250ZXh0OjpTdGF0ZSkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldE1vY2tNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgTWVkaWFQbGF5YmFja1RhcmdldENv
bnRleHQ6OlN0YXRlKSB7IH0KICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lkIGltYWdlT3JNZWRp
YURvY3VtZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBpbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkKGNvbnN0IEludFNpemUm
KSB7IH0KIAogI2lmIEVOQUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikKICAgICB2aXJ0dWFs
IHZvaWQgcmVxdWVzdEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKGNvbnN0IFN0cmluZyYgLypk
ZXRhaWxzKi8sIGNvbnN0IFN0cmluZyYgLypkZXNjcmlwdGlvbiovLCBNZWRpYVBsYXllclJlcXVl
c3RJbnN0YWxsTWlzc2luZ1BsdWdpbnNDYWxsYmFjayYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IDBlN2E3N2I2ZGEyODlhMDI1Njkz
NTM0YWQxZmM0ZDUxMDljNTBmMzMuLmMxYzQ5NDg0MDI4Mzg0OWYxNTJiYjI3NDVmOGExYjQ2MDZl
ZWQzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5j
cHAKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNsZWFyQ29u
dGV4dE1lbnUoKQogICAgIG1fbWVudVByb3ZpZGVyID0gbnVsbHB0cjsKIH0KIAotdm9pZCBDb250
ZXh0TWVudUNvbnRyb2xsZXI6OmhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZlbnQqIGV2ZW50KQor
dm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZlbnQm
IGV2ZW50KQogewogICAgIG1fY29udGV4dE1lbnUgPSBtYXliZUNyZWF0ZUNvbnRleHRNZW51KGV2
ZW50KTsKICAgICBpZiAoIW1fY29udGV4dE1lbnUpCkBAIC0xMTAsOSArMTEwLDkgQEAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudUl0ZW0+IHNlcGFyYXRvckl0ZW0oKQogICAgIHJl
dHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnVJdGVtPihuZXcgQ29udGV4dE1lbnVJdGVt
KFNlcGFyYXRvclR5cGUsIENvbnRleHRNZW51SXRlbVRhZ05vQWN0aW9uLCBTdHJpbmcoKSkpOwog
fQogCi12b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50KiBl
dmVudCwgUGFzc1JlZlB0cjxDb250ZXh0TWVudVByb3ZpZGVyPiBtZW51UHJvdmlkZXIpCit2b2lk
IENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50JiBldmVudCwgQ29u
dGV4dE1lbnVQcm92aWRlciYgcHJvdmlkZXIpCiB7Ci0gICAgbV9tZW51UHJvdmlkZXIgPSBtZW51
UHJvdmlkZXI7CisgICAgbV9tZW51UHJvdmlkZXIgPSAmcHJvdmlkZXI7CiAKICAgICBtX2NvbnRl
eHRNZW51ID0gbWF5YmVDcmVhdGVDb250ZXh0TWVudShldmVudCk7CiAgICAgaWYgKCFtX2NvbnRl
eHRNZW51KSB7CkBAIC0xMjAsNyArMTIwLDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6
OnNob3dDb250ZXh0TWVudShFdmVudCogZXZlbnQsIFBhc3NSZWZQdHI8Q29udGV4dE1lbnUKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fbWVudVByb3ZpZGVyLT5wb3B1bGF0ZUNvbnRl
eHRNZW51KG1fY29udGV4dE1lbnUuZ2V0KCkpOworICAgIHByb3ZpZGVyLnBvcHVsYXRlQ29udGV4
dE1lbnUobV9jb250ZXh0TWVudS5nZXQoKSk7CiAgICAgaWYgKG1fY29udGV4dC5oaXRUZXN0UmVz
dWx0KCkuaXNTZWxlY3RlZCgpKSB7CiAgICAgICAgIGFwcGVuZEl0ZW0oKnNlcGFyYXRvckl0ZW0o
KSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CiAgICAgICAgIHBvcHVsYXRlKCk7CkBAIC0xMjksMzMg
KzEyOSwzNCBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2
ZW50KiBldmVudCwgUGFzc1JlZlB0cjxDb250ZXh0TWVudQogfQogCiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfQ09OVFJPTFMpCisKIHN0YXRpYyBJbWFnZSogaW1hZ2VGcm9tSW1hZ2VFbGVtZW50Tm9kZShO
b2RlJiBub2RlKQogewotICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBub2RlLnJlbmRlcmVy
KCk7CisgICAgYXV0byogcmVuZGVyZXIgPSBub2RlLnJlbmRlcmVyKCk7CiAgICAgaWYgKCFpczxS
ZW5kZXJJbWFnZT4ocmVuZGVyZXIpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBDYWNo
ZWRJbWFnZSogaW1hZ2UgPSBkb3duY2FzdDxSZW5kZXJJbWFnZT4oKnJlbmRlcmVyKS5jYWNoZWRJ
bWFnZSgpOworICAgIGF1dG8qIGltYWdlID0gZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJl
cikuY2FjaGVkSW1hZ2UoKTsKICAgICBpZiAoIWltYWdlIHx8IGltYWdlLT5lcnJvck9jY3VycmVk
KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotCiAgICAgcmV0dXJuIGltYWdlLT5pbWFnZUZv
clJlbmRlcmVyKHJlbmRlcmVyKTsKIH0KKwogI2VuZGlmCiAKLXN0ZDo6dW5pcXVlX3B0cjxDb250
ZXh0TWVudT4gQ29udGV4dE1lbnVDb250cm9sbGVyOjptYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2
ZW50KiBldmVudCkKK3N0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gQ29udGV4dE1lbnVDb250
cm9sbGVyOjptYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50JiBldmVudCkKIHsKLSAgICBBU1NF
UlQoZXZlbnQpOwotICAgIAotICAgIGlmICghaXM8TW91c2VFdmVudD4oKmV2ZW50KSkKKyAgICBp
ZiAoIWlzPE1vdXNlRXZlbnQ+KGV2ZW50KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAg
ICBNb3VzZUV2ZW50JiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VFdmVudD4oKmV2ZW50KTsK
LSAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdChtb3VzZUV2ZW50LmFic29sdXRlTG9jYXRpb24oKSk7
CisgICAgYXV0byYgbW91c2VFdmVudCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+KGV2ZW50KTsKKyAg
ICBhdXRvKiBub2RlID0gbW91c2VFdmVudC50YXJnZXQoKS0+dG9Ob2RlKCk7CisgICAgaWYgKCFu
b2RlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvKiBmcmFtZSA9IG5vZGUtPmRv
Y3VtZW50KCkuZnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAotICAgIE5vZGUqIG5vZGUgPSBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpOwotICAgIGlm
IChGcmFtZSogZnJhbWUgPSBub2RlLT5kb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgIHJlc3Vs
dCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2ludChtb3VzZUV2ZW50
LmFic29sdXRlTG9jYXRpb24oKSk7Ci0gICAgCisgICAgYXV0byByZXN1bHQgPSBmcmFtZS0+ZXZl
bnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQobW91c2VFdmVudC5hYnNvbHV0ZUxvY2F0
aW9uKCkpOwogICAgIGlmICghcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIApAQCAtMTYzLDcgKzE2NCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxDb250
ZXh0TWVudT4gQ29udGV4dE1lbnVDb250cm9sbGVyOjptYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2
ZW50CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKICAgICBpZiAobm9kZS0+aXNJbWFn
ZUNvbnRyb2xzQnV0dG9uRWxlbWVudCgpKSB7Ci0gICAgICAgIGlmIChJbWFnZSogaW1hZ2UgPSBp
bWFnZUZyb21JbWFnZUVsZW1lbnROb2RlKCpyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpKQor
ICAgICAgICBpZiAoYXV0byogaW1hZ2UgPSBpbWFnZUZyb21JbWFnZUVsZW1lbnROb2RlKCpyZXN1
bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpKQogICAgICAgICAgICAgbV9jb250ZXh0LnNldENvbnRy
b2xsZWRJbWFnZShpbWFnZSk7CiAKICAgICAgICAgLy8gRklYTUU6IElmIHdlIGNvdWxkbid0IGdl
dCB0aGUgaW1hZ2UgdGhlbiB3ZSBzaG91bGRuJ3QgdHJ5IHRvIHNob3cgdGhlIGltYWdlIGNvbnRy
b2xzIG1lbnUgZm9yIGl0LgpAQCAtMTcxLDI0ICsxNzIsMjQgQEAgc3RkOjp1bmlxdWVfcHRyPENv
bnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUo
RXZlbnQKICAgICB9CiAjZW5kaWYKIAotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4
dE1lbnU+KG5ldyBDb250ZXh0TWVudSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q29u
dGV4dE1lbnU+KCk7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4
dE1lbnUoRXZlbnQqIGV2ZW50KQordm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250
ZXh0TWVudShFdmVudCYgZXZlbnQpCiB7CiAgICAgaWYgKG1fcGFnZS5pbnNwZWN0b3JDb250cm9s
bGVyKCkuZW5hYmxlZCgpKQogICAgICAgICBhZGRJbnNwZWN0RWxlbWVudEl0ZW0oKTsKIAotICAg
IGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVk
KCk7CiB9CiAKLXN0YXRpYyB2b2lkIG9wZW5OZXdXaW5kb3coY29uc3QgVVJMJiB1cmxUb0xvYWQs
IEZyYW1lKiBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5KQorc3RhdGljIHZvaWQgb3Blbk5ld1dpbmRvdyhjb25zdCBVUkwmIHVy
bFRvTG9hZCwgRnJhbWUmIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCiB7Ci0gICAgUGFnZSogb2xkUGFnZSA9IGZyYW1lLT5w
YWdlKCk7CisgICAgUGFnZSogb2xkUGFnZSA9IGZyYW1lLnBhZ2UoKTsKICAgICBpZiAoIW9sZFBh
Z2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChmcmFt
ZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybFRvTG9h
ZCwgZnJhbWUtPmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSksIExvY2tIaXN0b3J5OjpObywg
TG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRp
b25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzLCBzaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3Qo
ZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybFRv
TG9hZCwgZnJhbWUubG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5v
LCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MsIHNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOwogCiAgICAgUGFnZSogbmV3UGFnZSA9IG9sZFBh
Z2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdyhmcmFtZSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMo
KSwgTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKSk7CiAgICAgaWYg
KCFuZXdQYWdlKQpAQCAtMTk4LDE1ICsxOTksMTcgQEAgc3RhdGljIHZvaWQgb3Blbk5ld1dpbmRv
dyhjb25zdCBVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWwK
IH0KIAogI2lmIFBMQVRGT1JNKEdUSykKLXN0YXRpYyB2b2lkIGluc2VydFVuaWNvZGVDaGFyYWN0
ZXIoVUNoYXIgY2hhcmFjdGVyLCBGcmFtZSogZnJhbWUpCisKK3N0YXRpYyB2b2lkIGluc2VydFVu
aWNvZGVDaGFyYWN0ZXIoVUNoYXIgY2hhcmFjdGVyLCBGcmFtZSYgZnJhbWUpCiB7CiAgICAgU3Ry
aW5nIHRleHQoJmNoYXJhY3RlciwgMSk7Ci0gICAgaWYgKCFmcmFtZS0+ZWRpdG9yKCkuc2hvdWxk
SW5zZXJ0VGV4dCh0ZXh0LCBmcmFtZS0+c2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5n
ZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uOjpUeXBlZCkpCisgICAgaWYgKCFmcmFtZS5lZGl0b3Io
KS5zaG91bGRJbnNlcnRUZXh0KHRleHQsIGZyYW1lLnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJh
bmdlKCkuZ2V0KCksIEVkaXRvckluc2VydEFjdGlvbjo6VHlwZWQpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBBU1NFUlQoZnJhbWUtPmRvY3VtZW50KCkpOwotICAgIFR5cGluZ0NvbW1hbmQ6Omlu
c2VydFRleHQoKmZyYW1lLT5kb2N1bWVudCgpLCB0ZXh0LCAwLCBUeXBpbmdDb21tYW5kOjpUZXh0
Q29tcG9zaXRpb25Ob25lKTsKKyAgICBBU1NFUlQoZnJhbWUuZG9jdW1lbnQoKSk7CisgICAgVHlw
aW5nQ29tbWFuZDo6aW5zZXJ0VGV4dCgqZnJhbWUuZG9jdW1lbnQoKSwgdGV4dCwgMCwgVHlwaW5n
Q29tbWFuZDo6VGV4dENvbXBvc2l0aW9uTm9uZSk7CiB9CisKICNlbmRpZgogCiB2b2lkIENvbnRl
eHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rp
b24gYWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlKQpAQCAtMjI1LDcgKzIyOCw3IEBAIHZvaWQg
Q29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVu
dUFjdGlvbiBhY3Rpb24sIGNvCiAKICAgICBzd2l0Y2ggKGFjdGlvbikgewogICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnT3BlbkxpbmtJbk5ld1dpbmRvdzoKLSAgICAgICAgb3Blbk5ld1dpbmRv
dyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFtZSwgU2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3dFeHRlcm5hbFNjaGVtZXMpOwor
ICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVM
aW5rVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxs
b3dFeHRlcm5hbFNjaGVtZXMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51
SXRlbVRhZ0Rvd25sb2FkTGlua1RvRGlzazoKICAgICAgICAgLy8gRklYTUU6IFNvbWUgZGF5IHdl
IHNob3VsZCBiZSBhYmxlIHRvIGRvIHRoaXMgZnJvbSB3aXRoaW4gV2ViQ29yZS4gKEJ1ZyAxMTc3
MDkpCkBAIC0yMzUsNyArMjM4LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRl
eHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KICAgICAgICAg
ZnJhbWUtPmVkaXRvcigpLmNvcHlVUkwobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0
ZUxpbmtVUkwoKSwgbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS50ZXh0Q29udGVudCgpKTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dp
bmRvdzoKLSAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFi
c29sdXRlSW1hZ2VVUkwoKSwgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNo
b3VsZE5vdEFsbG93KTsKKyAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJl
c3VsdCgpLmFic29sdXRlSW1hZ2VVUkwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzazoKICAgICAgICAgLy8gRklYTUU6IFNvbWUg
ZGF5IHdlIHNob3VsZCBiZSBhYmxlIHRvIGRvIHRoaXMgZnJvbSB3aXRoaW4gV2ViQ29yZS4gKEJ1
ZyAxMTc3MDkpCkBAIC0yNTIsNyArMjU1LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6
OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KICAg
ICAgICAgYnJlYWs7CiAjZW5kaWYKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRp
YUluTmV3V2luZG93OgotICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVz
dWx0KCkuYWJzb2x1dGVNZWRpYVVSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeTo6U2hvdWxkTm90QWxsb3cpOworICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5o
aXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVNZWRpYVVSTCgpLCAqZnJhbWUsIFNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZE1lZGlhVG9EaXNrOgogICAgICAgICAvLyBGSVhN
RTogU29tZSBkYXkgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZG8gdGhpcyBmcm9tIHdpdGhpbiBXZWJD
b3JlLiAoQnVnIDExNzcwOSkKQEAgLTI4NSw5ICsyODgsOSBAQCB2b2lkIENvbnRleHRNZW51Q29u
dHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9u
LCBjbwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3c6IHsK
ICAgICAgICAgRG9jdW1lbnRMb2FkZXIqIGxvYWRlciA9IGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVu
dExvYWRlcigpOwogICAgICAgICBpZiAoIWxvYWRlci0+dW5yZWFjaGFibGVVUkwoKS5pc0VtcHR5
KCkpCi0gICAgICAgICAgICBvcGVuTmV3V2luZG93KGxvYWRlci0+dW5yZWFjaGFibGVVUkwoKSwg
ZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAg
ICAgICAgICAgIG9wZW5OZXdXaW5kb3cobG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLCAqZnJhbWUs
IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgb3Blbk5ld1dpbmRvdyhsb2FkZXItPnVybCgpLCBmcmFtZSwgU2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOworICAgICAgICAgICAg
b3Blbk5ld1dpbmRvdyhsb2FkZXItPnVybCgpLCAqZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnQ29weToKQEAgLTMxOCwzNCArMzIxLDM0IEBAIHZvaWQgQ29u
dGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFj
dGlvbiBhY3Rpb24sIGNvCiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5wZXJmb3JtRGVsZXRlKCk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2Vy
dExSTU1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIobGVmdFRvUmlnaHRNYXJr
LCBmcmFtZSk7CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIobGVmdFRvUmlnaHRNYXJr
LCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1Vu
aWNvZGVJbnNlcnRSTE1NYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHJpZ2h0
VG9MZWZ0TWFyaywgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHJpZ2h0
VG9MZWZ0TWFyaywgKmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdVbmljb2RlSW5zZXJ0TFJFTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJh
Y3RlcihsZWZ0VG9SaWdodEVtYmVkLCBmcmFtZSk7CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFy
YWN0ZXIobGVmdFRvUmlnaHRFbWJlZCwgKmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0UkxFTWFyazoKLSAgICAgICAgaW5zZXJ0
VW5pY29kZUNoYXJhY3RlcihyaWdodFRvTGVmdEVtYmVkLCBmcmFtZSk7CisgICAgICAgIGluc2Vy
dFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRFbWJlZCwgKmZyYW1lKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0TFJPTWFyazoKLSAg
ICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9SaWdodE92ZXJyaWRlLCBmcmFtZSk7
CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIobGVmdFRvUmlnaHRPdmVycmlkZSwgKmZy
YW1lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2Rl
SW5zZXJ0UkxPTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdodFRvTGVm
dE92ZXJyaWRlLCBmcmFtZSk7CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRU
b0xlZnRPdmVycmlkZSwgKmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0UERGTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNo
YXJhY3Rlcihwb3BEaXJlY3Rpb25hbEZvcm1hdHRpbmcsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0
VW5pY29kZUNoYXJhY3Rlcihwb3BEaXJlY3Rpb25hbEZvcm1hdHRpbmcsICpmcmFtZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydFpXU01h
cms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoU3BhY2UsIGZyYW1l
KTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rlcih6ZXJvV2lkdGhTcGFjZSwgKmZyYW1l
KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5z
ZXJ0WldKTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rlcih6ZXJvV2lkdGhKb2lu
ZXIsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rlcih6ZXJvV2lkdGhKb2lu
ZXIsICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
VW5pY29kZUluc2VydFpXTkpNYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHpl
cm9XaWR0aE5vbkpvaW5lciwgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVy
KHplcm9XaWR0aE5vbkpvaW5lciwgKmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKICNp
ZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKQEAgLTM5Myw3ICszOTYsNyBAQCB2b2lk
IENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1l
bnVBY3Rpb24gYWN0aW9uLCBjbwogICAgICAgICBpZiAoRnJhbWUqIHRhcmdldEZyYW1lID0gbV9j
b250ZXh0LmhpdFRlc3RSZXN1bHQoKS50YXJnZXRGcmFtZSgpKQogICAgICAgICAgICAgdGFyZ2V0
RnJhbWUtPmxvYWRlcigpLmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+
ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KG1fY29udGV4dC5o
aXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIGZyYW1lLT5sb2FkZXIoKS5vdXRnb2lu
Z1JlZmVycmVyKCkpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBN
YXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0Zy
YW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcywgdGFyZ2V0RnJhbWUtPmlzTWFpbkZyYW1lKCkgPyBT
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvdyA6IFNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KSwgbnVsbHB0ciwgbnVsbHB0cik7CiAgICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1
bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3k6OlNob3VsZEFsbG93KTsKKyAgICAgICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0Lmhp
dFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5OjpTaG91bGRBbGxvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnQm9sZDoKICAgICAgICAgZnJhbWUtPmVkaXRvcigpLmNvbW1hbmQoIlRv
Z2dsZUJvbGQiKS5leGVjdXRlKCk7CkBAIC0xNDI5LDI2ICsxNDMyLDMwIEBAIHZvaWQgQ29udGV4
dE1lbnVDb250cm9sbGVyOjpjaGVja09yRW5hYmxlSWZOZWVkZWQoQ29udGV4dE1lbnVJdGVtJiBp
dGVtKSBjb25zdAogfQogCiAjaWYgVVNFKEFDQ0VTU0lCSUxJVFlfQ09OVEVYVF9NRU5VUykKLXZv
aWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnVBdChGcmFtZSogZnJhbWUs
IGNvbnN0IEludFBvaW50JiBjbGlja1BvaW50KQorCit2b2lkIENvbnRleHRNZW51Q29udHJvbGxl
cjo6c2hvd0NvbnRleHRNZW51QXQoRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRQb2ludCYgY2xpY2tQ
b2ludCkKIHsKICAgICBjbGVhckNvbnRleHRNZW51KCk7CiAgICAgCiAgICAgLy8gU2ltdWxhdGUg
YSBjbGljayBpbiB0aGUgbWlkZGxlIG9mIHRoZSBhY2Nlc3NpYmlsaXR5IG9iamVjdC4KICAgICBQ
bGF0Zm9ybU1vdXNlRXZlbnQgbW91c2VFdmVudChjbGlja1BvaW50LCBjbGlja1BvaW50LCBSaWdo
dEJ1dHRvbiwgUGxhdGZvcm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZh
bHNlLCBmYWxzZSwgY3VycmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7Ci0gICAgZnJh
bWUtPmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKLSAg
ICBib29sIGhhbmRsZWQgPSBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2VuZENvbnRleHRNZW51RXZl
bnQobW91c2VFdmVudCk7CisgICAgZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVz
c0V2ZW50KG1vdXNlRXZlbnQpOworICAgIGJvb2wgaGFuZGxlZCA9IGZyYW1lLmV2ZW50SGFuZGxl
cigpLnNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZlbnQpOwogICAgIGlmIChoYW5kbGVkKQog
ICAgICAgICBtX2NsaWVudC5zaG93Q29udGV4dE1lbnUoKTsKIH0KKwogI2VuZGlmCiAKICNpZiBF
TkFCTEUoU0VSVklDRV9DT05UUk9MUykKLXZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93
SW1hZ2VDb250cm9sc01lbnUoRXZlbnQqIGV2ZW50KQorCit2b2lkIENvbnRleHRNZW51Q29udHJv
bGxlcjo6c2hvd0ltYWdlQ29udHJvbHNNZW51KEV2ZW50JiBldmVudCkKIHsKICAgICBjbGVhckNv
bnRleHRNZW51KCk7CiAgICAgaGFuZGxlQ29udGV4dE1lbnVFdmVudChldmVudCk7CiAgICAgbV9j
bGllbnQuc2hvd0NvbnRleHRNZW51KCk7CiB9CisKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJv
bGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaAppbmRl
eCAxMTI1NmUxY2U3OWFiMWU3YjMyMTU4Zjc4NGRjNzg4MTM2NDc0ZDhkLi5mNjM5NjQ4YjE4NjIw
NDYwNmVmY2E1NmE5MDc4MmM4OTM3YTBlOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjksMjEgKzI5LDE2IEBACiAKICNpbmNsdWRlICJD
b250ZXh0TWVudUNvbnRleHQuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUl0ZW0uaCIKLSNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDb250
ZXh0TWVudTsKIGNsYXNzIENvbnRleHRNZW51Q2xpZW50OwotY2xhc3MgQ29udGV4dE1lbnVJdGVt
OwogY2xhc3MgQ29udGV4dE1lbnVQcm92aWRlcjsKIGNsYXNzIEV2ZW50OwogY2xhc3MgUGFnZTsK
IAogY2xhc3MgQ29udGV4dE1lbnVDb250cm9sbGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShDb250ZXh0TWVudUNvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBDb250ZXh0TWVudUNvbnRyb2xs
ZXIoUGFnZSYsIENvbnRleHRNZW51Q2xpZW50Jik7CiAgICAgfkNvbnRleHRNZW51Q29udHJvbGxl
cigpOwpAQCAtNTQsOCArNDksOCBAQCBwdWJsaWM6CiAgICAgQ29udGV4dE1lbnUqIGNvbnRleHRN
ZW51KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0TWVudS5nZXQoKTsgfQogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgY2xlYXJDb250ZXh0TWVudSgpOwogCi0gICAgdm9pZCBoYW5kbGVDb250ZXh0
TWVudUV2ZW50KEV2ZW50Kik7Ci0gICAgdm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQqLCBQYXNz
UmVmUHRyPENvbnRleHRNZW51UHJvdmlkZXI+KTsKKyAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51
RXZlbnQoRXZlbnQmKTsKKyAgICB2b2lkIHNob3dDb250ZXh0TWVudShFdmVudCYsIENvbnRleHRN
ZW51UHJvdmlkZXImKTsKIAogICAgIHZvaWQgcG9wdWxhdGUoKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uLCBjb25zdCBT
dHJpbmcmIHRpdGxlKTsKQEAgLTY4LDE2ICs2MywxNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgSGl0
VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5oaXRU
ZXN0UmVzdWx0KCk7IH0KIAogI2lmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCi0g
ICAgdm9pZCBzaG93Q29udGV4dE1lbnVBdChGcmFtZSosIGNvbnN0IEludFBvaW50JiBjbGlja1Bv
aW50KTsKKyAgICB2b2lkIHNob3dDb250ZXh0TWVudUF0KEZyYW1lJiwgY29uc3QgSW50UG9pbnQm
IGNsaWNrUG9pbnQpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSAg
ICB2b2lkIHNob3dJbWFnZUNvbnRyb2xzTWVudShFdmVudCopOworICAgIHZvaWQgc2hvd0ltYWdl
Q29udHJvbHNNZW51KEV2ZW50Jik7CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8Q29udGV4dE1lbnU+IG1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQqKTsKLSAgICB2
b2lkIHNob3dDb250ZXh0TWVudShFdmVudCopOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0
TWVudT4gbWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudCYpOworICAgIHZvaWQgc2hvd0NvbnRl
eHRNZW51KEV2ZW50Jik7CiAgICAgCiAgICAgdm9pZCBhcHBlbmRJdGVtKENvbnRleHRNZW51SXRl
bSYsIENvbnRleHRNZW51KiBwYXJlbnRNZW51KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01UaW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcApp
bmRleCA4YzI3MzgxYWQ2OWJjMmVhYjkyMzJmMjhhYTU3NjA1MDNiNmRiMThkLi42YmI4OTYxZDlj
ZTgyOGE5ODI1NDI1OTAwMTI2ZjhlNWJkYTdjMzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVRpbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNw
cApAQCAtMzYxLDcgKzM2MSw3IEBAIHZvaWQgRE9NVGltZXI6OmZpcmVkKCkKICAgICAgICAgaWYg
KFdLT2JzZXJ2ZWRDb250ZW50Q2hhbmdlKCkgPT0gV0tDb250ZW50VmlzaWJpbGl0eUNoYW5nZSB8
fCBzaG91bGRSZXBvcnRMYWNrT2ZDaGFuZ2VzKSB7CiAgICAgICAgICAgICBEb2N1bWVudCYgZG9j
dW1lbnQgPSBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCk7CiAgICAgICAgICAgICBpZiAoUGFn
ZSogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkKLSAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUo
KS5jbGllbnQoKS5vYnNlcnZlZENvbnRlbnRDaGFuZ2UoZG9jdW1lbnQuZnJhbWUoKSk7CisgICAg
ICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkub2JzZXJ2ZWRDb250ZW50Q2hhbmdl
KCpkb2N1bWVudC5mcmFtZSgpKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCmluZGV4IDk2OTk2NTAzOGEyNjVkZDcxODA4YzZhZmRmMGIyMGRkNTJl
YjY0YTQuLjJhYWZjZDM3ZmU2MDYyNjMyYTA4YzkwMDRhN2MxY2Y5YjNkODFmYjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTE1MCw5ICsxNTAsOSBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFBvc3RNZXNzYWdlVGltZXIgOiBwdWJsaWMgVGltZXJCYXNlIHsKIHB1Ymxp
YzoKLSAgICBQb3N0TWVzc2FnZVRpbWVyKERPTVdpbmRvdyYgd2luZG93LCBQYXNzUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4s
IERPTVdpbmRvdyYgc291cmNlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJy
YXk+IGNoYW5uZWxzLCBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYgdGFyZ2V0T3JpZ2luLCBSZWZQ
dHI8U2NyaXB0Q2FsbFN0YWNrPiYmIHN0YWNrVHJhY2UpCisgICAgUG9zdE1lc3NhZ2VUaW1lcihE
T01XaW5kb3cmIHdpbmRvdywgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgRE9NV2luZG93JiBzb3VyY2UsIHN0ZDo6dW5pcXVl
X3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMsIFJlZlB0cjxTZWN1cml0eU9y
aWdpbj4mJiB0YXJnZXRPcmlnaW4sIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2tUcmFj
ZSkKICAgICAgICAgOiBtX3dpbmRvdyh3aW5kb3cpCi0gICAgICAgICwgbV9tZXNzYWdlKG1lc3Nh
Z2UpCisgICAgICAgICwgbV9tZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpCiAgICAgICAgICwgbV9v
cmlnaW4oc291cmNlT3JpZ2luKQogICAgICAgICAsIG1fc291cmNlKHNvdXJjZSkKICAgICAgICAg
LCBtX2NoYW5uZWxzKFdURk1vdmUoY2hhbm5lbHMpKQpAQCAtMTgxLDcgKzE4MSw3IEBAIHByaXZh
dGU6CiAgICAgfQogCiAgICAgUmVmPERPTVdpbmRvdz4gbV93aW5kb3c7Ci0gICAgUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9tZXNzYWdlOworICAgIFJlZjxTZXJpYWxpemVkU2NyaXB0
VmFsdWU+IG1fbWVzc2FnZTsKICAgICBTdHJpbmcgbV9vcmlnaW47CiAgICAgUmVmPERPTVdpbmRv
dz4gbV9zb3VyY2U7CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5
PiBtX2NoYW5uZWxzOwpAQCAtMzI1LDEyICszMjUsMTAgQEAgdm9pZCBET01XaW5kb3c6OmRpc3Bh
dGNoQWxsUGVuZGluZ1VubG9hZEV2ZW50cygpCiAvLyAzKSBDb25zdHJhaW5zIHRoZSB3aW5kb3cg
cmVjdCB0byB3aXRoaW4gdGhlIHRvcCBhbmQgbGVmdCBib3VuZGFyaWVzIG9mIHRoZSBhdmFpbGFi
bGUgc2NyZWVuIHJlY3QuCiAvLyA0KSBDb25zdHJhaW5zIHRoZSB3aW5kb3cgcmVjdCB0byB3aXRo
aW4gdGhlIGJvdHRvbSBhbmQgcmlnaHQgYm91bmRhcmllcyBvZiB0aGUgYXZhaWxhYmxlIHNjcmVl
biByZWN0LgogLy8gNSkgVHJhbnNsYXRlIHRoZSB3aW5kb3cgcmVjdCBjb29yZGluYXRlcyB0byBi
ZSB3aXRoaW4gdGhlIGNvb3JkaW5hdGUgc3BhY2Ugb2YgdGhlIHNjcmVlbi4KLUZsb2F0UmVjdCBE
T01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSogcGFnZSwgY29uc3QgRmxvYXRSZWN0JiBw
ZW5kaW5nQ2hhbmdlcykKK0Zsb2F0UmVjdCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFn
ZSYgcGFnZSwgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcykKIHsKLSAgICBBU1NFUlQo
cGFnZSk7Ci0KLSAgICBGbG9hdFJlY3Qgc2NyZWVuID0gc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdl
LT5tYWluRnJhbWUoKS52aWV3KCkpOwotICAgIEZsb2F0UmVjdCB3aW5kb3cgPSBwYWdlLT5jaHJv
bWUoKS53aW5kb3dSZWN0KCk7CisgICAgRmxvYXRSZWN0IHNjcmVlbiA9IHNjcmVlbkF2YWlsYWJs
ZVJlY3QocGFnZS5tYWluRnJhbWUoKS52aWV3KCkpOworICAgIEZsb2F0UmVjdCB3aW5kb3cgPSBw
YWdlLmNocm9tZSgpLndpbmRvd1JlY3QoKTsKIAogICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSBpbiBh
IHZhbGlkIHN0YXRlIGJlZm9yZSBhZGp1c3RpbmcgZGltZW5zaW9ucy4KICAgICBBU1NFUlQoc3Rk
Ojppc2Zpbml0ZShzY3JlZW4ueCgpKSk7CkBAIC0zNTIsNyArMzUwLDcgQEAgRmxvYXRSZWN0IERP
TVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChQYWdlKiBwYWdlLCBjb25zdCBGbG9hdFJlY3QmIHBl
bmRpbmdDaGFuZ2UKICAgICBpZiAoIXN0ZDo6aXNuYW4ocGVuZGluZ0NoYW5nZXMuaGVpZ2h0KCkp
KQogICAgICAgICB3aW5kb3cuc2V0SGVpZ2h0KHBlbmRpbmdDaGFuZ2VzLmhlaWdodCgpKTsKIAot
ICAgIEZsb2F0U2l6ZSBtaW5pbXVtU2l6ZSA9IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLm1pbmlt
dW1XaW5kb3dTaXplKCk7CisgICAgRmxvYXRTaXplIG1pbmltdW1TaXplID0gcGFnZS5jaHJvbWUo
KS5jbGllbnQoKS5taW5pbXVtV2luZG93U2l6ZSgpOwogICAgIHdpbmRvdy5zZXRXaWR0aChzdGQ6
Om1pbihzdGQ6Om1heChtaW5pbXVtU2l6ZS53aWR0aCgpLCB3aW5kb3cud2lkdGgoKSksIHNjcmVl
bi53aWR0aCgpKSk7CiAgICAgd2luZG93LnNldEhlaWdodChzdGQ6Om1pbihzdGQ6Om1heChtaW5p
bXVtU2l6ZS5oZWlnaHQoKSwgd2luZG93LmhlaWdodCgpKSwgc2NyZWVuLmhlaWdodCgpKSk7CiAK
QEAgLTM2MywzOCArMzYxLDMxIEBAIEZsb2F0UmVjdCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1Jl
Y3QoUGFnZSogcGFnZSwgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlCiAgICAgcmV0dXJu
IHdpbmRvdzsKIH0KIAotYm9vbCBET01XaW5kb3c6OmFsbG93UG9wVXAoRnJhbWUqIGZpcnN0RnJh
bWUpCitib29sIERPTVdpbmRvdzo6YWxsb3dQb3BVcChGcmFtZSYgZmlyc3RGcmFtZSkKIHsKLSAg
ICBBU1NFUlQoZmlyc3RGcmFtZSk7Ci0gICAgCi0gICAgYXV0byYgc2V0dGluZ3MgPSBmaXJzdEZy
YW1lLT5zZXR0aW5ncygpOwotCi0gICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdV
c2VyR2VzdHVyZSgpIHx8IHNldHRpbmdzLmFsbG93V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVy
ZSgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgIHJldHVybiBzZXR0aW5ncy5qYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KCk7CisgICAgYXV0byYgc2V0dGluZ3MgPSBm
aXJzdEZyYW1lLnNldHRpbmdzKCk7CisgICAgcmV0dXJuIFNjcmlwdENvbnRyb2xsZXI6OnByb2Nl
c3NpbmdVc2VyR2VzdHVyZSgpCisgICAgICAgIHx8IHNldHRpbmdzLmFsbG93V2luZG93T3Blbldp
dGhvdXRVc2VyR2VzdHVyZSgpCisgICAgICAgIHx8IHNldHRpbmdzLmphdmFTY3JpcHRDYW5PcGVu
V2luZG93c0F1dG9tYXRpY2FsbHkoKTsKIH0KIAogYm9vbCBET01XaW5kb3c6OmFsbG93UG9wVXAo
KQogewotICAgIHJldHVybiBtX2ZyYW1lICYmIGFsbG93UG9wVXAobV9mcmFtZSk7CisgICAgcmV0
dXJuIG1fZnJhbWUgJiYgYWxsb3dQb3BVcCgqbV9mcmFtZSk7CiB9CiAKLWJvb2wgRE9NV2luZG93
OjpjYW5TaG93TW9kYWxEaWFsb2coY29uc3QgRnJhbWUqIGZyYW1lKQorYm9vbCBET01XaW5kb3c6
OmNhblNob3dNb2RhbERpYWxvZyhjb25zdCBGcmFtZSYgZnJhbWUpCiB7Ci0gICAgaWYgKCFmcmFt
ZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgLy8gT3ZlcnJpZGUgc3VwcG9ydCBmb3Ig
bGF5b3V0IHRlc3RpbmcgcHVycG9zZXMuCi0gICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJhbWUt
PmRvY3VtZW50KCkpIHsKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVudCgp
KSB7CiAgICAgICAgIGlmIChhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC0+ZG9tV2luZG93KCkpIHsK
ICAgICAgICAgICAgIGlmICh3aW5kb3ctPm1fY2FuU2hvd01vZGFsRGlhbG9nT3ZlcnJpZGUpCiAg
ICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy0+bV9jYW5TaG93TW9kYWxEaWFsb2dPdmVycmlk
ZS52YWx1ZSgpOwogICAgICAgICB9CiAgICAgfQogCi0gICAgYXV0byogcGFnZSA9IGZyYW1lLT5w
YWdlKCk7Ci0gICAgcmV0dXJuIHBhZ2UgPyBwYWdlLT5jaHJvbWUoKS5jYW5SdW5Nb2RhbCgpIDog
ZmFsc2U7CisgICAgYXV0byogcGFnZSA9IGZyYW1lLnBhZ2UoKTsKKyAgICByZXR1cm4gcGFnZSAm
JiBwYWdlLT5jaHJvbWUoKS5jYW5SdW5Nb2RhbCgpOwogfQogCiBzdGF0aWMgdm9pZCBsYW5ndWFn
ZXNDaGFuZ2VkQ2FsbGJhY2sodm9pZCogY29udGV4dCkKQEAgLTQwNywyMCArMzk4LDE4IEBAIHZv
aWQgRE9NV2luZG93OjpzZXRDYW5TaG93TW9kYWxEaWFsb2dPdmVycmlkZShib29sIGFsbG93KQog
ICAgIG1fY2FuU2hvd01vZGFsRGlhbG9nT3ZlcnJpZGUgPSBhbGxvdzsKIH0KIAotRE9NV2luZG93
OjpET01XaW5kb3coRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogQ29udGV4dERlc3RydWN0aW9u
T2JzZXJ2ZXIoZG9jdW1lbnQpCi0gICAgLCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1l
bnQtPmZyYW1lKCkpCitET01XaW5kb3c6OkRPTVdpbmRvdyhEb2N1bWVudCYgZG9jdW1lbnQpCisg
ICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigmZG9jdW1lbnQpCisgICAgLCBGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1lbnQuZnJhbWUoKSkKICAgICAsIG1fd2Vha1B0ckZhY3Rv
cnkodGhpcykKIHsKICAgICBBU1NFUlQoZnJhbWUoKSk7Ci0gICAgQVNTRVJUKERPTVdpbmRvdzo6
ZG9jdW1lbnQoKSk7Ci0KICAgICBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHRoaXMsICZsYW5n
dWFnZXNDaGFuZ2VkQ2FsbGJhY2spOwogfQogCi12b2lkIERPTVdpbmRvdzo6ZGlkU2VjdXJlVHJh
bnNpdGlvblRvKERvY3VtZW50KiBkb2N1bWVudCkKK3ZvaWQgRE9NV2luZG93OjpkaWRTZWN1cmVU
cmFuc2l0aW9uVG8oRG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIG9ic2VydmVDb250ZXh0KGRv
Y3VtZW50KTsKKyAgICBvYnNlcnZlQ29udGV4dCgmZG9jdW1lbnQpOwogfQogCiBET01XaW5kb3c6
On5ET01XaW5kb3coKQpAQCAtNTQ3LDE0ICs1MzYsMTQgQEAgdm9pZCBET01XaW5kb3c6OmRlY3Jl
bWVudEdhbWVwYWRFdmVudExpc3RlbmVyQ291bnQoKQogCiAjZW5kaWYKIAotdm9pZCBET01XaW5k
b3c6OnJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkqIHByb3BlcnR5KQordm9pZCBE
T01XaW5kb3c6OnJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkmIHByb3BlcnR5KQog
ewotICAgIG1fcHJvcGVydGllcy5hZGQocHJvcGVydHkpOworICAgIG1fcHJvcGVydGllcy5hZGQo
JnByb3BlcnR5KTsKIH0KIAotdm9pZCBET01XaW5kb3c6OnVucmVnaXN0ZXJQcm9wZXJ0eShET01X
aW5kb3dQcm9wZXJ0eSogcHJvcGVydHkpCit2b2lkIERPTVdpbmRvdzo6dW5yZWdpc3RlclByb3Bl
cnR5KERPTVdpbmRvd1Byb3BlcnR5JiBwcm9wZXJ0eSkKIHsKLSAgICBtX3Byb3BlcnRpZXMucmVt
b3ZlKHByb3BlcnR5KTsKKyAgICBtX3Byb3BlcnRpZXMucmVtb3ZlKCZwcm9wZXJ0eSk7CiB9CiAK
IHZvaWQgRE9NV2luZG93OjpyZXNldFVubGVzc1N1c3BlbmRlZEZvckRvY3VtZW50U3VzcGVuc2lv
bigpCkBAIC05NzQsMjMgKzk2MywxOCBAQCB2b2lkIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1l
ckZpcmVkKFBvc3RNZXNzYWdlVGltZXImIHRpbWVyKQogICAgIGlmICghZG9jdW1lbnQoKSB8fCAh
aXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRp
c3BhdGNoTWVzc2FnZUV2ZW50V2l0aE9yaWdpbkNoZWNrKHRpbWVyLnRhcmdldE9yaWdpbigpLCB0
aW1lci5ldmVudCgqZG9jdW1lbnQoKSksIHRpbWVyLnN0YWNrVHJhY2UoKSk7Ci19Ci0KLXZvaWQg
RE9NV2luZG93OjpkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmlnaW5DaGVjayhTZWN1cml0eU9y
aWdpbiogaW50ZW5kZWRUYXJnZXRPcmlnaW4sIEV2ZW50JiBldmVudCwgUGFzc1JlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UpCi17Ci0gICAgaWYgKGludGVuZGVkVGFyZ2V0T3JpZ2lu
KSB7CisgICAgaWYgKGF1dG8qIGludGVuZGVkVGFyZ2V0T3JpZ2luID0gdGltZXIudGFyZ2V0T3Jp
Z2luKCkpIHsKICAgICAgICAgLy8gQ2hlY2sgdGFyZ2V0IG9yaWdpbiBub3cgc2luY2UgdGhlIHRh
cmdldCBkb2N1bWVudCBtYXkgaGF2ZSBjaGFuZ2VkIHNpbmNlIHRoZSB0aW1lciB3YXMgc2NoZWR1
bGVkLgogICAgICAgICBpZiAoIWludGVuZGVkVGFyZ2V0T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0
UG9ydChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkgewotICAgICAgICAgICAgaWYgKFBh
Z2VDb25zb2xlQ2xpZW50KiBwYWdlQ29uc29sZSA9IGNvbnNvbGUoKSkgeworICAgICAgICAgICAg
aWYgKGF1dG8qIHBhZ2VDb25zb2xlID0gY29uc29sZSgpKSB7CiAgICAgICAgICAgICAgICAgU3Ry
aW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvICIsIGlu
dGVuZGVkVGFyZ2V0T3JpZ2luLT50b1N0cmluZygpLCAiLiBSZWNpcGllbnQgaGFzIG9yaWdpbiAi
LCBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLnRvU3RyaW5nKCksICIuXG4iKTsKLSAgICAg
ICAgICAgICAgICBwYWdlQ29uc29sZS0+YWRkTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0
eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWVzc2FnZSwgc3RhY2tUcmFjZSk7CisgICAgICAgICAg
ICAgICAgcGFnZUNvbnNvbGUtPmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1l
c3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UsIHRpbWVyLnN0YWNrVHJhY2UoKSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBkaXNw
YXRjaEV2ZW50KGV2ZW50KTsKKyAgICBkaXNwYXRjaEV2ZW50KHRpbWVyLmV2ZW50KCpkb2N1bWVu
dCgpKSk7CiB9CiAKIERPTVNlbGVjdGlvbiogRE9NV2luZG93OjpnZXRTZWxlY3Rpb24oKQpAQCAt
MTExMyw3ICsxMDk3LDcgQEAgdm9pZCBET01XaW5kb3c6OnByaW50KCkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICBtX3Nob3VsZFByaW50V2hlbkZpbmlzaGVkTG9hZGluZyA9IGZhbHNlOwot
ICAgIHBhZ2UtPmNocm9tZSgpLnByaW50KG1fZnJhbWUpOworICAgIHBhZ2UtPmNocm9tZSgpLnBy
aW50KCptX2ZyYW1lKTsKIH0KIAogdm9pZCBET01XaW5kb3c6OnN0b3AoKQpAQCAtMTE0NSw3ICsx
MTI5LDcgQEAgdm9pZCBET01XaW5kb3c6OmFsZXJ0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAg
ICBwYWdlLT5wb2ludGVyTG9ja0NvbnRyb2xsZXIoKS5yZXF1ZXN0UG9pbnRlclVubG9jaygpOwog
I2VuZGlmCiAKLSAgICBwYWdlLT5jaHJvbWUoKS5ydW5KYXZhU2NyaXB0QWxlcnQobV9mcmFtZSwg
bWVzc2FnZSk7CisgICAgcGFnZS0+Y2hyb21lKCkucnVuSmF2YVNjcmlwdEFsZXJ0KCptX2ZyYW1l
LCBtZXNzYWdlKTsKIH0KIAogYm9vbCBET01XaW5kb3c6OmNvbmZpcm0oY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQpAQCAtMTE2Nyw3ICsxMTUxLDcgQEAgYm9vbCBET01XaW5kb3c6OmNvbmZpcm0oY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIHBhZ2UtPnBvaW50ZXJMb2NrQ29udHJvbGxlcigpLnJl
cXVlc3RQb2ludGVyVW5sb2NrKCk7CiAjZW5kaWYKIAotICAgIHJldHVybiBwYWdlLT5jaHJvbWUo
KS5ydW5KYXZhU2NyaXB0Q29uZmlybShtX2ZyYW1lLCBtZXNzYWdlKTsKKyAgICByZXR1cm4gcGFn
ZS0+Y2hyb21lKCkucnVuSmF2YVNjcmlwdENvbmZpcm0oKm1fZnJhbWUsIG1lc3NhZ2UpOwogfQog
CiBTdHJpbmcgRE9NV2luZG93Ojpwcm9tcHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIGRlZmF1bHRWYWx1ZSkKQEAgLTExOTAsNyArMTE3NCw3IEBAIFN0cmluZyBET01XaW5k
b3c6OnByb21wdChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZh
bHVlKQogI2VuZGlmCiAKICAgICBTdHJpbmcgcmV0dXJuVmFsdWU7Ci0gICAgaWYgKHBhZ2UtPmNo
cm9tZSgpLnJ1bkphdmFTY3JpcHRQcm9tcHQobV9mcmFtZSwgbWVzc2FnZSwgZGVmYXVsdFZhbHVl
LCByZXR1cm5WYWx1ZSkpCisgICAgaWYgKHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRQcm9t
cHQoKm1fZnJhbWUsIG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSwgcmV0dXJuVmFsdWUpKQogICAgICAg
ICByZXR1cm4gcmV0dXJuVmFsdWU7CiAKICAgICByZXR1cm4gU3RyaW5nKCk7CkBAIC0xMzY4LDcg
KzEzNTIsNyBAQCB2b2lkIERPTVdpbmRvdzo6c2V0U3RhdHVzKGNvbnN0IFN0cmluZyYgc3RyaW5n
KQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQobV9mcmFtZS0+ZG9jdW1lbnQoKSk7IC8v
IENsaWVudCBjYWxscyBzaG91bGRuJ3QgYmUgbWFkZSB3aGVuIHRoZSBmcmFtZSBpcyBpbiBpbmNv
bnNpc3RlbnQgc3RhdGUuCi0gICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dChtX2Zy
YW1lLCBtX3N0YXR1cyk7CisgICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dCgqbV9m
cmFtZSwgbV9zdGF0dXMpOwogfSAKICAgICAKIHZvaWQgRE9NV2luZG93OjpzZXREZWZhdWx0U3Rh
dHVzKGNvbnN0IFN0cmluZyYgc3RyaW5nKSAKQEAgLTEzODMsNyArMTM2Nyw3IEBAIHZvaWQgRE9N
V2luZG93OjpzZXREZWZhdWx0U3RhdHVzKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBBU1NFUlQobV9mcmFtZS0+ZG9jdW1lbnQoKSk7IC8vIENsaWVudCBjYWxs
cyBzaG91bGRuJ3QgYmUgbWFkZSB3aGVuIHRoZSBmcmFtZSBpcyBpbiBpbmNvbnNpc3RlbnQgc3Rh
dGUuCi0gICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dChtX2ZyYW1lLCBtX2RlZmF1
bHRTdGF0dXMpOworICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQoKm1fZnJhbWUs
IG1fZGVmYXVsdFN0YXR1cyk7CiB9CiAKIERPTVdpbmRvdyogRE9NV2luZG93OjpzZWxmKCkgY29u
c3QKQEAgLTE0MzIsOCArMTQxNiw3IEBAIERPTVdpbmRvdyogRE9NV2luZG93Ojp0b3AoKSBjb25z
dAogCiBEb2N1bWVudCogRE9NV2luZG93Ojpkb2N1bWVudCgpIGNvbnN0CiB7Ci0gICAgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50Pihj
b250ZXh0KTsKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KENvbnRleHREZXN0cnVjdGlv
bk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogfQogCiBSZWZQdHI8U3R5bGVN
ZWRpYT4gRE9NV2luZG93OjpzdHlsZU1lZGlhKCkgY29uc3QKQEAgLTE2MTgsOCArMTYwMSw3IEBA
IHZvaWQgRE9NV2luZG93Ojptb3ZlQnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKICAgICBGbG9h
dFJlY3QgZnIgPSBwYWdlLT5jaHJvbWUoKS53aW5kb3dSZWN0KCk7CiAgICAgRmxvYXRSZWN0IHVw
ZGF0ZSA9IGZyOwogICAgIHVwZGF0ZS5tb3ZlKHgsIHkpOwotICAgIC8vIFNlY3VyaXR5IGNoZWNr
ICh0aGUgc3BlYyB0YWxrcyBhYm91dCBVbml2ZXJzYWxCcm93c2VyV3JpdGUgdG8gZGlzYWJsZSB0
aGlzIGNoZWNrLi4uKQotICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2lu
ZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0
KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHVwZGF0ZSkpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6
bW92ZVRvKGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CkBAIC0xNjMzLDggKzE2MTUsNyBAQCB2b2lk
IERPTVdpbmRvdzo6bW92ZVRvKGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CiAgICAgZnIuc2V0TG9j
YXRpb24oc3IubG9jYXRpb24oKSk7CiAgICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOwogICAgIHVw
ZGF0ZS5tb3ZlKHgsIHkpOwotICAgIC8vIFNlY3VyaXR5IGNoZWNrICh0aGUgc3BlYyB0YWxrcyBh
Ym91dCBVbml2ZXJzYWxCcm93c2VyV3JpdGUgdG8gZGlzYWJsZSB0aGlzIGNoZWNrLi4uKQotICAg
IHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRh
dGUpKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3Qo
KnBhZ2UsIHVwZGF0ZSkpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6cmVzaXplQnkoZmxvYXQgeCwg
ZmxvYXQgeSkgY29uc3QKQEAgLTE2NDYsNyArMTYyNyw3IEBAIHZvaWQgRE9NV2luZG93OjpyZXNp
emVCeShmbG9hdCB4LCBmbG9hdCB5KSBjb25zdAogICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNo
cm9tZSgpLndpbmRvd1JlY3QoKTsKICAgICBGbG9hdFNpemUgZGVzdCA9IGZyLnNpemUoKSArIEZs
b2F0U2l6ZSh4LCB5KTsKICAgICBGbG9hdFJlY3QgdXBkYXRlKGZyLmxvY2F0aW9uKCksIGRlc3Qp
OwotICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdl
LCB1cGRhdGUpKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRv
d1JlY3QoKnBhZ2UsIHVwZGF0ZSkpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6cmVzaXplVG8oZmxv
YXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgY29uc3QKQEAgLTE2NTgsNyArMTYzOSw3IEBAIHZvaWQg
RE9NV2luZG93OjpyZXNpemVUbyhmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSBjb25zdAogICAg
IEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLndpbmRvd1JlY3QoKTsKICAgICBGbG9hdFNp
emUgZGVzdCA9IEZsb2F0U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKICAgICBGbG9hdFJlY3QgdXBkYXRl
KGZyLmxvY2F0aW9uKCksIGRlc3QpOwotICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3Qo
YWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRX
aW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHVwZGF0ZSkpOwogfQogCiBFeGNlcHRp
b25PcjxpbnQ+IERPTVdpbmRvdzo6c2V0VGltZW91dChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVk
QWN0aW9uPiBhY3Rpb24sIGludCB0aW1lb3V0KQpAQCAtMTY4MSw3ICsxNjYyLDcgQEAgdm9pZCBE
T01XaW5kb3c6OmNsZWFyVGltZW91dChpbnQgdGltZW91dElkKQogCiAgICAgICAgICAgICAgICAg
aWYgKCFXZWJUaHJlYWRDb3VudE9mT2JzZXJ2ZWRDb250ZW50TW9kaWZpZXJzKCkpIHsKICAgICAg
ICAgICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCi0gICAgICAg
ICAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5vYnNlcnZlZENvbnRlbnRD
aGFuZ2UobV9mcmFtZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS5vYnNlcnZlZENvbnRlbnRDaGFuZ2UoKm1fZnJhbWUpOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMTg0MSw3ICsxODIyLDcgQEAgdm9pZCBE
T01XaW5kb3c6OmluY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJzQ291bnQoKQogICAgIGlmICgr
K21fc2Nyb2xsRXZlbnRMaXN0ZW5lckNvdW50ID09IDEgJiYgZG9jdW1lbnQgPT0gJmRvY3VtZW50
LT50b3BEb2N1bWVudCgpKSB7CiAgICAgICAgIEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCk7
CiAgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+cGFnZSgpKQotICAgICAgICAgICAgZnJhbWUt
PnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKGZy
YW1lLCB0cnVlKTsKKyAgICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgp
LnNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucygqZnJhbWUsIHRydWUpOwogICAgIH0KIH0KIApA
QCAtMTg1MSw3ICsxODMyLDcgQEAgdm9pZCBET01XaW5kb3c6OmRlY3JlbWVudFNjcm9sbEV2ZW50
TGlzdGVuZXJzQ291bnQoKQogICAgIGlmICghLS1tX3Njcm9sbEV2ZW50TGlzdGVuZXJDb3VudCAm
JiBkb2N1bWVudCA9PSAmZG9jdW1lbnQtPnRvcERvY3VtZW50KCkpIHsKICAgICAgICAgRnJhbWUq
IGZyYW1lID0gdGhpcy0+ZnJhbWUoKTsKICAgICAgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdl
KCkgJiYgZG9jdW1lbnQtPnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNh
Y2hlKQotICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVl
ZHNTY3JvbGxOb3RpZmljYXRpb25zKGZyYW1lLCBmYWxzZSk7CisgICAgICAgICAgICBmcmFtZS0+
cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoKmZy
YW1lLCBmYWxzZSk7CiAgICAgfQogfQogCkBAIC0yMjg3LDggKzIyNjgsNyBAQCB2b2lkIERPTVdp
bmRvdzo6c2hvd01vZGFsRGlhbG9nKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGRpYWxvZ0ZlYQogewogICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkp
CiAgICAgICAgIHJldHVybjsKLSAgICBGcmFtZSogYWN0aXZlRnJhbWUgPSBhY3RpdmVXaW5kb3cu
ZnJhbWUoKTsKLSAgICBpZiAoIWFjdGl2ZUZyYW1lKQorICAgIGlmICghYWN0aXZlV2luZG93LmZy
YW1lKCkpCiAgICAgICAgIHJldHVybjsKICAgICBGcmFtZSogZmlyc3RGcmFtZSA9IGZpcnN0V2lu
ZG93LmZyYW1lKCk7CiAgICAgaWYgKCFmaXJzdEZyYW1lKQpAQCAtMjMwMyw3ICsyMjgzLDcgQEAg
dm9pZCBET01XaW5kb3c6OnNob3dNb2RhbERpYWxvZyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywg
Y29uc3QgU3RyaW5nJiBkaWFsb2dGZWEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlm
ICghY2FuU2hvd01vZGFsRGlhbG9nKG1fZnJhbWUpIHx8ICFmaXJzdFdpbmRvdy5hbGxvd1BvcFVw
KCkpCisgICAgaWYgKCFjYW5TaG93TW9kYWxEaWFsb2coKm1fZnJhbWUpIHx8ICFmaXJzdFdpbmRv
dy5hbGxvd1BvcFVwKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxGcmFtZT4gZGlh
bG9nRnJhbWUgPSBjcmVhdGVXaW5kb3codXJsU3RyaW5nLCBlbXB0eUF0b20sIHBhcnNlRGlhbG9n
RmVhdHVyZXMoZGlhbG9nRmVhdHVyZXNTdHJpbmcsIHNjcmVlbkF2YWlsYWJsZVJlY3QobV9mcmFt
ZS0+dmlldygpKSksIGFjdGl2ZVdpbmRvdywgKmZpcnN0RnJhbWUsICptX2ZyYW1lLCBXVEZNb3Zl
KHByZXBhcmVEaWFsb2dGdW5jdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggYzVl
OTAyODk4ODZkNzJhYTg4NmM0OWFkYjk0Nzk1ZDM3NzA1OWIzMS4uNWRlOTI3MzRmNTkyMDk3MDYw
Y2JjNjEwNTU3MjgxNTEzYjc0OGVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSwgMjAxMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9r
aWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CkBAIC0xMDcsNyArMTA3LDcgQEAgY2xhc3MgRE9NV2luZG93IGZpbmFsCiAgICAgLCBwdWJs
aWMgQmFzZTY0VXRpbGl0aWVzCiAgICAgLCBwdWJsaWMgU3VwcGxlbWVudGFibGU8RE9NV2luZG93
PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxET01XaW5kb3c+IGNyZWF0ZShEb2N1bWVudCog
ZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NV2luZG93KGRvY3VtZW50KSk7IH0K
KyAgICBzdGF0aWMgUmVmPERPTVdpbmRvdz4gY3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCkgeyBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBET01XaW5kb3coZG9jdW1lbnQpKTsgfQogICAgIFdFQkNPUkVf
RVhQT1JUIHZpcnR1YWwgfkRPTVdpbmRvdygpOwogCiAgICAgLy8gSW4gc29tZSByYXJlIGNhc2Vz
LCB3ZSdsbCByZXVzZSBhIERPTVdpbmRvdyBmb3IgYSBuZXcgRG9jdW1lbnQuIEZvciBleGFtcGxl
LApAQCAtMTE3LDE1ICsxMTcsMTAgQEAgcHVibGljOgogICAgIC8vIHdvbid0IGJlIGJsb3duIGF3
YXkgd2hlbiB0aGUgbmV0d29yayBsb2FkIGNvbW1pdHMuIFRvIG1ha2UgdGhhdCBoYXBwZW4sIHdl
CiAgICAgLy8gInNlY3VyZWx5IHRyYW5zaXRpb24iIHRoZSBleGlzdGluZyBET01XaW5kb3cgdG8g
dGhlIERvY3VtZW50IHRoYXQgcmVzdWx0cyBmcm9tCiAgICAgLy8gdGhlIG5ldHdvcmsgbG9hZC4g
U2VlIGFsc28gU2VjdXJpdHlDb250ZXh0Ojppc1NlY3VyZVRyYW5zaXRpb25Uby4KLSAgICB2b2lk
IGRpZFNlY3VyZVRyYW5zaXRpb25UbyhEb2N1bWVudCopOworICAgIHZvaWQgZGlkU2VjdXJlVHJh
bnNpdGlvblRvKERvY3VtZW50Jik7CiAKLSAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRh
cmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIERPTVdpbmRvd0V2ZW50VGFy
Z2V0SW50ZXJmYWNlVHlwZTsgfQotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9Ci0KLSAgICBET01XaW5kb3cq
IHRvRE9NV2luZG93KCkgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIHJlZ2lzdGVyUHJvcGVydHkoRE9N
V2luZG93UHJvcGVydHkqKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQ
cm9wZXJ0eSopOworICAgIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSYp
OworICAgIHZvaWQgdW5yZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5Jik7CiAKICAg
ICB2b2lkIHJlc2V0VW5sZXNzU3VzcGVuZGVkRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCk7CiAgICAg
dm9pZCBzdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCk7CkBAIC0xMzgsMTEgKzEzMywxMSBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgZGlzcGF0Y2hBbGxQZW5k
aW5nQmVmb3JlVW5sb2FkRXZlbnRzKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZvaWQg
ZGlzcGF0Y2hBbGxQZW5kaW5nVW5sb2FkRXZlbnRzKCk7CiAKLSAgICBzdGF0aWMgRmxvYXRSZWN0
IGFkanVzdFdpbmRvd1JlY3QoUGFnZSosIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5nZXMp
OworICAgIHN0YXRpYyBGbG9hdFJlY3QgYWRqdXN0V2luZG93UmVjdChQYWdlJiwgY29uc3QgRmxv
YXRSZWN0JiBwZW5kaW5nQ2hhbmdlcyk7CiAKICAgICBib29sIGFsbG93UG9wVXAoKTsgLy8gQ2Fs
bCBvbiBmaXJzdCB3aW5kb3csIG5vdCB0YXJnZXQgd2luZG93LgotICAgIHN0YXRpYyBib29sIGFs
bG93UG9wVXAoRnJhbWUqIGZpcnN0RnJhbWUpOwotICAgIHN0YXRpYyBib29sIGNhblNob3dNb2Rh
bERpYWxvZyhjb25zdCBGcmFtZSopOworICAgIHN0YXRpYyBib29sIGFsbG93UG9wVXAoRnJhbWUm
IGZpcnN0RnJhbWUpOworICAgIHN0YXRpYyBib29sIGNhblNob3dNb2RhbERpYWxvZyhjb25zdCBG
cmFtZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2FuU2hvd01vZGFsRGlhbG9nT3Zl
cnJpZGUoYm9vbCk7CiAKICAgICBTY3JlZW4qIHNjcmVlbigpIGNvbnN0OwpAQCAtMjQ1LDcgKzI0
MCw2IEBAIHB1YmxpYzoKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBvc3RNZXNzYWdlKEpTQzo6
RXhlY1N0YXRlJiwgRE9NV2luZG93JiBjYWxsZXJXaW5kb3csIEpTQzo6SlNWYWx1ZSBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdpbiwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNP
YmplY3Q+PiYmKTsKICAgICB2b2lkIHBvc3RNZXNzYWdlVGltZXJGaXJlZChQb3N0TWVzc2FnZVRp
bWVyJik7Ci0gICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmlnaW5DaGVjayhTZWN1
cml0eU9yaWdpbiogaW50ZW5kZWRUYXJnZXRPcmlnaW4sIEV2ZW50JiwgUGFzc1JlZlB0cjxJbnNw
ZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4pOwogCiAgICAgdm9pZCBsYW5ndWFnZXNDaGFuZ2VkKCk7
CiAKQEAgLTI3Miw5ICsyNjYsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBFdmVudHMKICAgICAvLyBF
dmVudFRhcmdldCBBUEkKLSAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVudExpc3Rl
bmVyT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIGJvb2wgcmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGNvbnN0IExpc3RlbmVy
T3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKSBv
dmVycmlkZTsKKyAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0
aW9ucyYpIGZpbmFsOworICAgIGJvb2wgcmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGNvbnN0IExpc3RlbmVyT3B0aW9ucyYp
IGZpbmFsOworICAgIHZvaWQgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKSBmaW5hbDsKIAogICAg
IHVzaW5nIEV2ZW50VGFyZ2V0OjpkaXNwYXRjaEV2ZW50OwogICAgIGJvb2wgZGlzcGF0Y2hFdmVu
dChFdmVudCYsIEV2ZW50VGFyZ2V0Kik7CkBAIC0yODYsOCArMjgwLDggQEAgcHVibGljOgogCiAg
ICAgdm9pZCBmaW5pc2hlZExvYWRpbmcoKTsKIAotICAgIHVzaW5nIFJlZkNvdW50ZWQ8RE9NV2lu
ZG93Pjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8RE9NV2luZG93Pjo6ZGVyZWY7CisgICAg
dXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwogCiAg
ICAgLy8gSFRNTCA1IGtleS92YWx1ZSBzdG9yYWdlCiAgICAgRXhjZXB0aW9uT3I8U3RvcmFnZSo+
IHNlc3Npb25TdG9yYWdlKCkgY29uc3Q7CkBAIC0zMTMsNiArMzA3LDcgQEAgcHVibGljOgogI2lm
IEVOQUJMRShXRUJfVElNSU5HKQogICAgIFBlcmZvcm1hbmNlKiBwZXJmb3JtYW5jZSgpIGNvbnN0
OwogI2VuZGlmCisKICAgICBkb3VibGUgbm93VGltZXN0YW1wKCkgY29uc3Q7CiAKICNpZiBQTEFU
Rk9STShJT1MpCkBAIC0zNDcsMTYgKzM0MiwyMSBAQCBwdWJsaWM6CiAgICAgV2Vha1B0cjxET01X
aW5kb3c+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdl
YWtQdHIoKTsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IERPTVdpbmRvdyhEb2N1bWVudCop
OworICAgIGV4cGxpY2l0IERPTVdpbmRvdyhEb2N1bWVudCYpOworCisgICAgRXZlbnRUYXJnZXRJ
bnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBET01X
aW5kb3dFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25Db250
ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ29udGV4
dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorCisgICAg
RE9NV2luZG93KiB0b0RPTVdpbmRvdygpIGZpbmFsOwogCiAgICAgUGFnZSogcGFnZSgpOwogICAg
IGJvb2wgYWxsb3dlZFRvQ2hhbmdlV2luZG93R2VvbWV0cnkoKSBjb25zdDsKIAotICAgIHZvaWQg
ZnJhbWVEZXN0cm95ZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXRhY2hQYWdlKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBmcmFtZURlc3Ryb3llZCgpIGZpbmFsOworICAgIHZvaWQgd2lsbERl
dGFjaFBhZ2UoKSBmaW5hbDsKIAotICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7
IHJlZigpOyB9Ci0gICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigp
OyB9CisgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7IH0KKyAgICB2b2lk
IGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAgIHN0YXRpYyBSZWZQ
dHI8RnJhbWU+IGNyZWF0ZVdpbmRvdyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgQXRv
bWljU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgRE9NV2luZG93JiBh
Y3RpdmVXaW5kb3csIEZyYW1lJiBmaXJzdEZyYW1lLCBGcmFtZSYgb3BlbmVyRnJhbWUsIHN0ZDo6
ZnVuY3Rpb248dm9pZChET01XaW5kb3cmKT4gcHJlcGFyZURpYWxvZ0Z1bmN0aW9uID0gbnVsbHB0
cik7CiAgICAgYm9vbCBpc0luc2VjdXJlU2NyaXB0QWNjZXNzKERPTVdpbmRvdyYgYWN0aXZlV2lu
ZG93LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93UHJvcGVydHkuY3BwCmluZGV4IGEzNzcwZThlNzAwYzY1ODI2MjZjNjRiOTg1ZmRlYzZmYzA3
ZjMzZjUuLjU1MDk2YjY0YWFhN2YyNDkzMWEyYzcxOWE3ZTVjNjA5ZWQ1MGY4NTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCkBAIC00MiwxNCArNDIsMTQgQEAg
RE9NV2luZG93UHJvcGVydHk6OkRPTVdpbmRvd1Byb3BlcnR5KEZyYW1lKiBmcmFtZSkKICAgICAv
LyBXZSBzaG91bGQgZml4IHRoYXQuICA8cmRhcjovL3Byb2JsZW0vMTE1NjcxMzI+CiAgICAgaWYg
KG1fZnJhbWUpIHsKICAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93ID0gbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+ZG9tV2luZG93KCk7Ci0gICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+cmVn
aXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93LT5yZWdp
c3RlclByb3BlcnR5KCp0aGlzKTsKICAgICB9CiB9CiAKIERPTVdpbmRvd1Byb3BlcnR5Ojp+RE9N
V2luZG93UHJvcGVydHkoKQogewogICAgIGlmIChtX2Fzc29jaWF0ZWRET01XaW5kb3cpCi0gICAg
ICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+dW5yZWdpc3RlclByb3BlcnR5KHRoaXMpOworICAg
ICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ctPnVucmVnaXN0ZXJQcm9wZXJ0eSgqdGhpcyk7CiAK
ICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3cgPSBudWxscHRyOwogICAgIG1fZnJhbWUgPSBudWxs
cHRyOwpAQCAtODYsNyArODYsNyBAQCB2b2lkIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJv
eUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUoKQogICAgIC8vIERPTVdpbmRvd1Byb3BlcnR5IGxp
ZmV0aW1lIGlzbid0IHRpZWQgZGlyZWN0bHkgdG8gdGhlIERPTVdpbmRvdyBpdHNlbGYgc28gaXQg
aXMgaW1wb3J0YW50IHRoYXQgaXQgdW5yZWdpc3RlcgogICAgIC8vIGl0c2VsZiBmcm9tIGFueSBE
T01XaW5kb3cgaXQgaXMgYXNzb2NpYXRlZCB3aXRoIGlmIHRoYXQgRE9NV2luZG93IGlzIGdvaW5n
IGF3YXkuCiAgICAgaWYgKG1fYXNzb2NpYXRlZERPTVdpbmRvdykKLSAgICAgICAgbV9hc3NvY2lh
dGVkRE9NV2luZG93LT51bnJlZ2lzdGVyUHJvcGVydHkodGhpcyk7CisgICAgICAgIG1fYXNzb2Np
YXRlZERPTVdpbmRvdy0+dW5yZWdpc3RlclByb3BlcnR5KCp0aGlzKTsKICAgICBtX2Fzc29jaWF0
ZWRET01XaW5kb3cgPSBudWxscHRyOwogICAgIG1fZnJhbWUgPSBudWxscHRyOwogfQpAQCAtMTAw
LDcgKzEwMCw3IEBAIHZvaWQgRE9NV2luZG93UHJvcGVydHk6OndpbGxEZXN0cm95R2xvYmFsT2Jq
ZWN0SW5GcmFtZSgpCiAgICAgLy8gRE9NV2luZG93UHJvcGVydHkgbGlmZXRpbWUgaXNuJ3QgdGll
ZCBkaXJlY3RseSB0byB0aGUgRE9NV2luZG93IGl0c2VsZiBzbyBpdCBpcyBpbXBvcnRhbnQgdGhh
dCBpdCB1bnJlZ2lzdGVyCiAgICAgLy8gaXRzZWxmIGZyb20gYW55IERPTVdpbmRvdyBpdCBpcyBh
c3NvY2lhdGVkIHdpdGggaWYgdGhhdCBET01XaW5kb3cgaXMgZ29pbmcgYXdheS4KICAgICBpZiAo
bV9hc3NvY2lhdGVkRE9NV2luZG93KQotICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ctPnVu
cmVnaXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93LT51
bnJlZ2lzdGVyUHJvcGVydHkoKnRoaXMpOwogICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdyA9IG51
bGxwdHI7CiAgICAgbV9mcmFtZSA9IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVi
dWdQYWdlT3ZlcmxheXMuY3BwCmluZGV4IGNhYTA3YTQ3YmVlOGYxOWNlZTM0NGVmYTU3NmY1MGVk
NDUxNDczZWEuLmFmMDgwMmJjOGJlODAzODFkMTMzMDUzZjc3OGZjM2E3NjM2NDNlNGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCkBAIC00NCw3ICs0NCw3IEBA
IERlYnVnUGFnZU92ZXJsYXlzKiBEZWJ1Z1BhZ2VPdmVybGF5czo6c2hhcmVkRGVidWdPdmVybGF5
czsKIAogY2xhc3MgUmVnaW9uT3ZlcmxheSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlZ2lvbk92ZXJs
YXk+LCBwdWJsaWMgUGFnZU92ZXJsYXk6OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBh
c3NSZWZQdHI8UmVnaW9uT3ZlcmxheT4gY3JlYXRlKE1haW5GcmFtZSYsIERlYnVnUGFnZU92ZXJs
YXlzOjpSZWdpb25UeXBlKTsKKyAgICBzdGF0aWMgUmVmUHRyPFJlZ2lvbk92ZXJsYXk+IGNyZWF0
ZShNYWluRnJhbWUmLCBEZWJ1Z1BhZ2VPdmVybGF5czo6UmVnaW9uVHlwZSk7CiAgICAgdmlydHVh
bCB+UmVnaW9uT3ZlcmxheSgpOwogCiAgICAgdm9pZCByZWNvbXB1dGVSZWdpb24oKTsKQEAgLTE0
Myw3ICsxNDMsNyBAQCBib29sIE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uT3ZlcmxheTo6dXBkYXRl
UmVnaW9uKCkKICAgICByZXR1cm4gcmVnaW9uQ2hhbmdlZDsKIH0KIAotUGFzc1JlZlB0cjxSZWdp
b25PdmVybGF5PiBSZWdpb25PdmVybGF5OjpjcmVhdGUoTWFpbkZyYW1lJiBmcmFtZSwgRGVidWdQ
YWdlT3ZlcmxheXM6OlJlZ2lvblR5cGUgcmVnaW9uVHlwZSkKK1JlZlB0cjxSZWdpb25PdmVybGF5
PiBSZWdpb25PdmVybGF5OjpjcmVhdGUoTWFpbkZyYW1lJiBmcmFtZSwgRGVidWdQYWdlT3Zlcmxh
eXM6OlJlZ2lvblR5cGUgcmVnaW9uVHlwZSkKIHsKICAgICBzd2l0Y2ggKHJlZ2lvblR5cGUpIHsK
ICAgICBjYXNlIERlYnVnUGFnZU92ZXJsYXlzOjpSZWdpb25UeXBlOjpXaGVlbEV2ZW50SGFuZGxl
cnM6CkBAIC0xNjUsNyArMTY1LDcgQEAgUmVnaW9uT3ZlcmxheTo6UmVnaW9uT3ZlcmxheShNYWlu
RnJhbWUmIGZyYW1lLCBDb2xvciByZWdpb25Db2xvcikKIFJlZ2lvbk92ZXJsYXk6On5SZWdpb25P
dmVybGF5KCkKIHsKICAgICBpZiAobV9vdmVybGF5KQotICAgICAgICBtX2ZyYW1lLnBhZ2VPdmVy
bGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSwgUGFn
ZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgICAgICBtX2ZyYW1lLnBhZ2VPdmVy
bGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX292ZXJsYXksIFBhZ2VPdmVy
bGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIH0KIAogdm9pZCBSZWdpb25PdmVybGF5Ojp3aWxs
TW92ZVRvUGFnZShQYWdlT3ZlcmxheSYsIFBhZ2UqIHBhZ2UpCkBAIC0yNDgsNyArMjQ4LDcgQEAg
UmVnaW9uT3ZlcmxheSYgRGVidWdQYWdlT3ZlcmxheXM6OmVuc3VyZVJlZ2lvbk92ZXJsYXlGb3JG
cmFtZShNYWluRnJhbWUmIGZyYW1lLAogdm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6c2hvd1JlZ2lv
bk92ZXJsYXkoTWFpbkZyYW1lJiBmcmFtZSwgUmVnaW9uVHlwZSByZWdpb25UeXBlKQogewogICAg
IFJlZ2lvbk92ZXJsYXkmIHZpc3VhbGl6ZXIgPSBlbnN1cmVSZWdpb25PdmVybGF5Rm9yRnJhbWUo
ZnJhbWUsIHJlZ2lvblR5cGUpOwotICAgIGZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmlu
c3RhbGxQYWdlT3ZlcmxheSgmdmlzdWFsaXplci5vdmVybGF5KCksIFBhZ2VPdmVybGF5OjpGYWRl
TW9kZTo6RG9Ob3RGYWRlKTsKKyAgICBmcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0
YWxsUGFnZU92ZXJsYXkodmlzdWFsaXplci5vdmVybGF5KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9k
ZTo6RG9Ob3RGYWRlKTsKIH0KIAogdm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6aGlkZVJlZ2lvbk92
ZXJsYXkoTWFpbkZyYW1lJiBmcmFtZSwgUmVnaW9uVHlwZSByZWdpb25UeXBlKQpAQCAtMjU3LDcg
KzI1Nyw3IEBAIHZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OmhpZGVSZWdpb25PdmVybGF5KE1haW5G
cmFtZSYgZnJhbWUsIFJlZ2lvblR5cGUgcmVnaW9uVHlwCiAgICAgaWYgKGl0ICE9IG1fZnJhbWVS
ZWdpb25PdmVybGF5cy5lbmQoKSkgewogICAgICAgICBhdXRvJiB2aXN1YWxpemVycyA9IGl0LT52
YWx1ZTsKICAgICAgICAgaWYgKFJlZ2lvbk92ZXJsYXkqIHZpc3VhbGl6ZXIgPSB2aXN1YWxpemVy
c1tpbmRleE9mKHJlZ2lvblR5cGUpXS5nZXQoKSkgewotICAgICAgICAgICAgZnJhbWUucGFnZU92
ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoJnZpc3VhbGl6ZXItPm92ZXJs
YXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgICAgICAgICAgZnJh
bWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkodmlzdWFsaXpl
ci0+b3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAgICAg
ICAgICB2aXN1YWxpemVyc1tpbmRleE9mKHJlZ2lvblR5cGUpXSA9IG51bGxwdHI7CiAgICAgICAg
IH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGYyMzE4
YTAzYzE0YmQxZGY4MjMyMGNjMDdjNzg5OWIyOTQyN2M2NDYuLmRmNmNmZTA0YzI3YTNmOTg0MDIy
MTlhNjZjODgyYjNkNDNiNmZlNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZHJhZ0V4aXRlZChj
b25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAjZW5kaWYKICAgICAgICAgUmVmUHRyPERhdGFUcmFu
c2Zlcj4gZGF0YVRyYW5zZmVyID0gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChw
b2xpY3ksIGRyYWdEYXRhKTsKICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRTb3VyY2VPcGVyYXRp
b24oZHJhZ0RhdGEuZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrKCkpOwotICAgICAgICBtX3Bh
Z2UubWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuY2FuY2VsRHJhZ0FuZERyb3AoY3JlYXRlTW91
c2VFdmVudChkcmFnRGF0YSksIGRhdGFUcmFuc2Zlci5nZXQoKSk7CisgICAgICAgIG1fcGFnZS5t
YWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5jYW5jZWxEcmFnQW5kRHJvcChjcmVhdGVNb3VzZUV2
ZW50KGRyYWdEYXRhKSwgKmRhdGFUcmFuc2Zlcik7CiAgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0
QWNjZXNzUG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7IC8vIEludmFsaWRh
dGUgZGF0YVRyYW5zZmVyIGhlcmUgZm9yIHNlY3VyaXR5LgogICAgIH0KICAgICBtb3VzZU1vdmVk
SW50b0RvY3VtZW50KG51bGxwdHIpOwpAQCAtMjI3LDcgKzIyNyw3IEBAIGJvb2wgRHJhZ0NvbnRy
b2xsZXI6OnBlcmZvcm1EcmFnT3BlcmF0aW9uKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKICAg
ICAgICAgICAgIC8vIFNlbmRpbmcgYW4gZXZlbnQgY2FuIHJlc3VsdCBpbiB0aGUgZGVzdHJ1Y3Rp
b24gb2YgdGhlIHZpZXcgYW5kIHBhcnQuCiAgICAgICAgICAgICBSZWZQdHI8RGF0YVRyYW5zZmVy
PiBkYXRhVHJhbnNmZXIgPSBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdBbmREcm9wKERhdGFU
cmFuc2ZlckFjY2Vzc1BvbGljeTo6UmVhZGFibGUsIGRyYWdEYXRhKTsKICAgICAgICAgICAgIGRh
dGFUcmFuc2Zlci0+c2V0U291cmNlT3BlcmF0aW9uKGRyYWdEYXRhLmRyYWdnaW5nU291cmNlT3Bl
cmF0aW9uTWFzaygpKTsKLSAgICAgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSBtYWluRnJhbWUt
PmV2ZW50SGFuZGxlcigpLnBlcmZvcm1EcmFnQW5kRHJvcChjcmVhdGVNb3VzZUV2ZW50KGRyYWdE
YXRhKSwgZGF0YVRyYW5zZmVyLmdldCgpKTsKKyAgICAgICAgICAgIHByZXZlbnRlZERlZmF1bHQg
PSBtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLnBlcmZvcm1EcmFnQW5kRHJvcChjcmVhdGVNb3Vz
ZUV2ZW50KGRyYWdEYXRhKSwgKmRhdGFUcmFuc2Zlcik7CiAgICAgICAgICAgICBkYXRhVHJhbnNm
ZXItPnNldEFjY2Vzc1BvbGljeShEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6Ok51bWIpOyAvLyBJ
bnZhbGlkYXRlIGRhdGFUcmFuc2ZlciBoZXJlIGZvciBzZWN1cml0eS4KICAgICAgICAgfQogICAg
ICAgICBpZiAocHJldmVudGVkRGVmYXVsdCkgewpAQCAtNTQ3LDcgKzU0Nyw3IEBAIGJvb2wgRHJh
Z0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERyYWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQog
CiAgICAgaWYgKHJvb3RFZGl0YWJsZUVsZW1lbnQpIHsKICAgICAgICAgaWYgKEZyYW1lKiBmcmFt
ZSA9IHJvb3RFZGl0YWJsZUVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAg
IGZyYW1lLT5ldmVudEhhbmRsZXIoKS51cGRhdGVEcmFnU3RhdGVBZnRlckVkaXREcmFnSWZOZWVk
ZWQocm9vdEVkaXRhYmxlRWxlbWVudC5nZXQoKSk7CisgICAgICAgICAgICBmcmFtZS0+ZXZlbnRI
YW5kbGVyKCkudXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKCpyb290RWRpdGFi
bGVFbGVtZW50KTsKICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTYyMSw3ICs2MjEsNyBA
QCBib29sIERyYWdDb250cm9sbGVyOjp0cnlESFRNTERyYWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdE
YXRhLCBEcmFnT3BlcmF0aW9uJiBvcGVyYQogICAgIGRhdGFUcmFuc2Zlci0+c2V0U291cmNlT3Bl
cmF0aW9uKHNyY09wTWFzayk7CiAKICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQgPSBjcmVh
dGVNb3VzZUV2ZW50KGRyYWdEYXRhKTsKLSAgICBpZiAoIW1haW5GcmFtZS0+ZXZlbnRIYW5kbGVy
KCkudXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQsIGRhdGFUcmFuc2Zlci5nZXQoKSkpIHsKKyAgICBp
ZiAoIW1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQsICpk
YXRhVHJhbnNmZXIpKSB7CiAgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0QWNjZXNzUG9saWN5KERh
dGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7IC8vIEludmFsaWRhdGUgZGF0YVRyYW5zZmVy
IGhlcmUgZm9yIHNlY3VyaXR5LgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDkyM2U0MTY5Zjc4ZDBhZmYwYWNiMzNkYzY5
MWI4YTlhNTgwZDMwZWQuLmE0YTI2Y2NmNjVhMjViM2E3NzMwNTRiZGNmNmNiOWE3MmUzZmYyYzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTEwODQsMTIgKzEwODQsMTIg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OmRpZFBhblNjcm9sbFN0b3AoKQogICAgIG1fYXV0b3Njcm9s
bENvbnRyb2xsZXItPmRpZFBhblNjcm9sbFN0b3AoKTsKIH0KIAotdm9pZCBFdmVudEhhbmRsZXI6
OnN0YXJ0UGFuU2Nyb2xsaW5nKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyKQordm9pZCBFdmVudEhh
bmRsZXI6OnN0YXJ0UGFuU2Nyb2xsaW5nKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQogewogI2lm
ICFQTEFURk9STShJT1MpCi0gICAgaWYgKCFpczxSZW5kZXJCb3g+KCpyZW5kZXJlcikpCisgICAg
aWYgKCFpczxSZW5kZXJCb3g+KHJlbmRlcmVyKSkKICAgICAgICAgcmV0dXJuOwotICAgIG1fYXV0
b3Njcm9sbENvbnRyb2xsZXItPnN0YXJ0UGFuU2Nyb2xsaW5nKGRvd25jYXN0PFJlbmRlckJveD4o
cmVuZGVyZXIpLCBsYXN0S25vd25Nb3VzZVBvc2l0aW9uKCkpOworICAgIG1fYXV0b3Njcm9sbENv
bnRyb2xsZXItPnN0YXJ0UGFuU2Nyb2xsaW5nKCZkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVy
KSwgbGFzdEtub3duTW91c2VQb3NpdGlvbigpKTsKICAgICBpbnZhbGlkYXRlQ2xpY2soKTsKICNl
bmRpZgogfQpAQCAtMjIzNiw3ICsyMjM2LDcgQEAgc3RhdGljIGJvb2wgZmluZERyb3Bab25lKE5v
ZGUqIHRhcmdldCwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIpCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogICAgIAotYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBs
YXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQorYm9v
bCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVu
dCYgZXZlbnQsIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyKQogewogICAgIFJlZjxGcmFtZT4g
cHJvdGVjdGVkRnJhbWUobV9mcmFtZSk7CiAKQEAgLTIyNzUsMTYgKzIyNzUsMTYgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
ZXZlbnQsIERhdGFUcmFuc2YKICAgICAgICAgICAgICAgICAvLyBmb3Igbm93IHdlIGRvbid0IGNh
cmUgaWYgZXZlbnQgaGFuZGxlciBjYW5jZWxzIGRlZmF1bHQgYmVoYXZpb3IsIHNpbmNlIHRoZXJl
IGlzIG5vbmUKICAgICAgICAgICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVudChldmVudE5hbWVz
KCkuZHJhZ0V2ZW50LCBldmVudCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhY2NlcHQg
PSBkaXNwYXRjaERyYWdFdmVudChldmVudE5hbWVzKCkuZHJhZ2VudGVyRXZlbnQsICpuZXdUYXJn
ZXQsIGV2ZW50LCBkYXRhVHJhbnNmZXIpOworICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hE
cmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdlbnRlckV2ZW50LCAqbmV3VGFyZ2V0LCBldmVudCwg
JmRhdGFUcmFuc2Zlcik7CiAgICAgICAgICAgICBpZiAoIWFjY2VwdCkKLSAgICAgICAgICAgICAg
ICBhY2NlcHQgPSBmaW5kRHJvcFpvbmUobmV3VGFyZ2V0LmdldCgpLCBkYXRhVHJhbnNmZXIpOwor
ICAgICAgICAgICAgICAgIGFjY2VwdCA9IGZpbmREcm9wWm9uZShuZXdUYXJnZXQuZ2V0KCksICZk
YXRhVHJhbnNmZXIpOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHRhcmdldElzRnJhbWUobV9k
cmFnVGFyZ2V0LmdldCgpLCB0YXJnZXRGcmFtZSkpIHsKICAgICAgICAgICAgIGlmICh0YXJnZXRG
cmFtZSkKICAgICAgICAgICAgICAgICBhY2NlcHQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5kbGVy
KCkudXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQsIGRhdGFUcmFuc2Zlcik7CiAgICAgICAgIH0gZWxz
ZSBpZiAobV9kcmFnVGFyZ2V0KQotICAgICAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnRO
YW1lcygpLmRyYWdsZWF2ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgZGF0YVRyYW5zZmVy
KTsKKyAgICAgICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnbGVhdmVF
dmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsICZkYXRhVHJhbnNmZXIpOwogCiAgICAgICAgIGlm
IChuZXdUYXJnZXQpIHsKICAgICAgICAgICAgIC8vIFdlIGRvIG5vdCBleHBsaWNpdGx5IGNhbGwg
ZGlzcGF0Y2hEcmFnRXZlbnQgaGVyZSBiZWNhdXNlIGl0IGNvdWxkIHVsdGltYXRlbHkgcmVzdWx0
IGluIHRoZSBhcHBlYXJhbmNlIHRoYXQKQEAgLTIzMDIsOSArMjMwMiw5IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50
LCBEYXRhVHJhbnNmCiAgICAgICAgICAgICAgICAgLy8gZm9yIG5vdyB3ZSBkb24ndCBjYXJlIGlm
IGV2ZW50IGhhbmRsZXIgY2FuY2VscyBkZWZhdWx0IGJlaGF2aW9yLCBzaW5jZSB0aGVyZSBpcyBu
b25lCiAgICAgICAgICAgICAgICAgZGlzcGF0Y2hEcmFnU3JjRXZlbnQoZXZlbnROYW1lcygpLmRy
YWdFdmVudCwgZXZlbnQpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYWNjZXB0ID0gZGlz
cGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdvdmVyRXZlbnQsICpuZXdUYXJnZXQsIGV2
ZW50LCBkYXRhVHJhbnNmZXIpOworICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZl
bnQoZXZlbnROYW1lcygpLmRyYWdvdmVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCAmZGF0YVRy
YW5zZmVyKTsKICAgICAgICAgICAgIGlmICghYWNjZXB0KQotICAgICAgICAgICAgICAgIGFjY2Vw
dCA9IGZpbmREcm9wWm9uZShuZXdUYXJnZXQuZ2V0KCksIGRhdGFUcmFuc2Zlcik7CisgICAgICAg
ICAgICAgICAgYWNjZXB0ID0gZmluZERyb3Bab25lKG5ld1RhcmdldC5nZXQoKSwgJmRhdGFUcmFu
c2Zlcik7CiAgICAgICAgICAgICBtX3Nob3VsZE9ubHlGaXJlRHJhZ092ZXJFdmVudCA9IGZhbHNl
OwogICAgICAgICB9CiAgICAgfQpAQCAtMjMxMiw3ICsyMzEyLDcgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERh
dGFUcmFuc2YKICAgICByZXR1cm4gYWNjZXB0OwogfQogCi12b2lkIEV2ZW50SGFuZGxlcjo6Y2Fu
Y2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5z
ZmVyKiBkYXRhVHJhbnNmZXIpCit2b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsRHJhZ0FuZERyb3Ao
Y29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNm
ZXIpCiB7CiAgICAgUmVmPEZyYW1lPiBwcm90ZWN0ZWRGcmFtZShtX2ZyYW1lKTsKIApAQCAtMjMy
MywxMiArMjMyMywxMiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsRHJhZ0FuZERyb3AoY29u
c3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZgogICAgIH0gZWxzZSBpZiAo
bV9kcmFnVGFyZ2V0KSB7CiAgICAgICAgIGlmIChkcmFnU3RhdGUoKS5zb3VyY2UgJiYgZHJhZ1N0
YXRlKCkuc2hvdWxkRGlzcGF0Y2hFdmVudHMpCiAgICAgICAgICAgICBkaXNwYXRjaERyYWdTcmNF
dmVudChldmVudE5hbWVzKCkuZHJhZ0V2ZW50LCBldmVudCk7Ci0gICAgICAgIGRpc3BhdGNoRHJh
Z0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnbGVhdmVFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQs
IGRhdGFUcmFuc2Zlcik7CisgICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5k
cmFnbGVhdmVFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsICZkYXRhVHJhbnNmZXIpOwogICAg
IH0KICAgICBjbGVhckRyYWdTdGF0ZSgpOwogfQogCi1ib29sIEV2ZW50SGFuZGxlcjo6cGVyZm9y
bURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2Zl
ciogZGF0YVRyYW5zZmVyKQorYm9vbCBFdmVudEhhbmRsZXI6OnBlcmZvcm1EcmFnQW5kRHJvcChj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2Zl
cikKIHsKICAgICBSZWY8RnJhbWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUpOwogCkBAIC0yMzM4
LDcgKzIzMzgsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6cGVyZm9ybURyYWdBbmREcm9wKGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFucwogICAgICAgICBpZiAodGFyZ2V0
RnJhbWUpCiAgICAgICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gdGFyZ2V0RnJhbWUtPmV2ZW50
SGFuZGxlcigpLnBlcmZvcm1EcmFnQW5kRHJvcChldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICB9
IGVsc2UgaWYgKG1fZHJhZ1RhcmdldCkKLSAgICAgICAgcHJldmVudGVkRGVmYXVsdCA9IGRpc3Bh
dGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcm9wRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50
LCBkYXRhVHJhbnNmZXIpOworICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gZGlzcGF0Y2hEcmFn
RXZlbnQoZXZlbnROYW1lcygpLmRyb3BFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsICZkYXRh
VHJhbnNmZXIpOwogICAgIGNsZWFyRHJhZ1N0YXRlKCk7CiAgICAgcmV0dXJuIHByZXZlbnRlZERl
ZmF1bHQ7CiB9CkBAIC0yMzUzLDkgKzIzNTMsMTAgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFy
RHJhZ1N0YXRlKCkKICAgICBtX3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwogI2VuZGlm
CiB9CisKICNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQogCi12b2lkIEV2ZW50SGFuZGxl
cjo6c2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxl
bWVudCkKK3ZvaWQgRXZlbnRIYW5kbGVyOjpzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQo
RWxlbWVudCogZWxlbWVudCkKIHsKICAgICBtX2NhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCA9
IGVsZW1lbnQ7CiAgICAgbV9ldmVudEhhbmRsZXJXaWxsUmVzZXRDYXB0dXJpbmdNb3VzZUV2ZW50
c0VsZW1lbnQgPSBmYWxzZTsKQEAgLTI1NjMsNyArMjU2NCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUq
IHRhcmdlCiAKICAgICAvLyBJZiBmb2N1cyBzaGlmdCBpcyBibG9ja2VkLCB3ZSBlYXQgdGhlIGV2
ZW50LgogICAgIGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKTsKLSAgICBpZiAocGFnZSAmJiAh
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQoZWxlbWVudCwgJm1fZnJh
bWUpKQorICAgIGlmIChwYWdlICYmICFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2Vk
RWxlbWVudChlbGVtZW50LCBtX2ZyYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAg
cmV0dXJuIHRydWU7CkBAIC0zNDExLDExICszNDEyLDExIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpk
cmFnU291cmNlRW5kZWRBdChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEcmFnT3Bl
cmF0CiAgICAgbV9tb3VzZURvd25NYXlTdGFydERyYWcgPSBmYWxzZTsKIH0KIAotdm9pZCBFdmVu
dEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRlZChFbGVtZW50KiBy
b290RWRpdGFibGVFbGVtZW50KQordm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0ZUFm
dGVyRWRpdERyYWdJZk5lZWRlZChFbGVtZW50JiByb290RWRpdGFibGVFbGVtZW50KQogewogICAg
IC8vIElmIGluc2VydGluZyB0aGUgZHJhZ2dlZCBjb250ZW50cyByZW1vdmVkIHRoZSBkcmFnIHNv
dXJjZSwgd2Ugc3RpbGwgd2FudCB0byBmaXJlIGRyYWdlbmQgYXQgdGhlIHJvb3QgZWRpdGFibGUg
ZWxlbWVudC4KICAgICBpZiAoZHJhZ1N0YXRlKCkuc291cmNlICYmICFkcmFnU3RhdGUoKS5zb3Vy
Y2UtPmluRG9jdW1lbnQoKSkKLSAgICAgICAgZHJhZ1N0YXRlKCkuc291cmNlID0gcm9vdEVkaXRh
YmxlRWxlbWVudDsKKyAgICAgICAgZHJhZ1N0YXRlKCkuc291cmNlID0gJnJvb3RFZGl0YWJsZUVs
ZW1lbnQ7CiB9CiAKIC8vIFJldHVybiB2YWx1ZSBpbmRpY2F0ZXMgaWYgd2Ugc2hvdWxkIGNvbnRp
bnVlICJkZWZhdWx0IHByb2Nlc3NpbmciLCBpLmUuLCB3aGV0aGVyIGV2ZW50IGhhbmRsZXIgY2Fu
Y2VsZWQuCkBAIC0zNjI1LDI1ICszNjI2LDI0IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVU
ZXh0SW5wdXRFdmVudChjb25zdCBTdHJpbmcmIHRleHQsIEV2ZW50KiB1bmRlcmx5aW5nRXZlCiAg
ICAgcmV0dXJuIGV2ZW50LT5kZWZhdWx0SGFuZGxlZCgpOwogfQogICAgIAotYm9vbCBFdmVudEhh
bmRsZXI6OmlzS2V5Ym9hcmRPcHRpb25UYWIoS2V5Ym9hcmRFdmVudCogZXZlbnQpCitib29sIEV2
ZW50SGFuZGxlcjo6aXNLZXlib2FyZE9wdGlvblRhYihLZXlib2FyZEV2ZW50JiBldmVudCkKIHsK
LSAgICByZXR1cm4gZXZlbnQKLSAgICAgICAgJiYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1l
cygpLmtleWRvd25FdmVudCB8fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVz
c0V2ZW50KQotICAgICAgICAmJiBldmVudC0+YWx0S2V5KCkKLSAgICAgICAgJiYgZXZlbnQtPmtl
eUlkZW50aWZpZXIoKSA9PSAiVSswMDA5IjsgICAgCisgICAgcmV0dXJuIChldmVudC50eXBlKCkg
PT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCB8fCBldmVudC50eXBlKCkgPT0gZXZlbnROYW1l
cygpLmtleXByZXNzRXZlbnQpCisgICAgICAgICYmIGV2ZW50LmFsdEtleSgpCisgICAgICAgICYm
IGV2ZW50LmtleUlkZW50aWZpZXIoKSA9PSAiVSswMDA5IjsKIH0KIAotYm9vbCBFdmVudEhhbmRs
ZXI6OmV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdChLZXlib2FyZEV2ZW50
KiBldmVudCkKK2Jvb2wgRXZlbnRIYW5kbGVyOjpldmVudEludmVydHNUYWJzVG9MaW5rc0NsaWVu
dENhbGxSZXN1bHQoS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0Ep
IHx8IFBMQVRGT1JNKEVGTCkKLSAgICByZXR1cm4gRXZlbnRIYW5kbGVyOjppc0tleWJvYXJkT3B0
aW9uVGFiKGV2ZW50KTsKKyAgICByZXR1cm4gaXNLZXlib2FyZE9wdGlvblRhYihldmVudCk7CiAj
ZWxzZQogICAgIFVOVVNFRF9QQVJBTShldmVudCk7CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlm
CiB9CiAKLWJvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9MaW5rcyhLZXlib2FyZEV2ZW50KiBldmVu
dCkgY29uc3QKK2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9MaW5rcyhLZXlib2FyZEV2ZW50JiBl
dmVudCkgY29uc3QKIHsKICAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBuZWVkcyBhIGJldHRl
ciBuYW1lLiBJdCBjYW4gYmUgY2FsbGVkIGZvciBrZXlwcmVzc2VzIG90aGVyIHRoYW4gVGFiIHdo
ZW4gc3BhdGlhbCBuYXZpZ2F0aW9uIGlzIGVuYWJsZWQuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5oCmluZGV4IGRlNzhiY2FlODRhNzY2NGRlMjhkNWQxNzkwNmI5YTNkYjJlMWI0MjMuLmUx
MjgxYjZhYjkyZWIzMDcyOGFiMzk1ZDRhZjRhYTIwNjE3OTQ1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9F
dmVudEhhbmRsZXIuaApAQCAtNTcsNiArNTcsMTAgQEAgT0JKQ19DTEFTUyBXQUtWaWV3OwogT0JK
Q19DTEFTUyBOU1ZpZXc7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKE1BQykKK09CSkNfQ0xBU1Mg
TlNFdmVudDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEF1dG9zY3Jv
bGxDb250cm9sbGVyOwpAQCAtMTAwLDcgKzEwNCw3IEBAIGV4dGVybiBjb25zdCBpbnQgTGlua0Ry
YWdIeXN0ZXJlc2lzOwogZXh0ZXJuIGNvbnN0IGludCBJbWFnZURyYWdIeXN0ZXJlc2lzOwogZXh0
ZXJuIGNvbnN0IGludCBUZXh0RHJhZ0h5c3RlcmVzaXM7CiBleHRlcm4gY29uc3QgaW50IEdlbmVy
YWxEcmFnSHlzdGVyZXNpczsKLSNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2VuZGlm
CiAKICNpZiBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKSB8fCBFTkFCTEUoTUFDX0dFU1RVUkVf
RVZFTlRTKQogZXh0ZXJuIGNvbnN0IGZsb2F0IEdlc3R1cmVVbmtub3duOwpAQCAtMTM2LDcgKzE0
MCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoUEFOX1NDUk9MTElORykKICAgICB2b2lkIGRpZFBh
blNjcm9sbFN0YXJ0KCk7CiAgICAgdm9pZCBkaWRQYW5TY3JvbGxTdG9wKCk7Ci0gICAgdm9pZCBz
dGFydFBhblNjcm9sbGluZyhSZW5kZXJFbGVtZW50Kik7CisgICAgdm9pZCBzdGFydFBhblNjcm9s
bGluZyhSZW5kZXJFbGVtZW50Jik7CiAjZW5kaWYKIAogICAgIHZvaWQgc3RvcEF1dG9zY3JvbGxU
aW1lcihib29sIHJlbmRlcmVySXNCZWluZ0Rlc3Ryb3llZCA9IGZhbHNlKTsKQEAgLTE1NiwxMyAr
MTYwLDEzIEBAIHB1YmxpYzoKICAgICBib29sIG1vdXNlUHJlc3NlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fbW91c2VQcmVzc2VkOyB9CiAgICAgTm9kZSogbW91c2VQcmVzc05vZGUoKSBjb25zdCB7IHJl
dHVybiBtX21vdXNlUHJlc3NOb2RlLmdldCgpOyB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsgLy8g
QSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHJlc2V0dGluZyBjYXB0dXJpbmcgZWxlbWVudCB0
byAwLgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVt
ZW50KEVsZW1lbnQqKTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgYm9vbCB1cGRh
dGVEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXIqKTsK
LSAgICB2b2lkIGNhbmNlbERyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERh
dGFUcmFuc2ZlciopOwotICAgIGJvb2wgcGVyZm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3Jt
TW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwotICAgIHZvaWQgdXBkYXRlRHJhZ1N0YXRlQWZ0
ZXJFZGl0RHJhZ0lmTmVlZGVkKEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnQpOworICAgIGJv
b2wgdXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5z
ZmVyJik7CisgICAgdm9pZCBjYW5jZWxEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZl
bnQmLCBEYXRhVHJhbnNmZXImKTsKKyAgICBib29sIHBlcmZvcm1EcmFnQW5kRHJvcChjb25zdCBQ
bGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXImKTsKKyAgICB2b2lkIHVwZGF0ZURyYWdT
dGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRlZChFbGVtZW50JiByb290RWRpdGFibGVFbGVtZW50KTsK
ICNlbmRpZgogCiAgICAgdm9pZCBzY2hlZHVsZUhvdmVyU3RhdGVVcGRhdGUoKTsKQEAgLTE4Nyw4
ICsxOTEsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JvbGxSZWN1cnNp
dmVseShTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBOb2RlKiBzdGFydGluZ05v
ZGUgPSBudWxscHRyKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGxvZ2ljYWxTY3JvbGxSZWN1
cnNpdmVseShTY3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgTm9kZSog
c3RhcnRpbmdOb2RlID0gbnVsbHB0cik7CiAKLSAgICBib29sIHRhYnNUb0xpbmtzKEtleWJvYXJk
RXZlbnQqKSBjb25zdDsKLSAgICBib29sIHRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2
ZW50KikgY29uc3Q7CisgICAgYm9vbCB0YWJzVG9MaW5rcyhLZXlib2FyZEV2ZW50JikgY29uc3Q7
CisgICAgYm9vbCB0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCYpIGNvbnN0Owog
CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBtb3VzZU1vdmVkKGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcGFzc01vdXNlTW92ZWRFdmVudFRvU2Ny
b2xsYmFycyhjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKQEAgLTIxMCwxMiArMjE0LDEyIEBA
IHB1YmxpYzoKICAgICB2b2lkIHBsYXRmb3JtTm90aWZ5SWZFbmRHZXN0dXJlKGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYsIGNvbnN0IFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+Jik7CiAKICNpZiBF
TkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgfHwgRU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykKLSAg
ICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8VG91Y2g+PiBUb3VjaEFycmF5OwotICAgIHR5cGVkZWYg
SGFzaE1hcDxFdmVudFRhcmdldCosIFRvdWNoQXJyYXkqPiBFdmVudFRhcmdldFRvdWNoTWFwOwor
ICAgIHVzaW5nIFRvdWNoQXJyYXkgPSBWZWN0b3I8UmVmUHRyPFRvdWNoPj47CisgICAgdXNpbmcg
RXZlbnRUYXJnZXRUb3VjaE1hcCA9IEhhc2hNYXA8RXZlbnRUYXJnZXQqLCBUb3VjaEFycmF5Kj47
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKSB8fCBFTkFCTEUoSU9TX0dF
U1RVUkVfRVZFTlRTKSB8fCBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQotICAgIHR5cGVkZWYg
SGFzaFNldDxSZWZQdHI8RXZlbnRUYXJnZXQ+PiBFdmVudFRhcmdldFNldDsKKyAgICB1c2luZyBF
dmVudFRhcmdldFNldCA9IEhhc2hTZXQ8UmVmUHRyPEV2ZW50VGFyZ2V0Pj47CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQpAQCAtMjMxLDcgKzIzNSw3IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHZvaWQgZGVmYXVsdFRvdWNoRXZlbnRI
YW5kbGVyKE5vZGUqLCBUb3VjaEV2ZW50Kik7CisgICAgdm9pZCBkZWZhdWx0VG91Y2hFdmVudEhh
bmRsZXIoTm9kZSYsIFRvdWNoRXZlbnQmKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRf
TUVOVVMpCkBAIC0yNjQsOCArMjY4LDcgQEAgcHVibGljOgogICAgIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2VuZFNjcm9sbEV2ZW50KCk7CiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgZGVm
aW5lZChfX09CSkNfXykKLSNpZiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlRG93bihOU0V2ZW50ICosIE5TRXZlbnQgKmNvcnJl
c3BvbmRpbmdQcmVzc3VyZUV2ZW50KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlRHJh
Z2dlZChOU0V2ZW50ICosIE5TRXZlbnQgKmNvcnJlc3BvbmRpbmdQcmVzc3VyZUV2ZW50KTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlVXAoTlNFdmVudCAqLCBOU0V2ZW50ICpjb3JyZXNw
b25kaW5nUHJlc3N1cmVFdmVudCk7CkBAIC0yNzMsNyArMjc2LDkgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgcHJlc3N1cmVDaGFuZ2UoTlNFdmVudCAqLCBOU0V2ZW50KiBjb3Jy
ZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBrZXlFdmVu
dChOU0V2ZW50ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgd2hlZWxFdmVudChOU0V2ZW50
ICopOwotI2Vsc2UKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgbW91c2VEb3duKFdlYkV2ZW50ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
bW91c2VVcChXZWJFdmVudCAqKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlTW92ZWQo
V2ViRXZlbnQgKik7CkBAIC0yODUsMjMgKzI5MCwyMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCB0b3VjaEV2ZW50KFdlYkV2ZW50ICopOwogI2VuZGlmCiAKLSNpZiAhUExBVEZP
Uk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBhc3NN
b3VzZU1vdmVkRXZlbnRUb1Njcm9sbGJhcnMoTlNFdmVudCAqLCBOU0V2ZW50KiBjb3JyZXNwb25k
aW5nUHJlc3N1cmVFdmVudCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbmRGYWtlRXZl
bnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQpOwotI2VuZGlm
CiAKLSNpZiAhUExBVEZPUk0oSU9TKQogICAgIHZvaWQgc2V0QWN0aXZhdGlvbkV2ZW50TnVtYmVy
KGludCBudW0pIHsgbV9hY3RpdmF0aW9uRXZlbnROdW1iZXIgPSBudW07IH0KIAogICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBOU0V2ZW50ICpjdXJyZW50TlNFdmVudCgpOwogICAgIHN0YXRpYyBO
U0V2ZW50ICpjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCgpOwotI2Vsc2UKLSAgICBzdGF0aWMg
V2ViRXZlbnQgKmN1cnJlbnRFdmVudCgpOwotI2VuZGlmIC8vICFQTEFURk9STShJT1MpCi0jZW5k
aWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIGRlZmluZWQoX19PQkpDX18pCisjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKElPUykKKyAgICBzdGF0aWMgV2ViRXZlbnQgKmN1cnJlbnRFdmVudCgpOworCiAg
ICAgdm9pZCBpbnZhbGlkYXRlQ2xpY2soKTsKICNlbmRpZgogCkBAIC0zMjQsOCArMzI2LDggQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgRHJhZ1N0YXRlJiBkcmFnU3RhdGUoKTsKICAgICBzdGF0aWMg
Y29uc3QgZG91YmxlIFRleHREcmFnRGVsYXk7CiAgICAgCi0gICAgUGFzc1JlZlB0cjxEYXRhVHJh
bnNmZXI+IGNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7Ci0jZW5kaWYgLy8gRU5B
QkxFKERSQUdfU1VQUE9SVCkKKyAgICBSZWY8RGF0YVRyYW5zZmVyPiBjcmVhdGVEcmFnZ2luZ0Rh
dGFUcmFuc2ZlcigpIGNvbnN0OworI2VuZGlmCiAKICAgICBib29sIGV2ZW50QWN0aXZhdGVkVmll
dyhjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKSBjb25zdDsKICAgICBib29sIHVwZGF0ZVNlbGVj
dGlvbkZvck1vdXNlRG93bkRpc3BhdGNoaW5nU2VsZWN0U3RhcnQoTm9kZSosIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mLCBUZXh0R3JhbnVsYXJpdHkpOwpAQCAtMzU5LDggKzM2MSw4IEBAIHByaXZh
dGU6CiAgICAgCiAgICAgYm9vbCBtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpIGNvbnN0IHsgcmV0
dXJuIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3Q7IH0KIAotICAgIHN0YXRpYyBib29sIGlzS2V5
Ym9hcmRPcHRpb25UYWIoS2V5Ym9hcmRFdmVudCopOwotICAgIHN0YXRpYyBib29sIGV2ZW50SW52
ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdChLZXlib2FyZEV2ZW50Kik7CisgICAgc3Rh
dGljIGJvb2wgaXNLZXlib2FyZE9wdGlvblRhYihLZXlib2FyZEV2ZW50Jik7CisgICAgc3RhdGlj
IGJvb2wgZXZlbnRJbnZlcnRzVGFic1RvTGlua3NDbGllbnRDYWxsUmVzdWx0KEtleWJvYXJkRXZl
bnQmKTsKIAogI2lmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICB2b2lkIGZha2VNb3Vz
ZU1vdmVFdmVudFRpbWVyRmlyZWQoKTsKQEAgLTM4NSw2ICszODcsNyBAQCBwcml2YXRlOgogICAg
IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMgcHJlcGFyZU1vdXNlRXZlbnQoY29uc3QgSGl0
VGVzdFJlcXVlc3QmLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKIAogICAgIGJvb2wgZGlz
cGF0Y2hNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiB0YXJn
ZXQsIGJvb2wgY2FuY2VsYWJsZSwgaW50IGNsaWNrQ291bnQsIGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYsIGJvb2wgc2V0VW5kZXIpOworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBi
b29sIGRpc3BhdGNoRHJhZ0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFbGVt
ZW50JiB0YXJnZXQsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwog
CkBAIC0zOTIsNyArMzk1LDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaGFuZGxlRHJhZyhjb25z
dCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwgQ2hlY2tEcmFnSHlzdGVyZXNpcyk7CiAj
ZW5kaWYKKwogICAgIGJvb2wgaGFuZGxlTW91c2VVcChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRl
c3RSZXN1bHRzJik7CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHZvaWQgY2xlYXJE
cmFnU3RhdGUoKTsKIApAQCAtNDAwLDcgKzQwNSw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGRy
YWdIeXN0ZXJlc2lzRXhjZWVkZWQoY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0OwogICAgIGJvb2wg
ZHJhZ0h5c3RlcmVzaXNFeGNlZWRlZChjb25zdCBJbnRQb2ludCYpIGNvbnN0OwotI2VuZGlmIC8v
IEVOQUJMRShEUkFHX1NVUFBPUlQpCisjZW5kaWYKICAgICAKICAgICBib29sIG1vdXNlTW92ZW1l
bnRFeGNlZWRzVGhyZXNob2xkKGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgcG9pbnRzVGhyZXNob2xk
KSBjb25zdDsKIApAQCAtNDMxLDYgKzQzNiw3IEBAIHByaXZhdGU6CiAgICAgLy8gVGhlIGZvbGxv
d2luZyBhcmUgY2FsbGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgaGFuZGxlTW91c2VVcCBhbmQgaGFu
ZGxlRHJhZy4gIAogICAgIC8vIElmIHRoZXkgcmV0dXJuIHRydWUgaXQgaW5kaWNhdGVzIHRoYXQg
dGhleSBoYXZlIGNvbnN1bWVkIHRoZSBldmVudC4KICAgICBib29sIGV2ZW50TG9vcEhhbmRsZU1v
dXNlVXAoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOworCiAjaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkKICAgICBib29sIGV2ZW50TG9vcEhhbmRsZU1vdXNlRHJhZ2dlZChjb25z
dCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CiAjZW5kaWYKQEAgLTQ3MywxMCArNDc5
LDEyIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE5vZGU+IG1fbW91c2VQcmVzc05vZGU7CiAKICAg
ICBib29sIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QgeyBmYWxzZSB9OworCiAjaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkKICAgICBib29sIG1fbW91c2VEb3duTWF5U3RhcnREcmFnIHsgZmFsc2Ug
fTsKICAgICBib29sIG1fZHJhZ01heVN0YXJ0U2VsZWN0aW9uSW5zdGVhZCB7IGZhbHNlIH07CiAj
ZW5kaWYKKwogICAgIGJvb2wgbV9tb3VzZURvd25XYXNTaW5nbGVDbGlja0luU2VsZWN0aW9uIHsg
ZmFsc2UgfTsKICAgICBlbnVtIFNlbGVjdGlvbkluaXRpYXRpb25TdGF0ZSB7IEhhdmVOb3RTdGFy
dGVkU2VsZWN0aW9uLCBQbGFjZWRDYXJldCwgRXh0ZW5kZWRTZWxlY3Rpb24gfTsKICAgICBTZWxl
Y3Rpb25Jbml0aWF0aW9uU3RhdGUgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgeyBIYXZlTm90
U3RhcnRlZFNlbGVjdGlvbiB9OwpAQCAtNDg4LDYgKzQ5Niw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX3BhblNjcm9sbEJ1dHRvblByZXNzZWQgeyBmYWxzZSB9OwogCiAgICAgVGltZXIgbV9ob3Zl
clRpbWVyOworCiAjaWYgRU5BQkxFKENVUlNPUl9TVVBQT1JUKQogICAgIFRpbWVyIG1fY3Vyc29y
VXBkYXRlVGltZXI7CiAjZW5kaWYKQEAgLTQ5NSw2ICs1MDQsNyBAQCBwcml2YXRlOgogI2lmIFBM
QVRGT1JNKE1BQykKICAgICBUaW1lciBtX3BlbmRpbmdNb21lbnR1bVdoZWVsRXZlbnRzVGltZXI7
CiAjZW5kaWYKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBdXRvc2Nyb2xsQ29udHJvbGxlcj4gbV9h
dXRvc2Nyb2xsQ29udHJvbGxlcjsKICAgICBib29sIG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Ny
b2xsIHsgZmFsc2UgfTsKICAgICBib29sIG1fbW91c2VEb3duV2FzSW5TdWJmcmFtZSB7IGZhbHNl
IH07CkBAIC01MjMsMTEgKzUzMywxMyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fZ2VzdHVyZUlu
aXRpYWxEaWFtZXRlciB7IEdlc3R1cmVVbmtub3duIH07CiAgICAgZmxvYXQgbV9nZXN0dXJlSW5p
dGlhbFJvdGF0aW9uIHsgR2VzdHVyZVVua25vd24gfTsKICNlbmRpZgorCiAjaWYgRU5BQkxFKElP
U19HRVNUVVJFX0VWRU5UUykgfHwgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKICAgICBmbG9h
dCBtX2dlc3R1cmVMYXN0RGlhbWV0ZXIgeyBHZXN0dXJlVW5rbm93biB9OwogICAgIGZsb2F0IG1f
Z2VzdHVyZUxhc3RSb3RhdGlvbiB7IEdlc3R1cmVVbmtub3duIH07CiAgICAgRXZlbnRUYXJnZXRT
ZXQgbV9nZXN0dXJlVGFyZ2V0czsKICNlbmRpZgorCiAjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VW
RU5UUykKICAgICBib29sIG1faGFzQWN0aXZlR2VzdHVyZSB7IGZhbHNlIH07CiAjZW5kaWYKQEAg
LTU1OCwxMiArNTcwLDE0IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgTlNW
aWV3ICptX21vdXNlRG93blZpZXcgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX3NlbmRpbmdFdmVu
dFRvU3VidmlldyB7IGZhbHNlIH07Ci0jaWYgIVBMQVRGT1JNKElPUykKLSAgICBpbnQgbV9hY3Rp
dmF0aW9uRXZlbnROdW1iZXIgeyAtMSB9OwogI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisg
ICAgaW50IG1fYWN0aXZhdGlvbkV2ZW50TnVtYmVyIHsgLTEgfTsKICNlbmRpZgorCiAjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykgJiYgIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotICAgIHR5cGVk
ZWYgSGFzaE1hcDxpbnQsIFJlZlB0cjxFdmVudFRhcmdldD4+IFRvdWNoVGFyZ2V0TWFwOworICAg
IHVzaW5nIFRvdWNoVGFyZ2V0TWFwID0gSGFzaE1hcDxpbnQsIFJlZlB0cjxFdmVudFRhcmdldD4+
OwogICAgIFRvdWNoVGFyZ2V0TWFwIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0czsKICAg
ICBSZWZQdHI8RG9jdW1lbnQ+IG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQ7CiAgICAg
dW5zaWduZWQgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRLZXkgeyAwIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXggYTdiMjU1N2U2OTQ2ZGI5ZTU2MTE1
N2FkZjcyY2MyODI2ZWZlODc0Ny4uNWFhODZjOTljODlmM2FmZWRkYTk3NTg5NmQ3MmMyMDcxNWQ5
NTU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAtMzE2LDcg
KzMxNiw3IEBAIEZvY3VzQ29udHJvbGxlcjo6Rm9jdXNDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIEFj
dGl2aXR5U3RhdGU6OkZsYWdzIGFjdGl2aXR5U3RhdGUpCiB7CiB9CiAKLXZvaWQgRm9jdXNDb250
cm9sbGVyOjpzZXRGb2N1c2VkRnJhbWUoUGFzc1JlZlB0cjxGcmFtZT4gZnJhbWUpCit2b2lkIEZv
Y3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEZyYW1lKEZyYW1lKiBmcmFtZSkKIHsKICAgICBBU1NF
UlQoIWZyYW1lIHx8IGZyYW1lLT5wYWdlKCkgPT0gJm1fcGFnZSk7CiAgICAgaWYgKG1fZm9jdXNl
ZEZyYW1lID09IGZyYW1lIHx8IG1faXNDaGFuZ2luZ0ZvY3VzZWRGcmFtZSkKQEAgLTc2NSw4ICs3
NjUsOSBAQCBzdGF0aWMgdm9pZCBjbGVhclNlbGVjdGlvbklmTmVlZGVkKEZyYW1lKiBvbGRGb2N1
c2VkRnJhbWUsIEZyYW1lKiBuZXdGb2N1c2VkRnJhbQogICAgIG9sZEZvY3VzZWRGcmFtZS0+c2Vs
ZWN0aW9uKCkuY2xlYXIoKTsKIH0KIAotYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRF
bGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIFBhc3NSZWZQdHI8RnJhbWU+IG5ld0ZvY3VzZWRGcmFt
ZSwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQorYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZv
Y3VzZWRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZyYW1lJiBuZXdGb2N1c2VkRnJhbWUsIEZv
Y3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKKyAgICBSZWY8RnJhbWU+IHByb3RlY3RlZE5ld0Zv
Y3VzZWRGcmFtZSA9IG5ld0ZvY3VzZWRGcmFtZTsKICAgICBSZWZQdHI8RnJhbWU+IG9sZEZvY3Vz
ZWRGcmFtZSA9IGZvY3VzZWRGcmFtZSgpOwogICAgIFJlZlB0cjxEb2N1bWVudD4gb2xkRG9jdW1l
bnQgPSBvbGRGb2N1c2VkRnJhbWUgPyBvbGRGb2N1c2VkRnJhbWUtPmRvY3VtZW50KCkgOiBudWxs
cHRyOwogICAgIApAQCAtNzgwLDcgKzc4MSw3IEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjpzZXRG
b2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBQYXNzUmVmUHRyPEZyYW1lPiBuZXdGCiAK
ICAgICBtX3BhZ2UuZWRpdG9yQ2xpZW50KCkud2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKIAot
ICAgIGNsZWFyU2VsZWN0aW9uSWZOZWVkZWQob2xkRm9jdXNlZEZyYW1lLmdldCgpLCBuZXdGb2N1
c2VkRnJhbWUuZ2V0KCksIGVsZW1lbnQpOworICAgIGNsZWFyU2VsZWN0aW9uSWZOZWVkZWQob2xk
Rm9jdXNlZEZyYW1lLmdldCgpLCAmbmV3Rm9jdXNlZEZyYW1lLCBlbGVtZW50KTsKIAogICAgIGlm
ICghZWxlbWVudCkgewogICAgICAgICBpZiAob2xkRG9jdW1lbnQpCkBAIC03OTksMTEgKzgwMCwx
MSBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxl
bWVudCwgUGFzc1JlZlB0cjxGcmFtZT4gbmV3RgogICAgIGlmIChvbGREb2N1bWVudCAmJiBvbGRE
b2N1bWVudCAhPSBuZXdEb2N1bWVudC5wdHIoKSkKICAgICAgICAgb2xkRG9jdW1lbnQtPnNldEZv
Y3VzZWRFbGVtZW50KG51bGxwdHIpOwogCi0gICAgaWYgKG5ld0ZvY3VzZWRGcmFtZSAmJiAhbmV3
Rm9jdXNlZEZyYW1lLT5wYWdlKCkpIHsKKyAgICBpZiAoIW5ld0ZvY3VzZWRGcmFtZS5wYWdlKCkp
IHsKICAgICAgICAgc2V0Rm9jdXNlZEZyYW1lKG51bGxwdHIpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQotICAgIHNldEZvY3VzZWRGcmFtZShuZXdGb2N1c2VkRnJhbWUpOworICAgIHNl
dEZvY3VzZWRGcmFtZSgmbmV3Rm9jdXNlZEZyYW1lKTsKIAogICAgIFJlZjxFbGVtZW50PiBwcm90
ZWN0KCplbGVtZW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKaW5kZXgg
ZWNiZTM5NjFkYTFmNWIwMDViMDFiY2M4MjUxNmI1MGEyN2E4ZTJhZS4uYzZkY2YyMjIwOTM1ZWNi
YjFmY2JkNDIyMWYyY2EyZDk0NzNmNzdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9Gb2N1c0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJv
bGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTMwLDEyICszMCwxMCBAQAogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKICNp
bmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLXN0cnVjdCBGb2N1c0NhbmRpZGF0ZTsKIGNsYXNzIENvbnRhaW5lck5vZGU7CiBj
bGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CkBAIC00OCwxOSArNDYsMjEgQEAgY2xhc3Mg
Tm9kZTsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBUcmVlU2NvcGU7CiAKK3N0cnVjdCBGb2N1c0NhbmRp
ZGF0ZTsKKwogY2xhc3MgRm9jdXNDb250cm9sbGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShGb2N1c0NvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBGb2N1c0NvbnRyb2xsZXIo
UGFnZSYsIEFjdGl2aXR5U3RhdGU6OkZsYWdzKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0Rm9jdXNlZEZyYW1lKFBhc3NSZWZQdHI8RnJhbWU+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldEZvY3VzZWRGcmFtZShGcmFtZSopOwogICAgIEZyYW1lKiBmb2N1c2VkRnJhbWUoKSBj
b25zdCB7IHJldHVybiBtX2ZvY3VzZWRGcmFtZS5nZXQoKTsgfQogICAgIFdFQkNPUkVfRVhQT1JU
IEZyYW1lJiBmb2N1c2VkT3JNYWluRnJhbWUoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgc2V0SW5pdGlhbEZvY3VzKEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50Kik7CiAg
ICAgYm9vbCBhZHZhbmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQmLCBib29s
IGluaXRpYWxGb2N1cyA9IGZhbHNlKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0Rm9j
dXNlZEVsZW1lbnQoRWxlbWVudCosIFBhc3NSZWZQdHI8RnJhbWU+LCBGb2N1c0RpcmVjdGlvbiA9
IEZvY3VzRGlyZWN0aW9uTm9uZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRGb2N1c2Vk
RWxlbWVudChFbGVtZW50KiwgRnJhbWUmLCBGb2N1c0RpcmVjdGlvbiA9IEZvY3VzRGlyZWN0aW9u
Tm9uZSk7CiAKICAgICB2b2lkIHNldEFjdGl2aXR5U3RhdGUoQWN0aXZpdHlTdGF0ZTo6RmxhZ3Mp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKaW5kZXggZGVlYjIzYjc1ODQ0OWJiZmU1YzU1
ZjE5ZDgwZDA0OTI4MjkxMTdhYS4uNjM4NDkwZTRiY2EzNDYyYjZiNzdmYjYzYmMwMGRmNWMyMmE1
MjZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTYzLDI1ICs2Myw2IEBAIEZyYW1l
KiBGcmFtZVRyZWU6OnBhcmVudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFyZW50OwogfQogCi1i
b29sIEZyYW1lVHJlZTo6dHJhbnNmZXJDaGlsZChQYXNzUmVmUHRyPEZyYW1lPiBjaGlsZCkKLXsK
LSAgICBGcmFtZSogb2xkUGFyZW50ID0gY2hpbGQtPnRyZWUoKS5wYXJlbnQoKTsKLSAgICBpZiAo
b2xkUGFyZW50ID09ICZtX3RoaXNGcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyB8Y2hp
bGR8IGlzIGFscmVhZHkgYSBjaGlsZCBvZiBtX3RoaXNGcmFtZS4KLQotICAgIGlmIChvbGRQYXJl
bnQpCi0gICAgICAgIG9sZFBhcmVudC0+dHJlZSgpLnJlbW92ZUNoaWxkKGNoaWxkLmdldCgpKTsK
LQotICAgIEFTU0VSVChjaGlsZC0+cGFnZSgpID09IG1fdGhpc0ZyYW1lLnBhZ2UoKSk7Ci0gICAg
Y2hpbGQtPnRyZWUoKS5tX3BhcmVudCA9ICZtX3RoaXNGcmFtZTsKLQotICAgIC8vIFdlIG5lZWQg
dG8gZW5zdXJlIHRoYXQgdGhlIGNoaWxkIHN0aWxsIGhhcyBhIHVuaXF1ZSBmcmFtZSBuYW1lIHdp
dGggcmVzcGVjdCB0byBpdHMgbmV3IHBhcmVudC4KLSAgICBjaGlsZC0+dHJlZSgpLnNldE5hbWUo
Y2hpbGQtPnRyZWUoKS5tX25hbWUpOwotCi0gICAgYWN0dWFsbHlBcHBlbmRDaGlsZChjaGlsZCk7
IC8vIE5vdGUsIG9uIHJldHVybiB8Y2hpbGR8IGlzIG51bGwuCi0gICAgcmV0dXJuIHRydWU7Ci19
Ci0KIHVuc2lnbmVkIEZyYW1lVHJlZTo6aW5kZXhJblBhcmVudCgpIGNvbnN0CiB7CiAgICAgaWYg
KCFtX3BhcmVudCkKQEAgLTk1LDQ2ICs3Niw0MCBAQCB1bnNpZ25lZCBGcmFtZVRyZWU6OmluZGV4
SW5QYXJlbnQoKSBjb25zdAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAK
LXZvaWQgRnJhbWVUcmVlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPEZyYW1lPiBjaGlsZCkKLXsK
LSAgICBBU1NFUlQoY2hpbGQtPnBhZ2UoKSA9PSBtX3RoaXNGcmFtZS5wYWdlKCkpOwotICAgIGNo
aWxkLT50cmVlKCkubV9wYXJlbnQgPSAmbV90aGlzRnJhbWU7Ci0gICAgYWN0dWFsbHlBcHBlbmRD
aGlsZChjaGlsZCk7IC8vIE5vdGUsIG9uIHJldHVybiB8Y2hpbGR8IGlzIG51bGwuCi19Ci0KLXZv
aWQgRnJhbWVUcmVlOjphY3R1YWxseUFwcGVuZENoaWxkKFBhc3NSZWZQdHI8RnJhbWU+IGNoaWxk
KQordm9pZCBGcmFtZVRyZWU6OmFwcGVuZENoaWxkKEZyYW1lJiBjaGlsZCkKIHsKLSAgICBBU1NF
UlQoY2hpbGQtPnRyZWUoKS5tX3BhcmVudCA9PSAmbV90aGlzRnJhbWUpOworICAgIEFTU0VSVChj
aGlsZC5wYWdlKCkgPT0gbV90aGlzRnJhbWUucGFnZSgpKTsKKyAgICBjaGlsZC50cmVlKCkubV9w
YXJlbnQgPSAmbV90aGlzRnJhbWU7CiAgICAgRnJhbWUqIG9sZExhc3QgPSBtX2xhc3RDaGlsZDsK
LSAgICBtX2xhc3RDaGlsZCA9IGNoaWxkLmdldCgpOworICAgIG1fbGFzdENoaWxkID0gJmNoaWxk
OwogCiAgICAgaWYgKG9sZExhc3QpIHsKLSAgICAgICAgY2hpbGQtPnRyZWUoKS5tX3ByZXZpb3Vz
U2libGluZyA9IG9sZExhc3Q7Ci0gICAgICAgIG9sZExhc3QtPnRyZWUoKS5tX25leHRTaWJsaW5n
ID0gY2hpbGQ7CisgICAgICAgIGNoaWxkLnRyZWUoKS5tX3ByZXZpb3VzU2libGluZyA9IG9sZExh
c3Q7CisgICAgICAgIG9sZExhc3QtPnRyZWUoKS5tX25leHRTaWJsaW5nID0gJmNoaWxkOwogICAg
IH0gZWxzZQotICAgICAgICBtX2ZpcnN0Q2hpbGQgPSBjaGlsZDsKKyAgICAgICAgbV9maXJzdENo
aWxkID0gJmNoaWxkOwogCiAgICAgbV9zY29wZWRDaGlsZENvdW50ID0gaW52YWxpZENvdW50Owog
CiAgICAgQVNTRVJUKCFtX2xhc3RDaGlsZC0+dHJlZSgpLm1fbmV4dFNpYmxpbmcpOwogfQogCi12
b2lkIEZyYW1lVHJlZTo6cmVtb3ZlQ2hpbGQoRnJhbWUqIGNoaWxkKQordm9pZCBGcmFtZVRyZWU6
OnJlbW92ZUNoaWxkKEZyYW1lJiBjaGlsZCkKIHsKLSAgICBjaGlsZC0+dHJlZSgpLm1fcGFyZW50
ID0gbnVsbHB0cjsKKyAgICBjaGlsZC50cmVlKCkubV9wYXJlbnQgPSBudWxscHRyOwogCiAgICAg
Ly8gU2xpZ2h0bHkgdHJpY2t5IHdheSB0byBwcmV2ZW50IGRlbGV0aW5nIHRoZSBjaGlsZCB1bnRp
bCB3ZSBhcmUgZG9uZSB3aXRoIGl0LCB3L28KICAgICAvLyBleHRyYSByZWZzLiBUaGVzZSBzd2Fw
cyBsZWF2ZSB0aGUgY2hpbGQgaW4gYSBjaXJjdWxhciBsaXN0IGJ5IGl0c2VsZi4gQ2xlYXJpbmcg
aXRzCiAgICAgLy8gcHJldmlvdXMgYW5kIG5leHQgd2lsbCB0aGVuIGZpbmFsbHkgZGVyZWYgaXQu
CiAKLSAgICBSZWZQdHI8RnJhbWU+JiBuZXdMb2NhdGlvbkZvck5leHQgPSBtX2ZpcnN0Q2hpbGQg
PT0gY2hpbGQgPyBtX2ZpcnN0Q2hpbGQgOiBjaGlsZC0+dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5n
LT50cmVlKCkubV9uZXh0U2libGluZzsKLSAgICBGcmFtZSomIG5ld0xvY2F0aW9uRm9yUHJldmlv
dXMgPSBtX2xhc3RDaGlsZCA9PSBjaGlsZCA/IG1fbGFzdENoaWxkIDogY2hpbGQtPnRyZWUoKS5t
X25leHRTaWJsaW5nLT50cmVlKCkubV9wcmV2aW91c1NpYmxpbmc7Ci0gICAgc3dhcChuZXdMb2Nh
dGlvbkZvck5leHQsIGNoaWxkLT50cmVlKCkubV9uZXh0U2libGluZyk7CisgICAgUmVmUHRyPEZy
YW1lPiYgbmV3TG9jYXRpb25Gb3JOZXh0ID0gbV9maXJzdENoaWxkID09ICZjaGlsZCA/IG1fZmly
c3RDaGlsZCA6IGNoaWxkLnRyZWUoKS5tX3ByZXZpb3VzU2libGluZy0+dHJlZSgpLm1fbmV4dFNp
Ymxpbmc7CisgICAgRnJhbWUqJiBuZXdMb2NhdGlvbkZvclByZXZpb3VzID0gbV9sYXN0Q2hpbGQg
PT0gJmNoaWxkID8gbV9sYXN0Q2hpbGQgOiBjaGlsZC50cmVlKCkubV9uZXh0U2libGluZy0+dHJl
ZSgpLm1fcHJldmlvdXNTaWJsaW5nOworICAgIHN3YXAobmV3TG9jYXRpb25Gb3JOZXh0LCBjaGls
ZC50cmVlKCkubV9uZXh0U2libGluZyk7CiAgICAgLy8gRm9yIHNvbWUgaW5leHBsaWNhYmxlIHJl
YXNvbiwgdGhlIGZvbGxvd2luZyBsaW5lIGRvZXMgbm90IGNvbXBpbGUgd2l0aG91dCB0aGUgZXhw
bGljaXQgc3RkOjogbmFtZXNwYWNlCi0gICAgc3RkOjpzd2FwKG5ld0xvY2F0aW9uRm9yUHJldmlv
dXMsIGNoaWxkLT50cmVlKCkubV9wcmV2aW91c1NpYmxpbmcpOworICAgIHN0ZDo6c3dhcChuZXdM
b2NhdGlvbkZvclByZXZpb3VzLCBjaGlsZC50cmVlKCkubV9wcmV2aW91c1NpYmxpbmcpOwogCi0g
ICAgY2hpbGQtPnRyZWUoKS5tX3ByZXZpb3VzU2libGluZyA9IG51bGxwdHI7Ci0gICAgY2hpbGQt
PnRyZWUoKS5tX25leHRTaWJsaW5nID0gbnVsbHB0cjsKKyAgICBjaGlsZC50cmVlKCkubV9wcmV2
aW91c1NpYmxpbmcgPSBudWxscHRyOworICAgIGNoaWxkLnRyZWUoKS5tX25leHRTaWJsaW5nID0g
bnVsbHB0cjsKIAogICAgIG1fc2NvcGVkQ2hpbGRDb3VudCA9IGludmFsaWRDb3VudDsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVHJlZS5oCmluZGV4IGFiMTZmMGFkNjM5NjI1YWUyZDc4YzE3OWYxMzUzYmI4
NGM5OGFlMWEuLjNmODdjMjc5YmRjM2EwNjRmZTg4ODA4YjYwM2EyYWNmN2YyZGM3ZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVRyZWUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDYgQXBwbGUgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02NSwxMCArNjUsOSBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUqIHRyYXZlcnNlTmV4dFdpdGhXcmFw
KGJvb2wpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lKiB0cmF2ZXJzZVByZXZpb3Vz
V2l0aFdyYXAoYm9vbCkgY29uc3Q7CiAgICAgCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBl
bmRDaGlsZChQYXNzUmVmUHRyPEZyYW1lPik7Ci0gICAgYm9vbCB0cmFuc2ZlckNoaWxkKFBhc3NS
ZWZQdHI8RnJhbWU+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGVuZENoaWxkKEZyYW1l
Jik7CiAgICAgdm9pZCBkZXRhY2hGcm9tUGFyZW50KCkgeyBtX3BhcmVudCA9IG51bGxwdHI7IH0K
LSAgICB2b2lkIHJlbW92ZUNoaWxkKEZyYW1lKik7CisgICAgdm9pZCByZW1vdmVDaGlsZChGcmFt
ZSYpOwogCiAgICAgRnJhbWUqIGNoaWxkKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKICAgICBGcmFt
ZSogY2hpbGQoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdDsKQEAgLTg3LDcgKzg2LDYg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEZyYW1lKiBkZWVwTGFzdENoaWxkKCkgY29uc3Q7
Ci0gICAgdm9pZCBhY3R1YWxseUFwcGVuZENoaWxkKFBhc3NSZWZQdHI8RnJhbWU+KTsKIAogICAg
IGJvb2wgc2NvcGVkQnkoVHJlZVNjb3BlKikgY29uc3Q7CiAgICAgRnJhbWUqIHNjb3BlZENoaWxk
KHVuc2lnbmVkIGluZGV4LCBUcmVlU2NvcGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcAppbmRleCBkOTRjOWQ5MjFhNGE0MTk2M2VjOGRhZTc1YzBiNGUyMzI2MDk3OGEyLi40ZDYz
OGEyZTc1M2MxZWFiN2JmYzBkYzc4Yzg3MzdkMGU1MmMyYTBmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCkBAIC02NzcsNyArNjc3LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNldENvbnRlbnRz
U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogCiAgICAgdXBkYXRlU2Nyb2xsYWJsZUFyZWFTZXQo
KTsKIAotICAgIHBhZ2UtPmNocm9tZSgpLmNvbnRlbnRzU2l6ZUNoYW5nZWQoJmZyYW1lKCksIHNp
emUpOyAvLyBOb3RpZnkgb25seS4KKyAgICBwYWdlLT5jaHJvbWUoKS5jb250ZW50c1NpemVDaGFu
Z2VkKGZyYW1lKCksIHNpemUpOyAvLyBOb3RpZnkgb25seS4KIAogICAgIGlmIChmcmFtZSgpLmlz
TWFpbkZyYW1lKCkpIHsKICAgICAgICAgZnJhbWUoKS5tYWluRnJhbWUoKS5wYWdlT3ZlcmxheUNv
bnRyb2xsZXIoKS5kaWRDaGFuZ2VEb2N1bWVudFNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1l
LmNwcAppbmRleCA0ODE3NGNiMjQzN2Q1OTYwYjIxYzUzODM2YzUyNzFiNjYwZDg4NmMxLi5hMTdi
ZTNiYjUzYTg5MmY1YmU2MmQ0YzRkNzcyNGUwYWQ0Y2ZkNGNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NYWlu
RnJhbWUuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgTWFpbkZyYW1lOjpzZWxmT25seURlcmVm
KCkKIHZvaWQgTWFpbkZyYW1lOjpkcm9wQ2hpbGRyZW4oKQogewogICAgIHdoaWxlIChGcmFtZSog
Y2hpbGQgPSB0cmVlKCkuZmlyc3RDaGlsZCgpKQotICAgICAgICB0cmVlKCkucmVtb3ZlQ2hpbGQo
Y2hpbGQpOworICAgICAgICB0cmVlKCkucmVtb3ZlQ2hpbGQoKmNoaWxkKTsKIH0KIAogI2lmIFBM
QVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGRiMTdlNmJhZjdhY2U0YzI3MjY1Yzhl
ZGIzNzA1ZmRiMTdlYjIwYmEuLjdkNmFmMTEwYTRjZDRkYWRlY2VkMjQ1OTA2NjI3MzA0MmYzZDBj
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMzYzLDcgKzM2Myw3IEBAIFZpZXdwb3J0QXJndW1l
bnRzIFBhZ2U6OnZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3QKIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
KiBQYWdlOjpzY3JvbGxpbmdDb29yZGluYXRvcigpCiB7CiAgICAgaWYgKCFtX3Njcm9sbGluZ0Nv
b3JkaW5hdG9yICYmIG1fc2V0dGluZ3MtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxlZCgpKSB7
Ci0gICAgICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBjaHJvbWUoKS5jbGllbnQoKS5jcmVh
dGVTY3JvbGxpbmdDb29yZGluYXRvcih0aGlzKTsKKyAgICAgICAgbV9zY3JvbGxpbmdDb29yZGlu
YXRvciA9IGNocm9tZSgpLmNsaWVudCgpLmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKCp0aGlz
KTsKICAgICAgICAgaWYgKCFtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKQogICAgICAgICAgICAgbV9z
Y3JvbGxpbmdDb29yZGluYXRvciA9IFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGUodGhpcyk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmNwcAppbmRleCBlNzBiY2EwNTIzZjBl
Mzk1Zjg3N2ZmNjNjMTJhYTM5NTU3YWRlZDdjLi4yY2E4NmY5ODI4MDgxNjM3ODRmMmFiN2ZhNDNl
ZWViYmVlMzc5NWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmNwcApAQCAtMjc0LDcg
KzI3NCw3IEBAIHZvaWQgUGFnZU92ZXJsYXk6OmZhZGVBbmltYXRpb25UaW1lckZpcmVkKCkKIAog
ICAgICAgICAvLyBJZiB0aGlzIHdhcyBhIGZhZGUgb3V0LCB1bmluc3RhbGwgdGhlIHBhZ2Ugb3Zl
cmxheS4KICAgICAgICAgaWYgKHdhc0ZhZGluZ091dCkKLSAgICAgICAgICAgIGNvbnRyb2xsZXIo
KS0+dW5pbnN0YWxsUGFnZU92ZXJsYXkodGhpcywgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05v
dEZhZGUpOworICAgICAgICAgICAgY29udHJvbGxlcigpLT51bmluc3RhbGxQYWdlT3ZlcmxheSgq
dGhpcywgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCmluZGV4IDg2NmI4
NzBjYjhlNGQxYjdlNWQyMWIzYjE2YWMxZTVjNmIzYWJmODMuLjA1NDNiZDUzNGQyNTFiYTM3ZGNh
NDIxZGExN2UyYzk5M2EyZGFmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZU92ZXJsYXlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVy
bGF5Q29udHJvbGxlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtOTUsMjcgKzk1LDI1IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZU92ZXJs
YXlHZW9tZXRyeShQYWdlT3ZlcmxheSYgb3ZlcmxheSwgR3JhcGhpY3NMYXllciYgZ3JhcGhpY3NM
CiAgICAgZ3JhcGhpY3NMYXllci5zZXRTaXplKG92ZXJsYXlGcmFtZS5zaXplKCkpOwogfQogCi12
b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6aW5zdGFsbFBhZ2VPdmVybGF5KFBhc3NSZWZQdHI8
UGFnZU92ZXJsYXk+IHBhZ2VPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUgZmFkZU1vZGUp
Cit2b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6aW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVy
bGF5JiBvdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUgZmFkZU1vZGUpCiB7CiAgICAgY3Jl
YXRlUm9vdExheWVyc0lmTmVlZGVkKCk7CiAKLSAgICBSZWZQdHI8UGFnZU92ZXJsYXk+IG92ZXJs
YXkgPSBwYWdlT3ZlcmxheTsKLQotICAgIGlmIChtX3BhZ2VPdmVybGF5cy5jb250YWlucyhvdmVy
bGF5KSkKKyAgICBpZiAobV9wYWdlT3ZlcmxheXMuY29udGFpbnMoJm92ZXJsYXkpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBtX3BhZ2VPdmVybGF5cy5hcHBlbmQob3ZlcmxheSk7CisgICAgbV9w
YWdlT3ZlcmxheXMuYXBwZW5kKCZvdmVybGF5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFw
aGljc0xheWVyPiBsYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShtX21haW5GcmFtZS5wYWdl
KCktPmNocm9tZSgpLmNsaWVudCgpLmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKICAg
ICBsYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDNEKCkpOwotICAgIGxheWVyLT5zZXRC
YWNrZ3JvdW5kQ29sb3Iob3ZlcmxheS0+YmFja2dyb3VuZENvbG9yKCkpOworICAgIGxheWVyLT5z
ZXRCYWNrZ3JvdW5kQ29sb3Iob3ZlcmxheS5iYWNrZ3JvdW5kQ29sb3IoKSk7CiAjaWZuZGVmIE5E
RUJVRwogICAgIGxheWVyLT5zZXROYW1lKCJQYWdlIE92ZXJsYXkgY29udGVudCIpOwogI2VuZGlm
CiAKICAgICB1cGRhdGVTZXR0aW5nc0ZvckxheWVyKCpsYXllcik7CiAKLSAgICBzd2l0Y2ggKG92
ZXJsYXktPm92ZXJsYXlUeXBlKCkpIHsKKyAgICBzd2l0Y2ggKG92ZXJsYXkub3ZlcmxheVR5cGUo
KSkgewogICAgIGNhc2UgUGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlOjpWaWV3OgogICAgICAgICBt
X3ZpZXdPdmVybGF5Um9vdExheWVyLT5hZGRDaGlsZChsYXllci5nZXQoKSk7CiAgICAgICAgIGJy
ZWFrOwpAQCAtMTI1LDMzICsxMjMsMzMgQEAgdm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6Omlu
c3RhbGxQYWdlT3ZlcmxheShQYXNzUmVmUHRyPFBhZ2VPdmVybGF5PiBwYWdlT3ZlcmwKICAgICB9
CiAKICAgICBHcmFwaGljc0xheWVyJiByYXdMYXllciA9ICpsYXllcjsKLSAgICBtX292ZXJsYXlH
cmFwaGljc0xheWVycy5zZXQob3ZlcmxheS5nZXQoKSwgV1RGTW92ZShsYXllcikpOworICAgIG1f
b3ZlcmxheUdyYXBoaWNzTGF5ZXJzLnNldCgmb3ZlcmxheSwgV1RGTW92ZShsYXllcikpOwogCiAg
ICAgdXBkYXRlRm9yY2VTeW5jaHJvbm91c1Njcm9sbExheWVyUG9zaXRpb25VcGRhdGVzKCk7CiAK
LSAgICBvdmVybGF5LT5zZXRQYWdlKG1fbWFpbkZyYW1lLnBhZ2UoKSk7CisgICAgb3ZlcmxheS5z
ZXRQYWdlKG1fbWFpbkZyYW1lLnBhZ2UoKSk7CiAKICAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZp
ZXcgPSBtX21haW5GcmFtZS52aWV3KCkpCiAgICAgICAgIGZyYW1lVmlldy0+ZW50ZXJDb21wb3Np
dGluZ01vZGUoKTsKIAotICAgIHVwZGF0ZU92ZXJsYXlHZW9tZXRyeSgqb3ZlcmxheSwgcmF3TGF5
ZXIpOworICAgIHVwZGF0ZU92ZXJsYXlHZW9tZXRyeShvdmVybGF5LCByYXdMYXllcik7CiAKICAg
ICBpZiAoZmFkZU1vZGUgPT0gUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKQotICAgICAgICBv
dmVybGF5LT5zdGFydEZhZGVJbkFuaW1hdGlvbigpOworICAgICAgICBvdmVybGF5LnN0YXJ0RmFk
ZUluQW5pbWF0aW9uKCk7CiB9CiAKLXZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjp1bmluc3Rh
bGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSogb3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2Rl
IGZhZGVNb2RlKQordm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnVuaW5zdGFsbFBhZ2VPdmVy
bGF5KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUgZmFkZU1vZGUp
CiB7CiAgICAgaWYgKGZhZGVNb2RlID09IFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSkgewot
ICAgICAgICBvdmVybGF5LT5zdGFydEZhZGVPdXRBbmltYXRpb24oKTsKKyAgICAgICAgb3Zlcmxh
eS5zdGFydEZhZGVPdXRBbmltYXRpb24oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IG92ZXJsYXktPnNldFBhZ2UobnVsbHB0cik7CisgICAgb3ZlcmxheS5zZXRQYWdlKG51bGxwdHIp
OwogCi0gICAgbV9vdmVybGF5R3JhcGhpY3NMYXllcnMudGFrZShvdmVybGF5KS0+cmVtb3ZlRnJv
bVBhcmVudCgpOworICAgIG1fb3ZlcmxheUdyYXBoaWNzTGF5ZXJzLnRha2UoJm92ZXJsYXkpLT5y
ZW1vdmVGcm9tUGFyZW50KCk7CiAKLSAgICBib29sIHJlbW92ZWQgPSBtX3BhZ2VPdmVybGF5cy5y
ZW1vdmVGaXJzdChvdmVybGF5KTsKKyAgICBib29sIHJlbW92ZWQgPSBtX3BhZ2VPdmVybGF5cy5y
ZW1vdmVGaXJzdCgmb3ZlcmxheSk7CiAgICAgQVNTRVJUX1VOVVNFRChyZW1vdmVkLCByZW1vdmVk
KTsKIAogICAgIHVwZGF0ZUZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0aW9uVXBkYXRl
cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgKaW5kZXgg
Mzk3ODA5ODIwMDhjNjUxZjI4OGI3OTc2YjFiOTMyOTVhYzUyZTdhNC4uNjM4OTQ3YzYxODQ2YWIw
Njc1Y2U4MDNhYmYxNzZiNmI3MWRkOGMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VP
dmVybGF5Q29udHJvbGxlci5oCkBAIC0zOSw3ICszOSw2IEBAIGNsYXNzIFBhZ2U7CiBjbGFzcyBQ
bGF0Zm9ybU1vdXNlRXZlbnQ7CiAKIGNsYXNzIFBhZ2VPdmVybGF5Q29udHJvbGxlciBmaW5hbCA6
IHB1YmxpYyBHcmFwaGljc0xheWVyQ2xpZW50IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQ
YWdlT3ZlcmxheUNvbnRyb2xsZXIpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgogICAgIFBhZ2VPdmVybGF5Q29udHJvbGxlcihNYWluRnJhbWUmKTsKQEAgLTUwLDggKzQ5
LDggQEAgcHVibGljOgogCiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxQYWdlT3ZlcmxheT4+JiBw
YWdlT3ZlcmxheXMoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VPdmVybGF5czsgfQogCi0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBpbnN0YWxsUGFnZU92ZXJsYXkoUGFzc1JlZlB0cjxQYWdlT3Zlcmxh
eT4sIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1bmlu
c3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSosIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkmLCBQ
YWdlT3ZlcmxheTo6RmFkZU1vZGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5pbnN0YWxs
UGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkmLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUpOwogCiAgICAg
dm9pZCBzZXRQYWdlT3ZlcmxheU5lZWRzRGlzcGxheShQYWdlT3ZlcmxheSYsIGNvbnN0IEludFJl
Y3QmKTsKICAgICB2b2lkIHNldFBhZ2VPdmVybGF5T3BhY2l0eShQYWdlT3ZlcmxheSYsIGZsb2F0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKaW5kZXggN2ZmZjEyM2ZmNjQx
Mzc4MjVjOGQxOTgwM2RiZWNmMzljODYzNjhhZi4uOTNkMzc3N2FhMWE5ZjA3OWY3MTA0Yzk3NDVk
N2RhMWNjYmJmZDU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFs
aXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKQEAg
LTgwLDggKzgwLDcgQEAgc3RhdGljIGJvb2wgaXNDaGFyc2V0U3BlY2lmeWluZ05vZGUoY29uc3Qg
Tm9kZSYgbm9kZSkKICAgICAgICAgICAgIGF0dHJpYnV0ZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWly
KGF0dHJpYnV0ZS5uYW1lKCkudG9TdHJpbmcoKSwgYXR0cmlidXRlLnZhbHVlKCkuc3RyaW5nKCkp
KTsKICAgICAgICAgfQogICAgIH0KLSAgICBUZXh0RW5jb2RpbmcgdGV4dEVuY29kaW5nID0gSFRN
TE1ldGFDaGFyc2V0UGFyc2VyOjplbmNvZGluZ0Zyb21NZXRhQXR0cmlidXRlcyhhdHRyaWJ1dGVz
KTsKLSAgICByZXR1cm4gdGV4dEVuY29kaW5nLmlzVmFsaWQoKTsKKyAgICByZXR1cm4gSFRNTE1l
dGFDaGFyc2V0UGFyc2VyOjplbmNvZGluZ0Zyb21NZXRhQXR0cmlidXRlcyhhdHRyaWJ1dGVzKS5p
c1ZhbGlkKCk7CiB9CiAKIHN0YXRpYyBib29sIHNob3VsZElnbm9yZUVsZW1lbnQoY29uc3QgRWxl
bWVudCYgZWxlbWVudCkKQEAgLTk1LDEwICs5NCw5IEBAIHN0YXRpYyBjb25zdCBRdWFsaWZpZWRO
YW1lJiBmcmFtZU93bmVyVVJMQXR0cmlidXRlTmFtZShjb25zdCBIVE1MRnJhbWVPd25lckVsZW1l
CiAgICAgcmV0dXJuIGlzPEhUTUxPYmplY3RFbGVtZW50PihmcmFtZU93bmVyKSA/IEhUTUxOYW1l
czo6ZGF0YUF0dHIgOiBIVE1MTmFtZXM6OnNyY0F0dHI7CiB9CiAKLWNsYXNzIFNlcmlhbGl6ZXJN
YXJrdXBBY2N1bXVsYXRvciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRv
ciB7CitjbGFzcyBQYWdlU2VyaWFsaXplcjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yIGZp
bmFsIDogcHVibGljIFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yIHsKIHB1YmxpYzoKICAgICBT
ZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXImLCBEb2N1bWVudCYsIFZl
Y3RvcjxOb2RlKj4qKTsKLSAgICB2aXJ0dWFsIH5TZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3Io
KTsKIAogcHJpdmF0ZToKICAgICBQYWdlU2VyaWFsaXplciYgbV9zZXJpYWxpemVyOwpAQCAtMTEw
LDcgKzEwOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhcHBlbmRFbmRUYWcoY29uc3QgRWxlbWVu
dCYpIG92ZXJyaWRlOwogfTsKIAotU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjpTZXJpYWxp
emVyTWFya3VwQWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXImIHNlcmlhbGl6ZXIsIERvY3VtZW50
JiBkb2N1bWVudCwgVmVjdG9yPE5vZGUqPiogbm9kZXMpCitQYWdlU2VyaWFsaXplcjo6U2VyaWFs
aXplck1hcmt1cEFjY3VtdWxhdG9yOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3IoUGFnZVNl
cmlhbGl6ZXImIHNlcmlhbGl6ZXIsIERvY3VtZW50JiBkb2N1bWVudCwgVmVjdG9yPE5vZGUqPiog
bm9kZXMpCiAgICAgOiBNYXJrdXBBY2N1bXVsYXRvcihub2RlcywgUmVzb2x2ZUFsbFVSTHMpCiAg
ICAgLCBtX3NlcmlhbGl6ZXIoc2VyaWFsaXplcikKICAgICAsIG1fZG9jdW1lbnQoZG9jdW1lbnQp
CkBAIC0xMjAsMTggKzExOCwxNCBAQCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OlNlcmlh
bGl6ZXJNYXJrdXBBY2N1bXVsYXRvcihQYWdlU2VyaWFsaXplciYgc2VyaWFsaQogICAgICAgICBh
cHBlbmRTdHJpbmcoIjw/eG1sIHZlcnNpb249XCIiICsgbV9kb2N1bWVudC54bWxWZXJzaW9uKCkg
KyAiXCIgZW5jb2Rpbmc9XCIiICsgbV9kb2N1bWVudC5jaGFyc2V0KCkgKyAiXCI/PiIpOwogfQog
Ci1TZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6On5TZXJpYWxpemVyTWFya3VwQWNjdW11bGF0
b3IoKQotewotfQotCi12b2lkIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kVGV4
dChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IFRleHQmIHRleHQpCit2b2lkIFBhZ2VTZXJpYWxp
emVyOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQoU3RyaW5nQnVpbGRl
ciYgb3V0LCBjb25zdCBUZXh0JiB0ZXh0KQogewogICAgIEVsZW1lbnQqIHBhcmVudCA9IHRleHQu
cGFyZW50RWxlbWVudCgpOwogICAgIGlmIChwYXJlbnQgJiYgIXNob3VsZElnbm9yZUVsZW1lbnQo
KnBhcmVudCkpCiAgICAgICAgIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0KG91dCwgdGV4
dCk7CiB9CiAKLXZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbGVtZW50
KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgRWxlbWVudCYgZWxlbWVudCwgTmFtZXNwYWNlcyog
bmFtZXNwYWNlcykKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVs
YXRvcjo6YXBwZW5kRWxlbWVudChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IEVsZW1lbnQmIGVs
ZW1lbnQsIE5hbWVzcGFjZXMqIG5hbWVzcGFjZXMpCiB7CiAgICAgaWYgKCFzaG91bGRJZ25vcmVF
bGVtZW50KGVsZW1lbnQpKQogICAgICAgICBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRWxlbWVu
dChvdXQsIGVsZW1lbnQsIG5hbWVzcGFjZXMpOwpAQCAtMTQ1LDcgKzEzOSw3IEBAIHZvaWQgU2Vy
aWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbGVtZW50KFN0cmluZ0J1aWxkZXImIG91
dCwgY29uc3QgRWxlbWVuCiAgICAgLy8gRklYTUU6IEZvciBvYmplY3QgKHBsdWdpbnMpIHRhZ3Mg
YW5kIHZpZGVvIHRhZyB3ZSBjb3VsZCByZXBsYWNlIHRoZW0gYnkgYW4gaW1hZ2Ugb2YgdGhlaXIg
Y3VycmVudCBjb250ZW50cy4KIH0KIAotdm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6
OmFwcGVuZEN1c3RvbUF0dHJpYnV0ZXMoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBFbGVtZW50
JiBlbGVtZW50LCBOYW1lc3BhY2VzKiBuYW1lc3BhY2VzKQordm9pZCBQYWdlU2VyaWFsaXplcjo6
U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRDdXN0b21BdHRyaWJ1dGVzKFN0cmlu
Z0J1aWxkZXImIG91dCwgY29uc3QgRWxlbWVudCYgZWxlbWVudCwgTmFtZXNwYWNlcyogbmFtZXNw
YWNlcykKIHsKICAgICBpZiAoIWlzPEhUTUxGcmFtZU93bmVyRWxlbWVudD4oZWxlbWVudCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTE2NCwzMiArMTU4LDIwIEBAIHZvaWQgU2VyaWFsaXplck1hcmt1
cEFjY3VtdWxhdG9yOjphcHBlbmRDdXN0b21BdHRyaWJ1dGVzKFN0cmluZ0J1aWxkZXImIG91dCwg
Y29uCiAgICAgYXBwZW5kQXR0cmlidXRlKG91dCwgZWxlbWVudCwgQXR0cmlidXRlKGZyYW1lT3du
ZXJVUkxBdHRyaWJ1dGVOYW1lKGZyYW1lT3duZXIpLCB1cmwuc3RyaW5nKCkpLCBuYW1lc3BhY2Vz
KTsKIH0KIAotdm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVuZFRhZyhj
b25zdCBFbGVtZW50JiBlbGVtZW50KQordm9pZCBQYWdlU2VyaWFsaXplcjo6U2VyaWFsaXplck1h
cmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKIHsK
ICAgICBpZiAoIXNob3VsZElnbm9yZUVsZW1lbnQoZWxlbWVudCkpCiAgICAgICAgIE1hcmt1cEFj
Y3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoZWxlbWVudCk7CiB9CiAKLVBhZ2VTZXJpYWxpemVyOjpS
ZXNvdXJjZTo6UmVzb3VyY2UoKQotewotfQotCi1QYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U6OlJl
c291cmNlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gZGF0YSkKLSAgICA6IHVybCh1cmwpCi0gICAgLCBtaW1lVHlwZShtaW1l
VHlwZSkKLSAgICAsIGRhdGEoZGF0YSkKLXsKLX0KLQotUGFnZVNlcmlhbGl6ZXI6OlBhZ2VTZXJp
YWxpemVyKFZlY3RvcjxQYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U+KiByZXNvdXJjZXMpCitQYWdl
U2VyaWFsaXplcjo6UGFnZVNlcmlhbGl6ZXIoVmVjdG9yPFBhZ2VTZXJpYWxpemVyOjpSZXNvdXJj
ZT4mIHJlc291cmNlcykKICAgICA6IG1fcmVzb3VyY2VzKHJlc291cmNlcykKLSAgICAsIG1fYmxh
bmtGcmFtZUNvdW50ZXIoMCkKIHsKIH0KIAotdm9pZCBQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXpl
KFBhZ2UqIHBhZ2UpCit2b2lkIFBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemUoUGFnZSYgcGFnZSkK
IHsKLSAgICBzZXJpYWxpemVGcmFtZSgmcGFnZS0+bWFpbkZyYW1lKCkpOworICAgIHNlcmlhbGl6
ZUZyYW1lKCZwYWdlLm1haW5GcmFtZSgpKTsKIH0KIAogdm9pZCBQYWdlU2VyaWFsaXplcjo6c2Vy
aWFsaXplRnJhbWUoRnJhbWUqIGZyYW1lKQpAQCAtMjE4LDcgKzIwMCw3IEBAIHZvaWQgUGFnZVNl
cmlhbGl6ZXI6OnNlcmlhbGl6ZUZyYW1lKEZyYW1lKiBmcmFtZSkKICAgICB9CiAgICAgU3RyaW5n
IHRleHQgPSBhY2N1bXVsYXRvci5zZXJpYWxpemVOb2RlcygqZG9jdW1lbnQtPmRvY3VtZW50RWxl
bWVudCgpLCBJbmNsdWRlTm9kZSk7CiAgICAgQ1N0cmluZyBmcmFtZUhUTUwgPSB0ZXh0RW5jb2Rp
bmcuZW5jb2RlKHRleHQsIEVudGl0aWVzRm9yVW5lbmNvZGFibGVzKTsKLSAgICBtX3Jlc291cmNl
cy0+YXBwZW5kKFJlc291cmNlKHVybCwgZG9jdW1lbnQtPnN1Z2dlc3RlZE1JTUVUeXBlKCksIFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKGZyYW1lSFRNTC5kYXRhKCksIGZyYW1lSFRNTC5sZW5ndGgoKSkp
KTsKKyAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIGRvY3VtZW50LT5zdWdnZXN0ZWRNSU1F
VHlwZSgpLCBTaGFyZWRCdWZmZXI6OmNyZWF0ZShmcmFtZUhUTUwuZGF0YSgpLCBmcmFtZUhUTUwu
bGVuZ3RoKCkpIH0pOwogICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwpOwogCiAgICAgZm9yIChh
dXRvJiBub2RlIDogbm9kZXMpIHsKQEAgLTI4NCw3ICsyNjYsNyBAQCB2b2lkIFBhZ2VTZXJpYWxp
emVyOjpzZXJpYWxpemVDU1NTdHlsZVNoZWV0KENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQsIGNv
bnN0IFVSTAogICAgICAgICBBU1NFUlQodGV4dEVuY29kaW5nLmlzVmFsaWQoKSk7CiAgICAgICAg
IFN0cmluZyB0ZXh0U3RyaW5nID0gY3NzVGV4dC50b1N0cmluZygpOwogICAgICAgICBDU3RyaW5n
IHRleHQgPSB0ZXh0RW5jb2RpbmcuZW5jb2RlKHRleHRTdHJpbmcsIEVudGl0aWVzRm9yVW5lbmNv
ZGFibGVzKTsKLSAgICAgICAgbV9yZXNvdXJjZXMtPmFwcGVuZChSZXNvdXJjZSh1cmwsIFN0cmlu
ZygidGV4dC9jc3MiKSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUodGV4dC5kYXRhKCksIHRleHQubGVu
Z3RoKCkpKSk7CisgICAgICAgIG1fcmVzb3VyY2VzLmFwcGVuZCh7IHVybCwgQVNDSUlMaXRlcmFs
IHsgInRleHQvY3NzIiB9LCBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh0ZXh0LmRhdGEoKSwgdGV4dC5s
ZW5ndGgoKSkgfSk7CiAgICAgICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwpOwogICAgIH0KIH0K
QEAgLTMwNiw4ICsyODgsNyBAQCB2b2lkIFBhZ2VTZXJpYWxpemVyOjphZGRJbWFnZVRvUmVzb3Vy
Y2VzKENhY2hlZEltYWdlKiBpbWFnZSwgUmVuZGVyRWxlbWVudCogaW1hZwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgU3RyaW5nIG1pbWVUeXBlID0gaW1hZ2UtPnJlc3BvbnNlKCkubWlt
ZVR5cGUoKTsKLSAgICBtX3Jlc291cmNlcy0+YXBwZW5kKFJlc291cmNlKHVybCwgbWltZVR5cGUs
IGRhdGEpKTsKKyAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIGltYWdlLT5yZXNwb25zZSgp
Lm1pbWVUeXBlKCksIFdURk1vdmUoZGF0YSkgfSk7CiAgICAgbV9yZXNvdXJjZVVSTHMuYWRkKHVy
bCk7CiB9CiAKQEAgLTMzNCwyMCArMzE1LDE4IEBAIHZvaWQgUGFnZVNlcmlhbGl6ZXI6OnJldHJp
ZXZlUmVzb3VyY2VzRm9yUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMqIHN0eWxlCiAg
ICAgICAgIGlmICghaW1hZ2UpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBVUkwg
dXJsID0gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGltYWdlLT51cmwoKSk7Ci0gICAgICAgIGFkZElt
YWdlVG9SZXNvdXJjZXMoaW1hZ2UsIG51bGxwdHIsIHVybCk7CisgICAgICAgIGFkZEltYWdlVG9S
ZXNvdXJjZXMoaW1hZ2UsIG51bGxwdHIsIGRvY3VtZW50LT5jb21wbGV0ZVVSTChpbWFnZS0+dXJs
KCkpKTsKICAgICB9CiB9CiAKIFVSTCBQYWdlU2VyaWFsaXplcjo6dXJsRm9yQmxhbmtGcmFtZShG
cmFtZSogZnJhbWUpCiB7Ci0gICAgSGFzaE1hcDxGcmFtZSosIFVSTD46Oml0ZXJhdG9yIGl0ZXIg
PSBtX2JsYW5rRnJhbWVVUkxzLmZpbmQoZnJhbWUpOworICAgIGF1dG8gaXRlciA9IG1fYmxhbmtG
cmFtZVVSTHMuZmluZChmcmFtZSk7CiAgICAgaWYgKGl0ZXIgIT0gbV9ibGFua0ZyYW1lVVJMcy5l
bmQoKSkKICAgICAgICAgcmV0dXJuIGl0ZXItPnZhbHVlOwogICAgIFN0cmluZyB1cmwgPSAid3lj
aXd5ZzovL2ZyYW1lLyIgKyBTdHJpbmc6Om51bWJlcihtX2JsYW5rRnJhbWVDb3VudGVyKyspOwog
ICAgIFVSTCBmYWtlVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKTsKICAgICBtX2JsYW5rRnJhbWVV
UkxzLmFkZChmcmFtZSwgZmFrZVVSTCk7Ci0KICAgICByZXR1cm4gZmFrZVVSTDsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5oCmluZGV4IGExYjQ3YjlkYmJjMDM0YjE3MjkzNTRj
MDgyMWFhYmRkNTc2MmVlYWMuLmQ1NzQzYmM0ZjYxNDYyOTIyOGMzZmZmMGE0YmVkY2I4NzUwYzEx
ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmgKQEAgLTMwLDcgKzMwLDYgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJVUkxIYXNoLmgi
CiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAg
LTU2LDIwICs1NSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIFVSTCB1cmw7CiAgICAgICAgIFN0cmlu
ZyBtaW1lVHlwZTsKICAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YTsKLSAgICAgICAg
UmVzb3VyY2UoKTsKLSAgICAgICAgUmVzb3VyY2UoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEpOwogICAgIH07CiAKLSAgICBl
eHBsaWNpdCBQYWdlU2VyaWFsaXplcihWZWN0b3I8UmVzb3VyY2U+Kik7CisgICAgZXhwbGljaXQg
UGFnZVNlcmlhbGl6ZXIoVmVjdG9yPFJlc291cmNlPiYpOwogCiAgICAgLy8gSW5pdGlhdGVzIHRo
ZSBzZXJpYWxpemF0aW9uIG9mIHRoZSBmcmFtZSdzIHBhZ2UuIEFsbCBzZXJpYWxpemVkIGNvbnRl
bnQgYW5kIHJldHJpZXZlZAogICAgIC8vIHJlc291cmNlcyBhcmUgYWRkZWQgdG8gdGhlIFZlY3Rv
ciBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLiBUaGUgZmlyc3QgcmVzb3VyY2UgaW4gdGhhdAog
ICAgIC8vIHZlY3RvciBpcyB0aGUgdG9wIGZyYW1lIHNlcmlhbGl6ZWQgY29udGVudC4KLSAgICB2
b2lkIHNlcmlhbGl6ZShQYWdlKik7CisgICAgdm9pZCBzZXJpYWxpemUoUGFnZSYpOworCitwcml2
YXRlOgorICAgIGNsYXNzIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjsKIAogICAgIFVSTCB1
cmxGb3JCbGFua0ZyYW1lKEZyYW1lKik7CiAKLXByaXZhdGU6CiAgICAgdm9pZCBzZXJpYWxpemVG
cmFtZShGcmFtZSopOwogCiAgICAgLy8gU2VyaWFsaXplcyB0aGUgc3R5bGVzaGVldCBiYWNrIHRv
IHRleHQgYW5kIGFkZHMgaXQgdG8gdGhlIHJlc291cmNlcyBpZiBVUkwgaXMgbm90LWVtcHR5LgpA
QCAtODAsMTAgKzc5LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXRyaWV2ZVJlc291cmNlc0Zv
clByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiwgRG9jdW1lbnQqKTsKICAgICB2b2lk
IHJldHJpZXZlUmVzb3VyY2VzRm9yUnVsZShTdHlsZVJ1bGUmLCBEb2N1bWVudCopOwogCi0gICAg
VmVjdG9yPFJlc291cmNlPiogbV9yZXNvdXJjZXM7CisgICAgVmVjdG9yPFJlc291cmNlPiYgbV9y
ZXNvdXJjZXM7CiAgICAgTGlzdEhhc2hTZXQ8VVJMPiBtX3Jlc291cmNlVVJMczsKICAgICBIYXNo
TWFwPEZyYW1lKiwgVVJMPiBtX2JsYW5rRnJhbWVVUkxzOwotICAgIHVuc2lnbmVkIG1fYmxhbmtG
cmFtZUNvdW50ZXI7CisgICAgdW5zaWduZWQgbV9ibGFua0ZyYW1lQ291bnRlciB7IDAgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VFbnRyeS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVu
dHJ5LmgKaW5kZXggYjNhODRhM2E5ZGNhODJiYmZhOGIzNDA3NGJlY2M3M2I0ODdlZGFhZS4uZjhk
NmNhN2ZlYzgwYzBmZmU2YTk4NmViZmU0ODFlYjM0NTBiY2JjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZUVudHJ5LmgKQEAgLTM0LDcgKzM0LDYgQEAKICNpZiBFTkFCTEUoV0VCX1RJ
TUlORykKIAogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2Fz
dHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTU0LDcgKzUzLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc01hcmsoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc01lYXN1cmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
Ci0gICAgc3RhdGljIGJvb2wgc3RhcnRUaW1lQ29tcGFyZUxlc3NUaGFuKFBhc3NSZWZQdHI8UGVy
Zm9ybWFuY2VFbnRyeT4gYSwgUGFzc1JlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBiKQorICAgIHN0
YXRpYyBib29sIHN0YXJ0VGltZUNvbXBhcmVMZXNzVGhhbihjb25zdCBSZWZQdHI8UGVyZm9ybWFu
Y2VFbnRyeT4mIGEsIGNvbnN0IFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiYgYikKICAgICB7CiAg
ICAgICAgIHJldHVybiBhLT5zdGFydFRpbWUoKSA8IGItPnN0YXJ0VGltZSgpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcAppbmRleCBkOTUz
MTgwNTQ3MGY4ZWVjYTQyODc2M2I3Y2ExZWFjNTNlMTczYjZmLi45YTZjN2FjZTM5NDBlZTM4ZDY1
N2ViYmEzNWExODM2Mzg4MGE0OWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlVXNlclRpbWluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZVVzZXJUaW1pbmcuY3BwCkBAIC04NywxNCArODcsMTQgQEAgVXNlclRpbWluZzo6VXNlclRp
bWluZyhQZXJmb3JtYW5jZSYgcGVyZm9ybWFuY2UpCiB7CiB9CiAKLXN0YXRpYyB2b2lkIGluc2Vy
dFBlcmZvcm1hbmNlRW50cnkoUGVyZm9ybWFuY2VFbnRyeU1hcCYgcGVyZm9ybWFuY2VFbnRyeU1h
cCwgUGFzc1JlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBwZXJmb3JtYW5jZUVudHJ5KQorc3RhdGlj
IHZvaWQgaW5zZXJ0UGVyZm9ybWFuY2VFbnRyeShQZXJmb3JtYW5jZUVudHJ5TWFwJiBwZXJmb3Jt
YW5jZUVudHJ5TWFwLCBSZWY8UGVyZm9ybWFuY2VFbnRyeT4mJiBwZXJmb3JtYW5jZUVudHJ5KQog
ewotICAgIFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBlbnRyeSA9IHBlcmZvcm1hbmNlRW50cnk7
Ci0gICAgUGVyZm9ybWFuY2VFbnRyeU1hcDo6aXRlcmF0b3IgaXQgPSBwZXJmb3JtYW5jZUVudHJ5
TWFwLmZpbmQoZW50cnktPm5hbWUoKSk7CisgICAgUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+IGVu
dHJ5ID0gV1RGTW92ZShwZXJmb3JtYW5jZUVudHJ5KTsKKyAgICBhdXRvIGl0ID0gcGVyZm9ybWFu
Y2VFbnRyeU1hcC5maW5kKGVudHJ5LT5uYW1lKCkpOwogICAgIGlmIChpdCAhPSBwZXJmb3JtYW5j
ZUVudHJ5TWFwLmVuZCgpKQotICAgICAgICBpdC0+dmFsdWUuYXBwZW5kKGVudHJ5KTsKKyAgICAg
ICAgaXQtPnZhbHVlLmFwcGVuZChXVEZNb3ZlKGVudHJ5KSk7CiAgICAgZWxzZQotICAgICAgICBw
ZXJmb3JtYW5jZUVudHJ5TWFwLnNldChlbnRyeS0+bmFtZSgpLCBWZWN0b3I8UmVmUHRyPFBlcmZv
cm1hbmNlRW50cnk+PnsgZW50cnkgfSk7CisgICAgICAgIHBlcmZvcm1hbmNlRW50cnlNYXAuc2V0
KGVudHJ5LT5uYW1lKCksIFZlY3RvcjxSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4+IHsgV1RGTW92
ZShlbnRyeSkgfSk7CiB9CiAKIHN0YXRpYyB2b2lkIGNsZWFyUGVmb3JtYW5jZUVudHJpZXMoUGVy
Zm9ybWFuY2VFbnRyeU1hcCYgcGVyZm9ybWFuY2VFbnRyeU1hcCwgY29uc3QgU3RyaW5nJiBuYW1l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlT3ZlcmxheS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmNwcAppbmRleCBh
ZTgxMTJjYTI2Mzk5MTZmNDE0NWU5MzIzZGUwZDJmMjgxOTVhY2IwLi5lNzQzZDg4MGUyMGNiMWZk
Zjg1NzAxNjBkMGIxYWQ1ODM5MjliOGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1Jlc291cmNlVXNhZ2VPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291
cmNlVXNhZ2VPdmVybGF5LmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZXNvdXJjZVVzYWdlT3Zlcmxh
eTo6flJlc291cmNlVXNhZ2VPdmVybGF5KCkKIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgaGFj
ayBzbyB3ZSBkb24ndCB0cnkgdG8gdW5pbnN0YWxsIHRoZSBQYWdlT3ZlcmxheSBkdXJpbmcgUGFn
ZSBkZXN0cnVjdGlvbi4KICAgICBpZiAobV9wYWdlLm1haW5GcmFtZSgpLnBhZ2UoKSkKLSAgICAg
ICAgbV9wYWdlLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBh
Z2VPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZh
ZGUpOworICAgICAgICBtX3BhZ2UubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9sbGVyKCku
dW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fb3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpE
b05vdEZhZGUpOwogfQogCiB2b2lkIFJlc291cmNlVXNhZ2VPdmVybGF5Ojppbml0aWFsaXplKCkK
QEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBSZXNvdXJjZVVzYWdlT3ZlcmxheTo6aW5pdGlhbGl6ZSgp
CiAKICAgICBtX292ZXJsYXktPnNldEZyYW1lKGluaXRpYWxSZWN0KTsKICAgICBtX292ZXJsYXkt
PnNldFNob3VsZElnbm9yZU1vdXNlRXZlbnRzT3V0c2lkZUJvdW5kcyhmYWxzZSk7Ci0gICAgbV9w
YWdlLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3Zlcmxh
eShtX292ZXJsYXkuZ2V0KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAg
ICBtX3BhZ2UubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VP
dmVybGF5KCptX292ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKICAg
ICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vQW5pbWF0aW9uQmFzZS5oCmluZGV4IDVhZGUwMDIyZWJjMGQ4NGQyNzg2OGZlMjRiNTRk
NjZhNjFlNzdlNTguLjJkZDBjMzA5ZTA1ODJmMzVjZjkzNmY1MGFjZDljMWFjMzQxNjM1NWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKQEAgLTMx
LDcgKzMxLDYgQEAKICNpbmNsdWRlICJBbmltYXRpb24uaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0
eU5hbWVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKLSNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDU4ODk2ZGIyZjFlOWZkNDUzNzhiMzY3
YzAwZWM3MTdiYjEzZTQ5OWMuLjRjNDBjOTIzYTIzZTIzMzg4NDA4NDJlODgzY2UwNWRiMWU3YmRk
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkNvbnRyb2xsZXIuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgYm9vbCBBbmltYXRpb25Db250cm9s
bGVyUHJpdmF0ZTo6Y2xlYXIoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiAgICAgRWxlbWVudCog
ZWxlbWVudCA9IHJlbmRlcmVyLmVsZW1lbnQoKTsKIAogICAgIG1fZXZlbnRzVG9EaXNwYXRjaC5y
ZW1vdmVBbGxNYXRjaGluZyhbZWxlbWVudF0gKGNvbnN0IEV2ZW50VG9EaXNwYXRjaCYgaW5mbykg
ewotICAgICAgICByZXR1cm4gaW5mby5lbGVtZW50ID09IGVsZW1lbnQ7CisgICAgICAgIHJldHVy
biBpbmZvLmVsZW1lbnQucHRyKCkgPT0gZWxlbWVudDsKICAgICB9KTsKIAogICAgIG1fZWxlbWVu
dENoYW5nZXNUb0Rpc3BhdGNoLnJlbW92ZUFsbE1hdGNoaW5nKFtlbGVtZW50XShhdXRvJiBjdXJy
ZW50RWxlbWVudCkgewpAQCAtMjAzLDcgKzIwMyw3IEBAIHZvaWQgQW5pbWF0aW9uQ29udHJvbGxl
clByaXZhdGU6OmZpcmVFdmVudHNBbmRVcGRhdGVTdHlsZSgpCiAgICAgLy8gZmlyZSBhbGwgdGhl
IGV2ZW50cwogICAgIFZlY3RvcjxFdmVudFRvRGlzcGF0Y2g+IGV2ZW50c1RvRGlzcGF0Y2ggPSBX
VEZNb3ZlKG1fZXZlbnRzVG9EaXNwYXRjaCk7CiAgICAgZm9yIChhdXRvJiBldmVudCA6IGV2ZW50
c1RvRGlzcGF0Y2gpIHsKLSAgICAgICAgRWxlbWVudCYgZWxlbWVudCA9ICpldmVudC5lbGVtZW50
OworICAgICAgICBFbGVtZW50JiBlbGVtZW50ID0gZXZlbnQuZWxlbWVudDsKICAgICAgICAgaWYg
KGV2ZW50LmV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2ZW50KQogICAg
ICAgICAgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KFRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKGV2
ZW50LmV2ZW50VHlwZSwgZXZlbnQubmFtZSwgZXZlbnQuZWxhcHNlZFRpbWUsIFBzZXVkb0VsZW1l
bnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKGVsZW1lbnQucHNldWRvSWQoKSkpKTsKICAg
ICAgICAgZWxzZQpAQCAtMjI1LDIxICsyMjUsMTUgQEAgdm9pZCBBbmltYXRpb25Db250cm9sbGVy
UHJpdmF0ZTo6c3RhcnRVcGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hlcigpCiAgICAgICAgIG1f
dXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIuc3RhcnRPbmVTaG90KDApOwogfQogCi12b2lk
IEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2goUGFzc1JlZlB0
cjxFbGVtZW50PiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpCit2b2lkIEFuaW1hdGlvbkNvbnRyb2xs
ZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2goRWxlbWVudCYgZWxlbWVudCwgY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgZG91YmxlIGVsYXBzZWRU
aW1lKQogewotICAgIG1fZXZlbnRzVG9EaXNwYXRjaC5ncm93KG1fZXZlbnRzVG9EaXNwYXRjaC5z
aXplKCkrMSk7Ci0gICAgRXZlbnRUb0Rpc3BhdGNoJiBldmVudCA9IG1fZXZlbnRzVG9EaXNwYXRj
aFttX2V2ZW50c1RvRGlzcGF0Y2guc2l6ZSgpLTFdOwotICAgIGV2ZW50LmVsZW1lbnQgPSBlbGVt
ZW50OwotICAgIGV2ZW50LmV2ZW50VHlwZSA9IGV2ZW50VHlwZTsKLSAgICBldmVudC5uYW1lID0g
bmFtZTsKLSAgICBldmVudC5lbGFwc2VkVGltZSA9IGVsYXBzZWRUaW1lOwotICAgIAorICAgIG1f
ZXZlbnRzVG9EaXNwYXRjaC5hcHBlbmQoeyBlbGVtZW50LCBldmVudFR5cGUsIG5hbWUsIGVsYXBz
ZWRUaW1lIH0pOwogICAgIHN0YXJ0VXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIoKTsKIH0K
IAotdm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6YWRkRWxlbWVudENoYW5nZVRvRGlz
cGF0Y2goUmVmPEVsZW1lbnQ+JiYgZWxlbWVudCkKK3ZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclBy
aXZhdGU6OmFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0g
ICAgbV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2guYXBwZW5kKFdURk1vdmUoZWxlbWVudCkpOwor
ICAgIG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmFwcGVuZChlbGVtZW50KTsKICAgICBBU1NF
UlQobV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2gubGFzdCgpLT5kb2N1bWVudCgpLnBhZ2VDYWNo
ZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKICAgICBzdGFydFVwZGF0ZVN0
eWxlSWZOZWVkZWREaXNwYXRjaGVyKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaAppbmRleCBmYjlj
YzgyYjgxNTE3ZDBiYTMyNzNmMzgwZjIwYmNkOGE5ODYxZjU4Li40OWFkM2Y5Yzk1NDI1NWMzMWQw
ZmJmZmE0YzYyNjhiMDY3OTIxN2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKQEAgLTI5LDMzICsy
OSwyMSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBbmltYXRpb25CYXNlLmgiCi0jaW5j
bHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBbmltYXRp
b25CYXNlOwogY2xhc3MgQ29tcG9zaXRlQW5pbWF0aW9uOwogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFz
cyBFbGVtZW50OwogY2xhc3MgRnJhbWU7Ci1jbGFzcyBSZW5kZXJFbGVtZW50OwotY2xhc3MgUmVu
ZGVyU3R5bGU7CiAKLWVudW0gU2V0Q2hhbmdlZCB7Ci0gICAgRG9Ob3RDYWxsU2V0Q2hhbmdlZCA9
IDAsCi0gICAgQ2FsbFNldENoYW5nZWQgPSAxCi19OworZW51bSBTZXRDaGFuZ2VkIHsgRG9Ob3RD
YWxsU2V0Q2hhbmdlZCwgQ2FsbFNldENoYW5nZWQgfTsKIAogY2xhc3MgQW5pbWF0aW9uQ29udHJv
bGxlclByaXZhdGUgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFuaW1hdGlvbkNvbnRyb2xs
ZXJQcml2YXRlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZh
dGUoRnJhbWUmKTsKICAgICB+QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUoKTsKQEAgLTY5LDgg
KzU3LDggQEAgcHVibGljOgogCiAgICAgdm9pZCB1cGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hl
ckZpcmVkKCk7CiAgICAgdm9pZCBzdGFydFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCk7
Ci0gICAgdm9pZCBhZGRFdmVudFRvRGlzcGF0Y2goUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50
LCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBkb3Vi
bGUgZWxhcHNlZFRpbWUpOwotICAgIHZvaWQgYWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2goUmVm
PEVsZW1lbnQ+JiYpOworICAgIHZvaWQgYWRkRXZlbnRUb0Rpc3BhdGNoKEVsZW1lbnQmLCBjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUgZWxh
cHNlZFRpbWUpOworICAgIHZvaWQgYWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2goRWxlbWVudCYp
OwogCiAgICAgYm9vbCBoYXNBbmltYXRpb25zKCkgY29uc3QgeyByZXR1cm4gIW1fY29tcG9zaXRl
QW5pbWF0aW9ucy5pc0VtcHR5KCk7IH0KIApAQCAtMTM0LDIxICsxMjIsMTkgQEAgcHJpdmF0ZToK
ICAgICBUaW1lciBtX2FuaW1hdGlvblRpbWVyOwogICAgIFRpbWVyIG1fdXBkYXRlU3R5bGVJZk5l
ZWRlZERpc3BhdGNoZXI7CiAgICAgRnJhbWUmIG1fZnJhbWU7Ci0gICAgCi0gICAgY2xhc3MgRXZl
bnRUb0Rpc3BhdGNoIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVt
ZW50OworCisgICAgc3RydWN0IEV2ZW50VG9EaXNwYXRjaCB7CisgICAgICAgIFJlZjxFbGVtZW50
PiBlbGVtZW50OwogICAgICAgICBBdG9taWNTdHJpbmcgZXZlbnRUeXBlOwogICAgICAgICBTdHJp
bmcgbmFtZTsKICAgICAgICAgZG91YmxlIGVsYXBzZWRUaW1lOwogICAgIH07Ci0gICAgCiAgICAg
VmVjdG9yPEV2ZW50VG9EaXNwYXRjaD4gbV9ldmVudHNUb0Rpc3BhdGNoOwogICAgIFZlY3RvcjxS
ZWY8RWxlbWVudD4+IG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoOwogICAgIAogICAgIGRvdWJs
ZSBtX2JlZ2luQW5pbWF0aW9uVXBkYXRlVGltZTsKIAotICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQ
dHI8QW5pbWF0aW9uQmFzZT4+IEFuaW1hdGlvbnNTZXQ7CisgICAgdXNpbmcgQW5pbWF0aW9uc1Nl
dCA9IEhhc2hTZXQ8UmVmUHRyPEFuaW1hdGlvbkJhc2U+PjsKICAgICBBbmltYXRpb25zU2V0IG1f
YW5pbWF0aW9uc1dhaXRpbmdGb3JTdHlsZTsKICAgICBBbmltYXRpb25zU2V0IG1fYW5pbWF0aW9u
c1dhaXRpbmdGb3JTdGFydFRpbWVSZXNwb25zZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCmluZGV4IDlmNmI5MTdj
NmVjMWM2ZmViYmE2OTQwYTE2NzA1YmRiZDVhYzc0Y2YuLjhjNTQwM2E0YzE5NjM3YWE2MjFkZTZh
NDA3MTYwNzFhZTc4MzUwMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKQEAgLTEyNSw3ICsxMjUsNyBAQCBzdGF0
aWMgaW5saW5lIFRyYW5zZm9ybU9wZXJhdGlvbnMgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJh
c2UqIGFuaW1hdGlvbiwgY29ucwogICAgIHJldHVybiB0by5ibGVuZEJ5VXNpbmdNYXRyaXhJbnRl
cnBvbGF0aW9uKGZyb20sIHByb2dyZXNzLCBpczxSZW5kZXJCb3g+KCphbmltYXRpb24tPnJlbmRl
cmVyKCkpID8gZG93bmNhc3Q8UmVuZGVyQm94PigqYW5pbWF0aW9uLT5yZW5kZXJlcigpKS5ib3Jk
ZXJCb3hSZWN0KCkuc2l6ZSgpIDogTGF5b3V0U2l6ZSgpKTsKIH0KIAotc3RhdGljIGlubGluZSBQ
YXNzUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFz
ZSosIENsaXBQYXRoT3BlcmF0aW9uKiBmcm9tLCBDbGlwUGF0aE9wZXJhdGlvbiogdG8sIGRvdWJs
ZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVu
ZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIENsaXBQYXRoT3BlcmF0aW9uKiBmcm9tLCBDbGlw
UGF0aE9wZXJhdGlvbiogdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAoIWZyb20gfHwg
IXRvKQogICAgICAgICByZXR1cm4gdG87CkBAIC0xNDMsNyArMTQzLDcgQEAgc3RhdGljIGlubGlu
ZSBQYXNzUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9u
QmFzZSosIENsaXAKICAgICByZXR1cm4gU2hhcGVDbGlwUGF0aE9wZXJhdGlvbjo6Y3JlYXRlKHRv
U2hhcGUuYmxlbmQoZnJvbVNoYXBlLCBwcm9ncmVzcykpOwogfQogCi1zdGF0aWMgaW5saW5lIFBh
c3NSZWZQdHI8U2hhcGVWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBTaGFw
ZVZhbHVlKiBmcm9tLCBTaGFwZVZhbHVlKiB0bywgZG91YmxlIHByb2dyZXNzKQorc3RhdGljIGlu
bGluZSBSZWZQdHI8U2hhcGVWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBT
aGFwZVZhbHVlKiBmcm9tLCBTaGFwZVZhbHVlKiB0bywgZG91YmxlIHByb2dyZXNzKQogewogICAg
IGlmICghZnJvbSB8fCAhdG8pCiAgICAgICAgIHJldHVybiB0bzsKQEAgLTE2Myw3ICsxNjMsNyBA
QCBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U2hhcGVWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFu
aW1hdGlvbkJhc2UqLCBTaGFwZVZhbHVlKgogICAgIHJldHVybiBTaGFwZVZhbHVlOjpjcmVhdGUo
dG9TaGFwZS5ibGVuZChmcm9tU2hhcGUsIHByb2dyZXNzKSwgdG8tPmNzc0JveCgpKTsKIH0KIAot
c3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0
IEFuaW1hdGlvbkJhc2UqIGFuaW1hdGlvbiwgRmlsdGVyT3BlcmF0aW9uKiBmcm9tT3AsIEZpbHRl
ck9wZXJhdGlvbiogdG9PcCwgZG91YmxlIHByb2dyZXNzLCBib29sIGJsZW5kVG9QYXNzdGhyb3Vn
aCA9IGZhbHNlKQorc3RhdGljIGlubGluZSBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBibGVuZEZ1
bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbWF0aW9uLCBGaWx0ZXJPcGVyYXRpb24qIGZyb21P
cCwgRmlsdGVyT3BlcmF0aW9uKiB0b09wLCBkb3VibGUgcHJvZ3Jlc3MsIGJvb2wgYmxlbmRUb1Bh
c3N0aHJvdWdoID0gZmFsc2UpCiB7CiAgICAgQVNTRVJUKHRvT3ApOwogICAgIGlmICh0b09wLT5i
bGVuZGluZ05lZWRzUmVuZGVyZXJTaXplKCkpIHsKQEAgLTIxOCw3ICsyMTgsNyBAQCBzdGF0aWMg
aW5saW5lIEZpbHRlck9wZXJhdGlvbnMgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFu
aW0sIGNvbnN0IEZpbHRlcgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
UGFzc1JlZlB0cjxTdHlsZUltYWdlPiBibGVuZEZpbHRlcihjb25zdCBBbmltYXRpb25CYXNlKiBh
bmltLCBDYWNoZWRJbWFnZSogaW1hZ2UsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZyb20sIGNv
bnN0IEZpbHRlck9wZXJhdGlvbnMmIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5l
IFJlZlB0cjxTdHlsZUltYWdlPiBibGVuZEZpbHRlcihjb25zdCBBbmltYXRpb25CYXNlKiBhbmlt
LCBDYWNoZWRJbWFnZSogaW1hZ2UsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZyb20sIGNvbnN0
IEZpbHRlck9wZXJhdGlvbnMmIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgQVNTRVJUKGlt
YWdlKTsKICAgICBGaWx0ZXJPcGVyYXRpb25zIGZpbHRlclJlc3VsdCA9IGJsZW5kRmlsdGVyT3Bl
cmF0aW9ucyhhbmltLCBmcm9tLCB0bywgcHJvZ3Jlc3MpOwpAQCAtMjc4LDcgKzI3OCw3IEBAIHN0
YXRpYyBpbmxpbmUgVmVjdG9yPFNWR0xlbmd0aFZhbHVlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0
aW9uQmFzZSosIGNvbnN0IFZlY3RvCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIGlu
bGluZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGNyb3NzZmFkZUJsZW5kKGNvbnN0IEFuaW1hdGlv
bkJhc2UqLCBTdHlsZUNhY2hlZEltYWdlKiBmcm9tU3R5bGVJbWFnZSwgU3R5bGVDYWNoZWRJbWFn
ZSogdG9TdHlsZUltYWdlLCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5lIFJlZlB0cjxT
dHlsZUltYWdlPiBjcm9zc2ZhZGVCbGVuZChjb25zdCBBbmltYXRpb25CYXNlKiwgU3R5bGVDYWNo
ZWRJbWFnZSogZnJvbVN0eWxlSW1hZ2UsIFN0eWxlQ2FjaGVkSW1hZ2UqIHRvU3R5bGVJbWFnZSwg
ZG91YmxlIHByb2dyZXNzKQogewogICAgIC8vIElmIHByb2dyZXNzIGlzIGF0IG9uZSBvZiB0aGUg
ZXh0cmVtZXMsIHdlIHdhbnQgZ2V0Q29tcHV0ZWRTdHlsZSB0byBzaG93IHRoZSBpbWFnZSwKICAg
ICAvLyBub3QgYSBjb21wbGV0ZWQgY3Jvc3MtZmFkZSwgc28gd2UgaGFuZCBiYWNrIG9uZSBvZiB0
aGUgZXhpc3RpbmcgaW1hZ2VzLgpAQCAtMjk1LDcgKzI5NSw3IEBAIHN0YXRpYyBpbmxpbmUgUGFz
c1JlZlB0cjxTdHlsZUltYWdlPiBjcm9zc2ZhZGVCbGVuZChjb25zdCBBbmltYXRpb25CYXNlKiwg
U3R5bGVDCiAgICAgcmV0dXJuIFN0eWxlR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZShXVEZNb3ZlKGNy
b3NzZmFkZVZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxTdHlsZUltYWdl
PiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgU3R5bGVJbWFnZSogZnJvbSwg
U3R5bGVJbWFnZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPFN0
eWxlSW1hZ2U+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBTdHlsZUltYWdl
KiBmcm9tLCBTdHlsZUltYWdlKiB0bywgZG91YmxlIHByb2dyZXNzKQogewogICAgIGlmICghZnJv
bSB8fCAhdG8pCiAgICAgICAgIHJldHVybiB0bzsKQEAgLTM2NCwxMSArMzY0LDEyIEBAIHN0YXRp
YyBpbmxpbmUgTmluZVBpZWNlSW1hZ2UgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFu
aW0sIGNvbnN0IE5pbmVQaWVjCiAgICAgaWYgKGZyb20uaW1hZ2UoKS0+aW1hZ2VTaXplKGFuaW0t
PnJlbmRlcmVyKCksIDEuMCkgIT0gdG8uaW1hZ2UoKS0+aW1hZ2VTaXplKGFuaW0tPnJlbmRlcmVy
KCksIDEuMCkpCiAgICAgICAgIHJldHVybiB0bzsKIAotICAgIGF1dG8gbmV3Q29udGVudEltYWdl
ID0gYmxlbmRGdW5jKGFuaW0sIGZyb20uaW1hZ2UoKSwgdG8uaW1hZ2UoKSwgcHJvZ3Jlc3MpOwot
ICAgIHJldHVybiBOaW5lUGllY2VJbWFnZShuZXdDb250ZW50SW1hZ2UsIGZyb20uaW1hZ2VTbGlj
ZXMoKSwgZnJvbS5maWxsKCksIGZyb20uYm9yZGVyU2xpY2VzKCksIGZyb20ub3V0c2V0KCksIGZy
b20uaG9yaXpvbnRhbFJ1bGUoKSwgZnJvbS52ZXJ0aWNhbFJ1bGUoKSk7CisgICAgcmV0dXJuIE5p
bmVQaWVjZUltYWdlKGJsZW5kRnVuYyhhbmltLCBmcm9tLmltYWdlKCksIHRvLmltYWdlKCksIHBy
b2dyZXNzKSwKKyAgICAgICAgZnJvbS5pbWFnZVNsaWNlcygpLCBmcm9tLmZpbGwoKSwgZnJvbS5i
b3JkZXJTbGljZXMoKSwgZnJvbS5vdXRzZXQoKSwgZnJvbS5ob3Jpem9udGFsUnVsZSgpLCBmcm9t
LnZlcnRpY2FsUnVsZSgpKTsKIH0KIAogI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCisKIHN0
YXRpYyBpbmxpbmUgRm9udFZhcmlhdGlvblNldHRpbmdzIGJsZW5kRnVuYyhjb25zdCBBbmltYXRp
b25CYXNlKiBhbmltLCBjb25zdCBGb250VmFyaWF0aW9uU2V0dGluZ3MmIGZyb20sIGNvbnN0IEZv
bnRWYXJpYXRpb25TZXR0aW5ncyYgdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAoZnJv
bS5zaXplKCkgIT0gdG8uc2l6ZSgpKQpAQCAtMzg1LDYgKzM4Niw3IEBAIHN0YXRpYyBpbmxpbmUg
Rm9udFZhcmlhdGlvblNldHRpbmdzIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmlt
LCBjb25zdCBGCiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CisKICNlbmRpZgogCiBjbGFz
cyBBbmltYXRpb25Qcm9wZXJ0eVdyYXBwZXJCYXNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCmluZGV4IDViNzRlNzY3ODI4
YzQ1YTU2MjllMTlmZTI2MDUzODNjMmE1ZjZlOGEuLjY2OTkyNzA3YjFlZWFiMTg0M2ZlMDM5YWFj
NjJkZTMwYzQ0MzAyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcApAQCAtMTIxLDggKzEyMSw4IEBAIHZvaWQgQ29tcG9z
aXRlQW5pbWF0aW9uOjp1cGRhdGVUcmFuc2l0aW9ucyhSZW5kZXJFbGVtZW50KiByZW5kZXJlciwg
Y29uc3QgUmVuZGVyCiAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBydW5uaW5nIGFu
aW1hdGlvbiBmb3IgdGhpcyBwcm9wZXJ0eSwgdGhlIHRyYW5zaXRpb24gaXMgb3ZlcnJpZGRlbgog
ICAgICAgICAgICAgICAgIC8vIGFuZCB3ZSBoYXZlIHRvIHVzZSB0aGUgdW5hbmltYXRlZFN0eWxl
IGZyb20gdGhlIGFuaW1hdGlvbi4gV2UgZG8gdGhlIHRlc3QKICAgICAgICAgICAgICAgICAvLyBh
Z2FpbnN0IHRoZSB1bmFuaW1hdGVkIHN0eWxlIGhlcmUsIGJ1dCB3ZSAib3ZlcnJpZGUiIHRoZSB0
cmFuc2l0aW9uIGxhdGVyLgotICAgICAgICAgICAgICAgIFJlZlB0cjxLZXlmcmFtZUFuaW1hdGlv
bj4ga2V5ZnJhbWVBbmltID0gZ2V0QW5pbWF0aW9uRm9yUHJvcGVydHkocHJvcCk7Ci0gICAgICAg
ICAgICAgICAgYXV0byogZnJvbVN0eWxlID0ga2V5ZnJhbWVBbmltID8ga2V5ZnJhbWVBbmltLT51
bmFuaW1hdGVkU3R5bGUoKSA6IGN1cnJlbnRTdHlsZTsKKyAgICAgICAgICAgICAgICBhdXRvKiBr
ZXlmcmFtZUFuaW1hdGlvbiA9IGFuaW1hdGlvbkZvclByb3BlcnR5KHByb3ApOworICAgICAgICAg
ICAgICAgIGF1dG8qIGZyb21TdHlsZSA9IGtleWZyYW1lQW5pbWF0aW9uID8ga2V5ZnJhbWVBbmlt
YXRpb24tPnVuYW5pbWF0ZWRTdHlsZSgpIDogY3VycmVudFN0eWxlOwogCiAgICAgICAgICAgICAg
ICAgLy8gU2VlIGlmIHRoZXJlIGlzIGEgY3VycmVudCB0cmFuc2l0aW9uIGZvciB0aGlzIHByb3AK
ICAgICAgICAgICAgICAgICBJbXBsaWNpdEFuaW1hdGlvbiogaW1wbEFuaW0gPSBtX3RyYW5zaXRp
b25zLmdldChwcm9wKTsKQEAgLTE3Miw3ICsxNzIsNyBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlv
bjo6dXBkYXRlVHJhbnNpdGlvbnMoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNvbnN0IFJlbmRl
cgogICAgICAgICAgICAgICAgICAgICBMT0coQW5pbWF0aW9ucywgIkNyZWF0ZWQgSW1wbGljaXRB
bmltYXRpb24gJXAgb24gcmVuZGVyZXIgJXAgZm9yIHByb3BlcnR5ICVzIGR1cmF0aW9uICUuMmYg
ZGVsYXkgJS4yZiIsIGltcGxpY2l0QW5pbWF0aW9uLnB0cigpLCByZW5kZXJlciwgZ2V0UHJvcGVy
dHlOYW1lKHByb3ApLCBhbmltYXRpb24uZHVyYXRpb24oKSwgYW5pbWF0aW9uLmRlbGF5KCkpOwog
ICAgICAgICAgICAgICAgICAgICBtX3RyYW5zaXRpb25zLnNldChwcm9wLCBXVEZNb3ZlKGltcGxp
Y2l0QW5pbWF0aW9uKSk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAorCiAg
ICAgICAgICAgICAgICAgLy8gV2Ugb25seSBuZWVkIG9uZSBwYXNzIGZvciB0aGUgc2luZ2xlIHBy
b3AgY2FzZQogICAgICAgICAgICAgICAgIGlmICghYWxsKQogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKQEAgLTM5OSwyMSArMzk5LDIxIEBAIGRvdWJsZSBDb21wb3NpdGVBbmltYXRpb246OnRp
bWVUb05leHRTZXJ2aWNlKCkgY29uc3QKICAgICByZXR1cm4gbWluVDsKIH0KIAotUGFzc1JlZlB0
cjxLZXlmcmFtZUFuaW1hdGlvbj4gQ29tcG9zaXRlQW5pbWF0aW9uOjpnZXRBbmltYXRpb25Gb3JQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5KSBjb25zdAorS2V5ZnJhbWVBbmltYXRpb24q
IENvbXBvc2l0ZUFuaW1hdGlvbjo6YW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBw
cm9wZXJ0eSkgY29uc3QKIHsKLSAgICBSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IHJldHZhbDsK
LSAgICAKKyAgICBLZXlmcmFtZUFuaW1hdGlvbiogcmVzdWx0ID0gbnVsbHB0cjsKKwogICAgIC8v
IFdlIHdhbnQgdG8gc2VuZCBiYWNrIHRoZSBsYXN0IGFuaW1hdGlvbiB3aXRoIHRoZSBwcm9wZXJ0
eSBpZiB0aGVyZSBhcmUgbXVsdGlwbGVzLgogICAgIC8vIFNvIHdlIG5lZWQgdG8gaXRlcmF0ZSB0
aHJvdWdoIGFsbCBhbmltYXRpb25zCiAgICAgaWYgKCFtX2tleWZyYW1lQW5pbWF0aW9ucy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbnMuY2hlY2tDb25zaXN0ZW5jeSgp
OwogICAgICAgICBmb3IgKGF1dG8mIGFuaW1hdGlvbiA6IG1fa2V5ZnJhbWVBbmltYXRpb25zLnZh
bHVlcygpKSB7CiAgICAgICAgICAgICBpZiAoYW5pbWF0aW9uLT5oYXNBbmltYXRpb25Gb3JQcm9w
ZXJ0eShwcm9wZXJ0eSkpCi0gICAgICAgICAgICAgICAgcmV0dmFsID0gYW5pbWF0aW9uOworICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IGFuaW1hdGlvbi5nZXQoKTsKICAgICAgICAgfQogICAgIH0K
LSAgICAKLSAgICByZXR1cm4gcmV0dmFsOworCisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9v
bCBDb21wb3NpdGVBbmltYXRpb246OmNvbXB1dGVFeHRlbnRPZlRyYW5zZm9ybUFuaW1hdGlvbihM
YXlvdXRSZWN0JiBib3VuZHMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCmluZGV4IDMzN2ZlNmYxNjZlNzFjMWNlNjE5YWUy
Mzg4OTMxMTg3ZmY4NjQ3Y2MuLjQwYzNhNDkxZjJhNTQ4ZWIzZTJiMzMxNmM0ZjBmZmUwNTMyMTM5
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFu
aW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFu
aW1hdGlvbi5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNBbmltYXRp
bmdQcm9wZXJ0eShDU1NQcm9wZXJ0eUlELCBib29sIGFjY2VsZXJhdGVkT25seSwgQW5pbWF0aW9u
QmFzZTo6UnVubmluZ1N0YXRlKSBjb25zdDsKIAotICAgIFBhc3NSZWZQdHI8S2V5ZnJhbWVBbmlt
YXRpb24+IGdldEFuaW1hdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQpIGNvbnN0OworICAg
IEtleWZyYW1lQW5pbWF0aW9uKiBhbmltYXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEKSBj
b25zdDsKIAogICAgIHZvaWQgb3ZlcnJpZGVJbXBsaWNpdEFuaW1hdGlvbnMoQ1NTUHJvcGVydHlJ
RCk7CiAgICAgdm9pZCByZXN1bWVPdmVycmlkZGVuSW1wbGljaXRBbmltYXRpb25zKENTU1Byb3Bl
cnR5SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGlj
aXRBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRB
bmltYXRpb24uY3BwCmluZGV4IDcxNmJlYTgyNDkwNDkyYzQzYmNlMTc3NDlkMWZmYjUyMTI3Y2Nj
ZmYuLmZkZWQ2MjNhNmFkZGE5MjRhYjc2MzYzZTI0NjljYmNhMzJjYmZiNzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKQEAg
LTE2MywxMCArMTYzLDkgQEAgdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6b25BbmltYXRpb25FbmQo
ZG91YmxlIGVsYXBzZWRUaW1lKQogICAgIC8vIHJ1bm5pbmcuIEJ1dCBub3cgdGhhdCB0aGUgdHJh
bnNpdGlvbiBoYXMgY29tcGxldGVkLCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGlzIHN0eWxlIHdpdGgg
aXRzIG5ldwogICAgIC8vIGRlc3RpbmF0aW9uLiBJZiB3ZSBkaWRuJ3QsIHRoZSBuZXh0IHRpbWUg
dGhyb3VnaCB3ZSB3b3VsZCB0aGluayBhIHRyYW5zaXRpb24gaGFkIHN0YXJ0ZWQKICAgICAvLyAo
Y29tcGFyaW5nIHRoZSBvbGQgdW5hbmltYXRlZCBzdHlsZSB3aXRoIHRoZSBuZXcgZmluYWwgc3R5
bGUgb2YgdGhlIHRyYW5zaXRpb24pLgotICAgIFJlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4ga2V5
ZnJhbWVBbmltID0gbV9jb21wb3NpdGVBbmltYXRpb24tPmdldEFuaW1hdGlvbkZvclByb3BlcnR5
KG1fYW5pbWF0aW5nUHJvcGVydHkpOwotICAgIGlmIChrZXlmcmFtZUFuaW0pCi0gICAgICAgIGtl
eWZyYW1lQW5pbS0+c2V0VW5hbmltYXRlZFN0eWxlKFJlbmRlclN0eWxlOjpjbG9uZVB0cigqbV90
b1N0eWxlKSk7Ci0gICAgCisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbiA9IG1fY29tcG9zaXRlQW5p
bWF0aW9uLT5hbmltYXRpb25Gb3JQcm9wZXJ0eShtX2FuaW1hdGluZ1Byb3BlcnR5KSkKKyAgICAg
ICAgYW5pbWF0aW9uLT5zZXRVbmFuaW1hdGVkU3R5bGUoUmVuZGVyU3R5bGU6OmNsb25lUHRyKCpt
X3RvU3R5bGUpKTsKKwogICAgIHNlbmRUcmFuc2l0aW9uRXZlbnQoZXZlbnROYW1lcygpLnRyYW5z
aXRpb25lbmRFdmVudCwgZWxhcHNlZFRpbWUpOwogICAgIGVuZEFuaW1hdGlvbigpOwogfQpAQCAt
MTg3LDcgKzE4Niw3IEBAIGJvb2wgSW1wbGljaXRBbmltYXRpb246OnNlbmRUcmFuc2l0aW9uRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGRvdWJsCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICAvLyBTY2hlZHVsZSBldmVudCBoYW5kbGluZwot
ICAgICAgICAgICAgbV9jb21wb3NpdGVBbmltYXRpb24tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS5h
ZGRFdmVudFRvRGlzcGF0Y2goZWxlbWVudCwgZXZlbnRUeXBlLCBwcm9wZXJ0eU5hbWUsIGVsYXBz
ZWRUaW1lKTsKKyAgICAgICAgICAgIG1fY29tcG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Db250
cm9sbGVyKCkuYWRkRXZlbnRUb0Rpc3BhdGNoKCplbGVtZW50LCBldmVudFR5cGUsIHByb3BlcnR5
TmFtZSwgZWxhcHNlZFRpbWUpOwogCiAgICAgICAgICAgICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5h
bCAodW5hbmltYXRlZCkgc3R5bGUKICAgICAgICAgICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnRO
YW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCAmJiBlbGVtZW50LT5yZW5kZXJlcigpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCmlu
ZGV4IDQ3MWJhY2Y2ZjFiOWYwNWNlMWQzNGRhODc1ZmU4YzY3Yzk0ZmY1N2QuLmRjMjlkMjIzOTFi
MDM0YmRjZWU1NjZmM2IyYTVjMzE3YTBkZDAwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKQEAgLTMyNyw3ICszMjcsNyBA
QCBib29sIEtleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIGRvdWJsZQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgICAgIC8vIFNjaGVkdWxlIGV2ZW50IGhhbmRsaW5nCi0gICAgICAgIG1fY29tcG9zaXRlQW5p
bWF0aW9uLT5hbmltYXRpb25Db250cm9sbGVyKCkuYWRkRXZlbnRUb0Rpc3BhdGNoKGVsZW1lbnQs
IGV2ZW50VHlwZSwgbV9rZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpLCBlbGFwc2VkVGltZSk7Cisg
ICAgICAgIG1fY29tcG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Db250cm9sbGVyKCkuYWRkRXZl
bnRUb0Rpc3BhdGNoKCplbGVtZW50LCBldmVudFR5cGUsIG1fa2V5ZnJhbWVzLmFuaW1hdGlvbk5h
bWUoKSwgZWxhcHNlZFRpbWUpOwogCiAgICAgICAgIC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsICh1
bmFuaW1hdGVkKSBzdHlsZQogICAgICAgICBpZiAoKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCku
d2Via2l0QW5pbWF0aW9uRW5kRXZlbnQgfHwgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5hbmlt
YXRpb25lbmRFdmVudCkgJiYgZWxlbWVudC0+cmVuZGVyZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCmluZGV4IDIxMDZkMWUxOWE0ODZhMzg1ZmZlODdm
OTAwZmFhZmU5MDhiY2FjMTIuLmFhZDA3ZDZmZjZiMTdlY2RkNzE3MTFlNDFlZjViNGUwM2VlMDA1
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcApAQCAt
NDksNyArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjb25zdCBkb3VibGUgRXZlbnRIYW5k
bGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4wOwogI2VuZGlmCiAKLWJvb2wgRXZlbnRIYW5kbGVyOjp0
YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCopIGNvbnN0Citib29sIEV2ZW50SGFu
ZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQmKSBjb25zdAogewogICAg
IHJldHVybiB0cnVlOwogfQpAQCAtOTYsMTAgKzk2LDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp3
aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQs
IFdpCiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc1JlZlB0cjxEYXRhVHJhbnNm
ZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAorCitS
ZWY8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVy
KCkgY29uc3QKIHsKICAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJv
cCgpOwogfQorCiAjZW5kaWYKIAogYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZl
bnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1
YmZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVy
R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAKaW5k
ZXggNDNmMDUzNzVlNWJkZTYxNGY5MDhhN2MxNTRkODJkN2IwOGVjZTI0Yi4uYWFhZGUwMDJjNWM4
OWJkY2VjMDI1MzY1YjAxOTdhNTAxOTZjMmI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0
ay9FdmVudEhhbmRsZXJHdGsuY3BwCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgPSAwLjA7CiAjZW5k
aWYKIAotYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2
ZW50KikgY29uc3QKK2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5
Ym9hcmRFdmVudCYpIGNvbnN0CiB7CiAgICAgLy8gV2UgYWx3YXlzIGFsbG93IHRhYnMgdG8gYWxs
IGNvbnRyb2xzCiAgICAgcmV0dXJuIHRydWU7CkBAIC05NiwxMCArOTYsMTIgQEAgYm9vbCBFdmVu
dEhhbmRsZXI6OndpZGdldERpZEhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiBldmVudCwgV2kKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNzUmVmUHRy
PERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2Zlcigp
IGNvbnN0CisKK1JlZjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdE
YXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZv
ckRyYWdBbmREcm9wKCk7CiB9CisKICNlbmRpZgogCiBib29sIEV2ZW50SGFuZGxlcjo6cGFzc01v
dXNlUHJlc3NFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2
LCBGcmFtZSogc3ViZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9F
dmVudEhhbmRsZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJ
T1MubW0KaW5kZXggNTI0ZmI1YWVhNWIzZDUyMzZiOTQxZDdhZDI1ODhiNDg5Y2JkYTdhMC4uMjli
YWRlZjU5NTU4NGEzZmNlNTNjYTJmODI0MWU0ZjZlZmQ3NTRkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQpAQCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgRXZl
bnRIYW5kbGVyOjp0b3VjaEV2ZW50KFdlYkV2ZW50ICpldmVudCkKIH0KICNlbmRpZgogCi1ib29s
IEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqIGV2ZW50
KSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2Fy
ZEV2ZW50JiBldmVudCkgY29uc3QKIHsKICAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7
CiAgICAgaWYgKCFwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZl
bnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFj
Lm1tCmluZGV4IGU1OTE5NzhjMDBjNDBjNjllNzczYTk3NjIxZDc2NzMzYmQ3NTFiMDIuLjY4ZDlm
ZmQ4ZTNjYzBhZTc0MDhiODBiMGJlMmM1NTkxZWNiMDRjMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAgLTcyMyw3ICs3MjMsNyBAQCBib29sIEV2ZW50
SGFuZGxlcjo6ZXZlbnRBY3RpdmF0ZWRWaWV3KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZl
bnQpIGNvbnN0CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogCi1QYXNzUmVmUHRyPERhdGFU
cmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0
CitSZWY8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5z
ZmVyKCkgY29uc3QKIHsKICAgICAvLyBNdXN0IGJlIGRvbmUgYmVmb3JlIG9uZHJhZ3N0YXJ0IGFk
ZHMgdHlwZXMgYW5kIGRhdGEgdG8gdGhlIHBib2FyZCwKICAgICAvLyBhbHNvIGRvbmUgZm9yIHNl
Y3VyaXR5LCBhcyBpdCBlcmFzZXMgZGF0YSBmcm9tIHRoZSBsYXN0IGRyYWcuCkBAIC03MzQsNyAr
NzM0LDcgQEAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJh
Z2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAogCiAjZW5kaWYKIAotYm9vbCBFdmVudEhhbmRsZXI6
OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KiBldmVudCkgY29uc3QKK2Jvb2wg
RXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCYgZXZlbnQp
IGNvbnN0CiB7CiAgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpOwogICAgIGlmICghcGFn
ZSkKQEAgLTk3MSwxMCArOTcxLDEwIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpwbGF0Zm9ybVByZXBh
cmVGb3JXaGVlbEV2ZW50cyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsCiAgICAgICAg
ICAgICAgICAgbV9mcmFtZS5tYWluRnJhbWUoKS5wdXNoTmV3TGF0Y2hpbmdTdGF0ZSgpOwogICAg
ICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUgPSBtX2ZyYW1lLm1haW5GcmFtZSgpLmxhdGNoaW5n
U3RhdGUoKTsKICAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlLT5zZXRTdGFydGVkR2VzdHVy
ZUF0U2Nyb2xsTGltaXQoZmFsc2UpOwotICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNl
dFdoZWVsRXZlbnRFbGVtZW50KHdoZWVsRXZlbnRUYXJnZXQpOworICAgICAgICAgICAgICAgIGxh
dGNoaW5nU3RhdGUtPnNldFdoZWVsRXZlbnRFbGVtZW50KHdoZWVsRXZlbnRUYXJnZXQuZ2V0KCkp
OwogICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldEZyYW1lKCZtX2ZyYW1lKTsKICAg
ICAgICAgICAgICAgICAvLyBGSVhNRTogV2hhdCBwcmV2ZW50cyB1cyBmcm9tIGRlbGV0aW5nIHRo
aXMgc2Nyb2xsYWJsZSBjb250YWluZXIgd2hpbGUgc3RpbGwgaG9sZGluZyBhIHBvaW50ZXIgdG8g
aXQ/Ci0gICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0U2Nyb2xsYWJsZUNvbnRhaW5l
cihzY3JvbGxhYmxlQ29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlLT5z
ZXRTY3JvbGxhYmxlQ29udGFpbmVyKHNjcm9sbGFibGVDb250YWluZXIuZ2V0KCkpOwogICAgICAg
ICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldFdpZGdldElzTGF0Y2hlZChyZXN1bHQuaXNPdmVy
V2lkZ2V0KCkpOwogICAgICAgICAgICAgICAgIGlzT3ZlcldpZGdldCA9IGxhdGNoaW5nU3RhdGUt
PndpZGdldElzTGF0Y2hlZCgpOwogICAgICAgICAgICAgICAgIG1fZnJhbWUubWFpbkZyYW1lKCku
d2hlZWxFdmVudERlbHRhRmlsdGVyKCktPmJlZ2luRmlsdGVyaW5nRGVsdGFzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmgKaW5k
ZXggNTVlNGQ2NTk1ZWViNjA1M2Y2YTZhOTQ1MGI5ZGFlYjgxMjhjNTI3MC4uNjViMWNlZWM2YjEx
MjdiMDU5NjMyMWVjNDg4MjQ1N2RmNDFiMDRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw2IEBACiAjaW5j
bHVkZSAiUGFnZU92ZXJsYXkuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlRpbWVy
LmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX19EREhp
Z2hsaWdodCAqRERIaWdobGlnaHRSZWY7CiAKQEAgLTM5LDYgKzM4LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgIAogY2xhc3MgTGF5b3V0UmVjdDsKIGNsYXNzIE1haW5GcmFtZTsKKwogc3Ry
dWN0IEdhcFJlY3RzOwogCiBjbGFzcyBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyIDogcHJpdmF0
ZSBQYWdlT3ZlcmxheTo6Q2xpZW50IHsKQEAgLTU0LDE0ICs1NCwxNCBAQCBwcml2YXRlOgogICAg
IGNsYXNzIEhpZ2hsaWdodCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdodD4sIHByaXZhdGUg
R3JhcGhpY3NMYXllckNsaWVudCB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEhpZ2hs
aWdodCk7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRl
Rm9yU2VsZWN0aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImLCBSZXRhaW5QdHI8RERIaWdo
bGlnaHRSZWY+LCBQYXNzUmVmUHRyPFJhbmdlPik7Ci0gICAgICAgIHN0YXRpYyBSZWY8SGlnaGxp
Z2h0PiBjcmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYs
IFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFBhc3NSZWZQdHI8UmFuZ2U+KTsKKyAgICAgICAg
c3RhdGljIFJlZjxIaWdobGlnaHQ+IGNyZWF0ZUZvclNlbGVjdGlvbihTZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyJiwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUmVmPFJhbmdlPiYmKTsKKyAg
ICAgICAgc3RhdGljIFJlZjxIaWdobGlnaHQ+IGNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcihTZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyJiwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUmVmPFJh
bmdlPiYmKTsKICAgICAgICAgfkhpZ2hsaWdodCgpOwogCiAgICAgICAgIHZvaWQgaW52YWxpZGF0
ZSgpOwogCiAgICAgICAgIERESGlnaGxpZ2h0UmVmIGRkSGlnaGxpZ2h0KCkgY29uc3QgeyByZXR1
cm4gbV9kZEhpZ2hsaWdodC5nZXQoKTsgfQotICAgICAgICBSYW5nZSogcmFuZ2UoKSBjb25zdCB7
IHJldHVybiBtX3JhbmdlLmdldCgpOyB9CisgICAgICAgIFJhbmdlJiByYW5nZSgpIGNvbnN0IHsg
cmV0dXJuIG1fcmFuZ2UuZ2V0KCk7IH0KICAgICAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIoKSBj
b25zdCB7IHJldHVybiBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCk7IH0KIAogICAgICAgICBlbnVtIHsK
QEAgLTc3LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBzZXREREhpZ2hsaWdodChE
REhpZ2hsaWdodFJlZik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBleHBsaWNpdCBIaWdobGln
aHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdo
dFJlZj4sIFBhc3NSZWZQdHI8UmFuZ2U+KTsKKyAgICAgICAgSGlnaGxpZ2h0KFNlcnZpY2VzT3Zl
cmxheUNvbnRyb2xsZXImLCBUeXBlLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+LCBSZWY8UmFu
Z2U+JiYpOwogCiAgICAgICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICAgICAgdm9pZCBu
b3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKQEAgLTg3
LDcgKzg3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBkaWRGaW5pc2hGYWRlT3V0QW5pbWF0
aW9uKCk7CiAKICAgICAgICAgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBtX2RkSGlnaGxpZ2h0
OwotICAgICAgICBSZWZQdHI8UmFuZ2U+IG1fcmFuZ2U7CisgICAgICAgIFJlZjxSYW5nZT4gbV9y
YW5nZTsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fZ3JhcGhpY3NM
YXllcjsKICAgICAgICAgVHlwZSBtX3R5cGU7CiAgICAgICAgIFNlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXIqIG1fY29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9T
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCmluZGV4IDlhODE1YjVhZTU1OTY0OTliZGY2MTZl
ZDQyMTFiOWE1MjM4MTVlNjIuLjRiMDNlMjJhZTQ2YmU4OWFlMjMxMDJmYjQ5ZmY0OTIxZDQwNDY4
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNv
bnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5
Q29udHJvbGxlci5tbQpAQCAtNTUsMjMgKzU1LDIyIEBAIGNvbnN0IGZsb2F0IGhpZ2hsaWdodEZh
ZGVBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0PiBTZXJ2aWNlc092ZXJsYXlDb250
cm9sbGVyOjpIaWdobGlnaHQ6OmNyZWF0ZUZvclNlbGVjdGlvbihTZXJ2aWNlc092ZXJsYXlDb250
cm9sbGVyJiBjb250cm9sbGVyLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0
LCBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZSkKK1JlZjxTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
OjpIaWdobGlnaHQ+IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6Y3JlYXRl
Rm9yU2VsZWN0aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIsIFJldGFp
blB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFJlZjxSYW5nZT4mJiByYW5nZSkKIHsK
LSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHQoY29udHJvbGxlciwgSGlnaGxpZ2h0
OjpTZWxlY3Rpb25UeXBlLCBkZEhpZ2hsaWdodCwgcmFuZ2UpKTsKKyAgICByZXR1cm4gYWRvcHRS
ZWYoKm5ldyBIaWdobGlnaHQoY29udHJvbGxlciwgSGlnaGxpZ2h0OjpTZWxlY3Rpb25UeXBlLCBk
ZEhpZ2hsaWdodCwgV1RGTW92ZShyYW5nZSkpKTsKIH0KIAotUmVmPFNlcnZpY2VzT3ZlcmxheUNv
bnRyb2xsZXI6OkhpZ2hsaWdodD4gU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0
OjpjcmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYgY29u
dHJvbGxlciwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCwgUGFzc1JlZlB0
cjxSYW5nZT4gcmFuZ2UpCitSZWY8U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0
PiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OmNyZWF0ZUZvclRlbGVwaG9u
ZU51bWJlcihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiBjb250cm9sbGVyLCBSZXRhaW5QdHI8
RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBSZWY8UmFuZ2U+JiYgcmFuZ2UpCiB7Ci0gICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0KGNvbnRyb2xsZXIsIEhpZ2hsaWdodDo6VGVs
ZXBob25lTnVtYmVyVHlwZSwgZGRIaWdobGlnaHQsIHJhbmdlKSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgSGlnaGxpZ2h0KGNvbnRyb2xsZXIsIEhpZ2hsaWdodDo6VGVsZXBob25lTnVtYmVy
VHlwZSwgZGRIaWdobGlnaHQsIFdURk1vdmUocmFuZ2UpKSk7CiB9CiAKLVNlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6SGlnaGxpZ2h0KFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXImIGNvbnRyb2xsZXIsIFR5cGUgdHlwZSwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhp
Z2hsaWdodCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpSYW5nZT4gcmFuZ2UpCi0gICAgOiBtX3Jhbmdl
KHJhbmdlKQorU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpIaWdobGlnaHQo
U2VydmljZXNPdmVybGF5Q29udHJvbGxlciYgY29udHJvbGxlciwgVHlwZSB0eXBlLCBSZXRhaW5Q
dHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBSZWY8V2ViQ29yZTo6UmFuZ2U+JiYgcmFu
Z2UpCisgICAgOiBtX3JhbmdlKFdURk1vdmUocmFuZ2UpKQogICAgICwgbV90eXBlKHR5cGUpCiAg
ICAgLCBtX2NvbnRyb2xsZXIoJmNvbnRyb2xsZXIpCiB7CiAgICAgQVNTRVJUKGRkSGlnaGxpZ2h0
KTsKLSAgICBBU1NFUlQobV9yYW5nZSk7CiAKICAgICBQYWdlKiBwYWdlID0gY29udHJvbGxlci5t
YWluRnJhbWUoKS5wYWdlKCk7CiAgICAgbV9ncmFwaGljc0xheWVyID0gR3JhcGhpY3NMYXllcjo6
Y3JlYXRlKHBhZ2UgPyBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5ncmFwaGljc0xheWVyRmFjdG9y
eSgpIDogbnVsbHB0ciwgKnRoaXMpOwpAQCAtNDA5LDcgKzQwOCw3IEBAIHZvaWQgU2VydmljZXNP
dmVybGF5Q29udHJvbGxlcjo6YnVpbGRQb3RlbnRpYWxIaWdobGlnaHRzSWZOZWVkZWQoKQogCiAg
ICAgaWYgKG1fcG90ZW50aWFsSGlnaGxpZ2h0cy5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKG1f
c2VydmljZXNPdmVybGF5KQotICAgICAgICAgICAgbV9tYWluRnJhbWUucGFnZU92ZXJsYXlDb250
cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkobV9zZXJ2aWNlc092ZXJsYXksIFBhZ2VPdmVy
bGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAgICAgIG1fbWFpbkZyYW1lLnBhZ2VP
dmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX3NlcnZpY2VzT3Zlcmxh
eSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCkBAIC01MjcsNyArNTI2LDcgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
OjpidWlsZFBob25lTnVtYmVySGlnaGxpZ2h0cygpCiAgICAgICAgIENHUmVjdCBjZ1JlY3QgPSBy
ZWN0OwogICAgICAgICBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0ID0gYWRv
cHRDRihEREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJsZVJlY3RXaXRoU3R5bGVBbmRE
aXJlY3Rpb24obnVsbHB0ciwgJmNnUmVjdCwgMSwgbWFpbkZyYW1lVmlldy52aXNpYmxlQ29udGVu
dFJlY3QoKSwgRERIaWdobGlnaHRTdHlsZUJ1YmJsZVN0YW5kYXJkIHwgRERIaWdobGlnaHRTdHls
ZVN0YW5kYXJkSWNvbkFycm93LCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5PLCBZ
RVMpKTsKIAotICAgICAgICBuZXdQb3RlbnRpYWxIaWdobGlnaHRzLmFkZChIaWdobGlnaHQ6OmNy
ZWF0ZUZvclRlbGVwaG9uZU51bWJlcigqdGhpcywgZGRIaWdobGlnaHQsIHJhbmdlKSk7CisgICAg
ICAgIG5ld1BvdGVudGlhbEhpZ2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBo
b25lTnVtYmVyKCp0aGlzLCBkZEhpZ2hsaWdodCwgcmFuZ2UucmVsZWFzZU5vbk51bGwoKSkpOwog
ICAgIH0KIAogICAgIHJlcGxhY2VIaWdobGlnaHRzT2ZUeXBlUHJlc2VydmluZ0VxdWl2YWxlbnRI
aWdobGlnaHRzKG5ld1BvdGVudGlhbEhpZ2hsaWdodHMsIEhpZ2hsaWdodDo6VGVsZXBob25lTnVt
YmVyVHlwZSk7CkBAIC01NzAsNyArNTY5LDcgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyOjpidWlsZFNlbGVjdGlvbkhpZ2hsaWdodCgpCiAgICAgICAgICAgICBDR1JlY3QgdmlzaWJs
ZVJlY3QgPSBtYWluRnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKICAgICAgICAgICAg
IFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQgPSBhZG9wdENGKERESGlnaGxp
Z2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZUFuZERpcmVjdGlvbihudWxs
cHRyLCBjZ1JlY3RzLmJlZ2luKCksIGNnUmVjdHMuc2l6ZSgpLCB2aXNpYmxlUmVjdCwgRERIaWdo
bGlnaHRTdHlsZUJ1YmJsZU5vbmUgfCBEREhpZ2hsaWdodFN0eWxlU3RhbmRhcmRJY29uQXJyb3cg
fCBEREhpZ2hsaWdodFN0eWxlQnV0dG9uU2hvd0Fsd2F5cywgWUVTLCBOU1dyaXRpbmdEaXJlY3Rp
b25OYXR1cmFsLCBOTywgWUVTKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIG5ld1BvdGVu
dGlhbEhpZ2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yU2VsZWN0aW9uKCp0aGlzLCBk
ZEhpZ2hsaWdodCwgc2VsZWN0aW9uUmFuZ2UpKTsKKyAgICAgICAgICAgIG5ld1BvdGVudGlhbEhp
Z2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yU2VsZWN0aW9uKCp0aGlzLCBkZEhpZ2hs
aWdodCwgc2VsZWN0aW9uUmFuZ2UucmVsZWFzZU5vbk51bGwoKSkpOwogICAgICAgICB9CiAgICAg
fQogCkBAIC02MzgsMTQgKzYzNyw5IEBAIGJvb2wgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6
aGlnaGxpZ2h0c0FyZUVxdWl2YWxlbnQoY29uc3QgSGlnaGxpZ2h0KiBhLCBjb25zCiB7CiAgICAg
aWYgKGEgPT0gYikKICAgICAgICAgcmV0dXJuIHRydWU7Ci0KICAgICBpZiAoIWEgfHwgIWIpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChhLT50eXBlKCkgPT0gYi0+dHlwZSgpICYm
IGFyZVJhbmdlc0VxdWFsKGEtPnJhbmdlKCksIGItPnJhbmdlKCkpKQotICAgICAgICByZXR1cm4g
dHJ1ZTsKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gYS0+dHlwZSgpID09IGItPnR5
cGUoKSAmJiBhcmVSYW5nZXNFcXVhbCgmYS0+cmFuZ2UoKSwgJmItPnJhbmdlKCkpOwogfQogCiBT
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQqIFNlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXI6OmZpbmRUZWxlcGhvbmVOdW1iZXJIaWdobGlnaHRDb250YWluaW5nU2VsZWN0aW9uSGln
aGxpZ2h0KEhpZ2hsaWdodCYgc2VsZWN0aW9uSGlnaGxpZ2h0KQpAQCAtNjY5LDcgKzY2Myw3IEBA
IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodCogU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlcjo6ZmluZFRlbGVwaG9uZU51CiAgICAgICAgIGlmIChoaWdobGlnaHQtPnR5cGUoKSAh
PSBIaWdobGlnaHQ6OlRlbGVwaG9uZU51bWJlclR5cGUpCiAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICBpZiAoaGlnaGxpZ2h0LT5yYW5nZSgpLT5jb250YWlucygqYWN0aXZlU2VsZWN0
aW9uUmFuZ2UpKQorICAgICAgICBpZiAoaGlnaGxpZ2h0LT5yYW5nZSgpLmNvbnRhaW5zKCphY3Rp
dmVTZWxlY3Rpb25SYW5nZSkpCiAgICAgICAgICAgICByZXR1cm4gaGlnaGxpZ2h0LmdldCgpOwog
ICAgIH0KIApAQCAtODMyLDcgKzgyNiw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxl
cjo6aGFuZGxlQ2xpY2soY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQsIEhpZ2hsaWdoCiAKICAg
ICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNr
KHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLnNlbGVjdGlvbigp
LCBzZWxlY3RlZFRlbGVwaG9uZU51bWJlcnMsIHdpbmRvd1BvaW50KTsKICAgICB9IGVsc2UgaWYg
KGhpZ2hsaWdodC50eXBlKCkgPT0gSGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlKQotICAg
ICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYW5kbGVUZWxlcGhvbmVOdW1iZXJDbGljayho
aWdobGlnaHQucmFuZ2UoKS0+dGV4dCgpLCB3aW5kb3dQb2ludCk7CisgICAgICAgIHBhZ2UtPmNo
cm9tZSgpLmNsaWVudCgpLmhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGhpZ2hsaWdodC5yYW5n
ZSgpLnRleHQoKSwgd2luZG93UG9pbnQpOwogfQogCiB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXI6OmRpZENyZWF0ZUhpZ2hsaWdodChIaWdobGlnaHQqIGhpZ2hsaWdodCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4IGU0ZTIwZDIy
NzY4Yzg4MmU5MDBiMTJiNDFmZTAyZWNkZmI0OGY2MjguLmU1OTI5YmE2M2RlNTlmNDk4M2JkOGNm
OWMzMDA2NGU2NzE3NzNjYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dElu
ZGljYXRvcldpbmRvdy5tbQpAQCAtNjQsNyArNjQsNyBAQCBAaW50ZXJmYWNlIFdlYlRleHRJbmRp
Y2F0b3JWaWV3IDogTlNWaWV3IHsKICAgICBCT09MIF9mYWRpbmdPdXQ7CiB9CiAKLS0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooUGFzc1Jl
ZlB0cjxUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yIG1hcmdpbjooTlNTaXplKW1hcmdpbiBv
ZmZzZXQ6KE5TUG9pbnQpb2Zmc2V0OworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5T
UmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIG1h
cmdpbjooTlNTaXplKW1hcmdpbiBvZmZzZXQ6KE5TUG9pbnQpb2Zmc2V0OwogCiAtICh2b2lkKXBy
ZXNlbnQ7CiAtICh2b2lkKWhpZGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkp
Y29tcGxldGlvbkhhbmRsZXI7CkBAIC0xNDcsMTIgKzE0NywxMiBAQCBzdGF0aWMgYm9vbCBpbmRp
Y2F0b3JXYW50c01hbnVhbEFuaW1hdGlvbihjb25zdCBUZXh0SW5kaWNhdG9yJiBpbmRpY2F0b3Ip
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZToo
TlNSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFBhc3NSZWZQdHI8VGV4dEluZGljYXRvcj4pdGV4
dEluZGljYXRvciBtYXJnaW46KE5TU2l6ZSltYXJnaW4gb2Zmc2V0OihOU1BvaW50KW9mZnNldAor
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9y
OihUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIG1hcmdpbjooTlNTaXplKW1hcmdpbiBvZmZz
ZXQ6KE5TUG9pbnQpb2Zmc2V0CiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0V2l0aEZy
YW1lOmZyYW1lXSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfdGV4dEluZGljYXRvciA9
IHRleHRJbmRpY2F0b3I7CisgICAgX3RleHRJbmRpY2F0b3IgPSAmdGV4dEluZGljYXRvcjsKICAg
ICBfbWFyZ2luID0gbWFyZ2luOwogCiAgICAgc2VsZi53YW50c0xheWVyID0gWUVTOwpAQCAtNDY1
LDcgKzQ2NSw4IEBAIHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihS
ZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgQ0dSCiAgICAgW21fdGV4dEluZGljYXRv
cldpbmRvdyBzZXRPcGFxdWU6Tk9dOwogICAgIFttX3RleHRJbmRpY2F0b3JXaW5kb3cgc2V0SWdu
b3Jlc01vdXNlRXZlbnRzOllFU107CiAKLSAgICBtX3RleHRJbmRpY2F0b3JWaWV3ID0gYWRvcHRO
UyhbW1dlYlRleHRJbmRpY2F0b3JWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3Qo
MCwgMCwgW21fdGV4dEluZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS53aWR0aCwgW21fdGV4dElu
ZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS5oZWlnaHQpIHRleHRJbmRpY2F0b3I6bV90ZXh0SW5k
aWNhdG9yIG1hcmdpbjpOU01ha2VTaXplKGhvcml6b250YWxNYXJnaW4sIHZlcnRpY2FsTWFyZ2lu
KSBvZmZzZXQ6ZnJhY3Rpb25hbFRleHRPZmZzZXRdKTsKKyAgICBtX3RleHRJbmRpY2F0b3JWaWV3
ID0gYWRvcHROUyhbW1dlYlRleHRJbmRpY2F0b3JWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgW21fdGV4dEluZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS53aWR0aCwg
W21fdGV4dEluZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS5oZWlnaHQpCisgICAgICAgIHRleHRJ
bmRpY2F0b3I6Km1fdGV4dEluZGljYXRvciBtYXJnaW46TlNNYWtlU2l6ZShob3Jpem9udGFsTWFy
Z2luLCB2ZXJ0aWNhbE1hcmdpbikgb2Zmc2V0OmZyYWN0aW9uYWxUZXh0T2Zmc2V0XSk7CiAgICAg
W21fdGV4dEluZGljYXRvcldpbmRvdyBzZXRDb250ZW50VmlldzptX3RleHRJbmRpY2F0b3JWaWV3
LmdldCgpXTsKIAogICAgIFtbbV90YXJnZXRWaWV3IHdpbmRvd10gYWRkQ2hpbGRXaW5kb3c6bV90
ZXh0SW5kaWNhdG9yV2luZG93LmdldCgpIG9yZGVyZWQ6TlNXaW5kb3dBYm92ZV07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmgKaW5kZXggYTQzNDE3ZGNlMWM0MDEzMDg0NjkyMzgzYTEyYThjZjFhYjlkMjBiMy4u
MDExYWUwZjIzM2MwOTI2ZmVmZTBmMGQ5MDdjNWYxYTgwZjI3Mjc0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgi
CiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTY5LDExICs2OCwxMSBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAg
V0VCQ09SRV9FWFBPUlQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlKik7CiAKLSAgICB2
b2lkIHNldFNjcm9sbGluZ1RyZWUoUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlPiBzY3JvbGxpbmdU
cmVlKSB7IG1fc2Nyb2xsaW5nVHJlZSA9IHNjcm9sbGluZ1RyZWU7IH0KKyAgICB2b2lkIHNldFNj
cm9sbGluZ1RyZWUoUmVmPFNjcm9sbGluZ1RyZWU+JiYgc2Nyb2xsaW5nVHJlZSkgeyBtX3Njcm9s
bGluZ1RyZWUgPSBXVEZNb3ZlKHNjcm9sbGluZ1RyZWUpOyB9CiAKICAgICBTY3JvbGxpbmdTdGF0
ZVRyZWUqIHNjcm9sbGluZ1N0YXRlVHJlZSgpIHsgcmV0dXJuIG1fc2Nyb2xsaW5nU3RhdGVUcmVl
LmdldCgpOyB9CiAKLSAgICBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWU+IHJlbGVhc2VTY3JvbGxp
bmdUcmVlKCkgeyByZXR1cm4gV1RGTW92ZShtX3Njcm9sbGluZ1RyZWUpOyB9CisgICAgUmVmUHRy
PFNjcm9sbGluZ1RyZWU+IHJlbGVhc2VTY3JvbGxpbmdUcmVlKCkgeyByZXR1cm4gV1RGTW92ZSht
X3Njcm9sbGluZ1RyZWUpOyB9CiAKICAgICB2b2lkIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJB
c3luY1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmLCBzdGQ6Om9wdGlv
bmFsPEZsb2F0UG9pbnQ+IGxheW91dFZpZXdwb3J0T3JpZ2luLCBib29sIHByb2dyYW1tYXRpY1Nj
cm9sbCwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAKaW5kZXggZTM5
ZDk5ZWZiYTMwNjhjY2IwNTViNDBkMWM3MjQzNzdkNThlMzViZS4uMDFlNjUyOWIwMmM4YzFkNzBh
ZTc3MzI4M2ViN2Y3MzAwNTc0Zjk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAKQEAgLTMxLDkgKzMxLDYgQEAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6U2Nyb2xsTGF0Y2hpbmdT
dGF0ZSgpCi0gICAgOiBtX2ZyYW1lKG51bGxwdHIpCi0gICAgLCBtX3dpZGdldElzTGF0Y2hlZChm
YWxzZSkKLSAgICAsIG1fc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0KGZhbHNlKQogewogfQog
ICAgIApAQCAtNTAsNyArNDcsNyBAQCB2b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OmNsZWFyKCkK
ICAgICBtX3ByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQgPSBudWxscHRyOwogfQogCi12b2lk
IFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFdoZWVsRXZlbnRFbGVtZW50KFBhc3NSZWZQdHI8RWxl
bWVudD4gZWxlbWVudCkKK3ZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0V2hlZWxFdmVudEVs
ZW1lbnQoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBtX3doZWVsRXZlbnRFbGVtZW50ID0gZWxl
bWVudDsKIH0KQEAgLTYwLDE0ICs1NywxNCBAQCB2b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNl
dFdpZGdldElzTGF0Y2hlZChib29sIGlzT3ZlcldpZGdldCkKICAgICBtX3dpZGdldElzTGF0Y2hl
ZCA9IGlzT3ZlcldpZGdldDsKIH0KIAotdm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRlOjpzZXRQcmV2
aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50KFJlZlB0cjxFbGVtZW50PiYmIGVsZW1lbnQpCit2b2lk
IFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQoRWxl
bWVudCogZWxlbWVudCkKIHsKICAgICBtX3ByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQgPSBl
bGVtZW50OwogfQogCi12b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFNjcm9sbGFibGVDb250
YWluZXIoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBub2RlKQordm9pZCBTY3JvbGxMYXRjaGlu
Z1N0YXRlOjpzZXRTY3JvbGxhYmxlQ29udGFpbmVyKENvbnRhaW5lck5vZGUqIGNvbnRhaW5lcikK
IHsKLSAgICBtX3Njcm9sbGFibGVDb250YWluZXIgPSBub2RlOworICAgIG1fc2Nyb2xsYWJsZUNv
bnRhaW5lciA9IGNvbnRhaW5lcjsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oCmluZGV4IDRkYzBkZDMyMjkzYjM5MGVj
OWI2NzFjZmUzYjE5ODU3Yzk3M2M0NzguLjExZGNiZDBkYjE1NWUwNDUwMDA1NjIxYTA1MTc0NzZk
MmI5MjkzYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bExhdGNoaW5nU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxMYXRjaGluZ1N0YXRlLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xl
YXIoKTsKIAogICAgIEVsZW1lbnQqIHdoZWVsRXZlbnRFbGVtZW50KCkgeyByZXR1cm4gbV93aGVl
bEV2ZW50RWxlbWVudC5nZXQoKTsgfQotICAgIHZvaWQgc2V0V2hlZWxFdmVudEVsZW1lbnQoUGFz
c1JlZlB0cjxFbGVtZW50Pik7CisgICAgdm9pZCBzZXRXaGVlbEV2ZW50RWxlbWVudChFbGVtZW50
Kik7CiAgICAgRnJhbWUqIGZyYW1lKCkgeyByZXR1cm4gbV9mcmFtZTsgfQogICAgIHZvaWQgc2V0
RnJhbWUoRnJhbWUqIGZyYW1lKSB7IG1fZnJhbWUgPSBmcmFtZTsgfQogCkBAIC00OSwxMCArNDks
MTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0V2lkZ2V0SXNMYXRjaGVkKGJvb2wgaXNPdmVyV2lk
Z2V0KTsKIAogICAgIEVsZW1lbnQqIHByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQoKSB7IHJl
dHVybiBtX3ByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQuZ2V0KCk7IH0KLSAgICB2b2lkIHNl
dFByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQoUmVmUHRyPEVsZW1lbnQ+JiYpOworICAgIHZv
aWQgc2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudChFbGVtZW50Kik7CiAgICAgCiAgICAg
Q29udGFpbmVyTm9kZSogc2Nyb2xsYWJsZUNvbnRhaW5lcigpIHsgcmV0dXJuIG1fc2Nyb2xsYWJs
ZUNvbnRhaW5lci5nZXQoKTsgfQotICAgIHZvaWQgc2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihQYXNz
UmVmUHRyPENvbnRhaW5lck5vZGU+KTsKKyAgICB2b2lkIHNldFNjcm9sbGFibGVDb250YWluZXIo
Q29udGFpbmVyTm9kZSopOwogICAgIGJvb2wgc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0KCkg
Y29uc3QgeyByZXR1cm4gbV9zdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQ7IH0KICAgICB2b2lk
IHNldFN0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdChib29sIHN0YXJ0ZWRBdExpbWl0KSB7IG1f
c3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0ID0gc3RhcnRlZEF0TGltaXQ7IH0KIApAQCAtNjEs
MTAgKzYxLDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fcHJldmlvdXNXaGVl
bFNjcm9sbGVkRWxlbWVudDsKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9zY3JvbGxhYmxl
Q29udGFpbmVyOwogCi0gICAgRnJhbWUqIG1fZnJhbWU7Ci0gICAgCi0gICAgYm9vbCBtX3dpZGdl
dElzTGF0Y2hlZDsKLSAgICBib29sIG1fc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0OworICAg
IEZyYW1lKiBtX2ZyYW1lIHsgbnVsbHB0ciB9OworCisgICAgYm9vbCBtX3dpZGdldElzTGF0Y2hl
ZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3N0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdCB7IGZh
bHNlIH07CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5jcHAKaW5kZXggYzg0
NTliMDVhMGQxNjdiNWFjZWFkMTQwOTVlOTNmNmVkNzdmMjRkMC4uNjFkYTU4YTlkZWVjMGY2OGQ1
ZGE2MjBlMmQ2ZmQ4MDMxNWE3NGMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQg
U2Nyb2xsaW5nU3RhdGVOb2RlOjpzZXRQcm9wZXJ0eUNoYW5nZWQodW5zaWduZWQgcHJvcGVydHlC
aXQpCiAgICAgbV9zY3JvbGxpbmdTdGF0ZVRyZWUuc2V0SGFzQ2hhbmdlZFByb3BlcnRpZXMoKTsK
IH0KIAotUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlTm9kZTo6
Y2xvbmVBbmRSZXNldChTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKK1JlZjxTY3Jv
bGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVBbmRSZXNldChTY3JvbGxp
bmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKIHsKICAgICBhdXRvIGNsb25lID0gdGhpcy0+Y2xv
bmUoYWRvcHRpdmVUcmVlKTsKIApAQCAtODAsNyArODAsOCBAQCBQYXNzUmVmUHRyPFNjcm9sbGlu
Z1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0
YXRlVAogICAgIHJlc2V0Q2hhbmdlZFByb3BlcnRpZXMoKTsKIAogICAgIGNsb25lQW5kUmVzZXRD
aGlsZHJlbihjbG9uZS5nZXQoKSwgYWRvcHRpdmVUcmVlKTsKLSAgICByZXR1cm4gV1RGTW92ZShj
bG9uZSk7CisKKyAgICByZXR1cm4gY2xvbmU7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVOb2Rl
OjpjbG9uZUFuZFJlc2V0Q2hpbGRyZW4oU2Nyb2xsaW5nU3RhdGVOb2RlJiBjbG9uZSwgU2Nyb2xs
aW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpCkBAIC05MiwxNCArOTMsMTMgQEAgdm9pZCBTY3Jv
bGxpbmdTdGF0ZU5vZGU6OmNsb25lQW5kUmVzZXRDaGlsZHJlbihTY3JvbGxpbmdTdGF0ZU5vZGUm
IGNsb25lLCBTY3JvbGwKICAgICAgICAgY2xvbmUuYXBwZW5kQ2hpbGQoY2hpbGQtPmNsb25lQW5k
UmVzZXQoYWRvcHRpdmVUcmVlKSk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjphcHBl
bmRDaGlsZChQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2hpbGROb2RlKQordm9pZCBT
Y3JvbGxpbmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxkKFJlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+JiYg
Y2hpbGROb2RlKQogewogICAgIGNoaWxkTm9kZS0+c2V0UGFyZW50KHRoaXMpOwogCiAgICAgaWYg
KCFtX2NoaWxkcmVuKQogICAgICAgICBtX2NoaWxkcmVuID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0
b3I8UmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4+PigpOwotCi0gICAgbV9jaGlsZHJlbi0+YXBw
ZW5kKGNoaWxkTm9kZSk7CisgICAgbV9jaGlsZHJlbi0+YXBwZW5kKFdURk1vdmUoY2hpbGROb2Rl
KSk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjpzZXRMYXllcihjb25zdCBMYXllclJl
cHJlc2VudGF0aW9uJiBsYXllclJlcHJlc2VudGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaAppbmRleCBiZmFkMWM0NWUwZDcx
ZjliYTdjMmJjMDgyM2YxMWJlNDY4ZDY5ZWMwLi4wODdkNjE4MjlhZGU1NDYxMDYxMjA1NzViZDQx
YTE2ODBlYmMxZDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdTdGF0ZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdTdGF0ZU5vZGUuaApAQCAtMjA2LDcgKzIwNiw3IEBAIHB1YmxpYzoKICAgICBib29s
IGlzT3ZlcmZsb3dTY3JvbGxpbmdOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9ub2RlVHlwZSA9PSBP
dmVyZmxvd1Njcm9sbGluZ05vZGU7IH0KIAogICAgIHZpcnR1YWwgUmVmPFNjcm9sbGluZ1N0YXRl
Tm9kZT4gY2xvbmUoU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpID0gMDsKLSAgICBQ
YXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xvbmVBbmRSZXNldChTY3JvbGxpbmdTdGF0
ZVRyZWUmIGFkb3B0aXZlVHJlZSk7CisgICAgUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xvbmVB
bmRSZXNldChTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSk7CiAgICAgdm9pZCBjbG9u
ZUFuZFJlc2V0Q2hpbGRyZW4oU2Nyb2xsaW5nU3RhdGVOb2RlJiwgU2Nyb2xsaW5nU3RhdGVUcmVl
JiBhZG9wdGl2ZVRyZWUpOwogCiAgICAgZW51bSB7CkBAIC0yMzgsNyArMjM4LDcgQEAgcHVibGlj
OgogCiAgICAgVmVjdG9yPFJlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+PiogY2hpbGRyZW4oKSBj
b25zdCB7IHJldHVybiBtX2NoaWxkcmVuLmdldCgpOyB9CiAKLSAgICB2b2lkIGFwcGVuZENoaWxk
KFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPik7CisgICAgdm9pZCBhcHBlbmRDaGlsZChS
ZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiYmKTsKIAogICAgIFN0cmluZyBzY3JvbGxpbmdTdGF0ZVRy
ZWVBc1RleHQoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKaW5kZXggOThiNmNhZGNiNGMzNTFjZDJkNzY2NjQ2
NTczZTM4NWE3MzJmYzE0Mi4uMGJiYzFiNzMzODI3MTliNjI1OGQxMWQwNDk0MzNlMzI5ODdhM2Uw
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3Rh
dGVUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZVRyZWUuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVUcmVlOjpz
ZXRIYXNDaGFuZ2VkUHJvcGVydGllcyhib29sIGNoYW5nZWRQcm9wZXJ0aWVzKQogI2VuZGlmCiB9
CiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZVRyZWU6OmNy
ZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2Rl
SUQpCitSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZVRyZWU6OmNyZWF0ZU5v
ZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7
CiAgICAgc3dpdGNoIChub2RlVHlwZSkgewogICAgIGNhc2UgRml4ZWROb2RlOgpAQCAtODAsNyAr
ODAsNyBAQCBQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVUcmVl
OjpjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlCiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdT
dGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIH0K
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1
cm4gU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKIH0KIAog
Ym9vbCBTY3JvbGxpbmdTdGF0ZVRyZWU6Om5vZGVUeXBlQW5kUGFyZW50TWF0Y2goU2Nyb2xsaW5n
U3RhdGVOb2RlJiBub2RlLCBTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9k
ZUlEIHBhcmVudElEKSBjb25zdApAQCAtMTI5LDEzICsxMjksMTMgQEAgU2Nyb2xsaW5nTm9kZUlE
IFNjcm9sbGluZ1N0YXRlVHJlZTo6YXR0YWNoTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlw
ZSwgU2Nyb2wKICAgICAgICAgaWYgKG5vZGVUeXBlID09IEZyYW1lU2Nyb2xsaW5nTm9kZSAmJiBw
YXJlbnRJRCkgewogICAgICAgICAgICAgaWYgKGF1dG8gb3JwaGFuZWROb2RlID0gbV9vcnBoYW5l
ZFN1YmZyYW1lTm9kZXMudGFrZShuZXdOb2RlSUQpKSB7CiAgICAgICAgICAgICAgICAgbmV3Tm9k
ZSA9IG9ycGhhbmVkTm9kZS5nZXQoKTsKLSAgICAgICAgICAgICAgICBwYXJlbnQtPmFwcGVuZENo
aWxkKFdURk1vdmUob3JwaGFuZWROb2RlKSk7CisgICAgICAgICAgICAgICAgcGFyZW50LT5hcHBl
bmRDaGlsZChvcnBoYW5lZE5vZGUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAoIW5ld05vZGUpIHsKICAgICAgICAgICAgIGF1dG8gc3Rh
dGVOb2RlID0gY3JlYXRlTm9kZShub2RlVHlwZSwgbmV3Tm9kZUlEKTsKLSAgICAgICAgICAgIG5l
d05vZGUgPSBzdGF0ZU5vZGUuZ2V0KCk7CisgICAgICAgICAgICBuZXdOb2RlID0gc3RhdGVOb2Rl
LnB0cigpOwogICAgICAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZChXVEZNb3ZlKHN0YXRlTm9k
ZSkpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTgyLDcgKzE4Miw3IEBAIHN0ZDo6dW5pcXVlX3B0
cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IFNjcm9sbGluZ1N0YXRlVHJlZTo6Y29tbWl0KExheWVyUmVw
cmVzZW50YXRpCiAgICAgdHJlZVN0YXRlQ2xvbmUtPnNldFByZWZlcnJlZExheWVyUmVwcmVzZW50
YXRpb24ocHJlZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbik7CiAKICAgICBpZiAobV9yb290U3Rh
dGVOb2RlKQotICAgICAgICB0cmVlU3RhdGVDbG9uZS0+c2V0Um9vdFN0YXRlTm9kZShzdGF0aWNf
cG9pbnRlcl9jYXN0PFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPihtX3Jvb3RTdGF0
ZU5vZGUtPmNsb25lQW5kUmVzZXQoKnRyZWVTdGF0ZUNsb25lKSkpOworICAgICAgICB0cmVlU3Rh
dGVDbG9uZS0+c2V0Um9vdFN0YXRlTm9kZShzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8U2Nyb2xsaW5n
U3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KG1fcm9vdFN0YXRlTm9kZS0+Y2xvbmVBbmRSZXNldCgq
dHJlZVN0YXRlQ2xvbmUpKSk7CiAKICAgICAvLyBDb3B5IHRoZSBJRHMgb2YgdGhlIG5vZGVzIHRo
YXQgaGF2ZSBiZWVuIHJlbW92ZWQgc2luY2UgdGhlIGxhc3QgY29tbWl0IGludG8gdGhlIGNsb25l
LgogICAgIHRyZWVTdGF0ZUNsb25lLT5tX25vZGVzUmVtb3ZlZFNpbmNlTGFzdENvbW1pdC5zd2Fw
KG1fbm9kZXNSZW1vdmVkU2luY2VMYXN0Q29tbWl0KTsKQEAgLTIxMSw3ICsyMTEsOCBAQCB2b2lk
IFNjcm9sbGluZ1N0YXRlVHJlZTo6cmVtb3ZlTm9kZUFuZEFsbERlc2NlbmRhbnRzKFNjcm9sbGlu
Z1N0YXRlTm9kZSogbm9kZSwgUwogICAgIGlmIChub2RlID09IG1fcm9vdFN0YXRlTm9kZSkKICAg
ICAgICAgbV9yb290U3RhdGVOb2RlID0gbnVsbHB0cjsKICAgICBlbHNlIGlmIChwYXJlbnQpIHsK
LSAgICAgICAgQVNTRVJUKHBhcmVudC0+Y2hpbGRyZW4oKSAmJiBwYXJlbnQtPmNoaWxkcmVuKCkt
PmZpbmQobm9kZSkgIT0gbm90Rm91bmQpOworICAgICAgICBBU1NFUlQocGFyZW50LT5jaGlsZHJl
bigpKTsKKyAgICAgICAgQVNTRVJUKHBhcmVudC0+Y2hpbGRyZW4oKS0+ZmluZChub2RlKSAhPSBu
b3RGb3VuZCk7CiAgICAgICAgIGlmIChhdXRvIGNoaWxkcmVuID0gcGFyZW50LT5jaGlsZHJlbigp
KSB7CiAgICAgICAgICAgICBzaXplX3QgaW5kZXggPSBjaGlsZHJlbi0+ZmluZChub2RlKTsKICAg
ICAgICAgICAgIGlmIChpbmRleCAhPSBub3RGb3VuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmgKaW5kZXggMzFmNmRiNzllN2I0MGMx
YjMyZjJlYTdjZGNmZmM0OGYxN2JmY2UzMS4uM2IyNTYxNTFhZDc0NGJjZjAyMzRkNzJkNGZkM2Ew
Yzc1ZDQzNjkxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVUcmVlLmgKQEAgLTc0LDE3ICs3NCwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRQcmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9uKExheWVyUmVwcmVzZW50YXRpb246OlR5cGUg
cmVwcmVzZW50YXRpb24pIHsgbV9wcmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9uID0gcmVwcmVz
ZW50YXRpb247IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIHNldFJvb3RTdGF0ZU5vZGUoUGFzc1Jl
ZlB0cjxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4gcm9vdFN0YXRlTm9kZSkgeyBt
X3Jvb3RTdGF0ZU5vZGUgPSByb290U3RhdGVOb2RlOyB9CisgICAgdm9pZCBzZXRSb290U3RhdGVO
b2RlKFJlZjxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4mJiByb290U3RhdGVOb2Rl
KSB7IG1fcm9vdFN0YXRlTm9kZSA9IFdURk1vdmUocm9vdFN0YXRlTm9kZSk7IH0KICAgICB2b2lk
IGFkZE5vZGUoU2Nyb2xsaW5nU3RhdGVOb2RlKik7CiAKLSAgICBQYXNzUmVmUHRyPFNjcm9sbGlu
Z1N0YXRlTm9kZT4gY3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlE
KTsKKyAgICBSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVU
eXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogCiAgICAgYm9vbCBub2RlVHlwZUFuZFBhcmVudE1hdGNo
KFNjcm9sbGluZ1N0YXRlTm9kZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQg
cGFyZW50SUQpIGNvbnN0OwogCi0gICAgZW51bSBjbGFzcyBTdWJmcmFtZU5vZGVSZW1vdmFsIHsK
LSAgICAgICAgRGVsZXRlLAotICAgICAgICBPcnBoYW4KLSAgICB9OworICAgIGVudW0gY2xhc3Mg
U3ViZnJhbWVOb2RlUmVtb3ZhbCB7IERlbGV0ZSwgT3JwaGFuIH07CiAgICAgdm9pZCByZW1vdmVO
b2RlQW5kQWxsRGVzY2VuZGFudHMoU2Nyb2xsaW5nU3RhdGVOb2RlKiwgU3ViZnJhbWVOb2RlUmVt
b3ZhbCA9IFN1YmZyYW1lTm9kZVJlbW92YWw6OkRlbGV0ZSk7CiAKICAgICB2b2lkIHJlY3Vyc2l2
ZU5vZGVXaWxsQmVSZW1vdmVkKFNjcm9sbGluZ1N0YXRlTm9kZSogY3Vyck5vZGUsIFN1YmZyYW1l
Tm9kZVJlbW92YWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlLmNwcAppbmRleCBkMDBlYzVkZDliMWI3ZDRhNmQ2MWJmNWQxMzliNDk5MmU2MzdkOGVm
Li40MGJjYzYzZmY4YzMzN2FmYmMxMGJkNGI5OWViMWMwMDNmNDc1MGMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtMTc5LDcgKzE3
OSw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJlZUZyb21TdGF0ZU5vZGUoY29uc3Qg
U2Nyb2xsaW5nU3RhdGVOb2RlKiBzdGF0ZU5vZGUsCiAgICAgICAgIGlmIChwYXJlbnRJdCAhPSBt
X25vZGVNYXAuZW5kKCkpIHsKICAgICAgICAgICAgIFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJlbnQg
PSBwYXJlbnRJdC0+dmFsdWU7CiAgICAgICAgICAgICBub2RlLT5zZXRQYXJlbnQocGFyZW50KTsK
LSAgICAgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQobm9kZSk7CisgICAgICAgICAgICBwYXJl
bnQtPmFwcGVuZENoaWxkKCpub2RlKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTg5LDcgKzE4
OSw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJlZUZyb21TdGF0ZU5vZGUoY29uc3Qg
U2Nyb2xsaW5nU3RhdGVOb2RlKiBzdGF0ZU5vZGUsCiAgICAgaWYgKGF1dG8gbm9kZUNoaWxkcmVu
ID0gbm9kZS0+Y2hpbGRyZW4oKSkgewogICAgICAgICBmb3IgKGF1dG8mIGNoaWxkU2Nyb2xsaW5n
Tm9kZSA6ICpub2RlQ2hpbGRyZW4pIHsKICAgICAgICAgICAgIGNoaWxkU2Nyb2xsaW5nTm9kZS0+
c2V0UGFyZW50KG51bGxwdHIpOwotICAgICAgICAgICAgb3JwaGFuTm9kZXMuYWRkKGNoaWxkU2Ny
b2xsaW5nTm9kZS0+c2Nyb2xsaW5nTm9kZUlEKCksIGNoaWxkU2Nyb2xsaW5nTm9kZSk7CisgICAg
ICAgICAgICBvcnBoYW5Ob2Rlcy5hZGQoY2hpbGRTY3JvbGxpbmdOb2RlLT5zY3JvbGxpbmdOb2Rl
SUQoKSwgY2hpbGRTY3JvbGxpbmdOb2RlLmdldCgpKTsKICAgICAgICAgfQogICAgICAgICBub2Rl
Q2hpbGRyZW4tPmNsZWFyKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDY3MzRiNTNhZGFiNWMzOTliOTMzYWMzNzdlZGU3NGI4
YzJhMDVhNGQuLmFhZjJkNDc4YmJiODAwOTVmNTU5NmM5MTQ2MDZlMmI5YjVkOGY4Y2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTc0LDcg
Kzc0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRNYWluRnJhbWVQaW5TdGF0ZShib29sIHBp
bm5lZFRvVGhlTGVmdCwgYm9vbCBwaW5uZWRUb1RoZVJpZ2h0LCBib29sIHBpbm5lZFRvVGhlVG9w
LCBib29sIHBpbm5lZFRvVGhlQm90dG9tKTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTY3Jv
bGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUs
IFNjcm9sbGluZ05vZGVJRCkgPSAwOworICAgIHZpcnR1YWwgUmVmPFNjcm9sbGluZ1RyZWVOb2Rl
PiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9k
ZUlEKSA9IDA7CiAKICAgICAvLyBDYWxsZWQgYWZ0ZXIgYSBzY3JvbGxpbmcgdHJlZSBub2RlIGhh
cyBoYW5kbGVkIGEgc2Nyb2xsIGFuZCB1cGRhdGVkIGl0cyBsYXllcnMuCiAgICAgLy8gVXBkYXRl
cyBGcmFtZVZpZXcvUmVuZGVyTGF5ZXIgc2Nyb2xsaW5nIHN0YXRlIGFuZCBHcmFwaGljc0xheWVy
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVO
b2RlLmNwcAppbmRleCBkZWI3ODFhMWMxZjlmZGQwMzNjOTk5NWM5OTIxYzA3Mjk5MjY5YTJhLi4w
ZjY2MTZkMGYzZGMzNTc4NjMwNmZkNDY2ZjdhNjk2NDE1YjJlZWU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwCkBAIC00NSwy
MiArNDUsMjEgQEAgU2Nyb2xsaW5nVHJlZU5vZGU6On5TY3JvbGxpbmdUcmVlTm9kZSgpCiB7CiB9
CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZU5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8U2Nyb2xs
aW5nVHJlZU5vZGU+IGNoaWxkTm9kZSkKK3ZvaWQgU2Nyb2xsaW5nVHJlZU5vZGU6OmFwcGVuZENo
aWxkKFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4mJiBjaGlsZE5vZGUpCiB7CiAgICAgY2hpbGROb2Rl
LT5zZXRQYXJlbnQodGhpcyk7CiAKICAgICBpZiAoIW1fY2hpbGRyZW4pCi0gICAgICAgIG1fY2hp
bGRyZW4gPSBzdGQ6Om1ha2VfdW5pcXVlPFNjcm9sbGluZ1RyZWVDaGlsZHJlblZlY3Rvcj4oKTsK
LQotICAgIG1fY2hpbGRyZW4tPmFwcGVuZChjaGlsZE5vZGUpOworICAgICAgICBtX2NoaWxkcmVu
ID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPj4+KCk7
CisgICAgbV9jaGlsZHJlbi0+YXBwZW5kKFdURk1vdmUoY2hpbGROb2RlKSk7CiB9CiAKLXZvaWQg
U2Nyb2xsaW5nVHJlZU5vZGU6OnJlbW92ZUNoaWxkKFNjcm9sbGluZ1RyZWVOb2RlKiBub2RlKQor
dm9pZCBTY3JvbGxpbmdUcmVlTm9kZTo6cmVtb3ZlQ2hpbGQoU2Nyb2xsaW5nVHJlZU5vZGUmIG5v
ZGUpCiB7CiAgICAgaWYgKCFtX2NoaWxkcmVuKQogICAgICAgICByZXR1cm47CiAKLSAgICBzaXpl
X3QgaW5kZXggPSBtX2NoaWxkcmVuLT5maW5kKG5vZGUpOworICAgIHNpemVfdCBpbmRleCA9IG1f
Y2hpbGRyZW4tPmZpbmQoJm5vZGUpOwogCiAgICAgLy8gVGhlIGluZGV4IHdpbGwgYmUgbm90Rm91
bmQgaWYgdGhlIG5vZGUgdG8gcmVtb3ZlIGlzIGEgZGVlcGVyLXRoYW4tMS1sZXZlbCBkZXNjZW5k
YW50IG9yCiAgICAgLy8gaWYgbm9kZSBpcyB0aGUgcm9vdCBzdGF0ZSBub2RlLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKaW5kZXggM2U4
NmUzZDQ3OGQzNDA2OTM1OWVhYTVjNmI5Y2ZiYWM2NzVjZWQwNS4uMmUxNjMyNDZiYjk2ZTMzZmVm
NjJhZGE3MWI0MWEyMTM5MjEyNzkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCkBAIC02MCwxMSArNjAsMTAgQEAgcHVibGljOgog
ICAgIFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJlbnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudDsg
fQogICAgIHZvaWQgc2V0UGFyZW50KFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJlbnQpIHsgbV9wYXJl
bnQgPSBwYXJlbnQ7IH0KIAotICAgIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxTY3JvbGxpbmdUcmVl
Tm9kZT4+IFNjcm9sbGluZ1RyZWVDaGlsZHJlblZlY3RvcjsKLSAgICBTY3JvbGxpbmdUcmVlQ2hp
bGRyZW5WZWN0b3IqIGNoaWxkcmVuKCkgeyByZXR1cm4gbV9jaGlsZHJlbi5nZXQoKTsgfQotICAg
IAotICAgIHZvaWQgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4pOwot
ICAgIHZvaWQgcmVtb3ZlQ2hpbGQoU2Nyb2xsaW5nVHJlZU5vZGUqKTsKKyAgICBWZWN0b3I8UmVm
UHRyPFNjcm9sbGluZ1RyZWVOb2RlPj4qIGNoaWxkcmVuKCkgeyByZXR1cm4gbV9jaGlsZHJlbi5n
ZXQoKTsgfQorCisgICAgdm9pZCBhcHBlbmRDaGlsZChSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+JiYp
OworICAgIHZvaWQgcmVtb3ZlQ2hpbGQoU2Nyb2xsaW5nVHJlZU5vZGUmKTsKIAogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgZHVtcChUZXh0U3RyZWFtJiwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0
QmVoYXZpb3IpIGNvbnN0OwogCkBAIC03Miw3ICs3MSw3IEBAIHByb3RlY3RlZDoKICAgICBTY3Jv
bGxpbmdUcmVlTm9kZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGlu
Z05vZGVJRCk7CiAgICAgU2Nyb2xsaW5nVHJlZSYgc2Nyb2xsaW5nVHJlZSgpIGNvbnN0IHsgcmV0
dXJuIG1fc2Nyb2xsaW5nVHJlZTsgfQogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ1Ry
ZWVDaGlsZHJlblZlY3Rvcj4gbV9jaGlsZHJlbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9y
PFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4+PiBtX2NoaWxkcmVuOwogCiAgICAgV0VCQ09SRV9F
WFBPUlQgdmlydHVhbCB2b2lkIGR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBTY3JvbGxpbmdT
dGF0ZVRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IGJjYjQ4
ZTQ5NWMxYjBiODllNzVhN2FhMzNlODVlNTk0ZDdjNWU2ODUuLmY2NjRlZDNhYzNiZTUzOGRmZjJm
ZTU4ODAyYTA5NzdhYTBhYTA4OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcApAQCAtMzksOCArMzksOCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6VGhyZWFkZWRT
Y3JvbGxpbmdUcmVlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5h
dG9yKQotICAgIDogbV9zY3JvbGxpbmdDb29yZGluYXRvcihzY3JvbGxpbmdDb29yZGluYXRvcikK
K1RocmVhZGVkU2Nyb2xsaW5nVHJlZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlKEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3ImIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorICAgIDogbV9zY3JvbGxpbmdD
b29yZGluYXRvcigmc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKaW5kZXgg
NzMyNTQwNTljMmQ3NzAyMDVjZWZkYmQxNTMwYWIyNzkwNGFhNzM2My4uNmQxZDQ5ZDY3ZWNhNWZh
OGQ1MmE4NThlZWNmNWY5M2VlOWM5NzBkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NSw3ICs1NSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGUoKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgot
ICAgIGV4cGxpY2l0IFRocmVhZGVkU2Nyb2xsaW5nVHJlZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yKik7CisgICAgZXhwbGljaXQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlKEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3ImKTsKIAogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Ny
b2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qgc3Rk
OjpvcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xh
eWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBv
dmVycmlkZTsKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFNjcm9s
bGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9s
bGluZ1RyZWVJT1MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9s
bGluZ1RyZWVJT1MuY3BwCmluZGV4IDEwYjNmODczNDVmZGE0M2NjZGZlOWMxNWZlNDE3ZjQ2YWY1
NTQ1ZWEuLjFmMDNlNjg2ZTlmODc1OGVjNjVhOWI2ZjliNjE3ZWIyZjg2OGM2NDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlP
Uy5jcHAKQEAgLTQwLDEzICs0MCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxT
Y3JvbGxpbmdUcmVlSU9TPiBTY3JvbGxpbmdUcmVlSU9TOjpjcmVhdGUoQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCitSZWY8U2Nyb2xsaW5nVHJlZUlPUz4g
U2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImIHNjcm9s
bGluZ0Nvb3JkaW5hdG9yKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNjcm9sbGluZ1Ry
ZWVJT1Moc2Nyb2xsaW5nQ29vcmRpbmF0b3IpKTsKIH0KIAotU2Nyb2xsaW5nVHJlZUlPUzo6U2Ny
b2xsaW5nVHJlZUlPUyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGlu
YXRvcikKLSAgICA6IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3Ioc2Nyb2xsaW5nQ29vcmRpbmF0b3Ip
CitTY3JvbGxpbmdUcmVlSU9TOjpTY3JvbGxpbmdUcmVlSU9TKEFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3ImIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorICAgIDogbV9zY3JvbGxpbmdDb29yZGluYXRv
cigmc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiB7CiB9CiAKQEAgLTgzLDIwICs4MywyMSBAQCB2b2lk
IFNjcm9sbGluZ1RyZWVJT1M6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05v
ZGVJRCBub2RlSUQsIGNvbnN0CiAgICAgfSk7CiB9CiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJl
ZU5vZGU+IFNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGlu
Z05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQorUmVmPFNjcm9sbGlu
Z1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlSU9TOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3Jv
bGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKIHsKICAgICBz
d2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2FzZSBGcmFtZVNjcm9sbGluZ05vZGU6CiAgICAgICAg
IHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpjcmVhdGUoKnRoaXMs
IG5vZGVJRCk7CiAgICAgY2FzZSBPdmVyZmxvd1Njcm9sbGluZ05vZGU6CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBGaXhlZE5vZGU6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWRO
b2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgY2FzZSBTdGlja3lOb2RlOgogICAgICAg
ICByZXR1cm4gU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsK
ICAgICB9Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsK
IH0KIAogRmxvYXRSZWN0IFNjcm9sbGluZ1RyZWVJT1M6OmZpeGVkUG9zaXRpb25SZWN0KCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVl
SU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlP
Uy5oCmluZGV4IDFhOWFhZTFiNDBjODEyNjgzNDQ4NDFjZTdiMzA3NWVmNzBhN2U1NTQuLmFlYTY5
YjM5ZjU5Yzk2MTVkMTgwYWFlYTZlYjg5NzI1OWNkYWQ5NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaApAQCAtMjksMzUg
KzI5LDMxIEBACiAKICNpbmNsdWRlICJTY3JvbGxpbmdTdGF0ZVRyZWUuaCIKICNpbmNsdWRlICJT
Y3JvbGxpbmdUcmVlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3
dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvcjsKIAotY2xhc3MgU2Nyb2xsaW5nVHJlZUlPUyA6IHB1YmxpYyBTY3JvbGxp
bmdUcmVlIHsKK2NsYXNzIFNjcm9sbGluZ1RyZWVJT1MgZmluYWwgOiBwdWJsaWMgU2Nyb2xsaW5n
VHJlZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlSU9TPiBjcmVhdGUo
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciopOworICAgIHN0YXRpYyBSZWY8U2Nyb2xsaW5nVHJl
ZUlPUz4gY3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImKTsKICAgICB2aXJ0dWFsIH5T
Y3JvbGxpbmdUcmVlSU9TKCk7CiAKLSAgICAvLyBObyB3aGVlbCBldmVudHMgb24gaU9TCi0gICAg
dm9pZCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92ZXJyaWRl
IHsgfQotICAgIEV2ZW50UmVzdWx0IHRyeVRvSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmKSBvdmVycmlkZSB7IHJldHVybiBEaWROb3RIYW5kbGVFdmVudDsgfQotCi0g
ICAgdm9pZCBpbnZhbGlkYXRlKCkgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6Ci0gICAgZXhwbGljaXQg
U2Nyb2xsaW5nVHJlZUlPUyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKik7Ci0gICAgYm9vbCBp
c1Njcm9sbGluZ1RyZWVJT1MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CisgICAg
ZXhwbGljaXQgU2Nyb2xsaW5nVHJlZUlPUyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJik7CiAK
LSAgICBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9k
ZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKKyAgICBib29s
IGlzU2Nyb2xsaW5nVHJlZUlPUygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAotICAg
IHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBG
bG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qgc3RkOjpvcHRpb25hbDxGbG9hdFBvaW50
PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBT
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBvdmVycmlkZTsKKyAgICAvLyBObyB3
aGVlbCBldmVudHMgb24gaU9TCisgICAgdm9pZCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYpIGZpbmFsIHsgfQorICAgIEV2ZW50UmVzdWx0IHRyeVRvSGFuZGxlV2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBmaW5hbCB7IHJldHVybiBEaWROb3RI
YW5kbGVFdmVudDsgfQogCi0gICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5n
ZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVk
IHZlcnRpY2FsKSBvdmVycmlkZTsKKyAgICB2b2lkIGludmFsaWRhdGUoKSBmaW5hbDsKIAotICAg
IEZsb2F0UmVjdCBmaXhlZFBvc2l0aW9uUmVjdCgpIG92ZXJyaWRlOworICAgIFJlZjxTY3JvbGxp
bmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNj
cm9sbGluZ05vZGVJRCkgZmluYWw7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9s
bChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25z
dCBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xs
aW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5
bmMpIGZpbmFsOworICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2Vi
Q29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0
aWNhbCkgZmluYWw7CisgICAgRmxvYXRSZWN0IGZpeGVkUG9zaXRpb25SZWN0KCkgZmluYWw7CiAK
ICAgICBSZWZQdHI8QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcj4gbV9zY3JvbGxpbmdDb29yZGlu
YXRvcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KaW5kZXggZDQzZDk0YjI0N2E2ZTRmOTM5
NzQxNTgyNjE5N2MyYjBhZGYwNzE0OC4uODYxMThiNDQ1MDA3OTQ2Y2YwZmE3ODNjNWQ1NDNlMTE5
ZTllYmY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQpAQCAtNTQsNyArNTQsNyBAQCBTY3Jv
bGxpbmdDb29yZGluYXRvck1hYzo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMoUGFnZSogcGFnZSkK
ICAgICA6IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IocGFnZSkKICAgICAsIG1fc2Nyb2xsaW5n
U3RhdGVUcmVlQ29tbWl0dGVyVGltZXIoKnRoaXMsICZTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6
Y29tbWl0VHJlZVN0YXRlKQogewotICAgIHNldFNjcm9sbGluZ1RyZWUoU2Nyb2xsaW5nVHJlZU1h
Yzo6Y3JlYXRlKHRoaXMpKTsKKyAgICBzZXRTY3JvbGxpbmdUcmVlKFNjcm9sbGluZ1RyZWVNYWM6
OmNyZWF0ZSgqdGhpcykpOwogfQogCiBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6flNjcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNwcAppbmRleCA3MGRiYzA2Y2YwMTNiZjMxYjhkYTA3
ZmRlMGQzOTg4YzYxYjRkODBhLi44OTlmMWU5MDE2N2RiOGM4ZWExZmE2ZDhlYWVmNGM3MDQxMTIw
NTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZU1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVNYWMuY3BwCkBAIC0zNCwzMCArMzQsMzEgQEAKIAogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CiAKLVJlZjxTY3JvbGxpbmdUcmVlTWFjPiBTY3JvbGxpbmdUcmVlTWFjOjpjcmVh
dGUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCitSZWY8
U2Nyb2xsaW5nVHJlZU1hYz4gU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlKEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3ImIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQogewogICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFNjcm9sbGluZ1RyZWVNYWMoc2Nyb2xsaW5nQ29vcmRpbmF0b3IpKTsKIH0KIAotU2Ny
b2xsaW5nVHJlZU1hYzo6U2Nyb2xsaW5nVHJlZU1hYyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
KiBzY3JvbGxpbmdDb29yZGluYXRvcikKK1Njcm9sbGluZ1RyZWVNYWM6OlNjcm9sbGluZ1RyZWVN
YWMoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYgc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiAgICAg
OiBUaHJlYWRlZFNjcm9sbGluZ1RyZWUoc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiB7CiB9CiAKLVBh
c3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9sbGluZ1RyZWVNYWM6OmNyZWF0ZVNjcm9s
bGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQg
bm9kZUlEKQorUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGVT
Y3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9k
ZUlEIG5vZGVJRCkKIHsKICAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2FzZSBGcmFtZVNj
cm9sbGluZ05vZGU6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlTWFjOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgY2FzZSBPdmVyZmxvd1Njcm9sbGlu
Z05vZGU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaXhlZE5vZGU6CiAgICAgICAgIHJldHVy
biBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgY2Fz
ZSBTdGlja3lOb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OmNy
ZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICB9Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNy
ZWF0ZSgqdGhpcywgbm9kZUlEKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJ
TkcpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCmluZGV4IDQzYTQ2Yjc3ZTg1YjQ1ZmY2MWNiMmI5
YTZiYmIzMmMyYzBlZmZhNTcuLjQ5OWZjM2ZmMTdiY2Y5NDkwYTgzNzIyNjQyZjZiYzgzYmUwMGI3
ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVNYWMuaApAQCAtMzEsMTQgKzMxLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgU2Nyb2xsaW5nVHJlZU1hYyA6IHB1YmxpYyBUaHJlYWRlZFNjcm9sbGluZ1RyZWUg
eworY2xhc3MgU2Nyb2xsaW5nVHJlZU1hYyBmaW5hbCA6IHB1YmxpYyBUaHJlYWRlZFNjcm9sbGlu
Z1RyZWUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U2Nyb2xsaW5nVHJlZU1hYz4gY3JlYXRl
KEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqKTsKKyAgICBzdGF0aWMgUmVmPFNjcm9sbGluZ1Ry
ZWVNYWM+IGNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJik7CiAKLSAgICBQYXNzUmVm
UHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdO
b2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKLSAgICAKIHByaXZhdGU6Ci0gICAg
ZXhwbGljaXQgU2Nyb2xsaW5nVHJlZU1hYyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKik7Cisg
ICAgZXhwbGljaXQgU2Nyb2xsaW5nVHJlZU1hYyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJik7
CisKKyAgICBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNj
cm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIGZpbmFsOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRI
YW5kbGVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5j
cHAKaW5kZXggNjE2MDcwOTBkMjZjOTljMWFlMjUzZjVhNGVjNWQ2NmQ1MWMzZDYxNS4uMzI0MzBj
NDdiODdkMWMwODg0NDlhY2JkY2QwYjM2NDcxM2YwOTQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCkBAIC04MSw3ICs4MSw3IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjp3aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgd2hlZWxFdmVuCiAgICAgcmV0dXJuIGRvd25jYXN0PEZyYW1lVmlldz4od2lkZ2V0KS5mcmFt
ZSgpLmV2ZW50SGFuZGxlcigpLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiB9CiAKLWJv
b2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCopIGNv
bnN0Citib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZl
bnQmKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwogfQpAQCAtOTIsMTAgKzkyLDEyIEBAIGJv
b2wgRXZlbnRIYW5kbGVyOjpldmVudEFjdGl2YXRlZFZpZXcoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiBldmVudCkgY29uc3QKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNzUmVm
UHRyPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2Zl
cigpIGNvbnN0CisKK1JlZjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dp
bmdEYXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0
ZUZvckRyYWdBbmREcm9wKCk7CiB9CisKICNlbmRpZgogCiB2b2lkIEV2ZW50SGFuZGxlcjo6Zm9j
dXNEb2N1bWVudFZpZXcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVtYmVkZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bWJlZGRlZE9iamVjdC5jcHAKaW5kZXggMDZhZWU5Zjk3OTYyZmJjYTgyOWNmNWUxYmUzODI1ZTZm
YmQ1MmRlNC4uNDgyYjVkZDEzNzViNmZlNzcyNjdjYjYyNmY0MTYzNmRmOGY1MzU4MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCkBA
IC02MTYsNyArNjE2LDcgQEAgdm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6aGFuZGxlVW5hdmFp
bGFibGVQbHVnaW5JbmRpY2F0b3JFdmVudChFdmVudCogZXZlbnQpCiAgICAgICAgICAgICBzZXRV
bmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcklzUHJlc3NlZChmYWxzZSk7CiAgICAgICAgIH0KICAg
ICAgICAgaWYgKG1fbW91c2VEb3duV2FzSW5VbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvciAmJiBp
c0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3IobW91c2VFdmVudCkpIHsKLSAgICAgICAgICAg
IHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS51bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQo
JmVsZW1lbnQsIG1fcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pOworICAgICAgICAgICAgcGFn
ZSgpLmNocm9tZSgpLmNsaWVudCgpLnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChlbGVt
ZW50LCBtX3BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKTsKICAgICAgICAgfQogICAgICAgICBt
X21vdXNlRG93bldhc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3IgPSBmYWxzZTsKICAgICAg
ICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IGExYTk0YzY3YjdlNDUwZTllYzAzMDVl
ZTA3MDU5ZGYyMmVjMDc2ZDQuLjYxY2FhYmY2YWZhOGU4NzAyNjg2MWI0ZmU4MDk3Y2MwOTYzNTNl
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgUmVuZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXllckJh
Y2tpbmcoUmVuZGVyTGF5ZXImIGxheWVyKQogewogICAgIGlmIChsYXllci5pc1Jvb3RMYXllcigp
KSB7CiAgICAgICAgIG1faXNNYWluRnJhbWVSZW5kZXJWaWV3TGF5ZXIgPSByZW5kZXJlcigpLmZy
YW1lKCkuaXNNYWluRnJhbWUoKTsKLSAgICAgICAgbV91c2luZ1RpbGVkQ2FjaGVMYXllciA9IHJl
bmRlcmVyKCkucGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLnNob3VsZFVzZVRpbGVkQmFja2luZ0Zv
ckZyYW1lVmlldyhyZW5kZXJlcigpLmZyYW1lKCkudmlldygpKTsKKyAgICAgICAgbV91c2luZ1Rp
bGVkQ2FjaGVMYXllciA9IHJlbmRlcmVyKCkucGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLnNob3Vs
ZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhyZW5kZXJlcigpLnZpZXcoKS5mcmFtZVZpZXco
KSk7CiAgICAgfQogICAgIAogICAgIGNyZWF0ZVByaW1hcnlHcmFwaGljc0xheWVyKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmlu
ZGV4IDEyYjYyYzkyODdiYmZmZDllNTc5OGY3NjVkODJjNTcwMzczMWU2ZGQuLjY1ZmRjNGRmZGE0
NmZiZDIyZGJiYzM0N2E5NmIyMWMyZWVkZWMxOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0zMTAzLDcgKzMxMDMsNyBA
QCBHcmFwaGljc0xheWVyKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUxheWVyRm9ySGVh
ZGVyKGJvb2wgd2FudHNMYXllcikKICAgICBpZiAoU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9s
bGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKICAgICAgICAg
c2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld1Jvb3RMYXllckRpZENoYW5nZShtX3JlbmRl
clZpZXcuZnJhbWVWaWV3KCkpOwogCi0gICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmRpZEFk
ZEhlYWRlckxheWVyKG1fbGF5ZXJGb3JIZWFkZXIuZ2V0KCkpOworICAgIHBhZ2UoKS5jaHJvbWUo
KS5jbGllbnQoKS5kaWRBZGRIZWFkZXJMYXllcigqbV9sYXllckZvckhlYWRlcik7CiAKICAgICBy
ZXR1cm4gbV9sYXllckZvckhlYWRlci5nZXQoKTsKIH0KQEAgLTMxNDEsNyArMzE0MSw3IEBAIEdy
YXBoaWNzTGF5ZXIqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJGb3JGb290ZXIo
Ym9vbCB3YW50c0xheWVyKQogICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5n
Q29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQogICAgICAgICBzY3Jv
bGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3Um9vdExheWVyRGlkQ2hhbmdlKG1fcmVuZGVyVmll
dy5mcmFtZVZpZXcoKSk7CiAKLSAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlkQWRkRm9v
dGVyTGF5ZXIobV9sYXllckZvckZvb3Rlci5nZXQoKSk7CisgICAgcGFnZSgpLmNocm9tZSgpLmNs
aWVudCgpLmRpZEFkZEZvb3RlckxheWVyKCptX2xheWVyRm9yRm9vdGVyKTsKIAogICAgIHJldHVy
biBtX2xheWVyRm9yRm9vdGVyLmdldCgpOwogfQpAQCAtMzQ2MywxMSArMzQ2MywxMSBAQCB2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6YXR0YWNoUm9vdExheWVyKFJvb3RMYXllckF0dGFjaG1l
bnQgYXR0YWNobWVudCkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIFJvb3RMYXll
ckF0dGFjaGVkVmlhQ2hyb21lQ2xpZW50OiB7CiAgICAgICAgICAgICBGcmFtZSYgZnJhbWUgPSBt
X3JlbmRlclZpZXcuZnJhbWVWaWV3KCkuZnJhbWUoKTsKLSAgICAgICAgICAgIHBhZ2UoKS5jaHJv
bWUoKS5jbGllbnQoKS5hdHRhY2hSb290R3JhcGhpY3NMYXllcigmZnJhbWUsIHJvb3RHcmFwaGlj
c0xheWVyKCkpOworICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFJv
b3RHcmFwaGljc0xheWVyKGZyYW1lLCByb290R3JhcGhpY3NMYXllcigpKTsKICAgICAgICAgICAg
IGlmIChmcmFtZS5pc01haW5GcmFtZSgpKSB7CiAgICAgICAgICAgICAgICAgUGFnZU92ZXJsYXlD
b250cm9sbGVyJiBwYWdlT3ZlcmxheUNvbnRyb2xsZXIgPSBmcmFtZS5tYWluRnJhbWUoKS5wYWdl
T3ZlcmxheUNvbnRyb2xsZXIoKTsKICAgICAgICAgICAgICAgICBwYWdlT3ZlcmxheUNvbnRyb2xs
ZXIud2lsbEF0dGFjaFJvb3RMYXllcigpOwotICAgICAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUo
KS5jbGllbnQoKS5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoJmZyYW1lLCAmcGFnZU92
ZXJsYXlDb250cm9sbGVyLnZpZXdPdmVybGF5Um9vdExheWVyKCkpOworICAgICAgICAgICAgICAg
IHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIo
ZnJhbWUsICZwYWdlT3ZlcmxheUNvbnRyb2xsZXIudmlld092ZXJsYXlSb290TGF5ZXIoKSk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtMzUwOCw5ICsz
NTA4LDkgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRldGFjaFJvb3RMYXllcigpCiAg
ICAgfQogICAgIGNhc2UgUm9vdExheWVyQXR0YWNoZWRWaWFDaHJvbWVDbGllbnQ6IHsKICAgICAg
ICAgRnJhbWUmIGZyYW1lID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLmZyYW1lKCk7Ci0gICAg
ICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hSb290R3JhcGhpY3NMYXllcigmZnJh
bWUsIDApOworICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoUm9vdEdyYXBo
aWNzTGF5ZXIoZnJhbWUsIG51bGxwdHIpOwogICAgICAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUo
KSkKLSAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hWaWV3T3Zlcmxh
eUdyYXBoaWNzTGF5ZXIoJmZyYW1lLCAwKTsKKyAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5j
bGllbnQoKS5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoZnJhbWUsIG51bGxwdHIpOwog
ICAgIH0KICAgICBicmVhazsKICAgICBjYXNlIFJvb3RMYXllclVuYXR0YWNoZWQ6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRleCBkMmMwMmVmOWQ2MGUw
NmM2ODY2NzIzZTQ3NDA3MzdhZDhjMGMzODIxLi4zN2M4M2U4ZDFmNWViYjA1N2IxMTBjYzg4ODEw
NTQ1MTJjZDRkNDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlz
dC5jcHAKQEAgLTM3MSw3ICszNzEsNyBAQCB2b2lkIFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAo
KQogICAgIC8vIGluc2lkZSB0aGUgc2hvd1BvcHVwIGNhbGwgYW5kIGl0IHdvdWxkIGZhaWwuCiAg
ICAgY3JlYXRlSW5uZXJCbG9jaygpOwogICAgIGlmICghbV9wb3B1cCkKLSAgICAgICAgbV9wb3B1
cCA9IGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jcmVhdGVQb3B1cE1lbnUodGhpcyk7Cisg
ICAgICAgIG1fcG9wdXAgPSBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY3JlYXRlUG9wdXBN
ZW51KCp0aGlzKTsKICAgICBtX3BvcHVwSXNWaXNpYmxlID0gdHJ1ZTsKIAogICAgIC8vIENvbXB1
dGUgdGhlIHRvcCBsZWZ0IHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3VudCwgYnV0IHVzZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKaW5kZXgg
YjQ2ZDhlZDcxODYwOGNhZmU2MTY5M2UxNGJlMTNlODZkNGNhODIyYy4uY2E5MDA1MTg0ZGIyOWFj
OTI3NzBkYTEyNzU1ODE0YzYwODA2MjFjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHZvaWQgUmVuZGVyU2Vh
cmNoRmllbGQ6OmFkZFNlYXJjaFJlc3VsdCgpCiAKICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5h
bWUgPSBhdXRvc2F2ZU5hbWUoKTsKICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAgIG1f
c2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KHRoaXMp
OworICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNyZWF0ZVNlYXJjaFBv
cHVwTWVudSgqdGhpcyk7CiAKICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNoZXMo
bmFtZSwgbV9yZWNlbnRTZWFyY2hlcyk7CiB9CkBAIC0xMDgsNyArMTA4LDcgQEAgdm9pZCBSZW5k
ZXJTZWFyY2hGaWVsZDo6c2hvd1BvcHVwKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFt
X3NlYXJjaFBvcHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNy
ZWF0ZVNlYXJjaFBvcHVwTWVudSh0aGlzKTsKKyAgICAgICAgbV9zZWFyY2hQb3B1cCA9IHBhZ2Uo
KS5jaHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUoKnRoaXMpOwogCiAgICAgaWYgKCFtX3Nl
YXJjaFBvcHVwLT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTIwMSw3ICsyMDEsNyBA
QCB2b2lkIFJlbmRlclNlYXJjaEZpZWxkOjp2YWx1ZUNoYW5nZWQodW5zaWduZWQgbGlzdEluZGV4
LCBib29sIGZpcmVFdmVudHMpCiAgICAgICAgICAgICBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUg
PSBhdXRvc2F2ZU5hbWUoKTsKICAgICAgICAgICAgIGlmICghbmFtZS5pc0VtcHR5KCkpIHsKICAg
ICAgICAgICAgICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAgICAgICAgICAgICAgIG1f
c2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KHRoaXMp
OworICAgICAgICAgICAgICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNy
ZWF0ZVNlYXJjaFBvcHVwTWVudSgqdGhpcyk7CiAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1
cC0+c2F2ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAppbmRleCBiZWIwYTM5
NTNiYzcyZmVlMTNiMzUzOGZlNTk3Y2QxOTA5ZDlkM2JlLi40MjAyM2ZhNzY4NjU0ZTEzYWY2ZDMy
NjI4MmFlMzgxNjdhY2E5ZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKQEAgLTE5
Nyw3ICsxOTcsNyBAQCBib29sIFNWR0FFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJv
YXJkRXZlbnQmIGV2ZW50KSBjb25zdAogICAgICAgICByZXR1cm4gU1ZHRWxlbWVudDo6aXNLZXli
b2FyZEZvY3VzYWJsZShldmVudCk7CiAKICAgICBpZiAoaXNMaW5rKCkpCi0gICAgICAgIHJldHVy
biBkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLnRhYnNUb0xpbmtzKCZldmVudCk7
CisgICAgICAgIHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLnRhYnNU
b0xpbmtzKGV2ZW50KTsKIAogICAgIHJldHVybiBTVkdFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNh
YmxlKGV2ZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1Bh
Z2VPdmVybGF5Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVy
bGF5Q2xpZW50LmNwcAppbmRleCBmZDU2NGFmZjE0MDRlNTg4YTlkYzQxYTYzNjdkYjJmMGNiZGEx
MjhiLi4wMDQ0MDQxYmY3NTc4YzNjMmE4NjE3YjdmZTc2NmZkMmNiY2IyZDczIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCkBAIC01MSw3
ICs1MSw3IEBAIE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6TW9ja1BhZ2VPdmVybGF5Q2xpZW50KCkK
IFJlZjxNb2NrUGFnZU92ZXJsYXk+IE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6aW5zdGFsbE92ZXJs
YXkoTWFpbkZyYW1lJiBtYWluRnJhbWUsIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZSBvdmVybGF5
VHlwZSkKIHsKICAgICBhdXRvIG92ZXJsYXkgPSBQYWdlT3ZlcmxheTo6Y3JlYXRlKCp0aGlzLCBv
dmVybGF5VHlwZSk7Ci0gICAgbWFpbkZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3Rh
bGxQYWdlT3ZlcmxheShvdmVybGF5LnB0cigpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90
RmFkZSk7CisgICAgbWFpbkZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdl
T3ZlcmxheShvdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAKICAg
ICBhdXRvIG1vY2tPdmVybGF5ID0gTW9ja1BhZ2VPdmVybGF5OjpjcmVhdGUob3ZlcmxheS5wdHIo
KSk7CiAgICAgbV9vdmVybGF5cy5hZGQobW9ja092ZXJsYXkucHRyKCkpOwpAQCAtNjUsNyArNjUs
NyBAQCB2b2lkIE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6dW5pbnN0YWxsQWxsT3ZlcmxheXMoKQog
ICAgICAgICBSZWZQdHI8TW9ja1BhZ2VPdmVybGF5PiBtb2NrT3ZlcmxheSA9IG1fb3ZlcmxheXMu
dGFrZUFueSgpOwogICAgICAgICBQYWdlT3ZlcmxheUNvbnRyb2xsZXIqIG92ZXJsYXlDb250cm9s
bGVyID0gbW9ja092ZXJsYXktPm92ZXJsYXkoKS0+Y29udHJvbGxlcigpOwogICAgICAgICBBU1NF
UlQob3ZlcmxheUNvbnRyb2xsZXIpOwotICAgICAgICBvdmVybGF5Q29udHJvbGxlci0+dW5pbnN0
YWxsUGFnZU92ZXJsYXkobW9ja092ZXJsYXktPm92ZXJsYXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVN
b2RlOjpEb05vdEZhZGUpOworICAgICAgICBvdmVybGF5Q29udHJvbGxlci0+dW5pbnN0YWxsUGFn
ZU92ZXJsYXkoKm1vY2tPdmVybGF5LT5vdmVybGF5KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6
RG9Ob3RGYWRlKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0gYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2Vy
Lm1tCmluZGV4IDNiM2MzYTQyOTRjMTdjNTc4YjgxOTE1ZGEwYjFjNGY4YmZhMjNlYmEuLjBkNDgy
YjRkZDkyNWJjMGI4YjhkNDI2MWVmYzJjN2E2NTU3NmUwOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIu
bW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25D
YWNoZVF1b3RhTWFuYWdlci5tbQpAQCAtNTksNyArNTksOSBAQCAtICh1bnNpZ25lZCBsb25nIGxv
bmcpdXNhZ2UKIC0gKHVuc2lnbmVkIGxvbmcgbG9uZylxdW90YQogewogICAgIGxvbmcgbG9uZyBx
dW90YTsKLSAgICBpZiAod2ViQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKS5jYWxjdWxhdGVRdW90
YUZvck9yaWdpbihbX29yaWdpbiBfY29yZV0sIHF1b3RhKSkKKyAgICBpZiAoIV9vcmlnaW4pCisg
ICAgICAgIHJldHVybiAwOworICAgIGlmICh3ZWJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSgpLmNh
bGN1bGF0ZVF1b3RhRm9yT3JpZ2luKCpbX29yaWdpbiBfY29yZV0sIHF1b3RhKSkKICAgICAgICAg
cmV0dXJuIHF1b3RhOwogICAgIHJldHVybiAwOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCBmNGYwOTZjNWQ2NDczZWJj
NmU3YWJkNTgzYjZkZmVmNGFhYTRkMTU5Li43ZDhmM2I4N2Y3ZTMyNDUxNmRiMDYxNWJlNThkOGQ5
MDU1ODI0YjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaApAQCAtNTksNyArNTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZm9j
dXNlZEVsZW1lbnRDaGFuZ2VkKFdlYkNvcmU6OkVsZW1lbnQqKSBvdmVycmlkZTsKICAgICB2b2lk
IGZvY3VzZWRGcmFtZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKIAotICAgIFdlYkNv
cmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkZy
YW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdl
YkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpQYWdlKiBjcmVh
dGVXaW5kb3coV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0
JiwgY29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0
aW9uQWN0aW9uJikgZmluYWw7CiAgICAgdm9pZCBzaG93KCkgZmluYWw7CiAKICAgICBib29sIGNh
blJ1bk1vZGFsKCkgZmluYWw7CkBAIC03OSwxNiArNzksMTYgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgc2V0UmVzaXphYmxlKGJvb2wpIGZpbmFsOwogCi0gICAgdm9pZCBhZGRNZXNzYWdlVG9Db25z
b2xlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFdURjo6U3Ry
aW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIs
IGNvbnN0IFdURjo6U3RyaW5nJiBzb3VyY2VVUkwpIGZpbmFsOworICAgIHZvaWQgYWRkTWVzc2Fn
ZVRvQ29uc29sZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJl
ciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5SdW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwoKSBmaW5hbDsKLSAgICBib29sIHJ1bkJlZm9yZVVubG9hZENv
bmZpcm1QYW5lbChjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUqKSBm
aW5hbDsKKyAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAKICAgICB2b2lkIGNsb3NlV2luZG93
U29vbigpIGZpbmFsOwogCi0gICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJh
bWUqLCBjb25zdCBXVEY6OlN0cmluZyYpIG92ZXJyaWRlOwotICAgIGJvb2wgcnVuSmF2YVNjcmlw
dENvbmZpcm0oV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYpIG92ZXJyaWRlOwot
ICAgIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVmYXVsdFZhbHVlLCBXVEY6OlN0
cmluZyYgcmVzdWx0KSBvdmVycmlkZTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJD
b3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIGJvb2wgcnVuSmF2YVNj
cmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAg
ICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgb3Zl
cnJpZGU7CiAKICAgICBib29sIHN1cHBvcnRzSW1tZWRpYXRlSW52YWxpZGF0aW9uKCkgZmluYWw7
CiAgICAgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZp
bmFsOwpAQCAtMTA1LDI5ICsxMDUsMjkgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgUGxhdGZv
cm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQg
Y29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6
RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBz
Y3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IGZpbmFsOwog
Ci0gICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7
CisgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwogCiAg
ICAgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0IGZpbmFsIHsgfQogICAgIGJv
b2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29yZTo6UmVuZGVy
RW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsK
LSAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVtZW50
KiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVh
c29uKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tl
ZChXZWJDb3JlOjpFbGVtZW50JiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdp
blVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2Rp
ZmllckZsYWdzKSBmaW5hbDsKIAotICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXVEY6OlN0cmlu
ZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24pIGZpbmFsOworICAgIHZvaWQgc2V0VG9vbFRpcChj
b25zdCBTdHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKSBmaW5hbDsKIAotICAgIHZvaWQg
cHJpbnQoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKLSAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VR
dW90YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiBkYXRhYmFzZU5hbWUsIFdl
YkNvcmU6OkRhdGFiYXNlRGV0YWlscykgZmluYWw7CisgICAgdm9pZCBwcmludChXZWJDb3JlOjpG
cmFtZSYpIGZpbmFsOworICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZy
YW1lJiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIFdlYkNvcmU6OkRhdGFiYXNlRGV0YWls
cykgZmluYWw7CiAgICAgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VO
ZWVkZWQpIGZpbmFsOwotICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkgZmlu
YWw7CisgICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSBmaW5hbDsKIAogI2lm
IEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICB2b2lkIGFubm90YXRlZFJlZ2lvbnNDaGFu
Z2VkKCkgZmluYWw7CiAjZW5kaWYKIAogICAgIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZy
YW1lJiwgV2ViQ29yZTo6RmlsZUNob29zZXImKSBvdmVycmlkZTsKLSAgICB2b2lkIGxvYWRJY29u
Rm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9h
ZGVyJikgZmluYWw7CisgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXImKSBmaW5hbDsKIAogI2lmICFQTEFURk9STShJ
T1MpCiAgICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikgZmluYWw7CkBA
IC0xMzUsNyArMTM1LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKElOUFVUX1RZ
UEVfQ09MT1IpCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3Jl
YXRlQ29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IFdlYkNv
cmU6OkNvbG9yJikgZmluYWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNvbG9yQ2hv
b3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCYsIGNv
bnN0IFdlYkNvcmU6OkNvbG9yJikgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShQT0lOVEVS
X0xPQ0spCkBAIC0xNTEsMTYgKzE1MSwxNiBAQCBwcml2YXRlOgogICAgIHZvaWQgZW5hYmxlU3Vk
ZGVuVGVybWluYXRpb24oKSBmaW5hbDsKICAgICB2b2lkIGRpc2FibGVTdWRkZW5UZXJtaW5hdGlv
bigpIGZpbmFsOwogCi0gICAgYm9vbCBzaG91bGRSZXBsYWNlV2l0aEdlbmVyYXRlZEZpbGVGb3JV
cGxvYWQoY29uc3QgV1RGOjpTdHJpbmcmIHBhdGgsIFdURjo6U3RyaW5nICZnZW5lcmF0ZWRGaWxl
bmFtZSkgZmluYWw7Ci0gICAgV1RGOjpTdHJpbmcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoY29u
c3QgV1RGOjpTdHJpbmcmIHBhdGgpIGZpbmFsOworICAgIGJvb2wgc2hvdWxkUmVwbGFjZVdpdGhH
ZW5lcmF0ZWRGaWxlRm9yVXBsb2FkKGNvbnN0IFN0cmluZyYgcGF0aCwgU3RyaW5nICZnZW5lcmF0
ZWRGaWxlbmFtZSkgZmluYWw7CisgICAgU3RyaW5nIGdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNv
bnN0IFN0cmluZyYgcGF0aCkgZmluYWw7CiAKLSAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25z
dCBXZWJDb3JlOjpOb2RlKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBlbGVtZW50RGlkQmx1cihjb25z
dCBXZWJDb3JlOjpOb2RlKikgb3ZlcnJpZGU7CisgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoV2Vi
Q29yZTo6RWxlbWVudCYpIG92ZXJyaWRlOworICAgIHZvaWQgZWxlbWVudERpZEJsdXIoV2ViQ29y
ZTo6RWxlbWVudCYpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzaG91bGRQYWludEVudGlyZUNvbnRl
bnRzKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdl
YkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwotICAgIHZv
aWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOworICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5
ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBX
ZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7CiAgICAgdm9pZCBzZXROZWVkc09uZVNob3RE
cmF3aW5nU3luY2hyb25pemF0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0
aW5nTGF5ZXJGbHVzaCgpIGZpbmFsOwogCkBAIC0xODksMTYgKzE4OSwxNiBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgYm9vbCBzdXBwb3J0c0Z1
bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqLCBib29sIHdpdGhLZXli
b2FyZCkgZmluYWw7Ci0gICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6
OkVsZW1lbnQqKSBmaW5hbDsKLSAgICB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJD
b3JlOjpFbGVtZW50KikgZmluYWw7CisgICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVt
ZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmLCBib29sIHdpdGhLZXlib2FyZCkgZmluYWw7Cisg
ICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5h
bDsKKyAgICB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Jikg
ZmluYWw7CiAjZW5kaWYKIAogICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05h
dHVyYWwoKSBvdmVycmlkZTsKICAgICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVu
dVdyaXRpbmdEaXJlY3Rpb24oKSBvdmVycmlkZTsKICAgICBib29sIGhhc09wZW5lZFBvcHVwKCkg
Y29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBN
ZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IG92ZXJyaWRlOwotICAgIFJlZlB0
cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3Jl
OjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6
UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29u
c3Qgb3ZlcnJpZGU7CisgICAgUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRl
U2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYpIGNvbnN0IG92ZXJyaWRl
OwogCiAgICAgdm9pZCB3aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKGJvb2wpIGZpbmFsIHsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW0KaW5kZXggMGVjZmY4ZDVmYWIxZWU1ZmM1NTI5MmRjMDRhODA1YWQyY2NjZGVkOC4uZTQ5
NjdiOWY4YzM3YzYyNWI1MDU1YmM0MjkxYTc1OTU5ZjA1ZmFkOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtMzAsNiAr
MzAsNyBAQAogI2ltcG9ydCAiV2ViQ2hyb21lQ2xpZW50LmgiCiAKICNpbXBvcnQgIkRPTUVsZW1l
bnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NSFRNTElucHV0RWxlbWVudEludGVybmFsLmgiCiAj
aW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKICNpbXBvcnQgIlBvcHVwTWVudU1hYy5oIgogI2lt
cG9ydCAiU2VhcmNoUG9wdXBNZW51TWFjLmgiCkBAIC0yMjIsNyArMjIzLDcgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmZvY3VzZWRFbGVtZW50Q2hhbmdlZChFbGVtZW50KiBlbGVtZW50KQogICAg
IGlmICghaXM8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIEhUTUxJbnB1dEVsZW1lbnQmIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVs
ZW1lbnQ+KCplbGVtZW50KTsKKyAgICBhdXRvJiBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxIVE1M
SW5wdXRFbGVtZW50PigqZWxlbWVudCk7CiAgICAgaWYgKCFpbnB1dEVsZW1lbnQuaXNUZXh0KCkp
CiAgICAgICAgIHJldHVybjsKIApAQCAtMjMzLDE0ICsyMzQsMTQgQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKQogewogfQogCi1QYWdlKiBXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVl
c3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rp
b24mKQorUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUmIGZyYW1lLCBj
b25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBj
b25zdCBOYXZpZ2F0aW9uQWN0aW9uJikKIHsKICAgICBpZCBkZWxlZ2F0ZSA9IFttX3dlYlZpZXcg
VUlEZWxlZ2F0ZV07CiAgICAgV2ViVmlldyAqbmV3V2ViVmlldzsKIAogI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKLSAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50
KCktPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpKQotICAgICAgICBmcmFtZS0+ZG9j
dW1lbnQoKS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOworICAgIGlmIChmcmFtZS5kb2N1bWVu
dCgpICYmIGZyYW1lLmRvY3VtZW50KCktPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgp
KQorICAgICAgICBmcmFtZS5kb2N1bWVudCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7CiAj
ZW5kaWYKICAgICAKICAgICBpZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3Iod2ViVmlldzpjcmVhdGVXZWJWaWV3V2l0aFJlcXVlc3Q6d2luZG93RmVhdHVyZXM6KV0pIHsK
QEAgLTQ2OCw5ICs0NjksOSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6Y2FuUnVuQmVmb3JlVW5s
b2FkQ29uZmlybVBhbmVsKCkKICAgICByZXR1cm4gW1ttX3dlYlZpZXcgVUlEZWxlZ2F0ZV0gcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1Q
YW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6KV07CiB9CiAKLWJvb2wgV2ViQ2hyb21l
Q2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBGcmFtZSogZnJhbWUpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmIGZyYW1lKQogewotICAgIHJl
dHVybiBDYWxsVUlEZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4odHJ1ZSwgbV93ZWJWaWV3LCBAc2Vs
ZWN0b3Iod2ViVmlldzpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTppbml0
aWF0ZWRCeUZyYW1lOiksIG1lc3NhZ2UsIGtpdChmcmFtZSkpOworICAgIHJldHVybiBDYWxsVUlE
ZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4odHJ1ZSwgbV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmll
dzpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1l
OiksIG1lc3NhZ2UsIGtpdCgmZnJhbWUpKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNs
b3NlV2luZG93U29vbigpCkBAIC00OTMsMTIgKzQ5NCwxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6Y2xvc2VXaW5kb3dTb29uKCkKICAgICBbbV93ZWJWaWV3IHBlcmZvcm1TZWxlY3RvcjpAc2Vs
ZWN0b3IoX2Nsb3NlV2luZG93KSB3aXRoT2JqZWN0Om5pbCBhZnRlckRlbGF5OjAuMF07CiB9CiAK
LXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlw
dEFsZXJ0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIGlkIGRl
bGVnYXRlID0gW21fd2ViVmlldyBVSURlbGVnYXRlXTsKICAgICBTRUwgc2VsZWN0b3IgPSBAc2Vs
ZWN0b3Iod2ViVmlldzpydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRl
ZEJ5RnJhbWU6KTsKICAgICBpZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rv
cl0pIHsKLSAgICAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3RvciwgbWVzc2Fn
ZSwga2l0KGZyYW1lKSk7CisgICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0
b3IsIG1lc3NhZ2UsIGtpdCgmZnJhbWUpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAt
NTEwLDEyICs1MTEsMTIgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVy
dChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICB9CiB9CiAKLWJvb2wg
V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29u
ZmlybShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBpZCBkZWxl
Z2F0ZSA9IFttX3dlYlZpZXcgVUlEZWxlZ2F0ZV07CiAgICAgU0VMIHNlbGVjdG9yID0gQHNlbGVj
dG9yKHdlYlZpZXc6cnVuSmF2YVNjcmlwdENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRl
ZEJ5RnJhbWU6KTsKICAgICBpZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rv
cl0pCi0gICAgICAgIHJldHVybiBDYWxsVUlEZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4oTk8sIG1f
d2ViVmlldywgc2VsZWN0b3IsIG1lc3NhZ2UsIGtpdChmcmFtZSkpOworICAgICAgICByZXR1cm4g
Q2FsbFVJRGVsZWdhdGVSZXR1cm5pbmdCb29sZWFuKE5PLCBtX3dlYlZpZXcsIHNlbGVjdG9yLCBt
ZXNzYWdlLCBraXQoJmZyYW1lKSk7CiAKICAgICAvLyBDYWxsIHRoZSBvbGQgdmVyc2lvbiBvZiB0
aGUgZGVsZWdhdGUgbWV0aG9kIGlmIGl0IGlzIGltcGxlbWVudGVkLgogICAgIHNlbGVjdG9yID0g
QHNlbGVjdG9yKHdlYlZpZXc6cnVuSmF2YVNjcmlwdENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOik7
CkBAIC01MjUsMTMgKzUyNiwxMyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlw
dENvbmZpcm0oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgcmV0dXJu
IE5POwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFt
ZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgcHJvbXB0LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRUZXh0
LCBTdHJpbmcmIHJlc3VsdCkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJv
bXB0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmluZyYgZGVm
YXVsdFRleHQsIFN0cmluZyYgcmVzdWx0KQogewogICAgIGlkIGRlbGVnYXRlID0gW21fd2ViVmll
dyBVSURlbGVnYXRlXTsKICAgICBTRUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpydW5K
YXZhU2NyaXB0VGV4dElucHV0UGFuZWxXaXRoUHJvbXB0OmRlZmF1bHRUZXh0OmluaXRpYXRlZEJ5
RnJhbWU6KTsKICAgICBOU1N0cmluZyAqZGVmYXVsdFN0cmluZyA9IGRlZmF1bHRUZXh0OwogICAg
IGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkgewotICAgICAgICBy
ZXN1bHQgPSAoTlNTdHJpbmcgKilDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBw
cm9tcHQsIGRlZmF1bHRTdHJpbmcsIGtpdChmcmFtZSkpOworICAgICAgICByZXN1bHQgPSAoTlNT
dHJpbmcgKilDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBwcm9tcHQsIGRlZmF1
bHRTdHJpbmcsIGtpdCgmZnJhbWUpKTsKICAgICAgICAgcmV0dXJuICFyZXN1bHQuaXNOdWxsKCk7
CiAgICAgfQogCkBAIC01NDIsNyArNTQzLDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkph
dmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwgY28KICAg
ICAgICAgcmV0dXJuICFyZXN1bHQuaXNOdWxsKCk7CiAgICAgfQogCi0gICAgcmVzdWx0ID0gW1tX
ZWJEZWZhdWx0VUlEZWxlZ2F0ZSBzaGFyZWRVSURlbGVnYXRlXSB3ZWJWaWV3Om1fd2ViVmlldyBy
dW5KYXZhU2NyaXB0VGV4dElucHV0UGFuZWxXaXRoUHJvbXB0OnByb21wdCBkZWZhdWx0VGV4dDpk
ZWZhdWx0U3RyaW5nIGluaXRpYXRlZEJ5RnJhbWU6a2l0KGZyYW1lKV07CisgICAgcmVzdWx0ID0g
W1tXZWJEZWZhdWx0VUlEZWxlZ2F0ZSBzaGFyZWRVSURlbGVnYXRlXSB3ZWJWaWV3Om1fd2ViVmll
dyBydW5KYXZhU2NyaXB0VGV4dElucHV0UGFuZWxXaXRoUHJvbXB0OnByb21wdCBkZWZhdWx0VGV4
dDpkZWZhdWx0U3RyaW5nIGluaXRpYXRlZEJ5RnJhbWU6a2l0KCZmcmFtZSldOwogICAgIHJldHVy
biAhcmVzdWx0LmlzTnVsbCgpOwogfQogCkBAIC02MDYsNyArNjA3LDcgQEAgUGxhdGZvcm1QYWdl
Q2xpZW50IFdlYkNocm9tZUNsaWVudDo6cGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QKICAgICBy
ZXR1cm4gMDsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQo
RnJhbWUqLCBjb25zdCBJbnRTaXplJikgY29uc3QKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250
ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0CiB7CiB9CiAKQEAg
LTYzNSwxMiArNjM2LDEyIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVbmF2YWlsYWJs
ZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihSZW5kZXJFbWJlZGRlZE9iamVjCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25D
bGlja2VkKEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2
YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QKK3ZvaWQg
V2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCYg
ZWxlbWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29u
IHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdAogewotICAgIEFTU0VSVChlbGVtZW50
LT5oYXNUYWdOYW1lKG9iamVjdFRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShlbWJlZFRhZykg
fHwgZWxlbWVudC0+aGFzVGFnTmFtZShhcHBsZXRUYWcpKTsKKyAgICBBU1NFUlQoZWxlbWVudC5o
YXNUYWdOYW1lKG9iamVjdFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGVtYmVkVGFnKSB8fCBl
bGVtZW50Lmhhc1RhZ05hbWUoYXBwbGV0VGFnKSk7CiAKICAgICBBU1NFUlQocGx1Z2luVW5hdmFp
bGFiaWxpdHlSZWFzb24gPT0gUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpbk1pc3NpbmcpOwot
ICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6ZGlkUHJlc3NN
aXNzaW5nUGx1Z2luQnV0dG9uOiksIGtpdChlbGVtZW50KSk7CisgICAgQ2FsbFVJRGVsZWdhdGUo
bV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpkaWRQcmVzc01pc3NpbmdQbHVnaW5CdXR0b246
KSwga2l0KCZlbGVtZW50KSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojptb3VzZURpZE1v
dmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIHVuc2lnbmVkIG1vZGlm
aWVyRmxhZ3MpCkBAIC02NTcsMjEgKzY1OCwyMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0
VG9vbFRpcChjb25zdCBTdHJpbmcmIHRvb2xUaXAsIFRleHREaXJlY3Rpb24pCiAgICAgICAgIFso
V2ViSFRNTFZpZXcgKilkb2N1bWVudFZpZXcgX3NldFRvb2xUaXA6dG9vbFRpcF07CiB9CiAKLXZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSogZnJhbWUpCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6cHJpbnQoRnJhbWUmIGZyYW1lKQogewotICAgIFdlYkZyYW1lICp3ZWJGcmFtZSA9IGtp
dChmcmFtZSk7CisgICAgV2ViRnJhbWUgKndlYkZyYW1lID0ga2l0KCZmcmFtZSk7CiAgICAgaWYg
KFtbbV93ZWJWaWV3IFVJRGVsZWdhdGVdIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2Vi
VmlldzpwcmludEZyYW1lOildKQogICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBz
ZWxlY3Rvcih3ZWJWaWV3OnByaW50RnJhbWU6KSwgd2ViRnJhbWUpOwogICAgIGVsc2UKICAgICAg
ICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpwcmludEZyYW1l
VmlldzopLCBbd2ViRnJhbWUgZnJhbWVWaWV3XSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFi
YXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVk
RGF0YWJhc2VRdW90YShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBE
YXRhYmFzZURldGFpbHMpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0g
ICAgV2ViU2VjdXJpdHlPcmlnaW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxs
b2NdIF9pbml0V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdpbjomZnJhbWUtPmRvY3VtZW50KCktPnNl
Y3VyaXR5T3JpZ2luKCldOwotICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9y
KHdlYlZpZXc6ZnJhbWU6ZXhjZWVkZWREYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46ZGF0
YWJhc2U6KSwga2l0KGZyYW1lKSwgd2ViT3JpZ2luLCAoTlNTdHJpbmcgKilkYXRhYmFzZU5hbWUp
OworICAgIFdlYlNlY3VyaXR5T3JpZ2luICp3ZWJPcmlnaW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2lu
IGFsbG9jXSBfaW5pdFdpdGhXZWJDb3JlU2VjdXJpdHlPcmlnaW46JmZyYW1lLmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCldOworICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVj
dG9yKHdlYlZpZXc6ZnJhbWU6ZXhjZWVkZWREYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46
ZGF0YWJhc2U6KSwga2l0KCZmcmFtZSksIHdlYk9yaWdpbiwgKE5TU3RyaW5nICopZGF0YWJhc2VO
YW1lKTsKICAgICBbd2ViT3JpZ2luIHJlbGVhc2VdOwogCiAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKQEAgLTY4MiwxMSArNjgzLDExIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFj
aGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpCiAgICAgLy8gRklYTUU6IEZy
ZWUgc29tZSBzcGFjZS4KIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgaW50NjRfdCB0b3Rh
bFNwYWNlTmVlZGVkKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgaW50NjRfdCB0b3RhbFNwYWNl
TmVlZGVkKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIFdlYlNl
Y3VyaXR5T3JpZ2luICp3ZWJPcmlnaW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5p
dFdpdGhXZWJDb3JlU2VjdXJpdHlPcmlnaW46b3JpZ2luXTsKKyAgICBXZWJTZWN1cml0eU9yaWdp
biAqd2ViT3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdpbiBhbGxvY10gX2luaXRXaXRoV2ViQ29y
ZVNlY3VyaXR5T3JpZ2luOiZvcmlnaW5dOwogICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywg
QHNlbGVjdG9yKHdlYlZpZXc6ZXhjZWVkZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGFGb3JT
ZWN1cml0eU9yaWdpbjp0b3RhbFNwYWNlTmVlZGVkOiksIHdlYk9yaWdpbiwgc3RhdGljX2Nhc3Q8
TlNVSW50ZWdlcj4odG90YWxTcGFjZU5lZWRlZCkpOwogICAgIFt3ZWJPcmlnaW4gcmVsZWFzZV07
CiAKQEAgLTcwNSwxMiArNzA2LDE0IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojphbm5vdGF0ZWRS
ZWdpb25zQ2hhbmdlZCgpCiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQot
c3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xv
ckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFs
Q29sb3IpCisKK3N0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6
Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCYgY2xpZW50LCBjb25zdCBDb2xv
ciYgaW5pdGlhbENvbG9yKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgPGlucHV0IHR5cGU9
J2NvbG9yJz4gZm9yIFdLMSAoQnVnIDExOTA5NCkuCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CisKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBPSU5URVJf
TE9DSykKQEAgLTg0OCwxNCArODUxLDE0IEBAIFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6OmdlbmVy
YXRlUmVwbGFjZW1lbnRGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkKICAgICByZXR1cm4gW1ttX3dl
YlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6bV93ZWJWaWV3IGdlbmVyYXRlUmVw
bGFjZW1lbnRGaWxlOnBhdGhdOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERp
ZEZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
ZWxlbWVudERpZEZvY3VzKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgQ2FsbFVJ
RGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpmb3JtRGlkRm9jdXNOb2RlOiks
IGtpdChjb25zdF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihub2RlKSkpOworICAgIENhbGxVSURlbGVn
YXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6Zm9ybURpZEZvY3VzTm9kZTopLCBraXQo
JmVsZW1lbnQpKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRCbHVyKGNv
bnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERp
ZEJsdXIoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBDYWxsVUlEZWxlZ2F0ZSht
X3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZvcm1EaWRCbHVyTm9kZTopLCBraXQoY29uc3Rf
Y2FzdDxXZWJDb3JlOjpOb2RlKj4obm9kZSkpKTsKKyAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZp
ZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZvcm1EaWRCbHVyTm9kZTopLCBraXQoJmVsZW1lbnQpKTsK
IH0KIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNO
YXR1cmFsKCkKQEAgLTg3NCwxOSArODc3LDE5IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpoYXNP
cGVuZWRQb3B1cCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1SZWZQdHI8V2ViQ29y
ZTo6UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQ
b3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+
IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVu
dCYgY2xpZW50KSBjb25zdAogewogI2lmICFQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBQb3B1cE1lbnVNYWMoY2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
UG9wdXBNZW51TWFjKCZjbGllbnQpKTsKICNlbHNlCiAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5k
aWYKIH0KIAotUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50
OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQp
IGNvbnN0CitSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkg
Y29uc3QKIHsKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2Vh
cmNoUG9wdXBNZW51TWFjKGNsaWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNlYXJj
aFBvcHVwTWVudU1hYygmY2xpZW50KSk7CiAjZWxzZQogICAgIHJldHVybiBudWxscHRyOwogI2Vu
ZGlmCkBAIC05MDIsMTEgKzkwNSwxMSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkUGFp
bnRFbnRpcmVDb250ZW50cygpIGNvbnN0CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NMYXllciog
Z3JhcGhpY3NMYXllcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NM
YXllcihGcmFtZSYgZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAgICAg
QkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgTlNWaWV3ICpkb2N1bWVudFZpZXcg
PSBbW2tpdChmcmFtZSkgZnJhbWVWaWV3XSBkb2N1bWVudFZpZXddOworICAgIE5TVmlldyAqZG9j
dW1lbnRWaWV3ID0gW1traXQoJmZyYW1lKSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld107CiAgICAg
aWYgKCFbZG9jdW1lbnRWaWV3IGlzS2luZE9mQ2xhc3M6W1dlYkhUTUxWaWV3IGNsYXNzXV0pIHsK
ICAgICAgICAgLy8gV2Ugc2hvdWxkIG5ldmVyIGJlIGF0dGFjaGluZyB3aGVuIHdlIGRvbid0IGhh
dmUgYSBXZWJIVE1MVmlldy4KICAgICAgICAgQVNTRVJUKCFncmFwaGljc0xheWVyKTsKQEAgLTky
MSw3ICs5MjQsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5
ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaAogICAgIEVORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3Zlcmxh
eUdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVy
KikKIHsKICAgICAvLyBGSVhNRTogSWYgd2Ugd2FudCB2aWV3LXJlbGF0aXZlIHBhZ2Ugb3Zlcmxh
eXMgaW4gTGVnYWN5IFdlYktpdCwgdGhpcyB3b3VsZCBiZSB0aGUgcGxhY2UgdG8gaG9vayB0aGVt
IHVwLgogfQpAQCAtOTQxLDYgKzk0NCw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVs
ZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpCiB9CiAKICNpZiBFTkFCTEUoVklERU8pCisKIGJvb2wg
V2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpCiB7CiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtOTY1
LDcgKzk2OSwxMCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZv
clZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZQogICAgIEVORF9CTE9DS19PQkpD
X0VYQ0VQVElPTlM7ICAgIAogfQogCi0jaWYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9f
UFJFU0VOVEFUSU9OX01PREUpCisjZW5kaWYgLy8gRU5BQkxFKFZJREVPKQorCisjaWYgRU5BQkxF
KFZJREVPKSAmJiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9E
RSkKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXIo
SFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBbbV93ZWJWaWV3IF9zZXRVcFBsYXli
YWNrQ29udHJvbHNNYW5hZ2VyRm9yTWVkaWFFbGVtZW50OmVsZW1lbnRdOwpAQCAtOTc1LDU0ICs5
ODIsNTUgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNsZWFyUGxheWJhY2tDb250cm9sc01hbmFn
ZXIoKQogewogICAgIFttX3dlYlZpZXcgX2NsZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXJdOwog
fQotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKLSNlbmRpZiAvLyBFTkFCTEUoVklERU8pCisKKyNl
bmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogCi1ib29sIFdlYkNocm9tZUNsaWVu
dDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBFbGVtZW50KiBlbGVtZW50LCBi
b29sIHdpdGhLZXlib2FyZCkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3Jl
ZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIGJvb2wgd2l0aEtleWJvYXJkKQog
ewogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OnN1cHBvcnRzRnVsbFNjcmVl
bkZvckVsZW1lbnQ6d2l0aEtleWJvYXJkOik7CiAgICAgaWYgKFtbbV93ZWJWaWV3IFVJRGVsZWdh
dGVdIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rvcl0pCi0gICAgICAgIHJldHVybiBDYWxsVUlE
ZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4oZmFsc2UsIG1fd2ViVmlldywgc2VsZWN0b3IsIGtpdChj
b25zdF9jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPihlbGVtZW50KSksIHdpdGhLZXlib2FyZCk7Cisg
ICAgICAgIHJldHVybiBDYWxsVUlEZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4oZmFsc2UsIG1fd2Vi
Vmlldywgc2VsZWN0b3IsIGtpdChjb25zdF9jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPigmZWxlbWVu
dCkpLCB3aXRoS2V5Ym9hcmQpOwogI2lmICFQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIFttX3dl
YlZpZXcgX3N1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6Y29uc3RfY2FzdDxXZWJDb3JlOjpF
bGVtZW50Kj4oZWxlbWVudCkgd2l0aEtleWJvYXJkOndpdGhLZXlib2FyZF07CisgICAgcmV0dXJu
IFttX3dlYlZpZXcgX3N1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6Y29uc3RfY2FzdDxXZWJD
b3JlOjpFbGVtZW50Kj4oJmVsZW1lbnQpIHdpdGhLZXlib2FyZDp3aXRoS2V5Ym9hcmRdOwogI2Vs
c2UKICAgICByZXR1cm4gTk87CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAg
ICAgU0VMIHNlbGVjdG9yID0gQHNlbGVjdG9yKHdlYlZpZXc6ZW50ZXJGdWxsU2NyZWVuRm9yRWxl
bWVudDpsaXN0ZW5lcjopOwogICAgIGlmIChbW21fd2ViVmlldyBVSURlbGVnYXRlXSByZXNwb25k
c1RvU2VsZWN0b3I6c2VsZWN0b3JdKSB7Ci0gICAgICAgIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5l
ciogbGlzdGVuZXIgPSBbW1dlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhF
bGVtZW50OmVsZW1lbnRdOwotICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVj
dG9yLCBraXQoZWxlbWVudCksIGxpc3RlbmVyKTsKKyAgICAgICAgV2ViS2l0RnVsbFNjcmVlbkxp
c3RlbmVyKiBsaXN0ZW5lciA9IFtbV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyIGFsbG9jXSBpbml0
V2l0aEVsZW1lbnQ6JmVsZW1lbnRdOworICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcs
IHNlbGVjdG9yLCBraXQoJmVsZW1lbnQpLCBsaXN0ZW5lcik7CiAgICAgICAgIFtsaXN0ZW5lciBy
ZWxlYXNlXTsKICAgICB9CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBlbHNlCi0gICAgICAgIFtt
X3dlYlZpZXcgX2VudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6ZWxlbWVudF07CisgICAgICAgIFtt
X3dlYlZpZXcgX2VudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6JmVsZW1lbnRdOwogI2VuZGlmCiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVu
dCogZWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1l
bnQoRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBTRUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2Vi
VmlldzpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6bGlzdGVuZXI6KTsKICAgICBpZiAoW1ttX3dl
YlZpZXcgVUlEZWxlZ2F0ZV0gcmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkgewotICAgICAg
ICBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIqIGxpc3RlbmVyID0gW1tXZWJLaXRGdWxsU2NyZWVu
TGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoRWxlbWVudDplbGVtZW50XTsKLSAgICAgICAgQ2FsbFVJ
RGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3Rvciwga2l0KGVsZW1lbnQpLCBsaXN0ZW5lcik7Cisg
ICAgICAgIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciogbGlzdGVuZXIgPSBbW1dlYktpdEZ1bGxT
Y3JlZW5MaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhFbGVtZW50OiZlbGVtZW50XTsKKyAgICAgICAg
Q2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3Rvciwga2l0KCZlbGVtZW50KSwgbGlzdGVu
ZXIpOwogICAgICAgICBbbGlzdGVuZXIgcmVsZWFzZV07CiAgICAgfQogI2lmICFQTEFURk9STShJ
T1MpCiAgICAgZWxzZQotICAgICAgICBbbV93ZWJWaWV3IF9leGl0RnVsbFNjcmVlbkZvckVsZW1l
bnQ6ZWxlbWVudF07CisgICAgICAgIFttX3dlYlZpZXcgX2V4aXRGdWxsU2NyZWVuRm9yRWxlbWVu
dDomZWxlbWVudF07CiAjZW5kaWYKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQorCiBib29sIFdlYkNocm9tZUNsaWVudDo6
d3JhcENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mIGtleSwgVmVjdG9yPHVpbnQ4X3Q+
JiB3cmFwcGVkS2V5KSBjb25zdAogewogICAgIFZlY3Rvcjx1aW50OF90PiBtYXN0ZXJLZXk7CkBA
IC0xMDQ4LDkgKzEwNTYsMTEgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnVud3JhcENyeXB0b0tl
eShjb25zdCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXksIFZlY3RvcjwKIAogICAgIHJldHVy
biB1bndyYXBTZXJpYWxpemVkQ3J5cHRvS2V5KG1hc3RlcktleSwgd3JhcHBlZEtleSwga2V5KTsK
IH0KKwogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKwogdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhXZWJDb3JlOjpGcmFtZVNl
bGVjdGlvbiYgc2VsZWN0aW9uLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgdGVsZXBob25lTnVtYmVy
cywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50KQogewogICAgIFttX3dlYlZpZXcgX3Nl
bGVjdGlvblNlcnZpY2VDb250cm9sbGVyXS5oYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soc2Vs
ZWN0aW9uLCB0ZWxlcGhvbmVOdW1iZXJzLCBwb2ludCk7CkBAIC0xMDY0LDYgKzEwNzQsNyBAQCBi
b29sIFdlYkNocm9tZUNsaWVudDo6aGFzUmVsZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcyhib29sIGlz
VGV4dE9ubHkpIGNvbnN0CiAjZW5kaWYKIAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19U
QVJHRVQpICYmICFQTEFURk9STShJT1MpCisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjphZGRQbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCBjb250ZXh0SWQpCiB7CiAgICAgW21fd2Vi
VmlldyBfYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQ6Y29udGV4dElkXTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IGJlYjdiMzA5Y2E2Y2RkODMzY2RhZmRiMDRm
YjE5MmE0ZGNiMjY0ZDUuLjM4YTRjZWNiMTc2MTE0MTdmNzk4ZTg4NGYwNGVhYjkyYjMxMjQyY2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtMzAyLDE0ICszMDIsMTQg
QEAgKyAoUmVmPFdlYkNvcmU6OkZyYW1lPilfY3JlYXRlRnJhbWVXaXRoUGFnZTooUGFnZSopcGFn
ZSBmcmFtZU5hbWU6KGNvbnN0IFN0cmluZyYKICAgICBXZWJWaWV3ICp3ZWJWaWV3ID0ga2l0KHBh
Z2UpOwogCiAgICAgV2ViRnJhbWUgKmZyYW1lID0gW1tzZWxmIGFsbG9jXSBfaW5pdFdpdGhXZWJG
cmFtZVZpZXc6ZnJhbWVWaWV3IHdlYlZpZXc6d2ViVmlld107Ci0gICAgUmVmPFdlYkNvcmU6OkZy
YW1lPiBjb3JlRnJhbWUgPSBGcmFtZTo6Y3JlYXRlKHBhZ2UsIG93bmVyRWxlbWVudCwgbmV3IFdl
YkZyYW1lTG9hZGVyQ2xpZW50KGZyYW1lKSk7CisgICAgYXV0byBjb3JlRnJhbWUgPSBGcmFtZTo6
Y3JlYXRlKHBhZ2UsIG93bmVyRWxlbWVudCwgbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50KGZyYW1l
KSk7CiAgICAgW2ZyYW1lIHJlbGVhc2VdOwogICAgIGZyYW1lLT5fcHJpdmF0ZS0+Y29yZUZyYW1l
ID0gY29yZUZyYW1lLnB0cigpOwogCiAgICAgY29yZUZyYW1lLmdldCgpLnRyZWUoKS5zZXROYW1l
KG5hbWUpOwogICAgIGlmIChvd25lckVsZW1lbnQpIHsKICAgICAgICAgQVNTRVJUKG93bmVyRWxl
bWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpKTsKLSAgICAgICAgb3duZXJFbGVtZW50LT5kb2N1bWVu
dCgpLmZyYW1lKCktPnRyZWUoKS5hcHBlbmRDaGlsZChjb3JlRnJhbWUucHRyKCkpOworICAgICAg
ICBvd25lckVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKS0+dHJlZSgpLmFwcGVuZENoaWxkKGNv
cmVGcmFtZS5nZXQoKSk7CiAgICAgfQogCiAgICAgY29yZUZyYW1lLmdldCgpLmluaXQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDE0ZTk3MTBkMTVkNzli
ZjNiNTVjNDAwOWU1NjY4NGEwZWUzZDc4MzcuLjI5ODE1M2RmM2M0YWQ3Zjc0YWIyNWY5ODA5YmZk
ZGIyMmQ4MDczODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2lu
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApA
QCAtNTkzLDcgKzU5Myw3IEBAIE5QRXJyb3IgUGx1Z2luVmlldzo6ZGVzdHJveVN0cmVhbShOUFN0
cmVhbSogc3RyZWFtLCBOUFJlYXNvbiByZWFzb24pCiB2b2lkIFBsdWdpblZpZXc6OnN0YXR1cyhj
b25zdCBjaGFyKiBtZXNzYWdlKQogewogICAgIGlmIChQYWdlKiBwYWdlID0gbV9wYXJlbnRGcmFt
ZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJUZXh0KG1fcGFy
ZW50RnJhbWUuZ2V0KCksIFN0cmluZzo6ZnJvbVVURjgobWVzc2FnZSkpOworICAgICAgICBwYWdl
LT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJUZXh0KCptX3BhcmVudEZyYW1lLCBTdHJpbmc6OmZyb21V
VEY4KG1lc3NhZ2UpKTsKIH0KIAogTlBFcnJvciBQbHVnaW5WaWV3OjpzZXRWYWx1ZShOUFBWYXJp
YWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCkBAIC03OTMsNyArNzkzLDcgQEAgUGx1Z2luVmll
dzo6UGx1Z2luVmlldyhGcmFtZSogcGFyZW50RnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUsIFBs
dWdpblBhY2thZ2UqIHAKIHZvaWQgUGx1Z2luVmlldzo6Zm9jdXNQbHVnaW5FbGVtZW50KCkKIHsK
ICAgICBpZiAoUGFnZSogcGFnZSA9IG1fcGFyZW50RnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgcGFn
ZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQobV9lbGVtZW50LCBtX3BhcmVu
dEZyYW1lKTsKKyAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1l
bnQobV9lbGVtZW50LCAqbV9wYXJlbnRGcmFtZSk7CiAgICAgZWxzZQogICAgICAgICBtX3BhcmVu
dEZyYW1lLT5kb2N1bWVudCgpLT5zZXRGb2N1c2VkRWxlbWVudChtX2VsZW1lbnQpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKaW5kZXggYTc3M2IxYWIxNDE3NGUwMjBjNjJkOWQwNDc4NmQyYTI4MjFjYjc4NC4uYWI2NTE0
NDRmOTIxOWE2Nzc2YmY4N2ViMThiMjgxY2JkMjQxMjBjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0xODksMTUg
KzE4OSwxNSBAQCBzdGF0aWMgQ09NUHRyPElQcm9wZXJ0eUJhZz4gY3JlYXRlV2luZG93RmVhdHVy
ZXNQcm9wZXJ0eUJhZyhjb25zdCBXaW5kb3dGZWF0dXJlcwogICAgIHJldHVybiBDT01QdHI8SVBy
b3BlcnR5QmFnPihBZG9wdENPTSwgQ09NUHJvcGVydHlCYWc8Q09NVmFyaWFudD46OmFkb3B0KG1h
cCkpOwogfQogCi1QYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJh
bWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVy
ZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24pCitQYWdlKiBXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJl
cXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25B
Y3Rpb24mIG5hdmlnYXRpb25BY3Rpb24pCiB7CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiBk
ZWxlZ2F0ZSA9IHVpRGVsZWdhdGUoKTsKICAgICBpZiAoIWRlbGVnYXRlKQogICAgICAgICByZXR1
cm4gMDsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICBpZiAoZnJhbWUtPmRvY3Vt
ZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVu
dCgpKQotICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigp
OworICAgIGlmIChmcmFtZS5kb2N1bWVudCgpICYmIGZyYW1lLmRvY3VtZW50KCktPndlYmtpdEN1
cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpKQorICAgICAgICBmcmFtZS5kb2N1bWVudCgpLT53ZWJr
aXRDYW5jZWxGdWxsU2NyZWVuKCk7CiAjZW5kaWYKIAogICAgIENPTVB0cjxXZWJNdXRhYmxlVVJM
UmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0Q09NKFdlYk11dGFibGVVUkxSZXF1ZXN0OjpjcmVhdGVJ
bnN0YW5jZShSZXNvdXJjZVJlcXVlc3QobmF2aWdhdGlvbkFjdGlvbi51cmwoKSkpKTsKQEAgLTM2
MSwxMiArMzYxLDEyIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZy
YW1lKiBmcmFtZSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSYgZnJhbWUpCiB7CiAgICAgQk9PTCBy
ZXN1bHQgPSBUUlVFOwogICAgIElXZWJVSURlbGVnYXRlKiB1aTsKICAgICBpZiAoU1VDQ0VFREVE
KG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWkpKSAmJiB1aSkgewotICAgICAgICBXZWJGcmFtZSog
d2ViRnJhbWUgPSBraXQoZnJhbWUpOworICAgICAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBraXQo
JmZyYW1lKTsKICAgICAgICAgdWktPnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNz
YWdlKG1fd2ViVmlldywgQlN0cmluZyhtZXNzYWdlKSwgd2ViRnJhbWUsICZyZXN1bHQpOwogICAg
ICAgICB1aS0+UmVsZWFzZSgpOwogICAgIH0KQEAgLTM5MywxNCArMzkzLDE0IEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpjbG9zZVdpbmRvd1Nvb24oKQogICAgIG1fd2ViVmlldy0+Y2xvc2VXaW5k
b3dTb29uKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQo
RnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVu
SmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIENP
TVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWk7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVp
RGVsZWdhdGUoJnVpKSkpCiAgICAgICAgIHVpLT5ydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhN
ZXNzYWdlKG1fd2ViVmlldywgQlN0cmluZyhtZXNzYWdlKSk7CiB9CiAKLWJvb2wgV2ViQ2hyb21l
Q2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSosIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBCT09MIHJlc3VsdCA9IEZBTFNFOwogICAgIENP
TVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWk7CkBAIC00MDksNyArNDA5LDcgQEAgYm9vbCBXZWJDaHJv
bWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQogICAgIHJldHVybiAhIXJlc3VsdDsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1
bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50
OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCiB7CiAgICAgQ09NUHRyPElX
ZWJVSURlbGVnYXRlPiB1aTsKICAgICBpZiAoRkFJTEVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgm
dWkpKSkKQEAgLTUwOCw3ICs1MDgsNyBAQCBQbGF0Zm9ybVBhZ2VDbGllbnQgV2ViQ2hyb21lQ2xp
ZW50OjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogICAgIHJldHVybiB2aWV3V2luZG93Owog
fQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNv
bnN0IEludFNpemUmKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNo
YW5nZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQpAQCAtNTQwLDcgKzU0MCw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRV
bmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihSZW5kZXJFbWJlZGRlZE9iamVjCiAgICAg
cmV0dXJuIHVpRGVsZWdhdGVQcml2YXRlMzsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVu
YXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJFbWJl
ZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24pIGNvbnN0Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkKEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVn
aW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QK
IHsKICAgICBBU1NFUlRfVU5VU0VEKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBwbHVnaW5V
bmF2YWlsYWJpbGl0eVJlYXNvbiA9PSBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luTWlzc2lu
Zyk7CiAKQEAgLTU1Miw3ICs1NTIsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFi
bGVQbHVnaW5CdXR0b25DbGlja2VkKEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlckVtYgogICAgIGlm
ICghdWlEZWxlZ2F0ZVByaXZhdGUzKQogICAgICAgICByZXR1cm47CiAKLSAgICBDT01QdHI8SURP
TUVsZW1lbnQ+IGUoQWRvcHRDT00sIERPTUVsZW1lbnQ6OmNyZWF0ZUluc3RhbmNlKGVsZW1lbnQp
KTsKKyAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGUoQWRvcHRDT00sIERPTUVsZW1lbnQ6OmNyZWF0
ZUluc3RhbmNlKCZlbGVtZW50KSk7CiAgICAgdWlEZWxlZ2F0ZVByaXZhdGUzLT5kaWRQcmVzc01p
c3NpbmdQbHVnaW5CdXR0b24oZS5nZXQoKSk7CiB9CiAKQEAgLTU2MSwyMSArNTYxLDIxIEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4
dERpcmVjdGlvbikKICAgICBtX3dlYlZpZXctPnNldFRvb2xUaXAodG9vbFRpcCk7CiB9CiAKLXZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSogZnJhbWUpCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6cHJpbnQoRnJhbWUmIGZyYW1lKQogewogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4g
dWlEZWxlZ2F0ZTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlE
ZWxlZ2F0ZSkpKQotICAgICAgICB1aURlbGVnYXRlLT5wcmludEZyYW1lKG1fd2ViVmlldywga2l0
KGZyYW1lKSk7CisgICAgICAgIHVpRGVsZWdhdGUtPnByaW50RnJhbWUobV93ZWJWaWV3LCBraXQo
JmZyYW1lKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVv
dGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRpZmllciwgRGF0YWJh
c2VEZXRhaWxzKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShG
cmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyLCBEYXRhYmFzZURl
dGFpbHMpCiB7Ci0gICAgQ09NUHRyPFdlYlNlY3VyaXR5T3JpZ2luPiBvcmlnaW4oQWRvcHRDT00s
IFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVJbnN0YW5jZSgmZnJhbWUtPmRvY3VtZW50KCktPnNl
Y3VyaXR5T3JpZ2luKCkpKTsKKyAgICBDT01QdHI8V2ViU2VjdXJpdHlPcmlnaW4+IG9yaWdpbihB
ZG9wdENPTSwgV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUluc3RhbmNlKCZmcmFtZS5kb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpKSk7CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURl
bGVnYXRlOwogICAgIGlmIChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVn
YXRlKSkpIHsKICAgICAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0
ZVByaXZhdGUoUXVlcnksIHVpRGVsZWdhdGUpOwogICAgICAgICBpZiAodWlEZWxlZ2F0ZVByaXZh
dGUpCi0gICAgICAgICAgICB1aURlbGVnYXRlUHJpdmF0ZS0+ZXhjZWVkZWREYXRhYmFzZVF1b3Rh
KG1fd2ViVmlldywga2l0KGZyYW1lKSwgb3JpZ2luLmdldCgpLCBCU3RyaW5nKGRhdGFiYXNlSWRl
bnRpZmllcikpOworICAgICAgICAgICAgdWlEZWxlZ2F0ZVByaXZhdGUtPmV4Y2VlZGVkRGF0YWJh
c2VRdW90YShtX3dlYlZpZXcsIGtpdCgmZnJhbWUpLCBvcmlnaW4uZ2V0KCksIEJTdHJpbmcoZGF0
YWJhc2VJZGVudGlmaWVyKSk7CiAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgLy8gRklYTUU6
IHJlbW92ZSB0aGlzIHdvcmthcm91bmQgb25jZSBzaGlwcGluZyBTYWZhcmkgaGFzIHRoZSBuZWNl
c3NhcnkgZGVsZWdhdGUgaW1wbGVtZW50ZWQuCiAgICAgICAgICAgICBXQ0hBUiBwYXRoW01BWF9Q
QVRIXTsKQEAgLTYxMyw3ICs2MTMsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZE1h
eEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKQogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpy
ZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luJiwgaW50NjRf
dCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtNzE3LDEyICs3MTcsMTIgQEAgdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKQogICAg
IG1fd2ViVmlldy0+c2V0TGFzdEN1cnNvcig6OkdldEN1cnNvcigpKTsKIH0KIAotdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhp
Y3NMYXllciogZ3JhcGhpY3NMYXllcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290
R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAg
ICAgbV93ZWJWaWV3LT5zZXRSb290Q2hpbGRMYXllcihncmFwaGljc0xheWVyKTsKIH0KIAotdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSos
IEdyYXBoaWNzTGF5ZXIqKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5
R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKQogewogICAgIC8vIEZJWE1FOiBJ
ZiB3ZSB3YW50IHZpZXctcmVsYXRpdmUgcGFnZSBvdmVybGF5cyBpbiBMZWdhY3kgV2ViS2l0IG9u
IFdpbmRvd3MsIHRoaXMgd291bGQgYmUgdGhlIHBsYWNlIHRvIGhvb2sgdGhlbSB1cC4KIH0KQEAg
LTc1Myw3ICs3NTMsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNWaWRlb0Z1bGxz
Y3JlZW4oSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzYwogICAgIHJldHVybiB0cnVl
OwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRl
b0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50KQordm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1l
bnQmIHZpZGVvRWxlbWVudCwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5N
b2RlKQogewogICAgIG1fd2ViVmlldy0+ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1l
bnQodmlkZW9FbGVtZW50KTsKIH0KQEAgLTc4MSw1OSArNzgxLDYxIEBAIGJvb2wgV2ViQ2hyb21l
Q2xpZW50OjpoYXNPcGVuZWRQb3B1cCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1S
ZWZQdHI8UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51V2luKGNsaWVudCkpOworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgUG9wdXBNZW51V2luKCZjbGllbnQpKTsKIH0KIAotUmVmUHRyPFNlYXJjaFBv
cHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVD
bGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29u
c3QKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudVdpbihjbGllbnQp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudVdpbigmY2xpZW50KSk7
CiB9CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi1ib29sIFdlYkNocm9tZUNsaWVudDo6
c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBFbGVtZW50KiBlbGVtZW50LCBib29s
IHJlcXVlc3RpbmdLZXlib2FyZEFjY2VzcykKKworYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBv
cnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgYm9vbCByZXF1
ZXN0aW5nS2V5Ym9hcmRBY2Nlc3MpCiB7CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURl
bGVnYXRlOwogICAgIGlmIChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVn
YXRlKSkpIHsKICAgICAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlUHJpdmF0ZTQ+IHVpRGVsZWdh
dGVQcml2YXRlNChRdWVyeSwgdWlEZWxlZ2F0ZSk7CiAgICAgICAgIEJPT0wgc3VwcG9ydHMgPSBG
QUxTRTsKLSAgICAgICAgQ09NUHRyPElET01FbGVtZW50PiBkb21FbGVtZW50KEFkb3B0Q09NLCBE
T01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZShjb25zdF9jYXN0PEVsZW1lbnQqPihlbGVtZW50KSkp
OworICAgICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00sIERPTUVs
ZW1lbnQ6OmNyZWF0ZUluc3RhbmNlKGNvbnN0X2Nhc3Q8RWxlbWVudCo+KCZlbGVtZW50KSkpOwog
CiAgICAgICAgIGlmICh1aURlbGVnYXRlUHJpdmF0ZTQgJiYgU1VDQ0VFREVEKHVpRGVsZWdhdGVQ
cml2YXRlNC0+c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChkb21FbGVtZW50LmdldCgpLCBy
ZXF1ZXN0aW5nS2V5Ym9hcmRBY2Nlc3MsICZzdXBwb3J0cykpKQogICAgICAgICAgICAgcmV0dXJu
IHN1cHBvcnRzOwogICAgIH0KIAotICAgIHJldHVybiBtX3dlYlZpZXctPnN1cHBvcnRzRnVsbFNj
cmVlbkZvckVsZW1lbnQoZWxlbWVudCwgcmVxdWVzdGluZ0tleWJvYXJkQWNjZXNzKTsKKyAgICBy
ZXR1cm4gbV93ZWJWaWV3LT5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KCZlbGVtZW50LCBy
ZXF1ZXN0aW5nS2V5Ym9hcmRBY2Nlc3MpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50
ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQordm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIHsKICAg
ICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdhdGU7CiAgICAgaWYgKFNVQ0NFRURFRCht
X3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUpKSkgewogICAgICAgICBDT01QdHI8SVdl
YlVJRGVsZWdhdGVQcml2YXRlND4gdWlEZWxlZ2F0ZVByaXZhdGU0KFF1ZXJ5LCB1aURlbGVnYXRl
KTsKLSAgICAgICAgQ09NUHRyPElET01FbGVtZW50PiBkb21FbGVtZW50KEFkb3B0Q09NLCBET01F
bGVtZW50OjpjcmVhdGVJbnN0YW5jZShlbGVtZW50KSk7CisgICAgICAgIENPTVB0cjxJRE9NRWxl
bWVudD4gZG9tRWxlbWVudChBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoJmVs
ZW1lbnQpKTsKICAgICAgICAgaWYgKHVpRGVsZWdhdGVQcml2YXRlNCAmJiBTVUNDRUVERUQodWlE
ZWxlZ2F0ZVByaXZhdGU0LT5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGRvbUVsZW1lbnQuZ2V0
KCkpKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9IAogCi0gICAgbV93ZWJWaWV3LT5zZXRG
dWxsU2NyZWVuRWxlbWVudChlbGVtZW50KTsKKyAgICBtX3dlYlZpZXctPnNldEZ1bGxTY3JlZW5F
bGVtZW50KCZlbGVtZW50KTsKICAgICBtX3dlYlZpZXctPmZ1bGxTY3JlZW5Db250cm9sbGVyKCkt
PmVudGVyRnVsbFNjcmVlbigpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgQ09NUHRy
PElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOwogICAgIGlmIChTVUNDRUVERUQobV93ZWJWaWV3
LT51aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkpIHsKICAgICAgICAgQ09NUHRyPElXZWJVSURlbGVn
YXRlUHJpdmF0ZTQ+IHVpRGVsZWdhdGVQcml2YXRlNChRdWVyeSwgdWlEZWxlZ2F0ZSk7Ci0gICAg
ICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxlbWVudChBZG9wdENPTSwgRE9NRWxlbWVudDo6
Y3JlYXRlSW5zdGFuY2UoZWxlbWVudCkpOworICAgICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRv
bUVsZW1lbnQoQWRvcHRDT00sIERPTUVsZW1lbnQ6OmNyZWF0ZUluc3RhbmNlKCZlbGVtZW50KSk7
CiAgICAgICAgIGlmICh1aURlbGVnYXRlUHJpdmF0ZTQgJiYgU1VDQ0VFREVEKHVpRGVsZWdhdGVQ
cml2YXRlNC0+ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGRvbUVsZW1lbnQuZ2V0KCkpKSkKICAg
ICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBU1NFUlQoZWxlbWVudCA9PSBtX3dlYlZp
ZXctPmZ1bGxTY3JlZW5FbGVtZW50KCkpOworICAgIEFTU0VSVCgmZWxlbWVudCA9PSBtX3dlYlZp
ZXctPmZ1bGxTY3JlZW5FbGVtZW50KCkpOwogICAgIG1fd2ViVmlldy0+ZnVsbFNjcmVlbkNvbnRy
b2xsZXIoKS0+ZXhpdEZ1bGxTY3JlZW4oKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpBWFN0YXJ0RnJhbWVMb2FkKCkKQEAgLTg1MiwxMCArODU0LDEwIEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpBWEZpbmlzaEZyYW1lTG9hZCgpCiAgICAgICAgIGRlbGVnYXRlLT5maXJl
RnJhbWVMb2FkRmluaXNoZWRFdmVudHMoKTsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNo
b3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcqIGZyYW1lVmll
dykgY29uc3QKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JG
cmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3JiBmcmFtZVZpZXcpIGNvbnN0CiB7CiAjaWYgIVVTRShD
QUlSTykKLSAgICByZXR1cm4gZnJhbWVWaWV3ICYmIGZyYW1lVmlldy0+ZnJhbWUoKS5pc01haW5G
cmFtZSgpOworICAgIHJldHVybiBmcmFtZVZpZXcuZnJhbWUoKS5pc01haW5GcmFtZSgpOwogI2Vs
c2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggOTI4NzJiNDFjMTJmYjMxNWU1
NDFlY2JkYjk1ZGJjYjE1NjYyNzJkYy4uZWY3OTQyMmFhNmYxODhiMjQyMzhiNWFkNGEzZjdkNTdh
ODE0MDk5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKQEAgLTM3LDEzNyArMzcsMTM3IEBAIGNsYXNzIFdlYkRlc2t0b3BOb3Rp
ZmljYXRpb25zRGVsZWdhdGU7CiAKIGludGVyZmFjZSBJV2ViVUlEZWxlZ2F0ZTsKIAotY2xhc3Mg
V2ViQ2hyb21lQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkNocm9tZUNsaWVudCB7CitjbGFzcyBX
ZWJDaHJvbWVDbGllbnQgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6Q2hyb21lQ2xpZW50IHsKIHB1
YmxpYzoKICAgICBXZWJDaHJvbWVDbGllbnQoV2ViVmlldyopOwogCi0gICAgdmlydHVhbCB2b2lk
IGNocm9tZURlc3Ryb3llZCgpOworICAgIHZvaWQgY2hyb21lRGVzdHJveWVkKCkgZmluYWw7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
KTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0KCk7CisgICAgdm9p
ZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIGZpbmFsOworICAgIFdl
YkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgZmluYWw7CiAgICAgCi0gICAgdmlydHVhbCBX
ZWJDb3JlOjpGbG9hdFJlY3QgcGFnZVJlY3QoKTsKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3QgcGFn
ZVJlY3QoKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpOwotICAgIHZpcnR1YWwg
dm9pZCB1bmZvY3VzKCk7CisgICAgdm9pZCBmb2N1cygpIGZpbmFsOworICAgIHZvaWQgdW5mb2N1
cygpIGZpbmFsOwogCi0gICAgdmlydHVhbCBib29sIGNhblRha2VGb2N1cyhXZWJDb3JlOjpGb2N1
c0RpcmVjdGlvbik7Ci0gICAgdmlydHVhbCB2b2lkIHRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0Rp
cmVjdGlvbik7CisgICAgYm9vbCBjYW5UYWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24p
IGZpbmFsOworICAgIHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKSBmaW5h
bDsKIAotICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkRWxlbWVudENoYW5nZWQoV2ViQ29yZTo6RWxl
bWVudCopOwotICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKFdlYkNvcmU6OkZy
YW1lKik7CisgICAgdm9pZCBmb2N1c2VkRWxlbWVudENoYW5nZWQoV2ViQ29yZTo6RWxlbWVudCop
IGZpbmFsOworICAgIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSopIGZp
bmFsOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6
RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6
V2luZG93RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJik7Ci0gICAg
dmlydHVhbCB2b2lkIHNob3coKTsKKyAgICBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2Vi
Q29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2Vi
Q29yZTo6V2luZG93RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikg
ZmluYWw7CisgICAgdm9pZCBzaG93KCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuUnVu
TW9kYWwoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcnVuTW9kYWwoKTsKKyAgICBib29sIGNhblJ1bk1v
ZGFsKCkgZmluYWw7CisgICAgdm9pZCBydW5Nb2RhbCgpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2
b2lkIHNldFRvb2xiYXJzVmlzaWJsZShib29sKTsKLSAgICB2aXJ0dWFsIGJvb2wgdG9vbGJhcnNW
aXNpYmxlKCk7CisgICAgdm9pZCBzZXRUb29sYmFyc1Zpc2libGUoYm9vbCkgZmluYWw7CisgICAg
Ym9vbCB0b29sYmFyc1Zpc2libGUoKSBmaW5hbDsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
U3RhdHVzYmFyVmlzaWJsZShib29sKTsKLSAgICB2aXJ0dWFsIGJvb2wgc3RhdHVzYmFyVmlzaWJs
ZSgpOworICAgIHZvaWQgc2V0U3RhdHVzYmFyVmlzaWJsZShib29sKSBmaW5hbDsKKyAgICBib29s
IHN0YXR1c2JhclZpc2libGUoKSBmaW5hbDsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Ny
b2xsYmFyc1Zpc2libGUoYm9vbCk7Ci0gICAgdmlydHVhbCBib29sIHNjcm9sbGJhcnNWaXNpYmxl
KCk7CisgICAgdm9pZCBzZXRTY3JvbGxiYXJzVmlzaWJsZShib29sKSBmaW5hbDsKKyAgICBib29s
IHNjcm9sbGJhcnNWaXNpYmxlKCkgZmluYWw7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNldE1l
bnViYXJWaXNpYmxlKGJvb2wpOwotICAgIHZpcnR1YWwgYm9vbCBtZW51YmFyVmlzaWJsZSgpOwor
ICAgIHZvaWQgc2V0TWVudWJhclZpc2libGUoYm9vbCkgZmluYWw7CisgICAgYm9vbCBtZW51YmFy
VmlzaWJsZSgpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHNldFJlc2l6YWJsZShib29sKTsK
KyAgICB2b2lkIHNldFJlc2l6YWJsZShib29sKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBh
ZGRNZXNzYWdlVG9Db25zb2xlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWws
IGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25l
ZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFdURjo6U3RyaW5nJiB1cmwpOworICAgIHZvaWQgYWRkTWVz
c2FnZVRvQ29uc29sZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25z
dCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29s
dW1uTnVtYmVyLCBjb25zdCBXVEY6OlN0cmluZyYgdXJsKSBmaW5hbDsKIAotICAgIHZpcnR1YWwg
Ym9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKTsKLSAgICB2aXJ0dWFsIGJvb2wg
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBX
ZWJDb3JlOjpGcmFtZSogZnJhbWUpOworICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsKCkgZmluYWw7CisgICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29u
c3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgY2xvc2VXaW5kb3dTb29uKCk7CisgICAgdm9pZCBjbG9zZVdpbmRvd1Nvb24o
KSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6
RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYpOwotICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2Ny
aXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJik7Ci0gICAgdmly
dHVhbCBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6
OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgV1RGOjpT
dHJpbmcmIHJlc3VsdCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3Qg
V1RGOjpTdHJpbmcmKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFt
ZSYsIGNvbnN0IFdURjo6U3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0Q29u
ZmlybShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdURjo6U3RyaW5nJikgZmluYWw7CisgICAgYm9v
bCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV1RGOjpTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFdURjo6U3RyaW5nJiBy
ZXN1bHQpIGZpbmFsOworICAgIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBXVEY6OlN0cmlu
ZyYpIGZpbmFsOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2Fy
ZFVJTW9kZSgpOworICAgIFdlYkNvcmU6OktleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkg
ZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9v
dFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlk
YXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIGNsaXBSZWN0KTsKKyAgICB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JikgZmluYWw7CisgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmll
dyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CisgICAgdm9pZCBpbnZhbGlkYXRlQ29u
dGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsKKyAgICB2
b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlw
UmVjdCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvUm9v
dFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBjb25zdDsKLSAgICB2aXJ0dWFsIFdlYkNv
cmU6OkludFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29u
c3Q7Ci0gICAgdmlydHVhbCBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkg
Y29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJh
bWUqLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3Q7CisgICAgV2ViQ29yZTo6SW50UG9p
bnQgc2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0IGZpbmFs
OworICAgIFdlYkNvcmU6OkludFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JikgY29uc3QgZmluYWw7CisgICAgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFn
ZUNsaWVudCgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJD
b3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdCBmaW5hbDsKIAotICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0IHsgfQotICAgIHZp
cnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0
UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7Ci0gICAgdmlydHVhbCBib29sIHNob3Vs
ZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVk
T2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3Q7Ci0gICAgdmlydHVhbCB2
b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVtZW50KiwgV2Vi
Q29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBj
b25zdDsKKyAgICB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgZmluYWwgeyB9
CisgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0
UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgZmluYWw7CisgICAgYm9vbCBzaG91bGRV
bmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9i
amVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOworICAgIHZvaWQg
dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQmLCBXZWJDb3Jl
OjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0
IGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgV1RGOjpTdHJpbmcm
LCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKTsKKyAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgV1RG
OjpTdHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKSBmaW5hbDsKIAotICAgIHZpcnR1YWwg
dm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopOworICAgIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJh
bWUmKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2Vi
Q29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYsIFdlYkNvcmU6OkRhdGFiYXNlRGV0YWls
cyk7CisgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUmLCBjb25z
dCBXVEY6OlN0cmluZyYsIFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscykgZmluYWw7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKTsK
LSAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCk7CisgICAgdm9p
ZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpIGZpbmFsOworICAg
IHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiYsIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkgZmluYWw7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6RmlsZUNob29zZXIm
KTsKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpT
dHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXImKTsKKyAgICB2b2lkIHJ1bk9wZW5QYW5l
bChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkZpbGVDaG9vc2VyJikgZmluYWw7CisgICAgdm9p
ZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpG
aWxlSWNvbkxvYWRlciYpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25z
dCBXZWJDb3JlOjpDdXJzb3ImKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50
aWxNb3VzZU1vdmVzKGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRMYXN0U2V0Q3Vyc29yVG9D
dXJyZW50Q3Vyc29yKCk7CisgICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29y
JikgZmluYWw7CisgICAgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkg
ZmluYWw7CisgICAgdm9pZCBzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCkgZmluYWw7
CiAKICAgICAvLyBQYXNzIDAgYXMgdGhlIEdyYXBoaWNzTGF5ZXIgdG8gZGV0YXRjaCB0aGUgcm9v
dCBsYXllci4KLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29y
ZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7Ci0gICAgdm9pZCBhdHRhY2hWaWV3
T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3Jl
OjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKKyAgICB2b2lkIGF0dGFj
aFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBmaW5hbDsKICAgICAvLyBTZXRzIGEgZmxhZyB0byBzcGVjaWZ5IHRoYXQgdGhl
IG5leHQgdGltZSBjb250ZW50IGlzIGRyYXduIHRvIHRoZSB3aW5kb3csCiAgICAgLy8gdGhlIGNo
YW5nZXMgYXBwZWFyIG9uIHRoZSBzY3JlZW4gaW4gc3luY2hyb255IHdpdGggdXBkYXRlcyB0byBH
cmFwaGljc0xheWVycy4KLSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5
bmNocm9uaXphdGlvbigpIHsgfQorICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNo
cm9uaXphdGlvbigpIGZpbmFsIHsgfQogICAgIC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhh
dCB0aGUgdmlldyBuZWVkcyB0byBiZSB1cGRhdGVkLCBzbyB3ZSBuZWVkCiAgICAgLy8gdG8gZG8g
YW4gZWFnZXIgbGF5b3V0IGJlZm9yZSB0aGUgZHJhd2luZy4KLSAgICB2aXJ0dWFsIHZvaWQgc2No
ZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKKyAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRp
bmdMYXllckZsdXNoKCkgZmluYWw7CiAKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShBVkZPVU5E
QVRJT04pCi0gICAgV2ViQ29yZTo6R3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBncmFwaGljc0Rldmlj
ZUFkYXB0ZXIoKSBjb25zdCBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpHcmFwaGljc0RldmljZUFk
YXB0ZXIqIGdyYXBoaWNzRGV2aWNlQWRhcHRlcigpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKLSAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KSBjb25zdCB7IH0KKyAgICB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JikgY29uc3QgZmluYWwgeyB9CiAKICNpZiBFTkFCTEUoVklERU8pCi0gICAgdmlydHVh
bCBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7Ci0gICAgdmlydHVhbCB2b2lkIGVudGVyVmlkZW9G
dWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3Jl
OjpIVE1MVmlkZW9FbGVtZW50Jik7CisgICAgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGZpbmFs
OworICAgIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6
SFRNTFZpZGVvRWxlbWVudCYsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZSkgZmluYWw7CisgICAgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50
KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxF
KE5PVElGSUNBVElPTlMpIHx8IEVOQUJMRShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICB2aXJ0
dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudCogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkg
Y29uc3QgeyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb3RpZmljYXRpb25DbGll
bnQqPihtX25vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5nZXQoKSk7IH0KKyAgICBXZWJDb3JlOjpOb3Rp
ZmljYXRpb25DbGllbnQqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50Kj4obV9ub3Rp
ZmljYXRpb25zRGVsZWdhdGUuZ2V0KCkpOyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOwotICAgIHZpcnR1YWwgYm9vbCBz
ZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7Ci0gICAgdmly
dHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBSZWZQdHI8V2Vi
Q29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50
KikgY29uc3Q7Ci0gICAgdmlydHVhbCBSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBj
cmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7Cisg
ICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIGZpbmFsOworICAg
IGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpIGZp
bmFsOworICAgIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8
V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xp
ZW50JikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4g
Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYpIGNvbnN0IGZp
bmFsOwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqLCBib29sIHdp
dGhLZXlib2FyZCk7Ci0gICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQo
V2ViQ29yZTo6RWxlbWVudCopOwotICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVs
ZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOworICAgIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9y
RWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50JiwgYm9vbCB3aXRoS2V5Ym9hcmQpIGZpbmFs
OworICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Jikg
ZmluYWw7CisgICAgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVu
dCYpIGZpbmFsOwogI2VuZGlmCiAKLSAgICB2b2lkIHdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQo
Ym9vbCkgb3ZlcnJpZGUgeyB9CisgICAgdm9pZCB3aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKGJv
b2wpIGZpbmFsIHsgfQogCiAgICAgV2ViVmlldyogd2ViVmlldygpIHsgcmV0dXJuIG1fd2ViVmll
dzsgfQogCi0gICAgdmlydHVhbCB2b2lkIEFYU3RhcnRGcmFtZUxvYWQoKTsKLSAgICB2aXJ0dWFs
IHZvaWQgQVhGaW5pc2hGcmFtZUxvYWQoKTsKKyAgICB2b2lkIEFYU3RhcnRGcmFtZUxvYWQoKSBm
aW5hbDsKKyAgICB2b2lkIEFYRmluaXNoRnJhbWVMb2FkKCkgZmluYWw7CiAKLSAgICBib29sIHNo
b3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBXZWJDb3JlOjpGcmFtZVZpZXcq
KSBjb25zdCBvdmVycmlkZTsKKyAgICBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1l
Vmlldyhjb25zdCBXZWJDb3JlOjpGcmFtZVZpZXcmKSBjb25zdCBmaW5hbDsKIAogcHJpdmF0ZToK
ICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdhdGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUu
Y3BwCmluZGV4IGUxMTU1MjkxMDY0NzAxYjg4YjdiMzJhYmNkMWYyZTY1NDMzZTI4OWUuLjQyMWM3
NDU3YzkwM2I0N2UyZTFhN2I0ODg5ODgxZjU3YzMwZWFjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNw
cApAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5n
VHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlECiAgICAgbV9zY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9k
ZUlELCBzY3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CiB9CiAK
LVBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0
ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdO
b2RlSUQgbm9kZUlEKQorUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVl
OjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Ny
b2xsaW5nTm9kZUlEIG5vZGVJRCkKIHsKICAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2Fz
ZSBGcmFtZVNjcm9sbGluZ05vZGU6CkBAIC0xMjQsMTQgKzEyNCwxNSBAQCBQYXNzUmVmUHRyPFNj
cm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVl
Tm9kZShTY3JvbAogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZUlPUzo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogI2Vsc2UKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBicmVhazsKICNl
bmRpZgogICAgIGNhc2UgRml4ZWROb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZp
eGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIGNhc2UgU3RpY2t5Tm9kZToKICAg
ICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJ
RCk7CiAgICAgfQotICAgIHJldHVybiBudWxscHRyOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJ
RCk7CiB9CiAKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3VycmVudFNuYXBQb2ludEluZGlj
ZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwg
dW5zaWduZWQgdmVydGljYWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
U2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCmluZGV4IGQ2NWIyZjVlZDZkZGY1N2Vj
NDQwZGY0OTBkMmUxMTY4YzhlYzA1YzkuLjczMThjY2M4MTRjYTU3MTZkYzcwYzI0YjZjNDQxNzhk
MjU2Y2RhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcv
UmVtb3RlU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3Jv
bGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBjbGFzcyBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OwogCi1jbGFz
cyBSZW1vdGVTY3JvbGxpbmdUcmVlIDogcHVibGljIFdlYkNvcmU6OlNjcm9sbGluZ1RyZWUgewor
Y2xhc3MgUmVtb3RlU2Nyb2xsaW5nVHJlZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlbW90ZVNjcm9sbGluZ1RyZWU+IGNy
ZWF0ZShSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Jik7CiAgICAgdmlydHVhbCB+UmVt
b3RlU2Nyb2xsaW5nVHJlZSgpOwpAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
c2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRTY3JvbGwoKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAg
UGFzc1JlZlB0cjxXZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJl
ZU5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZVR5cGUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJ
RCkgb3ZlcnJpZGU7CisgICAgUmVmPFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVT
Y3JvbGxpbmdUcmVlTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlVHlwZSwgV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKICAgICAKICAgICBSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5JiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2UuY3BwCmluZGV4IDgwNTlhZDU1YWFlMzJmOGU1M2E3MDE5YjUyODdlZThiMDk0
MGI5MTQuLmE3OWQxMGE5ZDUwNzcxMDQ1Y2U1ODMwZWE1NzM3NGM4NDE4NTYyN2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAgLTM2OCwyMiArMzY4LDIyIEBAIFdLQnVuZGxlQmFj
a0ZvcndhcmRMaXN0UmVmIFdLQnVuZGxlUGFnZUdldEJhY2tGb3J3YXJkTGlzdChXS0J1bmRsZVBh
Z2VSZWYgcGFnZVJlCiAKIHZvaWQgV0tCdW5kbGVQYWdlSW5zdGFsbFBhZ2VPdmVybGF5KFdLQnVu
ZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRsZVBhZ2VPdmVybGF5UmVmIHBhZ2VPdmVybGF5UmVm
KQogewotICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSh0b0ltcGwocGFnZU92ZXJsYXlSZWYpLT5jb3JlT3Zl
cmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAg
dG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5z
dGFsbFBhZ2VPdmVybGF5KCp0b0ltcGwocGFnZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBX
ZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiB9CiAKIHZvaWQgV0tC
dW5kbGVQYWdlVW5pbnN0YWxsUGFnZU92ZXJsYXkoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdL
QnVuZGxlUGFnZU92ZXJsYXlSZWYgcGFnZU92ZXJsYXlSZWYpCiB7Ci0gICAgdG9JbXBsKHBhZ2VS
ZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92
ZXJsYXkodG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6UGFn
ZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgIHRvSW1wbChwYWdlUmVmKS0+bWFp
bkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCp0
b0ltcGwocGFnZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3Zlcmxh
eTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlSW5zdGFsbFBh
Z2VPdmVybGF5V2l0aEFuaW1hdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQ
YWdlT3ZlcmxheVJlZiBwYWdlT3ZlcmxheVJlZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPm1h
aW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkodG9J
bXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6
OkZhZGVNb2RlOjpGYWRlKTsKKyAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgpLT5wYWdl
T3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkoKnRvSW1wbChwYWdlT3Zlcmxh
eVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFk
ZSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlVW5pbnN0YWxsUGFnZU92ZXJsYXlXaXRoQW5pbWF0
aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRsZVBhZ2VPdmVybGF5UmVmIHBhZ2VP
dmVybGF5UmVmKQogewotICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVy
bGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KHRvSW1wbChwYWdlT3ZlcmxheVJl
ZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7
CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVy
KCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKnRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVy
bGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CiB9CiAKIHZvaWQg
V0tCdW5kbGVQYWdlU2V0VG9wT3ZlcmhhbmdJbWFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwg
V0tJbWFnZVJlZiBpbWFnZVJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQppbmRleCA4NTA5YWU2
NTAyNGQ0ZWU1OTJlZDEyNWExMjEyMTQwZjA3ZmNlMzFlLi40MWViMDM5NDZmYTlhNGFhZmQwZjhm
MTYwOWJjMTNmMzc1N2Y5NWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCkBAIC04NjAsNyAr
ODYwLDcgQEAgSlNWYWx1ZVJlZiBQREZQbHVnaW46OmpzUERGRG9jUHJpbnQoSlNDb250ZXh0UmVm
IGN0eCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2IKICAgICBpZiAoIXBhZ2UpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjdHgpOwogCi0gICAgcGFnZS0+Y2hyb21lKCku
cHJpbnQoY29yZUZyYW1lKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5wcmludCgqY29yZUZyYW1lKTsK
IAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjdHgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDU2MmE5YTJl
MTU3YzQzYzVkZTc1YzNmNzI1NjMxMmRmZTRlMTU3YmMuLmQ5YTQyODg2MWJlYzU2NDUzYTdmMGNl
MTNkM2JmOTg5MWYzZDk5MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTExMjgsNyArMTEyOCw3IEBAIHZvaWQgUGx1Z2luVmll
dzo6Zm9jdXNQbHVnaW5FbGVtZW50KCkKICAgICBBU1NFUlQoZnJhbWUoKSk7CiAgICAgCiAgICAg
aWYgKFBhZ2UqIHBhZ2UgPSBmcmFtZSgpLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG1fcGx1Z2luRWxlbWVudC5nZXQoKSwgZnJhbWUo
KSk7CisgICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG1f
cGx1Z2luRWxlbWVudC5nZXQoKSwgKmZyYW1lKCkpOwogICAgIGVsc2UKICAgICAgICAgZnJhbWUo
KS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZEVsZW1lbnQobV9wbHVnaW5FbGVtZW50LmdldCgpKTsK
IH0KQEAgLTE1MDgsNyArMTUwOCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0U3RhdHVzYmFyVGV4
dChjb25zdCBTdHJpbmcmIHN0YXR1c2JhclRleHQpCiAgICAgaWYgKCFwYWdlKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJUZXh0KGZyYW1lKCksIHN0
YXR1c2JhclRleHQpOworICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQoKmZyYW1l
KCksIHN0YXR1c2JhclRleHQpOwogfQogCiBib29sIFBsdWdpblZpZXc6OmlzQWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0VuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDQ5ODM0YzNh
MzBlYmY5MjE1ZTlmNTRlOTFkY2IyNGVhMTNmOTRjZWQuLmE4ZGZkZmM5NTMwZWUwNmYzMWM4ZjVi
MTRmZDY3MmZmZTI0YjIzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEwMyw3ICsx
MDMsNiBAQCBzdGF0aWMgZG91YmxlIGFyZWEoV2ViRnJhbWUqIGZyYW1lKQogICAgIHJldHVybiBz
dGF0aWNfY2FzdDxkb3VibGU+KHNpemUuaGVpZ2h0KCkpICogc2l6ZS53aWR0aCgpOwogfQogCi0K
IHN0YXRpYyBXZWJGcmFtZSogZmluZExhcmdlc3RGcmFtZUluRnJhbWVTZXQoV2ViUGFnZSYgcGFn
ZSkKIHsKICAgICAvLyBBcHByb3hpbWF0ZSB3aGF0IGEgdXNlciBjb3VsZCBjb25zaWRlciBhIGRl
ZmF1bHQgdGFyZ2V0IGZyYW1lIGZvciBhcHBsaWNhdGlvbiBtZW51IG9wZXJhdGlvbnMuCkBAIC0x
NzksMjAgKzE3OCwyMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6dW5mb2N1cygpCiB9CiAKICNp
ZiBQTEFURk9STShDT0NPQSkKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9jdXMo
Y29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1l
bnREaWRGb2N1cyhXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50KQogewotICAgIG1fcGFnZS5lbGVt
ZW50RGlkRm9jdXMoY29uc3RfY2FzdDxXZWJDb3JlOjpOb2RlKj4obm9kZSkpOworICAgIG1fcGFn
ZS5lbGVtZW50RGlkRm9jdXMoJmVsZW1lbnQpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6
ZWxlbWVudERpZEJsdXIoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50OjplbGVtZW50RGlkQmx1cihXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50KQogewotICAg
IG1fcGFnZS5lbGVtZW50RGlkQmx1cihjb25zdF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihub2RlKSk7
CisgICAgbV9wYWdlLmVsZW1lbnREaWRCbHVyKCZlbGVtZW50KTsKIH0KIAogdm9pZCBXZWJDaHJv
bWVDbGllbnQ6Om1ha2VGaXJzdFJlc3BvbmRlcigpCiB7CiAgICAgbV9wYWdlLnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6TWFrZUZpcnN0UmVzcG9uZGVyKCkpOwotfSAgICAKK30KKwogI2Vu
ZGlmICAgIAogCiBib29sIFdlYkNocm9tZUNsaWVudDo6Y2FuVGFrZUZvY3VzKEZvY3VzRGlyZWN0
aW9uKQpAQCAtMjI3LDE2ICsyMjgsMTYgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRG
cmFtZUNoYW5nZWQoRnJhbWUqIGZyYW1lKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBh
cmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Rm9j
dXNlZEZyYW1lQ2hhbmdlZCh3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAwKSwgbV9w
YWdlLnBhZ2VJRCgpKTsKIH0KIAotUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3co
RnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXaW5k
b3dGZWF0dXJlcyYgd2luZG93RmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmln
YXRpb25BY3Rpb24pCitQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYg
ZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1
cmVzJiB3aW5kb3dGZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFj
dGlvbikKIHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgaWYgKGZyYW1lLT5kb2N1
bWVudCgpICYmIGZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1l
bnQoKSkKLSAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4o
KTsKKyAgICBpZiAoZnJhbWUuZG9jdW1lbnQoKSAmJiBmcmFtZS5kb2N1bWVudCgpLT53ZWJraXRD
dXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkKKyAgICAgICAgZnJhbWUuZG9jdW1lbnQoKS0+d2Vi
a2l0Q2FuY2VsRnVsbFNjcmVlbigpOwogI2VuZGlmCiAKICAgICBhdXRvJiB3ZWJQcm9jZXNzID0g
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCk7CiAKLSAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJG
cmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdl
YkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKIAogICAgIE5hdmlnYXRpb25BY3Rpb25EYXRh
IG5hdmlnYXRpb25BY3Rpb25EYXRhOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLm5hdmlnYXRp
b25UeXBlID0gbmF2aWdhdGlvbkFjdGlvbi50eXBlKCk7CkBAIC0yNTAsNyArMjUxLDcgQEAgUGFn
ZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFt
ZUxvYWRSZXF1ZXN0JiByZXF1ZXMKIAogICAgIHVpbnQ2NF90IG5ld1BhZ2VJRCA9IDA7CiAgICAg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwotICAgIGlmICghd2ViUHJvY2Vz
cy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpDcmVhdGVOZXdQYWdlKHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0
YTo6ZnJvbUZyYW1lKGZyYW1lKSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgd2luZG93RmVh
dHVyZXMsIG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3Jl
YXRlTmV3UGFnZTo6UmVwbHkobmV3UGFnZUlELCBwYXJhbWV0ZXJzKSwgbV9wYWdlLnBhZ2VJRCgp
KSkKKyAgICBpZiAoIXdlYlByb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5
bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZSh3ZWJGcmFtZS0+ZnJhbWVJ
RCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCByZXF1ZXN0LnJlc291
cmNlUmVxdWVzdCgpLCB3aW5kb3dGZWF0dXJlcywgbmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpSZXBseShuZXdQYWdlSUQsIHBhcmFt
ZXRlcnMpLCBtX3BhZ2UucGFnZUlEKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAg
IGlmICghbmV3UGFnZUlEKQpAQCAtMzYxLDkgKzM2Miw5IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50
OjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKQogICAgIHJldHVybiBtX3BhZ2UuY2Fu
UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCk7CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50
OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFt
ZSogZnJhbWUpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmIGZyYW1lKQogewotICAgIFdlYkZyYW1l
KiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJh
bWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogCiAgICAgYm9v
bCBzaG91bGRDbG9zZSA9IGZhbHNlOwogCkBAIC00MDIsMTIgKzQwMywxMiBAQCBzdGF0aWMgYm9v
bCBzaG91bGRTdXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKEZyYW1lJiBmcmFtZSkKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQo
RnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGFsZXJ0VGV4dCkKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIGFsZXJ0
VGV4dCkKIHsKLSAgICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncygqZnJhbWUp
KQorICAgIGlmIChzaG91bGRTdXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKGZyYW1lKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3Jl
RnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNv
cmVGcmFtZShmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogICAgIC8vIE5vdGlmeSB0
aGUgYnVuZGxlIGNsaWVudC4KQEAgLTQxNSwxNSArNDE2LDE1IEBAIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGFsZXJ0
VGV4dCkKIAogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlzYWJsZXI7
CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQod2Vi
RnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoZnJhbWUpLCBh
bGVydFRleHQpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OlJl
cGx5KCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3lu
Y09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpOworICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydCh3ZWJGcmFtZS0+ZnJhbWVJRCgp
LCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBhbGVydFRleHQpLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OlJlcGx5KCksIG1fcGFnZS5w
YWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3Jt
UGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6
cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
Citib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmIGZyYW1l
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgaWYgKHNob3VsZFN1cHByZXNzSmF2YVNj
cmlwdERpYWxvZ3MoKmZyYW1lKSkKKyAgICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlh
bG9ncyhmcmFtZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFdlYkZyYW1lKiB3ZWJG
cmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdl
YkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJG
cmFtZSk7CiAKICAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCkBAIC00MzIsMTggKzQz
MywxOCBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUq
IGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVy
IGhhbmdEZXRlY3Rpb25EaXNhYmxlcjsKIAogICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAg
aWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3ZWJG
cmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIG1l
c3NhZ2UpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6UmVw
bHkocmVzdWx0KSwgbV9wYWdlLnBhZ2VJRCgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNl
bmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCkpCisgICAgaWYg
KCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
U3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3ZWJGcmFt
ZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBtZXNz
YWdlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OlJlcGx5
KHJlc3VsdCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5k
U3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIFdlYkNocm9tZUNs
aWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQorYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmIGZyYW1lLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3Vs
dCkKIHsKLSAgICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncygqZnJhbWUpKQor
ICAgIGlmIChzaG91bGRTdXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKGZyYW1lKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21D
b3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJv
bUNvcmVGcmFtZShmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogICAgIC8vIE5vdGlm
eSB0aGUgYnVuZGxlIGNsaWVudC4KQEAgLTQ1MSw3ICs0NTIsNyBAQCBib29sIFdlYkNocm9tZUNs
aWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgYwogCiAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxl
cjsKIAotICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFBy
b21wdCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShm
cmFtZSksIG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1
bkphdmFTY3JpcHRQcm9tcHQ6OlJlcGx5KHJlc3VsdCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25k
czo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNz
V2lsbFN1c3BlbmQpKQorICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2
YVNjcmlwdFByb21wdCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZy
b21GcmFtZSgmZnJhbWUpLCBtZXNzYWdlLCBkZWZhdWx0VmFsdWUpLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpSZXBseShyZXN1bHQpLCBtX3BhZ2UucGFnZUlE
KCksIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRm
b3JtUHJvY2Vzc1dpbGxTdXNwZW5kKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0
dXJuICFyZXN1bHQuaXNOdWxsKCk7CkBAIC01NTYsNyArNTU3LDcgQEAgUGxhdGZvcm1QYWdlQ2xp
ZW50IFdlYkNocm9tZUNsaWVudDo6cGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QKICAgICByZXR1
cm4gMDsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJh
bWUqIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXpl
KSBjb25zdAogewogICAgIGlmICghbV9wYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZnJhbWVG
bGF0dGVuaW5nRW5hYmxlZCgpKSB7CiAgICAgICAgIFdlYkZyYW1lKiBsYXJnZXN0RnJhbWUgPSBm
aW5kTGFyZ2VzdEZyYW1lSW5GcmFtZVNldChtX3BhZ2UpOwpAQCAtNTY2LDE0ICs1NjcsMTQgQEAg
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZyYW1lLCBj
b25zdCBJbnRTaXplJiBzaXplKSBjb24KICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICgmZnJh
bWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkgIT0gZnJhbWUpCisgICAgaWYgKCZmcmFtZS5wYWdlKCkt
Pm1haW5GcmFtZSgpICE9ICZmcmFtZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wYWdlLnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlQ29udGVudFNpemUoc2l6ZSkpOwog
CiAgICAgbV9wYWdlLmRyYXdpbmdBcmVhKCktPm1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChz
aXplKTsKIAotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZnJhbWUtPnZpZXcoKTsKKyAgICBG
cmFtZVZpZXcqIGZyYW1lVmlldyA9IGZyYW1lLnZpZXcoKTsKICAgICBpZiAoZnJhbWVWaWV3ICYm
ICFmcmFtZVZpZXctPmRlbGVnYXRlc1Njcm9sbGluZygpKSAgewogICAgICAgICBib29sIGhhc0hv
cml6b250YWxTY3JvbGxiYXIgPSBmcmFtZVZpZXctPmhvcml6b250YWxTY3JvbGxiYXIoKTsKICAg
ICAgICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhciA9IGZyYW1lVmlldy0+dmVydGljYWxTY3Jv
bGxiYXIoKTsKQEAgLTYxMSwyMSArNjEyLDIxIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91
bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihSZW5kZXJFbWJlZGRlZE9iamVjCiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogICAgIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuYXZhaWxh
YmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJFbWJlZGRlZE9i
amVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFz
b24pIGNvbnN0Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25D
bGlja2VkKEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2
YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QKIHsKICNp
ZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICBBU1NFUlQoZWxlbWVudC0+aGFzVGFn
TmFtZShvYmplY3RUYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoZW1iZWRUYWcpIHx8IGVsZW1l
bnQtPmhhc1RhZ05hbWUoYXBwbGV0VGFnKSk7CisgICAgQVNTRVJUKGVsZW1lbnQuaGFzVGFnTmFt
ZShvYmplY3RUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC5o
YXNUYWdOYW1lKGFwcGxldFRhZykpOwogICAgIEFTU0VSVChwbHVnaW5VbmF2YWlsYWJpbGl0eVJl
YXNvbiA9PSBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luTWlzc2luZyB8fCBwbHVnaW5VbmF2
YWlsYWJpbGl0eVJlYXNvbiA9PSBSZW5kZXJFbWJlZGRlZE9iamVjdDo6SW5zZWN1cmVQbHVnaW5W
ZXJzaW9uIHx8IHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKTsKIAotICAgIEhUTUxQbHVnSW5J
bWFnZUVsZW1lbnQqIHBsdWdpbkVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50Kj4oZWxlbWVudCk7CisgICAgYXV0byYgcGx1Z2luRWxlbWVudCA9IGRvd25jYXN0PEhU
TUxQbHVnSW5JbWFnZUVsZW1lbnQ+KGVsZW1lbnQpOwogCi0gICAgU3RyaW5nIGZyYW1lVVJMU3Ry
aW5nID0gcGx1Z2luRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVu
dExvYWRlcigpLT5yZXNwb25zZVVSTCgpLnN0cmluZygpOworICAgIFN0cmluZyBmcmFtZVVSTFN0
cmluZyA9IHBsdWdpbkVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVu
dExvYWRlcigpLT5yZXNwb25zZVVSTCgpLnN0cmluZygpOwogICAgIFN0cmluZyBwYWdlVVJMU3Ry
aW5nID0gbV9wYWdlLm1haW5GcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNw
b25zZVVSTCgpLnN0cmluZygpOwotICAgIFN0cmluZyBwbHVnaW5VUkxTdHJpbmcgPSBwbHVnaW5F
bGVtZW50LT5kb2N1bWVudCgpLmNvbXBsZXRlVVJMKHBsdWdpbkVsZW1lbnQtPnVybCgpKS5zdHJp
bmcoKTsKLSAgICBVUkwgcGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkwgPSBlbGVtZW50LT5kb2N1bWVu
dCgpLmNvbXBsZXRlVVJMKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhwbHVnaW5F
bGVtZW50LT5nZXRBdHRyaWJ1dGUocGx1Z2luc3BhZ2VBdHRyKSkpOworICAgIFN0cmluZyBwbHVn
aW5VUkxTdHJpbmcgPSBwbHVnaW5FbGVtZW50LmRvY3VtZW50KCkuY29tcGxldGVVUkwocGx1Z2lu
RWxlbWVudC51cmwoKSkuc3RyaW5nKCk7CisgICAgVVJMIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJM
ID0gcGx1Z2luRWxlbWVudC5kb2N1bWVudCgpLmNvbXBsZXRlVVJMKHN0cmlwTGVhZGluZ0FuZFRy
YWlsaW5nSFRNTFNwYWNlcyhwbHVnaW5FbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6
YXRpb24ocGx1Z2luc3BhZ2VBdHRyKSkpOwogICAgIGlmICghcGx1Z2luc3BhZ2VBdHRyaWJ1dGVV
UkwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKQogICAgICAgICBwbHVnaW5zcGFnZUF0dHJpYnV0
ZVVSTCA9IFVSTCgpOwotICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlVu
YXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwg
cGx1Z2luRWxlbWVudC0+c2VydmljZVR5cGUoKSwgcGx1Z2luVVJMU3RyaW5nLCBwbHVnaW5zcGFn
ZUF0dHJpYnV0ZVVSTC5zdHJpbmcoKSwgZnJhbWVVUkxTdHJpbmcsIHBhZ2VVUkxTdHJpbmcpKTsK
KyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpVbmF2YWlsYWJsZVBsdWdp
bkJ1dHRvbkNsaWNrZWQocGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIHBsdWdpbkVsZW1lbnQu
c2VydmljZVR5cGUoKSwgcGx1Z2luVVJMU3RyaW5nLCBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTC5z
dHJpbmcoKSwgZnJhbWVVUkxTdHJpbmcsIHBhZ2VVUkxTdHJpbmcpKTsKICNlbHNlCiAgICAgVU5V
U0VEX1BBUkFNKGVsZW1lbnQpOwogICAgIFVOVVNFRF9QQVJBTShwbHVnaW5VbmF2YWlsYWJpbGl0
eVJlYXNvbik7CkBAIC02NjAsOSArNjYxLDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRv
b2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlwLCBUZXh0RGlyZWN0aW9uKQogICAgIG1fcGFnZS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFRvb2xUaXAobV9jYWNoZWRUb29sVGlwKSk7
CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSogZnJhbWUpCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUmIGZyYW1lKQogewotICAgIFdlYkZyYW1lKiB3ZWJG
cmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdl
YkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJG
cmFtZSk7CiAKICNpZiBQTEFURk9STShHVEspICYmIEhBVkUoR1RLX1VOSVhfUFJJTlRJTkcpCkBA
IC02ODgsMTIgKzY4OSwxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZy
YW1lKQogICAgIG1fcGFnZS5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQcmludEZy
YW1lKHdlYkZyYW1lLT5mcmFtZUlEKCkpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQcmludEZy
YW1lOjpSZXBseSgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJ
bmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRh
dGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzIGRldGFpbHMpCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRh
YmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscyBkZXRhaWxzKQogewotICAgIFdlYkZyYW1lKiB3ZWJG
cmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdl
YkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJG
cmFtZSk7CiAgICAgCi0gICAgYXV0byYgb3JpZ2luID0gZnJhbWUtPmRvY3VtZW50KCktPnNlY3Vy
aXR5T3JpZ2luKCk7CisgICAgYXV0byYgb3JpZ2luID0gZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKTsKICAgICBhdXRvIG9yaWdpbkRhdGEgPSBTZWN1cml0eU9yaWdpbkRhdGE6OmZy
b21TZWN1cml0eU9yaWdpbihvcmlnaW4pOwogICAgIGF1dG8mIHRyYWNrZXIgPSBEYXRhYmFzZVRy
YWNrZXI6OnNpbmdsZXRvbigpOwogICAgIGF1dG8gY3VycmVudFF1b3RhID0gdHJhY2tlci5xdW90
YShvcmlnaW5EYXRhKTsKQEAgLTcxNiw5ICs3MTcsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6
cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90KQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGludDY0X3QgdG90YWxCeXRlc05lZWRlZCkKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNl
Y3VyaXR5T3JpZ2luJiBvcmlnaW4sIGludDY0X3QgdG90YWxCeXRlc05lZWRlZCkKIHsKLSAgICBS
ZWZQdHI8QVBJOjpTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4gPSBBUEk6OlNlY3VyaXR5
T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG9yaWdpbi0+dG9TdHJpbmcoKSk7CisgICAgUmVmUHRy
PEFQSTo6U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdp
bjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW4udG9TdHJpbmcoKSk7CiAgICAgaWYgKG1fcGFnZS5p
bmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkuZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEoJm1fcGFnZSwgc2VjdXJpdHlPcmlnaW4uZ2V0KCksIHRvdGFsQnl0ZXNOZWVkZWQpKQogICAg
ICAgICByZXR1cm47CiAKQEAgLTcyOSwxNyArNzMwLDE5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4sCiAKICAgICB1aW50NjRfdCBuZXdRdW90YSA9IDA7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoCi0gICAgICAgIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKm9yaWdpbikuZGF0
YWJhc2VJZGVudGlmaWVyKCksIGN1cnJlbnRRdW90YSwgdG90YWxCeXRlc05lZWRlZCksCisgICAg
ICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2lu
UXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3Jp
Z2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSwgY3VycmVudFF1b3RhLCB0b3RhbEJ5dGVzTmVlZGVk
KSwKICAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YTo6UmVwbHkobmV3UXVvdGEpLCBtX3BhZ2UucGFnZUlEKCksIFNlY29uZHM6
OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dp
bGxTdXNwZW5kKTsKIAotICAgIGNhY2hlU3RvcmFnZS5zdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdp
bihvcmlnaW4sIG5ld1F1b3RhKTsKKyAgICBjYWNoZVN0b3JhZ2Uuc3RvcmVVcGRhdGVkUXVvdGFG
b3JPcmlnaW4oJm9yaWdpbiwgbmV3UXVvdGEpOwogfQogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9T
VVBQT1JUKQorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6YW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQo
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CisKICNlbmRpZgogCiBib29sIFdlYkNocm9t
ZUNsaWVudDo6c2hvdWxkUmVwbGFjZVdpdGhHZW5lcmF0ZWRGaWxlRm9yVXBsb2FkKGNvbnN0IFN0
cmluZyYgcGF0aCwgU3RyaW5nJiBnZW5lcmF0ZWRGaWxlbmFtZSkKQEAgLTc1NCwxMCArNzU3LDEy
IEBAIFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6OmdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNvbnN0
IFN0cmluZyYgcGF0aCkKIH0KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotc3RkOjp1
bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29z
ZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3Ip
CisKK3N0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRl
Q29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCYgY2xpZW50LCBjb25zdCBDb2xvciYgaW5p
dGlhbENvbG9yKQogewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvbG9yQ2hvb3Nl
cj4oJm1fcGFnZSwgY2xpZW50LCBpbml0aWFsQ29sb3IpOworICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYkNvbG9yQ2hvb3Nlcj4oJm1fcGFnZSwgJmNsaWVudCwgaW5pdGlhbENvbG9yKTsK
IH0KKwogI2VuZGlmCiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUm
IGZyYW1lLCBGaWxlQ2hvb3NlciYgZmlsZUNob29zZXIpCkBAIC04MzIsMTQgKzgzNywxNCBAQCBi
b29sIFdlYkNocm9tZUNsaWVudDo6aGFzT3BlbmVkUG9wdXAoKSBjb25zdAogICAgIHJldHVybiBm
YWxzZTsKIH0KIAotUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50Ojpj
cmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitS
ZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVu
dShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKLSAgICByZXR1cm4g
V2ViUG9wdXBNZW51OjpjcmVhdGUoJm1fcGFnZSwgY2xpZW50KTsKKyAgICByZXR1cm4gV2ViUG9w
dXBNZW51OjpjcmVhdGUoJm1fcGFnZSwgJmNsaWVudCk7CiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdl
YkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUmVmUHRyPFdlYkNvcmU6OlNl
YXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2Vi
Q29yZTo6UG9wdXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdlYlNl
YXJjaFBvcHVwTWVudTo6Y3JlYXRlKCZtX3BhZ2UsIGNsaWVudCk7CisgICAgcmV0dXJuIFdlYlNl
YXJjaFBvcHVwTWVudTo6Y3JlYXRlKCZtX3BhZ2UsICZjbGllbnQpOwogfQogCiBHcmFwaGljc0xh
eWVyRmFjdG9yeSogV2ViQ2hyb21lQ2xpZW50OjpncmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0
CkBAIC04NTgsNyArODYzLDcgQEAgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRv
cj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbmkKIAogI2VuZGlmCiAK
LXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdy
YXBoaWNzTGF5ZXIqIGxheWVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFw
aGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciogbGF5ZXIpCiB7CiAgICAgaWYgKGxheWVy
KQogICAgICAgICBtX3BhZ2UuZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllcik7
CkBAIC04NjYsMTAgKzg3MSwxMCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdy
YXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKiBsYXllcikKICAgICAgICAgbV9wYWdl
LmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwogfQogCi12b2lkIFdlYkNocm9tZUNs
aWVudDo6YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhp
Y3NMYXllciogZ3JhcGhpY3NMYXllcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3
T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUmIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGlj
c0xheWVyKQogewogICAgIGlmIChhdXRvIGRyYXdpbmdBcmVhID0gbV9wYWdlLmRyYXdpbmdBcmVh
KCkpCi0gICAgICAgIGRyYXdpbmdBcmVhLT5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIo
ZnJhbWUsIGdyYXBoaWNzTGF5ZXIpOworICAgICAgICBkcmF3aW5nQXJlYS0+YXR0YWNoVmlld092
ZXJsYXlHcmFwaGljc0xheWVyKCZmcmFtZSwgZ3JhcGhpY3NMYXllcik7CiB9CiAKIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkKQEAg
LTg5OCw5ICs5MDMsOSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6bGF5ZXJUcmVlU3RhdGVJc0Zy
b3plbigpIGNvbnN0CiAKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogCi1QYXNzUmVmUHRy
PFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yKFBhZ2UqIHBhZ2UpIGNvbnN0CitSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+
IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSYgcGFnZSkg
Y29uc3QKIHsKLSAgICBBU1NFUlQobV9wYWdlLmNvcmVQYWdlKCkgPT0gcGFnZSk7CisgICAgQVNT
RVJUX1VOVVNFRChwYWdlLCBtX3BhZ2UuY29yZVBhZ2UoKSA9PSAmcGFnZSk7CiAgICAgaWYgKG1f
cGFnZS5kcmF3aW5nQXJlYSgpLT50eXBlKCkgIT0gRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJU
cmVlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3I6OmNyZWF0ZSgmbV9wYWdlKTsKQEAgLTk0OSwxOSArOTU0LDE5IEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlv
bihXZWJDb3JlOjpIVE1MVmlkCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKLWJvb2wg
V2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNv
cmU6OkVsZW1lbnQqLCBib29sIHdpdGhLZXlib2FyZCkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50Ojpz
dXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmLCBib29s
IHdpdGhLZXlib2FyZCkKIHsKICAgICByZXR1cm4gbV9wYWdlLmZ1bGxTY3JlZW5NYW5hZ2VyKCkt
PnN1cHBvcnRzRnVsbFNjcmVlbih3aXRoS2V5Ym9hcmQpOwogfQogCi12b2lkIFdlYkNocm9tZUNs
aWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50
KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29y
ZTo6RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+
ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsKKyAgICBtX3BhZ2UuZnVsbFNjcmVl
bk1hbmFnZXIoKS0+ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCgmZWxlbWVudCk7CiB9CiAKLXZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxl
bWVudCogZWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVs
ZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBtX3BhZ2UuZnVsbFNjcmVl
bk1hbmFnZXIoKS0+ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOworICAgIG1fcGFn
ZS5mdWxsU2NyZWVuTWFuYWdlcigpLT5leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoJmVsZW1lbnQp
OwogfQogCiAjZW5kaWYKQEAgLTEwNDksMjkgKzEwNTQsMjkgQEAgdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpCiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6
OldlYlByb2Nlc3NQcm94eTo6RGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkpOwogfQogCi12b2lk
IFdlYkNocm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXllciogaGVhZGVy
UGFyZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEhlYWRlckxheWVyKEdyYXBoaWNz
TGF5ZXImIGhlYWRlclBhcmVudCkKIHsKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAg
aWYgKFBhZ2VCYW5uZXIqIGJhbm5lciA9IG1fcGFnZS5oZWFkZXJQYWdlQmFubmVyKCkpCi0gICAg
ICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50TGF5ZXIoaGVhZGVyUGFyZW50KTsKKyAgICAgICAgYmFu
bmVyLT5kaWRBZGRQYXJlbnRMYXllcigmaGVhZGVyUGFyZW50KTsKICNlbHNlCiAgICAgVU5VU0VE
X1BBUkFNKGhlYWRlclBhcmVudCk7CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmRpZEFkZEZvb3RlckxheWVyKEdyYXBoaWNzTGF5ZXIqIGZvb3RlclBhcmVudCkKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpkaWRBZGRGb290ZXJMYXllcihHcmFwaGljc0xheWVyJiBmb290ZXJQYXJl
bnQpCiB7CiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIGlmIChQYWdlQmFubmVyKiBi
YW5uZXIgPSBtX3BhZ2UuZm9vdGVyUGFnZUJhbm5lcigpKQotICAgICAgICBiYW5uZXItPmRpZEFk
ZFBhcmVudExheWVyKGZvb3RlclBhcmVudCk7CisgICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50
TGF5ZXIoJmZvb3RlclBhcmVudCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShmb290ZXJQYXJl
bnQpOwogI2VuZGlmCiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVc2VUaWxlZEJh
Y2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3KiBmcmFtZVZpZXcpIGNvbnN0Citib29s
IFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0
IEZyYW1lVmlldyYgZnJhbWVWaWV3KSBjb25zdAogewotICAgIHJldHVybiBtX3BhZ2UuZHJhd2lu
Z0FyZWEoKS0+c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7Cisg
ICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5zaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JG
cmFtZVZpZXcoJmZyYW1lVmlldyk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojppc1BsYXlp
bmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mg
c3RhdGUsIHVpbnQ2NF90IHNvdXJjZUVsZW1lbnRJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4
IDVjOWQ3NzNhNzJjMDYwOGMwMjA2OGFjMWQ5ZGRmNDVkNGEwYmQ5YzUuLjBhMDgwMDRmZmVmZWVj
YmI0MTM0NDAzNmYwMmZkYTk0MTc0ZGFjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtNjIs
NyArNjIsNyBAQCBwcml2YXRlOgogICAgIC8vIEZyYW1lIHdhbnRzIHRvIGNyZWF0ZSB0aGUgbmV3
IFBhZ2UuICBBbHNvLCB0aGUgbmV3bHkgY3JlYXRlZCB3aW5kb3cKICAgICAvLyBzaG91bGQgbm90
IGJlIHNob3duIHRvIHRoZSB1c2VyIHVudGlsIHRoZSBDaHJvbWVDbGllbnQgb2YgdGhlIG5ld2x5
CiAgICAgLy8gY3JlYXRlZCBQYWdlIGhhcyBpdHMgc2hvdyBtZXRob2QgY2FsbGVkLgotICAgIFdl
YkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6
OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0
IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpQYWdlKiBj
cmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1
ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZp
Z2F0aW9uQWN0aW9uJikgZmluYWw7CiAgICAgdm9pZCBzaG93KCkgZmluYWw7CiAgICAgCiAgICAg
Ym9vbCBjYW5SdW5Nb2RhbCgpIGZpbmFsOwpAQCAtODcsMTMgKzg3LDEzIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNz
YWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5z
aWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSBmaW5hbDsKICAgICAK
ICAgICBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpIGZpbmFsOwotICAgIGJv
b2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgV2Vi
Q29yZTo6RnJhbWUqKSBmaW5hbDsKKyAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAgICAgCiAg
ICAgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIHJ1bkphdmFT
Y3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFN0cmluZyYpIGZpbmFsOwotICAgIGJv
b2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBTdHJpbmcmKSBm
aW5hbDsKLSAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUqLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJl
c3VsdCkgZmluYWw7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUm
LCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdl
YkNvcmU6OkZyYW1lJiwgY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBydW5KYXZhU2Ny
aXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpIGZpbmFsOwogICAgIHZvaWQgc2V0
U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSBmaW5hbDsKIAogICAgIFdlYkNvcmU6OktleWJv
YXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgZmluYWw7CkBAIC0xMTcsMjMgKzExNywyMyBAQCBw
cml2YXRlOgogI2VuZGlmCiAKICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xp
ZW50KCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6
OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQg
Y29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JikgY29uc3QgZmluYWw7IC8vIEN1cnJlbnRseSBvbmx5IE1hYyBoYXMgYSBu
b24gZW1wdHkgaW1wbGVtZW50YXRpb24uCiAKICAgICBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1
Z2luTWVzc2FnZUJlQnV0dG9uKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5V
bmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCB1bmF2YWlsYWJsZVBs
dWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVudCosIFdlYkNvcmU6OlJlbmRlckVtYmVk
ZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7CisgICAg
dm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVudCYsIFdl
YkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikg
Y29uc3QgZmluYWw7CiAKICAgICB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3Qg
ZmluYWw7CiAgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpI
aXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgZmluYWw7CiAKICAgICB2b2lk
IHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7
CiAgICAgCi0gICAgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopIGZpbmFsOworICAgIHZvaWQg
cHJpbnQoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKIAotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFz
ZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIFdlYkNv
cmU6OkRhdGFiYXNlRGV0YWlscykgZmluYWw7CisgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVv
dGEoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6
RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKIAogICAgIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6
ZShpbnQ2NF90IHNwYWNlTmVlZGVkKSBmaW5hbDsKLSAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlv
bkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHNwYWNl
TmVlZGVkKSBmaW5hbDsKKyAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90IHNwYWNlTmVlZGVkKSBmaW5hbDsK
IAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICB2b2lkIGFubm90YXRlZFJlZ2lv
bnNDaGFuZ2VkKCkgZmluYWw7CkBAIC0xNDMsNyArMTQzLDcgQEAgcHJpdmF0ZToKICAgICBTdHJp
bmcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKSBmaW5hbDsKICAg
ICAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
Q29yZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9v
c2VyQ2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6
Q29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCkBAIC0xNTIsMTAgKzE1MiwxMCBAQCBw
cml2YXRlOgogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgZGlkUmVjZWl2ZU1vYmlsZURv
Y1R5cGUoYm9vbCkgZmluYWw7Ci0gICAgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMo
V2ViQ29yZTo6RnJhbWUqLCBib29sKSBmaW5hbDsKLSAgICB2b2lkIG9ic2VydmVkQ29udGVudENo
YW5nZShXZWJDb3JlOjpGcmFtZSopIGZpbmFsOwotICAgIHZvaWQgY2xlYXJDb250ZW50Q2hhbmdl
T2JzZXJ2ZXJzKFdlYkNvcmU6OkZyYW1lKikgZmluYWw7Ci0gICAgdm9pZCBub3RpZnlSZXZlYWxl
ZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKKyAgICB2
b2lkIHNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpGcmFtZSYsIGJvb2wpIGZp
bmFsOworICAgIHZvaWQgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKFdlYkNvcmU6OkZyYW1lJikgZmlu
YWw7CisgICAgdm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoV2ViQ29yZTo6RnJhbWUm
KSBmaW5hbDsKKyAgICB2b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFt
ZShXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwogICAgIGJvb2wgaXNTdG9wcGluZygpIGZpbmFsOwog
CiAgICAgdm9pZCBkaWRMYXlvdXQoTGF5b3V0VHlwZSA9IE5vcm1hbExheW91dCkgZmluYWw7CkBA
IC0yMDMsMTIgKzIwMywxMiBAQCBwcml2YXRlOgogICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdE
aXJlY3Rpb25Jc05hdHVyYWwoKSBmaW5hbDsKICAgICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRG
b2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBmaW5hbDsKICAgICBib29sIGhhc09wZW5lZFBv
cHVwKCkgY29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRl
UG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IGZpbmFsOwotICAgIFJl
ZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJD
b3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6
UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29u
c3QgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2Vh
cmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYpIGNvbnN0IGZpbmFsOwogCiAg
ICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkg
Y29uc3QgZmluYWw7Ci0gICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpG
cmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKLSAgICB2b2lkIGF0dGFjaFZp
ZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKSBmaW5hbDsKKyAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6
OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOworICAgIHZvaWQgYXR0YWNo
Vmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGZpbmFsOwogICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9u
aXphdGlvbigpIGZpbmFsOwogICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2go
KSBmaW5hbDsKICAgICBib29sIGFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKFdlYkNvcmU6Okxh
eWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpGbGFncykgZmluYWw7CkBAIC0yMzMsMTEgKzIzMywxMSBA
QCBwcml2YXRlOgogICAgIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IGZpbmFs
OwogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKLSAgICBQYXNzUmVmUHRyPFdlYkNvcmU6
OlNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihXZWJDb3Jl
OjpQYWdlKikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3Jk
aW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihXZWJDb3JlOjpQYWdlJikgY29uc3Qg
ZmluYWw7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2b2lkIGVsZW1lbnREaWRS
ZWZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBmaW5hbDsKKyAgICB2b2lkIGVsZW1lbnREaWRS
ZWZvY3VzKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgKFBM
QVRGT1JNKElPUykgJiYgSEFWRShBVktJVCkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShW
SURFT19QUkVTRU5UQVRJT05fTU9ERSkpCkBAIC0yNTMsMTQgKzI1MywxNCBAQCBwcml2YXRlOgog
I2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgYm9vbCBzdXBwb3J0c0Z1
bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqLCBib29sIHdpdGhLZXli
b2FyZCkgZmluYWw7Ci0gICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6
OkVsZW1lbnQqKSBmaW5hbDsKLSAgICB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJD
b3JlOjpFbGVtZW50KikgZmluYWw7CisgICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVt
ZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmLCBib29sIHdpdGhLZXlib2FyZCkgZmluYWw7Cisg
ICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5h
bDsKKyAgICB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Jikg
ZmluYWw7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQgZWxlbWVudERp
ZEZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBmaW5hbDsKLSAgICB2b2lkIGVsZW1lbnREaWRC
bHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBmaW5hbDsKKyAgICB2b2lkIGVsZW1lbnREaWRGb2N1
cyhXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CisgICAgdm9pZCBlbGVtZW50RGlkQmx1cihXZWJD
b3JlOjpFbGVtZW50JikgZmluYWw7CiAKICAgICB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcigpIGZp
bmFsOwogI2VuZGlmCkBAIC0yOTEsMTAgKzI5MSwxMCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBw
bHVnSW5FeHRyYVN0eWxlU2hlZXQoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgcGx1Z0luRXh0
cmFTY3JpcHQoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgZGlkQWRkSGVhZGVyTGF5ZXIoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwotICAgIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIo
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOworICAgIHZvaWQgZGlkQWRkSGVhZGVyTGF5
ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciYpIGZpbmFsOworICAgIHZvaWQgZGlkQWRkRm9vdGVy
TGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciYpIGZpbmFsOwogCi0gICAgYm9vbCBzaG91bGRV
c2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3KikgY29u
c3QgZmluYWw7CisgICAgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29u
c3QgV2ViQ29yZTo6RnJhbWVWaWV3JikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIGlzUGxheWlu
Z01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncywg
dWludDY0X3QpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4
IDMyYWY1OWYzZmJkNDc0MDlmNDI4ODYzNjlmYTA4YmVkYWNiNWQ0NjguLjQzMzk4ZmM5M2MyM2Qx
YjEzOGU3YTQ1ZDJhMTllYThkMzNkM2FkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCkBAIC02NDAsMTMgKzY0MCwxMyBAQCBGcmFtZSogV2ViRnJhbWVMb2FkZXJDbGllbnQ6
OmRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aQogewog
ICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCF3ZWJQYWdl
KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBK
dXN0IGNhbGwgdGhyb3VnaCB0byB0aGUgY2hyb21lIGNsaWVudC4KICAgICBGcmFtZUxvYWRSZXF1
ZXN0IHJlcXVlc3QobV9mcmFtZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCksIG5hdmlnYXRpb25BY3Rpb24ucmVzb3VyY2VSZXF1ZXN0KCksIExvY2tIaXN0b3J5OjpO
bywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmln
YXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBuYXZp
Z2F0aW9uQWN0aW9uLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSk7Ci0gICAgUGFnZSog
bmV3UGFnZSA9IHdlYlBhZ2UtPmNvcmVQYWdlKCktPmNocm9tZSgpLmNyZWF0ZVdpbmRvdyhtX2Zy
YW1lLT5jb3JlRnJhbWUoKSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgbmF2aWdhdGlvbkFj
dGlvbik7CisgICAgUGFnZSogbmV3UGFnZSA9IHdlYlBhZ2UtPmNvcmVQYWdlKCktPmNocm9tZSgp
LmNyZWF0ZVdpbmRvdygqbV9mcmFtZS0+Y29yZUZyYW1lKCksIHJlcXVlc3QsIFdpbmRvd0ZlYXR1
cmVzKCksIG5hdmlnYXRpb25BY3Rpb24pOwogICAgIGlmICghbmV3UGFnZSkKLSAgICAgICAgcmV0
dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIAogICAgIHJldHVybiAmbmV3UGFn
ZS0+bWFpbkZyYW1lKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKaW5kZXggOTY4
OTI5ZmRhMzQ3OWFhZDJiZTRhMTBhMGI0NTk2YWUxNzU1NmQ1MC4uNDFiMzRmMDBhOGM2ZmQyMDNj
NTgzNDIwM2U4MjgwYTVjNDQ1NmY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcApA
QCAtNzMsNyArNzMsNyBAQCBXZWJJbnNwZWN0b3JDbGllbnQ6On5XZWJJbnNwZWN0b3JDbGllbnQo
KQogICAgIH0KIAogICAgIGlmIChtX3BhaW50UmVjdE92ZXJsYXkgJiYgbV9wYWdlLT5tYWluRnJh
bWUoKSkKLSAgICAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVy
KCkudW5pbnN0YWxsUGFnZU92ZXJsYXkobV9wYWludFJlY3RPdmVybGF5LmdldCgpLCBQYWdlT3Zl
cmxheTo6RmFkZU1vZGU6OkZhZGUpOworICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5wYWdl
T3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqbV9wYWludFJlY3RPdmVy
bGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOwogfQogCiB2b2lkIFdlYkluc3BlY3Rv
ckNsaWVudDo6aW5zcGVjdGVkUGFnZURlc3Ryb3llZCgpCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9p
ZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmhpZGVIaWdobGlnaHQoKQogewogI2lmICFQTEFURk9STShJ
T1MpCiAgICAgaWYgKG1faGlnaGxpZ2h0T3ZlcmxheSAmJiBtX3BhZ2UtPm1haW5GcmFtZSgpKQot
ICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmlu
c3RhbGxQYWdlT3ZlcmxheShtX2hpZ2hsaWdodE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9k
ZTo6RmFkZSk7CisgICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX2hpZ2hsaWdodE92ZXJsYXksIFBhZ2VPdmVy
bGF5OjpGYWRlTW9kZTo6RmFkZSk7CiAjZWxzZQogICAgIG1fcGFnZS0+aGlkZUluc3BlY3Rvckhp
Z2hsaWdodCgpOwogI2VuZGlmCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JD
bGllbnQ6OnNob3dQYWludFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGlmICgh
bV9wYWludFJlY3RPdmVybGF5KSB7CiAgICAgICAgIG1fcGFpbnRSZWN0T3ZlcmxheSA9IFBhZ2VP
dmVybGF5OjpjcmVhdGUoKnRoaXMsIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZTo6RG9jdW1lbnQp
OwotICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5p
bnN0YWxsUGFnZU92ZXJsYXkobV9wYWludFJlY3RPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1v
ZGU6OkRvTm90RmFkZSk7CisgICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5
Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSgqbV9wYWludFJlY3RPdmVybGF5LCBQYWdl
T3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAgfQogCiAgICAgaWYgKCFtX3BhaW50
SW5kaWNhdG9yTGF5ZXJDbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAppbmRleCAxZTBjZWY0NjUxYjkzYmY4MGZiNzA1
NjY1YzZmNjE1ZmVhYmMyYTg5Li4zMzAzMmMxNzJiMWIyNDM4ZGFmZDYwYzM0NjQ2NmVhNDUwNWU0
YTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5k
Q29udHJvbGxlci5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCB2b2lkIEZpbmRDb250cm9sbGVyOjp1
cGRhdGVGaW5kVUlBZnRlclBhZ2VTY3JvbGwoYm9vbCBmb3VuZCwgY29uc3QgU3RyaW5nJiBzdHJp
bgogCiAgICAgaWYgKCFzaG91bGRTaG93T3ZlcmxheSkgewogICAgICAgICBpZiAobV9maW5kUGFn
ZU92ZXJsYXkpCi0gICAgICAgICAgICBtX3dlYlBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3Zlcmxh
eUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheShtX2ZpbmRQYWdlT3ZlcmxheSwgUGFn
ZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICAgICAgICAgIG1fd2ViUGFnZS0+bWFpbkZy
YW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX2Zp
bmRQYWdlT3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKICAgICB9IGVsc2Ug
ewogICAgICAgICBpZiAoIW1fZmluZFBhZ2VPdmVybGF5KSB7CiAgICAgICAgICAgICBhdXRvIGZp
bmRQYWdlT3ZlcmxheSA9IFBhZ2VPdmVybGF5OjpjcmVhdGUoKnRoaXMsIFBhZ2VPdmVybGF5OjpP
dmVybGF5VHlwZTo6RG9jdW1lbnQpOwpAQCAtMzEyLDcgKzMxMiw3IEBAIHZvaWQgRmluZENvbnRy
b2xsZXI6OmhpZGVGaW5kVUkoKQogewogICAgIG1fZmluZE1hdGNoZXMuY2xlYXIoKTsKICAgICBp
ZiAobV9maW5kUGFnZU92ZXJsYXkpCi0gICAgICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBh
Z2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fZmluZFBhZ2VPdmVy
bGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOworICAgICAgICBtX3dlYlBhZ2UtPm1h
aW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgq
bV9maW5kUGFnZU92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CiAKICAgICBQ
bHVnaW5WaWV3KiBwbHVnaW5WaWV3ID0gcGx1Z2luVmlld0ZvckZyYW1lKG1fd2ViUGFnZS0+bWFp
bkZyYW1lKCkpOwogICAgIApAQCAtMzI1LDYgKzMyNSw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6
OmhpZGVGaW5kVUkoKQogfQogCiAjaWYgIVBMQVRGT1JNKElPUykKKwogYm9vbCBGaW5kQ29udHJv
bGxlcjo6dXBkYXRlRmluZEluZGljYXRvcihGcmFtZSYgc2VsZWN0ZWRGcmFtZSwgYm9vbCBpc1No
b3dpbmdPdmVybGF5LCBib29sIHNob3VsZEFuaW1hdGUpCiB7CiAgICAgUmVmUHRyPFRleHRJbmRp
Y2F0b3I+IGluZGljYXRvciA9IFRleHRJbmRpY2F0b3I6OmNyZWF0ZVdpdGhTZWxlY3Rpb25JbkZy
YW1lKHNlbGVjdGVkRnJhbWUsIFRleHRJbmRpY2F0b3JPcHRpb25JbmNsdWRlTWFyZ2luSWZSYW5n
ZU1hdGNoZXNTZWxlY3Rpb24sIHNob3VsZEFuaW1hdGUgPyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0
aW9uVHJhbnNpdGlvbjo6Qm91bmNlIDogVGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRp
b246Ok5vbmUpOwpAQCAtMzY2LDYgKzM2Nyw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmRpZEZh
aWxUb0ZpbmRTdHJpbmcoKQogdm9pZCBGaW5kQ29udHJvbGxlcjo6ZGlkSGlkZUZpbmRJbmRpY2F0
b3IoKQogewogfQorCiAjZW5kaWYKIAogdm9pZCBGaW5kQ29udHJvbGxlcjo6c2hvd0ZpbmRJbmRp
Y2F0b3JJblNlbGVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkZyYW1lLmNwcAppbmRleCAzNjI5ZDRhZTU4YzdkNDY4NjJlMTVhNzVmOTg0YmRjZDVlZWI4
ZjQ2Li45OTlmZTI1YzEwMGEzMTM3NmIwZGY3NWE0MzA3YzMxY2E3ZmU0ZTJhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTEwOSw3ICsx
MDksNyBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVMaXN0ZW5lcklEKCkKICAgICByZXR1cm4g
dW5pcXVlTGlzdGVuZXJJRCsrOwogfQogCi1QYXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFtZTo6
Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSogcGFnZSwgV2ViQ29yZTo6RnJhbWUqIGNv
cmVGcmFtZSkKK1JlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1l
KFdlYlBhZ2UqIHBhZ2UsIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUpCiB7CiAgICAgYXV0byBm
cmFtZSA9IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KHN0YXRp
Y19jYXN0PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4oJmNvcmVGcmFtZS0+bG9hZGVyKCkuY2xpZW50
KCkpKSk7CiAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDcmVhdGVN
YWluRnJhbWUoZnJhbWUtPmZyYW1lSUQoKSksIHBhZ2UtPnBhZ2VJRCgpLCBJUEM6OlNlbmRPcHRp
b246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CkBAIC0xMjAs
MzAgKzEyMCwzMiBAQCBQYXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlV2l0aENv
cmVNYWluRnJhbWUoV2ViUGFnZSogcGFnZSwgV2ViQ29yZTo6RgogICAgIHJldHVybiBmcmFtZTsK
IH0KIAotUGFzc1JlZlB0cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdlYlBh
Z2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQq
IG93bmVyRWxlbWVudCkKK1JlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdl
YlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBIVE1MRnJhbWVPd25lckVsZW1l
bnQqIG93bmVyRWxlbWVudCkKIHsKICAgICBhdXRvIGZyYW1lID0gY3JlYXRlKHN0ZDo6bWFrZV91
bmlxdWU8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KCkpOwogICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6RGlkQ3JlYXRlU3ViZnJhbWUoZnJhbWUtPmZyYW1lSUQoKSksIHBhZ2Ut
PnBhZ2VJRCgpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSk7CiAKLSAgICBSZWY8V2ViQ29yZTo6RnJhbWU+IGNvcmVGcmFtZSA9IEZy
YW1lOjpjcmVhdGUocGFnZS0+Y29yZVBhZ2UoKSwgb3duZXJFbGVtZW50LCBmcmFtZS0+bV9mcmFt
ZUxvYWRlckNsaWVudC5nZXQoKSk7CisgICAgYXV0byBjb3JlRnJhbWUgPSBGcmFtZTo6Y3JlYXRl
KHBhZ2UtPmNvcmVQYWdlKCksIG93bmVyRWxlbWVudCwgZnJhbWUtPm1fZnJhbWVMb2FkZXJDbGll
bnQuZ2V0KCkpOwogICAgIGZyYW1lLT5tX2NvcmVGcmFtZSA9IGNvcmVGcmFtZS5wdHIoKTsKLSAg
ICBmcmFtZS0+bV9jb3JlRnJhbWUtPnRyZWUoKS5zZXROYW1lKGZyYW1lTmFtZSk7CisKKyAgICBj
b3JlRnJhbWUtPnRyZWUoKS5zZXROYW1lKGZyYW1lTmFtZSk7CiAgICAgaWYgKG93bmVyRWxlbWVu
dCkgewogICAgICAgICBBU1NFUlQob3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCkpOwot
ICAgICAgICBvd25lckVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKS0+dHJlZSgpLmFwcGVuZENo
aWxkKFdURk1vdmUoY29yZUZyYW1lKSk7CisgICAgICAgIG93bmVyRWxlbWVudC0+ZG9jdW1lbnQo
KS5mcmFtZSgpLT50cmVlKCkuYXBwZW5kQ2hpbGQoY29yZUZyYW1lLmdldCgpKTsKICAgICB9Ci0g
ICAgZnJhbWUtPm1fY29yZUZyYW1lLT5pbml0KCk7CisgICAgY29yZUZyYW1lLT5pbml0KCk7CisK
ICAgICByZXR1cm4gZnJhbWU7CiB9CiAKLVBhc3NSZWZQdHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpj
cmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRlckNs
aWVudCkKK1JlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2Vi
RnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9hZGVyQ2xpZW50KQogewogICAgIGF1dG8gZnJhbWUg
PSBhZG9wdFJlZigqbmV3IFdlYkZyYW1lKFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKSk7CiAK
ICAgICAvLyBBZGQgZXhwbGljdCByZWYoKSB0aGF0IHdpbGwgYmUgYmFsYW5jZWQgaW4gV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmZyYW1lTG9hZGVyRGVzdHJveWVkKCkuCiAgICAgZnJhbWUtPnJlZigp
OwogCi0gICAgcmV0dXJuIFdURk1vdmUoZnJhbWUpOworICAgIHJldHVybiBmcmFtZTsKIH0KIAog
V2ViRnJhbWU6OldlYkZyYW1lKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4g
ZnJhbWVMb2FkZXJDbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJGcmFtZS5oCmluZGV4IDIzZDQ4ZDI5ZjgzNzY2NTM4NWNmNDE0MWEwYzRmNmU2M2M1NWM2NjAu
LmQ0YzdhNDA4MzRhMjg4OWIyYTFhZmQxZmNkZTM3MDZmYWUwMjZiMDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCkBAIC02Niw4ICs2Niw4IEBAIHN0
cnVjdCBGcmFtZUluZm9EYXRhOwogCiBjbGFzcyBXZWJGcmFtZSA6IHB1YmxpYyBBUEk6Ok9iamVj
dEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZUZyYW1lPiB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViRnJhbWU+IGNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2Uq
LCBXZWJDb3JlOjpGcmFtZSopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZyYW1lPiBjcmVh
dGVTdWJmcmFtZShXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OkhU
TUxGcmFtZU93bmVyRWxlbWVudCopOworICAgIHN0YXRpYyBSZWY8V2ViRnJhbWU+IGNyZWF0ZVdp
dGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2UqLCBXZWJDb3JlOjpGcmFtZSopOworICAgIHN0YXRpYyBS
ZWY8V2ViRnJhbWU+IGNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIGZyYW1l
TmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Kik7CiAgICAgfldlYkZyYW1lKCk7
CiAKICAgICAvLyBDYWxsZWQgd2hlbiB0aGUgRnJhbWVMb2FkZXJDbGllbnQgKGFuZCB0aGVyZWZv
cmUgdGhlIFdlYkNvcmU6OkZyYW1lKSBpcyBiZWluZyB0b3JuIGRvd24uCkBAIC0xNjYsOCArMTY2
LDggQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
V2ViRnJhbWU+IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsK
LSAgICBXZWJGcmFtZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsKKyAg
ICBzdGF0aWMgUmVmPFdlYkZyYW1lPiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9h
ZGVyQ2xpZW50Pik7CisgICAgZXhwbGljaXQgV2ViRnJhbWUoc3RkOjp1bmlxdWVfcHRyPFdlYkZy
YW1lTG9hZGVyQ2xpZW50Pik7CiAKICAgICBXZWJDb3JlOjpGcmFtZSogbV9jb3JlRnJhbWU7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0
b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5j
cHAKaW5kZXggZDY0Nzg1OTdhODdmZWYzZGMwYjk5OTM1MjEyNjc2ZWZjYzQ5MzMyMy4uMDE2ZDcz
OGZiNjEyZDI0M2MwMDQ5ZTUyMDE1ODYyMTMwZmQ5NThmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKQEAgLTE0NSw3ICsxNDUs
NyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6b3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsU3Ry
aW5nKQogICAgIEZyYW1lJiBpbnNwZWN0ZWRNYWluRnJhbWUgPSBpbnNwZWN0ZWRQYWdlLT5tYWlu
RnJhbWUoKTsKICAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QoaW5zcGVjdGVkTWFpbkZyYW1l
LmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCh1cmxTdHJpbmcp
LCAiX2JsYW5rIiwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5
YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFt
ZU9wZW5lclBvbGljeTo6QWxsb3csIFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCwgU2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogCi0gICAgUGFnZSog
bmV3UGFnZSA9IGluc3BlY3RlZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdygmaW5zcGVjdGVk
TWFpbkZyYW1lLCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9uQWN0aW9uKHJl
cXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIE5hdmlnYXRpb25UeXBlOjpMaW5rQ2xpY2tlZCkpOwor
ICAgIFBhZ2UqIG5ld1BhZ2UgPSBpbnNwZWN0ZWRQYWdlLT5jaHJvbWUoKS5jcmVhdGVXaW5kb3co
aW5zcGVjdGVkTWFpbkZyYW1lLCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9u
QWN0aW9uKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIE5hdmlnYXRpb25UeXBlOjpMaW5rQ2xp
Y2tlZCkpOwogICAgIGlmICghbmV3UGFnZSkKICAgICAgICAgcmV0dXJuOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299435</attachid>
            <date>2017-01-21 10:59:24 -0800</date>
            <delta_ts>2017-01-21 13:44:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167224-20170121105729.patch</filename>
            <type>text/plain</type>
            <size>372414</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMDE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNhYzgwMTFmMWU0MTEy
NTE4YjI5Y2IwYjZkNDAyNzk2YTRkYTUwZC4uYTEyZjUzNDdmMmIzODM5ZDM2MDg4YjU0Yjg0NTY3
ZTU5MDA2OTMyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzMSBAQAorMjAxNy0wMS0yMCAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIg
ZnJvbSAicGFnZSIgZGlyZWN0b3J5IG9mIFdlYkNvcmUsIGFsc28gZGVwbG95IHJlZmVyZW5jZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIyNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9ET01XaW5kb3dGZXRjaC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dG
ZXRjaDo6ZmV0Y2gpOiBVc2UgRE9NV2luZG93Ojpkb2N1bWVudCBpbnN0ZWFkIG9mCisgICAgICAg
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUNvbnRleHQ6
OmRhdGFiYXNlRXhjZWVkZWRRdW90YSk6IFBhc3MgYSByZWZlcmVuY2UuCisKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAg
ICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eVNob3dD
b250ZXh0TWVudV0pOgorICAgICAgICBQYXNzIGEgcmVmZXJlbmNlLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01X
aW5kb3c6OmdldE93blByb3BlcnR5U2xvdCk6IFBhc3MgYSByZWZlcmVuY2UuCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNoaWxkcmVu
Q2hhbmdlZCk6IFBhc3MgYSByZWZlcmVuY2UuIEFsc28gbWFkZSB0aGUKKyAgICAgICAgZGlkUmVj
ZWl2ZURvY1R5cGUgY29kZSB1bmNvbmRpdGlvbmFsIGluc3RlYWQgb2YgaU9TLW9ubHkuCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2Jq
ZWN0cyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVZpZXdwb3J0
QXJndW1lbnRzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Rm9jdXNl
ZEVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVET01X
aW5kb3cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0YWtlRE9NV2luZG93
RnJvbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlcXVlc3RGdWxsU2Ny
ZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtp
dEV4aXRGdWxsc2NyZWVuKTogRGl0dG8uCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Zm9jdXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmJsdXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRpc3Bh
dGNoRm9jdXNFdmVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZGlzcGF0
Y2hCbHVyRXZlbnQpOiBEaXR0by4KKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogRGl0dG8uCisgICAgICAgICogZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVQcmludCk6
IERpdHRvLgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldEZvY3VzZWRFbGVtZW50SWZOZWVkZWQpOiBEaXR0
by4KKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkRnJhbWU6OkNhY2hlZEZyYW1lKTogRGl0dG8uCisgICAgICAgICogaHRtbC9Db2xvcklucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6aGFuZGxlRE9NQWN0
aXZhdGVFdmVudCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2Fi
bGUpOiBEaXR0by4KKworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0tleWJvYXJkRm9j
dXNhYmxlKTogUGFzcyBhIHJlZmVyZW5jZSwKKyAgICAgICAgYW5kIGFsc28gcmV3cm90ZSB0byB1
c2UgJiYgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c3VwcG9ydHNGdWxsc2NyZWVu
KTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9TcGluQnV0dG9uRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6
OnJlbGVhc2VDYXB0dXJlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjOjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogRGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250ZXh0TWVudSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpkaXNwYXRjaEV2ZW50QXNDb250
ZXh0TWVudUV2ZW50KTogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUp
OiBVcGRhdGVkIHRvIHRha2UgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJv
bWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0p
OiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNvbW1p
dFByb3Zpc2lvbmFsTG9hZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmNsb3NlQW5kUmVtb3ZlQ2hpbGQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OmRldGFjaEZyb21QYXJlbnQpOiBQYXNzIGEgcmVmZXJlbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpc3BhdGNoQmVmb3JlVW5sb2FkRXZlbnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6IERpdHRvLgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAg
KiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVj
a2VyOjpjaGVja05ld1dpbmRvd1BvbGljeSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnJlY2FsY3VsYXRlQXZhaWxhYmxlU3BhY2VJblF1
b3RhKTogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmg6IFJldHVybiBhIHJlZmVyZW5jZSBmcm9tIG9yaWdpbi4KKworICAgICAgICAqIGxv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4pOiBU
YWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZSk6CisgICAg
ICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnN0
b3JlKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjpjaGVja09yaWdpblF1b3RhKTogVXBkYXRlZCBzaW5jZSBvcmlnaW4KKyAgICAg
ICAgbm93IHJldHVybnMgYXJlZmVyZW5jZS4KKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAg
ICogbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEpOiBQYXNzIGEgcmVmZXJlbmNlLgor
ICAgICAgICAqIG1hdGhtbC9NYXRoTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1h
dGhNTEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOiBEaXR0by4KKworICAgICAgICAqIHBh
Z2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Q2hyb21lKTogTW92ZWQg
aW5pdGlhbGl6YXRpb24gb2YgZGF0YSBtZW1iZXJzIHRvIHRoZQorICAgICAgICBjbGFzcyBkZWZp
bml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2VkKTog
VGFrZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlV2luZG93
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpydW5KYXZhU2NyaXB0
QWxlcnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdENv
bmZpcm0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdFBy
b21wdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZXRTdGF0dXNiYXJUZXh0
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnByaW50KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWU6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lOjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWU6OmRpZFJlY2VpdmVEb2NUeXBlKTogRGl0dG8uIEFsc28gbWFkZSB1bmNv
bmRpdGlvbmFsLCBidXQKKyAgICAgICAgZW1wdHkgZm9yIG5vbi1pT1MgcGxhdGZvcm1zLgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lOjpyZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKTogVGFr
ZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6dW5yZWdpc3RlclBvcHVw
T3BlbmluZ09ic2VydmVyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWUuaDogVXBkYXRl
ZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogVGFrZSBy
ZWZlcmVuY2VzLiBBbHNvIHVwZGF0ZWQgc29tZSBhcmd1bWVudHMgZnJvbQorICAgICAgICBOb2Rl
IHRvIEVsZW1lbnQuCisKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmhhbmRsZUNvbnRleHRN
ZW51RXZlbnQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudSk6IERpdHRvLiBB
bHNvIHVzZQorICAgICAgICBtYWtlX3VuaXF1ZSBpbnN0ZWFkIG9mIHVuaXF1ZV9wdHIgcGx1cyBu
ZXcuCisgICAgICAgIChXZWJDb3JlOjpvcGVuTmV3V2luZG93KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjppbnNlcnRVbmljb2RlQ2hhcmFjdGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVu
dUF0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNo
b3dJbWFnZUNvbnRyb2xzTWVudSk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2UvRE9N
VGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OmZpcmVkKTogUGFzcyBhIHJl
ZmVyZW5jZS4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBvc3RNZXNzYWdlVGltZXI6OlBvc3RNZXNzYWdlVGltZXIpOiBUYWtlIFJlZiYmIGluc3Rl
YWQgb2YKKyAgICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
YWRqdXN0V2luZG93UmVjdCk6IFVzZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6YWxsb3dQb3BVcCk6IERpdHRvLiBBbHNvIHJld3JpdGUgdG8gdXNlIHx8IGluc3Rl
YWQKKyAgICAgICAgb2Ygc3VjY2Vzc2l2ZSBpZiBzdGF0ZW1lbnRzLgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6RE9NV2luZG93KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OmRpZFNlY3VyZVRyYW5zaXRpb25Ubyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjpyZWdpc3RlclByb3BlcnR5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3c6OnVucmVnaXN0ZXJQcm9wZXJ0eSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQpOiBNZXJnZSB3aXRoIHRoZSBmdW5jdGlv
bgorICAgICAgICBpbW1lZGlhdGVseSBmb2xsb3dlZCwgY2FsbGVkIG9ubHkgZnJvbSBoZXJlLgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmln
aW5DaGVjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnByaW50KTog
UGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWxlcnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y29uZmlybSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpwcm9tcHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c2V0U3RhdHVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OnNldERlZmF1bHRTdGF0dXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6bW92ZUJ5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1vdmVU
byk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVCeSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVUbyk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6RE9NV2luZG93OjpjbGVhclRpbWVvdXQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6aW5jcmVtZW50U2Nyb2xsRXZlbnRMaXN0ZW5lcnNDb3VudCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkZWNyZW1lbnRTY3JvbGxFdmVudExp
c3RlbmVyc0NvdW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNob3dN
b2RhbERpYWxvZyk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZS4gQUxzbyBtYWRlIGZ1bmN0aW9ucyBwcml2YXRlCisgICAgICAgIGFuZCBm
aW5hbC4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93UHJvcGVydHk6OkRPTVdpbmRvd1Byb3BlcnR5KTogUGFzcyBhIHJl
ZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp+RE9NV2luZG93
UHJvcGVydHkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3
aWxsRGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJhbWUp
OiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVnaW9uT3ZlcmxheTo6Y3JlYXRlKTogUmV0dXJuIFJlZlB0ciBpbnN0ZWFk
IG9mIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpSZWdpb25PdmVybGF5Ojp+UmVnaW9u
T3ZlcmxheSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEZWJ1Z1BhZ2VP
dmVybGF5czo6c2hvd1JlZ2lvbk92ZXJsYXkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRl
YnVnUGFnZU92ZXJsYXlzOjpoaWRlUmVnaW9uT3ZlcmxheSk6IERpdHRvLgorCisgICAgICAgICog
cGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxl
cjo6ZHJhZ0V4aXRlZCk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6cGVyZm9ybURyYWdPcGVyYXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6dHJ5REhUTUxEcmFnKTogRGl0dG8uCisKKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6IFJlcGxhY2VkIE9wdGlvbmFsQ3Vyc29yIHdpdGggc3Rk
OjpvcHRpb25hbDxDdXJzb3I+LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRh
dGVDdXJzb3IpOiBSZWZhY3RvciBpbnRvIHR3byBmdW5jdGlvbnMgc28gd2UKKyAgICAgICAgY2Fu
IHNoYXJlIG1vcmUgY29kZSB3aXRoIHNlbGVjdEN1cnNvci4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKTogVXBkYXRlZCB0byB1c2Ugc3RkOjpvcHRpb25hbC4K
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3ZlRXZlbnQpOiBV
c2UgdGhlIG5ldyB1cGRhdGVDdXJzb3IuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OnN0YXJ0UGFuU2Nyb2xsaW5nKTogVXNlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERyb3ApOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KTog
VGFrZSBhIHJhdyBwb2ludGVyCisgICAgICAgIGluc3RlYWQgb2YgYSBQYXNzUmVmUHRyLgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZlbnQpOiBVc2UgYSBy
ZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0
ZUFmdGVyRWRpdERyYWdJZk5lZWRlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJzVG9MaW5rcyk6IERpdHRv
LgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4K
KworICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEZyYW1lKTogVGFrZSBwb2ludGVyIGluc3RlYWQK
KyAgICAgICAgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxl
cjo6c2V0Rm9jdXNlZEVsZW1lbnQpOiBUYWtlIHJlZmVyZW5jZSBpbnN0ZWFkIG9mCisgICAgICAg
IFBhc3NSZWZQdHIuCisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDogVXBkYXRlZCBm
b3IgdGhlIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OnRyYW5zZmVyQ2hpbGQpOiBEZWxldGVkLiBVbnVz
ZWQgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OmFwcGVuZENoaWxkKTog
TWVyZ2VkIHdpdGggdGhlIGZvbGxvd2luZyBmdW5jdGlvbgorICAgICAgICBzaW5jZSBpdCdzIG5v
dyBvbmx5IHVzZWQgaGVyZS4gVGFrZSByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVUcmVlOjphY3R1YWxseUFwcGVuZENoaWxkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6cmVtb3ZlQ2hpbGQpOiBUYWtlIHJlZmVy
ZW5jZSBpbnN0ZWFkIG9mIHBvaW50ZXIuCisgICAgICAgIFVzZSBtb3ZlIGluc3RlYWQgb2YgdHJp
Y2tpZXIgc3dhcC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5oOiBVcGRhdGVkIGZvciB0aGUg
YWJvdmUuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnNldENvbnRlbnRzU2l6ZSk6IFVzZSBhIHJlZmVyZW5jZS4KKyAgICAgICAg
KiBwYWdlL01haW5GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6OmRyb3BD
aGlsZHJlbik6IERpdHRvLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpzY3JvbGxpbmdDb29yZGluYXRvcik6IERpdHRvLgorICAgICAgICAqIHBhZ2Uv
UGFnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXk6OmZhZGVBbmlt
YXRpb25UaW1lckZpcmVkKTogRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlT3ZlcmxheUNvbnRyb2xsZXI6Omlu
c3RhbGxQYWdlT3ZlcmxheSk6IFRha2UgcmVmZXJlbmNlCisgICAgICAgIGluc3RlYWQgb2YgUGFz
c1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0
YWxsUGFnZU92ZXJsYXkpOiBUYWtlIHJlZmVyZW5jZQorICAgICAgICBpbnRlYWQgb2YgcG9pbnRl
ci4KKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oOiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpQYWdlU2VyaWFsaXplcik6IE1vdmVkIG1vc3QgaW5p
dGlhbGl6YXRpb24gdG8gdGhlCisgICAgICAgIGNsYXNzIGRlZmluaXRpb24uCisgICAgICAgIChX
ZWJDb3JlOjpQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplKTogVXNlIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVGcmFtZSk6IFVzZSBpbml0aWFs
aXplciBsaXN0IGluc3RlYWQgb2YKKyAgICAgICAgY29uc3RydWN0b3IgZm9yIHJlc291cmNlLgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUNTU1N0eWxlU2hlZXQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjphZGRJbWFnZVRvUmVz
b3VyY2VzKTogRGl0dG8uCisgICAgICAgICogcGFnZS9QYWdlU2VyaWFsaXplci5oOiBSZW1vdmVk
IGNvbnN0cnVjdG9ycyBmcm9tIFBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZQorICAgICAgICBzdHJ1
Y3Qgc2luY2Ugc3RydWN0dXJlcyBkb24ndCByZWFsbHkgbmVlZCB0aGVtLiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUuCisgICAgICAgIENoYW5nZWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yIGlu
dG8gYSBuZXN0ZWQgY2xhc3MuCisKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlRW50cnkuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlRW50cnk6OnN0YXJ0VGltZUNvbXBhcmVMZXNz
VGhhbik6IFVzZSBjb25zdCBSZWZQdHImCisgICAgICAgIGluc3RlYWQgb2YgUGFzc1JlZlB0ciB0
byBjb21wYXJlIFJlZlB0ciBpbiBwbGFjZS4KKworICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VV
c2VyVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omluc2VydFBlcmZvcm1hbmNlRW50cnkp
OiBUYWtlIFJlZiYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKworICAgICAgICAqIHBhZ2UvUmVz
b3VyY2VVc2FnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VVc2FnZU92
ZXJsYXk6On5SZXNvdXJjZVVzYWdlT3ZlcmxheSk6IFVzZSByZWZyZW5jZS4KKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlVXNhZ2VPdmVybGF5Ojppbml0aWFsaXplKTogRGl0dG8uCisKKyAgICAg
ICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmg6IFJlbW92ZWQgdW5uZWVkZWQgaW5j
bHVkZS4KKworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmNsZWFyKTog
VXNlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlOjpmaXJlRXZlbnRzQW5kVXBkYXRlU3R5bGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2gpOiBVc2UgdGhl
CisgICAgICAgIGFwcGVuZCBmdW5jdGlvbiBpbnN0ZWFkIG9mIGEgaGFuZC13cml0dGVuIGFsdGVy
bmF0aXZlLgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFk
ZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKToKKyAgICAgICAgVGFrZSBhIHJlZmVyZW5jZSByYXRo
ZXIgdGhhbiBhIFJlZiYmIHNpbmNlIG5vIGNhbGxlciBpcyBwYXNzaW5nIG93bmVyc2hpcC4KKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oOiBVcGRh
dGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0
eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibGVuZEZ1bmMpOiBSZXR1cm4gUmVm
UHRyIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OmJsZW5kRmlsdGVy
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpjcm9zc2ZhZGVCbGVuZCk6IERpdHRvLgorCisg
ICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlVHJhbnNpdGlvbnMpOiBVcGRhdGVk
IHRvIHVzZQorICAgICAgICBhbmltYXRpb25Gb3JQcm9wZXJ0eSwgd2hpY2ggcmV0dXJucyBhIHJh
dyBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRp
b25Gb3JQcm9wZXJ0eSk6IFJlbmFtZWQgZnJvbQorICAgICAgICBnZXRBbmltYXRpb25Gb3JQcm9w
ZXJ0eSBhbmQgY2hhbmdlZCB0byByZXR1cm4gcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAgICBv
ZiBQYXNzUmVmUHRyLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9J
bXBsaWNpdEFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlv
bjo6b25BbmltYXRpb25FbmQpOiBVc2UgYW5pbWF0aW9uRm9yUHJvcGVydHkuCisgICAgICAgIChX
ZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudCk6IFBhc3MgcmVm
ZXJlbmNlLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQp
OiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyk6IFRha2Ug
cmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2lu
Z0RhdGFUcmFuc2Zlcik6IFJldHVybiBSZWYuCisgICAgICAgICogcGFnZS9ndGsvRXZlbnRIYW5k
bGVyR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9y
bUNvbnRyb2xzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9pb3MvRXZlbnRI
YW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxG
b3JtQ29udHJvbHMpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRy
YW5zZmVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0Fs
bEZvcm1Db250cm9scyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpw
bGF0Zm9ybVByZXBhcmVGb3JXaGVlbEV2ZW50cyk6IERpdHRvLgorCisgICAgICAgICogcGFnZS9t
YWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oOiBUYWtlIFJlZiYmIGZvciByYW5nZXMgaW5z
dGVhZAorICAgICAgICBvZiBQYXNzUmVmUHRyLiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKiBw
YWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6Okhp
Z2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OkhpZ2hsaWdodCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6YnVpbGRQ
b3RlbnRpYWxIaWdobGlnaHRzSWZOZWVkZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkUGhvbmVOdW1iZXJIaWdobGlnaHRzKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFNl
bGVjdGlvbkhpZ2hsaWdodCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVy
bGF5Q29udHJvbGxlcjo6aGlnaGxpZ2h0c0FyZUVxdWl2YWxlbnQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmZpbmRUZWxlcGhvbmVOdW1iZXJI
aWdobGlnaHRDb250YWluaW5nU2VsZWN0aW9uSGlnaGxpZ2h0KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpoYW5kbGVDbGljayk6IERpdHRvLgor
CisgICAgICAgICogcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKyAgICAgICAgKC1b
V2ViVGV4dEluZGljYXRvclZpZXcgaW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpv
ZmZzZXQ6XSk6CisgICAgICAgIFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRy
LgorICAgICAgICAoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRv
cik6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0Fz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDogVXNlIFJlZiYmIGFuZCBSZWZQdHIgaW50ZWFkCisg
ICAgICAgIG9mIFBzYXNSZWZQdHIuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxM
YXRjaGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbExhdGNoaW5nU3RhdGU6
OlNjcm9sbExhdGNoaW5nU3RhdGUpOiBJbml0aWFsaXplIGRhdGEgbWVtYmVycworICAgICAgICBp
biBjbGFzcyBkZWZpbml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0
ZTo6c2V0V2hlZWxFdmVudEVsZW1lbnQpOiBVc2UgcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAg
ICBvZiBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6
c2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudCk6IFVzZSByYXcKKyAgICAgICAgcG9pbnRl
ciBpbnN0ZWFkIG9mIFJlZlB0ciYmLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdT
dGF0ZTo6c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcik6IFVzZSByYXcgcG9pbnRlciBpbnN0ZWFkCisg
ICAgICAgIG9mIFBhc3NSZWZQdHIuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0
Y2hpbmdTdGF0ZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KTogVXNlIFJlZiBpbnN0ZWFkIG9mIFBhc3NSZWZQ
dHIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxkKTog
VXNlIFJlZiYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZU5vZGUuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlTm9kZSk6IFVzZSBSZWYgaW5zdGVhZCBvZiBQ
YXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlOjphdHRhY2hO
b2RlKTogVXBkYXRlZCBmb3IgdGhlIGFidmUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdT
dGF0ZVRyZWU6OmNvbW1pdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlVHJlZS5oOiBEaXR0by4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJl
ZUZyb21TdGF0ZU5vZGUpOiBVc2UgcmVmZXJlbmNlLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaDogUmV0dXJuIFJlZiBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9kZTo6YXBwZW5kQ2hpbGQpOiBUYWtlIFJlZiYmIGluc3Rl
YWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVOb2RlOjpy
ZW1vdmVDaGlsZCk6IFRha2UgcmVmZXJlbmNlIGluc3RlYWQgb2YgcG9pbnRlci4KKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJv
dmUuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpUaHJlYWRlZFNjcm9s
bGluZ1RyZWUpOiBUYWtlIHJlZmVyZW5jZQorICAgICAgICBpbnN0ZWFkIG9mIHBvaW50ZXIuCisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdU
cmVlSU9TLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZSk6
IFRha2UgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlSU9TOjpT
Y3JvbGxpbmdUcmVlSU9TKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
SU9TOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZSk6IFJldHVybiBSZWYgaW5zdGVhZCBvZgorICAg
ICAgICBQYXNzUmVmUHRyLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdU
cmVlSU9TLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYyk6IFVzZSByZWZl
cmVuY2UuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5j
cHA6CisgICAgICAgIChTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGUpOiBUYWtlIGEgcmVmZXJlbmNl
LgorICAgICAgICAoU2Nyb2xsaW5nVHJlZU1hYzo6U2Nyb2xsaW5nVHJlZU1hYyk6IERpdHRvLgor
ICAgICAgICAoU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUpOiBSZXR1
cm4gYSBSZWYgaW5zdGVhZCBvZiBhCisgICAgICAgIFBhc3NSZWZQdHIuCisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaDogVXBkYXRlZCBmb3IgdGhlIGFib3Zl
LgorCisgICAgICAgICogcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKTogVGFrZSByZWZlcmVu
Y2UuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRy
YW5zZmVyKTogUmV0dXJuIFJlZi4KKworICAgICAgICAqIHBsYXRmb3JtL0N1cnNvci5oOiBSZWFy
cmFuZ2VkIHRoZSBoZWFkZXIgYSBiaXQuIEdvdCByaWQgb2YgdGhlIGV4cGxpY2l0CisgICAgICAg
IGNvcHkgY29uc3RydWN0b3IsIGFzc2lnbm1lbnQgb3BlcmF0b3IsIGFuZCBkZXN0cnVjdG9yLiBV
c2luZyB0aGUgb25lcworICAgICAgICB0aGF0IHRoZSBjb21waWxlciBhdXRvbWF0aWNhbGx5IGdl
bmVyYXRlcyB3aWxsIHdvcmsgZm9yIGFsbCBwbGF0Zm9ybXMgYW5kCisgICAgICAgIHdlIHRoZW4g
YWxzbyBnZXQgbW92ZSBjb25zdHJ1Y3RvciBhbmQgbW92ZSBhc3NpZ25tZW50IG9wZXJhdG9yLgor
CisgICAgICAgICogcGxhdGZvcm0vZWZsL0N1cnNvckVmbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDdXJzb3I6OkN1cnNvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6On5D
dXJzb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yOjpvcGVyYXRvcj0pOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL21hYy9DdXJzb3JNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpDdXJzb3I6OkN1cnNvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJz
b3I6Om9wZXJhdG9yPSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6On5DdXJz
b3IpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9DdXJzb3JXaW4uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhcmVkQ3Vyc29yOjpTaGFyZWRDdXJzb3IpOiBNb3ZlZCB0aGlzIGhl
cmUgZnJvbSB0aGUgaGVhZGVyCisgICAgICAgIHNpbmNlIGl0IGlzIG9ubHkgdXNlZCB3aXRoaW4g
dGhpcyBmaWxlLgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkQ3Vyc29yOjpjcmVhdGUpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6Q3Vyc29yKTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkN1cnNvcjo6b3BlcmF0b3I9KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkN1cnNvcjo6fkN1cnNvcik6IERlbGV0ZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
RW1iZWRkZWRPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmpl
Y3Q6OmhhbmRsZVVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yRXZlbnQpOgorICAgICAgICBQYXNz
IHJlZmVyZW5jZS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXllckJhY2tp
bmcpOiBHZXQgdG8gRnJhbWVWaWV3CisgICAgICAgIHRocm91Z2ggdGhlIHJlbmRlciB0cmVlIGl0
c2VsZiwgcmF0aGVyIHRoYW4gdGhyb3VnaCB0aGUgZnJhbWUuCisKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJGb3JIZWFkZXIpOiBVc2UgcmVmZXJlbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllckZvckZvb3Rl
cik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphdHRh
Y2hSb290TGF5ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6ZGV0YWNoUm9vdExheWVyKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ck1lbnVMaXN0LmNwcDoKKyAgICAgICAgKFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXApOiBEaXR0
by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU2VhcmNoRmllbGQ6OmFkZFNlYXJjaFJlc3VsdCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU2VhcmNoRmllbGQ6OnNob3dQb3B1cCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyU2VhcmNoRmllbGQ6OnZhbHVlQ2hhbmdlZCk6IERpdHRvLgor
ICAgICAgICAqIHN2Zy9TVkdBRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBRWxl
bWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZSk6IERpdHRvLgorICAgICAgICAqIHRlc3RpbmcvTW9j
a1BhZ2VPdmVybGF5Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYWdlT3Zlcmxh
eUNsaWVudDo6aW5zdGFsbE92ZXJsYXkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQ
YWdlT3ZlcmxheUNsaWVudDo6dW5pbnN0YWxsQWxsT3ZlcmxheXMpOiBEaXR0by4KKwogMjAxNy0w
MS0yMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIxMTAxMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA0
YTMzODQ1ZjE4NjEyMjA4Mjg1Yzc0MGZiZDM5YTg4ZmY4NmI1NTIyLi5jYTI4OTZhNWJiNTU1MDQ2
ZDk4OTgwMDkyMTZiYzljYjFmYmU1ZjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEg
QEAKKzIwMTctMDEtMjAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSBQYXNzUmVmUHRyIGZyb20gInBhZ2UiIGRpcmVjdG9yeSBvZiBXZWJDb3JlLCBhbHNv
IGRlcGxveSByZWZlcmVuY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNjcyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFn
ZXIubW06CisgICAgICAgICgtW1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIgcXVvdGFd
KTogUGFzcyByZWZlcmVuY2UuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaDogVXBkYXRlZCBmb3IgY2hhbmdlcyB0byBDaHJvbWVDbGllbnQuCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50Ojpmb2N1c2VkRWxlbWVudENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNs
aWVudDo6Y3JlYXRlV2luZG93KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50OjpydW5KYXZhU2NyaXB0QWxlcnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVu
dDo6cnVuSmF2YVNjcmlwdENvbmZpcm0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVu
dDo6cnVuSmF2YVNjcmlwdFByb21wdCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50
Ojpjb250ZW50c1NpemVDaGFuZ2VkKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6
OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjpwcmludCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpleGNl
ZWRlZERhdGFiYXNlUXVvdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cmVh
Y2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9t
ZUNsaWVudDo6ZWxlbWVudERpZEZvY3VzKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6OmVsZW1lbnREaWRCbHVyKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNy
ZWF0ZVBvcHVwTWVudSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVT
ZWFyY2hQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6YXR0YWNo
Um9vdEdyYXBoaWNzTGF5ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6YXR0
YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVD
bGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKwor
ICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgICgrW1dlYkZyYW1lIF9jcmVh
dGVGcmFtZVdpdGhQYWdlOmZyYW1lTmFtZTpmcmFtZVZpZXc6b3duZXJFbGVtZW50Ol0pOgorICAg
ICAgICBVcGRhdGVkIGZvciBjaGFuZ2UgdG8gdGhlIGFwcGVuZENoaWxkIGZ1bmN0aW9uLgorCiAy
MDE3LTAxLTIwICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUmVtb3ZlIG5ldmVyIGNoYW5naW5nIEluZGV4ZWREQiBSdW50aW1lRW5hYmxlZEZlYXR1cmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwppbmRleCBlZGQyMWMwYmM3NzRiY2U3OGJlZjE4ZDViYmYyOGNmZTJlMGFl
MTlmLi4xODdlZmMyOGVkMTU0YTA2MWZkODUxYzBhYTBkOWRiMWM5NGNmNzhhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTctMDEtMjAgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIGZyb20gInBhZ2UiIGRpcmVj
dG9yeSBvZiBXZWJDb3JlLCBhbHNvIGRlcGxveSByZWZlcmVuY2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcyMjQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsdWdpbnMvUGx1Z2luVmlldy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzdGF0dXMpOiBQYXNzIHJlZmVyZW5jZS4K
KyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmZvY3VzUGx1Z2luRWxlbWVudCk6IERpdHRv
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KTogVXBkYXRlZCBmb3IgY2hhbmdlIHRv
IENocm9tZUNsaWVudC4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFT
Y3JpcHRBbGVydCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2Ny
aXB0Q29uZmlybSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2Ny
aXB0UHJvbXB0KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6
ZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQ
bHVnaW5CdXR0b25DbGlja2VkKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnBy
aW50KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VR
dW90YSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6
OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcik6IERpdHRvLgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6
IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1l
bnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGlsZWRCYWNr
aW5nRm9yRnJhbWVWaWV3KTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lmg6IERpdHRvLgorCiAyMDE3LTAxLTIwICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNv
cmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG5ldmVyIGNoYW5naW5nIEluZGV4ZWRE
QiBSdW50aW1lRW5hYmxlZEZlYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzYmFjN2EwMTMyZDE5ZDIyN2I2
NTFlY2FmM2EyOWE1MTlkOWFmMjM0Li45ZjhiNTY5M2JkYTdlNzM2ZjM0ZjE1MWVkYWVjNzYyNjY0
OTIzYmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzQgQEAKKzIwMTctMDEtMjAgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIGZyb20g
InBhZ2UiIGRpcmVjdG9yeSBvZiBXZWJDb3JlLCBhbHNvIGRlcGxveSByZWZlcmVuY2VzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcyMjQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9T
Y3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKTogUmV0dXJuIGEgUmVmCisg
ICAgICAgIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xs
aW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwOgor
ICAgICAgICAoV0tCdW5kbGVQYWdlSW5zdGFsbFBhZ2VPdmVybGF5KTogUGFzcyBhIHJlZmVyZW5j
ZS4KKyAgICAgICAgKFdLQnVuZGxlUGFnZVVuaW5zdGFsbFBhZ2VPdmVybGF5KTogRGl0dG8uCisg
ICAgICAgIChXS0J1bmRsZVBhZ2VJbnN0YWxsUGFnZU92ZXJsYXlXaXRoQW5pbWF0aW9uKTogRGl0
dG8uCisgICAgICAgIChXS0J1bmRsZVBhZ2VVbmluc3RhbGxQYWdlT3ZlcmxheVdpdGhBbmltYXRp
b24pOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQ
REZQbHVnaW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6anNQREZEb2NQcmludCk6
IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6Zm9jdXNQbHVnaW5FbGVtZW50KTogRGl0dG8uCisg
ICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnNldFN0YXR1c2JhclRleHQpOiBEaXR0by4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9jdXMpOiBVcGRh
dGVkIGZvciBjaGFuZ2VzIHRvIENocm9tZUNsaWVudC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hy
b21lQ2xpZW50OjplbGVtZW50RGlkQmx1cik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJD
aHJvbWVDbGllbnQ6Om1ha2VGaXJzdFJlc3BvbmRlcik6IERpdHRvLgorICAgICAgICAoV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyk6IERpdHRvLgorICAgICAgICAoV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCk6IERpdHRvLgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydCk6IERp
dHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25m
aXJtKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNj
cmlwdFByb21wdCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNv
bnRlbnRzU2l6ZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQpOiBEaXR0by4KKyAgICAgICAgKFdl
YktpdDo6V2ViQ2hyb21lQ2xpZW50OjpwcmludCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpX
ZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6IERpdHRvLgorICAgICAgICAo
V2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xv
ckNob29zZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpj
cmVhdGVTZWFyY2hQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcik6IERpdHRvLgorICAgICAgICAoV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcik6IERpdHRv
LgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c3VwcG9y
dHNGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdl
YktpdDo6V2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4K
KyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRIZWFkZXJMYXllcik6IERp
dHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEZvb3RlckxheWVy
KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGls
ZWRCYWNraW5nRm9yRnJhbWVWaWV3KTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDogRGl0dG8uCisKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoQ3JlYXRlUGFnZSk6IFBhc3MgcmVm
ZXJlbmNlLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9y
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yQ2xpZW50Ojp+V2ViSW5z
cGVjdG9yQ2xpZW50KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvckNsaWVu
dDo6aGlkZUhpZ2hsaWdodCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JD
bGllbnQ6OnNob3dQYWludFJlY3QpOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvRmluZENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaW5kQ29udHJvbGxlcjo6
dXBkYXRlRmluZFVJQWZ0ZXJQYWdlU2Nyb2xsKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OkZp
bmRDb250cm9sbGVyOjpoaWRlRmluZFVJKTogRGl0dG8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y3JlYXRl
V2l0aENvcmVNYWluRnJhbWUpOiBSZXR1cm4gUmVmIGluc3RlYWQgb2YKKyAgICAgICAgUGFzc1Jl
ZlB0ci4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKTogRGl0dG8u
CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaDogVXBkYXRlZCBmb3IgdGVoIGFib3ZlLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkluc3BlY3Rvcjo6b3BlbkluTmV3VGFiKTogUGFzcyByZWZlcmVuY2UuCisKIDIw
MTctMDEtMjEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMTEwMTIuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0RPTVdpbmRvd0ZldGNoLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCmluZGV4IGFkYWRhY2Q4M2MyNjBj
ZmE5ZDc2OTlkMzRmNmE0YmVjOTFkNjFmMDYuLmM1OWQzNjU2YTBjMjEwN2FhOWRhNzZkZjFhNTcz
N2RlZmY5ZjUyZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9N
V2luZG93RmV0Y2guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2lu
ZG93RmV0Y2guY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNiBD
YW5vbiBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
LCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsMTYgKzMzLDE3
IEBACiAjaWYgRU5BQkxFKEZFVENIX0FQSSkKIAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2lu
Y2x1ZGUgIkZldGNoUmVxdWVzdC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAi
RmV0Y2hSZXNwb25zZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgRE9NV2luZG93
RmV0Y2g6OmZldGNoKERPTVdpbmRvdyYgd2luZG93LCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QsIFJl
ZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBpZiAoIXdpbmRvdy5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpCisgICAgYXV0byogZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQo
KTsKKyAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm47Ci0gICAgRmV0Y2hSZXNwb25z
ZTo6ZmV0Y2goKndpbmRvdy5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHJlcXVlc3QsIFdURk1v
dmUocHJvbWlzZSkpOworICAgIEZldGNoUmVzcG9uc2U6OmZldGNoKCpkb2N1bWVudCwgcmVxdWVz
dCwgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0
LmNwcAppbmRleCBlNTQ4OWZjYjU0MGM5Njk0YWU0Mzc1OTY4M2RlOWFjZjAxODI0YWQ5Li4zZGNi
NTYwMzQzZWI1YWI5NDUxMWEzOTBlYjE5MTFiMzljYjBmMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwCkBAIC0y
MDQsNyArMjA0LDcgQEAgdm9pZCBEYXRhYmFzZUNvbnRleHQ6OmRhdGFiYXNlRXhjZWVkZWRRdW90
YShjb25zdCBTdHJpbmcmIG5hbWUsIERhdGFiYXNlRGV0YWlscwogICAgIGlmIChpczxEb2N1bWVu
dD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpIHsKICAgICAgICAgRG9jdW1lbnQmIGRvY3Vt
ZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAg
ICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkKLSAgICAgICAgICAgIHBhZ2Ut
PmNocm9tZSgpLmNsaWVudCgpLmV4Y2VlZGVkRGF0YWJhc2VRdW90YShkb2N1bWVudC5mcmFtZSgp
LCBuYW1lLCBkZXRhaWxzKTsKKyAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV4
Y2VlZGVkRGF0YWJhc2VRdW90YSgqZG9jdW1lbnQuZnJhbWUoKSwgbmFtZSwgZGV0YWlscyk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dC0+aXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJNYWMubW0KaW5kZXggNDE2YjE4MzRiZDhhYTYzNGI4YzdiYzJjZWU3ZjA5NDZiYzZiYjA3ZS4u
MDMyMGY5NTU2YjU3YjJiMDM3MjkxMmIwOGY1MjkyZWI0Zjg2ZWQyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAgLTM3MjksNyArMzcyOSw3IEBAIC0gKHZvaWQp
YWNjZXNzaWJpbGl0eVNob3dDb250ZXh0TWVudQogICAgICAgICB9CiAgICAgfQogICAgIAotICAg
IHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVudUF0KCZwYWdlLT5t
YWluRnJhbWUoKSwgcmVjdC5jZW50ZXIoKSk7CisgICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9s
bGVyKCkuc2hvd0NvbnRleHRNZW51QXQocGFnZS0+bWFpbkZyYW1lKCksIHJlY3QuY2VudGVyKCkp
OwogfQogCiAtICh2b2lkKWFjY2Vzc2liaWxpdHlTY3JvbGxUb1Zpc2libGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCBhM2Y2MmU1
NjQ0MTFmMTgwN2JmZjA5NWY1ZGI5Y2E1MmY2ZTZjZGU0Li5hZTdmZThjMTdmMGRiY2QxNWI3MDU0
ODZkNjQyYTQ1OGFlNTdiY2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC0xNzgsNyArMTc4LDcgQEAgYm9vbCBKU0RPTVdpbmRv
dzo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUs
IFByb3BlcnQKICAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0
YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgIC8vIERldGVjdCB3aGVuIHdlJ3Jl
IGdldHRpbmcgdGhlIHByb3BlcnR5ICdzaG93TW9kYWxEaWFsb2cnLCB0aGlzIGlzIGRpc2FibGVk
LCBhbmQgaGFzIGl0cyBvcmlnaW5hbCB2YWx1ZS4KICAgICAgICAgYm9vbCBpc1Nob3dNb2RhbERp
YWxvZ0FuZFNob3VsZEhpZGUgPSBwcm9wZXJ0eU5hbWUgPT0gc3RhdGUtPnByb3BlcnR5TmFtZXMo
KS5zaG93TW9kYWxEaWFsb2cKLSAgICAgICAgICAgICYmICFET01XaW5kb3c6OmNhblNob3dNb2Rh
bERpYWxvZyhmcmFtZSkKKyAgICAgICAgICAgICYmICFET01XaW5kb3c6OmNhblNob3dNb2RhbERp
YWxvZygqZnJhbWUpCiAgICAgICAgICAgICAmJiBzbG90LmlzVmFsdWUoKSAmJiBpc0hvc3RGdW5j
dGlvbihzbG90LmdldFZhbHVlKHN0YXRlLCBwcm9wZXJ0eU5hbWUpLCBqc0RPTVdpbmRvd0luc3Rh
bmNlRnVuY3Rpb25TaG93TW9kYWxEaWFsb2cpOwogICAgICAgICAvLyBVbmxlc3Mgd2UncmUgaW4g
dGhlIHNob3dNb2RhbERpYWxvZyBzcGVjaWFsIGNhc2UsIHdlJ3JlIGRvbmUuCiAgICAgICAgIGlm
ICghaXNTaG93TW9kYWxEaWFsb2dBbmRTaG91bGRIaWRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggMDgxNjBhZGQzYTNhM2RlOWNkNDg3ZmQ0MTQxMzgyMTYxYzkxZjE5Yy4uOTQ4ZDY3Y2Vl
NDM5YjUwZGY4MGJjZmY1OWI3N2YwMjI2NzBiY2ViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC04NDgsMTMgKzg0OCwxMSBAQCB2b2lkIERvY3VtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29u
c3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKIHsKICAgICBDb250YWluZXJOb2RlOjpjaGlsZHJlbkNo
YW5nZWQoY2hhbmdlKTsKIAotI2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBGSVhNRTogQ2hyb21l
OjpkaWRSZWNlaXZlRG9jVHlwZSgpIHVzZWQgdG8gYmUgY2FsbGVkIG9ubHkgd2hlbiB0aGUgZG9j
dHlwZSBjaGFuZ2VkLiBXZSBuZWVkIHRvIGNoZWNrIHRoZQogICAgIC8vIGltcGFjdCBvZiBjYWxs
aW5nIHRoaXMgc3lzdGVtYXRpY2FsbHkuIElmIHRoZSBvdmVyaGVhZCBpcyBuZWdsaWdpYmxlLCB3
ZSBuZWVkIHRvIHJlbmFtZSBkaWRSZWNlaXZlRG9jVHlwZSwKICAgICAvLyBvdGhlcndpc2UsIHdl
IG5lZWQgdG8gZGV0ZWN0IHRoZSBkb2MgdHlwZSBjaGFuZ2VzIGJlZm9yZSB1cGRhdGluZyB0aGUg
dmlld3BvcnQuCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCi0gICAgICAgIHBh
Z2UtPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKGZyYW1lKCkpOwotI2VuZGlmCisgICAgICAg
IHBhZ2UtPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKCpmcmFtZSgpKTsKIAogICAgIEVsZW1l
bnQqIG5ld0RvY3VtZW50RWxlbWVudCA9IGNoaWxkcmVuT2ZUeXBlPEVsZW1lbnQ+KCp0aGlzKS5m
aXJzdCgpOwogICAgIGlmIChuZXdEb2N1bWVudEVsZW1lbnQgPT0gbV9kb2N1bWVudEVsZW1lbnQp
CkBAIC0yMzcyLDkgKzIzNzAsMTAgQEAgdm9pZCBEb2N1bWVudDo6cGxhdGZvcm1TdXNwZW5kT3JT
dG9wQWN0aXZlRE9NT2JqZWN0cygpCiB7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChXZWJU
aHJlYWRDb3VudE9mT2JzZXJ2ZWRDb250ZW50TW9kaWZpZXJzKCkgPiAwKSB7Ci0gICAgICAgIEZy
YW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCk7Ci0gICAgICAgIGlmIChQYWdlKiBwYWdlID0gZnJh
bWUgPyBmcmFtZS0+cGFnZSgpIDogbnVsbHB0cikKLSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgp
LmNsaWVudCgpLmNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhmcmFtZSk7CisgICAgICAgIGlm
IChhdXRvKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBw
YWdlID0gZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGll
bnQoKS5jbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoKmZyYW1lKTsKKyAgICAgICAgfQogICAg
IH0KICNlbmRpZgogfQpAQCAtMzIxOCw5ICszMjE3LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRl
Vmlld3BvcnRBcmd1bWVudHMoKQogICAgICAgICBtX2RpZERpc3BhdGNoVmlld3BvcnRQcm9wZXJ0
aWVzQ2hhbmdlZCA9IHRydWU7CiAjZW5kaWYKICAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5kaXNw
YXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShtX3ZpZXdwb3J0QXJndW1lbnRzKTsKLSNp
ZiBQTEFURk9STShJT1MpCi0gICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuZGlkUmVjZWl2ZURvY1R5
cGUoZnJhbWUoKSk7Ci0jZW5kaWYKKyAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5kaWRSZWNlaXZl
RG9jVHlwZSgqZnJhbWUoKSk7CiAgICAgfQogfQogCkBAIC0zNjQyLDcgKzM2MzksNyBAQCBib29s
IERvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGb2N1c0RpcmVj
dGlvbiBkaXJlY3Rpb24sIEZvYwogICAgICAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+
KCpvbGRGb2N1c2VkRWxlbWVudCkpCiAgICAgICAgICAgICAgICAgZG93bmNhc3Q8SFRNTElucHV0
RWxlbWVudD4oKm9sZEZvY3VzZWRFbGVtZW50KS5lbmRFZGl0aW5nKCk7CiAgICAgICAgICAgICBp
ZiAocGFnZSgpKQotICAgICAgICAgICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxl
bWVudERpZEJsdXIob2xkRm9jdXNlZEVsZW1lbnQuZ2V0KCkpOworICAgICAgICAgICAgICAgIHBh
Z2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZEJsdXIoKm9sZEZvY3VzZWRFbGVtZW50
KTsKICAgICAgICAgICAgIEFTU0VSVCghbV9mb2N1c2VkRWxlbWVudCk7CiAgICAgICAgIH0KIApA
QCAtNDAwMCw3ICszOTk3LDcgQEAgdm9pZCBEb2N1bWVudDo6Y3JlYXRlRE9NV2luZG93KCkKICAg
ICBBU1NFUlQobV9mcmFtZSk7CiAgICAgQVNTRVJUKCFtX2RvbVdpbmRvdyk7CiAKLSAgICBtX2Rv
bVdpbmRvdyA9IERPTVdpbmRvdzo6Y3JlYXRlKHRoaXMpOworICAgIG1fZG9tV2luZG93ID0gRE9N
V2luZG93OjpjcmVhdGUoKnRoaXMpOwogCiAgICAgQVNTRVJUKG1fZG9tV2luZG93LT5kb2N1bWVu
dCgpID09IHRoaXMpOwogICAgIEFTU0VSVChtX2RvbVdpbmRvdy0+ZnJhbWUoKSA9PSBtX2ZyYW1l
KTsKQEAgLTQwMTUsNyArNDAxMiw3IEBAIHZvaWQgRG9jdW1lbnQ6OnRha2VET01XaW5kb3dGcm9t
KERvY3VtZW50KiBkb2N1bWVudCkKICAgICBBU1NFUlQocGFnZUNhY2hlU3RhdGUoKSA9PSBOb3RJ
blBhZ2VDYWNoZSk7CiAKICAgICBtX2RvbVdpbmRvdyA9IFdURk1vdmUoZG9jdW1lbnQtPm1fZG9t
V2luZG93KTsKLSAgICBtX2RvbVdpbmRvdy0+ZGlkU2VjdXJlVHJhbnNpdGlvblRvKHRoaXMpOwor
ICAgIG1fZG9tV2luZG93LT5kaWRTZWN1cmVUcmFuc2l0aW9uVG8oKnRoaXMpOwogCiAgICAgQVNT
RVJUKG1fZG9tV2luZG93LT5kb2N1bWVudCgpID09IHRoaXMpOwogICAgIEFTU0VSVChtX2RvbVdp
bmRvdy0+ZnJhbWUoKSA9PSBtX2ZyYW1lKTsKQEAgLTU1NzMsMTIgKzU1NzAsMTIgQEAgdm9pZCBE
b2N1bWVudDo6cmVxdWVzdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZ1
bGxTY3JlZW5DaGVja1R5cGUKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGJvb2wgaGFz
S2V5Ym9hcmRBY2Nlc3MgPSB0cnVlOwotICAgICAgICBpZiAoIXBhZ2UoKS0+Y2hyb21lKCkuY2xp
ZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50LCBoYXNLZXlib2FyZEFj
Y2VzcykpIHsKKyAgICAgICAgaWYgKCFwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnN1cHBvcnRz
RnVsbFNjcmVlbkZvckVsZW1lbnQoKmVsZW1lbnQsIGhhc0tleWJvYXJkQWNjZXNzKSkgewogICAg
ICAgICAgICAgLy8gVGhlIG5ldyBmdWxsIHNjcmVlbiBBUEkgZG9lcyBub3QgYWNjZXB0IGEgImZs
YWdzIiBwYXJhbWV0ZXIsIHNvIGZhbGwgYmFjayB0byBkaXNhbGxvd2luZwogICAgICAgICAgICAg
Ly8ga2V5Ym9hcmQgaW5wdXQgaWYgdGhlIGNocm9tZSBjbGllbnQgcmVmdXNlcyB0byBhbGxvdyBr
ZXlib2FyZCBpbnB1dC4KICAgICAgICAgICAgIGhhc0tleWJvYXJkQWNjZXNzID0gZmFsc2U7CiAK
LSAgICAgICAgICAgIGlmICghcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0c0Z1bGxT
Y3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQsIGhhc0tleWJvYXJkQWNjZXNzKSkKKyAgICAgICAgICAg
IGlmICghcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVt
ZW50KCplbGVtZW50LCBoYXNLZXlib2FyZEFjY2VzcykpCiAgICAgICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KIApAQCAtNTYzMSw3ICs1NjI4LDcgQEAgdm9pZCBEb2N1bWVudDo6cmVxdWVz
dEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZ1bGxTY3JlZW5DaGVja1R5
cGUKICAgICAgICAgLy8gNS4gUmV0dXJuLCBhbmQgcnVuIHRoZSByZW1haW5pbmcgc3RlcHMgYXN5
bmNocm9ub3VzbHkuCiAgICAgICAgIC8vIDYuIE9wdGlvbmFsbHksIHBlcmZvcm0gc29tZSBhbmlt
YXRpb24uCiAgICAgICAgIG1fYXJlS2V5c0VuYWJsZWRJbkZ1bGxTY3JlZW4gPSBoYXNLZXlib2Fy
ZEFjY2VzczsKLSAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbnRlckZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KGVsZW1lbnQpOworICAgICAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgp
LmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoKmVsZW1lbnQpOwogCiAgICAgICAgIC8vIDcuIE9w
dGlvbmFsbHksIGRpc3BsYXkgYSBtZXNzYWdlIGluZGljYXRpbmcgaG93IHRoZSB1c2VyIGNhbiBl
eGl0IGRpc3BsYXlpbmcgdGhlIGNvbnRleHQgb2JqZWN0IGZ1bGxzY3JlZW4uCiAgICAgICAgIHJl
dHVybjsKQEAgLTU3MjMsMTIgKzU3MjAsMTIgQEAgdm9pZCBEb2N1bWVudDo6d2Via2l0RXhpdEZ1
bGxzY3JlZW4oKQogICAgIC8vIE9ubHkgZXhpdCBvdXQgb2YgZnVsbCBzY3JlZW4gd2luZG93IG1v
ZGUgaWYgdGhlcmUgYXJlIG5vIHJlbWFpbmluZyBlbGVtZW50cyBpbiB0aGUgCiAgICAgLy8gZnVs
bCBzY3JlZW4gc3RhY2suCiAgICAgaWYgKCFuZXdUb3ApIHsKLSAgICAgICAgcGFnZSgpLT5jaHJv
bWUoKS5jbGllbnQoKS5leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQobV9mdWxsU2NyZWVuRWxlbWVu
dC5nZXQoKSk7CisgICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZXhpdEZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KCptX2Z1bGxTY3JlZW5FbGVtZW50KTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAogICAgIC8vIE90aGVyd2lzZSwgbm90aWZ5IHRoZSBjaHJvbWUgb2YgdGhlIG5ldyBmdWxs
IHNjcmVlbiBlbGVtZW50LgotICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJGdWxs
U2NyZWVuRm9yRWxlbWVudChuZXdUb3ApOworICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCku
ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCgqbmV3VG9wKTsKIH0KIAogYm9vbCBEb2N1bWVudDo6
d2Via2l0RnVsbHNjcmVlbkVuYWJsZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4
IDg4ZTNlOTkzMDFhNzE5ZGUyNTQwODNhOTMyNmEzYmFjZjNlYzM4ZmMuLjg1ZTBiMjZmMWMzZTc4
YjJjYmJjNjg1YjZhZDE5ZjI1ZDBkOWJlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTIz
NDgsNyArMjM0OCw3IEBAIHZvaWQgRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNT
ZWxlY3Rpb24sIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIAogICAgIGlmIChkb2N1bWVudCgp
LmZvY3VzZWRFbGVtZW50KCkgPT0gdGhpcykgewogICAgICAgICBpZiAoZG9jdW1lbnQoKS5wYWdl
KCkpCi0gICAgICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxl
bWVudERpZFJlZm9jdXModGhpcyk7CisgICAgICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hy
b21lKCkuY2xpZW50KCkuZWxlbWVudERpZFJlZm9jdXMoKnRoaXMpOwogCiAgICAgICAgIHJldHVy
bjsKICAgICB9CkBAIC0yMzcxLDcgKzIzNzEsNyBAQCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGJvb2wg
cmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAgICAg
ICAgIC8vIElmIGEgZm9jdXMgZXZlbnQgaGFuZGxlciBjaGFuZ2VzIHRoZSBmb2N1cyB0byBhIGRp
ZmZlcmVudCBub2RlIGl0CiAgICAgICAgIC8vIGRvZXMgbm90IG1ha2Ugc2Vuc2UgdG8gY29udGlu
dWUgYW5kIHVwZGF0ZSBhcHBlYXJlbmNlLgogICAgICAgICBwcm90ZWN0ID0gdGhpczsKLSAgICAg
ICAgaWYgKCFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudCh0aGlzLCBk
b2N1bWVudCgpLmZyYW1lKCksIGRpcmVjdGlvbikpCisgICAgICAgIGlmICghcGFnZS0+Zm9jdXND
b250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQodGhpcywgKmRvY3VtZW50KCkuZnJhbWUoKSwg
ZGlyZWN0aW9uKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI0NDEsNyArMjQ0
MSw3IEBAIHZvaWQgRWxlbWVudDo6Ymx1cigpCiAgICAgY2FuY2VsRm9jdXNBcHBlYXJhbmNlVXBk
YXRlKCk7CiAgICAgaWYgKHRyZWVTY29wZSgpLmZvY3VzZWRFbGVtZW50SW5TY29wZSgpID09IHRo
aXMpIHsKICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKLSAg
ICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVt
ZW50KDAsIGZyYW1lKTsKKyAgICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxl
cigpLnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIsICpmcmFtZSk7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIGRvY3VtZW50KCkuc2V0Rm9jdXNlZEVsZW1lbnQobnVsbHB0cik7CiAgICAgfQpA
QCAtMjQ2NCw3ICsyNDY0LDcgQEAgdm9pZCBFbGVtZW50OjpkaXNwYXRjaEZvY3VzT3V0RXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZlB0cjxFbGVtZW4KIHZvaWQgRWxlbWVu
dDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KFJlZlB0cjxFbGVtZW50PiYmIG9sZEZvY3VzZWRFbGVtZW50
LCBGb2N1c0RpcmVjdGlvbikKIHsKICAgICBpZiAoZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAg
IGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkRm9jdXModGhp
cyk7CisgICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50
RGlkRm9jdXMoKnRoaXMpOwogCiAgICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KCp0
aGlzLCBGb2N1c0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmZvY3VzRXZlbnQsIGZhbHNlLCBm
YWxzZSwgZG9jdW1lbnQoKS5kZWZhdWx0VmlldygpLCAwLCBXVEZNb3ZlKG9sZEZvY3VzZWRFbGVt
ZW50KSkpOwogfQpAQCAtMjQ3Miw3ICsyNDcyLDcgQEAgdm9pZCBFbGVtZW50OjpkaXNwYXRjaEZv
Y3VzRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgb2xkRm9jdXNlZEVsZW1lbnQsIEZvY3VzRGlyZWMK
IHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9j
dXNlZEVsZW1lbnQpCiB7CiAgICAgaWYgKGRvY3VtZW50KCkucGFnZSgpKQotICAgICAgICBkb2N1
bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZEJsdXIodGhpcyk7Cisg
ICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkQmx1
cigqdGhpcyk7CiAKICAgICBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQoKnRoaXMsIEZv
Y3VzRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYmx1ckV2ZW50LCBmYWxzZSwgZmFsc2UsIGRv
Y3VtZW50KCkuZGVmYXVsdFZpZXcoKSwgMCwgV1RGTW92ZShuZXdGb2N1c2VkRWxlbWVudCkpKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcAppbmRleCBiYjNhYjk5ZTYxYzViZGMxMDQzZjNlYmM0ZTBmNzk2YTJk
Y2JkOGI3Li43NjYyMzA1NDcxZTUxZmJiZjZlNGZhMzU1NzVlZDZhYmFiZmM3MDc2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L05vZGUuY3BwCkBAIC0yMjUzLDcgKzIyNTMsNyBAQCB2b2lkIE5vZGU6OmRlZmF1bHRFdmVudEhh
bmRsZXIoRXZlbnQmIGV2ZW50KQogICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5jb250ZXh0bWVudUV2ZW50KSB7CiAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1
bWVudCgpLmZyYW1lKCkpCiAgICAgICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdl
KCkpCi0gICAgICAgICAgICAgICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuaGFuZGxl
Q29udGV4dE1lbnVFdmVudCgmZXZlbnQpOworICAgICAgICAgICAgICAgIHBhZ2UtPmNvbnRleHRN
ZW51Q29udHJvbGxlcigpLmhhbmRsZUNvbnRleHRNZW51RXZlbnQoZXZlbnQpOwogI2VuZGlmCiAg
ICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnRleHRJbnB1dEV2ZW50KSB7
CiAgICAgICAgIGlmIChpczxUZXh0RXZlbnQ+KGV2ZW50KSkgewpAQCAtMjI3Miw3ICsyMjcyLDcg
QEAgdm9pZCBOb2RlOjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKIAogICAgICAg
ICAgICAgaWYgKHJlbmRlcmVyKSB7CiAgICAgICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9
IGRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFu
ZGxlcigpLnN0YXJ0UGFuU2Nyb2xsaW5nKGRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIpKTsK
KyAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLnN0YXJ0UGFuU2Nyb2xs
aW5nKGRvd25jYXN0PFJlbmRlckJveD4oKnJlbmRlcmVyKSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JD
b21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5k
ZXggYWNmMjI2OGE3ZTc5MzA5MjdjZWNiYjEzZDI0ZDY0Y2ZhZGJmNmRkZS4uMDFmMDcxY2NhZGNk
ZjE5NjQxZjI4Nzc3NDE5ZGI0NmNiNTQwYzYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvckNvbW1hbmQuY3BwCkBAIC05MzAsNyArOTMwLDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZVBy
aW50KEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJp
bmcKICAgICBQYWdlKiBwYWdlID0gZnJhbWUucGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIHBhZ2UtPmNocm9tZSgpLnByaW50KCZmcmFtZSk7CisgICAg
cGFnZS0+Y2hyb21lKCkucHJpbnQoZnJhbWUpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDY3NTlmZjE3N2ZlNzY3
MWNiYjE2OTM1ZWIzNjEwZDJhNTY5N2I3ODYuLmFjNWQwYmZhZGU4YmRlYjAxNjViNWJmNjRlZWI0
NmU0YjgzNWUxMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxl
Y3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3Bw
CkBAIC0yMTU3LDcgKzIxNTcsNyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRGb2N1c2VkRWxl
bWVudElmTmVlZGVkKCkKICAgICBib29sIGNhcmV0QnJvd3NpbmcgPSBtX2ZyYW1lLT5zZXR0aW5n
cygpLmNhcmV0QnJvd3NpbmdFbmFibGVkKCk7CiAgICAgaWYgKGNhcmV0QnJvd3NpbmcpIHsKICAg
ICAgICAgaWYgKEVsZW1lbnQqIGFuY2hvciA9IGVuY2xvc2luZ0FuY2hvckVsZW1lbnQobV9zZWxl
Y3Rpb24uYmFzZSgpKSkgewotICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRy
b2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChhbmNob3IsIG1fZnJhbWUpOworICAgICAgICAgICAg
bV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChhbmNo
b3IsICptX2ZyYW1lKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAg
LTIxNjksMTYgKzIxNjksMTYgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0Rm9jdXNlZEVsZW1l
bnRJZk5lZWRlZCgpCiAgICAgICAgICAgICAvLyBzbyBhZGQgdGhlICFpc0ZyYW1lRWxlbWVudCBj
aGVjayBoZXJlLiBUaGVyZSdzIHByb2JhYmx5IGEgYmV0dGVyIHdheSB0byBtYWtlIHRoaXMKICAg
ICAgICAgICAgIC8vIHdvcmsgaW4gdGhlIGxvbmcgdGVybSwgYnV0IHRoaXMgaXMgdGhlIHNhZmVz
dCBmaXggYXQgdGhpcyB0aW1lLgogICAgICAgICAgICAgaWYgKHRhcmdldC0+aXNNb3VzZUZvY3Vz
YWJsZSgpICYmICFpc0ZyYW1lRWxlbWVudCh0YXJnZXQpKSB7Ci0gICAgICAgICAgICAgICAgbV9m
cmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudCh0YXJnZXQs
IG1fZnJhbWUpOworICAgICAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9s
bGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQodGFyZ2V0LCAqbV9mcmFtZSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0LT5w
YXJlbnRPclNoYWRvd0hvc3RFbGVtZW50KCk7CiAgICAgICAgIH0KLSAgICAgICAgbV9mcmFtZS0+
ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZEVsZW1lbnQoMCk7CisgICAgICAgIG1fZnJhbWUtPmRvY3Vt
ZW50KCktPnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIpOwogICAgIH0KIAogICAgIGlmIChjYXJl
dEJyb3dzaW5nKQotICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNl
dEZvY3VzZWRFbGVtZW50KDAsIG1fZnJhbWUpOworICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZv
Y3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIsICptX2ZyYW1lKTsKIH0K
IAogdm9pZCBEcmFnQ2FyZXRDb250cm9sbGVyOjpwYWludERyYWdDYXJldChGcmFtZSogZnJhbWUs
IEdyYXBoaWNzQ29udGV4dCYgcCwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25z
dCBMYXlvdXRSZWN0JiBjbGlwUmVjdCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRG
cmFtZS5jcHAKaW5kZXggMzYzMzk4ZDZlZmNjMTRjNGI2YmI3NWYzMTM4N2NkZDdlN2M1OTlkMS4u
MjFmMjRhZDM5ZjRhOTE2NmM4YjExM2NhZTI3MDBmZTlmNDUxY2E4YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAKQEAgLTk4LDkgKzk4LDkgQEAgdm9pZCBDYWNoZWRGcmFt
ZUJhc2U6OnJlc3RvcmUoKQogICAgIGZyYW1lLmxvYWRlcigpLmNsaWVudCgpLmRpZFJlc3RvcmVG
cm9tUGFnZUNhY2hlKCk7CiAKICAgICAvLyBSZWNvbnN0cnVjdCB0aGUgRnJhbWVUcmVlLiBBbmQg
b3BlbiB0aGUgY2hpbGQgQ2FjaGVkRnJhbWVzIGluIHRoZWlyIHJlc3BlY3RpdmUgRnJhbWVMb2Fk
ZXJzLgotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2NoaWxkRnJhbWVzLnNpemUoKTsg
KytpKSB7Ci0gICAgICAgIGZyYW1lLnRyZWUoKS5hcHBlbmRDaGlsZCgmbV9jaGlsZEZyYW1lc1tp
XS0+dmlldygpLT5mcmFtZSgpKTsKLSAgICAgICAgbV9jaGlsZEZyYW1lc1tpXS0+b3BlbigpOwor
ICAgIGZvciAoYXV0byYgY2hpbGRGcmFtZSA6IG1fY2hpbGRGcmFtZXMpIHsKKyAgICAgICAgZnJh
bWUudHJlZSgpLmFwcGVuZENoaWxkKGNoaWxkRnJhbWUtPnZpZXcoKS0+ZnJhbWUoKSk7CisgICAg
ICAgIGNoaWxkRnJhbWUtPm9wZW4oKTsKICAgICB9CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0x
MTEsNyArMTExLDcgQEAgdm9pZCBDYWNoZWRGcmFtZUJhc2U6OnJlc3RvcmUoKQogICAgICAgICAg
ICAgLy8gRklYTUU6IEFkZCBTQ1JPTExfTElTVEVORVIgdG8gdGhlIGxpc3Qgb2YgZXZlbnQgdHlw
ZXMgb24gRG9jdW1lbnQsIGFuZCB1c2UgbV9kb2N1bWVudC0+aGFzTGlzdGVuZXJUeXBlKCkuIFNl
ZSA8cmRhcjovL3Byb2JsZW0vOTYxNTQ4Mj4uCiAgICAgICAgICAgICAvLyBGSVhNRTogQ2FuIHVz
ZSBEb2N1bWVudDo6aGFzTGlzdGVuZXJUeXBlKCkgbm93LgogICAgICAgICAgICAgaWYgKGRvbVdp
bmRvdy0+c2Nyb2xsRXZlbnRMaXN0ZW5lckNvdW50KCkgJiYgZnJhbWUucGFnZSgpKQotICAgICAg
ICAgICAgICAgIGZyYW1lLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxO
b3RpZmljYXRpb25zKCZmcmFtZSwgdHJ1ZSk7CisgICAgICAgICAgICAgICAgZnJhbWUucGFnZSgp
LT5jaHJvbWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoZnJhbWUsIHRy
dWUpOwogICAgICAgICB9CiAgICAgfQogI2VuZGlmCkBAIC0xNjMsNyArMTYzLDcgQEAgQ2FjaGVk
RnJhbWU6OkNhY2hlZEZyYW1lKEZyYW1lJiBmcmFtZSkKICAgICAvLyAxIC0gV2UgcmV1c2UgdGhl
IG1haW4gZnJhbWUsIHNvIHdoZW4gaXQgbmF2aWdhdGVzIHRvIGEgbmV3IHBhZ2UgbG9hZCBpdCBu
ZWVkcyB0byBzdGFydCB3aXRoIGEgYmxhbmsgRnJhbWVUcmVlLgogICAgIC8vIDIgLSBJdCdzIG11
Y2ggZWFzaWVyIHRvIGRlc3Ryb3kgYSBDYWNoZWRGcmFtZSB3aGlsZSBpdCByZXNpZGVzIGluIHRo
ZSBQYWdlQ2FjaGUgaWYgaXQgaXMgZGlzY29ubmVjdGVkIGZyb20gaXRzIHBhcmVudC4KICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9jaGlsZEZyYW1lcy5zaXplKCk7ICsraSkKLSAgICAg
ICAgZnJhbWUudHJlZSgpLnJlbW92ZUNoaWxkKCZtX2NoaWxkRnJhbWVzW2ldLT52aWV3KCktPmZy
YW1lKCkpOworICAgICAgICBmcmFtZS50cmVlKCkucmVtb3ZlQ2hpbGQobV9jaGlsZEZyYW1lc1tp
XS0+dmlldygpLT5mcmFtZSgpKTsKIAogICAgIGlmICghbV9pc01haW5GcmFtZSkKICAgICAgICAg
ZnJhbWUucGFnZSgpLT5kZWNyZW1lbnRTdWJmcmFtZUNvdW50KCk7CkBAIC0xODEsNyArMTgxLDcg
QEAgQ2FjaGVkRnJhbWU6OkNhY2hlZEZyYW1lKEZyYW1lJiBmcmFtZSkKICAgICBpZiAobV9pc01h
aW5GcmFtZSkgewogICAgICAgICBpZiAoRE9NV2luZG93KiBkb21XaW5kb3cgPSBtX2RvY3VtZW50
LT5kb21XaW5kb3coKSkgewogICAgICAgICAgICAgaWYgKGRvbVdpbmRvdy0+c2Nyb2xsRXZlbnRM
aXN0ZW5lckNvdW50KCkgJiYgZnJhbWUucGFnZSgpKQotICAgICAgICAgICAgICAgIGZyYW1lLnBh
Z2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKCZmcmFt
ZSwgZmFsc2UpOworICAgICAgICAgICAgICAgIGZyYW1lLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50
KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKGZyYW1lLCBmYWxzZSk7CiAgICAgICAgIH0K
ICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAKaW5kZXgg
NWJhMmM5NTRiMmJkODk5NWJjMGIyYjcyZDJmZmNkMzc5MTkxMDdhNi4uNTBlMWZjYjE0MzcxM2Ez
MGFjOTE1MzMxM2I1ODkzMjU3OTBkMjFlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9Db2xvcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0
VHlwZS5jcHAKQEAgLTE1Niw3ICsxNTYsNyBAQCB2b2lkIENvbG9ySW5wdXRUeXBlOjpoYW5kbGVE
T01BY3RpdmF0ZUV2ZW50KEV2ZW50JiBldmVudCkKIAogICAgIGlmIChDaHJvbWUqIGNocm9tZSA9
IHRoaXMtPmNocm9tZSgpKSB7CiAgICAgICAgIGlmICghbV9jaG9vc2VyKQotICAgICAgICAgICAg
bV9jaG9vc2VyID0gY2hyb21lLT5jcmVhdGVDb2xvckNob29zZXIodGhpcywgdmFsdWVBc0NvbG9y
KCkpOworICAgICAgICAgICAgbV9jaG9vc2VyID0gY2hyb21lLT5jcmVhdGVDb2xvckNob29zZXIo
KnRoaXMsIHZhbHVlQXNDb2xvcigpKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgbV9jaG9v
c2VyLT5yZWF0dGFjaENvbG9yQ2hvb3Nlcih2YWx1ZUFzQ29sb3IoKSk7CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAppbmRleCA4MTFlYjBkNWQwNWI2YTZj
NzY4ODc4ZDAzZmMzM2MxYzI0OTQ2ZmIwLi5iYWViNTc2YjE1NjNlYjMxNTdiYjcyZWNkODdiNzgy
NzAwOWVmMzA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApA
QCAtMTI5LDcgKzEyOSw3IEBAIGJvb2wgSFRNTEFuY2hvckVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1
c2FibGUoS2V5Ym9hcmRFdmVudCYgZXZlbnQpIGNvbnN0CiAgICAgaWYgKCFkb2N1bWVudCgpLmZy
YW1lKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmICghZG9jdW1lbnQoKS5mcmFt
ZSgpLT5ldmVudEhhbmRsZXIoKS50YWJzVG9MaW5rcygmZXZlbnQpKQorICAgIGlmICghZG9jdW1l
bnQoKS5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS50YWJzVG9MaW5rcyhldmVudCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGlmICghcmVuZGVyZXIoKSAmJiBhbmNlc3RvcnNPZlR5cGU8
SFRNTENhbnZhc0VsZW1lbnQ+KCp0aGlzKS5maXJzdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKaW5kZXggZWE4YTNiMzNlMDAyNzgzMmQ2NzBm
OWUwOTg3YWNjYThkMzY4YmFhMi4uNjJjMjg2MTdhZTM1ZGU2NzMyZmZhMDY2MzM4ZmUzMTgxNjU0
NmNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQu
Y3BwCkBAIC0zNzAsMTAgKzM3MCw5IEBAIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNG
b2N1c2FibGUoKSBjb25zdAogCiBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzS2V5Ym9h
cmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCYgZXZlbnQpIGNvbnN0CiB7Ci0gICAgaWYgKGlzRm9j
dXNhYmxlKCkpCi0gICAgICAgIGlmIChkb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS50YWJzVG9BbGxGb3JtQ29u
dHJvbHMoJmV2ZW50KTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzRm9jdXNhYmxl
KCkKKyAgICAgICAgJiYgZG9jdW1lbnQoKS5mcmFtZSgpCisgICAgICAgICYmIGRvY3VtZW50KCku
ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvQWxsRm9ybUNvbnRyb2xzKGV2ZW50KTsKIH0K
IAogYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc01vdXNlRm9jdXNhYmxlKCkgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCmluZGV4IGQ4YTc5M2UzMGVi
ZjFiYzMzYjFhMzJhMmYyY2QxY2Y3YjkxODlkYmMuLmE5ZGI5MDUxOGRlNzEwMGY4NjFhZmNkZGJh
NmQyNjc1YTIwZTNiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVv
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNw
cApAQCAtMTcxLDcgKzE3MSw3IEBAIGJvb2wgSFRNTFZpZGVvRWxlbWVudDo6c3VwcG9ydHNGdWxs
c2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuCiAjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQogICAgIC8vIElmIHRoZSBmdWxsIHNjcmVlbiBBUEkgaXMgZW5hYmxl
ZCBhbmQgaXMgc3VwcG9ydGVkIGZvciB0aGUgY3VycmVudCBlbGVtZW50CiAgICAgLy8gZG8gbm90
IHJlcXVpcmUgdGhhdCB0aGUgcGxheWVyIGhhcyBhIHZpZGVvIHRyYWNrIHRvIGVudGVyIGZ1bGwg
c2NyZWVuLgotICAgIGlmICh2aWRlb0Z1bGxzY3JlZW5Nb2RlID09IEhUTUxNZWRpYUVsZW1lbnRF
bnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZVN0YW5kYXJkICYmIHBhZ2UtPmNocm9tZSgpLmNsaWVu
dCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQodGhpcywgZmFsc2UpKQorICAgIGlmICh2
aWRlb0Z1bGxzY3JlZW5Nb2RlID09IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZVN0YW5kYXJkICYmIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLnN1cHBvcnRzRnVsbFNj
cmVlbkZvckVsZW1lbnQoKnRoaXMsIGZhbHNlKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAjZW5k
aWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQu
Y3BwCmluZGV4IDU4YmQ2MmEzNjQ0N2YxMTQ5OGMzZDhjOTk1N2YxY2QxZjczYjBlNzcuLjk4YmQ3
MmJmZjJkMGRmODA2YWIwYWJmNTM3YmFlNjkwNzIyODQ4MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKQEAgLTExOSw3ICsxMTksNyBA
QCB2b2lkIFNwaW5CdXR0b25FbGVtZW50OjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVu
dCkKICAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLnNldENhcHR1cmlu
Z01vdXNlRXZlbnRzRWxlbWVudCh0aGlzKTsKICAgICAgICAgICAgICAgICAgICAgbV9jYXB0dXJp
bmcgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50
KCkucGFnZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkucmVnaXN0
ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcih0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHBh
Z2UtPmNocm9tZSgpLnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoKnRoaXMpOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgICAgIFVwRG93blN0YXRlIG9sZFVw
RG93blN0YXRlID0gbV91cERvd25TdGF0ZTsKQEAgLTIwNSw3ICsyMDUsNyBAQCB2b2lkIFNwaW5C
dXR0b25FbGVtZW50OjpyZWxlYXNlQ2FwdHVyZSgpCiAgICAgICAgICAgICBmcmFtZS0+ZXZlbnRI
YW5kbGVyKCkuc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KG51bGxwdHIpOwogICAgICAg
ICAgICAgbV9jYXB0dXJpbmcgPSBmYWxzZTsKICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0g
ZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkudW5yZWdp
c3RlclBvcHVwT3BlbmluZ09ic2VydmVyKHRoaXMpOworICAgICAgICAgICAgICAgIHBhZ2UtPmNo
cm9tZSgpLnVucmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcigqdGhpcyk7CiAgICAgICAgIH0K
ICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1h
Z2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcAppbmRleCBmZDBjM2UzNmYz
OTMzNDFkYmRhYTE4YzAzMWUxYjFlNzQ4N2VmY2M5Li5iYTliYWRmZTU2MmU0YmZlN2Y5ZTE0ZjBh
NmI1ZWQxOWI1MGFhM2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9t
YWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAKQEAgLTEx
Nyw3ICsxMTcsNyBAQCB2b2lkIEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjOjpkZWZhdWx0
RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKICAgICAgICAgaWYgKCFwYWdlKQogICAgICAgICAg
ICAgcmV0dXJuOwogCi0gICAgICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dJ
bWFnZUNvbnRyb2xzTWVudSgmZXZlbnQpOworICAgICAgICBwYWdlLT5jb250ZXh0TWVudUNvbnRy
b2xsZXIoKS5zaG93SW1hZ2VDb250cm9sc01lbnUoZXZlbnQpOwogICAgICAgICBldmVudC5zZXRE
ZWZhdWx0SGFuZGxlZCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAppbmRleCAzMTU0N2Ri
N2FmM2I1M2ZkN2ViNDI0MWM3MDU0M2Y4ZjRiNjZiMTdlLi43NDk4OGNiNWU2MDQ4NzIwODg5M2Iw
MzE2MDFjYmE4MjM0YmI5M2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcApAQCAtMzM5LDggKzMzOSw4IEBAIHZvaWQgSW5zcGVj
dG9yRnJvbnRlbmRIb3N0OjpzaG93Q29udGV4dE1lbnUoRXZlbnQqIGV2ZW50LCBjb25zdCBWZWN0
b3I8Q29udGV4dE1lCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYXV0byBtZW51UHJvdmlk
ZXIgPSBGcm9udGVuZE1lbnVQcm92aWRlcjo6Y3JlYXRlKHRoaXMsIHsgJnN0YXRlLCBmcm9udGVu
ZEFwaU9iamVjdCB9LCBpdGVtcyk7Ci0gICAgbV9mcm9udGVuZFBhZ2UtPmNvbnRleHRNZW51Q29u
dHJvbGxlcigpLnNob3dDb250ZXh0TWVudShldmVudCwgbWVudVByb3ZpZGVyLnB0cigpKTsKICAg
ICBtX21lbnVQcm92aWRlciA9IG1lbnVQcm92aWRlci5wdHIoKTsKKyAgICBtX2Zyb250ZW5kUGFn
ZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0NvbnRleHRNZW51KCpldmVudCwgbWVudVBy
b3ZpZGVyKTsKIH0KIAogI2VuZGlmCkBAIC0zNTUsNyArMzU1LDcgQEAgdm9pZCBJbnNwZWN0b3JG
cm9udGVuZEhvc3Q6OmRpc3BhdGNoRXZlbnRBc0NvbnRleHRNZW51RXZlbnQoRXZlbnQqIGV2ZW50
KQogICAgIE1vdXNlRXZlbnQmIG1vdXNlRXZlbnQgPSBkb3duY2FzdDxNb3VzZUV2ZW50PigqZXZl
bnQpOwogICAgIEludFBvaW50IG1vdXNlUG9pbnQgPSBJbnRQb2ludChtb3VzZUV2ZW50LmNsaWVu
dFgoKSwgbW91c2VFdmVudC5jbGllbnRZKCkpOwogCi0gICAgbV9mcm9udGVuZFBhZ2UtPmNvbnRl
eHRNZW51Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVudUF0KGZyYW1lLCBtb3VzZVBvaW50KTsK
KyAgICBtX2Zyb250ZW5kUGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0NvbnRleHRN
ZW51QXQoKmZyYW1lLCBtb3VzZVBvaW50KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGV2ZW50
KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCBlNzU0
OTVmZDQyNGMyM2U4OTUzNmNhOGQ0MzM5MDUzYmQ0ZTExYmJkLi41Nzc5MGI1MGNmY2RhNGE1MmYw
YzRjMDJlYjU3YWIyMzNhNmQ1N2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcApAQCAtNTcyLDE5ICs1NzIsMTkgQEAgY2xhc3MgRW1wdHlWaXNpdGVkTGlua1N0b3JlIGZp
bmFsIDogcHVibGljIFZpc2l0ZWRMaW5rU3RvcmUgewogICAgIHZvaWQgYWRkVmlzaXRlZExpbmso
UGFnZSYsIExpbmtIYXNoKSBmaW5hbCB7IH0KIH07CiAKLVJlZlB0cjxQb3B1cE1lbnU+IEVtcHR5
Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QKK1Jl
ZlB0cjxQb3B1cE1lbnU+IEVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50JikgY29uc3QKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVBvcHVw
TWVudSk7CiB9CiAKLVJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IEVtcHR5Q2hyb21lQ2xpZW50Ojpj
cmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QKK1JlZlB0cjxTZWFy
Y2hQb3B1cE1lbnU+IEVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50JikgY29uc3QKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBFbXB0eVNl
YXJjaFBvcHVwTWVudSk7CiB9CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKIAotc3Rk
Ojp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9y
Q2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYpCitzdGQ6OnVuaXF1ZV9w
dHI8Q29sb3JDaG9vc2VyPiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENv
bG9yQ2hvb3NlckNsaWVudCYsIGNvbnN0IENvbG9yJikKIHsKICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAppbmRleCA5MWMyZDM4NjkwMTBkYTVl
YTQzZDAwOWNkMGYxM2UwYjc4ZTdjZmY1Li5lMmFhNjBlZDc0ODkzNzQ4Njk2ZTg5MTcwMzNiMWNl
MDFmMWQ1MzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCkBAIC02MSw3ICs2
MSw3IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAg
ICAgdm9pZCBmb2N1c2VkRWxlbWVudENoYW5nZWQoRWxlbWVudCopIGZpbmFsIHsgfQogICAgIHZv
aWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSopIGZpbmFsIHsgfQogCi0gICAgUGFnZSogY3Jl
YXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0Zl
YXR1cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7
IH0KKyAgICBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUmLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0
JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWwg
eyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZvaWQgc2hvdygpIGZpbmFsIHsgfQogCiAgICAgYm9v
bCBjYW5SdW5Nb2RhbCgpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CkBAIC04NCwxOSArODQsMTkg
QEAgY2xhc3MgRW1wdHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2
b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2FnZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25z
dCBTdHJpbmcmLCB1bnNpZ25lZCwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQog
CiAgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSBmaW5hbCB7IHJldHVy
biBmYWxzZTsgfQotICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0
cmluZyYsIEZyYW1lKikgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGJvb2wgcnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYsIEZyYW1lJikgZmluYWwgeyByZXR1cm4g
dHJ1ZTsgfQogCiAgICAgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSBmaW5hbCB7IH0KIAotICAgIHZv
aWQgcnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9Ci0g
ICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSosIGNvbnN0IFN0cmluZyYpIGZpbmFs
IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFs
c2U7IH0KKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYsIGNvbnN0IFN0cmluZyYp
IGZpbmFsIHsgfQorICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmLCBjb25zdCBT
dHJpbmcmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgcnVuSmF2YVNjcmlwdFBy
b21wdChGcmFtZSYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFN0cmluZyYpIGZpbmFs
IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9u
SXNOYXR1cmFsKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIHNlbGVjdEl0ZW1B
bGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQogICAgIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxz
ZTsgfQotICAgIFJlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqKSBjb25zdCBmaW5hbDsKLSAgICBSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFBv
cHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0IGZpbmFsOwor
ICAgIFJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1l
bnVDbGllbnQmKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25z
dCBTdHJpbmcmKSBmaW5hbCB7IH0KIApAQCAtMTA2LDQzICsxMDYsNDcgQEAgY2xhc3MgRW1wdHlD
aHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lkIGludmFsaWRhdGVD
b250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmKSBvdmVycmlkZSB7IH0KICAgICB2b2lk
IGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYpIGZpbmFsIHsg
fQogICAgIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3Qg
SW50UmVjdCYpIGZpbmFsIHsgfQorCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAg
IHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50JikgZmluYWwgeyB9
CiAjZW5kaWYKKwogI2lmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCiAgICAg
dm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpIGZpbmFsIHsgfQogI2VuZGlmCiAKICAgICBJbnRQb2lu
dCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JiBwKSBjb25zdCBmaW5hbCB7IHJldHVy
biBwOyB9CiAgICAgSW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHIpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHI7IH0KKwogI2lmIFBMQVRGT1JNKElPUykKICAgICBJbnRQb2lu
dCBhY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYgcCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gcDsgfTsKICAgICBJbnRSZWN0IHJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5
U2NyZWVuKGNvbnN0IEludFJlY3QmIHIpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHI7IH07CiAjZW5k
aWYKKwogICAgIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCBm
aW5hbCB7IHJldHVybiAwOyB9Ci0gICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwg
Y29uc3QgSW50U2l6ZSYpIGNvbnN0IGZpbmFsIHsgfQorICAgIHZvaWQgY29udGVudHNTaXplQ2hh
bmdlZChGcmFtZSYsIGNvbnN0IEludFNpemUmKSBjb25zdCBmaW5hbCB7IH0KIAogICAgIHZvaWQg
c2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBmaW5hbCB7IH0KICAgICB2b2lkIG1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCkgZmluYWwg
eyB9CiAKICAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgVGV4dERpcmVjdGlvbikg
ZmluYWwgeyB9CiAKLSAgICB2b2lkIHByaW50KEZyYW1lKikgZmluYWwgeyB9CisgICAgdm9pZCBw
cmludChGcmFtZSYpIGZpbmFsIHsgfQogCi0gICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEo
RnJhbWUqLCBjb25zdCBTdHJpbmcmLCBEYXRhYmFzZURldGFpbHMpIGZpbmFsIHsgfQorICAgIHZv
aWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lJiwgY29uc3QgU3RyaW5nJiwgRGF0YWJhc2VE
ZXRhaWxzKSBmaW5hbCB7IH0KIAogICAgIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2
NF90KSBmaW5hbCB7IH0KLSAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEoU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90KSBmaW5hbCB7IH0KKyAgICB2b2lkIHJlYWNoZWRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90KSBmaW5h
bCB7IH0KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHN0ZDo6dW5pcXVlX3B0
cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqLCBj
b25zdCBDb2xvciYpIGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNy
ZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYpIGZpbmFs
OwogI2VuZGlmCiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJikg
ZmluYWw7CiAgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+Jiwg
RmlsZUljb25Mb2FkZXImKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKGNv
bnN0IE5vZGUqKSBmaW5hbCB7IH0KLSAgICB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IE5vZGUq
KSBmaW5hbCB7IH0KKyAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhFbGVtZW50JikgZmluYWwgeyB9
CisgICAgdm9pZCBlbGVtZW50RGlkQmx1cihFbGVtZW50JikgZmluYWwgeyB9CiAKICNpZiAhUExB
VEZPUk0oSU9TKQogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpIGZpbmFsIHsgfQpA
QCAtMTUxLDggKzE1NSw4IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9t
ZUNsaWVudCB7CiAKICAgICB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0Jikg
Y29uc3QgZmluYWwgeyB9CiAKLSAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1l
KiwgR3JhcGhpY3NMYXllciopIGZpbmFsIHsgfQotICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlH
cmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciopIGZpbmFsIHsgfQorICAgIHZvaWQg
YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikgZmluYWwgeyB9
CisgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGlj
c0xheWVyKikgZmluYWwgeyB9CiAgICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hy
b25pemF0aW9uKCkgZmluYWwgeyB9CiAgICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJG
bHVzaCgpIGZpbmFsIHsgfQogCkBAIC0xNjIsMTUgKzE2NiwxNiBAQCBjbGFzcyBFbXB0eUNocm9t
ZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZvaWQgQVhGaW5pc2hGcmFtZUxv
YWQoKSBmaW5hbCB7IH0KICNlbmRpZgogCi0jaWYgUExBVEZPUk0oSU9TKQogI2lmIEVOQUJMRShJ
T1NfVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgZGlkUHJldmVudERlZmF1bHRGb3JFdmVudCgpIGZp
bmFsIHsgfQogI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpCiAgICAgdm9pZCBkaWRSZWNlaXZl
TW9iaWxlRG9jVHlwZShib29sKSBmaW5hbCB7IH0KLSAgICB2b2lkIHNldE5lZWRzU2Nyb2xsTm90
aWZpY2F0aW9ucyhGcmFtZSosIGJvb2wpIGZpbmFsIHsgfQotICAgIHZvaWQgb2JzZXJ2ZWRDb250
ZW50Q2hhbmdlKEZyYW1lKikgZmluYWwgeyB9Ci0gICAgdm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VP
YnNlcnZlcnMoRnJhbWUqKSBmaW5hbCB7IH0KLSAgICB2b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0
aW9uQnlTY3JvbGxpbmdGcmFtZShGcmFtZSopIGZpbmFsIHsgfQorICAgIHZvaWQgc2V0TmVlZHNT
Y3JvbGxOb3RpZmljYXRpb25zKEZyYW1lJiwgYm9vbCkgZmluYWwgeyB9CisgICAgdm9pZCBvYnNl
cnZlZENvbnRlbnRDaGFuZ2UoRnJhbWUmKSBmaW5hbCB7IH0KKyAgICB2b2lkIGNsZWFyQ29udGVu
dENoYW5nZU9ic2VydmVycyhGcmFtZSYpIGZpbmFsIHsgfQorICAgIHZvaWQgbm90aWZ5UmV2ZWFs
ZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKEZyYW1lJikgZmluYWwgeyB9CiAgICAgdm9pZCBk
aWRMYXlvdXQoTGF5b3V0VHlwZSkgZmluYWwgeyB9CiAgICAgdm9pZCBkaWRTdGFydE92ZXJmbG93
U2Nyb2xsKCkgZmluYWwgeyB9CiAgICAgdm9pZCBkaWRFbmRPdmVyZmxvd1Njcm9sbCgpIGZpbmFs
IHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggMTRkNDdkYTk3MmU5
MjgzNjlhYzgxM2NmOTYxODQ3NGYxYWYwMDE4NS4uNzhkZmYwYzQzYzVmYjAxMWM3ODBhNDQ3YTli
NjkyYzQ0YWZkNDNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCkBAIC0z
OTcsNyArMzk3LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6c3VibWl0Rm9ybShSZWY8Rm9ybVN1Ym1p
c3Npb24+JiYgc3VibWlzc2lvbikKIAogICAgIEZyYW1lKiB0YXJnZXRGcmFtZSA9IGZpbmRGcmFt
ZUZvck5hdmlnYXRpb24oc3VibWlzc2lvbi0+dGFyZ2V0KCksICZzdWJtaXNzaW9uLT5zdGF0ZSgp
LnNvdXJjZURvY3VtZW50KCkpOwogICAgIGlmICghdGFyZ2V0RnJhbWUpIHsKLSAgICAgICAgaWYg
KCFET01XaW5kb3c6OmFsbG93UG9wVXAoJm1fZnJhbWUpICYmICFTY3JpcHRDb250cm9sbGVyOjpw
cm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKKyAgICAgICAgaWYgKCFET01XaW5kb3c6OmFsbG93UG9w
VXAobV9mcmFtZSkgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgp
KQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIC8vIEZJWE1FOiB0YXJnZXRGcmFtZSBj
YW4gYmUgbnVsbCBmb3IgdHdvIGRpc3RpbmN0IHJlYXNvbnM6CkBAIC0xODUyLDExICsxODUyLDkg
QEAgdm9pZCBGcmFtZUxvYWRlcjo6Y29tbWl0UHJvdmlzaW9uYWxMb2FkKCkKICAgICAgICAgaGlz
dG9yeSgpLnVwZGF0ZUZvckNsaWVudFJlZGlyZWN0KCk7CiAKICAgICBpZiAobV9sb2FkaW5nRnJv
bUNhY2hlZFBhZ2UpIHsKLSNpZiBQTEFURk9STShJT1MpCiAgICAgICAgIC8vIE5vdGUsIGRpZFJl
Y2VpdmVEb2NUeXBlIGlzIGV4cGVjdGVkIHRvIGJlIGNhbGxlZCBmb3IgY2FjaGVkIHBhZ2VzLiBT
ZWUgPHJkYXI6Ly9wcm9ibGVtLzU5MDY3NTg+IGZvciBtb3JlIGRldGFpbHMuCi0gICAgICAgIGlm
IChtX2ZyYW1lLmRvY3VtZW50KCktPmRvY3R5cGUoKSAmJiBtX2ZyYW1lLnBhZ2UoKSkKLSAgICAg
ICAgICAgIG1fZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZSgmbV9mcmFt
ZSk7Ci0jZW5kaWYKKyAgICAgICAgaWYgKGF1dG8qIHBhZ2UgPSBtX2ZyYW1lLnBhZ2UoKSkKKyAg
ICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKG1fZnJhbWUpOwogICAg
ICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnJlc3VtZShBY3RpdmVET01PYmplY3Q6OlBhZ2VDYWNo
ZSk7CiAKICAgICAgICAgLy8gRm9yY2UgYSBsYXlvdXQgdG8gdXBkYXRlIHZpZXcgc2l6ZSBhbmQg
dGhlcmVieSB1cGRhdGUgc2Nyb2xsYmFycy4KQEAgLTI0MzksMTUgKzI0MzcsMTUgQEAgdm9pZCBG
cmFtZUxvYWRlcjo6ZGV0YWNoQ2hpbGRyZW4oKQogICAgICAgICBjaGlsZC0+bG9hZGVyKCkuZGV0
YWNoRnJvbVBhcmVudCgpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyOjpjbG9zZUFuZFJlbW92ZUNo
aWxkKEZyYW1lKiBjaGlsZCkKK3ZvaWQgRnJhbWVMb2FkZXI6OmNsb3NlQW5kUmVtb3ZlQ2hpbGQo
RnJhbWUmIGNoaWxkKQogewotICAgIGNoaWxkLT50cmVlKCkuZGV0YWNoRnJvbVBhcmVudCgpOwor
ICAgIGNoaWxkLnRyZWUoKS5kZXRhY2hGcm9tUGFyZW50KCk7CiAKLSAgICBjaGlsZC0+c2V0Vmll
dyhudWxscHRyKTsKLSAgICBpZiAoY2hpbGQtPm93bmVyRWxlbWVudCgpICYmIGNoaWxkLT5wYWdl
KCkpCi0gICAgICAgIGNoaWxkLT5wYWdlKCktPmRlY3JlbWVudFN1YmZyYW1lQ291bnQoKTsKLSAg
ICBjaGlsZC0+d2lsbERldGFjaFBhZ2UoKTsKLSAgICBjaGlsZC0+ZGV0YWNoRnJvbVBhZ2UoKTsK
KyAgICBjaGlsZC5zZXRWaWV3KG51bGxwdHIpOworICAgIGlmIChjaGlsZC5vd25lckVsZW1lbnQo
KSAmJiBjaGlsZC5wYWdlKCkpCisgICAgICAgIGNoaWxkLnBhZ2UoKS0+ZGVjcmVtZW50U3ViZnJh
bWVDb3VudCgpOworICAgIGNoaWxkLndpbGxEZXRhY2hQYWdlKCk7CisgICAgY2hpbGQuZGV0YWNo
RnJvbVBhZ2UoKTsKIAogICAgIG1fZnJhbWUudHJlZSgpLnJlbW92ZUNoaWxkKGNoaWxkKTsKIH0K
QEAgLTI1MjgsNyArMjUyNiw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmRldGFjaEZyb21QYXJlbnQo
KQogICAgIG1fcHJvZ3Jlc3NUcmFja2VyID0gbnVsbHB0cjsKIAogICAgIGlmIChGcmFtZSogcGFy
ZW50ID0gbV9mcmFtZS50cmVlKCkucGFyZW50KCkpIHsKLSAgICAgICAgcGFyZW50LT5sb2FkZXIo
KS5jbG9zZUFuZFJlbW92ZUNoaWxkKCZtX2ZyYW1lKTsKKyAgICAgICAgcGFyZW50LT5sb2FkZXIo
KS5jbG9zZUFuZFJlbW92ZUNoaWxkKG1fZnJhbWUpOwogICAgICAgICBwYXJlbnQtPmxvYWRlcigp
LnNjaGVkdWxlQ2hlY2tDb21wbGV0ZWQoKTsKICAgICB9IGVsc2UgewogICAgICAgICBtX2ZyYW1l
LnNldFZpZXcobnVsbHB0cik7CkBAIC0zMDMyLDcgKzMwMzAsNyBAQCBib29sIEZyYW1lTG9hZGVy
OjpkaXNwYXRjaEJlZm9yZVVubG9hZEV2ZW50KENocm9tZSYgY2hyb21lLCBGcmFtZUxvYWRlciog
ZnJhbWVMbwogICAgIGZyYW1lTG9hZGVyQmVpbmdOYXZpZ2F0ZWQtPm1fY3VycmVudE5hdmlnYXRp
b25IYXNTaG93bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCA9IHRydWU7CiAKICAgICBTdHJpbmcg
dGV4dCA9IGRvY3VtZW50LT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKGJlZm9yZVVu
bG9hZEV2ZW50LT5yZXR1cm5WYWx1ZSgpKTsKLSAgICByZXR1cm4gY2hyb21lLnJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbCh0ZXh0LCAmbV9mcmFtZSk7CisgICAgcmV0dXJuIGNocm9tZS5ydW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwodGV4dCwgbV9mcmFtZSk7CiB9CiAKIHZvaWQgRnJhbWVM
b2FkZXI6OmNvbnRpbnVlTG9hZEFmdGVyTmF2aWdhdGlvblBvbGljeShjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIEZvcm1TdGF0ZSogZm9ybVN0YXRlLCBib29sIHNob3VsZENvbnRpbnVl
LCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwgYWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJM
KQpAQCAtMzY1Nyw3ICszNjU1LDcgQEAgUmVmUHRyPEZyYW1lPiBjcmVhdGVXaW5kb3coRnJhbWUm
IG9wZW5lckZyYW1lLCBGcmFtZSYgbG9va3VwRnJhbWUsIGNvbnN0IEZyYW1lTG8KICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKICAgICBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgPSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5VG9B
cHBseShvcGVuZXJGcmFtZSwgcmVxdWVzdC5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCkp
OwotICAgIFBhZ2UqIHBhZ2UgPSBvbGRQYWdlLT5jaHJvbWUoKS5jcmVhdGVXaW5kb3coJm9wZW5l
ckZyYW1lLCByZXF1ZXN0V2l0aFJlZmVycmVyLCBmZWF0dXJlcywgTmF2aWdhdGlvbkFjdGlvbihy
ZXF1ZXN0V2l0aFJlZmVycmVyLnJlc291cmNlUmVxdWVzdCgpLCBzaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5KSk7CisgICAgUGFnZSogcGFnZSA9IG9sZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdp
bmRvdyhvcGVuZXJGcmFtZSwgcmVxdWVzdFdpdGhSZWZlcnJlciwgZmVhdHVyZXMsIE5hdmlnYXRp
b25BY3Rpb24ocmVxdWVzdFdpdGhSZWZlcnJlci5yZXNvdXJjZVJlcXVlc3QoKSwgc2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeSkpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKQEAgLTM3MDUsNyArMzcwMyw3IEBAIFJlZlB0cjxGcmFtZT4gY3JlYXRlV2luZG93
KEZyYW1lJiBvcGVuZXJGcmFtZSwgRnJhbWUmIGxvb2t1cEZyYW1lLCBjb25zdCBGcmFtZUxvCiAg
ICAgICAgIHdpbmRvd1JlY3Quc2V0SGVpZ2h0KCpmZWF0dXJlcy5oZWlnaHQgKyAod2luZG93UmVj
dC5oZWlnaHQoKSAtIHZpZXdwb3J0U2l6ZS5oZWlnaHQoKSkpOwogCiAgICAgLy8gRW5zdXJlIG5v
bi1OYU4gdmFsdWVzLCBtaW5pbXVtIHNpemUgYXMgd2VsbCBhcyBiZWluZyB3aXRoaW4gdmFsaWQg
c2NyZWVuIGFyZWEuCi0gICAgRmxvYXRSZWN0IG5ld1dpbmRvd1JlY3QgPSBET01XaW5kb3c6OmFk
anVzdFdpbmRvd1JlY3QocGFnZSwgd2luZG93UmVjdCk7CisgICAgRmxvYXRSZWN0IG5ld1dpbmRv
d1JlY3QgPSBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHdpbmRvd1JlY3QpOwog
CiAgICAgaWYgKCFmcmFtZS0+cGFnZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKaW5kZXggZmFhMDcxMmZhNGQyNDc4N2ZhNTVkNDg0YzU0
NTQyNjViYTUxYjYyYi4uZDY5YzgyOWM0ZTJmNmFiZjk0Y2UxYjQwNTY0NzdlYzZiOTBiNjk4YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKQEAgLTM2Niw3ICszNjYsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgcmVxdWVzdEZyb21EZWxlZ2F0ZShSZXNvdXJjZVJlcXVlc3QmLCB1bnNp
Z25lZCBsb25nJiBpZGVudGlmaWVyLCBSZXNvdXJjZUVycm9yJik7CiAKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGRldGFjaENoaWxkcmVuKCk7Ci0gICAgdm9pZCBjbG9zZUFuZFJlbW92ZUNoaWxk
KEZyYW1lKik7CisgICAgdm9pZCBjbG9zZUFuZFJlbW92ZUNoaWxkKEZyYW1lJik7CiAKICAgICB2
b2lkIGxvYWRJblNhbWVEb2N1bWVudChjb25zdCBVUkwmLCBTZXJpYWxpemVkU2NyaXB0VmFsdWUq
IHN0YXRlT2JqZWN0LCBib29sIGlzTmV3TmF2aWdhdGlvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qb2xpY3lDaGVja2VyLmNwcAppbmRleCBiYmI2MWViNDgyMTIxOTgzYWJlYjU3YmNlNGU4NDcz
NGI3ZmU2MjIzLi5hMDFjZTI5MjlhMTAxMDYwMDRhMjRlNzRhNjA4YjhjZDc2NzYxYTY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCkBAIC0xNTcsNyArMTU3LDcgQEAg
dm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeShjb25zdCBOYXZpZ2F0aW9u
QWN0aW9uJiBhY3Rpb24sIGNvbnN0IFIKICAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpICYmIG1f
ZnJhbWUuZG9jdW1lbnQoKS0+aXNTYW5kYm94ZWQoU2FuZGJveFBvcHVwcykpCiAgICAgICAgIHJl
dHVybiBjb250aW51ZUFmdGVyTmF2aWdhdGlvblBvbGljeShQb2xpY3lJZ25vcmUpOwogCi0gICAg
aWYgKCFET01XaW5kb3c6OmFsbG93UG9wVXAoJm1fZnJhbWUpKQorICAgIGlmICghRE9NV2luZG93
OjphbGxvd1BvcFVwKG1fZnJhbWUpKQogICAgICAgICByZXR1cm4gY29udGludWVBZnRlck5hdmln
YXRpb25Qb2xpY3koUG9saWN5SWdub3JlKTsKIAogICAgIG1fY2FsbGJhY2suc2V0KHJlcXVlc3Qs
IGZvcm1TdGF0ZSwgZnJhbWVOYW1lLCBhY3Rpb24sIFdURk1vdmUoZnVuY3Rpb24pKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3Jv
dXAuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVH
cm91cC5jcHAKaW5kZXggOGEyOGY4OGU2NjczZGIxNzAyYjE0NDE0ZmFmNzM4YjVjNzQyZmNlZi4u
OWY5YWIwMDBjZjZkOTM4NWY4YTI1OGY1MTUxYjg3MGY3MjkwZDhhYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5j
cHAKQEAgLTc4NCw3ICs3ODQsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6Y2FjaGVV
cGRhdGVGYWlsZWQoKQogCiB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVHcm91cDo6cmVjYWxjdWxhdGVB
dmFpbGFibGVTcGFjZUluUXVvdGEoKQogewotICAgIGlmICghbV9mcmFtZS0+cGFnZSgpLT5hcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZSgpLmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNs
dWRpbmdDYWNoZShtX29yaWdpbi5nZXQoKSwgbV9uZXdlc3RDYWNoZS5nZXQoKSwgbV9hdmFpbGFi
bGVTcGFjZUluUXVvdGEpKSB7CisgICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCktPmFwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlKCkuY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0Nh
Y2hlKG1fb3JpZ2luLCBtX25ld2VzdENhY2hlLmdldCgpLCBtX2F2YWlsYWJsZVNwYWNlSW5RdW90
YSkpIHsKICAgICAgICAgLy8gRmFpbGVkIHRvIGRldGVybWluZSB3aGF0IGlzIGxlZnQgaW4gdGhl
IHF1b3RhLiBGYWxsYmFjayB0byBhbGxvd2luZyBhbnl0aGluZy4KICAgICAgICAgbV9hdmFpbGFi
bGVTcGFjZUluUXVvdGEgPSBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6bm9RdW90YSgpOwogICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlR3JvdXAuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlR3JvdXAuaAppbmRleCBmYzg1MWRhN2NmYThjNDMzMmY2ODVlYTI5MTIyZTM3ZDRkYjdh
YWEyLi5jZWI4M2RmYzYyMTZmZTU1ODQyNzdjOWY5YWFlNTY2MDhkN2M0ZDBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91
cC5oCkBAIC02Niw3ICs2Niw3IEBAIHB1YmxpYzoKIAogICAgIEFwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlJiBzdG9yYWdlKCkgeyByZXR1cm4gbV9zdG9yYWdlOyB9CiAgICAgY29uc3QgVVJMJiBtYW5p
ZmVzdFVSTCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFuaWZlc3RVUkw7IH0KLSAgICBjb25zdCBTZWN1
cml0eU9yaWdpbiogb3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW4uZ2V0KCk7IH0KKyAg
ICBjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW4u
Z2V0KCk7IH0KICAgICBVcGRhdGVTdGF0dXMgdXBkYXRlU3RhdHVzKCkgY29uc3QgeyByZXR1cm4g
bV91cGRhdGVTdGF0dXM7IH0KICAgICB2b2lkIHNldFVwZGF0ZVN0YXR1cyhVcGRhdGVTdGF0dXMg
c3RhdHVzKTsKIApAQCAtMTM1LDcgKzEzNSw3IEBAIHByaXZhdGU6CiAgICAgUmVmPEFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlPiBtX3N0b3JhZ2U7CiAKICAgICBVUkwgbV9tYW5pZmVzdFVSTDsKLSAg
ICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fb3JpZ2luOworICAgIFJlZjxTZWN1cml0eU9yaWdp
bj4gbV9vcmlnaW47CiAgICAgVXBkYXRlU3RhdHVzIG1fdXBkYXRlU3RhdHVzIHsgSWRsZSB9Owog
ICAgIAogICAgIC8vIFRoaXMgaXMgdGhlIG5ld2VzdCBjb21wbGV0ZSBjYWNoZSBpbiB0aGUgZ3Jv
dXAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAppbmRleCBmNGZhOTViNTE3ZWM3NzkxNjI0ZmMwZjI1YTY1
NmIwYzA5NDQxNDc3Li5iNmI5ZDdhN2NkNjNjMDc2YWU3YTg0MTA5OTk4MGI0M2VmODdiNmFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZS5jcHAKQEAgLTQyMSw3ICs0MjEsNyBAQCB2b2lkIEFwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlOjpzZXREZWZhdWx0T3JpZ2luUXVvdGEoaW50NjRfdCBxdW90YSkKICAgICBt
X2RlZmF1bHRPcmlnaW5RdW90YSA9IHF1b3RhOwogfQogCi1ib29sIEFwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlOjpjYWxjdWxhdGVRdW90YUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiogb3Jp
Z2luLCBpbnQ2NF90JiBxdW90YSkKK2Jvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1
bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGludDY0X3Qm
IHF1b3RhKQogewogICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1dG9Db3VudGVyIHRy
YW5zYWN0aW9uQ291bnRlcjsKIApAQCAtNDMyLDcgKzQzMiw3IEBAIGJvb2wgQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2U6OmNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
KiBvcmlnCiAgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBzdGF0ZW1lbnQuYmluZFRleHQoMSwgU2VjdXJpdHlPcmln
aW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKm9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCkp
OworICAgIHN0YXRlbWVudC5iaW5kVGV4dCgxLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1
cml0eU9yaWdpbihvcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKICAgICBpbnQgcmVzdWx0
ID0gc3RhdGVtZW50LnN0ZXAoKTsKIAogICAgIC8vIFJldHVybiB0aGUgcXVvdGEsIG9yIGlmIGl0
IHdhcyBudWxsIHRoZSBkZWZhdWx0LgpAQCAtNDcyLDcgKzQ3Miw3IEBAIGJvb2wgQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0ZVVzYWdlRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3Jp
Z2luKiBvcmlnCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIEFwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlOjpjYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUoY29u
c3QgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwgQXBwbGljYXRpb25DYWNoZSogY2FjaGUsIGludDY0
X3QmIHJlbWFpbmluZ1NpemUpCitib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjYWxjdWxh
dGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUoY29uc3QgU2VjdXJpdHlPcmln
aW4mIG9yaWdpbiwgQXBwbGljYXRpb25DYWNoZSogY2FjaGUsIGludDY0X3QmIHJlbWFpbmluZ1Np
emUpCiB7CiAgICAgU1FMaXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0b0NvdW50ZXIgdHJhbnNh
Y3Rpb25Db3VudGVyOwogCkBAIC01MDMsNyArNTAzLDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZTo6Y2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hlKGNv
bnMKICAgICBpZiAoc3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIHN0YXRlbWVudC5iaW5kVGV4dCgxLCBTZWN1cml0eU9yaWdpbkRh
dGE6OmZyb21TZWN1cml0eU9yaWdpbigqb3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7Cisg
ICAgc3RhdGVtZW50LmJpbmRUZXh0KDEsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5
T3JpZ2luKG9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogICAgIGlmIChleGNsdWRpbmdD
YWNoZUlkZW50aWZpZXIgIT0gMCkKICAgICAgICAgc3RhdGVtZW50LmJpbmRJbnQ2NCgyLCBleGNs
dWRpbmdDYWNoZUlkZW50aWZpZXIpOwogICAgIGludCByZXN1bHQgPSBzdGF0ZW1lbnQuc3RlcCgp
OwpAQCAtNjg4LDE0ICs2ODgsMTQgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c3Rv
cmUoQXBwbGljYXRpb25DYWNoZUdyb3VwKiBncm91cCwgR3JvdXBTdG9yYWdlSUQKIAogICAgIHN0
YXRlbWVudC5iaW5kSW50NjQoMSwgdXJsSG9zdEhhc2goZ3JvdXAtPm1hbmlmZXN0VVJMKCkpKTsK
ICAgICBzdGF0ZW1lbnQuYmluZFRleHQoMiwgZ3JvdXAtPm1hbmlmZXN0VVJMKCkpOwotICAgIHN0
YXRlbWVudC5iaW5kVGV4dCgzLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdp
bigqZ3JvdXAtPm9yaWdpbigpKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CisgICAgc3RhdGVtZW50
LmJpbmRUZXh0KDMsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKGdyb3Vw
LT5vcmlnaW4oKSkuZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogCiAgICAgaWYgKCFleGVjdXRlU3Rh
dGVtZW50KHN0YXRlbWVudCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHVuc2lnbmVk
IGdyb3VwU3RvcmFnZUlEID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KG1fZGF0YWJhc2UubGFzdElu
c2VydFJvd0lEKCkpOwogCi0gICAgaWYgKCFlbnN1cmVPcmlnaW5SZWNvcmQoZ3JvdXAtPm9yaWdp
bigpKSkKKyAgICBpZiAoIWVuc3VyZU9yaWdpblJlY29yZCgmZ3JvdXAtPm9yaWdpbigpKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZ3JvdXAtPnNldFN0b3JhZ2VJRChncm91cFN0b3Jh
Z2VJRCk7CkBAIC05NzEsNyArOTcxLDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6
Y2hlY2tPcmlnaW5RdW90YShBcHBsaWNhdGlvbkNhY2hlR3JvdXAqIGdyb3VwLCBBcHAKIHsKICAg
ICAvLyBDaGVjayBpZiB0aGUgb2xkQ2FjaGUgd2l0aCB0aGUgbmV3Q2FjaGUgd291bGQgcmVhY2gg
dGhlIHBlci1vcmlnaW4gcXVvdGEuCiAgICAgaW50NjRfdCByZW1haW5pbmdTcGFjZUluT3JpZ2lu
OwotICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4gPSBncm91cC0+b3JpZ2luKCk7Cisg
ICAgYXV0byYgb3JpZ2luID0gZ3JvdXAtPm9yaWdpbigpOwogICAgIGlmIChjYWxjdWxhdGVSZW1h
aW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUob3JpZ2luLCBvbGRDYWNoZSwgcmVtYWlu
aW5nU3BhY2VJbk9yaWdpbikpIHsKICAgICAgICAgaWYgKHJlbWFpbmluZ1NwYWNlSW5PcmlnaW4g
PCBuZXdDYWNoZS0+ZXN0aW1hdGVkU2l6ZUluU3RvcmFnZSgpKSB7CiAgICAgICAgICAgICBpbnQ2
NF90IHF1b3RhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaAppbmRleCA5ZmEyOTJlZTUwZmFlZTg5YzM1Yzg2MWE4
Zjk5ZmExNmY5MDU0NzZkLi45ZDE3YTFiY2QwNmE2YWMxMTFhMGFjYWE2MDc2NGY2YjE1NDA1MGZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2UuaApAQCAtNjMsOCArNjMsOCBAQCBwdWJsaWM6CiAgICAgaW50NjRf
dCBkZWZhdWx0T3JpZ2luUXVvdGEoKSBjb25zdCB7IHJldHVybiBtX2RlZmF1bHRPcmlnaW5RdW90
YTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0RGVmYXVsdE9yaWdpblF1b3RhKGludDY0
X3QgcXVvdGEpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2FsY3VsYXRlVXNhZ2VGb3JPcmln
aW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90JiB1c2FnZSk7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBjYWxjdWxhdGVRdW90YUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbios
IGludDY0X3QmIHF1b3RhKTsKLSAgICBib29sIGNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmln
aW5FeGNsdWRpbmdDYWNoZShjb25zdCBTZWN1cml0eU9yaWdpbiosIEFwcGxpY2F0aW9uQ2FjaGUq
LCBpbnQ2NF90JiByZW1haW5pbmdTaXplKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhbGN1
bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCYgcXVvdGEp
OworICAgIGJvb2wgY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hl
KGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgQXBwbGljYXRpb25DYWNoZSosIGludDY0X3QmIHJlbWFp
bmluZ1NpemUpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc3RvcmVVcGRhdGVkUXVvdGFGb3JP
cmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHF1b3RhKTsKICAgICBib29sIGNo
ZWNrT3JpZ2luUXVvdGEoQXBwbGljYXRpb25DYWNoZUdyb3VwKiwgQXBwbGljYXRpb25DYWNoZSog
b2xkQ2FjaGUsIEFwcGxpY2F0aW9uQ2FjaGUqIG5ld0NhY2hlLCBpbnQ2NF90JiB0b3RhbFNwYWNl
TmVlZGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0
bWwvTUhUTUxBcmNoaXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1s
L01IVE1MQXJjaGl2ZS5jcHAKaW5kZXggYTkyMWIwNWU4NDZhMDVhNWFmY2U2MzAzYWExOGY4YmYz
MDcwOWRiNC4uMmNhNjdlMjdiZTg4NDJjYzdhMjE3ZGFhOTI1NWU4MThlZjlhMTkyZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUu
Y3BwCkBAIC0xMzMsOCArMTMzLDggQEAgUmVmUHRyPE1IVE1MQXJjaGl2ZT4gTUhUTUxBcmNoaXZl
OjpjcmVhdGUoY29uc3QgVVJMJiB1cmwsIFNoYXJlZEJ1ZmZlciYgZGF0YSkKIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+IE1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEoUGFnZSogcGFnZSkKIHsK
ICAgICBWZWN0b3I8UGFnZVNlcmlhbGl6ZXI6OlJlc291cmNlPiByZXNvdXJjZXM7Ci0gICAgUGFn
ZVNlcmlhbGl6ZXIgcGFnZVNlcmlhbGl6ZXIoJnJlc291cmNlcyk7Ci0gICAgcGFnZVNlcmlhbGl6
ZXIuc2VyaWFsaXplKHBhZ2UpOworICAgIFBhZ2VTZXJpYWxpemVyIHBhZ2VTZXJpYWxpemVyKHJl
c291cmNlcyk7CisgICAgcGFnZVNlcmlhbGl6ZXIuc2VyaWFsaXplKCpwYWdlKTsKIAogICAgIFN0
cmluZyBib3VuZGFyeSA9IGdlbmVyYXRlUmFuZG9tQm91bmRhcnkoKTsKICAgICBTdHJpbmcgZW5k
T2ZSZXNvdXJjZUJvdW5kYXJ5ID0gbWFrZVN0cmluZygiLS0iLCBib3VuZGFyeSwgIlxyXG4iKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcAppbmRleCBlMTUxNzZkMzMxOWQ5
NGNlMGI5YzkxZmJiZDhlYjczNzgxOTRjODY0Li5lOTcxMzk2MWNlM2I3NDg4NGExYjNiZTNlNTBh
NzM5MDYyM2Y4OWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCkBA
IC0xODIsNyArMTgyLDcgQEAgYm9vbCBNYXRoTUxFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxl
KEtleWJvYXJkRXZlbnQmIGV2ZW50KSBjb25zdAogICAgICAgICByZXR1cm4gU3R5bGVkRWxlbWVu
dDo6aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCk7CiAKICAgICBpZiAoaXNMaW5rKCkpCi0gICAg
ICAgIHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLnRhYnNUb0xpbmtz
KCZldmVudCk7CisgICAgICAgIHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxl
cigpLnRhYnNUb0xpbmtzKGV2ZW50KTsKIAogICAgIHJldHVybiBTdHlsZWRFbGVtZW50Ojppc0tl
eWJvYXJkRm9jdXNhYmxlKGV2ZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCA3NGRk
ZTFhMzRlMTVlOTA5NzFhZDA4NmUyNzBiOWFhNTY5ODgyMTBiLi5lMzYzZjQzYWRjNmY1YmNlNDkw
ODQ0MDk3NTM3NDZhYTg2MWU4NGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC00OCw3ICs0
OCw2IEBACiAjaW5jbHVkZSAiU3RvcmFnZU5hbWVzcGFjZS5oIgogI2luY2x1ZGUgIldpbmRvd0Zl
YXR1cmVzLmgiCiAjaW5jbHVkZSA8cnVudGltZS9WTS5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CiAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCkBAIC02MywxMCArNjIsNiBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogQ2hy
b21lOjpDaHJvbWUoUGFnZSYgcGFnZSwgQ2hyb21lQ2xpZW50JiBjbGllbnQpCiAgICAgOiBtX3Bh
Z2UocGFnZSkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKLSAgICAsIG1fZGlzcGxheUlEKDApCi0j
aWYgUExBVEZPUk0oSU9TKQotICAgICwgbV9pc0Rpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdl
U3VwcHJlc3NlZChmYWxzZSkKLSNlbmRpZgogewogfQogCkBAIC0xMTQsNiArMTA5LDcgQEAgSW50
UmVjdCBDaHJvbWU6OnJvb3RWaWV3VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcmVjdCkgY29uc3QK
IH0KICAgICAKICNpZiBQTEFURk9STShJT1MpCisKIEludFBvaW50IENocm9tZTo6YWNjZXNzaWJp
bGl0eVNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmIHBvaW50KSBjb25zdAogewogICAg
IHJldHVybiBtX2NsaWVudC5hY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290Vmlldyhwb2ludCk7CkBA
IC0xMjMsNiArMTE5LDcgQEAgSW50UmVjdCBDaHJvbWU6OnJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5
U2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY2xpZW50
LnJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKHJlY3QpOwogfQorCiAjZW5kaWYKIAogUGxh
dGZvcm1QYWdlQ2xpZW50IENocm9tZTo6cGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QKQEAgLTEz
MCw3ICsxMjcsNyBAQCBQbGF0Zm9ybVBhZ2VDbGllbnQgQ2hyb21lOjpwbGF0Zm9ybVBhZ2VDbGll
bnQoKSBjb25zdAogICAgIHJldHVybiBtX2NsaWVudC5wbGF0Zm9ybVBhZ2VDbGllbnQoKTsKIH0K
IAotdm9pZCBDaHJvbWU6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBJ
bnRTaXplJiBzaXplKSBjb25zdAordm9pZCBDaHJvbWU6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJh
bWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogewogICAgIG1fY2xpZW50LmNv
bnRlbnRzU2l6ZUNoYW5nZWQoZnJhbWUsIHNpemUpOwogfQpAQCAtMTkwLDE1ICsxODcsMTMgQEAg
dm9pZCBDaHJvbWU6OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqIGZyYW1lKSBjb25zdAogICAg
IG1fY2xpZW50LmZvY3VzZWRGcmFtZUNoYW5nZWQoZnJhbWUpOwogfQogCi1QYWdlKiBDaHJvbWU6
OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVl
c3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlv
biYgYWN0aW9uKSBjb25zdAorUGFnZSogQ2hyb21lOjpjcmVhdGVXaW5kb3coRnJhbWUmIGZyYW1l
LCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYg
ZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbikgY29uc3QKIHsKICAgICBQ
YWdlKiBuZXdQYWdlID0gbV9jbGllbnQuY3JlYXRlV2luZG93KGZyYW1lLCByZXF1ZXN0LCBmZWF0
dXJlcywgYWN0aW9uKTsKICAgICBpZiAoIW5ld1BhZ2UpCi0gICAgICAgIHJldHVybiAwOwotCi0g
ICAgaWYgKFN0b3JhZ2VOYW1lc3BhY2UqIG9sZFNlc3Npb25TdG9yYWdlID0gbV9wYWdlLnNlc3Np
b25TdG9yYWdlKGZhbHNlKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKGF1dG8q
IG9sZFNlc3Npb25TdG9yYWdlID0gbV9wYWdlLnNlc3Npb25TdG9yYWdlKGZhbHNlKSkKICAgICAg
ICAgbmV3UGFnZS0+c2V0U2Vzc2lvblN0b3JhZ2Uob2xkU2Vzc2lvblN0b3JhZ2UtPmNvcHkobmV3
UGFnZSkpOwotCiAgICAgcmV0dXJuIG5ld1BhZ2U7CiB9CiAKQEAgLTI3Niw3ICsyNzEsNyBAQCBi
b29sIENocm9tZTo6Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkKICAgICByZXR1cm4g
bV9jbGllbnQuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCk7CiB9CiAKLWJvb2wgQ2hy
b21lOjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBG
cmFtZSogZnJhbWUpCitib29sIENocm9tZTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmIGZyYW1lKQogewogICAgIC8vIERlZmVyIGxvYWRz
IGluIGNhc2UgdGhlIGNsaWVudCBtZXRob2QgcnVucyBhIG5ldyBldmVudCBsb29wIHRoYXQgd291
bGQKICAgICAvLyBvdGhlcndpc2UgY2F1c2UgdGhlIGxvYWQgdG8gY29udGludWUgd2hpbGUgd2Un
cmUgaW4gdGhlIG1pZGRsZSBvZiBleGVjdXRpbmcgSmF2YVNjcmlwdC4KQEAgLTI5MCw1MyArMjg1
LDQ3IEBAIHZvaWQgQ2hyb21lOjpjbG9zZVdpbmRvd1Nvb24oKQogICAgIG1fY2xpZW50LmNsb3Nl
V2luZG93U29vbigpOwogfQogCi12b2lkIENocm9tZTo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1l
KiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBDaHJvbWU6OnJ1bkphdmFTY3Jp
cHRBbGVydChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICAvLyBE
ZWZlciBsb2FkcyBpbiBjYXNlIHRoZSBjbGllbnQgbWV0aG9kIHJ1bnMgYSBuZXcgZXZlbnQgbG9v
cCB0aGF0IHdvdWxkCiAgICAgLy8gb3RoZXJ3aXNlIGNhdXNlIHRoZSBsb2FkIHRvIGNvbnRpbnVl
IHdoaWxlIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgZXhlY3V0aW5nIEphdmFTY3JpcHQuCiAgICAg
UGFnZUdyb3VwTG9hZERlZmVycmVyIGRlZmVycmVyKG1fcGFnZSwgdHJ1ZSk7CiAKLSAgICBBU1NF
UlQoZnJhbWUpOwogICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpOwotICAgIFN0cmlu
ZyBkaXNwbGF5TWVzc2FnZSA9IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5n
KG1lc3NhZ2UpOworICAgIFN0cmluZyBkaXNwbGF5TWVzc2FnZSA9IGZyYW1lLmRpc3BsYXlTdHJp
bmdNb2RpZmllZEJ5RW5jb2RpbmcobWVzc2FnZSk7CiAKICAgICBtX2NsaWVudC5ydW5KYXZhU2Ny
aXB0QWxlcnQoZnJhbWUsIGRpc3BsYXlNZXNzYWdlKTsKIH0KIAotYm9vbCBDaHJvbWU6OnJ1bkph
dmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQorYm9v
bCBDaHJvbWU6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQogewogICAgIC8vIERlZmVyIGxvYWRzIGluIGNhc2UgdGhlIGNsaWVudCBtZXRo
b2QgcnVucyBhIG5ldyBldmVudCBsb29wIHRoYXQgd291bGQKICAgICAvLyBvdGhlcndpc2UgY2F1
c2UgdGhlIGxvYWQgdG8gY29udGludWUgd2hpbGUgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBleGVj
dXRpbmcgSmF2YVNjcmlwdC4KICAgICBQYWdlR3JvdXBMb2FkRGVmZXJyZXIgZGVmZXJyZXIobV9w
YWdlLCB0cnVlKTsKIAotICAgIEFTU0VSVChmcmFtZSk7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5n
T2JzZXJ2ZXJzKCk7Ci0gICAgU3RyaW5nIGRpc3BsYXlNZXNzYWdlID0gZnJhbWUtPmRpc3BsYXlT
dHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcobWVzc2FnZSk7Ci0KLSAgICByZXR1cm4gbV9jbGllbnQu
cnVuSmF2YVNjcmlwdENvbmZpcm0oZnJhbWUsIGRpc3BsYXlNZXNzYWdlKTsKKyAgICByZXR1cm4g
bV9jbGllbnQucnVuSmF2YVNjcmlwdENvbmZpcm0oZnJhbWUsIGZyYW1lLmRpc3BsYXlTdHJpbmdN
b2RpZmllZEJ5RW5jb2RpbmcobWVzc2FnZSkpOwogfQogCi1ib29sIENocm9tZTo6cnVuSmF2YVNj
cmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgcHJvbXB0LCBjb25zdCBTdHJp
bmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCitib29sIENocm9tZTo6cnVuSmF2YVNj
cmlwdFByb21wdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgcHJvbXB0LCBjb25zdCBTdHJp
bmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCiB7CiAgICAgLy8gRGVmZXIgbG9hZHMg
aW4gY2FzZSB0aGUgY2xpZW50IG1ldGhvZCBydW5zIGEgbmV3IGV2ZW50IGxvb3AgdGhhdCB3b3Vs
ZAogICAgIC8vIG90aGVyd2lzZSBjYXVzZSB0aGUgbG9hZCB0byBjb250aW51ZSB3aGlsZSB3ZSdy
ZSBpbiB0aGUgbWlkZGxlIG9mIGV4ZWN1dGluZyBKYXZhU2NyaXB0LgogICAgIFBhZ2VHcm91cExv
YWREZWZlcnJlciBkZWZlcnJlcihtX3BhZ2UsIHRydWUpOwogCi0gICAgQVNTRVJUKGZyYW1lKTsK
ICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKLSAgICBTdHJpbmcgZGlzcGxheVBy
b21wdCA9IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHByb21wdCk7Cisg
ICAgU3RyaW5nIGRpc3BsYXlQcm9tcHQgPSBmcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVu
Y29kaW5nKHByb21wdCk7CiAKLSAgICBib29sIG9rID0gbV9jbGllbnQucnVuSmF2YVNjcmlwdFBy
b21wdChmcmFtZSwgZGlzcGxheVByb21wdCwgZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5
RW5jb2RpbmcoZGVmYXVsdFZhbHVlKSwgcmVzdWx0KTsKKyAgICBib29sIG9rID0gbV9jbGllbnQu
cnVuSmF2YVNjcmlwdFByb21wdChmcmFtZSwgZGlzcGxheVByb21wdCwgZnJhbWUuZGlzcGxheVN0
cmluZ01vZGlmaWVkQnlFbmNvZGluZyhkZWZhdWx0VmFsdWUpLCByZXN1bHQpOwogICAgIGlmIChv
aykKLSAgICAgICAgcmVzdWx0ID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rp
bmcocmVzdWx0KTsKKyAgICAgICAgcmVzdWx0ID0gZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVk
QnlFbmNvZGluZyhyZXN1bHQpOwogCiAgICAgcmV0dXJuIG9rOwogfQogCi12b2lkIENocm9tZTo6
c2V0U3RhdHVzYmFyVGV4dChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgc3RhdHVzKQordm9p
ZCBDaHJvbWU6OnNldFN0YXR1c2JhclRleHQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHN0
YXR1cykKIHsKLSAgICBBU1NFUlQoZnJhbWUpOwotICAgIG1fY2xpZW50LnNldFN0YXR1c2JhclRl
eHQoZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmcoc3RhdHVzKSk7CisgICAg
bV9jbGllbnQuc2V0U3RhdHVzYmFyVGV4dChmcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVu
Y29kaW5nKHN0YXR1cykpOwogfQogCiB2b2lkIENocm9tZTo6bW91c2VEaWRNb3ZlT3ZlckVsZW1l
bnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKQpA
QCAtNDA3LDkgKzM5Niw5IEBAIHZvaWQgQ2hyb21lOjpzZXRUb29sVGlwKGNvbnN0IEhpdFRlc3RS
ZXN1bHQmIHJlc3VsdCkKICAgICBtX2NsaWVudC5zZXRUb29sVGlwKHRvb2xUaXAsIHRvb2xUaXBE
aXJlY3Rpb24pOwogfQogCi12b2lkIENocm9tZTo6cHJpbnQoRnJhbWUqIGZyYW1lKQordm9pZCBD
aHJvbWU6OnByaW50KEZyYW1lJiBmcmFtZSkKIHsKLSAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQg
aGF2ZSBQYWdlR3JvdXBMb2FkRGVmZXJyZXIsIGxpa2UgcnVuTW9kYWwoKSBvciBydW5KYXZhU2Ny
aXB0QWxlcnQoKSwgYmVjYXN1ZSBpdCdzIG5vIGRpZmZlcmVudCBmcm9tIHRob3NlLgorICAgIC8v
IEZJWE1FOiBUaGlzIHNob3VsZCBoYXZlIFBhZ2VHcm91cExvYWREZWZlcnJlciwgbGlrZSBydW5N
b2RhbCgpIG9yIHJ1bkphdmFTY3JpcHRBbGVydCgpLCBiZWNhdXNlIGl0J3Mgbm8gZGlmZmVyZW50
IGZyb20gdGhvc2UuCiAgICAgbV9jbGllbnQucHJpbnQoZnJhbWUpOwogfQogCkBAIC00MjQsMTEg
KzQxMywxMyBAQCB2b2lkIENocm9tZTo6ZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkKIH0KIAog
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nl
cj4gQ2hyb21lOjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQs
IGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCisKK3N0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29z
ZXI+IENocm9tZTo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCYgY2xpZW50
LCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQogewogICAgIG5vdGlmeVBvcHVwT3BlbmluZ09i
c2VydmVycygpOwogICAgIHJldHVybiBtX2NsaWVudC5jcmVhdGVDb2xvckNob29zZXIoY2xpZW50
LCBpbml0aWFsQ29sb3IpOwogfQorCiAjZW5kaWYKIAogdm9pZCBDaHJvbWU6OnJ1bk9wZW5QYW5l
bChGcmFtZSYgZnJhbWUsIEZpbGVDaG9vc2VyJiBmaWxlQ2hvb3NlcikKQEAgLTUzOCwxMyArNTI5
LDEzIEBAIGJvb2wgQ2hyb21lOjpoYXNPcGVuZWRQb3B1cCgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
Y2xpZW50Lmhhc09wZW5lZFBvcHVwKCk7CiB9CiAKLVJlZlB0cjxQb3B1cE1lbnU+IENocm9tZTo6
Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUmVmUHRyPFBv
cHVwTWVudT4gQ2hyb21lOjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JiBjbGllbnQp
IGNvbnN0CiB7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7CiAgICAgcmV0dXJu
IG1fY2xpZW50LmNyZWF0ZVBvcHVwTWVudShjbGllbnQpOwogfQogCi1SZWZQdHI8U2VhcmNoUG9w
dXBNZW51PiBDaHJvbWU6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNs
aWVudCkgY29uc3QKK1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IENocm9tZTo6Y3JlYXRlU2VhcmNo
UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAogewogICAgIG5vdGlmeVBv
cHVwT3BlbmluZ09ic2VydmVycygpOwogICAgIHJldHVybiBtX2NsaWVudC5jcmVhdGVTZWFyY2hQ
b3B1cE1lbnUoY2xpZW50KTsKQEAgLTU1NSwzMCArNTQ2LDI3IEBAIGJvb2wgQ2hyb21lOjpyZXF1
aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkKICAgICByZXR1cm4gbV9jbGllbnQucmVx
dWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpOwogfQogCi0jaWYgUExBVEZPUk0oSU9T
KQotLy8gRklYTUU6IE1ha2UgYXJndW1lbnQsIGZyYW1lLCBhIHJlZmVyZW5jZS4KLXZvaWQgQ2hy
b21lOjpkaWRSZWNlaXZlRG9jVHlwZShGcmFtZSogZnJhbWUpCit2b2lkIENocm9tZTo6ZGlkUmVj
ZWl2ZURvY1R5cGUoRnJhbWUmIGZyYW1lKQogewotICAgIEFTU0VSVChmcmFtZSk7Ci0gICAgaWYg
KCFmcmFtZS0+aXNNYWluRnJhbWUoKSkKKyNpZiAhUExBVEZPUk0oSU9TKQorICAgIFVOVVNFRF9Q
QVJBTShmcmFtZSk7CisjZWxzZQorICAgIGlmICghZnJhbWUuaXNNYWluRnJhbWUoKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgYm9vbCBoYXNNb2JpbGVEb2NUeXBlID0gZmFsc2U7Ci0gICAgaWYg
KERvY3VtZW50VHlwZSogZG9jdW1lbnRUeXBlID0gZnJhbWUtPmRvY3VtZW50KCktPmRvY3R5cGUo
KSkKLSAgICAgICAgaGFzTW9iaWxlRG9jVHlwZSA9IGRvY3VtZW50VHlwZS0+cHVibGljSWQoKS5j
b250YWlucygieGh0bWwgbW9iaWxlIiwgZmFsc2UpOwotICAgIG1fY2xpZW50LmRpZFJlY2VpdmVN
b2JpbGVEb2NUeXBlKGhhc01vYmlsZURvY1R5cGUpOwotfQorICAgIGF1dG8qIGRvY3R5cGUgPSBm
cmFtZS5kb2N1bWVudCgpLT5kb2N0eXBlKCk7CisgICAgbV9jbGllbnQuZGlkUmVjZWl2ZU1vYmls
ZURvY1R5cGUoZG9jdHlwZSAmJiBkb2N0eXBlLT5wdWJsaWNJZCgpLmNvbnRhaW5zSWdub3JpbmdB
U0NJSUNhc2UoInhodG1sIG1vYmlsZSIpKTsKICNlbmRpZgorfQogCi12b2lkIENocm9tZTo6cmVn
aXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciogb2JzZXJ2ZXIp
Cit2b2lkIENocm9tZTo6cmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdP
YnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgQVNTRVJUKG9ic2VydmVyKTsKLSAgICBtX3BvcHVw
T3BlbmluZ09ic2VydmVycy5hcHBlbmQob2JzZXJ2ZXIpOworICAgIG1fcG9wdXBPcGVuaW5nT2Jz
ZXJ2ZXJzLmFwcGVuZCgmb2JzZXJ2ZXIpOwogfQogCi12b2lkIENocm9tZTo6dW5yZWdpc3RlclBv
cHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyKiBvYnNlcnZlcikKK3ZvaWQg
Q2hyb21lOjp1bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2
ZXImIG9ic2VydmVyKQogewotICAgIGJvb2wgcmVtb3ZlZCA9IG1fcG9wdXBPcGVuaW5nT2JzZXJ2
ZXJzLnJlbW92ZUZpcnN0KG9ic2VydmVyKTsKKyAgICBib29sIHJlbW92ZWQgPSBtX3BvcHVwT3Bl
bmluZ09ic2VydmVycy5yZW1vdmVGaXJzdCgmb2JzZXJ2ZXIpOwogICAgIEFTU0VSVF9VTlVTRUQo
cmVtb3ZlZCwgcmVtb3ZlZCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IDZkMjVhYzg5MTYw
MGYyMTg0YTY1NGRhZDMyMjZkNDZjODE5MzJhNjYuLmIzYzQ2NDdjMWFlOTUwMDUyMDc4MzQ5ZTA3
NmEyOWIwZTZhZGM2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApAQCAtOTUsNyArOTUsNyBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3Q7
CiAKLSAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJbnRTaXplJikg
Y29uc3Q7CisgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiwgY29uc3QgSW50U2l6
ZSYpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0
IEZsb2F0UmVjdCYpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEZsb2F0UmVjdCB3aW5kb3dS
ZWN0KCkgY29uc3Q7CkBAIC0xMTEsNyArMTExLDcgQEAgcHVibGljOgogICAgIHZvaWQgZm9jdXNl
ZEVsZW1lbnRDaGFuZ2VkKEVsZW1lbnQqKSBjb25zdDsKICAgICB2b2lkIGZvY3VzZWRGcmFtZUNo
YW5nZWQoRnJhbWUqKSBjb25zdDsKIAotICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2UqIGNyZWF0ZVdp
bmRvdyhGcmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJl
cyYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBQ
YWdlKiBjcmVhdGVXaW5kb3coRnJhbWUmLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3Qg
V2luZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikgY29uc3Q7CiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzaG93KCkgY29uc3Q7CiAKICAgICBib29sIGNhblJ1bk1vZGFsKCkg
Y29uc3Q7CkBAIC0xMzIsMjYgKzEzMiwyNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRSZXNpemFi
bGUoYm9vbCkgY29uc3Q7CiAKICAgICBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bCgpOwotICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgRnJhbWUqKTsKKyAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lJik7CiAKICAgICB2b2lkIGNsb3NlV2luZG93U29v
bigpOwogCi0gICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqLCBjb25zdCBTdHJpbmcm
KTsKLSAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiwgY29uc3QgU3RyaW5nJik7
Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpOwotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChGcmFtZSosIGNvbnN0IFN0cmluZyYp
OworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiwgY29uc3QgU3RyaW5nJik7Cisg
ICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYsIGNvbnN0IFN0cmluZyYpOworICAg
IGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldFN0YXR1c2JhclRleHQoRnJhbWUmLCBjb25zdCBTdHJpbmcmKTsKIAog
ICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVu
c2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwogCiAgICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IEhpdFRl
c3RSZXN1bHQmKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJpbnQoRnJhbWUqKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHByaW50KEZyYW1lJik7CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIGVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKTsKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3Nl
cihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKTsKKyAgICBz
dGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9v
c2VyQ2xpZW50JiwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcik7CiAjZW5kaWYKIAogICAgIHZv
aWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNob29zZXImKTsKQEAgLTE2OCwyOCArMTY4LDI4
IEBAIHB1YmxpYzoKICAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFs
KCk7CiAgICAgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0
aW9uKCk7CiAgICAgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0OwotICAgIFJlZlB0cjxQb3B1
cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKLSAgICBSZWZQ
dHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KikgY29uc3Q7CisgICAgUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVu
dUNsaWVudCYpIGNvbnN0OworICAgIFJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJj
aFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdDsKIAogI2lmIFBMQVRGT1JNKElPUykK
ICAgICAvLyBGSVhNRTogQ2FuIHdlIGNvbWUgdXAgd2l0aCBhIGJldHRlciBuYW1lIGZvciB0aGlz
IHNldHRlcj8KICAgICB2b2lkIHNldERpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlU3VwcHJl
c3NlZChib29sIGRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlU3VwcHJlc3NlZCkgeyBtX2lz
RGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkID0gZGlzcGF0Y2hWaWV3cG9y
dERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkOyB9Ci0KLSAgICB2b2lkIGRpZFJlY2VpdmVEb2NUeXBl
KEZyYW1lKik7CiAjZW5kaWYKIAotICAgIHZvaWQgcmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZl
cihQb3B1cE9wZW5pbmdPYnNlcnZlciopOwotICAgIHZvaWQgdW5yZWdpc3RlclBvcHVwT3Blbmlu
Z09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyKik7CisgICAgdm9pZCBkaWRSZWNlaXZlRG9j
VHlwZShGcmFtZSYpOworCisgICAgdm9pZCByZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBv
cHVwT3BlbmluZ09ic2VydmVyJik7CisgICAgdm9pZCB1bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2Jz
ZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXImKTsKIAogcHJpdmF0ZToKICAgICB2b2lkIG5vdGlm
eVBvcHVwT3BlbmluZ09ic2VydmVycygpIGNvbnN0OwogCiAgICAgUGFnZSYgbV9wYWdlOwogICAg
IENocm9tZUNsaWVudCYgbV9jbGllbnQ7Ci0gICAgUGxhdGZvcm1EaXNwbGF5SUQgbV9kaXNwbGF5
SUQ7CisgICAgUGxhdGZvcm1EaXNwbGF5SUQgbV9kaXNwbGF5SUQgeyAwIH07CiAgICAgVmVjdG9y
PFBvcHVwT3BlbmluZ09ic2VydmVyKj4gbV9wb3B1cE9wZW5pbmdPYnNlcnZlcnM7CiAjaWYgUExB
VEZPUk0oSU9TKQotICAgIGJvb2wgbV9pc0Rpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlU3Vw
cHJlc3NlZDsKKyAgICBib29sIG1faXNEaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZVN1cHBy
ZXNzZWQgeyBmYWxzZSB9OwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAppbmRleCAyYzg5YjZjYmE1MDY4MGI5NzJkYzU1ZmM0YjI0YzQ4OTBmYWViODI0Li44YTE2Mzkx
ZmJiODZiY2NiNzRmZmU1YzQxZmY1YTU4NjZjZTdlYTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKQEAgLTEyMyw3ICsxMjMsNyBAQCBwdWJsaWM6CiAgICAgLy8gY3JlYXRlZCBQYWdl
IGhhcyBpdHMgc2hvdyBtZXRob2QgY2FsbGVkLgogICAgIC8vIFRoZSBGcmFtZUxvYWRSZXF1ZXN0
IHBhcmFtZXRlciBpcyBvbmx5IGZvciBDaHJvbWVDbGllbnQgdG8gY2hlY2sgaWYgdGhlCiAgICAg
Ly8gcmVxdWVzdCBjb3VsZCBiZSBmdWxmaWxsZWQuIFRoZSBDaHJvbWVDbGllbnQgc2hvdWxkIG5v
dCBsb2FkIHRoZSByZXF1ZXN0LgotICAgIHZpcnR1YWwgUGFnZSogY3JlYXRlV2luZG93KEZyYW1l
KiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYpID0gMDsKKyAgICB2aXJ0dWFsIFBhZ2UqIGNyZWF0ZVdpbmRvdyhG
cmFtZSYsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYsIGNv
bnN0IE5hdmlnYXRpb25BY3Rpb24mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNob3coKSA9IDA7
CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuTW9kYWwoKSA9IDA7CkBAIC0xNDYsNjMgKzE0Niw2
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoTWVzc2Fn
ZVNvdXJjZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxp
bmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkg
PSAwOwogCiAgICAgdmlydHVhbCBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgp
ID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUqKSA9IDA7CisgICAgdmlydHVhbCBib29sIHJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lJikgPSAwOwog
CiAgICAgdmlydHVhbCB2b2lkIGNsb3NlV2luZG93U29vbigpID0gMDsKIAotICAgIHZpcnR1YWwg
dm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqLCBjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAg
dmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiwgY29uc3QgU3RyaW5nJikg
PSAwOwotICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1
bHQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiwgY29u
c3QgU3RyaW5nJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShG
cmFtZSYsIGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlw
dFByb21wdChGcmFtZSYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZh
dWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1
c2JhclRleHQoY29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgS2V5Ym9hcmRVSU1vZGUg
a2V5Ym9hcmRVSU1vZGUoKSA9IDA7CiAKLSAgICAvLyBNZXRob2RzIHVzZWQgYnkgSG9zdFdpbmRv
dy4KICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNJbW1lZGlhdGVJbnZhbGlkYXRpb24oKSB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3Qg
SW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9v
dFZpZXcoY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNv
bnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0Jikg
PSAwOworCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogICAgIHZpcnR1YWwgdm9pZCBk
ZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmKSA9IDA7CiAjZW5kaWYKKwog
ICAgIHZpcnR1YWwgSW50UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIEludFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRS
ZWN0JikgY29uc3QgPSAwOworCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgSW50UG9p
bnQgYWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCBJbnRSZWN0IHJvb3RWaWV3VG9BY2Nlc3NpYmlsaXR5U2NyZWVuKGNv
bnN0IEludFJlY3QmKSBjb25zdCA9IDA7CiAjZW5kaWYgICAgCisKICAgICB2aXJ0dWFsIFBsYXRm
b3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgPSAwOworCiAjaWYgRU5BQkxF
KENVUlNPUl9TVVBQT1JUKQogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoY29uc3QgQ3Vyc29y
JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMo
Ym9vbCkgPSAwOwogI2VuZGlmCisKICNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJ
TUVSKQogICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUFuaW1hdGlvbigpID0gMDsKICNlbmRpZgot
ICAgIC8vIEVuZCBtZXRob2RzIHVzZWQgYnkgSG9zdFdpbmRvdy4KIAotICAgIHZpcnR1YWwgRmxv
YXRTaXplIHNjcmVlblNpemUoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PENocm9tZUNsaWVu
dCo+KHRoaXMpLT53aW5kb3dSZWN0KCkuc2l6ZSgpOyB9Ci0gICAgdmlydHVhbCBGbG9hdFNpemUg
YXZhaWxhYmxlU2NyZWVuU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Q2hyb21lQ2xp
ZW50Kj4odGhpcyktPndpbmRvd1JlY3QoKS5zaXplKCk7IH0KKyAgICB2aXJ0dWFsIEZsb2F0U2l6
ZSBzY3JlZW5TaXplKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxDaHJvbWVDbGllbnQmPigq
dGhpcykud2luZG93UmVjdCgpLnNpemUoKTsgfQorICAgIHZpcnR1YWwgRmxvYXRTaXplIGF2YWls
YWJsZVNjcmVlblNpemUoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PENocm9tZUNsaWVudCY+
KCp0aGlzKS53aW5kb3dSZWN0KCkuc2l6ZSgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgVmlld3BvcnRBcmd1bWVudHMmKSBj
b25zdCB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwg
Y29uc3QgSW50U2l6ZSYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXpl
Q2hhbmdlZChGcmFtZSYsIGNvbnN0IEludFNpemUmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBJbnRSZWN0JikgY29uc3QgeyB9OyAvLyBDdXJy
ZW50bHkgb25seSBNYWMgaGFzIGEgbm9uIGVtcHR5IGltcGxlbWVudGF0aW9uLgogCiAgICAgdmly
dHVhbCBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFJlbmRlckVt
YmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2Vk
KEVsZW1lbnQqLCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFz
b24pIGNvbnN0IHsgfQorICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNs
aWNrZWQoRWxlbWVudCYsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0
eVJlYXNvbikgY29uc3QgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSA9IDA7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9u
KSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUqKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHByaW50KEZyYW1lJikgPSAwOwogCiAgICAgdmlydHVhbCBDb2xvciB1bmRlcmxheUNv
bG9yKCkgY29uc3QgeyByZXR1cm4gQ29sb3IoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHBhZ2VF
eHRlbmRlZEJhY2tncm91bmRDb2xvckRpZENoYW5nZShDb2xvcikgY29uc3QgeyB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29uc3QgU3RyaW5nJiBk
YXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscykgPSAwOworICAgIHZpcnR1YWwgdm9pZCBleGNl
ZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUmLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0
YWJhc2VEZXRhaWxzKSA9IDA7CiAKICAgICAvLyBDYWxsYmFjayBpbnZva2VkIHdoZW4gdGhlIGFw
cGxpY2F0aW9uIGNhY2hlIGZhaWxzIHRvIHNhdmUgYSBjYWNoZSBvYmplY3QKICAgICAvLyBiZWNh
dXNlIHN0b3JpbmcgaXQgd291bGQgZ3JvdyB0aGUgZGF0YWJhc2UgZmlsZSBwYXN0IGl0cyBkZWZp
bmVkIG1heGltdW0KQEAgLTIxOSw3ICsyMjMsNyBAQCBwdWJsaWM6CiAgICAgLy8gc3RvcmFnZSwg
aW4gYnl0ZXMsIG5lZWRlZCB0byBzdG9yZSB0aGUgbmV3IGNhY2hlIGFsb25nIHdpdGggYWxsIG9m
IHRoZQogICAgIC8vIG90aGVyIGV4aXN0aW5nIGNhY2hlcyBmb3IgdGhlIG9yaWdpbiB0aGF0IHdv
dWxkIG5vdCBiZSByZXBsYWNlZCBieQogICAgIC8vIHRoZSBuZXcgY2FjaGUuCi0gICAgdmlydHVh
bCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4q
LCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVhY2hl
ZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiYsIGludDY0X3QgdG90
YWxTcGFjZU5lZWRlZCkgPSAwOwogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAg
IHZpcnR1YWwgdm9pZCBhbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpOwpAQCAtMjM2LDEwICsyNDAs
MTAgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTW9iaWxlRG9jVHlwZShib29sKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldE5lZWRz
U2Nyb2xsTm90aWZpY2F0aW9ucyhGcmFtZSosIGJvb2wpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
b2JzZXJ2ZWRDb250ZW50Q2hhbmdlKEZyYW1lKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBjbGVh
ckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoRnJhbWUqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIG5v
dGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShGcmFtZSopID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKEZyYW1lJiwgYm9vbCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoRnJhbWUmKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIGNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhGcmFtZSYpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1l
KEZyYW1lJikgPSAwOwogCiAgICAgZW51bSBMYXlvdXRUeXBlIHsgTm9ybWFsTGF5b3V0LCBTY3Jv
bGwgfTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkTGF5b3V0KExheW91dFR5cGUgPSBOb3JtYWxMYXlv
dXQpID0gMDsKQEAgLTI3MCwxNiArMjc0LDE2IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JD
aG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgQ29s
b3ImKSA9IDA7CisgICAgdmlydHVhbCBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBjcmVh
dGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3QgQ29sb3ImKSA9IDA7CiAj
ZW5kaWYKIAogICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3Nl
ciYpID0gMDsKICAgICAvLyBBc3luY2hyb25vdXMgcmVxdWVzdCB0byBsb2FkIGFuIGljb24gZm9y
IHNwZWNpZmllZCBmaWxlbmFtZXMuCiAgICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMo
Y29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciYpID0gMDsKICAgICAgICAgCi0g
ICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBOb2RlKikgeyB9OwotICAgIHZp
cnR1YWwgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBOb2RlKikgeyB9OwotICAgIHZpcnR1YWwg
dm9pZCBlbGVtZW50RGlkUmVmb2N1cyhjb25zdCBOb2RlKikgeyB9OworICAgIHZpcnR1YWwgdm9p
ZCBlbGVtZW50RGlkRm9jdXMoRWxlbWVudCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50
RGlkQmx1cihFbGVtZW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRSZWZvY3Vz
KEVsZW1lbnQmKSB7IH0KICAgICAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkUGFpbnRFbnRpcmVD
b250ZW50cygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGhhc1N0
YWJsZVBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KQEAgLTI5MSw5ICsy
OTUsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9y
PiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQpIGNvbnN0IHsg
cmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCi0gICAgLy8gUGFzcyAwIGFzIHRoZSBHcmFwaGlj
c0xheWVyIHRvIGRldGF0Y2ggdGhlIHJvb3QgbGF5ZXIuCi0gICAgdmlydHVhbCB2b2lkIGF0dGFj
aFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciopID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NM
YXllciopID0gMDsKKyAgICAvLyBQYXNzIG51bGxwdHIgYXMgdGhlIEdyYXBoaWNzTGF5ZXIgdG8g
ZGV0YXRjaCB0aGUgcm9vdCBsYXllci4KKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBo
aWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikgPSAw
OwogICAgIC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgbmV4dCB0aW1lIGNvbnRl
bnQgaXMgZHJhd24gdG8gdGhlIHdpbmRvdywKICAgICAvLyB0aGUgY2hhbmdlcyBhcHBlYXIgb24g
dGhlIHNjcmVlbiBpbiBzeW5jaHJvbnkgd2l0aCB1cGRhdGVzIHRvIEdyYXBoaWNzTGF5ZXJzLgog
ICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkg
PSAwOwpAQCAtMzI1LDI2ICszMjksMjggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGFk
anVzdExheWVyRmx1c2hUaHJvdHRsaW5nKExheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpGbGFncykg
eyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTY3JvbGxpbmdDb29y
ZGluYXRvcj4gY3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSopIGNvbnN0IHsgcmV0dXJu
IG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIFJlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gY3Jl
YXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSYpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0K
IAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKEFWRk9VTkRBVElPTikKLSAgICB2aXJ0dWFsIEdy
YXBoaWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3QgeyByZXR1
cm4gMDsgfQorICAgIHZpcnR1YWwgR3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBncmFwaGljc0Rldmlj
ZUFkYXB0ZXIoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKIAogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGUpIHsgcmV0dXJuIGZhbHNlOyB9CisKICNpZiBFTkFCTEUoVklERU8p
CiAgICAgdmlydHVhbCB2b2lkIGVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhU
TUxWaWRlb0VsZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGUpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKEhU
TUxNZWRpYUVsZW1lbnQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJQbGF5YmFja0NvbnRy
b2xzTWFuYWdlcigpIHsgfQogI2VuZGlmCi0gICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpIHsgfQotICAg
IHZpcnR1YWwgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihX
ZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlIC8qdGFyZ2V0TW9kZSovKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCBleGl0
VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24o
SFRNTFZpZGVvRWxlbWVudCYsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZSkgeyB9CiAgICAgdmlydHVhbCBib29sIHJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxh
eWJhY2soKSB7IHJldHVybiBmYWxzZTsgfSAKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
LSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBFbGVt
ZW50KiwgYm9vbCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxs
U2NyZWVuRm9yRWxlbWVudChFbGVtZW50KikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGV4aXRGdWxs
U2NyZWVuRm9yRWxlbWVudChFbGVtZW50KikgeyB9CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
RnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxlbWVudCYsIGJvb2wpIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCYp
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRSb290RnVsbFNjcmVlbkxheWVyKEdyYXBoaWNzTGF5
ZXIqKSB7IH0KICNlbmRpZgogCkBAIC0zNTMsNyArMzU5LDcgQEAgcHVibGljOgogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2aXJ0dWFsIE5TUmVzcG9uZGVyICpmaXJzdFJlc3Bv
bmRlcigpIHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIE5TUmVzcG9uZGVyICpmaXJzdFJlc3Bv
bmRlcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIHZvaWQgbWFrZUZpcnN0UmVz
cG9uZGVyKE5TUmVzcG9uZGVyICopIHsgfQogICAgIC8vIEZvY3VzZXMgb24gdGhlIGNvbnRhaW5p
bmcgdmlldyBhc3NvY2lhdGVkIHdpdGggdGhpcyBwYWdlLgogICAgIHZpcnR1YWwgdm9pZCBtYWtl
Rmlyc3RSZXNwb25kZXIoKSB7IH0KQEAgLTM3NywxMCArMzgzLDEwIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlv
bigpID0gMDsKICAgICAvLyBDaGVja3MgaWYgdGhlcmUgaXMgYW4gb3BlbmVkIHBvcHVwLCBjYWxs
ZWQgYnkgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpLgogICAgIHZpcnR1YWwgYm9vbCBoYXNP
cGVuZWRQb3B1cCgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxQb3B1cE1lbnU+IGNy
ZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBS
ZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50KikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxT
ZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBj
b25zdCA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uKSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgcG9zdEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCYsIEFYT2JqZWN0Q2FjaGU6OkFYTm90aWZpY2F0aW9uKSB7IH0KIAogICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KGNvbnN0IElu
dFJlY3QmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURp
ZENoYW5nZShTY3JvbGxiYXJTdHlsZSkgeyB9CkBAIC00MDgsMTYgKzQxNCwxNiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGRpZEFzc29jaWF0ZUZvcm1Db250cm9scyhjb25zdCBWZWN0b3I8
UmVmUHRyPEVsZW1lbnQ+PiYpIHsgfTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkTm90aWZ5T25G
b3JtQ2hhbmdlcygpIHsgcmV0dXJuIGZhbHNlOyB9OwogCi0gICAgdmlydHVhbCB2b2lkIGRpZEFk
ZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5ZXIqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZGlkQWRk
Rm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciopIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRI
ZWFkZXJMYXllcihHcmFwaGljc0xheWVyJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEZv
b3RlckxheWVyKEdyYXBoaWNzTGF5ZXImKSB7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRV
c2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3KikgY29uc3QgeyByZXR1
cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJh
bWVWaWV3KGNvbnN0IEZyYW1lVmlldyYpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2
aXJ0dWFsIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzLCB1aW50NjRfdCkgeyB9CiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAg
ICB2aXJ0dWFsIHZvaWQgaGFzTWVkaWFTZXNzaW9uV2l0aEFjdGl2ZU1lZGlhRWxlbWVudHNEaWRD
aGFuZ2UoYm9vbCkgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlk
Q2hhbmdlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1ldGFkYXRhJikgeyB9CisgICAgdmly
dHVhbCB2b2lkIG1lZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKGNvbnN0IE1lZGlhU2Vzc2lv
bk1ldGFkYXRhJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGZvY3VzZWRDb250ZW50TWVkaWFFbGVt
ZW50RGlkQ2hhbmdlKHVpbnQ2NF90KSB7IH0KICNlbmRpZgogCkBAIC00MjcsMTEgKzQzMywxMiBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShURUxFUEhPTkVfTlVNQkVSX0RFVEVDVElP
TikgJiYgUExBVEZPUk0oTUFDKQotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVUZWxlcGhvbmVOdW1i
ZXJDbGljayhjb25zdCBTdHJpbmcmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBoYW5kbGVUZWxlcGhvbmVOdW1iZXJDbGljayhjb25zdCBTdHJpbmcmLCBj
b25zdCBJbnRQb2ludCYpIHsgfQogI2VuZGlmCisKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9M
UykKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKFdlYkNvcmU6
OkZyYW1lU2VsZWN0aW9uJiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYpIHsgfQotICAgIHZpcnR1YWwgYm9vbCBoYXNSZWxldmFudFNlbGVjdGlvblNlcnZp
Y2VzKGJvb2wgLyogaXNUZXh0T25seSAqLykgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgaGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKEZyYW1lU2VsZWN0aW9uJiwg
Y29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBJbnRQb2ludCYpIHsgfQorICAgIHZpcnR1YWwg
Ym9vbCBoYXNSZWxldmFudFNlbGVjdGlvblNlcnZpY2VzKGJvb2wgLyppc1RleHRPbmx5Ki8pIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAjZW5kaWYKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRE
aXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudHMoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC00
NDEsMTMgKzQ0OCwxMyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RB
UkdFVCkKICAgICB2aXJ0dWFsIHZvaWQgYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQodWlu
dDY0X3QgLypjb250ZXh0SWQqLykgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZVBsYXliYWNr
VGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IC8qY29udGV4dElkKi8pIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgLypjb250ZXh0SWQqLywg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sIC8qIGlzVmlkZW8gKi8pIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIodWludDY0X3QgLypjb250ZXh0SWQq
LywgY29uc3QgSW50UG9pbnQmLCBib29sIC8qaXNWaWRlbyovKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgcGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnRTdGF0ZURpZENoYW5nZSh1aW50NjRfdCAvKmNv
bnRleHRJZCovLCBNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIHsgfQogICAgIHZpcnR1
YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlckVuYWJsZWQoYm9vbCkgIHsg
fQotICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRl
KGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpTdGF0
ZSkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2Vy
U3RhdGUoY29uc3QgU3RyaW5nJiwgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0YXRlKSB7
IH0KICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lkIGltYWdlT3JNZWRpYURvY3VtZW50U2l6ZUNo
YW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBpbWFn
ZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkKGNvbnN0IEludFNpemUmKSB7IH0KIAogI2lmIEVO
QUJMRShWSURFTykgJiYgVVNFKEdTVFJFQU1FUikKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdElu
c3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKGNvbnN0IFN0cmluZyYgLypkZXRhaWxzKi8sIGNvbnN0
IFN0cmluZyYgLypkZXNjcmlwdGlvbiovLCBNZWRpYVBsYXllclJlcXVlc3RJbnN0YWxsTWlzc2lu
Z1BsdWdpbnNDYWxsYmFjayYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRyb2xsZXIuY3BwCmluZGV4IDBlN2E3N2I2ZGEyODlhMDI1NjkzNTM0YWQxZmM0ZDUxMDlj
NTBmMzMuLmMxYzQ5NDg0MDI4Mzg0OWYxNTJiYjI3NDVmOGExYjQ2MDZlZWQzZTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKQEAgLTk0LDcgKzk0
LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNsZWFyQ29udGV4dE1lbnUoKQogICAg
IG1fbWVudVByb3ZpZGVyID0gbnVsbHB0cjsKIH0KIAotdm9pZCBDb250ZXh0TWVudUNvbnRyb2xs
ZXI6OmhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZlbnQqIGV2ZW50KQordm9pZCBDb250ZXh0TWVu
dUNvbnRyb2xsZXI6OmhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZlbnQmIGV2ZW50KQogewogICAg
IG1fY29udGV4dE1lbnUgPSBtYXliZUNyZWF0ZUNvbnRleHRNZW51KGV2ZW50KTsKICAgICBpZiAo
IW1fY29udGV4dE1lbnUpCkBAIC0xMTAsOSArMTEwLDkgQEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0
cjxDb250ZXh0TWVudUl0ZW0+IHNlcGFyYXRvckl0ZW0oKQogICAgIHJldHVybiBzdGQ6OnVuaXF1
ZV9wdHI8Q29udGV4dE1lbnVJdGVtPihuZXcgQ29udGV4dE1lbnVJdGVtKFNlcGFyYXRvclR5cGUs
IENvbnRleHRNZW51SXRlbVRhZ05vQWN0aW9uLCBTdHJpbmcoKSkpOwogfQogCi12b2lkIENvbnRl
eHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50KiBldmVudCwgUGFzc1JlZlB0
cjxDb250ZXh0TWVudVByb3ZpZGVyPiBtZW51UHJvdmlkZXIpCit2b2lkIENvbnRleHRNZW51Q29u
dHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50JiBldmVudCwgQ29udGV4dE1lbnVQcm92aWRl
ciYgcHJvdmlkZXIpCiB7Ci0gICAgbV9tZW51UHJvdmlkZXIgPSBtZW51UHJvdmlkZXI7CisgICAg
bV9tZW51UHJvdmlkZXIgPSAmcHJvdmlkZXI7CiAKICAgICBtX2NvbnRleHRNZW51ID0gbWF5YmVD
cmVhdGVDb250ZXh0TWVudShldmVudCk7CiAgICAgaWYgKCFtX2NvbnRleHRNZW51KSB7CkBAIC0x
MjAsNyArMTIwLDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVu
dShFdmVudCogZXZlbnQsIFBhc3NSZWZQdHI8Q29udGV4dE1lbnUKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIG1fbWVudVByb3ZpZGVyLT5wb3B1bGF0ZUNvbnRleHRNZW51KG1fY29udGV4
dE1lbnUuZ2V0KCkpOworICAgIHByb3ZpZGVyLnBvcHVsYXRlQ29udGV4dE1lbnUobV9jb250ZXh0
TWVudS5nZXQoKSk7CiAgICAgaWYgKG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuaXNTZWxlY3Rl
ZCgpKSB7CiAgICAgICAgIGFwcGVuZEl0ZW0oKnNlcGFyYXRvckl0ZW0oKSwgbV9jb250ZXh0TWVu
dS5nZXQoKSk7CiAgICAgICAgIHBvcHVsYXRlKCk7CkBAIC0xMjksMzMgKzEyOSwzNCBAQCB2b2lk
IENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50KiBldmVudCwgUGFz
c1JlZlB0cjxDb250ZXh0TWVudQogfQogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCisK
IHN0YXRpYyBJbWFnZSogaW1hZ2VGcm9tSW1hZ2VFbGVtZW50Tm9kZShOb2RlJiBub2RlKQogewot
ICAgIFJlbmRlck9iamVjdCogcmVuZGVyZXIgPSBub2RlLnJlbmRlcmVyKCk7CisgICAgYXV0byog
cmVuZGVyZXIgPSBub2RlLnJlbmRlcmVyKCk7CiAgICAgaWYgKCFpczxSZW5kZXJJbWFnZT4ocmVu
ZGVyZXIpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICBDYWNoZWRJbWFnZSogaW1hZ2Ug
PSBkb3duY2FzdDxSZW5kZXJJbWFnZT4oKnJlbmRlcmVyKS5jYWNoZWRJbWFnZSgpOworICAgIGF1
dG8qIGltYWdlID0gZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlcikuY2FjaGVkSW1hZ2Uo
KTsKICAgICBpZiAoIWltYWdlIHx8IGltYWdlLT5lcnJvck9jY3VycmVkKCkpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwotCiAgICAgcmV0dXJuIGltYWdlLT5pbWFnZUZvclJlbmRlcmVyKHJlbmRl
cmVyKTsKIH0KKwogI2VuZGlmCiAKLXN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gQ29udGV4
dE1lbnVDb250cm9sbGVyOjptYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50KiBldmVudCkKK3N0
ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gQ29udGV4dE1lbnVDb250cm9sbGVyOjptYXliZUNy
ZWF0ZUNvbnRleHRNZW51KEV2ZW50JiBldmVudCkKIHsKLSAgICBBU1NFUlQoZXZlbnQpOwotICAg
IAotICAgIGlmICghaXM8TW91c2VFdmVudD4oKmV2ZW50KSkKKyAgICBpZiAoIWlzPE1vdXNlRXZl
bnQ+KGV2ZW50KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBNb3VzZUV2ZW50JiBt
b3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VFdmVudD4oKmV2ZW50KTsKLSAgICBIaXRUZXN0UmVz
dWx0IHJlc3VsdChtb3VzZUV2ZW50LmFic29sdXRlTG9jYXRpb24oKSk7CisgICAgYXV0byYgbW91
c2VFdmVudCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+KGV2ZW50KTsKKyAgICBhdXRvKiBub2RlID0g
bW91c2VFdmVudC50YXJnZXQoKS0+dG9Ob2RlKCk7CisgICAgaWYgKCFub2RlKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICBhdXRvKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCkuZnJhbWUo
KTsKKyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIE5vZGUq
IG5vZGUgPSBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpOwotICAgIGlmIChGcmFtZSogZnJhbWUg
PSBub2RlLT5kb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgIHJlc3VsdCA9IGZyYW1lLT5ldmVu
dEhhbmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2ludChtb3VzZUV2ZW50LmFic29sdXRlTG9jYXRp
b24oKSk7Ci0gICAgCisgICAgYXV0byByZXN1bHQgPSBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGl0
VGVzdFJlc3VsdEF0UG9pbnQobW91c2VFdmVudC5hYnNvbHV0ZUxvY2F0aW9uKCkpOwogICAgIGlm
ICghcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IApAQCAtMTYzLDcgKzE2NCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gQ29udGV4
dE1lbnVDb250cm9sbGVyOjptYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50CiAKICNpZiBFTkFC
TEUoU0VSVklDRV9DT05UUk9MUykKICAgICBpZiAobm9kZS0+aXNJbWFnZUNvbnRyb2xzQnV0dG9u
RWxlbWVudCgpKSB7Ci0gICAgICAgIGlmIChJbWFnZSogaW1hZ2UgPSBpbWFnZUZyb21JbWFnZUVs
ZW1lbnROb2RlKCpyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpKQorICAgICAgICBpZiAoYXV0
byogaW1hZ2UgPSBpbWFnZUZyb21JbWFnZUVsZW1lbnROb2RlKCpyZXN1bHQuaW5uZXJOb25TaGFy
ZWROb2RlKCkpKQogICAgICAgICAgICAgbV9jb250ZXh0LnNldENvbnRyb2xsZWRJbWFnZShpbWFn
ZSk7CiAKICAgICAgICAgLy8gRklYTUU6IElmIHdlIGNvdWxkbid0IGdldCB0aGUgaW1hZ2UgdGhl
biB3ZSBzaG91bGRuJ3QgdHJ5IHRvIHNob3cgdGhlIGltYWdlIGNvbnRyb2xzIG1lbnUgZm9yIGl0
LgpAQCAtMTcxLDI0ICsxNzIsMjQgQEAgc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250
ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQKICAgICB9CiAj
ZW5kaWYKIAotICAgIHJldHVybiBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+KG5ldyBDb250
ZXh0TWVudSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Q29udGV4dE1lbnU+KCk7CiB9
CiAKLXZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZlbnQqIGV2
ZW50KQordm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCYg
ZXZlbnQpCiB7CiAgICAgaWYgKG1fcGFnZS5pbnNwZWN0b3JDb250cm9sbGVyKCkuZW5hYmxlZCgp
KQogICAgICAgICBhZGRJbnNwZWN0RWxlbWVudEl0ZW0oKTsKIAotICAgIGV2ZW50LT5zZXREZWZh
dWx0SGFuZGxlZCgpOworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CiAKLXN0YXRp
YyB2b2lkIG9wZW5OZXdXaW5kb3coY29uc3QgVVJMJiB1cmxUb0xvYWQsIEZyYW1lKiBmcmFtZSwg
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
KQorc3RhdGljIHZvaWQgb3Blbk5ld1dpbmRvdyhjb25zdCBVUkwmIHVybFRvTG9hZCwgRnJhbWUm
IGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVS
THNQb2xpY3kpCiB7Ci0gICAgUGFnZSogb2xkUGFnZSA9IGZyYW1lLT5wYWdlKCk7CisgICAgUGFn
ZSogb2xkUGFnZSA9IGZyYW1lLnBhZ2UoKTsKICAgICBpZiAoIW9sZFBhZ2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChmcmFtZS0+ZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybFRvTG9hZCwgZnJhbWUtPmxvYWRl
cigpLm91dGdvaW5nUmVmZXJyZXIoKSksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJk
TGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6
OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzLCBzaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5KTsKKyAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QoZnJhbWUuZG9jdW1lbnQo
KS0+c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybFRvTG9hZCwgZnJhbWUubG9h
ZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0Zvcndh
cmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MsIHNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kpOwogCiAgICAgUGFnZSogbmV3UGFnZSA9IG9sZFBhZ2UtPmNocm9tZSgpLmNy
ZWF0ZVdpbmRvdyhmcmFtZSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgTmF2aWdhdGlvbkFj
dGlvbihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKSk7CiAgICAgaWYgKCFuZXdQYWdlKQpAQCAt
MTk4LDE1ICsxOTksMTcgQEAgc3RhdGljIHZvaWQgb3Blbk5ld1dpbmRvdyhjb25zdCBVUkwmIHVy
bFRvTG9hZCwgRnJhbWUqIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWwKIH0KIAogI2lmIFBMQVRG
T1JNKEdUSykKLXN0YXRpYyB2b2lkIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoVUNoYXIgY2hhcmFj
dGVyLCBGcmFtZSogZnJhbWUpCisKK3N0YXRpYyB2b2lkIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIo
VUNoYXIgY2hhcmFjdGVyLCBGcmFtZSYgZnJhbWUpCiB7CiAgICAgU3RyaW5nIHRleHQoJmNoYXJh
Y3RlciwgMSk7Ci0gICAgaWYgKCFmcmFtZS0+ZWRpdG9yKCkuc2hvdWxkSW5zZXJ0VGV4dCh0ZXh0
LCBmcmFtZS0+c2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgRWRpdG9ySW5z
ZXJ0QWN0aW9uOjpUeXBlZCkpCisgICAgaWYgKCFmcmFtZS5lZGl0b3IoKS5zaG91bGRJbnNlcnRU
ZXh0KHRleHQsIGZyYW1lLnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCksIEVk
aXRvckluc2VydEFjdGlvbjo6VHlwZWQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NFUlQo
ZnJhbWUtPmRvY3VtZW50KCkpOwotICAgIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRleHQoKmZyYW1l
LT5kb2N1bWVudCgpLCB0ZXh0LCAwLCBUeXBpbmdDb21tYW5kOjpUZXh0Q29tcG9zaXRpb25Ob25l
KTsKKyAgICBBU1NFUlQoZnJhbWUuZG9jdW1lbnQoKSk7CisgICAgVHlwaW5nQ29tbWFuZDo6aW5z
ZXJ0VGV4dCgqZnJhbWUuZG9jdW1lbnQoKSwgdGV4dCwgMCwgVHlwaW5nQ29tbWFuZDo6VGV4dENv
bXBvc2l0aW9uTm9uZSk7CiB9CisKICNlbmRpZgogCiB2b2lkIENvbnRleHRNZW51Q29udHJvbGxl
cjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjb25z
dCBTdHJpbmcmIHRpdGxlKQpAQCAtMjI1LDcgKzIyOCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24s
IGNvCiAKICAgICBzd2l0Y2ggKGFjdGlvbikgewogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
T3BlbkxpbmtJbk5ld1dpbmRvdzoKLSAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0
VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeTo6U2hvdWxkQWxsb3dFeHRlcm5hbFNjaGVtZXMpOworICAgICAgICBvcGVuTmV3
V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksICpmcmFt
ZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3dFeHRlcm5hbFNjaGVt
ZXMpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2Fk
TGlua1RvRGlzazoKICAgICAgICAgLy8gRklYTUU6IFNvbWUgZGF5IHdlIHNob3VsZCBiZSBhYmxl
IHRvIGRvIHRoaXMgZnJvbSB3aXRoaW4gV2ViQ29yZS4gKEJ1ZyAxMTc3MDkpCkBAIC0yMzUsNyAr
MjM4LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVj
dGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KICAgICAgICAgZnJhbWUtPmVkaXRvcigp
LmNvcHlVUkwobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgbV9j
b250ZXh0LmhpdFRlc3RSZXN1bHQoKS50ZXh0Q29udGVudCgpKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdzoKLSAgICAgICAg
b3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlSW1hZ2VVUkwo
KSwgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsK
KyAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRl
SW1hZ2VVUkwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRO
b3RBbGxvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93
bmxvYWRJbWFnZVRvRGlzazoKICAgICAgICAgLy8gRklYTUU6IFNvbWUgZGF5IHdlIHNob3VsZCBi
ZSBhYmxlIHRvIGRvIHRoaXMgZnJvbSB3aXRoaW4gV2ViQ29yZS4gKEJ1ZyAxMTc3MDkpCkBAIC0y
NTIsNyArMjU1LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRl
bVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KICAgICAgICAgYnJlYWs7CiAj
ZW5kaWYKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93Ogot
ICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVN
ZWRpYVVSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90
QWxsb3cpOworICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCku
YWJzb2x1dGVNZWRpYVVSTCgpLCAqZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6
OlNob3VsZE5vdEFsbG93KTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdEb3dubG9hZE1lZGlhVG9EaXNrOgogICAgICAgICAvLyBGSVhNRTogU29tZSBkYXkgd2Ug
c2hvdWxkIGJlIGFibGUgdG8gZG8gdGhpcyBmcm9tIHdpdGhpbiBXZWJDb3JlLiAoQnVnIDExNzcw
OSkKQEAgLTI4NSw5ICsyODgsOSBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4
dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwogICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3c6IHsKICAgICAgICAgRG9jdW1l
bnRMb2FkZXIqIGxvYWRlciA9IGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpOwogICAg
ICAgICBpZiAoIWxvYWRlci0+dW5yZWFjaGFibGVVUkwoKS5pc0VtcHR5KCkpCi0gICAgICAgICAg
ICBvcGVuTmV3V2luZG93KGxvYWRlci0+dW5yZWFjaGFibGVVUkwoKSwgZnJhbWUsIFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICAgICAgICAgIG9wZW5O
ZXdXaW5kb3cobG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLCAqZnJhbWUsIFNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgb3Blbk5ld1dpbmRvdyhsb2FkZXItPnVybCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOworICAgICAgICAgICAgb3Blbk5ld1dpbmRvdyhs
b2FkZXItPnVybCgpLCAqZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3Vs
ZE5vdEFsbG93KTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgQ29udGV4dE1lbnVJ
dGVtVGFnQ29weToKQEAgLTMxOCwzNCArMzIxLDM0IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9s
bGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNv
CiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5wZXJmb3JtRGVsZXRlKCk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydExSTU1hcms6Ci0gICAg
ICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIobGVmdFRvUmlnaHRNYXJrLCBmcmFtZSk7CisgICAg
ICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIobGVmdFRvUmlnaHRNYXJrLCAqZnJhbWUpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRSTE1N
YXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHJpZ2h0VG9MZWZ0TWFyaywgZnJh
bWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHJpZ2h0VG9MZWZ0TWFyaywgKmZy
YW1lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2Rl
SW5zZXJ0TFJFTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9SaWdo
dEVtYmVkLCBmcmFtZSk7CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIobGVmdFRvUmln
aHRFbWJlZCwgKmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdVbmljb2RlSW5zZXJ0UkxFTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rl
cihyaWdodFRvTGVmdEVtYmVkLCBmcmFtZSk7CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0
ZXIocmlnaHRUb0xlZnRFbWJlZCwgKmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
b250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0TFJPTWFyazoKLSAgICAgICAgaW5zZXJ0VW5p
Y29kZUNoYXJhY3RlcihsZWZ0VG9SaWdodE92ZXJyaWRlLCBmcmFtZSk7CisgICAgICAgIGluc2Vy
dFVuaWNvZGVDaGFyYWN0ZXIobGVmdFRvUmlnaHRPdmVycmlkZSwgKmZyYW1lKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0UkxPTWFyazoK
LSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdodFRvTGVmdE92ZXJyaWRlLCBmcmFt
ZSk7CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRPdmVycmlkZSwg
KmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmlj
b2RlSW5zZXJ0UERGTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rlcihwb3BEaXJl
Y3Rpb25hbEZvcm1hdHRpbmcsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rl
cihwb3BEaXJlY3Rpb25hbEZvcm1hdHRpbmcsICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydFpXU01hcms6Ci0gICAgICAgIGlu
c2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoU3BhY2UsIGZyYW1lKTsKKyAgICAgICAgaW5z
ZXJ0VW5pY29kZUNoYXJhY3Rlcih6ZXJvV2lkdGhTcGFjZSwgKmZyYW1lKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0WldKTWFyazoKLSAg
ICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rlcih6ZXJvV2lkdGhKb2luZXIsIGZyYW1lKTsKKyAg
ICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rlcih6ZXJvV2lkdGhKb2luZXIsICpmcmFtZSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydFpX
TkpNYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHplcm9XaWR0aE5vbkpvaW5l
ciwgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHplcm9XaWR0aE5vbkpv
aW5lciwgKmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAjZW5kaWYKICNpZiBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKEVGTCkKQEAgLTM5Myw3ICszOTYsNyBAQCB2b2lkIENvbnRleHRNZW51Q29u
dHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9u
LCBjbwogICAgICAgICBpZiAoRnJhbWUqIHRhcmdldEZyYW1lID0gbV9jb250ZXh0LmhpdFRlc3RS
ZXN1bHQoKS50YXJnZXRGcmFtZSgpKQogICAgICAgICAgICAgdGFyZ2V0RnJhbWUtPmxvYWRlcigp
LmxvYWRGcmFtZVJlcXVlc3QoRnJhbWVMb2FkUmVxdWVzdChmcmFtZS0+ZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCku
YWJzb2x1dGVMaW5rVVJMKCksIGZyYW1lLT5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpLCBM
b2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJl
ciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5
OjpTdXBwcmVzcywgdGFyZ2V0RnJhbWUtPmlzTWFpbkZyYW1lKCkgPyBTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5OjpTaG91bGRBbGxvdyA6IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6
OlNob3VsZE5vdEFsbG93KSwgbnVsbHB0ciwgbnVsbHB0cik7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxp
bmtVUkwoKSwgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93
KTsKKyAgICAgICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5h
YnNvbHV0ZUxpbmtVUkwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpT
aG91bGRBbGxvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
Qm9sZDoKICAgICAgICAgZnJhbWUtPmVkaXRvcigpLmNvbW1hbmQoIlRvZ2dsZUJvbGQiKS5leGVj
dXRlKCk7CkBAIC0xNDI5LDI2ICsxNDMyLDMwIEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVy
OjpjaGVja09yRW5hYmxlSWZOZWVkZWQoQ29udGV4dE1lbnVJdGVtJiBpdGVtKSBjb25zdAogfQog
CiAjaWYgVVNFKEFDQ0VTU0lCSUxJVFlfQ09OVEVYVF9NRU5VUykKLXZvaWQgQ29udGV4dE1lbnVD
b250cm9sbGVyOjpzaG93Q29udGV4dE1lbnVBdChGcmFtZSogZnJhbWUsIGNvbnN0IEludFBvaW50
JiBjbGlja1BvaW50KQorCit2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRN
ZW51QXQoRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRQb2ludCYgY2xpY2tQb2ludCkKIHsKICAgICBj
bGVhckNvbnRleHRNZW51KCk7CiAgICAgCiAgICAgLy8gU2ltdWxhdGUgYSBjbGljayBpbiB0aGUg
bWlkZGxlIG9mIHRoZSBhY2Nlc3NpYmlsaXR5IG9iamVjdC4KICAgICBQbGF0Zm9ybU1vdXNlRXZl
bnQgbW91c2VFdmVudChjbGlja1BvaW50LCBjbGlja1BvaW50LCBSaWdodEJ1dHRvbiwgUGxhdGZv
cm1FdmVudDo6TW91c2VQcmVzc2VkLCAxLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgY3Vy
cmVudFRpbWUoKSwgRm9yY2VBdENsaWNrLCBOb1RhcCk7Ci0gICAgZnJhbWUtPmV2ZW50SGFuZGxl
cigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsKLSAgICBib29sIGhhbmRsZWQg
PSBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2VuZENvbnRleHRNZW51RXZlbnQobW91c2VFdmVudCk7
CisgICAgZnJhbWUuZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50KG1vdXNlRXZl
bnQpOworICAgIGJvb2wgaGFuZGxlZCA9IGZyYW1lLmV2ZW50SGFuZGxlcigpLnNlbmRDb250ZXh0
TWVudUV2ZW50KG1vdXNlRXZlbnQpOwogICAgIGlmIChoYW5kbGVkKQogICAgICAgICBtX2NsaWVu
dC5zaG93Q29udGV4dE1lbnUoKTsKIH0KKwogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9D
T05UUk9MUykKLXZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93SW1hZ2VDb250cm9sc01l
bnUoRXZlbnQqIGV2ZW50KQorCit2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0ltYWdl
Q29udHJvbHNNZW51KEV2ZW50JiBldmVudCkKIHsKICAgICBjbGVhckNvbnRleHRNZW51KCk7CiAg
ICAgaGFuZGxlQ29udGV4dE1lbnVFdmVudChldmVudCk7CiAgICAgbV9jbGllbnQuc2hvd0NvbnRl
eHRNZW51KCk7CiB9CisKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaAppbmRleCAxMTI1NmUxY2U3OWFi
MWU3YjMyMTU4Zjc4NGRjNzg4MTM2NDc0ZDhkLi5mNjM5NjQ4YjE4NjIwNDYwNmVmY2E1NmE5MDc4
MmM4OTM3YTBlOTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9s
bGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMjksMjEgKzI5LDE2IEBACiAKICNpbmNsdWRlICJDb250ZXh0TWVudUNvbnRl
eHQuaCIKICNpbmNsdWRlICJDb250ZXh0TWVudUl0ZW0uaCIKLSNpbmNsdWRlIDx3dGYvTm9uY29w
eWFibGUuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDb250ZXh0TWVudTsKIGNsYXNz
IENvbnRleHRNZW51Q2xpZW50OwotY2xhc3MgQ29udGV4dE1lbnVJdGVtOwogY2xhc3MgQ29udGV4
dE1lbnVQcm92aWRlcjsKIGNsYXNzIEV2ZW50OwogY2xhc3MgUGFnZTsKIAogY2xhc3MgQ29udGV4
dE1lbnVDb250cm9sbGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb250ZXh0TWVudUNv
bnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKICAgICBDb250ZXh0TWVudUNvbnRyb2xsZXIoUGFnZSYsIENvbnRl
eHRNZW51Q2xpZW50Jik7CiAgICAgfkNvbnRleHRNZW51Q29udHJvbGxlcigpOwpAQCAtNTQsOCAr
NDksOCBAQCBwdWJsaWM6CiAgICAgQ29udGV4dE1lbnUqIGNvbnRleHRNZW51KCkgY29uc3QgeyBy
ZXR1cm4gbV9jb250ZXh0TWVudS5nZXQoKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2xl
YXJDb250ZXh0TWVudSgpOwogCi0gICAgdm9pZCBoYW5kbGVDb250ZXh0TWVudUV2ZW50KEV2ZW50
Kik7Ci0gICAgdm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQqLCBQYXNzUmVmUHRyPENvbnRleHRN
ZW51UHJvdmlkZXI+KTsKKyAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZlbnQmKTsK
KyAgICB2b2lkIHNob3dDb250ZXh0TWVudShFdmVudCYsIENvbnRleHRNZW51UHJvdmlkZXImKTsK
IAogICAgIHZvaWQgcG9wdWxhdGUoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbnRleHRN
ZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsK
QEAgLTY4LDE2ICs2MywxNiBAQCBwdWJsaWM6CiAgICAgY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0
VGVzdFJlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCk7IH0K
IAogI2lmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCi0gICAgdm9pZCBzaG93Q29u
dGV4dE1lbnVBdChGcmFtZSosIGNvbnN0IEludFBvaW50JiBjbGlja1BvaW50KTsKKyAgICB2b2lk
IHNob3dDb250ZXh0TWVudUF0KEZyYW1lJiwgY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQpOwog
I2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKLSAgICB2b2lkIHNob3dJbWFn
ZUNvbnRyb2xzTWVudShFdmVudCopOworICAgIHZvaWQgc2hvd0ltYWdlQ29udHJvbHNNZW51KEV2
ZW50Jik7CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1l
bnU+IG1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQqKTsKLSAgICB2b2lkIHNob3dDb250ZXh0
TWVudShFdmVudCopOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gbWF5YmVDcmVh
dGVDb250ZXh0TWVudShFdmVudCYpOworICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KEV2ZW50Jik7
CiAgICAgCiAgICAgdm9pZCBhcHBlbmRJdGVtKENvbnRleHRNZW51SXRlbSYsIENvbnRleHRNZW51
KiBwYXJlbnRNZW51KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcAppbmRleCA4YzI3MzgxYWQ2
OWJjMmVhYjkyMzJmMjhhYTU3NjA1MDNiNmRiMThkLi42YmI4OTYxZDljZTgyOGE5ODI1NDI1OTAw
MTI2ZjhlNWJkYTdjMzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcApAQCAtMzYxLDcgKzM2
MSw3IEBAIHZvaWQgRE9NVGltZXI6OmZpcmVkKCkKICAgICAgICAgaWYgKFdLT2JzZXJ2ZWRDb250
ZW50Q2hhbmdlKCkgPT0gV0tDb250ZW50VmlzaWJpbGl0eUNoYW5nZSB8fCBzaG91bGRSZXBvcnRM
YWNrT2ZDaGFuZ2VzKSB7CiAgICAgICAgICAgICBEb2N1bWVudCYgZG9jdW1lbnQgPSBkb3duY2Fz
dDxEb2N1bWVudD4oY29udGV4dCk7CiAgICAgICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3Vt
ZW50LnBhZ2UoKSkKLSAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5vYnNl
cnZlZENvbnRlbnRDaGFuZ2UoZG9jdW1lbnQuZnJhbWUoKSk7CisgICAgICAgICAgICAgICAgcGFn
ZS0+Y2hyb21lKCkuY2xpZW50KCkub2JzZXJ2ZWRDb250ZW50Q2hhbmdlKCpkb2N1bWVudC5mcmFt
ZSgpKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CmluZGV4IDk2OTk2NTAzOGEyNjVkZDcxODA4YzZhZmRmMGIyMGRkNTJlYjY0YTQuLjYyNjk2NzMw
OWE1YTczYTM4NzM4YzAxNzhlMmJjNjYxZmIzMGMyNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAy
MDA4LCAyMDEwLCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTI5LDcgKzI5LDYgQEAKIAogI2luY2x1ZGUgIkJh
Y2tGb3J3YXJkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkJhclByb3AuaCIKLSNpbmNsdWRlICJC
ZWZvcmVVbmxvYWRFdmVudC5oIgogI2luY2x1ZGUgIkNTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlv
bi5oIgogI2luY2x1ZGUgIkNTU1J1bGUuaCIKICNpbmNsdWRlICJDU1NSdWxlTGlzdC5oIgpAQCAt
MTI1LDIyICsxMjQsMjMgQEAKICNpbmNsdWRlICJXZWJLaXROYW1lc3BhY2UuaCIKICNlbmRpZgog
Ci0jaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCi0jaW5jbHVkZSAiRGV2aWNlUHJveGltaXR5
Q29udHJvbGxlci5oIgotI2VuZGlmCi0KICNpZiBFTkFCTEUoR0FNRVBBRCkKICNpbmNsdWRlICJH
YW1lcGFkTWFuYWdlci5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCisjaW5j
bHVkZSAiTmF2aWdhdG9yR2VvbG9jYXRpb24uaCIKKyNlbmRpZgorCiAjaWYgRU5BQkxFKFBPSU5U
RVJfTE9DSykKICNpbmNsdWRlICJQb2ludGVyTG9ja0NvbnRyb2xsZXIuaCIKICNlbmRpZgogCi0j
aWYgUExBVEZPUk0oSU9TKQotI2lmIEVOQUJMRShHRU9MT0NBVElPTikKLSNpbmNsdWRlICJOYXZp
Z2F0b3JHZW9sb2NhdGlvbi5oIgorI2lmIEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQorI2luY2x1
ZGUgIkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXIuaCIKICNlbmRpZgorCisjaWYgUExBVEZPUk0o
SU9TKQogI2luY2x1ZGUgIldLQ29udGVudE9ic2VydmF0aW9uLmgiCiAjZW5kaWYKIApAQCAtMTUw
LDkgKzE1MCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUG9zdE1lc3NhZ2VUaW1l
ciA6IHB1YmxpYyBUaW1lckJhc2UgewogcHVibGljOgotICAgIFBvc3RNZXNzYWdlVGltZXIoRE9N
V2luZG93JiB3aW5kb3csIFBhc3NSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgRE9NV2luZG93JiBzb3VyY2UsIHN0ZDo6dW5p
cXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMsIFJlZlB0cjxTZWN1cml0
eU9yaWdpbj4mJiB0YXJnZXRPcmlnaW4sIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2tU
cmFjZSkKKyAgICBQb3N0TWVzc2FnZVRpbWVyKERPTVdpbmRvdyYgd2luZG93LCBSZWY8U2VyaWFs
aXplZFNjcmlwdFZhbHVlPiYmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3JpZ2luLCBE
T01XaW5kb3cmIHNvdXJjZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5
PiBjaGFubmVscywgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHRhcmdldE9yaWdpbiwgUmVmUHRy
PFNjcmlwdENhbGxTdGFjaz4mJiBzdGFja1RyYWNlKQogICAgICAgICA6IG1fd2luZG93KHdpbmRv
dykKLSAgICAgICAgLCBtX21lc3NhZ2UobWVzc2FnZSkKKyAgICAgICAgLCBtX21lc3NhZ2UoV1RG
TW92ZShtZXNzYWdlKSkKICAgICAgICAgLCBtX29yaWdpbihzb3VyY2VPcmlnaW4pCiAgICAgICAg
ICwgbV9zb3VyY2Uoc291cmNlKQogICAgICAgICAsIG1fY2hhbm5lbHMoV1RGTW92ZShjaGFubmVs
cykpCkBAIC0xODEsNyArMTgxLDcgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBSZWY8RE9NV2lu
ZG93PiBtX3dpbmRvdzsKLSAgICBSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiBtX21lc3Nh
Z2U7CisgICAgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9tZXNzYWdlOwogICAgIFN0cmlu
ZyBtX29yaWdpbjsKICAgICBSZWY8RE9NV2luZG93PiBtX3NvdXJjZTsKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IG1fY2hhbm5lbHM7CkBAIC0zMjUsMTIgKzMy
NSwxMCBAQCB2b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hBbGxQZW5kaW5nVW5sb2FkRXZlbnRzKCkK
IC8vIDMpIENvbnN0cmFpbnMgdGhlIHdpbmRvdyByZWN0IHRvIHdpdGhpbiB0aGUgdG9wIGFuZCBs
ZWZ0IGJvdW5kYXJpZXMgb2YgdGhlIGF2YWlsYWJsZSBzY3JlZW4gcmVjdC4KIC8vIDQpIENvbnN0
cmFpbnMgdGhlIHdpbmRvdyByZWN0IHRvIHdpdGhpbiB0aGUgYm90dG9tIGFuZCByaWdodCBib3Vu
ZGFyaWVzIG9mIHRoZSBhdmFpbGFibGUgc2NyZWVuIHJlY3QuCiAvLyA1KSBUcmFuc2xhdGUgdGhl
IHdpbmRvdyByZWN0IGNvb3JkaW5hdGVzIHRvIGJlIHdpdGhpbiB0aGUgY29vcmRpbmF0ZSBzcGFj
ZSBvZiB0aGUgc2NyZWVuLgotRmxvYXRSZWN0IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChQ
YWdlKiBwYWdlLCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKQorRmxvYXRSZWN0IERP
TVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChQYWdlJiBwYWdlLCBjb25zdCBGbG9hdFJlY3QmIHBl
bmRpbmdDaGFuZ2VzKQogewotICAgIEFTU0VSVChwYWdlKTsKLQotICAgIEZsb2F0UmVjdCBzY3Jl
ZW4gPSBzY3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UtPm1haW5GcmFtZSgpLnZpZXcoKSk7Ci0gICAg
RmxvYXRSZWN0IHdpbmRvdyA9IHBhZ2UtPmNocm9tZSgpLndpbmRvd1JlY3QoKTsKKyAgICBGbG9h
dFJlY3Qgc2NyZWVuID0gc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLm1haW5GcmFtZSgpLnZpZXco
KSk7CisgICAgRmxvYXRSZWN0IHdpbmRvdyA9IHBhZ2UuY2hyb21lKCkud2luZG93UmVjdCgpOwog
CiAgICAgLy8gTWFrZSBzdXJlIHdlJ3JlIGluIGEgdmFsaWQgc3RhdGUgYmVmb3JlIGFkanVzdGlu
ZyBkaW1lbnNpb25zLgogICAgIEFTU0VSVChzdGQ6OmlzZmluaXRlKHNjcmVlbi54KCkpKTsKQEAg
LTM1Miw3ICszNTAsNyBAQCBGbG9hdFJlY3QgRE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0KFBh
Z2UqIHBhZ2UsIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5nZQogICAgIGlmICghc3RkOjpp
c25hbihwZW5kaW5nQ2hhbmdlcy5oZWlnaHQoKSkpCiAgICAgICAgIHdpbmRvdy5zZXRIZWlnaHQo
cGVuZGluZ0NoYW5nZXMuaGVpZ2h0KCkpOwogCi0gICAgRmxvYXRTaXplIG1pbmltdW1TaXplID0g
cGFnZS0+Y2hyb21lKCkuY2xpZW50KCkubWluaW11bVdpbmRvd1NpemUoKTsKKyAgICBGbG9hdFNp
emUgbWluaW11bVNpemUgPSBwYWdlLmNocm9tZSgpLmNsaWVudCgpLm1pbmltdW1XaW5kb3dTaXpl
KCk7CiAgICAgd2luZG93LnNldFdpZHRoKHN0ZDo6bWluKHN0ZDo6bWF4KG1pbmltdW1TaXplLndp
ZHRoKCksIHdpbmRvdy53aWR0aCgpKSwgc2NyZWVuLndpZHRoKCkpKTsKICAgICB3aW5kb3cuc2V0
SGVpZ2h0KHN0ZDo6bWluKHN0ZDo6bWF4KG1pbmltdW1TaXplLmhlaWdodCgpLCB3aW5kb3cuaGVp
Z2h0KCkpLCBzY3JlZW4uaGVpZ2h0KCkpKTsKIApAQCAtMzYzLDM4ICszNjEsMzEgQEAgRmxvYXRS
ZWN0IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChQYWdlKiBwYWdlLCBjb25zdCBGbG9hdFJl
Y3QmIHBlbmRpbmdDaGFuZ2UKICAgICByZXR1cm4gd2luZG93OwogfQogCi1ib29sIERPTVdpbmRv
dzo6YWxsb3dQb3BVcChGcmFtZSogZmlyc3RGcmFtZSkKK2Jvb2wgRE9NV2luZG93OjphbGxvd1Bv
cFVwKEZyYW1lJiBmaXJzdEZyYW1lKQogewotICAgIEFTU0VSVChmaXJzdEZyYW1lKTsKLSAgICAK
LSAgICBhdXRvJiBzZXR0aW5ncyA9IGZpcnN0RnJhbWUtPnNldHRpbmdzKCk7Ci0KLSAgICBpZiAo
U2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkgfHwgc2V0dGluZ3MuYWxs
b3dXaW5kb3dPcGVuV2l0aG91dFVzZXJHZXN0dXJlKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwot
Ci0gICAgcmV0dXJuIHNldHRpbmdzLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2Fs
bHkoKTsKKyAgICBhdXRvJiBzZXR0aW5ncyA9IGZpcnN0RnJhbWUuc2V0dGluZ3MoKTsKKyAgICBy
ZXR1cm4gU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkKKyAgICAgICAg
fHwgc2V0dGluZ3MuYWxsb3dXaW5kb3dPcGVuV2l0aG91dFVzZXJHZXN0dXJlKCkKKyAgICAgICAg
fHwgc2V0dGluZ3MuamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSgpOwogfQog
CiBib29sIERPTVdpbmRvdzo6YWxsb3dQb3BVcCgpCiB7Ci0gICAgcmV0dXJuIG1fZnJhbWUgJiYg
YWxsb3dQb3BVcChtX2ZyYW1lKTsKKyAgICByZXR1cm4gbV9mcmFtZSAmJiBhbGxvd1BvcFVwKCpt
X2ZyYW1lKTsKIH0KIAotYm9vbCBET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhjb25zdCBG
cmFtZSogZnJhbWUpCitib29sIERPTVdpbmRvdzo6Y2FuU2hvd01vZGFsRGlhbG9nKGNvbnN0IEZy
YW1lJiBmcmFtZSkKIHsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
ICAgICAvLyBPdmVycmlkZSBzdXBwb3J0IGZvciBsYXlvdXQgdGVzdGluZyBwdXJwb3Nlcy4KLSAg
ICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkgeworICAgIGlmIChhdXRv
KiBkb2N1bWVudCA9IGZyYW1lLmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKGF1dG8qIHdpbmRv
dyA9IGRvY3VtZW50LT5kb21XaW5kb3coKSkgewogICAgICAgICAgICAgaWYgKHdpbmRvdy0+bV9j
YW5TaG93TW9kYWxEaWFsb2dPdmVycmlkZSkKICAgICAgICAgICAgICAgICByZXR1cm4gd2luZG93
LT5tX2NhblNob3dNb2RhbERpYWxvZ092ZXJyaWRlLnZhbHVlKCk7CiAgICAgICAgIH0KICAgICB9
CiAKLSAgICBhdXRvKiBwYWdlID0gZnJhbWUtPnBhZ2UoKTsKLSAgICByZXR1cm4gcGFnZSA/IHBh
Z2UtPmNocm9tZSgpLmNhblJ1bk1vZGFsKCkgOiBmYWxzZTsKKyAgICBhdXRvKiBwYWdlID0gZnJh
bWUucGFnZSgpOworICAgIHJldHVybiBwYWdlICYmIHBhZ2UtPmNocm9tZSgpLmNhblJ1bk1vZGFs
KCk7CiB9CiAKIHN0YXRpYyB2b2lkIGxhbmd1YWdlc0NoYW5nZWRDYWxsYmFjayh2b2lkKiBjb250
ZXh0KQpAQCAtNDA3LDIwICszOTgsMTggQEAgdm9pZCBET01XaW5kb3c6OnNldENhblNob3dNb2Rh
bERpYWxvZ092ZXJyaWRlKGJvb2wgYWxsb3cpCiAgICAgbV9jYW5TaG93TW9kYWxEaWFsb2dPdmVy
cmlkZSA9IGFsbG93OwogfQogCi1ET01XaW5kb3c6OkRPTVdpbmRvdyhEb2N1bWVudCogZG9jdW1l
bnQpCi0gICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcihkb2N1bWVudCkKLSAgICAsIEZy
YW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcihkb2N1bWVudC0+ZnJhbWUoKSkKK0RPTVdpbmRvdzo6RE9N
V2luZG93KERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IENvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyKCZkb2N1bWVudCkKKyAgICAsIEZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZlcihkb2N1bWVudC5m
cmFtZSgpKQogICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQogewogICAgIEFTU0VSVChmcmFt
ZSgpKTsKLSAgICBBU1NFUlQoRE9NV2luZG93Ojpkb2N1bWVudCgpKTsKLQogICAgIGFkZExhbmd1
YWdlQ2hhbmdlT2JzZXJ2ZXIodGhpcywgJmxhbmd1YWdlc0NoYW5nZWRDYWxsYmFjayk7CiB9CiAK
LXZvaWQgRE9NV2luZG93OjpkaWRTZWN1cmVUcmFuc2l0aW9uVG8oRG9jdW1lbnQqIGRvY3VtZW50
KQordm9pZCBET01XaW5kb3c6OmRpZFNlY3VyZVRyYW5zaXRpb25UbyhEb2N1bWVudCYgZG9jdW1l
bnQpCiB7Ci0gICAgb2JzZXJ2ZUNvbnRleHQoZG9jdW1lbnQpOworICAgIG9ic2VydmVDb250ZXh0
KCZkb2N1bWVudCk7CiB9CiAKIERPTVdpbmRvdzo6fkRPTVdpbmRvdygpCkBAIC01NDcsMTQgKzUz
NiwxNCBAQCB2b2lkIERPTVdpbmRvdzo6ZGVjcmVtZW50R2FtZXBhZEV2ZW50TGlzdGVuZXJDb3Vu
dCgpCiAKICNlbmRpZgogCi12b2lkIERPTVdpbmRvdzo6cmVnaXN0ZXJQcm9wZXJ0eShET01XaW5k
b3dQcm9wZXJ0eSogcHJvcGVydHkpCit2b2lkIERPTVdpbmRvdzo6cmVnaXN0ZXJQcm9wZXJ0eShE
T01XaW5kb3dQcm9wZXJ0eSYgcHJvcGVydHkpCiB7Ci0gICAgbV9wcm9wZXJ0aWVzLmFkZChwcm9w
ZXJ0eSk7CisgICAgbV9wcm9wZXJ0aWVzLmFkZCgmcHJvcGVydHkpOwogfQogCi12b2lkIERPTVdp
bmRvdzo6dW5yZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5KiBwcm9wZXJ0eSkKK3Zv
aWQgRE9NV2luZG93Ojp1bnJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkmIHByb3Bl
cnR5KQogewotICAgIG1fcHJvcGVydGllcy5yZW1vdmUocHJvcGVydHkpOworICAgIG1fcHJvcGVy
dGllcy5yZW1vdmUoJnByb3BlcnR5KTsKIH0KIAogdm9pZCBET01XaW5kb3c6OnJlc2V0VW5sZXNz
U3VzcGVuZGVkRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCkKQEAgLTk3NCwyMyArOTYzLDE4IEBAIHZv
aWQgRE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQoUG9zdE1lc3NhZ2VUaW1lciYgdGlt
ZXIpCiAgICAgaWYgKCFkb2N1bWVudCgpIHx8ICFpc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZGlzcGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2lu
Q2hlY2sodGltZXIudGFyZ2V0T3JpZ2luKCksIHRpbWVyLmV2ZW50KCpkb2N1bWVudCgpKSwgdGlt
ZXIuc3RhY2tUcmFjZSgpKTsKLX0KLQotdm9pZCBET01XaW5kb3c6OmRpc3BhdGNoTWVzc2FnZUV2
ZW50V2l0aE9yaWdpbkNoZWNrKFNlY3VyaXR5T3JpZ2luKiBpbnRlbmRlZFRhcmdldE9yaWdpbiwg
RXZlbnQmIGV2ZW50LCBQYXNzUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4gc3RhY2tUcmFjZSkKLXsK
LSAgICBpZiAoaW50ZW5kZWRUYXJnZXRPcmlnaW4pIHsKKyAgICBpZiAoYXV0byogaW50ZW5kZWRU
YXJnZXRPcmlnaW4gPSB0aW1lci50YXJnZXRPcmlnaW4oKSkgewogICAgICAgICAvLyBDaGVjayB0
YXJnZXQgb3JpZ2luIG5vdyBzaW5jZSB0aGUgdGFyZ2V0IGRvY3VtZW50IG1heSBoYXZlIGNoYW5n
ZWQgc2luY2UgdGhlIHRpbWVyIHdhcyBzY2hlZHVsZWQuCiAgICAgICAgIGlmICghaW50ZW5kZWRU
YXJnZXRPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KGRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCkpKSB7Ci0gICAgICAgICAgICBpZiAoUGFnZUNvbnNvbGVDbGllbnQqIHBhZ2VDb25zb2xl
ID0gY29uc29sZSgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogcGFnZUNvbnNvbGUgPSBjb25z
b2xlKCkpIHsKICAgICAgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIlVu
YWJsZSB0byBwb3N0IG1lc3NhZ2UgdG8gIiwgaW50ZW5kZWRUYXJnZXRPcmlnaW4tPnRvU3RyaW5n
KCksICIuIFJlY2lwaWVudCBoYXMgb3JpZ2luICIsIGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCkudG9TdHJpbmcoKSwgIi5cbiIpOwotICAgICAgICAgICAgICAgIHBhZ2VDb25zb2xlLT5hZGRN
ZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtZXNz
YWdlLCBzdGFja1RyYWNlKTsKKyAgICAgICAgICAgICAgICBwYWdlQ29uc29sZS0+YWRkTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWVzc2FnZSwg
dGltZXIuc3RhY2tUcmFjZSgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQogICAgIH0KIAotICAgIGRpc3BhdGNoRXZlbnQoZXZlbnQpOworICAgIGRpc3Bh
dGNoRXZlbnQodGltZXIuZXZlbnQoKmRvY3VtZW50KCkpKTsKIH0KIAogRE9NU2VsZWN0aW9uKiBE
T01XaW5kb3c6OmdldFNlbGVjdGlvbigpCkBAIC0xMTEzLDcgKzEwOTcsNyBAQCB2b2lkIERPTVdp
bmRvdzo6cHJpbnQoKQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIG1fc2hvdWxkUHJpbnRX
aGVuRmluaXNoZWRMb2FkaW5nID0gZmFsc2U7Ci0gICAgcGFnZS0+Y2hyb21lKCkucHJpbnQobV9m
cmFtZSk7CisgICAgcGFnZS0+Y2hyb21lKCkucHJpbnQoKm1fZnJhbWUpOwogfQogCiB2b2lkIERP
TVdpbmRvdzo6c3RvcCgpCkBAIC0xMTQ1LDcgKzExMjksNyBAQCB2b2lkIERPTVdpbmRvdzo6YWxl
cnQoY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIHBhZ2UtPnBvaW50ZXJMb2NrQ29udHJvbGxl
cigpLnJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CiAjZW5kaWYKIAotICAgIHBhZ2UtPmNocm9tZSgp
LnJ1bkphdmFTY3JpcHRBbGVydChtX2ZyYW1lLCBtZXNzYWdlKTsKKyAgICBwYWdlLT5jaHJvbWUo
KS5ydW5KYXZhU2NyaXB0QWxlcnQoKm1fZnJhbWUsIG1lc3NhZ2UpOwogfQogCiBib29sIERPTVdp
bmRvdzo6Y29uZmlybShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCkBAIC0xMTY3LDcgKzExNTEsNyBA
QCBib29sIERPTVdpbmRvdzo6Y29uZmlybShjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgcGFn
ZS0+cG9pbnRlckxvY2tDb250cm9sbGVyKCkucmVxdWVzdFBvaW50ZXJVbmxvY2soKTsKICNlbmRp
ZgogCi0gICAgcmV0dXJuIHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRDb25maXJtKG1fZnJh
bWUsIG1lc3NhZ2UpOworICAgIHJldHVybiBwYWdlLT5jaHJvbWUoKS5ydW5KYXZhU2NyaXB0Q29u
ZmlybSgqbV9mcmFtZSwgbWVzc2FnZSk7CiB9CiAKIFN0cmluZyBET01XaW5kb3c6OnByb21wdChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlKQpAQCAtMTE5
MCw3ICsxMTc0LDcgQEAgU3RyaW5nIERPTVdpbmRvdzo6cHJvbXB0KGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUpCiAjZW5kaWYKIAogICAgIFN0cmluZyBy
ZXR1cm5WYWx1ZTsKLSAgICBpZiAocGFnZS0+Y2hyb21lKCkucnVuSmF2YVNjcmlwdFByb21wdCht
X2ZyYW1lLCBtZXNzYWdlLCBkZWZhdWx0VmFsdWUsIHJldHVyblZhbHVlKSkKKyAgICBpZiAocGFn
ZS0+Y2hyb21lKCkucnVuSmF2YVNjcmlwdFByb21wdCgqbV9mcmFtZSwgbWVzc2FnZSwgZGVmYXVs
dFZhbHVlLCByZXR1cm5WYWx1ZSkpCiAgICAgICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIAogICAg
IHJldHVybiBTdHJpbmcoKTsKQEAgLTEzNjgsNyArMTM1Miw3IEBAIHZvaWQgRE9NV2luZG93Ojpz
ZXRTdGF0dXMoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFT
U0VSVChtX2ZyYW1lLT5kb2N1bWVudCgpKTsgLy8gQ2xpZW50IGNhbGxzIHNob3VsZG4ndCBiZSBt
YWRlIHdoZW4gdGhlIGZyYW1lIGlzIGluIGluY29uc2lzdGVudCBzdGF0ZS4KLSAgICBwYWdlLT5j
aHJvbWUoKS5zZXRTdGF0dXNiYXJUZXh0KG1fZnJhbWUsIG1fc3RhdHVzKTsKKyAgICBwYWdlLT5j
aHJvbWUoKS5zZXRTdGF0dXNiYXJUZXh0KCptX2ZyYW1lLCBtX3N0YXR1cyk7CiB9IAogICAgIAog
dm9pZCBET01XaW5kb3c6OnNldERlZmF1bHRTdGF0dXMoY29uc3QgU3RyaW5nJiBzdHJpbmcpIApA
QCAtMTM4Myw3ICsxMzY3LDcgQEAgdm9pZCBET01XaW5kb3c6OnNldERlZmF1bHRTdGF0dXMoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFTU0VSVChtX2ZyYW1l
LT5kb2N1bWVudCgpKTsgLy8gQ2xpZW50IGNhbGxzIHNob3VsZG4ndCBiZSBtYWRlIHdoZW4gdGhl
IGZyYW1lIGlzIGluIGluY29uc2lzdGVudCBzdGF0ZS4KLSAgICBwYWdlLT5jaHJvbWUoKS5zZXRT
dGF0dXNiYXJUZXh0KG1fZnJhbWUsIG1fZGVmYXVsdFN0YXR1cyk7CisgICAgcGFnZS0+Y2hyb21l
KCkuc2V0U3RhdHVzYmFyVGV4dCgqbV9mcmFtZSwgbV9kZWZhdWx0U3RhdHVzKTsKIH0KIAogRE9N
V2luZG93KiBET01XaW5kb3c6OnNlbGYoKSBjb25zdApAQCAtMTQzMiw4ICsxNDE2LDcgQEAgRE9N
V2luZG93KiBET01XaW5kb3c6OnRvcCgpIGNvbnN0CiAKIERvY3VtZW50KiBET01XaW5kb3c6OmRv
Y3VtZW50KCkgY29uc3QKIHsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0ID0g
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAg
ICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOworICAgIHJldHVybiBkb3duY2Fz
dDxEb2N1bWVudD4oQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSk7CiB9CiAKIFJlZlB0cjxTdHlsZU1lZGlhPiBET01XaW5kb3c6OnN0eWxlTWVkaWEo
KSBjb25zdApAQCAtMTYxOCw4ICsxNjAxLDcgQEAgdm9pZCBET01XaW5kb3c6Om1vdmVCeShmbG9h
dCB4LCBmbG9hdCB5KSBjb25zdAogICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLndp
bmRvd1JlY3QoKTsKICAgICBGbG9hdFJlY3QgdXBkYXRlID0gZnI7CiAgICAgdXBkYXRlLm1vdmUo
eCwgeSk7Ci0gICAgLy8gU2VjdXJpdHkgY2hlY2sgKHRoZSBzcGVjIHRhbGtzIGFib3V0IFVuaXZl
cnNhbEJyb3dzZXJXcml0ZSB0byBkaXNhYmxlIHRoaXMgY2hlY2suLi4pCi0gICAgcGFnZS0+Y2hy
b21lKCkuc2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIHVwZGF0ZSkpOworICAg
IHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdCgqcGFnZSwgdXBk
YXRlKSk7CiB9CiAKIHZvaWQgRE9NV2luZG93Ojptb3ZlVG8oZmxvYXQgeCwgZmxvYXQgeSkgY29u
c3QKQEAgLTE2MzMsOCArMTYxNSw3IEBAIHZvaWQgRE9NV2luZG93Ojptb3ZlVG8oZmxvYXQgeCwg
ZmxvYXQgeSkgY29uc3QKICAgICBmci5zZXRMb2NhdGlvbihzci5sb2NhdGlvbigpKTsKICAgICBG
bG9hdFJlY3QgdXBkYXRlID0gZnI7CiAgICAgdXBkYXRlLm1vdmUoeCwgeSk7Ci0gICAgLy8gU2Vj
dXJpdHkgY2hlY2sgKHRoZSBzcGVjIHRhbGtzIGFib3V0IFVuaXZlcnNhbEJyb3dzZXJXcml0ZSB0
byBkaXNhYmxlIHRoaXMgY2hlY2suLi4pCi0gICAgcGFnZS0+Y2hyb21lKCkuc2V0V2luZG93UmVj
dChhZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIHVwZGF0ZSkpOworICAgIHBhZ2UtPmNocm9tZSgpLnNl
dFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdCgqcGFnZSwgdXBkYXRlKSk7CiB9CiAKIHZvaWQg
RE9NV2luZG93OjpyZXNpemVCeShmbG9hdCB4LCBmbG9hdCB5KSBjb25zdApAQCAtMTY0Niw3ICsx
NjI3LDcgQEAgdm9pZCBET01XaW5kb3c6OnJlc2l6ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0
CiAgICAgRmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hyb21lKCkud2luZG93UmVjdCgpOwogICAgIEZs
b2F0U2l6ZSBkZXN0ID0gZnIuc2l6ZSgpICsgRmxvYXRTaXplKHgsIHkpOwogICAgIEZsb2F0UmVj
dCB1cGRhdGUoZnIubG9jYXRpb24oKSwgZGVzdCk7Ci0gICAgcGFnZS0+Y2hyb21lKCkuc2V0V2lu
ZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIHVwZGF0ZSkpOworICAgIHBhZ2UtPmNocm9t
ZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdCgqcGFnZSwgdXBkYXRlKSk7CiB9CiAK
IHZvaWQgRE9NV2luZG93OjpyZXNpemVUbyhmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSBjb25z
dApAQCAtMTY1OCw3ICsxNjM5LDcgQEAgdm9pZCBET01XaW5kb3c6OnJlc2l6ZVRvKGZsb2F0IHdp
ZHRoLCBmbG9hdCBoZWlnaHQpIGNvbnN0CiAgICAgRmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hyb21l
KCkud2luZG93UmVjdCgpOwogICAgIEZsb2F0U2l6ZSBkZXN0ID0gRmxvYXRTaXplKHdpZHRoLCBo
ZWlnaHQpOwogICAgIEZsb2F0UmVjdCB1cGRhdGUoZnIubG9jYXRpb24oKSwgZGVzdCk7Ci0gICAg
cGFnZS0+Y2hyb21lKCkuc2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIHVwZGF0
ZSkpOworICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdCgq
cGFnZSwgdXBkYXRlKSk7CiB9CiAKIEV4Y2VwdGlvbk9yPGludD4gRE9NV2luZG93OjpzZXRUaW1l
b3V0KHN0ZDo6dW5pcXVlX3B0cjxTY2hlZHVsZWRBY3Rpb24+IGFjdGlvbiwgaW50IHRpbWVvdXQp
CkBAIC0xNjgxLDcgKzE2NjIsNyBAQCB2b2lkIERPTVdpbmRvdzo6Y2xlYXJUaW1lb3V0KGludCB0
aW1lb3V0SWQpCiAKICAgICAgICAgICAgICAgICBpZiAoIVdlYlRocmVhZENvdW50T2ZPYnNlcnZl
ZENvbnRlbnRNb2RpZmllcnMoKSkgewogICAgICAgICAgICAgICAgICAgICBpZiAoUGFnZSogcGFn
ZSA9IG1fZnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2UtPmNocm9t
ZSgpLmNsaWVudCgpLm9ic2VydmVkQ29udGVudENoYW5nZShtX2ZyYW1lKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLm9ic2VydmVkQ29udGVudENoYW5n
ZSgqbV9mcmFtZSk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogICAgICAgICB9
CkBAIC0xODQxLDcgKzE4MjIsNyBAQCB2b2lkIERPTVdpbmRvdzo6aW5jcmVtZW50U2Nyb2xsRXZl
bnRMaXN0ZW5lcnNDb3VudCgpCiAgICAgaWYgKCsrbV9zY3JvbGxFdmVudExpc3RlbmVyQ291bnQg
PT0gMSAmJiBkb2N1bWVudCA9PSAmZG9jdW1lbnQtPnRvcERvY3VtZW50KCkpIHsKICAgICAgICAg
RnJhbWUqIGZyYW1lID0gdGhpcy0+ZnJhbWUoKTsKICAgICAgICAgaWYgKGZyYW1lICYmIGZyYW1l
LT5wYWdlKCkpCi0gICAgICAgICAgICBmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5z
ZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoZnJhbWUsIHRydWUpOworICAgICAgICAgICAgZnJh
bWUtPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25z
KCpmcmFtZSwgdHJ1ZSk7CiAgICAgfQogfQogCkBAIC0xODUxLDcgKzE4MzIsNyBAQCB2b2lkIERP
TVdpbmRvdzo6ZGVjcmVtZW50U2Nyb2xsRXZlbnRMaXN0ZW5lcnNDb3VudCgpCiAgICAgaWYgKCEt
LW1fc2Nyb2xsRXZlbnRMaXN0ZW5lckNvdW50ICYmIGRvY3VtZW50ID09ICZkb2N1bWVudC0+dG9w
RG9jdW1lbnQoKSkgewogICAgICAgICBGcmFtZSogZnJhbWUgPSB0aGlzLT5mcmFtZSgpOwogICAg
ICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSAmJiBkb2N1bWVudC0+cGFnZUNhY2hlU3Rh
dGUoKSA9PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpCi0gICAgICAgICAgICBmcmFtZS0+cGFn
ZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoZnJhbWUs
IGZhbHNlKTsKKyAgICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNl
dE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucygqZnJhbWUsIGZhbHNlKTsKICAgICB9CiB9CiAKQEAg
LTE4NTksNyArMTg0MCw3IEBAIHZvaWQgRE9NV2luZG93OjpkZWNyZW1lbnRTY3JvbGxFdmVudExp
c3RlbmVyc0NvdW50KCkKIAogdm9pZCBET01XaW5kb3c6OnJlc2V0QWxsR2VvbG9jYXRpb25QZXJt
aXNzaW9uKCkKIHsKLSAgICAvLyBGSVhNRTogUmVtb3ZlIFBMQVRGT1JNKElPUyktZ3VhcmQgb25j
ZSB3ZSB1cHN0cmVhbSB0aGUgaU9TIGNoYW5nZXMgdG8gR2VvbG9jYXRpb24uY3BwLgorICAgIC8v
IEZJWE1FOiBDYW4gd2UgcmVtb3ZlIHRoZSBQTEFURk9STShJT1MpLWd1YXJkPwogI2lmIEVOQUJM
RShHRU9MT0NBVElPTikgJiYgUExBVEZPUk0oSU9TKQogICAgIGlmIChtX25hdmlnYXRvcikKICAg
ICAgICAgTmF2aWdhdG9yR2VvbG9jYXRpb246OmZyb20obV9uYXZpZ2F0b3IuZ2V0KCkpLT5yZXNl
dEFsbEdlb2xvY2F0aW9uUGVybWlzc2lvbigpOwpAQCAtMjI4Nyw4ICsyMjY4LDcgQEAgdm9pZCBE
T01XaW5kb3c6OnNob3dNb2RhbERpYWxvZyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3Qg
U3RyaW5nJiBkaWFsb2dGZWEKIHsKICAgICBpZiAoIWlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFt
ZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgRnJhbWUqIGFjdGl2ZUZyYW1lID0gYWN0aXZlV2lu
ZG93LmZyYW1lKCk7Ci0gICAgaWYgKCFhY3RpdmVGcmFtZSkKKyAgICBpZiAoIWFjdGl2ZVdpbmRv
dy5mcmFtZSgpKQogICAgICAgICByZXR1cm47CiAgICAgRnJhbWUqIGZpcnN0RnJhbWUgPSBmaXJz
dFdpbmRvdy5mcmFtZSgpOwogICAgIGlmICghZmlyc3RGcmFtZSkKQEAgLTIzMDMsNyArMjI4Myw3
IEBAIHZvaWQgRE9NV2luZG93OjpzaG93TW9kYWxEaWFsb2coY29uc3QgU3RyaW5nJiB1cmxTdHJp
bmcsIGNvbnN0IFN0cmluZyYgZGlhbG9nRmVhCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBpZiAoIWNhblNob3dNb2RhbERpYWxvZyhtX2ZyYW1lKSB8fCAhZmlyc3RXaW5kb3cuYWxsb3dQ
b3BVcCgpKQorICAgIGlmICghY2FuU2hvd01vZGFsRGlhbG9nKCptX2ZyYW1lKSB8fCAhZmlyc3RX
aW5kb3cuYWxsb3dQb3BVcCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBSZWZQdHI8RnJhbWU+
IGRpYWxvZ0ZyYW1lID0gY3JlYXRlV2luZG93KHVybFN0cmluZywgZW1wdHlBdG9tLCBwYXJzZURp
YWxvZ0ZlYXR1cmVzKGRpYWxvZ0ZlYXR1cmVzU3RyaW5nLCBzY3JlZW5BdmFpbGFibGVSZWN0KG1f
ZnJhbWUtPnZpZXcoKSkpLCBhY3RpdmVXaW5kb3csICpmaXJzdEZyYW1lLCAqbV9mcmFtZSwgV1RG
TW92ZShwcmVwYXJlRGlhbG9nRnVuY3Rpb24pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCmluZGV4
IGM1ZTkwMjg5ODg2ZDcyYWE4ODZjNDlhZGI5NDc5NWQzNzcwNTliMzEuLmUwMDcwMTZlNWQ4Njdh
MjA1NzlmYTQwMTgzMzJiYjVkZjFhZTFlYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDksIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApAQCAtMzMsMjMgKzMzLDE0IEBACiAjaW5jbHVkZSAiRnJhbWVEZXN0cnVjdGlvbk9i
c2VydmVyLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVG9PcHRpb25zLmgiCiAjaW5jbHVkZSAiU3VwcGxl
bWVudGFibGUuaCIKLSNpbmNsdWRlICJVUkwuaCIKLSNpbmNsdWRlIDxmdW5jdGlvbmFsPgotI2lu
Y2x1ZGUgPG1lbW9yeT4KLSNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KIAotbmFtZXNwYWNlIEluc3BlY3RvciB7Ci1jbGFzcyBTY3JpcHRDYWxsU3RhY2s7Ci19
Ci0KIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgRXhlY1N0YXRlOwogY2xhc3MgSlNPYmplY3Q7CiBj
bGFzcyBKU1ZhbHVlOwotdGVtcGxhdGU8dHlwZW5hbWUgVD4gY2xhc3MgU3Ryb25nOwordGVtcGxh
dGU8dHlwZW5hbWU+IGNsYXNzIFN0cm9uZzsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
NjEsMjIgKzUyLDE1IEBAIGNsYXNzIENyeXB0bzsKIGNsYXNzIEN1c3RvbUVsZW1lbnRSZWdpc3Ry
eTsKIGNsYXNzIERPTUFwcGxpY2F0aW9uQ2FjaGU7CiBjbGFzcyBET01TZWxlY3Rpb247Ci1jbGFz
cyBET01VUkw7CiBjbGFzcyBET01XaW5kb3dQcm9wZXJ0eTsKIGNsYXNzIERPTVdyYXBwZXJXb3Js
ZDsKLWNsYXNzIERhdGFiYXNlOwotY2xhc3MgRGF0YWJhc2VDYWxsYmFjazsKIGNsYXNzIERvY3Vt
ZW50OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEV2ZW50TGlzdGVuZXI7CiBjbGFzcyBGbG9hdFJl
Y3Q7Ci1jbGFzcyBGcmFtZTsKIGNsYXNzIEhpc3Rvcnk7Ci1jbGFzcyBJREJGYWN0b3J5OwogY2xh
c3MgTG9jYXRpb247CiBjbGFzcyBNZWRpYVF1ZXJ5TGlzdDsKLWNsYXNzIE1lc3NhZ2VFdmVudDsK
LWNsYXNzIE1lc3NhZ2VQb3J0OwogY2xhc3MgTmF2aWdhdG9yOwogY2xhc3MgTm9kZTsKIGNsYXNz
IE5vZGVMaXN0OwpAQCAtODcsOCArNzEsNiBAQCBjbGFzcyBQb3N0TWVzc2FnZVRpbWVyOwogY2xh
c3MgUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJhY2s7CiBjbGFzcyBTY2hlZHVsZWRBY3Rpb247
CiBjbGFzcyBTY3JlZW47Ci1jbGFzcyBTZWN1cml0eU9yaWdpbjsKLWNsYXNzIFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZTsKIGNsYXNzIFN0b3JhZ2U7CiBjbGFzcyBTdHlsZU1lZGlhOwogY2xhc3MgV2Vi
S2l0TmFtZXNwYWNlOwpAQCAtMTA3LDcgKzg5LDcgQEAgY2xhc3MgRE9NV2luZG93IGZpbmFsCiAg
ICAgLCBwdWJsaWMgQmFzZTY0VXRpbGl0aWVzCiAgICAgLCBwdWJsaWMgU3VwcGxlbWVudGFibGU8
RE9NV2luZG93PiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxET01XaW5kb3c+IGNyZWF0ZShE
b2N1bWVudCogZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NV2luZG93KGRvY3Vt
ZW50KSk7IH0KKyAgICBzdGF0aWMgUmVmPERPTVdpbmRvdz4gY3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01XaW5kb3coZG9jdW1lbnQpKTsgfQogICAg
IFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgfkRPTVdpbmRvdygpOwogCiAgICAgLy8gSW4gc29tZSBy
YXJlIGNhc2VzLCB3ZSdsbCByZXVzZSBhIERPTVdpbmRvdyBmb3IgYSBuZXcgRG9jdW1lbnQuIEZv
ciBleGFtcGxlLApAQCAtMTE3LDE1ICs5OSwxMCBAQCBwdWJsaWM6CiAgICAgLy8gd29uJ3QgYmUg
Ymxvd24gYXdheSB3aGVuIHRoZSBuZXR3b3JrIGxvYWQgY29tbWl0cy4gVG8gbWFrZSB0aGF0IGhh
cHBlbiwgd2UKICAgICAvLyAic2VjdXJlbHkgdHJhbnNpdGlvbiIgdGhlIGV4aXN0aW5nIERPTVdp
bmRvdyB0byB0aGUgRG9jdW1lbnQgdGhhdCByZXN1bHRzIGZyb20KICAgICAvLyB0aGUgbmV0d29y
ayBsb2FkLiBTZWUgYWxzbyBTZWN1cml0eUNvbnRleHQ6OmlzU2VjdXJlVHJhbnNpdGlvblRvLgot
ICAgIHZvaWQgZGlkU2VjdXJlVHJhbnNpdGlvblRvKERvY3VtZW50Kik7Ci0KLSAgICBFdmVudFRh
cmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIERPTVdpbmRvd0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQotICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
OyB9Ci0KLSAgICBET01XaW5kb3cqIHRvRE9NV2luZG93KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWRTZWN1cmVUcmFuc2l0aW9uVG8oRG9jdW1lbnQmKTsKIAotICAgIHZvaWQgcmVnaXN0ZXJQcm9w
ZXJ0eShET01XaW5kb3dQcm9wZXJ0eSopOwotICAgIHZvaWQgdW5yZWdpc3RlclByb3BlcnR5KERP
TVdpbmRvd1Byb3BlcnR5Kik7CisgICAgdm9pZCByZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1By
b3BlcnR5Jik7CisgICAgdm9pZCB1bnJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkm
KTsKIAogICAgIHZvaWQgcmVzZXRVbmxlc3NTdXNwZW5kZWRGb3JEb2N1bWVudFN1c3BlbnNpb24o
KTsKICAgICB2b2lkIHN1c3BlbmRGb3JEb2N1bWVudFN1c3BlbnNpb24oKTsKQEAgLTEzOCwxMSAr
MTE1LDExIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgYm9vbCBkaXNwYXRj
aEFsbFBlbmRpbmdCZWZvcmVVbmxvYWRFdmVudHMoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgdm9pZCBkaXNwYXRjaEFsbFBlbmRpbmdVbmxvYWRFdmVudHMoKTsKIAotICAgIHN0YXRpYyBG
bG9hdFJlY3QgYWRqdXN0V2luZG93UmVjdChQYWdlKiwgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5n
Q2hhbmdlcyk7CisgICAgc3RhdGljIEZsb2F0UmVjdCBhZGp1c3RXaW5kb3dSZWN0KFBhZ2UmLCBj
b25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKTsKIAogICAgIGJvb2wgYWxsb3dQb3BVcCgp
OyAvLyBDYWxsIG9uIGZpcnN0IHdpbmRvdywgbm90IHRhcmdldCB3aW5kb3cuCi0gICAgc3RhdGlj
IGJvb2wgYWxsb3dQb3BVcChGcmFtZSogZmlyc3RGcmFtZSk7Ci0gICAgc3RhdGljIGJvb2wgY2Fu
U2hvd01vZGFsRGlhbG9nKGNvbnN0IEZyYW1lKik7CisgICAgc3RhdGljIGJvb2wgYWxsb3dQb3BV
cChGcmFtZSYgZmlyc3RGcmFtZSk7CisgICAgc3RhdGljIGJvb2wgY2FuU2hvd01vZGFsRGlhbG9n
KGNvbnN0IEZyYW1lJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRDYW5TaG93TW9kYWxE
aWFsb2dPdmVycmlkZShib29sKTsKIAogICAgIFNjcmVlbiogc2NyZWVuKCkgY29uc3Q7CkBAIC0y
NDUsNyArMjIyLDYgQEAgcHVibGljOgogCiAgICAgRXhjZXB0aW9uT3I8dm9pZD4gcG9zdE1lc3Nh
Z2UoSlNDOjpFeGVjU3RhdGUmLCBET01XaW5kb3cmIGNhbGxlcldpbmRvdywgSlNDOjpKU1ZhbHVl
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgdGFyZ2V0T3JpZ2luLCBWZWN0b3I8SlNDOjpTdHJvbmc8
SlNDOjpKU09iamVjdD4+JiYpOwogICAgIHZvaWQgcG9zdE1lc3NhZ2VUaW1lckZpcmVkKFBvc3RN
ZXNzYWdlVGltZXImKTsKLSAgICB2b2lkIGRpc3BhdGNoTWVzc2FnZUV2ZW50V2l0aE9yaWdpbkNo
ZWNrKFNlY3VyaXR5T3JpZ2luKiBpbnRlbmRlZFRhcmdldE9yaWdpbiwgRXZlbnQmLCBQYXNzUmVm
UHRyPEluc3BlY3Rvcjo6U2NyaXB0Q2FsbFN0YWNrPik7CiAKICAgICB2b2lkIGxhbmd1YWdlc0No
YW5nZWQoKTsKIApAQCAtMjcyLDkgKzI0OCw5IEBAIHB1YmxpYzoKIAogICAgIC8vIEV2ZW50cwog
ICAgIC8vIEV2ZW50VGFyZ2V0IEFQSQotICAgIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBB
dG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYsIGNvbnN0IEFkZEV2
ZW50TGlzdGVuZXJPcHRpb25zJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCByZW1vdmVFdmVudExpc3Rl
bmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgY29uc3Qg
TGlzdGVuZXJPcHRpb25zJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZW1vdmVBbGxFdmVudExpc3Rl
bmVycygpIG92ZXJyaWRlOworICAgIGJvb2wgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgUmVmPEV2ZW50TGlzdGVuZXI+JiYsIGNvbnN0IEFkZEV2ZW50TGlz
dGVuZXJPcHRpb25zJikgZmluYWw7CisgICAgYm9vbCByZW1vdmVFdmVudExpc3RlbmVyKGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFdmVudExpc3RlbmVyJiwgY29uc3QgTGlzdGVuZXJP
cHRpb25zJikgZmluYWw7CisgICAgdm9pZCByZW1vdmVBbGxFdmVudExpc3RlbmVycygpIGZpbmFs
OwogCiAgICAgdXNpbmcgRXZlbnRUYXJnZXQ6OmRpc3BhdGNoRXZlbnQ7CiAgICAgYm9vbCBkaXNw
YXRjaEV2ZW50KEV2ZW50JiwgRXZlbnRUYXJnZXQqKTsKQEAgLTI4Niw4ICsyNjIsOCBAQCBwdWJs
aWM6CiAKICAgICB2b2lkIGZpbmlzaGVkTG9hZGluZygpOwogCi0gICAgdXNpbmcgUmVmQ291bnRl
ZDxET01XaW5kb3c+OjpyZWY7Ci0gICAgdXNpbmcgUmVmQ291bnRlZDxET01XaW5kb3c+OjpkZXJl
ZjsKKyAgICB1c2luZyBSZWZDb3VudGVkOjpyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDo6ZGVy
ZWY7CiAKICAgICAvLyBIVE1MIDUga2V5L3ZhbHVlIHN0b3JhZ2UKICAgICBFeGNlcHRpb25PcjxT
dG9yYWdlKj4gc2Vzc2lvblN0b3JhZ2UoKSBjb25zdDsKQEAgLTMxMyw2ICsyODksNyBAQCBwdWJs
aWM6CiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAgICAgUGVyZm9ybWFuY2UqIHBlcmZvcm1hbmNl
KCkgY29uc3Q7CiAjZW5kaWYKKwogICAgIGRvdWJsZSBub3dUaW1lc3RhbXAoKSBjb25zdDsKIAog
I2lmIFBMQVRGT1JNKElPUykKQEAgLTM0NywxNiArMzI0LDIxIEBAIHB1YmxpYzoKICAgICBXZWFr
UHRyPERPTVdpbmRvdz4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOyB9CiAKIHByaXZhdGU6Ci0gICAgZXhwbGljaXQgRE9NV2luZG93KERv
Y3VtZW50Kik7CisgICAgZXhwbGljaXQgRE9NV2luZG93KERvY3VtZW50Jik7CisKKyAgICBFdmVu
dFRhcmdldEludGVyZmFjZSBldmVudFRhcmdldEludGVyZmFjZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIERPTVdpbmRvd0V2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsgfQorICAgIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9
CisKKyAgICBET01XaW5kb3cqIHRvRE9NV2luZG93KCkgZmluYWw7CiAKICAgICBQYWdlKiBwYWdl
KCk7CiAgICAgYm9vbCBhbGxvd2VkVG9DaGFuZ2VXaW5kb3dHZW9tZXRyeSgpIGNvbnN0OwogCi0g
ICAgdm9pZCBmcmFtZURlc3Ryb3llZCgpIG92ZXJyaWRlOwotICAgIHZvaWQgd2lsbERldGFjaFBh
Z2UoKSBvdmVycmlkZTsKKyAgICB2b2lkIGZyYW1lRGVzdHJveWVkKCkgZmluYWw7CisgICAgdm9p
ZCB3aWxsRGV0YWNoUGFnZSgpIGZpbmFsOwogCi0gICAgdm9pZCByZWZFdmVudFRhcmdldCgpIG92
ZXJyaWRlIHsgcmVmKCk7IH0KLSAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7
IGRlcmVmKCk7IH0KKyAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgZmluYWwgeyByZWYoKTsgfQor
ICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgZGVyZWYoKTsgfQogCiAgICAgc3Rh
dGljIFJlZlB0cjxGcmFtZT4gY3JlYXRlV2luZG93KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBj
b25zdCBBdG9taWNTdHJpbmcmIGZyYW1lTmFtZSwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBET01X
aW5kb3cmIGFjdGl2ZVdpbmRvdywgRnJhbWUmIGZpcnN0RnJhbWUsIEZyYW1lJiBvcGVuZXJGcmFt
ZSwgc3RkOjpmdW5jdGlvbjx2b2lkKERPTVdpbmRvdyYpPiBwcmVwYXJlRGlhbG9nRnVuY3Rpb24g
PSBudWxscHRyKTsKICAgICBib29sIGlzSW5zZWN1cmVTY3JpcHRBY2Nlc3MoRE9NV2luZG93JiBh
Y3RpdmVXaW5kb3csIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3dQcm9wZXJ0eS5jcHAKaW5kZXggYTM3NzBlOGU3MDBjNjU4MjYyNmM2NGI5ODVm
ZGVjNmZjMDdmMzNmNS4uNTUwOTZiNjRhYWE3ZjI0OTMxYTJjNzE5YTdlNWM2MDllZDUwZjg1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQcm9wZXJ0eS5jcHAKQEAgLTQyLDE0ICs0
MiwxNCBAQCBET01XaW5kb3dQcm9wZXJ0eTo6RE9NV2luZG93UHJvcGVydHkoRnJhbWUqIGZyYW1l
KQogICAgIC8vIFdlIHNob3VsZCBmaXggdGhhdC4gIDxyZGFyOi8vcHJvYmxlbS8xMTU2NzEzMj4K
ICAgICBpZiAobV9mcmFtZSkgewogICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3cgPSBtX2Zy
YW1lLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKTsKLSAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2lu
ZG93LT5yZWdpc3RlclByb3BlcnR5KHRoaXMpOworICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5k
b3ctPnJlZ2lzdGVyUHJvcGVydHkoKnRoaXMpOwogICAgIH0KIH0KIAogRE9NV2luZG93UHJvcGVy
dHk6On5ET01XaW5kb3dQcm9wZXJ0eSgpCiB7CiAgICAgaWYgKG1fYXNzb2NpYXRlZERPTVdpbmRv
dykKLSAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93LT51bnJlZ2lzdGVyUHJvcGVydHkodGhp
cyk7CisgICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+dW5yZWdpc3RlclByb3BlcnR5KCp0
aGlzKTsKIAogICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdyA9IG51bGxwdHI7CiAgICAgbV9mcmFt
ZSA9IG51bGxwdHI7CkBAIC04Niw3ICs4Niw3IEBAIHZvaWQgRE9NV2luZG93UHJvcGVydHk6Ondp
bGxEZXN0cm95R2xvYmFsT2JqZWN0SW5DYWNoZWRGcmFtZSgpCiAgICAgLy8gRE9NV2luZG93UHJv
cGVydHkgbGlmZXRpbWUgaXNuJ3QgdGllZCBkaXJlY3RseSB0byB0aGUgRE9NV2luZG93IGl0c2Vs
ZiBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCBpdCB1bnJlZ2lzdGVyCiAgICAgLy8gaXRzZWxmIGZy
b20gYW55IERPTVdpbmRvdyBpdCBpcyBhc3NvY2lhdGVkIHdpdGggaWYgdGhhdCBET01XaW5kb3cg
aXMgZ29pbmcgYXdheS4KICAgICBpZiAobV9hc3NvY2lhdGVkRE9NV2luZG93KQotICAgICAgICBt
X2Fzc29jaWF0ZWRET01XaW5kb3ctPnVucmVnaXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAgICAgICAg
bV9hc3NvY2lhdGVkRE9NV2luZG93LT51bnJlZ2lzdGVyUHJvcGVydHkoKnRoaXMpOwogICAgIG1f
YXNzb2NpYXRlZERPTVdpbmRvdyA9IG51bGxwdHI7CiAgICAgbV9mcmFtZSA9IG51bGxwdHI7CiB9
CkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBET01XaW5kb3dQcm9wZXJ0eTo6d2lsbERlc3Ryb3lH
bG9iYWxPYmplY3RJbkZyYW1lKCkKICAgICAvLyBET01XaW5kb3dQcm9wZXJ0eSBsaWZldGltZSBp
c24ndCB0aWVkIGRpcmVjdGx5IHRvIHRoZSBET01XaW5kb3cgaXRzZWxmIHNvIGl0IGlzIGltcG9y
dGFudCB0aGF0IGl0IHVucmVnaXN0ZXIKICAgICAvLyBpdHNlbGYgZnJvbSBhbnkgRE9NV2luZG93
IGl0IGlzIGFzc29jaWF0ZWQgd2l0aCBpZiB0aGF0IERPTVdpbmRvdyBpcyBnb2luZyBhd2F5Lgog
ICAgIGlmIChtX2Fzc29jaWF0ZWRET01XaW5kb3cpCi0gICAgICAgIG1fYXNzb2NpYXRlZERPTVdp
bmRvdy0+dW5yZWdpc3RlclByb3BlcnR5KHRoaXMpOworICAgICAgICBtX2Fzc29jaWF0ZWRET01X
aW5kb3ctPnVucmVnaXN0ZXJQcm9wZXJ0eSgqdGhpcyk7CiAgICAgbV9hc3NvY2lhdGVkRE9NV2lu
ZG93ID0gbnVsbHB0cjsKICAgICBtX2ZyYW1lID0gbnVsbHB0cjsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHAKaW5kZXggY2FhMDdhNDdiZWU4ZjE5Y2VlMzQ0ZWZh
NTc2ZjUwZWQ0NTE0NzNlYS4uYWYwODAyYmM4YmU4MDM4MWQxMzMwNTNmNzc4ZmMzYTc2MzY0M2U0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHAKQEAgLTQ0LDcg
KzQ0LDcgQEAgRGVidWdQYWdlT3ZlcmxheXMqIERlYnVnUGFnZU92ZXJsYXlzOjpzaGFyZWREZWJ1
Z092ZXJsYXlzOwogCiBjbGFzcyBSZWdpb25PdmVybGF5IDogcHVibGljIFJlZkNvdW50ZWQ8UmVn
aW9uT3ZlcmxheT4sIHB1YmxpYyBQYWdlT3ZlcmxheTo6Q2xpZW50IHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUGFzc1JlZlB0cjxSZWdpb25PdmVybGF5PiBjcmVhdGUoTWFpbkZyYW1lJiwgRGVidWdQ
YWdlT3ZlcmxheXM6OlJlZ2lvblR5cGUpOworICAgIHN0YXRpYyBSZWZQdHI8UmVnaW9uT3Zlcmxh
eT4gY3JlYXRlKE1haW5GcmFtZSYsIERlYnVnUGFnZU92ZXJsYXlzOjpSZWdpb25UeXBlKTsKICAg
ICB2aXJ0dWFsIH5SZWdpb25PdmVybGF5KCk7CiAKICAgICB2b2lkIHJlY29tcHV0ZVJlZ2lvbigp
OwpAQCAtMTQzLDcgKzE0Myw3IEBAIGJvb2wgTm9uRmFzdFNjcm9sbGFibGVSZWdpb25PdmVybGF5
Ojp1cGRhdGVSZWdpb24oKQogICAgIHJldHVybiByZWdpb25DaGFuZ2VkOwogfQogCi1QYXNzUmVm
UHRyPFJlZ2lvbk92ZXJsYXk+IFJlZ2lvbk92ZXJsYXk6OmNyZWF0ZShNYWluRnJhbWUmIGZyYW1l
LCBEZWJ1Z1BhZ2VPdmVybGF5czo6UmVnaW9uVHlwZSByZWdpb25UeXBlKQorUmVmUHRyPFJlZ2lv
bk92ZXJsYXk+IFJlZ2lvbk92ZXJsYXk6OmNyZWF0ZShNYWluRnJhbWUmIGZyYW1lLCBEZWJ1Z1Bh
Z2VPdmVybGF5czo6UmVnaW9uVHlwZSByZWdpb25UeXBlKQogewogICAgIHN3aXRjaCAocmVnaW9u
VHlwZSkgewogICAgIGNhc2UgRGVidWdQYWdlT3ZlcmxheXM6OlJlZ2lvblR5cGU6OldoZWVsRXZl
bnRIYW5kbGVyczoKQEAgLTE2NSw3ICsxNjUsNyBAQCBSZWdpb25PdmVybGF5OjpSZWdpb25PdmVy
bGF5KE1haW5GcmFtZSYgZnJhbWUsIENvbG9yIHJlZ2lvbkNvbG9yKQogUmVnaW9uT3ZlcmxheTo6
flJlZ2lvbk92ZXJsYXkoKQogewogICAgIGlmIChtX292ZXJsYXkpCi0gICAgICAgIG1fZnJhbWUu
cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkobV9vdmVybGF5Lmdl
dCgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgICAgIG1fZnJhbWUu
cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fb3ZlcmxheSwg
UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogfQogCiB2b2lkIFJlZ2lvbk92ZXJs
YXk6OndpbGxNb3ZlVG9QYWdlKFBhZ2VPdmVybGF5JiwgUGFnZSogcGFnZSkKQEAgLTI0OCw3ICsy
NDgsNyBAQCBSZWdpb25PdmVybGF5JiBEZWJ1Z1BhZ2VPdmVybGF5czo6ZW5zdXJlUmVnaW9uT3Zl
cmxheUZvckZyYW1lKE1haW5GcmFtZSYgZnJhbWUsCiB2b2lkIERlYnVnUGFnZU92ZXJsYXlzOjpz
aG93UmVnaW9uT3ZlcmxheShNYWluRnJhbWUmIGZyYW1lLCBSZWdpb25UeXBlIHJlZ2lvblR5cGUp
CiB7CiAgICAgUmVnaW9uT3ZlcmxheSYgdmlzdWFsaXplciA9IGVuc3VyZVJlZ2lvbk92ZXJsYXlG
b3JGcmFtZShmcmFtZSwgcmVnaW9uVHlwZSk7Ci0gICAgZnJhbWUucGFnZU92ZXJsYXlDb250cm9s
bGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KCZ2aXN1YWxpemVyLm92ZXJsYXkoKSwgUGFnZU92ZXJs
YXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgIGZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxl
cigpLmluc3RhbGxQYWdlT3ZlcmxheSh2aXN1YWxpemVyLm92ZXJsYXkoKSwgUGFnZU92ZXJsYXk6
OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogfQogCiB2b2lkIERlYnVnUGFnZU92ZXJsYXlzOjpoaWRl
UmVnaW9uT3ZlcmxheShNYWluRnJhbWUmIGZyYW1lLCBSZWdpb25UeXBlIHJlZ2lvblR5cGUpCkBA
IC0yNTcsNyArMjU3LDcgQEAgdm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6aGlkZVJlZ2lvbk92ZXJs
YXkoTWFpbkZyYW1lJiBmcmFtZSwgUmVnaW9uVHlwZSByZWdpb25UeXAKICAgICBpZiAoaXQgIT0g
bV9mcmFtZVJlZ2lvbk92ZXJsYXlzLmVuZCgpKSB7CiAgICAgICAgIGF1dG8mIHZpc3VhbGl6ZXJz
ID0gaXQtPnZhbHVlOwogICAgICAgICBpZiAoUmVnaW9uT3ZlcmxheSogdmlzdWFsaXplciA9IHZp
c3VhbGl6ZXJzW2luZGV4T2YocmVnaW9uVHlwZSldLmdldCgpKSB7Ci0gICAgICAgICAgICBmcmFt
ZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgmdmlzdWFsaXpl
ci0+b3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgICAg
ICAgICBmcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSh2
aXN1YWxpemVyLT5vdmVybGF5KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsK
ICAgICAgICAgICAgIHZpc3VhbGl6ZXJzW2luZGV4T2YocmVnaW9uVHlwZSldID0gbnVsbHB0cjsK
ICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5k
ZXggZjIzMThhMDNjMTRiZDFkZjgyMzIwY2MwN2M3ODk5YjI5NDI3YzY0Ni4uZGY2Y2ZlMDRjMjdh
M2Y5ODQwMjIxOWE2NmM4ODJiM2Q0M2I2ZmU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAKQEAgLTE5Nyw3ICsxOTcsNyBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpkcmFn
RXhpdGVkKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKICNlbmRpZgogICAgICAgICBSZWZQdHI8
RGF0YVRyYW5zZmVyPiBkYXRhVHJhbnNmZXIgPSBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKHBvbGljeSwgZHJhZ0RhdGEpOwogICAgICAgICBkYXRhVHJhbnNmZXItPnNldFNvdXJj
ZU9wZXJhdGlvbihkcmFnRGF0YS5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2soKSk7Ci0gICAg
ICAgIG1fcGFnZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5jYW5jZWxEcmFnQW5kRHJvcChj
cmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKSwgZGF0YVRyYW5zZmVyLmdldCgpKTsKKyAgICAgICAg
bV9wYWdlLm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmNhbmNlbERyYWdBbmREcm9wKGNyZWF0
ZU1vdXNlRXZlbnQoZHJhZ0RhdGEpLCAqZGF0YVRyYW5zZmVyKTsKICAgICAgICAgZGF0YVRyYW5z
ZmVyLT5zZXRBY2Nlc3NQb2xpY3koRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1iKTsgLy8g
SW52YWxpZGF0ZSBkYXRhVHJhbnNmZXIgaGVyZSBmb3Igc2VjdXJpdHkuCiAgICAgfQogICAgIG1v
dXNlTW92ZWRJbnRvRG9jdW1lbnQobnVsbHB0cik7CkBAIC0yMjcsNyArMjI3LDcgQEAgYm9vbCBE
cmFnQ29udHJvbGxlcjo6cGVyZm9ybURyYWdPcGVyYXRpb24oY29uc3QgRHJhZ0RhdGEmIGRyYWdE
YXRhKQogICAgICAgICAgICAgLy8gU2VuZGluZyBhbiBldmVudCBjYW4gcmVzdWx0IGluIHRoZSBk
ZXN0cnVjdGlvbiBvZiB0aGUgdmlldyBhbmQgcGFydC4KICAgICAgICAgICAgIFJlZlB0cjxEYXRh
VHJhbnNmZXI+IGRhdGFUcmFuc2ZlciA9IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERy
b3AoRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpSZWFkYWJsZSwgZHJhZ0RhdGEpOwogICAgICAg
ICAgICAgZGF0YVRyYW5zZmVyLT5zZXRTb3VyY2VPcGVyYXRpb24oZHJhZ0RhdGEuZHJhZ2dpbmdT
b3VyY2VPcGVyYXRpb25NYXNrKCkpOwotICAgICAgICAgICAgcHJldmVudGVkRGVmYXVsdCA9IG1h
aW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCkucGVyZm9ybURyYWdBbmREcm9wKGNyZWF0ZU1vdXNlRXZl
bnQoZHJhZ0RhdGEpLCBkYXRhVHJhbnNmZXIuZ2V0KCkpOworICAgICAgICAgICAgcHJldmVudGVk
RGVmYXVsdCA9IG1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCkucGVyZm9ybURyYWdBbmREcm9wKGNy
ZWF0ZU1vdXNlRXZlbnQoZHJhZ0RhdGEpLCAqZGF0YVRyYW5zZmVyKTsKICAgICAgICAgICAgIGRh
dGFUcmFuc2Zlci0+c2V0QWNjZXNzUG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVt
Yik7IC8vIEludmFsaWRhdGUgZGF0YVRyYW5zZmVyIGhlcmUgZm9yIHNlY3VyaXR5LgogICAgICAg
ICB9CiAgICAgICAgIGlmIChwcmV2ZW50ZWREZWZhdWx0KSB7CkBAIC01NDcsNyArNTQ3LDcgQEAg
Ym9vbCBEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyhjb25zdCBEcmFnRGF0YSYgZHJh
Z0RhdGEpCiAKICAgICBpZiAocm9vdEVkaXRhYmxlRWxlbWVudCkgewogICAgICAgICBpZiAoRnJh
bWUqIGZyYW1lID0gcm9vdEVkaXRhYmxlRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpKQotICAg
ICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLnVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERy
YWdJZk5lZWRlZChyb290RWRpdGFibGVFbGVtZW50LmdldCgpKTsKKyAgICAgICAgICAgIGZyYW1l
LT5ldmVudEhhbmRsZXIoKS51cGRhdGVEcmFnU3RhdGVBZnRlckVkaXREcmFnSWZOZWVkZWQoKnJv
b3RFZGl0YWJsZUVsZW1lbnQpOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpAQCAtNjIxLDcg
KzYyMSw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnRyeURIVE1MRHJhZyhjb25zdCBEcmFnRGF0
YSYgZHJhZ0RhdGEsIERyYWdPcGVyYXRpb24mIG9wZXJhCiAgICAgZGF0YVRyYW5zZmVyLT5zZXRT
b3VyY2VPcGVyYXRpb24oc3JjT3BNYXNrKTsKIAogICAgIFBsYXRmb3JtTW91c2VFdmVudCBldmVu
dCA9IGNyZWF0ZU1vdXNlRXZlbnQoZHJhZ0RhdGEpOwotICAgIGlmICghbWFpbkZyYW1lLT5ldmVu
dEhhbmRsZXIoKS51cGRhdGVEcmFnQW5kRHJvcChldmVudCwgZGF0YVRyYW5zZmVyLmdldCgpKSkg
eworICAgIGlmICghbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS51cGRhdGVEcmFnQW5kRHJvcChl
dmVudCwgKmRhdGFUcmFuc2ZlcikpIHsKICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRBY2Nlc3NQ
b2xpY3koRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1iKTsgLy8gSW52YWxpZGF0ZSBkYXRh
VHJhbnNmZXIgaGVyZSBmb3Igc2VjdXJpdHkuCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggOTIzZTQxNjlmNzhkMGFmZjBh
Y2IzM2RjNjkxYjhhOWE1ODBkMzBlZC4uNWE1YTM1ZTY4YTdjODk4OGI2ZTEzMDRlNDg5YTIxMmFi
ZDljNzNjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAo
YXBAd2Via2l0Lm9yZykKICAqIENvcHlyaWdodCAoQykgMjAxMiBEaWdpYSBQbGMuIGFuZC9vciBp
dHMgc3Vic2lkaWFyeSgtaWVzKQogICoKQEAgLTI4LDE2ICsyOCwxMiBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgogCi0jaW5jbHVkZSAiQVhPYmplY3RD
YWNoZS5oIgogI2luY2x1ZGUgIkF1dG9zY3JvbGxDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQmFj
a0ZvcndhcmRDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiQ2FjaGVkSW1hZ2UuaCIKICNpbmNsdWRl
ICJDaHJvbWUuaCIKICNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKLSNpbmNsdWRlICJDdXJzb3Iu
aCIKICNpbmNsdWRlICJDdXJzb3JMaXN0LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNs
dWRlICJEb2N1bWVudEV2ZW50UXVldWUuaCIKICNpbmNsdWRlICJEcmFnQ29udHJvbGxlci5oIgog
I2luY2x1ZGUgIkRyYWdTdGF0ZS5oIgogI2luY2x1ZGUgIkVkaXRvci5oIgpAQCAtOTQsMTMgKzkw
LDEzIEBACiAjaW5jbHVkZSAiVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuaCIKICNpbmNsdWRl
ICJWaXNpYmxlVW5pdHMuaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiV2hl
ZWxFdmVudERlbHRhRmlsdGVyLmgiCiAjaW5jbHVkZSAiV2luZG93c0tleWJvYXJkQ29kZXMuaCIK
ICNpbmNsdWRlICJodG1sZWRpdGluZy5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAj
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVk
Lmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICNpbmNsdWRlICJQbGF0Zm9ybVRv
dWNoRXZlbnRJT1MuaCIKQEAgLTE3NiwyMSArMTcyLDYgQEAgY29uc3QgaW50IG1heGltdW1DdXJz
b3JTaXplID0gMTI4OwogY29uc3QgZG91YmxlIG1pbmltdW1DdXJzb3JTY2FsZSA9IDAuMDAxOwog
I2VuZGlmCiAKLWVudW0gTm9DdXJzb3JDaGFuZ2VUeXBlIHsgTm9DdXJzb3JDaGFuZ2UgfTsKLQot
Y2xhc3MgT3B0aW9uYWxDdXJzb3IgewotcHVibGljOgotICAgIE9wdGlvbmFsQ3Vyc29yKE5vQ3Vy
c29yQ2hhbmdlVHlwZSkgOiBtX2lzQ3Vyc29yQ2hhbmdlKGZhbHNlKSB7IH0KLSAgICBPcHRpb25h
bEN1cnNvcihjb25zdCBDdXJzb3ImIGN1cnNvcikgOiBtX2lzQ3Vyc29yQ2hhbmdlKHRydWUpLCBt
X2N1cnNvcihjdXJzb3IpIHsgfQotCi0gICAgYm9vbCBpc0N1cnNvckNoYW5nZSgpIGNvbnN0IHsg
cmV0dXJuIG1faXNDdXJzb3JDaGFuZ2U7IH0KLSAgICBjb25zdCBDdXJzb3ImIGN1cnNvcigpIGNv
bnN0IHsgQVNTRVJUKG1faXNDdXJzb3JDaGFuZ2UpOyByZXR1cm4gbV9jdXJzb3I7IH0KLQotcHJp
dmF0ZToKLSAgICBib29sIG1faXNDdXJzb3JDaGFuZ2U7Ci0gICAgQ3Vyc29yIG1fY3Vyc29yOwot
fTsKLQogY2xhc3MgTWF4aW11bUR1cmF0aW9uVHJhY2tlciB7CiBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgTWF4aW11bUR1cmF0aW9uVHJhY2tlcihkb3VibGUgKm1heER1cmF0aW9uKQpAQCAtNDA1LDEy
ICszODYsMTQgQEAgRXZlbnRIYW5kbGVyOjp+RXZlbnRIYW5kbGVyKCkKIH0KICAgICAKICNpZiBF
TkFCTEUoRFJBR19TVVBQT1JUKQorCiBEcmFnU3RhdGUmIEV2ZW50SGFuZGxlcjo6ZHJhZ1N0YXRl
KCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8RHJhZ1N0YXRlPiBzdGF0ZTsKICAgICBy
ZXR1cm4gc3RhdGU7CiB9Ci0jZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKKworI2VuZGlm
CiAgICAgCiB2b2lkIEV2ZW50SGFuZGxlcjo6Y2xlYXIoKQogewpAQCAtODAwLDE0ICs3ODMsMTUg
QEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudChjb25zdCBNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBldmUKIAogICAgIG1fbW91c2VQcmVzc05vZGUgPSBldmVu
dC50YXJnZXROb2RlKCk7CiAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5zZXRGb2N1c05hdmlnYXRp
b25TdGFydGluZ05vZGUoZXZlbnQudGFyZ2V0Tm9kZSgpKTsKKwogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCi0gICAgbV9kcmFnU3RhcnRQb3MgPSBldmVudC5ldmVudCgpLnBvc2l0aW9uKCk7Cisg
ICAgbV9kcmFnU3RhcnRQb3NpdGlvbiA9IGV2ZW50LmV2ZW50KCkucG9zaXRpb24oKTsKICNlbmRp
ZgogCi0gICAgYm9vbCBzd2FsbG93RXZlbnQgPSBmYWxzZTsKICAgICBtX21vdXNlUHJlc3NlZCA9
IHRydWU7CiAgICAgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgPSBIYXZlTm90U3RhcnRlZFNl
bGVjdGlvbjsKIAorICAgIGJvb2wgc3dhbGxvd0V2ZW50ID0gZmFsc2U7CiAgICAgaWYgKGV2ZW50
LmV2ZW50KCkuY2xpY2tDb3VudCgpID09IDIpCiAgICAgICAgIHN3YWxsb3dFdmVudCA9IGhhbmRs
ZU1vdXNlUHJlc3NFdmVudERvdWJsZUNsaWNrKGV2ZW50KTsKICAgICBlbHNlIGlmIChldmVudC5l
dmVudCgpLmNsaWNrQ291bnQoKSA+PSAzKQpAQCAtOTc3LDExICs5NjEsMTEgQEAgdm9pZCBFdmVu
dEhhbmRsZXI6OnVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRHJhZyhjb25zdCBIaXRUZXN0UmVzdWx0
JiBoaXRUZXN0UmVzdWwKICAgICAgICAgbmV3U2VsZWN0aW9uLnNldEV4dGVudChwb3NpdGlvbkFm
dGVyTm9kZShyb290VXNlclNlbGVjdEFsbEZvck1vdXNlUHJlc3NOb2RlKS5kb3duc3RyZWFtKENh
bkNyb3NzRWRpdGluZ0JvdW5kYXJ5KSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gUmVzZXQg
YmFzZSBmb3IgdXNlciBzZWxlY3QgYWxsIHdoZW4gYmFzZSBpcyBpbnNpZGUgdXNlci1zZWxlY3Qt
YWxsIGFyZWEgYW5kIGV4dGVudCA8IGJhc2UuCi0gICAgICAgIGlmIChyb290VXNlclNlbGVjdEFs
bEZvck1vdXNlUHJlc3NOb2RlICYmIGNvbXBhcmVQb3NpdGlvbnModGFyZ2V0LT5yZW5kZXJlcigp
LT5wb3NpdGlvbkZvclBvaW50KGhpdFRlc3RSZXN1bHQubG9jYWxQb2ludCgpLCBudWxscHRyKSwg
bV9tb3VzZVByZXNzTm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChtX2RyYWdTdGFy
dFBvcywgbnVsbHB0cikpIDwgMCkKKyAgICAgICAgaWYgKHJvb3RVc2VyU2VsZWN0QWxsRm9yTW91
c2VQcmVzc05vZGUgJiYgY29tcGFyZVBvc2l0aW9ucyh0YXJnZXQtPnJlbmRlcmVyKCktPnBvc2l0
aW9uRm9yUG9pbnQoaGl0VGVzdFJlc3VsdC5sb2NhbFBvaW50KCksIG51bGxwdHIpLCBtX21vdXNl
UHJlc3NOb2RlLT5yZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50KG1fZHJhZ1N0YXJ0UG9zaXRp
b24sIG51bGxwdHIpKSA8IDApCiAgICAgICAgICAgICBuZXdTZWxlY3Rpb24uc2V0QmFzZShwb3Np
dGlvbkFmdGVyTm9kZShyb290VXNlclNlbGVjdEFsbEZvck1vdXNlUHJlc3NOb2RlKS5kb3duc3Ry
ZWFtKENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KSk7CiAgICAgICAgIAogICAgICAgICBOb2RlKiBy
b290VXNlclNlbGVjdEFsbEZvclRhcmdldCA9IFBvc2l0aW9uOjpyb290VXNlclNlbGVjdEFsbEZv
ck5vZGUodGFyZ2V0KTsKLSAgICAgICAgaWYgKHJvb3RVc2VyU2VsZWN0QWxsRm9yVGFyZ2V0ICYm
IG1fbW91c2VQcmVzc05vZGUtPnJlbmRlcmVyKCkgJiYgY29tcGFyZVBvc2l0aW9ucyh0YXJnZXQt
PnJlbmRlcmVyKCktPnBvc2l0aW9uRm9yUG9pbnQoaGl0VGVzdFJlc3VsdC5sb2NhbFBvaW50KCks
IG51bGxwdHIpLCBtX21vdXNlUHJlc3NOb2RlLT5yZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50
KG1fZHJhZ1N0YXJ0UG9zLCBudWxscHRyKSkgPCAwKQorICAgICAgICBpZiAocm9vdFVzZXJTZWxl
Y3RBbGxGb3JUYXJnZXQgJiYgbV9tb3VzZVByZXNzTm9kZS0+cmVuZGVyZXIoKSAmJiBjb21wYXJl
UG9zaXRpb25zKHRhcmdldC0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChoaXRUZXN0UmVz
dWx0LmxvY2FsUG9pbnQoKSwgbnVsbHB0ciksIG1fbW91c2VQcmVzc05vZGUtPnJlbmRlcmVyKCkt
PnBvc2l0aW9uRm9yUG9pbnQobV9kcmFnU3RhcnRQb3NpdGlvbiwgbnVsbHB0cikpIDwgMCkKICAg
ICAgICAgICAgIG5ld1NlbGVjdGlvbi5zZXRFeHRlbnQocG9zaXRpb25CZWZvcmVOb2RlKHJvb3RV
c2VyU2VsZWN0QWxsRm9yVGFyZ2V0KS51cHN0cmVhbShDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkp
OwogICAgICAgICBlbHNlIGlmIChyb290VXNlclNlbGVjdEFsbEZvclRhcmdldCAmJiBtX21vdXNl
UHJlc3NOb2RlLT5yZW5kZXJlcigpKQogICAgICAgICAgICAgbmV3U2VsZWN0aW9uLnNldEV4dGVu
dChwb3NpdGlvbkFmdGVyTm9kZShyb290VXNlclNlbGVjdEFsbEZvclRhcmdldCkuZG93bnN0cmVh
bShDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkpOwpAQCAtMTA0Nyw3ICsxMDMxLDcgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRo
SGl0VGVzdFJlc3VsdHMmIGUKICAgICAvLyBlZGl0aW5nLCBwbGFjZSB0aGUgY2FyZXQuCiAgICAg
aWYgKG1fbW91c2VEb3duV2FzU2luZ2xlQ2xpY2tJblNlbGVjdGlvbiAmJiBtX3NlbGVjdGlvbklu
aXRpYXRpb25TdGF0ZSAhPSBFeHRlbmRlZFNlbGVjdGlvbgogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCi0gICAgICAgICAgICAmJiBtX2RyYWdTdGFydFBvcyA9PSBldmVudC5ldmVudCgpLnBvc2l0
aW9uKCkKKyAgICAgICAgICAgICYmIG1fZHJhZ1N0YXJ0UG9zaXRpb24gPT0gZXZlbnQuZXZlbnQo
KS5wb3NpdGlvbigpCiAjZW5kaWYKICAgICAgICAgICAgICYmIG1fZnJhbWUuc2VsZWN0aW9uKCku
aXNSYW5nZSgpCiAgICAgICAgICAgICAmJiBldmVudC5ldmVudCgpLmJ1dHRvbigpICE9IFJpZ2h0
QnV0dG9uKSB7CkBAIC0xMDg0LDEyICsxMDY4LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkaWRQ
YW5TY3JvbGxTdG9wKCkKICAgICBtX2F1dG9zY3JvbGxDb250cm9sbGVyLT5kaWRQYW5TY3JvbGxT
dG9wKCk7CiB9CiAKLXZvaWQgRXZlbnRIYW5kbGVyOjpzdGFydFBhblNjcm9sbGluZyhSZW5kZXJF
bGVtZW50KiByZW5kZXJlcikKK3ZvaWQgRXZlbnRIYW5kbGVyOjpzdGFydFBhblNjcm9sbGluZyhS
ZW5kZXJFbGVtZW50JiByZW5kZXJlcikKIHsKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIGlmICgh
aXM8UmVuZGVyQm94PigqcmVuZGVyZXIpKQorICAgIGlmICghaXM8UmVuZGVyQm94PihyZW5kZXJl
cikpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2F1dG9zY3JvbGxDb250cm9sbGVyLT5zdGFydFBh
blNjcm9sbGluZyhkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKSwgbGFzdEtub3duTW91c2VQ
b3NpdGlvbigpKTsKKyAgICBtX2F1dG9zY3JvbGxDb250cm9sbGVyLT5zdGFydFBhblNjcm9sbGlu
ZygmZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlciksIGxhc3RLbm93bk1vdXNlUG9zaXRpb24o
KSk7CiAgICAgaW52YWxpZGF0ZUNsaWNrKCk7CiAjZW5kaWYKIH0KQEAgLTEzNzQsMjQgKzEzNTgs
MjggQEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZUN1cnNvcigpCiAgICAgSGl0VGVzdFJlc3Vs
dCByZXN1bHQodmlldy0+d2luZG93VG9Db250ZW50cyhtX2xhc3RLbm93bk1vdXNlUG9zaXRpb24p
KTsKICAgICByZW5kZXJWaWV3LT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CiAKLSAgICBPcHRp
b25hbEN1cnNvciBvcHRpb25hbEN1cnNvciA9IHNlbGVjdEN1cnNvcihyZXN1bHQsIHNoaWZ0S2V5
KTsKLSAgICBpZiAob3B0aW9uYWxDdXJzb3IuaXNDdXJzb3JDaGFuZ2UoKSkgewotICAgICAgICBt
X2N1cnJlbnRNb3VzZUN1cnNvciA9IG9wdGlvbmFsQ3Vyc29yLmN1cnNvcigpOwotICAgICAgICB2
aWV3LT5zZXRDdXJzb3IobV9jdXJyZW50TW91c2VDdXJzb3IpOworICAgIHVwZGF0ZUN1cnNvcigq
dmlldywgcmVzdWx0LCBzaGlmdEtleSk7Cit9CisKK3ZvaWQgRXZlbnRIYW5kbGVyOjp1cGRhdGVD
dXJzb3IoRnJhbWVWaWV3JiB2aWV3LCBjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGJvb2wg
c2hpZnRLZXkpCit7CisgICAgaWYgKGF1dG8gb3B0aW9uYWxDdXJzb3IgPSBzZWxlY3RDdXJzb3Io
cmVzdWx0LCBzaGlmdEtleSkpIHsKKyAgICAgICAgbV9jdXJyZW50TW91c2VDdXJzb3IgPSBXVEZN
b3ZlKG9wdGlvbmFsQ3Vyc29yLnZhbHVlKCkpOworICAgICAgICB2aWV3LnNldEN1cnNvcihtX2N1
cnJlbnRNb3VzZUN1cnNvcik7CiAgICAgfQogfQogCi1PcHRpb25hbEN1cnNvciBFdmVudEhhbmRs
ZXI6OnNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGJvb2wgc2hpZnRL
ZXkpCitzdGQ6Om9wdGlvbmFsPEN1cnNvcj4gRXZlbnRIYW5kbGVyOjpzZWxlY3RDdXJzb3IoY29u
c3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBib29sIHNoaWZ0S2V5KQogewogICAgIGlmIChtX3Jl
c2l6ZUxheWVyICYmIG1fcmVzaXplTGF5ZXItPmluUmVzaXplTW9kZSgpKQotICAgICAgICByZXR1
cm4gTm9DdXJzb3JDaGFuZ2U7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAgICBp
ZiAoIW1fZnJhbWUucGFnZSgpKQotICAgICAgICByZXR1cm4gTm9DdXJzb3JDaGFuZ2U7CisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICNpZiBFTkFCTEUoUEFOX1NDUk9MTElORykKICAg
ICBpZiAobV9mcmFtZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5wYW5TY3JvbGxJblByb2dy
ZXNzKCkpCi0gICAgICAgIHJldHVybiBOb0N1cnNvckNoYW5nZTsKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICNlbmRpZgogCiAgICAgUmVmPEZyYW1lPiBwcm90ZWN0ZWRGcmFtZShtX2Zy
YW1lKTsKQEAgLTE0MDYsNyArMTM5NCw3IEBAIE9wdGlvbmFsQ3Vyc29yIEV2ZW50SGFuZGxlcjo6
c2VsZWN0Q3Vyc29yKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaGlmCiAKICAg
ICBOb2RlKiBub2RlID0gcmVzdWx0LnRhcmdldE5vZGUoKTsKICAgICBpZiAoIW5vZGUpCi0gICAg
ICAgIHJldHVybiBOb0N1cnNvckNoYW5nZTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
IAogICAgIGF1dG8gcmVuZGVyZXIgPSBub2RlLT5yZW5kZXJlcigpOwogICAgIGF1dG8qIHN0eWxl
ID0gcmVuZGVyZXIgPyAmcmVuZGVyZXItPnN0eWxlKCkgOiBudWxscHRyOwpAQCAtMTQyOCw3ICsx
NDE2LDcgQEAgT3B0aW9uYWxDdXJzb3IgRXZlbnRIYW5kbGVyOjpzZWxlY3RDdXJzb3IoY29uc3Qg
SGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBib29sIHNoaWYKICAgICAgICAgY2FzZSBTZXRDdXJzb3I6
CiAgICAgICAgICAgICByZXR1cm4gb3ZlcnJpZGVDdXJzb3I7CiAgICAgICAgIGNhc2UgRG9Ob3RT
ZXRDdXJzb3I6Ci0gICAgICAgICAgICByZXR1cm4gTm9DdXJzb3JDaGFuZ2U7CisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgfQogCkBAIC0xOTQ3LDE1ICsx
OTM1LDEwIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZU1vdmVFdmVudChjb25zdCBQ
bGF0Zm9ybU1vdXNlRXZlbnQmIHBsYXRmb3JtTW91c2VFCiAgICAgICAgIC8vIG5vZGUgdG8gYmUg
ZGV0YWNoZWQgZnJvbSBpdHMgRnJhbWVWaWV3LCBpbiB3aGljaCBjYXNlIHRoZSBldmVudCBzaG91
bGQgbm90IGJlIHBhc3NlZC4KICAgICAgICAgaWYgKG5ld1N1YmZyYW1lLT52aWV3KCkpCiAgICAg
ICAgICAgICBzd2FsbG93RXZlbnQgfD0gcGFzc01vdXNlTW92ZUV2ZW50VG9TdWJmcmFtZShtb3Vz
ZUV2ZW50LCBuZXdTdWJmcmFtZS5nZXQoKSwgaG92ZXJlZE5vZGUpOwotI2lmIEVOQUJMRShDVVJT
T1JfU1VQUE9SVCkKICAgICB9IGVsc2UgewotICAgICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0g
bV9mcmFtZS52aWV3KCkpIHsKLSAgICAgICAgICAgIE9wdGlvbmFsQ3Vyc29yIG9wdGlvbmFsQ3Vy
c29yID0gc2VsZWN0Q3Vyc29yKG1vdXNlRXZlbnQuaGl0VGVzdFJlc3VsdCgpLCBwbGF0Zm9ybU1v
dXNlRXZlbnQuc2hpZnRLZXkoKSk7Ci0gICAgICAgICAgICBpZiAob3B0aW9uYWxDdXJzb3IuaXND
dXJzb3JDaGFuZ2UoKSkgewotICAgICAgICAgICAgICAgIG1fY3VycmVudE1vdXNlQ3Vyc29yID0g
b3B0aW9uYWxDdXJzb3IuY3Vyc29yKCk7Ci0gICAgICAgICAgICAgICAgdmlldy0+c2V0Q3Vyc29y
KG1fY3VycmVudE1vdXNlQ3Vyc29yKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorI2lmIEVO
QUJMRShDVVJTT1JfU1VQUE9SVCkKKyAgICAgICAgaWYgKGF1dG8qIHZpZXcgPSBtX2ZyYW1lLnZp
ZXcoKSkKKyAgICAgICAgICAgIHVwZGF0ZUN1cnNvcigqdmlldywgbW91c2VFdmVudC5oaXRUZXN0
UmVzdWx0KCksIHBsYXRmb3JtTW91c2VFdmVudC5zaGlmdEtleSgpKTsKICNlbmRpZgogICAgIH0K
ICAgICAKQEAgLTE5NjgsNyArMTk1MSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3Vz
ZU1vdmVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIHBsYXRmb3JtTW91c2VFCiAjaWYg
RU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBpZiAoIXN3YWxsb3dFdmVudCkKICAgICAgICAgc3dh
bGxvd0V2ZW50ID0gaGFuZGxlTW91c2VEcmFnZ2VkRXZlbnQobW91c2VFdmVudCk7Ci0jZW5kaWYg
Ly8gRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNlbmRpZgogCiAgICAgcmV0dXJuIHN3YWxsb3dFdmVu
dDsKIH0KQEAgLTIyMzYsNyArMjIxOSw3IEBAIHN0YXRpYyBib29sIGZpbmREcm9wWm9uZShOb2Rl
KiB0YXJnZXQsIERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQogICAgIHJldHVybiBmYWxzZTsK
IH0KICAgICAKLWJvb2wgRXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcChjb25zdCBQbGF0
Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmZXIqIGRhdGFUcmFuc2ZlcikKK2Jvb2wg
RXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQm
IGV2ZW50LCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlcikKIHsKICAgICBSZWY8RnJhbWU+IHBy
b3RlY3RlZEZyYW1lKG1fZnJhbWUpOwogCkBAIC0yMjc1LDE2ICsyMjU4LDE2IEBAIGJvb2wgRXZl
bnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2
ZW50LCBEYXRhVHJhbnNmCiAgICAgICAgICAgICAgICAgLy8gZm9yIG5vdyB3ZSBkb24ndCBjYXJl
IGlmIGV2ZW50IGhhbmRsZXIgY2FuY2VscyBkZWZhdWx0IGJlaGF2aW9yLCBzaW5jZSB0aGVyZSBp
cyBub25lCiAgICAgICAgICAgICAgICAgZGlzcGF0Y2hEcmFnU3JjRXZlbnQoZXZlbnROYW1lcygp
LmRyYWdFdmVudCwgZXZlbnQpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgYWNjZXB0ID0g
ZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdlbnRlckV2ZW50LCAqbmV3VGFyZ2V0
LCBldmVudCwgZGF0YVRyYW5zZmVyKTsKKyAgICAgICAgICAgIGFjY2VwdCA9IGRpc3BhdGNoRHJh
Z0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnZW50ZXJFdmVudCwgKm5ld1RhcmdldCwgZXZlbnQsICZk
YXRhVHJhbnNmZXIpOwogICAgICAgICAgICAgaWYgKCFhY2NlcHQpCi0gICAgICAgICAgICAgICAg
YWNjZXB0ID0gZmluZERyb3Bab25lKG5ld1RhcmdldC5nZXQoKSwgZGF0YVRyYW5zZmVyKTsKKyAg
ICAgICAgICAgICAgICBhY2NlcHQgPSBmaW5kRHJvcFpvbmUobmV3VGFyZ2V0LmdldCgpLCAmZGF0
YVRyYW5zZmVyKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmICh0YXJnZXRJc0ZyYW1lKG1fZHJh
Z1RhcmdldC5nZXQoKSwgdGFyZ2V0RnJhbWUpKSB7CiAgICAgICAgICAgICBpZiAodGFyZ2V0RnJh
bWUpCiAgICAgICAgICAgICAgICAgYWNjZXB0ID0gdGFyZ2V0RnJhbWUtPmV2ZW50SGFuZGxlcigp
LnVwZGF0ZURyYWdBbmREcm9wKGV2ZW50LCBkYXRhVHJhbnNmZXIpOwogICAgICAgICB9IGVsc2Ug
aWYgKG1fZHJhZ1RhcmdldCkKLSAgICAgICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFt
ZXMoKS5kcmFnbGVhdmVFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsIGRhdGFUcmFuc2Zlcik7
CisgICAgICAgICAgICBkaXNwYXRjaERyYWdFdmVudChldmVudE5hbWVzKCkuZHJhZ2xlYXZlRXZl
bnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCAmZGF0YVRyYW5zZmVyKTsKIAogICAgICAgICBpZiAo
bmV3VGFyZ2V0KSB7CiAgICAgICAgICAgICAvLyBXZSBkbyBub3QgZXhwbGljaXRseSBjYWxsIGRp
c3BhdGNoRHJhZ0V2ZW50IGhlcmUgYmVjYXVzZSBpdCBjb3VsZCB1bHRpbWF0ZWx5IHJlc3VsdCBp
biB0aGUgYXBwZWFyYW5jZSB0aGF0CkBAIC0yMzAyLDkgKzIyODUsOSBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwg
RGF0YVRyYW5zZgogICAgICAgICAgICAgICAgIC8vIGZvciBub3cgd2UgZG9uJ3QgY2FyZSBpZiBl
dmVudCBoYW5kbGVyIGNhbmNlbHMgZGVmYXVsdCBiZWhhdmlvciwgc2luY2UgdGhlcmUgaXMgbm9u
ZQogICAgICAgICAgICAgICAgIGRpc3BhdGNoRHJhZ1NyY0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFn
RXZlbnQsIGV2ZW50KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFjY2VwdCA9IGRpc3Bh
dGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnb3ZlckV2ZW50LCAqbmV3VGFyZ2V0LCBldmVu
dCwgZGF0YVRyYW5zZmVyKTsKKyAgICAgICAgICAgIGFjY2VwdCA9IGRpc3BhdGNoRHJhZ0V2ZW50
KGV2ZW50TmFtZXMoKS5kcmFnb3ZlckV2ZW50LCAqbmV3VGFyZ2V0LCBldmVudCwgJmRhdGFUcmFu
c2Zlcik7CiAgICAgICAgICAgICBpZiAoIWFjY2VwdCkKLSAgICAgICAgICAgICAgICBhY2NlcHQg
PSBmaW5kRHJvcFpvbmUobmV3VGFyZ2V0LmdldCgpLCBkYXRhVHJhbnNmZXIpOworICAgICAgICAg
ICAgICAgIGFjY2VwdCA9IGZpbmREcm9wWm9uZShuZXdUYXJnZXQuZ2V0KCksICZkYXRhVHJhbnNm
ZXIpOwogICAgICAgICAgICAgbV9zaG91bGRPbmx5RmlyZURyYWdPdmVyRXZlbnQgPSBmYWxzZTsK
ICAgICAgICAgfQogICAgIH0KQEAgLTIzMTIsNyArMjI5NSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVy
Ojp1cGRhdGVEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRh
VHJhbnNmCiAgICAgcmV0dXJuIGFjY2VwdDsKIH0KIAotdm9pZCBFdmVudEhhbmRsZXI6OmNhbmNl
bERyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2Zl
ciogZGF0YVRyYW5zZmVyKQordm9pZCBFdmVudEhhbmRsZXI6OmNhbmNlbERyYWdBbmREcm9wKGNv
bnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVy
KQogewogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9mcmFtZSk7CiAKQEAgLTIzMjMs
MTIgKzIzMDYsMTIgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNhbmNlbERyYWdBbmREcm9wKGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2YKICAgICB9IGVsc2UgaWYgKG1f
ZHJhZ1RhcmdldCkgewogICAgICAgICBpZiAoZHJhZ1N0YXRlKCkuc291cmNlICYmIGRyYWdTdGF0
ZSgpLnNob3VsZERpc3BhdGNoRXZlbnRzKQogICAgICAgICAgICAgZGlzcGF0Y2hEcmFnU3JjRXZl
bnQoZXZlbnROYW1lcygpLmRyYWdFdmVudCwgZXZlbnQpOwotICAgICAgICBkaXNwYXRjaERyYWdF
dmVudChldmVudE5hbWVzKCkuZHJhZ2xlYXZlRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCBk
YXRhVHJhbnNmZXIpOworICAgICAgICBkaXNwYXRjaERyYWdFdmVudChldmVudE5hbWVzKCkuZHJh
Z2xlYXZlRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCAmZGF0YVRyYW5zZmVyKTsKICAgICB9
CiAgICAgY2xlYXJEcmFnU3RhdGUoKTsKIH0KIAotYm9vbCBFdmVudEhhbmRsZXI6OnBlcmZvcm1E
cmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmZXIq
IGRhdGFUcmFuc2ZlcikKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERyb3AoY29u
c3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIp
CiB7CiAgICAgUmVmPEZyYW1lPiBwcm90ZWN0ZWRGcmFtZShtX2ZyYW1lKTsKIApAQCAtMjMzOCw3
ICsyMzIxLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBlcmZvcm1EcmFnQW5kRHJvcChjb25zdCBQ
bGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnMKICAgICAgICAgaWYgKHRhcmdldEZy
YW1lKQogICAgICAgICAgICAgcHJldmVudGVkRGVmYXVsdCA9IHRhcmdldEZyYW1lLT5ldmVudEhh
bmRsZXIoKS5wZXJmb3JtRHJhZ0FuZERyb3AoZXZlbnQsIGRhdGFUcmFuc2Zlcik7CiAgICAgfSBl
bHNlIGlmIChtX2RyYWdUYXJnZXQpCi0gICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSBkaXNwYXRj
aERyYWdFdmVudChldmVudE5hbWVzKCkuZHJvcEV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwg
ZGF0YVRyYW5zZmVyKTsKKyAgICAgICAgcHJldmVudGVkRGVmYXVsdCA9IGRpc3BhdGNoRHJhZ0V2
ZW50KGV2ZW50TmFtZXMoKS5kcm9wRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCAmZGF0YVRy
YW5zZmVyKTsKICAgICBjbGVhckRyYWdTdGF0ZSgpOwogICAgIHJldHVybiBwcmV2ZW50ZWREZWZh
dWx0OwogfQpAQCAtMjM1Myw5ICsyMzM2LDEwIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhckRy
YWdTdGF0ZSgpCiAgICAgbV9zZW5kaW5nRXZlbnRUb1N1YnZpZXcgPSBmYWxzZTsKICNlbmRpZgog
fQorCiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKIAotdm9pZCBFdmVudEhhbmRsZXI6
OnNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1l
bnQpCit2b2lkIEV2ZW50SGFuZGxlcjo6c2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KEVs
ZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgbV9jYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQgPSBl
bGVtZW50OwogICAgIG1fZXZlbnRIYW5kbGVyV2lsbFJlc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNF
bGVtZW50ID0gZmFsc2U7CkBAIC0yNTYzLDcgKzI1NDcsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6
ZGlzcGF0Y2hNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiB0
YXJnZQogCiAgICAgLy8gSWYgZm9jdXMgc2hpZnQgaXMgYmxvY2tlZCwgd2UgZWF0IHRoZSBldmVu
dC4KICAgICBhdXRvKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7Ci0gICAgaWYgKHBhZ2UgJiYgIXBh
Z2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KGVsZW1lbnQsICZtX2ZyYW1l
KSkKKyAgICBpZiAocGFnZSAmJiAhcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVs
ZW1lbnQoZWxlbWVudCwgbV9mcmFtZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJl
dHVybiB0cnVlOwpAQCAtMzQxMSwxMSArMzM5NSwxMSBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZHJh
Z1NvdXJjZUVuZGVkQXQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRHJhZ09wZXJh
dAogICAgIG1fbW91c2VEb3duTWF5U3RhcnREcmFnID0gZmFsc2U7CiB9CiAKLXZvaWQgRXZlbnRI
YW5kbGVyOjp1cGRhdGVEcmFnU3RhdGVBZnRlckVkaXREcmFnSWZOZWVkZWQoRWxlbWVudCogcm9v
dEVkaXRhYmxlRWxlbWVudCkKK3ZvaWQgRXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnU3RhdGVBZnRl
ckVkaXREcmFnSWZOZWVkZWQoRWxlbWVudCYgcm9vdEVkaXRhYmxlRWxlbWVudCkKIHsKICAgICAv
LyBJZiBpbnNlcnRpbmcgdGhlIGRyYWdnZWQgY29udGVudHMgcmVtb3ZlZCB0aGUgZHJhZyBzb3Vy
Y2UsIHdlIHN0aWxsIHdhbnQgdG8gZmlyZSBkcmFnZW5kIGF0IHRoZSByb290IGVkaXRhYmxlIGVs
ZW1lbnQuCiAgICAgaWYgKGRyYWdTdGF0ZSgpLnNvdXJjZSAmJiAhZHJhZ1N0YXRlKCkuc291cmNl
LT5pbkRvY3VtZW50KCkpCi0gICAgICAgIGRyYWdTdGF0ZSgpLnNvdXJjZSA9IHJvb3RFZGl0YWJs
ZUVsZW1lbnQ7CisgICAgICAgIGRyYWdTdGF0ZSgpLnNvdXJjZSA9ICZyb290RWRpdGFibGVFbGVt
ZW50OwogfQogCiAvLyBSZXR1cm4gdmFsdWUgaW5kaWNhdGVzIGlmIHdlIHNob3VsZCBjb250aW51
ZSAiZGVmYXVsdCBwcm9jZXNzaW5nIiwgaS5lLiwgd2hldGhlciBldmVudCBoYW5kbGVyIGNhbmNl
bGVkLgpAQCAtMzYyNSwyNSArMzYwOSwyNCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlVGV4
dElucHV0RXZlbnQoY29uc3QgU3RyaW5nJiB0ZXh0LCBFdmVudCogdW5kZXJseWluZ0V2ZQogICAg
IHJldHVybiBldmVudC0+ZGVmYXVsdEhhbmRsZWQoKTsKIH0KICAgICAKLWJvb2wgRXZlbnRIYW5k
bGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKEtleWJvYXJkRXZlbnQqIGV2ZW50KQorYm9vbCBFdmVu
dEhhbmRsZXI6OmlzS2V5Ym9hcmRPcHRpb25UYWIoS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiB7Ci0g
ICAgcmV0dXJuIGV2ZW50Ci0gICAgICAgICYmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMo
KS5rZXlkb3duRXZlbnQgfHwgZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5cHJlc3NF
dmVudCkKLSAgICAgICAgJiYgZXZlbnQtPmFsdEtleSgpCi0gICAgICAgICYmIGV2ZW50LT5rZXlJ
ZGVudGlmaWVyKCkgPT0gIlUrMDAwOSI7ICAgIAorICAgIHJldHVybiAoZXZlbnQudHlwZSgpID09
IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQgfHwgZXZlbnQudHlwZSgpID09IGV2ZW50TmFtZXMo
KS5rZXlwcmVzc0V2ZW50KQorICAgICAgICAmJiBldmVudC5hbHRLZXkoKQorICAgICAgICAmJiBl
dmVudC5rZXlJZGVudGlmaWVyKCkgPT0gIlUrMDAwOSI7CiB9CiAKLWJvb2wgRXZlbnRIYW5kbGVy
OjpldmVudEludmVydHNUYWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQoS2V5Ym9hcmRFdmVudCog
ZXZlbnQpCitib29sIEV2ZW50SGFuZGxlcjo6ZXZlbnRJbnZlcnRzVGFic1RvTGlua3NDbGllbnRD
YWxsUmVzdWx0KEtleWJvYXJkRXZlbnQmIGV2ZW50KQogewogI2lmIFBMQVRGT1JNKENPQ09BKSB8
fCBQTEFURk9STShFRkwpCi0gICAgcmV0dXJuIEV2ZW50SGFuZGxlcjo6aXNLZXlib2FyZE9wdGlv
blRhYihldmVudCk7CisgICAgcmV0dXJuIGlzS2V5Ym9hcmRPcHRpb25UYWIoZXZlbnQpOwogI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0oZXZlbnQpOwogICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgog
fQogCi1ib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvTGlua3MoS2V5Ym9hcmRFdmVudCogZXZlbnQp
IGNvbnN0Citib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvTGlua3MoS2V5Ym9hcmRFdmVudCYgZXZl
bnQpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gbmVlZHMgYSBiZXR0ZXIg
bmFtZS4gSXQgY2FuIGJlIGNhbGxlZCBmb3Iga2V5cHJlc3NlcyBvdGhlciB0aGFuIFRhYiB3aGVu
IHNwYXRpYWwgbmF2aWdhdGlvbiBpcyBlbmFibGVkLgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuaAppbmRleCBkZTc4YmNhZTg0YTc2NjRkZTI4ZDVkMTc5MDZiOWEzZGIyZTFiNDIzLi42ZWQ3
YWUzMzk1YzgwMjYzZDRhNzcwMGZjYTBhZjBmNmVmOTE4YzJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2
LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC0zMSwzMCArMzEsMzEgQEAKICNpbmNsdWRlICJIaXRUZXN0UmVxdWVz
dC5oIgogI2luY2x1ZGUgIkxheW91dFBvaW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2
ZW50LmgiCi0jaW5jbHVkZSAiUGxhdGZvcm1XaGVlbEV2ZW50LmgiCiAjaW5jbHVkZSAiU2Nyb2xs
VHlwZXMuaCIKICNpbmNsdWRlICJUZXh0RXZlbnRJbnB1dFR5cGUuaCIKICNpbmNsdWRlICJUZXh0
R3JhbnVsYXJpdHkuaCIKICNpbmNsdWRlICJUaW1lci5oIgotI2luY2x1ZGUgIldoZWVsRXZlbnRE
ZWx0YUZpbHRlci5oIgogI2luY2x1ZGUgPG1lbW9yeT4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5o
PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUg
PHd0Zi9XZWFrUHRyLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKK09CSkNfQ0xBU1MgTlNWaWV3
OworI2VuZGlmCisKICNpZiBQTEFURk9STShJT1MpCiBPQkpDX0NMQVNTIFdlYkV2ZW50OwotT0JK
Q19DTEFTUyBXQUtWaWV3OwotI2lmZGVmIF9fT0JKQ19fCi0jaW5jbHVkZSAiV0FLQXBwS2l0U3R1
YnMuaCIKICNlbmRpZgotI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKIAotI2lmIFBMQVRGT1JNKENP
Q09BKQotT0JKQ19DTEFTUyBOU1ZpZXc7CisjaWYgUExBVEZPUk0oTUFDKQorT0JKQ19DTEFTUyBO
U0V2ZW50OworI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpICYmIGRlZmluZWQoX19PQkpDX18p
CisjaW5jbHVkZSAiV0FLQXBwS2l0U3R1YnMuaCIKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC02NiwxNiArNjcsMTQgQEAgY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50Owog
Y2xhc3MgRXZlbnQ7CiBjbGFzcyBFdmVudFRhcmdldDsKLWNsYXNzIEZsb2F0UG9pbnQ7CiBjbGFz
cyBGbG9hdFF1YWQ7CiBjbGFzcyBGcmFtZTsKK2NsYXNzIEZyYW1lVmlldzsKIGNsYXNzIEhUTUxG
cmFtZVNldEVsZW1lbnQ7Ci1jbGFzcyBIaXRUZXN0UmVxdWVzdDsKIGNsYXNzIEhpdFRlc3RSZXN1
bHQ7CiBjbGFzcyBLZXlib2FyZEV2ZW50OwogY2xhc3MgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVz
dWx0czsKIGNsYXNzIE5vZGU7Ci1jbGFzcyBPcHRpb25hbEN1cnNvcjsKIGNsYXNzIFBsYXRmb3Jt
R2VzdHVyZUV2ZW50OwogY2xhc3MgUGxhdGZvcm1LZXlib2FyZEV2ZW50OwogY2xhc3MgUGxhdGZv
cm1Ub3VjaEV2ZW50OwpAQCAtMTAwLDcgKzk5LDcgQEAgZXh0ZXJuIGNvbnN0IGludCBMaW5rRHJh
Z0h5c3RlcmVzaXM7CiBleHRlcm4gY29uc3QgaW50IEltYWdlRHJhZ0h5c3RlcmVzaXM7CiBleHRl
cm4gY29uc3QgaW50IFRleHREcmFnSHlzdGVyZXNpczsKIGV4dGVybiBjb25zdCBpbnQgR2VuZXJh
bERyYWdIeXN0ZXJlc2lzOwotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjZW5kaWYK
IAogI2lmIEVOQUJMRShJT1NfR0VTVFVSRV9FVkVOVFMpIHx8IEVOQUJMRShNQUNfR0VTVFVSRV9F
VkVOVFMpCiBleHRlcm4gY29uc3QgZmxvYXQgR2VzdHVyZVVua25vd247CkBAIC0xMjAsNyArMTE5
LDYgQEAgZW51bSBjbGFzcyBJbW1lZGlhdGVBY3Rpb25TdGFnZSB7CiB9OwogCiBjbGFzcyBFdmVu
dEhhbmRsZXIgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEV2ZW50SGFuZGxlcik7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgRXZlbnRIYW5k
bGVyKEZyYW1lJik7CkBAIC0xMzYsNyArMTM0LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShQQU5f
U0NST0xMSU5HKQogICAgIHZvaWQgZGlkUGFuU2Nyb2xsU3RhcnQoKTsKICAgICB2b2lkIGRpZFBh
blNjcm9sbFN0b3AoKTsKLSAgICB2b2lkIHN0YXJ0UGFuU2Nyb2xsaW5nKFJlbmRlckVsZW1lbnQq
KTsKKyAgICB2b2lkIHN0YXJ0UGFuU2Nyb2xsaW5nKFJlbmRlckVsZW1lbnQmKTsKICNlbmRpZgog
CiAgICAgdm9pZCBzdG9wQXV0b3Njcm9sbFRpbWVyKGJvb2wgcmVuZGVyZXJJc0JlaW5nRGVzdHJv
eWVkID0gZmFsc2UpOwpAQCAtMTU2LDEzICsxNTQsMTMgQEAgcHVibGljOgogICAgIGJvb2wgbW91
c2VQcmVzc2VkKCkgY29uc3QgeyByZXR1cm4gbV9tb3VzZVByZXNzZWQ7IH0KICAgICBOb2RlKiBt
b3VzZVByZXNzTm9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VQcmVzc05vZGUuZ2V0KCk7IH0K
IAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50
KFBhc3NSZWZQdHI8RWxlbWVudD4pOyAvLyBBIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgcmVz
ZXR0aW5nIGNhcHR1cmluZyBlbGVtZW50IHRvIDAuCisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQoRWxlbWVudCopOwogCiAjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkKLSAgICBib29sIHVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91
c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwotICAgIHZvaWQgY2FuY2VsRHJhZ0FuZERyb3AoY29u
c3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyKik7Ci0gICAgYm9vbCBwZXJmb3Jt
RHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyKik7Ci0g
ICAgdm9pZCB1cGRhdGVEcmFnU3RhdGVBZnRlckVkaXREcmFnSWZOZWVkZWQoRWxlbWVudCogcm9v
dEVkaXRhYmxlRWxlbWVudCk7CisgICAgYm9vbCB1cGRhdGVEcmFnQW5kRHJvcChjb25zdCBQbGF0
Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXImKTsKKyAgICB2b2lkIGNhbmNlbERyYWdBbmRE
cm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciYpOworICAgIGJvb2wg
cGVyZm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2Zl
ciYpOworICAgIHZvaWQgdXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKEVsZW1l
bnQmIHJvb3RFZGl0YWJsZUVsZW1lbnQpOwogI2VuZGlmCiAKICAgICB2b2lkIHNjaGVkdWxlSG92
ZXJTdGF0ZVVwZGF0ZSgpOwpAQCAtMTg3LDggKzE4NSw4IEBAIHB1YmxpYzoKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIHNjcm9sbFJlY3Vyc2l2ZWx5KFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3Jh
bnVsYXJpdHksIE5vZGUqIHN0YXJ0aW5nTm9kZSA9IG51bGxwdHIpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgbG9naWNhbFNjcm9sbFJlY3Vyc2l2ZWx5KFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24s
IFNjcm9sbEdyYW51bGFyaXR5LCBOb2RlKiBzdGFydGluZ05vZGUgPSBudWxscHRyKTsKIAotICAg
IGJvb2wgdGFic1RvTGlua3MoS2V5Ym9hcmRFdmVudCopIGNvbnN0OwotICAgIGJvb2wgdGFic1Rv
QWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdDsKKyAgICBib29sIHRhYnNUb0xp
bmtzKEtleWJvYXJkRXZlbnQmKSBjb25zdDsKKyAgICBib29sIHRhYnNUb0FsbEZvcm1Db250cm9s
cyhLZXlib2FyZEV2ZW50JikgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIG1vdXNl
TW92ZWQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBwYXNzTW91c2VNb3ZlZEV2ZW50VG9TY3JvbGxiYXJzKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVu
dCYpOwpAQCAtMjEwLDEyICsyMDgsMTIgQEAgcHVibGljOgogICAgIHZvaWQgcGxhdGZvcm1Ob3Rp
ZnlJZkVuZEdlc3R1cmUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgY29uc3QgV2Vha1B0cjxT
Y3JvbGxhYmxlQXJlYT4mKTsKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKSB8fCBFTkFC
TEUoSU9TX0dFU1RVUkVfRVZFTlRTKQotICAgIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxUb3VjaD4+
IFRvdWNoQXJyYXk7Ci0gICAgdHlwZWRlZiBIYXNoTWFwPEV2ZW50VGFyZ2V0KiwgVG91Y2hBcnJh
eSo+IEV2ZW50VGFyZ2V0VG91Y2hNYXA7CisgICAgdXNpbmcgVG91Y2hBcnJheSA9IFZlY3RvcjxS
ZWZQdHI8VG91Y2g+PjsKKyAgICB1c2luZyBFdmVudFRhcmdldFRvdWNoTWFwID0gSGFzaE1hcDxF
dmVudFRhcmdldCosIFRvdWNoQXJyYXkqPjsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElPU19UT1VD
SF9FVkVOVFMpIHx8IEVOQUJMRShJT1NfR0VTVFVSRV9FVkVOVFMpIHx8IEVOQUJMRShNQUNfR0VT
VFVSRV9FVkVOVFMpCi0gICAgdHlwZWRlZiBIYXNoU2V0PFJlZlB0cjxFdmVudFRhcmdldD4+IEV2
ZW50VGFyZ2V0U2V0OworICAgIHVzaW5nIEV2ZW50VGFyZ2V0U2V0ID0gSGFzaFNldDxSZWZQdHI8
RXZlbnRUYXJnZXQ+PjsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCkBA
IC0yMzEsNyArMjI5LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCi0g
ICAgdm9pZCBkZWZhdWx0VG91Y2hFdmVudEhhbmRsZXIoTm9kZSosIFRvdWNoRXZlbnQqKTsKKyAg
ICB2b2lkIGRlZmF1bHRUb3VjaEV2ZW50SGFuZGxlcihOb2RlJiwgVG91Y2hFdmVudCYpOwogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKQEAgLTI2NCw4ICsyNjIsNyBAQCBwdWJs
aWM6CiAgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZW5kU2Nyb2xsRXZlbnQoKTsKIAot
I2lmIFBMQVRGT1JNKENPQ09BKSAmJiBkZWZpbmVkKF9fT0JKQ19fKQotI2lmICFQTEFURk9STShJ
T1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW91c2VEb3du
KE5TRXZlbnQgKiwgTlNFdmVudCAqY29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgbW91c2VEcmFnZ2VkKE5TRXZlbnQgKiwgTlNFdmVudCAqY29ycmVz
cG9uZGluZ1ByZXNzdXJlRXZlbnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW91c2VVcChO
U0V2ZW50ICosIE5TRXZlbnQgKmNvcnJlc3BvbmRpbmdQcmVzc3VyZUV2ZW50KTsKQEAgLTI3Myw3
ICsyNzAsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcmVzc3VyZUNoYW5n
ZShOU0V2ZW50ICosIE5TRXZlbnQqIGNvcnJlc3BvbmRpbmdQcmVzc3VyZUV2ZW50KTsKICAgICBX
RUJDT1JFX0VYUE9SVCBib29sIGtleUV2ZW50KE5TRXZlbnQgKik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCB3aGVlbEV2ZW50KE5TRXZlbnQgKik7Ci0jZWxzZQorI2VuZGlmCisKKyNpZiBQTEFU
Rk9STShJT1MpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3VzZURvd24oV2ViRXZlbnQgKik7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3VzZVVwKFdlYkV2ZW50ICopOwogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgbW91c2VNb3ZlZChXZWJFdmVudCAqKTsKQEAgLTI4NSwyMyArMjg0LDIw
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHRvdWNoRXZlbnQoV2ViRXZlbnQg
Kik7CiAjZW5kaWYKIAotI2lmICFQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKQogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcGFzc01vdXNlTW92ZWRFdmVudFRvU2Nyb2xsYmFycyhOU0V2
ZW50ICosIE5TRXZlbnQqIGNvcnJlc3BvbmRpbmdQcmVzc3VyZUV2ZW50KTsKIAogICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2VuZEZha2VFdmVudHNBZnRlcldpZGdldFRyYWNraW5nKE5TRXZlbnQg
KmluaXRpYXRpbmdFdmVudCk7Ci0jZW5kaWYKIAotI2lmICFQTEFURk9STShJT1MpCiAgICAgdm9p
ZCBzZXRBY3RpdmF0aW9uRXZlbnROdW1iZXIoaW50IG51bSkgeyBtX2FjdGl2YXRpb25FdmVudE51
bWJlciA9IG51bTsgfQogCiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIE5TRXZlbnQgKmN1cnJl
bnROU0V2ZW50KCk7CiAgICAgc3RhdGljIE5TRXZlbnQgKmNvcnJlc3BvbmRpbmdQcmVzc3VyZUV2
ZW50KCk7Ci0jZWxzZQotICAgIHN0YXRpYyBXZWJFdmVudCAqY3VycmVudEV2ZW50KCk7Ci0jZW5k
aWYgLy8gIVBMQVRGT1JNKElPUykKLSNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkgJiYgZGVmaW5l
ZChfX09CSkNfXykKKyNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQorICAgIHN0YXRpYyBXZWJF
dmVudCAqY3VycmVudEV2ZW50KCk7CisKICAgICB2b2lkIGludmFsaWRhdGVDbGljaygpOwogI2Vu
ZGlmCiAKQEAgLTMyMyw5ICszMTksOCBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCiAgICAgc3RhdGljIERyYWdTdGF0ZSYgZHJhZ1N0YXRlKCk7CiAgICAgc3RhdGljIGNvbnN0
IGRvdWJsZSBUZXh0RHJhZ0RlbGF5OwotICAgIAotICAgIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVy
PiBjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0OwotI2VuZGlmIC8vIEVOQUJMRShE
UkFHX1NVUFBPUlQpCisgICAgUmVmPERhdGFUcmFuc2Zlcj4gY3JlYXRlRHJhZ2dpbmdEYXRhVHJh
bnNmZXIoKSBjb25zdDsKKyNlbmRpZgogCiAgICAgYm9vbCBldmVudEFjdGl2YXRlZFZpZXcoY29u
c3QgUGxhdGZvcm1Nb3VzZUV2ZW50JikgY29uc3Q7CiAgICAgYm9vbCB1cGRhdGVTZWxlY3Rpb25G
b3JNb3VzZURvd25EaXNwYXRjaGluZ1NlbGVjdFN0YXJ0KE5vZGUqLCBjb25zdCBWaXNpYmxlU2Vs
ZWN0aW9uJiwgVGV4dEdyYW51bGFyaXR5KTsKQEAgLTM0MSwxNCArMzM2LDE4IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBoYW5kbGVNb3VzZVByZXNzRXZlbnRTaW5nbGVDbGljayhjb25zdCBNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CiAgICAgYm9vbCBoYW5kbGVNb3VzZVByZXNzRXZlbnRE
b3VibGVDbGljayhjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CiAgICAgYm9v
bCBoYW5kbGVNb3VzZVByZXNzRXZlbnRUcmlwbGVDbGljayhjb25zdCBNb3VzZUV2ZW50V2l0aEhp
dFRlc3RSZXN1bHRzJik7CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIGJvb2wgaGFu
ZGxlTW91c2VEcmFnZ2VkRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYp
OwogI2VuZGlmCisKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRsZU1vdXNlUmVsZWFzZUV2
ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsKIAotICAgIE9wdGlvbmFs
Q3Vyc29yIHNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiwgYm9vbCBzaGlmdEtleSk7
CisgICAgc3RkOjpvcHRpb25hbDxDdXJzb3I+IHNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVz
dWx0JiwgYm9vbCBzaGlmdEtleSk7CisgICAgdm9pZCB1cGRhdGVDdXJzb3IoRnJhbWVWaWV3Jiwg
Y29uc3QgSGl0VGVzdFJlc3VsdCYsIGJvb2wgc2hpZnRLZXkpOwogCiAgICAgdm9pZCBob3ZlclRp
bWVyRmlyZWQoKTsKKwogI2lmIEVOQUJMRShDVVJTT1JfU1VQUE9SVCkKICAgICB2b2lkIGN1cnNv
clVwZGF0ZVRpbWVyRmlyZWQoKTsKICNlbmRpZgpAQCAtMzU5LDggKzM1OCw4IEBAIHByaXZhdGU6
CiAgICAgCiAgICAgYm9vbCBtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpIGNvbnN0IHsgcmV0dXJu
IG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3Q7IH0KIAotICAgIHN0YXRpYyBib29sIGlzS2V5Ym9h
cmRPcHRpb25UYWIoS2V5Ym9hcmRFdmVudCopOwotICAgIHN0YXRpYyBib29sIGV2ZW50SW52ZXJ0
c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdChLZXlib2FyZEV2ZW50Kik7CisgICAgc3RhdGlj
IGJvb2wgaXNLZXlib2FyZE9wdGlvblRhYihLZXlib2FyZEV2ZW50Jik7CisgICAgc3RhdGljIGJv
b2wgZXZlbnRJbnZlcnRzVGFic1RvTGlua3NDbGllbnRDYWxsUmVzdWx0KEtleWJvYXJkRXZlbnQm
KTsKIAogI2lmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICB2b2lkIGZha2VNb3VzZU1v
dmVFdmVudFRpbWVyRmlyZWQoKTsKQEAgLTM4NSw2ICszODQsNyBAQCBwcml2YXRlOgogICAgIE1v
dXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMgcHJlcGFyZU1vdXNlRXZlbnQoY29uc3QgSGl0VGVz
dFJlcXVlc3QmLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKIAogICAgIGJvb2wgZGlzcGF0
Y2hNb3VzZUV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBOb2RlKiB0YXJnZXQs
IGJvb2wgY2FuY2VsYWJsZSwgaW50IGNsaWNrQ291bnQsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVu
dCYsIGJvb2wgc2V0VW5kZXIpOworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBib29s
IGRpc3BhdGNoRHJhZ0V2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBFbGVtZW50
JiB0YXJnZXQsIGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwogCkBA
IC0zOTIsNyArMzkyLDkgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgaGFuZGxlRHJhZyhjb25zdCBN
b3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwgQ2hlY2tEcmFnSHlzdGVyZXNpcyk7CiAjZW5k
aWYKKwogICAgIGJvb2wgaGFuZGxlTW91c2VVcChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RS
ZXN1bHRzJik7CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHZvaWQgY2xlYXJEcmFn
U3RhdGUoKTsKIApAQCAtNDAwLDcgKzQwMiw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIGRyYWdI
eXN0ZXJlc2lzRXhjZWVkZWQoY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0OwogICAgIGJvb2wgZHJh
Z0h5c3RlcmVzaXNFeGNlZWRlZChjb25zdCBJbnRQb2ludCYpIGNvbnN0OwotI2VuZGlmIC8vIEVO
QUJMRShEUkFHX1NVUFBPUlQpCisjZW5kaWYKICAgICAKICAgICBib29sIG1vdXNlTW92ZW1lbnRF
eGNlZWRzVGhyZXNob2xkKGNvbnN0IEZsb2F0UG9pbnQmLCBpbnQgcG9pbnRzVGhyZXNob2xkKSBj
b25zdDsKIApAQCAtNDMxLDExICs0MzMsOSBAQCBwcml2YXRlOgogICAgIC8vIFRoZSBmb2xsb3dp
bmcgYXJlIGNhbGxlZCBhdCB0aGUgYmVnaW5uaW5nIG9mIGhhbmRsZU1vdXNlVXAgYW5kIGhhbmRs
ZURyYWcuICAKICAgICAvLyBJZiB0aGV5IHJldHVybiB0cnVlIGl0IGluZGljYXRlcyB0aGF0IHRo
ZXkgaGF2ZSBjb25zdW1lZCB0aGUgZXZlbnQuCiAgICAgYm9vbCBldmVudExvb3BIYW5kbGVNb3Vz
ZVVwKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsKLSNpZiBFTkFCTEUoRFJB
R19TVVBQT1JUKQotICAgIGJvb2wgZXZlbnRMb29wSGFuZGxlTW91c2VEcmFnZ2VkKGNvbnN0IE1v
dXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsKLSNlbmRpZgogCiAjaWYgRU5BQkxFKERSQUdf
U1VQUE9SVCkKKyAgICBib29sIGV2ZW50TG9vcEhhbmRsZU1vdXNlRHJhZ2dlZChjb25zdCBNb3Vz
ZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CiAgICAgdm9pZCB1cGRhdGVTZWxlY3Rpb25Gb3JN
b3VzZURyYWcoY29uc3QgSGl0VGVzdFJlc3VsdCYpOwogI2VuZGlmCiAKQEAgLTQ3MywyMSArNDcz
LDI0IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE5vZGU+IG1fbW91c2VQcmVzc05vZGU7CiAKICAg
ICBib29sIG1fbW91c2VEb3duTWF5U3RhcnRTZWxlY3QgeyBmYWxzZSB9OworCiAjaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkKICAgICBib29sIG1fbW91c2VEb3duTWF5U3RhcnREcmFnIHsgZmFsc2Ug
fTsKICAgICBib29sIG1fZHJhZ01heVN0YXJ0U2VsZWN0aW9uSW5zdGVhZCB7IGZhbHNlIH07CiAj
ZW5kaWYKKwogICAgIGJvb2wgbV9tb3VzZURvd25XYXNTaW5nbGVDbGlja0luU2VsZWN0aW9uIHsg
ZmFsc2UgfTsKICAgICBlbnVtIFNlbGVjdGlvbkluaXRpYXRpb25TdGF0ZSB7IEhhdmVOb3RTdGFy
dGVkU2VsZWN0aW9uLCBQbGFjZWRDYXJldCwgRXh0ZW5kZWRTZWxlY3Rpb24gfTsKICAgICBTZWxl
Y3Rpb25Jbml0aWF0aW9uU3RhdGUgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgeyBIYXZlTm90
U3RhcnRlZFNlbGVjdGlvbiB9OwogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBMYXlv
dXRQb2ludCBtX2RyYWdTdGFydFBvczsKKyAgICBMYXlvdXRQb2ludCBtX2RyYWdTdGFydFBvc2l0
aW9uOwogI2VuZGlmCiAKICAgICBib29sIG1fcGFuU2Nyb2xsQnV0dG9uUHJlc3NlZCB7IGZhbHNl
IH07CiAKICAgICBUaW1lciBtX2hvdmVyVGltZXI7CisKICNpZiBFTkFCTEUoQ1VSU09SX1NVUFBP
UlQpCiAgICAgVGltZXIgbV9jdXJzb3JVcGRhdGVUaW1lcjsKICNlbmRpZgpAQCAtNDk1LDYgKzQ5
OCw3IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIFRpbWVyIG1fcGVuZGluZ01v
bWVudHVtV2hlZWxFdmVudHNUaW1lcjsKICNlbmRpZgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPEF1
dG9zY3JvbGxDb250cm9sbGVyPiBtX2F1dG9zY3JvbGxDb250cm9sbGVyOwogICAgIGJvb2wgbV9t
b3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9tb3VzZURv
d25XYXNJblN1YmZyYW1lIHsgZmFsc2UgfTsKQEAgLTUyMywxMSArNTI3LDEzIEBAIHByaXZhdGU6
CiAgICAgZmxvYXQgbV9nZXN0dXJlSW5pdGlhbERpYW1ldGVyIHsgR2VzdHVyZVVua25vd24gfTsK
ICAgICBmbG9hdCBtX2dlc3R1cmVJbml0aWFsUm90YXRpb24geyBHZXN0dXJlVW5rbm93biB9Owog
I2VuZGlmCisKICNpZiBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKSB8fCBFTkFCTEUoTUFDX0dF
U1RVUkVfRVZFTlRTKQogICAgIGZsb2F0IG1fZ2VzdHVyZUxhc3REaWFtZXRlciB7IEdlc3R1cmVV
bmtub3duIH07CiAgICAgZmxvYXQgbV9nZXN0dXJlTGFzdFJvdGF0aW9uIHsgR2VzdHVyZVVua25v
d24gfTsKICAgICBFdmVudFRhcmdldFNldCBtX2dlc3R1cmVUYXJnZXRzOwogI2VuZGlmCisKICNp
ZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogICAgIGJvb2wgbV9oYXNBY3RpdmVHZXN0dXJl
IHsgZmFsc2UgfTsKICNlbmRpZgpAQCAtNTU4LDEyICs1NjQsMTQgQEAgcHJpdmF0ZToKICNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBOU1ZpZXcgKm1fbW91c2VEb3duVmlldyB7IG51bGxwdHIgfTsK
ICAgICBib29sIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3IHsgZmFsc2UgfTsKLSNpZiAhUExBVEZP
Uk0oSU9TKQotICAgIGludCBtX2FjdGl2YXRpb25FdmVudE51bWJlciB7IC0xIH07CiAjZW5kaWYK
KworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpbnQgbV9hY3RpdmF0aW9uRXZlbnROdW1iZXIgeyAt
MSB9OwogI2VuZGlmCisKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKSAmJiAhRU5BQkxFKElPU19U
T1VDSF9FVkVOVFMpCi0gICAgdHlwZWRlZiBIYXNoTWFwPGludCwgUmVmUHRyPEV2ZW50VGFyZ2V0
Pj4gVG91Y2hUYXJnZXRNYXA7CisgICAgdXNpbmcgVG91Y2hUYXJnZXRNYXAgPSBIYXNoTWFwPGlu
dCwgUmVmUHRyPEV2ZW50VGFyZ2V0Pj47CiAgICAgVG91Y2hUYXJnZXRNYXAgbV9vcmlnaW5hdGlu
Z1RvdWNoUG9pbnRUYXJnZXRzOwogICAgIFJlZlB0cjxEb2N1bWVudD4gbV9vcmlnaW5hdGluZ1Rv
dWNoUG9pbnREb2N1bWVudDsKICAgICB1bnNpZ25lZCBtX29yaWdpbmF0aW5nVG91Y2hQb2ludFRh
cmdldEtleSB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAppbmRl
eCBhN2IyNTU3ZTY5NDZkYjllNTYxMTU3YWRmNzJjYzI4MjZlZmU4NzQ3Li41YWE4NmM5OWM4OWYz
YWZlZGRhOTc1ODk2ZDcyYzIwNzE1ZDk1NTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0Nv
bnRyb2xsZXIuY3BwCkBAIC0zMTYsNyArMzE2LDcgQEAgRm9jdXNDb250cm9sbGVyOjpGb2N1c0Nv
bnRyb2xsZXIoUGFnZSYgcGFnZSwgQWN0aXZpdHlTdGF0ZTo6RmxhZ3MgYWN0aXZpdHlTdGF0ZSkK
IHsKIH0KIAotdm9pZCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRGcmFtZShQYXNzUmVmUHRy
PEZyYW1lPiBmcmFtZSkKK3ZvaWQgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRnJhbWUoRnJh
bWUqIGZyYW1lKQogewogICAgIEFTU0VSVCghZnJhbWUgfHwgZnJhbWUtPnBhZ2UoKSA9PSAmbV9w
YWdlKTsKICAgICBpZiAobV9mb2N1c2VkRnJhbWUgPT0gZnJhbWUgfHwgbV9pc0NoYW5naW5nRm9j
dXNlZEZyYW1lKQpAQCAtNzY1LDggKzc2NSw5IEBAIHN0YXRpYyB2b2lkIGNsZWFyU2VsZWN0aW9u
SWZOZWVkZWQoRnJhbWUqIG9sZEZvY3VzZWRGcmFtZSwgRnJhbWUqIG5ld0ZvY3VzZWRGcmFtCiAg
ICAgb2xkRm9jdXNlZEZyYW1lLT5zZWxlY3Rpb24oKS5jbGVhcigpOwogfQogCi1ib29sIEZvY3Vz
Q29udHJvbGxlcjo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUGFzc1JlZlB0
cjxGcmFtZT4gbmV3Rm9jdXNlZEZyYW1lLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCitib29s
IEZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgRnJh
bWUmIG5ld0ZvY3VzZWRGcmFtZSwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogeworICAgIFJl
ZjxGcmFtZT4gcHJvdGVjdGVkTmV3Rm9jdXNlZEZyYW1lID0gbmV3Rm9jdXNlZEZyYW1lOwogICAg
IFJlZlB0cjxGcmFtZT4gb2xkRm9jdXNlZEZyYW1lID0gZm9jdXNlZEZyYW1lKCk7CiAgICAgUmVm
UHRyPERvY3VtZW50PiBvbGREb2N1bWVudCA9IG9sZEZvY3VzZWRGcmFtZSA/IG9sZEZvY3VzZWRG
cmFtZS0+ZG9jdW1lbnQoKSA6IG51bGxwdHI7CiAgICAgCkBAIC03ODAsNyArNzgxLDcgQEAgYm9v
bCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIFBh
c3NSZWZQdHI8RnJhbWU+IG5ld0YKIAogICAgIG1fcGFnZS5lZGl0b3JDbGllbnQoKS53aWxsU2V0
SW5wdXRNZXRob2RTdGF0ZSgpOwogCi0gICAgY2xlYXJTZWxlY3Rpb25JZk5lZWRlZChvbGRGb2N1
c2VkRnJhbWUuZ2V0KCksIG5ld0ZvY3VzZWRGcmFtZS5nZXQoKSwgZWxlbWVudCk7CisgICAgY2xl
YXJTZWxlY3Rpb25JZk5lZWRlZChvbGRGb2N1c2VkRnJhbWUuZ2V0KCksICZuZXdGb2N1c2VkRnJh
bWUsIGVsZW1lbnQpOwogCiAgICAgaWYgKCFlbGVtZW50KSB7CiAgICAgICAgIGlmIChvbGREb2N1
bWVudCkKQEAgLTc5OSwxMSArODAwLDExIEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1
c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBQYXNzUmVmUHRyPEZyYW1lPiBuZXdGCiAgICAg
aWYgKG9sZERvY3VtZW50ICYmIG9sZERvY3VtZW50ICE9IG5ld0RvY3VtZW50LnB0cigpKQogICAg
ICAgICBvbGREb2N1bWVudC0+c2V0Rm9jdXNlZEVsZW1lbnQobnVsbHB0cik7CiAKLSAgICBpZiAo
bmV3Rm9jdXNlZEZyYW1lICYmICFuZXdGb2N1c2VkRnJhbWUtPnBhZ2UoKSkgeworICAgIGlmICgh
bmV3Rm9jdXNlZEZyYW1lLnBhZ2UoKSkgewogICAgICAgICBzZXRGb2N1c2VkRnJhbWUobnVsbHB0
cik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgc2V0Rm9jdXNlZEZyYW1lKG5l
d0ZvY3VzZWRGcmFtZSk7CisgICAgc2V0Rm9jdXNlZEZyYW1lKCZuZXdGb2N1c2VkRnJhbWUpOwog
CiAgICAgUmVmPEVsZW1lbnQ+IHByb3RlY3QoKmVsZW1lbnQpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
b2N1c0NvbnRyb2xsZXIuaAppbmRleCBlY2JlMzk2MWRhMWY1YjAwNWIwMWJjYzgyNTE2YjUwYTI3
YThlMmFlLi5jNmRjZjIyMjA5MzVlY2JiMWZjYmQ0MjIxZjJjYTJkOTQ3M2Y3N2EzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzAsMTIgKzMwLDEwIEBACiAjaW5j
bHVkZSAiTGF5b3V0UmVjdC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0Zv
cndhcmQuaD4KLSNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvUmVm
UHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RydWN0IEZvY3VzQ2FuZGlkYXRlOwog
Y2xhc3MgQ29udGFpbmVyTm9kZTsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxlbWVudDsKQEAg
LTQ4LDE5ICs0NiwyMSBAQCBjbGFzcyBOb2RlOwogY2xhc3MgUGFnZTsKIGNsYXNzIFRyZWVTY29w
ZTsKIAorc3RydWN0IEZvY3VzQ2FuZGlkYXRlOworCiBjbGFzcyBGb2N1c0NvbnRyb2xsZXIgewot
ICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEZvY3VzQ29udHJvbGxlcik7IFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4
cGxpY2l0IEZvY3VzQ29udHJvbGxlcihQYWdlJiwgQWN0aXZpdHlTdGF0ZTo6RmxhZ3MpOwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRGb2N1c2VkRnJhbWUoUGFzc1JlZlB0cjxGcmFtZT4p
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Rm9jdXNlZEZyYW1lKEZyYW1lKik7CiAgICAg
RnJhbWUqIGZvY3VzZWRGcmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9jdXNlZEZyYW1lLmdldCgp
OyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUmIGZvY3VzZWRPck1haW5GcmFtZSgpIGNvbnN0
OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRJbml0aWFsRm9jdXMoRm9jdXNEaXJlY3Rp
b24sIEtleWJvYXJkRXZlbnQqKTsKICAgICBib29sIGFkdmFuY2VGb2N1cyhGb2N1c0RpcmVjdGlv
biwgS2V5Ym9hcmRFdmVudCYsIGJvb2wgaW5pdGlhbEZvY3VzID0gZmFsc2UpOwogCi0gICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiwgUGFzc1JlZlB0cjxG
cmFtZT4sIEZvY3VzRGlyZWN0aW9uID0gRm9jdXNEaXJlY3Rpb25Ob25lKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBib29sIHNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqLCBGcmFtZSYsIEZvY3VzRGly
ZWN0aW9uID0gRm9jdXNEaXJlY3Rpb25Ob25lKTsKIAogICAgIHZvaWQgc2V0QWN0aXZpdHlTdGF0
ZShBY3Rpdml0eVN0YXRlOjpGbGFncyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAppbmRl
eCBkZWViMjNiNzU4NDQ5YmJmZTVjNTVmMTlkODBkMDQ5MjgyOTExN2FhLi5mZGNmMzU2MGVlNGIx
OWZhOTgwNmQ0OTM0MGEyMzM4MWE5YmFiZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAxMyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIFJlc2VhcmNoIElu
IE1vdGlvbiBMaW1pdGVkIDIwMTAuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgpA
QCAtNjMsMjUgKzYzLDYgQEAgRnJhbWUqIEZyYW1lVHJlZTo6cGFyZW50KCkgY29uc3QKICAgICBy
ZXR1cm4gbV9wYXJlbnQ7CiB9CiAKLWJvb2wgRnJhbWVUcmVlOjp0cmFuc2ZlckNoaWxkKFBhc3NS
ZWZQdHI8RnJhbWU+IGNoaWxkKQotewotICAgIEZyYW1lKiBvbGRQYXJlbnQgPSBjaGlsZC0+dHJl
ZSgpLnBhcmVudCgpOwotICAgIGlmIChvbGRQYXJlbnQgPT0gJm1fdGhpc0ZyYW1lKQotICAgICAg
ICByZXR1cm4gZmFsc2U7IC8vIHxjaGlsZHwgaXMgYWxyZWFkeSBhIGNoaWxkIG9mIG1fdGhpc0Zy
YW1lLgotCi0gICAgaWYgKG9sZFBhcmVudCkKLSAgICAgICAgb2xkUGFyZW50LT50cmVlKCkucmVt
b3ZlQ2hpbGQoY2hpbGQuZ2V0KCkpOwotCi0gICAgQVNTRVJUKGNoaWxkLT5wYWdlKCkgPT0gbV90
aGlzRnJhbWUucGFnZSgpKTsKLSAgICBjaGlsZC0+dHJlZSgpLm1fcGFyZW50ID0gJm1fdGhpc0Zy
YW1lOwotCi0gICAgLy8gV2UgbmVlZCB0byBlbnN1cmUgdGhhdCB0aGUgY2hpbGQgc3RpbGwgaGFz
IGEgdW5pcXVlIGZyYW1lIG5hbWUgd2l0aCByZXNwZWN0IHRvIGl0cyBuZXcgcGFyZW50LgotICAg
IGNoaWxkLT50cmVlKCkuc2V0TmFtZShjaGlsZC0+dHJlZSgpLm1fbmFtZSk7Ci0KLSAgICBhY3R1
YWxseUFwcGVuZENoaWxkKGNoaWxkKTsgLy8gTm90ZSwgb24gcmV0dXJuIHxjaGlsZHwgaXMgbnVs
bC4KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogdW5zaWduZWQgRnJhbWVUcmVlOjppbmRleEluUGFy
ZW50KCkgY29uc3QKIHsKICAgICBpZiAoIW1fcGFyZW50KQpAQCAtOTUsNDYgKzc2LDMyIEBAIHVu
c2lnbmVkIEZyYW1lVHJlZTo6aW5kZXhJblBhcmVudCgpIGNvbnN0CiAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKIH0KIAotdm9pZCBGcmFtZVRyZWU6OmFwcGVuZENoaWxkKFBhc3NS
ZWZQdHI8RnJhbWU+IGNoaWxkKQotewotICAgIEFTU0VSVChjaGlsZC0+cGFnZSgpID09IG1fdGhp
c0ZyYW1lLnBhZ2UoKSk7Ci0gICAgY2hpbGQtPnRyZWUoKS5tX3BhcmVudCA9ICZtX3RoaXNGcmFt
ZTsKLSAgICBhY3R1YWxseUFwcGVuZENoaWxkKGNoaWxkKTsgLy8gTm90ZSwgb24gcmV0dXJuIHxj
aGlsZHwgaXMgbnVsbC4KLX0KLQotdm9pZCBGcmFtZVRyZWU6OmFjdHVhbGx5QXBwZW5kQ2hpbGQo
UGFzc1JlZlB0cjxGcmFtZT4gY2hpbGQpCit2b2lkIEZyYW1lVHJlZTo6YXBwZW5kQ2hpbGQoRnJh
bWUmIGNoaWxkKQogewotICAgIEFTU0VSVChjaGlsZC0+dHJlZSgpLm1fcGFyZW50ID09ICZtX3Ro
aXNGcmFtZSk7CisgICAgQVNTRVJUKGNoaWxkLnBhZ2UoKSA9PSBtX3RoaXNGcmFtZS5wYWdlKCkp
OworICAgIGNoaWxkLnRyZWUoKS5tX3BhcmVudCA9ICZtX3RoaXNGcmFtZTsKICAgICBGcmFtZSog
b2xkTGFzdCA9IG1fbGFzdENoaWxkOwotICAgIG1fbGFzdENoaWxkID0gY2hpbGQuZ2V0KCk7Cisg
ICAgbV9sYXN0Q2hpbGQgPSAmY2hpbGQ7CiAKICAgICBpZiAob2xkTGFzdCkgewotICAgICAgICBj
aGlsZC0+dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nID0gb2xkTGFzdDsKLSAgICAgICAgb2xkTGFz
dC0+dHJlZSgpLm1fbmV4dFNpYmxpbmcgPSBjaGlsZDsKKyAgICAgICAgY2hpbGQudHJlZSgpLm1f
cHJldmlvdXNTaWJsaW5nID0gb2xkTGFzdDsKKyAgICAgICAgb2xkTGFzdC0+dHJlZSgpLm1fbmV4
dFNpYmxpbmcgPSAmY2hpbGQ7CiAgICAgfSBlbHNlCi0gICAgICAgIG1fZmlyc3RDaGlsZCA9IGNo
aWxkOworICAgICAgICBtX2ZpcnN0Q2hpbGQgPSAmY2hpbGQ7CiAKICAgICBtX3Njb3BlZENoaWxk
Q291bnQgPSBpbnZhbGlkQ291bnQ7CiAKICAgICBBU1NFUlQoIW1fbGFzdENoaWxkLT50cmVlKCku
bV9uZXh0U2libGluZyk7CiB9CiAKLXZvaWQgRnJhbWVUcmVlOjpyZW1vdmVDaGlsZChGcmFtZSog
Y2hpbGQpCit2b2lkIEZyYW1lVHJlZTo6cmVtb3ZlQ2hpbGQoRnJhbWUmIGNoaWxkKQogewotICAg
IGNoaWxkLT50cmVlKCkubV9wYXJlbnQgPSBudWxscHRyOwotCi0gICAgLy8gU2xpZ2h0bHkgdHJp
Y2t5IHdheSB0byBwcmV2ZW50IGRlbGV0aW5nIHRoZSBjaGlsZCB1bnRpbCB3ZSBhcmUgZG9uZSB3
aXRoIGl0LCB3L28KLSAgICAvLyBleHRyYSByZWZzLiBUaGVzZSBzd2FwcyBsZWF2ZSB0aGUgY2hp
bGQgaW4gYSBjaXJjdWxhciBsaXN0IGJ5IGl0c2VsZi4gQ2xlYXJpbmcgaXRzCi0gICAgLy8gcHJl
dmlvdXMgYW5kIG5leHQgd2lsbCB0aGVuIGZpbmFsbHkgZGVyZWYgaXQuCi0KLSAgICBSZWZQdHI8
RnJhbWU+JiBuZXdMb2NhdGlvbkZvck5leHQgPSBtX2ZpcnN0Q2hpbGQgPT0gY2hpbGQgPyBtX2Zp
cnN0Q2hpbGQgOiBjaGlsZC0+dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nLT50cmVlKCkubV9uZXh0
U2libGluZzsKLSAgICBGcmFtZSomIG5ld0xvY2F0aW9uRm9yUHJldmlvdXMgPSBtX2xhc3RDaGls
ZCA9PSBjaGlsZCA/IG1fbGFzdENoaWxkIDogY2hpbGQtPnRyZWUoKS5tX25leHRTaWJsaW5nLT50
cmVlKCkubV9wcmV2aW91c1NpYmxpbmc7Ci0gICAgc3dhcChuZXdMb2NhdGlvbkZvck5leHQsIGNo
aWxkLT50cmVlKCkubV9uZXh0U2libGluZyk7Ci0gICAgLy8gRm9yIHNvbWUgaW5leHBsaWNhYmxl
IHJlYXNvbiwgdGhlIGZvbGxvd2luZyBsaW5lIGRvZXMgbm90IGNvbXBpbGUgd2l0aG91dCB0aGUg
ZXhwbGljaXQgc3RkOjogbmFtZXNwYWNlCi0gICAgc3RkOjpzd2FwKG5ld0xvY2F0aW9uRm9yUHJl
dmlvdXMsIGNoaWxkLT50cmVlKCkubV9wcmV2aW91c1NpYmxpbmcpOworICAgIEZyYW1lKiYgbmV3
TG9jYXRpb25Gb3JQcmV2aW91cyA9IG1fbGFzdENoaWxkID09ICZjaGlsZCA/IG1fbGFzdENoaWxk
IDogY2hpbGQudHJlZSgpLm1fbmV4dFNpYmxpbmctPnRyZWUoKS5tX3ByZXZpb3VzU2libGluZzsK
KyAgICBSZWZQdHI8RnJhbWU+JiBuZXdMb2NhdGlvbkZvck5leHQgPSBtX2ZpcnN0Q2hpbGQgPT0g
JmNoaWxkID8gbV9maXJzdENoaWxkIDogY2hpbGQudHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nLT50
cmVlKCkubV9uZXh0U2libGluZzsKIAotICAgIGNoaWxkLT50cmVlKCkubV9wcmV2aW91c1NpYmxp
bmcgPSBudWxscHRyOwotICAgIGNoaWxkLT50cmVlKCkubV9uZXh0U2libGluZyA9IG51bGxwdHI7
CisgICAgY2hpbGQudHJlZSgpLm1fcGFyZW50ID0gbnVsbHB0cjsKKyAgICBuZXdMb2NhdGlvbkZv
clByZXZpb3VzID0gc3RkOjpleGNoYW5nZShjaGlsZC50cmVlKCkubV9wcmV2aW91c1NpYmxpbmcs
IG51bGxwdHIpOworICAgIG5ld0xvY2F0aW9uRm9yTmV4dCA9IFdURk1vdmUoY2hpbGQudHJlZSgp
Lm1fbmV4dFNpYmxpbmcpOwogCiAgICAgbV9zY29wZWRDaGlsZENvdW50ID0gaW52YWxpZENvdW50
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmgKaW5kZXggYWIxNmYwYWQ2Mzk2MjVhZTJkNzhjMTc5
ZjEzNTNiYjg0Yzk4YWUxYS4uM2Y4N2MyNzliZGMzYTA2NGZlODg4MDhiNjAzYTJhY2Y3ZjJkYzdl
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNiBBcHBsZSBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUg
c29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTY1LDEw
ICs2NSw5IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBGcmFtZSogdHJhdmVyc2VOZXh0
V2l0aFdyYXAoYm9vbCkgY29uc3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUqIHRyYXZlcnNl
UHJldmlvdXNXaXRoV3JhcChib29sKSBjb25zdDsKICAgICAKLSAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGFwcGVuZENoaWxkKFBhc3NSZWZQdHI8RnJhbWU+KTsKLSAgICBib29sIHRyYW5zZmVyQ2hp
bGQoUGFzc1JlZlB0cjxGcmFtZT4pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwZW5kQ2hp
bGQoRnJhbWUmKTsKICAgICB2b2lkIGRldGFjaEZyb21QYXJlbnQoKSB7IG1fcGFyZW50ID0gbnVs
bHB0cjsgfQotICAgIHZvaWQgcmVtb3ZlQ2hpbGQoRnJhbWUqKTsKKyAgICB2b2lkIHJlbW92ZUNo
aWxkKEZyYW1lJik7CiAKICAgICBGcmFtZSogY2hpbGQodW5zaWduZWQgaW5kZXgpIGNvbnN0Owog
ICAgIEZyYW1lKiBjaGlsZChjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0OwpAQCAtODcs
NyArODYsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgRnJhbWUqIGRlZXBMYXN0Q2hpbGQo
KSBjb25zdDsKLSAgICB2b2lkIGFjdHVhbGx5QXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxGcmFtZT4p
OwogCiAgICAgYm9vbCBzY29wZWRCeShUcmVlU2NvcGUqKSBjb25zdDsKICAgICBGcmFtZSogc2Nv
cGVkQ2hpbGQodW5zaWduZWQgaW5kZXgsIFRyZWVTY29wZSopIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuY3BwCmluZGV4IGQ5NGM5ZDkyMWE0YTQxOTYzZWM4ZGFlNzVjMGI0ZTIzMjYwOTc4
YTIuLjRkNjM4YTJlNzUzYzFlYWI3YmZjMGRjNzhjODczN2QwZTUyYzJhMGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKQEAgLTY3Nyw3ICs2NzcsNyBAQCB2b2lkIEZyYW1lVmlldzo6c2V0
Q29udGVudHNTaXplKGNvbnN0IEludFNpemUmIHNpemUpCiAKICAgICB1cGRhdGVTY3JvbGxhYmxl
QXJlYVNldCgpOwogCi0gICAgcGFnZS0+Y2hyb21lKCkuY29udGVudHNTaXplQ2hhbmdlZCgmZnJh
bWUoKSwgc2l6ZSk7IC8vIE5vdGlmeSBvbmx5LgorICAgIHBhZ2UtPmNocm9tZSgpLmNvbnRlbnRz
U2l6ZUNoYW5nZWQoZnJhbWUoKSwgc2l6ZSk7IC8vIE5vdGlmeSBvbmx5LgogCiAgICAgaWYgKGZy
YW1lKCkuaXNNYWluRnJhbWUoKSkgewogICAgICAgICBmcmFtZSgpLm1haW5GcmFtZSgpLnBhZ2VP
dmVybGF5Q29udHJvbGxlcigpLmRpZENoYW5nZURvY3VtZW50U2l6ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9N
YWluRnJhbWUuY3BwCmluZGV4IDQ4MTc0Y2IyNDM3ZDU5NjBiMjFjNTM4MzZjNTI3MWI2NjBkODg2
YzEuLmExN2JlM2JiNTNhODkyZjViZTYyZDRjNGQ3NzI0ZTBhZDRjZmQ0Y2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL01haW5GcmFtZS5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgdm9pZCBNYWluRnJhbWU6OnNlbGZP
bmx5RGVyZWYoKQogdm9pZCBNYWluRnJhbWU6OmRyb3BDaGlsZHJlbigpCiB7CiAgICAgd2hpbGUg
KEZyYW1lKiBjaGlsZCA9IHRyZWUoKS5maXJzdENoaWxkKCkpCi0gICAgICAgIHRyZWUoKS5yZW1v
dmVDaGlsZChjaGlsZCk7CisgICAgICAgIHRyZWUoKS5yZW1vdmVDaGlsZCgqY2hpbGQpOwogfQog
CiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZGIxN2U2YmFmN2FjZTRj
MjcyNjVjOGVkYjM3MDVmZGIxN2ViMjBiYS4uN2Q2YWYxMTBhNGNkNGRhZGVjZWQyNDU5MDY2Mjcz
MDQyZjNkMGM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0zNjMsNyArMzYzLDcgQEAgVmlld3Bv
cnRBcmd1bWVudHMgUGFnZTo6dmlld3BvcnRBcmd1bWVudHMoKSBjb25zdAogU2Nyb2xsaW5nQ29v
cmRpbmF0b3IqIFBhZ2U6OnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkKIHsKICAgICBpZiAoIW1fc2Ny
b2xsaW5nQ29vcmRpbmF0b3IgJiYgbV9zZXR0aW5ncy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3JFbmFi
bGVkKCkpIHsKLSAgICAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvciA9IGNocm9tZSgpLmNsaWVu
dCgpLmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKHRoaXMpOworICAgICAgICBtX3Njcm9sbGlu
Z0Nvb3JkaW5hdG9yID0gY2hyb21lKCkuY2xpZW50KCkuY3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IoKnRoaXMpOwogICAgICAgICBpZiAoIW1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiAgICAgICAg
ICAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yID0gU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNyZWF0
ZSh0aGlzKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVy
bGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwCmluZGV4IGU3MGJj
YTA1MjNmMGUzOTVmODc3ZmY2M2MxMmFhMzk1NTdhZGVkN2MuLjJjYTg2Zjk4MjgwODE2Mzc4NGYy
YWI3ZmE0M2VlZWJiZWUzNzk1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZU92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwCkBA
IC0yNzQsNyArMjc0LDcgQEAgdm9pZCBQYWdlT3ZlcmxheTo6ZmFkZUFuaW1hdGlvblRpbWVyRmly
ZWQoKQogCiAgICAgICAgIC8vIElmIHRoaXMgd2FzIGEgZmFkZSBvdXQsIHVuaW5zdGFsbCB0aGUg
cGFnZSBvdmVybGF5LgogICAgICAgICBpZiAod2FzRmFkaW5nT3V0KQotICAgICAgICAgICAgY29u
dHJvbGxlcigpLT51bmluc3RhbGxQYWdlT3ZlcmxheSh0aGlzLCBQYWdlT3ZlcmxheTo6RmFkZU1v
ZGU6OkRvTm90RmFkZSk7CisgICAgICAgICAgICBjb250cm9sbGVyKCktPnVuaW5zdGFsbFBhZ2VP
dmVybGF5KCp0aGlzLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAgfQog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKaW5k
ZXggODY2Yjg3MGNiOGU0ZDFiN2U1ZDIxYjNiMTZhYzFlNWM2YjNhYmY4My4uMDU0M2JkNTM0ZDI1
MWJhMzdkY2E0MjFkYTE3ZTJjOTkzYTJkYWYyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05NSwyNyArOTUsMjUgQEAgc3RhdGljIHZvaWQgdXBk
YXRlT3ZlcmxheUdlb21ldHJ5KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBHcmFwaGljc0xheWVyJiBn
cmFwaGljc0wKICAgICBncmFwaGljc0xheWVyLnNldFNpemUob3ZlcmxheUZyYW1lLnNpemUoKSk7
CiB9CiAKLXZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjppbnN0YWxsUGFnZU92ZXJsYXkoUGFz
c1JlZlB0cjxQYWdlT3ZlcmxheT4gcGFnZU92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSBm
YWRlTW9kZSkKK3ZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjppbnN0YWxsUGFnZU92ZXJsYXko
UGFnZU92ZXJsYXkmIG92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSBmYWRlTW9kZSkKIHsK
ICAgICBjcmVhdGVSb290TGF5ZXJzSWZOZWVkZWQoKTsKIAotICAgIFJlZlB0cjxQYWdlT3Zlcmxh
eT4gb3ZlcmxheSA9IHBhZ2VPdmVybGF5OwotCi0gICAgaWYgKG1fcGFnZU92ZXJsYXlzLmNvbnRh
aW5zKG92ZXJsYXkpKQorICAgIGlmIChtX3BhZ2VPdmVybGF5cy5jb250YWlucygmb3ZlcmxheSkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZU92ZXJsYXlzLmFwcGVuZChvdmVybGF5KTsK
KyAgICBtX3BhZ2VPdmVybGF5cy5hcHBlbmQoJm92ZXJsYXkpOwogCiAgICAgc3RkOjp1bmlxdWVf
cHRyPEdyYXBoaWNzTGF5ZXI+IGxheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRlKG1fbWFpbkZy
YW1lLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZ3JhcGhpY3NMYXllckZhY3RvcnkoKSwgKnRo
aXMpOwogICAgIGxheWVyLT5zZXRBbmNob3JQb2ludChGbG9hdFBvaW50M0QoKSk7Ci0gICAgbGF5
ZXItPnNldEJhY2tncm91bmRDb2xvcihvdmVybGF5LT5iYWNrZ3JvdW5kQ29sb3IoKSk7CisgICAg
bGF5ZXItPnNldEJhY2tncm91bmRDb2xvcihvdmVybGF5LmJhY2tncm91bmRDb2xvcigpKTsKICNp
Zm5kZWYgTkRFQlVHCiAgICAgbGF5ZXItPnNldE5hbWUoIlBhZ2UgT3ZlcmxheSBjb250ZW50Iik7
CiAjZW5kaWYKIAogICAgIHVwZGF0ZVNldHRpbmdzRm9yTGF5ZXIoKmxheWVyKTsKIAotICAgIHN3
aXRjaCAob3ZlcmxheS0+b3ZlcmxheVR5cGUoKSkgeworICAgIHN3aXRjaCAob3ZlcmxheS5vdmVy
bGF5VHlwZSgpKSB7CiAgICAgY2FzZSBQYWdlT3ZlcmxheTo6T3ZlcmxheVR5cGU6OlZpZXc6CiAg
ICAgICAgIG1fdmlld092ZXJsYXlSb290TGF5ZXItPmFkZENoaWxkKGxheWVyLmdldCgpKTsKICAg
ICAgICAgYnJlYWs7CkBAIC0xMjUsMzMgKzEyMywzMyBAQCB2b2lkIFBhZ2VPdmVybGF5Q29udHJv
bGxlcjo6aW5zdGFsbFBhZ2VPdmVybGF5KFBhc3NSZWZQdHI8UGFnZU92ZXJsYXk+IHBhZ2VPdmVy
bAogICAgIH0KIAogICAgIEdyYXBoaWNzTGF5ZXImIHJhd0xheWVyID0gKmxheWVyOwotICAgIG1f
b3ZlcmxheUdyYXBoaWNzTGF5ZXJzLnNldChvdmVybGF5LmdldCgpLCBXVEZNb3ZlKGxheWVyKSk7
CisgICAgbV9vdmVybGF5R3JhcGhpY3NMYXllcnMuc2V0KCZvdmVybGF5LCBXVEZNb3ZlKGxheWVy
KSk7CiAKICAgICB1cGRhdGVGb3JjZVN5bmNocm9ub3VzU2Nyb2xsTGF5ZXJQb3NpdGlvblVwZGF0
ZXMoKTsKIAotICAgIG92ZXJsYXktPnNldFBhZ2UobV9tYWluRnJhbWUucGFnZSgpKTsKKyAgICBv
dmVybGF5LnNldFBhZ2UobV9tYWluRnJhbWUucGFnZSgpKTsKIAogICAgIGlmIChGcmFtZVZpZXcq
IGZyYW1lVmlldyA9IG1fbWFpbkZyYW1lLnZpZXcoKSkKICAgICAgICAgZnJhbWVWaWV3LT5lbnRl
ckNvbXBvc2l0aW5nTW9kZSgpOwogCi0gICAgdXBkYXRlT3ZlcmxheUdlb21ldHJ5KCpvdmVybGF5
LCByYXdMYXllcik7CisgICAgdXBkYXRlT3ZlcmxheUdlb21ldHJ5KG92ZXJsYXksIHJhd0xheWVy
KTsKIAogICAgIGlmIChmYWRlTW9kZSA9PSBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpCi0g
ICAgICAgIG92ZXJsYXktPnN0YXJ0RmFkZUluQW5pbWF0aW9uKCk7CisgICAgICAgIG92ZXJsYXku
c3RhcnRGYWRlSW5BbmltYXRpb24oKTsKIH0KIAotdm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6
OnVuaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5KiBvdmVybGF5LCBQYWdlT3ZlcmxheTo6
RmFkZU1vZGUgZmFkZU1vZGUpCit2b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0YWxs
UGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkmIG92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSBm
YWRlTW9kZSkKIHsKICAgICBpZiAoZmFkZU1vZGUgPT0gUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpG
YWRlKSB7Ci0gICAgICAgIG92ZXJsYXktPnN0YXJ0RmFkZU91dEFuaW1hdGlvbigpOworICAgICAg
ICBvdmVybGF5LnN0YXJ0RmFkZU91dEFuaW1hdGlvbigpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgb3ZlcmxheS0+c2V0UGFnZShudWxscHRyKTsKKyAgICBvdmVybGF5LnNldFBhZ2Uo
bnVsbHB0cik7CiAKLSAgICBtX292ZXJsYXlHcmFwaGljc0xheWVycy50YWtlKG92ZXJsYXkpLT5y
ZW1vdmVGcm9tUGFyZW50KCk7CisgICAgbV9vdmVybGF5R3JhcGhpY3NMYXllcnMudGFrZSgmb3Zl
cmxheSktPnJlbW92ZUZyb21QYXJlbnQoKTsKIAotICAgIGJvb2wgcmVtb3ZlZCA9IG1fcGFnZU92
ZXJsYXlzLnJlbW92ZUZpcnN0KG92ZXJsYXkpOworICAgIGJvb2wgcmVtb3ZlZCA9IG1fcGFnZU92
ZXJsYXlzLnJlbW92ZUZpcnN0KCZvdmVybGF5KTsKICAgICBBU1NFUlRfVU5VU0VEKHJlbW92ZWQs
IHJlbW92ZWQpOwogCiAgICAgdXBkYXRlRm9yY2VTeW5jaHJvbm91c1Njcm9sbExheWVyUG9zaXRp
b25VcGRhdGVzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIu
aAppbmRleCAzOTc4MDk4MjAwOGM2NTFmMjg4Yjc5NzZiMWI5MzI5NWFjNTJlN2E0Li42Mzg5NDdj
NjE4NDZhYjA2NzVjZTgwM2FiZjE3NmI2YjcxZGQ4YzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgKQEAgLTM5LDcgKzM5LDYgQEAgY2xhc3MgUGFnZTsK
IGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIAogY2xhc3MgUGFnZU92ZXJsYXlDb250cm9sbGVy
IGZpbmFsIDogcHVibGljIEdyYXBoaWNzTGF5ZXJDbGllbnQgewotICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKFBhZ2VPdmVybGF5Q29udHJvbGxlcik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6CiAgICAgUGFnZU92ZXJsYXlDb250cm9sbGVyKE1haW5GcmFtZSYpOwpAQCAt
NTAsOCArNDksOCBAQCBwdWJsaWM6CiAKICAgICBjb25zdCBWZWN0b3I8UmVmUHRyPFBhZ2VPdmVy
bGF5Pj4mIHBhZ2VPdmVybGF5cygpIGNvbnN0IHsgcmV0dXJuIG1fcGFnZU92ZXJsYXlzOyB9CiAK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGluc3RhbGxQYWdlT3ZlcmxheShQYXNzUmVmUHRyPFBh
Z2VPdmVybGF5PiwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHVuaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5KiwgUGFnZU92ZXJsYXk6OkZhZGVN
b2RlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3Zl
cmxheSYsIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1
bmluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSYsIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSk7
CiAKICAgICB2b2lkIHNldFBhZ2VPdmVybGF5TmVlZHNEaXNwbGF5KFBhZ2VPdmVybGF5JiwgY29u
c3QgSW50UmVjdCYpOwogICAgIHZvaWQgc2V0UGFnZU92ZXJsYXlPcGFjaXR5KFBhZ2VPdmVybGF5
JiwgZmxvYXQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXpl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcAppbmRleCA3ZmZm
MTIzZmY2NDEzNzgyNWM4ZDE5ODAzZGJlY2YzOWM4NjM2OGFmLi45M2QzNzc3YWExYTlmMDc5Zjcx
MDRjOTc0NWQ3ZGExY2NiYmZkNTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VTZXJpYWxpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVy
LmNwcApAQCAtODAsOCArODAsNyBAQCBzdGF0aWMgYm9vbCBpc0NoYXJzZXRTcGVjaWZ5aW5nTm9k
ZShjb25zdCBOb2RlJiBub2RlKQogICAgICAgICAgICAgYXR0cmlidXRlcy5hcHBlbmQoc3RkOjpt
YWtlX3BhaXIoYXR0cmlidXRlLm5hbWUoKS50b1N0cmluZygpLCBhdHRyaWJ1dGUudmFsdWUoKS5z
dHJpbmcoKSkpOwogICAgICAgICB9CiAgICAgfQotICAgIFRleHRFbmNvZGluZyB0ZXh0RW5jb2Rp
bmcgPSBIVE1MTWV0YUNoYXJzZXRQYXJzZXI6OmVuY29kaW5nRnJvbU1ldGFBdHRyaWJ1dGVzKGF0
dHJpYnV0ZXMpOwotICAgIHJldHVybiB0ZXh0RW5jb2RpbmcuaXNWYWxpZCgpOworICAgIHJldHVy
biBIVE1MTWV0YUNoYXJzZXRQYXJzZXI6OmVuY29kaW5nRnJvbU1ldGFBdHRyaWJ1dGVzKGF0dHJp
YnV0ZXMpLmlzVmFsaWQoKTsKIH0KIAogc3RhdGljIGJvb2wgc2hvdWxkSWdub3JlRWxlbWVudChj
b25zdCBFbGVtZW50JiBlbGVtZW50KQpAQCAtOTUsMTAgKzk0LDkgQEAgc3RhdGljIGNvbnN0IFF1
YWxpZmllZE5hbWUmIGZyYW1lT3duZXJVUkxBdHRyaWJ1dGVOYW1lKGNvbnN0IEhUTUxGcmFtZU93
bmVyRWxlbWUKICAgICByZXR1cm4gaXM8SFRNTE9iamVjdEVsZW1lbnQ+KGZyYW1lT3duZXIpID8g
SFRNTE5hbWVzOjpkYXRhQXR0ciA6IEhUTUxOYW1lczo6c3JjQXR0cjsKIH0KIAotY2xhc3MgU2Vy
aWFsaXplck1hcmt1cEFjY3VtdWxhdG9yIGZpbmFsIDogcHVibGljIFdlYkNvcmU6Ok1hcmt1cEFj
Y3VtdWxhdG9yIHsKK2NsYXNzIFBhZ2VTZXJpYWxpemVyOjpTZXJpYWxpemVyTWFya3VwQWNjdW11
bGF0b3IgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TWFya3VwQWNjdW11bGF0b3IgewogcHVibGlj
OgogICAgIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcihQYWdlU2VyaWFsaXplciYsIERvY3Vt
ZW50JiwgVmVjdG9yPE5vZGUqPiopOwotICAgIHZpcnR1YWwgflNlcmlhbGl6ZXJNYXJrdXBBY2N1
bXVsYXRvcigpOwogCiBwcml2YXRlOgogICAgIFBhZ2VTZXJpYWxpemVyJiBtX3NlcmlhbGl6ZXI7
CkBAIC0xMTAsNyArMTA4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFwcGVuZEVuZFRhZyhjb25z
dCBFbGVtZW50Jikgb3ZlcnJpZGU7CiB9OwogCi1TZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6
OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcihQYWdlU2VyaWFsaXplciYgc2VyaWFsaXplciwg
RG9jdW1lbnQmIGRvY3VtZW50LCBWZWN0b3I8Tm9kZSo+KiBub2RlcykKK1BhZ2VTZXJpYWxpemVy
OjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRv
cihQYWdlU2VyaWFsaXplciYgc2VyaWFsaXplciwgRG9jdW1lbnQmIGRvY3VtZW50LCBWZWN0b3I8
Tm9kZSo+KiBub2RlcykKICAgICA6IE1hcmt1cEFjY3VtdWxhdG9yKG5vZGVzLCBSZXNvbHZlQWxs
VVJMcykKICAgICAsIG1fc2VyaWFsaXplcihzZXJpYWxpemVyKQogICAgICwgbV9kb2N1bWVudChk
b2N1bWVudCkKQEAgLTEyMCwxOCArMTE4LDE0IEBAIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRv
cjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yKFBhZ2VTZXJpYWxpemVyJiBzZXJpYWxpCiAg
ICAgICAgIGFwcGVuZFN0cmluZygiPD94bWwgdmVyc2lvbj1cIiIgKyBtX2RvY3VtZW50LnhtbFZl
cnNpb24oKSArICJcIiBlbmNvZGluZz1cIiIgKyBtX2RvY3VtZW50LmNoYXJzZXQoKSArICJcIj8+
Iik7CiB9CiAKLVNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6flNlcmlhbGl6ZXJNYXJrdXBB
Y2N1bXVsYXRvcigpCi17Ci19Ci0KLXZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjph
cHBlbmRUZXh0KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgVGV4dCYgdGV4dCkKK3ZvaWQgUGFn
ZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kVGV4dChTdHJp
bmdCdWlsZGVyJiBvdXQsIGNvbnN0IFRleHQmIHRleHQpCiB7CiAgICAgRWxlbWVudCogcGFyZW50
ID0gdGV4dC5wYXJlbnRFbGVtZW50KCk7CiAgICAgaWYgKHBhcmVudCAmJiAhc2hvdWxkSWdub3Jl
RWxlbWVudCgqcGFyZW50KSkKICAgICAgICAgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQo
b3V0LCB0ZXh0KTsKIH0KIAotdm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVu
ZEVsZW1lbnQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBFbGVtZW50JiBlbGVtZW50LCBOYW1l
c3BhY2VzKiBuYW1lc3BhY2VzKQordm9pZCBQYWdlU2VyaWFsaXplcjo6U2VyaWFsaXplck1hcmt1
cEFjY3VtdWxhdG9yOjphcHBlbmRFbGVtZW50KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgRWxl
bWVudCYgZWxlbWVudCwgTmFtZXNwYWNlcyogbmFtZXNwYWNlcykKIHsKICAgICBpZiAoIXNob3Vs
ZElnbm9yZUVsZW1lbnQoZWxlbWVudCkpCiAgICAgICAgIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBl
bmRFbGVtZW50KG91dCwgZWxlbWVudCwgbmFtZXNwYWNlcyk7CkBAIC0xNDUsNyArMTM5LDcgQEAg
dm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVsZW1lbnQoU3RyaW5nQnVp
bGRlciYgb3V0LCBjb25zdCBFbGVtZW4KICAgICAvLyBGSVhNRTogRm9yIG9iamVjdCAocGx1Z2lu
cykgdGFncyBhbmQgdmlkZW8gdGFnIHdlIGNvdWxkIHJlcGxhY2UgdGhlbSBieSBhbiBpbWFnZSBv
ZiB0aGVpciBjdXJyZW50IGNvbnRlbnRzLgogfQogCi12b2lkIFNlcmlhbGl6ZXJNYXJrdXBBY2N1
bXVsYXRvcjo6YXBwZW5kQ3VzdG9tQXR0cmlidXRlcyhTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0
IEVsZW1lbnQmIGVsZW1lbnQsIE5hbWVzcGFjZXMqIG5hbWVzcGFjZXMpCit2b2lkIFBhZ2VTZXJp
YWxpemVyOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEN1c3RvbUF0dHJpYnV0
ZXMoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBFbGVtZW50JiBlbGVtZW50LCBOYW1lc3BhY2Vz
KiBuYW1lc3BhY2VzKQogewogICAgIGlmICghaXM8SFRNTEZyYW1lT3duZXJFbGVtZW50PihlbGVt
ZW50KSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTY0LDMyICsxNTgsMjAgQEAgdm9pZCBTZXJpYWxp
emVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEN1c3RvbUF0dHJpYnV0ZXMoU3RyaW5nQnVpbGRl
ciYgb3V0LCBjb24KICAgICBhcHBlbmRBdHRyaWJ1dGUob3V0LCBlbGVtZW50LCBBdHRyaWJ1dGUo
ZnJhbWVPd25lclVSTEF0dHJpYnV0ZU5hbWUoZnJhbWVPd25lciksIHVybC5zdHJpbmcoKSksIG5h
bWVzcGFjZXMpOwogfQogCi12b2lkIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5k
RW5kVGFnKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCit2b2lkIFBhZ2VTZXJpYWxpemVyOjpTZXJp
YWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVuZFRhZyhjb25zdCBFbGVtZW50JiBlbGVt
ZW50KQogewogICAgIGlmICghc2hvdWxkSWdub3JlRWxlbWVudChlbGVtZW50KSkKICAgICAgICAg
TWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVuZFRhZyhlbGVtZW50KTsKIH0KIAotUGFnZVNlcmlh
bGl6ZXI6OlJlc291cmNlOjpSZXNvdXJjZSgpCi17Ci19Ci0KLVBhZ2VTZXJpYWxpemVyOjpSZXNv
dXJjZTo6UmVzb3VyY2UoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhKQotICAgIDogdXJsKHVybCkKLSAgICAsIG1pbWVU
eXBlKG1pbWVUeXBlKQotICAgICwgZGF0YShkYXRhKQotewotfQotCi1QYWdlU2VyaWFsaXplcjo6
UGFnZVNlcmlhbGl6ZXIoVmVjdG9yPFBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZT4qIHJlc291cmNl
cykKK1BhZ2VTZXJpYWxpemVyOjpQYWdlU2VyaWFsaXplcihWZWN0b3I8UGFnZVNlcmlhbGl6ZXI6
OlJlc291cmNlPiYgcmVzb3VyY2VzKQogICAgIDogbV9yZXNvdXJjZXMocmVzb3VyY2VzKQotICAg
ICwgbV9ibGFua0ZyYW1lQ291bnRlcigwKQogewogfQogCi12b2lkIFBhZ2VTZXJpYWxpemVyOjpz
ZXJpYWxpemUoUGFnZSogcGFnZSkKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShQYWdl
JiBwYWdlKQogewotICAgIHNlcmlhbGl6ZUZyYW1lKCZwYWdlLT5tYWluRnJhbWUoKSk7CisgICAg
c2VyaWFsaXplRnJhbWUoJnBhZ2UubWFpbkZyYW1lKCkpOwogfQogCiB2b2lkIFBhZ2VTZXJpYWxp
emVyOjpzZXJpYWxpemVGcmFtZShGcmFtZSogZnJhbWUpCkBAIC0yMTgsNyArMjAwLDcgQEAgdm9p
ZCBQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplRnJhbWUoRnJhbWUqIGZyYW1lKQogICAgIH0KICAg
ICBTdHJpbmcgdGV4dCA9IGFjY3VtdWxhdG9yLnNlcmlhbGl6ZU5vZGVzKCpkb2N1bWVudC0+ZG9j
dW1lbnRFbGVtZW50KCksIEluY2x1ZGVOb2RlKTsKICAgICBDU3RyaW5nIGZyYW1lSFRNTCA9IHRl
eHRFbmNvZGluZy5lbmNvZGUodGV4dCwgRW50aXRpZXNGb3JVbmVuY29kYWJsZXMpOwotICAgIG1f
cmVzb3VyY2VzLT5hcHBlbmQoUmVzb3VyY2UodXJsLCBkb2N1bWVudC0+c3VnZ2VzdGVkTUlNRVR5
cGUoKSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUoZnJhbWVIVE1MLmRhdGEoKSwgZnJhbWVIVE1MLmxl
bmd0aCgpKSkpOworICAgIG1fcmVzb3VyY2VzLmFwcGVuZCh7IHVybCwgZG9jdW1lbnQtPnN1Z2dl
c3RlZE1JTUVUeXBlKCksIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGZyYW1lSFRNTC5kYXRhKCksIGZy
YW1lSFRNTC5sZW5ndGgoKSkgfSk7CiAgICAgbV9yZXNvdXJjZVVSTHMuYWRkKHVybCk7CiAKICAg
ICBmb3IgKGF1dG8mIG5vZGUgOiBub2RlcykgewpAQCAtMjg0LDcgKzI2Niw3IEBAIHZvaWQgUGFn
ZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUNTU1N0eWxlU2hlZXQoQ1NTU3R5bGVTaGVldCogc3R5bGVT
aGVldCwgY29uc3QgVVJMCiAgICAgICAgIEFTU0VSVCh0ZXh0RW5jb2RpbmcuaXNWYWxpZCgpKTsK
ICAgICAgICAgU3RyaW5nIHRleHRTdHJpbmcgPSBjc3NUZXh0LnRvU3RyaW5nKCk7CiAgICAgICAg
IENTdHJpbmcgdGV4dCA9IHRleHRFbmNvZGluZy5lbmNvZGUodGV4dFN0cmluZywgRW50aXRpZXNG
b3JVbmVuY29kYWJsZXMpOwotICAgICAgICBtX3Jlc291cmNlcy0+YXBwZW5kKFJlc291cmNlKHVy
bCwgU3RyaW5nKCJ0ZXh0L2NzcyIpLCBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh0ZXh0LmRhdGEoKSwg
dGV4dC5sZW5ndGgoKSkpKTsKKyAgICAgICAgbV9yZXNvdXJjZXMuYXBwZW5kKHsgdXJsLCBBU0NJ
SUxpdGVyYWwgeyAidGV4dC9jc3MiIH0sIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHRleHQuZGF0YSgp
LCB0ZXh0Lmxlbmd0aCgpKSB9KTsKICAgICAgICAgbV9yZXNvdXJjZVVSTHMuYWRkKHVybCk7CiAg
ICAgfQogfQpAQCAtMzA2LDggKzI4OCw3IEBAIHZvaWQgUGFnZVNlcmlhbGl6ZXI6OmFkZEltYWdl
VG9SZXNvdXJjZXMoQ2FjaGVkSW1hZ2UqIGltYWdlLCBSZW5kZXJFbGVtZW50KiBpbWFnCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBTdHJpbmcgbWltZVR5cGUgPSBpbWFnZS0+cmVzcG9u
c2UoKS5taW1lVHlwZSgpOwotICAgIG1fcmVzb3VyY2VzLT5hcHBlbmQoUmVzb3VyY2UodXJsLCBt
aW1lVHlwZSwgZGF0YSkpOworICAgIG1fcmVzb3VyY2VzLmFwcGVuZCh7IHVybCwgaW1hZ2UtPnJl
c3BvbnNlKCkubWltZVR5cGUoKSwgV1RGTW92ZShkYXRhKSB9KTsKICAgICBtX3Jlc291cmNlVVJM
cy5hZGQodXJsKTsKIH0KIApAQCAtMzM0LDIwICszMTUsMTggQEAgdm9pZCBQYWdlU2VyaWFsaXpl
cjo6cmV0cmlldmVSZXNvdXJjZXNGb3JQcm9wZXJ0aWVzKGNvbnN0IFN0eWxlUHJvcGVydGllcyog
c3R5bGUKICAgICAgICAgaWYgKCFpbWFnZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAg
ICAgIFVSTCB1cmwgPSBkb2N1bWVudC0+Y29tcGxldGVVUkwoaW1hZ2UtPnVybCgpKTsKLSAgICAg
ICAgYWRkSW1hZ2VUb1Jlc291cmNlcyhpbWFnZSwgbnVsbHB0ciwgdXJsKTsKKyAgICAgICAgYWRk
SW1hZ2VUb1Jlc291cmNlcyhpbWFnZSwgbnVsbHB0ciwgZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGlt
YWdlLT51cmwoKSkpOwogICAgIH0KIH0KIAogVVJMIFBhZ2VTZXJpYWxpemVyOjp1cmxGb3JCbGFu
a0ZyYW1lKEZyYW1lKiBmcmFtZSkKIHsKLSAgICBIYXNoTWFwPEZyYW1lKiwgVVJMPjo6aXRlcmF0
b3IgaXRlciA9IG1fYmxhbmtGcmFtZVVSTHMuZmluZChmcmFtZSk7CisgICAgYXV0byBpdGVyID0g
bV9ibGFua0ZyYW1lVVJMcy5maW5kKGZyYW1lKTsKICAgICBpZiAoaXRlciAhPSBtX2JsYW5rRnJh
bWVVUkxzLmVuZCgpKQogICAgICAgICByZXR1cm4gaXRlci0+dmFsdWU7CiAgICAgU3RyaW5nIHVy
bCA9ICJ3eWNpd3lnOi8vZnJhbWUvIiArIFN0cmluZzo6bnVtYmVyKG1fYmxhbmtGcmFtZUNvdW50
ZXIrKyk7CiAgICAgVVJMIGZha2VVUkwoUGFyc2VkVVJMU3RyaW5nLCB1cmwpOwogICAgIG1fYmxh
bmtGcmFtZVVSTHMuYWRkKGZyYW1lLCBmYWtlVVJMKTsKLQogICAgIHJldHVybiBmYWtlVVJMOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmgKaW5kZXggYTFiNDdiOWRiYmMwMzRi
MTcyOTM1NGMwODIxYWFiZGQ1NzYyZWVhYy4uZDU3NDNiYzRmNjE0NjI5MjI4YzNmZmYwYTRiZWRj
Yjg3NTBjMTFmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXpl
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuaApAQCAtMzAsNyAr
MzAsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIlVSTC5oIgogI2luY2x1ZGUgIlVS
TEhhc2guaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgpAQCAtNTYsMjAgKzU1LDIwIEBAIHB1YmxpYzoKICAgICAgICAgVVJMIHVybDsKICAgICAg
ICAgU3RyaW5nIG1pbWVUeXBlOwogICAgICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhOwot
ICAgICAgICBSZXNvdXJjZSgpOwotICAgICAgICBSZXNvdXJjZShjb25zdCBVUkwmLCBjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSk7CiAgICAgfTsK
IAotICAgIGV4cGxpY2l0IFBhZ2VTZXJpYWxpemVyKFZlY3RvcjxSZXNvdXJjZT4qKTsKKyAgICBl
eHBsaWNpdCBQYWdlU2VyaWFsaXplcihWZWN0b3I8UmVzb3VyY2U+Jik7CiAKICAgICAvLyBJbml0
aWF0ZXMgdGhlIHNlcmlhbGl6YXRpb24gb2YgdGhlIGZyYW1lJ3MgcGFnZS4gQWxsIHNlcmlhbGl6
ZWQgY29udGVudCBhbmQgcmV0cmlldmVkCiAgICAgLy8gcmVzb3VyY2VzIGFyZSBhZGRlZCB0byB0
aGUgVmVjdG9yIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3IuIFRoZSBmaXJzdCByZXNvdXJjZSBp
biB0aGF0CiAgICAgLy8gdmVjdG9yIGlzIHRoZSB0b3AgZnJhbWUgc2VyaWFsaXplZCBjb250ZW50
LgotICAgIHZvaWQgc2VyaWFsaXplKFBhZ2UqKTsKKyAgICB2b2lkIHNlcmlhbGl6ZShQYWdlJik7
CisKK3ByaXZhdGU6CisgICAgY2xhc3MgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOwogCiAg
ICAgVVJMIHVybEZvckJsYW5rRnJhbWUoRnJhbWUqKTsKIAotcHJpdmF0ZToKICAgICB2b2lkIHNl
cmlhbGl6ZUZyYW1lKEZyYW1lKik7CiAKICAgICAvLyBTZXJpYWxpemVzIHRoZSBzdHlsZXNoZWV0
IGJhY2sgdG8gdGV4dCBhbmQgYWRkcyBpdCB0byB0aGUgcmVzb3VyY2VzIGlmIFVSTCBpcyBub3Qt
ZW1wdHkuCkBAIC04MCwxMCArNzksMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJldHJpZXZlUmVz
b3VyY2VzRm9yUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMqLCBEb2N1bWVudCopOwog
ICAgIHZvaWQgcmV0cmlldmVSZXNvdXJjZXNGb3JSdWxlKFN0eWxlUnVsZSYsIERvY3VtZW50Kik7
CiAKLSAgICBWZWN0b3I8UmVzb3VyY2U+KiBtX3Jlc291cmNlczsKKyAgICBWZWN0b3I8UmVzb3Vy
Y2U+JiBtX3Jlc291cmNlczsKICAgICBMaXN0SGFzaFNldDxVUkw+IG1fcmVzb3VyY2VVUkxzOwog
ICAgIEhhc2hNYXA8RnJhbWUqLCBVUkw+IG1fYmxhbmtGcmFtZVVSTHM7Ci0gICAgdW5zaWduZWQg
bV9ibGFua0ZyYW1lQ291bnRlcjsKKyAgICB1bnNpZ25lZCBtX2JsYW5rRnJhbWVDb3VudGVyIHsg
MCB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlRW50cnkuaAppbmRleCBiM2E4NGEzYTlkY2E4MmJiZmE4YjM0MDc0YmVjYzczYjQ4N2Vk
YWFlLi5mOGQ2Y2E3ZmVjODBjMGZmZTZhOTg2ZWJmZTQ4MWViMzQ1MGJjYmM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnkuaApAQCAtMzQsNyArMzQsNiBAQAogI2lmIEVOQUJM
RShXRUJfVElNSU5HKQogCiAjaW5jbHVkZSAiUGVyZm9ybWFuY2UuaCIKLSNpbmNsdWRlIDx3dGYv
UGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3Rm
L1R5cGVDYXN0cy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtNTQsNyAr
NTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTWFyaygpIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzTWVhc3VyZSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CiAKLSAgICBzdGF0aWMgYm9vbCBzdGFydFRpbWVDb21wYXJlTGVzc1RoYW4oUGFzc1Jl
ZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBhLCBQYXNzUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+IGIp
CisgICAgc3RhdGljIGJvb2wgc3RhcnRUaW1lQ29tcGFyZUxlc3NUaGFuKGNvbnN0IFJlZlB0cjxQ
ZXJmb3JtYW5jZUVudHJ5PiYgYSwgY29uc3QgUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+JiBiKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGEtPnN0YXJ0VGltZSgpIDwgYi0+c3RhcnRUaW1lKCk7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1p
bmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwCmlu
ZGV4IGQ5NTMxODA1NDcwZjhlZWNhNDI4NzYzYjdjYTFlYWM1M2UxNzNiNmYuLjlhNmM3YWNlMzk0
MGVlMzhkNjU3ZWJiYTM1YTE4MzYzODgwYTQ5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAKQEAgLTg3LDE0ICs4NywxNCBAQCBVc2VyVGltaW5n
OjpVc2VyVGltaW5nKFBlcmZvcm1hbmNlJiBwZXJmb3JtYW5jZSkKIHsKIH0KIAotc3RhdGljIHZv
aWQgaW5zZXJ0UGVyZm9ybWFuY2VFbnRyeShQZXJmb3JtYW5jZUVudHJ5TWFwJiBwZXJmb3JtYW5j
ZUVudHJ5TWFwLCBQYXNzUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+IHBlcmZvcm1hbmNlRW50cnkp
CitzdGF0aWMgdm9pZCBpbnNlcnRQZXJmb3JtYW5jZUVudHJ5KFBlcmZvcm1hbmNlRW50cnlNYXAm
IHBlcmZvcm1hbmNlRW50cnlNYXAsIFJlZjxQZXJmb3JtYW5jZUVudHJ5PiYmIHBlcmZvcm1hbmNl
RW50cnkpCiB7Ci0gICAgUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+IGVudHJ5ID0gcGVyZm9ybWFu
Y2VFbnRyeTsKLSAgICBQZXJmb3JtYW5jZUVudHJ5TWFwOjppdGVyYXRvciBpdCA9IHBlcmZvcm1h
bmNlRW50cnlNYXAuZmluZChlbnRyeS0+bmFtZSgpKTsKKyAgICBSZWZQdHI8UGVyZm9ybWFuY2VF
bnRyeT4gZW50cnkgPSBXVEZNb3ZlKHBlcmZvcm1hbmNlRW50cnkpOworICAgIGF1dG8gaXQgPSBw
ZXJmb3JtYW5jZUVudHJ5TWFwLmZpbmQoZW50cnktPm5hbWUoKSk7CiAgICAgaWYgKGl0ICE9IHBl
cmZvcm1hbmNlRW50cnlNYXAuZW5kKCkpCi0gICAgICAgIGl0LT52YWx1ZS5hcHBlbmQoZW50cnkp
OworICAgICAgICBpdC0+dmFsdWUuYXBwZW5kKFdURk1vdmUoZW50cnkpKTsKICAgICBlbHNlCi0g
ICAgICAgIHBlcmZvcm1hbmNlRW50cnlNYXAuc2V0KGVudHJ5LT5uYW1lKCksIFZlY3RvcjxSZWZQ
dHI8UGVyZm9ybWFuY2VFbnRyeT4+eyBlbnRyeSB9KTsKKyAgICAgICAgcGVyZm9ybWFuY2VFbnRy
eU1hcC5zZXQoZW50cnktPm5hbWUoKSwgVmVjdG9yPFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5Pj4g
eyBXVEZNb3ZlKGVudHJ5KSB9KTsKIH0KIAogc3RhdGljIHZvaWQgY2xlYXJQZWZvcm1hbmNlRW50
cmllcyhQZXJmb3JtYW5jZUVudHJ5TWFwJiBwZXJmb3JtYW5jZUVudHJ5TWFwLCBjb25zdCBTdHJp
bmcmIG5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNlVXNhZ2VP
dmVybGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZU92ZXJsYXkuY3Bw
CmluZGV4IGFlODExMmNhMjYzOTkxNmY0MTQ1ZTkzMjNkZTBkMmYyODE5NWFjYjAuLmU3NDNkODgw
ZTIwY2IxZmRmODU3MDE2MGQwYjFhZDU4MzkyOWI4ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUmVzb3VyY2VVc2FnZU92ZXJsYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUmVzb3VyY2VVc2FnZU92ZXJsYXkuY3BwCkBAIC01Myw3ICs1Myw3IEBAIFJlc291cmNlVXNh
Z2VPdmVybGF5Ojp+UmVzb3VyY2VVc2FnZU92ZXJsYXkoKQogCiAgICAgLy8gRklYTUU6IFRoaXMg
aXMgYSBoYWNrIHNvIHdlIGRvbid0IHRyeSB0byB1bmluc3RhbGwgdGhlIFBhZ2VPdmVybGF5IGR1
cmluZyBQYWdlIGRlc3RydWN0aW9uLgogICAgIGlmIChtX3BhZ2UubWFpbkZyYW1lKCkucGFnZSgp
KQotICAgICAgICBtX3BhZ2UubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5p
bnN0YWxsUGFnZU92ZXJsYXkobV9vdmVybGF5LmdldCgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6
OkRvTm90RmFkZSk7CisgICAgICAgIG1fcGFnZS5tYWluRnJhbWUoKS5wYWdlT3ZlcmxheUNvbnRy
b2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqbV9vdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFk
ZU1vZGU6OkRvTm90RmFkZSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VVc2FnZU92ZXJsYXk6OmluaXRp
YWxpemUoKQpAQCAtNzIsNyArNzIsNyBAQCB2b2lkIFJlc291cmNlVXNhZ2VPdmVybGF5Ojppbml0
aWFsaXplKCkKIAogICAgIG1fb3ZlcmxheS0+c2V0RnJhbWUoaW5pdGlhbFJlY3QpOwogICAgIG1f
b3ZlcmxheS0+c2V0U2hvdWxkSWdub3JlTW91c2VFdmVudHNPdXRzaWRlQm91bmRzKGZhbHNlKTsK
LSAgICBtX3BhZ2UubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBh
Z2VPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZh
ZGUpOworICAgIG1fcGFnZS5tYWluRnJhbWUoKS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0
YWxsUGFnZU92ZXJsYXkoKm1fb3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZh
ZGUpOwogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKaW5kZXggNWFkZTAwMjJlYmMwZDg0ZDI3ODY4
ZmUyNGI1NGQ2NmE2MWU3N2U1OC4uMmRkMGMzMDllMDU4MmYzNWNmOTM2ZjUwYWNkOWMxYWMzNDE2
MzU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9u
QmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2Uu
aApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIkFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkNT
U1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJSZW5kZXJTdHlsZUNvbnN0YW50cy5oIgotI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5n
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKaW5kZXggNTg4OTZkYjJmMWU5ZmQ0
NTM3OGIzNjdjMDBlYzcxN2JiMTNlNDk5Yy4uNGM0MGM5MjNhMjNlMjMzODg0MDg0MmU4ODNjZTA1
ZGIxZTdiZGQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
QW5pbWF0aW9uQ29udHJvbGxlci5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBib29sIEFuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlOjpjbGVhcihSZW5kZXJFbGVtZW50JiByZW5kZXJlcikKICAgICBF
bGVtZW50KiBlbGVtZW50ID0gcmVuZGVyZXIuZWxlbWVudCgpOwogCiAgICAgbV9ldmVudHNUb0Rp
c3BhdGNoLnJlbW92ZUFsbE1hdGNoaW5nKFtlbGVtZW50XSAoY29uc3QgRXZlbnRUb0Rpc3BhdGNo
JiBpbmZvKSB7Ci0gICAgICAgIHJldHVybiBpbmZvLmVsZW1lbnQgPT0gZWxlbWVudDsKKyAgICAg
ICAgcmV0dXJuIGluZm8uZWxlbWVudC5wdHIoKSA9PSBlbGVtZW50OwogICAgIH0pOwogCiAgICAg
bV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2gucmVtb3ZlQWxsTWF0Y2hpbmcoW2VsZW1lbnRdKGF1
dG8mIGN1cnJlbnRFbGVtZW50KSB7CkBAIC0yMDMsNyArMjAzLDcgQEAgdm9pZCBBbmltYXRpb25D
b250cm9sbGVyUHJpdmF0ZTo6ZmlyZUV2ZW50c0FuZFVwZGF0ZVN0eWxlKCkKICAgICAvLyBmaXJl
IGFsbCB0aGUgZXZlbnRzCiAgICAgVmVjdG9yPEV2ZW50VG9EaXNwYXRjaD4gZXZlbnRzVG9EaXNw
YXRjaCA9IFdURk1vdmUobV9ldmVudHNUb0Rpc3BhdGNoKTsKICAgICBmb3IgKGF1dG8mIGV2ZW50
IDogZXZlbnRzVG9EaXNwYXRjaCkgewotICAgICAgICBFbGVtZW50JiBlbGVtZW50ID0gKmV2ZW50
LmVsZW1lbnQ7CisgICAgICAgIEVsZW1lbnQmIGVsZW1lbnQgPSBldmVudC5lbGVtZW50OwogICAg
ICAgICBpZiAoZXZlbnQuZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS50cmFuc2l0aW9uZW5kRXZl
bnQpCiAgICAgICAgICAgICBlbGVtZW50LmRpc3BhdGNoRXZlbnQoVHJhbnNpdGlvbkV2ZW50Ojpj
cmVhdGUoZXZlbnQuZXZlbnRUeXBlLCBldmVudC5uYW1lLCBldmVudC5lbGFwc2VkVGltZSwgUHNl
dWRvRWxlbWVudDo6cHNldWRvRWxlbWVudE5hbWVGb3JFdmVudHMoZWxlbWVudC5wc2V1ZG9JZCgp
KSkpOwogICAgICAgICBlbHNlCkBAIC0yMjUsMjEgKzIyNSwxNSBAQCB2b2lkIEFuaW1hdGlvbkNv
bnRyb2xsZXJQcml2YXRlOjpzdGFydFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCkKICAg
ICAgICAgbV91cGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hlci5zdGFydE9uZVNob3QoMCk7CiB9
CiAKLXZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFkZEV2ZW50VG9EaXNwYXRjaChQ
YXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSkKK3ZvaWQgQW5pbWF0aW9u
Q29udHJvbGxlclByaXZhdGU6OmFkZEV2ZW50VG9EaXNwYXRjaChFbGVtZW50JiBlbGVtZW50LCBj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUg
ZWxhcHNlZFRpbWUpCiB7Ci0gICAgbV9ldmVudHNUb0Rpc3BhdGNoLmdyb3cobV9ldmVudHNUb0Rp
c3BhdGNoLnNpemUoKSsxKTsKLSAgICBFdmVudFRvRGlzcGF0Y2gmIGV2ZW50ID0gbV9ldmVudHNU
b0Rpc3BhdGNoW21fZXZlbnRzVG9EaXNwYXRjaC5zaXplKCktMV07Ci0gICAgZXZlbnQuZWxlbWVu
dCA9IGVsZW1lbnQ7Ci0gICAgZXZlbnQuZXZlbnRUeXBlID0gZXZlbnRUeXBlOwotICAgIGV2ZW50
Lm5hbWUgPSBuYW1lOwotICAgIGV2ZW50LmVsYXBzZWRUaW1lID0gZWxhcHNlZFRpbWU7Ci0gICAg
CisgICAgbV9ldmVudHNUb0Rpc3BhdGNoLmFwcGVuZCh7IGVsZW1lbnQsIGV2ZW50VHlwZSwgbmFt
ZSwgZWxhcHNlZFRpbWUgfSk7CiAgICAgc3RhcnRVcGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hl
cigpOwogfQogCi12b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFbGVtZW50Q2hh
bmdlVG9EaXNwYXRjaChSZWY8RWxlbWVudD4mJiBlbGVtZW50KQordm9pZCBBbmltYXRpb25Db250
cm9sbGVyUHJpdmF0ZTo6YWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2goRWxlbWVudCYgZWxlbWVu
dCkKIHsKLSAgICBtX2VsZW1lbnRDaGFuZ2VzVG9EaXNwYXRjaC5hcHBlbmQoV1RGTW92ZShlbGVt
ZW50KSk7CisgICAgbV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2guYXBwZW5kKGVsZW1lbnQpOwog
ICAgIEFTU0VSVChtX2VsZW1lbnRDaGFuZ2VzVG9EaXNwYXRjaC5sYXN0KCktPmRvY3VtZW50KCku
cGFnZUNhY2hlU3RhdGUoKSA9PSBEb2N1bWVudDo6Tm90SW5QYWdlQ2FjaGUpOwogICAgIHN0YXJ0
VXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCmlu
ZGV4IGZiOWNjODJiODE1MTdkMGJhMzI3M2YzODBmMjBiY2Q4YTk4NjFmNTguLjQ5YWQzZjljOTU0
MjU1YzMxZDBmYmZmYTRjNjI2OGIwNjc5MjE3ZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaApAQCAt
MjksMzMgKzI5LDIxIEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFuaW1hdGlvbkJhc2Uu
aCIKLSNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVk
ZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgotI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IEFuaW1hdGlvbkJhc2U7CiBjbGFzcyBDb21wb3NpdGVBbmltYXRpb247CiBjbGFzcyBEb2N1bWVu
dDsKLWNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGcmFtZTsKLWNsYXNzIFJlbmRlckVsZW1lbnQ7Ci1j
bGFzcyBSZW5kZXJTdHlsZTsKIAotZW51bSBTZXRDaGFuZ2VkIHsKLSAgICBEb05vdENhbGxTZXRD
aGFuZ2VkID0gMCwKLSAgICBDYWxsU2V0Q2hhbmdlZCA9IDEKLX07CitlbnVtIFNldENoYW5nZWQg
eyBEb05vdENhbGxTZXRDaGFuZ2VkLCBDYWxsU2V0Q2hhbmdlZCB9OwogCiBjbGFzcyBBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZSB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQW5pbWF0aW9u
Q29udHJvbGxlclByaXZhdGUpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBBbmltYXRpb25Db250cm9s
bGVyUHJpdmF0ZShGcmFtZSYpOwogICAgIH5BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZSgpOwpA
QCAtNjksOCArNTcsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHVwZGF0ZVN0eWxlSWZOZWVkZWRE
aXNwYXRjaGVyRmlyZWQoKTsKICAgICB2b2lkIHN0YXJ0VXBkYXRlU3R5bGVJZk5lZWRlZERpc3Bh
dGNoZXIoKTsKLSAgICB2b2lkIGFkZEV2ZW50VG9EaXNwYXRjaChQYXNzUmVmUHRyPEVsZW1lbnQ+
IGVsZW1lbnQsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIG5h
bWUsIGRvdWJsZSBlbGFwc2VkVGltZSk7Ci0gICAgdm9pZCBhZGRFbGVtZW50Q2hhbmdlVG9EaXNw
YXRjaChSZWY8RWxlbWVudD4mJik7CisgICAgdm9pZCBhZGRFdmVudFRvRGlzcGF0Y2goRWxlbWVu
dCYsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGRv
dWJsZSBlbGFwc2VkVGltZSk7CisgICAgdm9pZCBhZGRFbGVtZW50Q2hhbmdlVG9EaXNwYXRjaChF
bGVtZW50Jik7CiAKICAgICBib29sIGhhc0FuaW1hdGlvbnMoKSBjb25zdCB7IHJldHVybiAhbV9j
b21wb3NpdGVBbmltYXRpb25zLmlzRW1wdHkoKTsgfQogCkBAIC0xMzQsMjEgKzEyMiwxOSBAQCBw
cml2YXRlOgogICAgIFRpbWVyIG1fYW5pbWF0aW9uVGltZXI7CiAgICAgVGltZXIgbV91cGRhdGVT
dHlsZUlmTmVlZGVkRGlzcGF0Y2hlcjsKICAgICBGcmFtZSYgbV9mcmFtZTsKLSAgICAKLSAgICBj
bGFzcyBFdmVudFRvRGlzcGF0Y2ggewotICAgIHB1YmxpYzoKLSAgICAgICAgUmVmUHRyPEVsZW1l
bnQ+IGVsZW1lbnQ7CisKKyAgICBzdHJ1Y3QgRXZlbnRUb0Rpc3BhdGNoIHsKKyAgICAgICAgUmVm
PEVsZW1lbnQ+IGVsZW1lbnQ7CiAgICAgICAgIEF0b21pY1N0cmluZyBldmVudFR5cGU7CiAgICAg
ICAgIFN0cmluZyBuYW1lOwogICAgICAgICBkb3VibGUgZWxhcHNlZFRpbWU7CiAgICAgfTsKLSAg
ICAKICAgICBWZWN0b3I8RXZlbnRUb0Rpc3BhdGNoPiBtX2V2ZW50c1RvRGlzcGF0Y2g7CiAgICAg
VmVjdG9yPFJlZjxFbGVtZW50Pj4gbV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2g7CiAgICAgCiAg
ICAgZG91YmxlIG1fYmVnaW5BbmltYXRpb25VcGRhdGVUaW1lOwogCi0gICAgdHlwZWRlZiBIYXNo
U2V0PFJlZlB0cjxBbmltYXRpb25CYXNlPj4gQW5pbWF0aW9uc1NldDsKKyAgICB1c2luZyBBbmlt
YXRpb25zU2V0ID0gSGFzaFNldDxSZWZQdHI8QW5pbWF0aW9uQmFzZT4+OwogICAgIEFuaW1hdGlv
bnNTZXQgbV9hbmltYXRpb25zV2FpdGluZ0ZvclN0eWxlOwogICAgIEFuaW1hdGlvbnNTZXQgbV9h
bmltYXRpb25zV2FpdGluZ0ZvclN0YXJ0VGltZVJlc3BvbnNlOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKaW5kZXgg
OWY2YjkxN2M2ZWMxYzZmZWJiYTY5NDBhMTY3MDViZGJkNWFjNzRjZi4uOGM1NDAzYTRjMTk2Mzdh
YTYyMWRlNmE0MDcxNjA3MWFlNzgzNTAyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcApAQCAtMTI1LDcgKzEyNSw3
IEBAIHN0YXRpYyBpbmxpbmUgVHJhbnNmb3JtT3BlcmF0aW9ucyBibGVuZEZ1bmMoY29uc3QgQW5p
bWF0aW9uQmFzZSogYW5pbWF0aW9uLCBjb25zCiAgICAgcmV0dXJuIHRvLmJsZW5kQnlVc2luZ01h
dHJpeEludGVycG9sYXRpb24oZnJvbSwgcHJvZ3Jlc3MsIGlzPFJlbmRlckJveD4oKmFuaW1hdGlv
bi0+cmVuZGVyZXIoKSkgPyBkb3duY2FzdDxSZW5kZXJCb3g+KCphbmltYXRpb24tPnJlbmRlcmVy
KCkpLmJvcmRlckJveFJlY3QoKS5zaXplKCkgOiBMYXlvdXRTaXplKCkpOwogfQogCi1zdGF0aWMg
aW5saW5lIFBhc3NSZWZQdHI8Q2xpcFBhdGhPcGVyYXRpb24+IGJsZW5kRnVuYyhjb25zdCBBbmlt
YXRpb25CYXNlKiwgQ2xpcFBhdGhPcGVyYXRpb24qIGZyb20sIENsaXBQYXRoT3BlcmF0aW9uKiB0
bywgZG91YmxlIHByb2dyZXNzKQorc3RhdGljIGlubGluZSBSZWZQdHI8Q2xpcFBhdGhPcGVyYXRp
b24+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgQ2xpcFBhdGhPcGVyYXRpb24qIGZy
b20sIENsaXBQYXRoT3BlcmF0aW9uKiB0bywgZG91YmxlIHByb2dyZXNzKQogewogICAgIGlmICgh
ZnJvbSB8fCAhdG8pCiAgICAgICAgIHJldHVybiB0bzsKQEAgLTE0Myw3ICsxNDMsNyBAQCBzdGF0
aWMgaW5saW5lIFBhc3NSZWZQdHI8Q2xpcFBhdGhPcGVyYXRpb24+IGJsZW5kRnVuYyhjb25zdCBB
bmltYXRpb25CYXNlKiwgQ2xpcAogICAgIHJldHVybiBTaGFwZUNsaXBQYXRoT3BlcmF0aW9uOjpj
cmVhdGUodG9TaGFwZS5ibGVuZChmcm9tU2hhcGUsIHByb2dyZXNzKSk7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgUGFzc1JlZlB0cjxTaGFwZVZhbHVlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFz
ZSosIFNoYXBlVmFsdWUqIGZyb20sIFNoYXBlVmFsdWUqIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCitz
dGF0aWMgaW5saW5lIFJlZlB0cjxTaGFwZVZhbHVlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9u
QmFzZSosIFNoYXBlVmFsdWUqIGZyb20sIFNoYXBlVmFsdWUqIHRvLCBkb3VibGUgcHJvZ3Jlc3Mp
CiB7CiAgICAgaWYgKCFmcm9tIHx8ICF0bykKICAgICAgICAgcmV0dXJuIHRvOwpAQCAtMTYzLDcg
KzE2Myw3IEBAIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxTaGFwZVZhbHVlPiBibGVuZEZ1bmMo
Y29uc3QgQW5pbWF0aW9uQmFzZSosIFNoYXBlVmFsdWUqCiAgICAgcmV0dXJuIFNoYXBlVmFsdWU6
OmNyZWF0ZSh0b1NoYXBlLmJsZW5kKGZyb21TaGFwZSwgcHJvZ3Jlc3MpLCB0by0+Y3NzQm94KCkp
OwogfQogCi1zdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBibGVuZEZ1
bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbWF0aW9uLCBGaWx0ZXJPcGVyYXRpb24qIGZyb21P
cCwgRmlsdGVyT3BlcmF0aW9uKiB0b09wLCBkb3VibGUgcHJvZ3Jlc3MsIGJvb2wgYmxlbmRUb1Bh
c3N0aHJvdWdoID0gZmFsc2UpCitzdGF0aWMgaW5saW5lIFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+
IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltYXRpb24sIEZpbHRlck9wZXJhdGlv
biogZnJvbU9wLCBGaWx0ZXJPcGVyYXRpb24qIHRvT3AsIGRvdWJsZSBwcm9ncmVzcywgYm9vbCBi
bGVuZFRvUGFzc3Rocm91Z2ggPSBmYWxzZSkKIHsKICAgICBBU1NFUlQodG9PcCk7CiAgICAgaWYg
KHRvT3AtPmJsZW5kaW5nTmVlZHNSZW5kZXJlclNpemUoKSkgewpAQCAtMjE4LDcgKzIxOCw3IEBA
IHN0YXRpYyBpbmxpbmUgRmlsdGVyT3BlcmF0aW9ucyBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9u
QmFzZSogYW5pbSwgY29uc3QgRmlsdGVyCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGlj
IGlubGluZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGJsZW5kRmlsdGVyKGNvbnN0IEFuaW1hdGlv
bkJhc2UqIGFuaW0sIENhY2hlZEltYWdlKiBpbWFnZSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYg
ZnJvbSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgdG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRp
YyBpbmxpbmUgUmVmUHRyPFN0eWxlSW1hZ2U+IGJsZW5kRmlsdGVyKGNvbnN0IEFuaW1hdGlvbkJh
c2UqIGFuaW0sIENhY2hlZEltYWdlKiBpbWFnZSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgZnJv
bSwgY29uc3QgRmlsdGVyT3BlcmF0aW9ucyYgdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBB
U1NFUlQoaW1hZ2UpOwogICAgIEZpbHRlck9wZXJhdGlvbnMgZmlsdGVyUmVzdWx0ID0gYmxlbmRG
aWx0ZXJPcGVyYXRpb25zKGFuaW0sIGZyb20sIHRvLCBwcm9ncmVzcyk7CkBAIC0yNzgsNyArMjc4
LDcgQEAgc3RhdGljIGlubGluZSBWZWN0b3I8U1ZHTGVuZ3RoVmFsdWU+IGJsZW5kRnVuYyhjb25z
dCBBbmltYXRpb25CYXNlKiwgY29uc3QgVmVjdG8KICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1z
dGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gY3Jvc3NmYWRlQmxlbmQoY29uc3Qg
QW5pbWF0aW9uQmFzZSosIFN0eWxlQ2FjaGVkSW1hZ2UqIGZyb21TdHlsZUltYWdlLCBTdHlsZUNh
Y2hlZEltYWdlKiB0b1N0eWxlSW1hZ2UsIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUg
UmVmUHRyPFN0eWxlSW1hZ2U+IGNyb3NzZmFkZUJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBT
dHlsZUNhY2hlZEltYWdlKiBmcm9tU3R5bGVJbWFnZSwgU3R5bGVDYWNoZWRJbWFnZSogdG9TdHls
ZUltYWdlLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgLy8gSWYgcHJvZ3Jlc3MgaXMgYXQgb25l
IG9mIHRoZSBleHRyZW1lcywgd2Ugd2FudCBnZXRDb21wdXRlZFN0eWxlIHRvIHNob3cgdGhlIGlt
YWdlLAogICAgIC8vIG5vdCBhIGNvbXBsZXRlZCBjcm9zcy1mYWRlLCBzbyB3ZSBoYW5kIGJhY2sg
b25lIG9mIHRoZSBleGlzdGluZyBpbWFnZXMuCkBAIC0yOTUsNyArMjk1LDcgQEAgc3RhdGljIGlu
bGluZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGNyb3NzZmFkZUJsZW5kKGNvbnN0IEFuaW1hdGlv
bkJhc2UqLCBTdHlsZUMKICAgICByZXR1cm4gU3R5bGVHZW5lcmF0ZWRJbWFnZTo6Y3JlYXRlKFdU
Rk1vdmUoY3Jvc3NmYWRlVmFsdWUpKTsKIH0KIAotc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0
eWxlSW1hZ2U+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBTdHlsZUltYWdl
KiBmcm9tLCBTdHlsZUltYWdlKiB0bywgZG91YmxlIHByb2dyZXNzKQorc3RhdGljIGlubGluZSBS
ZWZQdHI8U3R5bGVJbWFnZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFN0
eWxlSW1hZ2UqIGZyb20sIFN0eWxlSW1hZ2UqIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAg
aWYgKCFmcm9tIHx8ICF0bykKICAgICAgICAgcmV0dXJuIHRvOwpAQCAtMzY0LDExICszNjQsMTIg
QEAgc3RhdGljIGlubGluZSBOaW5lUGllY2VJbWFnZSBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9u
QmFzZSogYW5pbSwgY29uc3QgTmluZVBpZWMKICAgICBpZiAoZnJvbS5pbWFnZSgpLT5pbWFnZVNp
emUoYW5pbS0+cmVuZGVyZXIoKSwgMS4wKSAhPSB0by5pbWFnZSgpLT5pbWFnZVNpemUoYW5pbS0+
cmVuZGVyZXIoKSwgMS4wKSkKICAgICAgICAgcmV0dXJuIHRvOwogCi0gICAgYXV0byBuZXdDb250
ZW50SW1hZ2UgPSBibGVuZEZ1bmMoYW5pbSwgZnJvbS5pbWFnZSgpLCB0by5pbWFnZSgpLCBwcm9n
cmVzcyk7Ci0gICAgcmV0dXJuIE5pbmVQaWVjZUltYWdlKG5ld0NvbnRlbnRJbWFnZSwgZnJvbS5p
bWFnZVNsaWNlcygpLCBmcm9tLmZpbGwoKSwgZnJvbS5ib3JkZXJTbGljZXMoKSwgZnJvbS5vdXRz
ZXQoKSwgZnJvbS5ob3Jpem9udGFsUnVsZSgpLCBmcm9tLnZlcnRpY2FsUnVsZSgpKTsKKyAgICBy
ZXR1cm4gTmluZVBpZWNlSW1hZ2UoYmxlbmRGdW5jKGFuaW0sIGZyb20uaW1hZ2UoKSwgdG8uaW1h
Z2UoKSwgcHJvZ3Jlc3MpLAorICAgICAgICBmcm9tLmltYWdlU2xpY2VzKCksIGZyb20uZmlsbCgp
LCBmcm9tLmJvcmRlclNsaWNlcygpLCBmcm9tLm91dHNldCgpLCBmcm9tLmhvcml6b250YWxSdWxl
KCksIGZyb20udmVydGljYWxSdWxlKCkpOwogfQogCiAjaWYgRU5BQkxFKFZBUklBVElPTl9GT05U
UykKKwogc3RhdGljIGlubGluZSBGb250VmFyaWF0aW9uU2V0dGluZ3MgYmxlbmRGdW5jKGNvbnN0
IEFuaW1hdGlvbkJhc2UqIGFuaW0sIGNvbnN0IEZvbnRWYXJpYXRpb25TZXR0aW5ncyYgZnJvbSwg
Y29uc3QgRm9udFZhcmlhdGlvblNldHRpbmdzJiB0bywgZG91YmxlIHByb2dyZXNzKQogewogICAg
IGlmIChmcm9tLnNpemUoKSAhPSB0by5zaXplKCkpCkBAIC0zODUsNiArMzg2LDcgQEAgc3RhdGlj
IGlubGluZSBGb250VmFyaWF0aW9uU2V0dGluZ3MgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJh
c2UqIGFuaW0sIGNvbnN0IEYKICAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KKwogI2VuZGlm
CiAKIGNsYXNzIEFuaW1hdGlvblByb3BlcnR5V3JhcHBlckJhc2UgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKaW5kZXggNWI3
NGU3Njc4MjhjNDVhNTYyOWUxOWZlMjYwNTM4M2MyYTVmNmU4YS4uNjY5OTI3MDdiMWVlYWIxODQz
ZmUwMzlhYWM2MmRlMzBjNDQzMDJhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCkBAIC0xMjEsOCArMTIxLDggQEAgdm9p
ZCBDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZVRyYW5zaXRpb25zKFJlbmRlckVsZW1lbnQqIHJl
bmRlcmVyLCBjb25zdCBSZW5kZXIKICAgICAgICAgICAgICAgICAvLyBJZiB0aGVyZSBpcyBhIHJ1
bm5pbmcgYW5pbWF0aW9uIGZvciB0aGlzIHByb3BlcnR5LCB0aGUgdHJhbnNpdGlvbiBpcyBvdmVy
cmlkZGVuCiAgICAgICAgICAgICAgICAgLy8gYW5kIHdlIGhhdmUgdG8gdXNlIHRoZSB1bmFuaW1h
dGVkU3R5bGUgZnJvbSB0aGUgYW5pbWF0aW9uLiBXZSBkbyB0aGUgdGVzdAogICAgICAgICAgICAg
ICAgIC8vIGFnYWluc3QgdGhlIHVuYW5pbWF0ZWQgc3R5bGUgaGVyZSwgYnV0IHdlICJvdmVycmlk
ZSIgdGhlIHRyYW5zaXRpb24gbGF0ZXIuCi0gICAgICAgICAgICAgICAgUmVmUHRyPEtleWZyYW1l
QW5pbWF0aW9uPiBrZXlmcmFtZUFuaW0gPSBnZXRBbmltYXRpb25Gb3JQcm9wZXJ0eShwcm9wKTsK
LSAgICAgICAgICAgICAgICBhdXRvKiBmcm9tU3R5bGUgPSBrZXlmcmFtZUFuaW0gPyBrZXlmcmFt
ZUFuaW0tPnVuYW5pbWF0ZWRTdHlsZSgpIDogY3VycmVudFN0eWxlOworICAgICAgICAgICAgICAg
IGF1dG8qIGtleWZyYW1lQW5pbWF0aW9uID0gYW5pbWF0aW9uRm9yUHJvcGVydHkocHJvcCk7Cisg
ICAgICAgICAgICAgICAgYXV0byogZnJvbVN0eWxlID0ga2V5ZnJhbWVBbmltYXRpb24gPyBrZXlm
cmFtZUFuaW1hdGlvbi0+dW5hbmltYXRlZFN0eWxlKCkgOiBjdXJyZW50U3R5bGU7CiAKICAgICAg
ICAgICAgICAgICAvLyBTZWUgaWYgdGhlcmUgaXMgYSBjdXJyZW50IHRyYW5zaXRpb24gZm9yIHRo
aXMgcHJvcAogICAgICAgICAgICAgICAgIEltcGxpY2l0QW5pbWF0aW9uKiBpbXBsQW5pbSA9IG1f
dHJhbnNpdGlvbnMuZ2V0KHByb3ApOwpAQCAtMTcyLDcgKzE3Miw3IEBAIHZvaWQgQ29tcG9zaXRl
QW5pbWF0aW9uOjp1cGRhdGVUcmFuc2l0aW9ucyhSZW5kZXJFbGVtZW50KiByZW5kZXJlciwgY29u
c3QgUmVuZGVyCiAgICAgICAgICAgICAgICAgICAgIExPRyhBbmltYXRpb25zLCAiQ3JlYXRlZCBJ
bXBsaWNpdEFuaW1hdGlvbiAlcCBvbiByZW5kZXJlciAlcCBmb3IgcHJvcGVydHkgJXMgZHVyYXRp
b24gJS4yZiBkZWxheSAlLjJmIiwgaW1wbGljaXRBbmltYXRpb24ucHRyKCksIHJlbmRlcmVyLCBn
ZXRQcm9wZXJ0eU5hbWUocHJvcCksIGFuaW1hdGlvbi5kdXJhdGlvbigpLCBhbmltYXRpb24uZGVs
YXkoKSk7CiAgICAgICAgICAgICAgICAgICAgIG1fdHJhbnNpdGlvbnMuc2V0KHByb3AsIFdURk1v
dmUoaW1wbGljaXRBbmltYXRpb24pKTsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgCisKICAgICAgICAgICAgICAgICAvLyBXZSBvbmx5IG5lZWQgb25lIHBhc3MgZm9yIHRoZSBz
aW5nbGUgcHJvcCBjYXNlCiAgICAgICAgICAgICAgICAgaWYgKCFhbGwpCiAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtMzk5LDIxICszOTksMjEgQEAgZG91YmxlIENvbXBvc2l0ZUFuaW1h
dGlvbjo6dGltZVRvTmV4dFNlcnZpY2UoKSBjb25zdAogICAgIHJldHVybiBtaW5UOwogfQogCi1Q
YXNzUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiBDb21wb3NpdGVBbmltYXRpb246OmdldEFuaW1h
dGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHkpIGNvbnN0CitLZXlmcmFtZUFu
aW1hdGlvbiogQ29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5KSBjb25zdAogewotICAgIFJlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4g
cmV0dmFsOwotICAgIAorICAgIEtleWZyYW1lQW5pbWF0aW9uKiByZXN1bHQgPSBudWxscHRyOwor
CiAgICAgLy8gV2Ugd2FudCB0byBzZW5kIGJhY2sgdGhlIGxhc3QgYW5pbWF0aW9uIHdpdGggdGhl
IHByb3BlcnR5IGlmIHRoZXJlIGFyZSBtdWx0aXBsZXMuCiAgICAgLy8gU28gd2UgbmVlZCB0byBp
dGVyYXRlIHRocm91Z2ggYWxsIGFuaW1hdGlvbnMKICAgICBpZiAoIW1fa2V5ZnJhbWVBbmltYXRp
b25zLmlzRW1wdHkoKSkgewogICAgICAgICBtX2tleWZyYW1lQW5pbWF0aW9ucy5jaGVja0NvbnNp
c3RlbmN5KCk7CiAgICAgICAgIGZvciAoYXV0byYgYW5pbWF0aW9uIDogbV9rZXlmcmFtZUFuaW1h
dGlvbnMudmFsdWVzKCkpIHsKICAgICAgICAgICAgIGlmIChhbmltYXRpb24tPmhhc0FuaW1hdGlv
bkZvclByb3BlcnR5KHByb3BlcnR5KSkKLSAgICAgICAgICAgICAgICByZXR2YWwgPSBhbmltYXRp
b247CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gYW5pbWF0aW9uLmdldCgpOwogICAgICAgICB9
CiAgICAgfQotICAgIAotICAgIHJldHVybiByZXR2YWw7CisKKyAgICByZXR1cm4gcmVzdWx0Owog
fQogCiBib29sIENvbXBvc2l0ZUFuaW1hdGlvbjo6Y29tcHV0ZUV4dGVudE9mVHJhbnNmb3JtQW5p
bWF0aW9uKExheW91dFJlY3QmIGJvdW5kcykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmgKaW5kZXggMzM3ZmU2ZjE2NmU3MWMx
Y2U2MTlhZTIzODg5MzExODdmZjg2NDdjYy4uNDBjM2E0OTFmMmE1NDhlYjNlMmIzMzE2YzRmMGZm
ZTA1MzIxMzkwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29t
cG9zaXRlQW5pbWF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29t
cG9zaXRlQW5pbWF0aW9uLmgKQEAgLTcxLDcgKzcxLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBp
c0FuaW1hdGluZ1Byb3BlcnR5KENTU1Byb3BlcnR5SUQsIGJvb2wgYWNjZWxlcmF0ZWRPbmx5LCBB
bmltYXRpb25CYXNlOjpSdW5uaW5nU3RhdGUpIGNvbnN0OwogCi0gICAgUGFzc1JlZlB0cjxLZXlm
cmFtZUFuaW1hdGlvbj4gZ2V0QW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCkgY29u
c3Q7CisgICAgS2V5ZnJhbWVBbmltYXRpb24qIGFuaW1hdGlvbkZvclByb3BlcnR5KENTU1Byb3Bl
cnR5SUQpIGNvbnN0OwogCiAgICAgdm9pZCBvdmVycmlkZUltcGxpY2l0QW5pbWF0aW9ucyhDU1NQ
cm9wZXJ0eUlEKTsKICAgICB2b2lkIHJlc3VtZU92ZXJyaWRkZW5JbXBsaWNpdEFuaW1hdGlvbnMo
Q1NTUHJvcGVydHlJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9J
bXBsaWNpdEFuaW1hdGlvbi5jcHAKaW5kZXggNzE2YmVhODI0OTA0OTJjNDNiY2UxNzc0OWQxZmZi
NTIxMjdjY2NmZi4uZmRlZDYyM2E2YWRkYTkyNGFiNzYzNjNlMjQ2OWNiY2EzMmNiZmI3MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9u
LmNwcApAQCAtMTYzLDEwICsxNjMsOSBAQCB2b2lkIEltcGxpY2l0QW5pbWF0aW9uOjpvbkFuaW1h
dGlvbkVuZChkb3VibGUgZWxhcHNlZFRpbWUpCiAgICAgLy8gcnVubmluZy4gQnV0IG5vdyB0aGF0
IHRoZSB0cmFuc2l0aW9uIGhhcyBjb21wbGV0ZWQsIHdlIG5lZWQgdG8gdXBkYXRlIHRoaXMgc3R5
bGUgd2l0aCBpdHMgbmV3CiAgICAgLy8gZGVzdGluYXRpb24uIElmIHdlIGRpZG4ndCwgdGhlIG5l
eHQgdGltZSB0aHJvdWdoIHdlIHdvdWxkIHRoaW5rIGEgdHJhbnNpdGlvbiBoYWQgc3RhcnRlZAog
ICAgIC8vIChjb21wYXJpbmcgdGhlIG9sZCB1bmFuaW1hdGVkIHN0eWxlIHdpdGggdGhlIG5ldyBm
aW5hbCBzdHlsZSBvZiB0aGUgdHJhbnNpdGlvbikuCi0gICAgUmVmUHRyPEtleWZyYW1lQW5pbWF0
aW9uPiBrZXlmcmFtZUFuaW0gPSBtX2NvbXBvc2l0ZUFuaW1hdGlvbi0+Z2V0QW5pbWF0aW9uRm9y
UHJvcGVydHkobV9hbmltYXRpbmdQcm9wZXJ0eSk7Ci0gICAgaWYgKGtleWZyYW1lQW5pbSkKLSAg
ICAgICAga2V5ZnJhbWVBbmltLT5zZXRVbmFuaW1hdGVkU3R5bGUoUmVuZGVyU3R5bGU6OmNsb25l
UHRyKCptX3RvU3R5bGUpKTsKLSAgICAKKyAgICBpZiAoYXV0byogYW5pbWF0aW9uID0gbV9jb21w
b3NpdGVBbmltYXRpb24tPmFuaW1hdGlvbkZvclByb3BlcnR5KG1fYW5pbWF0aW5nUHJvcGVydHkp
KQorICAgICAgICBhbmltYXRpb24tPnNldFVuYW5pbWF0ZWRTdHlsZShSZW5kZXJTdHlsZTo6Y2xv
bmVQdHIoKm1fdG9TdHlsZSkpOworCiAgICAgc2VuZFRyYW5zaXRpb25FdmVudChldmVudE5hbWVz
KCkudHJhbnNpdGlvbmVuZEV2ZW50LCBlbGFwc2VkVGltZSk7CiAgICAgZW5kQW5pbWF0aW9uKCk7
CiB9CkBAIC0xODcsNyArMTg2LDcgQEAgYm9vbCBJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5z
aXRpb25FdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgZG91YmwKICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgICAgIC8vIFNjaGVkdWxlIGV2ZW50IGhh
bmRsaW5nCi0gICAgICAgICAgICBtX2NvbXBvc2l0ZUFuaW1hdGlvbi0+YW5pbWF0aW9uQ29udHJv
bGxlcigpLmFkZEV2ZW50VG9EaXNwYXRjaChlbGVtZW50LCBldmVudFR5cGUsIHByb3BlcnR5TmFt
ZSwgZWxhcHNlZFRpbWUpOworICAgICAgICAgICAgbV9jb21wb3NpdGVBbmltYXRpb24tPmFuaW1h
dGlvbkNvbnRyb2xsZXIoKS5hZGRFdmVudFRvRGlzcGF0Y2goKmVsZW1lbnQsIGV2ZW50VHlwZSwg
cHJvcGVydHlOYW1lLCBlbGFwc2VkVGltZSk7CiAKICAgICAgICAgICAgIC8vIFJlc3RvcmUgdGhl
IG9yaWdpbmFsICh1bmFuaW1hdGVkKSBzdHlsZQogICAgICAgICAgICAgaWYgKGV2ZW50VHlwZSA9
PSBldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2ZW50ICYmIGVsZW1lbnQtPnJlbmRlcmVyKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1h
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlv
bi5jcHAKaW5kZXggNDcxYmFjZjZmMWI5ZjA1Y2UxZDM0ZGE4NzVmZThjNjdjOTRmZjU3ZC4uZGMy
OWQyMjM5MWIwMzRiZGNlZTU2NmYzYjJhNWMzMTdhMGRkMDAzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcApAQCAtMzI3LDcg
KzMyNyw3IEBAIGJvb2wgS2V5ZnJhbWVBbmltYXRpb246OnNlbmRBbmltYXRpb25FdmVudChjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgZG91YmxlCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgLy8gU2NoZWR1bGUgZXZlbnQgaGFuZGxpbmcKLSAgICAgICAgbV9jb21w
b3NpdGVBbmltYXRpb24tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS5hZGRFdmVudFRvRGlzcGF0Y2go
ZWxlbWVudCwgZXZlbnRUeXBlLCBtX2tleWZyYW1lcy5hbmltYXRpb25OYW1lKCksIGVsYXBzZWRU
aW1lKTsKKyAgICAgICAgbV9jb21wb3NpdGVBbmltYXRpb24tPmFuaW1hdGlvbkNvbnRyb2xsZXIo
KS5hZGRFdmVudFRvRGlzcGF0Y2goKmVsZW1lbnQsIGV2ZW50VHlwZSwgbV9rZXlmcmFtZXMuYW5p
bWF0aW9uTmFtZSgpLCBlbGFwc2VkVGltZSk7CiAKICAgICAgICAgLy8gUmVzdG9yZSB0aGUgb3Jp
Z2luYWwgKHVuYW5pbWF0ZWQpIHN0eWxlCiAgICAgICAgIGlmICgoZXZlbnRUeXBlID09IGV2ZW50
TmFtZXMoKS53ZWJraXRBbmltYXRpb25FbmRFdmVudCB8fCBldmVudFR5cGUgPT0gZXZlbnROYW1l
cygpLmFuaW1hdGlvbmVuZEV2ZW50KSAmJiBlbGVtZW50LT5yZW5kZXJlcigpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKaW5kZXggMjEwNmQxZTE5YTQ4NmEz
ODVmZmU4N2Y5MDBmYWFmZTkwOGJjYWMxMi4uYWFkMDdkNmZmNmIxN2VjZGQ3MTcxMWU0MWVmNWI0
ZTAzZWUwMDUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5k
bGVyRWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwu
Y3BwCkBAIC00OSw3ICs0OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNvbnN0IGRvdWJsZSBF
dmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgPSAwLjA7CiAjZW5kaWYKIAotYm9vbCBFdmVudEhh
bmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KikgY29uc3QKK2Jvb2wg
RXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCYpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC05NiwxMCArOTYsMTIgQEAgYm9vbCBFdmVudEhh
bmRsZXI6OndpZGdldERpZEhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JiBldmVudCwgV2kKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNzUmVmUHRyPERh
dGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNv
bnN0CisKK1JlZjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRh
VHJhbnNmZXIoKSBjb25zdAogewogICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRy
YWdBbmREcm9wKCk7CiB9CisKICNlbmRpZgogCiBib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNl
UHJlc3NFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBG
cmFtZSogc3ViZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9FdmVu
dEhhbmRsZXJHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3Rr
LmNwcAppbmRleCA0M2YwNTM3NWU1YmRlNjE0ZjkwOGE3YzE1NGQ4MmQ3YjA4ZWNlMjRiLi5hYWFk
ZTAwMmM1Yzg5YmRjZWMwMjUzNjViMDE5N2E1MDE5NmMyYjgyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogY29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9IDAu
MDsKICNlbmRpZgogCi1ib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtl
eWJvYXJkRXZlbnQqKSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250
cm9scyhLZXlib2FyZEV2ZW50JikgY29uc3QKIHsKICAgICAvLyBXZSBhbHdheXMgYWxsb3cgdGFi
cyB0byBhbGwgY29udHJvbHMKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTk2LDEwICs5NiwxMiBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6d2lkZ2V0RGlkSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmIGV2ZW50LCBXaQogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBh
c3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRy
YW5zZmVyKCkgY29uc3QKKworUmVmPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVE
cmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIERhdGFUcmFuc2Zlcjo6
Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKIH0KKwogI2VuZGlmCiAKIGJvb2wgRXZlbnRIYW5kbGVy
OjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1
bHRzJiBtZXYsIEZyYW1lKiBzdWJmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50
SGFuZGxlcklPUy5tbQppbmRleCA1MjRmYjVhZWE1YjNkNTIzNmI5NDFkN2FkMjU4OGI0ODljYmRh
N2EwLi4yOWJhZGVmNTk1NTg0YTNmY2U1M2NhMmY4MjQxZTRmNmVmZDc1NGQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCkBAIC0xMjAsNyArMTIwLDcgQEAg
dm9pZCBFdmVudEhhbmRsZXI6OnRvdWNoRXZlbnQoV2ViRXZlbnQgKmV2ZW50KQogfQogI2VuZGlm
CiAKLWJvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVu
dCogZXZlbnQpIGNvbnN0Citib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xz
KEtleWJvYXJkRXZlbnQmIGV2ZW50KSBjb25zdAogewogICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1l
LnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L21hYy9FdmVudEhhbmRsZXJNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhh
bmRsZXJNYWMubW0KaW5kZXggZTU5MTk3OGMwMGM0MGM2OWU3NzNhOTc2MjFkNzY3MzNiZDc1MWIw
Mi4uYWQ3YTU5ZTMxZTA5NWIwYmM1MjA1MDcyZmRmMTgzOWYwZjRmNjgzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQpAQCAtNjEsNiArNjEsNyBAQAogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgIldl
YkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIKKyNpbmNsdWRlICJXaGVlbEV2ZW50RGVsdGFGaWx0ZXIu
aCIKICNpbmNsdWRlICJXaGVlbEV2ZW50VGVzdFRyaWdnZXIuaCIKICNpbmNsdWRlIDx3dGYvQmxv
Y2tPYmpDRXhjZXB0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC03MjMs
NyArNzI0LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQ
bGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KSBjb25zdAogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKIAotUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dp
bmdEYXRhVHJhbnNmZXIoKSBjb25zdAorUmVmPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpj
cmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CiB7CiAgICAgLy8gTXVzdCBiZSBkb25l
IGJlZm9yZSBvbmRyYWdzdGFydCBhZGRzIHR5cGVzIGFuZCBkYXRhIHRvIHRoZSBwYm9hcmQsCiAg
ICAgLy8gYWxzbyBkb25lIGZvciBzZWN1cml0eSwgYXMgaXQgZXJhc2VzIGRhdGEgZnJvbSB0aGUg
bGFzdCBkcmFnLgpAQCAtNzM0LDcgKzczNSw3IEBAIFBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBF
dmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKIAogI2VuZGlm
CiAKLWJvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVu
dCogZXZlbnQpIGNvbnN0Citib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xz
KEtleWJvYXJkRXZlbnQmIGV2ZW50KSBjb25zdAogewogICAgIFBhZ2UqIHBhZ2UgPSBtX2ZyYW1l
LnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCkBAIC05NzEsMTAgKzk3MiwxMCBAQCB2b2lkIEV2ZW50
SGFuZGxlcjo6cGxhdGZvcm1QcmVwYXJlRm9yV2hlZWxFdmVudHMoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiB3aGVlbAogICAgICAgICAgICAgICAgIG1fZnJhbWUubWFpbkZyYW1lKCkucHVzaE5l
d0xhdGNoaW5nU3RhdGUoKTsKICAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlID0gbV9mcmFt
ZS5tYWluRnJhbWUoKS5sYXRjaGluZ1N0YXRlKCk7CiAgICAgICAgICAgICAgICAgbGF0Y2hpbmdT
dGF0ZS0+c2V0U3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0KGZhbHNlKTsKLSAgICAgICAgICAg
ICAgICBsYXRjaGluZ1N0YXRlLT5zZXRXaGVlbEV2ZW50RWxlbWVudCh3aGVlbEV2ZW50VGFyZ2V0
KTsKKyAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlLT5zZXRXaGVlbEV2ZW50RWxlbWVudCh3
aGVlbEV2ZW50VGFyZ2V0LmdldCgpKTsKICAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlLT5z
ZXRGcmFtZSgmbV9mcmFtZSk7CiAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFdoYXQgcHJldmVu
dHMgdXMgZnJvbSBkZWxldGluZyB0aGlzIHNjcm9sbGFibGUgY29udGFpbmVyIHdoaWxlIHN0aWxs
IGhvbGRpbmcgYSBwb2ludGVyIHRvIGl0PwotICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUt
PnNldFNjcm9sbGFibGVDb250YWluZXIoc2Nyb2xsYWJsZUNvbnRhaW5lcik7CisgICAgICAgICAg
ICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihzY3JvbGxhYmxlQ29u
dGFpbmVyLmdldCgpKTsKICAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlLT5zZXRXaWRnZXRJ
c0xhdGNoZWQocmVzdWx0LmlzT3ZlcldpZGdldCgpKTsKICAgICAgICAgICAgICAgICBpc092ZXJX
aWRnZXQgPSBsYXRjaGluZ1N0YXRlLT53aWRnZXRJc0xhdGNoZWQoKTsKICAgICAgICAgICAgICAg
ICBtX2ZyYW1lLm1haW5GcmFtZSgpLndoZWVsRXZlbnREZWx0YUZpbHRlcigpLT5iZWdpbkZpbHRl
cmluZ0RlbHRhcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2Vydmlj
ZXNPdmVybGF5Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNP
dmVybGF5Q29udHJvbGxlci5oCmluZGV4IDU1ZTRkNjU5NWVlYjYwNTNmNmE2YTk0NTBiOWRhZWI4
MTI4YzUyNzAuLjY1YjFjZWVjNmIxMTI3YjA1OTYzMjFlYzQ4ODI0NTdkZjQxYjA0ZjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgIlBhZ2VPdmVybGF5LmgiCiAjaW5jbHVkZSAiUmFu
Z2UuaCIKICNpbmNsdWRlICJUaW1lci5oIgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAK
IHR5cGVkZWYgc3RydWN0IF9fRERIaWdobGlnaHQgKkRESGlnaGxpZ2h0UmVmOwogCkBAIC0zOSw2
ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIGNsYXNzIExheW91dFJlY3Q7CiBj
bGFzcyBNYWluRnJhbWU7CisKIHN0cnVjdCBHYXBSZWN0czsKIAogY2xhc3MgU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlciA6IHByaXZhdGUgUGFnZU92ZXJsYXk6OkNsaWVudCB7CkBAIC01NCwxNCAr
NTQsMTQgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBIaWdobGlnaHQgOiBwdWJsaWMgUmVmQ291bnRl
ZDxIaWdobGlnaHQ+LCBwcml2YXRlIEdyYXBoaWNzTGF5ZXJDbGllbnQgewogICAgICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShIaWdobGlnaHQpOwogICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGlj
IFJlZjxIaWdobGlnaHQ+IGNyZWF0ZUZvclNlbGVjdGlvbihTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyJiwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUGFzc1JlZlB0cjxSYW5nZT4pOwotICAg
ICAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKFNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXImLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+LCBQYXNzUmVm
UHRyPFJhbmdlPik7CisgICAgICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGVGb3JTZWxl
Y3Rpb24oU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFJldGFpblB0cjxEREhpZ2hsaWdodFJl
Zj4sIFJlZjxSYW5nZT4mJik7CisgICAgICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGVG
b3JUZWxlcGhvbmVOdW1iZXIoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFJldGFpblB0cjxE
REhpZ2hsaWdodFJlZj4sIFJlZjxSYW5nZT4mJik7CiAgICAgICAgIH5IaWdobGlnaHQoKTsKIAog
ICAgICAgICB2b2lkIGludmFsaWRhdGUoKTsKIAogICAgICAgICBEREhpZ2hsaWdodFJlZiBkZEhp
Z2hsaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fZGRIaWdobGlnaHQuZ2V0KCk7IH0KLSAgICAgICAg
UmFuZ2UqIHJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZS5nZXQoKTsgfQorICAgICAgICBS
YW5nZSYgcmFuZ2UoKSBjb25zdCB7IHJldHVybiBtX3JhbmdlLmdldCgpOyB9CiAgICAgICAgIEdy
YXBoaWNzTGF5ZXIqIGxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9ncmFwaGljc0xheWVyLmdldCgp
OyB9CiAKICAgICAgICAgZW51bSB7CkBAIC03Nyw3ICs3Nyw3IEBAIHByaXZhdGU6CiAgICAgICAg
IHZvaWQgc2V0RERIaWdobGlnaHQoRERIaWdobGlnaHRSZWYpOwogCiAgICAgcHJpdmF0ZToKLSAg
ICAgICAgZXhwbGljaXQgSGlnaGxpZ2h0KFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImLCBUeXBl
LCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+LCBQYXNzUmVmUHRyPFJhbmdlPik7CisgICAgICAg
IEhpZ2hsaWdodChTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiwgVHlwZSwgUmV0YWluUHRyPERE
SGlnaGxpZ2h0UmVmPiwgUmVmPFJhbmdlPiYmKTsKIAogICAgICAgICAvLyBHcmFwaGljc0xheWVy
Q2xpZW50CiAgICAgICAgIHZvaWQgbm90aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xh
eWVyKikgb3ZlcnJpZGU7CkBAIC04Nyw3ICs4Nyw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQg
ZGlkRmluaXNoRmFkZU91dEFuaW1hdGlvbigpOwogCiAgICAgICAgIFJldGFpblB0cjxEREhpZ2hs
aWdodFJlZj4gbV9kZEhpZ2hsaWdodDsKLSAgICAgICAgUmVmUHRyPFJhbmdlPiBtX3JhbmdlOwor
ICAgICAgICBSZWY8UmFuZ2U+IG1fcmFuZ2U7CiAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFw
aGljc0xheWVyPiBtX2dyYXBoaWNzTGF5ZXI7CiAgICAgICAgIFR5cGUgbV90eXBlOwogICAgICAg
ICBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyKiBtX2NvbnRyb2xsZXI7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQppbmRleCA5
YTgxNWI1YWU1NTk2NDk5YmRmNjE2ZWQ0MjExYjlhNTIzODE1ZTYyLi40YjAzZTIyYWU0NmJlODlh
ZTIzMTAyZmI0OWZmNDkyMWQ0MDQ2OGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KQEAgLTU1LDIzICs1NSwyMiBAQCBj
b25zdCBmbG9hdCBoaWdobGlnaHRGYWRlQW5pbWF0aW9uRHVyYXRpb24gPSAwLjM7CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotUmVmPFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdo
dD4gU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rp
b24oU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYgY29udHJvbGxlciwgUmV0YWluUHRyPERESGln
aGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCwgUGFzc1JlZlB0cjxSYW5nZT4gcmFuZ2UpCitSZWY8U2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0PiBTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyOjpIaWdobGlnaHQ6OmNyZWF0ZUZvclNlbGVjdGlvbihTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyJiBjb250cm9sbGVyLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBS
ZWY8UmFuZ2U+JiYgcmFuZ2UpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0
KGNvbnRyb2xsZXIsIEhpZ2hsaWdodDo6U2VsZWN0aW9uVHlwZSwgZGRIaWdobGlnaHQsIHJhbmdl
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0KGNvbnRyb2xsZXIsIEhpZ2hs
aWdodDo6U2VsZWN0aW9uVHlwZSwgZGRIaWdobGlnaHQsIFdURk1vdmUocmFuZ2UpKSk7CiB9CiAK
LVJlZjxTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ+IFNlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKFNlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4g
ZGRIaWdobGlnaHQsIFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlKQorUmVmPFNlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXI6OkhpZ2hsaWdodD4gU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxp
Z2h0OjpjcmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYg
Y29udHJvbGxlciwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCwgUmVmPFJh
bmdlPiYmIHJhbmdlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodChjb250
cm9sbGVyLCBIaWdobGlnaHQ6OlRlbGVwaG9uZU51bWJlclR5cGUsIGRkSGlnaGxpZ2h0LCByYW5n
ZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodChjb250cm9sbGVyLCBIaWdo
bGlnaHQ6OlRlbGVwaG9uZU51bWJlclR5cGUsIGRkSGlnaGxpZ2h0LCBXVEZNb3ZlKHJhbmdlKSkp
OwogfQogCi1TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OkhpZ2hsaWdodChT
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiBjb250cm9sbGVyLCBUeXBlIHR5cGUsIFJldGFpblB0
cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6UmFuZ2U+
IHJhbmdlKQotICAgIDogbV9yYW5nZShyYW5nZSkKK1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6
OkhpZ2hsaWdodDo6SGlnaGxpZ2h0KFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImIGNvbnRyb2xs
ZXIsIFR5cGUgdHlwZSwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCwgUmVm
PFdlYkNvcmU6OlJhbmdlPiYmIHJhbmdlKQorICAgIDogbV9yYW5nZShXVEZNb3ZlKHJhbmdlKSkK
ICAgICAsIG1fdHlwZSh0eXBlKQogICAgICwgbV9jb250cm9sbGVyKCZjb250cm9sbGVyKQogewog
ICAgIEFTU0VSVChkZEhpZ2hsaWdodCk7Ci0gICAgQVNTRVJUKG1fcmFuZ2UpOwogCiAgICAgUGFn
ZSogcGFnZSA9IGNvbnRyb2xsZXIubWFpbkZyYW1lKCkucGFnZSgpOwogICAgIG1fZ3JhcGhpY3NM
YXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShwYWdlID8gcGFnZS0+Y2hyb21lKCkuY2xpZW50
KCkuZ3JhcGhpY3NMYXllckZhY3RvcnkoKSA6IG51bGxwdHIsICp0aGlzKTsKQEAgLTQwOSw3ICs0
MDgsNyBAQCB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkUG90ZW50aWFsSGln
aGxpZ2h0c0lmTmVlZGVkKCkKIAogICAgIGlmIChtX3BvdGVudGlhbEhpZ2hsaWdodHMuaXNFbXB0
eSgpKSB7CiAgICAgICAgIGlmIChtX3NlcnZpY2VzT3ZlcmxheSkKLSAgICAgICAgICAgIG1fbWFp
bkZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fc2Vy
dmljZXNPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgICAg
ICAgICBtX21haW5GcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3Zl
cmxheSgqbV9zZXJ2aWNlc092ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRl
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtNTI3LDcgKzUyNiw3IEBAIHZvaWQgU2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlcjo6YnVpbGRQaG9uZU51bWJlckhpZ2hsaWdodHMoKQogICAg
ICAgICBDR1JlY3QgY2dSZWN0ID0gcmVjdDsKICAgICAgICAgUmV0YWluUHRyPERESGlnaGxpZ2h0
UmVmPiBkZEhpZ2hsaWdodCA9IGFkb3B0Q0YoRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZp
c2libGVSZWN0V2l0aFN0eWxlQW5kRGlyZWN0aW9uKG51bGxwdHIsICZjZ1JlY3QsIDEsIG1haW5G
cmFtZVZpZXcudmlzaWJsZUNvbnRlbnRSZWN0KCksIERESGlnaGxpZ2h0U3R5bGVCdWJibGVTdGFu
ZGFyZCB8IERESGlnaGxpZ2h0U3R5bGVTdGFuZGFyZEljb25BcnJvdywgWUVTLCBOU1dyaXRpbmdE
aXJlY3Rpb25OYXR1cmFsLCBOTywgWUVTKSk7CiAKLSAgICAgICAgbmV3UG90ZW50aWFsSGlnaGxp
Z2h0cy5hZGQoSGlnaGxpZ2h0OjpjcmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIoKnRoaXMsIGRkSGln
aGxpZ2h0LCByYW5nZSkpOworICAgICAgICBuZXdQb3RlbnRpYWxIaWdobGlnaHRzLmFkZChIaWdo
bGlnaHQ6OmNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcigqdGhpcywgZGRIaWdobGlnaHQsIHJhbmdl
LnJlbGVhc2VOb25OdWxsKCkpKTsKICAgICB9CiAKICAgICByZXBsYWNlSGlnaGxpZ2h0c09mVHlw
ZVByZXNlcnZpbmdFcXVpdmFsZW50SGlnaGxpZ2h0cyhuZXdQb3RlbnRpYWxIaWdobGlnaHRzLCBI
aWdobGlnaHQ6OlRlbGVwaG9uZU51bWJlclR5cGUpOwpAQCAtNTcwLDcgKzU2OSw3IEBAIHZvaWQg
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6YnVpbGRTZWxlY3Rpb25IaWdobGlnaHQoKQogICAg
ICAgICAgICAgQ0dSZWN0IHZpc2libGVSZWN0ID0gbWFpbkZyYW1lVmlldy0+dmlzaWJsZUNvbnRl
bnRSZWN0KCk7CiAgICAgICAgICAgICBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxp
Z2h0ID0gYWRvcHRDRihEREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJsZVJlY3RXaXRo
U3R5bGVBbmREaXJlY3Rpb24obnVsbHB0ciwgY2dSZWN0cy5iZWdpbigpLCBjZ1JlY3RzLnNpemUo
KSwgdmlzaWJsZVJlY3QsIERESGlnaGxpZ2h0U3R5bGVCdWJibGVOb25lIHwgRERIaWdobGlnaHRT
dHlsZVN0YW5kYXJkSWNvbkFycm93IHwgRERIaWdobGlnaHRTdHlsZUJ1dHRvblNob3dBbHdheXMs
IFlFUywgTlNXcml0aW5nRGlyZWN0aW9uTmF0dXJhbCwgTk8sIFlFUykpOwogICAgICAgICAgICAg
Ci0gICAgICAgICAgICBuZXdQb3RlbnRpYWxIaWdobGlnaHRzLmFkZChIaWdobGlnaHQ6OmNyZWF0
ZUZvclNlbGVjdGlvbigqdGhpcywgZGRIaWdobGlnaHQsIHNlbGVjdGlvblJhbmdlKSk7CisgICAg
ICAgICAgICBuZXdQb3RlbnRpYWxIaWdobGlnaHRzLmFkZChIaWdobGlnaHQ6OmNyZWF0ZUZvclNl
bGVjdGlvbigqdGhpcywgZGRIaWdobGlnaHQsIHNlbGVjdGlvblJhbmdlLnJlbGVhc2VOb25OdWxs
KCkpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNjM4LDE0ICs2MzcsOSBAQCBib29sIFNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXI6OmhpZ2hsaWdodHNBcmVFcXVpdmFsZW50KGNvbnN0IEhpZ2hs
aWdodCogYSwgY29ucwogewogICAgIGlmIChhID09IGIpCiAgICAgICAgIHJldHVybiB0cnVlOwot
CiAgICAgaWYgKCFhIHx8ICFiKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoYS0+
dHlwZSgpID09IGItPnR5cGUoKSAmJiBhcmVSYW5nZXNFcXVhbChhLT5yYW5nZSgpLCBiLT5yYW5n
ZSgpKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0
dXJuIGEtPnR5cGUoKSA9PSBiLT50eXBlKCkgJiYgYXJlUmFuZ2VzRXF1YWwoJmEtPnJhbmdlKCks
ICZiLT5yYW5nZSgpKTsKIH0KIAogU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0
KiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpmaW5kVGVsZXBob25lTnVtYmVySGlnaGxpZ2h0
Q29udGFpbmluZ1NlbGVjdGlvbkhpZ2hsaWdodChIaWdobGlnaHQmIHNlbGVjdGlvbkhpZ2hsaWdo
dCkKQEAgLTY2OSw3ICs2NjMsNyBAQCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGln
aHQqIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmZpbmRUZWxlcGhvbmVOdQogICAgICAgICBp
ZiAoaGlnaGxpZ2h0LT50eXBlKCkgIT0gSGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlKQog
ICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKGhpZ2hsaWdodC0+cmFuZ2UoKS0+
Y29udGFpbnMoKmFjdGl2ZVNlbGVjdGlvblJhbmdlKSkKKyAgICAgICAgaWYgKGhpZ2hsaWdodC0+
cmFuZ2UoKS5jb250YWlucygqYWN0aXZlU2VsZWN0aW9uUmFuZ2UpKQogICAgICAgICAgICAgcmV0
dXJuIGhpZ2hsaWdodC5nZXQoKTsKICAgICB9CiAKQEAgLTgzMiw3ICs4MjYsNyBAQCB2b2lkIFNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmhhbmRsZUNsaWNrKGNvbnN0IEludFBvaW50JiBjbGlj
a1BvaW50LCBIaWdobGlnaAogCiAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmhhbmRs
ZVNlbGVjdGlvblNlcnZpY2VDbGljayhwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JN
YWluRnJhbWUoKS5zZWxlY3Rpb24oKSwgc2VsZWN0ZWRUZWxlcGhvbmVOdW1iZXJzLCB3aW5kb3dQ
b2ludCk7CiAgICAgfSBlbHNlIGlmIChoaWdobGlnaHQudHlwZSgpID09IEhpZ2hsaWdodDo6VGVs
ZXBob25lTnVtYmVyVHlwZSkKLSAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFuZGxl
VGVsZXBob25lTnVtYmVyQ2xpY2soaGlnaGxpZ2h0LnJhbmdlKCktPnRleHQoKSwgd2luZG93UG9p
bnQpOworICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYW5kbGVUZWxlcGhvbmVOdW1i
ZXJDbGljayhoaWdobGlnaHQucmFuZ2UoKS50ZXh0KCksIHdpbmRvd1BvaW50KTsKIH0KIAogdm9p
ZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpkaWRDcmVhdGVIaWdobGlnaHQoSGlnaGxpZ2h0
KiBoaWdobGlnaHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5k
aWNhdG9yV2luZG93Lm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldp
bmRvdy5tbQppbmRleCBlNGUyMGQyMjc2OGM4ODJlOTAwYjEyYjQxZmUwMmVjZGZiNDhmNjI4Li5l
NTkyOWJhNjNkZTU5ZjQ5ODNiZDhjZjljMzAwNjRlNjcxNzczY2JjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KQEAgLTY0LDcgKzY0LDcgQEAg
QGludGVyZmFjZSBXZWJUZXh0SW5kaWNhdG9yVmlldyA6IE5TVmlldyB7CiAgICAgQk9PTCBfZmFk
aW5nT3V0OwogfQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1l
IHRleHRJbmRpY2F0b3I6KFBhc3NSZWZQdHI8VGV4dEluZGljYXRvcj4pdGV4dEluZGljYXRvciBt
YXJnaW46KE5TU2l6ZSltYXJnaW4gb2Zmc2V0OihOU1BvaW50KW9mZnNldDsKKy0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooVGV4dEluZGlj
YXRvciYpdGV4dEluZGljYXRvciBtYXJnaW46KE5TU2l6ZSltYXJnaW4gb2Zmc2V0OihOU1BvaW50
KW9mZnNldDsKIAogLSAodm9pZClwcmVzZW50OwogLSAodm9pZCloaWRlV2l0aENvbXBsZXRpb25I
YW5kbGVyOih2b2lkKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyOwpAQCAtMTQ3LDEyICsxNDcs
MTIgQEAgc3RhdGljIGJvb2wgaW5kaWNhdG9yV2FudHNNYW51YWxBbmltYXRpb24oY29uc3QgVGV4
dEluZGljYXRvciYgaW5kaWNhdG9yKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihQYXNzUmVm
UHRyPFRleHRJbmRpY2F0b3I+KXRleHRJbmRpY2F0b3IgbWFyZ2luOihOU1NpemUpbWFyZ2luIG9m
ZnNldDooTlNQb2ludClvZmZzZXQKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1Jl
Y3QpZnJhbWUgdGV4dEluZGljYXRvcjooVGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciBtYXJn
aW46KE5TU2l6ZSltYXJnaW4gb2Zmc2V0OihOU1BvaW50KW9mZnNldAogewogICAgIGlmICghKHNl
bGYgPSBbc3VwZXIgaW5pdFdpdGhGcmFtZTpmcmFtZV0pKQogICAgICAgICByZXR1cm4gbmlsOwog
Ci0gICAgX3RleHRJbmRpY2F0b3IgPSB0ZXh0SW5kaWNhdG9yOworICAgIF90ZXh0SW5kaWNhdG9y
ID0gJnRleHRJbmRpY2F0b3I7CiAgICAgX21hcmdpbiA9IG1hcmdpbjsKIAogICAgIHNlbGYud2Fu
dHNMYXllciA9IFlFUzsKQEAgLTQ2NSw3ICs0NjUsOCBAQCB2b2lkIFRleHRJbmRpY2F0b3JXaW5k
b3c6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3IsIENH
UgogICAgIFttX3RleHRJbmRpY2F0b3JXaW5kb3cgc2V0T3BhcXVlOk5PXTsKICAgICBbbV90ZXh0
SW5kaWNhdG9yV2luZG93IHNldElnbm9yZXNNb3VzZUV2ZW50czpZRVNdOwogCi0gICAgbV90ZXh0
SW5kaWNhdG9yVmlldyA9IGFkb3B0TlMoW1tXZWJUZXh0SW5kaWNhdG9yVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIFttX3RleHRJbmRpY2F0b3JXaW5kb3cgZnJhbWVd
LnNpemUud2lkdGgsIFttX3RleHRJbmRpY2F0b3JXaW5kb3cgZnJhbWVdLnNpemUuaGVpZ2h0KSB0
ZXh0SW5kaWNhdG9yOm1fdGV4dEluZGljYXRvciBtYXJnaW46TlNNYWtlU2l6ZShob3Jpem9udGFs
TWFyZ2luLCB2ZXJ0aWNhbE1hcmdpbikgb2Zmc2V0OmZyYWN0aW9uYWxUZXh0T2Zmc2V0XSk7Cisg
ICAgbV90ZXh0SW5kaWNhdG9yVmlldyA9IGFkb3B0TlMoW1tXZWJUZXh0SW5kaWNhdG9yVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIFttX3RleHRJbmRpY2F0b3JXaW5k
b3cgZnJhbWVdLnNpemUud2lkdGgsIFttX3RleHRJbmRpY2F0b3JXaW5kb3cgZnJhbWVdLnNpemUu
aGVpZ2h0KQorICAgICAgICB0ZXh0SW5kaWNhdG9yOiptX3RleHRJbmRpY2F0b3IgbWFyZ2luOk5T
TWFrZVNpemUoaG9yaXpvbnRhbE1hcmdpbiwgdmVydGljYWxNYXJnaW4pIG9mZnNldDpmcmFjdGlv
bmFsVGV4dE9mZnNldF0pOwogICAgIFttX3RleHRJbmRpY2F0b3JXaW5kb3cgc2V0Q29udGVudFZp
ZXc6bV90ZXh0SW5kaWNhdG9yVmlldy5nZXQoKV07CiAKICAgICBbW21fdGFyZ2V0VmlldyB3aW5k
b3ddIGFkZENoaWxkV2luZG93Om1fdGV4dEluZGljYXRvcldpbmRvdy5nZXQoKSBvcmRlcmVkOk5T
V2luZG93QWJvdmVdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCmluZGV4IGE0MzQxN2RjZTFjNDAxMzA4NDY5
MjM4M2ExMmE4Y2YxYWI5ZDIwYjMuLjAxMWFlMGYyMzNjMDkyNmZlZmUwZjBkOTA3YzVmMWE4MGYy
NzI3NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9B
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKQEAgLTMwLDcgKzMwLDYgQEAKICNpbmNsdWRlICJT
Y3JvbGxpbmdDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIlNjcm9sbGluZ1RyZWUuaCIKICNpbmNs
dWRlICJUaW1lci5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02OSwxMSArNjgsMTEgQEAgcHVi
bGljOgogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIEFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IoUGFnZSopOwogCi0gICAgdm9pZCBzZXRTY3JvbGxpbmdUcmVlKFBhc3NSZWZQdHI8U2Ny
b2xsaW5nVHJlZT4gc2Nyb2xsaW5nVHJlZSkgeyBtX3Njcm9sbGluZ1RyZWUgPSBzY3JvbGxpbmdU
cmVlOyB9CisgICAgdm9pZCBzZXRTY3JvbGxpbmdUcmVlKFJlZjxTY3JvbGxpbmdUcmVlPiYmIHNj
cm9sbGluZ1RyZWUpIHsgbV9zY3JvbGxpbmdUcmVlID0gV1RGTW92ZShzY3JvbGxpbmdUcmVlKTsg
fQogCiAgICAgU2Nyb2xsaW5nU3RhdGVUcmVlKiBzY3JvbGxpbmdTdGF0ZVRyZWUoKSB7IHJldHVy
biBtX3Njcm9sbGluZ1N0YXRlVHJlZS5nZXQoKTsgfQogCi0gICAgUGFzc1JlZlB0cjxTY3JvbGxp
bmdUcmVlPiByZWxlYXNlU2Nyb2xsaW5nVHJlZSgpIHsgcmV0dXJuIFdURk1vdmUobV9zY3JvbGxp
bmdUcmVlKTsgfQorICAgIFJlZlB0cjxTY3JvbGxpbmdUcmVlPiByZWxlYXNlU2Nyb2xsaW5nVHJl
ZSgpIHsgcmV0dXJuIFdURk1vdmUobV9zY3JvbGxpbmdUcmVlKTsgfQogCiAgICAgdm9pZCB1cGRh
dGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBG
bG9hdFBvaW50Jiwgc3RkOjpvcHRpb25hbDxGbG9hdFBvaW50PiBsYXlvdXRWaWV3cG9ydE9yaWdp
biwgYm9vbCBwcm9ncmFtbWF0aWNTY3JvbGwsIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24p
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRj
aGluZ1N0YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNo
aW5nU3RhdGUuY3BwCmluZGV4IGUzOWQ5OWVmYmEzMDY4Y2NiMDU1YjQwZDFjNzI0Mzc3ZDU4ZTM1
YmUuLjAxZTY1MjliMDJjOGMxZDcwYWU3NzMyODNlYjdmNzMwMDU3NGY5ODUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuY3Bw
CkBAIC0zMSw5ICszMSw2IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNjcm9sbExhdGNoaW5n
U3RhdGU6OlNjcm9sbExhdGNoaW5nU3RhdGUoKQotICAgIDogbV9mcmFtZShudWxscHRyKQotICAg
ICwgbV93aWRnZXRJc0xhdGNoZWQoZmFsc2UpCi0gICAgLCBtX3N0YXJ0ZWRHZXN0dXJlQXRTY3Jv
bGxMaW1pdChmYWxzZSkKIHsKIH0KICAgICAKQEAgLTUwLDcgKzQ3LDcgQEAgdm9pZCBTY3JvbGxM
YXRjaGluZ1N0YXRlOjpjbGVhcigpCiAgICAgbV9wcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50
ID0gbnVsbHB0cjsKIH0KIAotdm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRlOjpzZXRXaGVlbEV2ZW50
RWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+IGVsZW1lbnQpCit2b2lkIFNjcm9sbExhdGNoaW5n
U3RhdGU6OnNldFdoZWVsRXZlbnRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgbV93
aGVlbEV2ZW50RWxlbWVudCA9IGVsZW1lbnQ7CiB9CkBAIC02MCwxNCArNTcsMTQgQEAgdm9pZCBT
Y3JvbGxMYXRjaGluZ1N0YXRlOjpzZXRXaWRnZXRJc0xhdGNoZWQoYm9vbCBpc092ZXJXaWRnZXQp
CiAgICAgbV93aWRnZXRJc0xhdGNoZWQgPSBpc092ZXJXaWRnZXQ7CiB9CiAKLXZvaWQgU2Nyb2xs
TGF0Y2hpbmdTdGF0ZTo6c2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudChSZWZQdHI8RWxl
bWVudD4mJiBlbGVtZW50KQordm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRlOjpzZXRQcmV2aW91c1do
ZWVsU2Nyb2xsZWRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgbV9wcmV2aW91c1do
ZWVsU2Nyb2xsZWRFbGVtZW50ID0gZWxlbWVudDsKIH0KIAotdm9pZCBTY3JvbGxMYXRjaGluZ1N0
YXRlOjpzZXRTY3JvbGxhYmxlQ29udGFpbmVyKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4gbm9k
ZSkKK3ZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihDb250
YWluZXJOb2RlKiBjb250YWluZXIpCiB7Ci0gICAgbV9zY3JvbGxhYmxlQ29udGFpbmVyID0gbm9k
ZTsKKyAgICBtX3Njcm9sbGFibGVDb250YWluZXIgPSBjb250YWluZXI7CiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuaApp
bmRleCA0ZGMwZGQzMjI5M2IzOTBlYzliNjcxY2ZlM2IxOTg1N2M5NzNjNDc4Li4xMWRjYmQwZGIx
NTVlMDQ1MDAwNTYyMWEwNTE3NDc2ZDJiOTI5M2EwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oCkBAIC00MSw3ICs0MSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIGNsZWFyKCk7CiAKICAgICBFbGVtZW50KiB3aGVlbEV2ZW50RWxl
bWVudCgpIHsgcmV0dXJuIG1fd2hlZWxFdmVudEVsZW1lbnQuZ2V0KCk7IH0KLSAgICB2b2lkIHNl
dFdoZWVsRXZlbnRFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4pOworICAgIHZvaWQgc2V0V2hl
ZWxFdmVudEVsZW1lbnQoRWxlbWVudCopOwogICAgIEZyYW1lKiBmcmFtZSgpIHsgcmV0dXJuIG1f
ZnJhbWU7IH0KICAgICB2b2lkIHNldEZyYW1lKEZyYW1lKiBmcmFtZSkgeyBtX2ZyYW1lID0gZnJh
bWU7IH0KIApAQCAtNDksMTAgKzQ5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFdpZGdldElz
TGF0Y2hlZChib29sIGlzT3ZlcldpZGdldCk7CiAKICAgICBFbGVtZW50KiBwcmV2aW91c1doZWVs
U2Nyb2xsZWRFbGVtZW50KCkgeyByZXR1cm4gbV9wcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50
LmdldCgpOyB9Ci0gICAgdm9pZCBzZXRQcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50KFJlZlB0
cjxFbGVtZW50PiYmKTsKKyAgICB2b2lkIHNldFByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQo
RWxlbWVudCopOwogICAgIAogICAgIENvbnRhaW5lck5vZGUqIHNjcm9sbGFibGVDb250YWluZXIo
KSB7IHJldHVybiBtX3Njcm9sbGFibGVDb250YWluZXIuZ2V0KCk7IH0KLSAgICB2b2lkIHNldFNj
cm9sbGFibGVDb250YWluZXIoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPik7CisgICAgdm9pZCBz
ZXRTY3JvbGxhYmxlQ29udGFpbmVyKENvbnRhaW5lck5vZGUqKTsKICAgICBib29sIHN0YXJ0ZWRH
ZXN0dXJlQXRTY3JvbGxMaW1pdCgpIGNvbnN0IHsgcmV0dXJuIG1fc3RhcnRlZEdlc3R1cmVBdFNj
cm9sbExpbWl0OyB9CiAgICAgdm9pZCBzZXRTdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQoYm9v
bCBzdGFydGVkQXRMaW1pdCkgeyBtX3N0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdCA9IHN0YXJ0
ZWRBdExpbWl0OyB9CiAKQEAgLTYxLDEwICs2MSwxMCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxF
bGVtZW50PiBtX3ByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQ7CiAgICAgUmVmUHRyPENvbnRh
aW5lck5vZGU+IG1fc2Nyb2xsYWJsZUNvbnRhaW5lcjsKIAotICAgIEZyYW1lKiBtX2ZyYW1lOwot
ICAgIAotICAgIGJvb2wgbV93aWRnZXRJc0xhdGNoZWQ7Ci0gICAgYm9vbCBtX3N0YXJ0ZWRHZXN0
dXJlQXRTY3JvbGxMaW1pdDsKKyAgICBGcmFtZSogbV9mcmFtZSB7IG51bGxwdHIgfTsKKworICAg
IGJvb2wgbV93aWRnZXRJc0xhdGNoZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9zdGFydGVkR2Vz
dHVyZUF0U2Nyb2xsTGltaXQgeyBmYWxzZSB9OwogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1N0YXRlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdT
dGF0ZU5vZGUuY3BwCmluZGV4IGM4NDU5YjA1YTBkMTY3YjVhY2VhZDE0MDk1ZTkzZjZlZDc3ZjI0
ZDAuLjYxZGE1OGE5ZGVlYzBmNjhkNWRhNjIwZTJkNmZkODAzMTVhNzRjMjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcApA
QCAtNzIsNyArNzIsNyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6c2V0UHJvcGVydHlDaGFu
Z2VkKHVuc2lnbmVkIHByb3BlcnR5Qml0KQogICAgIG1fc2Nyb2xsaW5nU3RhdGVUcmVlLnNldEhh
c0NoYW5nZWRQcm9wZXJ0aWVzKCk7CiB9CiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2Rl
PiBTY3JvbGxpbmdTdGF0ZU5vZGU6OmNsb25lQW5kUmVzZXQoU2Nyb2xsaW5nU3RhdGVUcmVlJiBh
ZG9wdGl2ZVRyZWUpCitSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZU5vZGU6
OmNsb25lQW5kUmVzZXQoU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpCiB7CiAgICAg
YXV0byBjbG9uZSA9IHRoaXMtPmNsb25lKGFkb3B0aXZlVHJlZSk7CiAKQEAgLTgwLDcgKzgwLDgg
QEAgUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlTm9kZTo6Y2xv
bmVBbmRSZXNldChTY3JvbGxpbmdTdGF0ZVQKICAgICByZXNldENoYW5nZWRQcm9wZXJ0aWVzKCk7
CiAKICAgICBjbG9uZUFuZFJlc2V0Q2hpbGRyZW4oY2xvbmUuZ2V0KCksIGFkb3B0aXZlVHJlZSk7
Ci0gICAgcmV0dXJuIFdURk1vdmUoY2xvbmUpOworCisgICAgcmV0dXJuIGNsb25lOwogfQogCiB2
b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVBbmRSZXNldENoaWxkcmVuKFNjcm9sbGluZ1N0
YXRlTm9kZSYgY2xvbmUsIFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVlKQpAQCAtOTIs
MTQgKzkzLDEzIEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0Q2hpbGRy
ZW4oU2Nyb2xsaW5nU3RhdGVOb2RlJiBjbG9uZSwgU2Nyb2xsCiAgICAgICAgIGNsb25lLmFwcGVu
ZENoaWxkKGNoaWxkLT5jbG9uZUFuZFJlc2V0KGFkb3B0aXZlVHJlZSkpOwogfQogCi12b2lkIFNj
cm9sbGluZ1N0YXRlTm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5v
ZGU+IGNoaWxkTm9kZSkKK3ZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjphcHBlbmRDaGlsZChSZWY8
U2Nyb2xsaW5nU3RhdGVOb2RlPiYmIGNoaWxkTm9kZSkKIHsKICAgICBjaGlsZE5vZGUtPnNldFBh
cmVudCh0aGlzKTsKIAogICAgIGlmICghbV9jaGlsZHJlbikKICAgICAgICAgbV9jaGlsZHJlbiA9
IHN0ZDo6bWFrZV91bmlxdWU8VmVjdG9yPFJlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+Pj4oKTsK
LQotICAgIG1fY2hpbGRyZW4tPmFwcGVuZChjaGlsZE5vZGUpOworICAgIG1fY2hpbGRyZW4tPmFw
cGVuZChXVEZNb3ZlKGNoaWxkTm9kZSkpOwogfQogCiB2b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6
c2V0TGF5ZXIoY29uc3QgTGF5ZXJSZXByZXNlbnRhdGlvbiYgbGF5ZXJSZXByZXNlbnRhdGlvbikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
Tm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2Rl
LmgKaW5kZXggYmZhZDFjNDVlMGQ3MWY5YmE3YzJiYzA4MjNmMTFiZTQ2OGQ2OWVjMC4uMDg3ZDYx
ODI5YWRlNTQ2MTA2MTIwNTc1YmQ0MWExNjgwZWJjMWQxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmgKQEAgLTIwNiw3ICsyMDYs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc092ZXJmbG93U2Nyb2xsaW5nTm9kZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbm9kZVR5cGUgPT0gT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOyB9CiAKICAgICB2aXJ0
dWFsIFJlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+IGNsb25lKFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRv
cHRpdmVUcmVlKSA9IDA7Ci0gICAgUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IGNsb25l
QW5kUmVzZXQoU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpOworICAgIFJlZjxTY3Jv
bGxpbmdTdGF0ZU5vZGU+IGNsb25lQW5kUmVzZXQoU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2
ZVRyZWUpOwogICAgIHZvaWQgY2xvbmVBbmRSZXNldENoaWxkcmVuKFNjcm9sbGluZ1N0YXRlTm9k
ZSYsIFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVlKTsKIAogICAgIGVudW0gewpAQCAt
MjM4LDcgKzIzOCw3IEBAIHB1YmxpYzoKIAogICAgIFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5nU3Rh
dGVOb2RlPj4qIGNoaWxkcmVuKCkgY29uc3QgeyByZXR1cm4gbV9jaGlsZHJlbi5nZXQoKTsgfQog
Ci0gICAgdm9pZCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4pOwor
ICAgIHZvaWQgYXBwZW5kQ2hpbGQoUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4mJik7CiAKICAgICBT
dHJpbmcgc2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0KCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwCmluZGV4IDk4
YjZjYWRjYjRjMzUxY2QyZDc2NjY0NjU3M2UzODVhNzMyZmMxNDIuLjBiYmMxYjczMzgyNzE5YjYy
NThkMTFkMDQ5NDMzZTMyOTg3YTNlMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcApAQCAtNjcsNyArNjcsNyBAQCB2b2lk
IFNjcm9sbGluZ1N0YXRlVHJlZTo6c2V0SGFzQ2hhbmdlZFByb3BlcnRpZXMoYm9vbCBjaGFuZ2Vk
UHJvcGVydGllcykKICNlbmRpZgogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4g
U2Nyb2xsaW5nU3RhdGVUcmVlOjpjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBl
LCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQorUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xs
aW5nU3RhdGVUcmVlOjpjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3Jv
bGxpbmdOb2RlSUQgbm9kZUlEKQogewogICAgIHN3aXRjaCAobm9kZVR5cGUpIHsKICAgICBjYXNl
IEZpeGVkTm9kZToKQEAgLTgwLDcgKzgwLDcgQEAgUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5v
ZGU+IFNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZQogICAg
ICAgICByZXR1cm4gU2Nyb2xsaW5nU3RhdGVPdmVyZmxvd1Njcm9sbGluZ05vZGU6OmNyZWF0ZSgq
dGhpcywgbm9kZUlEKTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0
dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIFNjcm9sbGluZ1N0YXRlRml4ZWROb2RlOjpjcmVhdGUo
KnRoaXMsIG5vZGVJRCk7CiB9CiAKIGJvb2wgU2Nyb2xsaW5nU3RhdGVUcmVlOjpub2RlVHlwZUFu
ZFBhcmVudE1hdGNoKFNjcm9sbGluZ1N0YXRlTm9kZSYgbm9kZSwgU2Nyb2xsaW5nTm9kZVR5cGUg
bm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBwYXJlbnRJRCkgY29uc3QKQEAgLTEyOSwxMyArMTI5
LDEzIEBAIFNjcm9sbGluZ05vZGVJRCBTY3JvbGxpbmdTdGF0ZVRyZWU6OmF0dGFjaE5vZGUoU2Ny
b2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sCiAgICAgICAgIGlmIChub2RlVHlwZSA9PSBG
cmFtZVNjcm9sbGluZ05vZGUgJiYgcGFyZW50SUQpIHsKICAgICAgICAgICAgIGlmIChhdXRvIG9y
cGhhbmVkTm9kZSA9IG1fb3JwaGFuZWRTdWJmcmFtZU5vZGVzLnRha2UobmV3Tm9kZUlEKSkgewog
ICAgICAgICAgICAgICAgIG5ld05vZGUgPSBvcnBoYW5lZE5vZGUuZ2V0KCk7Ci0gICAgICAgICAg
ICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZChXVEZNb3ZlKG9ycGhhbmVkTm9kZSkpOworICAgICAg
ICAgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQob3JwaGFuZWROb2RlLnJlbGVhc2VOb25OdWxs
KCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFuZXdOb2RlKSB7
CiAgICAgICAgICAgICBhdXRvIHN0YXRlTm9kZSA9IGNyZWF0ZU5vZGUobm9kZVR5cGUsIG5ld05v
ZGVJRCk7Ci0gICAgICAgICAgICBuZXdOb2RlID0gc3RhdGVOb2RlLmdldCgpOworICAgICAgICAg
ICAgbmV3Tm9kZSA9IHN0YXRlTm9kZS5wdHIoKTsKICAgICAgICAgICAgIHBhcmVudC0+YXBwZW5k
Q2hpbGQoV1RGTW92ZShzdGF0ZU5vZGUpKTsKICAgICAgICAgfQogICAgIH0KQEAgLTE4Miw3ICsx
ODIsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nU3RhdGVUcmVlPiBTY3JvbGxpbmdTdGF0
ZVRyZWU6OmNvbW1pdChMYXllclJlcHJlc2VudGF0aQogICAgIHRyZWVTdGF0ZUNsb25lLT5zZXRQ
cmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9uKHByZWZlcnJlZExheWVyUmVwcmVzZW50YXRpb24p
OwogCiAgICAgaWYgKG1fcm9vdFN0YXRlTm9kZSkKLSAgICAgICAgdHJlZVN0YXRlQ2xvbmUtPnNl
dFJvb3RTdGF0ZU5vZGUoc3RhdGljX3BvaW50ZXJfY2FzdDxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Ny
b2xsaW5nTm9kZT4obV9yb290U3RhdGVOb2RlLT5jbG9uZUFuZFJlc2V0KCp0cmVlU3RhdGVDbG9u
ZSkpKTsKKyAgICAgICAgdHJlZVN0YXRlQ2xvbmUtPnNldFJvb3RTdGF0ZU5vZGUoc3RhdGljX3Jl
ZmVyZW5jZV9jYXN0PFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPihtX3Jvb3RTdGF0
ZU5vZGUtPmNsb25lQW5kUmVzZXQoKnRyZWVTdGF0ZUNsb25lKSkpOwogCiAgICAgLy8gQ29weSB0
aGUgSURzIG9mIHRoZSBub2RlcyB0aGF0IGhhdmUgYmVlbiByZW1vdmVkIHNpbmNlIHRoZSBsYXN0
IGNvbW1pdCBpbnRvIHRoZSBjbG9uZS4KICAgICB0cmVlU3RhdGVDbG9uZS0+bV9ub2Rlc1JlbW92
ZWRTaW5jZUxhc3RDb21taXQuc3dhcChtX25vZGVzUmVtb3ZlZFNpbmNlTGFzdENvbW1pdCk7CkBA
IC0yMTEsNyArMjExLDggQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVRyZWU6OnJlbW92ZU5vZGVBbmRB
bGxEZXNjZW5kYW50cyhTY3JvbGxpbmdTdGF0ZU5vZGUqIG5vZGUsIFMKICAgICBpZiAobm9kZSA9
PSBtX3Jvb3RTdGF0ZU5vZGUpCiAgICAgICAgIG1fcm9vdFN0YXRlTm9kZSA9IG51bGxwdHI7CiAg
ICAgZWxzZSBpZiAocGFyZW50KSB7Ci0gICAgICAgIEFTU0VSVChwYXJlbnQtPmNoaWxkcmVuKCkg
JiYgcGFyZW50LT5jaGlsZHJlbigpLT5maW5kKG5vZGUpICE9IG5vdEZvdW5kKTsKKyAgICAgICAg
QVNTRVJUKHBhcmVudC0+Y2hpbGRyZW4oKSk7CisgICAgICAgIEFTU0VSVChwYXJlbnQtPmNoaWxk
cmVuKCktPmZpbmQobm9kZSkgIT0gbm90Rm91bmQpOwogICAgICAgICBpZiAoYXV0byBjaGlsZHJl
biA9IHBhcmVudC0+Y2hpbGRyZW4oKSkgewogICAgICAgICAgICAgc2l6ZV90IGluZGV4ID0gY2hp
bGRyZW4tPmZpbmQobm9kZSk7CiAgICAgICAgICAgICBpZiAoaW5kZXggIT0gbm90Rm91bmQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRy
ZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5o
CmluZGV4IDMxZjZkYjc5ZTdiNDBjMWIzMmYyZWE3Y2RjZmZjNDhmMTdiZmNlMzEuLjNiMjU2MTUx
YWQ3NDRiY2YwMjM0ZDcyZDRmZDNhMGM3NWQ0MzY5MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5oCkBAIC03NCwxNyArNzQsMTQg
QEAgcHVibGljOgogICAgIHZvaWQgc2V0UHJlZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbihMYXll
clJlcHJlc2VudGF0aW9uOjpUeXBlIHJlcHJlc2VudGF0aW9uKSB7IG1fcHJlZmVycmVkTGF5ZXJS
ZXByZXNlbnRhdGlvbiA9IHJlcHJlc2VudGF0aW9uOyB9CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBz
ZXRSb290U3RhdGVOb2RlKFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05v
ZGU+IHJvb3RTdGF0ZU5vZGUpIHsgbV9yb290U3RhdGVOb2RlID0gcm9vdFN0YXRlTm9kZTsgfQor
ICAgIHZvaWQgc2V0Um9vdFN0YXRlTm9kZShSZWY8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGlu
Z05vZGU+JiYgcm9vdFN0YXRlTm9kZSkgeyBtX3Jvb3RTdGF0ZU5vZGUgPSBXVEZNb3ZlKHJvb3RT
dGF0ZU5vZGUpOyB9CiAgICAgdm9pZCBhZGROb2RlKFNjcm9sbGluZ1N0YXRlTm9kZSopOwogCi0g
ICAgUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IGNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9k
ZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CisgICAgUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4gY3Jl
YXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKIAogICAgIGJvb2wg
bm9kZVR5cGVBbmRQYXJlbnRNYXRjaChTY3JvbGxpbmdTdGF0ZU5vZGUmLCBTY3JvbGxpbmdOb2Rl
VHlwZSwgU2Nyb2xsaW5nTm9kZUlEIHBhcmVudElEKSBjb25zdDsKIAotICAgIGVudW0gY2xhc3Mg
U3ViZnJhbWVOb2RlUmVtb3ZhbCB7Ci0gICAgICAgIERlbGV0ZSwKLSAgICAgICAgT3JwaGFuCi0g
ICAgfTsKKyAgICBlbnVtIGNsYXNzIFN1YmZyYW1lTm9kZVJlbW92YWwgeyBEZWxldGUsIE9ycGhh
biB9OwogICAgIHZvaWQgcmVtb3ZlTm9kZUFuZEFsbERlc2NlbmRhbnRzKFNjcm9sbGluZ1N0YXRl
Tm9kZSosIFN1YmZyYW1lTm9kZVJlbW92YWwgPSBTdWJmcmFtZU5vZGVSZW1vdmFsOjpEZWxldGUp
OwogCiAgICAgdm9pZCByZWN1cnNpdmVOb2RlV2lsbEJlUmVtb3ZlZChTY3JvbGxpbmdTdGF0ZU5v
ZGUqIGN1cnJOb2RlLCBTdWJmcmFtZU5vZGVSZW1vdmFsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZDAwZWM1ZGQ5YjFiN2Q0YTZk
NjFiZjVkMTM5YjQ5OTJlNjM3ZDhlZi4uNDBiY2M2M2ZmOGMzMzdhZmJjMTBiZDRiOTllYjFjMDAz
ZjQ3NTBjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5jcHAKQEAgLTE3OSw3ICsxNzksNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnVwZGF0ZVRy
ZWVGcm9tU3RhdGVOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSogc3RhdGVOb2RlLAogICAg
ICAgICBpZiAocGFyZW50SXQgIT0gbV9ub2RlTWFwLmVuZCgpKSB7CiAgICAgICAgICAgICBTY3Jv
bGxpbmdUcmVlTm9kZSogcGFyZW50ID0gcGFyZW50SXQtPnZhbHVlOwogICAgICAgICAgICAgbm9k
ZS0+c2V0UGFyZW50KHBhcmVudCk7Ci0gICAgICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKG5v
ZGUpOworICAgICAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZCgqbm9kZSk7CiAgICAgICAgIH0K
ICAgICB9CiAKQEAgLTE4OSw3ICsxODksNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OnVwZGF0ZVRy
ZWVGcm9tU3RhdGVOb2RlKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSogc3RhdGVOb2RlLAogICAg
IGlmIChhdXRvIG5vZGVDaGlsZHJlbiA9IG5vZGUtPmNoaWxkcmVuKCkpIHsKICAgICAgICAgZm9y
IChhdXRvJiBjaGlsZFNjcm9sbGluZ05vZGUgOiAqbm9kZUNoaWxkcmVuKSB7CiAgICAgICAgICAg
ICBjaGlsZFNjcm9sbGluZ05vZGUtPnNldFBhcmVudChudWxscHRyKTsKLSAgICAgICAgICAgIG9y
cGhhbk5vZGVzLmFkZChjaGlsZFNjcm9sbGluZ05vZGUtPnNjcm9sbGluZ05vZGVJRCgpLCBjaGls
ZFNjcm9sbGluZ05vZGUpOworICAgICAgICAgICAgb3JwaGFuTm9kZXMuYWRkKGNoaWxkU2Nyb2xs
aW5nTm9kZS0+c2Nyb2xsaW5nTm9kZUlEKCksIGNoaWxkU2Nyb2xsaW5nTm9kZS5nZXQoKSk7CiAg
ICAgICAgIH0KICAgICAgICAgbm9kZUNoaWxkcmVuLT5jbGVhcigpOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCA2NzM0YjUzYWRh
YjVjMzk5YjkzM2FjMzc3ZWRlNzRiOGMyYTA1YTRkLi5hYWYyZDQ3OGJiYjgwMDk1ZjU1OTZjOTE0
NjA2ZTJiOWI1ZDhmOGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZS5oCkBAIC03NCw3ICs3NCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0TWFp
bkZyYW1lUGluU3RhdGUoYm9vbCBwaW5uZWRUb1RoZUxlZnQsIGJvb2wgcGlubmVkVG9UaGVSaWdo
dCwgYm9vbCBwaW5uZWRUb1RoZVRvcCwgYm9vbCBwaW5uZWRUb1RoZUJvdHRvbSk7CiAKLSAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpID0gMDsKKyAgICB2aXJ0dWFs
IFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5n
Tm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgPSAwOwogCiAgICAgLy8gQ2FsbGVkIGFmdGVyIGEg
c2Nyb2xsaW5nIHRyZWUgbm9kZSBoYXMgaGFuZGxlZCBhIHNjcm9sbCBhbmQgdXBkYXRlZCBpdHMg
bGF5ZXJzLgogICAgIC8vIFVwZGF0ZXMgRnJhbWVWaWV3L1JlbmRlckxheWVyIHNjcm9sbGluZyBz
dGF0ZSBhbmQgR3JhcGhpY3NMYXllcnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHAKaW5kZXggZGViNzgxYTFjMWY5ZmRkMDMzYzk5
OTVjOTkyMWMwNzI5OTI2OWEyYS4uMGY2NjE2ZDBmM2RjMzU3ODYzMDZmZDQ2NmY3YTY5NjQxNWIy
ZWVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVOb2RlLmNwcApAQCAtNDUsMjIgKzQ1LDIxIEBAIFNjcm9sbGluZ1RyZWVOb2RlOjp+U2Ny
b2xsaW5nVHJlZU5vZGUoKQogewogfQogCi12b2lkIFNjcm9sbGluZ1RyZWVOb2RlOjphcHBlbmRD
aGlsZChQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjaGlsZE5vZGUpCit2b2lkIFNjcm9s
bGluZ1RyZWVOb2RlOjphcHBlbmRDaGlsZChSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+JiYgY2hpbGRO
b2RlKQogewogICAgIGNoaWxkTm9kZS0+c2V0UGFyZW50KHRoaXMpOwogCiAgICAgaWYgKCFtX2No
aWxkcmVuKQotICAgICAgICBtX2NoaWxkcmVuID0gc3RkOjptYWtlX3VuaXF1ZTxTY3JvbGxpbmdU
cmVlQ2hpbGRyZW5WZWN0b3I+KCk7Ci0KLSAgICBtX2NoaWxkcmVuLT5hcHBlbmQoY2hpbGROb2Rl
KTsKKyAgICAgICAgbV9jaGlsZHJlbiA9IHN0ZDo6bWFrZV91bmlxdWU8VmVjdG9yPFJlZlB0cjxT
Y3JvbGxpbmdUcmVlTm9kZT4+PigpOworICAgIG1fY2hpbGRyZW4tPmFwcGVuZChXVEZNb3ZlKGNo
aWxkTm9kZSkpOwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWVOb2RlOjpyZW1vdmVDaGlsZChTY3Jv
bGxpbmdUcmVlTm9kZSogbm9kZSkKK3ZvaWQgU2Nyb2xsaW5nVHJlZU5vZGU6OnJlbW92ZUNoaWxk
KFNjcm9sbGluZ1RyZWVOb2RlJiBub2RlKQogewogICAgIGlmICghbV9jaGlsZHJlbikKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgc2l6ZV90IGluZGV4ID0gbV9jaGlsZHJlbi0+ZmluZChub2RlKTsK
KyAgICBzaXplX3QgaW5kZXggPSBtX2NoaWxkcmVuLT5maW5kKCZub2RlKTsKIAogICAgIC8vIFRo
ZSBpbmRleCB3aWxsIGJlIG5vdEZvdW5kIGlmIHRoZSBub2RlIHRvIHJlbW92ZSBpcyBhIGRlZXBl
ci10aGFuLTEtbGV2ZWwgZGVzY2VuZGFudCBvcgogICAgIC8vIGlmIG5vZGUgaXMgdGhlIHJvb3Qg
c3RhdGUgbm9kZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlTm9kZS5oCmluZGV4IDNlODZlM2Q0NzhkMzQwNjkzNTllYWE1YzZiOWNmYmFjNjc1Y2Vk
MDUuLjJlMTYzMjQ2YmI5NmUzM2ZlZjYyYWRhNzFiNDFhMjEzOTIxMjc5MzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaApAQCAtNjAs
MTEgKzYwLDEwIEBAIHB1YmxpYzoKICAgICBTY3JvbGxpbmdUcmVlTm9kZSogcGFyZW50KCkgY29u
c3QgeyByZXR1cm4gbV9wYXJlbnQ7IH0KICAgICB2b2lkIHNldFBhcmVudChTY3JvbGxpbmdUcmVl
Tm9kZSogcGFyZW50KSB7IG1fcGFyZW50ID0gcGFyZW50OyB9CiAKLSAgICB0eXBlZGVmIFZlY3Rv
cjxSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+PiBTY3JvbGxpbmdUcmVlQ2hpbGRyZW5WZWN0b3I7
Ci0gICAgU2Nyb2xsaW5nVHJlZUNoaWxkcmVuVmVjdG9yKiBjaGlsZHJlbigpIHsgcmV0dXJuIG1f
Y2hpbGRyZW4uZ2V0KCk7IH0KLSAgICAKLSAgICB2b2lkIGFwcGVuZENoaWxkKFBhc3NSZWZQdHI8
U2Nyb2xsaW5nVHJlZU5vZGU+KTsKLSAgICB2b2lkIHJlbW92ZUNoaWxkKFNjcm9sbGluZ1RyZWVO
b2RlKik7CisgICAgVmVjdG9yPFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4+KiBjaGlsZHJlbigp
IHsgcmV0dXJuIG1fY2hpbGRyZW4uZ2V0KCk7IH0KKworICAgIHZvaWQgYXBwZW5kQ2hpbGQoUmVm
PFNjcm9sbGluZ1RyZWVOb2RlPiYmKTsKKyAgICB2b2lkIHJlbW92ZUNoaWxkKFNjcm9sbGluZ1Ry
ZWVOb2RlJik7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGR1bXAoVGV4dFN0cmVhbSYsIFNj
cm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdDsKIApAQCAtNzIsNyArNzEsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nVHJlZSYsIFNjcm9s
bGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogICAgIFNjcm9sbGluZ1RyZWUmIHNjcm9s
bGluZ1RyZWUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGluZ1RyZWU7IH0KIAotICAgIHN0ZDo6
dW5pcXVlX3B0cjxTY3JvbGxpbmdUcmVlQ2hpbGRyZW5WZWN0b3I+IG1fY2hpbGRyZW47CisgICAg
c3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+Pj4gbV9jaGls
ZHJlbjsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgdm9pZCBkdW1wUHJvcGVydGllcyhU
ZXh0U3RyZWFtJiwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZpb3IpIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGlu
Z1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxp
bmdUcmVlLmNwcAppbmRleCBiY2I0OGU0OTVjMWIwYjg5ZTc1YTdhYTMzZTg1ZTU5NGQ3YzVlNjg1
Li5mNjY0ZWQzYWMzYmU1MzhkZmYyZmU1ODgwMmEwOTc3YWEwYWEwODkwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5j
cHAKQEAgLTM5LDggKzM5LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1UaHJlYWRlZFNj
cm9sbGluZ1RyZWU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yKiBzY3JvbGxpbmdDb29yZGluYXRvcikKLSAgICA6IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3Io
c2Nyb2xsaW5nQ29vcmRpbmF0b3IpCitUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OlRocmVhZGVkU2Ny
b2xsaW5nVHJlZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRv
cikKKyAgICA6IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IoJnNjcm9sbGluZ0Nvb3JkaW5hdG9yKQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRl
ZFNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVk
U2Nyb2xsaW5nVHJlZS5oCmluZGV4IDczMjU0MDU5YzJkNzcwMjA1Y2VmZGJkMTUzMGFiMjc5MDRh
YTczNjMuLjZkMWQ0OWQ2N2VjYTVmYThkNTJhODU4ZWVjZjVmOTNlZTljOTcwZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJl
ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbnZhbGlkYXRlKCkgb3Zl
cnJpZGU7CiAKIHByb3RlY3RlZDoKLSAgICBleHBsaWNpdCBUaHJlYWRlZFNjcm9sbGluZ1RyZWUo
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciopOworICAgIGV4cGxpY2l0IFRocmVhZGVkU2Nyb2xs
aW5nVHJlZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJik7CiAKICAgICB2b2lkIHNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24sIGNvbnN0IHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdw
b3J0T3JpZ2luLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbkFjdGlvbjo6U3luYykgb3ZlcnJpZGU7CiAgICAgdm9pZCBjdXJyZW50U25hcFBvaW50
SW5kaWNlc0RpZENoYW5nZShTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVu
c2lnbmVkIHZlcnRpY2FsKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNwcAppbmRleCAxMGIzZjg3MzQ1ZmRh
NDNjY2RmZTljMTVmZTQxN2Y0NmFmNTU0NWVhLi4xZjAzZTY4NmU5Zjg3NThlYzY1YTliNmY5YjYx
N2ViMmY4NjhjNjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9p
b3MvU2Nyb2xsaW5nVHJlZUlPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1SZWY8U2Nyb2xsaW5nVHJlZUlPUz4gU2Nyb2xsaW5nVHJlZUlPUzo6
Y3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQor
UmVmPFNjcm9sbGluZ1RyZWVJT1M+IFNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZShBc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRvcikKIHsKICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTY3JvbGxpbmdUcmVlSU9TKHNjcm9sbGluZ0Nvb3JkaW5hdG9yKSk7CiB9CiAK
LVNjcm9sbGluZ1RyZWVJT1M6OlNjcm9sbGluZ1RyZWVJT1MoQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCi0gICAgOiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9y
KHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorU2Nyb2xsaW5nVHJlZUlPUzo6U2Nyb2xsaW5nVHJlZUlP
UyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRvcikKKyAgICA6
IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IoJnNjcm9sbGluZ0Nvb3JkaW5hdG9yKQogewogfQogCkBA
IC04MywyMCArODMsMjEgQEAgdm9pZCBTY3JvbGxpbmdUcmVlSU9TOjpzY3JvbGxpbmdUcmVlTm9k
ZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdAogICAgIH0pOwogfQogCi1Q
YXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlSU9TOjpjcmVhdGVTY3Jv
bGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlE
IG5vZGVJRCkKK1JlZjxTY3JvbGxpbmdUcmVlTm9kZT4gU2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRl
U2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05v
ZGVJRCBub2RlSUQpCiB7CiAgICAgc3dpdGNoIChub2RlVHlwZSkgewogICAgIGNhc2UgRnJhbWVT
Y3JvbGxpbmdOb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZUlPUzo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIGNhc2UgT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRml4ZWROb2RlOgogICAgICAgICByZXR1
cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIGNh
c2UgU3RpY2t5Tm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjpj
cmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgfQotICAgIHJldHVybiBudWxscHRyOworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpj
cmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKIEZsb2F0UmVjdCBTY3JvbGxpbmdUcmVlSU9TOjpm
aXhlZFBvc2l0aW9uUmVjdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaAppbmRleCAxYTlhYWUxYjQwYzgxMjY4MzQ0ODQxY2U3
YjMwNzVlZjcwYTdlNTU0Li5hZWE2OWIzOWY1OWM5NjE1ZDE4MGFhZWE2ZWI4OTcyNTljZGFkOTQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5n
VHJlZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxp
bmdUcmVlSU9TLmgKQEAgLTI5LDM1ICsyOSwzMSBAQAogCiAjaW5jbHVkZSAiU2Nyb2xsaW5nU3Rh
dGVUcmVlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiAKLWNsYXNzIFNjcm9sbGluZ1Ry
ZWVJT1MgOiBwdWJsaWMgU2Nyb2xsaW5nVHJlZSB7CitjbGFzcyBTY3JvbGxpbmdUcmVlSU9TIGZp
bmFsIDogcHVibGljIFNjcm9sbGluZ1RyZWUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U2Ny
b2xsaW5nVHJlZUlPUz4gY3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqKTsKKyAgICBz
dGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVJT1M+IGNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yJik7CiAgICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZUlPUygpOwogCi0gICAgLy8gTm8gd2hl
ZWwgZXZlbnRzIG9uIGlPUwotICAgIHZvaWQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmKSBvdmVycmlkZSB7IH0KLSAgICBFdmVudFJlc3VsdCB0cnlUb0hhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGUgeyByZXR1cm4gRGlk
Tm90SGFuZGxlRXZlbnQ7IH0KLQotICAgIHZvaWQgaW52YWxpZGF0ZSgpIG92ZXJyaWRlOwotCiBw
cml2YXRlOgotICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVJT1MoQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvciopOwotICAgIGJvb2wgaXNTY3JvbGxpbmdUcmVlSU9TKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVJT1MoQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvciYpOwogCi0gICAgUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4g
Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJ
RCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1Njcm9sbGluZ1RyZWVJT1MoKSBjb25zdCBmaW5hbCB7
IHJldHVybiB0cnVlOyB9CiAKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNj
cm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykg
b3ZlcnJpZGU7CisgICAgLy8gTm8gd2hlZWwgZXZlbnRzIG9uIGlPUworICAgIHZvaWQgaGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBmaW5hbCB7IH0KKyAgICBFdmVu
dFJlc3VsdCB0cnlUb0hhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikg
ZmluYWwgeyByZXR1cm4gRGlkTm90SGFuZGxlRXZlbnQ7IH0KIAotICAgIHZvaWQgY3VycmVudFNu
YXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25l
ZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBpbnZh
bGlkYXRlKCkgZmluYWw7CiAKLSAgICBGbG9hdFJlY3QgZml4ZWRQb3NpdGlvblJlY3QoKSBvdmVy
cmlkZTsKKyAgICBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2Rl
KFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIGZpbmFsOworICAgIHZvaWQgc2Ny
b2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qgc3RkOjpvcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0
Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBmaW5hbDsKKyAgICB2b2lkIGN1cnJlbnRTbmFwUG9p
bnRJbmRpY2VzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9y
aXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGZpbmFsOworICAgIEZsb2F0UmVjdCBmaXhlZFBv
c2l0aW9uUmVjdCgpIGZpbmFsOwogCiAgICAgUmVmUHRyPEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3I+IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCmlu
ZGV4IGQ0M2Q5NGIyNDdhNmU0ZjkzOTc0MTU4MjYxOTdjMmIwYWRmMDcxNDguLjg2MTE4YjQ0NTAw
Nzk0NmNmMGZhNzgzYzVkNTQzZTExOWU5ZWJmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0K
QEAgLTU0LDcgKzU0LDcgQEAgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OlNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjKFBhZ2UqIHBhZ2UpCiAgICAgOiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKHBh
Z2UpCiAgICAgLCBtX3Njcm9sbGluZ1N0YXRlVHJlZUNvbW1pdHRlclRpbWVyKCp0aGlzLCAmU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWM6OmNvbW1pdFRyZWVTdGF0ZSkKIHsKLSAgICBzZXRTY3JvbGxp
bmdUcmVlKFNjcm9sbGluZ1RyZWVNYWM6OmNyZWF0ZSh0aGlzKSk7CisgICAgc2V0U2Nyb2xsaW5n
VHJlZShTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGUoKnRoaXMpKTsKIH0KIAogU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWM6On5TY3JvbGxpbmdDb29yZGluYXRvck1hYygpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5jcHAKaW5kZXgg
NzBkYmMwNmNmMDEzYmYzMWI4ZGEwN2ZkZTBkMzk4OGM2MWI0ZDgwYS4uNDUxOTVlYzM5YmY3NGQz
Y2I5ZmY2NjExMmViYWY3ZjNlZWQ2NGQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNwcApAQCAtMzQsMzAgKzM0LDMw
IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8U2Nyb2xsaW5nVHJlZU1hYz4g
U2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9s
bGluZ0Nvb3JkaW5hdG9yKQorUmVmPFNjcm9sbGluZ1RyZWVNYWM+IFNjcm9sbGluZ1RyZWVNYWM6
OmNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRvcikK
IHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTY3JvbGxpbmdUcmVlTWFjKHNjcm9sbGluZ0Nv
b3JkaW5hdG9yKSk7CiB9CiAKLVNjcm9sbGluZ1RyZWVNYWM6OlNjcm9sbGluZ1RyZWVNYWMoQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCitTY3JvbGxpbmdU
cmVlTWFjOjpTY3JvbGxpbmdUcmVlTWFjKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImIHNjcm9s
bGluZ0Nvb3JkaW5hdG9yKQogICAgIDogVGhyZWFkZWRTY3JvbGxpbmdUcmVlKHNjcm9sbGluZ0Nv
b3JkaW5hdG9yKQogewogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBTY3JvbGxp
bmdUcmVlTWFjOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2Rl
VHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxTY3JvbGxpbmdUcmVlTm9kZT4gU2Ny
b2xsaW5nVHJlZU1hYzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUg
bm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7CiAgICAgc3dpdGNoIChub2RlVHlw
ZSkgewogICAgIGNhc2UgRnJhbWVTY3JvbGxpbmdOb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAg
IGNhc2UgT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRml4
ZWROb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0
aGlzLCBub2RlSUQpOwogICAgIGNhc2UgU3RpY2t5Tm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9s
bGluZ1RyZWVTdGlja3lOb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgfQotICAgIHJl
dHVybiBudWxscHRyOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCiAjZW5kaWYgLy8g
RU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmgKaW5kZXggNDNh
NDZiNzdlODViNDVmZjYxY2IyYjlhNmJiYjMyYzJjMGVmZmE1Ny4uNDk5ZmMzZmYxN2JjZjk0OTBh
ODM3MjI2NDJmNmJjODNiZTAwYjdkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCkBAIC0zMSwxNCArMzEsMTQgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTY3JvbGxpbmdUcmVlTWFjIDogcHVibGljIFRo
cmVhZGVkU2Nyb2xsaW5nVHJlZSB7CitjbGFzcyBTY3JvbGxpbmdUcmVlTWFjIGZpbmFsIDogcHVi
bGljIFRocmVhZGVkU2Nyb2xsaW5nVHJlZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTY3Jv
bGxpbmdUcmVlTWFjPiBjcmVhdGUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciopOworICAgIHN0
YXRpYyBSZWY8U2Nyb2xsaW5nVHJlZU1hYz4gY3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3ImKTsKIAotICAgIFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGlu
Z1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOwot
ICAgIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBTY3JvbGxpbmdUcmVlTWFjKEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IqKTsKKyAgICBleHBsaWNpdCBTY3JvbGxpbmdUcmVlTWFjKEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3ImKTsKKworICAgIFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRl
U2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgZmlu
YWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS93
aW4vRXZlbnRIYW5kbGVyV2luLmNwcAppbmRleCA2MTYwNzA5MGQyNmM5OWMxYWUyNTNmNWE0ZWM1
ZDY2ZDUxYzNkNjE1Li4zMjQzMGM0N2I4N2QxYzA4ODQ0OWFjYmRjZDBiMzY0NzEzZjA5NDJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAKQEAgLTgxLDcg
KzgxLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OndpZGdldERpZEhhbmRsZVdoZWVsRXZlbnQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW4KICAgICByZXR1cm4gZG93bmNhc3Q8RnJh
bWVWaWV3Pih3aWRnZXQpLmZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3
aGVlbEV2ZW50KTsKIH0KIAotYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9s
cyhLZXlib2FyZEV2ZW50KikgY29uc3QKK2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3Jt
Q29udHJvbHMoS2V5Ym9hcmRFdmVudCYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBA
IC05MiwxMCArOTIsMTIgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50QWN0aXZhdGVkVmlldyhj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KSBjb25zdAogfQogCiAjaWYgRU5BQkxFKERS
QUdfU1VQUE9SVCkKLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKKworUmVmPERhdGFUcmFuc2Zlcj4gRXZlbnRI
YW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKIH0KKwogI2VuZGlmCiAKIHZv
aWQgRXZlbnRIYW5kbGVyOjpmb2N1c0RvY3VtZW50VmlldygpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNv
ci5oCmluZGV4IDY4ZDA2OWQzYTQzODQ2ODhkZjJkZWM4OGU4MzQwNDlmNTMyYjExMWQuLjJhZmYy
N2IyNTc0ZjMzN2Q4ZWQzY2RmZjBjYTQwYWRlNGFkMTRjODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1
cnNvci5oCkBAIC01NCwyNCArNTQsMjggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSW1h
Z2U7CiAKICNpZiBQTEFURk9STShXSU4pCisKIGNsYXNzIFNoYXJlZEN1cnNvciA6IHB1YmxpYyBS
ZWZDb3VudGVkPFNoYXJlZEN1cnNvcj4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U2hhcmVk
Q3Vyc29yPiBjcmVhdGUoSENVUlNPUiBuYXRpdmVDdXJzb3IpIHsgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU2hhcmVkQ3Vyc29yKG5hdGl2ZUN1cnNvcikpOyB9CisgICAgc3RhdGljIFJlZjxTaGFyZWRD
dXJzb3I+IGNyZWF0ZShIQ1VSU09SKTsKICAgICB+U2hhcmVkQ3Vyc29yKCk7CiAgICAgSENVUlNP
UiBuYXRpdmVDdXJzb3IoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUN1cnNvcjsgfQorCiBwcml2
YXRlOgotICAgIFNoYXJlZEN1cnNvcihIQ1VSU09SIG5hdGl2ZUN1cnNvcikgOiBtX25hdGl2ZUN1
cnNvcihuYXRpdmVDdXJzb3IpIHsgfQorICAgIFNoYXJlZEN1cnNvcihIQ1VSU09SKTsKICAgICBI
Q1VSU09SIG1fbmF0aXZlQ3Vyc29yOwogfTsKLXR5cGVkZWYgUmVmUHRyPFNoYXJlZEN1cnNvcj4g
UGxhdGZvcm1DdXJzb3I7CisKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oV0lOKQordXNpbmcgUGxh
dGZvcm1DdXJzb3IgPSBSZWZQdHI8U2hhcmVkQ3Vyc29yPjsKICNlbGlmIFVTRShBUFBLSVQpCi10
eXBlZGVmIE5TQ3Vyc29yICpQbGF0Zm9ybUN1cnNvcjsKK3VzaW5nIFBsYXRmb3JtQ3Vyc29yID0g
TlNDdXJzb3IgKjsKICNlbGlmIFBMQVRGT1JNKEdUSykKLXR5cGVkZWYgR1JlZlB0cjxHZGtDdXJz
b3I+IFBsYXRmb3JtQ3Vyc29yOwordXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBHUmVmUHRyPEdka0N1
cnNvcj47CiAjZWxpZiBQTEFURk9STShFRkwpCi10eXBlZGVmIGNvbnN0IGNoYXIqIFBsYXRmb3Jt
Q3Vyc29yOwotI2Vsc2UKLXR5cGVkZWYgdm9pZCogUGxhdGZvcm1DdXJzb3I7Cit1c2luZyBQbGF0
Zm9ybUN1cnNvciA9IGNvbnN0IGNoYXIqOwogI2VuZGlmCiAKIGNsYXNzIEN1cnNvciB7CkBAIC0x
MjQsNjEgKzEyOCw1MCBAQCBwdWJsaWM6CiAgICAgICAgIEN1c3RvbQogICAgIH07CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgY29uc3QgQ3Vyc29yJiBmcm9tVHlwZShDdXJzb3I6OlR5cGUp
OworICAgIEN1cnNvcigpID0gZGVmYXVsdDsKIAotICAgIEN1cnNvcigpCiAjaWYgIVBMQVRGT1JN
KElPUykKLSAgICAgICAgLy8gVGhpcyBpcyBhbiBpbnZhbGlkIEN1cnNvciBhbmQgc2hvdWxkIG5l
dmVyIGFjdHVhbGx5IGdldCB1c2VkLgotICAgICAgICA6IG1fdHlwZShzdGF0aWNfY2FzdDxUeXBl
PigtMSkpCi0jaWYgRU5BQkxFKE1PVVNFX0NVUlNPUl9TQ0FMRSkKLSAgICAgICAgLCBtX2ltYWdl
U2NhbGVGYWN0b3IoMSkKLSNlbmRpZgotICAgICAgICAsIG1fcGxhdGZvcm1DdXJzb3IoMCkKLSNl
bmRpZiAvLyAhUExBVEZPUk0oSU9TKQotICAgIHsKLSAgICB9CiAKLSNpZiAhUExBVEZPUk0oSU9T
KQorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBjb25zdCBDdXJzb3ImIGZyb21UeXBlKEN1cnNv
cjo6VHlwZSk7CisKICAgICBXRUJDT1JFX0VYUE9SVCBDdXJzb3IoSW1hZ2UqLCBjb25zdCBJbnRQ
b2ludCYgaG90U3BvdCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ3Vyc29yKGNvbnN0IEN1cnNvciYp
OwogCiAjaWYgRU5BQkxFKE1PVVNFX0NVUlNPUl9TQ0FMRSkKICAgICAvLyBIb3Qgc3BvdCBpcyBp
biBpbWFnZSBwaXhlbHMuCiAgICAgV0VCQ09SRV9FWFBPUlQgQ3Vyc29yKEltYWdlKiwgY29uc3Qg
SW50UG9pbnQmIGhvdFNwb3QsIGZsb2F0IGltYWdlU2NhbGVGYWN0b3IpOwogI2VuZGlmCiAKLSAg
ICBXRUJDT1JFX0VYUE9SVCB+Q3Vyc29yKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ3Vyc29yJiBv
cGVyYXRvcj0oY29uc3QgQ3Vyc29yJik7Ci0KICAgICBleHBsaWNpdCBDdXJzb3IoVHlwZSk7Ci0g
ICAgVHlwZSB0eXBlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPj0gMCAm
JiBtX3R5cGUgPD0gQ3VzdG9tKTsKLSAgICAgICAgcmV0dXJuIG1fdHlwZTsKLSAgICB9CisKKyAg
ICBUeXBlIHR5cGUoKSBjb25zdDsKICAgICBJbWFnZSogaW1hZ2UoKSBjb25zdCB7IHJldHVybiBt
X2ltYWdlLmdldCgpOyB9CiAgICAgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QoKSBjb25zdCB7IHJl
dHVybiBtX2hvdFNwb3Q7IH0KKwogI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCiAgICAg
Ly8gSW1hZ2Ugc2NhbGUgaW4gaW1hZ2UgcGl4ZWxzIHBlciBsb2dpY2FsIChVSSkgcGl4ZWwuCiAg
ICAgZmxvYXQgaW1hZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VTY2FsZUZh
Y3RvcjsgfQogI2VuZGlmCisKICAgICBXRUJDT1JFX0VYUE9SVCBQbGF0Zm9ybUN1cnNvciBwbGF0
Zm9ybUN1cnNvcigpIGNvbnN0OwogCi0gcHJpdmF0ZToKK3ByaXZhdGU6CiAgICAgdm9pZCBlbnN1
cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0OwogCi0gICAgVHlwZSBtX3R5cGU7CisgICAgLy8gVGhl
IHR5cGUgb2YgLTEgaW5kaWNhdGVzIGFuIGludmFsaWQgQ3Vyc29yIHRoYXQgc2hvdWxkIG5ldmVy
IGFjdHVhbGx5IGdldCB1c2VkLgorICAgIFR5cGUgbV90eXBlIHsgc3RhdGljX2Nhc3Q8VHlwZT4o
LTEpIH07CiAgICAgUmVmUHRyPEltYWdlPiBtX2ltYWdlOwogICAgIEludFBvaW50IG1faG90U3Bv
dDsKKwogI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgZmxvYXQgbV9pbWFnZVNj
YWxlRmFjdG9yOworICAgIGZsb2F0IG1faW1hZ2VTY2FsZUZhY3RvciB7IDEgfTsKICNlbmRpZgog
CiAjaWYgIVVTRShBUFBLSVQpCi0gICAgbXV0YWJsZSBQbGF0Zm9ybUN1cnNvciBtX3BsYXRmb3Jt
Q3Vyc29yOworICAgIG11dGFibGUgUGxhdGZvcm1DdXJzb3IgbV9wbGF0Zm9ybUN1cnNvciB7IG51
bGxwdHIgfTsKICNlbHNlCiAgICAgbXV0YWJsZSBSZXRhaW5QdHI8TlNDdXJzb3I+IG1fcGxhdGZv
cm1DdXJzb3I7CiAjZW5kaWYKKwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiB9OwogCkBAIC0y
MjgsNCArMjIxLDE1IEBAIGNvbnN0IEN1cnNvciYgbm9uZUN1cnNvcigpOwogY29uc3QgQ3Vyc29y
JiBncmFiQ3Vyc29yKCk7CiBjb25zdCBDdXJzb3ImIGdyYWJiaW5nQ3Vyc29yKCk7CiAKKyNpZiAh
UExBVEZPUk0oSU9TKQorCitpbmxpbmUgQ3Vyc29yOjpUeXBlIEN1cnNvcjo6dHlwZSgpIGNvbnN0
Cit7CisgICAgQVNTRVJUKG1fdHlwZSA+PSAwKTsKKyAgICBBU1NFUlQobV90eXBlIDw9IEN1c3Rv
bSk7CisgICAgcmV0dXJuIG1fdHlwZTsKK30KKworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DdXJzb3JFZmwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0N1cnNvckVmbC5jcHAKaW5kZXggYjNm
NDRhZWI3ZWVjNGJkMmE4ZTdkNTJlZWVlMmMxMjc2ZGQyNDY2OS4uNTk2NDhiYjE0ODZjZGE1YTY5
ZDFmOTExODA5NjM1MTE3N2NlNjZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZWZsL0N1cnNvckVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0N1
cnNvckVmbC5jcHAKQEAgLTQwLDM0ICs0MCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Q3Vyc29yOjpDdXJzb3IoY29uc3QgQ3Vyc29yJiBvdGhlcikKLSAgICA6IG1fdHlwZShvdGhlci5t
X3R5cGUpCi0gICAgLCBtX2ltYWdlKG90aGVyLm1faW1hZ2UpCi0gICAgLCBtX2hvdFNwb3Qob3Ro
ZXIubV9ob3RTcG90KQotI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgLCBtX2lt
YWdlU2NhbGVGYWN0b3Iob3RoZXIubV9pbWFnZVNjYWxlRmFjdG9yKQotI2VuZGlmCi0gICAgLCBt
X3BsYXRmb3JtQ3Vyc29yKG90aGVyLm1fcGxhdGZvcm1DdXJzb3IpCi17Ci19Ci0KLUN1cnNvcjo6
fkN1cnNvcigpCi17Ci19Ci0KLUN1cnNvciYgQ3Vyc29yOjpvcGVyYXRvcj0oY29uc3QgQ3Vyc29y
JiBvdGhlcikKLXsKLSAgICBtX3R5cGUgPSBvdGhlci5tX3R5cGU7Ci0gICAgbV9pbWFnZSA9IG90
aGVyLm1faW1hZ2U7Ci0gICAgbV9ob3RTcG90ID0gb3RoZXIubV9ob3RTcG90OwotI2lmIEVOQUJM
RShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgbV9pbWFnZVNjYWxlRmFjdG9yID0gb3RoZXIubV9p
bWFnZVNjYWxlRmFjdG9yOwotI2VuZGlmCi0gICAgbV9wbGF0Zm9ybUN1cnNvciA9IG90aGVyLm1f
cGxhdGZvcm1DdXJzb3I7Ci0KLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KIHN0YXRpYyBjb25zdCBj
aGFyKiBjdXJzb3JTdHJpbmcoQ3Vyc29yOjpUeXBlIHR5cGUpCiB7CiAgICAgc3RhdGljIGNvbnN0
IGNoYXIqIGN1cnNvclN0cmluZ3NbXSA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9DdXJzb3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vy
c29yTWFjLm1tCmluZGV4IDg1Y2M3YzVmZGQyYzE2MDYyY2Y4YTAxODY0YTI5ZmMzNDQ1YTdlMDUu
LmFhMzQ1ZTg4ZTQ4MTE4YzQ2ODdiOWVlZmJmYzczMjE4ZGM0NzA3MGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQpAQCAtMjQxLDMzICsyNDEsNiBAQCB2b2lkIEN1
cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAgIH0KIH0KIAotQ3Vyc29yOjpD
dXJzb3IoY29uc3QgQ3Vyc29yJiBvdGhlcikKLSAgICA6IG1fdHlwZShvdGhlci5tX3R5cGUpCi0g
ICAgLCBtX2ltYWdlKG90aGVyLm1faW1hZ2UpCi0gICAgLCBtX2hvdFNwb3Qob3RoZXIubV9ob3RT
cG90KQotI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgLCBtX2ltYWdlU2NhbGVG
YWN0b3Iob3RoZXIubV9pbWFnZVNjYWxlRmFjdG9yKQotI2VuZGlmCi0gICAgLCBtX3BsYXRmb3Jt
Q3Vyc29yKG90aGVyLm1fcGxhdGZvcm1DdXJzb3IpCi17Ci19Ci0KLUN1cnNvciYgQ3Vyc29yOjpv
cGVyYXRvcj0oY29uc3QgQ3Vyc29yJiBvdGhlcikKLXsKLSAgICBtX3R5cGUgPSBvdGhlci5tX3R5
cGU7Ci0gICAgbV9pbWFnZSA9IG90aGVyLm1faW1hZ2U7Ci0gICAgbV9ob3RTcG90ID0gb3RoZXIu
bV9ob3RTcG90OwotI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgbV9pbWFnZVNj
YWxlRmFjdG9yID0gb3RoZXIubV9pbWFnZVNjYWxlRmFjdG9yOwotI2VuZGlmCi0gICAgbV9wbGF0
Zm9ybUN1cnNvciA9IG90aGVyLm1fcGxhdGZvcm1DdXJzb3I7Ci0gICAgcmV0dXJuICp0aGlzOwot
fQotCi1DdXJzb3I6On5DdXJzb3IoKQotewotfQotCiBOU0N1cnNvciAqQ3Vyc29yOjpwbGF0Zm9y
bUN1cnNvcigpIGNvbnN0CiB7CiAgICAgZW5zdXJlUGxhdGZvcm1DdXJzb3IoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DdXJzb3JXaW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL0N1cnNvcldpbi5jcHAKaW5kZXggN2E5OTMxMzZiYTJjM2EwNWQy
ZDMxOTZhNTU2NzcxOGEwMGRhZjg1OS4uMGFmY2E2NjE5NmNkNTFjNzA1OWNhZjhhNjZjMDllYjY5
ZWQyZGUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0N1cnNvcldp
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0N1cnNvcldpbi5jcHAKQEAg
LTQwLDYgKzQwLDE2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorU2hhcmVkQ3Vyc29yOjpT
aGFyZWRDdXJzb3IoSENVUlNPUiBuYXRpdmVDdXJzb3IpCisgICAgOiBtX25hdGl2ZUN1cnNvcihu
YXRpdmVDdXJzb3IpCit7Cit9CisKK1JlZjxTaGFyZWRDdXJzb3I+IFNoYXJlZEN1cnNvcjo6Y3Jl
YXRlKEhDVVJTT1IgbmF0aXZlQ3Vyc29yKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNo
YXJlZEN1cnNvcihuYXRpdmVDdXJzb3IpKTsKK30KKwogc3RhdGljIFJlZjxTaGFyZWRDdXJzb3I+
IGNyZWF0ZVNoYXJlZEN1cnNvcihJbWFnZSogaW1nLCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCkK
IHsKICAgICBJbnRQb2ludCBlZmZlY3RpdmVIb3RTcG90ID0gZGV0ZXJtaW5lSG90U3BvdChpbWcs
IGhvdFNwb3QpOwpAQCAtMjU4LDMxICsyNjgsNCBAQCBTaGFyZWRDdXJzb3I6On5TaGFyZWRDdXJz
b3IoKQogICAgIERlc3Ryb3lJY29uKG1fbmF0aXZlQ3Vyc29yKTsKIH0KIAotQ3Vyc29yOjpDdXJz
b3IoY29uc3QgQ3Vyc29yJiBvdGhlcikKLSAgICA6IG1fdHlwZShvdGhlci5tX3R5cGUpCi0gICAg
LCBtX2ltYWdlKG90aGVyLm1faW1hZ2UpCi0gICAgLCBtX2hvdFNwb3Qob3RoZXIubV9ob3RTcG90
KQotI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgLCBtX2ltYWdlU2NhbGVGYWN0
b3Iob3RoZXIubV9pbWFnZVNjYWxlRmFjdG9yKQotI2VuZGlmCi0gICAgLCBtX3BsYXRmb3JtQ3Vy
c29yKG90aGVyLm1fcGxhdGZvcm1DdXJzb3IpCi17Ci19Ci0KLUN1cnNvciYgQ3Vyc29yOjpvcGVy
YXRvcj0oY29uc3QgQ3Vyc29yJiBvdGhlcikKLXsKLSAgICBtX3R5cGUgPSBvdGhlci5tX3R5cGU7
Ci0gICAgbV9pbWFnZSA9IG90aGVyLm1faW1hZ2U7Ci0gICAgbV9ob3RTcG90ID0gb3RoZXIubV9o
b3RTcG90OwotI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgbV9pbWFnZVNjYWxl
RmFjdG9yID0gb3RoZXIubV9pbWFnZVNjYWxlRmFjdG9yOwotI2VuZGlmCi0gICAgbV9wbGF0Zm9y
bUN1cnNvciA9IG90aGVyLm1fcGxhdGZvcm1DdXJzb3I7Ci0gICAgcmV0dXJuICp0aGlzOwotfQot
Ci1DdXJzb3I6On5DdXJzb3IoKQotewotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAppbmRl
eCAwNmFlZTlmOTc5NjJmYmNhODI5Y2Y1ZTFiZTM4MjVlNmZiZDUyZGU0Li40ODJiNWRkMTM3NWI2
ZmU3NzI2N2NiNjI2ZjQxNjM2ZGY4ZjUzNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTYxNiw3ICs2MTYsNyBAQCB2b2lk
IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpoYW5kbGVVbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvckV2
ZW50KEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIHNldFVuYXZhaWxhYmxlUGx1Z2luSW5kaWNh
dG9ySXNQcmVzc2VkKGZhbHNlKTsKICAgICAgICAgfQogICAgICAgICBpZiAobV9tb3VzZURvd25X
YXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yICYmIGlzSW5VbmF2YWlsYWJsZVBsdWdpbklu
ZGljYXRvcihtb3VzZUV2ZW50KSkgewotICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVu
dCgpLnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCgmZWxlbWVudCwgbV9wbHVnaW5VbmF2
YWlsYWJpbGl0eVJlYXNvbik7CisgICAgICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCku
dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKGVsZW1lbnQsIG1fcGx1Z2luVW5hdmFpbGFi
aWxpdHlSZWFzb24pOwogICAgICAgICB9CiAgICAgICAgIG1fbW91c2VEb3duV2FzSW5VbmF2YWls
YWJsZVBsdWdpbkluZGljYXRvciA9IGZhbHNlOwogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhh
bmRsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5jcHAKaW5kZXggYTFhOTRjNjdiN2U0NTBlOWVjMDMwNWVlMDcwNTlkZjIyZWMwNzZkNC4uNjFj
YWFiZjZhZmE4ZTg3MDI2ODYxYjRmZTgwOTdjYzA5NjM1M2VlOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTEwNyw3ICsxMDcsNyBA
QCBSZW5kZXJMYXllckJhY2tpbmc6OlJlbmRlckxheWVyQmFja2luZyhSZW5kZXJMYXllciYgbGF5
ZXIpCiB7CiAgICAgaWYgKGxheWVyLmlzUm9vdExheWVyKCkpIHsKICAgICAgICAgbV9pc01haW5G
cmFtZVJlbmRlclZpZXdMYXllciA9IHJlbmRlcmVyKCkuZnJhbWUoKS5pc01haW5GcmFtZSgpOwot
ICAgICAgICBtX3VzaW5nVGlsZWRDYWNoZUxheWVyID0gcmVuZGVyZXIoKS5wYWdlKCkuY2hyb21l
KCkuY2xpZW50KCkuc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KHJlbmRlcmVyKCku
ZnJhbWUoKS52aWV3KCkpOworICAgICAgICBtX3VzaW5nVGlsZWRDYWNoZUxheWVyID0gcmVuZGVy
ZXIoKS5wYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJh
bWVWaWV3KHJlbmRlcmVyKCkudmlldygpLmZyYW1lVmlldygpKTsKICAgICB9CiAgICAgCiAgICAg
Y3JlYXRlUHJpbWFyeUdyYXBoaWNzTGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMTJiNjJjOTI4N2JiZmZkOWU1
Nzk4Zjc2NWQ4MmM1NzAzNzMxZTZkZC4uNjVmZGM0ZGZkYTQ2ZmJkMjJkYmJjMzQ3YTk2YjIxYzJl
ZWRlYzE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
Q29tcG9zaXRvci5jcHAKQEAgLTMxMDMsNyArMzEwMyw3IEBAIEdyYXBoaWNzTGF5ZXIqIFJlbmRl
ckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJGb3JIZWFkZXIoYm9vbCB3YW50c0xheWVyKQog
ICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlz
LT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQogICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+
ZnJhbWVWaWV3Um9vdExheWVyRGlkQ2hhbmdlKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKSk7CiAK
LSAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlkQWRkSGVhZGVyTGF5ZXIobV9sYXllckZv
ckhlYWRlci5nZXQoKSk7CisgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmRpZEFkZEhlYWRl
ckxheWVyKCptX2xheWVyRm9ySGVhZGVyKTsKIAogICAgIHJldHVybiBtX2xheWVyRm9ySGVhZGVy
LmdldCgpOwogfQpAQCAtMzE0MSw3ICszMTQxLDcgQEAgR3JhcGhpY3NMYXllciogUmVuZGVyTGF5
ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllckZvckZvb3Rlcihib29sIHdhbnRzTGF5ZXIpCiAgICAg
aWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNj
cm9sbGluZ0Nvb3JkaW5hdG9yKCkpCiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFt
ZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpKTsKIAotICAg
IHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5kaWRBZGRGb290ZXJMYXllcihtX2xheWVyRm9yRm9v
dGVyLmdldCgpKTsKKyAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlkQWRkRm9vdGVyTGF5
ZXIoKm1fbGF5ZXJGb3JGb290ZXIpOwogCiAgICAgcmV0dXJuIG1fbGF5ZXJGb3JGb290ZXIuZ2V0
KCk7CiB9CkBAIC0zNDYzLDExICszNDYzLDExIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjphdHRhY2hSb290TGF5ZXIoUm9vdExheWVyQXR0YWNobWVudCBhdHRhY2htZW50KQogICAgICAg
ICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUm9vdExheWVyQXR0YWNoZWRWaWFDaHJvbWVDbGll
bnQ6IHsKICAgICAgICAgICAgIEZyYW1lJiBmcmFtZSA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXco
KS5mcmFtZSgpOwotICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFJv
b3RHcmFwaGljc0xheWVyKCZmcmFtZSwgcm9vdEdyYXBoaWNzTGF5ZXIoKSk7CisgICAgICAgICAg
ICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoZnJhbWUs
IHJvb3RHcmFwaGljc0xheWVyKCkpOwogICAgICAgICAgICAgaWYgKGZyYW1lLmlzTWFpbkZyYW1l
KCkpIHsKICAgICAgICAgICAgICAgICBQYWdlT3ZlcmxheUNvbnRyb2xsZXImIHBhZ2VPdmVybGF5
Q29udHJvbGxlciA9IGZyYW1lLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpOwog
ICAgICAgICAgICAgICAgIHBhZ2VPdmVybGF5Q29udHJvbGxlci53aWxsQXR0YWNoUm9vdExheWVy
KCk7Ci0gICAgICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFZpZXdP
dmVybGF5R3JhcGhpY3NMYXllcigmZnJhbWUsICZwYWdlT3ZlcmxheUNvbnRyb2xsZXIudmlld092
ZXJsYXlSb290TGF5ZXIoKSk7CisgICAgICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVu
dCgpLmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihmcmFtZSwgJnBhZ2VPdmVybGF5Q29u
dHJvbGxlci52aWV3T3ZlcmxheVJvb3RMYXllcigpKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0zNTA4LDkgKzM1MDgsOSBAQCB2b2lkIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6ZGV0YWNoUm9vdExheWVyKCkKICAgICB9CiAgICAgY2FzZSBSb290TGF5
ZXJBdHRhY2hlZFZpYUNocm9tZUNsaWVudDogewogICAgICAgICBGcmFtZSYgZnJhbWUgPSBtX3Jl
bmRlclZpZXcuZnJhbWVWaWV3KCkuZnJhbWUoKTsKLSAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNs
aWVudCgpLmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKCZmcmFtZSwgMCk7CisgICAgICAgIHBhZ2Uo
KS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hSb290R3JhcGhpY3NMYXllcihmcmFtZSwgbnVsbHB0
cik7CiAgICAgICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKQotICAgICAgICAgICAgcGFnZSgp
LmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcigmZnJhbWUs
IDApOworICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFZpZXdPdmVy
bGF5R3JhcGhpY3NMYXllcihmcmFtZSwgbnVsbHB0cik7CiAgICAgfQogICAgIGJyZWFrOwogICAg
IGNhc2UgUm9vdExheWVyVW5hdHRhY2hlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTWVudUxpc3QuY3BwCmluZGV4IGQyYzAyZWY5ZDYwZTA2YzY4NjY3MjNlNDc0MDczN2FkOGMw
YzM4MjEuLjM3YzgzZThkMWY1ZWJiMDU3YjExMGNjODg4MTA1NDUxMmNkNGQ0N2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMzcxLDcgKzM3MSw3
IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpCiAgICAgLy8gaW5zaWRlIHRoZSBz
aG93UG9wdXAgY2FsbCBhbmQgaXQgd291bGQgZmFpbC4KICAgICBjcmVhdGVJbm5lckJsb2NrKCk7
CiAgICAgaWYgKCFtX3BvcHVwKQotICAgICAgICBtX3BvcHVwID0gZG9jdW1lbnQoKS5wYWdlKCkt
PmNocm9tZSgpLmNyZWF0ZVBvcHVwTWVudSh0aGlzKTsKKyAgICAgICAgbV9wb3B1cCA9IGRvY3Vt
ZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jcmVhdGVQb3B1cE1lbnUoKnRoaXMpOwogICAgIG1fcG9w
dXBJc1Zpc2libGUgPSB0cnVlOwogCiAgICAgLy8gQ29tcHV0ZSB0aGUgdG9wIGxlZnQgdGFraW5n
IHRyYW5zZm9ybXMgaW50byBhY2NvdW50LCBidXQgdXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcAppbmRleCBiNDZkOGVkNzE4NjA4Y2FmZTYxNjkz
ZTE0YmUxM2U4NmQ0Y2E4MjJjLi5jYTkwMDUxODRkYjI5YWM5Mjc3MGRhMTI3NTU4MTRjNjA4MDYy
MWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmll
bGQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5j
cHAKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBSZW5kZXJTZWFyY2hGaWVsZDo6YWRkU2VhcmNoUmVz
dWx0KCkKIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZlTmFtZSgpOwog
ICAgIGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQb3B1cCA9IHBhZ2UoKS5j
aHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7CisgICAgICAgIG1fc2VhcmNoUG9w
dXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KCp0aGlzKTsKIAogICAg
IG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBtX3JlY2VudFNlYXJjaGVz
KTsKIH0KQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFJlbmRlclNlYXJjaEZpZWxkOjpzaG93UG9w
dXAoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAg
IG1fc2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KHRo
aXMpOworICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNyZWF0ZVNlYXJj
aFBvcHVwTWVudSgqdGhpcyk7CiAKICAgICBpZiAoIW1fc2VhcmNoUG9wdXAtPmVuYWJsZWQoKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgUmVuZGVyU2VhcmNoRmll
bGQ6OnZhbHVlQ2hhbmdlZCh1bnNpZ25lZCBsaXN0SW5kZXgsIGJvb2wgZmlyZUV2ZW50cykKICAg
ICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZlTmFtZSgpOwogICAg
ICAgICAgICAgaWYgKCFuYW1lLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIGlmICghbV9z
ZWFyY2hQb3B1cCkKLSAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IHBhZ2UoKS5j
aHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7CisgICAgICAgICAgICAgICAgICAg
IG1fc2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KCp0
aGlzKTsKICAgICAgICAgICAgICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNoZXMo
bmFtZSwgbV9yZWNlbnRTZWFyY2hlcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCmluZGV4IGJlYjBhMzk1M2JjNzJmZWUxM2IzNTM4ZmU1OTdj
ZDE5MDlkOWQzYmUuLjQyMDIzZmE3Njg2NTRlMTNhZjZkMzI2MjgyYWUzODE2N2FjYTlkYmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIGJvb2wgU1ZH
QUVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCYgZXZlbnQpIGNvbnN0
CiAgICAgICAgIHJldHVybiBTVkdFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KTsK
IAogICAgIGlmIChpc0xpbmsoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50KCkuZnJhbWUoKS0+
ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoJmV2ZW50KTsKKyAgICAgICAgcmV0dXJuIGRvY3Vt
ZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoZXZlbnQpOwogCiAgICAg
cmV0dXJuIFNWR0VsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCmluZGV4IGZk
NTY0YWZmMTQwNGU1ODhhOWRjNDFhNjM2N2RiMmYwY2JkYTEyOGIuLjAwNDQwNDFiZjc1NzhjM2My
YTg2MTdiN2ZlNzY2ZmQyY2JjYjJkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgTW9ja1BhZ2VPdmVy
bGF5Q2xpZW50OjpNb2NrUGFnZU92ZXJsYXlDbGllbnQoKQogUmVmPE1vY2tQYWdlT3ZlcmxheT4g
TW9ja1BhZ2VPdmVybGF5Q2xpZW50OjppbnN0YWxsT3ZlcmxheShNYWluRnJhbWUmIG1haW5GcmFt
ZSwgUGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlIG92ZXJsYXlUeXBlKQogewogICAgIGF1dG8gb3Zl
cmxheSA9IFBhZ2VPdmVybGF5OjpjcmVhdGUoKnRoaXMsIG92ZXJsYXlUeXBlKTsKLSAgICBtYWlu
RnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KG92ZXJsYXku
cHRyKCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICBtYWluRnJhbWUu
cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KG92ZXJsYXksIFBhZ2VP
dmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIAogICAgIGF1dG8gbW9ja092ZXJsYXkgPSBN
b2NrUGFnZU92ZXJsYXk6OmNyZWF0ZShvdmVybGF5LnB0cigpKTsKICAgICBtX292ZXJsYXlzLmFk
ZChtb2NrT3ZlcmxheS5wdHIoKSk7CkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgTW9ja1BhZ2VPdmVy
bGF5Q2xpZW50Ojp1bmluc3RhbGxBbGxPdmVybGF5cygpCiAgICAgICAgIFJlZlB0cjxNb2NrUGFn
ZU92ZXJsYXk+IG1vY2tPdmVybGF5ID0gbV9vdmVybGF5cy50YWtlQW55KCk7CiAgICAgICAgIFBh
Z2VPdmVybGF5Q29udHJvbGxlciogb3ZlcmxheUNvbnRyb2xsZXIgPSBtb2NrT3ZlcmxheS0+b3Zl
cmxheSgpLT5jb250cm9sbGVyKCk7CiAgICAgICAgIEFTU0VSVChvdmVybGF5Q29udHJvbGxlcik7
Ci0gICAgICAgIG92ZXJsYXlDb250cm9sbGVyLT51bmluc3RhbGxQYWdlT3ZlcmxheShtb2NrT3Zl
cmxheS0+b3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAg
ICAgIG92ZXJsYXlDb250cm9sbGVyLT51bmluc3RhbGxQYWdlT3ZlcmxheSgqbW9ja092ZXJsYXkt
Pm92ZXJsYXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGlj
YXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0KaW5kZXggM2IzYzNhNDI5NGMx
N2M1NzhiODE5MTVkYTBiMWM0ZjhiZmEyM2ViYS4uMGQ0ODJiNGRkOTI1YmMwYjhiOGQ0MjYxZWZj
MmM3YTY1NTc2ZTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLm1tCkBA
IC01OSw3ICs1OSw5IEBAIC0gKHVuc2lnbmVkIGxvbmcgbG9uZyl1c2FnZQogLSAodW5zaWduZWQg
bG9uZyBsb25nKXF1b3RhCiB7CiAgICAgbG9uZyBsb25nIHF1b3RhOwotICAgIGlmICh3ZWJBcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZSgpLmNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKFtfb3JpZ2luIF9j
b3JlXSwgcXVvdGEpKQorICAgIGlmICghX29yaWdpbikKKyAgICAgICAgcmV0dXJuIDA7CisgICAg
aWYgKHdlYkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlKCkuY2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4o
Kltfb3JpZ2luIF9jb3JlXSwgcXVvdGEpKQogICAgICAgICByZXR1cm4gcXVvdGE7CiAgICAgcmV0
dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCmluZGV4IGY0ZjA5NmM1ZDY0NzNlYmM2ZTdhYmQ1ODNiNmRmZWY0YWFhNGQx
NTkuLjdkOGYzYjg3ZjdlMzI0NTE2ZGIwNjE1YmU1OGQ4ZDkwNTU4MjRiOGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC01
OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmb2N1c2VkRWxlbWVudENoYW5nZWQoV2Vi
Q29yZTo6RWxlbWVudCopIG92ZXJyaWRlOwogICAgIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChX
ZWJDb3JlOjpGcmFtZSopIGZpbmFsOwogCi0gICAgV2ViQ29yZTo6UGFnZSogY3JlYXRlV2luZG93
KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0
IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlv
biYpIGZpbmFsOworICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFt
ZSYsIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5k
b3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbDsKICAg
ICB2b2lkIHNob3coKSBmaW5hbDsKIAogICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBmaW5hbDsKQEAg
LTc5LDE2ICs3OSwxNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRSZXNpemFibGUoYm9vbCkg
ZmluYWw7CiAKLSAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNDOjpNZXNzYWdlU291cmNl
LCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVk
IGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgV1RGOjpTdHJpbmcmIHNv
dXJjZVVSTCkgZmluYWw7CisgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKEpTQzo6TWVzc2Fn
ZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWdu
ZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJj
ZVVSTCkgZmluYWw7CiAKICAgICBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgp
IGZpbmFsOwotICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFdURjo6
U3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSopIGZpbmFsOworICAgIGJvb2wgcnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJh
bWUmKSBmaW5hbDsKIAogICAgIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgZmluYWw7CiAKLSAgICB2
b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5n
Jikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFt
ZSosIGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0
UHJvbXB0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFdURjo6U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFdURjo6U3RyaW5nJiByZXN1bHQpIG92ZXJyaWRl
OworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3Ry
aW5nJikgb3ZlcnJpZGU7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpG
cmFtZSYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIGJvb2wgcnVuSmF2YVNjcmlwdFBy
b21wdChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KSBvdmVycmlkZTsKIAogICAgIGJvb2wgc3Vw
cG9ydHNJbW1lZGlhdGVJbnZhbGlkYXRpb24oKSBmaW5hbDsKICAgICB2b2lkIGludmFsaWRhdGVS
b290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CkBAIC0xMDUsMjkgKzEwNSwy
OSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1Q
YWdlQ2xpZW50KCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdl
YkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0IGZpbmFsOworICAg
IHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIHNldFN0YXR1c2Jh
clRleHQoY29uc3QgV1RGOjpTdHJpbmcmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFN0YXR1c2Jh
clRleHQoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHNjcm9sbGJhcnNNb2Rl
RGlkQ2hhbmdlKCkgY29uc3QgZmluYWwgeyB9CiAgICAgYm9vbCBzaG91bGRVbmF2YWlsYWJsZVBs
dWdpbk1lc3NhZ2VCZUJ1dHRvbihXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2lu
VW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgdW5hdmFpbGFibGVQ
bHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJDb3JlOjpSZW5kZXJFbWJl
ZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOworICAg
IHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQmLCBX
ZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24p
IGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2Vi
Q29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIGZpbmFsOwogCi0g
ICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVj
dGlvbikgZmluYWw7CisgICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6
OlRleHREaXJlY3Rpb24pIGZpbmFsOwogCi0gICAgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSop
IGZpbmFsOwotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwg
Y29uc3QgV1RGOjpTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxz
KSBmaW5hbDsKKyAgICB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CisgICAgdm9p
ZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmIGRh
dGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKICAgICB2b2lkIHJl
YWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkgZmluYWw7Ci0gICAgdm9p
ZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSBmaW5hbDsKKyAgICB2b2lkIHJlYWNoZWRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBpbnQ2
NF90IHRvdGFsU3BhY2VOZWVkZWQpIGZpbmFsOwogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQ
T1JUKQogICAgIHZvaWQgYW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKSBmaW5hbDsKICNlbmRpZgog
CiAgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpGaWxlQ2hv
b3NlciYpIG92ZXJyaWRlOwotICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8
V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXImKSBmaW5hbDsKKyAgICB2b2lk
IGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNv
bkxvYWRlciYpIGZpbmFsOwogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICB2b2lkIHNldEN1cnNv
cihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBmaW5hbDsKQEAgLTEzNSw3ICsxMzUsNyBAQCBwcml2
YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29y
ZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29z
ZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBm
aW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKQEAgLTE1MSwxNiArMTUx
LDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbmFibGVTdWRkZW5UZXJtaW5hdGlvbigpIGZpbmFs
OwogICAgIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkgZmluYWw7CiAKLSAgICBib29s
IHNob3VsZFJlcGxhY2VXaXRoR2VuZXJhdGVkRmlsZUZvclVwbG9hZChjb25zdCBXVEY6OlN0cmlu
ZyYgcGF0aCwgV1RGOjpTdHJpbmcgJmdlbmVyYXRlZEZpbGVuYW1lKSBmaW5hbDsKLSAgICBXVEY6
OlN0cmluZyBnZW5lcmF0ZVJlcGxhY2VtZW50RmlsZShjb25zdCBXVEY6OlN0cmluZyYgcGF0aCkg
ZmluYWw7CisgICAgYm9vbCBzaG91bGRSZXBsYWNlV2l0aEdlbmVyYXRlZEZpbGVGb3JVcGxvYWQo
Y29uc3QgU3RyaW5nJiBwYXRoLCBTdHJpbmcgJmdlbmVyYXRlZEZpbGVuYW1lKSBmaW5hbDsKKyAg
ICBTdHJpbmcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKSBmaW5h
bDsKIAotICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhXZWJDb3JlOjpFbGVtZW50Jikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBlbGVtZW50RGlkQmx1cihXZWJDb3JlOjpFbGVtZW50Jikgb3ZlcnJpZGU7
CiAKICAgICBib29sIHNob3VsZFBhaW50RW50aXJlQ29udGVudHMoKSBjb25zdCBmaW5hbDsKIAot
ICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdy
YXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmlu
YWw7CisgICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dGFjaFZpZXdPdmVy
bGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBmaW5hbDsKICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24o
KSBmaW5hbDsKICAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgZmluYWw7
CiAKQEAgLTE4OSwxNiArMTg5LDE2IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShG
VUxMU0NSRUVOX0FQSSkKLSAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29u
c3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJkKSBmaW5hbDsKLSAgICB2b2lk
IGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopIGZpbmFsOwotICAg
IHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBmaW5hbDsK
KyAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxl
bWVudCYsIGJvb2wgd2l0aEtleWJvYXJkKSBmaW5hbDsKKyAgICB2b2lkIGVudGVyRnVsbFNjcmVl
bkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOworICAgIHZvaWQgZXhpdEZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKICNlbmRpZgogCiAgICAg
Ym9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIG92ZXJyaWRlOwogICAg
IGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpIG92
ZXJyaWRlOwogICAgIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBmaW5hbDsKLSAgICBSZWZQ
dHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51
Q2xpZW50KikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVw
TWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNv
bnN0IG92ZXJyaWRlOworICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVw
TWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBvdmVycmlkZTsKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29y
ZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHdoZWVsRXZl
bnRIYW5kbGVyc0NoYW5nZWQoYm9vbCkgZmluYWwgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCAwZWNmZjhkNWZh
YjFlZTVmYzU1MjkyZGMwNGE4MDVhZDJjY2NkZWQ4Li5lNDk2N2I5ZjhjMzdjNjI1YjUwNTViYzQy
OTFhNzU5NTlmMDVmYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0zMCw2ICszMCw3IEBACiAjaW1wb3J0ICJXZWJD
aHJvbWVDbGllbnQuaCIKIAogI2ltcG9ydCAiRE9NRWxlbWVudEludGVybmFsLmgiCisjaW1wb3J0
ICJET01IVE1MSW5wdXRFbGVtZW50SW50ZXJuYWwuaCIKICNpbXBvcnQgIkRPTU5vZGVJbnRlcm5h
bC5oIgogI2ltcG9ydCAiUG9wdXBNZW51TWFjLmgiCiAjaW1wb3J0ICJTZWFyY2hQb3B1cE1lbnVN
YWMuaCIKQEAgLTIyMiw3ICsyMjMsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEVs
ZW1lbnRDaGFuZ2VkKEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgaWYgKCFpczxIVE1MSW5wdXRFbGVt
ZW50PihlbGVtZW50KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSFRNTElucHV0RWxlbWVudCYg
aW5wdXRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpOworICAg
IGF1dG8mIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50
KTsKICAgICBpZiAoIWlucHV0RWxlbWVudC5pc1RleHQoKSkKICAgICAgICAgcmV0dXJuOwogCkBA
IC0yMzMsMTQgKzIzNCwxNCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hh
bmdlZChGcmFtZSopCiB7CiB9CiAKLVBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93
KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1
cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpCitQYWdlKiBXZWJDaHJvbWVD
bGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3Qm
LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
KQogewogICAgIGlkIGRlbGVnYXRlID0gW21fd2ViVmlldyBVSURlbGVnYXRlXTsKICAgICBXZWJW
aWV3ICpuZXdXZWJWaWV3OwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIGlmIChm
cmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxT
Y3JlZW5FbGVtZW50KCkpCi0gICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRDYW5jZWxG
dWxsU2NyZWVuKCk7CisgICAgaWYgKGZyYW1lLmRvY3VtZW50KCkgJiYgZnJhbWUuZG9jdW1lbnQo
KS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkpCisgICAgICAgIGZyYW1lLmRvY3Vt
ZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsKICNlbmRpZgogICAgIAogICAgIGlmIChb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OmNyZWF0ZVdlYlZp
ZXdXaXRoUmVxdWVzdDp3aW5kb3dGZWF0dXJlczopXSkgewpAQCAtNDY4LDkgKzQ2OSw5IEBAIGJv
b2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKQogICAg
IHJldHVybiBbW21fd2ViVmlldyBVSURlbGVnYXRlXSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKHdlYlZpZXc6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlh
dGVkQnlGcmFtZTopXTsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKiBmcmFtZSkKK2Jvb2wg
V2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBGcmFtZSYgZnJhbWUpCiB7Ci0gICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0
dXJuaW5nQm9vbGVhbih0cnVlLCBtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6KSwgbWVzc2Fn
ZSwga2l0KGZyYW1lKSk7CisgICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVh
bih0cnVlLCBtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6KSwgbWVzc2FnZSwga2l0KCZmcmFt
ZSkpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xvc2VXaW5kb3dTb29uKCkKQEAgLTQ5
MywxMiArNDk0LDEyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjbG9zZVdpbmRvd1Nvb24oKQog
ICAgIFttX3dlYlZpZXcgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3RvcihfY2xvc2VXaW5kb3cpIHdp
dGhPYmplY3Q6bmlsIGFmdGVyRGVsYXk6MC4wXTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmIGZyYW1lLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgaWQgZGVsZWdhdGUgPSBbbV93ZWJWaWV3IFVJ
RGVsZWdhdGVdOwogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFT
Y3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTopOwogICAgIGlmIChb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkgewotICAgICAgICBDYWxsVUlE
ZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBtZXNzYWdlLCBraXQoZnJhbWUpKTsKKyAgICAg
ICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3RvciwgbWVzc2FnZSwga2l0KCZmcmFt
ZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC01MTAsMTIgKzUxMSwxMiBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiBmcmFtZSwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQogICAgIH0KIH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkph
dmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQorYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiBmcmFtZSwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIGlkIGRlbGVnYXRlID0gW21fd2ViVmlldyBVSURl
bGVnYXRlXTsKICAgICBTRUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpydW5KYXZhU2Ny
aXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTopOwogICAgIGlmIChb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkKLSAgICAgICAgcmV0dXJuIENh
bGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVhbihOTywgbV93ZWJWaWV3LCBzZWxlY3RvciwgbWVz
c2FnZSwga2l0KGZyYW1lKSk7CisgICAgICAgIHJldHVybiBDYWxsVUlEZWxlZ2F0ZVJldHVybmlu
Z0Jvb2xlYW4oTk8sIG1fd2ViVmlldywgc2VsZWN0b3IsIG1lc3NhZ2UsIGtpdCgmZnJhbWUpKTsK
IAogICAgIC8vIENhbGwgdGhlIG9sZCB2ZXJzaW9uIG9mIHRoZSBkZWxlZ2F0ZSBtZXRob2QgaWYg
aXQgaXMgaW1wbGVtZW50ZWQuCiAgICAgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpydW5K
YXZhU2NyaXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6KTsKQEAgLTUyNSwxMyArNTI2LDEzIEBA
IGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJhbWUs
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICByZXR1cm4gTk87CiB9CiAKLWJvb2wgV2ViQ2hy
b21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5n
JiBwcm9tcHQsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFRleHQsIFN0cmluZyYgcmVzdWx0KQorYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmIGZyYW1lLCBjb25z
dCBTdHJpbmcmIHByb21wdCwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VGV4dCwgU3RyaW5nJiByZXN1
bHQpCiB7CiAgICAgaWQgZGVsZWdhdGUgPSBbbV93ZWJWaWV3IFVJRGVsZWdhdGVdOwogICAgIFNF
TCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRUZXh0SW5wdXRQYW5l
bFdpdGhQcm9tcHQ6ZGVmYXVsdFRleHQ6aW5pdGlhdGVkQnlGcmFtZTopOwogICAgIE5TU3RyaW5n
ICpkZWZhdWx0U3RyaW5nID0gZGVmYXVsdFRleHQ7CiAgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6c2VsZWN0b3JdKSB7Ci0gICAgICAgIHJlc3VsdCA9IChOU1N0cmluZyAqKUNh
bGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIHByb21wdCwgZGVmYXVsdFN0cmluZywg
a2l0KGZyYW1lKSk7CisgICAgICAgIHJlc3VsdCA9IChOU1N0cmluZyAqKUNhbGxVSURlbGVnYXRl
KG1fd2ViVmlldywgc2VsZWN0b3IsIHByb21wdCwgZGVmYXVsdFN0cmluZywga2l0KCZmcmFtZSkp
OwogICAgICAgICByZXR1cm4gIXJlc3VsdC5pc051bGwoKTsKICAgICB9CiAKQEAgLTU0Miw3ICs1
NDMsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSog
ZnJhbWUsIGNvbnN0IFN0cmluZyYgcHJvbXB0LCBjbwogICAgICAgICByZXR1cm4gIXJlc3VsdC5p
c051bGwoKTsKICAgICB9CiAKLSAgICByZXN1bHQgPSBbW1dlYkRlZmF1bHRVSURlbGVnYXRlIHNo
YXJlZFVJRGVsZWdhdGVdIHdlYlZpZXc6bV93ZWJWaWV3IHJ1bkphdmFTY3JpcHRUZXh0SW5wdXRQ
YW5lbFdpdGhQcm9tcHQ6cHJvbXB0IGRlZmF1bHRUZXh0OmRlZmF1bHRTdHJpbmcgaW5pdGlhdGVk
QnlGcmFtZTpraXQoZnJhbWUpXTsKKyAgICByZXN1bHQgPSBbW1dlYkRlZmF1bHRVSURlbGVnYXRl
IHNoYXJlZFVJRGVsZWdhdGVdIHdlYlZpZXc6bV93ZWJWaWV3IHJ1bkphdmFTY3JpcHRUZXh0SW5w
dXRQYW5lbFdpdGhQcm9tcHQ6cHJvbXB0IGRlZmF1bHRUZXh0OmRlZmF1bHRTdHJpbmcgaW5pdGlh
dGVkQnlGcmFtZTpraXQoJmZyYW1lKV07CiAgICAgcmV0dXJuICFyZXN1bHQuaXNOdWxsKCk7CiB9
CiAKQEAgLTYwNiw3ICs2MDcsNyBAQCBQbGF0Zm9ybVBhZ2VDbGllbnQgV2ViQ2hyb21lQ2xpZW50
OjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIFdl
YkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNvbnN0IEludFNpemUm
KSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUm
LCBjb25zdCBJbnRTaXplJikgY29uc3QKIHsKIH0KIApAQCAtNjM1LDEyICs2MzYsMTIgQEAgYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9u
KFJlbmRlckVtYmVkZGVkT2JqZWMKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCogZWxlbWVu
dCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdp
blVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJFbWJlZGRl
ZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlS
ZWFzb24pIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQtPmhhc1RhZ05hbWUob2JqZWN0VGFn
KSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGVtYmVkVGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1l
KGFwcGxldFRhZykpOworICAgIEFTU0VSVChlbGVtZW50Lmhhc1RhZ05hbWUob2JqZWN0VGFnKSB8
fCBlbGVtZW50Lmhhc1RhZ05hbWUoZW1iZWRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShhcHBs
ZXRUYWcpKTsKIAogICAgIEFTU0VSVChwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiA9PSBSZW5k
ZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luTWlzc2luZyk7Ci0gICAgQ2FsbFVJRGVsZWdhdGUobV93
ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpkaWRQcmVzc01pc3NpbmdQbHVnaW5CdXR0b246KSwg
a2l0KGVsZW1lbnQpKTsKKyAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3
ZWJWaWV3OmRpZFByZXNzTWlzc2luZ1BsdWdpbkJ1dHRvbjopLCBraXQoJmVsZW1lbnQpKTsKIH0K
IAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhp
dFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykKQEAgLTY1NywyMSAr
NjU4LDIxIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYg
dG9vbFRpcCwgVGV4dERpcmVjdGlvbikKICAgICAgICAgWyhXZWJIVE1MVmlldyAqKWRvY3VtZW50
VmlldyBfc2V0VG9vbFRpcDp0b29sVGlwXTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBy
aW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSYgZnJh
bWUpCiB7Ci0gICAgV2ViRnJhbWUgKndlYkZyYW1lID0ga2l0KGZyYW1lKTsKKyAgICBXZWJGcmFt
ZSAqd2ViRnJhbWUgPSBraXQoJmZyYW1lKTsKICAgICBpZiAoW1ttX3dlYlZpZXcgVUlEZWxlZ2F0
ZV0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OnByaW50RnJhbWU6KV0pCiAg
ICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6cHJpbnRG
cmFtZTopLCB3ZWJGcmFtZSk7CiAgICAgZWxzZQogICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dl
YlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnByaW50RnJhbWVWaWV3OiksIFt3ZWJGcmFtZSBmcmFt
ZVZpZXddKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90
YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFp
bHMpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lJiBm
cmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscykKIHsKICAg
ICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBXZWJTZWN1cml0eU9yaWdpbiAq
d2ViT3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdpbiBhbGxvY10gX2luaXRXaXRoV2ViQ29yZVNl
Y3VyaXR5T3JpZ2luOiZmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKV07Ci0gICAg
Q2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpmcmFtZTpleGNlZWRl
ZERhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjpkYXRhYmFzZTopLCBraXQoZnJhbWUpLCB3
ZWJPcmlnaW4sIChOU1N0cmluZyAqKWRhdGFiYXNlTmFtZSk7CisgICAgV2ViU2VjdXJpdHlPcmln
aW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0aFdlYkNv
cmVTZWN1cml0eU9yaWdpbjomZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKV07Cisg
ICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpmcmFtZTpleGNl
ZWRlZERhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjpkYXRhYmFzZTopLCBraXQoJmZyYW1l
KSwgd2ViT3JpZ2luLCAoTlNTdHJpbmcgKilkYXRhYmFzZU5hbWUpOwogICAgIFt3ZWJPcmlnaW4g
cmVsZWFzZV07CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwpAQCAtNjgyLDExICs2
ODMsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50
NjRfdCBzcGFjZU5lZWRlZCkKICAgICAvLyBGSVhNRTogRnJlZSBzb21lIHNwYWNlLgogfQogCi12
b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShT
ZWN1cml0eU9yaWdpbiogb3JpZ2luLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0
eU9yaWdpbiYgb3JpZ2luLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpCiB7CiAgICAgQkVHSU5f
QkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgV2ViU2VjdXJpdHlPcmlnaW4gKndlYk9yaWdp
biA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0aFdlYkNvcmVTZWN1cml0eU9y
aWdpbjpvcmlnaW5dOworICAgIFdlYlNlY3VyaXR5T3JpZ2luICp3ZWJPcmlnaW4gPSBbW1dlYlNl
Y3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5pdFdpdGhXZWJDb3JlU2VjdXJpdHlPcmlnaW46Jm9yaWdp
bl07CiAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpleGNl
ZWRlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YUZvclNlY3VyaXR5T3JpZ2luOnRvdGFsU3Bh
Y2VOZWVkZWQ6KSwgd2ViT3JpZ2luLCBzdGF0aWNfY2FzdDxOU1VJbnRlZ2VyPih0b3RhbFNwYWNl
TmVlZGVkKSk7CiAgICAgW3dlYk9yaWdpbiByZWxlYXNlXTsKIApAQCAtNzA1LDEyICs3MDYsMTQg
QEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFubm90YXRlZFJlZ2lvbnNDaGFuZ2VkKCkKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi1zdGQ6OnVuaXF1ZV9wdHI8Q29sb3JD
aG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJD
bGllbnQqIGNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKKworc3RkOjp1bmlxdWVf
cHRyPENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29s
b3JDaG9vc2VyQ2xpZW50JiBjbGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCiB7CiAg
ICAgLy8gRklYTUU6IEltcGxlbWVudCA8aW5wdXQgdHlwZT0nY29sb3InPiBmb3IgV0sxIChCdWcg
MTE5MDk0KS4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsK
IH0KKwogI2VuZGlmCiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQpAQCAtODQ4LDE0ICs4NTEs
MTQgQEAgU3RyaW5nIFdlYkNocm9tZUNsaWVudDo6Z2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoY29u
c3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVybiBbW21fd2ViVmlldyBfVUlEZWxlZ2F0ZUZvcndh
cmRlcl0gd2ViVmlldzptX3dlYlZpZXcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGU6cGF0aF07CiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9jdXMoY29uc3QgV2ViQ29yZTo6
Tm9kZSogbm9kZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9jdXMoV2ViQ29y
ZTo6RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBz
ZWxlY3Rvcih3ZWJWaWV3OmZvcm1EaWRGb2N1c05vZGU6KSwga2l0KGNvbnN0X2Nhc3Q8V2ViQ29y
ZTo6Tm9kZSo+KG5vZGUpKSk7CisgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0
b3Iod2ViVmlldzpmb3JtRGlkRm9jdXNOb2RlOiksIGtpdCgmZWxlbWVudCkpOwogfQogCi12b2lk
IFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9k
ZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkQmx1cihXZWJDb3JlOjpFbGVtZW50
JiBlbGVtZW50KQogewotICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdl
YlZpZXc6Zm9ybURpZEJsdXJOb2RlOiksIGtpdChjb25zdF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihu
b2RlKSkpOworICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6
Zm9ybURpZEJsdXJOb2RlOiksIGtpdCgmZWxlbWVudCkpOwogfQogCiBib29sIFdlYkNocm9tZUNs
aWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKQpAQCAtODc0LDE5ICs4
NzcsMTkgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6Omhhc09wZW5lZFBvcHVwKCkgY29uc3QKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50
KSBjb25zdAorUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7CiAj
aWYgIVBMQVRGT1JNKElPUykKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudU1hYyhj
bGllbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQb3B1cE1lbnVNYWMoJmNsaWVudCkp
OwogI2Vsc2UKICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgogfQogCi1SZWZQdHI8V2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVu
dShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51
KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAogewogI2lmICFQTEFURk9S
TShJT1MpCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVNYWMoY2xpZW50
KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VhcmNoUG9wdXBNZW51TWFjKCZjbGllbnQp
KTsKICNlbHNlCiAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKQEAgLTkwMiwxMSArOTA1LDEx
IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRQYWludEVudGlyZUNvbnRlbnRzKCkgY29u
c3QKICNlbmRpZgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNz
TGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lJiBmcmFtZSwgR3Jh
cGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CiAKLSAgICBOU1ZpZXcgKmRvY3VtZW50VmlldyA9IFtba2l0KGZyYW1lKSBmcmFtZVZp
ZXddIGRvY3VtZW50Vmlld107CisgICAgTlNWaWV3ICpkb2N1bWVudFZpZXcgPSBbW2tpdCgmZnJh
bWUpIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKICAgICBpZiAoIVtkb2N1bWVudFZpZXcgaXNL
aW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkgewogICAgICAgICAvLyBXZSBzaG91bGQg
bmV2ZXIgYmUgYXR0YWNoaW5nIHdoZW4gd2UgZG9uJ3QgaGF2ZSBhIFdlYkhUTUxWaWV3LgogICAg
ICAgICBBU1NFUlQoIWdyYXBoaWNzTGF5ZXIpOwpAQCAtOTIxLDcgKzkyNCw3IEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJhbWUsIEdyYXBo
aWNzTGF5ZXIqIGdyYXBoCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAotdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSos
IEdyYXBoaWNzTGF5ZXIqKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5
R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKQogewogICAgIC8vIEZJWE1FOiBJ
ZiB3ZSB3YW50IHZpZXctcmVsYXRpdmUgcGFnZSBvdmVybGF5cyBpbiBMZWdhY3kgV2ViS2l0LCB0
aGlzIHdvdWxkIGJlIHRoZSBwbGFjZSB0byBob29rIHRoZW0gdXAuCiB9CkBAIC05NDEsNiArOTQ0
LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNo
KCkKIH0KIAogI2lmIEVOQUJMRShWSURFTykKKwogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBv
cnRzVmlkZW9GdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVu
TW9kZSkKIHsKICNpZiBQTEFURk9STShJT1MpCkBAIC05NjUsNyArOTY5LDEwIEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6
OkhUTUxWaWRlb0VsZW1lCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsgICAgCiB9CiAK
LSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKyNl
bmRpZiAvLyBFTkFCTEUoVklERU8pCisKKyNpZiBFTkFCTEUoVklERU8pICYmIFBMQVRGT1JNKE1B
QykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorCiB2b2lkIFdlYkNocm9tZUNs
aWVudDo6c2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlcihIVE1MTWVkaWFFbGVtZW50JiBlbGVt
ZW50KQogewogICAgIFttX3dlYlZpZXcgX3NldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXJGb3JN
ZWRpYUVsZW1lbnQ6ZWxlbWVudF07CkBAIC05NzUsNTQgKzk4Miw1NSBAQCB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6Y2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigpCiB7CiAgICAgW21fd2ViVmll
dyBfY2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcl07CiB9Ci0jZW5kaWYgLy8gUExBVEZPUk0o
TUFDKQotI2VuZGlmIC8vIEVOQUJMRShWSURFTykKKworI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5G
b3JFbGVtZW50KGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgd2l0aEtleWJvYXJkKQorYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxl
bWVudCYgZWxlbWVudCwgYm9vbCB3aXRoS2V5Ym9hcmQpCiB7CiAgICAgU0VMIHNlbGVjdG9yID0g
QHNlbGVjdG9yKHdlYlZpZXc6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDp3aXRoS2V5Ym9h
cmQ6KTsKICAgICBpZiAoW1ttX3dlYlZpZXcgVUlEZWxlZ2F0ZV0gcmVzcG9uZHNUb1NlbGVjdG9y
OnNlbGVjdG9yXSkKLSAgICAgICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVh
bihmYWxzZSwgbV93ZWJWaWV3LCBzZWxlY3Rvciwga2l0KGNvbnN0X2Nhc3Q8V2ViQ29yZTo6RWxl
bWVudCo+KGVsZW1lbnQpKSwgd2l0aEtleWJvYXJkKTsKKyAgICAgICAgcmV0dXJuIENhbGxVSURl
bGVnYXRlUmV0dXJuaW5nQm9vbGVhbihmYWxzZSwgbV93ZWJWaWV3LCBzZWxlY3Rvciwga2l0KGNv
bnN0X2Nhc3Q8V2ViQ29yZTo6RWxlbWVudCo+KCZlbGVtZW50KSksIHdpdGhLZXlib2FyZCk7CiAj
aWYgIVBMQVRGT1JNKElPUykKLSAgICByZXR1cm4gW21fd2ViVmlldyBfc3VwcG9ydHNGdWxsU2Ny
ZWVuRm9yRWxlbWVudDpjb25zdF9jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPihlbGVtZW50KSB3aXRo
S2V5Ym9hcmQ6d2l0aEtleWJvYXJkXTsKKyAgICByZXR1cm4gW21fd2ViVmlldyBfc3VwcG9ydHNG
dWxsU2NyZWVuRm9yRWxlbWVudDpjb25zdF9jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPigmZWxlbWVu
dCkgd2l0aEtleWJvYXJkOndpdGhLZXlib2FyZF07CiAjZWxzZQogICAgIHJldHVybiBOTzsKICNl
bmRpZgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVu
dChFbGVtZW50KiBlbGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVl
bkZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBTRUwgc2VsZWN0b3IgPSBAc2Vs
ZWN0b3Iod2ViVmlldzplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50Omxpc3RlbmVyOik7CiAgICAg
aWYgKFtbbV93ZWJWaWV3IFVJRGVsZWdhdGVdIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rvcl0p
IHsKLSAgICAgICAgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyKiBsaXN0ZW5lciA9IFtbV2ViS2l0
RnVsbFNjcmVlbkxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aEVsZW1lbnQ6ZWxlbWVudF07Ci0gICAg
ICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIGtpdChlbGVtZW50KSwgbGlz
dGVuZXIpOworICAgICAgICBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIqIGxpc3RlbmVyID0gW1tX
ZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoRWxlbWVudDomZWxlbWVudF07
CisgICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIGtpdCgmZWxlbWVu
dCksIGxpc3RlbmVyKTsKICAgICAgICAgW2xpc3RlbmVyIHJlbGVhc2VdOwogICAgIH0KICNpZiAh
UExBVEZPUk0oSU9TKQogICAgIGVsc2UKLSAgICAgICAgW21fd2ViVmlldyBfZW50ZXJGdWxsU2Ny
ZWVuRm9yRWxlbWVudDplbGVtZW50XTsKKyAgICAgICAgW21fd2ViVmlldyBfZW50ZXJGdWxsU2Ny
ZWVuRm9yRWxlbWVudDomZWxlbWVudF07CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQog
ewogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OmV4aXRGdWxsU2NyZWVuRm9y
RWxlbWVudDpsaXN0ZW5lcjopOwogICAgIGlmIChbW21fd2ViVmlldyBVSURlbGVnYXRlXSByZXNw
b25kc1RvU2VsZWN0b3I6c2VsZWN0b3JdKSB7Ci0gICAgICAgIFdlYktpdEZ1bGxTY3JlZW5MaXN0
ZW5lciogbGlzdGVuZXIgPSBbW1dlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciBhbGxvY10gaW5pdFdp
dGhFbGVtZW50OmVsZW1lbnRdOwotICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNl
bGVjdG9yLCBraXQoZWxlbWVudCksIGxpc3RlbmVyKTsKKyAgICAgICAgV2ViS2l0RnVsbFNjcmVl
bkxpc3RlbmVyKiBsaXN0ZW5lciA9IFtbV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyIGFsbG9jXSBp
bml0V2l0aEVsZW1lbnQ6JmVsZW1lbnRdOworICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZp
ZXcsIHNlbGVjdG9yLCBraXQoJmVsZW1lbnQpLCBsaXN0ZW5lcik7CiAgICAgICAgIFtsaXN0ZW5l
ciByZWxlYXNlXTsKICAgICB9CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBlbHNlCi0gICAgICAg
IFttX3dlYlZpZXcgX2V4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDplbGVtZW50XTsKKyAgICAgICAg
W21fd2ViVmlldyBfZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50OiZlbGVtZW50XTsKICNlbmRpZgog
fQogCiAjZW5kaWYgLy8gRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogCiAjaWYgRU5BQkxFKFNVQlRM
RV9DUllQVE8pCisKIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojp3cmFwQ3J5cHRvS2V5KGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYga2V5LCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRLZXkpIGNvbnN0CiB7
CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IG1hc3RlcktleTsKQEAgLTEwNDgsOSArMTA1NiwxMSBAQCBi
b29sIFdlYkNocm9tZUNsaWVudDo6dW53cmFwQ3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90
PiYgd3JhcHBlZEtleSwgVmVjdG9yPAogCiAgICAgcmV0dXJuIHVud3JhcFNlcmlhbGl6ZWRDcnlw
dG9LZXkobWFzdGVyS2V5LCB3cmFwcGVkS2V5LCBrZXkpOwogfQorCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShTRVJWSUNFX0NPTlRST0xTKQorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6aGFuZGxlU2Vs
ZWN0aW9uU2VydmljZUNsaWNrKFdlYkNvcmU6OkZyYW1lU2VsZWN0aW9uJiBzZWxlY3Rpb24sIGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiB0ZWxlcGhvbmVOdW1iZXJzLCBjb25zdCBXZWJDb3JlOjpJbnRQ
b2ludCYgcG9pbnQpCiB7CiAgICAgW21fd2ViVmlldyBfc2VsZWN0aW9uU2VydmljZUNvbnRyb2xs
ZXJdLmhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhzZWxlY3Rpb24sIHRlbGVwaG9uZU51bWJl
cnMsIHBvaW50KTsKQEAgLTEwNjQsNiArMTA3NCw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojpo
YXNSZWxldmFudFNlbGVjdGlvblNlcnZpY2VzKGJvb2wgaXNUZXh0T25seSkgY29uc3QKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYgIVBMQVRGT1JNKElP
UykKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
KHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAgICBbbV93ZWJWaWV3IF9hZGRQbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudDpjb250ZXh0SWRdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUu
bW0KaW5kZXggYmViN2IzMDljYTZjZGQ4MzNjZGFmZGIwNGZiMTkyYTRkY2IyNjRkNS4uMzhhNGNl
Y2IxNzYxMTQxN2Y3OThlODg0ZjA0ZWFiOTJiMzEyNDJjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkZyYW1lLm1tCkBAIC0zMDIsMTQgKzMwMiwxNCBAQCArIChSZWY8V2ViQ29yZTo6RnJh
bWU+KV9jcmVhdGVGcmFtZVdpdGhQYWdlOihQYWdlKilwYWdlIGZyYW1lTmFtZTooY29uc3QgU3Ry
aW5nJgogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBraXQocGFnZSk7CiAKICAgICBXZWJGcmFtZSAq
ZnJhbWUgPSBbW3NlbGYgYWxsb2NdIF9pbml0V2l0aFdlYkZyYW1lVmlldzpmcmFtZVZpZXcgd2Vi
Vmlldzp3ZWJWaWV3XTsKLSAgICBSZWY8V2ViQ29yZTo6RnJhbWU+IGNvcmVGcmFtZSA9IEZyYW1l
OjpjcmVhdGUocGFnZSwgb3duZXJFbGVtZW50LCBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQoZnJh
bWUpKTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZSwgb3duZXJFbGVt
ZW50LCBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQoZnJhbWUpKTsKICAgICBbZnJhbWUgcmVsZWFz
ZV07CiAgICAgZnJhbWUtPl9wcml2YXRlLT5jb3JlRnJhbWUgPSBjb3JlRnJhbWUucHRyKCk7CiAK
ICAgICBjb3JlRnJhbWUuZ2V0KCkudHJlZSgpLnNldE5hbWUobmFtZSk7CiAgICAgaWYgKG93bmVy
RWxlbWVudCkgewogICAgICAgICBBU1NFUlQob3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1l
KCkpOwotICAgICAgICBvd25lckVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKS0+dHJlZSgpLmFw
cGVuZENoaWxkKGNvcmVGcmFtZS5wdHIoKSk7CisgICAgICAgIG93bmVyRWxlbWVudC0+ZG9jdW1l
bnQoKS5mcmFtZSgpLT50cmVlKCkuYXBwZW5kQ2hpbGQoY29yZUZyYW1lLmdldCgpKTsKICAgICB9
CiAKICAgICBjb3JlRnJhbWUuZ2V0KCkuaW5pdCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMv
UGx1Z2luVmlldy5jcHAKaW5kZXggMTRlOTcxMGQxNWQ3OWJmM2I1NWM0MDA5ZTU2Njg0YTBlZTNk
NzgzNy4uMjk4MTUzZGYzYzRhZDdmNzRhYjI1Zjk4MDliZmRkYjIyZDgwNzM4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC01OTMsNyArNTkzLDcgQEAgTlBF
cnJvciBQbHVnaW5WaWV3OjpkZXN0cm95U3RyZWFtKE5QU3RyZWFtKiBzdHJlYW0sIE5QUmVhc29u
IHJlYXNvbikKIHZvaWQgUGx1Z2luVmlldzo6c3RhdHVzKGNvbnN0IGNoYXIqIG1lc3NhZ2UpCiB7
CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX3BhcmVudEZyYW1lLT5wYWdlKCkpCi0gICAgICAgIHBh
Z2UtPmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQobV9wYXJlbnRGcmFtZS5nZXQoKSwgU3RyaW5n
Ojpmcm9tVVRGOChtZXNzYWdlKSk7CisgICAgICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1c2Jh
clRleHQoKm1fcGFyZW50RnJhbWUsIFN0cmluZzo6ZnJvbVVURjgobWVzc2FnZSkpOwogfQogCiBO
UEVycm9yIFBsdWdpblZpZXc6OnNldFZhbHVlKE5QUFZhcmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2
YWx1ZSkKQEAgLTc5Myw3ICs3OTMsNyBAQCBQbHVnaW5WaWV3OjpQbHVnaW5WaWV3KEZyYW1lKiBw
YXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2luUGFja2FnZSogcAogdm9pZCBQ
bHVnaW5WaWV3Ojpmb2N1c1BsdWdpbkVsZW1lbnQoKQogewogICAgIGlmIChQYWdlKiBwYWdlID0g
bV9wYXJlbnRGcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5z
ZXRGb2N1c2VkRWxlbWVudChtX2VsZW1lbnQsIG1fcGFyZW50RnJhbWUpOworICAgICAgICBwYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChtX2VsZW1lbnQsICptX3BhcmVu
dEZyYW1lKTsKICAgICBlbHNlCiAgICAgICAgIG1fcGFyZW50RnJhbWUtPmRvY3VtZW50KCktPnNl
dEZvY3VzZWRFbGVtZW50KG1fZWxlbWVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBhNzczYjFhYjE0MTc0
ZTAyMGM2MmQ5ZDA0Nzg2ZDJhMjgyMWNiNzg0Li5hYjY1MTQ0NGY5MjE5YTY3NzZiZjg3ZWIxOGIy
ODFjYmQyNDEyMGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTE4OSwxNSArMTg5LDE1IEBAIHN0YXRpYyBDT01Q
dHI8SVByb3BlcnR5QmFnPiBjcmVhdGVXaW5kb3dGZWF0dXJlc1Byb3BlcnR5QmFnKGNvbnN0IFdp
bmRvd0ZlYXR1cmVzCiAgICAgcmV0dXJuIENPTVB0cjxJUHJvcGVydHlCYWc+KEFkb3B0Q09NLCBD
T01Qcm9wZXJ0eUJhZzxDT01WYXJpYW50Pjo6YWRvcHQobWFwKSk7CiB9CiAKLVBhZ2UqIFdlYkNo
cm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVx
dWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFj
dGlvbiYgbmF2aWdhdGlvbkFjdGlvbikKK1BhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2lu
ZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0Zl
YXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlv
bikKIHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IGRlbGVnYXRlID0gdWlEZWxlZ2F0ZSgp
OwogICAgIGlmICghZGVsZWdhdGUpCiAgICAgICAgIHJldHVybiAwOwogCiAjaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQotICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZS0+ZG9jdW1l
bnQoKS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkpCi0gICAgICAgIGZyYW1lLT5k
b2N1bWVudCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7CisgICAgaWYgKGZyYW1lLmRvY3Vt
ZW50KCkgJiYgZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50
KCkpCisgICAgICAgIGZyYW1lLmRvY3VtZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsK
ICNlbmRpZgogCiAgICAgQ09NUHRyPFdlYk11dGFibGVVUkxSZXF1ZXN0PiByZXF1ZXN0ID0gYWRv
cHRDT00oV2ViTXV0YWJsZVVSTFJlcXVlc3Q6OmNyZWF0ZUluc3RhbmNlKFJlc291cmNlUmVxdWVz
dChuYXZpZ2F0aW9uQWN0aW9uLnVybCgpKSkpOwpAQCAtMzYxLDEyICszNjEsMTIgQEAgYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpCiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUqIGZyYW1lKQorYm9vbCBXZWJD
aHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIEZyYW1lJiBmcmFtZSkKIHsKICAgICBCT09MIHJlc3VsdCA9IFRSVUU7CiAgICAgSVdl
YlVJRGVsZWdhdGUqIHVpOwogICAgIGlmIChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRl
KCZ1aSkpICYmIHVpKSB7Ci0gICAgICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IGtpdChmcmFtZSk7
CisgICAgICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IGtpdCgmZnJhbWUpOwogICAgICAgICB1aS0+
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2UobV93ZWJWaWV3LCBCU3RyaW5n
KG1lc3NhZ2UpLCB3ZWJGcmFtZSwgJnJlc3VsdCk7CiAgICAgICAgIHVpLT5SZWxlYXNlKCk7CiAg
ICAgfQpAQCAtMzkzLDE0ICszOTMsMTQgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNsb3NlV2lu
ZG93U29vbigpCiAgICAgbV93ZWJWaWV3LT5jbG9zZVdpbmRvd1Nvb24oKTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUm
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1
aTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWkpKSkKICAgICAg
ICAgdWktPnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2UobV93ZWJWaWV3LCBCU3Ry
aW5nKG1lc3NhZ2UpKTsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRD
b25maXJtKEZyYW1lKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQorYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQog
ewogICAgIEJPT0wgcmVzdWx0ID0gRkFMU0U7CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1
aTsKQEAgLTQwOSw3ICs0MDksNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlw
dENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgcmV0dXJuICEhcmVz
dWx0OwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFt
ZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0
cmluZyYgcmVzdWx0KQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQo
RnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVl
LCBTdHJpbmcmIHJlc3VsdCkKIHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpOwogICAg
IGlmIChGQUlMRUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aSkpKQpAQCAtNTA4LDcgKzUwOCw3
IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGllbnQ6OnBsYXRmb3JtUGFnZUNsaWVu
dCgpIGNvbnN0CiAgICAgcmV0dXJuIHZpZXdXaW5kb3c7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xp
ZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0Cit2
b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYsIGNvbnN0IElu
dFNpemUmKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC01NDAsNyArNTQw
LDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2Fn
ZUJlQnV0dG9uKFJlbmRlckVtYmVkZGVkT2JqZWMKICAgICByZXR1cm4gdWlEZWxlZ2F0ZVByaXZh
dGUzOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25D
bGlja2VkKEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2
YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QKK3ZvaWQg
V2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCYg
ZWxlbWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29u
IHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdAogewogICAgIEFTU0VSVF9VTlVTRUQo
cGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uID09
IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5NaXNzaW5nKTsKIApAQCAtNTUyLDcgKzU1Miw3
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQo
RWxlbWVudCogZWxlbWVudCwgUmVuZGVyRW1iCiAgICAgaWYgKCF1aURlbGVnYXRlUHJpdmF0ZTMp
CiAgICAgICAgIHJldHVybjsKIAotICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZShBZG9wdENPTSwg
RE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoZWxlbWVudCkpOworICAgIENPTVB0cjxJRE9NRWxl
bWVudD4gZShBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoJmVsZW1lbnQpKTsK
ICAgICB1aURlbGVnYXRlUHJpdmF0ZTMtPmRpZFByZXNzTWlzc2luZ1BsdWdpbkJ1dHRvbihlLmdl
dCgpKTsKIH0KIApAQCAtNTYxLDIxICs1NjEsMjEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNl
dFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlwLCBUZXh0RGlyZWN0aW9uKQogICAgIG1fd2Vi
Vmlldy0+c2V0VG9vbFRpcCh0b29sVGlwKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBy
aW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSYgZnJh
bWUpCiB7CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOwogICAgIGlmIChT
VUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkpCi0gICAgICAgIHVp
RGVsZWdhdGUtPnByaW50RnJhbWUobV93ZWJWaWV3LCBraXQoZnJhbWUpKTsKKyAgICAgICAgdWlE
ZWxlZ2F0ZS0+cHJpbnRGcmFtZShtX3dlYlZpZXcsIGtpdCgmZnJhbWUpKTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyLCBEYXRhYmFzZURldGFpbHMpCit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lJiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiBkYXRhYmFzZUlkZW50aWZpZXIsIERhdGFiYXNlRGV0YWlscykKIHsKLSAgICBDT01QdHI8
V2ViU2VjdXJpdHlPcmlnaW4+IG9yaWdpbihBZG9wdENPTSwgV2ViU2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZUluc3RhbmNlKCZmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkpOworICAg
IENPTVB0cjxXZWJTZWN1cml0eU9yaWdpbj4gb3JpZ2luKEFkb3B0Q09NLCBXZWJTZWN1cml0eU9y
aWdpbjo6Y3JlYXRlSW5zdGFuY2UoJmZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkp
KTsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdhdGU7CiAgICAgaWYgKFNVQ0NF
RURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUpKSkgewogICAgICAgICBDT01Q
dHI8SVdlYlVJRGVsZWdhdGVQcml2YXRlPiB1aURlbGVnYXRlUHJpdmF0ZShRdWVyeSwgdWlEZWxl
Z2F0ZSk7CiAgICAgICAgIGlmICh1aURlbGVnYXRlUHJpdmF0ZSkKLSAgICAgICAgICAgIHVpRGVs
ZWdhdGVQcml2YXRlLT5leGNlZWRlZERhdGFiYXNlUXVvdGEobV93ZWJWaWV3LCBraXQoZnJhbWUp
LCBvcmlnaW4uZ2V0KCksIEJTdHJpbmcoZGF0YWJhc2VJZGVudGlmaWVyKSk7CisgICAgICAgICAg
ICB1aURlbGVnYXRlUHJpdmF0ZS0+ZXhjZWVkZWREYXRhYmFzZVF1b3RhKG1fd2ViVmlldywga2l0
KCZmcmFtZSksIG9yaWdpbi5nZXQoKSwgQlN0cmluZyhkYXRhYmFzZUlkZW50aWZpZXIpKTsKICAg
ICAgICAgZWxzZSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogcmVtb3ZlIHRoaXMgd29ya2Fyb3Vu
ZCBvbmNlIHNoaXBwaW5nIFNhZmFyaSBoYXMgdGhlIG5lY2Vzc2FyeSBkZWxlZ2F0ZSBpbXBsZW1l
bnRlZC4KICAgICAgICAgICAgIFdDSEFSIHBhdGhbTUFYX1BBVEhdOwpAQCAtNjEzLDcgKzYxMyw3
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qg
c3BhY2VOZWVkZWQpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4q
LCBpbnQ2NF90KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hl
T3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90KQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CkBAIC03MTcsMTIgKzcxNywxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0
TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpCiAgICAgbV93ZWJWaWV3LT5zZXRMYXN0Q3Vy
c29yKDo6R2V0Q3Vyc29yKCkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9v
dEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVy
KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lJiwg
R3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBtX3dlYlZpZXctPnNldFJvb3RD
aGlsZExheWVyKGdyYXBoaWNzTGF5ZXIpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0
YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciopCit2b2lk
IFdlYkNocm9tZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lJiwg
R3JhcGhpY3NMYXllciopCiB7CiAgICAgLy8gRklYTUU6IElmIHdlIHdhbnQgdmlldy1yZWxhdGl2
ZSBwYWdlIG92ZXJsYXlzIGluIExlZ2FjeSBXZWJLaXQgb24gV2luZG93cywgdGhpcyB3b3VsZCBi
ZSB0aGUgcGxhY2UgdG8gaG9vayB0aGVtIHVwLgogfQpAQCAtNzUzLDcgKzc1Myw3IEBAIGJvb2wg
V2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihIVE1MTWVkaWFFbGVtZW50
RW51bXM6OlZpZGVvRnVsbHNjCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgV2ViQ2hyb21l
Q2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVt
ZW50JiB2aWRlb0VsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50LCBIVE1M
TWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpCiB7CiAgICAgbV93ZWJWaWV3
LT5lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCh2aWRlb0VsZW1lbnQpOwogfQpA
QCAtNzgxLDU5ICs3ODEsNjEgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6Omhhc09wZW5lZFBvcHVw
KCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlZlB0cjxQb3B1cE1lbnU+IFdlYkNo
cm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25z
dAorUmVmUHRyPFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQ
b3B1cE1lbnVXaW4oY2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVX
aW4oJmNsaWVudCkpOwogfQogCi1SZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGll
bnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QK
K1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAogewotICAgIHJldHVybiBhZG9w
dFJlZihuZXcgU2VhcmNoUG9wdXBNZW51V2luKGNsaWVudCkpOworICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU2VhcmNoUG9wdXBNZW51V2luKCZjbGllbnQpKTsKIH0KIAogI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JF
bGVtZW50KGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgcmVxdWVzdGluZ0tleWJvYXJkQWNj
ZXNzKQorCitib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVu
dChjb25zdCBFbGVtZW50JiBlbGVtZW50LCBib29sIHJlcXVlc3RpbmdLZXlib2FyZEFjY2VzcykK
IHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdhdGU7CiAgICAgaWYgKFNVQ0NF
RURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUpKSkgewogICAgICAgICBDT01Q
dHI8SVdlYlVJRGVsZWdhdGVQcml2YXRlND4gdWlEZWxlZ2F0ZVByaXZhdGU0KFF1ZXJ5LCB1aURl
bGVnYXRlKTsKICAgICAgICAgQk9PTCBzdXBwb3J0cyA9IEZBTFNFOwotICAgICAgICBDT01QdHI8
SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00sIERPTUVsZW1lbnQ6OmNyZWF0ZUluc3Rh
bmNlKGNvbnN0X2Nhc3Q8RWxlbWVudCo+KGVsZW1lbnQpKSk7CisgICAgICAgIENPTVB0cjxJRE9N
RWxlbWVudD4gZG9tRWxlbWVudChBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2Uo
Y29uc3RfY2FzdDxFbGVtZW50Kj4oJmVsZW1lbnQpKSk7CiAKICAgICAgICAgaWYgKHVpRGVsZWdh
dGVQcml2YXRlNCAmJiBTVUNDRUVERUQodWlEZWxlZ2F0ZVByaXZhdGU0LT5zdXBwb3J0c0Z1bGxT
Y3JlZW5Gb3JFbGVtZW50KGRvbUVsZW1lbnQuZ2V0KCksIHJlcXVlc3RpbmdLZXlib2FyZEFjY2Vz
cywgJnN1cHBvcnRzKSkpCiAgICAgICAgICAgICByZXR1cm4gc3VwcG9ydHM7CiAgICAgfQogCi0g
ICAgcmV0dXJuIG1fd2ViVmlldy0+c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50
LCByZXF1ZXN0aW5nS2V5Ym9hcmRBY2Nlc3MpOworICAgIHJldHVybiBtX3dlYlZpZXctPnN1cHBv
cnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoJmVsZW1lbnQsIHJlcXVlc3RpbmdLZXlib2FyZEFjY2Vz
cyk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KEVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVu
Rm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogewogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0
ZT4gdWlEZWxlZ2F0ZTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgm
dWlEZWxlZ2F0ZSkpKSB7CiAgICAgICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZVByaXZhdGU0PiB1
aURlbGVnYXRlUHJpdmF0ZTQoUXVlcnksIHVpRGVsZWdhdGUpOwotICAgICAgICBDT01QdHI8SURP
TUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00sIERPTUVsZW1lbnQ6OmNyZWF0ZUluc3RhbmNl
KGVsZW1lbnQpKTsKKyAgICAgICAgQ09NUHRyPElET01FbGVtZW50PiBkb21FbGVtZW50KEFkb3B0
Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZSgmZWxlbWVudCkpOwogICAgICAgICBpZiAo
dWlEZWxlZ2F0ZVByaXZhdGU0ICYmIFNVQ0NFRURFRCh1aURlbGVnYXRlUHJpdmF0ZTQtPmVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQoZG9tRWxlbWVudC5nZXQoKSkpKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgIH0gCiAKLSAgICBtX3dlYlZpZXctPnNldEZ1bGxTY3JlZW5FbGVtZW50KGVsZW1l
bnQpOworICAgIG1fd2ViVmlldy0+c2V0RnVsbFNjcmVlbkVsZW1lbnQoJmVsZW1lbnQpOwogICAg
IG1fd2ViVmlldy0+ZnVsbFNjcmVlbkNvbnRyb2xsZXIoKS0+ZW50ZXJGdWxsU2NyZWVuKCk7CiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVu
dCogZWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1l
bnQoRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVs
ZWdhdGU7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdh
dGUpKSkgewogICAgICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGVQcml2YXRlND4gdWlEZWxlZ2F0
ZVByaXZhdGU0KFF1ZXJ5LCB1aURlbGVnYXRlKTsKLSAgICAgICAgQ09NUHRyPElET01FbGVtZW50
PiBkb21FbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZShlbGVtZW50
KSk7CisgICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxlbWVudChBZG9wdENPTSwgRE9N
RWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoJmVsZW1lbnQpKTsKICAgICAgICAgaWYgKHVpRGVsZWdh
dGVQcml2YXRlNCAmJiBTVUNDRUVERUQodWlEZWxlZ2F0ZVByaXZhdGU0LT5leGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoZG9tRWxlbWVudC5nZXQoKSkpKQogICAgICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIEFTU0VSVChlbGVtZW50ID09IG1fd2ViVmlldy0+ZnVsbFNjcmVlbkVsZW1lbnQo
KSk7CisgICAgQVNTRVJUKCZlbGVtZW50ID09IG1fd2ViVmlldy0+ZnVsbFNjcmVlbkVsZW1lbnQo
KSk7CiAgICAgbV93ZWJWaWV3LT5mdWxsU2NyZWVuQ29udHJvbGxlcigpLT5leGl0RnVsbFNjcmVl
bigpOwogfQorCiAjZW5kaWYKIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OkFYU3RhcnRGcmFtZUxv
YWQoKQpAQCAtODUyLDEwICs4NTQsMTAgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OkFYRmluaXNo
RnJhbWVMb2FkKCkKICAgICAgICAgZGVsZWdhdGUtPmZpcmVGcmFtZUxvYWRGaW5pc2hlZEV2ZW50
cygpOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9y
RnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyogZnJhbWVWaWV3KSBjb25zdAorYm9vbCBXZWJDaHJv
bWVDbGllbnQ6OnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZp
ZXcmIGZyYW1lVmlldykgY29uc3QKIHsKICNpZiAhVVNFKENBSVJPKQotICAgIHJldHVybiBmcmFt
ZVZpZXcgJiYgZnJhbWVWaWV3LT5mcmFtZSgpLmlzTWFpbkZyYW1lKCk7CisgICAgcmV0dXJuIGZy
YW1lVmlldy5mcmFtZSgpLmlzTWFpbkZyYW1lKCk7CiAjZWxzZQogICAgIHJldHVybiBmYWxzZTsK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAppbmRleCA5Mjg3MmI0MWMxMmZiMzE1ZTU0MWVjYmRiOTVkYmNiMTU2NjI3MmRj
Li4xODMxMmQ2YmM0NGM2N2NkODQxMjQwMTkwOGZiZDY0MThlZTYyNTIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMzcs
MTM3ICszNywxMzcgQEAgY2xhc3MgV2ViRGVza3RvcE5vdGlmaWNhdGlvbnNEZWxlZ2F0ZTsKIAog
aW50ZXJmYWNlIElXZWJVSURlbGVnYXRlOwogCi1jbGFzcyBXZWJDaHJvbWVDbGllbnQgOiBwdWJs
aWMgV2ViQ29yZTo6Q2hyb21lQ2xpZW50IHsKK2NsYXNzIFdlYkNocm9tZUNsaWVudCBmaW5hbCA6
IHB1YmxpYyBXZWJDb3JlOjpDaHJvbWVDbGllbnQgewogcHVibGljOgogICAgIFdlYkNocm9tZUNs
aWVudChXZWJWaWV3Kik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2hyb21lRGVzdHJveWVkKCk7Cisg
ICAgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRX
aW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHZpcnR1YWwgV2ViQ29y
ZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKTsKKyAgICB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRv
d1JlY3QoKSBmaW5hbDsKICAgICAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdl
UmVjdCgpOworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpIGZpbmFsOwogCi0gICAg
dmlydHVhbCB2b2lkIGZvY3VzKCk7Ci0gICAgdmlydHVhbCB2b2lkIHVuZm9jdXMoKTsKKyAgICB2
b2lkIGZvY3VzKCkgZmluYWw7CisgICAgdm9pZCB1bmZvY3VzKCkgZmluYWw7CiAKLSAgICB2aXJ0
dWFsIGJvb2wgY2FuVGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsKLSAgICB2aXJ0
dWFsIHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsKKyAgICBib29sIGNh
blRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbikgZmluYWw7CisgICAgdm9pZCB0YWtl
Rm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lk
IGZvY3VzZWRFbGVtZW50Q2hhbmdlZChXZWJDb3JlOjpFbGVtZW50Kik7Ci0gICAgdmlydHVhbCB2
b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqKTsKKyAgICB2b2lkIGZvY3Vz
ZWRFbGVtZW50Q2hhbmdlZChXZWJDb3JlOjpFbGVtZW50KikgZmluYWw7CisgICAgdm9pZCBmb2N1
c2VkRnJhbWVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKikgZmluYWw7CiAKLSAgICB2aXJ0dWFsIFdl
YkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6
OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0
IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2hvdygpOwor
ICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdl
YkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYs
IGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbDsKKyAgICB2b2lkIHNob3co
KSBmaW5hbDsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5Nb2RhbCgpOwotICAgIHZpcnR1YWwg
dm9pZCBydW5Nb2RhbCgpOworICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBmaW5hbDsKKyAgICB2b2lk
IHJ1bk1vZGFsKCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbGJhcnNWaXNpYmxl
KGJvb2wpOwotICAgIHZpcnR1YWwgYm9vbCB0b29sYmFyc1Zpc2libGUoKTsKKyAgICB2b2lkIHNl
dFRvb2xiYXJzVmlzaWJsZShib29sKSBmaW5hbDsKKyAgICBib29sIHRvb2xiYXJzVmlzaWJsZSgp
IGZpbmFsOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJWaXNpYmxlKGJvb2wp
OwotICAgIHZpcnR1YWwgYm9vbCBzdGF0dXNiYXJWaXNpYmxlKCk7CisgICAgdm9pZCBzZXRTdGF0
dXNiYXJWaXNpYmxlKGJvb2wpIGZpbmFsOworICAgIGJvb2wgc3RhdHVzYmFyVmlzaWJsZSgpIGZp
bmFsOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxiYXJzVmlzaWJsZShib29sKTsK
LSAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyc1Zpc2libGUoKTsKKyAgICB2b2lkIHNldFNjcm9s
bGJhcnNWaXNpYmxlKGJvb2wpIGZpbmFsOworICAgIGJvb2wgc2Nyb2xsYmFyc1Zpc2libGUoKSBm
aW5hbDsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TWVudWJhclZpc2libGUoYm9vbCk7Ci0g
ICAgdmlydHVhbCBib29sIG1lbnViYXJWaXNpYmxlKCk7CisgICAgdm9pZCBzZXRNZW51YmFyVmlz
aWJsZShib29sKSBmaW5hbDsKKyAgICBib29sIG1lbnViYXJWaXNpYmxlKCkgZmluYWw7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpOworICAgIHZvaWQgc2V0UmVzaXphYmxl
KGJvb2wpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlND
OjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgV1RGOjpTdHJpbmcmIG1l
c3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3Qg
V1RGOjpTdHJpbmcmIHVybCk7CisgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKEpTQzo6TWVz
c2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdl
LCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFdURjo6
U3RyaW5nJiB1cmwpIGZpbmFsOwogCi0gICAgdmlydHVhbCBib29sIGNhblJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbCgpOwotICAgIHZpcnR1YWwgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwoY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIFdlYkNvcmU6OkZyYW1lKiBmcmFtZSk7
CisgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSBmaW5hbDsKKyAgICBi
b29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBXVEY6OlN0cmluZyYgbWVzc2Fn
ZSwgV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBjbG9zZVdpbmRv
d1Nvb24oKTsKKyAgICB2b2lkIGNsb3NlV2luZG93U29vbigpIGZpbmFsOwogCi0gICAgdmlydHVh
bCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3Ry
aW5nJik7Ci0gICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZy
YW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlw
dFByb21wdChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25z
dCBXVEY6OlN0cmluZyYgZGVmYXVsdFZhbHVlLCBXVEY6OlN0cmluZyYgcmVzdWx0KTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBXVEY6OlN0cmluZyYpOworICAgIHZv
aWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV1RGOjpTdHJpbmcm
KSBmaW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lJiwg
Y29uc3QgV1RGOjpTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQo
V2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpT
dHJpbmcmIGRlZmF1bHRWYWx1ZSwgV1RGOjpTdHJpbmcmIHJlc3VsdCkgZmluYWw7CisgICAgdm9p
ZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFdURjo6U3RyaW5nJikgZmluYWw7CiAKLSAgICB2aXJ0
dWFsIFdlYkNvcmU6OktleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCk7CisgICAgV2ViQ29y
ZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5hbDsKIAotICAgIHZpcnR1YWwg
dm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHZp
cnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0Jik7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3Jv
bGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHJlY3RUb1Njcm9sbCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpOworICAgIHZv
aWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsKKyAg
ICB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSBmaW5hbDsKKyAgICB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOworICAgIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0VG9T
Y3JvbGwsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KSBmaW5hbDsKIAotICAgIHZp
cnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYpIGNvbnN0OwotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCByb290Vmlld1Rv
U2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdDsKLSAgICB2aXJ0dWFsIFBsYXRm
b3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZv
aWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmKSBjb25zdDsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3QgZmluYWw7CisgICAgV2ViQ29yZTo6SW50UmVj
dCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBmaW5hbDsK
KyAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgZmluYWw7
CisgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYpIGNvbnN0IGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHNjcm9sbGJh
cnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgeyB9Ci0gICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2Rp
ZmllckZsYWdzKTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNz
YWdlQmVCdXR0b24oV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxh
YmlsaXR5UmVhc29uKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9i
amVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0OworICAgIHZvaWQgc2Nyb2xs
YmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBmaW5hbCB7IH0KKyAgICB2b2lkIG1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2Rp
ZmllckZsYWdzKSBmaW5hbDsKKyAgICBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2Fn
ZUJlQnV0dG9uKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbikgY29uc3QgZmluYWw7CisgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVudCYsIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0
OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0VG9vbFRpcChjb25zdCBXVEY6OlN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rp
b24pOworICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXVEY6OlN0cmluZyYsIFdlYkNvcmU6OlRl
eHREaXJlY3Rpb24pIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHByaW50KFdlYkNvcmU6OkZy
YW1lKik7CisgICAgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwogCi0gICAgdmly
dHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdU
Rjo6U3RyaW5nJiwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKTsKKyAgICB2b2lkIGV4Y2VlZGVk
RGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29y
ZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkTWF4
QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpOwotICAgIHZpcnR1YWwgdm9pZCByZWFj
aGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwg
aW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKTsKKyAgICB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNp
emUoaW50NjRfdCBzcGFjZU5lZWRlZCkgZmluYWw7CisgICAgdm9pZCByZWFjaGVkQXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCB0b3Rh
bFNwYWNlTmVlZGVkKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2Vi
Q29yZTo6RnJhbWUmLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciYpOwotICAgIHZpcnR1YWwgdm9pZCBs
b2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxl
SWNvbkxvYWRlciYpOworICAgIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lJiwgV2Vi
Q29yZTo6RmlsZUNob29zZXImKSBmaW5hbDsKKyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29u
c3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJikgZmluYWw7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpOwot
ICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCk7Ci0g
ICAgdmlydHVhbCB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKTsKKyAgICB2
b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBmaW5hbDsKKyAgICB2b2lkIHNl
dEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSBmaW5hbDsKKyAgICB2b2lkIHNldExh
c3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKSBmaW5hbDsKIAogICAgIC8vIFBhc3MgMCBhcyB0
aGUgR3JhcGhpY3NMYXllciB0byBkZXRhdGNoIHRoZSByb290IGxheWVyLgotICAgIHZpcnR1YWwg
dm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqKTsKLSAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihX
ZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2
b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopIGZpbmFsOworICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xh
eWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwogICAg
IC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgbmV4dCB0aW1lIGNvbnRlbnQgaXMg
ZHJhd24gdG8gdGhlIHdpbmRvdywKICAgICAvLyB0aGUgY2hhbmdlcyBhcHBlYXIgb24gdGhlIHNj
cmVlbiBpbiBzeW5jaHJvbnkgd2l0aCB1cGRhdGVzIHRvIEdyYXBoaWNzTGF5ZXJzLgotICAgIHZp
cnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgeyB9Cisg
ICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgZmluYWwgeyB9
CiAgICAgLy8gU2V0cyBhIGZsYWcgdG8gc3BlY2lmeSB0aGF0IHRoZSB2aWV3IG5lZWRzIHRvIGJl
IHVwZGF0ZWQsIHNvIHdlIG5lZWQKICAgICAvLyB0byBkbyBhbiBlYWdlciBsYXlvdXQgYmVmb3Jl
IHRoZSBkcmF3aW5nLgotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJG
bHVzaCgpOworICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBmaW5hbDsK
IAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKEFWRk9VTkRBVElPTikKLSAgICBXZWJDb3JlOjpH
cmFwaGljc0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2aWNlQWRhcHRlcigpIGNvbnN0IG92ZXJy
aWRlOworICAgIFdlYkNvcmU6OkdyYXBoaWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NEZXZpY2VB
ZGFwdGVyKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxS
ZWN0SW50b1ZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IHsgfQorICAgIHZvaWQg
c2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBmaW5hbCB7
IH0KIAogI2lmIEVOQUJMRShWSURFTykKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNWaWRlb0Z1
bGxzY3JlZW4oV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5N
b2RlKTsKLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1l
bnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpOwotICAgIHZpcnR1YWwgdm9pZCBleGl0Vmlk
ZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmKTsK
KyAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1l
bnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgZmluYWw7CisgICAgdm9pZCBlbnRlclZpZGVv
RnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JiwgV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsK
KyAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRN
TFZpZGVvRWxlbWVudCYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoTk9USUZJQ0FUSU9O
UykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQotICAgIHZpcnR1YWwgV2ViQ29yZTo6
Tm90aWZpY2F0aW9uQ2xpZW50KiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdCB7IHJldHVy
biByZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudCo+KG1fbm90aWZp
Y2F0aW9uc0RlbGVnYXRlLmdldCgpKTsgfQorICAgIFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVu
dCogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQqPihtX25vdGlmaWNhdGlvbnNEZWxl
Z2F0ZS5nZXQoKSk7IH0KICNlbmRpZgogCi0gICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1Xcml0
aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7Ci0gICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGln
bm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKLSAgICB2aXJ0dWFsIGJvb2wgaGFz
T3BlbmVkUG9wdXAoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpQb3B1cE1l
bnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBv
cHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICBib29sIHNlbGVj
dEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgZmluYWw7CisgICAgYm9vbCBzZWxlY3RJ
dGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgZmluYWw7CisgICAgYm9v
bCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1
cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBm
aW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQ
b3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CiAKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbFNjcmVl
bkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJkKTsK
LSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVt
ZW50Kik7Ci0gICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3Jl
OjpFbGVtZW50Kik7CisgICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0
IFdlYkNvcmU6OkVsZW1lbnQmLCBib29sIHdpdGhLZXlib2FyZCkgZmluYWw7CisgICAgdm9pZCBl
bnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKKyAgICB2
b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CiAj
ZW5kaWYKIAotICAgIHZvaWQgd2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChib29sKSBvdmVycmlk
ZSB7IH0KKyAgICB2b2lkIHdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoYm9vbCkgZmluYWwgeyB9
CiAKICAgICBXZWJWaWV3KiB3ZWJWaWV3KCkgeyByZXR1cm4gbV93ZWJWaWV3OyB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgQVhTdGFydEZyYW1lTG9hZCgpOwotICAgIHZpcnR1YWwgdm9pZCBBWEZpbmlz
aEZyYW1lTG9hZCgpOworICAgIHZvaWQgQVhTdGFydEZyYW1lTG9hZCgpIGZpbmFsOworICAgIHZv
aWQgQVhGaW5pc2hGcmFtZUxvYWQoKSBmaW5hbDsKIAotICAgIGJvb2wgc2hvdWxkVXNlVGlsZWRC
YWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyopIGNvbnN0IG92ZXJy
aWRlOworICAgIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IFdl
YkNvcmU6OkZyYW1lVmlldyYpIGNvbnN0IGZpbmFsOwogCiBwcml2YXRlOgogICAgIENPTVB0cjxJ
V2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZTEx
NTUyOTEwNjQ3MDFiODhiN2IzMmFiY2QxZjJlNjU0MzNlMjg5ZS4uNDIxYzc0NTdjOTAzYjQ3ZTJl
MWE3YjQ4ODk4ODFmNTdjMzBlYWM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCkBAIC0xMTAsNyAr
MTEwLDcgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVl
c3RzU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQKICAgICBtX3Njcm9sbGluZ0Nvb3JkaW5h
dG9yUHJveHkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChub2RlSUQsIHNjcm9sbFBv
c2l0aW9uLCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKIH0KIAotUGFzc1JlZlB0cjxT
Y3JvbGxpbmdUcmVlTm9kZT4gUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3JlYXRlU2Nyb2xsaW5nVHJl
ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQp
CitSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9s
bGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQg
bm9kZUlEKQogewogICAgIHN3aXRjaCAobm9kZVR5cGUpIHsKICAgICBjYXNlIEZyYW1lU2Nyb2xs
aW5nTm9kZToKQEAgLTEyNCwxNCArMTI0LDE1IEBAIFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5v
ZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sCiAg
ICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjpjcmVh
dGUoKnRoaXMsIG5vZGVJRCk7CiAjZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGJyZWFrOwogI2VuZGlmCiAgICAgY2Fz
ZSBGaXhlZE5vZGU6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVh
dGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgY2FzZSBTdGlja3lOb2RlOgogICAgICAgICByZXR1cm4g
U2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICB9Ci0g
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJu
IFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKIH0KIAogdm9p
ZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0
aWNhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVt
b3RlU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9S
ZW1vdGVTY3JvbGxpbmdUcmVlLmgKaW5kZXggZDY1YjJmNWVkNmRkZjU3ZWM0NDBkZjQ5MGQyZTEx
NjhjOGVjMDVjOS4uNzMxOGNjYzgxNGNhNTcxNmRjNzBjMjRiNmM0NDE3OGQyNTZjZGE3MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxp
bmdUcmVlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVT
Y3JvbGxpbmdUcmVlLmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNs
YXNzIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7CiAKLWNsYXNzIFJlbW90ZVNjcm9s
bGluZ1RyZWUgOiBwdWJsaWMgV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZSB7CitjbGFzcyBSZW1vdGVT
Y3JvbGxpbmdUcmVlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNjcm9sbGluZ1RyZWUgewogcHVi
bGljOgogICAgIHN0YXRpYyBSZWY8UmVtb3RlU2Nyb2xsaW5nVHJlZT4gY3JlYXRlKFJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkmKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVTY3JvbGxpbmdU
cmVlKCk7CkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzY3JvbGxpbmdUcmVl
Tm9kZURpZEVuZFNjcm9sbCgpIG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICBQYXNzUmVmUHRyPFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShXZWJDb3Jl
OjpTY3JvbGxpbmdOb2RlVHlwZSwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsK
KyAgICBSZWY8V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVUeXBlLCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQp
IG92ZXJyaWRlOwogICAgIAogICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkmIG1f
c2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5j
cHAKaW5kZXggODA1OWFkNTVhYWUzMmY4ZTUzYTcwMTliNTI4N2VlOGIwOTQwYjkxNC4uYTc5ZDEw
YTlkNTA3NzEwNDVjZTU4MzBlYTU3Mzc0Yzg0MTg1NjI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlLmNwcApAQCAtMzY4LDIyICszNjgsMjIgQEAgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RS
ZWYgV0tCdW5kbGVQYWdlR2V0QmFja0ZvcndhcmRMaXN0KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmUK
IAogdm9pZCBXS0J1bmRsZVBhZ2VJbnN0YWxsUGFnZU92ZXJsYXkoV0tCdW5kbGVQYWdlUmVmIHBh
Z2VSZWYsIFdLQnVuZGxlUGFnZU92ZXJsYXlSZWYgcGFnZU92ZXJsYXlSZWYpCiB7Ci0gICAgdG9J
bXBsKHBhZ2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFs
bFBhZ2VPdmVybGF5KHRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNv
cmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICB0b0ltcGwocGFnZVJl
ZiktPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJs
YXkoKnRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VP
dmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VVbmlu
c3RhbGxQYWdlT3ZlcmxheShXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQYWdlT3Zl
cmxheVJlZiBwYWdlT3ZlcmxheVJlZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFt
ZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSh0b0ltcGwo
cGFnZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFk
ZU1vZGU6OkRvTm90RmFkZSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJhbWUoKS0+cGFn
ZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKnRvSW1wbChwYWdlT3Zl
cmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6
RG9Ob3RGYWRlKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VJbnN0YWxsUGFnZU92ZXJsYXlXaXRo
QW5pbWF0aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRsZVBhZ2VPdmVybGF5UmVm
IHBhZ2VPdmVybGF5UmVmKQogewotICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBh
Z2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSh0b0ltcGwocGFnZU92ZXJs
YXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZh
ZGUpOworICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSgqdG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92
ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKIH0KIAogdm9p
ZCBXS0J1bmRsZVBhZ2VVbmluc3RhbGxQYWdlT3ZlcmxheVdpdGhBbmltYXRpb24oV0tCdW5kbGVQ
YWdlUmVmIHBhZ2VSZWYsIFdLQnVuZGxlUGFnZU92ZXJsYXlSZWYgcGFnZU92ZXJsYXlSZWYpCiB7
Ci0gICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVy
KCkudW5pbnN0YWxsUGFnZU92ZXJsYXkodG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJs
YXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICB0b0ltcGwo
cGFnZVJlZiktPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQ
YWdlT3ZlcmxheSgqdG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29y
ZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VT
ZXRUb3BPdmVyaGFuZ0ltYWdlKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0ltYWdlUmVmIGlt
YWdlUmVmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9EZXByZWNhdGVkUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCmluZGV4IDg1MDlhZTY1MDI0ZDRlZTU5MmVk
MTI1YTEyMTIxNDBmMDdmY2UzMWUuLjQxZWIwMzk0NmZhOWE0YWFmZDBmOGYxNjA5YmMxM2YzNzU3
Zjk1Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYv
RGVwcmVjYXRlZFBERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KQEAgLTg2MCw3ICs4NjAsNyBAQCBKU1Zh
bHVlUmVmIFBERlBsdWdpbjo6anNQREZEb2NQcmludChKU0NvbnRleHRSZWYgY3R4LCBKU09iamVj
dFJlZiBmdW5jdGlvbiwgSlNPYgogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIEpTVmFs
dWVNYWtlVW5kZWZpbmVkKGN0eCk7CiAKLSAgICBwYWdlLT5jaHJvbWUoKS5wcmludChjb3JlRnJh
bWUpOworICAgIHBhZ2UtPmNocm9tZSgpLnByaW50KCpjb3JlRnJhbWUpOwogCiAgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGN0eCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggNTYyYTlhMmUxNTdjNDNjNWRlNzVj
M2Y3MjU2MzEyZGZlNGUxNTdiYy4uZDlhNDI4ODYxYmVjNTY0NTNhN2YwY2UxM2QzYmY5ODkxZjNk
OTkyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcApAQCAtMTEyOCw3ICsxMTI4LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojpmb2N1c1BsdWdp
bkVsZW1lbnQoKQogICAgIEFTU0VSVChmcmFtZSgpKTsKICAgICAKICAgICBpZiAoUGFnZSogcGFn
ZSA9IGZyYW1lKCktPnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0
Rm9jdXNlZEVsZW1lbnQobV9wbHVnaW5FbGVtZW50LmdldCgpLCBmcmFtZSgpKTsKKyAgICAgICAg
cGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQobV9wbHVnaW5FbGVtZW50
LmdldCgpLCAqZnJhbWUoKSk7CiAgICAgZWxzZQogICAgICAgICBmcmFtZSgpLT5kb2N1bWVudCgp
LT5zZXRGb2N1c2VkRWxlbWVudChtX3BsdWdpbkVsZW1lbnQuZ2V0KCkpOwogfQpAQCAtMTUwOCw3
ICsxNTA4LDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmlu
ZyYgc3RhdHVzYmFyVGV4dCkKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAg
IHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQoZnJhbWUoKSwgc3RhdHVzYmFyVGV4dCk7
CisgICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dCgqZnJhbWUoKSwgc3RhdHVzYmFy
VGV4dCk7CiB9CiAKIGJvb2wgUGx1Z2luVmlldzo6aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5h
YmxlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNDk4MzRjM2EzMGViZjkyMTVlOWY1
NGU5MWRjYjI0ZWExM2Y5NGNlZC4uYThkZmRmYzk1MzBlZTA2ZjMxYzhmNWIxNGZkNjcyZmZlMjRi
MjNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTAzLDcgKzEwMyw2IEBAIHN0YXRp
YyBkb3VibGUgYXJlYShXZWJGcmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRv
dWJsZT4oc2l6ZS5oZWlnaHQoKSkgKiBzaXplLndpZHRoKCk7CiB9CiAKLQogc3RhdGljIFdlYkZy
YW1lKiBmaW5kTGFyZ2VzdEZyYW1lSW5GcmFtZVNldChXZWJQYWdlJiBwYWdlKQogewogICAgIC8v
IEFwcHJveGltYXRlIHdoYXQgYSB1c2VyIGNvdWxkIGNvbnNpZGVyIGEgZGVmYXVsdCB0YXJnZXQg
ZnJhbWUgZm9yIGFwcGxpY2F0aW9uIG1lbnUgb3BlcmF0aW9ucy4KQEAgLTE3OSwyMCArMTc4LDIy
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmZvY3VzKCkKIH0KIAogI2lmIFBMQVRGT1JNKENP
Q09BKQotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRGb2N1cyhjb25zdCBXZWJDb3Jl
OjpOb2RlKiBub2RlKQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEZvY3VzKFdl
YkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9wYWdlLmVsZW1lbnREaWRGb2N1cyhj
b25zdF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihub2RlKSk7CisgICAgbV9wYWdlLmVsZW1lbnREaWRG
b2N1cygmZWxlbWVudCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkQmx1
cihjb25zdCBXZWJDb3JlOjpOb2RlKiBub2RlKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1l
bnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9wYWdlLmVsZW1l
bnREaWRCbHVyKGNvbnN0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KG5vZGUpKTsKKyAgICBtX3BhZ2Uu
ZWxlbWVudERpZEJsdXIoJmVsZW1lbnQpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6bWFr
ZUZpcnN0UmVzcG9uZGVyKCkKIHsKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpNYWtlRmlyc3RSZXNwb25kZXIoKSk7Ci19ICAgIAorfQorCiAjZW5kaWYgICAgCiAKIGJv
b2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5UYWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24pCkBAIC0yMjcs
MTYgKzIyOCwxNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChG
cmFtZSogZnJhbWUpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGb2N1c2VkRnJhbWVDaGFu
Z2VkKHdlYkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDApLCBtX3BhZ2UucGFnZUlEKCkp
OwogfQogCi1QYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJhbWUs
IGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiB3
aW5kb3dGZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbikK
K1BhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3Qg
RnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIHdpbmRvd0Zl
YXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQogewogI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJh
bWUtPmRvY3VtZW50KCktPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpKQotICAgICAg
ICBmcmFtZS0+ZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOworICAgIGlmIChm
cmFtZS5kb2N1bWVudCgpICYmIGZyYW1lLmRvY3VtZW50KCktPndlYmtpdEN1cnJlbnRGdWxsU2Ny
ZWVuRWxlbWVudCgpKQorICAgICAgICBmcmFtZS5kb2N1bWVudCgpLT53ZWJraXRDYW5jZWxGdWxs
U2NyZWVuKCk7CiAjZW5kaWYKIAogICAgIGF1dG8mIHdlYlByb2Nlc3MgPSBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKTsKIAotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29y
ZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21D
b3JlRnJhbWUoZnJhbWUpOwogCiAgICAgTmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFj
dGlvbkRhdGE7CiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEubmF2aWdhdGlvblR5cGUgPSBuYXZp
Z2F0aW9uQWN0aW9uLnR5cGUoKTsKQEAgLTI1MCw3ICsyNTEsNyBAQCBQYWdlKiBXZWJDaHJvbWVD
bGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3Qm
IHJlcXVlcwogCiAgICAgdWludDY0X3QgbmV3UGFnZUlEID0gMDsKICAgICBXZWJQYWdlQ3JlYXRp
b25QYXJhbWV0ZXJzIHBhcmFtZXRlcnM7Ci0gICAgaWYgKCF3ZWJQcm9jZXNzLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5l
d1BhZ2Uod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUo
ZnJhbWUpLCByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCB3aW5kb3dGZWF0dXJlcywgbmF2aWdh
dGlvbkFjdGlvbkRhdGEpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpS
ZXBseShuZXdQYWdlSUQsIHBhcmFtZXRlcnMpLCBtX3BhZ2UucGFnZUlEKCkpKQorICAgIGlmICgh
d2ViUHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlKHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5
T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCks
IHdpbmRvd0ZlYXR1cmVzLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkNyZWF0ZU5ld1BhZ2U6OlJlcGx5KG5ld1BhZ2VJRCwgcGFyYW1ldGVycyksIG1fcGFn
ZS5wYWdlSUQoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKCFuZXdQYWdl
SUQpCkBAIC0zNjEsOSArMzYyLDkgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbCgpCiAgICAgcmV0dXJuIG1fcGFnZS5jYW5SdW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwoKTsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKiBmcmFtZSkKK2Jv
b2wgV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBGcmFtZSYgZnJhbWUpCiB7Ci0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0g
V2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUg
PSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAKICAgICBib29sIHNob3VsZENsb3Nl
ID0gZmFsc2U7CiAKQEAgLTQwMiwxMiArNDAzLDEyIEBAIHN0YXRpYyBib29sIHNob3VsZFN1cHBy
ZXNzSmF2YVNjcmlwdERpYWxvZ3MoRnJhbWUmIGZyYW1lKQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUs
IGNvbnN0IFN0cmluZyYgYWxlcnRUZXh0KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFT
Y3JpcHRBbGVydChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgYWxlcnRUZXh0KQogewotICAg
IGlmIChzaG91bGRTdXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKCpmcmFtZSkpCisgICAgaWYgKHNo
b3VsZFN1cHByZXNzSmF2YVNjcmlwdERpYWxvZ3MoZnJhbWUpKQogICAgICAgICByZXR1cm47CiAK
LSAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUp
OworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1l
KTsKICAgICBBU1NFUlQod2ViRnJhbWUpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xp
ZW50LgpAQCAtNDE1LDE1ICs0MTYsMTUgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFT
Y3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgYWxlcnRUZXh0KQogCiAgICAg
SGFuZ0RldGVjdGlvbkRpc2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxlcjsKIAotICAgIFdlYlBy
b2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydCh3ZWJGcmFtZS0+ZnJhbWVJ
RCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIGFsZXJ0VGV4dCksIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6UmVwbHkoKSwgbV9wYWdl
LnBhZ2VJRCgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZv
cm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3Jp
Z2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIGFsZXJ0VGV4dCksIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6UmVwbHkoKSwgbV9wYWdlLnBhZ2VJRCgpLCBTZWNv
bmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nl
c3NXaWxsU3VzcGVuZCk7CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0
Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK2Jvb2wgV2ViQ2hy
b21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkKIHsKLSAgICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncygq
ZnJhbWUpKQorICAgIGlmIChzaG91bGRTdXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKGZyYW1lKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJh
bWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJG
cmFtZTo6ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogICAg
IC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVudC4KQEAgLTQzMiwxOCArNDMzLDE4IEBAIGJvb2wg
V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKICAgICBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIgaGFuZ0RldGVjdGlv
bkRpc2FibGVyOwogCiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBpZiAoIVdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtKHdlYkZyYW1lLT5mcmFtZUlE
KCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGZyYW1lKSwgbWVzc2FnZSksIE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpSZXBseShyZXN1bHQpLCBt
X3BhZ2UucGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246
OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtKHdlYkZyYW1lLT5mcmFtZUlEKCks
IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIG1lc3NhZ2UpLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6UmVwbHkocmVzdWx0KSwgbV9w
YWdlLnBhZ2VJRCgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJ
bmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZh
U2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBT
dHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCitib29sIFdlYkNocm9tZUNsaWVu
dDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQogewotICAgIGlm
IChzaG91bGRTdXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKCpmcmFtZSkpCisgICAgaWYgKHNob3Vs
ZFN1cHByZXNzSmF2YVNjcmlwdERpYWxvZ3MoZnJhbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJh
bWUpOworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZy
YW1lKTsKICAgICBBU1NFUlQod2ViRnJhbWUpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUg
Y2xpZW50LgpAQCAtNDUxLDcgKzQ1Miw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZh
U2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjCiAKICAg
ICBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIgaGFuZ0RldGVjdGlvbkRpc2FibGVyOwogCi0gICAgaWYg
KCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
U3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0KHdlYkZyYW1l
LT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGZyYW1lKSwgbWVzc2Fn
ZSwgZGVmYXVsdFZhbHVlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFBy
b21wdDo6UmVwbHkocmVzdWx0KSwgbV9wYWdlLnBhZ2VJRCgpLCBTZWNvbmRzOjppbmZpbml0eSgp
LCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCkp
CisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0
KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFt
ZSksIG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkph
dmFTY3JpcHRQcm9tcHQ6OlJlcGx5KHJlc3VsdCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6
aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2ls
bFN1c3BlbmQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gIXJlc3VsdC5p
c051bGwoKTsKQEAgLTU1Niw3ICs1NTcsNyBAQCBQbGF0Zm9ybVBhZ2VDbGllbnQgV2ViQ2hyb21l
Q2xpZW50OjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12
b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNv
bnN0IEludFNpemUmIHNpemUpIGNvbnN0Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNT
aXplQ2hhbmdlZChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CiB7CiAg
ICAgaWYgKCFtX3BhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5mcmFtZUZsYXR0ZW5pbmdFbmFi
bGVkKCkpIHsKICAgICAgICAgV2ViRnJhbWUqIGxhcmdlc3RGcmFtZSA9IGZpbmRMYXJnZXN0RnJh
bWVJbkZyYW1lU2V0KG1fcGFnZSk7CkBAIC01NjYsMTQgKzU2NywxNCBAQCB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNpemUm
IHNpemUpIGNvbgogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCZmcmFtZS0+cGFnZSgpLT5t
YWluRnJhbWUoKSAhPSBmcmFtZSkKKyAgICBpZiAoJmZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCkg
IT0gJmZyYW1lKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEaWRDaGFuZ2VDb250ZW50U2l6ZShzaXplKSk7CiAKICAgICBtX3BhZ2Uu
ZHJhd2luZ0FyZWEoKS0+bWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKHNpemUpOwogCi0gICAg
RnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBmcmFtZS0+dmlldygpOworICAgIEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gZnJhbWUudmlldygpOwogICAgIGlmIChmcmFtZVZpZXcgJiYgIWZyYW1lVmlldy0+
ZGVsZWdhdGVzU2Nyb2xsaW5nKCkpICB7CiAgICAgICAgIGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9s
bGJhciA9IGZyYW1lVmlldy0+aG9yaXpvbnRhbFNjcm9sbGJhcigpOwogICAgICAgICBib29sIGhh
c1ZlcnRpY2FsU2Nyb2xsYmFyID0gZnJhbWVWaWV3LT52ZXJ0aWNhbFNjcm9sbGJhcigpOwpAQCAt
NjExLDIxICs2MTIsMjEgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVuYXZhaWxhYmxl
UGx1Z2luTWVzc2FnZUJlQnV0dG9uKFJlbmRlckVtYmVkZGVkT2JqZWMKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAgICAgCi12b2lkIFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0
b25DbGlja2VkKEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5V
bmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVu
dCYgZWxlbWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVh
c29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdAogewogI2lmIEVOQUJMRShORVRT
Q0FQRV9QTFVHSU5fQVBJKQotICAgIEFTU0VSVChlbGVtZW50LT5oYXNUYWdOYW1lKG9iamVjdFRh
ZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFt
ZShhcHBsZXRUYWcpKTsKKyAgICBBU1NFUlQoZWxlbWVudC5oYXNUYWdOYW1lKG9iamVjdFRhZykg
fHwgZWxlbWVudC5oYXNUYWdOYW1lKGVtYmVkVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoYXBw
bGV0VGFnKSk7CiAgICAgQVNTRVJUKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uID09IFJlbmRl
ckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5NaXNzaW5nIHx8IHBsdWdpblVuYXZhaWxhYmlsaXR5UmVh
c29uID09IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpJbnNlY3VyZVBsdWdpblZlcnNpb24gfHwgcGx1
Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pOwogCi0gICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCog
cGx1Z2luRWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqPihlbGVt
ZW50KTsKKyAgICBhdXRvJiBwbHVnaW5FbGVtZW50ID0gZG93bmNhc3Q8SFRNTFBsdWdJbkltYWdl
RWxlbWVudD4oZWxlbWVudCk7CiAKLSAgICBTdHJpbmcgZnJhbWVVUkxTdHJpbmcgPSBwbHVnaW5F
bGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJl
c3BvbnNlVVJMKCkuc3RyaW5nKCk7CisgICAgU3RyaW5nIGZyYW1lVVJMU3RyaW5nID0gcGx1Z2lu
RWxlbWVudC5kb2N1bWVudCgpLmZyYW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJl
c3BvbnNlVVJMKCkuc3RyaW5nKCk7CiAgICAgU3RyaW5nIHBhZ2VVUkxTdHJpbmcgPSBtX3BhZ2Uu
bWFpbkZyYW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlVVJMKCkuc3Ry
aW5nKCk7Ci0gICAgU3RyaW5nIHBsdWdpblVSTFN0cmluZyA9IHBsdWdpbkVsZW1lbnQtPmRvY3Vt
ZW50KCkuY29tcGxldGVVUkwocGx1Z2luRWxlbWVudC0+dXJsKCkpLnN0cmluZygpOwotICAgIFVS
TCBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTCA9IGVsZW1lbnQtPmRvY3VtZW50KCkuY29tcGxldGVV
Ukwoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHBsdWdpbkVsZW1lbnQtPmdldEF0
dHJpYnV0ZShwbHVnaW5zcGFnZUF0dHIpKSk7CisgICAgU3RyaW5nIHBsdWdpblVSTFN0cmluZyA9
IHBsdWdpbkVsZW1lbnQuZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChwbHVnaW5FbGVtZW50LnVybCgp
KS5zdHJpbmcoKTsKKyAgICBVUkwgcGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkwgPSBwbHVnaW5FbGVt
ZW50LmRvY3VtZW50KCkuY29tcGxldGVVUkwoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3Bh
Y2VzKHBsdWdpbkVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihwbHVnaW5z
cGFnZUF0dHIpKSk7CiAgICAgaWYgKCFwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTC5wcm90b2NvbElz
SW5IVFRQRmFtaWx5KCkpCiAgICAgICAgIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMID0gVVJMKCk7
Ci0gICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6VW5hdmFpbGFibGVQbHVn
aW5CdXR0b25DbGlja2VkKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBwbHVnaW5FbGVtZW50
LT5zZXJ2aWNlVHlwZSgpLCBwbHVnaW5VUkxTdHJpbmcsIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJM
LnN0cmluZygpLCBmcmFtZVVSTFN0cmluZywgcGFnZVVSTFN0cmluZykpOworICAgIG1fcGFnZS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tl
ZChwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgcGx1Z2luRWxlbWVudC5zZXJ2aWNlVHlwZSgp
LCBwbHVnaW5VUkxTdHJpbmcsIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMLnN0cmluZygpLCBmcmFt
ZVVSTFN0cmluZywgcGFnZVVSTFN0cmluZykpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZWxl
bWVudCk7CiAgICAgVU5VU0VEX1BBUkFNKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKTsKQEAg
LTY2MCw5ICs2NjEsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VG9vbFRpcChjb25zdCBT
dHJpbmcmIHRvb2xUaXAsIFRleHREaXJlY3Rpb24pCiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6U2V0VG9vbFRpcChtX2NhY2hlZFRvb2xUaXApKTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpwcmludChGcmFtZSYgZnJhbWUpCiB7Ci0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJh
bWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJG
cmFtZTo6ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogI2lm
IFBMQVRGT1JNKEdUSykgJiYgSEFWRShHVEtfVU5JWF9QUklOVElORykKQEAgLTY4OCwxMiArNjg5
LDEyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSogZnJhbWUpCiAgICAgbV9w
YWdlLnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlByaW50RnJhbWUod2ViRnJhbWUt
PmZyYW1lSUQoKSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlByaW50RnJhbWU6OlJlcGx5KCks
IFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3Jt
UHJvY2Vzc1dpbGxTdXNwZW5kKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVk
RGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBE
YXRhYmFzZURldGFpbHMgZGV0YWlscykKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERh
dGFiYXNlUXVvdGEoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0
YWJhc2VEZXRhaWxzIGRldGFpbHMpCiB7Ci0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJh
bWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJG
cmFtZTo6ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKICAgICAK
LSAgICBhdXRvJiBvcmlnaW4gPSBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsK
KyAgICBhdXRvJiBvcmlnaW4gPSBmcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpOwog
ICAgIGF1dG8gb3JpZ2luRGF0YSA9IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3Jp
Z2luKG9yaWdpbik7CiAgICAgYXV0byYgdHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6c2luZ2xl
dG9uKCk7CiAgICAgYXV0byBjdXJyZW50UXVvdGEgPSB0cmFja2VyLnF1b3RhKG9yaWdpbkRhdGEp
OwpAQCAtNzE2LDkgKzcxNyw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkTWF4QXBw
Q2FjaGVTaXplKGludDY0X3QpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlP
cmlnaW4qIG9yaWdpbiwgaW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkKQordm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4m
IG9yaWdpbiwgaW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkKQogewotICAgIFJlZlB0cjxBUEk6OlNl
Y3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0
ZUZyb21TdHJpbmcob3JpZ2luLT50b1N0cmluZygpKTsKKyAgICBSZWZQdHI8QVBJOjpTZWN1cml0
eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9t
U3RyaW5nKG9yaWdpbi50b1N0cmluZygpKTsKICAgICBpZiAobV9wYWdlLmluamVjdGVkQnVuZGxl
VUlDbGllbnQoKS5kaWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgmbV9wYWdlLCBz
ZWN1cml0eU9yaWdpbi5nZXQoKSwgdG90YWxCeXRlc05lZWRlZCkpCiAgICAgICAgIHJldHVybjsK
IApAQCAtNzI5LDE3ICs3MzAsMTkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwKIAogICAgIHVp
bnQ2NF90IG5ld1F1b3RhID0gMDsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYygKLSAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbigqb3JpZ2luKS5kYXRhYmFzZUlkZW50aWZp
ZXIoKSwgY3VycmVudFF1b3RhLCB0b3RhbEJ5dGVzTmVlZGVkKSwKKyAgICAgICAgTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihvcmlnaW4pLmRhdGFiYXNl
SWRlbnRpZmllcigpLCBjdXJyZW50UXVvdGEsIHRvdGFsQnl0ZXNOZWVkZWQpLAogICAgICAgICBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
OjpSZXBseShuZXdRdW90YSksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwg
SVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpOwog
Ci0gICAgY2FjaGVTdG9yYWdlLnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2luKG9yaWdpbiwgbmV3
UXVvdGEpOworICAgIGNhY2hlU3RvcmFnZS5zdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbigmb3Jp
Z2luLCBuZXdRdW90YSk7CiB9CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCisKIHZv
aWQgV2ViQ2hyb21lQ2xpZW50Ojphbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KKwogI2VuZGlmCiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91
bGRSZXBsYWNlV2l0aEdlbmVyYXRlZEZpbGVGb3JVcGxvYWQoY29uc3QgU3RyaW5nJiBwYXRoLCBT
dHJpbmcmIGdlbmVyYXRlZEZpbGVuYW1lKQpAQCAtNzU0LDEwICs3NTcsMTIgQEAgU3RyaW5nIFdl
YkNocm9tZUNsaWVudDo6Z2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoY29uc3QgU3RyaW5nJiBwYXRo
KQogfQogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi1zdGQ6OnVuaXF1ZV9wdHI8Q29s
b3JDaG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29z
ZXJDbGllbnQqIGNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKKworc3RkOjp1bmlx
dWVfcHRyPENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIo
Q29sb3JDaG9vc2VyQ2xpZW50JiBjbGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCiB7
Ci0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2ViQ29sb3JDaG9vc2VyPigmbV9wYWdlLCBj
bGllbnQsIGluaXRpYWxDb2xvcik7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2ViQ29s
b3JDaG9vc2VyPigmbV9wYWdlLCAmY2xpZW50LCBpbml0aWFsQ29sb3IpOwogfQorCiAjZW5kaWYK
IAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSYgZnJhbWUsIEZpbGVD
aG9vc2VyJiBmaWxlQ2hvb3NlcikKQEAgLTgzMiwxNCArODM3LDE0IEBAIGJvb2wgV2ViQ2hyb21l
Q2xpZW50OjpoYXNPcGVuZWRQb3B1cCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1S
ZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVu
dShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxXZWJDb3Jl
OjpQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAogewotICAgIHJldHVybiBXZWJQb3B1cE1lbnU6
OmNyZWF0ZSgmbV9wYWdlLCBjbGllbnQpOworICAgIHJldHVybiBXZWJQb3B1cE1lbnU6OmNyZWF0
ZSgmbV9wYWdlLCAmY2xpZW50KTsKIH0KIAotUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVu
dT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBN
ZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51
PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1l
bnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKLSAgICByZXR1cm4gV2ViU2VhcmNoUG9wdXBNZW51
OjpjcmVhdGUoJm1fcGFnZSwgY2xpZW50KTsKKyAgICByZXR1cm4gV2ViU2VhcmNoUG9wdXBNZW51
OjpjcmVhdGUoJm1fcGFnZSwgJmNsaWVudCk7CiB9CiAKIEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBX
ZWJDaHJvbWVDbGllbnQ6OmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3QKQEAgLTg1OCw3ICs4
NjMsNyBAQCBSZWZQdHI8V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yPiBXZWJDaHJvbWVD
bGllbnQ6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaQogCiAjZW5kaWYKIAotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciog
bGF5ZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJh
bWUmLCBHcmFwaGljc0xheWVyKiBsYXllcikKIHsKICAgICBpZiAobGF5ZXIpCiAgICAgICAgIG1f
cGFnZS5lbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyKTsKQEAgLTg2NiwxMCAr
ODcxLDEwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihG
cmFtZSosIEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogICAgICAgICBtX3BhZ2UuZXhpdEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hW
aWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFw
aGljc0xheWVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhp
Y3NMYXllcihGcmFtZSYgZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAg
ICAgaWYgKGF1dG8gZHJhd2luZ0FyZWEgPSBtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKLSAgICAgICAg
ZHJhd2luZ0FyZWEtPmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihmcmFtZSwgZ3JhcGhp
Y3NMYXllcik7CisgICAgICAgIGRyYXdpbmdBcmVhLT5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNz
TGF5ZXIoJmZyYW1lLCBncmFwaGljc0xheWVyKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKQpAQCAtODk4LDkgKzkwMyw5
IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpsYXllclRyZWVTdGF0ZUlzRnJvemVuKCkgY29uc3QK
IAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nQ29v
cmRpbmF0b3I+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFn
ZSogcGFnZSkgY29uc3QKK1JlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gV2ViQ2hyb21lQ2xp
ZW50OjpjcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlJiBwYWdlKSBjb25zdAogewotICAg
IEFTU0VSVChtX3BhZ2UuY29yZVBhZ2UoKSA9PSBwYWdlKTsKKyAgICBBU1NFUlRfVU5VU0VEKHBh
Z2UsIG1fcGFnZS5jb3JlUGFnZSgpID09ICZwYWdlKTsKICAgICBpZiAobV9wYWdlLmRyYXdpbmdB
cmVhKCktPnR5cGUoKSAhPSBEcmF3aW5nQXJlYVR5cGVSZW1vdGVMYXllclRyZWUpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogICAgIHJldHVybiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6
Y3JlYXRlKCZtX3BhZ2UpOwpAQCAtOTQ5LDE5ICs5NTQsMTkgQEAgdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6OkhU
TUxWaWQKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIAotYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCos
IGJvb2wgd2l0aEtleWJvYXJkKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNj
cmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCYsIGJvb2wgd2l0aEtleWJvYXJk
KQogewogICAgIHJldHVybiBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+c3VwcG9ydHNGdWxs
U2NyZWVuKHdpdGhLZXlib2FyZCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1
bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JiBl
bGVtZW50KQogewotICAgIG1fcGFnZS5mdWxsU2NyZWVuTWFuYWdlcigpLT5lbnRlckZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KGVsZW1lbnQpOworICAgIG1fcGFnZS5mdWxsU2NyZWVuTWFuYWdlcigpLT5l
bnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KCZlbGVtZW50KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50
KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3Jl
OjpFbGVtZW50JiBlbGVtZW50KQogewotICAgIG1fcGFnZS5mdWxsU2NyZWVuTWFuYWdlcigpLT5l
eGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7CisgICAgbV9wYWdlLmZ1bGxTY3JlZW5N
YW5hZ2VyKCktPmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCgmZWxlbWVudCk7CiB9CiAKICNlbmRp
ZgpAQCAtMTA0OSwyOSArMTA1NCwyOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlzYWJsZVN1
ZGRlblRlcm1pbmF0aW9uKCkKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1By
b3h5OjpEaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpkaWRBZGRIZWFkZXJMYXllcihHcmFwaGljc0xheWVyKiBoZWFkZXJQYXJlbnQpCit2b2lk
IFdlYkNocm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXllciYgaGVhZGVy
UGFyZW50KQogewogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBpZiAoUGFnZUJhbm5l
ciogYmFubmVyID0gbV9wYWdlLmhlYWRlclBhZ2VCYW5uZXIoKSkKLSAgICAgICAgYmFubmVyLT5k
aWRBZGRQYXJlbnRMYXllcihoZWFkZXJQYXJlbnQpOworICAgICAgICBiYW5uZXItPmRpZEFkZFBh
cmVudExheWVyKCZoZWFkZXJQYXJlbnQpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oaGVhZGVy
UGFyZW50KTsKICNlbmRpZgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkQWRkRm9vdGVy
TGF5ZXIoR3JhcGhpY3NMYXllciogZm9vdGVyUGFyZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmRpZEFkZEZvb3RlckxheWVyKEdyYXBoaWNzTGF5ZXImIGZvb3RlclBhcmVudCkKIHsKICNpZiBF
TkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgaWYgKFBhZ2VCYW5uZXIqIGJhbm5lciA9IG1fcGFn
ZS5mb290ZXJQYWdlQmFubmVyKCkpCi0gICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50TGF5ZXIo
Zm9vdGVyUGFyZW50KTsKKyAgICAgICAgYmFubmVyLT5kaWRBZGRQYXJlbnRMYXllcigmZm9vdGVy
UGFyZW50KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGZvb3RlclBhcmVudCk7CiAjZW5kaWYK
IH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1l
Vmlldyhjb25zdCBGcmFtZVZpZXcqIGZyYW1lVmlldykgY29uc3QKK2Jvb2wgV2ViQ2hyb21lQ2xp
ZW50OjpzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3JiBm
cmFtZVZpZXcpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5zaG91
bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKKyAgICByZXR1cm4gbV9w
YWdlLmRyYXdpbmdBcmVhKCktPnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldygmZnJh
bWVWaWV3KTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmlzUGxheWluZ01lZGlhRGlkQ2hh
bmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSwgdWludDY0
X3Qgc291cmNlRWxlbWVudElEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNWM5ZDc3M2E3MmMw
NjA4YzAyMDY4YWMxZDlkZGY0NWQ0YTBiZDljNS4uMGEwODAwNGZmZWZlZWNiYjQxMzQ0MDM2ZjAy
ZmRhOTQxNzRkYWNlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC02Miw3ICs2Miw3IEBAIHBy
aXZhdGU6CiAgICAgLy8gRnJhbWUgd2FudHMgdG8gY3JlYXRlIHRoZSBuZXcgUGFnZS4gIEFsc28s
IHRoZSBuZXdseSBjcmVhdGVkIHdpbmRvdwogICAgIC8vIHNob3VsZCBub3QgYmUgc2hvd24gdG8g
dGhlIHVzZXIgdW50aWwgdGhlIENocm9tZUNsaWVudCBvZiB0aGUgbmV3bHkKICAgICAvLyBjcmVh
dGVkIFBhZ2UgaGFzIGl0cyBzaG93IG1ldGhvZCBjYWxsZWQuCi0gICAgV2ViQ29yZTo6UGFnZSog
Y3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVx
dWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2
aWdhdGlvbkFjdGlvbiYpIGZpbmFsOworICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhX
ZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBX
ZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24m
KSBmaW5hbDsKICAgICB2b2lkIHNob3coKSBmaW5hbDsKICAgICAKICAgICBib29sIGNhblJ1bk1v
ZGFsKCkgZmluYWw7CkBAIC04NywxMyArODcsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZE1l
c3NhZ2VUb0NvbnNvbGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5O
dW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpIGZpbmFsOwogICAgIAogICAgIGJvb2wgY2Fu
UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgZmluYWw7Ci0gICAgYm9vbCBydW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSop
IGZpbmFsOworICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKICAgICAKICAgICB2b2lkIGNsb3Nl
V2luZG93U29vbigpIGZpbmFsOwogICAgIAotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdl
YkNvcmU6OkZyYW1lKiwgY29uc3QgU3RyaW5nJikgZmluYWw7Ci0gICAgYm9vbCBydW5KYXZhU2Ny
aXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFN0cmluZyYpIGZpbmFsOwotICAgIGJv
b2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KSBmaW5hbDsK
KyAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmlu
ZyYpIGZpbmFsOworICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUm
LCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2Vi
Q29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVs
dFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgZmluYWw7CiAgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0
KGNvbnN0IFN0cmluZyYpIGZpbmFsOwogCiAgICAgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5
Ym9hcmRVSU1vZGUoKSBmaW5hbDsKQEAgLTExNywyMyArMTE3LDIzIEBAIHByaXZhdGU6CiAjZW5k
aWYKIAogICAgIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCBm
aW5hbDsKLSAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqLCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3QgZmluYWw7CisgICAgdm9pZCBjb250ZW50c1NpemVD
aGFuZ2VkKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0IGZp
bmFsOwogICAgIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KSBjb25zdCBmaW5hbDsgLy8gQ3VycmVudGx5IG9ubHkgTWFjIGhhcyBhIG5vbiBlbXB0eSBpbXBs
ZW1lbnRhdGlvbi4KIAogICAgIGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVC
dXR0b24oV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xp
Y2tlZChXZWJDb3JlOjpFbGVtZW50KiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBs
dWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHVuYXZhaWxh
YmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVtZW50JiwgV2ViQ29yZTo6UmVuZGVy
RW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsK
IAogICAgIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBmaW5hbDsKICAgICB2
b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQm
LCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0VG9vbFRpcChj
b25zdCBTdHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKSBmaW5hbDsKICAgICAKLSAgICB2
b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKikgZmluYWw7CisgICAgdm9pZCBwcmludChXZWJDb3Jl
OjpGcmFtZSYpIGZpbmFsOwogCi0gICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29y
ZTo6RnJhbWUqLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VE
ZXRhaWxzKSBmaW5hbDsKKyAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpG
cmFtZSYsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBXZWJDb3JlOjpEYXRhYmFzZURldGFp
bHMpIGZpbmFsOwogCiAgICAgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3Bh
Y2VOZWVkZWQpIGZpbmFsOwotICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5R
dW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGludDY0X3Qgc3BhY2VOZWVkZWQpIGZpbmFs
OworICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYsIGludDY0X3Qgc3BhY2VOZWVkZWQpIGZpbmFsOwogCiAjaWYgRU5BQkxF
KERBU0hCT0FSRF9TVVBQT1JUKQogICAgIHZvaWQgYW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKSBm
aW5hbDsKQEAgLTE0Myw3ICsxNDMsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBnZW5lcmF0ZVJl
cGxhY2VtZW50RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpIGZpbmFsOwogICAgIAogI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb2xvckNo
b29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQqLCBj
b25zdCBXZWJDb3JlOjpDb2xvciYpIGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXJD
bGllbnQmLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFC
TEUoSU9TX1RPVUNIX0VWRU5UUykKQEAgLTE1MiwxMCArMTUyLDEwIEBAIHByaXZhdGU6CiAKICNp
ZiBQTEFURk9STShJT1MpCiAgICAgdm9pZCBkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShib29sKSBm
aW5hbDsKLSAgICB2b2lkIHNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpGcmFt
ZSosIGJvb2wpIGZpbmFsOwotICAgIHZvaWQgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKFdlYkNvcmU6
OkZyYW1lKikgZmluYWw7Ci0gICAgdm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoV2Vi
Q29yZTo6RnJhbWUqKSBmaW5hbDsKLSAgICB2b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlT
Y3JvbGxpbmdGcmFtZShXZWJDb3JlOjpGcmFtZSopIGZpbmFsOworICAgIHZvaWQgc2V0TmVlZHNT
Y3JvbGxOb3RpZmljYXRpb25zKFdlYkNvcmU6OkZyYW1lJiwgYm9vbCkgZmluYWw7CisgICAgdm9p
ZCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKKyAgICB2b2lk
IGNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOworICAg
IHZvaWQgbm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKFdlYkNvcmU6OkZy
YW1lJikgZmluYWw7CiAgICAgYm9vbCBpc1N0b3BwaW5nKCkgZmluYWw7CiAKICAgICB2b2lkIGRp
ZExheW91dChMYXlvdXRUeXBlID0gTm9ybWFsTGF5b3V0KSBmaW5hbDsKQEAgLTIwMywxMiArMjAz
LDEyIEBAIHByaXZhdGU6CiAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0
dXJhbCgpIGZpbmFsOwogICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3Jp
dGluZ0RpcmVjdGlvbigpIGZpbmFsOwogICAgIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBm
aW5hbDsKLSAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2Vi
Q29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVu
dUNsaWVudCopIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNy
ZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBmaW5hbDsKKyAg
ICBSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUo
V2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CiAKICAgICBXZWJDb3JlOjpH
cmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBjb25zdCBmaW5hbDsK
LSAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwotICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFw
aGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFs
OworICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7CisgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdy
YXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmlu
YWw7CiAgICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgZmlu
YWw7CiAgICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIGZpbmFsOwogICAg
IGJvb2wgYWRqdXN0TGF5ZXJGbHVzaFRocm90dGxpbmcoV2ViQ29yZTo6TGF5ZXJGbHVzaFRocm90
dGxlU3RhdGU6OkZsYWdzKSBmaW5hbDsKQEAgLTIzMywxMSArMjMzLDExIEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBsYXllclRyZWVTdGF0ZUlzRnJvemVuKCkgY29uc3QgZmluYWw7CiAKICNpZiBFTkFC
TEUoQVNZTkNfU0NST0xMSU5HKQotICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Nyb2xsaW5nQ29v
cmRpbmF0b3I+IGNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFdlYkNvcmU6OlBhZ2UqKSBjb25z
dCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFdlYkNvcmU6OlBhZ2UmKSBjb25zdCBmaW5hbDsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHZvaWQgZWxlbWVudERpZFJlZm9jdXMoY29uc3Qg
V2ViQ29yZTo6Tm9kZSopIGZpbmFsOworICAgIHZvaWQgZWxlbWVudERpZFJlZm9jdXMoY29uc3Qg
V2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiAoUExBVEZPUk0oSU9TKSAm
JiBIQVZFKEFWS0lUKSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKSkKQEAgLTI1MywxNCArMjUzLDE0IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVs
ZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJkKSBmaW5hbDsK
LSAgICB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopIGZp
bmFsOwotICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQq
KSBmaW5hbDsKKyAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2Vi
Q29yZTo6RWxlbWVudCYsIGJvb2wgd2l0aEtleWJvYXJkKSBmaW5hbDsKKyAgICB2b2lkIGVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOworICAgIHZvaWQg
ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3Qg
V2ViQ29yZTo6Tm9kZSopIGZpbmFsOwotICAgIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgV2Vi
Q29yZTo6Tm9kZSopIGZpbmFsOworICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKFdlYkNvcmU6OkVs
ZW1lbnQmKSBmaW5hbDsKKyAgICB2b2lkIGVsZW1lbnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQm
KSBmaW5hbDsKIAogICAgIHZvaWQgbWFrZUZpcnN0UmVzcG9uZGVyKCkgZmluYWw7CiAjZW5kaWYK
QEAgLTI5MSwxMCArMjkxLDEwIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIHBsdWdJbkV4dHJhU3R5
bGVTaGVldCgpIGNvbnN0IGZpbmFsOwogICAgIFN0cmluZyBwbHVnSW5FeHRyYVNjcmlwdCgpIGNv
bnN0IGZpbmFsOwogCi0gICAgdm9pZCBkaWRBZGRIZWFkZXJMYXllcihXZWJDb3JlOjpHcmFwaGlj
c0xheWVyKikgZmluYWw7Ci0gICAgdm9pZCBkaWRBZGRGb290ZXJMYXllcihXZWJDb3JlOjpHcmFw
aGljc0xheWVyKikgZmluYWw7CisgICAgdm9pZCBkaWRBZGRIZWFkZXJMYXllcihXZWJDb3JlOjpH
cmFwaGljc0xheWVyJikgZmluYWw7CisgICAgdm9pZCBkaWRBZGRGb290ZXJMYXllcihXZWJDb3Jl
OjpHcmFwaGljc0xheWVyJikgZmluYWw7CiAKLSAgICBib29sIHNob3VsZFVzZVRpbGVkQmFja2lu
Z0ZvckZyYW1lVmlldyhjb25zdCBXZWJDb3JlOjpGcmFtZVZpZXcqKSBjb25zdCBmaW5hbDsKKyAg
ICBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBXZWJDb3JlOjpG
cmFtZVZpZXcmKSBjb25zdCBmaW5hbDsKIAogICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFu
Z2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCB1aW50NjRfdCkgZmlu
YWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMzJhZjU5ZjNmYmQ0
NzQwOWY0Mjg4NjM2OWZhMDhiZWRhY2I1ZDQ2OC4uNDMzOThmYzkzYzIzZDFiMTM4ZTdhNDVkMmEx
OWVhOGQzM2QzYWQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTY0
MCwxMyArNjQwLDEzIEBAIEZyYW1lKiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hDcmVh
dGVQYWdlKGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpCiB7CiAgICAgV2ViUGFnZSog
d2ViUGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXdlYlBhZ2UpCi0gICAgICAgIHJl
dHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIEp1c3QgY2FsbCB0aHJv
dWdoIHRvIHRoZSBjaHJvbWUgY2xpZW50LgogICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdCht
X2ZyYW1lLT5jb3JlRnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgbmF2aWdh
dGlvbkFjdGlvbi5yZXNvdXJjZVJlcXVlc3QoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0Zv
cndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxp
ZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIG5hdmlnYXRpb25BY3Rpb24u
c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpKTsKLSAgICBQYWdlKiBuZXdQYWdlID0gd2Vi
UGFnZS0+Y29yZVBhZ2UoKS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KG1fZnJhbWUtPmNvcmVGcmFt
ZSgpLCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBuYXZpZ2F0aW9uQWN0aW9uKTsKKyAgICBQ
YWdlKiBuZXdQYWdlID0gd2ViUGFnZS0+Y29yZVBhZ2UoKS0+Y2hyb21lKCkuY3JlYXRlV2luZG93
KCptX2ZyYW1lLT5jb3JlRnJhbWUoKSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgbmF2aWdh
dGlvbkFjdGlvbik7CiAgICAgaWYgKCFuZXdQYWdlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAgICAgCiAgICAgcmV0dXJuICZuZXdQYWdlLT5tYWluRnJhbWUo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAppbmRleCA5Njg5MjlmZGEzNDc5YWFk
MmJlNGExMGEwYjQ1OTZhZTE3NTU2ZDUwLi40MWIzNGYwMGE4YzZmZDIwM2M1ODM0MjAzZTgyODBh
NWM0NDU2Zjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC03Myw3ICs3Myw3
IEBAIFdlYkluc3BlY3RvckNsaWVudDo6fldlYkluc3BlY3RvckNsaWVudCgpCiAgICAgfQogCiAg
ICAgaWYgKG1fcGFpbnRSZWN0T3ZlcmxheSAmJiBtX3BhZ2UtPm1haW5GcmFtZSgpKQotICAgICAg
ICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQ
YWdlT3ZlcmxheShtX3BhaW50UmVjdE92ZXJsYXkuZ2V0KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9k
ZTo6RmFkZSk7CisgICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX3BhaW50UmVjdE92ZXJsYXksIFBhZ2VPdmVy
bGF5OjpGYWRlTW9kZTo6RmFkZSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjppbnNw
ZWN0ZWRQYWdlRGVzdHJveWVkKCkKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFdlYkluc3BlY3Rv
ckNsaWVudDo6aGlkZUhpZ2hsaWdodCgpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBpZiAo
bV9oaWdobGlnaHRPdmVybGF5ICYmIG1fcGFnZS0+bWFpbkZyYW1lKCkpCi0gICAgICAgIG1fcGFn
ZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVy
bGF5KG1faGlnaGxpZ2h0T3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAg
ICAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0
YWxsUGFnZU92ZXJsYXkoKm1faGlnaGxpZ2h0T3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2Rl
OjpGYWRlKTsKICNlbHNlCiAgICAgbV9wYWdlLT5oaWRlSW5zcGVjdG9ySGlnaGxpZ2h0KCk7CiAj
ZW5kaWYKQEAgLTEzNiw3ICsxMzYsNyBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6c2hvd1Bh
aW50UmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFtX3BhaW50UmVjdE92
ZXJsYXkpIHsKICAgICAgICAgbV9wYWludFJlY3RPdmVybGF5ID0gUGFnZU92ZXJsYXk6OmNyZWF0
ZSgqdGhpcywgUGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlOjpEb2N1bWVudCk7Ci0gICAgICAgIG1f
cGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3Zl
cmxheShtX3BhaW50UmVjdE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRl
KTsKKyAgICAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCku
aW5zdGFsbFBhZ2VPdmVybGF5KCptX3BhaW50UmVjdE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRl
TW9kZTo6RG9Ob3RGYWRlKTsKICAgICB9CiAKICAgICBpZiAoIW1fcGFpbnRJbmRpY2F0b3JMYXll
ckNsaWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9G
aW5kQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmlu
ZENvbnRyb2xsZXIuY3BwCmluZGV4IDFlMGNlZjQ2NTFiOTNiZjgwZmI3MDU2NjVjNmY2MTVmZWFi
YzJhODkuLjMzMDMyYzE3MmIxYjI0MzhkYWZkNjBjMzQ2NDY2ZWE0NTA1ZTRhN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNw
cApAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OnVwZGF0ZUZpbmRVSUFm
dGVyUGFnZVNjcm9sbChib29sIGZvdW5kLCBjb25zdCBTdHJpbmcmIHN0cmluCiAKICAgICBpZiAo
IXNob3VsZFNob3dPdmVybGF5KSB7CiAgICAgICAgIGlmIChtX2ZpbmRQYWdlT3ZlcmxheSkKLSAg
ICAgICAgICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigp
LnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fZmluZFBhZ2VPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFk
ZU1vZGU6OkZhZGUpOworICAgICAgICAgICAgbV93ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92
ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fZmluZFBhZ2VPdmVybGF5
LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlm
ICghbV9maW5kUGFnZU92ZXJsYXkpIHsKICAgICAgICAgICAgIGF1dG8gZmluZFBhZ2VPdmVybGF5
ID0gUGFnZU92ZXJsYXk6OmNyZWF0ZSgqdGhpcywgUGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlOjpE
b2N1bWVudCk7CkBAIC0zMTIsNyArMzEyLDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6aGlkZUZp
bmRVSSgpCiB7CiAgICAgbV9maW5kTWF0Y2hlcy5jbGVhcigpOwogICAgIGlmIChtX2ZpbmRQYWdl
T3ZlcmxheSkKLSAgICAgICAgbV93ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250
cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkobV9maW5kUGFnZU92ZXJsYXksIFBhZ2VPdmVy
bGF5OjpGYWRlTW9kZTo6RmFkZSk7CisgICAgICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBh
Z2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX2ZpbmRQYWdlT3Zl
cmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKIAogICAgIFBsdWdpblZpZXcqIHBs
dWdpblZpZXcgPSBwbHVnaW5WaWV3Rm9yRnJhbWUobV93ZWJQYWdlLT5tYWluRnJhbWUoKSk7CiAg
ICAgCkBAIC0zMjUsNiArMzI1LDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6aGlkZUZpbmRVSSgp
CiB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQorCiBib29sIEZpbmRDb250cm9sbGVyOjp1cGRhdGVG
aW5kSW5kaWNhdG9yKEZyYW1lJiBzZWxlY3RlZEZyYW1lLCBib29sIGlzU2hvd2luZ092ZXJsYXks
IGJvb2wgc2hvdWxkQW5pbWF0ZSkKIHsKICAgICBSZWZQdHI8VGV4dEluZGljYXRvcj4gaW5kaWNh
dG9yID0gVGV4dEluZGljYXRvcjo6Y3JlYXRlV2l0aFNlbGVjdGlvbkluRnJhbWUoc2VsZWN0ZWRG
cmFtZSwgVGV4dEluZGljYXRvck9wdGlvbkluY2x1ZGVNYXJnaW5JZlJhbmdlTWF0Y2hlc1NlbGVj
dGlvbiwgc2hvdWxkQW5pbWF0ZSA/IFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9u
OjpCb3VuY2UgOiBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Tm9uZSk7CkBA
IC0zNjYsNiArMzY3LDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6ZGlkRmFpbFRvRmluZFN0cmlu
ZygpCiB2b2lkIEZpbmRDb250cm9sbGVyOjpkaWRIaWRlRmluZEluZGljYXRvcigpCiB7CiB9CisK
ICNlbmRpZgogCiB2b2lkIEZpbmRDb250cm9sbGVyOjpzaG93RmluZEluZGljYXRvckluU2VsZWN0
aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3Bw
CmluZGV4IDM2MjlkNGFlNThjN2Q0Njg2MmUxNWE3NWY5ODRiZGNkNWVlYjhmNDYuLjk5OWZlMjVj
MTAwYTMxMzc2YjBkZjc1YTQzMDdjMzFjYTdmZTRlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIHN0YXRp
YyB1aW50NjRfdCBnZW5lcmF0ZUxpc3RlbmVySUQoKQogICAgIHJldHVybiB1bmlxdWVMaXN0ZW5l
cklEKys7CiB9CiAKLVBhc3NSZWZQdHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGVXaXRoQ29y
ZU1haW5GcmFtZShXZWJQYWdlKiBwYWdlLCBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lKQorUmVm
PFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSogcGFn
ZSwgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSkKIHsKICAgICBhdXRvIGZyYW1lID0gY3JlYXRl
KHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4oc3RhdGljX2Nhc3Q8V2ViRnJh
bWVMb2FkZXJDbGllbnQqPigmY29yZUZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKSkpKTsKICAgICBw
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENyZWF0ZU1haW5GcmFtZShmcmFt
ZS0+ZnJhbWVJRCgpKSwgcGFnZS0+cGFnZUlEKCksIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hN
ZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKQEAgLTEyMCwzMCArMTIwLDMyIEBA
IFBhc3NSZWZQdHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGVXaXRoQ29yZU1haW5GcmFtZShX
ZWJQYWdlKiBwYWdlLCBXZWJDb3JlOjpGCiAgICAgcmV0dXJuIGZyYW1lOwogfQogCi1QYXNzUmVm
UHRyPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUoV2ViUGFnZSogcGFnZSwgY29u
c3QgU3RyaW5nJiBmcmFtZU5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50
KQorUmVmPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUoV2ViUGFnZSogcGFnZSwg
Y29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVt
ZW50KQogewogICAgIGF1dG8gZnJhbWUgPSBjcmVhdGUoc3RkOjptYWtlX3VuaXF1ZTxXZWJGcmFt
ZUxvYWRlckNsaWVudD4oKSk7CiAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEaWRDcmVhdGVTdWJmcmFtZShmcmFtZS0+ZnJhbWVJRCgpKSwgcGFnZS0+cGFnZUlEKCksIElQ
Qzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5
KTsKIAotICAgIFJlZjxXZWJDb3JlOjpGcmFtZT4gY29yZUZyYW1lID0gRnJhbWU6OmNyZWF0ZShw
YWdlLT5jb3JlUGFnZSgpLCBvd25lckVsZW1lbnQsIGZyYW1lLT5tX2ZyYW1lTG9hZGVyQ2xpZW50
LmdldCgpKTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZS0+Y29yZVBh
Z2UoKSwgb3duZXJFbGVtZW50LCBmcmFtZS0+bV9mcmFtZUxvYWRlckNsaWVudC5nZXQoKSk7CiAg
ICAgZnJhbWUtPm1fY29yZUZyYW1lID0gY29yZUZyYW1lLnB0cigpOwotICAgIGZyYW1lLT5tX2Nv
cmVGcmFtZS0+dHJlZSgpLnNldE5hbWUoZnJhbWVOYW1lKTsKKworICAgIGNvcmVGcmFtZS0+dHJl
ZSgpLnNldE5hbWUoZnJhbWVOYW1lKTsKICAgICBpZiAob3duZXJFbGVtZW50KSB7CiAgICAgICAg
IEFTU0VSVChvd25lckVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSk7Ci0gICAgICAgIG93bmVy
RWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpLT50cmVlKCkuYXBwZW5kQ2hpbGQoV1RGTW92ZShj
b3JlRnJhbWUpKTsKKyAgICAgICAgb3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCktPnRy
ZWUoKS5hcHBlbmRDaGlsZChjb3JlRnJhbWUuZ2V0KCkpOwogICAgIH0KLSAgICBmcmFtZS0+bV9j
b3JlRnJhbWUtPmluaXQoKTsKKyAgICBjb3JlRnJhbWUtPmluaXQoKTsKKwogICAgIHJldHVybiBm
cmFtZTsKIH0KIAotUGFzc1JlZlB0cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZShzdGQ6OnVu
aXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9hZGVyQ2xpZW50KQorUmVmPFdl
YkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNs
aWVudD4gZnJhbWVMb2FkZXJDbGllbnQpCiB7CiAgICAgYXV0byBmcmFtZSA9IGFkb3B0UmVmKCpu
ZXcgV2ViRnJhbWUoV1RGTW92ZShmcmFtZUxvYWRlckNsaWVudCkpKTsKIAogICAgIC8vIEFkZCBl
eHBsaWN0IHJlZigpIHRoYXQgd2lsbCBiZSBiYWxhbmNlZCBpbiBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZnJhbWVMb2FkZXJEZXN0cm95ZWQoKS4KICAgICBmcmFtZS0+cmVmKCk7CiAKLSAgICByZXR1
cm4gV1RGTW92ZShmcmFtZSk7CisgICAgcmV0dXJuIGZyYW1lOwogfQogCiBXZWJGcmFtZTo6V2Vi
RnJhbWUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRlckNs
aWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5k
ZXggMjNkNDhkMjlmODM3NjY1Mzg1Y2Y0MTQxYTBjNGY2ZTYzYzU1YzY2MC4uZDRjN2E0MDgzNGEy
ODg5YjJhMWFmZDFmY2RlMzcwNmZhZTAyNmIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKQEAgLTY2LDggKzY2LDggQEAgc3RydWN0IEZyYW1lSW5m
b0RhdGE7CiAKIGNsYXNzIFdlYkZyYW1lIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9i
amVjdDo6VHlwZTo6QnVuZGxlRnJhbWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXZWJGcmFtZT4gY3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSosIFdlYkNvcmU6OkZy
YW1lKik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWU+IGNyZWF0ZVN1YmZyYW1lKFdl
YlBhZ2UqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJF
bGVtZW50Kik7CisgICAgc3RhdGljIFJlZjxXZWJGcmFtZT4gY3JlYXRlV2l0aENvcmVNYWluRnJh
bWUoV2ViUGFnZSosIFdlYkNvcmU6OkZyYW1lKik7CisgICAgc3RhdGljIFJlZjxXZWJGcmFtZT4g
Y3JlYXRlU3ViZnJhbWUoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3Jl
OjpIVE1MRnJhbWVPd25lckVsZW1lbnQqKTsKICAgICB+V2ViRnJhbWUoKTsKIAogICAgIC8vIENh
bGxlZCB3aGVuIHRoZSBGcmFtZUxvYWRlckNsaWVudCAoYW5kIHRoZXJlZm9yZSB0aGUgV2ViQ29y
ZTo6RnJhbWUpIGlzIGJlaW5nIHRvcm4gZG93bi4KQEAgLTE2Niw4ICsxNjYsOCBAQCBwdWJsaWM6
CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZT4gY3Jl
YXRlKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4pOwotICAgIFdlYkZyYW1l
KHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4pOworICAgIHN0YXRpYyBSZWY8
V2ViRnJhbWU+IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsK
KyAgICBleHBsaWNpdCBXZWJGcmFtZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGll
bnQ+KTsKIAogICAgIFdlYkNvcmU6OkZyYW1lKiBtX2NvcmVGcmFtZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAppbmRleCBkNjQ3
ODU5N2E4N2ZlZjNkYzBiOTk5MzUyMTI2NzZlZmNjNDkzMzIzLi4wMTZkNzM4ZmI2MTJkMjQzYzAw
NDllNTIwMTU4NjIxMzBmZDk1OGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgV2Vi
SW5zcGVjdG9yOjpvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiAgICAgRnJh
bWUmIGluc3BlY3RlZE1haW5GcmFtZSA9IGluc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpOwogICAg
IEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChpbnNwZWN0ZWRNYWluRnJhbWUuZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybFN0cmluZyksICJfYmxhbmsiLCBM
b2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJl
ciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5
OjpBbGxvdywgUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMLCBTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAKLSAgICBQYWdlKiBuZXdQYWdlID0gaW5z
cGVjdGVkUGFnZS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KCZpbnNwZWN0ZWRNYWluRnJhbWUsIHJl
cXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdC5yZXNvdXJj
ZVJlcXVlc3QoKSwgTmF2aWdhdGlvblR5cGU6OkxpbmtDbGlja2VkKSk7CisgICAgUGFnZSogbmV3
UGFnZSA9IGluc3BlY3RlZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdyhpbnNwZWN0ZWRNYWlu
RnJhbWUsIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVz
dC5yZXNvdXJjZVJlcXVlc3QoKSwgTmF2aWdhdGlvblR5cGU6OkxpbmtDbGlja2VkKSk7CiAgICAg
aWYgKCFuZXdQYWdlKQogICAgICAgICByZXR1cm47CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299442</attachid>
            <date>2017-01-21 13:44:15 -0800</date>
            <delta_ts>2017-01-21 13:54:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167224-20170121134219.patch</filename>
            <type>text/plain</type>
            <size>375367</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNhYzgwMTFmMWU0MTEy
NTE4YjI5Y2IwYjZkNDAyNzk2YTRkYTUwZC4uNTM2YTBkMWYwOTRmZWQzOTgxMjEwMDRjZTQ0NmFm
NTM2N2JkYjBjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzNSBAQAorMjAxNy0wMS0yMCAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIg
ZnJvbSAicGFnZSIgZGlyZWN0b3J5IG9mIFdlYkNvcmUsIGFsc28gZGVwbG95IHJlZmVyZW5jZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIyNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9ET01XaW5kb3dGZXRjaC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dG
ZXRjaDo6ZmV0Y2gpOiBVc2UgRE9NV2luZG93Ojpkb2N1bWVudCBpbnN0ZWFkIG9mCisgICAgICAg
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUNvbnRleHQ6
OmRhdGFiYXNlRXhjZWVkZWRRdW90YSk6IFBhc3MgYSByZWZlcmVuY2UuCisKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAg
ICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eVNob3dD
b250ZXh0TWVudV0pOgorICAgICAgICBQYXNzIGEgcmVmZXJlbmNlLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01X
aW5kb3c6OmdldE93blByb3BlcnR5U2xvdCk6IFBhc3MgYSByZWZlcmVuY2UuCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNoaWxkcmVu
Q2hhbmdlZCk6IFBhc3MgYSByZWZlcmVuY2UuIEFsc28gbWFkZSB0aGUKKyAgICAgICAgZGlkUmVj
ZWl2ZURvY1R5cGUgY29kZSB1bmNvbmRpdGlvbmFsIGluc3RlYWQgb2YgaU9TLW9ubHkuCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2Jq
ZWN0cyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVZpZXdwb3J0
QXJndW1lbnRzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Rm9jdXNl
ZEVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVET01X
aW5kb3cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0YWtlRE9NV2luZG93
RnJvbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlcXVlc3RGdWxsU2Ny
ZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtp
dEV4aXRGdWxsc2NyZWVuKTogRGl0dG8uCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Zm9jdXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmJsdXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRpc3Bh
dGNoRm9jdXNFdmVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZGlzcGF0
Y2hCbHVyRXZlbnQpOiBEaXR0by4KKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogRGl0dG8uCisgICAgICAgICogZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVQcmludCk6
IERpdHRvLgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldEZvY3VzZWRFbGVtZW50SWZOZWVkZWQpOiBEaXR0
by4KKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkRnJhbWU6OkNhY2hlZEZyYW1lKTogRGl0dG8uCisgICAgICAgICogaHRtbC9Db2xvcklucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6aGFuZGxlRE9NQWN0
aXZhdGVFdmVudCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2Fi
bGUpOiBEaXR0by4KKworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0tleWJvYXJkRm9j
dXNhYmxlKTogUGFzcyBhIHJlZmVyZW5jZSwKKyAgICAgICAgYW5kIGFsc28gcmV3cm90ZSB0byB1
c2UgJiYgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c3VwcG9ydHNGdWxsc2NyZWVu
KTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9TcGluQnV0dG9uRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6
OnJlbGVhc2VDYXB0dXJlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjOjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogRGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250ZXh0TWVudSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpkaXNwYXRjaEV2ZW50QXNDb250
ZXh0TWVudUV2ZW50KTogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUp
OiBVcGRhdGVkIHRvIHRha2UgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJv
bWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0p
OiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNvbW1p
dFByb3Zpc2lvbmFsTG9hZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmNsb3NlQW5kUmVtb3ZlQ2hpbGQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OmRldGFjaEZyb21QYXJlbnQpOiBQYXNzIGEgcmVmZXJlbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpc3BhdGNoQmVmb3JlVW5sb2FkRXZlbnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6IERpdHRvLgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAg
KiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVj
a2VyOjpjaGVja05ld1dpbmRvd1BvbGljeSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnJlY2FsY3VsYXRlQXZhaWxhYmxlU3BhY2VJblF1
b3RhKTogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmg6IFJldHVybiBhIHJlZmVyZW5jZSBmcm9tIG9yaWdpbi4KKworICAgICAgICAqIGxv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4pOiBU
YWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZSk6CisgICAg
ICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnN0
b3JlKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjpjaGVja09yaWdpblF1b3RhKTogVXBkYXRlZCBzaW5jZSBvcmlnaW4KKyAgICAg
ICAgbm93IHJldHVybnMgYXJlZmVyZW5jZS4KKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAg
ICogbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEpOiBQYXNzIGEgcmVmZXJlbmNlLgor
ICAgICAgICAqIG1hdGhtbC9NYXRoTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1h
dGhNTEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOiBEaXR0by4KKworICAgICAgICAqIHBh
Z2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Q2hyb21lKTogTW92ZWQg
aW5pdGlhbGl6YXRpb24gb2YgZGF0YSBtZW1iZXJzIHRvIHRoZQorICAgICAgICBjbGFzcyBkZWZp
bml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2VkKTog
VGFrZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlV2luZG93
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpydW5KYXZhU2NyaXB0
QWxlcnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdENv
bmZpcm0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdFBy
b21wdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZXRTdGF0dXNiYXJUZXh0
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnByaW50KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWU6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lOjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWU6OmRpZFJlY2VpdmVEb2NUeXBlKTogRGl0dG8uIEFsc28gbWFkZSB1bmNv
bmRpdGlvbmFsLCBidXQKKyAgICAgICAgZW1wdHkgZm9yIG5vbi1pT1MgcGxhdGZvcm1zLgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lOjpyZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKTogVGFr
ZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6dW5yZWdpc3RlclBvcHVw
T3BlbmluZ09ic2VydmVyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWUuaDogVXBkYXRl
ZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogVGFrZSBy
ZWZlcmVuY2VzLiBBbHNvIHVwZGF0ZWQgc29tZSBhcmd1bWVudHMgZnJvbQorICAgICAgICBOb2Rl
IHRvIEVsZW1lbnQuCisKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmhhbmRsZUNvbnRleHRN
ZW51RXZlbnQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudSk6IERpdHRvLiBB
bHNvIHVzZQorICAgICAgICBtYWtlX3VuaXF1ZSBpbnN0ZWFkIG9mIHVuaXF1ZV9wdHIgcGx1cyBu
ZXcuCisgICAgICAgIChXZWJDb3JlOjpvcGVuTmV3V2luZG93KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjppbnNlcnRVbmljb2RlQ2hhcmFjdGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVu
dUF0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNo
b3dJbWFnZUNvbnRyb2xzTWVudSk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2UvRE9N
VGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OmZpcmVkKTogUGFzcyBhIHJl
ZmVyZW5jZS4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBvc3RNZXNzYWdlVGltZXI6OlBvc3RNZXNzYWdlVGltZXIpOiBUYWtlIFJlZiYmIGluc3Rl
YWQgb2YKKyAgICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
YWRqdXN0V2luZG93UmVjdCk6IFVzZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6YWxsb3dQb3BVcCk6IERpdHRvLiBBbHNvIHJld3JpdGUgdG8gdXNlIHx8IGluc3Rl
YWQKKyAgICAgICAgb2Ygc3VjY2Vzc2l2ZSBpZiBzdGF0ZW1lbnRzLgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6RE9NV2luZG93KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OmRpZFNlY3VyZVRyYW5zaXRpb25Ubyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjpyZWdpc3RlclByb3BlcnR5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3c6OnVucmVnaXN0ZXJQcm9wZXJ0eSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQpOiBNZXJnZSB3aXRoIHRoZSBmdW5jdGlv
bgorICAgICAgICBpbW1lZGlhdGVseSBmb2xsb3dlZCwgY2FsbGVkIG9ubHkgZnJvbSBoZXJlLgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmln
aW5DaGVjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnByaW50KTog
UGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWxlcnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y29uZmlybSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpwcm9tcHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c2V0U3RhdHVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OnNldERlZmF1bHRTdGF0dXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6bW92ZUJ5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1vdmVU
byk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVCeSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVUbyk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6RE9NV2luZG93OjpjbGVhclRpbWVvdXQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6aW5jcmVtZW50U2Nyb2xsRXZlbnRMaXN0ZW5lcnNDb3VudCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkZWNyZW1lbnRTY3JvbGxFdmVudExp
c3RlbmVyc0NvdW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNob3dN
b2RhbERpYWxvZyk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZS4gQUxzbyBtYWRlIGZ1bmN0aW9ucyBwcml2YXRlCisgICAgICAgIGFuZCBm
aW5hbC4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93UHJvcGVydHk6OkRPTVdpbmRvd1Byb3BlcnR5KTogUGFzcyBhIHJl
ZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp+RE9NV2luZG93
UHJvcGVydHkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3
aWxsRGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJhbWUp
OiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVnaW9uT3ZlcmxheTo6Y3JlYXRlKTogUmV0dXJuIFJlZlB0ciBpbnN0ZWFk
IG9mIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpSZWdpb25PdmVybGF5Ojp+UmVnaW9u
T3ZlcmxheSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEZWJ1Z1BhZ2VP
dmVybGF5czo6c2hvd1JlZ2lvbk92ZXJsYXkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRl
YnVnUGFnZU92ZXJsYXlzOjpoaWRlUmVnaW9uT3ZlcmxheSk6IERpdHRvLgorCisgICAgICAgICog
cGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxl
cjo6ZHJhZ0V4aXRlZCk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6cGVyZm9ybURyYWdPcGVyYXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6dHJ5REhUTUxEcmFnKTogRGl0dG8uCisKKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6IFJlcGxhY2VkIE9wdGlvbmFsQ3Vyc29yIHdpdGggc3Rk
OjpvcHRpb25hbDxDdXJzb3I+LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRh
dGVDdXJzb3IpOiBSZWZhY3RvciBpbnRvIHR3byBmdW5jdGlvbnMgc28gd2UKKyAgICAgICAgY2Fu
IHNoYXJlIG1vcmUgY29kZSB3aXRoIHNlbGVjdEN1cnNvci4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKTogVXBkYXRlZCB0byB1c2Ugc3RkOjpvcHRpb25hbC4K
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3ZlRXZlbnQpOiBV
c2UgdGhlIG5ldyB1cGRhdGVDdXJzb3IuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OnN0YXJ0UGFuU2Nyb2xsaW5nKTogVXNlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERyb3ApOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KTog
VGFrZSBhIHJhdyBwb2ludGVyCisgICAgICAgIGluc3RlYWQgb2YgYSBQYXNzUmVmUHRyLgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZlbnQpOiBVc2UgYSBy
ZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0
ZUFmdGVyRWRpdERyYWdJZk5lZWRlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJzVG9MaW5rcyk6IERpdHRv
LgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4K
KworICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEZyYW1lKTogVGFrZSBwb2ludGVyIGluc3RlYWQK
KyAgICAgICAgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxl
cjo6c2V0Rm9jdXNlZEVsZW1lbnQpOiBUYWtlIHJlZmVyZW5jZSBpbnN0ZWFkIG9mCisgICAgICAg
IFBhc3NSZWZQdHIuCisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDogVXBkYXRlZCBm
b3IgdGhlIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OnRyYW5zZmVyQ2hpbGQpOiBEZWxldGVkLiBVbnVz
ZWQgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OmFwcGVuZENoaWxkKTog
TWVyZ2VkIHdpdGggdGhlIGZvbGxvd2luZyBmdW5jdGlvbgorICAgICAgICBzaW5jZSBpdCdzIG5v
dyBvbmx5IHVzZWQgaGVyZS4gVGFrZSByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVUcmVlOjphY3R1YWxseUFwcGVuZENoaWxkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6cmVtb3ZlQ2hpbGQpOiBUYWtlIHJlZmVy
ZW5jZSBpbnN0ZWFkIG9mIHBvaW50ZXIuCisgICAgICAgIFVzZSBtb3ZlIGluc3RlYWQgb2YgdHJp
Y2tpZXIgc3dhcC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5oOiBVcGRhdGVkIGZvciB0aGUg
YWJvdmUuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnNldENvbnRlbnRzU2l6ZSk6IFVzZSBhIHJlZmVyZW5jZS4KKyAgICAgICAg
KiBwYWdlL01haW5GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6OmRyb3BD
aGlsZHJlbik6IERpdHRvLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpzY3JvbGxpbmdDb29yZGluYXRvcik6IERpdHRvLgorICAgICAgICAqIHBhZ2Uv
UGFnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXk6OmZhZGVBbmlt
YXRpb25UaW1lckZpcmVkKTogRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlT3ZlcmxheUNvbnRyb2xsZXI6Omlu
c3RhbGxQYWdlT3ZlcmxheSk6IFRha2UgcmVmZXJlbmNlCisgICAgICAgIGluc3RlYWQgb2YgUGFz
c1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0
YWxsUGFnZU92ZXJsYXkpOiBUYWtlIHJlZmVyZW5jZQorICAgICAgICBpbnRlYWQgb2YgcG9pbnRl
ci4KKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oOiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpQYWdlU2VyaWFsaXplcik6IE1vdmVkIG1vc3QgaW5p
dGlhbGl6YXRpb24gdG8gdGhlCisgICAgICAgIGNsYXNzIGRlZmluaXRpb24uCisgICAgICAgIChX
ZWJDb3JlOjpQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplKTogVXNlIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVGcmFtZSk6IFVzZSBpbml0aWFs
aXplciBsaXN0IGluc3RlYWQgb2YKKyAgICAgICAgY29uc3RydWN0b3IgZm9yIHJlc291cmNlLgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUNTU1N0eWxlU2hlZXQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjphZGRJbWFnZVRvUmVz
b3VyY2VzKTogRGl0dG8uCisgICAgICAgICogcGFnZS9QYWdlU2VyaWFsaXplci5oOiBSZW1vdmVk
IGNvbnN0cnVjdG9ycyBmcm9tIFBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZQorICAgICAgICBzdHJ1
Y3Qgc2luY2Ugc3RydWN0dXJlcyBkb24ndCByZWFsbHkgbmVlZCB0aGVtLiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUuCisgICAgICAgIENoYW5nZWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yIGlu
dG8gYSBuZXN0ZWQgY2xhc3MuCisKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlRW50cnkuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlRW50cnk6OnN0YXJ0VGltZUNvbXBhcmVMZXNz
VGhhbik6IFVzZSBjb25zdCBSZWZQdHImCisgICAgICAgIGluc3RlYWQgb2YgUGFzc1JlZlB0ciB0
byBjb21wYXJlIFJlZlB0ciBpbiBwbGFjZS4KKworICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VV
c2VyVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omluc2VydFBlcmZvcm1hbmNlRW50cnkp
OiBUYWtlIFJlZiYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKworICAgICAgICAqIHBhZ2UvUmVz
b3VyY2VVc2FnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VVc2FnZU92
ZXJsYXk6On5SZXNvdXJjZVVzYWdlT3ZlcmxheSk6IFVzZSByZWZyZW5jZS4KKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlVXNhZ2VPdmVybGF5Ojppbml0aWFsaXplKTogRGl0dG8uCisKKyAgICAg
ICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmg6IFJlbW92ZWQgdW5uZWVkZWQgaW5j
bHVkZS4KKworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmNsZWFyKTog
VXNlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlOjpmaXJlRXZlbnRzQW5kVXBkYXRlU3R5bGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2gpOiBVc2UgdGhl
CisgICAgICAgIGFwcGVuZCBmdW5jdGlvbiBpbnN0ZWFkIG9mIGEgaGFuZC13cml0dGVuIGFsdGVy
bmF0aXZlLgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFk
ZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKToKKyAgICAgICAgVGFrZSBhIHJlZmVyZW5jZSByYXRo
ZXIgdGhhbiBhIFJlZiYmIHNpbmNlIG5vIGNhbGxlciBpcyBwYXNzaW5nIG93bmVyc2hpcC4KKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oOiBVcGRh
dGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0
eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibGVuZEZ1bmMpOiBSZXR1cm4gUmVm
UHRyIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OmJsZW5kRmlsdGVy
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpjcm9zc2ZhZGVCbGVuZCk6IERpdHRvLgorCisg
ICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlVHJhbnNpdGlvbnMpOiBVcGRhdGVk
IHRvIHVzZQorICAgICAgICBhbmltYXRpb25Gb3JQcm9wZXJ0eSwgd2hpY2ggcmV0dXJucyBhIHJh
dyBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRp
b25Gb3JQcm9wZXJ0eSk6IFJlbmFtZWQgZnJvbQorICAgICAgICBnZXRBbmltYXRpb25Gb3JQcm9w
ZXJ0eSBhbmQgY2hhbmdlZCB0byByZXR1cm4gcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAgICBv
ZiBQYXNzUmVmUHRyLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9J
bXBsaWNpdEFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlv
bjo6b25BbmltYXRpb25FbmQpOiBVc2UgYW5pbWF0aW9uRm9yUHJvcGVydHkuCisgICAgICAgIChX
ZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudCk6IFBhc3MgcmVm
ZXJlbmNlLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQp
OiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyk6IFRha2Ug
cmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2lu
Z0RhdGFUcmFuc2Zlcik6IFJldHVybiBSZWYuCisgICAgICAgICogcGFnZS9ndGsvRXZlbnRIYW5k
bGVyR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9y
bUNvbnRyb2xzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9pb3MvRXZlbnRI
YW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxG
b3JtQ29udHJvbHMpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRy
YW5zZmVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0Fs
bEZvcm1Db250cm9scyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpw
bGF0Zm9ybVByZXBhcmVGb3JXaGVlbEV2ZW50cyk6IERpdHRvLgorCisgICAgICAgICogcGFnZS9t
YWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oOiBUYWtlIFJlZiYmIGZvciByYW5nZXMgaW5z
dGVhZAorICAgICAgICBvZiBQYXNzUmVmUHRyLiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKiBw
YWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6Okhp
Z2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OkhpZ2hsaWdodCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6YnVpbGRQ
b3RlbnRpYWxIaWdobGlnaHRzSWZOZWVkZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkUGhvbmVOdW1iZXJIaWdobGlnaHRzKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFNl
bGVjdGlvbkhpZ2hsaWdodCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVy
bGF5Q29udHJvbGxlcjo6aGlnaGxpZ2h0c0FyZUVxdWl2YWxlbnQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmZpbmRUZWxlcGhvbmVOdW1iZXJI
aWdobGlnaHRDb250YWluaW5nU2VsZWN0aW9uSGlnaGxpZ2h0KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpoYW5kbGVDbGljayk6IERpdHRvLgor
CisgICAgICAgICogcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKyAgICAgICAgKC1b
V2ViVGV4dEluZGljYXRvclZpZXcgaW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpv
ZmZzZXQ6XSk6CisgICAgICAgIFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRy
LgorICAgICAgICAoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRv
cik6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0Fz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDogVXNlIFJlZiYmIGFuZCBSZWZQdHIgaW50ZWFkCisg
ICAgICAgIG9mIFBzYXNSZWZQdHIuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxM
YXRjaGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbExhdGNoaW5nU3RhdGU6
OlNjcm9sbExhdGNoaW5nU3RhdGUpOiBJbml0aWFsaXplIGRhdGEgbWVtYmVycworICAgICAgICBp
biBjbGFzcyBkZWZpbml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0
ZTo6c2V0V2hlZWxFdmVudEVsZW1lbnQpOiBVc2UgcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAg
ICBvZiBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6
c2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudCk6IFVzZSByYXcKKyAgICAgICAgcG9pbnRl
ciBpbnN0ZWFkIG9mIFJlZlB0ciYmLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdT
dGF0ZTo6c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcik6IFVzZSByYXcgcG9pbnRlciBpbnN0ZWFkCisg
ICAgICAgIG9mIFBhc3NSZWZQdHIuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0
Y2hpbmdTdGF0ZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KTogVXNlIFJlZiBpbnN0ZWFkIG9mIFBhc3NSZWZQ
dHIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxkKTog
VXNlIFJlZiYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZU5vZGUuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlTm9kZSk6IFVzZSBSZWYgaW5zdGVhZCBvZiBQ
YXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlOjphdHRhY2hO
b2RlKTogVXBkYXRlZCBmb3IgdGhlIGFidmUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdT
dGF0ZVRyZWU6OmNvbW1pdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlVHJlZS5oOiBEaXR0by4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJl
ZUZyb21TdGF0ZU5vZGUpOiBVc2UgcmVmZXJlbmNlLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaDogUmV0dXJuIFJlZiBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9kZTo6YXBwZW5kQ2hpbGQpOiBUYWtlIFJlZiYmIGluc3Rl
YWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVOb2RlOjpy
ZW1vdmVDaGlsZCk6IFRha2UgcmVmZXJlbmNlIGluc3RlYWQgb2YgcG9pbnRlci4KKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJv
dmUuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpUaHJlYWRlZFNjcm9s
bGluZ1RyZWUpOiBUYWtlIHJlZmVyZW5jZQorICAgICAgICBpbnN0ZWFkIG9mIHBvaW50ZXIuCisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdU
cmVlSU9TLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZSk6
IFRha2UgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlSU9TOjpT
Y3JvbGxpbmdUcmVlSU9TKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
SU9TOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZSk6IFJldHVybiBSZWYgaW5zdGVhZCBvZgorICAg
ICAgICBQYXNzUmVmUHRyLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdU
cmVlSU9TLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYyk6IFVzZSByZWZl
cmVuY2UuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5j
cHA6CisgICAgICAgIChTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGUpOiBUYWtlIGEgcmVmZXJlbmNl
LgorICAgICAgICAoU2Nyb2xsaW5nVHJlZU1hYzo6U2Nyb2xsaW5nVHJlZU1hYyk6IERpdHRvLgor
ICAgICAgICAoU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUpOiBSZXR1
cm4gYSBSZWYgaW5zdGVhZCBvZiBhCisgICAgICAgIFBhc3NSZWZQdHIuCisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaDogVXBkYXRlZCBmb3IgdGhlIGFib3Zl
LgorCisgICAgICAgICogcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKTogVGFrZSByZWZlcmVu
Y2UuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRy
YW5zZmVyKTogUmV0dXJuIFJlZi4KKworICAgICAgICAqIHBsYXRmb3JtL0N1cnNvci5oOiBSZWFy
cmFuZ2VkIHRoZSBoZWFkZXIgYSBiaXQuIEdvdCByaWQgb2YgdGhlIGV4cGxpY2l0CisgICAgICAg
IGNvcHkgY29uc3RydWN0b3IsIGFzc2lnbm1lbnQgb3BlcmF0b3IsIGFuZCBkZXN0cnVjdG9yLiBV
c2luZyB0aGUgb25lcworICAgICAgICB0aGF0IHRoZSBjb21waWxlciBhdXRvbWF0aWNhbGx5IGdl
bmVyYXRlcyB3aWxsIHdvcmsgZm9yIGFsbCBwbGF0Zm9ybXMgYW5kCisgICAgICAgIHdlIHRoZW4g
YWxzbyBnZXQgbW92ZSBjb25zdHJ1Y3RvciBhbmQgbW92ZSBhc3NpZ25tZW50IG9wZXJhdG9yLgor
CisgICAgICAgICogcGxhdGZvcm0vZWZsL0N1cnNvckVmbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDdXJzb3I6OkN1cnNvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6On5D
dXJzb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yOjpvcGVyYXRvcj0pOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q3Vyc29yOjpDdXJzb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3Vy
c29yOjpvcGVyYXRvcj0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yOjp+Q3Vy
c29yKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6Q3Vyc29yOjpDdXJzb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q3Vyc29yOjpvcGVyYXRvcj0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29y
Ojp+Q3Vyc29yKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQ3Vyc29yV2luLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEN1cnNvcjo6U2hhcmVkQ3Vyc29yKTogTW92ZWQg
dGhpcyBoZXJlIGZyb20gdGhlIGhlYWRlcgorICAgICAgICBzaW5jZSBpdCBpcyBvbmx5IHVzZWQg
d2l0aGluIHRoaXMgZmlsZS4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEN1cnNvcjo6Y3JlYXRl
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6OkN1cnNvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpDdXJzb3I6Om9wZXJhdG9yPSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpDdXJzb3I6On5DdXJzb3IpOiBEZWxldGVkLgorCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVtYmVk
ZGVkT2JqZWN0OjpoYW5kbGVVbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvckV2ZW50KToKKyAgICAg
ICAgUGFzcyByZWZlcmVuY2UuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6UmVuZGVyTGF5
ZXJCYWNraW5nKTogR2V0IHRvIEZyYW1lVmlldworICAgICAgICB0aHJvdWdoIHRoZSByZW5kZXIg
dHJlZSBpdHNlbGYsIHJhdGhlciB0aGFuIHRocm91Z2ggdGhlIGZyYW1lLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUxheWVyRm9ySGVhZGVyKTogVXNlIHJlZmVyZW5j
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJG
b3JGb290ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRv
cjo6YXR0YWNoUm9vdExheWVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmRldGFjaFJvb3RMYXllcik6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJNZW51TGlzdC5jcHA6CisgICAgICAgIChSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVw
KTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNlYXJjaEZpZWxkOjphZGRTZWFyY2hSZXN1bHQpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNlYXJjaEZpZWxkOjpzaG93UG9wdXApOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNlYXJjaEZpZWxkOjp2YWx1ZUNoYW5nZWQpOiBE
aXR0by4KKyAgICAgICAgKiBzdmcvU1ZHQUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQUVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOiBEaXR0by4KKyAgICAgICAgKiB0ZXN0
aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUGFn
ZU92ZXJsYXlDbGllbnQ6Omluc3RhbGxPdmVybGF5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpNb2NrUGFnZU92ZXJsYXlDbGllbnQ6OnVuaW5zdGFsbEFsbE92ZXJsYXlzKTogRGl0dG8uCisK
IDIwMTctMDEtMjEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMTEwMTIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
aW5kZXggNGEzMzg0NWYxODYxMjIwODI4NWM3NDBmYmQzOWE4OGZmODZiNTUyMi4uY2EyODk2YTVi
YjU1NTA0NmQ5ODk4MDA5MjE2YmM5Y2IxZmJlNWYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQxIEBACisyMDE3LTAxLTIwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciBmcm9tICJwYWdlIiBkaXJlY3Rvcnkgb2YgV2ViQ29y
ZSwgYWxzbyBkZXBsb3kgcmVmZXJlbmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlUXVv
dGFNYW5hZ2VyLm1tOgorICAgICAgICAoLVtXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2Vy
IHF1b3RhXSk6IFBhc3MgcmVmZXJlbmNlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lmg6IFVwZGF0ZWQgZm9yIGNoYW5nZXMgdG8gQ2hyb21lQ2xpZW50LgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudDo6Zm9jdXNlZEVsZW1lbnRDaGFuZ2VkKTogRGl0dG8uCisgICAgICAgIChXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpOiBEaXR0by4KKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9t
ZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21l
Q2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNocm9tZUNsaWVudDo6cHJpbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVu
dDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKTogRGl0dG8uCisgICAgICAgIChX
ZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRGb2N1cyk6IERpdHRvLgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjplbGVtZW50RGlkQmx1cik6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50OjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6
Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6
OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcik6IERpdHRvLgorICAgICAgICAoV2Vi
Q2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KTogRGl0dG8uCisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KTogRGl0
dG8uCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoK1tXZWJGcmFt
ZSBfY3JlYXRlRnJhbWVXaXRoUGFnZTpmcmFtZU5hbWU6ZnJhbWVWaWV3Om93bmVyRWxlbWVudDpd
KToKKyAgICAgICAgVXBkYXRlZCBmb3IgY2hhbmdlIHRvIHRoZSBhcHBlbmRDaGlsZCBmdW5jdGlv
bi4KKwogMjAxNy0wMS0yMCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbW92ZSBuZXZlciBjaGFuZ2luZyBJbmRleGVkREIgUnVudGltZUVuYWJsZWRG
ZWF0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggZWRkMjFjMGJjNzc0YmNlNzhiZWYxOGQ1YmJmMjhj
ZmUyZTBhZTE5Zi4uMTg3ZWZjMjhlZDE1NGEwNjFmZDg1MWMwYWEwZDlkYjFjOTRjZjc4YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE3LTAxLTIwICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciBmcm9tICJwYWdl
IiBkaXJlY3Rvcnkgb2YgV2ViQ29yZSwgYWxzbyBkZXBsb3kgcmVmZXJlbmNlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MjI0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbHVnaW5zL1BsdWdpblZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c3RhdHVzKTogUGFzcyByZWZl
cmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpmb2N1c1BsdWdpbkVsZW1lbnQp
OiBEaXR0by4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyk6IFVwZGF0ZWQgZm9yIGNo
YW5nZSB0byBDaHJvbWVDbGllbnQuCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpy
dW5KYXZhU2NyaXB0QWxlcnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cnVu
SmF2YVNjcmlwdENvbmZpcm0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cnVu
SmF2YVNjcmlwdFByb21wdCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpjb250
ZW50c1NpemVDaGFuZ2VkKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50OjpwcmludCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERh
dGFiYXNlUXVvdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcik6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21l
Q2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNocm9tZUNsaWVudDo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KTogRGl0dG8u
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6IERpdHRv
LgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50
KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5G
b3JFbGVtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVzZVRp
bGVkQmFja2luZ0ZvckZyYW1lVmlldyk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oOiBEaXR0by4KKwogMjAxNy0wMS0yMCAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBuZXZlciBjaGFuZ2luZyBJ
bmRleGVkREIgUnVudGltZUVuYWJsZWRGZWF0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2JhYzdhMDEzMmQx
OWQyMjdiNjUxZWNhZjNhMjlhNTE5ZDlhZjIzNC4uOWY4YjU2OTNiZGE3ZTczNmYzNGYxNTFlZGFl
Yzc2MjY2NDkyM2JhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDE3LTAxLTIwICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0
ciBmcm9tICJwYWdlIiBkaXJlY3Rvcnkgb2YgV2ViQ29yZSwgYWxzbyBkZXBsb3kgcmVmZXJlbmNl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MjI0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZSk6IFJldHVybiBh
IFJlZgorICAgICAgICBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisgICAgICAgICogVUlQcm9jZXNz
L1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
LmNwcDoKKyAgICAgICAgKFdLQnVuZGxlUGFnZUluc3RhbGxQYWdlT3ZlcmxheSk6IFBhc3MgYSBy
ZWZlcmVuY2UuCisgICAgICAgIChXS0J1bmRsZVBhZ2VVbmluc3RhbGxQYWdlT3ZlcmxheSk6IERp
dHRvLgorICAgICAgICAoV0tCdW5kbGVQYWdlSW5zdGFsbFBhZ2VPdmVybGF5V2l0aEFuaW1hdGlv
bik6IERpdHRvLgorICAgICAgICAoV0tCdW5kbGVQYWdlVW5pbnN0YWxsUGFnZU92ZXJsYXlXaXRo
QW5pbWF0aW9uKTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXBy
ZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OmpzUERGRG9j
UHJpbnQpOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OmZvY3VzUGx1Z2luRWxlbWVudCk6IERp
dHRvLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpzZXRTdGF0dXNiYXJUZXh0KTogRGl0
dG8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEZvY3Vz
KTogVXBkYXRlZCBmb3IgY2hhbmdlcyB0byBDaHJvbWVDbGllbnQuCisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIpOiBEaXR0by4KKyAgICAgICAgKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjptYWtlRmlyc3RSZXNwb25kZXIpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3cpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpOiBE
aXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxl
cnQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2Ny
aXB0Q29uZmlybSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1
bkphdmFTY3JpcHRQcm9tcHQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKTogRGl0dG8uCisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cHJpbnQpOiBEaXR0by4KKyAgICAgICAgKFdl
YktpdDo6V2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEpOiBEaXR0by4KKyAg
ICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlQ29sb3JDaG9vc2VyKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6Oldl
YkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIp
OiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTY3JvbGxp
bmdDb29yZGluYXRvcik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6
V2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KTogRGl0dG8uCisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KTog
RGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5
ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRGb290
ZXJMYXllcik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnNob3Vs
ZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyk6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6IERpdHRvLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaENyZWF0ZVBhZ2UpOiBQ
YXNzIHJlZmVyZW5jZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvckNsaWVudDo6
fldlYkluc3BlY3RvckNsaWVudCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0
b3JDbGllbnQ6OmhpZGVIaWdobGlnaHQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViSW5z
cGVjdG9yQ2xpZW50OjpzaG93UGFpbnRSZWN0KTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmluZENvbnRy
b2xsZXI6OnVwZGF0ZUZpbmRVSUFmdGVyUGFnZVNjcm9sbCk6IERpdHRvLgorICAgICAgICAoV2Vi
S2l0OjpGaW5kQ29udHJvbGxlcjo6aGlkZUZpbmRVSSk6IERpdHRvLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6
OmNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKTogUmV0dXJuIFJlZiBpbnN0ZWFkIG9mCisgICAgICAg
IFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpjcmVhdGVTdWJmcmFtZSk6
IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y3JlYXRlKTogRGl0dG8uCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmg6IFVwZGF0ZWQgZm9yIHRlaCBhYm92
ZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3I6Om9wZW5Jbk5ld1RhYik6IFBhc3MgcmVmZXJlbmNl
LgorCiAyMDE3LTAxLTIxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjExMDEyLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9ET01XaW5kb3dGZXRjaC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0RPTVdpbmRvd0ZldGNoLmNwcAppbmRleCBhZGFkYWNk
ODNjMjYwY2ZhOWQ3Njk5ZDM0ZjZhNGJlYzkxZDYxZjA2Li5jNTlkMzY1NmEwYzIxMDdhYTlkYTc2
ZGYxYTU3MzdkZWZmOWY1MmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0RPTVdpbmRvd0ZldGNoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0RPTVdpbmRvd0ZldGNoLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQ2Fub24gSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDE2
ICszMywxNyBAQAogI2lmIEVOQUJMRShGRVRDSF9BUEkpCiAKICNpbmNsdWRlICJET01XaW5kb3cu
aCIKLSNpbmNsdWRlICJGZXRjaFJlcXVlc3QuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkZldGNoUmVzcG9uc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIERP
TVdpbmRvd0ZldGNoOjpmZXRjaChET01XaW5kb3cmIHdpbmRvdywgRmV0Y2hSZXF1ZXN0JiByZXF1
ZXN0LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgaWYgKCF3aW5kb3cu
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgIGF1dG8qIGRvY3VtZW50ID0gd2luZG93LmRv
Y3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwotICAgIEZldGNo
UmVzcG9uc2U6OmZldGNoKCp3aW5kb3cuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCByZXF1ZXN0
LCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBGZXRjaFJlc3BvbnNlOjpmZXRjaCgqZG9jdW1lbnQs
IHJlcXVlc3QsIFdURk1vdmUocHJvbWlzZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
Q29udGV4dC5jcHAKaW5kZXggZTU0ODlmY2I1NDBjOTY5NGFlNDM3NTk2ODNkZTlhY2YwMTgyNGFk
OS4uM2RjYjU2MDM0M2ViNWFiOTQ1MTFhMzkwZWIxOTExYjM5Y2IwZjFhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNw
cApAQCAtMjA0LDcgKzIwNCw3IEBAIHZvaWQgRGF0YWJhc2VDb250ZXh0OjpkYXRhYmFzZUV4Y2Vl
ZGVkUXVvdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBEYXRhYmFzZURldGFpbHMKICAgICBpZiAoaXM8
RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKSB7CiAgICAgICAgIERvY3VtZW50
JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
KTsKICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkpCi0gICAgICAgICAg
ICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5leGNlZWRlZERhdGFiYXNlUXVvdGEoZG9jdW1lbnQu
ZnJhbWUoKSwgbmFtZSwgZGV0YWlscyk7CisgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGll
bnQoKS5leGNlZWRlZERhdGFiYXNlUXVvdGEoKmRvY3VtZW50LmZyYW1lKCksIG5hbWUsIGRldGFp
bHMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tCmluZGV4IDQxNmIxODM0YmQ4YWE2MzRiOGM3YmMyY2VlN2YwOTQ2YmM2
YmIwN2UuLjAzMjBmOTU1NmI1N2IyYjAzNzI5MTJiMDhmNTI5MmViNGY4NmVkMmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0zNzI5LDcgKzM3MjksNyBAQCAt
ICh2b2lkKWFjY2Vzc2liaWxpdHlTaG93Q29udGV4dE1lbnUKICAgICAgICAgfQogICAgIH0KICAg
ICAKLSAgICBwYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnVBdCgm
cGFnZS0+bWFpbkZyYW1lKCksIHJlY3QuY2VudGVyKCkpOworICAgIHBhZ2UtPmNvbnRleHRNZW51
Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVudUF0KHBhZ2UtPm1haW5GcmFtZSgpLCByZWN0LmNl
bnRlcigpKTsKIH0KIAogLSAodm9pZClhY2Nlc3NpYmlsaXR5U2Nyb2xsVG9WaXNpYmxlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXgg
YTNmNjJlNTY0NDExZjE4MDdiZmYwOTVmNWRiOWNhNTJmNmU2Y2RlNC4uYWU3ZmU4YzE3ZjBkYmNk
MTViNzA1NDg2ZDY0MmE0NThhZTU3YmNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMTc4LDcgKzE3OCw3IEBAIGJvb2wgSlNE
T01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IHN0YXRlLCBQcm9wZXJ0CiAgICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2Jq
ZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAvLyBEZXRlY3Qgd2hl
biB3ZSdyZSBnZXR0aW5nIHRoZSBwcm9wZXJ0eSAnc2hvd01vZGFsRGlhbG9nJywgdGhpcyBpcyBk
aXNhYmxlZCwgYW5kIGhhcyBpdHMgb3JpZ2luYWwgdmFsdWUuCiAgICAgICAgIGJvb2wgaXNTaG93
TW9kYWxEaWFsb2dBbmRTaG91bGRIaWRlID0gcHJvcGVydHlOYW1lID09IHN0YXRlLT5wcm9wZXJ0
eU5hbWVzKCkuc2hvd01vZGFsRGlhbG9nCi0gICAgICAgICAgICAmJiAhRE9NV2luZG93OjpjYW5T
aG93TW9kYWxEaWFsb2coZnJhbWUpCisgICAgICAgICAgICAmJiAhRE9NV2luZG93OjpjYW5TaG93
TW9kYWxEaWFsb2coKmZyYW1lKQogICAgICAgICAgICAgJiYgc2xvdC5pc1ZhbHVlKCkgJiYgaXNI
b3N0RnVuY3Rpb24oc2xvdC5nZXRWYWx1ZShzdGF0ZSwgcHJvcGVydHlOYW1lKSwganNET01XaW5k
b3dJbnN0YW5jZUZ1bmN0aW9uU2hvd01vZGFsRGlhbG9nKTsKICAgICAgICAgLy8gVW5sZXNzIHdl
J3JlIGluIHRoZSBzaG93TW9kYWxEaWFsb2cgc3BlY2lhbCBjYXNlLCB3ZSdyZSBkb25lLgogICAg
ICAgICBpZiAoIWlzU2hvd01vZGFsRGlhbG9nQW5kU2hvdWxkSGlkZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDA4MTYwYWRkM2EzYTNkZTljZDQ4N2ZkNDE0MTM4MjE2MWM5MWYxOWMuLjk0
OGQ2N2NlZTQzOWI1MGRmODBiY2ZmNTliNzdmMDIyNjcwYmNlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtODQ4LDEzICs4NDgsMTEgQEAgdm9pZCBEb2N1bWVudDo6Y2hpbGRyZW5DaGFu
Z2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiB7CiAgICAgQ29udGFpbmVyTm9kZTo6Y2hp
bGRyZW5DaGFuZ2VkKGNoYW5nZSk7CiAKLSNpZiBQTEFURk9STShJT1MpCiAgICAgLy8gRklYTUU6
IENocm9tZTo6ZGlkUmVjZWl2ZURvY1R5cGUoKSB1c2VkIHRvIGJlIGNhbGxlZCBvbmx5IHdoZW4g
dGhlIGRvY3R5cGUgY2hhbmdlZC4gV2UgbmVlZCB0byBjaGVjayB0aGUKICAgICAvLyBpbXBhY3Qg
b2YgY2FsbGluZyB0aGlzIHN5c3RlbWF0aWNhbGx5LiBJZiB0aGUgb3ZlcmhlYWQgaXMgbmVnbGln
aWJsZSwgd2UgbmVlZCB0byByZW5hbWUgZGlkUmVjZWl2ZURvY1R5cGUsCiAgICAgLy8gb3RoZXJ3
aXNlLCB3ZSBuZWVkIHRvIGRldGVjdCB0aGUgZG9jIHR5cGUgY2hhbmdlcyBiZWZvcmUgdXBkYXRp
bmcgdGhlIHZpZXdwb3J0LgogICAgIGlmIChQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpKQotICAg
ICAgICBwYWdlLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZShmcmFtZSgpKTsKLSNlbmRpZgor
ICAgICAgICBwYWdlLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZSgqZnJhbWUoKSk7CiAKICAg
ICBFbGVtZW50KiBuZXdEb2N1bWVudEVsZW1lbnQgPSBjaGlsZHJlbk9mVHlwZTxFbGVtZW50Pigq
dGhpcykuZmlyc3QoKTsKICAgICBpZiAobmV3RG9jdW1lbnRFbGVtZW50ID09IG1fZG9jdW1lbnRF
bGVtZW50KQpAQCAtMjM3Miw5ICsyMzcwLDEwIEBAIHZvaWQgRG9jdW1lbnQ6OnBsYXRmb3JtU3Vz
cGVuZE9yU3RvcEFjdGl2ZURPTU9iamVjdHMoKQogewogI2lmIFBMQVRGT1JNKElPUykKICAgICBp
ZiAoV2ViVGhyZWFkQ291bnRPZk9ic2VydmVkQ29udGVudE1vZGlmaWVycygpID4gMCkgewotICAg
ICAgICBGcmFtZSogZnJhbWUgPSB0aGlzLT5mcmFtZSgpOwotICAgICAgICBpZiAoUGFnZSogcGFn
ZSA9IGZyYW1lID8gZnJhbWUtPnBhZ2UoKSA6IG51bGxwdHIpCi0gICAgICAgICAgICBwYWdlLT5j
aHJvbWUoKS5jbGllbnQoKS5jbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoZnJhbWUpOworICAg
ICAgICBpZiAoYXV0byogZnJhbWUgPSB0aGlzLT5mcmFtZSgpKSB7CisgICAgICAgICAgICBpZiAo
YXV0byogcGFnZSA9IGZyYW1lLT5wYWdlKCkpCisgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21l
KCkuY2xpZW50KCkuY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKCpmcmFtZSk7CisgICAgICAg
IH0KICAgICB9CiAjZW5kaWYKIH0KQEAgLTMyMTgsOSArMzIxNyw3IEBAIHZvaWQgRG9jdW1lbnQ6
OnVwZGF0ZVZpZXdwb3J0QXJndW1lbnRzKCkKICAgICAgICAgbV9kaWREaXNwYXRjaFZpZXdwb3J0
UHJvcGVydGllc0NoYW5nZWQgPSB0cnVlOwogI2VuZGlmCiAgICAgICAgIHBhZ2UoKS0+Y2hyb21l
KCkuZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UobV92aWV3cG9ydEFyZ3VtZW50
cyk7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgICAgICBwYWdlKCktPmNocm9tZSgpLmRpZFJlY2Vp
dmVEb2NUeXBlKGZyYW1lKCkpOwotI2VuZGlmCisgICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuZGlk
UmVjZWl2ZURvY1R5cGUoKmZyYW1lKCkpOwogICAgIH0KIH0KIApAQCAtMzY0Miw3ICszNjM5LDcg
QEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgRm9j
dXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBGb2MKICAgICAgICAgICAgIGlmIChpczxIVE1MSW5wdXRF
bGVtZW50Pigqb2xkRm9jdXNlZEVsZW1lbnQpKQogICAgICAgICAgICAgICAgIGRvd25jYXN0PEhU
TUxJbnB1dEVsZW1lbnQ+KCpvbGRGb2N1c2VkRWxlbWVudCkuZW5kRWRpdGluZygpOwogICAgICAg
ICAgICAgaWYgKHBhZ2UoKSkKLSAgICAgICAgICAgICAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVu
dCgpLmVsZW1lbnREaWRCbHVyKG9sZEZvY3VzZWRFbGVtZW50LmdldCgpKTsKKyAgICAgICAgICAg
ICAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVsZW1lbnREaWRCbHVyKCpvbGRGb2N1c2Vk
RWxlbWVudCk7CiAgICAgICAgICAgICBBU1NFUlQoIW1fZm9jdXNlZEVsZW1lbnQpOwogICAgICAg
ICB9CiAKQEAgLTQwMDAsNyArMzk5Nyw3IEBAIHZvaWQgRG9jdW1lbnQ6OmNyZWF0ZURPTVdpbmRv
dygpCiAgICAgQVNTRVJUKG1fZnJhbWUpOwogICAgIEFTU0VSVCghbV9kb21XaW5kb3cpOwogCi0g
ICAgbV9kb21XaW5kb3cgPSBET01XaW5kb3c6OmNyZWF0ZSh0aGlzKTsKKyAgICBtX2RvbVdpbmRv
dyA9IERPTVdpbmRvdzo6Y3JlYXRlKCp0aGlzKTsKIAogICAgIEFTU0VSVChtX2RvbVdpbmRvdy0+
ZG9jdW1lbnQoKSA9PSB0aGlzKTsKICAgICBBU1NFUlQobV9kb21XaW5kb3ctPmZyYW1lKCkgPT0g
bV9mcmFtZSk7CkBAIC00MDE1LDcgKzQwMTIsNyBAQCB2b2lkIERvY3VtZW50Ojp0YWtlRE9NV2lu
ZG93RnJvbShEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgQVNTRVJUKHBhZ2VDYWNoZVN0YXRlKCkg
PT0gTm90SW5QYWdlQ2FjaGUpOwogCiAgICAgbV9kb21XaW5kb3cgPSBXVEZNb3ZlKGRvY3VtZW50
LT5tX2RvbVdpbmRvdyk7Ci0gICAgbV9kb21XaW5kb3ctPmRpZFNlY3VyZVRyYW5zaXRpb25Ubyh0
aGlzKTsKKyAgICBtX2RvbVdpbmRvdy0+ZGlkU2VjdXJlVHJhbnNpdGlvblRvKCp0aGlzKTsKIAog
ICAgIEFTU0VSVChtX2RvbVdpbmRvdy0+ZG9jdW1lbnQoKSA9PSB0aGlzKTsKICAgICBBU1NFUlQo
bV9kb21XaW5kb3ctPmZyYW1lKCkgPT0gbV9mcmFtZSk7CkBAIC01NTczLDEyICs1NTcwLDEyIEBA
IHZvaWQgRG9jdW1lbnQ6OnJlcXVlc3RGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVt
ZW50LCBGdWxsU2NyZWVuQ2hlY2tUeXBlCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBi
b29sIGhhc0tleWJvYXJkQWNjZXNzID0gdHJ1ZTsKLSAgICAgICAgaWYgKCFwYWdlKCktPmNocm9t
ZSgpLmNsaWVudCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCwgaGFzS2V5
Ym9hcmRBY2Nlc3MpKSB7CisgICAgICAgIGlmICghcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5z
dXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KCplbGVtZW50LCBoYXNLZXlib2FyZEFjY2Vzcykp
IHsKICAgICAgICAgICAgIC8vIFRoZSBuZXcgZnVsbCBzY3JlZW4gQVBJIGRvZXMgbm90IGFjY2Vw
dCBhICJmbGFncyIgcGFyYW1ldGVyLCBzbyBmYWxsIGJhY2sgdG8gZGlzYWxsb3dpbmcKICAgICAg
ICAgICAgIC8vIGtleWJvYXJkIGlucHV0IGlmIHRoZSBjaHJvbWUgY2xpZW50IHJlZnVzZXMgdG8g
YWxsb3cga2V5Ym9hcmQgaW5wdXQuCiAgICAgICAgICAgICBoYXNLZXlib2FyZEFjY2VzcyA9IGZh
bHNlOwogCi0gICAgICAgICAgICBpZiAoIXBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9y
dHNGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50LCBoYXNLZXlib2FyZEFjY2VzcykpCisgICAg
ICAgICAgICBpZiAoIXBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVu
Rm9yRWxlbWVudCgqZWxlbWVudCwgaGFzS2V5Ym9hcmRBY2Nlc3MpKQogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAKQEAgLTU2MzEsNyArNTYyOCw3IEBAIHZvaWQgRG9jdW1lbnQ6
OnJlcXVlc3RGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGdWxsU2NyZWVu
Q2hlY2tUeXBlCiAgICAgICAgIC8vIDUuIFJldHVybiwgYW5kIHJ1biB0aGUgcmVtYWluaW5nIHN0
ZXBzIGFzeW5jaHJvbm91c2x5LgogICAgICAgICAvLyA2LiBPcHRpb25hbGx5LCBwZXJmb3JtIHNv
bWUgYW5pbWF0aW9uLgogICAgICAgICBtX2FyZUtleXNFbmFibGVkSW5GdWxsU2NyZWVuID0gaGFz
S2V5Ym9hcmRBY2Nlc3M7Ci0gICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsKKyAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5j
bGllbnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KCplbGVtZW50KTsKIAogICAgICAgICAv
LyA3LiBPcHRpb25hbGx5LCBkaXNwbGF5IGEgbWVzc2FnZSBpbmRpY2F0aW5nIGhvdyB0aGUgdXNl
ciBjYW4gZXhpdCBkaXNwbGF5aW5nIHRoZSBjb250ZXh0IG9iamVjdCBmdWxsc2NyZWVuLgogICAg
ICAgICByZXR1cm47CkBAIC01NzIzLDEyICs1NzIwLDEyIEBAIHZvaWQgRG9jdW1lbnQ6OndlYmtp
dEV4aXRGdWxsc2NyZWVuKCkKICAgICAvLyBPbmx5IGV4aXQgb3V0IG9mIGZ1bGwgc2NyZWVuIHdp
bmRvdyBtb2RlIGlmIHRoZXJlIGFyZSBubyByZW1haW5pbmcgZWxlbWVudHMgaW4gdGhlIAogICAg
IC8vIGZ1bGwgc2NyZWVuIHN0YWNrLgogICAgIGlmICghbmV3VG9wKSB7Ci0gICAgICAgIHBhZ2Uo
KS0+Y2hyb21lKCkuY2xpZW50KCkuZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KG1fZnVsbFNjcmVl
bkVsZW1lbnQuZ2V0KCkpOworICAgICAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmV4aXRG
dWxsU2NyZWVuRm9yRWxlbWVudCgqbV9mdWxsU2NyZWVuRWxlbWVudCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKICAgICAvLyBPdGhlcndpc2UsIG5vdGlmeSB0aGUgY2hyb21lIG9mIHRoZSBu
ZXcgZnVsbCBzY3JlZW4gZWxlbWVudC4KLSAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQobmV3VG9wKTsKKyAgICBwYWdlKCktPmNocm9tZSgpLmNs
aWVudCgpLmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoKm5ld1RvcCk7CiB9CiAKIGJvb2wgRG9j
dW1lbnQ6OndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAppbmRleCA4OGUzZTk5MzAxYTcxOWRlMjU0MDgzYTkzMjZhM2JhY2YzZWMzOGZjLi44NWUwYjI2
ZjFjM2U3OGIyY2JiYzY4NWI2YWQxOWYyNWQwZDliZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CkBAIC0yMzQ4LDcgKzIzNDgsNyBAQCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVBy
ZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAKICAgICBpZiAoZG9j
dW1lbnQoKS5mb2N1c2VkRWxlbWVudCgpID09IHRoaXMpIHsKICAgICAgICAgaWYgKGRvY3VtZW50
KCkucGFnZSgpKQotICAgICAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVu
dCgpLmVsZW1lbnREaWRSZWZvY3VzKHRoaXMpOworICAgICAgICAgICAgZG9jdW1lbnQoKS5wYWdl
KCktPmNocm9tZSgpLmNsaWVudCgpLmVsZW1lbnREaWRSZWZvY3VzKCp0aGlzKTsKIAogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMjM3MSw3ICsyMzcxLDcgQEAgdm9pZCBFbGVtZW50Ojpmb2N1
cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9u
KQogICAgICAgICAvLyBJZiBhIGZvY3VzIGV2ZW50IGhhbmRsZXIgY2hhbmdlcyB0aGUgZm9jdXMg
dG8gYSBkaWZmZXJlbnQgbm9kZSBpdAogICAgICAgICAvLyBkb2VzIG5vdCBtYWtlIHNlbnNlIHRv
IGNvbnRpbnVlIGFuZCB1cGRhdGUgYXBwZWFyZW5jZS4KICAgICAgICAgcHJvdGVjdCA9IHRoaXM7
Ci0gICAgICAgIGlmICghcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQo
dGhpcywgZG9jdW1lbnQoKS5mcmFtZSgpLCBkaXJlY3Rpb24pKQorICAgICAgICBpZiAoIXBhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KHRoaXMsICpkb2N1bWVudCgpLmZy
YW1lKCksIGRpcmVjdGlvbikpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yNDQx
LDcgKzI0NDEsNyBAQCB2b2lkIEVsZW1lbnQ6OmJsdXIoKQogICAgIGNhbmNlbEZvY3VzQXBwZWFy
YW5jZVVwZGF0ZSgpOwogICAgIGlmICh0cmVlU2NvcGUoKS5mb2N1c2VkRWxlbWVudEluU2NvcGUo
KSA9PSB0aGlzKSB7CiAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1l
KCkpCi0gICAgICAgICAgICBmcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1
c2VkRWxlbWVudCgwLCBmcmFtZSk7CisgICAgICAgICAgICBmcmFtZS0+cGFnZSgpLT5mb2N1c0Nv
bnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChudWxscHRyLCAqZnJhbWUpOwogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBkb2N1bWVudCgpLnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIpOwog
ICAgIH0KQEAgLTI0NjQsNyArMjQ2NCw3IEBAIHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c091
dEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWZQdHI8RWxlbWVuCiB2b2lk
IEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudChSZWZQdHI8RWxlbWVudD4mJiBvbGRGb2N1c2Vk
RWxlbWVudCwgRm9jdXNEaXJlY3Rpb24pCiB7CiAgICAgaWYgKGRvY3VtZW50KCkucGFnZSgpKQot
ICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZEZv
Y3VzKHRoaXMpOworICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCku
ZWxlbWVudERpZEZvY3VzKCp0aGlzKTsKIAogICAgIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hF
dmVudCgqdGhpcywgRm9jdXNFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50LCBm
YWxzZSwgZmFsc2UsIGRvY3VtZW50KCkuZGVmYXVsdFZpZXcoKSwgMCwgV1RGTW92ZShvbGRGb2N1
c2VkRWxlbWVudCkpKTsKIH0KQEAgLTI0NzIsNyArMjQ3Miw3IEBAIHZvaWQgRWxlbWVudDo6ZGlz
cGF0Y2hGb2N1c0V2ZW50KFJlZlB0cjxFbGVtZW50PiYmIG9sZEZvY3VzZWRFbGVtZW50LCBGb2N1
c0RpcmVjCiB2b2lkIEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KFJlZlB0cjxFbGVtZW50PiYm
IG5ld0ZvY3VzZWRFbGVtZW50KQogewogICAgIGlmIChkb2N1bWVudCgpLnBhZ2UoKSkKLSAgICAg
ICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVsZW1lbnREaWRCbHVyKHRo
aXMpOworICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVu
dERpZEJsdXIoKnRoaXMpOwogCiAgICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KCp0
aGlzLCBGb2N1c0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmJsdXJFdmVudCwgZmFsc2UsIGZh
bHNlLCBkb2N1bWVudCgpLmRlZmF1bHRWaWV3KCksIDAsIFdURk1vdmUobmV3Rm9jdXNlZEVsZW1l
bnQpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggYmIzYWI5OWU2MWM1YmRjMTA0M2YzZWJjNGUw
Zjc5NmEyZGNiZDhiNy4uNzY2MjMwNTQ3MWU1MWZiYmY2ZTRmYTM1NTc1ZWQ2YWJhYmZjNzA3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcApAQCAtMjI1Myw3ICsyMjUzLDcgQEAgdm9pZCBOb2RlOjpkZWZhdWx0
RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKICAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBl
dmVudE5hbWVzKCkuY29udGV4dG1lbnVFdmVudCkgewogICAgICAgICBpZiAoRnJhbWUqIGZyYW1l
ID0gZG9jdW1lbnQoKS5mcmFtZSgpKQogICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFt
ZS0+cGFnZSgpKQotICAgICAgICAgICAgICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigp
LmhhbmRsZUNvbnRleHRNZW51RXZlbnQoJmV2ZW50KTsKKyAgICAgICAgICAgICAgICBwYWdlLT5j
b250ZXh0TWVudUNvbnRyb2xsZXIoKS5oYW5kbGVDb250ZXh0TWVudUV2ZW50KGV2ZW50KTsKICNl
bmRpZgogICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS50ZXh0SW5wdXRF
dmVudCkgewogICAgICAgICBpZiAoaXM8VGV4dEV2ZW50PihldmVudCkpIHsKQEAgLTIyNzIsNyAr
MjI3Miw3IEBAIHZvaWQgTm9kZTo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiAK
ICAgICAgICAgICAgIGlmIChyZW5kZXJlcikgewogICAgICAgICAgICAgICAgIGlmIChGcmFtZSog
ZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lLT5l
dmVudEhhbmRsZXIoKS5zdGFydFBhblNjcm9sbGluZyhkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRl
cmVyKSk7CisgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zdGFydFBh
blNjcm9sbGluZyhkb3duY2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJlcikpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQu
Y3BwCmluZGV4IGFjZjIyNjhhN2U3OTMwOTI3Y2VjYmIxM2QyNGQ2NGNmYWRiZjZkZGUuLjAxZjA3
MWNjYWRjZGYxOTY0MWYyODc3NzQxOWRiNDZjYjU0MGM2MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcApAQCAtOTMwLDcgKzkzMCw3IEBAIHN0YXRpYyBib29sIGV4
ZWN1dGVQcmludChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29u
c3QgU3RyaW5nCiAgICAgUGFnZSogcGFnZSA9IGZyYW1lLnBhZ2UoKTsKICAgICBpZiAoIXBhZ2Up
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBwYWdlLT5jaHJvbWUoKS5wcmludCgmZnJhbWUp
OworICAgIHBhZ2UtPmNocm9tZSgpLnByaW50KGZyYW1lKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCA2NzU5ZmYx
NzdmZTc2NzFjYmIxNjkzNWViMzYxMGQyYTU2OTdiNzg2Li43MTNlNzc5NzE4MjUyNWQ3NzJmNGMy
OTA0ZmI5MmI0MjQ1OWYyMzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcApAQCAtMjE1Nyw3ICsyMTU3LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0Rm9j
dXNlZEVsZW1lbnRJZk5lZWRlZCgpCiAgICAgYm9vbCBjYXJldEJyb3dzaW5nID0gbV9mcmFtZS0+
c2V0dGluZ3MoKS5jYXJldEJyb3dzaW5nRW5hYmxlZCgpOwogICAgIGlmIChjYXJldEJyb3dzaW5n
KSB7CiAgICAgICAgIGlmIChFbGVtZW50KiBhbmNob3IgPSBlbmNsb3NpbmdBbmNob3JFbGVtZW50
KG1fc2VsZWN0aW9uLmJhc2UoKSkpIHsKLSAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Zm9j
dXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQoYW5jaG9yLCBtX2ZyYW1lKTsKKyAgICAg
ICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1l
bnQoYW5jaG9yLCAqbV9mcmFtZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICB9CkBAIC0yMTY5LDE2ICsyMTY5LDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldEZvY3Vz
ZWRFbGVtZW50SWZOZWVkZWQoKQogICAgICAgICAgICAgLy8gc28gYWRkIHRoZSAhaXNGcmFtZUVs
ZW1lbnQgY2hlY2sgaGVyZS4gVGhlcmUncyBwcm9iYWJseSBhIGJldHRlciB3YXkgdG8gbWFrZSB0
aGlzCiAgICAgICAgICAgICAvLyB3b3JrIGluIHRoZSBsb25nIHRlcm0sIGJ1dCB0aGlzIGlzIHRo
ZSBzYWZlc3QgZml4IGF0IHRoaXMgdGltZS4KICAgICAgICAgICAgIGlmICh0YXJnZXQtPmlzTW91
c2VGb2N1c2FibGUoKSAmJiAhaXNGcmFtZUVsZW1lbnQodGFyZ2V0KSkgewotICAgICAgICAgICAg
ICAgIG1fZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQo
dGFyZ2V0LCBtX2ZyYW1lKTsKKyAgICAgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3Vz
Q29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KHRhcmdldCwgKm1fZnJhbWUpOwogICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRhcmdldCA9IHRh
cmdldC0+cGFyZW50T3JTaGFkb3dIb3N0RWxlbWVudCgpOwogICAgICAgICB9Ci0gICAgICAgIG1f
ZnJhbWUtPmRvY3VtZW50KCktPnNldEZvY3VzZWRFbGVtZW50KDApOworICAgICAgICBtX2ZyYW1l
LT5kb2N1bWVudCgpLT5zZXRGb2N1c2VkRWxlbWVudChudWxscHRyKTsKICAgICB9CiAKICAgICBp
ZiAoY2FyZXRCcm93c2luZykKLSAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xs
ZXIoKS5zZXRGb2N1c2VkRWxlbWVudCgwLCBtX2ZyYW1lKTsKKyAgICAgICAgbV9mcmFtZS0+cGFn
ZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChudWxscHRyLCAqbV9mcmFt
ZSk7CiB9CiAKIHZvaWQgRHJhZ0NhcmV0Q29udHJvbGxlcjo6cGFpbnREcmFnQ2FyZXQoRnJhbWUq
IGZyYW1lLCBHcmFwaGljc0NvbnRleHQmIHAsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNl
dCwgY29uc3QgTGF5b3V0UmVjdCYgY2xpcFJlY3QpIGNvbnN0CkBAIC0yMzI4LDcgKzIzMjgsNyBA
QCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxlY3Rpb24oU2VsZWN0aW9uUmV2ZWFsTW9k
ZSByZXZlYWxNb2RlLCBjb25zdCBTY3JvbAogICAgICAgICAgICAgICAgIGxheWVyLT5zZXRBZGp1
c3RGb3JJT1NDYXJldFdoZW5TY3JvbGxpbmcoZmFsc2UpOwogICAgICAgICAgICAgICAgIHVwZGF0
ZUFwcGVhcmFuY2UoKTsKICAgICAgICAgICAgICAgICBpZiAobV9mcmFtZS0+cGFnZSgpKQotICAg
ICAgICAgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLm5vdGlm
eVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShtX2ZyYW1lKTsKKyAgICAgICAgICAg
ICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5ub3RpZnlSZXZlYWxl
ZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoKm1fZnJhbWUpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRG
cmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAppbmRleCAz
NjMzOThkNmVmY2MxNGM0YjZiYjc1ZjMxMzg3Y2RkN2U3YzU5OWQxLi4yMWYyNGFkMzlmNGE5MTY2
YzhiMTEzY2FlMjcwMGZlOWY0NTFjYThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L0NhY2hlZEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZy
YW1lLmNwcApAQCAtOTgsOSArOTgsOSBAQCB2b2lkIENhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSgp
CiAgICAgZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsK
IAogICAgIC8vIFJlY29uc3RydWN0IHRoZSBGcmFtZVRyZWUuIEFuZCBvcGVuIHRoZSBjaGlsZCBD
YWNoZWRGcmFtZXMgaW4gdGhlaXIgcmVzcGVjdGl2ZSBGcmFtZUxvYWRlcnMuCi0gICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG1fY2hpbGRGcmFtZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
ZnJhbWUudHJlZSgpLmFwcGVuZENoaWxkKCZtX2NoaWxkRnJhbWVzW2ldLT52aWV3KCktPmZyYW1l
KCkpOwotICAgICAgICBtX2NoaWxkRnJhbWVzW2ldLT5vcGVuKCk7CisgICAgZm9yIChhdXRvJiBj
aGlsZEZyYW1lIDogbV9jaGlsZEZyYW1lcykgeworICAgICAgICBmcmFtZS50cmVlKCkuYXBwZW5k
Q2hpbGQoY2hpbGRGcmFtZS0+dmlldygpLT5mcmFtZSgpKTsKKyAgICAgICAgY2hpbGRGcmFtZS0+
b3BlbigpOwogICAgIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTExMSw3ICsxMTEsNyBAQCB2
b2lkIENhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSgpCiAgICAgICAgICAgICAvLyBGSVhNRTogQWRk
IFNDUk9MTF9MSVNURU5FUiB0byB0aGUgbGlzdCBvZiBldmVudCB0eXBlcyBvbiBEb2N1bWVudCwg
YW5kIHVzZSBtX2RvY3VtZW50LT5oYXNMaXN0ZW5lclR5cGUoKS4gU2VlIDxyZGFyOi8vcHJvYmxl
bS85NjE1NDgyPi4KICAgICAgICAgICAgIC8vIEZJWE1FOiBDYW4gdXNlIERvY3VtZW50OjpoYXNM
aXN0ZW5lclR5cGUoKSBub3cuCiAgICAgICAgICAgICBpZiAoZG9tV2luZG93LT5zY3JvbGxFdmVu
dExpc3RlbmVyQ291bnQoKSAmJiBmcmFtZS5wYWdlKCkpCi0gICAgICAgICAgICAgICAgZnJhbWUu
cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoJmZy
YW1lLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBmcmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVu
dCgpLnNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhmcmFtZSwgdHJ1ZSk7CiAgICAgICAgIH0K
ICAgICB9CiAjZW5kaWYKQEAgLTE2Myw3ICsxNjMsNyBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJh
bWUoRnJhbWUmIGZyYW1lKQogICAgIC8vIDEgLSBXZSByZXVzZSB0aGUgbWFpbiBmcmFtZSwgc28g
d2hlbiBpdCBuYXZpZ2F0ZXMgdG8gYSBuZXcgcGFnZSBsb2FkIGl0IG5lZWRzIHRvIHN0YXJ0IHdp
dGggYSBibGFuayBGcmFtZVRyZWUuCiAgICAgLy8gMiAtIEl0J3MgbXVjaCBlYXNpZXIgdG8gZGVz
dHJveSBhIENhY2hlZEZyYW1lIHdoaWxlIGl0IHJlc2lkZXMgaW4gdGhlIFBhZ2VDYWNoZSBpZiBp
dCBpcyBkaXNjb25uZWN0ZWQgZnJvbSBpdHMgcGFyZW50LgogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBtX2NoaWxkRnJhbWVzLnNpemUoKTsgKytpKQotICAgICAgICBmcmFtZS50cmVlKCku
cmVtb3ZlQ2hpbGQoJm1fY2hpbGRGcmFtZXNbaV0tPnZpZXcoKS0+ZnJhbWUoKSk7CisgICAgICAg
IGZyYW1lLnRyZWUoKS5yZW1vdmVDaGlsZChtX2NoaWxkRnJhbWVzW2ldLT52aWV3KCktPmZyYW1l
KCkpOwogCiAgICAgaWYgKCFtX2lzTWFpbkZyYW1lKQogICAgICAgICBmcmFtZS5wYWdlKCktPmRl
Y3JlbWVudFN1YmZyYW1lQ291bnQoKTsKQEAgLTE4MSw3ICsxODEsNyBAQCBDYWNoZWRGcmFtZTo6
Q2FjaGVkRnJhbWUoRnJhbWUmIGZyYW1lKQogICAgIGlmIChtX2lzTWFpbkZyYW1lKSB7CiAgICAg
ICAgIGlmIChET01XaW5kb3cqIGRvbVdpbmRvdyA9IG1fZG9jdW1lbnQtPmRvbVdpbmRvdygpKSB7
CiAgICAgICAgICAgICBpZiAoZG9tV2luZG93LT5zY3JvbGxFdmVudExpc3RlbmVyQ291bnQoKSAm
JiBmcmFtZS5wYWdlKCkpCi0gICAgICAgICAgICAgICAgZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5j
bGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoJmZyYW1lLCBmYWxzZSk7CisgICAg
ICAgICAgICAgICAgZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9s
bE5vdGlmaWNhdGlvbnMoZnJhbWUsIGZhbHNlKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCA1YmEyYzk1NGIyYmQ4OTk1
YmMwYjJiNzJkMmZmY2QzNzkxOTEwN2E2Li41MGUxZmNiMTQzNzEzYTMwYWM5MTUzMzEzYjU4OTMy
NTc5MGQyMWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAtMTU2
LDcgKzE1Niw3IEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQo
RXZlbnQmIGV2ZW50KQogCiAgICAgaWYgKENocm9tZSogY2hyb21lID0gdGhpcy0+Y2hyb21lKCkp
IHsKICAgICAgICAgaWYgKCFtX2Nob29zZXIpCi0gICAgICAgICAgICBtX2Nob29zZXIgPSBjaHJv
bWUtPmNyZWF0ZUNvbG9yQ2hvb3Nlcih0aGlzLCB2YWx1ZUFzQ29sb3IoKSk7CisgICAgICAgICAg
ICBtX2Nob29zZXIgPSBjaHJvbWUtPmNyZWF0ZUNvbG9yQ2hvb3NlcigqdGhpcywgdmFsdWVBc0Nv
bG9yKCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2Nob29zZXItPnJlYXR0YWNoQ29s
b3JDaG9vc2VyKHZhbHVlQXNDb2xvcigpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDgxMWViMGQ1ZDA1YjZhNmM3Njg4NzhkMDNmYzMzYzFj
MjQ5NDZmYjAuLmJhZWI1NzZiMTU2M2ViMzE1N2JiNzJlY2Q4N2I3ODI3MDA5ZWYzMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC0xMjksNyArMTI5LDcg
QEAgYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2
ZW50JiBldmVudCkgY29uc3QKICAgICBpZiAoIWRvY3VtZW50KCkuZnJhbWUoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxl
cigpLnRhYnNUb0xpbmtzKCZldmVudCkpCisgICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCktPmV2
ZW50SGFuZGxlcigpLnRhYnNUb0xpbmtzKGV2ZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgaWYgKCFyZW5kZXJlcigpICYmIGFuY2VzdG9yc09mVHlwZTxIVE1MQ2FudmFzRWxlbWVu
dD4oKnRoaXMpLmZpcnN0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcAppbmRleCBlYThhM2IzM2UwMDI3ODMyZDY3MGY5ZTA5ODdhY2NhOGQzNjhi
YWEyLi42MmMyODYxN2FlMzVkZTY3MzJmZmEwNjYzMzhmZTMxODE2NTQ2Y2E4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTM3MCwxMCAr
MzcwLDkgQEAgYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0
CiAKIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXli
b2FyZEV2ZW50JiBldmVudCkgY29uc3QKIHsKLSAgICBpZiAoaXNGb2N1c2FibGUoKSkKLSAgICAg
ICAgaWYgKGRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgIHJldHVybiBkb2N1bWVudCgp
LmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLnRhYnNUb0FsbEZvcm1Db250cm9scygmZXZlbnQpOwot
ICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNGb2N1c2FibGUoKQorICAgICAgICAmJiBk
b2N1bWVudCgpLmZyYW1lKCkKKyAgICAgICAgJiYgZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhh
bmRsZXIoKS50YWJzVG9BbGxGb3JtQ29udHJvbHMoZXZlbnQpOwogfQogCiBib29sIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKaW5kZXggZDhhNzkzZTMwZWJmMWJjMzNiMWEzMmEyZjJj
ZDFjZjdiOTE4OWRiYy4uYTlkYjkwNTE4ZGU3MTAwZjg2MWFmY2RkYmE2ZDI2NzVhMjBlM2JkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCkBAIC0xNzEsNyArMTcx
LDcgQEAgYm9vbCBIVE1MVmlkZW9FbGVtZW50OjpzdXBwb3J0c0Z1bGxzY3JlZW4oSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW4KICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgLy8gSWYgdGhlIGZ1bGwgc2NyZWVuIEFQSSBpcyBlbmFibGVkIGFuZCBpcyBzdXBwb3J0
ZWQgZm9yIHRoZSBjdXJyZW50IGVsZW1lbnQKICAgICAvLyBkbyBub3QgcmVxdWlyZSB0aGF0IHRo
ZSBwbGF5ZXIgaGFzIGEgdmlkZW8gdHJhY2sgdG8gZW50ZXIgZnVsbCBzY3JlZW4uCi0gICAgaWYg
KHZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlU3RhbmRhcmQgJiYgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxs
U2NyZWVuRm9yRWxlbWVudCh0aGlzLCBmYWxzZSkpCisgICAgaWYgKHZpZGVvRnVsbHNjcmVlbk1v
ZGUgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQg
JiYgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCgq
dGhpcywgZmFsc2UpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKaW5kZXggNThiZDYy
YTM2NDQ3ZjExNDk4YzNkOGM5OTU3ZjFjZDFmNzNiMGU3Ny4uOThiZDcyYmZmMmQwZGY4MDZhYjBh
YmY1MzdiYWU2OTA3MjI4NDgwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1NwaW5CdXR0b25FbGVtZW50LmNwcApAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgU3BpbkJ1dHRv
bkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQogICAgICAgICAgICAg
ICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVt
ZW50KHRoaXMpOwogICAgICAgICAgICAgICAgICAgICBtX2NhcHR1cmluZyA9IHRydWU7CiAgICAg
ICAgICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAg
ICAgICAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5yZWdpc3RlclBvcHVwT3BlbmluZ09i
c2VydmVyKHRoaXMpOworICAgICAgICAgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkucmVn
aXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcigqdGhpcyk7CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgVXBEb3duU3RhdGUgb2xkVXBEb3duU3RhdGUgPSBtX3Vw
RG93blN0YXRlOwpAQCAtMjA1LDcgKzIwNSw3IEBAIHZvaWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OnJl
bGVhc2VDYXB0dXJlKCkKICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZXRDYXB0
dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQobnVsbHB0cik7CiAgICAgICAgICAgICBtX2NhcHR1cmlu
ZyA9IGZhbHNlOwogICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2Uo
KSkKLSAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS51bnJlZ2lzdGVyUG9wdXBPcGVuaW5n
T2JzZXJ2ZXIodGhpcyk7CisgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkudW5yZWdpc3Rl
clBvcHVwT3BlbmluZ09ic2VydmVyKCp0aGlzKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9u
RWxlbWVudE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250
cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCmluZGV4IGZkMGMzZTM2ZjM5MzM0MWRiZGFhMThjMDMx
ZTFiMWU3NDg3ZWZjYzkuLmJhOWJhZGZlNTYyZTRiZmU3ZjllMTRmMGE2YjVlZDE5YjUwYWEzYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xz
QnV0dG9uRWxlbWVudE1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFj
L0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIHZv
aWQgSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZl
bnQmIGV2ZW50KQogICAgICAgICBpZiAoIXBhZ2UpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0ltYWdlQ29udHJvbHNNZW51
KCZldmVudCk7CisgICAgICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dJbWFn
ZUNvbnRyb2xzTWVudShldmVudCk7CiAgICAgICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCmluZGV4IDMxNTQ3ZGI3YWYzYjUzZmQ3ZWI0MjQx
YzcwNTQzZjhmNGI2NmIxN2UuLjc0OTg4Y2I1ZTYwNDg3MjA4ODkzYjAzMTYwMWNiYTgyMzRiYjkz
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZEhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZEhvc3QuY3BwCkBAIC0zMzksOCArMzM5LDggQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6
OnNob3dDb250ZXh0TWVudShFdmVudCogZXZlbnQsIGNvbnN0IFZlY3RvcjxDb250ZXh0TWUKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvIG1lbnVQcm92aWRlciA9IEZyb250ZW5kTWVu
dVByb3ZpZGVyOjpjcmVhdGUodGhpcywgeyAmc3RhdGUsIGZyb250ZW5kQXBpT2JqZWN0IH0sIGl0
ZW1zKTsKLSAgICBtX2Zyb250ZW5kUGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0Nv
bnRleHRNZW51KGV2ZW50LCBtZW51UHJvdmlkZXIucHRyKCkpOwogICAgIG1fbWVudVByb3ZpZGVy
ID0gbWVudVByb3ZpZGVyLnB0cigpOworICAgIG1fZnJvbnRlbmRQYWdlLT5jb250ZXh0TWVudUNv
bnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnUoKmV2ZW50LCBtZW51UHJvdmlkZXIpOwogfQogCiAj
ZW5kaWYKQEAgLTM1NSw3ICszNTUsNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6ZGlz
cGF0Y2hFdmVudEFzQ29udGV4dE1lbnVFdmVudChFdmVudCogZXZlbnQpCiAgICAgTW91c2VFdmVu
dCYgbW91c2VFdmVudCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+KCpldmVudCk7CiAgICAgSW50UG9p
bnQgbW91c2VQb2ludCA9IEludFBvaW50KG1vdXNlRXZlbnQuY2xpZW50WCgpLCBtb3VzZUV2ZW50
LmNsaWVudFkoKSk7CiAKLSAgICBtX2Zyb250ZW5kUGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVy
KCkuc2hvd0NvbnRleHRNZW51QXQoZnJhbWUsIG1vdXNlUG9pbnQpOworICAgIG1fZnJvbnRlbmRQ
YWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnVBdCgqZnJhbWUsIG1v
dXNlUG9pbnQpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZXZlbnQpOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGU3NTQ5NWZkNDI0YzIzZTg5NTM2
Y2E4ZDQzMzkwNTNiZDRlMTFiYmQuLjU3NzkwYjUwY2ZjZGE0YTUyZjBjNGMwMmViNTdhYjIzM2E2
ZDU3YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NzIsMTkg
KzU3MiwxOSBAQCBjbGFzcyBFbXB0eVZpc2l0ZWRMaW5rU3RvcmUgZmluYWwgOiBwdWJsaWMgVmlz
aXRlZExpbmtTdG9yZSB7CiAgICAgdm9pZCBhZGRWaXNpdGVkTGluayhQYWdlJiwgTGlua0hhc2gp
IGZpbmFsIHsgfQogfTsKIAotUmVmUHRyPFBvcHVwTWVudT4gRW1wdHlDaHJvbWVDbGllbnQ6OmNy
ZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdAorUmVmUHRyPFBvcHVwTWVudT4g
RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25z
dAogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5UG9wdXBNZW51KTsKIH0KIAotUmVm
UHRyPFNlYXJjaFBvcHVwTWVudT4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdAorUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gRW1w
dHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBj
b25zdAogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U2VhcmNoUG9wdXBNZW51KTsK
IH0KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogCi1zdGQ6OnVuaXF1ZV9wdHI8Q29s
b3JDaG9vc2VyPiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hv
b3NlckNsaWVudCosIGNvbnN0IENvbG9yJikKK3N0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+
IEVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50
JiwgY29uc3QgQ29sb3ImKQogewogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDkxYzJkMzg2OTAxMGRhNWVhNDNkMDA5Y2QwZjEzZTBi
NzhlN2NmZjUuLmUyYWE2MGVkNzQ4OTM3NDg2OTZlODkxNzAzM2IxY2UwMWYxZDUzMmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTYxLDcgKzYxLDcgQEAgY2xhc3MgRW1w
dHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lkIGZvY3VzZWRF
bGVtZW50Q2hhbmdlZChFbGVtZW50KikgZmluYWwgeyB9CiAgICAgdm9pZCBmb2N1c2VkRnJhbWVD
aGFuZ2VkKEZyYW1lKikgZmluYWwgeyB9CiAKLSAgICBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUq
LCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJikgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIFBhZ2UqIGNy
ZWF0ZVdpbmRvdyhGcmFtZSYsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dG
ZWF0dXJlcyYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbCB7IHJldHVybiBudWxscHRy
OyB9CiAgICAgdm9pZCBzaG93KCkgZmluYWwgeyB9CiAKICAgICBib29sIGNhblJ1bk1vZGFsKCkg
ZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTg0LDE5ICs4NCwxOSBAQCBjbGFzcyBFbXB0eUNo
cm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZvaWQgYWRkTWVzc2FnZVRv
Q29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVuc2ln
bmVkLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CiAKICAgICBib29sIGNhblJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAg
Ym9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiwgRnJhbWUqKSBm
aW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoY29uc3QgU3RyaW5nJiwgRnJhbWUmKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2
b2lkIGNsb3NlV2luZG93U29vbigpIGZpbmFsIHsgfQogCi0gICAgdm9pZCBydW5KYXZhU2NyaXB0
QWxlcnQoRnJhbWUqLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KLSAgICBib29sIHJ1bkphdmFT
Y3JpcHRDb25maXJtKEZyYW1lKiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmLCBTdHJpbmcmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQg
cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CisgICAg
Ym9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiwgY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7
IH0KIAogICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBmaW5h
bCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NN
ZW51V3JpdGluZ0RpcmVjdGlvbigpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBo
YXNPcGVuZWRQb3B1cCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgUmVmUHRy
PFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IGZpbmFs
OwotICAgIFJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFNlYXJj
aFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0
IGZpbmFsOwogCiAgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpIGZpbmFs
IHsgfQogCkBAIC0xMDYsNDMgKzEwNiw0NyBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1
YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZp
ZXcoY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRl
bnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JikgZmluYWwgeyB9CiAgICAgdm9pZCBzY3Jv
bGwoY29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JikgZmluYWwg
eyB9CisKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgdm9pZCBkZWxlZ2F0ZWRT
Y3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmKSBmaW5hbCB7IH0KICNlbmRpZgorCiAjaWYg
IVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKICAgICB2b2lkIHNjaGVkdWxlQW5p
bWF0aW9uKCkgZmluYWwgeyB9CiAjZW5kaWYKIAogICAgIEludFBvaW50IHNjcmVlblRvUm9vdFZp
ZXcoY29uc3QgSW50UG9pbnQmIHApIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHA7IH0KICAgICBJbnRS
ZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcikgY29uc3QgZmluYWwgeyByZXR1
cm4gcjsgfQorCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIEludFBvaW50IGFjY2Vzc2liaWxpdHlT
Y3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JiBwKSBjb25zdCBmaW5hbCB7IHJldHVybiBw
OyB9OwogICAgIEludFJlY3Qgcm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29uc3QgSW50
UmVjdCYgcikgY29uc3QgZmluYWwgeyByZXR1cm4gcjsgfTsKICNlbmRpZgorCiAgICAgUGxhdGZv
cm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDA7
IH0KLSAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJbnRTaXplJikg
Y29uc3QgZmluYWwgeyB9CisgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiwgY29u
c3QgSW50U2l6ZSYpIGNvbnN0IGZpbmFsIHsgfQogCiAgICAgdm9pZCBzY3JvbGxiYXJzTW9kZURp
ZENoYW5nZSgpIGNvbnN0IGZpbmFsIHsgfQogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1l
bnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkKSBmaW5hbCB7IH0KIAogICAgIHZvaWQg
c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSBmaW5hbCB7IH0KIAotICAg
IHZvaWQgcHJpbnQoRnJhbWUqKSBmaW5hbCB7IH0KKyAgICB2b2lkIHByaW50KEZyYW1lJikgZmlu
YWwgeyB9CiAKLSAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0
cmluZyYsIERhdGFiYXNlRGV0YWlscykgZmluYWwgeyB9CisgICAgdm9pZCBleGNlZWRlZERhdGFi
YXNlUXVvdGEoRnJhbWUmLCBjb25zdCBTdHJpbmcmLCBEYXRhYmFzZURldGFpbHMpIGZpbmFsIHsg
fQogCiAgICAgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3QpIGZpbmFsIHsgfQot
ICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdp
biosIGludDY0X3QpIGZpbmFsIHsgfQorICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiYsIGludDY0X3QpIGZpbmFsIHsgfQogCiAjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4g
Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9yJikgZmlu
YWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2Vy
KENvbG9yQ2hvb3NlckNsaWVudCYsIGNvbnN0IENvbG9yJikgZmluYWw7CiAjZW5kaWYKIAogICAg
IHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSBmaW5hbDsKICAgICB2b2lk
IGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciYp
IGZpbmFsIHsgfQogCi0gICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgTm9kZSopIGZpbmFs
IHsgfQotICAgIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9kZSopIGZpbmFsIHsgfQorICAg
IHZvaWQgZWxlbWVudERpZEZvY3VzKEVsZW1lbnQmKSBmaW5hbCB7IH0KKyAgICB2b2lkIGVsZW1l
bnREaWRCbHVyKEVsZW1lbnQmKSBmaW5hbCB7IH0KIAogI2lmICFQTEFURk9STShJT1MpCiAgICAg
dm9pZCBzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJikgZmluYWwgeyB9CkBAIC0xNTEsOCArMTU1LDgg
QEAgY2xhc3MgRW1wdHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKIAogICAg
IHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCBmaW5hbCB7IH0K
IAotICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVy
KikgZmluYWwgeyB9Ci0gICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJh
bWUqLCBHcmFwaGljc0xheWVyKikgZmluYWwgeyB9CisgICAgdm9pZCBhdHRhY2hSb290R3JhcGhp
Y3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSBmaW5hbCB7IH0KKyAgICB2b2lkIGF0dGFj
aFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSBmaW5hbCB7
IH0KICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSBmaW5h
bCB7IH0KICAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgZmluYWwgeyB9
CiAKQEAgLTE2MiwxNSArMTY2LDE2IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGlj
IENocm9tZUNsaWVudCB7CiAgICAgdm9pZCBBWEZpbmlzaEZyYW1lTG9hZCgpIGZpbmFsIHsgfQog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMp
CiAgICAgdm9pZCBkaWRQcmV2ZW50RGVmYXVsdEZvckV2ZW50KCkgZmluYWwgeyB9CiAjZW5kaWYK
KworI2lmIFBMQVRGT1JNKElPUykKICAgICB2b2lkIGRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGJv
b2wpIGZpbmFsIHsgfQotICAgIHZvaWQgc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKEZyYW1l
KiwgYm9vbCkgZmluYWwgeyB9Ci0gICAgdm9pZCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoRnJhbWUq
KSBmaW5hbCB7IH0KLSAgICB2b2lkIGNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhGcmFtZSop
IGZpbmFsIHsgfQotICAgIHZvaWQgbm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0Zy
YW1lKEZyYW1lKikgZmluYWwgeyB9CisgICAgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlv
bnMoRnJhbWUmLCBib29sKSBmaW5hbCB7IH0KKyAgICB2b2lkIG9ic2VydmVkQ29udGVudENoYW5n
ZShGcmFtZSYpIGZpbmFsIHsgfQorICAgIHZvaWQgY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJz
KEZyYW1lJikgZmluYWwgeyB9CisgICAgdm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Ny
b2xsaW5nRnJhbWUoRnJhbWUmKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpZExheW91dChMYXlvdXRU
eXBlKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpZFN0YXJ0T3ZlcmZsb3dTY3JvbGwoKSBmaW5hbCB7
IH0KICAgICB2b2lkIGRpZEVuZE92ZXJmbG93U2Nyb2xsKCkgZmluYWwgeyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAxNGQ0N2RhOTcyZTkyODM2OWFjODEzY2Y5NjE4
NDc0ZjFhZjAwMTg1Li43OGRmZjBjNDNjNWZiMDExYzc4MGE0NDdhOWI2OTJjNDRhZmQ0M2MxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTM5Nyw3ICszOTcsNyBAQCB2
b2lkIEZyYW1lTG9hZGVyOjpzdWJtaXRGb3JtKFJlZjxGb3JtU3VibWlzc2lvbj4mJiBzdWJtaXNz
aW9uKQogCiAgICAgRnJhbWUqIHRhcmdldEZyYW1lID0gZmluZEZyYW1lRm9yTmF2aWdhdGlvbihz
dWJtaXNzaW9uLT50YXJnZXQoKSwgJnN1Ym1pc3Npb24tPnN0YXRlKCkuc291cmNlRG9jdW1lbnQo
KSk7CiAgICAgaWYgKCF0YXJnZXRGcmFtZSkgewotICAgICAgICBpZiAoIURPTVdpbmRvdzo6YWxs
b3dQb3BVcCgmbV9mcmFtZSkgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSgpKQorICAgICAgICBpZiAoIURPTVdpbmRvdzo6YWxsb3dQb3BVcChtX2ZyYW1lKSAmJiAh
U2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKICAgICAgICAgLy8gRklYTUU6IHRhcmdldEZyYW1lIGNhbiBiZSBudWxsIGZvciB0
d28gZGlzdGluY3QgcmVhc29uczoKQEAgLTE4NTIsMTEgKzE4NTIsOSBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQoKQogICAgICAgICBoaXN0b3J5KCkudXBkYXRlRm9y
Q2xpZW50UmVkaXJlY3QoKTsKIAogICAgIGlmIChtX2xvYWRpbmdGcm9tQ2FjaGVkUGFnZSkgewot
I2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgLy8gTm90ZSwgZGlkUmVjZWl2ZURvY1R5cGUgaXMg
ZXhwZWN0ZWQgdG8gYmUgY2FsbGVkIGZvciBjYWNoZWQgcGFnZXMuIFNlZSA8cmRhcjovL3Byb2Js
ZW0vNTkwNjc1OD4gZm9yIG1vcmUgZGV0YWlscy4KLSAgICAgICAgaWYgKG1fZnJhbWUuZG9jdW1l
bnQoKS0+ZG9jdHlwZSgpICYmIG1fZnJhbWUucGFnZSgpKQotICAgICAgICAgICAgbV9mcmFtZS5w
YWdlKCktPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKCZtX2ZyYW1lKTsKLSNlbmRpZgorICAg
ICAgICBpZiAoYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQorICAgICAgICAgICAgcGFnZS0+
Y2hyb21lKCkuZGlkUmVjZWl2ZURvY1R5cGUobV9mcmFtZSk7CiAgICAgICAgIG1fZnJhbWUuZG9j
dW1lbnQoKS0+cmVzdW1lKEFjdGl2ZURPTU9iamVjdDo6UGFnZUNhY2hlKTsKIAogICAgICAgICAv
LyBGb3JjZSBhIGxheW91dCB0byB1cGRhdGUgdmlldyBzaXplIGFuZCB0aGVyZWJ5IHVwZGF0ZSBz
Y3JvbGxiYXJzLgpAQCAtMjQzOSwxNSArMjQzNywxNSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpkZXRh
Y2hDaGlsZHJlbigpCiAgICAgICAgIGNoaWxkLT5sb2FkZXIoKS5kZXRhY2hGcm9tUGFyZW50KCk7
CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNsb3NlQW5kUmVtb3ZlQ2hpbGQoRnJhbWUqIGNoaWxk
KQordm9pZCBGcmFtZUxvYWRlcjo6Y2xvc2VBbmRSZW1vdmVDaGlsZChGcmFtZSYgY2hpbGQpCiB7
Ci0gICAgY2hpbGQtPnRyZWUoKS5kZXRhY2hGcm9tUGFyZW50KCk7CisgICAgY2hpbGQudHJlZSgp
LmRldGFjaEZyb21QYXJlbnQoKTsKIAotICAgIGNoaWxkLT5zZXRWaWV3KG51bGxwdHIpOwotICAg
IGlmIChjaGlsZC0+b3duZXJFbGVtZW50KCkgJiYgY2hpbGQtPnBhZ2UoKSkKLSAgICAgICAgY2hp
bGQtPnBhZ2UoKS0+ZGVjcmVtZW50U3ViZnJhbWVDb3VudCgpOwotICAgIGNoaWxkLT53aWxsRGV0
YWNoUGFnZSgpOwotICAgIGNoaWxkLT5kZXRhY2hGcm9tUGFnZSgpOworICAgIGNoaWxkLnNldFZp
ZXcobnVsbHB0cik7CisgICAgaWYgKGNoaWxkLm93bmVyRWxlbWVudCgpICYmIGNoaWxkLnBhZ2Uo
KSkKKyAgICAgICAgY2hpbGQucGFnZSgpLT5kZWNyZW1lbnRTdWJmcmFtZUNvdW50KCk7CisgICAg
Y2hpbGQud2lsbERldGFjaFBhZ2UoKTsKKyAgICBjaGlsZC5kZXRhY2hGcm9tUGFnZSgpOwogCiAg
ICAgbV9mcmFtZS50cmVlKCkucmVtb3ZlQ2hpbGQoY2hpbGQpOwogfQpAQCAtMjUyOCw3ICsyNTI2
LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGV0YWNoRnJvbVBhcmVudCgpCiAgICAgbV9wcm9ncmVz
c1RyYWNrZXIgPSBudWxscHRyOwogCiAgICAgaWYgKEZyYW1lKiBwYXJlbnQgPSBtX2ZyYW1lLnRy
ZWUoKS5wYXJlbnQoKSkgewotICAgICAgICBwYXJlbnQtPmxvYWRlcigpLmNsb3NlQW5kUmVtb3Zl
Q2hpbGQoJm1fZnJhbWUpOworICAgICAgICBwYXJlbnQtPmxvYWRlcigpLmNsb3NlQW5kUmVtb3Zl
Q2hpbGQobV9mcmFtZSk7CiAgICAgICAgIHBhcmVudC0+bG9hZGVyKCkuc2NoZWR1bGVDaGVja0Nv
bXBsZXRlZCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fZnJhbWUuc2V0VmlldyhudWxscHRy
KTsKQEAgLTMwMzIsNyArMzAzMCw3IEBAIGJvb2wgRnJhbWVMb2FkZXI6OmRpc3BhdGNoQmVmb3Jl
VW5sb2FkRXZlbnQoQ2hyb21lJiBjaHJvbWUsIEZyYW1lTG9hZGVyKiBmcmFtZUxvCiAgICAgZnJh
bWVMb2FkZXJCZWluZ05hdmlnYXRlZC0+bV9jdXJyZW50TmF2aWdhdGlvbkhhc1Nob3duQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsID0gdHJ1ZTsKIAogICAgIFN0cmluZyB0ZXh0ID0gZG9jdW1lbnQt
PmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcoYmVmb3JlVW5sb2FkRXZlbnQtPnJldHVy
blZhbHVlKCkpOwotICAgIHJldHVybiBjaHJvbWUucnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KHRleHQsICZtX2ZyYW1lKTsKKyAgICByZXR1cm4gY2hyb21lLnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCh0ZXh0LCBtX2ZyYW1lKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6Y29udGludWVM
b2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Rm9ybVN0YXRlKiBmb3JtU3RhdGUsIGJvb2wgc2hvdWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlv
blRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpCkBAIC0zNjU3LDcgKzM2
NTUsNyBAQCBSZWZQdHI8RnJhbWU+IGNyZWF0ZVdpbmRvdyhGcmFtZSYgb3BlbmVyRnJhbWUsIEZy
YW1lJiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMbwogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb0FwcGx5KG9wZW5lckZyYW1l
LCByZXF1ZXN0LnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSk7Ci0gICAgUGFnZSogcGFn
ZSA9IG9sZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdygmb3BlbmVyRnJhbWUsIHJlcXVlc3RX
aXRoUmVmZXJyZXIsIGZlYXR1cmVzLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3RXaXRoUmVmZXJy
ZXIucmVzb3VyY2VSZXF1ZXN0KCksIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpKTsKKyAg
ICBQYWdlKiBwYWdlID0gb2xkUGFnZS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KG9wZW5lckZyYW1l
LCByZXF1ZXN0V2l0aFJlZmVycmVyLCBmZWF0dXJlcywgTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0
V2l0aFJlZmVycmVyLnJlc291cmNlUmVxdWVzdCgpLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5KSk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMzcw
NSw3ICszNzAzLDcgQEAgUmVmUHRyPEZyYW1lPiBjcmVhdGVXaW5kb3coRnJhbWUmIG9wZW5lckZy
YW1lLCBGcmFtZSYgbG9va3VwRnJhbWUsIGNvbnN0IEZyYW1lTG8KICAgICAgICAgd2luZG93UmVj
dC5zZXRIZWlnaHQoKmZlYXR1cmVzLmhlaWdodCArICh3aW5kb3dSZWN0LmhlaWdodCgpIC0gdmll
d3BvcnRTaXplLmhlaWdodCgpKSk7CiAKICAgICAvLyBFbnN1cmUgbm9uLU5hTiB2YWx1ZXMsIG1p
bmltdW0gc2l6ZSBhcyB3ZWxsIGFzIGJlaW5nIHdpdGhpbiB2YWxpZCBzY3JlZW4gYXJlYS4KLSAg
ICBGbG9hdFJlY3QgbmV3V2luZG93UmVjdCA9IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChw
YWdlLCB3aW5kb3dSZWN0KTsKKyAgICBGbG9hdFJlY3QgbmV3V2luZG93UmVjdCA9IERPTVdpbmRv
dzo6YWRqdXN0V2luZG93UmVjdCgqcGFnZSwgd2luZG93UmVjdCk7CiAKICAgICBpZiAoIWZyYW1l
LT5wYWdlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaAppbmRleCBmYWEwNzEyZmE0ZDI0Nzg3ZmE1NWQ0ODRjNTQ1NDI2NWJhNTFiNjJiLi5k
NjljODI5YzRlMmY2YWJmOTRjZTFiNDA1NjQ3N2VjNmI5MGI2OThhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuaApAQCAtMzY2LDcgKzM2Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBy
ZXF1ZXN0RnJvbURlbGVnYXRlKFJlc291cmNlUmVxdWVzdCYsIHVuc2lnbmVkIGxvbmcmIGlkZW50
aWZpZXIsIFJlc291cmNlRXJyb3ImKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGV0YWNo
Q2hpbGRyZW4oKTsKLSAgICB2b2lkIGNsb3NlQW5kUmVtb3ZlQ2hpbGQoRnJhbWUqKTsKKyAgICB2
b2lkIGNsb3NlQW5kUmVtb3ZlQ2hpbGQoRnJhbWUmKTsKIAogICAgIHZvaWQgbG9hZEluU2FtZURv
Y3VtZW50KGNvbnN0IFVSTCYsIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc3RhdGVPYmplY3QsIGJv
b2wgaXNOZXdOYXZpZ2F0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BvbGljeUNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIu
Y3BwCmluZGV4IGJiYjYxZWI0ODIxMjE5ODNhYmViNTdiY2U0ZTg0NzM0YjdmZTYyMjMuLmEwMWNl
MjkyOWExMDEwNjAwNGEyNGU3NGE2MDhiOGNkNzY3NjFhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUG9saWN5Q2hlY2tlci5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIFBvbGljeUNoZWNr
ZXI6OmNoZWNrTmV3V2luZG93UG9saWN5KGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwg
Y29uc3QgUgogICAgIGlmIChtX2ZyYW1lLmRvY3VtZW50KCkgJiYgbV9mcmFtZS5kb2N1bWVudCgp
LT5pc1NhbmRib3hlZChTYW5kYm94UG9wdXBzKSkKICAgICAgICAgcmV0dXJuIGNvbnRpbnVlQWZ0
ZXJOYXZpZ2F0aW9uUG9saWN5KFBvbGljeUlnbm9yZSk7CiAKLSAgICBpZiAoIURPTVdpbmRvdzo6
YWxsb3dQb3BVcCgmbV9mcmFtZSkpCisgICAgaWYgKCFET01XaW5kb3c6OmFsbG93UG9wVXAobV9m
cmFtZSkpCiAgICAgICAgIHJldHVybiBjb250aW51ZUFmdGVyTmF2aWdhdGlvblBvbGljeShQb2xp
Y3lJZ25vcmUpOwogCiAgICAgbV9jYWxsYmFjay5zZXQocmVxdWVzdCwgZm9ybVN0YXRlLCBmcmFt
ZU5hbWUsIGFjdGlvbiwgV1RGTW92ZShmdW5jdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCA4
YTI4Zjg4ZTY2NzNkYjE3MDJiMTQ0MTRmYWY3MzhiNWM3NDJmY2VmLi45ZjlhYjAwMGNmNmQ5Mzg1
ZjhhMjU4ZjUxNTFiODcwZjcyOTBkOGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtNzg0LDcgKzc4
NCw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpjYWNoZVVwZGF0ZUZhaWxlZCgpCiAK
IHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpyZWNhbGN1bGF0ZUF2YWlsYWJsZVNwYWNlSW5R
dW90YSgpCiB7Ci0gICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCktPmFwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlKCkuY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hlKG1fb3Jp
Z2luLmdldCgpLCBtX25ld2VzdENhY2hlLmdldCgpLCBtX2F2YWlsYWJsZVNwYWNlSW5RdW90YSkp
IHsKKyAgICBpZiAoIW1fZnJhbWUtPnBhZ2UoKS0+YXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKS5j
YWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUobV9vcmlnaW4sIG1f
bmV3ZXN0Q2FjaGUuZ2V0KCksIG1fYXZhaWxhYmxlU3BhY2VJblF1b3RhKSkgewogICAgICAgICAv
LyBGYWlsZWQgdG8gZGV0ZXJtaW5lIHdoYXQgaXMgbGVmdCBpbiB0aGUgcXVvdGEuIEZhbGxiYWNr
IHRvIGFsbG93aW5nIGFueXRoaW5nLgogICAgICAgICBtX2F2YWlsYWJsZVNwYWNlSW5RdW90YSA9
IEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpub1F1b3RhKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oCmlu
ZGV4IGZjODUxZGE3Y2ZhOGM0MzMyZjY4NWVhMjkxMjJlMzdkNGRiN2FhYTIuLmNlYjgzZGZjNjIx
NmZlNTU4NDI3N2M5ZjlhYWU1NjYwOGQ3YzRkMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmgKQEAgLTY2LDcgKzY2
LDcgQEAgcHVibGljOgogCiAgICAgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UmIHN0b3JhZ2UoKSB7
IHJldHVybiBtX3N0b3JhZ2U7IH0KICAgICBjb25zdCBVUkwmIG1hbmlmZXN0VVJMKCkgY29uc3Qg
eyByZXR1cm4gbV9tYW5pZmVzdFVSTDsgfQotICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbi5nZXQoKTsgfQorICAgIGNvbnN0IFNlY3VyaXR5
T3JpZ2luJiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbi5nZXQoKTsgfQogICAgIFVw
ZGF0ZVN0YXR1cyB1cGRhdGVTdGF0dXMoKSBjb25zdCB7IHJldHVybiBtX3VwZGF0ZVN0YXR1czsg
fQogICAgIHZvaWQgc2V0VXBkYXRlU3RhdHVzKFVwZGF0ZVN0YXR1cyBzdGF0dXMpOwogCkBAIC0x
MzUsNyArMTM1LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U+
IG1fc3RvcmFnZTsKIAogICAgIFVSTCBtX21hbmlmZXN0VVJMOwotICAgIFJlZlB0cjxTZWN1cml0
eU9yaWdpbj4gbV9vcmlnaW47CisgICAgUmVmPFNlY3VyaXR5T3JpZ2luPiBtX29yaWdpbjsKICAg
ICBVcGRhdGVTdGF0dXMgbV91cGRhdGVTdGF0dXMgeyBJZGxlIH07CiAgICAgCiAgICAgLy8gVGhp
cyBpcyB0aGUgbmV3ZXN0IGNvbXBsZXRlIGNhY2hlIGluIHRoZSBncm91cC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2UuY3BwCmluZGV4IGY0ZmE5NWI1MTdlYzc3OTE2MjRmYzBmMjVhNjU2YjBjMDk0NDE0NzcuLmI2
YjlkN2E3Y2Q2M2MwNzZhZTdhODQxMDk5OTgwYjQzZWY4N2I2YWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdl
LmNwcApAQCAtNDIxLDcgKzQyMSw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnNl
dERlZmF1bHRPcmlnaW5RdW90YShpbnQ2NF90IHF1b3RhKQogICAgIG1fZGVmYXVsdE9yaWdpblF1
b3RhID0gcXVvdGE7CiB9CiAKLWJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0
ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGludDY0X3QmIHF1
b3RhKQorYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmln
aW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgaW50NjRfdCYgcXVvdGEpCiB7CiAgICAg
U1FMaXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVy
OwogCkBAIC00MzIsNyArNDMyLDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2Fs
Y3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qIG9yaWcKICAgICBpZiAo
c3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHN0YXRlbWVudC5iaW5kVGV4dCgxLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1
cml0eU9yaWdpbigqb3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CisgICAgc3RhdGVtZW50
LmJpbmRUZXh0KDEsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKG9yaWdp
bikuZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogICAgIGludCByZXN1bHQgPSBzdGF0ZW1lbnQuc3Rl
cCgpOwogCiAgICAgLy8gUmV0dXJuIHRoZSBxdW90YSwgb3IgaWYgaXQgd2FzIG51bGwgdGhlIGRl
ZmF1bHQuCkBAIC00NzIsNyArNDcyLDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6
Y2FsY3VsYXRlVXNhZ2VGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qIG9yaWcKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0
ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShjb25zdCBTZWN1cml0eU9yaWdp
biogb3JpZ2luLCBBcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSwgaW50NjRfdCYgcmVtYWluaW5nU2l6
ZSkKK2Jvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVG
b3JPcmlnaW5FeGNsdWRpbmdDYWNoZShjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBBcHBs
aWNhdGlvbkNhY2hlKiBjYWNoZSwgaW50NjRfdCYgcmVtYWluaW5nU2l6ZSkKIHsKICAgICBTUUxp
dGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7CiAK
QEAgLTUwMyw3ICs1MDMsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjYWxjdWxh
dGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUoY29ucwogICAgIGlmIChzdGF0
ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgc3RhdGVtZW50LmJpbmRUZXh0KDEsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5
T3JpZ2luKCpvcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKKyAgICBzdGF0ZW1lbnQuYmlu
ZFRleHQoMSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3JpZ2luKS5k
YXRhYmFzZUlkZW50aWZpZXIoKSk7CiAgICAgaWYgKGV4Y2x1ZGluZ0NhY2hlSWRlbnRpZmllciAh
PSAwKQogICAgICAgICBzdGF0ZW1lbnQuYmluZEludDY0KDIsIGV4Y2x1ZGluZ0NhY2hlSWRlbnRp
Zmllcik7CiAgICAgaW50IHJlc3VsdCA9IHN0YXRlbWVudC5zdGVwKCk7CkBAIC02ODgsMTQgKzY4
OCwxNCBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzdG9yZShBcHBsaWNhdGlvbkNh
Y2hlR3JvdXAqIGdyb3VwLCBHcm91cFN0b3JhZ2VJRAogCiAgICAgc3RhdGVtZW50LmJpbmRJbnQ2
NCgxLCB1cmxIb3N0SGFzaChncm91cC0+bWFuaWZlc3RVUkwoKSkpOwogICAgIHN0YXRlbWVudC5i
aW5kVGV4dCgyLCBncm91cC0+bWFuaWZlc3RVUkwoKSk7Ci0gICAgc3RhdGVtZW50LmJpbmRUZXh0
KDMsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpncm91cC0+b3JpZ2lu
KCkpLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKKyAgICBzdGF0ZW1lbnQuYmluZFRleHQoMywgU2Vj
dXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oZ3JvdXAtPm9yaWdpbigpKS5kYXRh
YmFzZUlkZW50aWZpZXIoKSk7CiAKICAgICBpZiAoIWV4ZWN1dGVTdGF0ZW1lbnQoc3RhdGVtZW50
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgdW5zaWduZWQgZ3JvdXBTdG9yYWdlSUQg
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9kYXRhYmFzZS5sYXN0SW5zZXJ0Um93SUQoKSk7CiAK
LSAgICBpZiAoIWVuc3VyZU9yaWdpblJlY29yZChncm91cC0+b3JpZ2luKCkpKQorICAgIGlmICgh
ZW5zdXJlT3JpZ2luUmVjb3JkKCZncm91cC0+b3JpZ2luKCkpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBncm91cC0+c2V0U3RvcmFnZUlEKGdyb3VwU3RvcmFnZUlEKTsKQEAgLTk3MSw3
ICs5NzEsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjaGVja09yaWdpblF1b3Rh
KEFwcGxpY2F0aW9uQ2FjaGVHcm91cCogZ3JvdXAsIEFwcAogewogICAgIC8vIENoZWNrIGlmIHRo
ZSBvbGRDYWNoZSB3aXRoIHRoZSBuZXdDYWNoZSB3b3VsZCByZWFjaCB0aGUgcGVyLW9yaWdpbiBx
dW90YS4KICAgICBpbnQ2NF90IHJlbWFpbmluZ1NwYWNlSW5PcmlnaW47Ci0gICAgY29uc3QgU2Vj
dXJpdHlPcmlnaW4qIG9yaWdpbiA9IGdyb3VwLT5vcmlnaW4oKTsKKyAgICBhdXRvJiBvcmlnaW4g
PSBncm91cC0+b3JpZ2luKCk7CiAgICAgaWYgKGNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmln
aW5FeGNsdWRpbmdDYWNoZShvcmlnaW4sIG9sZENhY2hlLCByZW1haW5pbmdTcGFjZUluT3JpZ2lu
KSkgewogICAgICAgICBpZiAocmVtYWluaW5nU3BhY2VJbk9yaWdpbiA8IG5ld0NhY2hlLT5lc3Rp
bWF0ZWRTaXplSW5TdG9yYWdlKCkpIHsKICAgICAgICAgICAgIGludDY0X3QgcXVvdGE7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZS5oCmluZGV4IDlmYTI5MmVlNTBmYWVlODljMzVjODYxYThmOTlmYTE2ZjkwNTQ3NmQu
LjlkMTdhMWJjZDA2YTZhYzExMWEwYWNhYTYwNzY0ZjZiMTU0MDUwZmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZS5oCkBAIC02Myw4ICs2Myw4IEBAIHB1YmxpYzoKICAgICBpbnQ2NF90IGRlZmF1bHRPcmlnaW5R
dW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmYXVsdE9yaWdpblF1b3RhOyB9CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXREZWZhdWx0T3JpZ2luUXVvdGEoaW50NjRfdCBxdW90YSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBjYWxjdWxhdGVVc2FnZUZvck9yaWdpbihjb25zdCBTZWN1cml0
eU9yaWdpbiosIGludDY0X3QmIHVzYWdlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhbGN1
bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCYgcXVvdGEp
OwotICAgIGJvb2wgY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hl
KGNvbnN0IFNlY3VyaXR5T3JpZ2luKiwgQXBwbGljYXRpb25DYWNoZSosIGludDY0X3QmIHJlbWFp
bmluZ1NpemUpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2FsY3VsYXRlUXVvdGFGb3JPcmln
aW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90JiBxdW90YSk7CisgICAgYm9vbCBjYWxj
dWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUoY29uc3QgU2VjdXJpdHlP
cmlnaW4mLCBBcHBsaWNhdGlvbkNhY2hlKiwgaW50NjRfdCYgcmVtYWluaW5nU2l6ZSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBzdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbihjb25zdCBTZWN1
cml0eU9yaWdpbiosIGludDY0X3QgcXVvdGEpOwogICAgIGJvb2wgY2hlY2tPcmlnaW5RdW90YShB
cHBsaWNhdGlvbkNhY2hlR3JvdXAqLCBBcHBsaWNhdGlvbkNhY2hlKiBvbGRDYWNoZSwgQXBwbGlj
YXRpb25DYWNoZSogbmV3Q2FjaGUsIGludDY0X3QmIHRvdGFsU3BhY2VOZWVkZWQpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNw
cAppbmRleCBhOTIxYjA1ZTg0NmEwNWE1YWZjZTYzMDNhYTE4ZjhiZjMwNzA5ZGI0Li4yY2E2N2Uy
N2JlODg0MmNjN2EyMTdkYWE5MjU1ZTgxOGVmOWExOTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAKQEAgLTEzMyw4ICsx
MzMsOCBAQCBSZWZQdHI8TUhUTUxBcmNoaXZlPiBNSFRNTEFyY2hpdmU6OmNyZWF0ZShjb25zdCBV
UkwmIHVybCwgU2hhcmVkQnVmZmVyJiBkYXRhKQogUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gTUhUTUxB
cmNoaXZlOjpnZW5lcmF0ZU1IVE1MRGF0YShQYWdlKiBwYWdlKQogewogICAgIFZlY3RvcjxQYWdl
U2VyaWFsaXplcjo6UmVzb3VyY2U+IHJlc291cmNlczsKLSAgICBQYWdlU2VyaWFsaXplciBwYWdl
U2VyaWFsaXplcigmcmVzb3VyY2VzKTsKLSAgICBwYWdlU2VyaWFsaXplci5zZXJpYWxpemUocGFn
ZSk7CisgICAgUGFnZVNlcmlhbGl6ZXIgcGFnZVNlcmlhbGl6ZXIocmVzb3VyY2VzKTsKKyAgICBw
YWdlU2VyaWFsaXplci5zZXJpYWxpemUoKnBhZ2UpOwogCiAgICAgU3RyaW5nIGJvdW5kYXJ5ID0g
Z2VuZXJhdGVSYW5kb21Cb3VuZGFyeSgpOwogICAgIFN0cmluZyBlbmRPZlJlc291cmNlQm91bmRh
cnkgPSBtYWtlU3RyaW5nKCItLSIsIGJvdW5kYXJ5LCAiXHJcbiIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTEVsZW1lbnQuY3BwCmluZGV4IGUxNTE3NmQzMzE5ZDk0Y2UwYjljOTFmYmJkOGVi
NzM3ODE5NGM4NjQuLmU5NzEzOTYxY2UzYjc0ODg0YTFiM2JlM2U1MGE3MzkwNjIzZjg5ZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAKQEAgLTE4Miw3ICsxODIsNyBA
QCBib29sIE1hdGhNTEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCYg
ZXZlbnQpIGNvbnN0CiAgICAgICAgIHJldHVybiBTdHlsZWRFbGVtZW50Ojppc0tleWJvYXJkRm9j
dXNhYmxlKGV2ZW50KTsKIAogICAgIGlmIChpc0xpbmsoKSkKLSAgICAgICAgcmV0dXJuIGRvY3Vt
ZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoJmV2ZW50KTsKKyAgICAg
ICAgcmV0dXJuIGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3Mo
ZXZlbnQpOwogCiAgICAgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUo
ZXZlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDc0ZGRlMWEzNGUxNWU5MDk3MWFk
MDg2ZTI3MGI5YWE1Njk4ODIxMGIuLmUzNjNmNDNhZGM2ZjViY2U0OTA4NDQwOTc1Mzc0NmFhODYx
ZTg0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTQ4LDcgKzQ4LDYgQEAKICNpbmNsdWRl
ICJTdG9yYWdlTmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNs
dWRlIDxydW50aW1lL1ZNLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTYzLDEw
ICs2Miw2IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBDaHJvbWU6OkNocm9tZShQYWdl
JiBwYWdlLCBDaHJvbWVDbGllbnQmIGNsaWVudCkKICAgICA6IG1fcGFnZShwYWdlKQogICAgICwg
bV9jbGllbnQoY2xpZW50KQotICAgICwgbV9kaXNwbGF5SUQoMCkKLSNpZiBQTEFURk9STShJT1Mp
Ci0gICAgLCBtX2lzRGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkKGZhbHNl
KQotI2VuZGlmCiB7CiB9CiAKQEAgLTExNCw2ICsxMDksNyBAQCBJbnRSZWN0IENocm9tZTo6cm9v
dFZpZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAogfQogICAgIAogI2lmIFBM
QVRGT1JNKElPUykKKwogSW50UG9pbnQgQ2hyb21lOjphY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290
Vmlldyhjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY2xpZW50
LmFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KHBvaW50KTsKQEAgLTEyMyw2ICsxMTksNyBA
QCBJbnRSZWN0IENocm9tZTo6cm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29uc3QgSW50
UmVjdCYgcmVjdCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jbGllbnQucm9vdFZpZXdUb0FjY2Vz
c2liaWxpdHlTY3JlZW4ocmVjdCk7CiB9CisKICNlbmRpZgogCiBQbGF0Zm9ybVBhZ2VDbGllbnQg
Q2hyb21lOjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdApAQCAtMTMwLDcgKzEyNyw3IEBAIFBs
YXRmb3JtUGFnZUNsaWVudCBDaHJvbWU6OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0CiAgICAg
cmV0dXJuIG1fY2xpZW50LnBsYXRmb3JtUGFnZUNsaWVudCgpOwogfQogCi12b2lkIENocm9tZTo6
Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNv
bnN0Cit2b2lkIENocm9tZTo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYgZnJhbWUsIGNvbnN0
IEludFNpemUmIHNpemUpIGNvbnN0CiB7CiAgICAgbV9jbGllbnQuY29udGVudHNTaXplQ2hhbmdl
ZChmcmFtZSwgc2l6ZSk7CiB9CkBAIC0xOTAsMTUgKzE4NywxMyBAQCB2b2lkIENocm9tZTo6Zm9j
dXNlZEZyYW1lQ2hhbmdlZChGcmFtZSogZnJhbWUpIGNvbnN0CiAgICAgbV9jbGllbnQuZm9jdXNl
ZEZyYW1lQ2hhbmdlZChmcmFtZSk7CiB9CiAKLVBhZ2UqIENocm9tZTo6Y3JlYXRlV2luZG93KEZy
YW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2luZG93
RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24pIGNvbnN0
CitQYWdlKiBDaHJvbWU6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9h
ZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uKSBjb25zdAogewogICAgIFBhZ2UqIG5ld1BhZ2UgPSBt
X2NsaWVudC5jcmVhdGVXaW5kb3coZnJhbWUsIHJlcXVlc3QsIGZlYXR1cmVzLCBhY3Rpb24pOwog
ICAgIGlmICghbmV3UGFnZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBpZiAoU3RvcmFnZU5h
bWVzcGFjZSogb2xkU2Vzc2lvblN0b3JhZ2UgPSBtX3BhZ2Uuc2Vzc2lvblN0b3JhZ2UoZmFsc2Up
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoYXV0byogb2xkU2Vzc2lvblN0b3Jh
Z2UgPSBtX3BhZ2Uuc2Vzc2lvblN0b3JhZ2UoZmFsc2UpKQogICAgICAgICBuZXdQYWdlLT5zZXRT
ZXNzaW9uU3RvcmFnZShvbGRTZXNzaW9uU3RvcmFnZS0+Y29weShuZXdQYWdlKSk7Ci0KICAgICBy
ZXR1cm4gbmV3UGFnZTsKIH0KIApAQCAtMjc2LDcgKzI3MSw3IEBAIGJvb2wgQ2hyb21lOjpjYW5S
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKQogICAgIHJldHVybiBtX2NsaWVudC5jYW5SdW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKTsKIH0KIAotYm9vbCBDaHJvbWU6OnJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKiBmcmFtZSkKK2Jv
b2wgQ2hyb21lOjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBGcmFtZSYgZnJhbWUpCiB7CiAgICAgLy8gRGVmZXIgbG9hZHMgaW4gY2FzZSB0aGUgY2xp
ZW50IG1ldGhvZCBydW5zIGEgbmV3IGV2ZW50IGxvb3AgdGhhdCB3b3VsZAogICAgIC8vIG90aGVy
d2lzZSBjYXVzZSB0aGUgbG9hZCB0byBjb250aW51ZSB3aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxl
IG9mIGV4ZWN1dGluZyBKYXZhU2NyaXB0LgpAQCAtMjkwLDUzICsyODUsNDcgQEAgdm9pZCBDaHJv
bWU6OmNsb3NlV2luZG93U29vbigpCiAgICAgbV9jbGllbnQuY2xvc2VXaW5kb3dTb29uKCk7CiB9
CiAKLXZvaWQgQ2hyb21lOjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCit2b2lkIENocm9tZTo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiBm
cmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIC8vIERlZmVyIGxvYWRzIGluIGNh
c2UgdGhlIGNsaWVudCBtZXRob2QgcnVucyBhIG5ldyBldmVudCBsb29wIHRoYXQgd291bGQKICAg
ICAvLyBvdGhlcndpc2UgY2F1c2UgdGhlIGxvYWQgdG8gY29udGludWUgd2hpbGUgd2UncmUgaW4g
dGhlIG1pZGRsZSBvZiBleGVjdXRpbmcgSmF2YVNjcmlwdC4KICAgICBQYWdlR3JvdXBMb2FkRGVm
ZXJyZXIgZGVmZXJyZXIobV9wYWdlLCB0cnVlKTsKIAotICAgIEFTU0VSVChmcmFtZSk7CiAgICAg
bm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7Ci0gICAgU3RyaW5nIGRpc3BsYXlNZXNzYWdl
ID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcobWVzc2FnZSk7CisgICAg
U3RyaW5nIGRpc3BsYXlNZXNzYWdlID0gZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNv
ZGluZyhtZXNzYWdlKTsKIAogICAgIG1fY2xpZW50LnJ1bkphdmFTY3JpcHRBbGVydChmcmFtZSwg
ZGlzcGxheU1lc3NhZ2UpOwogfQogCi1ib29sIENocm9tZTo6cnVuSmF2YVNjcmlwdENvbmZpcm0o
RnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCitib29sIENocm9tZTo6cnVuSmF2
YVNjcmlwdENvbmZpcm0oRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAg
ICAgLy8gRGVmZXIgbG9hZHMgaW4gY2FzZSB0aGUgY2xpZW50IG1ldGhvZCBydW5zIGEgbmV3IGV2
ZW50IGxvb3AgdGhhdCB3b3VsZAogICAgIC8vIG90aGVyd2lzZSBjYXVzZSB0aGUgbG9hZCB0byBj
b250aW51ZSB3aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGV4ZWN1dGluZyBKYXZhU2NyaXB0
LgogICAgIFBhZ2VHcm91cExvYWREZWZlcnJlciBkZWZlcnJlcihtX3BhZ2UsIHRydWUpOwogCi0g
ICAgQVNTRVJUKGZyYW1lKTsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKLSAg
ICBTdHJpbmcgZGlzcGxheU1lc3NhZ2UgPSBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlF
bmNvZGluZyhtZXNzYWdlKTsKLQotICAgIHJldHVybiBtX2NsaWVudC5ydW5KYXZhU2NyaXB0Q29u
ZmlybShmcmFtZSwgZGlzcGxheU1lc3NhZ2UpOworICAgIHJldHVybiBtX2NsaWVudC5ydW5KYXZh
U2NyaXB0Q29uZmlybShmcmFtZSwgZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGlu
ZyhtZXNzYWdlKSk7CiB9CiAKLWJvb2wgQ2hyb21lOjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1l
KiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVl
LCBTdHJpbmcmIHJlc3VsdCkKK2Jvb2wgQ2hyb21lOjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1l
JiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVl
LCBTdHJpbmcmIHJlc3VsdCkKIHsKICAgICAvLyBEZWZlciBsb2FkcyBpbiBjYXNlIHRoZSBjbGll
bnQgbWV0aG9kIHJ1bnMgYSBuZXcgZXZlbnQgbG9vcCB0aGF0IHdvdWxkCiAgICAgLy8gb3RoZXJ3
aXNlIGNhdXNlIHRoZSBsb2FkIHRvIGNvbnRpbnVlIHdoaWxlIHdlJ3JlIGluIHRoZSBtaWRkbGUg
b2YgZXhlY3V0aW5nIEphdmFTY3JpcHQuCiAgICAgUGFnZUdyb3VwTG9hZERlZmVycmVyIGRlZmVy
cmVyKG1fcGFnZSwgdHJ1ZSk7CiAKLSAgICBBU1NFUlQoZnJhbWUpOwogICAgIG5vdGlmeVBvcHVw
T3BlbmluZ09ic2VydmVycygpOwotICAgIFN0cmluZyBkaXNwbGF5UHJvbXB0ID0gZnJhbWUtPmRp
c3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcocHJvbXB0KTsKKyAgICBTdHJpbmcgZGlzcGxh
eVByb21wdCA9IGZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcocHJvbXB0KTsK
IAotICAgIGJvb2wgb2sgPSBtX2NsaWVudC5ydW5KYXZhU2NyaXB0UHJvbXB0KGZyYW1lLCBkaXNw
bGF5UHJvbXB0LCBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhkZWZhdWx0
VmFsdWUpLCByZXN1bHQpOworICAgIGJvb2wgb2sgPSBtX2NsaWVudC5ydW5KYXZhU2NyaXB0UHJv
bXB0KGZyYW1lLCBkaXNwbGF5UHJvbXB0LCBmcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVu
Y29kaW5nKGRlZmF1bHRWYWx1ZSksIHJlc3VsdCk7CiAgICAgaWYgKG9rKQotICAgICAgICByZXN1
bHQgPSBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhyZXN1bHQpOworICAg
ICAgICByZXN1bHQgPSBmcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHJlc3Vs
dCk7CiAKICAgICByZXR1cm4gb2s7CiB9CiAKLXZvaWQgQ2hyb21lOjpzZXRTdGF0dXNiYXJUZXh0
KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBzdGF0dXMpCit2b2lkIENocm9tZTo6c2V0U3Rh
dHVzYmFyVGV4dChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgc3RhdHVzKQogewotICAgIEFT
U0VSVChmcmFtZSk7Ci0gICAgbV9jbGllbnQuc2V0U3RhdHVzYmFyVGV4dChmcmFtZS0+ZGlzcGxh
eVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhzdGF0dXMpKTsKKyAgICBtX2NsaWVudC5zZXRTdGF0
dXNiYXJUZXh0KGZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmcoc3RhdHVzKSk7
CiB9CiAKIHZvaWQgQ2hyb21lOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0
UmVzdWx0JiByZXN1bHQsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpCkBAIC00MDcsOSArMzk2LDkg
QEAgdm9pZCBDaHJvbWU6OnNldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQog
ICAgIG1fY2xpZW50LnNldFRvb2xUaXAodG9vbFRpcCwgdG9vbFRpcERpcmVjdGlvbik7CiB9CiAK
LXZvaWQgQ2hyb21lOjpwcmludChGcmFtZSogZnJhbWUpCit2b2lkIENocm9tZTo6cHJpbnQoRnJh
bWUmIGZyYW1lKQogewotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBoYXZlIFBhZ2VHcm91cExv
YWREZWZlcnJlciwgbGlrZSBydW5Nb2RhbCgpIG9yIHJ1bkphdmFTY3JpcHRBbGVydCgpLCBiZWNh
c3VlIGl0J3Mgbm8gZGlmZmVyZW50IGZyb20gdGhvc2UuCisgICAgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIGhhdmUgUGFnZUdyb3VwTG9hZERlZmVycmVyLCBsaWtlIHJ1bk1vZGFsKCkgb3IgcnVuSmF2
YVNjcmlwdEFsZXJ0KCksIGJlY2F1c2UgaXQncyBubyBkaWZmZXJlbnQgZnJvbSB0aG9zZS4KICAg
ICBtX2NsaWVudC5wcmludChmcmFtZSk7CiB9CiAKQEAgLTQyNCwxMSArNDEzLDEzIEBAIHZvaWQg
Q2hyb21lOjpkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKQogfQogCiAjaWYgRU5BQkxFKElOUFVU
X1RZUEVfQ09MT1IpCi1zdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBDaHJvbWU6OmNyZWF0
ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCwgY29uc3QgQ29sb3ImIGlu
aXRpYWxDb2xvcikKKworc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gQ2hyb21lOjpjcmVh
dGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiBjbGllbnQsIGNvbnN0IENvbG9yJiBp
bml0aWFsQ29sb3IpCiB7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7CiAgICAg
cmV0dXJuIG1fY2xpZW50LmNyZWF0ZUNvbG9yQ2hvb3NlcihjbGllbnQsIGluaXRpYWxDb2xvcik7
CiB9CisKICNlbmRpZgogCiB2b2lkIENocm9tZTo6cnVuT3BlblBhbmVsKEZyYW1lJiBmcmFtZSwg
RmlsZUNob29zZXImIGZpbGVDaG9vc2VyKQpAQCAtNTM4LDEzICs1MjksMTMgQEAgYm9vbCBDaHJv
bWU6Omhhc09wZW5lZFBvcHVwKCkgY29uc3QKICAgICByZXR1cm4gbV9jbGllbnQuaGFzT3BlbmVk
UG9wdXAoKTsKIH0KIAotUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVQb3B1cE1lbnUo
UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWU6
OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKICAgICBu
b3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKICAgICByZXR1cm4gbV9jbGllbnQuY3JlYXRl
UG9wdXBNZW51KGNsaWVudCk7CiB9CiAKLVJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IENocm9tZTo6
Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUmVm
UHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2
ZXJzKCk7CiAgICAgcmV0dXJuIG1fY2xpZW50LmNyZWF0ZVNlYXJjaFBvcHVwTWVudShjbGllbnQp
OwpAQCAtNTU1LDMwICs1NDYsMjcgQEAgYm9vbCBDaHJvbWU6OnJlcXVpcmVzRnVsbHNjcmVlbkZv
clZpZGVvUGxheWJhY2soKQogICAgIHJldHVybiBtX2NsaWVudC5yZXF1aXJlc0Z1bGxzY3JlZW5G
b3JWaWRlb1BsYXliYWNrKCk7CiB9CiAKLSNpZiBQTEFURk9STShJT1MpCi0vLyBGSVhNRTogTWFr
ZSBhcmd1bWVudCwgZnJhbWUsIGEgcmVmZXJlbmNlLgotdm9pZCBDaHJvbWU6OmRpZFJlY2VpdmVE
b2NUeXBlKEZyYW1lKiBmcmFtZSkKK3ZvaWQgQ2hyb21lOjpkaWRSZWNlaXZlRG9jVHlwZShGcmFt
ZSYgZnJhbWUpCiB7Ci0gICAgQVNTRVJUKGZyYW1lKTsKLSAgICBpZiAoIWZyYW1lLT5pc01haW5G
cmFtZSgpKQorI2lmICFQTEFURk9STShJT1MpCisgICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKKyNl
bHNlCisgICAgaWYgKCFmcmFtZS5pc01haW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBib29sIGhhc01vYmlsZURvY1R5cGUgPSBmYWxzZTsKLSAgICBpZiAoRG9jdW1lbnRUeXBlKiBk
b2N1bWVudFR5cGUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9jdHlwZSgpKQotICAgICAgICBoYXNN
b2JpbGVEb2NUeXBlID0gZG9jdW1lbnRUeXBlLT5wdWJsaWNJZCgpLmNvbnRhaW5zKCJ4aHRtbCBt
b2JpbGUiLCBmYWxzZSk7Ci0gICAgbV9jbGllbnQuZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoaGFz
TW9iaWxlRG9jVHlwZSk7Ci19CisgICAgYXV0byogZG9jdHlwZSA9IGZyYW1lLmRvY3VtZW50KCkt
PmRvY3R5cGUoKTsKKyAgICBtX2NsaWVudC5kaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShkb2N0eXBl
ICYmIGRvY3R5cGUtPnB1YmxpY0lkKCkuY29udGFpbnNJZ25vcmluZ0FTQ0lJQ2FzZSgieGh0bWwg
bW9iaWxlIikpOwogI2VuZGlmCit9CiAKLXZvaWQgQ2hyb21lOjpyZWdpc3RlclBvcHVwT3Blbmlu
Z09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyKiBvYnNlcnZlcikKK3ZvaWQgQ2hyb21lOjpy
ZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyJiBvYnNlcnZl
cikKIHsKLSAgICBBU1NFUlQob2JzZXJ2ZXIpOwotICAgIG1fcG9wdXBPcGVuaW5nT2JzZXJ2ZXJz
LmFwcGVuZChvYnNlcnZlcik7CisgICAgbV9wb3B1cE9wZW5pbmdPYnNlcnZlcnMuYXBwZW5kKCZv
YnNlcnZlcik7CiB9CiAKLXZvaWQgQ2hyb21lOjp1bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2
ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXIqIG9ic2VydmVyKQordm9pZCBDaHJvbWU6OnVucmVnaXN0
ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7
Ci0gICAgYm9vbCByZW1vdmVkID0gbV9wb3B1cE9wZW5pbmdPYnNlcnZlcnMucmVtb3ZlRmlyc3Qo
b2JzZXJ2ZXIpOworICAgIGJvb2wgcmVtb3ZlZCA9IG1fcG9wdXBPcGVuaW5nT2JzZXJ2ZXJzLnJl
bW92ZUZpcnN0KCZvYnNlcnZlcik7CiAgICAgQVNTRVJUX1VOVVNFRChyZW1vdmVkLCByZW1vdmVk
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggNmQyNWFjODkxNjAwZjIxODRhNjU0ZGFkMzIy
NmQ0NmM4MTkzMmE2Ni4uYjNjNDY0N2MxYWU5NTAwNTIwNzgzNDllMDc2YTI5YjBlNmFkYzZjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oCkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdDsKIAotICAgIHZvaWQgY29u
dGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNvbnN0IEludFNpemUmKSBjb25zdDsKKyAgICB2b2lk
IGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3Q7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JikgY29u
c3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgRmxvYXRSZWN0IHdpbmRvd1JlY3QoKSBjb25zdDsKQEAg
LTExMSw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb2N1c2VkRWxlbWVudENoYW5nZWQo
RWxlbWVudCopIGNvbnN0OwogICAgIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSopIGNv
bnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lKiwgY29u
c3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdh
dGlvbkFjdGlvbiYpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2UqIGNyZWF0ZVdpbmRv
dyhGcmFtZSYsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYs
IGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNob3coKSBjb25zdDsKIAogICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBjb25zdDsKQEAgLTEzMiwy
NiArMTMyLDI2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlc2l6YWJsZShib29sKSBjb25zdDsK
IAogICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCk7Ci0gICAgYm9vbCBy
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSop
OworICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgRnJhbWUmKTsKIAogICAgIHZvaWQgY2xvc2VXaW5kb3dTb29uKCk7CiAKLSAgICB2b2lk
IHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmluZyYpOwotICAgIGJvb2wgcnVu
SmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmKTsKLSAgICBib29sIHJ1bkph
dmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRTdGF0dXNiYXJUZXh0KEZyYW1lKiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBydW5K
YXZhU2NyaXB0QWxlcnQoRnJhbWUmLCBjb25zdCBTdHJpbmcmKTsKKyAgICBib29sIHJ1bkphdmFT
Y3JpcHRDb25maXJtKEZyYW1lJiwgY29uc3QgU3RyaW5nJik7CisgICAgYm9vbCBydW5KYXZhU2Ny
aXB0UHJvbXB0KEZyYW1lJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
ZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
U3RhdHVzYmFyVGV4dChGcmFtZSYsIGNvbnN0IFN0cmluZyYpOwogCiAgICAgdm9pZCBtb3VzZURp
ZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJG
bGFncyk7CiAKICAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYpOwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcmludChGcmFtZSopOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcHJpbnQoRnJhbWUmKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5hYmxlU3Vk
ZGVuVGVybWluYXRpb24oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc2FibGVTdWRkZW5U
ZXJtaW5hdGlvbigpOwogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgc3RkOjp1
bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNs
aWVudCosIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxD
b2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmLCBjb25z
dCBDb2xvciYgaW5pdGlhbENvbG9yKTsKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwo
RnJhbWUmLCBGaWxlQ2hvb3NlciYpOwpAQCAtMTY4LDI4ICsxNjgsMjggQEAgcHVibGljOgogICAg
IGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKICAgICBib29sIHNl
bGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKICAgICBib29s
IGhhc09wZW5lZFBvcHVwKCkgY29uc3Q7Ci0gICAgUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwotICAgIFJlZlB0cjxTZWFyY2hQb3B1cE1l
bnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICBS
ZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JikgY29uc3Q7
CisgICAgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVw
TWVudUNsaWVudCYpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIC8vIEZJWE1FOiBD
YW4gd2UgY29tZSB1cCB3aXRoIGEgYmV0dGVyIG5hbWUgZm9yIHRoaXMgc2V0dGVyPwogICAgIHZv
aWQgc2V0RGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkKGJvb2wgZGlzcGF0
Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkKSB7IG1faXNEaXNwYXRjaFZpZXdwb3J0
RGF0YURpZENoYW5nZVN1cHByZXNzZWQgPSBkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZVN1
cHByZXNzZWQ7IH0KLQotICAgIHZvaWQgZGlkUmVjZWl2ZURvY1R5cGUoRnJhbWUqKTsKICNlbmRp
ZgogCi0gICAgdm9pZCByZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09i
c2VydmVyKik7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBP
cGVuaW5nT2JzZXJ2ZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEb2NUeXBlKEZyYW1lJik7CisK
KyAgICB2b2lkIHJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2
ZXImKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5p
bmdPYnNlcnZlciYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgbm90aWZ5UG9wdXBPcGVuaW5nT2Jz
ZXJ2ZXJzKCkgY29uc3Q7CiAKICAgICBQYWdlJiBtX3BhZ2U7CiAgICAgQ2hyb21lQ2xpZW50JiBt
X2NsaWVudDsKLSAgICBQbGF0Zm9ybURpc3BsYXlJRCBtX2Rpc3BsYXlJRDsKKyAgICBQbGF0Zm9y
bURpc3BsYXlJRCBtX2Rpc3BsYXlJRCB7IDAgfTsKICAgICBWZWN0b3I8UG9wdXBPcGVuaW5nT2Jz
ZXJ2ZXIqPiBtX3BvcHVwT3BlbmluZ09ic2VydmVyczsKICNpZiBQTEFURk9STShJT1MpCi0gICAg
Ym9vbCBtX2lzRGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkOworICAgIGJv
b2wgbV9pc0Rpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlU3VwcHJlc3NlZCB7IGZhbHNlIH07
CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDJjODliNmNi
YTUwNjgwYjk3MmRjNTVmYzRiMjRjNDg5MGZhZWI4MjQuLjhhMTYzOTFmYmI4NmJjY2I3NGZmZTVj
NDFmZjVhNTg2NmNlN2VhNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTIz
LDcgKzEyMyw3IEBAIHB1YmxpYzoKICAgICAvLyBjcmVhdGVkIFBhZ2UgaGFzIGl0cyBzaG93IG1l
dGhvZCBjYWxsZWQuCiAgICAgLy8gVGhlIEZyYW1lTG9hZFJlcXVlc3QgcGFyYW1ldGVyIGlzIG9u
bHkgZm9yIENocm9tZUNsaWVudCB0byBjaGVjayBpZiB0aGUKICAgICAvLyByZXF1ZXN0IGNvdWxk
IGJlIGZ1bGZpbGxlZC4gVGhlIENocm9tZUNsaWVudCBzaG91bGQgbm90IGxvYWQgdGhlIHJlcXVl
c3QuCi0gICAgdmlydHVhbCBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxv
YWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9u
JikgPSAwOworICAgIHZpcnR1YWwgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lJiwgY29uc3QgRnJh
bWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFj
dGlvbiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvdygpID0gMDsKIAogICAgIHZpcnR1YWwg
Ym9vbCBjYW5SdW5Nb2RhbCgpID0gMDsKQEAgLTE0Niw2MyArMTQ2LDY3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWdu
ZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSA9IDA7CiAKICAgICB2aXJ0
dWFsIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgPSAwOwotICAgIHZpcnR1
YWwgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBGcmFtZSopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZv
aWQgY2xvc2VXaW5kb3dTb29uKCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3Jp
cHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgcnVu
SmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVh
bCBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmLCBjb25zdCBTdHJpbmcmKSA9IDA7
CisgICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiwgY29uc3QgU3Ry
aW5nJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5n
JiByZXN1bHQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBT
dHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCBLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgp
ID0gMDsKIAotICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0ltbWVkaWF0ZUludmFsaWRhdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRS
ZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Ny
b2xsKGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJ
bnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKSA9IDA7CisKICNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgdmlydHVhbCB2b2lkIGRlbGVnYXRlZFNjcm9sbFJl
cXVlc3RlZChjb25zdCBJbnRQb2ludCYpID0gMDsKICNlbmRpZgorCiAgICAgdmlydHVhbCBJbnRQ
b2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JikgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgSW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdCA9IDA7
CisKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBJbnRQb2ludCBhY2Nlc3NpYmlsaXR5
U2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IEludFJlY3Qgcm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29uc3QgSW50UmVjdCYpIGNv
bnN0ID0gMDsKICNlbmRpZiAgICAKKwogICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBs
YXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFy
c01vZGVEaWRDaGFuZ2UoKSBjb25zdCA9IDA7CisKICNpZiBFTkFCTEUoQ1VSU09SX1NVUFBPUlQp
CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSA9IDA7CiAjZW5k
aWYKKwogI2lmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCiAgICAgdmlydHVh
bCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgPSAwOwogI2VuZGlmCi0gICAgLy8gRW5kIG1ldGhv
ZHMgdXNlZCBieSBIb3N0V2luZG93LgogCi0gICAgdmlydHVhbCBGbG9hdFNpemUgc2NyZWVuU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Q2hyb21lQ2xpZW50Kj4odGhpcyktPndpbmRv
d1JlY3QoKS5zaXplKCk7IH0KLSAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBhdmFpbGFibGVTY3JlZW5T
aXplKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxDaHJvbWVDbGllbnQqPih0aGlzKS0+d2lu
ZG93UmVjdCgpLnNpemUoKTsgfQorICAgIHZpcnR1YWwgRmxvYXRTaXplIHNjcmVlblNpemUoKSBj
b25zdCB7IHJldHVybiBjb25zdF9jYXN0PENocm9tZUNsaWVudCY+KCp0aGlzKS53aW5kb3dSZWN0
KCkuc2l6ZSgpOyB9CisgICAgdmlydHVhbCBGbG9hdFNpemUgYXZhaWxhYmxlU2NyZWVuU2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Q2hyb21lQ2xpZW50Jj4oKnRoaXMpLndpbmRvd1Jl
Y3QoKS5zaXplKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFZpZXdwb3J0UHJvcGVy
dGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYpIGNvbnN0IHsgfQogCi0gICAg
dmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJbnRTaXplJikg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiwg
Y29uc3QgSW50U2l6ZSYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdElu
dG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCB7IH07IC8vIEN1cnJlbnRseSBvbmx5IE1hYyBo
YXMgYSBub24gZW1wdHkgaW1wbGVtZW50YXRpb24uCiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
VW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBs
dWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZp
cnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCosIFJlbmRl
ckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50Jiwg
UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVz
dFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpID0gMDsKIAogICAgIHZpcnR1YWwgdm9p
ZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rpb24pID0gMDsKIAotICAgIHZp
cnR1YWwgdm9pZCBwcmludChGcmFtZSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJh
bWUmKSA9IDA7CiAKICAgICB2aXJ0dWFsIENvbG9yIHVuZGVybGF5Q29sb3IoKSBjb25zdCB7IHJl
dHVybiBDb2xvcigpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFnZUV4dGVuZGVkQmFja2dyb3Vu
ZENvbG9yRGlkQ2hhbmdlKENvbG9yKSBjb25zdCB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBleGNl
ZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0
YWJhc2VEZXRhaWxzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90
YShGcmFtZSYsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMpID0g
MDsKIAogICAgIC8vIENhbGxiYWNrIGludm9rZWQgd2hlbiB0aGUgYXBwbGljYXRpb24gY2FjaGUg
ZmFpbHMgdG8gc2F2ZSBhIGNhY2hlIG9iamVjdAogICAgIC8vIGJlY2F1c2Ugc3RvcmluZyBpdCB3
b3VsZCBncm93IHRoZSBkYXRhYmFzZSBmaWxlIHBhc3QgaXRzIGRlZmluZWQgbWF4aW11bQpAQCAt
MjE5LDcgKzIyMyw3IEBAIHB1YmxpYzoKICAgICAvLyBzdG9yYWdlLCBpbiBieXRlcywgbmVlZGVk
IHRvIHN0b3JlIHRoZSBuZXcgY2FjaGUgYWxvbmcgd2l0aCBhbGwgb2YgdGhlCiAgICAgLy8gb3Ro
ZXIgZXhpc3RpbmcgY2FjaGVzIGZvciB0aGUgb3JpZ2luIHRoYXQgd291bGQgbm90IGJlIHJlcGxh
Y2VkIGJ5CiAgICAgLy8gdGhlIG5ldyBjYWNoZS4KLSAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxT
cGFjZU5lZWRlZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSA9
IDA7CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgdmlydHVhbCB2b2lkIGFu
bm90YXRlZFJlZ2lvbnNDaGFuZ2VkKCk7CkBAIC0yMzYsMTAgKzI0MCwxMCBAQCBwdWJsaWM6CiAK
ICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNb2JpbGVEb2NU
eXBlKGJvb2wpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRp
b25zKEZyYW1lKiwgYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBvYnNlcnZlZENvbnRlbnRD
aGFuZ2UoRnJhbWUqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyQ29udGVudENoYW5nZU9i
c2VydmVycyhGcmFtZSopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UmV2ZWFsZWRTZWxl
Y3Rpb25CeVNjcm9sbGluZ0ZyYW1lKEZyYW1lKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRO
ZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoRnJhbWUmLCBib29sKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShGcmFtZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKEZyYW1lJikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoRnJhbWUmKSA9IDA7CiAK
ICAgICBlbnVtIExheW91dFR5cGUgeyBOb3JtYWxMYXlvdXQsIFNjcm9sbCB9OwogICAgIHZpcnR1
YWwgdm9pZCBkaWRMYXlvdXQoTGF5b3V0VHlwZSA9IE5vcm1hbExheW91dCkgPSAwOwpAQCAtMjcw
LDE2ICsyNzQsMTYgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9D
T0xPUikKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNv
bG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYpID0gMDsKKyAgICB2
aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihD
b2xvckNob29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYpID0gMDsKICNlbmRpZgogCiAgICAgdmly
dHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJikgPSAwOwogICAgIC8v
IEFzeW5jaHJvbm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Igc3BlY2lmaWVkIGZpbGVu
YW1lcy4KICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYsIEZpbGVJY29uTG9hZGVyJikgPSAwOwogICAgICAgICAKLSAgICB2aXJ0dWFsIHZvaWQg
ZWxlbWVudERpZEZvY3VzKGNvbnN0IE5vZGUqKSB7IH07Ci0gICAgdmlydHVhbCB2b2lkIGVsZW1l
bnREaWRCbHVyKGNvbnN0IE5vZGUqKSB7IH07Ci0gICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRS
ZWZvY3VzKGNvbnN0IE5vZGUqKSB7IH07CisgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRGb2N1
cyhFbGVtZW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKEVsZW1lbnQm
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZFJlZm9jdXMoRWxlbWVudCYpIHsgfQog
ICAgIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQYWludEVudGlyZUNvbnRlbnRzKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFzU3RhYmxlUGFnZVNjYWxlRmFj
dG9yKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMjkxLDkgKzI5NSw5IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlS
ZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsg
fQogI2VuZGlmCiAKLSAgICAvLyBQYXNzIDAgYXMgdGhlIEdyYXBoaWNzTGF5ZXIgdG8gZGV0YXRj
aCB0aGUgcm9vdCBsYXllci4KLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5
ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hW
aWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikgPSAwOworICAg
IC8vIFBhc3MgbnVsbHB0ciBhcyB0aGUgR3JhcGhpY3NMYXllciB0byBkZXRhdGNoIHRoZSByb290
IGxheWVyLgorICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSYs
IEdyYXBoaWNzTGF5ZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFZpZXdPdmVybGF5
R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSA9IDA7CiAgICAgLy8gU2V0cyBh
IGZsYWcgdG8gc3BlY2lmeSB0aGF0IHRoZSBuZXh0IHRpbWUgY29udGVudCBpcyBkcmF3biB0byB0
aGUgd2luZG93LAogICAgIC8vIHRoZSBjaGFuZ2VzIGFwcGVhciBvbiB0aGUgc2NyZWVuIGluIHN5
bmNocm9ueSB3aXRoIHVwZGF0ZXMgdG8gR3JhcGhpY3NMYXllcnMuCiAgICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSA9IDA7CkBAIC0zMjUsMjYg
KzMyOSwyOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgYWRqdXN0TGF5ZXJGbHVzaFRo
cm90dGxpbmcoTGF5ZXJGbHVzaFRocm90dGxlU3RhdGU6OkZsYWdzKSB7IHJldHVybiBmYWxzZTsg
fQogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGVT
Y3JvbGxpbmdDb29yZGluYXRvcihQYWdlKikgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQorICAg
IHZpcnR1YWwgUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdDb29y
ZGluYXRvcihQYWdlJikgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogCiAjaWYgUExBVEZPUk0o
V0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotICAgIHZpcnR1YWwgR3JhcGhpY3NEZXZpY2VBZGFw
dGVyKiBncmFwaGljc0RldmljZUFkYXB0ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmly
dHVhbCBHcmFwaGljc0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2aWNlQWRhcHRlcigpIGNvbnN0
IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
VmlkZW9GdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9k
ZSkgeyByZXR1cm4gZmFsc2U7IH0KKwogI2lmIEVOQUJMRShWSURFTykKICAgICB2aXJ0dWFsIHZv
aWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYs
IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHNldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXIoSFRNTE1lZGlhRWxlbWVudCYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBjbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkgeyB9
CiAjZW5kaWYKLSAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxl
bWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGV4
aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6OkhUTUxWaWRl
b0VsZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgLyp0
YXJnZXRNb2RlKi8pIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5G
b3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBl
eGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihIVE1MVmlkZW9FbGVtZW50
JiwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSB7IH0KICAgICB2
aXJ0dWFsIGJvb2wgcmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpIHsgcmV0dXJu
IGZhbHNlOyB9IAogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQqLCBib29sKSB7IHJl
dHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KEVsZW1lbnQqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
KEVsZW1lbnQqKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxl
bWVudChjb25zdCBFbGVtZW50JiwgYm9vbCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50JikgeyB9CisgICAgdmlydHVh
bCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50JikgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHNldFJvb3RGdWxsU2NyZWVuTGF5ZXIoR3JhcGhpY3NMYXllciopIHsgfQogI2VuZGlm
CiAKQEAgLTM1Myw3ICszNTksNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIHZpcnR1YWwgTlNSZXNwb25kZXIgKmZpcnN0UmVzcG9uZGVyKCkgeyByZXR1cm4g
MDsgfQorICAgIHZpcnR1YWwgTlNSZXNwb25kZXIgKmZpcnN0UmVzcG9uZGVyKCkgeyByZXR1cm4g
bnVsbHB0cjsgfQogICAgIHZpcnR1YWwgdm9pZCBtYWtlRmlyc3RSZXNwb25kZXIoTlNSZXNwb25k
ZXIgKikgeyB9CiAgICAgLy8gRm9jdXNlcyBvbiB0aGUgY29udGFpbmluZyB2aWV3IGFzc29jaWF0
ZWQgd2l0aCB0aGlzIHBhZ2UuCiAgICAgdmlydHVhbCB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcigp
IHsgfQpAQCAtMzc3LDEwICszODMsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzZWxl
Y3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgPSAwOwogICAgIC8v
IENoZWNrcyBpZiB0aGVyZSBpcyBhbiBvcGVuZWQgcG9wdXAsIGNhbGxlZCBieSBSZW5kZXJNZW51
TGlzdDo6c2hvd1BvcHVwKCkuCiAgICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29u
c3QgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBv
cHVwTWVudUNsaWVudCopIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxTZWFyY2hQb3B1
cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4g
Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0ID0gMDsKIAotICAg
IHZpcnR1YWwgdm9pZCBwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiwgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24pIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Jiwg
QVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24pIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIG5v
dGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgSW50UmVjdCYpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKFNjcm9sbGJh
clN0eWxlKSB7IH0KQEAgLTQwOCwxNiArNDE0LDE2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+
JikgeyB9OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkgeyBy
ZXR1cm4gZmFsc2U7IH07CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkSGVhZGVyTGF5ZXIoR3Jh
cGhpY3NMYXllciopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRGb290ZXJMYXllcihHcmFw
aGljc0xheWVyKikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhlYWRlckxheWVyKEdyYXBo
aWNzTGF5ZXImKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoR3JhcGhp
Y3NMYXllciYpIHsgfQogCi0gICAgdmlydHVhbCBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0Zv
ckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJh
bWVWaWV3JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBpc1Bs
YXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MsIHVpbnQ2
NF90KSB7IH0KIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIHZpcnR1YWwgdm9pZCBo
YXNNZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50c0RpZENoYW5nZShib29sKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoY29uc3QgV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uTWV0YWRhdGEmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFT
ZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoY29uc3QgTWVkaWFTZXNzaW9uTWV0YWRhdGEmKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZENvbnRlbnRNZWRpYUVsZW1lbnREaWRDaGFuZ2UodWlu
dDY0X3QpIHsgfQogI2VuZGlmCiAKQEAgLTQyNywxMSArNDMzLDEyIEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKFRFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAmJiBQTEFURk9STShN
QUMpCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGNvbnN0IFN0
cmluZyYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGhh
bmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGNvbnN0IFN0cmluZyYsIGNvbnN0IEludFBvaW50Jikg
eyB9CiAjZW5kaWYKKwogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb24m
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgeyB9Ci0g
ICAgdmlydHVhbCBib29sIGhhc1JlbGV2YW50U2VsZWN0aW9uU2VydmljZXMoYm9vbCAvKiBpc1Rl
eHRPbmx5ICovKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5k
bGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soRnJhbWVTZWxlY3Rpb24mLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYsIGNvbnN0IEludFBvaW50JikgeyB9CisgICAgdmlydHVhbCBib29sIGhhc1JlbGV2YW50
U2VsZWN0aW9uU2VydmljZXMoYm9vbCAvKmlzVGV4dE9ubHkqLykgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZERpc3BhdGNoRmFrZU1vdXNl
TW92ZUV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KQEAgLTQ0MSwxMyArNDQ4LDEzIEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIHZpcnR1
YWwgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCAvKmNvbnRleHRJ
ZCovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGll
bnQodWludDY0X3QgLypjb250ZXh0SWQqLykgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNob3dQbGF5
YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCAvKmNvbnRleHRJZCovLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYsIGJvb2wgLyogaXNWaWRlbyAqLykgeyB9CisgICAgdmlydHVhbCB2b2lkIHNob3dQ
bGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCAvKmNvbnRleHRJZCovLCBjb25zdCBJbnRQb2lu
dCYsIGJvb2wgLyppc1ZpZGVvKi8pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVpbnQ2NF90IC8qY29udGV4dElkKi8sIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldE1vY2tN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKSAgeyB9Ci0gICAgdmlydHVhbCB2
b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwg
V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0YXRlKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJp
bmcmLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3RhdGUpIHsgfQogI2VuZGlmCiAKLSAg
ICB2aXJ0dWFsIHZvaWQgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZChjb25zdCBXZWJD
b3JlOjpJbnRTaXplJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGltYWdlT3JNZWRpYURvY3VtZW50
U2l6ZUNoYW5nZWQoY29uc3QgSW50U2l6ZSYpIHsgfQogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBV
U0UoR1NUUkVBTUVSKQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRp
YVBsdWdpbnMoY29uc3QgU3RyaW5nJiAvKmRldGFpbHMqLywgY29uc3QgU3RyaW5nJiAvKmRlc2Ny
aXB0aW9uKi8sIE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNr
JikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAK
aW5kZXggMGU3YTc3YjZkYTI4OWEwMjU2OTM1MzRhZDFmYzRkNTEwOWM1MGYzMy4uYzFjNDk0ODQw
MjgzODQ5ZjE1MmJiMjc0NWY4YTFiNDYwNmVlZDNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAtOTQsNyArOTQsNyBAQCB2b2lkIENvbnRl
eHRNZW51Q29udHJvbGxlcjo6Y2xlYXJDb250ZXh0TWVudSgpCiAgICAgbV9tZW51UHJvdmlkZXIg
PSBudWxscHRyOwogfQogCi12b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6aGFuZGxlQ29udGV4
dE1lbnVFdmVudChFdmVudCogZXZlbnQpCit2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6aGFu
ZGxlQ29udGV4dE1lbnVFdmVudChFdmVudCYgZXZlbnQpCiB7CiAgICAgbV9jb250ZXh0TWVudSA9
IG1heWJlQ3JlYXRlQ29udGV4dE1lbnUoZXZlbnQpOwogICAgIGlmICghbV9jb250ZXh0TWVudSkK
QEAgLTExMCw5ICsxMTAsOSBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51SXRl
bT4gc2VwYXJhdG9ySXRlbSgpCiAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVu
dUl0ZW0+KG5ldyBDb250ZXh0TWVudUl0ZW0oU2VwYXJhdG9yVHlwZSwgQ29udGV4dE1lbnVJdGVt
VGFnTm9BY3Rpb24sIFN0cmluZygpKSk7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVy
OjpzaG93Q29udGV4dE1lbnUoRXZlbnQqIGV2ZW50LCBQYXNzUmVmUHRyPENvbnRleHRNZW51UHJv
dmlkZXI+IG1lbnVQcm92aWRlcikKK3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29u
dGV4dE1lbnUoRXZlbnQmIGV2ZW50LCBDb250ZXh0TWVudVByb3ZpZGVyJiBwcm92aWRlcikKIHsK
LSAgICBtX21lbnVQcm92aWRlciA9IG1lbnVQcm92aWRlcjsKKyAgICBtX21lbnVQcm92aWRlciA9
ICZwcm92aWRlcjsKIAogICAgIG1fY29udGV4dE1lbnUgPSBtYXliZUNyZWF0ZUNvbnRleHRNZW51
KGV2ZW50KTsKICAgICBpZiAoIW1fY29udGV4dE1lbnUpIHsKQEAgLTEyMCw3ICsxMjAsNyBAQCB2
b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50KiBldmVudCwg
UGFzc1JlZlB0cjxDb250ZXh0TWVudQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9t
ZW51UHJvdmlkZXItPnBvcHVsYXRlQ29udGV4dE1lbnUobV9jb250ZXh0TWVudS5nZXQoKSk7Cisg
ICAgcHJvdmlkZXIucG9wdWxhdGVDb250ZXh0TWVudShtX2NvbnRleHRNZW51LmdldCgpKTsKICAg
ICBpZiAobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5pc1NlbGVjdGVkKCkpIHsKICAgICAgICAg
YXBwZW5kSXRlbSgqc2VwYXJhdG9ySXRlbSgpLCBtX2NvbnRleHRNZW51LmdldCgpKTsKICAgICAg
ICAgcG9wdWxhdGUoKTsKQEAgLTEyOSwzMyArMTI5LDM0IEBAIHZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZlbnQqIGV2ZW50LCBQYXNzUmVmUHRyPENvbnRleHRN
ZW51CiB9CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKwogc3RhdGljIEltYWdlKiBp
bWFnZUZyb21JbWFnZUVsZW1lbnROb2RlKE5vZGUmIG5vZGUpCiB7Ci0gICAgUmVuZGVyT2JqZWN0
KiByZW5kZXJlciA9IG5vZGUucmVuZGVyZXIoKTsKKyAgICBhdXRvKiByZW5kZXJlciA9IG5vZGUu
cmVuZGVyZXIoKTsKICAgICBpZiAoIWlzPFJlbmRlckltYWdlPihyZW5kZXJlcikpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwotICAgIENhY2hlZEltYWdlKiBpbWFnZSA9IGRvd25jYXN0PFJlbmRl
ckltYWdlPigqcmVuZGVyZXIpLmNhY2hlZEltYWdlKCk7CisgICAgYXV0byogaW1hZ2UgPSBkb3du
Y2FzdDxSZW5kZXJJbWFnZT4oKnJlbmRlcmVyKS5jYWNoZWRJbWFnZSgpOwogICAgIGlmICghaW1h
Z2UgfHwgaW1hZ2UtPmVycm9yT2NjdXJyZWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
ICAgICByZXR1cm4gaW1hZ2UtPmltYWdlRm9yUmVuZGVyZXIocmVuZGVyZXIpOwogfQorCiAjZW5k
aWYKIAotc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6
Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQqIGV2ZW50KQorc3RkOjp1bmlxdWVfcHRyPENv
bnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUo
RXZlbnQmIGV2ZW50KQogewotICAgIEFTU0VSVChldmVudCk7Ci0gICAgCi0gICAgaWYgKCFpczxN
b3VzZUV2ZW50PigqZXZlbnQpKQorICAgIGlmICghaXM8TW91c2VFdmVudD4oZXZlbnQpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIE1vdXNlRXZlbnQmIG1vdXNlRXZlbnQgPSBkb3du
Y2FzdDxNb3VzZUV2ZW50PigqZXZlbnQpOwotICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KG1vdXNl
RXZlbnQuYWJzb2x1dGVMb2NhdGlvbigpKTsKKyAgICBhdXRvJiBtb3VzZUV2ZW50ID0gZG93bmNh
c3Q8TW91c2VFdmVudD4oZXZlbnQpOworICAgIGF1dG8qIG5vZGUgPSBtb3VzZUV2ZW50LnRhcmdl
dCgpLT50b05vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIGF1dG8qIGZyYW1lID0gbm9kZS0+ZG9jdW1lbnQoKS5mcmFtZSgpOworICAgIGlmICghZnJh
bWUpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgTm9kZSogbm9kZSA9IGV2ZW50LT50
YXJnZXQoKS0+dG9Ob2RlKCk7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50
KCkuZnJhbWUoKSkKLSAgICAgICAgcmVzdWx0ID0gZnJhbWUtPmV2ZW50SGFuZGxlcigpLmhpdFRl
c3RSZXN1bHRBdFBvaW50KG1vdXNlRXZlbnQuYWJzb2x1dGVMb2NhdGlvbigpKTsKLSAgICAKKyAg
ICBhdXRvIHJlc3VsdCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2lu
dChtb3VzZUV2ZW50LmFic29sdXRlTG9jYXRpb24oKSk7CiAgICAgaWYgKCFyZXN1bHQuaW5uZXJO
b25TaGFyZWROb2RlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC0xNjMsNyArMTY0
LDcgQEAgc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6
Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRS
T0xTKQogICAgIGlmIChub2RlLT5pc0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50KCkpIHsKLSAg
ICAgICAgaWYgKEltYWdlKiBpbWFnZSA9IGltYWdlRnJvbUltYWdlRWxlbWVudE5vZGUoKnJlc3Vs
dC5pbm5lck5vblNoYXJlZE5vZGUoKSkpCisgICAgICAgIGlmIChhdXRvKiBpbWFnZSA9IGltYWdl
RnJvbUltYWdlRWxlbWVudE5vZGUoKnJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSkpCiAgICAg
ICAgICAgICBtX2NvbnRleHQuc2V0Q29udHJvbGxlZEltYWdlKGltYWdlKTsKIAogICAgICAgICAv
LyBGSVhNRTogSWYgd2UgY291bGRuJ3QgZ2V0IHRoZSBpbWFnZSB0aGVuIHdlIHNob3VsZG4ndCB0
cnkgdG8gc2hvdyB0aGUgaW1hZ2UgY29udHJvbHMgbWVudSBmb3IgaXQuCkBAIC0xNzEsMjQgKzE3
MiwyNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IENvbnRleHRNZW51Q29udHJvbGxl
cjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudAogICAgIH0KICNlbmRpZgogCi0gICAgcmV0
dXJuIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4obmV3IENvbnRleHRNZW51KTsKKyAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDb250ZXh0TWVudT4oKTsKIH0KIAotdm9pZCBDb250ZXh0
TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCogZXZlbnQpCit2b2lkIENvbnRl
eHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50JiBldmVudCkKIHsKICAgICBp
ZiAobV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5lbmFibGVkKCkpCiAgICAgICAgIGFkZElu
c3BlY3RFbGVtZW50SXRlbSgpOwogCi0gICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Cisg
ICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKIH0KIAotc3RhdGljIHZvaWQgb3Blbk5ld1dp
bmRvdyhjb25zdCBVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCitzdGF0aWMgdm9pZCBv
cGVuTmV3V2luZG93KGNvbnN0IFVSTCYgdXJsVG9Mb2FkLCBGcmFtZSYgZnJhbWUsIFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKIHsKLSAg
ICBQYWdlKiBvbGRQYWdlID0gZnJhbWUtPnBhZ2UoKTsKKyAgICBQYWdlKiBvbGRQYWdlID0gZnJh
bWUucGFnZSgpOwogICAgIGlmICghb2xkUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRnJh
bWVMb2FkUmVxdWVzdCByZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
LCBSZXNvdXJjZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFtZS0+bG9hZGVyKCkub3V0Z29pbmdSZWZl
cnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVT
ZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9w
ZW5lclBvbGljeTo6U3VwcHJlc3MsIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOworICAg
IEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChmcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdp
bigpLCBSZXNvdXJjZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFtZS5sb2FkZXIoKS5vdXRnb2luZ1Jl
ZmVycmVyKCkpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXli
ZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1l
T3BlbmVyUG9saWN5OjpTdXBwcmVzcywgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAK
ICAgICBQYWdlKiBuZXdQYWdlID0gb2xkUGFnZS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KGZyYW1l
LCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QucmVz
b3VyY2VSZXF1ZXN0KCkpKTsKICAgICBpZiAoIW5ld1BhZ2UpCkBAIC0xOTgsMTUgKzE5OSwxNyBA
QCBzdGF0aWMgdm9pZCBvcGVuTmV3V2luZG93KGNvbnN0IFVSTCYgdXJsVG9Mb2FkLCBGcmFtZSog
ZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbAogfQogCiAjaWYgUExBVEZPUk0oR1RLKQotc3RhdGlj
IHZvaWQgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihVQ2hhciBjaGFyYWN0ZXIsIEZyYW1lKiBmcmFt
ZSkKKworc3RhdGljIHZvaWQgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihVQ2hhciBjaGFyYWN0ZXIs
IEZyYW1lJiBmcmFtZSkKIHsKICAgICBTdHJpbmcgdGV4dCgmY2hhcmFjdGVyLCAxKTsKLSAgICBp
ZiAoIWZyYW1lLT5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KHRleHQsIGZyYW1lLT5zZWxlY3Rp
b24oKS50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OlR5cGVk
KSkKKyAgICBpZiAoIWZyYW1lLmVkaXRvcigpLnNob3VsZEluc2VydFRleHQodGV4dCwgZnJhbWUu
c2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9u
OjpUeXBlZCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVChmcmFtZS0+ZG9jdW1lbnQo
KSk7Ci0gICAgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dCgqZnJhbWUtPmRvY3VtZW50KCksIHRl
eHQsIDAsIFR5cGluZ0NvbW1hbmQ6OlRleHRDb21wb3NpdGlvbk5vbmUpOworICAgIEFTU0VSVChm
cmFtZS5kb2N1bWVudCgpKTsKKyAgICBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KCpmcmFtZS5k
b2N1bWVudCgpLCB0ZXh0LCAwLCBUeXBpbmdDb21tYW5kOjpUZXh0Q29tcG9zaXRpb25Ob25lKTsK
IH0KKwogI2VuZGlmCiAKIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0
ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUp
CkBAIC0yMjUsNyArMjI4LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRN
ZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KIAogICAgIHN3aXRj
aCAoYWN0aW9uKSB7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2lu
ZG93OgotICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJz
b2x1dGVMaW5rVVJMKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91
bGRBbGxvd0V4dGVybmFsU2NoZW1lcyk7CisgICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0
LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvd0V4dGVybmFsU2NoZW1lcyk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrOgogICAg
ICAgICAvLyBGSVhNRTogU29tZSBkYXkgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZG8gdGhpcyBmcm9t
IHdpdGhpbiBXZWJDb3JlLiAoQnVnIDExNzcwOSkKQEAgLTIzNSw3ICsyMzgsNyBAQCB2b2lkIENv
bnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVB
Y3Rpb24gYWN0aW9uLCBjbwogICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuY29weVVSTChtX2NvbnRl
eHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBtX2NvbnRleHQuaGl0VGVzdFJl
c3VsdCgpLnRleHRDb250ZW50KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRN
ZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93OgotICAgICAgICBvcGVuTmV3V2luZG93KG1f
Y29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVJbWFnZVVSTCgpLCBmcmFtZSwgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOworICAgICAgICBvcGVuTmV3
V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVJbWFnZVVSTCgpLCAqZnJh
bWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNr
OgogICAgICAgICAvLyBGSVhNRTogU29tZSBkYXkgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZG8gdGhp
cyBmcm9tIHdpdGhpbiBXZWJDb3JlLiAoQnVnIDExNzcwOSkKQEAgLTI1Miw3ICsyNTUsNyBAQCB2
b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4
dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwogICAgICAgICBicmVhazsKICNlbmRpZgogICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3c6Ci0gICAgICAgIG9wZW5OZXdX
aW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZU1lZGlhVVJMKCksIGZyYW1l
LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgICAg
IG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZU1lZGlhVVJM
KCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTWVk
aWFUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIGRheSB3ZSBzaG91bGQgYmUgYWJsZSB0
byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUuIChCdWcgMTE3NzA5KQpAQCAtMjg1LDkgKzI4
OCw5IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3Rl
ZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1U
YWdPcGVuRnJhbWVJbk5ld1dpbmRvdzogewogICAgICAgICBEb2N1bWVudExvYWRlciogbG9hZGVy
ID0gZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCk7CiAgICAgICAgIGlmICghbG9hZGVy
LT51bnJlYWNoYWJsZVVSTCgpLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG9wZW5OZXdXaW5kb3co
bG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeTo6U2hvdWxkTm90QWxsb3cpOworICAgICAgICAgICAgb3Blbk5ld1dpbmRvdyhsb2FkZXIt
PnVucmVhY2hhYmxlVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6
U2hvdWxkTm90QWxsb3cpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBvcGVuTmV3V2luZG93
KGxvYWRlci0+dXJsKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91
bGROb3RBbGxvdyk7CisgICAgICAgICAgICBvcGVuTmV3V2luZG93KGxvYWRlci0+dXJsKCksICpm
cmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5OgpAQCAt
MzE4LDM0ICszMjEsMzQgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51
SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KICAgICAgICAgZnJhbWUt
PmVkaXRvcigpLnBlcmZvcm1EZWxldGUoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250
ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0TFJNTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29k
ZUNoYXJhY3RlcihsZWZ0VG9SaWdodE1hcmssIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29k
ZUNoYXJhY3RlcihsZWZ0VG9SaWdodE1hcmssICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydFJMTU1hcms6Ci0gICAgICAgIGlu
c2VydFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRNYXJrLCBmcmFtZSk7CisgICAgICAgIGlu
c2VydFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRNYXJrLCAqZnJhbWUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRMUkVNYXJrOgot
ICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0RW1iZWQsIGZyYW1lKTsK
KyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9SaWdodEVtYmVkLCAqZnJhbWUp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNl
cnRSTEVNYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHJpZ2h0VG9MZWZ0RW1i
ZWQsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdodFRvTGVmdEVt
YmVkLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z1VuaWNvZGVJbnNlcnRMUk9NYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxl
ZnRUb1JpZ2h0T3ZlcnJpZGUsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rl
cihsZWZ0VG9SaWdodE92ZXJyaWRlLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRSTE9NYXJrOgotICAgICAgICBpbnNlcnRV
bmljb2RlQ2hhcmFjdGVyKHJpZ2h0VG9MZWZ0T3ZlcnJpZGUsIGZyYW1lKTsKKyAgICAgICAgaW5z
ZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdodFRvTGVmdE92ZXJyaWRlLCAqZnJhbWUpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRQREZNYXJr
OgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHBvcERpcmVjdGlvbmFsRm9ybWF0dGlu
ZywgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHBvcERpcmVjdGlvbmFs
Rm9ybWF0dGluZywgKmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdVbmljb2RlSW5zZXJ0WldTTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJh
Y3Rlcih6ZXJvV2lkdGhTcGFjZSwgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFj
dGVyKHplcm9XaWR0aFNwYWNlLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRaV0pNYXJrOgotICAgICAgICBpbnNlcnRVbmlj
b2RlQ2hhcmFjdGVyKHplcm9XaWR0aEpvaW5lciwgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmlj
b2RlQ2hhcmFjdGVyKHplcm9XaWR0aEpvaW5lciwgKmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0WldOSk1hcms6Ci0gICAgICAg
IGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoTm9uSm9pbmVyLCBmcmFtZSk7CisgICAg
ICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoTm9uSm9pbmVyLCAqZnJhbWUpOwog
ICAgICAgICBicmVhazsKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZM
KQpAQCAtMzkzLDcgKzM5Niw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0
TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgICAgIGlm
IChGcmFtZSogdGFyZ2V0RnJhbWUgPSBtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLnRhcmdldEZy
YW1lKCkpCiAgICAgICAgICAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCkubG9hZEZyYW1lUmVxdWVz
dChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBS
ZXNvdXJjZVJlcXVlc3QobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwo
KSwgZnJhbWUtPmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSksIExvY2tIaXN0b3J5OjpObywg
TG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRp
b25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzLCB0YXJn
ZXRGcmFtZS0+aXNNYWluRnJhbWUoKSA/IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNo
b3VsZEFsbG93IDogU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cp
LCBudWxscHRyLCBudWxscHRyKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgb3Blbk5ld1dp
bmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFtZSwg
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3cpOworICAgICAgICAgICAg
b3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgp
LCAqZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdCb2xkOgogICAgICAgICBm
cmFtZS0+ZWRpdG9yKCkuY29tbWFuZCgiVG9nZ2xlQm9sZCIpLmV4ZWN1dGUoKTsKQEAgLTE0Mjks
MjYgKzE0MzIsMzAgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNoZWNrT3JFbmFibGVJ
Zk5lZWRlZChDb250ZXh0TWVudUl0ZW0mIGl0ZW0pIGNvbnN0CiB9CiAKICNpZiBVU0UoQUNDRVNT
SUJJTElUWV9DT05URVhUX01FTlVTKQotdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dD
b250ZXh0TWVudUF0KEZyYW1lKiBmcmFtZSwgY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQpCisK
K3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnVBdChGcmFtZSYgZnJh
bWUsIGNvbnN0IEludFBvaW50JiBjbGlja1BvaW50KQogewogICAgIGNsZWFyQ29udGV4dE1lbnUo
KTsKICAgICAKICAgICAvLyBTaW11bGF0ZSBhIGNsaWNrIGluIHRoZSBtaWRkbGUgb2YgdGhlIGFj
Y2Vzc2liaWxpdHkgb2JqZWN0LgogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KGNs
aWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVBy
ZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBGb3Jj
ZUF0Q2xpY2ssIE5vVGFwKTsKLSAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQ
cmVzc0V2ZW50KG1vdXNlRXZlbnQpOwotICAgIGJvb2wgaGFuZGxlZCA9IGZyYW1lLT5ldmVudEhh
bmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKKyAgICBmcmFtZS5ldmVu
dEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VFdmVudCk7CisgICAgYm9vbCBo
YW5kbGVkID0gZnJhbWUuZXZlbnRIYW5kbGVyKCkuc2VuZENvbnRleHRNZW51RXZlbnQobW91c2VF
dmVudCk7CiAgICAgaWYgKGhhbmRsZWQpCiAgICAgICAgIG1fY2xpZW50LnNob3dDb250ZXh0TWVu
dSgpOwogfQorCiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotdm9pZCBD
b250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dJbWFnZUNvbnRyb2xzTWVudShFdmVudCogZXZlbnQp
CisKK3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93SW1hZ2VDb250cm9sc01lbnUoRXZl
bnQmIGV2ZW50KQogewogICAgIGNsZWFyQ29udGV4dE1lbnUoKTsKICAgICBoYW5kbGVDb250ZXh0
TWVudUV2ZW50KGV2ZW50KTsKICAgICBtX2NsaWVudC5zaG93Q29udGV4dE1lbnUoKTsKIH0KKwog
I2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5oCmluZGV4IDExMjU2ZTFjZTc5YWIxZTdiMzIxNThmNzg0ZGM3
ODgxMzY0NzRkOGQuLmY2Mzk2NDhiMTg2MjA0NjA2ZWZjYTU2YTkwNzgyYzg5MzdhMGU5NTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwy
MSArMjksMTYgQEAKIAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udGV4dC5oIgogI2luY2x1ZGUg
IkNvbnRleHRNZW51SXRlbS5oIgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIENvbnRleHRNZW51OwogY2xhc3MgQ29udGV4dE1lbnVDbGll
bnQ7Ci1jbGFzcyBDb250ZXh0TWVudUl0ZW07CiBjbGFzcyBDb250ZXh0TWVudVByb3ZpZGVyOwog
Y2xhc3MgRXZlbnQ7CiBjbGFzcyBQYWdlOwogCiBjbGFzcyBDb250ZXh0TWVudUNvbnRyb2xsZXIg
ewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnRleHRNZW51Q29udHJvbGxlcik7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIENvbnRleHRNZW51Q29udHJvbGxlcihQYWdlJiwgQ29udGV4dE1lbnVDbGllbnQmKTsK
ICAgICB+Q29udGV4dE1lbnVDb250cm9sbGVyKCk7CkBAIC01NCw4ICs0OSw4IEBAIHB1YmxpYzoK
ICAgICBDb250ZXh0TWVudSogY29udGV4dE1lbnUoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRN
ZW51LmdldCgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhckNvbnRleHRNZW51KCk7
CiAKLSAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZlbnQqKTsKLSAgICB2b2lkIHNo
b3dDb250ZXh0TWVudShFdmVudCosIFBhc3NSZWZQdHI8Q29udGV4dE1lbnVQcm92aWRlcj4pOwor
ICAgIHZvaWQgaGFuZGxlQ29udGV4dE1lbnVFdmVudChFdmVudCYpOworICAgIHZvaWQgc2hvd0Nv
bnRleHRNZW51KEV2ZW50JiwgQ29udGV4dE1lbnVQcm92aWRlciYpOwogCiAgICAgdm9pZCBwb3B1
bGF0ZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQo
Q29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUpOwpAQCAtNjgsMTYgKzYzLDE2
IEBAIHB1YmxpYzoKICAgICBjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWx0KCkgY29u
c3QgeyByZXR1cm4gbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKTsgfQogCiAjaWYgVVNFKEFDQ0VT
U0lCSUxJVFlfQ09OVEVYVF9NRU5VUykKLSAgICB2b2lkIHNob3dDb250ZXh0TWVudUF0KEZyYW1l
KiwgY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQpOworICAgIHZvaWQgc2hvd0NvbnRleHRNZW51
QXQoRnJhbWUmLCBjb25zdCBJbnRQb2ludCYgY2xpY2tQb2ludCk7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIHZvaWQgc2hvd0ltYWdlQ29udHJvbHNNZW51KEV2
ZW50Kik7CisgICAgdm9pZCBzaG93SW1hZ2VDb250cm9sc01lbnUoRXZlbnQmKTsKICNlbmRpZgog
CiBwcml2YXRlOgotICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gbWF5YmVDcmVhdGVD
b250ZXh0TWVudShFdmVudCopOwotICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KEV2ZW50Kik7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBtYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2
ZW50Jik7CisgICAgdm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQmKTsKICAgICAKICAgICB2b2lk
IGFwcGVuZEl0ZW0oQ29udGV4dE1lbnVJdGVtJiwgQ29udGV4dE1lbnUqIHBhcmVudE1lbnUpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCmluZGV4IDhjMjczODFhZDY5YmMyZWFiOTIzMmYyOGFh
NTc2MDUwM2I2ZGIxOGQuLjZiYjg5NjFkOWNlODI4YTk4MjU0MjU5MDAxMjZmOGU1YmRhN2MzNDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCkBAIC0zNjEsNyArMzYxLDcgQEAgdm9pZCBET01U
aW1lcjo6ZmlyZWQoKQogICAgICAgICBpZiAoV0tPYnNlcnZlZENvbnRlbnRDaGFuZ2UoKSA9PSBX
S0NvbnRlbnRWaXNpYmlsaXR5Q2hhbmdlIHx8IHNob3VsZFJlcG9ydExhY2tPZkNoYW5nZXMpIHsK
ICAgICAgICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihjb250
ZXh0KTsKICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKQotICAg
ICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLm9ic2VydmVkQ29udGVudENoYW5n
ZShkb2N1bWVudC5mcmFtZSgpKTsKKyAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGll
bnQoKS5vYnNlcnZlZENvbnRlbnRDaGFuZ2UoKmRvY3VtZW50LmZyYW1lKCkpOwogICAgICAgICB9
CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggOTY5OTY1MDM4
YTI2NWRkNzE4MDhjNmFmZGYwYjIwZGQ1MmViNjRhNC4uNjI2OTY3MzA5YTVhNzNhMzg3MzhjMDE3
OGUyYmM2NjFmYjMwYzI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTAsIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApAQCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiQmFyUHJvcC5oIgotI2luY2x1ZGUgIkJlZm9yZVVubG9hZEV2ZW50
LmgiCiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAi
Q1NTUnVsZS5oIgogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCkBAIC0xMjUsMjIgKzEyNCwyMyBA
QAogI2luY2x1ZGUgIldlYktpdE5hbWVzcGFjZS5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoUFJP
WElNSVRZX0VWRU5UUykKLSNpbmNsdWRlICJEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmgiCi0j
ZW5kaWYKLQogI2lmIEVOQUJMRShHQU1FUEFEKQogI2luY2x1ZGUgIkdhbWVwYWRNYW5hZ2VyLmgi
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyNpbmNsdWRlICJOYXZpZ2F0b3JH
ZW9sb2NhdGlvbi5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogI2luY2x1
ZGUgIlBvaW50ZXJMb2NrQ29udHJvbGxlci5oIgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1Mp
Ci0jaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQotI2luY2x1ZGUgIk5hdmlnYXRvckdlb2xvY2F0aW9u
LmgiCisjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisjaW5jbHVkZSAiRGV2aWNlUHJveGlt
aXR5Q29udHJvbGxlci5oIgogI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpCiAjaW5jbHVkZSAi
V0tDb250ZW50T2JzZXJ2YXRpb24uaCIKICNlbmRpZgogCkBAIC0xNTAsOSArMTUwLDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQb3N0TWVzc2FnZVRpbWVyIDogcHVibGljIFRpbWVy
QmFzZSB7CiBwdWJsaWM6Ci0gICAgUG9zdE1lc3NhZ2VUaW1lcihET01XaW5kb3cmIHdpbmRvdywg
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlT3JpZ2luLCBET01XaW5kb3cmIHNvdXJjZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQ
b3J0Q2hhbm5lbEFycmF5PiBjaGFubmVscywgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHRhcmdl
dE9yaWdpbiwgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4mJiBzdGFja1RyYWNlKQorICAgIFBvc3RN
ZXNzYWdlVGltZXIoRE9NV2luZG93JiB3aW5kb3csIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
JiYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIERPTVdpbmRvdyYgc291cmNl
LCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzLCBSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+JiYgdGFyZ2V0T3JpZ2luLCBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
PiYmIHN0YWNrVHJhY2UpCiAgICAgICAgIDogbV93aW5kb3cod2luZG93KQotICAgICAgICAsIG1f
bWVzc2FnZShtZXNzYWdlKQorICAgICAgICAsIG1fbWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKQog
ICAgICAgICAsIG1fb3JpZ2luKHNvdXJjZU9yaWdpbikKICAgICAgICAgLCBtX3NvdXJjZShzb3Vy
Y2UpCiAgICAgICAgICwgbV9jaGFubmVscyhXVEZNb3ZlKGNoYW5uZWxzKSkKQEAgLTE4MSw3ICsx
ODEsNyBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIFJlZjxET01XaW5kb3c+IG1fd2luZG93Owot
ICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fbWVzc2FnZTsKKyAgICBSZWY8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiBtX21lc3NhZ2U7CiAgICAgU3RyaW5nIG1fb3JpZ2luOwogICAg
IFJlZjxET01XaW5kb3c+IG1fc291cmNlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9y
dENoYW5uZWxBcnJheT4gbV9jaGFubmVsczsKQEAgLTMyNSwxMiArMzI1LDEwIEBAIHZvaWQgRE9N
V2luZG93OjpkaXNwYXRjaEFsbFBlbmRpbmdVbmxvYWRFdmVudHMoKQogLy8gMykgQ29uc3RyYWlu
cyB0aGUgd2luZG93IHJlY3QgdG8gd2l0aGluIHRoZSB0b3AgYW5kIGxlZnQgYm91bmRhcmllcyBv
ZiB0aGUgYXZhaWxhYmxlIHNjcmVlbiByZWN0LgogLy8gNCkgQ29uc3RyYWlucyB0aGUgd2luZG93
IHJlY3QgdG8gd2l0aGluIHRoZSBib3R0b20gYW5kIHJpZ2h0IGJvdW5kYXJpZXMgb2YgdGhlIGF2
YWlsYWJsZSBzY3JlZW4gcmVjdC4KIC8vIDUpIFRyYW5zbGF0ZSB0aGUgd2luZG93IHJlY3QgY29v
cmRpbmF0ZXMgdG8gYmUgd2l0aGluIHRoZSBjb29yZGluYXRlIHNwYWNlIG9mIHRoZSBzY3JlZW4u
Ci1GbG9hdFJlY3QgRE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0KFBhZ2UqIHBhZ2UsIGNvbnN0
IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5nZXMpCitGbG9hdFJlY3QgRE9NV2luZG93OjphZGp1c3RX
aW5kb3dSZWN0KFBhZ2UmIHBhZ2UsIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5nZXMpCiB7
Ci0gICAgQVNTRVJUKHBhZ2UpOwotCi0gICAgRmxvYXRSZWN0IHNjcmVlbiA9IHNjcmVlbkF2YWls
YWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCkudmlldygpKTsKLSAgICBGbG9hdFJlY3Qgd2luZG93
ID0gcGFnZS0+Y2hyb21lKCkud2luZG93UmVjdCgpOworICAgIEZsb2F0UmVjdCBzY3JlZW4gPSBz
Y3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UubWFpbkZyYW1lKCkudmlldygpKTsKKyAgICBGbG9hdFJl
Y3Qgd2luZG93ID0gcGFnZS5jaHJvbWUoKS53aW5kb3dSZWN0KCk7CiAKICAgICAvLyBNYWtlIHN1
cmUgd2UncmUgaW4gYSB2YWxpZCBzdGF0ZSBiZWZvcmUgYWRqdXN0aW5nIGRpbWVuc2lvbnMuCiAg
ICAgQVNTRVJUKHN0ZDo6aXNmaW5pdGUoc2NyZWVuLngoKSkpOwpAQCAtMzUyLDcgKzM1MCw3IEBA
IEZsb2F0UmVjdCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSogcGFnZSwgY29uc3Qg
RmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlCiAgICAgaWYgKCFzdGQ6OmlzbmFuKHBlbmRpbmdDaGFu
Z2VzLmhlaWdodCgpKSkKICAgICAgICAgd2luZG93LnNldEhlaWdodChwZW5kaW5nQ2hhbmdlcy5o
ZWlnaHQoKSk7CiAKLSAgICBGbG9hdFNpemUgbWluaW11bVNpemUgPSBwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS5taW5pbXVtV2luZG93U2l6ZSgpOworICAgIEZsb2F0U2l6ZSBtaW5pbXVtU2l6ZSA9
IHBhZ2UuY2hyb21lKCkuY2xpZW50KCkubWluaW11bVdpbmRvd1NpemUoKTsKICAgICB3aW5kb3cu
c2V0V2lkdGgoc3RkOjptaW4oc3RkOjptYXgobWluaW11bVNpemUud2lkdGgoKSwgd2luZG93Lndp
ZHRoKCkpLCBzY3JlZW4ud2lkdGgoKSkpOwogICAgIHdpbmRvdy5zZXRIZWlnaHQoc3RkOjptaW4o
c3RkOjptYXgobWluaW11bVNpemUuaGVpZ2h0KCksIHdpbmRvdy5oZWlnaHQoKSksIHNjcmVlbi5o
ZWlnaHQoKSkpOwogCkBAIC0zNjMsMzggKzM2MSwzMSBAQCBGbG9hdFJlY3QgRE9NV2luZG93Ojph
ZGp1c3RXaW5kb3dSZWN0KFBhZ2UqIHBhZ2UsIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5n
ZQogICAgIHJldHVybiB3aW5kb3c7CiB9CiAKLWJvb2wgRE9NV2luZG93OjphbGxvd1BvcFVwKEZy
YW1lKiBmaXJzdEZyYW1lKQorYm9vbCBET01XaW5kb3c6OmFsbG93UG9wVXAoRnJhbWUmIGZpcnN0
RnJhbWUpCiB7Ci0gICAgQVNTRVJUKGZpcnN0RnJhbWUpOwotICAgIAotICAgIGF1dG8mIHNldHRp
bmdzID0gZmlyc3RGcmFtZS0+c2V0dGluZ3MoKTsKLQotICAgIGlmIChTY3JpcHRDb250cm9sbGVy
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSB8fCBzZXR0aW5ncy5hbGxvd1dpbmRvd09wZW5XaXRo
b3V0VXNlckdlc3R1cmUoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICByZXR1cm4gc2V0
dGluZ3MuamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSgpOworICAgIGF1dG8m
IHNldHRpbmdzID0gZmlyc3RGcmFtZS5zZXR0aW5ncygpOworICAgIHJldHVybiBTY3JpcHRDb250
cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKQorICAgICAgICB8fCBzZXR0aW5ncy5hbGxv
d1dpbmRvd09wZW5XaXRob3V0VXNlckdlc3R1cmUoKQorICAgICAgICB8fCBzZXR0aW5ncy5qYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KCk7CiB9CiAKIGJvb2wgRE9NV2luZG93
OjphbGxvd1BvcFVwKCkKIHsKLSAgICByZXR1cm4gbV9mcmFtZSAmJiBhbGxvd1BvcFVwKG1fZnJh
bWUpOworICAgIHJldHVybiBtX2ZyYW1lICYmIGFsbG93UG9wVXAoKm1fZnJhbWUpOwogfQogCi1i
b29sIERPTVdpbmRvdzo6Y2FuU2hvd01vZGFsRGlhbG9nKGNvbnN0IEZyYW1lKiBmcmFtZSkKK2Jv
b2wgRE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2coY29uc3QgRnJhbWUmIGZyYW1lKQogewot
ICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIC8vIE92ZXJyaWRl
IHN1cHBvcnQgZm9yIGxheW91dCB0ZXN0aW5nIHB1cnBvc2VzLgotICAgIGlmIChhdXRvKiBkb2N1
bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpKSB7CisgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJh
bWUuZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoYXV0byogd2luZG93ID0gZG9jdW1lbnQtPmRv
bVdpbmRvdygpKSB7CiAgICAgICAgICAgICBpZiAod2luZG93LT5tX2NhblNob3dNb2RhbERpYWxv
Z092ZXJyaWRlKQogICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3ctPm1fY2FuU2hvd01vZGFs
RGlhbG9nT3ZlcnJpZGUudmFsdWUoKTsKICAgICAgICAgfQogICAgIH0KIAotICAgIGF1dG8qIHBh
Z2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIHJldHVybiBwYWdlID8gcGFnZS0+Y2hyb21lKCkuY2Fu
UnVuTW9kYWwoKSA6IGZhbHNlOworICAgIGF1dG8qIHBhZ2UgPSBmcmFtZS5wYWdlKCk7CisgICAg
cmV0dXJuIHBhZ2UgJiYgcGFnZS0+Y2hyb21lKCkuY2FuUnVuTW9kYWwoKTsKIH0KIAogc3RhdGlj
IHZvaWQgbGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrKHZvaWQqIGNvbnRleHQpCkBAIC00MDcsMjAg
KzM5OCwxOCBAQCB2b2lkIERPTVdpbmRvdzo6c2V0Q2FuU2hvd01vZGFsRGlhbG9nT3ZlcnJpZGUo
Ym9vbCBhbGxvdykKICAgICBtX2NhblNob3dNb2RhbERpYWxvZ092ZXJyaWRlID0gYWxsb3c7CiB9
CiAKLURPTVdpbmRvdzo6RE9NV2luZG93KERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IENvbnRl
eHREZXN0cnVjdGlvbk9ic2VydmVyKGRvY3VtZW50KQotICAgICwgRnJhbWVEZXN0cnVjdGlvbk9i
c2VydmVyKGRvY3VtZW50LT5mcmFtZSgpKQorRE9NV2luZG93OjpET01XaW5kb3coRG9jdW1lbnQm
IGRvY3VtZW50KQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQor
ICAgICwgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKGRvY3VtZW50LmZyYW1lKCkpCiAgICAgLCBt
X3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiAgICAgQVNTRVJUKGZyYW1lKCkpOwotICAgIEFTU0VS
VChET01XaW5kb3c6OmRvY3VtZW50KCkpOwotCiAgICAgYWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZl
cih0aGlzLCAmbGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrKTsKIH0KIAotdm9pZCBET01XaW5kb3c6
OmRpZFNlY3VyZVRyYW5zaXRpb25UbyhEb2N1bWVudCogZG9jdW1lbnQpCit2b2lkIERPTVdpbmRv
dzo6ZGlkU2VjdXJlVHJhbnNpdGlvblRvKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBvYnNl
cnZlQ29udGV4dChkb2N1bWVudCk7CisgICAgb2JzZXJ2ZUNvbnRleHQoJmRvY3VtZW50KTsKIH0K
IAogRE9NV2luZG93Ojp+RE9NV2luZG93KCkKQEAgLTU0NywxNCArNTM2LDE0IEBAIHZvaWQgRE9N
V2luZG93OjpkZWNyZW1lbnRHYW1lcGFkRXZlbnRMaXN0ZW5lckNvdW50KCkKIAogI2VuZGlmCiAK
LXZvaWQgRE9NV2luZG93OjpyZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5KiBwcm9w
ZXJ0eSkKK3ZvaWQgRE9NV2luZG93OjpyZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5
JiBwcm9wZXJ0eSkKIHsKLSAgICBtX3Byb3BlcnRpZXMuYWRkKHByb3BlcnR5KTsKKyAgICBtX3By
b3BlcnRpZXMuYWRkKCZwcm9wZXJ0eSk7CiB9CiAKLXZvaWQgRE9NV2luZG93Ojp1bnJlZ2lzdGVy
UHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkqIHByb3BlcnR5KQordm9pZCBET01XaW5kb3c6OnVu
cmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSYgcHJvcGVydHkpCiB7Ci0gICAgbV9w
cm9wZXJ0aWVzLnJlbW92ZShwcm9wZXJ0eSk7CisgICAgbV9wcm9wZXJ0aWVzLnJlbW92ZSgmcHJv
cGVydHkpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6cmVzZXRVbmxlc3NTdXNwZW5kZWRGb3JEb2N1
bWVudFN1c3BlbnNpb24oKQpAQCAtOTc0LDIzICs5NjMsMTggQEAgdm9pZCBET01XaW5kb3c6OnBv
c3RNZXNzYWdlVGltZXJGaXJlZChQb3N0TWVzc2FnZVRpbWVyJiB0aW1lcikKICAgICBpZiAoIWRv
Y3VtZW50KCkgfHwgIWlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmlnaW5DaGVjayh0aW1lci50YXJn
ZXRPcmlnaW4oKSwgdGltZXIuZXZlbnQoKmRvY3VtZW50KCkpLCB0aW1lci5zdGFja1RyYWNlKCkp
OwotfQotCi12b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2luQ2hl
Y2soU2VjdXJpdHlPcmlnaW4qIGludGVuZGVkVGFyZ2V0T3JpZ2luLCBFdmVudCYgZXZlbnQsIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNlKQotewotICAgIGlmIChpbnRlbmRl
ZFRhcmdldE9yaWdpbikgeworICAgIGlmIChhdXRvKiBpbnRlbmRlZFRhcmdldE9yaWdpbiA9IHRp
bWVyLnRhcmdldE9yaWdpbigpKSB7CiAgICAgICAgIC8vIENoZWNrIHRhcmdldCBvcmlnaW4gbm93
IHNpbmNlIHRoZSB0YXJnZXQgZG9jdW1lbnQgbWF5IGhhdmUgY2hhbmdlZCBzaW5jZSB0aGUgdGlt
ZXIgd2FzIHNjaGVkdWxlZC4KICAgICAgICAgaWYgKCFpbnRlbmRlZFRhcmdldE9yaWdpbi0+aXNT
YW1lU2NoZW1lSG9zdFBvcnQoZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkpIHsKLSAgICAg
ICAgICAgIGlmIChQYWdlQ29uc29sZUNsaWVudCogcGFnZUNvbnNvbGUgPSBjb25zb2xlKCkpIHsK
KyAgICAgICAgICAgIGlmIChhdXRvKiBwYWdlQ29uc29sZSA9IGNvbnNvbGUoKSkgewogICAgICAg
ICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygiVW5hYmxlIHRvIHBvc3QgbWVz
c2FnZSB0byAiLCBpbnRlbmRlZFRhcmdldE9yaWdpbi0+dG9TdHJpbmcoKSwgIi4gUmVjaXBpZW50
IGhhcyBvcmlnaW4gIiwgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS50b1N0cmluZygpLCAi
LlxuIik7Ci0gICAgICAgICAgICAgICAgcGFnZUNvbnNvbGUtPmFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UsIHN0YWNrVHJhY2Up
OworICAgICAgICAgICAgICAgIHBhZ2VDb25zb2xlLT5hZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlLCB0aW1lci5zdGFja1RyYWNl
KCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
fQogCi0gICAgZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgZGlzcGF0Y2hFdmVudCh0aW1lci5l
dmVudCgqZG9jdW1lbnQoKSkpOwogfQogCiBET01TZWxlY3Rpb24qIERPTVdpbmRvdzo6Z2V0U2Vs
ZWN0aW9uKCkKQEAgLTExMTMsNyArMTA5Nyw3IEBAIHZvaWQgRE9NV2luZG93OjpwcmludCgpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV9zaG91bGRQcmludFdoZW5GaW5pc2hlZExvYWRp
bmcgPSBmYWxzZTsKLSAgICBwYWdlLT5jaHJvbWUoKS5wcmludChtX2ZyYW1lKTsKKyAgICBwYWdl
LT5jaHJvbWUoKS5wcmludCgqbV9mcmFtZSk7CiB9CiAKIHZvaWQgRE9NV2luZG93OjpzdG9wKCkK
QEAgLTExNDUsNyArMTEyOSw3IEBAIHZvaWQgRE9NV2luZG93OjphbGVydChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCiAgICAgcGFnZS0+cG9pbnRlckxvY2tDb250cm9sbGVyKCkucmVxdWVzdFBvaW50
ZXJVbmxvY2soKTsKICNlbmRpZgogCi0gICAgcGFnZS0+Y2hyb21lKCkucnVuSmF2YVNjcmlwdEFs
ZXJ0KG1fZnJhbWUsIG1lc3NhZ2UpOworICAgIHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRB
bGVydCgqbV9mcmFtZSwgbWVzc2FnZSk7CiB9CiAKIGJvb2wgRE9NV2luZG93Ojpjb25maXJtKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkKQEAgLTExNjcsNyArMTE1MSw3IEBAIGJvb2wgRE9NV2luZG93
Ojpjb25maXJtKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBwYWdlLT5wb2ludGVyTG9ja0Nv
bnRyb2xsZXIoKS5yZXF1ZXN0UG9pbnRlclVubG9jaygpOwogI2VuZGlmCiAKLSAgICByZXR1cm4g
cGFnZS0+Y2hyb21lKCkucnVuSmF2YVNjcmlwdENvbmZpcm0obV9mcmFtZSwgbWVzc2FnZSk7Cisg
ICAgcmV0dXJuIHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRDb25maXJtKCptX2ZyYW1lLCBt
ZXNzYWdlKTsKIH0KIAogU3RyaW5nIERPTVdpbmRvdzo6cHJvbXB0KGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUpCkBAIC0xMTkwLDcgKzExNzQsNyBAQCBT
dHJpbmcgRE9NV2luZG93Ojpwcm9tcHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmIGRlZmF1bHRWYWx1ZSkKICNlbmRpZgogCiAgICAgU3RyaW5nIHJldHVyblZhbHVlOwotICAg
IGlmIChwYWdlLT5jaHJvbWUoKS5ydW5KYXZhU2NyaXB0UHJvbXB0KG1fZnJhbWUsIG1lc3NhZ2Us
IGRlZmF1bHRWYWx1ZSwgcmV0dXJuVmFsdWUpKQorICAgIGlmIChwYWdlLT5jaHJvbWUoKS5ydW5K
YXZhU2NyaXB0UHJvbXB0KCptX2ZyYW1lLCBtZXNzYWdlLCBkZWZhdWx0VmFsdWUsIHJldHVyblZh
bHVlKSkKICAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlOwogCiAgICAgcmV0dXJuIFN0cmluZygp
OwpAQCAtMTM2OCw3ICsxMzUyLDcgQEAgdm9pZCBET01XaW5kb3c6OnNldFN0YXR1cyhjb25zdCBT
dHJpbmcmIHN0cmluZykKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKG1fZnJhbWUtPmRv
Y3VtZW50KCkpOyAvLyBDbGllbnQgY2FsbHMgc2hvdWxkbid0IGJlIG1hZGUgd2hlbiB0aGUgZnJh
bWUgaXMgaW4gaW5jb25zaXN0ZW50IHN0YXRlLgotICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1
c2JhclRleHQobV9mcmFtZSwgbV9zdGF0dXMpOworICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1
c2JhclRleHQoKm1fZnJhbWUsIG1fc3RhdHVzKTsKIH0gCiAgICAgCiB2b2lkIERPTVdpbmRvdzo6
c2V0RGVmYXVsdFN0YXR1cyhjb25zdCBTdHJpbmcmIHN0cmluZykgCkBAIC0xMzgzLDcgKzEzNjcs
NyBAQCB2b2lkIERPTVdpbmRvdzo6c2V0RGVmYXVsdFN0YXR1cyhjb25zdCBTdHJpbmcmIHN0cmlu
ZykKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKG1fZnJhbWUtPmRvY3VtZW50KCkpOyAv
LyBDbGllbnQgY2FsbHMgc2hvdWxkbid0IGJlIG1hZGUgd2hlbiB0aGUgZnJhbWUgaXMgaW4gaW5j
b25zaXN0ZW50IHN0YXRlLgotICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQobV9m
cmFtZSwgbV9kZWZhdWx0U3RhdHVzKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJU
ZXh0KCptX2ZyYW1lLCBtX2RlZmF1bHRTdGF0dXMpOwogfQogCiBET01XaW5kb3cqIERPTVdpbmRv
dzo6c2VsZigpIGNvbnN0CkBAIC0xNDMyLDggKzE0MTYsNyBAQCBET01XaW5kb3cqIERPTVdpbmRv
dzo6dG9wKCkgY29uc3QKIAogRG9jdW1lbnQqIERPTVdpbmRvdzo6ZG9jdW1lbnQoKSBjb25zdAog
ewotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIHJldHVybiBkb3duY2Fz
dDxEb2N1bWVudD4oY29udGV4dCk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKIH0KIAog
UmVmUHRyPFN0eWxlTWVkaWE+IERPTVdpbmRvdzo6c3R5bGVNZWRpYSgpIGNvbnN0CkBAIC0xNjE4
LDggKzE2MDEsNyBAQCB2b2lkIERPTVdpbmRvdzo6bW92ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNv
bnN0CiAgICAgRmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hyb21lKCkud2luZG93UmVjdCgpOwogICAg
IEZsb2F0UmVjdCB1cGRhdGUgPSBmcjsKICAgICB1cGRhdGUubW92ZSh4LCB5KTsKLSAgICAvLyBT
ZWN1cml0eSBjaGVjayAodGhlIHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRl
IHRvIGRpc2FibGUgdGhpcyBjaGVjay4uLikKLSAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dS
ZWN0KGFkanVzdFdpbmRvd1JlY3QocGFnZSwgdXBkYXRlKSk7CisgICAgcGFnZS0+Y2hyb21lKCku
c2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KCpwYWdlLCB1cGRhdGUpKTsKIH0KIAogdm9p
ZCBET01XaW5kb3c6Om1vdmVUbyhmbG9hdCB4LCBmbG9hdCB5KSBjb25zdApAQCAtMTYzMyw4ICsx
NjE1LDcgQEAgdm9pZCBET01XaW5kb3c6Om1vdmVUbyhmbG9hdCB4LCBmbG9hdCB5KSBjb25zdAog
ICAgIGZyLnNldExvY2F0aW9uKHNyLmxvY2F0aW9uKCkpOwogICAgIEZsb2F0UmVjdCB1cGRhdGUg
PSBmcjsKICAgICB1cGRhdGUubW92ZSh4LCB5KTsKLSAgICAvLyBTZWN1cml0eSBjaGVjayAodGhl
IHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRvIGRpc2FibGUgdGhpcyBj
aGVjay4uLikKLSAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1Jl
Y3QocGFnZSwgdXBkYXRlKSk7CisgICAgcGFnZS0+Y2hyb21lKCkuc2V0V2luZG93UmVjdChhZGp1
c3RXaW5kb3dSZWN0KCpwYWdlLCB1cGRhdGUpKTsKIH0KIAogdm9pZCBET01XaW5kb3c6OnJlc2l6
ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CkBAIC0xNjQ2LDcgKzE2MjcsNyBAQCB2b2lkIERP
TVdpbmRvdzo6cmVzaXplQnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKICAgICBGbG9hdFJlY3Qg
ZnIgPSBwYWdlLT5jaHJvbWUoKS53aW5kb3dSZWN0KCk7CiAgICAgRmxvYXRTaXplIGRlc3QgPSBm
ci5zaXplKCkgKyBGbG9hdFNpemUoeCwgeSk7CiAgICAgRmxvYXRSZWN0IHVwZGF0ZShmci5sb2Nh
dGlvbigpLCBkZXN0KTsKLSAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdp
bmRvd1JlY3QocGFnZSwgdXBkYXRlKSk7CisgICAgcGFnZS0+Y2hyb21lKCkuc2V0V2luZG93UmVj
dChhZGp1c3RXaW5kb3dSZWN0KCpwYWdlLCB1cGRhdGUpKTsKIH0KIAogdm9pZCBET01XaW5kb3c6
OnJlc2l6ZVRvKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpIGNvbnN0CkBAIC0xNjU4LDcgKzE2
MzksNyBAQCB2b2lkIERPTVdpbmRvdzo6cmVzaXplVG8oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdo
dCkgY29uc3QKICAgICBGbG9hdFJlY3QgZnIgPSBwYWdlLT5jaHJvbWUoKS53aW5kb3dSZWN0KCk7
CiAgICAgRmxvYXRTaXplIGRlc3QgPSBGbG9hdFNpemUod2lkdGgsIGhlaWdodCk7CiAgICAgRmxv
YXRSZWN0IHVwZGF0ZShmci5sb2NhdGlvbigpLCBkZXN0KTsKLSAgICBwYWdlLT5jaHJvbWUoKS5z
ZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QocGFnZSwgdXBkYXRlKSk7CisgICAgcGFnZS0+
Y2hyb21lKCkuc2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KCpwYWdlLCB1cGRhdGUpKTsK
IH0KIAogRXhjZXB0aW9uT3I8aW50PiBET01XaW5kb3c6OnNldFRpbWVvdXQoc3RkOjp1bmlxdWVf
cHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGltZW91dCkKQEAgLTE2ODEsNyArMTY2
Miw3IEBAIHZvaWQgRE9NV2luZG93OjpjbGVhclRpbWVvdXQoaW50IHRpbWVvdXRJZCkKIAogICAg
ICAgICAgICAgICAgIGlmICghV2ViVGhyZWFkQ291bnRPZk9ic2VydmVkQ29udGVudE1vZGlmaWVy
cygpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFn
ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkub2Jz
ZXJ2ZWRDb250ZW50Q2hhbmdlKG1fZnJhbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgcGFn
ZS0+Y2hyb21lKCkuY2xpZW50KCkub2JzZXJ2ZWRDb250ZW50Q2hhbmdlKCptX2ZyYW1lKTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTE4NDEsNyArMTgy
Miw3IEBAIHZvaWQgRE9NV2luZG93OjppbmNyZW1lbnRTY3JvbGxFdmVudExpc3RlbmVyc0NvdW50
KCkKICAgICBpZiAoKyttX3Njcm9sbEV2ZW50TGlzdGVuZXJDb3VudCA9PSAxICYmIGRvY3VtZW50
ID09ICZkb2N1bWVudC0+dG9wRG9jdW1lbnQoKSkgewogICAgICAgICBGcmFtZSogZnJhbWUgPSB0
aGlzLT5mcmFtZSgpOwogICAgICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkKLSAgICAg
ICAgICAgIGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE5lZWRzU2Nyb2xsTm90
aWZpY2F0aW9ucyhmcmFtZSwgdHJ1ZSk7CisgICAgICAgICAgICBmcmFtZS0+cGFnZSgpLT5jaHJv
bWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoKmZyYW1lLCB0cnVlKTsK
ICAgICB9CiB9CiAKQEAgLTE4NTEsNyArMTgzMiw3IEBAIHZvaWQgRE9NV2luZG93OjpkZWNyZW1l
bnRTY3JvbGxFdmVudExpc3RlbmVyc0NvdW50KCkKICAgICBpZiAoIS0tbV9zY3JvbGxFdmVudExp
c3RlbmVyQ291bnQgJiYgZG9jdW1lbnQgPT0gJmRvY3VtZW50LT50b3BEb2N1bWVudCgpKSB7CiAg
ICAgICAgIEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCk7CiAgICAgICAgIGlmIChmcmFtZSAm
JiBmcmFtZS0+cGFnZSgpICYmIGRvY3VtZW50LT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50
OjpOb3RJblBhZ2VDYWNoZSkKLSAgICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLmNs
aWVudCgpLnNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhmcmFtZSwgZmFsc2UpOworICAgICAg
ICAgICAgZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3Rp
ZmljYXRpb25zKCpmcmFtZSwgZmFsc2UpOwogICAgIH0KIH0KIApAQCAtMTg1OSw3ICsxODQwLDcg
QEAgdm9pZCBET01XaW5kb3c6OmRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJzQ291bnQoKQog
CiB2b2lkIERPTVdpbmRvdzo6cmVzZXRBbGxHZW9sb2NhdGlvblBlcm1pc3Npb24oKQogewotICAg
IC8vIEZJWE1FOiBSZW1vdmUgUExBVEZPUk0oSU9TKS1ndWFyZCBvbmNlIHdlIHVwc3RyZWFtIHRo
ZSBpT1MgY2hhbmdlcyB0byBHZW9sb2NhdGlvbi5jcHAuCisgICAgLy8gRklYTUU6IENhbiB3ZSBy
ZW1vdmUgdGhlIFBMQVRGT1JNKElPUyktZ3VhcmQ/CiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKSAm
JiBQTEFURk9STShJT1MpCiAgICAgaWYgKG1fbmF2aWdhdG9yKQogICAgICAgICBOYXZpZ2F0b3JH
ZW9sb2NhdGlvbjo6ZnJvbShtX25hdmlnYXRvci5nZXQoKSktPnJlc2V0QWxsR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uKCk7CkBAIC0yMjg3LDggKzIyNjgsNyBAQCB2b2lkIERPTVdpbmRvdzo6c2hvd01v
ZGFsRGlhbG9nKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRpYWxvZ0Zl
YQogewogICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBGcmFtZSogYWN0aXZlRnJhbWUgPSBhY3RpdmVXaW5kb3cuZnJhbWUoKTsKLSAg
ICBpZiAoIWFjdGl2ZUZyYW1lKQorICAgIGlmICghYWN0aXZlV2luZG93LmZyYW1lKCkpCiAgICAg
ICAgIHJldHVybjsKICAgICBGcmFtZSogZmlyc3RGcmFtZSA9IGZpcnN0V2luZG93LmZyYW1lKCk7
CiAgICAgaWYgKCFmaXJzdEZyYW1lKQpAQCAtMjMwMyw3ICsyMjgzLDcgQEAgdm9pZCBET01XaW5k
b3c6OnNob3dNb2RhbERpYWxvZyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5n
JiBkaWFsb2dGZWEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghY2FuU2hvd01v
ZGFsRGlhbG9nKG1fZnJhbWUpIHx8ICFmaXJzdFdpbmRvdy5hbGxvd1BvcFVwKCkpCisgICAgaWYg
KCFjYW5TaG93TW9kYWxEaWFsb2coKm1fZnJhbWUpIHx8ICFmaXJzdFdpbmRvdy5hbGxvd1BvcFVw
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxGcmFtZT4gZGlhbG9nRnJhbWUgPSBj
cmVhdGVXaW5kb3codXJsU3RyaW5nLCBlbXB0eUF0b20sIHBhcnNlRGlhbG9nRmVhdHVyZXMoZGlh
bG9nRmVhdHVyZXNTdHJpbmcsIHNjcmVlbkF2YWlsYWJsZVJlY3QobV9mcmFtZS0+dmlldygpKSks
IGFjdGl2ZVdpbmRvdywgKmZpcnN0RnJhbWUsICptX2ZyYW1lLCBXVEZNb3ZlKHByZXBhcmVEaWFs
b2dGdW5jdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggYzVlOTAyODk4ODZkNzJh
YTg4NmM0OWFkYjk0Nzk1ZDM3NzA1OWIzMS4uZTAwNzAxNmU1ZDg2N2EyMDU3OWZhNDAxODMzMmJi
NWRmMWFlMWViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zMywy
MyArMzMsMTQgQEAKICNpbmNsdWRlICJGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNs
dWRlICJTY3JvbGxUb09wdGlvbnMuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgotI2lu
Y2x1ZGUgIlVSTC5oIgotI2luY2x1ZGUgPGZ1bmN0aW9uYWw+Ci0jaW5jbHVkZSA8bWVtb3J5Pgot
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNs
dWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCi1uYW1lc3Bh
Y2UgSW5zcGVjdG9yIHsKLWNsYXNzIFNjcmlwdENhbGxTdGFjazsKLX0KLQogbmFtZXNwYWNlIEpT
QyB7CiBjbGFzcyBFeGVjU3RhdGU7CiBjbGFzcyBKU09iamVjdDsKIGNsYXNzIEpTVmFsdWU7Ci10
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBTdHJvbmc7Cit0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xh
c3MgU3Ryb25nOwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02MSwyMiArNTIsMTUgQEAg
Y2xhc3MgQ3J5cHRvOwogY2xhc3MgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5OwogY2xhc3MgRE9NQXBw
bGljYXRpb25DYWNoZTsKIGNsYXNzIERPTVNlbGVjdGlvbjsKLWNsYXNzIERPTVVSTDsKIGNsYXNz
IERPTVdpbmRvd1Byb3BlcnR5OwogY2xhc3MgRE9NV3JhcHBlcldvcmxkOwotY2xhc3MgRGF0YWJh
c2U7Ci1jbGFzcyBEYXRhYmFzZUNhbGxiYWNrOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVt
ZW50OwogY2xhc3MgRXZlbnRMaXN0ZW5lcjsKIGNsYXNzIEZsb2F0UmVjdDsKLWNsYXNzIEZyYW1l
OwogY2xhc3MgSGlzdG9yeTsKLWNsYXNzIElEQkZhY3Rvcnk7CiBjbGFzcyBMb2NhdGlvbjsKIGNs
YXNzIE1lZGlhUXVlcnlMaXN0OwotY2xhc3MgTWVzc2FnZUV2ZW50OwotY2xhc3MgTWVzc2FnZVBv
cnQ7CiBjbGFzcyBOYXZpZ2F0b3I7CiBjbGFzcyBOb2RlOwogY2xhc3MgTm9kZUxpc3Q7CkBAIC04
Nyw4ICs3MSw2IEBAIGNsYXNzIFBvc3RNZXNzYWdlVGltZXI7CiBjbGFzcyBSZXF1ZXN0QW5pbWF0
aW9uRnJhbWVDYWxsYmFjazsKIGNsYXNzIFNjaGVkdWxlZEFjdGlvbjsKIGNsYXNzIFNjcmVlbjsK
LWNsYXNzIFNlY3VyaXR5T3JpZ2luOwotY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xh
c3MgU3RvcmFnZTsKIGNsYXNzIFN0eWxlTWVkaWE7CiBjbGFzcyBXZWJLaXROYW1lc3BhY2U7CkBA
IC0xMDcsNyArODksNyBAQCBjbGFzcyBET01XaW5kb3cgZmluYWwKICAgICAsIHB1YmxpYyBCYXNl
NjRVdGlsaXRpZXMKICAgICAsIHB1YmxpYyBTdXBwbGVtZW50YWJsZTxET01XaW5kb3c+IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPERPTVdpbmRvdz4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVu
dCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01XaW5kb3coZG9jdW1lbnQpKTsgfQorICAgIHN0
YXRpYyBSZWY8RE9NV2luZG93PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IERPTVdpbmRvdyhkb2N1bWVudCkpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCB+RE9NV2luZG93KCk7CiAKICAgICAvLyBJbiBzb21lIHJhcmUgY2FzZXMsIHdlJ2xs
IHJldXNlIGEgRE9NV2luZG93IGZvciBhIG5ldyBEb2N1bWVudC4gRm9yIGV4YW1wbGUsCkBAIC0x
MTcsMTUgKzk5LDEwIEBAIHB1YmxpYzoKICAgICAvLyB3b24ndCBiZSBibG93biBhd2F5IHdoZW4g
dGhlIG5ldHdvcmsgbG9hZCBjb21taXRzLiBUbyBtYWtlIHRoYXQgaGFwcGVuLCB3ZQogICAgIC8v
ICJzZWN1cmVseSB0cmFuc2l0aW9uIiB0aGUgZXhpc3RpbmcgRE9NV2luZG93IHRvIHRoZSBEb2N1
bWVudCB0aGF0IHJlc3VsdHMgZnJvbQogICAgIC8vIHRoZSBuZXR3b3JrIGxvYWQuIFNlZSBhbHNv
IFNlY3VyaXR5Q29udGV4dDo6aXNTZWN1cmVUcmFuc2l0aW9uVG8uCi0gICAgdm9pZCBkaWRTZWN1
cmVUcmFuc2l0aW9uVG8oRG9jdW1lbnQqKTsKLQotICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2
ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRE9NV2luZG93RXZl
bnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KLQotICAgIERPTVdp
bmRvdyogdG9ET01XaW5kb3coKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFNlY3VyZVRyYW5zaXRp
b25UbyhEb2N1bWVudCYpOwogCi0gICAgdm9pZCByZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1By
b3BlcnR5Kik7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkq
KTsKKyAgICB2b2lkIHJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkmKTsKKyAgICB2
b2lkIHVucmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSYpOwogCiAgICAgdm9pZCBy
ZXNldFVubGVzc1N1c3BlbmRlZEZvckRvY3VtZW50U3VzcGVuc2lvbigpOwogICAgIHZvaWQgc3Vz
cGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpOwpAQCAtMTM4LDExICsxMTUsMTEgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGRpc3BhdGNoQWxsUGVuZGluZ0JlZm9y
ZVVubG9hZEV2ZW50cygpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGRpc3BhdGNo
QWxsUGVuZGluZ1VubG9hZEV2ZW50cygpOwogCi0gICAgc3RhdGljIEZsb2F0UmVjdCBhZGp1c3RX
aW5kb3dSZWN0KFBhZ2UqLCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKTsKKyAgICBz
dGF0aWMgRmxvYXRSZWN0IGFkanVzdFdpbmRvd1JlY3QoUGFnZSYsIGNvbnN0IEZsb2F0UmVjdCYg
cGVuZGluZ0NoYW5nZXMpOwogCiAgICAgYm9vbCBhbGxvd1BvcFVwKCk7IC8vIENhbGwgb24gZmly
c3Qgd2luZG93LCBub3QgdGFyZ2V0IHdpbmRvdy4KLSAgICBzdGF0aWMgYm9vbCBhbGxvd1BvcFVw
KEZyYW1lKiBmaXJzdEZyYW1lKTsKLSAgICBzdGF0aWMgYm9vbCBjYW5TaG93TW9kYWxEaWFsb2co
Y29uc3QgRnJhbWUqKTsKKyAgICBzdGF0aWMgYm9vbCBhbGxvd1BvcFVwKEZyYW1lJiBmaXJzdEZy
YW1lKTsKKyAgICBzdGF0aWMgYm9vbCBjYW5TaG93TW9kYWxEaWFsb2coY29uc3QgRnJhbWUmKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhblNob3dNb2RhbERpYWxvZ092ZXJyaWRlKGJv
b2wpOwogCiAgICAgU2NyZWVuKiBzY3JlZW4oKSBjb25zdDsKQEAgLTI0NSw3ICsyMjIsNiBAQCBw
dWJsaWM6CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBwb3N0TWVzc2FnZShKU0M6OkV4ZWNTdGF0
ZSYsIERPTVdpbmRvdyYgY2FsbGVyV2luZG93LCBKU0M6OkpTVmFsdWUgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiB0YXJnZXRPcmlnaW4sIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0Pj4m
Jik7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRpbWVyRmlyZWQoUG9zdE1lc3NhZ2VUaW1lciYpOwot
ICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2luQ2hlY2soU2VjdXJpdHlPcmln
aW4qIGludGVuZGVkVGFyZ2V0T3JpZ2luLCBFdmVudCYsIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpT
Y3JpcHRDYWxsU3RhY2s+KTsKIAogICAgIHZvaWQgbGFuZ3VhZ2VzQ2hhbmdlZCgpOwogCkBAIC0y
NzIsOSArMjQ4LDkgQEAgcHVibGljOgogCiAgICAgLy8gRXZlbnRzCiAgICAgLy8gRXZlbnRUYXJn
ZXQgQVBJCi0gICAgYm9vbCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlv
bnMmKSBvdmVycmlkZTsKLSAgICBib29sIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImLCBjb25zdCBMaXN0ZW5lck9wdGlvbnMm
KSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkgb3ZlcnJpZGU7
CisgICAgYm9vbCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmKSBm
aW5hbDsKKyAgICBib29sIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIEV2ZW50TGlzdGVuZXImLCBjb25zdCBMaXN0ZW5lck9wdGlvbnMmKSBmaW5hbDsK
KyAgICB2b2lkIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkgZmluYWw7CiAKICAgICB1c2luZyBF
dmVudFRhcmdldDo6ZGlzcGF0Y2hFdmVudDsKICAgICBib29sIGRpc3BhdGNoRXZlbnQoRXZlbnQm
LCBFdmVudFRhcmdldCopOwpAQCAtMjg2LDggKzI2Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
ZmluaXNoZWRMb2FkaW5nKCk7CiAKLSAgICB1c2luZyBSZWZDb3VudGVkPERPTVdpbmRvdz46OnJl
ZjsKLSAgICB1c2luZyBSZWZDb3VudGVkPERPTVdpbmRvdz46OmRlcmVmOworICAgIHVzaW5nIFJl
ZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAogICAgIC8vIEhU
TUwgNSBrZXkvdmFsdWUgc3RvcmFnZQogICAgIEV4Y2VwdGlvbk9yPFN0b3JhZ2UqPiBzZXNzaW9u
U3RvcmFnZSgpIGNvbnN0OwpAQCAtMzEzLDYgKzI4OSw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUo
V0VCX1RJTUlORykKICAgICBQZXJmb3JtYW5jZSogcGVyZm9ybWFuY2UoKSBjb25zdDsKICNlbmRp
ZgorCiAgICAgZG91YmxlIG5vd1RpbWVzdGFtcCgpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oSU9T
KQpAQCAtMzQ3LDE2ICszMjQsMjEgQEAgcHVibGljOgogICAgIFdlYWtQdHI8RE9NV2luZG93PiBj
cmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7
IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBET01XaW5kb3coRG9jdW1lbnQqKTsKKyAgICBl
eHBsaWNpdCBET01XaW5kb3coRG9jdW1lbnQmKTsKKworICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNl
IGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gRE9NV2luZG93RXZl
bnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKworICAgIERPTVdpbmRv
dyogdG9ET01XaW5kb3coKSBmaW5hbDsKIAogICAgIFBhZ2UqIHBhZ2UoKTsKICAgICBib29sIGFs
bG93ZWRUb0NoYW5nZVdpbmRvd0dlb21ldHJ5KCkgY29uc3Q7CiAKLSAgICB2b2lkIGZyYW1lRGVz
dHJveWVkKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsRGV0YWNoUGFnZSgpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZnJhbWVEZXN0cm95ZWQoKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxEZXRhY2hQYWdl
KCkgZmluYWw7CiAKLSAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsg
fQotICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQorICAg
IHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2
ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CiAKICAgICBzdGF0aWMgUmVmUHRyPEZyYW1l
PiBjcmVhdGVXaW5kb3coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZnJhbWVOYW1lLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYsIERPTVdpbmRvdyYgYWN0aXZlV2lu
ZG93LCBGcmFtZSYgZmlyc3RGcmFtZSwgRnJhbWUmIG9wZW5lckZyYW1lLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoRE9NV2luZG93Jik+IHByZXBhcmVEaWFsb2dGdW5jdGlvbiA9IG51bGxwdHIpOwogICAg
IGJvb2wgaXNJbnNlY3VyZVNjcmlwdEFjY2VzcyhET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3dQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3Bl
cnR5LmNwcAppbmRleCBhMzc3MGU4ZTcwMGM2NTgyNjI2YzY0Yjk4NWZkZWM2ZmMwN2YzM2Y1Li41
NTA5NmI2NGFhYTdmMjQ5MzFhMmM3MTlhN2U1YzYwOWVkNTBmODU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcApAQCAtNDIsMTQgKzQyLDE0IEBAIERPTVdpbmRv
d1Byb3BlcnR5OjpET01XaW5kb3dQcm9wZXJ0eShGcmFtZSogZnJhbWUpCiAgICAgLy8gV2Ugc2hv
dWxkIGZpeCB0aGF0LiAgPHJkYXI6Ly9wcm9ibGVtLzExNTY3MTMyPgogICAgIGlmIChtX2ZyYW1l
KSB7CiAgICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdyA9IG1fZnJhbWUtPmRvY3VtZW50KCkt
PmRvbVdpbmRvdygpOwotICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ctPnJlZ2lzdGVyUHJv
cGVydHkodGhpcyk7CisgICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+cmVnaXN0ZXJQcm9w
ZXJ0eSgqdGhpcyk7CiAgICAgfQogfQogCiBET01XaW5kb3dQcm9wZXJ0eTo6fkRPTVdpbmRvd1By
b3BlcnR5KCkKIHsKICAgICBpZiAobV9hc3NvY2lhdGVkRE9NV2luZG93KQotICAgICAgICBtX2Fz
c29jaWF0ZWRET01XaW5kb3ctPnVucmVnaXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAgICAgICAgbV9h
c3NvY2lhdGVkRE9NV2luZG93LT51bnJlZ2lzdGVyUHJvcGVydHkoKnRoaXMpOwogCiAgICAgbV9h
c3NvY2lhdGVkRE9NV2luZG93ID0gbnVsbHB0cjsKICAgICBtX2ZyYW1lID0gbnVsbHB0cjsKQEAg
LTg2LDcgKzg2LDcgQEAgdm9pZCBET01XaW5kb3dQcm9wZXJ0eTo6d2lsbERlc3Ryb3lHbG9iYWxP
YmplY3RJbkNhY2hlZEZyYW1lKCkKICAgICAvLyBET01XaW5kb3dQcm9wZXJ0eSBsaWZldGltZSBp
c24ndCB0aWVkIGRpcmVjdGx5IHRvIHRoZSBET01XaW5kb3cgaXRzZWxmIHNvIGl0IGlzIGltcG9y
dGFudCB0aGF0IGl0IHVucmVnaXN0ZXIKICAgICAvLyBpdHNlbGYgZnJvbSBhbnkgRE9NV2luZG93
IGl0IGlzIGFzc29jaWF0ZWQgd2l0aCBpZiB0aGF0IERPTVdpbmRvdyBpcyBnb2luZyBhd2F5Lgog
ICAgIGlmIChtX2Fzc29jaWF0ZWRET01XaW5kb3cpCi0gICAgICAgIG1fYXNzb2NpYXRlZERPTVdp
bmRvdy0+dW5yZWdpc3RlclByb3BlcnR5KHRoaXMpOworICAgICAgICBtX2Fzc29jaWF0ZWRET01X
aW5kb3ctPnVucmVnaXN0ZXJQcm9wZXJ0eSgqdGhpcyk7CiAgICAgbV9hc3NvY2lhdGVkRE9NV2lu
ZG93ID0gbnVsbHB0cjsKICAgICBtX2ZyYW1lID0gbnVsbHB0cjsKIH0KQEAgLTEwMCw3ICsxMDAs
NyBAQCB2b2lkIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJh
bWUoKQogICAgIC8vIERPTVdpbmRvd1Byb3BlcnR5IGxpZmV0aW1lIGlzbid0IHRpZWQgZGlyZWN0
bHkgdG8gdGhlIERPTVdpbmRvdyBpdHNlbGYgc28gaXQgaXMgaW1wb3J0YW50IHRoYXQgaXQgdW5y
ZWdpc3RlcgogICAgIC8vIGl0c2VsZiBmcm9tIGFueSBET01XaW5kb3cgaXQgaXMgYXNzb2NpYXRl
ZCB3aXRoIGlmIHRoYXQgRE9NV2luZG93IGlzIGdvaW5nIGF3YXkuCiAgICAgaWYgKG1fYXNzb2Np
YXRlZERPTVdpbmRvdykKLSAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93LT51bnJlZ2lzdGVy
UHJvcGVydHkodGhpcyk7CisgICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+dW5yZWdpc3Rl
clByb3BlcnR5KCp0aGlzKTsKICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3cgPSBudWxscHRyOwog
ICAgIG1fZnJhbWUgPSBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92
ZXJsYXlzLmNwcAppbmRleCBjYWEwN2E0N2JlZThmMTljZWUzNDRlZmE1NzZmNTBlZDQ1MTQ3M2Vh
Li5hZjA4MDJiYzhiZTgwMzgxZDEzMzA1M2Y3NzhmYzNhNzYzNjQzZTRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcApAQCAtNDQsNyArNDQsNyBAQCBEZWJ1Z1Bh
Z2VPdmVybGF5cyogRGVidWdQYWdlT3ZlcmxheXM6OnNoYXJlZERlYnVnT3ZlcmxheXM7CiAKIGNs
YXNzIFJlZ2lvbk92ZXJsYXkgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWdpb25PdmVybGF5PiwgcHVi
bGljIFBhZ2VPdmVybGF5OjpDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFJlZ2lvbk92ZXJsYXk+IGNyZWF0ZShNYWluRnJhbWUmLCBEZWJ1Z1BhZ2VPdmVybGF5czo6UmVn
aW9uVHlwZSk7CisgICAgc3RhdGljIFJlZlB0cjxSZWdpb25PdmVybGF5PiBjcmVhdGUoTWFpbkZy
YW1lJiwgRGVidWdQYWdlT3ZlcmxheXM6OlJlZ2lvblR5cGUpOwogICAgIHZpcnR1YWwgflJlZ2lv
bk92ZXJsYXkoKTsKIAogICAgIHZvaWQgcmVjb21wdXRlUmVnaW9uKCk7CkBAIC0xNDMsNyArMTQz
LDcgQEAgYm9vbCBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbk92ZXJsYXk6OnVwZGF0ZVJlZ2lvbigp
CiAgICAgcmV0dXJuIHJlZ2lvbkNoYW5nZWQ7CiB9CiAKLVBhc3NSZWZQdHI8UmVnaW9uT3Zlcmxh
eT4gUmVnaW9uT3ZlcmxheTo6Y3JlYXRlKE1haW5GcmFtZSYgZnJhbWUsIERlYnVnUGFnZU92ZXJs
YXlzOjpSZWdpb25UeXBlIHJlZ2lvblR5cGUpCitSZWZQdHI8UmVnaW9uT3ZlcmxheT4gUmVnaW9u
T3ZlcmxheTo6Y3JlYXRlKE1haW5GcmFtZSYgZnJhbWUsIERlYnVnUGFnZU92ZXJsYXlzOjpSZWdp
b25UeXBlIHJlZ2lvblR5cGUpCiB7CiAgICAgc3dpdGNoIChyZWdpb25UeXBlKSB7CiAgICAgY2Fz
ZSBEZWJ1Z1BhZ2VPdmVybGF5czo6UmVnaW9uVHlwZTo6V2hlZWxFdmVudEhhbmRsZXJzOgpAQCAt
MTY1LDcgKzE2NSw3IEBAIFJlZ2lvbk92ZXJsYXk6OlJlZ2lvbk92ZXJsYXkoTWFpbkZyYW1lJiBm
cmFtZSwgQ29sb3IgcmVnaW9uQ29sb3IpCiBSZWdpb25PdmVybGF5Ojp+UmVnaW9uT3ZlcmxheSgp
CiB7CiAgICAgaWYgKG1fb3ZlcmxheSkKLSAgICAgICAgbV9mcmFtZS5wYWdlT3ZlcmxheUNvbnRy
b2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheShtX292ZXJsYXkuZ2V0KCksIFBhZ2VPdmVybGF5
OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAgbV9mcmFtZS5wYWdlT3ZlcmxheUNvbnRy
b2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqbV9vdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFk
ZU1vZGU6OkRvTm90RmFkZSk7CiB9CiAKIHZvaWQgUmVnaW9uT3ZlcmxheTo6d2lsbE1vdmVUb1Bh
Z2UoUGFnZU92ZXJsYXkmLCBQYWdlKiBwYWdlKQpAQCAtMjQ4LDcgKzI0OCw3IEBAIFJlZ2lvbk92
ZXJsYXkmIERlYnVnUGFnZU92ZXJsYXlzOjplbnN1cmVSZWdpb25PdmVybGF5Rm9yRnJhbWUoTWFp
bkZyYW1lJiBmcmFtZSwKIHZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OnNob3dSZWdpb25PdmVybGF5
KE1haW5GcmFtZSYgZnJhbWUsIFJlZ2lvblR5cGUgcmVnaW9uVHlwZSkKIHsKICAgICBSZWdpb25P
dmVybGF5JiB2aXN1YWxpemVyID0gZW5zdXJlUmVnaW9uT3ZlcmxheUZvckZyYW1lKGZyYW1lLCBy
ZWdpb25UeXBlKTsKLSAgICBmcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFn
ZU92ZXJsYXkoJnZpc3VhbGl6ZXIub3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRv
Tm90RmFkZSk7CisgICAgZnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VP
dmVybGF5KHZpc3VhbGl6ZXIub3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90
RmFkZSk7CiB9CiAKIHZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OmhpZGVSZWdpb25PdmVybGF5KE1h
aW5GcmFtZSYgZnJhbWUsIFJlZ2lvblR5cGUgcmVnaW9uVHlwZSkKQEAgLTI1Nyw3ICsyNTcsNyBA
QCB2b2lkIERlYnVnUGFnZU92ZXJsYXlzOjpoaWRlUmVnaW9uT3ZlcmxheShNYWluRnJhbWUmIGZy
YW1lLCBSZWdpb25UeXBlIHJlZ2lvblR5cAogICAgIGlmIChpdCAhPSBtX2ZyYW1lUmVnaW9uT3Zl
cmxheXMuZW5kKCkpIHsKICAgICAgICAgYXV0byYgdmlzdWFsaXplcnMgPSBpdC0+dmFsdWU7CiAg
ICAgICAgIGlmIChSZWdpb25PdmVybGF5KiB2aXN1YWxpemVyID0gdmlzdWFsaXplcnNbaW5kZXhP
ZihyZWdpb25UeXBlKV0uZ2V0KCkpIHsKLSAgICAgICAgICAgIGZyYW1lLnBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCZ2aXN1YWxpemVyLT5vdmVybGF5KCksIFBh
Z2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAgICAgIGZyYW1lLnBhZ2VP
dmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KHZpc3VhbGl6ZXItPm92ZXJs
YXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgICAgICAgICAgdmlz
dWFsaXplcnNbaW5kZXhPZihyZWdpb25UeXBlKV0gPSBudWxscHRyOwogICAgICAgICB9CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCBmMjMxOGEwM2MxNGJk
MWRmODIzMjBjYzA3Yzc4OTliMjk0MjdjNjQ2Li5kZjZjZmUwNGMyN2EzZjk4NDAyMjE5YTY2Yzg4
MmIzZDQzYjZmZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAt
MTk3LDcgKzE5Nyw3IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRyYWdFeGl0ZWQoY29uc3QgRHJh
Z0RhdGEmIGRyYWdEYXRhKQogI2VuZGlmCiAgICAgICAgIFJlZlB0cjxEYXRhVHJhbnNmZXI+IGRh
dGFUcmFuc2ZlciA9IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AocG9saWN5LCBk
cmFnRGF0YSk7CiAgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0U291cmNlT3BlcmF0aW9uKGRyYWdE
YXRhLmRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzaygpKTsKLSAgICAgICAgbV9wYWdlLm1haW5G
cmFtZSgpLmV2ZW50SGFuZGxlcigpLmNhbmNlbERyYWdBbmREcm9wKGNyZWF0ZU1vdXNlRXZlbnQo
ZHJhZ0RhdGEpLCBkYXRhVHJhbnNmZXIuZ2V0KCkpOworICAgICAgICBtX3BhZ2UubWFpbkZyYW1l
KCkuZXZlbnRIYW5kbGVyKCkuY2FuY2VsRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChkcmFn
RGF0YSksICpkYXRhVHJhbnNmZXIpOwogICAgICAgICBkYXRhVHJhbnNmZXItPnNldEFjY2Vzc1Bv
bGljeShEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6Ok51bWIpOyAvLyBJbnZhbGlkYXRlIGRhdGFU
cmFuc2ZlciBoZXJlIGZvciBzZWN1cml0eS4KICAgICB9CiAgICAgbW91c2VNb3ZlZEludG9Eb2N1
bWVudChudWxscHRyKTsKQEAgLTIyNyw3ICsyMjcsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpw
ZXJmb3JtRHJhZ09wZXJhdGlvbihjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgICAg
ICAvLyBTZW5kaW5nIGFuIGV2ZW50IGNhbiByZXN1bHQgaW4gdGhlIGRlc3RydWN0aW9uIG9mIHRo
ZSB2aWV3IGFuZCBwYXJ0LgogICAgICAgICAgICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gZGF0YVRy
YW5zZmVyID0gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChEYXRhVHJhbnNmZXJB
Y2Nlc3NQb2xpY3k6OlJlYWRhYmxlLCBkcmFnRGF0YSk7CiAgICAgICAgICAgICBkYXRhVHJhbnNm
ZXItPnNldFNvdXJjZU9wZXJhdGlvbihkcmFnRGF0YS5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1h
c2soKSk7Ci0gICAgICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gbWFpbkZyYW1lLT5ldmVudEhh
bmRsZXIoKS5wZXJmb3JtRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChkcmFnRGF0YSksIGRh
dGFUcmFuc2Zlci5nZXQoKSk7CisgICAgICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gbWFpbkZy
YW1lLT5ldmVudEhhbmRsZXIoKS5wZXJmb3JtRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChk
cmFnRGF0YSksICpkYXRhVHJhbnNmZXIpOwogICAgICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRB
Y2Nlc3NQb2xpY3koRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1iKTsgLy8gSW52YWxpZGF0
ZSBkYXRhVHJhbnNmZXIgaGVyZSBmb3Igc2VjdXJpdHkuCiAgICAgICAgIH0KICAgICAgICAgaWYg
KHByZXZlbnRlZERlZmF1bHQpIHsKQEAgLTU0Nyw3ICs1NDcsNyBAQCBib29sIERyYWdDb250cm9s
bGVyOjpjb25jbHVkZUVkaXREcmFnKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIAogICAgIGlm
IChyb290RWRpdGFibGVFbGVtZW50KSB7CiAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSByb290
RWRpdGFibGVFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgICAgICBmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKHJvb3RF
ZGl0YWJsZUVsZW1lbnQuZ2V0KCkpOworICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigp
LnVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRlZCgqcm9vdEVkaXRhYmxlRWxlbWVu
dCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CkBAIC02MjEsNyArNjIxLDcgQEAgYm9vbCBE
cmFnQ29udHJvbGxlcjo6dHJ5REhUTUxEcmFnKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSwgRHJh
Z09wZXJhdGlvbiYgb3BlcmEKICAgICBkYXRhVHJhbnNmZXItPnNldFNvdXJjZU9wZXJhdGlvbihz
cmNPcE1hc2spOwogCiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50ID0gY3JlYXRlTW91c2VF
dmVudChkcmFnRGF0YSk7Ci0gICAgaWYgKCFtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLnVwZGF0
ZURyYWdBbmREcm9wKGV2ZW50LCBkYXRhVHJhbnNmZXIuZ2V0KCkpKSB7CisgICAgaWYgKCFtYWlu
RnJhbWUtPmV2ZW50SGFuZGxlcigpLnVwZGF0ZURyYWdBbmREcm9wKGV2ZW50LCAqZGF0YVRyYW5z
ZmVyKSkgewogICAgICAgICBkYXRhVHJhbnNmZXItPnNldEFjY2Vzc1BvbGljeShEYXRhVHJhbnNm
ZXJBY2Nlc3NQb2xpY3k6Ok51bWIpOyAvLyBJbnZhbGlkYXRlIGRhdGFUcmFuc2ZlciBoZXJlIGZv
ciBzZWN1cml0eS4KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAppbmRleCA5MjNlNDE2OWY3OGQwYWZmMGFjYjMzZGM2OTFiOGE5YTU4
MGQzMGVkLi41YTVhMzVlNjhhN2M4OTg4YjZlMTMwNGU0ODlhMjEyYWJkOWM3M2M0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNi0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEB3ZWJraXQub3JnKQog
ICogQ29weXJpZ2h0IChDKSAyMDEyIERpZ2lhIFBsYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCiAgKgpAQCAtMjgsMTYgKzI4LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiRXZlbnRIYW5kbGVyLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiQXV0b3Njcm9sbENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudC5oIgotI2luY2x1ZGUgIkN1cnNvci5oIgogI2luY2x1ZGUgIkN1
cnNvckxpc3QuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50RXZl
bnRRdWV1ZS5oIgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJhZ1N0
YXRlLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC05NCwxMyArOTAsMTMgQEAKICNpbmNsdWRl
ICJVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5o
IgogI2luY2x1ZGUgIldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJXaGVlbEV2ZW50RGVsdGFGaWx0
ZXIuaCIKICNpbmNsdWRlICJXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgogI2luY2x1ZGUgImh0bWxl
ZGl0aW5nLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvU3RkTGliRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogI2lmIEVOQUJM
RShJT1NfVE9VQ0hfRVZFTlRTKQogI2luY2x1ZGUgIlBsYXRmb3JtVG91Y2hFdmVudElPUy5oIgpA
QCAtMTc2LDIxICsxNzIsNiBAQCBjb25zdCBpbnQgbWF4aW11bUN1cnNvclNpemUgPSAxMjg7CiBj
b25zdCBkb3VibGUgbWluaW11bUN1cnNvclNjYWxlID0gMC4wMDE7CiAjZW5kaWYKIAotZW51bSBO
b0N1cnNvckNoYW5nZVR5cGUgeyBOb0N1cnNvckNoYW5nZSB9OwotCi1jbGFzcyBPcHRpb25hbEN1
cnNvciB7Ci1wdWJsaWM6Ci0gICAgT3B0aW9uYWxDdXJzb3IoTm9DdXJzb3JDaGFuZ2VUeXBlKSA6
IG1faXNDdXJzb3JDaGFuZ2UoZmFsc2UpIHsgfQotICAgIE9wdGlvbmFsQ3Vyc29yKGNvbnN0IEN1
cnNvciYgY3Vyc29yKSA6IG1faXNDdXJzb3JDaGFuZ2UodHJ1ZSksIG1fY3Vyc29yKGN1cnNvcikg
eyB9Ci0KLSAgICBib29sIGlzQ3Vyc29yQ2hhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9pc0N1cnNv
ckNoYW5nZTsgfQotICAgIGNvbnN0IEN1cnNvciYgY3Vyc29yKCkgY29uc3QgeyBBU1NFUlQobV9p
c0N1cnNvckNoYW5nZSk7IHJldHVybiBtX2N1cnNvcjsgfQotCi1wcml2YXRlOgotICAgIGJvb2wg
bV9pc0N1cnNvckNoYW5nZTsKLSAgICBDdXJzb3IgbV9jdXJzb3I7Ci19OwotCiBjbGFzcyBNYXhp
bXVtRHVyYXRpb25UcmFja2VyIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBNYXhpbXVtRHVyYXRp
b25UcmFja2VyKGRvdWJsZSAqbWF4RHVyYXRpb24pCkBAIC00MDUsMTIgKzM4NiwxNCBAQCBFdmVu
dEhhbmRsZXI6On5FdmVudEhhbmRsZXIoKQogfQogICAgIAogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCisKIERyYWdTdGF0ZSYgRXZlbnRIYW5kbGVyOjpkcmFnU3RhdGUoKQogewogICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxEcmFnU3RhdGU+IHN0YXRlOwogICAgIHJldHVybiBzdGF0ZTsKIH0K
LSNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQorCisjZW5kaWYKICAgICAKIHZvaWQgRXZl
bnRIYW5kbGVyOjpjbGVhcigpCiB7CkBAIC04MDAsMTQgKzc4MywxNSBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMmIGV2ZQogCiAgICAgbV9tb3VzZVByZXNzTm9kZSA9IGV2ZW50LnRhcmdldE5vZGUoKTsK
ICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnNldEZvY3VzTmF2aWdhdGlvblN0YXJ0aW5nTm9kZShl
dmVudC50YXJnZXROb2RlKCkpOworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBtX2Ry
YWdTdGFydFBvcyA9IGV2ZW50LmV2ZW50KCkucG9zaXRpb24oKTsKKyAgICBtX2RyYWdTdGFydFBv
c2l0aW9uID0gZXZlbnQuZXZlbnQoKS5wb3NpdGlvbigpOwogI2VuZGlmCiAKLSAgICBib29sIHN3
YWxsb3dFdmVudCA9IGZhbHNlOwogICAgIG1fbW91c2VQcmVzc2VkID0gdHJ1ZTsKICAgICBtX3Nl
bGVjdGlvbkluaXRpYXRpb25TdGF0ZSA9IEhhdmVOb3RTdGFydGVkU2VsZWN0aW9uOwogCisgICAg
Ym9vbCBzd2FsbG93RXZlbnQgPSBmYWxzZTsKICAgICBpZiAoZXZlbnQuZXZlbnQoKS5jbGlja0Nv
dW50KCkgPT0gMikKICAgICAgICAgc3dhbGxvd0V2ZW50ID0gaGFuZGxlTW91c2VQcmVzc0V2ZW50
RG91YmxlQ2xpY2soZXZlbnQpOwogICAgIGVsc2UgaWYgKGV2ZW50LmV2ZW50KCkuY2xpY2tDb3Vu
dCgpID49IDMpCkBAIC05NzcsMTEgKzk2MSwxMSBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRl
U2VsZWN0aW9uRm9yTW91c2VEcmFnKGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bAog
ICAgICAgICBuZXdTZWxlY3Rpb24uc2V0RXh0ZW50KHBvc2l0aW9uQWZ0ZXJOb2RlKHJvb3RVc2Vy
U2VsZWN0QWxsRm9yTW91c2VQcmVzc05vZGUpLmRvd25zdHJlYW0oQ2FuQ3Jvc3NFZGl0aW5nQm91
bmRhcnkpKTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBSZXNldCBiYXNlIGZvciB1c2VyIHNl
bGVjdCBhbGwgd2hlbiBiYXNlIGlzIGluc2lkZSB1c2VyLXNlbGVjdC1hbGwgYXJlYSBhbmQgZXh0
ZW50IDwgYmFzZS4KLSAgICAgICAgaWYgKHJvb3RVc2VyU2VsZWN0QWxsRm9yTW91c2VQcmVzc05v
ZGUgJiYgY29tcGFyZVBvc2l0aW9ucyh0YXJnZXQtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9yUG9p
bnQoaGl0VGVzdFJlc3VsdC5sb2NhbFBvaW50KCksIG51bGxwdHIpLCBtX21vdXNlUHJlc3NOb2Rl
LT5yZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50KG1fZHJhZ1N0YXJ0UG9zLCBudWxscHRyKSkg
PCAwKQorICAgICAgICBpZiAocm9vdFVzZXJTZWxlY3RBbGxGb3JNb3VzZVByZXNzTm9kZSAmJiBj
b21wYXJlUG9zaXRpb25zKHRhcmdldC0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChoaXRU
ZXN0UmVzdWx0LmxvY2FsUG9pbnQoKSwgbnVsbHB0ciksIG1fbW91c2VQcmVzc05vZGUtPnJlbmRl
cmVyKCktPnBvc2l0aW9uRm9yUG9pbnQobV9kcmFnU3RhcnRQb3NpdGlvbiwgbnVsbHB0cikpIDwg
MCkKICAgICAgICAgICAgIG5ld1NlbGVjdGlvbi5zZXRCYXNlKHBvc2l0aW9uQWZ0ZXJOb2RlKHJv
b3RVc2VyU2VsZWN0QWxsRm9yTW91c2VQcmVzc05vZGUpLmRvd25zdHJlYW0oQ2FuQ3Jvc3NFZGl0
aW5nQm91bmRhcnkpKTsKICAgICAgICAgCiAgICAgICAgIE5vZGUqIHJvb3RVc2VyU2VsZWN0QWxs
Rm9yVGFyZ2V0ID0gUG9zaXRpb246OnJvb3RVc2VyU2VsZWN0QWxsRm9yTm9kZSh0YXJnZXQpOwot
ICAgICAgICBpZiAocm9vdFVzZXJTZWxlY3RBbGxGb3JUYXJnZXQgJiYgbV9tb3VzZVByZXNzTm9k
ZS0+cmVuZGVyZXIoKSAmJiBjb21wYXJlUG9zaXRpb25zKHRhcmdldC0+cmVuZGVyZXIoKS0+cG9z
aXRpb25Gb3JQb2ludChoaXRUZXN0UmVzdWx0LmxvY2FsUG9pbnQoKSwgbnVsbHB0ciksIG1fbW91
c2VQcmVzc05vZGUtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9yUG9pbnQobV9kcmFnU3RhcnRQb3Ms
IG51bGxwdHIpKSA8IDApCisgICAgICAgIGlmIChyb290VXNlclNlbGVjdEFsbEZvclRhcmdldCAm
JiBtX21vdXNlUHJlc3NOb2RlLT5yZW5kZXJlcigpICYmIGNvbXBhcmVQb3NpdGlvbnModGFyZ2V0
LT5yZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50KGhpdFRlc3RSZXN1bHQubG9jYWxQb2ludCgp
LCBudWxscHRyKSwgbV9tb3VzZVByZXNzTm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2lu
dChtX2RyYWdTdGFydFBvc2l0aW9uLCBudWxscHRyKSkgPCAwKQogICAgICAgICAgICAgbmV3U2Vs
ZWN0aW9uLnNldEV4dGVudChwb3NpdGlvbkJlZm9yZU5vZGUocm9vdFVzZXJTZWxlY3RBbGxGb3JU
YXJnZXQpLnVwc3RyZWFtKENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KSk7CiAgICAgICAgIGVsc2Ug
aWYgKHJvb3RVc2VyU2VsZWN0QWxsRm9yVGFyZ2V0ICYmIG1fbW91c2VQcmVzc05vZGUtPnJlbmRl
cmVyKCkpCiAgICAgICAgICAgICBuZXdTZWxlY3Rpb24uc2V0RXh0ZW50KHBvc2l0aW9uQWZ0ZXJO
b2RlKHJvb3RVc2VyU2VsZWN0QWxsRm9yVGFyZ2V0KS5kb3duc3RyZWFtKENhbkNyb3NzRWRpdGlu
Z0JvdW5kYXJ5KSk7CkBAIC0xMDQ3LDcgKzEwMzEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFu
ZGxlTW91c2VSZWxlYXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYg
ZQogICAgIC8vIGVkaXRpbmcsIHBsYWNlIHRoZSBjYXJldC4KICAgICBpZiAobV9tb3VzZURvd25X
YXNTaW5nbGVDbGlja0luU2VsZWN0aW9uICYmIG1fc2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlICE9
IEV4dGVuZGVkU2VsZWN0aW9uCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICAgICAgICAg
ICYmIG1fZHJhZ1N0YXJ0UG9zID09IGV2ZW50LmV2ZW50KCkucG9zaXRpb24oKQorICAgICAgICAg
ICAgJiYgbV9kcmFnU3RhcnRQb3NpdGlvbiA9PSBldmVudC5ldmVudCgpLnBvc2l0aW9uKCkKICNl
bmRpZgogICAgICAgICAgICAgJiYgbV9mcmFtZS5zZWxlY3Rpb24oKS5pc1JhbmdlKCkKICAgICAg
ICAgICAgICYmIGV2ZW50LmV2ZW50KCkuYnV0dG9uKCkgIT0gUmlnaHRCdXR0b24pIHsKQEAgLTEw
ODQsMTIgKzEwNjgsMTIgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRpZFBhblNjcm9sbFN0b3AoKQog
ICAgIG1fYXV0b3Njcm9sbENvbnRyb2xsZXItPmRpZFBhblNjcm9sbFN0b3AoKTsKIH0KIAotdm9p
ZCBFdmVudEhhbmRsZXI6OnN0YXJ0UGFuU2Nyb2xsaW5nKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVy
KQordm9pZCBFdmVudEhhbmRsZXI6OnN0YXJ0UGFuU2Nyb2xsaW5nKFJlbmRlckVsZW1lbnQmIHJl
bmRlcmVyKQogewogI2lmICFQTEFURk9STShJT1MpCi0gICAgaWYgKCFpczxSZW5kZXJCb3g+KCpy
ZW5kZXJlcikpCisgICAgaWYgKCFpczxSZW5kZXJCb3g+KHJlbmRlcmVyKSkKICAgICAgICAgcmV0
dXJuOwotICAgIG1fYXV0b3Njcm9sbENvbnRyb2xsZXItPnN0YXJ0UGFuU2Nyb2xsaW5nKGRvd25j
YXN0PFJlbmRlckJveD4ocmVuZGVyZXIpLCBsYXN0S25vd25Nb3VzZVBvc2l0aW9uKCkpOworICAg
IG1fYXV0b3Njcm9sbENvbnRyb2xsZXItPnN0YXJ0UGFuU2Nyb2xsaW5nKCZkb3duY2FzdDxSZW5k
ZXJCb3g+KHJlbmRlcmVyKSwgbGFzdEtub3duTW91c2VQb3NpdGlvbigpKTsKICAgICBpbnZhbGlk
YXRlQ2xpY2soKTsKICNlbmRpZgogfQpAQCAtMTM3NCwyNCArMTM1OCwyOCBAQCB2b2lkIEV2ZW50
SGFuZGxlcjo6dXBkYXRlQ3Vyc29yKCkKICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCh2aWV3LT53
aW5kb3dUb0NvbnRlbnRzKG1fbGFzdEtub3duTW91c2VQb3NpdGlvbikpOwogICAgIHJlbmRlclZp
ZXctPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKIAotICAgIE9wdGlvbmFsQ3Vyc29yIG9wdGlv
bmFsQ3Vyc29yID0gc2VsZWN0Q3Vyc29yKHJlc3VsdCwgc2hpZnRLZXkpOwotICAgIGlmIChvcHRp
b25hbEN1cnNvci5pc0N1cnNvckNoYW5nZSgpKSB7Ci0gICAgICAgIG1fY3VycmVudE1vdXNlQ3Vy
c29yID0gb3B0aW9uYWxDdXJzb3IuY3Vyc29yKCk7Ci0gICAgICAgIHZpZXctPnNldEN1cnNvciht
X2N1cnJlbnRNb3VzZUN1cnNvcik7CisgICAgdXBkYXRlQ3Vyc29yKCp2aWV3LCByZXN1bHQsIHNo
aWZ0S2V5KTsKK30KKwordm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZUN1cnNvcihGcmFtZVZpZXcm
IHZpZXcsIGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaGlmdEtleSkKK3sKKyAg
ICBpZiAoYXV0byBvcHRpb25hbEN1cnNvciA9IHNlbGVjdEN1cnNvcihyZXN1bHQsIHNoaWZ0S2V5
KSkgeworICAgICAgICBtX2N1cnJlbnRNb3VzZUN1cnNvciA9IFdURk1vdmUob3B0aW9uYWxDdXJz
b3IudmFsdWUoKSk7CisgICAgICAgIHZpZXcuc2V0Q3Vyc29yKG1fY3VycmVudE1vdXNlQ3Vyc29y
KTsKICAgICB9CiB9CiAKLU9wdGlvbmFsQ3Vyc29yIEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29y
KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaGlmdEtleSkKK3N0ZDo6b3B0aW9u
YWw8Q3Vyc29yPiBFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0
JiByZXN1bHQsIGJvb2wgc2hpZnRLZXkpCiB7CiAgICAgaWYgKG1fcmVzaXplTGF5ZXIgJiYgbV9y
ZXNpemVMYXllci0+aW5SZXNpemVNb2RlKCkpCi0gICAgICAgIHJldHVybiBOb0N1cnNvckNoYW5n
ZTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIGlmICghbV9mcmFtZS5wYWdl
KCkpCi0gICAgICAgIHJldHVybiBOb0N1cnNvckNoYW5nZTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKIAogI2lmIEVOQUJMRShQQU5fU0NST0xMSU5HKQogICAgIGlmIChtX2ZyYW1lLm1h
aW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLnBhblNjcm9sbEluUHJvZ3Jlc3MoKSkKLSAgICAgICAg
cmV0dXJuIE5vQ3Vyc29yQ2hhbmdlOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogI2Vu
ZGlmCiAKICAgICBSZWY8RnJhbWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUpOwpAQCAtMTQwNiw3
ICsxMzk0LDcgQEAgT3B0aW9uYWxDdXJzb3IgRXZlbnRIYW5kbGVyOjpzZWxlY3RDdXJzb3IoY29u
c3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBib29sIHNoaWYKIAogICAgIE5vZGUqIG5vZGUgPSBy
ZXN1bHQudGFyZ2V0Tm9kZSgpOwogICAgIGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJuIE5vQ3Vy
c29yQ2hhbmdlOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgYXV0byByZW5k
ZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgYXV0byogc3R5bGUgPSByZW5kZXJlciA/ICZy
ZW5kZXJlci0+c3R5bGUoKSA6IG51bGxwdHI7CkBAIC0xNDI4LDcgKzE0MTYsNyBAQCBPcHRpb25h
bEN1cnNvciBFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiBy
ZXN1bHQsIGJvb2wgc2hpZgogICAgICAgICBjYXNlIFNldEN1cnNvcjoKICAgICAgICAgICAgIHJl
dHVybiBvdmVycmlkZUN1cnNvcjsKICAgICAgICAgY2FzZSBEb05vdFNldEN1cnNvcjoKLSAgICAg
ICAgICAgIHJldHVybiBOb0N1cnNvckNoYW5nZTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTE5NDcsMTUgKzE5MzUsMTAgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVu
dCYgcGxhdGZvcm1Nb3VzZUUKICAgICAgICAgLy8gbm9kZSB0byBiZSBkZXRhY2hlZCBmcm9tIGl0
cyBGcmFtZVZpZXcsIGluIHdoaWNoIGNhc2UgdGhlIGV2ZW50IHNob3VsZCBub3QgYmUgcGFzc2Vk
LgogICAgICAgICBpZiAobmV3U3ViZnJhbWUtPnZpZXcoKSkKICAgICAgICAgICAgIHN3YWxsb3dF
dmVudCB8PSBwYXNzTW91c2VNb3ZlRXZlbnRUb1N1YmZyYW1lKG1vdXNlRXZlbnQsIG5ld1N1YmZy
YW1lLmdldCgpLCBob3ZlcmVkTm9kZSk7Ci0jaWYgRU5BQkxFKENVUlNPUl9TVVBQT1JUKQogICAg
IH0gZWxzZSB7Ci0gICAgICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLnZpZXcoKSkg
ewotICAgICAgICAgICAgT3B0aW9uYWxDdXJzb3Igb3B0aW9uYWxDdXJzb3IgPSBzZWxlY3RDdXJz
b3IobW91c2VFdmVudC5oaXRUZXN0UmVzdWx0KCksIHBsYXRmb3JtTW91c2VFdmVudC5zaGlmdEtl
eSgpKTsKLSAgICAgICAgICAgIGlmIChvcHRpb25hbEN1cnNvci5pc0N1cnNvckNoYW5nZSgpKSB7
Ci0gICAgICAgICAgICAgICAgbV9jdXJyZW50TW91c2VDdXJzb3IgPSBvcHRpb25hbEN1cnNvci5j
dXJzb3IoKTsKLSAgICAgICAgICAgICAgICB2aWV3LT5zZXRDdXJzb3IobV9jdXJyZW50TW91c2VD
dXJzb3IpOwotICAgICAgICAgICAgfQotICAgICAgICB9CisjaWYgRU5BQkxFKENVUlNPUl9TVVBQ
T1JUKQorICAgICAgICBpZiAoYXV0byogdmlldyA9IG1fZnJhbWUudmlldygpKQorICAgICAgICAg
ICAgdXBkYXRlQ3Vyc29yKCp2aWV3LCBtb3VzZUV2ZW50LmhpdFRlc3RSZXN1bHQoKSwgcGxhdGZv
cm1Nb3VzZUV2ZW50LnNoaWZ0S2V5KCkpOwogI2VuZGlmCiAgICAgfQogICAgIApAQCAtMTk2OCw3
ICsxOTUxLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYgcGxhdGZvcm1Nb3VzZUUKICNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKQogICAgIGlmICghc3dhbGxvd0V2ZW50KQogICAgICAgICBzd2FsbG93RXZlbnQgPSBoYW5k
bGVNb3VzZURyYWdnZWRFdmVudChtb3VzZUV2ZW50KTsKLSNlbmRpZiAvLyBFTkFCTEUoRFJBR19T
VVBQT1JUKQorI2VuZGlmCiAKICAgICByZXR1cm4gc3dhbGxvd0V2ZW50OwogfQpAQCAtMjIzNiw3
ICsyMjE5LDcgQEAgc3RhdGljIGJvb2wgZmluZERyb3Bab25lKE5vZGUqIHRhcmdldCwgRGF0YVRy
YW5zZmVyKiBkYXRhVHJhbnNmZXIpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogICAgIAotYm9vbCBF
dmVudEhhbmRsZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
ZXZlbnQsIERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQorYm9vbCBFdmVudEhhbmRsZXI6OnVw
ZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFu
c2ZlciYgZGF0YVRyYW5zZmVyKQogewogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9m
cmFtZSk7CiAKQEAgLTIyNzUsMTYgKzIyNTgsMTYgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0
ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2YK
ICAgICAgICAgICAgICAgICAvLyBmb3Igbm93IHdlIGRvbid0IGNhcmUgaWYgZXZlbnQgaGFuZGxl
ciBjYW5jZWxzIGRlZmF1bHQgYmVoYXZpb3IsIHNpbmNlIHRoZXJlIGlzIG5vbmUKICAgICAgICAg
ICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVudChldmVudE5hbWVzKCkuZHJhZ0V2ZW50LCBldmVu
dCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVu
dChldmVudE5hbWVzKCkuZHJhZ2VudGVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCBkYXRhVHJh
bnNmZXIpOworICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1l
cygpLmRyYWdlbnRlckV2ZW50LCAqbmV3VGFyZ2V0LCBldmVudCwgJmRhdGFUcmFuc2Zlcik7CiAg
ICAgICAgICAgICBpZiAoIWFjY2VwdCkKLSAgICAgICAgICAgICAgICBhY2NlcHQgPSBmaW5kRHJv
cFpvbmUobmV3VGFyZ2V0LmdldCgpLCBkYXRhVHJhbnNmZXIpOworICAgICAgICAgICAgICAgIGFj
Y2VwdCA9IGZpbmREcm9wWm9uZShuZXdUYXJnZXQuZ2V0KCksICZkYXRhVHJhbnNmZXIpOwogICAg
ICAgICB9CiAKICAgICAgICAgaWYgKHRhcmdldElzRnJhbWUobV9kcmFnVGFyZ2V0LmdldCgpLCB0
YXJnZXRGcmFtZSkpIHsKICAgICAgICAgICAgIGlmICh0YXJnZXRGcmFtZSkKICAgICAgICAgICAg
ICAgICBhY2NlcHQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ0FuZERy
b3AoZXZlbnQsIGRhdGFUcmFuc2Zlcik7CiAgICAgICAgIH0gZWxzZSBpZiAobV9kcmFnVGFyZ2V0
KQotICAgICAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2
ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgZGF0YVRyYW5zZmVyKTsKKyAgICAgICAgICAgIGRp
c3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnbGVhdmVFdmVudCwgKm1fZHJhZ1Rhcmdl
dCwgZXZlbnQsICZkYXRhVHJhbnNmZXIpOwogCiAgICAgICAgIGlmIChuZXdUYXJnZXQpIHsKICAg
ICAgICAgICAgIC8vIFdlIGRvIG5vdCBleHBsaWNpdGx5IGNhbGwgZGlzcGF0Y2hEcmFnRXZlbnQg
aGVyZSBiZWNhdXNlIGl0IGNvdWxkIHVsdGltYXRlbHkgcmVzdWx0IGluIHRoZSBhcHBlYXJhbmNl
IHRoYXQKQEAgLTIzMDIsOSArMjI4NSw5IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFn
QW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmCiAgICAg
ICAgICAgICAgICAgLy8gZm9yIG5vdyB3ZSBkb24ndCBjYXJlIGlmIGV2ZW50IGhhbmRsZXIgY2Fu
Y2VscyBkZWZhdWx0IGJlaGF2aW9yLCBzaW5jZSB0aGVyZSBpcyBub25lCiAgICAgICAgICAgICAg
ICAgZGlzcGF0Y2hEcmFnU3JjRXZlbnQoZXZlbnROYW1lcygpLmRyYWdFdmVudCwgZXZlbnQpOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZl
bnROYW1lcygpLmRyYWdvdmVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNmZXIp
OworICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRy
YWdvdmVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCAmZGF0YVRyYW5zZmVyKTsKICAgICAgICAg
ICAgIGlmICghYWNjZXB0KQotICAgICAgICAgICAgICAgIGFjY2VwdCA9IGZpbmREcm9wWm9uZShu
ZXdUYXJnZXQuZ2V0KCksIGRhdGFUcmFuc2Zlcik7CisgICAgICAgICAgICAgICAgYWNjZXB0ID0g
ZmluZERyb3Bab25lKG5ld1RhcmdldC5nZXQoKSwgJmRhdGFUcmFuc2Zlcik7CiAgICAgICAgICAg
ICBtX3Nob3VsZE9ubHlGaXJlRHJhZ092ZXJFdmVudCA9IGZhbHNlOwogICAgICAgICB9CiAgICAg
fQpAQCAtMjMxMiw3ICsyMjk1LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdBbmRE
cm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2YKICAgICByZXR1
cm4gYWNjZXB0OwogfQogCi12b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsRHJhZ0FuZERyb3AoY29u
c3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIp
Cit2b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3Vz
ZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIpCiB7CiAgICAgUmVmPEZy
YW1lPiBwcm90ZWN0ZWRGcmFtZShtX2ZyYW1lKTsKIApAQCAtMjMyMywxMiArMjMwNiwxMiBAQCB2
b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiBldmVudCwgRGF0YVRyYW5zZgogICAgIH0gZWxzZSBpZiAobV9kcmFnVGFyZ2V0KSB7CiAg
ICAgICAgIGlmIChkcmFnU3RhdGUoKS5zb3VyY2UgJiYgZHJhZ1N0YXRlKCkuc2hvdWxkRGlzcGF0
Y2hFdmVudHMpCiAgICAgICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVudChldmVudE5hbWVzKCku
ZHJhZ0V2ZW50LCBldmVudCk7Ci0gICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMo
KS5kcmFnbGVhdmVFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsIGRhdGFUcmFuc2Zlcik7Cisg
ICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnbGVhdmVFdmVudCwgKm1f
ZHJhZ1RhcmdldCwgZXZlbnQsICZkYXRhVHJhbnNmZXIpOwogICAgIH0KICAgICBjbGVhckRyYWdT
dGF0ZSgpOwogfQogCi1ib29sIEV2ZW50SGFuZGxlcjo6cGVyZm9ybURyYWdBbmREcm9wKGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQor
Ym9vbCBFdmVudEhhbmRsZXI6OnBlcmZvcm1EcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlcikKIHsKICAgICBSZWY8RnJh
bWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUpOwogCkBAIC0yMzM4LDcgKzIzMjEsNyBAQCBib29s
IEV2ZW50SGFuZGxlcjo6cGVyZm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVu
dCYgZXZlbnQsIERhdGFUcmFucwogICAgICAgICBpZiAodGFyZ2V0RnJhbWUpCiAgICAgICAgICAg
ICBwcmV2ZW50ZWREZWZhdWx0ID0gdGFyZ2V0RnJhbWUtPmV2ZW50SGFuZGxlcigpLnBlcmZvcm1E
cmFnQW5kRHJvcChldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICB9IGVsc2UgaWYgKG1fZHJhZ1Rh
cmdldCkKLSAgICAgICAgcHJldmVudGVkRGVmYXVsdCA9IGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50
TmFtZXMoKS5kcm9wRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNmZXIpOwor
ICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygp
LmRyb3BFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsICZkYXRhVHJhbnNmZXIpOwogICAgIGNs
ZWFyRHJhZ1N0YXRlKCk7CiAgICAgcmV0dXJuIHByZXZlbnRlZERlZmF1bHQ7CiB9CkBAIC0yMzUz
LDkgKzIzMzYsMTAgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyRHJhZ1N0YXRlKCkKICAgICBt
X3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwogI2VuZGlmCiB9CisKICNlbmRpZiAvLyBF
TkFCTEUoRFJBR19TVVBQT1JUKQogCi12b2lkIEV2ZW50SGFuZGxlcjo6c2V0Q2FwdHVyaW5nTW91
c2VFdmVudHNFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKK3ZvaWQgRXZlbnRI
YW5kbGVyOjpzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQoRWxlbWVudCogZWxlbWVudCkK
IHsKICAgICBtX2NhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCA9IGVsZW1lbnQ7CiAgICAgbV9l
dmVudEhhbmRsZXJXaWxsUmVzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQgPSBmYWxzZTsK
QEAgLTI1NjMsNyArMjU0Nyw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqIHRhcmdlCiAKICAgICAvLyBJ
ZiBmb2N1cyBzaGlmdCBpcyBibG9ja2VkLCB3ZSBlYXQgdGhlIGV2ZW50LgogICAgIGF1dG8qIHBh
Z2UgPSBtX2ZyYW1lLnBhZ2UoKTsKLSAgICBpZiAocGFnZSAmJiAhcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQoZWxlbWVudCwgJm1fZnJhbWUpKQorICAgIGlmIChwYWdl
ICYmICFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChlbGVtZW50LCBt
X2ZyYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0z
NDExLDExICszMzk1LDExIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkcmFnU291cmNlRW5kZWRBdChj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEcmFnT3BlcmF0CiAgICAgbV9tb3VzZURv
d25NYXlTdGFydERyYWcgPSBmYWxzZTsKIH0KIAotdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZURy
YWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRlZChFbGVtZW50KiByb290RWRpdGFibGVFbGVtZW50
KQordm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRl
ZChFbGVtZW50JiByb290RWRpdGFibGVFbGVtZW50KQogewogICAgIC8vIElmIGluc2VydGluZyB0
aGUgZHJhZ2dlZCBjb250ZW50cyByZW1vdmVkIHRoZSBkcmFnIHNvdXJjZSwgd2Ugc3RpbGwgd2Fu
dCB0byBmaXJlIGRyYWdlbmQgYXQgdGhlIHJvb3QgZWRpdGFibGUgZWxlbWVudC4KICAgICBpZiAo
ZHJhZ1N0YXRlKCkuc291cmNlICYmICFkcmFnU3RhdGUoKS5zb3VyY2UtPmluRG9jdW1lbnQoKSkK
LSAgICAgICAgZHJhZ1N0YXRlKCkuc291cmNlID0gcm9vdEVkaXRhYmxlRWxlbWVudDsKKyAgICAg
ICAgZHJhZ1N0YXRlKCkuc291cmNlID0gJnJvb3RFZGl0YWJsZUVsZW1lbnQ7CiB9CiAKIC8vIFJl
dHVybiB2YWx1ZSBpbmRpY2F0ZXMgaWYgd2Ugc2hvdWxkIGNvbnRpbnVlICJkZWZhdWx0IHByb2Nl
c3NpbmciLCBpLmUuLCB3aGV0aGVyIGV2ZW50IGhhbmRsZXIgY2FuY2VsZWQuCkBAIC0zNjI1LDI1
ICszNjA5LDI0IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVUZXh0SW5wdXRFdmVudChjb25z
dCBTdHJpbmcmIHRleHQsIEV2ZW50KiB1bmRlcmx5aW5nRXZlCiAgICAgcmV0dXJuIGV2ZW50LT5k
ZWZhdWx0SGFuZGxlZCgpOwogfQogICAgIAotYm9vbCBFdmVudEhhbmRsZXI6OmlzS2V5Ym9hcmRP
cHRpb25UYWIoS2V5Ym9hcmRFdmVudCogZXZlbnQpCitib29sIEV2ZW50SGFuZGxlcjo6aXNLZXli
b2FyZE9wdGlvblRhYihLZXlib2FyZEV2ZW50JiBldmVudCkKIHsKLSAgICByZXR1cm4gZXZlbnQK
LSAgICAgICAgJiYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCB8
fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KQotICAgICAgICAm
JiBldmVudC0+YWx0S2V5KCkKLSAgICAgICAgJiYgZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9PSAi
VSswMDA5IjsgICAgCisgICAgcmV0dXJuIChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtl
eWRvd25FdmVudCB8fCBldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQp
CisgICAgICAgICYmIGV2ZW50LmFsdEtleSgpCisgICAgICAgICYmIGV2ZW50LmtleUlkZW50aWZp
ZXIoKSA9PSAiVSswMDA5IjsKIH0KIAotYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1Rh
YnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdChLZXlib2FyZEV2ZW50KiBldmVudCkKK2Jvb2wgRXZl
bnRIYW5kbGVyOjpldmVudEludmVydHNUYWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQoS2V5Ym9h
cmRFdmVudCYgZXZlbnQpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEVGTCkK
LSAgICByZXR1cm4gRXZlbnRIYW5kbGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKGV2ZW50KTsKKyAg
ICByZXR1cm4gaXNLZXlib2FyZE9wdGlvblRhYihldmVudCk7CiAjZWxzZQogICAgIFVOVVNFRF9Q
QVJBTShldmVudCk7CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CiAKLWJvb2wgRXZlbnRI
YW5kbGVyOjp0YWJzVG9MaW5rcyhLZXlib2FyZEV2ZW50KiBldmVudCkgY29uc3QKK2Jvb2wgRXZl
bnRIYW5kbGVyOjp0YWJzVG9MaW5rcyhLZXlib2FyZEV2ZW50JiBldmVudCkgY29uc3QKIHsKICAg
ICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBuZWVkcyBhIGJldHRlciBuYW1lLiBJdCBjYW4gYmUg
Y2FsbGVkIGZvciBrZXlwcmVzc2VzIG90aGVyIHRoYW4gVGFiIHdoZW4gc3BhdGlhbCBuYXZpZ2F0
aW9uIGlzIGVuYWJsZWQuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IGRlNzhi
Y2FlODRhNzY2NGRlMjhkNWQxNzkwNmI5YTNkYjJlMWI0MjMuLjZlZDdhZTMzOTVjODAyNjNkNGE3
NzAwZmNhMGFmMGY2ZWY5MThjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMxLDMwICszMSwzMSBAQAogI2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
TGF5b3V0UG9pbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKLSNpbmNsdWRl
ICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1
ZGUgIlRleHRFdmVudElucHV0VHlwZS5oIgogI2luY2x1ZGUgIlRleHRHcmFudWxhcml0eS5oIgog
I2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSAiV2hlZWxFdmVudERlbHRhRmlsdGVyLmgiCiAj
aW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
IAorI2lmIFBMQVRGT1JNKENPQ09BKQorT0JKQ19DTEFTUyBOU1ZpZXc7CisjZW5kaWYKKwogI2lm
IFBMQVRGT1JNKElPUykKIE9CSkNfQ0xBU1MgV2ViRXZlbnQ7Ci1PQkpDX0NMQVNTIFdBS1ZpZXc7
Ci0jaWZkZWYgX19PQkpDX18KLSNpbmNsdWRlICJXQUtBcHBLaXRTdHVicy5oIgogI2VuZGlmCi0j
ZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi1PQkpDX0NMQVNT
IE5TVmlldzsKKyNpZiBQTEFURk9STShNQUMpCitPQkpDX0NMQVNTIE5TRXZlbnQ7CisjZW5kaWYK
KworI2lmIFBMQVRGT1JNKElPUykgJiYgZGVmaW5lZChfX09CSkNfXykKKyNpbmNsdWRlICJXQUtB
cHBLaXRTdHVicy5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY2LDE2ICs2
NywxNCBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBFdmVudDsKIGNs
YXNzIEV2ZW50VGFyZ2V0OwotY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIEZsb2F0UXVhZDsKIGNs
YXNzIEZyYW1lOworY2xhc3MgRnJhbWVWaWV3OwogY2xhc3MgSFRNTEZyYW1lU2V0RWxlbWVudDsK
LWNsYXNzIEhpdFRlc3RSZXF1ZXN0OwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEtleWJv
YXJkRXZlbnQ7CiBjbGFzcyBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3MgTm9k
ZTsKLWNsYXNzIE9wdGlvbmFsQ3Vyc29yOwogY2xhc3MgUGxhdGZvcm1HZXN0dXJlRXZlbnQ7CiBj
bGFzcyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ7CiBjbGFzcyBQbGF0Zm9ybVRvdWNoRXZlbnQ7CkBA
IC0xMDAsNyArOTksNyBAQCBleHRlcm4gY29uc3QgaW50IExpbmtEcmFnSHlzdGVyZXNpczsKIGV4
dGVybiBjb25zdCBpbnQgSW1hZ2VEcmFnSHlzdGVyZXNpczsKIGV4dGVybiBjb25zdCBpbnQgVGV4
dERyYWdIeXN0ZXJlc2lzOwogZXh0ZXJuIGNvbnN0IGludCBHZW5lcmFsRHJhZ0h5c3RlcmVzaXM7
Ci0jZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNlbmRpZgogCiAjaWYgRU5BQkxFKElP
U19HRVNUVVJFX0VWRU5UUykgfHwgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKIGV4dGVybiBj
b25zdCBmbG9hdCBHZXN0dXJlVW5rbm93bjsKQEAgLTEyMCw3ICsxMTksNiBAQCBlbnVtIGNsYXNz
IEltbWVkaWF0ZUFjdGlvblN0YWdlIHsKIH07CiAKIGNsYXNzIEV2ZW50SGFuZGxlciB7Ci0gICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoRXZlbnRIYW5kbGVyKTsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBFdmVudEhhbmRsZXIoRnJhbWUmKTsKQEAg
LTEzNiw3ICsxMzQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCiAgICAg
dm9pZCBkaWRQYW5TY3JvbGxTdGFydCgpOwogICAgIHZvaWQgZGlkUGFuU2Nyb2xsU3RvcCgpOwot
ICAgIHZvaWQgc3RhcnRQYW5TY3JvbGxpbmcoUmVuZGVyRWxlbWVudCopOworICAgIHZvaWQgc3Rh
cnRQYW5TY3JvbGxpbmcoUmVuZGVyRWxlbWVudCYpOwogI2VuZGlmCiAKICAgICB2b2lkIHN0b3BB
dXRvc2Nyb2xsVGltZXIoYm9vbCByZW5kZXJlcklzQmVpbmdEZXN0cm95ZWQgPSBmYWxzZSk7CkBA
IC0xNTYsMTMgKzE1NCwxMyBAQCBwdWJsaWM6CiAgICAgYm9vbCBtb3VzZVByZXNzZWQoKSBjb25z
dCB7IHJldHVybiBtX21vdXNlUHJlc3NlZDsgfQogICAgIE5vZGUqIG1vdXNlUHJlc3NOb2RlKCkg
Y29uc3QgeyByZXR1cm4gbV9tb3VzZVByZXNzTm9kZS5nZXQoKTsgfQogCi0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQoUGFzc1JlZlB0cjxFbGVt
ZW50Pik7IC8vIEEgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciByZXNldHRpbmcgY2FwdHVyaW5n
IGVsZW1lbnQgdG8gMC4KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhcHR1cmluZ01vdXNl
RXZlbnRzRWxlbWVudChFbGVtZW50Kik7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAg
IGJvb2wgdXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRy
YW5zZmVyKik7Ci0gICAgdm9pZCBjYW5jZWxEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmLCBEYXRhVHJhbnNmZXIqKTsKLSAgICBib29sIHBlcmZvcm1EcmFnQW5kRHJvcChjb25z
dCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXIqKTsKLSAgICB2b2lkIHVwZGF0ZURy
YWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRlZChFbGVtZW50KiByb290RWRpdGFibGVFbGVtZW50
KTsKKyAgICBib29sIHVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYs
IERhdGFUcmFuc2ZlciYpOworICAgIHZvaWQgY2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyJik7CisgICAgYm9vbCBwZXJmb3JtRHJhZ0FuZERy
b3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyJik7CisgICAgdm9pZCB1
cGRhdGVEcmFnU3RhdGVBZnRlckVkaXREcmFnSWZOZWVkZWQoRWxlbWVudCYgcm9vdEVkaXRhYmxl
RWxlbWVudCk7CiAjZW5kaWYKIAogICAgIHZvaWQgc2NoZWR1bGVIb3ZlclN0YXRlVXBkYXRlKCk7
CkBAIC0xODcsOCArMTg1LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2Ny
b2xsUmVjdXJzaXZlbHkoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgTm9kZSog
c3RhcnRpbmdOb2RlID0gbnVsbHB0cik7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBsb2dpY2Fs
U2Nyb2xsUmVjdXJzaXZlbHkoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJp
dHksIE5vZGUqIHN0YXJ0aW5nTm9kZSA9IG51bGxwdHIpOwogCi0gICAgYm9vbCB0YWJzVG9MaW5r
cyhLZXlib2FyZEV2ZW50KikgY29uc3Q7Ci0gICAgYm9vbCB0YWJzVG9BbGxGb3JtQ29udHJvbHMo
S2V5Ym9hcmRFdmVudCopIGNvbnN0OworICAgIGJvb2wgdGFic1RvTGlua3MoS2V5Ym9hcmRFdmVu
dCYpIGNvbnN0OworICAgIGJvb2wgdGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQm
KSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbW91c2VNb3ZlZChjb25zdCBQbGF0
Zm9ybU1vdXNlRXZlbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHBhc3NNb3VzZU1vdmVk
RXZlbnRUb1Njcm9sbGJhcnMoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jik7CkBAIC0yMTAsMTIg
KzIwOCwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwbGF0Zm9ybU5vdGlmeUlmRW5kR2VzdHVyZShj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYp
OwogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpIHx8IEVOQUJMRShJT1NfR0VTVFVSRV9F
VkVOVFMpCi0gICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFRvdWNoPj4gVG91Y2hBcnJheTsKLSAg
ICB0eXBlZGVmIEhhc2hNYXA8RXZlbnRUYXJnZXQqLCBUb3VjaEFycmF5Kj4gRXZlbnRUYXJnZXRU
b3VjaE1hcDsKKyAgICB1c2luZyBUb3VjaEFycmF5ID0gVmVjdG9yPFJlZlB0cjxUb3VjaD4+Owor
ICAgIHVzaW5nIEV2ZW50VGFyZ2V0VG91Y2hNYXAgPSBIYXNoTWFwPEV2ZW50VGFyZ2V0KiwgVG91
Y2hBcnJheSo+OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgfHwgRU5B
QkxFKElPU19HRVNUVVJFX0VWRU5UUykgfHwgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKLSAg
ICB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPEV2ZW50VGFyZ2V0Pj4gRXZlbnRUYXJnZXRTZXQ7Cisg
ICAgdXNpbmcgRXZlbnRUYXJnZXRTZXQgPSBIYXNoU2V0PFJlZlB0cjxFdmVudFRhcmdldD4+Owog
I2VuZGlmCiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKQEAgLTIzMSw3ICsyMjksNyBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2b2lkIGRlZmF1bHRU
b3VjaEV2ZW50SGFuZGxlcihOb2RlKiwgVG91Y2hFdmVudCopOworICAgIHZvaWQgZGVmYXVsdFRv
dWNoRXZlbnRIYW5kbGVyKE5vZGUmLCBUb3VjaEV2ZW50Jik7CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShDT05URVhUX01FTlVTKQpAQCAtMjY0LDggKzI2Miw3IEBAIHB1YmxpYzoKICAgICAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNlbmRTY3JvbGxFdmVudCgpOwogCi0jaWYgUExBVEZPUk0oQ09D
T0EpICYmIGRlZmluZWQoX19PQkpDX18pCi0jaWYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9S
TShNQUMpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3VzZURvd24oTlNFdmVudCAqLCBOU0V2
ZW50ICpjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBtb3VzZURyYWdnZWQoTlNFdmVudCAqLCBOU0V2ZW50ICpjb3JyZXNwb25kaW5nUHJlc3N1cmVF
dmVudCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3VzZVVwKE5TRXZlbnQgKiwgTlNFdmVu
dCAqY29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQpOwpAQCAtMjczLDcgKzI3MCw5IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHByZXNzdXJlQ2hhbmdlKE5TRXZlbnQgKiwgTlNF
dmVudCogY29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wga2V5RXZlbnQoTlNFdmVudCAqKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHdoZWVsRXZl
bnQoTlNFdmVudCAqKTsKLSNlbHNlCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlRG93bihXZWJFdmVudCAqKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIG1vdXNlVXAoV2ViRXZlbnQgKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBt
b3VzZU1vdmVkKFdlYkV2ZW50ICopOwpAQCAtMjg1LDIzICsyODQsMjAgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdG91Y2hFdmVudChXZWJFdmVudCAqKTsKICNlbmRpZgogCi0j
aWYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBwYXNzTW91c2VNb3ZlZEV2ZW50VG9TY3JvbGxiYXJzKE5TRXZlbnQgKiwgTlNFdmVudCog
Y29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50
KTsKLSNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKElPUykKICAgICB2b2lkIHNldEFjdGl2YXRpb25F
dmVudE51bWJlcihpbnQgbnVtKSB7IG1fYWN0aXZhdGlvbkV2ZW50TnVtYmVyID0gbnVtOyB9CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTlNFdmVudCAqY3VycmVudE5TRXZlbnQoKTsKICAg
ICBzdGF0aWMgTlNFdmVudCAqY29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQoKTsKLSNlbHNlCi0g
ICAgc3RhdGljIFdlYkV2ZW50ICpjdXJyZW50RXZlbnQoKTsKLSNlbmRpZiAvLyAhUExBVEZPUk0o
SU9TKQotI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBkZWZpbmVkKF9fT0JKQ19fKQorI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShJT1MpCisgICAgc3RhdGljIFdlYkV2ZW50ICpjdXJyZW50RXZl
bnQoKTsKKwogICAgIHZvaWQgaW52YWxpZGF0ZUNsaWNrKCk7CiAjZW5kaWYKIApAQCAtMzIzLDkg
KzMxOSw4IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBzdGF0aWMg
RHJhZ1N0YXRlJiBkcmFnU3RhdGUoKTsKICAgICBzdGF0aWMgY29uc3QgZG91YmxlIFRleHREcmFn
RGVsYXk7Ci0gICAgCi0gICAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURyYWdnaW5n
RGF0YVRyYW5zZmVyKCkgY29uc3Q7Ci0jZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKKyAg
ICBSZWY8RGF0YVRyYW5zZmVyPiBjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0Owor
I2VuZGlmCiAKICAgICBib29sIGV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmKSBjb25zdDsKICAgICBib29sIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRG93bkRpc3Bh
dGNoaW5nU2VsZWN0U3RhcnQoTm9kZSosIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBUZXh0R3Jh
bnVsYXJpdHkpOwpAQCAtMzQxLDE0ICszMzYsMTggQEAgcHJpdmF0ZToKICAgICBib29sIGhhbmRs
ZU1vdXNlUHJlc3NFdmVudFNpbmdsZUNsaWNrKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMmKTsKICAgICBib29sIGhhbmRsZU1vdXNlUHJlc3NFdmVudERvdWJsZUNsaWNrKGNvbnN0
IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsKICAgICBib29sIGhhbmRsZU1vdXNlUHJl
c3NFdmVudFRyaXBsZUNsaWNrKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsK
KwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgYm9vbCBoYW5kbGVNb3VzZURyYWdnZWRF
dmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CiAjZW5kaWYKKwogICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY29uc3QgTW91c2VF
dmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwogCi0gICAgT3B0aW9uYWxDdXJzb3Igc2VsZWN0Q3Vy
c29yKGNvbnN0IEhpdFRlc3RSZXN1bHQmLCBib29sIHNoaWZ0S2V5KTsKKyAgICBzdGQ6Om9wdGlv
bmFsPEN1cnNvcj4gc2VsZWN0Q3Vyc29yKGNvbnN0IEhpdFRlc3RSZXN1bHQmLCBib29sIHNoaWZ0
S2V5KTsKKyAgICB2b2lkIHVwZGF0ZUN1cnNvcihGcmFtZVZpZXcmLCBjb25zdCBIaXRUZXN0UmVz
dWx0JiwgYm9vbCBzaGlmdEtleSk7CiAKICAgICB2b2lkIGhvdmVyVGltZXJGaXJlZCgpOworCiAj
aWYgRU5BQkxFKENVUlNPUl9TVVBQT1JUKQogICAgIHZvaWQgY3Vyc29yVXBkYXRlVGltZXJGaXJl
ZCgpOwogI2VuZGlmCkBAIC0zNTksOCArMzU4LDggQEAgcHJpdmF0ZToKICAgICAKICAgICBib29s
IG1vdXNlRG93bk1heVN0YXJ0U2VsZWN0KCkgY29uc3QgeyByZXR1cm4gbV9tb3VzZURvd25NYXlT
dGFydFNlbGVjdDsgfQogCi0gICAgc3RhdGljIGJvb2wgaXNLZXlib2FyZE9wdGlvblRhYihLZXli
b2FyZEV2ZW50Kik7Ci0gICAgc3RhdGljIGJvb2wgZXZlbnRJbnZlcnRzVGFic1RvTGlua3NDbGll
bnRDYWxsUmVzdWx0KEtleWJvYXJkRXZlbnQqKTsKKyAgICBzdGF0aWMgYm9vbCBpc0tleWJvYXJk
T3B0aW9uVGFiKEtleWJvYXJkRXZlbnQmKTsKKyAgICBzdGF0aWMgYm9vbCBldmVudEludmVydHNU
YWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQoS2V5Ym9hcmRFdmVudCYpOwogCiAjaWYgIUVOQUJM
RShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJl
ZCgpOwpAQCAtMzg1LDYgKzM4NCw3IEBAIHByaXZhdGU6CiAgICAgTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cyBwcmVwYXJlTW91c2VFdmVudChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYpOwogCiAgICAgYm9vbCBkaXNwYXRjaE1vdXNlRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqIHRhcmdldCwgYm9vbCBjYW5jZWxhYmxl
LCBpbnQgY2xpY2tDb3VudCwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgYm9vbCBzZXRVbmRl
cik7CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIGJvb2wgZGlzcGF0Y2hEcmFnRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIHRhcmdldCwgY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyKik7CiAKQEAgLTM5Miw3ICszOTIsOSBA
QCBwcml2YXRlOgogCiAgICAgYm9vbCBoYW5kbGVEcmFnKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHMmLCBDaGVja0RyYWdIeXN0ZXJlc2lzKTsKICNlbmRpZgorCiAgICAgYm9vbCBo
YW5kbGVNb3VzZVVwKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsKKwogI2lm
IEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgdm9pZCBjbGVhckRyYWdTdGF0ZSgpOwogCkBAIC00
MDAsNyArNDAyLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgZHJhZ0h5c3RlcmVzaXNFeGNlZWRl
ZChjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CiAgICAgYm9vbCBkcmFnSHlzdGVyZXNpc0V4Y2Vl
ZGVkKGNvbnN0IEludFBvaW50JikgY29uc3Q7Ci0jZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9S
VCkKKyNlbmRpZgogICAgIAogICAgIGJvb2wgbW91c2VNb3ZlbWVudEV4Y2VlZHNUaHJlc2hvbGQo
Y29uc3QgRmxvYXRQb2ludCYsIGludCBwb2ludHNUaHJlc2hvbGQpIGNvbnN0OwogCkBAIC00MzEs
MTEgKzQzMyw5IEBAIHByaXZhdGU6CiAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmUgY2FsbGVkIGF0
IHRoZSBiZWdpbm5pbmcgb2YgaGFuZGxlTW91c2VVcCBhbmQgaGFuZGxlRHJhZy4gIAogICAgIC8v
IElmIHRoZXkgcmV0dXJuIHRydWUgaXQgaW5kaWNhdGVzIHRoYXQgdGhleSBoYXZlIGNvbnN1bWVk
IHRoZSBldmVudC4KICAgICBib29sIGV2ZW50TG9vcEhhbmRsZU1vdXNlVXAoY29uc3QgTW91c2VF
dmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAg
Ym9vbCBldmVudExvb3BIYW5kbGVNb3VzZURyYWdnZWQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cyYpOwotI2VuZGlmCiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorICAgIGJv
b2wgZXZlbnRMb29wSGFuZGxlTW91c2VEcmFnZ2VkKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVz
dFJlc3VsdHMmKTsKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRHJhZyhjb25zdCBI
aXRUZXN0UmVzdWx0Jik7CiAjZW5kaWYKIApAQCAtNDczLDIxICs0NzMsMjQgQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8Tm9kZT4gbV9tb3VzZVByZXNzTm9kZTsKIAogICAgIGJvb2wgbV9tb3VzZURv
d25NYXlTdGFydFNlbGVjdCB7IGZhbHNlIH07CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQog
ICAgIGJvb2wgbV9tb3VzZURvd25NYXlTdGFydERyYWcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9k
cmFnTWF5U3RhcnRTZWxlY3Rpb25JbnN0ZWFkIHsgZmFsc2UgfTsKICNlbmRpZgorCiAgICAgYm9v
bCBtX21vdXNlRG93bldhc1NpbmdsZUNsaWNrSW5TZWxlY3Rpb24geyBmYWxzZSB9OwogICAgIGVu
dW0gU2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlIHsgSGF2ZU5vdFN0YXJ0ZWRTZWxlY3Rpb24sIFBs
YWNlZENhcmV0LCBFeHRlbmRlZFNlbGVjdGlvbiB9OwogICAgIFNlbGVjdGlvbkluaXRpYXRpb25T
dGF0ZSBtX3NlbGVjdGlvbkluaXRpYXRpb25TdGF0ZSB7IEhhdmVOb3RTdGFydGVkU2VsZWN0aW9u
IH07CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIExheW91dFBvaW50IG1fZHJhZ1N0
YXJ0UG9zOworICAgIExheW91dFBvaW50IG1fZHJhZ1N0YXJ0UG9zaXRpb247CiAjZW5kaWYKIAog
ICAgIGJvb2wgbV9wYW5TY3JvbGxCdXR0b25QcmVzc2VkIHsgZmFsc2UgfTsKIAogICAgIFRpbWVy
IG1faG92ZXJUaW1lcjsKKwogI2lmIEVOQUJMRShDVVJTT1JfU1VQUE9SVCkKICAgICBUaW1lciBt
X2N1cnNvclVwZGF0ZVRpbWVyOwogI2VuZGlmCkBAIC00OTUsNiArNDk4LDcgQEAgcHJpdmF0ZToK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgVGltZXIgbV9wZW5kaW5nTW9tZW50dW1XaGVlbEV2ZW50
c1RpbWVyOwogI2VuZGlmCisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXV0b3Njcm9sbENvbnRyb2xs
ZXI+IG1fYXV0b3Njcm9sbENvbnRyb2xsZXI7CiAgICAgYm9vbCBtX21vdXNlRG93bk1heVN0YXJ0
QXV0b3Njcm9sbCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX21vdXNlRG93bldhc0luU3ViZnJhbWUg
eyBmYWxzZSB9OwpAQCAtNTIzLDExICs1MjcsMTMgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX2dl
c3R1cmVJbml0aWFsRGlhbWV0ZXIgeyBHZXN0dXJlVW5rbm93biB9OwogICAgIGZsb2F0IG1fZ2Vz
dHVyZUluaXRpYWxSb3RhdGlvbiB7IEdlc3R1cmVVbmtub3duIH07CiAjZW5kaWYKKwogI2lmIEVO
QUJMRShJT1NfR0VTVFVSRV9FVkVOVFMpIHx8IEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAg
ICAgZmxvYXQgbV9nZXN0dXJlTGFzdERpYW1ldGVyIHsgR2VzdHVyZVVua25vd24gfTsKICAgICBm
bG9hdCBtX2dlc3R1cmVMYXN0Um90YXRpb24geyBHZXN0dXJlVW5rbm93biB9OwogICAgIEV2ZW50
VGFyZ2V0U2V0IG1fZ2VzdHVyZVRhcmdldHM7CiAjZW5kaWYKKwogI2lmIEVOQUJMRShNQUNfR0VT
VFVSRV9FVkVOVFMpCiAgICAgYm9vbCBtX2hhc0FjdGl2ZUdlc3R1cmUgeyBmYWxzZSB9OwogI2Vu
ZGlmCkBAIC01NTgsMTIgKzU2NCwxNCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIE5TVmlldyAqbV9tb3VzZURvd25WaWV3IHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV9zZW5k
aW5nRXZlbnRUb1N1YnZpZXcgeyBmYWxzZSB9OwotI2lmICFQTEFURk9STShJT1MpCi0gICAgaW50
IG1fYWN0aXZhdGlvbkV2ZW50TnVtYmVyIHsgLTEgfTsKICNlbmRpZgorCisjaWYgUExBVEZPUk0o
TUFDKQorICAgIGludCBtX2FjdGl2YXRpb25FdmVudE51bWJlciB7IC0xIH07CiAjZW5kaWYKKwog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKLSAg
ICB0eXBlZGVmIEhhc2hNYXA8aW50LCBSZWZQdHI8RXZlbnRUYXJnZXQ+PiBUb3VjaFRhcmdldE1h
cDsKKyAgICB1c2luZyBUb3VjaFRhcmdldE1hcCA9IEhhc2hNYXA8aW50LCBSZWZQdHI8RXZlbnRU
YXJnZXQ+PjsKICAgICBUb3VjaFRhcmdldE1hcCBtX29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdl
dHM7CiAgICAgUmVmUHRyPERvY3VtZW50PiBtX29yaWdpbmF0aW5nVG91Y2hQb2ludERvY3VtZW50
OwogICAgIHVuc2lnbmVkIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0S2V5IHsgMCB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IGE3YjI1NTdlNjk0NmRi
OWU1NjExNTdhZGY3MmNjMjgyNmVmZTg3NDcuLjVhYTg2Yzk5Yzg5ZjNhZmVkZGE5NzU4OTZkNzJj
MjA3MTVkOTU1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAg
LTMxNiw3ICszMTYsNyBAQCBGb2N1c0NvbnRyb2xsZXI6OkZvY3VzQ29udHJvbGxlcihQYWdlJiBw
YWdlLCBBY3Rpdml0eVN0YXRlOjpGbGFncyBhY3Rpdml0eVN0YXRlKQogewogfQogCi12b2lkIEZv
Y3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEZyYW1lKFBhc3NSZWZQdHI8RnJhbWU+IGZyYW1lKQor
dm9pZCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRGcmFtZShGcmFtZSogZnJhbWUpCiB7CiAg
ICAgQVNTRVJUKCFmcmFtZSB8fCBmcmFtZS0+cGFnZSgpID09ICZtX3BhZ2UpOwogICAgIGlmICht
X2ZvY3VzZWRGcmFtZSA9PSBmcmFtZSB8fCBtX2lzQ2hhbmdpbmdGb2N1c2VkRnJhbWUpCkBAIC03
NjUsOCArNzY1LDkgQEAgc3RhdGljIHZvaWQgY2xlYXJTZWxlY3Rpb25JZk5lZWRlZChGcmFtZSog
b2xkRm9jdXNlZEZyYW1lLCBGcmFtZSogbmV3Rm9jdXNlZEZyYW0KICAgICBvbGRGb2N1c2VkRnJh
bWUtPnNlbGVjdGlvbigpLmNsZWFyKCk7CiB9CiAKLWJvb2wgRm9jdXNDb250cm9sbGVyOjpzZXRG
b2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBQYXNzUmVmUHRyPEZyYW1lPiBuZXdGb2N1
c2VkRnJhbWUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKK2Jvb2wgRm9jdXNDb250cm9sbGVy
OjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGcmFtZSYgbmV3Rm9jdXNlZEZy
YW1lLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CisgICAgUmVmPEZyYW1lPiBwcm90ZWN0
ZWROZXdGb2N1c2VkRnJhbWUgPSBuZXdGb2N1c2VkRnJhbWU7CiAgICAgUmVmUHRyPEZyYW1lPiBv
bGRGb2N1c2VkRnJhbWUgPSBmb2N1c2VkRnJhbWUoKTsKICAgICBSZWZQdHI8RG9jdW1lbnQ+IG9s
ZERvY3VtZW50ID0gb2xkRm9jdXNlZEZyYW1lID8gb2xkRm9jdXNlZEZyYW1lLT5kb2N1bWVudCgp
IDogbnVsbHB0cjsKICAgICAKQEAgLTc4MCw3ICs3ODEsNyBAQCBib29sIEZvY3VzQ29udHJvbGxl
cjo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUGFzc1JlZlB0cjxGcmFtZT4g
bmV3RgogCiAgICAgbV9wYWdlLmVkaXRvckNsaWVudCgpLndpbGxTZXRJbnB1dE1ldGhvZFN0YXRl
KCk7CiAKLSAgICBjbGVhclNlbGVjdGlvbklmTmVlZGVkKG9sZEZvY3VzZWRGcmFtZS5nZXQoKSwg
bmV3Rm9jdXNlZEZyYW1lLmdldCgpLCBlbGVtZW50KTsKKyAgICBjbGVhclNlbGVjdGlvbklmTmVl
ZGVkKG9sZEZvY3VzZWRGcmFtZS5nZXQoKSwgJm5ld0ZvY3VzZWRGcmFtZSwgZWxlbWVudCk7CiAK
ICAgICBpZiAoIWVsZW1lbnQpIHsKICAgICAgICAgaWYgKG9sZERvY3VtZW50KQpAQCAtNzk5LDEx
ICs4MDAsMTEgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1l
bnQqIGVsZW1lbnQsIFBhc3NSZWZQdHI8RnJhbWU+IG5ld0YKICAgICBpZiAob2xkRG9jdW1lbnQg
JiYgb2xkRG9jdW1lbnQgIT0gbmV3RG9jdW1lbnQucHRyKCkpCiAgICAgICAgIG9sZERvY3VtZW50
LT5zZXRGb2N1c2VkRWxlbWVudChudWxscHRyKTsKIAotICAgIGlmIChuZXdGb2N1c2VkRnJhbWUg
JiYgIW5ld0ZvY3VzZWRGcmFtZS0+cGFnZSgpKSB7CisgICAgaWYgKCFuZXdGb2N1c2VkRnJhbWUu
cGFnZSgpKSB7CiAgICAgICAgIHNldEZvY3VzZWRGcmFtZShudWxscHRyKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KLSAgICBzZXRGb2N1c2VkRnJhbWUobmV3Rm9jdXNlZEZyYW1lKTsK
KyAgICBzZXRGb2N1c2VkRnJhbWUoJm5ld0ZvY3VzZWRGcmFtZSk7CiAKICAgICBSZWY8RWxlbWVu
dD4gcHJvdGVjdCgqZWxlbWVudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5o
CmluZGV4IGVjYmUzOTYxZGExZjViMDA1YjAxYmNjODI1MTZiNTBhMjdhOGUyYWUuLmM2ZGNmMjIy
MDkzNWVjYmIxZmNiZDQyMjFmMmNhMmQ5NDczZjc3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1
c0NvbnRyb2xsZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zMCwxMiArMzAsMTAgQEAKICNpbmNsdWRlICJMYXlvdXRSZWN0
LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgRm9jdXNDYW5kaWRhdGU7CiBjbGFzcyBDb250YWluZXJO
b2RlOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OwpAQCAtNDgsMTkgKzQ2LDIxIEBA
IGNsYXNzIE5vZGU7CiBjbGFzcyBQYWdlOwogY2xhc3MgVHJlZVNjb3BlOwogCitzdHJ1Y3QgRm9j
dXNDYW5kaWRhdGU7CisKIGNsYXNzIEZvY3VzQ29udHJvbGxlciB7Ci0gICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoRm9jdXNDb250cm9sbGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgRm9jdXNDb250
cm9sbGVyKFBhZ2UmLCBBY3Rpdml0eVN0YXRlOjpGbGFncyk7CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldEZvY3VzZWRGcmFtZShQYXNzUmVmUHRyPEZyYW1lPik7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRGb2N1c2VkRnJhbWUoRnJhbWUqKTsKICAgICBGcmFtZSogZm9jdXNlZEZy
YW1lKCkgY29uc3QgeyByZXR1cm4gbV9mb2N1c2VkRnJhbWUuZ2V0KCk7IH0KICAgICBXRUJDT1JF
X0VYUE9SVCBGcmFtZSYgZm9jdXNlZE9yTWFpbkZyYW1lKCkgY29uc3Q7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIHNldEluaXRpYWxGb2N1cyhGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVu
dCopOwogICAgIGJvb2wgYWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50
JiwgYm9vbCBpbml0aWFsRm9jdXMgPSBmYWxzZSk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBib29s
IHNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqLCBQYXNzUmVmUHRyPEZyYW1lPiwgRm9jdXNEaXJl
Y3Rpb24gPSBGb2N1c0RpcmVjdGlvbk5vbmUpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0
Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCosIEZyYW1lJiwgRm9jdXNEaXJlY3Rpb24gPSBGb2N1c0Rp
cmVjdGlvbk5vbmUpOwogCiAgICAgdm9pZCBzZXRBY3Rpdml0eVN0YXRlKEFjdGl2aXR5U3RhdGU6
OkZsYWdzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCmluZGV4IGRlZWIyM2I3NTg0NDli
YmZlNWM1NWYxOWQ4MGQwNDkyODI5MTE3YWEuLmZkY2YzNTYwZWU0YjE5ZmE5ODA2ZDQ5MzQwYTIz
MzgxYTliYWJlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQg
MjAxMC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC02MywyNSArNjMsNiBA
QCBGcmFtZSogRnJhbWVUcmVlOjpwYXJlbnQoKSBjb25zdAogICAgIHJldHVybiBtX3BhcmVudDsK
IH0KIAotYm9vbCBGcmFtZVRyZWU6OnRyYW5zZmVyQ2hpbGQoUGFzc1JlZlB0cjxGcmFtZT4gY2hp
bGQpCi17Ci0gICAgRnJhbWUqIG9sZFBhcmVudCA9IGNoaWxkLT50cmVlKCkucGFyZW50KCk7Ci0g
ICAgaWYgKG9sZFBhcmVudCA9PSAmbV90aGlzRnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsg
Ly8gfGNoaWxkfCBpcyBhbHJlYWR5IGEgY2hpbGQgb2YgbV90aGlzRnJhbWUuCi0KLSAgICBpZiAo
b2xkUGFyZW50KQotICAgICAgICBvbGRQYXJlbnQtPnRyZWUoKS5yZW1vdmVDaGlsZChjaGlsZC5n
ZXQoKSk7Ci0KLSAgICBBU1NFUlQoY2hpbGQtPnBhZ2UoKSA9PSBtX3RoaXNGcmFtZS5wYWdlKCkp
OwotICAgIGNoaWxkLT50cmVlKCkubV9wYXJlbnQgPSAmbV90aGlzRnJhbWU7Ci0KLSAgICAvLyBX
ZSBuZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSBjaGlsZCBzdGlsbCBoYXMgYSB1bmlxdWUgZnJhbWUg
bmFtZSB3aXRoIHJlc3BlY3QgdG8gaXRzIG5ldyBwYXJlbnQuCi0gICAgY2hpbGQtPnRyZWUoKS5z
ZXROYW1lKGNoaWxkLT50cmVlKCkubV9uYW1lKTsKLQotICAgIGFjdHVhbGx5QXBwZW5kQ2hpbGQo
Y2hpbGQpOyAvLyBOb3RlLCBvbiByZXR1cm4gfGNoaWxkfCBpcyBudWxsLgotICAgIHJldHVybiB0
cnVlOwotfQotCiB1bnNpZ25lZCBGcmFtZVRyZWU6OmluZGV4SW5QYXJlbnQoKSBjb25zdAogewog
ICAgIGlmICghbV9wYXJlbnQpCkBAIC05NSw0NiArNzYsMzIgQEAgdW5zaWduZWQgRnJhbWVUcmVl
OjppbmRleEluUGFyZW50KCkgY29uc3QKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogfQogCi12b2lkIEZyYW1lVHJlZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxGcmFtZT4gY2hp
bGQpCi17Ci0gICAgQVNTRVJUKGNoaWxkLT5wYWdlKCkgPT0gbV90aGlzRnJhbWUucGFnZSgpKTsK
LSAgICBjaGlsZC0+dHJlZSgpLm1fcGFyZW50ID0gJm1fdGhpc0ZyYW1lOwotICAgIGFjdHVhbGx5
QXBwZW5kQ2hpbGQoY2hpbGQpOyAvLyBOb3RlLCBvbiByZXR1cm4gfGNoaWxkfCBpcyBudWxsLgot
fQotCi12b2lkIEZyYW1lVHJlZTo6YWN0dWFsbHlBcHBlbmRDaGlsZChQYXNzUmVmUHRyPEZyYW1l
PiBjaGlsZCkKK3ZvaWQgRnJhbWVUcmVlOjphcHBlbmRDaGlsZChGcmFtZSYgY2hpbGQpCiB7Ci0g
ICAgQVNTRVJUKGNoaWxkLT50cmVlKCkubV9wYXJlbnQgPT0gJm1fdGhpc0ZyYW1lKTsKKyAgICBB
U1NFUlQoY2hpbGQucGFnZSgpID09IG1fdGhpc0ZyYW1lLnBhZ2UoKSk7CisgICAgY2hpbGQudHJl
ZSgpLm1fcGFyZW50ID0gJm1fdGhpc0ZyYW1lOwogICAgIEZyYW1lKiBvbGRMYXN0ID0gbV9sYXN0
Q2hpbGQ7Ci0gICAgbV9sYXN0Q2hpbGQgPSBjaGlsZC5nZXQoKTsKKyAgICBtX2xhc3RDaGlsZCA9
ICZjaGlsZDsKIAogICAgIGlmIChvbGRMYXN0KSB7Ci0gICAgICAgIGNoaWxkLT50cmVlKCkubV9w
cmV2aW91c1NpYmxpbmcgPSBvbGRMYXN0OwotICAgICAgICBvbGRMYXN0LT50cmVlKCkubV9uZXh0
U2libGluZyA9IGNoaWxkOworICAgICAgICBjaGlsZC50cmVlKCkubV9wcmV2aW91c1NpYmxpbmcg
PSBvbGRMYXN0OworICAgICAgICBvbGRMYXN0LT50cmVlKCkubV9uZXh0U2libGluZyA9ICZjaGls
ZDsKICAgICB9IGVsc2UKLSAgICAgICAgbV9maXJzdENoaWxkID0gY2hpbGQ7CisgICAgICAgIG1f
Zmlyc3RDaGlsZCA9ICZjaGlsZDsKIAogICAgIG1fc2NvcGVkQ2hpbGRDb3VudCA9IGludmFsaWRD
b3VudDsKIAogICAgIEFTU0VSVCghbV9sYXN0Q2hpbGQtPnRyZWUoKS5tX25leHRTaWJsaW5nKTsK
IH0KIAotdm9pZCBGcmFtZVRyZWU6OnJlbW92ZUNoaWxkKEZyYW1lKiBjaGlsZCkKK3ZvaWQgRnJh
bWVUcmVlOjpyZW1vdmVDaGlsZChGcmFtZSYgY2hpbGQpCiB7Ci0gICAgY2hpbGQtPnRyZWUoKS5t
X3BhcmVudCA9IG51bGxwdHI7Ci0KLSAgICAvLyBTbGlnaHRseSB0cmlja3kgd2F5IHRvIHByZXZl
bnQgZGVsZXRpbmcgdGhlIGNoaWxkIHVudGlsIHdlIGFyZSBkb25lIHdpdGggaXQsIHcvbwotICAg
IC8vIGV4dHJhIHJlZnMuIFRoZXNlIHN3YXBzIGxlYXZlIHRoZSBjaGlsZCBpbiBhIGNpcmN1bGFy
IGxpc3QgYnkgaXRzZWxmLiBDbGVhcmluZyBpdHMKLSAgICAvLyBwcmV2aW91cyBhbmQgbmV4dCB3
aWxsIHRoZW4gZmluYWxseSBkZXJlZiBpdC4KLQotICAgIFJlZlB0cjxGcmFtZT4mIG5ld0xvY2F0
aW9uRm9yTmV4dCA9IG1fZmlyc3RDaGlsZCA9PSBjaGlsZCA/IG1fZmlyc3RDaGlsZCA6IGNoaWxk
LT50cmVlKCkubV9wcmV2aW91c1NpYmxpbmctPnRyZWUoKS5tX25leHRTaWJsaW5nOwotICAgIEZy
YW1lKiYgbmV3TG9jYXRpb25Gb3JQcmV2aW91cyA9IG1fbGFzdENoaWxkID09IGNoaWxkID8gbV9s
YXN0Q2hpbGQgOiBjaGlsZC0+dHJlZSgpLm1fbmV4dFNpYmxpbmctPnRyZWUoKS5tX3ByZXZpb3Vz
U2libGluZzsKLSAgICBzd2FwKG5ld0xvY2F0aW9uRm9yTmV4dCwgY2hpbGQtPnRyZWUoKS5tX25l
eHRTaWJsaW5nKTsKLSAgICAvLyBGb3Igc29tZSBpbmV4cGxpY2FibGUgcmVhc29uLCB0aGUgZm9s
bG93aW5nIGxpbmUgZG9lcyBub3QgY29tcGlsZSB3aXRob3V0IHRoZSBleHBsaWNpdCBzdGQ6OiBu
YW1lc3BhY2UKLSAgICBzdGQ6OnN3YXAobmV3TG9jYXRpb25Gb3JQcmV2aW91cywgY2hpbGQtPnRy
ZWUoKS5tX3ByZXZpb3VzU2libGluZyk7CisgICAgRnJhbWUqJiBuZXdMb2NhdGlvbkZvclByZXZp
b3VzID0gbV9sYXN0Q2hpbGQgPT0gJmNoaWxkID8gbV9sYXN0Q2hpbGQgOiBjaGlsZC50cmVlKCku
bV9uZXh0U2libGluZy0+dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nOworICAgIFJlZlB0cjxGcmFt
ZT4mIG5ld0xvY2F0aW9uRm9yTmV4dCA9IG1fZmlyc3RDaGlsZCA9PSAmY2hpbGQgPyBtX2ZpcnN0
Q2hpbGQgOiBjaGlsZC50cmVlKCkubV9wcmV2aW91c1NpYmxpbmctPnRyZWUoKS5tX25leHRTaWJs
aW5nOwogCi0gICAgY2hpbGQtPnRyZWUoKS5tX3ByZXZpb3VzU2libGluZyA9IG51bGxwdHI7Ci0g
ICAgY2hpbGQtPnRyZWUoKS5tX25leHRTaWJsaW5nID0gbnVsbHB0cjsKKyAgICBjaGlsZC50cmVl
KCkubV9wYXJlbnQgPSBudWxscHRyOworICAgIG5ld0xvY2F0aW9uRm9yUHJldmlvdXMgPSBzdGQ6
OmV4Y2hhbmdlKGNoaWxkLnRyZWUoKS5tX3ByZXZpb3VzU2libGluZywgbnVsbHB0cik7CisgICAg
bmV3TG9jYXRpb25Gb3JOZXh0ID0gV1RGTW92ZShjaGlsZC50cmVlKCkubV9uZXh0U2libGluZyk7
CiAKICAgICBtX3Njb3BlZENoaWxkQ291bnQgPSBpbnZhbGlkQ291bnQ7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVRyZWUuaAppbmRleCBhYjE2ZjBhZDYzOTYyNWFlMmQ3OGMxNzlmMTM1M2JiODRjOThhZTFh
Li4zZjg3YzI3OWJkYzNhMDY0ZmU4ODgwOGI2MDNhMmFjZjdmMmRjN2ViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVUcmVlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFw
cGxlIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNjUsMTAgKzY1LDkgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lKiB0cmF2ZXJzZU5leHRXaXRoV3JhcChib29sKSBj
b25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBGcmFtZSogdHJhdmVyc2VQcmV2aW91c1dpdGhXcmFw
KGJvb2wpIGNvbnN0OwogICAgIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwZW5kQ2hpbGQo
UGFzc1JlZlB0cjxGcmFtZT4pOwotICAgIGJvb2wgdHJhbnNmZXJDaGlsZChQYXNzUmVmUHRyPEZy
YW1lPik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBlbmRDaGlsZChGcmFtZSYpOwogICAg
IHZvaWQgZGV0YWNoRnJvbVBhcmVudCgpIHsgbV9wYXJlbnQgPSBudWxscHRyOyB9Ci0gICAgdm9p
ZCByZW1vdmVDaGlsZChGcmFtZSopOworICAgIHZvaWQgcmVtb3ZlQ2hpbGQoRnJhbWUmKTsKIAog
ICAgIEZyYW1lKiBjaGlsZCh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CiAgICAgRnJhbWUqIGNoaWxk
KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3Q7CkBAIC04Nyw3ICs4Niw2IEBAIHB1Ymxp
YzoKIAogcHJpdmF0ZToKICAgICBGcmFtZSogZGVlcExhc3RDaGlsZCgpIGNvbnN0OwotICAgIHZv
aWQgYWN0dWFsbHlBcHBlbmRDaGlsZChQYXNzUmVmUHRyPEZyYW1lPik7CiAKICAgICBib29sIHNj
b3BlZEJ5KFRyZWVTY29wZSopIGNvbnN0OwogICAgIEZyYW1lKiBzY29wZWRDaGlsZCh1bnNpZ25l
ZCBpbmRleCwgVHJlZVNjb3BlKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5k
ZXggZDk0YzlkOTIxYTRhNDE5NjNlYzhkYWU3NWMwYjRlMjMyNjA5NzhhMi4uNGQ2MzhhMmU3NTNj
MWVhYjdiZmMwZGM3OGM4NzM3ZDBlNTJjMmEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNw
cApAQCAtNjc3LDcgKzY3Nyw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRDb250ZW50c1NpemUoY29u
c3QgSW50U2l6ZSYgc2l6ZSkKIAogICAgIHVwZGF0ZVNjcm9sbGFibGVBcmVhU2V0KCk7CiAKLSAg
ICBwYWdlLT5jaHJvbWUoKS5jb250ZW50c1NpemVDaGFuZ2VkKCZmcmFtZSgpLCBzaXplKTsgLy8g
Tm90aWZ5IG9ubHkuCisgICAgcGFnZS0+Y2hyb21lKCkuY29udGVudHNTaXplQ2hhbmdlZChmcmFt
ZSgpLCBzaXplKTsgLy8gTm90aWZ5IG9ubHkuCiAKICAgICBpZiAoZnJhbWUoKS5pc01haW5GcmFt
ZSgpKSB7CiAgICAgICAgIGZyYW1lKCkubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9sbGVy
KCkuZGlkQ2hhbmdlRG9jdW1lbnRTaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL01haW5GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAKaW5k
ZXggNDgxNzRjYjI0MzdkNTk2MGIyMWM1MzgzNmM1MjcxYjY2MGQ4ODZjMS4uYTE3YmUzYmI1M2E4
OTJmNWJlNjJkNGM0ZDc3MjRlMGFkNGNmZDRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9NYWluRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNw
cApAQCAtOTIsNyArOTIsNyBAQCB2b2lkIE1haW5GcmFtZTo6c2VsZk9ubHlEZXJlZigpCiB2b2lk
IE1haW5GcmFtZTo6ZHJvcENoaWxkcmVuKCkKIHsKICAgICB3aGlsZSAoRnJhbWUqIGNoaWxkID0g
dHJlZSgpLmZpcnN0Q2hpbGQoKSkKLSAgICAgICAgdHJlZSgpLnJlbW92ZUNoaWxkKGNoaWxkKTsK
KyAgICAgICAgdHJlZSgpLnJlbW92ZUNoaWxkKCpjaGlsZCk7CiB9CiAKICNpZiBQTEFURk9STShN
QUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBkYjE3ZTZiYWY3YWNlNGMyNzI2NWM4ZWRiMzcwNWZk
YjE3ZWIyMGJhLi43ZDZhZjExMGE0Y2Q0ZGFkZWNlZDI0NTkwNjYyNzMwNDJmM2QwYzVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKQEAgLTM2Myw3ICszNjMsNyBAQCBWaWV3cG9ydEFyZ3VtZW50cyBQYWdl
Ojp2aWV3cG9ydEFyZ3VtZW50cygpIGNvbnN0CiBTY3JvbGxpbmdDb29yZGluYXRvciogUGFnZTo6
c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKQogewogICAgIGlmICghbV9zY3JvbGxpbmdDb29yZGluYXRv
ciAmJiBtX3NldHRpbmdzLT5zY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQoKSkgewotICAgICAg
ICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yID0gY2hyb21lKCkuY2xpZW50KCkuY3JlYXRlU2Nyb2xs
aW5nQ29vcmRpbmF0b3IodGhpcyk7CisgICAgICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBj
aHJvbWUoKS5jbGllbnQoKS5jcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcigqdGhpcyk7CiAgICAg
ICAgIGlmICghbV9zY3JvbGxpbmdDb29yZGluYXRvcikKICAgICAgICAgICAgIG1fc2Nyb2xsaW5n
Q29vcmRpbmF0b3IgPSBTY3JvbGxpbmdDb29yZGluYXRvcjo6Y3JlYXRlKHRoaXMpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAKaW5kZXggZTcwYmNhMDUyM2YwZTM5NWY4Nzdm
ZjYzYzEyYWEzOTU1N2FkZWQ3Yy4uMmNhODZmOTgyODA4MTYzNzg0ZjJhYjdmYTQzZWVlYmJlZTM3
OTVmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAKQEAgLTI3NCw3ICsyNzQsNyBA
QCB2b2lkIFBhZ2VPdmVybGF5OjpmYWRlQW5pbWF0aW9uVGltZXJGaXJlZCgpCiAKICAgICAgICAg
Ly8gSWYgdGhpcyB3YXMgYSBmYWRlIG91dCwgdW5pbnN0YWxsIHRoZSBwYWdlIG92ZXJsYXkuCiAg
ICAgICAgIGlmICh3YXNGYWRpbmdPdXQpCi0gICAgICAgICAgICBjb250cm9sbGVyKCktPnVuaW5z
dGFsbFBhZ2VPdmVybGF5KHRoaXMsIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsK
KyAgICAgICAgICAgIGNvbnRyb2xsZXIoKS0+dW5pbnN0YWxsUGFnZU92ZXJsYXkoKnRoaXMsIFBh
Z2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcAppbmRleCA4NjZiODcwY2I4ZTRk
MWI3ZTVkMjFiM2IxNmFjMWU1YzZiM2FiZjgzLi4wNTQzYmQ1MzRkMjUxYmEzN2RjYTQyMWRhMTdl
MmM5OTNhMmRhZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5
Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRy
b2xsZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTk1LDI3ICs5NSwyNSBAQCBzdGF0aWMgdm9pZCB1cGRhdGVPdmVybGF5R2VvbWV0
cnkoUGFnZU92ZXJsYXkmIG92ZXJsYXksIEdyYXBoaWNzTGF5ZXImIGdyYXBoaWNzTAogICAgIGdy
YXBoaWNzTGF5ZXIuc2V0U2l6ZShvdmVybGF5RnJhbWUuc2l6ZSgpKTsKIH0KIAotdm9pZCBQYWdl
T3ZlcmxheUNvbnRyb2xsZXI6Omluc3RhbGxQYWdlT3ZlcmxheShQYXNzUmVmUHRyPFBhZ2VPdmVy
bGF5PiBwYWdlT3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlIGZhZGVNb2RlKQordm9pZCBQ
YWdlT3ZlcmxheUNvbnRyb2xsZXI6Omluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSYgb3Zl
cmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlIGZhZGVNb2RlKQogewogICAgIGNyZWF0ZVJvb3RM
YXllcnNJZk5lZWRlZCgpOwogCi0gICAgUmVmUHRyPFBhZ2VPdmVybGF5PiBvdmVybGF5ID0gcGFn
ZU92ZXJsYXk7Ci0KLSAgICBpZiAobV9wYWdlT3ZlcmxheXMuY29udGFpbnMob3ZlcmxheSkpCisg
ICAgaWYgKG1fcGFnZU92ZXJsYXlzLmNvbnRhaW5zKCZvdmVybGF5KSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgbV9wYWdlT3ZlcmxheXMuYXBwZW5kKG92ZXJsYXkpOworICAgIG1fcGFnZU92ZXJs
YXlzLmFwcGVuZCgmb3ZlcmxheSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXll
cj4gbGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUobV9tYWluRnJhbWUucGFnZSgpLT5jaHJv
bWUoKS5jbGllbnQoKS5ncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAgICAgbGF5ZXIt
PnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQzRCgpKTsKLSAgICBsYXllci0+c2V0QmFja2dyb3Vu
ZENvbG9yKG92ZXJsYXktPmJhY2tncm91bmRDb2xvcigpKTsKKyAgICBsYXllci0+c2V0QmFja2dy
b3VuZENvbG9yKG92ZXJsYXkuYmFja2dyb3VuZENvbG9yKCkpOwogI2lmbmRlZiBOREVCVUcKICAg
ICBsYXllci0+c2V0TmFtZSgiUGFnZSBPdmVybGF5IGNvbnRlbnQiKTsKICNlbmRpZgogCiAgICAg
dXBkYXRlU2V0dGluZ3NGb3JMYXllcigqbGF5ZXIpOwogCi0gICAgc3dpdGNoIChvdmVybGF5LT5v
dmVybGF5VHlwZSgpKSB7CisgICAgc3dpdGNoIChvdmVybGF5Lm92ZXJsYXlUeXBlKCkpIHsKICAg
ICBjYXNlIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZTo6VmlldzoKICAgICAgICAgbV92aWV3T3Zl
cmxheVJvb3RMYXllci0+YWRkQ2hpbGQobGF5ZXIuZ2V0KCkpOwogICAgICAgICBicmVhazsKQEAg
LTEyNSwzMyArMTIzLDMzIEBAIHZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjppbnN0YWxsUGFn
ZU92ZXJsYXkoUGFzc1JlZlB0cjxQYWdlT3ZlcmxheT4gcGFnZU92ZXJsCiAgICAgfQogCiAgICAg
R3JhcGhpY3NMYXllciYgcmF3TGF5ZXIgPSAqbGF5ZXI7Ci0gICAgbV9vdmVybGF5R3JhcGhpY3NM
YXllcnMuc2V0KG92ZXJsYXkuZ2V0KCksIFdURk1vdmUobGF5ZXIpKTsKKyAgICBtX292ZXJsYXlH
cmFwaGljc0xheWVycy5zZXQoJm92ZXJsYXksIFdURk1vdmUobGF5ZXIpKTsKIAogICAgIHVwZGF0
ZUZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0aW9uVXBkYXRlcygpOwogCi0gICAgb3Zl
cmxheS0+c2V0UGFnZShtX21haW5GcmFtZS5wYWdlKCkpOworICAgIG92ZXJsYXkuc2V0UGFnZSht
X21haW5GcmFtZS5wYWdlKCkpOwogCiAgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbV9t
YWluRnJhbWUudmlldygpKQogICAgICAgICBmcmFtZVZpZXctPmVudGVyQ29tcG9zaXRpbmdNb2Rl
KCk7CiAKLSAgICB1cGRhdGVPdmVybGF5R2VvbWV0cnkoKm92ZXJsYXksIHJhd0xheWVyKTsKKyAg
ICB1cGRhdGVPdmVybGF5R2VvbWV0cnkob3ZlcmxheSwgcmF3TGF5ZXIpOwogCiAgICAgaWYgKGZh
ZGVNb2RlID09IFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSkKLSAgICAgICAgb3ZlcmxheS0+
c3RhcnRGYWRlSW5BbmltYXRpb24oKTsKKyAgICAgICAgb3ZlcmxheS5zdGFydEZhZGVJbkFuaW1h
dGlvbigpOwogfQogCi12b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0YWxsUGFnZU92
ZXJsYXkoUGFnZU92ZXJsYXkqIG92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSBmYWRlTW9k
ZSkKK3ZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjp1bmluc3RhbGxQYWdlT3ZlcmxheShQYWdl
T3ZlcmxheSYgb3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlIGZhZGVNb2RlKQogewogICAg
IGlmIChmYWRlTW9kZSA9PSBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpIHsKLSAgICAgICAg
b3ZlcmxheS0+c3RhcnRGYWRlT3V0QW5pbWF0aW9uKCk7CisgICAgICAgIG92ZXJsYXkuc3RhcnRG
YWRlT3V0QW5pbWF0aW9uKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBvdmVybGF5
LT5zZXRQYWdlKG51bGxwdHIpOworICAgIG92ZXJsYXkuc2V0UGFnZShudWxscHRyKTsKIAotICAg
IG1fb3ZlcmxheUdyYXBoaWNzTGF5ZXJzLnRha2Uob3ZlcmxheSktPnJlbW92ZUZyb21QYXJlbnQo
KTsKKyAgICBtX292ZXJsYXlHcmFwaGljc0xheWVycy50YWtlKCZvdmVybGF5KS0+cmVtb3ZlRnJv
bVBhcmVudCgpOwogCi0gICAgYm9vbCByZW1vdmVkID0gbV9wYWdlT3ZlcmxheXMucmVtb3ZlRmly
c3Qob3ZlcmxheSk7CisgICAgYm9vbCByZW1vdmVkID0gbV9wYWdlT3ZlcmxheXMucmVtb3ZlRmly
c3QoJm92ZXJsYXkpOwogICAgIEFTU0VSVF9VTlVTRUQocmVtb3ZlZCwgcmVtb3ZlZCk7CiAKICAg
ICB1cGRhdGVGb3JjZVN5bmNocm9ub3VzU2Nyb2xsTGF5ZXJQb3NpdGlvblVwZGF0ZXMoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCmluZGV4IDM5NzgwOTgy
MDA4YzY1MWYyODhiNzk3NmIxYjkzMjk1YWM1MmU3YTQuLjYzODk0N2M2MTg0NmFiMDY3NWNlODAz
YWJmMTc2YjZiNzFkZDhjMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92
ZXJsYXlDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNv
bnRyb2xsZXIuaApAQCAtMzksNyArMzksNiBAQCBjbGFzcyBQYWdlOwogY2xhc3MgUGxhdGZvcm1N
b3VzZUV2ZW50OwogCiBjbGFzcyBQYWdlT3ZlcmxheUNvbnRyb2xsZXIgZmluYWwgOiBwdWJsaWMg
R3JhcGhpY3NMYXllckNsaWVudCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZU92ZXJs
YXlDb250cm9sbGVyKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAg
ICBQYWdlT3ZlcmxheUNvbnRyb2xsZXIoTWFpbkZyYW1lJik7CkBAIC01MCw4ICs0OSw4IEBAIHB1
YmxpYzoKIAogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UGFnZU92ZXJsYXk+PiYgcGFnZU92ZXJs
YXlzKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlT3ZlcmxheXM7IH0KIAotICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgaW5zdGFsbFBhZ2VPdmVybGF5KFBhc3NSZWZQdHI8UGFnZU92ZXJsYXk+LCBQYWdl
T3ZlcmxheTo6RmFkZU1vZGUpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5pbnN0YWxsUGFn
ZU92ZXJsYXkoUGFnZU92ZXJsYXkqLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5JiwgUGFnZU92ZXJs
YXk6OkZhZGVNb2RlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuaW5zdGFsbFBhZ2VPdmVy
bGF5KFBhZ2VPdmVybGF5JiwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlKTsKIAogICAgIHZvaWQgc2V0
UGFnZU92ZXJsYXlOZWVkc0Rpc3BsYXkoUGFnZU92ZXJsYXkmLCBjb25zdCBJbnRSZWN0Jik7CiAg
ICAgdm9pZCBzZXRQYWdlT3ZlcmxheU9wYWNpdHkoUGFnZU92ZXJsYXkmLCBmbG9hdCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCmluZGV4IDdmZmYxMjNmZjY0MTM3ODI1Yzhk
MTk4MDNkYmVjZjM5Yzg2MzY4YWYuLjkzZDM3NzdhYTFhOWYwNzlmNzEwNGM5NzQ1ZDdkYTFjY2Ji
ZmQ1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCkBAIC04MCw4ICs4
MCw3IEBAIHN0YXRpYyBib29sIGlzQ2hhcnNldFNwZWNpZnlpbmdOb2RlKGNvbnN0IE5vZGUmIG5v
ZGUpCiAgICAgICAgICAgICBhdHRyaWJ1dGVzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihhdHRyaWJ1
dGUubmFtZSgpLnRvU3RyaW5nKCksIGF0dHJpYnV0ZS52YWx1ZSgpLnN0cmluZygpKSk7CiAgICAg
ICAgIH0KICAgICB9Ci0gICAgVGV4dEVuY29kaW5nIHRleHRFbmNvZGluZyA9IEhUTUxNZXRhQ2hh
cnNldFBhcnNlcjo6ZW5jb2RpbmdGcm9tTWV0YUF0dHJpYnV0ZXMoYXR0cmlidXRlcyk7Ci0gICAg
cmV0dXJuIHRleHRFbmNvZGluZy5pc1ZhbGlkKCk7CisgICAgcmV0dXJuIEhUTUxNZXRhQ2hhcnNl
dFBhcnNlcjo6ZW5jb2RpbmdGcm9tTWV0YUF0dHJpYnV0ZXMoYXR0cmlidXRlcykuaXNWYWxpZCgp
OwogfQogCiBzdGF0aWMgYm9vbCBzaG91bGRJZ25vcmVFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVs
ZW1lbnQpCkBAIC05NSwxMCArOTQsOSBAQCBzdGF0aWMgY29uc3QgUXVhbGlmaWVkTmFtZSYgZnJh
bWVPd25lclVSTEF0dHJpYnV0ZU5hbWUoY29uc3QgSFRNTEZyYW1lT3duZXJFbGVtZQogICAgIHJl
dHVybiBpczxIVE1MT2JqZWN0RWxlbWVudD4oZnJhbWVPd25lcikgPyBIVE1MTmFtZXM6OmRhdGFB
dHRyIDogSFRNTE5hbWVzOjpzcmNBdHRyOwogfQogCi1jbGFzcyBTZXJpYWxpemVyTWFya3VwQWNj
dW11bGF0b3IgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TWFya3VwQWNjdW11bGF0b3IgeworY2xh
c3MgUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvciBmaW5hbCA6IHB1
YmxpYyBXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRvciB7CiBwdWJsaWM6CiAgICAgU2VyaWFsaXpl
ck1hcmt1cEFjY3VtdWxhdG9yKFBhZ2VTZXJpYWxpemVyJiwgRG9jdW1lbnQmLCBWZWN0b3I8Tm9k
ZSo+Kik7Ci0gICAgdmlydHVhbCB+U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yKCk7CiAKIHBy
aXZhdGU6CiAgICAgUGFnZVNlcmlhbGl6ZXImIG1fc2VyaWFsaXplcjsKQEAgLTExMCw3ICsxMDgs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgYXBwZW5kRW5kVGFnKGNvbnN0IEVsZW1lbnQmKSBvdmVy
cmlkZTsKIH07CiAKLVNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6U2VyaWFsaXplck1hcmt1
cEFjY3VtdWxhdG9yKFBhZ2VTZXJpYWxpemVyJiBzZXJpYWxpemVyLCBEb2N1bWVudCYgZG9jdW1l
bnQsIFZlY3RvcjxOb2RlKj4qIG5vZGVzKQorUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJr
dXBBY2N1bXVsYXRvcjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yKFBhZ2VTZXJpYWxpemVy
JiBzZXJpYWxpemVyLCBEb2N1bWVudCYgZG9jdW1lbnQsIFZlY3RvcjxOb2RlKj4qIG5vZGVzKQog
ICAgIDogTWFya3VwQWNjdW11bGF0b3Iobm9kZXMsIFJlc29sdmVBbGxVUkxzKQogICAgICwgbV9z
ZXJpYWxpemVyKHNlcmlhbGl6ZXIpCiAgICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQpAQCAtMTIw
LDE4ICsxMTgsMTQgQEAgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjpTZXJpYWxpemVyTWFy
a3VwQWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXImIHNlcmlhbGkKICAgICAgICAgYXBwZW5kU3Ry
aW5nKCI8P3htbCB2ZXJzaW9uPVwiIiArIG1fZG9jdW1lbnQueG1sVmVyc2lvbigpICsgIlwiIGVu
Y29kaW5nPVwiIiArIG1fZG9jdW1lbnQuY2hhcnNldCgpICsgIlwiPz4iKTsKIH0KIAotU2VyaWFs
aXplck1hcmt1cEFjY3VtdWxhdG9yOjp+U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yKCkKLXsK
LX0KLQotdm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQoU3RyaW5n
QnVpbGRlciYgb3V0LCBjb25zdCBUZXh0JiB0ZXh0KQordm9pZCBQYWdlU2VyaWFsaXplcjo6U2Vy
aWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0KFN0cmluZ0J1aWxkZXImIG91dCwg
Y29uc3QgVGV4dCYgdGV4dCkKIHsKICAgICBFbGVtZW50KiBwYXJlbnQgPSB0ZXh0LnBhcmVudEVs
ZW1lbnQoKTsKICAgICBpZiAocGFyZW50ICYmICFzaG91bGRJZ25vcmVFbGVtZW50KCpwYXJlbnQp
KQogICAgICAgICBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kVGV4dChvdXQsIHRleHQpOwogfQog
Ci12b2lkIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRWxlbWVudChTdHJpbmdC
dWlsZGVyJiBvdXQsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIE5hbWVzcGFjZXMqIG5hbWVzcGFj
ZXMpCit2b2lkIFBhZ2VTZXJpYWxpemVyOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFw
cGVuZEVsZW1lbnQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBFbGVtZW50JiBlbGVtZW50LCBO
YW1lc3BhY2VzKiBuYW1lc3BhY2VzKQogewogICAgIGlmICghc2hvdWxkSWdub3JlRWxlbWVudChl
bGVtZW50KSkKICAgICAgICAgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVsZW1lbnQob3V0LCBl
bGVtZW50LCBuYW1lc3BhY2VzKTsKQEAgLTE0NSw3ICsxMzksNyBAQCB2b2lkIFNlcmlhbGl6ZXJN
YXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRWxlbWVudChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0
IEVsZW1lbgogICAgIC8vIEZJWE1FOiBGb3Igb2JqZWN0IChwbHVnaW5zKSB0YWdzIGFuZCB2aWRl
byB0YWcgd2UgY291bGQgcmVwbGFjZSB0aGVtIGJ5IGFuIGltYWdlIG9mIHRoZWlyIGN1cnJlbnQg
Y29udGVudHMuCiB9CiAKLXZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRD
dXN0b21BdHRyaWJ1dGVzKFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgRWxlbWVudCYgZWxlbWVu
dCwgTmFtZXNwYWNlcyogbmFtZXNwYWNlcykKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6
ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kQ3VzdG9tQXR0cmlidXRlcyhTdHJpbmdCdWlsZGVy
JiBvdXQsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIE5hbWVzcGFjZXMqIG5hbWVzcGFjZXMpCiB7
CiAgICAgaWYgKCFpczxIVE1MRnJhbWVPd25lckVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICBy
ZXR1cm47CkBAIC0xNjQsMzIgKzE1OCwyMCBAQCB2b2lkIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVs
YXRvcjo6YXBwZW5kQ3VzdG9tQXR0cmlidXRlcyhTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbgogICAg
IGFwcGVuZEF0dHJpYnV0ZShvdXQsIGVsZW1lbnQsIEF0dHJpYnV0ZShmcmFtZU93bmVyVVJMQXR0
cmlidXRlTmFtZShmcmFtZU93bmVyKSwgdXJsLnN0cmluZygpKSwgbmFtZXNwYWNlcyk7CiB9CiAK
LXZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoY29uc3QgRWxl
bWVudCYgZWxlbWVudCkKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1
bXVsYXRvcjo6YXBwZW5kRW5kVGFnKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgaWYg
KCFzaG91bGRJZ25vcmVFbGVtZW50KGVsZW1lbnQpKQogICAgICAgICBNYXJrdXBBY2N1bXVsYXRv
cjo6YXBwZW5kRW5kVGFnKGVsZW1lbnQpOwogfQogCi1QYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U6
OlJlc291cmNlKCkKLXsKLX0KLQotUGFnZVNlcmlhbGl6ZXI6OlJlc291cmNlOjpSZXNvdXJjZShj
b25zdCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgUGFzc1JlZlB0cjxTaGFyZWRC
dWZmZXI+IGRhdGEpCi0gICAgOiB1cmwodXJsKQotICAgICwgbWltZVR5cGUobWltZVR5cGUpCi0g
ICAgLCBkYXRhKGRhdGEpCi17Ci19Ci0KLVBhZ2VTZXJpYWxpemVyOjpQYWdlU2VyaWFsaXplcihW
ZWN0b3I8UGFnZVNlcmlhbGl6ZXI6OlJlc291cmNlPiogcmVzb3VyY2VzKQorUGFnZVNlcmlhbGl6
ZXI6OlBhZ2VTZXJpYWxpemVyKFZlY3RvcjxQYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U+JiByZXNv
dXJjZXMpCiAgICAgOiBtX3Jlc291cmNlcyhyZXNvdXJjZXMpCi0gICAgLCBtX2JsYW5rRnJhbWVD
b3VudGVyKDApCiB7CiB9CiAKLXZvaWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShQYWdlKiBw
YWdlKQordm9pZCBQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplKFBhZ2UmIHBhZ2UpCiB7Ci0gICAg
c2VyaWFsaXplRnJhbWUoJnBhZ2UtPm1haW5GcmFtZSgpKTsKKyAgICBzZXJpYWxpemVGcmFtZSgm
cGFnZS5tYWluRnJhbWUoKSk7CiB9CiAKIHZvaWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUZy
YW1lKEZyYW1lKiBmcmFtZSkKQEAgLTIxOCw3ICsyMDAsNyBAQCB2b2lkIFBhZ2VTZXJpYWxpemVy
OjpzZXJpYWxpemVGcmFtZShGcmFtZSogZnJhbWUpCiAgICAgfQogICAgIFN0cmluZyB0ZXh0ID0g
YWNjdW11bGF0b3Iuc2VyaWFsaXplTm9kZXMoKmRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKSwg
SW5jbHVkZU5vZGUpOwogICAgIENTdHJpbmcgZnJhbWVIVE1MID0gdGV4dEVuY29kaW5nLmVuY29k
ZSh0ZXh0LCBFbnRpdGllc0ZvclVuZW5jb2RhYmxlcyk7Ci0gICAgbV9yZXNvdXJjZXMtPmFwcGVu
ZChSZXNvdXJjZSh1cmwsIGRvY3VtZW50LT5zdWdnZXN0ZWRNSU1FVHlwZSgpLCBTaGFyZWRCdWZm
ZXI6OmNyZWF0ZShmcmFtZUhUTUwuZGF0YSgpLCBmcmFtZUhUTUwubGVuZ3RoKCkpKSk7CisgICAg
bV9yZXNvdXJjZXMuYXBwZW5kKHsgdXJsLCBkb2N1bWVudC0+c3VnZ2VzdGVkTUlNRVR5cGUoKSwg
U2hhcmVkQnVmZmVyOjpjcmVhdGUoZnJhbWVIVE1MLmRhdGEoKSwgZnJhbWVIVE1MLmxlbmd0aCgp
KSB9KTsKICAgICBtX3Jlc291cmNlVVJMcy5hZGQodXJsKTsKIAogICAgIGZvciAoYXV0byYgbm9k
ZSA6IG5vZGVzKSB7CkBAIC0yODQsNyArMjY2LDcgQEAgdm9pZCBQYWdlU2VyaWFsaXplcjo6c2Vy
aWFsaXplQ1NTU3R5bGVTaGVldChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0LCBjb25zdCBVUkwK
ICAgICAgICAgQVNTRVJUKHRleHRFbmNvZGluZy5pc1ZhbGlkKCkpOwogICAgICAgICBTdHJpbmcg
dGV4dFN0cmluZyA9IGNzc1RleHQudG9TdHJpbmcoKTsKICAgICAgICAgQ1N0cmluZyB0ZXh0ID0g
dGV4dEVuY29kaW5nLmVuY29kZSh0ZXh0U3RyaW5nLCBFbnRpdGllc0ZvclVuZW5jb2RhYmxlcyk7
Ci0gICAgICAgIG1fcmVzb3VyY2VzLT5hcHBlbmQoUmVzb3VyY2UodXJsLCBTdHJpbmcoInRleHQv
Y3NzIiksIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHRleHQuZGF0YSgpLCB0ZXh0Lmxlbmd0aCgpKSkp
OworICAgICAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIEFTQ0lJTGl0ZXJhbCB7ICJ0ZXh0
L2NzcyIgfSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUodGV4dC5kYXRhKCksIHRleHQubGVuZ3RoKCkp
IH0pOwogICAgICAgICBtX3Jlc291cmNlVVJMcy5hZGQodXJsKTsKICAgICB9CiB9CkBAIC0zMDYs
OCArMjg4LDcgQEAgdm9pZCBQYWdlU2VyaWFsaXplcjo6YWRkSW1hZ2VUb1Jlc291cmNlcyhDYWNo
ZWRJbWFnZSogaW1hZ2UsIFJlbmRlckVsZW1lbnQqIGltYWcKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIFN0cmluZyBtaW1lVHlwZSA9IGltYWdlLT5yZXNwb25zZSgpLm1pbWVUeXBlKCk7
Ci0gICAgbV9yZXNvdXJjZXMtPmFwcGVuZChSZXNvdXJjZSh1cmwsIG1pbWVUeXBlLCBkYXRhKSk7
CisgICAgbV9yZXNvdXJjZXMuYXBwZW5kKHsgdXJsLCBpbWFnZS0+cmVzcG9uc2UoKS5taW1lVHlw
ZSgpLCBXVEZNb3ZlKGRhdGEpIH0pOwogICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwpOwogfQog
CkBAIC0zMzQsMjAgKzMxNSwxOCBAQCB2b2lkIFBhZ2VTZXJpYWxpemVyOjpyZXRyaWV2ZVJlc291
cmNlc0ZvclByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBzdHlsZQogICAgICAgICBp
ZiAoIWltYWdlKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgVVJMIHVybCA9IGRv
Y3VtZW50LT5jb21wbGV0ZVVSTChpbWFnZS0+dXJsKCkpOwotICAgICAgICBhZGRJbWFnZVRvUmVz
b3VyY2VzKGltYWdlLCBudWxscHRyLCB1cmwpOworICAgICAgICBhZGRJbWFnZVRvUmVzb3VyY2Vz
KGltYWdlLCBudWxscHRyLCBkb2N1bWVudC0+Y29tcGxldGVVUkwoaW1hZ2UtPnVybCgpKSk7CiAg
ICAgfQogfQogCiBVUkwgUGFnZVNlcmlhbGl6ZXI6OnVybEZvckJsYW5rRnJhbWUoRnJhbWUqIGZy
YW1lKQogewotICAgIEhhc2hNYXA8RnJhbWUqLCBVUkw+OjppdGVyYXRvciBpdGVyID0gbV9ibGFu
a0ZyYW1lVVJMcy5maW5kKGZyYW1lKTsKKyAgICBhdXRvIGl0ZXIgPSBtX2JsYW5rRnJhbWVVUkxz
LmZpbmQoZnJhbWUpOwogICAgIGlmIChpdGVyICE9IG1fYmxhbmtGcmFtZVVSTHMuZW5kKCkpCiAg
ICAgICAgIHJldHVybiBpdGVyLT52YWx1ZTsKICAgICBTdHJpbmcgdXJsID0gInd5Y2l3eWc6Ly9m
cmFtZS8iICsgU3RyaW5nOjpudW1iZXIobV9ibGFua0ZyYW1lQ291bnRlcisrKTsKICAgICBVUkwg
ZmFrZVVSTChQYXJzZWRVUkxTdHJpbmcsIHVybCk7CiAgICAgbV9ibGFua0ZyYW1lVVJMcy5hZGQo
ZnJhbWUsIGZha2VVUkwpOwotCiAgICAgcmV0dXJuIGZha2VVUkw7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZVNlcmlhbGl6ZXIuaAppbmRleCBhMWI0N2I5ZGJiYzAzNGIxNzI5MzU0YzA4MjFhYWJk
ZDU3NjJlZWFjLi5kNTc0M2JjNGY2MTQ2MjkyMjhjM2ZmZjBhNGJlZGNiODc1MGMxMWY5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5oCkBAIC0zMCw3ICszMCw2IEBACiAKICNwcmFn
bWEgb25jZQogCi0jaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSAiVVJMSGFzaC5oIgogI2luY2x1
ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC01NiwyMCAr
NTUsMjAgQEAgcHVibGljOgogICAgICAgICBVUkwgdXJsOwogICAgICAgICBTdHJpbmcgbWltZVR5
cGU7CiAgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGE7Ci0gICAgICAgIFJlc291cmNl
KCk7Ci0gICAgICAgIFJlc291cmNlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUs
IFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhKTsKICAgICB9OwogCi0gICAgZXhwbGljaXQg
UGFnZVNlcmlhbGl6ZXIoVmVjdG9yPFJlc291cmNlPiopOworICAgIGV4cGxpY2l0IFBhZ2VTZXJp
YWxpemVyKFZlY3RvcjxSZXNvdXJjZT4mKTsKIAogICAgIC8vIEluaXRpYXRlcyB0aGUgc2VyaWFs
aXphdGlvbiBvZiB0aGUgZnJhbWUncyBwYWdlLiBBbGwgc2VyaWFsaXplZCBjb250ZW50IGFuZCBy
ZXRyaWV2ZWQKICAgICAvLyByZXNvdXJjZXMgYXJlIGFkZGVkIHRvIHRoZSBWZWN0b3IgcGFzc2Vk
IHRvIHRoZSBjb25zdHJ1Y3Rvci4gVGhlIGZpcnN0IHJlc291cmNlIGluIHRoYXQKICAgICAvLyB2
ZWN0b3IgaXMgdGhlIHRvcCBmcmFtZSBzZXJpYWxpemVkIGNvbnRlbnQuCi0gICAgdm9pZCBzZXJp
YWxpemUoUGFnZSopOworICAgIHZvaWQgc2VyaWFsaXplKFBhZ2UmKTsKKworcHJpdmF0ZToKKyAg
ICBjbGFzcyBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I7CiAKICAgICBVUkwgdXJsRm9yQmxh
bmtGcmFtZShGcmFtZSopOwogCi1wcml2YXRlOgogICAgIHZvaWQgc2VyaWFsaXplRnJhbWUoRnJh
bWUqKTsKIAogICAgIC8vIFNlcmlhbGl6ZXMgdGhlIHN0eWxlc2hlZXQgYmFjayB0byB0ZXh0IGFu
ZCBhZGRzIGl0IHRvIHRoZSByZXNvdXJjZXMgaWYgVVJMIGlzIG5vdC1lbXB0eS4KQEAgLTgwLDEw
ICs3OSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmV0cmlldmVSZXNvdXJjZXNGb3JQcm9wZXJ0
aWVzKGNvbnN0IFN0eWxlUHJvcGVydGllcyosIERvY3VtZW50Kik7CiAgICAgdm9pZCByZXRyaWV2
ZVJlc291cmNlc0ZvclJ1bGUoU3R5bGVSdWxlJiwgRG9jdW1lbnQqKTsKIAotICAgIFZlY3RvcjxS
ZXNvdXJjZT4qIG1fcmVzb3VyY2VzOworICAgIFZlY3RvcjxSZXNvdXJjZT4mIG1fcmVzb3VyY2Vz
OwogICAgIExpc3RIYXNoU2V0PFVSTD4gbV9yZXNvdXJjZVVSTHM7CiAgICAgSGFzaE1hcDxGcmFt
ZSosIFVSTD4gbV9ibGFua0ZyYW1lVVJMczsKLSAgICB1bnNpZ25lZCBtX2JsYW5rRnJhbWVDb3Vu
dGVyOworICAgIHVuc2lnbmVkIG1fYmxhbmtGcmFtZUNvdW50ZXIgeyAwIH07CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZv
cm1hbmNlRW50cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VFbnRyeS5oCmlu
ZGV4IGIzYTg0YTNhOWRjYTgyYmJmYThiMzQwNzRiZWNjNzNiNDg3ZWRhYWUuLmY4ZDZjYTdmZWM4
MGMwZmZlNmE5ODZlYmZlNDgxZWIzNDUwYmNiYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGVyZm9ybWFuY2VFbnRyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2VFbnRyeS5oCkBAIC0zNCw3ICszNCw2IEBACiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAK
ICNpbmNsdWRlICJQZXJmb3JtYW5jZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAj
aW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC01NCw3ICs1Myw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgaXNNYXJrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2
aXJ0dWFsIGJvb2wgaXNNZWFzdXJlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHN0
YXRpYyBib29sIHN0YXJ0VGltZUNvbXBhcmVMZXNzVGhhbihQYXNzUmVmUHRyPFBlcmZvcm1hbmNl
RW50cnk+IGEsIFBhc3NSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4gYikKKyAgICBzdGF0aWMgYm9v
bCBzdGFydFRpbWVDb21wYXJlTGVzc1RoYW4oY29uc3QgUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+
JiBhLCBjb25zdCBSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4mIGIpCiAgICAgewogICAgICAgICBy
ZXR1cm4gYS0+c3RhcnRUaW1lKCkgPCBiLT5zdGFydFRpbWUoKTsKICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAKaW5kZXggZDk1MzE4MDU0NzBm
OGVlY2E0Mjg3NjNiN2NhMWVhYzUzZTE3M2I2Zi4uOWE2YzdhY2UzOTQwZWUzOGQ2NTdlYmJhMzVh
MTgzNjM4ODBhNDlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5j
ZVVzZXJUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2Vy
VGltaW5nLmNwcApAQCAtODcsMTQgKzg3LDE0IEBAIFVzZXJUaW1pbmc6OlVzZXJUaW1pbmcoUGVy
Zm9ybWFuY2UmIHBlcmZvcm1hbmNlKQogewogfQogCi1zdGF0aWMgdm9pZCBpbnNlcnRQZXJmb3Jt
YW5jZUVudHJ5KFBlcmZvcm1hbmNlRW50cnlNYXAmIHBlcmZvcm1hbmNlRW50cnlNYXAsIFBhc3NS
ZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4gcGVyZm9ybWFuY2VFbnRyeSkKK3N0YXRpYyB2b2lkIGlu
c2VydFBlcmZvcm1hbmNlRW50cnkoUGVyZm9ybWFuY2VFbnRyeU1hcCYgcGVyZm9ybWFuY2VFbnRy
eU1hcCwgUmVmPFBlcmZvcm1hbmNlRW50cnk+JiYgcGVyZm9ybWFuY2VFbnRyeSkKIHsKLSAgICBS
ZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4gZW50cnkgPSBwZXJmb3JtYW5jZUVudHJ5OwotICAgIFBl
cmZvcm1hbmNlRW50cnlNYXA6Oml0ZXJhdG9yIGl0ID0gcGVyZm9ybWFuY2VFbnRyeU1hcC5maW5k
KGVudHJ5LT5uYW1lKCkpOworICAgIFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBlbnRyeSA9IFdU
Rk1vdmUocGVyZm9ybWFuY2VFbnRyeSk7CisgICAgYXV0byBpdCA9IHBlcmZvcm1hbmNlRW50cnlN
YXAuZmluZChlbnRyeS0+bmFtZSgpKTsKICAgICBpZiAoaXQgIT0gcGVyZm9ybWFuY2VFbnRyeU1h
cC5lbmQoKSkKLSAgICAgICAgaXQtPnZhbHVlLmFwcGVuZChlbnRyeSk7CisgICAgICAgIGl0LT52
YWx1ZS5hcHBlbmQoV1RGTW92ZShlbnRyeSkpOwogICAgIGVsc2UKLSAgICAgICAgcGVyZm9ybWFu
Y2VFbnRyeU1hcC5zZXQoZW50cnktPm5hbWUoKSwgVmVjdG9yPFJlZlB0cjxQZXJmb3JtYW5jZUVu
dHJ5Pj57IGVudHJ5IH0pOworICAgICAgICBwZXJmb3JtYW5jZUVudHJ5TWFwLnNldChlbnRyeS0+
bmFtZSgpLCBWZWN0b3I8UmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+PiB7IFdURk1vdmUoZW50cnkp
IH0pOwogfQogCiBzdGF0aWMgdm9pZCBjbGVhclBlZm9ybWFuY2VFbnRyaWVzKFBlcmZvcm1hbmNl
RW50cnlNYXAmIHBlcmZvcm1hbmNlRW50cnlNYXAsIGNvbnN0IFN0cmluZyYgbmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZU92ZXJsYXkuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlT3ZlcmxheS5jcHAKaW5kZXggYWU4MTEyY2Ey
NjM5OTE2ZjQxNDVlOTMyM2RlMGQyZjI4MTk1YWNiMC4uZTc0M2Q4ODBlMjBjYjFmZGY4NTcwMTYw
ZDBiMWFkNTgzOTI5YjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJj
ZVVzYWdlT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdl
T3ZlcmxheS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgUmVzb3VyY2VVc2FnZU92ZXJsYXk6On5SZXNv
dXJjZVVzYWdlT3ZlcmxheSgpCiAKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIGhhY2sgc28gd2Ug
ZG9uJ3QgdHJ5IHRvIHVuaW5zdGFsbCB0aGUgUGFnZU92ZXJsYXkgZHVyaW5nIFBhZ2UgZGVzdHJ1
Y3Rpb24uCiAgICAgaWYgKG1fcGFnZS5tYWluRnJhbWUoKS5wYWdlKCkpCi0gICAgICAgIG1fcGFn
ZS5tYWluRnJhbWUoKS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3Zlcmxh
eShtX292ZXJsYXkuZ2V0KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAg
ICAgICAgbV9wYWdlLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFs
bFBhZ2VPdmVybGF5KCptX292ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRl
KTsKIH0KIAogdm9pZCBSZXNvdXJjZVVzYWdlT3ZlcmxheTo6aW5pdGlhbGl6ZSgpCkBAIC03Miw3
ICs3Miw3IEBAIHZvaWQgUmVzb3VyY2VVc2FnZU92ZXJsYXk6OmluaXRpYWxpemUoKQogCiAgICAg
bV9vdmVybGF5LT5zZXRGcmFtZShpbml0aWFsUmVjdCk7CiAgICAgbV9vdmVybGF5LT5zZXRTaG91
bGRJZ25vcmVNb3VzZUV2ZW50c091dHNpZGVCb3VuZHMoZmFsc2UpOwotICAgIG1fcGFnZS5tYWlu
RnJhbWUoKS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkobV9vdmVy
bGF5LmdldCgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgbV9wYWdl
Lm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSgq
bV9vdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAgcGxhdGZv
cm1Jbml0aWFsaXplKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0FuaW1hdGlvbkJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Fu
aW1hdGlvbkJhc2UuaAppbmRleCA1YWRlMDAyMmViYzBkODRkMjc4NjhmZTI0YjU0ZDY2YTYxZTc3
ZTU4Li4yZGQwYzMwOWUwNTgyZjM1Y2Y5MzZmNTBhY2Q5YzFhYzM0MTYzNTVlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCkBAIC0zMSw3ICszMSw2
IEBACiAjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5o
IgogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25Db250cm9sbGVyLmNwcAppbmRleCA1ODg5NmRiMmYxZTlmZDQ1Mzc4YjM2N2MwMGVjNzE3
YmIxM2U0OTljLi40YzQwYzkyM2EyM2UyMzM4ODQwODQyZTg4M2NlMDVkYjFlN2JkZDFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9s
bGVyLmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIGJvb2wgQW5pbWF0aW9uQ29udHJvbGxlclByaXZh
dGU6OmNsZWFyKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQogICAgIEVsZW1lbnQqIGVsZW1lbnQg
PSByZW5kZXJlci5lbGVtZW50KCk7CiAKICAgICBtX2V2ZW50c1RvRGlzcGF0Y2gucmVtb3ZlQWxs
TWF0Y2hpbmcoW2VsZW1lbnRdIChjb25zdCBFdmVudFRvRGlzcGF0Y2gmIGluZm8pIHsKLSAgICAg
ICAgcmV0dXJuIGluZm8uZWxlbWVudCA9PSBlbGVtZW50OworICAgICAgICByZXR1cm4gaW5mby5l
bGVtZW50LnB0cigpID09IGVsZW1lbnQ7CiAgICAgfSk7CiAKICAgICBtX2VsZW1lbnRDaGFuZ2Vz
VG9EaXNwYXRjaC5yZW1vdmVBbGxNYXRjaGluZyhbZWxlbWVudF0oYXV0byYgY3VycmVudEVsZW1l
bnQpIHsKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRl
OjpmaXJlRXZlbnRzQW5kVXBkYXRlU3R5bGUoKQogICAgIC8vIGZpcmUgYWxsIHRoZSBldmVudHMK
ICAgICBWZWN0b3I8RXZlbnRUb0Rpc3BhdGNoPiBldmVudHNUb0Rpc3BhdGNoID0gV1RGTW92ZSht
X2V2ZW50c1RvRGlzcGF0Y2gpOwogICAgIGZvciAoYXV0byYgZXZlbnQgOiBldmVudHNUb0Rpc3Bh
dGNoKSB7Ci0gICAgICAgIEVsZW1lbnQmIGVsZW1lbnQgPSAqZXZlbnQuZWxlbWVudDsKKyAgICAg
ICAgRWxlbWVudCYgZWxlbWVudCA9IGV2ZW50LmVsZW1lbnQ7CiAgICAgICAgIGlmIChldmVudC5l
dmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCkKICAgICAgICAgICAg
IGVsZW1lbnQuZGlzcGF0Y2hFdmVudChUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0ZShldmVudC5ldmVu
dFR5cGUsIGV2ZW50Lm5hbWUsIGV2ZW50LmVsYXBzZWRUaW1lLCBQc2V1ZG9FbGVtZW50Ojpwc2V1
ZG9FbGVtZW50TmFtZUZvckV2ZW50cyhlbGVtZW50LnBzZXVkb0lkKCkpKSk7CiAgICAgICAgIGVs
c2UKQEAgLTIyNSwyMSArMjI1LDE1IEBAIHZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6
OnN0YXJ0VXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIoKQogICAgICAgICBtX3VwZGF0ZVN0
eWxlSWZOZWVkZWREaXNwYXRjaGVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAotdm9pZCBBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZTo6YWRkRXZlbnRUb0Rpc3BhdGNoKFBhc3NSZWZQdHI8RWxlbWVu
dD4gZWxlbWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYg
bmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKQordm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0
ZTo6YWRkRXZlbnRUb0Rpc3BhdGNoKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSkKIHsK
LSAgICBtX2V2ZW50c1RvRGlzcGF0Y2guZ3JvdyhtX2V2ZW50c1RvRGlzcGF0Y2guc2l6ZSgpKzEp
OwotICAgIEV2ZW50VG9EaXNwYXRjaCYgZXZlbnQgPSBtX2V2ZW50c1RvRGlzcGF0Y2hbbV9ldmVu
dHNUb0Rpc3BhdGNoLnNpemUoKS0xXTsKLSAgICBldmVudC5lbGVtZW50ID0gZWxlbWVudDsKLSAg
ICBldmVudC5ldmVudFR5cGUgPSBldmVudFR5cGU7Ci0gICAgZXZlbnQubmFtZSA9IG5hbWU7Ci0g
ICAgZXZlbnQuZWxhcHNlZFRpbWUgPSBlbGFwc2VkVGltZTsKLSAgICAKKyAgICBtX2V2ZW50c1Rv
RGlzcGF0Y2guYXBwZW5kKHsgZWxlbWVudCwgZXZlbnRUeXBlLCBuYW1lLCBlbGFwc2VkVGltZSB9
KTsKICAgICBzdGFydFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCk7CiB9CiAKLXZvaWQg
QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKFJl
ZjxFbGVtZW50PiYmIGVsZW1lbnQpCit2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjph
ZGRFbGVtZW50Q2hhbmdlVG9EaXNwYXRjaChFbGVtZW50JiBlbGVtZW50KQogewotICAgIG1fZWxl
bWVudENoYW5nZXNUb0Rpc3BhdGNoLmFwcGVuZChXVEZNb3ZlKGVsZW1lbnQpKTsKKyAgICBtX2Vs
ZW1lbnRDaGFuZ2VzVG9EaXNwYXRjaC5hcHBlbmQoZWxlbWVudCk7CiAgICAgQVNTRVJUKG1fZWxl
bWVudENoYW5nZXNUb0Rpc3BhdGNoLmxhc3QoKS0+ZG9jdW1lbnQoKS5wYWdlQ2FjaGVTdGF0ZSgp
ID09IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CiAgICAgc3RhcnRVcGRhdGVTdHlsZUlmTmVl
ZGVkRGlzcGF0Y2hlcigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKaW5kZXggZmI5Y2M4MmI4MTUx
N2QwYmEzMjczZjM4MGYyMGJjZDhhOTg2MWY1OC4uNDlhZDNmOWM5NTQyNTVjMzFkMGZiZmZhNGM2
MjY4YjA2NzkyMTdlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCkBAIC0yOSwzMyArMjksMjEgQEAK
ICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQW5pbWF0aW9uQmFzZS5oIgotI2luY2x1ZGUgIkNT
U1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0
ci5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0j
aW5jbHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQW5pbWF0aW9uQmFzZTsK
IGNsYXNzIENvbXBvc2l0ZUFuaW1hdGlvbjsKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgRWxlbWVu
dDsKIGNsYXNzIEZyYW1lOwotY2xhc3MgUmVuZGVyRWxlbWVudDsKLWNsYXNzIFJlbmRlclN0eWxl
OwogCi1lbnVtIFNldENoYW5nZWQgewotICAgIERvTm90Q2FsbFNldENoYW5nZWQgPSAwLAotICAg
IENhbGxTZXRDaGFuZ2VkID0gMQotfTsKK2VudW0gU2V0Q2hhbmdlZCB7IERvTm90Q2FsbFNldENo
YW5nZWQsIENhbGxTZXRDaGFuZ2VkIH07CiAKIGNsYXNzIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBbmltYXRpb25Db250cm9sbGVyUHJpdmF0
ZSk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgogICAgIGV4cGxpY2l0IEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlKEZyYW1l
Jik7CiAgICAgfkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlKCk7CkBAIC02OSw4ICs1Nyw4IEBA
IHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXJGaXJlZCgp
OwogICAgIHZvaWQgc3RhcnRVcGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hlcigpOwotICAgIHZv
aWQgYWRkRXZlbnRUb0Rpc3BhdGNoKFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCwgY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgZG91YmxlIGVsYXBz
ZWRUaW1lKTsKLSAgICB2b2lkIGFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKFJlZjxFbGVtZW50
PiYmKTsKKyAgICB2b2lkIGFkZEV2ZW50VG9EaXNwYXRjaChFbGVtZW50JiwgY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgZG91YmxlIGVsYXBzZWRUaW1l
KTsKKyAgICB2b2lkIGFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKEVsZW1lbnQmKTsKIAogICAg
IGJvb2wgaGFzQW5pbWF0aW9ucygpIGNvbnN0IHsgcmV0dXJuICFtX2NvbXBvc2l0ZUFuaW1hdGlv
bnMuaXNFbXB0eSgpOyB9CiAKQEAgLTEzNCwyMSArMTIyLDE5IEBAIHByaXZhdGU6CiAgICAgVGlt
ZXIgbV9hbmltYXRpb25UaW1lcjsKICAgICBUaW1lciBtX3VwZGF0ZVN0eWxlSWZOZWVkZWREaXNw
YXRjaGVyOwogICAgIEZyYW1lJiBtX2ZyYW1lOwotICAgIAotICAgIGNsYXNzIEV2ZW50VG9EaXNw
YXRjaCB7Ci0gICAgcHVibGljOgotICAgICAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudDsKKwor
ICAgIHN0cnVjdCBFdmVudFRvRGlzcGF0Y2ggeworICAgICAgICBSZWY8RWxlbWVudD4gZWxlbWVu
dDsKICAgICAgICAgQXRvbWljU3RyaW5nIGV2ZW50VHlwZTsKICAgICAgICAgU3RyaW5nIG5hbWU7
CiAgICAgICAgIGRvdWJsZSBlbGFwc2VkVGltZTsKICAgICB9OwotICAgIAogICAgIFZlY3RvcjxF
dmVudFRvRGlzcGF0Y2g+IG1fZXZlbnRzVG9EaXNwYXRjaDsKICAgICBWZWN0b3I8UmVmPEVsZW1l
bnQ+PiBtX2VsZW1lbnRDaGFuZ2VzVG9EaXNwYXRjaDsKICAgICAKICAgICBkb3VibGUgbV9iZWdp
bkFuaW1hdGlvblVwZGF0ZVRpbWU7CiAKLSAgICB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPEFuaW1h
dGlvbkJhc2U+PiBBbmltYXRpb25zU2V0OworICAgIHVzaW5nIEFuaW1hdGlvbnNTZXQgPSBIYXNo
U2V0PFJlZlB0cjxBbmltYXRpb25CYXNlPj47CiAgICAgQW5pbWF0aW9uc1NldCBtX2FuaW1hdGlv
bnNXYWl0aW5nRm9yU3R5bGU7CiAgICAgQW5pbWF0aW9uc1NldCBtX2FuaW1hdGlvbnNXYWl0aW5n
Rm9yU3RhcnRUaW1lUmVzcG9uc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAppbmRleCA5ZjZiOTE3YzZlYzFjNmZl
YmJhNjk0MGExNjcwNWJkYmQ1YWM3NGNmLi44YzU0MDNhNGMxOTYzN2FhNjIxZGU2YTQwNzE2MDcx
YWU3ODM1MDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQ
cm9wZXJ0eUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
Q1NTUHJvcGVydHlBbmltYXRpb24uY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgc3RhdGljIGlubGlu
ZSBUcmFuc2Zvcm1PcGVyYXRpb25zIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmlt
YXRpb24sIGNvbnMKICAgICByZXR1cm4gdG8uYmxlbmRCeVVzaW5nTWF0cml4SW50ZXJwb2xhdGlv
bihmcm9tLCBwcm9ncmVzcywgaXM8UmVuZGVyQm94PigqYW5pbWF0aW9uLT5yZW5kZXJlcigpKSA/
IGRvd25jYXN0PFJlbmRlckJveD4oKmFuaW1hdGlvbi0+cmVuZGVyZXIoKSkuYm9yZGVyQm94UmVj
dCgpLnNpemUoKSA6IExheW91dFNpemUoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0
cjxDbGlwUGF0aE9wZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBDbGlw
UGF0aE9wZXJhdGlvbiogZnJvbSwgQ2xpcFBhdGhPcGVyYXRpb24qIHRvLCBkb3VibGUgcHJvZ3Jl
c3MpCitzdGF0aWMgaW5saW5lIFJlZlB0cjxDbGlwUGF0aE9wZXJhdGlvbj4gYmxlbmRGdW5jKGNv
bnN0IEFuaW1hdGlvbkJhc2UqLCBDbGlwUGF0aE9wZXJhdGlvbiogZnJvbSwgQ2xpcFBhdGhPcGVy
YXRpb24qIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgaWYgKCFmcm9tIHx8ICF0bykKICAg
ICAgICAgcmV0dXJuIHRvOwpAQCAtMTQzLDcgKzE0Myw3IEBAIHN0YXRpYyBpbmxpbmUgUGFzc1Jl
ZlB0cjxDbGlwUGF0aE9wZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBD
bGlwCiAgICAgcmV0dXJuIFNoYXBlQ2xpcFBhdGhPcGVyYXRpb246OmNyZWF0ZSh0b1NoYXBlLmJs
ZW5kKGZyb21TaGFwZSwgcHJvZ3Jlc3MpKTsKIH0KIAotc3RhdGljIGlubGluZSBQYXNzUmVmUHRy
PFNoYXBlVmFsdWU+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgU2hhcGVWYWx1ZSog
ZnJvbSwgU2hhcGVWYWx1ZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUgUmVm
UHRyPFNoYXBlVmFsdWU+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgU2hhcGVWYWx1
ZSogZnJvbSwgU2hhcGVWYWx1ZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAoIWZy
b20gfHwgIXRvKQogICAgICAgICByZXR1cm4gdG87CkBAIC0xNjMsNyArMTYzLDcgQEAgc3RhdGlj
IGlubGluZSBQYXNzUmVmUHRyPFNoYXBlVmFsdWU+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25C
YXNlKiwgU2hhcGVWYWx1ZSoKICAgICByZXR1cm4gU2hhcGVWYWx1ZTo6Y3JlYXRlKHRvU2hhcGUu
YmxlbmQoZnJvbVNoYXBlLCBwcm9ncmVzcyksIHRvLT5jc3NCb3goKSk7CiB9CiAKLXN0YXRpYyBp
bmxpbmUgUGFzc1JlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRp
b25CYXNlKiBhbmltYXRpb24sIEZpbHRlck9wZXJhdGlvbiogZnJvbU9wLCBGaWx0ZXJPcGVyYXRp
b24qIHRvT3AsIGRvdWJsZSBwcm9ncmVzcywgYm9vbCBibGVuZFRvUGFzc3Rocm91Z2ggPSBmYWxz
ZSkKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0
IEFuaW1hdGlvbkJhc2UqIGFuaW1hdGlvbiwgRmlsdGVyT3BlcmF0aW9uKiBmcm9tT3AsIEZpbHRl
ck9wZXJhdGlvbiogdG9PcCwgZG91YmxlIHByb2dyZXNzLCBib29sIGJsZW5kVG9QYXNzdGhyb3Vn
aCA9IGZhbHNlKQogewogICAgIEFTU0VSVCh0b09wKTsKICAgICBpZiAodG9PcC0+YmxlbmRpbmdO
ZWVkc1JlbmRlcmVyU2l6ZSgpKSB7CkBAIC0yMTgsNyArMjE4LDcgQEAgc3RhdGljIGlubGluZSBG
aWx0ZXJPcGVyYXRpb25zIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25z
dCBGaWx0ZXIKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgaW5saW5lIFBhc3NSZWZQ
dHI8U3R5bGVJbWFnZT4gYmxlbmRGaWx0ZXIoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgQ2Fj
aGVkSW1hZ2UqIGltYWdlLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmcm9tLCBjb25zdCBGaWx0
ZXJPcGVyYXRpb25zJiB0bywgZG91YmxlIHByb2dyZXNzKQorc3RhdGljIGlubGluZSBSZWZQdHI8
U3R5bGVJbWFnZT4gYmxlbmRGaWx0ZXIoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgQ2FjaGVk
SW1hZ2UqIGltYWdlLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmcm9tLCBjb25zdCBGaWx0ZXJP
cGVyYXRpb25zJiB0bywgZG91YmxlIHByb2dyZXNzKQogewogICAgIEFTU0VSVChpbWFnZSk7CiAg
ICAgRmlsdGVyT3BlcmF0aW9ucyBmaWx0ZXJSZXN1bHQgPSBibGVuZEZpbHRlck9wZXJhdGlvbnMo
YW5pbSwgZnJvbSwgdG8sIHByb2dyZXNzKTsKQEAgLTI3OCw3ICsyNzgsNyBAQCBzdGF0aWMgaW5s
aW5lIFZlY3RvcjxTVkdMZW5ndGhWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2Uq
LCBjb25zdCBWZWN0bwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFz
c1JlZlB0cjxTdHlsZUltYWdlPiBjcm9zc2ZhZGVCbGVuZChjb25zdCBBbmltYXRpb25CYXNlKiwg
U3R5bGVDYWNoZWRJbWFnZSogZnJvbVN0eWxlSW1hZ2UsIFN0eWxlQ2FjaGVkSW1hZ2UqIHRvU3R5
bGVJbWFnZSwgZG91YmxlIHByb2dyZXNzKQorc3RhdGljIGlubGluZSBSZWZQdHI8U3R5bGVJbWFn
ZT4gY3Jvc3NmYWRlQmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSosIFN0eWxlQ2FjaGVkSW1hZ2Uq
IGZyb21TdHlsZUltYWdlLCBTdHlsZUNhY2hlZEltYWdlKiB0b1N0eWxlSW1hZ2UsIGRvdWJsZSBw
cm9ncmVzcykKIHsKICAgICAvLyBJZiBwcm9ncmVzcyBpcyBhdCBvbmUgb2YgdGhlIGV4dHJlbWVz
LCB3ZSB3YW50IGdldENvbXB1dGVkU3R5bGUgdG8gc2hvdyB0aGUgaW1hZ2UsCiAgICAgLy8gbm90
IGEgY29tcGxldGVkIGNyb3NzLWZhZGUsIHNvIHdlIGhhbmQgYmFjayBvbmUgb2YgdGhlIGV4aXN0
aW5nIGltYWdlcy4KQEAgLTI5NSw3ICsyOTUsNyBAQCBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8
U3R5bGVJbWFnZT4gY3Jvc3NmYWRlQmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSosIFN0eWxlQwog
ICAgIHJldHVybiBTdHlsZUdlbmVyYXRlZEltYWdlOjpjcmVhdGUoV1RGTW92ZShjcm9zc2ZhZGVW
YWx1ZSkpOwogfQogCi1zdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gYmxlbmRG
dW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFN0eWxlSW1hZ2UqIGZyb20sIFN0eWxlSW1h
Z2UqIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5lIFJlZlB0cjxTdHlsZUltYWdl
PiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgU3R5bGVJbWFnZSogZnJvbSwg
U3R5bGVJbWFnZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAoIWZyb20gfHwgIXRv
KQogICAgICAgICByZXR1cm4gdG87CkBAIC0zNjQsMTEgKzM2NCwxMiBAQCBzdGF0aWMgaW5saW5l
IE5pbmVQaWVjZUltYWdlIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25z
dCBOaW5lUGllYwogICAgIGlmIChmcm9tLmltYWdlKCktPmltYWdlU2l6ZShhbmltLT5yZW5kZXJl
cigpLCAxLjApICE9IHRvLmltYWdlKCktPmltYWdlU2l6ZShhbmltLT5yZW5kZXJlcigpLCAxLjAp
KQogICAgICAgICByZXR1cm4gdG87CiAKLSAgICBhdXRvIG5ld0NvbnRlbnRJbWFnZSA9IGJsZW5k
RnVuYyhhbmltLCBmcm9tLmltYWdlKCksIHRvLmltYWdlKCksIHByb2dyZXNzKTsKLSAgICByZXR1
cm4gTmluZVBpZWNlSW1hZ2UobmV3Q29udGVudEltYWdlLCBmcm9tLmltYWdlU2xpY2VzKCksIGZy
b20uZmlsbCgpLCBmcm9tLmJvcmRlclNsaWNlcygpLCBmcm9tLm91dHNldCgpLCBmcm9tLmhvcml6
b250YWxSdWxlKCksIGZyb20udmVydGljYWxSdWxlKCkpOworICAgIHJldHVybiBOaW5lUGllY2VJ
bWFnZShibGVuZEZ1bmMoYW5pbSwgZnJvbS5pbWFnZSgpLCB0by5pbWFnZSgpLCBwcm9ncmVzcyks
CisgICAgICAgIGZyb20uaW1hZ2VTbGljZXMoKSwgZnJvbS5maWxsKCksIGZyb20uYm9yZGVyU2xp
Y2VzKCksIGZyb20ub3V0c2V0KCksIGZyb20uaG9yaXpvbnRhbFJ1bGUoKSwgZnJvbS52ZXJ0aWNh
bFJ1bGUoKSk7CiB9CiAKICNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZPTlRTKQorCiBzdGF0aWMgaW5s
aW5lIEZvbnRWYXJpYXRpb25TZXR0aW5ncyBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSog
YW5pbSwgY29uc3QgRm9udFZhcmlhdGlvblNldHRpbmdzJiBmcm9tLCBjb25zdCBGb250VmFyaWF0
aW9uU2V0dGluZ3MmIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgaWYgKGZyb20uc2l6ZSgp
ICE9IHRvLnNpemUoKSkKQEAgLTM4NSw2ICszODYsNyBAQCBzdGF0aWMgaW5saW5lIEZvbnRWYXJp
YXRpb25TZXR0aW5ncyBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgY29uc3Qg
RgogICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQorCiAjZW5kaWYKIAogY2xhc3MgQW5pbWF0
aW9uUHJvcGVydHlXcmFwcGVyQmFzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAppbmRleCA1Yjc0ZTc2NzgyOGM0NWE1NjI5
ZTE5ZmUyNjA1MzgzYzJhNWY2ZThhLi42Njk5MjcwN2IxZWVhYjE4NDNmZTAzOWFhYzYyZGUzMGM0
NDMwMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3Np
dGVBbmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBv
c2l0ZUFuaW1hdGlvbi5jcHAKQEAgLTEyMSw4ICsxMjEsOCBAQCB2b2lkIENvbXBvc2l0ZUFuaW1h
dGlvbjo6dXBkYXRlVHJhbnNpdGlvbnMoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNvbnN0IFJl
bmRlcgogICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgcnVubmluZyBhbmltYXRpb24g
Zm9yIHRoaXMgcHJvcGVydHksIHRoZSB0cmFuc2l0aW9uIGlzIG92ZXJyaWRkZW4KICAgICAgICAg
ICAgICAgICAvLyBhbmQgd2UgaGF2ZSB0byB1c2UgdGhlIHVuYW5pbWF0ZWRTdHlsZSBmcm9tIHRo
ZSBhbmltYXRpb24uIFdlIGRvIHRoZSB0ZXN0CiAgICAgICAgICAgICAgICAgLy8gYWdhaW5zdCB0
aGUgdW5hbmltYXRlZCBzdHlsZSBoZXJlLCBidXQgd2UgIm92ZXJyaWRlIiB0aGUgdHJhbnNpdGlv
biBsYXRlci4KLSAgICAgICAgICAgICAgICBSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IGtleWZy
YW1lQW5pbSA9IGdldEFuaW1hdGlvbkZvclByb3BlcnR5KHByb3ApOwotICAgICAgICAgICAgICAg
IGF1dG8qIGZyb21TdHlsZSA9IGtleWZyYW1lQW5pbSA/IGtleWZyYW1lQW5pbS0+dW5hbmltYXRl
ZFN0eWxlKCkgOiBjdXJyZW50U3R5bGU7CisgICAgICAgICAgICAgICAgYXV0byoga2V5ZnJhbWVB
bmltYXRpb24gPSBhbmltYXRpb25Gb3JQcm9wZXJ0eShwcm9wKTsKKyAgICAgICAgICAgICAgICBh
dXRvKiBmcm9tU3R5bGUgPSBrZXlmcmFtZUFuaW1hdGlvbiA/IGtleWZyYW1lQW5pbWF0aW9uLT51
bmFuaW1hdGVkU3R5bGUoKSA6IGN1cnJlbnRTdHlsZTsKIAogICAgICAgICAgICAgICAgIC8vIFNl
ZSBpZiB0aGVyZSBpcyBhIGN1cnJlbnQgdHJhbnNpdGlvbiBmb3IgdGhpcyBwcm9wCiAgICAgICAg
ICAgICAgICAgSW1wbGljaXRBbmltYXRpb24qIGltcGxBbmltID0gbV90cmFuc2l0aW9ucy5nZXQo
cHJvcCk7CkBAIC0xNzIsNyArMTcyLDcgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVwZGF0
ZVRyYW5zaXRpb25zKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBjb25zdCBSZW5kZXIKICAgICAg
ICAgICAgICAgICAgICAgTE9HKEFuaW1hdGlvbnMsICJDcmVhdGVkIEltcGxpY2l0QW5pbWF0aW9u
ICVwIG9uIHJlbmRlcmVyICVwIGZvciBwcm9wZXJ0eSAlcyBkdXJhdGlvbiAlLjJmIGRlbGF5ICUu
MmYiLCBpbXBsaWNpdEFuaW1hdGlvbi5wdHIoKSwgcmVuZGVyZXIsIGdldFByb3BlcnR5TmFtZShw
cm9wKSwgYW5pbWF0aW9uLmR1cmF0aW9uKCksIGFuaW1hdGlvbi5kZWxheSgpKTsKICAgICAgICAg
ICAgICAgICAgICAgbV90cmFuc2l0aW9ucy5zZXQocHJvcCwgV1RGTW92ZShpbXBsaWNpdEFuaW1h
dGlvbikpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKKwogICAgICAgICAg
ICAgICAgIC8vIFdlIG9ubHkgbmVlZCBvbmUgcGFzcyBmb3IgdGhlIHNpbmdsZSBwcm9wIGNhc2UK
ICAgICAgICAgICAgICAgICBpZiAoIWFsbCkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBA
IC0zOTksMjEgKzM5OSwyMSBAQCBkb3VibGUgQ29tcG9zaXRlQW5pbWF0aW9uOjp0aW1lVG9OZXh0
U2VydmljZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1pblQ7CiB9CiAKLVBhc3NSZWZQdHI8S2V5ZnJh
bWVBbmltYXRpb24+IENvbXBvc2l0ZUFuaW1hdGlvbjo6Z2V0QW5pbWF0aW9uRm9yUHJvcGVydHko
Q1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkgY29uc3QKK0tleWZyYW1lQW5pbWF0aW9uKiBDb21wb3Np
dGVBbmltYXRpb246OmFuaW1hdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHkp
IGNvbnN0CiB7Ci0gICAgUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiByZXR2YWw7Ci0gICAgCisg
ICAgS2V5ZnJhbWVBbmltYXRpb24qIHJlc3VsdCA9IG51bGxwdHI7CisKICAgICAvLyBXZSB3YW50
IHRvIHNlbmQgYmFjayB0aGUgbGFzdCBhbmltYXRpb24gd2l0aCB0aGUgcHJvcGVydHkgaWYgdGhl
cmUgYXJlIG11bHRpcGxlcy4KICAgICAvLyBTbyB3ZSBuZWVkIHRvIGl0ZXJhdGUgdGhyb3VnaCBh
bGwgYW5pbWF0aW9ucwogICAgIGlmICghbV9rZXlmcmFtZUFuaW1hdGlvbnMuaXNFbXB0eSgpKSB7
CiAgICAgICAgIG1fa2V5ZnJhbWVBbmltYXRpb25zLmNoZWNrQ29uc2lzdGVuY3koKTsKICAgICAg
ICAgZm9yIChhdXRvJiBhbmltYXRpb24gOiBtX2tleWZyYW1lQW5pbWF0aW9ucy52YWx1ZXMoKSkg
ewogICAgICAgICAgICAgaWYgKGFuaW1hdGlvbi0+aGFzQW5pbWF0aW9uRm9yUHJvcGVydHkocHJv
cGVydHkpKQotICAgICAgICAgICAgICAgIHJldHZhbCA9IGFuaW1hdGlvbjsKKyAgICAgICAgICAg
ICAgICByZXN1bHQgPSBhbmltYXRpb24uZ2V0KCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgCi0g
ICAgcmV0dXJuIHJldHZhbDsKKworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIGJvb2wgQ29tcG9z
aXRlQW5pbWF0aW9uOjpjb21wdXRlRXh0ZW50T2ZUcmFuc2Zvcm1BbmltYXRpb24oTGF5b3V0UmVj
dCYgYm91bmRzKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQ29tcG9zaXRlQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9D
b21wb3NpdGVBbmltYXRpb24uaAppbmRleCAzMzdmZTZmMTY2ZTcxYzFjZTYxOWFlMjM4ODkzMTE4
N2ZmODY0N2NjLi40MGMzYTQ5MWYyYTU0OGViM2UyYjMzMTZjNGYwZmZlMDUzMjEzOTAzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24u
aApAQCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQW5pbWF0aW5nUHJvcGVy
dHkoQ1NTUHJvcGVydHlJRCwgYm9vbCBhY2NlbGVyYXRlZE9ubHksIEFuaW1hdGlvbkJhc2U6OlJ1
bm5pbmdTdGF0ZSkgY29uc3Q7CiAKLSAgICBQYXNzUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiBn
ZXRBbmltYXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKKyAgICBLZXlmcmFt
ZUFuaW1hdGlvbiogYW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAK
ICAgICB2b2lkIG92ZXJyaWRlSW1wbGljaXRBbmltYXRpb25zKENTU1Byb3BlcnR5SUQpOwogICAg
IHZvaWQgcmVzdW1lT3ZlcnJpZGRlbkltcGxpY2l0QW5pbWF0aW9ucyhDU1NQcm9wZXJ0eUlEKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9u
LmNwcAppbmRleCA3MTZiZWE4MjQ5MDQ5MmM0M2JjZTE3NzQ5ZDFmZmI1MjEyN2NjY2ZmLi5mZGVk
NjIzYTZhZGRhOTI0YWI3NjM2M2UyNDY5Y2JjYTMyY2JmYjczIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCkBAIC0xNjMsMTAg
KzE2Myw5IEBAIHZvaWQgSW1wbGljaXRBbmltYXRpb246Om9uQW5pbWF0aW9uRW5kKGRvdWJsZSBl
bGFwc2VkVGltZSkKICAgICAvLyBydW5uaW5nLiBCdXQgbm93IHRoYXQgdGhlIHRyYW5zaXRpb24g
aGFzIGNvbXBsZXRlZCwgd2UgbmVlZCB0byB1cGRhdGUgdGhpcyBzdHlsZSB3aXRoIGl0cyBuZXcK
ICAgICAvLyBkZXN0aW5hdGlvbi4gSWYgd2UgZGlkbid0LCB0aGUgbmV4dCB0aW1lIHRocm91Z2gg
d2Ugd291bGQgdGhpbmsgYSB0cmFuc2l0aW9uIGhhZCBzdGFydGVkCiAgICAgLy8gKGNvbXBhcmlu
ZyB0aGUgb2xkIHVuYW5pbWF0ZWQgc3R5bGUgd2l0aCB0aGUgbmV3IGZpbmFsIHN0eWxlIG9mIHRo
ZSB0cmFuc2l0aW9uKS4KLSAgICBSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IGtleWZyYW1lQW5p
bSA9IG1fY29tcG9zaXRlQW5pbWF0aW9uLT5nZXRBbmltYXRpb25Gb3JQcm9wZXJ0eShtX2FuaW1h
dGluZ1Byb3BlcnR5KTsKLSAgICBpZiAoa2V5ZnJhbWVBbmltKQotICAgICAgICBrZXlmcmFtZUFu
aW0tPnNldFVuYW5pbWF0ZWRTdHlsZShSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoKm1fdG9TdHlsZSkp
OwotICAgIAorICAgIGlmIChhdXRvKiBhbmltYXRpb24gPSBtX2NvbXBvc2l0ZUFuaW1hdGlvbi0+
YW5pbWF0aW9uRm9yUHJvcGVydHkobV9hbmltYXRpbmdQcm9wZXJ0eSkpCisgICAgICAgIGFuaW1h
dGlvbi0+c2V0VW5hbmltYXRlZFN0eWxlKFJlbmRlclN0eWxlOjpjbG9uZVB0cigqbV90b1N0eWxl
KSk7CisKICAgICBzZW5kVHJhbnNpdGlvbkV2ZW50KGV2ZW50TmFtZXMoKS50cmFuc2l0aW9uZW5k
RXZlbnQsIGVsYXBzZWRUaW1lKTsKICAgICBlbmRBbmltYXRpb24oKTsKIH0KQEAgLTE4Nyw3ICsx
ODYsNyBAQCBib29sIEltcGxpY2l0QW5pbWF0aW9uOjpzZW5kVHJhbnNpdGlvbkV2ZW50KGNvbnN0
IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBkb3VibAogICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKIAogICAgICAgICAgICAgLy8gU2NoZWR1bGUgZXZlbnQgaGFuZGxpbmcKLSAgICAgICAg
ICAgIG1fY29tcG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Db250cm9sbGVyKCkuYWRkRXZlbnRU
b0Rpc3BhdGNoKGVsZW1lbnQsIGV2ZW50VHlwZSwgcHJvcGVydHlOYW1lLCBlbGFwc2VkVGltZSk7
CisgICAgICAgICAgICBtX2NvbXBvc2l0ZUFuaW1hdGlvbi0+YW5pbWF0aW9uQ29udHJvbGxlcigp
LmFkZEV2ZW50VG9EaXNwYXRjaCgqZWxlbWVudCwgZXZlbnRUeXBlLCBwcm9wZXJ0eU5hbWUsIGVs
YXBzZWRUaW1lKTsKIAogICAgICAgICAgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgKHVuYW5p
bWF0ZWQpIHN0eWxlCiAgICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS50
cmFuc2l0aW9uZW5kRXZlbnQgJiYgZWxlbWVudC0+cmVuZGVyZXIoKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAppbmRleCA0NzFi
YWNmNmYxYjlmMDVjZTFkMzRkYTg3NWZlOGM2N2M5NGZmNTdkLi5kYzI5ZDIyMzkxYjAzNGJkY2Vl
NTY2ZjNiMmE1YzMxN2EwZGQwMDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9h
bmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCkBAIC0zMjcsNyArMzI3LDcgQEAgYm9vbCBL
ZXlmcmFtZUFuaW1hdGlvbjo6c2VuZEFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBkb3VibGUKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAv
LyBTY2hlZHVsZSBldmVudCBoYW5kbGluZwotICAgICAgICBtX2NvbXBvc2l0ZUFuaW1hdGlvbi0+
YW5pbWF0aW9uQ29udHJvbGxlcigpLmFkZEV2ZW50VG9EaXNwYXRjaChlbGVtZW50LCBldmVudFR5
cGUsIG1fa2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSwgZWxhcHNlZFRpbWUpOworICAgICAgICBt
X2NvbXBvc2l0ZUFuaW1hdGlvbi0+YW5pbWF0aW9uQ29udHJvbGxlcigpLmFkZEV2ZW50VG9EaXNw
YXRjaCgqZWxlbWVudCwgZXZlbnRUeXBlLCBtX2tleWZyYW1lcy5hbmltYXRpb25OYW1lKCksIGVs
YXBzZWRUaW1lKTsKIAogICAgICAgICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5hbCAodW5hbmltYXRl
ZCkgc3R5bGUKICAgICAgICAgaWYgKChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLndlYmtpdEFu
aW1hdGlvbkVuZEV2ZW50IHx8IGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuYW5pbWF0aW9uZW5k
RXZlbnQpICYmIGVsZW1lbnQtPnJlbmRlcmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwv
RXZlbnRIYW5kbGVyRWZsLmNwcAppbmRleCAyMTA2ZDFlMTlhNDg2YTM4NWZmZTg3ZjkwMGZhYWZl
OTA4YmNhYzEyLi5hYWQwN2Q2ZmY2YjE3ZWNkZDcxNzExZTQxZWY1YjRlMDNlZTAwNTFhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKQEAgLTQ5LDcgKzQ5
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4
dERyYWdEZWxheSA9IDAuMDsKICNlbmRpZgogCi1ib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxs
Rm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRh
YnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JikgY29uc3QKIHsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KQEAgLTk2LDEwICs5NiwxMiBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lkZ2V0RGlk
SGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBXaQogfQog
CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBFdmVu
dEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKKworUmVmPERhdGFU
cmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKIH0K
KwogI2VuZGlmCiAKIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJm
cmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBtZXYsIEZyYW1lKiBzdWJmcmFtZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3BwCmluZGV4IDQzZjA1
Mzc1ZTViZGU2MTRmOTA4YTdjMTU0ZDgyZDdiMDhlY2UyNGIuLmFhYWRlMDAyYzVjODliZGNlYzAy
NTM2NWIwMTk3YTUwMTk2YzJiODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3Rr
L0V2ZW50SGFuZGxlckd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRI
YW5kbGVyR3RrLmNwcApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjb25z
dCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4wOwogI2VuZGlmCiAKLWJv
b2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCopIGNv
bnN0Citib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZl
bnQmKSBjb25zdAogewogICAgIC8vIFdlIGFsd2F5cyBhbGxvdyB0YWJzIHRvIGFsbCBjb250cm9s
cwogICAgIHJldHVybiB0cnVlOwpAQCAtOTYsMTAgKzk2LDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVy
Ojp3aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZl
bnQsIFdpCiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc1JlZlB0cjxEYXRhVHJh
bnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAor
CitSZWY8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5z
ZmVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5k
RHJvcCgpOwogfQorCiAjZW5kaWYKIAogYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVByZXNz
RXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUq
IHN1YmZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5k
bGVySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCmlu
ZGV4IDUyNGZiNWFlYTViM2Q1MjM2Yjk0MWQ3YWQyNTg4YjQ4OWNiZGE3YTAuLjI5YmFkZWY1OTU1
ODRhM2ZjZTUzY2EyZjgyNDFlNGY2ZWZkNzU0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lv
cy9FdmVudEhhbmRsZXJJT1MubW0KQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIEV2ZW50SGFuZGxl
cjo6dG91Y2hFdmVudChXZWJFdmVudCAqZXZlbnQpCiB9CiAjZW5kaWYKIAotYm9vbCBFdmVudEhh
bmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KiBldmVudCkgY29uc3QK
K2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCYg
ZXZlbnQpIGNvbnN0CiB7CiAgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpOwogICAgIGlm
ICghcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxl
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRl
eCBlNTkxOTc4YzAwYzQwYzY5ZTc3M2E5NzYyMWQ3NjczM2JkNzUxYjAyLi5hZDdhNTllMzFlMDk1
YjBiYzUyMDUwNzJmZGYxODM5ZjBmNGY2ODNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVy
ZmFjZS5oIgorI2luY2x1ZGUgIldoZWVsRXZlbnREZWx0YUZpbHRlci5oIgogI2luY2x1ZGUgIldo
ZWVsRXZlbnRUZXN0VHJpZ2dlci5oIgogI2luY2x1ZGUgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25z
Lmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTcyMyw3ICs3MjQsNyBAQCBib29s
IEV2ZW50SGFuZGxlcjo6ZXZlbnRBY3RpdmF0ZWRWaWV3KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVu
dCYgZXZlbnQpIGNvbnN0CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogCi1QYXNzUmVmUHRy
PERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2Zlcigp
IGNvbnN0CitSZWY8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0
YVRyYW5zZmVyKCkgY29uc3QKIHsKICAgICAvLyBNdXN0IGJlIGRvbmUgYmVmb3JlIG9uZHJhZ3N0
YXJ0IGFkZHMgdHlwZXMgYW5kIGRhdGEgdG8gdGhlIHBib2FyZCwKICAgICAvLyBhbHNvIGRvbmUg
Zm9yIHNlY3VyaXR5LCBhcyBpdCBlcmFzZXMgZGF0YSBmcm9tIHRoZSBsYXN0IGRyYWcuCkBAIC03
MzQsNyArNzM1LDcgQEAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3Jl
YXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAogCiAjZW5kaWYKIAotYm9vbCBFdmVudEhh
bmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KiBldmVudCkgY29uc3QK
K2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCYg
ZXZlbnQpIGNvbnN0CiB7CiAgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpOwogICAgIGlm
ICghcGFnZSkKQEAgLTk3MSwxMCArOTcyLDEwIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpwbGF0Zm9y
bVByZXBhcmVGb3JXaGVlbEV2ZW50cyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsCiAg
ICAgICAgICAgICAgICAgbV9mcmFtZS5tYWluRnJhbWUoKS5wdXNoTmV3TGF0Y2hpbmdTdGF0ZSgp
OwogICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUgPSBtX2ZyYW1lLm1haW5GcmFtZSgpLmxh
dGNoaW5nU3RhdGUoKTsKICAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlLT5zZXRTdGFydGVk
R2VzdHVyZUF0U2Nyb2xsTGltaXQoZmFsc2UpOwotICAgICAgICAgICAgICAgIGxhdGNoaW5nU3Rh
dGUtPnNldFdoZWVsRXZlbnRFbGVtZW50KHdoZWVsRXZlbnRUYXJnZXQpOworICAgICAgICAgICAg
ICAgIGxhdGNoaW5nU3RhdGUtPnNldFdoZWVsRXZlbnRFbGVtZW50KHdoZWVsRXZlbnRUYXJnZXQu
Z2V0KCkpOwogICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldEZyYW1lKCZtX2ZyYW1l
KTsKICAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2hhdCBwcmV2ZW50cyB1cyBmcm9tIGRlbGV0
aW5nIHRoaXMgc2Nyb2xsYWJsZSBjb250YWluZXIgd2hpbGUgc3RpbGwgaG9sZGluZyBhIHBvaW50
ZXIgdG8gaXQ/Ci0gICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0U2Nyb2xsYWJsZUNv
bnRhaW5lcihzY3JvbGxhYmxlQ29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBsYXRjaGluZ1N0
YXRlLT5zZXRTY3JvbGxhYmxlQ29udGFpbmVyKHNjcm9sbGFibGVDb250YWluZXIuZ2V0KCkpOwog
ICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldFdpZGdldElzTGF0Y2hlZChyZXN1bHQu
aXNPdmVyV2lkZ2V0KCkpOwogICAgICAgICAgICAgICAgIGlzT3ZlcldpZGdldCA9IGxhdGNoaW5n
U3RhdGUtPndpZGdldElzTGF0Y2hlZCgpOwogICAgICAgICAgICAgICAgIG1fZnJhbWUubWFpbkZy
YW1lKCkud2hlZWxFdmVudERlbHRhRmlsdGVyKCktPmJlZ2luRmlsdGVyaW5nRGVsdGFzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
LmgKaW5kZXggNTVlNGQ2NTk1ZWViNjA1M2Y2YTZhOTQ1MGI5ZGFlYjgxMjhjNTI3MC4uNjViMWNl
ZWM2YjExMjdiMDU5NjMyMWVjNDg4MjQ1N2RmNDFiMDRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw2IEBA
CiAjaW5jbHVkZSAiUGFnZU92ZXJsYXkuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUg
IlRpbWVyLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogdHlwZWRlZiBzdHJ1Y3Qg
X19EREhpZ2hsaWdodCAqRERIaWdobGlnaHRSZWY7CiAKQEAgLTM5LDYgKzM4LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIAogY2xhc3MgTGF5b3V0UmVjdDsKIGNsYXNzIE1haW5GcmFtZTsK
Kwogc3RydWN0IEdhcFJlY3RzOwogCiBjbGFzcyBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyIDog
cHJpdmF0ZSBQYWdlT3ZlcmxheTo6Q2xpZW50IHsKQEAgLTU0LDE0ICs1NCwxNCBAQCBwcml2YXRl
OgogICAgIGNsYXNzIEhpZ2hsaWdodCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdodD4sIHBy
aXZhdGUgR3JhcGhpY3NMYXllckNsaWVudCB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KEhpZ2hsaWdodCk7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodD4g
Y3JlYXRlRm9yU2VsZWN0aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImLCBSZXRhaW5QdHI8
RERIaWdobGlnaHRSZWY+LCBQYXNzUmVmUHRyPFJhbmdlPik7Ci0gICAgICAgIHN0YXRpYyBSZWY8
SGlnaGxpZ2h0PiBjcmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIoU2VydmljZXNPdmVybGF5Q29udHJv
bGxlciYsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFBhc3NSZWZQdHI8UmFuZ2U+KTsKKyAg
ICAgICAgc3RhdGljIFJlZjxIaWdobGlnaHQ+IGNyZWF0ZUZvclNlbGVjdGlvbihTZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyJiwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUmVmPFJhbmdlPiYm
KTsKKyAgICAgICAgc3RhdGljIFJlZjxIaWdobGlnaHQ+IGNyZWF0ZUZvclRlbGVwaG9uZU51bWJl
cihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwg
UmVmPFJhbmdlPiYmKTsKICAgICAgICAgfkhpZ2hsaWdodCgpOwogCiAgICAgICAgIHZvaWQgaW52
YWxpZGF0ZSgpOwogCiAgICAgICAgIERESGlnaGxpZ2h0UmVmIGRkSGlnaGxpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gbV9kZEhpZ2hsaWdodC5nZXQoKTsgfQotICAgICAgICBSYW5nZSogcmFuZ2UoKSBj
b25zdCB7IHJldHVybiBtX3JhbmdlLmdldCgpOyB9CisgICAgICAgIFJhbmdlJiByYW5nZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcmFuZ2UuZ2V0KCk7IH0KICAgICAgICAgR3JhcGhpY3NMYXllciogbGF5
ZXIoKSBjb25zdCB7IHJldHVybiBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCk7IH0KIAogICAgICAgICBl
bnVtIHsKQEAgLTc3LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBzZXREREhpZ2hs
aWdodChEREhpZ2hsaWdodFJlZik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBleHBsaWNpdCBI
aWdobGlnaHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFR5cGUsIFJldGFpblB0cjxEREhp
Z2hsaWdodFJlZj4sIFBhc3NSZWZQdHI8UmFuZ2U+KTsKKyAgICAgICAgSGlnaGxpZ2h0KFNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXImLCBUeXBlLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+LCBS
ZWY8UmFuZ2U+JiYpOwogCiAgICAgICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICAgICAg
dm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsK
QEAgLTg3LDcgKzg3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBkaWRGaW5pc2hGYWRlT3V0
QW5pbWF0aW9uKCk7CiAKICAgICAgICAgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBtX2RkSGln
aGxpZ2h0OwotICAgICAgICBSZWZQdHI8UmFuZ2U+IG1fcmFuZ2U7CisgICAgICAgIFJlZjxSYW5n
ZT4gbV9yYW5nZTsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fZ3Jh
cGhpY3NMYXllcjsKICAgICAgICAgVHlwZSBtX3R5cGU7CiAgICAgICAgIFNlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXIqIG1fY29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCmluZGV4IDlhODE1YjVhZTU1OTY0OTli
ZGY2MTZlZDQyMTFiOWE1MjM4MTVlNjIuLjRiMDNlMjJhZTQ2YmU4OWFlMjMxMDJmYjQ5ZmY0OTIx
ZDQwNDY4YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3Zl
cmxheUNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNP
dmVybGF5Q29udHJvbGxlci5tbQpAQCAtNTUsMjMgKzU1LDIyIEBAIGNvbnN0IGZsb2F0IGhpZ2hs
aWdodEZhZGVBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Ci1SZWY8U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0PiBTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OmNyZWF0ZUZvclNlbGVjdGlvbihTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyJiBjb250cm9sbGVyLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGln
aGxpZ2h0LCBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZSkKK1JlZjxTZXJ2aWNlc092ZXJsYXlDb250
cm9sbGVyOjpIaWdobGlnaHQ+IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6
Y3JlYXRlRm9yU2VsZWN0aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIs
IFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFJlZjxSYW5nZT4mJiByYW5n
ZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHQoY29udHJvbGxlciwgSGln
aGxpZ2h0OjpTZWxlY3Rpb25UeXBlLCBkZEhpZ2hsaWdodCwgcmFuZ2UpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBIaWdobGlnaHQoY29udHJvbGxlciwgSGlnaGxpZ2h0OjpTZWxlY3Rpb25U
eXBlLCBkZEhpZ2hsaWdodCwgV1RGTW92ZShyYW5nZSkpKTsKIH0KIAotUmVmPFNlcnZpY2VzT3Zl
cmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodD4gU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGln
aGxpZ2h0OjpjcmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIoU2VydmljZXNPdmVybGF5Q29udHJvbGxl
ciYgY29udHJvbGxlciwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCwgUGFz
c1JlZlB0cjxSYW5nZT4gcmFuZ2UpCitSZWY8U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGln
aGxpZ2h0PiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OmNyZWF0ZUZvclRl
bGVwaG9uZU51bWJlcihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiBjb250cm9sbGVyLCBSZXRh
aW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBSZWY8UmFuZ2U+JiYgcmFuZ2UpCiB7
Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0KGNvbnRyb2xsZXIsIEhpZ2hsaWdo
dDo6VGVsZXBob25lTnVtYmVyVHlwZSwgZGRIaWdobGlnaHQsIHJhbmdlKSk7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0KGNvbnRyb2xsZXIsIEhpZ2hsaWdodDo6VGVsZXBob25l
TnVtYmVyVHlwZSwgZGRIaWdobGlnaHQsIFdURk1vdmUocmFuZ2UpKSk7CiB9CiAKLVNlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6SGlnaGxpZ2h0KFNlcnZpY2VzT3ZlcmxheUNv
bnRyb2xsZXImIGNvbnRyb2xsZXIsIFR5cGUgdHlwZSwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVm
PiBkZEhpZ2hsaWdodCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpSYW5nZT4gcmFuZ2UpCi0gICAgOiBt
X3JhbmdlKHJhbmdlKQorU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpIaWdo
bGlnaHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYgY29udHJvbGxlciwgVHlwZSB0eXBlLCBS
ZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBSZWY8V2ViQ29yZTo6UmFuZ2U+
JiYgcmFuZ2UpCisgICAgOiBtX3JhbmdlKFdURk1vdmUocmFuZ2UpKQogICAgICwgbV90eXBlKHR5
cGUpCiAgICAgLCBtX2NvbnRyb2xsZXIoJmNvbnRyb2xsZXIpCiB7CiAgICAgQVNTRVJUKGRkSGln
aGxpZ2h0KTsKLSAgICBBU1NFUlQobV9yYW5nZSk7CiAKICAgICBQYWdlKiBwYWdlID0gY29udHJv
bGxlci5tYWluRnJhbWUoKS5wYWdlKCk7CiAgICAgbV9ncmFwaGljc0xheWVyID0gR3JhcGhpY3NM
YXllcjo6Y3JlYXRlKHBhZ2UgPyBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5ncmFwaGljc0xheWVy
RmFjdG9yeSgpIDogbnVsbHB0ciwgKnRoaXMpOwpAQCAtNDA5LDcgKzQwOCw3IEBAIHZvaWQgU2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlcjo6YnVpbGRQb3RlbnRpYWxIaWdobGlnaHRzSWZOZWVkZWQo
KQogCiAgICAgaWYgKG1fcG90ZW50aWFsSGlnaGxpZ2h0cy5pc0VtcHR5KCkpIHsKICAgICAgICAg
aWYgKG1fc2VydmljZXNPdmVybGF5KQotICAgICAgICAgICAgbV9tYWluRnJhbWUucGFnZU92ZXJs
YXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkobV9zZXJ2aWNlc092ZXJsYXksIFBh
Z2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAgICAgIG1fbWFpbkZyYW1l
LnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX3NlcnZpY2Vz
T3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCkBAIC01MjcsNyArNTI2LDcgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250
cm9sbGVyOjpidWlsZFBob25lTnVtYmVySGlnaGxpZ2h0cygpCiAgICAgICAgIENHUmVjdCBjZ1Jl
Y3QgPSByZWN0OwogICAgICAgICBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0
ID0gYWRvcHRDRihEREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJsZVJlY3RXaXRoU3R5
bGVBbmREaXJlY3Rpb24obnVsbHB0ciwgJmNnUmVjdCwgMSwgbWFpbkZyYW1lVmlldy52aXNpYmxl
Q29udGVudFJlY3QoKSwgRERIaWdobGlnaHRTdHlsZUJ1YmJsZVN0YW5kYXJkIHwgRERIaWdobGln
aHRTdHlsZVN0YW5kYXJkSWNvbkFycm93LCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVyYWws
IE5PLCBZRVMpKTsKIAotICAgICAgICBuZXdQb3RlbnRpYWxIaWdobGlnaHRzLmFkZChIaWdobGln
aHQ6OmNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcigqdGhpcywgZGRIaWdobGlnaHQsIHJhbmdlKSk7
CisgICAgICAgIG5ld1BvdGVudGlhbEhpZ2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9y
VGVsZXBob25lTnVtYmVyKCp0aGlzLCBkZEhpZ2hsaWdodCwgcmFuZ2UucmVsZWFzZU5vbk51bGwo
KSkpOwogICAgIH0KIAogICAgIHJlcGxhY2VIaWdobGlnaHRzT2ZUeXBlUHJlc2VydmluZ0VxdWl2
YWxlbnRIaWdobGlnaHRzKG5ld1BvdGVudGlhbEhpZ2hsaWdodHMsIEhpZ2hsaWdodDo6VGVsZXBo
b25lTnVtYmVyVHlwZSk7CkBAIC01NzAsNyArNTY5LDcgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyOjpidWlsZFNlbGVjdGlvbkhpZ2hsaWdodCgpCiAgICAgICAgICAgICBDR1JlY3Qg
dmlzaWJsZVJlY3QgPSBtYWluRnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKICAgICAg
ICAgICAgIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQgPSBhZG9wdENGKERE
SGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZUFuZERpcmVjdGlv
bihudWxscHRyLCBjZ1JlY3RzLmJlZ2luKCksIGNnUmVjdHMuc2l6ZSgpLCB2aXNpYmxlUmVjdCwg
RERIaWdobGlnaHRTdHlsZUJ1YmJsZU5vbmUgfCBEREhpZ2hsaWdodFN0eWxlU3RhbmRhcmRJY29u
QXJyb3cgfCBEREhpZ2hsaWdodFN0eWxlQnV0dG9uU2hvd0Fsd2F5cywgWUVTLCBOU1dyaXRpbmdE
aXJlY3Rpb25OYXR1cmFsLCBOTywgWUVTKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIG5l
d1BvdGVudGlhbEhpZ2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yU2VsZWN0aW9uKCp0
aGlzLCBkZEhpZ2hsaWdodCwgc2VsZWN0aW9uUmFuZ2UpKTsKKyAgICAgICAgICAgIG5ld1BvdGVu
dGlhbEhpZ2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yU2VsZWN0aW9uKCp0aGlzLCBk
ZEhpZ2hsaWdodCwgc2VsZWN0aW9uUmFuZ2UucmVsZWFzZU5vbk51bGwoKSkpOwogICAgICAgICB9
CiAgICAgfQogCkBAIC02MzgsMTQgKzYzNyw5IEBAIGJvb2wgU2VydmljZXNPdmVybGF5Q29udHJv
bGxlcjo6aGlnaGxpZ2h0c0FyZUVxdWl2YWxlbnQoY29uc3QgSGlnaGxpZ2h0KiBhLCBjb25zCiB7
CiAgICAgaWYgKGEgPT0gYikKICAgICAgICAgcmV0dXJuIHRydWU7Ci0KICAgICBpZiAoIWEgfHwg
IWIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChhLT50eXBlKCkgPT0gYi0+dHlw
ZSgpICYmIGFyZVJhbmdlc0VxdWFsKGEtPnJhbmdlKCksIGItPnJhbmdlKCkpKQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gYS0+dHlwZSgpID09
IGItPnR5cGUoKSAmJiBhcmVSYW5nZXNFcXVhbCgmYS0+cmFuZ2UoKSwgJmItPnJhbmdlKCkpOwog
fQogCiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQqIFNlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXI6OmZpbmRUZWxlcGhvbmVOdW1iZXJIaWdobGlnaHRDb250YWluaW5nU2VsZWN0
aW9uSGlnaGxpZ2h0KEhpZ2hsaWdodCYgc2VsZWN0aW9uSGlnaGxpZ2h0KQpAQCAtNjY5LDcgKzY2
Myw3IEBAIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodCogU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlcjo6ZmluZFRlbGVwaG9uZU51CiAgICAgICAgIGlmIChoaWdobGlnaHQtPnR5
cGUoKSAhPSBIaWdobGlnaHQ6OlRlbGVwaG9uZU51bWJlclR5cGUpCiAgICAgICAgICAgICBjb250
aW51ZTsKIAotICAgICAgICBpZiAoaGlnaGxpZ2h0LT5yYW5nZSgpLT5jb250YWlucygqYWN0aXZl
U2VsZWN0aW9uUmFuZ2UpKQorICAgICAgICBpZiAoaGlnaGxpZ2h0LT5yYW5nZSgpLmNvbnRhaW5z
KCphY3RpdmVTZWxlY3Rpb25SYW5nZSkpCiAgICAgICAgICAgICByZXR1cm4gaGlnaGxpZ2h0Lmdl
dCgpOwogICAgIH0KIApAQCAtODMyLDcgKzgyNiw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlcjo6aGFuZGxlQ2xpY2soY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQsIEhpZ2hsaWdo
CiAKICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFuZGxlU2VsZWN0aW9uU2Vydmlj
ZUNsaWNrKHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLnNlbGVj
dGlvbigpLCBzZWxlY3RlZFRlbGVwaG9uZU51bWJlcnMsIHdpbmRvd1BvaW50KTsKICAgICB9IGVs
c2UgaWYgKGhpZ2hsaWdodC50eXBlKCkgPT0gSGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBl
KQotICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYW5kbGVUZWxlcGhvbmVOdW1iZXJD
bGljayhoaWdobGlnaHQucmFuZ2UoKS0+dGV4dCgpLCB3aW5kb3dQb2ludCk7CisgICAgICAgIHBh
Z2UtPmNocm9tZSgpLmNsaWVudCgpLmhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGhpZ2hsaWdo
dC5yYW5nZSgpLnRleHQoKSwgd2luZG93UG9pbnQpOwogfQogCiB2b2lkIFNlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXI6OmRpZENyZWF0ZUhpZ2hsaWdodChIaWdobGlnaHQqIGhpZ2hsaWdodCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4IGU0
ZTIwZDIyNzY4Yzg4MmU5MDBiMTJiNDFmZTAyZWNkZmI0OGY2MjguLmU1OTI5YmE2M2RlNTlmNDk4
M2JkOGNmOWMzMDA2NGU2NzE3NzNjYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMv
VGV4dEluZGljYXRvcldpbmRvdy5tbQpAQCAtNjQsNyArNjQsNyBAQCBAaW50ZXJmYWNlIFdlYlRl
eHRJbmRpY2F0b3JWaWV3IDogTlNWaWV3IHsKICAgICBCT09MIF9mYWRpbmdPdXQ7CiB9CiAKLS0g
KGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjoo
UGFzc1JlZlB0cjxUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yIG1hcmdpbjooTlNTaXplKW1h
cmdpbiBvZmZzZXQ6KE5TUG9pbnQpb2Zmc2V0OworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJh
bWU6KE5TUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNh
dG9yIG1hcmdpbjooTlNTaXplKW1hcmdpbiBvZmZzZXQ6KE5TUG9pbnQpb2Zmc2V0OwogCiAtICh2
b2lkKXByZXNlbnQ7CiAtICh2b2lkKWhpZGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXiko
dm9pZCkpY29tcGxldGlvbkhhbmRsZXI7CkBAIC0xNDcsMTIgKzE0NywxMiBAQCBzdGF0aWMgYm9v
bCBpbmRpY2F0b3JXYW50c01hbnVhbEFuaW1hdGlvbihjb25zdCBUZXh0SW5kaWNhdG9yJiBpbmRp
Y2F0b3IpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhG
cmFtZTooTlNSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFBhc3NSZWZQdHI8VGV4dEluZGljYXRv
cj4pdGV4dEluZGljYXRvciBtYXJnaW46KE5TU2l6ZSltYXJnaW4gb2Zmc2V0OihOU1BvaW50KW9m
ZnNldAorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSB0ZXh0SW5k
aWNhdG9yOihUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIG1hcmdpbjooTlNTaXplKW1hcmdp
biBvZmZzZXQ6KE5TUG9pbnQpb2Zmc2V0CiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0
V2l0aEZyYW1lOmZyYW1lXSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfdGV4dEluZGlj
YXRvciA9IHRleHRJbmRpY2F0b3I7CisgICAgX3RleHRJbmRpY2F0b3IgPSAmdGV4dEluZGljYXRv
cjsKICAgICBfbWFyZ2luID0gbWFyZ2luOwogCiAgICAgc2VsZi53YW50c0xheWVyID0gWUVTOwpA
QCAtNDY1LDcgKzQ2NSw4IEBAIHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGlj
YXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgQ0dSCiAgICAgW21fdGV4dElu
ZGljYXRvcldpbmRvdyBzZXRPcGFxdWU6Tk9dOwogICAgIFttX3RleHRJbmRpY2F0b3JXaW5kb3cg
c2V0SWdub3Jlc01vdXNlRXZlbnRzOllFU107CiAKLSAgICBtX3RleHRJbmRpY2F0b3JWaWV3ID0g
YWRvcHROUyhbW1dlYlRleHRJbmRpY2F0b3JWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFr
ZVJlY3QoMCwgMCwgW21fdGV4dEluZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS53aWR0aCwgW21f
dGV4dEluZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS5oZWlnaHQpIHRleHRJbmRpY2F0b3I6bV90
ZXh0SW5kaWNhdG9yIG1hcmdpbjpOU01ha2VTaXplKGhvcml6b250YWxNYXJnaW4sIHZlcnRpY2Fs
TWFyZ2luKSBvZmZzZXQ6ZnJhY3Rpb25hbFRleHRPZmZzZXRdKTsKKyAgICBtX3RleHRJbmRpY2F0
b3JWaWV3ID0gYWRvcHROUyhbW1dlYlRleHRJbmRpY2F0b3JWaWV3IGFsbG9jXSBpbml0V2l0aEZy
YW1lOk5TTWFrZVJlY3QoMCwgMCwgW21fdGV4dEluZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS53
aWR0aCwgW21fdGV4dEluZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS5oZWlnaHQpCisgICAgICAg
IHRleHRJbmRpY2F0b3I6Km1fdGV4dEluZGljYXRvciBtYXJnaW46TlNNYWtlU2l6ZShob3Jpem9u
dGFsTWFyZ2luLCB2ZXJ0aWNhbE1hcmdpbikgb2Zmc2V0OmZyYWN0aW9uYWxUZXh0T2Zmc2V0XSk7
CiAgICAgW21fdGV4dEluZGljYXRvcldpbmRvdyBzZXRDb250ZW50VmlldzptX3RleHRJbmRpY2F0
b3JWaWV3LmdldCgpXTsKIAogICAgIFtbbV90YXJnZXRWaWV3IHdpbmRvd10gYWRkQ2hpbGRXaW5k
b3c6bV90ZXh0SW5kaWNhdG9yV2luZG93LmdldCgpIG9yZGVyZWQ6TlNXaW5kb3dBYm92ZV07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmgKaW5kZXggYTQzNDE3ZGNlMWM0MDEzMDg0NjkyMzgzYTEyYThjZjFhYjlk
MjBiMy4uMDExYWUwZjIzM2MwOTI2ZmVmZTBmMGQ5MDdjNWYxYTgwZjI3Mjc0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3IuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5h
dG9yLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCi0j
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY5LDExICs2OCwxMSBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6
CiAgICAgV0VCQ09SRV9FWFBPUlQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlKik7CiAK
LSAgICB2b2lkIHNldFNjcm9sbGluZ1RyZWUoUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlPiBzY3Jv
bGxpbmdUcmVlKSB7IG1fc2Nyb2xsaW5nVHJlZSA9IHNjcm9sbGluZ1RyZWU7IH0KKyAgICB2b2lk
IHNldFNjcm9sbGluZ1RyZWUoUmVmPFNjcm9sbGluZ1RyZWU+JiYgc2Nyb2xsaW5nVHJlZSkgeyBt
X3Njcm9sbGluZ1RyZWUgPSBXVEZNb3ZlKHNjcm9sbGluZ1RyZWUpOyB9CiAKICAgICBTY3JvbGxp
bmdTdGF0ZVRyZWUqIHNjcm9sbGluZ1N0YXRlVHJlZSgpIHsgcmV0dXJuIG1fc2Nyb2xsaW5nU3Rh
dGVUcmVlLmdldCgpOyB9CiAKLSAgICBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWU+IHJlbGVhc2VT
Y3JvbGxpbmdUcmVlKCkgeyByZXR1cm4gV1RGTW92ZShtX3Njcm9sbGluZ1RyZWUpOyB9CisgICAg
UmVmUHRyPFNjcm9sbGluZ1RyZWU+IHJlbGVhc2VTY3JvbGxpbmdUcmVlKCkgeyByZXR1cm4gV1RG
TW92ZShtX3Njcm9sbGluZ1RyZWUpOyB9CiAKICAgICB2b2lkIHVwZGF0ZVNjcm9sbFBvc2l0aW9u
QWZ0ZXJBc3luY1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmLCBzdGQ6
Om9wdGlvbmFsPEZsb2F0UG9pbnQ+IGxheW91dFZpZXdwb3J0T3JpZ2luLCBib29sIHByb2dyYW1t
YXRpY1Njcm9sbCwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAKaW5k
ZXggZTM5ZDk5ZWZiYTMwNjhjY2IwNTViNDBkMWM3MjQzNzdkNThlMzViZS4uMDFlNjUyOWIwMmM4
YzFkNzBhZTc3MzI4M2ViN2Y3MzAwNTc0Zjk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAKQEAgLTMxLDkgKzMxLDYg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6U2Nyb2xsTGF0
Y2hpbmdTdGF0ZSgpCi0gICAgOiBtX2ZyYW1lKG51bGxwdHIpCi0gICAgLCBtX3dpZGdldElzTGF0
Y2hlZChmYWxzZSkKLSAgICAsIG1fc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0KGZhbHNlKQog
ewogfQogICAgIApAQCAtNTAsNyArNDcsNyBAQCB2b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OmNs
ZWFyKCkKICAgICBtX3ByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQgPSBudWxscHRyOwogfQog
Ci12b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFdoZWVsRXZlbnRFbGVtZW50KFBhc3NSZWZQ
dHI8RWxlbWVudD4gZWxlbWVudCkKK3ZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0V2hlZWxF
dmVudEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBtX3doZWVsRXZlbnRFbGVtZW50
ID0gZWxlbWVudDsKIH0KQEAgLTYwLDE0ICs1NywxNCBAQCB2b2lkIFNjcm9sbExhdGNoaW5nU3Rh
dGU6OnNldFdpZGdldElzTGF0Y2hlZChib29sIGlzT3ZlcldpZGdldCkKICAgICBtX3dpZGdldElz
TGF0Y2hlZCA9IGlzT3ZlcldpZGdldDsKIH0KIAotdm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRlOjpz
ZXRQcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50KFJlZlB0cjxFbGVtZW50PiYmIGVsZW1lbnQp
Cit2b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1l
bnQoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBtX3ByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1l
bnQgPSBlbGVtZW50OwogfQogCi12b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFNjcm9sbGFi
bGVDb250YWluZXIoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBub2RlKQordm9pZCBTY3JvbGxM
YXRjaGluZ1N0YXRlOjpzZXRTY3JvbGxhYmxlQ29udGFpbmVyKENvbnRhaW5lck5vZGUqIGNvbnRh
aW5lcikKIHsKLSAgICBtX3Njcm9sbGFibGVDb250YWluZXIgPSBub2RlOworICAgIG1fc2Nyb2xs
YWJsZUNvbnRhaW5lciA9IGNvbnRhaW5lcjsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oCmluZGV4IDRkYzBkZDMyMjkz
YjM5MGVjOWI2NzFjZmUzYjE5ODU3Yzk3M2M0NzguLjExZGNiZDBkYjE1NWUwNDUwMDA1NjIxYTA1
MTc0NzZkMmI5MjkzYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbExhdGNoaW5nU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxMYXRjaGluZ1N0YXRlLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIHZv
aWQgY2xlYXIoKTsKIAogICAgIEVsZW1lbnQqIHdoZWVsRXZlbnRFbGVtZW50KCkgeyByZXR1cm4g
bV93aGVlbEV2ZW50RWxlbWVudC5nZXQoKTsgfQotICAgIHZvaWQgc2V0V2hlZWxFdmVudEVsZW1l
bnQoUGFzc1JlZlB0cjxFbGVtZW50Pik7CisgICAgdm9pZCBzZXRXaGVlbEV2ZW50RWxlbWVudChF
bGVtZW50Kik7CiAgICAgRnJhbWUqIGZyYW1lKCkgeyByZXR1cm4gbV9mcmFtZTsgfQogICAgIHZv
aWQgc2V0RnJhbWUoRnJhbWUqIGZyYW1lKSB7IG1fZnJhbWUgPSBmcmFtZTsgfQogCkBAIC00OSwx
MCArNDksMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0V2lkZ2V0SXNMYXRjaGVkKGJvb2wgaXNP
dmVyV2lkZ2V0KTsKIAogICAgIEVsZW1lbnQqIHByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQo
KSB7IHJldHVybiBtX3ByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQuZ2V0KCk7IH0KLSAgICB2
b2lkIHNldFByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQoUmVmUHRyPEVsZW1lbnQ+JiYpOwor
ICAgIHZvaWQgc2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudChFbGVtZW50Kik7CiAgICAg
CiAgICAgQ29udGFpbmVyTm9kZSogc2Nyb2xsYWJsZUNvbnRhaW5lcigpIHsgcmV0dXJuIG1fc2Ny
b2xsYWJsZUNvbnRhaW5lci5nZXQoKTsgfQotICAgIHZvaWQgc2V0U2Nyb2xsYWJsZUNvbnRhaW5l
cihQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+KTsKKyAgICB2b2lkIHNldFNjcm9sbGFibGVDb250
YWluZXIoQ29udGFpbmVyTm9kZSopOwogICAgIGJvb2wgc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExp
bWl0KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQ7IH0KICAg
ICB2b2lkIHNldFN0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdChib29sIHN0YXJ0ZWRBdExpbWl0
KSB7IG1fc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0ID0gc3RhcnRlZEF0TGltaXQ7IH0KIApA
QCAtNjEsMTAgKzYxLDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fcHJldmlv
dXNXaGVlbFNjcm9sbGVkRWxlbWVudDsKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9zY3Jv
bGxhYmxlQ29udGFpbmVyOwogCi0gICAgRnJhbWUqIG1fZnJhbWU7Ci0gICAgCi0gICAgYm9vbCBt
X3dpZGdldElzTGF0Y2hlZDsKLSAgICBib29sIG1fc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0
OworICAgIEZyYW1lKiBtX2ZyYW1lIHsgbnVsbHB0ciB9OworCisgICAgYm9vbCBtX3dpZGdldElz
TGF0Y2hlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3N0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1p
dCB7IGZhbHNlIH07CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5jcHAKaW5k
ZXggYzg0NTliMDVhMGQxNjdiNWFjZWFkMTQwOTVlOTNmNmVkNzdmMjRkMC4uNjFkYTU4YTlkZWVj
MGY2OGQ1ZGE2MjBlMmQ2ZmQ4MDMxNWE3NGMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwCkBAIC03Miw3ICs3Miw3IEBA
IHZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjpzZXRQcm9wZXJ0eUNoYW5nZWQodW5zaWduZWQgcHJv
cGVydHlCaXQpCiAgICAgbV9zY3JvbGxpbmdTdGF0ZVRyZWUuc2V0SGFzQ2hhbmdlZFByb3BlcnRp
ZXMoKTsKIH0KIAotUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRl
Tm9kZTo6Y2xvbmVBbmRSZXNldChTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKK1Jl
ZjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVBbmRSZXNldChT
Y3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKIHsKICAgICBhdXRvIGNsb25lID0gdGhp
cy0+Y2xvbmUoYWRvcHRpdmVUcmVlKTsKIApAQCAtODAsNyArODAsOCBAQCBQYXNzUmVmUHRyPFNj
cm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KFNjcm9s
bGluZ1N0YXRlVAogICAgIHJlc2V0Q2hhbmdlZFByb3BlcnRpZXMoKTsKIAogICAgIGNsb25lQW5k
UmVzZXRDaGlsZHJlbihjbG9uZS5nZXQoKSwgYWRvcHRpdmVUcmVlKTsKLSAgICByZXR1cm4gV1RG
TW92ZShjbG9uZSk7CisKKyAgICByZXR1cm4gY2xvbmU7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3Rh
dGVOb2RlOjpjbG9uZUFuZFJlc2V0Q2hpbGRyZW4oU2Nyb2xsaW5nU3RhdGVOb2RlJiBjbG9uZSwg
U2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpCkBAIC05MiwxNCArOTMsMTMgQEAgdm9p
ZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OmNsb25lQW5kUmVzZXRDaGlsZHJlbihTY3JvbGxpbmdTdGF0
ZU5vZGUmIGNsb25lLCBTY3JvbGwKICAgICAgICAgY2xvbmUuYXBwZW5kQ2hpbGQoY2hpbGQtPmNs
b25lQW5kUmVzZXQoYWRvcHRpdmVUcmVlKSk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nU3RhdGVOb2Rl
OjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2hpbGROb2RlKQor
dm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxkKFJlZjxTY3JvbGxpbmdTdGF0ZU5v
ZGU+JiYgY2hpbGROb2RlKQogewogICAgIGNoaWxkTm9kZS0+c2V0UGFyZW50KHRoaXMpOwogCiAg
ICAgaWYgKCFtX2NoaWxkcmVuKQogICAgICAgICBtX2NoaWxkcmVuID0gc3RkOjptYWtlX3VuaXF1
ZTxWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4+PigpOwotCi0gICAgbV9jaGlsZHJl
bi0+YXBwZW5kKGNoaWxkTm9kZSk7CisgICAgbV9jaGlsZHJlbi0+YXBwZW5kKFdURk1vdmUoY2hp
bGROb2RlKSk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjpzZXRMYXllcihjb25zdCBM
YXllclJlcHJlc2VudGF0aW9uJiBsYXllclJlcHJlc2VudGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaAppbmRleCBiZmFkMWM0
NWUwZDcxZjliYTdjMmJjMDgyM2YxMWJlNDY4ZDY5ZWMwLi4wODdkNjE4MjlhZGU1NDYxMDYxMjA1
NzViZDQxYTE2ODBlYmMxZDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaApAQCAtMjA2LDcgKzIwNiw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGlzT3ZlcmZsb3dTY3JvbGxpbmdOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9ub2RlVHlw
ZSA9PSBPdmVyZmxvd1Njcm9sbGluZ05vZGU7IH0KIAogICAgIHZpcnR1YWwgUmVmPFNjcm9sbGlu
Z1N0YXRlTm9kZT4gY2xvbmUoU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpID0gMDsK
LSAgICBQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xvbmVBbmRSZXNldChTY3JvbGxp
bmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSk7CisgICAgUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4g
Y2xvbmVBbmRSZXNldChTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSk7CiAgICAgdm9p
ZCBjbG9uZUFuZFJlc2V0Q2hpbGRyZW4oU2Nyb2xsaW5nU3RhdGVOb2RlJiwgU2Nyb2xsaW5nU3Rh
dGVUcmVlJiBhZG9wdGl2ZVRyZWUpOwogCiAgICAgZW51bSB7CkBAIC0yMzgsNyArMjM4LDcgQEAg
cHVibGljOgogCiAgICAgVmVjdG9yPFJlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+PiogY2hpbGRy
ZW4oKSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVuLmdldCgpOyB9CiAKLSAgICB2b2lkIGFwcGVu
ZENoaWxkKFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPik7CisgICAgdm9pZCBhcHBlbmRD
aGlsZChSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiYmKTsKIAogICAgIFN0cmluZyBzY3JvbGxpbmdT
dGF0ZVRyZWVBc1RleHQoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKaW5kZXggOThiNmNhZGNiNGMzNTFjZDJk
NzY2NjQ2NTczZTM4NWE3MzJmYzE0Mi4uMGJiYzFiNzMzODI3MTliNjI1OGQxMWQwNDk0MzNlMzI5
ODdhM2UwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nU3RhdGVUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdTdGF0ZVRyZWUuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVU
cmVlOjpzZXRIYXNDaGFuZ2VkUHJvcGVydGllcyhib29sIGNoYW5nZWRQcm9wZXJ0aWVzKQogI2Vu
ZGlmCiB9CiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZVRy
ZWU6OmNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJ
RCBub2RlSUQpCitSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZVRyZWU6OmNy
ZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2Rl
SUQpCiB7CiAgICAgc3dpdGNoIChub2RlVHlwZSkgewogICAgIGNhc2UgRml4ZWROb2RlOgpAQCAt
ODAsNyArODAsNyBAQCBQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3Rh
dGVUcmVlOjpjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlCiAgICAgICAgIHJldHVybiBTY3Jv
bGxpbmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwog
ICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICByZXR1cm4gU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsK
IH0KIAogYm9vbCBTY3JvbGxpbmdTdGF0ZVRyZWU6Om5vZGVUeXBlQW5kUGFyZW50TWF0Y2goU2Ny
b2xsaW5nU3RhdGVOb2RlJiBub2RlLCBTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xs
aW5nTm9kZUlEIHBhcmVudElEKSBjb25zdApAQCAtMTI5LDEzICsxMjksMTMgQEAgU2Nyb2xsaW5n
Tm9kZUlEIFNjcm9sbGluZ1N0YXRlVHJlZTo6YXR0YWNoTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBu
b2RlVHlwZSwgU2Nyb2wKICAgICAgICAgaWYgKG5vZGVUeXBlID09IEZyYW1lU2Nyb2xsaW5nTm9k
ZSAmJiBwYXJlbnRJRCkgewogICAgICAgICAgICAgaWYgKGF1dG8gb3JwaGFuZWROb2RlID0gbV9v
cnBoYW5lZFN1YmZyYW1lTm9kZXMudGFrZShuZXdOb2RlSUQpKSB7CiAgICAgICAgICAgICAgICAg
bmV3Tm9kZSA9IG9ycGhhbmVkTm9kZS5nZXQoKTsKLSAgICAgICAgICAgICAgICBwYXJlbnQtPmFw
cGVuZENoaWxkKFdURk1vdmUob3JwaGFuZWROb2RlKSk7CisgICAgICAgICAgICAgICAgcGFyZW50
LT5hcHBlbmRDaGlsZChvcnBoYW5lZE5vZGUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIW5ld05vZGUpIHsKICAgICAgICAgICAgIGF1
dG8gc3RhdGVOb2RlID0gY3JlYXRlTm9kZShub2RlVHlwZSwgbmV3Tm9kZUlEKTsKLSAgICAgICAg
ICAgIG5ld05vZGUgPSBzdGF0ZU5vZGUuZ2V0KCk7CisgICAgICAgICAgICBuZXdOb2RlID0gc3Rh
dGVOb2RlLnB0cigpOwogICAgICAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZChXVEZNb3ZlKHN0
YXRlTm9kZSkpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTgyLDcgKzE4Miw3IEBAIHN0ZDo6dW5p
cXVlX3B0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IFNjcm9sbGluZ1N0YXRlVHJlZTo6Y29tbWl0KExh
eWVyUmVwcmVzZW50YXRpCiAgICAgdHJlZVN0YXRlQ2xvbmUtPnNldFByZWZlcnJlZExheWVyUmVw
cmVzZW50YXRpb24ocHJlZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbik7CiAKICAgICBpZiAobV9y
b290U3RhdGVOb2RlKQotICAgICAgICB0cmVlU3RhdGVDbG9uZS0+c2V0Um9vdFN0YXRlTm9kZShz
dGF0aWNfcG9pbnRlcl9jYXN0PFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPihtX3Jv
b3RTdGF0ZU5vZGUtPmNsb25lQW5kUmVzZXQoKnRyZWVTdGF0ZUNsb25lKSkpOworICAgICAgICB0
cmVlU3RhdGVDbG9uZS0+c2V0Um9vdFN0YXRlTm9kZShzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8U2Ny
b2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KG1fcm9vdFN0YXRlTm9kZS0+Y2xvbmVBbmRS
ZXNldCgqdHJlZVN0YXRlQ2xvbmUpKSk7CiAKICAgICAvLyBDb3B5IHRoZSBJRHMgb2YgdGhlIG5v
ZGVzIHRoYXQgaGF2ZSBiZWVuIHJlbW92ZWQgc2luY2UgdGhlIGxhc3QgY29tbWl0IGludG8gdGhl
IGNsb25lLgogICAgIHRyZWVTdGF0ZUNsb25lLT5tX25vZGVzUmVtb3ZlZFNpbmNlTGFzdENvbW1p
dC5zd2FwKG1fbm9kZXNSZW1vdmVkU2luY2VMYXN0Q29tbWl0KTsKQEAgLTIxMSw3ICsyMTEsOCBA
QCB2b2lkIFNjcm9sbGluZ1N0YXRlVHJlZTo6cmVtb3ZlTm9kZUFuZEFsbERlc2NlbmRhbnRzKFNj
cm9sbGluZ1N0YXRlTm9kZSogbm9kZSwgUwogICAgIGlmIChub2RlID09IG1fcm9vdFN0YXRlTm9k
ZSkKICAgICAgICAgbV9yb290U3RhdGVOb2RlID0gbnVsbHB0cjsKICAgICBlbHNlIGlmIChwYXJl
bnQpIHsKLSAgICAgICAgQVNTRVJUKHBhcmVudC0+Y2hpbGRyZW4oKSAmJiBwYXJlbnQtPmNoaWxk
cmVuKCktPmZpbmQobm9kZSkgIT0gbm90Rm91bmQpOworICAgICAgICBBU1NFUlQocGFyZW50LT5j
aGlsZHJlbigpKTsKKyAgICAgICAgQVNTRVJUKHBhcmVudC0+Y2hpbGRyZW4oKS0+ZmluZChub2Rl
KSAhPSBub3RGb3VuZCk7CiAgICAgICAgIGlmIChhdXRvIGNoaWxkcmVuID0gcGFyZW50LT5jaGls
ZHJlbigpKSB7CiAgICAgICAgICAgICBzaXplX3QgaW5kZXggPSBjaGlsZHJlbi0+ZmluZChub2Rl
KTsKICAgICAgICAgICAgIGlmIChpbmRleCAhPSBub3RGb3VuZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmgKaW5kZXggMzFmNmRiNzll
N2I0MGMxYjMyZjJlYTdjZGNmZmM0OGYxN2JmY2UzMS4uM2IyNTYxNTFhZDc0NGJjZjAyMzRkNzJk
NGZkM2EwYzc1ZDQzNjkxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmgKQEAgLTc0LDE3ICs3NCwxNCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRQcmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9uKExheWVyUmVwcmVzZW50YXRpb246
OlR5cGUgcmVwcmVzZW50YXRpb24pIHsgbV9wcmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9uID0g
cmVwcmVzZW50YXRpb247IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIHNldFJvb3RTdGF0ZU5vZGUo
UGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4gcm9vdFN0YXRlTm9k
ZSkgeyBtX3Jvb3RTdGF0ZU5vZGUgPSByb290U3RhdGVOb2RlOyB9CisgICAgdm9pZCBzZXRSb290
U3RhdGVOb2RlKFJlZjxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4mJiByb290U3Rh
dGVOb2RlKSB7IG1fcm9vdFN0YXRlTm9kZSA9IFdURk1vdmUocm9vdFN0YXRlTm9kZSk7IH0KICAg
ICB2b2lkIGFkZE5vZGUoU2Nyb2xsaW5nU3RhdGVOb2RlKik7CiAKLSAgICBQYXNzUmVmUHRyPFNj
cm9sbGluZ1N0YXRlTm9kZT4gY3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5n
Tm9kZUlEKTsKKyAgICBSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjcmVhdGVOb2RlKFNjcm9sbGlu
Z05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogCiAgICAgYm9vbCBub2RlVHlwZUFuZFBhcmVu
dE1hdGNoKFNjcm9sbGluZ1N0YXRlTm9kZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdO
b2RlSUQgcGFyZW50SUQpIGNvbnN0OwogCi0gICAgZW51bSBjbGFzcyBTdWJmcmFtZU5vZGVSZW1v
dmFsIHsKLSAgICAgICAgRGVsZXRlLAotICAgICAgICBPcnBoYW4KLSAgICB9OworICAgIGVudW0g
Y2xhc3MgU3ViZnJhbWVOb2RlUmVtb3ZhbCB7IERlbGV0ZSwgT3JwaGFuIH07CiAgICAgdm9pZCBy
ZW1vdmVOb2RlQW5kQWxsRGVzY2VuZGFudHMoU2Nyb2xsaW5nU3RhdGVOb2RlKiwgU3ViZnJhbWVO
b2RlUmVtb3ZhbCA9IFN1YmZyYW1lTm9kZVJlbW92YWw6OkRlbGV0ZSk7CiAKICAgICB2b2lkIHJl
Y3Vyc2l2ZU5vZGVXaWxsQmVSZW1vdmVkKFNjcm9sbGluZ1N0YXRlTm9kZSogY3Vyck5vZGUsIFN1
YmZyYW1lTm9kZVJlbW92YWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcAppbmRleCBkMDBlYzVkZDliMWI3ZDRhNmQ2MWJmNWQxMzliNDk5MmU2
MzdkOGVmLi40MGJjYzYzZmY4YzMzN2FmYmMxMGJkNGI5OWViMWMwMDNmNDc1MGMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtMTc5
LDcgKzE3OSw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJlZUZyb21TdGF0ZU5vZGUo
Y29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlKiBzdGF0ZU5vZGUsCiAgICAgICAgIGlmIChwYXJlbnRJ
dCAhPSBtX25vZGVNYXAuZW5kKCkpIHsKICAgICAgICAgICAgIFNjcm9sbGluZ1RyZWVOb2RlKiBw
YXJlbnQgPSBwYXJlbnRJdC0+dmFsdWU7CiAgICAgICAgICAgICBub2RlLT5zZXRQYXJlbnQocGFy
ZW50KTsKLSAgICAgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQobm9kZSk7CisgICAgICAgICAg
ICBwYXJlbnQtPmFwcGVuZENoaWxkKCpub2RlKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTg5
LDcgKzE4OSw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJlZUZyb21TdGF0ZU5vZGUo
Y29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlKiBzdGF0ZU5vZGUsCiAgICAgaWYgKGF1dG8gbm9kZUNo
aWxkcmVuID0gbm9kZS0+Y2hpbGRyZW4oKSkgewogICAgICAgICBmb3IgKGF1dG8mIGNoaWxkU2Ny
b2xsaW5nTm9kZSA6ICpub2RlQ2hpbGRyZW4pIHsKICAgICAgICAgICAgIGNoaWxkU2Nyb2xsaW5n
Tm9kZS0+c2V0UGFyZW50KG51bGxwdHIpOwotICAgICAgICAgICAgb3JwaGFuTm9kZXMuYWRkKGNo
aWxkU2Nyb2xsaW5nTm9kZS0+c2Nyb2xsaW5nTm9kZUlEKCksIGNoaWxkU2Nyb2xsaW5nTm9kZSk7
CisgICAgICAgICAgICBvcnBoYW5Ob2Rlcy5hZGQoY2hpbGRTY3JvbGxpbmdOb2RlLT5zY3JvbGxp
bmdOb2RlSUQoKSwgY2hpbGRTY3JvbGxpbmdOb2RlLmdldCgpKTsKICAgICAgICAgfQogICAgICAg
ICBub2RlQ2hpbGRyZW4tPmNsZWFyKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDY3MzRiNTNhZGFiNWMzOTliOTMzYWMzNzdl
ZGU3NGI4YzJhMDVhNGQuLmFhZjJkNDc4YmJiODAwOTVmNTU5NmM5MTQ2MDZlMmI5YjVkOGY4Y2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAg
LTc0LDcgKzc0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRNYWluRnJhbWVQaW5TdGF0ZShi
b29sIHBpbm5lZFRvVGhlTGVmdCwgYm9vbCBwaW5uZWRUb1RoZVJpZ2h0LCBib29sIHBpbm5lZFRv
VGhlVG9wLCBib29sIHBpbm5lZFRvVGhlQm90dG9tKTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9k
ZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgPSAwOworICAgIHZpcnR1YWwgUmVmPFNjcm9sbGluZ1Ry
ZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xs
aW5nTm9kZUlEKSA9IDA7CiAKICAgICAvLyBDYWxsZWQgYWZ0ZXIgYSBzY3JvbGxpbmcgdHJlZSBu
b2RlIGhhcyBoYW5kbGVkIGEgc2Nyb2xsIGFuZCB1cGRhdGVkIGl0cyBsYXllcnMuCiAgICAgLy8g
VXBkYXRlcyBGcmFtZVZpZXcvUmVuZGVyTGF5ZXIgc2Nyb2xsaW5nIHN0YXRlIGFuZCBHcmFwaGlj
c0xheWVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVOb2RlLmNwcAppbmRleCBkZWI3ODFhMWMxZjlmZGQwMzNjOTk5NWM5OTIxYzA3Mjk5MjY5
YTJhLi4wZjY2MTZkMGYzZGMzNTc4NjMwNmZkNDY2ZjdhNjk2NDE1YjJlZWU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwCkBA
IC00NSwyMiArNDUsMjEgQEAgU2Nyb2xsaW5nVHJlZU5vZGU6On5TY3JvbGxpbmdUcmVlTm9kZSgp
CiB7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZU5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8
U2Nyb2xsaW5nVHJlZU5vZGU+IGNoaWxkTm9kZSkKK3ZvaWQgU2Nyb2xsaW5nVHJlZU5vZGU6OmFw
cGVuZENoaWxkKFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4mJiBjaGlsZE5vZGUpCiB7CiAgICAgY2hp
bGROb2RlLT5zZXRQYXJlbnQodGhpcyk7CiAKICAgICBpZiAoIW1fY2hpbGRyZW4pCi0gICAgICAg
IG1fY2hpbGRyZW4gPSBzdGQ6Om1ha2VfdW5pcXVlPFNjcm9sbGluZ1RyZWVDaGlsZHJlblZlY3Rv
cj4oKTsKLQotICAgIG1fY2hpbGRyZW4tPmFwcGVuZChjaGlsZE5vZGUpOworICAgICAgICBtX2No
aWxkcmVuID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2Rl
Pj4+KCk7CisgICAgbV9jaGlsZHJlbi0+YXBwZW5kKFdURk1vdmUoY2hpbGROb2RlKSk7CiB9CiAK
LXZvaWQgU2Nyb2xsaW5nVHJlZU5vZGU6OnJlbW92ZUNoaWxkKFNjcm9sbGluZ1RyZWVOb2RlKiBu
b2RlKQordm9pZCBTY3JvbGxpbmdUcmVlTm9kZTo6cmVtb3ZlQ2hpbGQoU2Nyb2xsaW5nVHJlZU5v
ZGUmIG5vZGUpCiB7CiAgICAgaWYgKCFtX2NoaWxkcmVuKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBzaXplX3QgaW5kZXggPSBtX2NoaWxkcmVuLT5maW5kKG5vZGUpOworICAgIHNpemVfdCBpbmRl
eCA9IG1fY2hpbGRyZW4tPmZpbmQoJm5vZGUpOwogCiAgICAgLy8gVGhlIGluZGV4IHdpbGwgYmUg
bm90Rm91bmQgaWYgdGhlIG5vZGUgdG8gcmVtb3ZlIGlzIGEgZGVlcGVyLXRoYW4tMS1sZXZlbCBk
ZXNjZW5kYW50IG9yCiAgICAgLy8gaWYgbm9kZSBpcyB0aGUgcm9vdCBzdGF0ZSBub2RlLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKaW5k
ZXggM2U4NmUzZDQ3OGQzNDA2OTM1OWVhYTVjNmI5Y2ZiYWM2NzVjZWQwNS4uMmUxNjMyNDZiYjk2
ZTMzZmVmNjJhZGE3MWI0MWEyMTM5MjEyNzkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCkBAIC02MCwxMSArNjAsMTAgQEAgcHVi
bGljOgogICAgIFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJlbnQoKSBjb25zdCB7IHJldHVybiBtX3Bh
cmVudDsgfQogICAgIHZvaWQgc2V0UGFyZW50KFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJlbnQpIHsg
bV9wYXJlbnQgPSBwYXJlbnQ7IH0KIAotICAgIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxTY3JvbGxp
bmdUcmVlTm9kZT4+IFNjcm9sbGluZ1RyZWVDaGlsZHJlblZlY3RvcjsKLSAgICBTY3JvbGxpbmdU
cmVlQ2hpbGRyZW5WZWN0b3IqIGNoaWxkcmVuKCkgeyByZXR1cm4gbV9jaGlsZHJlbi5nZXQoKTsg
fQotICAgIAotICAgIHZvaWQgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9k
ZT4pOwotICAgIHZvaWQgcmVtb3ZlQ2hpbGQoU2Nyb2xsaW5nVHJlZU5vZGUqKTsKKyAgICBWZWN0
b3I8UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPj4qIGNoaWxkcmVuKCkgeyByZXR1cm4gbV9jaGls
ZHJlbi5nZXQoKTsgfQorCisgICAgdm9pZCBhcHBlbmRDaGlsZChSZWY8U2Nyb2xsaW5nVHJlZU5v
ZGU+JiYpOworICAgIHZvaWQgcmVtb3ZlQ2hpbGQoU2Nyb2xsaW5nVHJlZU5vZGUmKTsKIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgZHVtcChUZXh0U3RyZWFtJiwgU2Nyb2xsaW5nU3RhdGVUcmVl
QXNUZXh0QmVoYXZpb3IpIGNvbnN0OwogCkBAIC03Miw3ICs3MSw3IEBAIHByb3RlY3RlZDoKICAg
ICBTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNj
cm9sbGluZ05vZGVJRCk7CiAgICAgU2Nyb2xsaW5nVHJlZSYgc2Nyb2xsaW5nVHJlZSgpIGNvbnN0
IHsgcmV0dXJuIG1fc2Nyb2xsaW5nVHJlZTsgfQogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9s
bGluZ1RyZWVDaGlsZHJlblZlY3Rvcj4gbV9jaGlsZHJlbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
VmVjdG9yPFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4+PiBtX2NoaWxkcmVuOwogCiAgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCB2b2lkIGR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBTY3Jv
bGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCmluZGV4
IGJjYjQ4ZTQ5NWMxYjBiODllNzVhN2FhMzNlODVlNTk0ZDdjNWU2ODUuLmY2NjRlZDNhYzNiZTUz
OGRmZjJmZTU4ODAyYTA5NzdhYTBhYTA4OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcApAQCAtMzksOCArMzks
OCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6VGhy
ZWFkZWRTY3JvbGxpbmdUcmVlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nv
b3JkaW5hdG9yKQotICAgIDogbV9zY3JvbGxpbmdDb29yZGluYXRvcihzY3JvbGxpbmdDb29yZGlu
YXRvcikKK1RocmVhZGVkU2Nyb2xsaW5nVHJlZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlKEFzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3ImIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorICAgIDogbV9zY3Jv
bGxpbmdDb29yZGluYXRvcigmc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiB7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgK
aW5kZXggNzMyNTQwNTljMmQ3NzAyMDVjZWZkYmQxNTMwYWIyNzkwNGFhNzM2My4uNmQxZDQ5ZDY3
ZWNhNWZhOGQ1MmE4NThlZWNmNWY5M2VlOWM5NzBkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NSw3ICs1
NSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGUoKSBvdmVycmlkZTsKIAogcHJvdGVj
dGVkOgotICAgIGV4cGxpY2l0IFRocmVhZGVkU2Nyb2xsaW5nVHJlZShBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yKik7CisgICAgZXhwbGljaXQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlKEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3ImKTsKIAogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3Jv
bGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29u
c3Qgc3RkOjpvcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9s
bGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpT
eW5jKSBvdmVycmlkZTsKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdl
KFNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9z
L1Njcm9sbGluZ1RyZWVJT1MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9z
L1Njcm9sbGluZ1RyZWVJT1MuY3BwCmluZGV4IDEwYjNmODczNDVmZGE0M2NjZGZlOWMxNWZlNDE3
ZjQ2YWY1NTQ1ZWEuLjFmMDNlNjg2ZTlmODc1OGVjNjVhOWI2ZjliNjE3ZWIyZjg2OGM2NDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVl
SU9TLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5n
VHJlZUlPUy5jcHAKQEAgLTQwLDEzICs0MCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
LVJlZjxTY3JvbGxpbmdUcmVlSU9TPiBTY3JvbGxpbmdUcmVlSU9TOjpjcmVhdGUoQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCitSZWY8U2Nyb2xsaW5nVHJl
ZUlPUz4gU2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Im
IHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNjcm9s
bGluZ1RyZWVJT1Moc2Nyb2xsaW5nQ29vcmRpbmF0b3IpKTsKIH0KIAotU2Nyb2xsaW5nVHJlZUlP
Uzo6U2Nyb2xsaW5nVHJlZUlPUyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdD
b29yZGluYXRvcikKLSAgICA6IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3Ioc2Nyb2xsaW5nQ29vcmRp
bmF0b3IpCitTY3JvbGxpbmdUcmVlSU9TOjpTY3JvbGxpbmdUcmVlSU9TKEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3ImIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorICAgIDogbV9zY3JvbGxpbmdDb29y
ZGluYXRvcigmc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiB7CiB9CiAKQEAgLTgzLDIwICs4MywyMSBA
QCB2b2lkIFNjcm9sbGluZ1RyZWVJT1M6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9s
bGluZ05vZGVJRCBub2RlSUQsIGNvbnN0CiAgICAgfSk7CiB9CiAKLVBhc3NSZWZQdHI8U2Nyb2xs
aW5nVHJlZU5vZGU+IFNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNj
cm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQorUmVmPFNj
cm9sbGluZ1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlSU9TOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9k
ZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKIHsK
ICAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2FzZSBGcmFtZVNjcm9sbGluZ05vZGU6CiAg
ICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpjcmVhdGUo
KnRoaXMsIG5vZGVJRCk7CiAgICAgY2FzZSBPdmVyZmxvd1Njcm9sbGluZ05vZGU6CiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBGaXhlZE5vZGU6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVl
Rml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgY2FzZSBTdGlja3lOb2RlOgog
ICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OmNyZWF0ZSgqdGhpcywgbm9k
ZUlEKTsKICAgICB9Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9k
ZUlEKTsKIH0KIAogRmxvYXRSZWN0IFNjcm9sbGluZ1RyZWVJT1M6OmZpeGVkUG9zaXRpb25SZWN0
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxp
bmdUcmVlSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5n
VHJlZUlPUy5oCmluZGV4IDFhOWFhZTFiNDBjODEyNjgzNDQ4NDFjZTdiMzA3NWVmNzBhN2U1NTQu
LmFlYTY5YjM5ZjU5Yzk2MTVkMTgwYWFlYTZlYjg5NzI1OWNkYWQ5NDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaApAQCAt
MjksMzUgKzI5LDMxIEBACiAKICNpbmNsdWRlICJTY3JvbGxpbmdTdGF0ZVRyZWUuaCIKICNpbmNs
dWRlICJTY3JvbGxpbmdUcmVlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNs
dWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvcjsKIAotY2xhc3MgU2Nyb2xsaW5nVHJlZUlPUyA6IHB1YmxpYyBT
Y3JvbGxpbmdUcmVlIHsKK2NsYXNzIFNjcm9sbGluZ1RyZWVJT1MgZmluYWwgOiBwdWJsaWMgU2Ny
b2xsaW5nVHJlZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlSU9TPiBj
cmVhdGUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciopOworICAgIHN0YXRpYyBSZWY8U2Nyb2xs
aW5nVHJlZUlPUz4gY3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImKTsKICAgICB2aXJ0
dWFsIH5TY3JvbGxpbmdUcmVlSU9TKCk7CiAKLSAgICAvLyBObyB3aGVlbCBldmVudHMgb24gaU9T
Ci0gICAgdm9pZCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92
ZXJyaWRlIHsgfQotICAgIEV2ZW50UmVzdWx0IHRyeVRvSGFuZGxlV2hlZWxFdmVudChjb25zdCBQ
bGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZSB7IHJldHVybiBEaWROb3RIYW5kbGVFdmVudDsg
fQotCi0gICAgdm9pZCBpbnZhbGlkYXRlKCkgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6Ci0gICAgZXhw
bGljaXQgU2Nyb2xsaW5nVHJlZUlPUyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKik7Ci0gICAg
Ym9vbCBpc1Njcm9sbGluZ1RyZWVJT1MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9
CisgICAgZXhwbGljaXQgU2Nyb2xsaW5nVHJlZUlPUyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Jik7CiAKLSAgICBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdU
cmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKKyAg
ICBib29sIGlzU2Nyb2xsaW5nVHJlZUlPUygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0K
IAotICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBj
b25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qgc3RkOjpvcHRpb25hbDxGbG9h
dFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rp
b24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBvdmVycmlkZTsKKyAgICAv
LyBObyB3aGVlbCBldmVudHMgb24gaU9TCisgICAgdm9pZCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpIGZpbmFsIHsgfQorICAgIEV2ZW50UmVzdWx0IHRyeVRvSGFu
ZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBmaW5hbCB7IHJldHVybiBE
aWROb3RIYW5kbGVFdmVudDsgfQogCi0gICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0Rp
ZENoYW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVu
c2lnbmVkIHZlcnRpY2FsKSBvdmVycmlkZTsKKyAgICB2b2lkIGludmFsaWRhdGUoKSBmaW5hbDsK
IAotICAgIEZsb2F0UmVjdCBmaXhlZFBvc2l0aW9uUmVjdCgpIG92ZXJyaWRlOworICAgIFJlZjxT
Y3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5
cGUsIFNjcm9sbGluZ05vZGVJRCkgZmluYWw7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURp
ZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9u
LCBjb25zdCBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwg
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rp
b246OlN5bmMpIGZpbmFsOworICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFu
Z2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25l
ZCB2ZXJ0aWNhbCkgZmluYWw7CisgICAgRmxvYXRSZWN0IGZpeGVkUG9zaXRpb25SZWN0KCkgZmlu
YWw7CiAKICAgICBSZWZQdHI8QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcj4gbV9zY3JvbGxpbmdD
b29yZGluYXRvcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KaW5kZXggZDQzZDk0YjI0N2E2
ZTRmOTM5NzQxNTgyNjE5N2MyYjBhZGYwNzE0OC4uODYxMThiNDQ1MDA3OTQ2Y2YwZmE3ODNjNWQ1
NDNlMTE5ZTllYmY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQpAQCAtNTQsNyArNTQsNyBA
QCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMoUGFnZSog
cGFnZSkKICAgICA6IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IocGFnZSkKICAgICAsIG1fc2Ny
b2xsaW5nU3RhdGVUcmVlQ29tbWl0dGVyVGltZXIoKnRoaXMsICZTY3JvbGxpbmdDb29yZGluYXRv
ck1hYzo6Y29tbWl0VHJlZVN0YXRlKQogewotICAgIHNldFNjcm9sbGluZ1RyZWUoU2Nyb2xsaW5n
VHJlZU1hYzo6Y3JlYXRlKHRoaXMpKTsKKyAgICBzZXRTY3JvbGxpbmdUcmVlKFNjcm9sbGluZ1Ry
ZWVNYWM6OmNyZWF0ZSgqdGhpcykpOwogfQogCiBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6flNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNwcAppbmRleCA3MGRiYzA2Y2YwMTNiZjMx
YjhkYTA3ZmRlMGQzOTg4YzYxYjRkODBhLi44OTlmMWU5MDE2N2RiOGM4ZWExZmE2ZDhlYWVmNGM3
MDQxMTIwNTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZU1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVNYWMuY3BwCkBAIC0zNCwzMCArMzQsMzEgQEAKIAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiAKLVJlZjxTY3JvbGxpbmdUcmVlTWFjPiBTY3JvbGxpbmdUcmVlTWFj
OjpjcmVhdGUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3Ip
CitSZWY8U2Nyb2xsaW5nVHJlZU1hYz4gU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlKEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3ImIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQogewogICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IFNjcm9sbGluZ1RyZWVNYWMoc2Nyb2xsaW5nQ29vcmRpbmF0b3IpKTsKIH0K
IAotU2Nyb2xsaW5nVHJlZU1hYzo6U2Nyb2xsaW5nVHJlZU1hYyhBc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvcikKK1Njcm9sbGluZ1RyZWVNYWM6OlNjcm9sbGlu
Z1RyZWVNYWMoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYgc2Nyb2xsaW5nQ29vcmRpbmF0b3Ip
CiAgICAgOiBUaHJlYWRlZFNjcm9sbGluZ1RyZWUoc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiB7CiB9
CiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9sbGluZ1RyZWVNYWM6OmNyZWF0
ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdO
b2RlSUQgbm9kZUlEKQorUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlTWFjOjpj
cmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xs
aW5nTm9kZUlEIG5vZGVJRCkKIHsKICAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2FzZSBG
cmFtZVNjcm9sbGluZ05vZGU6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlTWFjOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgY2FzZSBPdmVyZmxvd1Nj
cm9sbGluZ05vZGU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaXhlZE5vZGU6CiAgICAgICAg
IHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAg
ICAgY2FzZSBTdGlja3lOb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZVN0aWNreU5v
ZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICB9Ci0gICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGaXhlZE5v
ZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19T
Q1JPTExJTkcpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCmluZGV4IDQzYTQ2Yjc3ZTg1YjQ1ZmY2
MWNiMmI5YTZiYmIzMmMyYzBlZmZhNTcuLjQ5OWZjM2ZmMTdiY2Y5NDkwYTgzNzIyNjQyZjZiYzgz
YmUwMGI3ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdUcmVlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ1RyZWVNYWMuaApAQCAtMzEsMTQgKzMxLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotY2xhc3MgU2Nyb2xsaW5nVHJlZU1hYyA6IHB1YmxpYyBUaHJlYWRlZFNjcm9sbGlu
Z1RyZWUgeworY2xhc3MgU2Nyb2xsaW5nVHJlZU1hYyBmaW5hbCA6IHB1YmxpYyBUaHJlYWRlZFNj
cm9sbGluZ1RyZWUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U2Nyb2xsaW5nVHJlZU1hYz4g
Y3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqKTsKKyAgICBzdGF0aWMgUmVmPFNjcm9s
bGluZ1RyZWVNYWM+IGNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJik7CiAKLSAgICBQ
YXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3Jv
bGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKLSAgICAKIHByaXZhdGU6
Ci0gICAgZXhwbGljaXQgU2Nyb2xsaW5nVHJlZU1hYyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Kik7CisgICAgZXhwbGljaXQgU2Nyb2xsaW5nVHJlZU1hYyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yJik7CisKKyAgICBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIGZpbmFsOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4v
RXZlbnRIYW5kbGVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxl
cldpbi5jcHAKaW5kZXggNjE2MDcwOTBkMjZjOTljMWFlMjUzZjVhNGVjNWQ2NmQ1MWMzZDYxNS4u
MzI0MzBjNDdiODdkMWMwODg0NDlhY2JkY2QwYjM2NDcxM2YwOTQyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCkBAIC04MSw3ICs4MSw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjp3aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYgd2hlZWxFdmVuCiAgICAgcmV0dXJuIGRvd25jYXN0PEZyYW1lVmlldz4od2lkZ2V0
KS5mcmFtZSgpLmV2ZW50SGFuZGxlcigpLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiB9
CiAKLWJvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVu
dCopIGNvbnN0Citib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJv
YXJkRXZlbnQmKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwogfQpAQCAtOTIsMTAgKzkyLDEy
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpldmVudEFjdGl2YXRlZFZpZXcoY29uc3QgUGxhdGZvcm1N
b3VzZUV2ZW50JiBldmVudCkgY29uc3QKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1Q
YXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFU
cmFuc2ZlcigpIGNvbnN0CisKK1JlZjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRl
RHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIHJldHVybiBEYXRhVHJhbnNmZXI6
OmNyZWF0ZUZvckRyYWdBbmREcm9wKCk7CiB9CisKICNlbmRpZgogCiB2b2lkIEV2ZW50SGFuZGxl
cjo6Zm9jdXNEb2N1bWVudFZpZXcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vQ3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaAppbmRleCA2OGQw
NjlkM2E0Mzg0Njg4ZGYyZGVjODhlODM0MDQ5ZjUzMmIxMTFkLi4yYWZmMjdiMjU3NGYzMzdkOGVk
M2NkZmYwY2E0MGFkZTRhZDE0YzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9DdXJzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaApAQCAtNTQs
MjQgKzU0LDI4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEltYWdlOwogCiAjaWYgUExB
VEZPUk0oV0lOKQorCiBjbGFzcyBTaGFyZWRDdXJzb3IgOiBwdWJsaWMgUmVmQ291bnRlZDxTaGFy
ZWRDdXJzb3I+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNoYXJlZEN1cnNvcj4gY3JlYXRl
KEhDVVJTT1IgbmF0aXZlQ3Vyc29yKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNoYXJlZEN1cnNv
cihuYXRpdmVDdXJzb3IpKTsgfQorICAgIHN0YXRpYyBSZWY8U2hhcmVkQ3Vyc29yPiBjcmVhdGUo
SENVUlNPUik7CiAgICAgflNoYXJlZEN1cnNvcigpOwogICAgIEhDVVJTT1IgbmF0aXZlQ3Vyc29y
KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVDdXJzb3I7IH0KKwogcHJpdmF0ZToKLSAgICBTaGFy
ZWRDdXJzb3IoSENVUlNPUiBuYXRpdmVDdXJzb3IpIDogbV9uYXRpdmVDdXJzb3IobmF0aXZlQ3Vy
c29yKSB7IH0KKyAgICBTaGFyZWRDdXJzb3IoSENVUlNPUik7CiAgICAgSENVUlNPUiBtX25hdGl2
ZUN1cnNvcjsKIH07Ci10eXBlZGVmIFJlZlB0cjxTaGFyZWRDdXJzb3I+IFBsYXRmb3JtQ3Vyc29y
OworCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdJTikKK3VzaW5nIFBsYXRmb3JtQ3Vyc29yID0g
UmVmUHRyPFNoYXJlZEN1cnNvcj47CiAjZWxpZiBVU0UoQVBQS0lUKQotdHlwZWRlZiBOU0N1cnNv
ciAqUGxhdGZvcm1DdXJzb3I7Cit1c2luZyBQbGF0Zm9ybUN1cnNvciA9IE5TQ3Vyc29yICo7CiAj
ZWxpZiBQTEFURk9STShHVEspCi10eXBlZGVmIEdSZWZQdHI8R2RrQ3Vyc29yPiBQbGF0Zm9ybUN1
cnNvcjsKK3VzaW5nIFBsYXRmb3JtQ3Vyc29yID0gR1JlZlB0cjxHZGtDdXJzb3I+OwogI2VsaWYg
UExBVEZPUk0oRUZMKQotdHlwZWRlZiBjb25zdCBjaGFyKiBQbGF0Zm9ybUN1cnNvcjsKLSNlbHNl
Ci10eXBlZGVmIHZvaWQqIFBsYXRmb3JtQ3Vyc29yOwordXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBj
b25zdCBjaGFyKjsKICNlbmRpZgogCiBjbGFzcyBDdXJzb3IgewpAQCAtMTI0LDYxICsxMjgsNTAg
QEAgcHVibGljOgogICAgICAgICBDdXN0b20KICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIGNvbnN0IEN1cnNvciYgZnJvbVR5cGUoQ3Vyc29yOjpUeXBlKTsKKyAgICBDdXJzb3Io
KSA9IGRlZmF1bHQ7CiAKLSAgICBDdXJzb3IoKQogI2lmICFQTEFURk9STShJT1MpCi0gICAgICAg
IC8vIFRoaXMgaXMgYW4gaW52YWxpZCBDdXJzb3IgYW5kIHNob3VsZCBuZXZlciBhY3R1YWxseSBn
ZXQgdXNlZC4KLSAgICAgICAgOiBtX3R5cGUoc3RhdGljX2Nhc3Q8VHlwZT4oLTEpKQotI2lmIEVO
QUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgICAgICwgbV9pbWFnZVNjYWxlRmFjdG9yKDEp
Ci0jZW5kaWYKLSAgICAgICAgLCBtX3BsYXRmb3JtQ3Vyc29yKDApCi0jZW5kaWYgLy8gIVBMQVRG
T1JNKElPUykKLSAgICB7Ci0gICAgfQogCi0jaWYgIVBMQVRGT1JNKElPUykKKyAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgY29uc3QgQ3Vyc29yJiBmcm9tVHlwZShDdXJzb3I6OlR5cGUpOworCiAg
ICAgV0VCQ09SRV9FWFBPUlQgQ3Vyc29yKEltYWdlKiwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3Qp
OwotICAgIFdFQkNPUkVfRVhQT1JUIEN1cnNvcihjb25zdCBDdXJzb3ImKTsKIAogI2lmIEVOQUJM
RShNT1VTRV9DVVJTT1JfU0NBTEUpCiAgICAgLy8gSG90IHNwb3QgaXMgaW4gaW1hZ2UgcGl4ZWxz
LgogICAgIFdFQkNPUkVfRVhQT1JUIEN1cnNvcihJbWFnZSosIGNvbnN0IEludFBvaW50JiBob3RT
cG90LCBmbG9hdCBpbWFnZVNjYWxlRmFjdG9yKTsKICNlbmRpZgogCi0gICAgV0VCQ09SRV9FWFBP
UlQgfkN1cnNvcigpOwotICAgIFdFQkNPUkVfRVhQT1JUIEN1cnNvciYgb3BlcmF0b3I9KGNvbnN0
IEN1cnNvciYpOwotCiAgICAgZXhwbGljaXQgQ3Vyc29yKFR5cGUpOwotICAgIFR5cGUgdHlwZSgp
IGNvbnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID49IDAgJiYgbV90eXBlIDw9IEN1
c3RvbSk7Ci0gICAgICAgIHJldHVybiBtX3R5cGU7Ci0gICAgfQorCisgICAgVHlwZSB0eXBlKCkg
Y29uc3Q7CiAgICAgSW1hZ2UqIGltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZS5nZXQoKTsg
fQogICAgIGNvbnN0IEludFBvaW50JiBob3RTcG90KCkgY29uc3QgeyByZXR1cm4gbV9ob3RTcG90
OyB9CisKICNpZiBFTkFCTEUoTU9VU0VfQ1VSU09SX1NDQUxFKQogICAgIC8vIEltYWdlIHNjYWxl
IGluIGltYWdlIHBpeGVscyBwZXIgbG9naWNhbCAoVUkpIHBpeGVsLgogICAgIGZsb2F0IGltYWdl
U2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlU2NhbGVGYWN0b3I7IH0KICNlbmRp
ZgorCiAgICAgV0VCQ09SRV9FWFBPUlQgUGxhdGZvcm1DdXJzb3IgcGxhdGZvcm1DdXJzb3IoKSBj
b25zdDsKIAotIHByaXZhdGU6Citwcml2YXRlOgogICAgIHZvaWQgZW5zdXJlUGxhdGZvcm1DdXJz
b3IoKSBjb25zdDsKIAotICAgIFR5cGUgbV90eXBlOworICAgIC8vIFRoZSB0eXBlIG9mIC0xIGlu
ZGljYXRlcyBhbiBpbnZhbGlkIEN1cnNvciB0aGF0IHNob3VsZCBuZXZlciBhY3R1YWxseSBnZXQg
dXNlZC4KKyAgICBUeXBlIG1fdHlwZSB7IHN0YXRpY19jYXN0PFR5cGU+KC0xKSB9OwogICAgIFJl
ZlB0cjxJbWFnZT4gbV9pbWFnZTsKICAgICBJbnRQb2ludCBtX2hvdFNwb3Q7CisKICNpZiBFTkFC
TEUoTU9VU0VfQ1VSU09SX1NDQUxFKQotICAgIGZsb2F0IG1faW1hZ2VTY2FsZUZhY3RvcjsKKyAg
ICBmbG9hdCBtX2ltYWdlU2NhbGVGYWN0b3IgeyAxIH07CiAjZW5kaWYKIAogI2lmICFVU0UoQVBQ
S0lUKQotICAgIG11dGFibGUgUGxhdGZvcm1DdXJzb3IgbV9wbGF0Zm9ybUN1cnNvcjsKKyAgICBt
dXRhYmxlIFBsYXRmb3JtQ3Vyc29yIG1fcGxhdGZvcm1DdXJzb3IgeyBudWxscHRyIH07CiAjZWxz
ZQogICAgIG11dGFibGUgUmV0YWluUHRyPE5TQ3Vyc29yPiBtX3BsYXRmb3JtQ3Vyc29yOwogI2Vu
ZGlmCisKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogfTsKIApAQCAtMjI4LDQgKzIyMSwxNSBA
QCBjb25zdCBDdXJzb3ImIG5vbmVDdXJzb3IoKTsKIGNvbnN0IEN1cnNvciYgZ3JhYkN1cnNvcigp
OwogY29uc3QgQ3Vyc29yJiBncmFiYmluZ0N1cnNvcigpOwogCisjaWYgIVBMQVRGT1JNKElPUykK
KworaW5saW5lIEN1cnNvcjo6VHlwZSBDdXJzb3I6OnR5cGUoKSBjb25zdAoreworICAgIEFTU0VS
VChtX3R5cGUgPj0gMCk7CisgICAgQVNTRVJUKG1fdHlwZSA8PSBDdXN0b20pOworICAgIHJldHVy
biBtX3R5cGU7Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ3Vyc29yRWZsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2VmbC9DdXJzb3JFZmwuY3BwCmluZGV4IGIzZjQ0YWViN2VlYzRiZDJh
OGU3ZDUyZWVlZTJjMTI3NmRkMjQ2NjkuLjU5NjQ4YmIxNDg2Y2RhNWE2OWQxZjkxMTgwOTYzNTEx
NzdjZTY2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DdXJzb3JF
ZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DdXJzb3JFZmwuY3BwCkBA
IC00MCwzNCArNDAsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUN1cnNvcjo6Q3Vyc29y
KGNvbnN0IEN1cnNvciYgb3RoZXIpCi0gICAgOiBtX3R5cGUob3RoZXIubV90eXBlKQotICAgICwg
bV9pbWFnZShvdGhlci5tX2ltYWdlKQotICAgICwgbV9ob3RTcG90KG90aGVyLm1faG90U3BvdCkK
LSNpZiBFTkFCTEUoTU9VU0VfQ1VSU09SX1NDQUxFKQotICAgICwgbV9pbWFnZVNjYWxlRmFjdG9y
KG90aGVyLm1faW1hZ2VTY2FsZUZhY3RvcikKLSNlbmRpZgotICAgICwgbV9wbGF0Zm9ybUN1cnNv
cihvdGhlci5tX3BsYXRmb3JtQ3Vyc29yKQotewotfQotCi1DdXJzb3I6On5DdXJzb3IoKQotewot
fQotCi1DdXJzb3ImIEN1cnNvcjo6b3BlcmF0b3I9KGNvbnN0IEN1cnNvciYgb3RoZXIpCi17Ci0g
ICAgbV90eXBlID0gb3RoZXIubV90eXBlOwotICAgIG1faW1hZ2UgPSBvdGhlci5tX2ltYWdlOwot
ICAgIG1faG90U3BvdCA9IG90aGVyLm1faG90U3BvdDsKLSNpZiBFTkFCTEUoTU9VU0VfQ1VSU09S
X1NDQUxFKQotICAgIG1faW1hZ2VTY2FsZUZhY3RvciA9IG90aGVyLm1faW1hZ2VTY2FsZUZhY3Rv
cjsKLSNlbmRpZgotICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBvdGhlci5tX3BsYXRmb3JtQ3Vyc29y
OwotCi0gICAgcmV0dXJuICp0aGlzOwotfQotCiBzdGF0aWMgY29uc3QgY2hhciogY3Vyc29yU3Ry
aW5nKEN1cnNvcjo6VHlwZSB0eXBlKQogewogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjdXJzb3JT
dHJpbmdzW10gPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ3Vy
c29yR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwCmlu
ZGV4IGYwNzVmMzYzYTAzYTg0YmIxMmE3NjU0ZDA2YzhiZmRjYTcxNTlhMGIuLjQ2MzRlZmRhYzg1
ZjE4Mjk4YjQyNjdiNmJjY2VhOGE0M2FhYTNmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9DdXJzb3JHdGsuY3BwCkBAIC0xNzUsMjUgKzE3NSw0IEBAIHZvaWQgQ3Vyc29yOjplbnN1
cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgfQogfQogCi1DdXJzb3I6OkN1cnNvcihjb25z
dCBDdXJzb3ImIG90aGVyKQotICAgIDogbV90eXBlKG90aGVyLm1fdHlwZSkKLSAgICAsIG1faW1h
Z2Uob3RoZXIubV9pbWFnZSkKLSAgICAsIG1faG90U3BvdChvdGhlci5tX2hvdFNwb3QpCi0gICAg
LCBtX3BsYXRmb3JtQ3Vyc29yKG90aGVyLm1fcGxhdGZvcm1DdXJzb3IpCi17Ci19Ci0KLUN1cnNv
ciYgQ3Vyc29yOjpvcGVyYXRvcj0oY29uc3QgQ3Vyc29yJiBvdGhlcikKLXsKLSAgICBtX3R5cGUg
PSBvdGhlci5tX3R5cGU7Ci0gICAgbV9pbWFnZSA9IG90aGVyLm1faW1hZ2U7Ci0gICAgbV9ob3RT
cG90ID0gb3RoZXIubV9ob3RTcG90OwotICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBvdGhlci5tX3Bs
YXRmb3JtQ3Vyc29yOwotICAgIHJldHVybiAqdGhpczsKLX0KLQotQ3Vyc29yOjp+Q3Vyc29yKCkK
LXsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNv
ck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KaW5kZXgg
ODVjYzdjNWZkZDJjMTYwNjJjZjhhMDE4NjRhMjlmYzM0NDVhN2UwNS4uYWEzNDVlODhlNDgxMThj
NDY4N2I5ZWVmYmZjNzMyMThkYzQ3MDcwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0N1cnNvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
Q3Vyc29yTWFjLm1tCkBAIC0yNDEsMzMgKzI0MSw2IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0
Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgfQogfQogCi1DdXJzb3I6OkN1cnNvcihjb25zdCBDdXJz
b3ImIG90aGVyKQotICAgIDogbV90eXBlKG90aGVyLm1fdHlwZSkKLSAgICAsIG1faW1hZ2Uob3Ro
ZXIubV9pbWFnZSkKLSAgICAsIG1faG90U3BvdChvdGhlci5tX2hvdFNwb3QpCi0jaWYgRU5BQkxF
KE1PVVNFX0NVUlNPUl9TQ0FMRSkKLSAgICAsIG1faW1hZ2VTY2FsZUZhY3RvcihvdGhlci5tX2lt
YWdlU2NhbGVGYWN0b3IpCi0jZW5kaWYKLSAgICAsIG1fcGxhdGZvcm1DdXJzb3Iob3RoZXIubV9w
bGF0Zm9ybUN1cnNvcikKLXsKLX0KLQotQ3Vyc29yJiBDdXJzb3I6Om9wZXJhdG9yPShjb25zdCBD
dXJzb3ImIG90aGVyKQotewotICAgIG1fdHlwZSA9IG90aGVyLm1fdHlwZTsKLSAgICBtX2ltYWdl
ID0gb3RoZXIubV9pbWFnZTsKLSAgICBtX2hvdFNwb3QgPSBvdGhlci5tX2hvdFNwb3Q7Ci0jaWYg
RU5BQkxFKE1PVVNFX0NVUlNPUl9TQ0FMRSkKLSAgICBtX2ltYWdlU2NhbGVGYWN0b3IgPSBvdGhl
ci5tX2ltYWdlU2NhbGVGYWN0b3I7Ci0jZW5kaWYKLSAgICBtX3BsYXRmb3JtQ3Vyc29yID0gb3Ro
ZXIubV9wbGF0Zm9ybUN1cnNvcjsKLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLUN1cnNvcjo6fkN1
cnNvcigpCi17Ci19Ci0KIE5TQ3Vyc29yICpDdXJzb3I6OnBsYXRmb3JtQ3Vyc29yKCkgY29uc3QK
IHsKICAgICBlbnN1cmVQbGF0Zm9ybUN1cnNvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd2luL0N1cnNvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
aW4vQ3Vyc29yV2luLmNwcAppbmRleCA3YTk5MzEzNmJhMmMzYTA1ZDJkMzE5NmE1NTY3NzE4YTAw
ZGFmODU5Li4wYWZjYTY2MTk2Y2Q1MWM3MDU5Y2FmOGE2NmMwOWViNjllZDJkZTE1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ3Vyc29yV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ3Vyc29yV2luLmNwcApAQCAtNDAsNiArNDAsMTYgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitTaGFyZWRDdXJzb3I6OlNoYXJlZEN1cnNvcihIQ1VS
U09SIG5hdGl2ZUN1cnNvcikKKyAgICA6IG1fbmF0aXZlQ3Vyc29yKG5hdGl2ZUN1cnNvcikKK3sK
K30KKworUmVmPFNoYXJlZEN1cnNvcj4gU2hhcmVkQ3Vyc29yOjpjcmVhdGUoSENVUlNPUiBuYXRp
dmVDdXJzb3IpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hhcmVkQ3Vyc29yKG5hdGl2
ZUN1cnNvcikpOworfQorCiBzdGF0aWMgUmVmPFNoYXJlZEN1cnNvcj4gY3JlYXRlU2hhcmVkQ3Vy
c29yKEltYWdlKiBpbWcsIGNvbnN0IEludFBvaW50JiBob3RTcG90KQogewogICAgIEludFBvaW50
IGVmZmVjdGl2ZUhvdFNwb3QgPSBkZXRlcm1pbmVIb3RTcG90KGltZywgaG90U3BvdCk7CkBAIC0y
NTgsMzEgKzI2OCw0IEBAIFNoYXJlZEN1cnNvcjo6flNoYXJlZEN1cnNvcigpCiAgICAgRGVzdHJv
eUljb24obV9uYXRpdmVDdXJzb3IpOwogfQogCi1DdXJzb3I6OkN1cnNvcihjb25zdCBDdXJzb3Im
IG90aGVyKQotICAgIDogbV90eXBlKG90aGVyLm1fdHlwZSkKLSAgICAsIG1faW1hZ2Uob3RoZXIu
bV9pbWFnZSkKLSAgICAsIG1faG90U3BvdChvdGhlci5tX2hvdFNwb3QpCi0jaWYgRU5BQkxFKE1P
VVNFX0NVUlNPUl9TQ0FMRSkKLSAgICAsIG1faW1hZ2VTY2FsZUZhY3RvcihvdGhlci5tX2ltYWdl
U2NhbGVGYWN0b3IpCi0jZW5kaWYKLSAgICAsIG1fcGxhdGZvcm1DdXJzb3Iob3RoZXIubV9wbGF0
Zm9ybUN1cnNvcikKLXsKLX0KLQotQ3Vyc29yJiBDdXJzb3I6Om9wZXJhdG9yPShjb25zdCBDdXJz
b3ImIG90aGVyKQotewotICAgIG1fdHlwZSA9IG90aGVyLm1fdHlwZTsKLSAgICBtX2ltYWdlID0g
b3RoZXIubV9pbWFnZTsKLSAgICBtX2hvdFNwb3QgPSBvdGhlci5tX2hvdFNwb3Q7Ci0jaWYgRU5B
QkxFKE1PVVNFX0NVUlNPUl9TQ0FMRSkKLSAgICBtX2ltYWdlU2NhbGVGYWN0b3IgPSBvdGhlci5t
X2ltYWdlU2NhbGVGYWN0b3I7Ci0jZW5kaWYKLSAgICBtX3BsYXRmb3JtQ3Vyc29yID0gb3RoZXIu
bV9wbGF0Zm9ybUN1cnNvcjsKLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLUN1cnNvcjo6fkN1cnNv
cigpCi17Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IDA2YWVlOWY5Nzk2MmZi
Y2E4MjljZjVlMWJlMzgyNWU2ZmJkNTJkZTQuLjQ4MmI1ZGQxMzc1YjZmZTc3MjY3Y2I2MjZmNDE2
MzZkZjhmNTM1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bWJlZGRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVt
YmVkZGVkT2JqZWN0LmNwcApAQCAtNjE2LDcgKzYxNiw3IEBAIHZvaWQgUmVuZGVyRW1iZWRkZWRP
YmplY3Q6OmhhbmRsZVVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yRXZlbnQoRXZlbnQqIGV2ZW50
KQogICAgICAgICAgICAgc2V0VW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3JJc1ByZXNzZWQoZmFs
c2UpOwogICAgICAgICB9CiAgICAgICAgIGlmIChtX21vdXNlRG93bldhc0luVW5hdmFpbGFibGVQ
bHVnaW5JbmRpY2F0b3IgJiYgaXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yKG1vdXNlRXZl
bnQpKSB7Ci0gICAgICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkudW5hdmFpbGFibGVQ
bHVnaW5CdXR0b25DbGlja2VkKCZlbGVtZW50LCBtX3BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29u
KTsKKyAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS51bmF2YWlsYWJsZVBsdWdp
bkJ1dHRvbkNsaWNrZWQoZWxlbWVudCwgbV9wbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbik7CiAg
ICAgICAgIH0KICAgICAgICAgbV9tb3VzZURvd25XYXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNh
dG9yID0gZmFsc2U7CiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBhMWE5
NGM2N2I3ZTQ1MGU5ZWMwMzA1ZWUwNzA1OWRmMjJlYzA3NmQ0Li42MWNhYWJmNmFmYThlODcwMjY4
NjFiNGZlODA5N2NjMDk2MzUzZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIFJlbmRlckxheWVyQmFj
a2luZzo6UmVuZGVyTGF5ZXJCYWNraW5nKFJlbmRlckxheWVyJiBsYXllcikKIHsKICAgICBpZiAo
bGF5ZXIuaXNSb290TGF5ZXIoKSkgewogICAgICAgICBtX2lzTWFpbkZyYW1lUmVuZGVyVmlld0xh
eWVyID0gcmVuZGVyZXIoKS5mcmFtZSgpLmlzTWFpbkZyYW1lKCk7Ci0gICAgICAgIG1fdXNpbmdU
aWxlZENhY2hlTGF5ZXIgPSByZW5kZXJlcigpLnBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5zaG91
bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcocmVuZGVyZXIoKS5mcmFtZSgpLnZpZXcoKSk7
CisgICAgICAgIG1fdXNpbmdUaWxlZENhY2hlTGF5ZXIgPSByZW5kZXJlcigpLnBhZ2UoKS5jaHJv
bWUoKS5jbGllbnQoKS5zaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcocmVuZGVyZXIo
KS52aWV3KCkuZnJhbWVWaWV3KCkpOwogICAgIH0KICAgICAKICAgICBjcmVhdGVQcmltYXJ5R3Jh
cGhpY3NMYXllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcAppbmRleCAxMmI2MmM5Mjg3YmJmZmQ5ZTU3OThmNzY1ZDgyYzU3MDM3
MzFlNmRkLi42NWZkYzRkZmRhNDZmYmQyMmRiYmMzNDdhOTZiMjFjMmVlZGVjMTk3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApA
QCAtMzEwMyw3ICszMTAzLDcgQEAgR3JhcGhpY3NMYXllciogUmVuZGVyTGF5ZXJDb21wb3NpdG9y
Ojp1cGRhdGVMYXllckZvckhlYWRlcihib29sIHdhbnRzTGF5ZXIpCiAgICAgaWYgKFNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKCkpCiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdSb290TGF5
ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpKTsKIAotICAgIHBhZ2UoKS5jaHJv
bWUoKS5jbGllbnQoKS5kaWRBZGRIZWFkZXJMYXllcihtX2xheWVyRm9ySGVhZGVyLmdldCgpKTsK
KyAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlkQWRkSGVhZGVyTGF5ZXIoKm1fbGF5ZXJG
b3JIZWFkZXIpOwogCiAgICAgcmV0dXJuIG1fbGF5ZXJGb3JIZWFkZXIuZ2V0KCk7CiB9CkBAIC0z
MTQxLDcgKzMxNDEsNyBAQCBHcmFwaGljc0xheWVyKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZUxheWVyRm9yRm9vdGVyKGJvb2wgd2FudHNMYXllcikKICAgICBpZiAoU2Nyb2xsaW5nQ29v
cmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0
b3IoKSkKICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld1Jvb3RMYXllckRp
ZENoYW5nZShtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkpOwogCi0gICAgcGFnZSgpLmNocm9tZSgp
LmNsaWVudCgpLmRpZEFkZEZvb3RlckxheWVyKG1fbGF5ZXJGb3JGb290ZXIuZ2V0KCkpOworICAg
IHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5kaWRBZGRGb290ZXJMYXllcigqbV9sYXllckZvckZv
b3Rlcik7CiAKICAgICByZXR1cm4gbV9sYXllckZvckZvb3Rlci5nZXQoKTsKIH0KQEAgLTM0NjMs
MTEgKzM0NjMsMTEgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmF0dGFjaFJvb3RMYXll
cihSb290TGF5ZXJBdHRhY2htZW50IGF0dGFjaG1lbnQpCiAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgY2FzZSBSb290TGF5ZXJBdHRhY2hlZFZpYUNocm9tZUNsaWVudDogewogICAgICAgICAg
ICAgRnJhbWUmIGZyYW1lID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLmZyYW1lKCk7Ci0gICAg
ICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIo
JmZyYW1lLCByb290R3JhcGhpY3NMYXllcigpKTsKKyAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUo
KS5jbGllbnQoKS5hdHRhY2hSb290R3JhcGhpY3NMYXllcihmcmFtZSwgcm9vdEdyYXBoaWNzTGF5
ZXIoKSk7CiAgICAgICAgICAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSkgewogICAgICAgICAg
ICAgICAgIFBhZ2VPdmVybGF5Q29udHJvbGxlciYgcGFnZU92ZXJsYXlDb250cm9sbGVyID0gZnJh
bWUubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9sbGVyKCk7CiAgICAgICAgICAgICAgICAg
cGFnZU92ZXJsYXlDb250cm9sbGVyLndpbGxBdHRhY2hSb290TGF5ZXIoKTsKLSAgICAgICAgICAg
ICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xh
eWVyKCZmcmFtZSwgJnBhZ2VPdmVybGF5Q29udHJvbGxlci52aWV3T3ZlcmxheVJvb3RMYXllcigp
KTsKKyAgICAgICAgICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoVmlld092
ZXJsYXlHcmFwaGljc0xheWVyKGZyYW1lLCAmcGFnZU92ZXJsYXlDb250cm9sbGVyLnZpZXdPdmVy
bGF5Um9vdExheWVyKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KQEAgLTM1MDgsOSArMzUwOCw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpk
ZXRhY2hSb290TGF5ZXIoKQogICAgIH0KICAgICBjYXNlIFJvb3RMYXllckF0dGFjaGVkVmlhQ2hy
b21lQ2xpZW50OiB7CiAgICAgICAgIEZyYW1lJiBmcmFtZSA9IG1fcmVuZGVyVmlldy5mcmFtZVZp
ZXcoKS5mcmFtZSgpOwotICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoUm9v
dEdyYXBoaWNzTGF5ZXIoJmZyYW1lLCAwKTsKKyAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVu
dCgpLmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKGZyYW1lLCBudWxscHRyKTsKICAgICAgICAgaWYg
KGZyYW1lLmlzTWFpbkZyYW1lKCkpCi0gICAgICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50
KCkuYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKCZmcmFtZSwgMCk7CisgICAgICAgICAg
ICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVy
KGZyYW1lLCBudWxscHRyKTsKICAgICB9CiAgICAgYnJlYWs7CiAgICAgY2FzZSBSb290TGF5ZXJV
bmF0dGFjaGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1l
bnVMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAK
aW5kZXggZDJjMDJlZjlkNjBlMDZjNjg2NjcyM2U0NzQwNzM3YWQ4YzBjMzgyMS4uMzdjODNlOGQx
ZjVlYmIwNTdiMTEwY2M4ODgxMDU0NTEyY2Q0ZDQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC0zNzEsNyArMzcxLDcgQEAgdm9pZCBSZW5kZXJN
ZW51TGlzdDo6c2hvd1BvcHVwKCkKICAgICAvLyBpbnNpZGUgdGhlIHNob3dQb3B1cCBjYWxsIGFu
ZCBpdCB3b3VsZCBmYWlsLgogICAgIGNyZWF0ZUlubmVyQmxvY2soKTsKICAgICBpZiAoIW1fcG9w
dXApCi0gICAgICAgIG1fcG9wdXAgPSBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY3JlYXRl
UG9wdXBNZW51KHRoaXMpOworICAgICAgICBtX3BvcHVwID0gZG9jdW1lbnQoKS5wYWdlKCktPmNo
cm9tZSgpLmNyZWF0ZVBvcHVwTWVudSgqdGhpcyk7CiAgICAgbV9wb3B1cElzVmlzaWJsZSA9IHRy
dWU7CiAKICAgICAvLyBDb21wdXRlIHRoZSB0b3AgbGVmdCB0YWtpbmcgdHJhbnNmb3JtcyBpbnRv
IGFjY291bnQsIGJ1dCB1c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTZWFyY2hGaWVsZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Vh
cmNoRmllbGQuY3BwCmluZGV4IGI0NmQ4ZWQ3MTg2MDhjYWZlNjE2OTNlMTRiZTEzZTg2ZDRjYTgy
MmMuLmNhOTAwNTE4NGRiMjlhYzkyNzcwZGExMjc1NTgxNGM2MDgwNjIxY2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcApAQCAtOTcsNyArOTcs
NyBAQCB2b2lkIFJlbmRlclNlYXJjaEZpZWxkOjphZGRTZWFyY2hSZXN1bHQoKQogCiAgICAgY29u
c3QgQXRvbWljU3RyaW5nJiBuYW1lID0gYXV0b3NhdmVOYW1lKCk7CiAgICAgaWYgKCFtX3NlYXJj
aFBvcHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNyZWF0ZVNl
YXJjaFBvcHVwTWVudSh0aGlzKTsKKyAgICAgICAgbV9zZWFyY2hQb3B1cCA9IHBhZ2UoKS5jaHJv
bWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUoKnRoaXMpOwogCiAgICAgbV9zZWFyY2hQb3B1cC0+
c2F2ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwogfQpAQCAtMTA4LDcg
KzEwOCw3IEBAIHZvaWQgUmVuZGVyU2VhcmNoRmllbGQ6OnNob3dQb3B1cCgpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQb3B1cCA9
IHBhZ2UoKS5jaHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7CisgICAgICAgIG1f
c2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KCp0aGlz
KTsKIAogICAgIGlmICghbV9zZWFyY2hQb3B1cC0+ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47
CkBAIC0yMDEsNyArMjAxLDcgQEAgdm9pZCBSZW5kZXJTZWFyY2hGaWVsZDo6dmFsdWVDaGFuZ2Vk
KHVuc2lnbmVkIGxpc3RJbmRleCwgYm9vbCBmaXJlRXZlbnRzKQogICAgICAgICAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lID0gYXV0b3NhdmVOYW1lKCk7CiAgICAgICAgICAgICBpZiAoIW5h
bWUuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFtX3NlYXJjaFBvcHVwKQotICAg
ICAgICAgICAgICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNyZWF0ZVNl
YXJjaFBvcHVwTWVudSh0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cCA9
IHBhZ2UoKS5jaHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUoKnRoaXMpOwogICAgICAgICAg
ICAgICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBtX3JlY2VudFNl
YXJjaGVzKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVu
dC5jcHAKaW5kZXggYmViMGEzOTUzYmM3MmZlZTEzYjM1MzhmZTU5N2NkMTkwOWQ5ZDNiZS4uNDIw
MjNmYTc2ODY1NGUxM2FmNmQzMjYyODJhZTM4MTY3YWNhOWRiZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
QUVsZW1lbnQuY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgYm9vbCBTVkdBRWxlbWVudDo6aXNLZXli
b2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50JiBldmVudCkgY29uc3QKICAgICAgICAgcmV0dXJu
IFNWR0VsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpOwogCiAgICAgaWYgKGlzTGlu
aygpKQotICAgICAgICByZXR1cm4gZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS50
YWJzVG9MaW5rcygmZXZlbnQpOworICAgICAgICByZXR1cm4gZG9jdW1lbnQoKS5mcmFtZSgpLT5l
dmVudEhhbmRsZXIoKS50YWJzVG9MaW5rcyhldmVudCk7CiAKICAgICByZXR1cm4gU1ZHRWxlbWVu
dDo6aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKaW5kZXggZmQ1NjRhZmYxNDA0ZTU4OGE5
ZGM0MWE2MzY3ZGIyZjBjYmRhMTI4Yi4uMDA0NDA0MWJmNzU3OGMzYzJhODYxN2I3ZmU3NjZmZDJj
YmNiMmQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJs
YXlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5
Q2xpZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBNb2NrUGFnZU92ZXJsYXlDbGllbnQ6Ok1vY2tQ
YWdlT3ZlcmxheUNsaWVudCgpCiBSZWY8TW9ja1BhZ2VPdmVybGF5PiBNb2NrUGFnZU92ZXJsYXlD
bGllbnQ6Omluc3RhbGxPdmVybGF5KE1haW5GcmFtZSYgbWFpbkZyYW1lLCBQYWdlT3ZlcmxheTo6
T3ZlcmxheVR5cGUgb3ZlcmxheVR5cGUpCiB7CiAgICAgYXV0byBvdmVybGF5ID0gUGFnZU92ZXJs
YXk6OmNyZWF0ZSgqdGhpcywgb3ZlcmxheVR5cGUpOwotICAgIG1haW5GcmFtZS5wYWdlT3Zlcmxh
eUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkob3ZlcmxheS5wdHIoKSwgUGFnZU92ZXJs
YXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgIG1haW5GcmFtZS5wYWdlT3ZlcmxheUNvbnRy
b2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkob3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2Rl
OjpEb05vdEZhZGUpOwogCiAgICAgYXV0byBtb2NrT3ZlcmxheSA9IE1vY2tQYWdlT3ZlcmxheTo6
Y3JlYXRlKG92ZXJsYXkucHRyKCkpOwogICAgIG1fb3ZlcmxheXMuYWRkKG1vY2tPdmVybGF5LnB0
cigpKTsKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBNb2NrUGFnZU92ZXJsYXlDbGllbnQ6OnVuaW5z
dGFsbEFsbE92ZXJsYXlzKCkKICAgICAgICAgUmVmUHRyPE1vY2tQYWdlT3ZlcmxheT4gbW9ja092
ZXJsYXkgPSBtX292ZXJsYXlzLnRha2VBbnkoKTsKICAgICAgICAgUGFnZU92ZXJsYXlDb250cm9s
bGVyKiBvdmVybGF5Q29udHJvbGxlciA9IG1vY2tPdmVybGF5LT5vdmVybGF5KCktPmNvbnRyb2xs
ZXIoKTsKICAgICAgICAgQVNTRVJUKG92ZXJsYXlDb250cm9sbGVyKTsKLSAgICAgICAgb3Zlcmxh
eUNvbnRyb2xsZXItPnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1vY2tPdmVybGF5LT5vdmVybGF5KCks
IFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAgb3ZlcmxheUNvbnRy
b2xsZXItPnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptb2NrT3ZlcmxheS0+b3ZlcmxheSgpLCBQYWdl
T3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFN
YW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRp
b25DYWNoZVF1b3RhTWFuYWdlci5tbQppbmRleCAzYjNjM2E0Mjk0YzE3YzU3OGI4MTkxNWRhMGIx
YzRmOGJmYTIzZWJhLi4wZDQ4MmI0ZGQ5MjViYzBiOGI4ZDQyNjFlZmMyYzdhNjU1NzZlMDkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlv
bkNhY2hlUXVvdGFNYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0KQEAgLTU5LDcgKzU5LDkgQEAg
LSAodW5zaWduZWQgbG9uZyBsb25nKXVzYWdlCiAtICh1bnNpZ25lZCBsb25nIGxvbmcpcXVvdGEK
IHsKICAgICBsb25nIGxvbmcgcXVvdGE7Ci0gICAgaWYgKHdlYkFwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlKCkuY2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oW19vcmlnaW4gX2NvcmVdLCBxdW90YSkpCisg
ICAgaWYgKCFfb3JpZ2luKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAod2ViQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2UoKS5jYWxjdWxhdGVRdW90YUZvck9yaWdpbigqW19vcmlnaW4gX2NvcmVd
LCBxdW90YSkpCiAgICAgICAgIHJldHVybiBxdW90YTsKICAgICByZXR1cm4gMDsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5k
ZXggZjRmMDk2YzVkNjQ3M2ViYzZlN2FiZDU4M2I2ZGZlZjRhYWE0ZDE1OS4uN2Q4ZjNiODdmN2Uz
MjQ1MTZkYjA2MTViZTU4ZDhkOTA1NTgyNGI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChXZWJDb3JlOjpFbGVtZW50Kikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKikg
ZmluYWw7CiAKLSAgICBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWUq
LCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93
RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWw7CisgICAg
V2ViQ29yZTo6UGFnZSogY3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29y
ZTo6RnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29u
c3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpIGZpbmFsOwogICAgIHZvaWQgc2hvdygpIGZp
bmFsOwogCiAgICAgYm9vbCBjYW5SdW5Nb2RhbCgpIGZpbmFsOwpAQCAtNzksMTYgKzc5LDE2IEBA
IHByaXZhdGU6CiAKICAgICB2b2lkIHNldFJlc2l6YWJsZShib29sKSBmaW5hbDsKIAotICAgIHZv
aWQgYWRkTWVzc2FnZVRvQ29uc29sZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxl
dmVsLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5z
aWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBXVEY6OlN0cmluZyYgc291cmNlVVJMKSBmaW5hbDsK
KyAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1
bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKSBmaW5hbDsKIAog
ICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgZmluYWw7Ci0gICAgYm9v
bCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2Us
IFdlYkNvcmU6OkZyYW1lKikgZmluYWw7CisgICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwogCiAg
ICAgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSBmaW5hbDsKIAotICAgIHZvaWQgcnVuSmF2YVNjcmlw
dEFsZXJ0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKSBvdmVycmlkZTsKLSAg
ICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpT
dHJpbmcmKSBvdmVycmlkZTsKLSAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6
RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRl
ZmF1bHRWYWx1ZSwgV1RGOjpTdHJpbmcmIHJlc3VsdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBydW5K
YXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsK
KyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3Ry
aW5nJikgb3ZlcnJpZGU7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZy
YW1lJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwg
U3RyaW5nJiByZXN1bHQpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzdXBwb3J0c0ltbWVkaWF0ZUlu
dmFsaWRhdGlvbigpIGZpbmFsOwogICAgIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKSBmaW5hbDsKQEAgLTEwNSwyOSArMTA1LDI5IEBAIHByaXZhdGU6CiAj
ZW5kaWYKIAogICAgIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25z
dCBmaW5hbDsKLSAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3QgZmluYWw7CisgICAgdm9pZCBjb250ZW50c1Np
emVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0
IGZpbmFsOwogICAgIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBXVEY6
OlN0cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJp
bmcmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25z
dCBmaW5hbCB7IH0KICAgICBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0
dG9uKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJl
YXNvbikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNr
ZWQoV2ViQ29yZTo6RWxlbWVudCosIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVn
aW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7CisgICAgdm9pZCB1bmF2YWlsYWJs
ZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVudCYsIFdlYkNvcmU6OlJlbmRlckVt
YmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7CiAg
ICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVz
dWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgZmluYWw7CiAKLSAgICB2b2lkIHNldFRvb2xU
aXAoY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKSBmaW5hbDsKKyAg
ICB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikg
ZmluYWw7CiAKLSAgICB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKikgZmluYWw7Ci0gICAgdm9p
ZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmlu
ZyYgZGF0YWJhc2VOYW1lLCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMpIGZpbmFsOworICAgIHZv
aWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKKyAgICB2b2lkIGV4Y2VlZGVkRGF0YWJh
c2VRdW90YShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBXZWJD
b3JlOjpEYXRhYmFzZURldGFpbHMpIGZpbmFsOwogICAgIHZvaWQgcmVhY2hlZE1heEFwcENhY2hl
U2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKSBmaW5hbDsKLSAgICB2b2lkIHJlYWNoZWRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRv
dGFsU3BhY2VOZWVkZWQpIGZpbmFsOworICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIGludDY0X3QgdG90YWxTcGFjZU5l
ZWRlZCkgZmluYWw7CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgdm9pZCBh
bm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpIGZpbmFsOwogI2VuZGlmCiAKICAgICB2b2lkIHJ1bk9w
ZW5QYW5lbChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkZpbGVDaG9vc2VyJikgb3ZlcnJpZGU7
Ci0gICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBX
ZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpIGZpbmFsOworICAgIHZvaWQgbG9hZEljb25Gb3JGaWxl
cyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJikgZmluYWw7
CiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6
OkN1cnNvciYpIGZpbmFsOwpAQCAtMTM1LDcgKzEzNSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3Jl
OjpDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXJD
bGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpIGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xv
ckNob29zZXJDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpIGZpbmFsOwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQpAQCAtMTUxLDE2ICsxNTEsMTYgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBkaXNh
YmxlU3VkZGVuVGVybWluYXRpb24oKSBmaW5hbDsKIAotICAgIGJvb2wgc2hvdWxkUmVwbGFjZVdp
dGhHZW5lcmF0ZWRGaWxlRm9yVXBsb2FkKGNvbnN0IFdURjo6U3RyaW5nJiBwYXRoLCBXVEY6OlN0
cmluZyAmZ2VuZXJhdGVkRmlsZW5hbWUpIGZpbmFsOwotICAgIFdURjo6U3RyaW5nIGdlbmVyYXRl
UmVwbGFjZW1lbnRGaWxlKGNvbnN0IFdURjo6U3RyaW5nJiBwYXRoKSBmaW5hbDsKKyAgICBib29s
IHNob3VsZFJlcGxhY2VXaXRoR2VuZXJhdGVkRmlsZUZvclVwbG9hZChjb25zdCBTdHJpbmcmIHBh
dGgsIFN0cmluZyAmZ2VuZXJhdGVkRmlsZW5hbWUpIGZpbmFsOworICAgIFN0cmluZyBnZW5lcmF0
ZVJlcGxhY2VtZW50RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpIGZpbmFsOwogCi0gICAgdm9pZCBl
bGVtZW50RGlkRm9jdXMoY29uc3QgV2ViQ29yZTo6Tm9kZSopIG92ZXJyaWRlOwotICAgIHZvaWQg
ZWxlbWVudERpZEJsdXIoY29uc3QgV2ViQ29yZTo6Tm9kZSopIG92ZXJyaWRlOworICAgIHZvaWQg
ZWxlbWVudERpZEZvY3VzKFdlYkNvcmU6OkVsZW1lbnQmKSBvdmVycmlkZTsKKyAgICB2b2lkIGVs
ZW1lbnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2hv
dWxkUGFpbnRFbnRpcmVDb250ZW50cygpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBhdHRhY2hS
b290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBvdmVycmlkZTsKLSAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJD
b3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKKyAgICB2b2lkIGF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIG92ZXJyaWRlOworICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVy
KFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwogICAgIHZv
aWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIGZpbmFsOwogICAgIHZv
aWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBmaW5hbDsKIApAQCAtMTg5LDE2ICsx
ODksMTYgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQot
ICAgIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVt
ZW50KiwgYm9vbCB3aXRoS2V5Ym9hcmQpIGZpbmFsOwotICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVu
Rm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KikgZmluYWw7Ci0gICAgdm9pZCBleGl0RnVsbFNj
cmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopIGZpbmFsOworICAgIGJvb2wgc3VwcG9y
dHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50JiwgYm9vbCB3aXRo
S2V5Ym9hcmQpIGZpbmFsOworICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJD
b3JlOjpFbGVtZW50JikgZmluYWw7CisgICAgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQo
V2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOwogI2VuZGlmCiAKICAgICBib29sIHNlbGVjdEl0ZW1X
cml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBzZWxlY3RJdGVt
QWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgb3ZlcnJpZGU7CiAgICAgYm9v
bCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0IGZpbmFsOwotICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1
cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBv
dmVycmlkZTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCYpIGNvbnN0IG92ZXJyaWRlOworICAgIFJlZlB0cjxXZWJDb3JlOjpTZWFy
Y2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGll
bnQmKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgd2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdl
ZChib29sKSBmaW5hbCB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDBlY2ZmOGQ1ZmFiMWVlNWZjNTUyOTJkYzA0
YTgwNWFkMmNjY2RlZDguLmU0OTY3YjlmOGMzN2M2MjViNTA1NWJjNDI5MWE3NTk1OWYwNWZhZDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIldlYkNocm9tZUNsaWVudC5oIgog
CiAjaW1wb3J0ICJET01FbGVtZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUhUTUxJbnB1dEVs
ZW1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJQ
b3B1cE1lbnVNYWMuaCIKICNpbXBvcnQgIlNlYXJjaFBvcHVwTWVudU1hYy5oIgpAQCAtMjIyLDcg
KzIyMyw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2VkRWxlbWVudENoYW5nZWQoRWxl
bWVudCogZWxlbWVudCkKICAgICBpZiAoIWlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBIVE1MSW5wdXRFbGVtZW50JiBpbnB1dEVsZW1lbnQgPSBk
b3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCk7CisgICAgYXV0byYgaW5wdXRFbGVt
ZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpOwogICAgIGlmICghaW5w
dXRFbGVtZW50LmlzVGV4dCgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTIzMywxNCArMjM0LDE0
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKikKIHsK
IH0KIAotUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUqIGZyYW1lLCBj
b25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBj
b25zdCBOYXZpZ2F0aW9uQWN0aW9uJikKK1BhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2lu
ZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0Zl
YXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpCiB7CiAgICAgaWQgZGVs
ZWdhdGUgPSBbbV93ZWJWaWV3IFVJRGVsZWdhdGVdOwogICAgIFdlYlZpZXcgKm5ld1dlYlZpZXc7
CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgaWYgKGZyYW1lLT5kb2N1bWVudCgp
ICYmIGZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkK
LSAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsKKyAg
ICBpZiAoZnJhbWUuZG9jdW1lbnQoKSAmJiBmcmFtZS5kb2N1bWVudCgpLT53ZWJraXRDdXJyZW50
RnVsbFNjcmVlbkVsZW1lbnQoKSkKKyAgICAgICAgZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0Q2Fu
Y2VsRnVsbFNjcmVlbigpOwogI2VuZGlmCiAgICAgCiAgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6Y3JlYXRlV2ViVmlld1dpdGhSZXF1ZXN0Ondp
bmRvd0ZlYXR1cmVzOildKSB7CkBAIC00NjgsOSArNDY5LDkgQEAgYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpCiAgICAgcmV0dXJuIFtbbV93ZWJW
aWV3IFVJRGVsZWdhdGVdIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpydW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOildOwog
fQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUqIGZyYW1lKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6
OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1l
JiBmcmFtZSkKIHsKLSAgICByZXR1cm4gQ2FsbFVJRGVsZWdhdGVSZXR1cm5pbmdCb29sZWFuKHRy
dWUsIG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTopLCBtZXNzYWdlLCBraXQoZnJhbWUpKTsK
KyAgICByZXR1cm4gQ2FsbFVJRGVsZWdhdGVSZXR1cm5pbmdCb29sZWFuKHRydWUsIG1fd2ViVmll
dywgQHNlbGVjdG9yKHdlYlZpZXc6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3Nh
Z2U6aW5pdGlhdGVkQnlGcmFtZTopLCBtZXNzYWdlLCBraXQoJmZyYW1lKSk7CiB9CiAKIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpjbG9zZVdpbmRvd1Nvb24oKQpAQCAtNDkzLDEyICs0OTQsMTIgQEAg
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNsb3NlV2luZG93U29vbigpCiAgICAgW21fd2ViVmlldyBw
ZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKF9jbG9zZVdpbmRvdykgd2l0aE9iamVjdDpuaWwgYWZ0
ZXJEZWxheTowLjBdOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFs
ZXJ0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKIHsKICAgICBpZCBkZWxlZ2F0ZSA9IFttX3dlYlZpZXcgVUlEZWxlZ2F0ZV07CiAgICAg
U0VMIHNlbGVjdG9yID0gQHNlbGVjdG9yKHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxX
aXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOik7CiAgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6c2VsZWN0b3JdKSB7Ci0gICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmll
dywgc2VsZWN0b3IsIG1lc3NhZ2UsIGtpdChmcmFtZSkpOworICAgICAgICBDYWxsVUlEZWxlZ2F0
ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBtZXNzYWdlLCBraXQoJmZyYW1lKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKQEAgLTUxMCwxMiArNTExLDEyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
CiAgICAgfQogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0o
RnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCitib29sIFdlYkNocm9tZUNsaWVu
dDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCiB7CiAgICAgaWQgZGVsZWdhdGUgPSBbbV93ZWJWaWV3IFVJRGVsZWdhdGVdOwogICAgIFNF
TCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRDb25maXJtUGFuZWxX
aXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOik7CiAgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25k
c1RvU2VsZWN0b3I6c2VsZWN0b3JdKQotICAgICAgICByZXR1cm4gQ2FsbFVJRGVsZWdhdGVSZXR1
cm5pbmdCb29sZWFuKE5PLCBtX3dlYlZpZXcsIHNlbGVjdG9yLCBtZXNzYWdlLCBraXQoZnJhbWUp
KTsKKyAgICAgICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVhbihOTywgbV93
ZWJWaWV3LCBzZWxlY3RvciwgbWVzc2FnZSwga2l0KCZmcmFtZSkpOwogCiAgICAgLy8gQ2FsbCB0
aGUgb2xkIHZlcnNpb24gb2YgdGhlIGRlbGVnYXRlIG1ldGhvZCBpZiBpdCBpcyBpbXBsZW1lbnRl
ZC4KICAgICBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRDb25maXJt
UGFuZWxXaXRoTWVzc2FnZTopOwpAQCAtNTI1LDEzICs1MjYsMTMgQEAgYm9vbCBXZWJDaHJvbWVD
bGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQogICAgIHJldHVybiBOTzsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkph
dmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwgY29uc3Qg
U3RyaW5nJiBkZWZhdWx0VGV4dCwgU3RyaW5nJiByZXN1bHQpCitib29sIFdlYkNocm9tZUNsaWVu
dDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgcHJvbXB0
LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRUZXh0LCBTdHJpbmcmIHJlc3VsdCkKIHsKICAgICBpZCBk
ZWxlZ2F0ZSA9IFttX3dlYlZpZXcgVUlEZWxlZ2F0ZV07CiAgICAgU0VMIHNlbGVjdG9yID0gQHNl
bGVjdG9yKHdlYlZpZXc6cnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDpkZWZh
dWx0VGV4dDppbml0aWF0ZWRCeUZyYW1lOik7CiAgICAgTlNTdHJpbmcgKmRlZmF1bHRTdHJpbmcg
PSBkZWZhdWx0VGV4dDsKICAgICBpZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxl
Y3Rvcl0pIHsKLSAgICAgICAgcmVzdWx0ID0gKE5TU3RyaW5nICopQ2FsbFVJRGVsZWdhdGUobV93
ZWJWaWV3LCBzZWxlY3RvciwgcHJvbXB0LCBkZWZhdWx0U3RyaW5nLCBraXQoZnJhbWUpKTsKKyAg
ICAgICAgcmVzdWx0ID0gKE5TU3RyaW5nICopQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBzZWxl
Y3RvciwgcHJvbXB0LCBkZWZhdWx0U3RyaW5nLCBraXQoJmZyYW1lKSk7CiAgICAgICAgIHJldHVy
biAhcmVzdWx0LmlzTnVsbCgpOwogICAgIH0KIApAQCAtNTQyLDcgKzU0Myw3IEBAIGJvb2wgV2Vi
Q2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiBwcm9tcHQsIGNvCiAgICAgICAgIHJldHVybiAhcmVzdWx0LmlzTnVsbCgpOwogICAgIH0K
IAotICAgIHJlc3VsdCA9IFtbV2ViRGVmYXVsdFVJRGVsZWdhdGUgc2hhcmVkVUlEZWxlZ2F0ZV0g
d2ViVmlldzptX3dlYlZpZXcgcnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDpw
cm9tcHQgZGVmYXVsdFRleHQ6ZGVmYXVsdFN0cmluZyBpbml0aWF0ZWRCeUZyYW1lOmtpdChmcmFt
ZSldOworICAgIHJlc3VsdCA9IFtbV2ViRGVmYXVsdFVJRGVsZWdhdGUgc2hhcmVkVUlEZWxlZ2F0
ZV0gd2ViVmlldzptX3dlYlZpZXcgcnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21w
dDpwcm9tcHQgZGVmYXVsdFRleHQ6ZGVmYXVsdFN0cmluZyBpbml0aWF0ZWRCeUZyYW1lOmtpdCgm
ZnJhbWUpXTsKICAgICByZXR1cm4gIXJlc3VsdC5pc051bGwoKTsKIH0KIApAQCAtNjA2LDcgKzYw
Nyw3IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGllbnQ6OnBsYXRmb3JtUGFnZUNs
aWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpj
b250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0Cit2b2lkIFdl
YkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYsIGNvbnN0IEludFNpemUm
KSBjb25zdAogewogfQogCkBAIC02MzUsMTIgKzYzNiwxMiBAQCBib29sIFdlYkNocm9tZUNsaWVu
dDo6c2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVyRW1iZWRkZWRP
YmplYwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJFbWJlZGRl
ZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlS
ZWFzb24pIGNvbnN0Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0
b25DbGlja2VkKEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5V
bmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QKIHsK
LSAgICBBU1NFUlQoZWxlbWVudC0+aGFzVGFnTmFtZShvYmplY3RUYWcpIHx8IGVsZW1lbnQtPmhh
c1RhZ05hbWUoZW1iZWRUYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoYXBwbGV0VGFnKSk7Cisg
ICAgQVNTRVJUKGVsZW1lbnQuaGFzVGFnTmFtZShvYmplY3RUYWcpIHx8IGVsZW1lbnQuaGFzVGFn
TmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGFwcGxldFRhZykpOwogCiAgICAg
QVNTRVJUKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uID09IFJlbmRlckVtYmVkZGVkT2JqZWN0
OjpQbHVnaW5NaXNzaW5nKTsKLSAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rv
cih3ZWJWaWV3OmRpZFByZXNzTWlzc2luZ1BsdWdpbkJ1dHRvbjopLCBraXQoZWxlbWVudCkpOwor
ICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6ZGlkUHJlc3NN
aXNzaW5nUGx1Z2luQnV0dG9uOiksIGtpdCgmZWxlbWVudCkpOwogfQogCiB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVz
dWx0LCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKQpAQCAtNjU3LDIxICs2NTgsMjEgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlwLCBUZXh0RGly
ZWN0aW9uKQogICAgICAgICBbKFdlYkhUTUxWaWV3ICopZG9jdW1lbnRWaWV3IF9zZXRUb29sVGlw
OnRvb2xUaXBdOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1l
KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lJiBmcmFtZSkKIHsKLSAgICBXZWJG
cmFtZSAqd2ViRnJhbWUgPSBraXQoZnJhbWUpOworICAgIFdlYkZyYW1lICp3ZWJGcmFtZSA9IGtp
dCgmZnJhbWUpOwogICAgIGlmIChbW21fd2ViVmlldyBVSURlbGVnYXRlXSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6cHJpbnRGcmFtZTopXSkKICAgICAgICAgQ2FsbFVJRGVs
ZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpwcmludEZyYW1lOiksIHdlYkZyYW1l
KTsKICAgICBlbHNlCiAgICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9y
KHdlYlZpZXc6cHJpbnRGcmFtZVZpZXc6KSwgW3dlYkZyYW1lIGZyYW1lVmlld10pOwogfQogCi12
b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiBmcmFtZSwg
Y29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscykKK3ZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJp
bmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzKQogewogICAgIEJFR0lOX0JMT0NLX09C
SkNfRVhDRVBUSU9OUzsKIAotICAgIFdlYlNlY3VyaXR5T3JpZ2luICp3ZWJPcmlnaW4gPSBbW1dl
YlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5pdFdpdGhXZWJDb3JlU2VjdXJpdHlPcmlnaW46JmZy
YW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpXTsKLSAgICBDYWxsVUlEZWxlZ2F0ZSht
X3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZyYW1lOmV4Y2VlZGVkRGF0YWJhc2VRdW90YUZv
clNlY3VyaXR5T3JpZ2luOmRhdGFiYXNlOiksIGtpdChmcmFtZSksIHdlYk9yaWdpbiwgKE5TU3Ry
aW5nICopZGF0YWJhc2VOYW1lKTsKKyAgICBXZWJTZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0g
W1tXZWJTZWN1cml0eU9yaWdpbiBhbGxvY10gX2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2lu
OiZmcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpXTsKKyAgICBDYWxsVUlEZWxlZ2F0
ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZyYW1lOmV4Y2VlZGVkRGF0YWJhc2VRdW90
YUZvclNlY3VyaXR5T3JpZ2luOmRhdGFiYXNlOiksIGtpdCgmZnJhbWUpLCB3ZWJPcmlnaW4sIChO
U1N0cmluZyAqKWRhdGFiYXNlTmFtZSk7CiAgICAgW3dlYk9yaWdpbiByZWxlYXNlXTsKIAogICAg
IEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CkBAIC02ODIsMTEgKzY4MywxMSBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVk
KQogICAgIC8vIEZJWE1FOiBGcmVlIHNvbWUgc3BhY2UuCiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiBv
cmlnaW4sIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpy
ZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4s
IGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CiAKLSAgICBXZWJTZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tXZWJTZWN1cml0
eU9yaWdpbiBhbGxvY10gX2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOm9yaWdpbl07Cisg
ICAgV2ViU2VjdXJpdHlPcmlnaW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxs
b2NdIF9pbml0V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdpbjomb3JpZ2luXTsKICAgICBDYWxsVUlE
ZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmV4Y2VlZGVkQXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhRm9yU2VjdXJpdHlPcmlnaW46dG90YWxTcGFjZU5lZWRlZDopLCB3ZWJP
cmlnaW4sIHN0YXRpY19jYXN0PE5TVUludGVnZXI+KHRvdGFsU3BhY2VOZWVkZWQpKTsKICAgICBb
d2ViT3JpZ2luIHJlbGVhc2VdOwogCkBAIC03MDUsMTIgKzcwNiwxNCBAQCB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6YW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKLXN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBj
b25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQorCitzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2Vy
PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQm
IGNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKIHsKICAgICAvLyBGSVhNRTogSW1w
bGVtZW50IDxpbnB1dCB0eXBlPSdjb2xvcic+IGZvciBXSzEgKEJ1ZyAxMTkwOTQpLgogICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQorCiAjZW5kaWYKIAog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCkBAIC04NDgsMTQgKzg1MSwxNCBAQCBTdHJpbmcgV2Vi
Q2hyb21lQ2xpZW50OjpnZW5lcmF0ZVJlcGxhY2VtZW50RmlsZShjb25zdCBTdHJpbmcmIHBhdGgp
CiAgICAgcmV0dXJuIFtbbV93ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Om1f
d2ViVmlldyBnZW5lcmF0ZVJlcGxhY2VtZW50RmlsZTpwYXRoXTsKIH0KIAotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmVsZW1lbnREaWRGb2N1cyhjb25zdCBXZWJDb3JlOjpOb2RlKiBub2RlKQordm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRGb2N1cyhXZWJDb3JlOjpFbGVtZW50JiBlbGVt
ZW50KQogewotICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6
Zm9ybURpZEZvY3VzTm9kZTopLCBraXQoY29uc3RfY2FzdDxXZWJDb3JlOjpOb2RlKj4obm9kZSkp
KTsKKyAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZvcm1E
aWRGb2N1c05vZGU6KSwga2l0KCZlbGVtZW50KSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50
OjplbGVtZW50RGlkQmx1cihjb25zdCBXZWJDb3JlOjpOb2RlKiBub2RlKQordm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmVsZW1lbnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0g
ICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpmb3JtRGlkQmx1
ck5vZGU6KSwga2l0KGNvbnN0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KG5vZGUpKSk7CisgICAgQ2Fs
bFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpmb3JtRGlkQmx1ck5vZGU6
KSwga2l0KCZlbGVtZW50KSk7CiB9CiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVt
V3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCkBAIC04NzQsMTkgKzg3NywxOSBAQCBib29sIFdl
YkNocm9tZUNsaWVudDo6aGFzT3BlbmVkUG9wdXAoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQ
b3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8
V2ViQ29yZTo6UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJD
b3JlOjpQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKICNpZiAhUExBVEZPUk0oSU9T
KQotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51TWFjKGNsaWVudCkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFBvcHVwTWVudU1hYygmY2xpZW50KSk7CiAjZWxzZQogICAgIHJl
dHVybiBudWxscHRyOwogI2VuZGlmCiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVu
dT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBN
ZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudU1hYyhjbGllbnQpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTZWFyY2hQb3B1cE1lbnVNYWMoJmNsaWVudCkpOwogI2Vsc2UKICAgICBy
ZXR1cm4gbnVsbHB0cjsKICNlbmRpZgpAQCAtOTAyLDExICs5MDUsMTEgQEAgYm9vbCBXZWJDaHJv
bWVDbGllbnQ6OnNob3VsZFBhaW50RW50aXJlQ29udGVudHMoKSBjb25zdAogI2VuZGlmCiB9CiAK
LXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJh
bWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUmIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFw
aGljc0xheWVyKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIE5T
VmlldyAqZG9jdW1lbnRWaWV3ID0gW1traXQoZnJhbWUpIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3
XTsKKyAgICBOU1ZpZXcgKmRvY3VtZW50VmlldyA9IFtba2l0KCZmcmFtZSkgZnJhbWVWaWV3XSBk
b2N1bWVudFZpZXddOwogICAgIGlmICghW2RvY3VtZW50VmlldyBpc0tpbmRPZkNsYXNzOltXZWJI
VE1MVmlldyBjbGFzc11dKSB7CiAgICAgICAgIC8vIFdlIHNob3VsZCBuZXZlciBiZSBhdHRhY2hp
bmcgd2hlbiB3ZSBkb24ndCBoYXZlIGEgV2ViSFRNTFZpZXcuCiAgICAgICAgIEFTU0VSVCghZ3Jh
cGhpY3NMYXllcik7CkBAIC05MjEsNyArOTI0LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3JhcGgK
ICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVu
dDo6YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciop
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZy
YW1lJiwgR3JhcGhpY3NMYXllciopCiB7CiAgICAgLy8gRklYTUU6IElmIHdlIHdhbnQgdmlldy1y
ZWxhdGl2ZSBwYWdlIG92ZXJsYXlzIGluIExlZ2FjeSBXZWJLaXQsIHRoaXMgd291bGQgYmUgdGhl
IHBsYWNlIHRvIGhvb2sgdGhlbSB1cC4KIH0KQEAgLTk0MSw2ICs5NDQsNyBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKQogfQogCiAjaWYgRU5B
QkxFKFZJREVPKQorCiBib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNWaWRlb0Z1bGxzY3Jl
ZW4oSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKQogewogI2lmIFBM
QVRGT1JNKElPUykKQEAgLTk2NSw3ICs5NjksMTAgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4
aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWUK
ICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOyAgICAKIH0KIAotI2lmIFBMQVRGT1JNKE1B
QykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorI2VuZGlmIC8vIEVOQUJMRShW
SURFTykKKworI2lmIEVOQUJMRShWSURFTykgJiYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklE
RU9fUFJFU0VOVEFUSU9OX01PREUpCisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRVcFBsYXli
YWNrQ29udHJvbHNNYW5hZ2VyKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgW21f
d2ViVmlldyBfc2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlckZvck1lZGlhRWxlbWVudDplbGVt
ZW50XTsKQEAgLTk3NSw1NCArOTgyLDU1IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjbGVhclBs
YXliYWNrQ29udHJvbHNNYW5hZ2VyKCkKIHsKICAgICBbbV93ZWJWaWV3IF9jbGVhclBsYXliYWNr
Q29udHJvbHNNYW5hZ2VyXTsKIH0KLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCi0jZW5kaWYgLy8g
RU5BQkxFKFZJREVPKQorCisjZW5kaWYKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIAot
Ym9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3Qg
RWxlbWVudCogZWxlbWVudCwgYm9vbCB3aXRoS2V5Ym9hcmQpCitib29sIFdlYkNocm9tZUNsaWVu
dDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50LCBi
b29sIHdpdGhLZXlib2FyZCkKIHsKICAgICBTRUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmll
dzpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50OndpdGhLZXlib2FyZDopOwogICAgIGlmIChb
W21fd2ViVmlldyBVSURlbGVnYXRlXSByZXNwb25kc1RvU2VsZWN0b3I6c2VsZWN0b3JdKQotICAg
ICAgICByZXR1cm4gQ2FsbFVJRGVsZWdhdGVSZXR1cm5pbmdCb29sZWFuKGZhbHNlLCBtX3dlYlZp
ZXcsIHNlbGVjdG9yLCBraXQoY29uc3RfY2FzdDxXZWJDb3JlOjpFbGVtZW50Kj4oZWxlbWVudCkp
LCB3aXRoS2V5Ym9hcmQpOworICAgICAgICByZXR1cm4gQ2FsbFVJRGVsZWdhdGVSZXR1cm5pbmdC
b29sZWFuKGZhbHNlLCBtX3dlYlZpZXcsIHNlbGVjdG9yLCBraXQoY29uc3RfY2FzdDxXZWJDb3Jl
OjpFbGVtZW50Kj4oJmVsZW1lbnQpKSwgd2l0aEtleWJvYXJkKTsKICNpZiAhUExBVEZPUk0oSU9T
KQotICAgIHJldHVybiBbbV93ZWJWaWV3IF9zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50OmNv
bnN0X2Nhc3Q8V2ViQ29yZTo6RWxlbWVudCo+KGVsZW1lbnQpIHdpdGhLZXlib2FyZDp3aXRoS2V5
Ym9hcmRdOworICAgIHJldHVybiBbbV93ZWJWaWV3IF9zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVt
ZW50OmNvbnN0X2Nhc3Q8V2ViQ29yZTo6RWxlbWVudCo+KCZlbGVtZW50KSB3aXRoS2V5Ym9hcmQ6
d2l0aEtleWJvYXJkXTsKICNlbHNlCiAgICAgcmV0dXJuIE5POwogI2VuZGlmCiB9CiAKLXZvaWQg
V2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1l
bnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVt
ZW50JiBlbGVtZW50KQogewogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OmVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6bGlzdGVuZXI6KTsKICAgICBpZiAoW1ttX3dlYlZpZXcg
VUlEZWxlZ2F0ZV0gcmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkgewotICAgICAgICBXZWJL
aXRGdWxsU2NyZWVuTGlzdGVuZXIqIGxpc3RlbmVyID0gW1tXZWJLaXRGdWxsU2NyZWVuTGlzdGVu
ZXIgYWxsb2NdIGluaXRXaXRoRWxlbWVudDplbGVtZW50XTsKLSAgICAgICAgQ2FsbFVJRGVsZWdh
dGUobV93ZWJWaWV3LCBzZWxlY3Rvciwga2l0KGVsZW1lbnQpLCBsaXN0ZW5lcik7CisgICAgICAg
IFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciogbGlzdGVuZXIgPSBbW1dlYktpdEZ1bGxTY3JlZW5M
aXN0ZW5lciBhbGxvY10gaW5pdFdpdGhFbGVtZW50OiZlbGVtZW50XTsKKyAgICAgICAgQ2FsbFVJ
RGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3Rvciwga2l0KCZlbGVtZW50KSwgbGlzdGVuZXIpOwog
ICAgICAgICBbbGlzdGVuZXIgcmVsZWFzZV07CiAgICAgfQogI2lmICFQTEFURk9STShJT1MpCiAg
ICAgZWxzZQotICAgICAgICBbbV93ZWJWaWV3IF9lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50OmVs
ZW1lbnRdOworICAgICAgICBbbV93ZWJWaWV3IF9lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50OiZl
bGVtZW50XTsKICNlbmRpZgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhp
dEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgU0VMIHNlbGVj
dG9yID0gQHNlbGVjdG9yKHdlYlZpZXc6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50Omxpc3RlbmVy
Oik7CiAgICAgaWYgKFtbbV93ZWJWaWV3IFVJRGVsZWdhdGVdIHJlc3BvbmRzVG9TZWxlY3Rvcjpz
ZWxlY3Rvcl0pIHsKLSAgICAgICAgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyKiBsaXN0ZW5lciA9
IFtbV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aEVsZW1lbnQ6ZWxlbWVu
dF07Ci0gICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIGtpdChlbGVt
ZW50KSwgbGlzdGVuZXIpOworICAgICAgICBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIqIGxpc3Rl
bmVyID0gW1tXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoRWxlbWVudDom
ZWxlbWVudF07CisgICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIGtp
dCgmZWxlbWVudCksIGxpc3RlbmVyKTsKICAgICAgICAgW2xpc3RlbmVyIHJlbGVhc2VdOwogICAg
IH0KICNpZiAhUExBVEZPUk0oSU9TKQogICAgIGVsc2UKLSAgICAgICAgW21fd2ViVmlldyBfZXhp
dEZ1bGxTY3JlZW5Gb3JFbGVtZW50OmVsZW1lbnRdOworICAgICAgICBbbV93ZWJWaWV3IF9leGl0
RnVsbFNjcmVlbkZvckVsZW1lbnQ6JmVsZW1lbnRdOwogI2VuZGlmCiB9CiAKICNlbmRpZiAvLyBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKwogYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OndyYXBDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBr
ZXksIFZlY3Rvcjx1aW50OF90PiYgd3JhcHBlZEtleSkgY29uc3QKIHsKICAgICBWZWN0b3I8dWlu
dDhfdD4gbWFzdGVyS2V5OwpAQCAtMTA0OCw5ICsxMDU2LDExIEBAIGJvb2wgV2ViQ2hyb21lQ2xp
ZW50Ojp1bndyYXBDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB3cmFwcGVkS2V5LCBW
ZWN0b3I8CiAKICAgICByZXR1cm4gdW53cmFwU2VyaWFsaXplZENyeXB0b0tleShtYXN0ZXJLZXks
IHdyYXBwZWRLZXksIGtleSk7CiB9CisKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09O
VFJPTFMpCisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xp
Y2soV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIHRlbGVwaG9uZU51bWJlcnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCkKIHsK
ICAgICBbbV93ZWJWaWV3IF9zZWxlY3Rpb25TZXJ2aWNlQ29udHJvbGxlcl0uaGFuZGxlU2VsZWN0
aW9uU2VydmljZUNsaWNrKHNlbGVjdGlvbiwgdGVsZXBob25lTnVtYmVycywgcG9pbnQpOwpAQCAt
MTA2NCw2ICsxMDc0LDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6Omhhc1JlbGV2YW50U2VsZWN0
aW9uU2VydmljZXMoYm9vbCBpc1RleHRPbmx5KSBjb25zdAogI2VuZGlmCiAKICNpZiBFTkFCTEUo
V0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TKQorCiB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6YWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QgY29udGV4
dElkKQogewogICAgIFttX3dlYlZpZXcgX2FkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50OmNv
bnRleHRJZF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCBiZWI3YjMw
OWNhNmNkZDgzM2NkYWZkYjA0ZmIxOTJhNGRjYjI2NGQ1Li4zOGE0Y2VjYjE3NjExNDE3Zjc5OGU4
ODRmMDRlYWI5MmIzMTI0MmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0K
QEAgLTMwMiwxNCArMzAyLDE0IEBAICsgKFJlZjxXZWJDb3JlOjpGcmFtZT4pX2NyZWF0ZUZyYW1l
V2l0aFBhZ2U6KFBhZ2UqKXBhZ2UgZnJhbWVOYW1lOihjb25zdCBTdHJpbmcmCiAgICAgV2ViVmll
dyAqd2ViVmlldyA9IGtpdChwYWdlKTsKIAogICAgIFdlYkZyYW1lICpmcmFtZSA9IFtbc2VsZiBh
bGxvY10gX2luaXRXaXRoV2ViRnJhbWVWaWV3OmZyYW1lVmlldyB3ZWJWaWV3OndlYlZpZXddOwot
ICAgIFJlZjxXZWJDb3JlOjpGcmFtZT4gY29yZUZyYW1lID0gRnJhbWU6OmNyZWF0ZShwYWdlLCBv
d25lckVsZW1lbnQsIG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudChmcmFtZSkpOworICAgIGF1dG8g
Y29yZUZyYW1lID0gRnJhbWU6OmNyZWF0ZShwYWdlLCBvd25lckVsZW1lbnQsIG5ldyBXZWJGcmFt
ZUxvYWRlckNsaWVudChmcmFtZSkpOwogICAgIFtmcmFtZSByZWxlYXNlXTsKICAgICBmcmFtZS0+
X3ByaXZhdGUtPmNvcmVGcmFtZSA9IGNvcmVGcmFtZS5wdHIoKTsKIAogICAgIGNvcmVGcmFtZS5n
ZXQoKS50cmVlKCkuc2V0TmFtZShuYW1lKTsKICAgICBpZiAob3duZXJFbGVtZW50KSB7CiAgICAg
ICAgIEFTU0VSVChvd25lckVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSk7Ci0gICAgICAgIG93
bmVyRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpLT50cmVlKCkuYXBwZW5kQ2hpbGQoY29yZUZy
YW1lLnB0cigpKTsKKyAgICAgICAgb3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCktPnRy
ZWUoKS5hcHBlbmRDaGlsZChjb3JlRnJhbWUuZ2V0KCkpOwogICAgIH0KIAogICAgIGNvcmVGcmFt
ZS5nZXQoKS5pbml0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmNwcApp
bmRleCAxNGU5NzEwZDE1ZDc5YmYzYjU1YzQwMDllNTY2ODRhMGVlM2Q3ODM3Li4yOTgxNTNkZjNj
NGFkN2Y3NGFiMjVmOTgwOWJmZGRiMjJkODA3Mzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAKQEAgLTU5Myw3ICs1OTMsNyBAQCBOUEVycm9yIFBsdWdpblZpZXc6
OmRlc3Ryb3lTdHJlYW0oTlBTdHJlYW0qIHN0cmVhbSwgTlBSZWFzb24gcmVhc29uKQogdm9pZCBQ
bHVnaW5WaWV3OjpzdGF0dXMoY29uc3QgY2hhciogbWVzc2FnZSkKIHsKICAgICBpZiAoUGFnZSog
cGFnZSA9IG1fcGFyZW50RnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+Y2hyb21lKCkuc2V0
U3RhdHVzYmFyVGV4dChtX3BhcmVudEZyYW1lLmdldCgpLCBTdHJpbmc6OmZyb21VVEY4KG1lc3Nh
Z2UpKTsKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dCgqbV9wYXJlbnRG
cmFtZSwgU3RyaW5nOjpmcm9tVVRGOChtZXNzYWdlKSk7CiB9CiAKIE5QRXJyb3IgUGx1Z2luVmll
dzo6c2V0VmFsdWUoTlBQVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQpAQCAtNzkzLDcg
Kzc5Myw3IEBAIFBsdWdpblZpZXc6OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25z
dCBJbnRTaXplJiBzaXplLCBQbHVnaW5QYWNrYWdlKiBwCiB2b2lkIFBsdWdpblZpZXc6OmZvY3Vz
UGx1Z2luRWxlbWVudCgpCiB7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX3BhcmVudEZyYW1lLT5w
YWdlKCkpCi0gICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50
KG1fZWxlbWVudCwgbV9wYXJlbnRGcmFtZSk7CisgICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxl
cigpLnNldEZvY3VzZWRFbGVtZW50KG1fZWxlbWVudCwgKm1fcGFyZW50RnJhbWUpOwogICAgIGVs
c2UKICAgICAgICAgbV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZEVsZW1lbnQo
bV9lbGVtZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGE3NzNiMWFiMTQxNzRlMDIwYzYyZDlkMDQ3ODZk
MmEyODIxY2I3ODQuLmFiNjUxNDQ0ZjkyMTlhNjc3NmJmODdlYjE4YjI4MWNiZDI0MTIwYzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcApAQCAtMTg5LDE1ICsxODksMTUgQEAgc3RhdGljIENPTVB0cjxJUHJvcGVydHlCYWc+
IGNyZWF0ZVdpbmRvd0ZlYXR1cmVzUHJvcGVydHlCYWcoY29uc3QgV2luZG93RmVhdHVyZXMKICAg
ICByZXR1cm4gQ09NUHRyPElQcm9wZXJ0eUJhZz4oQWRvcHRDT00sIENPTVByb3BlcnR5QmFnPENP
TVZhcmlhbnQ+OjphZG9wdChtYXApKTsKIH0KIAotUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVXaW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2lu
ZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aW9u
QWN0aW9uKQorUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUmIGZyYW1l
LCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVz
LCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQogewogICAgIENPTVB0
cjxJV2ViVUlEZWxlZ2F0ZT4gZGVsZWdhdGUgPSB1aURlbGVnYXRlKCk7CiAgICAgaWYgKCFkZWxl
Z2F0ZSkKICAgICAgICAgcmV0dXJuIDA7CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0g
ICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpICYmIGZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRDdXJy
ZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkKLSAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPndlYmtp
dENhbmNlbEZ1bGxTY3JlZW4oKTsKKyAgICBpZiAoZnJhbWUuZG9jdW1lbnQoKSAmJiBmcmFtZS5k
b2N1bWVudCgpLT53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkKKyAgICAgICAgZnJh
bWUuZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOwogI2VuZGlmCiAKICAgICBD
T01QdHI8V2ViTXV0YWJsZVVSTFJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9wdENPTShXZWJNdXRhYmxl
VVJMUmVxdWVzdDo6Y3JlYXRlSW5zdGFuY2UoUmVzb3VyY2VSZXF1ZXN0KG5hdmlnYXRpb25BY3Rp
b24udXJsKCkpKSk7CkBAIC0zNjEsMTIgKzM2MSwxMiBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6
Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAK
LWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBGcmFtZSogZnJhbWUpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmIGZy
YW1lKQogewogICAgIEJPT0wgcmVzdWx0ID0gVFJVRTsKICAgICBJV2ViVUlEZWxlZ2F0ZSogdWk7
CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpKSkgJiYgdWkpIHsK
LSAgICAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0ga2l0KGZyYW1lKTsKKyAgICAgICAgV2ViRnJh
bWUqIHdlYkZyYW1lID0ga2l0KCZmcmFtZSk7CiAgICAgICAgIHVpLT5ydW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWxXaXRoTWVzc2FnZShtX3dlYlZpZXcsIEJTdHJpbmcobWVzc2FnZSksIHdlYkZy
YW1lLCAmcmVzdWx0KTsKICAgICAgICAgdWktPlJlbGVhc2UoKTsKICAgICB9CkBAIC0zOTMsMTQg
KzM5MywxNCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xvc2VXaW5kb3dTb29uKCkKICAgICBt
X3dlYlZpZXctPmNsb3NlV2luZG93U29vbigpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6
cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKIHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpOwogICAgIGlmIChTVUND
RUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aSkpKQogICAgICAgICB1aS0+cnVuSmF2YVNj
cmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZShtX3dlYlZpZXcsIEJTdHJpbmcobWVzc2FnZSkpOwog
fQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlw
dENvbmZpcm0oRnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgQk9PTCByZXN1
bHQgPSBGQUxTRTsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpOwpAQCAtNDA5LDcgKzQw
OSw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSos
IGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICByZXR1cm4gISFyZXN1bHQ7CiB9CiAKLWJvb2wg
V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCiti
b29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSYsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0
KQogewogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWk7CiAgICAgaWYgKEZBSUxFRChtX3dl
YlZpZXctPnVpRGVsZWdhdGUoJnVpKSkpCkBAIC01MDgsNyArNTA4LDcgQEAgUGxhdGZvcm1QYWdl
Q2xpZW50IFdlYkNocm9tZUNsaWVudDo6cGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QKICAgICBy
ZXR1cm4gdmlld1dpbmRvdzsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6
ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJbnRTaXplJikgY29uc3QKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0CiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTU0MCw3ICs1NDAsNyBAQCBib29sIFdlYkNo
cm9tZUNsaWVudDo6c2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVy
RW1iZWRkZWRPYmplYwogICAgIHJldHVybiB1aURlbGVnYXRlUHJpdmF0ZTM7CiB9CiAKLXZvaWQg
V2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCog
ZWxlbWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29u
IHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJF
bWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFi
aWxpdHlSZWFzb24pIGNvbnN0CiB7CiAgICAgQVNTRVJUX1VOVVNFRChwbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbiwgcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gPT0gUmVuZGVyRW1iZWRkZWRP
YmplY3Q6OlBsdWdpbk1pc3NpbmcpOwogCkBAIC01NTIsNyArNTUyLDcgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50KiBlbGVtZW50
LCBSZW5kZXJFbWIKICAgICBpZiAoIXVpRGVsZWdhdGVQcml2YXRlMykKICAgICAgICAgcmV0dXJu
OwogCi0gICAgQ09NUHRyPElET01FbGVtZW50PiBlKEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVh
dGVJbnN0YW5jZShlbGVtZW50KSk7CisgICAgQ09NUHRyPElET01FbGVtZW50PiBlKEFkb3B0Q09N
LCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZSgmZWxlbWVudCkpOwogICAgIHVpRGVsZWdhdGVQ
cml2YXRlMy0+ZGlkUHJlc3NNaXNzaW5nUGx1Z2luQnV0dG9uKGUuZ2V0KCkpOwogfQogCkBAIC01
NjEsMjEgKzU2MSwyMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VG9vbFRpcChjb25zdCBT
dHJpbmcmIHRvb2xUaXAsIFRleHREaXJlY3Rpb24pCiAgICAgbV93ZWJWaWV3LT5zZXRUb29sVGlw
KHRvb2xUaXApOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1l
KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lJiBmcmFtZSkKIHsKICAgICBDT01Q
dHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdhdGU7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZp
ZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUpKSkKLSAgICAgICAgdWlEZWxlZ2F0ZS0+cHJpbnRG
cmFtZShtX3dlYlZpZXcsIGtpdChmcmFtZSkpOworICAgICAgICB1aURlbGVnYXRlLT5wcmludEZy
YW1lKG1fd2ViVmlldywga2l0KCZmcmFtZSkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6
ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFz
ZUlkZW50aWZpZXIsIERhdGFiYXNlRGV0YWlscykKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNl
ZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRl
bnRpZmllciwgRGF0YWJhc2VEZXRhaWxzKQogewotICAgIENPTVB0cjxXZWJTZWN1cml0eU9yaWdp
bj4gb3JpZ2luKEFkb3B0Q09NLCBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlSW5zdGFuY2UoJmZy
YW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSk7CisgICAgQ09NUHRyPFdlYlNlY3Vy
aXR5T3JpZ2luPiBvcmlnaW4oQWRvcHRDT00sIFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVJbnN0
YW5jZSgmZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkpOwogICAgIENPTVB0cjxJ
V2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+
dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CiAgICAgICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0
ZVByaXZhdGU+IHVpRGVsZWdhdGVQcml2YXRlKFF1ZXJ5LCB1aURlbGVnYXRlKTsKICAgICAgICAg
aWYgKHVpRGVsZWdhdGVQcml2YXRlKQotICAgICAgICAgICAgdWlEZWxlZ2F0ZVByaXZhdGUtPmV4
Y2VlZGVkRGF0YWJhc2VRdW90YShtX3dlYlZpZXcsIGtpdChmcmFtZSksIG9yaWdpbi5nZXQoKSwg
QlN0cmluZyhkYXRhYmFzZUlkZW50aWZpZXIpKTsKKyAgICAgICAgICAgIHVpRGVsZWdhdGVQcml2
YXRlLT5leGNlZWRlZERhdGFiYXNlUXVvdGEobV93ZWJWaWV3LCBraXQoJmZyYW1lKSwgb3JpZ2lu
LmdldCgpLCBCU3RyaW5nKGRhdGFiYXNlSWRlbnRpZmllcikpOwogICAgICAgICBlbHNlIHsKICAg
ICAgICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyB3b3JrYXJvdW5kIG9uY2Ugc2hpcHBpbmcg
U2FmYXJpIGhhcyB0aGUgbmVjZXNzYXJ5IGRlbGVnYXRlIGltcGxlbWVudGVkLgogICAgICAgICAg
ICAgV0NIQVIgcGF0aFtNQVhfUEFUSF07CkBAIC02MTMsNyArNjEzLDcgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkKICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3QpCit2b2lk
IFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1
cml0eU9yaWdpbiYsIGludDY0X3QpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTcx
NywxMiArNzE3LDEyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRMYXN0U2V0Q3Vyc29yVG9D
dXJyZW50Q3Vyc29yKCkKICAgICBtX3dlYlZpZXctPnNldExhc3RDdXJzb3IoOjpHZXRDdXJzb3Io
KSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihG
cmFtZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKiBn
cmFwaGljc0xheWVyKQogewogICAgIG1fd2ViVmlldy0+c2V0Um9vdENoaWxkTGF5ZXIoZ3JhcGhp
Y3NMYXllcik7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdy
YXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikK
IHsKICAgICAvLyBGSVhNRTogSWYgd2Ugd2FudCB2aWV3LXJlbGF0aXZlIHBhZ2Ugb3ZlcmxheXMg
aW4gTGVnYWN5IFdlYktpdCBvbiBXaW5kb3dzLCB0aGlzIHdvdWxkIGJlIHRoZSBwbGFjZSB0byBo
b29rIHRoZW0gdXAuCiB9CkBAIC03NTMsNyArNzUzLDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6
OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxs
c2MKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlk
ZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVu
dCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxl
bWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIEhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZSkKIHsKICAgICBtX3dlYlZpZXctPmVudGVyVmlkZW9GdWxs
c2NyZWVuRm9yVmlkZW9FbGVtZW50KHZpZGVvRWxlbWVudCk7CiB9CkBAIC03ODEsNTkgKzc4MSw2
MSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6aGFzT3BlbmVkUG9wdXAoKSBjb25zdAogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotUmVmUHRyPFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8UG9wdXBN
ZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmIGNs
aWVudCkgY29uc3QKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudVdpbihjbGll
bnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudVdpbigmY2xpZW50KSk7CiB9
CiAKLVJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNo
UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUmVmUHRyPFNlYXJjaFBv
cHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQ
b3B1cE1lbnVXaW4oY2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1
cE1lbnVXaW4oJmNsaWVudCkpOwogfQogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxl
bWVudCogZWxlbWVudCwgYm9vbCByZXF1ZXN0aW5nS2V5Ym9hcmRBY2Nlc3MpCisKK2Jvb2wgV2Vi
Q2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQm
IGVsZW1lbnQsIGJvb2wgcmVxdWVzdGluZ0tleWJvYXJkQWNjZXNzKQogewogICAgIENPTVB0cjxJ
V2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+
dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CiAgICAgICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0
ZVByaXZhdGU0PiB1aURlbGVnYXRlUHJpdmF0ZTQoUXVlcnksIHVpRGVsZWdhdGUpOwogICAgICAg
ICBCT09MIHN1cHBvcnRzID0gRkFMU0U7Ci0gICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9t
RWxlbWVudChBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoY29uc3RfY2FzdDxF
bGVtZW50Kj4oZWxlbWVudCkpKTsKKyAgICAgICAgQ09NUHRyPElET01FbGVtZW50PiBkb21FbGVt
ZW50KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZShjb25zdF9jYXN0PEVsZW1l
bnQqPigmZWxlbWVudCkpKTsKIAogICAgICAgICBpZiAodWlEZWxlZ2F0ZVByaXZhdGU0ICYmIFNV
Q0NFRURFRCh1aURlbGVnYXRlUHJpdmF0ZTQtPnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQo
ZG9tRWxlbWVudC5nZXQoKSwgcmVxdWVzdGluZ0tleWJvYXJkQWNjZXNzLCAmc3VwcG9ydHMpKSkK
ICAgICAgICAgICAgIHJldHVybiBzdXBwb3J0czsKICAgICB9CiAKLSAgICByZXR1cm4gbV93ZWJW
aWV3LT5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQsIHJlcXVlc3RpbmdLZXli
b2FyZEFjY2Vzcyk7CisgICAgcmV0dXJuIG1fd2ViVmlldy0+c3VwcG9ydHNGdWxsU2NyZWVuRm9y
RWxlbWVudCgmZWxlbWVudCwgcmVxdWVzdGluZ0tleWJvYXJkQWNjZXNzKTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVu
dCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1l
bnQmIGVsZW1lbnQpCiB7CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOwog
ICAgIGlmIChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkpIHsK
ICAgICAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlUHJpdmF0ZTQ+IHVpRGVsZWdhdGVQcml2YXRl
NChRdWVyeSwgdWlEZWxlZ2F0ZSk7Ci0gICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxl
bWVudChBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoZWxlbWVudCkpOworICAg
ICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00sIERPTUVsZW1lbnQ6
OmNyZWF0ZUluc3RhbmNlKCZlbGVtZW50KSk7CiAgICAgICAgIGlmICh1aURlbGVnYXRlUHJpdmF0
ZTQgJiYgU1VDQ0VFREVEKHVpRGVsZWdhdGVQcml2YXRlNC0+ZW50ZXJGdWxsU2NyZWVuRm9yRWxl
bWVudChkb21FbGVtZW50LmdldCgpKSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfSAKIAot
ICAgIG1fd2ViVmlldy0+c2V0RnVsbFNjcmVlbkVsZW1lbnQoZWxlbWVudCk7CisgICAgbV93ZWJW
aWV3LT5zZXRGdWxsU2NyZWVuRWxlbWVudCgmZWxlbWVudCk7CiAgICAgbV93ZWJWaWV3LT5mdWxs
U2NyZWVuQ29udHJvbGxlcigpLT5lbnRlckZ1bGxTY3JlZW4oKTsKIH0KIAotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQordm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50JiBlbGVt
ZW50KQogewogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICBpZiAo
U1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CiAgICAgICAg
IENPTVB0cjxJV2ViVUlEZWxlZ2F0ZVByaXZhdGU0PiB1aURlbGVnYXRlUHJpdmF0ZTQoUXVlcnks
IHVpRGVsZWdhdGUpOwotICAgICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRv
cHRDT00sIERPTUVsZW1lbnQ6OmNyZWF0ZUluc3RhbmNlKGVsZW1lbnQpKTsKKyAgICAgICAgQ09N
UHRyPElET01FbGVtZW50PiBkb21FbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJ
bnN0YW5jZSgmZWxlbWVudCkpOwogICAgICAgICBpZiAodWlEZWxlZ2F0ZVByaXZhdGU0ICYmIFNV
Q0NFRURFRCh1aURlbGVnYXRlUHJpdmF0ZTQtPmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChkb21F
bGVtZW50LmdldCgpKSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJU
KGVsZW1lbnQgPT0gbV93ZWJWaWV3LT5mdWxsU2NyZWVuRWxlbWVudCgpKTsKKyAgICBBU1NFUlQo
JmVsZW1lbnQgPT0gbV93ZWJWaWV3LT5mdWxsU2NyZWVuRWxlbWVudCgpKTsKICAgICBtX3dlYlZp
ZXctPmZ1bGxTY3JlZW5Db250cm9sbGVyKCktPmV4aXRGdWxsU2NyZWVuKCk7CiB9CisKICNlbmRp
ZgogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6QVhTdGFydEZyYW1lTG9hZCgpCkBAIC04NTIsMTAg
Kzg1NCwxMCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6QVhGaW5pc2hGcmFtZUxvYWQoKQogICAg
ICAgICBkZWxlZ2F0ZS0+ZmlyZUZyYW1lTG9hZEZpbmlzaGVkRXZlbnRzKCk7CiB9CiAKLWJvb2wg
V2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3Qg
RnJhbWVWaWV3KiBmcmFtZVZpZXcpIGNvbnN0Citib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxk
VXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaWV3KSBj
b25zdAogewogI2lmICFVU0UoQ0FJUk8pCi0gICAgcmV0dXJuIGZyYW1lVmlldyAmJiBmcmFtZVZp
ZXctPmZyYW1lKCkuaXNNYWluRnJhbWUoKTsKKyAgICByZXR1cm4gZnJhbWVWaWV3LmZyYW1lKCku
aXNNYWluRnJhbWUoKTsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4
IDkyODcyYjQxYzEyZmIzMTVlNTQxZWNiZGI5NWRiY2IxNTY2MjcyZGMuLjE4MzEyZDZiYzQ0YzY3
Y2Q4NDEyNDAxOTA4ZmJkNjQxOGVlNjI1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNywxMzcgKzM3LDEzNyBAQCBj
bGFzcyBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOwogCiBpbnRlcmZhY2UgSVdlYlVJ
RGVsZWdhdGU7CiAKLWNsYXNzIFdlYkNocm9tZUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpDaHJv
bWVDbGllbnQgeworY2xhc3MgV2ViQ2hyb21lQ2xpZW50IGZpbmFsIDogcHVibGljIFdlYkNvcmU6
OkNocm9tZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgV2ViQ2hyb21lQ2xpZW50KFdlYlZpZXcqKTsK
IAotICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKKyAgICB2b2lkIGNocm9tZURl
c3Ryb3llZCgpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3Qg
V2ViQ29yZTo6RmxvYXRSZWN0Jik7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2lu
ZG93UmVjdCgpOworICAgIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93UmVjdCgpIGZpbmFsOwog
ICAgIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHBhZ2VSZWN0KCk7CisgICAgV2Vi
Q29yZTo6RmxvYXRSZWN0IHBhZ2VSZWN0KCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZm9j
dXMoKTsKLSAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpOworICAgIHZvaWQgZm9jdXMoKSBmaW5h
bDsKKyAgICB2b2lkIHVuZm9jdXMoKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtl
Rm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pOwotICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9j
dXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pOworICAgIGJvb2wgY2FuVGFrZUZvY3VzKFdlYkNv
cmU6OkZvY3VzRGlyZWN0aW9uKSBmaW5hbDsKKyAgICB2b2lkIHRha2VGb2N1cyhXZWJDb3JlOjpG
b2N1c0RpcmVjdGlvbikgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEVsZW1lbnRD
aGFuZ2VkKFdlYkNvcmU6OkVsZW1lbnQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEZyYW1l
Q2hhbmdlZChXZWJDb3JlOjpGcmFtZSopOworICAgIHZvaWQgZm9jdXNlZEVsZW1lbnRDaGFuZ2Vk
KFdlYkNvcmU6OkVsZW1lbnQqKSBmaW5hbDsKKyAgICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQo
V2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6UGFnZSogY3Jl
YXRlV2luZG93KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVz
dCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdh
dGlvbkFjdGlvbiYpOwotICAgIHZpcnR1YWwgdm9pZCBzaG93KCk7CisgICAgV2ViQ29yZTo6UGFn
ZSogY3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6RnJhbWVMb2Fk
UmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6
TmF2aWdhdGlvbkFjdGlvbiYpIGZpbmFsOworICAgIHZvaWQgc2hvdygpIGZpbmFsOwogCi0gICAg
dmlydHVhbCBib29sIGNhblJ1bk1vZGFsKCk7Ci0gICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsKCk7
CisgICAgYm9vbCBjYW5SdW5Nb2RhbCgpIGZpbmFsOworICAgIHZvaWQgcnVuTW9kYWwoKSBmaW5h
bDsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFyc1Zpc2libGUoYm9vbCk7Ci0gICAgdmly
dHVhbCBib29sIHRvb2xiYXJzVmlzaWJsZSgpOworICAgIHZvaWQgc2V0VG9vbGJhcnNWaXNpYmxl
KGJvb2wpIGZpbmFsOworICAgIGJvb2wgdG9vbGJhcnNWaXNpYmxlKCkgZmluYWw7CiAgICAgCi0g
ICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclZpc2libGUoYm9vbCk7Ci0gICAgdmlydHVhbCBi
b29sIHN0YXR1c2JhclZpc2libGUoKTsKKyAgICB2b2lkIHNldFN0YXR1c2JhclZpc2libGUoYm9v
bCkgZmluYWw7CisgICAgYm9vbCBzdGF0dXNiYXJWaXNpYmxlKCkgZmluYWw7CiAgICAgCi0gICAg
dmlydHVhbCB2b2lkIHNldFNjcm9sbGJhcnNWaXNpYmxlKGJvb2wpOwotICAgIHZpcnR1YWwgYm9v
bCBzY3JvbGxiYXJzVmlzaWJsZSgpOworICAgIHZvaWQgc2V0U2Nyb2xsYmFyc1Zpc2libGUoYm9v
bCkgZmluYWw7CisgICAgYm9vbCBzY3JvbGxiYXJzVmlzaWJsZSgpIGZpbmFsOwogICAgIAotICAg
IHZpcnR1YWwgdm9pZCBzZXRNZW51YmFyVmlzaWJsZShib29sKTsKLSAgICB2aXJ0dWFsIGJvb2wg
bWVudWJhclZpc2libGUoKTsKKyAgICB2b2lkIHNldE1lbnViYXJWaXNpYmxlKGJvb2wpIGZpbmFs
OworICAgIGJvb2wgbWVudWJhclZpc2libGUoKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBz
ZXRSZXNpemFibGUoYm9vbCk7CisgICAgdm9pZCBzZXRSZXNpemFibGUoYm9vbCkgZmluYWw7CiAK
LSAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShKU0M6Ok1lc3NhZ2VTb3VyY2Us
IEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQg
bGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBXVEY6OlN0cmluZyYgdXJs
KTsKKyAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6
Ok1lc3NhZ2VMZXZlbCwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVO
dW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgV1RGOjpTdHJpbmcmIHVybCkgZmlu
YWw7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCk7
Ci0gICAgdmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBXVEY6
OlN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUqIGZyYW1lKTsKKyAgICBib29sIGNhblJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpIGZpbmFsOworICAgIGJvb2wgcnVuQmVmb3JlVW5s
b2FkQ29uZmlybVBhbmVsKGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFt
ZSYpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGNsb3NlV2luZG93U29vbigpOworICAgIHZv
aWQgY2xvc2VXaW5kb3dTb29uKCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcnVuSmF2YVNj
cmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAgICB2aXJ0
dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6
OlN0cmluZyYpOwotICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6
OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBk
ZWZhdWx0VmFsdWUsIFdURjo6U3RyaW5nJiByZXN1bHQpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRT
dGF0dXNiYXJUZXh0KGNvbnN0IFdURjo6U3RyaW5nJik7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0
QWxlcnQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXVEY6OlN0cmluZyYpIGZpbmFsOworICAgIGJv
b2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXVEY6OlN0cmlu
ZyYpIGZpbmFsOworICAgIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSYs
IGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVmYXVsdFZh
bHVlLCBXVEY6OlN0cmluZyYgcmVzdWx0KSBmaW5hbDsKKyAgICB2b2lkIHNldFN0YXR1c2JhclRl
eHQoY29uc3QgV1RGOjpTdHJpbmcmKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6S2V5
Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKTsKKyAgICBXZWJDb3JlOjpLZXlib2FyZFVJTW9k
ZSBrZXlib2FyZFVJTW9kZSgpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVS
b290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgdmlydHVhbCB2b2lkIGludmFs
aWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0Jik7Ci0gICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBzY3JvbGxEZWx0YSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCk7CisgICAgdm9pZCBpbnZhbGlkYXRlUm9v
dFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0
ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOworICAg
IHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JikgZmluYWw7CisgICAgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Ny
b2xsRGVsdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgY2xpcFJlY3QpIGZpbmFsOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpJ
bnRQb2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Q7
Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYpIGNvbnN0OwotICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBs
YXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVD
aGFuZ2VkKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0Owor
ICAgIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmKSBjb25zdCBmaW5hbDsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IHJvb3RWaWV3VG9TY3Jl
ZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IGZpbmFsOworICAgIFBsYXRmb3JtUGFn
ZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGNvbnRl
bnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJikg
Y29uc3QgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2Uo
KSBjb25zdCB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29u
c3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwotICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihXZWJD
b3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNv
bnN0OwotICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2Vi
Q29yZTo6RWxlbWVudCosIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2
YWlsYWJpbGl0eVJlYXNvbikgY29uc3Q7CisgICAgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5n
ZSgpIGNvbnN0IGZpbmFsIHsgfQorICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29u
c3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIGZpbmFs
OworICAgIGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29y
ZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25z
dCBmaW5hbDsKKyAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3Jl
OjpFbGVtZW50JiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxh
YmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlw
KGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbik7CisgICAgdm9pZCBz
ZXRUb29sVGlwKGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgZmlu
YWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKTsKKyAgICB2b2lk
IHByaW50KFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZXhjZWVk
ZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJD
b3JlOjpEYXRhYmFzZURldGFpbHMpOworICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdl
YkNvcmU6OkZyYW1lJiwgY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJDb3JlOjpEYXRhYmFzZURldGFp
bHMpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50
NjRfdCBzcGFjZU5lZWRlZCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3Bh
Y2VOZWVkZWQpOworICAgIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNl
TmVlZGVkKSBmaW5hbDsKKyAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpIGZp
bmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSYsIFdl
YkNvcmU6OkZpbGVDaG9vc2VyJik7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMo
Y29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJik7Cisg
ICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpGaWxlQ2hvb3Nl
ciYpIGZpbmFsOworICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpT
dHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXImKSBmaW5hbDsKIAotICAgIHZpcnR1YWwg
dm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJik7Ci0gICAgdmlydHVhbCB2b2lk
IHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpOworICAgIHZvaWQgc2V0Q3Vyc29yKGNv
bnN0IFdlYkNvcmU6OkN1cnNvciYpIGZpbmFsOworICAgIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50
aWxNb3VzZU1vdmVzKGJvb2wpIGZpbmFsOworICAgIHZvaWQgc2V0TGFzdFNldEN1cnNvclRvQ3Vy
cmVudEN1cnNvcigpIGZpbmFsOwogCiAgICAgLy8gUGFzcyAwIGFzIHRoZSBHcmFwaGljc0xheWVy
IHRvIGRldGF0Y2ggdGhlIHJvb3QgbGF5ZXIuCi0gICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RH
cmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwot
ICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwg
V2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZvaWQgYXR0YWNoUm9vdEdy
YXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmlu
YWw7CisgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJh
bWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7CiAgICAgLy8gU2V0cyBhIGZsYWcg
dG8gc3BlY2lmeSB0aGF0IHRoZSBuZXh0IHRpbWUgY29udGVudCBpcyBkcmF3biB0byB0aGUgd2lu
ZG93LAogICAgIC8vIHRoZSBjaGFuZ2VzIGFwcGVhciBvbiB0aGUgc2NyZWVuIGluIHN5bmNocm9u
eSB3aXRoIHVwZGF0ZXMgdG8gR3JhcGhpY3NMYXllcnMuCi0gICAgdmlydHVhbCB2b2lkIHNldE5l
ZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSB7IH0KKyAgICB2b2lkIHNldE5lZWRz
T25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSBmaW5hbCB7IH0KICAgICAvLyBTZXRzIGEg
ZmxhZyB0byBzcGVjaWZ5IHRoYXQgdGhlIHZpZXcgbmVlZHMgdG8gYmUgdXBkYXRlZCwgc28gd2Ug
bmVlZAogICAgIC8vIHRvIGRvIGFuIGVhZ2VyIGxheW91dCBiZWZvcmUgdGhlIGRyYXdpbmcuCi0g
ICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAgdm9p
ZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIGZpbmFsOwogCiAjaWYgUExBVEZPUk0o
V0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFdlYkNvcmU6OkdyYXBoaWNzRGV2aWNlQWRh
cHRlciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV2ViQ29y
ZTo6R3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBncmFwaGljc0RldmljZUFkYXB0ZXIoKSBjb25zdCBm
aW5hbDsKICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgeyB9CisgICAgdm9pZCBzY3JvbGxSZWN0SW50b1Zp
ZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IGZpbmFsIHsgfQogCiAjaWYgRU5BQkxF
KFZJREVPKQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwotICAgIHZpcnR1
YWwgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1M
VmlkZW9FbGVtZW50Jik7Ci0gICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JW
aWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpOworICAgIGJvb2wgc3VwcG9y
dHNWaWRlb0Z1bGxzY3JlZW4oV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlKSBmaW5hbDsKKyAgICB2b2lkIGVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlk
ZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXZWJDb3JlOjpIVE1MTWVkaWFF
bGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGZpbmFsOworICAgIHZvaWQgZXhpdFZp
ZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Jikg
ZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVH
QUNZX05PVElGSUNBVElPTlMpCi0gICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGll
bnQqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nh
c3Q8V2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50Kj4obV9ub3RpZmljYXRpb25zRGVsZWdhdGUu
Z2V0KCkpOyB9CisgICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50KiBub3RpZmljYXRpb25Q
cmVzZW50ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiByZWludGVycHJldF9jYXN0PFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbkNsaWVudCo+KG1fbm90aWZpY2F0aW9uc0RlbGVnYXRlLmdldCgpKTsgfQog
I2VuZGlmCiAKLSAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05h
dHVyYWwoKTsKLSAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51
V3JpdGluZ0RpcmVjdGlvbigpOwotICAgIHZpcnR1YWwgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNv
bnN0OwotICAgIHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBN
ZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwotICAgIHZpcnR1YWwgUmVmUHRy
PFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6
OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwoKSBmaW5hbDsKKyAgICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xs
b3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBmaW5hbDsKKyAgICBib29sIGhhc09wZW5lZFBvcHVw
KCkgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9w
dXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYpIGNvbnN0IGZpbmFsOworICAgIFJlZlB0
cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3Jl
OjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25z
dCBXZWJDb3JlOjpFbGVtZW50KiwgYm9vbCB3aXRoS2V5Ym9hcmQpOwotICAgIHZpcnR1YWwgdm9p
ZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKTsKKyAg
ICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVu
dCYsIGJvb2wgd2l0aEtleWJvYXJkKSBmaW5hbDsKKyAgICB2b2lkIGVudGVyRnVsbFNjcmVlbkZv
ckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOworICAgIHZvaWQgZXhpdEZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKICNlbmRpZgogCi0gICAgdm9p
ZCB3aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKGJvb2wpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQg
d2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChib29sKSBmaW5hbCB7IH0KIAogICAgIFdlYlZpZXcq
IHdlYlZpZXcoKSB7IHJldHVybiBtX3dlYlZpZXc7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBBWFN0
YXJ0RnJhbWVMb2FkKCk7Ci0gICAgdmlydHVhbCB2b2lkIEFYRmluaXNoRnJhbWVMb2FkKCk7Cisg
ICAgdm9pZCBBWFN0YXJ0RnJhbWVMb2FkKCkgZmluYWw7CisgICAgdm9pZCBBWEZpbmlzaEZyYW1l
TG9hZCgpIGZpbmFsOwogCi0gICAgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZp
ZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBz
aG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3
JikgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1
aURlbGVnYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMTBiNWNlZWRjM2U3MGQ1MGFkYzI3
ODIxMTk0OGVmOTAwZTYwYmM2Zi4uM2QxM2NkNDQ2YzZhZjc3YTBlY2YwZWVlZDhjMWM4YjU3YjY5
YWFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTAyNSw3ICsxMDI1LDcgQEAgUmVmUHRyPEZy
YW1lPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgVVJMJiB1cmwsIGNv
bnN0IFN0cmluZyYgbmEKICAgICBSZWZQdHI8RnJhbWU+IGNoaWxkRnJhbWUgPSB3ZWJGcmFtZS0+
Y3JlYXRlU3ViZnJhbWVXaXRoT3duZXJFbGVtZW50KG1fd2ViRnJhbWUtPndlYlZpZXcoKSwgY29y
ZUZyYW1lLT5wYWdlKCksICZvd25lckVsZW1lbnQpOwogCiAgICAgY2hpbGRGcmFtZS0+dHJlZSgp
LnNldE5hbWUobmFtZSk7Ci0gICAgY29yZUZyYW1lLT50cmVlKCkuYXBwZW5kQ2hpbGQoY2hpbGRG
cmFtZSk7CisgICAgY29yZUZyYW1lLT50cmVlKCkuYXBwZW5kQ2hpbGQoKmNoaWxkRnJhbWUpOwog
ICAgIGNoaWxkRnJhbWUtPmluaXQoKTsKIAogICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZFVS
TEludG9DaGlsZEZyYW1lKHVybCwgcmVmZXJyZXIsIGNoaWxkRnJhbWUuZ2V0KCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJWaWV3LmNwcAppbmRleCA1MTc1ZjAwMmQ2MTcyYmUxNjA4MDNmNDczZTFkYWUyZTA0MzYxYjU3
Li45MzcwMTlkYmNjMWNhZDYxZTJhMmIwNDk1NTg1YmE1Y2JkMDJmNDBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcApAQCAtNTg1Myw3ICs1ODUzLDcgQEAgSFJFU1VMVCBXZWJWaWV3OjpzdGFuZGFyZFVz
ZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUoX0luXyBCU1RSIGFwcGxpY2F0aW9uTmFtZSwKIEhS
RVNVTFQgV2ViVmlldzo6Y2xlYXJGb2N1c05vZGUoKQogewogICAgIGlmIChtX3BhZ2UpCi0gICAg
ICAgIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQoMCwgMCk7Cisg
ICAgICAgIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQobnVsbHB0
ciwgbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKSk7CiAgICAg
cmV0dXJuIFNfT0s7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9T
Y3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IGUxMTU1MjkxMDY0NzAx
Yjg4YjdiMzJhYmNkMWYyZTY1NDMzZTI4OWUuLjQyMWM3NDU3YzkwM2I0N2UyZTFhN2I0ODg5ODgx
ZjU3YzMwZWFjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxp
bmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHZv
aWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChT
Y3JvbGxpbmdOb2RlSUQgbm9kZUlECiAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNj
cm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgcmVw
cmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CiB9CiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJl
ZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9s
bGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQorUmVmPFNjcm9s
bGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9k
ZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKIHsK
ICAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2FzZSBGcmFtZVNjcm9sbGluZ05vZGU6CkBA
IC0xMjQsMTQgKzEyNCwxNSBAQCBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVT
Y3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbAogICAgICAgICByZXR1
cm4gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6Y3JlYXRlKCp0aGlzLCBu
b2RlSUQpOwogI2Vsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICBicmVhazsKICNlbmRpZgogICAgIGNhc2UgRml4ZWROb2Rl
OgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBu
b2RlSUQpOwogICAgIGNhc2UgU3RpY2t5Tm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1Ry
ZWVTdGlja3lOb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgfQotICAgIHJldHVybiBu
dWxscHRyOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTY3JvbGxpbmdU
cmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKIHZvaWQgUmVtb3RlU2Ny
b2xsaW5nVHJlZTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9k
ZUlEIG5vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xs
aW5nVHJlZS5oCmluZGV4IGQ2NWIyZjVlZDZkZGY1N2VjNDQwZGY0OTBkMmUxMTY4YzhlYzA1Yzku
LjczMThjY2M4MTRjYTU3MTZkYzcwYzI0YjZjNDQxNzhkMjU2Y2RhNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJl
ZS5oCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5OwogCi1jbGFzcyBSZW1vdGVTY3JvbGxpbmdUcmVlIDog
cHVibGljIFdlYkNvcmU6OlNjcm9sbGluZ1RyZWUgeworY2xhc3MgUmVtb3RlU2Nyb2xsaW5nVHJl
ZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTY3JvbGxpbmdUcmVlIHsKIHB1YmxpYzoKICAgICBz
dGF0aWMgUmVmPFJlbW90ZVNjcm9sbGluZ1RyZWU+IGNyZWF0ZShSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5Jik7CiAgICAgdmlydHVhbCB+UmVtb3RlU2Nyb2xsaW5nVHJlZSgpOwpAQCAt
NjUsNyArNjUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRT
Y3JvbGwoKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5n
Tm9kZVR5cGUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisgICAgUmVmPFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShXZWJDb3Jl
OjpTY3JvbGxpbmdOb2RlVHlwZSwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsK
ICAgICAKICAgICBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5JiBtX3Njcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4IDgw
NTlhZDU1YWFlMzJmOGU1M2E3MDE5YjUyODdlZThiMDk0MGI5MTQuLmE3OWQxMGE5ZDUwNzcxMDQ1
Y2U1ODMwZWE1NzM3NGM4NDE4NTYyN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAK
QEAgLTM2OCwyMiArMzY4LDIyIEBAIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0UmVmIFdLQnVuZGxl
UGFnZUdldEJhY2tGb3J3YXJkTGlzdChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlCiAKIHZvaWQgV0tC
dW5kbGVQYWdlSW5zdGFsbFBhZ2VPdmVybGF5KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1
bmRsZVBhZ2VPdmVybGF5UmVmIHBhZ2VPdmVybGF5UmVmKQogewotICAgIHRvSW1wbChwYWdlUmVm
KS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3Zlcmxh
eSh0b0ltcGwocGFnZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3Zl
cmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJh
bWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KCp0b0ltcGwo
cGFnZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFk
ZU1vZGU6OkRvTm90RmFkZSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlVW5pbnN0YWxsUGFnZU92
ZXJsYXkoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLQnVuZGxlUGFnZU92ZXJsYXlSZWYgcGFn
ZU92ZXJsYXlSZWYpCiB7Ci0gICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92
ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkodG9JbXBsKHBhZ2VPdmVybGF5
UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05v
dEZhZGUpOworICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCp0b0ltcGwocGFnZU92ZXJsYXlSZWYpLT5j
b3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7
CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlSW5zdGFsbFBhZ2VPdmVybGF5V2l0aEFuaW1hdGlvbihX
S0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQYWdlT3ZlcmxheVJlZiBwYWdlT3Zlcmxh
eVJlZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNv
bnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkodG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29y
ZU92ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICB0
b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0
YWxsUGFnZU92ZXJsYXkoKnRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdl
YkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQ
YWdlVW5pbnN0YWxsUGFnZU92ZXJsYXlXaXRoQW5pbWF0aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdl
UmVmLCBXS0J1bmRsZVBhZ2VPdmVybGF5UmVmIHBhZ2VPdmVybGF5UmVmKQogewotICAgIHRvSW1w
bChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFs
bFBhZ2VPdmVybGF5KHRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNv
cmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5t
YWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXko
KnRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVy
bGF5OjpGYWRlTW9kZTo6RmFkZSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2V0VG9wT3Zlcmhh
bmdJbWFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tJbWFnZVJlZiBpbWFnZVJlZikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRl
ZFBERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVw
cmVjYXRlZFBERlBsdWdpbi5tbQppbmRleCA4NTA5YWU2NTAyNGQ0ZWU1OTJlZDEyNWExMjEyMTQw
ZjA3ZmNlMzFlLi40MWViMDM5NDZmYTlhNGFhZmQwZjhmMTYwOWJjMTNmMzc1N2Y5NWNmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQ
REZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9E
ZXByZWNhdGVkUERGUGx1Z2luLm1tCkBAIC04NjAsNyArODYwLDcgQEAgSlNWYWx1ZVJlZiBQREZQ
bHVnaW46OmpzUERGRG9jUHJpbnQoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgZnVuY3Rp
b24sIEpTT2IKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjdHgpOwogCi0gICAgcGFnZS0+Y2hyb21lKCkucHJpbnQoY29yZUZyYW1lKTsKKyAgICBw
YWdlLT5jaHJvbWUoKS5wcmludCgqY29yZUZyYW1lKTsKIAogICAgIHJldHVybiBKU1ZhbHVlTWFr
ZVVuZGVmaW5lZChjdHgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDU2MmE5YTJlMTU3YzQzYzVkZTc1YzNmNzI1NjMxMmRm
ZTRlMTU3YmMuLmQ5YTQyODg2MWJlYzU2NDUzYTdmMGNlMTNkM2JmOTg5MWYzZDk5MjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAg
LTExMjgsNyArMTEyOCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6Zm9jdXNQbHVnaW5FbGVtZW50KCkK
ICAgICBBU1NFUlQoZnJhbWUoKSk7CiAgICAgCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFtZSgp
LT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVt
ZW50KG1fcGx1Z2luRWxlbWVudC5nZXQoKSwgZnJhbWUoKSk7CisgICAgICAgIHBhZ2UtPmZvY3Vz
Q29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG1fcGx1Z2luRWxlbWVudC5nZXQoKSwgKmZy
YW1lKCkpOwogICAgIGVsc2UKICAgICAgICAgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNl
ZEVsZW1lbnQobV9wbHVnaW5FbGVtZW50LmdldCgpKTsKIH0KQEAgLTE1MDgsNyArMTUwOCw3IEBA
IHZvaWQgUGx1Z2luVmlldzo6c2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmIHN0YXR1c2Jh
clRleHQpCiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBwYWdlLT5jaHJv
bWUoKS5zZXRTdGF0dXNiYXJUZXh0KGZyYW1lKCksIHN0YXR1c2JhclRleHQpOworICAgIHBhZ2Ut
PmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQoKmZyYW1lKCksIHN0YXR1c2JhclRleHQpOwogfQog
CiBib29sIFBsdWdpblZpZXc6OmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDQ5ODM0YzNhMzBlYmY5MjE1ZTlmNTRlOTFkY2IyNGVh
MTNmOTRjZWQuLmE4ZGZkZmM5NTMwZWUwNmYzMWM4ZjViMTRmZDY3MmZmZTI0YjIzY2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEwMyw3ICsxMDMsNiBAQCBzdGF0aWMgZG91YmxlIGFy
ZWEoV2ViRnJhbWUqIGZyYW1lKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHNpemUu
aGVpZ2h0KCkpICogc2l6ZS53aWR0aCgpOwogfQogCi0KIHN0YXRpYyBXZWJGcmFtZSogZmluZExh
cmdlc3RGcmFtZUluRnJhbWVTZXQoV2ViUGFnZSYgcGFnZSkKIHsKICAgICAvLyBBcHByb3hpbWF0
ZSB3aGF0IGEgdXNlciBjb3VsZCBjb25zaWRlciBhIGRlZmF1bHQgdGFyZ2V0IGZyYW1lIGZvciBh
cHBsaWNhdGlvbiBtZW51IG9wZXJhdGlvbnMuCkBAIC0xNzksMjAgKzE3OCwyMiBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6dW5mb2N1cygpCiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKLXZvaWQg
V2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9jdXMoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9k
ZSkKKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRGb2N1cyhXZWJDb3JlOjpFbGVt
ZW50JiBlbGVtZW50KQogewotICAgIG1fcGFnZS5lbGVtZW50RGlkRm9jdXMoY29uc3RfY2FzdDxX
ZWJDb3JlOjpOb2RlKj4obm9kZSkpOworICAgIG1fcGFnZS5lbGVtZW50RGlkRm9jdXMoJmVsZW1l
bnQpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIoY29uc3QgV2Vi
Q29yZTo6Tm9kZSogbm9kZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkQmx1cihX
ZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50KQogewotICAgIG1fcGFnZS5lbGVtZW50RGlkQmx1cihj
b25zdF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihub2RlKSk7CisgICAgbV9wYWdlLmVsZW1lbnREaWRC
bHVyKCZlbGVtZW50KTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om1ha2VGaXJzdFJlc3Bv
bmRlcigpCiB7CiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TWFrZUZp
cnN0UmVzcG9uZGVyKCkpOwotfSAgICAKK30KKwogI2VuZGlmICAgIAogCiBib29sIFdlYkNocm9t
ZUNsaWVudDo6Y2FuVGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9uKQpAQCAtMjI3LDE2ICsyMjgsMTYg
QEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqIGZyYW1l
KQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Rm9jdXNlZEZyYW1lQ2hhbmdlZCh3ZWJGcmFt
ZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAwKSwgbV9wYWdlLnBhZ2VJRCgpKTsKIH0KIAotUGFn
ZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFt
ZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgd2luZG93RmVhdHVy
ZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24pCitQYWdlKiBXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJl
cXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiB3aW5kb3dGZWF0dXJlcywgY29u
c3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbikKIHsKICNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCi0gICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpICYmIGZyYW1lLT5kb2N1bWVu
dCgpLT53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkKLSAgICAgICAgZnJhbWUtPmRv
Y3VtZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsKKyAgICBpZiAoZnJhbWUuZG9jdW1l
bnQoKSAmJiBmcmFtZS5kb2N1bWVudCgpLT53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQo
KSkKKyAgICAgICAgZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOwog
I2VuZGlmCiAKICAgICBhdXRvJiB3ZWJQcm9jZXNzID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCk7
CiAKLSAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJh
bWUpOworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZy
YW1lKTsKIAogICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhOwog
ICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLm5hdmlnYXRpb25UeXBlID0gbmF2aWdhdGlvbkFjdGlv
bi50eXBlKCk7CkBAIC0yNTAsNyArMjUxLDcgQEAgUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVXaW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXMKIAog
ICAgIHVpbnQ2NF90IG5ld1BhZ2VJRCA9IDA7CiAgICAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVy
cyBwYXJhbWV0ZXJzOwotICAgIGlmICghd2ViUHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlKHdlYkZy
YW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGZyYW1lKSwgcmVx
dWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgd2luZG93RmVhdHVyZXMsIG5hdmlnYXRpb25BY3Rpb25E
YXRhKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6UmVwbHkobmV3UGFn
ZUlELCBwYXJhbWV0ZXJzKSwgbV9wYWdlLnBhZ2VJRCgpKSkKKyAgICBpZiAoIXdlYlByb2Nlc3Mu
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6Q3JlYXRlTmV3UGFnZSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6
OmZyb21GcmFtZSgmZnJhbWUpLCByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCB3aW5kb3dGZWF0
dXJlcywgbmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVh
dGVOZXdQYWdlOjpSZXBseShuZXdQYWdlSUQsIHBhcmFtZXRlcnMpLCBtX3BhZ2UucGFnZUlEKCkp
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmICghbmV3UGFnZUlEKQpAQCAtMzYx
LDkgKzM2Miw5IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWwoKQogICAgIHJldHVybiBtX3BhZ2UuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKCk7CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSogZnJhbWUpCitib29sIFdlYkNocm9t
ZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgRnJhbWUmIGZyYW1lKQogewotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpm
cm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6
OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogCiAgICAgYm9vbCBzaG91bGRDbG9zZSA9IGZhbHNlOwog
CkBAIC00MDIsMTIgKzQwMywxMiBAQCBzdGF0aWMgYm9vbCBzaG91bGRTdXBwcmVzc0phdmFTY3Jp
cHREaWFsb2dzKEZyYW1lJiBmcmFtZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJp
bmcmIGFsZXJ0VGV4dCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQo
RnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIGFsZXJ0VGV4dCkKIHsKLSAgICBpZiAoc2hvdWxk
U3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncygqZnJhbWUpKQorICAgIGlmIChzaG91bGRTdXBwcmVz
c0phdmFTY3JpcHREaWFsb2dzKGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViRnJh
bWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAgICAgQVNT
RVJUKHdlYkZyYW1lKTsKIAogICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVudC4KQEAgLTQx
NSwxNSArNDE2LDE1IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQo
RnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGFsZXJ0VGV4dCkKIAogICAgIEhhbmdEZXRlY3Rp
b25EaXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlzYWJsZXI7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJp
dHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoZnJhbWUpLCBhbGVydFRleHQpLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OlJlcGx5KCksIG1fcGFnZS5wYWdlSUQoKSwg
U2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Q
cm9jZXNzV2lsbFN1c3BlbmQpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkph
dmFTY3JpcHRBbGVydCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZy
b21GcmFtZSgmZnJhbWUpLCBhbGVydFRleHQpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5K
YXZhU2NyaXB0QWxlcnQ6OlJlcGx5KCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5p
dHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3Bl
bmQpOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJh
bWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCitib29sIFdlYkNocm9tZUNsaWVudDo6
cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
CiB7Ci0gICAgaWYgKHNob3VsZFN1cHByZXNzSmF2YVNjcmlwdERpYWxvZ3MoKmZyYW1lKSkKKyAg
ICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncyhmcmFtZSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29y
ZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21D
b3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKICAgICAvLyBOb3RpZnkg
dGhlIGJ1bmRsZSBjbGllbnQuCkBAIC00MzIsMTggKzQzMywxOCBAQCBib29sIFdlYkNocm9tZUNs
aWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCiAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxlcjsK
IAogICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0
eU9yaWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIG1lc3NhZ2UpLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6UmVwbHkocmVzdWx0KSwgbV9wYWdlLnBhZ2VJ
RCgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0
Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9y
aWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBtZXNzYWdlKSwgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OlJlcGx5KHJlc3VsdCksIG1fcGFnZS5wYWdlSUQo
KSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZv
cm1Qcm9jZXNzV2lsbFN1c3BlbmQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21w
dChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZh
dWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFT
Y3JpcHRQcm9tcHQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKIHsKLSAgICBpZiAoc2hvdWxkU3Vw
cHJlc3NKYXZhU2NyaXB0RGlhbG9ncygqZnJhbWUpKQorICAgIGlmIChzaG91bGRTdXBwcmVzc0ph
dmFTY3JpcHREaWFsb2dzKGZyYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgV2Vi
RnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBX
ZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAgICAg
QVNTRVJUKHdlYkZyYW1lKTsKIAogICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVudC4KQEAg
LTQ1MSw3ICs0NTIsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21w
dChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgYwogCiAgICAgSGFuZ0RldGVj
dGlvbkRpc2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxlcjsKIAotICAgIGlmICghV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdCh3ZWJGcmFtZS0+ZnJhbWVJRCgp
LCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIG1lc3NhZ2UsIGRlZmF1bHRW
YWx1ZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OlJlcGx5
KHJlc3VsdCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5k
U3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpKQorICAgIGlmICgh
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5
bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdCh3ZWJGcmFtZS0+
ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBtZXNzYWdl
LCBkZWZhdWx0VmFsdWUpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJv
bXB0OjpSZXBseShyZXN1bHQpLCBtX3BhZ2UucGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCks
IElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuICFyZXN1bHQuaXNOdWxsKCk7CkBA
IC01NTYsNyArNTU3LDcgQEAgUGxhdGZvcm1QYWdlQ2xpZW50IFdlYkNocm9tZUNsaWVudDo6cGxh
dGZvcm1QYWdlQ2xpZW50KCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRTaXpl
JiBzaXplKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQo
RnJhbWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogewogICAgIGlmICghbV9w
YWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpKSB7CiAg
ICAgICAgIFdlYkZyYW1lKiBsYXJnZXN0RnJhbWUgPSBmaW5kTGFyZ2VzdEZyYW1lSW5GcmFtZVNl
dChtX3BhZ2UpOwpAQCAtNTY2LDE0ICs1NjcsMTQgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNv
bnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb24K
ICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICgmZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkg
IT0gZnJhbWUpCisgICAgaWYgKCZmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgpICE9ICZmcmFtZSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGlkQ2hhbmdlQ29udGVudFNpemUoc2l6ZSkpOwogCiAgICAgbV9wYWdlLmRyYXdpbmdBcmVh
KCktPm1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChzaXplKTsKIAotICAgIEZyYW1lVmlldyog
ZnJhbWVWaWV3ID0gZnJhbWUtPnZpZXcoKTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGZy
YW1lLnZpZXcoKTsKICAgICBpZiAoZnJhbWVWaWV3ICYmICFmcmFtZVZpZXctPmRlbGVnYXRlc1Nj
cm9sbGluZygpKSAgewogICAgICAgICBib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIgPSBmcmFt
ZVZpZXctPmhvcml6b250YWxTY3JvbGxiYXIoKTsKICAgICAgICAgYm9vbCBoYXNWZXJ0aWNhbFNj
cm9sbGJhciA9IGZyYW1lVmlldy0+dmVydGljYWxTY3JvbGxiYXIoKTsKQEAgLTYxMSwyMSArNjEy
LDIxIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3Nh
Z2VCZUJ1dHRvbihSZW5kZXJFbWJlZGRlZE9iamVjCiAgICAgcmV0dXJuIGZhbHNlOwogfQogICAg
IAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChF
bGVtZW50KiBlbGVtZW50LCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0Cit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVsZW1lbnQmIGVsZW1lbnQs
IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5V
bmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lO
X0FQSSkKLSAgICBBU1NFUlQoZWxlbWVudC0+aGFzVGFnTmFtZShvYmplY3RUYWcpIHx8IGVsZW1l
bnQtPmhhc1RhZ05hbWUoZW1iZWRUYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoYXBwbGV0VGFn
KSk7CisgICAgQVNTRVJUKGVsZW1lbnQuaGFzVGFnTmFtZShvYmplY3RUYWcpIHx8IGVsZW1lbnQu
aGFzVGFnTmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGFwcGxldFRhZykpOwog
ICAgIEFTU0VSVChwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiA9PSBSZW5kZXJFbWJlZGRlZE9i
amVjdDo6UGx1Z2luTWlzc2luZyB8fCBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiA9PSBSZW5k
ZXJFbWJlZGRlZE9iamVjdDo6SW5zZWN1cmVQbHVnaW5WZXJzaW9uIHx8IHBsdWdpblVuYXZhaWxh
YmlsaXR5UmVhc29uKTsKIAotICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIHBsdWdpbkVsZW1l
bnQgPSBzdGF0aWNfY2FzdDxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Kj4oZWxlbWVudCk7CisgICAg
YXV0byYgcGx1Z2luRWxlbWVudCA9IGRvd25jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ+KGVs
ZW1lbnQpOwogCi0gICAgU3RyaW5nIGZyYW1lVVJMU3RyaW5nID0gcGx1Z2luRWxlbWVudC0+ZG9j
dW1lbnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZVVSTCgp
LnN0cmluZygpOworICAgIFN0cmluZyBmcmFtZVVSTFN0cmluZyA9IHBsdWdpbkVsZW1lbnQuZG9j
dW1lbnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZVVSTCgp
LnN0cmluZygpOwogICAgIFN0cmluZyBwYWdlVVJMU3RyaW5nID0gbV9wYWdlLm1haW5GcmFtZSgp
LT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZVVSTCgpLnN0cmluZygpOwotICAg
IFN0cmluZyBwbHVnaW5VUkxTdHJpbmcgPSBwbHVnaW5FbGVtZW50LT5kb2N1bWVudCgpLmNvbXBs
ZXRlVVJMKHBsdWdpbkVsZW1lbnQtPnVybCgpKS5zdHJpbmcoKTsKLSAgICBVUkwgcGx1Z2luc3Bh
Z2VBdHRyaWJ1dGVVUkwgPSBlbGVtZW50LT5kb2N1bWVudCgpLmNvbXBsZXRlVVJMKHN0cmlwTGVh
ZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhwbHVnaW5FbGVtZW50LT5nZXRBdHRyaWJ1dGUocGx1
Z2luc3BhZ2VBdHRyKSkpOworICAgIFN0cmluZyBwbHVnaW5VUkxTdHJpbmcgPSBwbHVnaW5FbGVt
ZW50LmRvY3VtZW50KCkuY29tcGxldGVVUkwocGx1Z2luRWxlbWVudC51cmwoKSkuc3RyaW5nKCk7
CisgICAgVVJMIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMID0gcGx1Z2luRWxlbWVudC5kb2N1bWVu
dCgpLmNvbXBsZXRlVVJMKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhwbHVnaW5F
bGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24ocGx1Z2luc3BhZ2VBdHRyKSkp
OwogICAgIGlmICghcGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkwucHJvdG9jb2xJc0luSFRUUEZhbWls
eSgpKQogICAgICAgICBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTCA9IFVSTCgpOwotICAgIG1fcGFn
ZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xp
Y2tlZChwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgcGx1Z2luRWxlbWVudC0+c2VydmljZVR5
cGUoKSwgcGx1Z2luVVJMU3RyaW5nLCBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTC5zdHJpbmcoKSwg
ZnJhbWVVUkxTdHJpbmcsIHBhZ2VVUkxTdHJpbmcpKTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQocGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb24sIHBsdWdpbkVsZW1lbnQuc2VydmljZVR5cGUoKSwgcGx1Z2luVVJM
U3RyaW5nLCBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTC5zdHJpbmcoKSwgZnJhbWVVUkxTdHJpbmcs
IHBhZ2VVUkxTdHJpbmcpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGVsZW1lbnQpOwogICAg
IFVOVVNFRF9QQVJBTShwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbik7CkBAIC02NjAsOSArNjYx
LDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29s
VGlwLCBUZXh0RGlyZWN0aW9uKQogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlNldFRvb2xUaXAobV9jYWNoZWRUb29sVGlwKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpwcmludChGcmFtZSogZnJhbWUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJh
bWUmIGZyYW1lKQogewotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29y
ZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21D
b3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKICNpZiBQTEFURk9STShH
VEspICYmIEhBVkUoR1RLX1VOSVhfUFJJTlRJTkcpCkBAIC02ODgsMTIgKzY4OSwxMiBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1lKQogICAgIG1fcGFnZS5zZW5kU3lu
YyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQcmludEZyYW1lKHdlYkZyYW1lLT5mcmFtZUlEKCkp
LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQcmludEZyYW1lOjpSZXBseSgpLCBTZWNvbmRzOjpp
bmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxs
U3VzcGVuZCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVv
dGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRh
aWxzIGRldGFpbHMpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3Rh
KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWls
cyBkZXRhaWxzKQogewotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29y
ZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21D
b3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAgICAgCi0gICAgYXV0byYg
b3JpZ2luID0gZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCk7CisgICAgYXV0byYg
b3JpZ2luID0gZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKICAgICBhdXRvIG9y
aWdpbkRhdGEgPSBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihvcmlnaW4p
OwogICAgIGF1dG8mIHRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnNpbmdsZXRvbigpOwogICAg
IGF1dG8gY3VycmVudFF1b3RhID0gdHJhY2tlci5xdW90YShvcmlnaW5EYXRhKTsKQEAgLTcxNiw5
ICs3MTcsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZShp
bnQ2NF90KQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4sIGludDY0X3QgdG90YWxCeXRlc05lZWRlZCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFj
aGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGlu
dDY0X3QgdG90YWxCeXRlc05lZWRlZCkKIHsKLSAgICBSZWZQdHI8QVBJOjpTZWN1cml0eU9yaWdp
bj4gc2VjdXJpdHlPcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5n
KG9yaWdpbi0+dG9TdHJpbmcoKSk7CisgICAgUmVmUHRyPEFQSTo6U2VjdXJpdHlPcmlnaW4+IHNl
Y3VyaXR5T3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmln
aW4udG9TdHJpbmcoKSk7CiAgICAgaWYgKG1fcGFnZS5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCku
ZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoJm1fcGFnZSwgc2VjdXJpdHlPcmln
aW4uZ2V0KCksIHRvdGFsQnl0ZXNOZWVkZWQpKQogICAgICAgICByZXR1cm47CiAKQEAgLTcyOSwx
NyArNzMwLDE5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sCiAKICAgICB1aW50NjRfdCBuZXdR
dW90YSA9IDA7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZFN5bmMoCi0gICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNo
ZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
Ojpmcm9tU2VjdXJpdHlPcmlnaW4oKm9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCksIGN1cnJl
bnRRdW90YSwgdG90YWxCeXRlc05lZWRlZCksCisgICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIo
KSwgY3VycmVudFF1b3RhLCB0b3RhbEJ5dGVzTmVlZGVkKSwKICAgICAgICAgTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YTo6UmVwbHkobmV3
UXVvdGEpLCBtX3BhZ2UucGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5
bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKTsKIAotICAgIGNhY2hl
U3RvcmFnZS5zdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbihvcmlnaW4sIG5ld1F1b3RhKTsKKyAg
ICBjYWNoZVN0b3JhZ2Uuc3RvcmVVcGRhdGVkUXVvdGFGb3JPcmlnaW4oJm9yaWdpbiwgbmV3UXVv
dGEpOwogfQogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQorCiB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6YW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKQogewogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CisKICNlbmRpZgogCiBib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkUmVwbGFjZVdp
dGhHZW5lcmF0ZWRGaWxlRm9yVXBsb2FkKGNvbnN0IFN0cmluZyYgcGF0aCwgU3RyaW5nJiBnZW5l
cmF0ZWRGaWxlbmFtZSkKQEAgLTc1NCwxMCArNzU3LDEyIEBAIFN0cmluZyBXZWJDaHJvbWVDbGll
bnQ6OmdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkKIH0KIAogI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4g
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiBj
bGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCisKK3N0ZDo6dW5pcXVlX3B0cjxDb2xv
ckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3Nl
ckNsaWVudCYgY2xpZW50LCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQogewotICAgIHJldHVy
biBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvbG9yQ2hvb3Nlcj4oJm1fcGFnZSwgY2xpZW50LCBpbml0
aWFsQ29sb3IpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvbG9yQ2hvb3Nlcj4o
Jm1fcGFnZSwgJmNsaWVudCwgaW5pdGlhbENvbG9yKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUmIGZyYW1lLCBGaWxlQ2hvb3NlciYgZmls
ZUNob29zZXIpCkBAIC04MzIsMTQgKzgzNywxNCBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6aGFz
T3BlbmVkUG9wdXAoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUmVmUHRyPFdlYkNv
cmU6OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6
UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51
PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGll
bnQmIGNsaWVudCkgY29uc3QKIHsKLSAgICByZXR1cm4gV2ViUG9wdXBNZW51OjpjcmVhdGUoJm1f
cGFnZSwgY2xpZW50KTsKKyAgICByZXR1cm4gV2ViUG9wdXBNZW51OjpjcmVhdGUoJm1fcGFnZSwg
JmNsaWVudCk7CiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCog
Y2xpZW50KSBjb25zdAorUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21l
Q2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JiBj
bGllbnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdlYlNlYXJjaFBvcHVwTWVudTo6Y3JlYXRlKCZt
X3BhZ2UsIGNsaWVudCk7CisgICAgcmV0dXJuIFdlYlNlYXJjaFBvcHVwTWVudTo6Y3JlYXRlKCZt
X3BhZ2UsICZjbGllbnQpOwogfQogCiBHcmFwaGljc0xheWVyRmFjdG9yeSogV2ViQ2hyb21lQ2xp
ZW50OjpncmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0CkBAIC04NTgsNyArODYzLDcgQEAgUmVm
UHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVEaXNwbGF5UmVmcmVzaE1vbmkKIAogI2VuZGlmCiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojph
dHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqIGxheWVyKQordm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhp
Y3NMYXllciogbGF5ZXIpCiB7CiAgICAgaWYgKGxheWVyKQogICAgICAgICBtX3BhZ2UuZW50ZXJB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllcik7CkBAIC04NjYsMTAgKzg3MSwxMCBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFw
aGljc0xheWVyKiBsYXllcikKICAgICAgICAgbV9wYWdlLmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZSgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlH
cmFwaGljc0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJh
bWUmIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQogewogICAgIGlmIChhdXRv
IGRyYXdpbmdBcmVhID0gbV9wYWdlLmRyYXdpbmdBcmVhKCkpCi0gICAgICAgIGRyYXdpbmdBcmVh
LT5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoZnJhbWUsIGdyYXBoaWNzTGF5ZXIpOwor
ICAgICAgICBkcmF3aW5nQXJlYS0+YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKCZmcmFt
ZSwgZ3JhcGhpY3NMYXllcik7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXROZWVkc09u
ZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkKQEAgLTg5OCw5ICs5MDMsOSBAQCBib29sIFdl
YkNocm9tZUNsaWVudDo6bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0CiAKICNpZiBFTkFC
TEUoQVNZTkNfU0NST0xMSU5HKQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBX
ZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UqIHBhZ2UpIGNv
bnN0CitSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRl
U2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSYgcGFnZSkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9w
YWdlLmNvcmVQYWdlKCkgPT0gcGFnZSk7CisgICAgQVNTRVJUX1VOVVNFRChwYWdlLCBtX3BhZ2Uu
Y29yZVBhZ2UoKSA9PSAmcGFnZSk7CiAgICAgaWYgKG1fcGFnZS5kcmF3aW5nQXJlYSgpLT50eXBl
KCkgIT0gRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICByZXR1cm4gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNyZWF0ZSgmbV9w
YWdlKTsKQEAgLTk0OSwxOSArOTU0LDE5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0Vmlk
ZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihXZWJDb3JlOjpIVE1MVmlkCiAKICNp
ZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0
c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqLCBib29sIHdpdGhL
ZXlib2FyZCkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVt
ZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmLCBib29sIHdpdGhLZXlib2FyZCkKIHsKICAgICBy
ZXR1cm4gbV9wYWdlLmZ1bGxTY3JlZW5NYW5hZ2VyKCktPnN1cHBvcnRzRnVsbFNjcmVlbih3aXRo
S2V5Ym9hcmQpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9y
RWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCkKIHsK
LSAgICBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVu
dChlbGVtZW50KTsKKyAgICBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+ZW50ZXJGdWxsU2Ny
ZWVuRm9yRWxlbWVudCgmZWxlbWVudCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0
RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCkKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYg
ZWxlbWVudCkKIHsKLSAgICBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+ZXhpdEZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KGVsZW1lbnQpOworICAgIG1fcGFnZS5mdWxsU2NyZWVuTWFuYWdlcigpLT5l
eGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoJmVsZW1lbnQpOwogfQogCiAjZW5kaWYKQEAgLTEwNDks
MjkgKzEwNTQsMjkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpc2FibGVTdWRkZW5UZXJtaW5h
dGlvbigpCiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlzYWJs
ZVN1ZGRlblRlcm1pbmF0aW9uKCkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkQWRk
SGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXllciogaGVhZGVyUGFyZW50KQordm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmRpZEFkZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5ZXImIGhlYWRlclBhcmVudCkKIHsK
ICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgaWYgKFBhZ2VCYW5uZXIqIGJhbm5lciA9
IG1fcGFnZS5oZWFkZXJQYWdlQmFubmVyKCkpCi0gICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50
TGF5ZXIoaGVhZGVyUGFyZW50KTsKKyAgICAgICAgYmFubmVyLT5kaWRBZGRQYXJlbnRMYXllcigm
aGVhZGVyUGFyZW50KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGhlYWRlclBhcmVudCk7CiAj
ZW5kaWYKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEZvb3RlckxheWVyKEdyYXBo
aWNzTGF5ZXIqIGZvb3RlclBhcmVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRGb290
ZXJMYXllcihHcmFwaGljc0xheWVyJiBmb290ZXJQYXJlbnQpCiB7CiAjaWYgRU5BQkxFKFJVQkJF
Ul9CQU5ESU5HKQogICAgIGlmIChQYWdlQmFubmVyKiBiYW5uZXIgPSBtX3BhZ2UuZm9vdGVyUGFn
ZUJhbm5lcigpKQotICAgICAgICBiYW5uZXItPmRpZEFkZFBhcmVudExheWVyKGZvb3RlclBhcmVu
dCk7CisgICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50TGF5ZXIoJmZvb3RlclBhcmVudCk7CiAj
ZWxzZQogICAgIFVOVVNFRF9QQVJBTShmb290ZXJQYXJlbnQpOwogI2VuZGlmCiB9CiAKLWJvb2wg
V2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3Qg
RnJhbWVWaWV3KiBmcmFtZVZpZXcpIGNvbnN0Citib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxk
VXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaWV3KSBj
b25zdAogewotICAgIHJldHVybiBtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+c2hvdWxkVXNlVGlsZWRC
YWNraW5nRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7CisgICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5n
QXJlYSgpLT5zaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoJmZyYW1lVmlldyk7CiB9
CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3Jl
OjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUsIHVpbnQ2NF90IHNvdXJjZUVs
ZW1lbnRJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDVjOWQ3NzNhNzJjMDYwOGMwMjA2OGFj
MWQ5ZGRmNDVkNGEwYmQ5YzUuLjBhMDgwMDRmZmVmZWVjYmI0MTM0NDAzNmYwMmZkYTk0MTc0ZGFj
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAg
IC8vIEZyYW1lIHdhbnRzIHRvIGNyZWF0ZSB0aGUgbmV3IFBhZ2UuICBBbHNvLCB0aGUgbmV3bHkg
Y3JlYXRlZCB3aW5kb3cKICAgICAvLyBzaG91bGQgbm90IGJlIHNob3duIHRvIHRoZSB1c2VyIHVu
dGlsIHRoZSBDaHJvbWVDbGllbnQgb2YgdGhlIG5ld2x5CiAgICAgLy8gY3JlYXRlZCBQYWdlIGhh
cyBpdHMgc2hvdyBtZXRob2QgY2FsbGVkLgotICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRv
dyhXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25z
dCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rp
b24mKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJh
bWUmLCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2lu
ZG93RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWw7CiAg
ICAgdm9pZCBzaG93KCkgZmluYWw7CiAgICAgCiAgICAgYm9vbCBjYW5SdW5Nb2RhbCgpIGZpbmFs
OwpAQCAtODcsMTMgKzg3LDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25z
b2xlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZUlEKSBmaW5hbDsKICAgICAKICAgICBib29sIGNhblJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbCgpIGZpbmFsOwotICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKKyAg
ICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAgICAgCiAgICAgdm9pZCBjbG9zZVdpbmRvd1Nvb24o
KSBmaW5hbDsKICAgICAKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFt
ZSosIGNvbnN0IFN0cmluZyYpIGZpbmFsOwotICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0o
V2ViQ29yZTo6RnJhbWUqLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKLSAgICBib29sIHJ1bkphdmFT
Y3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgZmluYWw7CisgICAgdm9pZCBy
dW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsK
KyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3Ry
aW5nJikgZmluYWw7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1l
JiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3Ry
aW5nJiByZXN1bHQpIGZpbmFsOwogICAgIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJp
bmcmKSBmaW5hbDsKIAogICAgIFdlYkNvcmU6OktleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2Rl
KCkgZmluYWw7CkBAIC0xMTcsMjMgKzExNywyMyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBQ
bGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgZmluYWw7Ci0gICAg
dm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJD
b3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdCBmaW5hbDsKICAgICB2
b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgZmlu
YWw7IC8vIEN1cnJlbnRseSBvbmx5IE1hYyBoYXMgYSBub24gZW1wdHkgaW1wbGVtZW50YXRpb24u
CiAKICAgICBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFdlYkNv
cmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29u
c3QgZmluYWw7Ci0gICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29y
ZTo6RWxlbWVudCosIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWls
YWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7CisgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1
dHRvbkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVudCYsIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2Jq
ZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7CiAKICAgICB2b2lk
IHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBtb3VzZURp
ZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQg
bW9kaWZpZXJGbGFncykgZmluYWw7CiAKICAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5n
JiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7CiAgICAgCi0gICAgdm9pZCBwcmludChX
ZWJDb3JlOjpGcmFtZSopIGZpbmFsOworICAgIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUmKSBm
aW5hbDsKIAotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwg
Y29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscykgZmlu
YWw7CisgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUmLCBjb25z
dCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsK
IAogICAgIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKSBm
aW5hbDsKLSAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHNwYWNlTmVlZGVkKSBmaW5hbDsKKyAgICB2b2lk
IHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4mLCBpbnQ2NF90IHNwYWNlTmVlZGVkKSBmaW5hbDsKIAogI2lmIEVOQUJMRShEQVNIQk9BUkRf
U1VQUE9SVCkKICAgICB2b2lkIGFubm90YXRlZFJlZ2lvbnNDaGFuZ2VkKCkgZmluYWw7CkBAIC0x
NDMsNyArMTQzLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgZ2VuZXJhdGVSZXBsYWNlbWVudEZp
bGUoY29uc3QgU3RyaW5nJiBwYXRoKSBmaW5hbDsKICAgICAKICNpZiBFTkFCTEUoSU5QVVRfVFlQ
RV9DT0xPUikKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2VyPiBjcmVh
dGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgV2ViQ29y
ZTo6Q29sb3ImKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9v
c2VyPiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50JiwgY29u
c3QgV2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElPU19UT1VD
SF9FVkVOVFMpCkBAIC0xNTIsMTAgKzE1MiwxMCBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0o
SU9TKQogICAgIHZvaWQgZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoYm9vbCkgZmluYWw7Ci0gICAg
dm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoV2ViQ29yZTo6RnJhbWUqLCBib29sKSBm
aW5hbDsKLSAgICB2b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShXZWJDb3JlOjpGcmFtZSopIGZp
bmFsOwotICAgIHZvaWQgY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKFdlYkNvcmU6OkZyYW1l
KikgZmluYWw7Ci0gICAgdm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJh
bWUoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKKyAgICB2b2lkIHNldE5lZWRzU2Nyb2xsTm90aWZp
Y2F0aW9ucyhXZWJDb3JlOjpGcmFtZSYsIGJvb2wpIGZpbmFsOworICAgIHZvaWQgb2JzZXJ2ZWRD
b250ZW50Q2hhbmdlKFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CisgICAgdm9pZCBjbGVhckNvbnRl
bnRDaGFuZ2VPYnNlcnZlcnMoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKKyAgICB2b2lkIG5vdGlm
eVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShXZWJDb3JlOjpGcmFtZSYpIGZpbmFs
OwogICAgIGJvb2wgaXNTdG9wcGluZygpIGZpbmFsOwogCiAgICAgdm9pZCBkaWRMYXlvdXQoTGF5
b3V0VHlwZSA9IE5vcm1hbExheW91dCkgZmluYWw7CkBAIC0yMDMsMTIgKzIwMywxMiBAQCBwcml2
YXRlOgogICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBmaW5h
bDsKICAgICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rp
b24oKSBmaW5hbDsKICAgICBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3QgZmluYWw7Ci0gICAg
UmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCopIGNvbnN0IGZpbmFsOwotICAgIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1
cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBj
b25zdCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1l
bnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFdl
YkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCYpIGNvbnN0IGZpbmFsOwogCiAgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBh
dHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKSBmaW5hbDsKLSAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihX
ZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKKyAgICB2b2lk
IGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGZpbmFsOworICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVy
KFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwogICAgIHZv
aWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIGZpbmFsOwogICAgIHZv
aWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBmaW5hbDsKICAgICBib29sIGFkanVz
dExheWVyRmx1c2hUaHJvdHRsaW5nKFdlYkNvcmU6OkxheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpG
bGFncykgZmluYWw7CkBAIC0yMzMsMTEgKzIzMywxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbGF5
ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKLSAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBj
cmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihXZWJDb3JlOjpQYWdlKikgY29uc3QgZmluYWw7Cisg
ICAgUmVmUHRyPFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdD
b29yZGluYXRvcihXZWJDb3JlOjpQYWdlJikgY29uc3QgZmluYWw7CiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKElPUykKLSAgICB2b2lkIGVsZW1lbnREaWRSZWZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5v
ZGUqKSBmaW5hbDsKKyAgICB2b2lkIGVsZW1lbnREaWRSZWZvY3VzKGNvbnN0IFdlYkNvcmU6OkVs
ZW1lbnQmKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgKFBMQVRGT1JNKElPUykgJiYgSEFWRShBVktJ
VCkpIHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkp
CkBAIC0yNTMsMTQgKzI1MywxNCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCi0gICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0
IFdlYkNvcmU6OkVsZW1lbnQqLCBib29sIHdpdGhLZXlib2FyZCkgZmluYWw7Ci0gICAgdm9pZCBl
bnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBmaW5hbDsKLSAgICB2
b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KikgZmluYWw7Cisg
ICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1l
bnQmLCBib29sIHdpdGhLZXlib2FyZCkgZmluYWw7CisgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5G
b3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKKyAgICB2b2lkIGV4aXRGdWxsU2Ny
ZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAogI2lmIFBM
QVRGT1JNKENPQ09BKQotICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5v
ZGUqKSBmaW5hbDsKLSAgICB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUq
KSBmaW5hbDsKKyAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhXZWJDb3JlOjpFbGVtZW50JikgZmlu
YWw7CisgICAgdm9pZCBlbGVtZW50RGlkQmx1cihXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CiAK
ICAgICB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcigpIGZpbmFsOwogI2VuZGlmCkBAIC0yOTEsMTAg
KzI5MSwxMCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBwbHVnSW5FeHRyYVN0eWxlU2hlZXQoKSBj
b25zdCBmaW5hbDsKICAgICBTdHJpbmcgcGx1Z0luRXh0cmFTY3JpcHQoKSBjb25zdCBmaW5hbDsK
IAotICAgIHZvaWQgZGlkQWRkSGVhZGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZp
bmFsOwotICAgIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciop
IGZpbmFsOworICAgIHZvaWQgZGlkQWRkSGVhZGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciYpIGZpbmFsOworICAgIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NM
YXllciYpIGZpbmFsOwogCi0gICAgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZp
ZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3KikgY29uc3QgZmluYWw7CisgICAgYm9vbCBzaG91
bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3Jikg
Y29uc3QgZmluYWw7CiAKICAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncywgdWludDY0X3QpIGZpbmFsOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDMyYWY1OWYzZmJkNDc0MDlmNDI4ODYz
NjlmYTA4YmVkYWNiNWQ0NjguLjQzMzk4ZmM5M2MyM2QxYjEzOGU3YTQ1ZDJhMTllYThkMzNkM2Fk
OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC02NDAsMTMgKzY0MCwx
MyBAQCBGcmFtZSogV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoQ3JlYXRlUGFnZShjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aQogewogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBt
X2ZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCF3ZWJQYWdlKQotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBKdXN0IGNhbGwgdGhyb3VnaCB0byB0aGUg
Y2hyb21lIGNsaWVudC4KICAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QobV9mcmFtZS0+Y29y
ZUZyYW1lKCktPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIG5hdmlnYXRpb25BY3Rpb24u
cmVzb3VyY2VSZXF1ZXN0KCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6
Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Olllcywg
TmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBuYXZpZ2F0aW9uQWN0aW9uLnNob3VsZE9wZW5F
eHRlcm5hbFVSTHNQb2xpY3koKSk7Ci0gICAgUGFnZSogbmV3UGFnZSA9IHdlYlBhZ2UtPmNvcmVQ
YWdlKCktPmNocm9tZSgpLmNyZWF0ZVdpbmRvdyhtX2ZyYW1lLT5jb3JlRnJhbWUoKSwgcmVxdWVz
dCwgV2luZG93RmVhdHVyZXMoKSwgbmF2aWdhdGlvbkFjdGlvbik7CisgICAgUGFnZSogbmV3UGFn
ZSA9IHdlYlBhZ2UtPmNvcmVQYWdlKCktPmNocm9tZSgpLmNyZWF0ZVdpbmRvdygqbV9mcmFtZS0+
Y29yZUZyYW1lKCksIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIG5hdmlnYXRpb25BY3Rpb24p
OwogICAgIGlmICghbmV3UGFnZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgIAogICAgIHJldHVybiAmbmV3UGFnZS0+bWFpbkZyYW1lKCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3Bl
Y3RvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkluc3BlY3RvckNsaWVudC5jcHAKaW5kZXggOTY4OTI5ZmRhMzQ3OWFhZDJiZTRhMTBhMGI0
NTk2YWUxNzU1NmQ1MC4uNDFiMzRmMDBhOGM2ZmQyMDNjNTgzNDIwM2U4MjgwYTVjNDQ1NmY3OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCBXZWJJbnNw
ZWN0b3JDbGllbnQ6On5XZWJJbnNwZWN0b3JDbGllbnQoKQogICAgIH0KIAogICAgIGlmIChtX3Bh
aW50UmVjdE92ZXJsYXkgJiYgbV9wYWdlLT5tYWluRnJhbWUoKSkKLSAgICAgICAgbV9wYWdlLT5t
YWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXko
bV9wYWludFJlY3RPdmVybGF5LmdldCgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOwor
ICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmlu
c3RhbGxQYWdlT3ZlcmxheSgqbV9wYWludFJlY3RPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1v
ZGU6OkZhZGUpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6aW5zcGVjdGVkUGFnZURl
c3Ryb3llZCgpCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6Omhp
ZGVIaWdobGlnaHQoKQogewogI2lmICFQTEFURk9STShJT1MpCiAgICAgaWYgKG1faGlnaGxpZ2h0
T3ZlcmxheSAmJiBtX3BhZ2UtPm1haW5GcmFtZSgpKQotICAgICAgICBtX3BhZ2UtPm1haW5GcmFt
ZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheShtX2hpZ2hs
aWdodE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CisgICAgICAgIG1fcGFn
ZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVy
bGF5KCptX2hpZ2hsaWdodE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CiAj
ZWxzZQogICAgIG1fcGFnZS0+aGlkZUluc3BlY3RvckhpZ2hsaWdodCgpOwogI2VuZGlmCkBAIC0x
MzYsNyArMTM2LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OnNob3dQYWludFJlY3QoY29u
c3QgRmxvYXRSZWN0JiByZWN0KQogewogICAgIGlmICghbV9wYWludFJlY3RPdmVybGF5KSB7CiAg
ICAgICAgIG1fcGFpbnRSZWN0T3ZlcmxheSA9IFBhZ2VPdmVybGF5OjpjcmVhdGUoKnRoaXMsIFBh
Z2VPdmVybGF5OjpPdmVybGF5VHlwZTo6RG9jdW1lbnQpOwotICAgICAgICBtX3BhZ2UtPm1haW5G
cmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkobV9wYWlu
dFJlY3RPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgICAg
IG1fcGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdl
T3ZlcmxheSgqbV9wYWludFJlY3RPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90
RmFkZSk7CiAgICAgfQogCiAgICAgaWYgKCFtX3BhaW50SW5kaWNhdG9yTGF5ZXJDbGllbnQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVy
LmNwcAppbmRleCAxZTBjZWY0NjUxYjkzYmY4MGZiNzA1NjY1YzZmNjE1ZmVhYmMyYTg5Li4zMzAz
MmMxNzJiMWIyNDM4ZGFmZDYwYzM0NjQ2NmVhNDUwNWU0YTdiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKQEAgLTE4OSw3
ICsxODksNyBAQCB2b2lkIEZpbmRDb250cm9sbGVyOjp1cGRhdGVGaW5kVUlBZnRlclBhZ2VTY3Jv
bGwoYm9vbCBmb3VuZCwgY29uc3QgU3RyaW5nJiBzdHJpbgogCiAgICAgaWYgKCFzaG91bGRTaG93
T3ZlcmxheSkgewogICAgICAgICBpZiAobV9maW5kUGFnZU92ZXJsYXkpCi0gICAgICAgICAgICBt
X3dlYlBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQ
YWdlT3ZlcmxheShtX2ZpbmRQYWdlT3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRl
KTsKKyAgICAgICAgICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX2ZpbmRQYWdlT3ZlcmxheSwgUGFnZU92ZXJs
YXk6OkZhZGVNb2RlOjpGYWRlKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoIW1fZmluZFBh
Z2VPdmVybGF5KSB7CiAgICAgICAgICAgICBhdXRvIGZpbmRQYWdlT3ZlcmxheSA9IFBhZ2VPdmVy
bGF5OjpjcmVhdGUoKnRoaXMsIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZTo6RG9jdW1lbnQpOwpA
QCAtMzEyLDcgKzMxMiw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmhpZGVGaW5kVUkoKQogewog
ICAgIG1fZmluZE1hdGNoZXMuY2xlYXIoKTsKICAgICBpZiAobV9maW5kUGFnZU92ZXJsYXkpCi0g
ICAgICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVu
aW5zdGFsbFBhZ2VPdmVybGF5KG1fZmluZFBhZ2VPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1v
ZGU6OkZhZGUpOworICAgICAgICBtX3dlYlBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNv
bnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqbV9maW5kUGFnZU92ZXJsYXksIFBhZ2VP
dmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CiAKICAgICBQbHVnaW5WaWV3KiBwbHVnaW5WaWV3ID0g
cGx1Z2luVmlld0ZvckZyYW1lKG1fd2ViUGFnZS0+bWFpbkZyYW1lKCkpOwogICAgIApAQCAtMzI1
LDYgKzMyNSw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmhpZGVGaW5kVUkoKQogfQogCiAjaWYg
IVBMQVRGT1JNKElPUykKKwogYm9vbCBGaW5kQ29udHJvbGxlcjo6dXBkYXRlRmluZEluZGljYXRv
cihGcmFtZSYgc2VsZWN0ZWRGcmFtZSwgYm9vbCBpc1Nob3dpbmdPdmVybGF5LCBib29sIHNob3Vs
ZEFuaW1hdGUpCiB7CiAgICAgUmVmUHRyPFRleHRJbmRpY2F0b3I+IGluZGljYXRvciA9IFRleHRJ
bmRpY2F0b3I6OmNyZWF0ZVdpdGhTZWxlY3Rpb25JbkZyYW1lKHNlbGVjdGVkRnJhbWUsIFRleHRJ
bmRpY2F0b3JPcHRpb25JbmNsdWRlTWFyZ2luSWZSYW5nZU1hdGNoZXNTZWxlY3Rpb24sIHNob3Vs
ZEFuaW1hdGUgPyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Qm91bmNlIDog
VGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246Ok5vbmUpOwpAQCAtMzY2LDYgKzM2
Nyw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmRpZEZhaWxUb0ZpbmRTdHJpbmcoKQogdm9pZCBG
aW5kQ29udHJvbGxlcjo6ZGlkSGlkZUZpbmRJbmRpY2F0b3IoKQogewogfQorCiAjZW5kaWYKIAog
dm9pZCBGaW5kQ29udHJvbGxlcjo6c2hvd0ZpbmRJbmRpY2F0b3JJblNlbGVjdGlvbigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCAzNjI5
ZDRhZTU4YzdkNDY4NjJlMTVhNzVmOTg0YmRjZDVlZWI4ZjQ2Li45OTlmZTI1YzEwMGEzMTM3NmIw
ZGY3NWE0MzA3YzMxY2E3ZmU0ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBzdGF0aWMgdWludDY0X3Qg
Z2VuZXJhdGVMaXN0ZW5lcklEKCkKICAgICByZXR1cm4gdW5pcXVlTGlzdGVuZXJJRCsrOwogfQog
Ci1QYXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUo
V2ViUGFnZSogcGFnZSwgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSkKK1JlZjxXZWJGcmFtZT4g
V2ViRnJhbWU6OmNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2UqIHBhZ2UsIFdlYkNvcmU6
OkZyYW1lKiBjb3JlRnJhbWUpCiB7CiAgICAgYXV0byBmcmFtZSA9IGNyZWF0ZShzdGQ6OnVuaXF1
ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KHN0YXRpY19jYXN0PFdlYkZyYW1lTG9hZGVyQ2xp
ZW50Kj4oJmNvcmVGcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkpKSk7CiAgICAgcGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDcmVhdGVNYWluRnJhbWUoZnJhbWUtPmZyYW1lSUQo
KSksIHBhZ2UtPnBhZ2VJRCgpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5X
aGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CkBAIC0xMjAsMzAgKzEyMCwzMiBAQCBQYXNzUmVmUHRy
PFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSogcGFn
ZSwgV2ViQ29yZTo6RgogICAgIHJldHVybiBmcmFtZTsKIH0KIAotUGFzc1JlZlB0cjxXZWJGcmFt
ZT4gV2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYg
ZnJhbWVOYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCkKK1JlZjxXZWJG
cmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmlu
ZyYgZnJhbWVOYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCkKIHsKICAg
ICBhdXRvIGZyYW1lID0gY3JlYXRlKHN0ZDo6bWFrZV91bmlxdWU8V2ViRnJhbWVMb2FkZXJDbGll
bnQ+KCkpOwogICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ3JlYXRl
U3ViZnJhbWUoZnJhbWUtPmZyYW1lSUQoKSksIHBhZ2UtPnBhZ2VJRCgpLCBJUEM6OlNlbmRPcHRp
b246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiAKLSAgICBS
ZWY8V2ViQ29yZTo6RnJhbWU+IGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZS0+Y29yZVBh
Z2UoKSwgb3duZXJFbGVtZW50LCBmcmFtZS0+bV9mcmFtZUxvYWRlckNsaWVudC5nZXQoKSk7Cisg
ICAgYXV0byBjb3JlRnJhbWUgPSBGcmFtZTo6Y3JlYXRlKHBhZ2UtPmNvcmVQYWdlKCksIG93bmVy
RWxlbWVudCwgZnJhbWUtPm1fZnJhbWVMb2FkZXJDbGllbnQuZ2V0KCkpOwogICAgIGZyYW1lLT5t
X2NvcmVGcmFtZSA9IGNvcmVGcmFtZS5wdHIoKTsKLSAgICBmcmFtZS0+bV9jb3JlRnJhbWUtPnRy
ZWUoKS5zZXROYW1lKGZyYW1lTmFtZSk7CisKKyAgICBjb3JlRnJhbWUtPnRyZWUoKS5zZXROYW1l
KGZyYW1lTmFtZSk7CiAgICAgaWYgKG93bmVyRWxlbWVudCkgewogICAgICAgICBBU1NFUlQob3du
ZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCkpOwotICAgICAgICBvd25lckVsZW1lbnQtPmRv
Y3VtZW50KCkuZnJhbWUoKS0+dHJlZSgpLmFwcGVuZENoaWxkKFdURk1vdmUoY29yZUZyYW1lKSk7
CisgICAgICAgIG93bmVyRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpLT50cmVlKCkuYXBwZW5k
Q2hpbGQoY29yZUZyYW1lLmdldCgpKTsKICAgICB9Ci0gICAgZnJhbWUtPm1fY29yZUZyYW1lLT5p
bml0KCk7CisgICAgY29yZUZyYW1lLT5pbml0KCk7CisKICAgICByZXR1cm4gZnJhbWU7CiB9CiAK
LVBhc3NSZWZQdHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdl
YkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRlckNsaWVudCkKK1JlZjxXZWJGcmFtZT4gV2Vi
RnJhbWU6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1l
TG9hZGVyQ2xpZW50KQogewogICAgIGF1dG8gZnJhbWUgPSBhZG9wdFJlZigqbmV3IFdlYkZyYW1l
KFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKSk7CiAKICAgICAvLyBBZGQgZXhwbGljdCByZWYo
KSB0aGF0IHdpbGwgYmUgYmFsYW5jZWQgaW4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lTG9h
ZGVyRGVzdHJveWVkKCkuCiAgICAgZnJhbWUtPnJlZigpOwogCi0gICAgcmV0dXJuIFdURk1vdmUo
ZnJhbWUpOworICAgIHJldHVybiBmcmFtZTsKIH0KIAogV2ViRnJhbWU6OldlYkZyYW1lKHN0ZDo6
dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4gZnJhbWVMb2FkZXJDbGllbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCmluZGV4IDIzZDQ4ZDI5
ZjgzNzY2NTM4NWNmNDE0MWEwYzRmNmU2M2M1NWM2NjAuLmQ0YzdhNDA4MzRhMjg4OWIyYTFhZmQx
ZmNkZTM3MDZmYWUwMjZiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJGcmFtZS5oCkBAIC02Niw4ICs2Niw4IEBAIHN0cnVjdCBGcmFtZUluZm9EYXRhOwogCiBj
bGFzcyBXZWJGcmFtZSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6
OkJ1bmRsZUZyYW1lPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWU+
IGNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2UqLCBXZWJDb3JlOjpGcmFtZSopOwotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZyYW1lPiBjcmVhdGVTdWJmcmFtZShXZWJQYWdlKiwgY29u
c3QgU3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCopOwor
ICAgIHN0YXRpYyBSZWY8V2ViRnJhbWU+IGNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2Uq
LCBXZWJDb3JlOjpGcmFtZSopOworICAgIHN0YXRpYyBSZWY8V2ViRnJhbWU+IGNyZWF0ZVN1YmZy
YW1lKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1l
T3duZXJFbGVtZW50Kik7CiAgICAgfldlYkZyYW1lKCk7CiAKICAgICAvLyBDYWxsZWQgd2hlbiB0
aGUgRnJhbWVMb2FkZXJDbGllbnQgKGFuZCB0aGVyZWZvcmUgdGhlIFdlYkNvcmU6OkZyYW1lKSBp
cyBiZWluZyB0b3JuIGRvd24uCkBAIC0xNjYsOCArMTY2LDggQEAgcHVibGljOgogI2VuZGlmCiAK
IHByaXZhdGU6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWU+IGNyZWF0ZShzdGQ6OnVu
aXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsKLSAgICBXZWJGcmFtZShzdGQ6OnVuaXF1
ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsKKyAgICBzdGF0aWMgUmVmPFdlYkZyYW1lPiBj
cmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50Pik7CisgICAgZXhwbGlj
aXQgV2ViRnJhbWUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50Pik7CiAKICAg
ICBXZWJDb3JlOjpGcmFtZSogbV9jb3JlRnJhbWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKaW5kZXggZDY0Nzg1OTdhODdmZWYz
ZGMwYjk5OTM1MjEyNjc2ZWZjYzQ5MzMyMy4uMDE2ZDczOGZiNjEyZDI0M2MwMDQ5ZTUyMDE1ODYy
MTMwZmQ5NThmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6
b3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogICAgIEZyYW1lJiBpbnNwZWN0
ZWRNYWluRnJhbWUgPSBpbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKTsKICAgICBGcmFtZUxvYWRS
ZXF1ZXN0IHJlcXVlc3QoaW5zcGVjdGVkTWFpbkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3Jp
Z2luKCksIFJlc291cmNlUmVxdWVzdCh1cmxTdHJpbmcpLCAiX2JsYW5rIiwgTG9ja0hpc3Rvcnk6
Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2
aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFJl
cGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eTo6U2hvdWxkTm90QWxsb3cpOwogCi0gICAgUGFnZSogbmV3UGFnZSA9IGluc3BlY3RlZFBhZ2Ut
PmNocm9tZSgpLmNyZWF0ZVdpbmRvdygmaW5zcGVjdGVkTWFpbkZyYW1lLCByZXF1ZXN0LCBXaW5k
b3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCks
IE5hdmlnYXRpb25UeXBlOjpMaW5rQ2xpY2tlZCkpOworICAgIFBhZ2UqIG5ld1BhZ2UgPSBpbnNw
ZWN0ZWRQYWdlLT5jaHJvbWUoKS5jcmVhdGVXaW5kb3coaW5zcGVjdGVkTWFpbkZyYW1lLCByZXF1
ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QucmVzb3VyY2VS
ZXF1ZXN0KCksIE5hdmlnYXRpb25UeXBlOjpMaW5rQ2xpY2tlZCkpOwogICAgIGlmICghbmV3UGFn
ZSkKICAgICAgICAgcmV0dXJuOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299444</attachid>
            <date>2017-01-21 13:54:57 -0800</date>
            <delta_ts>2017-01-21 18:27:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167224-20170121135302.patch</filename>
            <type>text/plain</type>
            <size>375934</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNhYzgwMTFmMWU0MTEy
NTE4YjI5Y2IwYjZkNDAyNzk2YTRkYTUwZC4uNTM2YTBkMWYwOTRmZWQzOTgxMjEwMDRjZTQ0NmFm
NTM2N2JkYjBjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzNSBAQAorMjAxNy0wMS0yMCAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIg
ZnJvbSAicGFnZSIgZGlyZWN0b3J5IG9mIFdlYkNvcmUsIGFsc28gZGVwbG95IHJlZmVyZW5jZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIyNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9ET01XaW5kb3dGZXRjaC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dG
ZXRjaDo6ZmV0Y2gpOiBVc2UgRE9NV2luZG93Ojpkb2N1bWVudCBpbnN0ZWFkIG9mCisgICAgICAg
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUNvbnRleHQ6
OmRhdGFiYXNlRXhjZWVkZWRRdW90YSk6IFBhc3MgYSByZWZlcmVuY2UuCisKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAg
ICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eVNob3dD
b250ZXh0TWVudV0pOgorICAgICAgICBQYXNzIGEgcmVmZXJlbmNlLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01X
aW5kb3c6OmdldE93blByb3BlcnR5U2xvdCk6IFBhc3MgYSByZWZlcmVuY2UuCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNoaWxkcmVu
Q2hhbmdlZCk6IFBhc3MgYSByZWZlcmVuY2UuIEFsc28gbWFkZSB0aGUKKyAgICAgICAgZGlkUmVj
ZWl2ZURvY1R5cGUgY29kZSB1bmNvbmRpdGlvbmFsIGluc3RlYWQgb2YgaU9TLW9ubHkuCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2Jq
ZWN0cyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVZpZXdwb3J0
QXJndW1lbnRzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Rm9jdXNl
ZEVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVET01X
aW5kb3cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0YWtlRE9NV2luZG93
RnJvbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlcXVlc3RGdWxsU2Ny
ZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtp
dEV4aXRGdWxsc2NyZWVuKTogRGl0dG8uCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Zm9jdXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmJsdXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRpc3Bh
dGNoRm9jdXNFdmVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZGlzcGF0
Y2hCbHVyRXZlbnQpOiBEaXR0by4KKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogRGl0dG8uCisgICAgICAgICogZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVQcmludCk6
IERpdHRvLgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldEZvY3VzZWRFbGVtZW50SWZOZWVkZWQpOiBEaXR0
by4KKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkRnJhbWU6OkNhY2hlZEZyYW1lKTogRGl0dG8uCisgICAgICAgICogaHRtbC9Db2xvcklucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6aGFuZGxlRE9NQWN0
aXZhdGVFdmVudCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2Fi
bGUpOiBEaXR0by4KKworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0tleWJvYXJkRm9j
dXNhYmxlKTogUGFzcyBhIHJlZmVyZW5jZSwKKyAgICAgICAgYW5kIGFsc28gcmV3cm90ZSB0byB1
c2UgJiYgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c3VwcG9ydHNGdWxsc2NyZWVu
KTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9TcGluQnV0dG9uRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6
OnJlbGVhc2VDYXB0dXJlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjOjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogRGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250ZXh0TWVudSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpkaXNwYXRjaEV2ZW50QXNDb250
ZXh0TWVudUV2ZW50KTogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUp
OiBVcGRhdGVkIHRvIHRha2UgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJv
bWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0p
OiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNvbW1p
dFByb3Zpc2lvbmFsTG9hZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmNsb3NlQW5kUmVtb3ZlQ2hpbGQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OmRldGFjaEZyb21QYXJlbnQpOiBQYXNzIGEgcmVmZXJlbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpc3BhdGNoQmVmb3JlVW5sb2FkRXZlbnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6IERpdHRvLgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAg
KiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVj
a2VyOjpjaGVja05ld1dpbmRvd1BvbGljeSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnJlY2FsY3VsYXRlQXZhaWxhYmxlU3BhY2VJblF1
b3RhKTogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmg6IFJldHVybiBhIHJlZmVyZW5jZSBmcm9tIG9yaWdpbi4KKworICAgICAgICAqIGxv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4pOiBU
YWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZSk6CisgICAg
ICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnN0
b3JlKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjpjaGVja09yaWdpblF1b3RhKTogVXBkYXRlZCBzaW5jZSBvcmlnaW4KKyAgICAg
ICAgbm93IHJldHVybnMgYXJlZmVyZW5jZS4KKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAg
ICogbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEpOiBQYXNzIGEgcmVmZXJlbmNlLgor
ICAgICAgICAqIG1hdGhtbC9NYXRoTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1h
dGhNTEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOiBEaXR0by4KKworICAgICAgICAqIHBh
Z2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Q2hyb21lKTogTW92ZWQg
aW5pdGlhbGl6YXRpb24gb2YgZGF0YSBtZW1iZXJzIHRvIHRoZQorICAgICAgICBjbGFzcyBkZWZp
bml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2VkKTog
VGFrZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlV2luZG93
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpydW5KYXZhU2NyaXB0
QWxlcnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdENv
bmZpcm0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdFBy
b21wdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZXRTdGF0dXNiYXJUZXh0
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnByaW50KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWU6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lOjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWU6OmRpZFJlY2VpdmVEb2NUeXBlKTogRGl0dG8uIEFsc28gbWFkZSB1bmNv
bmRpdGlvbmFsLCBidXQKKyAgICAgICAgZW1wdHkgZm9yIG5vbi1pT1MgcGxhdGZvcm1zLgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lOjpyZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKTogVGFr
ZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6dW5yZWdpc3RlclBvcHVw
T3BlbmluZ09ic2VydmVyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWUuaDogVXBkYXRl
ZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogVGFrZSBy
ZWZlcmVuY2VzLiBBbHNvIHVwZGF0ZWQgc29tZSBhcmd1bWVudHMgZnJvbQorICAgICAgICBOb2Rl
IHRvIEVsZW1lbnQuCisKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmhhbmRsZUNvbnRleHRN
ZW51RXZlbnQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudSk6IERpdHRvLiBB
bHNvIHVzZQorICAgICAgICBtYWtlX3VuaXF1ZSBpbnN0ZWFkIG9mIHVuaXF1ZV9wdHIgcGx1cyBu
ZXcuCisgICAgICAgIChXZWJDb3JlOjpvcGVuTmV3V2luZG93KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjppbnNlcnRVbmljb2RlQ2hhcmFjdGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVu
dUF0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNo
b3dJbWFnZUNvbnRyb2xzTWVudSk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2UvRE9N
VGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OmZpcmVkKTogUGFzcyBhIHJl
ZmVyZW5jZS4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBvc3RNZXNzYWdlVGltZXI6OlBvc3RNZXNzYWdlVGltZXIpOiBUYWtlIFJlZiYmIGluc3Rl
YWQgb2YKKyAgICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
YWRqdXN0V2luZG93UmVjdCk6IFVzZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6YWxsb3dQb3BVcCk6IERpdHRvLiBBbHNvIHJld3JpdGUgdG8gdXNlIHx8IGluc3Rl
YWQKKyAgICAgICAgb2Ygc3VjY2Vzc2l2ZSBpZiBzdGF0ZW1lbnRzLgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6RE9NV2luZG93KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OmRpZFNlY3VyZVRyYW5zaXRpb25Ubyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjpyZWdpc3RlclByb3BlcnR5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3c6OnVucmVnaXN0ZXJQcm9wZXJ0eSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQpOiBNZXJnZSB3aXRoIHRoZSBmdW5jdGlv
bgorICAgICAgICBpbW1lZGlhdGVseSBmb2xsb3dlZCwgY2FsbGVkIG9ubHkgZnJvbSBoZXJlLgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmln
aW5DaGVjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnByaW50KTog
UGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWxlcnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y29uZmlybSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpwcm9tcHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c2V0U3RhdHVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OnNldERlZmF1bHRTdGF0dXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6bW92ZUJ5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1vdmVU
byk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVCeSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVUbyk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6RE9NV2luZG93OjpjbGVhclRpbWVvdXQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6aW5jcmVtZW50U2Nyb2xsRXZlbnRMaXN0ZW5lcnNDb3VudCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkZWNyZW1lbnRTY3JvbGxFdmVudExp
c3RlbmVyc0NvdW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNob3dN
b2RhbERpYWxvZyk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZS4gQUxzbyBtYWRlIGZ1bmN0aW9ucyBwcml2YXRlCisgICAgICAgIGFuZCBm
aW5hbC4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93UHJvcGVydHk6OkRPTVdpbmRvd1Byb3BlcnR5KTogUGFzcyBhIHJl
ZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp+RE9NV2luZG93
UHJvcGVydHkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3
aWxsRGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJhbWUp
OiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVnaW9uT3ZlcmxheTo6Y3JlYXRlKTogUmV0dXJuIFJlZlB0ciBpbnN0ZWFk
IG9mIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpSZWdpb25PdmVybGF5Ojp+UmVnaW9u
T3ZlcmxheSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEZWJ1Z1BhZ2VP
dmVybGF5czo6c2hvd1JlZ2lvbk92ZXJsYXkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRl
YnVnUGFnZU92ZXJsYXlzOjpoaWRlUmVnaW9uT3ZlcmxheSk6IERpdHRvLgorCisgICAgICAgICog
cGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxl
cjo6ZHJhZ0V4aXRlZCk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6cGVyZm9ybURyYWdPcGVyYXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6dHJ5REhUTUxEcmFnKTogRGl0dG8uCisKKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6IFJlcGxhY2VkIE9wdGlvbmFsQ3Vyc29yIHdpdGggc3Rk
OjpvcHRpb25hbDxDdXJzb3I+LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRh
dGVDdXJzb3IpOiBSZWZhY3RvciBpbnRvIHR3byBmdW5jdGlvbnMgc28gd2UKKyAgICAgICAgY2Fu
IHNoYXJlIG1vcmUgY29kZSB3aXRoIHNlbGVjdEN1cnNvci4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKTogVXBkYXRlZCB0byB1c2Ugc3RkOjpvcHRpb25hbC4K
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3ZlRXZlbnQpOiBV
c2UgdGhlIG5ldyB1cGRhdGVDdXJzb3IuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OnN0YXJ0UGFuU2Nyb2xsaW5nKTogVXNlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERyb3ApOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KTog
VGFrZSBhIHJhdyBwb2ludGVyCisgICAgICAgIGluc3RlYWQgb2YgYSBQYXNzUmVmUHRyLgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZlbnQpOiBVc2UgYSBy
ZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0
ZUFmdGVyRWRpdERyYWdJZk5lZWRlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJzVG9MaW5rcyk6IERpdHRv
LgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4K
KworICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEZyYW1lKTogVGFrZSBwb2ludGVyIGluc3RlYWQK
KyAgICAgICAgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxl
cjo6c2V0Rm9jdXNlZEVsZW1lbnQpOiBUYWtlIHJlZmVyZW5jZSBpbnN0ZWFkIG9mCisgICAgICAg
IFBhc3NSZWZQdHIuCisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDogVXBkYXRlZCBm
b3IgdGhlIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OnRyYW5zZmVyQ2hpbGQpOiBEZWxldGVkLiBVbnVz
ZWQgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OmFwcGVuZENoaWxkKTog
TWVyZ2VkIHdpdGggdGhlIGZvbGxvd2luZyBmdW5jdGlvbgorICAgICAgICBzaW5jZSBpdCdzIG5v
dyBvbmx5IHVzZWQgaGVyZS4gVGFrZSByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVUcmVlOjphY3R1YWxseUFwcGVuZENoaWxkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6cmVtb3ZlQ2hpbGQpOiBUYWtlIHJlZmVy
ZW5jZSBpbnN0ZWFkIG9mIHBvaW50ZXIuCisgICAgICAgIFVzZSBtb3ZlIGluc3RlYWQgb2YgdHJp
Y2tpZXIgc3dhcC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5oOiBVcGRhdGVkIGZvciB0aGUg
YWJvdmUuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnNldENvbnRlbnRzU2l6ZSk6IFVzZSBhIHJlZmVyZW5jZS4KKyAgICAgICAg
KiBwYWdlL01haW5GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6OmRyb3BD
aGlsZHJlbik6IERpdHRvLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpzY3JvbGxpbmdDb29yZGluYXRvcik6IERpdHRvLgorICAgICAgICAqIHBhZ2Uv
UGFnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXk6OmZhZGVBbmlt
YXRpb25UaW1lckZpcmVkKTogRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlT3ZlcmxheUNvbnRyb2xsZXI6Omlu
c3RhbGxQYWdlT3ZlcmxheSk6IFRha2UgcmVmZXJlbmNlCisgICAgICAgIGluc3RlYWQgb2YgUGFz
c1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0
YWxsUGFnZU92ZXJsYXkpOiBUYWtlIHJlZmVyZW5jZQorICAgICAgICBpbnRlYWQgb2YgcG9pbnRl
ci4KKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oOiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpQYWdlU2VyaWFsaXplcik6IE1vdmVkIG1vc3QgaW5p
dGlhbGl6YXRpb24gdG8gdGhlCisgICAgICAgIGNsYXNzIGRlZmluaXRpb24uCisgICAgICAgIChX
ZWJDb3JlOjpQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplKTogVXNlIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVGcmFtZSk6IFVzZSBpbml0aWFs
aXplciBsaXN0IGluc3RlYWQgb2YKKyAgICAgICAgY29uc3RydWN0b3IgZm9yIHJlc291cmNlLgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUNTU1N0eWxlU2hlZXQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjphZGRJbWFnZVRvUmVz
b3VyY2VzKTogRGl0dG8uCisgICAgICAgICogcGFnZS9QYWdlU2VyaWFsaXplci5oOiBSZW1vdmVk
IGNvbnN0cnVjdG9ycyBmcm9tIFBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZQorICAgICAgICBzdHJ1
Y3Qgc2luY2Ugc3RydWN0dXJlcyBkb24ndCByZWFsbHkgbmVlZCB0aGVtLiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUuCisgICAgICAgIENoYW5nZWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yIGlu
dG8gYSBuZXN0ZWQgY2xhc3MuCisKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlRW50cnkuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlRW50cnk6OnN0YXJ0VGltZUNvbXBhcmVMZXNz
VGhhbik6IFVzZSBjb25zdCBSZWZQdHImCisgICAgICAgIGluc3RlYWQgb2YgUGFzc1JlZlB0ciB0
byBjb21wYXJlIFJlZlB0ciBpbiBwbGFjZS4KKworICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VV
c2VyVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omluc2VydFBlcmZvcm1hbmNlRW50cnkp
OiBUYWtlIFJlZiYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKworICAgICAgICAqIHBhZ2UvUmVz
b3VyY2VVc2FnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VVc2FnZU92
ZXJsYXk6On5SZXNvdXJjZVVzYWdlT3ZlcmxheSk6IFVzZSByZWZyZW5jZS4KKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlVXNhZ2VPdmVybGF5Ojppbml0aWFsaXplKTogRGl0dG8uCisKKyAgICAg
ICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmg6IFJlbW92ZWQgdW5uZWVkZWQgaW5j
bHVkZS4KKworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmNsZWFyKTog
VXNlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlOjpmaXJlRXZlbnRzQW5kVXBkYXRlU3R5bGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2gpOiBVc2UgdGhl
CisgICAgICAgIGFwcGVuZCBmdW5jdGlvbiBpbnN0ZWFkIG9mIGEgaGFuZC13cml0dGVuIGFsdGVy
bmF0aXZlLgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFk
ZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKToKKyAgICAgICAgVGFrZSBhIHJlZmVyZW5jZSByYXRo
ZXIgdGhhbiBhIFJlZiYmIHNpbmNlIG5vIGNhbGxlciBpcyBwYXNzaW5nIG93bmVyc2hpcC4KKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oOiBVcGRh
dGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0
eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibGVuZEZ1bmMpOiBSZXR1cm4gUmVm
UHRyIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OmJsZW5kRmlsdGVy
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpjcm9zc2ZhZGVCbGVuZCk6IERpdHRvLgorCisg
ICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlVHJhbnNpdGlvbnMpOiBVcGRhdGVk
IHRvIHVzZQorICAgICAgICBhbmltYXRpb25Gb3JQcm9wZXJ0eSwgd2hpY2ggcmV0dXJucyBhIHJh
dyBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRp
b25Gb3JQcm9wZXJ0eSk6IFJlbmFtZWQgZnJvbQorICAgICAgICBnZXRBbmltYXRpb25Gb3JQcm9w
ZXJ0eSBhbmQgY2hhbmdlZCB0byByZXR1cm4gcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAgICBv
ZiBQYXNzUmVmUHRyLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9J
bXBsaWNpdEFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlv
bjo6b25BbmltYXRpb25FbmQpOiBVc2UgYW5pbWF0aW9uRm9yUHJvcGVydHkuCisgICAgICAgIChX
ZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudCk6IFBhc3MgcmVm
ZXJlbmNlLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQp
OiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyk6IFRha2Ug
cmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2lu
Z0RhdGFUcmFuc2Zlcik6IFJldHVybiBSZWYuCisgICAgICAgICogcGFnZS9ndGsvRXZlbnRIYW5k
bGVyR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9y
bUNvbnRyb2xzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9pb3MvRXZlbnRI
YW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxG
b3JtQ29udHJvbHMpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRy
YW5zZmVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0Fs
bEZvcm1Db250cm9scyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpw
bGF0Zm9ybVByZXBhcmVGb3JXaGVlbEV2ZW50cyk6IERpdHRvLgorCisgICAgICAgICogcGFnZS9t
YWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oOiBUYWtlIFJlZiYmIGZvciByYW5nZXMgaW5z
dGVhZAorICAgICAgICBvZiBQYXNzUmVmUHRyLiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKiBw
YWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6Okhp
Z2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OkhpZ2hsaWdodCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6YnVpbGRQ
b3RlbnRpYWxIaWdobGlnaHRzSWZOZWVkZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkUGhvbmVOdW1iZXJIaWdobGlnaHRzKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFNl
bGVjdGlvbkhpZ2hsaWdodCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVy
bGF5Q29udHJvbGxlcjo6aGlnaGxpZ2h0c0FyZUVxdWl2YWxlbnQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmZpbmRUZWxlcGhvbmVOdW1iZXJI
aWdobGlnaHRDb250YWluaW5nU2VsZWN0aW9uSGlnaGxpZ2h0KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpoYW5kbGVDbGljayk6IERpdHRvLgor
CisgICAgICAgICogcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKyAgICAgICAgKC1b
V2ViVGV4dEluZGljYXRvclZpZXcgaW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpv
ZmZzZXQ6XSk6CisgICAgICAgIFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRy
LgorICAgICAgICAoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRv
cik6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0Fz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDogVXNlIFJlZiYmIGFuZCBSZWZQdHIgaW50ZWFkCisg
ICAgICAgIG9mIFBzYXNSZWZQdHIuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxM
YXRjaGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbExhdGNoaW5nU3RhdGU6
OlNjcm9sbExhdGNoaW5nU3RhdGUpOiBJbml0aWFsaXplIGRhdGEgbWVtYmVycworICAgICAgICBp
biBjbGFzcyBkZWZpbml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0
ZTo6c2V0V2hlZWxFdmVudEVsZW1lbnQpOiBVc2UgcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAg
ICBvZiBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6
c2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudCk6IFVzZSByYXcKKyAgICAgICAgcG9pbnRl
ciBpbnN0ZWFkIG9mIFJlZlB0ciYmLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdT
dGF0ZTo6c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcik6IFVzZSByYXcgcG9pbnRlciBpbnN0ZWFkCisg
ICAgICAgIG9mIFBhc3NSZWZQdHIuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0
Y2hpbmdTdGF0ZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KTogVXNlIFJlZiBpbnN0ZWFkIG9mIFBhc3NSZWZQ
dHIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxkKTog
VXNlIFJlZiYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZU5vZGUuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlTm9kZSk6IFVzZSBSZWYgaW5zdGVhZCBvZiBQ
YXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlOjphdHRhY2hO
b2RlKTogVXBkYXRlZCBmb3IgdGhlIGFidmUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdT
dGF0ZVRyZWU6OmNvbW1pdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlVHJlZS5oOiBEaXR0by4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJl
ZUZyb21TdGF0ZU5vZGUpOiBVc2UgcmVmZXJlbmNlLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaDogUmV0dXJuIFJlZiBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9kZTo6YXBwZW5kQ2hpbGQpOiBUYWtlIFJlZiYmIGluc3Rl
YWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVOb2RlOjpy
ZW1vdmVDaGlsZCk6IFRha2UgcmVmZXJlbmNlIGluc3RlYWQgb2YgcG9pbnRlci4KKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJv
dmUuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpUaHJlYWRlZFNjcm9s
bGluZ1RyZWUpOiBUYWtlIHJlZmVyZW5jZQorICAgICAgICBpbnN0ZWFkIG9mIHBvaW50ZXIuCisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdU
cmVlSU9TLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZSk6
IFRha2UgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlSU9TOjpT
Y3JvbGxpbmdUcmVlSU9TKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
SU9TOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZSk6IFJldHVybiBSZWYgaW5zdGVhZCBvZgorICAg
ICAgICBQYXNzUmVmUHRyLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdU
cmVlSU9TLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYyk6IFVzZSByZWZl
cmVuY2UuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5j
cHA6CisgICAgICAgIChTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGUpOiBUYWtlIGEgcmVmZXJlbmNl
LgorICAgICAgICAoU2Nyb2xsaW5nVHJlZU1hYzo6U2Nyb2xsaW5nVHJlZU1hYyk6IERpdHRvLgor
ICAgICAgICAoU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUpOiBSZXR1
cm4gYSBSZWYgaW5zdGVhZCBvZiBhCisgICAgICAgIFBhc3NSZWZQdHIuCisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaDogVXBkYXRlZCBmb3IgdGhlIGFib3Zl
LgorCisgICAgICAgICogcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKTogVGFrZSByZWZlcmVu
Y2UuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRy
YW5zZmVyKTogUmV0dXJuIFJlZi4KKworICAgICAgICAqIHBsYXRmb3JtL0N1cnNvci5oOiBSZWFy
cmFuZ2VkIHRoZSBoZWFkZXIgYSBiaXQuIEdvdCByaWQgb2YgdGhlIGV4cGxpY2l0CisgICAgICAg
IGNvcHkgY29uc3RydWN0b3IsIGFzc2lnbm1lbnQgb3BlcmF0b3IsIGFuZCBkZXN0cnVjdG9yLiBV
c2luZyB0aGUgb25lcworICAgICAgICB0aGF0IHRoZSBjb21waWxlciBhdXRvbWF0aWNhbGx5IGdl
bmVyYXRlcyB3aWxsIHdvcmsgZm9yIGFsbCBwbGF0Zm9ybXMgYW5kCisgICAgICAgIHdlIHRoZW4g
YWxzbyBnZXQgbW92ZSBjb25zdHJ1Y3RvciBhbmQgbW92ZSBhc3NpZ25tZW50IG9wZXJhdG9yLgor
CisgICAgICAgICogcGxhdGZvcm0vZWZsL0N1cnNvckVmbC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDdXJzb3I6OkN1cnNvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6On5D
dXJzb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yOjpvcGVyYXRvcj0pOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q3Vyc29yOjpDdXJzb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3Vy
c29yOjpvcGVyYXRvcj0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29yOjp+Q3Vy
c29yKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6Q3Vyc29yOjpDdXJzb3IpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Q3Vyc29yOjpvcGVyYXRvcj0pOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3Vyc29y
Ojp+Q3Vyc29yKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vQ3Vyc29yV2luLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEN1cnNvcjo6U2hhcmVkQ3Vyc29yKTogTW92ZWQg
dGhpcyBoZXJlIGZyb20gdGhlIGhlYWRlcgorICAgICAgICBzaW5jZSBpdCBpcyBvbmx5IHVzZWQg
d2l0aGluIHRoaXMgZmlsZS4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZEN1cnNvcjo6Y3JlYXRl
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6OkN1cnNvcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpDdXJzb3I6Om9wZXJhdG9yPSk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpDdXJzb3I6On5DdXJzb3IpOiBEZWxldGVkLgorCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckVtYmVk
ZGVkT2JqZWN0OjpoYW5kbGVVbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvckV2ZW50KToKKyAgICAg
ICAgUGFzcyByZWZlcmVuY2UuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNr
aW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQmFja2luZzo6UmVuZGVyTGF5
ZXJCYWNraW5nKTogR2V0IHRvIEZyYW1lVmlldworICAgICAgICB0aHJvdWdoIHRoZSByZW5kZXIg
dHJlZSBpdHNlbGYsIHJhdGhlciB0aGFuIHRocm91Z2ggdGhlIGZyYW1lLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUxheWVyRm9ySGVhZGVyKTogVXNlIHJlZmVyZW5j
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJG
b3JGb290ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRv
cjo6YXR0YWNoUm9vdExheWVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckNvbXBvc2l0b3I6OmRldGFjaFJvb3RMYXllcik6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJNZW51TGlzdC5jcHA6CisgICAgICAgIChSZW5kZXJNZW51TGlzdDo6c2hvd1BvcHVw
KTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclNlYXJjaEZpZWxkOjphZGRTZWFyY2hSZXN1bHQpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNlYXJjaEZpZWxkOjpzaG93UG9wdXApOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNlYXJjaEZpZWxkOjp2YWx1ZUNoYW5nZWQpOiBE
aXR0by4KKyAgICAgICAgKiBzdmcvU1ZHQUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U1ZHQUVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOiBEaXR0by4KKyAgICAgICAgKiB0ZXN0
aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUGFn
ZU92ZXJsYXlDbGllbnQ6Omluc3RhbGxPdmVybGF5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpNb2NrUGFnZU92ZXJsYXlDbGllbnQ6OnVuaW5zdGFsbEFsbE92ZXJsYXlzKTogRGl0dG8uCisK
IDIwMTctMDEtMjEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMTEwMTIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
aW5kZXggNGEzMzg0NWYxODYxMjIwODI4NWM3NDBmYmQzOWE4OGZmODZiNTUyMi4uY2EyODk2YTVi
YjU1NTA0NmQ5ODk4MDA5MjE2YmM5Y2IxZmJlNWYyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDQxIEBACisyMDE3LTAxLTIwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciBmcm9tICJwYWdlIiBkaXJlY3Rvcnkgb2YgV2ViQ29y
ZSwgYWxzbyBkZXBsb3kgcmVmZXJlbmNlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MjI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlUXVv
dGFNYW5hZ2VyLm1tOgorICAgICAgICAoLVtXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2Vy
IHF1b3RhXSk6IFBhc3MgcmVmZXJlbmNlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lmg6IFVwZGF0ZWQgZm9yIGNoYW5nZXMgdG8gQ2hyb21lQ2xpZW50LgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbToKKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudDo6Zm9jdXNlZEVsZW1lbnRDaGFuZ2VkKTogRGl0dG8uCisgICAgICAgIChXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpOiBEaXR0by4KKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9t
ZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21l
Q2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNocm9tZUNsaWVudDo6cHJpbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVu
dDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKTogRGl0dG8uCisgICAgICAgIChX
ZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRGb2N1cyk6IERpdHRvLgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjplbGVtZW50RGlkQmx1cik6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50OjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6
Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6
OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcik6IERpdHRvLgorICAgICAgICAoV2Vi
Q2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KTogRGl0dG8uCisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KTogRGl0
dG8uCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoK1tXZWJGcmFt
ZSBfY3JlYXRlRnJhbWVXaXRoUGFnZTpmcmFtZU5hbWU6ZnJhbWVWaWV3Om93bmVyRWxlbWVudDpd
KToKKyAgICAgICAgVXBkYXRlZCBmb3IgY2hhbmdlIHRvIHRoZSBhcHBlbmRDaGlsZCBmdW5jdGlv
bi4KKwogMjAxNy0wMS0yMCAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbW92ZSBuZXZlciBjaGFuZ2luZyBJbmRleGVkREIgUnVudGltZUVuYWJsZWRG
ZWF0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggZWRkMjFjMGJjNzc0YmNlNzhiZWYxOGQ1YmJmMjhj
ZmUyZTBhZTE5Zi4uMTg3ZWZjMjhlZDE1NGEwNjFmZDg1MWMwYWEwZDlkYjFjOTRjZjc4YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDE3LTAxLTIwICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciBmcm9tICJwYWdl
IiBkaXJlY3Rvcnkgb2YgV2ViQ29yZSwgYWxzbyBkZXBsb3kgcmVmZXJlbmNlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MjI0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBQbHVnaW5zL1BsdWdpblZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6c3RhdHVzKTogUGFzcyByZWZl
cmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3Ojpmb2N1c1BsdWdpbkVsZW1lbnQp
OiBEaXR0by4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyk6IFVwZGF0ZWQgZm9yIGNo
YW5nZSB0byBDaHJvbWVDbGllbnQuCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpy
dW5KYXZhU2NyaXB0QWxlcnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cnVu
SmF2YVNjcmlwdENvbmZpcm0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cnVu
SmF2YVNjcmlwdFByb21wdCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpjb250
ZW50c1NpemVDaGFuZ2VkKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50OjpwcmludCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERh
dGFiYXNlUXVvdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcik6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21l
Q2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNocm9tZUNsaWVudDo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KTogRGl0dG8u
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6IERpdHRv
LgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50
KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5G
b3JFbGVtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVzZVRp
bGVkQmFja2luZ0ZvckZyYW1lVmlldyk6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oOiBEaXR0by4KKwogMjAxNy0wMS0yMCAgSm9zZXBoIFBlY29yYXJv
ICA8cGVjb3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBuZXZlciBjaGFuZ2luZyBJ
bmRleGVkREIgUnVudGltZUVuYWJsZWRGZWF0dXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggM2JhYzdhMDEzMmQx
OWQyMjdiNjUxZWNhZjNhMjlhNTE5ZDlhZjIzNC4uOWY4YjU2OTNiZGE3ZTczNmYzNGYxNTFlZGFl
Yzc2MjY2NDkyM2JhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDE3LTAxLTIwICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0
ciBmcm9tICJwYWdlIiBkaXJlY3Rvcnkgb2YgV2ViQ29yZSwgYWxzbyBkZXBsb3kgcmVmZXJlbmNl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MjI0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZSk6IFJldHVybiBh
IFJlZgorICAgICAgICBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisgICAgICAgICogVUlQcm9jZXNz
L1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
LmNwcDoKKyAgICAgICAgKFdLQnVuZGxlUGFnZUluc3RhbGxQYWdlT3ZlcmxheSk6IFBhc3MgYSBy
ZWZlcmVuY2UuCisgICAgICAgIChXS0J1bmRsZVBhZ2VVbmluc3RhbGxQYWdlT3ZlcmxheSk6IERp
dHRvLgorICAgICAgICAoV0tCdW5kbGVQYWdlSW5zdGFsbFBhZ2VPdmVybGF5V2l0aEFuaW1hdGlv
bik6IERpdHRvLgorICAgICAgICAoV0tCdW5kbGVQYWdlVW5pbnN0YWxsUGFnZU92ZXJsYXlXaXRo
QW5pbWF0aW9uKTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXBy
ZWNhdGVkUERGUGx1Z2luLm1tOgorICAgICAgICAoV2ViS2l0OjpQREZQbHVnaW46OmpzUERGRG9j
UHJpbnQpOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OmZvY3VzUGx1Z2luRWxlbWVudCk6IERp
dHRvLgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpzZXRTdGF0dXNiYXJUZXh0KTogRGl0
dG8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEZvY3Vz
KTogVXBkYXRlZCBmb3IgY2hhbmdlcyB0byBDaHJvbWVDbGllbnQuCisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIpOiBEaXR0by4KKyAgICAgICAgKFdlYktp
dDo6V2ViQ2hyb21lQ2xpZW50OjptYWtlRmlyc3RSZXNwb25kZXIpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3cpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpOiBE
aXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxl
cnQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2Ny
aXB0Q29uZmlybSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1
bkphdmFTY3JpcHRQcm9tcHQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKTogRGl0dG8uCisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cHJpbnQpOiBEaXR0by4KKyAgICAgICAgKFdl
YktpdDo6V2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEpOiBEaXR0by4KKyAg
ICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlQ29sb3JDaG9vc2VyKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6Oldl
YkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIp
OiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTY3JvbGxp
bmdDb29yZGluYXRvcik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6
V2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KTogRGl0dG8uCisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KTog
RGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5
ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRGb290
ZXJMYXllcik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnNob3Vs
ZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyk6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6IERpdHRvLgorCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaENyZWF0ZVBhZ2UpOiBQ
YXNzIHJlZmVyZW5jZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvckNsaWVudDo6
fldlYkluc3BlY3RvckNsaWVudCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0
b3JDbGllbnQ6OmhpZGVIaWdobGlnaHQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViSW5z
cGVjdG9yQ2xpZW50OjpzaG93UGFpbnRSZWN0KTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmluZENvbnRy
b2xsZXI6OnVwZGF0ZUZpbmRVSUFmdGVyUGFnZVNjcm9sbCk6IERpdHRvLgorICAgICAgICAoV2Vi
S2l0OjpGaW5kQ29udHJvbGxlcjo6aGlkZUZpbmRVSSk6IERpdHRvLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6
OmNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKTogUmV0dXJuIFJlZiBpbnN0ZWFkIG9mCisgICAgICAg
IFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpjcmVhdGVTdWJmcmFtZSk6
IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y3JlYXRlKTogRGl0dG8uCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmg6IFVwZGF0ZWQgZm9yIHRlaCBhYm92
ZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3I6Om9wZW5Jbk5ld1RhYik6IFBhc3MgcmVmZXJlbmNl
LgorCiAyMDE3LTAxLTIxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjExMDEyLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9ET01XaW5kb3dGZXRjaC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0RPTVdpbmRvd0ZldGNoLmNwcAppbmRleCBhZGFkYWNk
ODNjMjYwY2ZhOWQ3Njk5ZDM0ZjZhNGJlYzkxZDYxZjA2Li5jNTlkMzY1NmEwYzIxMDdhYTlkYTc2
ZGYxYTU3MzdkZWZmOWY1MmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0RPTVdpbmRvd0ZldGNoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0RPTVdpbmRvd0ZldGNoLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgQ2Fub24gSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCwgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDE2
ICszMywxNyBAQAogI2lmIEVOQUJMRShGRVRDSF9BUEkpCiAKICNpbmNsdWRlICJET01XaW5kb3cu
aCIKLSNpbmNsdWRlICJGZXRjaFJlcXVlc3QuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkZldGNoUmVzcG9uc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIERP
TVdpbmRvd0ZldGNoOjpmZXRjaChET01XaW5kb3cmIHdpbmRvdywgRmV0Y2hSZXF1ZXN0JiByZXF1
ZXN0LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgaWYgKCF3aW5kb3cu
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQorICAgIGF1dG8qIGRvY3VtZW50ID0gd2luZG93LmRv
Y3VtZW50KCk7CisgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwotICAgIEZldGNo
UmVzcG9uc2U6OmZldGNoKCp3aW5kb3cuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCByZXF1ZXN0
LCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBGZXRjaFJlc3BvbnNlOjpmZXRjaCgqZG9jdW1lbnQs
IHJlcXVlc3QsIFdURk1vdmUocHJvbWlzZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
Q29udGV4dC5jcHAKaW5kZXggZTU0ODlmY2I1NDBjOTY5NGFlNDM3NTk2ODNkZTlhY2YwMTgyNGFk
OS4uM2RjYjU2MDM0M2ViNWFiOTQ1MTFhMzkwZWIxOTExYjM5Y2IwZjFhZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNw
cApAQCAtMjA0LDcgKzIwNCw3IEBAIHZvaWQgRGF0YWJhc2VDb250ZXh0OjpkYXRhYmFzZUV4Y2Vl
ZGVkUXVvdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBEYXRhYmFzZURldGFpbHMKICAgICBpZiAoaXM8
RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKSB7CiAgICAgICAgIERvY3VtZW50
JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0
KTsKICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkpCi0gICAgICAgICAg
ICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5leGNlZWRlZERhdGFiYXNlUXVvdGEoZG9jdW1lbnQu
ZnJhbWUoKSwgbmFtZSwgZGV0YWlscyk7CisgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGll
bnQoKS5leGNlZWRlZERhdGFiYXNlUXVvdGEoKmRvY3VtZW50LmZyYW1lKCksIG5hbWUsIGRldGFp
bHMpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQtPmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tCmluZGV4IDQxNmIxODM0YmQ4YWE2MzRiOGM3YmMyY2VlN2YwOTQ2YmM2
YmIwN2UuLjAzMjBmOTU1NmI1N2IyYjAzNzI5MTJiMDhmNTI5MmViNGY4NmVkMmQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmpl
Y3RXcmFwcGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0zNzI5LDcgKzM3MjksNyBAQCAt
ICh2b2lkKWFjY2Vzc2liaWxpdHlTaG93Q29udGV4dE1lbnUKICAgICAgICAgfQogICAgIH0KICAg
ICAKLSAgICBwYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnVBdCgm
cGFnZS0+bWFpbkZyYW1lKCksIHJlY3QuY2VudGVyKCkpOworICAgIHBhZ2UtPmNvbnRleHRNZW51
Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVudUF0KHBhZ2UtPm1haW5GcmFtZSgpLCByZWN0LmNl
bnRlcigpKTsKIH0KIAogLSAodm9pZClhY2Nlc3NpYmlsaXR5U2Nyb2xsVG9WaXNpYmxlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXgg
YTNmNjJlNTY0NDExZjE4MDdiZmYwOTVmNWRiOWNhNTJmNmU2Y2RlNC4uYWU3ZmU4YzE3ZjBkYmNk
MTViNzA1NDg2ZDY0MmE0NThhZTU3YmNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMTc4LDcgKzE3OCw3IEBAIGJvb2wgSlNE
T01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IHN0YXRlLCBQcm9wZXJ0CiAgICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2Jq
ZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAvLyBEZXRlY3Qgd2hl
biB3ZSdyZSBnZXR0aW5nIHRoZSBwcm9wZXJ0eSAnc2hvd01vZGFsRGlhbG9nJywgdGhpcyBpcyBk
aXNhYmxlZCwgYW5kIGhhcyBpdHMgb3JpZ2luYWwgdmFsdWUuCiAgICAgICAgIGJvb2wgaXNTaG93
TW9kYWxEaWFsb2dBbmRTaG91bGRIaWRlID0gcHJvcGVydHlOYW1lID09IHN0YXRlLT5wcm9wZXJ0
eU5hbWVzKCkuc2hvd01vZGFsRGlhbG9nCi0gICAgICAgICAgICAmJiAhRE9NV2luZG93OjpjYW5T
aG93TW9kYWxEaWFsb2coZnJhbWUpCisgICAgICAgICAgICAmJiAhRE9NV2luZG93OjpjYW5TaG93
TW9kYWxEaWFsb2coKmZyYW1lKQogICAgICAgICAgICAgJiYgc2xvdC5pc1ZhbHVlKCkgJiYgaXNI
b3N0RnVuY3Rpb24oc2xvdC5nZXRWYWx1ZShzdGF0ZSwgcHJvcGVydHlOYW1lKSwganNET01XaW5k
b3dJbnN0YW5jZUZ1bmN0aW9uU2hvd01vZGFsRGlhbG9nKTsKICAgICAgICAgLy8gVW5sZXNzIHdl
J3JlIGluIHRoZSBzaG93TW9kYWxEaWFsb2cgc3BlY2lhbCBjYXNlLCB3ZSdyZSBkb25lLgogICAg
ICAgICBpZiAoIWlzU2hvd01vZGFsRGlhbG9nQW5kU2hvdWxkSGlkZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDA4MTYwYWRkM2EzYTNkZTljZDQ4N2ZkNDE0MTM4MjE2MWM5MWYxOWMuLjk0
OGQ2N2NlZTQzOWI1MGRmODBiY2ZmNTliNzdmMDIyNjcwYmNlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmNwcApAQCAtODQ4LDEzICs4NDgsMTEgQEAgdm9pZCBEb2N1bWVudDo6Y2hpbGRyZW5DaGFu
Z2VkKGNvbnN0IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiB7CiAgICAgQ29udGFpbmVyTm9kZTo6Y2hp
bGRyZW5DaGFuZ2VkKGNoYW5nZSk7CiAKLSNpZiBQTEFURk9STShJT1MpCiAgICAgLy8gRklYTUU6
IENocm9tZTo6ZGlkUmVjZWl2ZURvY1R5cGUoKSB1c2VkIHRvIGJlIGNhbGxlZCBvbmx5IHdoZW4g
dGhlIGRvY3R5cGUgY2hhbmdlZC4gV2UgbmVlZCB0byBjaGVjayB0aGUKICAgICAvLyBpbXBhY3Qg
b2YgY2FsbGluZyB0aGlzIHN5c3RlbWF0aWNhbGx5LiBJZiB0aGUgb3ZlcmhlYWQgaXMgbmVnbGln
aWJsZSwgd2UgbmVlZCB0byByZW5hbWUgZGlkUmVjZWl2ZURvY1R5cGUsCiAgICAgLy8gb3RoZXJ3
aXNlLCB3ZSBuZWVkIHRvIGRldGVjdCB0aGUgZG9jIHR5cGUgY2hhbmdlcyBiZWZvcmUgdXBkYXRp
bmcgdGhlIHZpZXdwb3J0LgogICAgIGlmIChQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpKQotICAg
ICAgICBwYWdlLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZShmcmFtZSgpKTsKLSNlbmRpZgor
ICAgICAgICBwYWdlLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZSgqZnJhbWUoKSk7CiAKICAg
ICBFbGVtZW50KiBuZXdEb2N1bWVudEVsZW1lbnQgPSBjaGlsZHJlbk9mVHlwZTxFbGVtZW50Pigq
dGhpcykuZmlyc3QoKTsKICAgICBpZiAobmV3RG9jdW1lbnRFbGVtZW50ID09IG1fZG9jdW1lbnRF
bGVtZW50KQpAQCAtMjM3Miw5ICsyMzcwLDEwIEBAIHZvaWQgRG9jdW1lbnQ6OnBsYXRmb3JtU3Vz
cGVuZE9yU3RvcEFjdGl2ZURPTU9iamVjdHMoKQogewogI2lmIFBMQVRGT1JNKElPUykKICAgICBp
ZiAoV2ViVGhyZWFkQ291bnRPZk9ic2VydmVkQ29udGVudE1vZGlmaWVycygpID4gMCkgewotICAg
ICAgICBGcmFtZSogZnJhbWUgPSB0aGlzLT5mcmFtZSgpOwotICAgICAgICBpZiAoUGFnZSogcGFn
ZSA9IGZyYW1lID8gZnJhbWUtPnBhZ2UoKSA6IG51bGxwdHIpCi0gICAgICAgICAgICBwYWdlLT5j
aHJvbWUoKS5jbGllbnQoKS5jbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoZnJhbWUpOworICAg
ICAgICBpZiAoYXV0byogZnJhbWUgPSB0aGlzLT5mcmFtZSgpKSB7CisgICAgICAgICAgICBpZiAo
YXV0byogcGFnZSA9IGZyYW1lLT5wYWdlKCkpCisgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21l
KCkuY2xpZW50KCkuY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKCpmcmFtZSk7CisgICAgICAg
IH0KICAgICB9CiAjZW5kaWYKIH0KQEAgLTMyMTgsOSArMzIxNyw3IEBAIHZvaWQgRG9jdW1lbnQ6
OnVwZGF0ZVZpZXdwb3J0QXJndW1lbnRzKCkKICAgICAgICAgbV9kaWREaXNwYXRjaFZpZXdwb3J0
UHJvcGVydGllc0NoYW5nZWQgPSB0cnVlOwogI2VuZGlmCiAgICAgICAgIHBhZ2UoKS0+Y2hyb21l
KCkuZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UobV92aWV3cG9ydEFyZ3VtZW50
cyk7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgICAgICBwYWdlKCktPmNocm9tZSgpLmRpZFJlY2Vp
dmVEb2NUeXBlKGZyYW1lKCkpOwotI2VuZGlmCisgICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuZGlk
UmVjZWl2ZURvY1R5cGUoKmZyYW1lKCkpOwogICAgIH0KIH0KIApAQCAtMzY0Miw3ICszNjM5LDcg
QEAgYm9vbCBEb2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgRm9j
dXNEaXJlY3Rpb24gZGlyZWN0aW9uLCBGb2MKICAgICAgICAgICAgIGlmIChpczxIVE1MSW5wdXRF
bGVtZW50Pigqb2xkRm9jdXNlZEVsZW1lbnQpKQogICAgICAgICAgICAgICAgIGRvd25jYXN0PEhU
TUxJbnB1dEVsZW1lbnQ+KCpvbGRGb2N1c2VkRWxlbWVudCkuZW5kRWRpdGluZygpOwogICAgICAg
ICAgICAgaWYgKHBhZ2UoKSkKLSAgICAgICAgICAgICAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVu
dCgpLmVsZW1lbnREaWRCbHVyKG9sZEZvY3VzZWRFbGVtZW50LmdldCgpKTsKKyAgICAgICAgICAg
ICAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVsZW1lbnREaWRCbHVyKCpvbGRGb2N1c2Vk
RWxlbWVudCk7CiAgICAgICAgICAgICBBU1NFUlQoIW1fZm9jdXNlZEVsZW1lbnQpOwogICAgICAg
ICB9CiAKQEAgLTQwMDAsNyArMzk5Nyw3IEBAIHZvaWQgRG9jdW1lbnQ6OmNyZWF0ZURPTVdpbmRv
dygpCiAgICAgQVNTRVJUKG1fZnJhbWUpOwogICAgIEFTU0VSVCghbV9kb21XaW5kb3cpOwogCi0g
ICAgbV9kb21XaW5kb3cgPSBET01XaW5kb3c6OmNyZWF0ZSh0aGlzKTsKKyAgICBtX2RvbVdpbmRv
dyA9IERPTVdpbmRvdzo6Y3JlYXRlKCp0aGlzKTsKIAogICAgIEFTU0VSVChtX2RvbVdpbmRvdy0+
ZG9jdW1lbnQoKSA9PSB0aGlzKTsKICAgICBBU1NFUlQobV9kb21XaW5kb3ctPmZyYW1lKCkgPT0g
bV9mcmFtZSk7CkBAIC00MDE1LDcgKzQwMTIsNyBAQCB2b2lkIERvY3VtZW50Ojp0YWtlRE9NV2lu
ZG93RnJvbShEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgQVNTRVJUKHBhZ2VDYWNoZVN0YXRlKCkg
PT0gTm90SW5QYWdlQ2FjaGUpOwogCiAgICAgbV9kb21XaW5kb3cgPSBXVEZNb3ZlKGRvY3VtZW50
LT5tX2RvbVdpbmRvdyk7Ci0gICAgbV9kb21XaW5kb3ctPmRpZFNlY3VyZVRyYW5zaXRpb25Ubyh0
aGlzKTsKKyAgICBtX2RvbVdpbmRvdy0+ZGlkU2VjdXJlVHJhbnNpdGlvblRvKCp0aGlzKTsKIAog
ICAgIEFTU0VSVChtX2RvbVdpbmRvdy0+ZG9jdW1lbnQoKSA9PSB0aGlzKTsKICAgICBBU1NFUlQo
bV9kb21XaW5kb3ctPmZyYW1lKCkgPT0gbV9mcmFtZSk7CkBAIC01NTczLDEyICs1NTcwLDEyIEBA
IHZvaWQgRG9jdW1lbnQ6OnJlcXVlc3RGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVt
ZW50LCBGdWxsU2NyZWVuQ2hlY2tUeXBlCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBi
b29sIGhhc0tleWJvYXJkQWNjZXNzID0gdHJ1ZTsKLSAgICAgICAgaWYgKCFwYWdlKCktPmNocm9t
ZSgpLmNsaWVudCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCwgaGFzS2V5
Ym9hcmRBY2Nlc3MpKSB7CisgICAgICAgIGlmICghcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5z
dXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KCplbGVtZW50LCBoYXNLZXlib2FyZEFjY2Vzcykp
IHsKICAgICAgICAgICAgIC8vIFRoZSBuZXcgZnVsbCBzY3JlZW4gQVBJIGRvZXMgbm90IGFjY2Vw
dCBhICJmbGFncyIgcGFyYW1ldGVyLCBzbyBmYWxsIGJhY2sgdG8gZGlzYWxsb3dpbmcKICAgICAg
ICAgICAgIC8vIGtleWJvYXJkIGlucHV0IGlmIHRoZSBjaHJvbWUgY2xpZW50IHJlZnVzZXMgdG8g
YWxsb3cga2V5Ym9hcmQgaW5wdXQuCiAgICAgICAgICAgICBoYXNLZXlib2FyZEFjY2VzcyA9IGZh
bHNlOwogCi0gICAgICAgICAgICBpZiAoIXBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9y
dHNGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50LCBoYXNLZXlib2FyZEFjY2VzcykpCisgICAg
ICAgICAgICBpZiAoIXBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVu
Rm9yRWxlbWVudCgqZWxlbWVudCwgaGFzS2V5Ym9hcmRBY2Nlc3MpKQogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAKQEAgLTU2MzEsNyArNTYyOCw3IEBAIHZvaWQgRG9jdW1lbnQ6
OnJlcXVlc3RGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGdWxsU2NyZWVu
Q2hlY2tUeXBlCiAgICAgICAgIC8vIDUuIFJldHVybiwgYW5kIHJ1biB0aGUgcmVtYWluaW5nIHN0
ZXBzIGFzeW5jaHJvbm91c2x5LgogICAgICAgICAvLyA2LiBPcHRpb25hbGx5LCBwZXJmb3JtIHNv
bWUgYW5pbWF0aW9uLgogICAgICAgICBtX2FyZUtleXNFbmFibGVkSW5GdWxsU2NyZWVuID0gaGFz
S2V5Ym9hcmRBY2Nlc3M7Ci0gICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsKKyAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5j
bGllbnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KCplbGVtZW50KTsKIAogICAgICAgICAv
LyA3LiBPcHRpb25hbGx5LCBkaXNwbGF5IGEgbWVzc2FnZSBpbmRpY2F0aW5nIGhvdyB0aGUgdXNl
ciBjYW4gZXhpdCBkaXNwbGF5aW5nIHRoZSBjb250ZXh0IG9iamVjdCBmdWxsc2NyZWVuLgogICAg
ICAgICByZXR1cm47CkBAIC01NzIzLDEyICs1NzIwLDEyIEBAIHZvaWQgRG9jdW1lbnQ6OndlYmtp
dEV4aXRGdWxsc2NyZWVuKCkKICAgICAvLyBPbmx5IGV4aXQgb3V0IG9mIGZ1bGwgc2NyZWVuIHdp
bmRvdyBtb2RlIGlmIHRoZXJlIGFyZSBubyByZW1haW5pbmcgZWxlbWVudHMgaW4gdGhlIAogICAg
IC8vIGZ1bGwgc2NyZWVuIHN0YWNrLgogICAgIGlmICghbmV3VG9wKSB7Ci0gICAgICAgIHBhZ2Uo
KS0+Y2hyb21lKCkuY2xpZW50KCkuZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KG1fZnVsbFNjcmVl
bkVsZW1lbnQuZ2V0KCkpOworICAgICAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmV4aXRG
dWxsU2NyZWVuRm9yRWxlbWVudCgqbV9mdWxsU2NyZWVuRWxlbWVudCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKICAgICAvLyBPdGhlcndpc2UsIG5vdGlmeSB0aGUgY2hyb21lIG9mIHRoZSBu
ZXcgZnVsbCBzY3JlZW4gZWxlbWVudC4KLSAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQobmV3VG9wKTsKKyAgICBwYWdlKCktPmNocm9tZSgpLmNs
aWVudCgpLmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoKm5ld1RvcCk7CiB9CiAKIGJvb2wgRG9j
dW1lbnQ6OndlYmtpdEZ1bGxzY3JlZW5FbmFibGVkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cAppbmRleCA4OGUzZTk5MzAxYTcxOWRlMjU0MDgzYTkzMjZhM2JhY2YzZWMzOGZjLi44NWUwYjI2
ZjFjM2U3OGIyY2JiYzY4NWI2YWQxOWYyNWQwZDliZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CkBAIC0yMzQ4LDcgKzIzNDgsNyBAQCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVBy
ZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAKICAgICBpZiAoZG9j
dW1lbnQoKS5mb2N1c2VkRWxlbWVudCgpID09IHRoaXMpIHsKICAgICAgICAgaWYgKGRvY3VtZW50
KCkucGFnZSgpKQotICAgICAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVu
dCgpLmVsZW1lbnREaWRSZWZvY3VzKHRoaXMpOworICAgICAgICAgICAgZG9jdW1lbnQoKS5wYWdl
KCktPmNocm9tZSgpLmNsaWVudCgpLmVsZW1lbnREaWRSZWZvY3VzKCp0aGlzKTsKIAogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMjM3MSw3ICsyMzcxLDcgQEAgdm9pZCBFbGVtZW50Ojpmb2N1
cyhib29sIHJlc3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9u
KQogICAgICAgICAvLyBJZiBhIGZvY3VzIGV2ZW50IGhhbmRsZXIgY2hhbmdlcyB0aGUgZm9jdXMg
dG8gYSBkaWZmZXJlbnQgbm9kZSBpdAogICAgICAgICAvLyBkb2VzIG5vdCBtYWtlIHNlbnNlIHRv
IGNvbnRpbnVlIGFuZCB1cGRhdGUgYXBwZWFyZW5jZS4KICAgICAgICAgcHJvdGVjdCA9IHRoaXM7
Ci0gICAgICAgIGlmICghcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQo
dGhpcywgZG9jdW1lbnQoKS5mcmFtZSgpLCBkaXJlY3Rpb24pKQorICAgICAgICBpZiAoIXBhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KHRoaXMsICpkb2N1bWVudCgpLmZy
YW1lKCksIGRpcmVjdGlvbikpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yNDQx
LDcgKzI0NDEsNyBAQCB2b2lkIEVsZW1lbnQ6OmJsdXIoKQogICAgIGNhbmNlbEZvY3VzQXBwZWFy
YW5jZVVwZGF0ZSgpOwogICAgIGlmICh0cmVlU2NvcGUoKS5mb2N1c2VkRWxlbWVudEluU2NvcGUo
KSA9PSB0aGlzKSB7CiAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1l
KCkpCi0gICAgICAgICAgICBmcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1
c2VkRWxlbWVudCgwLCBmcmFtZSk7CisgICAgICAgICAgICBmcmFtZS0+cGFnZSgpLT5mb2N1c0Nv
bnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChudWxscHRyLCAqZnJhbWUpOwogICAgICAgICBl
bHNlCiAgICAgICAgICAgICBkb2N1bWVudCgpLnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIpOwog
ICAgIH0KQEAgLTI0NjQsNyArMjQ2NCw3IEBAIHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c091
dEV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWZQdHI8RWxlbWVuCiB2b2lk
IEVsZW1lbnQ6OmRpc3BhdGNoRm9jdXNFdmVudChSZWZQdHI8RWxlbWVudD4mJiBvbGRGb2N1c2Vk
RWxlbWVudCwgRm9jdXNEaXJlY3Rpb24pCiB7CiAgICAgaWYgKGRvY3VtZW50KCkucGFnZSgpKQot
ICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZEZv
Y3VzKHRoaXMpOworICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCku
ZWxlbWVudERpZEZvY3VzKCp0aGlzKTsKIAogICAgIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hF
dmVudCgqdGhpcywgRm9jdXNFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50LCBm
YWxzZSwgZmFsc2UsIGRvY3VtZW50KCkuZGVmYXVsdFZpZXcoKSwgMCwgV1RGTW92ZShvbGRGb2N1
c2VkRWxlbWVudCkpKTsKIH0KQEAgLTI0NzIsNyArMjQ3Miw3IEBAIHZvaWQgRWxlbWVudDo6ZGlz
cGF0Y2hGb2N1c0V2ZW50KFJlZlB0cjxFbGVtZW50PiYmIG9sZEZvY3VzZWRFbGVtZW50LCBGb2N1
c0RpcmVjCiB2b2lkIEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KFJlZlB0cjxFbGVtZW50PiYm
IG5ld0ZvY3VzZWRFbGVtZW50KQogewogICAgIGlmIChkb2N1bWVudCgpLnBhZ2UoKSkKLSAgICAg
ICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVsZW1lbnREaWRCbHVyKHRo
aXMpOworICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVu
dERpZEJsdXIoKnRoaXMpOwogCiAgICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KCp0
aGlzLCBGb2N1c0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmJsdXJFdmVudCwgZmFsc2UsIGZh
bHNlLCBkb2N1bWVudCgpLmRlZmF1bHRWaWV3KCksIDAsIFdURk1vdmUobmV3Rm9jdXNlZEVsZW1l
bnQpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggYmIzYWI5OWU2MWM1YmRjMTA0M2YzZWJjNGUw
Zjc5NmEyZGNiZDhiNy4uNzY2MjMwNTQ3MWU1MWZiYmY2ZTRmYTM1NTc1ZWQ2YWJhYmZjNzA3NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Ob2RlLmNwcApAQCAtMjI1Myw3ICsyMjUzLDcgQEAgdm9pZCBOb2RlOjpkZWZhdWx0
RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKICAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBl
dmVudE5hbWVzKCkuY29udGV4dG1lbnVFdmVudCkgewogICAgICAgICBpZiAoRnJhbWUqIGZyYW1l
ID0gZG9jdW1lbnQoKS5mcmFtZSgpKQogICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFt
ZS0+cGFnZSgpKQotICAgICAgICAgICAgICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigp
LmhhbmRsZUNvbnRleHRNZW51RXZlbnQoJmV2ZW50KTsKKyAgICAgICAgICAgICAgICBwYWdlLT5j
b250ZXh0TWVudUNvbnRyb2xsZXIoKS5oYW5kbGVDb250ZXh0TWVudUV2ZW50KGV2ZW50KTsKICNl
bmRpZgogICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS50ZXh0SW5wdXRF
dmVudCkgewogICAgICAgICBpZiAoaXM8VGV4dEV2ZW50PihldmVudCkpIHsKQEAgLTIyNzIsNyAr
MjI3Miw3IEBAIHZvaWQgTm9kZTo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiAK
ICAgICAgICAgICAgIGlmIChyZW5kZXJlcikgewogICAgICAgICAgICAgICAgIGlmIChGcmFtZSog
ZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lLT5l
dmVudEhhbmRsZXIoKS5zdGFydFBhblNjcm9sbGluZyhkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRl
cmVyKSk7CisgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zdGFydFBh
blNjcm9sbGluZyhkb3duY2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJlcikpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQu
Y3BwCmluZGV4IGFjZjIyNjhhN2U3OTMwOTI3Y2VjYmIxM2QyNGQ2NGNmYWRiZjZkZGUuLjAxZjA3
MWNjYWRjZGYxOTY0MWYyODc3NzQxOWRiNDZjYjU0MGM2MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcApAQCAtOTMwLDcgKzkzMCw3IEBAIHN0YXRpYyBib29sIGV4
ZWN1dGVQcmludChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29u
c3QgU3RyaW5nCiAgICAgUGFnZSogcGFnZSA9IGZyYW1lLnBhZ2UoKTsKICAgICBpZiAoIXBhZ2Up
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBwYWdlLT5jaHJvbWUoKS5wcmludCgmZnJhbWUp
OworICAgIHBhZ2UtPmNocm9tZSgpLnByaW50KGZyYW1lKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCA2NzU5ZmYx
NzdmZTc2NzFjYmIxNjkzNWViMzYxMGQyYTU2OTdiNzg2Li43MTNlNzc5NzE4MjUyNWQ3NzJmNGMy
OTA0ZmI5MmI0MjQ1OWYyMzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Zy
YW1lU2VsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcApAQCAtMjE1Nyw3ICsyMTU3LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0Rm9j
dXNlZEVsZW1lbnRJZk5lZWRlZCgpCiAgICAgYm9vbCBjYXJldEJyb3dzaW5nID0gbV9mcmFtZS0+
c2V0dGluZ3MoKS5jYXJldEJyb3dzaW5nRW5hYmxlZCgpOwogICAgIGlmIChjYXJldEJyb3dzaW5n
KSB7CiAgICAgICAgIGlmIChFbGVtZW50KiBhbmNob3IgPSBlbmNsb3NpbmdBbmNob3JFbGVtZW50
KG1fc2VsZWN0aW9uLmJhc2UoKSkpIHsKLSAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Zm9j
dXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQoYW5jaG9yLCBtX2ZyYW1lKTsKKyAgICAg
ICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1l
bnQoYW5jaG9yLCAqbV9mcmFtZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAg
ICB9CkBAIC0yMTY5LDE2ICsyMTY5LDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldEZvY3Vz
ZWRFbGVtZW50SWZOZWVkZWQoKQogICAgICAgICAgICAgLy8gc28gYWRkIHRoZSAhaXNGcmFtZUVs
ZW1lbnQgY2hlY2sgaGVyZS4gVGhlcmUncyBwcm9iYWJseSBhIGJldHRlciB3YXkgdG8gbWFrZSB0
aGlzCiAgICAgICAgICAgICAvLyB3b3JrIGluIHRoZSBsb25nIHRlcm0sIGJ1dCB0aGlzIGlzIHRo
ZSBzYWZlc3QgZml4IGF0IHRoaXMgdGltZS4KICAgICAgICAgICAgIGlmICh0YXJnZXQtPmlzTW91
c2VGb2N1c2FibGUoKSAmJiAhaXNGcmFtZUVsZW1lbnQodGFyZ2V0KSkgewotICAgICAgICAgICAg
ICAgIG1fZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQo
dGFyZ2V0LCBtX2ZyYW1lKTsKKyAgICAgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3Vz
Q29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KHRhcmdldCwgKm1fZnJhbWUpOwogICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRhcmdldCA9IHRh
cmdldC0+cGFyZW50T3JTaGFkb3dIb3N0RWxlbWVudCgpOwogICAgICAgICB9Ci0gICAgICAgIG1f
ZnJhbWUtPmRvY3VtZW50KCktPnNldEZvY3VzZWRFbGVtZW50KDApOworICAgICAgICBtX2ZyYW1l
LT5kb2N1bWVudCgpLT5zZXRGb2N1c2VkRWxlbWVudChudWxscHRyKTsKICAgICB9CiAKICAgICBp
ZiAoY2FyZXRCcm93c2luZykKLSAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xs
ZXIoKS5zZXRGb2N1c2VkRWxlbWVudCgwLCBtX2ZyYW1lKTsKKyAgICAgICAgbV9mcmFtZS0+cGFn
ZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChudWxscHRyLCAqbV9mcmFt
ZSk7CiB9CiAKIHZvaWQgRHJhZ0NhcmV0Q29udHJvbGxlcjo6cGFpbnREcmFnQ2FyZXQoRnJhbWUq
IGZyYW1lLCBHcmFwaGljc0NvbnRleHQmIHAsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNl
dCwgY29uc3QgTGF5b3V0UmVjdCYgY2xpcFJlY3QpIGNvbnN0CkBAIC0yMzI4LDcgKzIzMjgsNyBA
QCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxlY3Rpb24oU2VsZWN0aW9uUmV2ZWFsTW9k
ZSByZXZlYWxNb2RlLCBjb25zdCBTY3JvbAogICAgICAgICAgICAgICAgIGxheWVyLT5zZXRBZGp1
c3RGb3JJT1NDYXJldFdoZW5TY3JvbGxpbmcoZmFsc2UpOwogICAgICAgICAgICAgICAgIHVwZGF0
ZUFwcGVhcmFuY2UoKTsKICAgICAgICAgICAgICAgICBpZiAobV9mcmFtZS0+cGFnZSgpKQotICAg
ICAgICAgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLm5vdGlm
eVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShtX2ZyYW1lKTsKKyAgICAgICAgICAg
ICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5ub3RpZnlSZXZlYWxl
ZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoKm1fZnJhbWUpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRG
cmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAppbmRleCAz
NjMzOThkNmVmY2MxNGM0YjZiYjc1ZjMxMzg3Y2RkN2U3YzU5OWQxLi4yMWYyNGFkMzlmNGE5MTY2
YzhiMTEzY2FlMjcwMGZlOWY0NTFjYThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L0NhY2hlZEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZy
YW1lLmNwcApAQCAtOTgsOSArOTgsOSBAQCB2b2lkIENhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSgp
CiAgICAgZnJhbWUubG9hZGVyKCkuY2xpZW50KCkuZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsK
IAogICAgIC8vIFJlY29uc3RydWN0IHRoZSBGcmFtZVRyZWUuIEFuZCBvcGVuIHRoZSBjaGlsZCBD
YWNoZWRGcmFtZXMgaW4gdGhlaXIgcmVzcGVjdGl2ZSBGcmFtZUxvYWRlcnMuCi0gICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG1fY2hpbGRGcmFtZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
ZnJhbWUudHJlZSgpLmFwcGVuZENoaWxkKCZtX2NoaWxkRnJhbWVzW2ldLT52aWV3KCktPmZyYW1l
KCkpOwotICAgICAgICBtX2NoaWxkRnJhbWVzW2ldLT5vcGVuKCk7CisgICAgZm9yIChhdXRvJiBj
aGlsZEZyYW1lIDogbV9jaGlsZEZyYW1lcykgeworICAgICAgICBmcmFtZS50cmVlKCkuYXBwZW5k
Q2hpbGQoY2hpbGRGcmFtZS0+dmlldygpLT5mcmFtZSgpKTsKKyAgICAgICAgY2hpbGRGcmFtZS0+
b3BlbigpOwogICAgIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTExMSw3ICsxMTEsNyBAQCB2
b2lkIENhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSgpCiAgICAgICAgICAgICAvLyBGSVhNRTogQWRk
IFNDUk9MTF9MSVNURU5FUiB0byB0aGUgbGlzdCBvZiBldmVudCB0eXBlcyBvbiBEb2N1bWVudCwg
YW5kIHVzZSBtX2RvY3VtZW50LT5oYXNMaXN0ZW5lclR5cGUoKS4gU2VlIDxyZGFyOi8vcHJvYmxl
bS85NjE1NDgyPi4KICAgICAgICAgICAgIC8vIEZJWE1FOiBDYW4gdXNlIERvY3VtZW50OjpoYXNM
aXN0ZW5lclR5cGUoKSBub3cuCiAgICAgICAgICAgICBpZiAoZG9tV2luZG93LT5zY3JvbGxFdmVu
dExpc3RlbmVyQ291bnQoKSAmJiBmcmFtZS5wYWdlKCkpCi0gICAgICAgICAgICAgICAgZnJhbWUu
cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoJmZy
YW1lLCB0cnVlKTsKKyAgICAgICAgICAgICAgICBmcmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVu
dCgpLnNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhmcmFtZSwgdHJ1ZSk7CiAgICAgICAgIH0K
ICAgICB9CiAjZW5kaWYKQEAgLTE2Myw3ICsxNjMsNyBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJh
bWUoRnJhbWUmIGZyYW1lKQogICAgIC8vIDEgLSBXZSByZXVzZSB0aGUgbWFpbiBmcmFtZSwgc28g
d2hlbiBpdCBuYXZpZ2F0ZXMgdG8gYSBuZXcgcGFnZSBsb2FkIGl0IG5lZWRzIHRvIHN0YXJ0IHdp
dGggYSBibGFuayBGcmFtZVRyZWUuCiAgICAgLy8gMiAtIEl0J3MgbXVjaCBlYXNpZXIgdG8gZGVz
dHJveSBhIENhY2hlZEZyYW1lIHdoaWxlIGl0IHJlc2lkZXMgaW4gdGhlIFBhZ2VDYWNoZSBpZiBp
dCBpcyBkaXNjb25uZWN0ZWQgZnJvbSBpdHMgcGFyZW50LgogICAgIGZvciAodW5zaWduZWQgaSA9
IDA7IGkgPCBtX2NoaWxkRnJhbWVzLnNpemUoKTsgKytpKQotICAgICAgICBmcmFtZS50cmVlKCku
cmVtb3ZlQ2hpbGQoJm1fY2hpbGRGcmFtZXNbaV0tPnZpZXcoKS0+ZnJhbWUoKSk7CisgICAgICAg
IGZyYW1lLnRyZWUoKS5yZW1vdmVDaGlsZChtX2NoaWxkRnJhbWVzW2ldLT52aWV3KCktPmZyYW1l
KCkpOwogCiAgICAgaWYgKCFtX2lzTWFpbkZyYW1lKQogICAgICAgICBmcmFtZS5wYWdlKCktPmRl
Y3JlbWVudFN1YmZyYW1lQ291bnQoKTsKQEAgLTE4MSw3ICsxODEsNyBAQCBDYWNoZWRGcmFtZTo6
Q2FjaGVkRnJhbWUoRnJhbWUmIGZyYW1lKQogICAgIGlmIChtX2lzTWFpbkZyYW1lKSB7CiAgICAg
ICAgIGlmIChET01XaW5kb3cqIGRvbVdpbmRvdyA9IG1fZG9jdW1lbnQtPmRvbVdpbmRvdygpKSB7
CiAgICAgICAgICAgICBpZiAoZG9tV2luZG93LT5zY3JvbGxFdmVudExpc3RlbmVyQ291bnQoKSAm
JiBmcmFtZS5wYWdlKCkpCi0gICAgICAgICAgICAgICAgZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5j
bGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoJmZyYW1lLCBmYWxzZSk7CisgICAg
ICAgICAgICAgICAgZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9s
bE5vdGlmaWNhdGlvbnMoZnJhbWUsIGZhbHNlKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCA1YmEyYzk1NGIyYmQ4OTk1
YmMwYjJiNzJkMmZmY2QzNzkxOTEwN2E2Li41MGUxZmNiMTQzNzEzYTMwYWM5MTUzMzEzYjU4OTMy
NTc5MGQyMWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAtMTU2
LDcgKzE1Niw3IEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQo
RXZlbnQmIGV2ZW50KQogCiAgICAgaWYgKENocm9tZSogY2hyb21lID0gdGhpcy0+Y2hyb21lKCkp
IHsKICAgICAgICAgaWYgKCFtX2Nob29zZXIpCi0gICAgICAgICAgICBtX2Nob29zZXIgPSBjaHJv
bWUtPmNyZWF0ZUNvbG9yQ2hvb3Nlcih0aGlzLCB2YWx1ZUFzQ29sb3IoKSk7CisgICAgICAgICAg
ICBtX2Nob29zZXIgPSBjaHJvbWUtPmNyZWF0ZUNvbG9yQ2hvb3NlcigqdGhpcywgdmFsdWVBc0Nv
bG9yKCkpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2Nob29zZXItPnJlYXR0YWNoQ29s
b3JDaG9vc2VyKHZhbHVlQXNDb2xvcigpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IDgxMWViMGQ1ZDA1YjZhNmM3Njg4NzhkMDNmYzMzYzFj
MjQ5NDZmYjAuLmJhZWI1NzZiMTU2M2ViMzE1N2JiNzJlY2Q4N2I3ODI3MDA5ZWYzMDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC0xMjksNyArMTI5LDcg
QEAgYm9vbCBIVE1MQW5jaG9yRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2
ZW50JiBldmVudCkgY29uc3QKICAgICBpZiAoIWRvY3VtZW50KCkuZnJhbWUoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxl
cigpLnRhYnNUb0xpbmtzKCZldmVudCkpCisgICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCktPmV2
ZW50SGFuZGxlcigpLnRhYnNUb0xpbmtzKGV2ZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgaWYgKCFyZW5kZXJlcigpICYmIGFuY2VzdG9yc09mVHlwZTxIVE1MQ2FudmFzRWxlbWVu
dD4oKnRoaXMpLmZpcnN0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxG
b3JtQ29udHJvbEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRy
b2xFbGVtZW50LmNwcAppbmRleCBlYThhM2IzM2UwMDI3ODMyZDY3MGY5ZTA5ODdhY2NhOGQzNjhi
YWEyLi42MmMyODYxN2FlMzVkZTY3MzJmZmEwNjYzMzhmZTMxODE2NTQ2Y2E4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTM3MCwxMCAr
MzcwLDkgQEAgYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0
CiAKIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXli
b2FyZEV2ZW50JiBldmVudCkgY29uc3QKIHsKLSAgICBpZiAoaXNGb2N1c2FibGUoKSkKLSAgICAg
ICAgaWYgKGRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgIHJldHVybiBkb2N1bWVudCgp
LmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLnRhYnNUb0FsbEZvcm1Db250cm9scygmZXZlbnQpOwot
ICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNGb2N1c2FibGUoKQorICAgICAgICAmJiBk
b2N1bWVudCgpLmZyYW1lKCkKKyAgICAgICAgJiYgZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhh
bmRsZXIoKS50YWJzVG9BbGxGb3JtQ29udHJvbHMoZXZlbnQpOwogfQogCiBib29sIEhUTUxGb3Jt
Q29udHJvbEVsZW1lbnQ6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKaW5kZXggZDhhNzkzZTMwZWJmMWJjMzNiMWEzMmEyZjJj
ZDFjZjdiOTE4OWRiYy4uYTlkYjkwNTE4ZGU3MTAwZjg2MWFmY2RkYmE2ZDI2NzVhMjBlM2JkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCkBAIC0xNzEsNyArMTcx
LDcgQEAgYm9vbCBIVE1MVmlkZW9FbGVtZW50OjpzdXBwb3J0c0Z1bGxzY3JlZW4oSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW4KICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
CiAgICAgLy8gSWYgdGhlIGZ1bGwgc2NyZWVuIEFQSSBpcyBlbmFibGVkIGFuZCBpcyBzdXBwb3J0
ZWQgZm9yIHRoZSBjdXJyZW50IGVsZW1lbnQKICAgICAvLyBkbyBub3QgcmVxdWlyZSB0aGF0IHRo
ZSBwbGF5ZXIgaGFzIGEgdmlkZW8gdHJhY2sgdG8gZW50ZXIgZnVsbCBzY3JlZW4uCi0gICAgaWYg
KHZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlU3RhbmRhcmQgJiYgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxs
U2NyZWVuRm9yRWxlbWVudCh0aGlzLCBmYWxzZSkpCisgICAgaWYgKHZpZGVvRnVsbHNjcmVlbk1v
ZGUgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQg
JiYgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCgq
dGhpcywgZmFsc2UpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKaW5kZXggNThiZDYy
YTM2NDQ3ZjExNDk4YzNkOGM5OTU3ZjFjZDFmNzNiMGU3Ny4uOThiZDcyYmZmMmQwZGY4MDZhYjBh
YmY1MzdiYWU2OTA3MjI4NDgwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L1NwaW5CdXR0b25FbGVtZW50LmNwcApAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgU3BpbkJ1dHRv
bkVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQogICAgICAgICAgICAg
ICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVt
ZW50KHRoaXMpOwogICAgICAgICAgICAgICAgICAgICBtX2NhcHR1cmluZyA9IHRydWU7CiAgICAg
ICAgICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAg
ICAgICAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5yZWdpc3RlclBvcHVwT3BlbmluZ09i
c2VydmVyKHRoaXMpOworICAgICAgICAgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkucmVn
aXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcigqdGhpcyk7CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgVXBEb3duU3RhdGUgb2xkVXBEb3duU3RhdGUgPSBtX3Vw
RG93blN0YXRlOwpAQCAtMjA1LDcgKzIwNSw3IEBAIHZvaWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OnJl
bGVhc2VDYXB0dXJlKCkKICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZXRDYXB0
dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQobnVsbHB0cik7CiAgICAgICAgICAgICBtX2NhcHR1cmlu
ZyA9IGZhbHNlOwogICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2Uo
KSkKLSAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS51bnJlZ2lzdGVyUG9wdXBPcGVuaW5n
T2JzZXJ2ZXIodGhpcyk7CisgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkudW5yZWdpc3Rl
clBvcHVwT3BlbmluZ09ic2VydmVyKCp0aGlzKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9u
RWxlbWVudE1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250
cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCmluZGV4IGZkMGMzZTM2ZjM5MzM0MWRiZGFhMThjMDMx
ZTFiMWU3NDg3ZWZjYzkuLmJhOWJhZGZlNTYyZTRiZmU3ZjllMTRmMGE2YjVlZDE5YjUwYWEzYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xz
QnV0dG9uRWxlbWVudE1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFj
L0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIHZv
aWQgSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWM6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZl
bnQmIGV2ZW50KQogICAgICAgICBpZiAoIXBhZ2UpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0ltYWdlQ29udHJvbHNNZW51
KCZldmVudCk7CisgICAgICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dJbWFn
ZUNvbnRyb2xzTWVudShldmVudCk7CiAgICAgICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwCmluZGV4IDMxNTQ3ZGI3YWYzYjUzZmQ3ZWI0MjQx
YzcwNTQzZjhmNGI2NmIxN2UuLjc0OTg4Y2I1ZTYwNDg3MjA4ODkzYjAzMTYwMWNiYTgyMzRiYjkz
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZEhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZEhvc3QuY3BwCkBAIC0zMzksOCArMzM5LDggQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6
OnNob3dDb250ZXh0TWVudShFdmVudCogZXZlbnQsIGNvbnN0IFZlY3RvcjxDb250ZXh0TWUKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvIG1lbnVQcm92aWRlciA9IEZyb250ZW5kTWVu
dVByb3ZpZGVyOjpjcmVhdGUodGhpcywgeyAmc3RhdGUsIGZyb250ZW5kQXBpT2JqZWN0IH0sIGl0
ZW1zKTsKLSAgICBtX2Zyb250ZW5kUGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0Nv
bnRleHRNZW51KGV2ZW50LCBtZW51UHJvdmlkZXIucHRyKCkpOwogICAgIG1fbWVudVByb3ZpZGVy
ID0gbWVudVByb3ZpZGVyLnB0cigpOworICAgIG1fZnJvbnRlbmRQYWdlLT5jb250ZXh0TWVudUNv
bnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnUoKmV2ZW50LCBtZW51UHJvdmlkZXIpOwogfQogCiAj
ZW5kaWYKQEAgLTM1NSw3ICszNTUsNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6ZGlz
cGF0Y2hFdmVudEFzQ29udGV4dE1lbnVFdmVudChFdmVudCogZXZlbnQpCiAgICAgTW91c2VFdmVu
dCYgbW91c2VFdmVudCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+KCpldmVudCk7CiAgICAgSW50UG9p
bnQgbW91c2VQb2ludCA9IEludFBvaW50KG1vdXNlRXZlbnQuY2xpZW50WCgpLCBtb3VzZUV2ZW50
LmNsaWVudFkoKSk7CiAKLSAgICBtX2Zyb250ZW5kUGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVy
KCkuc2hvd0NvbnRleHRNZW51QXQoZnJhbWUsIG1vdXNlUG9pbnQpOworICAgIG1fZnJvbnRlbmRQ
YWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnVBdCgqZnJhbWUsIG1v
dXNlUG9pbnQpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZXZlbnQpOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGU3NTQ5NWZkNDI0YzIzZTg5NTM2
Y2E4ZDQzMzkwNTNiZDRlMTFiYmQuLjU3NzkwYjUwY2ZjZGE0YTUyZjBjNGMwMmViNTdhYjIzM2E2
ZDU3YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NzIsMTkg
KzU3MiwxOSBAQCBjbGFzcyBFbXB0eVZpc2l0ZWRMaW5rU3RvcmUgZmluYWwgOiBwdWJsaWMgVmlz
aXRlZExpbmtTdG9yZSB7CiAgICAgdm9pZCBhZGRWaXNpdGVkTGluayhQYWdlJiwgTGlua0hhc2gp
IGZpbmFsIHsgfQogfTsKIAotUmVmUHRyPFBvcHVwTWVudT4gRW1wdHlDaHJvbWVDbGllbnQ6OmNy
ZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdAorUmVmUHRyPFBvcHVwTWVudT4g
RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25z
dAogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5UG9wdXBNZW51KTsKIH0KIAotUmVm
UHRyPFNlYXJjaFBvcHVwTWVudT4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdAorUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gRW1w
dHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBj
b25zdAogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U2VhcmNoUG9wdXBNZW51KTsK
IH0KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogCi1zdGQ6OnVuaXF1ZV9wdHI8Q29s
b3JDaG9vc2VyPiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hv
b3NlckNsaWVudCosIGNvbnN0IENvbG9yJikKK3N0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+
IEVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50
JiwgY29uc3QgQ29sb3ImKQogewogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDkxYzJkMzg2OTAxMGRhNWVhNDNkMDA5Y2QwZjEzZTBi
NzhlN2NmZjUuLmUyYWE2MGVkNzQ4OTM3NDg2OTZlODkxNzAzM2IxY2UwMWYxZDUzMmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTYxLDcgKzYxLDcgQEAgY2xhc3MgRW1w
dHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lkIGZvY3VzZWRF
bGVtZW50Q2hhbmdlZChFbGVtZW50KikgZmluYWwgeyB9CiAgICAgdm9pZCBmb2N1c2VkRnJhbWVD
aGFuZ2VkKEZyYW1lKikgZmluYWwgeyB9CiAKLSAgICBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUq
LCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJikgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIFBhZ2UqIGNy
ZWF0ZVdpbmRvdyhGcmFtZSYsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dG
ZWF0dXJlcyYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbCB7IHJldHVybiBudWxscHRy
OyB9CiAgICAgdm9pZCBzaG93KCkgZmluYWwgeyB9CiAKICAgICBib29sIGNhblJ1bk1vZGFsKCkg
ZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTg0LDE5ICs4NCwxOSBAQCBjbGFzcyBFbXB0eUNo
cm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZvaWQgYWRkTWVzc2FnZVRv
Q29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVuc2ln
bmVkLCB1bnNpZ25lZCwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CiAKICAgICBib29sIGNhblJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAg
Ym9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiwgRnJhbWUqKSBm
aW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoY29uc3QgU3RyaW5nJiwgRnJhbWUmKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2
b2lkIGNsb3NlV2luZG93U29vbigpIGZpbmFsIHsgfQogCi0gICAgdm9pZCBydW5KYXZhU2NyaXB0
QWxlcnQoRnJhbWUqLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KLSAgICBib29sIHJ1bkphdmFT
Y3JpcHRDb25maXJtKEZyYW1lKiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7
IH0KLSAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBTdHJpbmcmLCBTdHJpbmcmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQg
cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CisgICAg
Ym9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiwgY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7
IH0KIAogICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBmaW5h
bCB7IHJldHVybiBmYWxzZTsgfQogICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NN
ZW51V3JpdGluZ0RpcmVjdGlvbigpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBo
YXNPcGVuZWRQb3B1cCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgUmVmUHRy
PFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IGZpbmFs
OwotICAgIFJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFNlYXJj
aFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0
IGZpbmFsOwogCiAgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpIGZpbmFs
IHsgfQogCkBAIC0xMDYsNDMgKzEwNiw0NyBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1
YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZp
ZXcoY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRl
bnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JikgZmluYWwgeyB9CiAgICAgdm9pZCBzY3Jv
bGwoY29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JikgZmluYWwg
eyB9CisKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgdm9pZCBkZWxlZ2F0ZWRT
Y3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmKSBmaW5hbCB7IH0KICNlbmRpZgorCiAjaWYg
IVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKICAgICB2b2lkIHNjaGVkdWxlQW5p
bWF0aW9uKCkgZmluYWwgeyB9CiAjZW5kaWYKIAogICAgIEludFBvaW50IHNjcmVlblRvUm9vdFZp
ZXcoY29uc3QgSW50UG9pbnQmIHApIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHA7IH0KICAgICBJbnRS
ZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcikgY29uc3QgZmluYWwgeyByZXR1
cm4gcjsgfQorCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIEludFBvaW50IGFjY2Vzc2liaWxpdHlT
Y3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JiBwKSBjb25zdCBmaW5hbCB7IHJldHVybiBw
OyB9OwogICAgIEludFJlY3Qgcm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29uc3QgSW50
UmVjdCYgcikgY29uc3QgZmluYWwgeyByZXR1cm4gcjsgfTsKICNlbmRpZgorCiAgICAgUGxhdGZv
cm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDA7
IH0KLSAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJbnRTaXplJikg
Y29uc3QgZmluYWwgeyB9CisgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiwgY29u
c3QgSW50U2l6ZSYpIGNvbnN0IGZpbmFsIHsgfQogCiAgICAgdm9pZCBzY3JvbGxiYXJzTW9kZURp
ZENoYW5nZSgpIGNvbnN0IGZpbmFsIHsgfQogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1l
bnQoY29uc3QgSGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkKSBmaW5hbCB7IH0KIAogICAgIHZvaWQg
c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSBmaW5hbCB7IH0KIAotICAg
IHZvaWQgcHJpbnQoRnJhbWUqKSBmaW5hbCB7IH0KKyAgICB2b2lkIHByaW50KEZyYW1lJikgZmlu
YWwgeyB9CiAKLSAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0
cmluZyYsIERhdGFiYXNlRGV0YWlscykgZmluYWwgeyB9CisgICAgdm9pZCBleGNlZWRlZERhdGFi
YXNlUXVvdGEoRnJhbWUmLCBjb25zdCBTdHJpbmcmLCBEYXRhYmFzZURldGFpbHMpIGZpbmFsIHsg
fQogCiAgICAgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3QpIGZpbmFsIHsgfQot
ICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdp
biosIGludDY0X3QpIGZpbmFsIHsgfQorICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiYsIGludDY0X3QpIGZpbmFsIHsgfQogCiAjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4g
Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9yJikgZmlu
YWw7CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2Vy
KENvbG9yQ2hvb3NlckNsaWVudCYsIGNvbnN0IENvbG9yJikgZmluYWw7CiAjZW5kaWYKIAogICAg
IHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSBmaW5hbDsKICAgICB2b2lk
IGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciYp
IGZpbmFsIHsgfQogCi0gICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgTm9kZSopIGZpbmFs
IHsgfQotICAgIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9kZSopIGZpbmFsIHsgfQorICAg
IHZvaWQgZWxlbWVudERpZEZvY3VzKEVsZW1lbnQmKSBmaW5hbCB7IH0KKyAgICB2b2lkIGVsZW1l
bnREaWRCbHVyKEVsZW1lbnQmKSBmaW5hbCB7IH0KIAogI2lmICFQTEFURk9STShJT1MpCiAgICAg
dm9pZCBzZXRDdXJzb3IoY29uc3QgQ3Vyc29yJikgZmluYWwgeyB9CkBAIC0xNTEsOCArMTU1LDgg
QEAgY2xhc3MgRW1wdHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKIAogICAg
IHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCBmaW5hbCB7IH0K
IAotICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVy
KikgZmluYWwgeyB9Ci0gICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJh
bWUqLCBHcmFwaGljc0xheWVyKikgZmluYWwgeyB9CisgICAgdm9pZCBhdHRhY2hSb290R3JhcGhp
Y3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSBmaW5hbCB7IH0KKyAgICB2b2lkIGF0dGFj
aFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSBmaW5hbCB7
IH0KICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSBmaW5h
bCB7IH0KICAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgZmluYWwgeyB9
CiAKQEAgLTE2MiwxNSArMTY2LDE2IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGlj
IENocm9tZUNsaWVudCB7CiAgICAgdm9pZCBBWEZpbmlzaEZyYW1lTG9hZCgpIGZpbmFsIHsgfQog
I2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMp
CiAgICAgdm9pZCBkaWRQcmV2ZW50RGVmYXVsdEZvckV2ZW50KCkgZmluYWwgeyB9CiAjZW5kaWYK
KworI2lmIFBMQVRGT1JNKElPUykKICAgICB2b2lkIGRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGJv
b2wpIGZpbmFsIHsgfQotICAgIHZvaWQgc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKEZyYW1l
KiwgYm9vbCkgZmluYWwgeyB9Ci0gICAgdm9pZCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoRnJhbWUq
KSBmaW5hbCB7IH0KLSAgICB2b2lkIGNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhGcmFtZSop
IGZpbmFsIHsgfQotICAgIHZvaWQgbm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0Zy
YW1lKEZyYW1lKikgZmluYWwgeyB9CisgICAgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlv
bnMoRnJhbWUmLCBib29sKSBmaW5hbCB7IH0KKyAgICB2b2lkIG9ic2VydmVkQ29udGVudENoYW5n
ZShGcmFtZSYpIGZpbmFsIHsgfQorICAgIHZvaWQgY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJz
KEZyYW1lJikgZmluYWwgeyB9CisgICAgdm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Ny
b2xsaW5nRnJhbWUoRnJhbWUmKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpZExheW91dChMYXlvdXRU
eXBlKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpZFN0YXJ0T3ZlcmZsb3dTY3JvbGwoKSBmaW5hbCB7
IH0KICAgICB2b2lkIGRpZEVuZE92ZXJmbG93U2Nyb2xsKCkgZmluYWwgeyB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAppbmRleCAxNGQ0N2RhOTcyZTkyODM2OWFjODEzY2Y5NjE4
NDc0ZjFhZjAwMTg1Li43OGRmZjBjNDNjNWZiMDExYzc4MGE0NDdhOWI2OTJjNDRhZmQ0M2MxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTM5Nyw3ICszOTcsNyBAQCB2
b2lkIEZyYW1lTG9hZGVyOjpzdWJtaXRGb3JtKFJlZjxGb3JtU3VibWlzc2lvbj4mJiBzdWJtaXNz
aW9uKQogCiAgICAgRnJhbWUqIHRhcmdldEZyYW1lID0gZmluZEZyYW1lRm9yTmF2aWdhdGlvbihz
dWJtaXNzaW9uLT50YXJnZXQoKSwgJnN1Ym1pc3Npb24tPnN0YXRlKCkuc291cmNlRG9jdW1lbnQo
KSk7CiAgICAgaWYgKCF0YXJnZXRGcmFtZSkgewotICAgICAgICBpZiAoIURPTVdpbmRvdzo6YWxs
b3dQb3BVcCgmbV9mcmFtZSkgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSgpKQorICAgICAgICBpZiAoIURPTVdpbmRvdzo6YWxsb3dQb3BVcChtX2ZyYW1lKSAmJiAh
U2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKICAgICAgICAgLy8gRklYTUU6IHRhcmdldEZyYW1lIGNhbiBiZSBudWxsIGZvciB0
d28gZGlzdGluY3QgcmVhc29uczoKQEAgLTE4NTIsMTEgKzE4NTIsOSBAQCB2b2lkIEZyYW1lTG9h
ZGVyOjpjb21taXRQcm92aXNpb25hbExvYWQoKQogICAgICAgICBoaXN0b3J5KCkudXBkYXRlRm9y
Q2xpZW50UmVkaXJlY3QoKTsKIAogICAgIGlmIChtX2xvYWRpbmdGcm9tQ2FjaGVkUGFnZSkgewot
I2lmIFBMQVRGT1JNKElPUykKICAgICAgICAgLy8gTm90ZSwgZGlkUmVjZWl2ZURvY1R5cGUgaXMg
ZXhwZWN0ZWQgdG8gYmUgY2FsbGVkIGZvciBjYWNoZWQgcGFnZXMuIFNlZSA8cmRhcjovL3Byb2Js
ZW0vNTkwNjc1OD4gZm9yIG1vcmUgZGV0YWlscy4KLSAgICAgICAgaWYgKG1fZnJhbWUuZG9jdW1l
bnQoKS0+ZG9jdHlwZSgpICYmIG1fZnJhbWUucGFnZSgpKQotICAgICAgICAgICAgbV9mcmFtZS5w
YWdlKCktPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKCZtX2ZyYW1lKTsKLSNlbmRpZgorICAg
ICAgICBpZiAoYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQorICAgICAgICAgICAgcGFnZS0+
Y2hyb21lKCkuZGlkUmVjZWl2ZURvY1R5cGUobV9mcmFtZSk7CiAgICAgICAgIG1fZnJhbWUuZG9j
dW1lbnQoKS0+cmVzdW1lKEFjdGl2ZURPTU9iamVjdDo6UGFnZUNhY2hlKTsKIAogICAgICAgICAv
LyBGb3JjZSBhIGxheW91dCB0byB1cGRhdGUgdmlldyBzaXplIGFuZCB0aGVyZWJ5IHVwZGF0ZSBz
Y3JvbGxiYXJzLgpAQCAtMjQzOSwxNSArMjQzNywxNSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpkZXRh
Y2hDaGlsZHJlbigpCiAgICAgICAgIGNoaWxkLT5sb2FkZXIoKS5kZXRhY2hGcm9tUGFyZW50KCk7
CiB9CiAKLXZvaWQgRnJhbWVMb2FkZXI6OmNsb3NlQW5kUmVtb3ZlQ2hpbGQoRnJhbWUqIGNoaWxk
KQordm9pZCBGcmFtZUxvYWRlcjo6Y2xvc2VBbmRSZW1vdmVDaGlsZChGcmFtZSYgY2hpbGQpCiB7
Ci0gICAgY2hpbGQtPnRyZWUoKS5kZXRhY2hGcm9tUGFyZW50KCk7CisgICAgY2hpbGQudHJlZSgp
LmRldGFjaEZyb21QYXJlbnQoKTsKIAotICAgIGNoaWxkLT5zZXRWaWV3KG51bGxwdHIpOwotICAg
IGlmIChjaGlsZC0+b3duZXJFbGVtZW50KCkgJiYgY2hpbGQtPnBhZ2UoKSkKLSAgICAgICAgY2hp
bGQtPnBhZ2UoKS0+ZGVjcmVtZW50U3ViZnJhbWVDb3VudCgpOwotICAgIGNoaWxkLT53aWxsRGV0
YWNoUGFnZSgpOwotICAgIGNoaWxkLT5kZXRhY2hGcm9tUGFnZSgpOworICAgIGNoaWxkLnNldFZp
ZXcobnVsbHB0cik7CisgICAgaWYgKGNoaWxkLm93bmVyRWxlbWVudCgpICYmIGNoaWxkLnBhZ2Uo
KSkKKyAgICAgICAgY2hpbGQucGFnZSgpLT5kZWNyZW1lbnRTdWJmcmFtZUNvdW50KCk7CisgICAg
Y2hpbGQud2lsbERldGFjaFBhZ2UoKTsKKyAgICBjaGlsZC5kZXRhY2hGcm9tUGFnZSgpOwogCiAg
ICAgbV9mcmFtZS50cmVlKCkucmVtb3ZlQ2hpbGQoY2hpbGQpOwogfQpAQCAtMjUyOCw3ICsyNTI2
LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6ZGV0YWNoRnJvbVBhcmVudCgpCiAgICAgbV9wcm9ncmVz
c1RyYWNrZXIgPSBudWxscHRyOwogCiAgICAgaWYgKEZyYW1lKiBwYXJlbnQgPSBtX2ZyYW1lLnRy
ZWUoKS5wYXJlbnQoKSkgewotICAgICAgICBwYXJlbnQtPmxvYWRlcigpLmNsb3NlQW5kUmVtb3Zl
Q2hpbGQoJm1fZnJhbWUpOworICAgICAgICBwYXJlbnQtPmxvYWRlcigpLmNsb3NlQW5kUmVtb3Zl
Q2hpbGQobV9mcmFtZSk7CiAgICAgICAgIHBhcmVudC0+bG9hZGVyKCkuc2NoZWR1bGVDaGVja0Nv
bXBsZXRlZCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fZnJhbWUuc2V0VmlldyhudWxscHRy
KTsKQEAgLTMwMzIsNyArMzAzMCw3IEBAIGJvb2wgRnJhbWVMb2FkZXI6OmRpc3BhdGNoQmVmb3Jl
VW5sb2FkRXZlbnQoQ2hyb21lJiBjaHJvbWUsIEZyYW1lTG9hZGVyKiBmcmFtZUxvCiAgICAgZnJh
bWVMb2FkZXJCZWluZ05hdmlnYXRlZC0+bV9jdXJyZW50TmF2aWdhdGlvbkhhc1Nob3duQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsID0gdHJ1ZTsKIAogICAgIFN0cmluZyB0ZXh0ID0gZG9jdW1lbnQt
PmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcoYmVmb3JlVW5sb2FkRXZlbnQtPnJldHVy
blZhbHVlKCkpOwotICAgIHJldHVybiBjaHJvbWUucnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KHRleHQsICZtX2ZyYW1lKTsKKyAgICByZXR1cm4gY2hyb21lLnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCh0ZXh0LCBtX2ZyYW1lKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6Y29udGludWVM
b2FkQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
Rm9ybVN0YXRlKiBmb3JtU3RhdGUsIGJvb2wgc2hvdWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlv
blRvSW52YWxpZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpCkBAIC0zNjU3LDcgKzM2
NTUsNyBAQCBSZWZQdHI8RnJhbWU+IGNyZWF0ZVdpbmRvdyhGcmFtZSYgb3BlbmVyRnJhbWUsIEZy
YW1lJiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMbwogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSA9IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb0FwcGx5KG9wZW5lckZyYW1l
LCByZXF1ZXN0LnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSk7Ci0gICAgUGFnZSogcGFn
ZSA9IG9sZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdygmb3BlbmVyRnJhbWUsIHJlcXVlc3RX
aXRoUmVmZXJyZXIsIGZlYXR1cmVzLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3RXaXRoUmVmZXJy
ZXIucmVzb3VyY2VSZXF1ZXN0KCksIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpKTsKKyAg
ICBQYWdlKiBwYWdlID0gb2xkUGFnZS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KG9wZW5lckZyYW1l
LCByZXF1ZXN0V2l0aFJlZmVycmVyLCBmZWF0dXJlcywgTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0
V2l0aFJlZmVycmVyLnJlc291cmNlUmVxdWVzdCgpLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5KSk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMzcw
NSw3ICszNzAzLDcgQEAgUmVmUHRyPEZyYW1lPiBjcmVhdGVXaW5kb3coRnJhbWUmIG9wZW5lckZy
YW1lLCBGcmFtZSYgbG9va3VwRnJhbWUsIGNvbnN0IEZyYW1lTG8KICAgICAgICAgd2luZG93UmVj
dC5zZXRIZWlnaHQoKmZlYXR1cmVzLmhlaWdodCArICh3aW5kb3dSZWN0LmhlaWdodCgpIC0gdmll
d3BvcnRTaXplLmhlaWdodCgpKSk7CiAKICAgICAvLyBFbnN1cmUgbm9uLU5hTiB2YWx1ZXMsIG1p
bmltdW0gc2l6ZSBhcyB3ZWxsIGFzIGJlaW5nIHdpdGhpbiB2YWxpZCBzY3JlZW4gYXJlYS4KLSAg
ICBGbG9hdFJlY3QgbmV3V2luZG93UmVjdCA9IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChw
YWdlLCB3aW5kb3dSZWN0KTsKKyAgICBGbG9hdFJlY3QgbmV3V2luZG93UmVjdCA9IERPTVdpbmRv
dzo6YWRqdXN0V2luZG93UmVjdCgqcGFnZSwgd2luZG93UmVjdCk7CiAKICAgICBpZiAoIWZyYW1l
LT5wYWdlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaAppbmRleCBmYWEwNzEyZmE0ZDI0Nzg3ZmE1NWQ0ODRjNTQ1NDI2NWJhNTFiNjJiLi5k
NjljODI5YzRlMmY2YWJmOTRjZTFiNDA1NjQ3N2VjNmI5MGI2OThhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvRnJhbWVMb2FkZXIuaApAQCAtMzY2LDcgKzM2Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBy
ZXF1ZXN0RnJvbURlbGVnYXRlKFJlc291cmNlUmVxdWVzdCYsIHVuc2lnbmVkIGxvbmcmIGlkZW50
aWZpZXIsIFJlc291cmNlRXJyb3ImKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGV0YWNo
Q2hpbGRyZW4oKTsKLSAgICB2b2lkIGNsb3NlQW5kUmVtb3ZlQ2hpbGQoRnJhbWUqKTsKKyAgICB2
b2lkIGNsb3NlQW5kUmVtb3ZlQ2hpbGQoRnJhbWUmKTsKIAogICAgIHZvaWQgbG9hZEluU2FtZURv
Y3VtZW50KGNvbnN0IFVSTCYsIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc3RhdGVPYmplY3QsIGJv
b2wgaXNOZXdOYXZpZ2F0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BvbGljeUNoZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIu
Y3BwCmluZGV4IGJiYjYxZWI0ODIxMjE5ODNhYmViNTdiY2U0ZTg0NzM0YjdmZTYyMjMuLmEwMWNl
MjkyOWExMDEwNjAwNGEyNGU3NGE2MDhiOGNkNzY3NjFhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUG9saWN5Q2hlY2tlci5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIFBvbGljeUNoZWNr
ZXI6OmNoZWNrTmV3V2luZG93UG9saWN5KGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwg
Y29uc3QgUgogICAgIGlmIChtX2ZyYW1lLmRvY3VtZW50KCkgJiYgbV9mcmFtZS5kb2N1bWVudCgp
LT5pc1NhbmRib3hlZChTYW5kYm94UG9wdXBzKSkKICAgICAgICAgcmV0dXJuIGNvbnRpbnVlQWZ0
ZXJOYXZpZ2F0aW9uUG9saWN5KFBvbGljeUlnbm9yZSk7CiAKLSAgICBpZiAoIURPTVdpbmRvdzo6
YWxsb3dQb3BVcCgmbV9mcmFtZSkpCisgICAgaWYgKCFET01XaW5kb3c6OmFsbG93UG9wVXAobV9m
cmFtZSkpCiAgICAgICAgIHJldHVybiBjb250aW51ZUFmdGVyTmF2aWdhdGlvblBvbGljeShQb2xp
Y3lJZ25vcmUpOwogCiAgICAgbV9jYWxsYmFjay5zZXQocmVxdWVzdCwgZm9ybVN0YXRlLCBmcmFt
ZU5hbWUsIGFjdGlvbiwgV1RGTW92ZShmdW5jdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCA4
YTI4Zjg4ZTY2NzNkYjE3MDJiMTQ0MTRmYWY3MzhiNWM3NDJmY2VmLi45ZjlhYjAwMGNmNmQ5Mzg1
ZjhhMjU4ZjUxNTFiODcwZjcyOTBkOGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtNzg0LDcgKzc4
NCw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpjYWNoZVVwZGF0ZUZhaWxlZCgpCiAK
IHZvaWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpyZWNhbGN1bGF0ZUF2YWlsYWJsZVNwYWNlSW5R
dW90YSgpCiB7Ci0gICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCktPmFwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlKCkuY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hlKG1fb3Jp
Z2luLmdldCgpLCBtX25ld2VzdENhY2hlLmdldCgpLCBtX2F2YWlsYWJsZVNwYWNlSW5RdW90YSkp
IHsKKyAgICBpZiAoIW1fZnJhbWUtPnBhZ2UoKS0+YXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKS5j
YWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUobV9vcmlnaW4sIG1f
bmV3ZXN0Q2FjaGUuZ2V0KCksIG1fYXZhaWxhYmxlU3BhY2VJblF1b3RhKSkgewogICAgICAgICAv
LyBGYWlsZWQgdG8gZGV0ZXJtaW5lIHdoYXQgaXMgbGVmdCBpbiB0aGUgcXVvdGEuIEZhbGxiYWNr
IHRvIGFsbG93aW5nIGFueXRoaW5nLgogICAgICAgICBtX2F2YWlsYWJsZVNwYWNlSW5RdW90YSA9
IEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpub1F1b3RhKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oCmlu
ZGV4IGZjODUxZGE3Y2ZhOGM0MzMyZjY4NWVhMjkxMjJlMzdkNGRiN2FhYTIuLmNlYjgzZGZjNjIx
NmZlNTU4NDI3N2M5ZjlhYWU1NjYwOGQ3YzRkMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmgKQEAgLTY2LDcgKzY2
LDcgQEAgcHVibGljOgogCiAgICAgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UmIHN0b3JhZ2UoKSB7
IHJldHVybiBtX3N0b3JhZ2U7IH0KICAgICBjb25zdCBVUkwmIG1hbmlmZXN0VVJMKCkgY29uc3Qg
eyByZXR1cm4gbV9tYW5pZmVzdFVSTDsgfQotICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbi5nZXQoKTsgfQorICAgIGNvbnN0IFNlY3VyaXR5
T3JpZ2luJiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbi5nZXQoKTsgfQogICAgIFVw
ZGF0ZVN0YXR1cyB1cGRhdGVTdGF0dXMoKSBjb25zdCB7IHJldHVybiBtX3VwZGF0ZVN0YXR1czsg
fQogICAgIHZvaWQgc2V0VXBkYXRlU3RhdHVzKFVwZGF0ZVN0YXR1cyBzdGF0dXMpOwogCkBAIC0x
MzUsNyArMTM1LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U+
IG1fc3RvcmFnZTsKIAogICAgIFVSTCBtX21hbmlmZXN0VVJMOwotICAgIFJlZlB0cjxTZWN1cml0
eU9yaWdpbj4gbV9vcmlnaW47CisgICAgUmVmPFNlY3VyaXR5T3JpZ2luPiBtX29yaWdpbjsKICAg
ICBVcGRhdGVTdGF0dXMgbV91cGRhdGVTdGF0dXMgeyBJZGxlIH07CiAgICAgCiAgICAgLy8gVGhp
cyBpcyB0aGUgbmV3ZXN0IGNvbXBsZXRlIGNhY2hlIGluIHRoZSBncm91cC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2UuY3BwCmluZGV4IGY0ZmE5NWI1MTdlYzc3OTE2MjRmYzBmMjVhNjU2YjBjMDk0NDE0NzcuLmI2
YjlkN2E3Y2Q2M2MwNzZhZTdhODQxMDk5OTgwYjQzZWY4N2I2YWMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdl
LmNwcApAQCAtNDIxLDcgKzQyMSw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnNl
dERlZmF1bHRPcmlnaW5RdW90YShpbnQ2NF90IHF1b3RhKQogICAgIG1fZGVmYXVsdE9yaWdpblF1
b3RhID0gcXVvdGE7CiB9CiAKLWJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0
ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGludDY0X3QmIHF1
b3RhKQorYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmln
aW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgaW50NjRfdCYgcXVvdGEpCiB7CiAgICAg
U1FMaXRlVHJhbnNhY3Rpb25JblByb2dyZXNzQXV0b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVy
OwogCkBAIC00MzIsNyArNDMyLDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2Fs
Y3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qIG9yaWcKICAgICBpZiAo
c3RhdGVtZW50LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIHN0YXRlbWVudC5iaW5kVGV4dCgxLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1
cml0eU9yaWdpbigqb3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CisgICAgc3RhdGVtZW50
LmJpbmRUZXh0KDEsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKG9yaWdp
bikuZGF0YWJhc2VJZGVudGlmaWVyKCkpOwogICAgIGludCByZXN1bHQgPSBzdGF0ZW1lbnQuc3Rl
cCgpOwogCiAgICAgLy8gUmV0dXJuIHRoZSBxdW90YSwgb3IgaWYgaXQgd2FzIG51bGwgdGhlIGRl
ZmF1bHQuCkBAIC00NzIsNyArNDcyLDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6
Y2FsY3VsYXRlVXNhZ2VGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qIG9yaWcKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0
ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShjb25zdCBTZWN1cml0eU9yaWdp
biogb3JpZ2luLCBBcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSwgaW50NjRfdCYgcmVtYWluaW5nU2l6
ZSkKK2Jvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVG
b3JPcmlnaW5FeGNsdWRpbmdDYWNoZShjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBBcHBs
aWNhdGlvbkNhY2hlKiBjYWNoZSwgaW50NjRfdCYgcmVtYWluaW5nU2l6ZSkKIHsKICAgICBTUUxp
dGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7CiAK
QEAgLTUwMyw3ICs1MDMsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjYWxjdWxh
dGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUoY29ucwogICAgIGlmIChzdGF0
ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgc3RhdGVtZW50LmJpbmRUZXh0KDEsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5
T3JpZ2luKCpvcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKKyAgICBzdGF0ZW1lbnQuYmlu
ZFRleHQoMSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3JpZ2luKS5k
YXRhYmFzZUlkZW50aWZpZXIoKSk7CiAgICAgaWYgKGV4Y2x1ZGluZ0NhY2hlSWRlbnRpZmllciAh
PSAwKQogICAgICAgICBzdGF0ZW1lbnQuYmluZEludDY0KDIsIGV4Y2x1ZGluZ0NhY2hlSWRlbnRp
Zmllcik7CiAgICAgaW50IHJlc3VsdCA9IHN0YXRlbWVudC5zdGVwKCk7CkBAIC02ODgsMTQgKzY4
OCwxNCBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzdG9yZShBcHBsaWNhdGlvbkNh
Y2hlR3JvdXAqIGdyb3VwLCBHcm91cFN0b3JhZ2VJRAogCiAgICAgc3RhdGVtZW50LmJpbmRJbnQ2
NCgxLCB1cmxIb3N0SGFzaChncm91cC0+bWFuaWZlc3RVUkwoKSkpOwogICAgIHN0YXRlbWVudC5i
aW5kVGV4dCgyLCBncm91cC0+bWFuaWZlc3RVUkwoKSk7Ci0gICAgc3RhdGVtZW50LmJpbmRUZXh0
KDMsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpncm91cC0+b3JpZ2lu
KCkpLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKKyAgICBzdGF0ZW1lbnQuYmluZFRleHQoMywgU2Vj
dXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oZ3JvdXAtPm9yaWdpbigpKS5kYXRh
YmFzZUlkZW50aWZpZXIoKSk7CiAKICAgICBpZiAoIWV4ZWN1dGVTdGF0ZW1lbnQoc3RhdGVtZW50
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgdW5zaWduZWQgZ3JvdXBTdG9yYWdlSUQg
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9kYXRhYmFzZS5sYXN0SW5zZXJ0Um93SUQoKSk7CiAK
LSAgICBpZiAoIWVuc3VyZU9yaWdpblJlY29yZChncm91cC0+b3JpZ2luKCkpKQorICAgIGlmICgh
ZW5zdXJlT3JpZ2luUmVjb3JkKCZncm91cC0+b3JpZ2luKCkpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBncm91cC0+c2V0U3RvcmFnZUlEKGdyb3VwU3RvcmFnZUlEKTsKQEAgLTk3MSw3
ICs5NzEsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjaGVja09yaWdpblF1b3Rh
KEFwcGxpY2F0aW9uQ2FjaGVHcm91cCogZ3JvdXAsIEFwcAogewogICAgIC8vIENoZWNrIGlmIHRo
ZSBvbGRDYWNoZSB3aXRoIHRoZSBuZXdDYWNoZSB3b3VsZCByZWFjaCB0aGUgcGVyLW9yaWdpbiBx
dW90YS4KICAgICBpbnQ2NF90IHJlbWFpbmluZ1NwYWNlSW5PcmlnaW47Ci0gICAgY29uc3QgU2Vj
dXJpdHlPcmlnaW4qIG9yaWdpbiA9IGdyb3VwLT5vcmlnaW4oKTsKKyAgICBhdXRvJiBvcmlnaW4g
PSBncm91cC0+b3JpZ2luKCk7CiAgICAgaWYgKGNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmln
aW5FeGNsdWRpbmdDYWNoZShvcmlnaW4sIG9sZENhY2hlLCByZW1haW5pbmdTcGFjZUluT3JpZ2lu
KSkgewogICAgICAgICBpZiAocmVtYWluaW5nU3BhY2VJbk9yaWdpbiA8IG5ld0NhY2hlLT5lc3Rp
bWF0ZWRTaXplSW5TdG9yYWdlKCkpIHsKICAgICAgICAgICAgIGludDY0X3QgcXVvdGE7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0
b3JhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZS5oCmluZGV4IDlmYTI5MmVlNTBmYWVlODljMzVjODYxYThmOTlmYTE2ZjkwNTQ3NmQu
LjlkMTdhMWJjZDA2YTZhYzExMWEwYWNhYTYwNzY0ZjZiMTU0MDUwZmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZS5oCkBAIC02Myw4ICs2Myw4IEBAIHB1YmxpYzoKICAgICBpbnQ2NF90IGRlZmF1bHRPcmlnaW5R
dW90YSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVmYXVsdE9yaWdpblF1b3RhOyB9CiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXREZWZhdWx0T3JpZ2luUXVvdGEoaW50NjRfdCBxdW90YSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBjYWxjdWxhdGVVc2FnZUZvck9yaWdpbihjb25zdCBTZWN1cml0
eU9yaWdpbiosIGludDY0X3QmIHVzYWdlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhbGN1
bGF0ZVF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCYgcXVvdGEp
OwotICAgIGJvb2wgY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hl
KGNvbnN0IFNlY3VyaXR5T3JpZ2luKiwgQXBwbGljYXRpb25DYWNoZSosIGludDY0X3QmIHJlbWFp
bmluZ1NpemUpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2FsY3VsYXRlUXVvdGFGb3JPcmln
aW4oY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90JiBxdW90YSk7CisgICAgYm9vbCBjYWxj
dWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUoY29uc3QgU2VjdXJpdHlP
cmlnaW4mLCBBcHBsaWNhdGlvbkNhY2hlKiwgaW50NjRfdCYgcmVtYWluaW5nU2l6ZSk7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBzdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbihjb25zdCBTZWN1
cml0eU9yaWdpbiosIGludDY0X3QgcXVvdGEpOwogICAgIGJvb2wgY2hlY2tPcmlnaW5RdW90YShB
cHBsaWNhdGlvbkNhY2hlR3JvdXAqLCBBcHBsaWNhdGlvbkNhY2hlKiBvbGRDYWNoZSwgQXBwbGlj
YXRpb25DYWNoZSogbmV3Q2FjaGUsIGludDY0X3QmIHRvdGFsU3BhY2VOZWVkZWQpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNw
cAppbmRleCBhOTIxYjA1ZTg0NmEwNWE1YWZjZTYzMDNhYTE4ZjhiZjMwNzA5ZGI0Li4yY2E2N2Uy
N2JlODg0MmNjN2EyMTdkYWE5MjU1ZTgxOGVmOWExOTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAKQEAgLTEzMyw4ICsx
MzMsOCBAQCBSZWZQdHI8TUhUTUxBcmNoaXZlPiBNSFRNTEFyY2hpdmU6OmNyZWF0ZShjb25zdCBV
UkwmIHVybCwgU2hhcmVkQnVmZmVyJiBkYXRhKQogUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gTUhUTUxB
cmNoaXZlOjpnZW5lcmF0ZU1IVE1MRGF0YShQYWdlKiBwYWdlKQogewogICAgIFZlY3RvcjxQYWdl
U2VyaWFsaXplcjo6UmVzb3VyY2U+IHJlc291cmNlczsKLSAgICBQYWdlU2VyaWFsaXplciBwYWdl
U2VyaWFsaXplcigmcmVzb3VyY2VzKTsKLSAgICBwYWdlU2VyaWFsaXplci5zZXJpYWxpemUocGFn
ZSk7CisgICAgUGFnZVNlcmlhbGl6ZXIgcGFnZVNlcmlhbGl6ZXIocmVzb3VyY2VzKTsKKyAgICBw
YWdlU2VyaWFsaXplci5zZXJpYWxpemUoKnBhZ2UpOwogCiAgICAgU3RyaW5nIGJvdW5kYXJ5ID0g
Z2VuZXJhdGVSYW5kb21Cb3VuZGFyeSgpOwogICAgIFN0cmluZyBlbmRPZlJlc291cmNlQm91bmRh
cnkgPSBtYWtlU3RyaW5nKCItLSIsIGJvdW5kYXJ5LCAiXHJcbiIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0
aG1sL01hdGhNTEVsZW1lbnQuY3BwCmluZGV4IGUxNTE3NmQzMzE5ZDk0Y2UwYjljOTFmYmJkOGVi
NzM3ODE5NGM4NjQuLmU5NzEzOTYxY2UzYjc0ODg0YTFiM2JlM2U1MGE3MzkwNjIzZjg5ZTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAKQEAgLTE4Miw3ICsxODIsNyBA
QCBib29sIE1hdGhNTEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCYg
ZXZlbnQpIGNvbnN0CiAgICAgICAgIHJldHVybiBTdHlsZWRFbGVtZW50Ojppc0tleWJvYXJkRm9j
dXNhYmxlKGV2ZW50KTsKIAogICAgIGlmIChpc0xpbmsoKSkKLSAgICAgICAgcmV0dXJuIGRvY3Vt
ZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoJmV2ZW50KTsKKyAgICAg
ICAgcmV0dXJuIGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3Mo
ZXZlbnQpOwogCiAgICAgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUo
ZXZlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDc0ZGRlMWEzNGUxNWU5MDk3MWFk
MDg2ZTI3MGI5YWE1Njk4ODIxMGIuLmUzNjNmNDNhZGM2ZjViY2U0OTA4NDQwOTc1Mzc0NmFhODYx
ZTg0ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTQ4LDcgKzQ4LDYgQEAKICNpbmNsdWRl
ICJTdG9yYWdlTmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNs
dWRlIDxydW50aW1lL1ZNLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRl
IDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTYzLDEw
ICs2Miw2IEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBDaHJvbWU6OkNocm9tZShQYWdl
JiBwYWdlLCBDaHJvbWVDbGllbnQmIGNsaWVudCkKICAgICA6IG1fcGFnZShwYWdlKQogICAgICwg
bV9jbGllbnQoY2xpZW50KQotICAgICwgbV9kaXNwbGF5SUQoMCkKLSNpZiBQTEFURk9STShJT1Mp
Ci0gICAgLCBtX2lzRGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkKGZhbHNl
KQotI2VuZGlmCiB7CiB9CiAKQEAgLTExNCw2ICsxMDksNyBAQCBJbnRSZWN0IENocm9tZTo6cm9v
dFZpZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAogfQogICAgIAogI2lmIFBM
QVRGT1JNKElPUykKKwogSW50UG9pbnQgQ2hyb21lOjphY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290
Vmlldyhjb25zdCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY2xpZW50
LmFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KHBvaW50KTsKQEAgLTEyMyw2ICsxMTksNyBA
QCBJbnRSZWN0IENocm9tZTo6cm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29uc3QgSW50
UmVjdCYgcmVjdCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jbGllbnQucm9vdFZpZXdUb0FjY2Vz
c2liaWxpdHlTY3JlZW4ocmVjdCk7CiB9CisKICNlbmRpZgogCiBQbGF0Zm9ybVBhZ2VDbGllbnQg
Q2hyb21lOjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdApAQCAtMTMwLDcgKzEyNyw3IEBAIFBs
YXRmb3JtUGFnZUNsaWVudCBDaHJvbWU6OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0CiAgICAg
cmV0dXJuIG1fY2xpZW50LnBsYXRmb3JtUGFnZUNsaWVudCgpOwogfQogCi12b2lkIENocm9tZTo6
Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNv
bnN0Cit2b2lkIENocm9tZTo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYgZnJhbWUsIGNvbnN0
IEludFNpemUmIHNpemUpIGNvbnN0CiB7CiAgICAgbV9jbGllbnQuY29udGVudHNTaXplQ2hhbmdl
ZChmcmFtZSwgc2l6ZSk7CiB9CkBAIC0xOTAsMTUgKzE4NywxMyBAQCB2b2lkIENocm9tZTo6Zm9j
dXNlZEZyYW1lQ2hhbmdlZChGcmFtZSogZnJhbWUpIGNvbnN0CiAgICAgbV9jbGllbnQuZm9jdXNl
ZEZyYW1lQ2hhbmdlZChmcmFtZSk7CiB9CiAKLVBhZ2UqIENocm9tZTo6Y3JlYXRlV2luZG93KEZy
YW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2luZG93
RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24pIGNvbnN0
CitQYWdlKiBDaHJvbWU6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9h
ZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uKSBjb25zdAogewogICAgIFBhZ2UqIG5ld1BhZ2UgPSBt
X2NsaWVudC5jcmVhdGVXaW5kb3coZnJhbWUsIHJlcXVlc3QsIGZlYXR1cmVzLCBhY3Rpb24pOwog
ICAgIGlmICghbmV3UGFnZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBpZiAoU3RvcmFnZU5h
bWVzcGFjZSogb2xkU2Vzc2lvblN0b3JhZ2UgPSBtX3BhZ2Uuc2Vzc2lvblN0b3JhZ2UoZmFsc2Up
KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoYXV0byogb2xkU2Vzc2lvblN0b3Jh
Z2UgPSBtX3BhZ2Uuc2Vzc2lvblN0b3JhZ2UoZmFsc2UpKQogICAgICAgICBuZXdQYWdlLT5zZXRT
ZXNzaW9uU3RvcmFnZShvbGRTZXNzaW9uU3RvcmFnZS0+Y29weShuZXdQYWdlKSk7Ci0KICAgICBy
ZXR1cm4gbmV3UGFnZTsKIH0KIApAQCAtMjc2LDcgKzI3MSw3IEBAIGJvb2wgQ2hyb21lOjpjYW5S
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKQogICAgIHJldHVybiBtX2NsaWVudC5jYW5SdW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKTsKIH0KIAotYm9vbCBDaHJvbWU6OnJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKiBmcmFtZSkKK2Jv
b2wgQ2hyb21lOjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCBGcmFtZSYgZnJhbWUpCiB7CiAgICAgLy8gRGVmZXIgbG9hZHMgaW4gY2FzZSB0aGUgY2xp
ZW50IG1ldGhvZCBydW5zIGEgbmV3IGV2ZW50IGxvb3AgdGhhdCB3b3VsZAogICAgIC8vIG90aGVy
d2lzZSBjYXVzZSB0aGUgbG9hZCB0byBjb250aW51ZSB3aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxl
IG9mIGV4ZWN1dGluZyBKYXZhU2NyaXB0LgpAQCAtMjkwLDUzICsyODUsNDcgQEAgdm9pZCBDaHJv
bWU6OmNsb3NlV2luZG93U29vbigpCiAgICAgbV9jbGllbnQuY2xvc2VXaW5kb3dTb29uKCk7CiB9
CiAKLXZvaWQgQ2hyb21lOjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCit2b2lkIENocm9tZTo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiBm
cmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIC8vIERlZmVyIGxvYWRzIGluIGNh
c2UgdGhlIGNsaWVudCBtZXRob2QgcnVucyBhIG5ldyBldmVudCBsb29wIHRoYXQgd291bGQKICAg
ICAvLyBvdGhlcndpc2UgY2F1c2UgdGhlIGxvYWQgdG8gY29udGludWUgd2hpbGUgd2UncmUgaW4g
dGhlIG1pZGRsZSBvZiBleGVjdXRpbmcgSmF2YVNjcmlwdC4KICAgICBQYWdlR3JvdXBMb2FkRGVm
ZXJyZXIgZGVmZXJyZXIobV9wYWdlLCB0cnVlKTsKIAotICAgIEFTU0VSVChmcmFtZSk7CiAgICAg
bm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7Ci0gICAgU3RyaW5nIGRpc3BsYXlNZXNzYWdl
ID0gZnJhbWUtPmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcobWVzc2FnZSk7CisgICAg
U3RyaW5nIGRpc3BsYXlNZXNzYWdlID0gZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNv
ZGluZyhtZXNzYWdlKTsKIAogICAgIG1fY2xpZW50LnJ1bkphdmFTY3JpcHRBbGVydChmcmFtZSwg
ZGlzcGxheU1lc3NhZ2UpOwogfQogCi1ib29sIENocm9tZTo6cnVuSmF2YVNjcmlwdENvbmZpcm0o
RnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCitib29sIENocm9tZTo6cnVuSmF2
YVNjcmlwdENvbmZpcm0oRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAg
ICAgLy8gRGVmZXIgbG9hZHMgaW4gY2FzZSB0aGUgY2xpZW50IG1ldGhvZCBydW5zIGEgbmV3IGV2
ZW50IGxvb3AgdGhhdCB3b3VsZAogICAgIC8vIG90aGVyd2lzZSBjYXVzZSB0aGUgbG9hZCB0byBj
b250aW51ZSB3aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGV4ZWN1dGluZyBKYXZhU2NyaXB0
LgogICAgIFBhZ2VHcm91cExvYWREZWZlcnJlciBkZWZlcnJlcihtX3BhZ2UsIHRydWUpOwogCi0g
ICAgQVNTRVJUKGZyYW1lKTsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKLSAg
ICBTdHJpbmcgZGlzcGxheU1lc3NhZ2UgPSBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlF
bmNvZGluZyhtZXNzYWdlKTsKLQotICAgIHJldHVybiBtX2NsaWVudC5ydW5KYXZhU2NyaXB0Q29u
ZmlybShmcmFtZSwgZGlzcGxheU1lc3NhZ2UpOworICAgIHJldHVybiBtX2NsaWVudC5ydW5KYXZh
U2NyaXB0Q29uZmlybShmcmFtZSwgZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGlu
ZyhtZXNzYWdlKSk7CiB9CiAKLWJvb2wgQ2hyb21lOjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1l
KiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVl
LCBTdHJpbmcmIHJlc3VsdCkKK2Jvb2wgQ2hyb21lOjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1l
JiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVl
LCBTdHJpbmcmIHJlc3VsdCkKIHsKICAgICAvLyBEZWZlciBsb2FkcyBpbiBjYXNlIHRoZSBjbGll
bnQgbWV0aG9kIHJ1bnMgYSBuZXcgZXZlbnQgbG9vcCB0aGF0IHdvdWxkCiAgICAgLy8gb3RoZXJ3
aXNlIGNhdXNlIHRoZSBsb2FkIHRvIGNvbnRpbnVlIHdoaWxlIHdlJ3JlIGluIHRoZSBtaWRkbGUg
b2YgZXhlY3V0aW5nIEphdmFTY3JpcHQuCiAgICAgUGFnZUdyb3VwTG9hZERlZmVycmVyIGRlZmVy
cmVyKG1fcGFnZSwgdHJ1ZSk7CiAKLSAgICBBU1NFUlQoZnJhbWUpOwogICAgIG5vdGlmeVBvcHVw
T3BlbmluZ09ic2VydmVycygpOwotICAgIFN0cmluZyBkaXNwbGF5UHJvbXB0ID0gZnJhbWUtPmRp
c3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcocHJvbXB0KTsKKyAgICBTdHJpbmcgZGlzcGxh
eVByb21wdCA9IGZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcocHJvbXB0KTsK
IAotICAgIGJvb2wgb2sgPSBtX2NsaWVudC5ydW5KYXZhU2NyaXB0UHJvbXB0KGZyYW1lLCBkaXNw
bGF5UHJvbXB0LCBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhkZWZhdWx0
VmFsdWUpLCByZXN1bHQpOworICAgIGJvb2wgb2sgPSBtX2NsaWVudC5ydW5KYXZhU2NyaXB0UHJv
bXB0KGZyYW1lLCBkaXNwbGF5UHJvbXB0LCBmcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVu
Y29kaW5nKGRlZmF1bHRWYWx1ZSksIHJlc3VsdCk7CiAgICAgaWYgKG9rKQotICAgICAgICByZXN1
bHQgPSBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhyZXN1bHQpOworICAg
ICAgICByZXN1bHQgPSBmcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHJlc3Vs
dCk7CiAKICAgICByZXR1cm4gb2s7CiB9CiAKLXZvaWQgQ2hyb21lOjpzZXRTdGF0dXNiYXJUZXh0
KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBzdGF0dXMpCit2b2lkIENocm9tZTo6c2V0U3Rh
dHVzYmFyVGV4dChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgc3RhdHVzKQogewotICAgIEFT
U0VSVChmcmFtZSk7Ci0gICAgbV9jbGllbnQuc2V0U3RhdHVzYmFyVGV4dChmcmFtZS0+ZGlzcGxh
eVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhzdGF0dXMpKTsKKyAgICBtX2NsaWVudC5zZXRTdGF0
dXNiYXJUZXh0KGZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmcoc3RhdHVzKSk7
CiB9CiAKIHZvaWQgQ2hyb21lOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0
UmVzdWx0JiByZXN1bHQsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpCkBAIC00MDcsOSArMzk2LDkg
QEAgdm9pZCBDaHJvbWU6OnNldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQog
ICAgIG1fY2xpZW50LnNldFRvb2xUaXAodG9vbFRpcCwgdG9vbFRpcERpcmVjdGlvbik7CiB9CiAK
LXZvaWQgQ2hyb21lOjpwcmludChGcmFtZSogZnJhbWUpCit2b2lkIENocm9tZTo6cHJpbnQoRnJh
bWUmIGZyYW1lKQogewotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBoYXZlIFBhZ2VHcm91cExv
YWREZWZlcnJlciwgbGlrZSBydW5Nb2RhbCgpIG9yIHJ1bkphdmFTY3JpcHRBbGVydCgpLCBiZWNh
c3VlIGl0J3Mgbm8gZGlmZmVyZW50IGZyb20gdGhvc2UuCisgICAgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIGhhdmUgUGFnZUdyb3VwTG9hZERlZmVycmVyLCBsaWtlIHJ1bk1vZGFsKCkgb3IgcnVuSmF2
YVNjcmlwdEFsZXJ0KCksIGJlY2F1c2UgaXQncyBubyBkaWZmZXJlbnQgZnJvbSB0aG9zZS4KICAg
ICBtX2NsaWVudC5wcmludChmcmFtZSk7CiB9CiAKQEAgLTQyNCwxMSArNDEzLDEzIEBAIHZvaWQg
Q2hyb21lOjpkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKQogfQogCiAjaWYgRU5BQkxFKElOUFVU
X1RZUEVfQ09MT1IpCi1zdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBDaHJvbWU6OmNyZWF0
ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCwgY29uc3QgQ29sb3ImIGlu
aXRpYWxDb2xvcikKKworc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gQ2hyb21lOjpjcmVh
dGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiBjbGllbnQsIGNvbnN0IENvbG9yJiBp
bml0aWFsQ29sb3IpCiB7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7CiAgICAg
cmV0dXJuIG1fY2xpZW50LmNyZWF0ZUNvbG9yQ2hvb3NlcihjbGllbnQsIGluaXRpYWxDb2xvcik7
CiB9CisKICNlbmRpZgogCiB2b2lkIENocm9tZTo6cnVuT3BlblBhbmVsKEZyYW1lJiBmcmFtZSwg
RmlsZUNob29zZXImIGZpbGVDaG9vc2VyKQpAQCAtNTM4LDEzICs1MjksMTMgQEAgYm9vbCBDaHJv
bWU6Omhhc09wZW5lZFBvcHVwKCkgY29uc3QKICAgICByZXR1cm4gbV9jbGllbnQuaGFzT3BlbmVk
UG9wdXAoKTsKIH0KIAotUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVQb3B1cE1lbnUo
UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWU6
OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKICAgICBu
b3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKICAgICByZXR1cm4gbV9jbGllbnQuY3JlYXRl
UG9wdXBNZW51KGNsaWVudCk7CiB9CiAKLVJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IENocm9tZTo6
Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUmVm
UHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBN
ZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2
ZXJzKCk7CiAgICAgcmV0dXJuIG1fY2xpZW50LmNyZWF0ZVNlYXJjaFBvcHVwTWVudShjbGllbnQp
OwpAQCAtNTU1LDMwICs1NDYsMjcgQEAgYm9vbCBDaHJvbWU6OnJlcXVpcmVzRnVsbHNjcmVlbkZv
clZpZGVvUGxheWJhY2soKQogICAgIHJldHVybiBtX2NsaWVudC5yZXF1aXJlc0Z1bGxzY3JlZW5G
b3JWaWRlb1BsYXliYWNrKCk7CiB9CiAKLSNpZiBQTEFURk9STShJT1MpCi0vLyBGSVhNRTogTWFr
ZSBhcmd1bWVudCwgZnJhbWUsIGEgcmVmZXJlbmNlLgotdm9pZCBDaHJvbWU6OmRpZFJlY2VpdmVE
b2NUeXBlKEZyYW1lKiBmcmFtZSkKK3ZvaWQgQ2hyb21lOjpkaWRSZWNlaXZlRG9jVHlwZShGcmFt
ZSYgZnJhbWUpCiB7Ci0gICAgQVNTRVJUKGZyYW1lKTsKLSAgICBpZiAoIWZyYW1lLT5pc01haW5G
cmFtZSgpKQorI2lmICFQTEFURk9STShJT1MpCisgICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKKyNl
bHNlCisgICAgaWYgKCFmcmFtZS5pc01haW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBib29sIGhhc01vYmlsZURvY1R5cGUgPSBmYWxzZTsKLSAgICBpZiAoRG9jdW1lbnRUeXBlKiBk
b2N1bWVudFR5cGUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9jdHlwZSgpKQotICAgICAgICBoYXNN
b2JpbGVEb2NUeXBlID0gZG9jdW1lbnRUeXBlLT5wdWJsaWNJZCgpLmNvbnRhaW5zKCJ4aHRtbCBt
b2JpbGUiLCBmYWxzZSk7Ci0gICAgbV9jbGllbnQuZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoaGFz
TW9iaWxlRG9jVHlwZSk7Ci19CisgICAgYXV0byogZG9jdHlwZSA9IGZyYW1lLmRvY3VtZW50KCkt
PmRvY3R5cGUoKTsKKyAgICBtX2NsaWVudC5kaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShkb2N0eXBl
ICYmIGRvY3R5cGUtPnB1YmxpY0lkKCkuY29udGFpbnNJZ25vcmluZ0FTQ0lJQ2FzZSgieGh0bWwg
bW9iaWxlIikpOwogI2VuZGlmCit9CiAKLXZvaWQgQ2hyb21lOjpyZWdpc3RlclBvcHVwT3Blbmlu
Z09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyKiBvYnNlcnZlcikKK3ZvaWQgQ2hyb21lOjpy
ZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyJiBvYnNlcnZl
cikKIHsKLSAgICBBU1NFUlQob2JzZXJ2ZXIpOwotICAgIG1fcG9wdXBPcGVuaW5nT2JzZXJ2ZXJz
LmFwcGVuZChvYnNlcnZlcik7CisgICAgbV9wb3B1cE9wZW5pbmdPYnNlcnZlcnMuYXBwZW5kKCZv
YnNlcnZlcik7CiB9CiAKLXZvaWQgQ2hyb21lOjp1bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2
ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXIqIG9ic2VydmVyKQordm9pZCBDaHJvbWU6OnVucmVnaXN0
ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7
Ci0gICAgYm9vbCByZW1vdmVkID0gbV9wb3B1cE9wZW5pbmdPYnNlcnZlcnMucmVtb3ZlRmlyc3Qo
b2JzZXJ2ZXIpOworICAgIGJvb2wgcmVtb3ZlZCA9IG1fcG9wdXBPcGVuaW5nT2JzZXJ2ZXJzLnJl
bW92ZUZpcnN0KCZvYnNlcnZlcik7CiAgICAgQVNTRVJUX1VOVVNFRChyZW1vdmVkLCByZW1vdmVk
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggNmQyNWFjODkxNjAwZjIxODRhNjU0ZGFkMzIy
NmQ0NmM4MTkzMmE2Ni4uYjNjNDY0N2MxYWU5NTAwNTIwNzgzNDllMDc2YTI5YjBlNmFkYzZjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5oCkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
c2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdDsKIAotICAgIHZvaWQgY29u
dGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNvbnN0IEludFNpemUmKSBjb25zdDsKKyAgICB2b2lk
IGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3Q7CiAKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JikgY29u
c3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgRmxvYXRSZWN0IHdpbmRvd1JlY3QoKSBjb25zdDsKQEAg
LTExMSw3ICsxMTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb2N1c2VkRWxlbWVudENoYW5nZWQo
RWxlbWVudCopIGNvbnN0OwogICAgIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSopIGNv
bnN0OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lKiwgY29u
c3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdh
dGlvbkFjdGlvbiYpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2UqIGNyZWF0ZVdpbmRv
dyhGcmFtZSYsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYs
IGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNob3coKSBjb25zdDsKIAogICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBjb25zdDsKQEAgLTEzMiwy
NiArMTMyLDI2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlc2l6YWJsZShib29sKSBjb25zdDsK
IAogICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCk7Ci0gICAgYm9vbCBy
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSop
OworICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgRnJhbWUmKTsKIAogICAgIHZvaWQgY2xvc2VXaW5kb3dTb29uKCk7CiAKLSAgICB2b2lk
IHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmluZyYpOwotICAgIGJvb2wgcnVu
SmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmKTsKLSAgICBib29sIHJ1bkph
dmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRTdGF0dXNiYXJUZXh0KEZyYW1lKiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBydW5K
YXZhU2NyaXB0QWxlcnQoRnJhbWUmLCBjb25zdCBTdHJpbmcmKTsKKyAgICBib29sIHJ1bkphdmFT
Y3JpcHRDb25maXJtKEZyYW1lJiwgY29uc3QgU3RyaW5nJik7CisgICAgYm9vbCBydW5KYXZhU2Ny
aXB0UHJvbXB0KEZyYW1lJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
ZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
U3RhdHVzYmFyVGV4dChGcmFtZSYsIGNvbnN0IFN0cmluZyYpOwogCiAgICAgdm9pZCBtb3VzZURp
ZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJG
bGFncyk7CiAKICAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYpOwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcmludChGcmFtZSopOworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgcHJpbnQoRnJhbWUmKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5hYmxlU3Vk
ZGVuVGVybWluYXRpb24oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc2FibGVTdWRkZW5U
ZXJtaW5hdGlvbigpOwogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgc3RkOjp1
bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNs
aWVudCosIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxD
b2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmLCBjb25z
dCBDb2xvciYgaW5pdGlhbENvbG9yKTsKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwo
RnJhbWUmLCBGaWxlQ2hvb3NlciYpOwpAQCAtMTY4LDI4ICsxNjgsMjggQEAgcHVibGljOgogICAg
IGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKICAgICBib29sIHNl
bGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKICAgICBib29s
IGhhc09wZW5lZFBvcHVwKCkgY29uc3Q7Ci0gICAgUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OwotICAgIFJlZlB0cjxTZWFyY2hQb3B1cE1l
bnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICBS
ZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JikgY29uc3Q7
CisgICAgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVw
TWVudUNsaWVudCYpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIC8vIEZJWE1FOiBD
YW4gd2UgY29tZSB1cCB3aXRoIGEgYmV0dGVyIG5hbWUgZm9yIHRoaXMgc2V0dGVyPwogICAgIHZv
aWQgc2V0RGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkKGJvb2wgZGlzcGF0
Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkKSB7IG1faXNEaXNwYXRjaFZpZXdwb3J0
RGF0YURpZENoYW5nZVN1cHByZXNzZWQgPSBkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZVN1
cHByZXNzZWQ7IH0KLQotICAgIHZvaWQgZGlkUmVjZWl2ZURvY1R5cGUoRnJhbWUqKTsKICNlbmRp
ZgogCi0gICAgdm9pZCByZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09i
c2VydmVyKik7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBP
cGVuaW5nT2JzZXJ2ZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEb2NUeXBlKEZyYW1lJik7CisK
KyAgICB2b2lkIHJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2
ZXImKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5p
bmdPYnNlcnZlciYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgbm90aWZ5UG9wdXBPcGVuaW5nT2Jz
ZXJ2ZXJzKCkgY29uc3Q7CiAKICAgICBQYWdlJiBtX3BhZ2U7CiAgICAgQ2hyb21lQ2xpZW50JiBt
X2NsaWVudDsKLSAgICBQbGF0Zm9ybURpc3BsYXlJRCBtX2Rpc3BsYXlJRDsKKyAgICBQbGF0Zm9y
bURpc3BsYXlJRCBtX2Rpc3BsYXlJRCB7IDAgfTsKICAgICBWZWN0b3I8UG9wdXBPcGVuaW5nT2Jz
ZXJ2ZXIqPiBtX3BvcHVwT3BlbmluZ09ic2VydmVyczsKICNpZiBQTEFURk9STShJT1MpCi0gICAg
Ym9vbCBtX2lzRGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkOworICAgIGJv
b2wgbV9pc0Rpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlU3VwcHJlc3NlZCB7IGZhbHNlIH07
CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDJjODliNmNi
YTUwNjgwYjk3MmRjNTVmYzRiMjRjNDg5MGZhZWI4MjQuLjhhMTYzOTFmYmI4NmJjY2I3NGZmZTVj
NDFmZjVhNTg2NmNlN2VhNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTIz
LDcgKzEyMyw3IEBAIHB1YmxpYzoKICAgICAvLyBjcmVhdGVkIFBhZ2UgaGFzIGl0cyBzaG93IG1l
dGhvZCBjYWxsZWQuCiAgICAgLy8gVGhlIEZyYW1lTG9hZFJlcXVlc3QgcGFyYW1ldGVyIGlzIG9u
bHkgZm9yIENocm9tZUNsaWVudCB0byBjaGVjayBpZiB0aGUKICAgICAvLyByZXF1ZXN0IGNvdWxk
IGJlIGZ1bGZpbGxlZC4gVGhlIENocm9tZUNsaWVudCBzaG91bGQgbm90IGxvYWQgdGhlIHJlcXVl
c3QuCi0gICAgdmlydHVhbCBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxv
YWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9u
JikgPSAwOworICAgIHZpcnR1YWwgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lJiwgY29uc3QgRnJh
bWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFj
dGlvbiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvdygpID0gMDsKIAogICAgIHZpcnR1YWwg
Ym9vbCBjYW5SdW5Nb2RhbCgpID0gMDsKQEAgLTE0Niw2MyArMTQ2LDY3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdl
TGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWdu
ZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSA9IDA7CiAKICAgICB2aXJ0
dWFsIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgPSAwOwotICAgIHZpcnR1
YWwgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBGcmFtZSopID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZv
aWQgY2xvc2VXaW5kb3dTb29uKCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3Jp
cHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgcnVu
SmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVh
bCBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmLCBjb25zdCBTdHJpbmcmKSA9IDA7
CisgICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiwgY29uc3QgU3Ry
aW5nJikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5n
JiByZXN1bHQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBT
dHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCBLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgp
ID0gMDsKIAotICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgogICAgIHZpcnR1YWwg
Ym9vbCBzdXBwb3J0c0ltbWVkaWF0ZUludmFsaWRhdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRS
ZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Ny
b2xsKGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJ
bnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKSA9IDA7CisKICNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgdmlydHVhbCB2b2lkIGRlbGVnYXRlZFNjcm9sbFJl
cXVlc3RlZChjb25zdCBJbnRQb2ludCYpID0gMDsKICNlbmRpZgorCiAgICAgdmlydHVhbCBJbnRQ
b2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JikgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgSW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdCA9IDA7
CisKICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCBJbnRQb2ludCBhY2Nlc3NpYmlsaXR5
U2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFs
IEludFJlY3Qgcm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29uc3QgSW50UmVjdCYpIGNv
bnN0ID0gMDsKICNlbmRpZiAgICAKKwogICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBs
YXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFy
c01vZGVEaWRDaGFuZ2UoKSBjb25zdCA9IDA7CisKICNpZiBFTkFCTEUoQ1VSU09SX1NVUFBPUlQp
CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSA9IDA7CiAjZW5k
aWYKKwogI2lmICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCiAgICAgdmlydHVh
bCB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkgPSAwOwogI2VuZGlmCi0gICAgLy8gRW5kIG1ldGhv
ZHMgdXNlZCBieSBIb3N0V2luZG93LgogCi0gICAgdmlydHVhbCBGbG9hdFNpemUgc2NyZWVuU2l6
ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Q2hyb21lQ2xpZW50Kj4odGhpcyktPndpbmRv
d1JlY3QoKS5zaXplKCk7IH0KLSAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBhdmFpbGFibGVTY3JlZW5T
aXplKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxDaHJvbWVDbGllbnQqPih0aGlzKS0+d2lu
ZG93UmVjdCgpLnNpemUoKTsgfQorICAgIHZpcnR1YWwgRmxvYXRTaXplIHNjcmVlblNpemUoKSBj
b25zdCB7IHJldHVybiBjb25zdF9jYXN0PENocm9tZUNsaWVudCY+KCp0aGlzKS53aW5kb3dSZWN0
KCkuc2l6ZSgpOyB9CisgICAgdmlydHVhbCBGbG9hdFNpemUgYXZhaWxhYmxlU2NyZWVuU2l6ZSgp
IGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Q2hyb21lQ2xpZW50Jj4oKnRoaXMpLndpbmRvd1Jl
Y3QoKS5zaXplKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFZpZXdwb3J0UHJvcGVy
dGllc0RpZENoYW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYpIGNvbnN0IHsgfQogCi0gICAg
dmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJbnRTaXplJikg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiwg
Y29uc3QgSW50U2l6ZSYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdElu
dG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCB7IH07IC8vIEN1cnJlbnRseSBvbmx5IE1hYyBo
YXMgYSBub24gZW1wdHkgaW1wbGVtZW50YXRpb24uCiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
VW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBs
dWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZp
cnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCosIFJlbmRl
ckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50Jiwg
UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVz
dFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpID0gMDsKIAogICAgIHZpcnR1YWwgdm9p
ZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rpb24pID0gMDsKIAotICAgIHZp
cnR1YWwgdm9pZCBwcmludChGcmFtZSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJh
bWUmKSA9IDA7CiAKICAgICB2aXJ0dWFsIENvbG9yIHVuZGVybGF5Q29sb3IoKSBjb25zdCB7IHJl
dHVybiBDb2xvcigpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFnZUV4dGVuZGVkQmFja2dyb3Vu
ZENvbG9yRGlkQ2hhbmdlKENvbG9yKSBjb25zdCB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBleGNl
ZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0
YWJhc2VEZXRhaWxzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90
YShGcmFtZSYsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMpID0g
MDsKIAogICAgIC8vIENhbGxiYWNrIGludm9rZWQgd2hlbiB0aGUgYXBwbGljYXRpb24gY2FjaGUg
ZmFpbHMgdG8gc2F2ZSBhIGNhY2hlIG9iamVjdAogICAgIC8vIGJlY2F1c2Ugc3RvcmluZyBpdCB3
b3VsZCBncm93IHRoZSBkYXRhYmFzZSBmaWxlIHBhc3QgaXRzIGRlZmluZWQgbWF4aW11bQpAQCAt
MjE5LDcgKzIyMyw3IEBAIHB1YmxpYzoKICAgICAvLyBzdG9yYWdlLCBpbiBieXRlcywgbmVlZGVk
IHRvIHN0b3JlIHRoZSBuZXcgY2FjaGUgYWxvbmcgd2l0aCBhbGwgb2YgdGhlCiAgICAgLy8gb3Ro
ZXIgZXhpc3RpbmcgY2FjaGVzIGZvciB0aGUgb3JpZ2luIHRoYXQgd291bGQgbm90IGJlIHJlcGxh
Y2VkIGJ5CiAgICAgLy8gdGhlIG5ldyBjYWNoZS4KLSAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxT
cGFjZU5lZWRlZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSA9
IDA7CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgdmlydHVhbCB2b2lkIGFu
bm90YXRlZFJlZ2lvbnNDaGFuZ2VkKCk7CkBAIC0yMzYsMTAgKzI0MCwxMCBAQCBwdWJsaWM6CiAK
ICNpZiBQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNb2JpbGVEb2NU
eXBlKGJvb2wpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRp
b25zKEZyYW1lKiwgYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBvYnNlcnZlZENvbnRlbnRD
aGFuZ2UoRnJhbWUqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyQ29udGVudENoYW5nZU9i
c2VydmVycyhGcmFtZSopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UmV2ZWFsZWRTZWxl
Y3Rpb25CeVNjcm9sbGluZ0ZyYW1lKEZyYW1lKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRO
ZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoRnJhbWUmLCBib29sKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShGcmFtZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKEZyYW1lJikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoRnJhbWUmKSA9IDA7CiAK
ICAgICBlbnVtIExheW91dFR5cGUgeyBOb3JtYWxMYXlvdXQsIFNjcm9sbCB9OwogICAgIHZpcnR1
YWwgdm9pZCBkaWRMYXlvdXQoTGF5b3V0VHlwZSA9IE5vcm1hbExheW91dCkgPSAwOwpAQCAtMjcw
LDE2ICsyNzQsMTYgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9D
T0xPUikKLSAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNv
bG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYpID0gMDsKKyAgICB2
aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihD
b2xvckNob29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYpID0gMDsKICNlbmRpZgogCiAgICAgdmly
dHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJikgPSAwOwogICAgIC8v
IEFzeW5jaHJvbm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Igc3BlY2lmaWVkIGZpbGVu
YW1lcy4KICAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3Ry
aW5nPiYsIEZpbGVJY29uTG9hZGVyJikgPSAwOwogICAgICAgICAKLSAgICB2aXJ0dWFsIHZvaWQg
ZWxlbWVudERpZEZvY3VzKGNvbnN0IE5vZGUqKSB7IH07Ci0gICAgdmlydHVhbCB2b2lkIGVsZW1l
bnREaWRCbHVyKGNvbnN0IE5vZGUqKSB7IH07Ci0gICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRS
ZWZvY3VzKGNvbnN0IE5vZGUqKSB7IH07CisgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRGb2N1
cyhFbGVtZW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKEVsZW1lbnQm
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZFJlZm9jdXMoRWxlbWVudCYpIHsgfQog
ICAgIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRQYWludEVudGlyZUNvbnRlbnRzKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFzU3RhYmxlUGFnZVNjYWxlRmFj
dG9yKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMjkxLDkgKzI5NSw5IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlS
ZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsg
fQogI2VuZGlmCiAKLSAgICAvLyBQYXNzIDAgYXMgdGhlIEdyYXBoaWNzTGF5ZXIgdG8gZGV0YXRj
aCB0aGUgcm9vdCBsYXllci4KLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5
ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hW
aWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikgPSAwOworICAg
IC8vIFBhc3MgbnVsbHB0ciBhcyB0aGUgR3JhcGhpY3NMYXllciB0byBkZXRhdGNoIHRoZSByb290
IGxheWVyLgorICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSYs
IEdyYXBoaWNzTGF5ZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFZpZXdPdmVybGF5
R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSA9IDA7CiAgICAgLy8gU2V0cyBh
IGZsYWcgdG8gc3BlY2lmeSB0aGF0IHRoZSBuZXh0IHRpbWUgY29udGVudCBpcyBkcmF3biB0byB0
aGUgd2luZG93LAogICAgIC8vIHRoZSBjaGFuZ2VzIGFwcGVhciBvbiB0aGUgc2NyZWVuIGluIHN5
bmNocm9ueSB3aXRoIHVwZGF0ZXMgdG8gR3JhcGhpY3NMYXllcnMuCiAgICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSA9IDA7CkBAIC0zMjUsMjYg
KzMyOSwyOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgYWRqdXN0TGF5ZXJGbHVzaFRo
cm90dGxpbmcoTGF5ZXJGbHVzaFRocm90dGxlU3RhdGU6OkZsYWdzKSB7IHJldHVybiBmYWxzZTsg
fQogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGVT
Y3JvbGxpbmdDb29yZGluYXRvcihQYWdlKikgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQorICAg
IHZpcnR1YWwgUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdDb29y
ZGluYXRvcihQYWdlJikgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogCiAjaWYgUExBVEZPUk0o
V0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKQotICAgIHZpcnR1YWwgR3JhcGhpY3NEZXZpY2VBZGFw
dGVyKiBncmFwaGljc0RldmljZUFkYXB0ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmly
dHVhbCBHcmFwaGljc0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2aWNlQWRhcHRlcigpIGNvbnN0
IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRz
VmlkZW9GdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9k
ZSkgeyByZXR1cm4gZmFsc2U7IH0KKwogI2lmIEVOQUJMRShWSURFTykKICAgICB2aXJ0dWFsIHZv
aWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYs
IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHNldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXIoSFRNTE1lZGlhRWxlbWVudCYp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBjbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkgeyB9
CiAjZW5kaWYKLSAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxl
bWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGV4
aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6OkhUTUxWaWRl
b0VsZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgLyp0
YXJnZXRNb2RlKi8pIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5G
b3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBl
eGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihIVE1MVmlkZW9FbGVtZW50
JiwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSB7IH0KICAgICB2
aXJ0dWFsIGJvb2wgcmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpIHsgcmV0dXJu
IGZhbHNlOyB9IAogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIHZpcnR1YWwgYm9v
bCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQqLCBib29sKSB7IHJl
dHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KEVsZW1lbnQqKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
KEVsZW1lbnQqKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxl
bWVudChjb25zdCBFbGVtZW50JiwgYm9vbCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50JikgeyB9CisgICAgdmlydHVh
bCB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50JikgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHNldFJvb3RGdWxsU2NyZWVuTGF5ZXIoR3JhcGhpY3NMYXllciopIHsgfQogI2VuZGlm
CiAKQEAgLTM1Myw3ICszNTksNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQotICAgIHZpcnR1YWwgTlNSZXNwb25kZXIgKmZpcnN0UmVzcG9uZGVyKCkgeyByZXR1cm4g
MDsgfQorICAgIHZpcnR1YWwgTlNSZXNwb25kZXIgKmZpcnN0UmVzcG9uZGVyKCkgeyByZXR1cm4g
bnVsbHB0cjsgfQogICAgIHZpcnR1YWwgdm9pZCBtYWtlRmlyc3RSZXNwb25kZXIoTlNSZXNwb25k
ZXIgKikgeyB9CiAgICAgLy8gRm9jdXNlcyBvbiB0aGUgY29udGFpbmluZyB2aWV3IGFzc29jaWF0
ZWQgd2l0aCB0aGlzIHBhZ2UuCiAgICAgdmlydHVhbCB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcigp
IHsgfQpAQCAtMzc3LDEwICszODMsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzZWxl
Y3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgPSAwOwogICAgIC8v
IENoZWNrcyBpZiB0aGVyZSBpcyBhbiBvcGVuZWQgcG9wdXAsIGNhbGxlZCBieSBSZW5kZXJNZW51
TGlzdDo6c2hvd1BvcHVwKCkuCiAgICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29u
c3QgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBv
cHVwTWVudUNsaWVudCopIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxTZWFyY2hQb3B1
cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7
CisgICAgdmlydHVhbCBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50JikgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4g
Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0ID0gMDsKIAotICAg
IHZpcnR1YWwgdm9pZCBwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5
T2JqZWN0KiwgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24pIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Jiwg
QVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24pIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIG5v
dGlmeVNjcm9sbGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgSW50UmVjdCYpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKFNjcm9sbGJh
clN0eWxlKSB7IH0KQEAgLTQwOCwxNiArNDE0LDE2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQXNzb2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+
JikgeyB9OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkgeyBy
ZXR1cm4gZmFsc2U7IH07CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkSGVhZGVyTGF5ZXIoR3Jh
cGhpY3NMYXllciopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRGb290ZXJMYXllcihHcmFw
aGljc0xheWVyKikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhlYWRlckxheWVyKEdyYXBo
aWNzTGF5ZXImKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoR3JhcGhp
Y3NMYXllciYpIHsgfQogCi0gICAgdmlydHVhbCBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0Zv
ckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJh
bWVWaWV3JikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBpc1Bs
YXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MsIHVpbnQ2
NF90KSB7IH0KIAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIHZpcnR1YWwgdm9pZCBo
YXNNZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50c0RpZENoYW5nZShib29sKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoY29uc3QgV2Vi
Q29yZTo6TWVkaWFTZXNzaW9uTWV0YWRhdGEmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFT
ZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoY29uc3QgTWVkaWFTZXNzaW9uTWV0YWRhdGEmKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZENvbnRlbnRNZWRpYUVsZW1lbnREaWRDaGFuZ2UodWlu
dDY0X3QpIHsgfQogI2VuZGlmCiAKQEAgLTQyNywxMSArNDMzLDEyIEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKFRFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAmJiBQTEFURk9STShN
QUMpCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGNvbnN0IFN0
cmluZyYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGhh
bmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGNvbnN0IFN0cmluZyYsIGNvbnN0IEludFBvaW50Jikg
eyB9CiAjZW5kaWYKKwogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb24m
LCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgeyB9Ci0g
ICAgdmlydHVhbCBib29sIGhhc1JlbGV2YW50U2VsZWN0aW9uU2VydmljZXMoYm9vbCAvKiBpc1Rl
eHRPbmx5ICovKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5k
bGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soRnJhbWVTZWxlY3Rpb24mLCBjb25zdCBWZWN0b3I8U3Ry
aW5nPiYsIGNvbnN0IEludFBvaW50JikgeyB9CisgICAgdmlydHVhbCBib29sIGhhc1JlbGV2YW50
U2VsZWN0aW9uU2VydmljZXMoYm9vbCAvKmlzVGV4dE9ubHkqLykgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZERpc3BhdGNoRmFrZU1vdXNl
TW92ZUV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KQEAgLTQ0MSwxMyArNDQ4LDEzIEBA
IHB1YmxpYzoKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIHZpcnR1
YWwgdm9pZCBhZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCAvKmNvbnRleHRJ
ZCovKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGll
bnQodWludDY0X3QgLypjb250ZXh0SWQqLykgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNob3dQbGF5
YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCAvKmNvbnRleHRJZCovLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYsIGJvb2wgLyogaXNWaWRlbyAqLykgeyB9CisgICAgdmlydHVhbCB2b2lkIHNob3dQ
bGF5YmFja1RhcmdldFBpY2tlcih1aW50NjRfdCAvKmNvbnRleHRJZCovLCBjb25zdCBJbnRQb2lu
dCYsIGJvb2wgLyppc1ZpZGVvKi8pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudFN0YXRlRGlkQ2hhbmdlKHVpbnQ2NF90IC8qY29udGV4dElkKi8sIE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldE1vY2tN
ZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKSAgeyB9Ci0gICAgdmlydHVhbCB2
b2lkIHNldE1vY2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwg
V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0YXRlKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJp
bmcmLCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3RhdGUpIHsgfQogI2VuZGlmCiAKLSAg
ICB2aXJ0dWFsIHZvaWQgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZChjb25zdCBXZWJD
b3JlOjpJbnRTaXplJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGltYWdlT3JNZWRpYURvY3VtZW50
U2l6ZUNoYW5nZWQoY29uc3QgSW50U2l6ZSYpIHsgfQogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBV
U0UoR1NUUkVBTUVSKQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRp
YVBsdWdpbnMoY29uc3QgU3RyaW5nJiAvKmRldGFpbHMqLywgY29uc3QgU3RyaW5nJiAvKmRlc2Ny
aXB0aW9uKi8sIE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNr
JikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAK
aW5kZXggMGU3YTc3YjZkYTI4OWEwMjU2OTM1MzRhZDFmYzRkNTEwOWM1MGYzMy4uYzFjNDk0ODQw
MjgzODQ5ZjE1MmJiMjc0NWY4YTFiNDYwNmVlZDNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApAQCAtOTQsNyArOTQsNyBAQCB2b2lkIENvbnRl
eHRNZW51Q29udHJvbGxlcjo6Y2xlYXJDb250ZXh0TWVudSgpCiAgICAgbV9tZW51UHJvdmlkZXIg
PSBudWxscHRyOwogfQogCi12b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6aGFuZGxlQ29udGV4
dE1lbnVFdmVudChFdmVudCogZXZlbnQpCit2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6aGFu
ZGxlQ29udGV4dE1lbnVFdmVudChFdmVudCYgZXZlbnQpCiB7CiAgICAgbV9jb250ZXh0TWVudSA9
IG1heWJlQ3JlYXRlQ29udGV4dE1lbnUoZXZlbnQpOwogICAgIGlmICghbV9jb250ZXh0TWVudSkK
QEAgLTExMCw5ICsxMTAsOSBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51SXRl
bT4gc2VwYXJhdG9ySXRlbSgpCiAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVu
dUl0ZW0+KG5ldyBDb250ZXh0TWVudUl0ZW0oU2VwYXJhdG9yVHlwZSwgQ29udGV4dE1lbnVJdGVt
VGFnTm9BY3Rpb24sIFN0cmluZygpKSk7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVy
OjpzaG93Q29udGV4dE1lbnUoRXZlbnQqIGV2ZW50LCBQYXNzUmVmUHRyPENvbnRleHRNZW51UHJv
dmlkZXI+IG1lbnVQcm92aWRlcikKK3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29u
dGV4dE1lbnUoRXZlbnQmIGV2ZW50LCBDb250ZXh0TWVudVByb3ZpZGVyJiBwcm92aWRlcikKIHsK
LSAgICBtX21lbnVQcm92aWRlciA9IG1lbnVQcm92aWRlcjsKKyAgICBtX21lbnVQcm92aWRlciA9
ICZwcm92aWRlcjsKIAogICAgIG1fY29udGV4dE1lbnUgPSBtYXliZUNyZWF0ZUNvbnRleHRNZW51
KGV2ZW50KTsKICAgICBpZiAoIW1fY29udGV4dE1lbnUpIHsKQEAgLTEyMCw3ICsxMjAsNyBAQCB2
b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50KiBldmVudCwg
UGFzc1JlZlB0cjxDb250ZXh0TWVudQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9t
ZW51UHJvdmlkZXItPnBvcHVsYXRlQ29udGV4dE1lbnUobV9jb250ZXh0TWVudS5nZXQoKSk7Cisg
ICAgcHJvdmlkZXIucG9wdWxhdGVDb250ZXh0TWVudShtX2NvbnRleHRNZW51LmdldCgpKTsKICAg
ICBpZiAobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5pc1NlbGVjdGVkKCkpIHsKICAgICAgICAg
YXBwZW5kSXRlbSgqc2VwYXJhdG9ySXRlbSgpLCBtX2NvbnRleHRNZW51LmdldCgpKTsKICAgICAg
ICAgcG9wdWxhdGUoKTsKQEAgLTEyOSwzMyArMTI5LDM0IEBAIHZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZlbnQqIGV2ZW50LCBQYXNzUmVmUHRyPENvbnRleHRN
ZW51CiB9CiAKICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKwogc3RhdGljIEltYWdlKiBp
bWFnZUZyb21JbWFnZUVsZW1lbnROb2RlKE5vZGUmIG5vZGUpCiB7Ci0gICAgUmVuZGVyT2JqZWN0
KiByZW5kZXJlciA9IG5vZGUucmVuZGVyZXIoKTsKKyAgICBhdXRvKiByZW5kZXJlciA9IG5vZGUu
cmVuZGVyZXIoKTsKICAgICBpZiAoIWlzPFJlbmRlckltYWdlPihyZW5kZXJlcikpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwotICAgIENhY2hlZEltYWdlKiBpbWFnZSA9IGRvd25jYXN0PFJlbmRl
ckltYWdlPigqcmVuZGVyZXIpLmNhY2hlZEltYWdlKCk7CisgICAgYXV0byogaW1hZ2UgPSBkb3du
Y2FzdDxSZW5kZXJJbWFnZT4oKnJlbmRlcmVyKS5jYWNoZWRJbWFnZSgpOwogICAgIGlmICghaW1h
Z2UgfHwgaW1hZ2UtPmVycm9yT2NjdXJyZWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
ICAgICByZXR1cm4gaW1hZ2UtPmltYWdlRm9yUmVuZGVyZXIocmVuZGVyZXIpOwogfQorCiAjZW5k
aWYKIAotc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6
Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQqIGV2ZW50KQorc3RkOjp1bmlxdWVfcHRyPENv
bnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUo
RXZlbnQmIGV2ZW50KQogewotICAgIEFTU0VSVChldmVudCk7Ci0gICAgCi0gICAgaWYgKCFpczxN
b3VzZUV2ZW50PigqZXZlbnQpKQorICAgIGlmICghaXM8TW91c2VFdmVudD4oZXZlbnQpKQogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIE1vdXNlRXZlbnQmIG1vdXNlRXZlbnQgPSBkb3du
Y2FzdDxNb3VzZUV2ZW50PigqZXZlbnQpOwotICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KG1vdXNl
RXZlbnQuYWJzb2x1dGVMb2NhdGlvbigpKTsKKyAgICBhdXRvJiBtb3VzZUV2ZW50ID0gZG93bmNh
c3Q8TW91c2VFdmVudD4oZXZlbnQpOworICAgIGF1dG8qIG5vZGUgPSBtb3VzZUV2ZW50LnRhcmdl
dCgpLT50b05vZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
ICAgIGF1dG8qIGZyYW1lID0gbm9kZS0+ZG9jdW1lbnQoKS5mcmFtZSgpOworICAgIGlmICghZnJh
bWUpCisgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgTm9kZSogbm9kZSA9IGV2ZW50LT50
YXJnZXQoKS0+dG9Ob2RlKCk7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50
KCkuZnJhbWUoKSkKLSAgICAgICAgcmVzdWx0ID0gZnJhbWUtPmV2ZW50SGFuZGxlcigpLmhpdFRl
c3RSZXN1bHRBdFBvaW50KG1vdXNlRXZlbnQuYWJzb2x1dGVMb2NhdGlvbigpKTsKLSAgICAKKyAg
ICBhdXRvIHJlc3VsdCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2lu
dChtb3VzZUV2ZW50LmFic29sdXRlTG9jYXRpb24oKSk7CiAgICAgaWYgKCFyZXN1bHQuaW5uZXJO
b25TaGFyZWROb2RlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC0xNjMsNyArMTY0
LDcgQEAgc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6
Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRS
T0xTKQogICAgIGlmIChub2RlLT5pc0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50KCkpIHsKLSAg
ICAgICAgaWYgKEltYWdlKiBpbWFnZSA9IGltYWdlRnJvbUltYWdlRWxlbWVudE5vZGUoKnJlc3Vs
dC5pbm5lck5vblNoYXJlZE5vZGUoKSkpCisgICAgICAgIGlmIChhdXRvKiBpbWFnZSA9IGltYWdl
RnJvbUltYWdlRWxlbWVudE5vZGUoKnJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSkpCiAgICAg
ICAgICAgICBtX2NvbnRleHQuc2V0Q29udHJvbGxlZEltYWdlKGltYWdlKTsKIAogICAgICAgICAv
LyBGSVhNRTogSWYgd2UgY291bGRuJ3QgZ2V0IHRoZSBpbWFnZSB0aGVuIHdlIHNob3VsZG4ndCB0
cnkgdG8gc2hvdyB0aGUgaW1hZ2UgY29udHJvbHMgbWVudSBmb3IgaXQuCkBAIC0xNzEsMjQgKzE3
MiwyNCBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IENvbnRleHRNZW51Q29udHJvbGxl
cjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudAogICAgIH0KICNlbmRpZgogCi0gICAgcmV0
dXJuIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4obmV3IENvbnRleHRNZW51KTsKKyAgICBy
ZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxDb250ZXh0TWVudT4oKTsKIH0KIAotdm9pZCBDb250ZXh0
TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCogZXZlbnQpCit2b2lkIENvbnRl
eHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50JiBldmVudCkKIHsKICAgICBp
ZiAobV9wYWdlLmluc3BlY3RvckNvbnRyb2xsZXIoKS5lbmFibGVkKCkpCiAgICAgICAgIGFkZElu
c3BlY3RFbGVtZW50SXRlbSgpOwogCi0gICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7Cisg
ICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKIH0KIAotc3RhdGljIHZvaWQgb3Blbk5ld1dp
bmRvdyhjb25zdCBVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCitzdGF0aWMgdm9pZCBv
cGVuTmV3V2luZG93KGNvbnN0IFVSTCYgdXJsVG9Mb2FkLCBGcmFtZSYgZnJhbWUsIFNob3VsZE9w
ZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKIHsKLSAg
ICBQYWdlKiBvbGRQYWdlID0gZnJhbWUtPnBhZ2UoKTsKKyAgICBQYWdlKiBvbGRQYWdlID0gZnJh
bWUucGFnZSgpOwogICAgIGlmICghb2xkUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRnJh
bWVMb2FkUmVxdWVzdCByZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
LCBSZXNvdXJjZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFtZS0+bG9hZGVyKCkub3V0Z29pbmdSZWZl
cnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVT
ZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9w
ZW5lclBvbGljeTo6U3VwcHJlc3MsIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOworICAg
IEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChmcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdp
bigpLCBSZXNvdXJjZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFtZS5sb2FkZXIoKS5vdXRnb2luZ1Jl
ZmVycmVyKCkpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXli
ZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1l
T3BlbmVyUG9saWN5OjpTdXBwcmVzcywgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAK
ICAgICBQYWdlKiBuZXdQYWdlID0gb2xkUGFnZS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KGZyYW1l
LCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QucmVz
b3VyY2VSZXF1ZXN0KCkpKTsKICAgICBpZiAoIW5ld1BhZ2UpCkBAIC0xOTgsMTUgKzE5OSwxNyBA
QCBzdGF0aWMgdm9pZCBvcGVuTmV3V2luZG93KGNvbnN0IFVSTCYgdXJsVG9Mb2FkLCBGcmFtZSog
ZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbAogfQogCiAjaWYgUExBVEZPUk0oR1RLKQotc3RhdGlj
IHZvaWQgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihVQ2hhciBjaGFyYWN0ZXIsIEZyYW1lKiBmcmFt
ZSkKKworc3RhdGljIHZvaWQgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihVQ2hhciBjaGFyYWN0ZXIs
IEZyYW1lJiBmcmFtZSkKIHsKICAgICBTdHJpbmcgdGV4dCgmY2hhcmFjdGVyLCAxKTsKLSAgICBp
ZiAoIWZyYW1lLT5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KHRleHQsIGZyYW1lLT5zZWxlY3Rp
b24oKS50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OlR5cGVk
KSkKKyAgICBpZiAoIWZyYW1lLmVkaXRvcigpLnNob3VsZEluc2VydFRleHQodGV4dCwgZnJhbWUu
c2VsZWN0aW9uKCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9u
OjpUeXBlZCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVChmcmFtZS0+ZG9jdW1lbnQo
KSk7Ci0gICAgVHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dCgqZnJhbWUtPmRvY3VtZW50KCksIHRl
eHQsIDAsIFR5cGluZ0NvbW1hbmQ6OlRleHRDb21wb3NpdGlvbk5vbmUpOworICAgIEFTU0VSVChm
cmFtZS5kb2N1bWVudCgpKTsKKyAgICBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KCpmcmFtZS5k
b2N1bWVudCgpLCB0ZXh0LCAwLCBUeXBpbmdDb21tYW5kOjpUZXh0Q29tcG9zaXRpb25Ob25lKTsK
IH0KKwogI2VuZGlmCiAKIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0
ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUp
CkBAIC0yMjUsNyArMjI4LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRN
ZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KIAogICAgIHN3aXRj
aCAoYWN0aW9uKSB7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2lu
ZG93OgotICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJz
b2x1dGVMaW5rVVJMKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91
bGRBbGxvd0V4dGVybmFsU2NoZW1lcyk7CisgICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0
LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvd0V4dGVybmFsU2NoZW1lcyk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrOgogICAg
ICAgICAvLyBGSVhNRTogU29tZSBkYXkgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZG8gdGhpcyBmcm9t
IHdpdGhpbiBXZWJDb3JlLiAoQnVnIDExNzcwOSkKQEAgLTIzNSw3ICsyMzgsNyBAQCB2b2lkIENv
bnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVB
Y3Rpb24gYWN0aW9uLCBjbwogICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuY29weVVSTChtX2NvbnRl
eHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBtX2NvbnRleHQuaGl0VGVzdFJl
c3VsdCgpLnRleHRDb250ZW50KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRN
ZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93OgotICAgICAgICBvcGVuTmV3V2luZG93KG1f
Y29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVJbWFnZVVSTCgpLCBmcmFtZSwgU2hvdWxk
T3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOworICAgICAgICBvcGVuTmV3
V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVJbWFnZVVSTCgpLCAqZnJh
bWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNr
OgogICAgICAgICAvLyBGSVhNRTogU29tZSBkYXkgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZG8gdGhp
cyBmcm9tIHdpdGhpbiBXZWJDb3JlLiAoQnVnIDExNzcwOSkKQEAgLTI1Miw3ICsyNTUsNyBAQCB2
b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4
dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwogICAgICAgICBicmVhazsKICNlbmRpZgogICAgIGNhc2Ug
Q29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3c6Ci0gICAgICAgIG9wZW5OZXdX
aW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZU1lZGlhVVJMKCksIGZyYW1l
LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgICAg
IG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZU1lZGlhVVJM
KCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTWVk
aWFUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIGRheSB3ZSBzaG91bGQgYmUgYWJsZSB0
byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUuIChCdWcgMTE3NzA5KQpAQCAtMjg1LDkgKzI4
OCw5IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3Rl
ZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1U
YWdPcGVuRnJhbWVJbk5ld1dpbmRvdzogewogICAgICAgICBEb2N1bWVudExvYWRlciogbG9hZGVy
ID0gZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCk7CiAgICAgICAgIGlmICghbG9hZGVy
LT51bnJlYWNoYWJsZVVSTCgpLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG9wZW5OZXdXaW5kb3co
bG9hZGVyLT51bnJlYWNoYWJsZVVSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeTo6U2hvdWxkTm90QWxsb3cpOworICAgICAgICAgICAgb3Blbk5ld1dpbmRvdyhsb2FkZXIt
PnVucmVhY2hhYmxlVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6
U2hvdWxkTm90QWxsb3cpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBvcGVuTmV3V2luZG93
KGxvYWRlci0+dXJsKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91
bGROb3RBbGxvdyk7CisgICAgICAgICAgICBvcGVuTmV3V2luZG93KGxvYWRlci0+dXJsKCksICpm
cmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAg
ICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5OgpAQCAt
MzE4LDM0ICszMjEsMzQgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51
SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KICAgICAgICAgZnJhbWUt
PmVkaXRvcigpLnBlcmZvcm1EZWxldGUoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250
ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0TFJNTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29k
ZUNoYXJhY3RlcihsZWZ0VG9SaWdodE1hcmssIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29k
ZUNoYXJhY3RlcihsZWZ0VG9SaWdodE1hcmssICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydFJMTU1hcms6Ci0gICAgICAgIGlu
c2VydFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRNYXJrLCBmcmFtZSk7CisgICAgICAgIGlu
c2VydFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRNYXJrLCAqZnJhbWUpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRMUkVNYXJrOgot
ICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0RW1iZWQsIGZyYW1lKTsK
KyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9SaWdodEVtYmVkLCAqZnJhbWUp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNl
cnRSTEVNYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHJpZ2h0VG9MZWZ0RW1i
ZWQsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdodFRvTGVmdEVt
YmVkLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z1VuaWNvZGVJbnNlcnRMUk9NYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxl
ZnRUb1JpZ2h0T3ZlcnJpZGUsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rl
cihsZWZ0VG9SaWdodE92ZXJyaWRlLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRSTE9NYXJrOgotICAgICAgICBpbnNlcnRV
bmljb2RlQ2hhcmFjdGVyKHJpZ2h0VG9MZWZ0T3ZlcnJpZGUsIGZyYW1lKTsKKyAgICAgICAgaW5z
ZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdodFRvTGVmdE92ZXJyaWRlLCAqZnJhbWUpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRQREZNYXJr
OgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHBvcERpcmVjdGlvbmFsRm9ybWF0dGlu
ZywgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHBvcERpcmVjdGlvbmFs
Rm9ybWF0dGluZywgKmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdVbmljb2RlSW5zZXJ0WldTTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJh
Y3Rlcih6ZXJvV2lkdGhTcGFjZSwgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFj
dGVyKHplcm9XaWR0aFNwYWNlLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRaV0pNYXJrOgotICAgICAgICBpbnNlcnRVbmlj
b2RlQ2hhcmFjdGVyKHplcm9XaWR0aEpvaW5lciwgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmlj
b2RlQ2hhcmFjdGVyKHplcm9XaWR0aEpvaW5lciwgKmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0WldOSk1hcms6Ci0gICAgICAg
IGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoTm9uSm9pbmVyLCBmcmFtZSk7CisgICAg
ICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoTm9uSm9pbmVyLCAqZnJhbWUpOwog
ICAgICAgICBicmVhazsKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZM
KQpAQCAtMzkzLDcgKzM5Niw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0
TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgICAgIGlm
IChGcmFtZSogdGFyZ2V0RnJhbWUgPSBtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLnRhcmdldEZy
YW1lKCkpCiAgICAgICAgICAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCkubG9hZEZyYW1lUmVxdWVz
dChGcmFtZUxvYWRSZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBS
ZXNvdXJjZVJlcXVlc3QobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwo
KSwgZnJhbWUtPmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSksIExvY2tIaXN0b3J5OjpObywg
TG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRp
b25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzLCB0YXJn
ZXRGcmFtZS0+aXNNYWluRnJhbWUoKSA/IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNo
b3VsZEFsbG93IDogU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cp
LCBudWxscHRyLCBudWxscHRyKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgb3Blbk5ld1dp
bmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFtZSwg
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3cpOworICAgICAgICAgICAg
b3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgp
LCAqZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93KTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdCb2xkOgogICAgICAgICBm
cmFtZS0+ZWRpdG9yKCkuY29tbWFuZCgiVG9nZ2xlQm9sZCIpLmV4ZWN1dGUoKTsKQEAgLTE0Mjks
MjYgKzE0MzIsMzAgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNoZWNrT3JFbmFibGVJ
Zk5lZWRlZChDb250ZXh0TWVudUl0ZW0mIGl0ZW0pIGNvbnN0CiB9CiAKICNpZiBVU0UoQUNDRVNT
SUJJTElUWV9DT05URVhUX01FTlVTKQotdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dD
b250ZXh0TWVudUF0KEZyYW1lKiBmcmFtZSwgY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQpCisK
K3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnVBdChGcmFtZSYgZnJh
bWUsIGNvbnN0IEludFBvaW50JiBjbGlja1BvaW50KQogewogICAgIGNsZWFyQ29udGV4dE1lbnUo
KTsKICAgICAKICAgICAvLyBTaW11bGF0ZSBhIGNsaWNrIGluIHRoZSBtaWRkbGUgb2YgdGhlIGFj
Y2Vzc2liaWxpdHkgb2JqZWN0LgogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KGNs
aWNrUG9pbnQsIGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVBy
ZXNzZWQsIDEsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBGb3Jj
ZUF0Q2xpY2ssIE5vVGFwKTsKLSAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQ
cmVzc0V2ZW50KG1vdXNlRXZlbnQpOwotICAgIGJvb2wgaGFuZGxlZCA9IGZyYW1lLT5ldmVudEhh
bmRsZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKKyAgICBmcmFtZS5ldmVu
dEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VFdmVudCk7CisgICAgYm9vbCBo
YW5kbGVkID0gZnJhbWUuZXZlbnRIYW5kbGVyKCkuc2VuZENvbnRleHRNZW51RXZlbnQobW91c2VF
dmVudCk7CiAgICAgaWYgKGhhbmRsZWQpCiAgICAgICAgIG1fY2xpZW50LnNob3dDb250ZXh0TWVu
dSgpOwogfQorCiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotdm9pZCBD
b250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dJbWFnZUNvbnRyb2xzTWVudShFdmVudCogZXZlbnQp
CisKK3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93SW1hZ2VDb250cm9sc01lbnUoRXZl
bnQmIGV2ZW50KQogewogICAgIGNsZWFyQ29udGV4dE1lbnUoKTsKICAgICBoYW5kbGVDb250ZXh0
TWVudUV2ZW50KGV2ZW50KTsKICAgICBtX2NsaWVudC5zaG93Q29udGV4dE1lbnUoKTsKIH0KKwog
I2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5oCmluZGV4IDExMjU2ZTFjZTc5YWIxZTdiMzIxNThmNzg0ZGM3
ODgxMzY0NzRkOGQuLmY2Mzk2NDhiMTg2MjA0NjA2ZWZjYTU2YTkwNzgyYzg5MzdhMGU5NTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwy
MSArMjksMTYgQEAKIAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udGV4dC5oIgogI2luY2x1ZGUg
IkNvbnRleHRNZW51SXRlbS5oIgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIENvbnRleHRNZW51OwogY2xhc3MgQ29udGV4dE1lbnVDbGll
bnQ7Ci1jbGFzcyBDb250ZXh0TWVudUl0ZW07CiBjbGFzcyBDb250ZXh0TWVudVByb3ZpZGVyOwog
Y2xhc3MgRXZlbnQ7CiBjbGFzcyBQYWdlOwogCiBjbGFzcyBDb250ZXh0TWVudUNvbnRyb2xsZXIg
ewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbnRleHRNZW51Q29udHJvbGxlcik7IFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGlj
OgogICAgIENvbnRleHRNZW51Q29udHJvbGxlcihQYWdlJiwgQ29udGV4dE1lbnVDbGllbnQmKTsK
ICAgICB+Q29udGV4dE1lbnVDb250cm9sbGVyKCk7CkBAIC01NCw4ICs0OSw4IEBAIHB1YmxpYzoK
ICAgICBDb250ZXh0TWVudSogY29udGV4dE1lbnUoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRN
ZW51LmdldCgpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhckNvbnRleHRNZW51KCk7
CiAKLSAgICB2b2lkIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZlbnQqKTsKLSAgICB2b2lkIHNo
b3dDb250ZXh0TWVudShFdmVudCosIFBhc3NSZWZQdHI8Q29udGV4dE1lbnVQcm92aWRlcj4pOwor
ICAgIHZvaWQgaGFuZGxlQ29udGV4dE1lbnVFdmVudChFdmVudCYpOworICAgIHZvaWQgc2hvd0Nv
bnRleHRNZW51KEV2ZW50JiwgQ29udGV4dE1lbnVQcm92aWRlciYpOwogCiAgICAgdm9pZCBwb3B1
bGF0ZSgpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQo
Q29udGV4dE1lbnVBY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUpOwpAQCAtNjgsMTYgKzYzLDE2
IEBAIHB1YmxpYzoKICAgICBjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWx0KCkgY29u
c3QgeyByZXR1cm4gbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKTsgfQogCiAjaWYgVVNFKEFDQ0VT
U0lCSUxJVFlfQ09OVEVYVF9NRU5VUykKLSAgICB2b2lkIHNob3dDb250ZXh0TWVudUF0KEZyYW1l
KiwgY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQpOworICAgIHZvaWQgc2hvd0NvbnRleHRNZW51
QXQoRnJhbWUmLCBjb25zdCBJbnRQb2ludCYgY2xpY2tQb2ludCk7CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIHZvaWQgc2hvd0ltYWdlQ29udHJvbHNNZW51KEV2
ZW50Kik7CisgICAgdm9pZCBzaG93SW1hZ2VDb250cm9sc01lbnUoRXZlbnQmKTsKICNlbmRpZgog
CiBwcml2YXRlOgotICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gbWF5YmVDcmVhdGVD
b250ZXh0TWVudShFdmVudCopOwotICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KEV2ZW50Kik7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBtYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2
ZW50Jik7CisgICAgdm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQmKTsKICAgICAKICAgICB2b2lk
IGFwcGVuZEl0ZW0oQ29udGV4dE1lbnVJdGVtJiwgQ29udGV4dE1lbnUqIHBhcmVudE1lbnUpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCmluZGV4IDhjMjczODFhZDY5YmMyZWFiOTIzMmYyOGFh
NTc2MDUwM2I2ZGIxOGQuLjZiYjg5NjFkOWNlODI4YTk4MjU0MjU5MDAxMjZmOGU1YmRhN2MzNDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCkBAIC0zNjEsNyArMzYxLDcgQEAgdm9pZCBET01U
aW1lcjo6ZmlyZWQoKQogICAgICAgICBpZiAoV0tPYnNlcnZlZENvbnRlbnRDaGFuZ2UoKSA9PSBX
S0NvbnRlbnRWaXNpYmlsaXR5Q2hhbmdlIHx8IHNob3VsZFJlcG9ydExhY2tPZkNoYW5nZXMpIHsK
ICAgICAgICAgICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihjb250
ZXh0KTsKICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKQotICAg
ICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLm9ic2VydmVkQ29udGVudENoYW5n
ZShkb2N1bWVudC5mcmFtZSgpKTsKKyAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGll
bnQoKS5vYnNlcnZlZENvbnRlbnRDaGFuZ2UoKmRvY3VtZW50LmZyYW1lKCkpOwogICAgICAgICB9
CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggOTY5OTY1MDM4
YTI2NWRkNzE4MDhjNmFmZGYwYjIwZGQ1MmViNjRhNC4uNjI2OTY3MzA5YTVhNzNhMzg3MzhjMDE3
OGUyYmM2NjFmYjMwYzI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5k
b3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTAsIDIwMTMg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEw
IE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dApAQCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9s
bGVyLmgiCiAjaW5jbHVkZSAiQmFyUHJvcC5oIgotI2luY2x1ZGUgIkJlZm9yZVVubG9hZEV2ZW50
LmgiCiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAi
Q1NTUnVsZS5oIgogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCkBAIC0xMjUsMjIgKzEyNCwyMyBA
QAogI2luY2x1ZGUgIldlYktpdE5hbWVzcGFjZS5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoUFJP
WElNSVRZX0VWRU5UUykKLSNpbmNsdWRlICJEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmgiCi0j
ZW5kaWYKLQogI2lmIEVOQUJMRShHQU1FUEFEKQogI2luY2x1ZGUgIkdhbWVwYWRNYW5hZ2VyLmgi
CiAjZW5kaWYKIAorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyNpbmNsdWRlICJOYXZpZ2F0b3JH
ZW9sb2NhdGlvbi5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogI2luY2x1
ZGUgIlBvaW50ZXJMb2NrQ29udHJvbGxlci5oIgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1Mp
Ci0jaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQotI2luY2x1ZGUgIk5hdmlnYXRvckdlb2xvY2F0aW9u
LmgiCisjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisjaW5jbHVkZSAiRGV2aWNlUHJveGlt
aXR5Q29udHJvbGxlci5oIgogI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpCiAjaW5jbHVkZSAi
V0tDb250ZW50T2JzZXJ2YXRpb24uaCIKICNlbmRpZgogCkBAIC0xNTAsOSArMTUwLDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBQb3N0TWVzc2FnZVRpbWVyIDogcHVibGljIFRpbWVy
QmFzZSB7CiBwdWJsaWM6Ci0gICAgUG9zdE1lc3NhZ2VUaW1lcihET01XaW5kb3cmIHdpbmRvdywg
UGFzc1JlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
c291cmNlT3JpZ2luLCBET01XaW5kb3cmIHNvdXJjZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQ
b3J0Q2hhbm5lbEFycmF5PiBjaGFubmVscywgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHRhcmdl
dE9yaWdpbiwgUmVmUHRyPFNjcmlwdENhbGxTdGFjaz4mJiBzdGFja1RyYWNlKQorICAgIFBvc3RN
ZXNzYWdlVGltZXIoRE9NV2luZG93JiB3aW5kb3csIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
JiYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIERPTVdpbmRvdyYgc291cmNl
LCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzLCBSZWZQ
dHI8U2VjdXJpdHlPcmlnaW4+JiYgdGFyZ2V0T3JpZ2luLCBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNr
PiYmIHN0YWNrVHJhY2UpCiAgICAgICAgIDogbV93aW5kb3cod2luZG93KQotICAgICAgICAsIG1f
bWVzc2FnZShtZXNzYWdlKQorICAgICAgICAsIG1fbWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKQog
ICAgICAgICAsIG1fb3JpZ2luKHNvdXJjZU9yaWdpbikKICAgICAgICAgLCBtX3NvdXJjZShzb3Vy
Y2UpCiAgICAgICAgICwgbV9jaGFubmVscyhXVEZNb3ZlKGNoYW5uZWxzKSkKQEAgLTE4MSw3ICsx
ODEsNyBAQCBwcml2YXRlOgogICAgIH0KIAogICAgIFJlZjxET01XaW5kb3c+IG1fd2luZG93Owot
ICAgIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fbWVzc2FnZTsKKyAgICBSZWY8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiBtX21lc3NhZ2U7CiAgICAgU3RyaW5nIG1fb3JpZ2luOwogICAg
IFJlZjxET01XaW5kb3c+IG1fc291cmNlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9y
dENoYW5uZWxBcnJheT4gbV9jaGFubmVsczsKQEAgLTMyNSwxMiArMzI1LDEwIEBAIHZvaWQgRE9N
V2luZG93OjpkaXNwYXRjaEFsbFBlbmRpbmdVbmxvYWRFdmVudHMoKQogLy8gMykgQ29uc3RyYWlu
cyB0aGUgd2luZG93IHJlY3QgdG8gd2l0aGluIHRoZSB0b3AgYW5kIGxlZnQgYm91bmRhcmllcyBv
ZiB0aGUgYXZhaWxhYmxlIHNjcmVlbiByZWN0LgogLy8gNCkgQ29uc3RyYWlucyB0aGUgd2luZG93
IHJlY3QgdG8gd2l0aGluIHRoZSBib3R0b20gYW5kIHJpZ2h0IGJvdW5kYXJpZXMgb2YgdGhlIGF2
YWlsYWJsZSBzY3JlZW4gcmVjdC4KIC8vIDUpIFRyYW5zbGF0ZSB0aGUgd2luZG93IHJlY3QgY29v
cmRpbmF0ZXMgdG8gYmUgd2l0aGluIHRoZSBjb29yZGluYXRlIHNwYWNlIG9mIHRoZSBzY3JlZW4u
Ci1GbG9hdFJlY3QgRE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0KFBhZ2UqIHBhZ2UsIGNvbnN0
IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5nZXMpCitGbG9hdFJlY3QgRE9NV2luZG93OjphZGp1c3RX
aW5kb3dSZWN0KFBhZ2UmIHBhZ2UsIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5nZXMpCiB7
Ci0gICAgQVNTRVJUKHBhZ2UpOwotCi0gICAgRmxvYXRSZWN0IHNjcmVlbiA9IHNjcmVlbkF2YWls
YWJsZVJlY3QocGFnZS0+bWFpbkZyYW1lKCkudmlldygpKTsKLSAgICBGbG9hdFJlY3Qgd2luZG93
ID0gcGFnZS0+Y2hyb21lKCkud2luZG93UmVjdCgpOworICAgIEZsb2F0UmVjdCBzY3JlZW4gPSBz
Y3JlZW5BdmFpbGFibGVSZWN0KHBhZ2UubWFpbkZyYW1lKCkudmlldygpKTsKKyAgICBGbG9hdFJl
Y3Qgd2luZG93ID0gcGFnZS5jaHJvbWUoKS53aW5kb3dSZWN0KCk7CiAKICAgICAvLyBNYWtlIHN1
cmUgd2UncmUgaW4gYSB2YWxpZCBzdGF0ZSBiZWZvcmUgYWRqdXN0aW5nIGRpbWVuc2lvbnMuCiAg
ICAgQVNTRVJUKHN0ZDo6aXNmaW5pdGUoc2NyZWVuLngoKSkpOwpAQCAtMzUyLDcgKzM1MCw3IEBA
IEZsb2F0UmVjdCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSogcGFnZSwgY29uc3Qg
RmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlCiAgICAgaWYgKCFzdGQ6OmlzbmFuKHBlbmRpbmdDaGFu
Z2VzLmhlaWdodCgpKSkKICAgICAgICAgd2luZG93LnNldEhlaWdodChwZW5kaW5nQ2hhbmdlcy5o
ZWlnaHQoKSk7CiAKLSAgICBGbG9hdFNpemUgbWluaW11bVNpemUgPSBwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS5taW5pbXVtV2luZG93U2l6ZSgpOworICAgIEZsb2F0U2l6ZSBtaW5pbXVtU2l6ZSA9
IHBhZ2UuY2hyb21lKCkuY2xpZW50KCkubWluaW11bVdpbmRvd1NpemUoKTsKICAgICB3aW5kb3cu
c2V0V2lkdGgoc3RkOjptaW4oc3RkOjptYXgobWluaW11bVNpemUud2lkdGgoKSwgd2luZG93Lndp
ZHRoKCkpLCBzY3JlZW4ud2lkdGgoKSkpOwogICAgIHdpbmRvdy5zZXRIZWlnaHQoc3RkOjptaW4o
c3RkOjptYXgobWluaW11bVNpemUuaGVpZ2h0KCksIHdpbmRvdy5oZWlnaHQoKSksIHNjcmVlbi5o
ZWlnaHQoKSkpOwogCkBAIC0zNjMsMzggKzM2MSwzMSBAQCBGbG9hdFJlY3QgRE9NV2luZG93Ojph
ZGp1c3RXaW5kb3dSZWN0KFBhZ2UqIHBhZ2UsIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5n
ZQogICAgIHJldHVybiB3aW5kb3c7CiB9CiAKLWJvb2wgRE9NV2luZG93OjphbGxvd1BvcFVwKEZy
YW1lKiBmaXJzdEZyYW1lKQorYm9vbCBET01XaW5kb3c6OmFsbG93UG9wVXAoRnJhbWUmIGZpcnN0
RnJhbWUpCiB7Ci0gICAgQVNTRVJUKGZpcnN0RnJhbWUpOwotICAgIAotICAgIGF1dG8mIHNldHRp
bmdzID0gZmlyc3RGcmFtZS0+c2V0dGluZ3MoKTsKLQotICAgIGlmIChTY3JpcHRDb250cm9sbGVy
Ojpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSB8fCBzZXR0aW5ncy5hbGxvd1dpbmRvd09wZW5XaXRo
b3V0VXNlckdlc3R1cmUoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICByZXR1cm4gc2V0
dGluZ3MuamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSgpOworICAgIGF1dG8m
IHNldHRpbmdzID0gZmlyc3RGcmFtZS5zZXR0aW5ncygpOworICAgIHJldHVybiBTY3JpcHRDb250
cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKQorICAgICAgICB8fCBzZXR0aW5ncy5hbGxv
d1dpbmRvd09wZW5XaXRob3V0VXNlckdlc3R1cmUoKQorICAgICAgICB8fCBzZXR0aW5ncy5qYXZh
U2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KCk7CiB9CiAKIGJvb2wgRE9NV2luZG93
OjphbGxvd1BvcFVwKCkKIHsKLSAgICByZXR1cm4gbV9mcmFtZSAmJiBhbGxvd1BvcFVwKG1fZnJh
bWUpOworICAgIHJldHVybiBtX2ZyYW1lICYmIGFsbG93UG9wVXAoKm1fZnJhbWUpOwogfQogCi1i
b29sIERPTVdpbmRvdzo6Y2FuU2hvd01vZGFsRGlhbG9nKGNvbnN0IEZyYW1lKiBmcmFtZSkKK2Jv
b2wgRE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2coY29uc3QgRnJhbWUmIGZyYW1lKQogewot
ICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIC8vIE92ZXJyaWRl
IHN1cHBvcnQgZm9yIGxheW91dCB0ZXN0aW5nIHB1cnBvc2VzLgotICAgIGlmIChhdXRvKiBkb2N1
bWVudCA9IGZyYW1lLT5kb2N1bWVudCgpKSB7CisgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJh
bWUuZG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoYXV0byogd2luZG93ID0gZG9jdW1lbnQtPmRv
bVdpbmRvdygpKSB7CiAgICAgICAgICAgICBpZiAod2luZG93LT5tX2NhblNob3dNb2RhbERpYWxv
Z092ZXJyaWRlKQogICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3ctPm1fY2FuU2hvd01vZGFs
RGlhbG9nT3ZlcnJpZGUudmFsdWUoKTsKICAgICAgICAgfQogICAgIH0KIAotICAgIGF1dG8qIHBh
Z2UgPSBmcmFtZS0+cGFnZSgpOwotICAgIHJldHVybiBwYWdlID8gcGFnZS0+Y2hyb21lKCkuY2Fu
UnVuTW9kYWwoKSA6IGZhbHNlOworICAgIGF1dG8qIHBhZ2UgPSBmcmFtZS5wYWdlKCk7CisgICAg
cmV0dXJuIHBhZ2UgJiYgcGFnZS0+Y2hyb21lKCkuY2FuUnVuTW9kYWwoKTsKIH0KIAogc3RhdGlj
IHZvaWQgbGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrKHZvaWQqIGNvbnRleHQpCkBAIC00MDcsMjAg
KzM5OCwxOCBAQCB2b2lkIERPTVdpbmRvdzo6c2V0Q2FuU2hvd01vZGFsRGlhbG9nT3ZlcnJpZGUo
Ym9vbCBhbGxvdykKICAgICBtX2NhblNob3dNb2RhbERpYWxvZ092ZXJyaWRlID0gYWxsb3c7CiB9
CiAKLURPTVdpbmRvdzo6RE9NV2luZG93KERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IENvbnRl
eHREZXN0cnVjdGlvbk9ic2VydmVyKGRvY3VtZW50KQotICAgICwgRnJhbWVEZXN0cnVjdGlvbk9i
c2VydmVyKGRvY3VtZW50LT5mcmFtZSgpKQorRE9NV2luZG93OjpET01XaW5kb3coRG9jdW1lbnQm
IGRvY3VtZW50KQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQor
ICAgICwgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKGRvY3VtZW50LmZyYW1lKCkpCiAgICAgLCBt
X3dlYWtQdHJGYWN0b3J5KHRoaXMpCiB7CiAgICAgQVNTRVJUKGZyYW1lKCkpOwotICAgIEFTU0VS
VChET01XaW5kb3c6OmRvY3VtZW50KCkpOwotCiAgICAgYWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZl
cih0aGlzLCAmbGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrKTsKIH0KIAotdm9pZCBET01XaW5kb3c6
OmRpZFNlY3VyZVRyYW5zaXRpb25UbyhEb2N1bWVudCogZG9jdW1lbnQpCit2b2lkIERPTVdpbmRv
dzo6ZGlkU2VjdXJlVHJhbnNpdGlvblRvKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBvYnNl
cnZlQ29udGV4dChkb2N1bWVudCk7CisgICAgb2JzZXJ2ZUNvbnRleHQoJmRvY3VtZW50KTsKIH0K
IAogRE9NV2luZG93Ojp+RE9NV2luZG93KCkKQEAgLTU0NywxNCArNTM2LDE0IEBAIHZvaWQgRE9N
V2luZG93OjpkZWNyZW1lbnRHYW1lcGFkRXZlbnRMaXN0ZW5lckNvdW50KCkKIAogI2VuZGlmCiAK
LXZvaWQgRE9NV2luZG93OjpyZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5KiBwcm9w
ZXJ0eSkKK3ZvaWQgRE9NV2luZG93OjpyZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5
JiBwcm9wZXJ0eSkKIHsKLSAgICBtX3Byb3BlcnRpZXMuYWRkKHByb3BlcnR5KTsKKyAgICBtX3By
b3BlcnRpZXMuYWRkKCZwcm9wZXJ0eSk7CiB9CiAKLXZvaWQgRE9NV2luZG93Ojp1bnJlZ2lzdGVy
UHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkqIHByb3BlcnR5KQordm9pZCBET01XaW5kb3c6OnVu
cmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSYgcHJvcGVydHkpCiB7Ci0gICAgbV9w
cm9wZXJ0aWVzLnJlbW92ZShwcm9wZXJ0eSk7CisgICAgbV9wcm9wZXJ0aWVzLnJlbW92ZSgmcHJv
cGVydHkpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6cmVzZXRVbmxlc3NTdXNwZW5kZWRGb3JEb2N1
bWVudFN1c3BlbnNpb24oKQpAQCAtOTc0LDIzICs5NjMsMTggQEAgdm9pZCBET01XaW5kb3c6OnBv
c3RNZXNzYWdlVGltZXJGaXJlZChQb3N0TWVzc2FnZVRpbWVyJiB0aW1lcikKICAgICBpZiAoIWRv
Y3VtZW50KCkgfHwgIWlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmlnaW5DaGVjayh0aW1lci50YXJn
ZXRPcmlnaW4oKSwgdGltZXIuZXZlbnQoKmRvY3VtZW50KCkpLCB0aW1lci5zdGFja1RyYWNlKCkp
OwotfQotCi12b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2luQ2hl
Y2soU2VjdXJpdHlPcmlnaW4qIGludGVuZGVkVGFyZ2V0T3JpZ2luLCBFdmVudCYgZXZlbnQsIFBh
c3NSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNlKQotewotICAgIGlmIChpbnRlbmRl
ZFRhcmdldE9yaWdpbikgeworICAgIGlmIChhdXRvKiBpbnRlbmRlZFRhcmdldE9yaWdpbiA9IHRp
bWVyLnRhcmdldE9yaWdpbigpKSB7CiAgICAgICAgIC8vIENoZWNrIHRhcmdldCBvcmlnaW4gbm93
IHNpbmNlIHRoZSB0YXJnZXQgZG9jdW1lbnQgbWF5IGhhdmUgY2hhbmdlZCBzaW5jZSB0aGUgdGlt
ZXIgd2FzIHNjaGVkdWxlZC4KICAgICAgICAgaWYgKCFpbnRlbmRlZFRhcmdldE9yaWdpbi0+aXNT
YW1lU2NoZW1lSG9zdFBvcnQoZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkpIHsKLSAgICAg
ICAgICAgIGlmIChQYWdlQ29uc29sZUNsaWVudCogcGFnZUNvbnNvbGUgPSBjb25zb2xlKCkpIHsK
KyAgICAgICAgICAgIGlmIChhdXRvKiBwYWdlQ29uc29sZSA9IGNvbnNvbGUoKSkgewogICAgICAg
ICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygiVW5hYmxlIHRvIHBvc3QgbWVz
c2FnZSB0byAiLCBpbnRlbmRlZFRhcmdldE9yaWdpbi0+dG9TdHJpbmcoKSwgIi4gUmVjaXBpZW50
IGhhcyBvcmlnaW4gIiwgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS50b1N0cmluZygpLCAi
LlxuIik7Ci0gICAgICAgICAgICAgICAgcGFnZUNvbnNvbGUtPmFkZE1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UsIHN0YWNrVHJhY2Up
OworICAgICAgICAgICAgICAgIHBhZ2VDb25zb2xlLT5hZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlLCB0aW1lci5zdGFja1RyYWNl
KCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAg
fQogCi0gICAgZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgZGlzcGF0Y2hFdmVudCh0aW1lci5l
dmVudCgqZG9jdW1lbnQoKSkpOwogfQogCiBET01TZWxlY3Rpb24qIERPTVdpbmRvdzo6Z2V0U2Vs
ZWN0aW9uKCkKQEAgLTExMTMsNyArMTA5Nyw3IEBAIHZvaWQgRE9NV2luZG93OjpwcmludCgpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV9zaG91bGRQcmludFdoZW5GaW5pc2hlZExvYWRp
bmcgPSBmYWxzZTsKLSAgICBwYWdlLT5jaHJvbWUoKS5wcmludChtX2ZyYW1lKTsKKyAgICBwYWdl
LT5jaHJvbWUoKS5wcmludCgqbV9mcmFtZSk7CiB9CiAKIHZvaWQgRE9NV2luZG93OjpzdG9wKCkK
QEAgLTExNDUsNyArMTEyOSw3IEBAIHZvaWQgRE9NV2luZG93OjphbGVydChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCiAgICAgcGFnZS0+cG9pbnRlckxvY2tDb250cm9sbGVyKCkucmVxdWVzdFBvaW50
ZXJVbmxvY2soKTsKICNlbmRpZgogCi0gICAgcGFnZS0+Y2hyb21lKCkucnVuSmF2YVNjcmlwdEFs
ZXJ0KG1fZnJhbWUsIG1lc3NhZ2UpOworICAgIHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRB
bGVydCgqbV9mcmFtZSwgbWVzc2FnZSk7CiB9CiAKIGJvb2wgRE9NV2luZG93Ojpjb25maXJtKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkKQEAgLTExNjcsNyArMTE1MSw3IEBAIGJvb2wgRE9NV2luZG93
Ojpjb25maXJtKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBwYWdlLT5wb2ludGVyTG9ja0Nv
bnRyb2xsZXIoKS5yZXF1ZXN0UG9pbnRlclVubG9jaygpOwogI2VuZGlmCiAKLSAgICByZXR1cm4g
cGFnZS0+Y2hyb21lKCkucnVuSmF2YVNjcmlwdENvbmZpcm0obV9mcmFtZSwgbWVzc2FnZSk7Cisg
ICAgcmV0dXJuIHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRDb25maXJtKCptX2ZyYW1lLCBt
ZXNzYWdlKTsKIH0KIAogU3RyaW5nIERPTVdpbmRvdzo6cHJvbXB0KGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUpCkBAIC0xMTkwLDcgKzExNzQsNyBAQCBT
dHJpbmcgRE9NV2luZG93Ojpwcm9tcHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJp
bmcmIGRlZmF1bHRWYWx1ZSkKICNlbmRpZgogCiAgICAgU3RyaW5nIHJldHVyblZhbHVlOwotICAg
IGlmIChwYWdlLT5jaHJvbWUoKS5ydW5KYXZhU2NyaXB0UHJvbXB0KG1fZnJhbWUsIG1lc3NhZ2Us
IGRlZmF1bHRWYWx1ZSwgcmV0dXJuVmFsdWUpKQorICAgIGlmIChwYWdlLT5jaHJvbWUoKS5ydW5K
YXZhU2NyaXB0UHJvbXB0KCptX2ZyYW1lLCBtZXNzYWdlLCBkZWZhdWx0VmFsdWUsIHJldHVyblZh
bHVlKSkKICAgICAgICAgcmV0dXJuIHJldHVyblZhbHVlOwogCiAgICAgcmV0dXJuIFN0cmluZygp
OwpAQCAtMTM2OCw3ICsxMzUyLDcgQEAgdm9pZCBET01XaW5kb3c6OnNldFN0YXR1cyhjb25zdCBT
dHJpbmcmIHN0cmluZykKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKG1fZnJhbWUtPmRv
Y3VtZW50KCkpOyAvLyBDbGllbnQgY2FsbHMgc2hvdWxkbid0IGJlIG1hZGUgd2hlbiB0aGUgZnJh
bWUgaXMgaW4gaW5jb25zaXN0ZW50IHN0YXRlLgotICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1
c2JhclRleHQobV9mcmFtZSwgbV9zdGF0dXMpOworICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1
c2JhclRleHQoKm1fZnJhbWUsIG1fc3RhdHVzKTsKIH0gCiAgICAgCiB2b2lkIERPTVdpbmRvdzo6
c2V0RGVmYXVsdFN0YXR1cyhjb25zdCBTdHJpbmcmIHN0cmluZykgCkBAIC0xMzgzLDcgKzEzNjcs
NyBAQCB2b2lkIERPTVdpbmRvdzo6c2V0RGVmYXVsdFN0YXR1cyhjb25zdCBTdHJpbmcmIHN0cmlu
ZykKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKG1fZnJhbWUtPmRvY3VtZW50KCkpOyAv
LyBDbGllbnQgY2FsbHMgc2hvdWxkbid0IGJlIG1hZGUgd2hlbiB0aGUgZnJhbWUgaXMgaW4gaW5j
b25zaXN0ZW50IHN0YXRlLgotICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQobV9m
cmFtZSwgbV9kZWZhdWx0U3RhdHVzKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJU
ZXh0KCptX2ZyYW1lLCBtX2RlZmF1bHRTdGF0dXMpOwogfQogCiBET01XaW5kb3cqIERPTVdpbmRv
dzo6c2VsZigpIGNvbnN0CkBAIC0xNDMyLDggKzE0MTYsNyBAQCBET01XaW5kb3cqIERPTVdpbmRv
dzo6dG9wKCkgY29uc3QKIAogRG9jdW1lbnQqIERPTVdpbmRvdzo6ZG9jdW1lbnQoKSBjb25zdAog
ewotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBDb250ZXh0RGVzdHJ1Y3Rp
b25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIHJldHVybiBkb3duY2Fz
dDxEb2N1bWVudD4oY29udGV4dCk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihDb250
ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKIH0KIAog
UmVmUHRyPFN0eWxlTWVkaWE+IERPTVdpbmRvdzo6c3R5bGVNZWRpYSgpIGNvbnN0CkBAIC0xNjE4
LDggKzE2MDEsNyBAQCB2b2lkIERPTVdpbmRvdzo6bW92ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNv
bnN0CiAgICAgRmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hyb21lKCkud2luZG93UmVjdCgpOwogICAg
IEZsb2F0UmVjdCB1cGRhdGUgPSBmcjsKICAgICB1cGRhdGUubW92ZSh4LCB5KTsKLSAgICAvLyBT
ZWN1cml0eSBjaGVjayAodGhlIHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRl
IHRvIGRpc2FibGUgdGhpcyBjaGVjay4uLikKLSAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dS
ZWN0KGFkanVzdFdpbmRvd1JlY3QocGFnZSwgdXBkYXRlKSk7CisgICAgcGFnZS0+Y2hyb21lKCku
c2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KCpwYWdlLCB1cGRhdGUpKTsKIH0KIAogdm9p
ZCBET01XaW5kb3c6Om1vdmVUbyhmbG9hdCB4LCBmbG9hdCB5KSBjb25zdApAQCAtMTYzMyw4ICsx
NjE1LDcgQEAgdm9pZCBET01XaW5kb3c6Om1vdmVUbyhmbG9hdCB4LCBmbG9hdCB5KSBjb25zdAog
ICAgIGZyLnNldExvY2F0aW9uKHNyLmxvY2F0aW9uKCkpOwogICAgIEZsb2F0UmVjdCB1cGRhdGUg
PSBmcjsKICAgICB1cGRhdGUubW92ZSh4LCB5KTsKLSAgICAvLyBTZWN1cml0eSBjaGVjayAodGhl
IHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRvIGRpc2FibGUgdGhpcyBj
aGVjay4uLikKLSAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1Jl
Y3QocGFnZSwgdXBkYXRlKSk7CisgICAgcGFnZS0+Y2hyb21lKCkuc2V0V2luZG93UmVjdChhZGp1
c3RXaW5kb3dSZWN0KCpwYWdlLCB1cGRhdGUpKTsKIH0KIAogdm9pZCBET01XaW5kb3c6OnJlc2l6
ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CkBAIC0xNjQ2LDcgKzE2MjcsNyBAQCB2b2lkIERP
TVdpbmRvdzo6cmVzaXplQnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKICAgICBGbG9hdFJlY3Qg
ZnIgPSBwYWdlLT5jaHJvbWUoKS53aW5kb3dSZWN0KCk7CiAgICAgRmxvYXRTaXplIGRlc3QgPSBm
ci5zaXplKCkgKyBGbG9hdFNpemUoeCwgeSk7CiAgICAgRmxvYXRSZWN0IHVwZGF0ZShmci5sb2Nh
dGlvbigpLCBkZXN0KTsKLSAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdp
bmRvd1JlY3QocGFnZSwgdXBkYXRlKSk7CisgICAgcGFnZS0+Y2hyb21lKCkuc2V0V2luZG93UmVj
dChhZGp1c3RXaW5kb3dSZWN0KCpwYWdlLCB1cGRhdGUpKTsKIH0KIAogdm9pZCBET01XaW5kb3c6
OnJlc2l6ZVRvKGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpIGNvbnN0CkBAIC0xNjU4LDcgKzE2
MzksNyBAQCB2b2lkIERPTVdpbmRvdzo6cmVzaXplVG8oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdo
dCkgY29uc3QKICAgICBGbG9hdFJlY3QgZnIgPSBwYWdlLT5jaHJvbWUoKS53aW5kb3dSZWN0KCk7
CiAgICAgRmxvYXRTaXplIGRlc3QgPSBGbG9hdFNpemUod2lkdGgsIGhlaWdodCk7CiAgICAgRmxv
YXRSZWN0IHVwZGF0ZShmci5sb2NhdGlvbigpLCBkZXN0KTsKLSAgICBwYWdlLT5jaHJvbWUoKS5z
ZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QocGFnZSwgdXBkYXRlKSk7CisgICAgcGFnZS0+
Y2hyb21lKCkuc2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KCpwYWdlLCB1cGRhdGUpKTsK
IH0KIAogRXhjZXB0aW9uT3I8aW50PiBET01XaW5kb3c6OnNldFRpbWVvdXQoc3RkOjp1bmlxdWVf
cHRyPFNjaGVkdWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGltZW91dCkKQEAgLTE2ODEsNyArMTY2
Miw3IEBAIHZvaWQgRE9NV2luZG93OjpjbGVhclRpbWVvdXQoaW50IHRpbWVvdXRJZCkKIAogICAg
ICAgICAgICAgICAgIGlmICghV2ViVGhyZWFkQ291bnRPZk9ic2VydmVkQ29udGVudE1vZGlmaWVy
cygpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFn
ZSgpKQotICAgICAgICAgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkub2Jz
ZXJ2ZWRDb250ZW50Q2hhbmdlKG1fZnJhbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgcGFn
ZS0+Y2hyb21lKCkuY2xpZW50KCkub2JzZXJ2ZWRDb250ZW50Q2hhbmdlKCptX2ZyYW1lKTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTE4NDEsNyArMTgy
Miw3IEBAIHZvaWQgRE9NV2luZG93OjppbmNyZW1lbnRTY3JvbGxFdmVudExpc3RlbmVyc0NvdW50
KCkKICAgICBpZiAoKyttX3Njcm9sbEV2ZW50TGlzdGVuZXJDb3VudCA9PSAxICYmIGRvY3VtZW50
ID09ICZkb2N1bWVudC0+dG9wRG9jdW1lbnQoKSkgewogICAgICAgICBGcmFtZSogZnJhbWUgPSB0
aGlzLT5mcmFtZSgpOwogICAgICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkKLSAgICAg
ICAgICAgIGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE5lZWRzU2Nyb2xsTm90
aWZpY2F0aW9ucyhmcmFtZSwgdHJ1ZSk7CisgICAgICAgICAgICBmcmFtZS0+cGFnZSgpLT5jaHJv
bWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoKmZyYW1lLCB0cnVlKTsK
ICAgICB9CiB9CiAKQEAgLTE4NTEsNyArMTgzMiw3IEBAIHZvaWQgRE9NV2luZG93OjpkZWNyZW1l
bnRTY3JvbGxFdmVudExpc3RlbmVyc0NvdW50KCkKICAgICBpZiAoIS0tbV9zY3JvbGxFdmVudExp
c3RlbmVyQ291bnQgJiYgZG9jdW1lbnQgPT0gJmRvY3VtZW50LT50b3BEb2N1bWVudCgpKSB7CiAg
ICAgICAgIEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCk7CiAgICAgICAgIGlmIChmcmFtZSAm
JiBmcmFtZS0+cGFnZSgpICYmIGRvY3VtZW50LT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50
OjpOb3RJblBhZ2VDYWNoZSkKLSAgICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLmNs
aWVudCgpLnNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhmcmFtZSwgZmFsc2UpOworICAgICAg
ICAgICAgZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3Rp
ZmljYXRpb25zKCpmcmFtZSwgZmFsc2UpOwogICAgIH0KIH0KIApAQCAtMTg1OSw3ICsxODQwLDcg
QEAgdm9pZCBET01XaW5kb3c6OmRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJzQ291bnQoKQog
CiB2b2lkIERPTVdpbmRvdzo6cmVzZXRBbGxHZW9sb2NhdGlvblBlcm1pc3Npb24oKQogewotICAg
IC8vIEZJWE1FOiBSZW1vdmUgUExBVEZPUk0oSU9TKS1ndWFyZCBvbmNlIHdlIHVwc3RyZWFtIHRo
ZSBpT1MgY2hhbmdlcyB0byBHZW9sb2NhdGlvbi5jcHAuCisgICAgLy8gRklYTUU6IENhbiB3ZSBy
ZW1vdmUgdGhlIFBMQVRGT1JNKElPUyktZ3VhcmQ/CiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKSAm
JiBQTEFURk9STShJT1MpCiAgICAgaWYgKG1fbmF2aWdhdG9yKQogICAgICAgICBOYXZpZ2F0b3JH
ZW9sb2NhdGlvbjo6ZnJvbShtX25hdmlnYXRvci5nZXQoKSktPnJlc2V0QWxsR2VvbG9jYXRpb25Q
ZXJtaXNzaW9uKCk7CkBAIC0yMjg3LDggKzIyNjgsNyBAQCB2b2lkIERPTVdpbmRvdzo6c2hvd01v
ZGFsRGlhbG9nKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRpYWxvZ0Zl
YQogewogICAgIGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBGcmFtZSogYWN0aXZlRnJhbWUgPSBhY3RpdmVXaW5kb3cuZnJhbWUoKTsKLSAg
ICBpZiAoIWFjdGl2ZUZyYW1lKQorICAgIGlmICghYWN0aXZlV2luZG93LmZyYW1lKCkpCiAgICAg
ICAgIHJldHVybjsKICAgICBGcmFtZSogZmlyc3RGcmFtZSA9IGZpcnN0V2luZG93LmZyYW1lKCk7
CiAgICAgaWYgKCFmaXJzdEZyYW1lKQpAQCAtMjMwMyw3ICsyMjgzLDcgQEAgdm9pZCBET01XaW5k
b3c6OnNob3dNb2RhbERpYWxvZyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5n
JiBkaWFsb2dGZWEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghY2FuU2hvd01v
ZGFsRGlhbG9nKG1fZnJhbWUpIHx8ICFmaXJzdFdpbmRvdy5hbGxvd1BvcFVwKCkpCisgICAgaWYg
KCFjYW5TaG93TW9kYWxEaWFsb2coKm1fZnJhbWUpIHx8ICFmaXJzdFdpbmRvdy5hbGxvd1BvcFVw
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxGcmFtZT4gZGlhbG9nRnJhbWUgPSBj
cmVhdGVXaW5kb3codXJsU3RyaW5nLCBlbXB0eUF0b20sIHBhcnNlRGlhbG9nRmVhdHVyZXMoZGlh
bG9nRmVhdHVyZXNTdHJpbmcsIHNjcmVlbkF2YWlsYWJsZVJlY3QobV9mcmFtZS0+dmlldygpKSks
IGFjdGl2ZVdpbmRvdywgKmZpcnN0RnJhbWUsICptX2ZyYW1lLCBXVEZNb3ZlKHByZXBhcmVEaWFs
b2dGdW5jdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggYzVlOTAyODk4ODZkNzJh
YTg4NmM0OWFkYjk0Nzk1ZDM3NzA1OWIzMS4uZTAwNzAxNmU1ZDg2N2EyMDU3OWZhNDAxODMzMmJi
NWRmMWFlMWViMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRp
b24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zMywy
MyArMzMsMTQgQEAKICNpbmNsdWRlICJGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNs
dWRlICJTY3JvbGxUb09wdGlvbnMuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgotI2lu
Y2x1ZGUgIlVSTC5oIgotI2luY2x1ZGUgPGZ1bmN0aW9uYWw+Ci0jaW5jbHVkZSA8bWVtb3J5Pgot
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNs
dWRlIDx3dGYvT3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCi1uYW1lc3Bh
Y2UgSW5zcGVjdG9yIHsKLWNsYXNzIFNjcmlwdENhbGxTdGFjazsKLX0KLQogbmFtZXNwYWNlIEpT
QyB7CiBjbGFzcyBFeGVjU3RhdGU7CiBjbGFzcyBKU09iamVjdDsKIGNsYXNzIEpTVmFsdWU7Ci10
ZW1wbGF0ZTx0eXBlbmFtZSBUPiBjbGFzcyBTdHJvbmc7Cit0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xh
c3MgU3Ryb25nOwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02MSwyMiArNTIsMTUgQEAg
Y2xhc3MgQ3J5cHRvOwogY2xhc3MgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5OwogY2xhc3MgRE9NQXBw
bGljYXRpb25DYWNoZTsKIGNsYXNzIERPTVNlbGVjdGlvbjsKLWNsYXNzIERPTVVSTDsKIGNsYXNz
IERPTVdpbmRvd1Byb3BlcnR5OwogY2xhc3MgRE9NV3JhcHBlcldvcmxkOwotY2xhc3MgRGF0YWJh
c2U7Ci1jbGFzcyBEYXRhYmFzZUNhbGxiYWNrOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVt
ZW50OwogY2xhc3MgRXZlbnRMaXN0ZW5lcjsKIGNsYXNzIEZsb2F0UmVjdDsKLWNsYXNzIEZyYW1l
OwogY2xhc3MgSGlzdG9yeTsKLWNsYXNzIElEQkZhY3Rvcnk7CiBjbGFzcyBMb2NhdGlvbjsKIGNs
YXNzIE1lZGlhUXVlcnlMaXN0OwotY2xhc3MgTWVzc2FnZUV2ZW50OwotY2xhc3MgTWVzc2FnZVBv
cnQ7CiBjbGFzcyBOYXZpZ2F0b3I7CiBjbGFzcyBOb2RlOwogY2xhc3MgTm9kZUxpc3Q7CkBAIC04
Nyw4ICs3MSw2IEBAIGNsYXNzIFBvc3RNZXNzYWdlVGltZXI7CiBjbGFzcyBSZXF1ZXN0QW5pbWF0
aW9uRnJhbWVDYWxsYmFjazsKIGNsYXNzIFNjaGVkdWxlZEFjdGlvbjsKIGNsYXNzIFNjcmVlbjsK
LWNsYXNzIFNlY3VyaXR5T3JpZ2luOwotY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xh
c3MgU3RvcmFnZTsKIGNsYXNzIFN0eWxlTWVkaWE7CiBjbGFzcyBXZWJLaXROYW1lc3BhY2U7CkBA
IC0xMDcsNyArODksNyBAQCBjbGFzcyBET01XaW5kb3cgZmluYWwKICAgICAsIHB1YmxpYyBCYXNl
NjRVdGlsaXRpZXMKICAgICAsIHB1YmxpYyBTdXBwbGVtZW50YWJsZTxET01XaW5kb3c+IHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPERPTVdpbmRvdz4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVu
dCkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBET01XaW5kb3coZG9jdW1lbnQpKTsgfQorICAgIHN0
YXRpYyBSZWY8RE9NV2luZG93PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KSB7IHJldHVybiBh
ZG9wdFJlZigqbmV3IERPTVdpbmRvdyhkb2N1bWVudCkpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCB+RE9NV2luZG93KCk7CiAKICAgICAvLyBJbiBzb21lIHJhcmUgY2FzZXMsIHdlJ2xs
IHJldXNlIGEgRE9NV2luZG93IGZvciBhIG5ldyBEb2N1bWVudC4gRm9yIGV4YW1wbGUsCkBAIC0x
MTcsMTUgKzk5LDEwIEBAIHB1YmxpYzoKICAgICAvLyB3b24ndCBiZSBibG93biBhd2F5IHdoZW4g
dGhlIG5ldHdvcmsgbG9hZCBjb21taXRzLiBUbyBtYWtlIHRoYXQgaGFwcGVuLCB3ZQogICAgIC8v
ICJzZWN1cmVseSB0cmFuc2l0aW9uIiB0aGUgZXhpc3RpbmcgRE9NV2luZG93IHRvIHRoZSBEb2N1
bWVudCB0aGF0IHJlc3VsdHMgZnJvbQogICAgIC8vIHRoZSBuZXR3b3JrIGxvYWQuIFNlZSBhbHNv
IFNlY3VyaXR5Q29udGV4dDo6aXNTZWN1cmVUcmFuc2l0aW9uVG8uCi0gICAgdm9pZCBkaWRTZWN1
cmVUcmFuc2l0aW9uVG8oRG9jdW1lbnQqKTsKLQotICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2
ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRE9NV2luZG93RXZl
bnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENvbnRleHREZXN0
cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KLQotICAgIERPTVdp
bmRvdyogdG9ET01XaW5kb3coKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFNlY3VyZVRyYW5zaXRp
b25UbyhEb2N1bWVudCYpOwogCi0gICAgdm9pZCByZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1By
b3BlcnR5Kik7Ci0gICAgdm9pZCB1bnJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkq
KTsKKyAgICB2b2lkIHJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkmKTsKKyAgICB2
b2lkIHVucmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSYpOwogCiAgICAgdm9pZCBy
ZXNldFVubGVzc1N1c3BlbmRlZEZvckRvY3VtZW50U3VzcGVuc2lvbigpOwogICAgIHZvaWQgc3Vz
cGVuZEZvckRvY3VtZW50U3VzcGVuc2lvbigpOwpAQCAtMTM4LDExICsxMTUsMTEgQEAgcHVibGlj
OgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGRpc3BhdGNoQWxsUGVuZGluZ0JlZm9y
ZVVubG9hZEV2ZW50cygpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGRpc3BhdGNo
QWxsUGVuZGluZ1VubG9hZEV2ZW50cygpOwogCi0gICAgc3RhdGljIEZsb2F0UmVjdCBhZGp1c3RX
aW5kb3dSZWN0KFBhZ2UqLCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKTsKKyAgICBz
dGF0aWMgRmxvYXRSZWN0IGFkanVzdFdpbmRvd1JlY3QoUGFnZSYsIGNvbnN0IEZsb2F0UmVjdCYg
cGVuZGluZ0NoYW5nZXMpOwogCiAgICAgYm9vbCBhbGxvd1BvcFVwKCk7IC8vIENhbGwgb24gZmly
c3Qgd2luZG93LCBub3QgdGFyZ2V0IHdpbmRvdy4KLSAgICBzdGF0aWMgYm9vbCBhbGxvd1BvcFVw
KEZyYW1lKiBmaXJzdEZyYW1lKTsKLSAgICBzdGF0aWMgYm9vbCBjYW5TaG93TW9kYWxEaWFsb2co
Y29uc3QgRnJhbWUqKTsKKyAgICBzdGF0aWMgYm9vbCBhbGxvd1BvcFVwKEZyYW1lJiBmaXJzdEZy
YW1lKTsKKyAgICBzdGF0aWMgYm9vbCBjYW5TaG93TW9kYWxEaWFsb2coY29uc3QgRnJhbWUmKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhblNob3dNb2RhbERpYWxvZ092ZXJyaWRlKGJv
b2wpOwogCiAgICAgU2NyZWVuKiBzY3JlZW4oKSBjb25zdDsKQEAgLTI0NSw3ICsyMjIsNiBAQCBw
dWJsaWM6CiAKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBwb3N0TWVzc2FnZShKU0M6OkV4ZWNTdGF0
ZSYsIERPTVdpbmRvdyYgY2FsbGVyV2luZG93LCBKU0M6OkpTVmFsdWUgbWVzc2FnZSwgY29uc3Qg
U3RyaW5nJiB0YXJnZXRPcmlnaW4sIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0Pj4m
Jik7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRpbWVyRmlyZWQoUG9zdE1lc3NhZ2VUaW1lciYpOwot
ICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2luQ2hlY2soU2VjdXJpdHlPcmln
aW4qIGludGVuZGVkVGFyZ2V0T3JpZ2luLCBFdmVudCYsIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpT
Y3JpcHRDYWxsU3RhY2s+KTsKIAogICAgIHZvaWQgbGFuZ3VhZ2VzQ2hhbmdlZCgpOwogCkBAIC0y
NzIsOSArMjQ4LDkgQEAgcHVibGljOgogCiAgICAgLy8gRXZlbnRzCiAgICAgLy8gRXZlbnRUYXJn
ZXQgQVBJCi0gICAgYm9vbCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlv
bnMmKSBvdmVycmlkZTsKLSAgICBib29sIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIEV2ZW50TGlzdGVuZXImLCBjb25zdCBMaXN0ZW5lck9wdGlvbnMm
KSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkgb3ZlcnJpZGU7
CisgICAgYm9vbCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmKSBm
aW5hbDsKKyAgICBib29sIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIEV2ZW50TGlzdGVuZXImLCBjb25zdCBMaXN0ZW5lck9wdGlvbnMmKSBmaW5hbDsK
KyAgICB2b2lkIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkgZmluYWw7CiAKICAgICB1c2luZyBF
dmVudFRhcmdldDo6ZGlzcGF0Y2hFdmVudDsKICAgICBib29sIGRpc3BhdGNoRXZlbnQoRXZlbnQm
LCBFdmVudFRhcmdldCopOwpAQCAtMjg2LDggKzI2Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
ZmluaXNoZWRMb2FkaW5nKCk7CiAKLSAgICB1c2luZyBSZWZDb3VudGVkPERPTVdpbmRvdz46OnJl
ZjsKLSAgICB1c2luZyBSZWZDb3VudGVkPERPTVdpbmRvdz46OmRlcmVmOworICAgIHVzaW5nIFJl
ZkNvdW50ZWQ6OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAogICAgIC8vIEhU
TUwgNSBrZXkvdmFsdWUgc3RvcmFnZQogICAgIEV4Y2VwdGlvbk9yPFN0b3JhZ2UqPiBzZXNzaW9u
U3RvcmFnZSgpIGNvbnN0OwpAQCAtMzEzLDYgKzI4OSw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUo
V0VCX1RJTUlORykKICAgICBQZXJmb3JtYW5jZSogcGVyZm9ybWFuY2UoKSBjb25zdDsKICNlbmRp
ZgorCiAgICAgZG91YmxlIG5vd1RpbWVzdGFtcCgpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oSU9T
KQpAQCAtMzQ3LDE2ICszMjQsMjEgQEAgcHVibGljOgogICAgIFdlYWtQdHI8RE9NV2luZG93PiBj
cmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7
IH0KIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBET01XaW5kb3coRG9jdW1lbnQqKTsKKyAgICBl
eHBsaWNpdCBET01XaW5kb3coRG9jdW1lbnQmKTsKKworICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNl
IGV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gRE9NV2luZG93RXZl
bnRUYXJnZXRJbnRlcmZhY2VUeXBlOyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKworICAgIERPTVdpbmRv
dyogdG9ET01XaW5kb3coKSBmaW5hbDsKIAogICAgIFBhZ2UqIHBhZ2UoKTsKICAgICBib29sIGFs
bG93ZWRUb0NoYW5nZVdpbmRvd0dlb21ldHJ5KCkgY29uc3Q7CiAKLSAgICB2b2lkIGZyYW1lRGVz
dHJveWVkKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsRGV0YWNoUGFnZSgpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZnJhbWVEZXN0cm95ZWQoKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxEZXRhY2hQYWdl
KCkgZmluYWw7CiAKLSAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsg
fQotICAgIHZvaWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQorICAg
IHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2
ZW50VGFyZ2V0KCkgZmluYWwgeyBkZXJlZigpOyB9CiAKICAgICBzdGF0aWMgUmVmUHRyPEZyYW1l
PiBjcmVhdGVXaW5kb3coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmlu
ZyYgZnJhbWVOYW1lLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYsIERPTVdpbmRvdyYgYWN0aXZlV2lu
ZG93LCBGcmFtZSYgZmlyc3RGcmFtZSwgRnJhbWUmIG9wZW5lckZyYW1lLCBzdGQ6OmZ1bmN0aW9u
PHZvaWQoRE9NV2luZG93Jik+IHByZXBhcmVEaWFsb2dGdW5jdGlvbiA9IG51bGxwdHIpOwogICAg
IGJvb2wgaXNJbnNlY3VyZVNjcmlwdEFjY2VzcyhET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3dQcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3Bl
cnR5LmNwcAppbmRleCBhMzc3MGU4ZTcwMGM2NTgyNjI2YzY0Yjk4NWZkZWM2ZmMwN2YzM2Y1Li41
NTA5NmI2NGFhYTdmMjQ5MzFhMmM3MTlhN2U1YzYwOWVkNTBmODU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcApAQCAtNDIsMTQgKzQyLDE0IEBAIERPTVdpbmRv
d1Byb3BlcnR5OjpET01XaW5kb3dQcm9wZXJ0eShGcmFtZSogZnJhbWUpCiAgICAgLy8gV2Ugc2hv
dWxkIGZpeCB0aGF0LiAgPHJkYXI6Ly9wcm9ibGVtLzExNTY3MTMyPgogICAgIGlmIChtX2ZyYW1l
KSB7CiAgICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdyA9IG1fZnJhbWUtPmRvY3VtZW50KCkt
PmRvbVdpbmRvdygpOwotICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ctPnJlZ2lzdGVyUHJv
cGVydHkodGhpcyk7CisgICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+cmVnaXN0ZXJQcm9w
ZXJ0eSgqdGhpcyk7CiAgICAgfQogfQogCiBET01XaW5kb3dQcm9wZXJ0eTo6fkRPTVdpbmRvd1By
b3BlcnR5KCkKIHsKICAgICBpZiAobV9hc3NvY2lhdGVkRE9NV2luZG93KQotICAgICAgICBtX2Fz
c29jaWF0ZWRET01XaW5kb3ctPnVucmVnaXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAgICAgICAgbV9h
c3NvY2lhdGVkRE9NV2luZG93LT51bnJlZ2lzdGVyUHJvcGVydHkoKnRoaXMpOwogCiAgICAgbV9h
c3NvY2lhdGVkRE9NV2luZG93ID0gbnVsbHB0cjsKICAgICBtX2ZyYW1lID0gbnVsbHB0cjsKQEAg
LTg2LDcgKzg2LDcgQEAgdm9pZCBET01XaW5kb3dQcm9wZXJ0eTo6d2lsbERlc3Ryb3lHbG9iYWxP
YmplY3RJbkNhY2hlZEZyYW1lKCkKICAgICAvLyBET01XaW5kb3dQcm9wZXJ0eSBsaWZldGltZSBp
c24ndCB0aWVkIGRpcmVjdGx5IHRvIHRoZSBET01XaW5kb3cgaXRzZWxmIHNvIGl0IGlzIGltcG9y
dGFudCB0aGF0IGl0IHVucmVnaXN0ZXIKICAgICAvLyBpdHNlbGYgZnJvbSBhbnkgRE9NV2luZG93
IGl0IGlzIGFzc29jaWF0ZWQgd2l0aCBpZiB0aGF0IERPTVdpbmRvdyBpcyBnb2luZyBhd2F5Lgog
ICAgIGlmIChtX2Fzc29jaWF0ZWRET01XaW5kb3cpCi0gICAgICAgIG1fYXNzb2NpYXRlZERPTVdp
bmRvdy0+dW5yZWdpc3RlclByb3BlcnR5KHRoaXMpOworICAgICAgICBtX2Fzc29jaWF0ZWRET01X
aW5kb3ctPnVucmVnaXN0ZXJQcm9wZXJ0eSgqdGhpcyk7CiAgICAgbV9hc3NvY2lhdGVkRE9NV2lu
ZG93ID0gbnVsbHB0cjsKICAgICBtX2ZyYW1lID0gbnVsbHB0cjsKIH0KQEAgLTEwMCw3ICsxMDAs
NyBAQCB2b2lkIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJh
bWUoKQogICAgIC8vIERPTVdpbmRvd1Byb3BlcnR5IGxpZmV0aW1lIGlzbid0IHRpZWQgZGlyZWN0
bHkgdG8gdGhlIERPTVdpbmRvdyBpdHNlbGYgc28gaXQgaXMgaW1wb3J0YW50IHRoYXQgaXQgdW5y
ZWdpc3RlcgogICAgIC8vIGl0c2VsZiBmcm9tIGFueSBET01XaW5kb3cgaXQgaXMgYXNzb2NpYXRl
ZCB3aXRoIGlmIHRoYXQgRE9NV2luZG93IGlzIGdvaW5nIGF3YXkuCiAgICAgaWYgKG1fYXNzb2Np
YXRlZERPTVdpbmRvdykKLSAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93LT51bnJlZ2lzdGVy
UHJvcGVydHkodGhpcyk7CisgICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+dW5yZWdpc3Rl
clByb3BlcnR5KCp0aGlzKTsKICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3cgPSBudWxscHRyOwog
ICAgIG1fZnJhbWUgPSBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9EZWJ1Z1BhZ2VPdmVybGF5cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92
ZXJsYXlzLmNwcAppbmRleCBjYWEwN2E0N2JlZThmMTljZWUzNDRlZmE1NzZmNTBlZDQ1MTQ3M2Vh
Li5hZjA4MDJiYzhiZTgwMzgxZDEzMzA1M2Y3NzhmYzNhNzYzNjQzZTRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcApAQCAtNDQsNyArNDQsNyBAQCBEZWJ1Z1Bh
Z2VPdmVybGF5cyogRGVidWdQYWdlT3ZlcmxheXM6OnNoYXJlZERlYnVnT3ZlcmxheXM7CiAKIGNs
YXNzIFJlZ2lvbk92ZXJsYXkgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWdpb25PdmVybGF5PiwgcHVi
bGljIFBhZ2VPdmVybGF5OjpDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFJlZ2lvbk92ZXJsYXk+IGNyZWF0ZShNYWluRnJhbWUmLCBEZWJ1Z1BhZ2VPdmVybGF5czo6UmVn
aW9uVHlwZSk7CisgICAgc3RhdGljIFJlZlB0cjxSZWdpb25PdmVybGF5PiBjcmVhdGUoTWFpbkZy
YW1lJiwgRGVidWdQYWdlT3ZlcmxheXM6OlJlZ2lvblR5cGUpOwogICAgIHZpcnR1YWwgflJlZ2lv
bk92ZXJsYXkoKTsKIAogICAgIHZvaWQgcmVjb21wdXRlUmVnaW9uKCk7CkBAIC0xNDMsNyArMTQz
LDcgQEAgYm9vbCBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbk92ZXJsYXk6OnVwZGF0ZVJlZ2lvbigp
CiAgICAgcmV0dXJuIHJlZ2lvbkNoYW5nZWQ7CiB9CiAKLVBhc3NSZWZQdHI8UmVnaW9uT3Zlcmxh
eT4gUmVnaW9uT3ZlcmxheTo6Y3JlYXRlKE1haW5GcmFtZSYgZnJhbWUsIERlYnVnUGFnZU92ZXJs
YXlzOjpSZWdpb25UeXBlIHJlZ2lvblR5cGUpCitSZWZQdHI8UmVnaW9uT3ZlcmxheT4gUmVnaW9u
T3ZlcmxheTo6Y3JlYXRlKE1haW5GcmFtZSYgZnJhbWUsIERlYnVnUGFnZU92ZXJsYXlzOjpSZWdp
b25UeXBlIHJlZ2lvblR5cGUpCiB7CiAgICAgc3dpdGNoIChyZWdpb25UeXBlKSB7CiAgICAgY2Fz
ZSBEZWJ1Z1BhZ2VPdmVybGF5czo6UmVnaW9uVHlwZTo6V2hlZWxFdmVudEhhbmRsZXJzOgpAQCAt
MTY1LDcgKzE2NSw3IEBAIFJlZ2lvbk92ZXJsYXk6OlJlZ2lvbk92ZXJsYXkoTWFpbkZyYW1lJiBm
cmFtZSwgQ29sb3IgcmVnaW9uQ29sb3IpCiBSZWdpb25PdmVybGF5Ojp+UmVnaW9uT3ZlcmxheSgp
CiB7CiAgICAgaWYgKG1fb3ZlcmxheSkKLSAgICAgICAgbV9mcmFtZS5wYWdlT3ZlcmxheUNvbnRy
b2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheShtX292ZXJsYXkuZ2V0KCksIFBhZ2VPdmVybGF5
OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAgbV9mcmFtZS5wYWdlT3ZlcmxheUNvbnRy
b2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqbV9vdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFk
ZU1vZGU6OkRvTm90RmFkZSk7CiB9CiAKIHZvaWQgUmVnaW9uT3ZlcmxheTo6d2lsbE1vdmVUb1Bh
Z2UoUGFnZU92ZXJsYXkmLCBQYWdlKiBwYWdlKQpAQCAtMjQ4LDcgKzI0OCw3IEBAIFJlZ2lvbk92
ZXJsYXkmIERlYnVnUGFnZU92ZXJsYXlzOjplbnN1cmVSZWdpb25PdmVybGF5Rm9yRnJhbWUoTWFp
bkZyYW1lJiBmcmFtZSwKIHZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OnNob3dSZWdpb25PdmVybGF5
KE1haW5GcmFtZSYgZnJhbWUsIFJlZ2lvblR5cGUgcmVnaW9uVHlwZSkKIHsKICAgICBSZWdpb25P
dmVybGF5JiB2aXN1YWxpemVyID0gZW5zdXJlUmVnaW9uT3ZlcmxheUZvckZyYW1lKGZyYW1lLCBy
ZWdpb25UeXBlKTsKLSAgICBmcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFn
ZU92ZXJsYXkoJnZpc3VhbGl6ZXIub3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRv
Tm90RmFkZSk7CisgICAgZnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VP
dmVybGF5KHZpc3VhbGl6ZXIub3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90
RmFkZSk7CiB9CiAKIHZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OmhpZGVSZWdpb25PdmVybGF5KE1h
aW5GcmFtZSYgZnJhbWUsIFJlZ2lvblR5cGUgcmVnaW9uVHlwZSkKQEAgLTI1Nyw3ICsyNTcsNyBA
QCB2b2lkIERlYnVnUGFnZU92ZXJsYXlzOjpoaWRlUmVnaW9uT3ZlcmxheShNYWluRnJhbWUmIGZy
YW1lLCBSZWdpb25UeXBlIHJlZ2lvblR5cAogICAgIGlmIChpdCAhPSBtX2ZyYW1lUmVnaW9uT3Zl
cmxheXMuZW5kKCkpIHsKICAgICAgICAgYXV0byYgdmlzdWFsaXplcnMgPSBpdC0+dmFsdWU7CiAg
ICAgICAgIGlmIChSZWdpb25PdmVybGF5KiB2aXN1YWxpemVyID0gdmlzdWFsaXplcnNbaW5kZXhP
ZihyZWdpb25UeXBlKV0uZ2V0KCkpIHsKLSAgICAgICAgICAgIGZyYW1lLnBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCZ2aXN1YWxpemVyLT5vdmVybGF5KCksIFBh
Z2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAgICAgIGZyYW1lLnBhZ2VP
dmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KHZpc3VhbGl6ZXItPm92ZXJs
YXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgICAgICAgICAgdmlz
dWFsaXplcnNbaW5kZXhPZihyZWdpb25UeXBlKV0gPSBudWxscHRyOwogICAgICAgICB9CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCBmMjMxOGEwM2MxNGJk
MWRmODIzMjBjYzA3Yzc4OTliMjk0MjdjNjQ2Li5kZjZjZmUwNGMyN2EzZjk4NDAyMjE5YTY2Yzg4
MmIzZDQzYjZmZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAt
MTk3LDcgKzE5Nyw3IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRyYWdFeGl0ZWQoY29uc3QgRHJh
Z0RhdGEmIGRyYWdEYXRhKQogI2VuZGlmCiAgICAgICAgIFJlZlB0cjxEYXRhVHJhbnNmZXI+IGRh
dGFUcmFuc2ZlciA9IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AocG9saWN5LCBk
cmFnRGF0YSk7CiAgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0U291cmNlT3BlcmF0aW9uKGRyYWdE
YXRhLmRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzaygpKTsKLSAgICAgICAgbV9wYWdlLm1haW5G
cmFtZSgpLmV2ZW50SGFuZGxlcigpLmNhbmNlbERyYWdBbmREcm9wKGNyZWF0ZU1vdXNlRXZlbnQo
ZHJhZ0RhdGEpLCBkYXRhVHJhbnNmZXIuZ2V0KCkpOworICAgICAgICBtX3BhZ2UubWFpbkZyYW1l
KCkuZXZlbnRIYW5kbGVyKCkuY2FuY2VsRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChkcmFn
RGF0YSksICpkYXRhVHJhbnNmZXIpOwogICAgICAgICBkYXRhVHJhbnNmZXItPnNldEFjY2Vzc1Bv
bGljeShEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6Ok51bWIpOyAvLyBJbnZhbGlkYXRlIGRhdGFU
cmFuc2ZlciBoZXJlIGZvciBzZWN1cml0eS4KICAgICB9CiAgICAgbW91c2VNb3ZlZEludG9Eb2N1
bWVudChudWxscHRyKTsKQEAgLTIyNyw3ICsyMjcsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpw
ZXJmb3JtRHJhZ09wZXJhdGlvbihjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgICAg
ICAvLyBTZW5kaW5nIGFuIGV2ZW50IGNhbiByZXN1bHQgaW4gdGhlIGRlc3RydWN0aW9uIG9mIHRo
ZSB2aWV3IGFuZCBwYXJ0LgogICAgICAgICAgICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gZGF0YVRy
YW5zZmVyID0gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChEYXRhVHJhbnNmZXJB
Y2Nlc3NQb2xpY3k6OlJlYWRhYmxlLCBkcmFnRGF0YSk7CiAgICAgICAgICAgICBkYXRhVHJhbnNm
ZXItPnNldFNvdXJjZU9wZXJhdGlvbihkcmFnRGF0YS5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1h
c2soKSk7Ci0gICAgICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gbWFpbkZyYW1lLT5ldmVudEhh
bmRsZXIoKS5wZXJmb3JtRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChkcmFnRGF0YSksIGRh
dGFUcmFuc2Zlci5nZXQoKSk7CisgICAgICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gbWFpbkZy
YW1lLT5ldmVudEhhbmRsZXIoKS5wZXJmb3JtRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChk
cmFnRGF0YSksICpkYXRhVHJhbnNmZXIpOwogICAgICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRB
Y2Nlc3NQb2xpY3koRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1iKTsgLy8gSW52YWxpZGF0
ZSBkYXRhVHJhbnNmZXIgaGVyZSBmb3Igc2VjdXJpdHkuCiAgICAgICAgIH0KICAgICAgICAgaWYg
KHByZXZlbnRlZERlZmF1bHQpIHsKQEAgLTU0Nyw3ICs1NDcsNyBAQCBib29sIERyYWdDb250cm9s
bGVyOjpjb25jbHVkZUVkaXREcmFnKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIAogICAgIGlm
IChyb290RWRpdGFibGVFbGVtZW50KSB7CiAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSByb290
RWRpdGFibGVFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgICAgICBmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKHJvb3RF
ZGl0YWJsZUVsZW1lbnQuZ2V0KCkpOworICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigp
LnVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRlZCgqcm9vdEVkaXRhYmxlRWxlbWVu
dCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CkBAIC02MjEsNyArNjIxLDcgQEAgYm9vbCBE
cmFnQ29udHJvbGxlcjo6dHJ5REhUTUxEcmFnKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSwgRHJh
Z09wZXJhdGlvbiYgb3BlcmEKICAgICBkYXRhVHJhbnNmZXItPnNldFNvdXJjZU9wZXJhdGlvbihz
cmNPcE1hc2spOwogCiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50ID0gY3JlYXRlTW91c2VF
dmVudChkcmFnRGF0YSk7Ci0gICAgaWYgKCFtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLnVwZGF0
ZURyYWdBbmREcm9wKGV2ZW50LCBkYXRhVHJhbnNmZXIuZ2V0KCkpKSB7CisgICAgaWYgKCFtYWlu
RnJhbWUtPmV2ZW50SGFuZGxlcigpLnVwZGF0ZURyYWdBbmREcm9wKGV2ZW50LCAqZGF0YVRyYW5z
ZmVyKSkgewogICAgICAgICBkYXRhVHJhbnNmZXItPnNldEFjY2Vzc1BvbGljeShEYXRhVHJhbnNm
ZXJBY2Nlc3NQb2xpY3k6Ok51bWIpOyAvLyBJbnZhbGlkYXRlIGRhdGFUcmFuc2ZlciBoZXJlIGZv
ciBzZWN1cml0eS4KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAppbmRleCA5MjNlNDE2OWY3OGQwYWZmMGFjYjMzZGM2OTFiOGE5YTU4
MGQzMGVkLi41YTVhMzVlNjhhN2M4OTg4YjZlMTMwNGU0ODlhMjEyYWJkOWM3M2M0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNi0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
IENvcHlyaWdodCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEB3ZWJraXQub3JnKQog
ICogQ29weXJpZ2h0IChDKSAyMDEyIERpZ2lhIFBsYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1p
ZXMpCiAgKgpAQCAtMjgsMTYgKzI4LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiRXZlbnRIYW5kbGVyLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVk
ZSAiQXV0b3Njcm9sbENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2lu
Y2x1ZGUgIkNocm9tZUNsaWVudC5oIgotI2luY2x1ZGUgIkN1cnNvci5oIgogI2luY2x1ZGUgIkN1
cnNvckxpc3QuaCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50RXZl
bnRRdWV1ZS5oIgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJhZ1N0
YXRlLmgiCiAjaW5jbHVkZSAiRWRpdG9yLmgiCkBAIC05NCwxMyArOTAsMTMgQEAKICNpbmNsdWRl
ICJVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5o
IgogI2luY2x1ZGUgIldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJXaGVlbEV2ZW50RGVsdGFGaWx0
ZXIuaCIKICNpbmNsdWRlICJXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgogI2luY2x1ZGUgImh0bWxl
ZGl0aW5nLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvU3RkTGliRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogI2lmIEVOQUJM
RShJT1NfVE9VQ0hfRVZFTlRTKQogI2luY2x1ZGUgIlBsYXRmb3JtVG91Y2hFdmVudElPUy5oIgpA
QCAtMTc2LDIxICsxNzIsNiBAQCBjb25zdCBpbnQgbWF4aW11bUN1cnNvclNpemUgPSAxMjg7CiBj
b25zdCBkb3VibGUgbWluaW11bUN1cnNvclNjYWxlID0gMC4wMDE7CiAjZW5kaWYKIAotZW51bSBO
b0N1cnNvckNoYW5nZVR5cGUgeyBOb0N1cnNvckNoYW5nZSB9OwotCi1jbGFzcyBPcHRpb25hbEN1
cnNvciB7Ci1wdWJsaWM6Ci0gICAgT3B0aW9uYWxDdXJzb3IoTm9DdXJzb3JDaGFuZ2VUeXBlKSA6
IG1faXNDdXJzb3JDaGFuZ2UoZmFsc2UpIHsgfQotICAgIE9wdGlvbmFsQ3Vyc29yKGNvbnN0IEN1
cnNvciYgY3Vyc29yKSA6IG1faXNDdXJzb3JDaGFuZ2UodHJ1ZSksIG1fY3Vyc29yKGN1cnNvcikg
eyB9Ci0KLSAgICBib29sIGlzQ3Vyc29yQ2hhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9pc0N1cnNv
ckNoYW5nZTsgfQotICAgIGNvbnN0IEN1cnNvciYgY3Vyc29yKCkgY29uc3QgeyBBU1NFUlQobV9p
c0N1cnNvckNoYW5nZSk7IHJldHVybiBtX2N1cnNvcjsgfQotCi1wcml2YXRlOgotICAgIGJvb2wg
bV9pc0N1cnNvckNoYW5nZTsKLSAgICBDdXJzb3IgbV9jdXJzb3I7Ci19OwotCiBjbGFzcyBNYXhp
bXVtRHVyYXRpb25UcmFja2VyIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBNYXhpbXVtRHVyYXRp
b25UcmFja2VyKGRvdWJsZSAqbWF4RHVyYXRpb24pCkBAIC00MDUsMTIgKzM4NiwxNCBAQCBFdmVu
dEhhbmRsZXI6On5FdmVudEhhbmRsZXIoKQogfQogICAgIAogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCisKIERyYWdTdGF0ZSYgRXZlbnRIYW5kbGVyOjpkcmFnU3RhdGUoKQogewogICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxEcmFnU3RhdGU+IHN0YXRlOwogICAgIHJldHVybiBzdGF0ZTsKIH0K
LSNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQorCisjZW5kaWYKICAgICAKIHZvaWQgRXZl
bnRIYW5kbGVyOjpjbGVhcigpCiB7CkBAIC04MDAsMTQgKzc4MywxNSBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6aGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMmIGV2ZQogCiAgICAgbV9tb3VzZVByZXNzTm9kZSA9IGV2ZW50LnRhcmdldE5vZGUoKTsK
ICAgICBtX2ZyYW1lLmRvY3VtZW50KCktPnNldEZvY3VzTmF2aWdhdGlvblN0YXJ0aW5nTm9kZShl
dmVudC50YXJnZXROb2RlKCkpOworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBtX2Ry
YWdTdGFydFBvcyA9IGV2ZW50LmV2ZW50KCkucG9zaXRpb24oKTsKKyAgICBtX2RyYWdTdGFydFBv
c2l0aW9uID0gZXZlbnQuZXZlbnQoKS5wb3NpdGlvbigpOwogI2VuZGlmCiAKLSAgICBib29sIHN3
YWxsb3dFdmVudCA9IGZhbHNlOwogICAgIG1fbW91c2VQcmVzc2VkID0gdHJ1ZTsKICAgICBtX3Nl
bGVjdGlvbkluaXRpYXRpb25TdGF0ZSA9IEhhdmVOb3RTdGFydGVkU2VsZWN0aW9uOwogCisgICAg
Ym9vbCBzd2FsbG93RXZlbnQgPSBmYWxzZTsKICAgICBpZiAoZXZlbnQuZXZlbnQoKS5jbGlja0Nv
dW50KCkgPT0gMikKICAgICAgICAgc3dhbGxvd0V2ZW50ID0gaGFuZGxlTW91c2VQcmVzc0V2ZW50
RG91YmxlQ2xpY2soZXZlbnQpOwogICAgIGVsc2UgaWYgKGV2ZW50LmV2ZW50KCkuY2xpY2tDb3Vu
dCgpID49IDMpCkBAIC05NzcsMTEgKzk2MSwxMSBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRl
U2VsZWN0aW9uRm9yTW91c2VEcmFnKGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bAog
ICAgICAgICBuZXdTZWxlY3Rpb24uc2V0RXh0ZW50KHBvc2l0aW9uQWZ0ZXJOb2RlKHJvb3RVc2Vy
U2VsZWN0QWxsRm9yTW91c2VQcmVzc05vZGUpLmRvd25zdHJlYW0oQ2FuQ3Jvc3NFZGl0aW5nQm91
bmRhcnkpKTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBSZXNldCBiYXNlIGZvciB1c2VyIHNl
bGVjdCBhbGwgd2hlbiBiYXNlIGlzIGluc2lkZSB1c2VyLXNlbGVjdC1hbGwgYXJlYSBhbmQgZXh0
ZW50IDwgYmFzZS4KLSAgICAgICAgaWYgKHJvb3RVc2VyU2VsZWN0QWxsRm9yTW91c2VQcmVzc05v
ZGUgJiYgY29tcGFyZVBvc2l0aW9ucyh0YXJnZXQtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9yUG9p
bnQoaGl0VGVzdFJlc3VsdC5sb2NhbFBvaW50KCksIG51bGxwdHIpLCBtX21vdXNlUHJlc3NOb2Rl
LT5yZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50KG1fZHJhZ1N0YXJ0UG9zLCBudWxscHRyKSkg
PCAwKQorICAgICAgICBpZiAocm9vdFVzZXJTZWxlY3RBbGxGb3JNb3VzZVByZXNzTm9kZSAmJiBj
b21wYXJlUG9zaXRpb25zKHRhcmdldC0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChoaXRU
ZXN0UmVzdWx0LmxvY2FsUG9pbnQoKSwgbnVsbHB0ciksIG1fbW91c2VQcmVzc05vZGUtPnJlbmRl
cmVyKCktPnBvc2l0aW9uRm9yUG9pbnQobV9kcmFnU3RhcnRQb3NpdGlvbiwgbnVsbHB0cikpIDwg
MCkKICAgICAgICAgICAgIG5ld1NlbGVjdGlvbi5zZXRCYXNlKHBvc2l0aW9uQWZ0ZXJOb2RlKHJv
b3RVc2VyU2VsZWN0QWxsRm9yTW91c2VQcmVzc05vZGUpLmRvd25zdHJlYW0oQ2FuQ3Jvc3NFZGl0
aW5nQm91bmRhcnkpKTsKICAgICAgICAgCiAgICAgICAgIE5vZGUqIHJvb3RVc2VyU2VsZWN0QWxs
Rm9yVGFyZ2V0ID0gUG9zaXRpb246OnJvb3RVc2VyU2VsZWN0QWxsRm9yTm9kZSh0YXJnZXQpOwot
ICAgICAgICBpZiAocm9vdFVzZXJTZWxlY3RBbGxGb3JUYXJnZXQgJiYgbV9tb3VzZVByZXNzTm9k
ZS0+cmVuZGVyZXIoKSAmJiBjb21wYXJlUG9zaXRpb25zKHRhcmdldC0+cmVuZGVyZXIoKS0+cG9z
aXRpb25Gb3JQb2ludChoaXRUZXN0UmVzdWx0LmxvY2FsUG9pbnQoKSwgbnVsbHB0ciksIG1fbW91
c2VQcmVzc05vZGUtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9yUG9pbnQobV9kcmFnU3RhcnRQb3Ms
IG51bGxwdHIpKSA8IDApCisgICAgICAgIGlmIChyb290VXNlclNlbGVjdEFsbEZvclRhcmdldCAm
JiBtX21vdXNlUHJlc3NOb2RlLT5yZW5kZXJlcigpICYmIGNvbXBhcmVQb3NpdGlvbnModGFyZ2V0
LT5yZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50KGhpdFRlc3RSZXN1bHQubG9jYWxQb2ludCgp
LCBudWxscHRyKSwgbV9tb3VzZVByZXNzTm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2lu
dChtX2RyYWdTdGFydFBvc2l0aW9uLCBudWxscHRyKSkgPCAwKQogICAgICAgICAgICAgbmV3U2Vs
ZWN0aW9uLnNldEV4dGVudChwb3NpdGlvbkJlZm9yZU5vZGUocm9vdFVzZXJTZWxlY3RBbGxGb3JU
YXJnZXQpLnVwc3RyZWFtKENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KSk7CiAgICAgICAgIGVsc2Ug
aWYgKHJvb3RVc2VyU2VsZWN0QWxsRm9yVGFyZ2V0ICYmIG1fbW91c2VQcmVzc05vZGUtPnJlbmRl
cmVyKCkpCiAgICAgICAgICAgICBuZXdTZWxlY3Rpb24uc2V0RXh0ZW50KHBvc2l0aW9uQWZ0ZXJO
b2RlKHJvb3RVc2VyU2VsZWN0QWxsRm9yVGFyZ2V0KS5kb3duc3RyZWFtKENhbkNyb3NzRWRpdGlu
Z0JvdW5kYXJ5KSk7CkBAIC0xMDQ3LDcgKzEwMzEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFu
ZGxlTW91c2VSZWxlYXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYg
ZQogICAgIC8vIGVkaXRpbmcsIHBsYWNlIHRoZSBjYXJldC4KICAgICBpZiAobV9tb3VzZURvd25X
YXNTaW5nbGVDbGlja0luU2VsZWN0aW9uICYmIG1fc2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlICE9
IEV4dGVuZGVkU2VsZWN0aW9uCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICAgICAgICAg
ICYmIG1fZHJhZ1N0YXJ0UG9zID09IGV2ZW50LmV2ZW50KCkucG9zaXRpb24oKQorICAgICAgICAg
ICAgJiYgbV9kcmFnU3RhcnRQb3NpdGlvbiA9PSBldmVudC5ldmVudCgpLnBvc2l0aW9uKCkKICNl
bmRpZgogICAgICAgICAgICAgJiYgbV9mcmFtZS5zZWxlY3Rpb24oKS5pc1JhbmdlKCkKICAgICAg
ICAgICAgICYmIGV2ZW50LmV2ZW50KCkuYnV0dG9uKCkgIT0gUmlnaHRCdXR0b24pIHsKQEAgLTEw
ODQsMTIgKzEwNjgsMTIgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRpZFBhblNjcm9sbFN0b3AoKQog
ICAgIG1fYXV0b3Njcm9sbENvbnRyb2xsZXItPmRpZFBhblNjcm9sbFN0b3AoKTsKIH0KIAotdm9p
ZCBFdmVudEhhbmRsZXI6OnN0YXJ0UGFuU2Nyb2xsaW5nKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVy
KQordm9pZCBFdmVudEhhbmRsZXI6OnN0YXJ0UGFuU2Nyb2xsaW5nKFJlbmRlckVsZW1lbnQmIHJl
bmRlcmVyKQogewogI2lmICFQTEFURk9STShJT1MpCi0gICAgaWYgKCFpczxSZW5kZXJCb3g+KCpy
ZW5kZXJlcikpCisgICAgaWYgKCFpczxSZW5kZXJCb3g+KHJlbmRlcmVyKSkKICAgICAgICAgcmV0
dXJuOwotICAgIG1fYXV0b3Njcm9sbENvbnRyb2xsZXItPnN0YXJ0UGFuU2Nyb2xsaW5nKGRvd25j
YXN0PFJlbmRlckJveD4ocmVuZGVyZXIpLCBsYXN0S25vd25Nb3VzZVBvc2l0aW9uKCkpOworICAg
IG1fYXV0b3Njcm9sbENvbnRyb2xsZXItPnN0YXJ0UGFuU2Nyb2xsaW5nKCZkb3duY2FzdDxSZW5k
ZXJCb3g+KHJlbmRlcmVyKSwgbGFzdEtub3duTW91c2VQb3NpdGlvbigpKTsKICAgICBpbnZhbGlk
YXRlQ2xpY2soKTsKICNlbmRpZgogfQpAQCAtMTM3NCwyNCArMTM1OCwyOCBAQCB2b2lkIEV2ZW50
SGFuZGxlcjo6dXBkYXRlQ3Vyc29yKCkKICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCh2aWV3LT53
aW5kb3dUb0NvbnRlbnRzKG1fbGFzdEtub3duTW91c2VQb3NpdGlvbikpOwogICAgIHJlbmRlclZp
ZXctPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKIAotICAgIE9wdGlvbmFsQ3Vyc29yIG9wdGlv
bmFsQ3Vyc29yID0gc2VsZWN0Q3Vyc29yKHJlc3VsdCwgc2hpZnRLZXkpOwotICAgIGlmIChvcHRp
b25hbEN1cnNvci5pc0N1cnNvckNoYW5nZSgpKSB7Ci0gICAgICAgIG1fY3VycmVudE1vdXNlQ3Vy
c29yID0gb3B0aW9uYWxDdXJzb3IuY3Vyc29yKCk7Ci0gICAgICAgIHZpZXctPnNldEN1cnNvciht
X2N1cnJlbnRNb3VzZUN1cnNvcik7CisgICAgdXBkYXRlQ3Vyc29yKCp2aWV3LCByZXN1bHQsIHNo
aWZ0S2V5KTsKK30KKwordm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZUN1cnNvcihGcmFtZVZpZXcm
IHZpZXcsIGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaGlmdEtleSkKK3sKKyAg
ICBpZiAoYXV0byBvcHRpb25hbEN1cnNvciA9IHNlbGVjdEN1cnNvcihyZXN1bHQsIHNoaWZ0S2V5
KSkgeworICAgICAgICBtX2N1cnJlbnRNb3VzZUN1cnNvciA9IFdURk1vdmUob3B0aW9uYWxDdXJz
b3IudmFsdWUoKSk7CisgICAgICAgIHZpZXcuc2V0Q3Vyc29yKG1fY3VycmVudE1vdXNlQ3Vyc29y
KTsKICAgICB9CiB9CiAKLU9wdGlvbmFsQ3Vyc29yIEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29y
KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaGlmdEtleSkKK3N0ZDo6b3B0aW9u
YWw8Q3Vyc29yPiBFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0
JiByZXN1bHQsIGJvb2wgc2hpZnRLZXkpCiB7CiAgICAgaWYgKG1fcmVzaXplTGF5ZXIgJiYgbV9y
ZXNpemVMYXllci0+aW5SZXNpemVNb2RlKCkpCi0gICAgICAgIHJldHVybiBOb0N1cnNvckNoYW5n
ZTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIGlmICghbV9mcmFtZS5wYWdl
KCkpCi0gICAgICAgIHJldHVybiBOb0N1cnNvckNoYW5nZTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKIAogI2lmIEVOQUJMRShQQU5fU0NST0xMSU5HKQogICAgIGlmIChtX2ZyYW1lLm1h
aW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLnBhblNjcm9sbEluUHJvZ3Jlc3MoKSkKLSAgICAgICAg
cmV0dXJuIE5vQ3Vyc29yQ2hhbmdlOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogI2Vu
ZGlmCiAKICAgICBSZWY8RnJhbWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUpOwpAQCAtMTQwNiw3
ICsxMzk0LDcgQEAgT3B0aW9uYWxDdXJzb3IgRXZlbnRIYW5kbGVyOjpzZWxlY3RDdXJzb3IoY29u
c3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBib29sIHNoaWYKIAogICAgIE5vZGUqIG5vZGUgPSBy
ZXN1bHQudGFyZ2V0Tm9kZSgpOwogICAgIGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJuIE5vQ3Vy
c29yQ2hhbmdlOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgYXV0byByZW5k
ZXJlciA9IG5vZGUtPnJlbmRlcmVyKCk7CiAgICAgYXV0byogc3R5bGUgPSByZW5kZXJlciA/ICZy
ZW5kZXJlci0+c3R5bGUoKSA6IG51bGxwdHI7CkBAIC0xNDI4LDcgKzE0MTYsNyBAQCBPcHRpb25h
bEN1cnNvciBFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiBy
ZXN1bHQsIGJvb2wgc2hpZgogICAgICAgICBjYXNlIFNldEN1cnNvcjoKICAgICAgICAgICAgIHJl
dHVybiBvdmVycmlkZUN1cnNvcjsKICAgICAgICAgY2FzZSBEb05vdFNldEN1cnNvcjoKLSAgICAg
ICAgICAgIHJldHVybiBOb0N1cnNvckNoYW5nZTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTE5NDcsMTUgKzE5MzUsMTAgQEAgYm9vbCBF
dmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVu
dCYgcGxhdGZvcm1Nb3VzZUUKICAgICAgICAgLy8gbm9kZSB0byBiZSBkZXRhY2hlZCBmcm9tIGl0
cyBGcmFtZVZpZXcsIGluIHdoaWNoIGNhc2UgdGhlIGV2ZW50IHNob3VsZCBub3QgYmUgcGFzc2Vk
LgogICAgICAgICBpZiAobmV3U3ViZnJhbWUtPnZpZXcoKSkKICAgICAgICAgICAgIHN3YWxsb3dF
dmVudCB8PSBwYXNzTW91c2VNb3ZlRXZlbnRUb1N1YmZyYW1lKG1vdXNlRXZlbnQsIG5ld1N1YmZy
YW1lLmdldCgpLCBob3ZlcmVkTm9kZSk7Ci0jaWYgRU5BQkxFKENVUlNPUl9TVVBQT1JUKQogICAg
IH0gZWxzZSB7Ci0gICAgICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLnZpZXcoKSkg
ewotICAgICAgICAgICAgT3B0aW9uYWxDdXJzb3Igb3B0aW9uYWxDdXJzb3IgPSBzZWxlY3RDdXJz
b3IobW91c2VFdmVudC5oaXRUZXN0UmVzdWx0KCksIHBsYXRmb3JtTW91c2VFdmVudC5zaGlmdEtl
eSgpKTsKLSAgICAgICAgICAgIGlmIChvcHRpb25hbEN1cnNvci5pc0N1cnNvckNoYW5nZSgpKSB7
Ci0gICAgICAgICAgICAgICAgbV9jdXJyZW50TW91c2VDdXJzb3IgPSBvcHRpb25hbEN1cnNvci5j
dXJzb3IoKTsKLSAgICAgICAgICAgICAgICB2aWV3LT5zZXRDdXJzb3IobV9jdXJyZW50TW91c2VD
dXJzb3IpOwotICAgICAgICAgICAgfQotICAgICAgICB9CisjaWYgRU5BQkxFKENVUlNPUl9TVVBQ
T1JUKQorICAgICAgICBpZiAoYXV0byogdmlldyA9IG1fZnJhbWUudmlldygpKQorICAgICAgICAg
ICAgdXBkYXRlQ3Vyc29yKCp2aWV3LCBtb3VzZUV2ZW50LmhpdFRlc3RSZXN1bHQoKSwgcGxhdGZv
cm1Nb3VzZUV2ZW50LnNoaWZ0S2V5KCkpOwogI2VuZGlmCiAgICAgfQogICAgIApAQCAtMTk2OCw3
ICsxOTUxLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYgcGxhdGZvcm1Nb3VzZUUKICNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKQogICAgIGlmICghc3dhbGxvd0V2ZW50KQogICAgICAgICBzd2FsbG93RXZlbnQgPSBoYW5k
bGVNb3VzZURyYWdnZWRFdmVudChtb3VzZUV2ZW50KTsKLSNlbmRpZiAvLyBFTkFCTEUoRFJBR19T
VVBQT1JUKQorI2VuZGlmCiAKICAgICByZXR1cm4gc3dhbGxvd0V2ZW50OwogfQpAQCAtMjIzNiw3
ICsyMjE5LDcgQEAgc3RhdGljIGJvb2wgZmluZERyb3Bab25lKE5vZGUqIHRhcmdldCwgRGF0YVRy
YW5zZmVyKiBkYXRhVHJhbnNmZXIpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogICAgIAotYm9vbCBF
dmVudEhhbmRsZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
ZXZlbnQsIERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQorYm9vbCBFdmVudEhhbmRsZXI6OnVw
ZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFu
c2ZlciYgZGF0YVRyYW5zZmVyKQogewogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9m
cmFtZSk7CiAKQEAgLTIyNzUsMTYgKzIyNTgsMTYgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0
ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2YK
ICAgICAgICAgICAgICAgICAvLyBmb3Igbm93IHdlIGRvbid0IGNhcmUgaWYgZXZlbnQgaGFuZGxl
ciBjYW5jZWxzIGRlZmF1bHQgYmVoYXZpb3IsIHNpbmNlIHRoZXJlIGlzIG5vbmUKICAgICAgICAg
ICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVudChldmVudE5hbWVzKCkuZHJhZ0V2ZW50LCBldmVu
dCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVu
dChldmVudE5hbWVzKCkuZHJhZ2VudGVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCBkYXRhVHJh
bnNmZXIpOworICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1l
cygpLmRyYWdlbnRlckV2ZW50LCAqbmV3VGFyZ2V0LCBldmVudCwgJmRhdGFUcmFuc2Zlcik7CiAg
ICAgICAgICAgICBpZiAoIWFjY2VwdCkKLSAgICAgICAgICAgICAgICBhY2NlcHQgPSBmaW5kRHJv
cFpvbmUobmV3VGFyZ2V0LmdldCgpLCBkYXRhVHJhbnNmZXIpOworICAgICAgICAgICAgICAgIGFj
Y2VwdCA9IGZpbmREcm9wWm9uZShuZXdUYXJnZXQuZ2V0KCksICZkYXRhVHJhbnNmZXIpOwogICAg
ICAgICB9CiAKICAgICAgICAgaWYgKHRhcmdldElzRnJhbWUobV9kcmFnVGFyZ2V0LmdldCgpLCB0
YXJnZXRGcmFtZSkpIHsKICAgICAgICAgICAgIGlmICh0YXJnZXRGcmFtZSkKICAgICAgICAgICAg
ICAgICBhY2NlcHQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ0FuZERy
b3AoZXZlbnQsIGRhdGFUcmFuc2Zlcik7CiAgICAgICAgIH0gZWxzZSBpZiAobV9kcmFnVGFyZ2V0
KQotICAgICAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2
ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgZGF0YVRyYW5zZmVyKTsKKyAgICAgICAgICAgIGRp
c3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnbGVhdmVFdmVudCwgKm1fZHJhZ1Rhcmdl
dCwgZXZlbnQsICZkYXRhVHJhbnNmZXIpOwogCiAgICAgICAgIGlmIChuZXdUYXJnZXQpIHsKICAg
ICAgICAgICAgIC8vIFdlIGRvIG5vdCBleHBsaWNpdGx5IGNhbGwgZGlzcGF0Y2hEcmFnRXZlbnQg
aGVyZSBiZWNhdXNlIGl0IGNvdWxkIHVsdGltYXRlbHkgcmVzdWx0IGluIHRoZSBhcHBlYXJhbmNl
IHRoYXQKQEAgLTIzMDIsOSArMjI4NSw5IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFn
QW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmCiAgICAg
ICAgICAgICAgICAgLy8gZm9yIG5vdyB3ZSBkb24ndCBjYXJlIGlmIGV2ZW50IGhhbmRsZXIgY2Fu
Y2VscyBkZWZhdWx0IGJlaGF2aW9yLCBzaW5jZSB0aGVyZSBpcyBub25lCiAgICAgICAgICAgICAg
ICAgZGlzcGF0Y2hEcmFnU3JjRXZlbnQoZXZlbnROYW1lcygpLmRyYWdFdmVudCwgZXZlbnQpOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZl
bnROYW1lcygpLmRyYWdvdmVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNmZXIp
OworICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRy
YWdvdmVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCAmZGF0YVRyYW5zZmVyKTsKICAgICAgICAg
ICAgIGlmICghYWNjZXB0KQotICAgICAgICAgICAgICAgIGFjY2VwdCA9IGZpbmREcm9wWm9uZShu
ZXdUYXJnZXQuZ2V0KCksIGRhdGFUcmFuc2Zlcik7CisgICAgICAgICAgICAgICAgYWNjZXB0ID0g
ZmluZERyb3Bab25lKG5ld1RhcmdldC5nZXQoKSwgJmRhdGFUcmFuc2Zlcik7CiAgICAgICAgICAg
ICBtX3Nob3VsZE9ubHlGaXJlRHJhZ092ZXJFdmVudCA9IGZhbHNlOwogICAgICAgICB9CiAgICAg
fQpAQCAtMjMxMiw3ICsyMjk1LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdBbmRE
cm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2YKICAgICByZXR1
cm4gYWNjZXB0OwogfQogCi12b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsRHJhZ0FuZERyb3AoY29u
c3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIp
Cit2b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3Vz
ZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIpCiB7CiAgICAgUmVmPEZy
YW1lPiBwcm90ZWN0ZWRGcmFtZShtX2ZyYW1lKTsKIApAQCAtMjMyMywxMiArMjMwNiwxMiBAQCB2
b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiBldmVudCwgRGF0YVRyYW5zZgogICAgIH0gZWxzZSBpZiAobV9kcmFnVGFyZ2V0KSB7CiAg
ICAgICAgIGlmIChkcmFnU3RhdGUoKS5zb3VyY2UgJiYgZHJhZ1N0YXRlKCkuc2hvdWxkRGlzcGF0
Y2hFdmVudHMpCiAgICAgICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVudChldmVudE5hbWVzKCku
ZHJhZ0V2ZW50LCBldmVudCk7Ci0gICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMo
KS5kcmFnbGVhdmVFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsIGRhdGFUcmFuc2Zlcik7Cisg
ICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnbGVhdmVFdmVudCwgKm1f
ZHJhZ1RhcmdldCwgZXZlbnQsICZkYXRhVHJhbnNmZXIpOwogICAgIH0KICAgICBjbGVhckRyYWdT
dGF0ZSgpOwogfQogCi1ib29sIEV2ZW50SGFuZGxlcjo6cGVyZm9ybURyYWdBbmREcm9wKGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQor
Ym9vbCBFdmVudEhhbmRsZXI6OnBlcmZvcm1EcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlcikKIHsKICAgICBSZWY8RnJh
bWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUpOwogCkBAIC0yMzM4LDcgKzIzMjEsNyBAQCBib29s
IEV2ZW50SGFuZGxlcjo6cGVyZm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVu
dCYgZXZlbnQsIERhdGFUcmFucwogICAgICAgICBpZiAodGFyZ2V0RnJhbWUpCiAgICAgICAgICAg
ICBwcmV2ZW50ZWREZWZhdWx0ID0gdGFyZ2V0RnJhbWUtPmV2ZW50SGFuZGxlcigpLnBlcmZvcm1E
cmFnQW5kRHJvcChldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICB9IGVsc2UgaWYgKG1fZHJhZ1Rh
cmdldCkKLSAgICAgICAgcHJldmVudGVkRGVmYXVsdCA9IGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50
TmFtZXMoKS5kcm9wRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNmZXIpOwor
ICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygp
LmRyb3BFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsICZkYXRhVHJhbnNmZXIpOwogICAgIGNs
ZWFyRHJhZ1N0YXRlKCk7CiAgICAgcmV0dXJuIHByZXZlbnRlZERlZmF1bHQ7CiB9CkBAIC0yMzUz
LDkgKzIzMzYsMTAgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyRHJhZ1N0YXRlKCkKICAgICBt
X3NlbmRpbmdFdmVudFRvU3VidmlldyA9IGZhbHNlOwogI2VuZGlmCiB9CisKICNlbmRpZiAvLyBF
TkFCTEUoRFJBR19TVVBQT1JUKQogCi12b2lkIEV2ZW50SGFuZGxlcjo6c2V0Q2FwdHVyaW5nTW91
c2VFdmVudHNFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKK3ZvaWQgRXZlbnRI
YW5kbGVyOjpzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQoRWxlbWVudCogZWxlbWVudCkK
IHsKICAgICBtX2NhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCA9IGVsZW1lbnQ7CiAgICAgbV9l
dmVudEhhbmRsZXJXaWxsUmVzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQgPSBmYWxzZTsK
QEAgLTI1NjMsNyArMjU0Nyw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqIHRhcmdlCiAKICAgICAvLyBJ
ZiBmb2N1cyBzaGlmdCBpcyBibG9ja2VkLCB3ZSBlYXQgdGhlIGV2ZW50LgogICAgIGF1dG8qIHBh
Z2UgPSBtX2ZyYW1lLnBhZ2UoKTsKLSAgICBpZiAocGFnZSAmJiAhcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQoZWxlbWVudCwgJm1fZnJhbWUpKQorICAgIGlmIChwYWdl
ICYmICFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChlbGVtZW50LCBt
X2ZyYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0z
NDExLDExICszMzk1LDExIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkcmFnU291cmNlRW5kZWRBdChj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEcmFnT3BlcmF0CiAgICAgbV9tb3VzZURv
d25NYXlTdGFydERyYWcgPSBmYWxzZTsKIH0KIAotdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZURy
YWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRlZChFbGVtZW50KiByb290RWRpdGFibGVFbGVtZW50
KQordm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRl
ZChFbGVtZW50JiByb290RWRpdGFibGVFbGVtZW50KQogewogICAgIC8vIElmIGluc2VydGluZyB0
aGUgZHJhZ2dlZCBjb250ZW50cyByZW1vdmVkIHRoZSBkcmFnIHNvdXJjZSwgd2Ugc3RpbGwgd2Fu
dCB0byBmaXJlIGRyYWdlbmQgYXQgdGhlIHJvb3QgZWRpdGFibGUgZWxlbWVudC4KICAgICBpZiAo
ZHJhZ1N0YXRlKCkuc291cmNlICYmICFkcmFnU3RhdGUoKS5zb3VyY2UtPmluRG9jdW1lbnQoKSkK
LSAgICAgICAgZHJhZ1N0YXRlKCkuc291cmNlID0gcm9vdEVkaXRhYmxlRWxlbWVudDsKKyAgICAg
ICAgZHJhZ1N0YXRlKCkuc291cmNlID0gJnJvb3RFZGl0YWJsZUVsZW1lbnQ7CiB9CiAKIC8vIFJl
dHVybiB2YWx1ZSBpbmRpY2F0ZXMgaWYgd2Ugc2hvdWxkIGNvbnRpbnVlICJkZWZhdWx0IHByb2Nl
c3NpbmciLCBpLmUuLCB3aGV0aGVyIGV2ZW50IGhhbmRsZXIgY2FuY2VsZWQuCkBAIC0zNjI1LDI1
ICszNjA5LDI0IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVUZXh0SW5wdXRFdmVudChjb25z
dCBTdHJpbmcmIHRleHQsIEV2ZW50KiB1bmRlcmx5aW5nRXZlCiAgICAgcmV0dXJuIGV2ZW50LT5k
ZWZhdWx0SGFuZGxlZCgpOwogfQogICAgIAotYm9vbCBFdmVudEhhbmRsZXI6OmlzS2V5Ym9hcmRP
cHRpb25UYWIoS2V5Ym9hcmRFdmVudCogZXZlbnQpCitib29sIEV2ZW50SGFuZGxlcjo6aXNLZXli
b2FyZE9wdGlvblRhYihLZXlib2FyZEV2ZW50JiBldmVudCkKIHsKLSAgICByZXR1cm4gZXZlbnQK
LSAgICAgICAgJiYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCB8
fCBldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KQotICAgICAgICAm
JiBldmVudC0+YWx0S2V5KCkKLSAgICAgICAgJiYgZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9PSAi
VSswMDA5IjsgICAgCisgICAgcmV0dXJuIChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtl
eWRvd25FdmVudCB8fCBldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQp
CisgICAgICAgICYmIGV2ZW50LmFsdEtleSgpCisgICAgICAgICYmIGV2ZW50LmtleUlkZW50aWZp
ZXIoKSA9PSAiVSswMDA5IjsKIH0KIAotYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1Rh
YnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdChLZXlib2FyZEV2ZW50KiBldmVudCkKK2Jvb2wgRXZl
bnRIYW5kbGVyOjpldmVudEludmVydHNUYWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQoS2V5Ym9h
cmRFdmVudCYgZXZlbnQpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEVGTCkK
LSAgICByZXR1cm4gRXZlbnRIYW5kbGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKGV2ZW50KTsKKyAg
ICByZXR1cm4gaXNLZXlib2FyZE9wdGlvblRhYihldmVudCk7CiAjZWxzZQogICAgIFVOVVNFRF9Q
QVJBTShldmVudCk7CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CiAKLWJvb2wgRXZlbnRI
YW5kbGVyOjp0YWJzVG9MaW5rcyhLZXlib2FyZEV2ZW50KiBldmVudCkgY29uc3QKK2Jvb2wgRXZl
bnRIYW5kbGVyOjp0YWJzVG9MaW5rcyhLZXlib2FyZEV2ZW50JiBldmVudCkgY29uc3QKIHsKICAg
ICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBuZWVkcyBhIGJldHRlciBuYW1lLiBJdCBjYW4gYmUg
Y2FsbGVkIGZvciBrZXlwcmVzc2VzIG90aGVyIHRoYW4gVGFiIHdoZW4gc3BhdGlhbCBuYXZpZ2F0
aW9uIGlzIGVuYWJsZWQuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IGRlNzhi
Y2FlODRhNzY2NGRlMjhkNWQxNzkwNmI5YTNkYjJlMWI0MjMuLjZlZDdhZTMzOTVjODAyNjNkNGE3
NzAwZmNhMGFmMGY2ZWY5MThjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNiBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTMxLDMwICszMSwzMSBAQAogI2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCiAjaW5jbHVkZSAi
TGF5b3V0UG9pbnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKLSNpbmNsdWRl
ICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1
ZGUgIlRleHRFdmVudElucHV0VHlwZS5oIgogI2luY2x1ZGUgIlRleHRHcmFudWxhcml0eS5oIgog
I2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSAiV2hlZWxFdmVudERlbHRhRmlsdGVyLmgiCiAj
aW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
IAorI2lmIFBMQVRGT1JNKENPQ09BKQorT0JKQ19DTEFTUyBOU1ZpZXc7CisjZW5kaWYKKwogI2lm
IFBMQVRGT1JNKElPUykKIE9CSkNfQ0xBU1MgV2ViRXZlbnQ7Ci1PQkpDX0NMQVNTIFdBS1ZpZXc7
Ci0jaWZkZWYgX19PQkpDX18KLSNpbmNsdWRlICJXQUtBcHBLaXRTdHVicy5oIgogI2VuZGlmCi0j
ZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi1PQkpDX0NMQVNT
IE5TVmlldzsKKyNpZiBQTEFURk9STShNQUMpCitPQkpDX0NMQVNTIE5TRXZlbnQ7CisjZW5kaWYK
KworI2lmIFBMQVRGT1JNKElPUykgJiYgZGVmaW5lZChfX09CSkNfXykKKyNpbmNsdWRlICJXQUtB
cHBLaXRTdHVicy5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY2LDE2ICs2
NywxNCBAQCBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBFdmVudDsKIGNs
YXNzIEV2ZW50VGFyZ2V0OwotY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIEZsb2F0UXVhZDsKIGNs
YXNzIEZyYW1lOworY2xhc3MgRnJhbWVWaWV3OwogY2xhc3MgSFRNTEZyYW1lU2V0RWxlbWVudDsK
LWNsYXNzIEhpdFRlc3RSZXF1ZXN0OwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEtleWJv
YXJkRXZlbnQ7CiBjbGFzcyBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3MgTm9k
ZTsKLWNsYXNzIE9wdGlvbmFsQ3Vyc29yOwogY2xhc3MgUGxhdGZvcm1HZXN0dXJlRXZlbnQ7CiBj
bGFzcyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ7CiBjbGFzcyBQbGF0Zm9ybVRvdWNoRXZlbnQ7CkBA
IC0xMDAsNyArOTksNyBAQCBleHRlcm4gY29uc3QgaW50IExpbmtEcmFnSHlzdGVyZXNpczsKIGV4
dGVybiBjb25zdCBpbnQgSW1hZ2VEcmFnSHlzdGVyZXNpczsKIGV4dGVybiBjb25zdCBpbnQgVGV4
dERyYWdIeXN0ZXJlc2lzOwogZXh0ZXJuIGNvbnN0IGludCBHZW5lcmFsRHJhZ0h5c3RlcmVzaXM7
Ci0jZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNlbmRpZgogCiAjaWYgRU5BQkxFKElP
U19HRVNUVVJFX0VWRU5UUykgfHwgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKIGV4dGVybiBj
b25zdCBmbG9hdCBHZXN0dXJlVW5rbm93bjsKQEAgLTEyMCw3ICsxMTksNiBAQCBlbnVtIGNsYXNz
IEltbWVkaWF0ZUFjdGlvblN0YWdlIHsKIH07CiAKIGNsYXNzIEV2ZW50SGFuZGxlciB7Ci0gICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoRXZlbnRIYW5kbGVyKTsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBFdmVudEhhbmRsZXIoRnJhbWUmKTsKQEAg
LTEzNiw3ICsxMzQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCiAgICAg
dm9pZCBkaWRQYW5TY3JvbGxTdGFydCgpOwogICAgIHZvaWQgZGlkUGFuU2Nyb2xsU3RvcCgpOwot
ICAgIHZvaWQgc3RhcnRQYW5TY3JvbGxpbmcoUmVuZGVyRWxlbWVudCopOworICAgIHZvaWQgc3Rh
cnRQYW5TY3JvbGxpbmcoUmVuZGVyRWxlbWVudCYpOwogI2VuZGlmCiAKICAgICB2b2lkIHN0b3BB
dXRvc2Nyb2xsVGltZXIoYm9vbCByZW5kZXJlcklzQmVpbmdEZXN0cm95ZWQgPSBmYWxzZSk7CkBA
IC0xNTYsMTMgKzE1NCwxMyBAQCBwdWJsaWM6CiAgICAgYm9vbCBtb3VzZVByZXNzZWQoKSBjb25z
dCB7IHJldHVybiBtX21vdXNlUHJlc3NlZDsgfQogICAgIE5vZGUqIG1vdXNlUHJlc3NOb2RlKCkg
Y29uc3QgeyByZXR1cm4gbV9tb3VzZVByZXNzTm9kZS5nZXQoKTsgfQogCi0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQoUGFzc1JlZlB0cjxFbGVt
ZW50Pik7IC8vIEEgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciByZXNldHRpbmcgY2FwdHVyaW5n
IGVsZW1lbnQgdG8gMC4KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhcHR1cmluZ01vdXNl
RXZlbnRzRWxlbWVudChFbGVtZW50Kik7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAg
IGJvb2wgdXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRy
YW5zZmVyKik7Ci0gICAgdm9pZCBjYW5jZWxEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmLCBEYXRhVHJhbnNmZXIqKTsKLSAgICBib29sIHBlcmZvcm1EcmFnQW5kRHJvcChjb25z
dCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXIqKTsKLSAgICB2b2lkIHVwZGF0ZURy
YWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRlZChFbGVtZW50KiByb290RWRpdGFibGVFbGVtZW50
KTsKKyAgICBib29sIHVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYs
IERhdGFUcmFuc2ZlciYpOworICAgIHZvaWQgY2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyJik7CisgICAgYm9vbCBwZXJmb3JtRHJhZ0FuZERy
b3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyJik7CisgICAgdm9pZCB1
cGRhdGVEcmFnU3RhdGVBZnRlckVkaXREcmFnSWZOZWVkZWQoRWxlbWVudCYgcm9vdEVkaXRhYmxl
RWxlbWVudCk7CiAjZW5kaWYKIAogICAgIHZvaWQgc2NoZWR1bGVIb3ZlclN0YXRlVXBkYXRlKCk7
CkBAIC0xODcsOCArMTg1LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2Ny
b2xsUmVjdXJzaXZlbHkoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgTm9kZSog
c3RhcnRpbmdOb2RlID0gbnVsbHB0cik7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBsb2dpY2Fs
U2Nyb2xsUmVjdXJzaXZlbHkoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJp
dHksIE5vZGUqIHN0YXJ0aW5nTm9kZSA9IG51bGxwdHIpOwogCi0gICAgYm9vbCB0YWJzVG9MaW5r
cyhLZXlib2FyZEV2ZW50KikgY29uc3Q7Ci0gICAgYm9vbCB0YWJzVG9BbGxGb3JtQ29udHJvbHMo
S2V5Ym9hcmRFdmVudCopIGNvbnN0OworICAgIGJvb2wgdGFic1RvTGlua3MoS2V5Ym9hcmRFdmVu
dCYpIGNvbnN0OworICAgIGJvb2wgdGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQm
KSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbW91c2VNb3ZlZChjb25zdCBQbGF0
Zm9ybU1vdXNlRXZlbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHBhc3NNb3VzZU1vdmVk
RXZlbnRUb1Njcm9sbGJhcnMoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jik7CkBAIC0yMTAsMTIg
KzIwOCwxMiBAQCBwdWJsaWM6CiAgICAgdm9pZCBwbGF0Zm9ybU5vdGlmeUlmRW5kR2VzdHVyZShj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYp
OwogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpIHx8IEVOQUJMRShJT1NfR0VTVFVSRV9F
VkVOVFMpCi0gICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFRvdWNoPj4gVG91Y2hBcnJheTsKLSAg
ICB0eXBlZGVmIEhhc2hNYXA8RXZlbnRUYXJnZXQqLCBUb3VjaEFycmF5Kj4gRXZlbnRUYXJnZXRU
b3VjaE1hcDsKKyAgICB1c2luZyBUb3VjaEFycmF5ID0gVmVjdG9yPFJlZlB0cjxUb3VjaD4+Owor
ICAgIHVzaW5nIEV2ZW50VGFyZ2V0VG91Y2hNYXAgPSBIYXNoTWFwPEV2ZW50VGFyZ2V0KiwgVG91
Y2hBcnJheSo+OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgfHwgRU5B
QkxFKElPU19HRVNUVVJFX0VWRU5UUykgfHwgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKLSAg
ICB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPEV2ZW50VGFyZ2V0Pj4gRXZlbnRUYXJnZXRTZXQ7Cisg
ICAgdXNpbmcgRXZlbnRUYXJnZXRTZXQgPSBIYXNoU2V0PFJlZlB0cjxFdmVudFRhcmdldD4+Owog
I2VuZGlmCiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKQEAgLTIzMSw3ICsyMjksNyBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2b2lkIGRlZmF1bHRU
b3VjaEV2ZW50SGFuZGxlcihOb2RlKiwgVG91Y2hFdmVudCopOworICAgIHZvaWQgZGVmYXVsdFRv
dWNoRXZlbnRIYW5kbGVyKE5vZGUmLCBUb3VjaEV2ZW50Jik7CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShDT05URVhUX01FTlVTKQpAQCAtMjY0LDggKzI2Miw3IEBAIHB1YmxpYzoKICAgICAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNlbmRTY3JvbGxFdmVudCgpOwogCi0jaWYgUExBVEZPUk0oQ09D
T0EpICYmIGRlZmluZWQoX19PQkpDX18pCi0jaWYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9S
TShNQUMpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3VzZURvd24oTlNFdmVudCAqLCBOU0V2
ZW50ICpjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBtb3VzZURyYWdnZWQoTlNFdmVudCAqLCBOU0V2ZW50ICpjb3JyZXNwb25kaW5nUHJlc3N1cmVF
dmVudCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3VzZVVwKE5TRXZlbnQgKiwgTlNFdmVu
dCAqY29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQpOwpAQCAtMjczLDcgKzI3MCw5IEBAIHB1Ymxp
YzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHByZXNzdXJlQ2hhbmdlKE5TRXZlbnQgKiwgTlNF
dmVudCogY29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wga2V5RXZlbnQoTlNFdmVudCAqKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHdoZWVsRXZl
bnQoTlNFdmVudCAqKTsKLSNlbHNlCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlRG93bihXZWJFdmVudCAqKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIG1vdXNlVXAoV2ViRXZlbnQgKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBt
b3VzZU1vdmVkKFdlYkV2ZW50ICopOwpAQCAtMjg1LDIzICsyODQsMjAgQEAgcHVibGljOgogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdG91Y2hFdmVudChXZWJFdmVudCAqKTsKICNlbmRpZgogCi0j
aWYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBwYXNzTW91c2VNb3ZlZEV2ZW50VG9TY3JvbGxiYXJzKE5TRXZlbnQgKiwgTlNFdmVudCog
Y29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZW5kRmFrZUV2ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50
KTsKLSNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKElPUykKICAgICB2b2lkIHNldEFjdGl2YXRpb25F
dmVudE51bWJlcihpbnQgbnVtKSB7IG1fYWN0aXZhdGlvbkV2ZW50TnVtYmVyID0gbnVtOyB9CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTlNFdmVudCAqY3VycmVudE5TRXZlbnQoKTsKICAg
ICBzdGF0aWMgTlNFdmVudCAqY29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQoKTsKLSNlbHNlCi0g
ICAgc3RhdGljIFdlYkV2ZW50ICpjdXJyZW50RXZlbnQoKTsKLSNlbmRpZiAvLyAhUExBVEZPUk0o
SU9TKQotI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBkZWZpbmVkKF9fT0JKQ19fKQorI2Vu
ZGlmCiAKICNpZiBQTEFURk9STShJT1MpCisgICAgc3RhdGljIFdlYkV2ZW50ICpjdXJyZW50RXZl
bnQoKTsKKwogICAgIHZvaWQgaW52YWxpZGF0ZUNsaWNrKCk7CiAjZW5kaWYKIApAQCAtMzIzLDkg
KzMxOSw4IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBzdGF0aWMg
RHJhZ1N0YXRlJiBkcmFnU3RhdGUoKTsKICAgICBzdGF0aWMgY29uc3QgZG91YmxlIFRleHREcmFn
RGVsYXk7Ci0gICAgCi0gICAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURyYWdnaW5n
RGF0YVRyYW5zZmVyKCkgY29uc3Q7Ci0jZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKKyAg
ICBSZWY8RGF0YVRyYW5zZmVyPiBjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0Owor
I2VuZGlmCiAKICAgICBib29sIGV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmKSBjb25zdDsKICAgICBib29sIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRG93bkRpc3Bh
dGNoaW5nU2VsZWN0U3RhcnQoTm9kZSosIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBUZXh0R3Jh
bnVsYXJpdHkpOwpAQCAtMzQxLDE0ICszMzYsMTggQEAgcHJpdmF0ZToKICAgICBib29sIGhhbmRs
ZU1vdXNlUHJlc3NFdmVudFNpbmdsZUNsaWNrKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMmKTsKICAgICBib29sIGhhbmRsZU1vdXNlUHJlc3NFdmVudERvdWJsZUNsaWNrKGNvbnN0
IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsKICAgICBib29sIGhhbmRsZU1vdXNlUHJl
c3NFdmVudFRyaXBsZUNsaWNrKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsK
KwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgYm9vbCBoYW5kbGVNb3VzZURyYWdnZWRF
dmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CiAjZW5kaWYKKwogICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY29uc3QgTW91c2VF
dmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwogCi0gICAgT3B0aW9uYWxDdXJzb3Igc2VsZWN0Q3Vy
c29yKGNvbnN0IEhpdFRlc3RSZXN1bHQmLCBib29sIHNoaWZ0S2V5KTsKKyAgICBzdGQ6Om9wdGlv
bmFsPEN1cnNvcj4gc2VsZWN0Q3Vyc29yKGNvbnN0IEhpdFRlc3RSZXN1bHQmLCBib29sIHNoaWZ0
S2V5KTsKKyAgICB2b2lkIHVwZGF0ZUN1cnNvcihGcmFtZVZpZXcmLCBjb25zdCBIaXRUZXN0UmVz
dWx0JiwgYm9vbCBzaGlmdEtleSk7CiAKICAgICB2b2lkIGhvdmVyVGltZXJGaXJlZCgpOworCiAj
aWYgRU5BQkxFKENVUlNPUl9TVVBQT1JUKQogICAgIHZvaWQgY3Vyc29yVXBkYXRlVGltZXJGaXJl
ZCgpOwogI2VuZGlmCkBAIC0zNTksOCArMzU4LDggQEAgcHJpdmF0ZToKICAgICAKICAgICBib29s
IG1vdXNlRG93bk1heVN0YXJ0U2VsZWN0KCkgY29uc3QgeyByZXR1cm4gbV9tb3VzZURvd25NYXlT
dGFydFNlbGVjdDsgfQogCi0gICAgc3RhdGljIGJvb2wgaXNLZXlib2FyZE9wdGlvblRhYihLZXli
b2FyZEV2ZW50Kik7Ci0gICAgc3RhdGljIGJvb2wgZXZlbnRJbnZlcnRzVGFic1RvTGlua3NDbGll
bnRDYWxsUmVzdWx0KEtleWJvYXJkRXZlbnQqKTsKKyAgICBzdGF0aWMgYm9vbCBpc0tleWJvYXJk
T3B0aW9uVGFiKEtleWJvYXJkRXZlbnQmKTsKKyAgICBzdGF0aWMgYm9vbCBldmVudEludmVydHNU
YWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQoS2V5Ym9hcmRFdmVudCYpOwogCiAjaWYgIUVOQUJM
RShJT1NfVE9VQ0hfRVZFTlRTKQogICAgIHZvaWQgZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJl
ZCgpOwpAQCAtMzg1LDYgKzM4NCw3IEBAIHByaXZhdGU6CiAgICAgTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cyBwcmVwYXJlTW91c2VFdmVudChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYpOwogCiAgICAgYm9vbCBkaXNwYXRjaE1vdXNlRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqIHRhcmdldCwgYm9vbCBjYW5jZWxhYmxl
LCBpbnQgY2xpY2tDb3VudCwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgYm9vbCBzZXRVbmRl
cik7CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIGJvb2wgZGlzcGF0Y2hEcmFnRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIHRhcmdldCwgY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyKik7CiAKQEAgLTM5Miw3ICszOTIsOSBA
QCBwcml2YXRlOgogCiAgICAgYm9vbCBoYW5kbGVEcmFnKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0
VGVzdFJlc3VsdHMmLCBDaGVja0RyYWdIeXN0ZXJlc2lzKTsKICNlbmRpZgorCiAgICAgYm9vbCBo
YW5kbGVNb3VzZVVwKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsKKwogI2lm
IEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgdm9pZCBjbGVhckRyYWdTdGF0ZSgpOwogCkBAIC00
MDAsNyArNDAyLDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgZHJhZ0h5c3RlcmVzaXNFeGNlZWRl
ZChjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CiAgICAgYm9vbCBkcmFnSHlzdGVyZXNpc0V4Y2Vl
ZGVkKGNvbnN0IEludFBvaW50JikgY29uc3Q7Ci0jZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9S
VCkKKyNlbmRpZgogICAgIAogICAgIGJvb2wgbW91c2VNb3ZlbWVudEV4Y2VlZHNUaHJlc2hvbGQo
Y29uc3QgRmxvYXRQb2ludCYsIGludCBwb2ludHNUaHJlc2hvbGQpIGNvbnN0OwogCkBAIC00MzEs
MTEgKzQzMyw5IEBAIHByaXZhdGU6CiAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmUgY2FsbGVkIGF0
IHRoZSBiZWdpbm5pbmcgb2YgaGFuZGxlTW91c2VVcCBhbmQgaGFuZGxlRHJhZy4gIAogICAgIC8v
IElmIHRoZXkgcmV0dXJuIHRydWUgaXQgaW5kaWNhdGVzIHRoYXQgdGhleSBoYXZlIGNvbnN1bWVk
IHRoZSBldmVudC4KICAgICBib29sIGV2ZW50TG9vcEhhbmRsZU1vdXNlVXAoY29uc3QgTW91c2VF
dmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAg
Ym9vbCBldmVudExvb3BIYW5kbGVNb3VzZURyYWdnZWQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cyYpOwotI2VuZGlmCiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorICAgIGJv
b2wgZXZlbnRMb29wSGFuZGxlTW91c2VEcmFnZ2VkKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVz
dFJlc3VsdHMmKTsKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRHJhZyhjb25zdCBI
aXRUZXN0UmVzdWx0Jik7CiAjZW5kaWYKIApAQCAtNDczLDIxICs0NzMsMjQgQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8Tm9kZT4gbV9tb3VzZVByZXNzTm9kZTsKIAogICAgIGJvb2wgbV9tb3VzZURv
d25NYXlTdGFydFNlbGVjdCB7IGZhbHNlIH07CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQog
ICAgIGJvb2wgbV9tb3VzZURvd25NYXlTdGFydERyYWcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9k
cmFnTWF5U3RhcnRTZWxlY3Rpb25JbnN0ZWFkIHsgZmFsc2UgfTsKICNlbmRpZgorCiAgICAgYm9v
bCBtX21vdXNlRG93bldhc1NpbmdsZUNsaWNrSW5TZWxlY3Rpb24geyBmYWxzZSB9OwogICAgIGVu
dW0gU2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlIHsgSGF2ZU5vdFN0YXJ0ZWRTZWxlY3Rpb24sIFBs
YWNlZENhcmV0LCBFeHRlbmRlZFNlbGVjdGlvbiB9OwogICAgIFNlbGVjdGlvbkluaXRpYXRpb25T
dGF0ZSBtX3NlbGVjdGlvbkluaXRpYXRpb25TdGF0ZSB7IEhhdmVOb3RTdGFydGVkU2VsZWN0aW9u
IH07CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIExheW91dFBvaW50IG1fZHJhZ1N0
YXJ0UG9zOworICAgIExheW91dFBvaW50IG1fZHJhZ1N0YXJ0UG9zaXRpb247CiAjZW5kaWYKIAog
ICAgIGJvb2wgbV9wYW5TY3JvbGxCdXR0b25QcmVzc2VkIHsgZmFsc2UgfTsKIAogICAgIFRpbWVy
IG1faG92ZXJUaW1lcjsKKwogI2lmIEVOQUJMRShDVVJTT1JfU1VQUE9SVCkKICAgICBUaW1lciBt
X2N1cnNvclVwZGF0ZVRpbWVyOwogI2VuZGlmCkBAIC00OTUsNiArNDk4LDcgQEAgcHJpdmF0ZToK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgVGltZXIgbV9wZW5kaW5nTW9tZW50dW1XaGVlbEV2ZW50
c1RpbWVyOwogI2VuZGlmCisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXV0b3Njcm9sbENvbnRyb2xs
ZXI+IG1fYXV0b3Njcm9sbENvbnRyb2xsZXI7CiAgICAgYm9vbCBtX21vdXNlRG93bk1heVN0YXJ0
QXV0b3Njcm9sbCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX21vdXNlRG93bldhc0luU3ViZnJhbWUg
eyBmYWxzZSB9OwpAQCAtNTIzLDExICs1MjcsMTMgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX2dl
c3R1cmVJbml0aWFsRGlhbWV0ZXIgeyBHZXN0dXJlVW5rbm93biB9OwogICAgIGZsb2F0IG1fZ2Vz
dHVyZUluaXRpYWxSb3RhdGlvbiB7IEdlc3R1cmVVbmtub3duIH07CiAjZW5kaWYKKwogI2lmIEVO
QUJMRShJT1NfR0VTVFVSRV9FVkVOVFMpIHx8IEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAg
ICAgZmxvYXQgbV9nZXN0dXJlTGFzdERpYW1ldGVyIHsgR2VzdHVyZVVua25vd24gfTsKICAgICBm
bG9hdCBtX2dlc3R1cmVMYXN0Um90YXRpb24geyBHZXN0dXJlVW5rbm93biB9OwogICAgIEV2ZW50
VGFyZ2V0U2V0IG1fZ2VzdHVyZVRhcmdldHM7CiAjZW5kaWYKKwogI2lmIEVOQUJMRShNQUNfR0VT
VFVSRV9FVkVOVFMpCiAgICAgYm9vbCBtX2hhc0FjdGl2ZUdlc3R1cmUgeyBmYWxzZSB9OwogI2Vu
ZGlmCkBAIC01NTgsMTIgKzU2NCwxNCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQog
ICAgIE5TVmlldyAqbV9tb3VzZURvd25WaWV3IHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV9zZW5k
aW5nRXZlbnRUb1N1YnZpZXcgeyBmYWxzZSB9OwotI2lmICFQTEFURk9STShJT1MpCi0gICAgaW50
IG1fYWN0aXZhdGlvbkV2ZW50TnVtYmVyIHsgLTEgfTsKICNlbmRpZgorCisjaWYgUExBVEZPUk0o
TUFDKQorICAgIGludCBtX2FjdGl2YXRpb25FdmVudE51bWJlciB7IC0xIH07CiAjZW5kaWYKKwog
I2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpICYmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKLSAg
ICB0eXBlZGVmIEhhc2hNYXA8aW50LCBSZWZQdHI8RXZlbnRUYXJnZXQ+PiBUb3VjaFRhcmdldE1h
cDsKKyAgICB1c2luZyBUb3VjaFRhcmdldE1hcCA9IEhhc2hNYXA8aW50LCBSZWZQdHI8RXZlbnRU
YXJnZXQ+PjsKICAgICBUb3VjaFRhcmdldE1hcCBtX29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdl
dHM7CiAgICAgUmVmUHRyPERvY3VtZW50PiBtX29yaWdpbmF0aW5nVG91Y2hQb2ludERvY3VtZW50
OwogICAgIHVuc2lnbmVkIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0S2V5IHsgMCB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IGE3YjI1NTdlNjk0NmRi
OWU1NjExNTdhZGY3MmNjMjgyNmVmZTg3NDcuLjVhYTg2Yzk5Yzg5ZjNhZmVkZGE5NzU4OTZkNzJj
MjA3MTVkOTU1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAg
LTMxNiw3ICszMTYsNyBAQCBGb2N1c0NvbnRyb2xsZXI6OkZvY3VzQ29udHJvbGxlcihQYWdlJiBw
YWdlLCBBY3Rpdml0eVN0YXRlOjpGbGFncyBhY3Rpdml0eVN0YXRlKQogewogfQogCi12b2lkIEZv
Y3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEZyYW1lKFBhc3NSZWZQdHI8RnJhbWU+IGZyYW1lKQor
dm9pZCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRGcmFtZShGcmFtZSogZnJhbWUpCiB7CiAg
ICAgQVNTRVJUKCFmcmFtZSB8fCBmcmFtZS0+cGFnZSgpID09ICZtX3BhZ2UpOwogICAgIGlmICht
X2ZvY3VzZWRGcmFtZSA9PSBmcmFtZSB8fCBtX2lzQ2hhbmdpbmdGb2N1c2VkRnJhbWUpCkBAIC03
NjUsOCArNzY1LDkgQEAgc3RhdGljIHZvaWQgY2xlYXJTZWxlY3Rpb25JZk5lZWRlZChGcmFtZSog
b2xkRm9jdXNlZEZyYW1lLCBGcmFtZSogbmV3Rm9jdXNlZEZyYW0KICAgICBvbGRGb2N1c2VkRnJh
bWUtPnNlbGVjdGlvbigpLmNsZWFyKCk7CiB9CiAKLWJvb2wgRm9jdXNDb250cm9sbGVyOjpzZXRG
b2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBQYXNzUmVmUHRyPEZyYW1lPiBuZXdGb2N1
c2VkRnJhbWUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKK2Jvb2wgRm9jdXNDb250cm9sbGVy
OjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGcmFtZSYgbmV3Rm9jdXNlZEZy
YW1lLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CisgICAgUmVmPEZyYW1lPiBwcm90ZWN0
ZWROZXdGb2N1c2VkRnJhbWUgPSBuZXdGb2N1c2VkRnJhbWU7CiAgICAgUmVmUHRyPEZyYW1lPiBv
bGRGb2N1c2VkRnJhbWUgPSBmb2N1c2VkRnJhbWUoKTsKICAgICBSZWZQdHI8RG9jdW1lbnQ+IG9s
ZERvY3VtZW50ID0gb2xkRm9jdXNlZEZyYW1lID8gb2xkRm9jdXNlZEZyYW1lLT5kb2N1bWVudCgp
IDogbnVsbHB0cjsKICAgICAKQEAgLTc4MCw3ICs3ODEsNyBAQCBib29sIEZvY3VzQ29udHJvbGxl
cjo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUGFzc1JlZlB0cjxGcmFtZT4g
bmV3RgogCiAgICAgbV9wYWdlLmVkaXRvckNsaWVudCgpLndpbGxTZXRJbnB1dE1ldGhvZFN0YXRl
KCk7CiAKLSAgICBjbGVhclNlbGVjdGlvbklmTmVlZGVkKG9sZEZvY3VzZWRGcmFtZS5nZXQoKSwg
bmV3Rm9jdXNlZEZyYW1lLmdldCgpLCBlbGVtZW50KTsKKyAgICBjbGVhclNlbGVjdGlvbklmTmVl
ZGVkKG9sZEZvY3VzZWRGcmFtZS5nZXQoKSwgJm5ld0ZvY3VzZWRGcmFtZSwgZWxlbWVudCk7CiAK
ICAgICBpZiAoIWVsZW1lbnQpIHsKICAgICAgICAgaWYgKG9sZERvY3VtZW50KQpAQCAtNzk5LDEx
ICs4MDAsMTEgQEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1l
bnQqIGVsZW1lbnQsIFBhc3NSZWZQdHI8RnJhbWU+IG5ld0YKICAgICBpZiAob2xkRG9jdW1lbnQg
JiYgb2xkRG9jdW1lbnQgIT0gbmV3RG9jdW1lbnQucHRyKCkpCiAgICAgICAgIG9sZERvY3VtZW50
LT5zZXRGb2N1c2VkRWxlbWVudChudWxscHRyKTsKIAotICAgIGlmIChuZXdGb2N1c2VkRnJhbWUg
JiYgIW5ld0ZvY3VzZWRGcmFtZS0+cGFnZSgpKSB7CisgICAgaWYgKCFuZXdGb2N1c2VkRnJhbWUu
cGFnZSgpKSB7CiAgICAgICAgIHNldEZvY3VzZWRGcmFtZShudWxscHRyKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KLSAgICBzZXRGb2N1c2VkRnJhbWUobmV3Rm9jdXNlZEZyYW1lKTsK
KyAgICBzZXRGb2N1c2VkRnJhbWUoJm5ld0ZvY3VzZWRGcmFtZSk7CiAKICAgICBSZWY8RWxlbWVu
dD4gcHJvdGVjdCgqZWxlbWVudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5o
CmluZGV4IGVjYmUzOTYxZGExZjViMDA1YjAxYmNjODI1MTZiNTBhMjdhOGUyYWUuLmM2ZGNmMjIy
MDkzNWVjYmIxZmNiZDQyMjFmMmNhMmQ5NDczZjc3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1
c0NvbnRyb2xsZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zMCwxMiArMzAsMTAgQEAKICNpbmNsdWRlICJMYXlvdXRSZWN0
LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1
ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1zdHJ1Y3QgRm9jdXNDYW5kaWRhdGU7CiBjbGFzcyBDb250YWluZXJO
b2RlOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OwpAQCAtNDgsMTkgKzQ2LDIxIEBA
IGNsYXNzIE5vZGU7CiBjbGFzcyBQYWdlOwogY2xhc3MgVHJlZVNjb3BlOwogCitzdHJ1Y3QgRm9j
dXNDYW5kaWRhdGU7CisKIGNsYXNzIEZvY3VzQ29udHJvbGxlciB7Ci0gICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoRm9jdXNDb250cm9sbGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgRm9jdXNDb250
cm9sbGVyKFBhZ2UmLCBBY3Rpdml0eVN0YXRlOjpGbGFncyk7CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldEZvY3VzZWRGcmFtZShQYXNzUmVmUHRyPEZyYW1lPik7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRGb2N1c2VkRnJhbWUoRnJhbWUqKTsKICAgICBGcmFtZSogZm9jdXNlZEZy
YW1lKCkgY29uc3QgeyByZXR1cm4gbV9mb2N1c2VkRnJhbWUuZ2V0KCk7IH0KICAgICBXRUJDT1JF
X0VYUE9SVCBGcmFtZSYgZm9jdXNlZE9yTWFpbkZyYW1lKCkgY29uc3Q7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIHNldEluaXRpYWxGb2N1cyhGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVu
dCopOwogICAgIGJvb2wgYWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50
JiwgYm9vbCBpbml0aWFsRm9jdXMgPSBmYWxzZSk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBib29s
IHNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqLCBQYXNzUmVmUHRyPEZyYW1lPiwgRm9jdXNEaXJl
Y3Rpb24gPSBGb2N1c0RpcmVjdGlvbk5vbmUpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0
Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCosIEZyYW1lJiwgRm9jdXNEaXJlY3Rpb24gPSBGb2N1c0Rp
cmVjdGlvbk5vbmUpOwogCiAgICAgdm9pZCBzZXRBY3Rpdml0eVN0YXRlKEFjdGl2aXR5U3RhdGU6
OkZsYWdzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBlZGEzY2Y2YjRiZTNlOTkyNWIyNTFj
NTY3YTg0ZTQ5ZjcxMDA2ZWNmLi44NzhlZTFjYjIyMDM2NGQ0ODA0YzEzZDQwYTJjODgxMmY3OTkz
MmE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtNzc3LDcgKzc3Nyw3IEBAIHZvaWQgRnJhbWU6
OndpbGxEZXRhY2hQYWdlKCkKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBpZiAoV2ViVGhyZWFk
Q291bnRPZk9ic2VydmVkQ29udGVudE1vZGlmaWVycygpID4gMCAmJiBtX3BhZ2UpCi0gICAgICAg
IG1fcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKHRo
aXMpOworICAgICAgICBtX3BhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmNsZWFyQ29udGVudENoYW5n
ZU9ic2VydmVycygqdGhpcyk7CiAjZW5kaWYKIAogICAgIHNjcmlwdCgpLmNsZWFyU2NyaXB0T2Jq
ZWN0cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCmluZGV4IGRlZWIyM2I3NTg0NDliYmZl
NWM1NWYxOWQ4MGQwNDkyODI5MTE3YWEuLmZkY2YzNTYwZWU0YjE5ZmE5ODA2ZDQ5MzQwYTIzMzgx
YTliYWJlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAx
MC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC02MywyNSArNjMsNiBAQCBG
cmFtZSogRnJhbWVUcmVlOjpwYXJlbnQoKSBjb25zdAogICAgIHJldHVybiBtX3BhcmVudDsKIH0K
IAotYm9vbCBGcmFtZVRyZWU6OnRyYW5zZmVyQ2hpbGQoUGFzc1JlZlB0cjxGcmFtZT4gY2hpbGQp
Ci17Ci0gICAgRnJhbWUqIG9sZFBhcmVudCA9IGNoaWxkLT50cmVlKCkucGFyZW50KCk7Ci0gICAg
aWYgKG9sZFBhcmVudCA9PSAmbV90aGlzRnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsgLy8g
fGNoaWxkfCBpcyBhbHJlYWR5IGEgY2hpbGQgb2YgbV90aGlzRnJhbWUuCi0KLSAgICBpZiAob2xk
UGFyZW50KQotICAgICAgICBvbGRQYXJlbnQtPnRyZWUoKS5yZW1vdmVDaGlsZChjaGlsZC5nZXQo
KSk7Ci0KLSAgICBBU1NFUlQoY2hpbGQtPnBhZ2UoKSA9PSBtX3RoaXNGcmFtZS5wYWdlKCkpOwot
ICAgIGNoaWxkLT50cmVlKCkubV9wYXJlbnQgPSAmbV90aGlzRnJhbWU7Ci0KLSAgICAvLyBXZSBu
ZWVkIHRvIGVuc3VyZSB0aGF0IHRoZSBjaGlsZCBzdGlsbCBoYXMgYSB1bmlxdWUgZnJhbWUgbmFt
ZSB3aXRoIHJlc3BlY3QgdG8gaXRzIG5ldyBwYXJlbnQuCi0gICAgY2hpbGQtPnRyZWUoKS5zZXRO
YW1lKGNoaWxkLT50cmVlKCkubV9uYW1lKTsKLQotICAgIGFjdHVhbGx5QXBwZW5kQ2hpbGQoY2hp
bGQpOyAvLyBOb3RlLCBvbiByZXR1cm4gfGNoaWxkfCBpcyBudWxsLgotICAgIHJldHVybiB0cnVl
OwotfQotCiB1bnNpZ25lZCBGcmFtZVRyZWU6OmluZGV4SW5QYXJlbnQoKSBjb25zdAogewogICAg
IGlmICghbV9wYXJlbnQpCkBAIC05NSw0NiArNzYsMzIgQEAgdW5zaWduZWQgRnJhbWVUcmVlOjpp
bmRleEluUGFyZW50KCkgY29uc3QKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
fQogCi12b2lkIEZyYW1lVHJlZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxGcmFtZT4gY2hpbGQp
Ci17Ci0gICAgQVNTRVJUKGNoaWxkLT5wYWdlKCkgPT0gbV90aGlzRnJhbWUucGFnZSgpKTsKLSAg
ICBjaGlsZC0+dHJlZSgpLm1fcGFyZW50ID0gJm1fdGhpc0ZyYW1lOwotICAgIGFjdHVhbGx5QXBw
ZW5kQ2hpbGQoY2hpbGQpOyAvLyBOb3RlLCBvbiByZXR1cm4gfGNoaWxkfCBpcyBudWxsLgotfQot
Ci12b2lkIEZyYW1lVHJlZTo6YWN0dWFsbHlBcHBlbmRDaGlsZChQYXNzUmVmUHRyPEZyYW1lPiBj
aGlsZCkKK3ZvaWQgRnJhbWVUcmVlOjphcHBlbmRDaGlsZChGcmFtZSYgY2hpbGQpCiB7Ci0gICAg
QVNTRVJUKGNoaWxkLT50cmVlKCkubV9wYXJlbnQgPT0gJm1fdGhpc0ZyYW1lKTsKKyAgICBBU1NF
UlQoY2hpbGQucGFnZSgpID09IG1fdGhpc0ZyYW1lLnBhZ2UoKSk7CisgICAgY2hpbGQudHJlZSgp
Lm1fcGFyZW50ID0gJm1fdGhpc0ZyYW1lOwogICAgIEZyYW1lKiBvbGRMYXN0ID0gbV9sYXN0Q2hp
bGQ7Ci0gICAgbV9sYXN0Q2hpbGQgPSBjaGlsZC5nZXQoKTsKKyAgICBtX2xhc3RDaGlsZCA9ICZj
aGlsZDsKIAogICAgIGlmIChvbGRMYXN0KSB7Ci0gICAgICAgIGNoaWxkLT50cmVlKCkubV9wcmV2
aW91c1NpYmxpbmcgPSBvbGRMYXN0OwotICAgICAgICBvbGRMYXN0LT50cmVlKCkubV9uZXh0U2li
bGluZyA9IGNoaWxkOworICAgICAgICBjaGlsZC50cmVlKCkubV9wcmV2aW91c1NpYmxpbmcgPSBv
bGRMYXN0OworICAgICAgICBvbGRMYXN0LT50cmVlKCkubV9uZXh0U2libGluZyA9ICZjaGlsZDsK
ICAgICB9IGVsc2UKLSAgICAgICAgbV9maXJzdENoaWxkID0gY2hpbGQ7CisgICAgICAgIG1fZmly
c3RDaGlsZCA9ICZjaGlsZDsKIAogICAgIG1fc2NvcGVkQ2hpbGRDb3VudCA9IGludmFsaWRDb3Vu
dDsKIAogICAgIEFTU0VSVCghbV9sYXN0Q2hpbGQtPnRyZWUoKS5tX25leHRTaWJsaW5nKTsKIH0K
IAotdm9pZCBGcmFtZVRyZWU6OnJlbW92ZUNoaWxkKEZyYW1lKiBjaGlsZCkKK3ZvaWQgRnJhbWVU
cmVlOjpyZW1vdmVDaGlsZChGcmFtZSYgY2hpbGQpCiB7Ci0gICAgY2hpbGQtPnRyZWUoKS5tX3Bh
cmVudCA9IG51bGxwdHI7Ci0KLSAgICAvLyBTbGlnaHRseSB0cmlja3kgd2F5IHRvIHByZXZlbnQg
ZGVsZXRpbmcgdGhlIGNoaWxkIHVudGlsIHdlIGFyZSBkb25lIHdpdGggaXQsIHcvbwotICAgIC8v
IGV4dHJhIHJlZnMuIFRoZXNlIHN3YXBzIGxlYXZlIHRoZSBjaGlsZCBpbiBhIGNpcmN1bGFyIGxp
c3QgYnkgaXRzZWxmLiBDbGVhcmluZyBpdHMKLSAgICAvLyBwcmV2aW91cyBhbmQgbmV4dCB3aWxs
IHRoZW4gZmluYWxseSBkZXJlZiBpdC4KLQotICAgIFJlZlB0cjxGcmFtZT4mIG5ld0xvY2F0aW9u
Rm9yTmV4dCA9IG1fZmlyc3RDaGlsZCA9PSBjaGlsZCA/IG1fZmlyc3RDaGlsZCA6IGNoaWxkLT50
cmVlKCkubV9wcmV2aW91c1NpYmxpbmctPnRyZWUoKS5tX25leHRTaWJsaW5nOwotICAgIEZyYW1l
KiYgbmV3TG9jYXRpb25Gb3JQcmV2aW91cyA9IG1fbGFzdENoaWxkID09IGNoaWxkID8gbV9sYXN0
Q2hpbGQgOiBjaGlsZC0+dHJlZSgpLm1fbmV4dFNpYmxpbmctPnRyZWUoKS5tX3ByZXZpb3VzU2li
bGluZzsKLSAgICBzd2FwKG5ld0xvY2F0aW9uRm9yTmV4dCwgY2hpbGQtPnRyZWUoKS5tX25leHRT
aWJsaW5nKTsKLSAgICAvLyBGb3Igc29tZSBpbmV4cGxpY2FibGUgcmVhc29uLCB0aGUgZm9sbG93
aW5nIGxpbmUgZG9lcyBub3QgY29tcGlsZSB3aXRob3V0IHRoZSBleHBsaWNpdCBzdGQ6OiBuYW1l
c3BhY2UKLSAgICBzdGQ6OnN3YXAobmV3TG9jYXRpb25Gb3JQcmV2aW91cywgY2hpbGQtPnRyZWUo
KS5tX3ByZXZpb3VzU2libGluZyk7CisgICAgRnJhbWUqJiBuZXdMb2NhdGlvbkZvclByZXZpb3Vz
ID0gbV9sYXN0Q2hpbGQgPT0gJmNoaWxkID8gbV9sYXN0Q2hpbGQgOiBjaGlsZC50cmVlKCkubV9u
ZXh0U2libGluZy0+dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nOworICAgIFJlZlB0cjxGcmFtZT4m
IG5ld0xvY2F0aW9uRm9yTmV4dCA9IG1fZmlyc3RDaGlsZCA9PSAmY2hpbGQgPyBtX2ZpcnN0Q2hp
bGQgOiBjaGlsZC50cmVlKCkubV9wcmV2aW91c1NpYmxpbmctPnRyZWUoKS5tX25leHRTaWJsaW5n
OwogCi0gICAgY2hpbGQtPnRyZWUoKS5tX3ByZXZpb3VzU2libGluZyA9IG51bGxwdHI7Ci0gICAg
Y2hpbGQtPnRyZWUoKS5tX25leHRTaWJsaW5nID0gbnVsbHB0cjsKKyAgICBjaGlsZC50cmVlKCku
bV9wYXJlbnQgPSBudWxscHRyOworICAgIG5ld0xvY2F0aW9uRm9yUHJldmlvdXMgPSBzdGQ6OmV4
Y2hhbmdlKGNoaWxkLnRyZWUoKS5tX3ByZXZpb3VzU2libGluZywgbnVsbHB0cik7CisgICAgbmV3
TG9jYXRpb25Gb3JOZXh0ID0gV1RGTW92ZShjaGlsZC50cmVlKCkubV9uZXh0U2libGluZyk7CiAK
ICAgICBtX3Njb3BlZENoaWxkQ291bnQgPSBpbnZhbGlkQ291bnQ7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVRyZWUuaAppbmRleCBhYjE2ZjBhZDYzOTYyNWFlMmQ3OGMxNzlmMTM1M2JiODRjOThhZTFhLi4z
Zjg3YzI3OWJkYzNhMDY0ZmU4ODgwOGI2MDNhMmFjZjdmMmRjN2ViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVUcmVlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxl
IEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNjUsMTAgKzY1LDkgQEAgcHVibGljOgog
ICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lKiB0cmF2ZXJzZU5leHRXaXRoV3JhcChib29sKSBjb25z
dDsKICAgICBXRUJDT1JFX0VYUE9SVCBGcmFtZSogdHJhdmVyc2VQcmV2aW91c1dpdGhXcmFwKGJv
b2wpIGNvbnN0OwogICAgIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwZW5kQ2hpbGQoUGFz
c1JlZlB0cjxGcmFtZT4pOwotICAgIGJvb2wgdHJhbnNmZXJDaGlsZChQYXNzUmVmUHRyPEZyYW1l
Pik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBlbmRDaGlsZChGcmFtZSYpOwogICAgIHZv
aWQgZGV0YWNoRnJvbVBhcmVudCgpIHsgbV9wYXJlbnQgPSBudWxscHRyOyB9Ci0gICAgdm9pZCBy
ZW1vdmVDaGlsZChGcmFtZSopOworICAgIHZvaWQgcmVtb3ZlQ2hpbGQoRnJhbWUmKTsKIAogICAg
IEZyYW1lKiBjaGlsZCh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CiAgICAgRnJhbWUqIGNoaWxkKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3Q7CkBAIC04Nyw3ICs4Niw2IEBAIHB1YmxpYzoK
IAogcHJpdmF0ZToKICAgICBGcmFtZSogZGVlcExhc3RDaGlsZCgpIGNvbnN0OwotICAgIHZvaWQg
YWN0dWFsbHlBcHBlbmRDaGlsZChQYXNzUmVmUHRyPEZyYW1lPik7CiAKICAgICBib29sIHNjb3Bl
ZEJ5KFRyZWVTY29wZSopIGNvbnN0OwogICAgIEZyYW1lKiBzY29wZWRDaGlsZCh1bnNpZ25lZCBp
bmRleCwgVHJlZVNjb3BlKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXgg
ZDk0YzlkOTIxYTRhNDE5NjNlYzhkYWU3NWMwYjRlMjMyNjA5NzhhMi4uNGQ2MzhhMmU3NTNjMWVh
YjdiZmMwZGM3OGM4NzM3ZDBlNTJjMmEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApA
QCAtNjc3LDcgKzY3Nyw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRDb250ZW50c1NpemUoY29uc3Qg
SW50U2l6ZSYgc2l6ZSkKIAogICAgIHVwZGF0ZVNjcm9sbGFibGVBcmVhU2V0KCk7CiAKLSAgICBw
YWdlLT5jaHJvbWUoKS5jb250ZW50c1NpemVDaGFuZ2VkKCZmcmFtZSgpLCBzaXplKTsgLy8gTm90
aWZ5IG9ubHkuCisgICAgcGFnZS0+Y2hyb21lKCkuY29udGVudHNTaXplQ2hhbmdlZChmcmFtZSgp
LCBzaXplKTsgLy8gTm90aWZ5IG9ubHkuCiAKICAgICBpZiAoZnJhbWUoKS5pc01haW5GcmFtZSgp
KSB7CiAgICAgICAgIGZyYW1lKCkubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9sbGVyKCku
ZGlkQ2hhbmdlRG9jdW1lbnRTaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L01haW5GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAKaW5kZXgg
NDgxNzRjYjI0MzdkNTk2MGIyMWM1MzgzNmM1MjcxYjY2MGQ4ODZjMS4uYTE3YmUzYmI1M2E4OTJm
NWJlNjJkNGM0ZDc3MjRlMGFkNGNmZDRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9NYWluRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcApA
QCAtOTIsNyArOTIsNyBAQCB2b2lkIE1haW5GcmFtZTo6c2VsZk9ubHlEZXJlZigpCiB2b2lkIE1h
aW5GcmFtZTo6ZHJvcENoaWxkcmVuKCkKIHsKICAgICB3aGlsZSAoRnJhbWUqIGNoaWxkID0gdHJl
ZSgpLmZpcnN0Q2hpbGQoKSkKLSAgICAgICAgdHJlZSgpLnJlbW92ZUNoaWxkKGNoaWxkKTsKKyAg
ICAgICAgdHJlZSgpLnJlbW92ZUNoaWxkKCpjaGlsZCk7CiB9CiAKICNpZiBQTEFURk9STShNQUMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcAppbmRleCBkYjE3ZTZiYWY3YWNlNGMyNzI2NWM4ZWRiMzcwNWZkYjE3
ZWIyMGJhLi43ZDZhZjExMGE0Y2Q0ZGFkZWNlZDI0NTkwNjYyNzMwNDJmM2QwYzVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKQEAgLTM2Myw3ICszNjMsNyBAQCBWaWV3cG9ydEFyZ3VtZW50cyBQYWdlOjp2
aWV3cG9ydEFyZ3VtZW50cygpIGNvbnN0CiBTY3JvbGxpbmdDb29yZGluYXRvciogUGFnZTo6c2Ny
b2xsaW5nQ29vcmRpbmF0b3IoKQogewogICAgIGlmICghbV9zY3JvbGxpbmdDb29yZGluYXRvciAm
JiBtX3NldHRpbmdzLT5zY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQoKSkgewotICAgICAgICBt
X3Njcm9sbGluZ0Nvb3JkaW5hdG9yID0gY2hyb21lKCkuY2xpZW50KCkuY3JlYXRlU2Nyb2xsaW5n
Q29vcmRpbmF0b3IodGhpcyk7CisgICAgICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBjaHJv
bWUoKS5jbGllbnQoKS5jcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcigqdGhpcyk7CiAgICAgICAg
IGlmICghbV9zY3JvbGxpbmdDb29yZGluYXRvcikKICAgICAgICAgICAgIG1fc2Nyb2xsaW5nQ29v
cmRpbmF0b3IgPSBTY3JvbGxpbmdDb29yZGluYXRvcjo6Y3JlYXRlKHRoaXMpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAKaW5kZXggZTcwYmNhMDUyM2YwZTM5NWY4NzdmZjYz
YzEyYWEzOTU1N2FkZWQ3Yy4uMmNhODZmOTgyODA4MTYzNzg0ZjJhYjdmYTQzZWVlYmJlZTM3OTVm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAKQEAgLTI3NCw3ICsyNzQsNyBAQCB2
b2lkIFBhZ2VPdmVybGF5OjpmYWRlQW5pbWF0aW9uVGltZXJGaXJlZCgpCiAKICAgICAgICAgLy8g
SWYgdGhpcyB3YXMgYSBmYWRlIG91dCwgdW5pbnN0YWxsIHRoZSBwYWdlIG92ZXJsYXkuCiAgICAg
ICAgIGlmICh3YXNGYWRpbmdPdXQpCi0gICAgICAgICAgICBjb250cm9sbGVyKCktPnVuaW5zdGFs
bFBhZ2VPdmVybGF5KHRoaXMsIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAg
ICAgICAgICAgIGNvbnRyb2xsZXIoKS0+dW5pbnN0YWxsUGFnZU92ZXJsYXkoKnRoaXMsIFBhZ2VP
dmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcAppbmRleCA4NjZiODcwY2I4ZTRkMWI3
ZTVkMjFiM2IxNmFjMWU1YzZiM2FiZjgzLi4wNTQzYmQ1MzRkMjUxYmEzN2RjYTQyMWRhMTdlMmM5
OTNhMmRhZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xs
ZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTk1LDI3ICs5NSwyNSBAQCBzdGF0aWMgdm9pZCB1cGRhdGVPdmVybGF5R2VvbWV0cnko
UGFnZU92ZXJsYXkmIG92ZXJsYXksIEdyYXBoaWNzTGF5ZXImIGdyYXBoaWNzTAogICAgIGdyYXBo
aWNzTGF5ZXIuc2V0U2l6ZShvdmVybGF5RnJhbWUuc2l6ZSgpKTsKIH0KIAotdm9pZCBQYWdlT3Zl
cmxheUNvbnRyb2xsZXI6Omluc3RhbGxQYWdlT3ZlcmxheShQYXNzUmVmUHRyPFBhZ2VPdmVybGF5
PiBwYWdlT3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlIGZhZGVNb2RlKQordm9pZCBQYWdl
T3ZlcmxheUNvbnRyb2xsZXI6Omluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSYgb3Zlcmxh
eSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlIGZhZGVNb2RlKQogewogICAgIGNyZWF0ZVJvb3RMYXll
cnNJZk5lZWRlZCgpOwogCi0gICAgUmVmUHRyPFBhZ2VPdmVybGF5PiBvdmVybGF5ID0gcGFnZU92
ZXJsYXk7Ci0KLSAgICBpZiAobV9wYWdlT3ZlcmxheXMuY29udGFpbnMob3ZlcmxheSkpCisgICAg
aWYgKG1fcGFnZU92ZXJsYXlzLmNvbnRhaW5zKCZvdmVybGF5KSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgbV9wYWdlT3ZlcmxheXMuYXBwZW5kKG92ZXJsYXkpOworICAgIG1fcGFnZU92ZXJsYXlz
LmFwcGVuZCgmb3ZlcmxheSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4g
bGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUobV9tYWluRnJhbWUucGFnZSgpLT5jaHJvbWUo
KS5jbGllbnQoKS5ncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAgICAgbGF5ZXItPnNl
dEFuY2hvclBvaW50KEZsb2F0UG9pbnQzRCgpKTsKLSAgICBsYXllci0+c2V0QmFja2dyb3VuZENv
bG9yKG92ZXJsYXktPmJhY2tncm91bmRDb2xvcigpKTsKKyAgICBsYXllci0+c2V0QmFja2dyb3Vu
ZENvbG9yKG92ZXJsYXkuYmFja2dyb3VuZENvbG9yKCkpOwogI2lmbmRlZiBOREVCVUcKICAgICBs
YXllci0+c2V0TmFtZSgiUGFnZSBPdmVybGF5IGNvbnRlbnQiKTsKICNlbmRpZgogCiAgICAgdXBk
YXRlU2V0dGluZ3NGb3JMYXllcigqbGF5ZXIpOwogCi0gICAgc3dpdGNoIChvdmVybGF5LT5vdmVy
bGF5VHlwZSgpKSB7CisgICAgc3dpdGNoIChvdmVybGF5Lm92ZXJsYXlUeXBlKCkpIHsKICAgICBj
YXNlIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZTo6VmlldzoKICAgICAgICAgbV92aWV3T3Zlcmxh
eVJvb3RMYXllci0+YWRkQ2hpbGQobGF5ZXIuZ2V0KCkpOwogICAgICAgICBicmVhazsKQEAgLTEy
NSwzMyArMTIzLDMzIEBAIHZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjppbnN0YWxsUGFnZU92
ZXJsYXkoUGFzc1JlZlB0cjxQYWdlT3ZlcmxheT4gcGFnZU92ZXJsCiAgICAgfQogCiAgICAgR3Jh
cGhpY3NMYXllciYgcmF3TGF5ZXIgPSAqbGF5ZXI7Ci0gICAgbV9vdmVybGF5R3JhcGhpY3NMYXll
cnMuc2V0KG92ZXJsYXkuZ2V0KCksIFdURk1vdmUobGF5ZXIpKTsKKyAgICBtX292ZXJsYXlHcmFw
aGljc0xheWVycy5zZXQoJm92ZXJsYXksIFdURk1vdmUobGF5ZXIpKTsKIAogICAgIHVwZGF0ZUZv
cmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0aW9uVXBkYXRlcygpOwogCi0gICAgb3Zlcmxh
eS0+c2V0UGFnZShtX21haW5GcmFtZS5wYWdlKCkpOworICAgIG92ZXJsYXkuc2V0UGFnZShtX21h
aW5GcmFtZS5wYWdlKCkpOwogCiAgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbV9tYWlu
RnJhbWUudmlldygpKQogICAgICAgICBmcmFtZVZpZXctPmVudGVyQ29tcG9zaXRpbmdNb2RlKCk7
CiAKLSAgICB1cGRhdGVPdmVybGF5R2VvbWV0cnkoKm92ZXJsYXksIHJhd0xheWVyKTsKKyAgICB1
cGRhdGVPdmVybGF5R2VvbWV0cnkob3ZlcmxheSwgcmF3TGF5ZXIpOwogCiAgICAgaWYgKGZhZGVN
b2RlID09IFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSkKLSAgICAgICAgb3ZlcmxheS0+c3Rh
cnRGYWRlSW5BbmltYXRpb24oKTsKKyAgICAgICAgb3ZlcmxheS5zdGFydEZhZGVJbkFuaW1hdGlv
bigpOwogfQogCi12b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0YWxsUGFnZU92ZXJs
YXkoUGFnZU92ZXJsYXkqIG92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSBmYWRlTW9kZSkK
K3ZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjp1bmluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3Zl
cmxheSYgb3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlIGZhZGVNb2RlKQogewogICAgIGlm
IChmYWRlTW9kZSA9PSBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpIHsKLSAgICAgICAgb3Zl
cmxheS0+c3RhcnRGYWRlT3V0QW5pbWF0aW9uKCk7CisgICAgICAgIG92ZXJsYXkuc3RhcnRGYWRl
T3V0QW5pbWF0aW9uKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBvdmVybGF5LT5z
ZXRQYWdlKG51bGxwdHIpOworICAgIG92ZXJsYXkuc2V0UGFnZShudWxscHRyKTsKIAotICAgIG1f
b3ZlcmxheUdyYXBoaWNzTGF5ZXJzLnRha2Uob3ZlcmxheSktPnJlbW92ZUZyb21QYXJlbnQoKTsK
KyAgICBtX292ZXJsYXlHcmFwaGljc0xheWVycy50YWtlKCZvdmVybGF5KS0+cmVtb3ZlRnJvbVBh
cmVudCgpOwogCi0gICAgYm9vbCByZW1vdmVkID0gbV9wYWdlT3ZlcmxheXMucmVtb3ZlRmlyc3Qo
b3ZlcmxheSk7CisgICAgYm9vbCByZW1vdmVkID0gbV9wYWdlT3ZlcmxheXMucmVtb3ZlRmlyc3Qo
Jm92ZXJsYXkpOwogICAgIEFTU0VSVF9VTlVTRUQocmVtb3ZlZCwgcmVtb3ZlZCk7CiAKICAgICB1
cGRhdGVGb3JjZVN5bmNocm9ub3VzU2Nyb2xsTGF5ZXJQb3NpdGlvblVwZGF0ZXMoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCmluZGV4IDM5NzgwOTgyMDA4
YzY1MWYyODhiNzk3NmIxYjkzMjk1YWM1MmU3YTQuLjYzODk0N2M2MTg0NmFiMDY3NWNlODAzYWJm
MTc2YjZiNzFkZDhjMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJs
YXlDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRy
b2xsZXIuaApAQCAtMzksNyArMzksNiBAQCBjbGFzcyBQYWdlOwogY2xhc3MgUGxhdGZvcm1Nb3Vz
ZUV2ZW50OwogCiBjbGFzcyBQYWdlT3ZlcmxheUNvbnRyb2xsZXIgZmluYWwgOiBwdWJsaWMgR3Jh
cGhpY3NMYXllckNsaWVudCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZU92ZXJsYXlD
b250cm9sbGVyKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBQ
YWdlT3ZlcmxheUNvbnRyb2xsZXIoTWFpbkZyYW1lJik7CkBAIC01MCw4ICs0OSw4IEBAIHB1Ymxp
YzoKIAogICAgIGNvbnN0IFZlY3RvcjxSZWZQdHI8UGFnZU92ZXJsYXk+PiYgcGFnZU92ZXJsYXlz
KCkgY29uc3QgeyByZXR1cm4gbV9wYWdlT3ZlcmxheXM7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgaW5zdGFsbFBhZ2VPdmVybGF5KFBhc3NSZWZQdHI8UGFnZU92ZXJsYXk+LCBQYWdlT3Zl
cmxheTo6RmFkZU1vZGUpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5pbnN0YWxsUGFnZU92
ZXJsYXkoUGFnZU92ZXJsYXkqLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5JiwgUGFnZU92ZXJsYXk6
OkZhZGVNb2RlKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuaW5zdGFsbFBhZ2VPdmVybGF5
KFBhZ2VPdmVybGF5JiwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlKTsKIAogICAgIHZvaWQgc2V0UGFn
ZU92ZXJsYXlOZWVkc0Rpc3BsYXkoUGFnZU92ZXJsYXkmLCBjb25zdCBJbnRSZWN0Jik7CiAgICAg
dm9pZCBzZXRQYWdlT3ZlcmxheU9wYWNpdHkoUGFnZU92ZXJsYXkmLCBmbG9hdCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCmluZGV4IDdmZmYxMjNmZjY0MTM3ODI1YzhkMTk4
MDNkYmVjZjM5Yzg2MzY4YWYuLjkzZDM3NzdhYTFhOWYwNzlmNzEwNGM5NzQ1ZDdkYTFjY2JiZmQ1
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCkBAIC04MCw4ICs4MCw3
IEBAIHN0YXRpYyBib29sIGlzQ2hhcnNldFNwZWNpZnlpbmdOb2RlKGNvbnN0IE5vZGUmIG5vZGUp
CiAgICAgICAgICAgICBhdHRyaWJ1dGVzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihhdHRyaWJ1dGUu
bmFtZSgpLnRvU3RyaW5nKCksIGF0dHJpYnV0ZS52YWx1ZSgpLnN0cmluZygpKSk7CiAgICAgICAg
IH0KICAgICB9Ci0gICAgVGV4dEVuY29kaW5nIHRleHRFbmNvZGluZyA9IEhUTUxNZXRhQ2hhcnNl
dFBhcnNlcjo6ZW5jb2RpbmdGcm9tTWV0YUF0dHJpYnV0ZXMoYXR0cmlidXRlcyk7Ci0gICAgcmV0
dXJuIHRleHRFbmNvZGluZy5pc1ZhbGlkKCk7CisgICAgcmV0dXJuIEhUTUxNZXRhQ2hhcnNldFBh
cnNlcjo6ZW5jb2RpbmdGcm9tTWV0YUF0dHJpYnV0ZXMoYXR0cmlidXRlcykuaXNWYWxpZCgpOwog
fQogCiBzdGF0aWMgYm9vbCBzaG91bGRJZ25vcmVFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1l
bnQpCkBAIC05NSwxMCArOTQsOSBAQCBzdGF0aWMgY29uc3QgUXVhbGlmaWVkTmFtZSYgZnJhbWVP
d25lclVSTEF0dHJpYnV0ZU5hbWUoY29uc3QgSFRNTEZyYW1lT3duZXJFbGVtZQogICAgIHJldHVy
biBpczxIVE1MT2JqZWN0RWxlbWVudD4oZnJhbWVPd25lcikgPyBIVE1MTmFtZXM6OmRhdGFBdHRy
IDogSFRNTE5hbWVzOjpzcmNBdHRyOwogfQogCi1jbGFzcyBTZXJpYWxpemVyTWFya3VwQWNjdW11
bGF0b3IgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6TWFya3VwQWNjdW11bGF0b3IgeworY2xhc3Mg
UGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvciBmaW5hbCA6IHB1Ymxp
YyBXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRvciB7CiBwdWJsaWM6CiAgICAgU2VyaWFsaXplck1h
cmt1cEFjY3VtdWxhdG9yKFBhZ2VTZXJpYWxpemVyJiwgRG9jdW1lbnQmLCBWZWN0b3I8Tm9kZSo+
Kik7Ci0gICAgdmlydHVhbCB+U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yKCk7CiAKIHByaXZh
dGU6CiAgICAgUGFnZVNlcmlhbGl6ZXImIG1fc2VyaWFsaXplcjsKQEAgLTExMCw3ICsxMDgsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgYXBwZW5kRW5kVGFnKGNvbnN0IEVsZW1lbnQmKSBvdmVycmlk
ZTsKIH07CiAKLVNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6U2VyaWFsaXplck1hcmt1cEFj
Y3VtdWxhdG9yKFBhZ2VTZXJpYWxpemVyJiBzZXJpYWxpemVyLCBEb2N1bWVudCYgZG9jdW1lbnQs
IFZlY3RvcjxOb2RlKj4qIG5vZGVzKQorUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJrdXBB
Y2N1bXVsYXRvcjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yKFBhZ2VTZXJpYWxpemVyJiBz
ZXJpYWxpemVyLCBEb2N1bWVudCYgZG9jdW1lbnQsIFZlY3RvcjxOb2RlKj4qIG5vZGVzKQogICAg
IDogTWFya3VwQWNjdW11bGF0b3Iobm9kZXMsIFJlc29sdmVBbGxVUkxzKQogICAgICwgbV9zZXJp
YWxpemVyKHNlcmlhbGl6ZXIpCiAgICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQpAQCAtMTIwLDE4
ICsxMTgsMTQgQEAgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjpTZXJpYWxpemVyTWFya3Vw
QWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXImIHNlcmlhbGkKICAgICAgICAgYXBwZW5kU3RyaW5n
KCI8P3htbCB2ZXJzaW9uPVwiIiArIG1fZG9jdW1lbnQueG1sVmVyc2lvbigpICsgIlwiIGVuY29k
aW5nPVwiIiArIG1fZG9jdW1lbnQuY2hhcnNldCgpICsgIlwiPz4iKTsKIH0KIAotU2VyaWFsaXpl
ck1hcmt1cEFjY3VtdWxhdG9yOjp+U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yKCkKLXsKLX0K
LQotdm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQoU3RyaW5nQnVp
bGRlciYgb3V0LCBjb25zdCBUZXh0JiB0ZXh0KQordm9pZCBQYWdlU2VyaWFsaXplcjo6U2VyaWFs
aXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0KFN0cmluZ0J1aWxkZXImIG91dCwgY29u
c3QgVGV4dCYgdGV4dCkKIHsKICAgICBFbGVtZW50KiBwYXJlbnQgPSB0ZXh0LnBhcmVudEVsZW1l
bnQoKTsKICAgICBpZiAocGFyZW50ICYmICFzaG91bGRJZ25vcmVFbGVtZW50KCpwYXJlbnQpKQog
ICAgICAgICBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kVGV4dChvdXQsIHRleHQpOwogfQogCi12
b2lkIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRWxlbWVudChTdHJpbmdCdWls
ZGVyJiBvdXQsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIE5hbWVzcGFjZXMqIG5hbWVzcGFjZXMp
Cit2b2lkIFBhZ2VTZXJpYWxpemVyOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVu
ZEVsZW1lbnQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBFbGVtZW50JiBlbGVtZW50LCBOYW1l
c3BhY2VzKiBuYW1lc3BhY2VzKQogewogICAgIGlmICghc2hvdWxkSWdub3JlRWxlbWVudChlbGVt
ZW50KSkKICAgICAgICAgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVsZW1lbnQob3V0LCBlbGVt
ZW50LCBuYW1lc3BhY2VzKTsKQEAgLTE0NSw3ICsxMzksNyBAQCB2b2lkIFNlcmlhbGl6ZXJNYXJr
dXBBY2N1bXVsYXRvcjo6YXBwZW5kRWxlbWVudChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IEVs
ZW1lbgogICAgIC8vIEZJWE1FOiBGb3Igb2JqZWN0IChwbHVnaW5zKSB0YWdzIGFuZCB2aWRlbyB0
YWcgd2UgY291bGQgcmVwbGFjZSB0aGVtIGJ5IGFuIGltYWdlIG9mIHRoZWlyIGN1cnJlbnQgY29u
dGVudHMuCiB9CiAKLXZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRDdXN0
b21BdHRyaWJ1dGVzKFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgRWxlbWVudCYgZWxlbWVudCwg
TmFtZXNwYWNlcyogbmFtZXNwYWNlcykKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJN
YXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kQ3VzdG9tQXR0cmlidXRlcyhTdHJpbmdCdWlsZGVyJiBv
dXQsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIE5hbWVzcGFjZXMqIG5hbWVzcGFjZXMpCiB7CiAg
ICAgaWYgKCFpczxIVE1MRnJhbWVPd25lckVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICByZXR1
cm47CkBAIC0xNjQsMzIgKzE1OCwyMCBAQCB2b2lkIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRv
cjo6YXBwZW5kQ3VzdG9tQXR0cmlidXRlcyhTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbgogICAgIGFw
cGVuZEF0dHJpYnV0ZShvdXQsIGVsZW1lbnQsIEF0dHJpYnV0ZShmcmFtZU93bmVyVVJMQXR0cmli
dXRlTmFtZShmcmFtZU93bmVyKSwgdXJsLnN0cmluZygpKSwgbmFtZXNwYWNlcyk7CiB9CiAKLXZv
aWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoY29uc3QgRWxlbWVu
dCYgZWxlbWVudCkKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVs
YXRvcjo6YXBwZW5kRW5kVGFnKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgaWYgKCFz
aG91bGRJZ25vcmVFbGVtZW50KGVsZW1lbnQpKQogICAgICAgICBNYXJrdXBBY2N1bXVsYXRvcjo6
YXBwZW5kRW5kVGFnKGVsZW1lbnQpOwogfQogCi1QYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U6OlJl
c291cmNlKCkKLXsKLX0KLQotUGFnZVNlcmlhbGl6ZXI6OlJlc291cmNlOjpSZXNvdXJjZShjb25z
dCBVUkwmIHVybCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZm
ZXI+IGRhdGEpCi0gICAgOiB1cmwodXJsKQotICAgICwgbWltZVR5cGUobWltZVR5cGUpCi0gICAg
LCBkYXRhKGRhdGEpCi17Ci19Ci0KLVBhZ2VTZXJpYWxpemVyOjpQYWdlU2VyaWFsaXplcihWZWN0
b3I8UGFnZVNlcmlhbGl6ZXI6OlJlc291cmNlPiogcmVzb3VyY2VzKQorUGFnZVNlcmlhbGl6ZXI6
OlBhZ2VTZXJpYWxpemVyKFZlY3RvcjxQYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U+JiByZXNvdXJj
ZXMpCiAgICAgOiBtX3Jlc291cmNlcyhyZXNvdXJjZXMpCi0gICAgLCBtX2JsYW5rRnJhbWVDb3Vu
dGVyKDApCiB7CiB9CiAKLXZvaWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShQYWdlKiBwYWdl
KQordm9pZCBQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplKFBhZ2UmIHBhZ2UpCiB7Ci0gICAgc2Vy
aWFsaXplRnJhbWUoJnBhZ2UtPm1haW5GcmFtZSgpKTsKKyAgICBzZXJpYWxpemVGcmFtZSgmcGFn
ZS5tYWluRnJhbWUoKSk7CiB9CiAKIHZvaWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUZyYW1l
KEZyYW1lKiBmcmFtZSkKQEAgLTIxOCw3ICsyMDAsNyBAQCB2b2lkIFBhZ2VTZXJpYWxpemVyOjpz
ZXJpYWxpemVGcmFtZShGcmFtZSogZnJhbWUpCiAgICAgfQogICAgIFN0cmluZyB0ZXh0ID0gYWNj
dW11bGF0b3Iuc2VyaWFsaXplTm9kZXMoKmRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKSwgSW5j
bHVkZU5vZGUpOwogICAgIENTdHJpbmcgZnJhbWVIVE1MID0gdGV4dEVuY29kaW5nLmVuY29kZSh0
ZXh0LCBFbnRpdGllc0ZvclVuZW5jb2RhYmxlcyk7Ci0gICAgbV9yZXNvdXJjZXMtPmFwcGVuZChS
ZXNvdXJjZSh1cmwsIGRvY3VtZW50LT5zdWdnZXN0ZWRNSU1FVHlwZSgpLCBTaGFyZWRCdWZmZXI6
OmNyZWF0ZShmcmFtZUhUTUwuZGF0YSgpLCBmcmFtZUhUTUwubGVuZ3RoKCkpKSk7CisgICAgbV9y
ZXNvdXJjZXMuYXBwZW5kKHsgdXJsLCBkb2N1bWVudC0+c3VnZ2VzdGVkTUlNRVR5cGUoKSwgU2hh
cmVkQnVmZmVyOjpjcmVhdGUoZnJhbWVIVE1MLmRhdGEoKSwgZnJhbWVIVE1MLmxlbmd0aCgpKSB9
KTsKICAgICBtX3Jlc291cmNlVVJMcy5hZGQodXJsKTsKIAogICAgIGZvciAoYXV0byYgbm9kZSA6
IG5vZGVzKSB7CkBAIC0yODQsNyArMjY2LDcgQEAgdm9pZCBQYWdlU2VyaWFsaXplcjo6c2VyaWFs
aXplQ1NTU3R5bGVTaGVldChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0LCBjb25zdCBVUkwKICAg
ICAgICAgQVNTRVJUKHRleHRFbmNvZGluZy5pc1ZhbGlkKCkpOwogICAgICAgICBTdHJpbmcgdGV4
dFN0cmluZyA9IGNzc1RleHQudG9TdHJpbmcoKTsKICAgICAgICAgQ1N0cmluZyB0ZXh0ID0gdGV4
dEVuY29kaW5nLmVuY29kZSh0ZXh0U3RyaW5nLCBFbnRpdGllc0ZvclVuZW5jb2RhYmxlcyk7Ci0g
ICAgICAgIG1fcmVzb3VyY2VzLT5hcHBlbmQoUmVzb3VyY2UodXJsLCBTdHJpbmcoInRleHQvY3Nz
IiksIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHRleHQuZGF0YSgpLCB0ZXh0Lmxlbmd0aCgpKSkpOwor
ICAgICAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIEFTQ0lJTGl0ZXJhbCB7ICJ0ZXh0L2Nz
cyIgfSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUodGV4dC5kYXRhKCksIHRleHQubGVuZ3RoKCkpIH0p
OwogICAgICAgICBtX3Jlc291cmNlVVJMcy5hZGQodXJsKTsKICAgICB9CiB9CkBAIC0zMDYsOCAr
Mjg4LDcgQEAgdm9pZCBQYWdlU2VyaWFsaXplcjo6YWRkSW1hZ2VUb1Jlc291cmNlcyhDYWNoZWRJ
bWFnZSogaW1hZ2UsIFJlbmRlckVsZW1lbnQqIGltYWcKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIFN0cmluZyBtaW1lVHlwZSA9IGltYWdlLT5yZXNwb25zZSgpLm1pbWVUeXBlKCk7Ci0g
ICAgbV9yZXNvdXJjZXMtPmFwcGVuZChSZXNvdXJjZSh1cmwsIG1pbWVUeXBlLCBkYXRhKSk7Cisg
ICAgbV9yZXNvdXJjZXMuYXBwZW5kKHsgdXJsLCBpbWFnZS0+cmVzcG9uc2UoKS5taW1lVHlwZSgp
LCBXVEZNb3ZlKGRhdGEpIH0pOwogICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwpOwogfQogCkBA
IC0zMzQsMjAgKzMxNSwxOCBAQCB2b2lkIFBhZ2VTZXJpYWxpemVyOjpyZXRyaWV2ZVJlc291cmNl
c0ZvclByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBzdHlsZQogICAgICAgICBpZiAo
IWltYWdlKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgVVJMIHVybCA9IGRvY3Vt
ZW50LT5jb21wbGV0ZVVSTChpbWFnZS0+dXJsKCkpOwotICAgICAgICBhZGRJbWFnZVRvUmVzb3Vy
Y2VzKGltYWdlLCBudWxscHRyLCB1cmwpOworICAgICAgICBhZGRJbWFnZVRvUmVzb3VyY2VzKGlt
YWdlLCBudWxscHRyLCBkb2N1bWVudC0+Y29tcGxldGVVUkwoaW1hZ2UtPnVybCgpKSk7CiAgICAg
fQogfQogCiBVUkwgUGFnZVNlcmlhbGl6ZXI6OnVybEZvckJsYW5rRnJhbWUoRnJhbWUqIGZyYW1l
KQogewotICAgIEhhc2hNYXA8RnJhbWUqLCBVUkw+OjppdGVyYXRvciBpdGVyID0gbV9ibGFua0Zy
YW1lVVJMcy5maW5kKGZyYW1lKTsKKyAgICBhdXRvIGl0ZXIgPSBtX2JsYW5rRnJhbWVVUkxzLmZp
bmQoZnJhbWUpOwogICAgIGlmIChpdGVyICE9IG1fYmxhbmtGcmFtZVVSTHMuZW5kKCkpCiAgICAg
ICAgIHJldHVybiBpdGVyLT52YWx1ZTsKICAgICBTdHJpbmcgdXJsID0gInd5Y2l3eWc6Ly9mcmFt
ZS8iICsgU3RyaW5nOjpudW1iZXIobV9ibGFua0ZyYW1lQ291bnRlcisrKTsKICAgICBVUkwgZmFr
ZVVSTChQYXJzZWRVUkxTdHJpbmcsIHVybCk7CiAgICAgbV9ibGFua0ZyYW1lVVJMcy5hZGQoZnJh
bWUsIGZha2VVUkwpOwotCiAgICAgcmV0dXJuIGZha2VVUkw7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZVNlcmlhbGl6ZXIuaAppbmRleCBhMWI0N2I5ZGJiYzAzNGIxNzI5MzU0YzA4MjFhYWJkZDU3
NjJlZWFjLi5kNTc0M2JjNGY2MTQ2MjkyMjhjM2ZmZjBhNGJlZGNiODc1MGMxMWY5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5oCkBAIC0zMCw3ICszMCw2IEBACiAKICNwcmFnbWEg
b25jZQogCi0jaW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSAiVVJMSGFzaC5oIgogI2luY2x1ZGUg
IlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC01NiwyMCArNTUs
MjAgQEAgcHVibGljOgogICAgICAgICBVUkwgdXJsOwogICAgICAgICBTdHJpbmcgbWltZVR5cGU7
CiAgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGE7Ci0gICAgICAgIFJlc291cmNlKCk7
Ci0gICAgICAgIFJlc291cmNlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhKTsKICAgICB9OwogCi0gICAgZXhwbGljaXQgUGFn
ZVNlcmlhbGl6ZXIoVmVjdG9yPFJlc291cmNlPiopOworICAgIGV4cGxpY2l0IFBhZ2VTZXJpYWxp
emVyKFZlY3RvcjxSZXNvdXJjZT4mKTsKIAogICAgIC8vIEluaXRpYXRlcyB0aGUgc2VyaWFsaXph
dGlvbiBvZiB0aGUgZnJhbWUncyBwYWdlLiBBbGwgc2VyaWFsaXplZCBjb250ZW50IGFuZCByZXRy
aWV2ZWQKICAgICAvLyByZXNvdXJjZXMgYXJlIGFkZGVkIHRvIHRoZSBWZWN0b3IgcGFzc2VkIHRv
IHRoZSBjb25zdHJ1Y3Rvci4gVGhlIGZpcnN0IHJlc291cmNlIGluIHRoYXQKICAgICAvLyB2ZWN0
b3IgaXMgdGhlIHRvcCBmcmFtZSBzZXJpYWxpemVkIGNvbnRlbnQuCi0gICAgdm9pZCBzZXJpYWxp
emUoUGFnZSopOworICAgIHZvaWQgc2VyaWFsaXplKFBhZ2UmKTsKKworcHJpdmF0ZToKKyAgICBj
bGFzcyBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I7CiAKICAgICBVUkwgdXJsRm9yQmxhbmtG
cmFtZShGcmFtZSopOwogCi1wcml2YXRlOgogICAgIHZvaWQgc2VyaWFsaXplRnJhbWUoRnJhbWUq
KTsKIAogICAgIC8vIFNlcmlhbGl6ZXMgdGhlIHN0eWxlc2hlZXQgYmFjayB0byB0ZXh0IGFuZCBh
ZGRzIGl0IHRvIHRoZSByZXNvdXJjZXMgaWYgVVJMIGlzIG5vdC1lbXB0eS4KQEAgLTgwLDEwICs3
OSwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmV0cmlldmVSZXNvdXJjZXNGb3JQcm9wZXJ0aWVz
KGNvbnN0IFN0eWxlUHJvcGVydGllcyosIERvY3VtZW50Kik7CiAgICAgdm9pZCByZXRyaWV2ZVJl
c291cmNlc0ZvclJ1bGUoU3R5bGVSdWxlJiwgRG9jdW1lbnQqKTsKIAotICAgIFZlY3RvcjxSZXNv
dXJjZT4qIG1fcmVzb3VyY2VzOworICAgIFZlY3RvcjxSZXNvdXJjZT4mIG1fcmVzb3VyY2VzOwog
ICAgIExpc3RIYXNoU2V0PFVSTD4gbV9yZXNvdXJjZVVSTHM7CiAgICAgSGFzaE1hcDxGcmFtZSos
IFVSTD4gbV9ibGFua0ZyYW1lVVJMczsKLSAgICB1bnNpZ25lZCBtX2JsYW5rRnJhbWVDb3VudGVy
OworICAgIHVuc2lnbmVkIG1fYmxhbmtGcmFtZUNvdW50ZXIgeyAwIH07CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1h
bmNlRW50cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VFbnRyeS5oCmluZGV4
IGIzYTg0YTNhOWRjYTgyYmJmYThiMzQwNzRiZWNjNzNiNDg3ZWRhYWUuLmY4ZDZjYTdmZWM4MGMw
ZmZlNmE5ODZlYmZlNDgxZWIzNDUwYmNiYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VFbnRyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFu
Y2VFbnRyeS5oCkBAIC0zNCw3ICszNCw2IEBACiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAKICNp
bmNsdWRlICJQZXJmb3JtYW5jZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CkBAIC01NCw3ICs1Myw3IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgaXNNYXJrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0
dWFsIGJvb2wgaXNNZWFzdXJlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHN0YXRp
YyBib29sIHN0YXJ0VGltZUNvbXBhcmVMZXNzVGhhbihQYXNzUmVmUHRyPFBlcmZvcm1hbmNlRW50
cnk+IGEsIFBhc3NSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4gYikKKyAgICBzdGF0aWMgYm9vbCBz
dGFydFRpbWVDb21wYXJlTGVzc1RoYW4oY29uc3QgUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+JiBh
LCBjb25zdCBSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4mIGIpCiAgICAgewogICAgICAgICByZXR1
cm4gYS0+c3RhcnRUaW1lKCkgPCBiLT5zdGFydFRpbWUoKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAKaW5kZXggZDk1MzE4MDU0NzBmOGVl
Y2E0Mjg3NjNiN2NhMWVhYzUzZTE3M2I2Zi4uOWE2YzdhY2UzOTQwZWUzOGQ2NTdlYmJhMzVhMTgz
NjM4ODBhNDlhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVz
ZXJUaW1pbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGlt
aW5nLmNwcApAQCAtODcsMTQgKzg3LDE0IEBAIFVzZXJUaW1pbmc6OlVzZXJUaW1pbmcoUGVyZm9y
bWFuY2UmIHBlcmZvcm1hbmNlKQogewogfQogCi1zdGF0aWMgdm9pZCBpbnNlcnRQZXJmb3JtYW5j
ZUVudHJ5KFBlcmZvcm1hbmNlRW50cnlNYXAmIHBlcmZvcm1hbmNlRW50cnlNYXAsIFBhc3NSZWZQ
dHI8UGVyZm9ybWFuY2VFbnRyeT4gcGVyZm9ybWFuY2VFbnRyeSkKK3N0YXRpYyB2b2lkIGluc2Vy
dFBlcmZvcm1hbmNlRW50cnkoUGVyZm9ybWFuY2VFbnRyeU1hcCYgcGVyZm9ybWFuY2VFbnRyeU1h
cCwgUmVmPFBlcmZvcm1hbmNlRW50cnk+JiYgcGVyZm9ybWFuY2VFbnRyeSkKIHsKLSAgICBSZWZQ
dHI8UGVyZm9ybWFuY2VFbnRyeT4gZW50cnkgPSBwZXJmb3JtYW5jZUVudHJ5OwotICAgIFBlcmZv
cm1hbmNlRW50cnlNYXA6Oml0ZXJhdG9yIGl0ID0gcGVyZm9ybWFuY2VFbnRyeU1hcC5maW5kKGVu
dHJ5LT5uYW1lKCkpOworICAgIFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBlbnRyeSA9IFdURk1v
dmUocGVyZm9ybWFuY2VFbnRyeSk7CisgICAgYXV0byBpdCA9IHBlcmZvcm1hbmNlRW50cnlNYXAu
ZmluZChlbnRyeS0+bmFtZSgpKTsKICAgICBpZiAoaXQgIT0gcGVyZm9ybWFuY2VFbnRyeU1hcC5l
bmQoKSkKLSAgICAgICAgaXQtPnZhbHVlLmFwcGVuZChlbnRyeSk7CisgICAgICAgIGl0LT52YWx1
ZS5hcHBlbmQoV1RGTW92ZShlbnRyeSkpOwogICAgIGVsc2UKLSAgICAgICAgcGVyZm9ybWFuY2VF
bnRyeU1hcC5zZXQoZW50cnktPm5hbWUoKSwgVmVjdG9yPFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5
Pj57IGVudHJ5IH0pOworICAgICAgICBwZXJmb3JtYW5jZUVudHJ5TWFwLnNldChlbnRyeS0+bmFt
ZSgpLCBWZWN0b3I8UmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+PiB7IFdURk1vdmUoZW50cnkpIH0p
OwogfQogCiBzdGF0aWMgdm9pZCBjbGVhclBlZm9ybWFuY2VFbnRyaWVzKFBlcmZvcm1hbmNlRW50
cnlNYXAmIHBlcmZvcm1hbmNlRW50cnlNYXAsIGNvbnN0IFN0cmluZyYgbmFtZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZU92ZXJsYXkuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlT3ZlcmxheS5jcHAKaW5kZXggYWU4MTEyY2EyNjM5
OTE2ZjQxNDVlOTMyM2RlMGQyZjI4MTk1YWNiMC4uZTc0M2Q4ODBlMjBjYjFmZGY4NTcwMTYwZDBi
MWFkNTgzOTI5YjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVz
YWdlT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlT3Zl
cmxheS5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgUmVzb3VyY2VVc2FnZU92ZXJsYXk6On5SZXNvdXJj
ZVVzYWdlT3ZlcmxheSgpCiAKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIGhhY2sgc28gd2UgZG9u
J3QgdHJ5IHRvIHVuaW5zdGFsbCB0aGUgUGFnZU92ZXJsYXkgZHVyaW5nIFBhZ2UgZGVzdHJ1Y3Rp
b24uCiAgICAgaWYgKG1fcGFnZS5tYWluRnJhbWUoKS5wYWdlKCkpCi0gICAgICAgIG1fcGFnZS5t
YWluRnJhbWUoKS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSht
X292ZXJsYXkuZ2V0KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAg
ICAgbV9wYWdlLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBh
Z2VPdmVybGF5KCptX292ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsK
IH0KIAogdm9pZCBSZXNvdXJjZVVzYWdlT3ZlcmxheTo6aW5pdGlhbGl6ZSgpCkBAIC03Miw3ICs3
Miw3IEBAIHZvaWQgUmVzb3VyY2VVc2FnZU92ZXJsYXk6OmluaXRpYWxpemUoKQogCiAgICAgbV9v
dmVybGF5LT5zZXRGcmFtZShpbml0aWFsUmVjdCk7CiAgICAgbV9vdmVybGF5LT5zZXRTaG91bGRJ
Z25vcmVNb3VzZUV2ZW50c091dHNpZGVCb3VuZHMoZmFsc2UpOwotICAgIG1fcGFnZS5tYWluRnJh
bWUoKS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkobV9vdmVybGF5
LmdldCgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgbV9wYWdlLm1h
aW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSgqbV9v
dmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAgcGxhdGZvcm1J
bml0aWFsaXplKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0FuaW1hdGlvbkJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkJhc2UuaAppbmRleCA1YWRlMDAyMmViYzBkODRkMjc4NjhmZTI0YjU0ZDY2YTYxZTc3ZTU4
Li4yZGQwYzMwOWUwNTgyZjM1Y2Y5MzZmNTBhY2Q5YzFhYzM0MTYzNTVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCkBAIC0zMSw3ICszMSw2IEBA
CiAjaW5jbHVkZSAiQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgog
I2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0
aW9uQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRp
b25Db250cm9sbGVyLmNwcAppbmRleCA1ODg5NmRiMmYxZTlmZDQ1Mzc4YjM2N2MwMGVjNzE3YmIx
M2U0OTljLi40YzQwYzkyM2EyM2UyMzM4ODQwODQyZTg4M2NlMDVkYjFlN2JkZDFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVy
LmNwcApAQCAtMTA0LDcgKzEwNCw3IEBAIGJvb2wgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6
OmNsZWFyKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQogICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBy
ZW5kZXJlci5lbGVtZW50KCk7CiAKICAgICBtX2V2ZW50c1RvRGlzcGF0Y2gucmVtb3ZlQWxsTWF0
Y2hpbmcoW2VsZW1lbnRdIChjb25zdCBFdmVudFRvRGlzcGF0Y2gmIGluZm8pIHsKLSAgICAgICAg
cmV0dXJuIGluZm8uZWxlbWVudCA9PSBlbGVtZW50OworICAgICAgICByZXR1cm4gaW5mby5lbGVt
ZW50LnB0cigpID09IGVsZW1lbnQ7CiAgICAgfSk7CiAKICAgICBtX2VsZW1lbnRDaGFuZ2VzVG9E
aXNwYXRjaC5yZW1vdmVBbGxNYXRjaGluZyhbZWxlbWVudF0oYXV0byYgY3VycmVudEVsZW1lbnQp
IHsKQEAgLTIwMyw3ICsyMDMsNyBAQCB2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjpm
aXJlRXZlbnRzQW5kVXBkYXRlU3R5bGUoKQogICAgIC8vIGZpcmUgYWxsIHRoZSBldmVudHMKICAg
ICBWZWN0b3I8RXZlbnRUb0Rpc3BhdGNoPiBldmVudHNUb0Rpc3BhdGNoID0gV1RGTW92ZShtX2V2
ZW50c1RvRGlzcGF0Y2gpOwogICAgIGZvciAoYXV0byYgZXZlbnQgOiBldmVudHNUb0Rpc3BhdGNo
KSB7Ci0gICAgICAgIEVsZW1lbnQmIGVsZW1lbnQgPSAqZXZlbnQuZWxlbWVudDsKKyAgICAgICAg
RWxlbWVudCYgZWxlbWVudCA9IGV2ZW50LmVsZW1lbnQ7CiAgICAgICAgIGlmIChldmVudC5ldmVu
dFR5cGUgPT0gZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCkKICAgICAgICAgICAgIGVs
ZW1lbnQuZGlzcGF0Y2hFdmVudChUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0ZShldmVudC5ldmVudFR5
cGUsIGV2ZW50Lm5hbWUsIGV2ZW50LmVsYXBzZWRUaW1lLCBQc2V1ZG9FbGVtZW50Ojpwc2V1ZG9F
bGVtZW50TmFtZUZvckV2ZW50cyhlbGVtZW50LnBzZXVkb0lkKCkpKSk7CiAgICAgICAgIGVsc2UK
QEAgLTIyNSwyMSArMjI1LDE1IEBAIHZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OnN0
YXJ0VXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIoKQogICAgICAgICBtX3VwZGF0ZVN0eWxl
SWZOZWVkZWREaXNwYXRjaGVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAotdm9pZCBBbmltYXRpb25D
b250cm9sbGVyUHJpdmF0ZTo6YWRkRXZlbnRUb0Rpc3BhdGNoKFBhc3NSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgZG91YmxlIGVsYXBzZWRUaW1lKQordm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6
YWRkRXZlbnRUb0Rpc3BhdGNoKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEF0b21pY1N0cmluZyYg
ZXZlbnRUeXBlLCBjb25zdCBTdHJpbmcmIG5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSkKIHsKLSAg
ICBtX2V2ZW50c1RvRGlzcGF0Y2guZ3JvdyhtX2V2ZW50c1RvRGlzcGF0Y2guc2l6ZSgpKzEpOwot
ICAgIEV2ZW50VG9EaXNwYXRjaCYgZXZlbnQgPSBtX2V2ZW50c1RvRGlzcGF0Y2hbbV9ldmVudHNU
b0Rpc3BhdGNoLnNpemUoKS0xXTsKLSAgICBldmVudC5lbGVtZW50ID0gZWxlbWVudDsKLSAgICBl
dmVudC5ldmVudFR5cGUgPSBldmVudFR5cGU7Ci0gICAgZXZlbnQubmFtZSA9IG5hbWU7Ci0gICAg
ZXZlbnQuZWxhcHNlZFRpbWUgPSBlbGFwc2VkVGltZTsKLSAgICAKKyAgICBtX2V2ZW50c1RvRGlz
cGF0Y2guYXBwZW5kKHsgZWxlbWVudCwgZXZlbnRUeXBlLCBuYW1lLCBlbGFwc2VkVGltZSB9KTsK
ICAgICBzdGFydFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCk7CiB9CiAKLXZvaWQgQW5p
bWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKFJlZjxF
bGVtZW50PiYmIGVsZW1lbnQpCit2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRF
bGVtZW50Q2hhbmdlVG9EaXNwYXRjaChFbGVtZW50JiBlbGVtZW50KQogewotICAgIG1fZWxlbWVu
dENoYW5nZXNUb0Rpc3BhdGNoLmFwcGVuZChXVEZNb3ZlKGVsZW1lbnQpKTsKKyAgICBtX2VsZW1l
bnRDaGFuZ2VzVG9EaXNwYXRjaC5hcHBlbmQoZWxlbWVudCk7CiAgICAgQVNTRVJUKG1fZWxlbWVu
dENoYW5nZXNUb0Rpc3BhdGNoLmxhc3QoKS0+ZG9jdW1lbnQoKS5wYWdlQ2FjaGVTdGF0ZSgpID09
IERvY3VtZW50OjpOb3RJblBhZ2VDYWNoZSk7CiAgICAgc3RhcnRVcGRhdGVTdHlsZUlmTmVlZGVk
RGlzcGF0Y2hlcigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKaW5kZXggZmI5Y2M4MmI4MTUxN2Qw
YmEzMjczZjM4MGYyMGJjZDhhOTg2MWY1OC4uNDlhZDNmOWM5NTQyNTVjMzFkMGZiZmZhNGM2MjY4
YjA2NzkyMTdlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5p
bWF0aW9uQ29udHJvbGxlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCkBAIC0yOSwzMyArMjksMjEgQEAKICNw
cmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQW5pbWF0aW9uQmFzZS5oIgotI2luY2x1ZGUgIkNTU1By
b3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5j
bHVkZSA8d3RmL3RleHQvQXRvbWljU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQW5pbWF0aW9uQmFzZTsKIGNs
YXNzIENvbXBvc2l0ZUFuaW1hdGlvbjsKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgRWxlbWVudDsK
IGNsYXNzIEZyYW1lOwotY2xhc3MgUmVuZGVyRWxlbWVudDsKLWNsYXNzIFJlbmRlclN0eWxlOwog
Ci1lbnVtIFNldENoYW5nZWQgewotICAgIERvTm90Q2FsbFNldENoYW5nZWQgPSAwLAotICAgIENh
bGxTZXRDaGFuZ2VkID0gMQotfTsKK2VudW0gU2V0Q2hhbmdlZCB7IERvTm90Q2FsbFNldENoYW5n
ZWQsIENhbGxTZXRDaGFuZ2VkIH07CiAKIGNsYXNzIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRl
IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZSk7
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwog
cHVibGljOgogICAgIGV4cGxpY2l0IEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlKEZyYW1lJik7
CiAgICAgfkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlKCk7CkBAIC02OSw4ICs1Nyw4IEBAIHB1
YmxpYzoKIAogICAgIHZvaWQgdXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXJGaXJlZCgpOwog
ICAgIHZvaWQgc3RhcnRVcGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hlcigpOwotICAgIHZvaWQg
YWRkRXZlbnRUb0Rpc3BhdGNoKFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCwgY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgZG91YmxlIGVsYXBzZWRU
aW1lKTsKLSAgICB2b2lkIGFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKFJlZjxFbGVtZW50PiYm
KTsKKyAgICB2b2lkIGFkZEV2ZW50VG9EaXNwYXRjaChFbGVtZW50JiwgY29uc3QgQXRvbWljU3Ry
aW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKTsK
KyAgICB2b2lkIGFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKEVsZW1lbnQmKTsKIAogICAgIGJv
b2wgaGFzQW5pbWF0aW9ucygpIGNvbnN0IHsgcmV0dXJuICFtX2NvbXBvc2l0ZUFuaW1hdGlvbnMu
aXNFbXB0eSgpOyB9CiAKQEAgLTEzNCwyMSArMTIyLDE5IEBAIHByaXZhdGU6CiAgICAgVGltZXIg
bV9hbmltYXRpb25UaW1lcjsKICAgICBUaW1lciBtX3VwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRj
aGVyOwogICAgIEZyYW1lJiBtX2ZyYW1lOwotICAgIAotICAgIGNsYXNzIEV2ZW50VG9EaXNwYXRj
aCB7Ci0gICAgcHVibGljOgotICAgICAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudDsKKworICAg
IHN0cnVjdCBFdmVudFRvRGlzcGF0Y2ggeworICAgICAgICBSZWY8RWxlbWVudD4gZWxlbWVudDsK
ICAgICAgICAgQXRvbWljU3RyaW5nIGV2ZW50VHlwZTsKICAgICAgICAgU3RyaW5nIG5hbWU7CiAg
ICAgICAgIGRvdWJsZSBlbGFwc2VkVGltZTsKICAgICB9OwotICAgIAogICAgIFZlY3RvcjxFdmVu
dFRvRGlzcGF0Y2g+IG1fZXZlbnRzVG9EaXNwYXRjaDsKICAgICBWZWN0b3I8UmVmPEVsZW1lbnQ+
PiBtX2VsZW1lbnRDaGFuZ2VzVG9EaXNwYXRjaDsKICAgICAKICAgICBkb3VibGUgbV9iZWdpbkFu
aW1hdGlvblVwZGF0ZVRpbWU7CiAKLSAgICB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPEFuaW1hdGlv
bkJhc2U+PiBBbmltYXRpb25zU2V0OworICAgIHVzaW5nIEFuaW1hdGlvbnNTZXQgPSBIYXNoU2V0
PFJlZlB0cjxBbmltYXRpb25CYXNlPj47CiAgICAgQW5pbWF0aW9uc1NldCBtX2FuaW1hdGlvbnNX
YWl0aW5nRm9yU3R5bGU7CiAgICAgQW5pbWF0aW9uc1NldCBtX2FuaW1hdGlvbnNXYWl0aW5nRm9y
U3RhcnRUaW1lUmVzcG9uc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAppbmRleCA5ZjZiOTE3YzZlYzFjNmZlYmJh
Njk0MGExNjcwNWJkYmQ1YWM3NGNmLi44YzU0MDNhNGMxOTYzN2FhNjIxZGU2YTQwNzE2MDcxYWU3
ODM1MDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9w
ZXJ0eUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NT
UHJvcGVydHlBbmltYXRpb24uY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgc3RhdGljIGlubGluZSBU
cmFuc2Zvcm1PcGVyYXRpb25zIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltYXRp
b24sIGNvbnMKICAgICByZXR1cm4gdG8uYmxlbmRCeVVzaW5nTWF0cml4SW50ZXJwb2xhdGlvbihm
cm9tLCBwcm9ncmVzcywgaXM8UmVuZGVyQm94PigqYW5pbWF0aW9uLT5yZW5kZXJlcigpKSA/IGRv
d25jYXN0PFJlbmRlckJveD4oKmFuaW1hdGlvbi0+cmVuZGVyZXIoKSkuYm9yZGVyQm94UmVjdCgp
LnNpemUoKSA6IExheW91dFNpemUoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxD
bGlwUGF0aE9wZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBDbGlwUGF0
aE9wZXJhdGlvbiogZnJvbSwgQ2xpcFBhdGhPcGVyYXRpb24qIHRvLCBkb3VibGUgcHJvZ3Jlc3Mp
CitzdGF0aWMgaW5saW5lIFJlZlB0cjxDbGlwUGF0aE9wZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0
IEFuaW1hdGlvbkJhc2UqLCBDbGlwUGF0aE9wZXJhdGlvbiogZnJvbSwgQ2xpcFBhdGhPcGVyYXRp
b24qIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgaWYgKCFmcm9tIHx8ICF0bykKICAgICAg
ICAgcmV0dXJuIHRvOwpAQCAtMTQzLDcgKzE0Myw3IEBAIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0
cjxDbGlwUGF0aE9wZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBDbGlw
CiAgICAgcmV0dXJuIFNoYXBlQ2xpcFBhdGhPcGVyYXRpb246OmNyZWF0ZSh0b1NoYXBlLmJsZW5k
KGZyb21TaGFwZSwgcHJvZ3Jlc3MpKTsKIH0KIAotc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFNo
YXBlVmFsdWU+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgU2hhcGVWYWx1ZSogZnJv
bSwgU2hhcGVWYWx1ZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUgUmVmUHRy
PFNoYXBlVmFsdWU+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgU2hhcGVWYWx1ZSog
ZnJvbSwgU2hhcGVWYWx1ZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAoIWZyb20g
fHwgIXRvKQogICAgICAgICByZXR1cm4gdG87CkBAIC0xNjMsNyArMTYzLDcgQEAgc3RhdGljIGlu
bGluZSBQYXNzUmVmUHRyPFNoYXBlVmFsdWU+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNl
KiwgU2hhcGVWYWx1ZSoKICAgICByZXR1cm4gU2hhcGVWYWx1ZTo6Y3JlYXRlKHRvU2hhcGUuYmxl
bmQoZnJvbVNoYXBlLCBwcm9ncmVzcyksIHRvLT5jc3NCb3goKSk7CiB9CiAKLXN0YXRpYyBpbmxp
bmUgUGFzc1JlZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25C
YXNlKiBhbmltYXRpb24sIEZpbHRlck9wZXJhdGlvbiogZnJvbU9wLCBGaWx0ZXJPcGVyYXRpb24q
IHRvT3AsIGRvdWJsZSBwcm9ncmVzcywgYm9vbCBibGVuZFRvUGFzc3Rocm91Z2ggPSBmYWxzZSkK
K3N0YXRpYyBpbmxpbmUgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0IEFu
aW1hdGlvbkJhc2UqIGFuaW1hdGlvbiwgRmlsdGVyT3BlcmF0aW9uKiBmcm9tT3AsIEZpbHRlck9w
ZXJhdGlvbiogdG9PcCwgZG91YmxlIHByb2dyZXNzLCBib29sIGJsZW5kVG9QYXNzdGhyb3VnaCA9
IGZhbHNlKQogewogICAgIEFTU0VSVCh0b09wKTsKICAgICBpZiAodG9PcC0+YmxlbmRpbmdOZWVk
c1JlbmRlcmVyU2l6ZSgpKSB7CkBAIC0yMTgsNyArMjE4LDcgQEAgc3RhdGljIGlubGluZSBGaWx0
ZXJPcGVyYXRpb25zIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25zdCBG
aWx0ZXIKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8
U3R5bGVJbWFnZT4gYmxlbmRGaWx0ZXIoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgQ2FjaGVk
SW1hZ2UqIGltYWdlLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmcm9tLCBjb25zdCBGaWx0ZXJP
cGVyYXRpb25zJiB0bywgZG91YmxlIHByb2dyZXNzKQorc3RhdGljIGlubGluZSBSZWZQdHI8U3R5
bGVJbWFnZT4gYmxlbmRGaWx0ZXIoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgQ2FjaGVkSW1h
Z2UqIGltYWdlLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmcm9tLCBjb25zdCBGaWx0ZXJPcGVy
YXRpb25zJiB0bywgZG91YmxlIHByb2dyZXNzKQogewogICAgIEFTU0VSVChpbWFnZSk7CiAgICAg
RmlsdGVyT3BlcmF0aW9ucyBmaWx0ZXJSZXN1bHQgPSBibGVuZEZpbHRlck9wZXJhdGlvbnMoYW5p
bSwgZnJvbSwgdG8sIHByb2dyZXNzKTsKQEAgLTI3OCw3ICsyNzgsNyBAQCBzdGF0aWMgaW5saW5l
IFZlY3RvcjxTVkdMZW5ndGhWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBj
b25zdCBWZWN0bwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFzc1Jl
ZlB0cjxTdHlsZUltYWdlPiBjcm9zc2ZhZGVCbGVuZChjb25zdCBBbmltYXRpb25CYXNlKiwgU3R5
bGVDYWNoZWRJbWFnZSogZnJvbVN0eWxlSW1hZ2UsIFN0eWxlQ2FjaGVkSW1hZ2UqIHRvU3R5bGVJ
bWFnZSwgZG91YmxlIHByb2dyZXNzKQorc3RhdGljIGlubGluZSBSZWZQdHI8U3R5bGVJbWFnZT4g
Y3Jvc3NmYWRlQmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSosIFN0eWxlQ2FjaGVkSW1hZ2UqIGZy
b21TdHlsZUltYWdlLCBTdHlsZUNhY2hlZEltYWdlKiB0b1N0eWxlSW1hZ2UsIGRvdWJsZSBwcm9n
cmVzcykKIHsKICAgICAvLyBJZiBwcm9ncmVzcyBpcyBhdCBvbmUgb2YgdGhlIGV4dHJlbWVzLCB3
ZSB3YW50IGdldENvbXB1dGVkU3R5bGUgdG8gc2hvdyB0aGUgaW1hZ2UsCiAgICAgLy8gbm90IGEg
Y29tcGxldGVkIGNyb3NzLWZhZGUsIHNvIHdlIGhhbmQgYmFjayBvbmUgb2YgdGhlIGV4aXN0aW5n
IGltYWdlcy4KQEAgLTI5NSw3ICsyOTUsNyBAQCBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U3R5
bGVJbWFnZT4gY3Jvc3NmYWRlQmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSosIFN0eWxlQwogICAg
IHJldHVybiBTdHlsZUdlbmVyYXRlZEltYWdlOjpjcmVhdGUoV1RGTW92ZShjcm9zc2ZhZGVWYWx1
ZSkpOwogfQogCi1zdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gYmxlbmRGdW5j
KGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFN0eWxlSW1hZ2UqIGZyb20sIFN0eWxlSW1hZ2Uq
IHRvLCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5lIFJlZlB0cjxTdHlsZUltYWdlPiBi
bGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgU3R5bGVJbWFnZSogZnJvbSwgU3R5
bGVJbWFnZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAoIWZyb20gfHwgIXRvKQog
ICAgICAgICByZXR1cm4gdG87CkBAIC0zNjQsMTEgKzM2NCwxMiBAQCBzdGF0aWMgaW5saW5lIE5p
bmVQaWVjZUltYWdlIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25zdCBO
aW5lUGllYwogICAgIGlmIChmcm9tLmltYWdlKCktPmltYWdlU2l6ZShhbmltLT5yZW5kZXJlcigp
LCAxLjApICE9IHRvLmltYWdlKCktPmltYWdlU2l6ZShhbmltLT5yZW5kZXJlcigpLCAxLjApKQog
ICAgICAgICByZXR1cm4gdG87CiAKLSAgICBhdXRvIG5ld0NvbnRlbnRJbWFnZSA9IGJsZW5kRnVu
YyhhbmltLCBmcm9tLmltYWdlKCksIHRvLmltYWdlKCksIHByb2dyZXNzKTsKLSAgICByZXR1cm4g
TmluZVBpZWNlSW1hZ2UobmV3Q29udGVudEltYWdlLCBmcm9tLmltYWdlU2xpY2VzKCksIGZyb20u
ZmlsbCgpLCBmcm9tLmJvcmRlclNsaWNlcygpLCBmcm9tLm91dHNldCgpLCBmcm9tLmhvcml6b250
YWxSdWxlKCksIGZyb20udmVydGljYWxSdWxlKCkpOworICAgIHJldHVybiBOaW5lUGllY2VJbWFn
ZShibGVuZEZ1bmMoYW5pbSwgZnJvbS5pbWFnZSgpLCB0by5pbWFnZSgpLCBwcm9ncmVzcyksCisg
ICAgICAgIGZyb20uaW1hZ2VTbGljZXMoKSwgZnJvbS5maWxsKCksIGZyb20uYm9yZGVyU2xpY2Vz
KCksIGZyb20ub3V0c2V0KCksIGZyb20uaG9yaXpvbnRhbFJ1bGUoKSwgZnJvbS52ZXJ0aWNhbFJ1
bGUoKSk7CiB9CiAKICNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZPTlRTKQorCiBzdGF0aWMgaW5saW5l
IEZvbnRWYXJpYXRpb25TZXR0aW5ncyBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5p
bSwgY29uc3QgRm9udFZhcmlhdGlvblNldHRpbmdzJiBmcm9tLCBjb25zdCBGb250VmFyaWF0aW9u
U2V0dGluZ3MmIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgaWYgKGZyb20uc2l6ZSgpICE9
IHRvLnNpemUoKSkKQEAgLTM4NSw2ICszODYsNyBAQCBzdGF0aWMgaW5saW5lIEZvbnRWYXJpYXRp
b25TZXR0aW5ncyBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgY29uc3QgRgog
ICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQorCiAjZW5kaWYKIAogY2xhc3MgQW5pbWF0aW9u
UHJvcGVydHlXcmFwcGVyQmFzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcAppbmRleCA1Yjc0ZTc2NzgyOGM0NWE1NjI5ZTE5
ZmUyNjA1MzgzYzJhNWY2ZThhLi42Njk5MjcwN2IxZWVhYjE4NDNmZTAzOWFhYzYyZGUzMGM0NDMw
MmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVB
bmltYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0
ZUFuaW1hdGlvbi5jcHAKQEAgLTEyMSw4ICsxMjEsOCBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlv
bjo6dXBkYXRlVHJhbnNpdGlvbnMoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNvbnN0IFJlbmRl
cgogICAgICAgICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgcnVubmluZyBhbmltYXRpb24gZm9y
IHRoaXMgcHJvcGVydHksIHRoZSB0cmFuc2l0aW9uIGlzIG92ZXJyaWRkZW4KICAgICAgICAgICAg
ICAgICAvLyBhbmQgd2UgaGF2ZSB0byB1c2UgdGhlIHVuYW5pbWF0ZWRTdHlsZSBmcm9tIHRoZSBh
bmltYXRpb24uIFdlIGRvIHRoZSB0ZXN0CiAgICAgICAgICAgICAgICAgLy8gYWdhaW5zdCB0aGUg
dW5hbmltYXRlZCBzdHlsZSBoZXJlLCBidXQgd2UgIm92ZXJyaWRlIiB0aGUgdHJhbnNpdGlvbiBs
YXRlci4KLSAgICAgICAgICAgICAgICBSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IGtleWZyYW1l
QW5pbSA9IGdldEFuaW1hdGlvbkZvclByb3BlcnR5KHByb3ApOwotICAgICAgICAgICAgICAgIGF1
dG8qIGZyb21TdHlsZSA9IGtleWZyYW1lQW5pbSA/IGtleWZyYW1lQW5pbS0+dW5hbmltYXRlZFN0
eWxlKCkgOiBjdXJyZW50U3R5bGU7CisgICAgICAgICAgICAgICAgYXV0byoga2V5ZnJhbWVBbmlt
YXRpb24gPSBhbmltYXRpb25Gb3JQcm9wZXJ0eShwcm9wKTsKKyAgICAgICAgICAgICAgICBhdXRv
KiBmcm9tU3R5bGUgPSBrZXlmcmFtZUFuaW1hdGlvbiA/IGtleWZyYW1lQW5pbWF0aW9uLT51bmFu
aW1hdGVkU3R5bGUoKSA6IGN1cnJlbnRTdHlsZTsKIAogICAgICAgICAgICAgICAgIC8vIFNlZSBp
ZiB0aGVyZSBpcyBhIGN1cnJlbnQgdHJhbnNpdGlvbiBmb3IgdGhpcyBwcm9wCiAgICAgICAgICAg
ICAgICAgSW1wbGljaXRBbmltYXRpb24qIGltcGxBbmltID0gbV90cmFuc2l0aW9ucy5nZXQocHJv
cCk7CkBAIC0xNzIsNyArMTcyLDcgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZVRy
YW5zaXRpb25zKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBjb25zdCBSZW5kZXIKICAgICAgICAg
ICAgICAgICAgICAgTE9HKEFuaW1hdGlvbnMsICJDcmVhdGVkIEltcGxpY2l0QW5pbWF0aW9uICVw
IG9uIHJlbmRlcmVyICVwIGZvciBwcm9wZXJ0eSAlcyBkdXJhdGlvbiAlLjJmIGRlbGF5ICUuMmYi
LCBpbXBsaWNpdEFuaW1hdGlvbi5wdHIoKSwgcmVuZGVyZXIsIGdldFByb3BlcnR5TmFtZShwcm9w
KSwgYW5pbWF0aW9uLmR1cmF0aW9uKCksIGFuaW1hdGlvbi5kZWxheSgpKTsKICAgICAgICAgICAg
ICAgICAgICAgbV90cmFuc2l0aW9ucy5zZXQocHJvcCwgV1RGTW92ZShpbXBsaWNpdEFuaW1hdGlv
bikpOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKKwogICAgICAgICAgICAg
ICAgIC8vIFdlIG9ubHkgbmVlZCBvbmUgcGFzcyBmb3IgdGhlIHNpbmdsZSBwcm9wIGNhc2UKICAg
ICAgICAgICAgICAgICBpZiAoIWFsbCkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0z
OTksMjEgKzM5OSwyMSBAQCBkb3VibGUgQ29tcG9zaXRlQW5pbWF0aW9uOjp0aW1lVG9OZXh0U2Vy
dmljZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1pblQ7CiB9CiAKLVBhc3NSZWZQdHI8S2V5ZnJhbWVB
bmltYXRpb24+IENvbXBvc2l0ZUFuaW1hdGlvbjo6Z2V0QW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NT
UHJvcGVydHlJRCBwcm9wZXJ0eSkgY29uc3QKK0tleWZyYW1lQW5pbWF0aW9uKiBDb21wb3NpdGVB
bmltYXRpb246OmFuaW1hdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHkpIGNv
bnN0CiB7Ci0gICAgUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiByZXR2YWw7Ci0gICAgCisgICAg
S2V5ZnJhbWVBbmltYXRpb24qIHJlc3VsdCA9IG51bGxwdHI7CisKICAgICAvLyBXZSB3YW50IHRv
IHNlbmQgYmFjayB0aGUgbGFzdCBhbmltYXRpb24gd2l0aCB0aGUgcHJvcGVydHkgaWYgdGhlcmUg
YXJlIG11bHRpcGxlcy4KICAgICAvLyBTbyB3ZSBuZWVkIHRvIGl0ZXJhdGUgdGhyb3VnaCBhbGwg
YW5pbWF0aW9ucwogICAgIGlmICghbV9rZXlmcmFtZUFuaW1hdGlvbnMuaXNFbXB0eSgpKSB7CiAg
ICAgICAgIG1fa2V5ZnJhbWVBbmltYXRpb25zLmNoZWNrQ29uc2lzdGVuY3koKTsKICAgICAgICAg
Zm9yIChhdXRvJiBhbmltYXRpb24gOiBtX2tleWZyYW1lQW5pbWF0aW9ucy52YWx1ZXMoKSkgewog
ICAgICAgICAgICAgaWYgKGFuaW1hdGlvbi0+aGFzQW5pbWF0aW9uRm9yUHJvcGVydHkocHJvcGVy
dHkpKQotICAgICAgICAgICAgICAgIHJldHZhbCA9IGFuaW1hdGlvbjsKKyAgICAgICAgICAgICAg
ICByZXN1bHQgPSBhbmltYXRpb24uZ2V0KCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgCi0gICAg
cmV0dXJuIHJldHZhbDsKKworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIGJvb2wgQ29tcG9zaXRl
QW5pbWF0aW9uOjpjb21wdXRlRXh0ZW50T2ZUcmFuc2Zvcm1BbmltYXRpb24oTGF5b3V0UmVjdCYg
Ym91bmRzKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
Q29tcG9zaXRlQW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21w
b3NpdGVBbmltYXRpb24uaAppbmRleCAzMzdmZTZmMTY2ZTcxYzFjZTYxOWFlMjM4ODkzMTE4N2Zm
ODY0N2NjLi40MGMzYTQ5MWYyYTU0OGViM2UyYjMzMTZjNGYwZmZlMDUzMjEzOTAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaApA
QCAtNzEsNyArNzEsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQW5pbWF0aW5nUHJvcGVydHko
Q1NTUHJvcGVydHlJRCwgYm9vbCBhY2NlbGVyYXRlZE9ubHksIEFuaW1hdGlvbkJhc2U6OlJ1bm5p
bmdTdGF0ZSkgY29uc3Q7CiAKLSAgICBQYXNzUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiBnZXRB
bmltYXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKKyAgICBLZXlmcmFtZUFu
aW1hdGlvbiogYW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAKICAg
ICB2b2lkIG92ZXJyaWRlSW1wbGljaXRBbmltYXRpb25zKENTU1Byb3BlcnR5SUQpOwogICAgIHZv
aWQgcmVzdW1lT3ZlcnJpZGRlbkltcGxpY2l0QW5pbWF0aW9ucyhDU1NQcm9wZXJ0eUlEKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNw
cAppbmRleCA3MTZiZWE4MjQ5MDQ5MmM0M2JjZTE3NzQ5ZDFmZmI1MjEyN2NjY2ZmLi5mZGVkNjIz
YTZhZGRhOTI0YWI3NjM2M2UyNDY5Y2JjYTMyY2JmYjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCkBAIC0xNjMsMTAgKzE2
Myw5IEBAIHZvaWQgSW1wbGljaXRBbmltYXRpb246Om9uQW5pbWF0aW9uRW5kKGRvdWJsZSBlbGFw
c2VkVGltZSkKICAgICAvLyBydW5uaW5nLiBCdXQgbm93IHRoYXQgdGhlIHRyYW5zaXRpb24gaGFz
IGNvbXBsZXRlZCwgd2UgbmVlZCB0byB1cGRhdGUgdGhpcyBzdHlsZSB3aXRoIGl0cyBuZXcKICAg
ICAvLyBkZXN0aW5hdGlvbi4gSWYgd2UgZGlkbid0LCB0aGUgbmV4dCB0aW1lIHRocm91Z2ggd2Ug
d291bGQgdGhpbmsgYSB0cmFuc2l0aW9uIGhhZCBzdGFydGVkCiAgICAgLy8gKGNvbXBhcmluZyB0
aGUgb2xkIHVuYW5pbWF0ZWQgc3R5bGUgd2l0aCB0aGUgbmV3IGZpbmFsIHN0eWxlIG9mIHRoZSB0
cmFuc2l0aW9uKS4KLSAgICBSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IGtleWZyYW1lQW5pbSA9
IG1fY29tcG9zaXRlQW5pbWF0aW9uLT5nZXRBbmltYXRpb25Gb3JQcm9wZXJ0eShtX2FuaW1hdGlu
Z1Byb3BlcnR5KTsKLSAgICBpZiAoa2V5ZnJhbWVBbmltKQotICAgICAgICBrZXlmcmFtZUFuaW0t
PnNldFVuYW5pbWF0ZWRTdHlsZShSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoKm1fdG9TdHlsZSkpOwot
ICAgIAorICAgIGlmIChhdXRvKiBhbmltYXRpb24gPSBtX2NvbXBvc2l0ZUFuaW1hdGlvbi0+YW5p
bWF0aW9uRm9yUHJvcGVydHkobV9hbmltYXRpbmdQcm9wZXJ0eSkpCisgICAgICAgIGFuaW1hdGlv
bi0+c2V0VW5hbmltYXRlZFN0eWxlKFJlbmRlclN0eWxlOjpjbG9uZVB0cigqbV90b1N0eWxlKSk7
CisKICAgICBzZW5kVHJhbnNpdGlvbkV2ZW50KGV2ZW50TmFtZXMoKS50cmFuc2l0aW9uZW5kRXZl
bnQsIGVsYXBzZWRUaW1lKTsKICAgICBlbmRBbmltYXRpb24oKTsKIH0KQEAgLTE4Nyw3ICsxODYs
NyBAQCBib29sIEltcGxpY2l0QW5pbWF0aW9uOjpzZW5kVHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0
b21pY1N0cmluZyYgZXZlbnRUeXBlLCBkb3VibAogICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgICAgICAgICAgLy8gU2NoZWR1bGUgZXZlbnQgaGFuZGxpbmcKLSAgICAgICAgICAg
IG1fY29tcG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Db250cm9sbGVyKCkuYWRkRXZlbnRUb0Rp
c3BhdGNoKGVsZW1lbnQsIGV2ZW50VHlwZSwgcHJvcGVydHlOYW1lLCBlbGFwc2VkVGltZSk7Cisg
ICAgICAgICAgICBtX2NvbXBvc2l0ZUFuaW1hdGlvbi0+YW5pbWF0aW9uQ29udHJvbGxlcigpLmFk
ZEV2ZW50VG9EaXNwYXRjaCgqZWxlbWVudCwgZXZlbnRUeXBlLCBwcm9wZXJ0eU5hbWUsIGVsYXBz
ZWRUaW1lKTsKIAogICAgICAgICAgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgKHVuYW5pbWF0
ZWQpIHN0eWxlCiAgICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS50cmFu
c2l0aW9uZW5kRXZlbnQgJiYgZWxlbWVudC0+cmVuZGVyZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAppbmRleCA0NzFiYWNm
NmYxYjlmMDVjZTFkMzRkYTg3NWZlOGM2N2M5NGZmNTdkLi5kYzI5ZDIyMzkxYjAzNGJkY2VlNTY2
ZjNiMmE1YzMxN2EwZGQwMDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCkBAIC0zMjcsNyArMzI3LDcgQEAgYm9vbCBLZXlm
cmFtZUFuaW1hdGlvbjo6c2VuZEFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZl
bnRUeXBlLCBkb3VibGUKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAvLyBT
Y2hlZHVsZSBldmVudCBoYW5kbGluZwotICAgICAgICBtX2NvbXBvc2l0ZUFuaW1hdGlvbi0+YW5p
bWF0aW9uQ29udHJvbGxlcigpLmFkZEV2ZW50VG9EaXNwYXRjaChlbGVtZW50LCBldmVudFR5cGUs
IG1fa2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSwgZWxhcHNlZFRpbWUpOworICAgICAgICBtX2Nv
bXBvc2l0ZUFuaW1hdGlvbi0+YW5pbWF0aW9uQ29udHJvbGxlcigpLmFkZEV2ZW50VG9EaXNwYXRj
aCgqZWxlbWVudCwgZXZlbnRUeXBlLCBtX2tleWZyYW1lcy5hbmltYXRpb25OYW1lKCksIGVsYXBz
ZWRUaW1lKTsKIAogICAgICAgICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5hbCAodW5hbmltYXRlZCkg
c3R5bGUKICAgICAgICAgaWYgKChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLndlYmtpdEFuaW1h
dGlvbkVuZEV2ZW50IHx8IGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuYW5pbWF0aW9uZW5kRXZl
bnQpICYmIGVsZW1lbnQtPnJlbmRlcmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZl
bnRIYW5kbGVyRWZsLmNwcAppbmRleCAyMTA2ZDFlMTlhNDg2YTM4NWZmZTg3ZjkwMGZhYWZlOTA4
YmNhYzEyLi5hYWQwN2Q2ZmY2YjE3ZWNkZDcxNzExZTQxZWY1YjRlMDNlZTAwNTFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKQEAgLTQ5LDcgKzQ5LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERy
YWdEZWxheSA9IDAuMDsKICNlbmRpZgogCi1ib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9y
bUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNU
b0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JikgY29uc3QKIHsKICAgICByZXR1cm4gdHJ1
ZTsKIH0KQEAgLTk2LDEwICs5NiwxMiBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lkZ2V0RGlkSGFu
ZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBXaQogfQogCiAj
aWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBFdmVudEhh
bmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKKworUmVmPERhdGFUcmFu
c2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKIH0KKwog
I2VuZGlmCiAKIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFt
ZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBtZXYsIEZyYW1lKiBzdWJmcmFtZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3BwCmluZGV4IDQzZjA1Mzc1
ZTViZGU2MTRmOTA4YTdjMTU0ZDgyZDdiMDhlY2UyNGIuLmFhYWRlMDAyYzVjODliZGNlYzAyNTM2
NWIwMTk3YTUwMTk2YzJiODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2
ZW50SGFuZGxlckd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5k
bGVyR3RrLmNwcApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjb25zdCBk
b3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4wOwogI2VuZGlmCiAKLWJvb2wg
RXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCopIGNvbnN0
Citib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQm
KSBjb25zdAogewogICAgIC8vIFdlIGFsd2F5cyBhbGxvdyB0YWJzIHRvIGFsbCBjb250cm9scwog
ICAgIHJldHVybiB0cnVlOwpAQCAtOTYsMTAgKzk2LDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp3
aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQs
IFdpCiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc1JlZlB0cjxEYXRhVHJhbnNm
ZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAorCitS
ZWY8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVy
KCkgY29uc3QKIHsKICAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJv
cCgpOwogfQorCiAjZW5kaWYKIAogYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZl
bnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1
YmZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVy
SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCmluZGV4
IDUyNGZiNWFlYTViM2Q1MjM2Yjk0MWQ3YWQyNTg4YjQ4OWNiZGE3YTAuLjI5YmFkZWY1OTU1ODRh
M2ZjZTUzY2EyZjgyNDFlNGY2ZWZkNzU0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9F
dmVudEhhbmRsZXJJT1MubW0KQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
dG91Y2hFdmVudChXZWJFdmVudCAqZXZlbnQpCiB9CiAjZW5kaWYKIAotYm9vbCBFdmVudEhhbmRs
ZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KiBldmVudCkgY29uc3QKK2Jv
b2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCYgZXZl
bnQpIGNvbnN0CiB7CiAgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpOwogICAgIGlmICgh
cGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRleCBl
NTkxOTc4YzAwYzQwYzY5ZTc3M2E5NzYyMWQ3NjczM2JkNzUxYjAyLi5hZDdhNTllMzFlMDk1YjBi
YzUyMDUwNzJmZGYxODM5ZjBmNGY2ODNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L21hYy9FdmVudEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZl
bnRIYW5kbGVyTWFjLm1tCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIK
ICNpbmNsdWRlICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFj
ZS5oIgorI2luY2x1ZGUgIldoZWVsRXZlbnREZWx0YUZpbHRlci5oIgogI2luY2x1ZGUgIldoZWVs
RXZlbnRUZXN0VHJpZ2dlci5oIgogI2luY2x1ZGUgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+
CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTcyMyw3ICs3MjQsNyBAQCBib29sIEV2
ZW50SGFuZGxlcjo6ZXZlbnRBY3RpdmF0ZWRWaWV3KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
ZXZlbnQpIGNvbnN0CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogCi1QYXNzUmVmUHRyPERh
dGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNv
bnN0CitSZWY8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRy
YW5zZmVyKCkgY29uc3QKIHsKICAgICAvLyBNdXN0IGJlIGRvbmUgYmVmb3JlIG9uZHJhZ3N0YXJ0
IGFkZHMgdHlwZXMgYW5kIGRhdGEgdG8gdGhlIHBib2FyZCwKICAgICAvLyBhbHNvIGRvbmUgZm9y
IHNlY3VyaXR5LCBhcyBpdCBlcmFzZXMgZGF0YSBmcm9tIHRoZSBsYXN0IGRyYWcuCkBAIC03MzQs
NyArNzM1LDcgQEAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRl
RHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAogCiAjZW5kaWYKIAotYm9vbCBFdmVudEhhbmRs
ZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KiBldmVudCkgY29uc3QKK2Jv
b2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCYgZXZl
bnQpIGNvbnN0CiB7CiAgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpOwogICAgIGlmICgh
cGFnZSkKQEAgLTk3MSwxMCArOTcyLDEwIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpwbGF0Zm9ybVBy
ZXBhcmVGb3JXaGVlbEV2ZW50cyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsCiAgICAg
ICAgICAgICAgICAgbV9mcmFtZS5tYWluRnJhbWUoKS5wdXNoTmV3TGF0Y2hpbmdTdGF0ZSgpOwog
ICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUgPSBtX2ZyYW1lLm1haW5GcmFtZSgpLmxhdGNo
aW5nU3RhdGUoKTsKICAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlLT5zZXRTdGFydGVkR2Vz
dHVyZUF0U2Nyb2xsTGltaXQoZmFsc2UpOwotICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUt
PnNldFdoZWVsRXZlbnRFbGVtZW50KHdoZWVsRXZlbnRUYXJnZXQpOworICAgICAgICAgICAgICAg
IGxhdGNoaW5nU3RhdGUtPnNldFdoZWVsRXZlbnRFbGVtZW50KHdoZWVsRXZlbnRUYXJnZXQuZ2V0
KCkpOwogICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldEZyYW1lKCZtX2ZyYW1lKTsK
ICAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2hhdCBwcmV2ZW50cyB1cyBmcm9tIGRlbGV0aW5n
IHRoaXMgc2Nyb2xsYWJsZSBjb250YWluZXIgd2hpbGUgc3RpbGwgaG9sZGluZyBhIHBvaW50ZXIg
dG8gaXQ/Ci0gICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0U2Nyb2xsYWJsZUNvbnRh
aW5lcihzY3JvbGxhYmxlQ29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRl
LT5zZXRTY3JvbGxhYmxlQ29udGFpbmVyKHNjcm9sbGFibGVDb250YWluZXIuZ2V0KCkpOwogICAg
ICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldFdpZGdldElzTGF0Y2hlZChyZXN1bHQuaXNP
dmVyV2lkZ2V0KCkpOwogICAgICAgICAgICAgICAgIGlzT3ZlcldpZGdldCA9IGxhdGNoaW5nU3Rh
dGUtPndpZGdldElzTGF0Y2hlZCgpOwogICAgICAgICAgICAgICAgIG1fZnJhbWUubWFpbkZyYW1l
KCkud2hlZWxFdmVudERlbHRhRmlsdGVyKCktPmJlZ2luRmlsdGVyaW5nRGVsdGFzKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmgK
aW5kZXggNTVlNGQ2NTk1ZWViNjA1M2Y2YTZhOTQ1MGI5ZGFlYjgxMjhjNTI3MC4uNjViMWNlZWM2
YjExMjdiMDU5NjMyMWVjNDg4MjQ1N2RmNDFiMDRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw2IEBACiAj
aW5jbHVkZSAiUGFnZU92ZXJsYXkuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlRp
bWVyLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX19E
REhpZ2hsaWdodCAqRERIaWdobGlnaHRSZWY7CiAKQEAgLTM5LDYgKzM4LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIAogY2xhc3MgTGF5b3V0UmVjdDsKIGNsYXNzIE1haW5GcmFtZTsKKwog
c3RydWN0IEdhcFJlY3RzOwogCiBjbGFzcyBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyIDogcHJp
dmF0ZSBQYWdlT3ZlcmxheTo6Q2xpZW50IHsKQEAgLTU0LDE0ICs1NCwxNCBAQCBwcml2YXRlOgog
ICAgIGNsYXNzIEhpZ2hsaWdodCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdodD4sIHByaXZh
dGUgR3JhcGhpY3NMYXllckNsaWVudCB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEhp
Z2hsaWdodCk7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3Jl
YXRlRm9yU2VsZWN0aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImLCBSZXRhaW5QdHI8RERI
aWdobGlnaHRSZWY+LCBQYXNzUmVmUHRyPFJhbmdlPik7Ci0gICAgICAgIHN0YXRpYyBSZWY8SGln
aGxpZ2h0PiBjcmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIoU2VydmljZXNPdmVybGF5Q29udHJvbGxl
ciYsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFBhc3NSZWZQdHI8UmFuZ2U+KTsKKyAgICAg
ICAgc3RhdGljIFJlZjxIaWdobGlnaHQ+IGNyZWF0ZUZvclNlbGVjdGlvbihTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyJiwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUmVmPFJhbmdlPiYmKTsK
KyAgICAgICAgc3RhdGljIFJlZjxIaWdobGlnaHQ+IGNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcihT
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUmVm
PFJhbmdlPiYmKTsKICAgICAgICAgfkhpZ2hsaWdodCgpOwogCiAgICAgICAgIHZvaWQgaW52YWxp
ZGF0ZSgpOwogCiAgICAgICAgIERESGlnaGxpZ2h0UmVmIGRkSGlnaGxpZ2h0KCkgY29uc3QgeyBy
ZXR1cm4gbV9kZEhpZ2hsaWdodC5nZXQoKTsgfQotICAgICAgICBSYW5nZSogcmFuZ2UoKSBjb25z
dCB7IHJldHVybiBtX3JhbmdlLmdldCgpOyB9CisgICAgICAgIFJhbmdlJiByYW5nZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcmFuZ2UuZ2V0KCk7IH0KICAgICAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIo
KSBjb25zdCB7IHJldHVybiBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCk7IH0KIAogICAgICAgICBlbnVt
IHsKQEAgLTc3LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBzZXREREhpZ2hsaWdo
dChEREhpZ2hsaWdodFJlZik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBleHBsaWNpdCBIaWdo
bGlnaHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFR5cGUsIFJldGFpblB0cjxEREhpZ2hs
aWdodFJlZj4sIFBhc3NSZWZQdHI8UmFuZ2U+KTsKKyAgICAgICAgSGlnaGxpZ2h0KFNlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXImLCBUeXBlLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+LCBSZWY8
UmFuZ2U+JiYpOwogCiAgICAgICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICAgICAgdm9p
ZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKQEAg
LTg3LDcgKzg3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBkaWRGaW5pc2hGYWRlT3V0QW5p
bWF0aW9uKCk7CiAKICAgICAgICAgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBtX2RkSGlnaGxp
Z2h0OwotICAgICAgICBSZWZQdHI8UmFuZ2U+IG1fcmFuZ2U7CisgICAgICAgIFJlZjxSYW5nZT4g
bV9yYW5nZTsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fZ3JhcGhp
Y3NMYXllcjsKICAgICAgICAgVHlwZSBtX3R5cGU7CiAgICAgICAgIFNlcnZpY2VzT3ZlcmxheUNv
bnRyb2xsZXIqIG1fY29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21h
Yy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCmluZGV4IDlhODE1YjVhZTU1OTY0OTliZGY2
MTZlZDQyMTFiOWE1MjM4MTVlNjIuLjRiMDNlMjJhZTQ2YmU4OWFlMjMxMDJmYjQ5ZmY0OTIxZDQw
NDY4YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlci5tbQpAQCAtNTUsMjMgKzU1LDIyIEBAIGNvbnN0IGZsb2F0IGhpZ2hsaWdo
dEZhZGVBbmltYXRpb25EdXJhdGlvbiA9IDAuMzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
ZWY8U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0PiBTZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyOjpIaWdobGlnaHQ6OmNyZWF0ZUZvclNlbGVjdGlvbihTZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyJiBjb250cm9sbGVyLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxp
Z2h0LCBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZSkKK1JlZjxTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyOjpIaWdobGlnaHQ+IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6Y3Jl
YXRlRm9yU2VsZWN0aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIsIFJl
dGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFJlZjxSYW5nZT4mJiByYW5nZSkK
IHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHQoY29udHJvbGxlciwgSGlnaGxp
Z2h0OjpTZWxlY3Rpb25UeXBlLCBkZEhpZ2hsaWdodCwgcmFuZ2UpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBIaWdobGlnaHQoY29udHJvbGxlciwgSGlnaGxpZ2h0OjpTZWxlY3Rpb25UeXBl
LCBkZEhpZ2hsaWdodCwgV1RGTW92ZShyYW5nZSkpKTsKIH0KIAotUmVmPFNlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXI6OkhpZ2hsaWdodD4gU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxp
Z2h0OjpjcmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYg
Y29udHJvbGxlciwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCwgUGFzc1Jl
ZlB0cjxSYW5nZT4gcmFuZ2UpCitSZWY8U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxp
Z2h0PiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OmNyZWF0ZUZvclRlbGVw
aG9uZU51bWJlcihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiBjb250cm9sbGVyLCBSZXRhaW5Q
dHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBSZWY8UmFuZ2U+JiYgcmFuZ2UpCiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0KGNvbnRyb2xsZXIsIEhpZ2hsaWdodDo6
VGVsZXBob25lTnVtYmVyVHlwZSwgZGRIaWdobGlnaHQsIHJhbmdlKSk7CisgICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgSGlnaGxpZ2h0KGNvbnRyb2xsZXIsIEhpZ2hsaWdodDo6VGVsZXBob25lTnVt
YmVyVHlwZSwgZGRIaWdobGlnaHQsIFdURk1vdmUocmFuZ2UpKSk7CiB9CiAKLVNlcnZpY2VzT3Zl
cmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6SGlnaGxpZ2h0KFNlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXImIGNvbnRyb2xsZXIsIFR5cGUgdHlwZSwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBk
ZEhpZ2hsaWdodCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpSYW5nZT4gcmFuZ2UpCi0gICAgOiBtX3Jh
bmdlKHJhbmdlKQorU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpIaWdobGln
aHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYgY29udHJvbGxlciwgVHlwZSB0eXBlLCBSZXRh
aW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBSZWY8V2ViQ29yZTo6UmFuZ2U+JiYg
cmFuZ2UpCisgICAgOiBtX3JhbmdlKFdURk1vdmUocmFuZ2UpKQogICAgICwgbV90eXBlKHR5cGUp
CiAgICAgLCBtX2NvbnRyb2xsZXIoJmNvbnRyb2xsZXIpCiB7CiAgICAgQVNTRVJUKGRkSGlnaGxp
Z2h0KTsKLSAgICBBU1NFUlQobV9yYW5nZSk7CiAKICAgICBQYWdlKiBwYWdlID0gY29udHJvbGxl
ci5tYWluRnJhbWUoKS5wYWdlKCk7CiAgICAgbV9ncmFwaGljc0xheWVyID0gR3JhcGhpY3NMYXll
cjo6Y3JlYXRlKHBhZ2UgPyBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5ncmFwaGljc0xheWVyRmFj
dG9yeSgpIDogbnVsbHB0ciwgKnRoaXMpOwpAQCAtNDA5LDcgKzQwOCw3IEBAIHZvaWQgU2Vydmlj
ZXNPdmVybGF5Q29udHJvbGxlcjo6YnVpbGRQb3RlbnRpYWxIaWdobGlnaHRzSWZOZWVkZWQoKQog
CiAgICAgaWYgKG1fcG90ZW50aWFsSGlnaGxpZ2h0cy5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYg
KG1fc2VydmljZXNPdmVybGF5KQotICAgICAgICAgICAgbV9tYWluRnJhbWUucGFnZU92ZXJsYXlD
b250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkobV9zZXJ2aWNlc092ZXJsYXksIFBhZ2VP
dmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAgICAgIG1fbWFpbkZyYW1lLnBh
Z2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX3NlcnZpY2VzT3Zl
cmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC01MjcsNyArNTI2LDcgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyOjpidWlsZFBob25lTnVtYmVySGlnaGxpZ2h0cygpCiAgICAgICAgIENHUmVjdCBjZ1JlY3Qg
PSByZWN0OwogICAgICAgICBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0ID0g
YWRvcHRDRihEREhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJsZVJlY3RXaXRoU3R5bGVB
bmREaXJlY3Rpb24obnVsbHB0ciwgJmNnUmVjdCwgMSwgbWFpbkZyYW1lVmlldy52aXNpYmxlQ29u
dGVudFJlY3QoKSwgRERIaWdobGlnaHRTdHlsZUJ1YmJsZVN0YW5kYXJkIHwgRERIaWdobGlnaHRT
dHlsZVN0YW5kYXJkSWNvbkFycm93LCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5P
LCBZRVMpKTsKIAotICAgICAgICBuZXdQb3RlbnRpYWxIaWdobGlnaHRzLmFkZChIaWdobGlnaHQ6
OmNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcigqdGhpcywgZGRIaWdobGlnaHQsIHJhbmdlKSk7Cisg
ICAgICAgIG5ld1BvdGVudGlhbEhpZ2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yVGVs
ZXBob25lTnVtYmVyKCp0aGlzLCBkZEhpZ2hsaWdodCwgcmFuZ2UucmVsZWFzZU5vbk51bGwoKSkp
OwogICAgIH0KIAogICAgIHJlcGxhY2VIaWdobGlnaHRzT2ZUeXBlUHJlc2VydmluZ0VxdWl2YWxl
bnRIaWdobGlnaHRzKG5ld1BvdGVudGlhbEhpZ2hsaWdodHMsIEhpZ2hsaWdodDo6VGVsZXBob25l
TnVtYmVyVHlwZSk7CkBAIC01NzAsNyArNTY5LDcgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250
cm9sbGVyOjpidWlsZFNlbGVjdGlvbkhpZ2hsaWdodCgpCiAgICAgICAgICAgICBDR1JlY3Qgdmlz
aWJsZVJlY3QgPSBtYWluRnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKICAgICAgICAg
ICAgIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQgPSBhZG9wdENGKERESGln
aGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZUFuZERpcmVjdGlvbihu
dWxscHRyLCBjZ1JlY3RzLmJlZ2luKCksIGNnUmVjdHMuc2l6ZSgpLCB2aXNpYmxlUmVjdCwgRERI
aWdobGlnaHRTdHlsZUJ1YmJsZU5vbmUgfCBEREhpZ2hsaWdodFN0eWxlU3RhbmRhcmRJY29uQXJy
b3cgfCBEREhpZ2hsaWdodFN0eWxlQnV0dG9uU2hvd0Fsd2F5cywgWUVTLCBOU1dyaXRpbmdEaXJl
Y3Rpb25OYXR1cmFsLCBOTywgWUVTKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIG5ld1Bv
dGVudGlhbEhpZ2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yU2VsZWN0aW9uKCp0aGlz
LCBkZEhpZ2hsaWdodCwgc2VsZWN0aW9uUmFuZ2UpKTsKKyAgICAgICAgICAgIG5ld1BvdGVudGlh
bEhpZ2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yU2VsZWN0aW9uKCp0aGlzLCBkZEhp
Z2hsaWdodCwgc2VsZWN0aW9uUmFuZ2UucmVsZWFzZU5vbk51bGwoKSkpOwogICAgICAgICB9CiAg
ICAgfQogCkBAIC02MzgsMTQgKzYzNyw5IEBAIGJvb2wgU2VydmljZXNPdmVybGF5Q29udHJvbGxl
cjo6aGlnaGxpZ2h0c0FyZUVxdWl2YWxlbnQoY29uc3QgSGlnaGxpZ2h0KiBhLCBjb25zCiB7CiAg
ICAgaWYgKGEgPT0gYikKICAgICAgICAgcmV0dXJuIHRydWU7Ci0KICAgICBpZiAoIWEgfHwgIWIp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChhLT50eXBlKCkgPT0gYi0+dHlwZSgp
ICYmIGFyZVJhbmdlc0VxdWFsKGEtPnJhbmdlKCksIGItPnJhbmdlKCkpKQotICAgICAgICByZXR1
cm4gdHJ1ZTsKLQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gYS0+dHlwZSgpID09IGIt
PnR5cGUoKSAmJiBhcmVSYW5nZXNFcXVhbCgmYS0+cmFuZ2UoKSwgJmItPnJhbmdlKCkpOwogfQog
CiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQqIFNlcnZpY2VzT3ZlcmxheUNv
bnRyb2xsZXI6OmZpbmRUZWxlcGhvbmVOdW1iZXJIaWdobGlnaHRDb250YWluaW5nU2VsZWN0aW9u
SGlnaGxpZ2h0KEhpZ2hsaWdodCYgc2VsZWN0aW9uSGlnaGxpZ2h0KQpAQCAtNjY5LDcgKzY2Myw3
IEBAIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodCogU2VydmljZXNPdmVybGF5
Q29udHJvbGxlcjo6ZmluZFRlbGVwaG9uZU51CiAgICAgICAgIGlmIChoaWdobGlnaHQtPnR5cGUo
KSAhPSBIaWdobGlnaHQ6OlRlbGVwaG9uZU51bWJlclR5cGUpCiAgICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgICBpZiAoaGlnaGxpZ2h0LT5yYW5nZSgpLT5jb250YWlucygqYWN0aXZlU2Vs
ZWN0aW9uUmFuZ2UpKQorICAgICAgICBpZiAoaGlnaGxpZ2h0LT5yYW5nZSgpLmNvbnRhaW5zKCph
Y3RpdmVTZWxlY3Rpb25SYW5nZSkpCiAgICAgICAgICAgICByZXR1cm4gaGlnaGxpZ2h0LmdldCgp
OwogICAgIH0KIApAQCAtODMyLDcgKzgyNiw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJv
bGxlcjo6aGFuZGxlQ2xpY2soY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQsIEhpZ2hsaWdoCiAK
ICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFuZGxlU2VsZWN0aW9uU2VydmljZUNs
aWNrKHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLnNlbGVjdGlv
bigpLCBzZWxlY3RlZFRlbGVwaG9uZU51bWJlcnMsIHdpbmRvd1BvaW50KTsKICAgICB9IGVsc2Ug
aWYgKGhpZ2hsaWdodC50eXBlKCkgPT0gSGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlKQot
ICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYW5kbGVUZWxlcGhvbmVOdW1iZXJDbGlj
ayhoaWdobGlnaHQucmFuZ2UoKS0+dGV4dCgpLCB3aW5kb3dQb2ludCk7CisgICAgICAgIHBhZ2Ut
PmNocm9tZSgpLmNsaWVudCgpLmhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGhpZ2hsaWdodC5y
YW5nZSgpLnRleHQoKSwgd2luZG93UG9pbnQpOwogfQogCiB2b2lkIFNlcnZpY2VzT3ZlcmxheUNv
bnRyb2xsZXI6OmRpZENyZWF0ZUhpZ2hsaWdodChIaWdobGlnaHQqIGhpZ2hsaWdodCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0gYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4IGU0ZTIw
ZDIyNzY4Yzg4MmU5MDBiMTJiNDFmZTAyZWNkZmI0OGY2MjguLmU1OTI5YmE2M2RlNTlmNDk4M2Jk
OGNmOWMzMDA2NGU2NzE3NzNjYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFj
L1RleHRJbmRpY2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4
dEluZGljYXRvcldpbmRvdy5tbQpAQCAtNjQsNyArNjQsNyBAQCBAaW50ZXJmYWNlIFdlYlRleHRJ
bmRpY2F0b3JWaWV3IDogTlNWaWV3IHsKICAgICBCT09MIF9mYWRpbmdPdXQ7CiB9CiAKLS0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooUGFz
c1JlZlB0cjxUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yIG1hcmdpbjooTlNTaXplKW1hcmdp
biBvZmZzZXQ6KE5TUG9pbnQpb2Zmc2V0OworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6
KE5TUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9y
IG1hcmdpbjooTlNTaXplKW1hcmdpbiBvZmZzZXQ6KE5TUG9pbnQpb2Zmc2V0OwogCiAtICh2b2lk
KXByZXNlbnQ7CiAtICh2b2lkKWhpZGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9p
ZCkpY29tcGxldGlvbkhhbmRsZXI7CkBAIC0xNDcsMTIgKzE0NywxMiBAQCBzdGF0aWMgYm9vbCBp
bmRpY2F0b3JXYW50c01hbnVhbEFuaW1hdGlvbihjb25zdCBUZXh0SW5kaWNhdG9yJiBpbmRpY2F0
b3IpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFt
ZTooTlNSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFBhc3NSZWZQdHI8VGV4dEluZGljYXRvcj4p
dGV4dEluZGljYXRvciBtYXJnaW46KE5TU2l6ZSltYXJnaW4gb2Zmc2V0OihOU1BvaW50KW9mZnNl
dAorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSB0ZXh0SW5kaWNh
dG9yOihUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIG1hcmdpbjooTlNTaXplKW1hcmdpbiBv
ZmZzZXQ6KE5TUG9pbnQpb2Zmc2V0CiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0V2l0
aEZyYW1lOmZyYW1lXSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfdGV4dEluZGljYXRv
ciA9IHRleHRJbmRpY2F0b3I7CisgICAgX3RleHRJbmRpY2F0b3IgPSAmdGV4dEluZGljYXRvcjsK
ICAgICBfbWFyZ2luID0gbWFyZ2luOwogCiAgICAgc2VsZi53YW50c0xheWVyID0gWUVTOwpAQCAt
NDY1LDcgKzQ2NSw4IEBAIHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRv
cihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgQ0dSCiAgICAgW21fdGV4dEluZGlj
YXRvcldpbmRvdyBzZXRPcGFxdWU6Tk9dOwogICAgIFttX3RleHRJbmRpY2F0b3JXaW5kb3cgc2V0
SWdub3Jlc01vdXNlRXZlbnRzOllFU107CiAKLSAgICBtX3RleHRJbmRpY2F0b3JWaWV3ID0gYWRv
cHROUyhbW1dlYlRleHRJbmRpY2F0b3JWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgW21fdGV4dEluZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS53aWR0aCwgW21fdGV4
dEluZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS5oZWlnaHQpIHRleHRJbmRpY2F0b3I6bV90ZXh0
SW5kaWNhdG9yIG1hcmdpbjpOU01ha2VTaXplKGhvcml6b250YWxNYXJnaW4sIHZlcnRpY2FsTWFy
Z2luKSBvZmZzZXQ6ZnJhY3Rpb25hbFRleHRPZmZzZXRdKTsKKyAgICBtX3RleHRJbmRpY2F0b3JW
aWV3ID0gYWRvcHROUyhbW1dlYlRleHRJbmRpY2F0b3JWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
Ok5TTWFrZVJlY3QoMCwgMCwgW21fdGV4dEluZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS53aWR0
aCwgW21fdGV4dEluZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS5oZWlnaHQpCisgICAgICAgIHRl
eHRJbmRpY2F0b3I6Km1fdGV4dEluZGljYXRvciBtYXJnaW46TlNNYWtlU2l6ZShob3Jpem9udGFs
TWFyZ2luLCB2ZXJ0aWNhbE1hcmdpbikgb2Zmc2V0OmZyYWN0aW9uYWxUZXh0T2Zmc2V0XSk7CiAg
ICAgW21fdGV4dEluZGljYXRvcldpbmRvdyBzZXRDb250ZW50VmlldzptX3RleHRJbmRpY2F0b3JW
aWV3LmdldCgpXTsKIAogICAgIFtbbV90YXJnZXRWaWV3IHdpbmRvd10gYWRkQ2hpbGRXaW5kb3c6
bV90ZXh0SW5kaWNhdG9yV2luZG93LmdldCgpIG9yZGVyZWQ6TlNXaW5kb3dBYm92ZV07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmgKaW5kZXggYTQzNDE3ZGNlMWM0MDEzMDg0NjkyMzgzYTEyYThjZjFhYjlkMjBi
My4uMDExYWUwZjIzM2MwOTI2ZmVmZTBmMGQ5MDdjNWYxYTgwZjI3Mjc0MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IuaApAQCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9y
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5j
bHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKQEAgLTY5LDExICs2OCwxMSBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAg
ICAgV0VCQ09SRV9FWFBPUlQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlKik7CiAKLSAg
ICB2b2lkIHNldFNjcm9sbGluZ1RyZWUoUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlPiBzY3JvbGxp
bmdUcmVlKSB7IG1fc2Nyb2xsaW5nVHJlZSA9IHNjcm9sbGluZ1RyZWU7IH0KKyAgICB2b2lkIHNl
dFNjcm9sbGluZ1RyZWUoUmVmPFNjcm9sbGluZ1RyZWU+JiYgc2Nyb2xsaW5nVHJlZSkgeyBtX3Nj
cm9sbGluZ1RyZWUgPSBXVEZNb3ZlKHNjcm9sbGluZ1RyZWUpOyB9CiAKICAgICBTY3JvbGxpbmdT
dGF0ZVRyZWUqIHNjcm9sbGluZ1N0YXRlVHJlZSgpIHsgcmV0dXJuIG1fc2Nyb2xsaW5nU3RhdGVU
cmVlLmdldCgpOyB9CiAKLSAgICBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWU+IHJlbGVhc2VTY3Jv
bGxpbmdUcmVlKCkgeyByZXR1cm4gV1RGTW92ZShtX3Njcm9sbGluZ1RyZWUpOyB9CisgICAgUmVm
UHRyPFNjcm9sbGluZ1RyZWU+IHJlbGVhc2VTY3JvbGxpbmdUcmVlKCkgeyByZXR1cm4gV1RGTW92
ZShtX3Njcm9sbGluZ1RyZWUpOyB9CiAKICAgICB2b2lkIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0
ZXJBc3luY1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmLCBzdGQ6Om9w
dGlvbmFsPEZsb2F0UG9pbnQ+IGxheW91dFZpZXdwb3J0T3JpZ2luLCBib29sIHByb2dyYW1tYXRp
Y1Njcm9sbCwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAKaW5kZXgg
ZTM5ZDk5ZWZiYTMwNjhjY2IwNTViNDBkMWM3MjQzNzdkNThlMzViZS4uMDFlNjUyOWIwMmM4YzFk
NzBhZTc3MzI4M2ViN2Y3MzAwNTc0Zjk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAKQEAgLTMxLDkgKzMxLDYgQEAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6U2Nyb2xsTGF0Y2hp
bmdTdGF0ZSgpCi0gICAgOiBtX2ZyYW1lKG51bGxwdHIpCi0gICAgLCBtX3dpZGdldElzTGF0Y2hl
ZChmYWxzZSkKLSAgICAsIG1fc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0KGZhbHNlKQogewog
fQogICAgIApAQCAtNTAsNyArNDcsNyBAQCB2b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OmNsZWFy
KCkKICAgICBtX3ByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQgPSBudWxscHRyOwogfQogCi12
b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFdoZWVsRXZlbnRFbGVtZW50KFBhc3NSZWZQdHI8
RWxlbWVudD4gZWxlbWVudCkKK3ZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0V2hlZWxFdmVu
dEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBtX3doZWVsRXZlbnRFbGVtZW50ID0g
ZWxlbWVudDsKIH0KQEAgLTYwLDE0ICs1NywxNCBAQCB2b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6
OnNldFdpZGdldElzTGF0Y2hlZChib29sIGlzT3ZlcldpZGdldCkKICAgICBtX3dpZGdldElzTGF0
Y2hlZCA9IGlzT3ZlcldpZGdldDsKIH0KIAotdm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRlOjpzZXRQ
cmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50KFJlZlB0cjxFbGVtZW50PiYmIGVsZW1lbnQpCit2
b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQo
RWxlbWVudCogZWxlbWVudCkKIHsKICAgICBtX3ByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQg
PSBlbGVtZW50OwogfQogCi12b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFNjcm9sbGFibGVD
b250YWluZXIoUGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBub2RlKQordm9pZCBTY3JvbGxMYXRj
aGluZ1N0YXRlOjpzZXRTY3JvbGxhYmxlQ29udGFpbmVyKENvbnRhaW5lck5vZGUqIGNvbnRhaW5l
cikKIHsKLSAgICBtX3Njcm9sbGFibGVDb250YWluZXIgPSBub2RlOworICAgIG1fc2Nyb2xsYWJs
ZUNvbnRhaW5lciA9IGNvbnRhaW5lcjsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oCmluZGV4IDRkYzBkZDMyMjkzYjM5
MGVjOWI2NzFjZmUzYjE5ODU3Yzk3M2M0NzguLjExZGNiZDBkYjE1NWUwNDUwMDA1NjIxYTA1MTc0
NzZkMmI5MjkzYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbExhdGNoaW5nU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxMYXRjaGluZ1N0YXRlLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIHZvaWQg
Y2xlYXIoKTsKIAogICAgIEVsZW1lbnQqIHdoZWVsRXZlbnRFbGVtZW50KCkgeyByZXR1cm4gbV93
aGVlbEV2ZW50RWxlbWVudC5nZXQoKTsgfQotICAgIHZvaWQgc2V0V2hlZWxFdmVudEVsZW1lbnQo
UGFzc1JlZlB0cjxFbGVtZW50Pik7CisgICAgdm9pZCBzZXRXaGVlbEV2ZW50RWxlbWVudChFbGVt
ZW50Kik7CiAgICAgRnJhbWUqIGZyYW1lKCkgeyByZXR1cm4gbV9mcmFtZTsgfQogICAgIHZvaWQg
c2V0RnJhbWUoRnJhbWUqIGZyYW1lKSB7IG1fZnJhbWUgPSBmcmFtZTsgfQogCkBAIC00OSwxMCAr
NDksMTAgQEAgcHVibGljOgogICAgIHZvaWQgc2V0V2lkZ2V0SXNMYXRjaGVkKGJvb2wgaXNPdmVy
V2lkZ2V0KTsKIAogICAgIEVsZW1lbnQqIHByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQoKSB7
IHJldHVybiBtX3ByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQuZ2V0KCk7IH0KLSAgICB2b2lk
IHNldFByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQoUmVmUHRyPEVsZW1lbnQ+JiYpOworICAg
IHZvaWQgc2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudChFbGVtZW50Kik7CiAgICAgCiAg
ICAgQ29udGFpbmVyTm9kZSogc2Nyb2xsYWJsZUNvbnRhaW5lcigpIHsgcmV0dXJuIG1fc2Nyb2xs
YWJsZUNvbnRhaW5lci5nZXQoKTsgfQotICAgIHZvaWQgc2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihQ
YXNzUmVmUHRyPENvbnRhaW5lck5vZGU+KTsKKyAgICB2b2lkIHNldFNjcm9sbGFibGVDb250YWlu
ZXIoQ29udGFpbmVyTm9kZSopOwogICAgIGJvb2wgc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0
KCkgY29uc3QgeyByZXR1cm4gbV9zdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQ7IH0KICAgICB2
b2lkIHNldFN0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdChib29sIHN0YXJ0ZWRBdExpbWl0KSB7
IG1fc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0ID0gc3RhcnRlZEF0TGltaXQ7IH0KIApAQCAt
NjEsMTAgKzYxLDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fcHJldmlvdXNX
aGVlbFNjcm9sbGVkRWxlbWVudDsKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9zY3JvbGxh
YmxlQ29udGFpbmVyOwogCi0gICAgRnJhbWUqIG1fZnJhbWU7Ci0gICAgCi0gICAgYm9vbCBtX3dp
ZGdldElzTGF0Y2hlZDsKLSAgICBib29sIG1fc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0Owor
ICAgIEZyYW1lKiBtX2ZyYW1lIHsgbnVsbHB0ciB9OworCisgICAgYm9vbCBtX3dpZGdldElzTGF0
Y2hlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3N0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdCB7
IGZhbHNlIH07CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5jcHAKaW5kZXgg
Yzg0NTliMDVhMGQxNjdiNWFjZWFkMTQwOTVlOTNmNmVkNzdmMjRkMC4uNjFkYTU4YTlkZWVjMGY2
OGQ1ZGE2MjBlMmQ2ZmQ4MDMxNWE3NGMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHZv
aWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjpzZXRQcm9wZXJ0eUNoYW5nZWQodW5zaWduZWQgcHJvcGVy
dHlCaXQpCiAgICAgbV9zY3JvbGxpbmdTdGF0ZVRyZWUuc2V0SGFzQ2hhbmdlZFByb3BlcnRpZXMo
KTsKIH0KIAotUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlTm9k
ZTo6Y2xvbmVBbmRSZXNldChTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKK1JlZjxT
Y3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVBbmRSZXNldChTY3Jv
bGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKIHsKICAgICBhdXRvIGNsb25lID0gdGhpcy0+
Y2xvbmUoYWRvcHRpdmVUcmVlKTsKIApAQCAtODAsNyArODAsOCBAQCBQYXNzUmVmUHRyPFNjcm9s
bGluZ1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KFNjcm9sbGlu
Z1N0YXRlVAogICAgIHJlc2V0Q2hhbmdlZFByb3BlcnRpZXMoKTsKIAogICAgIGNsb25lQW5kUmVz
ZXRDaGlsZHJlbihjbG9uZS5nZXQoKSwgYWRvcHRpdmVUcmVlKTsKLSAgICByZXR1cm4gV1RGTW92
ZShjbG9uZSk7CisKKyAgICByZXR1cm4gY2xvbmU7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVO
b2RlOjpjbG9uZUFuZFJlc2V0Q2hpbGRyZW4oU2Nyb2xsaW5nU3RhdGVOb2RlJiBjbG9uZSwgU2Ny
b2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpCkBAIC05MiwxNCArOTMsMTMgQEAgdm9pZCBT
Y3JvbGxpbmdTdGF0ZU5vZGU6OmNsb25lQW5kUmVzZXRDaGlsZHJlbihTY3JvbGxpbmdTdGF0ZU5v
ZGUmIGNsb25lLCBTY3JvbGwKICAgICAgICAgY2xvbmUuYXBwZW5kQ2hpbGQoY2hpbGQtPmNsb25l
QW5kUmVzZXQoYWRvcHRpdmVUcmVlKSk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjph
cHBlbmRDaGlsZChQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2hpbGROb2RlKQordm9p
ZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxkKFJlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+
JiYgY2hpbGROb2RlKQogewogICAgIGNoaWxkTm9kZS0+c2V0UGFyZW50KHRoaXMpOwogCiAgICAg
aWYgKCFtX2NoaWxkcmVuKQogICAgICAgICBtX2NoaWxkcmVuID0gc3RkOjptYWtlX3VuaXF1ZTxW
ZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4+PigpOwotCi0gICAgbV9jaGlsZHJlbi0+
YXBwZW5kKGNoaWxkTm9kZSk7CisgICAgbV9jaGlsZHJlbi0+YXBwZW5kKFdURk1vdmUoY2hpbGRO
b2RlKSk7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjpzZXRMYXllcihjb25zdCBMYXll
clJlcHJlc2VudGF0aW9uJiBsYXllclJlcHJlc2VudGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaAppbmRleCBiZmFkMWM0NWUw
ZDcxZjliYTdjMmJjMDgyM2YxMWJlNDY4ZDY5ZWMwLi4wODdkNjE4MjlhZGU1NDYxMDYxMjA1NzVi
ZDQxYTE2ODBlYmMxZDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZU5vZGUuaApAQCAtMjA2LDcgKzIwNiw3IEBAIHB1YmxpYzoKICAgICBi
b29sIGlzT3ZlcmZsb3dTY3JvbGxpbmdOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9ub2RlVHlwZSA9
PSBPdmVyZmxvd1Njcm9sbGluZ05vZGU7IH0KIAogICAgIHZpcnR1YWwgUmVmPFNjcm9sbGluZ1N0
YXRlTm9kZT4gY2xvbmUoU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpID0gMDsKLSAg
ICBQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xvbmVBbmRSZXNldChTY3JvbGxpbmdT
dGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSk7CisgICAgUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xv
bmVBbmRSZXNldChTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSk7CiAgICAgdm9pZCBj
bG9uZUFuZFJlc2V0Q2hpbGRyZW4oU2Nyb2xsaW5nU3RhdGVOb2RlJiwgU2Nyb2xsaW5nU3RhdGVU
cmVlJiBhZG9wdGl2ZVRyZWUpOwogCiAgICAgZW51bSB7CkBAIC0yMzgsNyArMjM4LDcgQEAgcHVi
bGljOgogCiAgICAgVmVjdG9yPFJlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+PiogY2hpbGRyZW4o
KSBjb25zdCB7IHJldHVybiBtX2NoaWxkcmVuLmdldCgpOyB9CiAKLSAgICB2b2lkIGFwcGVuZENo
aWxkKFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPik7CisgICAgdm9pZCBhcHBlbmRDaGls
ZChSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiYmKTsKIAogICAgIFN0cmluZyBzY3JvbGxpbmdTdGF0
ZVRyZWVBc1RleHQoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKaW5kZXggOThiNmNhZGNiNGMzNTFjZDJkNzY2
NjQ2NTczZTM4NWE3MzJmYzE0Mi4uMGJiYzFiNzMzODI3MTliNjI1OGQxMWQwNDk0MzNlMzI5ODdh
M2UwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZVRyZWUuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVUcmVl
OjpzZXRIYXNDaGFuZ2VkUHJvcGVydGllcyhib29sIGNoYW5nZWRQcm9wZXJ0aWVzKQogI2VuZGlm
CiB9CiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZVRyZWU6
OmNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBu
b2RlSUQpCitSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZVRyZWU6OmNyZWF0
ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQp
CiB7CiAgICAgc3dpdGNoIChub2RlVHlwZSkgewogICAgIGNhc2UgRml4ZWROb2RlOgpAQCAtODAs
NyArODAsNyBAQCBQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVU
cmVlOjpjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlCiAgICAgICAgIHJldHVybiBTY3JvbGxp
bmdTdGF0ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAg
IH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBy
ZXR1cm4gU2Nyb2xsaW5nU3RhdGVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKIH0K
IAogYm9vbCBTY3JvbGxpbmdTdGF0ZVRyZWU6Om5vZGVUeXBlQW5kUGFyZW50TWF0Y2goU2Nyb2xs
aW5nU3RhdGVOb2RlJiBub2RlLCBTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5n
Tm9kZUlEIHBhcmVudElEKSBjb25zdApAQCAtMTI5LDEzICsxMjksMTMgQEAgU2Nyb2xsaW5nTm9k
ZUlEIFNjcm9sbGluZ1N0YXRlVHJlZTo6YXR0YWNoTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2Rl
VHlwZSwgU2Nyb2wKICAgICAgICAgaWYgKG5vZGVUeXBlID09IEZyYW1lU2Nyb2xsaW5nTm9kZSAm
JiBwYXJlbnRJRCkgewogICAgICAgICAgICAgaWYgKGF1dG8gb3JwaGFuZWROb2RlID0gbV9vcnBo
YW5lZFN1YmZyYW1lTm9kZXMudGFrZShuZXdOb2RlSUQpKSB7CiAgICAgICAgICAgICAgICAgbmV3
Tm9kZSA9IG9ycGhhbmVkTm9kZS5nZXQoKTsKLSAgICAgICAgICAgICAgICBwYXJlbnQtPmFwcGVu
ZENoaWxkKFdURk1vdmUob3JwaGFuZWROb2RlKSk7CisgICAgICAgICAgICAgICAgcGFyZW50LT5h
cHBlbmRDaGlsZChvcnBoYW5lZE5vZGUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoIW5ld05vZGUpIHsKICAgICAgICAgICAgIGF1dG8g
c3RhdGVOb2RlID0gY3JlYXRlTm9kZShub2RlVHlwZSwgbmV3Tm9kZUlEKTsKLSAgICAgICAgICAg
IG5ld05vZGUgPSBzdGF0ZU5vZGUuZ2V0KCk7CisgICAgICAgICAgICBuZXdOb2RlID0gc3RhdGVO
b2RlLnB0cigpOwogICAgICAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZChXVEZNb3ZlKHN0YXRl
Tm9kZSkpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTgyLDcgKzE4Miw3IEBAIHN0ZDo6dW5pcXVl
X3B0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IFNjcm9sbGluZ1N0YXRlVHJlZTo6Y29tbWl0KExheWVy
UmVwcmVzZW50YXRpCiAgICAgdHJlZVN0YXRlQ2xvbmUtPnNldFByZWZlcnJlZExheWVyUmVwcmVz
ZW50YXRpb24ocHJlZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbik7CiAKICAgICBpZiAobV9yb290
U3RhdGVOb2RlKQotICAgICAgICB0cmVlU3RhdGVDbG9uZS0+c2V0Um9vdFN0YXRlTm9kZShzdGF0
aWNfcG9pbnRlcl9jYXN0PFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPihtX3Jvb3RT
dGF0ZU5vZGUtPmNsb25lQW5kUmVzZXQoKnRyZWVTdGF0ZUNsb25lKSkpOworICAgICAgICB0cmVl
U3RhdGVDbG9uZS0+c2V0Um9vdFN0YXRlTm9kZShzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8U2Nyb2xs
aW5nU3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KG1fcm9vdFN0YXRlTm9kZS0+Y2xvbmVBbmRSZXNl
dCgqdHJlZVN0YXRlQ2xvbmUpKSk7CiAKICAgICAvLyBDb3B5IHRoZSBJRHMgb2YgdGhlIG5vZGVz
IHRoYXQgaGF2ZSBiZWVuIHJlbW92ZWQgc2luY2UgdGhlIGxhc3QgY29tbWl0IGludG8gdGhlIGNs
b25lLgogICAgIHRyZWVTdGF0ZUNsb25lLT5tX25vZGVzUmVtb3ZlZFNpbmNlTGFzdENvbW1pdC5z
d2FwKG1fbm9kZXNSZW1vdmVkU2luY2VMYXN0Q29tbWl0KTsKQEAgLTIxMSw3ICsyMTEsOCBAQCB2
b2lkIFNjcm9sbGluZ1N0YXRlVHJlZTo6cmVtb3ZlTm9kZUFuZEFsbERlc2NlbmRhbnRzKFNjcm9s
bGluZ1N0YXRlTm9kZSogbm9kZSwgUwogICAgIGlmIChub2RlID09IG1fcm9vdFN0YXRlTm9kZSkK
ICAgICAgICAgbV9yb290U3RhdGVOb2RlID0gbnVsbHB0cjsKICAgICBlbHNlIGlmIChwYXJlbnQp
IHsKLSAgICAgICAgQVNTRVJUKHBhcmVudC0+Y2hpbGRyZW4oKSAmJiBwYXJlbnQtPmNoaWxkcmVu
KCktPmZpbmQobm9kZSkgIT0gbm90Rm91bmQpOworICAgICAgICBBU1NFUlQocGFyZW50LT5jaGls
ZHJlbigpKTsKKyAgICAgICAgQVNTRVJUKHBhcmVudC0+Y2hpbGRyZW4oKS0+ZmluZChub2RlKSAh
PSBub3RGb3VuZCk7CiAgICAgICAgIGlmIChhdXRvIGNoaWxkcmVuID0gcGFyZW50LT5jaGlsZHJl
bigpKSB7CiAgICAgICAgICAgICBzaXplX3QgaW5kZXggPSBjaGlsZHJlbi0+ZmluZChub2RlKTsK
ICAgICAgICAgICAgIGlmIChpbmRleCAhPSBub3RGb3VuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmgKaW5kZXggMzFmNmRiNzllN2I0
MGMxYjMyZjJlYTdjZGNmZmM0OGYxN2JmY2UzMS4uM2IyNTYxNTFhZDc0NGJjZjAyMzRkNzJkNGZk
M2EwYzc1ZDQzNjkxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nU3RhdGVUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nU3RhdGVUcmVlLmgKQEAgLTc0LDE3ICs3NCwxNCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRQcmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9uKExheWVyUmVwcmVzZW50YXRpb246OlR5
cGUgcmVwcmVzZW50YXRpb24pIHsgbV9wcmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9uID0gcmVw
cmVzZW50YXRpb247IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIHNldFJvb3RTdGF0ZU5vZGUoUGFz
c1JlZlB0cjxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4gcm9vdFN0YXRlTm9kZSkg
eyBtX3Jvb3RTdGF0ZU5vZGUgPSByb290U3RhdGVOb2RlOyB9CisgICAgdm9pZCBzZXRSb290U3Rh
dGVOb2RlKFJlZjxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4mJiByb290U3RhdGVO
b2RlKSB7IG1fcm9vdFN0YXRlTm9kZSA9IFdURk1vdmUocm9vdFN0YXRlTm9kZSk7IH0KICAgICB2
b2lkIGFkZE5vZGUoU2Nyb2xsaW5nU3RhdGVOb2RlKik7CiAKLSAgICBQYXNzUmVmUHRyPFNjcm9s
bGluZ1N0YXRlTm9kZT4gY3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9k
ZUlEKTsKKyAgICBSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjcmVhdGVOb2RlKFNjcm9sbGluZ05v
ZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOwogCiAgICAgYm9vbCBub2RlVHlwZUFuZFBhcmVudE1h
dGNoKFNjcm9sbGluZ1N0YXRlTm9kZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2Rl
SUQgcGFyZW50SUQpIGNvbnN0OwogCi0gICAgZW51bSBjbGFzcyBTdWJmcmFtZU5vZGVSZW1vdmFs
IHsKLSAgICAgICAgRGVsZXRlLAotICAgICAgICBPcnBoYW4KLSAgICB9OworICAgIGVudW0gY2xh
c3MgU3ViZnJhbWVOb2RlUmVtb3ZhbCB7IERlbGV0ZSwgT3JwaGFuIH07CiAgICAgdm9pZCByZW1v
dmVOb2RlQW5kQWxsRGVzY2VuZGFudHMoU2Nyb2xsaW5nU3RhdGVOb2RlKiwgU3ViZnJhbWVOb2Rl
UmVtb3ZhbCA9IFN1YmZyYW1lTm9kZVJlbW92YWw6OkRlbGV0ZSk7CiAKICAgICB2b2lkIHJlY3Vy
c2l2ZU5vZGVXaWxsQmVSZW1vdmVkKFNjcm9sbGluZ1N0YXRlTm9kZSogY3Vyck5vZGUsIFN1YmZy
YW1lTm9kZVJlbW92YWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxpbmdUcmVlLmNwcAppbmRleCBkMDBlYzVkZDliMWI3ZDRhNmQ2MWJmNWQxMzliNDk5MmU2Mzdk
OGVmLi40MGJjYzYzZmY4YzMzN2FmYmMxMGJkNGI5OWViMWMwMDNmNDc1MGMzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtMTc5LDcg
KzE3OSw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJlZUZyb21TdGF0ZU5vZGUoY29u
c3QgU2Nyb2xsaW5nU3RhdGVOb2RlKiBzdGF0ZU5vZGUsCiAgICAgICAgIGlmIChwYXJlbnRJdCAh
PSBtX25vZGVNYXAuZW5kKCkpIHsKICAgICAgICAgICAgIFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJl
bnQgPSBwYXJlbnRJdC0+dmFsdWU7CiAgICAgICAgICAgICBub2RlLT5zZXRQYXJlbnQocGFyZW50
KTsKLSAgICAgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQobm9kZSk7CisgICAgICAgICAgICBw
YXJlbnQtPmFwcGVuZENoaWxkKCpub2RlKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTg5LDcg
KzE4OSw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJlZUZyb21TdGF0ZU5vZGUoY29u
c3QgU2Nyb2xsaW5nU3RhdGVOb2RlKiBzdGF0ZU5vZGUsCiAgICAgaWYgKGF1dG8gbm9kZUNoaWxk
cmVuID0gbm9kZS0+Y2hpbGRyZW4oKSkgewogICAgICAgICBmb3IgKGF1dG8mIGNoaWxkU2Nyb2xs
aW5nTm9kZSA6ICpub2RlQ2hpbGRyZW4pIHsKICAgICAgICAgICAgIGNoaWxkU2Nyb2xsaW5nTm9k
ZS0+c2V0UGFyZW50KG51bGxwdHIpOwotICAgICAgICAgICAgb3JwaGFuTm9kZXMuYWRkKGNoaWxk
U2Nyb2xsaW5nTm9kZS0+c2Nyb2xsaW5nTm9kZUlEKCksIGNoaWxkU2Nyb2xsaW5nTm9kZSk7Cisg
ICAgICAgICAgICBvcnBoYW5Ob2Rlcy5hZGQoY2hpbGRTY3JvbGxpbmdOb2RlLT5zY3JvbGxpbmdO
b2RlSUQoKSwgY2hpbGRTY3JvbGxpbmdOb2RlLmdldCgpKTsKICAgICAgICAgfQogICAgICAgICBu
b2RlQ2hpbGRyZW4tPmNsZWFyKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDY3MzRiNTNhZGFiNWMzOTliOTMzYWMzNzdlZGU3
NGI4YzJhMDVhNGQuLmFhZjJkNDc4YmJiODAwOTVmNTU5NmM5MTQ2MDZlMmI5YjVkOGY4Y2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTc0
LDcgKzc0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRNYWluRnJhbWVQaW5TdGF0ZShib29s
IHBpbm5lZFRvVGhlTGVmdCwgYm9vbCBwaW5uZWRUb1RoZVJpZ2h0LCBib29sIHBpbm5lZFRvVGhl
VG9wLCBib29sIHBpbm5lZFRvVGhlQm90dG9tKTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxT
Y3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5
cGUsIFNjcm9sbGluZ05vZGVJRCkgPSAwOworICAgIHZpcnR1YWwgUmVmPFNjcm9sbGluZ1RyZWVO
b2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5n
Tm9kZUlEKSA9IDA7CiAKICAgICAvLyBDYWxsZWQgYWZ0ZXIgYSBzY3JvbGxpbmcgdHJlZSBub2Rl
IGhhcyBoYW5kbGVkIGEgc2Nyb2xsIGFuZCB1cGRhdGVkIGl0cyBsYXllcnMuCiAgICAgLy8gVXBk
YXRlcyBGcmFtZVZpZXcvUmVuZGVyTGF5ZXIgc2Nyb2xsaW5nIHN0YXRlIGFuZCBHcmFwaGljc0xh
eWVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVOb2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVOb2RlLmNwcAppbmRleCBkZWI3ODFhMWMxZjlmZGQwMzNjOTk5NWM5OTIxYzA3Mjk5MjY5YTJh
Li4wZjY2MTZkMGYzZGMzNTc4NjMwNmZkNDY2ZjdhNjk2NDE1YjJlZWU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwCkBAIC00
NSwyMiArNDUsMjEgQEAgU2Nyb2xsaW5nVHJlZU5vZGU6On5TY3JvbGxpbmdUcmVlTm9kZSgpCiB7
CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZU5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8U2Ny
b2xsaW5nVHJlZU5vZGU+IGNoaWxkTm9kZSkKK3ZvaWQgU2Nyb2xsaW5nVHJlZU5vZGU6OmFwcGVu
ZENoaWxkKFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4mJiBjaGlsZE5vZGUpCiB7CiAgICAgY2hpbGRO
b2RlLT5zZXRQYXJlbnQodGhpcyk7CiAKICAgICBpZiAoIW1fY2hpbGRyZW4pCi0gICAgICAgIG1f
Y2hpbGRyZW4gPSBzdGQ6Om1ha2VfdW5pcXVlPFNjcm9sbGluZ1RyZWVDaGlsZHJlblZlY3Rvcj4o
KTsKLQotICAgIG1fY2hpbGRyZW4tPmFwcGVuZChjaGlsZE5vZGUpOworICAgICAgICBtX2NoaWxk
cmVuID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPj4+
KCk7CisgICAgbV9jaGlsZHJlbi0+YXBwZW5kKFdURk1vdmUoY2hpbGROb2RlKSk7CiB9CiAKLXZv
aWQgU2Nyb2xsaW5nVHJlZU5vZGU6OnJlbW92ZUNoaWxkKFNjcm9sbGluZ1RyZWVOb2RlKiBub2Rl
KQordm9pZCBTY3JvbGxpbmdUcmVlTm9kZTo6cmVtb3ZlQ2hpbGQoU2Nyb2xsaW5nVHJlZU5vZGUm
IG5vZGUpCiB7CiAgICAgaWYgKCFtX2NoaWxkcmVuKQogICAgICAgICByZXR1cm47CiAKLSAgICBz
aXplX3QgaW5kZXggPSBtX2NoaWxkcmVuLT5maW5kKG5vZGUpOworICAgIHNpemVfdCBpbmRleCA9
IG1fY2hpbGRyZW4tPmZpbmQoJm5vZGUpOwogCiAgICAgLy8gVGhlIGluZGV4IHdpbGwgYmUgbm90
Rm91bmQgaWYgdGhlIG5vZGUgdG8gcmVtb3ZlIGlzIGEgZGVlcGVyLXRoYW4tMS1sZXZlbCBkZXNj
ZW5kYW50IG9yCiAgICAgLy8gaWYgbm9kZSBpcyB0aGUgcm9vdCBzdGF0ZSBub2RlLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKaW5kZXgg
M2U4NmUzZDQ3OGQzNDA2OTM1OWVhYTVjNmI5Y2ZiYWM2NzVjZWQwNS4uMmUxNjMyNDZiYjk2ZTMz
ZmVmNjJhZGE3MWI0MWEyMTM5MjEyNzkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCkBAIC02MCwxMSArNjAsMTAgQEAgcHVibGlj
OgogICAgIFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJlbnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmVu
dDsgfQogICAgIHZvaWQgc2V0UGFyZW50KFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJlbnQpIHsgbV9w
YXJlbnQgPSBwYXJlbnQ7IH0KIAotICAgIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxTY3JvbGxpbmdU
cmVlTm9kZT4+IFNjcm9sbGluZ1RyZWVDaGlsZHJlblZlY3RvcjsKLSAgICBTY3JvbGxpbmdUcmVl
Q2hpbGRyZW5WZWN0b3IqIGNoaWxkcmVuKCkgeyByZXR1cm4gbV9jaGlsZHJlbi5nZXQoKTsgfQot
ICAgIAotICAgIHZvaWQgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4p
OwotICAgIHZvaWQgcmVtb3ZlQ2hpbGQoU2Nyb2xsaW5nVHJlZU5vZGUqKTsKKyAgICBWZWN0b3I8
UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPj4qIGNoaWxkcmVuKCkgeyByZXR1cm4gbV9jaGlsZHJl
bi5nZXQoKTsgfQorCisgICAgdm9pZCBhcHBlbmRDaGlsZChSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+
JiYpOworICAgIHZvaWQgcmVtb3ZlQ2hpbGQoU2Nyb2xsaW5nVHJlZU5vZGUmKTsKIAogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZHVtcChUZXh0U3RyZWFtJiwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNU
ZXh0QmVoYXZpb3IpIGNvbnN0OwogCkBAIC03Miw3ICs3MSw3IEBAIHByb3RlY3RlZDoKICAgICBT
Y3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9s
bGluZ05vZGVJRCk7CiAgICAgU2Nyb2xsaW5nVHJlZSYgc2Nyb2xsaW5nVHJlZSgpIGNvbnN0IHsg
cmV0dXJuIG1fc2Nyb2xsaW5nVHJlZTsgfQogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGlu
Z1RyZWVDaGlsZHJlblZlY3Rvcj4gbV9jaGlsZHJlbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVj
dG9yPFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4+PiBtX2NoaWxkcmVuOwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgdmlydHVhbCB2b2lkIGR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBTY3JvbGxp
bmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IGJj
YjQ4ZTQ5NWMxYjBiODllNzVhN2FhMzNlODVlNTk0ZDdjNWU2ODUuLmY2NjRlZDNhYzNiZTUzOGRm
ZjJmZTU4ODAyYTA5NzdhYTBhYTA4OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcApAQCAtMzksOCArMzksOCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6VGhyZWFk
ZWRTY3JvbGxpbmdUcmVlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKQotICAgIDogbV9zY3JvbGxpbmdDb29yZGluYXRvcihzY3JvbGxpbmdDb29yZGluYXRv
cikKK1RocmVhZGVkU2Nyb2xsaW5nVHJlZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlKEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3ImIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorICAgIDogbV9zY3JvbGxp
bmdDb29yZGluYXRvcigmc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiB7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKaW5k
ZXggNzMyNTQwNTljMmQ3NzAyMDVjZWZkYmQxNTMwYWIyNzkwNGFhNzM2My4uNmQxZDQ5ZDY3ZWNh
NWZhOGQ1MmE4NThlZWNmNWY5M2VlOWM5NzBkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NSw3ICs1NSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGludmFsaWRhdGUoKSBvdmVycmlkZTsKIAogcHJvdGVjdGVk
OgotICAgIGV4cGxpY2l0IFRocmVhZGVkU2Nyb2xsaW5nVHJlZShBc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yKik7CisgICAgZXhwbGljaXQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlKEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3ImKTsKIAogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwo
U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qg
c3RkOjpvcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGlu
Z0xheWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5j
KSBvdmVycmlkZTsKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFNj
cm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Nj
cm9sbGluZ1RyZWVJT1MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Nj
cm9sbGluZ1RyZWVJT1MuY3BwCmluZGV4IDEwYjNmODczNDVmZGE0M2NjZGZlOWMxNWZlNDE3ZjQ2
YWY1NTQ1ZWEuLjFmMDNlNjg2ZTlmODc1OGVjNjVhOWI2ZjliNjE3ZWIyZjg2OGM2NDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9T
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJl
ZUlPUy5jcHAKQEAgLTQwLDEzICs0MCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJl
ZjxTY3JvbGxpbmdUcmVlSU9TPiBTY3JvbGxpbmdUcmVlSU9TOjpjcmVhdGUoQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCitSZWY8U2Nyb2xsaW5nVHJlZUlP
Uz4gU2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFNjcm9sbGlu
Z1RyZWVJT1Moc2Nyb2xsaW5nQ29vcmRpbmF0b3IpKTsKIH0KIAotU2Nyb2xsaW5nVHJlZUlPUzo6
U2Nyb2xsaW5nVHJlZUlPUyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29y
ZGluYXRvcikKLSAgICA6IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3Ioc2Nyb2xsaW5nQ29vcmRpbmF0
b3IpCitTY3JvbGxpbmdUcmVlSU9TOjpTY3JvbGxpbmdUcmVlSU9TKEFzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3ImIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorICAgIDogbV9zY3JvbGxpbmdDb29yZGlu
YXRvcigmc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiB7CiB9CiAKQEAgLTgzLDIwICs4MywyMSBAQCB2
b2lkIFNjcm9sbGluZ1RyZWVJT1M6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGlu
Z05vZGVJRCBub2RlSUQsIGNvbnN0CiAgICAgfSk7CiB9CiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5n
VHJlZU5vZGU+IFNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9s
bGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQorUmVmPFNjcm9s
bGluZ1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlSU9TOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShT
Y3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKIHsKICAg
ICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2FzZSBGcmFtZVNjcm9sbGluZ05vZGU6CiAgICAg
ICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlSU9TOjpjcmVhdGUoKnRo
aXMsIG5vZGVJRCk7CiAgICAgY2FzZSBPdmVyZmxvd1Njcm9sbGluZ05vZGU6CiAgICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBGaXhlZE5vZGU6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4
ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgY2FzZSBTdGlja3lOb2RlOgogICAg
ICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlE
KTsKICAgICB9Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlE
KTsKIH0KIAogRmxvYXRSZWN0IFNjcm9sbGluZ1RyZWVJT1M6OmZpeGVkUG9zaXRpb25SZWN0KCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdU
cmVlSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJl
ZUlPUy5oCmluZGV4IDFhOWFhZTFiNDBjODEyNjgzNDQ4NDFjZTdiMzA3NWVmNzBhN2U1NTQuLmFl
YTY5YjM5ZjU5Yzk2MTVkMTgwYWFlYTZlYjg5NzI1OWNkYWQ5NDEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaApAQCAtMjks
MzUgKzI5LDMxIEBACiAKICNpbmNsdWRlICJTY3JvbGxpbmdTdGF0ZVRyZWUuaCIKICNpbmNsdWRl
ICJTY3JvbGxpbmdUcmVlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRl
IDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvcjsKIAotY2xhc3MgU2Nyb2xsaW5nVHJlZUlPUyA6IHB1YmxpYyBTY3Jv
bGxpbmdUcmVlIHsKK2NsYXNzIFNjcm9sbGluZ1RyZWVJT1MgZmluYWwgOiBwdWJsaWMgU2Nyb2xs
aW5nVHJlZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlSU9TPiBjcmVh
dGUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciopOworICAgIHN0YXRpYyBSZWY8U2Nyb2xsaW5n
VHJlZUlPUz4gY3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImKTsKICAgICB2aXJ0dWFs
IH5TY3JvbGxpbmdUcmVlSU9TKCk7CiAKLSAgICAvLyBObyB3aGVlbCBldmVudHMgb24gaU9TCi0g
ICAgdm9pZCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92ZXJy
aWRlIHsgfQotICAgIEV2ZW50UmVzdWx0IHRyeVRvSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZSB7IHJldHVybiBEaWROb3RIYW5kbGVFdmVudDsgfQot
Ci0gICAgdm9pZCBpbnZhbGlkYXRlKCkgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6Ci0gICAgZXhwbGlj
aXQgU2Nyb2xsaW5nVHJlZUlPUyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKik7Ci0gICAgYm9v
bCBpc1Njcm9sbGluZ1RyZWVJT1MoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9Cisg
ICAgZXhwbGljaXQgU2Nyb2xsaW5nVHJlZUlPUyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJik7
CiAKLSAgICBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVl
Tm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKKyAgICBi
b29sIGlzU2Nyb2xsaW5nVHJlZUlPUygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAot
ICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25z
dCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qgc3RkOjpvcHRpb25hbDxGbG9hdFBv
aW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24g
PSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBvdmVycmlkZTsKKyAgICAvLyBO
byB3aGVlbCBldmVudHMgb24gaU9TCisgICAgdm9pZCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYpIGZpbmFsIHsgfQorICAgIEV2ZW50UmVzdWx0IHRyeVRvSGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBmaW5hbCB7IHJldHVybiBEaWRO
b3RIYW5kbGVFdmVudDsgfQogCi0gICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENo
YW5nZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2ln
bmVkIHZlcnRpY2FsKSBvdmVycmlkZTsKKyAgICB2b2lkIGludmFsaWRhdGUoKSBmaW5hbDsKIAot
ICAgIEZsb2F0UmVjdCBmaXhlZFBvc2l0aW9uUmVjdCgpIG92ZXJyaWRlOworICAgIFJlZjxTY3Jv
bGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUs
IFNjcm9sbGluZ05vZGVJRCkgZmluYWw7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNj
cm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBj
b25zdCBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Ny
b2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246
OlN5bmMpIGZpbmFsOworICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2Uo
V2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2
ZXJ0aWNhbCkgZmluYWw7CisgICAgRmxvYXRSZWN0IGZpeGVkUG9zaXRpb25SZWN0KCkgZmluYWw7
CiAKICAgICBSZWZQdHI8QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcj4gbV9zY3JvbGxpbmdDb29y
ZGluYXRvcjsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KaW5kZXggZDQzZDk0YjI0N2E2ZTRm
OTM5NzQxNTgyNjE5N2MyYjBhZGYwNzE0OC4uODYxMThiNDQ1MDA3OTQ2Y2YwZmE3ODNjNWQ1NDNl
MTE5ZTllYmY2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQpAQCAtNTQsNyArNTQsNyBAQCBT
Y3JvbGxpbmdDb29yZGluYXRvck1hYzo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMoUGFnZSogcGFn
ZSkKICAgICA6IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IocGFnZSkKICAgICAsIG1fc2Nyb2xs
aW5nU3RhdGVUcmVlQ29tbWl0dGVyVGltZXIoKnRoaXMsICZTY3JvbGxpbmdDb29yZGluYXRvck1h
Yzo6Y29tbWl0VHJlZVN0YXRlKQogewotICAgIHNldFNjcm9sbGluZ1RyZWUoU2Nyb2xsaW5nVHJl
ZU1hYzo6Y3JlYXRlKHRoaXMpKTsKKyAgICBzZXRTY3JvbGxpbmdUcmVlKFNjcm9sbGluZ1RyZWVN
YWM6OmNyZWF0ZSgqdGhpcykpOwogfQogCiBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6flNjcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNwcAppbmRleCA3MGRiYzA2Y2YwMTNiZjMxYjhk
YTA3ZmRlMGQzOTg4YzYxYjRkODBhLi44OTlmMWU5MDE2N2RiOGM4ZWExZmE2ZDhlYWVmNGM3MDQx
MTIwNTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZU1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ1RyZWVNYWMuY3BwCkBAIC0zNCwzMCArMzQsMzEgQEAKIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKLVJlZjxTY3JvbGxpbmdUcmVlTWFjPiBTY3JvbGxpbmdUcmVlTWFjOjpj
cmVhdGUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCitS
ZWY8U2Nyb2xsaW5nVHJlZU1hYz4gU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlKEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3ImIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQogewogICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IFNjcm9sbGluZ1RyZWVNYWMoc2Nyb2xsaW5nQ29vcmRpbmF0b3IpKTsKIH0KIAot
U2Nyb2xsaW5nVHJlZU1hYzo6U2Nyb2xsaW5nVHJlZU1hYyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yKiBzY3JvbGxpbmdDb29yZGluYXRvcikKK1Njcm9sbGluZ1RyZWVNYWM6OlNjcm9sbGluZ1Ry
ZWVNYWMoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYgc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiAg
ICAgOiBUaHJlYWRlZFNjcm9sbGluZ1RyZWUoc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiB7CiB9CiAK
LVBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9sbGluZ1RyZWVNYWM6OmNyZWF0ZVNj
cm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2Rl
SUQgbm9kZUlEKQorUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlTWFjOjpjcmVh
dGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5n
Tm9kZUlEIG5vZGVJRCkKIHsKICAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2FzZSBGcmFt
ZVNjcm9sbGluZ05vZGU6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTWFjOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgY2FzZSBPdmVyZmxvd1Njcm9s
bGluZ05vZGU6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBGaXhlZE5vZGU6CiAgICAgICAgIHJl
dHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAg
Y2FzZSBTdGlja3lOb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGU6
OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICB9Ci0gICAgcmV0dXJuIG51bGxwdHI7CisgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6
OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JP
TExJTkcpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCmluZGV4IDQzYTQ2Yjc3ZTg1YjQ1ZmY2MWNi
MmI5YTZiYmIzMmMyYzBlZmZhNTcuLjQ5OWZjM2ZmMTdiY2Y5NDkwYTgzNzIyNjQyZjZiYzgzYmUw
MGI3ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVNYWMuaApAQCAtMzEsMTQgKzMxLDE0IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgU2Nyb2xsaW5nVHJlZU1hYyA6IHB1YmxpYyBUaHJlYWRlZFNjcm9sbGluZ1Ry
ZWUgeworY2xhc3MgU2Nyb2xsaW5nVHJlZU1hYyBmaW5hbCA6IHB1YmxpYyBUaHJlYWRlZFNjcm9s
bGluZ1RyZWUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U2Nyb2xsaW5nVHJlZU1hYz4gY3Jl
YXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqKTsKKyAgICBzdGF0aWMgUmVmPFNjcm9sbGlu
Z1RyZWVNYWM+IGNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJik7CiAKLSAgICBQYXNz
UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxp
bmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKLSAgICAKIHByaXZhdGU6Ci0g
ICAgZXhwbGljaXQgU2Nyb2xsaW5nVHJlZU1hYyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKik7
CisgICAgZXhwbGljaXQgU2Nyb2xsaW5nVHJlZU1hYyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Jik7CisKKyAgICBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2Rl
KFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIGZpbmFsOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZl
bnRIYW5kbGVyV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldp
bi5jcHAKaW5kZXggNjE2MDcwOTBkMjZjOTljMWFlMjUzZjVhNGVjNWQ2NmQ1MWMzZDYxNS4uMzI0
MzBjNDdiODdkMWMwODg0NDlhY2JkY2QwYjM2NDcxM2YwOTQyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCkBAIC04MSw3ICs4MSw3IEBAIGJvb2wgRXZl
bnRIYW5kbGVyOjp3aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYgd2hlZWxFdmVuCiAgICAgcmV0dXJuIGRvd25jYXN0PEZyYW1lVmlldz4od2lkZ2V0KS5m
cmFtZSgpLmV2ZW50SGFuZGxlcigpLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CiB9CiAK
LWJvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCop
IGNvbnN0Citib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJk
RXZlbnQmKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwogfQpAQCAtOTIsMTAgKzkyLDEyIEBA
IGJvb2wgRXZlbnRIYW5kbGVyOjpldmVudEFjdGl2YXRlZFZpZXcoY29uc3QgUGxhdGZvcm1Nb3Vz
ZUV2ZW50JiBldmVudCkgY29uc3QKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNz
UmVmUHRyPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFu
c2ZlcigpIGNvbnN0CisKK1JlZjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJh
Z2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNy
ZWF0ZUZvckRyYWdBbmREcm9wKCk7CiB9CisKICNlbmRpZgogCiB2b2lkIEV2ZW50SGFuZGxlcjo6
Zm9jdXNEb2N1bWVudFZpZXcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q3Vyc29yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaAppbmRleCA2OGQwNjlk
M2E0Mzg0Njg4ZGYyZGVjODhlODM0MDQ5ZjUzMmIxMTFkLi4yYWZmMjdiMjU3NGYzMzdkOGVkM2Nk
ZmYwY2E0MGFkZTRhZDE0YzgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
dXJzb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaApAQCAtNTQsMjQg
KzU0LDI4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEltYWdlOwogCiAjaWYgUExBVEZP
Uk0oV0lOKQorCiBjbGFzcyBTaGFyZWRDdXJzb3IgOiBwdWJsaWMgUmVmQ291bnRlZDxTaGFyZWRD
dXJzb3I+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNoYXJlZEN1cnNvcj4gY3JlYXRlKEhD
VVJTT1IgbmF0aXZlQ3Vyc29yKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNoYXJlZEN1cnNvcihu
YXRpdmVDdXJzb3IpKTsgfQorICAgIHN0YXRpYyBSZWY8U2hhcmVkQ3Vyc29yPiBjcmVhdGUoSENV
UlNPUik7CiAgICAgflNoYXJlZEN1cnNvcigpOwogICAgIEhDVVJTT1IgbmF0aXZlQ3Vyc29yKCkg
Y29uc3QgeyByZXR1cm4gbV9uYXRpdmVDdXJzb3I7IH0KKwogcHJpdmF0ZToKLSAgICBTaGFyZWRD
dXJzb3IoSENVUlNPUiBuYXRpdmVDdXJzb3IpIDogbV9uYXRpdmVDdXJzb3IobmF0aXZlQ3Vyc29y
KSB7IH0KKyAgICBTaGFyZWRDdXJzb3IoSENVUlNPUik7CiAgICAgSENVUlNPUiBtX25hdGl2ZUN1
cnNvcjsKIH07Ci10eXBlZGVmIFJlZlB0cjxTaGFyZWRDdXJzb3I+IFBsYXRmb3JtQ3Vyc29yOwor
CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdJTikKK3VzaW5nIFBsYXRmb3JtQ3Vyc29yID0gUmVm
UHRyPFNoYXJlZEN1cnNvcj47CiAjZWxpZiBVU0UoQVBQS0lUKQotdHlwZWRlZiBOU0N1cnNvciAq
UGxhdGZvcm1DdXJzb3I7Cit1c2luZyBQbGF0Zm9ybUN1cnNvciA9IE5TQ3Vyc29yICo7CiAjZWxp
ZiBQTEFURk9STShHVEspCi10eXBlZGVmIEdSZWZQdHI8R2RrQ3Vyc29yPiBQbGF0Zm9ybUN1cnNv
cjsKK3VzaW5nIFBsYXRmb3JtQ3Vyc29yID0gR1JlZlB0cjxHZGtDdXJzb3I+OwogI2VsaWYgUExB
VEZPUk0oRUZMKQotdHlwZWRlZiBjb25zdCBjaGFyKiBQbGF0Zm9ybUN1cnNvcjsKLSNlbHNlCi10
eXBlZGVmIHZvaWQqIFBsYXRmb3JtQ3Vyc29yOwordXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBjb25z
dCBjaGFyKjsKICNlbmRpZgogCiBjbGFzcyBDdXJzb3IgewpAQCAtMTI0LDYxICsxMjgsNTAgQEAg
cHVibGljOgogICAgICAgICBDdXN0b20KICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIGNvbnN0IEN1cnNvciYgZnJvbVR5cGUoQ3Vyc29yOjpUeXBlKTsKKyAgICBDdXJzb3IoKSA9
IGRlZmF1bHQ7CiAKLSAgICBDdXJzb3IoKQogI2lmICFQTEFURk9STShJT1MpCi0gICAgICAgIC8v
IFRoaXMgaXMgYW4gaW52YWxpZCBDdXJzb3IgYW5kIHNob3VsZCBuZXZlciBhY3R1YWxseSBnZXQg
dXNlZC4KLSAgICAgICAgOiBtX3R5cGUoc3RhdGljX2Nhc3Q8VHlwZT4oLTEpKQotI2lmIEVOQUJM
RShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgICAgICwgbV9pbWFnZVNjYWxlRmFjdG9yKDEpCi0j
ZW5kaWYKLSAgICAgICAgLCBtX3BsYXRmb3JtQ3Vyc29yKDApCi0jZW5kaWYgLy8gIVBMQVRGT1JN
KElPUykKLSAgICB7Ci0gICAgfQogCi0jaWYgIVBMQVRGT1JNKElPUykKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgY29uc3QgQ3Vyc29yJiBmcm9tVHlwZShDdXJzb3I6OlR5cGUpOworCiAgICAg
V0VCQ09SRV9FWFBPUlQgQ3Vyc29yKEltYWdlKiwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QpOwot
ICAgIFdFQkNPUkVfRVhQT1JUIEN1cnNvcihjb25zdCBDdXJzb3ImKTsKIAogI2lmIEVOQUJMRShN
T1VTRV9DVVJTT1JfU0NBTEUpCiAgICAgLy8gSG90IHNwb3QgaXMgaW4gaW1hZ2UgcGl4ZWxzLgog
ICAgIFdFQkNPUkVfRVhQT1JUIEN1cnNvcihJbWFnZSosIGNvbnN0IEludFBvaW50JiBob3RTcG90
LCBmbG9hdCBpbWFnZVNjYWxlRmFjdG9yKTsKICNlbmRpZgogCi0gICAgV0VCQ09SRV9FWFBPUlQg
fkN1cnNvcigpOwotICAgIFdFQkNPUkVfRVhQT1JUIEN1cnNvciYgb3BlcmF0b3I9KGNvbnN0IEN1
cnNvciYpOwotCiAgICAgZXhwbGljaXQgQ3Vyc29yKFR5cGUpOwotICAgIFR5cGUgdHlwZSgpIGNv
bnN0Ci0gICAgewotICAgICAgICBBU1NFUlQobV90eXBlID49IDAgJiYgbV90eXBlIDw9IEN1c3Rv
bSk7Ci0gICAgICAgIHJldHVybiBtX3R5cGU7Ci0gICAgfQorCisgICAgVHlwZSB0eXBlKCkgY29u
c3Q7CiAgICAgSW1hZ2UqIGltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZS5nZXQoKTsgfQog
ICAgIGNvbnN0IEludFBvaW50JiBob3RTcG90KCkgY29uc3QgeyByZXR1cm4gbV9ob3RTcG90OyB9
CisKICNpZiBFTkFCTEUoTU9VU0VfQ1VSU09SX1NDQUxFKQogICAgIC8vIEltYWdlIHNjYWxlIGlu
IGltYWdlIHBpeGVscyBwZXIgbG9naWNhbCAoVUkpIHBpeGVsLgogICAgIGZsb2F0IGltYWdlU2Nh
bGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlU2NhbGVGYWN0b3I7IH0KICNlbmRpZgor
CiAgICAgV0VCQ09SRV9FWFBPUlQgUGxhdGZvcm1DdXJzb3IgcGxhdGZvcm1DdXJzb3IoKSBjb25z
dDsKIAotIHByaXZhdGU6Citwcml2YXRlOgogICAgIHZvaWQgZW5zdXJlUGxhdGZvcm1DdXJzb3Io
KSBjb25zdDsKIAotICAgIFR5cGUgbV90eXBlOworICAgIC8vIFRoZSB0eXBlIG9mIC0xIGluZGlj
YXRlcyBhbiBpbnZhbGlkIEN1cnNvciB0aGF0IHNob3VsZCBuZXZlciBhY3R1YWxseSBnZXQgdXNl
ZC4KKyAgICBUeXBlIG1fdHlwZSB7IHN0YXRpY19jYXN0PFR5cGU+KC0xKSB9OwogICAgIFJlZlB0
cjxJbWFnZT4gbV9pbWFnZTsKICAgICBJbnRQb2ludCBtX2hvdFNwb3Q7CisKICNpZiBFTkFCTEUo
TU9VU0VfQ1VSU09SX1NDQUxFKQotICAgIGZsb2F0IG1faW1hZ2VTY2FsZUZhY3RvcjsKKyAgICBm
bG9hdCBtX2ltYWdlU2NhbGVGYWN0b3IgeyAxIH07CiAjZW5kaWYKIAogI2lmICFVU0UoQVBQS0lU
KQotICAgIG11dGFibGUgUGxhdGZvcm1DdXJzb3IgbV9wbGF0Zm9ybUN1cnNvcjsKKyAgICBtdXRh
YmxlIFBsYXRmb3JtQ3Vyc29yIG1fcGxhdGZvcm1DdXJzb3IgeyBudWxscHRyIH07CiAjZWxzZQog
ICAgIG11dGFibGUgUmV0YWluUHRyPE5TQ3Vyc29yPiBtX3BsYXRmb3JtQ3Vyc29yOwogI2VuZGlm
CisKICNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQogfTsKIApAQCAtMjI4LDQgKzIyMSwxNSBAQCBj
b25zdCBDdXJzb3ImIG5vbmVDdXJzb3IoKTsKIGNvbnN0IEN1cnNvciYgZ3JhYkN1cnNvcigpOwog
Y29uc3QgQ3Vyc29yJiBncmFiYmluZ0N1cnNvcigpOwogCisjaWYgIVBMQVRGT1JNKElPUykKKwor
aW5saW5lIEN1cnNvcjo6VHlwZSBDdXJzb3I6OnR5cGUoKSBjb25zdAoreworICAgIEFTU0VSVCht
X3R5cGUgPj0gMCk7CisgICAgQVNTRVJUKG1fdHlwZSA8PSBDdXN0b20pOworICAgIHJldHVybiBt
X3R5cGU7Cit9CisKKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9lZmwvQ3Vyc29yRWZsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9DdXJzb3JFZmwuY3BwCmluZGV4IGIzZjQ0YWViN2VlYzRiZDJhOGU3
ZDUyZWVlZTJjMTI3NmRkMjQ2NjkuLjU5NjQ4YmIxNDg2Y2RhNWE2OWQxZjkxMTgwOTYzNTExNzdj
ZTY2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DdXJzb3JFZmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DdXJzb3JFZmwuY3BwCkBAIC00
MCwzNCArNDAsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLUN1cnNvcjo6Q3Vyc29yKGNv
bnN0IEN1cnNvciYgb3RoZXIpCi0gICAgOiBtX3R5cGUob3RoZXIubV90eXBlKQotICAgICwgbV9p
bWFnZShvdGhlci5tX2ltYWdlKQotICAgICwgbV9ob3RTcG90KG90aGVyLm1faG90U3BvdCkKLSNp
ZiBFTkFCTEUoTU9VU0VfQ1VSU09SX1NDQUxFKQotICAgICwgbV9pbWFnZVNjYWxlRmFjdG9yKG90
aGVyLm1faW1hZ2VTY2FsZUZhY3RvcikKLSNlbmRpZgotICAgICwgbV9wbGF0Zm9ybUN1cnNvcihv
dGhlci5tX3BsYXRmb3JtQ3Vyc29yKQotewotfQotCi1DdXJzb3I6On5DdXJzb3IoKQotewotfQot
Ci1DdXJzb3ImIEN1cnNvcjo6b3BlcmF0b3I9KGNvbnN0IEN1cnNvciYgb3RoZXIpCi17Ci0gICAg
bV90eXBlID0gb3RoZXIubV90eXBlOwotICAgIG1faW1hZ2UgPSBvdGhlci5tX2ltYWdlOwotICAg
IG1faG90U3BvdCA9IG90aGVyLm1faG90U3BvdDsKLSNpZiBFTkFCTEUoTU9VU0VfQ1VSU09SX1ND
QUxFKQotICAgIG1faW1hZ2VTY2FsZUZhY3RvciA9IG90aGVyLm1faW1hZ2VTY2FsZUZhY3RvcjsK
LSNlbmRpZgotICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBvdGhlci5tX3BsYXRmb3JtQ3Vyc29yOwot
Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCiBzdGF0aWMgY29uc3QgY2hhciogY3Vyc29yU3RyaW5n
KEN1cnNvcjo6VHlwZSB0eXBlKQogewogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjdXJzb3JTdHJp
bmdzW10gPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ3Vyc29y
R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwCmluZGV4
IGYwNzVmMzYzYTAzYTg0YmIxMmE3NjU0ZDA2YzhiZmRjYTcxNTlhMGIuLjQ2MzRlZmRhYzg1ZjE4
Mjk4YjQyNjdiNmJjY2VhOGE0M2FhYTNmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9DdXJzb3JHdGsuY3BwCkBAIC0xNzUsMjUgKzE3NSw0IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQ
bGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgfQogfQogCi1DdXJzb3I6OkN1cnNvcihjb25zdCBD
dXJzb3ImIG90aGVyKQotICAgIDogbV90eXBlKG90aGVyLm1fdHlwZSkKLSAgICAsIG1faW1hZ2Uo
b3RoZXIubV9pbWFnZSkKLSAgICAsIG1faG90U3BvdChvdGhlci5tX2hvdFNwb3QpCi0gICAgLCBt
X3BsYXRmb3JtQ3Vyc29yKG90aGVyLm1fcGxhdGZvcm1DdXJzb3IpCi17Ci19Ci0KLUN1cnNvciYg
Q3Vyc29yOjpvcGVyYXRvcj0oY29uc3QgQ3Vyc29yJiBvdGhlcikKLXsKLSAgICBtX3R5cGUgPSBv
dGhlci5tX3R5cGU7Ci0gICAgbV9pbWFnZSA9IG90aGVyLm1faW1hZ2U7Ci0gICAgbV9ob3RTcG90
ID0gb3RoZXIubV9ob3RTcG90OwotICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBvdGhlci5tX3BsYXRm
b3JtQ3Vyc29yOwotICAgIHJldHVybiAqdGhpczsKLX0KLQotQ3Vyc29yOjp+Q3Vyc29yKCkKLXsK
LX0KLQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1h
Yy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KaW5kZXggODVj
YzdjNWZkZDJjMTYwNjJjZjhhMDE4NjRhMjlmYzM0NDVhN2UwNS4uYWEzNDVlODhlNDgxMThjNDY4
N2I5ZWVmYmZjNzMyMThkYzQ3MDcwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL0N1cnNvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vy
c29yTWFjLm1tCkBAIC0yNDEsMzMgKzI0MSw2IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9y
bUN1cnNvcigpIGNvbnN0CiAgICAgfQogfQogCi1DdXJzb3I6OkN1cnNvcihjb25zdCBDdXJzb3Im
IG90aGVyKQotICAgIDogbV90eXBlKG90aGVyLm1fdHlwZSkKLSAgICAsIG1faW1hZ2Uob3RoZXIu
bV9pbWFnZSkKLSAgICAsIG1faG90U3BvdChvdGhlci5tX2hvdFNwb3QpCi0jaWYgRU5BQkxFKE1P
VVNFX0NVUlNPUl9TQ0FMRSkKLSAgICAsIG1faW1hZ2VTY2FsZUZhY3RvcihvdGhlci5tX2ltYWdl
U2NhbGVGYWN0b3IpCi0jZW5kaWYKLSAgICAsIG1fcGxhdGZvcm1DdXJzb3Iob3RoZXIubV9wbGF0
Zm9ybUN1cnNvcikKLXsKLX0KLQotQ3Vyc29yJiBDdXJzb3I6Om9wZXJhdG9yPShjb25zdCBDdXJz
b3ImIG90aGVyKQotewotICAgIG1fdHlwZSA9IG90aGVyLm1fdHlwZTsKLSAgICBtX2ltYWdlID0g
b3RoZXIubV9pbWFnZTsKLSAgICBtX2hvdFNwb3QgPSBvdGhlci5tX2hvdFNwb3Q7Ci0jaWYgRU5B
QkxFKE1PVVNFX0NVUlNPUl9TQ0FMRSkKLSAgICBtX2ltYWdlU2NhbGVGYWN0b3IgPSBvdGhlci5t
X2ltYWdlU2NhbGVGYWN0b3I7Ci0jZW5kaWYKLSAgICBtX3BsYXRmb3JtQ3Vyc29yID0gb3RoZXIu
bV9wbGF0Zm9ybUN1cnNvcjsKLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLUN1cnNvcjo6fkN1cnNv
cigpCi17Ci19Ci0KIE5TQ3Vyc29yICpDdXJzb3I6OnBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKIHsK
ICAgICBlbnN1cmVQbGF0Zm9ybUN1cnNvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL0N1cnNvcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
Q3Vyc29yV2luLmNwcAppbmRleCA3YTk5MzEzNmJhMmMzYTA1ZDJkMzE5NmE1NTY3NzE4YTAwZGFm
ODU5Li4wYWZjYTY2MTk2Y2Q1MWM3MDU5Y2FmOGE2NmMwOWViNjllZDJkZTE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ3Vyc29yV2luLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vQ3Vyc29yV2luLmNwcApAQCAtNDAsNiArNDAsMTYgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCitTaGFyZWRDdXJzb3I6OlNoYXJlZEN1cnNvcihIQ1VSU09S
IG5hdGl2ZUN1cnNvcikKKyAgICA6IG1fbmF0aXZlQ3Vyc29yKG5hdGl2ZUN1cnNvcikKK3sKK30K
KworUmVmPFNoYXJlZEN1cnNvcj4gU2hhcmVkQ3Vyc29yOjpjcmVhdGUoSENVUlNPUiBuYXRpdmVD
dXJzb3IpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hhcmVkQ3Vyc29yKG5hdGl2ZUN1
cnNvcikpOworfQorCiBzdGF0aWMgUmVmPFNoYXJlZEN1cnNvcj4gY3JlYXRlU2hhcmVkQ3Vyc29y
KEltYWdlKiBpbWcsIGNvbnN0IEludFBvaW50JiBob3RTcG90KQogewogICAgIEludFBvaW50IGVm
ZmVjdGl2ZUhvdFNwb3QgPSBkZXRlcm1pbmVIb3RTcG90KGltZywgaG90U3BvdCk7CkBAIC0yNTgs
MzEgKzI2OCw0IEBAIFNoYXJlZEN1cnNvcjo6flNoYXJlZEN1cnNvcigpCiAgICAgRGVzdHJveUlj
b24obV9uYXRpdmVDdXJzb3IpOwogfQogCi1DdXJzb3I6OkN1cnNvcihjb25zdCBDdXJzb3ImIG90
aGVyKQotICAgIDogbV90eXBlKG90aGVyLm1fdHlwZSkKLSAgICAsIG1faW1hZ2Uob3RoZXIubV9p
bWFnZSkKLSAgICAsIG1faG90U3BvdChvdGhlci5tX2hvdFNwb3QpCi0jaWYgRU5BQkxFKE1PVVNF
X0NVUlNPUl9TQ0FMRSkKLSAgICAsIG1faW1hZ2VTY2FsZUZhY3RvcihvdGhlci5tX2ltYWdlU2Nh
bGVGYWN0b3IpCi0jZW5kaWYKLSAgICAsIG1fcGxhdGZvcm1DdXJzb3Iob3RoZXIubV9wbGF0Zm9y
bUN1cnNvcikKLXsKLX0KLQotQ3Vyc29yJiBDdXJzb3I6Om9wZXJhdG9yPShjb25zdCBDdXJzb3Im
IG90aGVyKQotewotICAgIG1fdHlwZSA9IG90aGVyLm1fdHlwZTsKLSAgICBtX2ltYWdlID0gb3Ro
ZXIubV9pbWFnZTsKLSAgICBtX2hvdFNwb3QgPSBvdGhlci5tX2hvdFNwb3Q7Ci0jaWYgRU5BQkxF
KE1PVVNFX0NVUlNPUl9TQ0FMRSkKLSAgICBtX2ltYWdlU2NhbGVGYWN0b3IgPSBvdGhlci5tX2lt
YWdlU2NhbGVGYWN0b3I7Ci0jZW5kaWYKLSAgICBtX3BsYXRmb3JtQ3Vyc29yID0gb3RoZXIubV9w
bGF0Zm9ybUN1cnNvcjsKLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KLUN1cnNvcjo6fkN1cnNvcigp
Ci17Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCmluZGV4IDA2YWVlOWY5Nzk2MmZiY2E4
MjljZjVlMWJlMzgyNWU2ZmJkNTJkZTQuLjQ4MmI1ZGQxMzc1YjZmZTc3MjY3Y2I2MjZmNDE2MzZk
ZjhmNTM1ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJl
ZGRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVk
ZGVkT2JqZWN0LmNwcApAQCAtNjE2LDcgKzYxNiw3IEBAIHZvaWQgUmVuZGVyRW1iZWRkZWRPYmpl
Y3Q6OmhhbmRsZVVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yRXZlbnQoRXZlbnQqIGV2ZW50KQog
ICAgICAgICAgICAgc2V0VW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3JJc1ByZXNzZWQoZmFsc2Up
OwogICAgICAgICB9CiAgICAgICAgIGlmIChtX21vdXNlRG93bldhc0luVW5hdmFpbGFibGVQbHVn
aW5JbmRpY2F0b3IgJiYgaXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yKG1vdXNlRXZlbnQp
KSB7Ci0gICAgICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkudW5hdmFpbGFibGVQbHVn
aW5CdXR0b25DbGlja2VkKCZlbGVtZW50LCBtX3BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKTsK
KyAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS51bmF2YWlsYWJsZVBsdWdpbkJ1
dHRvbkNsaWNrZWQoZWxlbWVudCwgbV9wbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbik7CiAgICAg
ICAgIH0KICAgICAgICAgbV9tb3VzZURvd25XYXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9y
ID0gZmFsc2U7CiAgICAgICAgIGV2ZW50LT5zZXREZWZhdWx0SGFuZGxlZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAppbmRleCBhMWE5NGM2
N2I3ZTQ1MGU5ZWMwMzA1ZWUwNzA1OWRmMjJlYzA3NmQ0Li42MWNhYWJmNmFmYThlODcwMjY4NjFi
NGZlODA5N2NjMDk2MzUzZWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIFJlbmRlckxheWVyQmFja2lu
Zzo6UmVuZGVyTGF5ZXJCYWNraW5nKFJlbmRlckxheWVyJiBsYXllcikKIHsKICAgICBpZiAobGF5
ZXIuaXNSb290TGF5ZXIoKSkgewogICAgICAgICBtX2lzTWFpbkZyYW1lUmVuZGVyVmlld0xheWVy
ID0gcmVuZGVyZXIoKS5mcmFtZSgpLmlzTWFpbkZyYW1lKCk7Ci0gICAgICAgIG1fdXNpbmdUaWxl
ZENhY2hlTGF5ZXIgPSByZW5kZXJlcigpLnBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5zaG91bGRV
c2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcocmVuZGVyZXIoKS5mcmFtZSgpLnZpZXcoKSk7Cisg
ICAgICAgIG1fdXNpbmdUaWxlZENhY2hlTGF5ZXIgPSByZW5kZXJlcigpLnBhZ2UoKS5jaHJvbWUo
KS5jbGllbnQoKS5zaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcocmVuZGVyZXIoKS52
aWV3KCkuZnJhbWVWaWV3KCkpOwogICAgIH0KICAgICAKICAgICBjcmVhdGVQcmltYXJ5R3JhcGhp
Y3NMYXllcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcAppbmRleCAxMmI2MmM5Mjg3YmJmZmQ5ZTU3OThmNzY1ZDgyYzU3MDM3MzFl
NmRkLi42NWZkYzRkZmRhNDZmYmQyMmRiYmMzNDdhOTZiMjFjMmVlZGVjMTk3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAt
MzEwMyw3ICszMTAzLDcgQEAgR3JhcGhpY3NMYXllciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1
cGRhdGVMYXllckZvckhlYWRlcihib29sIHdhbnRzTGF5ZXIpCiAgICAgaWYgKFNjcm9sbGluZ0Nv
b3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5h
dG9yKCkpCiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdSb290TGF5ZXJE
aWRDaGFuZ2UobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpKTsKIAotICAgIHBhZ2UoKS5jaHJvbWUo
KS5jbGllbnQoKS5kaWRBZGRIZWFkZXJMYXllcihtX2xheWVyRm9ySGVhZGVyLmdldCgpKTsKKyAg
ICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlkQWRkSGVhZGVyTGF5ZXIoKm1fbGF5ZXJGb3JI
ZWFkZXIpOwogCiAgICAgcmV0dXJuIG1fbGF5ZXJGb3JIZWFkZXIuZ2V0KCk7CiB9CkBAIC0zMTQx
LDcgKzMxNDEsNyBAQCBHcmFwaGljc0xheWVyKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZUxheWVyRm9yRm9vdGVyKGJvb2wgd2FudHNMYXllcikKICAgICBpZiAoU2Nyb2xsaW5nQ29vcmRp
bmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3Io
KSkKICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld1Jvb3RMYXllckRpZENo
YW5nZShtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkpOwogCi0gICAgcGFnZSgpLmNocm9tZSgpLmNs
aWVudCgpLmRpZEFkZEZvb3RlckxheWVyKG1fbGF5ZXJGb3JGb290ZXIuZ2V0KCkpOworICAgIHBh
Z2UoKS5jaHJvbWUoKS5jbGllbnQoKS5kaWRBZGRGb290ZXJMYXllcigqbV9sYXllckZvckZvb3Rl
cik7CiAKICAgICByZXR1cm4gbV9sYXllckZvckZvb3Rlci5nZXQoKTsKIH0KQEAgLTM0NjMsMTEg
KzM0NjMsMTEgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmF0dGFjaFJvb3RMYXllcihS
b290TGF5ZXJBdHRhY2htZW50IGF0dGFjaG1lbnQpCiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgY2FzZSBSb290TGF5ZXJBdHRhY2hlZFZpYUNocm9tZUNsaWVudDogewogICAgICAgICAgICAg
RnJhbWUmIGZyYW1lID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLmZyYW1lKCk7Ci0gICAgICAg
ICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoJmZy
YW1lLCByb290R3JhcGhpY3NMYXllcigpKTsKKyAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5j
bGllbnQoKS5hdHRhY2hSb290R3JhcGhpY3NMYXllcihmcmFtZSwgcm9vdEdyYXBoaWNzTGF5ZXIo
KSk7CiAgICAgICAgICAgICBpZiAoZnJhbWUuaXNNYWluRnJhbWUoKSkgewogICAgICAgICAgICAg
ICAgIFBhZ2VPdmVybGF5Q29udHJvbGxlciYgcGFnZU92ZXJsYXlDb250cm9sbGVyID0gZnJhbWUu
bWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9sbGVyKCk7CiAgICAgICAgICAgICAgICAgcGFn
ZU92ZXJsYXlDb250cm9sbGVyLndpbGxBdHRhY2hSb290TGF5ZXIoKTsKLSAgICAgICAgICAgICAg
ICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVy
KCZmcmFtZSwgJnBhZ2VPdmVybGF5Q29udHJvbGxlci52aWV3T3ZlcmxheVJvb3RMYXllcigpKTsK
KyAgICAgICAgICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoVmlld092ZXJs
YXlHcmFwaGljc0xheWVyKGZyYW1lLCAmcGFnZU92ZXJsYXlDb250cm9sbGVyLnZpZXdPdmVybGF5
Um9vdExheWVyKCkpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KQEAgLTM1MDgsOSArMzUwOCw5IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkZXRh
Y2hSb290TGF5ZXIoKQogICAgIH0KICAgICBjYXNlIFJvb3RMYXllckF0dGFjaGVkVmlhQ2hyb21l
Q2xpZW50OiB7CiAgICAgICAgIEZyYW1lJiBmcmFtZSA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXco
KS5mcmFtZSgpOwotICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoUm9vdEdy
YXBoaWNzTGF5ZXIoJmZyYW1lLCAwKTsKKyAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgp
LmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKGZyYW1lLCBudWxscHRyKTsKICAgICAgICAgaWYgKGZy
YW1lLmlzTWFpbkZyYW1lKCkpCi0gICAgICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCku
YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKCZmcmFtZSwgMCk7CisgICAgICAgICAgICBw
YWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKGZy
YW1lLCBudWxscHRyKTsKICAgICB9CiAgICAgYnJlYWs7CiAgICAgY2FzZSBSb290TGF5ZXJVbmF0
dGFjaGVkOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVM
aXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKaW5k
ZXggZDJjMDJlZjlkNjBlMDZjNjg2NjcyM2U0NzQwNzM3YWQ4YzBjMzgyMS4uMzdjODNlOGQxZjVl
YmIwNTdiMTEwY2M4ODgxMDU0NTEyY2Q0ZDQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVudUxpc3QuY3BwCkBAIC0zNzEsNyArMzcxLDcgQEAgdm9pZCBSZW5kZXJNZW51
TGlzdDo6c2hvd1BvcHVwKCkKICAgICAvLyBpbnNpZGUgdGhlIHNob3dQb3B1cCBjYWxsIGFuZCBp
dCB3b3VsZCBmYWlsLgogICAgIGNyZWF0ZUlubmVyQmxvY2soKTsKICAgICBpZiAoIW1fcG9wdXAp
Ci0gICAgICAgIG1fcG9wdXAgPSBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY3JlYXRlUG9w
dXBNZW51KHRoaXMpOworICAgICAgICBtX3BvcHVwID0gZG9jdW1lbnQoKS5wYWdlKCktPmNocm9t
ZSgpLmNyZWF0ZVBvcHVwTWVudSgqdGhpcyk7CiAgICAgbV9wb3B1cElzVmlzaWJsZSA9IHRydWU7
CiAKICAgICAvLyBDb21wdXRlIHRoZSB0b3AgbGVmdCB0YWtpbmcgdHJhbnNmb3JtcyBpbnRvIGFj
Y291bnQsIGJ1dCB1c2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJTZWFyY2hGaWVsZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNo
RmllbGQuY3BwCmluZGV4IGI0NmQ4ZWQ3MTg2MDhjYWZlNjE2OTNlMTRiZTEzZTg2ZDRjYTgyMmMu
LmNhOTAwNTE4NGRiMjlhYzkyNzcwZGExMjc1NTgxNGM2MDgwNjIxY2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcApAQCAtOTcsNyArOTcsNyBA
QCB2b2lkIFJlbmRlclNlYXJjaEZpZWxkOjphZGRTZWFyY2hSZXN1bHQoKQogCiAgICAgY29uc3Qg
QXRvbWljU3RyaW5nJiBuYW1lID0gYXV0b3NhdmVOYW1lKCk7CiAgICAgaWYgKCFtX3NlYXJjaFBv
cHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNyZWF0ZVNlYXJj
aFBvcHVwTWVudSh0aGlzKTsKKyAgICAgICAgbV9zZWFyY2hQb3B1cCA9IHBhZ2UoKS5jaHJvbWUo
KS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUoKnRoaXMpOwogCiAgICAgbV9zZWFyY2hQb3B1cC0+c2F2
ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMpOwogfQpAQCAtMTA4LDcgKzEw
OCw3IEBAIHZvaWQgUmVuZGVyU2VhcmNoRmllbGQ6OnNob3dQb3B1cCgpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQb3B1cCA9IHBh
Z2UoKS5jaHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7CisgICAgICAgIG1fc2Vh
cmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KCp0aGlzKTsK
IAogICAgIGlmICghbV9zZWFyY2hQb3B1cC0+ZW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CkBA
IC0yMDEsNyArMjAxLDcgQEAgdm9pZCBSZW5kZXJTZWFyY2hGaWVsZDo6dmFsdWVDaGFuZ2VkKHVu
c2lnbmVkIGxpc3RJbmRleCwgYm9vbCBmaXJlRXZlbnRzKQogICAgICAgICAgICAgY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lID0gYXV0b3NhdmVOYW1lKCk7CiAgICAgICAgICAgICBpZiAoIW5hbWUu
aXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFtX3NlYXJjaFBvcHVwKQotICAgICAg
ICAgICAgICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNyZWF0ZVNlYXJj
aFBvcHVwTWVudSh0aGlzKTsKKyAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IHBh
Z2UoKS5jaHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUoKnRoaXMpOwogICAgICAgICAgICAg
ICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBtX3JlY2VudFNlYXJj
aGVzKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0FFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5j
cHAKaW5kZXggYmViMGEzOTUzYmM3MmZlZTEzYjM1MzhmZTU5N2NkMTkwOWQ5ZDNiZS4uNDIwMjNm
YTc2ODY1NGUxM2FmNmQzMjYyODJhZTM4MTY3YWNhOWRiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVs
ZW1lbnQuY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgYm9vbCBTVkdBRWxlbWVudDo6aXNLZXlib2Fy
ZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50JiBldmVudCkgY29uc3QKICAgICAgICAgcmV0dXJuIFNW
R0VsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpOwogCiAgICAgaWYgKGlzTGluaygp
KQotICAgICAgICByZXR1cm4gZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS50YWJz
VG9MaW5rcygmZXZlbnQpOworICAgICAgICByZXR1cm4gZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVu
dEhhbmRsZXIoKS50YWJzVG9MaW5rcyhldmVudCk7CiAKICAgICByZXR1cm4gU1ZHRWxlbWVudDo6
aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKaW5kZXggZmQ1NjRhZmYxNDA0ZTU4OGE5ZGM0
MWE2MzY3ZGIyZjBjYmRhMTI4Yi4uMDA0NDA0MWJmNzU3OGMzYzJhODYxN2I3ZmU3NjZmZDJjYmNi
MmQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xp
ZW50LmNwcApAQCAtNTEsNyArNTEsNyBAQCBNb2NrUGFnZU92ZXJsYXlDbGllbnQ6Ok1vY2tQYWdl
T3ZlcmxheUNsaWVudCgpCiBSZWY8TW9ja1BhZ2VPdmVybGF5PiBNb2NrUGFnZU92ZXJsYXlDbGll
bnQ6Omluc3RhbGxPdmVybGF5KE1haW5GcmFtZSYgbWFpbkZyYW1lLCBQYWdlT3ZlcmxheTo6T3Zl
cmxheVR5cGUgb3ZlcmxheVR5cGUpCiB7CiAgICAgYXV0byBvdmVybGF5ID0gUGFnZU92ZXJsYXk6
OmNyZWF0ZSgqdGhpcywgb3ZlcmxheVR5cGUpOwotICAgIG1haW5GcmFtZS5wYWdlT3ZlcmxheUNv
bnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkob3ZlcmxheS5wdHIoKSwgUGFnZU92ZXJsYXk6
OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgIG1haW5GcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xs
ZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkob3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpE
b05vdEZhZGUpOwogCiAgICAgYXV0byBtb2NrT3ZlcmxheSA9IE1vY2tQYWdlT3ZlcmxheTo6Y3Jl
YXRlKG92ZXJsYXkucHRyKCkpOwogICAgIG1fb3ZlcmxheXMuYWRkKG1vY2tPdmVybGF5LnB0cigp
KTsKQEAgLTY1LDcgKzY1LDcgQEAgdm9pZCBNb2NrUGFnZU92ZXJsYXlDbGllbnQ6OnVuaW5zdGFs
bEFsbE92ZXJsYXlzKCkKICAgICAgICAgUmVmUHRyPE1vY2tQYWdlT3ZlcmxheT4gbW9ja092ZXJs
YXkgPSBtX292ZXJsYXlzLnRha2VBbnkoKTsKICAgICAgICAgUGFnZU92ZXJsYXlDb250cm9sbGVy
KiBvdmVybGF5Q29udHJvbGxlciA9IG1vY2tPdmVybGF5LT5vdmVybGF5KCktPmNvbnRyb2xsZXIo
KTsKICAgICAgICAgQVNTRVJUKG92ZXJsYXlDb250cm9sbGVyKTsKLSAgICAgICAgb3ZlcmxheUNv
bnRyb2xsZXItPnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1vY2tPdmVybGF5LT5vdmVybGF5KCksIFBh
Z2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAgb3ZlcmxheUNvbnRyb2xs
ZXItPnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptb2NrT3ZlcmxheS0+b3ZlcmxheSgpLCBQYWdlT3Zl
cmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5h
Z2VyLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25D
YWNoZVF1b3RhTWFuYWdlci5tbQppbmRleCAzYjNjM2E0Mjk0YzE3YzU3OGI4MTkxNWRhMGIxYzRm
OGJmYTIzZWJhLi4wZDQ4MmI0ZGQ5MjViYzBiOGI4ZDQyNjFlZmMyYzdhNjU1NzZlMDkzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNh
Y2hlUXVvdGFNYW5hZ2VyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0KQEAgLTU5LDcgKzU5LDkgQEAgLSAo
dW5zaWduZWQgbG9uZyBsb25nKXVzYWdlCiAtICh1bnNpZ25lZCBsb25nIGxvbmcpcXVvdGEKIHsK
ICAgICBsb25nIGxvbmcgcXVvdGE7Ci0gICAgaWYgKHdlYkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdl
KCkuY2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oW19vcmlnaW4gX2NvcmVdLCBxdW90YSkpCisgICAg
aWYgKCFfb3JpZ2luKQorICAgICAgICByZXR1cm4gMDsKKyAgICBpZiAod2ViQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2UoKS5jYWxjdWxhdGVRdW90YUZvck9yaWdpbigqW19vcmlnaW4gX2NvcmVdLCBx
dW90YSkpCiAgICAgICAgIHJldHVybiBxdW90YTsKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXgg
ZjRmMDk2YzVkNjQ3M2ViYzZlN2FiZDU4M2I2ZGZlZjRhYWE0ZDE1OS4uN2Q4ZjNiODdmN2UzMjQ1
MTZkYjA2MTViZTU4ZDhkOTA1NTgyNGI4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChXZWJDb3JlOjpFbGVtZW50Kikgb3Zl
cnJpZGU7CiAgICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKikgZmlu
YWw7CiAKLSAgICBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWUqLCBj
b25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93RmVh
dHVyZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWw7CisgICAgV2Vi
Q29yZTo6UGFnZSogY3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6
RnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3Qg
V2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpIGZpbmFsOwogICAgIHZvaWQgc2hvdygpIGZpbmFs
OwogCiAgICAgYm9vbCBjYW5SdW5Nb2RhbCgpIGZpbmFsOwpAQCAtNzksMTYgKzc5LDE2IEBAIHBy
aXZhdGU6CiAKICAgICB2b2lkIHNldFJlc2l6YWJsZShib29sKSBmaW5hbDsKIAotICAgIHZvaWQg
YWRkTWVzc2FnZVRvQ29uc29sZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVs
LCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWdu
ZWQgY29sdW1uTnVtYmVyLCBjb25zdCBXVEY6OlN0cmluZyYgc291cmNlVVJMKSBmaW5hbDsKKyAg
ICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNp
Z25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKSBmaW5hbDsKIAogICAg
IGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgZmluYWw7Ci0gICAgYm9vbCBy
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIFdl
YkNvcmU6OkZyYW1lKikgZmluYWw7CisgICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwogCiAgICAg
dm9pZCBjbG9zZVdpbmRvd1Nvb24oKSBmaW5hbDsKIAotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFs
ZXJ0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKSBvdmVycmlkZTsKLSAgICBi
b29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJp
bmcmKSBvdmVycmlkZTsKLSAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJh
bWUqLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlZmF1
bHRWYWx1ZSwgV1RGOjpTdHJpbmcmIHJlc3VsdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBydW5KYXZh
U2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAg
ICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3RyaW5n
Jikgb3ZlcnJpZGU7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1l
JiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3Ry
aW5nJiByZXN1bHQpIG92ZXJyaWRlOwogCiAgICAgYm9vbCBzdXBwb3J0c0ltbWVkaWF0ZUludmFs
aWRhdGlvbigpIGZpbmFsOwogICAgIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKSBmaW5hbDsKQEAgLTEwNSwyOSArMTA1LDI5IEBAIHByaXZhdGU6CiAjZW5k
aWYKIAogICAgIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCBm
aW5hbDsKLSAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqLCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3QgZmluYWw7CisgICAgdm9pZCBjb250ZW50c1NpemVD
aGFuZ2VkKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0IGZp
bmFsOwogICAgIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBXVEY6OlN0
cmluZyYpIG92ZXJyaWRlOworICAgIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcm
KSBvdmVycmlkZTsKIAogICAgIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBm
aW5hbCB7IH0KICAgICBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9u
KFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNv
bikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQo
V2ViQ29yZTo6RWxlbWVudCosIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5V
bmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7CisgICAgdm9pZCB1bmF2YWlsYWJsZVBs
dWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVudCYsIFdlYkNvcmU6OlJlbmRlckVtYmVk
ZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7CiAgICAg
dm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0
JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgZmluYWw7CiAKLSAgICB2b2lkIHNldFRvb2xUaXAo
Y29uc3QgV1RGOjpTdHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKSBmaW5hbDsKKyAgICB2
b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgZmlu
YWw7CiAKLSAgICB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKikgZmluYWw7Ci0gICAgdm9pZCBl
eGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYg
ZGF0YWJhc2VOYW1lLCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMpIGZpbmFsOworICAgIHZvaWQg
cHJpbnQoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKKyAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VR
dW90YShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBXZWJDb3Jl
OjpEYXRhYmFzZURldGFpbHMpIGZpbmFsOwogICAgIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6
ZShpbnQ2NF90IHNwYWNlTmVlZGVkKSBmaW5hbDsKLSAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlv
bkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFs
U3BhY2VOZWVkZWQpIGZpbmFsOworICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIGludDY0X3QgdG90YWxTcGFjZU5lZWRl
ZCkgZmluYWw7CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgdm9pZCBhbm5v
dGF0ZWRSZWdpb25zQ2hhbmdlZCgpIGZpbmFsOwogI2VuZGlmCiAKICAgICB2b2lkIHJ1bk9wZW5Q
YW5lbChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkZpbGVDaG9vc2VyJikgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJD
b3JlOjpGaWxlSWNvbkxvYWRlciYpIGZpbmFsOworICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhj
b25zdCBWZWN0b3I8U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJikgZmluYWw7CiAK
ICNpZiAhUExBVEZPUk0oSU9TKQogICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1
cnNvciYpIGZpbmFsOwpAQCAtMTM1LDcgKzEzNSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpD
b2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXJDbGll
bnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpIGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJDb3JlOjpDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNo
b29zZXJDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpIGZpbmFsOwogI2VuZGlmCiAKICNp
ZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQpAQCAtMTUxLDE2ICsxNTEsMTYgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGVuYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBkaXNhYmxl
U3VkZGVuVGVybWluYXRpb24oKSBmaW5hbDsKIAotICAgIGJvb2wgc2hvdWxkUmVwbGFjZVdpdGhH
ZW5lcmF0ZWRGaWxlRm9yVXBsb2FkKGNvbnN0IFdURjo6U3RyaW5nJiBwYXRoLCBXVEY6OlN0cmlu
ZyAmZ2VuZXJhdGVkRmlsZW5hbWUpIGZpbmFsOwotICAgIFdURjo6U3RyaW5nIGdlbmVyYXRlUmVw
bGFjZW1lbnRGaWxlKGNvbnN0IFdURjo6U3RyaW5nJiBwYXRoKSBmaW5hbDsKKyAgICBib29sIHNo
b3VsZFJlcGxhY2VXaXRoR2VuZXJhdGVkRmlsZUZvclVwbG9hZChjb25zdCBTdHJpbmcmIHBhdGgs
IFN0cmluZyAmZ2VuZXJhdGVkRmlsZW5hbWUpIGZpbmFsOworICAgIFN0cmluZyBnZW5lcmF0ZVJl
cGxhY2VtZW50RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpIGZpbmFsOwogCi0gICAgdm9pZCBlbGVt
ZW50RGlkRm9jdXMoY29uc3QgV2ViQ29yZTo6Tm9kZSopIG92ZXJyaWRlOwotICAgIHZvaWQgZWxl
bWVudERpZEJsdXIoY29uc3QgV2ViQ29yZTo6Tm9kZSopIG92ZXJyaWRlOworICAgIHZvaWQgZWxl
bWVudERpZEZvY3VzKFdlYkNvcmU6OkVsZW1lbnQmKSBvdmVycmlkZTsKKyAgICB2b2lkIGVsZW1l
bnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2hvdWxk
UGFpbnRFbnRpcmVDb250ZW50cygpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBhdHRhY2hSb290
R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBv
dmVycmlkZTsKLSAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3Jl
OjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKKyAgICB2b2lkIGF0dGFj
aFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciopIG92ZXJyaWRlOworICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdl
YkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwogICAgIHZvaWQg
c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIGZpbmFsOwogICAgIHZvaWQg
c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBmaW5hbDsKIApAQCAtMTg5LDE2ICsxODks
MTYgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAg
IGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50
KiwgYm9vbCB3aXRoS2V5Ym9hcmQpIGZpbmFsOwotICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9y
RWxlbWVudChXZWJDb3JlOjpFbGVtZW50KikgZmluYWw7Ci0gICAgdm9pZCBleGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopIGZpbmFsOworICAgIGJvb2wgc3VwcG9ydHNG
dWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50JiwgYm9vbCB3aXRoS2V5
Ym9hcmQpIGZpbmFsOworICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3Jl
OjpFbGVtZW50JikgZmluYWw7CisgICAgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2Vi
Q29yZTo6RWxlbWVudCYpIGZpbmFsOwogI2VuZGlmCiAKICAgICBib29sIHNlbGVjdEl0ZW1Xcml0
aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBzZWxlY3RJdGVtQWxp
Z25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBo
YXNPcGVuZWRQb3B1cCgpIGNvbnN0IGZpbmFsOwotICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cE1l
bnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBvdmVy
cmlkZTsKLSAgICBSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQ
b3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Qgb3ZlcnJpZGU7CisgICAg
UmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCYpIGNvbnN0IG92ZXJyaWRlOworICAgIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQ
b3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQm
KSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZvaWQgd2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChi
b29sKSBmaW5hbCB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmluZGV4IDBlY2ZmOGQ1ZmFiMWVlNWZjNTUyOTJkYzA0YTgw
NWFkMmNjY2RlZDguLmU0OTY3YjlmOGMzN2M2MjViNTA1NWJjNDI5MWE3NTk1OWYwNWZhZDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQubW0KQEAgLTMwLDYgKzMwLDcgQEAKICNpbXBvcnQgIldlYkNocm9tZUNsaWVudC5oIgogCiAj
aW1wb3J0ICJET01FbGVtZW50SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUhUTUxJbnB1dEVsZW1l
bnRJbnRlcm5hbC5oIgogI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJQb3B1
cE1lbnVNYWMuaCIKICNpbXBvcnQgIlNlYXJjaFBvcHVwTWVudU1hYy5oIgpAQCAtMjIyLDcgKzIy
Myw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2VkRWxlbWVudENoYW5nZWQoRWxlbWVu
dCogZWxlbWVudCkKICAgICBpZiAoIWlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBIVE1MSW5wdXRFbGVtZW50JiBpbnB1dEVsZW1lbnQgPSBkb3du
Y2FzdDxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCk7CisgICAgYXV0byYgaW5wdXRFbGVtZW50
ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKmVsZW1lbnQpOwogICAgIGlmICghaW5wdXRF
bGVtZW50LmlzVGV4dCgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTIzMywxNCArMjM0LDE0IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKikKIHsKIH0K
IAotUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUqIGZyYW1lLCBjb25z
dCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJikKK1BhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93
KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1
cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpCiB7CiAgICAgaWQgZGVsZWdh
dGUgPSBbbV93ZWJWaWV3IFVJRGVsZWdhdGVdOwogICAgIFdlYlZpZXcgKm5ld1dlYlZpZXc7CiAK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpICYm
IGZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkKLSAg
ICAgICAgZnJhbWUtPmRvY3VtZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsKKyAgICBp
ZiAoZnJhbWUuZG9jdW1lbnQoKSAmJiBmcmFtZS5kb2N1bWVudCgpLT53ZWJraXRDdXJyZW50RnVs
bFNjcmVlbkVsZW1lbnQoKSkKKyAgICAgICAgZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2Vs
RnVsbFNjcmVlbigpOwogI2VuZGlmCiAgICAgCiAgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6Y3JlYXRlV2ViVmlld1dpdGhSZXF1ZXN0OndpbmRv
d0ZlYXR1cmVzOildKSB7CkBAIC00NjgsOSArNDY5LDkgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6
OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpCiAgICAgcmV0dXJuIFtbbV93ZWJWaWV3
IFVJRGVsZWdhdGVdIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpydW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOildOwogfQog
Ci1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUqIGZyYW1lKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lJiBm
cmFtZSkKIHsKLSAgICByZXR1cm4gQ2FsbFVJRGVsZWdhdGVSZXR1cm5pbmdCb29sZWFuKHRydWUs
IG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
V2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTopLCBtZXNzYWdlLCBraXQoZnJhbWUpKTsKKyAg
ICByZXR1cm4gQ2FsbFVJRGVsZWdhdGVSZXR1cm5pbmdCb29sZWFuKHRydWUsIG1fd2ViVmlldywg
QHNlbGVjdG9yKHdlYlZpZXc6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6
aW5pdGlhdGVkQnlGcmFtZTopLCBtZXNzYWdlLCBraXQoJmZyYW1lKSk7CiB9CiAKIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpjbG9zZVdpbmRvd1Nvb24oKQpAQCAtNDkzLDEyICs0OTQsMTIgQEAgdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmNsb3NlV2luZG93U29vbigpCiAgICAgW21fd2ViVmlldyBwZXJm
b3JtU2VsZWN0b3I6QHNlbGVjdG9yKF9jbG9zZVdpbmRvdykgd2l0aE9iamVjdDpuaWwgYWZ0ZXJE
ZWxheTowLjBdOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0
KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSkKIHsKICAgICBpZCBkZWxlZ2F0ZSA9IFttX3dlYlZpZXcgVUlEZWxlZ2F0ZV07CiAgICAgU0VM
IHNlbGVjdG9yID0gQHNlbGVjdG9yKHdlYlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRo
TWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOik7CiAgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6c2VsZWN0b3JdKSB7Ci0gICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywg
c2VsZWN0b3IsIG1lc3NhZ2UsIGtpdChmcmFtZSkpOworICAgICAgICBDYWxsVUlEZWxlZ2F0ZSht
X3dlYlZpZXcsIHNlbGVjdG9yLCBtZXNzYWdlLCBraXQoJmZyYW1lKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTUxMCwxMiArNTExLDEyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpy
dW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAg
ICAgfQogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJh
bWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCitib29sIFdlYkNocm9tZUNsaWVudDo6
cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
CiB7CiAgICAgaWQgZGVsZWdhdGUgPSBbbV93ZWJWaWV3IFVJRGVsZWdhdGVdOwogICAgIFNFTCBz
ZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRDb25maXJtUGFuZWxXaXRo
TWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOik7CiAgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6c2VsZWN0b3JdKQotICAgICAgICByZXR1cm4gQ2FsbFVJRGVsZWdhdGVSZXR1cm5p
bmdCb29sZWFuKE5PLCBtX3dlYlZpZXcsIHNlbGVjdG9yLCBtZXNzYWdlLCBraXQoZnJhbWUpKTsK
KyAgICAgICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVhbihOTywgbV93ZWJW
aWV3LCBzZWxlY3RvciwgbWVzc2FnZSwga2l0KCZmcmFtZSkpOwogCiAgICAgLy8gQ2FsbCB0aGUg
b2xkIHZlcnNpb24gb2YgdGhlIGRlbGVnYXRlIG1ldGhvZCBpZiBpdCBpcyBpbXBsZW1lbnRlZC4K
ICAgICBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRDb25maXJtUGFu
ZWxXaXRoTWVzc2FnZTopOwpAQCAtNTI1LDEzICs1MjYsMTMgQEAgYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlKQogICAgIHJldHVybiBOTzsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFT
Y3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwgY29uc3QgU3Ry
aW5nJiBkZWZhdWx0VGV4dCwgU3RyaW5nJiByZXN1bHQpCitib29sIFdlYkNocm9tZUNsaWVudDo6
cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgcHJvbXB0LCBj
b25zdCBTdHJpbmcmIGRlZmF1bHRUZXh0LCBTdHJpbmcmIHJlc3VsdCkKIHsKICAgICBpZCBkZWxl
Z2F0ZSA9IFttX3dlYlZpZXcgVUlEZWxlZ2F0ZV07CiAgICAgU0VMIHNlbGVjdG9yID0gQHNlbGVj
dG9yKHdlYlZpZXc6cnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDpkZWZhdWx0
VGV4dDppbml0aWF0ZWRCeUZyYW1lOik7CiAgICAgTlNTdHJpbmcgKmRlZmF1bHRTdHJpbmcgPSBk
ZWZhdWx0VGV4dDsKICAgICBpZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rv
cl0pIHsKLSAgICAgICAgcmVzdWx0ID0gKE5TU3RyaW5nICopQ2FsbFVJRGVsZWdhdGUobV93ZWJW
aWV3LCBzZWxlY3RvciwgcHJvbXB0LCBkZWZhdWx0U3RyaW5nLCBraXQoZnJhbWUpKTsKKyAgICAg
ICAgcmVzdWx0ID0gKE5TU3RyaW5nICopQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3Rv
ciwgcHJvbXB0LCBkZWZhdWx0U3RyaW5nLCBraXQoJmZyYW1lKSk7CiAgICAgICAgIHJldHVybiAh
cmVzdWx0LmlzTnVsbCgpOwogICAgIH0KIApAQCAtNTQyLDcgKzU0Myw3IEBAIGJvb2wgV2ViQ2hy
b21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5n
JiBwcm9tcHQsIGNvCiAgICAgICAgIHJldHVybiAhcmVzdWx0LmlzTnVsbCgpOwogICAgIH0KIAot
ICAgIHJlc3VsdCA9IFtbV2ViRGVmYXVsdFVJRGVsZWdhdGUgc2hhcmVkVUlEZWxlZ2F0ZV0gd2Vi
VmlldzptX3dlYlZpZXcgcnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDpwcm9t
cHQgZGVmYXVsdFRleHQ6ZGVmYXVsdFN0cmluZyBpbml0aWF0ZWRCeUZyYW1lOmtpdChmcmFtZSld
OworICAgIHJlc3VsdCA9IFtbV2ViRGVmYXVsdFVJRGVsZWdhdGUgc2hhcmVkVUlEZWxlZ2F0ZV0g
d2ViVmlldzptX3dlYlZpZXcgcnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDpw
cm9tcHQgZGVmYXVsdFRleHQ6ZGVmYXVsdFN0cmluZyBpbml0aWF0ZWRCeUZyYW1lOmtpdCgmZnJh
bWUpXTsKICAgICByZXR1cm4gIXJlc3VsdC5pc051bGwoKTsKIH0KIApAQCAtNjA2LDcgKzYwNyw3
IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGllbnQ6OnBsYXRmb3JtUGFnZUNsaWVu
dCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250
ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0Cit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYsIGNvbnN0IEludFNpemUmKSBj
b25zdAogewogfQogCkBAIC02MzUsMTIgKzYzNiwxMiBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6
c2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVyRW1iZWRkZWRPYmpl
YwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuYXZhaWxh
YmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJFbWJlZGRlZE9i
amVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFz
b24pIGNvbnN0Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25D
bGlja2VkKEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2
YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QKIHsKLSAg
ICBBU1NFUlQoZWxlbWVudC0+aGFzVGFnTmFtZShvYmplY3RUYWcpIHx8IGVsZW1lbnQtPmhhc1Rh
Z05hbWUoZW1iZWRUYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoYXBwbGV0VGFnKSk7CisgICAg
QVNTRVJUKGVsZW1lbnQuaGFzVGFnTmFtZShvYmplY3RUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFt
ZShlbWJlZFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGFwcGxldFRhZykpOwogCiAgICAgQVNT
RVJUKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uID09IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQ
bHVnaW5NaXNzaW5nKTsKLSAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3
ZWJWaWV3OmRpZFByZXNzTWlzc2luZ1BsdWdpbkJ1dHRvbjopLCBraXQoZWxlbWVudCkpOworICAg
IENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6ZGlkUHJlc3NNaXNz
aW5nUGx1Z2luQnV0dG9uOiksIGtpdCgmZWxlbWVudCkpOwogfQogCiB2b2lkIFdlYkNocm9tZUNs
aWVudDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0
LCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKQpAQCAtNjU3LDIxICs2NTgsMjEgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlwLCBUZXh0RGlyZWN0
aW9uKQogICAgICAgICBbKFdlYkhUTUxWaWV3ICopZG9jdW1lbnRWaWV3IF9zZXRUb29sVGlwOnRv
b2xUaXBdOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1lKQor
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lJiBmcmFtZSkKIHsKLSAgICBXZWJGcmFt
ZSAqd2ViRnJhbWUgPSBraXQoZnJhbWUpOworICAgIFdlYkZyYW1lICp3ZWJGcmFtZSA9IGtpdCgm
ZnJhbWUpOwogICAgIGlmIChbW21fd2ViVmlldyBVSURlbGVnYXRlXSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKHdlYlZpZXc6cHJpbnRGcmFtZTopXSkKICAgICAgICAgQ2FsbFVJRGVsZWdh
dGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpwcmludEZyYW1lOiksIHdlYkZyYW1lKTsK
ICAgICBlbHNlCiAgICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdl
YlZpZXc6cHJpbnRGcmFtZVZpZXc6KSwgW3dlYkZyYW1lIGZyYW1lVmlld10pOwogfQogCi12b2lk
IFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiBmcmFtZSwgY29u
c3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscykKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcm
IGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKIAotICAgIFdlYlNlY3VyaXR5T3JpZ2luICp3ZWJPcmlnaW4gPSBbW1dlYlNl
Y3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5pdFdpdGhXZWJDb3JlU2VjdXJpdHlPcmlnaW46JmZyYW1l
LT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpXTsKLSAgICBDYWxsVUlEZWxlZ2F0ZShtX3dl
YlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZyYW1lOmV4Y2VlZGVkRGF0YWJhc2VRdW90YUZvclNl
Y3VyaXR5T3JpZ2luOmRhdGFiYXNlOiksIGtpdChmcmFtZSksIHdlYk9yaWdpbiwgKE5TU3RyaW5n
ICopZGF0YWJhc2VOYW1lKTsKKyAgICBXZWJTZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tX
ZWJTZWN1cml0eU9yaWdpbiBhbGxvY10gX2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOiZm
cmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpXTsKKyAgICBDYWxsVUlEZWxlZ2F0ZSht
X3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZyYW1lOmV4Y2VlZGVkRGF0YWJhc2VRdW90YUZv
clNlY3VyaXR5T3JpZ2luOmRhdGFiYXNlOiksIGtpdCgmZnJhbWUpLCB3ZWJPcmlnaW4sIChOU1N0
cmluZyAqKWRhdGFiYXNlTmFtZSk7CiAgICAgW3dlYk9yaWdpbiByZWxlYXNlXTsKIAogICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CkBAIC02ODIsMTEgKzY4MywxMSBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKQog
ICAgIC8vIEZJWE1FOiBGcmVlIHNvbWUgc3BhY2UuCiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmln
aW4sIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFj
aGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGlu
dDY0X3QgdG90YWxTcGFjZU5lZWRlZCkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElP
TlM7CiAKLSAgICBXZWJTZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tXZWJTZWN1cml0eU9y
aWdpbiBhbGxvY10gX2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOm9yaWdpbl07CisgICAg
V2ViU2VjdXJpdHlPcmlnaW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2Nd
IF9pbml0V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdpbjomb3JpZ2luXTsKICAgICBDYWxsVUlEZWxl
Z2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmV4Y2VlZGVkQXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhRm9yU2VjdXJpdHlPcmlnaW46dG90YWxTcGFjZU5lZWRlZDopLCB3ZWJPcmln
aW4sIHN0YXRpY19jYXN0PE5TVUludGVnZXI+KHRvdGFsU3BhY2VOZWVkZWQpKTsKICAgICBbd2Vi
T3JpZ2luIHJlbGVhc2VdOwogCkBAIC03MDUsMTIgKzcwNiwxNCBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6YW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9DT0xPUikKLXN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IFdlYkNocm9tZUNs
aWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25z
dCBDb2xvciYgaW5pdGlhbENvbG9yKQorCitzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBX
ZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmIGNs
aWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKIHsKICAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IDxpbnB1dCB0eXBlPSdjb2xvcic+IGZvciBXSzEgKEJ1ZyAxMTkwOTQpLgogICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQorCiAjZW5kaWYKIAogI2lm
IEVOQUJMRShQT0lOVEVSX0xPQ0spCkBAIC04NDgsMTQgKzg1MSwxNCBAQCBTdHJpbmcgV2ViQ2hy
b21lQ2xpZW50OjpnZW5lcmF0ZVJlcGxhY2VtZW50RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCiAg
ICAgcmV0dXJuIFtbbV93ZWJWaWV3IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Om1fd2Vi
VmlldyBnZW5lcmF0ZVJlcGxhY2VtZW50RmlsZTpwYXRoXTsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmVsZW1lbnREaWRGb2N1cyhjb25zdCBXZWJDb3JlOjpOb2RlKiBub2RlKQordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRGb2N1cyhXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50
KQogewotICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6Zm9y
bURpZEZvY3VzTm9kZTopLCBraXQoY29uc3RfY2FzdDxXZWJDb3JlOjpOb2RlKj4obm9kZSkpKTsK
KyAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZvcm1EaWRG
b2N1c05vZGU6KSwga2l0KCZlbGVtZW50KSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpl
bGVtZW50RGlkQmx1cihjb25zdCBXZWJDb3JlOjpOb2RlKiBub2RlKQordm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmVsZW1lbnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAg
Q2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpmb3JtRGlkQmx1ck5v
ZGU6KSwga2l0KGNvbnN0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KG5vZGUpKSk7CisgICAgQ2FsbFVJ
RGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpmb3JtRGlkQmx1ck5vZGU6KSwg
a2l0KCZlbGVtZW50KSk7CiB9CiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3Jp
dGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpCkBAIC04NzQsMTkgKzg3NywxOSBAQCBib29sIFdlYkNo
cm9tZUNsaWVudDo6aGFzT3BlbmVkUG9wdXAoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1
cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8V2Vi
Q29yZTo6UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3Jl
OjpQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKICNpZiAhUExBVEZPUk0oSU9TKQot
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51TWFjKGNsaWVudCkpOworICAgIHJldHVy
biBhZG9wdFJlZigqbmV3IFBvcHVwTWVudU1hYygmY2xpZW50KSk7CiAjZWxzZQogICAgIHJldHVy
biBudWxscHRyOwogI2VuZGlmCiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+
IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVu
dUNsaWVudCogY2xpZW50KSBjb25zdAorUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4g
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51
Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudU1hYyhjbGllbnQpKTsKKyAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTZWFyY2hQb3B1cE1lbnVNYWMoJmNsaWVudCkpOwogI2Vsc2UKICAgICByZXR1
cm4gbnVsbHB0cjsKICNlbmRpZgpAQCAtOTAyLDExICs5MDUsMTEgQEAgYm9vbCBXZWJDaHJvbWVD
bGllbnQ6OnNob3VsZFBhaW50RW50aXJlQ29udGVudHMoKSBjb25zdAogI2VuZGlmCiB9CiAKLXZv
aWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJhbWUs
IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0
YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUmIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGlj
c0xheWVyKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIE5TVmll
dyAqZG9jdW1lbnRWaWV3ID0gW1traXQoZnJhbWUpIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsK
KyAgICBOU1ZpZXcgKmRvY3VtZW50VmlldyA9IFtba2l0KCZmcmFtZSkgZnJhbWVWaWV3XSBkb2N1
bWVudFZpZXddOwogICAgIGlmICghW2RvY3VtZW50VmlldyBpc0tpbmRPZkNsYXNzOltXZWJIVE1M
VmlldyBjbGFzc11dKSB7CiAgICAgICAgIC8vIFdlIHNob3VsZCBuZXZlciBiZSBhdHRhY2hpbmcg
d2hlbiB3ZSBkb24ndCBoYXZlIGEgV2ViSFRNTFZpZXcuCiAgICAgICAgIEFTU0VSVCghZ3JhcGhp
Y3NMYXllcik7CkBAIC05MjEsNyArOTI0LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFj
aFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3JhcGgKICAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6
YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciopCit2
b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1l
JiwgR3JhcGhpY3NMYXllciopCiB7CiAgICAgLy8gRklYTUU6IElmIHdlIHdhbnQgdmlldy1yZWxh
dGl2ZSBwYWdlIG92ZXJsYXlzIGluIExlZ2FjeSBXZWJLaXQsIHRoaXMgd291bGQgYmUgdGhlIHBs
YWNlIHRvIGhvb2sgdGhlbSB1cC4KIH0KQEAgLTk0MSw2ICs5NDQsNyBAQCB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKQogfQogCiAjaWYgRU5BQkxF
KFZJREVPKQorCiBib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4o
SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKQogewogI2lmIFBMQVRG
T1JNKElPUykKQEAgLTk2NSw3ICs5NjksMTAgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRW
aWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWUKICAg
ICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOyAgICAKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykg
JiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQorI2VuZGlmIC8vIEVOQUJMRShWSURF
TykKKworI2lmIEVOQUJMRShWSURFTykgJiYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9f
UFJFU0VOVEFUSU9OX01PREUpCisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRVcFBsYXliYWNr
Q29udHJvbHNNYW5hZ2VyKEhUTUxNZWRpYUVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgW21fd2Vi
VmlldyBfc2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlckZvck1lZGlhRWxlbWVudDplbGVtZW50
XTsKQEAgLTk3NSw1NCArOTgyLDU1IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjbGVhclBsYXli
YWNrQ29udHJvbHNNYW5hZ2VyKCkKIHsKICAgICBbbV93ZWJWaWV3IF9jbGVhclBsYXliYWNrQ29u
dHJvbHNNYW5hZ2VyXTsKIH0KLSNlbmRpZiAvLyBQTEFURk9STShNQUMpCi0jZW5kaWYgLy8gRU5B
QkxFKFZJREVPKQorCisjZW5kaWYKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIAotYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxl
bWVudCogZWxlbWVudCwgYm9vbCB3aXRoS2V5Ym9hcmQpCitib29sIFdlYkNocm9tZUNsaWVudDo6
c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50LCBib29s
IHdpdGhLZXlib2FyZCkKIHsKICAgICBTRUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpz
dXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50OndpdGhLZXlib2FyZDopOwogICAgIGlmIChbW21f
d2ViVmlldyBVSURlbGVnYXRlXSByZXNwb25kc1RvU2VsZWN0b3I6c2VsZWN0b3JdKQotICAgICAg
ICByZXR1cm4gQ2FsbFVJRGVsZWdhdGVSZXR1cm5pbmdCb29sZWFuKGZhbHNlLCBtX3dlYlZpZXcs
IHNlbGVjdG9yLCBraXQoY29uc3RfY2FzdDxXZWJDb3JlOjpFbGVtZW50Kj4oZWxlbWVudCkpLCB3
aXRoS2V5Ym9hcmQpOworICAgICAgICByZXR1cm4gQ2FsbFVJRGVsZWdhdGVSZXR1cm5pbmdCb29s
ZWFuKGZhbHNlLCBtX3dlYlZpZXcsIHNlbGVjdG9yLCBraXQoY29uc3RfY2FzdDxXZWJDb3JlOjpF
bGVtZW50Kj4oJmVsZW1lbnQpKSwgd2l0aEtleWJvYXJkKTsKICNpZiAhUExBVEZPUk0oSU9TKQot
ICAgIHJldHVybiBbbV93ZWJWaWV3IF9zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50OmNvbnN0
X2Nhc3Q8V2ViQ29yZTo6RWxlbWVudCo+KGVsZW1lbnQpIHdpdGhLZXlib2FyZDp3aXRoS2V5Ym9h
cmRdOworICAgIHJldHVybiBbbV93ZWJWaWV3IF9zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50
OmNvbnN0X2Nhc3Q8V2ViQ29yZTo6RWxlbWVudCo+KCZlbGVtZW50KSB3aXRoS2V5Ym9hcmQ6d2l0
aEtleWJvYXJkXTsKICNlbHNlCiAgICAgcmV0dXJuIE5POwogI2VuZGlmCiB9CiAKLXZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQp
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50
JiBlbGVtZW50KQogewogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OmVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQ6bGlzdGVuZXI6KTsKICAgICBpZiAoW1ttX3dlYlZpZXcgVUlE
ZWxlZ2F0ZV0gcmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkgewotICAgICAgICBXZWJLaXRG
dWxsU2NyZWVuTGlzdGVuZXIqIGxpc3RlbmVyID0gW1tXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIg
YWxsb2NdIGluaXRXaXRoRWxlbWVudDplbGVtZW50XTsKLSAgICAgICAgQ2FsbFVJRGVsZWdhdGUo
bV93ZWJWaWV3LCBzZWxlY3Rvciwga2l0KGVsZW1lbnQpLCBsaXN0ZW5lcik7CisgICAgICAgIFdl
YktpdEZ1bGxTY3JlZW5MaXN0ZW5lciogbGlzdGVuZXIgPSBbW1dlYktpdEZ1bGxTY3JlZW5MaXN0
ZW5lciBhbGxvY10gaW5pdFdpdGhFbGVtZW50OiZlbGVtZW50XTsKKyAgICAgICAgQ2FsbFVJRGVs
ZWdhdGUobV93ZWJWaWV3LCBzZWxlY3Rvciwga2l0KCZlbGVtZW50KSwgbGlzdGVuZXIpOwogICAg
ICAgICBbbGlzdGVuZXIgcmVsZWFzZV07CiAgICAgfQogI2lmICFQTEFURk9STShJT1MpCiAgICAg
ZWxzZQotICAgICAgICBbbV93ZWJWaWV3IF9lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50OmVsZW1l
bnRdOworICAgICAgICBbbV93ZWJWaWV3IF9lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50OiZlbGVt
ZW50XTsKICNlbmRpZgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5G
b3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1
bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgU0VMIHNlbGVjdG9y
ID0gQHNlbGVjdG9yKHdlYlZpZXc6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50Omxpc3RlbmVyOik7
CiAgICAgaWYgKFtbbV93ZWJWaWV3IFVJRGVsZWdhdGVdIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxl
Y3Rvcl0pIHsKLSAgICAgICAgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyKiBsaXN0ZW5lciA9IFtb
V2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aEVsZW1lbnQ6ZWxlbWVudF07
Ci0gICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIGtpdChlbGVtZW50
KSwgbGlzdGVuZXIpOworICAgICAgICBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIqIGxpc3RlbmVy
ID0gW1tXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoRWxlbWVudDomZWxl
bWVudF07CisgICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIGtpdCgm
ZWxlbWVudCksIGxpc3RlbmVyKTsKICAgICAgICAgW2xpc3RlbmVyIHJlbGVhc2VdOwogICAgIH0K
ICNpZiAhUExBVEZPUk0oSU9TKQogICAgIGVsc2UKLSAgICAgICAgW21fd2ViVmlldyBfZXhpdEZ1
bGxTY3JlZW5Gb3JFbGVtZW50OmVsZW1lbnRdOworICAgICAgICBbbV93ZWJWaWV3IF9leGl0RnVs
bFNjcmVlbkZvckVsZW1lbnQ6JmVsZW1lbnRdOwogI2VuZGlmCiB9CiAKICNlbmRpZiAvLyBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCiAKICNpZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKwogYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OndyYXBDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXks
IFZlY3Rvcjx1aW50OF90PiYgd3JhcHBlZEtleSkgY29uc3QKIHsKICAgICBWZWN0b3I8dWludDhf
dD4gbWFzdGVyS2V5OwpAQCAtMTA0OCw5ICsxMDU2LDExIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50
Ojp1bndyYXBDcnlwdG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB3cmFwcGVkS2V5LCBWZWN0
b3I8CiAKICAgICByZXR1cm4gdW53cmFwU2VyaWFsaXplZENyeXB0b0tleShtYXN0ZXJLZXksIHdy
YXBwZWRLZXksIGtleSk7CiB9CisKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJP
TFMpCisKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2so
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb24mIHNlbGVjdGlvbiwgY29uc3QgVmVjdG9yPFN0cmluZz4m
IHRlbGVwaG9uZU51bWJlcnMsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCkKIHsKICAg
ICBbbV93ZWJWaWV3IF9zZWxlY3Rpb25TZXJ2aWNlQ29udHJvbGxlcl0uaGFuZGxlU2VsZWN0aW9u
U2VydmljZUNsaWNrKHNlbGVjdGlvbiwgdGVsZXBob25lTnVtYmVycywgcG9pbnQpOwpAQCAtMTA2
NCw2ICsxMDc0LDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6Omhhc1JlbGV2YW50U2VsZWN0aW9u
U2VydmljZXMoYm9vbCBpc1RleHRPbmx5KSBjb25zdAogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0lS
RUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TKQorCiB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6YWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0X3QgY29udGV4dElk
KQogewogICAgIFttX3dlYlZpZXcgX2FkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50OmNvbnRl
eHRJZF07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCBiZWI3YjMwOWNh
NmNkZDgzM2NkYWZkYjA0ZmIxOTJhNGRjYjI2NGQ1Li4zOGE0Y2VjYjE3NjExNDE3Zjc5OGU4ODRm
MDRlYWI5MmIzMTI0MmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkZyYW1lLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAg
LTMwMiwxNCArMzAyLDE0IEBAICsgKFJlZjxXZWJDb3JlOjpGcmFtZT4pX2NyZWF0ZUZyYW1lV2l0
aFBhZ2U6KFBhZ2UqKXBhZ2UgZnJhbWVOYW1lOihjb25zdCBTdHJpbmcmCiAgICAgV2ViVmlldyAq
d2ViVmlldyA9IGtpdChwYWdlKTsKIAogICAgIFdlYkZyYW1lICpmcmFtZSA9IFtbc2VsZiBhbGxv
Y10gX2luaXRXaXRoV2ViRnJhbWVWaWV3OmZyYW1lVmlldyB3ZWJWaWV3OndlYlZpZXddOwotICAg
IFJlZjxXZWJDb3JlOjpGcmFtZT4gY29yZUZyYW1lID0gRnJhbWU6OmNyZWF0ZShwYWdlLCBvd25l
ckVsZW1lbnQsIG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudChmcmFtZSkpOworICAgIGF1dG8gY29y
ZUZyYW1lID0gRnJhbWU6OmNyZWF0ZShwYWdlLCBvd25lckVsZW1lbnQsIG5ldyBXZWJGcmFtZUxv
YWRlckNsaWVudChmcmFtZSkpOwogICAgIFtmcmFtZSByZWxlYXNlXTsKICAgICBmcmFtZS0+X3By
aXZhdGUtPmNvcmVGcmFtZSA9IGNvcmVGcmFtZS5wdHIoKTsKIAogICAgIGNvcmVGcmFtZS5nZXQo
KS50cmVlKCkuc2V0TmFtZShuYW1lKTsKICAgICBpZiAob3duZXJFbGVtZW50KSB7CiAgICAgICAg
IEFTU0VSVChvd25lckVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSk7Ci0gICAgICAgIG93bmVy
RWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpLT50cmVlKCkuYXBwZW5kQ2hpbGQoY29yZUZyYW1l
LnB0cigpKTsKKyAgICAgICAgb3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCktPnRyZWUo
KS5hcHBlbmRDaGlsZChjb3JlRnJhbWUuZ2V0KCkpOwogICAgIH0KIAogICAgIGNvcmVGcmFtZS5n
ZXQoKS5pbml0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdp
blZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRl
eCAxNGU5NzEwZDE1ZDc5YmYzYjU1YzQwMDllNTY2ODRhMGVlM2Q3ODM3Li4yOTgxNTNkZjNjNGFk
N2Y3NGFiMjVmOTgwOWJmZGRiMjJkODA3Mzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bi9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMv
UGx1Z2luVmlldy5jcHAKQEAgLTU5Myw3ICs1OTMsNyBAQCBOUEVycm9yIFBsdWdpblZpZXc6OmRl
c3Ryb3lTdHJlYW0oTlBTdHJlYW0qIHN0cmVhbSwgTlBSZWFzb24gcmVhc29uKQogdm9pZCBQbHVn
aW5WaWV3OjpzdGF0dXMoY29uc3QgY2hhciogbWVzc2FnZSkKIHsKICAgICBpZiAoUGFnZSogcGFn
ZSA9IG1fcGFyZW50RnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+Y2hyb21lKCkuc2V0U3Rh
dHVzYmFyVGV4dChtX3BhcmVudEZyYW1lLmdldCgpLCBTdHJpbmc6OmZyb21VVEY4KG1lc3NhZ2Up
KTsKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dCgqbV9wYXJlbnRGcmFt
ZSwgU3RyaW5nOjpmcm9tVVRGOChtZXNzYWdlKSk7CiB9CiAKIE5QRXJyb3IgUGx1Z2luVmlldzo6
c2V0VmFsdWUoTlBQVmFyaWFibGUgdmFyaWFibGUsIHZvaWQqIHZhbHVlKQpAQCAtNzkzLDcgKzc5
Myw3IEBAIFBsdWdpblZpZXc6OlBsdWdpblZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJ
bnRTaXplJiBzaXplLCBQbHVnaW5QYWNrYWdlKiBwCiB2b2lkIFBsdWdpblZpZXc6OmZvY3VzUGx1
Z2luRWxlbWVudCgpCiB7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX3BhcmVudEZyYW1lLT5wYWdl
KCkpCi0gICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG1f
ZWxlbWVudCwgbV9wYXJlbnRGcmFtZSk7CisgICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigp
LnNldEZvY3VzZWRFbGVtZW50KG1fZWxlbWVudCwgKm1fcGFyZW50RnJhbWUpOwogICAgIGVsc2UK
ICAgICAgICAgbV9wYXJlbnRGcmFtZS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZEVsZW1lbnQobV9l
bGVtZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGE3NzNiMWFiMTQxNzRlMDIwYzYyZDlkMDQ3ODZkMmEy
ODIxY2I3ODQuLmFiNjUxNDQ0ZjkyMTlhNjc3NmJmODdlYjE4YjI4MWNiZDI0MTIwYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmNwcApAQCAtMTg5LDE1ICsxODksMTUgQEAgc3RhdGljIENPTVB0cjxJUHJvcGVydHlCYWc+IGNy
ZWF0ZVdpbmRvd0ZlYXR1cmVzUHJvcGVydHlCYWcoY29uc3QgV2luZG93RmVhdHVyZXMKICAgICBy
ZXR1cm4gQ09NUHRyPElQcm9wZXJ0eUJhZz4oQWRvcHRDT00sIENPTVByb3BlcnR5QmFnPENPTVZh
cmlhbnQ+OjphZG9wdChtYXApKTsKIH0KIAotUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVX
aW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93
RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aW9uQWN0
aW9uKQorUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUmIGZyYW1lLCBj
b25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBj
b25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQogewogICAgIENPTVB0cjxJ
V2ViVUlEZWxlZ2F0ZT4gZGVsZWdhdGUgPSB1aURlbGVnYXRlKCk7CiAgICAgaWYgKCFkZWxlZ2F0
ZSkKICAgICAgICAgcmV0dXJuIDA7CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAg
aWYgKGZyYW1lLT5kb2N1bWVudCgpICYmIGZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRDdXJyZW50
RnVsbFNjcmVlbkVsZW1lbnQoKSkKLSAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPndlYmtpdENh
bmNlbEZ1bGxTY3JlZW4oKTsKKyAgICBpZiAoZnJhbWUuZG9jdW1lbnQoKSAmJiBmcmFtZS5kb2N1
bWVudCgpLT53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkKKyAgICAgICAgZnJhbWUu
ZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOwogI2VuZGlmCiAKICAgICBDT01Q
dHI8V2ViTXV0YWJsZVVSTFJlcXVlc3Q+IHJlcXVlc3QgPSBhZG9wdENPTShXZWJNdXRhYmxlVVJM
UmVxdWVzdDo6Y3JlYXRlSW5zdGFuY2UoUmVzb3VyY2VSZXF1ZXN0KG5hdmlnYXRpb25BY3Rpb24u
dXJsKCkpKSk7CkBAIC0zNjEsMTIgKzM2MSwxMiBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6Y2Fu
UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJv
b2wgV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBGcmFtZSogZnJhbWUpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmIGZyYW1l
KQogewogICAgIEJPT0wgcmVzdWx0ID0gVFJVRTsKICAgICBJV2ViVUlEZWxlZ2F0ZSogdWk7CiAg
ICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpKSkgJiYgdWkpIHsKLSAg
ICAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0ga2l0KGZyYW1lKTsKKyAgICAgICAgV2ViRnJhbWUq
IHdlYkZyYW1lID0ga2l0KCZmcmFtZSk7CiAgICAgICAgIHVpLT5ydW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWxXaXRoTWVzc2FnZShtX3dlYlZpZXcsIEJTdHJpbmcobWVzc2FnZSksIHdlYkZyYW1l
LCAmcmVzdWx0KTsKICAgICAgICAgdWktPlJlbGVhc2UoKTsKICAgICB9CkBAIC0zOTMsMTQgKzM5
MywxNCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xvc2VXaW5kb3dTb29uKCkKICAgICBtX3dl
YlZpZXctPmNsb3NlV2luZG93U29vbigpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cnVu
SmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKIHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpOwogICAgIGlmIChTVUNDRUVE
RUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aSkpKQogICAgICAgICB1aS0+cnVuSmF2YVNjcmlw
dEFsZXJ0UGFuZWxXaXRoTWVzc2FnZShtX3dlYlZpZXcsIEJTdHJpbmcobWVzc2FnZSkpOwogfQog
Ci1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENv
bmZpcm0oRnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgQk9PTCByZXN1bHQg
PSBGQUxTRTsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpOwpAQCAtNDA5LDcgKzQwOSw3
IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSosIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICByZXR1cm4gISFyZXN1bHQ7CiB9CiAKLWJvb2wgV2Vi
Q2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCitib29s
IFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSYsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQog
ewogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWk7CiAgICAgaWYgKEZBSUxFRChtX3dlYlZp
ZXctPnVpRGVsZWdhdGUoJnVpKSkpCkBAIC01MDgsNyArNTA4LDcgQEAgUGxhdGZvcm1QYWdlQ2xp
ZW50IFdlYkNocm9tZUNsaWVudDo6cGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QKICAgICByZXR1
cm4gdmlld1dpbmRvdzsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNo
YW5nZWQoRnJhbWUqLCBjb25zdCBJbnRTaXplJikgY29uc3QKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0CiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTU0MCw3ICs1NDAsNyBAQCBib29sIFdlYkNocm9t
ZUNsaWVudDo6c2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVyRW1i
ZWRkZWRPYmplYwogICAgIHJldHVybiB1aURlbGVnYXRlUHJpdmF0ZTM7CiB9CiAKLXZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCogZWxl
bWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBs
dWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVu
YXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJFbWJl
ZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24pIGNvbnN0CiB7CiAgICAgQVNTRVJUX1VOVVNFRChwbHVnaW5VbmF2YWlsYWJpbGl0
eVJlYXNvbiwgcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gPT0gUmVuZGVyRW1iZWRkZWRPYmpl
Y3Q6OlBsdWdpbk1pc3NpbmcpOwogCkBAIC01NTIsNyArNTUyLDcgQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50KiBlbGVtZW50LCBS
ZW5kZXJFbWIKICAgICBpZiAoIXVpRGVsZWdhdGVQcml2YXRlMykKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgQ09NUHRyPElET01FbGVtZW50PiBlKEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJ
bnN0YW5jZShlbGVtZW50KSk7CisgICAgQ09NUHRyPElET01FbGVtZW50PiBlKEFkb3B0Q09NLCBE
T01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZSgmZWxlbWVudCkpOwogICAgIHVpRGVsZWdhdGVQcml2
YXRlMy0+ZGlkUHJlc3NNaXNzaW5nUGx1Z2luQnV0dG9uKGUuZ2V0KCkpOwogfQogCkBAIC01NjEs
MjEgKzU2MSwyMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VG9vbFRpcChjb25zdCBTdHJp
bmcmIHRvb2xUaXAsIFRleHREaXJlY3Rpb24pCiAgICAgbV93ZWJWaWV3LT5zZXRUb29sVGlwKHRv
b2xUaXApOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1lKQor
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lJiBmcmFtZSkKIHsKICAgICBDT01QdHI8
SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdhdGU7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXct
PnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUpKSkKLSAgICAgICAgdWlEZWxlZ2F0ZS0+cHJpbnRGcmFt
ZShtX3dlYlZpZXcsIGtpdChmcmFtZSkpOworICAgICAgICB1aURlbGVnYXRlLT5wcmludEZyYW1l
KG1fd2ViVmlldywga2l0KCZmcmFtZSkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhj
ZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlk
ZW50aWZpZXIsIERhdGFiYXNlRGV0YWlscykKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRl
ZERhdGFiYXNlUXVvdGEoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRp
ZmllciwgRGF0YWJhc2VEZXRhaWxzKQogewotICAgIENPTVB0cjxXZWJTZWN1cml0eU9yaWdpbj4g
b3JpZ2luKEFkb3B0Q09NLCBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlSW5zdGFuY2UoJmZyYW1l
LT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSk7CisgICAgQ09NUHRyPFdlYlNlY3VyaXR5
T3JpZ2luPiBvcmlnaW4oQWRvcHRDT00sIFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVJbnN0YW5j
ZSgmZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkpOwogICAgIENPTVB0cjxJV2Vi
VUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlE
ZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CiAgICAgICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZVBy
aXZhdGU+IHVpRGVsZWdhdGVQcml2YXRlKFF1ZXJ5LCB1aURlbGVnYXRlKTsKICAgICAgICAgaWYg
KHVpRGVsZWdhdGVQcml2YXRlKQotICAgICAgICAgICAgdWlEZWxlZ2F0ZVByaXZhdGUtPmV4Y2Vl
ZGVkRGF0YWJhc2VRdW90YShtX3dlYlZpZXcsIGtpdChmcmFtZSksIG9yaWdpbi5nZXQoKSwgQlN0
cmluZyhkYXRhYmFzZUlkZW50aWZpZXIpKTsKKyAgICAgICAgICAgIHVpRGVsZWdhdGVQcml2YXRl
LT5leGNlZWRlZERhdGFiYXNlUXVvdGEobV93ZWJWaWV3LCBraXQoJmZyYW1lKSwgb3JpZ2luLmdl
dCgpLCBCU3RyaW5nKGRhdGFiYXNlSWRlbnRpZmllcikpOwogICAgICAgICBlbHNlIHsKICAgICAg
ICAgICAgIC8vIEZJWE1FOiByZW1vdmUgdGhpcyB3b3JrYXJvdW5kIG9uY2Ugc2hpcHBpbmcgU2Fm
YXJpIGhhcyB0aGUgbmVjZXNzYXJ5IGRlbGVnYXRlIGltcGxlbWVudGVkLgogICAgICAgICAgICAg
V0NIQVIgcGF0aFtNQVhfUEFUSF07CkBAIC02MTMsNyArNjEzLDcgQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxp
Y2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3QpCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0
eU9yaWdpbiYsIGludDY0X3QpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTcxNywx
MiArNzE3LDEyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRMYXN0U2V0Q3Vyc29yVG9DdXJy
ZW50Q3Vyc29yKCkKICAgICBtX3dlYlZpZXctPnNldExhc3RDdXJzb3IoOjpHZXRDdXJzb3IoKSk7
CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFt
ZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKiBncmFw
aGljc0xheWVyKQogewogICAgIG1fd2ViVmlldy0+c2V0Um9vdENoaWxkTGF5ZXIoZ3JhcGhpY3NM
YXllcik7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBo
aWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojph
dHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikKIHsK
ICAgICAvLyBGSVhNRTogSWYgd2Ugd2FudCB2aWV3LXJlbGF0aXZlIHBhZ2Ugb3ZlcmxheXMgaW4g
TGVnYWN5IFdlYktpdCBvbiBXaW5kb3dzLCB0aGlzIHdvdWxkIGJlIHRoZSBwbGFjZSB0byBob29r
IHRoZW0gdXAuCiB9CkBAIC03NTMsNyArNzUzLDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1
cHBvcnRzVmlkZW9GdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2MK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9G
dWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCkK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVu
dChIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
VmlkZW9GdWxsc2NyZWVuTW9kZSkKIHsKICAgICBtX3dlYlZpZXctPmVudGVyVmlkZW9GdWxsc2Ny
ZWVuRm9yVmlkZW9FbGVtZW50KHZpZGVvRWxlbWVudCk7CiB9CkBAIC03ODEsNTkgKzc4MSw2MSBA
QCBib29sIFdlYkNocm9tZUNsaWVudDo6aGFzT3BlbmVkUG9wdXAoKSBjb25zdAogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotUmVmUHRyPFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8UG9wdXBNZW51
PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmIGNsaWVu
dCkgY29uc3QKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudVdpbihjbGllbnQp
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudVdpbigmY2xpZW50KSk7CiB9CiAK
LVJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUmVmUHRyPFNlYXJjaFBvcHVw
TWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50JiBjbGllbnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1
cE1lbnVXaW4oY2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1l
bnVXaW4oJmNsaWVudCkpOwogfQogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxlbWVu
dCogZWxlbWVudCwgYm9vbCByZXF1ZXN0aW5nS2V5Ym9hcmRBY2Nlc3MpCisKK2Jvb2wgV2ViQ2hy
b21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVs
ZW1lbnQsIGJvb2wgcmVxdWVzdGluZ0tleWJvYXJkQWNjZXNzKQogewogICAgIENPTVB0cjxJV2Vi
VUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlE
ZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CiAgICAgICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZVBy
aXZhdGU0PiB1aURlbGVnYXRlUHJpdmF0ZTQoUXVlcnksIHVpRGVsZWdhdGUpOwogICAgICAgICBC
T09MIHN1cHBvcnRzID0gRkFMU0U7Ci0gICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxl
bWVudChBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoY29uc3RfY2FzdDxFbGVt
ZW50Kj4oZWxlbWVudCkpKTsKKyAgICAgICAgQ09NUHRyPElET01FbGVtZW50PiBkb21FbGVtZW50
KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZShjb25zdF9jYXN0PEVsZW1lbnQq
PigmZWxlbWVudCkpKTsKIAogICAgICAgICBpZiAodWlEZWxlZ2F0ZVByaXZhdGU0ICYmIFNVQ0NF
RURFRCh1aURlbGVnYXRlUHJpdmF0ZTQtPnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoZG9t
RWxlbWVudC5nZXQoKSwgcmVxdWVzdGluZ0tleWJvYXJkQWNjZXNzLCAmc3VwcG9ydHMpKSkKICAg
ICAgICAgICAgIHJldHVybiBzdXBwb3J0czsKICAgICB9CiAKLSAgICByZXR1cm4gbV93ZWJWaWV3
LT5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQsIHJlcXVlc3RpbmdLZXlib2Fy
ZEFjY2Vzcyk7CisgICAgcmV0dXJuIG1fd2ViVmlldy0+c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxl
bWVudCgmZWxlbWVudCwgcmVxdWVzdGluZ0tleWJvYXJkQWNjZXNzKTsKIH0KIAotdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQm
IGVsZW1lbnQpCiB7CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOwogICAg
IGlmIChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkpIHsKICAg
ICAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlUHJpdmF0ZTQ+IHVpRGVsZWdhdGVQcml2YXRlNChR
dWVyeSwgdWlEZWxlZ2F0ZSk7Ci0gICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxlbWVu
dChBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoZWxlbWVudCkpOworICAgICAg
ICBDT01QdHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00sIERPTUVsZW1lbnQ6OmNy
ZWF0ZUluc3RhbmNlKCZlbGVtZW50KSk7CiAgICAgICAgIGlmICh1aURlbGVnYXRlUHJpdmF0ZTQg
JiYgU1VDQ0VFREVEKHVpRGVsZWdhdGVQcml2YXRlNC0+ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVu
dChkb21FbGVtZW50LmdldCgpKSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfSAKIAotICAg
IG1fd2ViVmlldy0+c2V0RnVsbFNjcmVlbkVsZW1lbnQoZWxlbWVudCk7CisgICAgbV93ZWJWaWV3
LT5zZXRGdWxsU2NyZWVuRWxlbWVudCgmZWxlbWVudCk7CiAgICAgbV93ZWJWaWV3LT5mdWxsU2Ny
ZWVuQ29udHJvbGxlcigpLT5lbnRlckZ1bGxTY3JlZW4oKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50
KQogewogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICBpZiAoU1VD
Q0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CiAgICAgICAgIENP
TVB0cjxJV2ViVUlEZWxlZ2F0ZVByaXZhdGU0PiB1aURlbGVnYXRlUHJpdmF0ZTQoUXVlcnksIHVp
RGVsZWdhdGUpOwotICAgICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRD
T00sIERPTUVsZW1lbnQ6OmNyZWF0ZUluc3RhbmNlKGVsZW1lbnQpKTsKKyAgICAgICAgQ09NUHRy
PElET01FbGVtZW50PiBkb21FbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0
YW5jZSgmZWxlbWVudCkpOwogICAgICAgICBpZiAodWlEZWxlZ2F0ZVByaXZhdGU0ICYmIFNVQ0NF
RURFRCh1aURlbGVnYXRlUHJpdmF0ZTQtPmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChkb21FbGVt
ZW50LmdldCgpKSkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUKGVs
ZW1lbnQgPT0gbV93ZWJWaWV3LT5mdWxsU2NyZWVuRWxlbWVudCgpKTsKKyAgICBBU1NFUlQoJmVs
ZW1lbnQgPT0gbV93ZWJWaWV3LT5mdWxsU2NyZWVuRWxlbWVudCgpKTsKICAgICBtX3dlYlZpZXct
PmZ1bGxTY3JlZW5Db250cm9sbGVyKCktPmV4aXRGdWxsU2NyZWVuKCk7CiB9CisKICNlbmRpZgog
CiB2b2lkIFdlYkNocm9tZUNsaWVudDo6QVhTdGFydEZyYW1lTG9hZCgpCkBAIC04NTIsMTAgKzg1
NCwxMCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6QVhGaW5pc2hGcmFtZUxvYWQoKQogICAgICAg
ICBkZWxlZ2F0ZS0+ZmlyZUZyYW1lTG9hZEZpbmlzaGVkRXZlbnRzKCk7CiB9CiAKLWJvb2wgV2Vi
Q2hyb21lQ2xpZW50OjpzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJh
bWVWaWV3KiBmcmFtZVZpZXcpIGNvbnN0Citib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNl
VGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaWV3KSBjb25z
dAogewogI2lmICFVU0UoQ0FJUk8pCi0gICAgcmV0dXJuIGZyYW1lVmlldyAmJiBmcmFtZVZpZXct
PmZyYW1lKCkuaXNNYWluRnJhbWUoKTsKKyAgICByZXR1cm4gZnJhbWVWaWV3LmZyYW1lKCkuaXNN
YWluRnJhbWUoKTsKICNlbHNlCiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDky
ODcyYjQxYzEyZmIzMTVlNTQxZWNiZGI5NWRiY2IxNTY2MjcyZGMuLjE4MzEyZDZiYzQ0YzY3Y2Q4
NDEyNDAxOTA4ZmJkNjQxOGVlNjI1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0zNywxMzcgKzM3LDEzNyBAQCBjbGFz
cyBXZWJEZXNrdG9wTm90aWZpY2F0aW9uc0RlbGVnYXRlOwogCiBpbnRlcmZhY2UgSVdlYlVJRGVs
ZWdhdGU7CiAKLWNsYXNzIFdlYkNocm9tZUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpDaHJvbWVD
bGllbnQgeworY2xhc3MgV2ViQ2hyb21lQ2xpZW50IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkNo
cm9tZUNsaWVudCB7CiBwdWJsaWM6CiAgICAgV2ViQ2hyb21lQ2xpZW50KFdlYlZpZXcqKTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKTsKKyAgICB2b2lkIGNocm9tZURlc3Ry
b3llZCgpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0Jik7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93
UmVjdCgpOworICAgIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
KSBmaW5hbDsKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93UmVjdCgpIGZpbmFsOwogICAg
IAotICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHBhZ2VSZWN0KCk7CisgICAgV2ViQ29y
ZTo6RmxvYXRSZWN0IHBhZ2VSZWN0KCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXMo
KTsKLSAgICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpOworICAgIHZvaWQgZm9jdXMoKSBmaW5hbDsK
KyAgICB2b2lkIHVuZm9jdXMoKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9j
dXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pOwotICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMo
V2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pOworICAgIGJvb2wgY2FuVGFrZUZvY3VzKFdlYkNvcmU6
OkZvY3VzRGlyZWN0aW9uKSBmaW5hbDsKKyAgICB2b2lkIHRha2VGb2N1cyhXZWJDb3JlOjpGb2N1
c0RpcmVjdGlvbikgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEVsZW1lbnRDaGFu
Z2VkKFdlYkNvcmU6OkVsZW1lbnQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEZyYW1lQ2hh
bmdlZChXZWJDb3JlOjpGcmFtZSopOworICAgIHZvaWQgZm9jdXNlZEVsZW1lbnRDaGFuZ2VkKFdl
YkNvcmU6OkVsZW1lbnQqKSBmaW5hbDsKKyAgICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoV2Vi
Q29yZTo6RnJhbWUqKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6UGFnZSogY3JlYXRl
V2luZG93KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCYs
IGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlv
bkFjdGlvbiYpOwotICAgIHZpcnR1YWwgdm9pZCBzaG93KCk7CisgICAgV2ViQ29yZTo6UGFnZSog
Y3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVx
dWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2
aWdhdGlvbkFjdGlvbiYpIGZpbmFsOworICAgIHZvaWQgc2hvdygpIGZpbmFsOwogCi0gICAgdmly
dHVhbCBib29sIGNhblJ1bk1vZGFsKCk7Ci0gICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsKCk7Cisg
ICAgYm9vbCBjYW5SdW5Nb2RhbCgpIGZpbmFsOworICAgIHZvaWQgcnVuTW9kYWwoKSBmaW5hbDsK
IAotICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sYmFyc1Zpc2libGUoYm9vbCk7Ci0gICAgdmlydHVh
bCBib29sIHRvb2xiYXJzVmlzaWJsZSgpOworICAgIHZvaWQgc2V0VG9vbGJhcnNWaXNpYmxlKGJv
b2wpIGZpbmFsOworICAgIGJvb2wgdG9vbGJhcnNWaXNpYmxlKCkgZmluYWw7CiAgICAgCi0gICAg
dmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclZpc2libGUoYm9vbCk7Ci0gICAgdmlydHVhbCBib29s
IHN0YXR1c2JhclZpc2libGUoKTsKKyAgICB2b2lkIHNldFN0YXR1c2JhclZpc2libGUoYm9vbCkg
ZmluYWw7CisgICAgYm9vbCBzdGF0dXNiYXJWaXNpYmxlKCkgZmluYWw7CiAgICAgCi0gICAgdmly
dHVhbCB2b2lkIHNldFNjcm9sbGJhcnNWaXNpYmxlKGJvb2wpOwotICAgIHZpcnR1YWwgYm9vbCBz
Y3JvbGxiYXJzVmlzaWJsZSgpOworICAgIHZvaWQgc2V0U2Nyb2xsYmFyc1Zpc2libGUoYm9vbCkg
ZmluYWw7CisgICAgYm9vbCBzY3JvbGxiYXJzVmlzaWJsZSgpIGZpbmFsOwogICAgIAotICAgIHZp
cnR1YWwgdm9pZCBzZXRNZW51YmFyVmlzaWJsZShib29sKTsKLSAgICB2aXJ0dWFsIGJvb2wgbWVu
dWJhclZpc2libGUoKTsKKyAgICB2b2lkIHNldE1lbnViYXJWaXNpYmxlKGJvb2wpIGZpbmFsOwor
ICAgIGJvb2wgbWVudWJhclZpc2libGUoKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRS
ZXNpemFibGUoYm9vbCk7CisgICAgdm9pZCBzZXRSZXNpemFibGUoYm9vbCkgZmluYWw7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpT
Qzo6TWVzc2FnZUxldmVsLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGlu
ZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBXVEY6OlN0cmluZyYgdXJsKTsK
KyAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1l
c3NhZ2VMZXZlbCwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgV1RGOjpTdHJpbmcmIHVybCkgZmluYWw7
CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCk7Ci0g
ICAgdmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBXVEY6OlN0
cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUqIGZyYW1lKTsKKyAgICBib29sIGNhblJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbCgpIGZpbmFsOworICAgIGJvb2wgcnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsKGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSYp
IGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGNsb3NlV2luZG93U29vbigpOworICAgIHZvaWQg
Y2xvc2VXaW5kb3dTb29uKCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcnVuSmF2YVNjcmlw
dEFsZXJ0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAgICB2aXJ0dWFs
IGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0
cmluZyYpOwotICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZy
YW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZWZh
dWx0VmFsdWUsIFdURjo6U3RyaW5nJiByZXN1bHQpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0
dXNiYXJUZXh0KGNvbnN0IFdURjo6U3RyaW5nJik7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxl
cnQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXVEY6OlN0cmluZyYpIGZpbmFsOworICAgIGJvb2wg
cnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXVEY6OlN0cmluZyYp
IGZpbmFsOworICAgIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSYsIGNv
bnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVmYXVsdFZhbHVl
LCBXVEY6OlN0cmluZyYgcmVzdWx0KSBmaW5hbDsKKyAgICB2b2lkIHNldFN0YXR1c2JhclRleHQo
Y29uc3QgV1RGOjpTdHJpbmcmKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6S2V5Ym9h
cmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKTsKKyAgICBXZWJDb3JlOjpLZXlib2FyZFVJTW9kZSBr
ZXlib2FyZFVJTW9kZSgpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290
Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRh
dGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSAgICB2aXJ0
dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0Jik7Ci0gICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBzY3JvbGxEZWx0YSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCk7CisgICAgdm9pZCBpbnZhbGlkYXRlUm9vdFZp
ZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZUNv
bnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOworICAgIHZv
aWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JikgZmluYWw7CisgICAgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xs
RGVsdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgY2xpcFJlY3QpIGZpbmFsOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpJbnRQ
b2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Q7Ci0g
ICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYpIGNvbnN0OwotICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRm
b3JtUGFnZUNsaWVudCgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFu
Z2VkKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0OworICAg
IFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmKSBjb25zdCBmaW5hbDsKKyAgICBXZWJDb3JlOjpJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4o
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IGZpbmFsOworICAgIFBsYXRmb3JtUGFnZUNs
aWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGNvbnRlbnRz
U2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29u
c3QgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBj
b25zdCB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3Qg
V2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwotICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihXZWJDb3Jl
OjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0
OwotICAgIHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29y
ZTo6RWxlbWVudCosIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWls
YWJpbGl0eVJlYXNvbikgY29uc3Q7CisgICAgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgp
IGNvbnN0IGZpbmFsIHsgfQorICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3Qg
V2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIGZpbmFsOwor
ICAgIGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29yZTo6
UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBm
aW5hbDsKKyAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpF
bGVtZW50JiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmls
aXR5UmVhc29uKSBjb25zdCBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNv
bnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbik7CisgICAgdm9pZCBzZXRU
b29sVGlwKGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKTsKKyAgICB2b2lkIHBy
aW50KFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJDb3Jl
OjpEYXRhYmFzZURldGFpbHMpOworICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNv
cmU6OkZyYW1lJiwgY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMp
IGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRf
dCBzcGFjZU5lZWRlZCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hl
T3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VO
ZWVkZWQpOworICAgIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVl
ZGVkKSBmaW5hbDsKKyAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEo
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpIGZpbmFs
OwogCi0gICAgdmlydHVhbCB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSYsIFdlYkNv
cmU6OkZpbGVDaG9vc2VyJik7Ci0gICAgdmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29u
c3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJik7CisgICAg
dm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciYp
IGZpbmFsOworICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJp
bmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXImKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9p
ZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJik7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0
TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpOworICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0
IFdlYkNvcmU6OkN1cnNvciYpIGZpbmFsOworICAgIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxN
b3VzZU1vdmVzKGJvb2wpIGZpbmFsOworICAgIHZvaWQgc2V0TGFzdFNldEN1cnNvclRvQ3VycmVu
dEN1cnNvcigpIGZpbmFsOwogCiAgICAgLy8gUGFzcyAwIGFzIHRoZSBHcmFwaGljc0xheWVyIHRv
IGRldGF0Y2ggdGhlIHJvb3QgbGF5ZXIuCi0gICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFw
aGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwotICAg
IHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBo
aWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7
CisgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUm
LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7CiAgICAgLy8gU2V0cyBhIGZsYWcgdG8g
c3BlY2lmeSB0aGF0IHRoZSBuZXh0IHRpbWUgY29udGVudCBpcyBkcmF3biB0byB0aGUgd2luZG93
LAogICAgIC8vIHRoZSBjaGFuZ2VzIGFwcGVhciBvbiB0aGUgc2NyZWVuIGluIHN5bmNocm9ueSB3
aXRoIHVwZGF0ZXMgdG8gR3JhcGhpY3NMYXllcnMuCi0gICAgdmlydHVhbCB2b2lkIHNldE5lZWRz
T25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSB7IH0KKyAgICB2b2lkIHNldE5lZWRzT25l
U2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSBmaW5hbCB7IH0KICAgICAvLyBTZXRzIGEgZmxh
ZyB0byBzcGVjaWZ5IHRoYXQgdGhlIHZpZXcgbmVlZHMgdG8gYmUgdXBkYXRlZCwgc28gd2UgbmVl
ZAogICAgIC8vIHRvIGRvIGFuIGVhZ2VyIGxheW91dCBiZWZvcmUgdGhlIGRyYXdpbmcuCi0gICAg
dmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAgdm9pZCBz
Y2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIGZpbmFsOwogCiAjaWYgUExBVEZPUk0oV0lO
KSAmJiBVU0UoQVZGT1VOREFUSU9OKQotICAgIFdlYkNvcmU6OkdyYXBoaWNzRGV2aWNlQWRhcHRl
ciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6
R3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBncmFwaGljc0RldmljZUFkYXB0ZXIoKSBjb25zdCBmaW5h
bDsKICNlbmRpZgogCi0gICAgdmlydHVhbCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBX
ZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgeyB9CisgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXco
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IGZpbmFsIHsgfQogCiAjaWYgRU5BQkxFKFZJ
REVPKQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpOwotICAgIHZpcnR1YWwg
dm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlk
ZW9FbGVtZW50Jik7Ci0gICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRl
b0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpOworICAgIGJvb2wgc3VwcG9ydHNW
aWRlb0Z1bGxzY3JlZW4oV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlKSBmaW5hbDsKKyAgICB2b2lkIGVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9F
bGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpIGZpbmFsOworICAgIHZvaWQgZXhpdFZpZGVv
RnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JikgZmlu
YWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZ
X05PVElGSUNBVElPTlMpCi0gICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQq
IG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50Kj4obV9ub3RpZmljYXRpb25zRGVsZWdhdGUuZ2V0
KCkpOyB9CisgICAgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50KiBub3RpZmljYXRpb25QcmVz
ZW50ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiByZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5v
dGlmaWNhdGlvbkNsaWVudCo+KG1fbm90aWZpY2F0aW9uc0RlbGVnYXRlLmdldCgpKTsgfQogI2Vu
ZGlmCiAKLSAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKTsKLSAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3Jp
dGluZ0RpcmVjdGlvbigpOwotICAgIHZpcnR1YWwgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0
OwotICAgIHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51
KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwotICAgIHZpcnR1YWwgUmVmUHRyPFdl
YkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rp
b25Jc05hdHVyYWwoKSBmaW5hbDsKKyAgICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dz
TWVudVdyaXRpbmdEaXJlY3Rpb24oKSBmaW5hbDsKKyAgICBib29sIGhhc09wZW5lZFBvcHVwKCkg
Y29uc3QgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBN
ZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYpIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxX
ZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQ
b3B1cE1lbnVDbGllbnQmKSBjb25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKLSAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBX
ZWJDb3JlOjpFbGVtZW50KiwgYm9vbCB3aXRoS2V5Ym9hcmQpOwotICAgIHZpcnR1YWwgdm9pZCBl
bnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKTsKLSAgICB2aXJ0dWFs
IHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKTsKKyAgICBi
b29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCYs
IGJvb2wgd2l0aEtleWJvYXJkKSBmaW5hbDsKKyAgICB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVs
ZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOworICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW5G
b3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKICNlbmRpZgogCi0gICAgdm9pZCB3
aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKGJvb2wpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgd2hl
ZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChib29sKSBmaW5hbCB7IH0KIAogICAgIFdlYlZpZXcqIHdl
YlZpZXcoKSB7IHJldHVybiBtX3dlYlZpZXc7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBBWFN0YXJ0
RnJhbWVMb2FkKCk7Ci0gICAgdmlydHVhbCB2b2lkIEFYRmluaXNoRnJhbWVMb2FkKCk7CisgICAg
dm9pZCBBWFN0YXJ0RnJhbWVMb2FkKCkgZmluYWw7CisgICAgdm9pZCBBWEZpbmlzaEZyYW1lTG9h
ZCgpIGZpbmFsOwogCi0gICAgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXco
Y29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBzaG91
bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3Jikg
Y29uc3QgZmluYWw7CiAKIHByaXZhdGU6CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURl
bGVnYXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMTBiNWNlZWRjM2U3MGQ1MGFkYzI3ODIx
MTk0OGVmOTAwZTYwYmM2Zi4uM2QxM2NkNDQ2YzZhZjc3YTBlY2YwZWVlZDhjMWM4YjU3YjY5YWFm
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTAyNSw3ICsxMDI1LDcgQEAgUmVmUHRyPEZyYW1l
PiBXZWJGcmFtZUxvYWRlckNsaWVudDo6Y3JlYXRlRnJhbWUoY29uc3QgVVJMJiB1cmwsIGNvbnN0
IFN0cmluZyYgbmEKICAgICBSZWZQdHI8RnJhbWU+IGNoaWxkRnJhbWUgPSB3ZWJGcmFtZS0+Y3Jl
YXRlU3ViZnJhbWVXaXRoT3duZXJFbGVtZW50KG1fd2ViRnJhbWUtPndlYlZpZXcoKSwgY29yZUZy
YW1lLT5wYWdlKCksICZvd25lckVsZW1lbnQpOwogCiAgICAgY2hpbGRGcmFtZS0+dHJlZSgpLnNl
dE5hbWUobmFtZSk7Ci0gICAgY29yZUZyYW1lLT50cmVlKCkuYXBwZW5kQ2hpbGQoY2hpbGRGcmFt
ZSk7CisgICAgY29yZUZyYW1lLT50cmVlKCkuYXBwZW5kQ2hpbGQoKmNoaWxkRnJhbWUpOwogICAg
IGNoaWxkRnJhbWUtPmluaXQoKTsKIAogICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZFVSTElu
dG9DaGlsZEZyYW1lKHVybCwgcmVmZXJyZXIsIGNoaWxkRnJhbWUuZ2V0KCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcAppbmRleCA1MTc1ZjAwMmQ2MTcyYmUxNjA4MDNmNDczZTFkYWUyZTA0MzYxYjU3Li45
MzcwMTlkYmNjMWNhZDYxZTJhMmIwNDk1NTg1YmE1Y2JkMDJmNDBhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3
LmNwcApAQCAtNTg1Myw3ICs1ODUzLDcgQEAgSFJFU1VMVCBXZWJWaWV3OjpzdGFuZGFyZFVzZXJB
Z2VudFdpdGhBcHBsaWNhdGlvbk5hbWUoX0luXyBCU1RSIGFwcGxpY2F0aW9uTmFtZSwKIEhSRVNV
TFQgV2ViVmlldzo6Y2xlYXJGb2N1c05vZGUoKQogewogICAgIGlmIChtX3BhZ2UpCi0gICAgICAg
IG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQoMCwgMCk7CisgICAg
ICAgIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQobnVsbHB0ciwg
bV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKSk7CiAgICAgcmV0
dXJuIFNfT0s7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3Jv
bGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
U2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IGUxMTU1MjkxMDY0NzAxYjg4
YjdiMzJhYmNkMWYyZTY1NDMzZTI4OWUuLjQyMWM3NDU3YzkwM2I0N2UyZTFhN2I0ODg5ODgxZjU3
YzMwZWFjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcv
UmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Nj
cm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQg
UmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3Jv
bGxpbmdOb2RlSUQgbm9kZUlECiAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9s
bGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwobm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgcmVwcmVz
ZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7CiB9CiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5v
ZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGlu
Z05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQorUmVmPFNjcm9sbGlu
Z1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShT
Y3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKIHsKICAg
ICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2FzZSBGcmFtZVNjcm9sbGluZ05vZGU6CkBAIC0x
MjQsMTQgKzEyNCwxNSBAQCBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3Jv
bGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbAogICAgICAgICByZXR1cm4g
U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6Y3JlYXRlKCp0aGlzLCBub2Rl
SUQpOwogI2Vsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVy
biBudWxscHRyOworICAgICAgICBicmVhazsKICNlbmRpZgogICAgIGNhc2UgRml4ZWROb2RlOgog
ICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2Rl
SUQpOwogICAgIGNhc2UgU3RpY2t5Tm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVT
dGlja3lOb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgfQotICAgIHJldHVybiBudWxs
cHRyOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTY3JvbGxpbmdUcmVl
Rml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKIHZvaWQgUmVtb3RlU2Nyb2xs
aW5nVHJlZTo6Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlE
IG5vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1Ry
ZWUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5n
VHJlZS5oCmluZGV4IGQ2NWIyZjVlZDZkZGY1N2VjNDQwZGY0OTBkMmUxMTY4YzhlYzA1YzkuLjcz
MThjY2M4MTRjYTU3MTZkYzcwYzI0YjZjNDQxNzhkMjU2Y2RhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5o
CkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvclByb3h5OwogCi1jbGFzcyBSZW1vdGVTY3JvbGxpbmdUcmVlIDogcHVi
bGljIFdlYkNvcmU6OlNjcm9sbGluZ1RyZWUgeworY2xhc3MgUmVtb3RlU2Nyb2xsaW5nVHJlZSBm
aW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTY3JvbGxpbmdUcmVlIHsKIHB1YmxpYzoKICAgICBzdGF0
aWMgUmVmPFJlbW90ZVNjcm9sbGluZ1RyZWU+IGNyZWF0ZShSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5Jik7CiAgICAgdmlydHVhbCB+UmVtb3RlU2Nyb2xsaW5nVHJlZSgpOwpAQCAtNjUs
NyArNjUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRTY3Jv
bGwoKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9k
ZVR5cGUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisgICAgUmVmPFdlYkNv
cmU6OlNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShXZWJDb3JlOjpT
Y3JvbGxpbmdOb2RlVHlwZSwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKICAg
ICAKICAgICBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5JiBtX3Njcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4IDgwNTlh
ZDU1YWFlMzJmOGU1M2E3MDE5YjUyODdlZThiMDk0MGI5MTQuLmE3OWQxMGE5ZDUwNzcxMDQ1Y2U1
ODMwZWE1NzM3NGM4NDE4NTYyN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAg
LTM2OCwyMiArMzY4LDIyIEBAIFdLQnVuZGxlQmFja0ZvcndhcmRMaXN0UmVmIFdLQnVuZGxlUGFn
ZUdldEJhY2tGb3J3YXJkTGlzdChXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlCiAKIHZvaWQgV0tCdW5k
bGVQYWdlSW5zdGFsbFBhZ2VPdmVybGF5KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRs
ZVBhZ2VPdmVybGF5UmVmIHBhZ2VPdmVybGF5UmVmKQogewotICAgIHRvSW1wbChwYWdlUmVmKS0+
bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSh0
b0ltcGwocGFnZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3Zlcmxh
eTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJhbWUo
KS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KCp0b0ltcGwocGFn
ZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1v
ZGU6OkRvTm90RmFkZSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlVW5pbnN0YWxsUGFnZU92ZXJs
YXkoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYsIFdLQnVuZGxlUGFnZU92ZXJsYXlSZWYgcGFnZU92
ZXJsYXlSZWYpCiB7Ci0gICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJs
YXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkodG9JbXBsKHBhZ2VPdmVybGF5UmVm
KS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZh
ZGUpOworICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCp0b0ltcGwocGFnZU92ZXJsYXlSZWYpLT5jb3Jl
T3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiB9
CiAKIHZvaWQgV0tCdW5kbGVQYWdlSW5zdGFsbFBhZ2VPdmVybGF5V2l0aEFuaW1hdGlvbihXS0J1
bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQYWdlT3ZlcmxheVJlZiBwYWdlT3ZlcmxheVJl
ZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRy
b2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkodG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92
ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICB0b0lt
cGwocGFnZVJlZiktPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxs
UGFnZU92ZXJsYXkoKnRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNv
cmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdl
VW5pbnN0YWxsUGFnZU92ZXJsYXlXaXRoQW5pbWF0aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVm
LCBXS0J1bmRsZVBhZ2VPdmVybGF5UmVmIHBhZ2VPdmVybGF5UmVmKQogewotICAgIHRvSW1wbChw
YWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBh
Z2VPdmVybGF5KHRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6
OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWlu
RnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKnRv
SW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5
OjpGYWRlTW9kZTo6RmFkZSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlU2V0VG9wT3ZlcmhhbmdJ
bWFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tJbWFnZVJlZiBpbWFnZVJlZikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBE
RlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVj
YXRlZFBERlBsdWdpbi5tbQppbmRleCA4NTA5YWU2NTAyNGQ0ZWU1OTJlZDEyNWExMjEyMTQwZjA3
ZmNlMzFlLi40MWViMDM5NDZmYTlhNGFhZmQwZjhmMTYwOWJjMTNmMzc1N2Y5NWNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQ
bHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXBy
ZWNhdGVkUERGUGx1Z2luLm1tCkBAIC04NjAsNyArODYwLDcgQEAgSlNWYWx1ZVJlZiBQREZQbHVn
aW46OmpzUERGRG9jUHJpbnQoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
IEpTT2IKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5l
ZChjdHgpOwogCi0gICAgcGFnZS0+Y2hyb21lKCkucHJpbnQoY29yZUZyYW1lKTsKKyAgICBwYWdl
LT5jaHJvbWUoKS5wcmludCgqY29yZUZyYW1lKTsKIAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjdHgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblZpZXcuY3BwCmluZGV4IDU2MmE5YTJlMTU3YzQzYzVkZTc1YzNmNzI1NjMxMmRmZTRl
MTU3YmMuLmQ5YTQyODg2MWJlYzU2NDUzYTdmMGNlMTNkM2JmOTg5MWYzZDk5MjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTEx
MjgsNyArMTEyOCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6Zm9jdXNQbHVnaW5FbGVtZW50KCkKICAg
ICBBU1NFUlQoZnJhbWUoKSk7CiAgICAgCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFtZSgpLT5w
YWdlKCkpCi0gICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50
KG1fcGx1Z2luRWxlbWVudC5nZXQoKSwgZnJhbWUoKSk7CisgICAgICAgIHBhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG1fcGx1Z2luRWxlbWVudC5nZXQoKSwgKmZyYW1l
KCkpOwogICAgIGVsc2UKICAgICAgICAgZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZEVs
ZW1lbnQobV9wbHVnaW5FbGVtZW50LmdldCgpKTsKIH0KQEAgLTE1MDgsNyArMTUwOCw3IEBAIHZv
aWQgUGx1Z2luVmlldzo6c2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmIHN0YXR1c2JhclRl
eHQpCiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBwYWdlLT5jaHJvbWUo
KS5zZXRTdGF0dXNiYXJUZXh0KGZyYW1lKCksIHN0YXR1c2JhclRleHQpOworICAgIHBhZ2UtPmNo
cm9tZSgpLnNldFN0YXR1c2JhclRleHQoKmZyYW1lKCksIHN0YXR1c2JhclRleHQpOwogfQogCiBi
b29sIFBsdWdpblZpZXc6OmlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCmluZGV4IDQ5ODM0YzNhMzBlYmY5MjE1ZTlmNTRlOTFkY2IyNGVhMTNm
OTRjZWQuLmE4ZGZkZmM5NTMwZWUwNmYzMWM4ZjViMTRmZDY3MmZmZTI0YjIzY2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAKQEAgLTEwMyw3ICsxMDMsNiBAQCBzdGF0aWMgZG91YmxlIGFyZWEo
V2ViRnJhbWUqIGZyYW1lKQogICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHNpemUuaGVp
Z2h0KCkpICogc2l6ZS53aWR0aCgpOwogfQogCi0KIHN0YXRpYyBXZWJGcmFtZSogZmluZExhcmdl
c3RGcmFtZUluRnJhbWVTZXQoV2ViUGFnZSYgcGFnZSkKIHsKICAgICAvLyBBcHByb3hpbWF0ZSB3
aGF0IGEgdXNlciBjb3VsZCBjb25zaWRlciBhIGRlZmF1bHQgdGFyZ2V0IGZyYW1lIGZvciBhcHBs
aWNhdGlvbiBtZW51IG9wZXJhdGlvbnMuCkBAIC0xNzksMjAgKzE3OCwyMiBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6dW5mb2N1cygpCiB9CiAKICNpZiBQTEFURk9STShDT0NPQSkKLXZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9jdXMoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkK
Kwordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRGb2N1cyhXZWJDb3JlOjpFbGVtZW50
JiBlbGVtZW50KQogewotICAgIG1fcGFnZS5lbGVtZW50RGlkRm9jdXMoY29uc3RfY2FzdDxXZWJD
b3JlOjpOb2RlKj4obm9kZSkpOworICAgIG1fcGFnZS5lbGVtZW50RGlkRm9jdXMoJmVsZW1lbnQp
OwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIoY29uc3QgV2ViQ29y
ZTo6Tm9kZSogbm9kZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkQmx1cihXZWJD
b3JlOjpFbGVtZW50JiBlbGVtZW50KQogewotICAgIG1fcGFnZS5lbGVtZW50RGlkQmx1cihjb25z
dF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihub2RlKSk7CisgICAgbV9wYWdlLmVsZW1lbnREaWRCbHVy
KCZlbGVtZW50KTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om1ha2VGaXJzdFJlc3BvbmRl
cigpCiB7CiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TWFrZUZpcnN0
UmVzcG9uZGVyKCkpOwotfSAgICAKK30KKwogI2VuZGlmICAgIAogCiBib29sIFdlYkNocm9tZUNs
aWVudDo6Y2FuVGFrZUZvY3VzKEZvY3VzRGlyZWN0aW9uKQpAQCAtMjI3LDE2ICsyMjgsMTYgQEAg
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqIGZyYW1lKQog
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Rm9jdXNlZEZyYW1lQ2hhbmdlZCh3ZWJGcmFtZSA/
IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAwKSwgbV9wYWdlLnBhZ2VJRCgpKTsKIH0KIAotUGFnZSog
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZUxv
YWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgd2luZG93RmVhdHVyZXMs
IGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24pCitQYWdlKiBXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiB3aW5kb3dGZWF0dXJlcywgY29uc3Qg
TmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbikKIHsKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCi0gICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpICYmIGZyYW1lLT5kb2N1bWVudCgp
LT53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkKLSAgICAgICAgZnJhbWUtPmRvY3Vt
ZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsKKyAgICBpZiAoZnJhbWUuZG9jdW1lbnQo
KSAmJiBmcmFtZS5kb2N1bWVudCgpLT53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkK
KyAgICAgICAgZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOwogI2Vu
ZGlmCiAKICAgICBhdXRvJiB3ZWJQcm9jZXNzID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCk7CiAK
LSAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUp
OworICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1l
KTsKIAogICAgIE5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhOwogICAg
IG5hdmlnYXRpb25BY3Rpb25EYXRhLm5hdmlnYXRpb25UeXBlID0gbmF2aWdhdGlvbkFjdGlvbi50
eXBlKCk7CkBAIC0yNTAsNyArMjUxLDcgQEAgUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVX
aW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXMKIAogICAg
IHVpbnQ2NF90IG5ld1BhZ2VJRCA9IDA7CiAgICAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBw
YXJhbWV0ZXJzOwotICAgIGlmICghd2ViUHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlKHdlYkZyYW1l
LT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGZyYW1lKSwgcmVxdWVz
dC5yZXNvdXJjZVJlcXVlc3QoKSwgd2luZG93RmVhdHVyZXMsIG5hdmlnYXRpb25BY3Rpb25EYXRh
KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6UmVwbHkobmV3UGFnZUlE
LCBwYXJhbWV0ZXJzKSwgbV9wYWdlLnBhZ2VJRCgpKSkKKyAgICBpZiAoIXdlYlByb2Nlc3MucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
Q3JlYXRlTmV3UGFnZSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZy
b21GcmFtZSgmZnJhbWUpLCByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCB3aW5kb3dGZWF0dXJl
cywgbmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVO
ZXdQYWdlOjpSZXBseShuZXdQYWdlSUQsIHBhcmFtZXRlcnMpLCBtX3BhZ2UucGFnZUlEKCkpKQog
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIGlmICghbmV3UGFnZUlEKQpAQCAtMzYxLDkg
KzM2Miw5IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwoKQogICAgIHJldHVybiBtX3BhZ2UuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KCk7CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSogZnJhbWUpCitib29sIFdlYkNocm9tZUNs
aWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
RnJhbWUmIGZyYW1lKQogewotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9t
Q29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZy
b21Db3JlRnJhbWUoZnJhbWUpOwogCiAgICAgYm9vbCBzaG91bGRDbG9zZSA9IGZhbHNlOwogCkBA
IC00MDIsMTIgKzQwMywxMiBAQCBzdGF0aWMgYm9vbCBzaG91bGRTdXBwcmVzc0phdmFTY3JpcHRE
aWFsb2dzKEZyYW1lJiBmcmFtZSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcm
IGFsZXJ0VGV4dCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJh
bWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIGFsZXJ0VGV4dCkKIHsKLSAgICBpZiAoc2hvdWxkU3Vw
cHJlc3NKYXZhU2NyaXB0RGlhbG9ncygqZnJhbWUpKQorICAgIGlmIChzaG91bGRTdXBwcmVzc0ph
dmFTY3JpcHREaWFsb2dzKGZyYW1lKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViRnJhbWUq
IHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFt
ZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAgICAgQVNTRVJU
KHdlYkZyYW1lKTsKIAogICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVudC4KQEAgLTQxNSwx
NSArNDE2LDE1IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJh
bWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGFsZXJ0VGV4dCkKIAogICAgIEhhbmdEZXRlY3Rpb25E
aXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlzYWJsZXI7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlP
cmlnaW5EYXRhOjpmcm9tRnJhbWUoZnJhbWUpLCBhbGVydFRleHQpLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OlJlcGx5KCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vj
b25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9j
ZXNzV2lsbFN1c3BlbmQpOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFT
Y3JpcHRBbGVydCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21G
cmFtZSgmZnJhbWUpLCBhbGVydFRleHQpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZh
U2NyaXB0QWxlcnQ6OlJlcGx5KCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHko
KSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQp
OwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUq
IGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVu
SmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7
Ci0gICAgaWYgKHNob3VsZFN1cHByZXNzSmF2YVNjcmlwdERpYWxvZ3MoKmZyYW1lKSkKKyAgICBp
ZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncyhmcmFtZSkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZy
YW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3Jl
RnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKICAgICAvLyBOb3RpZnkgdGhl
IGJ1bmRsZSBjbGllbnQuCkBAIC00MzIsMTggKzQzMywxOCBAQCBib29sIFdlYkNocm9tZUNsaWVu
dDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCiAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxlcjsKIAog
ICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9y
aWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIG1lc3NhZ2UpLCBNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6UmVwbHkocmVzdWx0KSwgbV9wYWdlLnBhZ2VJRCgp
LCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9y
bVByb2Nlc3NXaWxsU3VzcGVuZCkpCisgICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdp
bkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBtZXNzYWdlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06OlJlcGx5KHJlc3VsdCksIG1fcGFnZS5wYWdlSUQoKSwg
U2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Q
cm9jZXNzV2lsbFN1c3BlbmQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChG
cmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0
VmFsdWUsIFN0cmluZyYgcmVzdWx0KQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3Jp
cHRQcm9tcHQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmlu
ZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKIHsKLSAgICBpZiAoc2hvdWxkU3VwcHJl
c3NKYXZhU2NyaXB0RGlhbG9ncygqZnJhbWUpKQorICAgIGlmIChzaG91bGRTdXBwcmVzc0phdmFT
Y3JpcHREaWFsb2dzKGZyYW1lKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgV2ViRnJh
bWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAgICAgQVNT
RVJUKHdlYkZyYW1lKTsKIAogICAgIC8vIE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVudC4KQEAgLTQ1
MSw3ICs0NTIsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChG
cmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgYwogCiAgICAgSGFuZ0RldGVjdGlv
bkRpc2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxlcjsKIAotICAgIGlmICghV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBT
ZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIG1lc3NhZ2UsIGRlZmF1bHRWYWx1
ZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OlJlcGx5KHJl
c3VsdCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3lu
Y09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpKQorICAgIGlmICghV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdCh3ZWJGcmFtZS0+ZnJh
bWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBtZXNzYWdlLCBk
ZWZhdWx0VmFsdWUpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0
OjpSZXBseShyZXN1bHQpLCBtX3BhZ2UucGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCksIElQ
Qzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuICFyZXN1bHQuaXNOdWxsKCk7CkBAIC01
NTYsNyArNTU3LDcgQEAgUGxhdGZvcm1QYWdlQ2xpZW50IFdlYkNocm9tZUNsaWVudDo6cGxhdGZv
cm1QYWdlQ2xpZW50KCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRTaXplJiBz
aXplKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJh
bWUmIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAogewogICAgIGlmICghbV9wYWdl
LmNvcmVQYWdlKCktPnNldHRpbmdzKCkuZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpKSB7CiAgICAg
ICAgIFdlYkZyYW1lKiBsYXJnZXN0RnJhbWUgPSBmaW5kTGFyZ2VzdEZyYW1lSW5GcmFtZVNldCht
X3BhZ2UpOwpAQCAtNTY2LDE0ICs1NjcsMTQgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRl
bnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb24KICAg
ICAgICAgfQogICAgIH0KIAotICAgIGlmICgmZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkgIT0g
ZnJhbWUpCisgICAgaWYgKCZmcmFtZS5wYWdlKCktPm1haW5GcmFtZSgpICE9ICZmcmFtZSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGlkQ2hhbmdlQ29udGVudFNpemUoc2l6ZSkpOwogCiAgICAgbV9wYWdlLmRyYXdpbmdBcmVhKCkt
Pm1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChzaXplKTsKIAotICAgIEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gZnJhbWUtPnZpZXcoKTsKKyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGZyYW1l
LnZpZXcoKTsKICAgICBpZiAoZnJhbWVWaWV3ICYmICFmcmFtZVZpZXctPmRlbGVnYXRlc1Njcm9s
bGluZygpKSAgewogICAgICAgICBib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIgPSBmcmFtZVZp
ZXctPmhvcml6b250YWxTY3JvbGxiYXIoKTsKICAgICAgICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9s
bGJhciA9IGZyYW1lVmlldy0+dmVydGljYWxTY3JvbGxiYXIoKTsKQEAgLTYxMSwyMSArNjEyLDIx
IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VC
ZUJ1dHRvbihSZW5kZXJFbWJlZGRlZE9iamVjCiAgICAgcmV0dXJuIGZhbHNlOwogfQogICAgIAot
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVt
ZW50KiBlbGVtZW50LCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlS
ZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0Cit2b2lkIFdlYkNocm9tZUNs
aWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVsZW1lbnQmIGVsZW1lbnQsIFJl
bmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2
YWlsYWJpbGl0eVJlYXNvbikgY29uc3QKIHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQ
SSkKLSAgICBBU1NFUlQoZWxlbWVudC0+aGFzVGFnTmFtZShvYmplY3RUYWcpIHx8IGVsZW1lbnQt
Pmhhc1RhZ05hbWUoZW1iZWRUYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoYXBwbGV0VGFnKSk7
CisgICAgQVNTRVJUKGVsZW1lbnQuaGFzVGFnTmFtZShvYmplY3RUYWcpIHx8IGVsZW1lbnQuaGFz
VGFnTmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGFwcGxldFRhZykpOwogICAg
IEFTU0VSVChwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiA9PSBSZW5kZXJFbWJlZGRlZE9iamVj
dDo6UGx1Z2luTWlzc2luZyB8fCBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiA9PSBSZW5kZXJF
bWJlZGRlZE9iamVjdDo6SW5zZWN1cmVQbHVnaW5WZXJzaW9uIHx8IHBsdWdpblVuYXZhaWxhYmls
aXR5UmVhc29uKTsKIAotICAgIEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqIHBsdWdpbkVsZW1lbnQg
PSBzdGF0aWNfY2FzdDxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Kj4oZWxlbWVudCk7CisgICAgYXV0
byYgcGx1Z2luRWxlbWVudCA9IGRvd25jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ+KGVsZW1l
bnQpOwogCi0gICAgU3RyaW5nIGZyYW1lVVJMU3RyaW5nID0gcGx1Z2luRWxlbWVudC0+ZG9jdW1l
bnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZVVSTCgpLnN0
cmluZygpOworICAgIFN0cmluZyBmcmFtZVVSTFN0cmluZyA9IHBsdWdpbkVsZW1lbnQuZG9jdW1l
bnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZVVSTCgpLnN0
cmluZygpOwogICAgIFN0cmluZyBwYWdlVVJMU3RyaW5nID0gbV9wYWdlLm1haW5GcmFtZSgpLT5s
b2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZVVSTCgpLnN0cmluZygpOwotICAgIFN0
cmluZyBwbHVnaW5VUkxTdHJpbmcgPSBwbHVnaW5FbGVtZW50LT5kb2N1bWVudCgpLmNvbXBsZXRl
VVJMKHBsdWdpbkVsZW1lbnQtPnVybCgpKS5zdHJpbmcoKTsKLSAgICBVUkwgcGx1Z2luc3BhZ2VB
dHRyaWJ1dGVVUkwgPSBlbGVtZW50LT5kb2N1bWVudCgpLmNvbXBsZXRlVVJMKHN0cmlwTGVhZGlu
Z0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhwbHVnaW5FbGVtZW50LT5nZXRBdHRyaWJ1dGUocGx1Z2lu
c3BhZ2VBdHRyKSkpOworICAgIFN0cmluZyBwbHVnaW5VUkxTdHJpbmcgPSBwbHVnaW5FbGVtZW50
LmRvY3VtZW50KCkuY29tcGxldGVVUkwocGx1Z2luRWxlbWVudC51cmwoKSkuc3RyaW5nKCk7Cisg
ICAgVVJMIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMID0gcGx1Z2luRWxlbWVudC5kb2N1bWVudCgp
LmNvbXBsZXRlVVJMKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhwbHVnaW5FbGVt
ZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24ocGx1Z2luc3BhZ2VBdHRyKSkpOwog
ICAgIGlmICghcGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgp
KQogICAgICAgICBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTCA9IFVSTCgpOwotICAgIG1fcGFnZS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tl
ZChwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgcGx1Z2luRWxlbWVudC0+c2VydmljZVR5cGUo
KSwgcGx1Z2luVVJMU3RyaW5nLCBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTC5zdHJpbmcoKSwgZnJh
bWVVUkxTdHJpbmcsIHBhZ2VVUkxTdHJpbmcpKTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQocGx1Z2luVW5hdmFp
bGFiaWxpdHlSZWFzb24sIHBsdWdpbkVsZW1lbnQuc2VydmljZVR5cGUoKSwgcGx1Z2luVVJMU3Ry
aW5nLCBwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTC5zdHJpbmcoKSwgZnJhbWVVUkxTdHJpbmcsIHBh
Z2VVUkxTdHJpbmcpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGVsZW1lbnQpOwogICAgIFVO
VVNFRF9QQVJBTShwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbik7CkBAIC02NjAsOSArNjYxLDkg
QEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlw
LCBUZXh0RGlyZWN0aW9uKQogICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlNldFRvb2xUaXAobV9jYWNoZWRUb29sVGlwKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpwcmludChGcmFtZSogZnJhbWUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUm
IGZyYW1lKQogewotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZy
YW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3Jl
RnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKICNpZiBQTEFURk9STShHVEsp
ICYmIEhBVkUoR1RLX1VOSVhfUFJJTlRJTkcpCkBAIC02ODgsMTIgKzY4OSwxMiBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1lKQogICAgIG1fcGFnZS5zZW5kU3luYyhN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQcmludEZyYW1lKHdlYkZyYW1lLT5mcmFtZUlEKCkpLCBN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQcmludEZyYW1lOjpSZXBseSgpLCBTZWNvbmRzOjppbmZp
bml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3Vz
cGVuZCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEo
RnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxz
IGRldGFpbHMpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZy
YW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscyBk
ZXRhaWxzKQogewotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZy
YW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3Jl
RnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAgICAgCi0gICAgYXV0byYgb3Jp
Z2luID0gZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCk7CisgICAgYXV0byYgb3Jp
Z2luID0gZnJhbWUuZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKICAgICBhdXRvIG9yaWdp
bkRhdGEgPSBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihvcmlnaW4pOwog
ICAgIGF1dG8mIHRyYWNrZXIgPSBEYXRhYmFzZVRyYWNrZXI6OnNpbmdsZXRvbigpOwogICAgIGF1
dG8gY3VycmVudFF1b3RhID0gdHJhY2tlci5xdW90YShvcmlnaW5EYXRhKTsKQEAgLTcxNiw5ICs3
MTcsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2
NF90KQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpy
ZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4s
IGludDY0X3QgdG90YWxCeXRlc05lZWRlZCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVk
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGludDY0
X3QgdG90YWxCeXRlc05lZWRlZCkKIHsKLSAgICBSZWZQdHI8QVBJOjpTZWN1cml0eU9yaWdpbj4g
c2VjdXJpdHlPcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG9y
aWdpbi0+dG9TdHJpbmcoKSk7CisgICAgUmVmUHRyPEFQSTo6U2VjdXJpdHlPcmlnaW4+IHNlY3Vy
aXR5T3JpZ2luID0gQVBJOjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW4u
dG9TdHJpbmcoKSk7CiAgICAgaWYgKG1fcGFnZS5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkuZGlk
UmVhY2hBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoJm1fcGFnZSwgc2VjdXJpdHlPcmlnaW4u
Z2V0KCksIHRvdGFsQnl0ZXNOZWVkZWQpKQogICAgICAgICByZXR1cm47CiAKQEAgLTcyOSwxNyAr
NzMwLDE5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sCiAKICAgICB1aW50NjRfdCBuZXdRdW90
YSA9IDA7CiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZFN5bmMoCi0gICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRB
cHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhOjpm
cm9tU2VjdXJpdHlPcmlnaW4oKm9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCksIGN1cnJlbnRR
dW90YSwgdG90YWxCeXRlc05lZWRlZCksCisgICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSwg
Y3VycmVudFF1b3RhLCB0b3RhbEJ5dGVzTmVlZGVkKSwKICAgICAgICAgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YTo6UmVwbHkobmV3UXVv
dGEpLCBtX3BhZ2UucGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNP
cHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKTsKIAotICAgIGNhY2hlU3Rv
cmFnZS5zdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbihvcmlnaW4sIG5ld1F1b3RhKTsKKyAgICBj
YWNoZVN0b3JhZ2Uuc3RvcmVVcGRhdGVkUXVvdGFGb3JPcmlnaW4oJm9yaWdpbiwgbmV3UXVvdGEp
OwogfQogCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQorCiB2b2lkIFdlYkNocm9tZUNs
aWVudDo6YW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CisKICNlbmRpZgogCiBib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkUmVwbGFjZVdpdGhH
ZW5lcmF0ZWRGaWxlRm9yVXBsb2FkKGNvbnN0IFN0cmluZyYgcGF0aCwgU3RyaW5nJiBnZW5lcmF0
ZWRGaWxlbmFtZSkKQEAgLTc1NCwxMCArNzU3LDEyIEBAIFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6
OmdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkKIH0KIAogI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQotc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gV2Vi
Q2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiBjbGll
bnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCisKK3N0ZDo6dW5pcXVlX3B0cjxDb2xvckNo
b29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNs
aWVudCYgY2xpZW50LCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQogewotICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFdlYkNvbG9yQ2hvb3Nlcj4oJm1fcGFnZSwgY2xpZW50LCBpbml0aWFs
Q29sb3IpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvbG9yQ2hvb3Nlcj4oJm1f
cGFnZSwgJmNsaWVudCwgaW5pdGlhbENvbG9yKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpydW5PcGVuUGFuZWwoRnJhbWUmIGZyYW1lLCBGaWxlQ2hvb3NlciYgZmlsZUNo
b29zZXIpCkBAIC04MzIsMTQgKzgzNywxNCBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6aGFzT3Bl
bmVkUG9wdXAoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUmVmUHRyPFdlYkNvcmU6
OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9w
dXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBX
ZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQm
IGNsaWVudCkgY29uc3QKIHsKLSAgICByZXR1cm4gV2ViUG9wdXBNZW51OjpjcmVhdGUoJm1fcGFn
ZSwgY2xpZW50KTsKKyAgICByZXR1cm4gV2ViUG9wdXBNZW51OjpjcmVhdGUoJm1fcGFnZSwgJmNs
aWVudCk7CiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNs
aWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xp
ZW50KSBjb25zdAorUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xp
ZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JiBjbGll
bnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFdlYlNlYXJjaFBvcHVwTWVudTo6Y3JlYXRlKCZtX3Bh
Z2UsIGNsaWVudCk7CisgICAgcmV0dXJuIFdlYlNlYXJjaFBvcHVwTWVudTo6Y3JlYXRlKCZtX3Bh
Z2UsICZjbGllbnQpOwogfQogCiBHcmFwaGljc0xheWVyRmFjdG9yeSogV2ViQ2hyb21lQ2xpZW50
OjpncmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0CkBAIC04NTgsNyArODYzLDcgQEAgUmVmUHRy
PFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVE
aXNwbGF5UmVmcmVzaE1vbmkKIAogI2VuZGlmCiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRh
Y2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqIGxheWVyKQordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NM
YXllciogbGF5ZXIpCiB7CiAgICAgaWYgKGxheWVyKQogICAgICAgICBtX3BhZ2UuZW50ZXJBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXllcik7CkBAIC04NjYsMTAgKzg3MSwxMCBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGlj
c0xheWVyKiBsYXllcikKICAgICAgICAgbV9wYWdlLmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZSgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlHcmFw
aGljc0xheWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUm
IGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQogewogICAgIGlmIChhdXRvIGRy
YXdpbmdBcmVhID0gbV9wYWdlLmRyYXdpbmdBcmVhKCkpCi0gICAgICAgIGRyYXdpbmdBcmVhLT5h
dHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoZnJhbWUsIGdyYXBoaWNzTGF5ZXIpOworICAg
ICAgICBkcmF3aW5nQXJlYS0+YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKCZmcmFtZSwg
Z3JhcGhpY3NMYXllcik7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXROZWVkc09uZVNo
b3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkKQEAgLTg5OCw5ICs5MDMsOSBAQCBib29sIFdlYkNo
cm9tZUNsaWVudDo6bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0CiAKICNpZiBFTkFCTEUo
QVNZTkNfU0NST0xMSU5HKQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UqIHBhZ2UpIGNvbnN0
CitSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2Ny
b2xsaW5nQ29vcmRpbmF0b3IoUGFnZSYgcGFnZSkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9wYWdl
LmNvcmVQYWdlKCkgPT0gcGFnZSk7CisgICAgQVNTRVJUX1VOVVNFRChwYWdlLCBtX3BhZ2UuY29y
ZVBhZ2UoKSA9PSAmcGFnZSk7CiAgICAgaWYgKG1fcGFnZS5kcmF3aW5nQXJlYSgpLT50eXBlKCkg
IT0gRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlKQogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICByZXR1cm4gUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNyZWF0ZSgmbV9wYWdl
KTsKQEAgLTk0OSwxOSArOTU0LDE5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9G
dWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihXZWJDb3JlOjpIVE1MVmlkCiAKICNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1
bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqLCBib29sIHdpdGhLZXli
b2FyZCkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50
KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmLCBib29sIHdpdGhLZXlib2FyZCkKIHsKICAgICByZXR1
cm4gbV9wYWdlLmZ1bGxTY3JlZW5NYW5hZ2VyKCktPnN1cHBvcnRzRnVsbFNjcmVlbih3aXRoS2V5
Ym9hcmQpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxl
bWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCkKIHsKLSAg
ICBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChl
bGVtZW50KTsKKyAgICBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+ZW50ZXJGdWxsU2NyZWVu
Rm9yRWxlbWVudCgmZWxlbWVudCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVs
bFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCogZWxlbWVudCkKK3ZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYgZWxl
bWVudCkKIHsKLSAgICBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+ZXhpdEZ1bGxTY3JlZW5G
b3JFbGVtZW50KGVsZW1lbnQpOworICAgIG1fcGFnZS5mdWxsU2NyZWVuTWFuYWdlcigpLT5leGl0
RnVsbFNjcmVlbkZvckVsZW1lbnQoJmVsZW1lbnQpOwogfQogCiAjZW5kaWYKQEAgLTEwNDksMjkg
KzEwNTQsMjkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpc2FibGVTdWRkZW5UZXJtaW5hdGlv
bigpCiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlzYWJsZVN1
ZGRlblRlcm1pbmF0aW9uKCkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkQWRkSGVh
ZGVyTGF5ZXIoR3JhcGhpY3NMYXllciogaGVhZGVyUGFyZW50KQordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmRpZEFkZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5ZXImIGhlYWRlclBhcmVudCkKIHsKICNp
ZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgaWYgKFBhZ2VCYW5uZXIqIGJhbm5lciA9IG1f
cGFnZS5oZWFkZXJQYWdlQmFubmVyKCkpCi0gICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50TGF5
ZXIoaGVhZGVyUGFyZW50KTsKKyAgICAgICAgYmFubmVyLT5kaWRBZGRQYXJlbnRMYXllcigmaGVh
ZGVyUGFyZW50KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGhlYWRlclBhcmVudCk7CiAjZW5k
aWYKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEZvb3RlckxheWVyKEdyYXBoaWNz
TGF5ZXIqIGZvb3RlclBhcmVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRGb290ZXJM
YXllcihHcmFwaGljc0xheWVyJiBmb290ZXJQYXJlbnQpCiB7CiAjaWYgRU5BQkxFKFJVQkJFUl9C
QU5ESU5HKQogICAgIGlmIChQYWdlQmFubmVyKiBiYW5uZXIgPSBtX3BhZ2UuZm9vdGVyUGFnZUJh
bm5lcigpKQotICAgICAgICBiYW5uZXItPmRpZEFkZFBhcmVudExheWVyKGZvb3RlclBhcmVudCk7
CisgICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50TGF5ZXIoJmZvb3RlclBhcmVudCk7CiAjZWxz
ZQogICAgIFVOVVNFRF9QQVJBTShmb290ZXJQYXJlbnQpOwogI2VuZGlmCiB9CiAKLWJvb2wgV2Vi
Q2hyb21lQ2xpZW50OjpzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJh
bWVWaWV3KiBmcmFtZVZpZXcpIGNvbnN0Citib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNl
VGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaWV3KSBjb25z
dAogewotICAgIHJldHVybiBtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+c2hvdWxkVXNlVGlsZWRCYWNr
aW5nRm9yRnJhbWVWaWV3KGZyYW1lVmlldyk7CisgICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5nQXJl
YSgpLT5zaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoJmZyYW1lVmlldyk7CiB9CiAK
IHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpN
ZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhdGUsIHVpbnQ2NF90IHNvdXJjZUVsZW1l
bnRJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDVjOWQ3NzNhNzJjMDYwOGMwMjA2OGFjMWQ5
ZGRmNDVkNGEwYmQ5YzUuLjBhMDgwMDRmZmVmZWVjYmI0MTM0NDAzNmYwMmZkYTk0MTc0ZGFjZTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIC8v
IEZyYW1lIHdhbnRzIHRvIGNyZWF0ZSB0aGUgbmV3IFBhZ2UuICBBbHNvLCB0aGUgbmV3bHkgY3Jl
YXRlZCB3aW5kb3cKICAgICAvLyBzaG91bGQgbm90IGJlIHNob3duIHRvIHRoZSB1c2VyIHVudGls
IHRoZSBDaHJvbWVDbGllbnQgb2YgdGhlIG5ld2x5CiAgICAgLy8gY3JlYXRlZCBQYWdlIGhhcyBp
dHMgc2hvdyBtZXRob2QgY2FsbGVkLgotICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhX
ZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBX
ZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24m
KSBmaW5hbDsKKyAgICBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWUm
LCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93
RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWw7CiAgICAg
dm9pZCBzaG93KCkgZmluYWw7CiAgICAgCiAgICAgYm9vbCBjYW5SdW5Nb2RhbCgpIGZpbmFsOwpA
QCAtODcsMTMgKzg3LDEzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xl
KEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBT
dHJpbmcmIHNvdXJjZUlEKSBmaW5hbDsKICAgICAKICAgICBib29sIGNhblJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbCgpIGZpbmFsOwotICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKKyAgICBi
b29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFdl
YkNvcmU6OkZyYW1lJikgZmluYWw7CiAgICAgCiAgICAgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSBm
aW5hbDsKICAgICAKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSos
IGNvbnN0IFN0cmluZyYpIGZpbmFsOwotICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2Vi
Q29yZTo6RnJhbWUqLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKLSAgICBib29sIHJ1bkphdmFTY3Jp
cHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgZmluYWw7CisgICAgdm9pZCBydW5K
YXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAg
ICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3RyaW5n
JikgZmluYWw7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lJiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5n
JiByZXN1bHQpIGZpbmFsOwogICAgIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcm
KSBmaW5hbDsKIAogICAgIFdlYkNvcmU6OktleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkg
ZmluYWw7CkBAIC0xMTcsMjMgKzExNywyMyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBQbGF0
Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgZmluYWw7Ci0gICAgdm9p
ZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJDb3Jl
OjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lk
IHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgZmluYWw7
IC8vIEN1cnJlbnRseSBvbmx5IE1hYyBoYXMgYSBub24gZW1wdHkgaW1wbGVtZW50YXRpb24uCiAK
ICAgICBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFdlYkNvcmU6
OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3Qg
ZmluYWw7Ci0gICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6
RWxlbWVudCosIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbikgY29uc3QgZmluYWw7CisgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVudCYsIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0
OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHNj
cm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBtb3VzZURpZE1v
dmVPdmVyRWxlbWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9k
aWZpZXJGbGFncykgZmluYWw7CiAKICAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwg
V2ViQ29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7CiAgICAgCi0gICAgdm9pZCBwcmludChXZWJD
b3JlOjpGcmFtZSopIGZpbmFsOworICAgIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUmKSBmaW5h
bDsKIAotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwgY29u
c3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscykgZmluYWw7
CisgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBT
dHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKIAog
ICAgIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKSBmaW5h
bDsKLSAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHNwYWNlTmVlZGVkKSBmaW5hbDsKKyAgICB2b2lkIHJl
YWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
LCBpbnQ2NF90IHNwYWNlTmVlZGVkKSBmaW5hbDsKIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQ
UE9SVCkKICAgICB2b2lkIGFubm90YXRlZFJlZ2lvbnNDaGFuZ2VkKCkgZmluYWw7CkBAIC0xNDMs
NyArMTQzLDcgQEAgcHJpdmF0ZToKICAgICBTdHJpbmcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGUo
Y29uc3QgU3RyaW5nJiBwYXRoKSBmaW5hbDsKICAgICAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9D
T0xPUikKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVD
b2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgV2ViQ29yZTo6
Q29sb3ImKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2Vy
PiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3Qg
V2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9F
VkVOVFMpCkBAIC0xNTIsMTAgKzE1MiwxMCBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oSU9T
KQogICAgIHZvaWQgZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoYm9vbCkgZmluYWw7Ci0gICAgdm9p
ZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoV2ViQ29yZTo6RnJhbWUqLCBib29sKSBmaW5h
bDsKLSAgICB2b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShXZWJDb3JlOjpGcmFtZSopIGZpbmFs
OwotICAgIHZvaWQgY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKFdlYkNvcmU6OkZyYW1lKikg
ZmluYWw7Ci0gICAgdm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUo
V2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKKyAgICB2b2lkIHNldE5lZWRzU2Nyb2xsTm90aWZpY2F0
aW9ucyhXZWJDb3JlOjpGcmFtZSYsIGJvb2wpIGZpbmFsOworICAgIHZvaWQgb2JzZXJ2ZWRDb250
ZW50Q2hhbmdlKFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CisgICAgdm9pZCBjbGVhckNvbnRlbnRD
aGFuZ2VPYnNlcnZlcnMoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKKyAgICB2b2lkIG5vdGlmeVJl
dmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwog
ICAgIGJvb2wgaXNTdG9wcGluZygpIGZpbmFsOwogCiAgICAgdm9pZCBkaWRMYXlvdXQoTGF5b3V0
VHlwZSA9IE5vcm1hbExheW91dCkgZmluYWw7CkBAIC0yMDMsMTIgKzIwMywxMiBAQCBwcml2YXRl
OgogICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBmaW5hbDsK
ICAgICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24o
KSBmaW5hbDsKICAgICBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3QgZmluYWw7Ci0gICAgUmVm
UHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVu
dUNsaWVudCopIGNvbnN0IGZpbmFsOwotICAgIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25z
dCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUo
V2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFdlYkNv
cmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCYpIGNvbnN0IGZpbmFsOwogCiAgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllckZh
Y3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBhdHRh
Y2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXIqKSBmaW5hbDsKLSAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJD
b3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKKyAgICB2b2lkIGF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIGZpbmFsOworICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdl
YkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwogICAgIHZvaWQg
c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIGZpbmFsOwogICAgIHZvaWQg
c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBmaW5hbDsKICAgICBib29sIGFkanVzdExh
eWVyRmx1c2hUaHJvdHRsaW5nKFdlYkNvcmU6OkxheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpGbGFn
cykgZmluYWw7CkBAIC0yMzMsMTEgKzIzMywxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbGF5ZXJU
cmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9M
TElORykKLSAgICBQYXNzUmVmUHRyPFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVh
dGVTY3JvbGxpbmdDb29yZGluYXRvcihXZWJDb3JlOjpQYWdlKikgY29uc3QgZmluYWw7CisgICAg
UmVmUHRyPFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdDb29y
ZGluYXRvcihXZWJDb3JlOjpQYWdlJikgY29uc3QgZmluYWw7CiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKElPUykKLSAgICB2b2lkIGVsZW1lbnREaWRSZWZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUq
KSBmaW5hbDsKKyAgICB2b2lkIGVsZW1lbnREaWRSZWZvY3VzKGNvbnN0IFdlYkNvcmU6OkVsZW1l
bnQmKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgKFBMQVRGT1JNKElPUykgJiYgSEFWRShBVktJVCkp
IHx8IChQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCkBA
IC0yNTMsMTQgKzI1MywxNCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCi0gICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdl
YkNvcmU6OkVsZW1lbnQqLCBib29sIHdpdGhLZXlib2FyZCkgZmluYWw7Ci0gICAgdm9pZCBlbnRl
ckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBmaW5hbDsKLSAgICB2b2lk
IGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KikgZmluYWw7CisgICAg
Ym9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQm
LCBib29sIHdpdGhLZXlib2FyZCkgZmluYWw7CisgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JF
bGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKKyAgICB2b2lkIGV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAogI2lmIFBMQVRG
T1JNKENPQ09BKQotICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUq
KSBmaW5hbDsKLSAgICB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBm
aW5hbDsKKyAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7
CisgICAgdm9pZCBlbGVtZW50RGlkQmx1cihXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CiAKICAg
ICB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcigpIGZpbmFsOwogI2VuZGlmCkBAIC0yOTEsMTAgKzI5
MSwxMCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBwbHVnSW5FeHRyYVN0eWxlU2hlZXQoKSBjb25z
dCBmaW5hbDsKICAgICBTdHJpbmcgcGx1Z0luRXh0cmFTY3JpcHQoKSBjb25zdCBmaW5hbDsKIAot
ICAgIHZvaWQgZGlkQWRkSGVhZGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFs
OwotICAgIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZp
bmFsOworICAgIHZvaWQgZGlkQWRkSGVhZGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciYp
IGZpbmFsOworICAgIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXll
ciYpIGZpbmFsOwogCi0gICAgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXco
Y29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3KikgY29uc3QgZmluYWw7CisgICAgYm9vbCBzaG91bGRV
c2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3JikgY29u
c3QgZmluYWw7CiAKICAgICB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1l
ZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncywgdWludDY0X3QpIGZpbmFsOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDMyYWY1OWYzZmJkNDc0MDlmNDI4ODYzNjlm
YTA4YmVkYWNiNWQ0NjguLjQzMzk4ZmM5M2MyM2QxYjEzOGU3YTQ1ZDJhMTllYThkMzNkM2FkOWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC02NDAsMTMgKzY0MCwxMyBA
QCBGcmFtZSogV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aQogewogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2Zy
YW1lLT5wYWdlKCk7CiAgICAgaWYgKCF3ZWJQYWdlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICAvLyBKdXN0IGNhbGwgdGhyb3VnaCB0byB0aGUgY2hy
b21lIGNsaWVudC4KICAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QobV9mcmFtZS0+Y29yZUZy
YW1lKCktPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIG5hdmlnYXRpb25BY3Rpb24ucmVz
b3VyY2VSZXF1ZXN0KCksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8s
IE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3
RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBuYXZpZ2F0aW9uQWN0aW9uLnNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3koKSk7Ci0gICAgUGFnZSogbmV3UGFnZSA9IHdlYlBhZ2UtPmNvcmVQYWdl
KCktPmNocm9tZSgpLmNyZWF0ZVdpbmRvdyhtX2ZyYW1lLT5jb3JlRnJhbWUoKSwgcmVxdWVzdCwg
V2luZG93RmVhdHVyZXMoKSwgbmF2aWdhdGlvbkFjdGlvbik7CisgICAgUGFnZSogbmV3UGFnZSA9
IHdlYlBhZ2UtPmNvcmVQYWdlKCktPmNocm9tZSgpLmNyZWF0ZVdpbmRvdygqbV9mcmFtZS0+Y29y
ZUZyYW1lKCksIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIG5hdmlnYXRpb25BY3Rpb24pOwog
ICAgIGlmICghbmV3UGFnZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxs
cHRyOwogICAgIAogICAgIHJldHVybiAmbmV3UGFnZS0+bWFpbkZyYW1lKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3Rv
ckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
Ykluc3BlY3RvckNsaWVudC5jcHAKaW5kZXggOTY4OTI5ZmRhMzQ3OWFhZDJiZTRhMTBhMGI0NTk2
YWUxNzU1NmQ1MC4uNDFiMzRmMDBhOGM2ZmQyMDNjNTgzNDIwM2U4MjgwYTVjNDQ1NmY3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNw
ZWN0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcApAQCAtNzMsNyArNzMsNyBAQCBXZWJJbnNwZWN0
b3JDbGllbnQ6On5XZWJJbnNwZWN0b3JDbGllbnQoKQogICAgIH0KIAogICAgIGlmIChtX3BhaW50
UmVjdE92ZXJsYXkgJiYgbV9wYWdlLT5tYWluRnJhbWUoKSkKLSAgICAgICAgbV9wYWdlLT5tYWlu
RnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkobV9w
YWludFJlY3RPdmVybGF5LmdldCgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOworICAg
ICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3Rh
bGxQYWdlT3ZlcmxheSgqbV9wYWludFJlY3RPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6
OkZhZGUpOwogfQogCiB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6aW5zcGVjdGVkUGFnZURlc3Ry
b3llZCgpCkBAIC0xMjYsNyArMTI2LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmhpZGVI
aWdobGlnaHQoKQogewogI2lmICFQTEFURk9STShJT1MpCiAgICAgaWYgKG1faGlnaGxpZ2h0T3Zl
cmxheSAmJiBtX3BhZ2UtPm1haW5GcmFtZSgpKQotICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgp
LT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheShtX2hpZ2hsaWdo
dE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CisgICAgICAgIG1fcGFnZS0+
bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5
KCptX2hpZ2hsaWdodE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CiAjZWxz
ZQogICAgIG1fcGFnZS0+aGlkZUluc3BlY3RvckhpZ2hsaWdodCgpOwogI2VuZGlmCkBAIC0xMzYs
NyArMTM2LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OnNob3dQYWludFJlY3QoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQogewogICAgIGlmICghbV9wYWludFJlY3RPdmVybGF5KSB7CiAgICAg
ICAgIG1fcGFpbnRSZWN0T3ZlcmxheSA9IFBhZ2VPdmVybGF5OjpjcmVhdGUoKnRoaXMsIFBhZ2VP
dmVybGF5OjpPdmVybGF5VHlwZTo6RG9jdW1lbnQpOwotICAgICAgICBtX3BhZ2UtPm1haW5GcmFt
ZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkobV9wYWludFJl
Y3RPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgICAgIG1f
cGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3Zl
cmxheSgqbV9wYWludFJlY3RPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFk
ZSk7CiAgICAgfQogCiAgICAgaWYgKCFtX3BhaW50SW5kaWNhdG9yTGF5ZXJDbGllbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNw
cAppbmRleCAxZTBjZWY0NjUxYjkzYmY4MGZiNzA1NjY1YzZmNjE1ZmVhYmMyYTg5Li4zMzAzMmMx
NzJiMWIyNDM4ZGFmZDYwYzM0NjQ2NmVhNDUwNWU0YTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKQEAgLTE4OSw3ICsx
ODksNyBAQCB2b2lkIEZpbmRDb250cm9sbGVyOjp1cGRhdGVGaW5kVUlBZnRlclBhZ2VTY3JvbGwo
Ym9vbCBmb3VuZCwgY29uc3QgU3RyaW5nJiBzdHJpbgogCiAgICAgaWYgKCFzaG91bGRTaG93T3Zl
cmxheSkgewogICAgICAgICBpZiAobV9maW5kUGFnZU92ZXJsYXkpCi0gICAgICAgICAgICBtX3dl
YlBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdl
T3ZlcmxheShtX2ZpbmRQYWdlT3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsK
KyAgICAgICAgICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxl
cigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX2ZpbmRQYWdlT3ZlcmxheSwgUGFnZU92ZXJsYXk6
OkZhZGVNb2RlOjpGYWRlKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoIW1fZmluZFBhZ2VP
dmVybGF5KSB7CiAgICAgICAgICAgICBhdXRvIGZpbmRQYWdlT3ZlcmxheSA9IFBhZ2VPdmVybGF5
OjpjcmVhdGUoKnRoaXMsIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZTo6RG9jdW1lbnQpOwpAQCAt
MzEyLDcgKzMxMiw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmhpZGVGaW5kVUkoKQogewogICAg
IG1fZmluZE1hdGNoZXMuY2xlYXIoKTsKICAgICBpZiAobV9maW5kUGFnZU92ZXJsYXkpCi0gICAg
ICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5z
dGFsbFBhZ2VPdmVybGF5KG1fZmluZFBhZ2VPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6
OkZhZGUpOworICAgICAgICBtX3dlYlBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRy
b2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqbV9maW5kUGFnZU92ZXJsYXksIFBhZ2VPdmVy
bGF5OjpGYWRlTW9kZTo6RmFkZSk7CiAKICAgICBQbHVnaW5WaWV3KiBwbHVnaW5WaWV3ID0gcGx1
Z2luVmlld0ZvckZyYW1lKG1fd2ViUGFnZS0+bWFpbkZyYW1lKCkpOwogICAgIApAQCAtMzI1LDYg
KzMyNSw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmhpZGVGaW5kVUkoKQogfQogCiAjaWYgIVBM
QVRGT1JNKElPUykKKwogYm9vbCBGaW5kQ29udHJvbGxlcjo6dXBkYXRlRmluZEluZGljYXRvcihG
cmFtZSYgc2VsZWN0ZWRGcmFtZSwgYm9vbCBpc1Nob3dpbmdPdmVybGF5LCBib29sIHNob3VsZEFu
aW1hdGUpCiB7CiAgICAgUmVmUHRyPFRleHRJbmRpY2F0b3I+IGluZGljYXRvciA9IFRleHRJbmRp
Y2F0b3I6OmNyZWF0ZVdpdGhTZWxlY3Rpb25JbkZyYW1lKHNlbGVjdGVkRnJhbWUsIFRleHRJbmRp
Y2F0b3JPcHRpb25JbmNsdWRlTWFyZ2luSWZSYW5nZU1hdGNoZXNTZWxlY3Rpb24sIHNob3VsZEFu
aW1hdGUgPyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Qm91bmNlIDogVGV4
dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246Ok5vbmUpOwpAQCAtMzY2LDYgKzM2Nyw3
IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmRpZEZhaWxUb0ZpbmRTdHJpbmcoKQogdm9pZCBGaW5k
Q29udHJvbGxlcjo6ZGlkSGlkZUZpbmRJbmRpY2F0b3IoKQogewogfQorCiAjZW5kaWYKIAogdm9p
ZCBGaW5kQ29udHJvbGxlcjo6c2hvd0ZpbmRJbmRpY2F0b3JJblNlbGVjdGlvbigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCAzNjI5ZDRh
ZTU4YzdkNDY4NjJlMTVhNzVmOTg0YmRjZDVlZWI4ZjQ2Li45OTlmZTI1YzEwMGEzMTM3NmIwZGY3
NWE0MzA3YzMxY2E3ZmU0ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBzdGF0aWMgdWludDY0X3QgZ2Vu
ZXJhdGVMaXN0ZW5lcklEKCkKICAgICByZXR1cm4gdW5pcXVlTGlzdGVuZXJJRCsrOwogfQogCi1Q
YXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2Vi
UGFnZSogcGFnZSwgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSkKK1JlZjxXZWJGcmFtZT4gV2Vi
RnJhbWU6OmNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2UqIHBhZ2UsIFdlYkNvcmU6OkZy
YW1lKiBjb3JlRnJhbWUpCiB7CiAgICAgYXV0byBmcmFtZSA9IGNyZWF0ZShzdGQ6OnVuaXF1ZV9w
dHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KHN0YXRpY19jYXN0PFdlYkZyYW1lTG9hZGVyQ2xpZW50
Kj4oJmNvcmVGcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkpKSk7CiAgICAgcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpEaWRDcmVhdGVNYWluRnJhbWUoZnJhbWUtPmZyYW1lSUQoKSks
IHBhZ2UtPnBhZ2VJRCgpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVu
V2FpdGluZ0ZvclN5bmNSZXBseSk7CkBAIC0xMjAsMzAgKzEyMCwzMiBAQCBQYXNzUmVmUHRyPFdl
YkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSogcGFnZSwg
V2ViQ29yZTo6RgogICAgIHJldHVybiBmcmFtZTsKIH0KIAotUGFzc1JlZlB0cjxXZWJGcmFtZT4g
V2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgZnJh
bWVOYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCkKK1JlZjxXZWJGcmFt
ZT4gV2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYg
ZnJhbWVOYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCkKIHsKICAgICBh
dXRvIGZyYW1lID0gY3JlYXRlKHN0ZDo6bWFrZV91bmlxdWU8V2ViRnJhbWVMb2FkZXJDbGllbnQ+
KCkpOwogICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ3JlYXRlU3Vi
ZnJhbWUoZnJhbWUtPmZyYW1lSUQoKSksIHBhZ2UtPnBhZ2VJRCgpLCBJUEM6OlNlbmRPcHRpb246
OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiAKLSAgICBSZWY8
V2ViQ29yZTo6RnJhbWU+IGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZS0+Y29yZVBhZ2Uo
KSwgb3duZXJFbGVtZW50LCBmcmFtZS0+bV9mcmFtZUxvYWRlckNsaWVudC5nZXQoKSk7CisgICAg
YXV0byBjb3JlRnJhbWUgPSBGcmFtZTo6Y3JlYXRlKHBhZ2UtPmNvcmVQYWdlKCksIG93bmVyRWxl
bWVudCwgZnJhbWUtPm1fZnJhbWVMb2FkZXJDbGllbnQuZ2V0KCkpOwogICAgIGZyYW1lLT5tX2Nv
cmVGcmFtZSA9IGNvcmVGcmFtZS5wdHIoKTsKLSAgICBmcmFtZS0+bV9jb3JlRnJhbWUtPnRyZWUo
KS5zZXROYW1lKGZyYW1lTmFtZSk7CisKKyAgICBjb3JlRnJhbWUtPnRyZWUoKS5zZXROYW1lKGZy
YW1lTmFtZSk7CiAgICAgaWYgKG93bmVyRWxlbWVudCkgewogICAgICAgICBBU1NFUlQob3duZXJF
bGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCkpOwotICAgICAgICBvd25lckVsZW1lbnQtPmRvY3Vt
ZW50KCkuZnJhbWUoKS0+dHJlZSgpLmFwcGVuZENoaWxkKFdURk1vdmUoY29yZUZyYW1lKSk7Cisg
ICAgICAgIG93bmVyRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpLT50cmVlKCkuYXBwZW5kQ2hp
bGQoY29yZUZyYW1lLmdldCgpKTsKICAgICB9Ci0gICAgZnJhbWUtPm1fY29yZUZyYW1lLT5pbml0
KCk7CisgICAgY29yZUZyYW1lLT5pbml0KCk7CisKICAgICByZXR1cm4gZnJhbWU7CiB9CiAKLVBh
c3NSZWZQdHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkZy
YW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRlckNsaWVudCkKK1JlZjxXZWJGcmFtZT4gV2ViRnJh
bWU6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9h
ZGVyQ2xpZW50KQogewogICAgIGF1dG8gZnJhbWUgPSBhZG9wdFJlZigqbmV3IFdlYkZyYW1lKFdU
Rk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKSk7CiAKICAgICAvLyBBZGQgZXhwbGljdCByZWYoKSB0
aGF0IHdpbGwgYmUgYmFsYW5jZWQgaW4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lTG9hZGVy
RGVzdHJveWVkKCkuCiAgICAgZnJhbWUtPnJlZigpOwogCi0gICAgcmV0dXJuIFdURk1vdmUoZnJh
bWUpOworICAgIHJldHVybiBmcmFtZTsKIH0KIAogV2ViRnJhbWU6OldlYkZyYW1lKHN0ZDo6dW5p
cXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4gZnJhbWVMb2FkZXJDbGllbnQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCmluZGV4IDIzZDQ4ZDI5Zjgz
NzY2NTM4NWNmNDE0MWEwYzRmNmU2M2M1NWM2NjAuLmQ0YzdhNDA4MzRhMjg4OWIyYTFhZmQxZmNk
ZTM3MDZmYWUwMjZiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJGcmFtZS5oCkBAIC02Niw4ICs2Niw4IEBAIHN0cnVjdCBGcmFtZUluZm9EYXRhOwogCiBjbGFz
cyBXZWJGcmFtZSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkJ1
bmRsZUZyYW1lPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWU+IGNy
ZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2UqLCBXZWJDb3JlOjpGcmFtZSopOwotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYkZyYW1lPiBjcmVhdGVTdWJmcmFtZShXZWJQYWdlKiwgY29uc3Qg
U3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCopOworICAg
IHN0YXRpYyBSZWY8V2ViRnJhbWU+IGNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2UqLCBX
ZWJDb3JlOjpGcmFtZSopOworICAgIHN0YXRpYyBSZWY8V2ViRnJhbWU+IGNyZWF0ZVN1YmZyYW1l
KFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3du
ZXJFbGVtZW50Kik7CiAgICAgfldlYkZyYW1lKCk7CiAKICAgICAvLyBDYWxsZWQgd2hlbiB0aGUg
RnJhbWVMb2FkZXJDbGllbnQgKGFuZCB0aGVyZWZvcmUgdGhlIFdlYkNvcmU6OkZyYW1lKSBpcyBi
ZWluZyB0b3JuIGRvd24uCkBAIC0xNjYsOCArMTY2LDggQEAgcHVibGljOgogI2VuZGlmCiAKIHBy
aXZhdGU6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWU+IGNyZWF0ZShzdGQ6OnVuaXF1
ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsKLSAgICBXZWJGcmFtZShzdGQ6OnVuaXF1ZV9w
dHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsKKyAgICBzdGF0aWMgUmVmPFdlYkZyYW1lPiBjcmVh
dGUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50Pik7CisgICAgZXhwbGljaXQg
V2ViRnJhbWUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50Pik7CiAKICAgICBX
ZWJDb3JlOjpGcmFtZSogbV9jb3JlRnJhbWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKaW5kZXggZDY0Nzg1OTdhODdmZWYzZGMw
Yjk5OTM1MjEyNjc2ZWZjYzQ5MzMyMy4uMDE2ZDczOGZiNjEyZDI0M2MwMDQ5ZTUyMDE1ODYyMTMw
ZmQ5NThmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
Ykluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
Ykluc3BlY3Rvci5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6b3Bl
bkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogICAgIEZyYW1lJiBpbnNwZWN0ZWRN
YWluRnJhbWUgPSBpbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKTsKICAgICBGcmFtZUxvYWRSZXF1
ZXN0IHJlcXVlc3QoaW5zcGVjdGVkTWFpbkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCksIFJlc291cmNlUmVxdWVzdCh1cmxTdHJpbmcpLCAiX2JsYW5rIiwgTG9ja0hpc3Rvcnk6Ok5v
LCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFJlcGxh
Y2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6
U2hvdWxkTm90QWxsb3cpOwogCi0gICAgUGFnZSogbmV3UGFnZSA9IGluc3BlY3RlZFBhZ2UtPmNo
cm9tZSgpLmNyZWF0ZVdpbmRvdygmaW5zcGVjdGVkTWFpbkZyYW1lLCByZXF1ZXN0LCBXaW5kb3dG
ZWF0dXJlcygpLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIE5h
dmlnYXRpb25UeXBlOjpMaW5rQ2xpY2tlZCkpOworICAgIFBhZ2UqIG5ld1BhZ2UgPSBpbnNwZWN0
ZWRQYWdlLT5jaHJvbWUoKS5jcmVhdGVXaW5kb3coaW5zcGVjdGVkTWFpbkZyYW1lLCByZXF1ZXN0
LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QucmVzb3VyY2VSZXF1
ZXN0KCksIE5hdmlnYXRpb25UeXBlOjpMaW5rQ2xpY2tlZCkpOwogICAgIGlmICghbmV3UGFnZSkK
ICAgICAgICAgcmV0dXJuOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299451</attachid>
            <date>2017-01-21 18:28:02 -0800</date>
            <delta_ts>2017-01-21 22:04:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167224-20170121182606.patch</filename>
            <type>text/plain</type>
            <size>376997</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGNhYzgwMTFmMWU0MTEy
NTE4YjI5Y2IwYjZkNDAyNzk2YTRkYTUwZC4uYTliZGEyZmIyMzk4NWM3ZDE0MWIzYTYzZmNiMGIz
ZTg0OWJkNGVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzOCBAQAorMjAxNy0wMS0yMCAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIg
ZnJvbSAicGFnZSIgZGlyZWN0b3J5IG9mIFdlYkNvcmUsIGFsc28gZGVwbG95IHJlZmVyZW5jZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIyNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9ET01XaW5kb3dGZXRjaC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dG
ZXRjaDo6ZmV0Y2gpOiBVc2UgRE9NV2luZG93Ojpkb2N1bWVudCBpbnN0ZWFkIG9mCisgICAgICAg
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUNvbnRleHQ6
OmRhdGFiYXNlRXhjZWVkZWRRdW90YSk6IFBhc3MgYSByZWZlcmVuY2UuCisKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAg
ICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eVNob3dD
b250ZXh0TWVudV0pOgorICAgICAgICBQYXNzIGEgcmVmZXJlbmNlLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01X
aW5kb3c6OmdldE93blByb3BlcnR5U2xvdCk6IFBhc3MgYSByZWZlcmVuY2UuCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNoaWxkcmVu
Q2hhbmdlZCk6IFBhc3MgYSByZWZlcmVuY2UuIEFsc28gbWFkZSB0aGUKKyAgICAgICAgZGlkUmVj
ZWl2ZURvY1R5cGUgY29kZSB1bmNvbmRpdGlvbmFsIGluc3RlYWQgb2YgaU9TLW9ubHkuCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2Jq
ZWN0cyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVZpZXdwb3J0
QXJndW1lbnRzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Rm9jdXNl
ZEVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVET01X
aW5kb3cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0YWtlRE9NV2luZG93
RnJvbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlcXVlc3RGdWxsU2Ny
ZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtp
dEV4aXRGdWxsc2NyZWVuKTogRGl0dG8uCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Zm9jdXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmJsdXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRpc3Bh
dGNoRm9jdXNFdmVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZGlzcGF0
Y2hCbHVyRXZlbnQpOiBEaXR0by4KKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogRGl0dG8uCisgICAgICAgICogZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVQcmludCk6
IERpdHRvLgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldEZvY3VzZWRFbGVtZW50SWZOZWVkZWQpOiBEaXR0
by4KKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkRnJhbWU6OkNhY2hlZEZyYW1lKTogRGl0dG8uCisgICAgICAgICogaHRtbC9Db2xvcklucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6aGFuZGxlRE9NQWN0
aXZhdGVFdmVudCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2Fi
bGUpOiBEaXR0by4KKworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0tleWJvYXJkRm9j
dXNhYmxlKTogUGFzcyBhIHJlZmVyZW5jZSwKKyAgICAgICAgYW5kIGFsc28gcmV3cm90ZSB0byB1
c2UgJiYgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c3VwcG9ydHNGdWxsc2NyZWVu
KTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9TcGluQnV0dG9uRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6
OnJlbGVhc2VDYXB0dXJlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjOjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogRGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250ZXh0TWVudSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpkaXNwYXRjaEV2ZW50QXNDb250
ZXh0TWVudUV2ZW50KTogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUp
OiBVcGRhdGVkIHRvIHRha2UgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJv
bWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0p
OiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNvbW1p
dFByb3Zpc2lvbmFsTG9hZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmNsb3NlQW5kUmVtb3ZlQ2hpbGQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OmRldGFjaEZyb21QYXJlbnQpOiBQYXNzIGEgcmVmZXJlbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpc3BhdGNoQmVmb3JlVW5sb2FkRXZlbnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6IERpdHRvLgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAg
KiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVj
a2VyOjpjaGVja05ld1dpbmRvd1BvbGljeSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnJlY2FsY3VsYXRlQXZhaWxhYmxlU3BhY2VJblF1
b3RhKTogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmg6IFJldHVybiBhIHJlZmVyZW5jZSBmcm9tIG9yaWdpbi4KKworICAgICAgICAqIGxv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4pOiBU
YWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZSk6CisgICAg
ICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnN0
b3JlKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjpjaGVja09yaWdpblF1b3RhKTogVXBkYXRlZCBzaW5jZSBvcmlnaW4KKyAgICAg
ICAgbm93IHJldHVybnMgYXJlZmVyZW5jZS4KKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAg
ICogbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEpOiBQYXNzIGEgcmVmZXJlbmNlLgor
ICAgICAgICAqIG1hdGhtbC9NYXRoTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1h
dGhNTEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOiBEaXR0by4KKworICAgICAgICAqIHBh
Z2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Q2hyb21lKTogTW92ZWQg
aW5pdGlhbGl6YXRpb24gb2YgZGF0YSBtZW1iZXJzIHRvIHRoZQorICAgICAgICBjbGFzcyBkZWZp
bml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2VkKTog
VGFrZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlV2luZG93
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpydW5KYXZhU2NyaXB0
QWxlcnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdENv
bmZpcm0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdFBy
b21wdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZXRTdGF0dXNiYXJUZXh0
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnByaW50KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWU6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lOjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWU6OmRpZFJlY2VpdmVEb2NUeXBlKTogRGl0dG8uIEFsc28gbWFkZSB1bmNv
bmRpdGlvbmFsLCBidXQKKyAgICAgICAgZW1wdHkgZm9yIG5vbi1pT1MgcGxhdGZvcm1zLgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lOjpyZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKTogVGFr
ZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6dW5yZWdpc3RlclBvcHVw
T3BlbmluZ09ic2VydmVyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWUuaDogVXBkYXRl
ZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogVGFrZSBy
ZWZlcmVuY2VzLiBBbHNvIHVwZGF0ZWQgc29tZSBhcmd1bWVudHMgZnJvbQorICAgICAgICBOb2Rl
IHRvIEVsZW1lbnQuCisKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmhhbmRsZUNvbnRleHRN
ZW51RXZlbnQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudSk6IERpdHRvLiBB
bHNvIHVzZQorICAgICAgICBtYWtlX3VuaXF1ZSBpbnN0ZWFkIG9mIHVuaXF1ZV9wdHIgcGx1cyBu
ZXcuCisgICAgICAgIChXZWJDb3JlOjpvcGVuTmV3V2luZG93KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjppbnNlcnRVbmljb2RlQ2hhcmFjdGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVu
dUF0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNo
b3dJbWFnZUNvbnRyb2xzTWVudSk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2UvRE9N
VGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OmZpcmVkKTogUGFzcyBhIHJl
ZmVyZW5jZS4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBvc3RNZXNzYWdlVGltZXI6OlBvc3RNZXNzYWdlVGltZXIpOiBUYWtlIFJlZiYmIGluc3Rl
YWQgb2YKKyAgICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
YWRqdXN0V2luZG93UmVjdCk6IFVzZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6YWxsb3dQb3BVcCk6IERpdHRvLiBBbHNvIHJld3JpdGUgdG8gdXNlIHx8IGluc3Rl
YWQKKyAgICAgICAgb2Ygc3VjY2Vzc2l2ZSBpZiBzdGF0ZW1lbnRzLgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6RE9NV2luZG93KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OmRpZFNlY3VyZVRyYW5zaXRpb25Ubyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjpyZWdpc3RlclByb3BlcnR5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3c6OnVucmVnaXN0ZXJQcm9wZXJ0eSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQpOiBNZXJnZSB3aXRoIHRoZSBmdW5jdGlv
bgorICAgICAgICBpbW1lZGlhdGVseSBmb2xsb3dlZCwgY2FsbGVkIG9ubHkgZnJvbSBoZXJlLgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmln
aW5DaGVjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnByaW50KTog
UGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWxlcnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y29uZmlybSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpwcm9tcHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c2V0U3RhdHVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OnNldERlZmF1bHRTdGF0dXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6bW92ZUJ5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1vdmVU
byk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVCeSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVUbyk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6RE9NV2luZG93OjpjbGVhclRpbWVvdXQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6aW5jcmVtZW50U2Nyb2xsRXZlbnRMaXN0ZW5lcnNDb3VudCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkZWNyZW1lbnRTY3JvbGxFdmVudExp
c3RlbmVyc0NvdW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNob3dN
b2RhbERpYWxvZyk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZS4gQUxzbyBtYWRlIGZ1bmN0aW9ucyBwcml2YXRlCisgICAgICAgIGFuZCBm
aW5hbC4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93UHJvcGVydHk6OkRPTVdpbmRvd1Byb3BlcnR5KTogUGFzcyBhIHJl
ZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp+RE9NV2luZG93
UHJvcGVydHkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3
aWxsRGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJhbWUp
OiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVnaW9uT3ZlcmxheTo6Y3JlYXRlKTogUmV0dXJuIFJlZlB0ciBpbnN0ZWFk
IG9mIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpSZWdpb25PdmVybGF5Ojp+UmVnaW9u
T3ZlcmxheSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEZWJ1Z1BhZ2VP
dmVybGF5czo6c2hvd1JlZ2lvbk92ZXJsYXkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRl
YnVnUGFnZU92ZXJsYXlzOjpoaWRlUmVnaW9uT3ZlcmxheSk6IERpdHRvLgorCisgICAgICAgICog
cGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxl
cjo6ZHJhZ0V4aXRlZCk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6cGVyZm9ybURyYWdPcGVyYXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6dHJ5REhUTUxEcmFnKTogRGl0dG8uCisKKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6IFJlcGxhY2VkIE9wdGlvbmFsQ3Vyc29yIHdpdGggc3Rk
OjpvcHRpb25hbDxDdXJzb3I+LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRh
dGVDdXJzb3IpOiBSZWZhY3RvciBpbnRvIHR3byBmdW5jdGlvbnMgc28gd2UKKyAgICAgICAgY2Fu
IHNoYXJlIG1vcmUgY29kZSB3aXRoIHNlbGVjdEN1cnNvci4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKTogVXBkYXRlZCB0byB1c2Ugc3RkOjpvcHRpb25hbC4K
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3ZlRXZlbnQpOiBV
c2UgdGhlIG5ldyB1cGRhdGVDdXJzb3IuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OnN0YXJ0UGFuU2Nyb2xsaW5nKTogVXNlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERyb3ApOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KTog
VGFrZSBhIHJhdyBwb2ludGVyCisgICAgICAgIGluc3RlYWQgb2YgYSBQYXNzUmVmUHRyLgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZlbnQpOiBVc2UgYSBy
ZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0
ZUFmdGVyRWRpdERyYWdJZk5lZWRlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJzVG9MaW5rcyk6IERpdHRv
LgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4K
KworICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEZyYW1lKTogVGFrZSBwb2ludGVyIGluc3RlYWQK
KyAgICAgICAgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxl
cjo6c2V0Rm9jdXNlZEVsZW1lbnQpOiBUYWtlIHJlZmVyZW5jZSBpbnN0ZWFkIG9mCisgICAgICAg
IFBhc3NSZWZQdHIuCisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDogVXBkYXRlZCBm
b3IgdGhlIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OnRyYW5zZmVyQ2hpbGQpOiBEZWxldGVkLiBVbnVz
ZWQgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OmFwcGVuZENoaWxkKTog
TWVyZ2VkIHdpdGggdGhlIGZvbGxvd2luZyBmdW5jdGlvbgorICAgICAgICBzaW5jZSBpdCdzIG5v
dyBvbmx5IHVzZWQgaGVyZS4gVGFrZSByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVUcmVlOjphY3R1YWxseUFwcGVuZENoaWxkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6cmVtb3ZlQ2hpbGQpOiBUYWtlIHJlZmVy
ZW5jZSBpbnN0ZWFkIG9mIHBvaW50ZXIuCisgICAgICAgIFVzZSBtb3ZlIGluc3RlYWQgb2YgdHJp
Y2tpZXIgc3dhcC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5oOiBVcGRhdGVkIGZvciB0aGUg
YWJvdmUuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnNldENvbnRlbnRzU2l6ZSk6IFVzZSBhIHJlZmVyZW5jZS4KKyAgICAgICAg
KiBwYWdlL01haW5GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6OmRyb3BD
aGlsZHJlbik6IERpdHRvLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpzY3JvbGxpbmdDb29yZGluYXRvcik6IERpdHRvLgorICAgICAgICAqIHBhZ2Uv
UGFnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXk6OmZhZGVBbmlt
YXRpb25UaW1lckZpcmVkKTogRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlT3ZlcmxheUNvbnRyb2xsZXI6Omlu
c3RhbGxQYWdlT3ZlcmxheSk6IFRha2UgcmVmZXJlbmNlCisgICAgICAgIGluc3RlYWQgb2YgUGFz
c1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0
YWxsUGFnZU92ZXJsYXkpOiBUYWtlIHJlZmVyZW5jZQorICAgICAgICBpbnRlYWQgb2YgcG9pbnRl
ci4KKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oOiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpQYWdlU2VyaWFsaXplcik6IE1vdmVkIG1vc3QgaW5p
dGlhbGl6YXRpb24gdG8gdGhlCisgICAgICAgIGNsYXNzIGRlZmluaXRpb24uCisgICAgICAgIChX
ZWJDb3JlOjpQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplKTogVXNlIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVGcmFtZSk6IFVzZSBpbml0aWFs
aXplciBsaXN0IGluc3RlYWQgb2YKKyAgICAgICAgY29uc3RydWN0b3IgZm9yIHJlc291cmNlLgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUNTU1N0eWxlU2hlZXQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjphZGRJbWFnZVRvUmVz
b3VyY2VzKTogRGl0dG8uCisgICAgICAgICogcGFnZS9QYWdlU2VyaWFsaXplci5oOiBSZW1vdmVk
IGNvbnN0cnVjdG9ycyBmcm9tIFBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZQorICAgICAgICBzdHJ1
Y3Qgc2luY2Ugc3RydWN0dXJlcyBkb24ndCByZWFsbHkgbmVlZCB0aGVtLiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUuCisgICAgICAgIENoYW5nZWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yIGlu
dG8gYSBuZXN0ZWQgY2xhc3MuCisKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlRW50cnkuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlRW50cnk6OnN0YXJ0VGltZUNvbXBhcmVMZXNz
VGhhbik6IFVzZSBjb25zdCBSZWZQdHImCisgICAgICAgIGluc3RlYWQgb2YgUGFzc1JlZlB0ciB0
byBjb21wYXJlIFJlZlB0ciBpbiBwbGFjZS4KKworICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VV
c2VyVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omluc2VydFBlcmZvcm1hbmNlRW50cnkp
OiBUYWtlIFJlZiYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKworICAgICAgICAqIHBhZ2UvUmVz
b3VyY2VVc2FnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VVc2FnZU92
ZXJsYXk6On5SZXNvdXJjZVVzYWdlT3ZlcmxheSk6IFVzZSByZWZyZW5jZS4KKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlVXNhZ2VPdmVybGF5Ojppbml0aWFsaXplKTogRGl0dG8uCisKKyAgICAg
ICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmg6IFJlbW92ZWQgdW5uZWVkZWQgaW5j
bHVkZS4KKworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmNsZWFyKTog
VXNlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlOjpmaXJlRXZlbnRzQW5kVXBkYXRlU3R5bGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2gpOiBVc2UgdGhl
CisgICAgICAgIGFwcGVuZCBmdW5jdGlvbiBpbnN0ZWFkIG9mIGEgaGFuZC13cml0dGVuIGFsdGVy
bmF0aXZlLgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFk
ZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKToKKyAgICAgICAgVGFrZSBhIHJlZmVyZW5jZSByYXRo
ZXIgdGhhbiBhIFJlZiYmIHNpbmNlIG5vIGNhbGxlciBpcyBwYXNzaW5nIG93bmVyc2hpcC4KKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oOiBVcGRh
dGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0
eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibGVuZEZ1bmMpOiBSZXR1cm4gUmVm
UHRyIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OmJsZW5kRmlsdGVy
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpjcm9zc2ZhZGVCbGVuZCk6IERpdHRvLgorCisg
ICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlVHJhbnNpdGlvbnMpOiBVcGRhdGVk
IHRvIHVzZQorICAgICAgICBhbmltYXRpb25Gb3JQcm9wZXJ0eSwgd2hpY2ggcmV0dXJucyBhIHJh
dyBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRp
b25Gb3JQcm9wZXJ0eSk6IFJlbmFtZWQgZnJvbQorICAgICAgICBnZXRBbmltYXRpb25Gb3JQcm9w
ZXJ0eSBhbmQgY2hhbmdlZCB0byByZXR1cm4gcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAgICBv
ZiBQYXNzUmVmUHRyLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9J
bXBsaWNpdEFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlv
bjo6b25BbmltYXRpb25FbmQpOiBVc2UgYW5pbWF0aW9uRm9yUHJvcGVydHkuCisgICAgICAgIChX
ZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudCk6IFBhc3MgcmVm
ZXJlbmNlLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQp
OiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyk6IFRha2Ug
cmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2lu
Z0RhdGFUcmFuc2Zlcik6IFJldHVybiBSZWYuCisgICAgICAgICogcGFnZS9ndGsvRXZlbnRIYW5k
bGVyR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9y
bUNvbnRyb2xzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9pb3MvRXZlbnRI
YW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxG
b3JtQ29udHJvbHMpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRy
YW5zZmVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0Fs
bEZvcm1Db250cm9scyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpw
bGF0Zm9ybVByZXBhcmVGb3JXaGVlbEV2ZW50cyk6IERpdHRvLgorCisgICAgICAgICogcGFnZS9t
YWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oOiBUYWtlIFJlZiYmIGZvciByYW5nZXMgaW5z
dGVhZAorICAgICAgICBvZiBQYXNzUmVmUHRyLiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKiBw
YWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6Okhp
Z2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OkhpZ2hsaWdodCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6YnVpbGRQ
b3RlbnRpYWxIaWdobGlnaHRzSWZOZWVkZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkUGhvbmVOdW1iZXJIaWdobGlnaHRzKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFNl
bGVjdGlvbkhpZ2hsaWdodCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVy
bGF5Q29udHJvbGxlcjo6aGlnaGxpZ2h0c0FyZUVxdWl2YWxlbnQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmZpbmRUZWxlcGhvbmVOdW1iZXJI
aWdobGlnaHRDb250YWluaW5nU2VsZWN0aW9uSGlnaGxpZ2h0KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpoYW5kbGVDbGljayk6IERpdHRvLgor
CisgICAgICAgICogcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKyAgICAgICAgKC1b
V2ViVGV4dEluZGljYXRvclZpZXcgaW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpv
ZmZzZXQ6XSk6CisgICAgICAgIFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRy
LgorICAgICAgICAoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRv
cik6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0Fz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDogVXNlIFJlZiYmIGFuZCBSZWZQdHIgaW50ZWFkCisg
ICAgICAgIG9mIFBzYXNSZWZQdHIuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxM
YXRjaGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbExhdGNoaW5nU3RhdGU6
OlNjcm9sbExhdGNoaW5nU3RhdGUpOiBJbml0aWFsaXplIGRhdGEgbWVtYmVycworICAgICAgICBp
biBjbGFzcyBkZWZpbml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0
ZTo6c2V0V2hlZWxFdmVudEVsZW1lbnQpOiBVc2UgcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAg
ICBvZiBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6
c2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudCk6IFVzZSByYXcKKyAgICAgICAgcG9pbnRl
ciBpbnN0ZWFkIG9mIFJlZlB0ciYmLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdT
dGF0ZTo6c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcik6IFVzZSByYXcgcG9pbnRlciBpbnN0ZWFkCisg
ICAgICAgIG9mIFBhc3NSZWZQdHIuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0
Y2hpbmdTdGF0ZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KTogVXNlIFJlZiBpbnN0ZWFkIG9mIFBhc3NSZWZQ
dHIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxkKTog
VXNlIFJlZiYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZU5vZGUuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlTm9kZSk6IFVzZSBSZWYgaW5zdGVhZCBvZiBQ
YXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlOjphdHRhY2hO
b2RlKTogVXBkYXRlZCBmb3IgdGhlIGFidmUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdT
dGF0ZVRyZWU6OmNvbW1pdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlVHJlZS5oOiBEaXR0by4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJl
ZUZyb21TdGF0ZU5vZGUpOiBVc2UgcmVmZXJlbmNlLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaDogUmV0dXJuIFJlZiBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9kZTo6YXBwZW5kQ2hpbGQpOiBUYWtlIFJlZiYmIGluc3Rl
YWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVOb2RlOjpy
ZW1vdmVDaGlsZCk6IFRha2UgcmVmZXJlbmNlIGluc3RlYWQgb2YgcG9pbnRlci4KKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJv
dmUuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpUaHJlYWRlZFNjcm9s
bGluZ1RyZWUpOiBUYWtlIHJlZmVyZW5jZQorICAgICAgICBpbnN0ZWFkIG9mIHBvaW50ZXIuCisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdD
b29yZGluYXRvcklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
SU9TOjpTY3JvbGxpbmdDb29yZGluYXRvcklPUyk6IFBhc3MgcmVmZXJlbmNlLgorCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRlKTogVGFrZSBhIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVJT1M6OlNjcm9sbGluZ1RyZWVJT1MpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKTogUmV0dXJuIFJlZiBpbnN0ZWFkIG9mCisgICAgICAgIFBhc3NSZWZQdHIuCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaDogVXBkYXRlZCBmb3IgdGhl
IGFib3ZlLgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OlNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjKTogVXNlIHJlZmVyZW5jZS4KKworICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNwcDoKKyAgICAgICAgKFNjcm9sbGluZ1Ry
ZWVNYWM6OmNyZWF0ZSk6IFRha2UgYSByZWZlcmVuY2UuCisgICAgICAgIChTY3JvbGxpbmdUcmVl
TWFjOjpTY3JvbGxpbmdUcmVlTWFjKTogRGl0dG8uCisgICAgICAgIChTY3JvbGxpbmdUcmVlTWFj
OjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZSk6IFJldHVybiBhIFJlZiBpbnN0ZWFkIG9mIGEKKyAg
ICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZU1hYy5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL3dpbi9F
dmVudEhhbmRsZXJXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJz
VG9BbGxGb3JtQ29udHJvbHMpOiBUYWtlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIpOiBSZXR1cm4gUmVmLgorCisg
ICAgICAgICogcGxhdGZvcm0vQ3Vyc29yLmg6IFJlYXJyYW5nZWQgdGhlIGhlYWRlciBhIGJpdC4g
R290IHJpZCBvZiB0aGUgZXhwbGljaXQKKyAgICAgICAgY29weSBjb25zdHJ1Y3RvciwgYXNzaWdu
bWVudCBvcGVyYXRvciwgYW5kIGRlc3RydWN0b3IuIFVzaW5nIHRoZSBvbmVzCisgICAgICAgIHRo
YXQgdGhlIGNvbXBpbGVyIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVzIHdpbGwgd29yayBmb3IgYWxs
IHBsYXRmb3JtcyBhbmQKKyAgICAgICAgd2UgdGhlbiBhbHNvIGdldCBtb3ZlIGNvbnN0cnVjdG9y
IGFuZCBtb3ZlIGFzc2lnbm1lbnQgb3BlcmF0b3IuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
Q3Vyc29yRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6Q3Vyc29yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6fkN1cnNvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpDdXJzb3I6Om9wZXJhdG9yPSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3RrL0N1cnNvckd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6OkN1cnNvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6Om9wZXJhdG9yPSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6On5DdXJzb3IpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9DdXJzb3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6OkN1
cnNvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6Om9wZXJhdG9yPSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6On5DdXJzb3IpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9DdXJzb3JXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hh
cmVkQ3Vyc29yOjpTaGFyZWRDdXJzb3IpOiBNb3ZlZCB0aGlzIGhlcmUgZnJvbSB0aGUgaGVhZGVy
CisgICAgICAgIHNpbmNlIGl0IGlzIG9ubHkgdXNlZCB3aXRoaW4gdGhpcyBmaWxlLgorICAgICAg
ICAoV2ViQ29yZTo6U2hhcmVkQ3Vyc29yOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkN1cnNvcjo6Q3Vyc29yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6
b3BlcmF0b3I9KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6fkN1cnNvcik6
IERlbGV0ZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OmhhbmRsZVVuYXZhaWxh
YmxlUGx1Z2luSW5kaWNhdG9yRXZlbnQpOgorICAgICAgICBQYXNzIHJlZmVyZW5jZS4KKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXllckJhY2tpbmcpOiBHZXQgdG8gRnJhbWVW
aWV3CisgICAgICAgIHRocm91Z2ggdGhlIHJlbmRlciB0cmVlIGl0c2VsZiwgcmF0aGVyIHRoYW4g
dGhyb3VnaCB0aGUgZnJhbWUuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBk
YXRlTGF5ZXJGb3JIZWFkZXIpOiBVc2UgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllckZvckZvb3Rlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphdHRhY2hSb290TGF5ZXIpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGV0YWNoUm9vdExh
eWVyKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAg
ICAgICAgKFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXApOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Vh
cmNoRmllbGQ6OmFkZFNlYXJjaFJlc3VsdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU2VhcmNoRmllbGQ6OnNob3dQb3B1cCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU2VhcmNoRmllbGQ6OnZhbHVlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdB
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBRWxlbWVudDo6aXNLZXlib2FyZEZv
Y3VzYWJsZSk6IERpdHRvLgorICAgICAgICAqIHRlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYWdlT3ZlcmxheUNsaWVudDo6aW5zdGFsbE92
ZXJsYXkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYWdlT3ZlcmxheUNsaWVudDo6
dW5pbnN0YWxsQWxsT3ZlcmxheXMpOiBEaXR0by4KKwogMjAxNy0wMS0yMSAgQ2FybG9zIEdhcmNp
YSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjIxMTAxMi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA0YTMzODQ1ZjE4NjEyMjA4Mjg1
Yzc0MGZiZDM5YTg4ZmY4NmI1NTIyLi5jYTI4OTZhNWJiNTU1MDQ2ZDk4OTgwMDkyMTZiYzljYjFm
YmU1ZjIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTctMDEtMjAgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRy
IGZyb20gInBhZ2UiIGRpcmVjdG9yeSBvZiBXZWJDb3JlLCBhbHNvIGRlcGxveSByZWZlcmVuY2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcyMjQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW06CisgICAgICAgICgt
W1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIgcXVvdGFdKTogUGFzcyByZWZlcmVuY2Uu
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDogVXBkYXRlZCBm
b3IgY2hhbmdlcyB0byBDaHJvbWVDbGllbnQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpmb2N1c2VkRWxlbWVu
dENoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93
KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0
QWxlcnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENv
bmZpcm0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFBy
b21wdCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFu
Z2VkKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1Z2lu
QnV0dG9uQ2xpY2tlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpwcmludCk6
IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVD
b2xvckNob29zZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERp
ZEZvY3VzKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRCbHVy
KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudSk6IERp
dHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlHcmFw
aGljc0xheWVyKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVs
bFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZW50
ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50
OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKworICAgICAgICAqIFdlYlZpZXcv
V2ViRnJhbWUubW06CisgICAgICAgICgrW1dlYkZyYW1lIF9jcmVhdGVGcmFtZVdpdGhQYWdlOmZy
YW1lTmFtZTpmcmFtZVZpZXc6b3duZXJFbGVtZW50Ol0pOgorICAgICAgICBVcGRhdGVkIGZvciBj
aGFuZ2UgdG8gdGhlIGFwcGVuZENoaWxkIGZ1bmN0aW9uLgorCiAyMDE3LTAxLTIwICBKb3NlcGgg
UGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG5ldmVyIGNo
YW5naW5nIEluZGV4ZWREQiBSdW50aW1lRW5hYmxlZEZlYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRl
eCBlZGQyMWMwYmM3NzRiY2U3OGJlZjE4ZDViYmYyOGNmZTJlMGFlMTlmLi4xODdlZmMyOGVkMTU0
YTA2MWZkODUxYzBhYTBkOWRiMWM5NGNmNzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzYgQEAKKzIwMTctMDEtMjAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbW92ZSBQYXNzUmVmUHRyIGZyb20gInBhZ2UiIGRpcmVjdG9yeSBvZiBXZWJDb3JlLCBh
bHNvIGRlcGxveSByZWZlcmVuY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNjcyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIFBsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQbHVnaW5WaWV3OjpzdGF0dXMpOiBQYXNzIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OmZvY3VzUGx1Z2luRWxlbWVudCk6IERpdHRvLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlV2luZG93KTogVXBkYXRlZCBmb3IgY2hhbmdlIHRvIENocm9tZUNsaWVudC4KKyAg
ICAgICAgKFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKTogRGl0
dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydCk6IERpdHRv
LgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6IERpdHRv
LgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KTogRGl0dG8u
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2Vk
KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnByaW50KTogRGl0dG8uCisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xh
eWVyKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5
R3JhcGhpY3NMYXllcik6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjplbnRlclZp
ZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21l
Q2xpZW50OjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAo
V2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KTog
RGl0dG8uCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6IERpdHRv
LgorCiAyMDE3LTAxLTIwICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAK
ICAgICAgICAgUmVtb3ZlIG5ldmVyIGNoYW5naW5nIEluZGV4ZWREQiBSdW50aW1lRW5hYmxlZEZl
YXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCAzYmFjN2EwMTMyZDE5ZDIyN2I2NTFlY2FmM2EyOWE1MTlkOWFm
MjM0Li45ZjhiNTY5M2JkYTdlNzM2ZjM0ZjE1MWVkYWVjNzYyNjY0OTIzYmFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNzQgQEAKKzIwMTctMDEtMjAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIGZyb20gInBhZ2UiIGRpcmVjdG9yeSBv
ZiBXZWJDb3JlLCBhbHNvIGRlcGxveSByZWZlcmVuY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Ny
b2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OmNy
ZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKTogUmV0dXJuIGEgUmVmCisgICAgICAgIGluc3RlYWQgb2Yg
UGFzc1JlZlB0ci4KKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV0tCdW5kbGVQ
YWdlSW5zdGFsbFBhZ2VPdmVybGF5KTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdLQnVu
ZGxlUGFnZVVuaW5zdGFsbFBhZ2VPdmVybGF5KTogRGl0dG8uCisgICAgICAgIChXS0J1bmRsZVBh
Z2VJbnN0YWxsUGFnZU92ZXJsYXlXaXRoQW5pbWF0aW9uKTogRGl0dG8uCisgICAgICAgIChXS0J1
bmRsZVBhZ2VVbmluc3RhbGxQYWdlT3ZlcmxheVdpdGhBbmltYXRpb24pOiBEaXR0by4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW06CisgICAg
ICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6anNQREZEb2NQcmludCk6IERpdHRvLgorICAgICAgICAq
IFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1
Z2luVmlldzo6Zm9jdXNQbHVnaW5FbGVtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlBs
dWdpblZpZXc6OnNldFN0YXR1c2JhclRleHQpOiBEaXR0by4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9jdXMpOiBVcGRhdGVkIGZvciBjaGFuZ2VzIHRv
IENocm9tZUNsaWVudC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjplbGVtZW50
RGlkQmx1cik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6Om1ha2VG
aXJzdFJlc3BvbmRlcik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZVdpbmRvdyk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpX
ZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydCk6IERpdHRvLgorICAgICAgICAoV2Vi
S2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKTogRGl0dG8uCisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdCk6IERpdHRv
LgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQp
OiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBs
dWdpbkJ1dHRvbkNsaWNrZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50OjpwcmludCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmV4
Y2VlZGVkRGF0YWJhc2VRdW90YSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVD
bGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEpOiBEaXR0by4KKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIpOiBEaXR0by4K
KyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0
by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1l
bnUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290
R3JhcGhpY3NMYXllcik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcik6IERpdHRvLgorICAgICAgICAoV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKTogRGl0dG8uCisg
ICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxl
bWVudCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVs
bFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xp
ZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6
V2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRIZWFkZXJMYXllcik6IERpdHRvLgorICAgICAgICAoV2Vi
S2l0OjpXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEZvb3RlckxheWVyKTogRGl0dG8uCisgICAgICAg
IChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVW
aWV3KTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaDogRGl0dG8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2Fk
ZXJDbGllbnQ6OmRpc3BhdGNoQ3JlYXRlUGFnZSk6IFBhc3MgcmVmZXJlbmNlLgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yQ2xpZW50Ojp+V2ViSW5zcGVjdG9yQ2xpZW50KTogRGl0
dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvckNsaWVudDo6aGlkZUhpZ2hsaWdodCk6
IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JDbGllbnQ6OnNob3dQYWludFJl
Y3QpOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpGaW5kQ29udHJvbGxlcjo6dXBkYXRlRmluZFVJQWZ0ZXJQ
YWdlU2Nyb2xsKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OkZpbmRDb250cm9sbGVyOjpoaWRl
RmluZFVJKTogRGl0dG8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUp
OiBSZXR1cm4gUmVmIGluc3RlYWQgb2YKKyAgICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdl
YktpdDo6V2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6
OldlYkZyYW1lOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViRnJhbWUuaDogVXBkYXRlZCBmb3IgdGVoIGFib3ZlLgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rv
cjo6b3BlbkluTmV3VGFiKTogUGFzcyByZWZlcmVuY2UuCisKIDIwMTctMDEtMjEgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIyMTEwMTIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0RPTVdpbmRvd0ZldGNoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RE9NV2luZG93RmV0Y2guY3BwCmluZGV4IGFkYWRhY2Q4M2MyNjBjZmE5ZDc2OTlkMzRmNmE0YmVj
OTFkNjFmMDYuLmM1OWQzNjU2YTBjMjEwN2FhOWRhNzZkZjFhNTczN2RlZmY5ZjUyZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCkBAIC0x
LDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxNiBDYW5vbiBJbmMuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsMTYgKzMzLDE3IEBACiAjaWYgRU5BQkxFKEZF
VENIX0FQSSkKIAogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkZldGNoUmVxdWVz
dC5oIgorI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRmV0Y2hSZXNwb25zZS5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgRE9NV2luZG93RmV0Y2g6OmZldGNoKERPTVdp
bmRvdyYgd2luZG93LCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QsIFJlZjxEZWZlcnJlZFByb21pc2U+
JiYgcHJvbWlzZSkKIHsKLSAgICBpZiAoIXdpbmRvdy5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
CisgICAgYXV0byogZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3Vt
ZW50KQogICAgICAgICByZXR1cm47Ci0gICAgRmV0Y2hSZXNwb25zZTo6ZmV0Y2goKndpbmRvdy5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHJlcXVlc3QsIFdURk1vdmUocHJvbWlzZSkpOworICAg
IEZldGNoUmVzcG9uc2U6OmZldGNoKCpkb2N1bWVudCwgcmVxdWVzdCwgV1RGTW92ZShwcm9taXNl
KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcAppbmRleCBlNTQ4OWZj
YjU0MGM5Njk0YWU0Mzc1OTY4M2RlOWFjZjAxODI0YWQ5Li4zZGNiNTYwMzQzZWI1YWI5NDUxMWEz
OTBlYjE5MTFiMzljYjBmMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwCkBAIC0yMDQsNyArMjA0LDcgQEAgdm9p
ZCBEYXRhYmFzZUNvbnRleHQ6OmRhdGFiYXNlRXhjZWVkZWRRdW90YShjb25zdCBTdHJpbmcmIG5h
bWUsIERhdGFiYXNlRGV0YWlscwogICAgIGlmIChpczxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCkpIHsKICAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9j
dW1lbnQ+KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgICAgICBpZiAoUGFnZSogcGFn
ZSA9IGRvY3VtZW50LnBhZ2UoKSkKLSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgp
LmV4Y2VlZGVkRGF0YWJhc2VRdW90YShkb2N1bWVudC5mcmFtZSgpLCBuYW1lLCBkZXRhaWxzKTsK
KyAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV4Y2VlZGVkRGF0YWJhc2VRdW90
YSgqZG9jdW1lbnQuZnJhbWUoKSwgbmFtZSwgZGV0YWlscyk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgQVNTRVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNXb3JrZXJHbG9iYWxT
Y29wZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dl
YkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggNDE2
YjE4MzRiZDhhYTYzNGI4YzdiYzJjZWU3ZjA5NDZiYzZiYjA3ZS4uMDMyMGY5NTU2YjU3YjJiMDM3
MjkxMmIwOGY1MjkyZWI0Zjg2ZWQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXJNYWMubW0KQEAgLTM3MjksNyArMzcyOSw3IEBAIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVNob3dD
b250ZXh0TWVudQogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHBhZ2UtPmNvbnRleHRNZW51
Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVudUF0KCZwYWdlLT5tYWluRnJhbWUoKSwgcmVjdC5j
ZW50ZXIoKSk7CisgICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0NvbnRleHRN
ZW51QXQocGFnZS0+bWFpbkZyYW1lKCksIHJlY3QuY2VudGVyKCkpOwogfQogCiAtICh2b2lkKWFj
Y2Vzc2liaWxpdHlTY3JvbGxUb1Zpc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAppbmRleCBhM2Y2MmU1NjQ0MTFmMTgwN2JmZjA5NWY1
ZGI5Y2E1MmY2ZTZjZGU0Li5hZTdmZThjMTdmMGRiY2QxNWI3MDU0ODZkNjQyYTQ1OGFlNTdiY2Iy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3Rv
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20u
Y3BwCkBAIC0xNzgsNyArMTc4LDcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlT
bG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnQKICAgICBpZiAo
QmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpKSB7CiAgICAgICAgIC8vIERldGVjdCB3aGVuIHdlJ3JlIGdldHRpbmcgdGhlIHByb3Bl
cnR5ICdzaG93TW9kYWxEaWFsb2cnLCB0aGlzIGlzIGRpc2FibGVkLCBhbmQgaGFzIGl0cyBvcmln
aW5hbCB2YWx1ZS4KICAgICAgICAgYm9vbCBpc1Nob3dNb2RhbERpYWxvZ0FuZFNob3VsZEhpZGUg
PSBwcm9wZXJ0eU5hbWUgPT0gc3RhdGUtPnByb3BlcnR5TmFtZXMoKS5zaG93TW9kYWxEaWFsb2cK
LSAgICAgICAgICAgICYmICFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhmcmFtZSkKKyAg
ICAgICAgICAgICYmICFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZygqZnJhbWUpCiAgICAg
ICAgICAgICAmJiBzbG90LmlzVmFsdWUoKSAmJiBpc0hvc3RGdW5jdGlvbihzbG90LmdldFZhbHVl
KHN0YXRlLCBwcm9wZXJ0eU5hbWUpLCBqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25TaG93TW9k
YWxEaWFsb2cpOwogICAgICAgICAvLyBVbmxlc3Mgd2UncmUgaW4gdGhlIHNob3dNb2RhbERpYWxv
ZyBzcGVjaWFsIGNhc2UsIHdlJ3JlIGRvbmUuCiAgICAgICAgIGlmICghaXNTaG93TW9kYWxEaWFs
b2dBbmRTaG91bGRIaWRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMDgxNjBhZGQzYTNh
M2RlOWNkNDg3ZmQ0MTQxMzgyMTYxYzkxZjE5Yy4uOTQ4ZDY3Y2VlNDM5YjUwZGY4MGJjZmY1OWI3
N2YwMjI2NzBiY2ViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NDgsMTMgKzg0OCwx
MSBAQCB2b2lkIERvY3VtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNo
YW5nZSkKIHsKICAgICBDb250YWluZXJOb2RlOjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlKTsKIAot
I2lmIFBMQVRGT1JNKElPUykKICAgICAvLyBGSVhNRTogQ2hyb21lOjpkaWRSZWNlaXZlRG9jVHlw
ZSgpIHVzZWQgdG8gYmUgY2FsbGVkIG9ubHkgd2hlbiB0aGUgZG9jdHlwZSBjaGFuZ2VkLiBXZSBu
ZWVkIHRvIGNoZWNrIHRoZQogICAgIC8vIGltcGFjdCBvZiBjYWxsaW5nIHRoaXMgc3lzdGVtYXRp
Y2FsbHkuIElmIHRoZSBvdmVyaGVhZCBpcyBuZWdsaWdpYmxlLCB3ZSBuZWVkIHRvIHJlbmFtZSBk
aWRSZWNlaXZlRG9jVHlwZSwKICAgICAvLyBvdGhlcndpc2UsIHdlIG5lZWQgdG8gZGV0ZWN0IHRo
ZSBkb2MgdHlwZSBjaGFuZ2VzIGJlZm9yZSB1cGRhdGluZyB0aGUgdmlld3BvcnQuCiAgICAgaWYg
KFBhZ2UqIHBhZ2UgPSB0aGlzLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJl
Y2VpdmVEb2NUeXBlKGZyYW1lKCkpOwotI2VuZGlmCisgICAgICAgIHBhZ2UtPmNocm9tZSgpLmRp
ZFJlY2VpdmVEb2NUeXBlKCpmcmFtZSgpKTsKIAogICAgIEVsZW1lbnQqIG5ld0RvY3VtZW50RWxl
bWVudCA9IGNoaWxkcmVuT2ZUeXBlPEVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpOwogICAgIGlmIChu
ZXdEb2N1bWVudEVsZW1lbnQgPT0gbV9kb2N1bWVudEVsZW1lbnQpCkBAIC0yMzcyLDkgKzIzNzAs
MTAgQEAgdm9pZCBEb2N1bWVudDo6cGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2JqZWN0
cygpCiB7CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlmIChXZWJUaHJlYWRDb3VudE9mT2JzZXJ2
ZWRDb250ZW50TW9kaWZpZXJzKCkgPiAwKSB7Ci0gICAgICAgIEZyYW1lKiBmcmFtZSA9IHRoaXMt
PmZyYW1lKCk7Ci0gICAgICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUgPyBmcmFtZS0+cGFnZSgp
IDogbnVsbHB0cikKLSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmNsZWFyQ29u
dGVudENoYW5nZU9ic2VydmVycyhmcmFtZSk7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IHRo
aXMtPmZyYW1lKCkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUtPnBhZ2Uo
KSkKKyAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5jbGVhckNvbnRlbnRD
aGFuZ2VPYnNlcnZlcnMoKmZyYW1lKTsKKyAgICAgICAgfQogICAgIH0KICNlbmRpZgogfQpAQCAt
MzIxOCw5ICszMjE3LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlVmlld3BvcnRBcmd1bWVudHMo
KQogICAgICAgICBtX2RpZERpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZCA9IHRydWU7
CiAjZW5kaWYKICAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5kaXNwYXRjaFZpZXdwb3J0UHJvcGVy
dGllc0RpZENoYW5nZShtX3ZpZXdwb3J0QXJndW1lbnRzKTsKLSNpZiBQTEFURk9STShJT1MpCi0g
ICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuZGlkUmVjZWl2ZURvY1R5cGUoZnJhbWUoKSk7Ci0jZW5k
aWYKKyAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZSgqZnJhbWUoKSk7
CiAgICAgfQogfQogCkBAIC0zNjQyLDcgKzM2MzksNyBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1
c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEZv
YwogICAgICAgICAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCpvbGRGb2N1c2VkRWxlbWVu
dCkpCiAgICAgICAgICAgICAgICAgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKm9sZEZvY3Vz
ZWRFbGVtZW50KS5lbmRFZGl0aW5nKCk7CiAgICAgICAgICAgICBpZiAocGFnZSgpKQotICAgICAg
ICAgICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZEJsdXIob2xkRm9j
dXNlZEVsZW1lbnQuZ2V0KCkpOworICAgICAgICAgICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xp
ZW50KCkuZWxlbWVudERpZEJsdXIoKm9sZEZvY3VzZWRFbGVtZW50KTsKICAgICAgICAgICAgIEFT
U0VSVCghbV9mb2N1c2VkRWxlbWVudCk7CiAgICAgICAgIH0KIApAQCAtNDAwMCw3ICszOTk3LDcg
QEAgdm9pZCBEb2N1bWVudDo6Y3JlYXRlRE9NV2luZG93KCkKICAgICBBU1NFUlQobV9mcmFtZSk7
CiAgICAgQVNTRVJUKCFtX2RvbVdpbmRvdyk7CiAKLSAgICBtX2RvbVdpbmRvdyA9IERPTVdpbmRv
dzo6Y3JlYXRlKHRoaXMpOworICAgIG1fZG9tV2luZG93ID0gRE9NV2luZG93OjpjcmVhdGUoKnRo
aXMpOwogCiAgICAgQVNTRVJUKG1fZG9tV2luZG93LT5kb2N1bWVudCgpID09IHRoaXMpOwogICAg
IEFTU0VSVChtX2RvbVdpbmRvdy0+ZnJhbWUoKSA9PSBtX2ZyYW1lKTsKQEAgLTQwMTUsNyArNDAx
Miw3IEBAIHZvaWQgRG9jdW1lbnQ6OnRha2VET01XaW5kb3dGcm9tKERvY3VtZW50KiBkb2N1bWVu
dCkKICAgICBBU1NFUlQocGFnZUNhY2hlU3RhdGUoKSA9PSBOb3RJblBhZ2VDYWNoZSk7CiAKICAg
ICBtX2RvbVdpbmRvdyA9IFdURk1vdmUoZG9jdW1lbnQtPm1fZG9tV2luZG93KTsKLSAgICBtX2Rv
bVdpbmRvdy0+ZGlkU2VjdXJlVHJhbnNpdGlvblRvKHRoaXMpOworICAgIG1fZG9tV2luZG93LT5k
aWRTZWN1cmVUcmFuc2l0aW9uVG8oKnRoaXMpOwogCiAgICAgQVNTRVJUKG1fZG9tV2luZG93LT5k
b2N1bWVudCgpID09IHRoaXMpOwogICAgIEFTU0VSVChtX2RvbVdpbmRvdy0+ZnJhbWUoKSA9PSBt
X2ZyYW1lKTsKQEAgLTU1NzMsMTIgKzU1NzAsMTIgQEAgdm9pZCBEb2N1bWVudDo6cmVxdWVzdEZ1
bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZ1bGxTY3JlZW5DaGVja1R5cGUK
ICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGJvb2wgaGFzS2V5Ym9hcmRBY2Nlc3MgPSB0
cnVlOwotICAgICAgICBpZiAoIXBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxs
U2NyZWVuRm9yRWxlbWVudChlbGVtZW50LCBoYXNLZXlib2FyZEFjY2VzcykpIHsKKyAgICAgICAg
aWYgKCFwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1l
bnQoKmVsZW1lbnQsIGhhc0tleWJvYXJkQWNjZXNzKSkgewogICAgICAgICAgICAgLy8gVGhlIG5l
dyBmdWxsIHNjcmVlbiBBUEkgZG9lcyBub3QgYWNjZXB0IGEgImZsYWdzIiBwYXJhbWV0ZXIsIHNv
IGZhbGwgYmFjayB0byBkaXNhbGxvd2luZwogICAgICAgICAgICAgLy8ga2V5Ym9hcmQgaW5wdXQg
aWYgdGhlIGNocm9tZSBjbGllbnQgcmVmdXNlcyB0byBhbGxvdyBrZXlib2FyZCBpbnB1dC4KICAg
ICAgICAgICAgIGhhc0tleWJvYXJkQWNjZXNzID0gZmFsc2U7CiAKLSAgICAgICAgICAgIGlmICgh
cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGVs
ZW1lbnQsIGhhc0tleWJvYXJkQWNjZXNzKSkKKyAgICAgICAgICAgIGlmICghcGFnZSgpLT5jaHJv
bWUoKS5jbGllbnQoKS5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KCplbGVtZW50LCBoYXNL
ZXlib2FyZEFjY2VzcykpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAt
NTYzMSw3ICs1NjI4LDcgQEAgdm9pZCBEb2N1bWVudDo6cmVxdWVzdEZ1bGxTY3JlZW5Gb3JFbGVt
ZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZ1bGxTY3JlZW5DaGVja1R5cGUKICAgICAgICAgLy8gNS4g
UmV0dXJuLCBhbmQgcnVuIHRoZSByZW1haW5pbmcgc3RlcHMgYXN5bmNocm9ub3VzbHkuCiAgICAg
ICAgIC8vIDYuIE9wdGlvbmFsbHksIHBlcmZvcm0gc29tZSBhbmltYXRpb24uCiAgICAgICAgIG1f
YXJlS2V5c0VuYWJsZWRJbkZ1bGxTY3JlZW4gPSBoYXNLZXlib2FyZEFjY2VzczsKLSAgICAgICAg
cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1l
bnQpOworICAgICAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVudGVyRnVsbFNjcmVlbkZv
ckVsZW1lbnQoKmVsZW1lbnQpOwogCiAgICAgICAgIC8vIDcuIE9wdGlvbmFsbHksIGRpc3BsYXkg
YSBtZXNzYWdlIGluZGljYXRpbmcgaG93IHRoZSB1c2VyIGNhbiBleGl0IGRpc3BsYXlpbmcgdGhl
IGNvbnRleHQgb2JqZWN0IGZ1bGxzY3JlZW4uCiAgICAgICAgIHJldHVybjsKQEAgLTU3MjMsMTIg
KzU3MjAsMTIgQEAgdm9pZCBEb2N1bWVudDo6d2Via2l0RXhpdEZ1bGxzY3JlZW4oKQogICAgIC8v
IE9ubHkgZXhpdCBvdXQgb2YgZnVsbCBzY3JlZW4gd2luZG93IG1vZGUgaWYgdGhlcmUgYXJlIG5v
IHJlbWFpbmluZyBlbGVtZW50cyBpbiB0aGUgCiAgICAgLy8gZnVsbCBzY3JlZW4gc3RhY2suCiAg
ICAgaWYgKCFuZXdUb3ApIHsKLSAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5leGl0
RnVsbFNjcmVlbkZvckVsZW1lbnQobV9mdWxsU2NyZWVuRWxlbWVudC5nZXQoKSk7CisgICAgICAg
IHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KCptX2Z1
bGxTY3JlZW5FbGVtZW50KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8vIE90aGVy
d2lzZSwgbm90aWZ5IHRoZSBjaHJvbWUgb2YgdGhlIG5ldyBmdWxsIHNjcmVlbiBlbGVtZW50Lgot
ICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChu
ZXdUb3ApOworICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJGdWxsU2NyZWVuRm9y
RWxlbWVudCgqbmV3VG9wKTsKIH0KIAogYm9vbCBEb2N1bWVudDo6d2Via2l0RnVsbHNjcmVlbkVu
YWJsZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDg4ZTNlOTkzMDFhNzE5ZGUy
NTQwODNhOTMyNmEzYmFjZjNlYzM4ZmMuLjg1ZTBiMjZmMWMzZTc4YjJjYmJjNjg1YjZhZDE5ZjI1
ZDBkOWJlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTIzNDgsNyArMjM0OCw3IEBAIHZv
aWQgRWxlbWVudDo6Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZvY3VzRGly
ZWN0aW9uIGRpcmVjdGlvbikKIAogICAgIGlmIChkb2N1bWVudCgpLmZvY3VzZWRFbGVtZW50KCkg
PT0gdGhpcykgewogICAgICAgICBpZiAoZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICBk
b2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZFJlZm9jdXModGhp
cyk7CisgICAgICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxl
bWVudERpZFJlZm9jdXMoKnRoaXMpOwogCiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMzcx
LDcgKzIzNzEsNyBAQCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2Vs
ZWN0aW9uLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAgICAgICAgIC8vIElmIGEgZm9jdXMg
ZXZlbnQgaGFuZGxlciBjaGFuZ2VzIHRoZSBmb2N1cyB0byBhIGRpZmZlcmVudCBub2RlIGl0CiAg
ICAgICAgIC8vIGRvZXMgbm90IG1ha2Ugc2Vuc2UgdG8gY29udGludWUgYW5kIHVwZGF0ZSBhcHBl
YXJlbmNlLgogICAgICAgICBwcm90ZWN0ID0gdGhpczsKLSAgICAgICAgaWYgKCFwYWdlLT5mb2N1
c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudCh0aGlzLCBkb2N1bWVudCgpLmZyYW1lKCks
IGRpcmVjdGlvbikpCisgICAgICAgIGlmICghcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9j
dXNlZEVsZW1lbnQodGhpcywgKmRvY3VtZW50KCkuZnJhbWUoKSwgZGlyZWN0aW9uKSkKICAgICAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI0NDEsNyArMjQ0MSw3IEBAIHZvaWQgRWxlbWVu
dDo6Ymx1cigpCiAgICAgY2FuY2VsRm9jdXNBcHBlYXJhbmNlVXBkYXRlKCk7CiAgICAgaWYgKHRy
ZWVTY29wZSgpLmZvY3VzZWRFbGVtZW50SW5TY29wZSgpID09IHRoaXMpIHsKICAgICAgICAgaWYg
KEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgIGZyYW1lLT5w
YWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KDAsIGZyYW1lKTsKKyAg
ICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVt
ZW50KG51bGxwdHIsICpmcmFtZSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRvY3VtZW50
KCkuc2V0Rm9jdXNlZEVsZW1lbnQobnVsbHB0cik7CiAgICAgfQpAQCAtMjQ2NCw3ICsyNDY0LDcg
QEAgdm9pZCBFbGVtZW50OjpkaXNwYXRjaEZvY3VzT3V0RXZlbnQoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIFJlZlB0cjxFbGVtZW4KIHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2
ZW50KFJlZlB0cjxFbGVtZW50PiYmIG9sZEZvY3VzZWRFbGVtZW50LCBGb2N1c0RpcmVjdGlvbikK
IHsKICAgICBpZiAoZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgIGRvY3VtZW50KCkucGFnZSgp
LT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkRm9jdXModGhpcyk7CisgICAgICAgIGRvY3Vt
ZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkRm9jdXMoKnRoaXMpOwog
CiAgICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KCp0aGlzLCBGb2N1c0V2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLmZvY3VzRXZlbnQsIGZhbHNlLCBmYWxzZSwgZG9jdW1lbnQoKS5k
ZWZhdWx0VmlldygpLCAwLCBXVEZNb3ZlKG9sZEZvY3VzZWRFbGVtZW50KSkpOwogfQpAQCAtMjQ3
Miw3ICsyNDcyLDcgQEAgdm9pZCBFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQoUmVmUHRyPEVs
ZW1lbnQ+JiYgb2xkRm9jdXNlZEVsZW1lbnQsIEZvY3VzRGlyZWMKIHZvaWQgRWxlbWVudDo6ZGlz
cGF0Y2hCbHVyRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1lbnQpCiB7CiAg
ICAgaWYgKGRvY3VtZW50KCkucGFnZSgpKQotICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hy
b21lKCkuY2xpZW50KCkuZWxlbWVudERpZEJsdXIodGhpcyk7CisgICAgICAgIGRvY3VtZW50KCku
cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkQmx1cigqdGhpcyk7CiAKICAgICBF
dmVudERpc3BhdGNoZXI6OmRpc3BhdGNoRXZlbnQoKnRoaXMsIEZvY3VzRXZlbnQ6OmNyZWF0ZShl
dmVudE5hbWVzKCkuYmx1ckV2ZW50LCBmYWxzZSwgZmFsc2UsIGRvY3VtZW50KCkuZGVmYXVsdFZp
ZXcoKSwgMCwgV1RGTW92ZShuZXdGb2N1c2VkRWxlbWVudCkpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApp
bmRleCBiYjNhYjk5ZTYxYzViZGMxMDQzZjNlYmM0ZTBmNzk2YTJkY2JkOGI3Li43NjYyMzA1NDcx
ZTUxZmJiZjZlNGZhMzU1NzVlZDZhYmFiZmM3MDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yMjUz
LDcgKzIyNTMsNyBAQCB2b2lkIE5vZGU6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50
KQogICAgIH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5jb250ZXh0bWVudUV2
ZW50KSB7CiAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCiAg
ICAgICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCkpCi0gICAgICAgICAgICAg
ICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuaGFuZGxlQ29udGV4dE1lbnVFdmVudCgm
ZXZlbnQpOworICAgICAgICAgICAgICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmhh
bmRsZUNvbnRleHRNZW51RXZlbnQoZXZlbnQpOwogI2VuZGlmCiAgICAgfSBlbHNlIGlmIChldmVu
dFR5cGUgPT0gZXZlbnROYW1lcygpLnRleHRJbnB1dEV2ZW50KSB7CiAgICAgICAgIGlmIChpczxU
ZXh0RXZlbnQ+KGV2ZW50KSkgewpAQCAtMjI3Miw3ICsyMjcyLDcgQEAgdm9pZCBOb2RlOjpkZWZh
dWx0RXZlbnRIYW5kbGVyKEV2ZW50JiBldmVudCkKIAogICAgICAgICAgICAgaWYgKHJlbmRlcmVy
KSB7CiAgICAgICAgICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUo
KSkKLSAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLnN0YXJ0UGFuU2Ny
b2xsaW5nKGRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIpKTsKKyAgICAgICAgICAgICAgICAg
ICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLnN0YXJ0UGFuU2Nyb2xsaW5nKGRvd25jYXN0PFJlbmRl
ckJveD4oKnJlbmRlcmVyKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggYWNmMjI2OGE3ZTc5MzA5
MjdjZWNiYjEzZDI0ZDY0Y2ZhZGJmNmRkZS4uMDFmMDcxY2NhZGNkZjE5NjQxZjI4Nzc3NDE5ZGI0
NmNiNTQwYzYwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBA
IC05MzAsNyArOTMwLDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZVByaW50KEZyYW1lJiBmcmFtZSwg
RXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcKICAgICBQYWdlKiBwYWdl
ID0gZnJhbWUucGFnZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgIHBhZ2UtPmNocm9tZSgpLnByaW50KCZmcmFtZSk7CisgICAgcGFnZS0+Y2hyb21lKCkucHJp
bnQoZnJhbWUpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwCmluZGV4IDY3NTlmZjE3N2ZlNzY3MWNiYjE2OTM1ZWIzNjEwZDJh
NTY5N2I3ODYuLjcxM2U3Nzk3MTgyNTI1ZDc3MmY0YzI5MDRmYjkyYjQyNDU5ZjIzOTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0yMTU3LDcgKzIxNTcs
NyBAQCB2b2lkIEZyYW1lU2VsZWN0aW9uOjpzZXRGb2N1c2VkRWxlbWVudElmTmVlZGVkKCkKICAg
ICBib29sIGNhcmV0QnJvd3NpbmcgPSBtX2ZyYW1lLT5zZXR0aW5ncygpLmNhcmV0QnJvd3NpbmdF
bmFibGVkKCk7CiAgICAgaWYgKGNhcmV0QnJvd3NpbmcpIHsKICAgICAgICAgaWYgKEVsZW1lbnQq
IGFuY2hvciA9IGVuY2xvc2luZ0FuY2hvckVsZW1lbnQobV9zZWxlY3Rpb24uYmFzZSgpKSkgewot
ICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2Vk
RWxlbWVudChhbmNob3IsIG1fZnJhbWUpOworICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5m
b2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChhbmNob3IsICptX2ZyYW1lKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTIxNjksMTYgKzIxNjksMTYg
QEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0Rm9jdXNlZEVsZW1lbnRJZk5lZWRlZCgpCiAgICAg
ICAgICAgICAvLyBzbyBhZGQgdGhlICFpc0ZyYW1lRWxlbWVudCBjaGVjayBoZXJlLiBUaGVyZSdz
IHByb2JhYmx5IGEgYmV0dGVyIHdheSB0byBtYWtlIHRoaXMKICAgICAgICAgICAgIC8vIHdvcmsg
aW4gdGhlIGxvbmcgdGVybSwgYnV0IHRoaXMgaXMgdGhlIHNhZmVzdCBmaXggYXQgdGhpcyB0aW1l
LgogICAgICAgICAgICAgaWYgKHRhcmdldC0+aXNNb3VzZUZvY3VzYWJsZSgpICYmICFpc0ZyYW1l
RWxlbWVudCh0YXJnZXQpKSB7Ci0gICAgICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5mb2N1
c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudCh0YXJnZXQsIG1fZnJhbWUpOworICAgICAg
ICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVs
ZW1lbnQodGFyZ2V0LCAqbV9mcmFtZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0LT5wYXJlbnRPclNoYWRvd0hvc3RF
bGVtZW50KCk7CiAgICAgICAgIH0KLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2V0Rm9j
dXNlZEVsZW1lbnQoMCk7CisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnNldEZvY3VzZWRF
bGVtZW50KG51bGxwdHIpOwogICAgIH0KIAogICAgIGlmIChjYXJldEJyb3dzaW5nKQotICAgICAg
ICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KDAs
IG1fZnJhbWUpOworICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNl
dEZvY3VzZWRFbGVtZW50KG51bGxwdHIsICptX2ZyYW1lKTsKIH0KIAogdm9pZCBEcmFnQ2FyZXRD
b250cm9sbGVyOjpwYWludERyYWdDYXJldChGcmFtZSogZnJhbWUsIEdyYXBoaWNzQ29udGV4dCYg
cCwgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25zdCBMYXlvdXRSZWN0JiBjbGlw
UmVjdCkgY29uc3QKQEAgLTIzMjgsNyArMjMyOCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnJl
dmVhbFNlbGVjdGlvbihTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IFNjcm9s
CiAgICAgICAgICAgICAgICAgbGF5ZXItPnNldEFkanVzdEZvcklPU0NhcmV0V2hlblNjcm9sbGlu
ZyhmYWxzZSk7CiAgICAgICAgICAgICAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogICAgICAgICAg
ICAgICAgIGlmIChtX2ZyYW1lLT5wYWdlKCkpCi0gICAgICAgICAgICAgICAgICAgIG1fZnJhbWUt
PnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkubm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9s
bGluZ0ZyYW1lKG1fZnJhbWUpOworICAgICAgICAgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLm5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFt
ZSgqbV9mcmFtZSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICNlbHNlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCmluZGV4IDM2MzM5OGQ2ZWZjYzE0YzRiNmJiNzVmMzEz
ODdjZGQ3ZTdjNTk5ZDEuLjIxZjI0YWQzOWY0YTkxNjZjOGIxMTNjYWUyNzAwZmU5ZjQ1MWNhOGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCkBAIC05OCw5ICs5OCw5IEBA
IHZvaWQgQ2FjaGVkRnJhbWVCYXNlOjpyZXN0b3JlKCkKICAgICBmcmFtZS5sb2FkZXIoKS5jbGll
bnQoKS5kaWRSZXN0b3JlRnJvbVBhZ2VDYWNoZSgpOwogCiAgICAgLy8gUmVjb25zdHJ1Y3QgdGhl
IEZyYW1lVHJlZS4gQW5kIG9wZW4gdGhlIGNoaWxkIENhY2hlZEZyYW1lcyBpbiB0aGVpciByZXNw
ZWN0aXZlIEZyYW1lTG9hZGVycy4KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9jaGls
ZEZyYW1lcy5zaXplKCk7ICsraSkgewotICAgICAgICBmcmFtZS50cmVlKCkuYXBwZW5kQ2hpbGQo
Jm1fY2hpbGRGcmFtZXNbaV0tPnZpZXcoKS0+ZnJhbWUoKSk7Ci0gICAgICAgIG1fY2hpbGRGcmFt
ZXNbaV0tPm9wZW4oKTsKKyAgICBmb3IgKGF1dG8mIGNoaWxkRnJhbWUgOiBtX2NoaWxkRnJhbWVz
KSB7CisgICAgICAgIGZyYW1lLnRyZWUoKS5hcHBlbmRDaGlsZChjaGlsZEZyYW1lLT52aWV3KCkt
PmZyYW1lKCkpOworICAgICAgICBjaGlsZEZyYW1lLT5vcGVuKCk7CiAgICAgfQogCiAjaWYgUExB
VEZPUk0oSU9TKQpAQCAtMTExLDcgKzExMSw3IEBAIHZvaWQgQ2FjaGVkRnJhbWVCYXNlOjpyZXN0
b3JlKCkKICAgICAgICAgICAgIC8vIEZJWE1FOiBBZGQgU0NST0xMX0xJU1RFTkVSIHRvIHRoZSBs
aXN0IG9mIGV2ZW50IHR5cGVzIG9uIERvY3VtZW50LCBhbmQgdXNlIG1fZG9jdW1lbnQtPmhhc0xp
c3RlbmVyVHlwZSgpLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzk2MTU0ODI+LgogICAgICAgICAgICAg
Ly8gRklYTUU6IENhbiB1c2UgRG9jdW1lbnQ6Omhhc0xpc3RlbmVyVHlwZSgpIG5vdy4KICAgICAg
ICAgICAgIGlmIChkb21XaW5kb3ctPnNjcm9sbEV2ZW50TGlzdGVuZXJDb3VudCgpICYmIGZyYW1l
LnBhZ2UoKSkKLSAgICAgICAgICAgICAgICBmcmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgp
LnNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucygmZnJhbWUsIHRydWUpOworICAgICAgICAgICAg
ICAgIGZyYW1lLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmlj
YXRpb25zKGZyYW1lLCB0cnVlKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpAQCAtMTYzLDcg
KzE2Myw3IEBAIENhY2hlZEZyYW1lOjpDYWNoZWRGcmFtZShGcmFtZSYgZnJhbWUpCiAgICAgLy8g
MSAtIFdlIHJldXNlIHRoZSBtYWluIGZyYW1lLCBzbyB3aGVuIGl0IG5hdmlnYXRlcyB0byBhIG5l
dyBwYWdlIGxvYWQgaXQgbmVlZHMgdG8gc3RhcnQgd2l0aCBhIGJsYW5rIEZyYW1lVHJlZS4KICAg
ICAvLyAyIC0gSXQncyBtdWNoIGVhc2llciB0byBkZXN0cm95IGEgQ2FjaGVkRnJhbWUgd2hpbGUg
aXQgcmVzaWRlcyBpbiB0aGUgUGFnZUNhY2hlIGlmIGl0IGlzIGRpc2Nvbm5lY3RlZCBmcm9tIGl0
cyBwYXJlbnQuCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY2hpbGRGcmFtZXMuc2l6
ZSgpOyArK2kpCi0gICAgICAgIGZyYW1lLnRyZWUoKS5yZW1vdmVDaGlsZCgmbV9jaGlsZEZyYW1l
c1tpXS0+dmlldygpLT5mcmFtZSgpKTsKKyAgICAgICAgZnJhbWUudHJlZSgpLnJlbW92ZUNoaWxk
KG1fY2hpbGRGcmFtZXNbaV0tPnZpZXcoKS0+ZnJhbWUoKSk7CiAKICAgICBpZiAoIW1faXNNYWlu
RnJhbWUpCiAgICAgICAgIGZyYW1lLnBhZ2UoKS0+ZGVjcmVtZW50U3ViZnJhbWVDb3VudCgpOwpA
QCAtMTgxLDcgKzE4MSw3IEBAIENhY2hlZEZyYW1lOjpDYWNoZWRGcmFtZShGcmFtZSYgZnJhbWUp
CiAgICAgaWYgKG1faXNNYWluRnJhbWUpIHsKICAgICAgICAgaWYgKERPTVdpbmRvdyogZG9tV2lu
ZG93ID0gbV9kb2N1bWVudC0+ZG9tV2luZG93KCkpIHsKICAgICAgICAgICAgIGlmIChkb21XaW5k
b3ctPnNjcm9sbEV2ZW50TGlzdGVuZXJDb3VudCgpICYmIGZyYW1lLnBhZ2UoKSkKLSAgICAgICAg
ICAgICAgICBmcmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE5lZWRzU2Nyb2xsTm90
aWZpY2F0aW9ucygmZnJhbWUsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBmcmFtZS5wYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLnNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhmcmFtZSwgZmFs
c2UpOwogICAgICAgICB9CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1
dFR5cGUuY3BwCmluZGV4IDViYTJjOTU0YjJiZDg5OTViYzBiMmI3MmQyZmZjZDM3OTE5MTA3YTYu
LjUwZTFmY2IxNDM3MTNhMzBhYzkxNTMzMTNiNTg5MzI1NzkwZDIxZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBDb2xvcklu
cHV0VHlwZTo6aGFuZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYgZXZlbnQpCiAKICAgICBpZiAo
Q2hyb21lKiBjaHJvbWUgPSB0aGlzLT5jaHJvbWUoKSkgewogICAgICAgICBpZiAoIW1fY2hvb3Nl
cikKLSAgICAgICAgICAgIG1fY2hvb3NlciA9IGNocm9tZS0+Y3JlYXRlQ29sb3JDaG9vc2VyKHRo
aXMsIHZhbHVlQXNDb2xvcigpKTsKKyAgICAgICAgICAgIG1fY2hvb3NlciA9IGNocm9tZS0+Y3Jl
YXRlQ29sb3JDaG9vc2VyKCp0aGlzLCB2YWx1ZUFzQ29sb3IoKSk7CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIG1fY2hvb3Nlci0+cmVhdHRhY2hDb2xvckNob29zZXIodmFsdWVBc0NvbG9yKCkp
OwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXgg
ODExZWIwZDVkMDViNmE2Yzc2ODg3OGQwM2ZjMzNjMWMyNDk0NmZiMC4uYmFlYjU3NmIxNTYzZWIz
MTU3YmI3MmVjZDg3Yjc4MjcwMDllZjMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5j
aG9yRWxlbWVudC5jcHAKQEAgLTEyOSw3ICsxMjksNyBAQCBib29sIEhUTUxBbmNob3JFbGVtZW50
Ojppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQmIGV2ZW50KSBjb25zdAogICAgIGlm
ICghZG9jdW1lbnQoKS5mcmFtZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAo
IWRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoJmV2ZW50KSkK
KyAgICBpZiAoIWRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3Mo
ZXZlbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIXJlbmRlcmVyKCkgJiYg
YW5jZXN0b3JzT2ZUeXBlPEhUTUxDYW52YXNFbGVtZW50PigqdGhpcykuZmlyc3QoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IGVhOGEz
YjMzZTAwMjc4MzJkNjcwZjllMDk4N2FjY2E4ZDM2OGJhYTIuLjYyYzI4NjE3YWUzNWRlNjczMmZm
YTA2NjMzOGZlMzE4MTY1NDZjYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEZvcm1Db250cm9sRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUNvbnRyb2xFbGVtZW50LmNwcApAQCAtMzcwLDEwICszNzAsOSBAQCBib29sIEhUTUxGb3JtQ29u
dHJvbEVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKIAogYm9vbCBIVE1MRm9ybUNvbnRyb2xF
bGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQmIGV2ZW50KSBjb25zdAog
ewotICAgIGlmIChpc0ZvY3VzYWJsZSgpKQotICAgICAgICBpZiAoZG9jdW1lbnQoKS5mcmFtZSgp
KQotICAgICAgICAgICAgcmV0dXJuIGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCku
dGFic1RvQWxsRm9ybUNvbnRyb2xzKCZldmVudCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiBpc0ZvY3VzYWJsZSgpCisgICAgICAgICYmIGRvY3VtZW50KCkuZnJhbWUoKQorICAgICAg
ICAmJiBkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLnRhYnNUb0FsbEZvcm1Db250
cm9scyhldmVudCk7CiB9CiAKIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNNb3VzZUZv
Y3VzYWJsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRl
b0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcApp
bmRleCBkOGE3OTNlMzBlYmYxYmMzM2IxYTMyYTJmMmNkMWNmN2I5MTg5ZGJjLi5hOWRiOTA1MThk
ZTcxMDBmODYxYWZjZGRiYTZkMjY3NWEyMGUzYmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFZpZGVvRWxlbWVudC5jcHAKQEAgLTE3MSw3ICsxNzEsNyBAQCBib29sIEhUTUxWaWRlb0VsZW1l
bnQ6OnN1cHBvcnRzRnVsbHNjcmVlbihIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbgogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAvLyBJZiB0aGUgZnVsbCBzY3Jl
ZW4gQVBJIGlzIGVuYWJsZWQgYW5kIGlzIHN1cHBvcnRlZCBmb3IgdGhlIGN1cnJlbnQgZWxlbWVu
dAogICAgIC8vIGRvIG5vdCByZXF1aXJlIHRoYXQgdGhlIHBsYXllciBoYXMgYSB2aWRlbyB0cmFj
ayB0byBlbnRlciBmdWxsIHNjcmVlbi4KLSAgICBpZiAodmlkZW9GdWxsc2NyZWVuTW9kZSA9PSBI
VE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCAmJiBwYWdl
LT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KHRoaXMsIGZh
bHNlKSkKKyAgICBpZiAodmlkZW9GdWxsc2NyZWVuTW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50RW51
bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCAmJiBwYWdlLT5jaHJvbWUoKS5jbGllbnQo
KS5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KCp0aGlzLCBmYWxzZSkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hh
ZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1Nw
aW5CdXR0b25FbGVtZW50LmNwcAppbmRleCA1OGJkNjJhMzY0NDdmMTE0OThjM2Q4Yzk5NTdmMWNk
MWY3M2IwZTc3Li45OGJkNzJiZmYyZDBkZjgwNmFiMGFiZjUzN2JhZTY5MDcyMjg0ODBmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCkBA
IC0xMTksNyArMTE5LDcgQEAgdm9pZCBTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCYgZXZlbnQpCiAgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRs
ZXIoKS5zZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQodGhpcyk7CiAgICAgICAgICAgICAg
ICAgICAgIG1fY2FwdHVyaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2Ut
PmNocm9tZSgpLnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIodGhpcyk7CisgICAgICAgICAg
ICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5yZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVy
KCp0aGlzKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBV
cERvd25TdGF0ZSBvbGRVcERvd25TdGF0ZSA9IG1fdXBEb3duU3RhdGU7CkBAIC0yMDUsNyArMjA1
LDcgQEAgdm9pZCBTcGluQnV0dG9uRWxlbWVudDo6cmVsZWFzZUNhcHR1cmUoKQogICAgICAgICAg
ICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLnNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudChu
dWxscHRyKTsKICAgICAgICAgICAgIG1fY2FwdHVyaW5nID0gZmFsc2U7CiAgICAgICAgICAgICBp
ZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50KCkucGFnZSgpKQotICAgICAgICAgICAgICAgIHBhZ2Ut
PmNocm9tZSgpLnVucmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcih0aGlzKTsKKyAgICAgICAg
ICAgICAgICBwYWdlLT5jaHJvbWUoKS51bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoKnRo
aXMpOwogICAgICAgICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAK
aW5kZXggZmQwYzNlMzZmMzkzMzQxZGJkYWExOGMwMzFlMWIxZTc0ODdlZmNjOS4uYmE5YmFkZmU1
NjJlNGJmZTdmOWUxNGYwYTZiNWVkMTliNTBhYTNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1l
bnRNYWMuY3BwCkBAIC0xMTcsNyArMTE3LDcgQEAgdm9pZCBJbWFnZUNvbnRyb2xzQnV0dG9uRWxl
bWVudE1hYzo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiAgICAgICAgIGlmICgh
cGFnZSkKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBwYWdlLT5jb250ZXh0TWVudUNv
bnRyb2xsZXIoKS5zaG93SW1hZ2VDb250cm9sc01lbnUoJmV2ZW50KTsKKyAgICAgICAgcGFnZS0+
Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0ltYWdlQ29udHJvbHNNZW51KGV2ZW50KTsKICAg
ICAgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhv
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5j
cHAKaW5kZXggMzE1NDdkYjdhZjNiNTNmZDdlYjQyNDFjNzA1NDNmOGY0YjY2YjE3ZS4uNzQ5ODhj
YjVlNjA0ODcyMDg4OTNiMDMxNjAxY2JhODIzNGJiOTNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKQEAgLTMzOSw4ICszMzks
OCBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6c2hvd0NvbnRleHRNZW51KEV2ZW50KiBl
dmVudCwgY29uc3QgVmVjdG9yPENvbnRleHRNZQogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IGF1dG8gbWVudVByb3ZpZGVyID0gRnJvbnRlbmRNZW51UHJvdmlkZXI6OmNyZWF0ZSh0aGlzLCB7
ICZzdGF0ZSwgZnJvbnRlbmRBcGlPYmplY3QgfSwgaXRlbXMpOwotICAgIG1fZnJvbnRlbmRQYWdl
LT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnUoZXZlbnQsIG1lbnVQcm92
aWRlci5wdHIoKSk7CiAgICAgbV9tZW51UHJvdmlkZXIgPSBtZW51UHJvdmlkZXIucHRyKCk7Cisg
ICAgbV9mcm9udGVuZFBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVu
dSgqZXZlbnQsIG1lbnVQcm92aWRlcik7CiB9CiAKICNlbmRpZgpAQCAtMzU1LDcgKzM1NSw3IEBA
IHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpkaXNwYXRjaEV2ZW50QXNDb250ZXh0TWVudUV2
ZW50KEV2ZW50KiBldmVudCkKICAgICBNb3VzZUV2ZW50JiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8
TW91c2VFdmVudD4oKmV2ZW50KTsKICAgICBJbnRQb2ludCBtb3VzZVBvaW50ID0gSW50UG9pbnQo
bW91c2VFdmVudC5jbGllbnRYKCksIG1vdXNlRXZlbnQuY2xpZW50WSgpKTsKIAotICAgIG1fZnJv
bnRlbmRQYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnVBdChmcmFt
ZSwgbW91c2VQb2ludCk7CisgICAgbV9mcm9udGVuZFBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxl
cigpLnNob3dDb250ZXh0TWVudUF0KCpmcmFtZSwgbW91c2VQb2ludCk7CiAjZWxzZQogICAgIFVO
VVNFRF9QQVJBTShldmVudCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5jcHAKaW5kZXggZTc1NDk1ZmQ0MjRjMjNlODk1MzZjYThkNDMzOTA1M2JkNGUxMWJiZC4uNTc3
OTBiNTBjZmNkYTRhNTJmMGM0YzAyZWI1N2FiMjMzYTZkNTdiOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAKQEAgLTU3MiwxOSArNTcyLDE5IEBAIGNsYXNzIEVtcHR5Vmlz
aXRlZExpbmtTdG9yZSBmaW5hbCA6IHB1YmxpYyBWaXNpdGVkTGlua1N0b3JlIHsKICAgICB2b2lk
IGFkZFZpc2l0ZWRMaW5rKFBhZ2UmLCBMaW5rSGFzaCkgZmluYWwgeyB9CiB9OwogCi1SZWZQdHI8
UG9wdXBNZW51PiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCopIGNvbnN0CitSZWZQdHI8UG9wdXBNZW51PiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRl
UG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRW1wdHlQb3B1cE1lbnUpOwogfQogCi1SZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBFbXB0
eUNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNv
bnN0CitSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlU2Vh
cmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRW1wdHlTZWFyY2hQb3B1cE1lbnUpOwogfQogCiAjaWYgRU5BQkxFKElOUFVUX1RZ
UEVfQ09MT1IpCiAKLXN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IEVtcHR5Q2hyb21lQ2xp
ZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgQ29sb3Im
KQorc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0
ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYpCiB7CiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1w
dHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXgg
OTFjMmQzODY5MDEwZGE1ZWE0M2QwMDljZDBmMTNlMGI3OGU3Y2ZmNS4uZTJhYTYwZWQ3NDg5Mzc0
ODY5NmU4OTE3MDMzYjFjZTAxZjFkNTMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVu
dHMuaApAQCAtNjEsNyArNjEsNyBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBD
aHJvbWVDbGllbnQgewogICAgIHZvaWQgZm9jdXNlZEVsZW1lbnRDaGFuZ2VkKEVsZW1lbnQqKSBm
aW5hbCB7IH0KICAgICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKSBmaW5hbCB7IH0K
IAotICAgIFBhZ2UqIGNyZWF0ZVdpbmRvdyhGcmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3Qm
LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbCB7
IHJldHVybiBudWxscHRyOyB9CisgICAgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lJiwgY29uc3Qg
RnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdhdGlv
bkFjdGlvbiYpIGZpbmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2b2lkIHNob3coKSBmaW5h
bCB7IH0KIAogICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQpA
QCAtODQsMTkgKzg0LDE5IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9t
ZUNsaWVudCB7CiAgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIHVuc2lnbmVkLCBjb25zdCBTdHJp
bmcmKSBmaW5hbCB7IH0KIAogICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
KCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbChjb25zdCBTdHJpbmcmLCBGcmFtZSopIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAg
ICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmLCBGcmFtZSYp
IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgZmlu
YWwgeyB9CiAKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmlu
ZyYpIGZpbmFsIHsgfQotICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25z
dCBTdHJpbmcmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQotICAgIGJvb2wgcnVuSmF2YVNjcmlw
dFByb21wdChGcmFtZSosIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFN0cmluZyYpIGZp
bmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUm
LCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KKyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJt
KEZyYW1lJiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29s
IHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
LCBTdHJpbmcmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgYm9vbCBzZWxlY3RJdGVt
V3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
Ym9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgZmlu
YWwgeyByZXR1cm4gZmFsc2U7IH0KICAgICBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1l
bnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPFNlYXJjaFBvcHVw
TWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IGZpbmFs
OworICAgIFJlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQm
KSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHNldFN0
YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CiAKQEAgLTEwNiw0MyArMTA2LDQ3
IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAgICAg
dm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0Jikgb3ZlcnJp
ZGUgeyB9CiAgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IElu
dFJlY3QmKSBmaW5hbCB7IH0KICAgICB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3Qg
SW50UmVjdCYsIGNvbnN0IEludFJlY3QmKSBmaW5hbCB7IH0KKwogI2lmIFVTRShDT09SRElOQVRF
RF9HUkFQSElDUykKICAgICB2b2lkIGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJbnRQ
b2ludCYpIGZpbmFsIHsgfQogI2VuZGlmCisKICNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FX1RJTUVSKQogICAgIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKSBmaW5hbCB7IH0KICNlbmRp
ZgogCiAgICAgSW50UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYgcCkgY29u
c3QgZmluYWwgeyByZXR1cm4gcDsgfQogICAgIEludFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihjb25z
dCBJbnRSZWN0JiByKSBjb25zdCBmaW5hbCB7IHJldHVybiByOyB9CisKICNpZiBQTEFURk9STShJ
T1MpCiAgICAgSW50UG9pbnQgYWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50
UG9pbnQmIHApIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHA7IH07CiAgICAgSW50UmVjdCByb290Vmll
d1RvQWNjZXNzaWJpbGl0eVNjcmVlbihjb25zdCBJbnRSZWN0JiByKSBjb25zdCBmaW5hbCB7IHJl
dHVybiByOyB9OwogI2VuZGlmCisKICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdl
Q2xpZW50KCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQotICAgIHZvaWQgY29udGVudHNTaXpl
Q2hhbmdlZChGcmFtZSosIGNvbnN0IEludFNpemUmKSBjb25zdCBmaW5hbCB7IH0KKyAgICB2b2lk
IGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3QgZmluYWwg
eyB9CiAKICAgICB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgZmluYWwgeyB9
CiAgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0Jiwg
dW5zaWduZWQpIGZpbmFsIHsgfQogCiAgICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYs
IFRleHREaXJlY3Rpb24pIGZpbmFsIHsgfQogCi0gICAgdm9pZCBwcmludChGcmFtZSopIGZpbmFs
IHsgfQorICAgIHZvaWQgcHJpbnQoRnJhbWUmKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgZXhjZWVk
ZWREYXRhYmFzZVF1b3RhKEZyYW1lKiwgY29uc3QgU3RyaW5nJiwgRGF0YWJhc2VEZXRhaWxzKSBm
aW5hbCB7IH0KKyAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSYsIGNvbnN0IFN0
cmluZyYsIERhdGFiYXNlRGV0YWlscykgZmluYWwgeyB9CiAKICAgICB2b2lkIHJlYWNoZWRNYXhB
cHBDYWNoZVNpemUoaW50NjRfdCkgZmluYWwgeyB9Ci0gICAgdm9pZCByZWFjaGVkQXBwbGljYXRp
b25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCkgZmluYWwgeyB9Cisg
ICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2lu
JiwgaW50NjRfdCkgZmluYWwgeyB9CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JD
aG9vc2VyQ2xpZW50KiwgY29uc3QgQ29sb3ImKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8
Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiwgY29u
c3QgQ29sb3ImKSBmaW5hbDsKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUm
LCBGaWxlQ2hvb3NlciYpIGZpbmFsOwogICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBW
ZWN0b3I8U3RyaW5nPiYsIEZpbGVJY29uTG9hZGVyJikgZmluYWwgeyB9CiAKLSAgICB2b2lkIGVs
ZW1lbnREaWRGb2N1cyhjb25zdCBOb2RlKikgZmluYWwgeyB9Ci0gICAgdm9pZCBlbGVtZW50RGlk
Qmx1cihjb25zdCBOb2RlKikgZmluYWwgeyB9CisgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoRWxl
bWVudCYpIGZpbmFsIHsgfQorICAgIHZvaWQgZWxlbWVudERpZEJsdXIoRWxlbWVudCYpIGZpbmFs
IHsgfQogCiAjaWYgIVBMQVRGT1JNKElPUykKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJz
b3ImKSBmaW5hbCB7IH0KQEAgLTE1MSw4ICsxNTUsOCBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVu
dCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogCiAgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXco
Y29uc3QgSW50UmVjdCYpIGNvbnN0IGZpbmFsIHsgfQogCi0gICAgdm9pZCBhdHRhY2hSb290R3Jh
cGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSBmaW5hbCB7IH0KLSAgICB2b2lkIGF0
dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSBmaW5h
bCB7IH0KKyAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NM
YXllciopIGZpbmFsIHsgfQorICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVy
KEZyYW1lJiwgR3JhcGhpY3NMYXllciopIGZpbmFsIHsgfQogICAgIHZvaWQgc2V0TmVlZHNPbmVT
aG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIGZpbmFsIHsgfQogICAgIHZvaWQgc2NoZWR1bGVD
b21wb3NpdGluZ0xheWVyRmx1c2goKSBmaW5hbCB7IH0KIApAQCAtMTYyLDE1ICsxNjYsMTYgQEAg
Y2xhc3MgRW1wdHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lk
IEFYRmluaXNoRnJhbWVMb2FkKCkgZmluYWwgeyB9CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElP
UykKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICB2b2lkIGRpZFByZXZlbnREZWZh
dWx0Rm9yRXZlbnQoKSBmaW5hbCB7IH0KICNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TKQogICAg
IHZvaWQgZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoYm9vbCkgZmluYWwgeyB9Ci0gICAgdm9pZCBz
ZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoRnJhbWUqLCBib29sKSBmaW5hbCB7IH0KLSAgICB2
b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShGcmFtZSopIGZpbmFsIHsgfQotICAgIHZvaWQgY2xl
YXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKEZyYW1lKikgZmluYWwgeyB9Ci0gICAgdm9pZCBub3Rp
ZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoRnJhbWUqKSBmaW5hbCB7IH0KKyAg
ICB2b2lkIHNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhGcmFtZSYsIGJvb2wpIGZpbmFsIHsg
fQorICAgIHZvaWQgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKEZyYW1lJikgZmluYWwgeyB9CisgICAg
dm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoRnJhbWUmKSBmaW5hbCB7IH0KKyAgICB2
b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShGcmFtZSYpIGZpbmFs
IHsgfQogICAgIHZvaWQgZGlkTGF5b3V0KExheW91dFR5cGUpIGZpbmFsIHsgfQogICAgIHZvaWQg
ZGlkU3RhcnRPdmVyZmxvd1Njcm9sbCgpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlkRW5kT3ZlcmZs
b3dTY3JvbGwoKSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmlu
ZGV4IDE0ZDQ3ZGE5NzJlOTI4MzY5YWM4MTNjZjk2MTg0NzRmMWFmMDAxODUuLjc4ZGZmMGM0M2M1
ZmIwMTFjNzgwYTQ0N2E5YjY5MmM0NGFmZDQzYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcApAQCAtMzk3LDcgKzM5Nyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN1Ym1pdEZv
cm0oUmVmPEZvcm1TdWJtaXNzaW9uPiYmIHN1Ym1pc3Npb24pCiAKICAgICBGcmFtZSogdGFyZ2V0
RnJhbWUgPSBmaW5kRnJhbWVGb3JOYXZpZ2F0aW9uKHN1Ym1pc3Npb24tPnRhcmdldCgpLCAmc3Vi
bWlzc2lvbi0+c3RhdGUoKS5zb3VyY2VEb2N1bWVudCgpKTsKICAgICBpZiAoIXRhcmdldEZyYW1l
KSB7Ci0gICAgICAgIGlmICghRE9NV2luZG93OjphbGxvd1BvcFVwKCZtX2ZyYW1lKSAmJiAhU2Ny
aXB0Q29udHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpCisgICAgICAgIGlmICghRE9N
V2luZG93OjphbGxvd1BvcFVwKG1fZnJhbWUpICYmICFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNz
aW5nVXNlckdlc3R1cmUoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAvLyBGSVhN
RTogdGFyZ2V0RnJhbWUgY2FuIGJlIG51bGwgZm9yIHR3byBkaXN0aW5jdCByZWFzb25zOgpAQCAt
MTg1MiwxMSArMTg1Miw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9h
ZCgpCiAgICAgICAgIGhpc3RvcnkoKS51cGRhdGVGb3JDbGllbnRSZWRpcmVjdCgpOwogCiAgICAg
aWYgKG1fbG9hZGluZ0Zyb21DYWNoZWRQYWdlKSB7Ci0jaWYgUExBVEZPUk0oSU9TKQogICAgICAg
ICAvLyBOb3RlLCBkaWRSZWNlaXZlRG9jVHlwZSBpcyBleHBlY3RlZCB0byBiZSBjYWxsZWQgZm9y
IGNhY2hlZCBwYWdlcy4gU2VlIDxyZGFyOi8vcHJvYmxlbS81OTA2NzU4PiBmb3IgbW9yZSBkZXRh
aWxzLgotICAgICAgICBpZiAobV9mcmFtZS5kb2N1bWVudCgpLT5kb2N0eXBlKCkgJiYgbV9mcmFt
ZS5wYWdlKCkpCi0gICAgICAgICAgICBtX2ZyYW1lLnBhZ2UoKS0+Y2hyb21lKCkuZGlkUmVjZWl2
ZURvY1R5cGUoJm1fZnJhbWUpOwotI2VuZGlmCisgICAgICAgIGlmIChhdXRvKiBwYWdlID0gbV9m
cmFtZS5wYWdlKCkpCisgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlw
ZShtX2ZyYW1lKTsKICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5yZXN1bWUoQWN0aXZlRE9N
T2JqZWN0OjpQYWdlQ2FjaGUpOwogCiAgICAgICAgIC8vIEZvcmNlIGEgbGF5b3V0IHRvIHVwZGF0
ZSB2aWV3IHNpemUgYW5kIHRoZXJlYnkgdXBkYXRlIHNjcm9sbGJhcnMuCkBAIC0yNDM5LDE1ICsy
NDM3LDE1IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmRldGFjaENoaWxkcmVuKCkKICAgICAgICAgY2hp
bGQtPmxvYWRlcigpLmRldGFjaEZyb21QYXJlbnQoKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6
Y2xvc2VBbmRSZW1vdmVDaGlsZChGcmFtZSogY2hpbGQpCit2b2lkIEZyYW1lTG9hZGVyOjpjbG9z
ZUFuZFJlbW92ZUNoaWxkKEZyYW1lJiBjaGlsZCkKIHsKLSAgICBjaGlsZC0+dHJlZSgpLmRldGFj
aEZyb21QYXJlbnQoKTsKKyAgICBjaGlsZC50cmVlKCkuZGV0YWNoRnJvbVBhcmVudCgpOwogCi0g
ICAgY2hpbGQtPnNldFZpZXcobnVsbHB0cik7Ci0gICAgaWYgKGNoaWxkLT5vd25lckVsZW1lbnQo
KSAmJiBjaGlsZC0+cGFnZSgpKQotICAgICAgICBjaGlsZC0+cGFnZSgpLT5kZWNyZW1lbnRTdWJm
cmFtZUNvdW50KCk7Ci0gICAgY2hpbGQtPndpbGxEZXRhY2hQYWdlKCk7Ci0gICAgY2hpbGQtPmRl
dGFjaEZyb21QYWdlKCk7CisgICAgY2hpbGQuc2V0VmlldyhudWxscHRyKTsKKyAgICBpZiAoY2hp
bGQub3duZXJFbGVtZW50KCkgJiYgY2hpbGQucGFnZSgpKQorICAgICAgICBjaGlsZC5wYWdlKCkt
PmRlY3JlbWVudFN1YmZyYW1lQ291bnQoKTsKKyAgICBjaGlsZC53aWxsRGV0YWNoUGFnZSgpOwor
ICAgIGNoaWxkLmRldGFjaEZyb21QYWdlKCk7CiAKICAgICBtX2ZyYW1lLnRyZWUoKS5yZW1vdmVD
aGlsZChjaGlsZCk7CiB9CkBAIC0yNTI4LDcgKzI1MjYsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpk
ZXRhY2hGcm9tUGFyZW50KCkKICAgICBtX3Byb2dyZXNzVHJhY2tlciA9IG51bGxwdHI7CiAKICAg
ICBpZiAoRnJhbWUqIHBhcmVudCA9IG1fZnJhbWUudHJlZSgpLnBhcmVudCgpKSB7Ci0gICAgICAg
IHBhcmVudC0+bG9hZGVyKCkuY2xvc2VBbmRSZW1vdmVDaGlsZCgmbV9mcmFtZSk7CisgICAgICAg
IHBhcmVudC0+bG9hZGVyKCkuY2xvc2VBbmRSZW1vdmVDaGlsZChtX2ZyYW1lKTsKICAgICAgICAg
cGFyZW50LT5sb2FkZXIoKS5zY2hlZHVsZUNoZWNrQ29tcGxldGVkKCk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgbV9mcmFtZS5zZXRWaWV3KG51bGxwdHIpOwpAQCAtMzAzMiw3ICszMDMwLDcgQEAg
Ym9vbCBGcmFtZUxvYWRlcjo6ZGlzcGF0Y2hCZWZvcmVVbmxvYWRFdmVudChDaHJvbWUmIGNocm9t
ZSwgRnJhbWVMb2FkZXIqIGZyYW1lTG8KICAgICBmcmFtZUxvYWRlckJlaW5nTmF2aWdhdGVkLT5t
X2N1cnJlbnROYXZpZ2F0aW9uSGFzU2hvd25CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwgPSB0cnVl
OwogCiAgICAgU3RyaW5nIHRleHQgPSBkb2N1bWVudC0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlF
bmNvZGluZyhiZWZvcmVVbmxvYWRFdmVudC0+cmV0dXJuVmFsdWUoKSk7Ci0gICAgcmV0dXJuIGNo
cm9tZS5ydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwodGV4dCwgJm1fZnJhbWUpOworICAgIHJl
dHVybiBjaHJvbWUucnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHRleHQsIG1fZnJhbWUpOwog
fQogCiB2b2lkIEZyYW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3ko
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBGb3JtU3RhdGUqIGZvcm1TdGF0ZSwgYm9v
bCBzaG91bGRDb250aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdh
dGlvblRvSW52YWxpZFVSTCkKQEAgLTM2NTcsNyArMzY1NSw3IEBAIFJlZlB0cjxGcmFtZT4gY3Jl
YXRlV2luZG93KEZyYW1lJiBvcGVuZXJGcmFtZSwgRnJhbWUmIGxvb2t1cEZyYW1lLCBjb25zdCBG
cmFtZUxvCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgU2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeVRvQXBwbHkob3BlbmVyRnJhbWUsIHJlcXVlc3Quc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSgpKTsKLSAgICBQYWdlKiBwYWdlID0gb2xkUGFnZS0+Y2hyb21lKCkuY3Jl
YXRlV2luZG93KCZvcGVuZXJGcmFtZSwgcmVxdWVzdFdpdGhSZWZlcnJlciwgZmVhdHVyZXMsIE5h
dmlnYXRpb25BY3Rpb24ocmVxdWVzdFdpdGhSZWZlcnJlci5yZXNvdXJjZVJlcXVlc3QoKSwgc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkpOworICAgIFBhZ2UqIHBhZ2UgPSBvbGRQYWdlLT5j
aHJvbWUoKS5jcmVhdGVXaW5kb3cob3BlbmVyRnJhbWUsIHJlcXVlc3RXaXRoUmVmZXJyZXIsIGZl
YXR1cmVzLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3RXaXRoUmVmZXJyZXIucmVzb3VyY2VSZXF1
ZXN0KCksIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpKTsKICAgICBpZiAoIXBhZ2UpCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC0zNzA1LDcgKzM3MDMsNyBAQCBSZWZQdHI8RnJh
bWU+IGNyZWF0ZVdpbmRvdyhGcmFtZSYgb3BlbmVyRnJhbWUsIEZyYW1lJiBsb29rdXBGcmFtZSwg
Y29uc3QgRnJhbWVMbwogICAgICAgICB3aW5kb3dSZWN0LnNldEhlaWdodCgqZmVhdHVyZXMuaGVp
Z2h0ICsgKHdpbmRvd1JlY3QuaGVpZ2h0KCkgLSB2aWV3cG9ydFNpemUuaGVpZ2h0KCkpKTsKIAog
ICAgIC8vIEVuc3VyZSBub24tTmFOIHZhbHVlcywgbWluaW11bSBzaXplIGFzIHdlbGwgYXMgYmVp
bmcgd2l0aGluIHZhbGlkIHNjcmVlbiBhcmVhLgotICAgIEZsb2F0UmVjdCBuZXdXaW5kb3dSZWN0
ID0gRE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIHdpbmRvd1JlY3QpOworICAgIEZs
b2F0UmVjdCBuZXdXaW5kb3dSZWN0ID0gRE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0KCpwYWdl
LCB3aW5kb3dSZWN0KTsKIAogICAgIGlmICghZnJhbWUtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGZhYTA3MTJmYTRk
MjQ3ODdmYTU1ZDQ4NGM1NDU0MjY1YmE1MWI2MmIuLmQ2OWM4MjljNGUyZjZhYmY5NGNlMWI0MDU2
NDc3ZWM2YjkwYjY5OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0zNjYs
NyArMzY2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RGcm9tRGVsZWdhdGUoUmVzb3Vy
Y2VSZXF1ZXN0JiwgdW5zaWduZWQgbG9uZyYgaWRlbnRpZmllciwgUmVzb3VyY2VFcnJvciYpOwog
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkZXRhY2hDaGlsZHJlbigpOwotICAgIHZvaWQgY2xv
c2VBbmRSZW1vdmVDaGlsZChGcmFtZSopOworICAgIHZvaWQgY2xvc2VBbmRSZW1vdmVDaGlsZChG
cmFtZSYpOwogCiAgICAgdm9pZCBsb2FkSW5TYW1lRG9jdW1lbnQoY29uc3QgVVJMJiwgU2VyaWFs
aXplZFNjcmlwdFZhbHVlKiBzdGF0ZU9iamVjdCwgYm9vbCBpc05ld05hdmlnYXRpb24pOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKaW5kZXggYmJiNjFlYjQ4MjEyMTk4
M2FiZWI1N2JjZTRlODQ3MzRiN2ZlNjIyMy4uYTAxY2UyOTI5YTEwMTA2MDA0YTI0ZTc0YTYwOGI4
Y2Q3Njc2MWE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcApAQCAt
MTU3LDcgKzE1Nyw3IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOZXdXaW5kb3dQb2xpY3ko
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBSCiAgICAgaWYgKG1fZnJhbWUu
ZG9jdW1lbnQoKSAmJiBtX2ZyYW1lLmRvY3VtZW50KCktPmlzU2FuZGJveGVkKFNhbmRib3hQb3B1
cHMpKQogICAgICAgICByZXR1cm4gY29udGludWVBZnRlck5hdmlnYXRpb25Qb2xpY3koUG9saWN5
SWdub3JlKTsKIAotICAgIGlmICghRE9NV2luZG93OjphbGxvd1BvcFVwKCZtX2ZyYW1lKSkKKyAg
ICBpZiAoIURPTVdpbmRvdzo6YWxsb3dQb3BVcChtX2ZyYW1lKSkKICAgICAgICAgcmV0dXJuIGNv
bnRpbnVlQWZ0ZXJOYXZpZ2F0aW9uUG9saWN5KFBvbGljeUlnbm9yZSk7CiAKICAgICBtX2NhbGxi
YWNrLnNldChyZXF1ZXN0LCBmb3JtU3RhdGUsIGZyYW1lTmFtZSwgYWN0aW9uLCBXVEZNb3ZlKGZ1
bmN0aW9uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCmluZGV4IDhhMjhmODhlNjY3M2RiMTcwMmIxNDQxNGZh
ZjczOGI1Yzc0MmZjZWYuLjlmOWFiMDAwY2Y2ZDkzODVmOGEyNThmNTE1MWI4NzBmNzI5MGQ4YWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlR3JvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlR3JvdXAuY3BwCkBAIC03ODQsNyArNzg0LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNh
Y2hlR3JvdXA6OmNhY2hlVXBkYXRlRmFpbGVkKCkKIAogdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3Jv
dXA6OnJlY2FsY3VsYXRlQXZhaWxhYmxlU3BhY2VJblF1b3RhKCkKIHsKLSAgICBpZiAoIW1fZnJh
bWUtPnBhZ2UoKS0+YXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKS5jYWxjdWxhdGVSZW1haW5pbmdT
aXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUobV9vcmlnaW4uZ2V0KCksIG1fbmV3ZXN0Q2FjaGUu
Z2V0KCksIG1fYXZhaWxhYmxlU3BhY2VJblF1b3RhKSkgeworICAgIGlmICghbV9mcmFtZS0+cGFn
ZSgpLT5hcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSgpLmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JP
cmlnaW5FeGNsdWRpbmdDYWNoZShtX29yaWdpbiwgbV9uZXdlc3RDYWNoZS5nZXQoKSwgbV9hdmFp
bGFibGVTcGFjZUluUXVvdGEpKSB7CiAgICAgICAgIC8vIEZhaWxlZCB0byBkZXRlcm1pbmUgd2hh
dCBpcyBsZWZ0IGluIHRoZSBxdW90YS4gRmFsbGJhY2sgdG8gYWxsb3dpbmcgYW55dGhpbmcuCiAg
ICAgICAgIG1fYXZhaWxhYmxlU3BhY2VJblF1b3RhID0gQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6
Om5vUXVvdGEoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBw
Y2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmgKaW5kZXggZmM4NTFkYTdjZmE4YzQzMzJmNjg1
ZWEyOTEyMmUzN2Q0ZGI3YWFhMi4uY2ViODNkZmM2MjE2ZmU1NTg0Mjc3YzlmOWFhZTU2NjA4ZDdj
NGQwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVHcm91cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBs
aWNhdGlvbkNhY2hlR3JvdXAuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAKICAgICBBcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZSYgc3RvcmFnZSgpIHsgcmV0dXJuIG1fc3RvcmFnZTsgfQogICAg
IGNvbnN0IFVSTCYgbWFuaWZlc3RVUkwoKSBjb25zdCB7IHJldHVybiBtX21hbmlmZXN0VVJMOyB9
Ci0gICAgY29uc3QgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3Jp
Z2luLmdldCgpOyB9CisgICAgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbigpIGNvbnN0IHsg
cmV0dXJuIG1fb3JpZ2luLmdldCgpOyB9CiAgICAgVXBkYXRlU3RhdHVzIHVwZGF0ZVN0YXR1cygp
IGNvbnN0IHsgcmV0dXJuIG1fdXBkYXRlU3RhdHVzOyB9CiAgICAgdm9pZCBzZXRVcGRhdGVTdGF0
dXMoVXBkYXRlU3RhdHVzIHN0YXR1cyk7CiAKQEAgLTEzNSw3ICsxMzUsNyBAQCBwcml2YXRlOgog
ICAgIFJlZjxBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZT4gbV9zdG9yYWdlOwogCiAgICAgVVJMIG1f
bWFuaWZlc3RVUkw7Ci0gICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX29yaWdpbjsKKyAgICBS
ZWY8U2VjdXJpdHlPcmlnaW4+IG1fb3JpZ2luOwogICAgIFVwZGF0ZVN0YXR1cyBtX3VwZGF0ZVN0
YXR1cyB7IElkbGUgfTsKICAgICAKICAgICAvLyBUaGlzIGlzIHRoZSBuZXdlc3QgY29tcGxldGUg
Y2FjaGUgaW4gdGhlIGdyb3VwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Fw
cGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKaW5kZXggZjRmYTk1YjUxN2Vj
Nzc5MTYyNGZjMGYyNWE2NTZiMGMwOTQ0MTQ3Ny4uYjZiOWQ3YTdjZDYzYzA3NmFlN2E4NDEwOTk5
ODBiNDNlZjg3YjZhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hl
L0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCkBAIC00MjEsNyArNDIxLDcgQEAg
dm9pZCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6c2V0RGVmYXVsdE9yaWdpblF1b3RhKGludDY0
X3QgcXVvdGEpCiAgICAgbV9kZWZhdWx0T3JpZ2luUXVvdGEgPSBxdW90YTsKIH0KIAotYm9vbCBB
cHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2Vj
dXJpdHlPcmlnaW4qIG9yaWdpbiwgaW50NjRfdCYgcXVvdGEpCitib29sIEFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjpjYWxjdWxhdGVRdW90YUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYg
b3JpZ2luLCBpbnQ2NF90JiBxdW90YSkKIHsKICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jl
c3NBdXRvQ291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7CiAKQEAgLTQzMiw3ICs0MzIsNyBAQCBi
b29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjYWxjdWxhdGVRdW90YUZvck9yaWdpbihjb25z
dCBTZWN1cml0eU9yaWdpbiogb3JpZwogICAgIGlmIChzdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNR
TElURV9PSykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc3RhdGVtZW50LmJpbmRUZXh0
KDEsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpvcmlnaW4pLmRhdGFi
YXNlSWRlbnRpZmllcigpKTsKKyAgICBzdGF0ZW1lbnQuYmluZFRleHQoMSwgU2VjdXJpdHlPcmln
aW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7
CiAgICAgaW50IHJlc3VsdCA9IHN0YXRlbWVudC5zdGVwKCk7CiAKICAgICAvLyBSZXR1cm4gdGhl
IHF1b3RhLCBvciBpZiBpdCB3YXMgbnVsbCB0aGUgZGVmYXVsdC4KQEAgLTQ3Miw3ICs0NzIsNyBA
QCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjYWxjdWxhdGVVc2FnZUZvck9yaWdpbihj
b25zdCBTZWN1cml0eU9yaWdpbiogb3JpZwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBB
cHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4
Y2x1ZGluZ0NhY2hlKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIEFwcGxpY2F0aW9uQ2Fj
aGUqIGNhY2hlLCBpbnQ2NF90JiByZW1haW5pbmdTaXplKQorYm9vbCBBcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZTo6Y2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hlKGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIEFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlLCBpbnQ2
NF90JiByZW1haW5pbmdTaXplKQogewogICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1
dG9Db3VudGVyIHRyYW5zYWN0aW9uQ291bnRlcjsKIApAQCAtNTAzLDcgKzUwMyw3IEBAIGJvb2wg
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5F
eGNsdWRpbmdDYWNoZShjb25zCiAgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRF
X09LKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBzdGF0ZW1lbnQuYmluZFRleHQoMSwg
U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKm9yaWdpbikuZGF0YWJhc2VJ
ZGVudGlmaWVyKCkpOworICAgIHN0YXRlbWVudC5iaW5kVGV4dCgxLCBTZWN1cml0eU9yaWdpbkRh
dGE6OmZyb21TZWN1cml0eU9yaWdpbihvcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKICAg
ICBpZiAoZXhjbHVkaW5nQ2FjaGVJZGVudGlmaWVyICE9IDApCiAgICAgICAgIHN0YXRlbWVudC5i
aW5kSW50NjQoMiwgZXhjbHVkaW5nQ2FjaGVJZGVudGlmaWVyKTsKICAgICBpbnQgcmVzdWx0ID0g
c3RhdGVtZW50LnN0ZXAoKTsKQEAgLTY4OCwxNCArNjg4LDE0IEBAIGJvb2wgQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2U6OnN0b3JlKEFwcGxpY2F0aW9uQ2FjaGVHcm91cCogZ3JvdXAsIEdyb3VwU3Rv
cmFnZUlECiAKICAgICBzdGF0ZW1lbnQuYmluZEludDY0KDEsIHVybEhvc3RIYXNoKGdyb3VwLT5t
YW5pZmVzdFVSTCgpKSk7CiAgICAgc3RhdGVtZW50LmJpbmRUZXh0KDIsIGdyb3VwLT5tYW5pZmVz
dFVSTCgpKTsKLSAgICBzdGF0ZW1lbnQuYmluZFRleHQoMywgU2VjdXJpdHlPcmlnaW5EYXRhOjpm
cm9tU2VjdXJpdHlPcmlnaW4oKmdyb3VwLT5vcmlnaW4oKSkuZGF0YWJhc2VJZGVudGlmaWVyKCkp
OworICAgIHN0YXRlbWVudC5iaW5kVGV4dCgzLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1
cml0eU9yaWdpbihncm91cC0+b3JpZ2luKCkpLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKIAogICAg
IGlmICghZXhlY3V0ZVN0YXRlbWVudChzdGF0ZW1lbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICB1bnNpZ25lZCBncm91cFN0b3JhZ2VJRCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPiht
X2RhdGFiYXNlLmxhc3RJbnNlcnRSb3dJRCgpKTsKIAotICAgIGlmICghZW5zdXJlT3JpZ2luUmVj
b3JkKGdyb3VwLT5vcmlnaW4oKSkpCisgICAgaWYgKCFlbnN1cmVPcmlnaW5SZWNvcmQoJmdyb3Vw
LT5vcmlnaW4oKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGdyb3VwLT5zZXRTdG9y
YWdlSUQoZ3JvdXBTdG9yYWdlSUQpOwpAQCAtOTcxLDcgKzk3MSw3IEBAIGJvb2wgQXBwbGljYXRp
b25DYWNoZVN0b3JhZ2U6OmNoZWNrT3JpZ2luUXVvdGEoQXBwbGljYXRpb25DYWNoZUdyb3VwKiBn
cm91cCwgQXBwCiB7CiAgICAgLy8gQ2hlY2sgaWYgdGhlIG9sZENhY2hlIHdpdGggdGhlIG5ld0Nh
Y2hlIHdvdWxkIHJlYWNoIHRoZSBwZXItb3JpZ2luIHF1b3RhLgogICAgIGludDY0X3QgcmVtYWlu
aW5nU3BhY2VJbk9yaWdpbjsKLSAgICBjb25zdCBTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gZ3Jv
dXAtPm9yaWdpbigpOworICAgIGF1dG8mIG9yaWdpbiA9IGdyb3VwLT5vcmlnaW4oKTsKICAgICBp
ZiAoY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hlKG9yaWdpbiwg
b2xkQ2FjaGUsIHJlbWFpbmluZ1NwYWNlSW5PcmlnaW4pKSB7CiAgICAgICAgIGlmIChyZW1haW5p
bmdTcGFjZUluT3JpZ2luIDwgbmV3Q2FjaGUtPmVzdGltYXRlZFNpemVJblN0b3JhZ2UoKSkgewog
ICAgICAgICAgICAgaW50NjRfdCBxdW90YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgKaW5kZXggOWZhMjkyZWU1
MGZhZWU4OWMzNWM4NjFhOGY5OWZhMTZmOTA1NDc2ZC4uOWQxN2ExYmNkMDZhNmFjMTExYTBhY2Fh
NjA3NjRmNmIxNTQwNTBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgKQEAgLTYzLDggKzYzLDggQEAgcHVi
bGljOgogICAgIGludDY0X3QgZGVmYXVsdE9yaWdpblF1b3RhKCkgY29uc3QgeyByZXR1cm4gbV9k
ZWZhdWx0T3JpZ2luUXVvdGE7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERlZmF1bHRP
cmlnaW5RdW90YShpbnQ2NF90IHF1b3RhKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhbGN1
bGF0ZVVzYWdlRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCYgdXNhZ2Up
OwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3Qg
U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90JiBxdW90YSk7Ci0gICAgYm9vbCBjYWxjdWxhdGVSZW1h
aW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUoY29uc3QgU2VjdXJpdHlPcmlnaW4qLCBB
cHBsaWNhdGlvbkNhY2hlKiwgaW50NjRfdCYgcmVtYWluaW5nU2l6ZSk7CisgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBjYWxjdWxhdGVRdW90YUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYs
IGludDY0X3QmIHF1b3RhKTsKKyAgICBib29sIGNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmln
aW5FeGNsdWRpbmdDYWNoZShjb25zdCBTZWN1cml0eU9yaWdpbiYsIEFwcGxpY2F0aW9uQ2FjaGUq
LCBpbnQ2NF90JiByZW1haW5pbmdTaXplKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHN0b3Jl
VXBkYXRlZFF1b3RhRm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCBxdW90
YSk7CiAgICAgYm9vbCBjaGVja09yaWdpblF1b3RhKEFwcGxpY2F0aW9uQ2FjaGVHcm91cCosIEFw
cGxpY2F0aW9uQ2FjaGUqIG9sZENhY2hlLCBBcHBsaWNhdGlvbkNhY2hlKiBuZXdDYWNoZSwgaW50
NjRfdCYgdG90YWxTcGFjZU5lZWRlZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwCmluZGV4IGE5MjFiMDVlODQ2YTA1YTVh
ZmNlNjMwM2FhMThmOGJmMzA3MDlkYjQuLjJjYTY3ZTI3YmU4ODQyY2M3YTIxN2RhYTkyNTVlODE4
ZWY5YTE5MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1s
L01IVE1MQXJjaGl2ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0
bWwvTUhUTUxBcmNoaXZlLmNwcApAQCAtMTMzLDggKzEzMyw4IEBAIFJlZlB0cjxNSFRNTEFyY2hp
dmU+IE1IVE1MQXJjaGl2ZTo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBTaGFyZWRCdWZmZXImIGRh
dGEpCiBSZWZQdHI8U2hhcmVkQnVmZmVyPiBNSFRNTEFyY2hpdmU6OmdlbmVyYXRlTUhUTUxEYXRh
KFBhZ2UqIHBhZ2UpCiB7CiAgICAgVmVjdG9yPFBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZT4gcmVz
b3VyY2VzOwotICAgIFBhZ2VTZXJpYWxpemVyIHBhZ2VTZXJpYWxpemVyKCZyZXNvdXJjZXMpOwot
ICAgIHBhZ2VTZXJpYWxpemVyLnNlcmlhbGl6ZShwYWdlKTsKKyAgICBQYWdlU2VyaWFsaXplciBw
YWdlU2VyaWFsaXplcihyZXNvdXJjZXMpOworICAgIHBhZ2VTZXJpYWxpemVyLnNlcmlhbGl6ZSgq
cGFnZSk7CiAKICAgICBTdHJpbmcgYm91bmRhcnkgPSBnZW5lcmF0ZVJhbmRvbUJvdW5kYXJ5KCk7
CiAgICAgU3RyaW5nIGVuZE9mUmVzb3VyY2VCb3VuZGFyeSA9IG1ha2VTdHJpbmcoIi0tIiwgYm91
bmRhcnksICJcclxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1M
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAKaW5k
ZXggZTE1MTc2ZDMzMTlkOTRjZTBiOWM5MWZiYmQ4ZWI3Mzc4MTk0Yzg2NC4uZTk3MTM5NjFjZTNi
NzQ4ODRhMWIzYmUzZTUwYTczOTA2MjNmODllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRo
TUxFbGVtZW50LmNwcApAQCAtMTgyLDcgKzE4Miw3IEBAIGJvb2wgTWF0aE1MRWxlbWVudDo6aXNL
ZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50JiBldmVudCkgY29uc3QKICAgICAgICAgcmV0
dXJuIFN0eWxlZEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpOwogCiAgICAgaWYg
KGlzTGluaygpKQotICAgICAgICByZXR1cm4gZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhhbmRs
ZXIoKS50YWJzVG9MaW5rcygmZXZlbnQpOworICAgICAgICByZXR1cm4gZG9jdW1lbnQoKS5mcmFt
ZSgpLT5ldmVudEhhbmRsZXIoKS50YWJzVG9MaW5rcyhldmVudCk7CiAKICAgICByZXR1cm4gU3R5
bGVkRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5jcHAKaW5kZXggNzRkZGUxYTM0ZTE1ZTkwOTcxYWQwODZlMjcwYjlhYTU2OTg4MjEwYi4uZTM2
M2Y0M2FkYzZmNWJjZTQ5MDg0NDA5NzUzNzQ2YWE4NjFlODRkZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
LmNwcApAQCAtNDgsNyArNDgsNiBAQAogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNp
bmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvVk0uaD4KLSNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtNjMsMTAgKzYyLDYgQEAgdXNpbmcgbmFtZXNwYWNl
IEhUTUxOYW1lczsKIENocm9tZTo6Q2hyb21lKFBhZ2UmIHBhZ2UsIENocm9tZUNsaWVudCYgY2xp
ZW50KQogICAgIDogbV9wYWdlKHBhZ2UpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCi0gICAgLCBt
X2Rpc3BsYXlJRCgwKQotI2lmIFBMQVRGT1JNKElPUykKLSAgICAsIG1faXNEaXNwYXRjaFZpZXdw
b3J0RGF0YURpZENoYW5nZVN1cHByZXNzZWQoZmFsc2UpCi0jZW5kaWYKIHsKIH0KIApAQCAtMTE0
LDYgKzEwOSw3IEBAIEludFJlY3QgQ2hyb21lOjpyb290Vmlld1RvU2NyZWVuKGNvbnN0IEludFJl
Y3QmIHJlY3QpIGNvbnN0CiB9CiAgICAgCiAjaWYgUExBVEZPUk0oSU9TKQorCiBJbnRQb2ludCBD
aHJvbWU6OmFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JiBwb2lu
dCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jbGllbnQuYWNjZXNzaWJpbGl0eVNjcmVlblRvUm9v
dFZpZXcocG9pbnQpOwpAQCAtMTIzLDYgKzExOSw3IEBAIEludFJlY3QgQ2hyb21lOjpyb290Vmll
d1RvQWNjZXNzaWJpbGl0eVNjcmVlbihjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAogewogICAg
IHJldHVybiBtX2NsaWVudC5yb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVlbihyZWN0KTsKIH0K
KwogI2VuZGlmCiAKIFBsYXRmb3JtUGFnZUNsaWVudCBDaHJvbWU6OnBsYXRmb3JtUGFnZUNsaWVu
dCgpIGNvbnN0CkBAIC0xMzAsNyArMTI3LDcgQEAgUGxhdGZvcm1QYWdlQ2xpZW50IENocm9tZTo6
cGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QKICAgICByZXR1cm4gbV9jbGllbnQucGxhdGZvcm1Q
YWdlQ2xpZW50KCk7CiB9CiAKLXZvaWQgQ2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1l
KiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKK3ZvaWQgQ2hyb21lOjpjb250ZW50
c1NpemVDaGFuZ2VkKEZyYW1lJiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKIHsK
ICAgICBtX2NsaWVudC5jb250ZW50c1NpemVDaGFuZ2VkKGZyYW1lLCBzaXplKTsKIH0KQEAgLTE5
MCwxNSArMTg3LDEzIEBAIHZvaWQgQ2hyb21lOjpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKiBm
cmFtZSkgY29uc3QKICAgICBtX2NsaWVudC5mb2N1c2VkRnJhbWVDaGFuZ2VkKGZyYW1lKTsKIH0K
IAotUGFnZSogQ2hyb21lOjpjcmVhdGVXaW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZUxv
YWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbikgY29uc3QKK1BhZ2UqIENocm9tZTo6Y3JlYXRlV2lu
ZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3Qg
V2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24p
IGNvbnN0CiB7CiAgICAgUGFnZSogbmV3UGFnZSA9IG1fY2xpZW50LmNyZWF0ZVdpbmRvdyhmcmFt
ZSwgcmVxdWVzdCwgZmVhdHVyZXMsIGFjdGlvbik7CiAgICAgaWYgKCFuZXdQYWdlKQotICAgICAg
ICByZXR1cm4gMDsKLQotICAgIGlmIChTdG9yYWdlTmFtZXNwYWNlKiBvbGRTZXNzaW9uU3RvcmFn
ZSA9IG1fcGFnZS5zZXNzaW9uU3RvcmFnZShmYWxzZSkpCisgICAgICAgIHJldHVybiBudWxscHRy
OworICAgIGlmIChhdXRvKiBvbGRTZXNzaW9uU3RvcmFnZSA9IG1fcGFnZS5zZXNzaW9uU3RvcmFn
ZShmYWxzZSkpCiAgICAgICAgIG5ld1BhZ2UtPnNldFNlc3Npb25TdG9yYWdlKG9sZFNlc3Npb25T
dG9yYWdlLT5jb3B5KG5ld1BhZ2UpKTsKLQogICAgIHJldHVybiBuZXdQYWdlOwogfQogCkBAIC0y
NzYsNyArMjcxLDcgQEAgYm9vbCBDaHJvbWU6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bCgpCiAgICAgcmV0dXJuIG1fY2xpZW50LmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgp
OwogfQogCi1ib29sIENocm9tZTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0
cmluZyYgbWVzc2FnZSwgRnJhbWUqIGZyYW1lKQorYm9vbCBDaHJvbWU6OnJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lJiBmcmFtZSkKIHsKICAg
ICAvLyBEZWZlciBsb2FkcyBpbiBjYXNlIHRoZSBjbGllbnQgbWV0aG9kIHJ1bnMgYSBuZXcgZXZl
bnQgbG9vcCB0aGF0IHdvdWxkCiAgICAgLy8gb3RoZXJ3aXNlIGNhdXNlIHRoZSBsb2FkIHRvIGNv
bnRpbnVlIHdoaWxlIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgZXhlY3V0aW5nIEphdmFTY3JpcHQu
CkBAIC0yOTAsNTMgKzI4NSw0NyBAQCB2b2lkIENocm9tZTo6Y2xvc2VXaW5kb3dTb29uKCkKICAg
ICBtX2NsaWVudC5jbG9zZVdpbmRvd1Nvb24oKTsKIH0KIAotdm9pZCBDaHJvbWU6OnJ1bkphdmFT
Y3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgQ2hy
b21lOjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UpCiB7CiAgICAgLy8gRGVmZXIgbG9hZHMgaW4gY2FzZSB0aGUgY2xpZW50IG1ldGhvZCBydW5z
IGEgbmV3IGV2ZW50IGxvb3AgdGhhdCB3b3VsZAogICAgIC8vIG90aGVyd2lzZSBjYXVzZSB0aGUg
bG9hZCB0byBjb250aW51ZSB3aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGV4ZWN1dGluZyBK
YXZhU2NyaXB0LgogICAgIFBhZ2VHcm91cExvYWREZWZlcnJlciBkZWZlcnJlcihtX3BhZ2UsIHRy
dWUpOwogCi0gICAgQVNTRVJUKGZyYW1lKTsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZl
cnMoKTsKLSAgICBTdHJpbmcgZGlzcGxheU1lc3NhZ2UgPSBmcmFtZS0+ZGlzcGxheVN0cmluZ01v
ZGlmaWVkQnlFbmNvZGluZyhtZXNzYWdlKTsKKyAgICBTdHJpbmcgZGlzcGxheU1lc3NhZ2UgPSBm
cmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKG1lc3NhZ2UpOwogCiAgICAgbV9j
bGllbnQucnVuSmF2YVNjcmlwdEFsZXJ0KGZyYW1lLCBkaXNwbGF5TWVzc2FnZSk7CiB9CiAKLWJv
b2wgQ2hyb21lOjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkKK2Jvb2wgQ2hyb21lOjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYgZnJh
bWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICAvLyBEZWZlciBsb2FkcyBpbiBjYXNl
IHRoZSBjbGllbnQgbWV0aG9kIHJ1bnMgYSBuZXcgZXZlbnQgbG9vcCB0aGF0IHdvdWxkCiAgICAg
Ly8gb3RoZXJ3aXNlIGNhdXNlIHRoZSBsb2FkIHRvIGNvbnRpbnVlIHdoaWxlIHdlJ3JlIGluIHRo
ZSBtaWRkbGUgb2YgZXhlY3V0aW5nIEphdmFTY3JpcHQuCiAgICAgUGFnZUdyb3VwTG9hZERlZmVy
cmVyIGRlZmVycmVyKG1fcGFnZSwgdHJ1ZSk7CiAKLSAgICBBU1NFUlQoZnJhbWUpOwogICAgIG5v
dGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpOwotICAgIFN0cmluZyBkaXNwbGF5TWVzc2FnZSA9
IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKG1lc3NhZ2UpOwotCi0gICAg
cmV0dXJuIG1fY2xpZW50LnJ1bkphdmFTY3JpcHRDb25maXJtKGZyYW1lLCBkaXNwbGF5TWVzc2Fn
ZSk7CisgICAgcmV0dXJuIG1fY2xpZW50LnJ1bkphdmFTY3JpcHRDb25maXJtKGZyYW1lLCBmcmFt
ZS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKG1lc3NhZ2UpKTsKIH0KIAotYm9vbCBD
aHJvbWU6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIHBy
b21wdCwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQorYm9vbCBD
aHJvbWU6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHBy
b21wdCwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQogewogICAg
IC8vIERlZmVyIGxvYWRzIGluIGNhc2UgdGhlIGNsaWVudCBtZXRob2QgcnVucyBhIG5ldyBldmVu
dCBsb29wIHRoYXQgd291bGQKICAgICAvLyBvdGhlcndpc2UgY2F1c2UgdGhlIGxvYWQgdG8gY29u
dGludWUgd2hpbGUgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBleGVjdXRpbmcgSmF2YVNjcmlwdC4K
ICAgICBQYWdlR3JvdXBMb2FkRGVmZXJyZXIgZGVmZXJyZXIobV9wYWdlLCB0cnVlKTsKIAotICAg
IEFTU0VSVChmcmFtZSk7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7Ci0gICAg
U3RyaW5nIGRpc3BsYXlQcm9tcHQgPSBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNv
ZGluZyhwcm9tcHQpOworICAgIFN0cmluZyBkaXNwbGF5UHJvbXB0ID0gZnJhbWUuZGlzcGxheVN0
cmluZ01vZGlmaWVkQnlFbmNvZGluZyhwcm9tcHQpOwogCi0gICAgYm9vbCBvayA9IG1fY2xpZW50
LnJ1bkphdmFTY3JpcHRQcm9tcHQoZnJhbWUsIGRpc3BsYXlQcm9tcHQsIGZyYW1lLT5kaXNwbGF5
U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKGRlZmF1bHRWYWx1ZSksIHJlc3VsdCk7CisgICAgYm9v
bCBvayA9IG1fY2xpZW50LnJ1bkphdmFTY3JpcHRQcm9tcHQoZnJhbWUsIGRpc3BsYXlQcm9tcHQs
IGZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcoZGVmYXVsdFZhbHVlKSwgcmVz
dWx0KTsKICAgICBpZiAob2spCi0gICAgICAgIHJlc3VsdCA9IGZyYW1lLT5kaXNwbGF5U3RyaW5n
TW9kaWZpZWRCeUVuY29kaW5nKHJlc3VsdCk7CisgICAgICAgIHJlc3VsdCA9IGZyYW1lLmRpc3Bs
YXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcocmVzdWx0KTsKIAogICAgIHJldHVybiBvazsKIH0K
IAotdm9pZCBDaHJvbWU6OnNldFN0YXR1c2JhclRleHQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJp
bmcmIHN0YXR1cykKK3ZvaWQgQ2hyb21lOjpzZXRTdGF0dXNiYXJUZXh0KEZyYW1lJiBmcmFtZSwg
Y29uc3QgU3RyaW5nJiBzdGF0dXMpCiB7Ci0gICAgQVNTRVJUKGZyYW1lKTsKLSAgICBtX2NsaWVu
dC5zZXRTdGF0dXNiYXJUZXh0KGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5n
KHN0YXR1cykpOworICAgIG1fY2xpZW50LnNldFN0YXR1c2JhclRleHQoZnJhbWUuZGlzcGxheVN0
cmluZ01vZGlmaWVkQnlFbmNvZGluZyhzdGF0dXMpKTsKIH0KIAogdm9pZCBDaHJvbWU6Om1vdXNl
RGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQg
bW9kaWZpZXJGbGFncykKQEAgLTQwNyw5ICszOTYsOSBAQCB2b2lkIENocm9tZTo6c2V0VG9vbFRp
cChjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQpCiAgICAgbV9jbGllbnQuc2V0VG9vbFRpcCh0
b29sVGlwLCB0b29sVGlwRGlyZWN0aW9uKTsKIH0KIAotdm9pZCBDaHJvbWU6OnByaW50KEZyYW1l
KiBmcmFtZSkKK3ZvaWQgQ2hyb21lOjpwcmludChGcmFtZSYgZnJhbWUpCiB7Ci0gICAgLy8gRklY
TUU6IFRoaXMgc2hvdWxkIGhhdmUgUGFnZUdyb3VwTG9hZERlZmVycmVyLCBsaWtlIHJ1bk1vZGFs
KCkgb3IgcnVuSmF2YVNjcmlwdEFsZXJ0KCksIGJlY2FzdWUgaXQncyBubyBkaWZmZXJlbnQgZnJv
bSB0aG9zZS4KKyAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgaGF2ZSBQYWdlR3JvdXBMb2FkRGVm
ZXJyZXIsIGxpa2UgcnVuTW9kYWwoKSBvciBydW5KYXZhU2NyaXB0QWxlcnQoKSwgYmVjYXVzZSBp
dCdzIG5vIGRpZmZlcmVudCBmcm9tIHRob3NlLgogICAgIG1fY2xpZW50LnByaW50KGZyYW1lKTsK
IH0KIApAQCAtNDI0LDExICs0MTMsMTMgQEAgdm9pZCBDaHJvbWU6OmRpc2FibGVTdWRkZW5UZXJt
aW5hdGlvbigpCiB9CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLXN0ZDo6dW5pcXVl
X3B0cjxDb2xvckNob29zZXI+IENocm9tZTo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3Nl
ckNsaWVudCogY2xpZW50LCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQorCitzdGQ6OnVuaXF1
ZV9wdHI8Q29sb3JDaG9vc2VyPiBDaHJvbWU6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29z
ZXJDbGllbnQmIGNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKIHsKICAgICBub3Rp
ZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKICAgICByZXR1cm4gbV9jbGllbnQuY3JlYXRlQ29s
b3JDaG9vc2VyKGNsaWVudCwgaW5pdGlhbENvbG9yKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgQ2hy
b21lOjpydW5PcGVuUGFuZWwoRnJhbWUmIGZyYW1lLCBGaWxlQ2hvb3NlciYgZmlsZUNob29zZXIp
CkBAIC01MzgsMTMgKzUyOSwxMyBAQCBib29sIENocm9tZTo6aGFzT3BlbmVkUG9wdXAoKSBjb25z
dAogICAgIHJldHVybiBtX2NsaWVudC5oYXNPcGVuZWRQb3B1cCgpOwogfQogCi1SZWZQdHI8UG9w
dXBNZW51PiBDaHJvbWU6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkg
Y29uc3QKK1JlZlB0cjxQb3B1cE1lbnU+IENocm9tZTo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVu
dUNsaWVudCYgY2xpZW50KSBjb25zdAogewogICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVy
cygpOwogICAgIHJldHVybiBtX2NsaWVudC5jcmVhdGVQb3B1cE1lbnUoY2xpZW50KTsKIH0KIAot
UmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJv
bWU6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QK
IHsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKICAgICByZXR1cm4gbV9jbGll
bnQuY3JlYXRlU2VhcmNoUG9wdXBNZW51KGNsaWVudCk7CkBAIC01NTUsMzAgKzU0NiwyNyBAQCBi
b29sIENocm9tZTo6cmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpCiAgICAgcmV0
dXJuIG1fY2xpZW50LnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKTsKIH0KIAot
I2lmIFBMQVRGT1JNKElPUykKLS8vIEZJWE1FOiBNYWtlIGFyZ3VtZW50LCBmcmFtZSwgYSByZWZl
cmVuY2UuCi12b2lkIENocm9tZTo6ZGlkUmVjZWl2ZURvY1R5cGUoRnJhbWUqIGZyYW1lKQordm9p
ZCBDaHJvbWU6OmRpZFJlY2VpdmVEb2NUeXBlKEZyYW1lJiBmcmFtZSkKIHsKLSAgICBBU1NFUlQo
ZnJhbWUpOwotICAgIGlmICghZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisjaWYgIVBMQVRGT1JNKElP
UykKKyAgICBVTlVTRURfUEFSQU0oZnJhbWUpOworI2Vsc2UKKyAgICBpZiAoIWZyYW1lLmlzTWFp
bkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgaGFzTW9iaWxlRG9jVHlwZSA9
IGZhbHNlOwotICAgIGlmIChEb2N1bWVudFR5cGUqIGRvY3VtZW50VHlwZSA9IGZyYW1lLT5kb2N1
bWVudCgpLT5kb2N0eXBlKCkpCi0gICAgICAgIGhhc01vYmlsZURvY1R5cGUgPSBkb2N1bWVudFR5
cGUtPnB1YmxpY0lkKCkuY29udGFpbnMoInhodG1sIG1vYmlsZSIsIGZhbHNlKTsKLSAgICBtX2Ns
aWVudC5kaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShoYXNNb2JpbGVEb2NUeXBlKTsKLX0KKyAgICBh
dXRvKiBkb2N0eXBlID0gZnJhbWUuZG9jdW1lbnQoKS0+ZG9jdHlwZSgpOworICAgIG1fY2xpZW50
LmRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGRvY3R5cGUgJiYgZG9jdHlwZS0+cHVibGljSWQoKS5j
b250YWluc0lnbm9yaW5nQVNDSUlDYXNlKCJ4aHRtbCBtb2JpbGUiKSk7CiAjZW5kaWYKK30KIAot
dm9pZCBDaHJvbWU6OnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2Jz
ZXJ2ZXIqIG9ic2VydmVyKQordm9pZCBDaHJvbWU6OnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2
ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIEFTU0VSVChvYnNlcnZl
cik7Ci0gICAgbV9wb3B1cE9wZW5pbmdPYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKKyAgICBt
X3BvcHVwT3BlbmluZ09ic2VydmVycy5hcHBlbmQoJm9ic2VydmVyKTsKIH0KIAotdm9pZCBDaHJv
bWU6OnVucmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciog
b2JzZXJ2ZXIpCit2b2lkIENocm9tZTo6dW5yZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBv
cHVwT3BlbmluZ09ic2VydmVyJiBvYnNlcnZlcikKIHsKLSAgICBib29sIHJlbW92ZWQgPSBtX3Bv
cHVwT3BlbmluZ09ic2VydmVycy5yZW1vdmVGaXJzdChvYnNlcnZlcik7CisgICAgYm9vbCByZW1v
dmVkID0gbV9wb3B1cE9wZW5pbmdPYnNlcnZlcnMucmVtb3ZlRmlyc3QoJm9ic2VydmVyKTsKICAg
ICBBU1NFUlRfVU5VU0VEKHJlbW92ZWQsIHJlbW92ZWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApp
bmRleCA2ZDI1YWM4OTE2MDBmMjE4NGE2NTRkYWQzMjI2ZDQ2YzgxOTMyYTY2Li5iM2M0NjQ3YzFh
ZTk1MDA1MjA3ODM0OWUwNzZhMjliMGU2YWRjNmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTk1
LDcgKzk1LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3Qg
SW50UmVjdCYpIGNvbnN0OwogCi0gICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwg
Y29uc3QgSW50U2l6ZSYpIGNvbnN0OworICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFt
ZSYsIGNvbnN0IEludFNpemUmKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0
V2luZG93UmVjdChjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBG
bG9hdFJlY3Qgd2luZG93UmVjdCgpIGNvbnN0OwpAQCAtMTExLDcgKzExMSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChFbGVtZW50KikgY29uc3Q7CiAgICAgdm9p
ZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKikgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29u
c3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikgY29uc3Q7CisgICAg
V0VCQ09SRV9FWFBPUlQgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lJiwgY29uc3QgRnJhbWVMb2Fk
UmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYp
IGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2hvdygpIGNvbnN0OwogCiAgICAgYm9v
bCBjYW5SdW5Nb2RhbCgpIGNvbnN0OwpAQCAtMTMyLDI2ICsxMzIsMjYgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpIGNvbnN0OwogCiAgICAgYm9vbCBjYW5SdW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWwoKTsKLSAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKik7CisgICAgYm9vbCBydW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSYpOwogCiAgICAgdm9p
ZCBjbG9zZVdpbmRvd1Nvb24oKTsKIAotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1l
KiwgY29uc3QgU3RyaW5nJik7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSos
IGNvbnN0IFN0cmluZyYpOwotICAgIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSosIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYg
cmVzdWx0KTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFN0YXR1c2JhclRleHQoRnJhbWUq
LCBjb25zdCBTdHJpbmcmKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYsIGNv
bnN0IFN0cmluZyYpOworICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmLCBjb25z
dCBTdHJpbmcmKTsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3Vs
dCk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KEZyYW1lJiwgY29u
c3QgU3RyaW5nJik7CiAKICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhp
dFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKIAogICAgIHZvaWQgc2V0VG9v
bFRpcChjb25zdCBIaXRUZXN0UmVzdWx0Jik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBy
aW50KEZyYW1lKik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcmludChGcmFtZSYpOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBlbmFibGVTdWRkZW5UZXJtaW5hdGlvbigpOwogICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAKICNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBj
cmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgQ29sb3ImIGluaXRp
YWxDb2xvcik7CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JD
aG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCYsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpOwog
I2VuZGlmCiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJik7CkBA
IC0xNjgsMjggKzE2OCwyOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0Rp
cmVjdGlvbklzTmF0dXJhbCgpOwogICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NN
ZW51V3JpdGluZ0RpcmVjdGlvbigpOwogICAgIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdDsK
LSAgICBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Kikg
Y29uc3Q7Ci0gICAgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51
KFBvcHVwTWVudUNsaWVudCopIGNvbnN0OworICAgIFJlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBv
cHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdDsKKyAgICBSZWZQdHI8U2VhcmNoUG9wdXBN
ZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JikgY29uc3Q7CiAKICNp
ZiBQTEFURk9STShJT1MpCiAgICAgLy8gRklYTUU6IENhbiB3ZSBjb21lIHVwIHdpdGggYSBiZXR0
ZXIgbmFtZSBmb3IgdGhpcyBzZXR0ZXI/CiAgICAgdm9pZCBzZXREaXNwYXRjaFZpZXdwb3J0RGF0
YURpZENoYW5nZVN1cHByZXNzZWQoYm9vbCBkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZVN1
cHByZXNzZWQpIHsgbV9pc0Rpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlU3VwcHJlc3NlZCA9
IGRpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlU3VwcHJlc3NlZDsgfQotCi0gICAgdm9pZCBk
aWRSZWNlaXZlRG9jVHlwZShGcmFtZSopOwogI2VuZGlmCiAKLSAgICB2b2lkIHJlZ2lzdGVyUG9w
dXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXIqKTsKLSAgICB2b2lkIHVucmVn
aXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciopOworICAgIHZv
aWQgZGlkUmVjZWl2ZURvY1R5cGUoRnJhbWUmKTsKKworICAgIHZvaWQgcmVnaXN0ZXJQb3B1cE9w
ZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciYpOworICAgIHZvaWQgdW5yZWdpc3Rl
clBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyJik7CiAKIHByaXZhdGU6
CiAgICAgdm9pZCBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKSBjb25zdDsKIAogICAgIFBh
Z2UmIG1fcGFnZTsKICAgICBDaHJvbWVDbGllbnQmIG1fY2xpZW50OwotICAgIFBsYXRmb3JtRGlz
cGxheUlEIG1fZGlzcGxheUlEOworICAgIFBsYXRmb3JtRGlzcGxheUlEIG1fZGlzcGxheUlEIHsg
MCB9OwogICAgIFZlY3RvcjxQb3B1cE9wZW5pbmdPYnNlcnZlcio+IG1fcG9wdXBPcGVuaW5nT2Jz
ZXJ2ZXJzOwogI2lmIFBMQVRGT1JNKElPUykKLSAgICBib29sIG1faXNEaXNwYXRjaFZpZXdwb3J0
RGF0YURpZENoYW5nZVN1cHByZXNzZWQ7CisgICAgYm9vbCBtX2lzRGlzcGF0Y2hWaWV3cG9ydERh
dGFEaWRDaGFuZ2VTdXBwcmVzc2VkIHsgZmFsc2UgfTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggMmM4OWI2Y2JhNTA2ODBiOTcyZGM1NWZjNGIyNGM0ODkw
ZmFlYjgyNC4uOGExNjM5MWZiYjg2YmNjYjc0ZmZlNWM0MWZmNWE1ODY2Y2U3ZWE2NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xMjMsNyArMTIzLDcgQEAgcHVibGljOgogICAg
IC8vIGNyZWF0ZWQgUGFnZSBoYXMgaXRzIHNob3cgbWV0aG9kIGNhbGxlZC4KICAgICAvLyBUaGUg
RnJhbWVMb2FkUmVxdWVzdCBwYXJhbWV0ZXIgaXMgb25seSBmb3IgQ2hyb21lQ2xpZW50IHRvIGNo
ZWNrIGlmIHRoZQogICAgIC8vIHJlcXVlc3QgY291bGQgYmUgZnVsZmlsbGVkLiBUaGUgQ2hyb21l
Q2xpZW50IHNob3VsZCBub3QgbG9hZCB0aGUgcmVxdWVzdC4KLSAgICB2aXJ0dWFsIFBhZ2UqIGNy
ZWF0ZVdpbmRvdyhGcmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dG
ZWF0dXJlcyYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSA9IDA7CisgICAgdmlydHVhbCBQYWdl
KiBjcmVhdGVXaW5kb3coRnJhbWUmLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2lu
ZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBzaG93KCkgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGNhblJ1bk1vZGFsKCkgPSAwOwpA
QCAtMTQ2LDYzICsxNDYsNjcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdl
VG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNz
YWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlSUQpID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwoKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENv
bmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKikgPSAwOworICAgIHZpcnR1
YWwgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBGcmFtZSYpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSA9IDA7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiwgY29uc3QgU3Ry
aW5nJikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSos
IGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21w
dChGcmFtZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFs
dWUsIFN0cmluZyYgcmVzdWx0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRB
bGVydChGcmFtZSYsIGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2
YVNjcmlwdENvbmZpcm0oRnJhbWUmLCBjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCBi
b29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNv
bnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFs
IEtleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgPSAwOwogCi0gICAgLy8gTWV0aG9kcyB1
c2VkIGJ5IEhvc3RXaW5kb3cuCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzSW1tZWRpYXRlSW52
YWxpZGF0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRh
dGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2
b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0Jiwg
Y29uc3QgSW50UmVjdCYpID0gMDsKKwogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAg
ICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50Jikg
PSAwOwogI2VuZGlmCisKICAgICB2aXJ0dWFsIEludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29u
c3QgSW50UG9pbnQmKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRSZWN0IHJvb3RWaWV3VG9T
Y3JlZW4oY29uc3QgSW50UmVjdCYpIGNvbnN0ID0gMDsKKwogI2lmIFBMQVRGT1JNKElPUykKICAg
ICB2aXJ0dWFsIEludFBvaW50IGFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IElu
dFBvaW50JikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgSW50UmVjdCByb290Vmlld1RvQWNjZXNz
aWJpbGl0eVNjcmVlbihjb25zdCBJbnRSZWN0JikgY29uc3QgPSAwOwogI2VuZGlmICAgIAorCiAg
ICAgdmlydHVhbCBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0ID0g
MDsKKwogI2lmIEVOQUJMRShDVVJTT1JfU1VQUE9SVCkKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vy
c29yKGNvbnN0IEN1cnNvciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVu
VW50aWxNb3VzZU1vdmVzKGJvb2wpID0gMDsKICNlbmRpZgorCiAjaWYgIVVTRShSRVFVRVNUX0FO
SU1BVElPTl9GUkFNRV9USU1FUikKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRpb24o
KSA9IDA7CiAjZW5kaWYKLSAgICAvLyBFbmQgbWV0aG9kcyB1c2VkIGJ5IEhvc3RXaW5kb3cuCiAK
LSAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29uc3QgeyByZXR1cm4gY29uc3Rf
Y2FzdDxDaHJvbWVDbGllbnQqPih0aGlzKS0+d2luZG93UmVjdCgpLnNpemUoKTsgfQotICAgIHZp
cnR1YWwgRmxvYXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemUoKSBjb25zdCB7IHJldHVybiBjb25z
dF9jYXN0PENocm9tZUNsaWVudCo+KHRoaXMpLT53aW5kb3dSZWN0KCkuc2l6ZSgpOyB9CisgICAg
dmlydHVhbCBGbG9hdFNpemUgc2NyZWVuU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8
Q2hyb21lQ2xpZW50Jj4oKnRoaXMpLndpbmRvd1JlY3QoKS5zaXplKCk7IH0KKyAgICB2aXJ0dWFs
IEZsb2F0U2l6ZSBhdmFpbGFibGVTY3JlZW5TaXplKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2Fz
dDxDaHJvbWVDbGllbnQmPigqdGhpcykud2luZG93UmVjdCgpLnNpemUoKTsgfQogCiAgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdw
b3J0QXJndW1lbnRzJikgY29uc3QgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXpl
Q2hhbmdlZChGcmFtZSosIGNvbnN0IEludFNpemUmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2
b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNv
bnN0IHsgfTsgLy8gQ3VycmVudGx5IG9ubHkgTWFjIGhhcyBhIG5vbiBlbXB0eSBpbXBsZW1lbnRh
dGlvbi4KIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VC
ZUJ1dHRvbihSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24p
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1
Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50KiwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVu
YXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdW5hdmFpbGFi
bGVQbHVnaW5CdXR0b25DbGlja2VkKEVsZW1lbnQmLCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1
Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb3Vz
ZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZp
ZXJGbGFncykgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5n
JiwgVGV4dERpcmVjdGlvbikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHByaW50KEZyYW1lKikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBwcmludChGcmFtZSYpID0gMDsKIAogICAgIHZpcnR1YWwg
Q29sb3IgdW5kZXJsYXlDb2xvcigpIGNvbnN0IHsgcmV0dXJuIENvbG9yKCk7IH0KIAogICAgIHZp
cnR1YWwgdm9pZCBwYWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3JEaWRDaGFuZ2UoQ29sb3IpIGNv
bnN0IHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSos
IGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lJiwgY29uc3QgU3RyaW5nJiBk
YXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscykgPSAwOwogCiAgICAgLy8gQ2FsbGJhY2sgaW52
b2tlZCB3aGVuIHRoZSBhcHBsaWNhdGlvbiBjYWNoZSBmYWlscyB0byBzYXZlIGEgY2FjaGUgb2Jq
ZWN0CiAgICAgLy8gYmVjYXVzZSBzdG9yaW5nIGl0IHdvdWxkIGdyb3cgdGhlIGRhdGFiYXNlIGZp
bGUgcGFzdCBpdHMgZGVmaW5lZCBtYXhpbXVtCkBAIC0yMTksNyArMjIzLDcgQEAgcHVibGljOgog
ICAgIC8vIHN0b3JhZ2UsIGluIGJ5dGVzLCBuZWVkZWQgdG8gc3RvcmUgdGhlIG5ldyBjYWNoZSBh
bG9uZyB3aXRoIGFsbCBvZiB0aGUKICAgICAvLyBvdGhlciBleGlzdGluZyBjYWNoZXMgZm9yIHRo
ZSBvcmlnaW4gdGhhdCB3b3VsZCBub3QgYmUgcmVwbGFjZWQgYnkKICAgICAvLyB0aGUgbmV3IGNh
Y2hlLgotICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmln
aW4mLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpID0gMDsKIAogI2lmIEVOQUJMRShEQVNIQk9B
UkRfU1VQUE9SVCkKICAgICB2aXJ0dWFsIHZvaWQgYW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKTsK
QEAgLTIzNiwxMCArMjQwLDEwIEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoYm9vbCkgPSAwOwotICAgIHZpcnR1
YWwgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoRnJhbWUqLCBib29sKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShGcmFtZSopID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKEZyYW1lKikgPSAwOwotICAg
IHZpcnR1YWwgdm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoRnJh
bWUqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhG
cmFtZSYsIGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb2JzZXJ2ZWRDb250ZW50Q2hhbmdl
KEZyYW1lJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZl
cnMoRnJhbWUmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0aW9u
QnlTY3JvbGxpbmdGcmFtZShGcmFtZSYpID0gMDsKIAogICAgIGVudW0gTGF5b3V0VHlwZSB7IE5v
cm1hbExheW91dCwgU2Nyb2xsIH07CiAgICAgdmlydHVhbCB2b2lkIGRpZExheW91dChMYXlvdXRU
eXBlID0gTm9ybWFsTGF5b3V0KSA9IDA7CkBAIC0yNzAsMTYgKzI3NCwxNiBAQCBwdWJsaWM6CiAj
ZW5kaWYKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHZpcnR1YWwgc3RkOjp1
bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNs
aWVudCosIGNvbnN0IENvbG9yJikgPSAwOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPENv
bG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCYsIGNvbnN0
IENvbG9yJikgPSAwOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZy
YW1lJiwgRmlsZUNob29zZXImKSA9IDA7CiAgICAgLy8gQXN5bmNocm9ub3VzIHJlcXVlc3QgdG8g
bG9hZCBhbiBpY29uIGZvciBzcGVjaWZpZWQgZmlsZW5hbWVzLgogICAgIHZpcnR1YWwgdm9pZCBs
b2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXImKSA9
IDA7CiAgICAgICAgIAotICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgTm9k
ZSopIHsgfTsKLSAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9kZSopIHsg
fTsKLSAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZFJlZm9jdXMoY29uc3QgTm9kZSopIHsgfTsK
KyAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEZvY3VzKEVsZW1lbnQmKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgZWxlbWVudERpZEJsdXIoRWxlbWVudCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBl
bGVtZW50RGlkUmVmb2N1cyhFbGVtZW50JikgeyB9CiAgICAgCiAgICAgdmlydHVhbCBib29sIHNo
b3VsZFBhaW50RW50aXJlQ29udGVudHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZp
cnR1YWwgYm9vbCBoYXNTdGFibGVQYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiB0cnVl
OyB9CkBAIC0yOTEsOSArMjk1LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVmUHRyPERpc3Bs
YXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlz
cGxheUlEKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKIAotICAgIC8vIFBhc3Mg
MCBhcyB0aGUgR3JhcGhpY3NMYXllciB0byBkZXRhdGNoIHRoZSByb290IGxheWVyLgotICAgIHZp
cnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIq
KSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihG
cmFtZSosIEdyYXBoaWNzTGF5ZXIqKSA9IDA7CisgICAgLy8gUGFzcyBudWxscHRyIGFzIHRoZSBH
cmFwaGljc0xheWVyIHRvIGRldGF0Y2ggdGhlIHJvb3QgbGF5ZXIuCisgICAgdmlydHVhbCB2b2lk
IGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lJiwgR3Jh
cGhpY3NMYXllciopID0gMDsKICAgICAvLyBTZXRzIGEgZmxhZyB0byBzcGVjaWZ5IHRoYXQgdGhl
IG5leHQgdGltZSBjb250ZW50IGlzIGRyYXduIHRvIHRoZSB3aW5kb3csCiAgICAgLy8gdGhlIGNo
YW5nZXMgYXBwZWFyIG9uIHRoZSBzY3JlZW4gaW4gc3luY2hyb255IHdpdGggdXBkYXRlcyB0byBH
cmFwaGljc0xheWVycy4KICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5
bmNocm9uaXphdGlvbigpID0gMDsKQEAgLTMyNSwyNiArMzI5LDI4IEBAIHB1YmxpYzoKIAogICAg
IHZpcnR1YWwgYm9vbCBhZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhMYXllckZsdXNoVGhyb3R0
bGVTdGF0ZTo6RmxhZ3MpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2Uq
KSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBSZWZQdHI8U2Nyb2xsaW5n
Q29vcmRpbmF0b3I+IGNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UmKSBjb25zdCB7IHJl
dHVybiBudWxscHRyOyB9CiAKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShBVkZPVU5EQVRJT04p
Ci0gICAgdmlydHVhbCBHcmFwaGljc0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2aWNlQWRhcHRl
cigpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIEdyYXBoaWNzRGV2aWNlQWRhcHRl
ciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2Vu
ZGlmCiAKICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oSFRNTE1lZGlh
RWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSB7IHJldHVybiBmYWxzZTsgfQorCiAj
aWYgRU5BQkxFKFZJREVPKQogICAgIHZpcnR1YWwgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZv
clZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VXBQbGF5YmFja0Nv
bnRyb2xzTWFuYWdlcihIVE1MTWVkaWFFbGVtZW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNs
ZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIoKSB7IH0KICNlbmRpZgotICAgIHZpcnR1YWwgdm9p
ZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0Vs
ZW1lbnQmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdp
dGhvdXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIEhUTUxNZWRpYUVsZW1l
bnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSAvKnRhcmdldE1vZGUqLykgeyB9CisKKyAgICB2
aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9F
bGVtZW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVX
aXRob3V0QW5pbWF0aW9uKEhUTUxWaWRlb0VsZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGUpIHsgfQogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0Z1bGxz
Y3JlZW5Gb3JWaWRlb1BsYXliYWNrKCkgeyByZXR1cm4gZmFsc2U7IH0gCiAKICNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVs
ZW1lbnQoY29uc3QgRWxlbWVudCosIGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVh
bCB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopIHsgfQotICAgIHZpcnR1
YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopIHsgfQorICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmLCBib29s
KSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JF
bGVtZW50KEVsZW1lbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JF
bGVtZW50KEVsZW1lbnQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdEZ1bGxTY3JlZW5M
YXllcihHcmFwaGljc0xheWVyKikgeyB9CiAjZW5kaWYKIApAQCAtMzUzLDcgKzM1OSw3IEBAIHB1
YmxpYzoKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdmlydHVhbCBOU1Jlc3Bv
bmRlciAqZmlyc3RSZXNwb25kZXIoKSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBOU1Jlc3Bv
bmRlciAqZmlyc3RSZXNwb25kZXIoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2
b2lkIG1ha2VGaXJzdFJlc3BvbmRlcihOU1Jlc3BvbmRlciAqKSB7IH0KICAgICAvLyBGb2N1c2Vz
IG9uIHRoZSBjb250YWluaW5nIHZpZXcgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcGFnZS4KICAgICB2
aXJ0dWFsIHZvaWQgbWFrZUZpcnN0UmVzcG9uZGVyKCkgeyB9CkBAIC0zNzcsMTAgKzM4MywxMCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVu
dVdyaXRpbmdEaXJlY3Rpb24oKSA9IDA7CiAgICAgLy8gQ2hlY2tzIGlmIHRoZXJlIGlzIGFuIG9w
ZW5lZCBwb3B1cCwgY2FsbGVkIGJ5IFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKS4KICAgICB2
aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBSZWZQ
dHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgPSAw
OwotICAgIHZpcnR1YWwgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBN
ZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxQb3B1
cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdCA9IDA7CisgICAg
dmlydHVhbCBSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50JikgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHBvc3RBY2Nlc3Np
YmlsaXR5Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE9iamVjdENhY2hlOjpB
WE5vdGlmaWNhdGlvbikgeyB9CisgICAgdmlydHVhbCB2b2lkIHBvc3RBY2Nlc3NpYmlsaXR5Tm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QmLCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNh
dGlvbikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJs
ZUluUmVjdChjb25zdCBJbnRSZWN0JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlY29tbWVuZGVk
U2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UoU2Nyb2xsYmFyU3R5bGUpIHsgfQpAQCAtNDA4LDE2ICs0
MTQsMTYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJv
bHMoY29uc3QgVmVjdG9yPFJlZlB0cjxFbGVtZW50Pj4mKSB7IH07CiAgICAgdmlydHVhbCBib29s
IHNob3VsZE5vdGlmeU9uRm9ybUNoYW5nZXMoKSB7IHJldHVybiBmYWxzZTsgfTsKIAotICAgIHZp
cnR1YWwgdm9pZCBkaWRBZGRIZWFkZXJMYXllcihHcmFwaGljc0xheWVyKikgeyB9Ci0gICAgdmly
dHVhbCB2b2lkIGRpZEFkZEZvb3RlckxheWVyKEdyYXBoaWNzTGF5ZXIqKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgZGlkQWRkSGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXllciYpIHsgfQorICAgIHZpcnR1
YWwgdm9pZCBkaWRBZGRGb290ZXJMYXllcihHcmFwaGljc0xheWVyJikgeyB9CiAKLSAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmll
dyopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZFVzZVRp
bGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcmKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncywgdWludDY0X3QpIHsgfQogCiAjaWYgRU5BQkxFKE1F
RElBX1NFU1NJT04pCiAgICAgdmlydHVhbCB2b2lkIGhhc01lZGlhU2Vzc2lvbldpdGhBY3RpdmVN
ZWRpYUVsZW1lbnRzRGlkQ2hhbmdlKGJvb2wpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBtZWRpYVNl
c3Npb25NZXRhZGF0YURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpNZWRpYVNlc3Npb25NZXRhZGF0
YSYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZShj
b25zdCBNZWRpYVNlc3Npb25NZXRhZGF0YSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBmb2N1c2Vk
Q29udGVudE1lZGlhRWxlbWVudERpZENoYW5nZSh1aW50NjRfdCkgeyB9CiAjZW5kaWYKIApAQCAt
NDI3LDExICs0MzMsMTIgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoVEVMRVBIT05F
X05VTUJFUl9ERVRFQ1RJT04pICYmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIHZvaWQgaGFu
ZGxlVGVsZXBob25lTnVtYmVyQ2xpY2soY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlVGVsZXBob25lTnVtYmVyQ2xpY2so
Y29uc3QgU3RyaW5nJiwgY29uc3QgSW50UG9pbnQmKSB7IH0KICNlbmRpZgorCiAjaWYgRU5BQkxF
KFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZVNlbGVjdGlvblNlcnZp
Y2VDbGljayhXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+Jiwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsZXZh
bnRTZWxlY3Rpb25TZXJ2aWNlcyhib29sIC8qIGlzVGV4dE9ubHkgKi8pIGNvbnN0IHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhG
cmFtZVNlbGVjdGlvbiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgSW50UG9pbnQmKSB7
IH0KKyAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcyhib29sIC8q
aXNUZXh0T25seSovKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkRGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKCkgY29uc3QgeyByZXR1
cm4gdHJ1ZTsgfQpAQCAtNDQxLDEzICs0NDgsMTMgQEAgcHVibGljOgogI2lmIEVOQUJMRShXSVJF
TEVTU19QTEFZQkFDS19UQVJHRVQpCiAgICAgdmlydHVhbCB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0
UGlja2VyQ2xpZW50KHVpbnQ2NF90IC8qY29udGV4dElkKi8pIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCAvKmNvbnRleHRJZCov
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90
IC8qY29udGV4dElkKi8sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCAvKiBpc1ZpZGVv
ICovKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2
NF90IC8qY29udGV4dElkKi8sIGNvbnN0IEludFBvaW50JiwgYm9vbCAvKmlzVmlkZW8qLykgeyB9
CiAgICAgdmlydHVhbCB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFu
Z2UodWludDY0X3QgLypjb250ZXh0SWQqLywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdz
KSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJF
bmFibGVkKGJvb2wpICB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tU
YXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFy
Z2V0Q29udGV4dDo6U3RhdGUpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5
YmFja1RhcmdldFBpY2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIE1lZGlhUGxheWJhY2tUYXJnZXRD
b250ZXh0OjpTdGF0ZSkgeyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBpbWFnZU9yTWVk
aWFEb2N1bWVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZChjb25zdCBJbnRTaXpl
JikgeyB9CiAKICNpZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpCiAgICAgdmlydHVh
bCB2b2lkIHJlcXVlc3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyhjb25zdCBTdHJpbmcmIC8q
ZGV0YWlscyovLCBjb25zdCBTdHJpbmcmIC8qZGVzY3JpcHRpb24qLywgTWVkaWFQbGF5ZXJSZXF1
ZXN0SW5zdGFsbE1pc3NpbmdQbHVnaW5zQ2FsbGJhY2smKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCAwZTdhNzdiNmRhMjg5YTAyNTY5
MzUzNGFkMWZjNGQ1MTA5YzUwZjMzLi5jMWM0OTQ4NDAyODM4NDlmMTUyYmIyNzQ1ZjhhMWI0NjA2
ZWVkM2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIu
Y3BwCkBAIC05NCw3ICs5NCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjbGVhckNv
bnRleHRNZW51KCkKICAgICBtX21lbnVQcm92aWRlciA9IG51bGxwdHI7CiB9CiAKLXZvaWQgQ29u
dGV4dE1lbnVDb250cm9sbGVyOjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KEV2ZW50KiBldmVudCkK
K3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KEV2ZW50
JiBldmVudCkKIHsKICAgICBtX2NvbnRleHRNZW51ID0gbWF5YmVDcmVhdGVDb250ZXh0TWVudShl
dmVudCk7CiAgICAgaWYgKCFtX2NvbnRleHRNZW51KQpAQCAtMTEwLDkgKzExMCw5IEBAIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnVJdGVtPiBzZXBhcmF0b3JJdGVtKCkKICAgICBy
ZXR1cm4gc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51SXRlbT4obmV3IENvbnRleHRNZW51SXRl
bShTZXBhcmF0b3JUeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdOb0FjdGlvbiwgU3RyaW5nKCkpKTsK
IH0KIAotdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCog
ZXZlbnQsIFBhc3NSZWZQdHI8Q29udGV4dE1lbnVQcm92aWRlcj4gbWVudVByb3ZpZGVyKQordm9p
ZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCYgZXZlbnQsIENv
bnRleHRNZW51UHJvdmlkZXImIHByb3ZpZGVyKQogewotICAgIG1fbWVudVByb3ZpZGVyID0gbWVu
dVByb3ZpZGVyOworICAgIG1fbWVudVByb3ZpZGVyID0gJnByb3ZpZGVyOwogCiAgICAgbV9jb250
ZXh0TWVudSA9IG1heWJlQ3JlYXRlQ29udGV4dE1lbnUoZXZlbnQpOwogICAgIGlmICghbV9jb250
ZXh0TWVudSkgewpAQCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVy
OjpzaG93Q29udGV4dE1lbnUoRXZlbnQqIGV2ZW50LCBQYXNzUmVmUHRyPENvbnRleHRNZW51CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX21lbnVQcm92aWRlci0+cG9wdWxhdGVDb250
ZXh0TWVudShtX2NvbnRleHRNZW51LmdldCgpKTsKKyAgICBwcm92aWRlci5wb3B1bGF0ZUNvbnRl
eHRNZW51KG1fY29udGV4dE1lbnUuZ2V0KCkpOwogICAgIGlmIChtX2NvbnRleHQuaGl0VGVzdFJl
c3VsdCgpLmlzU2VsZWN0ZWQoKSkgewogICAgICAgICBhcHBlbmRJdGVtKCpzZXBhcmF0b3JJdGVt
KCksIG1fY29udGV4dE1lbnUuZ2V0KCkpOwogICAgICAgICBwb3B1bGF0ZSgpOwpAQCAtMTI5LDMz
ICsxMjksMzQgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShF
dmVudCogZXZlbnQsIFBhc3NSZWZQdHI8Q29udGV4dE1lbnUKIH0KIAogI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQorCiBzdGF0aWMgSW1hZ2UqIGltYWdlRnJvbUltYWdlRWxlbWVudE5vZGUo
Tm9kZSYgbm9kZSkKIHsKLSAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbm9kZS5yZW5kZXJl
cigpOworICAgIGF1dG8qIHJlbmRlcmVyID0gbm9kZS5yZW5kZXJlcigpOwogICAgIGlmICghaXM8
UmVuZGVySW1hZ2U+KHJlbmRlcmVyKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgQ2Fj
aGVkSW1hZ2UqIGltYWdlID0gZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlcikuY2FjaGVk
SW1hZ2UoKTsKKyAgICBhdXRvKiBpbWFnZSA9IGRvd25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVy
ZXIpLmNhY2hlZEltYWdlKCk7CiAgICAgaWYgKCFpbWFnZSB8fCBpbWFnZS0+ZXJyb3JPY2N1cnJl
ZCgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgIHJldHVybiBpbWFnZS0+aW1hZ2VG
b3JSZW5kZXJlcihyZW5kZXJlcik7CiB9CisKICNlbmRpZgogCi1zdGQ6OnVuaXF1ZV9wdHI8Q29u
dGV4dE1lbnU+IENvbnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudShF
dmVudCogZXZlbnQpCitzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IENvbnRleHRNZW51Q29u
dHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudCYgZXZlbnQpCiB7Ci0gICAgQVNT
RVJUKGV2ZW50KTsKLSAgICAKLSAgICBpZiAoIWlzPE1vdXNlRXZlbnQ+KCpldmVudCkpCisgICAg
aWYgKCFpczxNb3VzZUV2ZW50PihldmVudCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0g
ICAgTW91c2VFdmVudCYgbW91c2VFdmVudCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+KCpldmVudCk7
Ci0gICAgSGl0VGVzdFJlc3VsdCByZXN1bHQobW91c2VFdmVudC5hYnNvbHV0ZUxvY2F0aW9uKCkp
OworICAgIGF1dG8mIG1vdXNlRXZlbnQgPSBkb3duY2FzdDxNb3VzZUV2ZW50PihldmVudCk7Cisg
ICAgYXV0byogbm9kZSA9IG1vdXNlRXZlbnQudGFyZ2V0KCktPnRvTm9kZSgpOworICAgIGlmICgh
bm9kZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgYXV0byogZnJhbWUgPSBub2RlLT5k
b2N1bWVudCgpLmZyYW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKLSAgICBOb2RlKiBub2RlID0gZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKTsKLSAgICBp
ZiAoRnJhbWUqIGZyYW1lID0gbm9kZS0+ZG9jdW1lbnQoKS5mcmFtZSgpKQotICAgICAgICByZXN1
bHQgPSBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQobW91c2VFdmVu
dC5hYnNvbHV0ZUxvY2F0aW9uKCkpOwotICAgIAorICAgIGF1dG8gcmVzdWx0ID0gZnJhbWUtPmV2
ZW50SGFuZGxlcigpLmhpdFRlc3RSZXN1bHRBdFBvaW50KG1vdXNlRXZlbnQuYWJzb2x1dGVMb2Nh
dGlvbigpKTsKICAgICBpZiAoIXJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSkKICAgICAgICAg
cmV0dXJuIG51bGxwdHI7CiAKQEAgLTE2Myw3ICsxNjQsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q29u
dGV4dE1lbnU+IENvbnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudShF
dmVudAogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgaWYgKG5vZGUtPmlzSW1h
Z2VDb250cm9sc0J1dHRvbkVsZW1lbnQoKSkgewotICAgICAgICBpZiAoSW1hZ2UqIGltYWdlID0g
aW1hZ2VGcm9tSW1hZ2VFbGVtZW50Tm9kZSgqcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKSkK
KyAgICAgICAgaWYgKGF1dG8qIGltYWdlID0gaW1hZ2VGcm9tSW1hZ2VFbGVtZW50Tm9kZSgqcmVz
dWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKSkKICAgICAgICAgICAgIG1fY29udGV4dC5zZXRDb250
cm9sbGVkSW1hZ2UoaW1hZ2UpOwogCiAgICAgICAgIC8vIEZJWE1FOiBJZiB3ZSBjb3VsZG4ndCBn
ZXQgdGhlIGltYWdlIHRoZW4gd2Ugc2hvdWxkbid0IHRyeSB0byBzaG93IHRoZSBpbWFnZSBjb250
cm9scyBtZW51IGZvciBpdC4KQEAgLTE3MSwyNCArMTcyLDI0IEBAIHN0ZDo6dW5pcXVlX3B0cjxD
b250ZXh0TWVudT4gQ29udGV4dE1lbnVDb250cm9sbGVyOjptYXliZUNyZWF0ZUNvbnRleHRNZW51
KEV2ZW50CiAgICAgfQogI2VuZGlmCiAKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPENvbnRl
eHRNZW51PihuZXcgQ29udGV4dE1lbnUpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENv
bnRleHRNZW51PigpOwogfQogCi12b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRl
eHRNZW51KEV2ZW50KiBldmVudCkKK3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29u
dGV4dE1lbnUoRXZlbnQmIGV2ZW50KQogewogICAgIGlmIChtX3BhZ2UuaW5zcGVjdG9yQ29udHJv
bGxlcigpLmVuYWJsZWQoKSkKICAgICAgICAgYWRkSW5zcGVjdEVsZW1lbnRJdGVtKCk7CiAKLSAg
ICBldmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICBldmVudC5zZXREZWZhdWx0SGFuZGxl
ZCgpOwogfQogCi1zdGF0aWMgdm9pZCBvcGVuTmV3V2luZG93KGNvbnN0IFVSTCYgdXJsVG9Mb2Fk
LCBGcmFtZSogZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSkKK3N0YXRpYyB2b2lkIG9wZW5OZXdXaW5kb3coY29uc3QgVVJMJiB1
cmxUb0xvYWQsIEZyYW1lJiBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KQogewotICAgIFBhZ2UqIG9sZFBhZ2UgPSBmcmFtZS0+
cGFnZSgpOworICAgIFBhZ2UqIG9sZFBhZ2UgPSBmcmFtZS5wYWdlKCk7CiAgICAgaWYgKCFvbGRQ
YWdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QoZnJh
bWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCh1cmxUb0xv
YWQsIGZyYW1lLT5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpLCBMb2NrSGlzdG9yeTo6Tm8s
IExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0
aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcywgc2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0
KGZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCh1cmxU
b0xvYWQsIGZyYW1lLmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSksIExvY2tIaXN0b3J5OjpO
bywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmln
YXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzLCBz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKIAogICAgIFBhZ2UqIG5ld1BhZ2UgPSBvbGRQ
YWdlLT5jaHJvbWUoKS5jcmVhdGVXaW5kb3coZnJhbWUsIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVz
KCksIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSkpOwogICAgIGlm
ICghbmV3UGFnZSkKQEAgLTE5OCwxNSArMTk5LDE3IEBAIHN0YXRpYyB2b2lkIG9wZW5OZXdXaW5k
b3coY29uc3QgVVJMJiB1cmxUb0xvYWQsIEZyYW1lKiBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFs
CiB9CiAKICNpZiBQTEFURk9STShHVEspCi1zdGF0aWMgdm9pZCBpbnNlcnRVbmljb2RlQ2hhcmFj
dGVyKFVDaGFyIGNoYXJhY3RlciwgRnJhbWUqIGZyYW1lKQorCitzdGF0aWMgdm9pZCBpbnNlcnRV
bmljb2RlQ2hhcmFjdGVyKFVDaGFyIGNoYXJhY3RlciwgRnJhbWUmIGZyYW1lKQogewogICAgIFN0
cmluZyB0ZXh0KCZjaGFyYWN0ZXIsIDEpOwotICAgIGlmICghZnJhbWUtPmVkaXRvcigpLnNob3Vs
ZEluc2VydFRleHQodGV4dCwgZnJhbWUtPnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCku
Z2V0KCksIEVkaXRvckluc2VydEFjdGlvbjo6VHlwZWQpKQorICAgIGlmICghZnJhbWUuZWRpdG9y
KCkuc2hvdWxkSW5zZXJ0VGV4dCh0ZXh0LCBmcmFtZS5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRS
YW5nZSgpLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OlR5cGVkKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgQVNTRVJUKGZyYW1lLT5kb2N1bWVudCgpKTsKLSAgICBUeXBpbmdDb21tYW5kOjpp
bnNlcnRUZXh0KCpmcmFtZS0+ZG9jdW1lbnQoKSwgdGV4dCwgMCwgVHlwaW5nQ29tbWFuZDo6VGV4
dENvbXBvc2l0aW9uTm9uZSk7CisgICAgQVNTRVJUKGZyYW1lLmRvY3VtZW50KCkpOworICAgIFR5
cGluZ0NvbW1hbmQ6Omluc2VydFRleHQoKmZyYW1lLmRvY3VtZW50KCksIHRleHQsIDAsIFR5cGlu
Z0NvbW1hbmQ6OlRleHRDb21wb3NpdGlvbk5vbmUpOwogfQorCiAjZW5kaWYKIAogdm9pZCBDb250
ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0
aW9uIGFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSkKQEAgLTIyNSw3ICsyMjgsNyBAQCB2b2lk
IENvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1l
bnVBY3Rpb24gYWN0aW9uLCBjbwogCiAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3c6Ci0gICAgICAgIG9wZW5OZXdXaW5k
b3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgZnJhbWUsIFNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93RXh0ZXJuYWxTY2hlbWVzKTsK
KyAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRl
TGlua1VSTCgpLCAqZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFs
bG93RXh0ZXJuYWxTY2hlbWVzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIGRheSB3
ZSBzaG91bGQgYmUgYWJsZSB0byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUuIChCdWcgMTE3
NzA5KQpAQCAtMjM1LDcgKzIzOCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250
ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgICAg
IGZyYW1lLT5lZGl0b3IoKS5jb3B5VVJMKG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1
dGVMaW5rVVJMKCksIG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkudGV4dENvbnRlbnQoKSk7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdX
aW5kb3c6Ci0gICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5h
YnNvbHV0ZUltYWdlVVJMKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpT
aG91bGROb3RBbGxvdyk7CisgICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RS
ZXN1bHQoKS5hYnNvbHV0ZUltYWdlVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRl
eHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBTb21l
IGRheSB3ZSBzaG91bGQgYmUgYWJsZSB0byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUuIChC
dWcgMTE3NzA5KQpAQCAtMjUyLDcgKzI1NSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVy
Ojpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAg
ICAgICAgIGJyZWFrOwogI2VuZGlmCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVk
aWFJbk5ld1dpbmRvdzoKLSAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJl
c3VsdCgpLmFic29sdXRlTWVkaWFVUkwoKSwgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQu
aGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTWVkaWFVUkwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRNZWRpYVRvRGlzazoKICAgICAgICAgLy8gRklY
TUU6IFNvbWUgZGF5IHdlIHNob3VsZCBiZSBhYmxlIHRvIGRvIHRoaXMgZnJvbSB3aXRoaW4gV2Vi
Q29yZS4gKEJ1ZyAxMTc3MDkpCkBAIC0yODUsOSArMjg4LDkgQEAgdm9pZCBDb250ZXh0TWVudUNv
bnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlv
biwgY28KICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93OiB7
CiAgICAgICAgIERvY3VtZW50TG9hZGVyKiBsb2FkZXIgPSBmcmFtZS0+bG9hZGVyKCkuZG9jdW1l
bnRMb2FkZXIoKTsKICAgICAgICAgaWYgKCFsb2FkZXItPnVucmVhY2hhYmxlVVJMKCkuaXNFbXB0
eSgpKQotICAgICAgICAgICAgb3Blbk5ld1dpbmRvdyhsb2FkZXItPnVucmVhY2hhYmxlVVJMKCks
IGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7Cisg
ICAgICAgICAgICBvcGVuTmV3V2luZG93KGxvYWRlci0+dW5yZWFjaGFibGVVUkwoKSwgKmZyYW1l
LCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgICAg
IGVsc2UKLSAgICAgICAgICAgIG9wZW5OZXdXaW5kb3cobG9hZGVyLT51cmwoKSwgZnJhbWUsIFNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICAgICAgICAg
IG9wZW5OZXdXaW5kb3cobG9hZGVyLT51cmwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHk6CkBAIC0zMTgsMzQgKzMyMSwzNCBAQCB2b2lkIENv
bnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVB
Y3Rpb24gYWN0aW9uLCBjbwogICAgICAgICBmcmFtZS0+ZWRpdG9yKCkucGVyZm9ybURlbGV0ZSgp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNl
cnRMUk1NYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0TWFy
aywgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0TWFy
aywgKmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdV
bmljb2RlSW5zZXJ0UkxNTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdo
dFRvTGVmdE1hcmssIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdo
dFRvTGVmdE1hcmssICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnVW5pY29kZUluc2VydExSRU1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFy
YWN0ZXIobGVmdFRvUmlnaHRFbWJlZCwgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hh
cmFjdGVyKGxlZnRUb1JpZ2h0RW1iZWQsICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydFJMRU1hcms6Ci0gICAgICAgIGluc2Vy
dFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRFbWJlZCwgZnJhbWUpOworICAgICAgICBpbnNl
cnRVbmljb2RlQ2hhcmFjdGVyKHJpZ2h0VG9MZWZ0RW1iZWQsICpmcmFtZSk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydExST01hcms6Ci0g
ICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIobGVmdFRvUmlnaHRPdmVycmlkZSwgZnJhbWUp
OworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0T3ZlcnJpZGUsICpm
cmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29k
ZUluc2VydFJMT01hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRUb0xl
ZnRPdmVycmlkZSwgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHJpZ2h0
VG9MZWZ0T3ZlcnJpZGUsICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydFBERk1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVD
aGFyYWN0ZXIocG9wRGlyZWN0aW9uYWxGb3JtYXR0aW5nLCBmcmFtZSk7CisgICAgICAgIGluc2Vy
dFVuaWNvZGVDaGFyYWN0ZXIocG9wRGlyZWN0aW9uYWxGb3JtYXR0aW5nLCAqZnJhbWUpOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRaV1NN
YXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHplcm9XaWR0aFNwYWNlLCBmcmFt
ZSk7CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoU3BhY2UsICpmcmFt
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUlu
c2VydFpXSk1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoSm9p
bmVyLCBmcmFtZSk7CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoSm9p
bmVyLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z1VuaWNvZGVJbnNlcnRaV05KTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rlcih6
ZXJvV2lkdGhOb25Kb2luZXIsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rl
cih6ZXJvV2lkdGhOb25Kb2luZXIsICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAj
aWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCkBAIC0zOTMsNyArMzk2LDcgQEAgdm9p
ZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRN
ZW51QWN0aW9uIGFjdGlvbiwgY28KICAgICAgICAgaWYgKEZyYW1lKiB0YXJnZXRGcmFtZSA9IG1f
Y29udGV4dC5oaXRUZXN0UmVzdWx0KCkudGFyZ2V0RnJhbWUoKSkKICAgICAgICAgICAgIHRhcmdl
dEZyYW1lLT5sb2FkZXIoKS5sb2FkRnJhbWVSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUt
PmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdChtX2NvbnRleHQu
aGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFtZS0+bG9hZGVyKCkub3V0Z29p
bmdSZWZlcnJlcigpKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywg
TWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdG
cmFtZU9wZW5lclBvbGljeTo6U3VwcHJlc3MsIHRhcmdldEZyYW1lLT5pc01haW5GcmFtZSgpID8g
U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3cgOiBTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyksIG51bGxwdHIsIG51bGxwdHIpOwogICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVz
dWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5OjpTaG91bGRBbGxvdyk7CisgICAgICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5o
aXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENv
bnRleHRNZW51SXRlbVRhZ0JvbGQ6CiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5jb21tYW5kKCJU
b2dnbGVCb2xkIikuZXhlY3V0ZSgpOwpAQCAtMTQyOSwyNiArMTQzMiwzMCBAQCB2b2lkIENvbnRl
eHRNZW51Q29udHJvbGxlcjo6Y2hlY2tPckVuYWJsZUlmTmVlZGVkKENvbnRleHRNZW51SXRlbSYg
aXRlbSkgY29uc3QKIH0KIAogI2lmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCi12
b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51QXQoRnJhbWUqIGZyYW1l
LCBjb25zdCBJbnRQb2ludCYgY2xpY2tQb2ludCkKKwordm9pZCBDb250ZXh0TWVudUNvbnRyb2xs
ZXI6OnNob3dDb250ZXh0TWVudUF0KEZyYW1lJiBmcmFtZSwgY29uc3QgSW50UG9pbnQmIGNsaWNr
UG9pbnQpCiB7CiAgICAgY2xlYXJDb250ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRl
IGEgY2xpY2sgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCiAgICAg
UGxhdGZvcm1Nb3VzZUV2ZW50IG1vdXNlRXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmln
aHRCdXR0b24sIFBsYXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIGN1cnJlbnRUaW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOwotICAgIGZy
YW1lLT5ldmVudEhhbmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VFdmVudCk7Ci0g
ICAgYm9vbCBoYW5kbGVkID0gZnJhbWUtPmV2ZW50SGFuZGxlcigpLnNlbmRDb250ZXh0TWVudUV2
ZW50KG1vdXNlRXZlbnQpOworICAgIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJl
c3NFdmVudChtb3VzZUV2ZW50KTsKKyAgICBib29sIGhhbmRsZWQgPSBmcmFtZS5ldmVudEhhbmRs
ZXIoKS5zZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKICAgICBpZiAoaGFuZGxlZCkK
ICAgICAgICAgbV9jbGllbnQuc2hvd0NvbnRleHRNZW51KCk7CiB9CisKICNlbmRpZgogCiAjaWYg
RU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi12b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hv
d0ltYWdlQ29udHJvbHNNZW51KEV2ZW50KiBldmVudCkKKwordm9pZCBDb250ZXh0TWVudUNvbnRy
b2xsZXI6OnNob3dJbWFnZUNvbnRyb2xzTWVudShFdmVudCYgZXZlbnQpCiB7CiAgICAgY2xlYXJD
b250ZXh0TWVudSgpOwogICAgIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoZXZlbnQpOwogICAgIG1f
Y2xpZW50LnNob3dDb250ZXh0TWVudSgpOwogfQorCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmgKaW5k
ZXggMTEyNTZlMWNlNzlhYjFlN2IzMjE1OGY3ODRkYzc4ODEzNjQ3NGQ4ZC4uZjYzOTY0OGIxODYy
MDQ2MDZlZmNhNTZhOTA3ODJjODkzN2EwZTk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDIxICsyOSwxNiBAQAogCiAjaW5jbHVkZSAi
Q29udGV4dE1lbnVDb250ZXh0LmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVJdGVtLmgiCi0jaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ29u
dGV4dE1lbnU7CiBjbGFzcyBDb250ZXh0TWVudUNsaWVudDsKLWNsYXNzIENvbnRleHRNZW51SXRl
bTsKIGNsYXNzIENvbnRleHRNZW51UHJvdmlkZXI7CiBjbGFzcyBFdmVudDsKIGNsYXNzIFBhZ2U7
CiAKIGNsYXNzIENvbnRleHRNZW51Q29udHJvbGxlciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoQ29udGV4dE1lbnVDb250cm9sbGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgQ29udGV4dE1lbnVDb250cm9s
bGVyKFBhZ2UmLCBDb250ZXh0TWVudUNsaWVudCYpOwogICAgIH5Db250ZXh0TWVudUNvbnRyb2xs
ZXIoKTsKQEAgLTU0LDggKzQ5LDggQEAgcHVibGljOgogICAgIENvbnRleHRNZW51KiBjb250ZXh0
TWVudSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dE1lbnUuZ2V0KCk7IH0KICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIGNsZWFyQ29udGV4dE1lbnUoKTsKIAotICAgIHZvaWQgaGFuZGxlQ29udGV4
dE1lbnVFdmVudChFdmVudCopOwotICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KEV2ZW50KiwgUGFz
c1JlZlB0cjxDb250ZXh0TWVudVByb3ZpZGVyPik7CisgICAgdm9pZCBoYW5kbGVDb250ZXh0TWVu
dUV2ZW50KEV2ZW50Jik7CisgICAgdm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQmLCBDb250ZXh0
TWVudVByb3ZpZGVyJik7CiAKICAgICB2b2lkIHBvcHVsYXRlKCk7CiAgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiwgY29uc3Qg
U3RyaW5nJiB0aXRsZSk7CkBAIC02OCwxNiArNjMsMTYgQEAgcHVibGljOgogICAgIGNvbnN0IEhp
dFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuaGl0
VGVzdFJlc3VsdCgpOyB9CiAKICNpZiBVU0UoQUNDRVNTSUJJTElUWV9DT05URVhUX01FTlVTKQot
ICAgIHZvaWQgc2hvd0NvbnRleHRNZW51QXQoRnJhbWUqLCBjb25zdCBJbnRQb2ludCYgY2xpY2tQ
b2ludCk7CisgICAgdm9pZCBzaG93Q29udGV4dE1lbnVBdChGcmFtZSYsIGNvbnN0IEludFBvaW50
JiBjbGlja1BvaW50KTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0g
ICAgdm9pZCBzaG93SW1hZ2VDb250cm9sc01lbnUoRXZlbnQqKTsKKyAgICB2b2lkIHNob3dJbWFn
ZUNvbnRyb2xzTWVudShFdmVudCYpOwogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgc3RkOjp1bmlx
dWVfcHRyPENvbnRleHRNZW51PiBtYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50Kik7Ci0gICAg
dm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQqKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4
dE1lbnU+IG1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQmKTsKKyAgICB2b2lkIHNob3dDb250
ZXh0TWVudShFdmVudCYpOwogICAgIAogICAgIHZvaWQgYXBwZW5kSXRlbShDb250ZXh0TWVudUl0
ZW0mLCBDb250ZXh0TWVudSogcGFyZW50TWVudSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRE9NVGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAK
aW5kZXggOGMyNzM4MWFkNjliYzJlYWI5MjMyZjI4YWE1NzYwNTAzYjZkYjE4ZC4uNmJiODk2MWQ5
Y2U4MjhhOTgyNTQyNTkwMDEyNmY4ZTViZGE3YzM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01UaW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5j
cHAKQEAgLTM2MSw3ICszNjEsNyBAQCB2b2lkIERPTVRpbWVyOjpmaXJlZCgpCiAgICAgICAgIGlm
IChXS09ic2VydmVkQ29udGVudENoYW5nZSgpID09IFdLQ29udGVudFZpc2liaWxpdHlDaGFuZ2Ug
fHwgc2hvdWxkUmVwb3J0TGFja09mQ2hhbmdlcykgewogICAgICAgICAgICAgRG9jdW1lbnQmIGRv
Y3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOwogICAgICAgICAgICAgaWYgKFBh
Z2UqIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkpCi0gICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21l
KCkuY2xpZW50KCkub2JzZXJ2ZWRDb250ZW50Q2hhbmdlKGRvY3VtZW50LmZyYW1lKCkpOworICAg
ICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLm9ic2VydmVkQ29udGVudENoYW5n
ZSgqZG9jdW1lbnQuZnJhbWUoKSk7CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcAppbmRleCA5Njk5NjUwMzhhMjY1ZGQ3MTgwOGM2YWZkZjBiMjBkZDUy
ZWI2NGE0Li42MjY5NjczMDlhNWE3M2EzODczOGMwMTc4ZTJiYzY2MWZiMzBjMjQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNiwgMjAwNywgMjAwOCwgMjAxMCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yOSw3ICsyOSw2IEBA
CiAKICNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJCYXJQcm9w
LmgiCi0jaW5jbHVkZSAiQmVmb3JlVW5sb2FkRXZlbnQuaCIKICNpbmNsdWRlICJDU1NDb21wdXRl
ZFN0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NSdWxlLmgiCiAjaW5jbHVkZSAiQ1NT
UnVsZUxpc3QuaCIKQEAgLTEyNSwyMiArMTI0LDIzIEBACiAjaW5jbHVkZSAiV2ViS2l0TmFtZXNw
YWNlLmgiCiAjZW5kaWYKIAotI2lmIEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQotI2luY2x1ZGUg
IkRldmljZVByb3hpbWl0eUNvbnRyb2xsZXIuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEdBTUVQ
QUQpCiAjaW5jbHVkZSAiR2FtZXBhZE1hbmFnZXIuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKEdF
T0xPQ0FUSU9OKQorI2luY2x1ZGUgIk5hdmlnYXRvckdlb2xvY2F0aW9uLmgiCisjZW5kaWYKKwog
I2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCiAjaW5jbHVkZSAiUG9pbnRlckxvY2tDb250cm9sbGVy
LmgiCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKLSNpZiBFTkFCTEUoR0VPTE9DQVRJT04p
Ci0jaW5jbHVkZSAiTmF2aWdhdG9yR2VvbG9jYXRpb24uaCIKKyNpZiBFTkFCTEUoUFJPWElNSVRZ
X0VWRU5UUykKKyNpbmNsdWRlICJEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmgiCiAjZW5kaWYK
KworI2lmIFBMQVRGT1JNKElPUykKICNpbmNsdWRlICJXS0NvbnRlbnRPYnNlcnZhdGlvbi5oIgog
I2VuZGlmCiAKQEAgLTE1MCw5ICsxNTAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFBvc3RNZXNzYWdlVGltZXIgOiBwdWJsaWMgVGltZXJCYXNlIHsKIHB1YmxpYzoKLSAgICBQb3N0
TWVzc2FnZVRpbWVyKERPTVdpbmRvdyYgd2luZG93LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIERPTVdpbmRvdyYg
c291cmNlLCBzdGQ6OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxz
LCBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+JiYgdGFyZ2V0T3JpZ2luLCBSZWZQdHI8U2NyaXB0Q2Fs
bFN0YWNrPiYmIHN0YWNrVHJhY2UpCisgICAgUG9zdE1lc3NhZ2VUaW1lcihET01XaW5kb3cmIHdp
bmRvdywgUmVmPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IHNvdXJjZU9yaWdpbiwgRE9NV2luZG93JiBzb3VyY2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdl
UG9ydENoYW5uZWxBcnJheT4gY2hhbm5lbHMsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiB0YXJn
ZXRPcmlnaW4sIFJlZlB0cjxTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2tUcmFjZSkKICAgICAgICAg
OiBtX3dpbmRvdyh3aW5kb3cpCi0gICAgICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCisgICAgICAg
ICwgbV9tZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpCiAgICAgICAgICwgbV9vcmlnaW4oc291cmNl
T3JpZ2luKQogICAgICAgICAsIG1fc291cmNlKHNvdXJjZSkKICAgICAgICAgLCBtX2NoYW5uZWxz
KFdURk1vdmUoY2hhbm5lbHMpKQpAQCAtMTgxLDcgKzE4MSw3IEBAIHByaXZhdGU6CiAgICAgfQog
CiAgICAgUmVmPERPTVdpbmRvdz4gbV93aW5kb3c7Ci0gICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZT4gbV9tZXNzYWdlOworICAgIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fbWVz
c2FnZTsKICAgICBTdHJpbmcgbV9vcmlnaW47CiAgICAgUmVmPERPTVdpbmRvdz4gbV9zb3VyY2U7
CiAgICAgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBtX2NoYW5uZWxz
OwpAQCAtMzI1LDEyICszMjUsMTAgQEAgdm9pZCBET01XaW5kb3c6OmRpc3BhdGNoQWxsUGVuZGlu
Z1VubG9hZEV2ZW50cygpCiAvLyAzKSBDb25zdHJhaW5zIHRoZSB3aW5kb3cgcmVjdCB0byB3aXRo
aW4gdGhlIHRvcCBhbmQgbGVmdCBib3VuZGFyaWVzIG9mIHRoZSBhdmFpbGFibGUgc2NyZWVuIHJl
Y3QuCiAvLyA0KSBDb25zdHJhaW5zIHRoZSB3aW5kb3cgcmVjdCB0byB3aXRoaW4gdGhlIGJvdHRv
bSBhbmQgcmlnaHQgYm91bmRhcmllcyBvZiB0aGUgYXZhaWxhYmxlIHNjcmVlbiByZWN0LgogLy8g
NSkgVHJhbnNsYXRlIHRoZSB3aW5kb3cgcmVjdCBjb29yZGluYXRlcyB0byBiZSB3aXRoaW4gdGhl
IGNvb3JkaW5hdGUgc3BhY2Ugb2YgdGhlIHNjcmVlbi4KLUZsb2F0UmVjdCBET01XaW5kb3c6OmFk
anVzdFdpbmRvd1JlY3QoUGFnZSogcGFnZSwgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdl
cykKK0Zsb2F0UmVjdCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSYgcGFnZSwgY29u
c3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcykKIHsKLSAgICBBU1NFUlQocGFnZSk7Ci0KLSAg
ICBGbG9hdFJlY3Qgc2NyZWVuID0gc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLT5tYWluRnJhbWUo
KS52aWV3KCkpOwotICAgIEZsb2F0UmVjdCB3aW5kb3cgPSBwYWdlLT5jaHJvbWUoKS53aW5kb3dS
ZWN0KCk7CisgICAgRmxvYXRSZWN0IHNjcmVlbiA9IHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS5t
YWluRnJhbWUoKS52aWV3KCkpOworICAgIEZsb2F0UmVjdCB3aW5kb3cgPSBwYWdlLmNocm9tZSgp
LndpbmRvd1JlY3QoKTsKIAogICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSBpbiBhIHZhbGlkIHN0YXRl
IGJlZm9yZSBhZGp1c3RpbmcgZGltZW5zaW9ucy4KICAgICBBU1NFUlQoc3RkOjppc2Zpbml0ZShz
Y3JlZW4ueCgpKSk7CkBAIC0zNTIsNyArMzUwLDcgQEAgRmxvYXRSZWN0IERPTVdpbmRvdzo6YWRq
dXN0V2luZG93UmVjdChQYWdlKiBwYWdlLCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2UK
ICAgICBpZiAoIXN0ZDo6aXNuYW4ocGVuZGluZ0NoYW5nZXMuaGVpZ2h0KCkpKQogICAgICAgICB3
aW5kb3cuc2V0SGVpZ2h0KHBlbmRpbmdDaGFuZ2VzLmhlaWdodCgpKTsKIAotICAgIEZsb2F0U2l6
ZSBtaW5pbXVtU2l6ZSA9IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLm1pbmltdW1XaW5kb3dTaXpl
KCk7CisgICAgRmxvYXRTaXplIG1pbmltdW1TaXplID0gcGFnZS5jaHJvbWUoKS5jbGllbnQoKS5t
aW5pbXVtV2luZG93U2l6ZSgpOwogICAgIHdpbmRvdy5zZXRXaWR0aChzdGQ6Om1pbihzdGQ6Om1h
eChtaW5pbXVtU2l6ZS53aWR0aCgpLCB3aW5kb3cud2lkdGgoKSksIHNjcmVlbi53aWR0aCgpKSk7
CiAgICAgd2luZG93LnNldEhlaWdodChzdGQ6Om1pbihzdGQ6Om1heChtaW5pbXVtU2l6ZS5oZWln
aHQoKSwgd2luZG93LmhlaWdodCgpKSwgc2NyZWVuLmhlaWdodCgpKSk7CiAKQEAgLTM2MywzOCAr
MzYxLDMxIEBAIEZsb2F0UmVjdCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSogcGFn
ZSwgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlCiAgICAgcmV0dXJuIHdpbmRvdzsKIH0K
IAotYm9vbCBET01XaW5kb3c6OmFsbG93UG9wVXAoRnJhbWUqIGZpcnN0RnJhbWUpCitib29sIERP
TVdpbmRvdzo6YWxsb3dQb3BVcChGcmFtZSYgZmlyc3RGcmFtZSkKIHsKLSAgICBBU1NFUlQoZmly
c3RGcmFtZSk7Ci0gICAgCi0gICAgYXV0byYgc2V0dGluZ3MgPSBmaXJzdEZyYW1lLT5zZXR0aW5n
cygpOwotCi0gICAgaWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgp
IHx8IHNldHRpbmdzLmFsbG93V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVyZSgpKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLQotICAgIHJldHVybiBzZXR0aW5ncy5qYXZhU2NyaXB0Q2FuT3Blbldp
bmRvd3NBdXRvbWF0aWNhbGx5KCk7CisgICAgYXV0byYgc2V0dGluZ3MgPSBmaXJzdEZyYW1lLnNl
dHRpbmdzKCk7CisgICAgcmV0dXJuIFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSgpCisgICAgICAgIHx8IHNldHRpbmdzLmFsbG93V2luZG93T3BlbldpdGhvdXRVc2VyR2Vz
dHVyZSgpCisgICAgICAgIHx8IHNldHRpbmdzLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9t
YXRpY2FsbHkoKTsKIH0KIAogYm9vbCBET01XaW5kb3c6OmFsbG93UG9wVXAoKQogewotICAgIHJl
dHVybiBtX2ZyYW1lICYmIGFsbG93UG9wVXAobV9mcmFtZSk7CisgICAgcmV0dXJuIG1fZnJhbWUg
JiYgYWxsb3dQb3BVcCgqbV9mcmFtZSk7CiB9CiAKLWJvb2wgRE9NV2luZG93OjpjYW5TaG93TW9k
YWxEaWFsb2coY29uc3QgRnJhbWUqIGZyYW1lKQorYm9vbCBET01XaW5kb3c6OmNhblNob3dNb2Rh
bERpYWxvZyhjb25zdCBGcmFtZSYgZnJhbWUpCiB7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCiAgICAgLy8gT3ZlcnJpZGUgc3VwcG9ydCBmb3IgbGF5b3V0IHRlc3Rp
bmcgcHVycG9zZXMuCi0gICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkp
IHsKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVudCgpKSB7CiAgICAgICAg
IGlmIChhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC0+ZG9tV2luZG93KCkpIHsKICAgICAgICAgICAg
IGlmICh3aW5kb3ctPm1fY2FuU2hvd01vZGFsRGlhbG9nT3ZlcnJpZGUpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIHdpbmRvdy0+bV9jYW5TaG93TW9kYWxEaWFsb2dPdmVycmlkZS52YWx1ZSgpOwog
ICAgICAgICB9CiAgICAgfQogCi0gICAgYXV0byogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAg
cmV0dXJuIHBhZ2UgPyBwYWdlLT5jaHJvbWUoKS5jYW5SdW5Nb2RhbCgpIDogZmFsc2U7CisgICAg
YXV0byogcGFnZSA9IGZyYW1lLnBhZ2UoKTsKKyAgICByZXR1cm4gcGFnZSAmJiBwYWdlLT5jaHJv
bWUoKS5jYW5SdW5Nb2RhbCgpOwogfQogCiBzdGF0aWMgdm9pZCBsYW5ndWFnZXNDaGFuZ2VkQ2Fs
bGJhY2sodm9pZCogY29udGV4dCkKQEAgLTQwNywyMCArMzk4LDE4IEBAIHZvaWQgRE9NV2luZG93
OjpzZXRDYW5TaG93TW9kYWxEaWFsb2dPdmVycmlkZShib29sIGFsbG93KQogICAgIG1fY2FuU2hv
d01vZGFsRGlhbG9nT3ZlcnJpZGUgPSBhbGxvdzsKIH0KIAotRE9NV2luZG93OjpET01XaW5kb3co
RG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoZG9j
dW1lbnQpCi0gICAgLCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1lbnQtPmZyYW1lKCkp
CitET01XaW5kb3c6OkRPTVdpbmRvdyhEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBDb250ZXh0
RGVzdHJ1Y3Rpb25PYnNlcnZlcigmZG9jdW1lbnQpCisgICAgLCBGcmFtZURlc3RydWN0aW9uT2Jz
ZXJ2ZXIoZG9jdW1lbnQuZnJhbWUoKSkKICAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsK
ICAgICBBU1NFUlQoZnJhbWUoKSk7Ci0gICAgQVNTRVJUKERPTVdpbmRvdzo6ZG9jdW1lbnQoKSk7
Ci0KICAgICBhZGRMYW5ndWFnZUNoYW5nZU9ic2VydmVyKHRoaXMsICZsYW5ndWFnZXNDaGFuZ2Vk
Q2FsbGJhY2spOwogfQogCi12b2lkIERPTVdpbmRvdzo6ZGlkU2VjdXJlVHJhbnNpdGlvblRvKERv
Y3VtZW50KiBkb2N1bWVudCkKK3ZvaWQgRE9NV2luZG93OjpkaWRTZWN1cmVUcmFuc2l0aW9uVG8o
RG9jdW1lbnQmIGRvY3VtZW50KQogewotICAgIG9ic2VydmVDb250ZXh0KGRvY3VtZW50KTsKKyAg
ICBvYnNlcnZlQ29udGV4dCgmZG9jdW1lbnQpOwogfQogCiBET01XaW5kb3c6On5ET01XaW5kb3co
KQpAQCAtNTQ3LDE0ICs1MzYsMTQgQEAgdm9pZCBET01XaW5kb3c6OmRlY3JlbWVudEdhbWVwYWRF
dmVudExpc3RlbmVyQ291bnQoKQogCiAjZW5kaWYKIAotdm9pZCBET01XaW5kb3c6OnJlZ2lzdGVy
UHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkqIHByb3BlcnR5KQordm9pZCBET01XaW5kb3c6OnJl
Z2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkmIHByb3BlcnR5KQogewotICAgIG1fcHJv
cGVydGllcy5hZGQocHJvcGVydHkpOworICAgIG1fcHJvcGVydGllcy5hZGQoJnByb3BlcnR5KTsK
IH0KIAotdm9pZCBET01XaW5kb3c6OnVucmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0
eSogcHJvcGVydHkpCit2b2lkIERPTVdpbmRvdzo6dW5yZWdpc3RlclByb3BlcnR5KERPTVdpbmRv
d1Byb3BlcnR5JiBwcm9wZXJ0eSkKIHsKLSAgICBtX3Byb3BlcnRpZXMucmVtb3ZlKHByb3BlcnR5
KTsKKyAgICBtX3Byb3BlcnRpZXMucmVtb3ZlKCZwcm9wZXJ0eSk7CiB9CiAKIHZvaWQgRE9NV2lu
ZG93OjpyZXNldFVubGVzc1N1c3BlbmRlZEZvckRvY3VtZW50U3VzcGVuc2lvbigpCkBAIC05NzQs
MjMgKzk2MywxOCBAQCB2b2lkIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVkKFBvc3RN
ZXNzYWdlVGltZXImIHRpbWVyKQogICAgIGlmICghZG9jdW1lbnQoKSB8fCAhaXNDdXJyZW50bHlE
aXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRpc3BhdGNoTWVzc2Fn
ZUV2ZW50V2l0aE9yaWdpbkNoZWNrKHRpbWVyLnRhcmdldE9yaWdpbigpLCB0aW1lci5ldmVudCgq
ZG9jdW1lbnQoKSksIHRpbWVyLnN0YWNrVHJhY2UoKSk7Ci19Ci0KLXZvaWQgRE9NV2luZG93Ojpk
aXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmlnaW5DaGVjayhTZWN1cml0eU9yaWdpbiogaW50ZW5k
ZWRUYXJnZXRPcmlnaW4sIEV2ZW50JiBldmVudCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+
IHN0YWNrVHJhY2UpCi17Ci0gICAgaWYgKGludGVuZGVkVGFyZ2V0T3JpZ2luKSB7CisgICAgaWYg
KGF1dG8qIGludGVuZGVkVGFyZ2V0T3JpZ2luID0gdGltZXIudGFyZ2V0T3JpZ2luKCkpIHsKICAg
ICAgICAgLy8gQ2hlY2sgdGFyZ2V0IG9yaWdpbiBub3cgc2luY2UgdGhlIHRhcmdldCBkb2N1bWVu
dCBtYXkgaGF2ZSBjaGFuZ2VkIHNpbmNlIHRoZSB0aW1lciB3YXMgc2NoZWR1bGVkLgogICAgICAg
ICBpZiAoIWludGVuZGVkVGFyZ2V0T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChkb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpKSkgewotICAgICAgICAgICAgaWYgKFBhZ2VDb25zb2xlQ2xp
ZW50KiBwYWdlQ29uc29sZSA9IGNvbnNvbGUoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIHBh
Z2VDb25zb2xlID0gY29uc29sZSgpKSB7CiAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2Ug
PSBtYWtlU3RyaW5nKCJVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvICIsIGludGVuZGVkVGFyZ2V0
T3JpZ2luLT50b1N0cmluZygpLCAiLiBSZWNpcGllbnQgaGFzIG9yaWdpbiAiLCBkb2N1bWVudCgp
LT5zZWN1cml0eU9yaWdpbigpLnRvU3RyaW5nKCksICIuXG4iKTsKLSAgICAgICAgICAgICAgICBw
YWdlQ29uc29sZS0+YWRkTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxl
dmVsOjpFcnJvciwgbWVzc2FnZSwgc3RhY2tUcmFjZSk7CisgICAgICAgICAgICAgICAgcGFnZUNv
bnNvbGUtPmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6
RXJyb3IsIG1lc3NhZ2UsIHRpbWVyLnN0YWNrVHJhY2UoKSk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBkaXNwYXRjaEV2ZW50KGV2
ZW50KTsKKyAgICBkaXNwYXRjaEV2ZW50KHRpbWVyLmV2ZW50KCpkb2N1bWVudCgpKSk7CiB9CiAK
IERPTVNlbGVjdGlvbiogRE9NV2luZG93OjpnZXRTZWxlY3Rpb24oKQpAQCAtMTExMyw3ICsxMDk3
LDcgQEAgdm9pZCBET01XaW5kb3c6OnByaW50KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBtX3Nob3VsZFByaW50V2hlbkZpbmlzaGVkTG9hZGluZyA9IGZhbHNlOwotICAgIHBhZ2UtPmNo
cm9tZSgpLnByaW50KG1fZnJhbWUpOworICAgIHBhZ2UtPmNocm9tZSgpLnByaW50KCptX2ZyYW1l
KTsKIH0KIAogdm9pZCBET01XaW5kb3c6OnN0b3AoKQpAQCAtMTE0NSw3ICsxMTI5LDcgQEAgdm9p
ZCBET01XaW5kb3c6OmFsZXJ0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBwYWdlLT5wb2lu
dGVyTG9ja0NvbnRyb2xsZXIoKS5yZXF1ZXN0UG9pbnRlclVubG9jaygpOwogI2VuZGlmCiAKLSAg
ICBwYWdlLT5jaHJvbWUoKS5ydW5KYXZhU2NyaXB0QWxlcnQobV9mcmFtZSwgbWVzc2FnZSk7Cisg
ICAgcGFnZS0+Y2hyb21lKCkucnVuSmF2YVNjcmlwdEFsZXJ0KCptX2ZyYW1lLCBtZXNzYWdlKTsK
IH0KIAogYm9vbCBET01XaW5kb3c6OmNvbmZpcm0oY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAt
MTE2Nyw3ICsxMTUxLDcgQEAgYm9vbCBET01XaW5kb3c6OmNvbmZpcm0oY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQogICAgIHBhZ2UtPnBvaW50ZXJMb2NrQ29udHJvbGxlcigpLnJlcXVlc3RQb2ludGVy
VW5sb2NrKCk7CiAjZW5kaWYKIAotICAgIHJldHVybiBwYWdlLT5jaHJvbWUoKS5ydW5KYXZhU2Ny
aXB0Q29uZmlybShtX2ZyYW1lLCBtZXNzYWdlKTsKKyAgICByZXR1cm4gcGFnZS0+Y2hyb21lKCku
cnVuSmF2YVNjcmlwdENvbmZpcm0oKm1fZnJhbWUsIG1lc3NhZ2UpOwogfQogCiBTdHJpbmcgRE9N
V2luZG93Ojpwcm9tcHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1
bHRWYWx1ZSkKQEAgLTExOTAsNyArMTE3NCw3IEBAIFN0cmluZyBET01XaW5kb3c6OnByb21wdChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlKQogI2VuZGlm
CiAKICAgICBTdHJpbmcgcmV0dXJuVmFsdWU7Ci0gICAgaWYgKHBhZ2UtPmNocm9tZSgpLnJ1bkph
dmFTY3JpcHRQcm9tcHQobV9mcmFtZSwgbWVzc2FnZSwgZGVmYXVsdFZhbHVlLCByZXR1cm5WYWx1
ZSkpCisgICAgaWYgKHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRQcm9tcHQoKm1fZnJhbWUs
IG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSwgcmV0dXJuVmFsdWUpKQogICAgICAgICByZXR1cm4gcmV0
dXJuVmFsdWU7CiAKICAgICByZXR1cm4gU3RyaW5nKCk7CkBAIC0xMzY4LDcgKzEzNTIsNyBAQCB2
b2lkIERPTVdpbmRvdzo6c2V0U3RhdHVzKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBBU1NFUlQobV9mcmFtZS0+ZG9jdW1lbnQoKSk7IC8vIENsaWVudCBjYWxs
cyBzaG91bGRuJ3QgYmUgbWFkZSB3aGVuIHRoZSBmcmFtZSBpcyBpbiBpbmNvbnNpc3RlbnQgc3Rh
dGUuCi0gICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dChtX2ZyYW1lLCBtX3N0YXR1
cyk7CisgICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dCgqbV9mcmFtZSwgbV9zdGF0
dXMpOwogfSAKICAgICAKIHZvaWQgRE9NV2luZG93OjpzZXREZWZhdWx0U3RhdHVzKGNvbnN0IFN0
cmluZyYgc3RyaW5nKSAKQEAgLTEzODMsNyArMTM2Nyw3IEBAIHZvaWQgRE9NV2luZG93OjpzZXRE
ZWZhdWx0U3RhdHVzKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgICAgICByZXR1cm47CiAKICAg
ICBBU1NFUlQobV9mcmFtZS0+ZG9jdW1lbnQoKSk7IC8vIENsaWVudCBjYWxscyBzaG91bGRuJ3Qg
YmUgbWFkZSB3aGVuIHRoZSBmcmFtZSBpcyBpbiBpbmNvbnNpc3RlbnQgc3RhdGUuCi0gICAgcGFn
ZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dChtX2ZyYW1lLCBtX2RlZmF1bHRTdGF0dXMpOwor
ICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQoKm1fZnJhbWUsIG1fZGVmYXVsdFN0
YXR1cyk7CiB9CiAKIERPTVdpbmRvdyogRE9NV2luZG93OjpzZWxmKCkgY29uc3QKQEAgLTE0MzIs
OCArMTQxNiw3IEBAIERPTVdpbmRvdyogRE9NV2luZG93Ojp0b3AoKSBjb25zdAogCiBEb2N1bWVu
dCogRE9NV2luZG93Ojpkb2N1bWVudCgpIGNvbnN0CiB7Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCA9IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCk7Ci0gICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KTsKKyAg
ICByZXR1cm4gZG93bmNhc3Q8RG9jdW1lbnQ+KENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogfQogCiBSZWZQdHI8U3R5bGVNZWRpYT4gRE9NV2lu
ZG93OjpzdHlsZU1lZGlhKCkgY29uc3QKQEAgLTE2MTgsOCArMTYwMSw3IEBAIHZvaWQgRE9NV2lu
ZG93Ojptb3ZlQnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKICAgICBGbG9hdFJlY3QgZnIgPSBw
YWdlLT5jaHJvbWUoKS53aW5kb3dSZWN0KCk7CiAgICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOwog
ICAgIHVwZGF0ZS5tb3ZlKHgsIHkpOwotICAgIC8vIFNlY3VyaXR5IGNoZWNrICh0aGUgc3BlYyB0
YWxrcyBhYm91dCBVbml2ZXJzYWxCcm93c2VyV3JpdGUgdG8gZGlzYWJsZSB0aGlzIGNoZWNrLi4u
KQotICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdl
LCB1cGRhdGUpKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRv
d1JlY3QoKnBhZ2UsIHVwZGF0ZSkpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6bW92ZVRvKGZsb2F0
IHgsIGZsb2F0IHkpIGNvbnN0CkBAIC0xNjMzLDggKzE2MTUsNyBAQCB2b2lkIERPTVdpbmRvdzo6
bW92ZVRvKGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CiAgICAgZnIuc2V0TG9jYXRpb24oc3IubG9j
YXRpb24oKSk7CiAgICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOwogICAgIHVwZGF0ZS5tb3ZlKHgs
IHkpOwotICAgIC8vIFNlY3VyaXR5IGNoZWNrICh0aGUgc3BlYyB0YWxrcyBhYm91dCBVbml2ZXJz
YWxCcm93c2VyV3JpdGUgdG8gZGlzYWJsZSB0aGlzIGNoZWNrLi4uKQotICAgIHBhZ2UtPmNocm9t
ZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKKyAgICBw
YWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHVwZGF0
ZSkpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6cmVzaXplQnkoZmxvYXQgeCwgZmxvYXQgeSkgY29u
c3QKQEAgLTE2NDYsNyArMTYyNyw3IEBAIHZvaWQgRE9NV2luZG93OjpyZXNpemVCeShmbG9hdCB4
LCBmbG9hdCB5KSBjb25zdAogICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLndpbmRv
d1JlY3QoKTsKICAgICBGbG9hdFNpemUgZGVzdCA9IGZyLnNpemUoKSArIEZsb2F0U2l6ZSh4LCB5
KTsKICAgICBGbG9hdFJlY3QgdXBkYXRlKGZyLmxvY2F0aW9uKCksIGRlc3QpOwotICAgIHBhZ2Ut
PmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsK
KyAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2Us
IHVwZGF0ZSkpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6cmVzaXplVG8oZmxvYXQgd2lkdGgsIGZs
b2F0IGhlaWdodCkgY29uc3QKQEAgLTE2NTgsNyArMTYzOSw3IEBAIHZvaWQgRE9NV2luZG93Ojpy
ZXNpemVUbyhmbG9hdCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSBjb25zdAogICAgIEZsb2F0UmVjdCBm
ciA9IHBhZ2UtPmNocm9tZSgpLndpbmRvd1JlY3QoKTsKICAgICBGbG9hdFNpemUgZGVzdCA9IEZs
b2F0U2l6ZSh3aWR0aCwgaGVpZ2h0KTsKICAgICBGbG9hdFJlY3QgdXBkYXRlKGZyLmxvY2F0aW9u
KCksIGRlc3QpOwotICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93
UmVjdChwYWdlLCB1cGRhdGUpKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFk
anVzdFdpbmRvd1JlY3QoKnBhZ2UsIHVwZGF0ZSkpOwogfQogCiBFeGNlcHRpb25PcjxpbnQ+IERP
TVdpbmRvdzo6c2V0VGltZW91dChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rp
b24sIGludCB0aW1lb3V0KQpAQCAtMTY4MSw3ICsxNjYyLDcgQEAgdm9pZCBET01XaW5kb3c6OmNs
ZWFyVGltZW91dChpbnQgdGltZW91dElkKQogCiAgICAgICAgICAgICAgICAgaWYgKCFXZWJUaHJl
YWRDb3VudE9mT2JzZXJ2ZWRDb250ZW50TW9kaWZpZXJzKCkpIHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCi0gICAgICAgICAgICAgICAgICAg
ICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5vYnNlcnZlZENvbnRlbnRDaGFuZ2UobV9mcmFt
ZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5vYnNl
cnZlZENvbnRlbnRDaGFuZ2UoKm1fZnJhbWUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgIH0KICAgICAgICAgfQpAQCAtMTg0MSw3ICsxODIyLDcgQEAgdm9pZCBET01XaW5kb3c6Omlu
Y3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJzQ291bnQoKQogICAgIGlmICgrK21fc2Nyb2xsRXZl
bnRMaXN0ZW5lckNvdW50ID09IDEgJiYgZG9jdW1lbnQgPT0gJmRvY3VtZW50LT50b3BEb2N1bWVu
dCgpKSB7CiAgICAgICAgIEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCk7CiAgICAgICAgIGlm
IChmcmFtZSAmJiBmcmFtZS0+cGFnZSgpKQotICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+Y2hy
b21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKGZyYW1lLCB0cnVlKTsK
KyAgICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE5lZWRzU2Ny
b2xsTm90aWZpY2F0aW9ucygqZnJhbWUsIHRydWUpOwogICAgIH0KIH0KIApAQCAtMTg1MSw3ICsx
ODMyLDcgQEAgdm9pZCBET01XaW5kb3c6OmRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJzQ291
bnQoKQogICAgIGlmICghLS1tX3Njcm9sbEV2ZW50TGlzdGVuZXJDb3VudCAmJiBkb2N1bWVudCA9
PSAmZG9jdW1lbnQtPnRvcERvY3VtZW50KCkpIHsKICAgICAgICAgRnJhbWUqIGZyYW1lID0gdGhp
cy0+ZnJhbWUoKTsKICAgICAgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCkgJiYgZG9jdW1l
bnQtPnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKQotICAgICAg
ICAgICAgZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3Rp
ZmljYXRpb25zKGZyYW1lLCBmYWxzZSk7CisgICAgICAgICAgICBmcmFtZS0+cGFnZSgpLT5jaHJv
bWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoKmZyYW1lLCBmYWxzZSk7
CiAgICAgfQogfQogCkBAIC0xODU5LDcgKzE4NDAsNyBAQCB2b2lkIERPTVdpbmRvdzo6ZGVjcmVt
ZW50U2Nyb2xsRXZlbnRMaXN0ZW5lcnNDb3VudCgpCiAKIHZvaWQgRE9NV2luZG93OjpyZXNldEFs
bEdlb2xvY2F0aW9uUGVybWlzc2lvbigpCiB7Ci0gICAgLy8gRklYTUU6IFJlbW92ZSBQTEFURk9S
TShJT1MpLWd1YXJkIG9uY2Ugd2UgdXBzdHJlYW0gdGhlIGlPUyBjaGFuZ2VzIHRvIEdlb2xvY2F0
aW9uLmNwcC4KKyAgICAvLyBGSVhNRTogQ2FuIHdlIHJlbW92ZSB0aGUgUExBVEZPUk0oSU9TKS1n
dWFyZD8KICNpZiBFTkFCTEUoR0VPTE9DQVRJT04pICYmIFBMQVRGT1JNKElPUykKICAgICBpZiAo
bV9uYXZpZ2F0b3IpCiAgICAgICAgIE5hdmlnYXRvckdlb2xvY2F0aW9uOjpmcm9tKG1fbmF2aWdh
dG9yLmdldCgpKS0+cmVzZXRBbGxHZW9sb2NhdGlvblBlcm1pc3Npb24oKTsKQEAgLTIyODcsOCAr
MjI2OCw3IEBAIHZvaWQgRE9NV2luZG93OjpzaG93TW9kYWxEaWFsb2coY29uc3QgU3RyaW5nJiB1
cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZGlhbG9nRmVhCiB7CiAgICAgaWYgKCFpc0N1cnJlbnRs
eURpc3BsYXllZEluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwotICAgIEZyYW1lKiBhY3RpdmVG
cmFtZSA9IGFjdGl2ZVdpbmRvdy5mcmFtZSgpOwotICAgIGlmICghYWN0aXZlRnJhbWUpCisgICAg
aWYgKCFhY3RpdmVXaW5kb3cuZnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogICAgIEZyYW1lKiBm
aXJzdEZyYW1lID0gZmlyc3RXaW5kb3cuZnJhbWUoKTsKICAgICBpZiAoIWZpcnN0RnJhbWUpCkBA
IC0yMzAzLDcgKzIyODMsNyBAQCB2b2lkIERPTVdpbmRvdzo6c2hvd01vZGFsRGlhbG9nKGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRpYWxvZ0ZlYQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgaWYgKCFjYW5TaG93TW9kYWxEaWFsb2cobV9mcmFtZSkgfHwgIWZp
cnN0V2luZG93LmFsbG93UG9wVXAoKSkKKyAgICBpZiAoIWNhblNob3dNb2RhbERpYWxvZygqbV9m
cmFtZSkgfHwgIWZpcnN0V2luZG93LmFsbG93UG9wVXAoKSkKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgUmVmUHRyPEZyYW1lPiBkaWFsb2dGcmFtZSA9IGNyZWF0ZVdpbmRvdyh1cmxTdHJpbmcsIGVt
cHR5QXRvbSwgcGFyc2VEaWFsb2dGZWF0dXJlcyhkaWFsb2dGZWF0dXJlc1N0cmluZywgc2NyZWVu
QXZhaWxhYmxlUmVjdChtX2ZyYW1lLT52aWV3KCkpKSwgYWN0aXZlV2luZG93LCAqZmlyc3RGcmFt
ZSwgKm1fZnJhbWUsIFdURk1vdmUocHJlcGFyZURpYWxvZ0Z1bmN0aW9uKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuaAppbmRleCBjNWU5MDI4OTg4NmQ3MmFhODg2YzQ5YWRiOTQ3OTVkMzc3MDU5YjMx
Li5lMDA3MDE2ZTVkODY3YTIwNTc5ZmE0MDE4MzMyYmI1ZGYxYWUxZWIxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RE9NV2luZG93LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAy
MDA3LCAyMDA5LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENv
cHlyaWdodCAoQykgMjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKQEAgLTMzLDIzICszMywxNCBAQAogI2luY2x1ZGUgIkZy
YW1lRGVzdHJ1Y3Rpb25PYnNlcnZlci5oIgogI2luY2x1ZGUgIlNjcm9sbFRvT3B0aW9ucy5oIgog
I2luY2x1ZGUgIlN1cHBsZW1lbnRhYmxlLmgiCi0jaW5jbHVkZSAiVVJMLmgiCi0jaW5jbHVkZSA8
ZnVuY3Rpb25hbD4KLSNpbmNsdWRlIDxtZW1vcnk+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4K
ICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2lu
Y2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKLW5hbWVzcGFjZSBJbnNwZWN0b3IgewotY2xhc3MgU2Ny
aXB0Q2FsbFN0YWNrOwotfQotCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEV4ZWNTdGF0ZTsKIGNs
YXNzIEpTT2JqZWN0OwogY2xhc3MgSlNWYWx1ZTsKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNz
IFN0cm9uZzsKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBTdHJvbmc7CiB9CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKQEAgLTYxLDIyICs1MiwxNSBAQCBjbGFzcyBDcnlwdG87CiBjbGFzcyBDdXN0
b21FbGVtZW50UmVnaXN0cnk7CiBjbGFzcyBET01BcHBsaWNhdGlvbkNhY2hlOwogY2xhc3MgRE9N
U2VsZWN0aW9uOwotY2xhc3MgRE9NVVJMOwogY2xhc3MgRE9NV2luZG93UHJvcGVydHk7CiBjbGFz
cyBET01XcmFwcGVyV29ybGQ7Ci1jbGFzcyBEYXRhYmFzZTsKLWNsYXNzIERhdGFiYXNlQ2FsbGJh
Y2s7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBFdmVudExpc3RlbmVy
OwogY2xhc3MgRmxvYXRSZWN0OwotY2xhc3MgRnJhbWU7CiBjbGFzcyBIaXN0b3J5OwotY2xhc3Mg
SURCRmFjdG9yeTsKIGNsYXNzIExvY2F0aW9uOwogY2xhc3MgTWVkaWFRdWVyeUxpc3Q7Ci1jbGFz
cyBNZXNzYWdlRXZlbnQ7Ci1jbGFzcyBNZXNzYWdlUG9ydDsKIGNsYXNzIE5hdmlnYXRvcjsKIGNs
YXNzIE5vZGU7CiBjbGFzcyBOb2RlTGlzdDsKQEAgLTg3LDggKzcxLDYgQEAgY2xhc3MgUG9zdE1l
c3NhZ2VUaW1lcjsKIGNsYXNzIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrOwogY2xhc3Mg
U2NoZWR1bGVkQWN0aW9uOwogY2xhc3MgU2NyZWVuOwotY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1j
bGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTdG9yYWdlOwogY2xhc3MgU3R5bGVN
ZWRpYTsKIGNsYXNzIFdlYktpdE5hbWVzcGFjZTsKQEAgLTEwNyw3ICs4OSw3IEBAIGNsYXNzIERP
TVdpbmRvdyBmaW5hbAogICAgICwgcHVibGljIEJhc2U2NFV0aWxpdGllcwogICAgICwgcHVibGlj
IFN1cHBsZW1lbnRhYmxlPERPTVdpbmRvdz4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RE9N
V2luZG93PiBjcmVhdGUoRG9jdW1lbnQqIGRvY3VtZW50KSB7IHJldHVybiBhZG9wdFJlZigqbmV3
IERPTVdpbmRvdyhkb2N1bWVudCkpOyB9CisgICAgc3RhdGljIFJlZjxET01XaW5kb3c+IGNyZWF0
ZShEb2N1bWVudCYgZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NV2luZG93KGRv
Y3VtZW50KSk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5ET01XaW5kb3coKTsKIAog
ICAgIC8vIEluIHNvbWUgcmFyZSBjYXNlcywgd2UnbGwgcmV1c2UgYSBET01XaW5kb3cgZm9yIGEg
bmV3IERvY3VtZW50LiBGb3IgZXhhbXBsZSwKQEAgLTExNywxNSArOTksMTAgQEAgcHVibGljOgog
ICAgIC8vIHdvbid0IGJlIGJsb3duIGF3YXkgd2hlbiB0aGUgbmV0d29yayBsb2FkIGNvbW1pdHMu
IFRvIG1ha2UgdGhhdCBoYXBwZW4sIHdlCiAgICAgLy8gInNlY3VyZWx5IHRyYW5zaXRpb24iIHRo
ZSBleGlzdGluZyBET01XaW5kb3cgdG8gdGhlIERvY3VtZW50IHRoYXQgcmVzdWx0cyBmcm9tCiAg
ICAgLy8gdGhlIG5ldHdvcmsgbG9hZC4gU2VlIGFsc28gU2VjdXJpdHlDb250ZXh0Ojppc1NlY3Vy
ZVRyYW5zaXRpb25Uby4KLSAgICB2b2lkIGRpZFNlY3VyZVRyYW5zaXRpb25UbyhEb2N1bWVudCop
OwotCi0gICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBET01XaW5kb3dFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0K
LSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29u
c3Qgb3ZlcnJpZGUgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKTsgfQotCi0gICAgRE9NV2luZG93KiB0b0RPTVdpbmRvdygpIG92ZXJy
aWRlOworICAgIHZvaWQgZGlkU2VjdXJlVHJhbnNpdGlvblRvKERvY3VtZW50Jik7CiAKLSAgICB2
b2lkIHJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkqKTsKLSAgICB2b2lkIHVucmVn
aXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSopOworICAgIHZvaWQgcmVnaXN0ZXJQcm9w
ZXJ0eShET01XaW5kb3dQcm9wZXJ0eSYpOworICAgIHZvaWQgdW5yZWdpc3RlclByb3BlcnR5KERP
TVdpbmRvd1Byb3BlcnR5Jik7CiAKICAgICB2b2lkIHJlc2V0VW5sZXNzU3VzcGVuZGVkRm9yRG9j
dW1lbnRTdXNwZW5zaW9uKCk7CiAgICAgdm9pZCBzdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9u
KCk7CkBAIC0xMzgsMTEgKzExNSwxMSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIGJvb2wgZGlzcGF0Y2hBbGxQZW5kaW5nQmVmb3JlVW5sb2FkRXZlbnRzKCk7CiAgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIHZvaWQgZGlzcGF0Y2hBbGxQZW5kaW5nVW5sb2FkRXZlbnRzKCk7
CiAKLSAgICBzdGF0aWMgRmxvYXRSZWN0IGFkanVzdFdpbmRvd1JlY3QoUGFnZSosIGNvbnN0IEZs
b2F0UmVjdCYgcGVuZGluZ0NoYW5nZXMpOworICAgIHN0YXRpYyBGbG9hdFJlY3QgYWRqdXN0V2lu
ZG93UmVjdChQYWdlJiwgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcyk7CiAKICAgICBi
b29sIGFsbG93UG9wVXAoKTsgLy8gQ2FsbCBvbiBmaXJzdCB3aW5kb3csIG5vdCB0YXJnZXQgd2lu
ZG93LgotICAgIHN0YXRpYyBib29sIGFsbG93UG9wVXAoRnJhbWUqIGZpcnN0RnJhbWUpOwotICAg
IHN0YXRpYyBib29sIGNhblNob3dNb2RhbERpYWxvZyhjb25zdCBGcmFtZSopOworICAgIHN0YXRp
YyBib29sIGFsbG93UG9wVXAoRnJhbWUmIGZpcnN0RnJhbWUpOworICAgIHN0YXRpYyBib29sIGNh
blNob3dNb2RhbERpYWxvZyhjb25zdCBGcmFtZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
c2V0Q2FuU2hvd01vZGFsRGlhbG9nT3ZlcnJpZGUoYm9vbCk7CiAKICAgICBTY3JlZW4qIHNjcmVl
bigpIGNvbnN0OwpAQCAtMjQ1LDcgKzIyMiw2IEBAIHB1YmxpYzoKIAogICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHBvc3RNZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiwgRE9NV2luZG93JiBjYWxsZXJXaW5k
b3csIEpTQzo6SlNWYWx1ZSBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdpbiwgVmVj
dG9yPEpTQzo6U3Ryb25nPEpTQzo6SlNPYmplY3Q+PiYmKTsKICAgICB2b2lkIHBvc3RNZXNzYWdl
VGltZXJGaXJlZChQb3N0TWVzc2FnZVRpbWVyJik7Ci0gICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VF
dmVudFdpdGhPcmlnaW5DaGVjayhTZWN1cml0eU9yaWdpbiogaW50ZW5kZWRUYXJnZXRPcmlnaW4s
IEV2ZW50JiwgUGFzc1JlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4pOwogCiAgICAg
dm9pZCBsYW5ndWFnZXNDaGFuZ2VkKCk7CiAKQEAgLTI3Miw5ICsyNDgsOSBAQCBwdWJsaWM6CiAK
ICAgICAvLyBFdmVudHMKICAgICAvLyBFdmVudFRhcmdldCBBUEkKLSAgICBib29sIGFkZEV2ZW50
TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVy
PiYmLCBjb25zdCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIGJvb2wg
cmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRM
aXN0ZW5lciYsIGNvbnN0IExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVt
b3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKSBvdmVycmlkZTsKKyAgICBib29sIGFkZEV2ZW50TGlzdGVu
ZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBj
b25zdCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyYpIGZpbmFsOworICAgIGJvb2wgcmVtb3ZlRXZl
bnRMaXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYs
IGNvbnN0IExpc3RlbmVyT3B0aW9ucyYpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlQWxsRXZlbnRM
aXN0ZW5lcnMoKSBmaW5hbDsKIAogICAgIHVzaW5nIEV2ZW50VGFyZ2V0OjpkaXNwYXRjaEV2ZW50
OwogICAgIGJvb2wgZGlzcGF0Y2hFdmVudChFdmVudCYsIEV2ZW50VGFyZ2V0Kik7CkBAIC0yODYs
OCArMjYyLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBmaW5pc2hlZExvYWRpbmcoKTsKIAotICAg
IHVzaW5nIFJlZkNvdW50ZWQ8RE9NV2luZG93Pjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8
RE9NV2luZG93Pjo6ZGVyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAgIHVzaW5n
IFJlZkNvdW50ZWQ6OmRlcmVmOwogCiAgICAgLy8gSFRNTCA1IGtleS92YWx1ZSBzdG9yYWdlCiAg
ICAgRXhjZXB0aW9uT3I8U3RvcmFnZSo+IHNlc3Npb25TdG9yYWdlKCkgY29uc3Q7CkBAIC0zMTMs
NiArMjg5LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShXRUJfVElNSU5HKQogICAgIFBlcmZvcm1h
bmNlKiBwZXJmb3JtYW5jZSgpIGNvbnN0OwogI2VuZGlmCisKICAgICBkb3VibGUgbm93VGltZXN0
YW1wKCkgY29uc3Q7CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0zNDcsMTYgKzMyNCwyMSBAQCBw
dWJsaWM6CiAgICAgV2Vha1B0cjxET01XaW5kb3c+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBt
X3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogCiBwcml2YXRlOgotICAgIGV4cGxp
Y2l0IERPTVdpbmRvdyhEb2N1bWVudCopOworICAgIGV4cGxpY2l0IERPTVdpbmRvdyhEb2N1bWVu
dCYpOworCisgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBET01XaW5kb3dFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0K
KyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKTsgfQorCisgICAgRE9NV2luZG93KiB0b0RPTVdpbmRvdygpIGZpbmFsOwog
CiAgICAgUGFnZSogcGFnZSgpOwogICAgIGJvb2wgYWxsb3dlZFRvQ2hhbmdlV2luZG93R2VvbWV0
cnkoKSBjb25zdDsKIAotICAgIHZvaWQgZnJhbWVEZXN0cm95ZWQoKSBvdmVycmlkZTsKLSAgICB2
b2lkIHdpbGxEZXRhY2hQYWdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBmcmFtZURlc3Ryb3llZCgp
IGZpbmFsOworICAgIHZvaWQgd2lsbERldGFjaFBhZ2UoKSBmaW5hbDsKIAotICAgIHZvaWQgcmVm
RXZlbnRUYXJnZXQoKSBvdmVycmlkZSB7IHJlZigpOyB9Ci0gICAgdm9pZCBkZXJlZkV2ZW50VGFy
Z2V0KCkgb3ZlcnJpZGUgeyBkZXJlZigpOyB9CisgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZp
bmFsIHsgcmVmKCk7IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVm
KCk7IH0KIAogICAgIHN0YXRpYyBSZWZQdHI8RnJhbWU+IGNyZWF0ZVdpbmRvdyhjb25zdCBTdHJp
bmcmIHVybFN0cmluZywgY29uc3QgQXRvbWljU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IFdpbmRv
d0ZlYXR1cmVzJiwgRE9NV2luZG93JiBhY3RpdmVXaW5kb3csIEZyYW1lJiBmaXJzdEZyYW1lLCBG
cmFtZSYgb3BlbmVyRnJhbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZChET01XaW5kb3cmKT4gcHJlcGFy
ZURpYWxvZ0Z1bmN0aW9uID0gbnVsbHB0cik7CiAgICAgYm9vbCBpc0luc2VjdXJlU2NyaXB0QWNj
ZXNzKERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCmluZGV4IGEzNzcwZThlNzAw
YzY1ODI2MjZjNjRiOTg1ZmRlYzZmYzA3ZjMzZjUuLjU1MDk2YjY0YWFhN2YyNDkzMWEyYzcxOWE3
ZTVjNjA5ZWQ1MGY4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
UHJvcGVydHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHku
Y3BwCkBAIC00MiwxNCArNDIsMTQgQEAgRE9NV2luZG93UHJvcGVydHk6OkRPTVdpbmRvd1Byb3Bl
cnR5KEZyYW1lKiBmcmFtZSkKICAgICAvLyBXZSBzaG91bGQgZml4IHRoYXQuICA8cmRhcjovL3By
b2JsZW0vMTE1NjcxMzI+CiAgICAgaWYgKG1fZnJhbWUpIHsKICAgICAgICAgbV9hc3NvY2lhdGVk
RE9NV2luZG93ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCk7Ci0gICAgICAgIG1f
YXNzb2NpYXRlZERPTVdpbmRvdy0+cmVnaXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAgICAgICAgbV9h
c3NvY2lhdGVkRE9NV2luZG93LT5yZWdpc3RlclByb3BlcnR5KCp0aGlzKTsKICAgICB9CiB9CiAK
IERPTVdpbmRvd1Byb3BlcnR5Ojp+RE9NV2luZG93UHJvcGVydHkoKQogewogICAgIGlmIChtX2Fz
c29jaWF0ZWRET01XaW5kb3cpCi0gICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+dW5yZWdp
c3RlclByb3BlcnR5KHRoaXMpOworICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ctPnVucmVn
aXN0ZXJQcm9wZXJ0eSgqdGhpcyk7CiAKICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3cgPSBudWxs
cHRyOwogICAgIG1fZnJhbWUgPSBudWxscHRyOwpAQCAtODYsNyArODYsNyBAQCB2b2lkIERPTVdp
bmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUoKQogICAg
IC8vIERPTVdpbmRvd1Byb3BlcnR5IGxpZmV0aW1lIGlzbid0IHRpZWQgZGlyZWN0bHkgdG8gdGhl
IERPTVdpbmRvdyBpdHNlbGYgc28gaXQgaXMgaW1wb3J0YW50IHRoYXQgaXQgdW5yZWdpc3Rlcgog
ICAgIC8vIGl0c2VsZiBmcm9tIGFueSBET01XaW5kb3cgaXQgaXMgYXNzb2NpYXRlZCB3aXRoIGlm
IHRoYXQgRE9NV2luZG93IGlzIGdvaW5nIGF3YXkuCiAgICAgaWYgKG1fYXNzb2NpYXRlZERPTVdp
bmRvdykKLSAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93LT51bnJlZ2lzdGVyUHJvcGVydHko
dGhpcyk7CisgICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+dW5yZWdpc3RlclByb3BlcnR5
KCp0aGlzKTsKICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3cgPSBudWxscHRyOwogICAgIG1fZnJh
bWUgPSBudWxscHRyOwogfQpAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgRE9NV2luZG93UHJvcGVy
dHk6OndpbGxEZXN0cm95R2xvYmFsT2JqZWN0SW5GcmFtZSgpCiAgICAgLy8gRE9NV2luZG93UHJv
cGVydHkgbGlmZXRpbWUgaXNuJ3QgdGllZCBkaXJlY3RseSB0byB0aGUgRE9NV2luZG93IGl0c2Vs
ZiBzbyBpdCBpcyBpbXBvcnRhbnQgdGhhdCBpdCB1bnJlZ2lzdGVyCiAgICAgLy8gaXRzZWxmIGZy
b20gYW55IERPTVdpbmRvdyBpdCBpcyBhc3NvY2lhdGVkIHdpdGggaWYgdGhhdCBET01XaW5kb3cg
aXMgZ29pbmcgYXdheS4KICAgICBpZiAobV9hc3NvY2lhdGVkRE9NV2luZG93KQotICAgICAgICBt
X2Fzc29jaWF0ZWRET01XaW5kb3ctPnVucmVnaXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAgICAgICAg
bV9hc3NvY2lhdGVkRE9NV2luZG93LT51bnJlZ2lzdGVyUHJvcGVydHkoKnRoaXMpOwogICAgIG1f
YXNzb2NpYXRlZERPTVdpbmRvdyA9IG51bGxwdHI7CiAgICAgbV9mcmFtZSA9IG51bGxwdHI7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCmluZGV4IGNhYTA3YTQ3
YmVlOGYxOWNlZTM0NGVmYTU3NmY1MGVkNDUxNDczZWEuLmFmMDgwMmJjOGJlODAzODFkMTMzMDUz
Zjc3OGZjM2E3NjM2NDNlNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQ
YWdlT3ZlcmxheXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3Zlcmxh
eXMuY3BwCkBAIC00NCw3ICs0NCw3IEBAIERlYnVnUGFnZU92ZXJsYXlzKiBEZWJ1Z1BhZ2VPdmVy
bGF5czo6c2hhcmVkRGVidWdPdmVybGF5czsKIAogY2xhc3MgUmVnaW9uT3ZlcmxheSA6IHB1Ymxp
YyBSZWZDb3VudGVkPFJlZ2lvbk92ZXJsYXk+LCBwdWJsaWMgUGFnZU92ZXJsYXk6OkNsaWVudCB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVnaW9uT3ZlcmxheT4gY3JlYXRlKE1h
aW5GcmFtZSYsIERlYnVnUGFnZU92ZXJsYXlzOjpSZWdpb25UeXBlKTsKKyAgICBzdGF0aWMgUmVm
UHRyPFJlZ2lvbk92ZXJsYXk+IGNyZWF0ZShNYWluRnJhbWUmLCBEZWJ1Z1BhZ2VPdmVybGF5czo6
UmVnaW9uVHlwZSk7CiAgICAgdmlydHVhbCB+UmVnaW9uT3ZlcmxheSgpOwogCiAgICAgdm9pZCBy
ZWNvbXB1dGVSZWdpb24oKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBib29sIE5vbkZhc3RTY3JvbGxh
YmxlUmVnaW9uT3ZlcmxheTo6dXBkYXRlUmVnaW9uKCkKICAgICByZXR1cm4gcmVnaW9uQ2hhbmdl
ZDsKIH0KIAotUGFzc1JlZlB0cjxSZWdpb25PdmVybGF5PiBSZWdpb25PdmVybGF5OjpjcmVhdGUo
TWFpbkZyYW1lJiBmcmFtZSwgRGVidWdQYWdlT3ZlcmxheXM6OlJlZ2lvblR5cGUgcmVnaW9uVHlw
ZSkKK1JlZlB0cjxSZWdpb25PdmVybGF5PiBSZWdpb25PdmVybGF5OjpjcmVhdGUoTWFpbkZyYW1l
JiBmcmFtZSwgRGVidWdQYWdlT3ZlcmxheXM6OlJlZ2lvblR5cGUgcmVnaW9uVHlwZSkKIHsKICAg
ICBzd2l0Y2ggKHJlZ2lvblR5cGUpIHsKICAgICBjYXNlIERlYnVnUGFnZU92ZXJsYXlzOjpSZWdp
b25UeXBlOjpXaGVlbEV2ZW50SGFuZGxlcnM6CkBAIC0xNjUsNyArMTY1LDcgQEAgUmVnaW9uT3Zl
cmxheTo6UmVnaW9uT3ZlcmxheShNYWluRnJhbWUmIGZyYW1lLCBDb2xvciByZWdpb25Db2xvcikK
IFJlZ2lvbk92ZXJsYXk6On5SZWdpb25PdmVybGF5KCkKIHsKICAgICBpZiAobV9vdmVybGF5KQot
ICAgICAgICBtX2ZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVy
bGF5KG1fb3ZlcmxheS5nZXQoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwor
ICAgICAgICBtX2ZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVy
bGF5KCptX292ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIH0KIAog
dm9pZCBSZWdpb25PdmVybGF5Ojp3aWxsTW92ZVRvUGFnZShQYWdlT3ZlcmxheSYsIFBhZ2UqIHBh
Z2UpCkBAIC0yNDgsNyArMjQ4LDcgQEAgUmVnaW9uT3ZlcmxheSYgRGVidWdQYWdlT3ZlcmxheXM6
OmVuc3VyZVJlZ2lvbk92ZXJsYXlGb3JGcmFtZShNYWluRnJhbWUmIGZyYW1lLAogdm9pZCBEZWJ1
Z1BhZ2VPdmVybGF5czo6c2hvd1JlZ2lvbk92ZXJsYXkoTWFpbkZyYW1lJiBmcmFtZSwgUmVnaW9u
VHlwZSByZWdpb25UeXBlKQogewogICAgIFJlZ2lvbk92ZXJsYXkmIHZpc3VhbGl6ZXIgPSBlbnN1
cmVSZWdpb25PdmVybGF5Rm9yRnJhbWUoZnJhbWUsIHJlZ2lvblR5cGUpOwotICAgIGZyYW1lLnBh
Z2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSgmdmlzdWFsaXplci5vdmVy
bGF5KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICBmcmFtZS5wYWdl
T3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkodmlzdWFsaXplci5vdmVybGF5
KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIH0KIAogdm9pZCBEZWJ1Z1Bh
Z2VPdmVybGF5czo6aGlkZVJlZ2lvbk92ZXJsYXkoTWFpbkZyYW1lJiBmcmFtZSwgUmVnaW9uVHlw
ZSByZWdpb25UeXBlKQpAQCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQgRGVidWdQYWdlT3ZlcmxheXM6
OmhpZGVSZWdpb25PdmVybGF5KE1haW5GcmFtZSYgZnJhbWUsIFJlZ2lvblR5cGUgcmVnaW9uVHlw
CiAgICAgaWYgKGl0ICE9IG1fZnJhbWVSZWdpb25PdmVybGF5cy5lbmQoKSkgewogICAgICAgICBh
dXRvJiB2aXN1YWxpemVycyA9IGl0LT52YWx1ZTsKICAgICAgICAgaWYgKFJlZ2lvbk92ZXJsYXkq
IHZpc3VhbGl6ZXIgPSB2aXN1YWxpemVyc1tpbmRleE9mKHJlZ2lvblR5cGUpXS5nZXQoKSkgewot
ICAgICAgICAgICAgZnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92
ZXJsYXkoJnZpc3VhbGl6ZXItPm92ZXJsYXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05v
dEZhZGUpOworICAgICAgICAgICAgZnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0
YWxsUGFnZU92ZXJsYXkodmlzdWFsaXplci0+b3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1v
ZGU6OkRvTm90RmFkZSk7CiAgICAgICAgICAgICB2aXN1YWxpemVyc1tpbmRleE9mKHJlZ2lvblR5
cGUpXSA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuY3BwCmluZGV4IGYyMzE4YTAzYzE0YmQxZGY4MjMyMGNjMDdjNzg5OWIyOTQyN2M2
NDYuLmRmNmNmZTA0YzI3YTNmOTg0MDIyMTlhNjZjODgyYjNkNDNiNmZlNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCBEcmFn
Q29udHJvbGxlcjo6ZHJhZ0V4aXRlZChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAjZW5kaWYK
ICAgICAgICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gZGF0YVRyYW5zZmVyID0gRGF0YVRyYW5zZmVy
OjpjcmVhdGVGb3JEcmFnQW5kRHJvcChwb2xpY3ksIGRyYWdEYXRhKTsKICAgICAgICAgZGF0YVRy
YW5zZmVyLT5zZXRTb3VyY2VPcGVyYXRpb24oZHJhZ0RhdGEuZHJhZ2dpbmdTb3VyY2VPcGVyYXRp
b25NYXNrKCkpOwotICAgICAgICBtX3BhZ2UubWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuY2Fu
Y2VsRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChkcmFnRGF0YSksIGRhdGFUcmFuc2Zlci5n
ZXQoKSk7CisgICAgICAgIG1fcGFnZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5jYW5jZWxE
cmFnQW5kRHJvcChjcmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKSwgKmRhdGFUcmFuc2Zlcik7CiAg
ICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0QWNjZXNzUG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1Bv
bGljeTo6TnVtYik7IC8vIEludmFsaWRhdGUgZGF0YVRyYW5zZmVyIGhlcmUgZm9yIHNlY3VyaXR5
LgogICAgIH0KICAgICBtb3VzZU1vdmVkSW50b0RvY3VtZW50KG51bGxwdHIpOwpAQCAtMjI3LDcg
KzIyNyw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFnT3BlcmF0aW9uKGNvbnN0
IERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICAgICAgICAgIC8vIFNlbmRpbmcgYW4gZXZlbnQgY2Fu
IHJlc3VsdCBpbiB0aGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIHZpZXcgYW5kIHBhcnQuCiAgICAgICAg
ICAgICBSZWZQdHI8RGF0YVRyYW5zZmVyPiBkYXRhVHJhbnNmZXIgPSBEYXRhVHJhbnNmZXI6OmNy
ZWF0ZUZvckRyYWdBbmREcm9wKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6UmVhZGFibGUsIGRy
YWdEYXRhKTsKICAgICAgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0U291cmNlT3BlcmF0aW9uKGRy
YWdEYXRhLmRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzaygpKTsKLSAgICAgICAgICAgIHByZXZl
bnRlZERlZmF1bHQgPSBtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLnBlcmZvcm1EcmFnQW5kRHJv
cChjcmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKSwgZGF0YVRyYW5zZmVyLmdldCgpKTsKKyAgICAg
ICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSBtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLnBlcmZv
cm1EcmFnQW5kRHJvcChjcmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKSwgKmRhdGFUcmFuc2Zlcik7
CiAgICAgICAgICAgICBkYXRhVHJhbnNmZXItPnNldEFjY2Vzc1BvbGljeShEYXRhVHJhbnNmZXJB
Y2Nlc3NQb2xpY3k6Ok51bWIpOyAvLyBJbnZhbGlkYXRlIGRhdGFUcmFuc2ZlciBoZXJlIGZvciBz
ZWN1cml0eS4KICAgICAgICAgfQogICAgICAgICBpZiAocHJldmVudGVkRGVmYXVsdCkgewpAQCAt
NTQ3LDcgKzU0Nyw3IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERyYWcoY29u
c3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogCiAgICAgaWYgKHJvb3RFZGl0YWJsZUVsZW1lbnQpIHsK
ICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IHJvb3RFZGl0YWJsZUVsZW1lbnQtPmRvY3VtZW50
KCkuZnJhbWUoKSkKLSAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS51cGRhdGVEcmFn
U3RhdGVBZnRlckVkaXREcmFnSWZOZWVkZWQocm9vdEVkaXRhYmxlRWxlbWVudC5nZXQoKSk7Cisg
ICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0
RHJhZ0lmTmVlZGVkKCpyb290RWRpdGFibGVFbGVtZW50KTsKICAgICB9CiAKICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTYyMSw3ICs2MjEsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjp0cnlESFRNTERy
YWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhLCBEcmFnT3BlcmF0aW9uJiBvcGVyYQogICAgIGRh
dGFUcmFuc2Zlci0+c2V0U291cmNlT3BlcmF0aW9uKHNyY09wTWFzayk7CiAKICAgICBQbGF0Zm9y
bU1vdXNlRXZlbnQgZXZlbnQgPSBjcmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKTsKLSAgICBpZiAo
IW1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQsIGRhdGFU
cmFuc2Zlci5nZXQoKSkpIHsKKyAgICBpZiAoIW1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBk
YXRlRHJhZ0FuZERyb3AoZXZlbnQsICpkYXRhVHJhbnNmZXIpKSB7CiAgICAgICAgIGRhdGFUcmFu
c2Zlci0+c2V0QWNjZXNzUG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7IC8v
IEludmFsaWRhdGUgZGF0YVRyYW5zZmVyIGhlcmUgZm9yIHNlY3VyaXR5LgogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDky
M2U0MTY5Zjc4ZDBhZmYwYWNiMzNkYzY5MWI4YTlhNTgwZDMwZWQuLjVhNWEzNWU2OGE3Yzg5ODhi
NmUxMzA0ZTQ4OWEyMTJhYmQ5YzczYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhl
eSBQcm9za3VyeWFrb3YgKGFwQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgRGln
aWEgUGxjLiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCkBAIC0yOCwxNiArMjgsMTIg
QEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKIAotI2lu
Y2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJBdXRvc2Nyb2xsQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNhY2hlZElt
YWdlLmgiCiAjaW5jbHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0j
aW5jbHVkZSAiQ3Vyc29yLmgiCiAjaW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgotI2luY2x1ZGUgIkRv
Y3VtZW50LmgiCi0jaW5jbHVkZSAiRG9jdW1lbnRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRHJh
Z0NvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJEcmFnU3RhdGUuaCIKICNpbmNsdWRlICJFZGl0b3Iu
aCIKQEAgLTk0LDEzICs5MCwxMyBAQAogI2luY2x1ZGUgIlVzZXJUeXBpbmdHZXN0dXJlSW5kaWNh
dG9yLmgiCiAjaW5jbHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5o
IgorI2luY2x1ZGUgIldoZWVsRXZlbnREZWx0YUZpbHRlci5oIgogI2luY2x1ZGUgIldpbmRvd3NL
ZXlib2FyZENvZGVzLmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlIDx3dGYv
QXNzZXJ0aW9ucy5oPgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0
Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAjaW5j
bHVkZSAiUGxhdGZvcm1Ub3VjaEV2ZW50SU9TLmgiCkBAIC0xNzYsMjEgKzE3Miw2IEBAIGNvbnN0
IGludCBtYXhpbXVtQ3Vyc29yU2l6ZSA9IDEyODsKIGNvbnN0IGRvdWJsZSBtaW5pbXVtQ3Vyc29y
U2NhbGUgPSAwLjAwMTsKICNlbmRpZgogCi1lbnVtIE5vQ3Vyc29yQ2hhbmdlVHlwZSB7IE5vQ3Vy
c29yQ2hhbmdlIH07Ci0KLWNsYXNzIE9wdGlvbmFsQ3Vyc29yIHsKLXB1YmxpYzoKLSAgICBPcHRp
b25hbEN1cnNvcihOb0N1cnNvckNoYW5nZVR5cGUpIDogbV9pc0N1cnNvckNoYW5nZShmYWxzZSkg
eyB9Ci0gICAgT3B0aW9uYWxDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpIDogbV9pc0N1cnNv
ckNoYW5nZSh0cnVlKSwgbV9jdXJzb3IoY3Vyc29yKSB7IH0KLQotICAgIGJvb2wgaXNDdXJzb3JD
aGFuZ2UoKSBjb25zdCB7IHJldHVybiBtX2lzQ3Vyc29yQ2hhbmdlOyB9Ci0gICAgY29uc3QgQ3Vy
c29yJiBjdXJzb3IoKSBjb25zdCB7IEFTU0VSVChtX2lzQ3Vyc29yQ2hhbmdlKTsgcmV0dXJuIG1f
Y3Vyc29yOyB9Ci0KLXByaXZhdGU6Ci0gICAgYm9vbCBtX2lzQ3Vyc29yQ2hhbmdlOwotICAgIEN1
cnNvciBtX2N1cnNvcjsKLX07Ci0KIGNsYXNzIE1heGltdW1EdXJhdGlvblRyYWNrZXIgewogcHVi
bGljOgogICAgIGV4cGxpY2l0IE1heGltdW1EdXJhdGlvblRyYWNrZXIoZG91YmxlICptYXhEdXJh
dGlvbikKQEAgLTQwNSwxMiArMzg2LDE0IEBAIEV2ZW50SGFuZGxlcjo6fkV2ZW50SGFuZGxlcigp
CiB9CiAgICAgCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKwogRHJhZ1N0YXRlJiBFdmVudEhh
bmRsZXI6OmRyYWdTdGF0ZSgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERyYWdTdGF0
ZT4gc3RhdGU7CiAgICAgcmV0dXJuIHN0YXRlOwogfQotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NV
UFBPUlQpCisKKyNlbmRpZgogICAgIAogdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyKCkKIHsKQEAg
LTgwMCwxNCArNzgzLDE1IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZl
bnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZXZlCiAKICAgICBtX21vdXNl
UHJlc3NOb2RlID0gZXZlbnQudGFyZ2V0Tm9kZSgpOwogICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+
c2V0Rm9jdXNOYXZpZ2F0aW9uU3RhcnRpbmdOb2RlKGV2ZW50LnRhcmdldE5vZGUoKSk7CisKICNp
ZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIG1fZHJhZ1N0YXJ0UG9zID0gZXZlbnQuZXZlbnQo
KS5wb3NpdGlvbigpOworICAgIG1fZHJhZ1N0YXJ0UG9zaXRpb24gPSBldmVudC5ldmVudCgpLnBv
c2l0aW9uKCk7CiAjZW5kaWYKIAotICAgIGJvb2wgc3dhbGxvd0V2ZW50ID0gZmFsc2U7CiAgICAg
bV9tb3VzZVByZXNzZWQgPSB0cnVlOwogICAgIG1fc2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlID0g
SGF2ZU5vdFN0YXJ0ZWRTZWxlY3Rpb247CiAKKyAgICBib29sIHN3YWxsb3dFdmVudCA9IGZhbHNl
OwogICAgIGlmIChldmVudC5ldmVudCgpLmNsaWNrQ291bnQoKSA9PSAyKQogICAgICAgICBzd2Fs
bG93RXZlbnQgPSBoYW5kbGVNb3VzZVByZXNzRXZlbnREb3VibGVDbGljayhldmVudCk7CiAgICAg
ZWxzZSBpZiAoZXZlbnQuZXZlbnQoKS5jbGlja0NvdW50KCkgPj0gMykKQEAgLTk3NywxMSArOTYx
LDExIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjp1cGRhdGVTZWxlY3Rpb25Gb3JNb3VzZURyYWcoY29u
c3QgSGl0VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsCiAgICAgICAgIG5ld1NlbGVjdGlvbi5zZXRF
eHRlbnQocG9zaXRpb25BZnRlck5vZGUocm9vdFVzZXJTZWxlY3RBbGxGb3JNb3VzZVByZXNzTm9k
ZSkuZG93bnN0cmVhbShDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkpOwogICAgIH0gZWxzZSB7CiAg
ICAgICAgIC8vIFJlc2V0IGJhc2UgZm9yIHVzZXIgc2VsZWN0IGFsbCB3aGVuIGJhc2UgaXMgaW5z
aWRlIHVzZXItc2VsZWN0LWFsbCBhcmVhIGFuZCBleHRlbnQgPCBiYXNlLgotICAgICAgICBpZiAo
cm9vdFVzZXJTZWxlY3RBbGxGb3JNb3VzZVByZXNzTm9kZSAmJiBjb21wYXJlUG9zaXRpb25zKHRh
cmdldC0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChoaXRUZXN0UmVzdWx0LmxvY2FsUG9p
bnQoKSwgbnVsbHB0ciksIG1fbW91c2VQcmVzc05vZGUtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9y
UG9pbnQobV9kcmFnU3RhcnRQb3MsIG51bGxwdHIpKSA8IDApCisgICAgICAgIGlmIChyb290VXNl
clNlbGVjdEFsbEZvck1vdXNlUHJlc3NOb2RlICYmIGNvbXBhcmVQb3NpdGlvbnModGFyZ2V0LT5y
ZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50KGhpdFRlc3RSZXN1bHQubG9jYWxQb2ludCgpLCBu
dWxscHRyKSwgbV9tb3VzZVByZXNzTm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludCht
X2RyYWdTdGFydFBvc2l0aW9uLCBudWxscHRyKSkgPCAwKQogICAgICAgICAgICAgbmV3U2VsZWN0
aW9uLnNldEJhc2UocG9zaXRpb25BZnRlck5vZGUocm9vdFVzZXJTZWxlY3RBbGxGb3JNb3VzZVBy
ZXNzTm9kZSkuZG93bnN0cmVhbShDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkpOwogICAgICAgICAK
ICAgICAgICAgTm9kZSogcm9vdFVzZXJTZWxlY3RBbGxGb3JUYXJnZXQgPSBQb3NpdGlvbjo6cm9v
dFVzZXJTZWxlY3RBbGxGb3JOb2RlKHRhcmdldCk7Ci0gICAgICAgIGlmIChyb290VXNlclNlbGVj
dEFsbEZvclRhcmdldCAmJiBtX21vdXNlUHJlc3NOb2RlLT5yZW5kZXJlcigpICYmIGNvbXBhcmVQ
b3NpdGlvbnModGFyZ2V0LT5yZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50KGhpdFRlc3RSZXN1
bHQubG9jYWxQb2ludCgpLCBudWxscHRyKSwgbV9tb3VzZVByZXNzTm9kZS0+cmVuZGVyZXIoKS0+
cG9zaXRpb25Gb3JQb2ludChtX2RyYWdTdGFydFBvcywgbnVsbHB0cikpIDwgMCkKKyAgICAgICAg
aWYgKHJvb3RVc2VyU2VsZWN0QWxsRm9yVGFyZ2V0ICYmIG1fbW91c2VQcmVzc05vZGUtPnJlbmRl
cmVyKCkgJiYgY29tcGFyZVBvc2l0aW9ucyh0YXJnZXQtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9y
UG9pbnQoaGl0VGVzdFJlc3VsdC5sb2NhbFBvaW50KCksIG51bGxwdHIpLCBtX21vdXNlUHJlc3NO
b2RlLT5yZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50KG1fZHJhZ1N0YXJ0UG9zaXRpb24sIG51
bGxwdHIpKSA8IDApCiAgICAgICAgICAgICBuZXdTZWxlY3Rpb24uc2V0RXh0ZW50KHBvc2l0aW9u
QmVmb3JlTm9kZShyb290VXNlclNlbGVjdEFsbEZvclRhcmdldCkudXBzdHJlYW0oQ2FuQ3Jvc3NF
ZGl0aW5nQm91bmRhcnkpKTsKICAgICAgICAgZWxzZSBpZiAocm9vdFVzZXJTZWxlY3RBbGxGb3JU
YXJnZXQgJiYgbV9tb3VzZVByZXNzTm9kZS0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgIG5ld1Nl
bGVjdGlvbi5zZXRFeHRlbnQocG9zaXRpb25BZnRlck5vZGUocm9vdFVzZXJTZWxlY3RBbGxGb3JU
YXJnZXQpLmRvd25zdHJlYW0oQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpKTsKQEAgLTEwNDcsNyAr
MTAzMSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVJlbGVhc2VFdmVudChjb25z
dCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBlCiAgICAgLy8gZWRpdGluZywgcGxhY2Ug
dGhlIGNhcmV0LgogICAgIGlmIChtX21vdXNlRG93bldhc1NpbmdsZUNsaWNrSW5TZWxlY3Rpb24g
JiYgbV9zZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgIT0gRXh0ZW5kZWRTZWxlY3Rpb24KICNpZiBF
TkFCTEUoRFJBR19TVVBQT1JUKQotICAgICAgICAgICAgJiYgbV9kcmFnU3RhcnRQb3MgPT0gZXZl
bnQuZXZlbnQoKS5wb3NpdGlvbigpCisgICAgICAgICAgICAmJiBtX2RyYWdTdGFydFBvc2l0aW9u
ID09IGV2ZW50LmV2ZW50KCkucG9zaXRpb24oKQogI2VuZGlmCiAgICAgICAgICAgICAmJiBtX2Zy
YW1lLnNlbGVjdGlvbigpLmlzUmFuZ2UoKQogICAgICAgICAgICAgJiYgZXZlbnQuZXZlbnQoKS5i
dXR0b24oKSAhPSBSaWdodEJ1dHRvbikgewpAQCAtMTA4NCwxMiArMTA2OCwxMiBAQCB2b2lkIEV2
ZW50SGFuZGxlcjo6ZGlkUGFuU2Nyb2xsU3RvcCgpCiAgICAgbV9hdXRvc2Nyb2xsQ29udHJvbGxl
ci0+ZGlkUGFuU2Nyb2xsU3RvcCgpOwogfQogCi12b2lkIEV2ZW50SGFuZGxlcjo6c3RhcnRQYW5T
Y3JvbGxpbmcoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIpCit2b2lkIEV2ZW50SGFuZGxlcjo6c3Rh
cnRQYW5TY3JvbGxpbmcoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiB7CiAjaWYgIVBMQVRGT1JN
KElPUykKLSAgICBpZiAoIWlzPFJlbmRlckJveD4oKnJlbmRlcmVyKSkKKyAgICBpZiAoIWlzPFJl
bmRlckJveD4ocmVuZGVyZXIpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9hdXRvc2Nyb2xsQ29u
dHJvbGxlci0+c3RhcnRQYW5TY3JvbGxpbmcoZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlciks
IGxhc3RLbm93bk1vdXNlUG9zaXRpb24oKSk7CisgICAgbV9hdXRvc2Nyb2xsQ29udHJvbGxlci0+
c3RhcnRQYW5TY3JvbGxpbmcoJmRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIpLCBsYXN0S25v
d25Nb3VzZVBvc2l0aW9uKCkpOwogICAgIGludmFsaWRhdGVDbGljaygpOwogI2VuZGlmCiB9CkBA
IC0xMzc0LDI0ICsxMzU4LDI4IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjp1cGRhdGVDdXJzb3IoKQog
ICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KHZpZXctPndpbmRvd1RvQ29udGVudHMobV9sYXN0S25v
d25Nb3VzZVBvc2l0aW9uKSk7CiAgICAgcmVuZGVyVmlldy0+aGl0VGVzdChyZXF1ZXN0LCByZXN1
bHQpOwogCi0gICAgT3B0aW9uYWxDdXJzb3Igb3B0aW9uYWxDdXJzb3IgPSBzZWxlY3RDdXJzb3Io
cmVzdWx0LCBzaGlmdEtleSk7Ci0gICAgaWYgKG9wdGlvbmFsQ3Vyc29yLmlzQ3Vyc29yQ2hhbmdl
KCkpIHsKLSAgICAgICAgbV9jdXJyZW50TW91c2VDdXJzb3IgPSBvcHRpb25hbEN1cnNvci5jdXJz
b3IoKTsKLSAgICAgICAgdmlldy0+c2V0Q3Vyc29yKG1fY3VycmVudE1vdXNlQ3Vyc29yKTsKKyAg
ICB1cGRhdGVDdXJzb3IoKnZpZXcsIHJlc3VsdCwgc2hpZnRLZXkpOworfQorCit2b2lkIEV2ZW50
SGFuZGxlcjo6dXBkYXRlQ3Vyc29yKEZyYW1lVmlldyYgdmlldywgY29uc3QgSGl0VGVzdFJlc3Vs
dCYgcmVzdWx0LCBib29sIHNoaWZ0S2V5KQoreworICAgIGlmIChhdXRvIG9wdGlvbmFsQ3Vyc29y
ID0gc2VsZWN0Q3Vyc29yKHJlc3VsdCwgc2hpZnRLZXkpKSB7CisgICAgICAgIG1fY3VycmVudE1v
dXNlQ3Vyc29yID0gV1RGTW92ZShvcHRpb25hbEN1cnNvci52YWx1ZSgpKTsKKyAgICAgICAgdmll
dy5zZXRDdXJzb3IobV9jdXJyZW50TW91c2VDdXJzb3IpOwogICAgIH0KIH0KIAotT3B0aW9uYWxD
dXJzb3IgRXZlbnRIYW5kbGVyOjpzZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVz
dWx0LCBib29sIHNoaWZ0S2V5KQorc3RkOjpvcHRpb25hbDxDdXJzb3I+IEV2ZW50SGFuZGxlcjo6
c2VsZWN0Q3Vyc29yKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaGlmdEtleSkK
IHsKICAgICBpZiAobV9yZXNpemVMYXllciAmJiBtX3Jlc2l6ZUxheWVyLT5pblJlc2l6ZU1vZGUo
KSkKLSAgICAgICAgcmV0dXJuIE5vQ3Vyc29yQ2hhbmdlOworICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwogCiAgICAgaWYgKCFtX2ZyYW1lLnBhZ2UoKSkKLSAgICAgICAgcmV0dXJuIE5vQ3Vy
c29yQ2hhbmdlOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAjaWYgRU5BQkxFKFBB
Tl9TQ1JPTExJTkcpCiAgICAgaWYgKG1fZnJhbWUubWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCku
cGFuU2Nyb2xsSW5Qcm9ncmVzcygpKQotICAgICAgICByZXR1cm4gTm9DdXJzb3JDaGFuZ2U7Cisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAjZW5kaWYKIAogICAgIFJlZjxGcmFtZT4gcHJv
dGVjdGVkRnJhbWUobV9mcmFtZSk7CkBAIC0xNDA2LDcgKzEzOTQsNyBAQCBPcHRpb25hbEN1cnNv
ciBFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQs
IGJvb2wgc2hpZgogCiAgICAgTm9kZSogbm9kZSA9IHJlc3VsdC50YXJnZXROb2RlKCk7CiAgICAg
aWYgKCFub2RlKQotICAgICAgICByZXR1cm4gTm9DdXJzb3JDaGFuZ2U7CisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAKICAgICBhdXRvIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsK
ICAgICBhdXRvKiBzdHlsZSA9IHJlbmRlcmVyID8gJnJlbmRlcmVyLT5zdHlsZSgpIDogbnVsbHB0
cjsKQEAgLTE0MjgsNyArMTQxNiw3IEBAIE9wdGlvbmFsQ3Vyc29yIEV2ZW50SGFuZGxlcjo6c2Vs
ZWN0Q3Vyc29yKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaGlmCiAgICAgICAg
IGNhc2UgU2V0Q3Vyc29yOgogICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRlQ3Vyc29yOwogICAg
ICAgICBjYXNlIERvTm90U2V0Q3Vyc29yOgotICAgICAgICAgICAgcmV0dXJuIE5vQ3Vyc29yQ2hh
bmdlOworICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgIH0K
IApAQCAtMTk0NywxNSArMTkzNSwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VN
b3ZlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybU1vdXNlRQogICAgICAg
ICAvLyBub2RlIHRvIGJlIGRldGFjaGVkIGZyb20gaXRzIEZyYW1lVmlldywgaW4gd2hpY2ggY2Fz
ZSB0aGUgZXZlbnQgc2hvdWxkIG5vdCBiZSBwYXNzZWQuCiAgICAgICAgIGlmIChuZXdTdWJmcmFt
ZS0+dmlldygpKQogICAgICAgICAgICAgc3dhbGxvd0V2ZW50IHw9IHBhc3NNb3VzZU1vdmVFdmVu
dFRvU3ViZnJhbWUobW91c2VFdmVudCwgbmV3U3ViZnJhbWUuZ2V0KCksIGhvdmVyZWROb2RlKTsK
LSNpZiBFTkFCTEUoQ1VSU09SX1NVUFBPUlQpCiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKEZy
YW1lVmlldyogdmlldyA9IG1fZnJhbWUudmlldygpKSB7Ci0gICAgICAgICAgICBPcHRpb25hbEN1
cnNvciBvcHRpb25hbEN1cnNvciA9IHNlbGVjdEN1cnNvcihtb3VzZUV2ZW50LmhpdFRlc3RSZXN1
bHQoKSwgcGxhdGZvcm1Nb3VzZUV2ZW50LnNoaWZ0S2V5KCkpOwotICAgICAgICAgICAgaWYgKG9w
dGlvbmFsQ3Vyc29yLmlzQ3Vyc29yQ2hhbmdlKCkpIHsKLSAgICAgICAgICAgICAgICBtX2N1cnJl
bnRNb3VzZUN1cnNvciA9IG9wdGlvbmFsQ3Vyc29yLmN1cnNvcigpOwotICAgICAgICAgICAgICAg
IHZpZXctPnNldEN1cnNvcihtX2N1cnJlbnRNb3VzZUN1cnNvcik7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIH0KKyNpZiBFTkFCTEUoQ1VSU09SX1NVUFBPUlQpCisgICAgICAgIGlmIChhdXRvKiB2
aWV3ID0gbV9mcmFtZS52aWV3KCkpCisgICAgICAgICAgICB1cGRhdGVDdXJzb3IoKnZpZXcsIG1v
dXNlRXZlbnQuaGl0VGVzdFJlc3VsdCgpLCBwbGF0Zm9ybU1vdXNlRXZlbnQuc2hpZnRLZXkoKSk7
CiAjZW5kaWYKICAgICB9CiAgICAgCkBAIC0xOTY4LDcgKzE5NTEsNyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6aGFuZGxlTW91c2VNb3ZlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0
Zm9ybU1vdXNlRQogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgaWYgKCFzd2FsbG93RXZl
bnQpCiAgICAgICAgIHN3YWxsb3dFdmVudCA9IGhhbmRsZU1vdXNlRHJhZ2dlZEV2ZW50KG1vdXNl
RXZlbnQpOwotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjZW5kaWYKIAogICAgIHJl
dHVybiBzd2FsbG93RXZlbnQ7CiB9CkBAIC0yMjM2LDcgKzIyMTksNyBAQCBzdGF0aWMgYm9vbCBm
aW5kRHJvcFpvbmUoTm9kZSogdGFyZ2V0LCBEYXRhVHJhbnNmZXIqIGRhdGFUcmFuc2ZlcikKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAgICAgCi1ib29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0Fu
ZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyKiBkYXRh
VHJhbnNmZXIpCitib29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxh
dGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIpCiB7CiAg
ICAgUmVmPEZyYW1lPiBwcm90ZWN0ZWRGcmFtZShtX2ZyYW1lKTsKIApAQCAtMjI3NSwxNiArMjI1
OCwxNiBAQCBib29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZgogICAgICAgICAgICAgICAgIC8vIGZvciBu
b3cgd2UgZG9uJ3QgY2FyZSBpZiBldmVudCBoYW5kbGVyIGNhbmNlbHMgZGVmYXVsdCBiZWhhdmlv
ciwgc2luY2UgdGhlcmUgaXMgbm9uZQogICAgICAgICAgICAgICAgIGRpc3BhdGNoRHJhZ1NyY0V2
ZW50KGV2ZW50TmFtZXMoKS5kcmFnRXZlbnQsIGV2ZW50KTsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGFjY2VwdCA9IGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnZW50ZXJF
dmVudCwgKm5ld1RhcmdldCwgZXZlbnQsIGRhdGFUcmFuc2Zlcik7CisgICAgICAgICAgICBhY2Nl
cHQgPSBkaXNwYXRjaERyYWdFdmVudChldmVudE5hbWVzKCkuZHJhZ2VudGVyRXZlbnQsICpuZXdU
YXJnZXQsIGV2ZW50LCAmZGF0YVRyYW5zZmVyKTsKICAgICAgICAgICAgIGlmICghYWNjZXB0KQot
ICAgICAgICAgICAgICAgIGFjY2VwdCA9IGZpbmREcm9wWm9uZShuZXdUYXJnZXQuZ2V0KCksIGRh
dGFUcmFuc2Zlcik7CisgICAgICAgICAgICAgICAgYWNjZXB0ID0gZmluZERyb3Bab25lKG5ld1Rh
cmdldC5nZXQoKSwgJmRhdGFUcmFuc2Zlcik7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAodGFy
Z2V0SXNGcmFtZShtX2RyYWdUYXJnZXQuZ2V0KCksIHRhcmdldEZyYW1lKSkgewogICAgICAgICAg
ICAgaWYgKHRhcmdldEZyYW1lKQogICAgICAgICAgICAgICAgIGFjY2VwdCA9IHRhcmdldEZyYW1l
LT5ldmVudEhhbmRsZXIoKS51cGRhdGVEcmFnQW5kRHJvcChldmVudCwgZGF0YVRyYW5zZmVyKTsK
ICAgICAgICAgfSBlbHNlIGlmIChtX2RyYWdUYXJnZXQpCi0gICAgICAgICAgICBkaXNwYXRjaERy
YWdFdmVudChldmVudE5hbWVzKCkuZHJhZ2xlYXZlRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50
LCBkYXRhVHJhbnNmZXIpOworICAgICAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1l
cygpLmRyYWdsZWF2ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgJmRhdGFUcmFuc2Zlcik7
CiAKICAgICAgICAgaWYgKG5ld1RhcmdldCkgewogICAgICAgICAgICAgLy8gV2UgZG8gbm90IGV4
cGxpY2l0bHkgY2FsbCBkaXNwYXRjaERyYWdFdmVudCBoZXJlIGJlY2F1c2UgaXQgY291bGQgdWx0
aW1hdGVseSByZXN1bHQgaW4gdGhlIGFwcGVhcmFuY2UgdGhhdApAQCAtMjMwMiw5ICsyMjg1LDkg
QEAgYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91
c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2YKICAgICAgICAgICAgICAgICAvLyBmb3Igbm93IHdl
IGRvbid0IGNhcmUgaWYgZXZlbnQgaGFuZGxlciBjYW5jZWxzIGRlZmF1bHQgYmVoYXZpb3IsIHNp
bmNlIHRoZXJlIGlzIG5vbmUKICAgICAgICAgICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVudChl
dmVudE5hbWVzKCkuZHJhZ0V2ZW50LCBldmVudCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVudChldmVudE5hbWVzKCkuZHJhZ292ZXJFdmVudCwg
Km5ld1RhcmdldCwgZXZlbnQsIGRhdGFUcmFuc2Zlcik7CisgICAgICAgICAgICBhY2NlcHQgPSBk
aXNwYXRjaERyYWdFdmVudChldmVudE5hbWVzKCkuZHJhZ292ZXJFdmVudCwgKm5ld1RhcmdldCwg
ZXZlbnQsICZkYXRhVHJhbnNmZXIpOwogICAgICAgICAgICAgaWYgKCFhY2NlcHQpCi0gICAgICAg
ICAgICAgICAgYWNjZXB0ID0gZmluZERyb3Bab25lKG5ld1RhcmdldC5nZXQoKSwgZGF0YVRyYW5z
ZmVyKTsKKyAgICAgICAgICAgICAgICBhY2NlcHQgPSBmaW5kRHJvcFpvbmUobmV3VGFyZ2V0Lmdl
dCgpLCAmZGF0YVRyYW5zZmVyKTsKICAgICAgICAgICAgIG1fc2hvdWxkT25seUZpcmVEcmFnT3Zl
ckV2ZW50ID0gZmFsc2U7CiAgICAgICAgIH0KICAgICB9CkBAIC0yMzEyLDcgKzIyOTUsNyBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiBldmVudCwgRGF0YVRyYW5zZgogICAgIHJldHVybiBhY2NlcHQ7CiB9CiAKLXZvaWQgRXZl
bnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2
ZW50LCBEYXRhVHJhbnNmZXIqIGRhdGFUcmFuc2ZlcikKK3ZvaWQgRXZlbnRIYW5kbGVyOjpjYW5j
ZWxEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNm
ZXImIGRhdGFUcmFuc2ZlcikKIHsKICAgICBSZWY8RnJhbWU+IHByb3RlY3RlZEZyYW1lKG1fZnJh
bWUpOwogCkBAIC0yMzIzLDEyICsyMzA2LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxE
cmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmCiAg
ICAgfSBlbHNlIGlmIChtX2RyYWdUYXJnZXQpIHsKICAgICAgICAgaWYgKGRyYWdTdGF0ZSgpLnNv
dXJjZSAmJiBkcmFnU3RhdGUoKS5zaG91bGREaXNwYXRjaEV2ZW50cykKICAgICAgICAgICAgIGRp
c3BhdGNoRHJhZ1NyY0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnRXZlbnQsIGV2ZW50KTsKLSAgICAg
ICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50LCAqbV9kcmFn
VGFyZ2V0LCBldmVudCwgZGF0YVRyYW5zZmVyKTsKKyAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQo
ZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgJmRhdGFU
cmFuc2Zlcik7CiAgICAgfQogICAgIGNsZWFyRHJhZ1N0YXRlKCk7CiB9CiAKLWJvb2wgRXZlbnRI
YW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVu
dCwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIpCitib29sIEV2ZW50SGFuZGxlcjo6cGVyZm9y
bURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2Zl
ciYgZGF0YVRyYW5zZmVyKQogewogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9mcmFt
ZSk7CiAKQEAgLTIzMzgsNyArMjMyMSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJh
Z0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zCiAgICAg
ICAgIGlmICh0YXJnZXRGcmFtZSkKICAgICAgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSB0YXJn
ZXRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkucGVyZm9ybURyYWdBbmREcm9wKGV2ZW50LCBkYXRhVHJh
bnNmZXIpOwogICAgIH0gZWxzZSBpZiAobV9kcmFnVGFyZ2V0KQotICAgICAgICBwcmV2ZW50ZWRE
ZWZhdWx0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyb3BFdmVudCwgKm1fZHJh
Z1RhcmdldCwgZXZlbnQsIGRhdGFUcmFuc2Zlcik7CisgICAgICAgIHByZXZlbnRlZERlZmF1bHQg
PSBkaXNwYXRjaERyYWdFdmVudChldmVudE5hbWVzKCkuZHJvcEV2ZW50LCAqbV9kcmFnVGFyZ2V0
LCBldmVudCwgJmRhdGFUcmFuc2Zlcik7CiAgICAgY2xlYXJEcmFnU3RhdGUoKTsKICAgICByZXR1
cm4gcHJldmVudGVkRGVmYXVsdDsKIH0KQEAgLTIzNTMsOSArMjMzNiwxMCBAQCB2b2lkIEV2ZW50
SGFuZGxlcjo6Y2xlYXJEcmFnU3RhdGUoKQogICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0g
ZmFsc2U7CiAjZW5kaWYKIH0KKwogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKLXZv
aWQgRXZlbnRIYW5kbGVyOjpzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQoUGFzc1JlZlB0
cjxFbGVtZW50PiBlbGVtZW50KQordm9pZCBFdmVudEhhbmRsZXI6OnNldENhcHR1cmluZ01vdXNl
RXZlbnRzRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQogewogICAgIG1fY2FwdHVyaW5nTW91c2VF
dmVudHNFbGVtZW50ID0gZWxlbWVudDsKICAgICBtX2V2ZW50SGFuZGxlcldpbGxSZXNldENhcHR1
cmluZ01vdXNlRXZlbnRzRWxlbWVudCA9IGZhbHNlOwpAQCAtMjU2Myw3ICsyNTQ3LDcgQEAgYm9v
bCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgTm9kZSogdGFyZ2UKIAogICAgIC8vIElmIGZvY3VzIHNoaWZ0IGlzIGJsb2NrZWQs
IHdlIGVhdCB0aGUgZXZlbnQuCiAgICAgYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpOwotICAg
IGlmIChwYWdlICYmICFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChl
bGVtZW50LCAmbV9mcmFtZSkpCisgICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPmZvY3VzQ29udHJvbGxl
cigpLnNldEZvY3VzZWRFbGVtZW50KGVsZW1lbnQsIG1fZnJhbWUpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTM0MTEsMTEgKzMzOTUsMTEgQEAgdm9pZCBF
dmVudEhhbmRsZXI6OmRyYWdTb3VyY2VFbmRlZEF0KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYg
ZXZlbnQsIERyYWdPcGVyYXQKICAgICBtX21vdXNlRG93bk1heVN0YXJ0RHJhZyA9IGZhbHNlOwog
fQogCi12b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVl
ZGVkKEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnQpCit2b2lkIEV2ZW50SGFuZGxlcjo6dXBk
YXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKEVsZW1lbnQmIHJvb3RFZGl0YWJsZUVs
ZW1lbnQpCiB7CiAgICAgLy8gSWYgaW5zZXJ0aW5nIHRoZSBkcmFnZ2VkIGNvbnRlbnRzIHJlbW92
ZWQgdGhlIGRyYWcgc291cmNlLCB3ZSBzdGlsbCB3YW50IHRvIGZpcmUgZHJhZ2VuZCBhdCB0aGUg
cm9vdCBlZGl0YWJsZSBlbGVtZW50LgogICAgIGlmIChkcmFnU3RhdGUoKS5zb3VyY2UgJiYgIWRy
YWdTdGF0ZSgpLnNvdXJjZS0+aW5Eb2N1bWVudCgpKQotICAgICAgICBkcmFnU3RhdGUoKS5zb3Vy
Y2UgPSByb290RWRpdGFibGVFbGVtZW50OworICAgICAgICBkcmFnU3RhdGUoKS5zb3VyY2UgPSAm
cm9vdEVkaXRhYmxlRWxlbWVudDsKIH0KIAogLy8gUmV0dXJuIHZhbHVlIGluZGljYXRlcyBpZiB3
ZSBzaG91bGQgY29udGludWUgImRlZmF1bHQgcHJvY2Vzc2luZyIsIGkuZS4sIHdoZXRoZXIgZXZl
bnQgaGFuZGxlciBjYW5jZWxlZC4KQEAgLTM2MjUsMjUgKzM2MDksMjQgQEAgYm9vbCBFdmVudEhh
bmRsZXI6OmhhbmRsZVRleHRJbnB1dEV2ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXZlbnQqIHVu
ZGVybHlpbmdFdmUKICAgICByZXR1cm4gZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCk7CiB9CiAgICAg
Ci1ib29sIEV2ZW50SGFuZGxlcjo6aXNLZXlib2FyZE9wdGlvblRhYihLZXlib2FyZEV2ZW50KiBl
dmVudCkKK2Jvb2wgRXZlbnRIYW5kbGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKEtleWJvYXJkRXZl
bnQmIGV2ZW50KQogewotICAgIHJldHVybiBldmVudAotICAgICAgICAmJiAoZXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnRO
YW1lcygpLmtleXByZXNzRXZlbnQpCi0gICAgICAgICYmIGV2ZW50LT5hbHRLZXkoKQotICAgICAg
ICAmJiBldmVudC0+a2V5SWRlbnRpZmllcigpID09ICJVKzAwMDkiOyAgICAKKyAgICByZXR1cm4g
KGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50IHx8IGV2ZW50LnR5cGUo
KSA9PSBldmVudE5hbWVzKCkua2V5cHJlc3NFdmVudCkKKyAgICAgICAgJiYgZXZlbnQuYWx0S2V5
KCkKKyAgICAgICAgJiYgZXZlbnQua2V5SWRlbnRpZmllcigpID09ICJVKzAwMDkiOwogfQogCi1i
b29sIEV2ZW50SGFuZGxlcjo6ZXZlbnRJbnZlcnRzVGFic1RvTGlua3NDbGllbnRDYWxsUmVzdWx0
KEtleWJvYXJkRXZlbnQqIGV2ZW50KQorYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1Rh
YnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdChLZXlib2FyZEV2ZW50JiBldmVudCkKIHsKICNpZiBQ
TEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oRUZMKQotICAgIHJldHVybiBFdmVudEhhbmRsZXI6
OmlzS2V5Ym9hcmRPcHRpb25UYWIoZXZlbnQpOworICAgIHJldHVybiBpc0tleWJvYXJkT3B0aW9u
VGFiKGV2ZW50KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGV2ZW50KTsKICAgICByZXR1cm4g
ZmFsc2U7CiAjZW5kaWYKIH0KIAotYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0xpbmtzKEtleWJv
YXJkRXZlbnQqIGV2ZW50KSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0xpbmtzKEtl
eWJvYXJkRXZlbnQmIGV2ZW50KSBjb25zdAogewogICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9u
IG5lZWRzIGEgYmV0dGVyIG5hbWUuIEl0IGNhbiBiZSBjYWxsZWQgZm9yIGtleXByZXNzZXMgb3Ro
ZXIgdGhhbiBUYWIgd2hlbiBzcGF0aWFsIG5hdmlnYXRpb24gaXMgZW5hYmxlZC4KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggZGU3OGJjYWU4NGE3NjY0ZGUyOGQ1ZDE3OTA2Yjlh
M2RiMmUxYjQyMy4uNmVkN2FlMzM5NWM4MDI2M2Q0YTc3MDBmY2EwYWYwZjZlZjkxOGMyZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNi0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsMzAgKzMxLDMxIEBACiAjaW5jbHVk
ZSAiSGl0VGVzdFJlcXVlc3QuaCIKICNpbmNsdWRlICJMYXlvdXRQb2ludC5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtTW91c2VFdmVudC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgog
I2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50SW5wdXRUeXBlLmgi
CiAjaW5jbHVkZSAiVGV4dEdyYW51bGFyaXR5LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNs
dWRlICJXaGVlbEV2ZW50RGVsdGFGaWx0ZXIuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVk
ZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0
Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCisjaWYgUExBVEZPUk0oQ09DT0EpCitP
QkpDX0NMQVNTIE5TVmlldzsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogT0JKQ19DTEFT
UyBXZWJFdmVudDsKLU9CSkNfQ0xBU1MgV0FLVmlldzsKLSNpZmRlZiBfX09CSkNfXwotI2luY2x1
ZGUgIldBS0FwcEtpdFN0dWJzLmgiCiAjZW5kaWYKLSNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAK
LSNpZiBQTEFURk9STShDT0NPQSkKLU9CSkNfQ0xBU1MgTlNWaWV3OworI2lmIFBMQVRGT1JNKE1B
QykKK09CSkNfQ0xBU1MgTlNFdmVudDsKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TKSAmJiBk
ZWZpbmVkKF9fT0JKQ19fKQorI2luY2x1ZGUgIldBS0FwcEtpdFN0dWJzLmgiCiAjZW5kaWYKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjYsMTYgKzY3LDE0IEBAIGNsYXNzIERvY3VtZW50Owog
Y2xhc3MgRWxlbWVudDsKIGNsYXNzIEV2ZW50OwogY2xhc3MgRXZlbnRUYXJnZXQ7Ci1jbGFzcyBG
bG9hdFBvaW50OwogY2xhc3MgRmxvYXRRdWFkOwogY2xhc3MgRnJhbWU7CitjbGFzcyBGcmFtZVZp
ZXc7CiBjbGFzcyBIVE1MRnJhbWVTZXRFbGVtZW50OwotY2xhc3MgSGl0VGVzdFJlcXVlc3Q7CiBj
bGFzcyBIaXRUZXN0UmVzdWx0OwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE1vdXNlRXZl
bnRXaXRoSGl0VGVzdFJlc3VsdHM7CiBjbGFzcyBOb2RlOwotY2xhc3MgT3B0aW9uYWxDdXJzb3I7
CiBjbGFzcyBQbGF0Zm9ybUdlc3R1cmVFdmVudDsKIGNsYXNzIFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dDsKIGNsYXNzIFBsYXRmb3JtVG91Y2hFdmVudDsKQEAgLTEwMCw3ICs5OSw3IEBAIGV4dGVybiBj
b25zdCBpbnQgTGlua0RyYWdIeXN0ZXJlc2lzOwogZXh0ZXJuIGNvbnN0IGludCBJbWFnZURyYWdI
eXN0ZXJlc2lzOwogZXh0ZXJuIGNvbnN0IGludCBUZXh0RHJhZ0h5c3RlcmVzaXM7CiBleHRlcm4g
Y29uc3QgaW50IEdlbmVyYWxEcmFnSHlzdGVyZXNpczsKLSNlbmRpZiAvLyBFTkFCTEUoRFJBR19T
VVBQT1JUKQorI2VuZGlmCiAKICNpZiBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKSB8fCBFTkFC
TEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogZXh0ZXJuIGNvbnN0IGZsb2F0IEdlc3R1cmVVbmtub3du
OwpAQCAtMTIwLDcgKzExOSw2IEBAIGVudW0gY2xhc3MgSW1tZWRpYXRlQWN0aW9uU3RhZ2Ugewog
fTsKIAogY2xhc3MgRXZlbnRIYW5kbGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFdmVu
dEhhbmRsZXIpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4
cGxpY2l0IEV2ZW50SGFuZGxlcihGcmFtZSYpOwpAQCAtMTM2LDcgKzEzNCw3IEBAIHB1YmxpYzoK
ICNpZiBFTkFCTEUoUEFOX1NDUk9MTElORykKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0YXJ0KCk7
CiAgICAgdm9pZCBkaWRQYW5TY3JvbGxTdG9wKCk7Ci0gICAgdm9pZCBzdGFydFBhblNjcm9sbGlu
ZyhSZW5kZXJFbGVtZW50Kik7CisgICAgdm9pZCBzdGFydFBhblNjcm9sbGluZyhSZW5kZXJFbGVt
ZW50Jik7CiAjZW5kaWYKIAogICAgIHZvaWQgc3RvcEF1dG9zY3JvbGxUaW1lcihib29sIHJlbmRl
cmVySXNCZWluZ0Rlc3Ryb3llZCA9IGZhbHNlKTsKQEAgLTE1NiwxMyArMTU0LDEzIEBAIHB1Ymxp
YzoKICAgICBib29sIG1vdXNlUHJlc3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VQcmVzc2Vk
OyB9CiAgICAgTm9kZSogbW91c2VQcmVzc05vZGUoKSBjb25zdCB7IHJldHVybiBtX21vdXNlUHJl
c3NOb2RlLmdldCgpOyB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhcHR1cmluZ01v
dXNlRXZlbnRzRWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsgLy8gQSBjYWxsZXIgaXMgcmVz
cG9uc2libGUgZm9yIHJlc2V0dGluZyBjYXB0dXJpbmcgZWxlbWVudCB0byAwLgorICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KEVsZW1lbnQqKTsK
IAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgYm9vbCB1cGRhdGVEcmFnQW5kRHJvcChj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXIqKTsKLSAgICB2b2lkIGNhbmNl
bERyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwot
ICAgIGJvb2wgcGVyZm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERh
dGFUcmFuc2ZlciopOwotICAgIHZvaWQgdXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVl
ZGVkKEVsZW1lbnQqIHJvb3RFZGl0YWJsZUVsZW1lbnQpOworICAgIGJvb2wgdXBkYXRlRHJhZ0Fu
ZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyJik7CisgICAgdm9p
ZCBjYW5jZWxEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNm
ZXImKTsKKyAgICBib29sIHBlcmZvcm1EcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZl
bnQmLCBEYXRhVHJhbnNmZXImKTsKKyAgICB2b2lkIHVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERy
YWdJZk5lZWRlZChFbGVtZW50JiByb290RWRpdGFibGVFbGVtZW50KTsKICNlbmRpZgogCiAgICAg
dm9pZCBzY2hlZHVsZUhvdmVyU3RhdGVVcGRhdGUoKTsKQEAgLTE4Nyw4ICsxODUsOCBAQCBwdWJs
aWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JvbGxSZWN1cnNpdmVseShTY3JvbGxEaXJl
Y3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBOb2RlKiBzdGFydGluZ05vZGUgPSBudWxscHRyKTsK
ICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGxvZ2ljYWxTY3JvbGxSZWN1cnNpdmVseShTY3JvbGxM
b2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgTm9kZSogc3RhcnRpbmdOb2RlID0g
bnVsbHB0cik7CiAKLSAgICBib29sIHRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQqKSBjb25zdDsK
LSAgICBib29sIHRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KikgY29uc3Q7Cisg
ICAgYm9vbCB0YWJzVG9MaW5rcyhLZXlib2FyZEV2ZW50JikgY29uc3Q7CisgICAgYm9vbCB0YWJz
VG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCYpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBtb3VzZU1vdmVkKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwogICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgcGFzc01vdXNlTW92ZWRFdmVudFRvU2Nyb2xsYmFycyhjb25zdCBQ
bGF0Zm9ybU1vdXNlRXZlbnQmKTsKQEAgLTIxMCwxMiArMjA4LDEyIEBAIHB1YmxpYzoKICAgICB2
b2lkIHBsYXRmb3JtTm90aWZ5SWZFbmRHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYs
IGNvbnN0IFdlYWtQdHI8U2Nyb2xsYWJsZUFyZWE+Jik7CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNI
X0VWRU5UUykgfHwgRU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykKLSAgICB0eXBlZGVmIFZlY3Rv
cjxSZWZQdHI8VG91Y2g+PiBUb3VjaEFycmF5OwotICAgIHR5cGVkZWYgSGFzaE1hcDxFdmVudFRh
cmdldCosIFRvdWNoQXJyYXkqPiBFdmVudFRhcmdldFRvdWNoTWFwOworICAgIHVzaW5nIFRvdWNo
QXJyYXkgPSBWZWN0b3I8UmVmUHRyPFRvdWNoPj47CisgICAgdXNpbmcgRXZlbnRUYXJnZXRUb3Vj
aE1hcCA9IEhhc2hNYXA8RXZlbnRUYXJnZXQqLCBUb3VjaEFycmF5Kj47CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKSB8fCBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKSB8
fCBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQotICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8
RXZlbnRUYXJnZXQ+PiBFdmVudFRhcmdldFNldDsKKyAgICB1c2luZyBFdmVudFRhcmdldFNldCA9
IEhhc2hTZXQ8UmVmUHRyPEV2ZW50VGFyZ2V0Pj47CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJT1Nf
VE9VQ0hfRVZFTlRTKQpAQCAtMjMxLDcgKzIyOSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oSU9TKQotICAgIHZvaWQgZGVmYXVsdFRvdWNoRXZlbnRIYW5kbGVyKE5vZGUqLCBU
b3VjaEV2ZW50Kik7CisgICAgdm9pZCBkZWZhdWx0VG91Y2hFdmVudEhhbmRsZXIoTm9kZSYsIFRv
dWNoRXZlbnQmKTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0yNjQs
OCArMjYyLDcgQEAgcHVibGljOgogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VuZFNj
cm9sbEV2ZW50KCk7CiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgZGVmaW5lZChfX09CSkNfXykK
LSNpZiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIG1vdXNlRG93bihOU0V2ZW50ICosIE5TRXZlbnQgKmNvcnJlc3BvbmRpbmdQcmVzc3Vy
ZUV2ZW50KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlRHJhZ2dlZChOU0V2ZW50ICos
IE5TRXZlbnQgKmNvcnJlc3BvbmRpbmdQcmVzc3VyZUV2ZW50KTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIG1vdXNlVXAoTlNFdmVudCAqLCBOU0V2ZW50ICpjb3JyZXNwb25kaW5nUHJlc3N1cmVF
dmVudCk7CkBAIC0yNzMsNyArMjcwLDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcHJlc3N1cmVDaGFuZ2UoTlNFdmVudCAqLCBOU0V2ZW50KiBjb3JyZXNwb25kaW5nUHJlc3N1
cmVFdmVudCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBrZXlFdmVudChOU0V2ZW50ICopOwog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgd2hlZWxFdmVudChOU0V2ZW50ICopOwotI2Vsc2UKKyNl
bmRpZgorCisjaWYgUExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW91c2VE
b3duKFdlYkV2ZW50ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW91c2VVcChXZWJFdmVu
dCAqKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlTW92ZWQoV2ViRXZlbnQgKik7CkBA
IC0yODUsMjMgKzI4NCwyMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB0b3Vj
aEV2ZW50KFdlYkV2ZW50ICopOwogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKQorI2lmIFBM
QVRGT1JNKE1BQykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBhc3NNb3VzZU1vdmVkRXZlbnRU
b1Njcm9sbGJhcnMoTlNFdmVudCAqLCBOU0V2ZW50KiBjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVu
dCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRU
cmFja2luZyhOU0V2ZW50ICppbml0aWF0aW5nRXZlbnQpOwotI2VuZGlmCiAKLSNpZiAhUExBVEZP
Uk0oSU9TKQogICAgIHZvaWQgc2V0QWN0aXZhdGlvbkV2ZW50TnVtYmVyKGludCBudW0pIHsgbV9h
Y3RpdmF0aW9uRXZlbnROdW1iZXIgPSBudW07IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBOU0V2ZW50ICpjdXJyZW50TlNFdmVudCgpOwogICAgIHN0YXRpYyBOU0V2ZW50ICpjb3JyZXNw
b25kaW5nUHJlc3N1cmVFdmVudCgpOwotI2Vsc2UKLSAgICBzdGF0aWMgV2ViRXZlbnQgKmN1cnJl
bnRFdmVudCgpOwotI2VuZGlmIC8vICFQTEFURk9STShJT1MpCi0jZW5kaWYgLy8gUExBVEZPUk0o
Q09DT0EpICYmIGRlZmluZWQoX19PQkpDX18pCisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykK
KyAgICBzdGF0aWMgV2ViRXZlbnQgKmN1cnJlbnRFdmVudCgpOworCiAgICAgdm9pZCBpbnZhbGlk
YXRlQ2xpY2soKTsKICNlbmRpZgogCkBAIC0zMjMsOSArMzE5LDggQEAgcHJpdmF0ZToKICNpZiBF
TkFCTEUoRFJBR19TVVBQT1JUKQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOwog
ICAgIHN0YXRpYyBjb25zdCBkb3VibGUgVGV4dERyYWdEZWxheTsKLSAgICAKLSAgICBQYXNzUmVm
UHRyPERhdGFUcmFuc2Zlcj4gY3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdDsKLSNl
bmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQorICAgIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3Q7CisjZW5kaWYKIAogICAgIGJvb2wgZXZlbnRB
Y3RpdmF0ZWRWaWV3KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpIGNvbnN0OwogICAgIGJvb2wg
dXBkYXRlU2VsZWN0aW9uRm9yTW91c2VEb3duRGlzcGF0Y2hpbmdTZWxlY3RTdGFydChOb2RlKiwg
Y29uc3QgVmlzaWJsZVNlbGVjdGlvbiYsIFRleHRHcmFudWxhcml0eSk7CkBAIC0zNDEsMTQgKzMz
NiwxOCBAQCBwcml2YXRlOgogICAgIGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2ZW50U2luZ2xlQ2xp
Y2soY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwogICAgIGJvb2wgaGFuZGxl
TW91c2VQcmVzc0V2ZW50RG91YmxlQ2xpY2soY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVz
dWx0cyYpOwogICAgIGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2ZW50VHJpcGxlQ2xpY2soY29uc3Qg
TW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKICAgICBib29sIGhhbmRsZU1vdXNlRHJhZ2dlZEV2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRo
SGl0VGVzdFJlc3VsdHMmKTsKICNlbmRpZgorCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5k
bGVNb3VzZVJlbGVhc2VFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7
CiAKLSAgICBPcHRpb25hbEN1cnNvciBzZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYs
IGJvb2wgc2hpZnRLZXkpOworICAgIHN0ZDo6b3B0aW9uYWw8Q3Vyc29yPiBzZWxlY3RDdXJzb3Io
Y29uc3QgSGl0VGVzdFJlc3VsdCYsIGJvb2wgc2hpZnRLZXkpOworICAgIHZvaWQgdXBkYXRlQ3Vy
c29yKEZyYW1lVmlldyYsIGNvbnN0IEhpdFRlc3RSZXN1bHQmLCBib29sIHNoaWZ0S2V5KTsKIAog
ICAgIHZvaWQgaG92ZXJUaW1lckZpcmVkKCk7CisKICNpZiBFTkFCTEUoQ1VSU09SX1NVUFBPUlQp
CiAgICAgdm9pZCBjdXJzb3JVcGRhdGVUaW1lckZpcmVkKCk7CiAjZW5kaWYKQEAgLTM1OSw4ICsz
NTgsOCBAQCBwcml2YXRlOgogICAgIAogICAgIGJvb2wgbW91c2VEb3duTWF5U3RhcnRTZWxlY3Qo
KSBjb25zdCB7IHJldHVybiBtX21vdXNlRG93bk1heVN0YXJ0U2VsZWN0OyB9CiAKLSAgICBzdGF0
aWMgYm9vbCBpc0tleWJvYXJkT3B0aW9uVGFiKEtleWJvYXJkRXZlbnQqKTsKLSAgICBzdGF0aWMg
Ym9vbCBldmVudEludmVydHNUYWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQoS2V5Ym9hcmRFdmVu
dCopOworICAgIHN0YXRpYyBib29sIGlzS2V5Ym9hcmRPcHRpb25UYWIoS2V5Ym9hcmRFdmVudCYp
OworICAgIHN0YXRpYyBib29sIGV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3Vs
dChLZXlib2FyZEV2ZW50Jik7CiAKICNpZiAhRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAg
dm9pZCBmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVkKCk7CkBAIC0zODUsNiArMzg0LDcgQEAg
cHJpdmF0ZToKICAgICBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIHByZXBhcmVNb3VzZUV2
ZW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jik7CiAK
ICAgICBib29sIGRpc3BhdGNoTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgTm9kZSogdGFyZ2V0LCBib29sIGNhbmNlbGFibGUsIGludCBjbGlja0NvdW50LCBjb25zdCBQ
bGF0Zm9ybU1vdXNlRXZlbnQmLCBib29sIHNldFVuZGVyKTsKKwogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCiAgICAgYm9vbCBkaXNwYXRjaERyYWdFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2
ZW50VHlwZSwgRWxlbWVudCYgdGFyZ2V0LCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRh
VHJhbnNmZXIqKTsKIApAQCAtMzkyLDcgKzM5Miw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIGhh
bmRsZURyYWcoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIENoZWNrRHJhZ0h5
c3RlcmVzaXMpOwogI2VuZGlmCisKICAgICBib29sIGhhbmRsZU1vdXNlVXAoY29uc3QgTW91c2VF
dmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAg
ICB2b2lkIGNsZWFyRHJhZ1N0YXRlKCk7CiAKQEAgLTQwMCw3ICs0MDIsNyBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBkcmFnSHlzdGVyZXNpc0V4Y2VlZGVkKGNvbnN0IEZsb2F0UG9pbnQmKSBjb25z
dDsKICAgICBib29sIGRyYWdIeXN0ZXJlc2lzRXhjZWVkZWQoY29uc3QgSW50UG9pbnQmKSBjb25z
dDsKLSNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2VuZGlmCiAgICAgCiAgICAgYm9v
bCBtb3VzZU1vdmVtZW50RXhjZWVkc1RocmVzaG9sZChjb25zdCBGbG9hdFBvaW50JiwgaW50IHBv
aW50c1RocmVzaG9sZCkgY29uc3Q7CiAKQEAgLTQzMSwxMSArNDMzLDkgQEAgcHJpdmF0ZToKICAg
ICAvLyBUaGUgZm9sbG93aW5nIGFyZSBjYWxsZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBoYW5kbGVN
b3VzZVVwIGFuZCBoYW5kbGVEcmFnLiAgCiAgICAgLy8gSWYgdGhleSByZXR1cm4gdHJ1ZSBpdCBp
bmRpY2F0ZXMgdGhhdCB0aGV5IGhhdmUgY29uc3VtZWQgdGhlIGV2ZW50LgogICAgIGJvb2wgZXZl
bnRMb29wSGFuZGxlTW91c2VVcChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7
Ci0jaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBib29sIGV2ZW50TG9vcEhhbmRsZU1vdXNl
RHJhZ2dlZChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7Ci0jZW5kaWYKIAog
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisgICAgYm9vbCBldmVudExvb3BIYW5kbGVNb3VzZURy
YWdnZWQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwogICAgIHZvaWQgdXBk
YXRlU2VsZWN0aW9uRm9yTW91c2VEcmFnKGNvbnN0IEhpdFRlc3RSZXN1bHQmKTsKICNlbmRpZgog
CkBAIC00NzMsMjEgKzQ3MywyNCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxOb2RlPiBtX21vdXNl
UHJlc3NOb2RlOwogCiAgICAgYm9vbCBtX21vdXNlRG93bk1heVN0YXJ0U2VsZWN0IHsgZmFsc2Ug
fTsKKwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgYm9vbCBtX21vdXNlRG93bk1heVN0
YXJ0RHJhZyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2RyYWdNYXlTdGFydFNlbGVjdGlvbkluc3Rl
YWQgeyBmYWxzZSB9OwogI2VuZGlmCisKICAgICBib29sIG1fbW91c2VEb3duV2FzU2luZ2xlQ2xp
Y2tJblNlbGVjdGlvbiB7IGZhbHNlIH07CiAgICAgZW51bSBTZWxlY3Rpb25Jbml0aWF0aW9uU3Rh
dGUgeyBIYXZlTm90U3RhcnRlZFNlbGVjdGlvbiwgUGxhY2VkQ2FyZXQsIEV4dGVuZGVkU2VsZWN0
aW9uIH07CiAgICAgU2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlIG1fc2VsZWN0aW9uSW5pdGlhdGlv
blN0YXRlIHsgSGF2ZU5vdFN0YXJ0ZWRTZWxlY3Rpb24gfTsKIAogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCi0gICAgTGF5b3V0UG9pbnQgbV9kcmFnU3RhcnRQb3M7CisgICAgTGF5b3V0UG9pbnQg
bV9kcmFnU3RhcnRQb3NpdGlvbjsKICNlbmRpZgogCiAgICAgYm9vbCBtX3BhblNjcm9sbEJ1dHRv
blByZXNzZWQgeyBmYWxzZSB9OwogCiAgICAgVGltZXIgbV9ob3ZlclRpbWVyOworCiAjaWYgRU5B
QkxFKENVUlNPUl9TVVBQT1JUKQogICAgIFRpbWVyIG1fY3Vyc29yVXBkYXRlVGltZXI7CiAjZW5k
aWYKQEAgLTQ5NSw2ICs0OTgsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBU
aW1lciBtX3BlbmRpbmdNb21lbnR1bVdoZWVsRXZlbnRzVGltZXI7CiAjZW5kaWYKKwogICAgIHN0
ZDo6dW5pcXVlX3B0cjxBdXRvc2Nyb2xsQ29udHJvbGxlcj4gbV9hdXRvc2Nyb2xsQ29udHJvbGxl
cjsKICAgICBib29sIG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Nyb2xsIHsgZmFsc2UgfTsKICAg
ICBib29sIG1fbW91c2VEb3duV2FzSW5TdWJmcmFtZSB7IGZhbHNlIH07CkBAIC01MjMsMTEgKzUy
NywxMyBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1fZ2VzdHVyZUluaXRpYWxEaWFtZXRlciB7IEdl
c3R1cmVVbmtub3duIH07CiAgICAgZmxvYXQgbV9nZXN0dXJlSW5pdGlhbFJvdGF0aW9uIHsgR2Vz
dHVyZVVua25vd24gfTsKICNlbmRpZgorCiAjaWYgRU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykg
fHwgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKICAgICBmbG9hdCBtX2dlc3R1cmVMYXN0RGlh
bWV0ZXIgeyBHZXN0dXJlVW5rbm93biB9OwogICAgIGZsb2F0IG1fZ2VzdHVyZUxhc3RSb3RhdGlv
biB7IEdlc3R1cmVVbmtub3duIH07CiAgICAgRXZlbnRUYXJnZXRTZXQgbV9nZXN0dXJlVGFyZ2V0
czsKICNlbmRpZgorCiAjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKICAgICBib29sIG1f
aGFzQWN0aXZlR2VzdHVyZSB7IGZhbHNlIH07CiAjZW5kaWYKQEAgLTU1OCwxMiArNTY0LDE0IEBA
IHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgTlNWaWV3ICptX21vdXNlRG93blZp
ZXcgeyBudWxscHRyIH07CiAgICAgYm9vbCBtX3NlbmRpbmdFdmVudFRvU3VidmlldyB7IGZhbHNl
IH07Ci0jaWYgIVBMQVRGT1JNKElPUykKLSAgICBpbnQgbV9hY3RpdmF0aW9uRXZlbnROdW1iZXIg
eyAtMSB9OwogI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgaW50IG1fYWN0aXZhdGlv
bkV2ZW50TnVtYmVyIHsgLTEgfTsKICNlbmRpZgorCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykg
JiYgIUVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQotICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFJl
ZlB0cjxFdmVudFRhcmdldD4+IFRvdWNoVGFyZ2V0TWFwOworICAgIHVzaW5nIFRvdWNoVGFyZ2V0
TWFwID0gSGFzaE1hcDxpbnQsIFJlZlB0cjxFdmVudFRhcmdldD4+OwogICAgIFRvdWNoVGFyZ2V0
TWFwIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0czsKICAgICBSZWZQdHI8RG9jdW1lbnQ+
IG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50RG9jdW1lbnQ7CiAgICAgdW5zaWduZWQgbV9vcmlnaW5h
dGluZ1RvdWNoUG9pbnRUYXJnZXRLZXkgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29u
dHJvbGxlci5jcHAKaW5kZXggYTdiMjU1N2U2OTQ2ZGI5ZTU2MTE1N2FkZjcyY2MyODI2ZWZlODc0
Ny4uNWFhODZjOTljODlmM2FmZWRkYTk3NTg5NmQ3MmMyMDcxNWQ5NTU4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcApAQCAtMzE2LDcgKzMxNiw3IEBAIEZvY3VzQ29u
dHJvbGxlcjo6Rm9jdXNDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIEFjdGl2aXR5U3RhdGU6OkZsYWdz
IGFjdGl2aXR5U3RhdGUpCiB7CiB9CiAKLXZvaWQgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2Vk
RnJhbWUoUGFzc1JlZlB0cjxGcmFtZT4gZnJhbWUpCit2b2lkIEZvY3VzQ29udHJvbGxlcjo6c2V0
Rm9jdXNlZEZyYW1lKEZyYW1lKiBmcmFtZSkKIHsKICAgICBBU1NFUlQoIWZyYW1lIHx8IGZyYW1l
LT5wYWdlKCkgPT0gJm1fcGFnZSk7CiAgICAgaWYgKG1fZm9jdXNlZEZyYW1lID09IGZyYW1lIHx8
IG1faXNDaGFuZ2luZ0ZvY3VzZWRGcmFtZSkKQEAgLTc2NSw4ICs3NjUsOSBAQCBzdGF0aWMgdm9p
ZCBjbGVhclNlbGVjdGlvbklmTmVlZGVkKEZyYW1lKiBvbGRGb2N1c2VkRnJhbWUsIEZyYW1lKiBu
ZXdGb2N1c2VkRnJhbQogICAgIG9sZEZvY3VzZWRGcmFtZS0+c2VsZWN0aW9uKCkuY2xlYXIoKTsK
IH0KIAotYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqIGVs
ZW1lbnQsIFBhc3NSZWZQdHI8RnJhbWU+IG5ld0ZvY3VzZWRGcmFtZSwgRm9jdXNEaXJlY3Rpb24g
ZGlyZWN0aW9uKQorYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1l
bnQqIGVsZW1lbnQsIEZyYW1lJiBuZXdGb2N1c2VkRnJhbWUsIEZvY3VzRGlyZWN0aW9uIGRpcmVj
dGlvbikKIHsKKyAgICBSZWY8RnJhbWU+IHByb3RlY3RlZE5ld0ZvY3VzZWRGcmFtZSA9IG5ld0Zv
Y3VzZWRGcmFtZTsKICAgICBSZWZQdHI8RnJhbWU+IG9sZEZvY3VzZWRGcmFtZSA9IGZvY3VzZWRG
cmFtZSgpOwogICAgIFJlZlB0cjxEb2N1bWVudD4gb2xkRG9jdW1lbnQgPSBvbGRGb2N1c2VkRnJh
bWUgPyBvbGRGb2N1c2VkRnJhbWUtPmRvY3VtZW50KCkgOiBudWxscHRyOwogICAgIApAQCAtNzgw
LDcgKzc4MSw3IEBAIGJvb2wgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRWxlbWVudChFbGVt
ZW50KiBlbGVtZW50LCBQYXNzUmVmUHRyPEZyYW1lPiBuZXdGCiAKICAgICBtX3BhZ2UuZWRpdG9y
Q2xpZW50KCkud2lsbFNldElucHV0TWV0aG9kU3RhdGUoKTsKIAotICAgIGNsZWFyU2VsZWN0aW9u
SWZOZWVkZWQob2xkRm9jdXNlZEZyYW1lLmdldCgpLCBuZXdGb2N1c2VkRnJhbWUuZ2V0KCksIGVs
ZW1lbnQpOworICAgIGNsZWFyU2VsZWN0aW9uSWZOZWVkZWQob2xkRm9jdXNlZEZyYW1lLmdldCgp
LCAmbmV3Rm9jdXNlZEZyYW1lLCBlbGVtZW50KTsKIAogICAgIGlmICghZWxlbWVudCkgewogICAg
ICAgICBpZiAob2xkRG9jdW1lbnQpCkBAIC03OTksMTEgKzgwMCwxMSBAQCBib29sIEZvY3VzQ29u
dHJvbGxlcjo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUGFzc1JlZlB0cjxG
cmFtZT4gbmV3RgogICAgIGlmIChvbGREb2N1bWVudCAmJiBvbGREb2N1bWVudCAhPSBuZXdEb2N1
bWVudC5wdHIoKSkKICAgICAgICAgb2xkRG9jdW1lbnQtPnNldEZvY3VzZWRFbGVtZW50KG51bGxw
dHIpOwogCi0gICAgaWYgKG5ld0ZvY3VzZWRGcmFtZSAmJiAhbmV3Rm9jdXNlZEZyYW1lLT5wYWdl
KCkpIHsKKyAgICBpZiAoIW5ld0ZvY3VzZWRGcmFtZS5wYWdlKCkpIHsKICAgICAgICAgc2V0Rm9j
dXNlZEZyYW1lKG51bGxwdHIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHNl
dEZvY3VzZWRGcmFtZShuZXdGb2N1c2VkRnJhbWUpOworICAgIHNldEZvY3VzZWRGcmFtZSgmbmV3
Rm9jdXNlZEZyYW1lKTsKIAogICAgIFJlZjxFbGVtZW50PiBwcm90ZWN0KCplbGVtZW50KTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmgKaW5kZXggZWNiZTM5NjFkYTFmNWIwMDVi
MDFiY2M4MjUxNmI1MGEyN2E4ZTJhZS4uYzZkY2YyMjIwOTM1ZWNiYjFmY2JkNDIyMWYyY2EyZDk0
NzNmNzdhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDEy
ICszMCwxMCBAQAogI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAj
aW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBG
b2N1c0NhbmRpZGF0ZTsKIGNsYXNzIENvbnRhaW5lck5vZGU7CiBjbGFzcyBEb2N1bWVudDsKIGNs
YXNzIEVsZW1lbnQ7CkBAIC00OCwxOSArNDYsMjEgQEAgY2xhc3MgTm9kZTsKIGNsYXNzIFBhZ2U7
CiBjbGFzcyBUcmVlU2NvcGU7CiAKK3N0cnVjdCBGb2N1c0NhbmRpZGF0ZTsKKwogY2xhc3MgRm9j
dXNDb250cm9sbGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGb2N1c0NvbnRyb2xsZXIp
OyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBleHBsaWNpdCBGb2N1c0NvbnRyb2xsZXIoUGFnZSYsIEFjdGl2aXR5U3Rh
dGU6OkZsYWdzKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Rm9jdXNlZEZyYW1lKFBh
c3NSZWZQdHI8RnJhbWU+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZvY3VzZWRGcmFt
ZShGcmFtZSopOwogICAgIEZyYW1lKiBmb2N1c2VkRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2Zv
Y3VzZWRGcmFtZS5nZXQoKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lJiBmb2N1c2VkT3JN
YWluRnJhbWUoKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0SW5pdGlhbEZv
Y3VzKEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50Kik7CiAgICAgYm9vbCBhZHZhbmNlRm9j
dXMoRm9jdXNEaXJlY3Rpb24sIEtleWJvYXJkRXZlbnQmLCBib29sIGluaXRpYWxGb2N1cyA9IGZh
bHNlKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVu
dCosIFBhc3NSZWZQdHI8RnJhbWU+LCBGb2N1c0RpcmVjdGlvbiA9IEZvY3VzRGlyZWN0aW9uTm9u
ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50Kiwg
RnJhbWUmLCBGb2N1c0RpcmVjdGlvbiA9IEZvY3VzRGlyZWN0aW9uTm9uZSk7CiAKICAgICB2b2lk
IHNldEFjdGl2aXR5U3RhdGUoQWN0aXZpdHlTdGF0ZTo6RmxhZ3MpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCmluZGV4IGVkYTNjZjZiNGJlM2U5OTI1YjI1MWM1NjdhODRlNDlmNzEwMDZlY2YuLjg3OGVl
MWNiMjIwMzY0ZDQ4MDRjMTNkNDBhMmM4ODEyZjc5OTMyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
CkBAIC03NzcsNyArNzc3LDcgQEAgdm9pZCBGcmFtZTo6d2lsbERldGFjaFBhZ2UoKQogCiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIGlmIChXZWJUaHJlYWRDb3VudE9mT2JzZXJ2ZWRDb250ZW50TW9k
aWZpZXJzKCkgPiAwICYmIG1fcGFnZSkKLSAgICAgICAgbV9wYWdlLT5jaHJvbWUoKS5jbGllbnQo
KS5jbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnModGhpcyk7CisgICAgICAgIG1fcGFnZS0+Y2hy
b21lKCkuY2xpZW50KCkuY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKCp0aGlzKTsKICNlbmRp
ZgogCiAgICAgc2NyaXB0KCkuY2xlYXJTY3JpcHRPYmplY3RzKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
VHJlZS5jcHAKaW5kZXggZGVlYjIzYjc1ODQ0OWJiZmU1YzU1ZjE5ZDgwZDA0OTI4MjkxMTdhYS4u
ZmRjZjM1NjBlZTRiMTlmYTk4MDZkNDkzNDBhMjMzODFhOWJhYmUyNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVUcmVlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYs
IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChD
KSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKQEAgLTYzLDI1ICs2Myw2IEBAIEZyYW1lKiBGcmFtZVRyZWU6OnBhcmVudCgp
IGNvbnN0CiAgICAgcmV0dXJuIG1fcGFyZW50OwogfQogCi1ib29sIEZyYW1lVHJlZTo6dHJhbnNm
ZXJDaGlsZChQYXNzUmVmUHRyPEZyYW1lPiBjaGlsZCkKLXsKLSAgICBGcmFtZSogb2xkUGFyZW50
ID0gY2hpbGQtPnRyZWUoKS5wYXJlbnQoKTsKLSAgICBpZiAob2xkUGFyZW50ID09ICZtX3RoaXNG
cmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyB8Y2hpbGR8IGlzIGFscmVhZHkgYSBjaGls
ZCBvZiBtX3RoaXNGcmFtZS4KLQotICAgIGlmIChvbGRQYXJlbnQpCi0gICAgICAgIG9sZFBhcmVu
dC0+dHJlZSgpLnJlbW92ZUNoaWxkKGNoaWxkLmdldCgpKTsKLQotICAgIEFTU0VSVChjaGlsZC0+
cGFnZSgpID09IG1fdGhpc0ZyYW1lLnBhZ2UoKSk7Ci0gICAgY2hpbGQtPnRyZWUoKS5tX3BhcmVu
dCA9ICZtX3RoaXNGcmFtZTsKLQotICAgIC8vIFdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGNo
aWxkIHN0aWxsIGhhcyBhIHVuaXF1ZSBmcmFtZSBuYW1lIHdpdGggcmVzcGVjdCB0byBpdHMgbmV3
IHBhcmVudC4KLSAgICBjaGlsZC0+dHJlZSgpLnNldE5hbWUoY2hpbGQtPnRyZWUoKS5tX25hbWUp
OwotCi0gICAgYWN0dWFsbHlBcHBlbmRDaGlsZChjaGlsZCk7IC8vIE5vdGUsIG9uIHJldHVybiB8
Y2hpbGR8IGlzIG51bGwuCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHVuc2lnbmVkIEZyYW1lVHJl
ZTo6aW5kZXhJblBhcmVudCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BhcmVudCkKQEAgLTk1LDQ2
ICs3NiwzMiBAQCB1bnNpZ25lZCBGcmFtZVRyZWU6OmluZGV4SW5QYXJlbnQoKSBjb25zdAogICAg
IFJFTEVBU0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgRnJhbWVUcmVlOjphcHBl
bmRDaGlsZChQYXNzUmVmUHRyPEZyYW1lPiBjaGlsZCkKLXsKLSAgICBBU1NFUlQoY2hpbGQtPnBh
Z2UoKSA9PSBtX3RoaXNGcmFtZS5wYWdlKCkpOwotICAgIGNoaWxkLT50cmVlKCkubV9wYXJlbnQg
PSAmbV90aGlzRnJhbWU7Ci0gICAgYWN0dWFsbHlBcHBlbmRDaGlsZChjaGlsZCk7IC8vIE5vdGUs
IG9uIHJldHVybiB8Y2hpbGR8IGlzIG51bGwuCi19Ci0KLXZvaWQgRnJhbWVUcmVlOjphY3R1YWxs
eUFwcGVuZENoaWxkKFBhc3NSZWZQdHI8RnJhbWU+IGNoaWxkKQordm9pZCBGcmFtZVRyZWU6OmFw
cGVuZENoaWxkKEZyYW1lJiBjaGlsZCkKIHsKLSAgICBBU1NFUlQoY2hpbGQtPnRyZWUoKS5tX3Bh
cmVudCA9PSAmbV90aGlzRnJhbWUpOworICAgIEFTU0VSVChjaGlsZC5wYWdlKCkgPT0gbV90aGlz
RnJhbWUucGFnZSgpKTsKKyAgICBjaGlsZC50cmVlKCkubV9wYXJlbnQgPSAmbV90aGlzRnJhbWU7
CiAgICAgRnJhbWUqIG9sZExhc3QgPSBtX2xhc3RDaGlsZDsKLSAgICBtX2xhc3RDaGlsZCA9IGNo
aWxkLmdldCgpOworICAgIG1fbGFzdENoaWxkID0gJmNoaWxkOwogCiAgICAgaWYgKG9sZExhc3Qp
IHsKLSAgICAgICAgY2hpbGQtPnRyZWUoKS5tX3ByZXZpb3VzU2libGluZyA9IG9sZExhc3Q7Ci0g
ICAgICAgIG9sZExhc3QtPnRyZWUoKS5tX25leHRTaWJsaW5nID0gY2hpbGQ7CisgICAgICAgIGNo
aWxkLnRyZWUoKS5tX3ByZXZpb3VzU2libGluZyA9IG9sZExhc3Q7CisgICAgICAgIG9sZExhc3Qt
PnRyZWUoKS5tX25leHRTaWJsaW5nID0gJmNoaWxkOwogICAgIH0gZWxzZQotICAgICAgICBtX2Zp
cnN0Q2hpbGQgPSBjaGlsZDsKKyAgICAgICAgbV9maXJzdENoaWxkID0gJmNoaWxkOwogCiAgICAg
bV9zY29wZWRDaGlsZENvdW50ID0gaW52YWxpZENvdW50OwogCiAgICAgQVNTRVJUKCFtX2xhc3RD
aGlsZC0+dHJlZSgpLm1fbmV4dFNpYmxpbmcpOwogfQogCi12b2lkIEZyYW1lVHJlZTo6cmVtb3Zl
Q2hpbGQoRnJhbWUqIGNoaWxkKQordm9pZCBGcmFtZVRyZWU6OnJlbW92ZUNoaWxkKEZyYW1lJiBj
aGlsZCkKIHsKLSAgICBjaGlsZC0+dHJlZSgpLm1fcGFyZW50ID0gbnVsbHB0cjsKLQotICAgIC8v
IFNsaWdodGx5IHRyaWNreSB3YXkgdG8gcHJldmVudCBkZWxldGluZyB0aGUgY2hpbGQgdW50aWwg
d2UgYXJlIGRvbmUgd2l0aCBpdCwgdy9vCi0gICAgLy8gZXh0cmEgcmVmcy4gVGhlc2Ugc3dhcHMg
bGVhdmUgdGhlIGNoaWxkIGluIGEgY2lyY3VsYXIgbGlzdCBieSBpdHNlbGYuIENsZWFyaW5nIGl0
cwotICAgIC8vIHByZXZpb3VzIGFuZCBuZXh0IHdpbGwgdGhlbiBmaW5hbGx5IGRlcmVmIGl0Lgot
Ci0gICAgUmVmUHRyPEZyYW1lPiYgbmV3TG9jYXRpb25Gb3JOZXh0ID0gbV9maXJzdENoaWxkID09
IGNoaWxkID8gbV9maXJzdENoaWxkIDogY2hpbGQtPnRyZWUoKS5tX3ByZXZpb3VzU2libGluZy0+
dHJlZSgpLm1fbmV4dFNpYmxpbmc7Ci0gICAgRnJhbWUqJiBuZXdMb2NhdGlvbkZvclByZXZpb3Vz
ID0gbV9sYXN0Q2hpbGQgPT0gY2hpbGQgPyBtX2xhc3RDaGlsZCA6IGNoaWxkLT50cmVlKCkubV9u
ZXh0U2libGluZy0+dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nOwotICAgIHN3YXAobmV3TG9jYXRp
b25Gb3JOZXh0LCBjaGlsZC0+dHJlZSgpLm1fbmV4dFNpYmxpbmcpOwotICAgIC8vIEZvciBzb21l
IGluZXhwbGljYWJsZSByZWFzb24sIHRoZSBmb2xsb3dpbmcgbGluZSBkb2VzIG5vdCBjb21waWxl
IHdpdGhvdXQgdGhlIGV4cGxpY2l0IHN0ZDo6IG5hbWVzcGFjZQotICAgIHN0ZDo6c3dhcChuZXdM
b2NhdGlvbkZvclByZXZpb3VzLCBjaGlsZC0+dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nKTsKKyAg
ICBGcmFtZSomIG5ld0xvY2F0aW9uRm9yUHJldmlvdXMgPSBtX2xhc3RDaGlsZCA9PSAmY2hpbGQg
PyBtX2xhc3RDaGlsZCA6IGNoaWxkLnRyZWUoKS5tX25leHRTaWJsaW5nLT50cmVlKCkubV9wcmV2
aW91c1NpYmxpbmc7CisgICAgUmVmUHRyPEZyYW1lPiYgbmV3TG9jYXRpb25Gb3JOZXh0ID0gbV9m
aXJzdENoaWxkID09ICZjaGlsZCA/IG1fZmlyc3RDaGlsZCA6IGNoaWxkLnRyZWUoKS5tX3ByZXZp
b3VzU2libGluZy0+dHJlZSgpLm1fbmV4dFNpYmxpbmc7CiAKLSAgICBjaGlsZC0+dHJlZSgpLm1f
cHJldmlvdXNTaWJsaW5nID0gbnVsbHB0cjsKLSAgICBjaGlsZC0+dHJlZSgpLm1fbmV4dFNpYmxp
bmcgPSBudWxscHRyOworICAgIGNoaWxkLnRyZWUoKS5tX3BhcmVudCA9IG51bGxwdHI7CisgICAg
bmV3TG9jYXRpb25Gb3JQcmV2aW91cyA9IHN0ZDo6ZXhjaGFuZ2UoY2hpbGQudHJlZSgpLm1fcHJl
dmlvdXNTaWJsaW5nLCBudWxscHRyKTsKKyAgICBuZXdMb2NhdGlvbkZvck5leHQgPSBXVEZNb3Zl
KGNoaWxkLnRyZWUoKS5tX25leHRTaWJsaW5nKTsKIAogICAgIG1fc2NvcGVkQ2hpbGRDb3VudCA9
IGludmFsaWRDb3VudDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVU
cmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oCmluZGV4IGFiMTZmMGFkNjM5
NjI1YWUyZDc4YzE3OWYxMzUzYmI4NGM5OGFlMWEuLjNmODdjMjc5YmRjM2EwNjRmZTg4ODA4YjYw
M2EyYWNmN2YyZGM3ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuaApAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgSW5jLgorICogQ29weXJpZ2h0IChDKSAy
MDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC02NSwxMCArNjUsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUq
IHRyYXZlcnNlTmV4dFdpdGhXcmFwKGJvb2wpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEZy
YW1lKiB0cmF2ZXJzZVByZXZpb3VzV2l0aFdyYXAoYm9vbCkgY29uc3Q7CiAgICAgCi0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPEZyYW1lPik7Ci0gICAgYm9v
bCB0cmFuc2ZlckNoaWxkKFBhc3NSZWZQdHI8RnJhbWU+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGFwcGVuZENoaWxkKEZyYW1lJik7CiAgICAgdm9pZCBkZXRhY2hGcm9tUGFyZW50KCkgeyBt
X3BhcmVudCA9IG51bGxwdHI7IH0KLSAgICB2b2lkIHJlbW92ZUNoaWxkKEZyYW1lKik7CisgICAg
dm9pZCByZW1vdmVDaGlsZChGcmFtZSYpOwogCiAgICAgRnJhbWUqIGNoaWxkKHVuc2lnbmVkIGlu
ZGV4KSBjb25zdDsKICAgICBGcmFtZSogY2hpbGQoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBj
b25zdDsKQEAgLTg3LDcgKzg2LDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEZyYW1lKiBk
ZWVwTGFzdENoaWxkKCkgY29uc3Q7Ci0gICAgdm9pZCBhY3R1YWxseUFwcGVuZENoaWxkKFBhc3NS
ZWZQdHI8RnJhbWU+KTsKIAogICAgIGJvb2wgc2NvcGVkQnkoVHJlZVNjb3BlKikgY29uc3Q7CiAg
ICAgRnJhbWUqIHNjb3BlZENoaWxkKHVuc2lnbmVkIGluZGV4LCBUcmVlU2NvcGUqKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBkOTRjOWQ5MjFhNGE0MTk2M2VjOGRhZTc1
YzBiNGUyMzI2MDk3OGEyLi40ZDYzOGEyZTc1M2MxZWFiN2JmYzBkYzc4Yzg3MzdkMGU1MmMyYTBm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC02NzcsNyArNjc3LDcgQEAgdm9pZCBG
cmFtZVZpZXc6OnNldENvbnRlbnRzU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogCiAgICAgdXBk
YXRlU2Nyb2xsYWJsZUFyZWFTZXQoKTsKIAotICAgIHBhZ2UtPmNocm9tZSgpLmNvbnRlbnRzU2l6
ZUNoYW5nZWQoJmZyYW1lKCksIHNpemUpOyAvLyBOb3RpZnkgb25seS4KKyAgICBwYWdlLT5jaHJv
bWUoKS5jb250ZW50c1NpemVDaGFuZ2VkKGZyYW1lKCksIHNpemUpOyAvLyBOb3RpZnkgb25seS4K
IAogICAgIGlmIChmcmFtZSgpLmlzTWFpbkZyYW1lKCkpIHsKICAgICAgICAgZnJhbWUoKS5tYWlu
RnJhbWUoKS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5kaWRDaGFuZ2VEb2N1bWVudFNpemUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcAppbmRleCA0ODE3NGNiMjQzN2Q1OTYwYjIxYzUzODM2
YzUyNzFiNjYwZDg4NmMxLi5hMTdiZTNiYjUzYTg5MmY1YmU2MmQ0YzRkNzcyNGUwYWQ0Y2ZkNGNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJhbWUuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgTWFp
bkZyYW1lOjpzZWxmT25seURlcmVmKCkKIHZvaWQgTWFpbkZyYW1lOjpkcm9wQ2hpbGRyZW4oKQog
ewogICAgIHdoaWxlIChGcmFtZSogY2hpbGQgPSB0cmVlKCkuZmlyc3RDaGlsZCgpKQotICAgICAg
ICB0cmVlKCkucmVtb3ZlQ2hpbGQoY2hpbGQpOworICAgICAgICB0cmVlKCkucmVtb3ZlQ2hpbGQo
KmNoaWxkKTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGRi
MTdlNmJhZjdhY2U0YzI3MjY1YzhlZGIzNzA1ZmRiMTdlYjIwYmEuLjdkNmFmMTEwYTRjZDRkYWRl
Y2VkMjQ1OTA2NjI3MzA0MmYzZDBjNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMzYzLDcgKzM2
Myw3IEBAIFZpZXdwb3J0QXJndW1lbnRzIFBhZ2U6OnZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3QK
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBQYWdlOjpzY3JvbGxpbmdDb29yZGluYXRvcigpCiB7CiAg
ICAgaWYgKCFtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yICYmIG1fc2V0dGluZ3MtPnNjcm9sbGluZ0Nv
b3JkaW5hdG9yRW5hYmxlZCgpKSB7Ci0gICAgICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBj
aHJvbWUoKS5jbGllbnQoKS5jcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcih0aGlzKTsKKyAgICAg
ICAgbV9zY3JvbGxpbmdDb29yZGluYXRvciA9IGNocm9tZSgpLmNsaWVudCgpLmNyZWF0ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yKCp0aGlzKTsKICAgICAgICAgaWYgKCFtX3Njcm9sbGluZ0Nvb3JkaW5h
dG9yKQogICAgICAgICAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvciA9IFNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpjcmVhdGUodGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmNw
cAppbmRleCBlNzBiY2EwNTIzZjBlMzk1Zjg3N2ZmNjNjMTJhYTM5NTU3YWRlZDdjLi4yY2E4NmY5
ODI4MDgxNjM3ODRmMmFiN2ZhNDNlZWViYmVlMzc5NWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BhZ2VPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VP
dmVybGF5LmNwcApAQCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgUGFnZU92ZXJsYXk6OmZhZGVBbmlt
YXRpb25UaW1lckZpcmVkKCkKIAogICAgICAgICAvLyBJZiB0aGlzIHdhcyBhIGZhZGUgb3V0LCB1
bmluc3RhbGwgdGhlIHBhZ2Ugb3ZlcmxheS4KICAgICAgICAgaWYgKHdhc0ZhZGluZ091dCkKLSAg
ICAgICAgICAgIGNvbnRyb2xsZXIoKS0+dW5pbnN0YWxsUGFnZU92ZXJsYXkodGhpcywgUGFnZU92
ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgICAgICAgICAgY29udHJvbGxlcigpLT51
bmluc3RhbGxQYWdlT3ZlcmxheSgqdGhpcywgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZh
ZGUpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3Zl
cmxheUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRy
b2xsZXIuY3BwCmluZGV4IDg2NmI4NzBjYjhlNGQxYjdlNWQyMWIzYjE2YWMxZTVjNmIzYWJmODMu
LjA1NDNiZDUzNGQyNTFiYTM3ZGNhNDIxZGExN2UyYzk5M2EyZGFmMmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTUsMjcgKzk1LDI1IEBAIHN0
YXRpYyB2b2lkIHVwZGF0ZU92ZXJsYXlHZW9tZXRyeShQYWdlT3ZlcmxheSYgb3ZlcmxheSwgR3Jh
cGhpY3NMYXllciYgZ3JhcGhpY3NMCiAgICAgZ3JhcGhpY3NMYXllci5zZXRTaXplKG92ZXJsYXlG
cmFtZS5zaXplKCkpOwogfQogCi12b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6aW5zdGFsbFBh
Z2VPdmVybGF5KFBhc3NSZWZQdHI8UGFnZU92ZXJsYXk+IHBhZ2VPdmVybGF5LCBQYWdlT3Zlcmxh
eTo6RmFkZU1vZGUgZmFkZU1vZGUpCit2b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6aW5zdGFs
bFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUg
ZmFkZU1vZGUpCiB7CiAgICAgY3JlYXRlUm9vdExheWVyc0lmTmVlZGVkKCk7CiAKLSAgICBSZWZQ
dHI8UGFnZU92ZXJsYXk+IG92ZXJsYXkgPSBwYWdlT3ZlcmxheTsKLQotICAgIGlmIChtX3BhZ2VP
dmVybGF5cy5jb250YWlucyhvdmVybGF5KSkKKyAgICBpZiAobV9wYWdlT3ZlcmxheXMuY29udGFp
bnMoJm92ZXJsYXkpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhZ2VPdmVybGF5cy5hcHBl
bmQob3ZlcmxheSk7CisgICAgbV9wYWdlT3ZlcmxheXMuYXBwZW5kKCZvdmVybGF5KTsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxHcmFwaGljc0xheWVyPiBsYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNy
ZWF0ZShtX21haW5GcmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmdyYXBoaWNzTGF5ZXJG
YWN0b3J5KCksICp0aGlzKTsKICAgICBsYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDNE
KCkpOwotICAgIGxheWVyLT5zZXRCYWNrZ3JvdW5kQ29sb3Iob3ZlcmxheS0+YmFja2dyb3VuZENv
bG9yKCkpOworICAgIGxheWVyLT5zZXRCYWNrZ3JvdW5kQ29sb3Iob3ZlcmxheS5iYWNrZ3JvdW5k
Q29sb3IoKSk7CiAjaWZuZGVmIE5ERUJVRwogICAgIGxheWVyLT5zZXROYW1lKCJQYWdlIE92ZXJs
YXkgY29udGVudCIpOwogI2VuZGlmCiAKICAgICB1cGRhdGVTZXR0aW5nc0ZvckxheWVyKCpsYXll
cik7CiAKLSAgICBzd2l0Y2ggKG92ZXJsYXktPm92ZXJsYXlUeXBlKCkpIHsKKyAgICBzd2l0Y2gg
KG92ZXJsYXkub3ZlcmxheVR5cGUoKSkgewogICAgIGNhc2UgUGFnZU92ZXJsYXk6Ok92ZXJsYXlU
eXBlOjpWaWV3OgogICAgICAgICBtX3ZpZXdPdmVybGF5Um9vdExheWVyLT5hZGRDaGlsZChsYXll
ci5nZXQoKSk7CiAgICAgICAgIGJyZWFrOwpAQCAtMTI1LDMzICsxMjMsMzMgQEAgdm9pZCBQYWdl
T3ZlcmxheUNvbnRyb2xsZXI6Omluc3RhbGxQYWdlT3ZlcmxheShQYXNzUmVmUHRyPFBhZ2VPdmVy
bGF5PiBwYWdlT3ZlcmwKICAgICB9CiAKICAgICBHcmFwaGljc0xheWVyJiByYXdMYXllciA9ICps
YXllcjsKLSAgICBtX292ZXJsYXlHcmFwaGljc0xheWVycy5zZXQob3ZlcmxheS5nZXQoKSwgV1RG
TW92ZShsYXllcikpOworICAgIG1fb3ZlcmxheUdyYXBoaWNzTGF5ZXJzLnNldCgmb3ZlcmxheSwg
V1RGTW92ZShsYXllcikpOwogCiAgICAgdXBkYXRlRm9yY2VTeW5jaHJvbm91c1Njcm9sbExheWVy
UG9zaXRpb25VcGRhdGVzKCk7CiAKLSAgICBvdmVybGF5LT5zZXRQYWdlKG1fbWFpbkZyYW1lLnBh
Z2UoKSk7CisgICAgb3ZlcmxheS5zZXRQYWdlKG1fbWFpbkZyYW1lLnBhZ2UoKSk7CiAKICAgICBp
ZiAoRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBtX21haW5GcmFtZS52aWV3KCkpCiAgICAgICAgIGZy
YW1lVmlldy0+ZW50ZXJDb21wb3NpdGluZ01vZGUoKTsKIAotICAgIHVwZGF0ZU92ZXJsYXlHZW9t
ZXRyeSgqb3ZlcmxheSwgcmF3TGF5ZXIpOworICAgIHVwZGF0ZU92ZXJsYXlHZW9tZXRyeShvdmVy
bGF5LCByYXdMYXllcik7CiAKICAgICBpZiAoZmFkZU1vZGUgPT0gUGFnZU92ZXJsYXk6OkZhZGVN
b2RlOjpGYWRlKQotICAgICAgICBvdmVybGF5LT5zdGFydEZhZGVJbkFuaW1hdGlvbigpOworICAg
ICAgICBvdmVybGF5LnN0YXJ0RmFkZUluQW5pbWF0aW9uKCk7CiB9CiAKLXZvaWQgUGFnZU92ZXJs
YXlDb250cm9sbGVyOjp1bmluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSogb3ZlcmxheSwg
UGFnZU92ZXJsYXk6OkZhZGVNb2RlIGZhZGVNb2RlKQordm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xs
ZXI6OnVuaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBQYWdlT3Zlcmxh
eTo6RmFkZU1vZGUgZmFkZU1vZGUpCiB7CiAgICAgaWYgKGZhZGVNb2RlID09IFBhZ2VPdmVybGF5
OjpGYWRlTW9kZTo6RmFkZSkgewotICAgICAgICBvdmVybGF5LT5zdGFydEZhZGVPdXRBbmltYXRp
b24oKTsKKyAgICAgICAgb3ZlcmxheS5zdGFydEZhZGVPdXRBbmltYXRpb24oKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIG92ZXJsYXktPnNldFBhZ2UobnVsbHB0cik7CisgICAgb3Zl
cmxheS5zZXRQYWdlKG51bGxwdHIpOwogCi0gICAgbV9vdmVybGF5R3JhcGhpY3NMYXllcnMudGFr
ZShvdmVybGF5KS0+cmVtb3ZlRnJvbVBhcmVudCgpOworICAgIG1fb3ZlcmxheUdyYXBoaWNzTGF5
ZXJzLnRha2UoJm92ZXJsYXkpLT5yZW1vdmVGcm9tUGFyZW50KCk7CiAKLSAgICBib29sIHJlbW92
ZWQgPSBtX3BhZ2VPdmVybGF5cy5yZW1vdmVGaXJzdChvdmVybGF5KTsKKyAgICBib29sIHJlbW92
ZWQgPSBtX3BhZ2VPdmVybGF5cy5yZW1vdmVGaXJzdCgmb3ZlcmxheSk7CiAgICAgQVNTRVJUX1VO
VVNFRChyZW1vdmVkLCByZW1vdmVkKTsKIAogICAgIHVwZGF0ZUZvcmNlU3luY2hyb25vdXNTY3Jv
bGxMYXllclBvc2l0aW9uVXBkYXRlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJs
YXlDb250cm9sbGVyLmgKaW5kZXggMzk3ODA5ODIwMDhjNjUxZjI4OGI3OTc2YjFiOTMyOTVhYzUy
ZTdhNC4uNjM4OTQ3YzYxODQ2YWIwNjc1Y2U4MDNhYmYxNzZiNmI3MWRkOGMwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCkBAIC0zOSw3ICszOSw2IEBA
IGNsYXNzIFBhZ2U7CiBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiAKIGNsYXNzIFBhZ2VPdmVy
bGF5Q29udHJvbGxlciBmaW5hbCA6IHB1YmxpYyBHcmFwaGljc0xheWVyQ2xpZW50IHsKLSAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShQYWdlT3ZlcmxheUNvbnRyb2xsZXIpOwogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIFBhZ2VPdmVybGF5Q29udHJvbGxlcihNYWlu
RnJhbWUmKTsKQEAgLTUwLDggKzQ5LDggQEAgcHVibGljOgogCiAgICAgY29uc3QgVmVjdG9yPFJl
ZlB0cjxQYWdlT3ZlcmxheT4+JiBwYWdlT3ZlcmxheXMoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VP
dmVybGF5czsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnN0YWxsUGFnZU92ZXJsYXko
UGFzc1JlZlB0cjxQYWdlT3ZlcmxheT4sIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSk7Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCB1bmluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSosIFBhZ2VP
dmVybGF5OjpGYWRlTW9kZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnN0YWxsUGFnZU92
ZXJsYXkoUGFnZU92ZXJsYXkmLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgdW5pbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkmLCBQYWdlT3Zlcmxh
eTo6RmFkZU1vZGUpOwogCiAgICAgdm9pZCBzZXRQYWdlT3ZlcmxheU5lZWRzRGlzcGxheShQYWdl
T3ZlcmxheSYsIGNvbnN0IEludFJlY3QmKTsKICAgICB2b2lkIHNldFBhZ2VPdmVybGF5T3BhY2l0
eShQYWdlT3ZlcmxheSYsIGZsb2F0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZVNlcmlhbGl6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5j
cHAKaW5kZXggN2ZmZjEyM2ZmNjQxMzc4MjVjOGQxOTgwM2RiZWNmMzljODYzNjhhZi4uOTNkMzc3
N2FhMWE5ZjA3OWY3MTA0Yzk3NDVkN2RhMWNjYmJmZDU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlU2VyaWFsaXplci5jcHAKQEAgLTgwLDggKzgwLDcgQEAgc3RhdGljIGJvb2wgaXNDaGFyc2V0
U3BlY2lmeWluZ05vZGUoY29uc3QgTm9kZSYgbm9kZSkKICAgICAgICAgICAgIGF0dHJpYnV0ZXMu
YXBwZW5kKHN0ZDo6bWFrZV9wYWlyKGF0dHJpYnV0ZS5uYW1lKCkudG9TdHJpbmcoKSwgYXR0cmli
dXRlLnZhbHVlKCkuc3RyaW5nKCkpKTsKICAgICAgICAgfQogICAgIH0KLSAgICBUZXh0RW5jb2Rp
bmcgdGV4dEVuY29kaW5nID0gSFRNTE1ldGFDaGFyc2V0UGFyc2VyOjplbmNvZGluZ0Zyb21NZXRh
QXR0cmlidXRlcyhhdHRyaWJ1dGVzKTsKLSAgICByZXR1cm4gdGV4dEVuY29kaW5nLmlzVmFsaWQo
KTsKKyAgICByZXR1cm4gSFRNTE1ldGFDaGFyc2V0UGFyc2VyOjplbmNvZGluZ0Zyb21NZXRhQXR0
cmlidXRlcyhhdHRyaWJ1dGVzKS5pc1ZhbGlkKCk7CiB9CiAKIHN0YXRpYyBib29sIHNob3VsZEln
bm9yZUVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKQEAgLTk1LDEwICs5NCw5IEBAIHN0
YXRpYyBjb25zdCBRdWFsaWZpZWROYW1lJiBmcmFtZU93bmVyVVJMQXR0cmlidXRlTmFtZShjb25z
dCBIVE1MRnJhbWVPd25lckVsZW1lCiAgICAgcmV0dXJuIGlzPEhUTUxPYmplY3RFbGVtZW50Pihm
cmFtZU93bmVyKSA/IEhUTUxOYW1lczo6ZGF0YUF0dHIgOiBIVE1MTmFtZXM6OnNyY0F0dHI7CiB9
CiAKLWNsYXNzIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvciBmaW5hbCA6IHB1YmxpYyBXZWJD
b3JlOjpNYXJrdXBBY2N1bXVsYXRvciB7CitjbGFzcyBQYWdlU2VyaWFsaXplcjo6U2VyaWFsaXpl
ck1hcmt1cEFjY3VtdWxhdG9yIGZpbmFsIDogcHVibGljIFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxh
dG9yIHsKIHB1YmxpYzoKICAgICBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3IoUGFnZVNlcmlh
bGl6ZXImLCBEb2N1bWVudCYsIFZlY3RvcjxOb2RlKj4qKTsKLSAgICB2aXJ0dWFsIH5TZXJpYWxp
emVyTWFya3VwQWNjdW11bGF0b3IoKTsKIAogcHJpdmF0ZToKICAgICBQYWdlU2VyaWFsaXplciYg
bV9zZXJpYWxpemVyOwpAQCAtMTEwLDcgKzEwOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhcHBl
bmRFbmRUYWcoY29uc3QgRWxlbWVudCYpIG92ZXJyaWRlOwogfTsKIAotU2VyaWFsaXplck1hcmt1
cEFjY3VtdWxhdG9yOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXIm
IHNlcmlhbGl6ZXIsIERvY3VtZW50JiBkb2N1bWVudCwgVmVjdG9yPE5vZGUqPiogbm9kZXMpCitQ
YWdlU2VyaWFsaXplcjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjpTZXJpYWxpemVyTWFy
a3VwQWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXImIHNlcmlhbGl6ZXIsIERvY3VtZW50JiBkb2N1
bWVudCwgVmVjdG9yPE5vZGUqPiogbm9kZXMpCiAgICAgOiBNYXJrdXBBY2N1bXVsYXRvcihub2Rl
cywgUmVzb2x2ZUFsbFVSTHMpCiAgICAgLCBtX3NlcmlhbGl6ZXIoc2VyaWFsaXplcikKICAgICAs
IG1fZG9jdW1lbnQoZG9jdW1lbnQpCkBAIC0xMjAsMTggKzExOCwxNCBAQCBTZXJpYWxpemVyTWFy
a3VwQWNjdW11bGF0b3I6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcihQYWdlU2VyaWFsaXpl
ciYgc2VyaWFsaQogICAgICAgICBhcHBlbmRTdHJpbmcoIjw/eG1sIHZlcnNpb249XCIiICsgbV9k
b2N1bWVudC54bWxWZXJzaW9uKCkgKyAiXCIgZW5jb2Rpbmc9XCIiICsgbV9kb2N1bWVudC5jaGFy
c2V0KCkgKyAiXCI/PiIpOwogfQogCi1TZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6On5TZXJp
YWxpemVyTWFya3VwQWNjdW11bGF0b3IoKQotewotfQotCi12b2lkIFNlcmlhbGl6ZXJNYXJrdXBB
Y2N1bXVsYXRvcjo6YXBwZW5kVGV4dChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IFRleHQmIHRl
eHQpCit2b2lkIFBhZ2VTZXJpYWxpemVyOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFw
cGVuZFRleHQoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBUZXh0JiB0ZXh0KQogewogICAgIEVs
ZW1lbnQqIHBhcmVudCA9IHRleHQucGFyZW50RWxlbWVudCgpOwogICAgIGlmIChwYXJlbnQgJiYg
IXNob3VsZElnbm9yZUVsZW1lbnQoKnBhcmVudCkpCiAgICAgICAgIE1hcmt1cEFjY3VtdWxhdG9y
OjphcHBlbmRUZXh0KG91dCwgdGV4dCk7CiB9CiAKLXZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3Vt
dWxhdG9yOjphcHBlbmRFbGVtZW50KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgRWxlbWVudCYg
ZWxlbWVudCwgTmFtZXNwYWNlcyogbmFtZXNwYWNlcykKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OlNl
cmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRWxlbWVudChTdHJpbmdCdWlsZGVyJiBv
dXQsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIE5hbWVzcGFjZXMqIG5hbWVzcGFjZXMpCiB7CiAg
ICAgaWYgKCFzaG91bGRJZ25vcmVFbGVtZW50KGVsZW1lbnQpKQogICAgICAgICBNYXJrdXBBY2N1
bXVsYXRvcjo6YXBwZW5kRWxlbWVudChvdXQsIGVsZW1lbnQsIG5hbWVzcGFjZXMpOwpAQCAtMTQ1
LDcgKzEzOSw3IEBAIHZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbGVt
ZW50KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgRWxlbWVuCiAgICAgLy8gRklYTUU6IEZvciBv
YmplY3QgKHBsdWdpbnMpIHRhZ3MgYW5kIHZpZGVvIHRhZyB3ZSBjb3VsZCByZXBsYWNlIHRoZW0g
YnkgYW4gaW1hZ2Ugb2YgdGhlaXIgY3VycmVudCBjb250ZW50cy4KIH0KIAotdm9pZCBTZXJpYWxp
emVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEN1c3RvbUF0dHJpYnV0ZXMoU3RyaW5nQnVpbGRl
ciYgb3V0LCBjb25zdCBFbGVtZW50JiBlbGVtZW50LCBOYW1lc3BhY2VzKiBuYW1lc3BhY2VzKQor
dm9pZCBQYWdlU2VyaWFsaXplcjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRD
dXN0b21BdHRyaWJ1dGVzKFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgRWxlbWVudCYgZWxlbWVu
dCwgTmFtZXNwYWNlcyogbmFtZXNwYWNlcykKIHsKICAgICBpZiAoIWlzPEhUTUxGcmFtZU93bmVy
RWxlbWVudD4oZWxlbWVudCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE2NCwzMiArMTU4LDIwIEBA
IHZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRDdXN0b21BdHRyaWJ1dGVz
KFN0cmluZ0J1aWxkZXImIG91dCwgY29uCiAgICAgYXBwZW5kQXR0cmlidXRlKG91dCwgZWxlbWVu
dCwgQXR0cmlidXRlKGZyYW1lT3duZXJVUkxBdHRyaWJ1dGVOYW1lKGZyYW1lT3duZXIpLCB1cmwu
c3RyaW5nKCkpLCBuYW1lc3BhY2VzKTsKIH0KIAotdm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11
bGF0b3I6OmFwcGVuZEVuZFRhZyhjb25zdCBFbGVtZW50JiBlbGVtZW50KQordm9pZCBQYWdlU2Vy
aWFsaXplcjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoY29uc3Qg
RWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBpZiAoIXNob3VsZElnbm9yZUVsZW1lbnQoZWxlbWVu
dCkpCiAgICAgICAgIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoZWxlbWVudCk7CiB9
CiAKLVBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZTo6UmVzb3VyY2UoKQotewotfQotCi1QYWdlU2Vy
aWFsaXplcjo6UmVzb3VyY2U6OlJlc291cmNlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcm
IG1pbWVUeXBlLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSkKLSAgICA6IHVybCh1cmwp
Ci0gICAgLCBtaW1lVHlwZShtaW1lVHlwZSkKLSAgICAsIGRhdGEoZGF0YSkKLXsKLX0KLQotUGFn
ZVNlcmlhbGl6ZXI6OlBhZ2VTZXJpYWxpemVyKFZlY3RvcjxQYWdlU2VyaWFsaXplcjo6UmVzb3Vy
Y2U+KiByZXNvdXJjZXMpCitQYWdlU2VyaWFsaXplcjo6UGFnZVNlcmlhbGl6ZXIoVmVjdG9yPFBh
Z2VTZXJpYWxpemVyOjpSZXNvdXJjZT4mIHJlc291cmNlcykKICAgICA6IG1fcmVzb3VyY2VzKHJl
c291cmNlcykKLSAgICAsIG1fYmxhbmtGcmFtZUNvdW50ZXIoMCkKIHsKIH0KIAotdm9pZCBQYWdl
U2VyaWFsaXplcjo6c2VyaWFsaXplKFBhZ2UqIHBhZ2UpCit2b2lkIFBhZ2VTZXJpYWxpemVyOjpz
ZXJpYWxpemUoUGFnZSYgcGFnZSkKIHsKLSAgICBzZXJpYWxpemVGcmFtZSgmcGFnZS0+bWFpbkZy
YW1lKCkpOworICAgIHNlcmlhbGl6ZUZyYW1lKCZwYWdlLm1haW5GcmFtZSgpKTsKIH0KIAogdm9p
ZCBQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplRnJhbWUoRnJhbWUqIGZyYW1lKQpAQCAtMjE4LDcg
KzIwMCw3IEBAIHZvaWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUZyYW1lKEZyYW1lKiBmcmFt
ZSkKICAgICB9CiAgICAgU3RyaW5nIHRleHQgPSBhY2N1bXVsYXRvci5zZXJpYWxpemVOb2Rlcygq
ZG9jdW1lbnQtPmRvY3VtZW50RWxlbWVudCgpLCBJbmNsdWRlTm9kZSk7CiAgICAgQ1N0cmluZyBm
cmFtZUhUTUwgPSB0ZXh0RW5jb2RpbmcuZW5jb2RlKHRleHQsIEVudGl0aWVzRm9yVW5lbmNvZGFi
bGVzKTsKLSAgICBtX3Jlc291cmNlcy0+YXBwZW5kKFJlc291cmNlKHVybCwgZG9jdW1lbnQtPnN1
Z2dlc3RlZE1JTUVUeXBlKCksIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGZyYW1lSFRNTC5kYXRhKCks
IGZyYW1lSFRNTC5sZW5ndGgoKSkpKTsKKyAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIGRv
Y3VtZW50LT5zdWdnZXN0ZWRNSU1FVHlwZSgpLCBTaGFyZWRCdWZmZXI6OmNyZWF0ZShmcmFtZUhU
TUwuZGF0YSgpLCBmcmFtZUhUTUwubGVuZ3RoKCkpIH0pOwogICAgIG1fcmVzb3VyY2VVUkxzLmFk
ZCh1cmwpOwogCiAgICAgZm9yIChhdXRvJiBub2RlIDogbm9kZXMpIHsKQEAgLTI4NCw3ICsyNjYs
NyBAQCB2b2lkIFBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVDU1NTdHlsZVNoZWV0KENTU1N0eWxl
U2hlZXQqIHN0eWxlU2hlZXQsIGNvbnN0IFVSTAogICAgICAgICBBU1NFUlQodGV4dEVuY29kaW5n
LmlzVmFsaWQoKSk7CiAgICAgICAgIFN0cmluZyB0ZXh0U3RyaW5nID0gY3NzVGV4dC50b1N0cmlu
ZygpOwogICAgICAgICBDU3RyaW5nIHRleHQgPSB0ZXh0RW5jb2RpbmcuZW5jb2RlKHRleHRTdHJp
bmcsIEVudGl0aWVzRm9yVW5lbmNvZGFibGVzKTsKLSAgICAgICAgbV9yZXNvdXJjZXMtPmFwcGVu
ZChSZXNvdXJjZSh1cmwsIFN0cmluZygidGV4dC9jc3MiKSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUo
dGV4dC5kYXRhKCksIHRleHQubGVuZ3RoKCkpKSk7CisgICAgICAgIG1fcmVzb3VyY2VzLmFwcGVu
ZCh7IHVybCwgQVNDSUlMaXRlcmFsIHsgInRleHQvY3NzIiB9LCBTaGFyZWRCdWZmZXI6OmNyZWF0
ZSh0ZXh0LmRhdGEoKSwgdGV4dC5sZW5ndGgoKSkgfSk7CiAgICAgICAgIG1fcmVzb3VyY2VVUkxz
LmFkZCh1cmwpOwogICAgIH0KIH0KQEAgLTMwNiw4ICsyODgsNyBAQCB2b2lkIFBhZ2VTZXJpYWxp
emVyOjphZGRJbWFnZVRvUmVzb3VyY2VzKENhY2hlZEltYWdlKiBpbWFnZSwgUmVuZGVyRWxlbWVu
dCogaW1hZwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU3RyaW5nIG1pbWVUeXBlID0g
aW1hZ2UtPnJlc3BvbnNlKCkubWltZVR5cGUoKTsKLSAgICBtX3Jlc291cmNlcy0+YXBwZW5kKFJl
c291cmNlKHVybCwgbWltZVR5cGUsIGRhdGEpKTsKKyAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1
cmwsIGltYWdlLT5yZXNwb25zZSgpLm1pbWVUeXBlKCksIFdURk1vdmUoZGF0YSkgfSk7CiAgICAg
bV9yZXNvdXJjZVVSTHMuYWRkKHVybCk7CiB9CiAKQEAgLTMzNCwyMCArMzE1LDE4IEBAIHZvaWQg
UGFnZVNlcmlhbGl6ZXI6OnJldHJpZXZlUmVzb3VyY2VzRm9yUHJvcGVydGllcyhjb25zdCBTdHls
ZVByb3BlcnRpZXMqIHN0eWxlCiAgICAgICAgIGlmICghaW1hZ2UpCiAgICAgICAgICAgICBjb250
aW51ZTsKIAotICAgICAgICBVUkwgdXJsID0gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGltYWdlLT51
cmwoKSk7Ci0gICAgICAgIGFkZEltYWdlVG9SZXNvdXJjZXMoaW1hZ2UsIG51bGxwdHIsIHVybCk7
CisgICAgICAgIGFkZEltYWdlVG9SZXNvdXJjZXMoaW1hZ2UsIG51bGxwdHIsIGRvY3VtZW50LT5j
b21wbGV0ZVVSTChpbWFnZS0+dXJsKCkpKTsKICAgICB9CiB9CiAKIFVSTCBQYWdlU2VyaWFsaXpl
cjo6dXJsRm9yQmxhbmtGcmFtZShGcmFtZSogZnJhbWUpCiB7Ci0gICAgSGFzaE1hcDxGcmFtZSos
IFVSTD46Oml0ZXJhdG9yIGl0ZXIgPSBtX2JsYW5rRnJhbWVVUkxzLmZpbmQoZnJhbWUpOworICAg
IGF1dG8gaXRlciA9IG1fYmxhbmtGcmFtZVVSTHMuZmluZChmcmFtZSk7CiAgICAgaWYgKGl0ZXIg
IT0gbV9ibGFua0ZyYW1lVVJMcy5lbmQoKSkKICAgICAgICAgcmV0dXJuIGl0ZXItPnZhbHVlOwog
ICAgIFN0cmluZyB1cmwgPSAid3ljaXd5ZzovL2ZyYW1lLyIgKyBTdHJpbmc6Om51bWJlcihtX2Js
YW5rRnJhbWVDb3VudGVyKyspOwogICAgIFVSTCBmYWtlVVJMKFBhcnNlZFVSTFN0cmluZywgdXJs
KTsKICAgICBtX2JsYW5rRnJhbWVVUkxzLmFkZChmcmFtZSwgZmFrZVVSTCk7Ci0KICAgICByZXR1
cm4gZmFrZVVSTDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2Vy
aWFsaXplci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5oCmluZGV4IGEx
YjQ3YjlkYmJjMDM0YjE3MjkzNTRjMDgyMWFhYmRkNTc2MmVlYWMuLmQ1NzQzYmM0ZjYxNDYyOTIy
OGMzZmZmMGE0YmVkY2I4NzUwYzExZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZVNlcmlhbGl6ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVy
LmgKQEAgLTMwLDcgKzMwLDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJVUkwuaCIK
ICNpbmNsdWRlICJVUkxIYXNoLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTU2LDIwICs1NSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIFVS
TCB1cmw7CiAgICAgICAgIFN0cmluZyBtaW1lVHlwZTsKICAgICAgICAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gZGF0YTsKLSAgICAgICAgUmVzb3VyY2UoKTsKLSAgICAgICAgUmVzb3VyY2UoY29uc3Qg
VVJMJiwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRh
dGEpOwogICAgIH07CiAKLSAgICBleHBsaWNpdCBQYWdlU2VyaWFsaXplcihWZWN0b3I8UmVzb3Vy
Y2U+Kik7CisgICAgZXhwbGljaXQgUGFnZVNlcmlhbGl6ZXIoVmVjdG9yPFJlc291cmNlPiYpOwog
CiAgICAgLy8gSW5pdGlhdGVzIHRoZSBzZXJpYWxpemF0aW9uIG9mIHRoZSBmcmFtZSdzIHBhZ2Uu
IEFsbCBzZXJpYWxpemVkIGNvbnRlbnQgYW5kIHJldHJpZXZlZAogICAgIC8vIHJlc291cmNlcyBh
cmUgYWRkZWQgdG8gdGhlIFZlY3RvciBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLiBUaGUgZmly
c3QgcmVzb3VyY2UgaW4gdGhhdAogICAgIC8vIHZlY3RvciBpcyB0aGUgdG9wIGZyYW1lIHNlcmlh
bGl6ZWQgY29udGVudC4KLSAgICB2b2lkIHNlcmlhbGl6ZShQYWdlKik7CisgICAgdm9pZCBzZXJp
YWxpemUoUGFnZSYpOworCitwcml2YXRlOgorICAgIGNsYXNzIFNlcmlhbGl6ZXJNYXJrdXBBY2N1
bXVsYXRvcjsKIAogICAgIFVSTCB1cmxGb3JCbGFua0ZyYW1lKEZyYW1lKik7CiAKLXByaXZhdGU6
CiAgICAgdm9pZCBzZXJpYWxpemVGcmFtZShGcmFtZSopOwogCiAgICAgLy8gU2VyaWFsaXplcyB0
aGUgc3R5bGVzaGVldCBiYWNrIHRvIHRleHQgYW5kIGFkZHMgaXQgdG8gdGhlIHJlc291cmNlcyBp
ZiBVUkwgaXMgbm90LWVtcHR5LgpAQCAtODAsMTAgKzc5LDEwIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCByZXRyaWV2ZVJlc291cmNlc0ZvclByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiwg
RG9jdW1lbnQqKTsKICAgICB2b2lkIHJldHJpZXZlUmVzb3VyY2VzRm9yUnVsZShTdHlsZVJ1bGUm
LCBEb2N1bWVudCopOwogCi0gICAgVmVjdG9yPFJlc291cmNlPiogbV9yZXNvdXJjZXM7CisgICAg
VmVjdG9yPFJlc291cmNlPiYgbV9yZXNvdXJjZXM7CiAgICAgTGlzdEhhc2hTZXQ8VVJMPiBtX3Jl
c291cmNlVVJMczsKICAgICBIYXNoTWFwPEZyYW1lKiwgVVJMPiBtX2JsYW5rRnJhbWVVUkxzOwot
ICAgIHVuc2lnbmVkIG1fYmxhbmtGcmFtZUNvdW50ZXI7CisgICAgdW5zaWduZWQgbV9ibGFua0Zy
YW1lQ291bnRlciB7IDAgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VFbnRyeS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmgKaW5kZXggYjNhODRhM2E5ZGNhODJiYmZhOGIzNDA3
NGJlY2M3M2I0ODdlZGFhZS4uZjhkNmNhN2ZlYzgwYzBmZmU2YTk4NmViZmU0ODFlYjM0NTBiY2Jj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmgKQEAgLTM0LDcgKzM0LDYg
QEAKICNpZiBFTkFCTEUoV0VCX1RJTUlORykKIAogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCi0j
aW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
I2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KQEAgLTU0LDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc01hcmsoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc01lYXN1cmUoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogCi0gICAgc3RhdGljIGJvb2wgc3RhcnRUaW1lQ29tcGFyZUxl
c3NUaGFuKFBhc3NSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4gYSwgUGFzc1JlZlB0cjxQZXJmb3Jt
YW5jZUVudHJ5PiBiKQorICAgIHN0YXRpYyBib29sIHN0YXJ0VGltZUNvbXBhcmVMZXNzVGhhbihj
b25zdCBSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4mIGEsIGNvbnN0IFJlZlB0cjxQZXJmb3JtYW5j
ZUVudHJ5PiYgYikKICAgICB7CiAgICAgICAgIHJldHVybiBhLT5zdGFydFRpbWUoKSA8IGItPnN0
YXJ0VGltZSgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2VVc2VyVGltaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2Vy
VGltaW5nLmNwcAppbmRleCBkOTUzMTgwNTQ3MGY4ZWVjYTQyODc2M2I3Y2ExZWFjNTNlMTczYjZm
Li45YTZjN2FjZTM5NDBlZTM4ZDY1N2ViYmEzNWExODM2Mzg4MGE0OWE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwCkBAIC04NywxNCArODcsMTQg
QEAgVXNlclRpbWluZzo6VXNlclRpbWluZyhQZXJmb3JtYW5jZSYgcGVyZm9ybWFuY2UpCiB7CiB9
CiAKLXN0YXRpYyB2b2lkIGluc2VydFBlcmZvcm1hbmNlRW50cnkoUGVyZm9ybWFuY2VFbnRyeU1h
cCYgcGVyZm9ybWFuY2VFbnRyeU1hcCwgUGFzc1JlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBwZXJm
b3JtYW5jZUVudHJ5KQorc3RhdGljIHZvaWQgaW5zZXJ0UGVyZm9ybWFuY2VFbnRyeShQZXJmb3Jt
YW5jZUVudHJ5TWFwJiBwZXJmb3JtYW5jZUVudHJ5TWFwLCBSZWY8UGVyZm9ybWFuY2VFbnRyeT4m
JiBwZXJmb3JtYW5jZUVudHJ5KQogewotICAgIFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBlbnRy
eSA9IHBlcmZvcm1hbmNlRW50cnk7Ci0gICAgUGVyZm9ybWFuY2VFbnRyeU1hcDo6aXRlcmF0b3Ig
aXQgPSBwZXJmb3JtYW5jZUVudHJ5TWFwLmZpbmQoZW50cnktPm5hbWUoKSk7CisgICAgUmVmUHRy
PFBlcmZvcm1hbmNlRW50cnk+IGVudHJ5ID0gV1RGTW92ZShwZXJmb3JtYW5jZUVudHJ5KTsKKyAg
ICBhdXRvIGl0ID0gcGVyZm9ybWFuY2VFbnRyeU1hcC5maW5kKGVudHJ5LT5uYW1lKCkpOwogICAg
IGlmIChpdCAhPSBwZXJmb3JtYW5jZUVudHJ5TWFwLmVuZCgpKQotICAgICAgICBpdC0+dmFsdWUu
YXBwZW5kKGVudHJ5KTsKKyAgICAgICAgaXQtPnZhbHVlLmFwcGVuZChXVEZNb3ZlKGVudHJ5KSk7
CiAgICAgZWxzZQotICAgICAgICBwZXJmb3JtYW5jZUVudHJ5TWFwLnNldChlbnRyeS0+bmFtZSgp
LCBWZWN0b3I8UmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+PnsgZW50cnkgfSk7CisgICAgICAgIHBl
cmZvcm1hbmNlRW50cnlNYXAuc2V0KGVudHJ5LT5uYW1lKCksIFZlY3RvcjxSZWZQdHI8UGVyZm9y
bWFuY2VFbnRyeT4+IHsgV1RGTW92ZShlbnRyeSkgfSk7CiB9CiAKIHN0YXRpYyB2b2lkIGNsZWFy
UGVmb3JtYW5jZUVudHJpZXMoUGVyZm9ybWFuY2VFbnRyeU1hcCYgcGVyZm9ybWFuY2VFbnRyeU1h
cCwgY29uc3QgU3RyaW5nJiBuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9S
ZXNvdXJjZVVzYWdlT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNlVXNh
Z2VPdmVybGF5LmNwcAppbmRleCBhZTgxMTJjYTI2Mzk5MTZmNDE0NWU5MzIzZGUwZDJmMjgxOTVh
Y2IwLi5lNzQzZDg4MGUyMGNiMWZkZjg1NzAxNjBkMGIxYWQ1ODM5MjliOGQwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmNwcApAQCAtNTMsNyArNTMsNyBA
QCBSZXNvdXJjZVVzYWdlT3ZlcmxheTo6flJlc291cmNlVXNhZ2VPdmVybGF5KCkKIAogICAgIC8v
IEZJWE1FOiBUaGlzIGlzIGEgaGFjayBzbyB3ZSBkb24ndCB0cnkgdG8gdW5pbnN0YWxsIHRoZSBQ
YWdlT3ZlcmxheSBkdXJpbmcgUGFnZSBkZXN0cnVjdGlvbi4KICAgICBpZiAobV9wYWdlLm1haW5G
cmFtZSgpLnBhZ2UoKSkKLSAgICAgICAgbV9wYWdlLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSwgUGFnZU92ZXJs
YXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgICAgICBtX3BhZ2UubWFpbkZyYW1lKCkucGFn
ZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fb3ZlcmxheSwgUGFn
ZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogfQogCiB2b2lkIFJlc291cmNlVXNhZ2VP
dmVybGF5Ojppbml0aWFsaXplKCkKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBSZXNvdXJjZVVzYWdl
T3ZlcmxheTo6aW5pdGlhbGl6ZSgpCiAKICAgICBtX292ZXJsYXktPnNldEZyYW1lKGluaXRpYWxS
ZWN0KTsKICAgICBtX292ZXJsYXktPnNldFNob3VsZElnbm9yZU1vdXNlRXZlbnRzT3V0c2lkZUJv
dW5kcyhmYWxzZSk7Ci0gICAgbV9wYWdlLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxl
cigpLmluc3RhbGxQYWdlT3ZlcmxheShtX292ZXJsYXkuZ2V0KCksIFBhZ2VPdmVybGF5OjpGYWRl
TW9kZTo6RG9Ob3RGYWRlKTsKKyAgICBtX3BhZ2UubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250
cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KCptX292ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRl
TW9kZTo6RG9Ob3RGYWRlKTsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCmluZGV4IDVhZGUwMDIy
ZWJjMGQ4NGQyNzg2OGZlMjRiNTRkNjZhNjFlNzdlNTguLjJkZDBjMzA5ZTA1ODJmMzVjZjkzNmY1
MGFjZDljMWFjMzQxNjM1NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0FuaW1hdGlvbkJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9B
bmltYXRpb25CYXNlLmgKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJBbmltYXRpb24uaCIK
ICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25z
dGFudHMuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0
L0F0b21pY1N0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDU4
ODk2ZGIyZjFlOWZkNDUzNzhiMzY3YzAwZWM3MTdiYjEzZTQ5OWMuLjRjNDBjOTIzYTIzZTIzMzg4
NDA4NDJlODgzY2UwNWRiMWU3YmRkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAg
Ym9vbCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6Y2xlYXIoUmVuZGVyRWxlbWVudCYgcmVu
ZGVyZXIpCiAgICAgRWxlbWVudCogZWxlbWVudCA9IHJlbmRlcmVyLmVsZW1lbnQoKTsKIAogICAg
IG1fZXZlbnRzVG9EaXNwYXRjaC5yZW1vdmVBbGxNYXRjaGluZyhbZWxlbWVudF0gKGNvbnN0IEV2
ZW50VG9EaXNwYXRjaCYgaW5mbykgewotICAgICAgICByZXR1cm4gaW5mby5lbGVtZW50ID09IGVs
ZW1lbnQ7CisgICAgICAgIHJldHVybiBpbmZvLmVsZW1lbnQucHRyKCkgPT0gZWxlbWVudDsKICAg
ICB9KTsKIAogICAgIG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLnJlbW92ZUFsbE1hdGNoaW5n
KFtlbGVtZW50XShhdXRvJiBjdXJyZW50RWxlbWVudCkgewpAQCAtMjAzLDcgKzIwMyw3IEBAIHZv
aWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmZpcmVFdmVudHNBbmRVcGRhdGVTdHlsZSgp
CiAgICAgLy8gZmlyZSBhbGwgdGhlIGV2ZW50cwogICAgIFZlY3RvcjxFdmVudFRvRGlzcGF0Y2g+
IGV2ZW50c1RvRGlzcGF0Y2ggPSBXVEZNb3ZlKG1fZXZlbnRzVG9EaXNwYXRjaCk7CiAgICAgZm9y
IChhdXRvJiBldmVudCA6IGV2ZW50c1RvRGlzcGF0Y2gpIHsKLSAgICAgICAgRWxlbWVudCYgZWxl
bWVudCA9ICpldmVudC5lbGVtZW50OworICAgICAgICBFbGVtZW50JiBlbGVtZW50ID0gZXZlbnQu
ZWxlbWVudDsKICAgICAgICAgaWYgKGV2ZW50LmV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkudHJh
bnNpdGlvbmVuZEV2ZW50KQogICAgICAgICAgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KFRyYW5z
aXRpb25FdmVudDo6Y3JlYXRlKGV2ZW50LmV2ZW50VHlwZSwgZXZlbnQubmFtZSwgZXZlbnQuZWxh
cHNlZFRpbWUsIFBzZXVkb0VsZW1lbnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKGVsZW1l
bnQucHNldWRvSWQoKSkpKTsKICAgICAgICAgZWxzZQpAQCAtMjI1LDIxICsyMjUsMTUgQEAgdm9p
ZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6c3RhcnRVcGRhdGVTdHlsZUlmTmVlZGVkRGlz
cGF0Y2hlcigpCiAgICAgICAgIG1fdXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIuc3RhcnRP
bmVTaG90KDApOwogfQogCi12b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVu
dFRvRGlzcGF0Y2goUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJp
bmcmIGV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpCit2
b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2goRWxlbWVu
dCYgZWxlbWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYg
bmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKQogewotICAgIG1fZXZlbnRzVG9EaXNwYXRjaC5ncm93
KG1fZXZlbnRzVG9EaXNwYXRjaC5zaXplKCkrMSk7Ci0gICAgRXZlbnRUb0Rpc3BhdGNoJiBldmVu
dCA9IG1fZXZlbnRzVG9EaXNwYXRjaFttX2V2ZW50c1RvRGlzcGF0Y2guc2l6ZSgpLTFdOwotICAg
IGV2ZW50LmVsZW1lbnQgPSBlbGVtZW50OwotICAgIGV2ZW50LmV2ZW50VHlwZSA9IGV2ZW50VHlw
ZTsKLSAgICBldmVudC5uYW1lID0gbmFtZTsKLSAgICBldmVudC5lbGFwc2VkVGltZSA9IGVsYXBz
ZWRUaW1lOwotICAgIAorICAgIG1fZXZlbnRzVG9EaXNwYXRjaC5hcHBlbmQoeyBlbGVtZW50LCBl
dmVudFR5cGUsIG5hbWUsIGVsYXBzZWRUaW1lIH0pOwogICAgIHN0YXJ0VXBkYXRlU3R5bGVJZk5l
ZWRlZERpc3BhdGNoZXIoKTsKIH0KIAotdm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6
YWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2goUmVmPEVsZW1lbnQ+JiYgZWxlbWVudCkKK3ZvaWQg
QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKEVs
ZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2guYXBwZW5k
KFdURk1vdmUoZWxlbWVudCkpOworICAgIG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmFwcGVu
ZChlbGVtZW50KTsKICAgICBBU1NFUlQobV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2gubGFzdCgp
LT5kb2N1bWVudCgpLnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hl
KTsKICAgICBzdGFydFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJp
dmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxl
clByaXZhdGUuaAppbmRleCBmYjljYzgyYjgxNTE3ZDBiYTMyNzNmMzgwZjIwYmNkOGE5ODYxZjU4
Li40OWFkM2Y5Yzk1NDI1NWMzMWQwZmJmZmE0YzYyNjhiMDY3OTIxN2UwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQ
cml2YXRlLmgKQEAgLTI5LDMzICsyOSwyMSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJB
bmltYXRpb25CYXNlLmgiCi0jaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUg
IlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJp
bmcuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBBbmltYXRpb25CYXNlOwogY2xhc3MgQ29tcG9zaXRlQW5pbWF0aW9uOwog
Y2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7Ci1jbGFzcyBSZW5k
ZXJFbGVtZW50OwotY2xhc3MgUmVuZGVyU3R5bGU7CiAKLWVudW0gU2V0Q2hhbmdlZCB7Ci0gICAg
RG9Ob3RDYWxsU2V0Q2hhbmdlZCA9IDAsCi0gICAgQ2FsbFNldENoYW5nZWQgPSAxCi19OworZW51
bSBTZXRDaGFuZ2VkIHsgRG9Ob3RDYWxsU2V0Q2hhbmdlZCwgQ2FsbFNldENoYW5nZWQgfTsKIAog
Y2xhc3MgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUgewotICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgQW5p
bWF0aW9uQ29udHJvbGxlclByaXZhdGUoRnJhbWUmKTsKICAgICB+QW5pbWF0aW9uQ29udHJvbGxl
clByaXZhdGUoKTsKQEAgLTY5LDggKzU3LDggQEAgcHVibGljOgogCiAgICAgdm9pZCB1cGRhdGVT
dHlsZUlmTmVlZGVkRGlzcGF0Y2hlckZpcmVkKCk7CiAgICAgdm9pZCBzdGFydFVwZGF0ZVN0eWxl
SWZOZWVkZWREaXNwYXRjaGVyKCk7Ci0gICAgdm9pZCBhZGRFdmVudFRvRGlzcGF0Y2goUGFzc1Jl
ZlB0cjxFbGVtZW50PiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29u
c3QgU3RyaW5nJiBuYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpOwotICAgIHZvaWQgYWRkRWxlbWVu
dENoYW5nZVRvRGlzcGF0Y2goUmVmPEVsZW1lbnQ+JiYpOworICAgIHZvaWQgYWRkRXZlbnRUb0Rp
c3BhdGNoKEVsZW1lbnQmLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpOworICAgIHZvaWQgYWRkRWxlbWVudENoYW5n
ZVRvRGlzcGF0Y2goRWxlbWVudCYpOwogCiAgICAgYm9vbCBoYXNBbmltYXRpb25zKCkgY29uc3Qg
eyByZXR1cm4gIW1fY29tcG9zaXRlQW5pbWF0aW9ucy5pc0VtcHR5KCk7IH0KIApAQCAtMTM0LDIx
ICsxMjIsMTkgQEAgcHJpdmF0ZToKICAgICBUaW1lciBtX2FuaW1hdGlvblRpbWVyOwogICAgIFRp
bWVyIG1fdXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXI7CiAgICAgRnJhbWUmIG1fZnJhbWU7
Ci0gICAgCi0gICAgY2xhc3MgRXZlbnRUb0Rpc3BhdGNoIHsKLSAgICBwdWJsaWM6Ci0gICAgICAg
IFJlZlB0cjxFbGVtZW50PiBlbGVtZW50OworCisgICAgc3RydWN0IEV2ZW50VG9EaXNwYXRjaCB7
CisgICAgICAgIFJlZjxFbGVtZW50PiBlbGVtZW50OwogICAgICAgICBBdG9taWNTdHJpbmcgZXZl
bnRUeXBlOwogICAgICAgICBTdHJpbmcgbmFtZTsKICAgICAgICAgZG91YmxlIGVsYXBzZWRUaW1l
OwogICAgIH07Ci0gICAgCiAgICAgVmVjdG9yPEV2ZW50VG9EaXNwYXRjaD4gbV9ldmVudHNUb0Rp
c3BhdGNoOwogICAgIFZlY3RvcjxSZWY8RWxlbWVudD4+IG1fZWxlbWVudENoYW5nZXNUb0Rpc3Bh
dGNoOwogICAgIAogICAgIGRvdWJsZSBtX2JlZ2luQW5pbWF0aW9uVXBkYXRlVGltZTsKIAotICAg
IHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8QW5pbWF0aW9uQmFzZT4+IEFuaW1hdGlvbnNTZXQ7Cisg
ICAgdXNpbmcgQW5pbWF0aW9uc1NldCA9IEhhc2hTZXQ8UmVmUHRyPEFuaW1hdGlvbkJhc2U+PjsK
ICAgICBBbmltYXRpb25zU2V0IG1fYW5pbWF0aW9uc1dhaXRpbmdGb3JTdHlsZTsKICAgICBBbmlt
YXRpb25zU2V0IG1fYW5pbWF0aW9uc1dhaXRpbmdGb3JTdGFydFRpbWVSZXNwb25zZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRp
b24uY3BwCmluZGV4IDlmNmI5MTdjNmVjMWM2ZmViYmE2OTQwYTE2NzA1YmRiZDVhYzc0Y2YuLjhj
NTQwM2E0YzE5NjM3YWE2MjFkZTZhNDA3MTYwNzFhZTc4MzUwMmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKQEAg
LTEyNSw3ICsxMjUsNyBAQCBzdGF0aWMgaW5saW5lIFRyYW5zZm9ybU9wZXJhdGlvbnMgYmxlbmRG
dW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW1hdGlvbiwgY29ucwogICAgIHJldHVybiB0by5i
bGVuZEJ5VXNpbmdNYXRyaXhJbnRlcnBvbGF0aW9uKGZyb20sIHByb2dyZXNzLCBpczxSZW5kZXJC
b3g+KCphbmltYXRpb24tPnJlbmRlcmVyKCkpID8gZG93bmNhc3Q8UmVuZGVyQm94PigqYW5pbWF0
aW9uLT5yZW5kZXJlcigpKS5ib3JkZXJCb3hSZWN0KCkuc2l6ZSgpIDogTGF5b3V0U2l6ZSgpKTsK
IH0KIAotc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVuZEZ1
bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIENsaXBQYXRoT3BlcmF0aW9uKiBmcm9tLCBDbGlwUGF0
aE9wZXJhdGlvbiogdG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPENs
aXBQYXRoT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIENsaXBQYXRo
T3BlcmF0aW9uKiBmcm9tLCBDbGlwUGF0aE9wZXJhdGlvbiogdG8sIGRvdWJsZSBwcm9ncmVzcykK
IHsKICAgICBpZiAoIWZyb20gfHwgIXRvKQogICAgICAgICByZXR1cm4gdG87CkBAIC0xNDMsNyAr
MTQzLDcgQEAgc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVu
ZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIENsaXAKICAgICByZXR1cm4gU2hhcGVDbGlwUGF0
aE9wZXJhdGlvbjo6Y3JlYXRlKHRvU2hhcGUuYmxlbmQoZnJvbVNoYXBlLCBwcm9ncmVzcykpOwog
fQogCi1zdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U2hhcGVWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0
IEFuaW1hdGlvbkJhc2UqLCBTaGFwZVZhbHVlKiBmcm9tLCBTaGFwZVZhbHVlKiB0bywgZG91Ymxl
IHByb2dyZXNzKQorc3RhdGljIGlubGluZSBSZWZQdHI8U2hhcGVWYWx1ZT4gYmxlbmRGdW5jKGNv
bnN0IEFuaW1hdGlvbkJhc2UqLCBTaGFwZVZhbHVlKiBmcm9tLCBTaGFwZVZhbHVlKiB0bywgZG91
YmxlIHByb2dyZXNzKQogewogICAgIGlmICghZnJvbSB8fCAhdG8pCiAgICAgICAgIHJldHVybiB0
bzsKQEAgLTE2Myw3ICsxNjMsNyBAQCBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U2hhcGVWYWx1
ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBTaGFwZVZhbHVlKgogICAgIHJldHVy
biBTaGFwZVZhbHVlOjpjcmVhdGUodG9TaGFwZS5ibGVuZChmcm9tU2hhcGUsIHByb2dyZXNzKSwg
dG8tPmNzc0JveCgpKTsKIH0KIAotc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEZpbHRlck9wZXJh
dGlvbj4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW1hdGlvbiwgRmlsdGVyT3Bl
cmF0aW9uKiBmcm9tT3AsIEZpbHRlck9wZXJhdGlvbiogdG9PcCwgZG91YmxlIHByb2dyZXNzLCBi
b29sIGJsZW5kVG9QYXNzdGhyb3VnaCA9IGZhbHNlKQorc3RhdGljIGlubGluZSBSZWZQdHI8Rmls
dGVyT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbWF0aW9uLCBG
aWx0ZXJPcGVyYXRpb24qIGZyb21PcCwgRmlsdGVyT3BlcmF0aW9uKiB0b09wLCBkb3VibGUgcHJv
Z3Jlc3MsIGJvb2wgYmxlbmRUb1Bhc3N0aHJvdWdoID0gZmFsc2UpCiB7CiAgICAgQVNTRVJUKHRv
T3ApOwogICAgIGlmICh0b09wLT5ibGVuZGluZ05lZWRzUmVuZGVyZXJTaXplKCkpIHsKQEAgLTIx
OCw3ICsyMTgsNyBAQCBzdGF0aWMgaW5saW5lIEZpbHRlck9wZXJhdGlvbnMgYmxlbmRGdW5jKGNv
bnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIGNvbnN0IEZpbHRlcgogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBibGVuZEZpbHRlcihj
b25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBDYWNoZWRJbWFnZSogaW1hZ2UsIGNvbnN0IEZpbHRl
ck9wZXJhdGlvbnMmIGZyb20sIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIHRvLCBkb3VibGUgcHJv
Z3Jlc3MpCitzdGF0aWMgaW5saW5lIFJlZlB0cjxTdHlsZUltYWdlPiBibGVuZEZpbHRlcihjb25z
dCBBbmltYXRpb25CYXNlKiBhbmltLCBDYWNoZWRJbWFnZSogaW1hZ2UsIGNvbnN0IEZpbHRlck9w
ZXJhdGlvbnMmIGZyb20sIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIHRvLCBkb3VibGUgcHJvZ3Jl
c3MpCiB7CiAgICAgQVNTRVJUKGltYWdlKTsKICAgICBGaWx0ZXJPcGVyYXRpb25zIGZpbHRlclJl
c3VsdCA9IGJsZW5kRmlsdGVyT3BlcmF0aW9ucyhhbmltLCBmcm9tLCB0bywgcHJvZ3Jlc3MpOwpA
QCAtMjc4LDcgKzI3OCw3IEBAIHN0YXRpYyBpbmxpbmUgVmVjdG9yPFNWR0xlbmd0aFZhbHVlPiBi
bGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIGNvbnN0IFZlY3RvCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KIAotc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGNyb3NzZmFk
ZUJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBTdHlsZUNhY2hlZEltYWdlKiBmcm9tU3R5bGVJ
bWFnZSwgU3R5bGVDYWNoZWRJbWFnZSogdG9TdHlsZUltYWdlLCBkb3VibGUgcHJvZ3Jlc3MpCitz
dGF0aWMgaW5saW5lIFJlZlB0cjxTdHlsZUltYWdlPiBjcm9zc2ZhZGVCbGVuZChjb25zdCBBbmlt
YXRpb25CYXNlKiwgU3R5bGVDYWNoZWRJbWFnZSogZnJvbVN0eWxlSW1hZ2UsIFN0eWxlQ2FjaGVk
SW1hZ2UqIHRvU3R5bGVJbWFnZSwgZG91YmxlIHByb2dyZXNzKQogewogICAgIC8vIElmIHByb2dy
ZXNzIGlzIGF0IG9uZSBvZiB0aGUgZXh0cmVtZXMsIHdlIHdhbnQgZ2V0Q29tcHV0ZWRTdHlsZSB0
byBzaG93IHRoZSBpbWFnZSwKICAgICAvLyBub3QgYSBjb21wbGV0ZWQgY3Jvc3MtZmFkZSwgc28g
d2UgaGFuZCBiYWNrIG9uZSBvZiB0aGUgZXhpc3RpbmcgaW1hZ2VzLgpAQCAtMjk1LDcgKzI5NSw3
IEBAIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBjcm9zc2ZhZGVCbGVuZChj
b25zdCBBbmltYXRpb25CYXNlKiwgU3R5bGVDCiAgICAgcmV0dXJuIFN0eWxlR2VuZXJhdGVkSW1h
Z2U6OmNyZWF0ZShXVEZNb3ZlKGNyb3NzZmFkZVZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
UGFzc1JlZlB0cjxTdHlsZUltYWdlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5p
bSwgU3R5bGVJbWFnZSogZnJvbSwgU3R5bGVJbWFnZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0
YXRpYyBpbmxpbmUgUmVmUHRyPFN0eWxlSW1hZ2U+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25C
YXNlKiBhbmltLCBTdHlsZUltYWdlKiBmcm9tLCBTdHlsZUltYWdlKiB0bywgZG91YmxlIHByb2dy
ZXNzKQogewogICAgIGlmICghZnJvbSB8fCAhdG8pCiAgICAgICAgIHJldHVybiB0bzsKQEAgLTM2
NCwxMSArMzY0LDEyIEBAIHN0YXRpYyBpbmxpbmUgTmluZVBpZWNlSW1hZ2UgYmxlbmRGdW5jKGNv
bnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIGNvbnN0IE5pbmVQaWVjCiAgICAgaWYgKGZyb20uaW1h
Z2UoKS0+aW1hZ2VTaXplKGFuaW0tPnJlbmRlcmVyKCksIDEuMCkgIT0gdG8uaW1hZ2UoKS0+aW1h
Z2VTaXplKGFuaW0tPnJlbmRlcmVyKCksIDEuMCkpCiAgICAgICAgIHJldHVybiB0bzsKIAotICAg
IGF1dG8gbmV3Q29udGVudEltYWdlID0gYmxlbmRGdW5jKGFuaW0sIGZyb20uaW1hZ2UoKSwgdG8u
aW1hZ2UoKSwgcHJvZ3Jlc3MpOwotICAgIHJldHVybiBOaW5lUGllY2VJbWFnZShuZXdDb250ZW50
SW1hZ2UsIGZyb20uaW1hZ2VTbGljZXMoKSwgZnJvbS5maWxsKCksIGZyb20uYm9yZGVyU2xpY2Vz
KCksIGZyb20ub3V0c2V0KCksIGZyb20uaG9yaXpvbnRhbFJ1bGUoKSwgZnJvbS52ZXJ0aWNhbFJ1
bGUoKSk7CisgICAgcmV0dXJuIE5pbmVQaWVjZUltYWdlKGJsZW5kRnVuYyhhbmltLCBmcm9tLmlt
YWdlKCksIHRvLmltYWdlKCksIHByb2dyZXNzKSwKKyAgICAgICAgZnJvbS5pbWFnZVNsaWNlcygp
LCBmcm9tLmZpbGwoKSwgZnJvbS5ib3JkZXJTbGljZXMoKSwgZnJvbS5vdXRzZXQoKSwgZnJvbS5o
b3Jpem9udGFsUnVsZSgpLCBmcm9tLnZlcnRpY2FsUnVsZSgpKTsKIH0KIAogI2lmIEVOQUJMRShW
QVJJQVRJT05fRk9OVFMpCisKIHN0YXRpYyBpbmxpbmUgRm9udFZhcmlhdGlvblNldHRpbmdzIGJs
ZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25zdCBGb250VmFyaWF0aW9uU2V0
dGluZ3MmIGZyb20sIGNvbnN0IEZvbnRWYXJpYXRpb25TZXR0aW5ncyYgdG8sIGRvdWJsZSBwcm9n
cmVzcykKIHsKICAgICBpZiAoZnJvbS5zaXplKCkgIT0gdG8uc2l6ZSgpKQpAQCAtMzg1LDYgKzM4
Niw3IEBAIHN0YXRpYyBpbmxpbmUgRm9udFZhcmlhdGlvblNldHRpbmdzIGJsZW5kRnVuYyhjb25z
dCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25zdCBGCiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7
CiB9CisKICNlbmRpZgogCiBjbGFzcyBBbmltYXRpb25Qcm9wZXJ0eVdyYXBwZXJCYXNlIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24u
Y3BwCmluZGV4IDViNzRlNzY3ODI4YzQ1YTU2MjllMTlmZTI2MDUzODNjMmE1ZjZlOGEuLjY2OTky
NzA3YjFlZWFiMTg0M2ZlMDM5YWFjNjJkZTMwYzQ0MzAyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcApAQCAtMTIxLDgg
KzEyMSw4IEBAIHZvaWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVUcmFuc2l0aW9ucyhSZW5k
ZXJFbGVtZW50KiByZW5kZXJlciwgY29uc3QgUmVuZGVyCiAgICAgICAgICAgICAgICAgLy8gSWYg
dGhlcmUgaXMgYSBydW5uaW5nIGFuaW1hdGlvbiBmb3IgdGhpcyBwcm9wZXJ0eSwgdGhlIHRyYW5z
aXRpb24gaXMgb3ZlcnJpZGRlbgogICAgICAgICAgICAgICAgIC8vIGFuZCB3ZSBoYXZlIHRvIHVz
ZSB0aGUgdW5hbmltYXRlZFN0eWxlIGZyb20gdGhlIGFuaW1hdGlvbi4gV2UgZG8gdGhlIHRlc3QK
ICAgICAgICAgICAgICAgICAvLyBhZ2FpbnN0IHRoZSB1bmFuaW1hdGVkIHN0eWxlIGhlcmUsIGJ1
dCB3ZSAib3ZlcnJpZGUiIHRoZSB0cmFuc2l0aW9uIGxhdGVyLgotICAgICAgICAgICAgICAgIFJl
ZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4ga2V5ZnJhbWVBbmltID0gZ2V0QW5pbWF0aW9uRm9yUHJv
cGVydHkocHJvcCk7Ci0gICAgICAgICAgICAgICAgYXV0byogZnJvbVN0eWxlID0ga2V5ZnJhbWVB
bmltID8ga2V5ZnJhbWVBbmltLT51bmFuaW1hdGVkU3R5bGUoKSA6IGN1cnJlbnRTdHlsZTsKKyAg
ICAgICAgICAgICAgICBhdXRvKiBrZXlmcmFtZUFuaW1hdGlvbiA9IGFuaW1hdGlvbkZvclByb3Bl
cnR5KHByb3ApOworICAgICAgICAgICAgICAgIGF1dG8qIGZyb21TdHlsZSA9IGtleWZyYW1lQW5p
bWF0aW9uID8ga2V5ZnJhbWVBbmltYXRpb24tPnVuYW5pbWF0ZWRTdHlsZSgpIDogY3VycmVudFN0
eWxlOwogCiAgICAgICAgICAgICAgICAgLy8gU2VlIGlmIHRoZXJlIGlzIGEgY3VycmVudCB0cmFu
c2l0aW9uIGZvciB0aGlzIHByb3AKICAgICAgICAgICAgICAgICBJbXBsaWNpdEFuaW1hdGlvbiog
aW1wbEFuaW0gPSBtX3RyYW5zaXRpb25zLmdldChwcm9wKTsKQEAgLTE3Miw3ICsxNzIsNyBAQCB2
b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlVHJhbnNpdGlvbnMoUmVuZGVyRWxlbWVudCog
cmVuZGVyZXIsIGNvbnN0IFJlbmRlcgogICAgICAgICAgICAgICAgICAgICBMT0coQW5pbWF0aW9u
cywgIkNyZWF0ZWQgSW1wbGljaXRBbmltYXRpb24gJXAgb24gcmVuZGVyZXIgJXAgZm9yIHByb3Bl
cnR5ICVzIGR1cmF0aW9uICUuMmYgZGVsYXkgJS4yZiIsIGltcGxpY2l0QW5pbWF0aW9uLnB0cigp
LCByZW5kZXJlciwgZ2V0UHJvcGVydHlOYW1lKHByb3ApLCBhbmltYXRpb24uZHVyYXRpb24oKSwg
YW5pbWF0aW9uLmRlbGF5KCkpOwogICAgICAgICAgICAgICAgICAgICBtX3RyYW5zaXRpb25zLnNl
dChwcm9wLCBXVEZNb3ZlKGltcGxpY2l0QW5pbWF0aW9uKSk7CiAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgIAorCiAgICAgICAgICAgICAgICAgLy8gV2Ugb25seSBuZWVkIG9uZSBw
YXNzIGZvciB0aGUgc2luZ2xlIHByb3AgY2FzZQogICAgICAgICAgICAgICAgIGlmICghYWxsKQog
ICAgICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM5OSwyMSArMzk5LDIxIEBAIGRvdWJsZSBD
b21wb3NpdGVBbmltYXRpb246OnRpbWVUb05leHRTZXJ2aWNlKCkgY29uc3QKICAgICByZXR1cm4g
bWluVDsKIH0KIAotUGFzc1JlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4gQ29tcG9zaXRlQW5pbWF0
aW9uOjpnZXRBbmltYXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5KSBjb25z
dAorS2V5ZnJhbWVBbmltYXRpb24qIENvbXBvc2l0ZUFuaW1hdGlvbjo6YW5pbWF0aW9uRm9yUHJv
cGVydHkoQ1NTUHJvcGVydHlJRCBwcm9wZXJ0eSkgY29uc3QKIHsKLSAgICBSZWZQdHI8S2V5ZnJh
bWVBbmltYXRpb24+IHJldHZhbDsKLSAgICAKKyAgICBLZXlmcmFtZUFuaW1hdGlvbiogcmVzdWx0
ID0gbnVsbHB0cjsKKwogICAgIC8vIFdlIHdhbnQgdG8gc2VuZCBiYWNrIHRoZSBsYXN0IGFuaW1h
dGlvbiB3aXRoIHRoZSBwcm9wZXJ0eSBpZiB0aGVyZSBhcmUgbXVsdGlwbGVzLgogICAgIC8vIFNv
IHdlIG5lZWQgdG8gaXRlcmF0ZSB0aHJvdWdoIGFsbCBhbmltYXRpb25zCiAgICAgaWYgKCFtX2tl
eWZyYW1lQW5pbWF0aW9ucy5pc0VtcHR5KCkpIHsKICAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlv
bnMuY2hlY2tDb25zaXN0ZW5jeSgpOwogICAgICAgICBmb3IgKGF1dG8mIGFuaW1hdGlvbiA6IG1f
a2V5ZnJhbWVBbmltYXRpb25zLnZhbHVlcygpKSB7CiAgICAgICAgICAgICBpZiAoYW5pbWF0aW9u
LT5oYXNBbmltYXRpb25Gb3JQcm9wZXJ0eShwcm9wZXJ0eSkpCi0gICAgICAgICAgICAgICAgcmV0
dmFsID0gYW5pbWF0aW9uOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGFuaW1hdGlvbi5nZXQo
KTsKICAgICAgICAgfQogICAgIH0KLSAgICAKLSAgICByZXR1cm4gcmV0dmFsOworCisgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAogYm9vbCBDb21wb3NpdGVBbmltYXRpb246OmNvbXB1dGVFeHRlbnRP
ZlRyYW5zZm9ybUFuaW1hdGlvbihMYXlvdXRSZWN0JiBib3VuZHMpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCmluZGV4IDMz
N2ZlNmYxNjZlNzFjMWNlNjE5YWUyMzg4OTMxMTg3ZmY4NjQ3Y2MuLjQwYzNhNDkxZjJhNTQ4ZWIz
ZTJiMzMxNmM0ZjBmZmUwNTMyMTM5MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoK
IAogICAgIGJvb2wgaXNBbmltYXRpbmdQcm9wZXJ0eShDU1NQcm9wZXJ0eUlELCBib29sIGFjY2Vs
ZXJhdGVkT25seSwgQW5pbWF0aW9uQmFzZTo6UnVubmluZ1N0YXRlKSBjb25zdDsKIAotICAgIFBh
c3NSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IGdldEFuaW1hdGlvbkZvclByb3BlcnR5KENTU1By
b3BlcnR5SUQpIGNvbnN0OworICAgIEtleWZyYW1lQW5pbWF0aW9uKiBhbmltYXRpb25Gb3JQcm9w
ZXJ0eShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKIAogICAgIHZvaWQgb3ZlcnJpZGVJbXBsaWNpdEFu
aW1hdGlvbnMoQ1NTUHJvcGVydHlJRCk7CiAgICAgdm9pZCByZXN1bWVPdmVycmlkZGVuSW1wbGlj
aXRBbmltYXRpb25zKENTU1Byb3BlcnR5SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCmluZGV4IDcxNmJlYTgyNDkwNDkyYzQz
YmNlMTc3NDlkMWZmYjUyMTI3Y2NjZmYuLmZkZWQ2MjNhNmFkZGE5MjRhYjc2MzYzZTI0NjljYmNh
MzJjYmZiNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxp
Y2l0QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBs
aWNpdEFuaW1hdGlvbi5jcHAKQEAgLTE2MywxMCArMTYzLDkgQEAgdm9pZCBJbXBsaWNpdEFuaW1h
dGlvbjo6b25BbmltYXRpb25FbmQoZG91YmxlIGVsYXBzZWRUaW1lKQogICAgIC8vIHJ1bm5pbmcu
IEJ1dCBub3cgdGhhdCB0aGUgdHJhbnNpdGlvbiBoYXMgY29tcGxldGVkLCB3ZSBuZWVkIHRvIHVw
ZGF0ZSB0aGlzIHN0eWxlIHdpdGggaXRzIG5ldwogICAgIC8vIGRlc3RpbmF0aW9uLiBJZiB3ZSBk
aWRuJ3QsIHRoZSBuZXh0IHRpbWUgdGhyb3VnaCB3ZSB3b3VsZCB0aGluayBhIHRyYW5zaXRpb24g
aGFkIHN0YXJ0ZWQKICAgICAvLyAoY29tcGFyaW5nIHRoZSBvbGQgdW5hbmltYXRlZCBzdHlsZSB3
aXRoIHRoZSBuZXcgZmluYWwgc3R5bGUgb2YgdGhlIHRyYW5zaXRpb24pLgotICAgIFJlZlB0cjxL
ZXlmcmFtZUFuaW1hdGlvbj4ga2V5ZnJhbWVBbmltID0gbV9jb21wb3NpdGVBbmltYXRpb24tPmdl
dEFuaW1hdGlvbkZvclByb3BlcnR5KG1fYW5pbWF0aW5nUHJvcGVydHkpOwotICAgIGlmIChrZXlm
cmFtZUFuaW0pCi0gICAgICAgIGtleWZyYW1lQW5pbS0+c2V0VW5hbmltYXRlZFN0eWxlKFJlbmRl
clN0eWxlOjpjbG9uZVB0cigqbV90b1N0eWxlKSk7Ci0gICAgCisgICAgaWYgKGF1dG8qIGFuaW1h
dGlvbiA9IG1fY29tcG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Gb3JQcm9wZXJ0eShtX2FuaW1h
dGluZ1Byb3BlcnR5KSkKKyAgICAgICAgYW5pbWF0aW9uLT5zZXRVbmFuaW1hdGVkU3R5bGUoUmVu
ZGVyU3R5bGU6OmNsb25lUHRyKCptX3RvU3R5bGUpKTsKKwogICAgIHNlbmRUcmFuc2l0aW9uRXZl
bnQoZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCwgZWxhcHNlZFRpbWUpOwogICAgIGVu
ZEFuaW1hdGlvbigpOwogfQpAQCAtMTg3LDcgKzE4Niw3IEBAIGJvb2wgSW1wbGljaXRBbmltYXRp
b246OnNlbmRUcmFuc2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGRv
dWJsCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICAvLyBTY2hl
ZHVsZSBldmVudCBoYW5kbGluZwotICAgICAgICAgICAgbV9jb21wb3NpdGVBbmltYXRpb24tPmFu
aW1hdGlvbkNvbnRyb2xsZXIoKS5hZGRFdmVudFRvRGlzcGF0Y2goZWxlbWVudCwgZXZlbnRUeXBl
LCBwcm9wZXJ0eU5hbWUsIGVsYXBzZWRUaW1lKTsKKyAgICAgICAgICAgIG1fY29tcG9zaXRlQW5p
bWF0aW9uLT5hbmltYXRpb25Db250cm9sbGVyKCkuYWRkRXZlbnRUb0Rpc3BhdGNoKCplbGVtZW50
LCBldmVudFR5cGUsIHByb3BlcnR5TmFtZSwgZWxhcHNlZFRpbWUpOwogCiAgICAgICAgICAgICAv
LyBSZXN0b3JlIHRoZSBvcmlnaW5hbCAodW5hbmltYXRlZCkgc3R5bGUKICAgICAgICAgICAgIGlm
IChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCAmJiBlbGVtZW50
LT5yZW5kZXJlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
S2V5ZnJhbWVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5
ZnJhbWVBbmltYXRpb24uY3BwCmluZGV4IDQ3MWJhY2Y2ZjFiOWYwNWNlMWQzNGRhODc1ZmU4YzY3
Yzk0ZmY1N2QuLmRjMjlkMjIzOTFiMDM0YmRjZWU1NjZmM2IyYTVjMzE3YTBkZDAwMzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5j
cHAKQEAgLTMyNyw3ICszMjcsNyBAQCBib29sIEtleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0
aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGRvdWJsZQogICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIC8vIFNjaGVkdWxlIGV2ZW50IGhhbmRsaW5nCi0g
ICAgICAgIG1fY29tcG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Db250cm9sbGVyKCkuYWRkRXZl
bnRUb0Rpc3BhdGNoKGVsZW1lbnQsIGV2ZW50VHlwZSwgbV9rZXlmcmFtZXMuYW5pbWF0aW9uTmFt
ZSgpLCBlbGFwc2VkVGltZSk7CisgICAgICAgIG1fY29tcG9zaXRlQW5pbWF0aW9uLT5hbmltYXRp
b25Db250cm9sbGVyKCkuYWRkRXZlbnRUb0Rpc3BhdGNoKCplbGVtZW50LCBldmVudFR5cGUsIG1f
a2V5ZnJhbWVzLmFuaW1hdGlvbk5hbWUoKSwgZWxhcHNlZFRpbWUpOwogCiAgICAgICAgIC8vIFJl
c3RvcmUgdGhlIG9yaWdpbmFsICh1bmFuaW1hdGVkKSBzdHlsZQogICAgICAgICBpZiAoKGV2ZW50
VHlwZSA9PSBldmVudE5hbWVzKCkud2Via2l0QW5pbWF0aW9uRW5kRXZlbnQgfHwgZXZlbnRUeXBl
ID09IGV2ZW50TmFtZXMoKS5hbmltYXRpb25lbmRFdmVudCkgJiYgZWxlbWVudC0+cmVuZGVyZXIo
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCmluZGV4IDIx
MDZkMWUxOWE0ODZhMzg1ZmZlODdmOTAwZmFhZmU5MDhiY2FjMTIuLmFhZDA3ZDZmZjZiMTdlY2Rk
NzE3MTFlNDFlZjViNGUwM2VlMDA1MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
ZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZl
bnRIYW5kbGVyRWZsLmNwcApAQCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBj
b25zdCBkb3VibGUgRXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4wOwogI2VuZGlmCiAK
LWJvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCop
IGNvbnN0Citib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJk
RXZlbnQmKSBjb25zdAogewogICAgIHJldHVybiB0cnVlOwogfQpAQCAtOTYsMTAgKzk2LDEyIEBA
IGJvb2wgRXZlbnRIYW5kbGVyOjp3aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYgZXZlbnQsIFdpCiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQot
UGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRh
VHJhbnNmZXIoKSBjb25zdAorCitSZWY8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gRGF0YVRyYW5zZmVy
OjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwogfQorCiAjZW5kaWYKIAogYm9vbCBFdmVudEhhbmRs
ZXI6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2
ZW50SGFuZGxlckd0ay5jcHAKaW5kZXggNDNmMDUzNzVlNWJkZTYxNGY5MDhhN2MxNTRkODJkN2Iw
OGVjZTI0Yi4uYWFhZGUwMDJjNWM4OWJkY2VjMDI1MzY1YjAxOTdhNTAxOTZjMmI4MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3BwCkBAIC00Niw3ICs0Niw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRleHRE
cmFnRGVsYXkgPSAwLjA7CiAjZW5kaWYKIAotYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZv
cm1Db250cm9scyhLZXlib2FyZEV2ZW50KikgY29uc3QKK2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJz
VG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCYpIGNvbnN0CiB7CiAgICAgLy8gV2UgYWx3
YXlzIGFsbG93IHRhYnMgdG8gYWxsIGNvbnRyb2xzCiAgICAgcmV0dXJuIHRydWU7CkBAIC05Niwx
MCArOTYsMTIgQEAgYm9vbCBFdmVudEhhbmRsZXI6OndpZGdldERpZEhhbmRsZVdoZWVsRXZlbnQo
Y29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgV2kKIH0KIAogI2lmIEVOQUJMRShEUkFH
X1NVUFBPUlQpCi1QYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVE
cmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CisKK1JlZjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFu
ZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIHJldHVybiBE
YXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdBbmREcm9wKCk7CiB9CisKICNlbmRpZgogCiBib29s
IEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUHJlc3NFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdp
dGhIaXRUZXN0UmVzdWx0cyYgbWV2LCBGcmFtZSogc3ViZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0KaW5kZXggNTI0ZmI1YWVhNWIzZDUyMzZiOTQxZDdh
ZDI1ODhiNDg5Y2JkYTdhMC4uMjliYWRlZjU5NTU4NGEzZmNlNTNjYTJmODI0MWU0ZjZlZmQ3NTRk
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQpAQCAtMTIw
LDcgKzEyMCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjp0b3VjaEV2ZW50KFdlYkV2ZW50ICpldmVu
dCkKIH0KICNlbmRpZgogCi1ib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xz
KEtleWJvYXJkRXZlbnQqIGV2ZW50KSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0Fs
bEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JiBldmVudCkgY29uc3QKIHsKICAgICBQYWdlKiBw
YWdlID0gbV9mcmFtZS5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IGU1OTE5NzhjMDBjNDBjNjllNzczYTk3NjIx
ZDc2NzMzYmQ3NTFiMDIuLmFkN2E1OWUzMWUwOTViMGJjNTIwNTA3MmZkZjE4MzlmMGY0ZjY4M2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAgLTYxLDYg
KzYxLDcgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIK
ICNpbmNsdWRlICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiV2hlZWxFdmVu
dERlbHRhRmlsdGVyLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5j
bHVkZSA8d3RmL0Jsb2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgpAQCAtNzIzLDcgKzcyNCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpldmVudEFjdGl2YXRl
ZFZpZXcoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCkgY29uc3QKIAogI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCiAKLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6
OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKK1JlZjxEYXRhVHJhbnNmZXI+IEV2
ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIC8v
IE11c3QgYmUgZG9uZSBiZWZvcmUgb25kcmFnc3RhcnQgYWRkcyB0eXBlcyBhbmQgZGF0YSB0byB0
aGUgcGJvYXJkLAogICAgIC8vIGFsc28gZG9uZSBmb3Igc2VjdXJpdHksIGFzIGl0IGVyYXNlcyBk
YXRhIGZyb20gdGhlIGxhc3QgZHJhZy4KQEAgLTczNCw3ICs3MzUsNyBAQCBQYXNzUmVmUHRyPERh
dGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNv
bnN0CiAKICNlbmRpZgogCi1ib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xz
KEtleWJvYXJkRXZlbnQqIGV2ZW50KSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0Fs
bEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JiBldmVudCkgY29uc3QKIHsKICAgICBQYWdlKiBw
YWdlID0gbV9mcmFtZS5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpAQCAtOTcxLDEwICs5NzIsMTAg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OnBsYXRmb3JtUHJlcGFyZUZvcldoZWVsRXZlbnRzKGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWwKICAgICAgICAgICAgICAgICBtX2ZyYW1lLm1haW5G
cmFtZSgpLnB1c2hOZXdMYXRjaGluZ1N0YXRlKCk7CiAgICAgICAgICAgICAgICAgbGF0Y2hpbmdT
dGF0ZSA9IG1fZnJhbWUubWFpbkZyYW1lKCkubGF0Y2hpbmdTdGF0ZSgpOwogICAgICAgICAgICAg
ICAgIGxhdGNoaW5nU3RhdGUtPnNldFN0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdChmYWxzZSk7
Ci0gICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0V2hlZWxFdmVudEVsZW1lbnQod2hl
ZWxFdmVudFRhcmdldCk7CisgICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0V2hlZWxF
dmVudEVsZW1lbnQod2hlZWxFdmVudFRhcmdldC5nZXQoKSk7CiAgICAgICAgICAgICAgICAgbGF0
Y2hpbmdTdGF0ZS0+c2V0RnJhbWUoJm1fZnJhbWUpOwogICAgICAgICAgICAgICAgIC8vIEZJWE1F
OiBXaGF0IHByZXZlbnRzIHVzIGZyb20gZGVsZXRpbmcgdGhpcyBzY3JvbGxhYmxlIGNvbnRhaW5l
ciB3aGlsZSBzdGlsbCBob2xkaW5nIGEgcG9pbnRlciB0byBpdD8KLSAgICAgICAgICAgICAgICBs
YXRjaGluZ1N0YXRlLT5zZXRTY3JvbGxhYmxlQ29udGFpbmVyKHNjcm9sbGFibGVDb250YWluZXIp
OworICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldFNjcm9sbGFibGVDb250YWluZXIo
c2Nyb2xsYWJsZUNvbnRhaW5lci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0
ZS0+c2V0V2lkZ2V0SXNMYXRjaGVkKHJlc3VsdC5pc092ZXJXaWRnZXQoKSk7CiAgICAgICAgICAg
ICAgICAgaXNPdmVyV2lkZ2V0ID0gbGF0Y2hpbmdTdGF0ZS0+d2lkZ2V0SXNMYXRjaGVkKCk7CiAg
ICAgICAgICAgICAgICAgbV9mcmFtZS5tYWluRnJhbWUoKS53aGVlbEV2ZW50RGVsdGFGaWx0ZXIo
KS0+YmVnaW5GaWx0ZXJpbmdEZWx0YXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaAppbmRleCA1NWU0ZDY1OTVlZWI2MDUzZjZh
NmE5NDUwYjlkYWViODEyOGM1MjcwLi42NWIxY2VlYzZiMTEyN2IwNTk2MzIxZWM0ODgyNDU3ZGY0
MWIwNGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJQYWdlT3ZlcmxheS5oIgog
I2luY2x1ZGUgIlJhbmdlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgogCiB0eXBlZGVmIHN0cnVjdCBfX0RESGlnaGxpZ2h0ICpEREhpZ2hsaWdodFJl
ZjsKIApAQCAtMzksNiArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBM
YXlvdXRSZWN0OwogY2xhc3MgTWFpbkZyYW1lOworCiBzdHJ1Y3QgR2FwUmVjdHM7CiAKIGNsYXNz
IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIgOiBwcml2YXRlIFBhZ2VPdmVybGF5OjpDbGllbnQg
ewpAQCAtNTQsMTQgKzU0LDE0IEBAIHByaXZhdGU6CiAgICAgY2xhc3MgSGlnaGxpZ2h0IDogcHVi
bGljIFJlZkNvdW50ZWQ8SGlnaGxpZ2h0PiwgcHJpdmF0ZSBHcmFwaGljc0xheWVyQ2xpZW50IHsK
ICAgICAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoSGlnaGxpZ2h0KTsKICAgICBwdWJsaWM6Ci0g
ICAgICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGVGb3JTZWxlY3Rpb24oU2VydmljZXNP
dmVybGF5Q29udHJvbGxlciYsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFBhc3NSZWZQdHI8
UmFuZ2U+KTsKLSAgICAgICAgc3RhdGljIFJlZjxIaWdobGlnaHQ+IGNyZWF0ZUZvclRlbGVwaG9u
ZU51bWJlcihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiwgUmV0YWluUHRyPERESGlnaGxpZ2h0
UmVmPiwgUGFzc1JlZlB0cjxSYW5nZT4pOworICAgICAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodD4g
Y3JlYXRlRm9yU2VsZWN0aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImLCBSZXRhaW5QdHI8
RERIaWdobGlnaHRSZWY+LCBSZWY8UmFuZ2U+JiYpOworICAgICAgICBzdGF0aWMgUmVmPEhpZ2hs
aWdodD4gY3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIm
LCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+LCBSZWY8UmFuZ2U+JiYpOwogICAgICAgICB+SGln
aGxpZ2h0KCk7CiAKICAgICAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKICAgICAgICAgRERIaWdo
bGlnaHRSZWYgZGRIaWdobGlnaHQoKSBjb25zdCB7IHJldHVybiBtX2RkSGlnaGxpZ2h0LmdldCgp
OyB9Ci0gICAgICAgIFJhbmdlKiByYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2UuZ2V0KCk7
IH0KKyAgICAgICAgUmFuZ2UmIHJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZS5nZXQoKTsg
fQogICAgICAgICBHcmFwaGljc0xheWVyKiBsYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fZ3JhcGhp
Y3NMYXllci5nZXQoKTsgfQogCiAgICAgICAgIGVudW0gewpAQCAtNzcsNyArNzcsNyBAQCBwcml2
YXRlOgogICAgICAgICB2b2lkIHNldERESGlnaGxpZ2h0KERESGlnaGxpZ2h0UmVmKTsKIAogICAg
IHByaXZhdGU6Ci0gICAgICAgIGV4cGxpY2l0IEhpZ2hsaWdodChTZXJ2aWNlc092ZXJsYXlDb250
cm9sbGVyJiwgVHlwZSwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUGFzc1JlZlB0cjxSYW5n
ZT4pOworICAgICAgICBIaWdobGlnaHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFR5cGUs
IFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFJlZjxSYW5nZT4mJik7CiAKICAgICAgICAgLy8g
R3JhcGhpY3NMYXllckNsaWVudAogICAgICAgICB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29u
c3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwpAQCAtODcsNyArODcsNyBAQCBwcml2YXRlOgog
ICAgICAgICB2b2lkIGRpZEZpbmlzaEZhZGVPdXRBbmltYXRpb24oKTsKIAogICAgICAgICBSZXRh
aW5QdHI8RERIaWdobGlnaHRSZWY+IG1fZGRIaWdobGlnaHQ7Ci0gICAgICAgIFJlZlB0cjxSYW5n
ZT4gbV9yYW5nZTsKKyAgICAgICAgUmVmPFJhbmdlPiBtX3JhbmdlOwogICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbV9ncmFwaGljc0xheWVyOwogICAgICAgICBUeXBlIG1f
dHlwZTsKICAgICAgICAgU2VydmljZXNPdmVybGF5Q29udHJvbGxlciogbV9jb250cm9sbGVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJv
bGxlci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXIubW0KaW5kZXggOWE4MTViNWFlNTU5NjQ5OWJkZjYxNmVkNDIxMWI5YTUyMzgxNWU2Mi4uNGIw
M2UyMmFlNDZiZTg5YWUyMzEwMmZiNDlmZjQ5MjFkNDA0NjhiZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCkBAIC01NSwy
MyArNTUsMjIgQEAgY29uc3QgZmxvYXQgaGlnaGxpZ2h0RmFkZUFuaW1hdGlvbkR1cmF0aW9uID0g
MC4zOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyOjpIaWdobGlnaHQ+IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6Y3Jl
YXRlRm9yU2VsZWN0aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIsIFJl
dGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFBhc3NSZWZQdHI8UmFuZ2U+IHJh
bmdlKQorUmVmPFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodD4gU2VydmljZXNP
dmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24oU2VydmljZXNP
dmVybGF5Q29udHJvbGxlciYgY29udHJvbGxlciwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBk
ZEhpZ2hsaWdodCwgUmVmPFJhbmdlPiYmIHJhbmdlKQogewotICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IEhpZ2hsaWdodChjb250cm9sbGVyLCBIaWdobGlnaHQ6OlNlbGVjdGlvblR5cGUsIGRkSGln
aGxpZ2h0LCByYW5nZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodChjb250
cm9sbGVyLCBIaWdobGlnaHQ6OlNlbGVjdGlvblR5cGUsIGRkSGlnaGxpZ2h0LCBXVEZNb3ZlKHJh
bmdlKSkpOwogfQogCi1SZWY8U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0PiBT
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OmNyZWF0ZUZvclRlbGVwaG9uZU51
bWJlcihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiBjb250cm9sbGVyLCBSZXRhaW5QdHI8RERI
aWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZSkKK1JlZjxT
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ+IFNlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXI6OkhpZ2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKFNlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXImIGNvbnRyb2xsZXIsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdo
bGlnaHQsIFJlZjxSYW5nZT4mJiByYW5nZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBI
aWdobGlnaHQoY29udHJvbGxlciwgSGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlLCBkZEhp
Z2hsaWdodCwgcmFuZ2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHQoY29u
dHJvbGxlciwgSGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlLCBkZEhpZ2hsaWdodCwgV1RG
TW92ZShyYW5nZSkpKTsKIH0KIAotU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0
OjpIaWdobGlnaHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYgY29udHJvbGxlciwgVHlwZSB0
eXBlLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBQYXNzUmVmUHRyPFdl
YkNvcmU6OlJhbmdlPiByYW5nZSkKLSAgICA6IG1fcmFuZ2UocmFuZ2UpCitTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OkhpZ2hsaWdodChTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyJiBjb250cm9sbGVyLCBUeXBlIHR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRI
aWdobGlnaHQsIFJlZjxXZWJDb3JlOjpSYW5nZT4mJiByYW5nZSkKKyAgICA6IG1fcmFuZ2UoV1RG
TW92ZShyYW5nZSkpCiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fY29udHJvbGxlcigmY29u
dHJvbGxlcikKIHsKICAgICBBU1NFUlQoZGRIaWdobGlnaHQpOwotICAgIEFTU0VSVChtX3Jhbmdl
KTsKIAogICAgIFBhZ2UqIHBhZ2UgPSBjb250cm9sbGVyLm1haW5GcmFtZSgpLnBhZ2UoKTsKICAg
ICBtX2dyYXBoaWNzTGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUocGFnZSA/IHBhZ2UtPmNo
cm9tZSgpLmNsaWVudCgpLmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgOiBudWxscHRyLCAqdGhpcyk7
CkBAIC00MDksNyArNDA4LDcgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWls
ZFBvdGVudGlhbEhpZ2hsaWdodHNJZk5lZWRlZCgpCiAKICAgICBpZiAobV9wb3RlbnRpYWxIaWdo
bGlnaHRzLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAobV9zZXJ2aWNlc092ZXJsYXkpCi0gICAg
ICAgICAgICBtX21haW5GcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdl
T3ZlcmxheShtX3NlcnZpY2VzT3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZh
ZGUpOworICAgICAgICAgICAgbV9tYWluRnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5p
bnN0YWxsUGFnZU92ZXJsYXkoKm1fc2VydmljZXNPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1v
ZGU6OkRvTm90RmFkZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTUyNyw3ICs1MjYs
NyBAQCB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkUGhvbmVOdW1iZXJIaWdo
bGlnaHRzKCkKICAgICAgICAgQ0dSZWN0IGNnUmVjdCA9IHJlY3Q7CiAgICAgICAgIFJldGFpblB0
cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQgPSBhZG9wdENGKERESGlnaGxpZ2h0Q3JlYXRl
V2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZUFuZERpcmVjdGlvbihudWxscHRyLCAmY2dS
ZWN0LCAxLCBtYWluRnJhbWVWaWV3LnZpc2libGVDb250ZW50UmVjdCgpLCBEREhpZ2hsaWdodFN0
eWxlQnViYmxlU3RhbmRhcmQgfCBEREhpZ2hsaWdodFN0eWxlU3RhbmRhcmRJY29uQXJyb3csIFlF
UywgTlNXcml0aW5nRGlyZWN0aW9uTmF0dXJhbCwgTk8sIFlFUykpOwogCi0gICAgICAgIG5ld1Bv
dGVudGlhbEhpZ2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVy
KCp0aGlzLCBkZEhpZ2hsaWdodCwgcmFuZ2UpKTsKKyAgICAgICAgbmV3UG90ZW50aWFsSGlnaGxp
Z2h0cy5hZGQoSGlnaGxpZ2h0OjpjcmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIoKnRoaXMsIGRkSGln
aGxpZ2h0LCByYW5nZS5yZWxlYXNlTm9uTnVsbCgpKSk7CiAgICAgfQogCiAgICAgcmVwbGFjZUhp
Z2hsaWdodHNPZlR5cGVQcmVzZXJ2aW5nRXF1aXZhbGVudEhpZ2hsaWdodHMobmV3UG90ZW50aWFs
SGlnaGxpZ2h0cywgSGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlKTsKQEAgLTU3MCw3ICs1
NjksNyBAQCB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkU2VsZWN0aW9uSGln
aGxpZ2h0KCkKICAgICAgICAgICAgIENHUmVjdCB2aXNpYmxlUmVjdCA9IG1haW5GcmFtZVZpZXct
PnZpc2libGVDb250ZW50UmVjdCgpOwogICAgICAgICAgICAgUmV0YWluUHRyPERESGlnaGxpZ2h0
UmVmPiBkZEhpZ2hsaWdodCA9IGFkb3B0Q0YoRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZp
c2libGVSZWN0V2l0aFN0eWxlQW5kRGlyZWN0aW9uKG51bGxwdHIsIGNnUmVjdHMuYmVnaW4oKSwg
Y2dSZWN0cy5zaXplKCksIHZpc2libGVSZWN0LCBEREhpZ2hsaWdodFN0eWxlQnViYmxlTm9uZSB8
IERESGlnaGxpZ2h0U3R5bGVTdGFuZGFyZEljb25BcnJvdyB8IERESGlnaGxpZ2h0U3R5bGVCdXR0
b25TaG93QWx3YXlzLCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5PLCBZRVMpKTsK
ICAgICAgICAgICAgIAotICAgICAgICAgICAgbmV3UG90ZW50aWFsSGlnaGxpZ2h0cy5hZGQoSGln
aGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24oKnRoaXMsIGRkSGlnaGxpZ2h0LCBzZWxlY3Rpb25S
YW5nZSkpOworICAgICAgICAgICAgbmV3UG90ZW50aWFsSGlnaGxpZ2h0cy5hZGQoSGlnaGxpZ2h0
OjpjcmVhdGVGb3JTZWxlY3Rpb24oKnRoaXMsIGRkSGlnaGxpZ2h0LCBzZWxlY3Rpb25SYW5nZS5y
ZWxlYXNlTm9uTnVsbCgpKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTYzOCwxNCArNjM3LDkg
QEAgYm9vbCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpoaWdobGlnaHRzQXJlRXF1aXZhbGVu
dChjb25zdCBIaWdobGlnaHQqIGEsIGNvbnMKIHsKICAgICBpZiAoYSA9PSBiKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLQogICAgIGlmICghYSB8fCAhYikKICAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgaWYgKGEtPnR5cGUoKSA9PSBiLT50eXBlKCkgJiYgYXJlUmFuZ2VzRXF1YWwoYS0+cmFu
Z2UoKSwgYi0+cmFuZ2UoKSkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIGZh
bHNlOworICAgIHJldHVybiBhLT50eXBlKCkgPT0gYi0+dHlwZSgpICYmIGFyZVJhbmdlc0VxdWFs
KCZhLT5yYW5nZSgpLCAmYi0+cmFuZ2UoKSk7CiB9CiAKIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXI6OkhpZ2hsaWdodCogU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6ZmluZFRlbGVwaG9uZU51
bWJlckhpZ2hsaWdodENvbnRhaW5pbmdTZWxlY3Rpb25IaWdobGlnaHQoSGlnaGxpZ2h0JiBzZWxl
Y3Rpb25IaWdobGlnaHQpCkBAIC02NjksNyArNjYzLDcgQEAgU2VydmljZXNPdmVybGF5Q29udHJv
bGxlcjo6SGlnaGxpZ2h0KiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpmaW5kVGVsZXBob25l
TnUKICAgICAgICAgaWYgKGhpZ2hsaWdodC0+dHlwZSgpICE9IEhpZ2hsaWdodDo6VGVsZXBob25l
TnVtYmVyVHlwZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmIChoaWdobGln
aHQtPnJhbmdlKCktPmNvbnRhaW5zKCphY3RpdmVTZWxlY3Rpb25SYW5nZSkpCisgICAgICAgIGlm
IChoaWdobGlnaHQtPnJhbmdlKCkuY29udGFpbnMoKmFjdGl2ZVNlbGVjdGlvblJhbmdlKSkKICAg
ICAgICAgICAgIHJldHVybiBoaWdobGlnaHQuZ2V0KCk7CiAgICAgfQogCkBAIC04MzIsNyArODI2
LDcgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpoYW5kbGVDbGljayhjb25zdCBJ
bnRQb2ludCYgY2xpY2tQb2ludCwgSGlnaGxpZ2gKIAogICAgICAgICBwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS5oYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2socGFnZS0+Zm9jdXNDb250cm9sbGVy
KCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkuc2VsZWN0aW9uKCksIHNlbGVjdGVkVGVsZXBob25lTnVt
YmVycywgd2luZG93UG9pbnQpOwogICAgIH0gZWxzZSBpZiAoaGlnaGxpZ2h0LnR5cGUoKSA9PSBI
aWdobGlnaHQ6OlRlbGVwaG9uZU51bWJlclR5cGUpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgpLmNs
aWVudCgpLmhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGhpZ2hsaWdodC5yYW5nZSgpLT50ZXh0
KCksIHdpbmRvd1BvaW50KTsKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFuZGxl
VGVsZXBob25lTnVtYmVyQ2xpY2soaGlnaGxpZ2h0LnJhbmdlKCkudGV4dCgpLCB3aW5kb3dQb2lu
dCk7CiB9CiAKIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6ZGlkQ3JlYXRlSGlnaGxp
Z2h0KEhpZ2hsaWdodCogaGlnaGxpZ2h0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1Rl
eHRJbmRpY2F0b3JXaW5kb3cubW0KaW5kZXggZTRlMjBkMjI3NjhjODgyZTkwMGIxMmI0MWZlMDJl
Y2RmYjQ4ZjYyOC4uZTU5MjliYTYzZGU1OWY0OTgzYmQ4Y2Y5YzMwMDY0ZTY3MTc3M2NiYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCkBAIC02
NCw3ICs2NCw3IEBAIEBpbnRlcmZhY2UgV2ViVGV4dEluZGljYXRvclZpZXcgOiBOU1ZpZXcgewog
ICAgIEJPT0wgX2ZhZGluZ091dDsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6
KE5TUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihQYXNzUmVmUHRyPFRleHRJbmRpY2F0b3I+KXRl
eHRJbmRpY2F0b3IgbWFyZ2luOihOU1NpemUpbWFyZ2luIG9mZnNldDooTlNQb2ludClvZmZzZXQ7
CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIHRleHRJbmRpY2F0
b3I6KFRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3IgbWFyZ2luOihOU1NpemUpbWFyZ2luIG9m
ZnNldDooTlNQb2ludClvZmZzZXQ7CiAKIC0gKHZvaWQpcHJlc2VudDsKIC0gKHZvaWQpaGlkZVdp
dGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKQEAg
LTE0NywxMiArMTQ3LDEyIEBAIHN0YXRpYyBib29sIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0
aW9uKGNvbnN0IFRleHRJbmRpY2F0b3ImIGluZGljYXRvcikKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgdGV4dEluZGlj
YXRvcjooUGFzc1JlZlB0cjxUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yIG1hcmdpbjooTlNT
aXplKW1hcmdpbiBvZmZzZXQ6KE5TUG9pbnQpb2Zmc2V0CistIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhGcmFtZTooTlNSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFRleHRJbmRpY2F0b3ImKXRleHRJ
bmRpY2F0b3IgbWFyZ2luOihOU1NpemUpbWFyZ2luIG9mZnNldDooTlNQb2ludClvZmZzZXQKIHsK
ICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdKSkKICAgICAgICAg
cmV0dXJuIG5pbDsKIAotICAgIF90ZXh0SW5kaWNhdG9yID0gdGV4dEluZGljYXRvcjsKKyAgICBf
dGV4dEluZGljYXRvciA9ICZ0ZXh0SW5kaWNhdG9yOwogICAgIF9tYXJnaW4gPSBtYXJnaW47CiAK
ICAgICBzZWxmLndhbnRzTGF5ZXIgPSBZRVM7CkBAIC00NjUsNyArNDY1LDggQEAgdm9pZCBUZXh0
SW5kaWNhdG9yV2luZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0
SW5kaWNhdG9yLCBDR1IKICAgICBbbV90ZXh0SW5kaWNhdG9yV2luZG93IHNldE9wYXF1ZTpOT107
CiAgICAgW21fdGV4dEluZGljYXRvcldpbmRvdyBzZXRJZ25vcmVzTW91c2VFdmVudHM6WUVTXTsK
IAotICAgIG1fdGV4dEluZGljYXRvclZpZXcgPSBhZG9wdE5TKFtbV2ViVGV4dEluZGljYXRvclZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCBbbV90ZXh0SW5kaWNhdG9y
V2luZG93IGZyYW1lXS5zaXplLndpZHRoLCBbbV90ZXh0SW5kaWNhdG9yV2luZG93IGZyYW1lXS5z
aXplLmhlaWdodCkgdGV4dEluZGljYXRvcjptX3RleHRJbmRpY2F0b3IgbWFyZ2luOk5TTWFrZVNp
emUoaG9yaXpvbnRhbE1hcmdpbiwgdmVydGljYWxNYXJnaW4pIG9mZnNldDpmcmFjdGlvbmFsVGV4
dE9mZnNldF0pOworICAgIG1fdGV4dEluZGljYXRvclZpZXcgPSBhZG9wdE5TKFtbV2ViVGV4dElu
ZGljYXRvclZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCBbbV90ZXh0
SW5kaWNhdG9yV2luZG93IGZyYW1lXS5zaXplLndpZHRoLCBbbV90ZXh0SW5kaWNhdG9yV2luZG93
IGZyYW1lXS5zaXplLmhlaWdodCkKKyAgICAgICAgdGV4dEluZGljYXRvcjoqbV90ZXh0SW5kaWNh
dG9yIG1hcmdpbjpOU01ha2VTaXplKGhvcml6b250YWxNYXJnaW4sIHZlcnRpY2FsTWFyZ2luKSBv
ZmZzZXQ6ZnJhY3Rpb25hbFRleHRPZmZzZXRdKTsKICAgICBbbV90ZXh0SW5kaWNhdG9yV2luZG93
IHNldENvbnRlbnRWaWV3Om1fdGV4dEluZGljYXRvclZpZXcuZ2V0KCldOwogCiAgICAgW1ttX3Rh
cmdldFZpZXcgd2luZG93XSBhZGRDaGlsZFdpbmRvdzptX3RleHRJbmRpY2F0b3JXaW5kb3cuZ2V0
KCkgb3JkZXJlZDpOU1dpbmRvd0Fib3ZlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCBhNDM0MTdk
Y2UxYzQwMTMwODQ2OTIzODNhMTJhOGNmMWFiOWQyMGIzLi4wMTFhZTBmMjMzYzA5MjZmZWZlMGYw
ZDkwN2M1ZjFhODBmMjcyNzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0zMCw3ICszMCw2IEBA
CiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdU
cmVlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjksMTEg
KzY4LDExIEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBBc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UqKTsKIAotICAgIHZvaWQgc2V0U2Nyb2xsaW5nVHJlZShQ
YXNzUmVmUHRyPFNjcm9sbGluZ1RyZWU+IHNjcm9sbGluZ1RyZWUpIHsgbV9zY3JvbGxpbmdUcmVl
ID0gc2Nyb2xsaW5nVHJlZTsgfQorICAgIHZvaWQgc2V0U2Nyb2xsaW5nVHJlZShSZWY8U2Nyb2xs
aW5nVHJlZT4mJiBzY3JvbGxpbmdUcmVlKSB7IG1fc2Nyb2xsaW5nVHJlZSA9IFdURk1vdmUoc2Ny
b2xsaW5nVHJlZSk7IH0KIAogICAgIFNjcm9sbGluZ1N0YXRlVHJlZSogc2Nyb2xsaW5nU3RhdGVU
cmVlKCkgeyByZXR1cm4gbV9zY3JvbGxpbmdTdGF0ZVRyZWUuZ2V0KCk7IH0KIAotICAgIFBhc3NS
ZWZQdHI8U2Nyb2xsaW5nVHJlZT4gcmVsZWFzZVNjcm9sbGluZ1RyZWUoKSB7IHJldHVybiBXVEZN
b3ZlKG1fc2Nyb2xsaW5nVHJlZSk7IH0KKyAgICBSZWZQdHI8U2Nyb2xsaW5nVHJlZT4gcmVsZWFz
ZVNjcm9sbGluZ1RyZWUoKSB7IHJldHVybiBXVEZNb3ZlKG1fc2Nyb2xsaW5nVHJlZSk7IH0KIAog
ICAgIHZvaWQgdXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05v
ZGVJRCwgY29uc3QgRmxvYXRQb2ludCYsIHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4gbGF5b3V0
Vmlld3BvcnRPcmlnaW4sIGJvb2wgcHJvZ3JhbW1hdGljU2Nyb2xsLCBTY3JvbGxpbmdMYXllclBv
c2l0aW9uQWN0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxMYXRjaGluZ1N0YXRlLmNwcAppbmRleCBlMzlkOTllZmJhMzA2OGNjYjA1NWI0MGQx
YzcyNDM3N2Q1OGUzNWJlLi4wMWU2NTI5YjAyYzhjMWQ3MGFlNzczMjgzZWI3ZjczMDA1NzRmOTg1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGlu
Z1N0YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRj
aGluZ1N0YXRlLmNwcApAQCAtMzEsOSArMzEsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBT
Y3JvbGxMYXRjaGluZ1N0YXRlOjpTY3JvbGxMYXRjaGluZ1N0YXRlKCkKLSAgICA6IG1fZnJhbWUo
bnVsbHB0cikKLSAgICAsIG1fd2lkZ2V0SXNMYXRjaGVkKGZhbHNlKQotICAgICwgbV9zdGFydGVk
R2VzdHVyZUF0U2Nyb2xsTGltaXQoZmFsc2UpCiB7CiB9CiAgICAgCkBAIC01MCw3ICs0Nyw3IEBA
IHZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6Y2xlYXIoKQogICAgIG1fcHJldmlvdXNXaGVlbFNj
cm9sbGVkRWxlbWVudCA9IG51bGxwdHI7CiB9CiAKLXZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6
c2V0V2hlZWxFdmVudEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50KQordm9pZCBT
Y3JvbGxMYXRjaGluZ1N0YXRlOjpzZXRXaGVlbEV2ZW50RWxlbWVudChFbGVtZW50KiBlbGVtZW50
KQogewogICAgIG1fd2hlZWxFdmVudEVsZW1lbnQgPSBlbGVtZW50OwogfQpAQCAtNjAsMTQgKzU3
LDE0IEBAIHZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0V2lkZ2V0SXNMYXRjaGVkKGJvb2wg
aXNPdmVyV2lkZ2V0KQogICAgIG1fd2lkZ2V0SXNMYXRjaGVkID0gaXNPdmVyV2lkZ2V0OwogfQog
Ci12b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1l
bnQoUmVmUHRyPEVsZW1lbnQ+JiYgZWxlbWVudCkKK3ZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6
c2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQogewogICAg
IG1fcHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudCA9IGVsZW1lbnQ7CiB9CiAKLXZvaWQgU2Ny
b2xsTGF0Y2hpbmdTdGF0ZTo6c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihQYXNzUmVmUHRyPENvbnRh
aW5lck5vZGU+IG5vZGUpCit2b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFNjcm9sbGFibGVD
b250YWluZXIoQ29udGFpbmVyTm9kZSogY29udGFpbmVyKQogewotICAgIG1fc2Nyb2xsYWJsZUNv
bnRhaW5lciA9IG5vZGU7CisgICAgbV9zY3JvbGxhYmxlQ29udGFpbmVyID0gY29udGFpbmVyOwog
fQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxM
YXRjaGluZ1N0YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRj
aGluZ1N0YXRlLmgKaW5kZXggNGRjMGRkMzIyOTNiMzkwZWM5YjY3MWNmZTNiMTk4NTdjOTczYzQ3
OC4uMTFkY2JkMGRiMTU1ZTA0NTAwMDU2MjFhMDUxNzQ3NmQyYjkyOTNhMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuaApAQCAt
NDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhcigpOwogCiAgICAgRWxlbWVudCog
d2hlZWxFdmVudEVsZW1lbnQoKSB7IHJldHVybiBtX3doZWVsRXZlbnRFbGVtZW50LmdldCgpOyB9
Ci0gICAgdm9pZCBzZXRXaGVlbEV2ZW50RWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKKyAg
ICB2b2lkIHNldFdoZWVsRXZlbnRFbGVtZW50KEVsZW1lbnQqKTsKICAgICBGcmFtZSogZnJhbWUo
KSB7IHJldHVybiBtX2ZyYW1lOyB9CiAgICAgdm9pZCBzZXRGcmFtZShGcmFtZSogZnJhbWUpIHsg
bV9mcmFtZSA9IGZyYW1lOyB9CiAKQEAgLTQ5LDEwICs0OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBzZXRXaWRnZXRJc0xhdGNoZWQoYm9vbCBpc092ZXJXaWRnZXQpOwogCiAgICAgRWxlbWVudCog
cHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudCgpIHsgcmV0dXJuIG1fcHJldmlvdXNXaGVlbFNj
cm9sbGVkRWxlbWVudC5nZXQoKTsgfQotICAgIHZvaWQgc2V0UHJldmlvdXNXaGVlbFNjcm9sbGVk
RWxlbWVudChSZWZQdHI8RWxlbWVudD4mJik7CisgICAgdm9pZCBzZXRQcmV2aW91c1doZWVsU2Ny
b2xsZWRFbGVtZW50KEVsZW1lbnQqKTsKICAgICAKICAgICBDb250YWluZXJOb2RlKiBzY3JvbGxh
YmxlQ29udGFpbmVyKCkgeyByZXR1cm4gbV9zY3JvbGxhYmxlQ29udGFpbmVyLmdldCgpOyB9Ci0g
ICAgdm9pZCBzZXRTY3JvbGxhYmxlQ29udGFpbmVyKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4p
OworICAgIHZvaWQgc2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihDb250YWluZXJOb2RlKik7CiAgICAg
Ym9vbCBzdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0
ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdDsgfQogICAgIHZvaWQgc2V0U3RhcnRlZEdlc3R1cmVBdFNj
cm9sbExpbWl0KGJvb2wgc3RhcnRlZEF0TGltaXQpIHsgbV9zdGFydGVkR2VzdHVyZUF0U2Nyb2xs
TGltaXQgPSBzdGFydGVkQXRMaW1pdDsgfQogCkBAIC02MSwxMCArNjEsMTAgQEAgcHJpdmF0ZToK
ICAgICBSZWZQdHI8RWxlbWVudD4gbV9wcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50OwogICAg
IFJlZlB0cjxDb250YWluZXJOb2RlPiBtX3Njcm9sbGFibGVDb250YWluZXI7CiAKLSAgICBGcmFt
ZSogbV9mcmFtZTsKLSAgICAKLSAgICBib29sIG1fd2lkZ2V0SXNMYXRjaGVkOwotICAgIGJvb2wg
bV9zdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQ7CisgICAgRnJhbWUqIG1fZnJhbWUgeyBudWxs
cHRyIH07CisKKyAgICBib29sIG1fd2lkZ2V0SXNMYXRjaGVkIHsgZmFsc2UgfTsKKyAgICBib29s
IG1fc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0IHsgZmFsc2UgfTsKIH07CiAgICAgCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcAppbmRleCBjODQ1OWIwNWEwZDE2N2I1YWNlYWQxNDA5
NWU5M2Y2ZWQ3N2YyNGQwLi42MWRhNThhOWRlZWMwZjY4ZDVkYTYyMGUyZDZmZDgwMzE1YTc0YzIw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZU5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0
YXRlTm9kZS5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OnNl
dFByb3BlcnR5Q2hhbmdlZCh1bnNpZ25lZCBwcm9wZXJ0eUJpdCkKICAgICBtX3Njcm9sbGluZ1N0
YXRlVHJlZS5zZXRIYXNDaGFuZ2VkUHJvcGVydGllcygpOwogfQogCi1QYXNzUmVmUHRyPFNjcm9s
bGluZ1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KFNjcm9sbGlu
Z1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVlKQorUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xs
aW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVU
cmVlKQogewogICAgIGF1dG8gY2xvbmUgPSB0aGlzLT5jbG9uZShhZG9wdGl2ZVRyZWUpOwogCkBA
IC04MCw3ICs4MCw4IEBAIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdT
dGF0ZU5vZGU6OmNsb25lQW5kUmVzZXQoU2Nyb2xsaW5nU3RhdGVUCiAgICAgcmVzZXRDaGFuZ2Vk
UHJvcGVydGllcygpOwogCiAgICAgY2xvbmVBbmRSZXNldENoaWxkcmVuKGNsb25lLmdldCgpLCBh
ZG9wdGl2ZVRyZWUpOwotICAgIHJldHVybiBXVEZNb3ZlKGNsb25lKTsKKworICAgIHJldHVybiBj
bG9uZTsKIH0KIAogdm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OmNsb25lQW5kUmVzZXRDaGlsZHJl
bihTY3JvbGxpbmdTdGF0ZU5vZGUmIGNsb25lLCBTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZl
VHJlZSkKQEAgLTkyLDE0ICs5MywxMyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVB
bmRSZXNldENoaWxkcmVuKFNjcm9sbGluZ1N0YXRlTm9kZSYgY2xvbmUsIFNjcm9sbAogICAgICAg
ICBjbG9uZS5hcHBlbmRDaGlsZChjaGlsZC0+Y2xvbmVBbmRSZXNldChhZG9wdGl2ZVRyZWUpKTsK
IH0KIAotdm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8U2Ny
b2xsaW5nU3RhdGVOb2RlPiBjaGlsZE5vZGUpCit2b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6YXBw
ZW5kQ2hpbGQoUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4mJiBjaGlsZE5vZGUpCiB7CiAgICAgY2hp
bGROb2RlLT5zZXRQYXJlbnQodGhpcyk7CiAKICAgICBpZiAoIW1fY2hpbGRyZW4pCiAgICAgICAg
IG1fY2hpbGRyZW4gPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5nU3Rh
dGVOb2RlPj4+KCk7Ci0KLSAgICBtX2NoaWxkcmVuLT5hcHBlbmQoY2hpbGROb2RlKTsKKyAgICBt
X2NoaWxkcmVuLT5hcHBlbmQoV1RGTW92ZShjaGlsZE5vZGUpKTsKIH0KIAogdm9pZCBTY3JvbGxp
bmdTdGF0ZU5vZGU6OnNldExheWVyKGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIGxheWVyUmVw
cmVzZW50YXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdTdGF0ZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlTm9kZS5oCmluZGV4IGJmYWQxYzQ1ZTBkNzFmOWJhN2MyYmMwODIzZjExYmU0Njhk
NjllYzAuLjA4N2Q2MTgyOWFkZTU0NjEwNjEyMDU3NWJkNDFhMTY4MGViYzFkMWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5oCkBA
IC0yMDYsNyArMjA2LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNPdmVyZmxvd1Njcm9sbGluZ05v
ZGUoKSBjb25zdCB7IHJldHVybiBtX25vZGVUeXBlID09IE92ZXJmbG93U2Nyb2xsaW5nTm9kZTsg
fQogCiAgICAgdmlydHVhbCBSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9uZShTY3JvbGxpbmdT
dGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkgPSAwOwotICAgIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3Rh
dGVOb2RlPiBjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVlKTsK
KyAgICBSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRl
VHJlZSYgYWRvcHRpdmVUcmVlKTsKICAgICB2b2lkIGNsb25lQW5kUmVzZXRDaGlsZHJlbihTY3Jv
bGxpbmdTdGF0ZU5vZGUmLCBTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSk7CiAKICAg
ICBlbnVtIHsKQEAgLTIzOCw3ICsyMzgsNyBAQCBwdWJsaWM6CiAKICAgICBWZWN0b3I8UmVmUHRy
PFNjcm9sbGluZ1N0YXRlTm9kZT4+KiBjaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRy
ZW4uZ2V0KCk7IH0KIAotICAgIHZvaWQgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxTY3JvbGxpbmdT
dGF0ZU5vZGU+KTsKKyAgICB2b2lkIGFwcGVuZENoaWxkKFJlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+
JiYpOwogCiAgICAgU3RyaW5nIHNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dCgpIGNvbnN0OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRy
ZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVl
LmNwcAppbmRleCA5OGI2Y2FkY2I0YzM1MWNkMmQ3NjY2NDY1NzNlMzg1YTczMmZjMTQyLi4wYmJj
MWI3MzM4MjcxOWI2MjU4ZDExZDA0OTQzM2UzMjk4N2EzZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKQEAgLTY3LDcg
KzY3LDcgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZVRyZWU6OnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVz
KGJvb2wgY2hhbmdlZFByb3BlcnRpZXMpCiAjZW5kaWYKIH0KIAotUGFzc1JlZlB0cjxTY3JvbGxp
bmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlTm9kZShTY3JvbGxpbmdOb2Rl
VHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxTY3JvbGxpbmdTdGF0
ZU5vZGU+IFNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBu
b2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKIHsKICAgICBzd2l0Y2ggKG5vZGVUeXBl
KSB7CiAgICAgY2FzZSBGaXhlZE5vZGU6CkBAIC04MCw3ICs4MCw3IEBAIFBhc3NSZWZQdHI8U2Ny
b2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZVRyZWU6OmNyZWF0ZU5vZGUoU2Nyb2xsaW5n
Tm9kZVR5cGUKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgIHJldHVybiBudWxscHRyOworICAgIHJldHVybiBTY3JvbGxpbmdTdGF0ZUZpeGVk
Tm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogfQogCiBib29sIFNjcm9sbGluZ1N0YXRlVHJl
ZTo6bm9kZVR5cGVBbmRQYXJlbnRNYXRjaChTY3JvbGxpbmdTdGF0ZU5vZGUmIG5vZGUsIFNjcm9s
bGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgcGFyZW50SUQpIGNvbnN0CkBA
IC0xMjksMTMgKzEyOSwxMyBAQCBTY3JvbGxpbmdOb2RlSUQgU2Nyb2xsaW5nU3RhdGVUcmVlOjph
dHRhY2hOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbAogICAgICAgICBpZiAo
bm9kZVR5cGUgPT0gRnJhbWVTY3JvbGxpbmdOb2RlICYmIHBhcmVudElEKSB7CiAgICAgICAgICAg
ICBpZiAoYXV0byBvcnBoYW5lZE5vZGUgPSBtX29ycGhhbmVkU3ViZnJhbWVOb2Rlcy50YWtlKG5l
d05vZGVJRCkpIHsKICAgICAgICAgICAgICAgICBuZXdOb2RlID0gb3JwaGFuZWROb2RlLmdldCgp
OwotICAgICAgICAgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoV1RGTW92ZShvcnBoYW5lZE5v
ZGUpKTsKKyAgICAgICAgICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKG9ycGhhbmVkTm9kZS5y
ZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGlm
ICghbmV3Tm9kZSkgewogICAgICAgICAgICAgYXV0byBzdGF0ZU5vZGUgPSBjcmVhdGVOb2RlKG5v
ZGVUeXBlLCBuZXdOb2RlSUQpOwotICAgICAgICAgICAgbmV3Tm9kZSA9IHN0YXRlTm9kZS5nZXQo
KTsKKyAgICAgICAgICAgIG5ld05vZGUgPSBzdGF0ZU5vZGUucHRyKCk7CiAgICAgICAgICAgICBw
YXJlbnQtPmFwcGVuZENoaWxkKFdURk1vdmUoc3RhdGVOb2RlKSk7CiAgICAgICAgIH0KICAgICB9
CkBAIC0xODIsNyArMTgyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4g
U2Nyb2xsaW5nU3RhdGVUcmVlOjpjb21taXQoTGF5ZXJSZXByZXNlbnRhdGkKICAgICB0cmVlU3Rh
dGVDbG9uZS0+c2V0UHJlZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbihwcmVmZXJyZWRMYXllclJl
cHJlc2VudGF0aW9uKTsKIAogICAgIGlmIChtX3Jvb3RTdGF0ZU5vZGUpCi0gICAgICAgIHRyZWVT
dGF0ZUNsb25lLT5zZXRSb290U3RhdGVOb2RlKHN0YXRpY19wb2ludGVyX2Nhc3Q8U2Nyb2xsaW5n
U3RhdGVGcmFtZVNjcm9sbGluZ05vZGU+KG1fcm9vdFN0YXRlTm9kZS0+Y2xvbmVBbmRSZXNldCgq
dHJlZVN0YXRlQ2xvbmUpKSk7CisgICAgICAgIHRyZWVTdGF0ZUNsb25lLT5zZXRSb290U3RhdGVO
b2RlKHN0YXRpY19yZWZlcmVuY2VfY2FzdDxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9k
ZT4obV9yb290U3RhdGVOb2RlLT5jbG9uZUFuZFJlc2V0KCp0cmVlU3RhdGVDbG9uZSkpKTsKIAog
ICAgIC8vIENvcHkgdGhlIElEcyBvZiB0aGUgbm9kZXMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZCBz
aW5jZSB0aGUgbGFzdCBjb21taXQgaW50byB0aGUgY2xvbmUuCiAgICAgdHJlZVN0YXRlQ2xvbmUt
Pm1fbm9kZXNSZW1vdmVkU2luY2VMYXN0Q29tbWl0LnN3YXAobV9ub2Rlc1JlbW92ZWRTaW5jZUxh
c3RDb21taXQpOwpAQCAtMjExLDcgKzIxMSw4IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVUcmVlOjpy
ZW1vdmVOb2RlQW5kQWxsRGVzY2VuZGFudHMoU2Nyb2xsaW5nU3RhdGVOb2RlKiBub2RlLCBTCiAg
ICAgaWYgKG5vZGUgPT0gbV9yb290U3RhdGVOb2RlKQogICAgICAgICBtX3Jvb3RTdGF0ZU5vZGUg
PSBudWxscHRyOwogICAgIGVsc2UgaWYgKHBhcmVudCkgewotICAgICAgICBBU1NFUlQocGFyZW50
LT5jaGlsZHJlbigpICYmIHBhcmVudC0+Y2hpbGRyZW4oKS0+ZmluZChub2RlKSAhPSBub3RGb3Vu
ZCk7CisgICAgICAgIEFTU0VSVChwYXJlbnQtPmNoaWxkcmVuKCkpOworICAgICAgICBBU1NFUlQo
cGFyZW50LT5jaGlsZHJlbigpLT5maW5kKG5vZGUpICE9IG5vdEZvdW5kKTsKICAgICAgICAgaWYg
KGF1dG8gY2hpbGRyZW4gPSBwYXJlbnQtPmNoaWxkcmVuKCkpIHsKICAgICAgICAgICAgIHNpemVf
dCBpbmRleCA9IGNoaWxkcmVuLT5maW5kKG5vZGUpOwogICAgICAgICAgICAgaWYgKGluZGV4ICE9
IG5vdEZvdW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nU3RhdGVUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZVRyZWUuaAppbmRleCAzMWY2ZGI3OWU3YjQwYzFiMzJmMmVhN2NkY2ZmYzQ4ZjE3YmZj
ZTMxLi4zYjI1NjE1MWFkNzQ0YmNmMDIzNGQ3MmQ0ZmQzYTBjNzVkNDM2OTExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuaApAQCAt
NzQsMTcgKzc0LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByZWZlcnJlZExheWVyUmVwcmVz
ZW50YXRpb24oTGF5ZXJSZXByZXNlbnRhdGlvbjo6VHlwZSByZXByZXNlbnRhdGlvbikgeyBtX3By
ZWZlcnJlZExheWVyUmVwcmVzZW50YXRpb24gPSByZXByZXNlbnRhdGlvbjsgfQogCiBwcml2YXRl
OgotICAgIHZvaWQgc2V0Um9vdFN0YXRlTm9kZShQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlRnJh
bWVTY3JvbGxpbmdOb2RlPiByb290U3RhdGVOb2RlKSB7IG1fcm9vdFN0YXRlTm9kZSA9IHJvb3RT
dGF0ZU5vZGU7IH0KKyAgICB2b2lkIHNldFJvb3RTdGF0ZU5vZGUoUmVmPFNjcm9sbGluZ1N0YXRl
RnJhbWVTY3JvbGxpbmdOb2RlPiYmIHJvb3RTdGF0ZU5vZGUpIHsgbV9yb290U3RhdGVOb2RlID0g
V1RGTW92ZShyb290U3RhdGVOb2RlKTsgfQogICAgIHZvaWQgYWRkTm9kZShTY3JvbGxpbmdTdGF0
ZU5vZGUqKTsKIAotICAgIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjcmVhdGVOb2Rl
KFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOworICAgIFJlZjxTY3JvbGxpbmdT
dGF0ZU5vZGU+IGNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7
CiAKICAgICBib29sIG5vZGVUeXBlQW5kUGFyZW50TWF0Y2goU2Nyb2xsaW5nU3RhdGVOb2RlJiwg
U2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBwYXJlbnRJRCkgY29uc3Q7CiAKLSAg
ICBlbnVtIGNsYXNzIFN1YmZyYW1lTm9kZVJlbW92YWwgewotICAgICAgICBEZWxldGUsCi0gICAg
ICAgIE9ycGhhbgotICAgIH07CisgICAgZW51bSBjbGFzcyBTdWJmcmFtZU5vZGVSZW1vdmFsIHsg
RGVsZXRlLCBPcnBoYW4gfTsKICAgICB2b2lkIHJlbW92ZU5vZGVBbmRBbGxEZXNjZW5kYW50cyhT
Y3JvbGxpbmdTdGF0ZU5vZGUqLCBTdWJmcmFtZU5vZGVSZW1vdmFsID0gU3ViZnJhbWVOb2RlUmVt
b3ZhbDo6RGVsZXRlKTsKIAogICAgIHZvaWQgcmVjdXJzaXZlTm9kZVdpbGxCZVJlbW92ZWQoU2Ny
b2xsaW5nU3RhdGVOb2RlKiBjdXJyTm9kZSwgU3ViZnJhbWVOb2RlUmVtb3ZhbCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmluZGV4IGQwMGVj
NWRkOWIxYjdkNGE2ZDYxYmY1ZDEzOWI0OTkyZTYzN2Q4ZWYuLjQwYmNjNjNmZjhjMzM3YWZiYzEw
YmQ0Yjk5ZWIxYzAwM2Y0NzUwYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC0xNzksNyArMTc5LDcgQEAgdm9pZCBTY3JvbGxpbmdU
cmVlOjp1cGRhdGVUcmVlRnJvbVN0YXRlTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUqIHN0
YXRlTm9kZSwKICAgICAgICAgaWYgKHBhcmVudEl0ICE9IG1fbm9kZU1hcC5lbmQoKSkgewogICAg
ICAgICAgICAgU2Nyb2xsaW5nVHJlZU5vZGUqIHBhcmVudCA9IHBhcmVudEl0LT52YWx1ZTsKICAg
ICAgICAgICAgIG5vZGUtPnNldFBhcmVudChwYXJlbnQpOwotICAgICAgICAgICAgcGFyZW50LT5h
cHBlbmRDaGlsZChub2RlKTsKKyAgICAgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoKm5vZGUp
OwogICAgICAgICB9CiAgICAgfQogCkBAIC0xODksNyArMTg5LDcgQEAgdm9pZCBTY3JvbGxpbmdU
cmVlOjp1cGRhdGVUcmVlRnJvbVN0YXRlTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUqIHN0
YXRlTm9kZSwKICAgICBpZiAoYXV0byBub2RlQ2hpbGRyZW4gPSBub2RlLT5jaGlsZHJlbigpKSB7
CiAgICAgICAgIGZvciAoYXV0byYgY2hpbGRTY3JvbGxpbmdOb2RlIDogKm5vZGVDaGlsZHJlbikg
ewogICAgICAgICAgICAgY2hpbGRTY3JvbGxpbmdOb2RlLT5zZXRQYXJlbnQobnVsbHB0cik7Ci0g
ICAgICAgICAgICBvcnBoYW5Ob2Rlcy5hZGQoY2hpbGRTY3JvbGxpbmdOb2RlLT5zY3JvbGxpbmdO
b2RlSUQoKSwgY2hpbGRTY3JvbGxpbmdOb2RlKTsKKyAgICAgICAgICAgIG9ycGhhbk5vZGVzLmFk
ZChjaGlsZFNjcm9sbGluZ05vZGUtPnNjcm9sbGluZ05vZGVJRCgpLCBjaGlsZFNjcm9sbGluZ05v
ZGUuZ2V0KCkpOwogICAgICAgICB9CiAgICAgICAgIG5vZGVDaGlsZHJlbi0+Y2xlYXIoKTsKICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5k
ZXggNjczNGI1M2FkYWI1YzM5OWI5MzNhYzM3N2VkZTc0YjhjMmEwNWE0ZC4uYWFmMmQ0NzhiYmI4
MDA5NWY1NTk2YzkxNDYwNmUyYjliNWQ4ZjhjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAKICAg
ICB2b2lkIHNldE1haW5GcmFtZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBib29sIHBp
bm5lZFRvVGhlUmlnaHQsIGJvb2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVkVG9UaGVCb3R0
b20pOwogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVT
Y3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSA9IDA7
CisgICAgdmlydHVhbCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpID0gMDsKIAogICAgIC8vIENh
bGxlZCBhZnRlciBhIHNjcm9sbGluZyB0cmVlIG5vZGUgaGFzIGhhbmRsZWQgYSBzY3JvbGwgYW5k
IHVwZGF0ZWQgaXRzIGxheWVycy4KICAgICAvLyBVcGRhdGVzIEZyYW1lVmlldy9SZW5kZXJMYXll
ciBzY3JvbGxpbmcgc3RhdGUgYW5kIEdyYXBoaWNzTGF5ZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwCmluZGV4IGRlYjc4MWEx
YzFmOWZkZDAzM2M5OTk1Yzk5MjFjMDcyOTkyNjlhMmEuLjBmNjYxNmQwZjNkYzM1Nzg2MzA2ZmQ0
NjZmN2E2OTY0MTViMmVlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1RyZWVOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHAKQEAgLTQ1LDIyICs0NSwyMSBAQCBTY3JvbGxpbmdU
cmVlTm9kZTo6flNjcm9sbGluZ1RyZWVOb2RlKCkKIHsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVl
Tm9kZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gY2hpbGROb2Rl
KQordm9pZCBTY3JvbGxpbmdUcmVlTm9kZTo6YXBwZW5kQ2hpbGQoUmVmPFNjcm9sbGluZ1RyZWVO
b2RlPiYmIGNoaWxkTm9kZSkKIHsKICAgICBjaGlsZE5vZGUtPnNldFBhcmVudCh0aGlzKTsKIAog
ICAgIGlmICghbV9jaGlsZHJlbikKLSAgICAgICAgbV9jaGlsZHJlbiA9IHN0ZDo6bWFrZV91bmlx
dWU8U2Nyb2xsaW5nVHJlZUNoaWxkcmVuVmVjdG9yPigpOwotCi0gICAgbV9jaGlsZHJlbi0+YXBw
ZW5kKGNoaWxkTm9kZSk7CisgICAgICAgIG1fY2hpbGRyZW4gPSBzdGQ6Om1ha2VfdW5pcXVlPFZl
Y3RvcjxSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+Pj4oKTsKKyAgICBtX2NoaWxkcmVuLT5hcHBl
bmQoV1RGTW92ZShjaGlsZE5vZGUpKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlTm9kZTo6cmVt
b3ZlQ2hpbGQoU2Nyb2xsaW5nVHJlZU5vZGUqIG5vZGUpCit2b2lkIFNjcm9sbGluZ1RyZWVOb2Rl
OjpyZW1vdmVDaGlsZChTY3JvbGxpbmdUcmVlTm9kZSYgbm9kZSkKIHsKICAgICBpZiAoIW1fY2hp
bGRyZW4pCiAgICAgICAgIHJldHVybjsKIAotICAgIHNpemVfdCBpbmRleCA9IG1fY2hpbGRyZW4t
PmZpbmQobm9kZSk7CisgICAgc2l6ZV90IGluZGV4ID0gbV9jaGlsZHJlbi0+ZmluZCgmbm9kZSk7
CiAKICAgICAvLyBUaGUgaW5kZXggd2lsbCBiZSBub3RGb3VuZCBpZiB0aGUgbm9kZSB0byByZW1v
dmUgaXMgYSBkZWVwZXItdGhhbi0xLWxldmVsIGRlc2NlbmRhbnQgb3IKICAgICAvLyBpZiBub2Rl
IGlzIHRoZSByb290IHN0YXRlIG5vZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaAppbmRleCAzZTg2ZTNkNDc4ZDM0MDY5MzU5ZWFhNWM2
YjljZmJhYzY3NWNlZDA1Li4yZTE2MzI0NmJiOTZlMzNmZWY2MmFkYTcxYjQxYTIxMzkyMTI3OTMy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVO
b2RlLmgKQEAgLTYwLDExICs2MCwxMCBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsaW5nVHJlZU5vZGUq
IHBhcmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9CiAgICAgdm9pZCBzZXRQYXJlbnQo
U2Nyb2xsaW5nVHJlZU5vZGUqIHBhcmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsgfQogCi0gICAg
dHlwZWRlZiBWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPj4gU2Nyb2xsaW5nVHJlZUNo
aWxkcmVuVmVjdG9yOwotICAgIFNjcm9sbGluZ1RyZWVDaGlsZHJlblZlY3RvciogY2hpbGRyZW4o
KSB7IHJldHVybiBtX2NoaWxkcmVuLmdldCgpOyB9Ci0gICAgCi0gICAgdm9pZCBhcHBlbmRDaGls
ZChQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPik7Ci0gICAgdm9pZCByZW1vdmVDaGlsZChT
Y3JvbGxpbmdUcmVlTm9kZSopOworICAgIFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+
PiogY2hpbGRyZW4oKSB7IHJldHVybiBtX2NoaWxkcmVuLmdldCgpOyB9CisKKyAgICB2b2lkIGFw
cGVuZENoaWxkKFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4mJik7CisgICAgdm9pZCByZW1vdmVDaGls
ZChTY3JvbGxpbmdUcmVlTm9kZSYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkdW1wKFRl
eHRTdHJlYW0mLCBTY3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7CiAKQEAg
LTcyLDcgKzcxLDcgQEAgcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGlu
Z1RyZWUmLCBTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKICAgICBTY3JvbGxp
bmdUcmVlJiBzY3JvbGxpbmdUcmVlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxpbmdUcmVlOyB9
CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nVHJlZUNoaWxkcmVuVmVjdG9yPiBtX2No
aWxkcmVuOworICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1RyZWVO
b2RlPj4+IG1fY2hpbGRyZW47CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZHVt
cFByb3BlcnRpZXMoVGV4dFN0cmVhbSYsIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9y
KSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhy
ZWFkZWRTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Ro
cmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggYmNiNDhlNDk1YzFiMGI4OWU3NWE3YWEzM2U4
NWU1OTRkN2M1ZTY4NS4uZjY2NGVkM2FjM2JlNTM4ZGZmMmZlNTg4MDJhMDk3N2FhMGFhMDg5MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxp
bmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNj
cm9sbGluZ1RyZWUuY3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWUoQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCi0gICAgOiBtX3Njcm9sbGlu
Z0Nvb3JkaW5hdG9yKHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorVGhyZWFkZWRTY3JvbGxpbmdUcmVl
OjpUaHJlYWRlZFNjcm9sbGluZ1RyZWUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYgc2Nyb2xs
aW5nQ29vcmRpbmF0b3IpCisgICAgOiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKCZzY3JvbGxpbmdD
b29yZGluYXRvcikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAppbmRleCA3MzI1NDA1OWMyZDc3MDIwNWNlZmRi
ZDE1MzBhYjI3OTA0YWE3MzYzLi42ZDFkNDlkNjdlY2E1ZmE4ZDUyYTg1OGVlY2Y1ZjkzZWU5Yzk3
MGRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNj
cm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRl
ZFNjcm9sbGluZ1RyZWUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTQtMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgaW52
YWxpZGF0ZSgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgVGhyZWFkZWRT
Y3JvbGxpbmdUcmVlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqKTsKKyAgICBleHBsaWNpdCBU
aHJlYWRlZFNjcm9sbGluZ1RyZWUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOwogCiAgICAg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+
JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNj
cm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpIG92ZXJyaWRlOwogICAgIHZvaWQgY3Vy
cmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBo
b3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JJT1MubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JJ
T1MubW0KaW5kZXggNGNjZjQ0NDI5Zjk5ZTEwOWY4NzU1Yjk0NjAxMjZiYmNhN2U1YjllYS4uNmIx
Njg1NzNiNTYwMzBiM2FmM2Q5NDAyYTQ0YzcwZTg5ODJlOWIzMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ0Nvb3JkaW5hdG9ySU9TLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdDb29yZGluYXRv
cklPUy5tbQpAQCAtNTIsNyArNTIsNyBAQCBTY3JvbGxpbmdDb29yZGluYXRvcklPUzo6U2Nyb2xs
aW5nQ29vcmRpbmF0b3JJT1MoUGFnZSogcGFnZSkKICAgICA6IEFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3IocGFnZSkKICAgICAsIG1fc2Nyb2xsaW5nU3RhdGVUcmVlQ29tbWl0dGVyVGltZXIoKnRo
aXMsICZTY3JvbGxpbmdDb29yZGluYXRvcklPUzo6Y29tbWl0VHJlZVN0YXRlKQogewotICAgIHNl
dFNjcm9sbGluZ1RyZWUoU2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRlKHRoaXMpKTsKKyAgICBzZXRT
Y3JvbGxpbmdUcmVlKFNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZSgqdGhpcykpOwogfQogCiBTY3Jv
bGxpbmdDb29yZGluYXRvcklPUzo6flNjcm9sbGluZ0Nvb3JkaW5hdG9ySU9TKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNw
cAppbmRleCAxMGIzZjg3MzQ1ZmRhNDNjY2RmZTljMTVmZTQxN2Y0NmFmNTU0NWVhLi4xZjAzZTY4
NmU5Zjg3NThlYzY1YTliNmY5YjYxN2ViMmY4NjhjNjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuY3BwCkBAIC00MCwx
MyArNDAsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8U2Nyb2xsaW5nVHJlZUlP
Uz4gU2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNj
cm9sbGluZ0Nvb3JkaW5hdG9yKQorUmVmPFNjcm9sbGluZ1RyZWVJT1M+IFNjcm9sbGluZ1RyZWVJ
T1M6OmNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRv
cikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTY3JvbGxpbmdUcmVlSU9TKHNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKSk7CiB9CiAKLVNjcm9sbGluZ1RyZWVJT1M6OlNjcm9sbGluZ1RyZWVJT1Mo
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCi0gICAgOiBt
X3Njcm9sbGluZ0Nvb3JkaW5hdG9yKHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorU2Nyb2xsaW5nVHJl
ZUlPUzo6U2Nyb2xsaW5nVHJlZUlPUyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxp
bmdDb29yZGluYXRvcikKKyAgICA6IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IoJnNjcm9sbGluZ0Nv
b3JkaW5hdG9yKQogewogfQogCkBAIC04MywyMCArODMsMjEgQEAgdm9pZCBTY3JvbGxpbmdUcmVl
SU9TOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBj
b25zdAogICAgIH0pOwogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBTY3JvbGxp
bmdUcmVlSU9TOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2Rl
VHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxTY3JvbGxpbmdUcmVlTm9kZT4gU2Ny
b2xsaW5nVHJlZUlPUzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUg
bm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7CiAgICAgc3dpdGNoIChub2RlVHlw
ZSkgewogICAgIGNhc2UgRnJhbWVTY3JvbGxpbmdOb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZUlPUzo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAg
IGNhc2UgT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRml4
ZWROb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0
aGlzLCBub2RlSUQpOwogICAgIGNhc2UgU3RpY2t5Tm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9s
bGluZ1RyZWVTdGlja3lOb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgfQotICAgIHJl
dHVybiBudWxscHRyOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTY3Jv
bGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKIEZsb2F0UmVj
dCBTY3JvbGxpbmdUcmVlSU9TOjpmaXhlZFBvc2l0aW9uUmVjdCgpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaAppbmRleCAxYTlh
YWUxYjQwYzgxMjY4MzQ0ODQxY2U3YjMwNzVlZjcwYTdlNTU0Li5hZWE2OWIzOWY1OWM5NjE1ZDE4
MGFhZWE2ZWI4OTcyNTljZGFkOTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmgKQEAgLTI5LDM1ICsyOSwzMSBAQAogCiAj
aW5jbHVkZSAiU2Nyb2xsaW5nU3RhdGVUcmVlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZS5o
IgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I7
CiAKLWNsYXNzIFNjcm9sbGluZ1RyZWVJT1MgOiBwdWJsaWMgU2Nyb2xsaW5nVHJlZSB7CitjbGFz
cyBTY3JvbGxpbmdUcmVlSU9TIGZpbmFsIDogcHVibGljIFNjcm9sbGluZ1RyZWUgewogcHVibGlj
OgotICAgIHN0YXRpYyBSZWY8U2Nyb2xsaW5nVHJlZUlPUz4gY3JlYXRlKEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IqKTsKKyAgICBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVJT1M+IGNyZWF0ZShB
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJik7CiAgICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZUlP
UygpOwogCi0gICAgLy8gTm8gd2hlZWwgZXZlbnRzIG9uIGlPUwotICAgIHZvaWQgaGFuZGxlV2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZSB7IH0KLSAgICBFdmVu
dFJlc3VsdCB0cnlUb0hhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikg
b3ZlcnJpZGUgeyByZXR1cm4gRGlkTm90SGFuZGxlRXZlbnQ7IH0KLQotICAgIHZvaWQgaW52YWxp
ZGF0ZSgpIG92ZXJyaWRlOwotCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVJ
T1MoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciopOwotICAgIGJvb2wgaXNTY3JvbGxpbmdUcmVl
SU9TKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGV4cGxpY2l0IFNjcm9s
bGluZ1RyZWVJT1MoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOwogCi0gICAgUGFzc1JlZlB0
cjxTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9k
ZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1Njcm9sbGluZ1Ry
ZWVJT1MoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2b2lkIHNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Ny
b2xsUG9zaXRpb24sIGNvbnN0IHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdw
b3J0T3JpZ2luLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5ZXJQ
b3NpdGlvbkFjdGlvbjo6U3luYykgb3ZlcnJpZGU7CisgICAgLy8gTm8gd2hlZWwgZXZlbnRzIG9u
IGlPUworICAgIHZvaWQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
KSBmaW5hbCB7IH0KKyAgICBFdmVudFJlc3VsdCB0cnlUb0hhbmRsZVdoZWVsRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbEV2ZW50JikgZmluYWwgeyByZXR1cm4gRGlkTm90SGFuZGxlRXZlbnQ7IH0K
IAotICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Ny
b2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBpbnZhbGlkYXRlKCkgZmluYWw7CiAKLSAgICBGbG9hdFJlY3QgZml4
ZWRQb3NpdGlvblJlY3QoKSBvdmVycmlkZTsKKyAgICBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNy
ZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQp
IGZpbmFsOworICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9k
ZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qgc3RkOjpvcHRpb25h
bDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRp
b25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBmaW5hbDsKKyAg
ICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGlu
Z05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGZpbmFsOwor
ICAgIEZsb2F0UmVjdCBmaXhlZFBvc2l0aW9uUmVjdCgpIGZpbmFsOwogCiAgICAgUmVmUHRyPEFz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I+IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yTWFjLm1tCmluZGV4IGQ0M2Q5NGIyNDdhNmU0ZjkzOTc0MTU4MjYxOTdjMmIw
YWRmMDcxNDguLjg2MTE4YjQ0NTAwNzk0NmNmMGZhNzgzYzVkNTQzZTExOWU5ZWJmNjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGlu
YXRvck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWMubW0KQEAgLTU0LDcgKzU0LDcgQEAgU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWM6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjKFBhZ2UqIHBhZ2UpCiAgICAgOiBBc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yKHBhZ2UpCiAgICAgLCBtX3Njcm9sbGluZ1N0YXRlVHJlZUNvbW1p
dHRlclRpbWVyKCp0aGlzLCAmU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmNvbW1pdFRyZWVTdGF0
ZSkKIHsKLSAgICBzZXRTY3JvbGxpbmdUcmVlKFNjcm9sbGluZ1RyZWVNYWM6OmNyZWF0ZSh0aGlz
KSk7CisgICAgc2V0U2Nyb2xsaW5nVHJlZShTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGUoKnRoaXMp
KTsKIH0KIAogU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6On5TY3JvbGxpbmdDb29yZGluYXRvck1h
YygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZU1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZU1hYy5jcHAKaW5kZXggNzBkYmMwNmNmMDEzYmYzMWI4ZGEwN2ZkZTBkMzk4OGM2MWI0
ZDgwYS4uODk5ZjFlOTAxNjdkYjhjOGVhMWZhNmQ4ZWFlZjRjNzA0MTEyMDU0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFj
LmNwcApAQCAtMzQsMzAgKzM0LDMxIEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1S
ZWY8U2Nyb2xsaW5nVHJlZU1hYz4gU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlKEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorUmVmPFNjcm9sbGluZ1RyZWVN
YWM+IFNjcm9sbGluZ1RyZWVNYWM6OmNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBz
Y3JvbGxpbmdDb29yZGluYXRvcikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTY3JvbGxp
bmdUcmVlTWFjKHNjcm9sbGluZ0Nvb3JkaW5hdG9yKSk7CiB9CiAKLVNjcm9sbGluZ1RyZWVNYWM6
OlNjcm9sbGluZ1RyZWVNYWMoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29v
cmRpbmF0b3IpCitTY3JvbGxpbmdUcmVlTWFjOjpTY3JvbGxpbmdUcmVlTWFjKEFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3ImIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQogICAgIDogVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlKHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQogewogfQogCi1QYXNzUmVmUHRyPFNjcm9s
bGluZ1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShT
Y3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxT
Y3JvbGxpbmdUcmVlTm9kZT4gU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5v
ZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7
CiAgICAgc3dpdGNoIChub2RlVHlwZSkgewogICAgIGNhc2UgRnJhbWVTY3JvbGxpbmdOb2RlOgog
ICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6Y3JlYXRl
KCp0aGlzLCBub2RlSUQpOwogICAgIGNhc2UgT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOgogICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgRml4ZWROb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJl
ZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIGNhc2UgU3RpY2t5Tm9kZToK
ICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjpjcmVhdGUoKnRoaXMsIG5v
ZGVJRCk7CiAgICAgfQotICAgIHJldHVybiBudWxscHRyOworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5v
ZGVJRCk7CiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQTEFURk9S
TShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVNYWMuaAppbmRleCA0M2E0NmI3N2U4NWI0NWZmNjFjYjJiOWE2YmJiMzJjMmMwZWZm
YTU3Li40OTlmYzNmZjE3YmNmOTQ5MGE4MzcyMjY0MmY2YmM4M2JlMDBiN2RkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmgK
QEAgLTMxLDE0ICszMSwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNjcm9s
bGluZ1RyZWVNYWMgOiBwdWJsaWMgVGhyZWFkZWRTY3JvbGxpbmdUcmVlIHsKK2NsYXNzIFNjcm9s
bGluZ1RyZWVNYWMgZmluYWwgOiBwdWJsaWMgVGhyZWFkZWRTY3JvbGxpbmdUcmVlIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVNYWM+IGNyZWF0ZShBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yKik7CisgICAgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlTWFjPiBjcmVhdGUo
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOwogCi0gICAgUGFzc1JlZlB0cjxTY3JvbGxpbmdU
cmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9s
bGluZ05vZGVJRCkgb3ZlcnJpZGU7Ci0gICAgCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNjcm9s
bGluZ1RyZWVNYWMoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciopOworICAgIGV4cGxpY2l0IFNj
cm9sbGluZ1RyZWVNYWMoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOworCisgICAgUmVmPFNj
cm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlw
ZSwgU2Nyb2xsaW5nTm9kZUlEKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCmluZGV4IDYxNjA3
MDkwZDI2Yzk5YzFhZTI1M2Y1YTRlYzVkNjZkNTFjM2Q2MTUuLjMyNDMwYzQ3Yjg3ZDFjMDg4NDQ5
YWNiZGNkMGIzNjQ3MTNmMDk0MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2lu
L0V2ZW50SGFuZGxlcldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRI
YW5kbGVyV2luLmNwcApAQCAtODEsNyArODEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lkZ2V0
RGlkSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbgog
ICAgIHJldHVybiBkb3duY2FzdDxGcmFtZVZpZXc+KHdpZGdldCkuZnJhbWUoKS5ldmVudEhhbmRs
ZXIoKS5oYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogfQogCi1ib29sIEV2ZW50SGFuZGxl
cjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdAorYm9vbCBFdmVu
dEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JikgY29uc3QKIHsK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTkyLDEwICs5MiwxMiBAQCBib29sIEV2ZW50SGFuZGxl
cjo6ZXZlbnRBY3RpdmF0ZWRWaWV3KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQpIGNv
bnN0CiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc1JlZlB0cjxEYXRhVHJhbnNm
ZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAorCitS
ZWY8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVy
KCkgY29uc3QKIHsKICAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJv
cCgpOwogfQorCiAjZW5kaWYKIAogdm9pZCBFdmVudEhhbmRsZXI6OmZvY3VzRG9jdW1lbnRWaWV3
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKaW5kZXggNjhkMDY5ZDNhNDM4NDY4OGRmMmRlYzg4
ZTgzNDA0OWY1MzJiMTExZC4uMDQ2ODVhMjVhN2NjYzI4ZTc3M2ZhYTIzNTUyMWQ3YzYxZGQzZTU3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKQEAgLTU0LDI0ICs1NCwyOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBJbWFnZTsKIAogI2lmIFBMQVRGT1JNKFdJTikKKwogY2xhc3Mg
U2hhcmVkQ3Vyc29yIDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkQ3Vyc29yPiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxTaGFyZWRDdXJzb3I+IGNyZWF0ZShIQ1VSU09SIG5hdGl2ZUN1cnNv
cikgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGFyZWRDdXJzb3IobmF0aXZlQ3Vyc29yKSk7IH0K
LSAgICB+U2hhcmVkQ3Vyc29yKCk7CisgICAgc3RhdGljIFJlZjxTaGFyZWRDdXJzb3I+IGNyZWF0
ZShIQ1VSU09SKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB+U2hhcmVkQ3Vyc29yKCk7CiAgICAgSENV
UlNPUiBuYXRpdmVDdXJzb3IoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUN1cnNvcjsgfQorCiBw
cml2YXRlOgotICAgIFNoYXJlZEN1cnNvcihIQ1VSU09SIG5hdGl2ZUN1cnNvcikgOiBtX25hdGl2
ZUN1cnNvcihuYXRpdmVDdXJzb3IpIHsgfQorICAgIFNoYXJlZEN1cnNvcihIQ1VSU09SKTsKICAg
ICBIQ1VSU09SIG1fbmF0aXZlQ3Vyc29yOwogfTsKLXR5cGVkZWYgUmVmUHRyPFNoYXJlZEN1cnNv
cj4gUGxhdGZvcm1DdXJzb3I7CisKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oV0lOKQordXNpbmcg
UGxhdGZvcm1DdXJzb3IgPSBSZWZQdHI8U2hhcmVkQ3Vyc29yPjsKICNlbGlmIFVTRShBUFBLSVQp
Ci10eXBlZGVmIE5TQ3Vyc29yICpQbGF0Zm9ybUN1cnNvcjsKK3VzaW5nIFBsYXRmb3JtQ3Vyc29y
ID0gTlNDdXJzb3IgKjsKICNlbGlmIFBMQVRGT1JNKEdUSykKLXR5cGVkZWYgR1JlZlB0cjxHZGtD
dXJzb3I+IFBsYXRmb3JtQ3Vyc29yOwordXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBHUmVmUHRyPEdk
a0N1cnNvcj47CiAjZWxpZiBQTEFURk9STShFRkwpCi10eXBlZGVmIGNvbnN0IGNoYXIqIFBsYXRm
b3JtQ3Vyc29yOwotI2Vsc2UKLXR5cGVkZWYgdm9pZCogUGxhdGZvcm1DdXJzb3I7Cit1c2luZyBQ
bGF0Zm9ybUN1cnNvciA9IGNvbnN0IGNoYXIqOwogI2VuZGlmCiAKIGNsYXNzIEN1cnNvciB7CkBA
IC0xMjQsNjEgKzEyOCw1MCBAQCBwdWJsaWM6CiAgICAgICAgIEN1c3RvbQogICAgIH07CiAKLSAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgY29uc3QgQ3Vyc29yJiBmcm9tVHlwZShDdXJzb3I6OlR5
cGUpOworICAgIEN1cnNvcigpID0gZGVmYXVsdDsKIAotICAgIEN1cnNvcigpCiAjaWYgIVBMQVRG
T1JNKElPUykKLSAgICAgICAgLy8gVGhpcyBpcyBhbiBpbnZhbGlkIEN1cnNvciBhbmQgc2hvdWxk
IG5ldmVyIGFjdHVhbGx5IGdldCB1c2VkLgotICAgICAgICA6IG1fdHlwZShzdGF0aWNfY2FzdDxU
eXBlPigtMSkpCi0jaWYgRU5BQkxFKE1PVVNFX0NVUlNPUl9TQ0FMRSkKLSAgICAgICAgLCBtX2lt
YWdlU2NhbGVGYWN0b3IoMSkKLSNlbmRpZgotICAgICAgICAsIG1fcGxhdGZvcm1DdXJzb3IoMCkK
LSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQotICAgIHsKLSAgICB9CiAKLSNpZiAhUExBVEZPUk0o
SU9TKQorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBjb25zdCBDdXJzb3ImIGZyb21UeXBlKEN1
cnNvcjo6VHlwZSk7CisKICAgICBXRUJDT1JFX0VYUE9SVCBDdXJzb3IoSW1hZ2UqLCBjb25zdCBJ
bnRQb2ludCYgaG90U3BvdCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ3Vyc29yKGNvbnN0IEN1cnNv
ciYpOwogCiAjaWYgRU5BQkxFKE1PVVNFX0NVUlNPUl9TQ0FMRSkKICAgICAvLyBIb3Qgc3BvdCBp
cyBpbiBpbWFnZSBwaXhlbHMuCiAgICAgV0VCQ09SRV9FWFBPUlQgQ3Vyc29yKEltYWdlKiwgY29u
c3QgSW50UG9pbnQmIGhvdFNwb3QsIGZsb2F0IGltYWdlU2NhbGVGYWN0b3IpOwogI2VuZGlmCiAK
LSAgICBXRUJDT1JFX0VYUE9SVCB+Q3Vyc29yKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ3Vyc29y
JiBvcGVyYXRvcj0oY29uc3QgQ3Vyc29yJik7Ci0KICAgICBleHBsaWNpdCBDdXJzb3IoVHlwZSk7
Ci0gICAgVHlwZSB0eXBlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPj0g
MCAmJiBtX3R5cGUgPD0gQ3VzdG9tKTsKLSAgICAgICAgcmV0dXJuIG1fdHlwZTsKLSAgICB9CisK
KyAgICBUeXBlIHR5cGUoKSBjb25zdDsKICAgICBJbWFnZSogaW1hZ2UoKSBjb25zdCB7IHJldHVy
biBtX2ltYWdlLmdldCgpOyB9CiAgICAgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QoKSBjb25zdCB7
IHJldHVybiBtX2hvdFNwb3Q7IH0KKwogI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCiAg
ICAgLy8gSW1hZ2Ugc2NhbGUgaW4gaW1hZ2UgcGl4ZWxzIHBlciBsb2dpY2FsIChVSSkgcGl4ZWwu
CiAgICAgZmxvYXQgaW1hZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VTY2Fs
ZUZhY3RvcjsgfQogI2VuZGlmCisKICAgICBXRUJDT1JFX0VYUE9SVCBQbGF0Zm9ybUN1cnNvciBw
bGF0Zm9ybUN1cnNvcigpIGNvbnN0OwogCi0gcHJpdmF0ZToKK3ByaXZhdGU6CiAgICAgdm9pZCBl
bnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0OwogCi0gICAgVHlwZSBtX3R5cGU7CisgICAgLy8g
VGhlIHR5cGUgb2YgLTEgaW5kaWNhdGVzIGFuIGludmFsaWQgQ3Vyc29yIHRoYXQgc2hvdWxkIG5l
dmVyIGFjdHVhbGx5IGdldCB1c2VkLgorICAgIFR5cGUgbV90eXBlIHsgc3RhdGljX2Nhc3Q8VHlw
ZT4oLTEpIH07CiAgICAgUmVmUHRyPEltYWdlPiBtX2ltYWdlOwogICAgIEludFBvaW50IG1faG90
U3BvdDsKKwogI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgZmxvYXQgbV9pbWFn
ZVNjYWxlRmFjdG9yOworICAgIGZsb2F0IG1faW1hZ2VTY2FsZUZhY3RvciB7IDEgfTsKICNlbmRp
ZgogCiAjaWYgIVVTRShBUFBLSVQpCi0gICAgbXV0YWJsZSBQbGF0Zm9ybUN1cnNvciBtX3BsYXRm
b3JtQ3Vyc29yOworICAgIG11dGFibGUgUGxhdGZvcm1DdXJzb3IgbV9wbGF0Zm9ybUN1cnNvciB7
IG51bGxwdHIgfTsKICNlbHNlCiAgICAgbXV0YWJsZSBSZXRhaW5QdHI8TlNDdXJzb3I+IG1fcGxh
dGZvcm1DdXJzb3I7CiAjZW5kaWYKKwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiB9OwogCkBA
IC0yMjgsNCArMjIxLDE1IEBAIGNvbnN0IEN1cnNvciYgbm9uZUN1cnNvcigpOwogY29uc3QgQ3Vy
c29yJiBncmFiQ3Vyc29yKCk7CiBjb25zdCBDdXJzb3ImIGdyYWJiaW5nQ3Vyc29yKCk7CiAKKyNp
ZiAhUExBVEZPUk0oSU9TKQorCitpbmxpbmUgQ3Vyc29yOjpUeXBlIEN1cnNvcjo6dHlwZSgpIGNv
bnN0Cit7CisgICAgQVNTRVJUKG1fdHlwZSA+PSAwKTsKKyAgICBBU1NFUlQobV90eXBlIDw9IEN1
c3RvbSk7CisgICAgcmV0dXJuIG1fdHlwZTsKK30KKworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DdXJzb3JF
ZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0N1cnNvckVmbC5jcHAKaW5kZXgg
YjNmNDRhZWI3ZWVjNGJkMmE4ZTdkNTJlZWVlMmMxMjc2ZGQyNDY2OS4uNTk2NDhiYjE0ODZjZGE1
YTY5ZDFmOTExODA5NjM1MTE3N2NlNjZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZWZsL0N1cnNvckVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZs
L0N1cnNvckVmbC5jcHAKQEAgLTQwLDM0ICs0MCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotQ3Vyc29yOjpDdXJzb3IoY29uc3QgQ3Vyc29yJiBvdGhlcikKLSAgICA6IG1fdHlwZShvdGhl
ci5tX3R5cGUpCi0gICAgLCBtX2ltYWdlKG90aGVyLm1faW1hZ2UpCi0gICAgLCBtX2hvdFNwb3Qo
b3RoZXIubV9ob3RTcG90KQotI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgLCBt
X2ltYWdlU2NhbGVGYWN0b3Iob3RoZXIubV9pbWFnZVNjYWxlRmFjdG9yKQotI2VuZGlmCi0gICAg
LCBtX3BsYXRmb3JtQ3Vyc29yKG90aGVyLm1fcGxhdGZvcm1DdXJzb3IpCi17Ci19Ci0KLUN1cnNv
cjo6fkN1cnNvcigpCi17Ci19Ci0KLUN1cnNvciYgQ3Vyc29yOjpvcGVyYXRvcj0oY29uc3QgQ3Vy
c29yJiBvdGhlcikKLXsKLSAgICBtX3R5cGUgPSBvdGhlci5tX3R5cGU7Ci0gICAgbV9pbWFnZSA9
IG90aGVyLm1faW1hZ2U7Ci0gICAgbV9ob3RTcG90ID0gb3RoZXIubV9ob3RTcG90OwotI2lmIEVO
QUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgbV9pbWFnZVNjYWxlRmFjdG9yID0gb3RoZXIu
bV9pbWFnZVNjYWxlRmFjdG9yOwotI2VuZGlmCi0gICAgbV9wbGF0Zm9ybUN1cnNvciA9IG90aGVy
Lm1fcGxhdGZvcm1DdXJzb3I7Ci0KLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KIHN0YXRpYyBjb25z
dCBjaGFyKiBjdXJzb3JTdHJpbmcoQ3Vyc29yOjpUeXBlIHR5cGUpCiB7CiAgICAgc3RhdGljIGNv
bnN0IGNoYXIqIGN1cnNvclN0cmluZ3NbXSA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0N1cnNvckd0ay5jcHAKaW5kZXggZjA3NWYzNjNhMDNhODRiYjEyYTc2NTRkMDZjOGJmZGNhNzE1
OWEwYi4uNDYzNGVmZGFjODVmMTgyOThiNDI2N2I2YmNjZWE4YTQzYWFhM2Y3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKQEAgLTE3NSwyNSArMTc1LDQgQEAg
dm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICB9CiB9CiAKLUN1
cnNvcjo6Q3Vyc29yKGNvbnN0IEN1cnNvciYgb3RoZXIpCi0gICAgOiBtX3R5cGUob3RoZXIubV90
eXBlKQotICAgICwgbV9pbWFnZShvdGhlci5tX2ltYWdlKQotICAgICwgbV9ob3RTcG90KG90aGVy
Lm1faG90U3BvdCkKLSAgICAsIG1fcGxhdGZvcm1DdXJzb3Iob3RoZXIubV9wbGF0Zm9ybUN1cnNv
cikKLXsKLX0KLQotQ3Vyc29yJiBDdXJzb3I6Om9wZXJhdG9yPShjb25zdCBDdXJzb3ImIG90aGVy
KQotewotICAgIG1fdHlwZSA9IG90aGVyLm1fdHlwZTsKLSAgICBtX2ltYWdlID0gb3RoZXIubV9p
bWFnZTsKLSAgICBtX2hvdFNwb3QgPSBvdGhlci5tX2hvdFNwb3Q7Ci0gICAgbV9wbGF0Zm9ybUN1
cnNvciA9IG90aGVyLm1fcGxhdGZvcm1DdXJzb3I7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi1D
dXJzb3I6On5DdXJzb3IoKQotewotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1
cnNvck1hYy5tbQppbmRleCA4NWNjN2M1ZmRkMmMxNjA2MmNmOGEwMTg2NGEyOWZjMzQ0NWE3ZTA1
Li5hYTM0NWU4OGU0ODExOGM0Njg3YjllZWZiZmM3MzIxOGRjNDcwNzBjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KQEAgLTI0MSwzMyArMjQxLDYgQEAgdm9pZCBD
dXJzb3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICB9CiB9CiAKLUN1cnNvcjo6
Q3Vyc29yKGNvbnN0IEN1cnNvciYgb3RoZXIpCi0gICAgOiBtX3R5cGUob3RoZXIubV90eXBlKQot
ICAgICwgbV9pbWFnZShvdGhlci5tX2ltYWdlKQotICAgICwgbV9ob3RTcG90KG90aGVyLm1faG90
U3BvdCkKLSNpZiBFTkFCTEUoTU9VU0VfQ1VSU09SX1NDQUxFKQotICAgICwgbV9pbWFnZVNjYWxl
RmFjdG9yKG90aGVyLm1faW1hZ2VTY2FsZUZhY3RvcikKLSNlbmRpZgotICAgICwgbV9wbGF0Zm9y
bUN1cnNvcihvdGhlci5tX3BsYXRmb3JtQ3Vyc29yKQotewotfQotCi1DdXJzb3ImIEN1cnNvcjo6
b3BlcmF0b3I9KGNvbnN0IEN1cnNvciYgb3RoZXIpCi17Ci0gICAgbV90eXBlID0gb3RoZXIubV90
eXBlOwotICAgIG1faW1hZ2UgPSBvdGhlci5tX2ltYWdlOwotICAgIG1faG90U3BvdCA9IG90aGVy
Lm1faG90U3BvdDsKLSNpZiBFTkFCTEUoTU9VU0VfQ1VSU09SX1NDQUxFKQotICAgIG1faW1hZ2VT
Y2FsZUZhY3RvciA9IG90aGVyLm1faW1hZ2VTY2FsZUZhY3RvcjsKLSNlbmRpZgotICAgIG1fcGxh
dGZvcm1DdXJzb3IgPSBvdGhlci5tX3BsYXRmb3JtQ3Vyc29yOwotICAgIHJldHVybiAqdGhpczsK
LX0KLQotQ3Vyc29yOjp+Q3Vyc29yKCkKLXsKLX0KLQogTlNDdXJzb3IgKkN1cnNvcjo6cGxhdGZv
cm1DdXJzb3IoKSBjb25zdAogewogICAgIGVuc3VyZVBsYXRmb3JtQ3Vyc29yKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ3Vyc29yV2luLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9DdXJzb3JXaW4uY3BwCmluZGV4IDdhOTkzMTM2YmEyYzNhMDVk
MmQzMTk2YTU1Njc3MThhMDBkYWY4NTkuLmQ5YjIyNTVhNWUyMWRlMjQ4NWFkNTVhOTBiYTk2ZWQ1
OTk0MTRkOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DdXJzb3JX
aW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DdXJzb3JXaW4uY3BwCkBA
IC00MCw2ICs0MCwyMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1NoYXJlZEN1cnNvcjo6
U2hhcmVkQ3Vyc29yKEhDVVJTT1IgbmF0aXZlQ3Vyc29yKQorICAgIDogbV9uYXRpdmVDdXJzb3Io
bmF0aXZlQ3Vyc29yKQoreworfQorCitSZWY8U2hhcmVkQ3Vyc29yPiBTaGFyZWRDdXJzb3I6OmNy
ZWF0ZShIQ1VSU09SIG5hdGl2ZUN1cnNvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
aGFyZWRDdXJzb3IobmF0aXZlQ3Vyc29yKSk7Cit9CisKK1NoYXJlZEN1cnNvcjo6flNoYXJlZEN1
cnNvcigpCit7CisgICAgRGVzdHJveUljb24obV9uYXRpdmVDdXJzb3IpOworfQorCiBzdGF0aWMg
UmVmPFNoYXJlZEN1cnNvcj4gY3JlYXRlU2hhcmVkQ3Vyc29yKEltYWdlKiBpbWcsIGNvbnN0IElu
dFBvaW50JiBob3RTcG90KQogewogICAgIEludFBvaW50IGVmZmVjdGl2ZUhvdFNwb3QgPSBkZXRl
cm1pbmVIb3RTcG90KGltZywgaG90U3BvdCk7CkBAIC0yNTMsMzYgKzI2OCw0IEBAIHZvaWQgQ3Vy
c29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgfQogfQogCi1TaGFyZWRDdXJz
b3I6On5TaGFyZWRDdXJzb3IoKQotewotICAgIERlc3Ryb3lJY29uKG1fbmF0aXZlQ3Vyc29yKTsK
LX0KLQotQ3Vyc29yOjpDdXJzb3IoY29uc3QgQ3Vyc29yJiBvdGhlcikKLSAgICA6IG1fdHlwZShv
dGhlci5tX3R5cGUpCi0gICAgLCBtX2ltYWdlKG90aGVyLm1faW1hZ2UpCi0gICAgLCBtX2hvdFNw
b3Qob3RoZXIubV9ob3RTcG90KQotI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAg
LCBtX2ltYWdlU2NhbGVGYWN0b3Iob3RoZXIubV9pbWFnZVNjYWxlRmFjdG9yKQotI2VuZGlmCi0g
ICAgLCBtX3BsYXRmb3JtQ3Vyc29yKG90aGVyLm1fcGxhdGZvcm1DdXJzb3IpCi17Ci19Ci0KLUN1
cnNvciYgQ3Vyc29yOjpvcGVyYXRvcj0oY29uc3QgQ3Vyc29yJiBvdGhlcikKLXsKLSAgICBtX3R5
cGUgPSBvdGhlci5tX3R5cGU7Ci0gICAgbV9pbWFnZSA9IG90aGVyLm1faW1hZ2U7Ci0gICAgbV9o
b3RTcG90ID0gb3RoZXIubV9ob3RTcG90OwotI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUp
Ci0gICAgbV9pbWFnZVNjYWxlRmFjdG9yID0gb3RoZXIubV9pbWFnZVNjYWxlRmFjdG9yOwotI2Vu
ZGlmCi0gICAgbV9wbGF0Zm9ybUN1cnNvciA9IG90aGVyLm1fcGxhdGZvcm1DdXJzb3I7Ci0gICAg
cmV0dXJuICp0aGlzOwotfQotCi1DdXJzb3I6On5DdXJzb3IoKQotewotfQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RW1iZWRkZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVk
ZGVkT2JqZWN0LmNwcAppbmRleCAwNmFlZTlmOTc5NjJmYmNhODI5Y2Y1ZTFiZTM4MjVlNmZiZDUy
ZGU0Li40ODJiNWRkMTM3NWI2ZmU3NzI2N2NiNjI2ZjQxNjM2ZGY4ZjUzNTgxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTYx
Niw3ICs2MTYsNyBAQCB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpoYW5kbGVVbmF2YWlsYWJs
ZVBsdWdpbkluZGljYXRvckV2ZW50KEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIHNldFVuYXZh
aWxhYmxlUGx1Z2luSW5kaWNhdG9ySXNQcmVzc2VkKGZhbHNlKTsKICAgICAgICAgfQogICAgICAg
ICBpZiAobV9tb3VzZURvd25XYXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yICYmIGlzSW5V
bmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcihtb3VzZUV2ZW50KSkgewotICAgICAgICAgICAgcGFn
ZSgpLmNocm9tZSgpLmNsaWVudCgpLnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCgmZWxl
bWVudCwgbV9wbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbik7CisgICAgICAgICAgICBwYWdlKCku
Y2hyb21lKCkuY2xpZW50KCkudW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKGVsZW1lbnQs
IG1fcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pOwogICAgICAgICB9CiAgICAgICAgIG1fbW91
c2VEb3duV2FzSW5VbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvciA9IGZhbHNlOwogICAgICAgICBl
dmVudC0+c2V0RGVmYXVsdEhhbmRsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQmFja2luZy5jcHAKaW5kZXggYTFhOTRjNjdiN2U0NTBlOWVjMDMwNWVlMDcw
NTlkZjIyZWMwNzZkNC4uNjFjYWFiZjZhZmE4ZTg3MDI2ODYxYjRmZTgwOTdjYzA5NjM1M2VlOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAK
QEAgLTEwNyw3ICsxMDcsNyBAQCBSZW5kZXJMYXllckJhY2tpbmc6OlJlbmRlckxheWVyQmFja2lu
ZyhSZW5kZXJMYXllciYgbGF5ZXIpCiB7CiAgICAgaWYgKGxheWVyLmlzUm9vdExheWVyKCkpIHsK
ICAgICAgICAgbV9pc01haW5GcmFtZVJlbmRlclZpZXdMYXllciA9IHJlbmRlcmVyKCkuZnJhbWUo
KS5pc01haW5GcmFtZSgpOwotICAgICAgICBtX3VzaW5nVGlsZWRDYWNoZUxheWVyID0gcmVuZGVy
ZXIoKS5wYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJh
bWVWaWV3KHJlbmRlcmVyKCkuZnJhbWUoKS52aWV3KCkpOworICAgICAgICBtX3VzaW5nVGlsZWRD
YWNoZUxheWVyID0gcmVuZGVyZXIoKS5wYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuc2hvdWxkVXNl
VGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KHJlbmRlcmVyKCkudmlldygpLmZyYW1lVmlldygpKTsK
ICAgICB9CiAgICAgCiAgICAgY3JlYXRlUHJpbWFyeUdyYXBoaWNzTGF5ZXIoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXgg
MTJiNjJjOTI4N2JiZmZkOWU1Nzk4Zjc2NWQ4MmM1NzAzNzMxZTZkZC4uNjVmZGM0ZGZkYTQ2ZmJk
MjJkYmJjMzQ3YTk2YjIxYzJlZWRlYzE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTMxMDMsNyArMzEwMyw3IEBAIEdy
YXBoaWNzTGF5ZXIqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJGb3JIZWFkZXIo
Ym9vbCB3YW50c0xheWVyKQogICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5n
Q29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQogICAgICAgICBzY3Jv
bGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3Um9vdExheWVyRGlkQ2hhbmdlKG1fcmVuZGVyVmll
dy5mcmFtZVZpZXcoKSk7CiAKLSAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlkQWRkSGVh
ZGVyTGF5ZXIobV9sYXllckZvckhlYWRlci5nZXQoKSk7CisgICAgcGFnZSgpLmNocm9tZSgpLmNs
aWVudCgpLmRpZEFkZEhlYWRlckxheWVyKCptX2xheWVyRm9ySGVhZGVyKTsKIAogICAgIHJldHVy
biBtX2xheWVyRm9ySGVhZGVyLmdldCgpOwogfQpAQCAtMzE0MSw3ICszMTQxLDcgQEAgR3JhcGhp
Y3NMYXllciogUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllckZvckZvb3Rlcihib29s
IHdhbnRzTGF5ZXIpCiAgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29y
ZGluYXRvciA9IHRoaXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCiAgICAgICAgIHNjcm9sbGlu
Z0Nvb3JkaW5hdG9yLT5mcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LmZy
YW1lVmlldygpKTsKIAotICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5kaWRBZGRGb290ZXJM
YXllcihtX2xheWVyRm9yRm9vdGVyLmdldCgpKTsKKyAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50
KCkuZGlkQWRkRm9vdGVyTGF5ZXIoKm1fbGF5ZXJGb3JGb290ZXIpOwogCiAgICAgcmV0dXJuIG1f
bGF5ZXJGb3JGb290ZXIuZ2V0KCk7CiB9CkBAIC0zNDYzLDExICszNDYzLDExIEBAIHZvaWQgUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjphdHRhY2hSb290TGF5ZXIoUm9vdExheWVyQXR0YWNobWVudCBh
dHRhY2htZW50KQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUm9vdExheWVyQXR0
YWNoZWRWaWFDaHJvbWVDbGllbnQ6IHsKICAgICAgICAgICAgIEZyYW1lJiBmcmFtZSA9IG1fcmVu
ZGVyVmlldy5mcmFtZVZpZXcoKS5mcmFtZSgpOwotICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgp
LmNsaWVudCgpLmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKCZmcmFtZSwgcm9vdEdyYXBoaWNzTGF5
ZXIoKSk7CisgICAgICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoUm9vdEdy
YXBoaWNzTGF5ZXIoZnJhbWUsIHJvb3RHcmFwaGljc0xheWVyKCkpOwogICAgICAgICAgICAgaWYg
KGZyYW1lLmlzTWFpbkZyYW1lKCkpIHsKICAgICAgICAgICAgICAgICBQYWdlT3ZlcmxheUNvbnRy
b2xsZXImIHBhZ2VPdmVybGF5Q29udHJvbGxlciA9IGZyYW1lLm1haW5GcmFtZSgpLnBhZ2VPdmVy
bGF5Q29udHJvbGxlcigpOwogICAgICAgICAgICAgICAgIHBhZ2VPdmVybGF5Q29udHJvbGxlci53
aWxsQXR0YWNoUm9vdExheWVyKCk7Ci0gICAgICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNs
aWVudCgpLmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcigmZnJhbWUsICZwYWdlT3Zlcmxh
eUNvbnRyb2xsZXIudmlld092ZXJsYXlSb290TGF5ZXIoKSk7CisgICAgICAgICAgICAgICAgcGFn
ZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihmcmFt
ZSwgJnBhZ2VPdmVybGF5Q29udHJvbGxlci52aWV3T3ZlcmxheVJvb3RMYXllcigpKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0zNTA4LDkgKzM1MDgs
OSBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGV0YWNoUm9vdExheWVyKCkKICAgICB9
CiAgICAgY2FzZSBSb290TGF5ZXJBdHRhY2hlZFZpYUNocm9tZUNsaWVudDogewogICAgICAgICBG
cmFtZSYgZnJhbWUgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkuZnJhbWUoKTsKLSAgICAgICAg
cGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKCZmcmFtZSwg
MCk7CisgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hSb290R3JhcGhpY3NM
YXllcihmcmFtZSwgbnVsbHB0cik7CiAgICAgICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKQot
ICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFZpZXdPdmVybGF5R3Jh
cGhpY3NMYXllcigmZnJhbWUsIDApOworICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVu
dCgpLmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihmcmFtZSwgbnVsbHB0cik7CiAgICAg
fQogICAgIGJyZWFrOwogICAgIGNhc2UgUm9vdExheWVyVW5hdHRhY2hlZDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IGQyYzAyZWY5ZDYwZTA2YzY4
NjY3MjNlNDc0MDczN2FkOGMwYzM4MjEuLjM3YzgzZThkMWY1ZWJiMDU3YjExMGNjODg4MTA1NDUx
MmNkNGQ0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51
TGlzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNw
cApAQCAtMzcxLDcgKzM3MSw3IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpCiAg
ICAgLy8gaW5zaWRlIHRoZSBzaG93UG9wdXAgY2FsbCBhbmQgaXQgd291bGQgZmFpbC4KICAgICBj
cmVhdGVJbm5lckJsb2NrKCk7CiAgICAgaWYgKCFtX3BvcHVwKQotICAgICAgICBtX3BvcHVwID0g
ZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNyZWF0ZVBvcHVwTWVudSh0aGlzKTsKKyAgICAg
ICAgbV9wb3B1cCA9IGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jcmVhdGVQb3B1cE1lbnUo
KnRoaXMpOwogICAgIG1fcG9wdXBJc1Zpc2libGUgPSB0cnVlOwogCiAgICAgLy8gQ29tcHV0ZSB0
aGUgdG9wIGxlZnQgdGFraW5nIHRyYW5zZm9ybXMgaW50byBhY2NvdW50LCBidXQgdXNlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcAppbmRleCBiNDZk
OGVkNzE4NjA4Y2FmZTYxNjkzZTE0YmUxM2U4NmQ0Y2E4MjJjLi5jYTkwMDUxODRkYjI5YWM5Mjc3
MGRhMTI3NTU4MTRjNjA4MDYyMWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJTZWFyY2hGaWVsZC5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBSZW5kZXJTZWFyY2hG
aWVsZDo6YWRkU2VhcmNoUmVzdWx0KCkKIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9
IGF1dG9zYXZlTmFtZSgpOwogICAgIGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgbV9zZWFy
Y2hQb3B1cCA9IHBhZ2UoKS5jaHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7Cisg
ICAgICAgIG1fc2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBN
ZW51KCp0aGlzKTsKIAogICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1l
LCBtX3JlY2VudFNlYXJjaGVzKTsKIH0KQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFJlbmRlclNl
YXJjaEZpZWxkOjpzaG93UG9wdXAoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fc2Vh
cmNoUG9wdXApCi0gICAgICAgIG1fc2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRl
U2VhcmNoUG9wdXBNZW51KHRoaXMpOworICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNo
cm9tZSgpLmNyZWF0ZVNlYXJjaFBvcHVwTWVudSgqdGhpcyk7CiAKICAgICBpZiAoIW1fc2VhcmNo
UG9wdXAtPmVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjAxLDcgKzIwMSw3IEBAIHZv
aWQgUmVuZGVyU2VhcmNoRmllbGQ6OnZhbHVlQ2hhbmdlZCh1bnNpZ25lZCBsaXN0SW5kZXgsIGJv
b2wgZmlyZUV2ZW50cykKICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1
dG9zYXZlTmFtZSgpOwogICAgICAgICAgICAgaWYgKCFuYW1lLmlzRW1wdHkoKSkgewogICAgICAg
ICAgICAgICAgIGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgICAgICAgICAgICAgbV9zZWFy
Y2hQb3B1cCA9IHBhZ2UoKS5jaHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7Cisg
ICAgICAgICAgICAgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRl
U2VhcmNoUG9wdXBNZW51KCp0aGlzKTsKICAgICAgICAgICAgICAgICBtX3NlYXJjaFBvcHVwLT5z
YXZlUmVjZW50U2VhcmNoZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hlcyk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCmluZGV4IGJlYjBhMzk1M2Jj
NzJmZWUxM2IzNTM4ZmU1OTdjZDE5MDlkOWQzYmUuLjQyMDIzZmE3Njg2NTRlMTNhZjZkMzI2Mjgy
YWUzODE2N2FjYTlkYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcApAQCAtMTk3LDcg
KzE5Nyw3IEBAIGJvb2wgU1ZHQUVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRF
dmVudCYgZXZlbnQpIGNvbnN0CiAgICAgICAgIHJldHVybiBTVkdFbGVtZW50Ojppc0tleWJvYXJk
Rm9jdXNhYmxlKGV2ZW50KTsKIAogICAgIGlmIChpc0xpbmsoKSkKLSAgICAgICAgcmV0dXJuIGRv
Y3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoJmV2ZW50KTsKKyAg
ICAgICAgcmV0dXJuIGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlu
a3MoZXZlbnQpOwogCiAgICAgcmV0dXJuIFNWR0VsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUo
ZXZlbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92
ZXJsYXlDbGllbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlD
bGllbnQuY3BwCmluZGV4IGZkNTY0YWZmMTQwNGU1ODhhOWRjNDFhNjM2N2RiMmYwY2JkYTEyOGIu
LjAwNDQwNDFiZjc1NzhjM2MyYTg2MTdiN2ZlNzY2ZmQyY2JjYjJkNzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKQEAgLTUxLDcgKzUx
LDcgQEAgTW9ja1BhZ2VPdmVybGF5Q2xpZW50OjpNb2NrUGFnZU92ZXJsYXlDbGllbnQoKQogUmVm
PE1vY2tQYWdlT3ZlcmxheT4gTW9ja1BhZ2VPdmVybGF5Q2xpZW50OjppbnN0YWxsT3ZlcmxheShN
YWluRnJhbWUmIG1haW5GcmFtZSwgUGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlIG92ZXJsYXlUeXBl
KQogewogICAgIGF1dG8gb3ZlcmxheSA9IFBhZ2VPdmVybGF5OjpjcmVhdGUoKnRoaXMsIG92ZXJs
YXlUeXBlKTsKLSAgICBtYWluRnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBh
Z2VPdmVybGF5KG92ZXJsYXkucHRyKCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRl
KTsKKyAgICBtYWluRnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVy
bGF5KG92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIAogICAgIGF1
dG8gbW9ja092ZXJsYXkgPSBNb2NrUGFnZU92ZXJsYXk6OmNyZWF0ZShvdmVybGF5LnB0cigpKTsK
ICAgICBtX292ZXJsYXlzLmFkZChtb2NrT3ZlcmxheS5wdHIoKSk7CkBAIC02NSw3ICs2NSw3IEBA
IHZvaWQgTW9ja1BhZ2VPdmVybGF5Q2xpZW50Ojp1bmluc3RhbGxBbGxPdmVybGF5cygpCiAgICAg
ICAgIFJlZlB0cjxNb2NrUGFnZU92ZXJsYXk+IG1vY2tPdmVybGF5ID0gbV9vdmVybGF5cy50YWtl
QW55KCk7CiAgICAgICAgIFBhZ2VPdmVybGF5Q29udHJvbGxlciogb3ZlcmxheUNvbnRyb2xsZXIg
PSBtb2NrT3ZlcmxheS0+b3ZlcmxheSgpLT5jb250cm9sbGVyKCk7CiAgICAgICAgIEFTU0VSVChv
dmVybGF5Q29udHJvbGxlcik7Ci0gICAgICAgIG92ZXJsYXlDb250cm9sbGVyLT51bmluc3RhbGxQ
YWdlT3ZlcmxheShtb2NrT3ZlcmxheS0+b3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6
OkRvTm90RmFkZSk7CisgICAgICAgIG92ZXJsYXlDb250cm9sbGVyLT51bmluc3RhbGxQYWdlT3Zl
cmxheSgqbW9ja092ZXJsYXktPm92ZXJsYXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05v
dEZhZGUpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0K
aW5kZXggM2IzYzNhNDI5NGMxN2M1NzhiODE5MTVkYTBiMWM0ZjhiZmEyM2ViYS4uMGQ0ODJiNGRk
OTI1YmMwYjhiOGQ0MjYxZWZjMmM3YTY1NTc2ZTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hl
UXVvdGFNYW5hZ2VyLm1tCkBAIC01OSw3ICs1OSw5IEBAIC0gKHVuc2lnbmVkIGxvbmcgbG9uZyl1
c2FnZQogLSAodW5zaWduZWQgbG9uZyBsb25nKXF1b3RhCiB7CiAgICAgbG9uZyBsb25nIHF1b3Rh
OwotICAgIGlmICh3ZWJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSgpLmNhbGN1bGF0ZVF1b3RhRm9y
T3JpZ2luKFtfb3JpZ2luIF9jb3JlXSwgcXVvdGEpKQorICAgIGlmICghX29yaWdpbikKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgaWYgKHdlYkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlKCkuY2FsY3Vs
YXRlUXVvdGFGb3JPcmlnaW4oKltfb3JpZ2luIF9jb3JlXSwgcXVvdGEpKQogICAgICAgICByZXR1
cm4gcXVvdGE7CiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGY0ZjA5NmM1ZDY0NzNlYmM2ZTdh
YmQ1ODNiNmRmZWY0YWFhNGQxNTkuLjdkOGYzYjg3ZjdlMzI0NTE2ZGIwNjE1YmU1OGQ4ZDkwNTU4
MjRiOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmb2N1c2Vk
RWxlbWVudENoYW5nZWQoV2ViQ29yZTo6RWxlbWVudCopIG92ZXJyaWRlOwogICAgIHZvaWQgZm9j
dXNlZEZyYW1lQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSopIGZpbmFsOwogCi0gICAgV2ViQ29yZTo6
UGFnZSogY3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6RnJhbWVM
b2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29y
ZTo6TmF2aWdhdGlvbkFjdGlvbiYpIGZpbmFsOworICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdp
bmRvdyhXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBj
b25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25B
Y3Rpb24mKSBmaW5hbDsKICAgICB2b2lkIHNob3coKSBmaW5hbDsKIAogICAgIGJvb2wgY2FuUnVu
TW9kYWwoKSBmaW5hbDsKQEAgLTc5LDE2ICs3OSwxNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBz
ZXRSZXNpemFibGUoYm9vbCkgZmluYWw7CiAKLSAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUo
SlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgV1RGOjpTdHJpbmcm
IG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29u
c3QgV1RGOjpTdHJpbmcmIHNvdXJjZVVSTCkgZmluYWw7CisgICAgdm9pZCBhZGRNZXNzYWdlVG9D
b25zb2xlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgZmluYWw7CiAKICAgICBib29sIGNhblJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbCgpIGZpbmFsOwotICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsKGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSopIGZpbmFs
OworICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKIAogICAgIHZvaWQgY2xvc2VXaW5kb3dTb29u
KCkgZmluYWw7CiAKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSos
IGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0Q29u
ZmlybShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFdURjo6U3RyaW5n
JiByZXN1bHQpIG92ZXJyaWRlOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6
OkZyYW1lJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0
Q29uZmlybShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIGJv
b2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KSBvdmVycmlk
ZTsKIAogICAgIGJvb2wgc3VwcG9ydHNJbW1lZGlhdGVJbnZhbGlkYXRpb24oKSBmaW5hbDsKICAg
ICB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7
CkBAIC0xMDUsMjkgKzEwNSwyOSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBQbGF0Zm9ybVBh
Z2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb250
ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFt
ZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNjcm9s
bFJlY3RJbnRvVmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgZmluYWw7CiAKLSAg
ICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgV1RGOjpTdHJpbmcmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgZmluYWwgeyB9CiAgICAgYm9vbCBz
aG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihXZWJDb3JlOjpSZW5kZXJFbWJl
ZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOwotICAg
IHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQqLCBX
ZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24p
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdl
YkNvcmU6OkVsZW1lbnQmLCBXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVy
RmxhZ3MpIGZpbmFsOwogCi0gICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFdURjo6U3RyaW5nJiwg
V2ViQ29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7CisgICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0
IFN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24pIGZpbmFsOwogCi0gICAgdm9pZCBwcmlu
dChXZWJDb3JlOjpGcmFtZSopIGZpbmFsOwotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3Rh
KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29y
ZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKKyAgICB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1l
JikgZmluYWw7CisgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUm
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBm
aW5hbDsKICAgICB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRl
ZCkgZmluYWw7Ci0gICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSBmaW5hbDsK
KyAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4mLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpIGZpbmFsOwogCiAjaWYgRU5B
QkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIHZvaWQgYW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQo
KSBmaW5hbDsKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUm
LCBXZWJDb3JlOjpGaWxlQ2hvb3NlciYpIG92ZXJyaWRlOwotICAgIHZvaWQgbG9hZEljb25Gb3JG
aWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIm
KSBmaW5hbDsKKyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
LCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpIGZpbmFsOwogCiAjaWYgIVBMQVRGT1JNKElPUykK
ICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBmaW5hbDsKQEAgLTEz
NSw3ICsxMzUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9D
T0xPUikKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVD
b2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgV2ViQ29yZTo6
Q29sb3ImKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2Vy
PiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3Qg
V2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKQEAgLTE1MSwxNiArMTUxLDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbmFibGVTdWRkZW5U
ZXJtaW5hdGlvbigpIGZpbmFsOwogICAgIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkg
ZmluYWw7CiAKLSAgICBib29sIHNob3VsZFJlcGxhY2VXaXRoR2VuZXJhdGVkRmlsZUZvclVwbG9h
ZChjb25zdCBXVEY6OlN0cmluZyYgcGF0aCwgV1RGOjpTdHJpbmcgJmdlbmVyYXRlZEZpbGVuYW1l
KSBmaW5hbDsKLSAgICBXVEY6OlN0cmluZyBnZW5lcmF0ZVJlcGxhY2VtZW50RmlsZShjb25zdCBX
VEY6OlN0cmluZyYgcGF0aCkgZmluYWw7CisgICAgYm9vbCBzaG91bGRSZXBsYWNlV2l0aEdlbmVy
YXRlZEZpbGVGb3JVcGxvYWQoY29uc3QgU3RyaW5nJiBwYXRoLCBTdHJpbmcgJmdlbmVyYXRlZEZp
bGVuYW1lKSBmaW5hbDsKKyAgICBTdHJpbmcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoY29uc3Qg
U3RyaW5nJiBwYXRoKSBmaW5hbDsKIAotICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IFdl
YkNvcmU6Ok5vZGUqKSBvdmVycmlkZTsKLSAgICB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IFdl
YkNvcmU6Ok5vZGUqKSBvdmVycmlkZTsKKyAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhXZWJDb3Jl
OjpFbGVtZW50Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBlbGVtZW50RGlkQmx1cihXZWJDb3JlOjpF
bGVtZW50Jikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNob3VsZFBhaW50RW50aXJlQ29udGVudHMo
KSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29y
ZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBh
dHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgZmluYWw7CisgICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihX
ZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2
b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdp
bmdTeW5jaHJvbml6YXRpb24oKSBmaW5hbDsKICAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdM
YXllckZsdXNoKCkgZmluYWw7CiAKQEAgLTE4OSwxNiArMTg5LDE2IEBAIHByaXZhdGU6CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICBib29sIHN1cHBvcnRzRnVsbFNj
cmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJk
KSBmaW5hbDsKLSAgICB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxl
bWVudCopIGZpbmFsOwotICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6
OkVsZW1lbnQqKSBmaW5hbDsKKyAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQo
Y29uc3QgV2ViQ29yZTo6RWxlbWVudCYsIGJvb2wgd2l0aEtleWJvYXJkKSBmaW5hbDsKKyAgICB2
b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOwor
ICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5h
bDsKICNlbmRpZgogCiAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpIG92ZXJyaWRlOwogICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3Jp
dGluZ0RpcmVjdGlvbigpIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25z
dCBmaW5hbDsKLSAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUo
V2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgUmVmUHRyPFdl
YkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCopIGNvbnN0IG92ZXJyaWRlOworICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1
cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBv
dmVycmlkZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3Qgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIHdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoYm9vbCkgZmluYWwgeyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bQppbmRleCAwZWNmZjhkNWZhYjFlZTVmYzU1MjkyZGMwNGE4MDVhZDJjY2NkZWQ4Li5lNDk2N2I5
ZjhjMzdjNjI1YjUwNTViYzQyOTFhNzU5NTlmMDVmYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0zMCw2ICszMCw3
IEBACiAjaW1wb3J0ICJXZWJDaHJvbWVDbGllbnQuaCIKIAogI2ltcG9ydCAiRE9NRWxlbWVudElu
dGVybmFsLmgiCisjaW1wb3J0ICJET01IVE1MSW5wdXRFbGVtZW50SW50ZXJuYWwuaCIKICNpbXBv
cnQgIkRPTU5vZGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiUG9wdXBNZW51TWFjLmgiCiAjaW1wb3J0
ICJTZWFyY2hQb3B1cE1lbnVNYWMuaCIKQEAgLTIyMiw3ICsyMjMsNyBAQCB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6Zm9jdXNlZEVsZW1lbnRDaGFuZ2VkKEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgaWYg
KCFpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
SFRNTElucHV0RWxlbWVudCYgaW5wdXRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVu
dD4oKmVsZW1lbnQpOworICAgIGF1dG8mIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1
dEVsZW1lbnQ+KCplbGVtZW50KTsKICAgICBpZiAoIWlucHV0RWxlbWVudC5pc1RleHQoKSkKICAg
ICAgICAgcmV0dXJuOwogCkBAIC0yMzMsMTQgKzIzNCwxNCBAQCB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSopCiB7CiB9CiAKLVBhZ2UqIFdlYkNocm9tZUNs
aWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYs
IGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYp
CitQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0
IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mKQogewogICAgIGlkIGRlbGVnYXRlID0gW21fd2ViVmlldyBVSURl
bGVnYXRlXTsKICAgICBXZWJWaWV3ICpuZXdXZWJWaWV3OwogCiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQotICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+
d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkpCi0gICAgICAgIGZyYW1lLT5kb2N1bWVu
dCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7CisgICAgaWYgKGZyYW1lLmRvY3VtZW50KCkg
JiYgZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkpCisg
ICAgICAgIGZyYW1lLmRvY3VtZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsKICNlbmRp
ZgogICAgIAogICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3
ZWJWaWV3OmNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdDp3aW5kb3dGZWF0dXJlczopXSkgewpAQCAt
NDY4LDkgKzQ2OSw5IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwoKQogICAgIHJldHVybiBbW21fd2ViVmlldyBVSURlbGVnYXRlXSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
V2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTopXTsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZy
YW1lKiBmcmFtZSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSYgZnJhbWUpCiB7Ci0gICAgcmV0dXJu
IENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVhbih0cnVlLCBtX3dlYlZpZXcsIEBzZWxlY3Rv
cih3ZWJWaWV3OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRl
ZEJ5RnJhbWU6KSwgbWVzc2FnZSwga2l0KGZyYW1lKSk7CisgICAgcmV0dXJuIENhbGxVSURlbGVn
YXRlUmV0dXJuaW5nQm9vbGVhbih0cnVlLCBtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6KSwg
bWVzc2FnZSwga2l0KCZmcmFtZSkpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xvc2VX
aW5kb3dTb29uKCkKQEAgLTQ5MywxMiArNDk0LDEyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpj
bG9zZVdpbmRvd1Nvb24oKQogICAgIFttX3dlYlZpZXcgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3Rv
cihfY2xvc2VXaW5kb3cpIHdpdGhPYmplY3Q6bmlsIGFmdGVyRGVsYXk6MC4wXTsKIH0KIAotdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxl
cnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgaWQgZGVsZWdh
dGUgPSBbbV93ZWJWaWV3IFVJRGVsZWdhdGVdOwogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rv
cih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlG
cmFtZTopOwogICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkg
ewotICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBtZXNzYWdlLCBr
aXQoZnJhbWUpKTsKKyAgICAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3Rvciwg
bWVzc2FnZSwga2l0KCZmcmFtZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC01MTAs
MTIgKzUxMSwxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZy
YW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIH0KIH0KIAotYm9vbCBXZWJD
aHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJt
KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIGlkIGRlbGVnYXRl
ID0gW21fd2ViVmlldyBVSURlbGVnYXRlXTsKICAgICBTRUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Io
d2ViVmlldzpydW5KYXZhU2NyaXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlG
cmFtZTopOwogICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkK
LSAgICAgICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVhbihOTywgbV93ZWJW
aWV3LCBzZWxlY3RvciwgbWVzc2FnZSwga2l0KGZyYW1lKSk7CisgICAgICAgIHJldHVybiBDYWxs
VUlEZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4oTk8sIG1fd2ViVmlldywgc2VsZWN0b3IsIG1lc3Nh
Z2UsIGtpdCgmZnJhbWUpKTsKIAogICAgIC8vIENhbGwgdGhlIG9sZCB2ZXJzaW9uIG9mIHRoZSBk
ZWxlZ2F0ZSBtZXRob2QgaWYgaXQgaXMgaW1wbGVtZW50ZWQuCiAgICAgc2VsZWN0b3IgPSBAc2Vs
ZWN0b3Iod2ViVmlldzpydW5KYXZhU2NyaXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6KTsKQEAg
LTUyNSwxMyArNTI2LDEzIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29u
ZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICByZXR1cm4gTk87
CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBm
cmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFRleHQsIFN0
cmluZyYgcmVzdWx0KQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQo
RnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwgY29uc3QgU3RyaW5nJiBkZWZhdWx0
VGV4dCwgU3RyaW5nJiByZXN1bHQpCiB7CiAgICAgaWQgZGVsZWdhdGUgPSBbbV93ZWJWaWV3IFVJ
RGVsZWdhdGVdOwogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFT
Y3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6ZGVmYXVsdFRleHQ6aW5pdGlhdGVkQnlGcmFt
ZTopOwogICAgIE5TU3RyaW5nICpkZWZhdWx0U3RyaW5nID0gZGVmYXVsdFRleHQ7CiAgICAgaWYg
KFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6c2VsZWN0b3JdKSB7Ci0gICAgICAgIHJlc3Vs
dCA9IChOU1N0cmluZyAqKUNhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIHByb21w
dCwgZGVmYXVsdFN0cmluZywga2l0KGZyYW1lKSk7CisgICAgICAgIHJlc3VsdCA9IChOU1N0cmlu
ZyAqKUNhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIHByb21wdCwgZGVmYXVsdFN0
cmluZywga2l0KCZmcmFtZSkpOwogICAgICAgICByZXR1cm4gIXJlc3VsdC5pc051bGwoKTsKICAg
ICB9CiAKQEAgLTU0Miw3ICs1NDMsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNj
cmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgcHJvbXB0LCBjbwogICAgICAg
ICByZXR1cm4gIXJlc3VsdC5pc051bGwoKTsKICAgICB9CiAKLSAgICByZXN1bHQgPSBbW1dlYkRl
ZmF1bHRVSURlbGVnYXRlIHNoYXJlZFVJRGVsZWdhdGVdIHdlYlZpZXc6bV93ZWJWaWV3IHJ1bkph
dmFTY3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6cHJvbXB0IGRlZmF1bHRUZXh0OmRlZmF1
bHRTdHJpbmcgaW5pdGlhdGVkQnlGcmFtZTpraXQoZnJhbWUpXTsKKyAgICByZXN1bHQgPSBbW1dl
YkRlZmF1bHRVSURlbGVnYXRlIHNoYXJlZFVJRGVsZWdhdGVdIHdlYlZpZXc6bV93ZWJWaWV3IHJ1
bkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6cHJvbXB0IGRlZmF1bHRUZXh0OmRl
ZmF1bHRTdHJpbmcgaW5pdGlhdGVkQnlGcmFtZTpraXQoJmZyYW1lKV07CiAgICAgcmV0dXJuICFy
ZXN1bHQuaXNOdWxsKCk7CiB9CiAKQEAgLTYwNiw3ICs2MDcsNyBAQCBQbGF0Zm9ybVBhZ2VDbGll
bnQgV2ViQ2hyb21lQ2xpZW50OjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogICAgIHJldHVy
biAwOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFt
ZSosIGNvbnN0IEludFNpemUmKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRz
U2l6ZUNoYW5nZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3QKIHsKIH0KIApAQCAtNjM1
LDEyICs2MzYsMTIgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVuYXZhaWxhYmxlUGx1
Z2luTWVzc2FnZUJlQnV0dG9uKFJlbmRlckVtYmVkZGVkT2JqZWMKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNr
ZWQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxh
YmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdAordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50JiBlbGVt
ZW50LCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1
Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQtPmhh
c1RhZ05hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGVtYmVkVGFnKSB8fCBl
bGVtZW50LT5oYXNUYWdOYW1lKGFwcGxldFRhZykpOworICAgIEFTU0VSVChlbGVtZW50Lmhhc1Rh
Z05hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZW1iZWRUYWcpIHx8IGVsZW1l
bnQuaGFzVGFnTmFtZShhcHBsZXRUYWcpKTsKIAogICAgIEFTU0VSVChwbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbiA9PSBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luTWlzc2luZyk7Ci0gICAg
Q2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpkaWRQcmVzc01pc3Np
bmdQbHVnaW5CdXR0b246KSwga2l0KGVsZW1lbnQpKTsKKyAgICBDYWxsVUlEZWxlZ2F0ZShtX3dl
YlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmRpZFByZXNzTWlzc2luZ1BsdWdpbkJ1dHRvbjopLCBr
aXQoJmVsZW1lbnQpKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJG
bGFncykKQEAgLTY1NywyMSArNjU4LDIxIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRUb29s
VGlwKGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikKICAgICAgICAgWyhXZWJI
VE1MVmlldyAqKWRvY3VtZW50VmlldyBfc2V0VG9vbFRpcDp0b29sVGlwXTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpwcmludChGcmFtZSYgZnJhbWUpCiB7Ci0gICAgV2ViRnJhbWUgKndlYkZyYW1lID0ga2l0KGZy
YW1lKTsKKyAgICBXZWJGcmFtZSAqd2ViRnJhbWUgPSBraXQoJmZyYW1lKTsKICAgICBpZiAoW1tt
X3dlYlZpZXcgVUlEZWxlZ2F0ZV0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3
OnByaW50RnJhbWU6KV0pCiAgICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVj
dG9yKHdlYlZpZXc6cHJpbnRGcmFtZTopLCB3ZWJGcmFtZSk7CiAgICAgZWxzZQogICAgICAgICBD
YWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnByaW50RnJhbWVWaWV3
OiksIFt3ZWJGcmFtZSBmcmFtZVZpZXddKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4
Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lLCBEYXRhYmFzZURldGFpbHMpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRh
YmFzZVF1b3RhKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFi
YXNlRGV0YWlscykKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBX
ZWJTZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdpbiBhbGxvY10g
X2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOiZmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKV07Ci0gICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2Vi
VmlldzpmcmFtZTpleGNlZWRlZERhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjpkYXRhYmFz
ZTopLCBraXQoZnJhbWUpLCB3ZWJPcmlnaW4sIChOU1N0cmluZyAqKWRhdGFiYXNlTmFtZSk7Cisg
ICAgV2ViU2VjdXJpdHlPcmlnaW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxs
b2NdIF9pbml0V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdpbjomZnJhbWUuZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKV07CisgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Io
d2ViVmlldzpmcmFtZTpleGNlZWRlZERhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjpkYXRh
YmFzZTopLCBraXQoJmZyYW1lKSwgd2ViT3JpZ2luLCAoTlNTdHJpbmcgKilkYXRhYmFzZU5hbWUp
OwogICAgIFt3ZWJPcmlnaW4gcmVsZWFzZV07CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOwpAQCAtNjgyLDExICs2ODMsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRN
YXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkKICAgICAvLyBGSVhNRTogRnJlZSBz
b21lIHNwYWNlLgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBpbnQ2NF90IHRvdGFsU3Bh
Y2VOZWVkZWQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVk
ZWQpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgV2ViU2VjdXJp
dHlPcmlnaW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0
aFdlYkNvcmVTZWN1cml0eU9yaWdpbjpvcmlnaW5dOworICAgIFdlYlNlY3VyaXR5T3JpZ2luICp3
ZWJPcmlnaW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5pdFdpdGhXZWJDb3JlU2Vj
dXJpdHlPcmlnaW46Jm9yaWdpbl07CiAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2Vs
ZWN0b3Iod2ViVmlldzpleGNlZWRlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YUZvclNlY3Vy
aXR5T3JpZ2luOnRvdGFsU3BhY2VOZWVkZWQ6KSwgd2ViT3JpZ2luLCBzdGF0aWNfY2FzdDxOU1VJ
bnRlZ2VyPih0b3RhbFNwYWNlTmVlZGVkKSk7CiAgICAgW3dlYk9yaWdpbiByZWxlYXNlXTsKIApA
QCAtNzA1LDEyICs3MDYsMTQgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFubm90YXRlZFJlZ2lv
bnNDaGFuZ2VkKCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi1zdGQ6
OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hv
b3NlcihDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xv
cikKKworc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiBjbGllbnQsIGNvbnN0IENvbG9yJiBp
bml0aWFsQ29sb3IpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCA8aW5wdXQgdHlwZT0nY29s
b3InPiBmb3IgV0sxIChCdWcgMTE5MDk0KS4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KKwogI2VuZGlmCiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NL
KQpAQCAtODQ4LDE0ICs4NTEsMTQgQEAgU3RyaW5nIFdlYkNocm9tZUNsaWVudDo6Z2VuZXJhdGVS
ZXBsYWNlbWVudEZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVybiBbW21fd2ViVmll
dyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzptX3dlYlZpZXcgZ2VuZXJhdGVSZXBsYWNl
bWVudEZpbGU6cGF0aF07CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9j
dXMoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVt
ZW50RGlkRm9jdXMoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBDYWxsVUlEZWxl
Z2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZvcm1EaWRGb2N1c05vZGU6KSwga2l0
KGNvbnN0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KG5vZGUpKSk7CisgICAgQ2FsbFVJRGVsZWdhdGUo
bV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpmb3JtRGlkRm9jdXNOb2RlOiksIGtpdCgmZWxl
bWVudCkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIoY29uc3Qg
V2ViQ29yZTo6Tm9kZSogbm9kZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkQmx1
cihXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50KQogewotICAgIENhbGxVSURlbGVnYXRlKG1fd2Vi
VmlldywgQHNlbGVjdG9yKHdlYlZpZXc6Zm9ybURpZEJsdXJOb2RlOiksIGtpdChjb25zdF9jYXN0
PFdlYkNvcmU6Ok5vZGUqPihub2RlKSkpOworICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywg
QHNlbGVjdG9yKHdlYlZpZXc6Zm9ybURpZEJsdXJOb2RlOiksIGtpdCgmZWxlbWVudCkpOwogfQog
CiBib29sIFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKQpAQCAtODc0LDE5ICs4NzcsMTkgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6Omhhc09wZW5l
ZFBvcHVwKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpQ
b3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2Vi
Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JiBj
bGllbnQpIGNvbnN0CiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFBvcHVwTWVudU1hYyhjbGllbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQb3B1
cE1lbnVNYWMoJmNsaWVudCkpOwogI2Vsc2UKICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgog
fQogCi1SZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNy
ZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29u
c3QKK1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25z
dAogewogI2lmICFQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQ
b3B1cE1lbnVNYWMoY2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VhcmNoUG9w
dXBNZW51TWFjKCZjbGllbnQpKTsKICNlbHNlCiAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYK
QEAgLTkwMiwxMSArOTA1LDExIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRQYWludEVu
dGlyZUNvbnRlbnRzKCkgY29uc3QKICNlbmRpZgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6
YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFw
aGljc0xheWVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVy
KEZyYW1lJiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBOU1ZpZXcgKmRvY3VtZW50VmlldyA9IFtb
a2l0KGZyYW1lKSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld107CisgICAgTlNWaWV3ICpkb2N1bWVu
dFZpZXcgPSBbW2tpdCgmZnJhbWUpIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKICAgICBpZiAo
IVtkb2N1bWVudFZpZXcgaXNLaW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkgewogICAg
ICAgICAvLyBXZSBzaG91bGQgbmV2ZXIgYmUgYXR0YWNoaW5nIHdoZW4gd2UgZG9uJ3QgaGF2ZSBh
IFdlYkhUTUxWaWV3LgogICAgICAgICBBU1NFUlQoIWdyYXBoaWNzTGF5ZXIpOwpAQCAtOTIxLDcg
KzkyNCw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihG
cmFtZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoCiAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3Jh
cGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKQog
ewogICAgIC8vIEZJWE1FOiBJZiB3ZSB3YW50IHZpZXctcmVsYXRpdmUgcGFnZSBvdmVybGF5cyBp
biBMZWdhY3kgV2ViS2l0LCB0aGlzIHdvdWxkIGJlIHRoZSBwbGFjZSB0byBob29rIHRoZW0gdXAu
CiB9CkBAIC05NDEsNiArOTQ0LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQ29t
cG9zaXRpbmdMYXllckZsdXNoKCkKIH0KIAogI2lmIEVOQUJMRShWSURFTykKKwogYm9vbCBXZWJD
aHJvbWVDbGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZSkKIHsKICNpZiBQTEFURk9STShJT1MpCkBAIC05NjUsNyAr
OTY5LDEwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlk
ZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lCiAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsgICAgCiB9CiAKLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkKKyNlbmRpZiAvLyBFTkFCTEUoVklERU8pCisKKyNpZiBFTkFCTEUoVklE
RU8pICYmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQor
CiB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlcihIVE1M
TWVkaWFFbGVtZW50JiBlbGVtZW50KQogewogICAgIFttX3dlYlZpZXcgX3NldFVwUGxheWJhY2tD
b250cm9sc01hbmFnZXJGb3JNZWRpYUVsZW1lbnQ6ZWxlbWVudF07CkBAIC05NzUsNTQgKzk4Miw1
NSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigp
CiB7CiAgICAgW21fd2ViVmlldyBfY2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcl07CiB9Ci0j
ZW5kaWYgLy8gUExBVEZPUk0oTUFDKQotI2VuZGlmIC8vIEVOQUJMRShWSURFTykKKworI2VuZGlm
CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50Ojpz
dXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wg
d2l0aEtleWJvYXJkKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZv
ckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgYm9vbCB3aXRoS2V5Ym9hcmQpCiB7CiAg
ICAgU0VMIHNlbGVjdG9yID0gQHNlbGVjdG9yKHdlYlZpZXc6c3VwcG9ydHNGdWxsU2NyZWVuRm9y
RWxlbWVudDp3aXRoS2V5Ym9hcmQ6KTsKICAgICBpZiAoW1ttX3dlYlZpZXcgVUlEZWxlZ2F0ZV0g
cmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkKLSAgICAgICAgcmV0dXJuIENhbGxVSURlbGVn
YXRlUmV0dXJuaW5nQm9vbGVhbihmYWxzZSwgbV93ZWJWaWV3LCBzZWxlY3Rvciwga2l0KGNvbnN0
X2Nhc3Q8V2ViQ29yZTo6RWxlbWVudCo+KGVsZW1lbnQpKSwgd2l0aEtleWJvYXJkKTsKKyAgICAg
ICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVhbihmYWxzZSwgbV93ZWJWaWV3
LCBzZWxlY3Rvciwga2l0KGNvbnN0X2Nhc3Q8V2ViQ29yZTo6RWxlbWVudCo+KCZlbGVtZW50KSks
IHdpdGhLZXlib2FyZCk7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICByZXR1cm4gW21fd2ViVmll
dyBfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDpjb25zdF9jYXN0PFdlYkNvcmU6OkVsZW1l
bnQqPihlbGVtZW50KSB3aXRoS2V5Ym9hcmQ6d2l0aEtleWJvYXJkXTsKKyAgICByZXR1cm4gW21f
d2ViVmlldyBfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDpjb25zdF9jYXN0PFdlYkNvcmU6
OkVsZW1lbnQqPigmZWxlbWVudCkgd2l0aEtleWJvYXJkOndpdGhLZXlib2FyZF07CiAjZWxzZQog
ICAgIHJldHVybiBOTzsKICNlbmRpZgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBT
RUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
Omxpc3RlbmVyOik7CiAgICAgaWYgKFtbbV93ZWJWaWV3IFVJRGVsZWdhdGVdIHJlc3BvbmRzVG9T
ZWxlY3RvcjpzZWxlY3Rvcl0pIHsKLSAgICAgICAgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyKiBs
aXN0ZW5lciA9IFtbV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aEVsZW1l
bnQ6ZWxlbWVudF07Ci0gICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3Is
IGtpdChlbGVtZW50KSwgbGlzdGVuZXIpOworICAgICAgICBXZWJLaXRGdWxsU2NyZWVuTGlzdGVu
ZXIqIGxpc3RlbmVyID0gW1tXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRo
RWxlbWVudDomZWxlbWVudF07CisgICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2Vs
ZWN0b3IsIGtpdCgmZWxlbWVudCksIGxpc3RlbmVyKTsKICAgICAgICAgW2xpc3RlbmVyIHJlbGVh
c2VdOwogICAgIH0KICNpZiAhUExBVEZPUk0oSU9TKQogICAgIGVsc2UKLSAgICAgICAgW21fd2Vi
VmlldyBfZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDplbGVtZW50XTsKKyAgICAgICAgW21fd2Vi
VmlldyBfZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDomZWxlbWVudF07CiAjZW5kaWYKIH0KIAot
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBl
bGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChF
bGVtZW50JiBlbGVtZW50KQogewogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3
OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDpsaXN0ZW5lcjopOwogICAgIGlmIChbW21fd2ViVmll
dyBVSURlbGVnYXRlXSByZXNwb25kc1RvU2VsZWN0b3I6c2VsZWN0b3JdKSB7Ci0gICAgICAgIFdl
YktpdEZ1bGxTY3JlZW5MaXN0ZW5lciogbGlzdGVuZXIgPSBbW1dlYktpdEZ1bGxTY3JlZW5MaXN0
ZW5lciBhbGxvY10gaW5pdFdpdGhFbGVtZW50OmVsZW1lbnRdOwotICAgICAgICBDYWxsVUlEZWxl
Z2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBraXQoZWxlbWVudCksIGxpc3RlbmVyKTsKKyAgICAg
ICAgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyKiBsaXN0ZW5lciA9IFtbV2ViS2l0RnVsbFNjcmVl
bkxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aEVsZW1lbnQ6JmVsZW1lbnRdOworICAgICAgICBDYWxs
VUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBraXQoJmVsZW1lbnQpLCBsaXN0ZW5lcik7
CiAgICAgICAgIFtsaXN0ZW5lciByZWxlYXNlXTsKICAgICB9CiAjaWYgIVBMQVRGT1JNKElPUykK
ICAgICBlbHNlCi0gICAgICAgIFttX3dlYlZpZXcgX2V4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDpl
bGVtZW50XTsKKyAgICAgICAgW21fd2ViVmlldyBfZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50OiZl
bGVtZW50XTsKICNlbmRpZgogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQog
CiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCisKIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojp3cmFw
Q3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBWZWN0b3I8dWludDhfdD4mIHdy
YXBwZWRLZXkpIGNvbnN0CiB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IG1hc3RlcktleTsKQEAgLTEw
NDgsOSArMTA1NiwxMSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6dW53cmFwQ3J5cHRvS2V5KGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgd3JhcHBlZEtleSwgVmVjdG9yPAogCiAgICAgcmV0dXJuIHVu
d3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkobWFzdGVyS2V5LCB3cmFwcGVkS2V5LCBrZXkpOwogfQor
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQorCiB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6aGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKFdlYkNvcmU6OkZyYW1lU2VsZWN0
aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0ZWxlcGhvbmVOdW1iZXJzLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQpCiB7CiAgICAgW21fd2ViVmlldyBfc2VsZWN0
aW9uU2VydmljZUNvbnRyb2xsZXJdLmhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhzZWxlY3Rp
b24sIHRlbGVwaG9uZU51bWJlcnMsIHBvaW50KTsKQEAgLTEwNjQsNiArMTA3NCw3IEBAIGJvb2wg
V2ViQ2hyb21lQ2xpZW50OjpoYXNSZWxldmFudFNlbGVjdGlvblNlcnZpY2VzKGJvb2wgaXNUZXh0
T25seSkgY29uc3QKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdF
VCkgJiYgIVBMQVRGT1JNKElPUykKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFkZFBsYXliYWNr
VGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAgICBbbV93ZWJWaWV3
IF9hZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudDpjb250ZXh0SWRdOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggYmViN2IzMDljYTZjZGQ4MzNjZGFmZGIwNGZiMTky
YTRkY2IyNjRkNS4uMzhhNGNlY2IxNzYxMTQxN2Y3OThlODg0ZjA0ZWFiOTJiMzEyNDJjZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC0zMDIsMTQgKzMwMiwxNCBAQCAr
IChSZWY8V2ViQ29yZTo6RnJhbWU+KV9jcmVhdGVGcmFtZVdpdGhQYWdlOihQYWdlKilwYWdlIGZy
YW1lTmFtZTooY29uc3QgU3RyaW5nJgogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBraXQocGFnZSk7
CiAKICAgICBXZWJGcmFtZSAqZnJhbWUgPSBbW3NlbGYgYWxsb2NdIF9pbml0V2l0aFdlYkZyYW1l
VmlldzpmcmFtZVZpZXcgd2ViVmlldzp3ZWJWaWV3XTsKLSAgICBSZWY8V2ViQ29yZTo6RnJhbWU+
IGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZSwgb3duZXJFbGVtZW50LCBuZXcgV2ViRnJh
bWVMb2FkZXJDbGllbnQoZnJhbWUpKTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVh
dGUocGFnZSwgb3duZXJFbGVtZW50LCBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQoZnJhbWUpKTsK
ICAgICBbZnJhbWUgcmVsZWFzZV07CiAgICAgZnJhbWUtPl9wcml2YXRlLT5jb3JlRnJhbWUgPSBj
b3JlRnJhbWUucHRyKCk7CiAKICAgICBjb3JlRnJhbWUuZ2V0KCkudHJlZSgpLnNldE5hbWUobmFt
ZSk7CiAgICAgaWYgKG93bmVyRWxlbWVudCkgewogICAgICAgICBBU1NFUlQob3duZXJFbGVtZW50
LT5kb2N1bWVudCgpLmZyYW1lKCkpOwotICAgICAgICBvd25lckVsZW1lbnQtPmRvY3VtZW50KCku
ZnJhbWUoKS0+dHJlZSgpLmFwcGVuZENoaWxkKGNvcmVGcmFtZS5wdHIoKSk7CisgICAgICAgIG93
bmVyRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpLT50cmVlKCkuYXBwZW5kQ2hpbGQoY29yZUZy
YW1lLmdldCgpKTsKICAgICB9CiAKICAgICBjb3JlRnJhbWUuZ2V0KCkuaW5pdCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggMTRlOTcxMGQxNWQ3OWJmM2I1
NWM0MDA5ZTU2Njg0YTBlZTNkNzgzNy4uMjk4MTUzZGYzYzRhZDdmNzRhYjI1Zjk4MDliZmRkYjIy
ZDgwNzM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC01
OTMsNyArNTkzLDcgQEAgTlBFcnJvciBQbHVnaW5WaWV3OjpkZXN0cm95U3RyZWFtKE5QU3RyZWFt
KiBzdHJlYW0sIE5QUmVhc29uIHJlYXNvbikKIHZvaWQgUGx1Z2luVmlldzo6c3RhdHVzKGNvbnN0
IGNoYXIqIG1lc3NhZ2UpCiB7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX3BhcmVudEZyYW1lLT5w
YWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQobV9wYXJlbnRG
cmFtZS5nZXQoKSwgU3RyaW5nOjpmcm9tVVRGOChtZXNzYWdlKSk7CisgICAgICAgIHBhZ2UtPmNo
cm9tZSgpLnNldFN0YXR1c2JhclRleHQoKm1fcGFyZW50RnJhbWUsIFN0cmluZzo6ZnJvbVVURjgo
bWVzc2FnZSkpOwogfQogCiBOUEVycm9yIFBsdWdpblZpZXc6OnNldFZhbHVlKE5QUFZhcmlhYmxl
IHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSkKQEAgLTc5Myw3ICs3OTMsNyBAQCBQbHVnaW5WaWV3OjpQ
bHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2lu
UGFja2FnZSogcAogdm9pZCBQbHVnaW5WaWV3Ojpmb2N1c1BsdWdpbkVsZW1lbnQoKQogewogICAg
IGlmIChQYWdlKiBwYWdlID0gbV9wYXJlbnRGcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5m
b2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChtX2VsZW1lbnQsIG1fcGFyZW50RnJh
bWUpOworICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudCht
X2VsZW1lbnQsICptX3BhcmVudEZyYW1lKTsKICAgICBlbHNlCiAgICAgICAgIG1fcGFyZW50RnJh
bWUtPmRvY3VtZW50KCktPnNldEZvY3VzZWRFbGVtZW50KG1fZWxlbWVudCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApp
bmRleCBhNzczYjFhYjE0MTc0ZTAyMGM2MmQ5ZDA0Nzg2ZDJhMjgyMWNiNzg0Li5hYjY1MTQ0NGY5
MjE5YTY3NzZiZjg3ZWIxOGIyODFjYmQyNDEyMGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTE4OSwxNSArMTg5
LDE1IEBAIHN0YXRpYyBDT01QdHI8SVByb3BlcnR5QmFnPiBjcmVhdGVXaW5kb3dGZWF0dXJlc1By
b3BlcnR5QmFnKGNvbnN0IFdpbmRvd0ZlYXR1cmVzCiAgICAgcmV0dXJuIENPTVB0cjxJUHJvcGVy
dHlCYWc+KEFkb3B0Q09NLCBDT01Qcm9wZXJ0eUJhZzxDT01WYXJpYW50Pjo6YWRvcHQobWFwKSk7
CiB9CiAKLVBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwg
Y29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywg
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbikKK1BhZ2UqIFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVz
dCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlv
biYgbmF2aWdhdGlvbkFjdGlvbikKIHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IGRlbGVn
YXRlID0gdWlEZWxlZ2F0ZSgpOwogICAgIGlmICghZGVsZWdhdGUpCiAgICAgICAgIHJldHVybiAw
OwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQo
KSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkp
Ci0gICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7Cisg
ICAgaWYgKGZyYW1lLmRvY3VtZW50KCkgJiYgZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVu
dEZ1bGxTY3JlZW5FbGVtZW50KCkpCisgICAgICAgIGZyYW1lLmRvY3VtZW50KCktPndlYmtpdENh
bmNlbEZ1bGxTY3JlZW4oKTsKICNlbmRpZgogCiAgICAgQ09NUHRyPFdlYk11dGFibGVVUkxSZXF1
ZXN0PiByZXF1ZXN0ID0gYWRvcHRDT00oV2ViTXV0YWJsZVVSTFJlcXVlc3Q6OmNyZWF0ZUluc3Rh
bmNlKFJlc291cmNlUmVxdWVzdChuYXZpZ2F0aW9uQWN0aW9uLnVybCgpKSkpOwpAQCAtMzYxLDEy
ICszNjEsMTIgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUq
IGZyYW1lKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lJiBmcmFtZSkKIHsKICAgICBCT09MIHJlc3Vs
dCA9IFRSVUU7CiAgICAgSVdlYlVJRGVsZWdhdGUqIHVpOwogICAgIGlmIChTVUNDRUVERUQobV93
ZWJWaWV3LT51aURlbGVnYXRlKCZ1aSkpICYmIHVpKSB7Ci0gICAgICAgIFdlYkZyYW1lKiB3ZWJG
cmFtZSA9IGtpdChmcmFtZSk7CisgICAgICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IGtpdCgmZnJh
bWUpOwogICAgICAgICB1aS0+cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2Uo
bV93ZWJWaWV3LCBCU3RyaW5nKG1lc3NhZ2UpLCB3ZWJGcmFtZSwgJnJlc3VsdCk7CiAgICAgICAg
IHVpLT5SZWxlYXNlKCk7CiAgICAgfQpAQCAtMzkzLDE0ICszOTMsMTQgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmNsb3NlV2luZG93U29vbigpCiAgICAgbV93ZWJWaWV3LT5jbG9zZVdpbmRvd1Nv
b24oKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFt
ZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZh
U2NyaXB0QWxlcnQoRnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgQ09NUHRy
PElXZWJVSURlbGVnYXRlPiB1aTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxl
Z2F0ZSgmdWkpKSkKICAgICAgICAgdWktPnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3Nh
Z2UobV93ZWJWaWV3LCBCU3RyaW5nKG1lc3NhZ2UpKTsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQor
Ym9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQogewogICAgIEJPT0wgcmVzdWx0ID0gRkFMU0U7CiAgICAgQ09NUHRy
PElXZWJVSURlbGVnYXRlPiB1aTsKQEAgLTQwOSw3ICs0MDksNyBAQCBib29sIFdlYkNocm9tZUNs
aWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
CiAgICAgcmV0dXJuICEhcmVzdWx0OwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2
YVNjcmlwdFByb21wdChGcmFtZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1
bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKIHsKICAgICBDT01QdHI8SVdlYlVJ
RGVsZWdhdGU+IHVpOwogICAgIGlmIChGQUlMRUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aSkp
KQpAQCAtNTA4LDcgKzUwOCw3IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGllbnQ6
OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHZpZXdXaW5kb3c7CiB9CiAK
LXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3Qg
SW50U2l6ZSYpIGNvbnN0Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdl
ZChGcmFtZSYsIGNvbnN0IEludFNpemUmKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CkBAIC01NDAsNyArNTQwLDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVuYXZh
aWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFJlbmRlckVtYmVkZGVkT2JqZWMKICAgICByZXR1
cm4gdWlEZWxlZ2F0ZVByaXZhdGUzOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6dW5hdmFp
bGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlckVtYmVkZGVk
T2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJl
YXNvbikgY29uc3QKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWQoRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVu
YXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdAogewog
ICAgIEFTU0VSVF9VTlVTRUQocGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIHBsdWdpblVuYXZh
aWxhYmlsaXR5UmVhc29uID09IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5NaXNzaW5nKTsK
IApAQCAtNTUyLDcgKzU1Miw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBs
dWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVyRW1iCiAgICAgaWYgKCF1
aURlbGVnYXRlUHJpdmF0ZTMpCiAgICAgICAgIHJldHVybjsKIAotICAgIENPTVB0cjxJRE9NRWxl
bWVudD4gZShBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoZWxlbWVudCkpOwor
ICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZShBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5z
dGFuY2UoJmVsZW1lbnQpKTsKICAgICB1aURlbGVnYXRlUHJpdmF0ZTMtPmRpZFByZXNzTWlzc2lu
Z1BsdWdpbkJ1dHRvbihlLmdldCgpKTsKIH0KIApAQCAtNTYxLDIxICs1NjEsMjEgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlwLCBUZXh0RGly
ZWN0aW9uKQogICAgIG1fd2ViVmlldy0+c2V0VG9vbFRpcCh0b29sVGlwKTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpwcmludChGcmFtZSYgZnJhbWUpCiB7CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURl
bGVnYXRlOwogICAgIGlmIChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVn
YXRlKSkpCi0gICAgICAgIHVpRGVsZWdhdGUtPnByaW50RnJhbWUobV93ZWJWaWV3LCBraXQoZnJh
bWUpKTsKKyAgICAgICAgdWlEZWxlZ2F0ZS0+cHJpbnRGcmFtZShtX3dlYlZpZXcsIGtpdCgmZnJh
bWUpKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShG
cmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyLCBEYXRhYmFzZURl
dGFpbHMpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1l
JiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIsIERhdGFiYXNlRGV0YWls
cykKIHsKLSAgICBDT01QdHI8V2ViU2VjdXJpdHlPcmlnaW4+IG9yaWdpbihBZG9wdENPTSwgV2Vi
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUluc3RhbmNlKCZmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKSkpOworICAgIENPTVB0cjxXZWJTZWN1cml0eU9yaWdpbj4gb3JpZ2luKEFkb3B0
Q09NLCBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlSW5zdGFuY2UoJmZyYW1lLmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCkpKTsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdh
dGU7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUp
KSkgewogICAgICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGVQcml2YXRlPiB1aURlbGVnYXRlUHJp
dmF0ZShRdWVyeSwgdWlEZWxlZ2F0ZSk7CiAgICAgICAgIGlmICh1aURlbGVnYXRlUHJpdmF0ZSkK
LSAgICAgICAgICAgIHVpRGVsZWdhdGVQcml2YXRlLT5leGNlZWRlZERhdGFiYXNlUXVvdGEobV93
ZWJWaWV3LCBraXQoZnJhbWUpLCBvcmlnaW4uZ2V0KCksIEJTdHJpbmcoZGF0YWJhc2VJZGVudGlm
aWVyKSk7CisgICAgICAgICAgICB1aURlbGVnYXRlUHJpdmF0ZS0+ZXhjZWVkZWREYXRhYmFzZVF1
b3RhKG1fd2ViVmlldywga2l0KCZmcmFtZSksIG9yaWdpbi5nZXQoKSwgQlN0cmluZyhkYXRhYmFz
ZUlkZW50aWZpZXIpKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogcmVt
b3ZlIHRoaXMgd29ya2Fyb3VuZCBvbmNlIHNoaXBwaW5nIFNhZmFyaSBoYXMgdGhlIG5lY2Vzc2Fy
eSBkZWxlZ2F0ZSBpbXBsZW1lbnRlZC4KICAgICAgICAgICAgIFdDSEFSIHBhdGhbTUFYX1BBVEhd
OwpAQCAtNjEzLDcgKzYxMyw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkTWF4QXBw
Q2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEoU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNo
ZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90KQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC03MTcsMTIgKzcxNywxMiBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6c2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpCiAgICAgbV93
ZWJWaWV3LT5zZXRMYXN0Q3Vyc29yKDo6R2V0Q3Vyc29yKCkpOwogfQogCi12b2lkIFdlYkNocm9t
ZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xh
eWVyKiBncmFwaGljc0xheWVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFw
aGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBt
X3dlYlZpZXctPnNldFJvb3RDaGlsZExheWVyKGdyYXBoaWNzTGF5ZXIpOwogfQogCi12b2lkIFdl
YkNocm9tZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lKiwgR3Jh
cGhpY3NMYXllciopCit2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlHcmFw
aGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopCiB7CiAgICAgLy8gRklYTUU6IElmIHdl
IHdhbnQgdmlldy1yZWxhdGl2ZSBwYWdlIG92ZXJsYXlzIGluIExlZ2FjeSBXZWJLaXQgb24gV2lu
ZG93cywgdGhpcyB3b3VsZCBiZSB0aGUgcGxhY2UgdG8gaG9vayB0aGVtIHVwLgogfQpAQCAtNzUz
LDcgKzc1Myw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c1ZpZGVvRnVsbHNjcmVl
bihIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxl
bWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYg
dmlkZW9FbGVtZW50LCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUp
CiB7CiAgICAgbV93ZWJWaWV3LT5lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCh2
aWRlb0VsZW1lbnQpOwogfQpAQCAtNzgxLDU5ICs3ODEsNjEgQEAgYm9vbCBXZWJDaHJvbWVDbGll
bnQ6Omhhc09wZW5lZFBvcHVwKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlZlB0
cjxQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCogY2xpZW50KSBjb25zdAorUmVmUHRyPFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50Ojpj
cmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVXaW4oY2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBQb3B1cE1lbnVXaW4oJmNsaWVudCkpOwogfQogCi1SZWZQdHI8U2VhcmNoUG9wdXBN
ZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51V2luKGNsaWVudCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51V2luKCZjbGllbnQpKTsKIH0K
IAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBw
b3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgcmVx
dWVzdGluZ0tleWJvYXJkQWNjZXNzKQorCitib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNG
dWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50LCBib29sIHJlcXVlc3Rp
bmdLZXlib2FyZEFjY2VzcykKIHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdh
dGU7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUp
KSkgewogICAgICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGVQcml2YXRlND4gdWlEZWxlZ2F0ZVBy
aXZhdGU0KFF1ZXJ5LCB1aURlbGVnYXRlKTsKICAgICAgICAgQk9PTCBzdXBwb3J0cyA9IEZBTFNF
OwotICAgICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00sIERPTUVs
ZW1lbnQ6OmNyZWF0ZUluc3RhbmNlKGNvbnN0X2Nhc3Q8RWxlbWVudCo+KGVsZW1lbnQpKSk7Cisg
ICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxlbWVudChBZG9wdENPTSwgRE9NRWxlbWVu
dDo6Y3JlYXRlSW5zdGFuY2UoY29uc3RfY2FzdDxFbGVtZW50Kj4oJmVsZW1lbnQpKSk7CiAKICAg
ICAgICAgaWYgKHVpRGVsZWdhdGVQcml2YXRlNCAmJiBTVUNDRUVERUQodWlEZWxlZ2F0ZVByaXZh
dGU0LT5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGRvbUVsZW1lbnQuZ2V0KCksIHJlcXVl
c3RpbmdLZXlib2FyZEFjY2VzcywgJnN1cHBvcnRzKSkpCiAgICAgICAgICAgICByZXR1cm4gc3Vw
cG9ydHM7CiAgICAgfQogCi0gICAgcmV0dXJuIG1fd2ViVmlldy0+c3VwcG9ydHNGdWxsU2NyZWVu
Rm9yRWxlbWVudChlbGVtZW50LCByZXF1ZXN0aW5nS2V5Ym9hcmRBY2Nlc3MpOworICAgIHJldHVy
biBtX3dlYlZpZXctPnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoJmVsZW1lbnQsIHJlcXVl
c3RpbmdLZXlib2FyZEFjY2Vzcyk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1
bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogewogICAgIENP
TVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2Vi
Vmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CiAgICAgICAgIENPTVB0cjxJV2ViVUlE
ZWxlZ2F0ZVByaXZhdGU0PiB1aURlbGVnYXRlUHJpdmF0ZTQoUXVlcnksIHVpRGVsZWdhdGUpOwot
ICAgICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00sIERPTUVsZW1l
bnQ6OmNyZWF0ZUluc3RhbmNlKGVsZW1lbnQpKTsKKyAgICAgICAgQ09NUHRyPElET01FbGVtZW50
PiBkb21FbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZSgmZWxlbWVu
dCkpOwogICAgICAgICBpZiAodWlEZWxlZ2F0ZVByaXZhdGU0ICYmIFNVQ0NFRURFRCh1aURlbGVn
YXRlUHJpdmF0ZTQtPmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZG9tRWxlbWVudC5nZXQoKSkp
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0gCiAKLSAgICBtX3dlYlZpZXctPnNldEZ1bGxT
Y3JlZW5FbGVtZW50KGVsZW1lbnQpOworICAgIG1fd2ViVmlldy0+c2V0RnVsbFNjcmVlbkVsZW1l
bnQoJmVsZW1lbnQpOwogICAgIG1fd2ViVmlldy0+ZnVsbFNjcmVlbkNvbnRyb2xsZXIoKS0+ZW50
ZXJGdWxsU2NyZWVuKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0
RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBDT01QdHI8SVdl
YlVJRGVsZWdhdGU+IHVpRGVsZWdhdGU7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVp
RGVsZWdhdGUoJnVpRGVsZWdhdGUpKSkgewogICAgICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGVQ
cml2YXRlND4gdWlEZWxlZ2F0ZVByaXZhdGU0KFF1ZXJ5LCB1aURlbGVnYXRlKTsKLSAgICAgICAg
Q09NUHRyPElET01FbGVtZW50PiBkb21FbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVh
dGVJbnN0YW5jZShlbGVtZW50KSk7CisgICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxl
bWVudChBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoJmVsZW1lbnQpKTsKICAg
ICAgICAgaWYgKHVpRGVsZWdhdGVQcml2YXRlNCAmJiBTVUNDRUVERUQodWlEZWxlZ2F0ZVByaXZh
dGU0LT5leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoZG9tRWxlbWVudC5nZXQoKSkpKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEFTU0VSVChlbGVtZW50ID09IG1fd2ViVmlldy0+
ZnVsbFNjcmVlbkVsZW1lbnQoKSk7CisgICAgQVNTRVJUKCZlbGVtZW50ID09IG1fd2ViVmlldy0+
ZnVsbFNjcmVlbkVsZW1lbnQoKSk7CiAgICAgbV93ZWJWaWV3LT5mdWxsU2NyZWVuQ29udHJvbGxl
cigpLT5leGl0RnVsbFNjcmVlbigpOwogfQorCiAjZW5kaWYKIAogdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OkFYU3RhcnRGcmFtZUxvYWQoKQpAQCAtODUyLDEwICs4NTQsMTAgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OkFYRmluaXNoRnJhbWVMb2FkKCkKICAgICAgICAgZGVsZWdhdGUtPmZpcmVGcmFt
ZUxvYWRGaW5pc2hlZEV2ZW50cygpOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxk
VXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyogZnJhbWVWaWV3KSBj
b25zdAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1l
Vmlldyhjb25zdCBGcmFtZVZpZXcmIGZyYW1lVmlldykgY29uc3QKIHsKICNpZiAhVVNFKENBSVJP
KQotICAgIHJldHVybiBmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5mcmFtZSgpLmlzTWFpbkZyYW1l
KCk7CisgICAgcmV0dXJuIGZyYW1lVmlldy5mcmFtZSgpLmlzTWFpbkZyYW1lKCk7CiAjZWxzZQog
ICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA5Mjg3MmI0MWMxMmZiMzE1ZTU0MWVj
YmRiOTVkYmNiMTU2NjI3MmRjLi4xODMxMmQ2YmM0NGM2N2NkODQxMjQwMTkwOGZiZDY0MThlZTYy
NTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaApAQCAtMzcsMTM3ICszNywxMzcgQEAgY2xhc3MgV2ViRGVza3RvcE5vdGlmaWNh
dGlvbnNEZWxlZ2F0ZTsKIAogaW50ZXJmYWNlIElXZWJVSURlbGVnYXRlOwogCi1jbGFzcyBXZWJD
aHJvbWVDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6Q2hyb21lQ2xpZW50IHsKK2NsYXNzIFdlYkNo
cm9tZUNsaWVudCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpDaHJvbWVDbGllbnQgewogcHVibGlj
OgogICAgIFdlYkNocm9tZUNsaWVudChXZWJWaWV3Kik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2hy
b21lRGVzdHJveWVkKCk7CisgICAgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKSBmaW5hbDsKIAotICAg
IHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwot
ICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKTsKKyAgICB2b2lkIHNl
dFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CisgICAgV2ViQ29y
ZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKSBmaW5hbDsKICAgICAKLSAgICB2aXJ0dWFsIFdlYkNv
cmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVj
dCgpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7Ci0gICAgdmlydHVhbCB2b2lk
IHVuZm9jdXMoKTsKKyAgICB2b2lkIGZvY3VzKCkgZmluYWw7CisgICAgdm9pZCB1bmZvY3VzKCkg
ZmluYWw7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuVGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGly
ZWN0aW9uKTsKLSAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0
aW9uKTsKKyAgICBib29sIGNhblRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbikgZmlu
YWw7CisgICAgdm9pZCB0YWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pIGZpbmFsOwog
Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChXZWJDb3JlOjpFbGVtZW50
Kik7Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUq
KTsKKyAgICB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChXZWJDb3JlOjpFbGVtZW50KikgZmlu
YWw7CisgICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKikgZmluYWw7
CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFt
ZSosIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5k
b3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2hvdygpOworICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3Jl
OjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3Jl
OjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBmaW5h
bDsKKyAgICB2b2lkIHNob3coKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5Nb2Rh
bCgpOwotICAgIHZpcnR1YWwgdm9pZCBydW5Nb2RhbCgpOworICAgIGJvb2wgY2FuUnVuTW9kYWwo
KSBmaW5hbDsKKyAgICB2b2lkIHJ1bk1vZGFsKCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wpOwotICAgIHZpcnR1YWwgYm9vbCB0b29sYmFyc1Zpc2li
bGUoKTsKKyAgICB2b2lkIHNldFRvb2xiYXJzVmlzaWJsZShib29sKSBmaW5hbDsKKyAgICBib29s
IHRvb2xiYXJzVmlzaWJsZSgpIGZpbmFsOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0
dXNiYXJWaXNpYmxlKGJvb2wpOwotICAgIHZpcnR1YWwgYm9vbCBzdGF0dXNiYXJWaXNpYmxlKCk7
CisgICAgdm9pZCBzZXRTdGF0dXNiYXJWaXNpYmxlKGJvb2wpIGZpbmFsOworICAgIGJvb2wgc3Rh
dHVzYmFyVmlzaWJsZSgpIGZpbmFsOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxi
YXJzVmlzaWJsZShib29sKTsKLSAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyc1Zpc2libGUoKTsK
KyAgICB2b2lkIHNldFNjcm9sbGJhcnNWaXNpYmxlKGJvb2wpIGZpbmFsOworICAgIGJvb2wgc2Ny
b2xsYmFyc1Zpc2libGUoKSBmaW5hbDsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TWVudWJh
clZpc2libGUoYm9vbCk7Ci0gICAgdmlydHVhbCBib29sIG1lbnViYXJWaXNpYmxlKCk7CisgICAg
dm9pZCBzZXRNZW51YmFyVmlzaWJsZShib29sKSBmaW5hbDsKKyAgICBib29sIG1lbnViYXJWaXNp
YmxlKCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpOworICAg
IHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGFkZE1l
c3NhZ2VUb0NvbnNvbGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29u
c3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNv
bHVtbk51bWJlciwgY29uc3QgV1RGOjpTdHJpbmcmIHVybCk7CisgICAgdm9pZCBhZGRNZXNzYWdl
VG9Db25zb2xlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFdU
Rjo6U3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5O
dW1iZXIsIGNvbnN0IFdURjo6U3RyaW5nJiB1cmwpIGZpbmFsOwogCi0gICAgdmlydHVhbCBib29s
IGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpOwotICAgIHZpcnR1YWwgYm9vbCBydW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIFdlYkNv
cmU6OkZyYW1lKiBmcmFtZSk7CisgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoKSBmaW5hbDsKKyAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBX
VEY6OlN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKIAotICAgIHZpcnR1
YWwgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKTsKKyAgICB2b2lkIGNsb3NlV2luZG93U29vbigpIGZp
bmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFt
ZSosIGNvbnN0IFdURjo6U3RyaW5nJik7Ci0gICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRD
b25maXJtKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAgICB2aXJ0dWFs
IGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVmYXVsdFZhbHVlLCBXVEY6OlN0cmlu
ZyYgcmVzdWx0KTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBXVEY6
OlN0cmluZyYpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lJiwg
Y29uc3QgV1RGOjpTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJt
KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV1RGOjpTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHJ1
bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXVEY6OlN0cmluZyYgbWVz
c2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgV1RGOjpTdHJpbmcmIHJlc3Vs
dCkgZmluYWw7CisgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFdURjo6U3RyaW5nJikg
ZmluYWw7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OktleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlN
b2RlKCk7CisgICAgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5h
bDsKIAotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmll
dyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVD
b250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHZpcnR1
YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
Y2xpcFJlY3QpOworICAgIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIGludmFsaWRhdGVDb250ZW50
c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOworICAgIHZvaWQg
c2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0
KSBmaW5hbDsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9Sb290Vmll
dyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0OwotICAgIHZpcnR1YWwgV2ViQ29yZTo6
SW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdDsK
LSAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25z
dDsKLSAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSos
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdDsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBz
Y3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3QgZmluYWw7Cisg
ICAgV2ViQ29yZTo6SW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSBjb25zdCBmaW5hbDsKKyAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xp
ZW50KCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6
OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0IGZpbmFsOwogCi0gICAgdmly
dHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1
bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVW5h
dmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmpl
Y3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQg
dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJDb3Jl
OjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0
OworICAgIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBmaW5hbCB7IH0KKyAg
ICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1
bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSBmaW5hbDsKKyAgICBib29sIHNob3VsZFVuYXZh
aWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0
OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7CisgICAgdm9pZCB1bmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVudCYsIFdlYkNvcmU6OlJl
bmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmlu
YWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXVEY6OlN0cmluZyYsIFdl
YkNvcmU6OlRleHREaXJlY3Rpb24pOworICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXVEY6OlN0
cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24pIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lk
IHByaW50KFdlYkNvcmU6OkZyYW1lKik7CisgICAgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSYp
IGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3Jl
OjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKTsK
KyAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdU
Rjo6U3RyaW5nJiwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKIAotICAgIHZpcnR1
YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpOwotICAg
IHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKTsKKyAgICB2b2lkIHJl
YWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkgZmluYWw7CisgICAgdm9p
ZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9p
ZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciYpOwot
ICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmlu
Zz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpOworICAgIHZvaWQgcnVuT3BlblBhbmVsKFdl
YkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6RmlsZUNob29zZXImKSBmaW5hbDsKKyAgICB2b2lkIGxv
YWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJ
Y29uTG9hZGVyJikgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdl
YkNvcmU6OkN1cnNvciYpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1v
dXNlTW92ZXMoYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1cnJl
bnRDdXJzb3IoKTsKKyAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBm
aW5hbDsKKyAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSBmaW5h
bDsKKyAgICB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKSBmaW5hbDsKIAog
ICAgIC8vIFBhc3MgMCBhcyB0aGUgR3JhcGhpY3NMYXllciB0byBkZXRhdGNoIHRoZSByb290IGxh
eWVyLgotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpG
cmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKLSAgICB2b2lkIGF0dGFjaFZpZXdPdmVy
bGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZy
YW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOworICAgIHZvaWQgYXR0YWNoVmll
d092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIGZpbmFsOwogICAgIC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgbmV4
dCB0aW1lIGNvbnRlbnQgaXMgZHJhd24gdG8gdGhlIHdpbmRvdywKICAgICAvLyB0aGUgY2hhbmdl
cyBhcHBlYXIgb24gdGhlIHNjcmVlbiBpbiBzeW5jaHJvbnkgd2l0aCB1cGRhdGVzIHRvIEdyYXBo
aWNzTGF5ZXJzLgotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hy
b25pemF0aW9uKCkgeyB9CisgICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25p
emF0aW9uKCkgZmluYWwgeyB9CiAgICAgLy8gU2V0cyBhIGZsYWcgdG8gc3BlY2lmeSB0aGF0IHRo
ZSB2aWV3IG5lZWRzIHRvIGJlIHVwZGF0ZWQsIHNvIHdlIG5lZWQKICAgICAvLyB0byBkbyBhbiBl
YWdlciBsYXlvdXQgYmVmb3JlIHRoZSBkcmF3aW5nLgotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVs
ZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xh
eWVyRmx1c2goKSBmaW5hbDsKIAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKEFWRk9VTkRBVElP
TikKLSAgICBXZWJDb3JlOjpHcmFwaGljc0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2aWNlQWRh
cHRlcigpIGNvbnN0IG92ZXJyaWRlOworICAgIFdlYkNvcmU6OkdyYXBoaWNzRGV2aWNlQWRhcHRl
ciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAotICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNv
bnN0IHsgfQorICAgIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSBjb25zdCBmaW5hbCB7IH0KIAogI2lmIEVOQUJMRShWSURFTykKLSAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpOwotICAgIHZp
cnR1YWwgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhU
TUxWaWRlb0VsZW1lbnQmKTsKKyAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgZmluYWw7Cisg
ICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1M
VmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlKSBmaW5hbDsKKyAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQotICAg
IHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50KiBub3RpZmljYXRpb25QcmVzZW50
ZXIoKSBjb25zdCB7IHJldHVybiByZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vdGlmaWNhdGlv
bkNsaWVudCo+KG1fbm90aWZpY2F0aW9uc0RlbGVnYXRlLmdldCgpKTsgfQorICAgIFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbkNsaWVudCogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQqPiht
X25vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5nZXQoKSk7IH0KICNlbmRpZgogCi0gICAgdmlydHVhbCBi
b29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7Ci0gICAgdmlydHVhbCBi
b29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKLSAg
ICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFJlZlB0
cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVD
bGllbnQqKSBjb25zdDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25z
dDsKKyAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgZmluYWw7
CisgICAgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9u
KCkgZmluYWw7CisgICAgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0IGZpbmFsOworICAgIFJl
ZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1l
bnVDbGllbnQmKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29u
c3QgZmluYWw7CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgdmlydHVhbCBib29s
IHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJv
b2wgd2l0aEtleWJvYXJkKTsKLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxl
bWVudChXZWJDb3JlOjpFbGVtZW50Kik7Ci0gICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Kik7CisgICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3Jl
ZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmLCBib29sIHdpdGhLZXlib2FyZCkg
ZmluYWw7CisgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1l
bnQmKSBmaW5hbDsKKyAgICB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpF
bGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAotICAgIHZvaWQgd2hlZWxFdmVudEhhbmRsZXJzQ2hh
bmdlZChib29sKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIHdoZWVsRXZlbnRIYW5kbGVyc0NoYW5n
ZWQoYm9vbCkgZmluYWwgeyB9CiAKICAgICBXZWJWaWV3KiB3ZWJWaWV3KCkgeyByZXR1cm4gbV93
ZWJWaWV3OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgQVhTdGFydEZyYW1lTG9hZCgpOwotICAgIHZp
cnR1YWwgdm9pZCBBWEZpbmlzaEZyYW1lTG9hZCgpOworICAgIHZvaWQgQVhTdGFydEZyYW1lTG9h
ZCgpIGZpbmFsOworICAgIHZvaWQgQVhGaW5pc2hGcmFtZUxvYWQoKSBmaW5hbDsKIAotICAgIGJv
b2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1l
VmlldyopIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9y
RnJhbWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyYpIGNvbnN0IGZpbmFsOwogCiBwcml2
YXRlOgogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCmluZGV4IDEwYjVjZWVkYzNlNzBkNTBhZGMyNzgyMTE5NDhlZjkwMGU2MGJjNmYuLjNk
MTNjZDQ0NmM2YWY3N2EwZWNmMGVlZWQ4YzFjOGI1N2I2OWFhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKQEAgLTEwMjUsNyArMTAyNSw3IEBAIFJlZlB0cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmNyZWF0ZUZyYW1lKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hCiAgICAgUmVm
UHRyPEZyYW1lPiBjaGlsZEZyYW1lID0gd2ViRnJhbWUtPmNyZWF0ZVN1YmZyYW1lV2l0aE93bmVy
RWxlbWVudChtX3dlYkZyYW1lLT53ZWJWaWV3KCksIGNvcmVGcmFtZS0+cGFnZSgpLCAmb3duZXJF
bGVtZW50KTsKIAogICAgIGNoaWxkRnJhbWUtPnRyZWUoKS5zZXROYW1lKG5hbWUpOwotICAgIGNv
cmVGcmFtZS0+dHJlZSgpLmFwcGVuZENoaWxkKGNoaWxkRnJhbWUpOworICAgIGNvcmVGcmFtZS0+
dHJlZSgpLmFwcGVuZENoaWxkKCpjaGlsZEZyYW1lKTsKICAgICBjaGlsZEZyYW1lLT5pbml0KCk7
CiAKICAgICBjb3JlRnJhbWUtPmxvYWRlcigpLmxvYWRVUkxJbnRvQ2hpbGRGcmFtZSh1cmwsIHJl
ZmVycmVyLCBjaGlsZEZyYW1lLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggNTE3NWYw
MDJkNjE3MmJlMTYwODAzZjQ3M2UxZGFlMmUwNDM2MWI1Ny4uOTM3MDE5ZGJjYzFjYWQ2MWUyYTJi
MDQ5NTU4NWJhNWNiZDAyZjQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTU4NTMsNyArNTg1
Myw3IEBAIEhSRVNVTFQgV2ViVmlldzo6c3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25O
YW1lKF9Jbl8gQlNUUiBhcHBsaWNhdGlvbk5hbWUsCiBIUkVTVUxUIFdlYlZpZXc6OmNsZWFyRm9j
dXNOb2RlKCkKIHsKICAgICBpZiAobV9wYWdlKQotICAgICAgICBtX3BhZ2UtPmZvY3VzQ29udHJv
bGxlcigpLnNldEZvY3VzZWRFbGVtZW50KDAsIDApOworICAgICAgICBtX3BhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIsIG1fcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkpOwogICAgIHJldHVybiBTX09LOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmNwcAppbmRleCBlMTE1NTI5MTA2NDcwMWI4OGI3YjMyYWJjZDFmMmU2NTQzM2Uy
ODllLi40MjFjNzQ1N2M5MDNiNDdlMmUxYTdiNDg4OTg4MWY1N2MzMGVhYzRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xs
aW5nVHJlZS5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6
OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRAog
ICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3Rz
U2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwpOwogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdU
cmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwg
U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxTY3JvbGxpbmdUcmVlTm9kZT4gUmVtb3RlU2Ny
b2xsaW5nVHJlZTo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9k
ZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7CiAgICAgc3dpdGNoIChub2RlVHlwZSkg
ewogICAgIGNhc2UgRnJhbWVTY3JvbGxpbmdOb2RlOgpAQCAtMTI0LDE0ICsxMjQsMTUgQEAgUGFz
c1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3JlYXRlU2Ny
b2xsaW5nVHJlZU5vZGUoU2Nyb2wKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVJT1M6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICNlbHNlCiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg
YnJlYWs7CiAjZW5kaWYKICAgICBjYXNlIEZpeGVkTm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9s
bGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICBjYXNlIFN0aWNr
eU5vZGU6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZTo6Y3JlYXRlKCp0
aGlzLCBub2RlSUQpOwogICAgIH0KLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0
aGlzLCBub2RlSUQpOwogfQogCiB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OmN1cnJlbnRTbmFw
UG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIHVuc2lnbmVkIGhv
cml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAppbmRleCBkNjViMmY1
ZWQ2ZGRmNTdlYzQ0MGRmNDkwZDJlMTE2OGM4ZWMwNWM5Li43MzE4Y2NjODE0Y2E1NzE2ZGM3MGMy
NGI2YzQ0MTc4ZDI1NmNkYTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
U2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaApAQCAtMzYsNyArMzYsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eTsKIAotY2xhc3MgUmVtb3RlU2Nyb2xsaW5nVHJlZSA6IHB1YmxpYyBXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlIHsKK2NsYXNzIFJlbW90ZVNjcm9sbGluZ1RyZWUgZmluYWwgOiBwdWJsaWMgV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxSZW1vdGVTY3JvbGxp
bmdUcmVlPiBjcmVhdGUoUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSYpOwogICAgIHZp
cnR1YWwgflJlbW90ZVNjcm9sbGluZ1RyZWUoKTsKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kU2Nyb2xsKCkgb3ZlcnJpZGU7CiAjZW5k
aWYKIAotICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNj
cm9sbGluZ1RyZWVOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVUeXBlLCBXZWJDb3JlOjpTY3Jv
bGxpbmdOb2RlSUQpIG92ZXJyaWRlOworICAgIFJlZjxXZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9k
ZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZVR5cGUsIFdl
YkNvcmU6OlNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eSYgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5OwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCA4MDU5YWQ1NWFhZTMyZjhlNTNhNzAxOWI1
Mjg3ZWU4YjA5NDBiOTE0Li5hNzlkMTBhOWQ1MDc3MTA0NWNlNTgzMGVhNTczNzRjODQxODU2Mjdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCkBAIC0zNjgsMjIgKzM2OCwyMiBAQCBX
S0J1bmRsZUJhY2tGb3J3YXJkTGlzdFJlZiBXS0J1bmRsZVBhZ2VHZXRCYWNrRm9yd2FyZExpc3Qo
V0tCdW5kbGVQYWdlUmVmIHBhZ2VSZQogCiB2b2lkIFdLQnVuZGxlUGFnZUluc3RhbGxQYWdlT3Zl
cmxheShXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQYWdlT3ZlcmxheVJlZiBwYWdl
T3ZlcmxheVJlZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgpLT5wYWdlT3Zl
cmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkodG9JbXBsKHBhZ2VPdmVybGF5UmVm
KS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZh
ZGUpOworICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSgqdG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92
ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogfQog
CiB2b2lkIFdLQnVuZGxlUGFnZVVuaW5zdGFsbFBhZ2VPdmVybGF5KFdLQnVuZGxlUGFnZVJlZiBw
YWdlUmVmLCBXS0J1bmRsZVBhZ2VPdmVybGF5UmVmIHBhZ2VPdmVybGF5UmVmKQogewotICAgIHRv
SW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5z
dGFsbFBhZ2VPdmVybGF5KHRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdl
YkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICB0b0ltcGwocGFn
ZVJlZiktPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdl
T3ZlcmxheSgqdG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6
UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogfQogCiB2b2lkIFdLQnVuZGxlUGFn
ZUluc3RhbGxQYWdlT3ZlcmxheVdpdGhBbmltYXRpb24oV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYs
IFdLQnVuZGxlUGFnZU92ZXJsYXlSZWYgcGFnZU92ZXJsYXlSZWYpCiB7Ci0gICAgdG9JbXBsKHBh
Z2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VP
dmVybGF5KHRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBh
Z2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJh
bWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KCp0b0ltcGwo
cGFnZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFk
ZU1vZGU6OkZhZGUpOwogfQogCiB2b2lkIFdLQnVuZGxlUGFnZVVuaW5zdGFsbFBhZ2VPdmVybGF5
V2l0aEFuaW1hdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQYWdlT3Zlcmxh
eVJlZiBwYWdlT3ZlcmxheVJlZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgp
LT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSh0b0ltcGwocGFn
ZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1v
ZGU6OkZhZGUpOworICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5
Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCp0b0ltcGwocGFnZU92ZXJsYXlSZWYp
LT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOwog
fQogCiB2b2lkIFdLQnVuZGxlUGFnZVNldFRvcE92ZXJoYW5nSW1hZ2UoV0tCdW5kbGVQYWdlUmVm
IHBhZ2VSZWYsIFdLSW1hZ2VSZWYgaW1hZ2VSZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KaW5k
ZXggODUwOWFlNjUwMjRkNGVlNTkyZWQxMjVhMTIxMjE0MGYwN2ZjZTMxZS4uNDFlYjAzOTQ2ZmE5
YTRhYWZkMGY4ZjE2MDliYzEzZjM3NTdmOTVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQpA
QCAtODYwLDcgKzg2MCw3IEBAIEpTVmFsdWVSZWYgUERGUGx1Z2luOjpqc1BERkRvY1ByaW50KEpT
Q29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iCiAgICAgaWYgKCFwYWdl
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY3R4KTsKIAotICAgIHBhZ2Ut
PmNocm9tZSgpLnByaW50KGNvcmVGcmFtZSk7CisgICAgcGFnZS0+Y2hyb21lKCkucHJpbnQoKmNv
cmVGcmFtZSk7CiAKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY3R4KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRl
eCA1NjJhOWEyZTE1N2M0M2M1ZGU3NWMzZjcyNTYzMTJkZmU0ZTE1N2JjLi5kOWE0Mjg4NjFiZWM1
NjQ1M2E3ZjBjZTEzZDNiZjk4OTFmM2Q5OTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0xMTI4LDcgKzExMjgsNyBAQCB2b2lk
IFBsdWdpblZpZXc6OmZvY3VzUGx1Z2luRWxlbWVudCgpCiAgICAgQVNTRVJUKGZyYW1lKCkpOwog
ICAgIAogICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUoKS0+cGFnZSgpKQotICAgICAgICBwYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChtX3BsdWdpbkVsZW1lbnQuZ2V0
KCksIGZyYW1lKCkpOworICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2Vk
RWxlbWVudChtX3BsdWdpbkVsZW1lbnQuZ2V0KCksICpmcmFtZSgpKTsKICAgICBlbHNlCiAgICAg
ICAgIGZyYW1lKCktPmRvY3VtZW50KCktPnNldEZvY3VzZWRFbGVtZW50KG1fcGx1Z2luRWxlbWVu
dC5nZXQoKSk7CiB9CkBAIC0xNTA4LDcgKzE1MDgsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnNldFN0
YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJiBzdGF0dXNiYXJUZXh0KQogICAgIGlmICghcGFnZSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dChm
cmFtZSgpLCBzdGF0dXNiYXJUZXh0KTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJU
ZXh0KCpmcmFtZSgpLCBzdGF0dXNiYXJUZXh0KTsKIH0KIAogYm9vbCBQbHVnaW5WaWV3Ojppc0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRl
eCA0OTgzNGMzYTMwZWJmOTIxNWU5ZjU0ZTkxZGNiMjRlYTEzZjk0Y2VkLi5hOGRmZGZjOTUzMGVl
MDZmMzFjOGY1YjE0ZmQ2NzJmZmUyNGIyM2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC0xMDMsNyArMTAzLDYgQEAgc3RhdGljIGRvdWJsZSBhcmVhKFdlYkZyYW1lKiBmcmFtZSkKICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihzaXplLmhlaWdodCgpKSAqIHNpemUud2lkdGgo
KTsKIH0KIAotCiBzdGF0aWMgV2ViRnJhbWUqIGZpbmRMYXJnZXN0RnJhbWVJbkZyYW1lU2V0KFdl
YlBhZ2UmIHBhZ2UpCiB7CiAgICAgLy8gQXBwcm94aW1hdGUgd2hhdCBhIHVzZXIgY291bGQgY29u
c2lkZXIgYSBkZWZhdWx0IHRhcmdldCBmcmFtZSBmb3IgYXBwbGljYXRpb24gbWVudSBvcGVyYXRp
b25zLgpAQCAtMTc5LDIwICsxNzgsMjIgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuZm9jdXMo
KQogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVu
dERpZEZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCisKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjplbGVtZW50RGlkRm9jdXMoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBt
X3BhZ2UuZWxlbWVudERpZEZvY3VzKGNvbnN0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KG5vZGUpKTsK
KyAgICBtX3BhZ2UuZWxlbWVudERpZEZvY3VzKCZlbGVtZW50KTsKIH0KIAotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmVsZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit2b2lk
IFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVu
dCkKIHsKLSAgICBtX3BhZ2UuZWxlbWVudERpZEJsdXIoY29uc3RfY2FzdDxXZWJDb3JlOjpOb2Rl
Kj4obm9kZSkpOworICAgIG1fcGFnZS5lbGVtZW50RGlkQmx1cigmZWxlbWVudCk7CiB9CiAKIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjptYWtlRmlyc3RSZXNwb25kZXIoKQogewogICAgIG1fcGFnZS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Ok1ha2VGaXJzdFJlc3BvbmRlcigpKTsKLX0gICAg
Cit9CisKICNlbmRpZiAgICAKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblRha2VGb2N1cyhG
b2N1c0RpcmVjdGlvbikKQEAgLTIyNywxNiArMjI4LDE2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKiBmcmFtZSkKICAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkZvY3VzZWRGcmFtZUNoYW5nZWQod2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgp
IDogMCksIG1fcGFnZS5wYWdlSUQoKSk7CiB9CiAKLVBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlV2luZG93KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgV2luZG93RmVhdHVyZXMmIHdpbmRvd0ZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQorUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5k
b3coRnJhbWUmIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBX
aW5kb3dGZWF0dXJlcyYgd2luZG93RmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5h
dmlnYXRpb25BY3Rpb24pCiB7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIGlmIChm
cmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxT
Y3JlZW5FbGVtZW50KCkpCi0gICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRDYW5jZWxG
dWxsU2NyZWVuKCk7CisgICAgaWYgKGZyYW1lLmRvY3VtZW50KCkgJiYgZnJhbWUuZG9jdW1lbnQo
KS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkpCisgICAgICAgIGZyYW1lLmRvY3Vt
ZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsKICNlbmRpZgogCiAgICAgYXV0byYgd2Vi
UHJvY2VzcyA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpOwogCi0gICAgV2ViRnJhbWUqIHdlYkZy
YW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2Vi
RnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAKICAgICBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YTsKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0
YS5uYXZpZ2F0aW9uVHlwZSA9IG5hdmlnYXRpb25BY3Rpb24udHlwZSgpOwpAQCAtMjUwLDcgKzI1
MSw3IEBAIFBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwg
Y29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzCiAKICAgICB1aW50NjRfdCBuZXdQYWdlSUQg
PSAwOwogICAgIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKLSAgICBpZiAo
IXdlYlByb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0
eU9yaWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCks
IHdpbmRvd0ZlYXR1cmVzLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkNyZWF0ZU5ld1BhZ2U6OlJlcGx5KG5ld1BhZ2VJRCwgcGFyYW1ldGVycyksIG1fcGFn
ZS5wYWdlSUQoKSkpCisgICAgaWYgKCF3ZWJQcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2Uod2ViRnJh
bWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoJmZyYW1lKSwgcmVx
dWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgd2luZG93RmVhdHVyZXMsIG5hdmlnYXRpb25BY3Rpb25E
YXRhKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6UmVwbHkobmV3UGFn
ZUlELCBwYXJhbWV0ZXJzKSwgbV9wYWdlLnBhZ2VJRCgpKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBpZiAoIW5ld1BhZ2VJRCkKQEAgLTM2MSw5ICszNjIsOSBAQCBib29sIFdlYkNo
cm9tZUNsaWVudDo6Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkKICAgICByZXR1cm4g
bV9wYWdlLmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpOwogfQogCi1ib29sIFdlYkNo
cm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgRnJhbWUqIGZyYW1lKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lJiBmcmFtZSkKIHsKLSAg
ICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOwor
ICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsK
IAogICAgIGJvb2wgc2hvdWxkQ2xvc2UgPSBmYWxzZTsKIApAQCAtNDAyLDEyICs0MDMsMTIgQEAg
c3RhdGljIGJvb2wgc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncyhGcmFtZSYgZnJhbWUp
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNj
cmlwdEFsZXJ0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBhbGVydFRleHQpCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiBhbGVydFRleHQpCiB7Ci0gICAgaWYgKHNob3VsZFN1cHByZXNzSmF2YVNjcmlwdERpYWxv
Z3MoKmZyYW1lKSkKKyAgICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncyhmcmFt
ZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1l
Ojpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJh
bWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKICAgICAv
LyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCkBAIC00MTUsMTUgKzQxNiwxNSBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiBhbGVydFRleHQpCiAKICAgICBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIgaGFuZ0RldGVjdGlv
bkRpc2FibGVyOwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlw
dEFsZXJ0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1l
KGZyYW1lKSwgYWxlcnRUZXh0KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlw
dEFsZXJ0OjpSZXBseSgpLCBtX3BhZ2UucGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCksIElQ
Qzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKTsKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
U3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQod2ViRnJhbWUt
PmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoJmZyYW1lKSwgYWxlcnRU
ZXh0KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpSZXBseSgp
LCBtX3BhZ2UucGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRp
b246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKTsKIH0KIAotYm9vbCBXZWJDaHJv
bWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZy
YW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewotICAgIGlmIChzaG91bGRTdXBw
cmVzc0phdmFTY3JpcHREaWFsb2dzKCpmcmFtZSkpCisgICAgaWYgKHNob3VsZFN1cHByZXNzSmF2
YVNjcmlwdERpYWxvZ3MoZnJhbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAgIFdl
YkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKICAgICBB
U1NFUlQod2ViRnJhbWUpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgpAQCAt
NDMyLDE4ICs0MzMsMTggQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25m
aXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIEhhbmdEZXRlY3Rp
b25EaXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlzYWJsZXI7CiAKICAgICBib29sIHJlc3VsdCA9IGZh
bHNlOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENv
bmZpcm0od2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUo
ZnJhbWUpLCBtZXNzYWdlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENv
bmZpcm06OlJlcGx5KHJlc3VsdCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHko
KSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQp
KQorICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZp
cm0od2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoJmZy
YW1lKSwgbWVzc2FnZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25m
aXJtOjpSZXBseShyZXN1bHQpLCBtX3BhZ2UucGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCks
IElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3Vs
dCkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiBmcmFt
ZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3Ry
aW5nJiByZXN1bHQpCiB7Ci0gICAgaWYgKHNob3VsZFN1cHByZXNzSmF2YVNjcmlwdERpYWxvZ3Mo
KmZyYW1lKSkKKyAgICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncyhmcmFtZSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZy
YW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2Vi
RnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKICAg
ICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCkBAIC00NTEsNyArNDUyLDcgQEAgYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGMKIAogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0ZWN0
aW9uRGlzYWJsZXI7CiAKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkph
dmFTY3JpcHRQcm9tcHQod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpm
cm9tRnJhbWUoZnJhbWUpLCBtZXNzYWdlLCBkZWZhdWx0VmFsdWUpLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpSZXBseShyZXN1bHQpLCBtX3BhZ2UucGFnZUlE
KCksIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRm
b3JtUHJvY2Vzc1dpbGxTdXNwZW5kKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmln
aW5EYXRhOjpmcm9tRnJhbWUoJmZyYW1lKSwgbWVzc2FnZSwgZGVmYXVsdFZhbHVlKSwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6UmVwbHkocmVzdWx0KSwgbV9w
YWdlLnBhZ2VJRCgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJ
bmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIHJldHVybiAhcmVzdWx0LmlzTnVsbCgpOwpAQCAtNTU2LDcgKzU1Nyw3IEBAIFBsYXRm
b3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGllbnQ6OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0
CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVD
aGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiBmcmFtZSwgY29uc3QgSW50
U2l6ZSYgc2l6ZSkgY29uc3QKIHsKICAgICBpZiAoIW1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5n
cygpLmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoKSkgewogICAgICAgICBXZWJGcmFtZSogbGFyZ2Vz
dEZyYW1lID0gZmluZExhcmdlc3RGcmFtZUluRnJhbWVTZXQobV9wYWdlKTsKQEAgLTU2NiwxNCAr
NTY3LDE0IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1l
KiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uCiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICBpZiAoJmZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpICE9IGZyYW1lKQorICAgIGlmICgmZnJh
bWUucGFnZSgpLT5tYWluRnJhbWUoKSAhPSAmZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAogICAg
IG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZUNvbnRlbnRTaXpl
KHNpemUpKTsKIAogICAgIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5tYWluRnJhbWVDb250ZW50U2l6
ZUNoYW5nZWQoc2l6ZSk7CiAKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGZyYW1lLT52aWV3
KCk7CisgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBmcmFtZS52aWV3KCk7CiAgICAgaWYgKGZy
YW1lVmlldyAmJiAhZnJhbWVWaWV3LT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSkgIHsKICAgICAgICAg
Ym9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyID0gZnJhbWVWaWV3LT5ob3Jpem9udGFsU2Nyb2xs
YmFyKCk7CiAgICAgICAgIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIgPSBmcmFtZVZpZXctPnZl
cnRpY2FsU2Nyb2xsYmFyKCk7CkBAIC02MTEsMjEgKzYxMiwyMSBAQCBib29sIFdlYkNocm9tZUNs
aWVudDo6c2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVyRW1iZWRk
ZWRPYmplYwogICAgIHJldHVybiBmYWxzZTsKIH0KICAgICAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50
Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVy
RW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxh
YmlsaXR5UmVhc29uKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1
Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6
UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNv
bnN0CiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgQVNTRVJUKGVsZW1l
bnQtPmhhc1RhZ05hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGVtYmVkVGFn
KSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGFwcGxldFRhZykpOworICAgIEFTU0VSVChlbGVtZW50
Lmhhc1RhZ05hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZW1iZWRUYWcpIHx8
IGVsZW1lbnQuaGFzVGFnTmFtZShhcHBsZXRUYWcpKTsKICAgICBBU1NFUlQocGx1Z2luVW5hdmFp
bGFiaWxpdHlSZWFzb24gPT0gUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpbk1pc3NpbmcgfHwg
cGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gPT0gUmVuZGVyRW1iZWRkZWRPYmplY3Q6Okluc2Vj
dXJlUGx1Z2luVmVyc2lvbiB8fCBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbik7CiAKLSAgICBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBwbHVnaW5FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFBs
dWdJbkltYWdlRWxlbWVudCo+KGVsZW1lbnQpOworICAgIGF1dG8mIHBsdWdpbkVsZW1lbnQgPSBk
b3duY2FzdDxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50PihlbGVtZW50KTsKIAotICAgIFN0cmluZyBm
cmFtZVVSTFN0cmluZyA9IHBsdWdpbkVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKS0+bG9hZGVy
KCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2VVUkwoKS5zdHJpbmcoKTsKKyAgICBTdHJpbmcg
ZnJhbWVVUkxTdHJpbmcgPSBwbHVnaW5FbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+bG9hZGVy
KCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2VVUkwoKS5zdHJpbmcoKTsKICAgICBTdHJpbmcg
cGFnZVVSTFN0cmluZyA9IG1fcGFnZS5tYWluRnJhbWUoKS0+bG9hZGVyKCkuZG9jdW1lbnRMb2Fk
ZXIoKS0+cmVzcG9uc2VVUkwoKS5zdHJpbmcoKTsKLSAgICBTdHJpbmcgcGx1Z2luVVJMU3RyaW5n
ID0gcGx1Z2luRWxlbWVudC0+ZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChwbHVnaW5FbGVtZW50LT51
cmwoKSkuc3RyaW5nKCk7Ci0gICAgVVJMIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMID0gZWxlbWVu
dC0+ZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFj
ZXMocGx1Z2luRWxlbWVudC0+Z2V0QXR0cmlidXRlKHBsdWdpbnNwYWdlQXR0cikpKTsKKyAgICBT
dHJpbmcgcGx1Z2luVVJMU3RyaW5nID0gcGx1Z2luRWxlbWVudC5kb2N1bWVudCgpLmNvbXBsZXRl
VVJMKHBsdWdpbkVsZW1lbnQudXJsKCkpLnN0cmluZygpOworICAgIFVSTCBwbHVnaW5zcGFnZUF0
dHJpYnV0ZVVSTCA9IHBsdWdpbkVsZW1lbnQuZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChzdHJpcExl
YWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMocGx1Z2luRWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKHBsdWdpbnNwYWdlQXR0cikpKTsKICAgICBpZiAoIXBsdWdpbnNwYWdl
QXR0cmlidXRlVVJMLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkKICAgICAgICAgcGx1Z2luc3Bh
Z2VBdHRyaWJ1dGVVUkwgPSBVUkwoKTsKLSAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQocGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24sIHBsdWdpbkVsZW1lbnQtPnNlcnZpY2VUeXBlKCksIHBsdWdpblVSTFN0cmluZywg
cGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkwuc3RyaW5nKCksIGZyYW1lVVJMU3RyaW5nLCBwYWdlVVJM
U3RyaW5nKSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6VW5hdmFp
bGFibGVQbHVnaW5CdXR0b25DbGlja2VkKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBwbHVn
aW5FbGVtZW50LnNlcnZpY2VUeXBlKCksIHBsdWdpblVSTFN0cmluZywgcGx1Z2luc3BhZ2VBdHRy
aWJ1dGVVUkwuc3RyaW5nKCksIGZyYW1lVVJMU3RyaW5nLCBwYWdlVVJMU3RyaW5nKSk7CiAjZWxz
ZQogICAgIFVOVVNFRF9QQVJBTShlbGVtZW50KTsKICAgICBVTlVTRURfUEFSQU0ocGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb24pOwpAQCAtNjYwLDkgKzY2MSw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikKICAg
ICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRUb29sVGlwKG1fY2FjaGVk
VG9vbFRpcCkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1l
KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lJiBmcmFtZSkKIHsKLSAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAgIFdl
YkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKICAgICBB
U1NFUlQod2ViRnJhbWUpOwogCiAjaWYgUExBVEZPUk0oR1RLKSAmJiBIQVZFKEdUS19VTklYX1BS
SU5USU5HKQpAQCAtNjg4LDEyICs2ODksMTIgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByaW50
KEZyYW1lKiBmcmFtZSkKICAgICBtX3BhZ2Uuc2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UHJpbnRGcmFtZSh3ZWJGcmFtZS0+ZnJhbWVJRCgpKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UHJpbnRGcmFtZTo6UmVwbHkoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3lu
Y09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpOwogfQogCi12b2lkIFdl
YkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiBmcmFtZSwgY29uc3Qg
U3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscyBkZXRhaWxzKQordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMgZGV0YWlscykKIHsKLSAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAgIFdl
YkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKICAgICBB
U1NFUlQod2ViRnJhbWUpOwogICAgIAotICAgIGF1dG8mIG9yaWdpbiA9IGZyYW1lLT5kb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpOworICAgIGF1dG8mIG9yaWdpbiA9IGZyYW1lLmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCk7CiAgICAgYXV0byBvcmlnaW5EYXRhID0gU2VjdXJpdHlPcmln
aW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3JpZ2luKTsKICAgICBhdXRvJiB0cmFja2VyID0g
RGF0YWJhc2VUcmFja2VyOjpzaW5nbGV0b24oKTsKICAgICBhdXRvIGN1cnJlbnRRdW90YSA9IHRy
YWNrZXIucXVvdGEob3JpZ2luRGF0YSk7CkBAIC03MTYsOSArNzE3LDkgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCkKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBpbnQ2NF90IHRvdGFsQnl0ZXNO
ZWVkZWQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YShTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQp
CiB7Ci0gICAgUmVmUHRyPEFQSTo6U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luID0gQVBJ
OjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW4tPnRvU3RyaW5nKCkpOwor
ICAgIFJlZlB0cjxBUEk6OlNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9IEFQSTo6U2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2luLnRvU3RyaW5nKCkpOwogICAgIGlm
IChtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLmRpZFJlYWNoQXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKCZtX3BhZ2UsIHNlY3VyaXR5T3JpZ2luLmdldCgpLCB0b3RhbEJ5dGVzTmVl
ZGVkKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC03MjksMTcgKzczMCwxOSBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9y
aWdpbiogb3JpZ2luLAogCiAgICAgdWludDY0X3QgbmV3UXVvdGEgPSAwOwogICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKAotICAg
ICAgICBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpv
cmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpLCBjdXJyZW50UXVvdGEsIHRvdGFsQnl0ZXNOZWVk
ZWQpLAorICAgICAgICBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5
T3JpZ2luKG9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCksIGN1cnJlbnRRdW90YSwgdG90YWxC
eXRlc05lZWRlZCksCiAgICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGE6OlJlcGx5KG5ld1F1b3RhKSwgbV9wYWdlLnBhZ2VJRCgp
LCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9y
bVByb2Nlc3NXaWxsU3VzcGVuZCk7CiAKLSAgICBjYWNoZVN0b3JhZ2Uuc3RvcmVVcGRhdGVkUXVv
dGFGb3JPcmlnaW4ob3JpZ2luLCBuZXdRdW90YSk7CisgICAgY2FjaGVTdG9yYWdlLnN0b3JlVXBk
YXRlZFF1b3RhRm9yT3JpZ2luKCZvcmlnaW4sIG5ld1F1b3RhKTsKIH0KIAogI2lmIEVOQUJMRShE
QVNIQk9BUkRfU1VQUE9SVCkKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFubm90YXRlZFJlZ2lv
bnNDaGFuZ2VkKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQorCiAjZW5kaWYKIAogYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFJlcGxhY2VXaXRoR2VuZXJhdGVkRmlsZUZvclVwbG9h
ZChjb25zdCBTdHJpbmcmIHBhdGgsIFN0cmluZyYgZ2VuZXJhdGVkRmlsZW5hbWUpCkBAIC03NTQs
MTAgKzc1NywxMiBAQCBTdHJpbmcgV2ViQ2hyb21lQ2xpZW50OjpnZW5lcmF0ZVJlcGxhY2VtZW50
RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCiB9CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xP
UikKLXN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRl
Q29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25zdCBDb2xvciYgaW5p
dGlhbENvbG9yKQorCitzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBXZWJDaHJvbWVDbGll
bnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmIGNsaWVudCwgY29uc3Qg
Q29sb3ImIGluaXRpYWxDb2xvcikKIHsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJD
b2xvckNob29zZXI+KCZtX3BhZ2UsIGNsaWVudCwgaW5pdGlhbENvbG9yKTsKKyAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxXZWJDb2xvckNob29zZXI+KCZtX3BhZ2UsICZjbGllbnQsIGluaXRp
YWxDb2xvcik7CiB9CisKICNlbmRpZgogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuT3BlblBh
bmVsKEZyYW1lJiBmcmFtZSwgRmlsZUNob29zZXImIGZpbGVDaG9vc2VyKQpAQCAtODMyLDE0ICs4
MzcsMTQgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6Omhhc09wZW5lZFBvcHVwKCkgY29uc3QKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50
KSBjb25zdAorUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIFdlYlBvcHVwTWVudTo6Y3JlYXRlKCZtX3BhZ2UsIGNsaWVudCk7CisgICAgcmV0
dXJuIFdlYlBvcHVwTWVudTo6Y3JlYXRlKCZtX3BhZ2UsICZjbGllbnQpOwogfQogCi1SZWZQdHI8
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBv
cHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxX
ZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAogewotICAgIHJl
dHVybiBXZWJTZWFyY2hQb3B1cE1lbnU6OmNyZWF0ZSgmbV9wYWdlLCBjbGllbnQpOworICAgIHJl
dHVybiBXZWJTZWFyY2hQb3B1cE1lbnU6OmNyZWF0ZSgmbV9wYWdlLCAmY2xpZW50KTsKIH0KIAog
R3JhcGhpY3NMYXllckZhY3RvcnkqIFdlYkNocm9tZUNsaWVudDo6Z3JhcGhpY3NMYXllckZhY3Rv
cnkoKSBjb25zdApAQCAtODU4LDcgKzg2Myw3IEBAIFJlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3I+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pCiAK
ICNlbmRpZgogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIo
RnJhbWUqLCBHcmFwaGljc0xheWVyKiBsYXllcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRh
Y2hSb290R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogewogICAg
IGlmIChsYXllcikKICAgICAgICAgbV9wYWdlLmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUobGF5ZXIpOwpAQCAtODY2LDEwICs4NzEsMTAgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAg
ICAgIG1fcGFnZS5leGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSogZnJh
bWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lJiBmcmFtZSwgR3JhcGhpY3NMYXll
ciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBpZiAoYXV0byBkcmF3aW5nQXJlYSA9IG1fcGFnZS5k
cmF3aW5nQXJlYSgpKQotICAgICAgICBkcmF3aW5nQXJlYS0+YXR0YWNoVmlld092ZXJsYXlHcmFw
aGljc0xheWVyKGZyYW1lLCBncmFwaGljc0xheWVyKTsKKyAgICAgICAgZHJhd2luZ0FyZWEtPmF0
dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcigmZnJhbWUsIGdyYXBoaWNzTGF5ZXIpOwogfQog
CiB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXph
dGlvbigpCkBAIC04OTgsOSArOTAzLDkgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmxheWVyVHJl
ZVN0YXRlSXNGcm96ZW4oKSBjb25zdAogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKIAot
UGFzc1JlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVT
Y3JvbGxpbmdDb29yZGluYXRvcihQYWdlKiBwYWdlKSBjb25zdAorUmVmUHRyPFNjcm9sbGluZ0Nv
b3JkaW5hdG9yPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBh
Z2UmIHBhZ2UpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKG1fcGFnZS5jb3JlUGFnZSgpID09IHBhZ2Up
OworICAgIEFTU0VSVF9VTlVTRUQocGFnZSwgbV9wYWdlLmNvcmVQYWdlKCkgPT0gJnBhZ2UpOwog
ICAgIGlmIChtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+dHlwZSgpICE9IERyYXdpbmdBcmVhVHlwZVJl
bW90ZUxheWVyVHJlZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGUoJm1fcGFnZSk7CkBAIC05NDksMTkgKzk1NCwx
OSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhv
dXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZAogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChj
b25zdCBXZWJDb3JlOjpFbGVtZW50KiwgYm9vbCB3aXRoS2V5Ym9hcmQpCitib29sIFdlYkNocm9t
ZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVt
ZW50JiwgYm9vbCB3aXRoS2V5Ym9hcmQpCiB7CiAgICAgcmV0dXJuIG1fcGFnZS5mdWxsU2NyZWVu
TWFuYWdlcigpLT5zdXBwb3J0c0Z1bGxTY3JlZW4od2l0aEtleWJvYXJkKTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVu
dCogZWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVt
ZW50KFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9wYWdlLmZ1bGxTY3JlZW5N
YW5hZ2VyKCktPmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7CisgICAgbV9wYWdl
LmZ1bGxTY3JlZW5NYW5hZ2VyKCktPmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoJmVsZW1lbnQp
OwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdl
YkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9wYWdl
LmZ1bGxTY3JlZW5NYW5hZ2VyKCktPmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsK
KyAgICBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
KCZlbGVtZW50KTsKIH0KIAogI2VuZGlmCkBAIC0xMDQ5LDI5ICsxMDU0LDI5IEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKQogICAgIG1fcGFnZS5zZW5k
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpKTsK
IH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5
ZXIqIGhlYWRlclBhcmVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRIZWFkZXJMYXll
cihHcmFwaGljc0xheWVyJiBoZWFkZXJQYXJlbnQpCiB7CiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5E
SU5HKQogICAgIGlmIChQYWdlQmFubmVyKiBiYW5uZXIgPSBtX3BhZ2UuaGVhZGVyUGFnZUJhbm5l
cigpKQotICAgICAgICBiYW5uZXItPmRpZEFkZFBhcmVudExheWVyKGhlYWRlclBhcmVudCk7Cisg
ICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50TGF5ZXIoJmhlYWRlclBhcmVudCk7CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTShoZWFkZXJQYXJlbnQpOwogI2VuZGlmCiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpkaWRBZGRGb290ZXJMYXllcihHcmFwaGljc0xheWVyKiBmb290ZXJQYXJlbnQp
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkQWRkRm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciYg
Zm9vdGVyUGFyZW50KQogewogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBpZiAoUGFn
ZUJhbm5lciogYmFubmVyID0gbV9wYWdlLmZvb3RlclBhZ2VCYW5uZXIoKSkKLSAgICAgICAgYmFu
bmVyLT5kaWRBZGRQYXJlbnRMYXllcihmb290ZXJQYXJlbnQpOworICAgICAgICBiYW5uZXItPmRp
ZEFkZFBhcmVudExheWVyKCZmb290ZXJQYXJlbnQpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
Zm9vdGVyUGFyZW50KTsKICNlbmRpZgogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxk
VXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyogZnJhbWVWaWV3KSBj
b25zdAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1l
Vmlldyhjb25zdCBGcmFtZVZpZXcmIGZyYW1lVmlldykgY29uc3QKIHsKLSAgICByZXR1cm4gbV9w
YWdlLmRyYXdpbmdBcmVhKCktPnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhmcmFt
ZVZpZXcpOworICAgIHJldHVybiBtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+c2hvdWxkVXNlVGlsZWRC
YWNraW5nRm9yRnJhbWVWaWV3KCZmcmFtZVZpZXcpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIHN0YXRlLCB1aW50NjRfdCBzb3VyY2VFbGVtZW50SUQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAppbmRleCA1YzlkNzczYTcyYzA2MDhjMDIwNjhhYzFkOWRkZjQ1ZDRhMGJkOWM1Li4wYTA4
MDA0ZmZlZmVlY2JiNDEzNDQwMzZmMDJmZGE5NDE3NGRhY2U5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBGcmFtZSB3YW50cyB0byBjcmVh
dGUgdGhlIG5ldyBQYWdlLiAgQWxzbywgdGhlIG5ld2x5IGNyZWF0ZWQgd2luZG93CiAgICAgLy8g
c2hvdWxkIG5vdCBiZSBzaG93biB0byB0aGUgdXNlciB1bnRpbCB0aGUgQ2hyb21lQ2xpZW50IG9m
IHRoZSBuZXdseQogICAgIC8vIGNyZWF0ZWQgUGFnZSBoYXMgaXRzIHNob3cgbWV0aG9kIGNhbGxl
ZC4KLSAgICBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWUqLCBjb25z
dCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVy
ZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWw7CisgICAgV2ViQ29y
ZTo6UGFnZSogY3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6RnJh
bWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2Vi
Q29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpIGZpbmFsOwogICAgIHZvaWQgc2hvdygpIGZpbmFsOwog
ICAgIAogICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBmaW5hbDsKQEAgLTg3LDEzICs4NywxMyBAQCBw
cml2YXRlOgogICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShKU0M6Ok1lc3NhZ2VTb3VyY2Us
IEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVO
dW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkgZmlu
YWw7CiAgICAgCiAgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSBmaW5h
bDsKLSAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIFdlYkNvcmU6OkZyYW1lKikgZmluYWw7CisgICAgYm9vbCBydW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSYpIGZpbmFs
OwogICAgIAogICAgIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgZmluYWw7CiAgICAgCi0gICAgdm9p
ZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBTdHJpbmcmKSBmaW5h
bDsKLSAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lKiwgY29uc3Qg
U3RyaW5nJikgZmluYWw7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZy
YW1lKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwg
U3RyaW5nJiByZXN1bHQpIGZpbmFsOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNv
cmU6OkZyYW1lJiwgY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0
Q29uZmlybShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIGJvb2wg
cnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KSBmaW5hbDsKICAg
ICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgZmluYWw7CiAKICAgICBXZWJD
b3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpIGZpbmFsOwpAQCAtMTE3LDIzICsx
MTcsMjMgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRm
b3JtUGFnZUNsaWVudCgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdl
ZChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdCBmaW5hbDsK
KyAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXco
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IGZpbmFsOyAvLyBDdXJyZW50bHkgb25seSBN
YWMgaGFzIGEgbm9uIGVtcHR5IGltcGxlbWVudGF0aW9uLgogCiAgICAgYm9vbCBzaG91bGRVbmF2
YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVj
dDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgdW5h
dmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJDb3JlOjpS
ZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZp
bmFsOworICAgIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVs
ZW1lbnQmLCBXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24pIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5n
ZSgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3Qg
V2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIGZpbmFsOwog
CiAgICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rp
b24pIGZpbmFsOwogICAgIAotICAgIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsK
KyAgICB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAKLSAgICB2b2lkIGV4Y2Vl
ZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lLCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMpIGZpbmFsOworICAgIHZvaWQgZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUs
IFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscykgZmluYWw7CiAKICAgICB2b2lkIHJlYWNoZWRNYXhB
cHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkgZmluYWw7Ci0gICAgdm9pZCByZWFjaGVk
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50
NjRfdCBzcGFjZU5lZWRlZCkgZmluYWw7CisgICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCBzcGFjZU5lZWRl
ZCkgZmluYWw7CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgdm9pZCBhbm5v
dGF0ZWRSZWdpb25zQ2hhbmdlZCgpIGZpbmFsOwpAQCAtMTQzLDcgKzE0Myw3IEBAIHByaXZhdGU6
CiAgICAgU3RyaW5nIGdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkg
ZmluYWw7CiAgICAgCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKFdlYkNvcmU6
OkNvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgZmluYWw7CisgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2Vy
KFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgZmlu
YWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQpAQCAtMTUyLDEwICsx
NTIsMTAgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICB2b2lkIGRpZFJlY2Vp
dmVNb2JpbGVEb2NUeXBlKGJvb2wpIGZpbmFsOwotICAgIHZvaWQgc2V0TmVlZHNTY3JvbGxOb3Rp
ZmljYXRpb25zKFdlYkNvcmU6OkZyYW1lKiwgYm9vbCkgZmluYWw7Ci0gICAgdm9pZCBvYnNlcnZl
ZENvbnRlbnRDaGFuZ2UoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKLSAgICB2b2lkIGNsZWFyQ29u
dGVudENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSopIGZpbmFsOwotICAgIHZvaWQgbm90
aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lKikgZmlu
YWw7CisgICAgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoV2ViQ29yZTo6RnJhbWUm
LCBib29sKSBmaW5hbDsKKyAgICB2b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShXZWJDb3JlOjpG
cmFtZSYpIGZpbmFsOworICAgIHZvaWQgY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKFdlYkNv
cmU6OkZyYW1lJikgZmluYWw7CisgICAgdm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Ny
b2xsaW5nRnJhbWUoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKICAgICBib29sIGlzU3RvcHBpbmco
KSBmaW5hbDsKIAogICAgIHZvaWQgZGlkTGF5b3V0KExheW91dFR5cGUgPSBOb3JtYWxMYXlvdXQp
IGZpbmFsOwpAQCAtMjAzLDEyICsyMDMsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIHNlbGVjdEl0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgZmluYWw7CiAgICAgYm9vbCBzZWxlY3RJdGVt
QWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgZmluYWw7CiAgICAgYm9vbCBo
YXNPcGVuZWRQb3B1cCgpIGNvbnN0IGZpbmFsOwotICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cE1l
bnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBmaW5h
bDsKLSAgICBSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1
cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3QgZmluYWw7CisgICAgUmVmUHRy
PFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNs
aWVudCYpIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+
IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBm
aW5hbDsKIAogICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVy
RmFjdG9yeSgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIo
V2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7Ci0gICAgdm9p
ZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKikgZmluYWw7CisgICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXll
cihXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKKyAgICB2
b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdp
bmdTeW5jaHJvbml6YXRpb24oKSBmaW5hbDsKICAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdM
YXllckZsdXNoKCkgZmluYWw7CiAgICAgYm9vbCBhZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhX
ZWJDb3JlOjpMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RmxhZ3MpIGZpbmFsOwpAQCAtMjMzLDEx
ICsyMzMsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIGxheWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBj
b25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCi0gICAgUGFzc1JlZlB0
cjxXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcj4gY3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IoV2ViQ29yZTo6UGFnZSopIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpTY3Jv
bGxpbmdDb29yZGluYXRvcj4gY3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoV2ViQ29yZTo6UGFn
ZSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgdm9pZCBl
bGVtZW50RGlkUmVmb2N1cyhjb25zdCBXZWJDb3JlOjpOb2RlKikgZmluYWw7CisgICAgdm9pZCBl
bGVtZW50RGlkUmVmb2N1cyhjb25zdCBXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CiAjZW5kaWYK
IAogI2lmIChQTEFURk9STShJT1MpICYmIEhBVkUoQVZLSVQpKSB8fCAoUExBVEZPUk0oTUFDKSAm
JiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQpAQCAtMjUzLDE0ICsyNTMsMTQgQEAg
cHJpdmF0ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIGJvb2wg
c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50KiwgYm9v
bCB3aXRoS2V5Ym9hcmQpIGZpbmFsOwotICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVu
dChXZWJDb3JlOjpFbGVtZW50KikgZmluYWw7Ci0gICAgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVs
ZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopIGZpbmFsOworICAgIGJvb2wgc3VwcG9ydHNGdWxsU2Ny
ZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50JiwgYm9vbCB3aXRoS2V5Ym9hcmQp
IGZpbmFsOworICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVt
ZW50JikgZmluYWw7CisgICAgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6
RWxlbWVudCYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2b2lk
IGVsZW1lbnREaWRGb2N1cyhjb25zdCBXZWJDb3JlOjpOb2RlKikgZmluYWw7Ci0gICAgdm9pZCBl
bGVtZW50RGlkQmx1cihjb25zdCBXZWJDb3JlOjpOb2RlKikgZmluYWw7CisgICAgdm9pZCBlbGVt
ZW50RGlkRm9jdXMoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOworICAgIHZvaWQgZWxlbWVudERp
ZEJsdXIoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOwogCiAgICAgdm9pZCBtYWtlRmlyc3RSZXNw
b25kZXIoKSBmaW5hbDsKICNlbmRpZgpAQCAtMjkxLDEwICsyOTEsMTAgQEAgcHJpdmF0ZToKICAg
ICBTdHJpbmcgcGx1Z0luRXh0cmFTdHlsZVNoZWV0KCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5n
IHBsdWdJbkV4dHJhU2NyaXB0KCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIGRpZEFkZEhlYWRl
ckxheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKLSAgICB2b2lkIGRpZEFkZEZv
b3RlckxheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKKyAgICB2b2lkIGRpZEFk
ZEhlYWRlckxheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXImKSBmaW5hbDsKKyAgICB2b2lkIGRp
ZEFkZEZvb3RlckxheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXImKSBmaW5hbDsKIAotICAgIGJv
b2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1l
VmlldyopIGNvbnN0IGZpbmFsOworICAgIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJh
bWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyYpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9p
ZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0
YXRlRmxhZ3MsIHVpbnQ2NF90KSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcAppbmRleCAzMmFmNTlmM2ZiZDQ3NDA5ZjQyODg2MzY5ZmEwOGJlZGFjYjVkNDY4Li40MzM5
OGZjOTNjMjNkMWIxMzhlN2E0NWQyYTE5ZWE4ZDMzZDNhZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcApAQCAtNjQwLDEzICs2NDAsMTMgQEAgRnJhbWUqIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2
aWdhdGkKIHsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwogICAgIGlm
ICghd2ViUGFnZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgLy8gSnVzdCBjYWxsIHRocm91Z2ggdG8gdGhlIGNocm9tZSBjbGllbnQuCiAgICAgRnJh
bWVMb2FkUmVxdWVzdCByZXF1ZXN0KG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5kb2N1bWVudCgpLT5z
ZWN1cml0eU9yaWdpbigpLCBuYXZpZ2F0aW9uQWN0aW9uLnJlc291cmNlUmVxdWVzdCgpLCBMb2Nr
SGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwg
QWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpB
bGxvdywgbmF2aWdhdGlvbkFjdGlvbi5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCkpOwot
ICAgIFBhZ2UqIG5ld1BhZ2UgPSB3ZWJQYWdlLT5jb3JlUGFnZSgpLT5jaHJvbWUoKS5jcmVhdGVX
aW5kb3cobV9mcmFtZS0+Y29yZUZyYW1lKCksIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIG5h
dmlnYXRpb25BY3Rpb24pOworICAgIFBhZ2UqIG5ld1BhZ2UgPSB3ZWJQYWdlLT5jb3JlUGFnZSgp
LT5jaHJvbWUoKS5jcmVhdGVXaW5kb3coKm1fZnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0LCBX
aW5kb3dGZWF0dXJlcygpLCBuYXZpZ2F0aW9uQWN0aW9uKTsKICAgICBpZiAoIW5ld1BhZ2UpCi0g
ICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICByZXR1
cm4gJm5ld1BhZ2UtPm1haW5GcmFtZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3Bw
CmluZGV4IDk2ODkyOWZkYTM0NzlhYWQyYmU0YTEwYTBiNDU5NmFlMTc1NTZkNTAuLjQxYjM0ZjAw
YThjNmZkMjAzYzU4MzQyMDNlODI4MGE1YzQ0NTZmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNs
aWVudC5jcHAKQEAgLTczLDcgKzczLDcgQEAgV2ViSW5zcGVjdG9yQ2xpZW50Ojp+V2ViSW5zcGVj
dG9yQ2xpZW50KCkKICAgICB9CiAKICAgICBpZiAobV9wYWludFJlY3RPdmVybGF5ICYmIG1fcGFn
ZS0+bWFpbkZyYW1lKCkpCi0gICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5
Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fcGFpbnRSZWN0T3ZlcmxheS5nZXQo
KSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICAgICAgbV9wYWdlLT5tYWluRnJh
bWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fcGFp
bnRSZWN0T3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKIH0KIAogdm9pZCBX
ZWJJbnNwZWN0b3JDbGllbnQ6Omluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoKQpAQCAtMTI2LDcgKzEy
Niw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpoaWRlSGlnaGxpZ2h0KCkKIHsKICNpZiAh
UExBVEZPUk0oSU9TKQogICAgIGlmIChtX2hpZ2hsaWdodE92ZXJsYXkgJiYgbV9wYWdlLT5tYWlu
RnJhbWUoKSkKLSAgICAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9s
bGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkobV9oaWdobGlnaHRPdmVybGF5LCBQYWdlT3Zlcmxh
eTo6RmFkZU1vZGU6OkZhZGUpOworICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3Zl
cmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqbV9oaWdobGlnaHRPdmVybGF5
LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOwogI2Vsc2UKICAgICBtX3BhZ2UtPmhpZGVJ
bnNwZWN0b3JIaWdobGlnaHQoKTsKICNlbmRpZgpAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgV2Vi
SW5zcGVjdG9yQ2xpZW50OjpzaG93UGFpbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsK
ICAgICBpZiAoIW1fcGFpbnRSZWN0T3ZlcmxheSkgewogICAgICAgICBtX3BhaW50UmVjdE92ZXJs
YXkgPSBQYWdlT3ZlcmxheTo6Y3JlYXRlKCp0aGlzLCBQYWdlT3ZlcmxheTo6T3ZlcmxheVR5cGU6
OkRvY3VtZW50KTsKLSAgICAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250
cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KG1fcGFpbnRSZWN0T3ZlcmxheSwgUGFnZU92ZXJs
YXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5w
YWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fcGFpbnRSZWN0T3Zl
cmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgIH0KIAogICAgIGlm
ICghbV9wYWludEluZGljYXRvckxheWVyQ2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKaW5kZXggMWUwY2VmNDY1MWI5
M2JmODBmYjcwNTY2NWM2ZjYxNWZlYWJjMmE4OS4uMzMwMzJjMTcyYjFiMjQzOGRhZmQ2MGMzNDY0
NjZlYTQ1MDVlNGE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0ZpbmRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCkBAIC0xODksNyArMTg5LDcgQEAgdm9pZCBGaW5kQ29u
dHJvbGxlcjo6dXBkYXRlRmluZFVJQWZ0ZXJQYWdlU2Nyb2xsKGJvb2wgZm91bmQsIGNvbnN0IFN0
cmluZyYgc3RyaW4KIAogICAgIGlmICghc2hvdWxkU2hvd092ZXJsYXkpIHsKICAgICAgICAgaWYg
KG1fZmluZFBhZ2VPdmVybGF5KQotICAgICAgICAgICAgbV93ZWJQYWdlLT5tYWluRnJhbWUoKS0+
cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkobV9maW5kUGFnZU92
ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CisgICAgICAgICAgICBtX3dlYlBh
Z2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3Zl
cmxheSgqbV9maW5kUGFnZU92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgaWYgKCFtX2ZpbmRQYWdlT3ZlcmxheSkgewogICAgICAgICAg
ICAgYXV0byBmaW5kUGFnZU92ZXJsYXkgPSBQYWdlT3ZlcmxheTo6Y3JlYXRlKCp0aGlzLCBQYWdl
T3ZlcmxheTo6T3ZlcmxheVR5cGU6OkRvY3VtZW50KTsKQEAgLTMxMiw3ICszMTIsNyBAQCB2b2lk
IEZpbmRDb250cm9sbGVyOjpoaWRlRmluZFVJKCkKIHsKICAgICBtX2ZpbmRNYXRjaGVzLmNsZWFy
KCk7CiAgICAgaWYgKG1fZmluZFBhZ2VPdmVybGF5KQotICAgICAgICBtX3dlYlBhZ2UtPm1haW5G
cmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheShtX2Zp
bmRQYWdlT3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICAgICAgbV93
ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFn
ZU92ZXJsYXkoKm1fZmluZFBhZ2VPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUp
OwogCiAgICAgUGx1Z2luVmlldyogcGx1Z2luVmlldyA9IHBsdWdpblZpZXdGb3JGcmFtZShtX3dl
YlBhZ2UtPm1haW5GcmFtZSgpKTsKICAgICAKQEAgLTMyNSw2ICszMjUsNyBAQCB2b2lkIEZpbmRD
b250cm9sbGVyOjpoaWRlRmluZFVJKCkKIH0KIAogI2lmICFQTEFURk9STShJT1MpCisKIGJvb2wg
RmluZENvbnRyb2xsZXI6OnVwZGF0ZUZpbmRJbmRpY2F0b3IoRnJhbWUmIHNlbGVjdGVkRnJhbWUs
IGJvb2wgaXNTaG93aW5nT3ZlcmxheSwgYm9vbCBzaG91bGRBbmltYXRlKQogewogICAgIFJlZlB0
cjxUZXh0SW5kaWNhdG9yPiBpbmRpY2F0b3IgPSBUZXh0SW5kaWNhdG9yOjpjcmVhdGVXaXRoU2Vs
ZWN0aW9uSW5GcmFtZShzZWxlY3RlZEZyYW1lLCBUZXh0SW5kaWNhdG9yT3B0aW9uSW5jbHVkZU1h
cmdpbklmUmFuZ2VNYXRjaGVzU2VsZWN0aW9uLCBzaG91bGRBbmltYXRlID8gVGV4dEluZGljYXRv
clByZXNlbnRhdGlvblRyYW5zaXRpb246OkJvdW5jZSA6IFRleHRJbmRpY2F0b3JQcmVzZW50YXRp
b25UcmFuc2l0aW9uOjpOb25lKTsKQEAgLTM2Niw2ICszNjcsNyBAQCB2b2lkIEZpbmRDb250cm9s
bGVyOjpkaWRGYWlsVG9GaW5kU3RyaW5nKCkKIHZvaWQgRmluZENvbnRyb2xsZXI6OmRpZEhpZGVG
aW5kSW5kaWNhdG9yKCkKIHsKIH0KKwogI2VuZGlmCiAKIHZvaWQgRmluZENvbnRyb2xsZXI6OnNo
b3dGaW5kSW5kaWNhdG9ySW5TZWxlY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggMzYyOWQ0YWU1OGM3ZDQ2ODYyZTE1YTc1Zjk4
NGJkY2Q1ZWViOGY0Ni4uOTk5ZmUyNWMxMDBhMzEzNzZiMGRmNzVhNDMwN2MzMWNhN2ZlNGUyYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBA
IC0xMDksNyArMTA5LDcgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlTGlzdGVuZXJJRCgpCiAg
ICAgcmV0dXJuIHVuaXF1ZUxpc3RlbmVySUQrKzsKIH0KIAotUGFzc1JlZlB0cjxXZWJGcmFtZT4g
V2ViRnJhbWU6OmNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2UqIHBhZ2UsIFdlYkNvcmU6
OkZyYW1lKiBjb3JlRnJhbWUpCitSZWY8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGVXaXRoQ29y
ZU1haW5GcmFtZShXZWJQYWdlKiBwYWdlLCBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lKQogewog
ICAgIGF1dG8gZnJhbWUgPSBjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xp
ZW50PihzdGF0aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KCZjb3JlRnJhbWUtPmxvYWRl
cigpLmNsaWVudCgpKSkpOwogICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGlkQ3JlYXRlTWFpbkZyYW1lKGZyYW1lLT5mcmFtZUlEKCkpLCBwYWdlLT5wYWdlSUQoKSwgSVBD
OjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkp
OwpAQCAtMTIwLDMwICsxMjAsMzIgQEAgUGFzc1JlZlB0cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNy
ZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2UqIHBhZ2UsIFdlYkNvcmU6OkYKICAgICByZXR1
cm4gZnJhbWU7CiB9CiAKLVBhc3NSZWZQdHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGVTdWJm
cmFtZShXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgSFRNTEZyYW1lT3du
ZXJFbGVtZW50KiBvd25lckVsZW1lbnQpCitSZWY8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGVT
dWJmcmFtZShXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgSFRNTEZyYW1l
T3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQpCiB7CiAgICAgYXV0byBmcmFtZSA9IGNyZWF0ZShz
dGQ6Om1ha2VfdW5pcXVlPFdlYkZyYW1lTG9hZGVyQ2xpZW50PigpKTsKICAgICBwYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENyZWF0ZVN1YmZyYW1lKGZyYW1lLT5mcmFtZUlE
KCkpLCBwYWdlLT5wYWdlSUQoKSwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVu
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwogCi0gICAgUmVmPFdlYkNvcmU6OkZyYW1lPiBjb3Jl
RnJhbWUgPSBGcmFtZTo6Y3JlYXRlKHBhZ2UtPmNvcmVQYWdlKCksIG93bmVyRWxlbWVudCwgZnJh
bWUtPm1fZnJhbWVMb2FkZXJDbGllbnQuZ2V0KCkpOworICAgIGF1dG8gY29yZUZyYW1lID0gRnJh
bWU6OmNyZWF0ZShwYWdlLT5jb3JlUGFnZSgpLCBvd25lckVsZW1lbnQsIGZyYW1lLT5tX2ZyYW1l
TG9hZGVyQ2xpZW50LmdldCgpKTsKICAgICBmcmFtZS0+bV9jb3JlRnJhbWUgPSBjb3JlRnJhbWUu
cHRyKCk7Ci0gICAgZnJhbWUtPm1fY29yZUZyYW1lLT50cmVlKCkuc2V0TmFtZShmcmFtZU5hbWUp
OworCisgICAgY29yZUZyYW1lLT50cmVlKCkuc2V0TmFtZShmcmFtZU5hbWUpOwogICAgIGlmIChv
d25lckVsZW1lbnQpIHsKICAgICAgICAgQVNTRVJUKG93bmVyRWxlbWVudC0+ZG9jdW1lbnQoKS5m
cmFtZSgpKTsKLSAgICAgICAgb3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCktPnRyZWUo
KS5hcHBlbmRDaGlsZChXVEZNb3ZlKGNvcmVGcmFtZSkpOworICAgICAgICBvd25lckVsZW1lbnQt
PmRvY3VtZW50KCkuZnJhbWUoKS0+dHJlZSgpLmFwcGVuZENoaWxkKGNvcmVGcmFtZS5nZXQoKSk7
CiAgICAgfQotICAgIGZyYW1lLT5tX2NvcmVGcmFtZS0+aW5pdCgpOworICAgIGNvcmVGcmFtZS0+
aW5pdCgpOworCiAgICAgcmV0dXJuIGZyYW1lOwogfQogCi1QYXNzUmVmUHRyPFdlYkZyYW1lPiBX
ZWJGcmFtZTo6Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4gZnJh
bWVMb2FkZXJDbGllbnQpCitSZWY8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGUoc3RkOjp1bmlx
dWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRlckNsaWVudCkKIHsKICAgICBh
dXRvIGZyYW1lID0gYWRvcHRSZWYoKm5ldyBXZWJGcmFtZShXVEZNb3ZlKGZyYW1lTG9hZGVyQ2xp
ZW50KSkpOwogCiAgICAgLy8gQWRkIGV4cGxpY3QgcmVmKCkgdGhhdCB3aWxsIGJlIGJhbGFuY2Vk
IGluIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmcmFtZUxvYWRlckRlc3Ryb3llZCgpLgogICAgIGZy
YW1lLT5yZWYoKTsKIAotICAgIHJldHVybiBXVEZNb3ZlKGZyYW1lKTsKKyAgICByZXR1cm4gZnJh
bWU7CiB9CiAKIFdlYkZyYW1lOjpXZWJGcmFtZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2Fk
ZXJDbGllbnQ+IGZyYW1lTG9hZGVyQ2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViRnJhbWUuaAppbmRleCAyM2Q0OGQyOWY4Mzc2NjUzODVjZjQxNDFhMGM0ZjZl
NjNjNTVjNjYwLi5kNGM3YTQwODM0YTI4ODliMmExYWZkMWZjZGUzNzA2ZmFlMDI2YjAyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaApAQCAtNjYsOCAr
NjYsOCBAQCBzdHJ1Y3QgRnJhbWVJbmZvRGF0YTsKIAogY2xhc3MgV2ViRnJhbWUgOiBwdWJsaWMg
QVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpCdW5kbGVGcmFtZT4gewogcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZyYW1lPiBjcmVhdGVXaXRoQ29yZU1haW5GcmFt
ZShXZWJQYWdlKiwgV2ViQ29yZTo6RnJhbWUqKTsKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJG
cmFtZT4gY3JlYXRlU3ViZnJhbWUoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBX
ZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQqKTsKKyAgICBzdGF0aWMgUmVmPFdlYkZyYW1l
PiBjcmVhdGVXaXRoQ29yZU1haW5GcmFtZShXZWJQYWdlKiwgV2ViQ29yZTo6RnJhbWUqKTsKKyAg
ICBzdGF0aWMgUmVmPFdlYkZyYW1lPiBjcmVhdGVTdWJmcmFtZShXZWJQYWdlKiwgY29uc3QgU3Ry
aW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCopOwogICAgIH5X
ZWJGcmFtZSgpOwogCiAgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIEZyYW1lTG9hZGVyQ2xpZW50IChh
bmQgdGhlcmVmb3JlIHRoZSBXZWJDb3JlOjpGcmFtZSkgaXMgYmVpbmcgdG9ybiBkb3duLgpAQCAt
MTY2LDggKzE2Niw4IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFdlYkZyYW1lPiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVy
Q2xpZW50Pik7Ci0gICAgV2ViRnJhbWUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xp
ZW50Pik7CisgICAgc3RhdGljIFJlZjxXZWJGcmFtZT4gY3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxX
ZWJGcmFtZUxvYWRlckNsaWVudD4pOworICAgIGV4cGxpY2l0IFdlYkZyYW1lKHN0ZDo6dW5pcXVl
X3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4pOwogCiAgICAgV2ViQ29yZTo6RnJhbWUqIG1fY29y
ZUZyYW1lOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJ
bnNwZWN0b3IuY3BwCmluZGV4IGQ2NDc4NTk3YTg3ZmVmM2RjMGI5OTkzNTIxMjY3NmVmY2M0OTMz
MjMuLjAxNmQ3MzhmYjYxMmQyNDNjMDA0OWU1MjAxNTg2MjEzMGZkOTU4ZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCkBAIC0x
NDUsNyArMTQ1LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3I6Om9wZW5Jbk5ld1RhYihjb25zdCBTdHJp
bmcmIHVybFN0cmluZykKICAgICBGcmFtZSYgaW5zcGVjdGVkTWFpbkZyYW1lID0gaW5zcGVjdGVk
UGFnZS0+bWFpbkZyYW1lKCk7CiAgICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KGluc3BlY3Rl
ZE1haW5GcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJlcXVlc3Qo
dXJsU3RyaW5nKSwgIl9ibGFuayIsIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlz
dDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Olll
cywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93LCBSZXBsYWNlRG9jdW1lbnRJZkphdmFTY3Jp
cHRVUkwsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKIAot
ICAgIFBhZ2UqIG5ld1BhZ2UgPSBpbnNwZWN0ZWRQYWdlLT5jaHJvbWUoKS5jcmVhdGVXaW5kb3co
Jmluc3BlY3RlZE1haW5GcmFtZSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgTmF2aWdhdGlv
bkFjdGlvbihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBOYXZpZ2F0aW9uVHlwZTo6TGlua0Ns
aWNrZWQpKTsKKyAgICBQYWdlKiBuZXdQYWdlID0gaW5zcGVjdGVkUGFnZS0+Y2hyb21lKCkuY3Jl
YXRlV2luZG93KGluc3BlY3RlZE1haW5GcmFtZSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwg
TmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCBOYXZpZ2F0aW9uVHlw
ZTo6TGlua0NsaWNrZWQpKTsKICAgICBpZiAoIW5ld1BhZ2UpCiAgICAgICAgIHJldHVybjsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299457</attachid>
            <date>2017-01-21 22:04:58 -0800</date>
            <delta_ts>2017-01-22 02:02:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167224-20170121220302.patch</filename>
            <type>text/plain</type>
            <size>388678</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk2NjliM2EzMjBmNzc3
MjBjNmJmMzIyZjViMzBhNTdkYzhlYjhlZC4uYzI3ZjQzNmMzZTBhZDIxODIwMzg1NWYyZWJiMmYx
YzNkYzE2NGRkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzOCBAQAorMjAxNy0wMS0yMCAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIg
ZnJvbSAicGFnZSIgZGlyZWN0b3J5IG9mIFdlYkNvcmUsIGFsc28gZGVwbG95IHJlZmVyZW5jZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIyNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9ET01XaW5kb3dGZXRjaC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dG
ZXRjaDo6ZmV0Y2gpOiBVc2UgRE9NV2luZG93Ojpkb2N1bWVudCBpbnN0ZWFkIG9mCisgICAgICAg
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUNvbnRleHQ6
OmRhdGFiYXNlRXhjZWVkZWRRdW90YSk6IFBhc3MgYSByZWZlcmVuY2UuCisKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAg
ICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eVNob3dD
b250ZXh0TWVudV0pOgorICAgICAgICBQYXNzIGEgcmVmZXJlbmNlLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01X
aW5kb3c6OmdldE93blByb3BlcnR5U2xvdCk6IFBhc3MgYSByZWZlcmVuY2UuCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNoaWxkcmVu
Q2hhbmdlZCk6IFBhc3MgYSByZWZlcmVuY2UuIEFsc28gbWFkZSB0aGUKKyAgICAgICAgZGlkUmVj
ZWl2ZURvY1R5cGUgY29kZSB1bmNvbmRpdGlvbmFsIGluc3RlYWQgb2YgaU9TLW9ubHkuCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2Jq
ZWN0cyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVZpZXdwb3J0
QXJndW1lbnRzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Rm9jdXNl
ZEVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVET01X
aW5kb3cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0YWtlRE9NV2luZG93
RnJvbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlcXVlc3RGdWxsU2Ny
ZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtp
dEV4aXRGdWxsc2NyZWVuKTogRGl0dG8uCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Zm9jdXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmJsdXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRpc3Bh
dGNoRm9jdXNFdmVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZGlzcGF0
Y2hCbHVyRXZlbnQpOiBEaXR0by4KKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogRGl0dG8uCisgICAgICAgICogZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVQcmludCk6
IERpdHRvLgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldEZvY3VzZWRFbGVtZW50SWZOZWVkZWQpOiBEaXR0
by4KKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkRnJhbWU6OkNhY2hlZEZyYW1lKTogRGl0dG8uCisgICAgICAgICogaHRtbC9Db2xvcklucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6aGFuZGxlRE9NQWN0
aXZhdGVFdmVudCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2Fi
bGUpOiBEaXR0by4KKworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0tleWJvYXJkRm9j
dXNhYmxlKTogUGFzcyBhIHJlZmVyZW5jZSwKKyAgICAgICAgYW5kIGFsc28gcmV3cm90ZSB0byB1
c2UgJiYgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c3VwcG9ydHNGdWxsc2NyZWVu
KTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9TcGluQnV0dG9uRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6
OnJlbGVhc2VDYXB0dXJlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjOjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogRGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250ZXh0TWVudSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpkaXNwYXRjaEV2ZW50QXNDb250
ZXh0TWVudUV2ZW50KTogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUp
OiBVcGRhdGVkIHRvIHRha2UgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJv
bWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0p
OiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNvbW1p
dFByb3Zpc2lvbmFsTG9hZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmNsb3NlQW5kUmVtb3ZlQ2hpbGQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OmRldGFjaEZyb21QYXJlbnQpOiBQYXNzIGEgcmVmZXJlbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpc3BhdGNoQmVmb3JlVW5sb2FkRXZlbnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6IERpdHRvLgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAg
KiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVj
a2VyOjpjaGVja05ld1dpbmRvd1BvbGljeSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnJlY2FsY3VsYXRlQXZhaWxhYmxlU3BhY2VJblF1
b3RhKTogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmg6IFJldHVybiBhIHJlZmVyZW5jZSBmcm9tIG9yaWdpbi4KKworICAgICAgICAqIGxv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4pOiBU
YWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZSk6CisgICAg
ICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnN0
b3JlKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjpjaGVja09yaWdpblF1b3RhKTogVXBkYXRlZCBzaW5jZSBvcmlnaW4KKyAgICAg
ICAgbm93IHJldHVybnMgYXJlZmVyZW5jZS4KKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAg
ICogbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEpOiBQYXNzIGEgcmVmZXJlbmNlLgor
ICAgICAgICAqIG1hdGhtbC9NYXRoTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1h
dGhNTEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOiBEaXR0by4KKworICAgICAgICAqIHBh
Z2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Q2hyb21lKTogTW92ZWQg
aW5pdGlhbGl6YXRpb24gb2YgZGF0YSBtZW1iZXJzIHRvIHRoZQorICAgICAgICBjbGFzcyBkZWZp
bml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2VkKTog
VGFrZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlV2luZG93
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpydW5KYXZhU2NyaXB0
QWxlcnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdENv
bmZpcm0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdFBy
b21wdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZXRTdGF0dXNiYXJUZXh0
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnByaW50KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWU6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lOjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWU6OmRpZFJlY2VpdmVEb2NUeXBlKTogRGl0dG8uIEFsc28gbWFkZSB1bmNv
bmRpdGlvbmFsLCBidXQKKyAgICAgICAgZW1wdHkgZm9yIG5vbi1pT1MgcGxhdGZvcm1zLgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lOjpyZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKTogVGFr
ZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6dW5yZWdpc3RlclBvcHVw
T3BlbmluZ09ic2VydmVyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWUuaDogVXBkYXRl
ZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogVGFrZSBy
ZWZlcmVuY2VzLiBBbHNvIHVwZGF0ZWQgc29tZSBhcmd1bWVudHMgZnJvbQorICAgICAgICBOb2Rl
IHRvIEVsZW1lbnQuCisKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmhhbmRsZUNvbnRleHRN
ZW51RXZlbnQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudSk6IERpdHRvLiBB
bHNvIHVzZQorICAgICAgICBtYWtlX3VuaXF1ZSBpbnN0ZWFkIG9mIHVuaXF1ZV9wdHIgcGx1cyBu
ZXcuCisgICAgICAgIChXZWJDb3JlOjpvcGVuTmV3V2luZG93KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjppbnNlcnRVbmljb2RlQ2hhcmFjdGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVu
dUF0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNo
b3dJbWFnZUNvbnRyb2xzTWVudSk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2UvRE9N
VGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OmZpcmVkKTogUGFzcyBhIHJl
ZmVyZW5jZS4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBvc3RNZXNzYWdlVGltZXI6OlBvc3RNZXNzYWdlVGltZXIpOiBUYWtlIFJlZiYmIGluc3Rl
YWQgb2YKKyAgICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
YWRqdXN0V2luZG93UmVjdCk6IFVzZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6YWxsb3dQb3BVcCk6IERpdHRvLiBBbHNvIHJld3JpdGUgdG8gdXNlIHx8IGluc3Rl
YWQKKyAgICAgICAgb2Ygc3VjY2Vzc2l2ZSBpZiBzdGF0ZW1lbnRzLgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6RE9NV2luZG93KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OmRpZFNlY3VyZVRyYW5zaXRpb25Ubyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjpyZWdpc3RlclByb3BlcnR5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3c6OnVucmVnaXN0ZXJQcm9wZXJ0eSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQpOiBNZXJnZSB3aXRoIHRoZSBmdW5jdGlv
bgorICAgICAgICBpbW1lZGlhdGVseSBmb2xsb3dlZCwgY2FsbGVkIG9ubHkgZnJvbSBoZXJlLgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmln
aW5DaGVjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnByaW50KTog
UGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWxlcnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y29uZmlybSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpwcm9tcHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c2V0U3RhdHVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OnNldERlZmF1bHRTdGF0dXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6bW92ZUJ5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1vdmVU
byk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVCeSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVUbyk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6RE9NV2luZG93OjpjbGVhclRpbWVvdXQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6aW5jcmVtZW50U2Nyb2xsRXZlbnRMaXN0ZW5lcnNDb3VudCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkZWNyZW1lbnRTY3JvbGxFdmVudExp
c3RlbmVyc0NvdW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNob3dN
b2RhbERpYWxvZyk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZS4gQUxzbyBtYWRlIGZ1bmN0aW9ucyBwcml2YXRlCisgICAgICAgIGFuZCBm
aW5hbC4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93UHJvcGVydHk6OkRPTVdpbmRvd1Byb3BlcnR5KTogUGFzcyBhIHJl
ZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp+RE9NV2luZG93
UHJvcGVydHkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3
aWxsRGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJhbWUp
OiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVnaW9uT3ZlcmxheTo6Y3JlYXRlKTogUmV0dXJuIFJlZlB0ciBpbnN0ZWFk
IG9mIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpSZWdpb25PdmVybGF5Ojp+UmVnaW9u
T3ZlcmxheSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEZWJ1Z1BhZ2VP
dmVybGF5czo6c2hvd1JlZ2lvbk92ZXJsYXkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRl
YnVnUGFnZU92ZXJsYXlzOjpoaWRlUmVnaW9uT3ZlcmxheSk6IERpdHRvLgorCisgICAgICAgICog
cGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxl
cjo6ZHJhZ0V4aXRlZCk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6cGVyZm9ybURyYWdPcGVyYXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6dHJ5REhUTUxEcmFnKTogRGl0dG8uCisKKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6IFJlcGxhY2VkIE9wdGlvbmFsQ3Vyc29yIHdpdGggc3Rk
OjpvcHRpb25hbDxDdXJzb3I+LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRh
dGVDdXJzb3IpOiBSZWZhY3RvciBpbnRvIHR3byBmdW5jdGlvbnMgc28gd2UKKyAgICAgICAgY2Fu
IHNoYXJlIG1vcmUgY29kZSB3aXRoIHNlbGVjdEN1cnNvci4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKTogVXBkYXRlZCB0byB1c2Ugc3RkOjpvcHRpb25hbC4K
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3ZlRXZlbnQpOiBV
c2UgdGhlIG5ldyB1cGRhdGVDdXJzb3IuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OnN0YXJ0UGFuU2Nyb2xsaW5nKTogVXNlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERyb3ApOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KTog
VGFrZSBhIHJhdyBwb2ludGVyCisgICAgICAgIGluc3RlYWQgb2YgYSBQYXNzUmVmUHRyLgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZlbnQpOiBVc2UgYSBy
ZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0
ZUFmdGVyRWRpdERyYWdJZk5lZWRlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJzVG9MaW5rcyk6IERpdHRv
LgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4K
KworICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEZyYW1lKTogVGFrZSBwb2ludGVyIGluc3RlYWQK
KyAgICAgICAgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxl
cjo6c2V0Rm9jdXNlZEVsZW1lbnQpOiBUYWtlIHJlZmVyZW5jZSBpbnN0ZWFkIG9mCisgICAgICAg
IFBhc3NSZWZQdHIuCisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDogVXBkYXRlZCBm
b3IgdGhlIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OnRyYW5zZmVyQ2hpbGQpOiBEZWxldGVkLiBVbnVz
ZWQgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OmFwcGVuZENoaWxkKTog
TWVyZ2VkIHdpdGggdGhlIGZvbGxvd2luZyBmdW5jdGlvbgorICAgICAgICBzaW5jZSBpdCdzIG5v
dyBvbmx5IHVzZWQgaGVyZS4gVGFrZSByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVUcmVlOjphY3R1YWxseUFwcGVuZENoaWxkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6cmVtb3ZlQ2hpbGQpOiBUYWtlIHJlZmVy
ZW5jZSBpbnN0ZWFkIG9mIHBvaW50ZXIuCisgICAgICAgIFVzZSBtb3ZlIGluc3RlYWQgb2YgdHJp
Y2tpZXIgc3dhcC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5oOiBVcGRhdGVkIGZvciB0aGUg
YWJvdmUuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnNldENvbnRlbnRzU2l6ZSk6IFVzZSBhIHJlZmVyZW5jZS4KKyAgICAgICAg
KiBwYWdlL01haW5GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6OmRyb3BD
aGlsZHJlbik6IERpdHRvLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpzY3JvbGxpbmdDb29yZGluYXRvcik6IERpdHRvLgorICAgICAgICAqIHBhZ2Uv
UGFnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXk6OmZhZGVBbmlt
YXRpb25UaW1lckZpcmVkKTogRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlT3ZlcmxheUNvbnRyb2xsZXI6Omlu
c3RhbGxQYWdlT3ZlcmxheSk6IFRha2UgcmVmZXJlbmNlCisgICAgICAgIGluc3RlYWQgb2YgUGFz
c1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0
YWxsUGFnZU92ZXJsYXkpOiBUYWtlIHJlZmVyZW5jZQorICAgICAgICBpbnRlYWQgb2YgcG9pbnRl
ci4KKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oOiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpQYWdlU2VyaWFsaXplcik6IE1vdmVkIG1vc3QgaW5p
dGlhbGl6YXRpb24gdG8gdGhlCisgICAgICAgIGNsYXNzIGRlZmluaXRpb24uCisgICAgICAgIChX
ZWJDb3JlOjpQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplKTogVXNlIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVGcmFtZSk6IFVzZSBpbml0aWFs
aXplciBsaXN0IGluc3RlYWQgb2YKKyAgICAgICAgY29uc3RydWN0b3IgZm9yIHJlc291cmNlLgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUNTU1N0eWxlU2hlZXQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjphZGRJbWFnZVRvUmVz
b3VyY2VzKTogRGl0dG8uCisgICAgICAgICogcGFnZS9QYWdlU2VyaWFsaXplci5oOiBSZW1vdmVk
IGNvbnN0cnVjdG9ycyBmcm9tIFBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZQorICAgICAgICBzdHJ1
Y3Qgc2luY2Ugc3RydWN0dXJlcyBkb24ndCByZWFsbHkgbmVlZCB0aGVtLiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUuCisgICAgICAgIENoYW5nZWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yIGlu
dG8gYSBuZXN0ZWQgY2xhc3MuCisKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlRW50cnkuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlRW50cnk6OnN0YXJ0VGltZUNvbXBhcmVMZXNz
VGhhbik6IFVzZSBjb25zdCBSZWZQdHImCisgICAgICAgIGluc3RlYWQgb2YgUGFzc1JlZlB0ciB0
byBjb21wYXJlIFJlZlB0ciBpbiBwbGFjZS4KKworICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VV
c2VyVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omluc2VydFBlcmZvcm1hbmNlRW50cnkp
OiBUYWtlIFJlZiYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKworICAgICAgICAqIHBhZ2UvUmVz
b3VyY2VVc2FnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VVc2FnZU92
ZXJsYXk6On5SZXNvdXJjZVVzYWdlT3ZlcmxheSk6IFVzZSByZWZyZW5jZS4KKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlVXNhZ2VPdmVybGF5Ojppbml0aWFsaXplKTogRGl0dG8uCisKKyAgICAg
ICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmg6IFJlbW92ZWQgdW5uZWVkZWQgaW5j
bHVkZS4KKworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmNsZWFyKTog
VXNlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlOjpmaXJlRXZlbnRzQW5kVXBkYXRlU3R5bGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2gpOiBVc2UgdGhl
CisgICAgICAgIGFwcGVuZCBmdW5jdGlvbiBpbnN0ZWFkIG9mIGEgaGFuZC13cml0dGVuIGFsdGVy
bmF0aXZlLgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFk
ZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKToKKyAgICAgICAgVGFrZSBhIHJlZmVyZW5jZSByYXRo
ZXIgdGhhbiBhIFJlZiYmIHNpbmNlIG5vIGNhbGxlciBpcyBwYXNzaW5nIG93bmVyc2hpcC4KKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oOiBVcGRh
dGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0
eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibGVuZEZ1bmMpOiBSZXR1cm4gUmVm
UHRyIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OmJsZW5kRmlsdGVy
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpjcm9zc2ZhZGVCbGVuZCk6IERpdHRvLgorCisg
ICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlVHJhbnNpdGlvbnMpOiBVcGRhdGVk
IHRvIHVzZQorICAgICAgICBhbmltYXRpb25Gb3JQcm9wZXJ0eSwgd2hpY2ggcmV0dXJucyBhIHJh
dyBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRp
b25Gb3JQcm9wZXJ0eSk6IFJlbmFtZWQgZnJvbQorICAgICAgICBnZXRBbmltYXRpb25Gb3JQcm9w
ZXJ0eSBhbmQgY2hhbmdlZCB0byByZXR1cm4gcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAgICBv
ZiBQYXNzUmVmUHRyLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9J
bXBsaWNpdEFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlv
bjo6b25BbmltYXRpb25FbmQpOiBVc2UgYW5pbWF0aW9uRm9yUHJvcGVydHkuCisgICAgICAgIChX
ZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudCk6IFBhc3MgcmVm
ZXJlbmNlLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQp
OiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyk6IFRha2Ug
cmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2lu
Z0RhdGFUcmFuc2Zlcik6IFJldHVybiBSZWYuCisgICAgICAgICogcGFnZS9ndGsvRXZlbnRIYW5k
bGVyR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9y
bUNvbnRyb2xzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9pb3MvRXZlbnRI
YW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxG
b3JtQ29udHJvbHMpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRy
YW5zZmVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0Fs
bEZvcm1Db250cm9scyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpw
bGF0Zm9ybVByZXBhcmVGb3JXaGVlbEV2ZW50cyk6IERpdHRvLgorCisgICAgICAgICogcGFnZS9t
YWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oOiBUYWtlIFJlZiYmIGZvciByYW5nZXMgaW5z
dGVhZAorICAgICAgICBvZiBQYXNzUmVmUHRyLiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKiBw
YWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6Okhp
Z2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OkhpZ2hsaWdodCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6YnVpbGRQ
b3RlbnRpYWxIaWdobGlnaHRzSWZOZWVkZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkUGhvbmVOdW1iZXJIaWdobGlnaHRzKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFNl
bGVjdGlvbkhpZ2hsaWdodCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVy
bGF5Q29udHJvbGxlcjo6aGlnaGxpZ2h0c0FyZUVxdWl2YWxlbnQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmZpbmRUZWxlcGhvbmVOdW1iZXJI
aWdobGlnaHRDb250YWluaW5nU2VsZWN0aW9uSGlnaGxpZ2h0KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpoYW5kbGVDbGljayk6IERpdHRvLgor
CisgICAgICAgICogcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKyAgICAgICAgKC1b
V2ViVGV4dEluZGljYXRvclZpZXcgaW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpv
ZmZzZXQ6XSk6CisgICAgICAgIFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRy
LgorICAgICAgICAoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRv
cik6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0Fz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDogVXNlIFJlZiYmIGFuZCBSZWZQdHIgaW50ZWFkCisg
ICAgICAgIG9mIFBzYXNSZWZQdHIuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxM
YXRjaGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbExhdGNoaW5nU3RhdGU6
OlNjcm9sbExhdGNoaW5nU3RhdGUpOiBJbml0aWFsaXplIGRhdGEgbWVtYmVycworICAgICAgICBp
biBjbGFzcyBkZWZpbml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0
ZTo6c2V0V2hlZWxFdmVudEVsZW1lbnQpOiBVc2UgcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAg
ICBvZiBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6
c2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudCk6IFVzZSByYXcKKyAgICAgICAgcG9pbnRl
ciBpbnN0ZWFkIG9mIFJlZlB0ciYmLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdT
dGF0ZTo6c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcik6IFVzZSByYXcgcG9pbnRlciBpbnN0ZWFkCisg
ICAgICAgIG9mIFBhc3NSZWZQdHIuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0
Y2hpbmdTdGF0ZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KTogVXNlIFJlZiBpbnN0ZWFkIG9mIFBhc3NSZWZQ
dHIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxkKTog
VXNlIFJlZiYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZU5vZGUuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlTm9kZSk6IFVzZSBSZWYgaW5zdGVhZCBvZiBQ
YXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlOjphdHRhY2hO
b2RlKTogVXBkYXRlZCBmb3IgdGhlIGFidmUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdT
dGF0ZVRyZWU6OmNvbW1pdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlVHJlZS5oOiBEaXR0by4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJl
ZUZyb21TdGF0ZU5vZGUpOiBVc2UgcmVmZXJlbmNlLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaDogUmV0dXJuIFJlZiBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9kZTo6YXBwZW5kQ2hpbGQpOiBUYWtlIFJlZiYmIGluc3Rl
YWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVOb2RlOjpy
ZW1vdmVDaGlsZCk6IFRha2UgcmVmZXJlbmNlIGluc3RlYWQgb2YgcG9pbnRlci4KKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJv
dmUuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpUaHJlYWRlZFNjcm9s
bGluZ1RyZWUpOiBUYWtlIHJlZmVyZW5jZQorICAgICAgICBpbnN0ZWFkIG9mIHBvaW50ZXIuCisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdD
b29yZGluYXRvcklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
SU9TOjpTY3JvbGxpbmdDb29yZGluYXRvcklPUyk6IFBhc3MgcmVmZXJlbmNlLgorCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRlKTogVGFrZSBhIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVJT1M6OlNjcm9sbGluZ1RyZWVJT1MpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKTogUmV0dXJuIFJlZiBpbnN0ZWFkIG9mCisgICAgICAgIFBhc3NSZWZQdHIuCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaDogVXBkYXRlZCBmb3IgdGhl
IGFib3ZlLgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OlNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjKTogVXNlIHJlZmVyZW5jZS4KKworICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNwcDoKKyAgICAgICAgKFNjcm9sbGluZ1Ry
ZWVNYWM6OmNyZWF0ZSk6IFRha2UgYSByZWZlcmVuY2UuCisgICAgICAgIChTY3JvbGxpbmdUcmVl
TWFjOjpTY3JvbGxpbmdUcmVlTWFjKTogRGl0dG8uCisgICAgICAgIChTY3JvbGxpbmdUcmVlTWFj
OjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZSk6IFJldHVybiBhIFJlZiBpbnN0ZWFkIG9mIGEKKyAg
ICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZU1hYy5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL3dpbi9F
dmVudEhhbmRsZXJXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJz
VG9BbGxGb3JtQ29udHJvbHMpOiBUYWtlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIpOiBSZXR1cm4gUmVmLgorCisg
ICAgICAgICogcGxhdGZvcm0vQ3Vyc29yLmg6IFJlYXJyYW5nZWQgdGhlIGhlYWRlciBhIGJpdC4g
R290IHJpZCBvZiB0aGUgZXhwbGljaXQKKyAgICAgICAgY29weSBjb25zdHJ1Y3RvciwgYXNzaWdu
bWVudCBvcGVyYXRvciwgYW5kIGRlc3RydWN0b3IuIFVzaW5nIHRoZSBvbmVzCisgICAgICAgIHRo
YXQgdGhlIGNvbXBpbGVyIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVzIHdpbGwgd29yayBmb3IgYWxs
IHBsYXRmb3JtcyBhbmQKKyAgICAgICAgd2UgdGhlbiBhbHNvIGdldCBtb3ZlIGNvbnN0cnVjdG9y
IGFuZCBtb3ZlIGFzc2lnbm1lbnQgb3BlcmF0b3IuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
Q3Vyc29yRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6Q3Vyc29yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6fkN1cnNvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpDdXJzb3I6Om9wZXJhdG9yPSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3RrL0N1cnNvckd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6OkN1cnNvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6Om9wZXJhdG9yPSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6On5DdXJzb3IpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9DdXJzb3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6OkN1
cnNvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6Om9wZXJhdG9yPSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6On5DdXJzb3IpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9DdXJzb3JXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hh
cmVkQ3Vyc29yOjpTaGFyZWRDdXJzb3IpOiBNb3ZlZCB0aGlzIGhlcmUgZnJvbSB0aGUgaGVhZGVy
CisgICAgICAgIHNpbmNlIGl0IGlzIG9ubHkgdXNlZCB3aXRoaW4gdGhpcyBmaWxlLgorICAgICAg
ICAoV2ViQ29yZTo6U2hhcmVkQ3Vyc29yOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkN1cnNvcjo6Q3Vyc29yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6
b3BlcmF0b3I9KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6fkN1cnNvcik6
IERlbGV0ZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OmhhbmRsZVVuYXZhaWxh
YmxlUGx1Z2luSW5kaWNhdG9yRXZlbnQpOgorICAgICAgICBQYXNzIHJlZmVyZW5jZS4KKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXllckJhY2tpbmcpOiBHZXQgdG8gRnJhbWVW
aWV3CisgICAgICAgIHRocm91Z2ggdGhlIHJlbmRlciB0cmVlIGl0c2VsZiwgcmF0aGVyIHRoYW4g
dGhyb3VnaCB0aGUgZnJhbWUuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBk
YXRlTGF5ZXJGb3JIZWFkZXIpOiBVc2UgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllckZvckZvb3Rlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphdHRhY2hSb290TGF5ZXIpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGV0YWNoUm9vdExh
eWVyKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAg
ICAgICAgKFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXApOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Vh
cmNoRmllbGQ6OmFkZFNlYXJjaFJlc3VsdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU2VhcmNoRmllbGQ6OnNob3dQb3B1cCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU2VhcmNoRmllbGQ6OnZhbHVlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdB
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBRWxlbWVudDo6aXNLZXlib2FyZEZv
Y3VzYWJsZSk6IERpdHRvLgorICAgICAgICAqIHRlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYWdlT3ZlcmxheUNsaWVudDo6aW5zdGFsbE92
ZXJsYXkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYWdlT3ZlcmxheUNsaWVudDo6
dW5pbnN0YWxsQWxsT3ZlcmxheXMpOiBEaXR0by4KKwogMjAxNy0wMS0yMSAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEphdmFTY3JpcHQgZm9yLW9mIGRvZXMgbm90
IHdvcmsgb24gYSBsb3Qgb2YgY29sbGVjdGlvbiB0eXBlcyAoZS5nLiBIVE1MQ29sbGVjdGlvbikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
aW9zL0NoYW5nZUxvZwppbmRleCA5YTFhYTE5YjdhNDc3NWY5MmFhMDNmZTU0MDc4MjJkNTk3ZmIw
ZDcwLi4zMGU3YWU0YWE2N2I2NmRjZmM2NGQ1ZDk1Yzk3NGM2MmM2ZDU1YWZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9pb3MvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTctMDEtMjEgIERhcmluIEFkbGVyICA8ZGFyaW5A
YXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIGZyb20gInBhZ2UiIGRpcmVj
dG9yeSBvZiBXZWJDb3JlLCBhbHNvIGRlcGxveSByZWZlcmVuY2VzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcyMjQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudElPUy5oOiBVcGRhdGUgZm9yIGNoYW5nZXMgdG8gQ2hyb21lQ2xpZW50LgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5tbToKKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudElPUzo6cnVuSmF2YVNjcmlwdEFsZXJ0KTogRGl0dG8uCisgICAgICAgIChXZWJD
aHJvbWVDbGllbnRJT1M6OnJ1bkphdmFTY3JpcHRDb25maXJtKTogRGl0dG8uCisgICAgICAgIChX
ZWJDaHJvbWVDbGllbnRJT1M6OnJ1bkphdmFTY3JpcHRQcm9tcHQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNocm9tZUNsaWVudElPUzo6c2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKTogRGl0dG8u
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnRJT1M6Om9ic2VydmVkQ29udGVudENoYW5nZSk6IERp
dHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50SU9TOjpjbGVhckNvbnRlbnRDaGFuZ2VPYnNl
cnZlcnMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudElPUzo6bm90aWZ5UmV2ZWFs
ZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVD
bGllbnRJT1M6OmVsZW1lbnREaWRGb2N1cyk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50SU9TOjplbGVtZW50RGlkQmx1cik6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50
SU9TOjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudElP
Uzo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGll
bnRJT1M6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKTogRGl0dG8uCisKIDIwMTctMDEtMjEgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRo
ZSB1bnVzZWQgLVtXZWJGaXhlZFBvc2l0aW9uQ29udGVudCBtaW5pbXVtT2Zmc2V0RnJvbUZpeGVk
UG9zaXRpb25MYXllcnNUb0FuY2hvckVkZ2U6b2ZSZWN0OmluTGF5ZXI6XQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
CmluZGV4IDAwOWQ4YjgzMzIzOWRmMWE3ZTNhMzEwN2JlZDBjNzM1N2EwZjY2MTguLmUzNjU3YTQ5
NTBhMzhjYTYzZGQyMmUzN2IwMjU1ODM1OTRhNjkwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MSBAQAorMjAxNy0wMS0yMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIgZnJvbSAicGFnZSIgZGlyZWN0b3J5IG9mIFdlYkNv
cmUsIGFsc28gZGVwbG95IHJlZmVyZW5jZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE2NzIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZVF1
b3RhTWFuYWdlci5tbToKKyAgICAgICAgKC1bV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdl
ciBxdW90YV0pOiBQYXNzIHJlZmVyZW5jZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oOiBVcGRhdGVkIGZvciBjaGFuZ2VzIHRvIENocm9tZUNsaWVudC4KKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJD
aHJvbWVDbGllbnQ6OmZvY3VzZWRFbGVtZW50Q2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNs
aWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKTogRGl0dG8uCisgICAgICAgIChXZWJD
aHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9t
ZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKTogRGl0dG8uCisgICAgICAg
IChXZWJDaHJvbWVDbGllbnQ6OnByaW50KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKTogRGl0dG8uCisgICAgICAg
IChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAgICAo
V2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9jdXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNs
aWVudDo6Y3JlYXRlUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50
OjphdHRhY2hSb290R3JhcGhpY3NMYXllcik6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KTogRGl0dG8u
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERp
dHRvLgorCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKCtbV2ViRnJh
bWUgX2NyZWF0ZUZyYW1lV2l0aFBhZ2U6ZnJhbWVOYW1lOmZyYW1lVmlldzpvd25lckVsZW1lbnQ6
XSk6CisgICAgICAgIFVwZGF0ZWQgZm9yIGNoYW5nZSB0byB0aGUgYXBwZW5kQ2hpbGQgZnVuY3Rp
b24uCisKIDIwMTctMDEtMjEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVtb3ZlIC1bV2ViRnJhbWUgc2VuZE9yaWVudGF0aW9uQ2hhbmdlRXZlbnQ6
XSB3aGljaCBpcyB1bnVzZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBlZGQyMWMwYmM3NzRiY2U3OGJl
ZjE4ZDViYmYyOGNmZTJlMGFlMTlmLi4xODdlZmMyOGVkMTU0YTA2MWZkODUxYzBhYTBkOWRiMWM5
NGNmNzhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTctMDEtMjAgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRy
IGZyb20gInBhZ2UiIGRpcmVjdG9yeSBvZiBXZWJDb3JlLCBhbHNvIGRlcGxveSByZWZlcmVuY2Vz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcyMjQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsdWdp
bnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzdGF0dXMp
OiBQYXNzIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblZpZXc6OmZvY3VzUGx1
Z2luRWxlbWVudCk6IERpdHRvLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KTogVXBk
YXRlZCBmb3IgY2hhbmdlIHRvIENocm9tZUNsaWVudC4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVu
dDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJv
bWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21l
Q2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21l
Q2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVD
bGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNs
aWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKTogRGl0dG8uCisgICAgICAgIChX
ZWJDaHJvbWVDbGllbnQ6OnByaW50KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6
OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50
OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKTogRGl0dG8uCisgICAgICAgIChX
ZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKTogRGl0dG8uCisgICAgICAg
IChXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcik6IERpdHRv
LgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVv
RWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1l
bnUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBN
ZW51KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVl
bkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxs
U2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpleGl0
RnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6
c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KTogRGl0dG8uCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6IERpdHRvLgorCiAyMDE3LTAxLTIwICBKb3Nl
cGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG5ldmVy
IGNoYW5naW5nIEluZGV4ZWREQiBSdW50aW1lRW5hYmxlZEZlYXR1cmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAz
YmFjN2EwMTMyZDE5ZDIyN2I2NTFlY2FmM2EyOWE1MTlkOWFmMjM0Li45ZjhiNTY5M2JkYTdlNzM2
ZjM0ZjE1MWVkYWVjNzYyNjY0OTIzYmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzQgQEAKKzIw
MTctMDEtMjAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92
ZSBQYXNzUmVmUHRyIGZyb20gInBhZ2UiIGRpcmVjdG9yeSBvZiBXZWJDb3JlLCBhbHNvIGRlcGxv
eSByZWZlcmVuY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjcyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2Rl
KTogUmV0dXJuIGEgUmVmCisgICAgICAgIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAg
KiBVSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaDogVXBkYXRlZCBmb3Ig
dGhlIGFib3ZlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2UuY3BwOgorICAgICAgICAoV0tCdW5kbGVQYWdlSW5zdGFsbFBhZ2VPdmVybGF5
KTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdLQnVuZGxlUGFnZVVuaW5zdGFsbFBhZ2VP
dmVybGF5KTogRGl0dG8uCisgICAgICAgIChXS0J1bmRsZVBhZ2VJbnN0YWxsUGFnZU92ZXJsYXlX
aXRoQW5pbWF0aW9uKTogRGl0dG8uCisgICAgICAgIChXS0J1bmRsZVBhZ2VVbmluc3RhbGxQYWdl
T3ZlcmxheVdpdGhBbmltYXRpb24pOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdp
bnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdp
bjo6anNQREZEb2NQcmludCk6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6Zm9jdXNQbHVnaW5F
bGVtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnNldFN0YXR1c2Jh
clRleHQpOiBEaXR0by4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjplbGVt
ZW50RGlkRm9jdXMpOiBVcGRhdGVkIGZvciBjaGFuZ2VzIHRvIENocm9tZUNsaWVudC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkQmx1cik6IERpdHRvLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6Om1ha2VGaXJzdFJlc3BvbmRlcik6IERpdHRv
LgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyk6IERpdHRv
LgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkph
dmFTY3JpcHRBbGVydCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OnJ1bkphdmFTY3JpcHRDb25maXJtKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9t
ZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpX
ZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdl
YktpdDo6V2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQpOiBE
aXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpwcmludCk6IERpdHRvLgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6
IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcik6IERpdHRv
LgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3Jh
cGhpY3NMYXllcik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNy
ZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNo
cm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAg
ICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZv
ckVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpkaWRB
ZGRIZWFkZXJMYXllcik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OmRpZEFkZEZvb3RlckxheWVyKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KTogRGl0dG8uCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDogRGl0dG8uCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoQ3Jl
YXRlUGFnZSk6IFBhc3MgcmVmZXJlbmNlLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVj
dG9yQ2xpZW50Ojp+V2ViSW5zcGVjdG9yQ2xpZW50KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6
OldlYkluc3BlY3RvckNsaWVudDo6aGlkZUhpZ2hsaWdodCk6IERpdHRvLgorICAgICAgICAoV2Vi
S2l0OjpXZWJJbnNwZWN0b3JDbGllbnQ6OnNob3dQYWludFJlY3QpOiBEaXR0by4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpGaW5kQ29udHJvbGxlcjo6dXBkYXRlRmluZFVJQWZ0ZXJQYWdlU2Nyb2xsKTogRGl0dG8uCisg
ICAgICAgIChXZWJLaXQ6OkZpbmRDb250cm9sbGVyOjpoaWRlRmluZFVJKTogRGl0dG8uCisKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZTo6Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUpOiBSZXR1cm4gUmVmIGluc3RlYWQg
b2YKKyAgICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNyZWF0
ZVN1YmZyYW1lKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpjcmVhdGUpOiBE
aXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaDogVXBkYXRlZCBm
b3IgdGVoIGFib3ZlLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rv
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rvcjo6b3BlbkluTmV3VGFiKTogUGFz
cyByZWZlcmVuY2UuCisKIDIwMTctMDEtMjEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNp
YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMTEwMTIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0RPTVdpbmRvd0ZldGNo
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCmlu
ZGV4IGFkYWRhY2Q4M2MyNjBjZmE5ZDc2OTlkMzRmNmE0YmVjOTFkNjFmMDYuLmM1OWQzNjU2YTBj
MjEwN2FhOWRhNzZkZjFhNTczN2RlZmY5ZjUyZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENv
cHlyaWdodCAoQykgMjAxNiBDYW5vbiBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzIsMTYgKzMzLDE3IEBACiAjaWYgRU5BQkxFKEZFVENIX0FQSSkKIAogI2luY2x1ZGUg
IkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkZldGNoUmVxdWVzdC5oIgorI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRmV0Y2hSZXNwb25zZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHZvaWQgRE9NV2luZG93RmV0Y2g6OmZldGNoKERPTVdpbmRvdyYgd2luZG93LCBGZXRjaFJl
cXVlc3QmIHJlcXVlc3QsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkKIHsKLSAgICBp
ZiAoIXdpbmRvdy5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgYXV0byogZG9jdW1lbnQg
PSB3aW5kb3cuZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm47
Ci0gICAgRmV0Y2hSZXNwb25zZTo6ZmV0Y2goKndpbmRvdy5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCksIHJlcXVlc3QsIFdURk1vdmUocHJvbWlzZSkpOworICAgIEZldGNoUmVzcG9uc2U6OmZldGNo
KCpkb2N1bWVudCwgcmVxdWVzdCwgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2VDb250ZXh0LmNwcAppbmRleCBlNTQ4OWZjYjU0MGM5Njk0YWU0Mzc1OTY4M2Rl
OWFjZjAxODI0YWQ5Li4zZGNiNTYwMzQzZWI1YWI5NDUxMWEzOTBlYjE5MTFiMzljYjBmMWFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFz
ZUNvbnRleHQuY3BwCkBAIC0yMDQsNyArMjA0LDcgQEAgdm9pZCBEYXRhYmFzZUNvbnRleHQ6OmRh
dGFiYXNlRXhjZWVkZWRRdW90YShjb25zdCBTdHJpbmcmIG5hbWUsIERhdGFiYXNlRGV0YWlscwog
ICAgIGlmIChpczxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkpIHsKICAgICAg
ICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3NjcmlwdEV4ZWN1
dGlvbkNvbnRleHQpOwogICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKSkK
LSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV4Y2VlZGVkRGF0YWJhc2VRdW90
YShkb2N1bWVudC5mcmFtZSgpLCBuYW1lLCBkZXRhaWxzKTsKKyAgICAgICAgICAgIHBhZ2UtPmNo
cm9tZSgpLmNsaWVudCgpLmV4Y2VlZGVkRGF0YWJhc2VRdW90YSgqZG9jdW1lbnQuZnJhbWUoKSwg
bmFtZSwgZGV0YWlscyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgQVNTRVJUKG1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dC0+aXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RX
cmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggNDE2YjE4MzRiZDhhYTYzNGI4YzdiYzJj
ZWU3ZjA5NDZiYzZiYjA3ZS4uMDMyMGY5NTU2YjU3YjJiMDM3MjkxMmIwOGY1MjkyZWI0Zjg2ZWQy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNz
aWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAgLTM3MjksNyAr
MzcyOSw3IEBAIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVNob3dDb250ZXh0TWVudQogICAgICAgICB9
CiAgICAgfQogICAgIAotICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dDb250
ZXh0TWVudUF0KCZwYWdlLT5tYWluRnJhbWUoKSwgcmVjdC5jZW50ZXIoKSk7CisgICAgcGFnZS0+
Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0NvbnRleHRNZW51QXQocGFnZS0+bWFpbkZyYW1l
KCksIHJlY3QuY2VudGVyKCkpOwogfQogCiAtICh2b2lkKWFjY2Vzc2liaWxpdHlTY3JvbGxUb1Zp
c2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93
Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9t
LmNwcAppbmRleCBhM2Y2MmU1NjQ0MTFmMTgwN2JmZjA5NWY1ZGI5Y2E1MmY2ZTZjZGU0Li5hZTdm
ZThjMTdmMGRiY2QxNWI3MDU0ODZkNjQyYTQ1OGFlNTdiY2IyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC0xNzgsNyArMTc4LDcg
QEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3Qs
IEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnQKICAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlT
bG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgIC8v
IERldGVjdCB3aGVuIHdlJ3JlIGdldHRpbmcgdGhlIHByb3BlcnR5ICdzaG93TW9kYWxEaWFsb2cn
LCB0aGlzIGlzIGRpc2FibGVkLCBhbmQgaGFzIGl0cyBvcmlnaW5hbCB2YWx1ZS4KICAgICAgICAg
Ym9vbCBpc1Nob3dNb2RhbERpYWxvZ0FuZFNob3VsZEhpZGUgPSBwcm9wZXJ0eU5hbWUgPT0gc3Rh
dGUtPnByb3BlcnR5TmFtZXMoKS5zaG93TW9kYWxEaWFsb2cKLSAgICAgICAgICAgICYmICFET01X
aW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhmcmFtZSkKKyAgICAgICAgICAgICYmICFET01XaW5k
b3c6OmNhblNob3dNb2RhbERpYWxvZygqZnJhbWUpCiAgICAgICAgICAgICAmJiBzbG90LmlzVmFs
dWUoKSAmJiBpc0hvc3RGdW5jdGlvbihzbG90LmdldFZhbHVlKHN0YXRlLCBwcm9wZXJ0eU5hbWUp
LCBqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25TaG93TW9kYWxEaWFsb2cpOwogICAgICAgICAv
LyBVbmxlc3Mgd2UncmUgaW4gdGhlIHNob3dNb2RhbERpYWxvZyBzcGVjaWFsIGNhc2UsIHdlJ3Jl
IGRvbmUuCiAgICAgICAgIGlmICghaXNTaG93TW9kYWxEaWFsb2dBbmRTaG91bGRIaWRlKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMDgxNjBhZGQzYTNhM2RlOWNkNDg3ZmQ0MTQxMzgyMTYx
YzkxZjE5Yy4uOTQ4ZDY3Y2VlNDM5YjUwZGY4MGJjZmY1OWI3N2YwMjI2NzBiY2ViNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NDgsMTMgKzg0OCwxMSBAQCB2b2lkIERvY3VtZW50Ojpj
aGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKIHsKICAgICBDb250YWlu
ZXJOb2RlOjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlKTsKIAotI2lmIFBMQVRGT1JNKElPUykKICAg
ICAvLyBGSVhNRTogQ2hyb21lOjpkaWRSZWNlaXZlRG9jVHlwZSgpIHVzZWQgdG8gYmUgY2FsbGVk
IG9ubHkgd2hlbiB0aGUgZG9jdHlwZSBjaGFuZ2VkLiBXZSBuZWVkIHRvIGNoZWNrIHRoZQogICAg
IC8vIGltcGFjdCBvZiBjYWxsaW5nIHRoaXMgc3lzdGVtYXRpY2FsbHkuIElmIHRoZSBvdmVyaGVh
ZCBpcyBuZWdsaWdpYmxlLCB3ZSBuZWVkIHRvIHJlbmFtZSBkaWRSZWNlaXZlRG9jVHlwZSwKICAg
ICAvLyBvdGhlcndpc2UsIHdlIG5lZWQgdG8gZGV0ZWN0IHRoZSBkb2MgdHlwZSBjaGFuZ2VzIGJl
Zm9yZSB1cGRhdGluZyB0aGUgdmlld3BvcnQuCiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSB0aGlzLT5w
YWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKGZyYW1lKCkp
OwotI2VuZGlmCisgICAgICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKCpmcmFt
ZSgpKTsKIAogICAgIEVsZW1lbnQqIG5ld0RvY3VtZW50RWxlbWVudCA9IGNoaWxkcmVuT2ZUeXBl
PEVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpOwogICAgIGlmIChuZXdEb2N1bWVudEVsZW1lbnQgPT0g
bV9kb2N1bWVudEVsZW1lbnQpCkBAIC0yMzcyLDkgKzIzNzAsMTAgQEAgdm9pZCBEb2N1bWVudDo6
cGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2JqZWN0cygpCiB7CiAjaWYgUExBVEZPUk0o
SU9TKQogICAgIGlmIChXZWJUaHJlYWRDb3VudE9mT2JzZXJ2ZWRDb250ZW50TW9kaWZpZXJzKCkg
PiAwKSB7Ci0gICAgICAgIEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCk7Ci0gICAgICAgIGlm
IChQYWdlKiBwYWdlID0gZnJhbWUgPyBmcmFtZS0+cGFnZSgpIDogbnVsbHB0cikKLSAgICAgICAg
ICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhm
cmFtZSk7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCkpIHsKKyAgICAg
ICAgICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAgICAgICAgICBw
YWdlLT5jaHJvbWUoKS5jbGllbnQoKS5jbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoKmZyYW1l
KTsKKyAgICAgICAgfQogICAgIH0KICNlbmRpZgogfQpAQCAtMzIxOCw5ICszMjE3LDcgQEAgdm9p
ZCBEb2N1bWVudDo6dXBkYXRlVmlld3BvcnRBcmd1bWVudHMoKQogICAgICAgICBtX2RpZERpc3Bh
dGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZCA9IHRydWU7CiAjZW5kaWYKICAgICAgICAgcGFn
ZSgpLT5jaHJvbWUoKS5kaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShtX3ZpZXdw
b3J0QXJndW1lbnRzKTsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIHBhZ2UoKS0+Y2hyb21l
KCkuZGlkUmVjZWl2ZURvY1R5cGUoZnJhbWUoKSk7Ci0jZW5kaWYKKyAgICAgICAgcGFnZSgpLT5j
aHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZSgqZnJhbWUoKSk7CiAgICAgfQogfQogCkBAIC0zNjQy
LDcgKzM2MzksNyBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBl
bGVtZW50LCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEZvYwogICAgICAgICAgICAgaWYgKGlz
PEhUTUxJbnB1dEVsZW1lbnQ+KCpvbGRGb2N1c2VkRWxlbWVudCkpCiAgICAgICAgICAgICAgICAg
ZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKm9sZEZvY3VzZWRFbGVtZW50KS5lbmRFZGl0aW5n
KCk7CiAgICAgICAgICAgICBpZiAocGFnZSgpKQotICAgICAgICAgICAgICAgIHBhZ2UoKS0+Y2hy
b21lKCkuY2xpZW50KCkuZWxlbWVudERpZEJsdXIob2xkRm9jdXNlZEVsZW1lbnQuZ2V0KCkpOwor
ICAgICAgICAgICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZEJsdXIo
Km9sZEZvY3VzZWRFbGVtZW50KTsKICAgICAgICAgICAgIEFTU0VSVCghbV9mb2N1c2VkRWxlbWVu
dCk7CiAgICAgICAgIH0KIApAQCAtNDAwMCw3ICszOTk3LDcgQEAgdm9pZCBEb2N1bWVudDo6Y3Jl
YXRlRE9NV2luZG93KCkKICAgICBBU1NFUlQobV9mcmFtZSk7CiAgICAgQVNTRVJUKCFtX2RvbVdp
bmRvdyk7CiAKLSAgICBtX2RvbVdpbmRvdyA9IERPTVdpbmRvdzo6Y3JlYXRlKHRoaXMpOworICAg
IG1fZG9tV2luZG93ID0gRE9NV2luZG93OjpjcmVhdGUoKnRoaXMpOwogCiAgICAgQVNTRVJUKG1f
ZG9tV2luZG93LT5kb2N1bWVudCgpID09IHRoaXMpOwogICAgIEFTU0VSVChtX2RvbVdpbmRvdy0+
ZnJhbWUoKSA9PSBtX2ZyYW1lKTsKQEAgLTQwMTUsNyArNDAxMiw3IEBAIHZvaWQgRG9jdW1lbnQ6
OnRha2VET01XaW5kb3dGcm9tKERvY3VtZW50KiBkb2N1bWVudCkKICAgICBBU1NFUlQocGFnZUNh
Y2hlU3RhdGUoKSA9PSBOb3RJblBhZ2VDYWNoZSk7CiAKICAgICBtX2RvbVdpbmRvdyA9IFdURk1v
dmUoZG9jdW1lbnQtPm1fZG9tV2luZG93KTsKLSAgICBtX2RvbVdpbmRvdy0+ZGlkU2VjdXJlVHJh
bnNpdGlvblRvKHRoaXMpOworICAgIG1fZG9tV2luZG93LT5kaWRTZWN1cmVUcmFuc2l0aW9uVG8o
KnRoaXMpOwogCiAgICAgQVNTRVJUKG1fZG9tV2luZG93LT5kb2N1bWVudCgpID09IHRoaXMpOwog
ICAgIEFTU0VSVChtX2RvbVdpbmRvdy0+ZnJhbWUoKSA9PSBtX2ZyYW1lKTsKQEAgLTU1NzMsMTIg
KzU1NzAsMTIgQEAgdm9pZCBEb2N1bWVudDo6cmVxdWVzdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVs
ZW1lbnQqIGVsZW1lbnQsIEZ1bGxTY3JlZW5DaGVja1R5cGUKICAgICAgICAgICAgIGJyZWFrOwog
CiAgICAgICAgIGJvb2wgaGFzS2V5Ym9hcmRBY2Nlc3MgPSB0cnVlOwotICAgICAgICBpZiAoIXBh
Z2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVt
ZW50LCBoYXNLZXlib2FyZEFjY2VzcykpIHsKKyAgICAgICAgaWYgKCFwYWdlKCktPmNocm9tZSgp
LmNsaWVudCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoKmVsZW1lbnQsIGhhc0tleWJv
YXJkQWNjZXNzKSkgewogICAgICAgICAgICAgLy8gVGhlIG5ldyBmdWxsIHNjcmVlbiBBUEkgZG9l
cyBub3QgYWNjZXB0IGEgImZsYWdzIiBwYXJhbWV0ZXIsIHNvIGZhbGwgYmFjayB0byBkaXNhbGxv
d2luZwogICAgICAgICAgICAgLy8ga2V5Ym9hcmQgaW5wdXQgaWYgdGhlIGNocm9tZSBjbGllbnQg
cmVmdXNlcyB0byBhbGxvdyBrZXlib2FyZCBpbnB1dC4KICAgICAgICAgICAgIGhhc0tleWJvYXJk
QWNjZXNzID0gZmFsc2U7CiAKLSAgICAgICAgICAgIGlmICghcGFnZSgpLT5jaHJvbWUoKS5jbGll
bnQoKS5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQsIGhhc0tleWJvYXJkQWNj
ZXNzKSkKKyAgICAgICAgICAgIGlmICghcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0
c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KCplbGVtZW50LCBoYXNLZXlib2FyZEFjY2VzcykpCiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtNTYzMSw3ICs1NjI4LDcgQEAgdm9p
ZCBEb2N1bWVudDo6cmVxdWVzdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQs
IEZ1bGxTY3JlZW5DaGVja1R5cGUKICAgICAgICAgLy8gNS4gUmV0dXJuLCBhbmQgcnVuIHRoZSBy
ZW1haW5pbmcgc3RlcHMgYXN5bmNocm9ub3VzbHkuCiAgICAgICAgIC8vIDYuIE9wdGlvbmFsbHks
IHBlcmZvcm0gc29tZSBhbmltYXRpb24uCiAgICAgICAgIG1fYXJlS2V5c0VuYWJsZWRJbkZ1bGxT
Y3JlZW4gPSBoYXNLZXlib2FyZEFjY2VzczsKLSAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGll
bnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOworICAgICAgICBwYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoKmVsZW1lbnQpOwog
CiAgICAgICAgIC8vIDcuIE9wdGlvbmFsbHksIGRpc3BsYXkgYSBtZXNzYWdlIGluZGljYXRpbmcg
aG93IHRoZSB1c2VyIGNhbiBleGl0IGRpc3BsYXlpbmcgdGhlIGNvbnRleHQgb2JqZWN0IGZ1bGxz
Y3JlZW4uCiAgICAgICAgIHJldHVybjsKQEAgLTU3MjMsMTIgKzU3MjAsMTIgQEAgdm9pZCBEb2N1
bWVudDo6d2Via2l0RXhpdEZ1bGxzY3JlZW4oKQogICAgIC8vIE9ubHkgZXhpdCBvdXQgb2YgZnVs
bCBzY3JlZW4gd2luZG93IG1vZGUgaWYgdGhlcmUgYXJlIG5vIHJlbWFpbmluZyBlbGVtZW50cyBp
biB0aGUgCiAgICAgLy8gZnVsbCBzY3JlZW4gc3RhY2suCiAgICAgaWYgKCFuZXdUb3ApIHsKLSAg
ICAgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQo
bV9mdWxsU2NyZWVuRWxlbWVudC5nZXQoKSk7CisgICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xp
ZW50KCkuZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KCptX2Z1bGxTY3JlZW5FbGVtZW50KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8vIE90aGVyd2lzZSwgbm90aWZ5IHRoZSBjaHJv
bWUgb2YgdGhlIG5ldyBmdWxsIHNjcmVlbiBlbGVtZW50LgotICAgIHBhZ2UoKS0+Y2hyb21lKCku
Y2xpZW50KCkuZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChuZXdUb3ApOworICAgIHBhZ2UoKS0+
Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCgqbmV3VG9wKTsKIH0K
IAogYm9vbCBEb2N1bWVudDo6d2Via2l0RnVsbHNjcmVlbkVuYWJsZWQoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCmluZGV4IDg4ZTNlOTkzMDFhNzE5ZGUyNTQwODNhOTMyNmEzYmFjZjNlYzM4
ZmMuLjg1ZTBiMjZmMWMzZTc4YjJjYmJjNjg1YjZhZDE5ZjI1ZDBkOWJlYTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTIzNDgsNyArMjM0OCw3IEBAIHZvaWQgRWxlbWVudDo6Zm9jdXMoYm9v
bCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIAog
ICAgIGlmIChkb2N1bWVudCgpLmZvY3VzZWRFbGVtZW50KCkgPT0gdGhpcykgewogICAgICAgICBp
ZiAoZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hy
b21lKCkuY2xpZW50KCkuZWxlbWVudERpZFJlZm9jdXModGhpcyk7CisgICAgICAgICAgICBkb2N1
bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZFJlZm9jdXMoKnRoaXMp
OwogCiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMzcxLDcgKzIzNzEsNyBAQCB2b2lkIEVs
ZW1lbnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1c0RpcmVjdGlv
biBkaXJlY3Rpb24pCiAgICAgICAgIC8vIElmIGEgZm9jdXMgZXZlbnQgaGFuZGxlciBjaGFuZ2Vz
IHRoZSBmb2N1cyB0byBhIGRpZmZlcmVudCBub2RlIGl0CiAgICAgICAgIC8vIGRvZXMgbm90IG1h
a2Ugc2Vuc2UgdG8gY29udGludWUgYW5kIHVwZGF0ZSBhcHBlYXJlbmNlLgogICAgICAgICBwcm90
ZWN0ID0gdGhpczsKLSAgICAgICAgaWYgKCFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1
c2VkRWxlbWVudCh0aGlzLCBkb2N1bWVudCgpLmZyYW1lKCksIGRpcmVjdGlvbikpCisgICAgICAg
IGlmICghcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQodGhpcywgKmRv
Y3VtZW50KCkuZnJhbWUoKSwgZGlyZWN0aW9uKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTI0NDEsNyArMjQ0MSw3IEBAIHZvaWQgRWxlbWVudDo6Ymx1cigpCiAgICAgY2FuY2Vs
Rm9jdXNBcHBlYXJhbmNlVXBkYXRlKCk7CiAgICAgaWYgKHRyZWVTY29wZSgpLmZvY3VzZWRFbGVt
ZW50SW5TY29wZSgpID09IHRoaXMpIHsKICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3Vt
ZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxl
cigpLnNldEZvY3VzZWRFbGVtZW50KDAsIGZyYW1lKTsKKyAgICAgICAgICAgIGZyYW1lLT5wYWdl
KCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIsICpmcmFtZSk7
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRvY3VtZW50KCkuc2V0Rm9jdXNlZEVsZW1lbnQo
bnVsbHB0cik7CiAgICAgfQpAQCAtMjQ2NCw3ICsyNDY0LDcgQEAgdm9pZCBFbGVtZW50OjpkaXNw
YXRjaEZvY3VzT3V0RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZlB0cjxF
bGVtZW4KIHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KFJlZlB0cjxFbGVtZW50PiYm
IG9sZEZvY3VzZWRFbGVtZW50LCBGb2N1c0RpcmVjdGlvbikKIHsKICAgICBpZiAoZG9jdW1lbnQo
KS5wYWdlKCkpCi0gICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5l
bGVtZW50RGlkRm9jdXModGhpcyk7CisgICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUo
KS5jbGllbnQoKS5lbGVtZW50RGlkRm9jdXMoKnRoaXMpOwogCiAgICAgRXZlbnREaXNwYXRjaGVy
OjpkaXNwYXRjaEV2ZW50KCp0aGlzLCBGb2N1c0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmZv
Y3VzRXZlbnQsIGZhbHNlLCBmYWxzZSwgZG9jdW1lbnQoKS5kZWZhdWx0VmlldygpLCAwLCBXVEZN
b3ZlKG9sZEZvY3VzZWRFbGVtZW50KSkpOwogfQpAQCAtMjQ3Miw3ICsyNDcyLDcgQEAgdm9pZCBF
bGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgb2xkRm9jdXNlZEVs
ZW1lbnQsIEZvY3VzRGlyZWMKIHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZlbnQoUmVmUHRy
PEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1lbnQpCiB7CiAgICAgaWYgKGRvY3VtZW50KCkucGFn
ZSgpKQotICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVu
dERpZEJsdXIodGhpcyk7CisgICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jbGll
bnQoKS5lbGVtZW50RGlkQmx1cigqdGhpcyk7CiAKICAgICBFdmVudERpc3BhdGNoZXI6OmRpc3Bh
dGNoRXZlbnQoKnRoaXMsIEZvY3VzRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkuYmx1ckV2ZW50
LCBmYWxzZSwgZmFsc2UsIGRvY3VtZW50KCkuZGVmYXVsdFZpZXcoKSwgMCwgV1RGTW92ZShuZXdG
b2N1c2VkRWxlbWVudCkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBiYjNhYjk5ZTYxYzViZGMx
MDQzZjNlYmM0ZTBmNzk2YTJkY2JkOGI3Li43NjYyMzA1NDcxZTUxZmJiZjZlNGZhMzU1NzVlZDZh
YmFiZmM3MDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yMjUzLDcgKzIyNTMsNyBAQCB2b2lkIE5v
ZGU6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQogICAgIH0gZWxzZSBpZiAoZXZl
bnRUeXBlID09IGV2ZW50TmFtZXMoKS5jb250ZXh0bWVudUV2ZW50KSB7CiAgICAgICAgIGlmIChG
cmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCiAgICAgICAgICAgICBpZiAoUGFnZSog
cGFnZSA9IGZyYW1lLT5wYWdlKCkpCi0gICAgICAgICAgICAgICAgcGFnZS0+Y29udGV4dE1lbnVD
b250cm9sbGVyKCkuaGFuZGxlQ29udGV4dE1lbnVFdmVudCgmZXZlbnQpOworICAgICAgICAgICAg
ICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmhhbmRsZUNvbnRleHRNZW51RXZlbnQo
ZXZlbnQpOwogI2VuZGlmCiAgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZlbnROYW1lcygp
LnRleHRJbnB1dEV2ZW50KSB7CiAgICAgICAgIGlmIChpczxUZXh0RXZlbnQ+KGV2ZW50KSkgewpA
QCAtMjI3Miw3ICsyMjcyLDcgQEAgdm9pZCBOb2RlOjpkZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50
JiBldmVudCkKIAogICAgICAgICAgICAgaWYgKHJlbmRlcmVyKSB7CiAgICAgICAgICAgICAgICAg
aWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgICAgICAg
ICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLnN0YXJ0UGFuU2Nyb2xsaW5nKGRvd25jYXN0PFJlbmRl
ckJveD4ocmVuZGVyZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxl
cigpLnN0YXJ0UGFuU2Nyb2xsaW5nKGRvd25jYXN0PFJlbmRlckJveD4oKnJlbmRlcmVyKSk7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yQ29tbWFuZC5jcHAKaW5kZXggYWNmMjI2OGE3ZTc5MzA5MjdjZWNiYjEzZDI0ZDY0Y2ZhZGJm
NmRkZS4uMDFmMDcxY2NhZGNkZjE5NjQxZjI4Nzc3NDE5ZGI0NmNiNTQwYzYwNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC05MzAsNyArOTMwLDcgQEAgc3Rh
dGljIGJvb2wgZXhlY3V0ZVByaW50KEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5k
U291cmNlLCBjb25zdCBTdHJpbmcKICAgICBQYWdlKiBwYWdlID0gZnJhbWUucGFnZSgpOwogICAg
IGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHBhZ2UtPmNocm9tZSgpLnBy
aW50KCZmcmFtZSk7CisgICAgcGFnZS0+Y2hyb21lKCkucHJpbnQoZnJhbWUpOwogICAgIHJldHVy
biB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2Vs
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCmlu
ZGV4IDY3NTlmZjE3N2ZlNzY3MWNiYjE2OTM1ZWIzNjEwZDJhNTY5N2I3ODYuLjcxM2U3Nzk3MTgy
NTI1ZDc3MmY0YzI5MDRmYjkyYjQyNDU5ZjIzOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0yMTU3LDcgKzIxNTcsNyBAQCB2b2lkIEZyYW1lU2VsZWN0
aW9uOjpzZXRGb2N1c2VkRWxlbWVudElmTmVlZGVkKCkKICAgICBib29sIGNhcmV0QnJvd3Npbmcg
PSBtX2ZyYW1lLT5zZXR0aW5ncygpLmNhcmV0QnJvd3NpbmdFbmFibGVkKCk7CiAgICAgaWYgKGNh
cmV0QnJvd3NpbmcpIHsKICAgICAgICAgaWYgKEVsZW1lbnQqIGFuY2hvciA9IGVuY2xvc2luZ0Fu
Y2hvckVsZW1lbnQobV9zZWxlY3Rpb24uYmFzZSgpKSkgewotICAgICAgICAgICAgbV9mcmFtZS0+
cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChhbmNob3IsIG1fZnJh
bWUpOworICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRG
b2N1c2VkRWxlbWVudChhbmNob3IsICptX2ZyYW1lKTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgIH0KQEAgLTIxNjksMTYgKzIxNjksMTYgQEAgdm9pZCBGcmFtZVNlbGVjdGlv
bjo6c2V0Rm9jdXNlZEVsZW1lbnRJZk5lZWRlZCgpCiAgICAgICAgICAgICAvLyBzbyBhZGQgdGhl
ICFpc0ZyYW1lRWxlbWVudCBjaGVjayBoZXJlLiBUaGVyZSdzIHByb2JhYmx5IGEgYmV0dGVyIHdh
eSB0byBtYWtlIHRoaXMKICAgICAgICAgICAgIC8vIHdvcmsgaW4gdGhlIGxvbmcgdGVybSwgYnV0
IHRoaXMgaXMgdGhlIHNhZmVzdCBmaXggYXQgdGhpcyB0aW1lLgogICAgICAgICAgICAgaWYgKHRh
cmdldC0+aXNNb3VzZUZvY3VzYWJsZSgpICYmICFpc0ZyYW1lRWxlbWVudCh0YXJnZXQpKSB7Ci0g
ICAgICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1
c2VkRWxlbWVudCh0YXJnZXQsIG1fZnJhbWUpOworICAgICAgICAgICAgICAgIG1fZnJhbWUtPnBh
Z2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQodGFyZ2V0LCAqbV9mcmFt
ZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
dGFyZ2V0ID0gdGFyZ2V0LT5wYXJlbnRPclNoYWRvd0hvc3RFbGVtZW50KCk7CiAgICAgICAgIH0K
LSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZEVsZW1lbnQoMCk7CisgICAg
ICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIpOwogICAg
IH0KIAogICAgIGlmIChjYXJldEJyb3dzaW5nKQotICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZv
Y3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KDAsIG1fZnJhbWUpOworICAgICAgICBt
X2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG51bGxw
dHIsICptX2ZyYW1lKTsKIH0KIAogdm9pZCBEcmFnQ2FyZXRDb250cm9sbGVyOjpwYWludERyYWdD
YXJldChGcmFtZSogZnJhbWUsIEdyYXBoaWNzQ29udGV4dCYgcCwgY29uc3QgTGF5b3V0UG9pbnQm
IHBhaW50T2Zmc2V0LCBjb25zdCBMYXlvdXRSZWN0JiBjbGlwUmVjdCkgY29uc3QKQEAgLTIzMjgs
NyArMjMyOCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVjdGlvbihTZWxlY3Rp
b25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IFNjcm9sCiAgICAgICAgICAgICAgICAgbGF5
ZXItPnNldEFkanVzdEZvcklPU0NhcmV0V2hlblNjcm9sbGluZyhmYWxzZSk7CiAgICAgICAgICAg
ICAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogICAgICAgICAgICAgICAgIGlmIChtX2ZyYW1lLT5w
YWdlKCkpCi0gICAgICAgICAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCkuY2xp
ZW50KCkubm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKG1fZnJhbWUpOwor
ICAgICAgICAgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLm5v
dGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZSgqbV9mcmFtZSk7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L0NhY2hlZEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUu
Y3BwCmluZGV4IDM2MzM5OGQ2ZWZjYzE0YzRiNmJiNzVmMzEzODdjZGQ3ZTdjNTk5ZDEuLjIxZjI0
YWQzOWY0YTkxNjZjOGIxMTNjYWUyNzAwZmU5ZjQ1MWNhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3Rv
cnkvQ2FjaGVkRnJhbWUuY3BwCkBAIC05OCw5ICs5OCw5IEBAIHZvaWQgQ2FjaGVkRnJhbWVCYXNl
OjpyZXN0b3JlKCkKICAgICBmcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5kaWRSZXN0b3JlRnJvbVBh
Z2VDYWNoZSgpOwogCiAgICAgLy8gUmVjb25zdHJ1Y3QgdGhlIEZyYW1lVHJlZS4gQW5kIG9wZW4g
dGhlIGNoaWxkIENhY2hlZEZyYW1lcyBpbiB0aGVpciByZXNwZWN0aXZlIEZyYW1lTG9hZGVycy4K
LSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9jaGlsZEZyYW1lcy5zaXplKCk7ICsraSkg
ewotICAgICAgICBmcmFtZS50cmVlKCkuYXBwZW5kQ2hpbGQoJm1fY2hpbGRGcmFtZXNbaV0tPnZp
ZXcoKS0+ZnJhbWUoKSk7Ci0gICAgICAgIG1fY2hpbGRGcmFtZXNbaV0tPm9wZW4oKTsKKyAgICBm
b3IgKGF1dG8mIGNoaWxkRnJhbWUgOiBtX2NoaWxkRnJhbWVzKSB7CisgICAgICAgIGZyYW1lLnRy
ZWUoKS5hcHBlbmRDaGlsZChjaGlsZEZyYW1lLT52aWV3KCktPmZyYW1lKCkpOworICAgICAgICBj
aGlsZEZyYW1lLT5vcGVuKCk7CiAgICAgfQogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMTExLDcg
KzExMSw3IEBAIHZvaWQgQ2FjaGVkRnJhbWVCYXNlOjpyZXN0b3JlKCkKICAgICAgICAgICAgIC8v
IEZJWE1FOiBBZGQgU0NST0xMX0xJU1RFTkVSIHRvIHRoZSBsaXN0IG9mIGV2ZW50IHR5cGVzIG9u
IERvY3VtZW50LCBhbmQgdXNlIG1fZG9jdW1lbnQtPmhhc0xpc3RlbmVyVHlwZSgpLiBTZWUgPHJk
YXI6Ly9wcm9ibGVtLzk2MTU0ODI+LgogICAgICAgICAgICAgLy8gRklYTUU6IENhbiB1c2UgRG9j
dW1lbnQ6Omhhc0xpc3RlbmVyVHlwZSgpIG5vdy4KICAgICAgICAgICAgIGlmIChkb21XaW5kb3ct
PnNjcm9sbEV2ZW50TGlzdGVuZXJDb3VudCgpICYmIGZyYW1lLnBhZ2UoKSkKLSAgICAgICAgICAg
ICAgICBmcmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE5lZWRzU2Nyb2xsTm90aWZp
Y2F0aW9ucygmZnJhbWUsIHRydWUpOworICAgICAgICAgICAgICAgIGZyYW1lLnBhZ2UoKS0+Y2hy
b21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKGZyYW1lLCB0cnVlKTsK
ICAgICAgICAgfQogICAgIH0KICNlbmRpZgpAQCAtMTYzLDcgKzE2Myw3IEBAIENhY2hlZEZyYW1l
OjpDYWNoZWRGcmFtZShGcmFtZSYgZnJhbWUpCiAgICAgLy8gMSAtIFdlIHJldXNlIHRoZSBtYWlu
IGZyYW1lLCBzbyB3aGVuIGl0IG5hdmlnYXRlcyB0byBhIG5ldyBwYWdlIGxvYWQgaXQgbmVlZHMg
dG8gc3RhcnQgd2l0aCBhIGJsYW5rIEZyYW1lVHJlZS4KICAgICAvLyAyIC0gSXQncyBtdWNoIGVh
c2llciB0byBkZXN0cm95IGEgQ2FjaGVkRnJhbWUgd2hpbGUgaXQgcmVzaWRlcyBpbiB0aGUgUGFn
ZUNhY2hlIGlmIGl0IGlzIGRpc2Nvbm5lY3RlZCBmcm9tIGl0cyBwYXJlbnQuCiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IG1fY2hpbGRGcmFtZXMuc2l6ZSgpOyArK2kpCi0gICAgICAgIGZy
YW1lLnRyZWUoKS5yZW1vdmVDaGlsZCgmbV9jaGlsZEZyYW1lc1tpXS0+dmlldygpLT5mcmFtZSgp
KTsKKyAgICAgICAgZnJhbWUudHJlZSgpLnJlbW92ZUNoaWxkKG1fY2hpbGRGcmFtZXNbaV0tPnZp
ZXcoKS0+ZnJhbWUoKSk7CiAKICAgICBpZiAoIW1faXNNYWluRnJhbWUpCiAgICAgICAgIGZyYW1l
LnBhZ2UoKS0+ZGVjcmVtZW50U3ViZnJhbWVDb3VudCgpOwpAQCAtMTgxLDcgKzE4MSw3IEBAIENh
Y2hlZEZyYW1lOjpDYWNoZWRGcmFtZShGcmFtZSYgZnJhbWUpCiAgICAgaWYgKG1faXNNYWluRnJh
bWUpIHsKICAgICAgICAgaWYgKERPTVdpbmRvdyogZG9tV2luZG93ID0gbV9kb2N1bWVudC0+ZG9t
V2luZG93KCkpIHsKICAgICAgICAgICAgIGlmIChkb21XaW5kb3ctPnNjcm9sbEV2ZW50TGlzdGVu
ZXJDb3VudCgpICYmIGZyYW1lLnBhZ2UoKSkKLSAgICAgICAgICAgICAgICBmcmFtZS5wYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLnNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucygmZnJhbWUsIGZh
bHNlKTsKKyAgICAgICAgICAgICAgICBmcmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNl
dE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhmcmFtZSwgZmFsc2UpOwogICAgICAgICB9CiAgICAg
fQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmluZGV4IDViYTJj
OTU0YjJiZDg5OTViYzBiMmI3MmQyZmZjZDM3OTE5MTA3YTYuLjUwZTFmY2IxNDM3MTNhMzBhYzkx
NTMzMTNiNTg5MzI1NzkwZDIxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29s
b3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUu
Y3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBDb2xvcklucHV0VHlwZTo6aGFuZGxlRE9NQWN0
aXZhdGVFdmVudChFdmVudCYgZXZlbnQpCiAKICAgICBpZiAoQ2hyb21lKiBjaHJvbWUgPSB0aGlz
LT5jaHJvbWUoKSkgewogICAgICAgICBpZiAoIW1fY2hvb3NlcikKLSAgICAgICAgICAgIG1fY2hv
b3NlciA9IGNocm9tZS0+Y3JlYXRlQ29sb3JDaG9vc2VyKHRoaXMsIHZhbHVlQXNDb2xvcigpKTsK
KyAgICAgICAgICAgIG1fY2hvb3NlciA9IGNocm9tZS0+Y3JlYXRlQ29sb3JDaG9vc2VyKCp0aGlz
LCB2YWx1ZUFzQ29sb3IoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fY2hvb3Nlci0+
cmVhdHRhY2hDb2xvckNob29zZXIodmFsdWVBc0NvbG9yKCkpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXggODExZWIwZDVkMDViNmE2Yzc2ODg3
OGQwM2ZjMzNjMWMyNDk0NmZiMC4uYmFlYjU3NmIxNTYzZWIzMTU3YmI3MmVjZDg3Yjc4MjcwMDll
ZjMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKQEAgLTEy
OSw3ICsxMjksNyBAQCBib29sIEhUTUxBbmNob3JFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxl
KEtleWJvYXJkRXZlbnQmIGV2ZW50KSBjb25zdAogICAgIGlmICghZG9jdW1lbnQoKS5mcmFtZSgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRvY3VtZW50KCkuZnJhbWUoKS0+
ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoJmV2ZW50KSkKKyAgICBpZiAoIWRvY3VtZW50KCku
ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoZXZlbnQpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBpZiAoIXJlbmRlcmVyKCkgJiYgYW5jZXN0b3JzT2ZUeXBlPEhUTUxD
YW52YXNFbGVtZW50PigqdGhpcykuZmlyc3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IGVhOGEzYjMzZTAwMjc4MzJkNjcwZjllMDk4
N2FjY2E4ZDM2OGJhYTIuLjYyYzI4NjE3YWUzNWRlNjczMmZmYTA2NjMzOGZlMzE4MTY1NDZjYTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcApA
QCAtMzcwLDEwICszNzAsOSBAQCBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmlzRm9jdXNh
YmxlKCkgY29uc3QKIAogYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0tleWJvYXJkRm9j
dXNhYmxlKEtleWJvYXJkRXZlbnQmIGV2ZW50KSBjb25zdAogewotICAgIGlmIChpc0ZvY3VzYWJs
ZSgpKQotICAgICAgICBpZiAoZG9jdW1lbnQoKS5mcmFtZSgpKQotICAgICAgICAgICAgcmV0dXJu
IGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvQWxsRm9ybUNvbnRyb2xz
KCZldmVudCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZvY3VzYWJsZSgpCisg
ICAgICAgICYmIGRvY3VtZW50KCkuZnJhbWUoKQorICAgICAgICAmJiBkb2N1bWVudCgpLmZyYW1l
KCktPmV2ZW50SGFuZGxlcigpLnRhYnNUb0FsbEZvcm1Db250cm9scyhldmVudCk7CiB9CiAKIGJv
b2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNNb3VzZUZvY3VzYWJsZSgpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAppbmRleCBkOGE3OTNlMzBlYmYxYmMz
M2IxYTMyYTJmMmNkMWNmN2I5MTg5ZGJjLi5hOWRiOTA1MThkZTcxMDBmODYxYWZjZGRiYTZkMjY3
NWEyMGUzYmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAKQEAg
LTE3MSw3ICsxNzEsNyBAQCBib29sIEhUTUxWaWRlb0VsZW1lbnQ6OnN1cHBvcnRzRnVsbHNjcmVl
bihIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbgogI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKICAgICAvLyBJZiB0aGUgZnVsbCBzY3JlZW4gQVBJIGlzIGVuYWJsZWQgYW5k
IGlzIHN1cHBvcnRlZCBmb3IgdGhlIGN1cnJlbnQgZWxlbWVudAogICAgIC8vIGRvIG5vdCByZXF1
aXJlIHRoYXQgdGhlIHBsYXllciBoYXMgYSB2aWRlbyB0cmFjayB0byBlbnRlciBmdWxsIHNjcmVl
bi4KLSAgICBpZiAodmlkZW9GdWxsc2NyZWVuTW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50RW51bXM6
OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCAmJiBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5z
dXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KHRoaXMsIGZhbHNlKSkKKyAgICBpZiAodmlkZW9G
dWxsc2NyZWVuTW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1v
ZGVTdGFuZGFyZCAmJiBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0c0Z1bGxTY3JlZW5G
b3JFbGVtZW50KCp0aGlzLCBmYWxzZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogI2VuZGlmCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVtZW50LmNwcApp
bmRleCA1OGJkNjJhMzY0NDdmMTE0OThjM2Q4Yzk5NTdmMWNkMWY3M2IwZTc3Li45OGJkNzJiZmYy
ZDBkZjgwNmFiMGFiZjUzN2JhZTY5MDcyMjg0ODBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCkBAIC0xMTksNyArMTE5LDcgQEAgdm9p
ZCBTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiAg
ICAgICAgICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZXRDYXB0dXJpbmdNb3Vz
ZUV2ZW50c0VsZW1lbnQodGhpcyk7CiAgICAgICAgICAgICAgICAgICAgIG1fY2FwdHVyaW5nID0g
dHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLnBh
Z2UoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLnJlZ2lzdGVyUG9w
dXBPcGVuaW5nT2JzZXJ2ZXIodGhpcyk7CisgICAgICAgICAgICAgICAgICAgICAgICBwYWdlLT5j
aHJvbWUoKS5yZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKCp0aGlzKTsKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBVcERvd25TdGF0ZSBvbGRVcERvd25T
dGF0ZSA9IG1fdXBEb3duU3RhdGU7CkBAIC0yMDUsNyArMjA1LDcgQEAgdm9pZCBTcGluQnV0dG9u
RWxlbWVudDo6cmVsZWFzZUNhcHR1cmUoKQogICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxl
cigpLnNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudChudWxscHRyKTsKICAgICAgICAgICAg
IG1fY2FwdHVyaW5nID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3Vt
ZW50KCkucGFnZSgpKQotICAgICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLnVucmVnaXN0ZXJQ
b3B1cE9wZW5pbmdPYnNlcnZlcih0aGlzKTsKKyAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUo
KS51bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoKnRoaXMpOwogICAgICAgICB9CiAgICAg
fQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21h
Yy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAKaW5kZXggZmQwYzNlMzZmMzkzMzQx
ZGJkYWExOGMwMzFlMWIxZTc0ODdlZmNjOS4uYmE5YmFkZmU1NjJlNGJmZTdmOWUxNGYwYTZiNWVk
MTliNTBhYTNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0lt
YWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCkBAIC0xMTcsNyAr
MTE3LDcgQEAgdm9pZCBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6ZGVmYXVsdEV2ZW50
SGFuZGxlcihFdmVudCYgZXZlbnQpCiAgICAgICAgIGlmICghcGFnZSkKICAgICAgICAgICAgIHJl
dHVybjsKIAotICAgICAgICBwYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93SW1hZ2VD
b250cm9sc01lbnUoJmV2ZW50KTsKKyAgICAgICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVy
KCkuc2hvd0ltYWdlQ29udHJvbHNNZW51KGV2ZW50KTsKICAgICAgICAgZXZlbnQuc2V0RGVmYXVs
dEhhbmRsZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKaW5kZXggMzE1NDdkYjdhZjNi
NTNmZDdlYjQyNDFjNzA1NDNmOGY0YjY2YjE3ZS4uNzQ5ODhjYjVlNjA0ODcyMDg4OTNiMDMxNjAx
Y2JhODIzNGJiOTNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kSG9zdC5jcHAKQEAgLTMzOSw4ICszMzksOCBAQCB2b2lkIEluc3BlY3RvckZy
b250ZW5kSG9zdDo6c2hvd0NvbnRleHRNZW51KEV2ZW50KiBldmVudCwgY29uc3QgVmVjdG9yPENv
bnRleHRNZQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gbWVudVByb3ZpZGVyID0g
RnJvbnRlbmRNZW51UHJvdmlkZXI6OmNyZWF0ZSh0aGlzLCB7ICZzdGF0ZSwgZnJvbnRlbmRBcGlP
YmplY3QgfSwgaXRlbXMpOwotICAgIG1fZnJvbnRlbmRQYWdlLT5jb250ZXh0TWVudUNvbnRyb2xs
ZXIoKS5zaG93Q29udGV4dE1lbnUoZXZlbnQsIG1lbnVQcm92aWRlci5wdHIoKSk7CiAgICAgbV9t
ZW51UHJvdmlkZXIgPSBtZW51UHJvdmlkZXIucHRyKCk7CisgICAgbV9mcm9udGVuZFBhZ2UtPmNv
bnRleHRNZW51Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVudSgqZXZlbnQsIG1lbnVQcm92aWRl
cik7CiB9CiAKICNlbmRpZgpAQCAtMzU1LDcgKzM1NSw3IEBAIHZvaWQgSW5zcGVjdG9yRnJvbnRl
bmRIb3N0OjpkaXNwYXRjaEV2ZW50QXNDb250ZXh0TWVudUV2ZW50KEV2ZW50KiBldmVudCkKICAg
ICBNb3VzZUV2ZW50JiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VFdmVudD4oKmV2ZW50KTsK
ICAgICBJbnRQb2ludCBtb3VzZVBvaW50ID0gSW50UG9pbnQobW91c2VFdmVudC5jbGllbnRYKCks
IG1vdXNlRXZlbnQuY2xpZW50WSgpKTsKIAotICAgIG1fZnJvbnRlbmRQYWdlLT5jb250ZXh0TWVu
dUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnVBdChmcmFtZSwgbW91c2VQb2ludCk7CisgICAg
bV9mcm9udGVuZFBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVudUF0
KCpmcmFtZSwgbW91c2VQb2ludCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShldmVudCk7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXggZTc1NDk1ZmQ0
MjRjMjNlODk1MzZjYThkNDMzOTA1M2JkNGUxMWJiZC4uNTc3OTBiNTBjZmNkYTRhNTJmMGM0YzAy
ZWI1N2FiMjMzYTZkNTdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAK
QEAgLTU3MiwxOSArNTcyLDE5IEBAIGNsYXNzIEVtcHR5VmlzaXRlZExpbmtTdG9yZSBmaW5hbCA6
IHB1YmxpYyBWaXNpdGVkTGlua1N0b3JlIHsKICAgICB2b2lkIGFkZFZpc2l0ZWRMaW5rKFBhZ2Um
LCBMaW5rSGFzaCkgZmluYWwgeyB9CiB9OwogCi1SZWZQdHI8UG9wdXBNZW51PiBFbXB0eUNocm9t
ZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0CitSZWZQdHI8
UG9wdXBNZW51PiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRW1wdHlQb3B1cE1lbnUp
OwogfQogCi1SZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRl
U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0CitSZWZQdHI8U2VhcmNoUG9w
dXBNZW51PiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVu
dUNsaWVudCYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRW1wdHlTZWFyY2hQ
b3B1cE1lbnUpOwogfQogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAKLXN0ZDo6dW5p
cXVlX3B0cjxDb2xvckNob29zZXI+IEVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29z
ZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgQ29sb3ImKQorc3RkOjp1bmlxdWVfcHRyPENv
bG9yQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNo
b29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYpCiB7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggOTFjMmQzODY5MDEwZGE1ZWE0M2Qw
MDljZDBmMTNlMGI3OGU3Y2ZmNS4uZTJhYTYwZWQ3NDg5Mzc0ODY5NmU4OTE3MDMzYjFjZTAxZjFk
NTMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtNjEsNyArNjEsNyBA
QCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZv
aWQgZm9jdXNlZEVsZW1lbnRDaGFuZ2VkKEVsZW1lbnQqKSBmaW5hbCB7IH0KICAgICB2b2lkIGZv
Y3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKSBmaW5hbCB7IH0KIAotICAgIFBhZ2UqIGNyZWF0ZVdp
bmRvdyhGcmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJl
cyYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9Cisg
ICAgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lJiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNv
bnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpIGZpbmFsIHsgcmV0
dXJuIG51bGxwdHI7IH0KICAgICB2b2lkIHNob3coKSBmaW5hbCB7IH0KIAogICAgIGJvb2wgY2Fu
UnVuTW9kYWwoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQpAQCAtODQsMTkgKzg0LDE5IEBAIGNs
YXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAgICAgdm9pZCBh
ZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiwgdW5zaWduZWQsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KIAogICAg
IGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgZmluYWwgeyByZXR1cm4gZmFs
c2U7IH0KLSAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcm
LCBGcmFtZSopIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIHJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmLCBGcmFtZSYpIGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KIAogICAgIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgZmluYWwgeyB9CiAKLSAgICB2b2lkIHJ1
bkphdmFTY3JpcHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQotICAgIGJv
b2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IHJl
dHVybiBmYWxzZTsgfQotICAgIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSosIGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFN0cmluZyYpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmLCBjb25zdCBTdHJpbmcmKSBmaW5h
bCB7IH0KKyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiwgY29uc3QgU3RyaW5n
JikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQo
RnJhbWUmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBTdHJpbmcmKSBmaW5hbCB7IHJl
dHVybiBmYWxzZTsgfQogCiAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0
dXJhbCgpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBzZWxlY3RJdGVtQWxpZ25t
ZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3QgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0K
LSAgICBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Kikg
Y29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9w
dXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxQb3B1cE1l
bnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBmaW5hbDsKKyAgICBS
ZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xp
ZW50JikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3Ry
aW5nJikgZmluYWwgeyB9CiAKQEAgLTEwNiw0MyArMTA2LDQ3IEBAIGNsYXNzIEVtcHR5Q2hyb21l
Q2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVu
dHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9CiAgICAgdm9pZCBpbnZh
bGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmKSBmaW5hbCB7IH0KICAg
ICB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJl
Y3QmKSBmaW5hbCB7IH0KKwogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICB2b2lk
IGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJbnRQb2ludCYpIGZpbmFsIHsgfQogI2Vu
ZGlmCisKICNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQogICAgIHZvaWQg
c2NoZWR1bGVBbmltYXRpb24oKSBmaW5hbCB7IH0KICNlbmRpZgogCiAgICAgSW50UG9pbnQgc2Ny
ZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYgcCkgY29uc3QgZmluYWwgeyByZXR1cm4gcDsg
fQogICAgIEludFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JiByKSBjb25zdCBm
aW5hbCB7IHJldHVybiByOyB9CisKICNpZiBQTEFURk9STShJT1MpCiAgICAgSW50UG9pbnQgYWNj
ZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmIHApIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHA7IH07CiAgICAgSW50UmVjdCByb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVl
bihjb25zdCBJbnRSZWN0JiByKSBjb25zdCBmaW5hbCB7IHJldHVybiByOyB9OwogI2VuZGlmCisK
ICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgZmluYWwg
eyByZXR1cm4gMDsgfQotICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNvbnN0
IEludFNpemUmKSBjb25zdCBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQo
RnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3QgZmluYWwgeyB9CiAKICAgICB2b2lkIHNjcm9s
bGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgZmluYWwgeyB9CiAgICAgdm9pZCBtb3VzZURpZE1v
dmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQpIGZpbmFsIHsgfQog
CiAgICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rpb24pIGZpbmFs
IHsgfQogCi0gICAgdm9pZCBwcmludChGcmFtZSopIGZpbmFsIHsgfQorICAgIHZvaWQgcHJpbnQo
RnJhbWUmKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1l
KiwgY29uc3QgU3RyaW5nJiwgRGF0YWJhc2VEZXRhaWxzKSBmaW5hbCB7IH0KKyAgICB2b2lkIGV4
Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSYsIGNvbnN0IFN0cmluZyYsIERhdGFiYXNlRGV0YWls
cykgZmluYWwgeyB9CiAKICAgICB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCkg
ZmluYWwgeyB9Ci0gICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNl
Y3VyaXR5T3JpZ2luKiwgaW50NjRfdCkgZmluYWwgeyB9CisgICAgdm9pZCByZWFjaGVkQXBwbGlj
YXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCkgZmluYWwgeyB9
CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29s
b3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3Qg
Q29sb3ImKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVD
b2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3QgQ29sb3ImKSBmaW5hbDsKICNl
bmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3NlciYpIGZpbmFs
OwogICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZpbGVJ
Y29uTG9hZGVyJikgZmluYWwgeyB9CiAKLSAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBO
b2RlKikgZmluYWwgeyB9Ci0gICAgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBOb2RlKikgZmlu
YWwgeyB9CisgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoRWxlbWVudCYpIGZpbmFsIHsgfQorICAg
IHZvaWQgZWxlbWVudERpZEJsdXIoRWxlbWVudCYpIGZpbmFsIHsgfQogCiAjaWYgIVBMQVRGT1JN
KElPUykKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKSBmaW5hbCB7IH0KQEAgLTE1
MSw4ICsxNTUsOCBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGll
bnQgewogCiAgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0
IGZpbmFsIHsgfQogCi0gICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdy
YXBoaWNzTGF5ZXIqKSBmaW5hbCB7IH0KLSAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhp
Y3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSBmaW5hbCB7IH0KKyAgICB2b2lkIGF0dGFj
aFJvb3RHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopIGZpbmFsIHsgfQorICAg
IHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXll
ciopIGZpbmFsIHsgfQogICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXph
dGlvbigpIGZpbmFsIHsgfQogICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2go
KSBmaW5hbCB7IH0KIApAQCAtMTYyLDE1ICsxNjYsMTYgQEAgY2xhc3MgRW1wdHlDaHJvbWVDbGll
bnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lkIEFYRmluaXNoRnJhbWVMb2FkKCkg
ZmluYWwgeyB9CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKICNpZiBFTkFCTEUoSU9TX1RP
VUNIX0VWRU5UUykKICAgICB2b2lkIGRpZFByZXZlbnREZWZhdWx0Rm9yRXZlbnQoKSBmaW5hbCB7
IH0KICNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgZGlkUmVjZWl2ZU1vYmls
ZURvY1R5cGUoYm9vbCkgZmluYWwgeyB9Ci0gICAgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNh
dGlvbnMoRnJhbWUqLCBib29sKSBmaW5hbCB7IH0KLSAgICB2b2lkIG9ic2VydmVkQ29udGVudENo
YW5nZShGcmFtZSopIGZpbmFsIHsgfQotICAgIHZvaWQgY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2
ZXJzKEZyYW1lKikgZmluYWwgeyB9Ci0gICAgdm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5
U2Nyb2xsaW5nRnJhbWUoRnJhbWUqKSBmaW5hbCB7IH0KKyAgICB2b2lkIHNldE5lZWRzU2Nyb2xs
Tm90aWZpY2F0aW9ucyhGcmFtZSYsIGJvb2wpIGZpbmFsIHsgfQorICAgIHZvaWQgb2JzZXJ2ZWRD
b250ZW50Q2hhbmdlKEZyYW1lJikgZmluYWwgeyB9CisgICAgdm9pZCBjbGVhckNvbnRlbnRDaGFu
Z2VPYnNlcnZlcnMoRnJhbWUmKSBmaW5hbCB7IH0KKyAgICB2b2lkIG5vdGlmeVJldmVhbGVkU2Vs
ZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShGcmFtZSYpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlkTGF5
b3V0KExheW91dFR5cGUpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlkU3RhcnRPdmVyZmxvd1Njcm9s
bCgpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlkRW5kT3ZlcmZsb3dTY3JvbGwoKSBmaW5hbCB7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDE0ZDQ3ZGE5NzJlOTI4MzY5
YWM4MTNjZjk2MTg0NzRmMWFmMDAxODUuLjc4ZGZmMGM0M2M1ZmIwMTFjNzgwYTQ0N2E5YjY5MmM0
NGFmZDQzYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtMzk3LDcg
KzM5Nyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0oUmVmPEZvcm1TdWJtaXNzaW9u
PiYmIHN1Ym1pc3Npb24pCiAKICAgICBGcmFtZSogdGFyZ2V0RnJhbWUgPSBmaW5kRnJhbWVGb3JO
YXZpZ2F0aW9uKHN1Ym1pc3Npb24tPnRhcmdldCgpLCAmc3VibWlzc2lvbi0+c3RhdGUoKS5zb3Vy
Y2VEb2N1bWVudCgpKTsKICAgICBpZiAoIXRhcmdldEZyYW1lKSB7Ci0gICAgICAgIGlmICghRE9N
V2luZG93OjphbGxvd1BvcFVwKCZtX2ZyYW1lKSAmJiAhU2NyaXB0Q29udHJvbGxlcjo6cHJvY2Vz
c2luZ1VzZXJHZXN0dXJlKCkpCisgICAgICAgIGlmICghRE9NV2luZG93OjphbGxvd1BvcFVwKG1f
ZnJhbWUpICYmICFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAvLyBGSVhNRTogdGFyZ2V0RnJhbWUgY2FuIGJl
IG51bGwgZm9yIHR3byBkaXN0aW5jdCByZWFzb25zOgpAQCAtMTg1MiwxMSArMTg1Miw5IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9hZCgpCiAgICAgICAgIGhpc3Rvcnko
KS51cGRhdGVGb3JDbGllbnRSZWRpcmVjdCgpOwogCiAgICAgaWYgKG1fbG9hZGluZ0Zyb21DYWNo
ZWRQYWdlKSB7Ci0jaWYgUExBVEZPUk0oSU9TKQogICAgICAgICAvLyBOb3RlLCBkaWRSZWNlaXZl
RG9jVHlwZSBpcyBleHBlY3RlZCB0byBiZSBjYWxsZWQgZm9yIGNhY2hlZCBwYWdlcy4gU2VlIDxy
ZGFyOi8vcHJvYmxlbS81OTA2NzU4PiBmb3IgbW9yZSBkZXRhaWxzLgotICAgICAgICBpZiAobV9m
cmFtZS5kb2N1bWVudCgpLT5kb2N0eXBlKCkgJiYgbV9mcmFtZS5wYWdlKCkpCi0gICAgICAgICAg
ICBtX2ZyYW1lLnBhZ2UoKS0+Y2hyb21lKCkuZGlkUmVjZWl2ZURvY1R5cGUoJm1fZnJhbWUpOwot
I2VuZGlmCisgICAgICAgIGlmIChhdXRvKiBwYWdlID0gbV9mcmFtZS5wYWdlKCkpCisgICAgICAg
ICAgICBwYWdlLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZShtX2ZyYW1lKTsKICAgICAgICAg
bV9mcmFtZS5kb2N1bWVudCgpLT5yZXN1bWUoQWN0aXZlRE9NT2JqZWN0OjpQYWdlQ2FjaGUpOwog
CiAgICAgICAgIC8vIEZvcmNlIGEgbGF5b3V0IHRvIHVwZGF0ZSB2aWV3IHNpemUgYW5kIHRoZXJl
YnkgdXBkYXRlIHNjcm9sbGJhcnMuCkBAIC0yNDM5LDE1ICsyNDM3LDE1IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OmRldGFjaENoaWxkcmVuKCkKICAgICAgICAgY2hpbGQtPmxvYWRlcigpLmRldGFjaEZy
b21QYXJlbnQoKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6Y2xvc2VBbmRSZW1vdmVDaGlsZChG
cmFtZSogY2hpbGQpCit2b2lkIEZyYW1lTG9hZGVyOjpjbG9zZUFuZFJlbW92ZUNoaWxkKEZyYW1l
JiBjaGlsZCkKIHsKLSAgICBjaGlsZC0+dHJlZSgpLmRldGFjaEZyb21QYXJlbnQoKTsKKyAgICBj
aGlsZC50cmVlKCkuZGV0YWNoRnJvbVBhcmVudCgpOwogCi0gICAgY2hpbGQtPnNldFZpZXcobnVs
bHB0cik7Ci0gICAgaWYgKGNoaWxkLT5vd25lckVsZW1lbnQoKSAmJiBjaGlsZC0+cGFnZSgpKQot
ICAgICAgICBjaGlsZC0+cGFnZSgpLT5kZWNyZW1lbnRTdWJmcmFtZUNvdW50KCk7Ci0gICAgY2hp
bGQtPndpbGxEZXRhY2hQYWdlKCk7Ci0gICAgY2hpbGQtPmRldGFjaEZyb21QYWdlKCk7CisgICAg
Y2hpbGQuc2V0VmlldyhudWxscHRyKTsKKyAgICBpZiAoY2hpbGQub3duZXJFbGVtZW50KCkgJiYg
Y2hpbGQucGFnZSgpKQorICAgICAgICBjaGlsZC5wYWdlKCktPmRlY3JlbWVudFN1YmZyYW1lQ291
bnQoKTsKKyAgICBjaGlsZC53aWxsRGV0YWNoUGFnZSgpOworICAgIGNoaWxkLmRldGFjaEZyb21Q
YWdlKCk7CiAKICAgICBtX2ZyYW1lLnRyZWUoKS5yZW1vdmVDaGlsZChjaGlsZCk7CiB9CkBAIC0y
NTI4LDcgKzI1MjYsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpkZXRhY2hGcm9tUGFyZW50KCkKICAg
ICBtX3Byb2dyZXNzVHJhY2tlciA9IG51bGxwdHI7CiAKICAgICBpZiAoRnJhbWUqIHBhcmVudCA9
IG1fZnJhbWUudHJlZSgpLnBhcmVudCgpKSB7Ci0gICAgICAgIHBhcmVudC0+bG9hZGVyKCkuY2xv
c2VBbmRSZW1vdmVDaGlsZCgmbV9mcmFtZSk7CisgICAgICAgIHBhcmVudC0+bG9hZGVyKCkuY2xv
c2VBbmRSZW1vdmVDaGlsZChtX2ZyYW1lKTsKICAgICAgICAgcGFyZW50LT5sb2FkZXIoKS5zY2hl
ZHVsZUNoZWNrQ29tcGxldGVkKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9mcmFtZS5zZXRW
aWV3KG51bGxwdHIpOwpAQCAtMzAzMiw3ICszMDMwLDcgQEAgYm9vbCBGcmFtZUxvYWRlcjo6ZGlz
cGF0Y2hCZWZvcmVVbmxvYWRFdmVudChDaHJvbWUmIGNocm9tZSwgRnJhbWVMb2FkZXIqIGZyYW1l
TG8KICAgICBmcmFtZUxvYWRlckJlaW5nTmF2aWdhdGVkLT5tX2N1cnJlbnROYXZpZ2F0aW9uSGFz
U2hvd25CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwgPSB0cnVlOwogCiAgICAgU3RyaW5nIHRleHQg
PSBkb2N1bWVudC0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhiZWZvcmVVbmxvYWRF
dmVudC0+cmV0dXJuVmFsdWUoKSk7Ci0gICAgcmV0dXJuIGNocm9tZS5ydW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwodGV4dCwgJm1fZnJhbWUpOworICAgIHJldHVybiBjaHJvbWUucnVuQmVmb3Jl
VW5sb2FkQ29uZmlybVBhbmVsKHRleHQsIG1fZnJhbWUpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVy
Ojpjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBGb3JtU3RhdGUqIGZvcm1TdGF0ZSwgYm9vbCBzaG91bGRDb250aW51ZSwgQWxs
b3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTCkKQEAg
LTM2NTcsNyArMzY1NSw3IEBAIFJlZlB0cjxGcmFtZT4gY3JlYXRlV2luZG93KEZyYW1lJiBvcGVu
ZXJGcmFtZSwgRnJhbWUmIGxvb2t1cEZyYW1lLCBjb25zdCBGcmFtZUxvCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCiAgICAgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5ID0gc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeVRvQXBwbHko
b3BlbmVyRnJhbWUsIHJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSgpKTsKLSAg
ICBQYWdlKiBwYWdlID0gb2xkUGFnZS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KCZvcGVuZXJGcmFt
ZSwgcmVxdWVzdFdpdGhSZWZlcnJlciwgZmVhdHVyZXMsIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVz
dFdpdGhSZWZlcnJlci5yZXNvdXJjZVJlcXVlc3QoKSwgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSkpOworICAgIFBhZ2UqIHBhZ2UgPSBvbGRQYWdlLT5jaHJvbWUoKS5jcmVhdGVXaW5kb3co
b3BlbmVyRnJhbWUsIHJlcXVlc3RXaXRoUmVmZXJyZXIsIGZlYXR1cmVzLCBOYXZpZ2F0aW9uQWN0
aW9uKHJlcXVlc3RXaXRoUmVmZXJyZXIucmVzb3VyY2VSZXF1ZXN0KCksIHNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3kpKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCkBAIC0zNzA1LDcgKzM3MDMsNyBAQCBSZWZQdHI8RnJhbWU+IGNyZWF0ZVdpbmRvdyhGcmFt
ZSYgb3BlbmVyRnJhbWUsIEZyYW1lJiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMbwogICAgICAg
ICB3aW5kb3dSZWN0LnNldEhlaWdodCgqZmVhdHVyZXMuaGVpZ2h0ICsgKHdpbmRvd1JlY3QuaGVp
Z2h0KCkgLSB2aWV3cG9ydFNpemUuaGVpZ2h0KCkpKTsKIAogICAgIC8vIEVuc3VyZSBub24tTmFO
IHZhbHVlcywgbWluaW11bSBzaXplIGFzIHdlbGwgYXMgYmVpbmcgd2l0aGluIHZhbGlkIHNjcmVl
biBhcmVhLgotICAgIEZsb2F0UmVjdCBuZXdXaW5kb3dSZWN0ID0gRE9NV2luZG93OjphZGp1c3RX
aW5kb3dSZWN0KHBhZ2UsIHdpbmRvd1JlY3QpOworICAgIEZsb2F0UmVjdCBuZXdXaW5kb3dSZWN0
ID0gRE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0KCpwYWdlLCB3aW5kb3dSZWN0KTsKIAogICAg
IGlmICghZnJhbWUtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGZhYTA3MTJmYTRkMjQ3ODdmYTU1ZDQ4NGM1NDU0MjY1
YmE1MWI2MmIuLmQ2OWM4MjljNGUyZjZhYmY5NGNlMWI0MDU2NDc3ZWM2YjkwYjY5OGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0zNjYsNyArMzY2LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHJlcXVlc3RGcm9tRGVsZWdhdGUoUmVzb3VyY2VSZXF1ZXN0JiwgdW5zaWduZWQg
bG9uZyYgaWRlbnRpZmllciwgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBkZXRhY2hDaGlsZHJlbigpOwotICAgIHZvaWQgY2xvc2VBbmRSZW1vdmVDaGlsZChGcmFt
ZSopOworICAgIHZvaWQgY2xvc2VBbmRSZW1vdmVDaGlsZChGcmFtZSYpOwogCiAgICAgdm9pZCBs
b2FkSW5TYW1lRG9jdW1lbnQoY29uc3QgVVJMJiwgU2VyaWFsaXplZFNjcmlwdFZhbHVlKiBzdGF0
ZU9iamVjdCwgYm9vbCBpc05ld05hdmlnYXRpb24pOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9s
aWN5Q2hlY2tlci5jcHAKaW5kZXggYmJiNjFlYjQ4MjEyMTk4M2FiZWI1N2JjZTRlODQ3MzRiN2Zl
NjIyMy4uYTAxY2UyOTI5YTEwMTA2MDA0YTI0ZTc0YTYwOGI4Y2Q3Njc2MWE2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIHZvaWQg
UG9saWN5Q2hlY2tlcjo6Y2hlY2tOZXdXaW5kb3dQb2xpY3koY29uc3QgTmF2aWdhdGlvbkFjdGlv
biYgYWN0aW9uLCBjb25zdCBSCiAgICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKSAmJiBtX2ZyYW1l
LmRvY3VtZW50KCktPmlzU2FuZGJveGVkKFNhbmRib3hQb3B1cHMpKQogICAgICAgICByZXR1cm4g
Y29udGludWVBZnRlck5hdmlnYXRpb25Qb2xpY3koUG9saWN5SWdub3JlKTsKIAotICAgIGlmICgh
RE9NV2luZG93OjphbGxvd1BvcFVwKCZtX2ZyYW1lKSkKKyAgICBpZiAoIURPTVdpbmRvdzo6YWxs
b3dQb3BVcChtX2ZyYW1lKSkKICAgICAgICAgcmV0dXJuIGNvbnRpbnVlQWZ0ZXJOYXZpZ2F0aW9u
UG9saWN5KFBvbGljeUlnbm9yZSk7CiAKICAgICBtX2NhbGxiYWNrLnNldChyZXF1ZXN0LCBmb3Jt
U3RhdGUsIGZyYW1lTmFtZSwgYWN0aW9uLCBXVEZNb3ZlKGZ1bmN0aW9uKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAu
Y3BwCmluZGV4IDhhMjhmODhlNjY3M2RiMTcwMmIxNDQxNGZhZjczOGI1Yzc0MmZjZWYuLjlmOWFi
MDAwY2Y2ZDkzODVmOGEyNThmNTE1MWI4NzBmNzI5MGQ4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3BwCkBA
IC03ODQsNyArNzg0LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNhY2hlVXBkYXRl
RmFpbGVkKCkKIAogdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnJlY2FsY3VsYXRlQXZhaWxh
YmxlU3BhY2VJblF1b3RhKCkKIHsKLSAgICBpZiAoIW1fZnJhbWUtPnBhZ2UoKS0+YXBwbGljYXRp
b25DYWNoZVN0b3JhZ2UoKS5jYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5n
Q2FjaGUobV9vcmlnaW4uZ2V0KCksIG1fbmV3ZXN0Q2FjaGUuZ2V0KCksIG1fYXZhaWxhYmxlU3Bh
Y2VJblF1b3RhKSkgeworICAgIGlmICghbV9mcmFtZS0+cGFnZSgpLT5hcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZSgpLmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZSht
X29yaWdpbiwgbV9uZXdlc3RDYWNoZS5nZXQoKSwgbV9hdmFpbGFibGVTcGFjZUluUXVvdGEpKSB7
CiAgICAgICAgIC8vIEZhaWxlZCB0byBkZXRlcm1pbmUgd2hhdCBpcyBsZWZ0IGluIHRoZSBxdW90
YS4gRmFsbGJhY2sgdG8gYWxsb3dpbmcgYW55dGhpbmcuCiAgICAgICAgIG1fYXZhaWxhYmxlU3Bh
Y2VJblF1b3RhID0gQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6Om5vUXVvdGEoKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmgKaW5kZXggZmM4NTFkYTdjZmE4YzQzMzJmNjg1ZWEyOTEyMmUzN2Q0ZGI3YWFhMi4u
Y2ViODNkZmM2MjE2ZmU1NTg0Mjc3YzlmOWFhZTU2NjA4ZDdjNGQwYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaApA
QCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAKICAgICBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSYg
c3RvcmFnZSgpIHsgcmV0dXJuIG1fc3RvcmFnZTsgfQogICAgIGNvbnN0IFVSTCYgbWFuaWZlc3RV
UkwoKSBjb25zdCB7IHJldHVybiBtX21hbmlmZXN0VVJMOyB9Ci0gICAgY29uc3QgU2VjdXJpdHlP
cmlnaW4qIG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luLmdldCgpOyB9CisgICAgY29u
c3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luLmdldCgp
OyB9CiAgICAgVXBkYXRlU3RhdHVzIHVwZGF0ZVN0YXR1cygpIGNvbnN0IHsgcmV0dXJuIG1fdXBk
YXRlU3RhdHVzOyB9CiAgICAgdm9pZCBzZXRVcGRhdGVTdGF0dXMoVXBkYXRlU3RhdHVzIHN0YXR1
cyk7CiAKQEAgLTEzNSw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIFJlZjxBcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZT4gbV9zdG9yYWdlOwogCiAgICAgVVJMIG1fbWFuaWZlc3RVUkw7Ci0gICAgUmVm
UHRyPFNlY3VyaXR5T3JpZ2luPiBtX29yaWdpbjsKKyAgICBSZWY8U2VjdXJpdHlPcmlnaW4+IG1f
b3JpZ2luOwogICAgIFVwZGF0ZVN0YXR1cyBtX3VwZGF0ZVN0YXR1cyB7IElkbGUgfTsKICAgICAK
ICAgICAvLyBUaGlzIGlzIHRoZSBuZXdlc3QgY29tcGxldGUgY2FjaGUgaW4gdGhlIGdyb3VwLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZS5jcHAKaW5kZXggZjRmYTk1YjUxN2VjNzc5MTYyNGZjMGYyNWE2NTZiMGMw
OTQ0MTQ3Ny4uYjZiOWQ3YTdjZDYzYzA3NmFlN2E4NDEwOTk5ODBiNDNlZjg3YjZhYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9y
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2UuY3BwCkBAIC00MjEsNyArNDIxLDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZTo6c2V0RGVmYXVsdE9yaWdpblF1b3RhKGludDY0X3QgcXVvdGEpCiAgICAgbV9kZWZh
dWx0T3JpZ2luUXVvdGEgPSBxdW90YTsKIH0KIAotYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwg
aW50NjRfdCYgcXVvdGEpCitib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjYWxjdWxhdGVR
dW90YUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBpbnQ2NF90JiBxdW90
YSkKIHsKICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRlciB0cmFuc2Fj
dGlvbkNvdW50ZXI7CiAKQEAgLTQzMiw3ICs0MzIsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlOjpjYWxjdWxhdGVRdW90YUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiogb3Jp
ZwogICAgIGlmIChzdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSykKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCi0gICAgc3RhdGVtZW50LmJpbmRUZXh0KDEsIFNlY3VyaXR5T3JpZ2luRGF0
YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpvcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKKyAg
ICBzdGF0ZW1lbnQuYmluZFRleHQoMSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlP
cmlnaW4ob3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CiAgICAgaW50IHJlc3VsdCA9IHN0
YXRlbWVudC5zdGVwKCk7CiAKICAgICAvLyBSZXR1cm4gdGhlIHF1b3RhLCBvciBpZiBpdCB3YXMg
bnVsbCB0aGUgZGVmYXVsdC4KQEAgLTQ3Miw3ICs0NzIsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjpjYWxjdWxhdGVVc2FnZUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiog
b3JpZwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZTo6Y2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hlKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luKiBvcmlnaW4sIEFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlLCBpbnQ2NF90JiBy
ZW1haW5pbmdTaXplKQorYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUmVt
YWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hlKGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBv
cmlnaW4sIEFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlLCBpbnQ2NF90JiByZW1haW5pbmdTaXplKQog
ewogICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1dG9Db3VudGVyIHRyYW5zYWN0aW9u
Q291bnRlcjsKIApAQCAtNTAzLDcgKzUwMyw3IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShjb25zCiAg
ICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBzdGF0ZW1lbnQuYmluZFRleHQoMSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpm
cm9tU2VjdXJpdHlPcmlnaW4oKm9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCkpOworICAgIHN0
YXRlbWVudC5iaW5kVGV4dCgxLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdp
bihvcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKICAgICBpZiAoZXhjbHVkaW5nQ2FjaGVJ
ZGVudGlmaWVyICE9IDApCiAgICAgICAgIHN0YXRlbWVudC5iaW5kSW50NjQoMiwgZXhjbHVkaW5n
Q2FjaGVJZGVudGlmaWVyKTsKICAgICBpbnQgcmVzdWx0ID0gc3RhdGVtZW50LnN0ZXAoKTsKQEAg
LTY4OCwxNCArNjg4LDE0IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnN0b3JlKEFw
cGxpY2F0aW9uQ2FjaGVHcm91cCogZ3JvdXAsIEdyb3VwU3RvcmFnZUlECiAKICAgICBzdGF0ZW1l
bnQuYmluZEludDY0KDEsIHVybEhvc3RIYXNoKGdyb3VwLT5tYW5pZmVzdFVSTCgpKSk7CiAgICAg
c3RhdGVtZW50LmJpbmRUZXh0KDIsIGdyb3VwLT5tYW5pZmVzdFVSTCgpKTsKLSAgICBzdGF0ZW1l
bnQuYmluZFRleHQoMywgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKmdy
b3VwLT5vcmlnaW4oKSkuZGF0YWJhc2VJZGVudGlmaWVyKCkpOworICAgIHN0YXRlbWVudC5iaW5k
VGV4dCgzLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihncm91cC0+b3Jp
Z2luKCkpLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKIAogICAgIGlmICghZXhlY3V0ZVN0YXRlbWVu
dChzdGF0ZW1lbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICB1bnNpZ25lZCBncm91
cFN0b3JhZ2VJRCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX2RhdGFiYXNlLmxhc3RJbnNlcnRS
b3dJRCgpKTsKIAotICAgIGlmICghZW5zdXJlT3JpZ2luUmVjb3JkKGdyb3VwLT5vcmlnaW4oKSkp
CisgICAgaWYgKCFlbnN1cmVPcmlnaW5SZWNvcmQoJmdyb3VwLT5vcmlnaW4oKSkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGdyb3VwLT5zZXRTdG9yYWdlSUQoZ3JvdXBTdG9yYWdlSUQp
OwpAQCAtOTcxLDcgKzk3MSw3IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNoZWNr
T3JpZ2luUXVvdGEoQXBwbGljYXRpb25DYWNoZUdyb3VwKiBncm91cCwgQXBwCiB7CiAgICAgLy8g
Q2hlY2sgaWYgdGhlIG9sZENhY2hlIHdpdGggdGhlIG5ld0NhY2hlIHdvdWxkIHJlYWNoIHRoZSBw
ZXItb3JpZ2luIHF1b3RhLgogICAgIGludDY0X3QgcmVtYWluaW5nU3BhY2VJbk9yaWdpbjsKLSAg
ICBjb25zdCBTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gZ3JvdXAtPm9yaWdpbigpOworICAgIGF1
dG8mIG9yaWdpbiA9IGdyb3VwLT5vcmlnaW4oKTsKICAgICBpZiAoY2FsY3VsYXRlUmVtYWluaW5n
U2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hlKG9yaWdpbiwgb2xkQ2FjaGUsIHJlbWFpbmluZ1Nw
YWNlSW5PcmlnaW4pKSB7CiAgICAgICAgIGlmIChyZW1haW5pbmdTcGFjZUluT3JpZ2luIDwgbmV3
Q2FjaGUtPmVzdGltYXRlZFNpemVJblN0b3JhZ2UoKSkgewogICAgICAgICAgICAgaW50NjRfdCBx
dW90YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlLmgKaW5kZXggOWZhMjkyZWU1MGZhZWU4OWMzNWM4NjFhOGY5OWZh
MTZmOTA1NDc2ZC4uOWQxN2ExYmNkMDZhNmFjMTExYTBhY2FhNjA3NjRmNmIxNTQwNTBmZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVT
dG9yYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlLmgKQEAgLTYzLDggKzYzLDggQEAgcHVibGljOgogICAgIGludDY0X3QgZGVm
YXVsdE9yaWdpblF1b3RhKCkgY29uc3QgeyByZXR1cm4gbV9kZWZhdWx0T3JpZ2luUXVvdGE7IH0K
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERlZmF1bHRPcmlnaW5RdW90YShpbnQ2NF90IHF1
b3RhKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhbGN1bGF0ZVVzYWdlRm9yT3JpZ2luKGNv
bnN0IFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCYgdXNhZ2UpOwotICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgY2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qLCBpbnQ2
NF90JiBxdW90YSk7Ci0gICAgYm9vbCBjYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2luRXhj
bHVkaW5nQ2FjaGUoY29uc3QgU2VjdXJpdHlPcmlnaW4qLCBBcHBsaWNhdGlvbkNhY2hlKiwgaW50
NjRfdCYgcmVtYWluaW5nU2l6ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjYWxjdWxhdGVR
dW90YUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYsIGludDY0X3QmIHF1b3RhKTsKKyAg
ICBib29sIGNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShjb25z
dCBTZWN1cml0eU9yaWdpbiYsIEFwcGxpY2F0aW9uQ2FjaGUqLCBpbnQ2NF90JiByZW1haW5pbmdT
aXplKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2lu
KGNvbnN0IFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCBxdW90YSk7CiAgICAgYm9vbCBjaGVja09y
aWdpblF1b3RhKEFwcGxpY2F0aW9uQ2FjaGVHcm91cCosIEFwcGxpY2F0aW9uQ2FjaGUqIG9sZENh
Y2hlLCBBcHBsaWNhdGlvbkNhY2hlKiBuZXdDYWNoZSwgaW50NjRfdCYgdG90YWxTcGFjZU5lZWRl
ZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01I
VE1MQXJjaGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRN
TEFyY2hpdmUuY3BwCmluZGV4IGE5MjFiMDVlODQ2YTA1YTVhZmNlNjMwM2FhMThmOGJmMzA3MDlk
YjQuLjJjYTY3ZTI3YmU4ODQyY2M3YTIxN2RhYTkyNTVlODE4ZWY5YTE5MmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcApA
QCAtMTMzLDggKzEzMyw4IEBAIFJlZlB0cjxNSFRNTEFyY2hpdmU+IE1IVE1MQXJjaGl2ZTo6Y3Jl
YXRlKGNvbnN0IFVSTCYgdXJsLCBTaGFyZWRCdWZmZXImIGRhdGEpCiBSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBNSFRNTEFyY2hpdmU6OmdlbmVyYXRlTUhUTUxEYXRhKFBhZ2UqIHBhZ2UpCiB7CiAgICAg
VmVjdG9yPFBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZT4gcmVzb3VyY2VzOwotICAgIFBhZ2VTZXJp
YWxpemVyIHBhZ2VTZXJpYWxpemVyKCZyZXNvdXJjZXMpOwotICAgIHBhZ2VTZXJpYWxpemVyLnNl
cmlhbGl6ZShwYWdlKTsKKyAgICBQYWdlU2VyaWFsaXplciBwYWdlU2VyaWFsaXplcihyZXNvdXJj
ZXMpOworICAgIHBhZ2VTZXJpYWxpemVyLnNlcmlhbGl6ZSgqcGFnZSk7CiAKICAgICBTdHJpbmcg
Ym91bmRhcnkgPSBnZW5lcmF0ZVJhbmRvbUJvdW5kYXJ5KCk7CiAgICAgU3RyaW5nIGVuZE9mUmVz
b3VyY2VCb3VuZGFyeSA9IG1ha2VTdHJpbmcoIi0tIiwgYm91bmRhcnksICJcclxuIik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAKaW5kZXggZTE1MTc2ZDMzMTlkOTRjZTBi
OWM5MWZiYmQ4ZWI3Mzc4MTk0Yzg2NC4uZTk3MTM5NjFjZTNiNzQ4ODRhMWIzYmUzZTUwYTczOTA2
MjNmODllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhNTEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcApAQCAtMTgy
LDcgKzE4Miw3IEBAIGJvb2wgTWF0aE1MRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXli
b2FyZEV2ZW50JiBldmVudCkgY29uc3QKICAgICAgICAgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6Omlz
S2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpOwogCiAgICAgaWYgKGlzTGluaygpKQotICAgICAgICBy
ZXR1cm4gZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS50YWJzVG9MaW5rcygmZXZl
bnQpOworICAgICAgICByZXR1cm4gZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS50
YWJzVG9MaW5rcyhldmVudCk7CiAKICAgICByZXR1cm4gU3R5bGVkRWxlbWVudDo6aXNLZXlib2Fy
ZEZvY3VzYWJsZShldmVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggNzRkZGUxYTM0
ZTE1ZTkwOTcxYWQwODZlMjcwYjlhYTU2OTg4MjEwYi4uZTM2M2Y0M2FkYzZmNWJjZTQ5MDg0NDA5
NzUzNzQ2YWE4NjFlODRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNDgsNyArNDgsNiBA
QAogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJXaW5kb3dGZWF0dXJl
cy5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvVk0uaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5o
PgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
IApAQCAtNjMsMTAgKzYyLDYgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIENocm9tZTo6
Q2hyb21lKFBhZ2UmIHBhZ2UsIENocm9tZUNsaWVudCYgY2xpZW50KQogICAgIDogbV9wYWdlKHBh
Z2UpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCi0gICAgLCBtX2Rpc3BsYXlJRCgwKQotI2lmIFBM
QVRGT1JNKElPUykKLSAgICAsIG1faXNEaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZVN1cHBy
ZXNzZWQoZmFsc2UpCi0jZW5kaWYKIHsKIH0KIApAQCAtMTE0LDYgKzEwOSw3IEBAIEludFJlY3Qg
Q2hyb21lOjpyb290Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpIGNvbnN0CiB9CiAg
ICAgCiAjaWYgUExBVEZPUk0oSU9TKQorCiBJbnRQb2ludCBDaHJvbWU6OmFjY2Vzc2liaWxpdHlT
Y3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9jbGllbnQuYWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcocG9pbnQpOwpAQCAtMTIz
LDYgKzExOSw3IEBAIEludFJlY3QgQ2hyb21lOjpyb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVl
bihjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAogewogICAgIHJldHVybiBtX2NsaWVudC5yb290
Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVlbihyZWN0KTsKIH0KKwogI2VuZGlmCiAKIFBsYXRmb3Jt
UGFnZUNsaWVudCBDaHJvbWU6OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0CkBAIC0xMzAsNyAr
MTI3LDcgQEAgUGxhdGZvcm1QYWdlQ2xpZW50IENocm9tZTo6cGxhdGZvcm1QYWdlQ2xpZW50KCkg
Y29uc3QKICAgICByZXR1cm4gbV9jbGllbnQucGxhdGZvcm1QYWdlQ2xpZW50KCk7CiB9CiAKLXZv
aWQgQ2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50U2l6
ZSYgc2l6ZSkgY29uc3QKK3ZvaWQgQ2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiBm
cmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKIHsKICAgICBtX2NsaWVudC5jb250ZW50
c1NpemVDaGFuZ2VkKGZyYW1lLCBzaXplKTsKIH0KQEAgLTE5MCwxNSArMTg3LDEzIEBAIHZvaWQg
Q2hyb21lOjpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKiBmcmFtZSkgY29uc3QKICAgICBtX2Ns
aWVudC5mb2N1c2VkRnJhbWVDaGFuZ2VkKGZyYW1lKTsKIH0KIAotUGFnZSogQ2hyb21lOjpjcmVh
dGVXaW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBj
b25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFj
dGlvbikgY29uc3QKK1BhZ2UqIENocm9tZTo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29u
c3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1
cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24pIGNvbnN0CiB7CiAgICAgUGFnZSog
bmV3UGFnZSA9IG1fY2xpZW50LmNyZWF0ZVdpbmRvdyhmcmFtZSwgcmVxdWVzdCwgZmVhdHVyZXMs
IGFjdGlvbik7CiAgICAgaWYgKCFuZXdQYWdlKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIGlm
IChTdG9yYWdlTmFtZXNwYWNlKiBvbGRTZXNzaW9uU3RvcmFnZSA9IG1fcGFnZS5zZXNzaW9uU3Rv
cmFnZShmYWxzZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChhdXRvKiBvbGRT
ZXNzaW9uU3RvcmFnZSA9IG1fcGFnZS5zZXNzaW9uU3RvcmFnZShmYWxzZSkpCiAgICAgICAgIG5l
d1BhZ2UtPnNldFNlc3Npb25TdG9yYWdlKG9sZFNlc3Npb25TdG9yYWdlLT5jb3B5KG5ld1BhZ2Up
KTsKLQogICAgIHJldHVybiBuZXdQYWdlOwogfQogCkBAIC0yNzYsNyArMjcxLDcgQEAgYm9vbCBD
aHJvbWU6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpCiAgICAgcmV0dXJuIG1fY2xp
ZW50LmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpOwogfQogCi1ib29sIENocm9tZTo6
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUq
IGZyYW1lKQorYm9vbCBDaHJvbWU6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIEZyYW1lJiBmcmFtZSkKIHsKICAgICAvLyBEZWZlciBsb2FkcyBpbiBj
YXNlIHRoZSBjbGllbnQgbWV0aG9kIHJ1bnMgYSBuZXcgZXZlbnQgbG9vcCB0aGF0IHdvdWxkCiAg
ICAgLy8gb3RoZXJ3aXNlIGNhdXNlIHRoZSBsb2FkIHRvIGNvbnRpbnVlIHdoaWxlIHdlJ3JlIGlu
IHRoZSBtaWRkbGUgb2YgZXhlY3V0aW5nIEphdmFTY3JpcHQuCkBAIC0yOTAsNTMgKzI4NSw0NyBA
QCB2b2lkIENocm9tZTo6Y2xvc2VXaW5kb3dTb29uKCkKICAgICBtX2NsaWVudC5jbG9zZVdpbmRv
d1Nvb24oKTsKIH0KIAotdm9pZCBDaHJvbWU6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJh
bWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgQ2hyb21lOjpydW5KYXZhU2NyaXB0QWxl
cnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgLy8gRGVmZXIg
bG9hZHMgaW4gY2FzZSB0aGUgY2xpZW50IG1ldGhvZCBydW5zIGEgbmV3IGV2ZW50IGxvb3AgdGhh
dCB3b3VsZAogICAgIC8vIG90aGVyd2lzZSBjYXVzZSB0aGUgbG9hZCB0byBjb250aW51ZSB3aGls
ZSB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGV4ZWN1dGluZyBKYXZhU2NyaXB0LgogICAgIFBhZ2VH
cm91cExvYWREZWZlcnJlciBkZWZlcnJlcihtX3BhZ2UsIHRydWUpOwogCi0gICAgQVNTRVJUKGZy
YW1lKTsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKLSAgICBTdHJpbmcgZGlz
cGxheU1lc3NhZ2UgPSBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhtZXNz
YWdlKTsKKyAgICBTdHJpbmcgZGlzcGxheU1lc3NhZ2UgPSBmcmFtZS5kaXNwbGF5U3RyaW5nTW9k
aWZpZWRCeUVuY29kaW5nKG1lc3NhZ2UpOwogCiAgICAgbV9jbGllbnQucnVuSmF2YVNjcmlwdEFs
ZXJ0KGZyYW1lLCBkaXNwbGF5TWVzc2FnZSk7CiB9CiAKLWJvb2wgQ2hyb21lOjpydW5KYXZhU2Ny
aXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK2Jvb2wgQ2hy
b21lOjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKIHsKICAgICAvLyBEZWZlciBsb2FkcyBpbiBjYXNlIHRoZSBjbGllbnQgbWV0aG9kIHJ1
bnMgYSBuZXcgZXZlbnQgbG9vcCB0aGF0IHdvdWxkCiAgICAgLy8gb3RoZXJ3aXNlIGNhdXNlIHRo
ZSBsb2FkIHRvIGNvbnRpbnVlIHdoaWxlIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgZXhlY3V0aW5n
IEphdmFTY3JpcHQuCiAgICAgUGFnZUdyb3VwTG9hZERlZmVycmVyIGRlZmVycmVyKG1fcGFnZSwg
dHJ1ZSk7CiAKLSAgICBBU1NFUlQoZnJhbWUpOwogICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2Vy
dmVycygpOwotICAgIFN0cmluZyBkaXNwbGF5TWVzc2FnZSA9IGZyYW1lLT5kaXNwbGF5U3RyaW5n
TW9kaWZpZWRCeUVuY29kaW5nKG1lc3NhZ2UpOwotCi0gICAgcmV0dXJuIG1fY2xpZW50LnJ1bkph
dmFTY3JpcHRDb25maXJtKGZyYW1lLCBkaXNwbGF5TWVzc2FnZSk7CisgICAgcmV0dXJuIG1fY2xp
ZW50LnJ1bkphdmFTY3JpcHRDb25maXJtKGZyYW1lLCBmcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZp
ZWRCeUVuY29kaW5nKG1lc3NhZ2UpKTsKIH0KIAotYm9vbCBDaHJvbWU6OnJ1bkphdmFTY3JpcHRQ
cm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwgY29uc3QgU3RyaW5nJiBk
ZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQorYm9vbCBDaHJvbWU6OnJ1bkphdmFTY3JpcHRQ
cm9tcHQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwgY29uc3QgU3RyaW5nJiBk
ZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQogewogICAgIC8vIERlZmVyIGxvYWRzIGluIGNh
c2UgdGhlIGNsaWVudCBtZXRob2QgcnVucyBhIG5ldyBldmVudCBsb29wIHRoYXQgd291bGQKICAg
ICAvLyBvdGhlcndpc2UgY2F1c2UgdGhlIGxvYWQgdG8gY29udGludWUgd2hpbGUgd2UncmUgaW4g
dGhlIG1pZGRsZSBvZiBleGVjdXRpbmcgSmF2YVNjcmlwdC4KICAgICBQYWdlR3JvdXBMb2FkRGVm
ZXJyZXIgZGVmZXJyZXIobV9wYWdlLCB0cnVlKTsKIAotICAgIEFTU0VSVChmcmFtZSk7CiAgICAg
bm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7Ci0gICAgU3RyaW5nIGRpc3BsYXlQcm9tcHQg
PSBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhwcm9tcHQpOworICAgIFN0
cmluZyBkaXNwbGF5UHJvbXB0ID0gZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGlu
Zyhwcm9tcHQpOwogCi0gICAgYm9vbCBvayA9IG1fY2xpZW50LnJ1bkphdmFTY3JpcHRQcm9tcHQo
ZnJhbWUsIGRpc3BsYXlQcm9tcHQsIGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29k
aW5nKGRlZmF1bHRWYWx1ZSksIHJlc3VsdCk7CisgICAgYm9vbCBvayA9IG1fY2xpZW50LnJ1bkph
dmFTY3JpcHRQcm9tcHQoZnJhbWUsIGRpc3BsYXlQcm9tcHQsIGZyYW1lLmRpc3BsYXlTdHJpbmdN
b2RpZmllZEJ5RW5jb2RpbmcoZGVmYXVsdFZhbHVlKSwgcmVzdWx0KTsKICAgICBpZiAob2spCi0g
ICAgICAgIHJlc3VsdCA9IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHJl
c3VsdCk7CisgICAgICAgIHJlc3VsdCA9IGZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5j
b2RpbmcocmVzdWx0KTsKIAogICAgIHJldHVybiBvazsKIH0KIAotdm9pZCBDaHJvbWU6OnNldFN0
YXR1c2JhclRleHQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIHN0YXR1cykKK3ZvaWQgQ2hy
b21lOjpzZXRTdGF0dXNiYXJUZXh0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBzdGF0dXMp
CiB7Ci0gICAgQVNTRVJUKGZyYW1lKTsKLSAgICBtX2NsaWVudC5zZXRTdGF0dXNiYXJUZXh0KGZy
YW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHN0YXR1cykpOworICAgIG1fY2xp
ZW50LnNldFN0YXR1c2JhclRleHQoZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGlu
ZyhzdGF0dXMpKTsKIH0KIAogdm9pZCBDaHJvbWU6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNv
bnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykKQEAgLTQw
Nyw5ICszOTYsOSBAQCB2b2lkIENocm9tZTo6c2V0VG9vbFRpcChjb25zdCBIaXRUZXN0UmVzdWx0
JiByZXN1bHQpCiAgICAgbV9jbGllbnQuc2V0VG9vbFRpcCh0b29sVGlwLCB0b29sVGlwRGlyZWN0
aW9uKTsKIH0KIAotdm9pZCBDaHJvbWU6OnByaW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgQ2hyb21l
OjpwcmludChGcmFtZSYgZnJhbWUpCiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGhhdmUg
UGFnZUdyb3VwTG9hZERlZmVycmVyLCBsaWtlIHJ1bk1vZGFsKCkgb3IgcnVuSmF2YVNjcmlwdEFs
ZXJ0KCksIGJlY2FzdWUgaXQncyBubyBkaWZmZXJlbnQgZnJvbSB0aG9zZS4KKyAgICAvLyBGSVhN
RTogVGhpcyBzaG91bGQgaGF2ZSBQYWdlR3JvdXBMb2FkRGVmZXJyZXIsIGxpa2UgcnVuTW9kYWwo
KSBvciBydW5KYXZhU2NyaXB0QWxlcnQoKSwgYmVjYXVzZSBpdCdzIG5vIGRpZmZlcmVudCBmcm9t
IHRob3NlLgogICAgIG1fY2xpZW50LnByaW50KGZyYW1lKTsKIH0KIApAQCAtNDI0LDExICs0MTMs
MTMgQEAgdm9pZCBDaHJvbWU6OmRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpCiB9CiAKICNpZiBF
TkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLXN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IENo
cm9tZTo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25z
dCBDb2xvciYgaW5pdGlhbENvbG9yKQorCitzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBD
aHJvbWU6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmIGNsaWVudCwgY29u
c3QgQ29sb3ImIGluaXRpYWxDb2xvcikKIHsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZl
cnMoKTsKICAgICByZXR1cm4gbV9jbGllbnQuY3JlYXRlQ29sb3JDaG9vc2VyKGNsaWVudCwgaW5p
dGlhbENvbG9yKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgQ2hyb21lOjpydW5PcGVuUGFuZWwoRnJh
bWUmIGZyYW1lLCBGaWxlQ2hvb3NlciYgZmlsZUNob29zZXIpCkBAIC01MzgsMTMgKzUyOSwxMyBA
QCBib29sIENocm9tZTo6aGFzT3BlbmVkUG9wdXAoKSBjb25zdAogICAgIHJldHVybiBtX2NsaWVu
dC5oYXNPcGVuZWRQb3B1cCgpOwogfQogCi1SZWZQdHI8UG9wdXBNZW51PiBDaHJvbWU6OmNyZWF0
ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxQb3B1cE1l
bnU+IENocm9tZTo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25z
dAogewogICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpOwogICAgIHJldHVybiBtX2Ns
aWVudC5jcmVhdGVQb3B1cE1lbnUoY2xpZW50KTsKIH0KIAotUmVmUHRyPFNlYXJjaFBvcHVwTWVu
dT4gQ2hyb21lOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQp
IGNvbnN0CitSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJvbWU6OmNyZWF0ZVNlYXJjaFBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKICAgICBub3RpZnlQb3B1cE9w
ZW5pbmdPYnNlcnZlcnMoKTsKICAgICByZXR1cm4gbV9jbGllbnQuY3JlYXRlU2VhcmNoUG9wdXBN
ZW51KGNsaWVudCk7CkBAIC01NTUsMzAgKzU0NiwyNyBAQCBib29sIENocm9tZTo6cmVxdWlyZXNG
dWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpCiAgICAgcmV0dXJuIG1fY2xpZW50LnJlcXVpcmVz
RnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKTsKIH0KIAotI2lmIFBMQVRGT1JNKElPUykKLS8v
IEZJWE1FOiBNYWtlIGFyZ3VtZW50LCBmcmFtZSwgYSByZWZlcmVuY2UuCi12b2lkIENocm9tZTo6
ZGlkUmVjZWl2ZURvY1R5cGUoRnJhbWUqIGZyYW1lKQordm9pZCBDaHJvbWU6OmRpZFJlY2VpdmVE
b2NUeXBlKEZyYW1lJiBmcmFtZSkKIHsKLSAgICBBU1NFUlQoZnJhbWUpOwotICAgIGlmICghZnJh
bWUtPmlzTWFpbkZyYW1lKCkpCisjaWYgIVBMQVRGT1JNKElPUykKKyAgICBVTlVTRURfUEFSQU0o
ZnJhbWUpOworI2Vsc2UKKyAgICBpZiAoIWZyYW1lLmlzTWFpbkZyYW1lKCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGJvb2wgaGFzTW9iaWxlRG9jVHlwZSA9IGZhbHNlOwotICAgIGlmIChEb2N1
bWVudFR5cGUqIGRvY3VtZW50VHlwZSA9IGZyYW1lLT5kb2N1bWVudCgpLT5kb2N0eXBlKCkpCi0g
ICAgICAgIGhhc01vYmlsZURvY1R5cGUgPSBkb2N1bWVudFR5cGUtPnB1YmxpY0lkKCkuY29udGFp
bnMoInhodG1sIG1vYmlsZSIsIGZhbHNlKTsKLSAgICBtX2NsaWVudC5kaWRSZWNlaXZlTW9iaWxl
RG9jVHlwZShoYXNNb2JpbGVEb2NUeXBlKTsKLX0KKyAgICBhdXRvKiBkb2N0eXBlID0gZnJhbWUu
ZG9jdW1lbnQoKS0+ZG9jdHlwZSgpOworICAgIG1fY2xpZW50LmRpZFJlY2VpdmVNb2JpbGVEb2NU
eXBlKGRvY3R5cGUgJiYgZG9jdHlwZS0+cHVibGljSWQoKS5jb250YWluc0lnbm9yaW5nQVNDSUlD
YXNlKCJ4aHRtbCBtb2JpbGUiKSk7CiAjZW5kaWYKK30KIAotdm9pZCBDaHJvbWU6OnJlZ2lzdGVy
UG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXIqIG9ic2VydmVyKQordm9p
ZCBDaHJvbWU6OnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2
ZXImIG9ic2VydmVyKQogewotICAgIEFTU0VSVChvYnNlcnZlcik7Ci0gICAgbV9wb3B1cE9wZW5p
bmdPYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKKyAgICBtX3BvcHVwT3BlbmluZ09ic2VydmVy
cy5hcHBlbmQoJm9ic2VydmVyKTsKIH0KIAotdm9pZCBDaHJvbWU6OnVucmVnaXN0ZXJQb3B1cE9w
ZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciogb2JzZXJ2ZXIpCit2b2lkIENocm9t
ZTo6dW5yZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyJiBv
YnNlcnZlcikKIHsKLSAgICBib29sIHJlbW92ZWQgPSBtX3BvcHVwT3BlbmluZ09ic2VydmVycy5y
ZW1vdmVGaXJzdChvYnNlcnZlcik7CisgICAgYm9vbCByZW1vdmVkID0gbV9wb3B1cE9wZW5pbmdP
YnNlcnZlcnMucmVtb3ZlRmlyc3QoJm9ic2VydmVyKTsKICAgICBBU1NFUlRfVU5VU0VEKHJlbW92
ZWQsIHJlbW92ZWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCA2ZDI1YWM4OTE2MDBmMjE4
NGE2NTRkYWQzMjI2ZDQ2YzgxOTMyYTY2Li5iM2M0NjQ3YzFhZTk1MDA1MjA3ODM0OWUwNzZhMjli
MGU2YWRjNmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgog
CiAgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0OwogCi0g
ICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0
OworICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYsIGNvbnN0IEludFNpemUmKSBj
b25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0V2luZG93UmVjdChjb25zdCBGbG9h
dFJlY3QmKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBGbG9hdFJlY3Qgd2luZG93UmVjdCgp
IGNvbnN0OwpAQCAtMTExLDcgKzExMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGZvY3VzZWRFbGVt
ZW50Q2hhbmdlZChFbGVtZW50KikgY29uc3Q7CiAgICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2Vk
KEZyYW1lKikgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBQYWdlKiBjcmVhdGVXaW5kb3co
RnJhbWUqLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBj
b25zdCBOYXZpZ2F0aW9uQWN0aW9uJikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgUGFnZSog
Y3JlYXRlV2luZG93KEZyYW1lJiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRv
d0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpIGNvbnN0OwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgc2hvdygpIGNvbnN0OwogCiAgICAgYm9vbCBjYW5SdW5Nb2RhbCgpIGNvbnN0
OwpAQCAtMTMyLDI2ICsxMzIsMjYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVzaXphYmxlKGJv
b2wpIGNvbnN0OwogCiAgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKTsK
LSAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIEZyYW1lKik7CisgICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBGcmFtZSYpOwogCiAgICAgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKTsK
IAotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiwgY29uc3QgU3RyaW5nJik7Ci0g
ICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSosIGNvbnN0IFN0cmluZyYpOwotICAg
IGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KTsKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldFN0YXR1c2JhclRleHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmKTsKKyAg
ICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYsIGNvbnN0IFN0cmluZyYpOworICAgIGJv
b2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmLCBjb25zdCBTdHJpbmcmKTsKKyAgICBib29s
IHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KEZyYW1lJiwgY29uc3QgU3RyaW5nJik7CiAKICAgICB2
b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNpZ25l
ZCBtb2RpZmllckZsYWdzKTsKIAogICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBIaXRUZXN0UmVz
dWx0Jik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHByaW50KEZyYW1lKik7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBwcmludChGcmFtZSYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBlbmFibGVTdWRkZW5UZXJtaW5hdGlvbigpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlz
YWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikK
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29s
b3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcik7CisgICAgc3RkOjp1
bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNs
aWVudCYsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpOwogI2VuZGlmCiAKICAgICB2b2lkIHJ1
bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJik7CkBAIC0xNjgsMjggKzE2OCwyOCBAQCBw
dWJsaWM6CiAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOwog
ICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigp
OwogICAgIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdDsKLSAgICBSZWZQdHI8UG9wdXBNZW51
PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7Ci0gICAgUmVmUHRyPFNl
YXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNv
bnN0OworICAgIFJlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQmKSBjb25zdDsKKyAgICBSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1
cE1lbnUoUG9wdXBNZW51Q2xpZW50JikgY29uc3Q7CiAKICNpZiBQTEFURk9STShJT1MpCiAgICAg
Ly8gRklYTUU6IENhbiB3ZSBjb21lIHVwIHdpdGggYSBiZXR0ZXIgbmFtZSBmb3IgdGhpcyBzZXR0
ZXI/CiAgICAgdm9pZCBzZXREaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZVN1cHByZXNzZWQo
Ym9vbCBkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZVN1cHByZXNzZWQpIHsgbV9pc0Rpc3Bh
dGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlU3VwcHJlc3NlZCA9IGRpc3BhdGNoVmlld3BvcnREYXRh
RGlkQ2hhbmdlU3VwcHJlc3NlZDsgfQotCi0gICAgdm9pZCBkaWRSZWNlaXZlRG9jVHlwZShGcmFt
ZSopOwogI2VuZGlmCiAKLSAgICB2b2lkIHJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9w
dXBPcGVuaW5nT2JzZXJ2ZXIqKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNl
cnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciopOworICAgIHZvaWQgZGlkUmVjZWl2ZURvY1R5cGUo
RnJhbWUmKTsKKworICAgIHZvaWQgcmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9w
ZW5pbmdPYnNlcnZlciYpOworICAgIHZvaWQgdW5yZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVy
KFBvcHVwT3BlbmluZ09ic2VydmVyJik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBub3RpZnlQb3B1
cE9wZW5pbmdPYnNlcnZlcnMoKSBjb25zdDsKIAogICAgIFBhZ2UmIG1fcGFnZTsKICAgICBDaHJv
bWVDbGllbnQmIG1fY2xpZW50OwotICAgIFBsYXRmb3JtRGlzcGxheUlEIG1fZGlzcGxheUlEOwor
ICAgIFBsYXRmb3JtRGlzcGxheUlEIG1fZGlzcGxheUlEIHsgMCB9OwogICAgIFZlY3RvcjxQb3B1
cE9wZW5pbmdPYnNlcnZlcio+IG1fcG9wdXBPcGVuaW5nT2JzZXJ2ZXJzOwogI2lmIFBMQVRGT1JN
KElPUykKLSAgICBib29sIG1faXNEaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZVN1cHByZXNz
ZWQ7CisgICAgYm9vbCBtX2lzRGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2Vk
IHsgZmFsc2UgfTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5k
ZXggMmM4OWI2Y2JhNTA2ODBiOTcyZGM1NWZjNGIyNGM0ODkwZmFlYjgyNC4uOGExNjM5MWZiYjg2
YmNjYjc0ZmZlNWM0MWZmNWE1ODY2Y2U3ZWE2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oCkBAIC0xMjMsNyArMTIzLDcgQEAgcHVibGljOgogICAgIC8vIGNyZWF0ZWQgUGFnZSBoYXMg
aXRzIHNob3cgbWV0aG9kIGNhbGxlZC4KICAgICAvLyBUaGUgRnJhbWVMb2FkUmVxdWVzdCBwYXJh
bWV0ZXIgaXMgb25seSBmb3IgQ2hyb21lQ2xpZW50IHRvIGNoZWNrIGlmIHRoZQogICAgIC8vIHJl
cXVlc3QgY291bGQgYmUgZnVsZmlsbGVkLiBUaGUgQ2hyb21lQ2xpZW50IHNob3VsZCBub3QgbG9h
ZCB0aGUgcmVxdWVzdC4KLSAgICB2aXJ0dWFsIFBhZ2UqIGNyZWF0ZVdpbmRvdyhGcmFtZSosIGNv
bnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IE5hdmln
YXRpb25BY3Rpb24mKSA9IDA7CisgICAgdmlydHVhbCBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUm
LCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBO
YXZpZ2F0aW9uQWN0aW9uJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzaG93KCkgPSAwOwogCiAg
ICAgdmlydHVhbCBib29sIGNhblJ1bk1vZGFsKCkgPSAwOwpAQCAtMTQ2LDYzICsxNDYsNjcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3Vy
Y2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVt
YmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlSUQpID0gMDsK
IAogICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSA9IDA7
Ci0gICAgdmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIEZyYW1lKikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBydW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSYpID0gMDsKIAogICAg
IHZpcnR1YWwgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSA9IDA7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiwgY29uc3QgU3RyaW5nJikgPSAwOwotICAgIHZpcnR1
YWwgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSosIGNvbnN0IFN0cmluZyYpID0gMDsK
LSAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSosIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYsIGNvbnN0IFN0
cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUm
LCBjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRQcm9t
cHQoRnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZh
bHVlLCBTdHJpbmcmIHJlc3VsdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJU
ZXh0KGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIEtleWJvYXJkVUlNb2RlIGtleWJv
YXJkVUlNb2RlKCkgPSAwOwogCi0gICAgLy8gTWV0aG9kcyB1c2VkIGJ5IEhvc3RXaW5kb3cuCiAg
ICAgdmlydHVhbCBib29sIHN1cHBvcnRzSW1tZWRpYXRlSW52YWxpZGF0aW9uKCkgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJl
Y3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3
KGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50
c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2Ny
b2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpID0gMDsK
KwogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0dWFsIHZvaWQgZGVsZWdh
dGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50JikgPSAwOwogI2VuZGlmCisKICAgICB2
aXJ0dWFsIEludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25zdCA9
IDA7CiAgICAgdmlydHVhbCBJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgSW50UmVjdCYp
IGNvbnN0ID0gMDsKKwogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIEludFBvaW50IGFj
Y2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JikgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgSW50UmVjdCByb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVlbihjb25zdCBJ
bnRSZWN0JikgY29uc3QgPSAwOwogI2VuZGlmICAgIAorCiAgICAgdmlydHVhbCBQbGF0Zm9ybVBh
Z2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0ID0gMDsKKwogI2lmIEVOQUJMRShDVVJT
T1JfU1VQUE9SVCkKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1cnNvciYpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wp
ID0gMDsKICNlbmRpZgorCiAjaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikK
ICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKSA9IDA7CiAjZW5kaWYKLSAgICAv
LyBFbmQgbWV0aG9kcyB1c2VkIGJ5IEhvc3RXaW5kb3cuCiAKLSAgICB2aXJ0dWFsIEZsb2F0U2l6
ZSBzY3JlZW5TaXplKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxDaHJvbWVDbGllbnQqPih0
aGlzKS0+d2luZG93UmVjdCgpLnNpemUoKTsgfQotICAgIHZpcnR1YWwgRmxvYXRTaXplIGF2YWls
YWJsZVNjcmVlblNpemUoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PENocm9tZUNsaWVudCo+
KHRoaXMpLT53aW5kb3dSZWN0KCkuc2l6ZSgpOyB9CisgICAgdmlydHVhbCBGbG9hdFNpemUgc2Ny
ZWVuU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Q2hyb21lQ2xpZW50Jj4oKnRoaXMp
LndpbmRvd1JlY3QoKS5zaXplKCk7IH0KKyAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBhdmFpbGFibGVT
Y3JlZW5TaXplKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxDaHJvbWVDbGllbnQmPigqdGhp
cykud2luZG93UmVjdCgpLnNpemUoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoVmll
d3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRzJikgY29uc3Qg
eyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSosIGNvbnN0
IEludFNpemUmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5n
ZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0IHsgfTsgLy8gQ3VycmVudGx5
IG9ubHkgTWFjIGhhcyBhIG5vbiBlbXB0eSBpbXBsZW1lbnRhdGlvbi4KIAogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihSZW5kZXJFbWJlZGRl
ZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9Ci0gICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVt
ZW50KiwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBj
b25zdCB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2Vk
KEVsZW1lbnQmLCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFz
b24pIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChj
b25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgPSAwOwogCiAgICAg
dmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgVGV4dERpcmVjdGlvbikgPSAw
OwogCi0gICAgdmlydHVhbCB2b2lkIHByaW50KEZyYW1lKikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBwcmludChGcmFtZSYpID0gMDsKIAogICAgIHZpcnR1YWwgQ29sb3IgdW5kZXJsYXlDb2xvcigp
IGNvbnN0IHsgcmV0dXJuIENvbG9yKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBwYWdlRXh0ZW5k
ZWRCYWNrZ3JvdW5kQ29sb3JEaWRDaGFuZ2UoQ29sb3IpIGNvbnN0IHsgfQogCi0gICAgdmlydHVh
bCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0cmluZyYgZGF0YWJh
c2VOYW1lLCBEYXRhYmFzZURldGFpbHMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKEZyYW1lJiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFiYXNl
RGV0YWlscykgPSAwOwogCiAgICAgLy8gQ2FsbGJhY2sgaW52b2tlZCB3aGVuIHRoZSBhcHBsaWNh
dGlvbiBjYWNoZSBmYWlscyB0byBzYXZlIGEgY2FjaGUgb2JqZWN0CiAgICAgLy8gYmVjYXVzZSBz
dG9yaW5nIGl0IHdvdWxkIGdyb3cgdGhlIGRhdGFiYXNlIGZpbGUgcGFzdCBpdHMgZGVmaW5lZCBt
YXhpbXVtCkBAIC0yMTksNyArMjIzLDcgQEAgcHVibGljOgogICAgIC8vIHN0b3JhZ2UsIGluIGJ5
dGVzLCBuZWVkZWQgdG8gc3RvcmUgdGhlIG5ldyBjYWNoZSBhbG9uZyB3aXRoIGFsbCBvZiB0aGUK
ICAgICAvLyBvdGhlciBleGlzdGluZyBjYWNoZXMgZm9yIHRoZSBvcmlnaW4gdGhhdCB3b3VsZCBu
b3QgYmUgcmVwbGFjZWQgYnkKICAgICAvLyB0aGUgbmV3IGNhY2hlLgotICAgIHZpcnR1YWwgdm9p
ZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiwgaW50
NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90IHRvdGFsU3Bh
Y2VOZWVkZWQpID0gMDsKIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICB2aXJ0
dWFsIHZvaWQgYW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKTsKQEAgLTIzNiwxMCArMjQwLDEwIEBA
IHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZU1vYmlsZURvY1R5cGUoYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1Njcm9s
bE5vdGlmaWNhdGlvbnMoRnJhbWUqLCBib29sKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIG9ic2Vy
dmVkQ29udGVudENoYW5nZShGcmFtZSopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDb250
ZW50Q2hhbmdlT2JzZXJ2ZXJzKEZyYW1lKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBub3RpZnlS
ZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoRnJhbWUqKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhGcmFtZSYsIGJvb2wpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKEZyYW1lJikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoRnJhbWUmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShGcmFt
ZSYpID0gMDsKIAogICAgIGVudW0gTGF5b3V0VHlwZSB7IE5vcm1hbExheW91dCwgU2Nyb2xsIH07
CiAgICAgdmlydHVhbCB2b2lkIGRpZExheW91dChMYXlvdXRUeXBlID0gTm9ybWFsTGF5b3V0KSA9
IDA7CkBAIC0yNzAsMTYgKzI3NCwxNiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJ
TlBVVF9UWVBFX0NPTE9SKQotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nl
cj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9yJikg
PSAwOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29s
b3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCYsIGNvbnN0IENvbG9yJikgPSAwOwogI2VuZGlm
CiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSA9
IDA7CiAgICAgLy8gQXN5bmNocm9ub3VzIHJlcXVlc3QgdG8gbG9hZCBhbiBpY29uIGZvciBzcGVj
aWZpZWQgZmlsZW5hbWVzLgogICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXImKSA9IDA7CiAgICAgICAgIAotICAgIHZp
cnR1YWwgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgTm9kZSopIHsgfTsKLSAgICB2aXJ0dWFs
IHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9kZSopIHsgfTsKLSAgICB2aXJ0dWFsIHZvaWQg
ZWxlbWVudERpZFJlZm9jdXMoY29uc3QgTm9kZSopIHsgfTsKKyAgICB2aXJ0dWFsIHZvaWQgZWxl
bWVudERpZEZvY3VzKEVsZW1lbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEJs
dXIoRWxlbWVudCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkUmVmb2N1cyhFbGVt
ZW50JikgeyB9CiAgICAgCiAgICAgdmlydHVhbCBib29sIHNob3VsZFBhaW50RW50aXJlQ29udGVu
dHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBoYXNTdGFibGVQ
YWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC0yOTEsOSArMjk1LDkg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3Jl
YXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKSBjb25zdCB7IHJldHVy
biBudWxscHRyOyB9CiAjZW5kaWYKIAotICAgIC8vIFBhc3MgMCBhcyB0aGUgR3JhcGhpY3NMYXll
ciB0byBkZXRhdGNoIHRoZSByb290IGxheWVyLgotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290
R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIq
KSA9IDA7CisgICAgLy8gUGFzcyBudWxscHRyIGFzIHRoZSBHcmFwaGljc0xheWVyIHRvIGRldGF0
Y2ggdGhlIHJvb3QgbGF5ZXIuCisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xh
eWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
Vmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopID0gMDsKICAg
ICAvLyBTZXRzIGEgZmxhZyB0byBzcGVjaWZ5IHRoYXQgdGhlIG5leHQgdGltZSBjb250ZW50IGlz
IGRyYXduIHRvIHRoZSB3aW5kb3csCiAgICAgLy8gdGhlIGNoYW5nZXMgYXBwZWFyIG9uIHRoZSBz
Y3JlZW4gaW4gc3luY2hyb255IHdpdGggdXBkYXRlcyB0byBHcmFwaGljc0xheWVycy4KICAgICB2
aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpID0gMDsK
QEAgLTMyNSwyNiArMzI5LDI4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBhZGp1c3RM
YXllckZsdXNoVGhyb3R0bGluZyhMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RmxhZ3MpIHsgcmV0
dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0
b3I+IGNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UqKSBjb25zdCB7IHJldHVybiBudWxs
cHRyOyB9CisgICAgdmlydHVhbCBSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UmKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAKICNp
ZiBQTEFURk9STShXSU4pICYmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgdmlydHVhbCBHcmFwaGlj
c0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2aWNlQWRhcHRlcigpIGNvbnN0IHsgcmV0dXJuIDA7
IH0KKyAgICB2aXJ0dWFsIEdyYXBoaWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NEZXZpY2VBZGFw
dGVyKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1
bGxzY3JlZW5Nb2RlKSB7IHJldHVybiBmYWxzZTsgfQorCiAjaWYgRU5BQkxFKFZJREVPKQogICAg
IHZpcnR1YWwgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlk
ZW9FbGVtZW50JiwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlcihIVE1MTWVk
aWFFbGVtZW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyUGxheWJhY2tDb250cm9sc01h
bmFnZXIoKSB7IH0KICNlbmRpZgotICAgIHZpcnR1YWwgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVu
Rm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmKSB7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRpb24oV2ViQ29y
ZTo6SFRNTFZpZGVvRWxlbWVudCYsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2Ny
ZWVuTW9kZSAvKnRhcmdldE1vZGUqLykgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVv
RnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JikgeyB9CisgICAgdmly
dHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKEhUTUxW
aWRlb0VsZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUp
IHsgfQogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1BsYXliYWNr
KCkgeyByZXR1cm4gZmFsc2U7IH0gCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAg
dmlydHVhbCBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxlbWVudCos
IGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGVudGVyRnVsbFNjcmVl
bkZvckVsZW1lbnQoRWxlbWVudCopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoRWxlbWVudCopIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxT
Y3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmLCBib29sKSB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQmKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQmKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdEZ1bGxTY3JlZW5MYXllcihHcmFwaGljc0xheWVyKikg
eyB9CiAjZW5kaWYKIApAQCAtMzUzLDcgKzM1OSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYg
UExBVEZPUk0oQ09DT0EpCi0gICAgdmlydHVhbCBOU1Jlc3BvbmRlciAqZmlyc3RSZXNwb25kZXIo
KSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBOU1Jlc3BvbmRlciAqZmlyc3RSZXNwb25kZXIo
KSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIG1ha2VGaXJzdFJlc3BvbmRl
cihOU1Jlc3BvbmRlciAqKSB7IH0KICAgICAvLyBGb2N1c2VzIG9uIHRoZSBjb250YWluaW5nIHZp
ZXcgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcGFnZS4KICAgICB2aXJ0dWFsIHZvaWQgbWFrZUZpcnN0
UmVzcG9uZGVyKCkgeyB9CkBAIC0zNzcsMTAgKzM4MywxMCBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSA9
IDA7CiAgICAgLy8gQ2hlY2tzIGlmIHRoZXJlIGlzIGFuIG9wZW5lZCBwb3B1cCwgY2FsbGVkIGJ5
IFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKS4KICAgICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVk
UG9wdXAoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQ
b3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgUmVmUHRy
PFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCop
IGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVu
dShQb3B1cE1lbnVDbGllbnQmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBSZWZQdHI8U2VhcmNo
UG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JikgY29uc3Qg
PSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QqLCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbikgeyB9Cisg
ICAgdmlydHVhbCB2b2lkIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxp
dHlPYmplY3QmLCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbikgeyB9CiAKICAgICB2aXJ0
dWFsIHZvaWQgbm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25zdCBJbnRSZWN0
JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFu
Z2UoU2Nyb2xsYmFyU3R5bGUpIHsgfQpAQCAtNDA4LDE2ICs0MTQsMTYgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVjdG9yPFJlZlB0
cjxFbGVtZW50Pj4mKSB7IH07CiAgICAgdmlydHVhbCBib29sIHNob3VsZE5vdGlmeU9uRm9ybUNo
YW5nZXMoKSB7IHJldHVybiBmYWxzZTsgfTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIZWFk
ZXJMYXllcihHcmFwaGljc0xheWVyKikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRpZEFkZEZvb3Rl
ckxheWVyKEdyYXBoaWNzTGF5ZXIqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkSGVhZGVy
TGF5ZXIoR3JhcGhpY3NMYXllciYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRGb290ZXJM
YXllcihHcmFwaGljc0xheWVyJikgeyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGls
ZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyopIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmll
dyhjb25zdCBGcmFtZVZpZXcmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVh
bCB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncywgdWludDY0X3QpIHsgfQogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAgICAgdmly
dHVhbCB2b2lkIGhhc01lZGlhU2Vzc2lvbldpdGhBY3RpdmVNZWRpYUVsZW1lbnRzRGlkQ2hhbmdl
KGJvb2wpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5n
ZShjb25zdCBXZWJDb3JlOjpNZWRpYVNlc3Npb25NZXRhZGF0YSYpIHsgfQorICAgIHZpcnR1YWwg
dm9pZCBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZShjb25zdCBNZWRpYVNlc3Npb25NZXRh
ZGF0YSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkQ29udGVudE1lZGlhRWxlbWVudERp
ZENoYW5nZSh1aW50NjRfdCkgeyB9CiAjZW5kaWYKIApAQCAtNDI3LDExICs0MzMsMTIgQEAgcHVi
bGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoVEVMRVBIT05FX05VTUJFUl9ERVRFQ1RJT04pICYm
IFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlVGVsZXBob25lTnVtYmVyQ2xp
Y2soY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSB7IH0KKyAgICB2aXJ0
dWFsIHZvaWQgaGFuZGxlVGVsZXBob25lTnVtYmVyQ2xpY2soY29uc3QgU3RyaW5nJiwgY29uc3Qg
SW50UG9pbnQmKSB7IH0KICNlbmRpZgorCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0g
ICAgdmlydHVhbCB2b2lkIGhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhXZWJDb3JlOjpGcmFt
ZVNlbGVjdGlvbiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcyhi
b29sIC8qIGlzVGV4dE9ubHkgKi8pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCB2b2lkIGhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhGcmFtZVNlbGVjdGlvbiYsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgSW50UG9pbnQmKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
aGFzUmVsZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcyhib29sIC8qaXNUZXh0T25seSovKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGlzcGF0
Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtNDQxLDEz
ICs0NDgsMTMgQEAgcHVibGljOgogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQp
CiAgICAgdmlydHVhbCB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90
IC8qY29udGV4dElkKi8pIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQbGF5YmFja1Rhcmdl
dFBpY2tlckNsaWVudCh1aW50NjRfdCAvKmNvbnRleHRJZCovKSB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IC8qY29udGV4dElkKi8sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCAvKiBpc1ZpZGVvICovKSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IC8qY29udGV4dElkKi8sIGNv
bnN0IEludFBvaW50JiwgYm9vbCAvKmlzVmlkZW8qLykgeyB9CiAgICAgdmlydHVhbCB2b2lkIHBs
YXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UodWludDY0X3QgLypjb250ZXh0
SWQqLywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSB7IH0KICAgICB2aXJ0dWFsIHZv
aWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wpICB7IH0KLSAg
ICB2aXJ0dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25z
dCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3RhdGUpIHsg
fQorICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBpY2tlclN0YXRl
KGNvbnN0IFN0cmluZyYsIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpTdGF0ZSkgeyB9CiAj
ZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBpbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2Vk
KGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW1hZ2VPck1l
ZGlhRG9jdW1lbnRTaXplQ2hhbmdlZChjb25zdCBJbnRTaXplJikgeyB9CiAKICNpZiBFTkFCTEUo
VklERU8pICYmIFVTRShHU1RSRUFNRVIpCiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RJbnN0YWxs
TWlzc2luZ01lZGlhUGx1Z2lucyhjb25zdCBTdHJpbmcmIC8qZGV0YWlscyovLCBjb25zdCBTdHJp
bmcmIC8qZGVzY3JpcHRpb24qLywgTWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1pc3NpbmdQbHVn
aW5zQ2FsbGJhY2smKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4
dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250
cm9sbGVyLmNwcAppbmRleCAwZTdhNzdiNmRhMjg5YTAyNTY5MzUzNGFkMWZjNGQ1MTA5YzUwZjMz
Li5jMWM0OTQ4NDAyODM4NDlmMTUyYmIyNzQ1ZjhhMWI0NjA2ZWVkM2U1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC05NCw3ICs5NCw3IEBA
IHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjbGVhckNvbnRleHRNZW51KCkKICAgICBtX21l
bnVQcm92aWRlciA9IG51bGxwdHI7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpo
YW5kbGVDb250ZXh0TWVudUV2ZW50KEV2ZW50KiBldmVudCkKK3ZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KEV2ZW50JiBldmVudCkKIHsKICAgICBtX2Nv
bnRleHRNZW51ID0gbWF5YmVDcmVhdGVDb250ZXh0TWVudShldmVudCk7CiAgICAgaWYgKCFtX2Nv
bnRleHRNZW51KQpAQCAtMTEwLDkgKzExMCw5IEBAIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8Q29u
dGV4dE1lbnVJdGVtPiBzZXBhcmF0b3JJdGVtKCkKICAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRy
PENvbnRleHRNZW51SXRlbT4obmV3IENvbnRleHRNZW51SXRlbShTZXBhcmF0b3JUeXBlLCBDb250
ZXh0TWVudUl0ZW1UYWdOb0FjdGlvbiwgU3RyaW5nKCkpKTsKIH0KIAotdm9pZCBDb250ZXh0TWVu
dUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCogZXZlbnQsIFBhc3NSZWZQdHI8Q29u
dGV4dE1lbnVQcm92aWRlcj4gbWVudVByb3ZpZGVyKQordm9pZCBDb250ZXh0TWVudUNvbnRyb2xs
ZXI6OnNob3dDb250ZXh0TWVudShFdmVudCYgZXZlbnQsIENvbnRleHRNZW51UHJvdmlkZXImIHBy
b3ZpZGVyKQogewotICAgIG1fbWVudVByb3ZpZGVyID0gbWVudVByb3ZpZGVyOworICAgIG1fbWVu
dVByb3ZpZGVyID0gJnByb3ZpZGVyOwogCiAgICAgbV9jb250ZXh0TWVudSA9IG1heWJlQ3JlYXRl
Q29udGV4dE1lbnUoZXZlbnQpOwogICAgIGlmICghbV9jb250ZXh0TWVudSkgewpAQCAtMTIwLDcg
KzEyMCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZl
bnQqIGV2ZW50LCBQYXNzUmVmUHRyPENvbnRleHRNZW51CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBtX21lbnVQcm92aWRlci0+cG9wdWxhdGVDb250ZXh0TWVudShtX2NvbnRleHRNZW51
LmdldCgpKTsKKyAgICBwcm92aWRlci5wb3B1bGF0ZUNvbnRleHRNZW51KG1fY29udGV4dE1lbnUu
Z2V0KCkpOwogICAgIGlmIChtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmlzU2VsZWN0ZWQoKSkg
ewogICAgICAgICBhcHBlbmRJdGVtKCpzZXBhcmF0b3JJdGVtKCksIG1fY29udGV4dE1lbnUuZ2V0
KCkpOwogICAgICAgICBwb3B1bGF0ZSgpOwpAQCAtMTI5LDMzICsxMjksMzQgQEAgdm9pZCBDb250
ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCogZXZlbnQsIFBhc3NSZWZQ
dHI8Q29udGV4dE1lbnUKIH0KIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQorCiBzdGF0
aWMgSW1hZ2UqIGltYWdlRnJvbUltYWdlRWxlbWVudE5vZGUoTm9kZSYgbm9kZSkKIHsKLSAgICBS
ZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbm9kZS5yZW5kZXJlcigpOworICAgIGF1dG8qIHJlbmRl
cmVyID0gbm9kZS5yZW5kZXJlcigpOwogICAgIGlmICghaXM8UmVuZGVySW1hZ2U+KHJlbmRlcmVy
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgQ2FjaGVkSW1hZ2UqIGltYWdlID0gZG93
bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlcikuY2FjaGVkSW1hZ2UoKTsKKyAgICBhdXRvKiBp
bWFnZSA9IGRvd25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIpLmNhY2hlZEltYWdlKCk7CiAg
ICAgaWYgKCFpbWFnZSB8fCBpbWFnZS0+ZXJyb3JPY2N1cnJlZCgpKQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKLQogICAgIHJldHVybiBpbWFnZS0+aW1hZ2VGb3JSZW5kZXJlcihyZW5kZXJlcik7
CiB9CisKICNlbmRpZgogCi1zdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IENvbnRleHRNZW51
Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudCogZXZlbnQpCitzdGQ6OnVu
aXF1ZV9wdHI8Q29udGV4dE1lbnU+IENvbnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVD
b250ZXh0TWVudShFdmVudCYgZXZlbnQpCiB7Ci0gICAgQVNTRVJUKGV2ZW50KTsKLSAgICAKLSAg
ICBpZiAoIWlzPE1vdXNlRXZlbnQ+KCpldmVudCkpCisgICAgaWYgKCFpczxNb3VzZUV2ZW50Pihl
dmVudCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgTW91c2VFdmVudCYgbW91c2VF
dmVudCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+KCpldmVudCk7Ci0gICAgSGl0VGVzdFJlc3VsdCBy
ZXN1bHQobW91c2VFdmVudC5hYnNvbHV0ZUxvY2F0aW9uKCkpOworICAgIGF1dG8mIG1vdXNlRXZl
bnQgPSBkb3duY2FzdDxNb3VzZUV2ZW50PihldmVudCk7CisgICAgYXV0byogbm9kZSA9IG1vdXNl
RXZlbnQudGFyZ2V0KCktPnRvTm9kZSgpOworICAgIGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgYXV0byogZnJhbWUgPSBub2RlLT5kb2N1bWVudCgpLmZyYW1lKCk7Cisg
ICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBOb2RlKiBub2Rl
ID0gZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKTsKLSAgICBpZiAoRnJhbWUqIGZyYW1lID0gbm9k
ZS0+ZG9jdW1lbnQoKS5mcmFtZSgpKQotICAgICAgICByZXN1bHQgPSBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQobW91c2VFdmVudC5hYnNvbHV0ZUxvY2F0aW9uKCkp
OwotICAgIAorICAgIGF1dG8gcmVzdWx0ID0gZnJhbWUtPmV2ZW50SGFuZGxlcigpLmhpdFRlc3RS
ZXN1bHRBdFBvaW50KG1vdXNlRXZlbnQuYWJzb2x1dGVMb2NhdGlvbigpKTsKICAgICBpZiAoIXJl
c3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAg
LTE2Myw3ICsxNjQsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IENvbnRleHRNZW51
Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudAogCiAjaWYgRU5BQkxFKFNF
UlZJQ0VfQ09OVFJPTFMpCiAgICAgaWYgKG5vZGUtPmlzSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1l
bnQoKSkgewotICAgICAgICBpZiAoSW1hZ2UqIGltYWdlID0gaW1hZ2VGcm9tSW1hZ2VFbGVtZW50
Tm9kZSgqcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKSkKKyAgICAgICAgaWYgKGF1dG8qIGlt
YWdlID0gaW1hZ2VGcm9tSW1hZ2VFbGVtZW50Tm9kZSgqcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9k
ZSgpKSkKICAgICAgICAgICAgIG1fY29udGV4dC5zZXRDb250cm9sbGVkSW1hZ2UoaW1hZ2UpOwog
CiAgICAgICAgIC8vIEZJWE1FOiBJZiB3ZSBjb3VsZG4ndCBnZXQgdGhlIGltYWdlIHRoZW4gd2Ug
c2hvdWxkbid0IHRyeSB0byBzaG93IHRoZSBpbWFnZSBjb250cm9scyBtZW51IGZvciBpdC4KQEAg
LTE3MSwyNCArMTcyLDI0IEBAIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gQ29udGV4dE1l
bnVDb250cm9sbGVyOjptYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50CiAgICAgfQogI2VuZGlm
CiAKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PihuZXcgQ29udGV4dE1l
bnUpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENvbnRleHRNZW51PigpOwogfQogCi12
b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50KiBldmVudCkK
K3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZlbnQmIGV2ZW50
KQogewogICAgIGlmIChtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLmVuYWJsZWQoKSkKICAg
ICAgICAgYWRkSW5zcGVjdEVsZW1lbnRJdGVtKCk7CiAKLSAgICBldmVudC0+c2V0RGVmYXVsdEhh
bmRsZWQoKTsKKyAgICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgpOwogfQogCi1zdGF0aWMgdm9p
ZCBvcGVuTmV3V2luZG93KGNvbnN0IFVSTCYgdXJsVG9Mb2FkLCBGcmFtZSogZnJhbWUsIFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKK3N0
YXRpYyB2b2lkIG9wZW5OZXdXaW5kb3coY29uc3QgVVJMJiB1cmxUb0xvYWQsIEZyYW1lJiBmcmFt
ZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5KQogewotICAgIFBhZ2UqIG9sZFBhZ2UgPSBmcmFtZS0+cGFnZSgpOworICAgIFBhZ2UqIG9s
ZFBhZ2UgPSBmcmFtZS5wYWdlKCk7CiAgICAgaWYgKCFvbGRQYWdlKQogICAgICAgICByZXR1cm47
CiAKLSAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QoZnJhbWUtPmRvY3VtZW50KCktPnNlY3Vy
aXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCh1cmxUb0xvYWQsIGZyYW1lLT5sb2FkZXIoKS5v
dXRnb2luZ1JlZmVycmVyKCkpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6
Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMs
IE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcywgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KGZyYW1lLmRvY3VtZW50KCktPnNl
Y3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCh1cmxUb0xvYWQsIGZyYW1lLmxvYWRlcigp
Lm91dGdvaW5nUmVmZXJyZXIoKSksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlz
dDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkw6Olll
cywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5KTsKIAogICAgIFBhZ2UqIG5ld1BhZ2UgPSBvbGRQYWdlLT5jaHJvbWUoKS5jcmVhdGVX
aW5kb3coZnJhbWUsIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIE5hdmlnYXRpb25BY3Rpb24o
cmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSkpOwogICAgIGlmICghbmV3UGFnZSkKQEAgLTE5OCwx
NSArMTk5LDE3IEBAIHN0YXRpYyB2b2lkIG9wZW5OZXdXaW5kb3coY29uc3QgVVJMJiB1cmxUb0xv
YWQsIEZyYW1lKiBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsCiB9CiAKICNpZiBQTEFURk9STShH
VEspCi1zdGF0aWMgdm9pZCBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKFVDaGFyIGNoYXJhY3Rlciwg
RnJhbWUqIGZyYW1lKQorCitzdGF0aWMgdm9pZCBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKFVDaGFy
IGNoYXJhY3RlciwgRnJhbWUmIGZyYW1lKQogewogICAgIFN0cmluZyB0ZXh0KCZjaGFyYWN0ZXIs
IDEpOwotICAgIGlmICghZnJhbWUtPmVkaXRvcigpLnNob3VsZEluc2VydFRleHQodGV4dCwgZnJh
bWUtPnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCksIEVkaXRvckluc2VydEFj
dGlvbjo6VHlwZWQpKQorICAgIGlmICghZnJhbWUuZWRpdG9yKCkuc2hvdWxkSW5zZXJ0VGV4dCh0
ZXh0LCBmcmFtZS5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgpLCBFZGl0b3JJ
bnNlcnRBY3Rpb246OlR5cGVkKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNTRVJUKGZyYW1l
LT5kb2N1bWVudCgpKTsKLSAgICBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KCpmcmFtZS0+ZG9j
dW1lbnQoKSwgdGV4dCwgMCwgVHlwaW5nQ29tbWFuZDo6VGV4dENvbXBvc2l0aW9uTm9uZSk7Cisg
ICAgQVNTRVJUKGZyYW1lLmRvY3VtZW50KCkpOworICAgIFR5cGluZ0NvbW1hbmQ6Omluc2VydFRl
eHQoKmZyYW1lLmRvY3VtZW50KCksIHRleHQsIDAsIFR5cGluZ0NvbW1hbmQ6OlRleHRDb21wb3Np
dGlvbk5vbmUpOwogfQorCiAjZW5kaWYKIAogdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNv
bnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY29uc3QgU3Ry
aW5nJiB0aXRsZSkKQEAgLTIyNSw3ICsyMjgsNyBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxl
cjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwog
CiAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5M
aW5rSW5OZXdXaW5kb3c6Ci0gICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RS
ZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZEFsbG93RXh0ZXJuYWxTY2hlbWVzKTsKKyAgICAgICAgb3Blbk5ld1dpbmRv
dyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCAqZnJhbWUsIFNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93RXh0ZXJuYWxTY2hlbWVzKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtU
b0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIGRheSB3ZSBzaG91bGQgYmUgYWJsZSB0byBk
byB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUuIChCdWcgMTE3NzA5KQpAQCAtMjM1LDcgKzIzOCw3
IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChD
b250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5jb3B5
VVJMKG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCksIG1fY29udGV4
dC5oaXRUZXN0UmVzdWx0KCkudGV4dENvbnRlbnQoKSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3c6Ci0gICAgICAgIG9wZW5O
ZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUltYWdlVVJMKCksIGZy
YW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAg
ICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUltYWdl
VVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxs
b3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2Fk
SW1hZ2VUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIGRheSB3ZSBzaG91bGQgYmUgYWJs
ZSB0byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUuIChCdWcgMTE3NzA5KQpAQCAtMjUyLDcg
KzI1NSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxl
Y3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgICAgIGJyZWFrOwogI2VuZGlm
CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRvdzoKLSAgICAg
ICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTWVkaWFV
UkwoKSwgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93
KTsKKyAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29s
dXRlTWVkaWFVUkwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91
bGROb3RBbGxvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
RG93bmxvYWRNZWRpYVRvRGlzazoKICAgICAgICAgLy8gRklYTUU6IFNvbWUgZGF5IHdlIHNob3Vs
ZCBiZSBhYmxlIHRvIGRvIHRoaXMgZnJvbSB3aXRoaW4gV2ViQ29yZS4gKEJ1ZyAxMTc3MDkpCkBA
IC0yODUsOSArMjg4LDkgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51
SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KICAgICBjYXNlIENvbnRl
eHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93OiB7CiAgICAgICAgIERvY3VtZW50TG9h
ZGVyKiBsb2FkZXIgPSBmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKTsKICAgICAgICAg
aWYgKCFsb2FkZXItPnVucmVhY2hhYmxlVVJMKCkuaXNFbXB0eSgpKQotICAgICAgICAgICAgb3Bl
bk5ld1dpbmRvdyhsb2FkZXItPnVucmVhY2hhYmxlVVJMKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgICAgICAgICBvcGVuTmV3V2lu
ZG93KGxvYWRlci0+dW5yZWFjaGFibGVVUkwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxV
UkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIG9w
ZW5OZXdXaW5kb3cobG9hZGVyLT51cmwoKSwgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICAgICAgICAgIG9wZW5OZXdXaW5kb3cobG9hZGVy
LT51cmwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RB
bGxvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z0NvcHk6CkBAIC0zMTgsMzQgKzMyMSwzNCBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6
Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9uLCBjbwogICAg
ICAgICBmcmFtZS0+ZWRpdG9yKCkucGVyZm9ybURlbGV0ZSgpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRMUk1NYXJrOgotICAgICAgICBp
bnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0TWFyaywgZnJhbWUpOworICAgICAgICBp
bnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0TWFyaywgKmZyYW1lKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0UkxNTWFyazoK
LSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdodFRvTGVmdE1hcmssIGZyYW1lKTsK
KyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdodFRvTGVmdE1hcmssICpmcmFtZSk7
CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2Vy
dExSRU1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIobGVmdFRvUmlnaHRFbWJl
ZCwgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0RW1i
ZWQsICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
VW5pY29kZUluc2VydFJMRU1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIocmln
aHRUb0xlZnRFbWJlZCwgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHJp
Z2h0VG9MZWZ0RW1iZWQsICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydExST01hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVD
aGFyYWN0ZXIobGVmdFRvUmlnaHRPdmVycmlkZSwgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmlj
b2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0T3ZlcnJpZGUsICpmcmFtZSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydFJMT01hcms6Ci0gICAg
ICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRPdmVycmlkZSwgZnJhbWUpOwor
ICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHJpZ2h0VG9MZWZ0T3ZlcnJpZGUsICpmcmFt
ZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUlu
c2VydFBERk1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIocG9wRGlyZWN0aW9u
YWxGb3JtYXR0aW5nLCBmcmFtZSk7CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIocG9w
RGlyZWN0aW9uYWxGb3JtYXR0aW5nLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRaV1NNYXJrOgotICAgICAgICBpbnNlcnRV
bmljb2RlQ2hhcmFjdGVyKHplcm9XaWR0aFNwYWNlLCBmcmFtZSk7CisgICAgICAgIGluc2VydFVu
aWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoU3BhY2UsICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydFpXSk1hcms6Ci0gICAgICAg
IGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoSm9pbmVyLCBmcmFtZSk7CisgICAgICAg
IGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoSm9pbmVyLCAqZnJhbWUpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRaV05KTWFy
azoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rlcih6ZXJvV2lkdGhOb25Kb2luZXIsIGZy
YW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rlcih6ZXJvV2lkdGhOb25Kb2luZXIs
ICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShFRkwpCkBAIC0zOTMsNyArMzk2LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xs
ZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28K
ICAgICAgICAgaWYgKEZyYW1lKiB0YXJnZXRGcmFtZSA9IG1fY29udGV4dC5oaXRUZXN0UmVzdWx0
KCkudGFyZ2V0RnJhbWUoKSkKICAgICAgICAgICAgIHRhcmdldEZyYW1lLT5sb2FkZXIoKS5sb2Fk
RnJhbWVSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdChtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29s
dXRlTGlua1VSTCgpLCBmcmFtZS0+bG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKSwgTG9ja0hp
c3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFs
bG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6U3Vw
cHJlc3MsIHRhcmdldEZyYW1lLT5pc01haW5GcmFtZSgpID8gU2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeTo6U2hvdWxkQWxsb3cgOiBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91
bGROb3RBbGxvdyksIG51bGxwdHIsIG51bGxwdHIpOwogICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJM
KCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvdyk7Cisg
ICAgICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1
dGVMaW5rVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxk
QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0JvbGQ6
CiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5jb21tYW5kKCJUb2dnbGVCb2xkIikuZXhlY3V0ZSgp
OwpAQCAtMTQyOSwyNiArMTQzMiwzMCBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6Y2hl
Y2tPckVuYWJsZUlmTmVlZGVkKENvbnRleHRNZW51SXRlbSYgaXRlbSkgY29uc3QKIH0KIAogI2lm
IFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCi12b2lkIENvbnRleHRNZW51Q29udHJv
bGxlcjo6c2hvd0NvbnRleHRNZW51QXQoRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRQb2ludCYgY2xp
Y2tQb2ludCkKKwordm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudUF0
KEZyYW1lJiBmcmFtZSwgY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQpCiB7CiAgICAgY2xlYXJD
b250ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xpY2sgaW4gdGhlIG1pZGRs
ZSBvZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1v
dXNlRXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0b24sIFBsYXRmb3JtRXZl
bnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGN1cnJlbnRU
aW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOwotICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5o
YW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VFdmVudCk7Ci0gICAgYm9vbCBoYW5kbGVkID0gZnJh
bWUtPmV2ZW50SGFuZGxlcigpLnNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZlbnQpOworICAg
IGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3VzZUV2ZW50KTsK
KyAgICBib29sIGhhbmRsZWQgPSBmcmFtZS5ldmVudEhhbmRsZXIoKS5zZW5kQ29udGV4dE1lbnVF
dmVudChtb3VzZUV2ZW50KTsKICAgICBpZiAoaGFuZGxlZCkKICAgICAgICAgbV9jbGllbnQuc2hv
d0NvbnRleHRNZW51KCk7CiB9CisKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJP
TFMpCi12b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0ltYWdlQ29udHJvbHNNZW51KEV2
ZW50KiBldmVudCkKKwordm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dJbWFnZUNvbnRy
b2xzTWVudShFdmVudCYgZXZlbnQpCiB7CiAgICAgY2xlYXJDb250ZXh0TWVudSgpOwogICAgIGhh
bmRsZUNvbnRleHRNZW51RXZlbnQoZXZlbnQpOwogICAgIG1fY2xpZW50LnNob3dDb250ZXh0TWVu
dSgpOwogfQorCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmgKaW5kZXggMTEyNTZlMWNlNzlhYjFlN2Iz
MjE1OGY3ODRkYzc4ODEzNjQ3NGQ4ZC4uZjYzOTY0OGIxODYyMDQ2MDZlZmNhNTZhOTA3ODJjODkz
N2EwZTk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRy
b2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTI5LDIxICsyOSwxNiBAQAogCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiQ29udGV4dE1lbnVJdGVtLmgiCi0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxl
Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ29udGV4dE1lbnU7CiBjbGFzcyBDb250
ZXh0TWVudUNsaWVudDsKLWNsYXNzIENvbnRleHRNZW51SXRlbTsKIGNsYXNzIENvbnRleHRNZW51
UHJvdmlkZXI7CiBjbGFzcyBFdmVudDsKIGNsYXNzIFBhZ2U7CiAKIGNsYXNzIENvbnRleHRNZW51
Q29udHJvbGxlciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29udGV4dE1lbnVDb250cm9s
bGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6CiAgICAgQ29udGV4dE1lbnVDb250cm9sbGVyKFBhZ2UmLCBDb250ZXh0TWVu
dUNsaWVudCYpOwogICAgIH5Db250ZXh0TWVudUNvbnRyb2xsZXIoKTsKQEAgLTU0LDggKzQ5LDgg
QEAgcHVibGljOgogICAgIENvbnRleHRNZW51KiBjb250ZXh0TWVudSgpIGNvbnN0IHsgcmV0dXJu
IG1fY29udGV4dE1lbnUuZ2V0KCk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyQ29u
dGV4dE1lbnUoKTsKIAotICAgIHZvaWQgaGFuZGxlQ29udGV4dE1lbnVFdmVudChFdmVudCopOwot
ICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KEV2ZW50KiwgUGFzc1JlZlB0cjxDb250ZXh0TWVudVBy
b3ZpZGVyPik7CisgICAgdm9pZCBoYW5kbGVDb250ZXh0TWVudUV2ZW50KEV2ZW50Jik7CisgICAg
dm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQmLCBDb250ZXh0TWVudVByb3ZpZGVyJik7CiAKICAg
ICB2b2lkIHBvcHVsYXRlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb250ZXh0TWVudUl0
ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CkBAIC02
OCwxNiArNjMsMTYgQEAgcHVibGljOgogICAgIGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RS
ZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpOyB9CiAKICNp
ZiBVU0UoQUNDRVNTSUJJTElUWV9DT05URVhUX01FTlVTKQotICAgIHZvaWQgc2hvd0NvbnRleHRN
ZW51QXQoRnJhbWUqLCBjb25zdCBJbnRQb2ludCYgY2xpY2tQb2ludCk7CisgICAgdm9pZCBzaG93
Q29udGV4dE1lbnVBdChGcmFtZSYsIGNvbnN0IEludFBvaW50JiBjbGlja1BvaW50KTsKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAgdm9pZCBzaG93SW1hZ2VDb250
cm9sc01lbnUoRXZlbnQqKTsKKyAgICB2b2lkIHNob3dJbWFnZUNvbnRyb2xzTWVudShFdmVudCYp
OwogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBt
YXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50Kik7Ci0gICAgdm9pZCBzaG93Q29udGV4dE1lbnUo
RXZlbnQqKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IG1heWJlQ3JlYXRlQ29u
dGV4dE1lbnUoRXZlbnQmKTsKKyAgICB2b2lkIHNob3dDb250ZXh0TWVudShFdmVudCYpOwogICAg
IAogICAgIHZvaWQgYXBwZW5kSXRlbShDb250ZXh0TWVudUl0ZW0mLCBDb250ZXh0TWVudSogcGFy
ZW50TWVudSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKaW5kZXggOGMyNzM4MWFkNjliYzJl
YWI5MjMyZjI4YWE1NzYwNTAzYjZkYjE4ZC4uNmJiODk2MWQ5Y2U4MjhhOTgyNTQyNTkwMDEyNmY4
ZTViZGE3YzM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKQEAgLTM2MSw3ICszNjEsNyBA
QCB2b2lkIERPTVRpbWVyOjpmaXJlZCgpCiAgICAgICAgIGlmIChXS09ic2VydmVkQ29udGVudENo
YW5nZSgpID09IFdLQ29udGVudFZpc2liaWxpdHlDaGFuZ2UgfHwgc2hvdWxkUmVwb3J0TGFja09m
Q2hhbmdlcykgewogICAgICAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9j
dW1lbnQ+KGNvbnRleHQpOwogICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC5w
YWdlKCkpCi0gICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkub2JzZXJ2ZWRD
b250ZW50Q2hhbmdlKGRvY3VtZW50LmZyYW1lKCkpOworICAgICAgICAgICAgICAgIHBhZ2UtPmNo
cm9tZSgpLmNsaWVudCgpLm9ic2VydmVkQ29udGVudENoYW5nZSgqZG9jdW1lbnQuZnJhbWUoKSk7
CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRl
eCA5Njk5NjUwMzhhMjY1ZGQ3MTgwOGM2YWZkZjBiMjBkZDUyZWI2NGE0Li42MjY5NjczMDlhNWE3
M2EzODczOGMwMTc4ZTJiYzY2MWZiMzBjMjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCwg
MjAxMCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMp
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbmNsdWRlICJCYWNrRm9y
d2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJCYXJQcm9wLmgiCi0jaW5jbHVkZSAiQmVmb3Jl
VW5sb2FkRXZlbnQuaCIKICNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxlRGVjbGFyYXRpb24uaCIK
ICNpbmNsdWRlICJDU1NSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTUnVsZUxpc3QuaCIKQEAgLTEyNSwy
MiArMTI0LDIzIEBACiAjaW5jbHVkZSAiV2ViS2l0TmFtZXNwYWNlLmgiCiAjZW5kaWYKIAotI2lm
IEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQotI2luY2x1ZGUgIkRldmljZVByb3hpbWl0eUNvbnRy
b2xsZXIuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEdBTUVQQUQpCiAjaW5jbHVkZSAiR2FtZXBh
ZE1hbmFnZXIuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQorI2luY2x1ZGUg
Ik5hdmlnYXRvckdlb2xvY2F0aW9uLmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShQT0lOVEVSX0xP
Q0spCiAjaW5jbHVkZSAiUG9pbnRlckxvY2tDb250cm9sbGVyLmgiCiAjZW5kaWYKIAotI2lmIFBM
QVRGT1JNKElPUykKLSNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCi0jaW5jbHVkZSAiTmF2aWdhdG9y
R2VvbG9jYXRpb24uaCIKKyNpZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKKyNpbmNsdWRlICJE
ZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmgiCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykK
ICNpbmNsdWRlICJXS0NvbnRlbnRPYnNlcnZhdGlvbi5oIgogI2VuZGlmCiAKQEAgLTE1MCw5ICsx
NTAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBvc3RNZXNzYWdlVGltZXIgOiBw
dWJsaWMgVGltZXJCYXNlIHsKIHB1YmxpYzoKLSAgICBQb3N0TWVzc2FnZVRpbWVyKERPTVdpbmRv
dyYgd2luZG93LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIERPTVdpbmRvdyYgc291cmNlLCBzdGQ6OnVuaXF1ZV9w
dHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzLCBSZWZQdHI8U2VjdXJpdHlPcmln
aW4+JiYgdGFyZ2V0T3JpZ2luLCBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiYmIHN0YWNrVHJhY2Up
CisgICAgUG9zdE1lc3NhZ2VUaW1lcihET01XaW5kb3cmIHdpbmRvdywgUmVmPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdpbiwgRE9NV2lu
ZG93JiBzb3VyY2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxBcnJheT4gY2hh
bm5lbHMsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiB0YXJnZXRPcmlnaW4sIFJlZlB0cjxTY3Jp
cHRDYWxsU3RhY2s+JiYgc3RhY2tUcmFjZSkKICAgICAgICAgOiBtX3dpbmRvdyh3aW5kb3cpCi0g
ICAgICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCisgICAgICAgICwgbV9tZXNzYWdlKFdURk1vdmUo
bWVzc2FnZSkpCiAgICAgICAgICwgbV9vcmlnaW4oc291cmNlT3JpZ2luKQogICAgICAgICAsIG1f
c291cmNlKHNvdXJjZSkKICAgICAgICAgLCBtX2NoYW5uZWxzKFdURk1vdmUoY2hhbm5lbHMpKQpA
QCAtMTgxLDcgKzE4MSw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgUmVmPERPTVdpbmRvdz4g
bV93aW5kb3c7Ci0gICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9tZXNzYWdlOwor
ICAgIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fbWVzc2FnZTsKICAgICBTdHJpbmcgbV9v
cmlnaW47CiAgICAgUmVmPERPTVdpbmRvdz4gbV9zb3VyY2U7CiAgICAgc3RkOjp1bmlxdWVfcHRy
PE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBtX2NoYW5uZWxzOwpAQCAtMzI1LDEyICszMjUsMTAg
QEAgdm9pZCBET01XaW5kb3c6OmRpc3BhdGNoQWxsUGVuZGluZ1VubG9hZEV2ZW50cygpCiAvLyAz
KSBDb25zdHJhaW5zIHRoZSB3aW5kb3cgcmVjdCB0byB3aXRoaW4gdGhlIHRvcCBhbmQgbGVmdCBi
b3VuZGFyaWVzIG9mIHRoZSBhdmFpbGFibGUgc2NyZWVuIHJlY3QuCiAvLyA0KSBDb25zdHJhaW5z
IHRoZSB3aW5kb3cgcmVjdCB0byB3aXRoaW4gdGhlIGJvdHRvbSBhbmQgcmlnaHQgYm91bmRhcmll
cyBvZiB0aGUgYXZhaWxhYmxlIHNjcmVlbiByZWN0LgogLy8gNSkgVHJhbnNsYXRlIHRoZSB3aW5k
b3cgcmVjdCBjb29yZGluYXRlcyB0byBiZSB3aXRoaW4gdGhlIGNvb3JkaW5hdGUgc3BhY2Ugb2Yg
dGhlIHNjcmVlbi4KLUZsb2F0UmVjdCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSog
cGFnZSwgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcykKK0Zsb2F0UmVjdCBET01XaW5k
b3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSYgcGFnZSwgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5n
Q2hhbmdlcykKIHsKLSAgICBBU1NFUlQocGFnZSk7Ci0KLSAgICBGbG9hdFJlY3Qgc2NyZWVuID0g
c2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLT5tYWluRnJhbWUoKS52aWV3KCkpOwotICAgIEZsb2F0
UmVjdCB3aW5kb3cgPSBwYWdlLT5jaHJvbWUoKS53aW5kb3dSZWN0KCk7CisgICAgRmxvYXRSZWN0
IHNjcmVlbiA9IHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS5tYWluRnJhbWUoKS52aWV3KCkpOwor
ICAgIEZsb2F0UmVjdCB3aW5kb3cgPSBwYWdlLmNocm9tZSgpLndpbmRvd1JlY3QoKTsKIAogICAg
IC8vIE1ha2Ugc3VyZSB3ZSdyZSBpbiBhIHZhbGlkIHN0YXRlIGJlZm9yZSBhZGp1c3RpbmcgZGlt
ZW5zaW9ucy4KICAgICBBU1NFUlQoc3RkOjppc2Zpbml0ZShzY3JlZW4ueCgpKSk7CkBAIC0zNTIs
NyArMzUwLDcgQEAgRmxvYXRSZWN0IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChQYWdlKiBw
YWdlLCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2UKICAgICBpZiAoIXN0ZDo6aXNuYW4o
cGVuZGluZ0NoYW5nZXMuaGVpZ2h0KCkpKQogICAgICAgICB3aW5kb3cuc2V0SGVpZ2h0KHBlbmRp
bmdDaGFuZ2VzLmhlaWdodCgpKTsKIAotICAgIEZsb2F0U2l6ZSBtaW5pbXVtU2l6ZSA9IHBhZ2Ut
PmNocm9tZSgpLmNsaWVudCgpLm1pbmltdW1XaW5kb3dTaXplKCk7CisgICAgRmxvYXRTaXplIG1p
bmltdW1TaXplID0gcGFnZS5jaHJvbWUoKS5jbGllbnQoKS5taW5pbXVtV2luZG93U2l6ZSgpOwog
ICAgIHdpbmRvdy5zZXRXaWR0aChzdGQ6Om1pbihzdGQ6Om1heChtaW5pbXVtU2l6ZS53aWR0aCgp
LCB3aW5kb3cud2lkdGgoKSksIHNjcmVlbi53aWR0aCgpKSk7CiAgICAgd2luZG93LnNldEhlaWdo
dChzdGQ6Om1pbihzdGQ6Om1heChtaW5pbXVtU2l6ZS5oZWlnaHQoKSwgd2luZG93LmhlaWdodCgp
KSwgc2NyZWVuLmhlaWdodCgpKSk7CiAKQEAgLTM2MywzOCArMzYxLDMxIEBAIEZsb2F0UmVjdCBE
T01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSogcGFnZSwgY29uc3QgRmxvYXRSZWN0JiBw
ZW5kaW5nQ2hhbmdlCiAgICAgcmV0dXJuIHdpbmRvdzsKIH0KIAotYm9vbCBET01XaW5kb3c6OmFs
bG93UG9wVXAoRnJhbWUqIGZpcnN0RnJhbWUpCitib29sIERPTVdpbmRvdzo6YWxsb3dQb3BVcChG
cmFtZSYgZmlyc3RGcmFtZSkKIHsKLSAgICBBU1NFUlQoZmlyc3RGcmFtZSk7Ci0gICAgCi0gICAg
YXV0byYgc2V0dGluZ3MgPSBmaXJzdEZyYW1lLT5zZXR0aW5ncygpOwotCi0gICAgaWYgKFNjcmlw
dENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpIHx8IHNldHRpbmdzLmFsbG93V2lu
ZG93T3BlbldpdGhvdXRVc2VyR2VzdHVyZSgpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAg
IHJldHVybiBzZXR0aW5ncy5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KCk7
CisgICAgYXV0byYgc2V0dGluZ3MgPSBmaXJzdEZyYW1lLnNldHRpbmdzKCk7CisgICAgcmV0dXJu
IFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpCisgICAgICAgIHx8IHNl
dHRpbmdzLmFsbG93V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVyZSgpCisgICAgICAgIHx8IHNl
dHRpbmdzLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoKTsKIH0KIAogYm9v
bCBET01XaW5kb3c6OmFsbG93UG9wVXAoKQogewotICAgIHJldHVybiBtX2ZyYW1lICYmIGFsbG93
UG9wVXAobV9mcmFtZSk7CisgICAgcmV0dXJuIG1fZnJhbWUgJiYgYWxsb3dQb3BVcCgqbV9mcmFt
ZSk7CiB9CiAKLWJvb2wgRE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2coY29uc3QgRnJhbWUq
IGZyYW1lKQorYm9vbCBET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhjb25zdCBGcmFtZSYg
ZnJhbWUpCiB7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAg
Ly8gT3ZlcnJpZGUgc3VwcG9ydCBmb3IgbGF5b3V0IHRlc3RpbmcgcHVycG9zZXMuCi0gICAgaWYg
KGF1dG8qIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpIHsKKyAgICBpZiAoYXV0byogZG9j
dW1lbnQgPSBmcmFtZS5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiB3aW5kb3cgPSBk
b2N1bWVudC0+ZG9tV2luZG93KCkpIHsKICAgICAgICAgICAgIGlmICh3aW5kb3ctPm1fY2FuU2hv
d01vZGFsRGlhbG9nT3ZlcnJpZGUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy0+bV9j
YW5TaG93TW9kYWxEaWFsb2dPdmVycmlkZS52YWx1ZSgpOwogICAgICAgICB9CiAgICAgfQogCi0g
ICAgYXV0byogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgcmV0dXJuIHBhZ2UgPyBwYWdlLT5j
aHJvbWUoKS5jYW5SdW5Nb2RhbCgpIDogZmFsc2U7CisgICAgYXV0byogcGFnZSA9IGZyYW1lLnBh
Z2UoKTsKKyAgICByZXR1cm4gcGFnZSAmJiBwYWdlLT5jaHJvbWUoKS5jYW5SdW5Nb2RhbCgpOwog
fQogCiBzdGF0aWMgdm9pZCBsYW5ndWFnZXNDaGFuZ2VkQ2FsbGJhY2sodm9pZCogY29udGV4dCkK
QEAgLTQwNywyMCArMzk4LDE4IEBAIHZvaWQgRE9NV2luZG93OjpzZXRDYW5TaG93TW9kYWxEaWFs
b2dPdmVycmlkZShib29sIGFsbG93KQogICAgIG1fY2FuU2hvd01vZGFsRGlhbG9nT3ZlcnJpZGUg
PSBhbGxvdzsKIH0KIAotRE9NV2luZG93OjpET01XaW5kb3coRG9jdW1lbnQqIGRvY3VtZW50KQot
ICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1lbnQpCi0gICAgLCBGcmFtZURl
c3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1lbnQtPmZyYW1lKCkpCitET01XaW5kb3c6OkRPTVdpbmRv
dyhEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlcigm
ZG9jdW1lbnQpCisgICAgLCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1lbnQuZnJhbWUo
KSkKICAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBBU1NFUlQoZnJhbWUoKSk7
Ci0gICAgQVNTRVJUKERPTVdpbmRvdzo6ZG9jdW1lbnQoKSk7Ci0KICAgICBhZGRMYW5ndWFnZUNo
YW5nZU9ic2VydmVyKHRoaXMsICZsYW5ndWFnZXNDaGFuZ2VkQ2FsbGJhY2spOwogfQogCi12b2lk
IERPTVdpbmRvdzo6ZGlkU2VjdXJlVHJhbnNpdGlvblRvKERvY3VtZW50KiBkb2N1bWVudCkKK3Zv
aWQgRE9NV2luZG93OjpkaWRTZWN1cmVUcmFuc2l0aW9uVG8oRG9jdW1lbnQmIGRvY3VtZW50KQog
ewotICAgIG9ic2VydmVDb250ZXh0KGRvY3VtZW50KTsKKyAgICBvYnNlcnZlQ29udGV4dCgmZG9j
dW1lbnQpOwogfQogCiBET01XaW5kb3c6On5ET01XaW5kb3coKQpAQCAtNTQ3LDE0ICs1MzYsMTQg
QEAgdm9pZCBET01XaW5kb3c6OmRlY3JlbWVudEdhbWVwYWRFdmVudExpc3RlbmVyQ291bnQoKQog
CiAjZW5kaWYKIAotdm9pZCBET01XaW5kb3c6OnJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJv
cGVydHkqIHByb3BlcnR5KQordm9pZCBET01XaW5kb3c6OnJlZ2lzdGVyUHJvcGVydHkoRE9NV2lu
ZG93UHJvcGVydHkmIHByb3BlcnR5KQogewotICAgIG1fcHJvcGVydGllcy5hZGQocHJvcGVydHkp
OworICAgIG1fcHJvcGVydGllcy5hZGQoJnByb3BlcnR5KTsKIH0KIAotdm9pZCBET01XaW5kb3c6
OnVucmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSogcHJvcGVydHkpCit2b2lkIERP
TVdpbmRvdzo6dW5yZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5JiBwcm9wZXJ0eSkK
IHsKLSAgICBtX3Byb3BlcnRpZXMucmVtb3ZlKHByb3BlcnR5KTsKKyAgICBtX3Byb3BlcnRpZXMu
cmVtb3ZlKCZwcm9wZXJ0eSk7CiB9CiAKIHZvaWQgRE9NV2luZG93OjpyZXNldFVubGVzc1N1c3Bl
bmRlZEZvckRvY3VtZW50U3VzcGVuc2lvbigpCkBAIC05NzQsMjMgKzk2MywxOCBAQCB2b2lkIERP
TVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVkKFBvc3RNZXNzYWdlVGltZXImIHRpbWVyKQog
ICAgIGlmICghZG9jdW1lbnQoKSB8fCAhaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGRpc3BhdGNoTWVzc2FnZUV2ZW50V2l0aE9yaWdpbkNoZWNr
KHRpbWVyLnRhcmdldE9yaWdpbigpLCB0aW1lci5ldmVudCgqZG9jdW1lbnQoKSksIHRpbWVyLnN0
YWNrVHJhY2UoKSk7Ci19Ci0KLXZvaWQgRE9NV2luZG93OjpkaXNwYXRjaE1lc3NhZ2VFdmVudFdp
dGhPcmlnaW5DaGVjayhTZWN1cml0eU9yaWdpbiogaW50ZW5kZWRUYXJnZXRPcmlnaW4sIEV2ZW50
JiBldmVudCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2UpCi17Ci0gICAg
aWYgKGludGVuZGVkVGFyZ2V0T3JpZ2luKSB7CisgICAgaWYgKGF1dG8qIGludGVuZGVkVGFyZ2V0
T3JpZ2luID0gdGltZXIudGFyZ2V0T3JpZ2luKCkpIHsKICAgICAgICAgLy8gQ2hlY2sgdGFyZ2V0
IG9yaWdpbiBub3cgc2luY2UgdGhlIHRhcmdldCBkb2N1bWVudCBtYXkgaGF2ZSBjaGFuZ2VkIHNp
bmNlIHRoZSB0aW1lciB3YXMgc2NoZWR1bGVkLgogICAgICAgICBpZiAoIWludGVuZGVkVGFyZ2V0
T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
KSkgewotICAgICAgICAgICAgaWYgKFBhZ2VDb25zb2xlQ2xpZW50KiBwYWdlQ29uc29sZSA9IGNv
bnNvbGUoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIHBhZ2VDb25zb2xlID0gY29uc29sZSgp
KSB7CiAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJVbmFibGUg
dG8gcG9zdCBtZXNzYWdlIHRvICIsIGludGVuZGVkVGFyZ2V0T3JpZ2luLT50b1N0cmluZygpLCAi
LiBSZWNpcGllbnQgaGFzIG9yaWdpbiAiLCBkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLnRv
U3RyaW5nKCksICIuXG4iKTsKLSAgICAgICAgICAgICAgICBwYWdlQ29uc29sZS0+YWRkTWVzc2Fn
ZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWVzc2FnZSwg
c3RhY2tUcmFjZSk7CisgICAgICAgICAgICAgICAgcGFnZUNvbnNvbGUtPmFkZE1lc3NhZ2UoTWVz
c2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UsIHRpbWVy
LnN0YWNrVHJhY2UoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICBkaXNwYXRjaEV2
ZW50KHRpbWVyLmV2ZW50KCpkb2N1bWVudCgpKSk7CiB9CiAKIERPTVNlbGVjdGlvbiogRE9NV2lu
ZG93OjpnZXRTZWxlY3Rpb24oKQpAQCAtMTExMyw3ICsxMDk3LDcgQEAgdm9pZCBET01XaW5kb3c6
OnByaW50KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX3Nob3VsZFByaW50V2hlbkZp
bmlzaGVkTG9hZGluZyA9IGZhbHNlOwotICAgIHBhZ2UtPmNocm9tZSgpLnByaW50KG1fZnJhbWUp
OworICAgIHBhZ2UtPmNocm9tZSgpLnByaW50KCptX2ZyYW1lKTsKIH0KIAogdm9pZCBET01XaW5k
b3c6OnN0b3AoKQpAQCAtMTE0NSw3ICsxMTI5LDcgQEAgdm9pZCBET01XaW5kb3c6OmFsZXJ0KGNv
bnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBwYWdlLT5wb2ludGVyTG9ja0NvbnRyb2xsZXIoKS5y
ZXF1ZXN0UG9pbnRlclVubG9jaygpOwogI2VuZGlmCiAKLSAgICBwYWdlLT5jaHJvbWUoKS5ydW5K
YXZhU2NyaXB0QWxlcnQobV9mcmFtZSwgbWVzc2FnZSk7CisgICAgcGFnZS0+Y2hyb21lKCkucnVu
SmF2YVNjcmlwdEFsZXJ0KCptX2ZyYW1lLCBtZXNzYWdlKTsKIH0KIAogYm9vbCBET01XaW5kb3c6
OmNvbmZpcm0oY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMTE2Nyw3ICsxMTUxLDcgQEAgYm9v
bCBET01XaW5kb3c6OmNvbmZpcm0oY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIHBhZ2UtPnBv
aW50ZXJMb2NrQ29udHJvbGxlcigpLnJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CiAjZW5kaWYKIAot
ICAgIHJldHVybiBwYWdlLT5jaHJvbWUoKS5ydW5KYXZhU2NyaXB0Q29uZmlybShtX2ZyYW1lLCBt
ZXNzYWdlKTsKKyAgICByZXR1cm4gcGFnZS0+Y2hyb21lKCkucnVuSmF2YVNjcmlwdENvbmZpcm0o
Km1fZnJhbWUsIG1lc3NhZ2UpOwogfQogCiBTdHJpbmcgRE9NV2luZG93Ojpwcm9tcHQoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSkKQEAgLTExOTAsNyAr
MTE3NCw3IEBAIFN0cmluZyBET01XaW5kb3c6OnByb21wdChjb25zdCBTdHJpbmcmIG1lc3NhZ2Us
IGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlKQogI2VuZGlmCiAKICAgICBTdHJpbmcgcmV0dXJu
VmFsdWU7Ci0gICAgaWYgKHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRQcm9tcHQobV9mcmFt
ZSwgbWVzc2FnZSwgZGVmYXVsdFZhbHVlLCByZXR1cm5WYWx1ZSkpCisgICAgaWYgKHBhZ2UtPmNo
cm9tZSgpLnJ1bkphdmFTY3JpcHRQcm9tcHQoKm1fZnJhbWUsIG1lc3NhZ2UsIGRlZmF1bHRWYWx1
ZSwgcmV0dXJuVmFsdWUpKQogICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CiAKICAgICByZXR1
cm4gU3RyaW5nKCk7CkBAIC0xMzY4LDcgKzEzNTIsNyBAQCB2b2lkIERPTVdpbmRvdzo6c2V0U3Rh
dHVzKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQo
bV9mcmFtZS0+ZG9jdW1lbnQoKSk7IC8vIENsaWVudCBjYWxscyBzaG91bGRuJ3QgYmUgbWFkZSB3
aGVuIHRoZSBmcmFtZSBpcyBpbiBpbmNvbnNpc3RlbnQgc3RhdGUuCi0gICAgcGFnZS0+Y2hyb21l
KCkuc2V0U3RhdHVzYmFyVGV4dChtX2ZyYW1lLCBtX3N0YXR1cyk7CisgICAgcGFnZS0+Y2hyb21l
KCkuc2V0U3RhdHVzYmFyVGV4dCgqbV9mcmFtZSwgbV9zdGF0dXMpOwogfSAKICAgICAKIHZvaWQg
RE9NV2luZG93OjpzZXREZWZhdWx0U3RhdHVzKGNvbnN0IFN0cmluZyYgc3RyaW5nKSAKQEAgLTEz
ODMsNyArMTM2Nyw3IEBAIHZvaWQgRE9NV2luZG93OjpzZXREZWZhdWx0U3RhdHVzKGNvbnN0IFN0
cmluZyYgc3RyaW5nKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQobV9mcmFtZS0+ZG9j
dW1lbnQoKSk7IC8vIENsaWVudCBjYWxscyBzaG91bGRuJ3QgYmUgbWFkZSB3aGVuIHRoZSBmcmFt
ZSBpcyBpbiBpbmNvbnNpc3RlbnQgc3RhdGUuCi0gICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVz
YmFyVGV4dChtX2ZyYW1lLCBtX2RlZmF1bHRTdGF0dXMpOworICAgIHBhZ2UtPmNocm9tZSgpLnNl
dFN0YXR1c2JhclRleHQoKm1fZnJhbWUsIG1fZGVmYXVsdFN0YXR1cyk7CiB9CiAKIERPTVdpbmRv
dyogRE9NV2luZG93OjpzZWxmKCkgY29uc3QKQEAgLTE0MzIsOCArMTQxNiw3IEBAIERPTVdpbmRv
dyogRE9NV2luZG93Ojp0b3AoKSBjb25zdAogCiBEb2N1bWVudCogRE9NV2luZG93Ojpkb2N1bWVu
dCgpIGNvbnN0CiB7Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCA9IENvbnRl
eHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Ci0gICAgcmV0
dXJuIGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KTsKKyAgICByZXR1cm4gZG93bmNhc3Q8RG9j
dW1lbnQ+KENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpOwogfQogCiBSZWZQdHI8U3R5bGVNZWRpYT4gRE9NV2luZG93OjpzdHlsZU1lZGlhKCkgY29u
c3QKQEAgLTE2MTgsOCArMTYwMSw3IEBAIHZvaWQgRE9NV2luZG93Ojptb3ZlQnkoZmxvYXQgeCwg
ZmxvYXQgeSkgY29uc3QKICAgICBGbG9hdFJlY3QgZnIgPSBwYWdlLT5jaHJvbWUoKS53aW5kb3dS
ZWN0KCk7CiAgICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOwogICAgIHVwZGF0ZS5tb3ZlKHgsIHkp
OwotICAgIC8vIFNlY3VyaXR5IGNoZWNrICh0aGUgc3BlYyB0YWxrcyBhYm91dCBVbml2ZXJzYWxC
cm93c2VyV3JpdGUgdG8gZGlzYWJsZSB0aGlzIGNoZWNrLi4uKQotICAgIHBhZ2UtPmNocm9tZSgp
LnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKKyAgICBwYWdl
LT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHVwZGF0ZSkp
OwogfQogCiB2b2lkIERPTVdpbmRvdzo6bW92ZVRvKGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CkBA
IC0xNjMzLDggKzE2MTUsNyBAQCB2b2lkIERPTVdpbmRvdzo6bW92ZVRvKGZsb2F0IHgsIGZsb2F0
IHkpIGNvbnN0CiAgICAgZnIuc2V0TG9jYXRpb24oc3IubG9jYXRpb24oKSk7CiAgICAgRmxvYXRS
ZWN0IHVwZGF0ZSA9IGZyOwogICAgIHVwZGF0ZS5tb3ZlKHgsIHkpOwotICAgIC8vIFNlY3VyaXR5
IGNoZWNrICh0aGUgc3BlYyB0YWxrcyBhYm91dCBVbml2ZXJzYWxCcm93c2VyV3JpdGUgdG8gZGlz
YWJsZSB0aGlzIGNoZWNrLi4uKQotICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRq
dXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5k
b3dSZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHVwZGF0ZSkpOwogfQogCiB2b2lkIERPTVdp
bmRvdzo6cmVzaXplQnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKQEAgLTE2NDYsNyArMTYyNyw3
IEBAIHZvaWQgRE9NV2luZG93OjpyZXNpemVCeShmbG9hdCB4LCBmbG9hdCB5KSBjb25zdAogICAg
IEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLndpbmRvd1JlY3QoKTsKICAgICBGbG9hdFNp
emUgZGVzdCA9IGZyLnNpemUoKSArIEZsb2F0U2l6ZSh4LCB5KTsKICAgICBGbG9hdFJlY3QgdXBk
YXRlKGZyLmxvY2F0aW9uKCksIGRlc3QpOwotICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1Jl
Y3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5z
ZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHVwZGF0ZSkpOwogfQogCiB2b2lk
IERPTVdpbmRvdzo6cmVzaXplVG8oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgY29uc3QKQEAg
LTE2NTgsNyArMTYzOSw3IEBAIHZvaWQgRE9NV2luZG93OjpyZXNpemVUbyhmbG9hdCB3aWR0aCwg
ZmxvYXQgaGVpZ2h0KSBjb25zdAogICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLndp
bmRvd1JlY3QoKTsKICAgICBGbG9hdFNpemUgZGVzdCA9IEZsb2F0U2l6ZSh3aWR0aCwgaGVpZ2h0
KTsKICAgICBGbG9hdFJlY3QgdXBkYXRlKGZyLmxvY2F0aW9uKCksIGRlc3QpOwotICAgIHBhZ2Ut
PmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsK
KyAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2Us
IHVwZGF0ZSkpOwogfQogCiBFeGNlcHRpb25PcjxpbnQ+IERPTVdpbmRvdzo6c2V0VGltZW91dChz
dGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0aW1lb3V0KQpAQCAt
MTY4MSw3ICsxNjYyLDcgQEAgdm9pZCBET01XaW5kb3c6OmNsZWFyVGltZW91dChpbnQgdGltZW91
dElkKQogCiAgICAgICAgICAgICAgICAgaWYgKCFXZWJUaHJlYWRDb3VudE9mT2JzZXJ2ZWRDb250
ZW50TW9kaWZpZXJzKCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBt
X2ZyYW1lLT5wYWdlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS5vYnNlcnZlZENvbnRlbnRDaGFuZ2UobV9mcmFtZSk7CisgICAgICAgICAgICAgICAg
ICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5vYnNlcnZlZENvbnRlbnRDaGFuZ2UoKm1f
ZnJhbWUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAt
MTg0MSw3ICsxODIyLDcgQEAgdm9pZCBET01XaW5kb3c6OmluY3JlbWVudFNjcm9sbEV2ZW50TGlz
dGVuZXJzQ291bnQoKQogICAgIGlmICgrK21fc2Nyb2xsRXZlbnRMaXN0ZW5lckNvdW50ID09IDEg
JiYgZG9jdW1lbnQgPT0gJmRvY3VtZW50LT50b3BEb2N1bWVudCgpKSB7CiAgICAgICAgIEZyYW1l
KiBmcmFtZSA9IHRoaXMtPmZyYW1lKCk7CiAgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+cGFn
ZSgpKQotICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVl
ZHNTY3JvbGxOb3RpZmljYXRpb25zKGZyYW1lLCB0cnVlKTsKKyAgICAgICAgICAgIGZyYW1lLT5w
YWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucygqZnJh
bWUsIHRydWUpOwogICAgIH0KIH0KIApAQCAtMTg1MSw3ICsxODMyLDcgQEAgdm9pZCBET01XaW5k
b3c6OmRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJzQ291bnQoKQogICAgIGlmICghLS1tX3Nj
cm9sbEV2ZW50TGlzdGVuZXJDb3VudCAmJiBkb2N1bWVudCA9PSAmZG9jdW1lbnQtPnRvcERvY3Vt
ZW50KCkpIHsKICAgICAgICAgRnJhbWUqIGZyYW1lID0gdGhpcy0+ZnJhbWUoKTsKICAgICAgICAg
aWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCkgJiYgZG9jdW1lbnQtPnBhZ2VDYWNoZVN0YXRlKCkg
PT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKQotICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+
Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKGZyYW1lLCBmYWxz
ZSk7CisgICAgICAgICAgICBmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXROZWVk
c1Njcm9sbE5vdGlmaWNhdGlvbnMoKmZyYW1lLCBmYWxzZSk7CiAgICAgfQogfQogCkBAIC0xODU5
LDcgKzE4NDAsNyBAQCB2b2lkIERPTVdpbmRvdzo6ZGVjcmVtZW50U2Nyb2xsRXZlbnRMaXN0ZW5l
cnNDb3VudCgpCiAKIHZvaWQgRE9NV2luZG93OjpyZXNldEFsbEdlb2xvY2F0aW9uUGVybWlzc2lv
bigpCiB7Ci0gICAgLy8gRklYTUU6IFJlbW92ZSBQTEFURk9STShJT1MpLWd1YXJkIG9uY2Ugd2Ug
dXBzdHJlYW0gdGhlIGlPUyBjaGFuZ2VzIHRvIEdlb2xvY2F0aW9uLmNwcC4KKyAgICAvLyBGSVhN
RTogQ2FuIHdlIHJlbW92ZSB0aGUgUExBVEZPUk0oSU9TKS1ndWFyZD8KICNpZiBFTkFCTEUoR0VP
TE9DQVRJT04pICYmIFBMQVRGT1JNKElPUykKICAgICBpZiAobV9uYXZpZ2F0b3IpCiAgICAgICAg
IE5hdmlnYXRvckdlb2xvY2F0aW9uOjpmcm9tKG1fbmF2aWdhdG9yLmdldCgpKS0+cmVzZXRBbGxH
ZW9sb2NhdGlvblBlcm1pc3Npb24oKTsKQEAgLTIyODcsOCArMjI2OCw3IEBAIHZvaWQgRE9NV2lu
ZG93OjpzaG93TW9kYWxEaWFsb2coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgZGlhbG9nRmVhCiB7CiAgICAgaWYgKCFpc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkK
ICAgICAgICAgcmV0dXJuOwotICAgIEZyYW1lKiBhY3RpdmVGcmFtZSA9IGFjdGl2ZVdpbmRvdy5m
cmFtZSgpOwotICAgIGlmICghYWN0aXZlRnJhbWUpCisgICAgaWYgKCFhY3RpdmVXaW5kb3cuZnJh
bWUoKSkKICAgICAgICAgcmV0dXJuOwogICAgIEZyYW1lKiBmaXJzdEZyYW1lID0gZmlyc3RXaW5k
b3cuZnJhbWUoKTsKICAgICBpZiAoIWZpcnN0RnJhbWUpCkBAIC0yMzAzLDcgKzIyODMsNyBAQCB2
b2lkIERPTVdpbmRvdzo6c2hvd01vZGFsRGlhbG9nKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBj
b25zdCBTdHJpbmcmIGRpYWxvZ0ZlYQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYg
KCFjYW5TaG93TW9kYWxEaWFsb2cobV9mcmFtZSkgfHwgIWZpcnN0V2luZG93LmFsbG93UG9wVXAo
KSkKKyAgICBpZiAoIWNhblNob3dNb2RhbERpYWxvZygqbV9mcmFtZSkgfHwgIWZpcnN0V2luZG93
LmFsbG93UG9wVXAoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPEZyYW1lPiBkaWFs
b2dGcmFtZSA9IGNyZWF0ZVdpbmRvdyh1cmxTdHJpbmcsIGVtcHR5QXRvbSwgcGFyc2VEaWFsb2dG
ZWF0dXJlcyhkaWFsb2dGZWF0dXJlc1N0cmluZywgc2NyZWVuQXZhaWxhYmxlUmVjdChtX2ZyYW1l
LT52aWV3KCkpKSwgYWN0aXZlV2luZG93LCAqZmlyc3RGcmFtZSwgKm1fZnJhbWUsIFdURk1vdmUo
cHJlcGFyZURpYWxvZ0Z1bmN0aW9uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAppbmRleCBjNWU5
MDI4OTg4NmQ3MmFhODg2YzQ5YWRiOTQ3OTVkMzc3MDU5YjMxLi5lMDA3MDE2ZTVkODY3YTIwNTc5
ZmE0MDE4MzMyYmI1ZGYxYWUxZWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5LCAyMDEwIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBOb2tp
YSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKQEAgLTMzLDIzICszMywxNCBAQAogI2luY2x1ZGUgIkZyYW1lRGVzdHJ1Y3Rpb25PYnNlcnZl
ci5oIgogI2luY2x1ZGUgIlNjcm9sbFRvT3B0aW9ucy5oIgogI2luY2x1ZGUgIlN1cHBsZW1lbnRh
YmxlLmgiCi0jaW5jbHVkZSAiVVJMLmgiCi0jaW5jbHVkZSA8ZnVuY3Rpb25hbD4KLSNpbmNsdWRl
IDxtZW1vcnk+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgotI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CiAKLW5hbWVzcGFjZSBJbnNwZWN0b3IgewotY2xhc3MgU2NyaXB0Q2FsbFN0YWNrOwotfQotCiBu
YW1lc3BhY2UgSlNDIHsKIGNsYXNzIEV4ZWNTdGF0ZTsKIGNsYXNzIEpTT2JqZWN0OwogY2xhc3Mg
SlNWYWx1ZTsKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFN0cm9uZzsKK3RlbXBsYXRlPHR5
cGVuYW1lPiBjbGFzcyBTdHJvbmc7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTYxLDIy
ICs1MiwxNSBAQCBjbGFzcyBDcnlwdG87CiBjbGFzcyBDdXN0b21FbGVtZW50UmVnaXN0cnk7CiBj
bGFzcyBET01BcHBsaWNhdGlvbkNhY2hlOwogY2xhc3MgRE9NU2VsZWN0aW9uOwotY2xhc3MgRE9N
VVJMOwogY2xhc3MgRE9NV2luZG93UHJvcGVydHk7CiBjbGFzcyBET01XcmFwcGVyV29ybGQ7Ci1j
bGFzcyBEYXRhYmFzZTsKLWNsYXNzIERhdGFiYXNlQ2FsbGJhY2s7CiBjbGFzcyBEb2N1bWVudDsK
IGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBFdmVudExpc3RlbmVyOwogY2xhc3MgRmxvYXRSZWN0Owot
Y2xhc3MgRnJhbWU7CiBjbGFzcyBIaXN0b3J5OwotY2xhc3MgSURCRmFjdG9yeTsKIGNsYXNzIExv
Y2F0aW9uOwogY2xhc3MgTWVkaWFRdWVyeUxpc3Q7Ci1jbGFzcyBNZXNzYWdlRXZlbnQ7Ci1jbGFz
cyBNZXNzYWdlUG9ydDsKIGNsYXNzIE5hdmlnYXRvcjsKIGNsYXNzIE5vZGU7CiBjbGFzcyBOb2Rl
TGlzdDsKQEAgLTg3LDggKzcxLDYgQEAgY2xhc3MgUG9zdE1lc3NhZ2VUaW1lcjsKIGNsYXNzIFJl
cXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrOwogY2xhc3MgU2NoZWR1bGVkQWN0aW9uOwogY2xh
c3MgU2NyZWVuOwotY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1jbGFzcyBTZXJpYWxpemVkU2NyaXB0
VmFsdWU7CiBjbGFzcyBTdG9yYWdlOwogY2xhc3MgU3R5bGVNZWRpYTsKIGNsYXNzIFdlYktpdE5h
bWVzcGFjZTsKQEAgLTEwNyw3ICs4OSw3IEBAIGNsYXNzIERPTVdpbmRvdyBmaW5hbAogICAgICwg
cHVibGljIEJhc2U2NFV0aWxpdGllcwogICAgICwgcHVibGljIFN1cHBsZW1lbnRhYmxlPERPTVdp
bmRvdz4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RE9NV2luZG93PiBjcmVhdGUoRG9jdW1l
bnQqIGRvY3VtZW50KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTVdpbmRvdyhkb2N1bWVudCkp
OyB9CisgICAgc3RhdGljIFJlZjxET01XaW5kb3c+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQp
IHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NV2luZG93KGRvY3VtZW50KSk7IH0KICAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIH5ET01XaW5kb3coKTsKIAogICAgIC8vIEluIHNvbWUgcmFyZSBj
YXNlcywgd2UnbGwgcmV1c2UgYSBET01XaW5kb3cgZm9yIGEgbmV3IERvY3VtZW50LiBGb3IgZXhh
bXBsZSwKQEAgLTExNywxNSArOTksMTAgQEAgcHVibGljOgogICAgIC8vIHdvbid0IGJlIGJsb3du
IGF3YXkgd2hlbiB0aGUgbmV0d29yayBsb2FkIGNvbW1pdHMuIFRvIG1ha2UgdGhhdCBoYXBwZW4s
IHdlCiAgICAgLy8gInNlY3VyZWx5IHRyYW5zaXRpb24iIHRoZSBleGlzdGluZyBET01XaW5kb3cg
dG8gdGhlIERvY3VtZW50IHRoYXQgcmVzdWx0cyBmcm9tCiAgICAgLy8gdGhlIG5ldHdvcmsgbG9h
ZC4gU2VlIGFsc28gU2VjdXJpdHlDb250ZXh0Ojppc1NlY3VyZVRyYW5zaXRpb25Uby4KLSAgICB2
b2lkIGRpZFNlY3VyZVRyYW5zaXRpb25UbyhEb2N1bWVudCopOwotCi0gICAgRXZlbnRUYXJnZXRJ
bnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBE
T01XaW5kb3dFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KLSAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
Q29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQot
Ci0gICAgRE9NV2luZG93KiB0b0RPTVdpbmRvdygpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkU2Vj
dXJlVHJhbnNpdGlvblRvKERvY3VtZW50Jik7CiAKLSAgICB2b2lkIHJlZ2lzdGVyUHJvcGVydHko
RE9NV2luZG93UHJvcGVydHkqKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJQcm9wZXJ0eShET01XaW5k
b3dQcm9wZXJ0eSopOworICAgIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0
eSYpOworICAgIHZvaWQgdW5yZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5Jik7CiAK
ICAgICB2b2lkIHJlc2V0VW5sZXNzU3VzcGVuZGVkRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCk7CiAg
ICAgdm9pZCBzdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCk7CkBAIC0xMzgsMTEgKzExNSwx
MSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgZGlzcGF0Y2hBbGxQ
ZW5kaW5nQmVmb3JlVW5sb2FkRXZlbnRzKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIHZv
aWQgZGlzcGF0Y2hBbGxQZW5kaW5nVW5sb2FkRXZlbnRzKCk7CiAKLSAgICBzdGF0aWMgRmxvYXRS
ZWN0IGFkanVzdFdpbmRvd1JlY3QoUGFnZSosIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5n
ZXMpOworICAgIHN0YXRpYyBGbG9hdFJlY3QgYWRqdXN0V2luZG93UmVjdChQYWdlJiwgY29uc3Qg
RmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcyk7CiAKICAgICBib29sIGFsbG93UG9wVXAoKTsgLy8g
Q2FsbCBvbiBmaXJzdCB3aW5kb3csIG5vdCB0YXJnZXQgd2luZG93LgotICAgIHN0YXRpYyBib29s
IGFsbG93UG9wVXAoRnJhbWUqIGZpcnN0RnJhbWUpOwotICAgIHN0YXRpYyBib29sIGNhblNob3dN
b2RhbERpYWxvZyhjb25zdCBGcmFtZSopOworICAgIHN0YXRpYyBib29sIGFsbG93UG9wVXAoRnJh
bWUmIGZpcnN0RnJhbWUpOworICAgIHN0YXRpYyBib29sIGNhblNob3dNb2RhbERpYWxvZyhjb25z
dCBGcmFtZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2FuU2hvd01vZGFsRGlhbG9n
T3ZlcnJpZGUoYm9vbCk7CiAKICAgICBTY3JlZW4qIHNjcmVlbigpIGNvbnN0OwpAQCAtMjQ1LDcg
KzIyMiw2IEBAIHB1YmxpYzoKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBvc3RNZXNzYWdlKEpT
Qzo6RXhlY1N0YXRlJiwgRE9NV2luZG93JiBjYWxsZXJXaW5kb3csIEpTQzo6SlNWYWx1ZSBtZXNz
YWdlLCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdpbiwgVmVjdG9yPEpTQzo6U3Ryb25nPEpTQzo6
SlNPYmplY3Q+PiYmKTsKICAgICB2b2lkIHBvc3RNZXNzYWdlVGltZXJGaXJlZChQb3N0TWVzc2Fn
ZVRpbWVyJik7Ci0gICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmlnaW5DaGVjayhT
ZWN1cml0eU9yaWdpbiogaW50ZW5kZWRUYXJnZXRPcmlnaW4sIEV2ZW50JiwgUGFzc1JlZlB0cjxJ
bnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4pOwogCiAgICAgdm9pZCBsYW5ndWFnZXNDaGFuZ2Vk
KCk7CiAKQEAgLTI3Miw5ICsyNDgsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBFdmVudHMKICAgICAv
LyBFdmVudFRhcmdldCBBUEkKLSAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVudExp
c3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIGJvb2wgcmVtb3ZlRXZlbnRMaXN0ZW5lcihj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGNvbnN0IExpc3Rl
bmVyT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMo
KSBvdmVycmlkZTsKKyAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVudExpc3RlbmVy
T3B0aW9ucyYpIGZpbmFsOworICAgIGJvb2wgcmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9t
aWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGNvbnN0IExpc3RlbmVyT3B0aW9u
cyYpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKSBmaW5hbDsKIAog
ICAgIHVzaW5nIEV2ZW50VGFyZ2V0OjpkaXNwYXRjaEV2ZW50OwogICAgIGJvb2wgZGlzcGF0Y2hF
dmVudChFdmVudCYsIEV2ZW50VGFyZ2V0Kik7CkBAIC0yODYsOCArMjYyLDggQEAgcHVibGljOgog
CiAgICAgdm9pZCBmaW5pc2hlZExvYWRpbmcoKTsKIAotICAgIHVzaW5nIFJlZkNvdW50ZWQ8RE9N
V2luZG93Pjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8RE9NV2luZG93Pjo6ZGVyZWY7Cisg
ICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ6OmRlcmVmOwog
CiAgICAgLy8gSFRNTCA1IGtleS92YWx1ZSBzdG9yYWdlCiAgICAgRXhjZXB0aW9uT3I8U3RvcmFn
ZSo+IHNlc3Npb25TdG9yYWdlKCkgY29uc3Q7CkBAIC0zMTMsNiArMjg5LDcgQEAgcHVibGljOgog
I2lmIEVOQUJMRShXRUJfVElNSU5HKQogICAgIFBlcmZvcm1hbmNlKiBwZXJmb3JtYW5jZSgpIGNv
bnN0OwogI2VuZGlmCisKICAgICBkb3VibGUgbm93VGltZXN0YW1wKCkgY29uc3Q7CiAKICNpZiBQ
TEFURk9STShJT1MpCkBAIC0zNDcsMTYgKzMyNCwyMSBAQCBwdWJsaWM6CiAgICAgV2Vha1B0cjxE
T01XaW5kb3c+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0
ZVdlYWtQdHIoKTsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IERPTVdpbmRvdyhEb2N1bWVu
dCopOworICAgIGV4cGxpY2l0IERPTVdpbmRvdyhEb2N1bWVudCYpOworCisgICAgRXZlbnRUYXJn
ZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiBE
T01XaW5kb3dFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyByZXR1cm4gQ29u
dGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsgfQorCisg
ICAgRE9NV2luZG93KiB0b0RPTVdpbmRvdygpIGZpbmFsOwogCiAgICAgUGFnZSogcGFnZSgpOwog
ICAgIGJvb2wgYWxsb3dlZFRvQ2hhbmdlV2luZG93R2VvbWV0cnkoKSBjb25zdDsKIAotICAgIHZv
aWQgZnJhbWVEZXN0cm95ZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXRhY2hQYWdlKCkg
b3ZlcnJpZGU7CisgICAgdm9pZCBmcmFtZURlc3Ryb3llZCgpIGZpbmFsOworICAgIHZvaWQgd2ls
bERldGFjaFBhZ2UoKSBmaW5hbDsKIAotICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQoKSBvdmVycmlk
ZSB7IHJlZigpOyB9Ci0gICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyBkZXJl
ZigpOyB9CisgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7IH0KKyAgICB2
b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAgIHN0YXRpYyBS
ZWZQdHI8RnJhbWU+IGNyZWF0ZVdpbmRvdyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3Qg
QXRvbWljU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgRE9NV2luZG93
JiBhY3RpdmVXaW5kb3csIEZyYW1lJiBmaXJzdEZyYW1lLCBGcmFtZSYgb3BlbmVyRnJhbWUsIHN0
ZDo6ZnVuY3Rpb248dm9pZChET01XaW5kb3cmKT4gcHJlcGFyZURpYWxvZ0Z1bmN0aW9uID0gbnVs
bHB0cik7CiAgICAgYm9vbCBpc0luc2VjdXJlU2NyaXB0QWNjZXNzKERPTVdpbmRvdyYgYWN0aXZl
V2luZG93LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93UHJvcGVydHkuY3BwCmluZGV4IGEzNzcwZThlNzAwYzY1ODI2MjZjNjRiOTg1ZmRlYzZm
YzA3ZjMzZjUuLjU1MDk2YjY0YWFhN2YyNDkzMWEyYzcxOWE3ZTVjNjA5ZWQ1MGY4NTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCkBAIC00MiwxNCArNDIsMTQg
QEAgRE9NV2luZG93UHJvcGVydHk6OkRPTVdpbmRvd1Byb3BlcnR5KEZyYW1lKiBmcmFtZSkKICAg
ICAvLyBXZSBzaG91bGQgZml4IHRoYXQuICA8cmRhcjovL3Byb2JsZW0vMTE1NjcxMzI+CiAgICAg
aWYgKG1fZnJhbWUpIHsKICAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93ID0gbV9mcmFtZS0+
ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCk7Ci0gICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+
cmVnaXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93LT5y
ZWdpc3RlclByb3BlcnR5KCp0aGlzKTsKICAgICB9CiB9CiAKIERPTVdpbmRvd1Byb3BlcnR5Ojp+
RE9NV2luZG93UHJvcGVydHkoKQogewogICAgIGlmIChtX2Fzc29jaWF0ZWRET01XaW5kb3cpCi0g
ICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+dW5yZWdpc3RlclByb3BlcnR5KHRoaXMpOwor
ICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ctPnVucmVnaXN0ZXJQcm9wZXJ0eSgqdGhpcyk7
CiAKICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3cgPSBudWxscHRyOwogICAgIG1fZnJhbWUgPSBu
dWxscHRyOwpAQCAtODYsNyArODYsNyBAQCB2b2lkIERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVz
dHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUoKQogICAgIC8vIERPTVdpbmRvd1Byb3BlcnR5
IGxpZmV0aW1lIGlzbid0IHRpZWQgZGlyZWN0bHkgdG8gdGhlIERPTVdpbmRvdyBpdHNlbGYgc28g
aXQgaXMgaW1wb3J0YW50IHRoYXQgaXQgdW5yZWdpc3RlcgogICAgIC8vIGl0c2VsZiBmcm9tIGFu
eSBET01XaW5kb3cgaXQgaXMgYXNzb2NpYXRlZCB3aXRoIGlmIHRoYXQgRE9NV2luZG93IGlzIGdv
aW5nIGF3YXkuCiAgICAgaWYgKG1fYXNzb2NpYXRlZERPTVdpbmRvdykKLSAgICAgICAgbV9hc3Nv
Y2lhdGVkRE9NV2luZG93LT51bnJlZ2lzdGVyUHJvcGVydHkodGhpcyk7CisgICAgICAgIG1fYXNz
b2NpYXRlZERPTVdpbmRvdy0+dW5yZWdpc3RlclByb3BlcnR5KCp0aGlzKTsKICAgICBtX2Fzc29j
aWF0ZWRET01XaW5kb3cgPSBudWxscHRyOwogICAgIG1fZnJhbWUgPSBudWxscHRyOwogfQpAQCAt
MTAwLDcgKzEwMCw3IEBAIHZvaWQgRE9NV2luZG93UHJvcGVydHk6OndpbGxEZXN0cm95R2xvYmFs
T2JqZWN0SW5GcmFtZSgpCiAgICAgLy8gRE9NV2luZG93UHJvcGVydHkgbGlmZXRpbWUgaXNuJ3Qg
dGllZCBkaXJlY3RseSB0byB0aGUgRE9NV2luZG93IGl0c2VsZiBzbyBpdCBpcyBpbXBvcnRhbnQg
dGhhdCBpdCB1bnJlZ2lzdGVyCiAgICAgLy8gaXRzZWxmIGZyb20gYW55IERPTVdpbmRvdyBpdCBp
cyBhc3NvY2lhdGVkIHdpdGggaWYgdGhhdCBET01XaW5kb3cgaXMgZ29pbmcgYXdheS4KICAgICBp
ZiAobV9hc3NvY2lhdGVkRE9NV2luZG93KQotICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ct
PnVucmVnaXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93
LT51bnJlZ2lzdGVyUHJvcGVydHkoKnRoaXMpOwogICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdyA9
IG51bGxwdHI7CiAgICAgbV9mcmFtZSA9IG51bGxwdHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RGVidWdQYWdlT3ZlcmxheXMuY3BwCmluZGV4IGNhYTA3YTQ3YmVlOGYxOWNlZTM0NGVmYTU3NmY1
MGVkNDUxNDczZWEuLmFmMDgwMmJjOGJlODAzODFkMTMzMDUzZjc3OGZjM2E3NjM2NDNlNGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCkBAIC00NCw3ICs0NCw3
IEBAIERlYnVnUGFnZU92ZXJsYXlzKiBEZWJ1Z1BhZ2VPdmVybGF5czo6c2hhcmVkRGVidWdPdmVy
bGF5czsKIAogY2xhc3MgUmVnaW9uT3ZlcmxheSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlZ2lvbk92
ZXJsYXk+LCBwdWJsaWMgUGFnZU92ZXJsYXk6OkNsaWVudCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8UmVnaW9uT3ZlcmxheT4gY3JlYXRlKE1haW5GcmFtZSYsIERlYnVnUGFnZU92
ZXJsYXlzOjpSZWdpb25UeXBlKTsKKyAgICBzdGF0aWMgUmVmUHRyPFJlZ2lvbk92ZXJsYXk+IGNy
ZWF0ZShNYWluRnJhbWUmLCBEZWJ1Z1BhZ2VPdmVybGF5czo6UmVnaW9uVHlwZSk7CiAgICAgdmly
dHVhbCB+UmVnaW9uT3ZlcmxheSgpOwogCiAgICAgdm9pZCByZWNvbXB1dGVSZWdpb24oKTsKQEAg
LTE0Myw3ICsxNDMsNyBAQCBib29sIE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uT3ZlcmxheTo6dXBk
YXRlUmVnaW9uKCkKICAgICByZXR1cm4gcmVnaW9uQ2hhbmdlZDsKIH0KIAotUGFzc1JlZlB0cjxS
ZWdpb25PdmVybGF5PiBSZWdpb25PdmVybGF5OjpjcmVhdGUoTWFpbkZyYW1lJiBmcmFtZSwgRGVi
dWdQYWdlT3ZlcmxheXM6OlJlZ2lvblR5cGUgcmVnaW9uVHlwZSkKK1JlZlB0cjxSZWdpb25PdmVy
bGF5PiBSZWdpb25PdmVybGF5OjpjcmVhdGUoTWFpbkZyYW1lJiBmcmFtZSwgRGVidWdQYWdlT3Zl
cmxheXM6OlJlZ2lvblR5cGUgcmVnaW9uVHlwZSkKIHsKICAgICBzd2l0Y2ggKHJlZ2lvblR5cGUp
IHsKICAgICBjYXNlIERlYnVnUGFnZU92ZXJsYXlzOjpSZWdpb25UeXBlOjpXaGVlbEV2ZW50SGFu
ZGxlcnM6CkBAIC0xNjUsNyArMTY1LDcgQEAgUmVnaW9uT3ZlcmxheTo6UmVnaW9uT3ZlcmxheShN
YWluRnJhbWUmIGZyYW1lLCBDb2xvciByZWdpb25Db2xvcikKIFJlZ2lvbk92ZXJsYXk6On5SZWdp
b25PdmVybGF5KCkKIHsKICAgICBpZiAobV9vdmVybGF5KQotICAgICAgICBtX2ZyYW1lLnBhZ2VP
dmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSwg
UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgICAgICBtX2ZyYW1lLnBhZ2VP
dmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX292ZXJsYXksIFBhZ2VP
dmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIH0KIAogdm9pZCBSZWdpb25PdmVybGF5Ojp3
aWxsTW92ZVRvUGFnZShQYWdlT3ZlcmxheSYsIFBhZ2UqIHBhZ2UpCkBAIC0yNDgsNyArMjQ4LDcg
QEAgUmVnaW9uT3ZlcmxheSYgRGVidWdQYWdlT3ZlcmxheXM6OmVuc3VyZVJlZ2lvbk92ZXJsYXlG
b3JGcmFtZShNYWluRnJhbWUmIGZyYW1lLAogdm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6c2hvd1Jl
Z2lvbk92ZXJsYXkoTWFpbkZyYW1lJiBmcmFtZSwgUmVnaW9uVHlwZSByZWdpb25UeXBlKQogewog
ICAgIFJlZ2lvbk92ZXJsYXkmIHZpc3VhbGl6ZXIgPSBlbnN1cmVSZWdpb25PdmVybGF5Rm9yRnJh
bWUoZnJhbWUsIHJlZ2lvblR5cGUpOwotICAgIGZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigp
Lmluc3RhbGxQYWdlT3ZlcmxheSgmdmlzdWFsaXplci5vdmVybGF5KCksIFBhZ2VPdmVybGF5OjpG
YWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICBmcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5p
bnN0YWxsUGFnZU92ZXJsYXkodmlzdWFsaXplci5vdmVybGF5KCksIFBhZ2VPdmVybGF5OjpGYWRl
TW9kZTo6RG9Ob3RGYWRlKTsKIH0KIAogdm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6aGlkZVJlZ2lv
bk92ZXJsYXkoTWFpbkZyYW1lJiBmcmFtZSwgUmVnaW9uVHlwZSByZWdpb25UeXBlKQpAQCAtMjU3
LDcgKzI1Nyw3IEBAIHZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OmhpZGVSZWdpb25PdmVybGF5KE1h
aW5GcmFtZSYgZnJhbWUsIFJlZ2lvblR5cGUgcmVnaW9uVHlwCiAgICAgaWYgKGl0ICE9IG1fZnJh
bWVSZWdpb25PdmVybGF5cy5lbmQoKSkgewogICAgICAgICBhdXRvJiB2aXN1YWxpemVycyA9IGl0
LT52YWx1ZTsKICAgICAgICAgaWYgKFJlZ2lvbk92ZXJsYXkqIHZpc3VhbGl6ZXIgPSB2aXN1YWxp
emVyc1tpbmRleE9mKHJlZ2lvblR5cGUpXS5nZXQoKSkgewotICAgICAgICAgICAgZnJhbWUucGFn
ZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoJnZpc3VhbGl6ZXItPm92
ZXJsYXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgICAgICAgICAg
ZnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkodmlzdWFs
aXplci0+b3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAg
ICAgICAgICB2aXN1YWxpemVyc1tpbmRleE9mKHJlZ2lvblR5cGUpXSA9IG51bGxwdHI7CiAgICAg
ICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IGYy
MzE4YTAzYzE0YmQxZGY4MjMyMGNjMDdjNzg5OWIyOTQyN2M2NDYuLmRmNmNmZTA0YzI3YTNmOTg0
MDIyMTlhNjZjODgyYjNkNDNiNmZlNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xs
ZXIuY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZHJhZ0V4aXRl
ZChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAjZW5kaWYKICAgICAgICAgUmVmUHRyPERhdGFU
cmFuc2Zlcj4gZGF0YVRyYW5zZmVyID0gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJv
cChwb2xpY3ksIGRyYWdEYXRhKTsKICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRTb3VyY2VPcGVy
YXRpb24oZHJhZ0RhdGEuZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrKCkpOwotICAgICAgICBt
X3BhZ2UubWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuY2FuY2VsRHJhZ0FuZERyb3AoY3JlYXRl
TW91c2VFdmVudChkcmFnRGF0YSksIGRhdGFUcmFuc2Zlci5nZXQoKSk7CisgICAgICAgIG1fcGFn
ZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5jYW5jZWxEcmFnQW5kRHJvcChjcmVhdGVNb3Vz
ZUV2ZW50KGRyYWdEYXRhKSwgKmRhdGFUcmFuc2Zlcik7CiAgICAgICAgIGRhdGFUcmFuc2Zlci0+
c2V0QWNjZXNzUG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7IC8vIEludmFs
aWRhdGUgZGF0YVRyYW5zZmVyIGhlcmUgZm9yIHNlY3VyaXR5LgogICAgIH0KICAgICBtb3VzZU1v
dmVkSW50b0RvY3VtZW50KG51bGxwdHIpOwpAQCAtMjI3LDcgKzIyNyw3IEBAIGJvb2wgRHJhZ0Nv
bnRyb2xsZXI6OnBlcmZvcm1EcmFnT3BlcmF0aW9uKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkK
ICAgICAgICAgICAgIC8vIFNlbmRpbmcgYW4gZXZlbnQgY2FuIHJlc3VsdCBpbiB0aGUgZGVzdHJ1
Y3Rpb24gb2YgdGhlIHZpZXcgYW5kIHBhcnQuCiAgICAgICAgICAgICBSZWZQdHI8RGF0YVRyYW5z
ZmVyPiBkYXRhVHJhbnNmZXIgPSBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdBbmREcm9wKERh
dGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6UmVhZGFibGUsIGRyYWdEYXRhKTsKICAgICAgICAgICAg
IGRhdGFUcmFuc2Zlci0+c2V0U291cmNlT3BlcmF0aW9uKGRyYWdEYXRhLmRyYWdnaW5nU291cmNl
T3BlcmF0aW9uTWFzaygpKTsKLSAgICAgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSBtYWluRnJh
bWUtPmV2ZW50SGFuZGxlcigpLnBlcmZvcm1EcmFnQW5kRHJvcChjcmVhdGVNb3VzZUV2ZW50KGRy
YWdEYXRhKSwgZGF0YVRyYW5zZmVyLmdldCgpKTsKKyAgICAgICAgICAgIHByZXZlbnRlZERlZmF1
bHQgPSBtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLnBlcmZvcm1EcmFnQW5kRHJvcChjcmVhdGVN
b3VzZUV2ZW50KGRyYWdEYXRhKSwgKmRhdGFUcmFuc2Zlcik7CiAgICAgICAgICAgICBkYXRhVHJh
bnNmZXItPnNldEFjY2Vzc1BvbGljeShEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6Ok51bWIpOyAv
LyBJbnZhbGlkYXRlIGRhdGFUcmFuc2ZlciBoZXJlIGZvciBzZWN1cml0eS4KICAgICAgICAgfQog
ICAgICAgICBpZiAocHJldmVudGVkRGVmYXVsdCkgewpAQCAtNTQ3LDcgKzU0Nyw3IEBAIGJvb2wg
RHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERyYWcoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRh
KQogCiAgICAgaWYgKHJvb3RFZGl0YWJsZUVsZW1lbnQpIHsKICAgICAgICAgaWYgKEZyYW1lKiBm
cmFtZSA9IHJvb3RFZGl0YWJsZUVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAg
ICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS51cGRhdGVEcmFnU3RhdGVBZnRlckVkaXREcmFnSWZO
ZWVkZWQocm9vdEVkaXRhYmxlRWxlbWVudC5nZXQoKSk7CisgICAgICAgICAgICBmcmFtZS0+ZXZl
bnRIYW5kbGVyKCkudXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKCpyb290RWRp
dGFibGVFbGVtZW50KTsKICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTYyMSw3ICs2MjEs
NyBAQCBib29sIERyYWdDb250cm9sbGVyOjp0cnlESFRNTERyYWcoY29uc3QgRHJhZ0RhdGEmIGRy
YWdEYXRhLCBEcmFnT3BlcmF0aW9uJiBvcGVyYQogICAgIGRhdGFUcmFuc2Zlci0+c2V0U291cmNl
T3BlcmF0aW9uKHNyY09wTWFzayk7CiAKICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQgZXZlbnQgPSBj
cmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKTsKLSAgICBpZiAoIW1haW5GcmFtZS0+ZXZlbnRIYW5k
bGVyKCkudXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQsIGRhdGFUcmFuc2Zlci5nZXQoKSkpIHsKKyAg
ICBpZiAoIW1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQs
ICpkYXRhVHJhbnNmZXIpKSB7CiAgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0QWNjZXNzUG9saWN5
KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7IC8vIEludmFsaWRhdGUgZGF0YVRyYW5z
ZmVyIGhlcmUgZm9yIHNlY3VyaXR5LgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDkyM2U0MTY5Zjc4ZDBhZmYwYWNiMzNk
YzY5MWI4YTlhNTgwZDMwZWQuLjVhNWEzNWU2OGE3Yzg5ODhiNmUxMzA0ZTQ4OWEyMTJhYmQ5Yzcz
YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFrb3YgKGFwQHdl
YmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgRGlnaWEgUGxjLiBhbmQvb3IgaXRzIHN1
YnNpZGlhcnkoLWllcykKICAqCkBAIC0yOCwxNiArMjgsMTIgQEAKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKIAotI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUu
aCIKICNpbmNsdWRlICJBdXRvc2Nyb2xsQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkJhY2tGb3J3
YXJkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5jbHVkZSAiQ2hy
b21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0jaW5jbHVkZSAiQ3Vyc29yLmgiCiAj
aW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAi
RG9jdW1lbnRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIuaCIKICNpbmNs
dWRlICJEcmFnU3RhdGUuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKQEAgLTk0LDEzICs5MCwxMyBA
QAogI2luY2x1ZGUgIlVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5jbHVkZSAiVmlz
aWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIldoZWVsRXZl
bnREZWx0YUZpbHRlci5oIgogI2luY2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCiAjaW5j
bHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogI2luY2x1
ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgog
CiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAjaW5jbHVkZSAiUGxhdGZvcm1Ub3VjaEV2
ZW50SU9TLmgiCkBAIC0xNzYsMjEgKzE3Miw2IEBAIGNvbnN0IGludCBtYXhpbXVtQ3Vyc29yU2l6
ZSA9IDEyODsKIGNvbnN0IGRvdWJsZSBtaW5pbXVtQ3Vyc29yU2NhbGUgPSAwLjAwMTsKICNlbmRp
ZgogCi1lbnVtIE5vQ3Vyc29yQ2hhbmdlVHlwZSB7IE5vQ3Vyc29yQ2hhbmdlIH07Ci0KLWNsYXNz
IE9wdGlvbmFsQ3Vyc29yIHsKLXB1YmxpYzoKLSAgICBPcHRpb25hbEN1cnNvcihOb0N1cnNvckNo
YW5nZVR5cGUpIDogbV9pc0N1cnNvckNoYW5nZShmYWxzZSkgeyB9Ci0gICAgT3B0aW9uYWxDdXJz
b3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpIDogbV9pc0N1cnNvckNoYW5nZSh0cnVlKSwgbV9jdXJz
b3IoY3Vyc29yKSB7IH0KLQotICAgIGJvb2wgaXNDdXJzb3JDaGFuZ2UoKSBjb25zdCB7IHJldHVy
biBtX2lzQ3Vyc29yQ2hhbmdlOyB9Ci0gICAgY29uc3QgQ3Vyc29yJiBjdXJzb3IoKSBjb25zdCB7
IEFTU0VSVChtX2lzQ3Vyc29yQ2hhbmdlKTsgcmV0dXJuIG1fY3Vyc29yOyB9Ci0KLXByaXZhdGU6
Ci0gICAgYm9vbCBtX2lzQ3Vyc29yQ2hhbmdlOwotICAgIEN1cnNvciBtX2N1cnNvcjsKLX07Ci0K
IGNsYXNzIE1heGltdW1EdXJhdGlvblRyYWNrZXIgewogcHVibGljOgogICAgIGV4cGxpY2l0IE1h
eGltdW1EdXJhdGlvblRyYWNrZXIoZG91YmxlICptYXhEdXJhdGlvbikKQEAgLTQwNSwxMiArMzg2
LDE0IEBAIEV2ZW50SGFuZGxlcjo6fkV2ZW50SGFuZGxlcigpCiB9CiAgICAgCiAjaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkKKwogRHJhZ1N0YXRlJiBFdmVudEhhbmRsZXI6OmRyYWdTdGF0ZSgpCiB7
CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERyYWdTdGF0ZT4gc3RhdGU7CiAgICAgcmV0dXJu
IHN0YXRlOwogfQotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCisKKyNlbmRpZgogICAg
IAogdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyKCkKIHsKQEAgLTgwMCwxNCArNzgzLDE1IEBAIGJv
b2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQoY29uc3QgTW91c2VFdmVudFdp
dGhIaXRUZXN0UmVzdWx0cyYgZXZlCiAKICAgICBtX21vdXNlUHJlc3NOb2RlID0gZXZlbnQudGFy
Z2V0Tm9kZSgpOwogICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+c2V0Rm9jdXNOYXZpZ2F0aW9uU3Rh
cnRpbmdOb2RlKGV2ZW50LnRhcmdldE5vZGUoKSk7CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JU
KQotICAgIG1fZHJhZ1N0YXJ0UG9zID0gZXZlbnQuZXZlbnQoKS5wb3NpdGlvbigpOworICAgIG1f
ZHJhZ1N0YXJ0UG9zaXRpb24gPSBldmVudC5ldmVudCgpLnBvc2l0aW9uKCk7CiAjZW5kaWYKIAot
ICAgIGJvb2wgc3dhbGxvd0V2ZW50ID0gZmFsc2U7CiAgICAgbV9tb3VzZVByZXNzZWQgPSB0cnVl
OwogICAgIG1fc2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlID0gSGF2ZU5vdFN0YXJ0ZWRTZWxlY3Rp
b247CiAKKyAgICBib29sIHN3YWxsb3dFdmVudCA9IGZhbHNlOwogICAgIGlmIChldmVudC5ldmVu
dCgpLmNsaWNrQ291bnQoKSA9PSAyKQogICAgICAgICBzd2FsbG93RXZlbnQgPSBoYW5kbGVNb3Vz
ZVByZXNzRXZlbnREb3VibGVDbGljayhldmVudCk7CiAgICAgZWxzZSBpZiAoZXZlbnQuZXZlbnQo
KS5jbGlja0NvdW50KCkgPj0gMykKQEAgLTk3NywxMSArOTYxLDExIEBAIHZvaWQgRXZlbnRIYW5k
bGVyOjp1cGRhdGVTZWxlY3Rpb25Gb3JNb3VzZURyYWcoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0
VGVzdFJlc3VsCiAgICAgICAgIG5ld1NlbGVjdGlvbi5zZXRFeHRlbnQocG9zaXRpb25BZnRlck5v
ZGUocm9vdFVzZXJTZWxlY3RBbGxGb3JNb3VzZVByZXNzTm9kZSkuZG93bnN0cmVhbShDYW5Dcm9z
c0VkaXRpbmdCb3VuZGFyeSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFJlc2V0IGJhc2Ug
Zm9yIHVzZXIgc2VsZWN0IGFsbCB3aGVuIGJhc2UgaXMgaW5zaWRlIHVzZXItc2VsZWN0LWFsbCBh
cmVhIGFuZCBleHRlbnQgPCBiYXNlLgotICAgICAgICBpZiAocm9vdFVzZXJTZWxlY3RBbGxGb3JN
b3VzZVByZXNzTm9kZSAmJiBjb21wYXJlUG9zaXRpb25zKHRhcmdldC0+cmVuZGVyZXIoKS0+cG9z
aXRpb25Gb3JQb2ludChoaXRUZXN0UmVzdWx0LmxvY2FsUG9pbnQoKSwgbnVsbHB0ciksIG1fbW91
c2VQcmVzc05vZGUtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9yUG9pbnQobV9kcmFnU3RhcnRQb3Ms
IG51bGxwdHIpKSA8IDApCisgICAgICAgIGlmIChyb290VXNlclNlbGVjdEFsbEZvck1vdXNlUHJl
c3NOb2RlICYmIGNvbXBhcmVQb3NpdGlvbnModGFyZ2V0LT5yZW5kZXJlcigpLT5wb3NpdGlvbkZv
clBvaW50KGhpdFRlc3RSZXN1bHQubG9jYWxQb2ludCgpLCBudWxscHRyKSwgbV9tb3VzZVByZXNz
Tm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChtX2RyYWdTdGFydFBvc2l0aW9uLCBu
dWxscHRyKSkgPCAwKQogICAgICAgICAgICAgbmV3U2VsZWN0aW9uLnNldEJhc2UocG9zaXRpb25B
ZnRlck5vZGUocm9vdFVzZXJTZWxlY3RBbGxGb3JNb3VzZVByZXNzTm9kZSkuZG93bnN0cmVhbShD
YW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkpOwogICAgICAgICAKICAgICAgICAgTm9kZSogcm9vdFVz
ZXJTZWxlY3RBbGxGb3JUYXJnZXQgPSBQb3NpdGlvbjo6cm9vdFVzZXJTZWxlY3RBbGxGb3JOb2Rl
KHRhcmdldCk7Ci0gICAgICAgIGlmIChyb290VXNlclNlbGVjdEFsbEZvclRhcmdldCAmJiBtX21v
dXNlUHJlc3NOb2RlLT5yZW5kZXJlcigpICYmIGNvbXBhcmVQb3NpdGlvbnModGFyZ2V0LT5yZW5k
ZXJlcigpLT5wb3NpdGlvbkZvclBvaW50KGhpdFRlc3RSZXN1bHQubG9jYWxQb2ludCgpLCBudWxs
cHRyKSwgbV9tb3VzZVByZXNzTm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChtX2Ry
YWdTdGFydFBvcywgbnVsbHB0cikpIDwgMCkKKyAgICAgICAgaWYgKHJvb3RVc2VyU2VsZWN0QWxs
Rm9yVGFyZ2V0ICYmIG1fbW91c2VQcmVzc05vZGUtPnJlbmRlcmVyKCkgJiYgY29tcGFyZVBvc2l0
aW9ucyh0YXJnZXQtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9yUG9pbnQoaGl0VGVzdFJlc3VsdC5s
b2NhbFBvaW50KCksIG51bGxwdHIpLCBtX21vdXNlUHJlc3NOb2RlLT5yZW5kZXJlcigpLT5wb3Np
dGlvbkZvclBvaW50KG1fZHJhZ1N0YXJ0UG9zaXRpb24sIG51bGxwdHIpKSA8IDApCiAgICAgICAg
ICAgICBuZXdTZWxlY3Rpb24uc2V0RXh0ZW50KHBvc2l0aW9uQmVmb3JlTm9kZShyb290VXNlclNl
bGVjdEFsbEZvclRhcmdldCkudXBzdHJlYW0oQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpKTsKICAg
ICAgICAgZWxzZSBpZiAocm9vdFVzZXJTZWxlY3RBbGxGb3JUYXJnZXQgJiYgbV9tb3VzZVByZXNz
Tm9kZS0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgIG5ld1NlbGVjdGlvbi5zZXRFeHRlbnQocG9z
aXRpb25BZnRlck5vZGUocm9vdFVzZXJTZWxlY3RBbGxGb3JUYXJnZXQpLmRvd25zdHJlYW0oQ2Fu
Q3Jvc3NFZGl0aW5nQm91bmRhcnkpKTsKQEAgLTEwNDcsNyArMTAzMSw3IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjpoYW5kbGVNb3VzZVJlbGVhc2VFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRl
c3RSZXN1bHRzJiBlCiAgICAgLy8gZWRpdGluZywgcGxhY2UgdGhlIGNhcmV0LgogICAgIGlmICht
X21vdXNlRG93bldhc1NpbmdsZUNsaWNrSW5TZWxlY3Rpb24gJiYgbV9zZWxlY3Rpb25Jbml0aWF0
aW9uU3RhdGUgIT0gRXh0ZW5kZWRTZWxlY3Rpb24KICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQot
ICAgICAgICAgICAgJiYgbV9kcmFnU3RhcnRQb3MgPT0gZXZlbnQuZXZlbnQoKS5wb3NpdGlvbigp
CisgICAgICAgICAgICAmJiBtX2RyYWdTdGFydFBvc2l0aW9uID09IGV2ZW50LmV2ZW50KCkucG9z
aXRpb24oKQogI2VuZGlmCiAgICAgICAgICAgICAmJiBtX2ZyYW1lLnNlbGVjdGlvbigpLmlzUmFu
Z2UoKQogICAgICAgICAgICAgJiYgZXZlbnQuZXZlbnQoKS5idXR0b24oKSAhPSBSaWdodEJ1dHRv
bikgewpAQCAtMTA4NCwxMiArMTA2OCwxMiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGlkUGFuU2Ny
b2xsU3RvcCgpCiAgICAgbV9hdXRvc2Nyb2xsQ29udHJvbGxlci0+ZGlkUGFuU2Nyb2xsU3RvcCgp
OwogfQogCi12b2lkIEV2ZW50SGFuZGxlcjo6c3RhcnRQYW5TY3JvbGxpbmcoUmVuZGVyRWxlbWVu
dCogcmVuZGVyZXIpCit2b2lkIEV2ZW50SGFuZGxlcjo6c3RhcnRQYW5TY3JvbGxpbmcoUmVuZGVy
RWxlbWVudCYgcmVuZGVyZXIpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICBpZiAoIWlzPFJl
bmRlckJveD4oKnJlbmRlcmVyKSkKKyAgICBpZiAoIWlzPFJlbmRlckJveD4ocmVuZGVyZXIpKQog
ICAgICAgICByZXR1cm47Ci0gICAgbV9hdXRvc2Nyb2xsQ29udHJvbGxlci0+c3RhcnRQYW5TY3Jv
bGxpbmcoZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlciksIGxhc3RLbm93bk1vdXNlUG9zaXRp
b24oKSk7CisgICAgbV9hdXRvc2Nyb2xsQ29udHJvbGxlci0+c3RhcnRQYW5TY3JvbGxpbmcoJmRv
d25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIpLCBsYXN0S25vd25Nb3VzZVBvc2l0aW9uKCkpOwog
ICAgIGludmFsaWRhdGVDbGljaygpOwogI2VuZGlmCiB9CkBAIC0xMzc0LDI0ICsxMzU4LDI4IEBA
IHZvaWQgRXZlbnRIYW5kbGVyOjp1cGRhdGVDdXJzb3IoKQogICAgIEhpdFRlc3RSZXN1bHQgcmVz
dWx0KHZpZXctPndpbmRvd1RvQ29udGVudHMobV9sYXN0S25vd25Nb3VzZVBvc2l0aW9uKSk7CiAg
ICAgcmVuZGVyVmlldy0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOwogCi0gICAgT3B0aW9uYWxD
dXJzb3Igb3B0aW9uYWxDdXJzb3IgPSBzZWxlY3RDdXJzb3IocmVzdWx0LCBzaGlmdEtleSk7Ci0g
ICAgaWYgKG9wdGlvbmFsQ3Vyc29yLmlzQ3Vyc29yQ2hhbmdlKCkpIHsKLSAgICAgICAgbV9jdXJy
ZW50TW91c2VDdXJzb3IgPSBvcHRpb25hbEN1cnNvci5jdXJzb3IoKTsKLSAgICAgICAgdmlldy0+
c2V0Q3Vyc29yKG1fY3VycmVudE1vdXNlQ3Vyc29yKTsKKyAgICB1cGRhdGVDdXJzb3IoKnZpZXcs
IHJlc3VsdCwgc2hpZnRLZXkpOworfQorCit2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlQ3Vyc29y
KEZyYW1lVmlldyYgdmlldywgY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBib29sIHNoaWZ0
S2V5KQoreworICAgIGlmIChhdXRvIG9wdGlvbmFsQ3Vyc29yID0gc2VsZWN0Q3Vyc29yKHJlc3Vs
dCwgc2hpZnRLZXkpKSB7CisgICAgICAgIG1fY3VycmVudE1vdXNlQ3Vyc29yID0gV1RGTW92ZShv
cHRpb25hbEN1cnNvci52YWx1ZSgpKTsKKyAgICAgICAgdmlldy5zZXRDdXJzb3IobV9jdXJyZW50
TW91c2VDdXJzb3IpOwogICAgIH0KIH0KIAotT3B0aW9uYWxDdXJzb3IgRXZlbnRIYW5kbGVyOjpz
ZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBib29sIHNoaWZ0S2V5KQor
c3RkOjpvcHRpb25hbDxDdXJzb3I+IEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKGNvbnN0IEhp
dFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaGlmdEtleSkKIHsKICAgICBpZiAobV9yZXNpemVM
YXllciAmJiBtX3Jlc2l6ZUxheWVyLT5pblJlc2l6ZU1vZGUoKSkKLSAgICAgICAgcmV0dXJuIE5v
Q3Vyc29yQ2hhbmdlOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgaWYgKCFt
X2ZyYW1lLnBhZ2UoKSkKLSAgICAgICAgcmV0dXJuIE5vQ3Vyc29yQ2hhbmdlOworICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwogCiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCiAgICAgaWYg
KG1fZnJhbWUubWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkucGFuU2Nyb2xsSW5Qcm9ncmVzcygp
KQotICAgICAgICByZXR1cm4gTm9DdXJzb3JDaGFuZ2U7CisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CiAjZW5kaWYKIAogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9mcmFtZSk7
CkBAIC0xNDA2LDcgKzEzOTQsNyBAQCBPcHRpb25hbEN1cnNvciBFdmVudEhhbmRsZXI6OnNlbGVj
dEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGJvb2wgc2hpZgogCiAgICAgTm9k
ZSogbm9kZSA9IHJlc3VsdC50YXJnZXROb2RlKCk7CiAgICAgaWYgKCFub2RlKQotICAgICAgICBy
ZXR1cm4gTm9DdXJzb3JDaGFuZ2U7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKICAg
ICBhdXRvIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsKICAgICBhdXRvKiBzdHlsZSA9IHJl
bmRlcmVyID8gJnJlbmRlcmVyLT5zdHlsZSgpIDogbnVsbHB0cjsKQEAgLTE0MjgsNyArMTQxNiw3
IEBAIE9wdGlvbmFsQ3Vyc29yIEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKGNvbnN0IEhpdFRl
c3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaGlmCiAgICAgICAgIGNhc2UgU2V0Q3Vyc29yOgogICAg
ICAgICAgICAgcmV0dXJuIG92ZXJyaWRlQ3Vyc29yOwogICAgICAgICBjYXNlIERvTm90U2V0Q3Vy
c29yOgotICAgICAgICAgICAgcmV0dXJuIE5vQ3Vyc29yQ2hhbmdlOworICAgICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTk0NywxNSArMTkzNSwx
MCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3ZlRXZlbnQoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybU1vdXNlRQogICAgICAgICAvLyBub2RlIHRvIGJlIGRldGFj
aGVkIGZyb20gaXRzIEZyYW1lVmlldywgaW4gd2hpY2ggY2FzZSB0aGUgZXZlbnQgc2hvdWxkIG5v
dCBiZSBwYXNzZWQuCiAgICAgICAgIGlmIChuZXdTdWJmcmFtZS0+dmlldygpKQogICAgICAgICAg
ICAgc3dhbGxvd0V2ZW50IHw9IHBhc3NNb3VzZU1vdmVFdmVudFRvU3ViZnJhbWUobW91c2VFdmVu
dCwgbmV3U3ViZnJhbWUuZ2V0KCksIGhvdmVyZWROb2RlKTsKLSNpZiBFTkFCTEUoQ1VSU09SX1NV
UFBPUlQpCiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZnJh
bWUudmlldygpKSB7Ci0gICAgICAgICAgICBPcHRpb25hbEN1cnNvciBvcHRpb25hbEN1cnNvciA9
IHNlbGVjdEN1cnNvcihtb3VzZUV2ZW50LmhpdFRlc3RSZXN1bHQoKSwgcGxhdGZvcm1Nb3VzZUV2
ZW50LnNoaWZ0S2V5KCkpOwotICAgICAgICAgICAgaWYgKG9wdGlvbmFsQ3Vyc29yLmlzQ3Vyc29y
Q2hhbmdlKCkpIHsKLSAgICAgICAgICAgICAgICBtX2N1cnJlbnRNb3VzZUN1cnNvciA9IG9wdGlv
bmFsQ3Vyc29yLmN1cnNvcigpOwotICAgICAgICAgICAgICAgIHZpZXctPnNldEN1cnNvcihtX2N1
cnJlbnRNb3VzZUN1cnNvcik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyNpZiBFTkFCTEUo
Q1VSU09SX1NVUFBPUlQpCisgICAgICAgIGlmIChhdXRvKiB2aWV3ID0gbV9mcmFtZS52aWV3KCkp
CisgICAgICAgICAgICB1cGRhdGVDdXJzb3IoKnZpZXcsIG1vdXNlRXZlbnQuaGl0VGVzdFJlc3Vs
dCgpLCBwbGF0Zm9ybU1vdXNlRXZlbnQuc2hpZnRLZXkoKSk7CiAjZW5kaWYKICAgICB9CiAgICAg
CkBAIC0xOTY4LDcgKzE5NTEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3Zl
RXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybU1vdXNlRQogI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCiAgICAgaWYgKCFzd2FsbG93RXZlbnQpCiAgICAgICAgIHN3YWxsb3dF
dmVudCA9IGhhbmRsZU1vdXNlRHJhZ2dlZEV2ZW50KG1vdXNlRXZlbnQpOwotI2VuZGlmIC8vIEVO
QUJMRShEUkFHX1NVUFBPUlQpCisjZW5kaWYKIAogICAgIHJldHVybiBzd2FsbG93RXZlbnQ7CiB9
CkBAIC0yMjM2LDcgKzIyMTksNyBAQCBzdGF0aWMgYm9vbCBmaW5kRHJvcFpvbmUoTm9kZSogdGFy
Z2V0LCBEYXRhVHJhbnNmZXIqIGRhdGFUcmFuc2ZlcikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAg
ICAgCi1ib29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1N
b3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIpCitib29sIEV2ZW50
SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVu
dCwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIpCiB7CiAgICAgUmVmPEZyYW1lPiBwcm90ZWN0
ZWRGcmFtZShtX2ZyYW1lKTsKIApAQCAtMjI3NSwxNiArMjI1OCwxNiBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwg
RGF0YVRyYW5zZgogICAgICAgICAgICAgICAgIC8vIGZvciBub3cgd2UgZG9uJ3QgY2FyZSBpZiBl
dmVudCBoYW5kbGVyIGNhbmNlbHMgZGVmYXVsdCBiZWhhdmlvciwgc2luY2UgdGhlcmUgaXMgbm9u
ZQogICAgICAgICAgICAgICAgIGRpc3BhdGNoRHJhZ1NyY0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFn
RXZlbnQsIGV2ZW50KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFjY2VwdCA9IGRpc3Bh
dGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnZW50ZXJFdmVudCwgKm5ld1RhcmdldCwgZXZl
bnQsIGRhdGFUcmFuc2Zlcik7CisgICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVu
dChldmVudE5hbWVzKCkuZHJhZ2VudGVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCAmZGF0YVRy
YW5zZmVyKTsKICAgICAgICAgICAgIGlmICghYWNjZXB0KQotICAgICAgICAgICAgICAgIGFjY2Vw
dCA9IGZpbmREcm9wWm9uZShuZXdUYXJnZXQuZ2V0KCksIGRhdGFUcmFuc2Zlcik7CisgICAgICAg
ICAgICAgICAgYWNjZXB0ID0gZmluZERyb3Bab25lKG5ld1RhcmdldC5nZXQoKSwgJmRhdGFUcmFu
c2Zlcik7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAodGFyZ2V0SXNGcmFtZShtX2RyYWdUYXJn
ZXQuZ2V0KCksIHRhcmdldEZyYW1lKSkgewogICAgICAgICAgICAgaWYgKHRhcmdldEZyYW1lKQog
ICAgICAgICAgICAgICAgIGFjY2VwdCA9IHRhcmdldEZyYW1lLT5ldmVudEhhbmRsZXIoKS51cGRh
dGVEcmFnQW5kRHJvcChldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICAgICAgfSBlbHNlIGlmICht
X2RyYWdUYXJnZXQpCi0gICAgICAgICAgICBkaXNwYXRjaERyYWdFdmVudChldmVudE5hbWVzKCku
ZHJhZ2xlYXZlRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNmZXIpOworICAg
ICAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50LCAq
bV9kcmFnVGFyZ2V0LCBldmVudCwgJmRhdGFUcmFuc2Zlcik7CiAKICAgICAgICAgaWYgKG5ld1Rh
cmdldCkgewogICAgICAgICAgICAgLy8gV2UgZG8gbm90IGV4cGxpY2l0bHkgY2FsbCBkaXNwYXRj
aERyYWdFdmVudCBoZXJlIGJlY2F1c2UgaXQgY291bGQgdWx0aW1hdGVseSByZXN1bHQgaW4gdGhl
IGFwcGVhcmFuY2UgdGhhdApAQCAtMjMwMiw5ICsyMjg1LDkgQEAgYm9vbCBFdmVudEhhbmRsZXI6
OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFU
cmFuc2YKICAgICAgICAgICAgICAgICAvLyBmb3Igbm93IHdlIGRvbid0IGNhcmUgaWYgZXZlbnQg
aGFuZGxlciBjYW5jZWxzIGRlZmF1bHQgYmVoYXZpb3IsIHNpbmNlIHRoZXJlIGlzIG5vbmUKICAg
ICAgICAgICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVudChldmVudE5hbWVzKCkuZHJhZ0V2ZW50
LCBldmVudCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERy
YWdFdmVudChldmVudE5hbWVzKCkuZHJhZ292ZXJFdmVudCwgKm5ld1RhcmdldCwgZXZlbnQsIGRh
dGFUcmFuc2Zlcik7CisgICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVudChldmVu
dE5hbWVzKCkuZHJhZ292ZXJFdmVudCwgKm5ld1RhcmdldCwgZXZlbnQsICZkYXRhVHJhbnNmZXIp
OwogICAgICAgICAgICAgaWYgKCFhY2NlcHQpCi0gICAgICAgICAgICAgICAgYWNjZXB0ID0gZmlu
ZERyb3Bab25lKG5ld1RhcmdldC5nZXQoKSwgZGF0YVRyYW5zZmVyKTsKKyAgICAgICAgICAgICAg
ICBhY2NlcHQgPSBmaW5kRHJvcFpvbmUobmV3VGFyZ2V0LmdldCgpLCAmZGF0YVRyYW5zZmVyKTsK
ICAgICAgICAgICAgIG1fc2hvdWxkT25seUZpcmVEcmFnT3ZlckV2ZW50ID0gZmFsc2U7CiAgICAg
ICAgIH0KICAgICB9CkBAIC0yMzEyLDcgKzIyOTUsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6dXBk
YXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5z
ZgogICAgIHJldHVybiBhY2NlcHQ7CiB9CiAKLXZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFn
QW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmZXIqIGRh
dGFUcmFuc2ZlcikKK3ZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcChjb25zdCBQ
bGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlcikKIHsK
ICAgICBSZWY8RnJhbWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUpOwogCkBAIC0yMzIzLDEyICsy
MzA2LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcChjb25zdCBQbGF0
Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmCiAgICAgfSBlbHNlIGlmIChtX2RyYWdU
YXJnZXQpIHsKICAgICAgICAgaWYgKGRyYWdTdGF0ZSgpLnNvdXJjZSAmJiBkcmFnU3RhdGUoKS5z
aG91bGREaXNwYXRjaEV2ZW50cykKICAgICAgICAgICAgIGRpc3BhdGNoRHJhZ1NyY0V2ZW50KGV2
ZW50TmFtZXMoKS5kcmFnRXZlbnQsIGV2ZW50KTsKLSAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQo
ZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgZGF0YVRy
YW5zZmVyKTsKKyAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2
ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgJmRhdGFUcmFuc2Zlcik7CiAgICAgfQogICAg
IGNsZWFyRHJhZ1N0YXRlKCk7CiB9CiAKLWJvb2wgRXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0Fu
ZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyKiBkYXRh
VHJhbnNmZXIpCitib29sIEV2ZW50SGFuZGxlcjo6cGVyZm9ybURyYWdBbmREcm9wKGNvbnN0IFBs
YXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyKQogewog
ICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9mcmFtZSk7CiAKQEAgLTIzMzgsNyArMjMy
MSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zCiAgICAgICAgIGlmICh0YXJnZXRGcmFtZSkK
ICAgICAgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5kbGVy
KCkucGVyZm9ybURyYWdBbmREcm9wKGV2ZW50LCBkYXRhVHJhbnNmZXIpOwogICAgIH0gZWxzZSBp
ZiAobV9kcmFnVGFyZ2V0KQotICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gZGlzcGF0Y2hEcmFn
RXZlbnQoZXZlbnROYW1lcygpLmRyb3BFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsIGRhdGFU
cmFuc2Zlcik7CisgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSBkaXNwYXRjaERyYWdFdmVudChl
dmVudE5hbWVzKCkuZHJvcEV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgJmRhdGFUcmFuc2Zl
cik7CiAgICAgY2xlYXJEcmFnU3RhdGUoKTsKICAgICByZXR1cm4gcHJldmVudGVkRGVmYXVsdDsK
IH0KQEAgLTIzNTMsOSArMjMzNiwxMCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6Y2xlYXJEcmFnU3Rh
dGUoKQogICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CiAjZW5kaWYKIH0KKwog
I2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKLXZvaWQgRXZlbnRIYW5kbGVyOjpzZXRD
YXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50KQor
dm9pZCBFdmVudEhhbmRsZXI6OnNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudChFbGVtZW50
KiBlbGVtZW50KQogewogICAgIG1fY2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50ID0gZWxlbWVu
dDsKICAgICBtX2V2ZW50SGFuZGxlcldpbGxSZXNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVu
dCA9IGZhbHNlOwpAQCAtMjU2Myw3ICsyNTQ3LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmRpc3Bh
dGNoTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSogdGFyZ2UK
IAogICAgIC8vIElmIGZvY3VzIHNoaWZ0IGlzIGJsb2NrZWQsIHdlIGVhdCB0aGUgZXZlbnQuCiAg
ICAgYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpOwotICAgIGlmIChwYWdlICYmICFwYWdlLT5m
b2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChlbGVtZW50LCAmbV9mcmFtZSkpCisg
ICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50
KGVsZW1lbnQsIG1fZnJhbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4g
dHJ1ZTsKQEAgLTM0MTEsMTEgKzMzOTUsMTEgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRyYWdTb3Vy
Y2VFbmRlZEF0KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERyYWdPcGVyYXQKICAg
ICBtX21vdXNlRG93bk1heVN0YXJ0RHJhZyA9IGZhbHNlOwogfQogCi12b2lkIEV2ZW50SGFuZGxl
cjo6dXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKEVsZW1lbnQqIHJvb3RFZGl0
YWJsZUVsZW1lbnQpCit2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0
RHJhZ0lmTmVlZGVkKEVsZW1lbnQmIHJvb3RFZGl0YWJsZUVsZW1lbnQpCiB7CiAgICAgLy8gSWYg
aW5zZXJ0aW5nIHRoZSBkcmFnZ2VkIGNvbnRlbnRzIHJlbW92ZWQgdGhlIGRyYWcgc291cmNlLCB3
ZSBzdGlsbCB3YW50IHRvIGZpcmUgZHJhZ2VuZCBhdCB0aGUgcm9vdCBlZGl0YWJsZSBlbGVtZW50
LgogICAgIGlmIChkcmFnU3RhdGUoKS5zb3VyY2UgJiYgIWRyYWdTdGF0ZSgpLnNvdXJjZS0+aW5E
b2N1bWVudCgpKQotICAgICAgICBkcmFnU3RhdGUoKS5zb3VyY2UgPSByb290RWRpdGFibGVFbGVt
ZW50OworICAgICAgICBkcmFnU3RhdGUoKS5zb3VyY2UgPSAmcm9vdEVkaXRhYmxlRWxlbWVudDsK
IH0KIAogLy8gUmV0dXJuIHZhbHVlIGluZGljYXRlcyBpZiB3ZSBzaG91bGQgY29udGludWUgImRl
ZmF1bHQgcHJvY2Vzc2luZyIsIGkuZS4sIHdoZXRoZXIgZXZlbnQgaGFuZGxlciBjYW5jZWxlZC4K
QEAgLTM2MjUsMjUgKzM2MDksMjQgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRleHRJbnB1
dEV2ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXZlbnQqIHVuZGVybHlpbmdFdmUKICAgICByZXR1
cm4gZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCk7CiB9CiAgICAgCi1ib29sIEV2ZW50SGFuZGxlcjo6
aXNLZXlib2FyZE9wdGlvblRhYihLZXlib2FyZEV2ZW50KiBldmVudCkKK2Jvb2wgRXZlbnRIYW5k
bGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKEtleWJvYXJkRXZlbnQmIGV2ZW50KQogewotICAgIHJl
dHVybiBldmVudAotICAgICAgICAmJiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5
ZG93bkV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQp
Ci0gICAgICAgICYmIGV2ZW50LT5hbHRLZXkoKQotICAgICAgICAmJiBldmVudC0+a2V5SWRlbnRp
ZmllcigpID09ICJVKzAwMDkiOyAgICAKKyAgICByZXR1cm4gKGV2ZW50LnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkua2V5ZG93bkV2ZW50IHx8IGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5
cHJlc3NFdmVudCkKKyAgICAgICAgJiYgZXZlbnQuYWx0S2V5KCkKKyAgICAgICAgJiYgZXZlbnQu
a2V5SWRlbnRpZmllcigpID09ICJVKzAwMDkiOwogfQogCi1ib29sIEV2ZW50SGFuZGxlcjo6ZXZl
bnRJbnZlcnRzVGFic1RvTGlua3NDbGllbnRDYWxsUmVzdWx0KEtleWJvYXJkRXZlbnQqIGV2ZW50
KQorYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJl
c3VsdChLZXlib2FyZEV2ZW50JiBldmVudCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oRUZMKQotICAgIHJldHVybiBFdmVudEhhbmRsZXI6OmlzS2V5Ym9hcmRPcHRpb25UYWIo
ZXZlbnQpOworICAgIHJldHVybiBpc0tleWJvYXJkT3B0aW9uVGFiKGV2ZW50KTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKGV2ZW50KTsKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKIH0KIAot
Ym9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQqIGV2ZW50KSBjb25z
dAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQmIGV2ZW50KSBj
b25zdAogewogICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIG5lZWRzIGEgYmV0dGVyIG5hbWUu
IEl0IGNhbiBiZSBjYWxsZWQgZm9yIGtleXByZXNzZXMgb3RoZXIgdGhhbiBUYWIgd2hlbiBzcGF0
aWFsIG5hdmlnYXRpb24gaXMgZW5hYmxlZC4KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgK
aW5kZXggZGU3OGJjYWU4NGE3NjY0ZGUyOGQ1ZDE3OTA2YjlhM2RiMmUxYjQyMy4uNmVkN2FlMzM5
NWM4MDI2M2Q0YTc3MDBmY2EwYWYwZjZlZjkxOGMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwpAQCAtMzEsMzAgKzMxLDMxIEBACiAjaW5jbHVkZSAiSGl0VGVzdFJlcXVlc3QuaCIK
ICNpbmNsdWRlICJMYXlvdXRQb2ludC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5o
IgotI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVz
LmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAiVGV4dEdyYW51
bGFyaXR5LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlICJXaGVlbEV2ZW50RGVsdGFG
aWx0ZXIuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNp
bmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYv
V2Vha1B0ci5oPgogCisjaWYgUExBVEZPUk0oQ09DT0EpCitPQkpDX0NMQVNTIE5TVmlldzsKKyNl
bmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogT0JKQ19DTEFTUyBXZWJFdmVudDsKLU9CSkNfQ0xB
U1MgV0FLVmlldzsKLSNpZmRlZiBfX09CSkNfXwotI2luY2x1ZGUgIldBS0FwcEtpdFN0dWJzLmgi
CiAjZW5kaWYKLSNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAKLSNpZiBQTEFURk9STShDT0NPQSkK
LU9CSkNfQ0xBU1MgTlNWaWV3OworI2lmIFBMQVRGT1JNKE1BQykKK09CSkNfQ0xBU1MgTlNFdmVu
dDsKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TKSAmJiBkZWZpbmVkKF9fT0JKQ19fKQorI2lu
Y2x1ZGUgIldBS0FwcEtpdFN0dWJzLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNjYsMTYgKzY3LDE0IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxlbWVudDsKIGNsYXNz
IEV2ZW50OwogY2xhc3MgRXZlbnRUYXJnZXQ7Ci1jbGFzcyBGbG9hdFBvaW50OwogY2xhc3MgRmxv
YXRRdWFkOwogY2xhc3MgRnJhbWU7CitjbGFzcyBGcmFtZVZpZXc7CiBjbGFzcyBIVE1MRnJhbWVT
ZXRFbGVtZW50OwotY2xhc3MgSGl0VGVzdFJlcXVlc3Q7CiBjbGFzcyBIaXRUZXN0UmVzdWx0Owog
Y2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHM7
CiBjbGFzcyBOb2RlOwotY2xhc3MgT3B0aW9uYWxDdXJzb3I7CiBjbGFzcyBQbGF0Zm9ybUdlc3R1
cmVFdmVudDsKIGNsYXNzIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDsKIGNsYXNzIFBsYXRmb3JtVG91
Y2hFdmVudDsKQEAgLTEwMCw3ICs5OSw3IEBAIGV4dGVybiBjb25zdCBpbnQgTGlua0RyYWdIeXN0
ZXJlc2lzOwogZXh0ZXJuIGNvbnN0IGludCBJbWFnZURyYWdIeXN0ZXJlc2lzOwogZXh0ZXJuIGNv
bnN0IGludCBUZXh0RHJhZ0h5c3RlcmVzaXM7CiBleHRlcm4gY29uc3QgaW50IEdlbmVyYWxEcmFn
SHlzdGVyZXNpczsKLSNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2VuZGlmCiAKICNp
ZiBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKSB8fCBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRT
KQogZXh0ZXJuIGNvbnN0IGZsb2F0IEdlc3R1cmVVbmtub3duOwpAQCAtMTIwLDcgKzExOSw2IEBA
IGVudW0gY2xhc3MgSW1tZWRpYXRlQWN0aW9uU3RhZ2UgewogfTsKIAogY2xhc3MgRXZlbnRIYW5k
bGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFdmVudEhhbmRsZXIpOwogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IEV2ZW50SGFuZGxlcihG
cmFtZSYpOwpAQCAtMTM2LDcgKzEzNCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoUEFOX1NDUk9M
TElORykKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0YXJ0KCk7CiAgICAgdm9pZCBkaWRQYW5TY3Jv
bGxTdG9wKCk7Ci0gICAgdm9pZCBzdGFydFBhblNjcm9sbGluZyhSZW5kZXJFbGVtZW50Kik7Cisg
ICAgdm9pZCBzdGFydFBhblNjcm9sbGluZyhSZW5kZXJFbGVtZW50Jik7CiAjZW5kaWYKIAogICAg
IHZvaWQgc3RvcEF1dG9zY3JvbGxUaW1lcihib29sIHJlbmRlcmVySXNCZWluZ0Rlc3Ryb3llZCA9
IGZhbHNlKTsKQEAgLTE1NiwxMyArMTU0LDEzIEBAIHB1YmxpYzoKICAgICBib29sIG1vdXNlUHJl
c3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VQcmVzc2VkOyB9CiAgICAgTm9kZSogbW91c2VQ
cmVzc05vZGUoKSBjb25zdCB7IHJldHVybiBtX21vdXNlUHJlc3NOb2RlLmdldCgpOyB9CiAKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudChQYXNz
UmVmUHRyPEVsZW1lbnQ+KTsgLy8gQSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHJlc2V0dGlu
ZyBjYXB0dXJpbmcgZWxlbWVudCB0byAwLgorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2Fw
dHVyaW5nTW91c2VFdmVudHNFbGVtZW50KEVsZW1lbnQqKTsKIAogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCi0gICAgYm9vbCB1cGRhdGVEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZl
bnQmLCBEYXRhVHJhbnNmZXIqKTsKLSAgICB2b2lkIGNhbmNlbERyYWdBbmREcm9wKGNvbnN0IFBs
YXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwotICAgIGJvb2wgcGVyZm9ybURyYWdB
bmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwotICAgIHZv
aWQgdXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKEVsZW1lbnQqIHJvb3RFZGl0
YWJsZUVsZW1lbnQpOworICAgIGJvb2wgdXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1N
b3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyJik7CisgICAgdm9pZCBjYW5jZWxEcmFnQW5kRHJvcChj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXImKTsKKyAgICBib29sIHBlcmZv
cm1EcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXImKTsK
KyAgICB2b2lkIHVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRlZChFbGVtZW50JiBy
b290RWRpdGFibGVFbGVtZW50KTsKICNlbmRpZgogCiAgICAgdm9pZCBzY2hlZHVsZUhvdmVyU3Rh
dGVVcGRhdGUoKTsKQEAgLTE4Nyw4ICsxODUsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBzY3JvbGxSZWN1cnNpdmVseShTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFy
aXR5LCBOb2RlKiBzdGFydGluZ05vZGUgPSBudWxscHRyKTsKICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIGxvZ2ljYWxTY3JvbGxSZWN1cnNpdmVseShTY3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3Jv
bGxHcmFudWxhcml0eSwgTm9kZSogc3RhcnRpbmdOb2RlID0gbnVsbHB0cik7CiAKLSAgICBib29s
IHRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQqKSBjb25zdDsKLSAgICBib29sIHRhYnNUb0FsbEZv
cm1Db250cm9scyhLZXlib2FyZEV2ZW50KikgY29uc3Q7CisgICAgYm9vbCB0YWJzVG9MaW5rcyhL
ZXlib2FyZEV2ZW50JikgY29uc3Q7CisgICAgYm9vbCB0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5
Ym9hcmRFdmVudCYpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBtb3VzZU1vdmVk
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcGFz
c01vdXNlTW92ZWRFdmVudFRvU2Nyb2xsYmFycyhjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsK
QEAgLTIxMCwxMiArMjA4LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHBsYXRmb3JtTm90aWZ5SWZF
bmRHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIGNvbnN0IFdlYWtQdHI8U2Nyb2xs
YWJsZUFyZWE+Jik7CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgfHwgRU5BQkxFKElP
U19HRVNUVVJFX0VWRU5UUykKLSAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8VG91Y2g+PiBUb3Vj
aEFycmF5OwotICAgIHR5cGVkZWYgSGFzaE1hcDxFdmVudFRhcmdldCosIFRvdWNoQXJyYXkqPiBF
dmVudFRhcmdldFRvdWNoTWFwOworICAgIHVzaW5nIFRvdWNoQXJyYXkgPSBWZWN0b3I8UmVmUHRy
PFRvdWNoPj47CisgICAgdXNpbmcgRXZlbnRUYXJnZXRUb3VjaE1hcCA9IEhhc2hNYXA8RXZlbnRU
YXJnZXQqLCBUb3VjaEFycmF5Kj47CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZF
TlRTKSB8fCBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKSB8fCBFTkFCTEUoTUFDX0dFU1RVUkVf
RVZFTlRTKQotICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8RXZlbnRUYXJnZXQ+PiBFdmVudFRh
cmdldFNldDsKKyAgICB1c2luZyBFdmVudFRhcmdldFNldCA9IEhhc2hTZXQ8UmVmUHRyPEV2ZW50
VGFyZ2V0Pj47CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQpAQCAtMjMx
LDcgKzIyOSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQotICAgIHZv
aWQgZGVmYXVsdFRvdWNoRXZlbnRIYW5kbGVyKE5vZGUqLCBUb3VjaEV2ZW50Kik7CisgICAgdm9p
ZCBkZWZhdWx0VG91Y2hFdmVudEhhbmRsZXIoTm9kZSYsIFRvdWNoRXZlbnQmKTsKICNlbmRpZgog
CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0yNjQsOCArMjYyLDcgQEAgcHVibGljOgog
ICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VuZFNjcm9sbEV2ZW50KCk7CiAKLSNpZiBQ
TEFURk9STShDT0NPQSkgJiYgZGVmaW5lZChfX09CSkNfXykKLSNpZiAhUExBVEZPUk0oSU9TKQor
I2lmIFBMQVRGT1JNKE1BQykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlRG93bihOU0V2
ZW50ICosIE5TRXZlbnQgKmNvcnJlc3BvbmRpbmdQcmVzc3VyZUV2ZW50KTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIG1vdXNlRHJhZ2dlZChOU0V2ZW50ICosIE5TRXZlbnQgKmNvcnJlc3BvbmRp
bmdQcmVzc3VyZUV2ZW50KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlVXAoTlNFdmVu
dCAqLCBOU0V2ZW50ICpjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CkBAIC0yNzMsNyArMjcw
LDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJlc3N1cmVDaGFuZ2UoTlNF
dmVudCAqLCBOU0V2ZW50KiBjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CiAgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBrZXlFdmVudChOU0V2ZW50ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgd2hlZWxFdmVudChOU0V2ZW50ICopOwotI2Vsc2UKKyNlbmRpZgorCisjaWYgUExBVEZPUk0o
SU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW91c2VEb3duKFdlYkV2ZW50ICopOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgbW91c2VVcChXZWJFdmVudCAqKTsKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIG1vdXNlTW92ZWQoV2ViRXZlbnQgKik7CkBAIC0yODUsMjMgKzI4NCwyMCBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB0b3VjaEV2ZW50KFdlYkV2ZW50ICopOwog
I2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHBhc3NNb3VzZU1vdmVkRXZlbnRUb1Njcm9sbGJhcnMoTlNFdmVudCAq
LCBOU0V2ZW50KiBjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CiAKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2ZW50ICppbml0
aWF0aW5nRXZlbnQpOwotI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKQogICAgIHZvaWQgc2V0
QWN0aXZhdGlvbkV2ZW50TnVtYmVyKGludCBudW0pIHsgbV9hY3RpdmF0aW9uRXZlbnROdW1iZXIg
PSBudW07IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOU0V2ZW50ICpjdXJyZW50TlNF
dmVudCgpOwogICAgIHN0YXRpYyBOU0V2ZW50ICpjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCgp
OwotI2Vsc2UKLSAgICBzdGF0aWMgV2ViRXZlbnQgKmN1cnJlbnRFdmVudCgpOwotI2VuZGlmIC8v
ICFQTEFURk9STShJT1MpCi0jZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIGRlZmluZWQoX19P
QkpDX18pCisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKKyAgICBzdGF0aWMgV2ViRXZlbnQg
KmN1cnJlbnRFdmVudCgpOworCiAgICAgdm9pZCBpbnZhbGlkYXRlQ2xpY2soKTsKICNlbmRpZgog
CkBAIC0zMjMsOSArMzE5LDggQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQog
ICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOwogICAgIHN0YXRpYyBjb25zdCBkb3Vi
bGUgVGV4dERyYWdEZWxheTsKLSAgICAKLSAgICBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gY3Jl
YXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdDsKLSNlbmRpZiAvLyBFTkFCTEUoRFJBR19T
VVBQT1JUKQorICAgIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVy
KCkgY29uc3Q7CisjZW5kaWYKIAogICAgIGJvb2wgZXZlbnRBY3RpdmF0ZWRWaWV3KGNvbnN0IFBs
YXRmb3JtTW91c2VFdmVudCYpIGNvbnN0OwogICAgIGJvb2wgdXBkYXRlU2VsZWN0aW9uRm9yTW91
c2VEb3duRGlzcGF0Y2hpbmdTZWxlY3RTdGFydChOb2RlKiwgY29uc3QgVmlzaWJsZVNlbGVjdGlv
biYsIFRleHRHcmFudWxhcml0eSk7CkBAIC0zNDEsMTQgKzMzNiwxOCBAQCBwcml2YXRlOgogICAg
IGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2ZW50U2luZ2xlQ2xpY2soY29uc3QgTW91c2VFdmVudFdp
dGhIaXRUZXN0UmVzdWx0cyYpOwogICAgIGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2ZW50RG91Ymxl
Q2xpY2soY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwogICAgIGJvb2wgaGFu
ZGxlTW91c2VQcmVzc0V2ZW50VHJpcGxlQ2xpY2soY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0
UmVzdWx0cyYpOworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBib29sIGhhbmRsZU1v
dXNlRHJhZ2dlZEV2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsKICNl
bmRpZgorCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVNb3VzZVJlbGVhc2VFdmVudChj
b25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CiAKLSAgICBPcHRpb25hbEN1cnNv
ciBzZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGJvb2wgc2hpZnRLZXkpOworICAg
IHN0ZDo6b3B0aW9uYWw8Q3Vyc29yPiBzZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYs
IGJvb2wgc2hpZnRLZXkpOworICAgIHZvaWQgdXBkYXRlQ3Vyc29yKEZyYW1lVmlldyYsIGNvbnN0
IEhpdFRlc3RSZXN1bHQmLCBib29sIHNoaWZ0S2V5KTsKIAogICAgIHZvaWQgaG92ZXJUaW1lckZp
cmVkKCk7CisKICNpZiBFTkFCTEUoQ1VSU09SX1NVUFBPUlQpCiAgICAgdm9pZCBjdXJzb3JVcGRh
dGVUaW1lckZpcmVkKCk7CiAjZW5kaWYKQEAgLTM1OSw4ICszNTgsOCBAQCBwcml2YXRlOgogICAg
IAogICAgIGJvb2wgbW91c2VEb3duTWF5U3RhcnRTZWxlY3QoKSBjb25zdCB7IHJldHVybiBtX21v
dXNlRG93bk1heVN0YXJ0U2VsZWN0OyB9CiAKLSAgICBzdGF0aWMgYm9vbCBpc0tleWJvYXJkT3B0
aW9uVGFiKEtleWJvYXJkRXZlbnQqKTsKLSAgICBzdGF0aWMgYm9vbCBldmVudEludmVydHNUYWJz
VG9MaW5rc0NsaWVudENhbGxSZXN1bHQoS2V5Ym9hcmRFdmVudCopOworICAgIHN0YXRpYyBib29s
IGlzS2V5Ym9hcmRPcHRpb25UYWIoS2V5Ym9hcmRFdmVudCYpOworICAgIHN0YXRpYyBib29sIGV2
ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdChLZXlib2FyZEV2ZW50Jik7CiAK
ICNpZiAhRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgdm9pZCBmYWtlTW91c2VNb3ZlRXZl
bnRUaW1lckZpcmVkKCk7CkBAIC0zODUsNiArMzg0LDcgQEAgcHJpdmF0ZToKICAgICBNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzIHByZXBhcmVNb3VzZUV2ZW50KGNvbnN0IEhpdFRlc3RSZXF1
ZXN0JiwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jik7CiAKICAgICBib29sIGRpc3BhdGNoTW91
c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSogdGFyZ2V0LCBib29s
IGNhbmNlbGFibGUsIGludCBjbGlja0NvdW50LCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBi
b29sIHNldFVuZGVyKTsKKwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgYm9vbCBkaXNw
YXRjaERyYWdFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRWxlbWVudCYgdGFy
Z2V0LCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXIqKTsKIApAQCAtMzky
LDcgKzM5Miw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIGhhbmRsZURyYWcoY29uc3QgTW91c2VF
dmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIENoZWNrRHJhZ0h5c3RlcmVzaXMpOwogI2VuZGlmCisK
ICAgICBib29sIGhhbmRsZU1vdXNlVXAoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0
cyYpOworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICB2b2lkIGNsZWFyRHJhZ1N0YXRl
KCk7CiAKQEAgLTQwMCw3ICs0MDIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBkcmFnSHlzdGVy
ZXNpc0V4Y2VlZGVkKGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKICAgICBib29sIGRyYWdIeXN0
ZXJlc2lzRXhjZWVkZWQoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKLSNlbmRpZiAvLyBFTkFCTEUo
RFJBR19TVVBQT1JUKQorI2VuZGlmCiAgICAgCiAgICAgYm9vbCBtb3VzZU1vdmVtZW50RXhjZWVk
c1RocmVzaG9sZChjb25zdCBGbG9hdFBvaW50JiwgaW50IHBvaW50c1RocmVzaG9sZCkgY29uc3Q7
CiAKQEAgLTQzMSwxMSArNDMzLDkgQEAgcHJpdmF0ZToKICAgICAvLyBUaGUgZm9sbG93aW5nIGFy
ZSBjYWxsZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBoYW5kbGVNb3VzZVVwIGFuZCBoYW5kbGVEcmFn
LiAgCiAgICAgLy8gSWYgdGhleSByZXR1cm4gdHJ1ZSBpdCBpbmRpY2F0ZXMgdGhhdCB0aGV5IGhh
dmUgY29uc3VtZWQgdGhlIGV2ZW50LgogICAgIGJvb2wgZXZlbnRMb29wSGFuZGxlTW91c2VVcChj
b25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7Ci0jaWYgRU5BQkxFKERSQUdfU1VQ
UE9SVCkKLSAgICBib29sIGV2ZW50TG9vcEhhbmRsZU1vdXNlRHJhZ2dlZChjb25zdCBNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCisgICAgYm9vbCBldmVudExvb3BIYW5kbGVNb3VzZURyYWdnZWQoY29uc3QgTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cyYpOwogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9uRm9yTW91c2VE
cmFnKGNvbnN0IEhpdFRlc3RSZXN1bHQmKTsKICNlbmRpZgogCkBAIC00NzMsMjEgKzQ3MywyNCBA
QCBwcml2YXRlOgogICAgIFJlZlB0cjxOb2RlPiBtX21vdXNlUHJlc3NOb2RlOwogCiAgICAgYm9v
bCBtX21vdXNlRG93bk1heVN0YXJ0U2VsZWN0IHsgZmFsc2UgfTsKKwogI2lmIEVOQUJMRShEUkFH
X1NVUFBPUlQpCiAgICAgYm9vbCBtX21vdXNlRG93bk1heVN0YXJ0RHJhZyB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2RyYWdNYXlTdGFydFNlbGVjdGlvbkluc3RlYWQgeyBmYWxzZSB9OwogI2VuZGlm
CisKICAgICBib29sIG1fbW91c2VEb3duV2FzU2luZ2xlQ2xpY2tJblNlbGVjdGlvbiB7IGZhbHNl
IH07CiAgICAgZW51bSBTZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgeyBIYXZlTm90U3RhcnRlZFNl
bGVjdGlvbiwgUGxhY2VkQ2FyZXQsIEV4dGVuZGVkU2VsZWN0aW9uIH07CiAgICAgU2VsZWN0aW9u
SW5pdGlhdGlvblN0YXRlIG1fc2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlIHsgSGF2ZU5vdFN0YXJ0
ZWRTZWxlY3Rpb24gfTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgTGF5b3V0UG9p
bnQgbV9kcmFnU3RhcnRQb3M7CisgICAgTGF5b3V0UG9pbnQgbV9kcmFnU3RhcnRQb3NpdGlvbjsK
ICNlbmRpZgogCiAgICAgYm9vbCBtX3BhblNjcm9sbEJ1dHRvblByZXNzZWQgeyBmYWxzZSB9Owog
CiAgICAgVGltZXIgbV9ob3ZlclRpbWVyOworCiAjaWYgRU5BQkxFKENVUlNPUl9TVVBQT1JUKQog
ICAgIFRpbWVyIG1fY3Vyc29yVXBkYXRlVGltZXI7CiAjZW5kaWYKQEAgLTQ5NSw2ICs0OTgsNyBA
QCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBUaW1lciBtX3BlbmRpbmdNb21lbnR1
bVdoZWVsRXZlbnRzVGltZXI7CiAjZW5kaWYKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBdXRvc2Ny
b2xsQ29udHJvbGxlcj4gbV9hdXRvc2Nyb2xsQ29udHJvbGxlcjsKICAgICBib29sIG1fbW91c2VE
b3duTWF5U3RhcnRBdXRvc2Nyb2xsIHsgZmFsc2UgfTsKICAgICBib29sIG1fbW91c2VEb3duV2Fz
SW5TdWJmcmFtZSB7IGZhbHNlIH07CkBAIC01MjMsMTEgKzUyNywxMyBAQCBwcml2YXRlOgogICAg
IGZsb2F0IG1fZ2VzdHVyZUluaXRpYWxEaWFtZXRlciB7IEdlc3R1cmVVbmtub3duIH07CiAgICAg
ZmxvYXQgbV9nZXN0dXJlSW5pdGlhbFJvdGF0aW9uIHsgR2VzdHVyZVVua25vd24gfTsKICNlbmRp
ZgorCiAjaWYgRU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykgfHwgRU5BQkxFKE1BQ19HRVNUVVJF
X0VWRU5UUykKICAgICBmbG9hdCBtX2dlc3R1cmVMYXN0RGlhbWV0ZXIgeyBHZXN0dXJlVW5rbm93
biB9OwogICAgIGZsb2F0IG1fZ2VzdHVyZUxhc3RSb3RhdGlvbiB7IEdlc3R1cmVVbmtub3duIH07
CiAgICAgRXZlbnRUYXJnZXRTZXQgbV9nZXN0dXJlVGFyZ2V0czsKICNlbmRpZgorCiAjaWYgRU5B
QkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKICAgICBib29sIG1faGFzQWN0aXZlR2VzdHVyZSB7IGZh
bHNlIH07CiAjZW5kaWYKQEAgLTU1OCwxMiArNTY0LDE0IEBAIHByaXZhdGU6CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgTlNWaWV3ICptX21vdXNlRG93blZpZXcgeyBudWxscHRyIH07CiAgICAg
Ym9vbCBtX3NlbmRpbmdFdmVudFRvU3VidmlldyB7IGZhbHNlIH07Ci0jaWYgIVBMQVRGT1JNKElP
UykKLSAgICBpbnQgbV9hY3RpdmF0aW9uRXZlbnROdW1iZXIgeyAtMSB9OwogI2VuZGlmCisKKyNp
ZiBQTEFURk9STShNQUMpCisgICAgaW50IG1fYWN0aXZhdGlvbkV2ZW50TnVtYmVyIHsgLTEgfTsK
ICNlbmRpZgorCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgIUVOQUJMRShJT1NfVE9VQ0hf
RVZFTlRTKQotICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFJlZlB0cjxFdmVudFRhcmdldD4+IFRv
dWNoVGFyZ2V0TWFwOworICAgIHVzaW5nIFRvdWNoVGFyZ2V0TWFwID0gSGFzaE1hcDxpbnQsIFJl
ZlB0cjxFdmVudFRhcmdldD4+OwogICAgIFRvdWNoVGFyZ2V0TWFwIG1fb3JpZ2luYXRpbmdUb3Vj
aFBvaW50VGFyZ2V0czsKICAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fb3JpZ2luYXRpbmdUb3VjaFBv
aW50RG9jdW1lbnQ7CiAgICAgdW5zaWduZWQgbV9vcmlnaW5hdGluZ1RvdWNoUG9pbnRUYXJnZXRL
ZXkgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKaW5kZXggYTdi
MjU1N2U2OTQ2ZGI5ZTU2MTE1N2FkZjcyY2MyODI2ZWZlODc0Ny4uNWFhODZjOTljODlmM2FmZWRk
YTk3NTg5NmQ3MmMyMDcxNWQ5NTU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9G
b2N1c0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9s
bGVyLmNwcApAQCAtMzE2LDcgKzMxNiw3IEBAIEZvY3VzQ29udHJvbGxlcjo6Rm9jdXNDb250cm9s
bGVyKFBhZ2UmIHBhZ2UsIEFjdGl2aXR5U3RhdGU6OkZsYWdzIGFjdGl2aXR5U3RhdGUpCiB7CiB9
CiAKLXZvaWQgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRnJhbWUoUGFzc1JlZlB0cjxGcmFt
ZT4gZnJhbWUpCit2b2lkIEZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEZyYW1lKEZyYW1lKiBm
cmFtZSkKIHsKICAgICBBU1NFUlQoIWZyYW1lIHx8IGZyYW1lLT5wYWdlKCkgPT0gJm1fcGFnZSk7
CiAgICAgaWYgKG1fZm9jdXNlZEZyYW1lID09IGZyYW1lIHx8IG1faXNDaGFuZ2luZ0ZvY3VzZWRG
cmFtZSkKQEAgLTc2NSw4ICs3NjUsOSBAQCBzdGF0aWMgdm9pZCBjbGVhclNlbGVjdGlvbklmTmVl
ZGVkKEZyYW1lKiBvbGRGb2N1c2VkRnJhbWUsIEZyYW1lKiBuZXdGb2N1c2VkRnJhbQogICAgIG9s
ZEZvY3VzZWRGcmFtZS0+c2VsZWN0aW9uKCkuY2xlYXIoKTsKIH0KIAotYm9vbCBGb2N1c0NvbnRy
b2xsZXI6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIFBhc3NSZWZQdHI8RnJh
bWU+IG5ld0ZvY3VzZWRGcmFtZSwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQorYm9vbCBGb2N1
c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZyYW1lJiBu
ZXdGb2N1c2VkRnJhbWUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKKyAgICBSZWY8RnJh
bWU+IHByb3RlY3RlZE5ld0ZvY3VzZWRGcmFtZSA9IG5ld0ZvY3VzZWRGcmFtZTsKICAgICBSZWZQ
dHI8RnJhbWU+IG9sZEZvY3VzZWRGcmFtZSA9IGZvY3VzZWRGcmFtZSgpOwogICAgIFJlZlB0cjxE
b2N1bWVudD4gb2xkRG9jdW1lbnQgPSBvbGRGb2N1c2VkRnJhbWUgPyBvbGRGb2N1c2VkRnJhbWUt
PmRvY3VtZW50KCkgOiBudWxscHRyOwogICAgIApAQCAtNzgwLDcgKzc4MSw3IEBAIGJvb2wgRm9j
dXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBQYXNzUmVm
UHRyPEZyYW1lPiBuZXdGCiAKICAgICBtX3BhZ2UuZWRpdG9yQ2xpZW50KCkud2lsbFNldElucHV0
TWV0aG9kU3RhdGUoKTsKIAotICAgIGNsZWFyU2VsZWN0aW9uSWZOZWVkZWQob2xkRm9jdXNlZEZy
YW1lLmdldCgpLCBuZXdGb2N1c2VkRnJhbWUuZ2V0KCksIGVsZW1lbnQpOworICAgIGNsZWFyU2Vs
ZWN0aW9uSWZOZWVkZWQob2xkRm9jdXNlZEZyYW1lLmdldCgpLCAmbmV3Rm9jdXNlZEZyYW1lLCBl
bGVtZW50KTsKIAogICAgIGlmICghZWxlbWVudCkgewogICAgICAgICBpZiAob2xkRG9jdW1lbnQp
CkBAIC03OTksMTEgKzgwMCwxMSBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEVs
ZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUGFzc1JlZlB0cjxGcmFtZT4gbmV3RgogICAgIGlmIChv
bGREb2N1bWVudCAmJiBvbGREb2N1bWVudCAhPSBuZXdEb2N1bWVudC5wdHIoKSkKICAgICAgICAg
b2xkRG9jdW1lbnQtPnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIpOwogCi0gICAgaWYgKG5ld0Zv
Y3VzZWRGcmFtZSAmJiAhbmV3Rm9jdXNlZEZyYW1lLT5wYWdlKCkpIHsKKyAgICBpZiAoIW5ld0Zv
Y3VzZWRGcmFtZS5wYWdlKCkpIHsKICAgICAgICAgc2V0Rm9jdXNlZEZyYW1lKG51bGxwdHIpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHNldEZvY3VzZWRGcmFtZShuZXdGb2N1
c2VkRnJhbWUpOworICAgIHNldEZvY3VzZWRGcmFtZSgmbmV3Rm9jdXNlZEZyYW1lKTsKIAogICAg
IFJlZjxFbGVtZW50PiBwcm90ZWN0KCplbGVtZW50KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXND
b250cm9sbGVyLmgKaW5kZXggZWNiZTM5NjFkYTFmNWIwMDViMDFiY2M4MjUxNmI1MGEyN2E4ZTJh
ZS4uYzZkY2YyMjIwOTM1ZWNiYjFmY2JkNDIyMWYyY2EyZDk0NzNmNzdhMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDEyICszMCwxMCBAQAogI2luY2x1ZGUg
IkxheW91dFJlY3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBGb2N1c0NhbmRpZGF0ZTsKIGNsYXNz
IENvbnRhaW5lck5vZGU7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CkBAIC00OCwx
OSArNDYsMjEgQEAgY2xhc3MgTm9kZTsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBUcmVlU2NvcGU7CiAK
K3N0cnVjdCBGb2N1c0NhbmRpZGF0ZTsKKwogY2xhc3MgRm9jdXNDb250cm9sbGVyIHsKLSAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShGb2N1c0NvbnRyb2xsZXIpOyBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBleHBsaWNp
dCBGb2N1c0NvbnRyb2xsZXIoUGFnZSYsIEFjdGl2aXR5U3RhdGU6OkZsYWdzKTsKIAotICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgc2V0Rm9jdXNlZEZyYW1lKFBhc3NSZWZQdHI8RnJhbWU+KTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZvY3VzZWRGcmFtZShGcmFtZSopOwogICAgIEZyYW1l
KiBmb2N1c2VkRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZvY3VzZWRGcmFtZS5nZXQoKTsgfQog
ICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lJiBmb2N1c2VkT3JNYWluRnJhbWUoKSBjb25zdDsKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0SW5pdGlhbEZvY3VzKEZvY3VzRGlyZWN0aW9uLCBL
ZXlib2FyZEV2ZW50Kik7CiAgICAgYm9vbCBhZHZhbmNlRm9jdXMoRm9jdXNEaXJlY3Rpb24sIEtl
eWJvYXJkRXZlbnQmLCBib29sIGluaXRpYWxGb2N1cyA9IGZhbHNlKTsKIAotICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgc2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCosIFBhc3NSZWZQdHI8RnJhbWU+
LCBGb2N1c0RpcmVjdGlvbiA9IEZvY3VzRGlyZWN0aW9uTm9uZSk7CisgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiwgRnJhbWUmLCBGb2N1c0RpcmVjdGlv
biA9IEZvY3VzRGlyZWN0aW9uTm9uZSk7CiAKICAgICB2b2lkIHNldEFjdGl2aXR5U3RhdGUoQWN0
aXZpdHlTdGF0ZTo6RmxhZ3MpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IGVkYTNjZjZiNGJl
M2U5OTI1YjI1MWM1NjdhODRlNDlmNzEwMDZlY2YuLjg3OGVlMWNiMjIwMzY0ZDQ4MDRjMTNkNDBh
MmM4ODEyZjc5OTMyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC03NzcsNyArNzc3LDcgQEAg
dm9pZCBGcmFtZTo6d2lsbERldGFjaFBhZ2UoKQogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGlm
IChXZWJUaHJlYWRDb3VudE9mT2JzZXJ2ZWRDb250ZW50TW9kaWZpZXJzKCkgPiAwICYmIG1fcGFn
ZSkKLSAgICAgICAgbV9wYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5jbGVhckNvbnRlbnRDaGFuZ2VP
YnNlcnZlcnModGhpcyk7CisgICAgICAgIG1fcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuY2xlYXJD
b250ZW50Q2hhbmdlT2JzZXJ2ZXJzKCp0aGlzKTsKICNlbmRpZgogCiAgICAgc2NyaXB0KCkuY2xl
YXJTY3JpcHRPYmplY3RzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
VHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKaW5kZXggZGVlYjIz
Yjc1ODQ0OWJiZmU1YzU1ZjE5ZDgwZDA0OTI4MjkxMTdhYS4uZmRjZjM1NjBlZTRiMTlmYTk4MDZk
NDkzNDBhMjMzODFhOWJhYmUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTMgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24g
TGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTYzLDI1
ICs2Myw2IEBAIEZyYW1lKiBGcmFtZVRyZWU6OnBhcmVudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
cGFyZW50OwogfQogCi1ib29sIEZyYW1lVHJlZTo6dHJhbnNmZXJDaGlsZChQYXNzUmVmUHRyPEZy
YW1lPiBjaGlsZCkKLXsKLSAgICBGcmFtZSogb2xkUGFyZW50ID0gY2hpbGQtPnRyZWUoKS5wYXJl
bnQoKTsKLSAgICBpZiAob2xkUGFyZW50ID09ICZtX3RoaXNGcmFtZSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOyAvLyB8Y2hpbGR8IGlzIGFscmVhZHkgYSBjaGlsZCBvZiBtX3RoaXNGcmFtZS4KLQot
ICAgIGlmIChvbGRQYXJlbnQpCi0gICAgICAgIG9sZFBhcmVudC0+dHJlZSgpLnJlbW92ZUNoaWxk
KGNoaWxkLmdldCgpKTsKLQotICAgIEFTU0VSVChjaGlsZC0+cGFnZSgpID09IG1fdGhpc0ZyYW1l
LnBhZ2UoKSk7Ci0gICAgY2hpbGQtPnRyZWUoKS5tX3BhcmVudCA9ICZtX3RoaXNGcmFtZTsKLQot
ICAgIC8vIFdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGNoaWxkIHN0aWxsIGhhcyBhIHVuaXF1
ZSBmcmFtZSBuYW1lIHdpdGggcmVzcGVjdCB0byBpdHMgbmV3IHBhcmVudC4KLSAgICBjaGlsZC0+
dHJlZSgpLnNldE5hbWUoY2hpbGQtPnRyZWUoKS5tX25hbWUpOwotCi0gICAgYWN0dWFsbHlBcHBl
bmRDaGlsZChjaGlsZCk7IC8vIE5vdGUsIG9uIHJldHVybiB8Y2hpbGR8IGlzIG51bGwuCi0gICAg
cmV0dXJuIHRydWU7Ci19Ci0KIHVuc2lnbmVkIEZyYW1lVHJlZTo6aW5kZXhJblBhcmVudCgpIGNv
bnN0CiB7CiAgICAgaWYgKCFtX3BhcmVudCkKQEAgLTk1LDQ2ICs3NiwzMiBAQCB1bnNpZ25lZCBG
cmFtZVRyZWU6OmluZGV4SW5QYXJlbnQoKSBjb25zdAogICAgIFJFTEVBU0VfQVNTRVJUX05PVF9S
RUFDSEVEKCk7CiB9CiAKLXZvaWQgRnJhbWVUcmVlOjphcHBlbmRDaGlsZChQYXNzUmVmUHRyPEZy
YW1lPiBjaGlsZCkKLXsKLSAgICBBU1NFUlQoY2hpbGQtPnBhZ2UoKSA9PSBtX3RoaXNGcmFtZS5w
YWdlKCkpOwotICAgIGNoaWxkLT50cmVlKCkubV9wYXJlbnQgPSAmbV90aGlzRnJhbWU7Ci0gICAg
YWN0dWFsbHlBcHBlbmRDaGlsZChjaGlsZCk7IC8vIE5vdGUsIG9uIHJldHVybiB8Y2hpbGR8IGlz
IG51bGwuCi19Ci0KLXZvaWQgRnJhbWVUcmVlOjphY3R1YWxseUFwcGVuZENoaWxkKFBhc3NSZWZQ
dHI8RnJhbWU+IGNoaWxkKQordm9pZCBGcmFtZVRyZWU6OmFwcGVuZENoaWxkKEZyYW1lJiBjaGls
ZCkKIHsKLSAgICBBU1NFUlQoY2hpbGQtPnRyZWUoKS5tX3BhcmVudCA9PSAmbV90aGlzRnJhbWUp
OworICAgIEFTU0VSVChjaGlsZC5wYWdlKCkgPT0gbV90aGlzRnJhbWUucGFnZSgpKTsKKyAgICBj
aGlsZC50cmVlKCkubV9wYXJlbnQgPSAmbV90aGlzRnJhbWU7CiAgICAgRnJhbWUqIG9sZExhc3Qg
PSBtX2xhc3RDaGlsZDsKLSAgICBtX2xhc3RDaGlsZCA9IGNoaWxkLmdldCgpOworICAgIG1fbGFz
dENoaWxkID0gJmNoaWxkOwogCiAgICAgaWYgKG9sZExhc3QpIHsKLSAgICAgICAgY2hpbGQtPnRy
ZWUoKS5tX3ByZXZpb3VzU2libGluZyA9IG9sZExhc3Q7Ci0gICAgICAgIG9sZExhc3QtPnRyZWUo
KS5tX25leHRTaWJsaW5nID0gY2hpbGQ7CisgICAgICAgIGNoaWxkLnRyZWUoKS5tX3ByZXZpb3Vz
U2libGluZyA9IG9sZExhc3Q7CisgICAgICAgIG9sZExhc3QtPnRyZWUoKS5tX25leHRTaWJsaW5n
ID0gJmNoaWxkOwogICAgIH0gZWxzZQotICAgICAgICBtX2ZpcnN0Q2hpbGQgPSBjaGlsZDsKKyAg
ICAgICAgbV9maXJzdENoaWxkID0gJmNoaWxkOwogCiAgICAgbV9zY29wZWRDaGlsZENvdW50ID0g
aW52YWxpZENvdW50OwogCiAgICAgQVNTRVJUKCFtX2xhc3RDaGlsZC0+dHJlZSgpLm1fbmV4dFNp
YmxpbmcpOwogfQogCi12b2lkIEZyYW1lVHJlZTo6cmVtb3ZlQ2hpbGQoRnJhbWUqIGNoaWxkKQor
dm9pZCBGcmFtZVRyZWU6OnJlbW92ZUNoaWxkKEZyYW1lJiBjaGlsZCkKIHsKLSAgICBjaGlsZC0+
dHJlZSgpLm1fcGFyZW50ID0gbnVsbHB0cjsKLQotICAgIC8vIFNsaWdodGx5IHRyaWNreSB3YXkg
dG8gcHJldmVudCBkZWxldGluZyB0aGUgY2hpbGQgdW50aWwgd2UgYXJlIGRvbmUgd2l0aCBpdCwg
dy9vCi0gICAgLy8gZXh0cmEgcmVmcy4gVGhlc2Ugc3dhcHMgbGVhdmUgdGhlIGNoaWxkIGluIGEg
Y2lyY3VsYXIgbGlzdCBieSBpdHNlbGYuIENsZWFyaW5nIGl0cwotICAgIC8vIHByZXZpb3VzIGFu
ZCBuZXh0IHdpbGwgdGhlbiBmaW5hbGx5IGRlcmVmIGl0LgotCi0gICAgUmVmUHRyPEZyYW1lPiYg
bmV3TG9jYXRpb25Gb3JOZXh0ID0gbV9maXJzdENoaWxkID09IGNoaWxkID8gbV9maXJzdENoaWxk
IDogY2hpbGQtPnRyZWUoKS5tX3ByZXZpb3VzU2libGluZy0+dHJlZSgpLm1fbmV4dFNpYmxpbmc7
Ci0gICAgRnJhbWUqJiBuZXdMb2NhdGlvbkZvclByZXZpb3VzID0gbV9sYXN0Q2hpbGQgPT0gY2hp
bGQgPyBtX2xhc3RDaGlsZCA6IGNoaWxkLT50cmVlKCkubV9uZXh0U2libGluZy0+dHJlZSgpLm1f
cHJldmlvdXNTaWJsaW5nOwotICAgIHN3YXAobmV3TG9jYXRpb25Gb3JOZXh0LCBjaGlsZC0+dHJl
ZSgpLm1fbmV4dFNpYmxpbmcpOwotICAgIC8vIEZvciBzb21lIGluZXhwbGljYWJsZSByZWFzb24s
IHRoZSBmb2xsb3dpbmcgbGluZSBkb2VzIG5vdCBjb21waWxlIHdpdGhvdXQgdGhlIGV4cGxpY2l0
IHN0ZDo6IG5hbWVzcGFjZQotICAgIHN0ZDo6c3dhcChuZXdMb2NhdGlvbkZvclByZXZpb3VzLCBj
aGlsZC0+dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nKTsKKyAgICBGcmFtZSomIG5ld0xvY2F0aW9u
Rm9yUHJldmlvdXMgPSBtX2xhc3RDaGlsZCA9PSAmY2hpbGQgPyBtX2xhc3RDaGlsZCA6IGNoaWxk
LnRyZWUoKS5tX25leHRTaWJsaW5nLT50cmVlKCkubV9wcmV2aW91c1NpYmxpbmc7CisgICAgUmVm
UHRyPEZyYW1lPiYgbmV3TG9jYXRpb25Gb3JOZXh0ID0gbV9maXJzdENoaWxkID09ICZjaGlsZCA/
IG1fZmlyc3RDaGlsZCA6IGNoaWxkLnRyZWUoKS5tX3ByZXZpb3VzU2libGluZy0+dHJlZSgpLm1f
bmV4dFNpYmxpbmc7CiAKLSAgICBjaGlsZC0+dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nID0gbnVs
bHB0cjsKLSAgICBjaGlsZC0+dHJlZSgpLm1fbmV4dFNpYmxpbmcgPSBudWxscHRyOworICAgIGNo
aWxkLnRyZWUoKS5tX3BhcmVudCA9IG51bGxwdHI7CisgICAgbmV3TG9jYXRpb25Gb3JQcmV2aW91
cyA9IHN0ZDo6ZXhjaGFuZ2UoY2hpbGQudHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nLCBudWxscHRy
KTsKKyAgICBuZXdMb2NhdGlvbkZvck5leHQgPSBXVEZNb3ZlKGNoaWxkLnRyZWUoKS5tX25leHRT
aWJsaW5nKTsKIAogICAgIG1fc2NvcGVkQ2hpbGRDb3VudCA9IGludmFsaWRDb3VudDsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVHJlZS5oCmluZGV4IGFiMTZmMGFkNjM5NjI1YWUyZDc4YzE3OWYxMzUzYmI4
NGM5OGFlMWEuLjNmODdjMjc5YmRjM2EwNjRmZTg4ODA4YjYwM2EyYWNmN2YyZGM3ZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVRyZWUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMDYgQXBwbGUgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02NSwxMCArNjUsOSBA
QCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUqIHRyYXZlcnNlTmV4dFdpdGhXcmFw
KGJvb2wpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lKiB0cmF2ZXJzZVByZXZpb3Vz
V2l0aFdyYXAoYm9vbCkgY29uc3Q7CiAgICAgCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBl
bmRDaGlsZChQYXNzUmVmUHRyPEZyYW1lPik7Ci0gICAgYm9vbCB0cmFuc2ZlckNoaWxkKFBhc3NS
ZWZQdHI8RnJhbWU+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGVuZENoaWxkKEZyYW1l
Jik7CiAgICAgdm9pZCBkZXRhY2hGcm9tUGFyZW50KCkgeyBtX3BhcmVudCA9IG51bGxwdHI7IH0K
LSAgICB2b2lkIHJlbW92ZUNoaWxkKEZyYW1lKik7CisgICAgdm9pZCByZW1vdmVDaGlsZChGcmFt
ZSYpOwogCiAgICAgRnJhbWUqIGNoaWxkKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKICAgICBGcmFt
ZSogY2hpbGQoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdDsKQEAgLTg3LDcgKzg2LDYg
QEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEZyYW1lKiBkZWVwTGFzdENoaWxkKCkgY29uc3Q7
Ci0gICAgdm9pZCBhY3R1YWxseUFwcGVuZENoaWxkKFBhc3NSZWZQdHI8RnJhbWU+KTsKIAogICAg
IGJvb2wgc2NvcGVkQnkoVHJlZVNjb3BlKikgY29uc3Q7CiAgICAgRnJhbWUqIHNjb3BlZENoaWxk
KHVuc2lnbmVkIGluZGV4LCBUcmVlU2NvcGUqKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcAppbmRleCBkOTRjOWQ5MjFhNGE0MTk2M2VjOGRhZTc1YzBiNGUyMzI2MDk3OGEyLi40ZDYz
OGEyZTc1M2MxZWFiN2JmYzBkYzc4Yzg3MzdkMGU1MmMyYTBmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCkBAIC02NzcsNyArNjc3LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNldENvbnRlbnRz
U2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogCiAgICAgdXBkYXRlU2Nyb2xsYWJsZUFyZWFTZXQo
KTsKIAotICAgIHBhZ2UtPmNocm9tZSgpLmNvbnRlbnRzU2l6ZUNoYW5nZWQoJmZyYW1lKCksIHNp
emUpOyAvLyBOb3RpZnkgb25seS4KKyAgICBwYWdlLT5jaHJvbWUoKS5jb250ZW50c1NpemVDaGFu
Z2VkKGZyYW1lKCksIHNpemUpOyAvLyBOb3RpZnkgb25seS4KIAogICAgIGlmIChmcmFtZSgpLmlz
TWFpbkZyYW1lKCkpIHsKICAgICAgICAgZnJhbWUoKS5tYWluRnJhbWUoKS5wYWdlT3ZlcmxheUNv
bnRyb2xsZXIoKS5kaWRDaGFuZ2VEb2N1bWVudFNpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1l
LmNwcAppbmRleCA0ODE3NGNiMjQzN2Q1OTYwYjIxYzUzODM2YzUyNzFiNjYwZDg4NmMxLi5hMTdi
ZTNiYjUzYTg5MmY1YmU2MmQ0YzRkNzcyNGUwYWQ0Y2ZkNGNlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NYWlu
RnJhbWUuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgTWFpbkZyYW1lOjpzZWxmT25seURlcmVm
KCkKIHZvaWQgTWFpbkZyYW1lOjpkcm9wQ2hpbGRyZW4oKQogewogICAgIHdoaWxlIChGcmFtZSog
Y2hpbGQgPSB0cmVlKCkuZmlyc3RDaGlsZCgpKQotICAgICAgICB0cmVlKCkucmVtb3ZlQ2hpbGQo
Y2hpbGQpOworICAgICAgICB0cmVlKCkucmVtb3ZlQ2hpbGQoKmNoaWxkKTsKIH0KIAogI2lmIFBM
QVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGRiMTdlNmJhZjdhY2U0YzI3MjY1Yzhl
ZGIzNzA1ZmRiMTdlYjIwYmEuLjdkNmFmMTEwYTRjZDRkYWRlY2VkMjQ1OTA2NjI3MzA0MmYzZDBj
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMzYzLDcgKzM2Myw3IEBAIFZpZXdwb3J0QXJndW1l
bnRzIFBhZ2U6OnZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3QKIFNjcm9sbGluZ0Nvb3JkaW5hdG9y
KiBQYWdlOjpzY3JvbGxpbmdDb29yZGluYXRvcigpCiB7CiAgICAgaWYgKCFtX3Njcm9sbGluZ0Nv
b3JkaW5hdG9yICYmIG1fc2V0dGluZ3MtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yRW5hYmxlZCgpKSB7
Ci0gICAgICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBjaHJvbWUoKS5jbGllbnQoKS5jcmVh
dGVTY3JvbGxpbmdDb29yZGluYXRvcih0aGlzKTsKKyAgICAgICAgbV9zY3JvbGxpbmdDb29yZGlu
YXRvciA9IGNocm9tZSgpLmNsaWVudCgpLmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKCp0aGlz
KTsKICAgICAgICAgaWYgKCFtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKQogICAgICAgICAgICAgbV9z
Y3JvbGxpbmdDb29yZGluYXRvciA9IFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGUodGhpcyk7
CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmNwcAppbmRleCBlNzBiY2EwNTIzZjBl
Mzk1Zjg3N2ZmNjNjMTJhYTM5NTU3YWRlZDdjLi4yY2E4NmY5ODI4MDgxNjM3ODRmMmFiN2ZhNDNl
ZWViYmVlMzc5NWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmNwcApAQCAtMjc0LDcg
KzI3NCw3IEBAIHZvaWQgUGFnZU92ZXJsYXk6OmZhZGVBbmltYXRpb25UaW1lckZpcmVkKCkKIAog
ICAgICAgICAvLyBJZiB0aGlzIHdhcyBhIGZhZGUgb3V0LCB1bmluc3RhbGwgdGhlIHBhZ2Ugb3Zl
cmxheS4KICAgICAgICAgaWYgKHdhc0ZhZGluZ091dCkKLSAgICAgICAgICAgIGNvbnRyb2xsZXIo
KS0+dW5pbnN0YWxsUGFnZU92ZXJsYXkodGhpcywgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05v
dEZhZGUpOworICAgICAgICAgICAgY29udHJvbGxlcigpLT51bmluc3RhbGxQYWdlT3ZlcmxheSgq
dGhpcywgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCmluZGV4IDg2NmI4
NzBjYjhlNGQxYjdlNWQyMWIzYjE2YWMxZTVjNmIzYWJmODMuLjA1NDNiZDUzNGQyNTFiYTM3ZGNh
NDIxZGExN2UyYzk5M2EyZGFmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZU92ZXJsYXlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVy
bGF5Q29udHJvbGxlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAy
MDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAx
NC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtOTUsMjcgKzk1LDI1IEBAIHN0YXRpYyB2b2lkIHVwZGF0ZU92ZXJs
YXlHZW9tZXRyeShQYWdlT3ZlcmxheSYgb3ZlcmxheSwgR3JhcGhpY3NMYXllciYgZ3JhcGhpY3NM
CiAgICAgZ3JhcGhpY3NMYXllci5zZXRTaXplKG92ZXJsYXlGcmFtZS5zaXplKCkpOwogfQogCi12
b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6aW5zdGFsbFBhZ2VPdmVybGF5KFBhc3NSZWZQdHI8
UGFnZU92ZXJsYXk+IHBhZ2VPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUgZmFkZU1vZGUp
Cit2b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6aW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVy
bGF5JiBvdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUgZmFkZU1vZGUpCiB7CiAgICAgY3Jl
YXRlUm9vdExheWVyc0lmTmVlZGVkKCk7CiAKLSAgICBSZWZQdHI8UGFnZU92ZXJsYXk+IG92ZXJs
YXkgPSBwYWdlT3ZlcmxheTsKLQotICAgIGlmIChtX3BhZ2VPdmVybGF5cy5jb250YWlucyhvdmVy
bGF5KSkKKyAgICBpZiAobV9wYWdlT3ZlcmxheXMuY29udGFpbnMoJm92ZXJsYXkpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBtX3BhZ2VPdmVybGF5cy5hcHBlbmQob3ZlcmxheSk7CisgICAgbV9w
YWdlT3ZlcmxheXMuYXBwZW5kKCZvdmVybGF5KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmFw
aGljc0xheWVyPiBsYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShtX21haW5GcmFtZS5wYWdl
KCktPmNocm9tZSgpLmNsaWVudCgpLmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0aGlzKTsKICAg
ICBsYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDNEKCkpOwotICAgIGxheWVyLT5zZXRC
YWNrZ3JvdW5kQ29sb3Iob3ZlcmxheS0+YmFja2dyb3VuZENvbG9yKCkpOworICAgIGxheWVyLT5z
ZXRCYWNrZ3JvdW5kQ29sb3Iob3ZlcmxheS5iYWNrZ3JvdW5kQ29sb3IoKSk7CiAjaWZuZGVmIE5E
RUJVRwogICAgIGxheWVyLT5zZXROYW1lKCJQYWdlIE92ZXJsYXkgY29udGVudCIpOwogI2VuZGlm
CiAKICAgICB1cGRhdGVTZXR0aW5nc0ZvckxheWVyKCpsYXllcik7CiAKLSAgICBzd2l0Y2ggKG92
ZXJsYXktPm92ZXJsYXlUeXBlKCkpIHsKKyAgICBzd2l0Y2ggKG92ZXJsYXkub3ZlcmxheVR5cGUo
KSkgewogICAgIGNhc2UgUGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlOjpWaWV3OgogICAgICAgICBt
X3ZpZXdPdmVybGF5Um9vdExheWVyLT5hZGRDaGlsZChsYXllci5nZXQoKSk7CiAgICAgICAgIGJy
ZWFrOwpAQCAtMTI1LDMzICsxMjMsMzMgQEAgdm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6Omlu
c3RhbGxQYWdlT3ZlcmxheShQYXNzUmVmUHRyPFBhZ2VPdmVybGF5PiBwYWdlT3ZlcmwKICAgICB9
CiAKICAgICBHcmFwaGljc0xheWVyJiByYXdMYXllciA9ICpsYXllcjsKLSAgICBtX292ZXJsYXlH
cmFwaGljc0xheWVycy5zZXQob3ZlcmxheS5nZXQoKSwgV1RGTW92ZShsYXllcikpOworICAgIG1f
b3ZlcmxheUdyYXBoaWNzTGF5ZXJzLnNldCgmb3ZlcmxheSwgV1RGTW92ZShsYXllcikpOwogCiAg
ICAgdXBkYXRlRm9yY2VTeW5jaHJvbm91c1Njcm9sbExheWVyUG9zaXRpb25VcGRhdGVzKCk7CiAK
LSAgICBvdmVybGF5LT5zZXRQYWdlKG1fbWFpbkZyYW1lLnBhZ2UoKSk7CisgICAgb3ZlcmxheS5z
ZXRQYWdlKG1fbWFpbkZyYW1lLnBhZ2UoKSk7CiAKICAgICBpZiAoRnJhbWVWaWV3KiBmcmFtZVZp
ZXcgPSBtX21haW5GcmFtZS52aWV3KCkpCiAgICAgICAgIGZyYW1lVmlldy0+ZW50ZXJDb21wb3Np
dGluZ01vZGUoKTsKIAotICAgIHVwZGF0ZU92ZXJsYXlHZW9tZXRyeSgqb3ZlcmxheSwgcmF3TGF5
ZXIpOworICAgIHVwZGF0ZU92ZXJsYXlHZW9tZXRyeShvdmVybGF5LCByYXdMYXllcik7CiAKICAg
ICBpZiAoZmFkZU1vZGUgPT0gUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKQotICAgICAgICBv
dmVybGF5LT5zdGFydEZhZGVJbkFuaW1hdGlvbigpOworICAgICAgICBvdmVybGF5LnN0YXJ0RmFk
ZUluQW5pbWF0aW9uKCk7CiB9CiAKLXZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjp1bmluc3Rh
bGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSogb3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2Rl
IGZhZGVNb2RlKQordm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnVuaW5zdGFsbFBhZ2VPdmVy
bGF5KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUgZmFkZU1vZGUp
CiB7CiAgICAgaWYgKGZhZGVNb2RlID09IFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSkgewot
ICAgICAgICBvdmVybGF5LT5zdGFydEZhZGVPdXRBbmltYXRpb24oKTsKKyAgICAgICAgb3Zlcmxh
eS5zdGFydEZhZGVPdXRBbmltYXRpb24oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IG92ZXJsYXktPnNldFBhZ2UobnVsbHB0cik7CisgICAgb3ZlcmxheS5zZXRQYWdlKG51bGxwdHIp
OwogCi0gICAgbV9vdmVybGF5R3JhcGhpY3NMYXllcnMudGFrZShvdmVybGF5KS0+cmVtb3ZlRnJv
bVBhcmVudCgpOworICAgIG1fb3ZlcmxheUdyYXBoaWNzTGF5ZXJzLnRha2UoJm92ZXJsYXkpLT5y
ZW1vdmVGcm9tUGFyZW50KCk7CiAKLSAgICBib29sIHJlbW92ZWQgPSBtX3BhZ2VPdmVybGF5cy5y
ZW1vdmVGaXJzdChvdmVybGF5KTsKKyAgICBib29sIHJlbW92ZWQgPSBtX3BhZ2VPdmVybGF5cy5y
ZW1vdmVGaXJzdCgmb3ZlcmxheSk7CiAgICAgQVNTRVJUX1VOVVNFRChyZW1vdmVkLCByZW1vdmVk
KTsKIAogICAgIHVwZGF0ZUZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0aW9uVXBkYXRl
cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xs
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmgKaW5kZXgg
Mzk3ODA5ODIwMDhjNjUxZjI4OGI3OTc2YjFiOTMyOTVhYzUyZTdhNC4uNjM4OTQ3YzYxODQ2YWIw
Njc1Y2U4MDNhYmYxNzZiNmI3MWRkOGMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VP
dmVybGF5Q29udHJvbGxlci5oCkBAIC0zOSw3ICszOSw2IEBAIGNsYXNzIFBhZ2U7CiBjbGFzcyBQ
bGF0Zm9ybU1vdXNlRXZlbnQ7CiAKIGNsYXNzIFBhZ2VPdmVybGF5Q29udHJvbGxlciBmaW5hbCA6
IHB1YmxpYyBHcmFwaGljc0xheWVyQ2xpZW50IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShQ
YWdlT3ZlcmxheUNvbnRyb2xsZXIpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVi
bGljOgogICAgIFBhZ2VPdmVybGF5Q29udHJvbGxlcihNYWluRnJhbWUmKTsKQEAgLTUwLDggKzQ5
LDggQEAgcHVibGljOgogCiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxQYWdlT3ZlcmxheT4+JiBw
YWdlT3ZlcmxheXMoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VPdmVybGF5czsgfQogCi0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBpbnN0YWxsUGFnZU92ZXJsYXkoUGFzc1JlZlB0cjxQYWdlT3Zlcmxh
eT4sIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1bmlu
c3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSosIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkmLCBQ
YWdlT3ZlcmxheTo6RmFkZU1vZGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5pbnN0YWxs
UGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkmLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUpOwogCiAgICAg
dm9pZCBzZXRQYWdlT3ZlcmxheU5lZWRzRGlzcGxheShQYWdlT3ZlcmxheSYsIGNvbnN0IEludFJl
Y3QmKTsKICAgICB2b2lkIHNldFBhZ2VPdmVybGF5T3BhY2l0eShQYWdlT3ZlcmxheSYsIGZsb2F0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKaW5kZXggN2ZmZjEyM2ZmNjQx
Mzc4MjVjOGQxOTgwM2RiZWNmMzljODYzNjhhZi4uOTNkMzc3N2FhMWE5ZjA3OWY3MTA0Yzk3NDVk
N2RhMWNjYmJmZDU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFs
aXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKQEAg
LTgwLDggKzgwLDcgQEAgc3RhdGljIGJvb2wgaXNDaGFyc2V0U3BlY2lmeWluZ05vZGUoY29uc3Qg
Tm9kZSYgbm9kZSkKICAgICAgICAgICAgIGF0dHJpYnV0ZXMuYXBwZW5kKHN0ZDo6bWFrZV9wYWly
KGF0dHJpYnV0ZS5uYW1lKCkudG9TdHJpbmcoKSwgYXR0cmlidXRlLnZhbHVlKCkuc3RyaW5nKCkp
KTsKICAgICAgICAgfQogICAgIH0KLSAgICBUZXh0RW5jb2RpbmcgdGV4dEVuY29kaW5nID0gSFRN
TE1ldGFDaGFyc2V0UGFyc2VyOjplbmNvZGluZ0Zyb21NZXRhQXR0cmlidXRlcyhhdHRyaWJ1dGVz
KTsKLSAgICByZXR1cm4gdGV4dEVuY29kaW5nLmlzVmFsaWQoKTsKKyAgICByZXR1cm4gSFRNTE1l
dGFDaGFyc2V0UGFyc2VyOjplbmNvZGluZ0Zyb21NZXRhQXR0cmlidXRlcyhhdHRyaWJ1dGVzKS5p
c1ZhbGlkKCk7CiB9CiAKIHN0YXRpYyBib29sIHNob3VsZElnbm9yZUVsZW1lbnQoY29uc3QgRWxl
bWVudCYgZWxlbWVudCkKQEAgLTk1LDEwICs5NCw5IEBAIHN0YXRpYyBjb25zdCBRdWFsaWZpZWRO
YW1lJiBmcmFtZU93bmVyVVJMQXR0cmlidXRlTmFtZShjb25zdCBIVE1MRnJhbWVPd25lckVsZW1l
CiAgICAgcmV0dXJuIGlzPEhUTUxPYmplY3RFbGVtZW50PihmcmFtZU93bmVyKSA/IEhUTUxOYW1l
czo6ZGF0YUF0dHIgOiBIVE1MTmFtZXM6OnNyY0F0dHI7CiB9CiAKLWNsYXNzIFNlcmlhbGl6ZXJN
YXJrdXBBY2N1bXVsYXRvciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpNYXJrdXBBY2N1bXVsYXRv
ciB7CitjbGFzcyBQYWdlU2VyaWFsaXplcjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yIGZp
bmFsIDogcHVibGljIFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yIHsKIHB1YmxpYzoKICAgICBT
ZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXImLCBEb2N1bWVudCYsIFZl
Y3RvcjxOb2RlKj4qKTsKLSAgICB2aXJ0dWFsIH5TZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3Io
KTsKIAogcHJpdmF0ZToKICAgICBQYWdlU2VyaWFsaXplciYgbV9zZXJpYWxpemVyOwpAQCAtMTEw
LDcgKzEwOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhcHBlbmRFbmRUYWcoY29uc3QgRWxlbWVu
dCYpIG92ZXJyaWRlOwogfTsKIAotU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjpTZXJpYWxp
emVyTWFya3VwQWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXImIHNlcmlhbGl6ZXIsIERvY3VtZW50
JiBkb2N1bWVudCwgVmVjdG9yPE5vZGUqPiogbm9kZXMpCitQYWdlU2VyaWFsaXplcjo6U2VyaWFs
aXplck1hcmt1cEFjY3VtdWxhdG9yOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3IoUGFnZVNl
cmlhbGl6ZXImIHNlcmlhbGl6ZXIsIERvY3VtZW50JiBkb2N1bWVudCwgVmVjdG9yPE5vZGUqPiog
bm9kZXMpCiAgICAgOiBNYXJrdXBBY2N1bXVsYXRvcihub2RlcywgUmVzb2x2ZUFsbFVSTHMpCiAg
ICAgLCBtX3NlcmlhbGl6ZXIoc2VyaWFsaXplcikKICAgICAsIG1fZG9jdW1lbnQoZG9jdW1lbnQp
CkBAIC0xMjAsMTggKzExOCwxNCBAQCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OlNlcmlh
bGl6ZXJNYXJrdXBBY2N1bXVsYXRvcihQYWdlU2VyaWFsaXplciYgc2VyaWFsaQogICAgICAgICBh
cHBlbmRTdHJpbmcoIjw/eG1sIHZlcnNpb249XCIiICsgbV9kb2N1bWVudC54bWxWZXJzaW9uKCkg
KyAiXCIgZW5jb2Rpbmc9XCIiICsgbV9kb2N1bWVudC5jaGFyc2V0KCkgKyAiXCI/PiIpOwogfQog
Ci1TZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6On5TZXJpYWxpemVyTWFya3VwQWNjdW11bGF0
b3IoKQotewotfQotCi12b2lkIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kVGV4
dChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IFRleHQmIHRleHQpCit2b2lkIFBhZ2VTZXJpYWxp
emVyOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQoU3RyaW5nQnVpbGRl
ciYgb3V0LCBjb25zdCBUZXh0JiB0ZXh0KQogewogICAgIEVsZW1lbnQqIHBhcmVudCA9IHRleHQu
cGFyZW50RWxlbWVudCgpOwogICAgIGlmIChwYXJlbnQgJiYgIXNob3VsZElnbm9yZUVsZW1lbnQo
KnBhcmVudCkpCiAgICAgICAgIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0KG91dCwgdGV4
dCk7CiB9CiAKLXZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbGVtZW50
KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgRWxlbWVudCYgZWxlbWVudCwgTmFtZXNwYWNlcyog
bmFtZXNwYWNlcykKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVs
YXRvcjo6YXBwZW5kRWxlbWVudChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IEVsZW1lbnQmIGVs
ZW1lbnQsIE5hbWVzcGFjZXMqIG5hbWVzcGFjZXMpCiB7CiAgICAgaWYgKCFzaG91bGRJZ25vcmVF
bGVtZW50KGVsZW1lbnQpKQogICAgICAgICBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRWxlbWVu
dChvdXQsIGVsZW1lbnQsIG5hbWVzcGFjZXMpOwpAQCAtMTQ1LDcgKzEzOSw3IEBAIHZvaWQgU2Vy
aWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbGVtZW50KFN0cmluZ0J1aWxkZXImIG91
dCwgY29uc3QgRWxlbWVuCiAgICAgLy8gRklYTUU6IEZvciBvYmplY3QgKHBsdWdpbnMpIHRhZ3Mg
YW5kIHZpZGVvIHRhZyB3ZSBjb3VsZCByZXBsYWNlIHRoZW0gYnkgYW4gaW1hZ2Ugb2YgdGhlaXIg
Y3VycmVudCBjb250ZW50cy4KIH0KIAotdm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6
OmFwcGVuZEN1c3RvbUF0dHJpYnV0ZXMoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBFbGVtZW50
JiBlbGVtZW50LCBOYW1lc3BhY2VzKiBuYW1lc3BhY2VzKQordm9pZCBQYWdlU2VyaWFsaXplcjo6
U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRDdXN0b21BdHRyaWJ1dGVzKFN0cmlu
Z0J1aWxkZXImIG91dCwgY29uc3QgRWxlbWVudCYgZWxlbWVudCwgTmFtZXNwYWNlcyogbmFtZXNw
YWNlcykKIHsKICAgICBpZiAoIWlzPEhUTUxGcmFtZU93bmVyRWxlbWVudD4oZWxlbWVudCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTE2NCwzMiArMTU4LDIwIEBAIHZvaWQgU2VyaWFsaXplck1hcmt1
cEFjY3VtdWxhdG9yOjphcHBlbmRDdXN0b21BdHRyaWJ1dGVzKFN0cmluZ0J1aWxkZXImIG91dCwg
Y29uCiAgICAgYXBwZW5kQXR0cmlidXRlKG91dCwgZWxlbWVudCwgQXR0cmlidXRlKGZyYW1lT3du
ZXJVUkxBdHRyaWJ1dGVOYW1lKGZyYW1lT3duZXIpLCB1cmwuc3RyaW5nKCkpLCBuYW1lc3BhY2Vz
KTsKIH0KIAotdm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVuZFRhZyhj
b25zdCBFbGVtZW50JiBlbGVtZW50KQordm9pZCBQYWdlU2VyaWFsaXplcjo6U2VyaWFsaXplck1h
cmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoY29uc3QgRWxlbWVudCYgZWxlbWVudCkKIHsK
ICAgICBpZiAoIXNob3VsZElnbm9yZUVsZW1lbnQoZWxlbWVudCkpCiAgICAgICAgIE1hcmt1cEFj
Y3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoZWxlbWVudCk7CiB9CiAKLVBhZ2VTZXJpYWxpemVyOjpS
ZXNvdXJjZTo6UmVzb3VyY2UoKQotewotfQotCi1QYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U6OlJl
c291cmNlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gZGF0YSkKLSAgICA6IHVybCh1cmwpCi0gICAgLCBtaW1lVHlwZShtaW1l
VHlwZSkKLSAgICAsIGRhdGEoZGF0YSkKLXsKLX0KLQotUGFnZVNlcmlhbGl6ZXI6OlBhZ2VTZXJp
YWxpemVyKFZlY3RvcjxQYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U+KiByZXNvdXJjZXMpCitQYWdl
U2VyaWFsaXplcjo6UGFnZVNlcmlhbGl6ZXIoVmVjdG9yPFBhZ2VTZXJpYWxpemVyOjpSZXNvdXJj
ZT4mIHJlc291cmNlcykKICAgICA6IG1fcmVzb3VyY2VzKHJlc291cmNlcykKLSAgICAsIG1fYmxh
bmtGcmFtZUNvdW50ZXIoMCkKIHsKIH0KIAotdm9pZCBQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXpl
KFBhZ2UqIHBhZ2UpCit2b2lkIFBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemUoUGFnZSYgcGFnZSkK
IHsKLSAgICBzZXJpYWxpemVGcmFtZSgmcGFnZS0+bWFpbkZyYW1lKCkpOworICAgIHNlcmlhbGl6
ZUZyYW1lKCZwYWdlLm1haW5GcmFtZSgpKTsKIH0KIAogdm9pZCBQYWdlU2VyaWFsaXplcjo6c2Vy
aWFsaXplRnJhbWUoRnJhbWUqIGZyYW1lKQpAQCAtMjE4LDcgKzIwMCw3IEBAIHZvaWQgUGFnZVNl
cmlhbGl6ZXI6OnNlcmlhbGl6ZUZyYW1lKEZyYW1lKiBmcmFtZSkKICAgICB9CiAgICAgU3RyaW5n
IHRleHQgPSBhY2N1bXVsYXRvci5zZXJpYWxpemVOb2RlcygqZG9jdW1lbnQtPmRvY3VtZW50RWxl
bWVudCgpLCBJbmNsdWRlTm9kZSk7CiAgICAgQ1N0cmluZyBmcmFtZUhUTUwgPSB0ZXh0RW5jb2Rp
bmcuZW5jb2RlKHRleHQsIEVudGl0aWVzRm9yVW5lbmNvZGFibGVzKTsKLSAgICBtX3Jlc291cmNl
cy0+YXBwZW5kKFJlc291cmNlKHVybCwgZG9jdW1lbnQtPnN1Z2dlc3RlZE1JTUVUeXBlKCksIFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKGZyYW1lSFRNTC5kYXRhKCksIGZyYW1lSFRNTC5sZW5ndGgoKSkp
KTsKKyAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIGRvY3VtZW50LT5zdWdnZXN0ZWRNSU1F
VHlwZSgpLCBTaGFyZWRCdWZmZXI6OmNyZWF0ZShmcmFtZUhUTUwuZGF0YSgpLCBmcmFtZUhUTUwu
bGVuZ3RoKCkpIH0pOwogICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwpOwogCiAgICAgZm9yIChh
dXRvJiBub2RlIDogbm9kZXMpIHsKQEAgLTI4NCw3ICsyNjYsNyBAQCB2b2lkIFBhZ2VTZXJpYWxp
emVyOjpzZXJpYWxpemVDU1NTdHlsZVNoZWV0KENTU1N0eWxlU2hlZXQqIHN0eWxlU2hlZXQsIGNv
bnN0IFVSTAogICAgICAgICBBU1NFUlQodGV4dEVuY29kaW5nLmlzVmFsaWQoKSk7CiAgICAgICAg
IFN0cmluZyB0ZXh0U3RyaW5nID0gY3NzVGV4dC50b1N0cmluZygpOwogICAgICAgICBDU3RyaW5n
IHRleHQgPSB0ZXh0RW5jb2RpbmcuZW5jb2RlKHRleHRTdHJpbmcsIEVudGl0aWVzRm9yVW5lbmNv
ZGFibGVzKTsKLSAgICAgICAgbV9yZXNvdXJjZXMtPmFwcGVuZChSZXNvdXJjZSh1cmwsIFN0cmlu
ZygidGV4dC9jc3MiKSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUodGV4dC5kYXRhKCksIHRleHQubGVu
Z3RoKCkpKSk7CisgICAgICAgIG1fcmVzb3VyY2VzLmFwcGVuZCh7IHVybCwgQVNDSUlMaXRlcmFs
IHsgInRleHQvY3NzIiB9LCBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh0ZXh0LmRhdGEoKSwgdGV4dC5s
ZW5ndGgoKSkgfSk7CiAgICAgICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwpOwogICAgIH0KIH0K
QEAgLTMwNiw4ICsyODgsNyBAQCB2b2lkIFBhZ2VTZXJpYWxpemVyOjphZGRJbWFnZVRvUmVzb3Vy
Y2VzKENhY2hlZEltYWdlKiBpbWFnZSwgUmVuZGVyRWxlbWVudCogaW1hZwogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgU3RyaW5nIG1pbWVUeXBlID0gaW1hZ2UtPnJlc3BvbnNlKCkubWlt
ZVR5cGUoKTsKLSAgICBtX3Jlc291cmNlcy0+YXBwZW5kKFJlc291cmNlKHVybCwgbWltZVR5cGUs
IGRhdGEpKTsKKyAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIGltYWdlLT5yZXNwb25zZSgp
Lm1pbWVUeXBlKCksIFdURk1vdmUoZGF0YSkgfSk7CiAgICAgbV9yZXNvdXJjZVVSTHMuYWRkKHVy
bCk7CiB9CiAKQEAgLTMzNCwyMCArMzE1LDE4IEBAIHZvaWQgUGFnZVNlcmlhbGl6ZXI6OnJldHJp
ZXZlUmVzb3VyY2VzRm9yUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMqIHN0eWxlCiAg
ICAgICAgIGlmICghaW1hZ2UpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBVUkwg
dXJsID0gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGltYWdlLT51cmwoKSk7Ci0gICAgICAgIGFkZElt
YWdlVG9SZXNvdXJjZXMoaW1hZ2UsIG51bGxwdHIsIHVybCk7CisgICAgICAgIGFkZEltYWdlVG9S
ZXNvdXJjZXMoaW1hZ2UsIG51bGxwdHIsIGRvY3VtZW50LT5jb21wbGV0ZVVSTChpbWFnZS0+dXJs
KCkpKTsKICAgICB9CiB9CiAKIFVSTCBQYWdlU2VyaWFsaXplcjo6dXJsRm9yQmxhbmtGcmFtZShG
cmFtZSogZnJhbWUpCiB7Ci0gICAgSGFzaE1hcDxGcmFtZSosIFVSTD46Oml0ZXJhdG9yIGl0ZXIg
PSBtX2JsYW5rRnJhbWVVUkxzLmZpbmQoZnJhbWUpOworICAgIGF1dG8gaXRlciA9IG1fYmxhbmtG
cmFtZVVSTHMuZmluZChmcmFtZSk7CiAgICAgaWYgKGl0ZXIgIT0gbV9ibGFua0ZyYW1lVVJMcy5l
bmQoKSkKICAgICAgICAgcmV0dXJuIGl0ZXItPnZhbHVlOwogICAgIFN0cmluZyB1cmwgPSAid3lj
aXd5ZzovL2ZyYW1lLyIgKyBTdHJpbmc6Om51bWJlcihtX2JsYW5rRnJhbWVDb3VudGVyKyspOwog
ICAgIFVSTCBmYWtlVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKTsKICAgICBtX2JsYW5rRnJhbWVV
UkxzLmFkZChmcmFtZSwgZmFrZVVSTCk7Ci0KICAgICByZXR1cm4gZmFrZVVSTDsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5oCmluZGV4IGExYjQ3YjlkYmJjMDM0YjE3MjkzNTRj
MDgyMWFhYmRkNTc2MmVlYWMuLmQ1NzQzYmM0ZjYxNDYyOTIyOGMzZmZmMGE0YmVkY2I4NzUwYzEx
ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmgKQEAgLTMwLDcgKzMwLDYgQEAK
IAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJVUkxIYXNoLmgi
CiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAg
LTU2LDIwICs1NSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIFVSTCB1cmw7CiAgICAgICAgIFN0cmlu
ZyBtaW1lVHlwZTsKICAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YTsKLSAgICAgICAg
UmVzb3VyY2UoKTsKLSAgICAgICAgUmVzb3VyY2UoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEpOwogICAgIH07CiAKLSAgICBl
eHBsaWNpdCBQYWdlU2VyaWFsaXplcihWZWN0b3I8UmVzb3VyY2U+Kik7CisgICAgZXhwbGljaXQg
UGFnZVNlcmlhbGl6ZXIoVmVjdG9yPFJlc291cmNlPiYpOwogCiAgICAgLy8gSW5pdGlhdGVzIHRo
ZSBzZXJpYWxpemF0aW9uIG9mIHRoZSBmcmFtZSdzIHBhZ2UuIEFsbCBzZXJpYWxpemVkIGNvbnRl
bnQgYW5kIHJldHJpZXZlZAogICAgIC8vIHJlc291cmNlcyBhcmUgYWRkZWQgdG8gdGhlIFZlY3Rv
ciBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLiBUaGUgZmlyc3QgcmVzb3VyY2UgaW4gdGhhdAog
ICAgIC8vIHZlY3RvciBpcyB0aGUgdG9wIGZyYW1lIHNlcmlhbGl6ZWQgY29udGVudC4KLSAgICB2
b2lkIHNlcmlhbGl6ZShQYWdlKik7CisgICAgdm9pZCBzZXJpYWxpemUoUGFnZSYpOworCitwcml2
YXRlOgorICAgIGNsYXNzIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjsKIAogICAgIFVSTCB1
cmxGb3JCbGFua0ZyYW1lKEZyYW1lKik7CiAKLXByaXZhdGU6CiAgICAgdm9pZCBzZXJpYWxpemVG
cmFtZShGcmFtZSopOwogCiAgICAgLy8gU2VyaWFsaXplcyB0aGUgc3R5bGVzaGVldCBiYWNrIHRv
IHRleHQgYW5kIGFkZHMgaXQgdG8gdGhlIHJlc291cmNlcyBpZiBVUkwgaXMgbm90LWVtcHR5LgpA
QCAtODAsMTAgKzc5LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXRyaWV2ZVJlc291cmNlc0Zv
clByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiwgRG9jdW1lbnQqKTsKICAgICB2b2lk
IHJldHJpZXZlUmVzb3VyY2VzRm9yUnVsZShTdHlsZVJ1bGUmLCBEb2N1bWVudCopOwogCi0gICAg
VmVjdG9yPFJlc291cmNlPiogbV9yZXNvdXJjZXM7CisgICAgVmVjdG9yPFJlc291cmNlPiYgbV9y
ZXNvdXJjZXM7CiAgICAgTGlzdEhhc2hTZXQ8VVJMPiBtX3Jlc291cmNlVVJMczsKICAgICBIYXNo
TWFwPEZyYW1lKiwgVVJMPiBtX2JsYW5rRnJhbWVVUkxzOwotICAgIHVuc2lnbmVkIG1fYmxhbmtG
cmFtZUNvdW50ZXI7CisgICAgdW5zaWduZWQgbV9ibGFua0ZyYW1lQ291bnRlciB7IDAgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGVyZm9ybWFuY2VFbnRyeS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVu
dHJ5LmgKaW5kZXggYjNhODRhM2E5ZGNhODJiYmZhOGIzNDA3NGJlY2M3M2I0ODdlZGFhZS4uZjhk
NmNhN2ZlYzgwYzBmZmU2YTk4NmViZmU0ODFlYjM0NTBiY2JjNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZUVudHJ5LmgKQEAgLTM0LDcgKzM0LDYgQEAKICNpZiBFTkFCTEUoV0VCX1RJ
TUlORykKIAogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCi0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2Fz
dHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTU0LDcgKzUzLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc01hcmsoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgYm9vbCBpc01lYXN1cmUoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQog
Ci0gICAgc3RhdGljIGJvb2wgc3RhcnRUaW1lQ29tcGFyZUxlc3NUaGFuKFBhc3NSZWZQdHI8UGVy
Zm9ybWFuY2VFbnRyeT4gYSwgUGFzc1JlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBiKQorICAgIHN0
YXRpYyBib29sIHN0YXJ0VGltZUNvbXBhcmVMZXNzVGhhbihjb25zdCBSZWZQdHI8UGVyZm9ybWFu
Y2VFbnRyeT4mIGEsIGNvbnN0IFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiYgYikKICAgICB7CiAg
ICAgICAgIHJldHVybiBhLT5zdGFydFRpbWUoKSA8IGItPnN0YXJ0VGltZSgpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcAppbmRleCBkOTUz
MTgwNTQ3MGY4ZWVjYTQyODc2M2I3Y2ExZWFjNTNlMTczYjZmLi45YTZjN2FjZTM5NDBlZTM4ZDY1
N2ViYmEzNWExODM2Mzg4MGE0OWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bl
cmZvcm1hbmNlVXNlclRpbWluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3Jt
YW5jZVVzZXJUaW1pbmcuY3BwCkBAIC04NywxNCArODcsMTQgQEAgVXNlclRpbWluZzo6VXNlclRp
bWluZyhQZXJmb3JtYW5jZSYgcGVyZm9ybWFuY2UpCiB7CiB9CiAKLXN0YXRpYyB2b2lkIGluc2Vy
dFBlcmZvcm1hbmNlRW50cnkoUGVyZm9ybWFuY2VFbnRyeU1hcCYgcGVyZm9ybWFuY2VFbnRyeU1h
cCwgUGFzc1JlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBwZXJmb3JtYW5jZUVudHJ5KQorc3RhdGlj
IHZvaWQgaW5zZXJ0UGVyZm9ybWFuY2VFbnRyeShQZXJmb3JtYW5jZUVudHJ5TWFwJiBwZXJmb3Jt
YW5jZUVudHJ5TWFwLCBSZWY8UGVyZm9ybWFuY2VFbnRyeT4mJiBwZXJmb3JtYW5jZUVudHJ5KQog
ewotICAgIFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBlbnRyeSA9IHBlcmZvcm1hbmNlRW50cnk7
Ci0gICAgUGVyZm9ybWFuY2VFbnRyeU1hcDo6aXRlcmF0b3IgaXQgPSBwZXJmb3JtYW5jZUVudHJ5
TWFwLmZpbmQoZW50cnktPm5hbWUoKSk7CisgICAgUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+IGVu
dHJ5ID0gV1RGTW92ZShwZXJmb3JtYW5jZUVudHJ5KTsKKyAgICBhdXRvIGl0ID0gcGVyZm9ybWFu
Y2VFbnRyeU1hcC5maW5kKGVudHJ5LT5uYW1lKCkpOwogICAgIGlmIChpdCAhPSBwZXJmb3JtYW5j
ZUVudHJ5TWFwLmVuZCgpKQotICAgICAgICBpdC0+dmFsdWUuYXBwZW5kKGVudHJ5KTsKKyAgICAg
ICAgaXQtPnZhbHVlLmFwcGVuZChXVEZNb3ZlKGVudHJ5KSk7CiAgICAgZWxzZQotICAgICAgICBw
ZXJmb3JtYW5jZUVudHJ5TWFwLnNldChlbnRyeS0+bmFtZSgpLCBWZWN0b3I8UmVmUHRyPFBlcmZv
cm1hbmNlRW50cnk+PnsgZW50cnkgfSk7CisgICAgICAgIHBlcmZvcm1hbmNlRW50cnlNYXAuc2V0
KGVudHJ5LT5uYW1lKCksIFZlY3RvcjxSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4+IHsgV1RGTW92
ZShlbnRyeSkgfSk7CiB9CiAKIHN0YXRpYyB2b2lkIGNsZWFyUGVmb3JtYW5jZUVudHJpZXMoUGVy
Zm9ybWFuY2VFbnRyeU1hcCYgcGVyZm9ybWFuY2VFbnRyeU1hcCwgY29uc3QgU3RyaW5nJiBuYW1l
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlT3ZlcmxheS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmNwcAppbmRleCBh
ZTgxMTJjYTI2Mzk5MTZmNDE0NWU5MzIzZGUwZDJmMjgxOTVhY2IwLi5lNzQzZDg4MGUyMGNiMWZk
Zjg1NzAxNjBkMGIxYWQ1ODM5MjliOGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1Jlc291cmNlVXNhZ2VPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291
cmNlVXNhZ2VPdmVybGF5LmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZXNvdXJjZVVzYWdlT3Zlcmxh
eTo6flJlc291cmNlVXNhZ2VPdmVybGF5KCkKIAogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgaGFj
ayBzbyB3ZSBkb24ndCB0cnkgdG8gdW5pbnN0YWxsIHRoZSBQYWdlT3ZlcmxheSBkdXJpbmcgUGFn
ZSBkZXN0cnVjdGlvbi4KICAgICBpZiAobV9wYWdlLm1haW5GcmFtZSgpLnBhZ2UoKSkKLSAgICAg
ICAgbV9wYWdlLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBh
Z2VPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZh
ZGUpOworICAgICAgICBtX3BhZ2UubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9sbGVyKCku
dW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fb3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpE
b05vdEZhZGUpOwogfQogCiB2b2lkIFJlc291cmNlVXNhZ2VPdmVybGF5Ojppbml0aWFsaXplKCkK
QEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBSZXNvdXJjZVVzYWdlT3ZlcmxheTo6aW5pdGlhbGl6ZSgp
CiAKICAgICBtX292ZXJsYXktPnNldEZyYW1lKGluaXRpYWxSZWN0KTsKICAgICBtX292ZXJsYXkt
PnNldFNob3VsZElnbm9yZU1vdXNlRXZlbnRzT3V0c2lkZUJvdW5kcyhmYWxzZSk7Ci0gICAgbV9w
YWdlLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3Zlcmxh
eShtX292ZXJsYXkuZ2V0KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAg
ICBtX3BhZ2UubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VP
dmVybGF5KCptX292ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKICAg
ICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmlt
YXRpb24vQW5pbWF0aW9uQmFzZS5oCmluZGV4IDVhZGUwMDIyZWJjMGQ4NGQyNzg2OGZlMjRiNTRk
NjZhNjFlNzdlNTguLjJkZDBjMzA5ZTA1ODJmMzVjZjkzNmY1MGFjZDljMWFjMzQxNjM1NWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKQEAgLTMx
LDcgKzMxLDYgQEAKICNpbmNsdWRlICJBbmltYXRpb24uaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0
eU5hbWVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKLSNpbmNsdWRlIDx3
dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmluZy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1h
dGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDU4ODk2ZGIyZjFlOWZkNDUzNzhiMzY3
YzAwZWM3MTdiYjEzZTQ5OWMuLjRjNDBjOTIzYTIzZTIzMzg4NDA4NDJlODgzY2UwNWRiMWU3YmRk
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkNvbnRyb2xsZXIuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgYm9vbCBBbmltYXRpb25Db250cm9s
bGVyUHJpdmF0ZTo6Y2xlYXIoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiAgICAgRWxlbWVudCog
ZWxlbWVudCA9IHJlbmRlcmVyLmVsZW1lbnQoKTsKIAogICAgIG1fZXZlbnRzVG9EaXNwYXRjaC5y
ZW1vdmVBbGxNYXRjaGluZyhbZWxlbWVudF0gKGNvbnN0IEV2ZW50VG9EaXNwYXRjaCYgaW5mbykg
ewotICAgICAgICByZXR1cm4gaW5mby5lbGVtZW50ID09IGVsZW1lbnQ7CisgICAgICAgIHJldHVy
biBpbmZvLmVsZW1lbnQucHRyKCkgPT0gZWxlbWVudDsKICAgICB9KTsKIAogICAgIG1fZWxlbWVu
dENoYW5nZXNUb0Rpc3BhdGNoLnJlbW92ZUFsbE1hdGNoaW5nKFtlbGVtZW50XShhdXRvJiBjdXJy
ZW50RWxlbWVudCkgewpAQCAtMjAzLDcgKzIwMyw3IEBAIHZvaWQgQW5pbWF0aW9uQ29udHJvbGxl
clByaXZhdGU6OmZpcmVFdmVudHNBbmRVcGRhdGVTdHlsZSgpCiAgICAgLy8gZmlyZSBhbGwgdGhl
IGV2ZW50cwogICAgIFZlY3RvcjxFdmVudFRvRGlzcGF0Y2g+IGV2ZW50c1RvRGlzcGF0Y2ggPSBX
VEZNb3ZlKG1fZXZlbnRzVG9EaXNwYXRjaCk7CiAgICAgZm9yIChhdXRvJiBldmVudCA6IGV2ZW50
c1RvRGlzcGF0Y2gpIHsKLSAgICAgICAgRWxlbWVudCYgZWxlbWVudCA9ICpldmVudC5lbGVtZW50
OworICAgICAgICBFbGVtZW50JiBlbGVtZW50ID0gZXZlbnQuZWxlbWVudDsKICAgICAgICAgaWYg
KGV2ZW50LmV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2ZW50KQogICAg
ICAgICAgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KFRyYW5zaXRpb25FdmVudDo6Y3JlYXRlKGV2
ZW50LmV2ZW50VHlwZSwgZXZlbnQubmFtZSwgZXZlbnQuZWxhcHNlZFRpbWUsIFBzZXVkb0VsZW1l
bnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKGVsZW1lbnQucHNldWRvSWQoKSkpKTsKICAg
ICAgICAgZWxzZQpAQCAtMjI1LDIxICsyMjUsMTUgQEAgdm9pZCBBbmltYXRpb25Db250cm9sbGVy
UHJpdmF0ZTo6c3RhcnRVcGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hlcigpCiAgICAgICAgIG1f
dXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIuc3RhcnRPbmVTaG90KDApOwogfQogCi12b2lk
IEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2goUGFzc1JlZlB0
cjxFbGVtZW50PiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpCit2b2lkIEFuaW1hdGlvbkNvbnRyb2xs
ZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2goRWxlbWVudCYgZWxlbWVudCwgY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgZG91YmxlIGVsYXBzZWRU
aW1lKQogewotICAgIG1fZXZlbnRzVG9EaXNwYXRjaC5ncm93KG1fZXZlbnRzVG9EaXNwYXRjaC5z
aXplKCkrMSk7Ci0gICAgRXZlbnRUb0Rpc3BhdGNoJiBldmVudCA9IG1fZXZlbnRzVG9EaXNwYXRj
aFttX2V2ZW50c1RvRGlzcGF0Y2guc2l6ZSgpLTFdOwotICAgIGV2ZW50LmVsZW1lbnQgPSBlbGVt
ZW50OwotICAgIGV2ZW50LmV2ZW50VHlwZSA9IGV2ZW50VHlwZTsKLSAgICBldmVudC5uYW1lID0g
bmFtZTsKLSAgICBldmVudC5lbGFwc2VkVGltZSA9IGVsYXBzZWRUaW1lOwotICAgIAorICAgIG1f
ZXZlbnRzVG9EaXNwYXRjaC5hcHBlbmQoeyBlbGVtZW50LCBldmVudFR5cGUsIG5hbWUsIGVsYXBz
ZWRUaW1lIH0pOwogICAgIHN0YXJ0VXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIoKTsKIH0K
IAotdm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6YWRkRWxlbWVudENoYW5nZVRvRGlz
cGF0Y2goUmVmPEVsZW1lbnQ+JiYgZWxlbWVudCkKK3ZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclBy
aXZhdGU6OmFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKEVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0g
ICAgbV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2guYXBwZW5kKFdURk1vdmUoZWxlbWVudCkpOwor
ICAgIG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmFwcGVuZChlbGVtZW50KTsKICAgICBBU1NF
UlQobV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2gubGFzdCgpLT5kb2N1bWVudCgpLnBhZ2VDYWNo
ZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKICAgICBzdGFydFVwZGF0ZVN0
eWxlSWZOZWVkZWREaXNwYXRjaGVyKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaAppbmRleCBmYjlj
YzgyYjgxNTE3ZDBiYTMyNzNmMzgwZjIwYmNkOGE5ODYxZjU4Li40OWFkM2Y5Yzk1NDI1NWMzMWQw
ZmJmZmE0YzYyNjhiMDY3OTIxN2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKQEAgLTI5LDMzICsy
OSwyMSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBbmltYXRpb25CYXNlLmgiCi0jaW5j
bHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KLSNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBbmltYXRp
b25CYXNlOwogY2xhc3MgQ29tcG9zaXRlQW5pbWF0aW9uOwogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFz
cyBFbGVtZW50OwogY2xhc3MgRnJhbWU7Ci1jbGFzcyBSZW5kZXJFbGVtZW50OwotY2xhc3MgUmVu
ZGVyU3R5bGU7CiAKLWVudW0gU2V0Q2hhbmdlZCB7Ci0gICAgRG9Ob3RDYWxsU2V0Q2hhbmdlZCA9
IDAsCi0gICAgQ2FsbFNldENoYW5nZWQgPSAxCi19OworZW51bSBTZXRDaGFuZ2VkIHsgRG9Ob3RD
YWxsU2V0Q2hhbmdlZCwgQ2FsbFNldENoYW5nZWQgfTsKIAogY2xhc3MgQW5pbWF0aW9uQ29udHJv
bGxlclByaXZhdGUgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFuaW1hdGlvbkNvbnRyb2xs
ZXJQcml2YXRlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZh
dGUoRnJhbWUmKTsKICAgICB+QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUoKTsKQEAgLTY5LDgg
KzU3LDggQEAgcHVibGljOgogCiAgICAgdm9pZCB1cGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hl
ckZpcmVkKCk7CiAgICAgdm9pZCBzdGFydFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCk7
Ci0gICAgdm9pZCBhZGRFdmVudFRvRGlzcGF0Y2goUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50
LCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBkb3Vi
bGUgZWxhcHNlZFRpbWUpOwotICAgIHZvaWQgYWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2goUmVm
PEVsZW1lbnQ+JiYpOworICAgIHZvaWQgYWRkRXZlbnRUb0Rpc3BhdGNoKEVsZW1lbnQmLCBjb25z
dCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUgZWxh
cHNlZFRpbWUpOworICAgIHZvaWQgYWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2goRWxlbWVudCYp
OwogCiAgICAgYm9vbCBoYXNBbmltYXRpb25zKCkgY29uc3QgeyByZXR1cm4gIW1fY29tcG9zaXRl
QW5pbWF0aW9ucy5pc0VtcHR5KCk7IH0KIApAQCAtMTM0LDIxICsxMjIsMTkgQEAgcHJpdmF0ZToK
ICAgICBUaW1lciBtX2FuaW1hdGlvblRpbWVyOwogICAgIFRpbWVyIG1fdXBkYXRlU3R5bGVJZk5l
ZWRlZERpc3BhdGNoZXI7CiAgICAgRnJhbWUmIG1fZnJhbWU7Ci0gICAgCi0gICAgY2xhc3MgRXZl
bnRUb0Rpc3BhdGNoIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVt
ZW50OworCisgICAgc3RydWN0IEV2ZW50VG9EaXNwYXRjaCB7CisgICAgICAgIFJlZjxFbGVtZW50
PiBlbGVtZW50OwogICAgICAgICBBdG9taWNTdHJpbmcgZXZlbnRUeXBlOwogICAgICAgICBTdHJp
bmcgbmFtZTsKICAgICAgICAgZG91YmxlIGVsYXBzZWRUaW1lOwogICAgIH07Ci0gICAgCiAgICAg
VmVjdG9yPEV2ZW50VG9EaXNwYXRjaD4gbV9ldmVudHNUb0Rpc3BhdGNoOwogICAgIFZlY3RvcjxS
ZWY8RWxlbWVudD4+IG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoOwogICAgIAogICAgIGRvdWJs
ZSBtX2JlZ2luQW5pbWF0aW9uVXBkYXRlVGltZTsKIAotICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQ
dHI8QW5pbWF0aW9uQmFzZT4+IEFuaW1hdGlvbnNTZXQ7CisgICAgdXNpbmcgQW5pbWF0aW9uc1Nl
dCA9IEhhc2hTZXQ8UmVmUHRyPEFuaW1hdGlvbkJhc2U+PjsKICAgICBBbmltYXRpb25zU2V0IG1f
YW5pbWF0aW9uc1dhaXRpbmdGb3JTdHlsZTsKICAgICBBbmltYXRpb25zU2V0IG1fYW5pbWF0aW9u
c1dhaXRpbmdGb3JTdGFydFRpbWVSZXNwb25zZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCmluZGV4IDlmNmI5MTdj
NmVjMWM2ZmViYmE2OTQwYTE2NzA1YmRiZDVhYzc0Y2YuLjhjNTQwM2E0YzE5NjM3YWE2MjFkZTZh
NDA3MTYwNzFhZTc4MzUwMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0
aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKQEAgLTEyNSw3ICsxMjUsNyBAQCBzdGF0
aWMgaW5saW5lIFRyYW5zZm9ybU9wZXJhdGlvbnMgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJh
c2UqIGFuaW1hdGlvbiwgY29ucwogICAgIHJldHVybiB0by5ibGVuZEJ5VXNpbmdNYXRyaXhJbnRl
cnBvbGF0aW9uKGZyb20sIHByb2dyZXNzLCBpczxSZW5kZXJCb3g+KCphbmltYXRpb24tPnJlbmRl
cmVyKCkpID8gZG93bmNhc3Q8UmVuZGVyQm94PigqYW5pbWF0aW9uLT5yZW5kZXJlcigpKS5ib3Jk
ZXJCb3hSZWN0KCkuc2l6ZSgpIDogTGF5b3V0U2l6ZSgpKTsKIH0KIAotc3RhdGljIGlubGluZSBQ
YXNzUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFz
ZSosIENsaXBQYXRoT3BlcmF0aW9uKiBmcm9tLCBDbGlwUGF0aE9wZXJhdGlvbiogdG8sIGRvdWJs
ZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVu
ZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIENsaXBQYXRoT3BlcmF0aW9uKiBmcm9tLCBDbGlw
UGF0aE9wZXJhdGlvbiogdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAoIWZyb20gfHwg
IXRvKQogICAgICAgICByZXR1cm4gdG87CkBAIC0xNDMsNyArMTQzLDcgQEAgc3RhdGljIGlubGlu
ZSBQYXNzUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9u
QmFzZSosIENsaXAKICAgICByZXR1cm4gU2hhcGVDbGlwUGF0aE9wZXJhdGlvbjo6Y3JlYXRlKHRv
U2hhcGUuYmxlbmQoZnJvbVNoYXBlLCBwcm9ncmVzcykpOwogfQogCi1zdGF0aWMgaW5saW5lIFBh
c3NSZWZQdHI8U2hhcGVWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBTaGFw
ZVZhbHVlKiBmcm9tLCBTaGFwZVZhbHVlKiB0bywgZG91YmxlIHByb2dyZXNzKQorc3RhdGljIGlu
bGluZSBSZWZQdHI8U2hhcGVWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBT
aGFwZVZhbHVlKiBmcm9tLCBTaGFwZVZhbHVlKiB0bywgZG91YmxlIHByb2dyZXNzKQogewogICAg
IGlmICghZnJvbSB8fCAhdG8pCiAgICAgICAgIHJldHVybiB0bzsKQEAgLTE2Myw3ICsxNjMsNyBA
QCBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U2hhcGVWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFu
aW1hdGlvbkJhc2UqLCBTaGFwZVZhbHVlKgogICAgIHJldHVybiBTaGFwZVZhbHVlOjpjcmVhdGUo
dG9TaGFwZS5ibGVuZChmcm9tU2hhcGUsIHByb2dyZXNzKSwgdG8tPmNzc0JveCgpKTsKIH0KIAot
c3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0
IEFuaW1hdGlvbkJhc2UqIGFuaW1hdGlvbiwgRmlsdGVyT3BlcmF0aW9uKiBmcm9tT3AsIEZpbHRl
ck9wZXJhdGlvbiogdG9PcCwgZG91YmxlIHByb2dyZXNzLCBib29sIGJsZW5kVG9QYXNzdGhyb3Vn
aCA9IGZhbHNlKQorc3RhdGljIGlubGluZSBSZWZQdHI8RmlsdGVyT3BlcmF0aW9uPiBibGVuZEZ1
bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbWF0aW9uLCBGaWx0ZXJPcGVyYXRpb24qIGZyb21P
cCwgRmlsdGVyT3BlcmF0aW9uKiB0b09wLCBkb3VibGUgcHJvZ3Jlc3MsIGJvb2wgYmxlbmRUb1Bh
c3N0aHJvdWdoID0gZmFsc2UpCiB7CiAgICAgQVNTRVJUKHRvT3ApOwogICAgIGlmICh0b09wLT5i
bGVuZGluZ05lZWRzUmVuZGVyZXJTaXplKCkpIHsKQEAgLTIxOCw3ICsyMTgsNyBAQCBzdGF0aWMg
aW5saW5lIEZpbHRlck9wZXJhdGlvbnMgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFu
aW0sIGNvbnN0IEZpbHRlcgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUg
UGFzc1JlZlB0cjxTdHlsZUltYWdlPiBibGVuZEZpbHRlcihjb25zdCBBbmltYXRpb25CYXNlKiBh
bmltLCBDYWNoZWRJbWFnZSogaW1hZ2UsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZyb20sIGNv
bnN0IEZpbHRlck9wZXJhdGlvbnMmIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5l
IFJlZlB0cjxTdHlsZUltYWdlPiBibGVuZEZpbHRlcihjb25zdCBBbmltYXRpb25CYXNlKiBhbmlt
LCBDYWNoZWRJbWFnZSogaW1hZ2UsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZyb20sIGNvbnN0
IEZpbHRlck9wZXJhdGlvbnMmIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgQVNTRVJUKGlt
YWdlKTsKICAgICBGaWx0ZXJPcGVyYXRpb25zIGZpbHRlclJlc3VsdCA9IGJsZW5kRmlsdGVyT3Bl
cmF0aW9ucyhhbmltLCBmcm9tLCB0bywgcHJvZ3Jlc3MpOwpAQCAtMjc4LDcgKzI3OCw3IEBAIHN0
YXRpYyBpbmxpbmUgVmVjdG9yPFNWR0xlbmd0aFZhbHVlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0
aW9uQmFzZSosIGNvbnN0IFZlY3RvCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotc3RhdGljIGlu
bGluZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGNyb3NzZmFkZUJsZW5kKGNvbnN0IEFuaW1hdGlv
bkJhc2UqLCBTdHlsZUNhY2hlZEltYWdlKiBmcm9tU3R5bGVJbWFnZSwgU3R5bGVDYWNoZWRJbWFn
ZSogdG9TdHlsZUltYWdlLCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5lIFJlZlB0cjxT
dHlsZUltYWdlPiBjcm9zc2ZhZGVCbGVuZChjb25zdCBBbmltYXRpb25CYXNlKiwgU3R5bGVDYWNo
ZWRJbWFnZSogZnJvbVN0eWxlSW1hZ2UsIFN0eWxlQ2FjaGVkSW1hZ2UqIHRvU3R5bGVJbWFnZSwg
ZG91YmxlIHByb2dyZXNzKQogewogICAgIC8vIElmIHByb2dyZXNzIGlzIGF0IG9uZSBvZiB0aGUg
ZXh0cmVtZXMsIHdlIHdhbnQgZ2V0Q29tcHV0ZWRTdHlsZSB0byBzaG93IHRoZSBpbWFnZSwKICAg
ICAvLyBub3QgYSBjb21wbGV0ZWQgY3Jvc3MtZmFkZSwgc28gd2UgaGFuZCBiYWNrIG9uZSBvZiB0
aGUgZXhpc3RpbmcgaW1hZ2VzLgpAQCAtMjk1LDcgKzI5NSw3IEBAIHN0YXRpYyBpbmxpbmUgUGFz
c1JlZlB0cjxTdHlsZUltYWdlPiBjcm9zc2ZhZGVCbGVuZChjb25zdCBBbmltYXRpb25CYXNlKiwg
U3R5bGVDCiAgICAgcmV0dXJuIFN0eWxlR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZShXVEZNb3ZlKGNy
b3NzZmFkZVZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxTdHlsZUltYWdl
PiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgU3R5bGVJbWFnZSogZnJvbSwg
U3R5bGVJbWFnZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPFN0
eWxlSW1hZ2U+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBTdHlsZUltYWdl
KiBmcm9tLCBTdHlsZUltYWdlKiB0bywgZG91YmxlIHByb2dyZXNzKQogewogICAgIGlmICghZnJv
bSB8fCAhdG8pCiAgICAgICAgIHJldHVybiB0bzsKQEAgLTM2NCwxMSArMzY0LDEyIEBAIHN0YXRp
YyBpbmxpbmUgTmluZVBpZWNlSW1hZ2UgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFu
aW0sIGNvbnN0IE5pbmVQaWVjCiAgICAgaWYgKGZyb20uaW1hZ2UoKS0+aW1hZ2VTaXplKGFuaW0t
PnJlbmRlcmVyKCksIDEuMCkgIT0gdG8uaW1hZ2UoKS0+aW1hZ2VTaXplKGFuaW0tPnJlbmRlcmVy
KCksIDEuMCkpCiAgICAgICAgIHJldHVybiB0bzsKIAotICAgIGF1dG8gbmV3Q29udGVudEltYWdl
ID0gYmxlbmRGdW5jKGFuaW0sIGZyb20uaW1hZ2UoKSwgdG8uaW1hZ2UoKSwgcHJvZ3Jlc3MpOwot
ICAgIHJldHVybiBOaW5lUGllY2VJbWFnZShuZXdDb250ZW50SW1hZ2UsIGZyb20uaW1hZ2VTbGlj
ZXMoKSwgZnJvbS5maWxsKCksIGZyb20uYm9yZGVyU2xpY2VzKCksIGZyb20ub3V0c2V0KCksIGZy
b20uaG9yaXpvbnRhbFJ1bGUoKSwgZnJvbS52ZXJ0aWNhbFJ1bGUoKSk7CisgICAgcmV0dXJuIE5p
bmVQaWVjZUltYWdlKGJsZW5kRnVuYyhhbmltLCBmcm9tLmltYWdlKCksIHRvLmltYWdlKCksIHBy
b2dyZXNzKSwKKyAgICAgICAgZnJvbS5pbWFnZVNsaWNlcygpLCBmcm9tLmZpbGwoKSwgZnJvbS5i
b3JkZXJTbGljZXMoKSwgZnJvbS5vdXRzZXQoKSwgZnJvbS5ob3Jpem9udGFsUnVsZSgpLCBmcm9t
LnZlcnRpY2FsUnVsZSgpKTsKIH0KIAogI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCisKIHN0
YXRpYyBpbmxpbmUgRm9udFZhcmlhdGlvblNldHRpbmdzIGJsZW5kRnVuYyhjb25zdCBBbmltYXRp
b25CYXNlKiBhbmltLCBjb25zdCBGb250VmFyaWF0aW9uU2V0dGluZ3MmIGZyb20sIGNvbnN0IEZv
bnRWYXJpYXRpb25TZXR0aW5ncyYgdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAoZnJv
bS5zaXplKCkgIT0gdG8uc2l6ZSgpKQpAQCAtMzg1LDYgKzM4Niw3IEBAIHN0YXRpYyBpbmxpbmUg
Rm9udFZhcmlhdGlvblNldHRpbmdzIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmlt
LCBjb25zdCBGCiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CisKICNlbmRpZgogCiBjbGFz
cyBBbmltYXRpb25Qcm9wZXJ0eVdyYXBwZXJCYXNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCmluZGV4IDViNzRlNzY3ODI4
YzQ1YTU2MjllMTlmZTI2MDUzODNjMmE1ZjZlOGEuLjY2OTkyNzA3YjFlZWFiMTg0M2ZlMDM5YWFj
NjJkZTMwYzQ0MzAyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcApAQCAtMTIxLDggKzEyMSw4IEBAIHZvaWQgQ29tcG9z
aXRlQW5pbWF0aW9uOjp1cGRhdGVUcmFuc2l0aW9ucyhSZW5kZXJFbGVtZW50KiByZW5kZXJlciwg
Y29uc3QgUmVuZGVyCiAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBydW5uaW5nIGFu
aW1hdGlvbiBmb3IgdGhpcyBwcm9wZXJ0eSwgdGhlIHRyYW5zaXRpb24gaXMgb3ZlcnJpZGRlbgog
ICAgICAgICAgICAgICAgIC8vIGFuZCB3ZSBoYXZlIHRvIHVzZSB0aGUgdW5hbmltYXRlZFN0eWxl
IGZyb20gdGhlIGFuaW1hdGlvbi4gV2UgZG8gdGhlIHRlc3QKICAgICAgICAgICAgICAgICAvLyBh
Z2FpbnN0IHRoZSB1bmFuaW1hdGVkIHN0eWxlIGhlcmUsIGJ1dCB3ZSAib3ZlcnJpZGUiIHRoZSB0
cmFuc2l0aW9uIGxhdGVyLgotICAgICAgICAgICAgICAgIFJlZlB0cjxLZXlmcmFtZUFuaW1hdGlv
bj4ga2V5ZnJhbWVBbmltID0gZ2V0QW5pbWF0aW9uRm9yUHJvcGVydHkocHJvcCk7Ci0gICAgICAg
ICAgICAgICAgYXV0byogZnJvbVN0eWxlID0ga2V5ZnJhbWVBbmltID8ga2V5ZnJhbWVBbmltLT51
bmFuaW1hdGVkU3R5bGUoKSA6IGN1cnJlbnRTdHlsZTsKKyAgICAgICAgICAgICAgICBhdXRvKiBr
ZXlmcmFtZUFuaW1hdGlvbiA9IGFuaW1hdGlvbkZvclByb3BlcnR5KHByb3ApOworICAgICAgICAg
ICAgICAgIGF1dG8qIGZyb21TdHlsZSA9IGtleWZyYW1lQW5pbWF0aW9uID8ga2V5ZnJhbWVBbmlt
YXRpb24tPnVuYW5pbWF0ZWRTdHlsZSgpIDogY3VycmVudFN0eWxlOwogCiAgICAgICAgICAgICAg
ICAgLy8gU2VlIGlmIHRoZXJlIGlzIGEgY3VycmVudCB0cmFuc2l0aW9uIGZvciB0aGlzIHByb3AK
ICAgICAgICAgICAgICAgICBJbXBsaWNpdEFuaW1hdGlvbiogaW1wbEFuaW0gPSBtX3RyYW5zaXRp
b25zLmdldChwcm9wKTsKQEAgLTE3Miw3ICsxNzIsNyBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlv
bjo6dXBkYXRlVHJhbnNpdGlvbnMoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNvbnN0IFJlbmRl
cgogICAgICAgICAgICAgICAgICAgICBMT0coQW5pbWF0aW9ucywgIkNyZWF0ZWQgSW1wbGljaXRB
bmltYXRpb24gJXAgb24gcmVuZGVyZXIgJXAgZm9yIHByb3BlcnR5ICVzIGR1cmF0aW9uICUuMmYg
ZGVsYXkgJS4yZiIsIGltcGxpY2l0QW5pbWF0aW9uLnB0cigpLCByZW5kZXJlciwgZ2V0UHJvcGVy
dHlOYW1lKHByb3ApLCBhbmltYXRpb24uZHVyYXRpb24oKSwgYW5pbWF0aW9uLmRlbGF5KCkpOwog
ICAgICAgICAgICAgICAgICAgICBtX3RyYW5zaXRpb25zLnNldChwcm9wLCBXVEZNb3ZlKGltcGxp
Y2l0QW5pbWF0aW9uKSk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAorCiAg
ICAgICAgICAgICAgICAgLy8gV2Ugb25seSBuZWVkIG9uZSBwYXNzIGZvciB0aGUgc2luZ2xlIHBy
b3AgY2FzZQogICAgICAgICAgICAgICAgIGlmICghYWxsKQogICAgICAgICAgICAgICAgICAgICBi
cmVhazsKQEAgLTM5OSwyMSArMzk5LDIxIEBAIGRvdWJsZSBDb21wb3NpdGVBbmltYXRpb246OnRp
bWVUb05leHRTZXJ2aWNlKCkgY29uc3QKICAgICByZXR1cm4gbWluVDsKIH0KIAotUGFzc1JlZlB0
cjxLZXlmcmFtZUFuaW1hdGlvbj4gQ29tcG9zaXRlQW5pbWF0aW9uOjpnZXRBbmltYXRpb25Gb3JQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5KSBjb25zdAorS2V5ZnJhbWVBbmltYXRpb24q
IENvbXBvc2l0ZUFuaW1hdGlvbjo6YW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCBw
cm9wZXJ0eSkgY29uc3QKIHsKLSAgICBSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IHJldHZhbDsK
LSAgICAKKyAgICBLZXlmcmFtZUFuaW1hdGlvbiogcmVzdWx0ID0gbnVsbHB0cjsKKwogICAgIC8v
IFdlIHdhbnQgdG8gc2VuZCBiYWNrIHRoZSBsYXN0IGFuaW1hdGlvbiB3aXRoIHRoZSBwcm9wZXJ0
eSBpZiB0aGVyZSBhcmUgbXVsdGlwbGVzLgogICAgIC8vIFNvIHdlIG5lZWQgdG8gaXRlcmF0ZSB0
aHJvdWdoIGFsbCBhbmltYXRpb25zCiAgICAgaWYgKCFtX2tleWZyYW1lQW5pbWF0aW9ucy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbnMuY2hlY2tDb25zaXN0ZW5jeSgp
OwogICAgICAgICBmb3IgKGF1dG8mIGFuaW1hdGlvbiA6IG1fa2V5ZnJhbWVBbmltYXRpb25zLnZh
bHVlcygpKSB7CiAgICAgICAgICAgICBpZiAoYW5pbWF0aW9uLT5oYXNBbmltYXRpb25Gb3JQcm9w
ZXJ0eShwcm9wZXJ0eSkpCi0gICAgICAgICAgICAgICAgcmV0dmFsID0gYW5pbWF0aW9uOworICAg
ICAgICAgICAgICAgIHJlc3VsdCA9IGFuaW1hdGlvbi5nZXQoKTsKICAgICAgICAgfQogICAgIH0K
LSAgICAKLSAgICByZXR1cm4gcmV0dmFsOworCisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogYm9v
bCBDb21wb3NpdGVBbmltYXRpb246OmNvbXB1dGVFeHRlbnRPZlRyYW5zZm9ybUFuaW1hdGlvbihM
YXlvdXRSZWN0JiBib3VuZHMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCmluZGV4IDMzN2ZlNmYxNjZlNzFjMWNlNjE5YWUy
Mzg4OTMxMTg3ZmY4NjQ3Y2MuLjQwYzNhNDkxZjJhNTQ4ZWIzZTJiMzMxNmM0ZjBmZmUwNTMyMTM5
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFu
aW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFu
aW1hdGlvbi5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNBbmltYXRp
bmdQcm9wZXJ0eShDU1NQcm9wZXJ0eUlELCBib29sIGFjY2VsZXJhdGVkT25seSwgQW5pbWF0aW9u
QmFzZTo6UnVubmluZ1N0YXRlKSBjb25zdDsKIAotICAgIFBhc3NSZWZQdHI8S2V5ZnJhbWVBbmlt
YXRpb24+IGdldEFuaW1hdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQpIGNvbnN0OworICAg
IEtleWZyYW1lQW5pbWF0aW9uKiBhbmltYXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEKSBj
b25zdDsKIAogICAgIHZvaWQgb3ZlcnJpZGVJbXBsaWNpdEFuaW1hdGlvbnMoQ1NTUHJvcGVydHlJ
RCk7CiAgICAgdm9pZCByZXN1bWVPdmVycmlkZGVuSW1wbGljaXRBbmltYXRpb25zKENTU1Byb3Bl
cnR5SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGlj
aXRBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vSW1wbGljaXRB
bmltYXRpb24uY3BwCmluZGV4IDcxNmJlYTgyNDkwNDkyYzQzYmNlMTc3NDlkMWZmYjUyMTI3Y2Nj
ZmYuLmZkZWQ2MjNhNmFkZGE5MjRhYjc2MzYzZTI0NjljYmNhMzJjYmZiNzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKQEAg
LTE2MywxMCArMTYzLDkgQEAgdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6b25BbmltYXRpb25FbmQo
ZG91YmxlIGVsYXBzZWRUaW1lKQogICAgIC8vIHJ1bm5pbmcuIEJ1dCBub3cgdGhhdCB0aGUgdHJh
bnNpdGlvbiBoYXMgY29tcGxldGVkLCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGlzIHN0eWxlIHdpdGgg
aXRzIG5ldwogICAgIC8vIGRlc3RpbmF0aW9uLiBJZiB3ZSBkaWRuJ3QsIHRoZSBuZXh0IHRpbWUg
dGhyb3VnaCB3ZSB3b3VsZCB0aGluayBhIHRyYW5zaXRpb24gaGFkIHN0YXJ0ZWQKICAgICAvLyAo
Y29tcGFyaW5nIHRoZSBvbGQgdW5hbmltYXRlZCBzdHlsZSB3aXRoIHRoZSBuZXcgZmluYWwgc3R5
bGUgb2YgdGhlIHRyYW5zaXRpb24pLgotICAgIFJlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4ga2V5
ZnJhbWVBbmltID0gbV9jb21wb3NpdGVBbmltYXRpb24tPmdldEFuaW1hdGlvbkZvclByb3BlcnR5
KG1fYW5pbWF0aW5nUHJvcGVydHkpOwotICAgIGlmIChrZXlmcmFtZUFuaW0pCi0gICAgICAgIGtl
eWZyYW1lQW5pbS0+c2V0VW5hbmltYXRlZFN0eWxlKFJlbmRlclN0eWxlOjpjbG9uZVB0cigqbV90
b1N0eWxlKSk7Ci0gICAgCisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbiA9IG1fY29tcG9zaXRlQW5p
bWF0aW9uLT5hbmltYXRpb25Gb3JQcm9wZXJ0eShtX2FuaW1hdGluZ1Byb3BlcnR5KSkKKyAgICAg
ICAgYW5pbWF0aW9uLT5zZXRVbmFuaW1hdGVkU3R5bGUoUmVuZGVyU3R5bGU6OmNsb25lUHRyKCpt
X3RvU3R5bGUpKTsKKwogICAgIHNlbmRUcmFuc2l0aW9uRXZlbnQoZXZlbnROYW1lcygpLnRyYW5z
aXRpb25lbmRFdmVudCwgZWxhcHNlZFRpbWUpOwogICAgIGVuZEFuaW1hdGlvbigpOwogfQpAQCAt
MTg3LDcgKzE4Niw3IEBAIGJvb2wgSW1wbGljaXRBbmltYXRpb246OnNlbmRUcmFuc2l0aW9uRXZl
bnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGRvdWJsCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICAvLyBTY2hlZHVsZSBldmVudCBoYW5kbGluZwot
ICAgICAgICAgICAgbV9jb21wb3NpdGVBbmltYXRpb24tPmFuaW1hdGlvbkNvbnRyb2xsZXIoKS5h
ZGRFdmVudFRvRGlzcGF0Y2goZWxlbWVudCwgZXZlbnRUeXBlLCBwcm9wZXJ0eU5hbWUsIGVsYXBz
ZWRUaW1lKTsKKyAgICAgICAgICAgIG1fY29tcG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Db250
cm9sbGVyKCkuYWRkRXZlbnRUb0Rpc3BhdGNoKCplbGVtZW50LCBldmVudFR5cGUsIHByb3BlcnR5
TmFtZSwgZWxhcHNlZFRpbWUpOwogCiAgICAgICAgICAgICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5h
bCAodW5hbmltYXRlZCkgc3R5bGUKICAgICAgICAgICAgIGlmIChldmVudFR5cGUgPT0gZXZlbnRO
YW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCAmJiBlbGVtZW50LT5yZW5kZXJlcigpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwCmlu
ZGV4IDQ3MWJhY2Y2ZjFiOWYwNWNlMWQzNGRhODc1ZmU4YzY3Yzk0ZmY1N2QuLmRjMjlkMjIzOTFi
MDM0YmRjZWU1NjZmM2IyYTVjMzE3YTBkZDAwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKQEAgLTMyNyw3ICszMjcsNyBA
QCBib29sIEtleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIGRvdWJsZQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgICAgIC8vIFNjaGVkdWxlIGV2ZW50IGhhbmRsaW5nCi0gICAgICAgIG1fY29tcG9zaXRlQW5p
bWF0aW9uLT5hbmltYXRpb25Db250cm9sbGVyKCkuYWRkRXZlbnRUb0Rpc3BhdGNoKGVsZW1lbnQs
IGV2ZW50VHlwZSwgbV9rZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpLCBlbGFwc2VkVGltZSk7Cisg
ICAgICAgIG1fY29tcG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Db250cm9sbGVyKCkuYWRkRXZl
bnRUb0Rpc3BhdGNoKCplbGVtZW50LCBldmVudFR5cGUsIG1fa2V5ZnJhbWVzLmFuaW1hdGlvbk5h
bWUoKSwgZWxhcHNlZFRpbWUpOwogCiAgICAgICAgIC8vIFJlc3RvcmUgdGhlIG9yaWdpbmFsICh1
bmFuaW1hdGVkKSBzdHlsZQogICAgICAgICBpZiAoKGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCku
d2Via2l0QW5pbWF0aW9uRW5kRXZlbnQgfHwgZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5hbmlt
YXRpb25lbmRFdmVudCkgJiYgZWxlbWVudC0+cmVuZGVyZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCmluZGV4IDIxMDZkMWUxOWE0ODZhMzg1ZmZlODdm
OTAwZmFhZmU5MDhiY2FjMTIuLmFhZDA3ZDZmZjZiMTdlY2RkNzE3MTFlNDFlZjViNGUwM2VlMDA1
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZsLmNwcApAQCAt
NDksNyArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjb25zdCBkb3VibGUgRXZlbnRIYW5k
bGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4wOwogI2VuZGlmCiAKLWJvb2wgRXZlbnRIYW5kbGVyOjp0
YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCopIGNvbnN0Citib29sIEV2ZW50SGFu
ZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQmKSBjb25zdAogewogICAg
IHJldHVybiB0cnVlOwogfQpAQCAtOTYsMTAgKzk2LDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp3
aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQs
IFdpCiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc1JlZlB0cjxEYXRhVHJhbnNm
ZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAorCitS
ZWY8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVy
KCkgY29uc3QKIHsKICAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJv
cCgpOwogfQorCiAjZW5kaWYKIAogYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZl
bnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1
YmZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVy
R3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAKaW5k
ZXggNDNmMDUzNzVlNWJkZTYxNGY5MDhhN2MxNTRkODJkN2IwOGVjZTI0Yi4uYWFhZGUwMDJjNWM4
OWJkY2VjMDI1MzY1YjAxOTdhNTAxOTZjMmI4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2d0
ay9FdmVudEhhbmRsZXJHdGsuY3BwCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgPSAwLjA7CiAjZW5k
aWYKIAotYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2
ZW50KikgY29uc3QKK2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5
Ym9hcmRFdmVudCYpIGNvbnN0CiB7CiAgICAgLy8gV2UgYWx3YXlzIGFsbG93IHRhYnMgdG8gYWxs
IGNvbnRyb2xzCiAgICAgcmV0dXJuIHRydWU7CkBAIC05NiwxMCArOTYsMTIgQEAgYm9vbCBFdmVu
dEhhbmRsZXI6OndpZGdldERpZEhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiBldmVudCwgV2kKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1QYXNzUmVmUHRy
PERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2Zlcigp
IGNvbnN0CisKK1JlZjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdE
YXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIHJldHVybiBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZv
ckRyYWdBbmREcm9wKCk7CiB9CisKICNlbmRpZgogCiBib29sIEV2ZW50SGFuZGxlcjo6cGFzc01v
dXNlUHJlc3NFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgbWV2
LCBGcmFtZSogc3ViZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9F
dmVudEhhbmRsZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRsZXJJ
T1MubW0KaW5kZXggNTI0ZmI1YWVhNWIzZDUyMzZiOTQxZDdhZDI1ODhiNDg5Y2JkYTdhMC4uMjli
YWRlZjU5NTU4NGEzZmNlNTNjYTJmODI0MWU0ZjZlZmQ3NTRkNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQpAQCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgRXZl
bnRIYW5kbGVyOjp0b3VjaEV2ZW50KFdlYkV2ZW50ICpldmVudCkKIH0KICNlbmRpZgogCi1ib29s
IEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqIGV2ZW50
KSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2Fy
ZEV2ZW50JiBldmVudCkgY29uc3QKIHsKICAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7
CiAgICAgaWYgKCFwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZl
bnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFj
Lm1tCmluZGV4IGU1OTE5NzhjMDBjNDBjNjllNzczYTk3NjIxZDc2NzMzYmQ3NTFiMDIuLmFkN2E1
OWUzMWUwOTViMGJjNTIwNTA3MmZkZjE4MzlmMGY0ZjY4M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAgLTYxLDYgKzYxLDcgQEAKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJXZWJDb3JlU3lz
dGVtSW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiV2hlZWxFdmVudERlbHRhRmlsdGVyLmgiCiAjaW5j
bHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL0Jsb2NrT2JqQ0V4
Y2VwdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpAQCAtNzIzLDcgKzcyNCw3
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpldmVudEFjdGl2YXRlZFZpZXcoY29uc3QgUGxhdGZvcm1N
b3VzZUV2ZW50JiBldmVudCkgY29uc3QKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKLVBh
c3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRy
YW5zZmVyKCkgY29uc3QKK1JlZjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJh
Z2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIC8vIE11c3QgYmUgZG9uZSBiZWZvcmUg
b25kcmFnc3RhcnQgYWRkcyB0eXBlcyBhbmQgZGF0YSB0byB0aGUgcGJvYXJkLAogICAgIC8vIGFs
c28gZG9uZSBmb3Igc2VjdXJpdHksIGFzIGl0IGVyYXNlcyBkYXRhIGZyb20gdGhlIGxhc3QgZHJh
Zy4KQEAgLTczNCw3ICs3MzUsNyBAQCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5k
bGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CiAKICNlbmRpZgogCi1ib29s
IEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqIGV2ZW50
KSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2Fy
ZEV2ZW50JiBldmVudCkgY29uc3QKIHsKICAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS5wYWdlKCk7
CiAgICAgaWYgKCFwYWdlKQpAQCAtOTcxLDEwICs5NzIsMTAgQEAgdm9pZCBFdmVudEhhbmRsZXI6
OnBsYXRmb3JtUHJlcGFyZUZvcldoZWVsRXZlbnRzKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWwKICAgICAgICAgICAgICAgICBtX2ZyYW1lLm1haW5GcmFtZSgpLnB1c2hOZXdMYXRjaGlu
Z1N0YXRlKCk7CiAgICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZSA9IG1fZnJhbWUubWFpbkZy
YW1lKCkubGF0Y2hpbmdTdGF0ZSgpOwogICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNl
dFN0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdChmYWxzZSk7Ci0gICAgICAgICAgICAgICAgbGF0
Y2hpbmdTdGF0ZS0+c2V0V2hlZWxFdmVudEVsZW1lbnQod2hlZWxFdmVudFRhcmdldCk7CisgICAg
ICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0V2hlZWxFdmVudEVsZW1lbnQod2hlZWxFdmVu
dFRhcmdldC5nZXQoKSk7CiAgICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0RnJhbWUo
Jm1fZnJhbWUpOwogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXaGF0IHByZXZlbnRzIHVzIGZy
b20gZGVsZXRpbmcgdGhpcyBzY3JvbGxhYmxlIGNvbnRhaW5lciB3aGlsZSBzdGlsbCBob2xkaW5n
IGEgcG9pbnRlciB0byBpdD8KLSAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlLT5zZXRTY3Jv
bGxhYmxlQ29udGFpbmVyKHNjcm9sbGFibGVDb250YWluZXIpOworICAgICAgICAgICAgICAgIGxh
dGNoaW5nU3RhdGUtPnNldFNjcm9sbGFibGVDb250YWluZXIoc2Nyb2xsYWJsZUNvbnRhaW5lci5n
ZXQoKSk7CiAgICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0V2lkZ2V0SXNMYXRjaGVk
KHJlc3VsdC5pc092ZXJXaWRnZXQoKSk7CiAgICAgICAgICAgICAgICAgaXNPdmVyV2lkZ2V0ID0g
bGF0Y2hpbmdTdGF0ZS0+d2lkZ2V0SXNMYXRjaGVkKCk7CiAgICAgICAgICAgICAgICAgbV9mcmFt
ZS5tYWluRnJhbWUoKS53aGVlbEV2ZW50RGVsdGFGaWx0ZXIoKS0+YmVnaW5GaWx0ZXJpbmdEZWx0
YXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNv
bnRyb2xsZXIuaAppbmRleCA1NWU0ZDY1OTVlZWI2MDUzZjZhNmE5NDUwYjlkYWViODEyOGM1Mjcw
Li42NWIxY2VlYzZiMTEyN2IwNTk2MzIxZWM0ODgyNDU3ZGY0MWIwNGY2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDcg
KzMxLDYgQEAKICNpbmNsdWRlICJQYWdlT3ZlcmxheS5oIgogI2luY2x1ZGUgIlJhbmdlLmgiCiAj
aW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogCiB0eXBlZGVm
IHN0cnVjdCBfX0RESGlnaGxpZ2h0ICpEREhpZ2hsaWdodFJlZjsKIApAQCAtMzksNiArMzgsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBMYXlvdXRSZWN0OwogY2xhc3MgTWFp
bkZyYW1lOworCiBzdHJ1Y3QgR2FwUmVjdHM7CiAKIGNsYXNzIFNlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXIgOiBwcml2YXRlIFBhZ2VPdmVybGF5OjpDbGllbnQgewpAQCAtNTQsMTQgKzU0LDE0IEBA
IHByaXZhdGU6CiAgICAgY2xhc3MgSGlnaGxpZ2h0IDogcHVibGljIFJlZkNvdW50ZWQ8SGlnaGxp
Z2h0PiwgcHJpdmF0ZSBHcmFwaGljc0xheWVyQ2xpZW50IHsKICAgICAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoSGlnaGxpZ2h0KTsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBSZWY8SGln
aGxpZ2h0PiBjcmVhdGVGb3JTZWxlY3Rpb24oU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFJl
dGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFBhc3NSZWZQdHI8UmFuZ2U+KTsKLSAgICAgICAgc3Rh
dGljIFJlZjxIaWdobGlnaHQ+IGNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcihTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyJiwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUGFzc1JlZlB0cjxSYW5n
ZT4pOworICAgICAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlRm9yU2VsZWN0aW9uKFNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+LCBSZWY8
UmFuZ2U+JiYpOworICAgICAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlRm9yVGVsZXBo
b25lTnVtYmVyKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImLCBSZXRhaW5QdHI8RERIaWdobGln
aHRSZWY+LCBSZWY8UmFuZ2U+JiYpOwogICAgICAgICB+SGlnaGxpZ2h0KCk7CiAKICAgICAgICAg
dm9pZCBpbnZhbGlkYXRlKCk7CiAKICAgICAgICAgRERIaWdobGlnaHRSZWYgZGRIaWdobGlnaHQo
KSBjb25zdCB7IHJldHVybiBtX2RkSGlnaGxpZ2h0LmdldCgpOyB9Ci0gICAgICAgIFJhbmdlKiBy
YW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2UuZ2V0KCk7IH0KKyAgICAgICAgUmFuZ2UmIHJh
bmdlKCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZS5nZXQoKTsgfQogICAgICAgICBHcmFwaGljc0xh
eWVyKiBsYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fZ3JhcGhpY3NMYXllci5nZXQoKTsgfQogCiAg
ICAgICAgIGVudW0gewpAQCAtNzcsNyArNzcsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIHNl
dERESGlnaGxpZ2h0KERESGlnaGxpZ2h0UmVmKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIGV4
cGxpY2l0IEhpZ2hsaWdodChTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiwgVHlwZSwgUmV0YWlu
UHRyPERESGlnaGxpZ2h0UmVmPiwgUGFzc1JlZlB0cjxSYW5nZT4pOworICAgICAgICBIaWdobGln
aHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdo
dFJlZj4sIFJlZjxSYW5nZT4mJik7CiAKICAgICAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudAog
ICAgICAgICB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92
ZXJyaWRlOwpAQCAtODcsNyArODcsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIGRpZEZpbmlz
aEZhZGVPdXRBbmltYXRpb24oKTsKIAogICAgICAgICBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+
IG1fZGRIaWdobGlnaHQ7Ci0gICAgICAgIFJlZlB0cjxSYW5nZT4gbV9yYW5nZTsKKyAgICAgICAg
UmVmPFJhbmdlPiBtX3JhbmdlOwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXll
cj4gbV9ncmFwaGljc0xheWVyOwogICAgICAgICBUeXBlIG1fdHlwZTsKICAgICAgICAgU2Vydmlj
ZXNPdmVybGF5Q29udHJvbGxlciogbV9jb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KaW5kZXggOWE4MTViNWFl
NTU5NjQ5OWJkZjYxNmVkNDIxMWI5YTUyMzgxNWU2Mi4uNGIwM2UyMmFlNDZiZTg5YWUyMzEwMmZi
NDlmZjQ5MjFkNDA0NjhiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9T
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCkBAIC01NSwyMyArNTUsMjIgQEAgY29uc3QgZmxv
YXQgaGlnaGxpZ2h0RmFkZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4zOwogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLVJlZjxTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ+IFNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6Y3JlYXRlRm9yU2VsZWN0aW9uKFNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIsIFJldGFpblB0cjxEREhpZ2hsaWdodFJl
Zj4gZGRIaWdobGlnaHQsIFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlKQorUmVmPFNlcnZpY2VzT3Zl
cmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodD4gU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGln
aGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24oU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYgY29u
dHJvbGxlciwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCwgUmVmPFJhbmdl
PiYmIHJhbmdlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodChjb250cm9s
bGVyLCBIaWdobGlnaHQ6OlNlbGVjdGlvblR5cGUsIGRkSGlnaGxpZ2h0LCByYW5nZSkpOworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodChjb250cm9sbGVyLCBIaWdobGlnaHQ6OlNl
bGVjdGlvblR5cGUsIGRkSGlnaGxpZ2h0LCBXVEZNb3ZlKHJhbmdlKSkpOwogfQogCi1SZWY8U2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0PiBTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyOjpIaWdobGlnaHQ6OmNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcihTZXJ2aWNlc092ZXJsYXlD
b250cm9sbGVyJiBjb250cm9sbGVyLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxp
Z2h0LCBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZSkKK1JlZjxTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyOjpIaWdobGlnaHQ+IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6Y3Jl
YXRlRm9yVGVsZXBob25lTnVtYmVyKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImIGNvbnRyb2xs
ZXIsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFJlZjxSYW5nZT4mJiBy
YW5nZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHQoY29udHJvbGxlciwg
SGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlLCBkZEhpZ2hsaWdodCwgcmFuZ2UpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHQoY29udHJvbGxlciwgSGlnaGxpZ2h0OjpU
ZWxlcGhvbmVOdW1iZXJUeXBlLCBkZEhpZ2hsaWdodCwgV1RGTW92ZShyYW5nZSkpKTsKIH0KIAot
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpIaWdobGlnaHQoU2VydmljZXNP
dmVybGF5Q29udHJvbGxlciYgY29udHJvbGxlciwgVHlwZSB0eXBlLCBSZXRhaW5QdHI8RERIaWdo
bGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlJhbmdlPiByYW5nZSkK
LSAgICA6IG1fcmFuZ2UocmFuZ2UpCitTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGln
aHQ6OkhpZ2hsaWdodChTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiBjb250cm9sbGVyLCBUeXBl
IHR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFJlZjxXZWJDb3Jl
OjpSYW5nZT4mJiByYW5nZSkKKyAgICA6IG1fcmFuZ2UoV1RGTW92ZShyYW5nZSkpCiAgICAgLCBt
X3R5cGUodHlwZSkKICAgICAsIG1fY29udHJvbGxlcigmY29udHJvbGxlcikKIHsKICAgICBBU1NF
UlQoZGRIaWdobGlnaHQpOwotICAgIEFTU0VSVChtX3JhbmdlKTsKIAogICAgIFBhZ2UqIHBhZ2Ug
PSBjb250cm9sbGVyLm1haW5GcmFtZSgpLnBhZ2UoKTsKICAgICBtX2dyYXBoaWNzTGF5ZXIgPSBH
cmFwaGljc0xheWVyOjpjcmVhdGUocGFnZSA/IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmdyYXBo
aWNzTGF5ZXJGYWN0b3J5KCkgOiBudWxscHRyLCAqdGhpcyk7CkBAIC00MDksNyArNDA4LDcgQEAg
dm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFBvdGVudGlhbEhpZ2hsaWdodHNJ
Zk5lZWRlZCgpCiAKICAgICBpZiAobV9wb3RlbnRpYWxIaWdobGlnaHRzLmlzRW1wdHkoKSkgewog
ICAgICAgICBpZiAobV9zZXJ2aWNlc092ZXJsYXkpCi0gICAgICAgICAgICBtX21haW5GcmFtZS5w
YWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheShtX3NlcnZpY2VzT3Zl
cmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgICAgICAgICAgbV9t
YWluRnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1f
c2VydmljZXNPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTUyNyw3ICs1MjYsNyBAQCB2b2lkIFNlcnZpY2VzT3Zl
cmxheUNvbnRyb2xsZXI6OmJ1aWxkUGhvbmVOdW1iZXJIaWdobGlnaHRzKCkKICAgICAgICAgQ0dS
ZWN0IGNnUmVjdCA9IHJlY3Q7CiAgICAgICAgIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRI
aWdobGlnaHQgPSBhZG9wdENGKERESGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVj
dFdpdGhTdHlsZUFuZERpcmVjdGlvbihudWxscHRyLCAmY2dSZWN0LCAxLCBtYWluRnJhbWVWaWV3
LnZpc2libGVDb250ZW50UmVjdCgpLCBEREhpZ2hsaWdodFN0eWxlQnViYmxlU3RhbmRhcmQgfCBE
REhpZ2hsaWdodFN0eWxlU3RhbmRhcmRJY29uQXJyb3csIFlFUywgTlNXcml0aW5nRGlyZWN0aW9u
TmF0dXJhbCwgTk8sIFlFUykpOwogCi0gICAgICAgIG5ld1BvdGVudGlhbEhpZ2hsaWdodHMuYWRk
KEhpZ2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKCp0aGlzLCBkZEhpZ2hsaWdodCwg
cmFuZ2UpKTsKKyAgICAgICAgbmV3UG90ZW50aWFsSGlnaGxpZ2h0cy5hZGQoSGlnaGxpZ2h0Ojpj
cmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIoKnRoaXMsIGRkSGlnaGxpZ2h0LCByYW5nZS5yZWxlYXNl
Tm9uTnVsbCgpKSk7CiAgICAgfQogCiAgICAgcmVwbGFjZUhpZ2hsaWdodHNPZlR5cGVQcmVzZXJ2
aW5nRXF1aXZhbGVudEhpZ2hsaWdodHMobmV3UG90ZW50aWFsSGlnaGxpZ2h0cywgSGlnaGxpZ2h0
OjpUZWxlcGhvbmVOdW1iZXJUeXBlKTsKQEAgLTU3MCw3ICs1NjksNyBAQCB2b2lkIFNlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkU2VsZWN0aW9uSGlnaGxpZ2h0KCkKICAgICAgICAgICAg
IENHUmVjdCB2aXNpYmxlUmVjdCA9IG1haW5GcmFtZVZpZXctPnZpc2libGVDb250ZW50UmVjdCgp
OwogICAgICAgICAgICAgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCA9IGFk
b3B0Q0YoRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0aFN0eWxlQW5k
RGlyZWN0aW9uKG51bGxwdHIsIGNnUmVjdHMuYmVnaW4oKSwgY2dSZWN0cy5zaXplKCksIHZpc2li
bGVSZWN0LCBEREhpZ2hsaWdodFN0eWxlQnViYmxlTm9uZSB8IERESGlnaGxpZ2h0U3R5bGVTdGFu
ZGFyZEljb25BcnJvdyB8IERESGlnaGxpZ2h0U3R5bGVCdXR0b25TaG93QWx3YXlzLCBZRVMsIE5T
V3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5PLCBZRVMpKTsKICAgICAgICAgICAgIAotICAgICAg
ICAgICAgbmV3UG90ZW50aWFsSGlnaGxpZ2h0cy5hZGQoSGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxl
Y3Rpb24oKnRoaXMsIGRkSGlnaGxpZ2h0LCBzZWxlY3Rpb25SYW5nZSkpOworICAgICAgICAgICAg
bmV3UG90ZW50aWFsSGlnaGxpZ2h0cy5hZGQoSGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24o
KnRoaXMsIGRkSGlnaGxpZ2h0LCBzZWxlY3Rpb25SYW5nZS5yZWxlYXNlTm9uTnVsbCgpKSk7CiAg
ICAgICAgIH0KICAgICB9CiAKQEAgLTYzOCwxNCArNjM3LDkgQEAgYm9vbCBTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyOjpoaWdobGlnaHRzQXJlRXF1aXZhbGVudChjb25zdCBIaWdobGlnaHQqIGEs
IGNvbnMKIHsKICAgICBpZiAoYSA9PSBiKQogICAgICAgICByZXR1cm4gdHJ1ZTsKLQogICAgIGlm
ICghYSB8fCAhYikKICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGEtPnR5cGUoKSA9
PSBiLT50eXBlKCkgJiYgYXJlUmFuZ2VzRXF1YWwoYS0+cmFuZ2UoKSwgYi0+cmFuZ2UoKSkpCi0g
ICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBhLT50
eXBlKCkgPT0gYi0+dHlwZSgpICYmIGFyZVJhbmdlc0VxdWFsKCZhLT5yYW5nZSgpLCAmYi0+cmFu
Z2UoKSk7CiB9CiAKIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodCogU2Vydmlj
ZXNPdmVybGF5Q29udHJvbGxlcjo6ZmluZFRlbGVwaG9uZU51bWJlckhpZ2hsaWdodENvbnRhaW5p
bmdTZWxlY3Rpb25IaWdobGlnaHQoSGlnaGxpZ2h0JiBzZWxlY3Rpb25IaWdobGlnaHQpCkBAIC02
NjksNyArNjYzLDcgQEAgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0KiBTZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyOjpmaW5kVGVsZXBob25lTnUKICAgICAgICAgaWYgKGhpZ2hs
aWdodC0+dHlwZSgpICE9IEhpZ2hsaWdodDo6VGVsZXBob25lTnVtYmVyVHlwZSkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmIChoaWdobGlnaHQtPnJhbmdlKCktPmNvbnRhaW5z
KCphY3RpdmVTZWxlY3Rpb25SYW5nZSkpCisgICAgICAgIGlmIChoaWdobGlnaHQtPnJhbmdlKCku
Y29udGFpbnMoKmFjdGl2ZVNlbGVjdGlvblJhbmdlKSkKICAgICAgICAgICAgIHJldHVybiBoaWdo
bGlnaHQuZ2V0KCk7CiAgICAgfQogCkBAIC04MzIsNyArODI2LDcgQEAgdm9pZCBTZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyOjpoYW5kbGVDbGljayhjb25zdCBJbnRQb2ludCYgY2xpY2tQb2ludCwg
SGlnaGxpZ2gKIAogICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYW5kbGVTZWxlY3Rp
b25TZXJ2aWNlQ2xpY2socGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1l
KCkuc2VsZWN0aW9uKCksIHNlbGVjdGVkVGVsZXBob25lTnVtYmVycywgd2luZG93UG9pbnQpOwog
ICAgIH0gZWxzZSBpZiAoaGlnaGxpZ2h0LnR5cGUoKSA9PSBIaWdobGlnaHQ6OlRlbGVwaG9uZU51
bWJlclR5cGUpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmhhbmRsZVRlbGVwaG9u
ZU51bWJlckNsaWNrKGhpZ2hsaWdodC5yYW5nZSgpLT50ZXh0KCksIHdpbmRvd1BvaW50KTsKKyAg
ICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFuZGxlVGVsZXBob25lTnVtYmVyQ2xpY2so
aGlnaGxpZ2h0LnJhbmdlKCkudGV4dCgpLCB3aW5kb3dQb2ludCk7CiB9CiAKIHZvaWQgU2Vydmlj
ZXNPdmVybGF5Q29udHJvbGxlcjo6ZGlkQ3JlYXRlSGlnaGxpZ2h0KEhpZ2hsaWdodCogaGlnaGxp
Z2h0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldp
bmRvdy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0K
aW5kZXggZTRlMjBkMjI3NjhjODgyZTkwMGIxMmI0MWZlMDJlY2RmYjQ4ZjYyOC4uZTU5MjliYTYz
ZGU1OWY0OTgzYmQ4Y2Y5YzMwMDY0ZTY3MTc3M2NiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCkBAIC02NCw3ICs2NCw3IEBAIEBpbnRlcmZh
Y2UgV2ViVGV4dEluZGljYXRvclZpZXcgOiBOU1ZpZXcgewogICAgIEJPT0wgX2ZhZGluZ091dDsK
IH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSB0ZXh0SW5k
aWNhdG9yOihQYXNzUmVmUHRyPFRleHRJbmRpY2F0b3I+KXRleHRJbmRpY2F0b3IgbWFyZ2luOihO
U1NpemUpbWFyZ2luIG9mZnNldDooTlNQb2ludClvZmZzZXQ7CistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFRleHRJbmRpY2F0b3ImKXRl
eHRJbmRpY2F0b3IgbWFyZ2luOihOU1NpemUpbWFyZ2luIG9mZnNldDooTlNQb2ludClvZmZzZXQ7
CiAKIC0gKHZvaWQpcHJlc2VudDsKIC0gKHZvaWQpaGlkZVdpdGhDb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKQEAgLTE0NywxMiArMTQ3LDEyIEBAIHN0
YXRpYyBib29sIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uKGNvbnN0IFRleHRJbmRpY2F0
b3ImIGluZGljYXRvcikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLS0gKGluc3RhbmNldHlwZSlp
bml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooUGFzc1JlZlB0cjxUZXh0
SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yIG1hcmdpbjooTlNTaXplKW1hcmdpbiBvZmZzZXQ6KE5T
UG9pbnQpb2Zmc2V0CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1l
IHRleHRJbmRpY2F0b3I6KFRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3IgbWFyZ2luOihOU1Np
emUpbWFyZ2luIG9mZnNldDooTlNQb2ludClvZmZzZXQKIHsKICAgICBpZiAoIShzZWxmID0gW3N1
cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIF90
ZXh0SW5kaWNhdG9yID0gdGV4dEluZGljYXRvcjsKKyAgICBfdGV4dEluZGljYXRvciA9ICZ0ZXh0
SW5kaWNhdG9yOwogICAgIF9tYXJnaW4gPSBtYXJnaW47CiAKICAgICBzZWxmLndhbnRzTGF5ZXIg
PSBZRVM7CkBAIC00NjUsNyArNDY1LDggQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2luZG93OjpzZXRU
ZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBDR1IKICAgICBb
bV90ZXh0SW5kaWNhdG9yV2luZG93IHNldE9wYXF1ZTpOT107CiAgICAgW21fdGV4dEluZGljYXRv
cldpbmRvdyBzZXRJZ25vcmVzTW91c2VFdmVudHM6WUVTXTsKIAotICAgIG1fdGV4dEluZGljYXRv
clZpZXcgPSBhZG9wdE5TKFtbV2ViVGV4dEluZGljYXRvclZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNNYWtlUmVjdCgwLCAwLCBbbV90ZXh0SW5kaWNhdG9yV2luZG93IGZyYW1lXS5zaXplLndp
ZHRoLCBbbV90ZXh0SW5kaWNhdG9yV2luZG93IGZyYW1lXS5zaXplLmhlaWdodCkgdGV4dEluZGlj
YXRvcjptX3RleHRJbmRpY2F0b3IgbWFyZ2luOk5TTWFrZVNpemUoaG9yaXpvbnRhbE1hcmdpbiwg
dmVydGljYWxNYXJnaW4pIG9mZnNldDpmcmFjdGlvbmFsVGV4dE9mZnNldF0pOworICAgIG1fdGV4
dEluZGljYXRvclZpZXcgPSBhZG9wdE5TKFtbV2ViVGV4dEluZGljYXRvclZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCBbbV90ZXh0SW5kaWNhdG9yV2luZG93IGZyYW1l
XS5zaXplLndpZHRoLCBbbV90ZXh0SW5kaWNhdG9yV2luZG93IGZyYW1lXS5zaXplLmhlaWdodCkK
KyAgICAgICAgdGV4dEluZGljYXRvcjoqbV90ZXh0SW5kaWNhdG9yIG1hcmdpbjpOU01ha2VTaXpl
KGhvcml6b250YWxNYXJnaW4sIHZlcnRpY2FsTWFyZ2luKSBvZmZzZXQ6ZnJhY3Rpb25hbFRleHRP
ZmZzZXRdKTsKICAgICBbbV90ZXh0SW5kaWNhdG9yV2luZG93IHNldENvbnRlbnRWaWV3Om1fdGV4
dEluZGljYXRvclZpZXcuZ2V0KCldOwogCiAgICAgW1ttX3RhcmdldFZpZXcgd2luZG93XSBhZGRD
aGlsZFdpbmRvdzptX3RleHRJbmRpY2F0b3JXaW5kb3cuZ2V0KCkgb3JkZXJlZDpOU1dpbmRvd0Fi
b3ZlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCBhNDM0MTdkY2UxYzQwMTMwODQ2OTIzODNhMTJh
OGNmMWFiOWQyMGIzLi4wMTFhZTBmMjMzYzA5MjZmZWZlMGYwZDkwN2M1ZjFhODBmMjcyNzQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvci5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAiU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlLmgiCiAjaW5jbHVkZSAiVGlt
ZXIuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjksMTEgKzY4LDExIEBAIHB1YmxpYzoKIHBy
b3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKFBh
Z2UqKTsKIAotICAgIHZvaWQgc2V0U2Nyb2xsaW5nVHJlZShQYXNzUmVmUHRyPFNjcm9sbGluZ1Ry
ZWU+IHNjcm9sbGluZ1RyZWUpIHsgbV9zY3JvbGxpbmdUcmVlID0gc2Nyb2xsaW5nVHJlZTsgfQor
ICAgIHZvaWQgc2V0U2Nyb2xsaW5nVHJlZShSZWY8U2Nyb2xsaW5nVHJlZT4mJiBzY3JvbGxpbmdU
cmVlKSB7IG1fc2Nyb2xsaW5nVHJlZSA9IFdURk1vdmUoc2Nyb2xsaW5nVHJlZSk7IH0KIAogICAg
IFNjcm9sbGluZ1N0YXRlVHJlZSogc2Nyb2xsaW5nU3RhdGVUcmVlKCkgeyByZXR1cm4gbV9zY3Jv
bGxpbmdTdGF0ZVRyZWUuZ2V0KCk7IH0KIAotICAgIFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZT4g
cmVsZWFzZVNjcm9sbGluZ1RyZWUoKSB7IHJldHVybiBXVEZNb3ZlKG1fc2Nyb2xsaW5nVHJlZSk7
IH0KKyAgICBSZWZQdHI8U2Nyb2xsaW5nVHJlZT4gcmVsZWFzZVNjcm9sbGluZ1RyZWUoKSB7IHJl
dHVybiBXVEZNb3ZlKG1fc2Nyb2xsaW5nVHJlZSk7IH0KIAogICAgIHZvaWQgdXBkYXRlU2Nyb2xs
UG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2lu
dCYsIHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4gbGF5b3V0Vmlld3BvcnRPcmlnaW4sIGJvb2wg
cHJvZ3JhbW1hdGljU2Nyb2xsLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRl
LmNwcAppbmRleCBlMzlkOTllZmJhMzA2OGNjYjA1NWI0MGQxYzcyNDM3N2Q1OGUzNWJlLi4wMWU2
NTI5YjAyYzhjMWQ3MGFlNzczMjgzZWI3ZjczMDA1NzRmOTg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRlLmNwcApAQCAtMzEs
OSArMzEsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTY3JvbGxMYXRjaGluZ1N0YXRlOjpT
Y3JvbGxMYXRjaGluZ1N0YXRlKCkKLSAgICA6IG1fZnJhbWUobnVsbHB0cikKLSAgICAsIG1fd2lk
Z2V0SXNMYXRjaGVkKGZhbHNlKQotICAgICwgbV9zdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQo
ZmFsc2UpCiB7CiB9CiAgICAgCkBAIC01MCw3ICs0Nyw3IEBAIHZvaWQgU2Nyb2xsTGF0Y2hpbmdT
dGF0ZTo6Y2xlYXIoKQogICAgIG1fcHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudCA9IG51bGxw
dHI7CiB9CiAKLXZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0V2hlZWxFdmVudEVsZW1lbnQo
UGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50KQordm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRlOjpz
ZXRXaGVlbEV2ZW50RWxlbWVudChFbGVtZW50KiBlbGVtZW50KQogewogICAgIG1fd2hlZWxFdmVu
dEVsZW1lbnQgPSBlbGVtZW50OwogfQpAQCAtNjAsMTQgKzU3LDE0IEBAIHZvaWQgU2Nyb2xsTGF0
Y2hpbmdTdGF0ZTo6c2V0V2lkZ2V0SXNMYXRjaGVkKGJvb2wgaXNPdmVyV2lkZ2V0KQogICAgIG1f
d2lkZ2V0SXNMYXRjaGVkID0gaXNPdmVyV2lkZ2V0OwogfQogCi12b2lkIFNjcm9sbExhdGNoaW5n
U3RhdGU6OnNldFByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQoUmVmUHRyPEVsZW1lbnQ+JiYg
ZWxlbWVudCkKK3ZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0UHJldmlvdXNXaGVlbFNjcm9s
bGVkRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQogewogICAgIG1fcHJldmlvdXNXaGVlbFNjcm9s
bGVkRWxlbWVudCA9IGVsZW1lbnQ7CiB9CiAKLXZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0
U2Nyb2xsYWJsZUNvbnRhaW5lcihQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IG5vZGUpCit2b2lk
IFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFNjcm9sbGFibGVDb250YWluZXIoQ29udGFpbmVyTm9k
ZSogY29udGFpbmVyKQogewotICAgIG1fc2Nyb2xsYWJsZUNvbnRhaW5lciA9IG5vZGU7CisgICAg
bV9zY3JvbGxhYmxlQ29udGFpbmVyID0gY29udGFpbmVyOwogfQogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRlLmgKaW5kZXggNGRj
MGRkMzIyOTNiMzkwZWM5YjY3MWNmZTNiMTk4NTdjOTczYzQ3OC4uMTFkY2JkMGRiMTU1ZTA0NTAw
MDU2MjFhMDUxNzQ3NmQyYjkyOTNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBjbGVhcigpOwogCiAgICAgRWxlbWVudCogd2hlZWxFdmVudEVsZW1lbnQoKSB7
IHJldHVybiBtX3doZWVsRXZlbnRFbGVtZW50LmdldCgpOyB9Ci0gICAgdm9pZCBzZXRXaGVlbEV2
ZW50RWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKKyAgICB2b2lkIHNldFdoZWVsRXZlbnRF
bGVtZW50KEVsZW1lbnQqKTsKICAgICBGcmFtZSogZnJhbWUoKSB7IHJldHVybiBtX2ZyYW1lOyB9
CiAgICAgdm9pZCBzZXRGcmFtZShGcmFtZSogZnJhbWUpIHsgbV9mcmFtZSA9IGZyYW1lOyB9CiAK
QEAgLTQ5LDEwICs0OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRXaWRnZXRJc0xhdGNoZWQo
Ym9vbCBpc092ZXJXaWRnZXQpOwogCiAgICAgRWxlbWVudCogcHJldmlvdXNXaGVlbFNjcm9sbGVk
RWxlbWVudCgpIHsgcmV0dXJuIG1fcHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudC5nZXQoKTsg
fQotICAgIHZvaWQgc2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudChSZWZQdHI8RWxlbWVu
dD4mJik7CisgICAgdm9pZCBzZXRQcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50KEVsZW1lbnQq
KTsKICAgICAKICAgICBDb250YWluZXJOb2RlKiBzY3JvbGxhYmxlQ29udGFpbmVyKCkgeyByZXR1
cm4gbV9zY3JvbGxhYmxlQ29udGFpbmVyLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRTY3JvbGxhYmxl
Q29udGFpbmVyKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4pOworICAgIHZvaWQgc2V0U2Nyb2xs
YWJsZUNvbnRhaW5lcihDb250YWluZXJOb2RlKik7CiAgICAgYm9vbCBzdGFydGVkR2VzdHVyZUF0
U2Nyb2xsTGltaXQoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1p
dDsgfQogICAgIHZvaWQgc2V0U3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0KGJvb2wgc3RhcnRl
ZEF0TGltaXQpIHsgbV9zdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQgPSBzdGFydGVkQXRMaW1p
dDsgfQogCkBAIC02MSwxMCArNjEsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RWxlbWVudD4g
bV9wcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50OwogICAgIFJlZlB0cjxDb250YWluZXJOb2Rl
PiBtX3Njcm9sbGFibGVDb250YWluZXI7CiAKLSAgICBGcmFtZSogbV9mcmFtZTsKLSAgICAKLSAg
ICBib29sIG1fd2lkZ2V0SXNMYXRjaGVkOwotICAgIGJvb2wgbV9zdGFydGVkR2VzdHVyZUF0U2Ny
b2xsTGltaXQ7CisgICAgRnJhbWUqIG1fZnJhbWUgeyBudWxscHRyIH07CisKKyAgICBib29sIG1f
d2lkZ2V0SXNMYXRjaGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc3RhcnRlZEdlc3R1cmVBdFNj
cm9sbExpbWl0IHsgZmFsc2UgfTsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2Rl
LmNwcAppbmRleCBjODQ1OWIwNWEwZDE2N2I1YWNlYWQxNDA5NWU5M2Y2ZWQ3N2YyNGQwLi42MWRh
NThhOWRlZWMwZjY4ZDVkYTYyMGUyZDZmZDgwMzE1YTc0YzIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5jcHAKQEAgLTcyLDcg
KzcyLDcgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OnNldFByb3BlcnR5Q2hhbmdlZCh1bnNp
Z25lZCBwcm9wZXJ0eUJpdCkKICAgICBtX3Njcm9sbGluZ1N0YXRlVHJlZS5zZXRIYXNDaGFuZ2Vk
UHJvcGVydGllcygpOwogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xs
aW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVU
cmVlKQorUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9uZUFu
ZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVlKQogewogICAgIGF1dG8gY2xv
bmUgPSB0aGlzLT5jbG9uZShhZG9wdGl2ZVRyZWUpOwogCkBAIC04MCw3ICs4MCw4IEBAIFBhc3NS
ZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZU5vZGU6OmNsb25lQW5kUmVz
ZXQoU2Nyb2xsaW5nU3RhdGVUCiAgICAgcmVzZXRDaGFuZ2VkUHJvcGVydGllcygpOwogCiAgICAg
Y2xvbmVBbmRSZXNldENoaWxkcmVuKGNsb25lLmdldCgpLCBhZG9wdGl2ZVRyZWUpOwotICAgIHJl
dHVybiBXVEZNb3ZlKGNsb25lKTsKKworICAgIHJldHVybiBjbG9uZTsKIH0KIAogdm9pZCBTY3Jv
bGxpbmdTdGF0ZU5vZGU6OmNsb25lQW5kUmVzZXRDaGlsZHJlbihTY3JvbGxpbmdTdGF0ZU5vZGUm
IGNsb25lLCBTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKQEAgLTkyLDE0ICs5Mywx
MyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVBbmRSZXNldENoaWxkcmVuKFNjcm9s
bGluZ1N0YXRlTm9kZSYgY2xvbmUsIFNjcm9sbAogICAgICAgICBjbG9uZS5hcHBlbmRDaGlsZChj
aGlsZC0+Y2xvbmVBbmRSZXNldChhZG9wdGl2ZVRyZWUpKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdT
dGF0ZU5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjaGls
ZE5vZGUpCit2b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6YXBwZW5kQ2hpbGQoUmVmPFNjcm9sbGlu
Z1N0YXRlTm9kZT4mJiBjaGlsZE5vZGUpCiB7CiAgICAgY2hpbGROb2RlLT5zZXRQYXJlbnQodGhp
cyk7CiAKICAgICBpZiAoIW1fY2hpbGRyZW4pCiAgICAgICAgIG1fY2hpbGRyZW4gPSBzdGQ6Om1h
a2VfdW5pcXVlPFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPj4+KCk7Ci0KLSAgICBt
X2NoaWxkcmVuLT5hcHBlbmQoY2hpbGROb2RlKTsKKyAgICBtX2NoaWxkcmVuLT5hcHBlbmQoV1RG
TW92ZShjaGlsZE5vZGUpKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OnNldExheWVy
KGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIGxheWVyUmVwcmVzZW50YXRpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5oCmluZGV4
IGJmYWQxYzQ1ZTBkNzFmOWJhN2MyYmMwODIzZjExYmU0NjhkNjllYzAuLjA4N2Q2MTgyOWFkZTU0
NjEwNjEyMDU3NWJkNDFhMTY4MGViYzFkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5oCkBAIC0yMDYsNyArMjA2LDcgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNPdmVyZmxvd1Njcm9sbGluZ05vZGUoKSBjb25zdCB7IHJldHVybiBt
X25vZGVUeXBlID09IE92ZXJmbG93U2Nyb2xsaW5nTm9kZTsgfQogCiAgICAgdmlydHVhbCBSZWY8
U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9uZShTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJl
ZSkgPSAwOwotICAgIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9uZUFuZFJlc2V0
KFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVlKTsKKyAgICBSZWY8U2Nyb2xsaW5nU3Rh
dGVOb2RlPiBjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVlKTsK
ICAgICB2b2lkIGNsb25lQW5kUmVzZXRDaGlsZHJlbihTY3JvbGxpbmdTdGF0ZU5vZGUmLCBTY3Jv
bGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSk7CiAKICAgICBlbnVtIHsKQEAgLTIzOCw3ICsy
MzgsNyBAQCBwdWJsaWM6CiAKICAgICBWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4+
KiBjaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW4uZ2V0KCk7IH0KIAotICAgIHZv
aWQgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+KTsKKyAgICB2b2lk
IGFwcGVuZENoaWxkKFJlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+JiYpOwogCiAgICAgU3RyaW5nIHNj
cm9sbGluZ1N0YXRlVHJlZUFzVGV4dCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcAppbmRleCA5OGI2Y2FkY2I0
YzM1MWNkMmQ3NjY2NDY1NzNlMzg1YTczMmZjMTQyLi4wYmJjMWI3MzM4MjcxOWI2MjU4ZDExZDA0
OTQzM2UzMjk4N2EzZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgdm9pZCBTY3JvbGxp
bmdTdGF0ZVRyZWU6OnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVzKGJvb2wgY2hhbmdlZFByb3BlcnRp
ZXMpCiAjZW5kaWYKIH0KIAotUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGlu
Z1N0YXRlVHJlZTo6Y3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xs
aW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRl
VHJlZTo6Y3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9k
ZUlEIG5vZGVJRCkKIHsKICAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2FzZSBGaXhlZE5v
ZGU6CkBAIC04MCw3ICs4MCw3IEBAIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3Jv
bGxpbmdTdGF0ZVRyZWU6OmNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUKICAgICAgICAgcmV0
dXJuIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOjpjcmVhdGUoKnRoaXMsIG5v
ZGVJRCk7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBu
b2RlSUQpOwogfQogCiBib29sIFNjcm9sbGluZ1N0YXRlVHJlZTo6bm9kZVR5cGVBbmRQYXJlbnRN
YXRjaChTY3JvbGxpbmdTdGF0ZU5vZGUmIG5vZGUsIFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBl
LCBTY3JvbGxpbmdOb2RlSUQgcGFyZW50SUQpIGNvbnN0CkBAIC0xMjksMTMgKzEyOSwxMyBAQCBT
Y3JvbGxpbmdOb2RlSUQgU2Nyb2xsaW5nU3RhdGVUcmVlOjphdHRhY2hOb2RlKFNjcm9sbGluZ05v
ZGVUeXBlIG5vZGVUeXBlLCBTY3JvbAogICAgICAgICBpZiAobm9kZVR5cGUgPT0gRnJhbWVTY3Jv
bGxpbmdOb2RlICYmIHBhcmVudElEKSB7CiAgICAgICAgICAgICBpZiAoYXV0byBvcnBoYW5lZE5v
ZGUgPSBtX29ycGhhbmVkU3ViZnJhbWVOb2Rlcy50YWtlKG5ld05vZGVJRCkpIHsKICAgICAgICAg
ICAgICAgICBuZXdOb2RlID0gb3JwaGFuZWROb2RlLmdldCgpOwotICAgICAgICAgICAgICAgIHBh
cmVudC0+YXBwZW5kQ2hpbGQoV1RGTW92ZShvcnBoYW5lZE5vZGUpKTsKKyAgICAgICAgICAgICAg
ICBwYXJlbnQtPmFwcGVuZENoaWxkKG9ycGhhbmVkTm9kZS5yZWxlYXNlTm9uTnVsbCgpKTsKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGlmICghbmV3Tm9kZSkgewogICAgICAg
ICAgICAgYXV0byBzdGF0ZU5vZGUgPSBjcmVhdGVOb2RlKG5vZGVUeXBlLCBuZXdOb2RlSUQpOwot
ICAgICAgICAgICAgbmV3Tm9kZSA9IHN0YXRlTm9kZS5nZXQoKTsKKyAgICAgICAgICAgIG5ld05v
ZGUgPSBzdGF0ZU5vZGUucHRyKCk7CiAgICAgICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKFdU
Rk1vdmUoc3RhdGVOb2RlKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xODIsNyArMTgyLDcgQEAg
c3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4gU2Nyb2xsaW5nU3RhdGVUcmVlOjpj
b21taXQoTGF5ZXJSZXByZXNlbnRhdGkKICAgICB0cmVlU3RhdGVDbG9uZS0+c2V0UHJlZmVycmVk
TGF5ZXJSZXByZXNlbnRhdGlvbihwcmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9uKTsKIAogICAg
IGlmIChtX3Jvb3RTdGF0ZU5vZGUpCi0gICAgICAgIHRyZWVTdGF0ZUNsb25lLT5zZXRSb290U3Rh
dGVOb2RlKHN0YXRpY19wb2ludGVyX2Nhc3Q8U2Nyb2xsaW5nU3RhdGVGcmFtZVNjcm9sbGluZ05v
ZGU+KG1fcm9vdFN0YXRlTm9kZS0+Y2xvbmVBbmRSZXNldCgqdHJlZVN0YXRlQ2xvbmUpKSk7Cisg
ICAgICAgIHRyZWVTdGF0ZUNsb25lLT5zZXRSb290U3RhdGVOb2RlKHN0YXRpY19yZWZlcmVuY2Vf
Y2FzdDxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4obV9yb290U3RhdGVOb2RlLT5j
bG9uZUFuZFJlc2V0KCp0cmVlU3RhdGVDbG9uZSkpKTsKIAogICAgIC8vIENvcHkgdGhlIElEcyBv
ZiB0aGUgbm9kZXMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZCBzaW5jZSB0aGUgbGFzdCBjb21taXQg
aW50byB0aGUgY2xvbmUuCiAgICAgdHJlZVN0YXRlQ2xvbmUtPm1fbm9kZXNSZW1vdmVkU2luY2VM
YXN0Q29tbWl0LnN3YXAobV9ub2Rlc1JlbW92ZWRTaW5jZUxhc3RDb21taXQpOwpAQCAtMjExLDcg
KzIxMSw4IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVUcmVlOjpyZW1vdmVOb2RlQW5kQWxsRGVzY2Vu
ZGFudHMoU2Nyb2xsaW5nU3RhdGVOb2RlKiBub2RlLCBTCiAgICAgaWYgKG5vZGUgPT0gbV9yb290
U3RhdGVOb2RlKQogICAgICAgICBtX3Jvb3RTdGF0ZU5vZGUgPSBudWxscHRyOwogICAgIGVsc2Ug
aWYgKHBhcmVudCkgewotICAgICAgICBBU1NFUlQocGFyZW50LT5jaGlsZHJlbigpICYmIHBhcmVu
dC0+Y2hpbGRyZW4oKS0+ZmluZChub2RlKSAhPSBub3RGb3VuZCk7CisgICAgICAgIEFTU0VSVChw
YXJlbnQtPmNoaWxkcmVuKCkpOworICAgICAgICBBU1NFUlQocGFyZW50LT5jaGlsZHJlbigpLT5m
aW5kKG5vZGUpICE9IG5vdEZvdW5kKTsKICAgICAgICAgaWYgKGF1dG8gY2hpbGRyZW4gPSBwYXJl
bnQtPmNoaWxkcmVuKCkpIHsKICAgICAgICAgICAgIHNpemVfdCBpbmRleCA9IGNoaWxkcmVuLT5m
aW5kKG5vZGUpOwogICAgICAgICAgICAgaWYgKGluZGV4ICE9IG5vdEZvdW5kKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuaAppbmRleCAz
MWY2ZGI3OWU3YjQwYzFiMzJmMmVhN2NkY2ZmYzQ4ZjE3YmZjZTMxLi4zYjI1NjE1MWFkNzQ0YmNm
MDIzNGQ3MmQ0ZmQzYTBjNzVkNDM2OTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuaApAQCAtNzQsMTcgKzc0LDE0IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFByZWZlcnJlZExheWVyUmVwcmVzZW50YXRpb24oTGF5ZXJSZXByZXNl
bnRhdGlvbjo6VHlwZSByZXByZXNlbnRhdGlvbikgeyBtX3ByZWZlcnJlZExheWVyUmVwcmVzZW50
YXRpb24gPSByZXByZXNlbnRhdGlvbjsgfQogCiBwcml2YXRlOgotICAgIHZvaWQgc2V0Um9vdFN0
YXRlTm9kZShQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPiByb290
U3RhdGVOb2RlKSB7IG1fcm9vdFN0YXRlTm9kZSA9IHJvb3RTdGF0ZU5vZGU7IH0KKyAgICB2b2lk
IHNldFJvb3RTdGF0ZU5vZGUoUmVmPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPiYm
IHJvb3RTdGF0ZU5vZGUpIHsgbV9yb290U3RhdGVOb2RlID0gV1RGTW92ZShyb290U3RhdGVOb2Rl
KTsgfQogICAgIHZvaWQgYWRkTm9kZShTY3JvbGxpbmdTdGF0ZU5vZGUqKTsKIAotICAgIFBhc3NS
ZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBT
Y3JvbGxpbmdOb2RlSUQpOworICAgIFJlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+IGNyZWF0ZU5vZGUo
U2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CiAKICAgICBib29sIG5vZGVUeXBl
QW5kUGFyZW50TWF0Y2goU2Nyb2xsaW5nU3RhdGVOb2RlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNj
cm9sbGluZ05vZGVJRCBwYXJlbnRJRCkgY29uc3Q7CiAKLSAgICBlbnVtIGNsYXNzIFN1YmZyYW1l
Tm9kZVJlbW92YWwgewotICAgICAgICBEZWxldGUsCi0gICAgICAgIE9ycGhhbgotICAgIH07Cisg
ICAgZW51bSBjbGFzcyBTdWJmcmFtZU5vZGVSZW1vdmFsIHsgRGVsZXRlLCBPcnBoYW4gfTsKICAg
ICB2b2lkIHJlbW92ZU5vZGVBbmRBbGxEZXNjZW5kYW50cyhTY3JvbGxpbmdTdGF0ZU5vZGUqLCBT
dWJmcmFtZU5vZGVSZW1vdmFsID0gU3ViZnJhbWVOb2RlUmVtb3ZhbDo6RGVsZXRlKTsKIAogICAg
IHZvaWQgcmVjdXJzaXZlTm9kZVdpbGxCZVJlbW92ZWQoU2Nyb2xsaW5nU3RhdGVOb2RlKiBjdXJy
Tm9kZSwgU3ViZnJhbWVOb2RlUmVtb3ZhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmluZGV4IGQwMGVjNWRkOWIxYjdkNGE2ZDYxYmY1ZDEz
OWI0OTkyZTYzN2Q4ZWYuLjQwYmNjNjNmZjhjMzM3YWZiYzEwYmQ0Yjk5ZWIxYzAwM2Y0NzUwYzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3Bw
CkBAIC0xNzksNyArMTc5LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjp1cGRhdGVUcmVlRnJvbVN0
YXRlTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUqIHN0YXRlTm9kZSwKICAgICAgICAgaWYg
KHBhcmVudEl0ICE9IG1fbm9kZU1hcC5lbmQoKSkgewogICAgICAgICAgICAgU2Nyb2xsaW5nVHJl
ZU5vZGUqIHBhcmVudCA9IHBhcmVudEl0LT52YWx1ZTsKICAgICAgICAgICAgIG5vZGUtPnNldFBh
cmVudChwYXJlbnQpOwotICAgICAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZChub2RlKTsKKyAg
ICAgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoKm5vZGUpOwogICAgICAgICB9CiAgICAgfQog
CkBAIC0xODksNyArMTg5LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjp1cGRhdGVUcmVlRnJvbVN0
YXRlTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUqIHN0YXRlTm9kZSwKICAgICBpZiAoYXV0
byBub2RlQ2hpbGRyZW4gPSBub2RlLT5jaGlsZHJlbigpKSB7CiAgICAgICAgIGZvciAoYXV0byYg
Y2hpbGRTY3JvbGxpbmdOb2RlIDogKm5vZGVDaGlsZHJlbikgewogICAgICAgICAgICAgY2hpbGRT
Y3JvbGxpbmdOb2RlLT5zZXRQYXJlbnQobnVsbHB0cik7Ci0gICAgICAgICAgICBvcnBoYW5Ob2Rl
cy5hZGQoY2hpbGRTY3JvbGxpbmdOb2RlLT5zY3JvbGxpbmdOb2RlSUQoKSwgY2hpbGRTY3JvbGxp
bmdOb2RlKTsKKyAgICAgICAgICAgIG9ycGhhbk5vZGVzLmFkZChjaGlsZFNjcm9sbGluZ05vZGUt
PnNjcm9sbGluZ05vZGVJRCgpLCBjaGlsZFNjcm9sbGluZ05vZGUuZ2V0KCkpOwogICAgICAgICB9
CiAgICAgICAgIG5vZGVDaGlsZHJlbi0+Y2xlYXIoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggNjczNGI1M2FkYWI1YzM5OWI5
MzNhYzM3N2VkZTc0YjhjMmEwNWE0ZC4uYWFmMmQ0NzhiYmI4MDA5NWY1NTk2YzkxNDYwNmUyYjli
NWQ4ZjhjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWUuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1haW5GcmFtZVBp
blN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBib29sIHBpbm5lZFRvVGhlUmlnaHQsIGJvb2wg
cGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVkVG9UaGVCb3R0b20pOwogCi0gICAgdmlydHVhbCBQ
YXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3Jv
bGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSA9IDA7CisgICAgdmlydHVhbCBSZWY8U2Ny
b2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBl
LCBTY3JvbGxpbmdOb2RlSUQpID0gMDsKIAogICAgIC8vIENhbGxlZCBhZnRlciBhIHNjcm9sbGlu
ZyB0cmVlIG5vZGUgaGFzIGhhbmRsZWQgYSBzY3JvbGwgYW5kIHVwZGF0ZWQgaXRzIGxheWVycy4K
ICAgICAvLyBVcGRhdGVzIEZyYW1lVmlldy9SZW5kZXJMYXllciBzY3JvbGxpbmcgc3RhdGUgYW5k
IEdyYXBoaWNzTGF5ZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZU5vZGUuY3BwCmluZGV4IGRlYjc4MWExYzFmOWZkZDAzM2M5OTk1Yzk5MjFj
MDcyOTkyNjlhMmEuLjBmNjYxNmQwZjNkYzM1Nzg2MzA2ZmQ0NjZmN2E2OTY0MTViMmVlZTYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9k
ZS5jcHAKQEAgLTQ1LDIyICs0NSwyMSBAQCBTY3JvbGxpbmdUcmVlTm9kZTo6flNjcm9sbGluZ1Ry
ZWVOb2RlKCkKIHsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlTm9kZTo6YXBwZW5kQ2hpbGQoUGFz
c1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gY2hpbGROb2RlKQordm9pZCBTY3JvbGxpbmdUcmVl
Tm9kZTo6YXBwZW5kQ2hpbGQoUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiYmIGNoaWxkTm9kZSkKIHsK
ICAgICBjaGlsZE5vZGUtPnNldFBhcmVudCh0aGlzKTsKIAogICAgIGlmICghbV9jaGlsZHJlbikK
LSAgICAgICAgbV9jaGlsZHJlbiA9IHN0ZDo6bWFrZV91bmlxdWU8U2Nyb2xsaW5nVHJlZUNoaWxk
cmVuVmVjdG9yPigpOwotCi0gICAgbV9jaGlsZHJlbi0+YXBwZW5kKGNoaWxkTm9kZSk7CisgICAg
ICAgIG1fY2hpbGRyZW4gPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5n
VHJlZU5vZGU+Pj4oKTsKKyAgICBtX2NoaWxkcmVuLT5hcHBlbmQoV1RGTW92ZShjaGlsZE5vZGUp
KTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlTm9kZTo6cmVtb3ZlQ2hpbGQoU2Nyb2xsaW5nVHJl
ZU5vZGUqIG5vZGUpCit2b2lkIFNjcm9sbGluZ1RyZWVOb2RlOjpyZW1vdmVDaGlsZChTY3JvbGxp
bmdUcmVlTm9kZSYgbm9kZSkKIHsKICAgICBpZiAoIW1fY2hpbGRyZW4pCiAgICAgICAgIHJldHVy
bjsKIAotICAgIHNpemVfdCBpbmRleCA9IG1fY2hpbGRyZW4tPmZpbmQobm9kZSk7CisgICAgc2l6
ZV90IGluZGV4ID0gbV9jaGlsZHJlbi0+ZmluZCgmbm9kZSk7CiAKICAgICAvLyBUaGUgaW5kZXgg
d2lsbCBiZSBub3RGb3VuZCBpZiB0aGUgbm9kZSB0byByZW1vdmUgaXMgYSBkZWVwZXItdGhhbi0x
LWxldmVsIGRlc2NlbmRhbnQgb3IKICAgICAvLyBpZiBub2RlIGlzIHRoZSByb290IHN0YXRlIG5v
ZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5v
ZGUuaAppbmRleCAzZTg2ZTNkNDc4ZDM0MDY5MzU5ZWFhNWM2YjljZmJhYzY3NWNlZDA1Li4yZTE2
MzI0NmJiOTZlMzNmZWY2MmFkYTcxYjQxYTIxMzkyMTI3OTMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKQEAgLTYwLDExICs2MCwx
MCBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsaW5nVHJlZU5vZGUqIHBhcmVudCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGFyZW50OyB9CiAgICAgdm9pZCBzZXRQYXJlbnQoU2Nyb2xsaW5nVHJlZU5vZGUqIHBh
cmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsgfQogCi0gICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRy
PFNjcm9sbGluZ1RyZWVOb2RlPj4gU2Nyb2xsaW5nVHJlZUNoaWxkcmVuVmVjdG9yOwotICAgIFNj
cm9sbGluZ1RyZWVDaGlsZHJlblZlY3RvciogY2hpbGRyZW4oKSB7IHJldHVybiBtX2NoaWxkcmVu
LmdldCgpOyB9Ci0gICAgCi0gICAgdm9pZCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPFNjcm9sbGlu
Z1RyZWVOb2RlPik7Ci0gICAgdm9pZCByZW1vdmVDaGlsZChTY3JvbGxpbmdUcmVlTm9kZSopOwor
ICAgIFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+PiogY2hpbGRyZW4oKSB7IHJldHVy
biBtX2NoaWxkcmVuLmdldCgpOyB9CisKKyAgICB2b2lkIGFwcGVuZENoaWxkKFJlZjxTY3JvbGxp
bmdUcmVlTm9kZT4mJik7CisgICAgdm9pZCByZW1vdmVDaGlsZChTY3JvbGxpbmdUcmVlTm9kZSYp
OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkdW1wKFRleHRTdHJlYW0mLCBTY3JvbGxpbmdT
dGF0ZVRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7CiAKQEAgLTcyLDcgKzcxLDcgQEAgcHJvdGVj
dGVkOgogICAgIFNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxpbmdOb2Rl
VHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKICAgICBTY3JvbGxpbmdUcmVlJiBzY3JvbGxpbmdUcmVl
KCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxpbmdUcmVlOyB9CiAKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8U2Nyb2xsaW5nVHJlZUNoaWxkcmVuVmVjdG9yPiBtX2NoaWxkcmVuOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPj4+IG1fY2hpbGRyZW47CiAK
ICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZHVtcFByb3BlcnRpZXMoVGV4dFN0cmVh
bSYsIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5j
cHAKaW5kZXggYmNiNDhlNDk1YzFiMGI4OWU3NWE3YWEzM2U4NWU1OTRkN2M1ZTY4NS4uZjY2NGVk
M2FjM2JlNTM4ZGZmMmZlNTg4MDJhMDk3N2FhMGFhMDg5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCkBAIC0z
OSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotVGhyZWFkZWRTY3JvbGxpbmdU
cmVlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciogc2Ny
b2xsaW5nQ29vcmRpbmF0b3IpCi0gICAgOiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKHNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKQorVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpUaHJlYWRlZFNjcm9sbGluZ1Ry
ZWUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYgc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCisgICAg
OiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKCZzY3JvbGxpbmdDb29yZGluYXRvcikKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxp
bmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGlu
Z1RyZWUuaAppbmRleCA3MzI1NDA1OWMyZDc3MDIwNWNlZmRiZDE1MzBhYjI3OTA0YWE3MzYzLi42
ZDFkNDlkNjdlY2E1ZmE4ZDUyYTg1OGVlY2Y1ZjkzZWU5Yzk3MGRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZSgpIG92ZXJyaWRlOwog
CiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlKEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IqKTsKKyAgICBleHBsaWNpdCBUaHJlYWRlZFNjcm9sbGluZ1RyZWUo
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOwogCiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9k
ZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0
aW9uLCBjb25zdCBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdp
biwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xheWVyUG9zaXRpb25B
Y3Rpb246OlN5bmMpIG92ZXJyaWRlOwogICAgIHZvaWQgY3VycmVudFNuYXBQb2ludEluZGljZXNE
aWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2
ZXJ0aWNhbCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9pb3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JJT1MubW0KaW5kZXggNGNjZjQ0NDI5
Zjk5ZTEwOWY4NzU1Yjk0NjAxMjZiYmNhN2U1YjllYS4uNmIxNjg1NzNiNTYwMzBiM2FmM2Q5NDAy
YTQ0YzcwZTg5ODJlOWIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ0Nvb3JkaW5hdG9ySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdDb29yZGluYXRvcklPUy5tbQpAQCAtNTIsNyArNTIs
NyBAQCBTY3JvbGxpbmdDb29yZGluYXRvcklPUzo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JJT1MoUGFn
ZSogcGFnZSkKICAgICA6IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IocGFnZSkKICAgICAsIG1f
c2Nyb2xsaW5nU3RhdGVUcmVlQ29tbWl0dGVyVGltZXIoKnRoaXMsICZTY3JvbGxpbmdDb29yZGlu
YXRvcklPUzo6Y29tbWl0VHJlZVN0YXRlKQogewotICAgIHNldFNjcm9sbGluZ1RyZWUoU2Nyb2xs
aW5nVHJlZUlPUzo6Y3JlYXRlKHRoaXMpKTsKKyAgICBzZXRTY3JvbGxpbmdUcmVlKFNjcm9sbGlu
Z1RyZWVJT1M6OmNyZWF0ZSgqdGhpcykpOwogfQogCiBTY3JvbGxpbmdDb29yZGluYXRvcklPUzo6
flNjcm9sbGluZ0Nvb3JkaW5hdG9ySU9TKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNwcAppbmRleCAxMGIzZjg3MzQ1ZmRh
NDNjY2RmZTljMTVmZTQxN2Y0NmFmNTU0NWVhLi4xZjAzZTY4NmU5Zjg3NThlYzY1YTliNmY5YjYx
N2ViMmY4NjhjNjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9p
b3MvU2Nyb2xsaW5nVHJlZUlPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1SZWY8U2Nyb2xsaW5nVHJlZUlPUz4gU2Nyb2xsaW5nVHJlZUlPUzo6
Y3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQor
UmVmPFNjcm9sbGluZ1RyZWVJT1M+IFNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZShBc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRvcikKIHsKICAgICByZXR1cm4gYWRv
cHRSZWYoKm5ldyBTY3JvbGxpbmdUcmVlSU9TKHNjcm9sbGluZ0Nvb3JkaW5hdG9yKSk7CiB9CiAK
LVNjcm9sbGluZ1RyZWVJT1M6OlNjcm9sbGluZ1RyZWVJT1MoQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCi0gICAgOiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9y
KHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorU2Nyb2xsaW5nVHJlZUlPUzo6U2Nyb2xsaW5nVHJlZUlP
UyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRvcikKKyAgICA6
IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IoJnNjcm9sbGluZ0Nvb3JkaW5hdG9yKQogewogfQogCkBA
IC04MywyMCArODMsMjEgQEAgdm9pZCBTY3JvbGxpbmdUcmVlSU9TOjpzY3JvbGxpbmdUcmVlTm9k
ZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdAogICAgIH0pOwogfQogCi1Q
YXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlSU9TOjpjcmVhdGVTY3Jv
bGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlE
IG5vZGVJRCkKK1JlZjxTY3JvbGxpbmdUcmVlTm9kZT4gU2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRl
U2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05v
ZGVJRCBub2RlSUQpCiB7CiAgICAgc3dpdGNoIChub2RlVHlwZSkgewogICAgIGNhc2UgRnJhbWVT
Y3JvbGxpbmdOb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZUlPUzo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIGNhc2UgT3ZlcmZsb3dTY3JvbGxp
bmdOb2RlOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRml4ZWROb2RlOgogICAgICAgICByZXR1
cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIGNh
c2UgU3RpY2t5Tm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjpj
cmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgfQotICAgIHJldHVybiBudWxscHRyOworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpj
cmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKIEZsb2F0UmVjdCBTY3JvbGxpbmdUcmVlSU9TOjpm
aXhlZFBvc2l0aW9uUmVjdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaAppbmRleCAxYTlhYWUxYjQwYzgxMjY4MzQ0ODQxY2U3
YjMwNzVlZjcwYTdlNTU0Li5hZWE2OWIzOWY1OWM5NjE1ZDE4MGFhZWE2ZWI4OTcyNTljZGFkOTQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5n
VHJlZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxp
bmdUcmVlSU9TLmgKQEAgLTI5LDM1ICsyOSwzMSBAQAogCiAjaW5jbHVkZSAiU2Nyb2xsaW5nU3Rh
dGVUcmVlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNz
UmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiAKLWNsYXNzIFNjcm9sbGluZ1Ry
ZWVJT1MgOiBwdWJsaWMgU2Nyb2xsaW5nVHJlZSB7CitjbGFzcyBTY3JvbGxpbmdUcmVlSU9TIGZp
bmFsIDogcHVibGljIFNjcm9sbGluZ1RyZWUgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U2Ny
b2xsaW5nVHJlZUlPUz4gY3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqKTsKKyAgICBz
dGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVJT1M+IGNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5h
dG9yJik7CiAgICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZUlPUygpOwogCi0gICAgLy8gTm8gd2hl
ZWwgZXZlbnRzIG9uIGlPUwotICAgIHZvaWQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9y
bVdoZWVsRXZlbnQmKSBvdmVycmlkZSB7IH0KLSAgICBFdmVudFJlc3VsdCB0cnlUb0hhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGUgeyByZXR1cm4gRGlk
Tm90SGFuZGxlRXZlbnQ7IH0KLQotICAgIHZvaWQgaW52YWxpZGF0ZSgpIG92ZXJyaWRlOwotCiBw
cml2YXRlOgotICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVJT1MoQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvciopOwotICAgIGJvb2wgaXNTY3JvbGxpbmdUcmVlSU9TKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQorICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVJT1MoQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvciYpOwogCi0gICAgUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4g
Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJ
RCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1Njcm9sbGluZ1RyZWVJT1MoKSBjb25zdCBmaW5hbCB7
IHJldHVybiB0cnVlOyB9CiAKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNj
cm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNvbnN0IHN0
ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6U3luYykg
b3ZlcnJpZGU7CisgICAgLy8gTm8gd2hlZWwgZXZlbnRzIG9uIGlPUworICAgIHZvaWQgaGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBmaW5hbCB7IH0KKyAgICBFdmVu
dFJlc3VsdCB0cnlUb0hhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikg
ZmluYWwgeyByZXR1cm4gRGlkTm90SGFuZGxlRXZlbnQ7IH0KIAotICAgIHZvaWQgY3VycmVudFNu
YXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25l
ZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CisgICAgdm9pZCBpbnZh
bGlkYXRlKCkgZmluYWw7CiAKLSAgICBGbG9hdFJlY3QgZml4ZWRQb3NpdGlvblJlY3QoKSBvdmVy
cmlkZTsKKyAgICBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2Rl
KFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIGZpbmFsOworICAgIHZvaWQgc2Ny
b2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qgc3RkOjpvcHRpb25hbDxGbG9hdFBvaW50PiYgbGF5b3V0
Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBTY3JvbGxpbmdM
YXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBmaW5hbDsKKyAgICB2b2lkIGN1cnJlbnRTbmFwUG9p
bnRJbmRpY2VzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9y
aXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGZpbmFsOworICAgIEZsb2F0UmVjdCBmaXhlZFBv
c2l0aW9uUmVjdCgpIGZpbmFsOwogCiAgICAgUmVmUHRyPEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3I+IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCmlu
ZGV4IGQ0M2Q5NGIyNDdhNmU0ZjkzOTc0MTU4MjYxOTdjMmIwYWRmMDcxNDguLjg2MTE4YjQ0NTAw
Nzk0NmNmMGZhNzgzYzVkNTQzZTExOWU5ZWJmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0K
QEAgLTU0LDcgKzU0LDcgQEAgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OlNjcm9sbGluZ0Nvb3Jk
aW5hdG9yTWFjKFBhZ2UqIHBhZ2UpCiAgICAgOiBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKHBh
Z2UpCiAgICAgLCBtX3Njcm9sbGluZ1N0YXRlVHJlZUNvbW1pdHRlclRpbWVyKCp0aGlzLCAmU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWM6OmNvbW1pdFRyZWVTdGF0ZSkKIHsKLSAgICBzZXRTY3JvbGxp
bmdUcmVlKFNjcm9sbGluZ1RyZWVNYWM6OmNyZWF0ZSh0aGlzKSk7CisgICAgc2V0U2Nyb2xsaW5n
VHJlZShTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGUoKnRoaXMpKTsKIH0KIAogU2Nyb2xsaW5nQ29v
cmRpbmF0b3JNYWM6On5TY3JvbGxpbmdDb29yZGluYXRvck1hYygpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5jcHAKaW5kZXgg
NzBkYmMwNmNmMDEzYmYzMWI4ZGEwN2ZkZTBkMzk4OGM2MWI0ZDgwYS4uODk5ZjFlOTAxNjdkYjhj
OGVhMWZhNmQ4ZWFlZjRjNzA0MTEyMDU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNwcApAQCAtMzQsMzAgKzM0LDMx
IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8U2Nyb2xsaW5nVHJlZU1hYz4g
U2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9s
bGluZ0Nvb3JkaW5hdG9yKQorUmVmPFNjcm9sbGluZ1RyZWVNYWM+IFNjcm9sbGluZ1RyZWVNYWM6
OmNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRvcikK
IHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTY3JvbGxpbmdUcmVlTWFjKHNjcm9sbGluZ0Nv
b3JkaW5hdG9yKSk7CiB9CiAKLVNjcm9sbGluZ1RyZWVNYWM6OlNjcm9sbGluZ1RyZWVNYWMoQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCitTY3JvbGxpbmdU
cmVlTWFjOjpTY3JvbGxpbmdUcmVlTWFjKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImIHNjcm9s
bGluZ0Nvb3JkaW5hdG9yKQogICAgIDogVGhyZWFkZWRTY3JvbGxpbmdUcmVlKHNjcm9sbGluZ0Nv
b3JkaW5hdG9yKQogewogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBTY3JvbGxp
bmdUcmVlTWFjOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2Rl
VHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxTY3JvbGxpbmdUcmVlTm9kZT4gU2Ny
b2xsaW5nVHJlZU1hYzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUg
bm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7CiAgICAgc3dpdGNoIChub2RlVHlw
ZSkgewogICAgIGNhc2UgRnJhbWVTY3JvbGxpbmdOb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAg
IGNhc2UgT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRml4
ZWROb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0
aGlzLCBub2RlSUQpOwogICAgIGNhc2UgU3RpY2t5Tm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9s
bGluZ1RyZWVTdGlja3lOb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgfQotICAgIHJl
dHVybiBudWxscHRyOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTY3Jv
bGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKICNlbmRpZiAv
LyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaAppbmRleCA0
M2E0NmI3N2U4NWI0NWZmNjFjYjJiOWE2YmJiMzJjMmMwZWZmYTU3Li40OTlmYzNmZjE3YmNmOTQ5
MGE4MzcyMjY0MmY2YmM4M2JlMDBiN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmgKQEAgLTMxLDE0ICszMSwxNCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNjcm9sbGluZ1RyZWVNYWMgOiBwdWJsaWMg
VGhyZWFkZWRTY3JvbGxpbmdUcmVlIHsKK2NsYXNzIFNjcm9sbGluZ1RyZWVNYWMgZmluYWwgOiBw
dWJsaWMgVGhyZWFkZWRTY3JvbGxpbmdUcmVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNj
cm9sbGluZ1RyZWVNYWM+IGNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKik7CisgICAg
c3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlTWFjPiBjcmVhdGUoQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvciYpOwogCi0gICAgUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xs
aW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7
Ci0gICAgCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVNYWMoQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvciopOworICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVNYWMoQXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvciYpOworCisgICAgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVh
dGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSBm
aW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCmluZGV4IDYxNjA3MDkwZDI2Yzk5YzFhZTI1M2Y1YTRl
YzVkNjZkNTFjM2Q2MTUuLjMyNDMwYzQ3Yjg3ZDFjMDg4NDQ5YWNiZGNkMGIzNjQ3MTNmMDk0MmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNwcApAQCAtODEs
NyArODEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lkZ2V0RGlkSGFuZGxlV2hlZWxFdmVudChj
b25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbgogICAgIHJldHVybiBkb3duY2FzdDxG
cmFtZVZpZXc+KHdpZGdldCkuZnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oYW5kbGVXaGVlbEV2ZW50
KHdoZWVsRXZlbnQpOwogfQogCi1ib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRy
b2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZv
cm1Db250cm9scyhLZXlib2FyZEV2ZW50JikgY29uc3QKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0K
QEAgLTkyLDEwICs5MiwxMiBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZXZlbnRBY3RpdmF0ZWRWaWV3
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQpIGNvbnN0CiB9CiAKICNpZiBFTkFCTEUo
RFJBR19TVVBQT1JUKQotUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3Jl
YXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAorCitSZWY8RGF0YVRyYW5zZmVyPiBFdmVu
dEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKIHsKICAgICByZXR1
cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwogfQorCiAjZW5kaWYKIAog
dm9pZCBFdmVudEhhbmRsZXI6OmZvY3VzRG9jdW1lbnRWaWV3KCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vy
c29yLmgKaW5kZXggNjhkMDY5ZDNhNDM4NDY4OGRmMmRlYzg4ZTgzNDA0OWY1MzJiMTExZC4uMDQ2
ODVhMjVhN2NjYzI4ZTc3M2ZhYTIzNTUyMWQ3YzYxZGQzZTU3ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q3Vyc29yLmgKQEAgLTU0LDI0ICs1NCwyOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJ
bWFnZTsKIAogI2lmIFBMQVRGT1JNKFdJTikKKwogY2xhc3MgU2hhcmVkQ3Vyc29yIDogcHVibGlj
IFJlZkNvdW50ZWQ8U2hhcmVkQ3Vyc29yPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTaGFy
ZWRDdXJzb3I+IGNyZWF0ZShIQ1VSU09SIG5hdGl2ZUN1cnNvcikgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTaGFyZWRDdXJzb3IobmF0aXZlQ3Vyc29yKSk7IH0KLSAgICB+U2hhcmVkQ3Vyc29yKCk7
CisgICAgc3RhdGljIFJlZjxTaGFyZWRDdXJzb3I+IGNyZWF0ZShIQ1VSU09SKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCB+U2hhcmVkQ3Vyc29yKCk7CiAgICAgSENVUlNPUiBuYXRpdmVDdXJzb3IoKSBj
b25zdCB7IHJldHVybiBtX25hdGl2ZUN1cnNvcjsgfQorCiBwcml2YXRlOgotICAgIFNoYXJlZEN1
cnNvcihIQ1VSU09SIG5hdGl2ZUN1cnNvcikgOiBtX25hdGl2ZUN1cnNvcihuYXRpdmVDdXJzb3Ip
IHsgfQorICAgIFNoYXJlZEN1cnNvcihIQ1VSU09SKTsKICAgICBIQ1VSU09SIG1fbmF0aXZlQ3Vy
c29yOwogfTsKLXR5cGVkZWYgUmVmUHRyPFNoYXJlZEN1cnNvcj4gUGxhdGZvcm1DdXJzb3I7CisK
KyNlbmRpZgorCisjaWYgUExBVEZPUk0oV0lOKQordXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBSZWZQ
dHI8U2hhcmVkQ3Vyc29yPjsKICNlbGlmIFVTRShBUFBLSVQpCi10eXBlZGVmIE5TQ3Vyc29yICpQ
bGF0Zm9ybUN1cnNvcjsKK3VzaW5nIFBsYXRmb3JtQ3Vyc29yID0gTlNDdXJzb3IgKjsKICNlbGlm
IFBMQVRGT1JNKEdUSykKLXR5cGVkZWYgR1JlZlB0cjxHZGtDdXJzb3I+IFBsYXRmb3JtQ3Vyc29y
OwordXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBHUmVmUHRyPEdka0N1cnNvcj47CiAjZWxpZiBQTEFU
Rk9STShFRkwpCi10eXBlZGVmIGNvbnN0IGNoYXIqIFBsYXRmb3JtQ3Vyc29yOwotI2Vsc2UKLXR5
cGVkZWYgdm9pZCogUGxhdGZvcm1DdXJzb3I7Cit1c2luZyBQbGF0Zm9ybUN1cnNvciA9IGNvbnN0
IGNoYXIqOwogI2VuZGlmCiAKIGNsYXNzIEN1cnNvciB7CkBAIC0xMjQsNjEgKzEyOCw1MCBAQCBw
dWJsaWM6CiAgICAgICAgIEN1c3RvbQogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgY29uc3QgQ3Vyc29yJiBmcm9tVHlwZShDdXJzb3I6OlR5cGUpOworICAgIEN1cnNvcigpID0g
ZGVmYXVsdDsKIAotICAgIEN1cnNvcigpCiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICAgICAgLy8g
VGhpcyBpcyBhbiBpbnZhbGlkIEN1cnNvciBhbmQgc2hvdWxkIG5ldmVyIGFjdHVhbGx5IGdldCB1
c2VkLgotICAgICAgICA6IG1fdHlwZShzdGF0aWNfY2FzdDxUeXBlPigtMSkpCi0jaWYgRU5BQkxF
KE1PVVNFX0NVUlNPUl9TQ0FMRSkKLSAgICAgICAgLCBtX2ltYWdlU2NhbGVGYWN0b3IoMSkKLSNl
bmRpZgotICAgICAgICAsIG1fcGxhdGZvcm1DdXJzb3IoMCkKLSNlbmRpZiAvLyAhUExBVEZPUk0o
SU9TKQotICAgIHsKLSAgICB9CiAKLSNpZiAhUExBVEZPUk0oSU9TKQorICAgIFdFQkNPUkVfRVhQ
T1JUIHN0YXRpYyBjb25zdCBDdXJzb3ImIGZyb21UeXBlKEN1cnNvcjo6VHlwZSk7CisKICAgICBX
RUJDT1JFX0VYUE9SVCBDdXJzb3IoSW1hZ2UqLCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCk7Ci0g
ICAgV0VCQ09SRV9FWFBPUlQgQ3Vyc29yKGNvbnN0IEN1cnNvciYpOwogCiAjaWYgRU5BQkxFKE1P
VVNFX0NVUlNPUl9TQ0FMRSkKICAgICAvLyBIb3Qgc3BvdCBpcyBpbiBpbWFnZSBwaXhlbHMuCiAg
ICAgV0VCQ09SRV9FWFBPUlQgQ3Vyc29yKEltYWdlKiwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3Qs
IGZsb2F0IGltYWdlU2NhbGVGYWN0b3IpOwogI2VuZGlmCiAKLSAgICBXRUJDT1JFX0VYUE9SVCB+
Q3Vyc29yKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ3Vyc29yJiBvcGVyYXRvcj0oY29uc3QgQ3Vy
c29yJik7Ci0KICAgICBleHBsaWNpdCBDdXJzb3IoVHlwZSk7Ci0gICAgVHlwZSB0eXBlKCkgY29u
c3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPj0gMCAmJiBtX3R5cGUgPD0gQ3VzdG9t
KTsKLSAgICAgICAgcmV0dXJuIG1fdHlwZTsKLSAgICB9CisKKyAgICBUeXBlIHR5cGUoKSBjb25z
dDsKICAgICBJbWFnZSogaW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlLmdldCgpOyB9CiAg
ICAgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QoKSBjb25zdCB7IHJldHVybiBtX2hvdFNwb3Q7IH0K
KwogI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCiAgICAgLy8gSW1hZ2Ugc2NhbGUgaW4g
aW1hZ2UgcGl4ZWxzIHBlciBsb2dpY2FsIChVSSkgcGl4ZWwuCiAgICAgZmxvYXQgaW1hZ2VTY2Fs
ZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VTY2FsZUZhY3RvcjsgfQogI2VuZGlmCisK
ICAgICBXRUJDT1JFX0VYUE9SVCBQbGF0Zm9ybUN1cnNvciBwbGF0Zm9ybUN1cnNvcigpIGNvbnN0
OwogCi0gcHJpdmF0ZToKK3ByaXZhdGU6CiAgICAgdm9pZCBlbnN1cmVQbGF0Zm9ybUN1cnNvcigp
IGNvbnN0OwogCi0gICAgVHlwZSBtX3R5cGU7CisgICAgLy8gVGhlIHR5cGUgb2YgLTEgaW5kaWNh
dGVzIGFuIGludmFsaWQgQ3Vyc29yIHRoYXQgc2hvdWxkIG5ldmVyIGFjdHVhbGx5IGdldCB1c2Vk
LgorICAgIFR5cGUgbV90eXBlIHsgc3RhdGljX2Nhc3Q8VHlwZT4oLTEpIH07CiAgICAgUmVmUHRy
PEltYWdlPiBtX2ltYWdlOwogICAgIEludFBvaW50IG1faG90U3BvdDsKKwogI2lmIEVOQUJMRShN
T1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgZmxvYXQgbV9pbWFnZVNjYWxlRmFjdG9yOworICAgIGZs
b2F0IG1faW1hZ2VTY2FsZUZhY3RvciB7IDEgfTsKICNlbmRpZgogCiAjaWYgIVVTRShBUFBLSVQp
Ci0gICAgbXV0YWJsZSBQbGF0Zm9ybUN1cnNvciBtX3BsYXRmb3JtQ3Vyc29yOworICAgIG11dGFi
bGUgUGxhdGZvcm1DdXJzb3IgbV9wbGF0Zm9ybUN1cnNvciB7IG51bGxwdHIgfTsKICNlbHNlCiAg
ICAgbXV0YWJsZSBSZXRhaW5QdHI8TlNDdXJzb3I+IG1fcGxhdGZvcm1DdXJzb3I7CiAjZW5kaWYK
KwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiB9OwogCkBAIC0yMjgsNCArMjIxLDE1IEBAIGNv
bnN0IEN1cnNvciYgbm9uZUN1cnNvcigpOwogY29uc3QgQ3Vyc29yJiBncmFiQ3Vyc29yKCk7CiBj
b25zdCBDdXJzb3ImIGdyYWJiaW5nQ3Vyc29yKCk7CiAKKyNpZiAhUExBVEZPUk0oSU9TKQorCitp
bmxpbmUgQ3Vyc29yOjpUeXBlIEN1cnNvcjo6dHlwZSgpIGNvbnN0Cit7CisgICAgQVNTRVJUKG1f
dHlwZSA+PSAwKTsKKyAgICBBU1NFUlQobV90eXBlIDw9IEN1c3RvbSk7CisgICAgcmV0dXJuIG1f
dHlwZTsKK30KKworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DdXJzb3JFZmwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZWZsL0N1cnNvckVmbC5jcHAKaW5kZXggYjNmNDRhZWI3ZWVjNGJkMmE4ZTdk
NTJlZWVlMmMxMjc2ZGQyNDY2OS4uNTk2NDhiYjE0ODZjZGE1YTY5ZDFmOTExODA5NjM1MTE3N2Nl
NjZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0N1cnNvckVmbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0N1cnNvckVmbC5jcHAKQEAgLTQw
LDM0ICs0MCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ3Vyc29yOjpDdXJzb3IoY29u
c3QgQ3Vyc29yJiBvdGhlcikKLSAgICA6IG1fdHlwZShvdGhlci5tX3R5cGUpCi0gICAgLCBtX2lt
YWdlKG90aGVyLm1faW1hZ2UpCi0gICAgLCBtX2hvdFNwb3Qob3RoZXIubV9ob3RTcG90KQotI2lm
IEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgLCBtX2ltYWdlU2NhbGVGYWN0b3Iob3Ro
ZXIubV9pbWFnZVNjYWxlRmFjdG9yKQotI2VuZGlmCi0gICAgLCBtX3BsYXRmb3JtQ3Vyc29yKG90
aGVyLm1fcGxhdGZvcm1DdXJzb3IpCi17Ci19Ci0KLUN1cnNvcjo6fkN1cnNvcigpCi17Ci19Ci0K
LUN1cnNvciYgQ3Vyc29yOjpvcGVyYXRvcj0oY29uc3QgQ3Vyc29yJiBvdGhlcikKLXsKLSAgICBt
X3R5cGUgPSBvdGhlci5tX3R5cGU7Ci0gICAgbV9pbWFnZSA9IG90aGVyLm1faW1hZ2U7Ci0gICAg
bV9ob3RTcG90ID0gb3RoZXIubV9ob3RTcG90OwotI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NB
TEUpCi0gICAgbV9pbWFnZVNjYWxlRmFjdG9yID0gb3RoZXIubV9pbWFnZVNjYWxlRmFjdG9yOwot
I2VuZGlmCi0gICAgbV9wbGF0Zm9ybUN1cnNvciA9IG90aGVyLm1fcGxhdGZvcm1DdXJzb3I7Ci0K
LSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KIHN0YXRpYyBjb25zdCBjaGFyKiBjdXJzb3JTdHJpbmco
Q3Vyc29yOjpUeXBlIHR5cGUpCiB7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGN1cnNvclN0cmlu
Z3NbXSA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JH
dGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKaW5kZXgg
ZjA3NWYzNjNhMDNhODRiYjEyYTc2NTRkMDZjOGJmZGNhNzE1OWEwYi4uNDYzNGVmZGFjODVmMTgy
OThiNDI2N2I2YmNjZWE4YTQzYWFhM2Y3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0N1cnNvckd0ay5jcHAKQEAgLTE3NSwyNSArMTc1LDQgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBs
YXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICB9CiB9CiAKLUN1cnNvcjo6Q3Vyc29yKGNvbnN0IEN1
cnNvciYgb3RoZXIpCi0gICAgOiBtX3R5cGUob3RoZXIubV90eXBlKQotICAgICwgbV9pbWFnZShv
dGhlci5tX2ltYWdlKQotICAgICwgbV9ob3RTcG90KG90aGVyLm1faG90U3BvdCkKLSAgICAsIG1f
cGxhdGZvcm1DdXJzb3Iob3RoZXIubV9wbGF0Zm9ybUN1cnNvcikKLXsKLX0KLQotQ3Vyc29yJiBD
dXJzb3I6Om9wZXJhdG9yPShjb25zdCBDdXJzb3ImIG90aGVyKQotewotICAgIG1fdHlwZSA9IG90
aGVyLm1fdHlwZTsKLSAgICBtX2ltYWdlID0gb3RoZXIubV9pbWFnZTsKLSAgICBtX2hvdFNwb3Qg
PSBvdGhlci5tX2hvdFNwb3Q7Ci0gICAgbV9wbGF0Zm9ybUN1cnNvciA9IG90aGVyLm1fcGxhdGZv
cm1DdXJzb3I7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi1DdXJzb3I6On5DdXJzb3IoKQotewot
fQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQppbmRleCA4NWNj
N2M1ZmRkMmMxNjA2MmNmOGEwMTg2NGEyOWZjMzQ0NWE3ZTA1Li5hYTM0NWU4OGU0ODExOGM0Njg3
YjllZWZiZmM3MzIxOGRjNDcwNzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvQ3Vyc29yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9DdXJz
b3JNYWMubW0KQEAgLTI0MSwzMyArMjQxLDYgQEAgdm9pZCBDdXJzb3I6OmVuc3VyZVBsYXRmb3Jt
Q3Vyc29yKCkgY29uc3QKICAgICB9CiB9CiAKLUN1cnNvcjo6Q3Vyc29yKGNvbnN0IEN1cnNvciYg
b3RoZXIpCi0gICAgOiBtX3R5cGUob3RoZXIubV90eXBlKQotICAgICwgbV9pbWFnZShvdGhlci5t
X2ltYWdlKQotICAgICwgbV9ob3RTcG90KG90aGVyLm1faG90U3BvdCkKLSNpZiBFTkFCTEUoTU9V
U0VfQ1VSU09SX1NDQUxFKQotICAgICwgbV9pbWFnZVNjYWxlRmFjdG9yKG90aGVyLm1faW1hZ2VT
Y2FsZUZhY3RvcikKLSNlbmRpZgotICAgICwgbV9wbGF0Zm9ybUN1cnNvcihvdGhlci5tX3BsYXRm
b3JtQ3Vyc29yKQotewotfQotCi1DdXJzb3ImIEN1cnNvcjo6b3BlcmF0b3I9KGNvbnN0IEN1cnNv
ciYgb3RoZXIpCi17Ci0gICAgbV90eXBlID0gb3RoZXIubV90eXBlOwotICAgIG1faW1hZ2UgPSBv
dGhlci5tX2ltYWdlOwotICAgIG1faG90U3BvdCA9IG90aGVyLm1faG90U3BvdDsKLSNpZiBFTkFC
TEUoTU9VU0VfQ1VSU09SX1NDQUxFKQotICAgIG1faW1hZ2VTY2FsZUZhY3RvciA9IG90aGVyLm1f
aW1hZ2VTY2FsZUZhY3RvcjsKLSNlbmRpZgotICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBvdGhlci5t
X3BsYXRmb3JtQ3Vyc29yOwotICAgIHJldHVybiAqdGhpczsKLX0KLQotQ3Vyc29yOjp+Q3Vyc29y
KCkKLXsKLX0KLQogTlNDdXJzb3IgKkN1cnNvcjo6cGxhdGZvcm1DdXJzb3IoKSBjb25zdAogewog
ICAgIGVuc3VyZVBsYXRmb3JtQ3Vyc29yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93aW4vQ3Vyc29yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9D
dXJzb3JXaW4uY3BwCmluZGV4IDdhOTkzMTM2YmEyYzNhMDVkMmQzMTk2YTU1Njc3MThhMDBkYWY4
NTkuLmQ5YjIyNTVhNWUyMWRlMjQ4NWFkNTVhOTBiYTk2ZWQ1OTk0MTRkOTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DdXJzb3JXaW4uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dpbi9DdXJzb3JXaW4uY3BwCkBAIC00MCw2ICs0MCwyMSBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK1NoYXJlZEN1cnNvcjo6U2hhcmVkQ3Vyc29yKEhDVVJTT1Ig
bmF0aXZlQ3Vyc29yKQorICAgIDogbV9uYXRpdmVDdXJzb3IobmF0aXZlQ3Vyc29yKQoreworfQor
CitSZWY8U2hhcmVkQ3Vyc29yPiBTaGFyZWRDdXJzb3I6OmNyZWF0ZShIQ1VSU09SIG5hdGl2ZUN1
cnNvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGFyZWRDdXJzb3IobmF0aXZlQ3Vy
c29yKSk7Cit9CisKK1NoYXJlZEN1cnNvcjo6flNoYXJlZEN1cnNvcigpCit7CisgICAgRGVzdHJv
eUljb24obV9uYXRpdmVDdXJzb3IpOworfQorCiBzdGF0aWMgUmVmPFNoYXJlZEN1cnNvcj4gY3Jl
YXRlU2hhcmVkQ3Vyc29yKEltYWdlKiBpbWcsIGNvbnN0IEludFBvaW50JiBob3RTcG90KQogewog
ICAgIEludFBvaW50IGVmZmVjdGl2ZUhvdFNwb3QgPSBkZXRlcm1pbmVIb3RTcG90KGltZywgaG90
U3BvdCk7CkBAIC0yNTMsMzYgKzI2OCw0IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1
cnNvcigpIGNvbnN0CiAgICAgfQogfQogCi1TaGFyZWRDdXJzb3I6On5TaGFyZWRDdXJzb3IoKQot
ewotICAgIERlc3Ryb3lJY29uKG1fbmF0aXZlQ3Vyc29yKTsKLX0KLQotQ3Vyc29yOjpDdXJzb3Io
Y29uc3QgQ3Vyc29yJiBvdGhlcikKLSAgICA6IG1fdHlwZShvdGhlci5tX3R5cGUpCi0gICAgLCBt
X2ltYWdlKG90aGVyLm1faW1hZ2UpCi0gICAgLCBtX2hvdFNwb3Qob3RoZXIubV9ob3RTcG90KQot
I2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgLCBtX2ltYWdlU2NhbGVGYWN0b3Io
b3RoZXIubV9pbWFnZVNjYWxlRmFjdG9yKQotI2VuZGlmCi0gICAgLCBtX3BsYXRmb3JtQ3Vyc29y
KG90aGVyLm1fcGxhdGZvcm1DdXJzb3IpCi17Ci19Ci0KLUN1cnNvciYgQ3Vyc29yOjpvcGVyYXRv
cj0oY29uc3QgQ3Vyc29yJiBvdGhlcikKLXsKLSAgICBtX3R5cGUgPSBvdGhlci5tX3R5cGU7Ci0g
ICAgbV9pbWFnZSA9IG90aGVyLm1faW1hZ2U7Ci0gICAgbV9ob3RTcG90ID0gb3RoZXIubV9ob3RT
cG90OwotI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgbV9pbWFnZVNjYWxlRmFj
dG9yID0gb3RoZXIubV9pbWFnZVNjYWxlRmFjdG9yOwotI2VuZGlmCi0gICAgbV9wbGF0Zm9ybUN1
cnNvciA9IG90aGVyLm1fcGxhdGZvcm1DdXJzb3I7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi1D
dXJzb3I6On5DdXJzb3IoKQotewotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcAppbmRleCAw
NmFlZTlmOTc5NjJmYmNhODI5Y2Y1ZTFiZTM4MjVlNmZiZDUyZGU0Li40ODJiNWRkMTM3NWI2ZmU3
NzI2N2NiNjI2ZjQxNjM2ZGY4ZjUzNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTYxNiw3ICs2MTYsNyBAQCB2b2lkIFJl
bmRlckVtYmVkZGVkT2JqZWN0OjpoYW5kbGVVbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvckV2ZW50
KEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIHNldFVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9y
SXNQcmVzc2VkKGZhbHNlKTsKICAgICAgICAgfQogICAgICAgICBpZiAobV9tb3VzZURvd25XYXNJ
blVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yICYmIGlzSW5VbmF2YWlsYWJsZVBsdWdpbkluZGlj
YXRvcihtb3VzZUV2ZW50KSkgewotICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgp
LnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCgmZWxlbWVudCwgbV9wbHVnaW5VbmF2YWls
YWJpbGl0eVJlYXNvbik7CisgICAgICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkudW5h
dmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKGVsZW1lbnQsIG1fcGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24pOwogICAgICAgICB9CiAgICAgICAgIG1fbW91c2VEb3duV2FzSW5VbmF2YWlsYWJs
ZVBsdWdpbkluZGljYXRvciA9IGZhbHNlOwogICAgICAgICBldmVudC0+c2V0RGVmYXVsdEhhbmRs
ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5j
cHAKaW5kZXggYTFhOTRjNjdiN2U0NTBlOWVjMDMwNWVlMDcwNTlkZjIyZWMwNzZkNC4uNjFjYWFi
ZjZhZmE4ZTg3MDI2ODYxYjRmZTgwOTdjYzA5NjM1M2VlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCBS
ZW5kZXJMYXllckJhY2tpbmc6OlJlbmRlckxheWVyQmFja2luZyhSZW5kZXJMYXllciYgbGF5ZXIp
CiB7CiAgICAgaWYgKGxheWVyLmlzUm9vdExheWVyKCkpIHsKICAgICAgICAgbV9pc01haW5GcmFt
ZVJlbmRlclZpZXdMYXllciA9IHJlbmRlcmVyKCkuZnJhbWUoKS5pc01haW5GcmFtZSgpOwotICAg
ICAgICBtX3VzaW5nVGlsZWRDYWNoZUxheWVyID0gcmVuZGVyZXIoKS5wYWdlKCkuY2hyb21lKCku
Y2xpZW50KCkuc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KHJlbmRlcmVyKCkuZnJh
bWUoKS52aWV3KCkpOworICAgICAgICBtX3VzaW5nVGlsZWRDYWNoZUxheWVyID0gcmVuZGVyZXIo
KS5wYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVW
aWV3KHJlbmRlcmVyKCkudmlldygpLmZyYW1lVmlldygpKTsKICAgICB9CiAgICAgCiAgICAgY3Jl
YXRlUHJpbWFyeUdyYXBoaWNzTGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMTJiNjJjOTI4N2JiZmZkOWU1Nzk4
Zjc2NWQ4MmM1NzAzNzMxZTZkZC4uNjVmZGM0ZGZkYTQ2ZmJkMjJkYmJjMzQ3YTk2YjIxYzJlZWRl
YzE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29t
cG9zaXRvci5jcHAKQEAgLTMxMDMsNyArMzEwMyw3IEBAIEdyYXBoaWNzTGF5ZXIqIFJlbmRlckxh
eWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJGb3JIZWFkZXIoYm9vbCB3YW50c0xheWVyKQogICAg
IGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5z
Y3JvbGxpbmdDb29yZGluYXRvcigpKQogICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJh
bWVWaWV3Um9vdExheWVyRGlkQ2hhbmdlKG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKSk7CiAKLSAg
ICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlkQWRkSGVhZGVyTGF5ZXIobV9sYXllckZvckhl
YWRlci5nZXQoKSk7CisgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmRpZEFkZEhlYWRlckxh
eWVyKCptX2xheWVyRm9ySGVhZGVyKTsKIAogICAgIHJldHVybiBtX2xheWVyRm9ySGVhZGVyLmdl
dCgpOwogfQpAQCAtMzE0MSw3ICszMTQxLDcgQEAgR3JhcGhpY3NMYXllciogUmVuZGVyTGF5ZXJD
b21wb3NpdG9yOjp1cGRhdGVMYXllckZvckZvb3Rlcihib29sIHdhbnRzTGF5ZXIpCiAgICAgaWYg
KFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRoaXMtPnNjcm9s
bGluZ0Nvb3JkaW5hdG9yKCkpCiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5mcmFtZVZp
ZXdSb290TGF5ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpKTsKIAotICAgIHBh
Z2UoKS5jaHJvbWUoKS5jbGllbnQoKS5kaWRBZGRGb290ZXJMYXllcihtX2xheWVyRm9yRm9vdGVy
LmdldCgpKTsKKyAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlkQWRkRm9vdGVyTGF5ZXIo
Km1fbGF5ZXJGb3JGb290ZXIpOwogCiAgICAgcmV0dXJuIG1fbGF5ZXJGb3JGb290ZXIuZ2V0KCk7
CiB9CkBAIC0zNDYzLDExICszNDYzLDExIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjph
dHRhY2hSb290TGF5ZXIoUm9vdExheWVyQXR0YWNobWVudCBhdHRhY2htZW50KQogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUm9vdExheWVyQXR0YWNoZWRWaWFDaHJvbWVDbGllbnQ6
IHsKICAgICAgICAgICAgIEZyYW1lJiBmcmFtZSA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS5m
cmFtZSgpOwotICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFJvb3RH
cmFwaGljc0xheWVyKCZmcmFtZSwgcm9vdEdyYXBoaWNzTGF5ZXIoKSk7CisgICAgICAgICAgICBw
YWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoZnJhbWUsIHJv
b3RHcmFwaGljc0xheWVyKCkpOwogICAgICAgICAgICAgaWYgKGZyYW1lLmlzTWFpbkZyYW1lKCkp
IHsKICAgICAgICAgICAgICAgICBQYWdlT3ZlcmxheUNvbnRyb2xsZXImIHBhZ2VPdmVybGF5Q29u
dHJvbGxlciA9IGZyYW1lLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpOwogICAg
ICAgICAgICAgICAgIHBhZ2VPdmVybGF5Q29udHJvbGxlci53aWxsQXR0YWNoUm9vdExheWVyKCk7
Ci0gICAgICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFZpZXdPdmVy
bGF5R3JhcGhpY3NMYXllcigmZnJhbWUsICZwYWdlT3ZlcmxheUNvbnRyb2xsZXIudmlld092ZXJs
YXlSb290TGF5ZXIoKSk7CisgICAgICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgp
LmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihmcmFtZSwgJnBhZ2VPdmVybGF5Q29udHJv
bGxlci52aWV3T3ZlcmxheVJvb3RMYXllcigpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CkBAIC0zNTA4LDkgKzM1MDgsOSBAQCB2b2lkIFJlbmRlckxheWVy
Q29tcG9zaXRvcjo6ZGV0YWNoUm9vdExheWVyKCkKICAgICB9CiAgICAgY2FzZSBSb290TGF5ZXJB
dHRhY2hlZFZpYUNocm9tZUNsaWVudDogewogICAgICAgICBGcmFtZSYgZnJhbWUgPSBtX3JlbmRl
clZpZXcuZnJhbWVWaWV3KCkuZnJhbWUoKTsKLSAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVu
dCgpLmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKCZmcmFtZSwgMCk7CisgICAgICAgIHBhZ2UoKS5j
aHJvbWUoKS5jbGllbnQoKS5hdHRhY2hSb290R3JhcGhpY3NMYXllcihmcmFtZSwgbnVsbHB0cik7
CiAgICAgICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKQotICAgICAgICAgICAgcGFnZSgpLmNo
cm9tZSgpLmNsaWVudCgpLmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcigmZnJhbWUsIDAp
OworICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFZpZXdPdmVybGF5
R3JhcGhpY3NMYXllcihmcmFtZSwgbnVsbHB0cik7CiAgICAgfQogICAgIGJyZWFrOwogICAgIGNh
c2UgUm9vdExheWVyVW5hdHRhY2hlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TWVudUxpc3QuY3BwCmluZGV4IGQyYzAyZWY5ZDYwZTA2YzY4NjY3MjNlNDc0MDczN2FkOGMwYzM4
MjEuLjM3YzgzZThkMWY1ZWJiMDU3YjExMGNjODg4MTA1NDUxMmNkNGQ0N2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMzcxLDcgKzM3MSw3IEBA
IHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpCiAgICAgLy8gaW5zaWRlIHRoZSBzaG93
UG9wdXAgY2FsbCBhbmQgaXQgd291bGQgZmFpbC4KICAgICBjcmVhdGVJbm5lckJsb2NrKCk7CiAg
ICAgaWYgKCFtX3BvcHVwKQotICAgICAgICBtX3BvcHVwID0gZG9jdW1lbnQoKS5wYWdlKCktPmNo
cm9tZSgpLmNyZWF0ZVBvcHVwTWVudSh0aGlzKTsKKyAgICAgICAgbV9wb3B1cCA9IGRvY3VtZW50
KCkucGFnZSgpLT5jaHJvbWUoKS5jcmVhdGVQb3B1cE1lbnUoKnRoaXMpOwogICAgIG1fcG9wdXBJ
c1Zpc2libGUgPSB0cnVlOwogCiAgICAgLy8gQ29tcHV0ZSB0aGUgdG9wIGxlZnQgdGFraW5nIHRy
YW5zZm9ybXMgaW50byBhY2NvdW50LCBidXQgdXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcAppbmRleCBiNDZkOGVkNzE4NjA4Y2FmZTYxNjkzZTE0
YmUxM2U4NmQ0Y2E4MjJjLi5jYTkwMDUxODRkYjI5YWM5Mjc3MGRhMTI3NTU4MTRjNjA4MDYyMWNh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAK
QEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBSZW5kZXJTZWFyY2hGaWVsZDo6YWRkU2VhcmNoUmVzdWx0
KCkKIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZlTmFtZSgpOwogICAg
IGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQb3B1cCA9IHBhZ2UoKS5jaHJv
bWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7CisgICAgICAgIG1fc2VhcmNoUG9wdXAg
PSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KCp0aGlzKTsKIAogICAgIG1f
c2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBtX3JlY2VudFNlYXJjaGVzKTsK
IH0KQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFJlbmRlclNlYXJjaEZpZWxkOjpzaG93UG9wdXAo
KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAgIG1f
c2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KHRoaXMp
OworICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNyZWF0ZVNlYXJjaFBv
cHVwTWVudSgqdGhpcyk7CiAKICAgICBpZiAoIW1fc2VhcmNoUG9wdXAtPmVuYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOwpAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgUmVuZGVyU2VhcmNoRmllbGQ6
OnZhbHVlQ2hhbmdlZCh1bnNpZ25lZCBsaXN0SW5kZXgsIGJvb2wgZmlyZUV2ZW50cykKICAgICAg
ICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZlTmFtZSgpOwogICAgICAg
ICAgICAgaWYgKCFuYW1lLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIGlmICghbV9zZWFy
Y2hQb3B1cCkKLSAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IHBhZ2UoKS5jaHJv
bWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7CisgICAgICAgICAgICAgICAgICAgIG1f
c2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KCp0aGlz
KTsKICAgICAgICAgICAgICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2VhcmNoZXMobmFt
ZSwgbV9yZWNlbnRTZWFyY2hlcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQUVsZW1lbnQuY3BwCmluZGV4IGJlYjBhMzk1M2JjNzJmZWUxM2IzNTM4ZmU1OTdjZDE5
MDlkOWQzYmUuLjQyMDIzZmE3Njg2NTRlMTNhZjZkMzI2MjgyYWUzODE2N2FjYTlkYmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIGJvb2wgU1ZHQUVs
ZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCYgZXZlbnQpIGNvbnN0CiAg
ICAgICAgIHJldHVybiBTVkdFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKGV2ZW50KTsKIAog
ICAgIGlmIChpc0xpbmsoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZl
bnRIYW5kbGVyKCkudGFic1RvTGlua3MoJmV2ZW50KTsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50
KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoZXZlbnQpOwogCiAgICAgcmV0
dXJuIFNWR0VsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpOwogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCmluZGV4IGZkNTY0
YWZmMTQwNGU1ODhhOWRjNDFhNjM2N2RiMmYwY2JkYTEyOGIuLjAwNDQwNDFiZjc1NzhjM2MyYTg2
MTdiN2ZlNzY2ZmQyY2JjYjJkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgTW9ja1BhZ2VPdmVybGF5
Q2xpZW50OjpNb2NrUGFnZU92ZXJsYXlDbGllbnQoKQogUmVmPE1vY2tQYWdlT3ZlcmxheT4gTW9j
a1BhZ2VPdmVybGF5Q2xpZW50OjppbnN0YWxsT3ZlcmxheShNYWluRnJhbWUmIG1haW5GcmFtZSwg
UGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlIG92ZXJsYXlUeXBlKQogewogICAgIGF1dG8gb3Zlcmxh
eSA9IFBhZ2VPdmVybGF5OjpjcmVhdGUoKnRoaXMsIG92ZXJsYXlUeXBlKTsKLSAgICBtYWluRnJh
bWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KG92ZXJsYXkucHRy
KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICBtYWluRnJhbWUucGFn
ZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KG92ZXJsYXksIFBhZ2VPdmVy
bGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIAogICAgIGF1dG8gbW9ja092ZXJsYXkgPSBNb2Nr
UGFnZU92ZXJsYXk6OmNyZWF0ZShvdmVybGF5LnB0cigpKTsKICAgICBtX292ZXJsYXlzLmFkZCht
b2NrT3ZlcmxheS5wdHIoKSk7CkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgTW9ja1BhZ2VPdmVybGF5
Q2xpZW50Ojp1bmluc3RhbGxBbGxPdmVybGF5cygpCiAgICAgICAgIFJlZlB0cjxNb2NrUGFnZU92
ZXJsYXk+IG1vY2tPdmVybGF5ID0gbV9vdmVybGF5cy50YWtlQW55KCk7CiAgICAgICAgIFBhZ2VP
dmVybGF5Q29udHJvbGxlciogb3ZlcmxheUNvbnRyb2xsZXIgPSBtb2NrT3ZlcmxheS0+b3Zlcmxh
eSgpLT5jb250cm9sbGVyKCk7CiAgICAgICAgIEFTU0VSVChvdmVybGF5Q29udHJvbGxlcik7Ci0g
ICAgICAgIG92ZXJsYXlDb250cm9sbGVyLT51bmluc3RhbGxQYWdlT3ZlcmxheShtb2NrT3Zlcmxh
eS0+b3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgICAg
IG92ZXJsYXlDb250cm9sbGVyLT51bmluc3RhbGxQYWdlT3ZlcmxheSgqbW9ja092ZXJsYXktPm92
ZXJsYXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50SU9TLmggYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnRJT1MuaAppbmRleCA2Y2Q3MDNkODczYmQ4NjU5ODAwM2UzMTNlMmU0ZDgyZGRiODYwNzgxLi4y
ZjNlMTI3YWM5MjEyYmY4N2QyNmQ2ZjI3NDhkYWRmNWRkNTJlNmMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MuaApAQCAt
NDIsOSArNDIsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZm9jdXMoKSBmaW5hbDsKICAgICB2b2lk
IHRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbikgZmluYWwgeyB9CiAKLSAgICB2b2lk
IHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJikg
ZmluYWw7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZSosIGNv
bnN0IFdURjo6U3RyaW5nJikgZmluYWw7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdl
YkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3Ry
aW5nJiBkZWZhdWx0VmFsdWUsIFdURjo6U3RyaW5nJiByZXN1bHQpIGZpbmFsOworICAgIHZvaWQg
cnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV1RGOjpTdHJpbmcmKSBm
aW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lJiwgY29u
c3QgV1RGOjpTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2Vi
Q29yZTo6RnJhbWUmLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpTdHJp
bmcmIGRlZmF1bHRWYWx1ZSwgV1RGOjpTdHJpbmcmIHJlc3VsdCkgZmluYWw7CiAKICAgICB2b2lk
IHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkZpbGVDaG9vc2VyJikgZmlu
YWw7CiAKQEAgLTUzLDEzICs1MywxMyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICB2b2lkIGRp
ZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wpIGZpbmFsOwotICAgIHZvaWQgc2V0TmVlZHNTY3Jv
bGxOb3RpZmljYXRpb25zKFdlYkNvcmU6OkZyYW1lKiwgYm9vbCkgZmluYWw7Ci0gICAgdm9pZCBv
YnNlcnZlZENvbnRlbnRDaGFuZ2UoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKLSAgICB2b2lkIGNs
ZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSopIGZpbmFsOworICAgIHZv
aWQgc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKFdlYkNvcmU6OkZyYW1lJiwgYm9vbCkgZmlu
YWw7CisgICAgdm9pZCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoV2ViQ29yZTo6RnJhbWUmKSBmaW5h
bDsKKyAgICB2b2lkIGNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSYp
IGZpbmFsOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29uc3QgZmluYWw7
CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemUoKSBjb25zdCBmaW5h
bDsKICAgICB2b2lkIGRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFdl
YkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBub3RpZnlS
ZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsK
KyAgICB2b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShXZWJDb3Jl
OjpGcmFtZSYpIGZpbmFsOwogICAgIGJvb2wgaXNTdG9wcGluZygpIGZpbmFsOwogICAgIHZvaWQg
ZGlkTGF5b3V0KExheW91dFR5cGUpIGZpbmFsOwogICAgIHZvaWQgZGlkU3RhcnRPdmVyZmxvd1Nj
cm9sbCgpIGZpbmFsOwpAQCAtNjgsMTAgKzY4LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBzdXBw
cmVzc0Zvcm1Ob3RpZmljYXRpb25zKCkgZmluYWw7CiAgICAgdm9pZCByZXN0b3JlRm9ybU5vdGlm
aWNhdGlvbnMoKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBX
ZWJDb3JlOjpOb2RlKikgZmluYWw7Ci0gICAgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBXZWJD
b3JlOjpOb2RlKikgZmluYWw7CisgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgV2ViQ29y
ZTo6RWxlbWVudCYpIGZpbmFsOworICAgIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgV2ViQ29y
ZTo6RWxlbWVudCYpIGZpbmFsOwogCi0gICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihX
ZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKKyAgICB2b2lk
IGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGZpbmFsOwogCiAgICAgdm9pZCBkaWRGbHVzaENvbXBvc2l0aW5nTGF5ZXJzKCkg
ZmluYWw7CiAKQEAgLTgzLDggKzgzLDggQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgc2VsZWN0SXRl
bVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBmaW5hbDsKICAgICBib29sIHNlbGVjdEl0ZW1B
bGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBmaW5hbDsKLSAgICBSZWZQdHI8
V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xp
ZW50KikgY29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4g
Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IGZp
bmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJD
b3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6
U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51
Q2xpZW50JikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHdlYkFwcE9yaWVudGF0aW9uc1VwZGF0
ZWQoKSBmaW5hbDsKICAgICB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChXZWJDb3JlOjpFbGVt
ZW50KikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnRJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnRJT1MubW0KaW5kZXggNTNlOGYwZWJiZTUyODQzMmEwZjllNGJlNGNm
Y2Q0MjNmZDczZTAzOS4uYTRlZDUxZDBmMmM3YTcyODU4OWRlYTZhZmI2Mjc0NTRmNzFhY2EyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudElPUy5tbQpAQCAtMTAzLDI1ICsxMDMsMjUgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnRJ
T1M6OmZvY3VzKCkKICAgICBbW3dlYlZpZXcoKSBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmll
d0ZvY3VzOndlYlZpZXcoKV07CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50SU9TOjpydW5KYXZh
U2NyaXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSkKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50SU9TOjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmIGZyYW1lLCBj
b25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBXZWJUaHJlYWRMb2NrUHVzaE1vZGFs
KCk7Ci0gICAgW1t3ZWJWaWV3KCkgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmll
dygpIHJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6bWVzc2FnZSBpbml0aWF0ZWRC
eUZyYW1lOmtpdChmcmFtZSldOworICAgIFtbd2ViVmlldygpIF9VSURlbGVnYXRlRm9yd2FyZGVy
XSB3ZWJWaWV3OndlYlZpZXcoKSBydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOm1l
c3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTpraXQoJmZyYW1lKV07CiAgICAgV2ViVGhyZWFkTG9ja1Bv
cE1vZGFsKCk7CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50SU9TOjpydW5KYXZhU2NyaXB0Q29u
ZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlKQorYm9vbCBXZWJD
aHJvbWVDbGllbnRJT1M6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiBmcmFtZSwgY29uc3Qg
V1RGOjpTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgV2ViVGhyZWFkTG9ja1B1c2hNb2RhbCgpOwot
ICAgIGJvb2wgcmVzdWx0ID0gW1t3ZWJWaWV3KCkgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZp
ZXc6d2ViVmlldygpIHJ1bkphdmFTY3JpcHRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTptZXNzYWdl
IGluaXRpYXRlZEJ5RnJhbWU6a2l0KGZyYW1lKV07CisgICAgYm9vbCByZXN1bHQgPSBbW3dlYlZp
ZXcoKSBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3KCkgcnVuSmF2YVNjcmlw
dENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOm1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTpraXQoJmZy
YW1lKV07CiAgICAgV2ViVGhyZWFkTG9ja1BvcE1vZGFsKCk7CiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnRJT1M6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUq
IGZyYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgcHJvbXB0LCBjb25zdCBXVEY6OlN0cmluZyYgZGVm
YXVsdFRleHQsIFdURjo6U3RyaW5nJiByZXN1bHQpCitib29sIFdlYkNocm9tZUNsaWVudElPUzo6
cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSYgZnJhbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBwcm9t
cHQsIGNvbnN0IFdURjo6U3RyaW5nJiBkZWZhdWx0VGV4dCwgV1RGOjpTdHJpbmcmIHJlc3VsdCkK
IHsKICAgICBXZWJUaHJlYWRMb2NrUHVzaE1vZGFsKCk7Ci0gICAgcmVzdWx0ID0gW1t3ZWJWaWV3
KCkgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldygpIHJ1bkphdmFTY3JpcHRU
ZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6cHJvbXB0IGRlZmF1bHRUZXh0OmRlZmF1bHRUZXh0IGlu
aXRpYXRlZEJ5RnJhbWU6a2l0KGZyYW1lKV07CisgICAgcmVzdWx0ID0gW1t3ZWJWaWV3KCkgX1VJ
RGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldygpIHJ1bkphdmFTY3JpcHRUZXh0SW5w
dXRQYW5lbFdpdGhQcm9tcHQ6cHJvbXB0IGRlZmF1bHRUZXh0OmRlZmF1bHRUZXh0IGluaXRpYXRl
ZEJ5RnJhbWU6a2l0KCZmcmFtZSldOwogICAgIFdlYlRocmVhZExvY2tQb3BNb2RhbCgpOwogICAg
IHJldHVybiAhcmVzdWx0LmlzTnVsbCgpOwogfQpAQCAtMTcxLDI2ICsxNzEsMjYgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnRJT1M6OmRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wgaXNNb2JpbGVE
b2N0eXBlKQogICAgICAgICBbW3dlYlZpZXcoKSBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gd2Vi
Vmlld0RpZFJlY2VpdmVNb2JpbGVEb2NUeXBlOndlYlZpZXcoKV07CiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50SU9TOjpzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoV2ViQ29yZTo6RnJhbWUq
IGZyYW1lLCBib29sIGZsYWcpCit2b2lkIFdlYkNocm9tZUNsaWVudElPUzo6c2V0TmVlZHNTY3Jv
bGxOb3RpZmljYXRpb25zKFdlYkNvcmU6OkZyYW1lJiBmcmFtZSwgYm9vbCBmbGFnKQogewotICAg
IFtbd2ViVmlldygpIF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZpZXcoKSBu
ZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnM6W05TTnVtYmVyIG51bWJlcldpdGhCb29sOmZsYWddIGZv
ckZyYW1lOmtpdChmcmFtZSldOworICAgIFtbd2ViVmlldygpIF9VSUtpdERlbGVnYXRlRm9yd2Fy
ZGVyXSB3ZWJWaWV3OndlYlZpZXcoKSBuZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnM6W05TTnVtYmVy
IG51bWJlcldpdGhCb29sOmZsYWddIGZvckZyYW1lOmtpdCgmZnJhbWUpXTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnRJT1M6Om9ic2VydmVkQ29udGVudENoYW5nZShXZWJDb3JlOjpGcmFtZSog
ZnJhbWUpCit2b2lkIFdlYkNocm9tZUNsaWVudElPUzo6b2JzZXJ2ZWRDb250ZW50Q2hhbmdlKFdl
YkNvcmU6OkZyYW1lJiBmcmFtZSkKIHsKLSAgICBbW3dlYlZpZXcoKSBfVUlLaXREZWxlZ2F0ZUZv
cndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3KCkgZGlkT2JzZXJ2ZURlZmVycmVkQ29udGVudENoYW5n
ZTpXS09ic2VydmVkQ29udGVudENoYW5nZSgpIGZvckZyYW1lOmtpdChmcmFtZSldOworICAgIFtb
d2ViVmlldygpIF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZpZXcoKSBkaWRP
YnNlcnZlRGVmZXJyZWRDb250ZW50Q2hhbmdlOldLT2JzZXJ2ZWRDb250ZW50Q2hhbmdlKCkgZm9y
RnJhbWU6a2l0KCZmcmFtZSldOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudElPUzo6Y2xlYXJD
b250ZW50Q2hhbmdlT2JzZXJ2ZXJzKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hy
b21lQ2xpZW50SU9TOjpjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoV2ViQ29yZTo6RnJhbWUm
IGZyYW1lKQogewogICAgIEFTU0VSVChXZWJUaHJlYWRDb3VudE9mT2JzZXJ2ZWRDb250ZW50TW9k
aWZpZXJzKCkgPiAwKTsKICAgICBpZiAoV2ViVGhyZWFkQ291bnRPZk9ic2VydmVkQ29udGVudE1v
ZGlmaWVycygpID4gMCkgewogICAgICAgICBXZWJUaHJlYWRDbGVhck9ic2VydmVkQ29udGVudE1v
ZGlmaWVycygpOwotICAgICAgICBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoZnJhbWUpOwotICAgIH0g
ICAgICAgIAorICAgICAgICBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoKmZyYW1lKTsKKyAgICB9CiB9
CiAKLXN0YXRpYyBpbmxpbmUgTlNEaWN0aW9uYXJ5KiBkaWN0aW9uYXJ5Rm9yVmlld3BvcnRBcmd1
bWVudHMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmIGFyZ3VtZW50cykKK3N0YXRp
YyBpbmxpbmUgTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5Rm9yVmlld3BvcnRBcmd1bWVudHMoY29u
c3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmIGFyZ3VtZW50cykKIHsKICAgICByZXR1cm4g
QHsgQCJpbml0aWFsLXNjYWxlIjpAKGFyZ3VtZW50cy56b29tKSwKICAgICAgICAgICAgICAgQCJt
aW5pbXVtLXNjYWxlIjpAKGFyZ3VtZW50cy5taW5ab29tKSwKQEAgLTIxOCw5ICsyMTgsOSBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudElPUzo6ZGlzcGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFu
Z2UoY29uc3QgV2ViQ29yZTo6VmlldwogICAgIFtbd2ViVmlldygpIF9VSUtpdERlbGVnYXRlRm9y
d2FyZGVyXSB3ZWJWaWV3OndlYlZpZXcoKSBkaWRSZWNlaXZlVmlld3BvcnRBcmd1bWVudHM6ZGlj
dGlvbmFyeUZvclZpZXdwb3J0QXJndW1lbnRzKGFyZ3VtZW50cyldOwogfQogCi12b2lkIFdlYkNo
cm9tZUNsaWVudElPUzo6bm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKFdl
YkNvcmU6OkZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50SU9TOjpub3RpZnlSZXZl
YWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoV2ViQ29yZTo6RnJhbWUmIGZyYW1lKQogewot
ICAgIFtbd2ViVmlldygpIF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSByZXZlYWxlZFNlbGVjdGlv
bkJ5U2Nyb2xsaW5nV2ViRnJhbWU6a2l0KGZyYW1lKV07CisgICAgW1t3ZWJWaWV3KCkgX1VJS2l0
RGVsZWdhdGVGb3J3YXJkZXJdIHJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdXZWJGcmFtZTpr
aXQoJmZyYW1lKV07CiB9CiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50SU9TOjppc1N0b3BwaW5nKCkK
QEAgLTI1NiwxNiArMjU2LDE2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50SU9TOjpyZXN0b3JlRm9y
bU5vdGlmaWNhdGlvbnMoKQogICAgICAgICBtX2Zvcm1Ob3RpZmljYXRpb25TdXBwcmVzc2lvbnMg
PSAwOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudElPUzo6ZWxlbWVudERpZEZvY3VzKGNvbnN0
IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit2b2lkIFdlYkNocm9tZUNsaWVudElPUzo6ZWxlbWVudERp
ZEZvY3VzKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgaWYgKG1fZm9y
bU5vdGlmaWNhdGlvblN1cHByZXNzaW9ucyA8PSAwKQotICAgICAgICBbW3dlYlZpZXcoKSBfVUlL
aXREZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3KCkgZWxlbWVudERpZEZvY3VzTm9k
ZTpraXQoY29uc3RfY2FzdDxXZWJDb3JlOjpOb2RlKj4obm9kZSkpXTsKKyAgICAgICAgW1t3ZWJW
aWV3KCkgX1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldygpIGVsZW1lbnRE
aWRGb2N1c05vZGU6a2l0KCZjb25zdF9jYXN0PFdlYkNvcmU6OkVsZW1lbnQmPihlbGVtZW50KSld
OwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudElPUzo6ZWxlbWVudERpZEJsdXIoY29uc3QgV2Vi
Q29yZTo6Tm9kZSogbm9kZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50SU9TOjplbGVtZW50RGlkQmx1
cihjb25zdCBXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50KQogewogICAgIGlmIChtX2Zvcm1Ob3Rp
ZmljYXRpb25TdXBwcmVzc2lvbnMgPD0gMCkKLSAgICAgICAgW1t3ZWJWaWV3KCkgX1VJS2l0RGVs
ZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldygpIGVsZW1lbnREaWRCbHVyTm9kZTpraXQo
Y29uc3RfY2FzdDxXZWJDb3JlOjpOb2RlKj4obm9kZSkpXTsKKyAgICAgICAgW1t3ZWJWaWV3KCkg
X1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldygpIGVsZW1lbnREaWRCbHVy
Tm9kZTpraXQoJmNvbnN0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSY+KGVsZW1lbnQpKV07CiB9CiAKIGJv
b2wgV2ViQ2hyb21lQ2xpZW50SU9TOjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpCkBAIC0yNzgsMTcgKzI3OCwxNyBAQCBib29sIFdlYkNocm9tZUNsaWVudElPUzo6c2VsZWN0
SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudElPUzo6
Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAor
UmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50SU9TOjpjcmVhdGVQb3B1
cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVJT1MoY2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBQb3B1cE1lbnVJT1MoJmNsaWVudCkpOwogfQogCi1SZWZQdHI8V2ViQ29yZTo6U2Vh
cmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnRJT1M6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShX
ZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxXZWJDb3JlOjpT
ZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudElPUzo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51
KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAogewotICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51SU9TKGNsaWVudCkpOworICAgIHJldHVybiBhZG9w
dFJlZihuZXcgU2VhcmNoUG9wdXBNZW51SU9TKCZjbGllbnQpKTsKIH0KIAotdm9pZCBXZWJDaHJv
bWVDbGllbnRJT1M6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXll
ciogZ3JhcGhpY3NMYXllcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50SU9TOjphdHRhY2hSb290R3Jh
cGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAgICAg
Ly8gRklYTUU6IGZvciBub24tcm9vdCBmcmFtZXMgd2UgcmVseSBvbiBSZW5kZXJWaWV3IHBvc2l0
aW9uaW5nIHRoZSByb290IGxheWVyLAogICAgIC8vIHdoaWNoIGlzIGEgaGFjay4gPHJkYXI6Ly9w
cm9ibGVtLzU5MDYxNDY+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLm1tIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbQppbmRl
eCAzYjNjM2E0Mjk0YzE3YzU3OGI4MTkxNWRhMGIxYzRmOGJmYTIzZWJhLi4wZDQ4MmI0ZGQ5MjVi
YzBiOGI4ZDQyNjFlZmMyYzdhNjU1NzZlMDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90
YU1hbmFnZXIubW0KQEAgLTU5LDcgKzU5LDkgQEAgLSAodW5zaWduZWQgbG9uZyBsb25nKXVzYWdl
CiAtICh1bnNpZ25lZCBsb25nIGxvbmcpcXVvdGEKIHsKICAgICBsb25nIGxvbmcgcXVvdGE7Ci0g
ICAgaWYgKHdlYkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlKCkuY2FsY3VsYXRlUXVvdGFGb3JPcmln
aW4oW19vcmlnaW4gX2NvcmVdLCBxdW90YSkpCisgICAgaWYgKCFfb3JpZ2luKQorICAgICAgICBy
ZXR1cm4gMDsKKyAgICBpZiAod2ViQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKS5jYWxjdWxhdGVR
dW90YUZvck9yaWdpbigqW19vcmlnaW4gX2NvcmVdLCBxdW90YSkpCiAgICAgICAgIHJldHVybiBx
dW90YTsKICAgICByZXR1cm4gMDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZjRmMDk2YzVkNjQ3M2ViYzZlN2FiZDU4
M2I2ZGZlZjRhYWE0ZDE1OS4uN2Q4ZjNiODdmN2UzMjQ1MTZkYjA2MTViZTU4ZDhkOTA1NTgyNGI4
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmgKQEAgLTU5LDcgKzU5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZvY3VzZWRFbGVt
ZW50Q2hhbmdlZChXZWJDb3JlOjpFbGVtZW50Kikgb3ZlcnJpZGU7CiAgICAgdm9pZCBmb2N1c2Vk
RnJhbWVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKikgZmluYWw7CiAKLSAgICBXZWJDb3JlOjpQYWdl
KiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRS
ZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpO
YXZpZ2F0aW9uQWN0aW9uJikgZmluYWw7CisgICAgV2ViQ29yZTo6UGFnZSogY3JlYXRlV2luZG93
KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0
IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlv
biYpIGZpbmFsOwogICAgIHZvaWQgc2hvdygpIGZpbmFsOwogCiAgICAgYm9vbCBjYW5SdW5Nb2Rh
bCgpIGZpbmFsOwpAQCAtNzksMTYgKzc5LDE2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldFJl
c2l6YWJsZShib29sKSBmaW5hbDsKIAotICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShKU0M6
Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBXVEY6OlN0cmluZyYgbWVz
c2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBX
VEY6OlN0cmluZyYgc291cmNlVVJMKSBmaW5hbDsKKyAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNv
bGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0
IFN0cmluZyYgc291cmNlVVJMKSBmaW5hbDsKIAogICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2Fk
Q29uZmlybVBhbmVsKCkgZmluYWw7Ci0gICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIFdlYkNvcmU6OkZyYW1lKikgZmluYWw7Cisg
ICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwogCiAgICAgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSBm
aW5hbDsKIAotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lKiwgY29u
c3QgV1RGOjpTdHJpbmcmKSBvdmVycmlkZTsKLSAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJt
KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKSBvdmVycmlkZTsKLSAgICBib29s
IHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYg
bWVzc2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgV1RGOjpTdHJpbmcmIHJl
c3VsdCkgb3ZlcnJpZGU7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJh
bWUmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25m
aXJtKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgYm9vbCBy
dW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpIG92ZXJyaWRlOwog
CiAgICAgYm9vbCBzdXBwb3J0c0ltbWVkaWF0ZUludmFsaWRhdGlvbigpIGZpbmFsOwogICAgIHZv
aWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsKQEAg
LTEwNSwyOSArMTA1LDI5IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIFBsYXRmb3JtUGFnZUNs
aWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIGNvbnRlbnRz
U2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29u
c3QgZmluYWw7CisgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lJiwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgc2Nyb2xsUmVj
dEludG9WaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCBmaW5hbDsKIAotICAgIHZv
aWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBXVEY6OlN0cmluZyYpIG92ZXJyaWRlOworICAgIHZv
aWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKIAogICAgIHZvaWQg
c2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBmaW5hbCB7IH0KICAgICBib29sIHNob3Vs
ZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVk
T2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7Ci0gICAgdm9p
ZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVudCosIFdlYkNv
cmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29u
c3QgZmluYWw7CisgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29y
ZTo6RWxlbWVudCYsIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWls
YWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxl
bWVudChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFn
cykgZmluYWw7CiAKLSAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJD
b3JlOjpUZXh0RGlyZWN0aW9uKSBmaW5hbDsKKyAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3Ry
aW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7CiAKLSAgICB2b2lkIHByaW50KFdl
YkNvcmU6OkZyYW1lKikgZmluYWw7Ci0gICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2Vi
Q29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYgZGF0YWJhc2VOYW1lLCBXZWJDb3JlOjpE
YXRhYmFzZURldGFpbHMpIGZpbmFsOworICAgIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUmKSBm
aW5hbDsKKyAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSYsIGNv
bnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMpIGZpbmFs
OwogICAgIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKSBm
aW5hbDsKLSAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpIGZpbmFsOworICAg
IHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiYsIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkgZmluYWw7CiAKICNpZiBFTkFCTEUo
REFTSEJPQVJEX1NVUFBPUlQpCiAgICAgdm9pZCBhbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpIGZp
bmFsOwogI2VuZGlmCiAKICAgICB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSYsIFdl
YkNvcmU6OkZpbGVDaG9vc2VyJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2FkSWNvbkZvckZpbGVz
KGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpIGZp
bmFsOworICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIFdl
YkNvcmU6OkZpbGVJY29uTG9hZGVyJikgZmluYWw7CiAKICNpZiAhUExBVEZPUk0oSU9TKQogICAg
IHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpIGZpbmFsOwpAQCAtMTM1LDcg
KzEzNSw3IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
KQotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9y
Q2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xv
ciYpIGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb2xvckNob29zZXI+IGNy
ZWF0ZUNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQmLCBjb25zdCBXZWJD
b3JlOjpDb2xvciYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQpA
QCAtMTUxLDE2ICsxNTEsMTYgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuYWJsZVN1ZGRlblRlcm1p
bmF0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKSBmaW5h
bDsKIAotICAgIGJvb2wgc2hvdWxkUmVwbGFjZVdpdGhHZW5lcmF0ZWRGaWxlRm9yVXBsb2FkKGNv
bnN0IFdURjo6U3RyaW5nJiBwYXRoLCBXVEY6OlN0cmluZyAmZ2VuZXJhdGVkRmlsZW5hbWUpIGZp
bmFsOwotICAgIFdURjo6U3RyaW5nIGdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNvbnN0IFdURjo6
U3RyaW5nJiBwYXRoKSBmaW5hbDsKKyAgICBib29sIHNob3VsZFJlcGxhY2VXaXRoR2VuZXJhdGVk
RmlsZUZvclVwbG9hZChjb25zdCBTdHJpbmcmIHBhdGgsIFN0cmluZyAmZ2VuZXJhdGVkRmlsZW5h
bWUpIGZpbmFsOworICAgIFN0cmluZyBnZW5lcmF0ZVJlcGxhY2VtZW50RmlsZShjb25zdCBTdHJp
bmcmIHBhdGgpIGZpbmFsOwogCi0gICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgV2ViQ29y
ZTo6Tm9kZSopIG92ZXJyaWRlOwotICAgIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgV2ViQ29y
ZTo6Tm9kZSopIG92ZXJyaWRlOworICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKFdlYkNvcmU6OkVs
ZW1lbnQmKSBvdmVycmlkZTsKKyAgICB2b2lkIGVsZW1lbnREaWRCbHVyKFdlYkNvcmU6OkVsZW1l
bnQmKSBvdmVycmlkZTsKIAogICAgIGJvb2wgc2hvdWxkUGFpbnRFbnRpcmVDb250ZW50cygpIGNv
bnN0IGZpbmFsOwogCi0gICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpG
cmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKLSAgICB2b2lkIGF0dGFj
aFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBmaW5hbDsKKyAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNv
cmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZvaWQg
YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopIGZpbmFsOwogICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5
bmNocm9uaXphdGlvbigpIGZpbmFsOwogICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVy
Rmx1c2goKSBmaW5hbDsKIApAQCAtMTg5LDE2ICsxODksMTYgQEAgcHJpdmF0ZToKICNlbmRpZgog
CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVu
Rm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50KiwgYm9vbCB3aXRoS2V5Ym9hcmQpIGZp
bmFsOwotICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50
KikgZmluYWw7Ci0gICAgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxl
bWVudCopIGZpbmFsOworICAgIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25z
dCBXZWJDb3JlOjpFbGVtZW50JiwgYm9vbCB3aXRoS2V5Ym9hcmQpIGZpbmFsOworICAgIHZvaWQg
ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CisgICAg
dm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOwog
I2VuZGlmCiAKICAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkg
b3ZlcnJpZGU7CiAgICAgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5n
RGlyZWN0aW9uKCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0IGZp
bmFsOwotICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJD
b3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBvdmVycmlkZTsKLSAgICBSZWZQdHI8V2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBN
ZW51Q2xpZW50KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVu
dT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYpIGNvbnN0IG92ZXJy
aWRlOworICAgIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBv
cHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBvdmVycmlkZTsKIAogICAg
IHZvaWQgd2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChib29sKSBmaW5hbCB7IH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1t
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCmlu
ZGV4IDBlY2ZmOGQ1ZmFiMWVlNWZjNTUyOTJkYzA0YTgwNWFkMmNjY2RlZDguLmU0OTY3YjlmOGMz
N2M2MjViNTA1NWJjNDI5MWE3NTk1OWYwNWZhZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbXBvcnQgIldlYkNocm9tZUNsaWVudC5oIgogCiAjaW1wb3J0ICJET01FbGVtZW50SW50ZXJu
YWwuaCIKKyNpbXBvcnQgIkRPTUhUTUxJbnB1dEVsZW1lbnRJbnRlcm5hbC5oIgogI2ltcG9ydCAi
RE9NTm9kZUludGVybmFsLmgiCiAjaW1wb3J0ICJQb3B1cE1lbnVNYWMuaCIKICNpbXBvcnQgIlNl
YXJjaFBvcHVwTWVudU1hYy5oIgpAQCAtMjIyLDcgKzIyMyw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50Ojpmb2N1c2VkRWxlbWVudENoYW5nZWQoRWxlbWVudCogZWxlbWVudCkKICAgICBpZiAoIWlz
PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBIVE1M
SW5wdXRFbGVtZW50JiBpbnB1dEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pigq
ZWxlbWVudCk7CisgICAgYXV0byYgaW5wdXRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxl
bWVudD4oKmVsZW1lbnQpOwogICAgIGlmICghaW5wdXRFbGVtZW50LmlzVGV4dCgpKQogICAgICAg
ICByZXR1cm47CiAKQEAgLTIzMywxNCArMjM0LDE0IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpm
b2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKikKIHsKIH0KIAotUGFnZSogV2ViQ2hyb21lQ2xpZW50
OjpjcmVhdGVXaW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29u
c3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikKK1Bh
Z2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJh
bWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2
aWdhdGlvbkFjdGlvbiYpCiB7CiAgICAgaWQgZGVsZWdhdGUgPSBbbV93ZWJWaWV3IFVJRGVsZWdh
dGVdOwogICAgIFdlYlZpZXcgKm5ld1dlYlZpZXc7CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCi0gICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpICYmIGZyYW1lLT5kb2N1bWVudCgpLT53ZWJr
aXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkKLSAgICAgICAgZnJhbWUtPmRvY3VtZW50KCkt
PndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsKKyAgICBpZiAoZnJhbWUuZG9jdW1lbnQoKSAmJiBm
cmFtZS5kb2N1bWVudCgpLT53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkKKyAgICAg
ICAgZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOwogI2VuZGlmCiAg
ICAgCiAgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZp
ZXc6Y3JlYXRlV2ViVmlld1dpdGhSZXF1ZXN0OndpbmRvd0ZlYXR1cmVzOildKSB7CkBAIC00Njgs
OSArNDY5LDkgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCgpCiAgICAgcmV0dXJuIFtbbV93ZWJWaWV3IFVJRGVsZWdhdGVdIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRo
TWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOildOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUq
IGZyYW1lKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lJiBmcmFtZSkKIHsKLSAgICByZXR1cm4gQ2Fs
bFVJRGVsZWdhdGVSZXR1cm5pbmdCb29sZWFuKHRydWUsIG1fd2ViVmlldywgQHNlbGVjdG9yKHdl
YlZpZXc6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlG
cmFtZTopLCBtZXNzYWdlLCBraXQoZnJhbWUpKTsKKyAgICByZXR1cm4gQ2FsbFVJRGVsZWdhdGVS
ZXR1cm5pbmdCb29sZWFuKHRydWUsIG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6cnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTopLCBtZXNz
YWdlLCBraXQoJmZyYW1lKSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjbG9zZVdpbmRv
d1Nvb24oKQpAQCAtNDkzLDEyICs0OTQsMTIgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNsb3Nl
V2luZG93U29vbigpCiAgICAgW21fd2ViVmlldyBwZXJmb3JtU2VsZWN0b3I6QHNlbGVjdG9yKF9j
bG9zZVdpbmRvdykgd2l0aE9iamVjdDpuaWwgYWZ0ZXJEZWxheTowLjBdOwogfQogCi12b2lkIFdl
YkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChG
cmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBpZCBkZWxlZ2F0ZSA9
IFttX3dlYlZpZXcgVUlEZWxlZ2F0ZV07CiAgICAgU0VMIHNlbGVjdG9yID0gQHNlbGVjdG9yKHdl
YlZpZXc6cnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1l
Oik7CiAgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6c2VsZWN0b3JdKSB7Ci0g
ICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIG1lc3NhZ2UsIGtpdChm
cmFtZSkpOworICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBtZXNz
YWdlLCBraXQoJmZyYW1lKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTUxMCwxMiAr
NTExLDEyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUq
IGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgfQogfQogCi1ib29sIFdlYkNocm9t
ZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcm
IG1lc3NhZ2UpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJh
bWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgaWQgZGVsZWdhdGUgPSBb
bV93ZWJWaWV3IFVJRGVsZWdhdGVdOwogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJW
aWV3OnJ1bkphdmFTY3JpcHRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1l
Oik7CiAgICAgaWYgKFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6c2VsZWN0b3JdKQotICAg
ICAgICByZXR1cm4gQ2FsbFVJRGVsZWdhdGVSZXR1cm5pbmdCb29sZWFuKE5PLCBtX3dlYlZpZXcs
IHNlbGVjdG9yLCBtZXNzYWdlLCBraXQoZnJhbWUpKTsKKyAgICAgICAgcmV0dXJuIENhbGxVSURl
bGVnYXRlUmV0dXJuaW5nQm9vbGVhbihOTywgbV93ZWJWaWV3LCBzZWxlY3RvciwgbWVzc2FnZSwg
a2l0KCZmcmFtZSkpOwogCiAgICAgLy8gQ2FsbCB0aGUgb2xkIHZlcnNpb24gb2YgdGhlIGRlbGVn
YXRlIG1ldGhvZCBpZiBpdCBpcyBpbXBsZW1lbnRlZC4KICAgICBzZWxlY3RvciA9IEBzZWxlY3Rv
cih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTopOwpAQCAtNTI1
LDEzICs1MjYsMTMgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJt
KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIHJldHVybiBOTzsKIH0K
IAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1l
LCBjb25zdCBTdHJpbmcmIHByb21wdCwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VGV4dCwgU3RyaW5n
JiByZXN1bHQpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFt
ZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgcHJvbXB0LCBjb25zdCBTdHJpbmcmIGRlZmF1bHRUZXh0
LCBTdHJpbmcmIHJlc3VsdCkKIHsKICAgICBpZCBkZWxlZ2F0ZSA9IFttX3dlYlZpZXcgVUlEZWxl
Z2F0ZV07CiAgICAgU0VMIHNlbGVjdG9yID0gQHNlbGVjdG9yKHdlYlZpZXc6cnVuSmF2YVNjcmlw
dFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDpkZWZhdWx0VGV4dDppbml0aWF0ZWRCeUZyYW1lOik7
CiAgICAgTlNTdHJpbmcgKmRlZmF1bHRTdHJpbmcgPSBkZWZhdWx0VGV4dDsKICAgICBpZiAoW2Rl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rvcl0pIHsKLSAgICAgICAgcmVzdWx0ID0g
KE5TU3RyaW5nICopQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3RvciwgcHJvbXB0LCBk
ZWZhdWx0U3RyaW5nLCBraXQoZnJhbWUpKTsKKyAgICAgICAgcmVzdWx0ID0gKE5TU3RyaW5nICop
Q2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3RvciwgcHJvbXB0LCBkZWZhdWx0U3RyaW5n
LCBraXQoJmZyYW1lKSk7CiAgICAgICAgIHJldHVybiAhcmVzdWx0LmlzTnVsbCgpOwogICAgIH0K
IApAQCAtNTQyLDcgKzU0Myw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0
UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvCiAgICAgICAgIHJl
dHVybiAhcmVzdWx0LmlzTnVsbCgpOwogICAgIH0KIAotICAgIHJlc3VsdCA9IFtbV2ViRGVmYXVs
dFVJRGVsZWdhdGUgc2hhcmVkVUlEZWxlZ2F0ZV0gd2ViVmlldzptX3dlYlZpZXcgcnVuSmF2YVNj
cmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDpwcm9tcHQgZGVmYXVsdFRleHQ6ZGVmYXVsdFN0
cmluZyBpbml0aWF0ZWRCeUZyYW1lOmtpdChmcmFtZSldOworICAgIHJlc3VsdCA9IFtbV2ViRGVm
YXVsdFVJRGVsZWdhdGUgc2hhcmVkVUlEZWxlZ2F0ZV0gd2ViVmlldzptX3dlYlZpZXcgcnVuSmF2
YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDpwcm9tcHQgZGVmYXVsdFRleHQ6ZGVmYXVs
dFN0cmluZyBpbml0aWF0ZWRCeUZyYW1lOmtpdCgmZnJhbWUpXTsKICAgICByZXR1cm4gIXJlc3Vs
dC5pc051bGwoKTsKIH0KIApAQCAtNjA2LDcgKzYwNyw3IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBX
ZWJDaHJvbWVDbGllbnQ6OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIDA7
CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwg
Y29uc3QgSW50U2l6ZSYpIGNvbnN0Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXpl
Q2hhbmdlZChGcmFtZSYsIGNvbnN0IEludFNpemUmKSBjb25zdAogewogfQogCkBAIC02MzUsMTIg
KzYzNiwxMiBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVW5hdmFpbGFibGVQbHVnaW5N
ZXNzYWdlQmVCdXR0b24oUmVuZGVyRW1iZWRkZWRPYmplYwogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChF
bGVtZW50KiBlbGVtZW50LCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0Cit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVsZW1lbnQmIGVsZW1lbnQs
IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5V
bmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QKIHsKLSAgICBBU1NFUlQoZWxlbWVudC0+aGFzVGFn
TmFtZShvYmplY3RUYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoZW1iZWRUYWcpIHx8IGVsZW1l
bnQtPmhhc1RhZ05hbWUoYXBwbGV0VGFnKSk7CisgICAgQVNTRVJUKGVsZW1lbnQuaGFzVGFnTmFt
ZShvYmplY3RUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC5o
YXNUYWdOYW1lKGFwcGxldFRhZykpOwogCiAgICAgQVNTRVJUKHBsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uID09IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5NaXNzaW5nKTsKLSAgICBDYWxs
VUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmRpZFByZXNzTWlzc2luZ1Bs
dWdpbkJ1dHRvbjopLCBraXQoZWxlbWVudCkpOworICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmll
dywgQHNlbGVjdG9yKHdlYlZpZXc6ZGlkUHJlc3NNaXNzaW5nUGx1Z2luQnV0dG9uOiksIGtpdCgm
ZWxlbWVudCkpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6bW91c2VEaWRNb3ZlT3ZlckVs
ZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCB1bnNpZ25lZCBtb2RpZmllckZsYWdz
KQpAQCAtNjU3LDIxICs2NTgsMjEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAo
Y29uc3QgU3RyaW5nJiB0b29sVGlwLCBUZXh0RGlyZWN0aW9uKQogICAgICAgICBbKFdlYkhUTUxW
aWV3ICopZG9jdW1lbnRWaWV3IF9zZXRUb29sVGlwOnRvb2xUaXBdOwogfQogCi12b2lkIFdlYkNo
cm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1lKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBy
aW50KEZyYW1lJiBmcmFtZSkKIHsKLSAgICBXZWJGcmFtZSAqd2ViRnJhbWUgPSBraXQoZnJhbWUp
OworICAgIFdlYkZyYW1lICp3ZWJGcmFtZSA9IGtpdCgmZnJhbWUpOwogICAgIGlmIChbW21fd2Vi
VmlldyBVSURlbGVnYXRlXSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6cHJp
bnRGcmFtZTopXSkKICAgICAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Io
d2ViVmlldzpwcmludEZyYW1lOiksIHdlYkZyYW1lKTsKICAgICBlbHNlCiAgICAgICAgIENhbGxV
SURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6cHJpbnRGcmFtZVZpZXc6KSwg
W3dlYkZyYW1lIGZyYW1lVmlld10pOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVk
ZWREYXRhYmFzZVF1b3RhKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUs
IERhdGFiYXNlRGV0YWlscykKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNl
UXVvdGEoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VE
ZXRhaWxzKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIFdlYlNl
Y3VyaXR5T3JpZ2luICp3ZWJPcmlnaW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5p
dFdpdGhXZWJDb3JlU2VjdXJpdHlPcmlnaW46JmZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpXTsKLSAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3
OmZyYW1lOmV4Y2VlZGVkRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmRhdGFiYXNlOiks
IGtpdChmcmFtZSksIHdlYk9yaWdpbiwgKE5TU3RyaW5nICopZGF0YWJhc2VOYW1lKTsKKyAgICBX
ZWJTZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdpbiBhbGxvY10g
X2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOiZmcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0
eU9yaWdpbigpXTsKKyAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJW
aWV3OmZyYW1lOmV4Y2VlZGVkRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmRhdGFiYXNl
OiksIGtpdCgmZnJhbWUpLCB3ZWJPcmlnaW4sIChOU1N0cmluZyAqKWRhdGFiYXNlTmFtZSk7CiAg
ICAgW3dlYk9yaWdpbiByZWxlYXNlXTsKIAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CkBAIC02ODIsMTEgKzY4MywxMSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZE1heEFw
cENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKQogICAgIC8vIEZJWE1FOiBGcmVlIHNvbWUg
c3BhY2UuCiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGludDY0X3QgdG90YWxTcGFjZU5l
ZWRlZCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGludDY0X3QgdG90YWxTcGFjZU5lZWRlZCkK
IHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBXZWJTZWN1cml0eU9y
aWdpbiAqd2ViT3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdpbiBhbGxvY10gX2luaXRXaXRoV2Vi
Q29yZVNlY3VyaXR5T3JpZ2luOm9yaWdpbl07CisgICAgV2ViU2VjdXJpdHlPcmlnaW4gKndlYk9y
aWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0aFdlYkNvcmVTZWN1cml0
eU9yaWdpbjomb3JpZ2luXTsKICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rv
cih3ZWJWaWV3OmV4Y2VlZGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhRm9yU2VjdXJpdHlP
cmlnaW46dG90YWxTcGFjZU5lZWRlZDopLCB3ZWJPcmlnaW4sIHN0YXRpY19jYXN0PE5TVUludGVn
ZXI+KHRvdGFsU3BhY2VOZWVkZWQpKTsKICAgICBbd2ViT3JpZ2luIHJlbGVhc2VdOwogCkBAIC03
MDUsMTIgKzcwNiwxNCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6YW5ub3RhdGVkUmVnaW9uc0No
YW5nZWQoKQogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLXN0ZDo6dW5p
cXVlX3B0cjxDb2xvckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2Vy
KENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQor
CitzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNv
bG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmIGNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRp
YWxDb2xvcikKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IDxpbnB1dCB0eXBlPSdjb2xvcic+
IGZvciBXSzEgKEJ1ZyAxMTkwOTQpLgogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJl
dHVybiBudWxscHRyOwogfQorCiAjZW5kaWYKIAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCkBA
IC04NDgsMTQgKzg1MSwxNCBAQCBTdHJpbmcgV2ViQ2hyb21lQ2xpZW50OjpnZW5lcmF0ZVJlcGxh
Y2VtZW50RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgcmV0dXJuIFtbbV93ZWJWaWV3IF9V
SURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Om1fd2ViVmlldyBnZW5lcmF0ZVJlcGxhY2VtZW50
RmlsZTpwYXRoXTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRGb2N1cyhj
b25zdCBXZWJDb3JlOjpOb2RlKiBub2RlKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnRE
aWRGb2N1cyhXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50KQogewotICAgIENhbGxVSURlbGVnYXRl
KG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6Zm9ybURpZEZvY3VzTm9kZTopLCBraXQoY29u
c3RfY2FzdDxXZWJDb3JlOjpOb2RlKj4obm9kZSkpKTsKKyAgICBDYWxsVUlEZWxlZ2F0ZShtX3dl
YlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZvcm1EaWRGb2N1c05vZGU6KSwga2l0KCZlbGVtZW50
KSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkQmx1cihjb25zdCBXZWJD
b3JlOjpOb2RlKiBub2RlKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRCbHVyKFdl
YkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3
LCBAc2VsZWN0b3Iod2ViVmlldzpmb3JtRGlkQmx1ck5vZGU6KSwga2l0KGNvbnN0X2Nhc3Q8V2Vi
Q29yZTo6Tm9kZSo+KG5vZGUpKSk7CisgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2Vs
ZWN0b3Iod2ViVmlldzpmb3JtRGlkQmx1ck5vZGU6KSwga2l0KCZlbGVtZW50KSk7CiB9CiAKIGJv
b2wgV2ViQ2hyb21lQ2xpZW50OjpzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgp
CkBAIC04NzQsMTkgKzg3NywxOSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6aGFzT3BlbmVkUG9w
dXAoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUmVmUHRyPFdlYkNvcmU6OlBvcHVw
TWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51
Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmIGNsaWVu
dCkgY29uc3QKIHsKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIHJldHVybiBhZG9wdFJlZihuZXcg
UG9wdXBNZW51TWFjKGNsaWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFBvcHVwTWVu
dU1hYygmY2xpZW50KSk7CiAjZWxzZQogICAgIHJldHVybiBudWxscHRyOwogI2VuZGlmCiB9CiAK
LVJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRl
U2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAor
UmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVT
ZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7
CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVw
TWVudU1hYyhjbGllbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTZWFyY2hQb3B1cE1l
bnVNYWMoJmNsaWVudCkpOwogI2Vsc2UKICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgpAQCAt
OTAyLDExICs5MDUsMTEgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFBhaW50RW50aXJl
Q29udGVudHMoKSBjb25zdAogI2VuZGlmCiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRh
Y2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNz
TGF5ZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJh
bWUmIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQogewogICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKIAotICAgIE5TVmlldyAqZG9jdW1lbnRWaWV3ID0gW1traXQo
ZnJhbWUpIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKKyAgICBOU1ZpZXcgKmRvY3VtZW50Vmll
dyA9IFtba2l0KCZmcmFtZSkgZnJhbWVWaWV3XSBkb2N1bWVudFZpZXddOwogICAgIGlmICghW2Rv
Y3VtZW50VmlldyBpc0tpbmRPZkNsYXNzOltXZWJIVE1MVmlldyBjbGFzc11dKSB7CiAgICAgICAg
IC8vIFdlIHNob3VsZCBuZXZlciBiZSBhdHRhY2hpbmcgd2hlbiB3ZSBkb24ndCBoYXZlIGEgV2Vi
SFRNTFZpZXcuCiAgICAgICAgIEFTU0VSVCghZ3JhcGhpY3NMYXllcik7CkBAIC05MjEsNyArOTI0
LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1l
KiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3JhcGgKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlHcmFwaGlj
c0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciopCit2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0
YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopCiB7CiAg
ICAgLy8gRklYTUU6IElmIHdlIHdhbnQgdmlldy1yZWxhdGl2ZSBwYWdlIG92ZXJsYXlzIGluIExl
Z2FjeSBXZWJLaXQsIHRoaXMgd291bGQgYmUgdGhlIHBsYWNlIHRvIGhvb2sgdGhlbSB1cC4KIH0K
QEAgLTk0MSw2ICs5NDQsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVDb21wb3Np
dGluZ0xheWVyRmx1c2goKQogfQogCiAjaWYgRU5BQkxFKFZJREVPKQorCiBib29sIFdlYkNocm9t
ZUNsaWVudDo6c3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oSFRNTE1lZGlhRWxlbWVudEVudW1zOjpW
aWRlb0Z1bGxzY3JlZW5Nb2RlKQogewogI2lmIFBMQVRGT1JNKElPUykKQEAgLTk2NSw3ICs5Njks
MTAgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWUKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOyAgICAKIH0KIAotI2lmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKQorI2VuZGlmIC8vIEVOQUJMRShWSURFTykKKworI2lmIEVOQUJMRShWSURFTykg
JiYgUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisKIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKEhUTUxNZWRp
YUVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgW21fd2ViVmlldyBfc2V0VXBQbGF5YmFja0NvbnRy
b2xzTWFuYWdlckZvck1lZGlhRWxlbWVudDplbGVtZW50XTsKQEAgLTk3NSw1NCArOTgyLDU1IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkKIHsK
ICAgICBbbV93ZWJWaWV3IF9jbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyXTsKIH0KLSNlbmRp
ZiAvLyBQTEFURk9STShNQUMpCi0jZW5kaWYgLy8gRU5BQkxFKFZJREVPKQorCisjZW5kaWYKIAog
I2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBv
cnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxlbWVudCogZWxlbWVudCwgYm9vbCB3aXRo
S2V5Ym9hcmQpCitib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxl
bWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50LCBib29sIHdpdGhLZXlib2FyZCkKIHsKICAgICBT
RUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVt
ZW50OndpdGhLZXlib2FyZDopOwogICAgIGlmIChbW21fd2ViVmlldyBVSURlbGVnYXRlXSByZXNw
b25kc1RvU2VsZWN0b3I6c2VsZWN0b3JdKQotICAgICAgICByZXR1cm4gQ2FsbFVJRGVsZWdhdGVS
ZXR1cm5pbmdCb29sZWFuKGZhbHNlLCBtX3dlYlZpZXcsIHNlbGVjdG9yLCBraXQoY29uc3RfY2Fz
dDxXZWJDb3JlOjpFbGVtZW50Kj4oZWxlbWVudCkpLCB3aXRoS2V5Ym9hcmQpOworICAgICAgICBy
ZXR1cm4gQ2FsbFVJRGVsZWdhdGVSZXR1cm5pbmdCb29sZWFuKGZhbHNlLCBtX3dlYlZpZXcsIHNl
bGVjdG9yLCBraXQoY29uc3RfY2FzdDxXZWJDb3JlOjpFbGVtZW50Kj4oJmVsZW1lbnQpKSwgd2l0
aEtleWJvYXJkKTsKICNpZiAhUExBVEZPUk0oSU9TKQotICAgIHJldHVybiBbbV93ZWJWaWV3IF9z
dXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50OmNvbnN0X2Nhc3Q8V2ViQ29yZTo6RWxlbWVudCo+
KGVsZW1lbnQpIHdpdGhLZXlib2FyZDp3aXRoS2V5Ym9hcmRdOworICAgIHJldHVybiBbbV93ZWJW
aWV3IF9zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50OmNvbnN0X2Nhc3Q8V2ViQ29yZTo6RWxl
bWVudCo+KCZlbGVtZW50KSB3aXRoS2V5Ym9hcmQ6d2l0aEtleWJvYXJkXTsKICNlbHNlCiAgICAg
cmV0dXJuIE5POwogI2VuZGlmCiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogewogICAgIFNFTCBz
ZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQ6bGlz
dGVuZXI6KTsKICAgICBpZiAoW1ttX3dlYlZpZXcgVUlEZWxlZ2F0ZV0gcmVzcG9uZHNUb1NlbGVj
dG9yOnNlbGVjdG9yXSkgewotICAgICAgICBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIqIGxpc3Rl
bmVyID0gW1tXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoRWxlbWVudDpl
bGVtZW50XTsKLSAgICAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3Rvciwga2l0
KGVsZW1lbnQpLCBsaXN0ZW5lcik7CisgICAgICAgIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciog
bGlzdGVuZXIgPSBbW1dlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhFbGVt
ZW50OiZlbGVtZW50XTsKKyAgICAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3Rv
ciwga2l0KCZlbGVtZW50KSwgbGlzdGVuZXIpOwogICAgICAgICBbbGlzdGVuZXIgcmVsZWFzZV07
CiAgICAgfQogI2lmICFQTEFURk9STShJT1MpCiAgICAgZWxzZQotICAgICAgICBbbV93ZWJWaWV3
IF9lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50OmVsZW1lbnRdOworICAgICAgICBbbV93ZWJWaWV3
IF9lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50OiZlbGVtZW50XTsKICNlbmRpZgogfQogCi12b2lk
IFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1l
bnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1l
bnQmIGVsZW1lbnQpCiB7CiAgICAgU0VMIHNlbGVjdG9yID0gQHNlbGVjdG9yKHdlYlZpZXc6ZXhp
dEZ1bGxTY3JlZW5Gb3JFbGVtZW50Omxpc3RlbmVyOik7CiAgICAgaWYgKFtbbV93ZWJWaWV3IFVJ
RGVsZWdhdGVdIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rvcl0pIHsKLSAgICAgICAgV2ViS2l0
RnVsbFNjcmVlbkxpc3RlbmVyKiBsaXN0ZW5lciA9IFtbV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVy
IGFsbG9jXSBpbml0V2l0aEVsZW1lbnQ6ZWxlbWVudF07Ci0gICAgICAgIENhbGxVSURlbGVnYXRl
KG1fd2ViVmlldywgc2VsZWN0b3IsIGtpdChlbGVtZW50KSwgbGlzdGVuZXIpOworICAgICAgICBX
ZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIqIGxpc3RlbmVyID0gW1tXZWJLaXRGdWxsU2NyZWVuTGlz
dGVuZXIgYWxsb2NdIGluaXRXaXRoRWxlbWVudDomZWxlbWVudF07CisgICAgICAgIENhbGxVSURl
bGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIGtpdCgmZWxlbWVudCksIGxpc3RlbmVyKTsKICAg
ICAgICAgW2xpc3RlbmVyIHJlbGVhc2VdOwogICAgIH0KICNpZiAhUExBVEZPUk0oSU9TKQogICAg
IGVsc2UKLSAgICAgICAgW21fd2ViVmlldyBfZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50OmVsZW1l
bnRdOworICAgICAgICBbbV93ZWJWaWV3IF9leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6JmVsZW1l
bnRdOwogI2VuZGlmCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKICNp
ZiBFTkFCTEUoU1VCVExFX0NSWVBUTykKKwogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OndyYXBDcnlw
dG9LZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBrZXksIFZlY3Rvcjx1aW50OF90PiYgd3JhcHBl
ZEtleSkgY29uc3QKIHsKICAgICBWZWN0b3I8dWludDhfdD4gbWFzdGVyS2V5OwpAQCAtMTA0OCw5
ICsxMDU2LDExIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojp1bndyYXBDcnlwdG9LZXkoY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiB3cmFwcGVkS2V5LCBWZWN0b3I8CiAKICAgICByZXR1cm4gdW53cmFw
U2VyaWFsaXplZENyeXB0b0tleShtYXN0ZXJLZXksIHdyYXBwZWRLZXksIGtleSk7CiB9CisKICNl
bmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCisKIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpoYW5kbGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb24m
IHNlbGVjdGlvbiwgY29uc3QgVmVjdG9yPFN0cmluZz4mIHRlbGVwaG9uZU51bWJlcnMsIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCkKIHsKICAgICBbbV93ZWJWaWV3IF9zZWxlY3Rpb25T
ZXJ2aWNlQ29udHJvbGxlcl0uaGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKHNlbGVjdGlvbiwg
dGVsZXBob25lTnVtYmVycywgcG9pbnQpOwpAQCAtMTA2NCw2ICsxMDc0LDcgQEAgYm9vbCBXZWJD
aHJvbWVDbGllbnQ6Omhhc1JlbGV2YW50U2VsZWN0aW9uU2VydmljZXMoYm9vbCBpc1RleHRPbmx5
KSBjb25zdAogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAm
JiAhUExBVEZPUk0oSU9TKQorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6YWRkUGxheWJhY2tUYXJn
ZXRQaWNrZXJDbGllbnQodWludDY0X3QgY29udGV4dElkKQogewogICAgIFttX3dlYlZpZXcgX2Fk
ZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50OmNvbnRleHRJZF07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJGcmFtZS5tbQppbmRleCBmMjRkNjQzY2ExNDE0MzFlYWY3NjhkOGE3ZTI2ZmMzNDA0
YWZhZjRmLi5iZDhhNGQ1MDZiMzk5MmJhZTkyOGQ2ODc2ZTZhMDQ0NjE5NzMwOWI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTMwMiwxNCArMzAyLDE0IEBAICsgKFJl
ZjxXZWJDb3JlOjpGcmFtZT4pX2NyZWF0ZUZyYW1lV2l0aFBhZ2U6KFBhZ2UqKXBhZ2UgZnJhbWVO
YW1lOihjb25zdCBTdHJpbmcmCiAgICAgV2ViVmlldyAqd2ViVmlldyA9IGtpdChwYWdlKTsKIAog
ICAgIFdlYkZyYW1lICpmcmFtZSA9IFtbc2VsZiBhbGxvY10gX2luaXRXaXRoV2ViRnJhbWVWaWV3
OmZyYW1lVmlldyB3ZWJWaWV3OndlYlZpZXddOwotICAgIFJlZjxXZWJDb3JlOjpGcmFtZT4gY29y
ZUZyYW1lID0gRnJhbWU6OmNyZWF0ZShwYWdlLCBvd25lckVsZW1lbnQsIG5ldyBXZWJGcmFtZUxv
YWRlckNsaWVudChmcmFtZSkpOworICAgIGF1dG8gY29yZUZyYW1lID0gRnJhbWU6OmNyZWF0ZShw
YWdlLCBvd25lckVsZW1lbnQsIG5ldyBXZWJGcmFtZUxvYWRlckNsaWVudChmcmFtZSkpOwogICAg
IFtmcmFtZSByZWxlYXNlXTsKICAgICBmcmFtZS0+X3ByaXZhdGUtPmNvcmVGcmFtZSA9IGNvcmVG
cmFtZS5wdHIoKTsKIAogICAgIGNvcmVGcmFtZS5nZXQoKS50cmVlKCkuc2V0TmFtZShuYW1lKTsK
ICAgICBpZiAob3duZXJFbGVtZW50KSB7CiAgICAgICAgIEFTU0VSVChvd25lckVsZW1lbnQtPmRv
Y3VtZW50KCkuZnJhbWUoKSk7Ci0gICAgICAgIG93bmVyRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFt
ZSgpLT50cmVlKCkuYXBwZW5kQ2hpbGQoY29yZUZyYW1lLnB0cigpKTsKKyAgICAgICAgb3duZXJF
bGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCktPnRyZWUoKS5hcHBlbmRDaGlsZChjb3JlRnJhbWUu
Z2V0KCkpOwogICAgIH0KIAogICAgIGNvcmVGcmFtZS5nZXQoKS5pbml0KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIvU291cmNlL1dlYktp
dC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCAxNGU5NzEwZDE1ZDc5YmYzYjU1YzQw
MDllNTY2ODRhMGVlM2Q3ODM3Li4yOTgxNTNkZjNjNGFkN2Y3NGFiMjVmOTgwOWJmZGRiMjJkODA3
Mzg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTU5Myw3
ICs1OTMsNyBAQCBOUEVycm9yIFBsdWdpblZpZXc6OmRlc3Ryb3lTdHJlYW0oTlBTdHJlYW0qIHN0
cmVhbSwgTlBSZWFzb24gcmVhc29uKQogdm9pZCBQbHVnaW5WaWV3OjpzdGF0dXMoY29uc3QgY2hh
ciogbWVzc2FnZSkKIHsKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fcGFyZW50RnJhbWUtPnBhZ2Uo
KSkKLSAgICAgICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dChtX3BhcmVudEZyYW1l
LmdldCgpLCBTdHJpbmc6OmZyb21VVEY4KG1lc3NhZ2UpKTsKKyAgICAgICAgcGFnZS0+Y2hyb21l
KCkuc2V0U3RhdHVzYmFyVGV4dCgqbV9wYXJlbnRGcmFtZSwgU3RyaW5nOjpmcm9tVVRGOChtZXNz
YWdlKSk7CiB9CiAKIE5QRXJyb3IgUGx1Z2luVmlldzo6c2V0VmFsdWUoTlBQVmFyaWFibGUgdmFy
aWFibGUsIHZvaWQqIHZhbHVlKQpAQCAtNzkzLDcgKzc5Myw3IEBAIFBsdWdpblZpZXc6OlBsdWdp
blZpZXcoRnJhbWUqIHBhcmVudEZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplLCBQbHVnaW5QYWNr
YWdlKiBwCiB2b2lkIFBsdWdpblZpZXc6OmZvY3VzUGx1Z2luRWxlbWVudCgpCiB7CiAgICAgaWYg
KFBhZ2UqIHBhZ2UgPSBtX3BhcmVudEZyYW1lLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmZvY3Vz
Q29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG1fZWxlbWVudCwgbV9wYXJlbnRGcmFtZSk7
CisgICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG1fZWxl
bWVudCwgKm1fcGFyZW50RnJhbWUpOwogICAgIGVsc2UKICAgICAgICAgbV9wYXJlbnRGcmFtZS0+
ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZEVsZW1lbnQobV9lbGVtZW50KTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4
IGE3NzNiMWFiMTQxNzRlMDIwYzYyZDlkMDQ3ODZkMmEyODIxY2I3ODQuLmFiNjUxNDQ0ZjkyMTlh
Njc3NmJmODdlYjE4YjI4MWNiZDI0MTIwYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTg5LDE1ICsxODksMTUg
QEAgc3RhdGljIENPTVB0cjxJUHJvcGVydHlCYWc+IGNyZWF0ZVdpbmRvd0ZlYXR1cmVzUHJvcGVy
dHlCYWcoY29uc3QgV2luZG93RmVhdHVyZXMKICAgICByZXR1cm4gQ09NUHRyPElQcm9wZXJ0eUJh
Zz4oQWRvcHRDT00sIENPTVByb3BlcnR5QmFnPENPTVZhcmlhbnQ+OjphZG9wdChtYXApKTsKIH0K
IAotUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUqIGZyYW1lLCBjb25z
dCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25z
dCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQorUGFnZSogV2ViQ2hyb21lQ2xp
ZW50OjpjcmVhdGVXaW5kb3coRnJhbWUmIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0Jiwg
Y29uc3QgV2luZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBu
YXZpZ2F0aW9uQWN0aW9uKQogewogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gZGVsZWdhdGUg
PSB1aURlbGVnYXRlKCk7CiAgICAgaWYgKCFkZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuIDA7CiAK
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpICYm
IGZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkKLSAg
ICAgICAgZnJhbWUtPmRvY3VtZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsKKyAgICBp
ZiAoZnJhbWUuZG9jdW1lbnQoKSAmJiBmcmFtZS5kb2N1bWVudCgpLT53ZWJraXRDdXJyZW50RnVs
bFNjcmVlbkVsZW1lbnQoKSkKKyAgICAgICAgZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2Vs
RnVsbFNjcmVlbigpOwogI2VuZGlmCiAKICAgICBDT01QdHI8V2ViTXV0YWJsZVVSTFJlcXVlc3Q+
IHJlcXVlc3QgPSBhZG9wdENPTShXZWJNdXRhYmxlVVJMUmVxdWVzdDo6Y3JlYXRlSW5zdGFuY2Uo
UmVzb3VyY2VSZXF1ZXN0KG5hdmlnYXRpb25BY3Rpb24udXJsKCkpKSk7CkBAIC0zNjEsMTIgKzM2
MSwxMiBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSogZnJh
bWUpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmIGZyYW1lKQogewogICAgIEJPT0wgcmVzdWx0ID0g
VFJVRTsKICAgICBJV2ViVUlEZWxlZ2F0ZSogdWk7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZp
ZXctPnVpRGVsZWdhdGUoJnVpKSkgJiYgdWkpIHsKLSAgICAgICAgV2ViRnJhbWUqIHdlYkZyYW1l
ID0ga2l0KGZyYW1lKTsKKyAgICAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0ga2l0KCZmcmFtZSk7
CiAgICAgICAgIHVpLT5ydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRoTWVzc2FnZShtX3dl
YlZpZXcsIEJTdHJpbmcobWVzc2FnZSksIHdlYkZyYW1lLCAmcmVzdWx0KTsKICAgICAgICAgdWkt
PlJlbGVhc2UoKTsKICAgICB9CkBAIC0zOTMsMTQgKzM5MywxNCBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6Y2xvc2VXaW5kb3dTb29uKCkKICAgICBtX3dlYlZpZXctPmNsb3NlV2luZG93U29vbigp
OwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiwg
Y29uc3QgU3RyaW5nJiBtZXNzYWdlKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3Jp
cHRBbGVydChGcmFtZSYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBDT01QdHI8SVdl
YlVJRGVsZWdhdGU+IHVpOwogICAgIGlmIChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRl
KCZ1aSkpKQogICAgICAgICB1aS0+cnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZSht
X3dlYlZpZXcsIEJTdHJpbmcobWVzc2FnZSkpOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6
cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCitib29s
IFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpCiB7CiAgICAgQk9PTCByZXN1bHQgPSBGQUxTRTsKICAgICBDT01QdHI8SVdl
YlVJRGVsZWdhdGU+IHVpOwpAQCAtNDA5LDcgKzQwOSw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50
OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAg
ICByZXR1cm4gISFyZXN1bHQ7CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2Ny
aXB0UHJvbXB0KEZyYW1lKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRl
ZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2
YVNjcmlwdFByb21wdChGcmFtZSYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQogewogICAgIENPTVB0cjxJV2ViVUlEZWxl
Z2F0ZT4gdWk7CiAgICAgaWYgKEZBSUxFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpKSkpCkBA
IC01MDgsNyArNTA4LDcgQEAgUGxhdGZvcm1QYWdlQ2xpZW50IFdlYkNocm9tZUNsaWVudDo6cGxh
dGZvcm1QYWdlQ2xpZW50KCkgY29uc3QKICAgICByZXR1cm4gdmlld1dpbmRvdzsKIH0KIAotdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJbnRT
aXplJikgY29uc3QKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZy
YW1lJiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0CiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
QEAgLTU0MCw3ICs1NDAsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVW5hdmFpbGFi
bGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVyRW1iZWRkZWRPYmplYwogICAgIHJldHVybiB1
aURlbGVnYXRlUHJpdmF0ZTM7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJs
ZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVyRW1iZWRkZWRPYmpl
Y3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29u
KSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xp
Y2tlZChFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFp
bGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0CiB7CiAgICAg
QVNTRVJUX1VOVVNFRChwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgcGx1Z2luVW5hdmFpbGFi
aWxpdHlSZWFzb24gPT0gUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpbk1pc3NpbmcpOwogCkBA
IC01NTIsNyArNTUyLDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1Z2lu
QnV0dG9uQ2xpY2tlZChFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJFbWIKICAgICBpZiAoIXVpRGVs
ZWdhdGVQcml2YXRlMykKICAgICAgICAgcmV0dXJuOwogCi0gICAgQ09NUHRyPElET01FbGVtZW50
PiBlKEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZShlbGVtZW50KSk7CisgICAg
Q09NUHRyPElET01FbGVtZW50PiBlKEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5j
ZSgmZWxlbWVudCkpOwogICAgIHVpRGVsZWdhdGVQcml2YXRlMy0+ZGlkUHJlc3NNaXNzaW5nUGx1
Z2luQnV0dG9uKGUuZ2V0KCkpOwogfQogCkBAIC01NjEsMjEgKzU2MSwyMSBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmIHRvb2xUaXAsIFRleHREaXJlY3Rp
b24pCiAgICAgbV93ZWJWaWV3LT5zZXRUb29sVGlwKHRvb2xUaXApOwogfQogCi12b2lkIFdlYkNo
cm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1lKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnBy
aW50KEZyYW1lJiBmcmFtZSkKIHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdh
dGU7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUp
KSkKLSAgICAgICAgdWlEZWxlZ2F0ZS0+cHJpbnRGcmFtZShtX3dlYlZpZXcsIGtpdChmcmFtZSkp
OworICAgICAgICB1aURlbGVnYXRlLT5wcmludEZyYW1lKG1fd2ViVmlldywga2l0KCZmcmFtZSkp
OwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1l
KiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIsIERhdGFiYXNlRGV0YWls
cykKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUmIGZy
YW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlSWRlbnRpZmllciwgRGF0YWJhc2VEZXRhaWxzKQog
ewotICAgIENPTVB0cjxXZWJTZWN1cml0eU9yaWdpbj4gb3JpZ2luKEFkb3B0Q09NLCBXZWJTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlSW5zdGFuY2UoJmZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpKSk7CisgICAgQ09NUHRyPFdlYlNlY3VyaXR5T3JpZ2luPiBvcmlnaW4oQWRvcHRDT00s
IFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVJbnN0YW5jZSgmZnJhbWUuZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKSkpOwogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsK
ICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7
CiAgICAgICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZVByaXZhdGU+IHVpRGVsZWdhdGVQcml2YXRl
KFF1ZXJ5LCB1aURlbGVnYXRlKTsKICAgICAgICAgaWYgKHVpRGVsZWdhdGVQcml2YXRlKQotICAg
ICAgICAgICAgdWlEZWxlZ2F0ZVByaXZhdGUtPmV4Y2VlZGVkRGF0YWJhc2VRdW90YShtX3dlYlZp
ZXcsIGtpdChmcmFtZSksIG9yaWdpbi5nZXQoKSwgQlN0cmluZyhkYXRhYmFzZUlkZW50aWZpZXIp
KTsKKyAgICAgICAgICAgIHVpRGVsZWdhdGVQcml2YXRlLT5leGNlZWRlZERhdGFiYXNlUXVvdGEo
bV93ZWJWaWV3LCBraXQoJmZyYW1lKSwgb3JpZ2luLmdldCgpLCBCU3RyaW5nKGRhdGFiYXNlSWRl
bnRpZmllcikpOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiByZW1vdmUg
dGhpcyB3b3JrYXJvdW5kIG9uY2Ugc2hpcHBpbmcgU2FmYXJpIGhhcyB0aGUgbmVjZXNzYXJ5IGRl
bGVnYXRlIGltcGxlbWVudGVkLgogICAgICAgICAgICAgV0NIQVIgcGF0aFtNQVhfUEFUSF07CkBA
IC02MTMsNyArNjEzLDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRNYXhBcHBDYWNo
ZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12
b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShT
ZWN1cml0eU9yaWdpbiosIGludDY0X3QpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiYsIGludDY0X3QpCiB7CiAg
ICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KQEAgLTcxNywxMiArNzE3LDEyIEBAIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCkKICAgICBtX3dlYlZp
ZXctPnNldExhc3RDdXJzb3IoOjpHZXRDdXJzb3IoKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIq
IGdyYXBoaWNzTGF5ZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNz
TGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQogewogICAgIG1fd2Vi
Vmlldy0+c2V0Um9vdENoaWxkTGF5ZXIoZ3JhcGhpY3NMYXllcik7CiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGlj
c0xheWVyKikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNz
TGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikKIHsKICAgICAvLyBGSVhNRTogSWYgd2Ugd2Fu
dCB2aWV3LXJlbGF0aXZlIHBhZ2Ugb3ZlcmxheXMgaW4gTGVnYWN5IFdlYktpdCBvbiBXaW5kb3dz
LCB0aGlzIHdvdWxkIGJlIHRoZSBwbGFjZSB0byBob29rIHRoZW0gdXAuCiB9CkBAIC03NTMsNyAr
NzUzLDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKEhU
TUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2MKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50
KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpl
bnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRl
b0VsZW1lbnQsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkKIHsK
ICAgICBtX3dlYlZpZXctPmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KHZpZGVv
RWxlbWVudCk7CiB9CkBAIC03ODEsNTkgKzc4MSw2MSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6
aGFzT3BlbmVkUG9wdXAoKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotUmVmUHRyPFBv
cHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0
ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFBvcHVwTWVudVdpbihjbGllbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFBvcHVwTWVudVdpbigmY2xpZW50KSk7CiB9CiAKLVJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+
IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCog
Y2xpZW50KSBjb25zdAorUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50Ojpj
cmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVXaW4oY2xpZW50KSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVXaW4oJmNsaWVudCkpOwogfQogCiAj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRz
RnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxlbWVudCogZWxlbWVudCwgYm9vbCByZXF1ZXN0
aW5nS2V5Ym9hcmRBY2Nlc3MpCisKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxT
Y3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIGJvb2wgcmVxdWVzdGluZ0tl
eWJvYXJkQWNjZXNzKQogewogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsK
ICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7
CiAgICAgICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZVByaXZhdGU0PiB1aURlbGVnYXRlUHJpdmF0
ZTQoUXVlcnksIHVpRGVsZWdhdGUpOwogICAgICAgICBCT09MIHN1cHBvcnRzID0gRkFMU0U7Ci0g
ICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxlbWVudChBZG9wdENPTSwgRE9NRWxlbWVu
dDo6Y3JlYXRlSW5zdGFuY2UoY29uc3RfY2FzdDxFbGVtZW50Kj4oZWxlbWVudCkpKTsKKyAgICAg
ICAgQ09NUHRyPElET01FbGVtZW50PiBkb21FbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50Ojpj
cmVhdGVJbnN0YW5jZShjb25zdF9jYXN0PEVsZW1lbnQqPigmZWxlbWVudCkpKTsKIAogICAgICAg
ICBpZiAodWlEZWxlZ2F0ZVByaXZhdGU0ICYmIFNVQ0NFRURFRCh1aURlbGVnYXRlUHJpdmF0ZTQt
PnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoZG9tRWxlbWVudC5nZXQoKSwgcmVxdWVzdGlu
Z0tleWJvYXJkQWNjZXNzLCAmc3VwcG9ydHMpKSkKICAgICAgICAgICAgIHJldHVybiBzdXBwb3J0
czsKICAgICB9CiAKLSAgICByZXR1cm4gbV93ZWJWaWV3LT5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JF
bGVtZW50KGVsZW1lbnQsIHJlcXVlc3RpbmdLZXlib2FyZEFjY2Vzcyk7CisgICAgcmV0dXJuIG1f
d2ViVmlldy0+c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCgmZWxlbWVudCwgcmVxdWVzdGlu
Z0tleWJvYXJkQWNjZXNzKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNj
cmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpl
bnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgQ09NUHRy
PElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOwogICAgIGlmIChTVUNDRUVERUQobV93ZWJWaWV3
LT51aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkpIHsKICAgICAgICAgQ09NUHRyPElXZWJVSURlbGVn
YXRlUHJpdmF0ZTQ+IHVpRGVsZWdhdGVQcml2YXRlNChRdWVyeSwgdWlEZWxlZ2F0ZSk7Ci0gICAg
ICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxlbWVudChBZG9wdENPTSwgRE9NRWxlbWVudDo6
Y3JlYXRlSW5zdGFuY2UoZWxlbWVudCkpOworICAgICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRv
bUVsZW1lbnQoQWRvcHRDT00sIERPTUVsZW1lbnQ6OmNyZWF0ZUluc3RhbmNlKCZlbGVtZW50KSk7
CiAgICAgICAgIGlmICh1aURlbGVnYXRlUHJpdmF0ZTQgJiYgU1VDQ0VFREVEKHVpRGVsZWdhdGVQ
cml2YXRlNC0+ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChkb21FbGVtZW50LmdldCgpKSkpCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgfSAKIAotICAgIG1fd2ViVmlldy0+c2V0RnVsbFNjcmVl
bkVsZW1lbnQoZWxlbWVudCk7CisgICAgbV93ZWJWaWV3LT5zZXRGdWxsU2NyZWVuRWxlbWVudCgm
ZWxlbWVudCk7CiAgICAgbV93ZWJWaWV3LT5mdWxsU2NyZWVuQ29udHJvbGxlcigpLT5lbnRlckZ1
bGxTY3JlZW4oKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9y
RWxlbWVudChFbGVtZW50KiBlbGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxs
U2NyZWVuRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogewogICAgIENPTVB0cjxJV2ViVUlE
ZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxl
Z2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CiAgICAgICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZVByaXZh
dGU0PiB1aURlbGVnYXRlUHJpdmF0ZTQoUXVlcnksIHVpRGVsZWdhdGUpOwotICAgICAgICBDT01Q
dHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00sIERPTUVsZW1lbnQ6OmNyZWF0ZUlu
c3RhbmNlKGVsZW1lbnQpKTsKKyAgICAgICAgQ09NUHRyPElET01FbGVtZW50PiBkb21FbGVtZW50
KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZSgmZWxlbWVudCkpOwogICAgICAg
ICBpZiAodWlEZWxlZ2F0ZVByaXZhdGU0ICYmIFNVQ0NFRURFRCh1aURlbGVnYXRlUHJpdmF0ZTQt
PmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChkb21FbGVtZW50LmdldCgpKSkpCiAgICAgICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgQVNTRVJUKGVsZW1lbnQgPT0gbV93ZWJWaWV3LT5mdWxs
U2NyZWVuRWxlbWVudCgpKTsKKyAgICBBU1NFUlQoJmVsZW1lbnQgPT0gbV93ZWJWaWV3LT5mdWxs
U2NyZWVuRWxlbWVudCgpKTsKICAgICBtX3dlYlZpZXctPmZ1bGxTY3JlZW5Db250cm9sbGVyKCkt
PmV4aXRGdWxsU2NyZWVuKCk7CiB9CisKICNlbmRpZgogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6
QVhTdGFydEZyYW1lTG9hZCgpCkBAIC04NTIsMTAgKzg1NCwxMCBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6QVhGaW5pc2hGcmFtZUxvYWQoKQogICAgICAgICBkZWxlZ2F0ZS0+ZmlyZUZyYW1lTG9h
ZEZpbmlzaGVkRXZlbnRzKCk7CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVc2VU
aWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3KiBmcmFtZVZpZXcpIGNvbnN0
Citib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3
KGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaWV3KSBjb25zdAogewogI2lmICFVU0UoQ0FJUk8pCi0g
ICAgcmV0dXJuIGZyYW1lVmlldyAmJiBmcmFtZVZpZXctPmZyYW1lKCkuaXNNYWluRnJhbWUoKTsK
KyAgICByZXR1cm4gZnJhbWVWaWV3LmZyYW1lKCkuaXNNYWluRnJhbWUoKTsKICNlbHNlCiAgICAg
cmV0dXJuIGZhbHNlOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDkyODcyYjQxYzEyZmIzMTVlNTQxZWNiZGI5
NWRiY2IxNTY2MjcyZGMuLjE4MzEyZDZiYzQ0YzY3Y2Q4NDEyNDAxOTA4ZmJkNjQxOGVlNjI1MjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCkBAIC0zNywxMzcgKzM3LDEzNyBAQCBjbGFzcyBXZWJEZXNrdG9wTm90aWZpY2F0aW9u
c0RlbGVnYXRlOwogCiBpbnRlcmZhY2UgSVdlYlVJRGVsZWdhdGU7CiAKLWNsYXNzIFdlYkNocm9t
ZUNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpDaHJvbWVDbGllbnQgeworY2xhc3MgV2ViQ2hyb21l
Q2xpZW50IGZpbmFsIDogcHVibGljIFdlYkNvcmU6OkNocm9tZUNsaWVudCB7CiBwdWJsaWM6CiAg
ICAgV2ViQ2hyb21lQ2xpZW50KFdlYlZpZXcqKTsKIAotICAgIHZpcnR1YWwgdm9pZCBjaHJvbWVE
ZXN0cm95ZWQoKTsKKyAgICB2b2lkIGNocm9tZURlc3Ryb3llZCgpIGZpbmFsOwogCi0gICAgdmly
dHVhbCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jik7Ci0gICAg
dmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3Qgd2luZG93UmVjdCgpOworICAgIHZvaWQgc2V0V2lu
ZG93UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpG
bG9hdFJlY3Qgd2luZG93UmVjdCgpIGZpbmFsOwogICAgIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6
RmxvYXRSZWN0IHBhZ2VSZWN0KCk7CisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHBhZ2VSZWN0KCkg
ZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKTsKLSAgICB2aXJ0dWFsIHZvaWQgdW5m
b2N1cygpOworICAgIHZvaWQgZm9jdXMoKSBmaW5hbDsKKyAgICB2b2lkIHVuZm9jdXMoKSBmaW5h
bDsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5UYWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rp
b24pOwotICAgIHZpcnR1YWwgdm9pZCB0YWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24p
OworICAgIGJvb2wgY2FuVGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKSBmaW5hbDsK
KyAgICB2b2lkIHRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbikgZmluYWw7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEVsZW1lbnRDaGFuZ2VkKFdlYkNvcmU6OkVsZW1lbnQqKTsK
LSAgICB2aXJ0dWFsIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSopOwor
ICAgIHZvaWQgZm9jdXNlZEVsZW1lbnRDaGFuZ2VkKFdlYkNvcmU6OkVsZW1lbnQqKSBmaW5hbDsK
KyAgICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKIAot
ICAgIHZpcnR1YWwgV2ViQ29yZTo6UGFnZSogY3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lKiwg
Y29uc3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0Zl
YXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpOwotICAgIHZpcnR1YWwg
dm9pZCBzaG93KCk7CisgICAgV2ViQ29yZTo6UGFnZSogY3JlYXRlV2luZG93KFdlYkNvcmU6OkZy
YW1lJiwgY29uc3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6Oldp
bmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpIGZpbmFsOwor
ICAgIHZvaWQgc2hvdygpIGZpbmFsOwogCi0gICAgdmlydHVhbCBib29sIGNhblJ1bk1vZGFsKCk7
Ci0gICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsKCk7CisgICAgYm9vbCBjYW5SdW5Nb2RhbCgpIGZp
bmFsOworICAgIHZvaWQgcnVuTW9kYWwoKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRU
b29sYmFyc1Zpc2libGUoYm9vbCk7Ci0gICAgdmlydHVhbCBib29sIHRvb2xiYXJzVmlzaWJsZSgp
OworICAgIHZvaWQgc2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wpIGZpbmFsOworICAgIGJvb2wgdG9v
bGJhcnNWaXNpYmxlKCkgZmluYWw7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2Jh
clZpc2libGUoYm9vbCk7Ci0gICAgdmlydHVhbCBib29sIHN0YXR1c2JhclZpc2libGUoKTsKKyAg
ICB2b2lkIHNldFN0YXR1c2JhclZpc2libGUoYm9vbCkgZmluYWw7CisgICAgYm9vbCBzdGF0dXNi
YXJWaXNpYmxlKCkgZmluYWw7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbGJhcnNW
aXNpYmxlKGJvb2wpOwotICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxiYXJzVmlzaWJsZSgpOworICAg
IHZvaWQgc2V0U2Nyb2xsYmFyc1Zpc2libGUoYm9vbCkgZmluYWw7CisgICAgYm9vbCBzY3JvbGxi
YXJzVmlzaWJsZSgpIGZpbmFsOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBzZXRNZW51YmFyVmlz
aWJsZShib29sKTsKLSAgICB2aXJ0dWFsIGJvb2wgbWVudWJhclZpc2libGUoKTsKKyAgICB2b2lk
IHNldE1lbnViYXJWaXNpYmxlKGJvb2wpIGZpbmFsOworICAgIGJvb2wgbWVudWJhclZpc2libGUo
KSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRSZXNpemFibGUoYm9vbCk7CisgICAgdm9p
ZCBzZXRSZXNpemFibGUoYm9vbCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgYWRkTWVzc2Fn
ZVRvQ29uc29sZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBX
VEY6OlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1u
TnVtYmVyLCBjb25zdCBXVEY6OlN0cmluZyYgdXJsKTsKKyAgICB2b2lkIGFkZE1lc3NhZ2VUb0Nv
bnNvbGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgV1RGOjpT
dHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJl
ciwgY29uc3QgV1RGOjpTdHJpbmcmIHVybCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2Fu
UnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCk7Ci0gICAgdmlydHVhbCBib29sIHJ1bkJlZm9y
ZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6
RnJhbWUqIGZyYW1lKTsKKyAgICBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgp
IGZpbmFsOworICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFdURjo6
U3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2
b2lkIGNsb3NlV2luZG93U29vbigpOworICAgIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgZmluYWw7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lKiwg
Y29uc3QgV1RGOjpTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZp
cm0oV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYpOwotICAgIHZpcnR1YWwgYm9v
bCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFdURjo6U3RyaW5nJiBy
ZXN1bHQpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFdURjo6U3Ry
aW5nJik7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUmLCBjb25z
dCBXVEY6OlN0cmluZyYpIGZpbmFsOworICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2Vi
Q29yZTo6RnJhbWUmLCBjb25zdCBXVEY6OlN0cmluZyYpIGZpbmFsOworICAgIGJvb2wgcnVuSmF2
YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdl
LCBjb25zdCBXVEY6OlN0cmluZyYgZGVmYXVsdFZhbHVlLCBXVEY6OlN0cmluZyYgcmVzdWx0KSBm
aW5hbDsKKyAgICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgV1RGOjpTdHJpbmcmKSBmaW5h
bDsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUo
KTsKKyAgICBXZWJDb3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpIGZpbmFsOwog
Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0Jik7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRl
bnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgdmlydHVhbCB2
b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlw
UmVjdCk7CisgICAgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYpIGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOworICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9y
U2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CisgICAgdm9pZCBzY3Jv
bGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpIGZp
bmFsOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Q7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpJbnRS
ZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0OwotICAg
IHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0Owot
ICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKiwgY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0OworICAgIFdlYkNvcmU6OkludFBvaW50IHNjcmVl
blRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBjb25zdCBmaW5hbDsKKyAgICBX
ZWJDb3JlOjpJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYp
IGNvbnN0IGZpbmFsOworICAgIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQo
KSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJh
bWUmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3QgZmluYWw7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCB7IH0KLSAgICB2aXJ0dWFsIHZv
aWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYs
IHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVbmF2YWls
YWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6
UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCB1bmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVudCosIFdlYkNvcmU6OlJl
bmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3Q7Cisg
ICAgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0IGZpbmFsIHsgfQorICAgIHZv
aWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYs
IHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIGZpbmFsOworICAgIGJvb2wgc2hvdWxkVW5hdmFpbGFi
bGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBs
dWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHVuYXZhaWxh
YmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVtZW50JiwgV2ViQ29yZTo6UmVuZGVy
RW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsK
IAotICAgIHZpcnR1YWwgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29y
ZTo6VGV4dERpcmVjdGlvbik7CisgICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFdURjo6U3RyaW5n
JiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcHJp
bnQoV2ViQ29yZTo6RnJhbWUqKTsKKyAgICB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lJikgZmlu
YWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZy
YW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMpOworICAg
IHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV1RGOjpT
dHJpbmcmLCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2
b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCk7Ci0gICAgdmly
dHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpOworICAgIHZvaWQgcmVhY2hl
ZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKSBmaW5hbDsKKyAgICB2b2lkIHJl
YWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
LCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHJ1
bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkZpbGVDaG9vc2VyJik7Ci0gICAg
dmlydHVhbCB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYs
IFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJik7CisgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29y
ZTo6RnJhbWUmLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciYpIGZpbmFsOworICAgIHZvaWQgbG9hZElj
b25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25M
b2FkZXImKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29y
ZTo6Q3Vyc29yJik7Ci0gICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VN
b3Zlcyhib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1
cnNvcigpOworICAgIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpIGZpbmFs
OworICAgIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIGZpbmFsOwor
ICAgIHZvaWQgc2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpIGZpbmFsOwogCiAgICAg
Ly8gUGFzcyAwIGFzIHRoZSBHcmFwaGljc0xheWVyIHRvIGRldGF0Y2ggdGhlIHJvb3QgbGF5ZXIu
Ci0gICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1l
KiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopOwotICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlH
cmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92
ZXJyaWRlOworICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUm
LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7CisgICAgdm9pZCBhdHRhY2hWaWV3T3Zl
cmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
KikgZmluYWw7CiAgICAgLy8gU2V0cyBhIGZsYWcgdG8gc3BlY2lmeSB0aGF0IHRoZSBuZXh0IHRp
bWUgY29udGVudCBpcyBkcmF3biB0byB0aGUgd2luZG93LAogICAgIC8vIHRoZSBjaGFuZ2VzIGFw
cGVhciBvbiB0aGUgc2NyZWVuIGluIHN5bmNocm9ueSB3aXRoIHVwZGF0ZXMgdG8gR3JhcGhpY3NM
YXllcnMuCi0gICAgdmlydHVhbCB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6
YXRpb24oKSB7IH0KKyAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRp
b24oKSBmaW5hbCB7IH0KICAgICAvLyBTZXRzIGEgZmxhZyB0byBzcGVjaWZ5IHRoYXQgdGhlIHZp
ZXcgbmVlZHMgdG8gYmUgdXBkYXRlZCwgc28gd2UgbmVlZAogICAgIC8vIHRvIGRvIGFuIGVhZ2Vy
IGxheW91dCBiZWZvcmUgdGhlIGRyYXdpbmcuCi0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29t
cG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJG
bHVzaCgpIGZpbmFsOwogCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBVU0UoQVZGT1VOREFUSU9OKQot
ICAgIFdlYkNvcmU6OkdyYXBoaWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVy
KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6R3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBn
cmFwaGljc0RldmljZUFkYXB0ZXIoKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCi0gICAgdmlydHVh
bCB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3Qg
eyB9CisgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYp
IGNvbnN0IGZpbmFsIHsgfQogCiAjaWYgRU5BQkxFKFZJREVPKQotICAgIHZpcnR1YWwgYm9vbCBz
dXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGUpOwotICAgIHZpcnR1YWwgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVl
bkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Jik7Ci0gICAgdmlydHVh
bCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZp
ZGVvRWxlbWVudCYpOworICAgIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSBmaW5hbDsKKyAgICB2
b2lkIGVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRl
b0VsZW1lbnQmLCBXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVl
bk1vZGUpIGZpbmFsOworICAgIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVu
dChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAogI2lmIEVOQUJM
RShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZX05PVElGSUNBVElPTlMpCi0gICAgdmly
dHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQqIG5vdGlmaWNhdGlvblByZXNlbnRlcigp
IGNvbnN0IHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xp
ZW50Kj4obV9ub3RpZmljYXRpb25zRGVsZWdhdGUuZ2V0KCkpOyB9CisgICAgV2ViQ29yZTo6Tm90
aWZpY2F0aW9uQ2xpZW50KiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiByZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vdGlmaWNhdGlvbkNsaWVudCo+KG1fbm90
aWZpY2F0aW9uc0RlbGVnYXRlLmdldCgpKTsgfQogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIGJvb2wg
c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKLSAgICB2aXJ0dWFsIGJvb2wg
c2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpOwotICAgIHZp
cnR1YWwgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0OwotICAgIHZpcnR1YWwgUmVmUHRyPFdl
YkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVu
dCopIGNvbnN0OwotICAgIHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4g
Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0Owor
ICAgIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBmaW5hbDsKKyAg
ICBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBm
aW5hbDsKKyAgICBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3QgZmluYWw7CisgICAgUmVmUHRy
PFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNs
aWVudCYpIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+
IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBm
aW5hbDsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50KiwgYm9vbCB3
aXRoS2V5Ym9hcmQpOwotICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KFdlYkNvcmU6OkVsZW1lbnQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JF
bGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKTsKKyAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZv
ckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCYsIGJvb2wgd2l0aEtleWJvYXJkKSBmaW5h
bDsKKyAgICB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYp
IGZpbmFsOworICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1l
bnQmKSBmaW5hbDsKICNlbmRpZgogCi0gICAgdm9pZCB3aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2Vk
KGJvb2wpIG92ZXJyaWRlIHsgfQorICAgIHZvaWQgd2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChi
b29sKSBmaW5hbCB7IH0KIAogICAgIFdlYlZpZXcqIHdlYlZpZXcoKSB7IHJldHVybiBtX3dlYlZp
ZXc7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBBWFN0YXJ0RnJhbWVMb2FkKCk7Ci0gICAgdmlydHVh
bCB2b2lkIEFYRmluaXNoRnJhbWVMb2FkKCk7CisgICAgdm9pZCBBWFN0YXJ0RnJhbWVMb2FkKCkg
ZmluYWw7CisgICAgdm9pZCBBWEZpbmlzaEZyYW1lTG9hZCgpIGZpbmFsOwogCi0gICAgYm9vbCBz
aG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3
KikgY29uc3Qgb3ZlcnJpZGU7CisgICAgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFt
ZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3JikgY29uc3QgZmluYWw7CiAKIHByaXZhdGU6
CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKaW5kZXggMTBiNWNlZWRjM2U3MGQ1MGFkYzI3ODIxMTk0OGVmOTAwZTYwYmM2Zi4uM2QxM2Nk
NDQ2YzZhZjc3YTBlY2YwZWVlZDhjMWM4YjU3YjY5YWFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApA
QCAtMTAyNSw3ICsxMDI1LDcgQEAgUmVmUHRyPEZyYW1lPiBXZWJGcmFtZUxvYWRlckNsaWVudDo6
Y3JlYXRlRnJhbWUoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmEKICAgICBSZWZQdHI8
RnJhbWU+IGNoaWxkRnJhbWUgPSB3ZWJGcmFtZS0+Y3JlYXRlU3ViZnJhbWVXaXRoT3duZXJFbGVt
ZW50KG1fd2ViRnJhbWUtPndlYlZpZXcoKSwgY29yZUZyYW1lLT5wYWdlKCksICZvd25lckVsZW1l
bnQpOwogCiAgICAgY2hpbGRGcmFtZS0+dHJlZSgpLnNldE5hbWUobmFtZSk7Ci0gICAgY29yZUZy
YW1lLT50cmVlKCkuYXBwZW5kQ2hpbGQoY2hpbGRGcmFtZSk7CisgICAgY29yZUZyYW1lLT50cmVl
KCkuYXBwZW5kQ2hpbGQoKmNoaWxkRnJhbWUpOwogICAgIGNoaWxkRnJhbWUtPmluaXQoKTsKIAog
ICAgIGNvcmVGcmFtZS0+bG9hZGVyKCkubG9hZFVSTEludG9DaGlsZEZyYW1lKHVybCwgcmVmZXJy
ZXIsIGNoaWxkRnJhbWUuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2Vi
Vmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCA1MTc1ZjAwMmQ2
MTcyYmUxNjA4MDNmNDczZTFkYWUyZTA0MzYxYjU3Li45MzcwMTlkYmNjMWNhZDYxZTJhMmIwNDk1
NTg1YmE1Y2JkMDJmNDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtNTg1Myw3ICs1ODUzLDcg
QEAgSFJFU1VMVCBXZWJWaWV3OjpzdGFuZGFyZFVzZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUo
X0luXyBCU1RSIGFwcGxpY2F0aW9uTmFtZSwKIEhSRVNVTFQgV2ViVmlldzo6Y2xlYXJGb2N1c05v
ZGUoKQogewogICAgIGlmIChtX3BhZ2UpCi0gICAgICAgIG1fcGFnZS0+Zm9jdXNDb250cm9sbGVy
KCkuc2V0Rm9jdXNlZEVsZW1lbnQoMCwgMCk7CisgICAgICAgIG1fcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQobnVsbHB0ciwgbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIo
KS5mb2N1c2VkT3JNYWluRnJhbWUoKSk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJl
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuY3BwCmluZGV4IGUxMTU1MjkxMDY0NzAxYjg4YjdiMzJhYmNkMWYyZTY1NDMzZTI4OWUu
LjQyMWM3NDU3YzkwM2I0N2UyZTFhN2I0ODg5ODgxZjU3YzMwZWFjNGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdU
cmVlLmNwcApAQCAtMTEwLDcgKzExMCw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Ny
b2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlECiAgICAg
bV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3Jv
bGwobm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgcmVwcmVzZW50c1Byb2dyYW1tYXRpY1Njcm9sbCk7
CiB9CiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6
OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3Jv
bGxpbmdOb2RlSUQgbm9kZUlEKQorUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxp
bmdUcmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlw
ZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKIHsKICAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAg
ICAgY2FzZSBGcmFtZVNjcm9sbGluZ05vZGU6CkBAIC0xMjQsMTQgKzEyNCwxNSBAQCBQYXNzUmVm
UHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpjcmVhdGVTY3JvbGxp
bmdUcmVlTm9kZShTY3JvbAogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZUlPUzo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogI2Vsc2UKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBicmVh
azsKICNlbmRpZgogICAgIGNhc2UgRml4ZWROb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5n
VHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIGNhc2UgU3RpY2t5Tm9k
ZToKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjpjcmVhdGUoKnRoaXMs
IG5vZGVJRCk7CiAgICAgfQotICAgIHJldHVybiBudWxscHRyOworICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMs
IG5vZGVJRCk7CiB9CiAKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3VycmVudFNuYXBQb2lu
dEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgdW5zaWduZWQgaG9yaXpv
bnRhbCwgdW5zaWduZWQgdmVydGljYWwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCmluZGV4IGQ2NWIyZjVlZDZk
ZGY1N2VjNDQwZGY0OTBkMmUxMTY4YzhlYzA1YzkuLjczMThjY2M4MTRjYTU3MTZkYzcwYzI0YjZj
NDQxNzhkMjU2Y2RhNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3Jv
bGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Owog
Ci1jbGFzcyBSZW1vdGVTY3JvbGxpbmdUcmVlIDogcHVibGljIFdlYkNvcmU6OlNjcm9sbGluZ1Ry
ZWUgeworY2xhc3MgUmVtb3RlU2Nyb2xsaW5nVHJlZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlbW90ZVNjcm9sbGluZ1Ry
ZWU+IGNyZWF0ZShSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Jik7CiAgICAgdmlydHVh
bCB+UmVtb3RlU2Nyb2xsaW5nVHJlZSgpOwpAQCAtNjUsNyArNjUsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRFbmRTY3JvbGwoKSBvdmVycmlkZTsKICNlbmRpZgog
Ci0gICAgUGFzc1JlZlB0cjxXZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xs
aW5nVHJlZU5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZVR5cGUsIFdlYkNvcmU6OlNjcm9sbGlu
Z05vZGVJRCkgb3ZlcnJpZGU7CisgICAgUmVmPFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVOb2RlPiBj
cmVhdGVTY3JvbGxpbmdUcmVlTm9kZShXZWJDb3JlOjpTY3JvbGxpbmdOb2RlVHlwZSwgV2ViQ29y
ZTo6U2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKICAgICAKICAgICBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5JiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2UuY3BwCmluZGV4IDgwNTlhZDU1YWFlMzJmOGU1M2E3MDE5YjUyODdl
ZThiMDk0MGI5MTQuLmE3OWQxMGE5ZDUwNzcxMDQ1Y2U1ODMwZWE1NzM3NGM4NDE4NTYyN2UgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKQEAgLTM2OCwyMiArMzY4LDIyIEBAIFdLQnVu
ZGxlQmFja0ZvcndhcmRMaXN0UmVmIFdLQnVuZGxlUGFnZUdldEJhY2tGb3J3YXJkTGlzdChXS0J1
bmRsZVBhZ2VSZWYgcGFnZVJlCiAKIHZvaWQgV0tCdW5kbGVQYWdlSW5zdGFsbFBhZ2VPdmVybGF5
KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRsZVBhZ2VPdmVybGF5UmVmIHBhZ2VPdmVy
bGF5UmVmKQogewotICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5
Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSh0b0ltcGwocGFnZU92ZXJsYXlSZWYpLT5j
b3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7
CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVy
KCkuaW5zdGFsbFBhZ2VPdmVybGF5KCp0b0ltcGwocGFnZU92ZXJsYXlSZWYpLT5jb3JlT3Zlcmxh
eSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiB9CiAKIHZv
aWQgV0tCdW5kbGVQYWdlVW5pbnN0YWxsUGFnZU92ZXJsYXkoV0tCdW5kbGVQYWdlUmVmIHBhZ2VS
ZWYsIFdLQnVuZGxlUGFnZU92ZXJsYXlSZWYgcGFnZU92ZXJsYXlSZWYpCiB7Ci0gICAgdG9JbXBs
KHBhZ2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxs
UGFnZU92ZXJsYXkodG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29y
ZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgIHRvSW1wbChwYWdlUmVm
KS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVy
bGF5KCp0b0ltcGwocGFnZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdl
T3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlSW5z
dGFsbFBhZ2VPdmVybGF5V2l0aEFuaW1hdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tC
dW5kbGVQYWdlT3ZlcmxheVJlZiBwYWdlT3ZlcmxheVJlZikKIHsKLSAgICB0b0ltcGwocGFnZVJl
ZiktPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJs
YXkodG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92
ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgp
LT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkoKnRvSW1wbChwYWdl
T3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9k
ZTo6RmFkZSk7CiB9CiAKIHZvaWQgV0tCdW5kbGVQYWdlVW5pbnN0YWxsUGFnZU92ZXJsYXlXaXRo
QW5pbWF0aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRsZVBhZ2VPdmVybGF5UmVm
IHBhZ2VPdmVybGF5UmVmKQogewotICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBh
Z2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KHRvSW1wbChwYWdlT3Zl
cmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6
RmFkZSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250
cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKnRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNv
cmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CiB9CiAK
IHZvaWQgV0tCdW5kbGVQYWdlU2V0VG9wT3ZlcmhhbmdJbWFnZShXS0J1bmRsZVBhZ2VSZWYgcGFn
ZVJlZiwgV0tJbWFnZVJlZiBpbWFnZVJlZikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbSBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQppbmRleCA4
NTA5YWU2NTAyNGQ0ZWU1OTJlZDEyNWExMjEyMTQwZjA3ZmNlMzFlLi40MWViMDM5NDZmYTlhNGFh
ZmQwZjhmMTYwOWJjMTNmMzc1N2Y5NWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCkBAIC04
NjAsNyArODYwLDcgQEAgSlNWYWx1ZVJlZiBQREZQbHVnaW46OmpzUERGRG9jUHJpbnQoSlNDb250
ZXh0UmVmIGN0eCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2IKICAgICBpZiAoIXBhZ2UpCiAg
ICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjdHgpOwogCi0gICAgcGFnZS0+Y2hy
b21lKCkucHJpbnQoY29yZUZyYW1lKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5wcmludCgqY29yZUZy
YW1lKTsKIAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjdHgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCmluZGV4IDU2
MmE5YTJlMTU3YzQzYzVkZTc1YzNmNzI1NjMxMmRmZTRlMTU3YmMuLmQ5YTQyODg2MWJlYzU2NDUz
YTdmMGNlMTNkM2JmOTg5MWYzZDk5MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKQEAgLTExMjgsNyArMTEyOCw3IEBAIHZvaWQgUGx1
Z2luVmlldzo6Zm9jdXNQbHVnaW5FbGVtZW50KCkKICAgICBBU1NFUlQoZnJhbWUoKSk7CiAgICAg
CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFtZSgpLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmZv
Y3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG1fcGx1Z2luRWxlbWVudC5nZXQoKSwg
ZnJhbWUoKSk7CisgICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVt
ZW50KG1fcGx1Z2luRWxlbWVudC5nZXQoKSwgKmZyYW1lKCkpOwogICAgIGVsc2UKICAgICAgICAg
ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZEVsZW1lbnQobV9wbHVnaW5FbGVtZW50Lmdl
dCgpKTsKIH0KQEAgLTE1MDgsNyArMTUwOCw3IEBAIHZvaWQgUGx1Z2luVmlldzo6c2V0U3RhdHVz
YmFyVGV4dChjb25zdCBTdHJpbmcmIHN0YXR1c2JhclRleHQpCiAgICAgaWYgKCFwYWdlKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJUZXh0KGZyYW1l
KCksIHN0YXR1c2JhclRleHQpOworICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQo
KmZyYW1lKCksIHN0YXR1c2JhclRleHQpOwogfQogCiBib29sIFBsdWdpblZpZXc6OmlzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDQ5
ODM0YzNhMzBlYmY5MjE1ZTlmNTRlOTFkY2IyNGVhMTNmOTRjZWQuLmE4ZGZkZmM5NTMwZWUwNmYz
MWM4ZjViMTRmZDY3MmZmZTI0YjIzY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTEw
Myw3ICsxMDMsNiBAQCBzdGF0aWMgZG91YmxlIGFyZWEoV2ViRnJhbWUqIGZyYW1lKQogICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KHNpemUuaGVpZ2h0KCkpICogc2l6ZS53aWR0aCgpOwog
fQogCi0KIHN0YXRpYyBXZWJGcmFtZSogZmluZExhcmdlc3RGcmFtZUluRnJhbWVTZXQoV2ViUGFn
ZSYgcGFnZSkKIHsKICAgICAvLyBBcHByb3hpbWF0ZSB3aGF0IGEgdXNlciBjb3VsZCBjb25zaWRl
ciBhIGRlZmF1bHQgdGFyZ2V0IGZyYW1lIGZvciBhcHBsaWNhdGlvbiBtZW51IG9wZXJhdGlvbnMu
CkBAIC0xNzksMjAgKzE3OCwyMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6dW5mb2N1cygpCiB9
CiAKICNpZiBQTEFURk9STShDT0NPQSkKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlk
Rm9jdXMoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKKwordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmVsZW1lbnREaWRGb2N1cyhXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50KQogewotICAgIG1fcGFn
ZS5lbGVtZW50RGlkRm9jdXMoY29uc3RfY2FzdDxXZWJDb3JlOjpOb2RlKj4obm9kZSkpOworICAg
IG1fcGFnZS5lbGVtZW50RGlkRm9jdXMoJmVsZW1lbnQpOwogfQogCi12b2lkIFdlYkNocm9tZUNs
aWVudDo6ZWxlbWVudERpZEJsdXIoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjplbGVtZW50RGlkQmx1cihXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50KQog
ewotICAgIG1fcGFnZS5lbGVtZW50RGlkQmx1cihjb25zdF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihu
b2RlKSk7CisgICAgbV9wYWdlLmVsZW1lbnREaWRCbHVyKCZlbGVtZW50KTsKIH0KIAogdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6Om1ha2VGaXJzdFJlc3BvbmRlcigpCiB7CiAgICAgbV9wYWdlLnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6TWFrZUZpcnN0UmVzcG9uZGVyKCkpOwotfSAgICAKK30K
KwogI2VuZGlmICAgIAogCiBib29sIFdlYkNocm9tZUNsaWVudDo6Y2FuVGFrZUZvY3VzKEZvY3Vz
RGlyZWN0aW9uKQpAQCAtMjI3LDE2ICsyMjgsMTYgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZv
Y3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqIGZyYW1lKQogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6Rm9jdXNlZEZyYW1lQ2hhbmdlZCh3ZWJGcmFtZSA/IHdlYkZyYW1lLT5mcmFtZUlEKCkgOiAw
KSwgbV9wYWdlLnBhZ2VJRCgpKTsKIH0KIAotUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVX
aW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBXaW5kb3dGZWF0dXJlcyYgd2luZG93RmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24m
IG5hdmlnYXRpb25BY3Rpb24pCitQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhG
cmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRv
d0ZlYXR1cmVzJiB3aW5kb3dGZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdh
dGlvbkFjdGlvbikKIHsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgaWYgKGZyYW1l
LT5kb2N1bWVudCgpICYmIGZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRDdXJyZW50RnVsbFNjcmVl
bkVsZW1lbnQoKSkKLSAgICAgICAgZnJhbWUtPmRvY3VtZW50KCktPndlYmtpdENhbmNlbEZ1bGxT
Y3JlZW4oKTsKKyAgICBpZiAoZnJhbWUuZG9jdW1lbnQoKSAmJiBmcmFtZS5kb2N1bWVudCgpLT53
ZWJraXRDdXJyZW50RnVsbFNjcmVlbkVsZW1lbnQoKSkKKyAgICAgICAgZnJhbWUuZG9jdW1lbnQo
KS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOwogI2VuZGlmCiAKICAgICBhdXRvJiB3ZWJQcm9j
ZXNzID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCk7CiAKLSAgICBXZWJGcmFtZSogd2ViRnJhbWUg
PSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAgIFdlYkZyYW1lKiB3ZWJGcmFt
ZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKIAogICAgIE5hdmlnYXRpb25BY3Rp
b25EYXRhIG5hdmlnYXRpb25BY3Rpb25EYXRhOwogICAgIG5hdmlnYXRpb25BY3Rpb25EYXRhLm5h
dmlnYXRpb25UeXBlID0gbmF2aWdhdGlvbkFjdGlvbi50eXBlKCk7CkBAIC0yNTAsNyArMjUxLDcg
QEAgUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3coRnJhbWUqIGZyYW1lLCBjb25z
dCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXMKIAogICAgIHVpbnQ2NF90IG5ld1BhZ2VJRCA9IDA7
CiAgICAgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyBwYXJhbWV0ZXJzOwotICAgIGlmICghd2Vi
UHJvY2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlKHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3Jp
Z2luRGF0YTo6ZnJvbUZyYW1lKGZyYW1lKSwgcmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgd2lu
ZG93RmVhdHVyZXMsIG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6Q3JlYXRlTmV3UGFnZTo6UmVwbHkobmV3UGFnZUlELCBwYXJhbWV0ZXJzKSwgbV9wYWdlLnBh
Z2VJRCgpKSkKKyAgICBpZiAoIXdlYlByb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZSh3ZWJGcmFtZS0+
ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCByZXF1ZXN0
LnJlc291cmNlUmVxdWVzdCgpLCB3aW5kb3dGZWF0dXJlcywgbmF2aWdhdGlvbkFjdGlvbkRhdGEp
LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpSZXBseShuZXdQYWdlSUQs
IHBhcmFtZXRlcnMpLCBtX3BhZ2UucGFnZUlEKCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIGlmICghbmV3UGFnZUlEKQpAQCAtMzYxLDkgKzM2Miw5IEBAIGJvb2wgV2ViQ2hyb21l
Q2xpZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKQogICAgIHJldHVybiBtX3Bh
Z2UuY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCk7CiB9CiAKLWJvb2wgV2ViQ2hyb21l
Q2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdl
LCBGcmFtZSogZnJhbWUpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmIGZyYW1lKQogewotICAgIFdl
YkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAg
V2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogCiAg
ICAgYm9vbCBzaG91bGRDbG9zZSA9IGZhbHNlOwogCkBAIC00MDIsMTIgKzQwMywxMiBAQCBzdGF0
aWMgYm9vbCBzaG91bGRTdXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKEZyYW1lJiBmcmFtZSkKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0
QWxlcnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGFsZXJ0VGV4dCkKK3ZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcm
IGFsZXJ0VGV4dCkKIHsKLSAgICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncygq
ZnJhbWUpKQorICAgIGlmIChzaG91bGRTdXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKGZyYW1lKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZy
b21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6
ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogICAgIC8vIE5v
dGlmeSB0aGUgYnVuZGxlIGNsaWVudC4KQEAgLTQxNSwxNSArNDE2LDE1IEBAIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcm
IGFsZXJ0VGV4dCkKIAogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlz
YWJsZXI7CiAKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxl
cnQod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoZnJh
bWUpLCBhbGVydFRleHQpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxl
cnQ6OlJlcGx5KCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpT
ZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpOworICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5j
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydCh3ZWJGcmFtZS0+ZnJh
bWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUpLCBhbGVydFRleHQp
LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQ6OlJlcGx5KCksIG1f
cGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6
SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpOwogfQogCi1ib29sIFdlYkNocm9tZUNs
aWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUm
IGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7Ci0gICAgaWYgKHNob3VsZFN1cHByZXNz
SmF2YVNjcmlwdERpYWxvZ3MoKmZyYW1lKSkKKyAgICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2Ny
aXB0RGlhbG9ncyhmcmFtZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFdlYkZyYW1l
KiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJh
bWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VS
VCh3ZWJGcmFtZSk7CiAKICAgICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCkBAIC00MzIs
MTggKzQzMywxOCBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0o
RnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgSGFuZ0RldGVjdGlvbkRp
c2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxlcjsKIAogICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7
Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmly
bSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShmcmFt
ZSksIG1lc3NhZ2UpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmly
bTo6UmVwbHkocmVzdWx0KSwgbV9wYWdlLnBhZ2VJRCgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJ
UEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCkpCisg
ICAgaWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybSh3
ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZSgmZnJhbWUp
LCBtZXNzYWdlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZpcm06
OlJlcGx5KHJlc3VsdCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBD
OjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIFdlYkNo
cm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQor
Ym9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmIGZyYW1lLCBj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcm
IHJlc3VsdCkKIHsKLSAgICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncygqZnJh
bWUpKQorICAgIGlmIChzaG91bGRTdXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKGZyYW1lKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6
OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFt
ZTo6ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogICAgIC8v
IE5vdGlmeSB0aGUgYnVuZGxlIGNsaWVudC4KQEAgLTQ1MSw3ICs0NTIsNyBAQCBib29sIFdlYkNo
cm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgYwogCiAgICAgSGFuZ0RldGVjdGlvbkRpc2FibGVyIGhhbmdEZXRlY3Rpb25E
aXNhYmxlcjsKIAotICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNj
cmlwdFByb21wdCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21G
cmFtZShmcmFtZSksIG1lc3NhZ2UsIGRlZmF1bHRWYWx1ZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQ6OlJlcGx5KHJlc3VsdCksIG1fcGFnZS5wYWdlSUQoKSwg
U2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Q
cm9jZXNzV2lsbFN1c3BlbmQpKQorICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UnVuSmF2YVNjcmlwdFByb21wdCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0eU9yaWdpbkRh
dGE6OmZyb21GcmFtZSgmZnJhbWUpLCBtZXNzYWdlLCBkZWZhdWx0VmFsdWUpLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpSZXBseShyZXN1bHQpLCBtX3BhZ2Uu
cGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9y
bVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgcmV0dXJuICFyZXN1bHQuaXNOdWxsKCk7CkBAIC01NTYsNyArNTU3LDcgQEAgUGxhdGZvcm1Q
YWdlQ2xpZW50IFdlYkNocm9tZUNsaWVudDo6cGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QKICAg
ICByZXR1cm4gMDsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5n
ZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdAordm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUmIGZyYW1lLCBjb25zdCBJbnRTaXpl
JiBzaXplKSBjb25zdAogewogICAgIGlmICghbV9wYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCku
ZnJhbWVGbGF0dGVuaW5nRW5hYmxlZCgpKSB7CiAgICAgICAgIFdlYkZyYW1lKiBsYXJnZXN0RnJh
bWUgPSBmaW5kTGFyZ2VzdEZyYW1lSW5GcmFtZVNldChtX3BhZ2UpOwpAQCAtNTY2LDE0ICs1Njcs
MTQgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZy
YW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb24KICAgICAgICAgfQogICAgIH0KIAotICAgIGlm
ICgmZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCkgIT0gZnJhbWUpCisgICAgaWYgKCZmcmFtZS5w
YWdlKCktPm1haW5GcmFtZSgpICE9ICZmcmFtZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9w
YWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ2hhbmdlQ29udGVudFNpemUoc2l6
ZSkpOwogCiAgICAgbV9wYWdlLmRyYXdpbmdBcmVhKCktPm1haW5GcmFtZUNvbnRlbnRTaXplQ2hh
bmdlZChzaXplKTsKIAotICAgIEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZnJhbWUtPnZpZXcoKTsK
KyAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGZyYW1lLnZpZXcoKTsKICAgICBpZiAoZnJhbWVW
aWV3ICYmICFmcmFtZVZpZXctPmRlbGVnYXRlc1Njcm9sbGluZygpKSAgewogICAgICAgICBib29s
IGhhc0hvcml6b250YWxTY3JvbGxiYXIgPSBmcmFtZVZpZXctPmhvcml6b250YWxTY3JvbGxiYXIo
KTsKICAgICAgICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhciA9IGZyYW1lVmlldy0+dmVydGlj
YWxTY3JvbGxiYXIoKTsKQEAgLTYxMSwyMSArNjEyLDIxIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50
OjpzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihSZW5kZXJFbWJlZGRlZE9i
amVjCiAgICAgcmV0dXJuIGZhbHNlOwogfQogICAgIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVu
YXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50KiBlbGVtZW50LCBSZW5kZXJFbWJl
ZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24pIGNvbnN0Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkKEVsZW1lbnQmIGVsZW1lbnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVn
aW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QK
IHsKICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICBBU1NFUlQoZWxlbWVudC0+
aGFzVGFnTmFtZShvYmplY3RUYWcpIHx8IGVsZW1lbnQtPmhhc1RhZ05hbWUoZW1iZWRUYWcpIHx8
IGVsZW1lbnQtPmhhc1RhZ05hbWUoYXBwbGV0VGFnKSk7CisgICAgQVNTRVJUKGVsZW1lbnQuaGFz
VGFnTmFtZShvYmplY3RUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShlbWJlZFRhZykgfHwgZWxl
bWVudC5oYXNUYWdOYW1lKGFwcGxldFRhZykpOwogICAgIEFTU0VSVChwbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbiA9PSBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luTWlzc2luZyB8fCBwbHVn
aW5VbmF2YWlsYWJpbGl0eVJlYXNvbiA9PSBSZW5kZXJFbWJlZGRlZE9iamVjdDo6SW5zZWN1cmVQ
bHVnaW5WZXJzaW9uIHx8IHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKTsKIAotICAgIEhUTUxQ
bHVnSW5JbWFnZUVsZW1lbnQqIHBsdWdpbkVsZW1lbnQgPSBzdGF0aWNfY2FzdDxIVE1MUGx1Z0lu
SW1hZ2VFbGVtZW50Kj4oZWxlbWVudCk7CisgICAgYXV0byYgcGx1Z2luRWxlbWVudCA9IGRvd25j
YXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQ+KGVsZW1lbnQpOwogCi0gICAgU3RyaW5nIGZyYW1l
VVJMU3RyaW5nID0gcGx1Z2luRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5k
b2N1bWVudExvYWRlcigpLT5yZXNwb25zZVVSTCgpLnN0cmluZygpOworICAgIFN0cmluZyBmcmFt
ZVVSTFN0cmluZyA9IHBsdWdpbkVsZW1lbnQuZG9jdW1lbnQoKS5mcmFtZSgpLT5sb2FkZXIoKS5k
b2N1bWVudExvYWRlcigpLT5yZXNwb25zZVVSTCgpLnN0cmluZygpOwogICAgIFN0cmluZyBwYWdl
VVJMU3RyaW5nID0gbV9wYWdlLm1haW5GcmFtZSgpLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigp
LT5yZXNwb25zZVVSTCgpLnN0cmluZygpOwotICAgIFN0cmluZyBwbHVnaW5VUkxTdHJpbmcgPSBw
bHVnaW5FbGVtZW50LT5kb2N1bWVudCgpLmNvbXBsZXRlVVJMKHBsdWdpbkVsZW1lbnQtPnVybCgp
KS5zdHJpbmcoKTsKLSAgICBVUkwgcGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkwgPSBlbGVtZW50LT5k
b2N1bWVudCgpLmNvbXBsZXRlVVJMKHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhw
bHVnaW5FbGVtZW50LT5nZXRBdHRyaWJ1dGUocGx1Z2luc3BhZ2VBdHRyKSkpOworICAgIFN0cmlu
ZyBwbHVnaW5VUkxTdHJpbmcgPSBwbHVnaW5FbGVtZW50LmRvY3VtZW50KCkuY29tcGxldGVVUkwo
cGx1Z2luRWxlbWVudC51cmwoKSkuc3RyaW5nKCk7CisgICAgVVJMIHBsdWdpbnNwYWdlQXR0cmli
dXRlVVJMID0gcGx1Z2luRWxlbWVudC5kb2N1bWVudCgpLmNvbXBsZXRlVVJMKHN0cmlwTGVhZGlu
Z0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhwbHVnaW5FbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24ocGx1Z2luc3BhZ2VBdHRyKSkpOwogICAgIGlmICghcGx1Z2luc3BhZ2VBdHRy
aWJ1dGVVUkwucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpKQogICAgICAgICBwbHVnaW5zcGFnZUF0
dHJpYnV0ZVVSTCA9IFVSTCgpOwotICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChwbHVnaW5VbmF2YWlsYWJpbGl0eVJl
YXNvbiwgcGx1Z2luRWxlbWVudC0+c2VydmljZVR5cGUoKSwgcGx1Z2luVVJMU3RyaW5nLCBwbHVn
aW5zcGFnZUF0dHJpYnV0ZVVSTC5zdHJpbmcoKSwgZnJhbWVVUkxTdHJpbmcsIHBhZ2VVUkxTdHJp
bmcpKTsKKyAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpVbmF2YWlsYWJs
ZVBsdWdpbkJ1dHRvbkNsaWNrZWQocGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIHBsdWdpbkVs
ZW1lbnQuc2VydmljZVR5cGUoKSwgcGx1Z2luVVJMU3RyaW5nLCBwbHVnaW5zcGFnZUF0dHJpYnV0
ZVVSTC5zdHJpbmcoKSwgZnJhbWVVUkxTdHJpbmcsIHBhZ2VVUkxTdHJpbmcpKTsKICNlbHNlCiAg
ICAgVU5VU0VEX1BBUkFNKGVsZW1lbnQpOwogICAgIFVOVVNFRF9QQVJBTShwbHVnaW5VbmF2YWls
YWJpbGl0eVJlYXNvbik7CkBAIC02NjAsOSArNjYxLDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlwLCBUZXh0RGlyZWN0aW9uKQogICAgIG1f
cGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFRvb2xUaXAobV9jYWNoZWRUb29s
VGlwKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSogZnJhbWUpCit2
b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUmIGZyYW1lKQogewotICAgIFdlYkZyYW1l
KiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJh
bWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VS
VCh3ZWJGcmFtZSk7CiAKICNpZiBQTEFURk9STShHVEspICYmIEhBVkUoR1RLX1VOSVhfUFJJTlRJ
TkcpCkBAIC02ODgsMTIgKzY4OSwxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJh
bWUqIGZyYW1lKQogICAgIG1fcGFnZS5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQ
cmludEZyYW1lKHdlYkZyYW1lLT5mcmFtZUlEKCkpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQ
cmludEZyYW1lOjpSZXBseSgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0
aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCk7CiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJp
bmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzIGRldGFpbHMpCit2b2lkIFdlYkNocm9t
ZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5n
JiBkYXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscyBkZXRhaWxzKQogewotICAgIFdlYkZyYW1l
KiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJh
bWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VS
VCh3ZWJGcmFtZSk7CiAgICAgCi0gICAgYXV0byYgb3JpZ2luID0gZnJhbWUtPmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCk7CisgICAgYXV0byYgb3JpZ2luID0gZnJhbWUuZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKTsKICAgICBhdXRvIG9yaWdpbkRhdGEgPSBTZWN1cml0eU9yaWdpbkRh
dGE6OmZyb21TZWN1cml0eU9yaWdpbihvcmlnaW4pOwogICAgIGF1dG8mIHRyYWNrZXIgPSBEYXRh
YmFzZVRyYWNrZXI6OnNpbmdsZXRvbigpOwogICAgIGF1dG8gY3VycmVudFF1b3RhID0gdHJhY2tl
ci5xdW90YShvcmlnaW5EYXRhKTsKQEAgLTcxNiw5ICs3MTcsOSBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90KQogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGludDY0X3QgdG90YWxCeXRlc05lZWRl
ZCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKFNlY3VyaXR5T3JpZ2luJiBvcmlnaW4sIGludDY0X3QgdG90YWxCeXRlc05lZWRlZCkKIHsK
LSAgICBSZWZQdHI8QVBJOjpTZWN1cml0eU9yaWdpbj4gc2VjdXJpdHlPcmlnaW4gPSBBUEk6OlNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG9yaWdpbi0+dG9TdHJpbmcoKSk7CisgICAg
UmVmUHRyPEFQSTo6U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luID0gQVBJOjpTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW4udG9TdHJpbmcoKSk7CiAgICAgaWYgKG1f
cGFnZS5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkuZGlkUmVhY2hBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEoJm1fcGFnZSwgc2VjdXJpdHlPcmlnaW4uZ2V0KCksIHRvdGFsQnl0ZXNOZWVkZWQp
KQogICAgICAgICByZXR1cm47CiAKQEAgLTcyOSwxNyArNzMwLDE5IEBAIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2lu
KiBvcmlnaW4sCiAKICAgICB1aW50NjRfdCBuZXdRdW90YSA9IDA7CiAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoCi0gICAgICAg
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKm9yaWdp
bikuZGF0YWJhc2VJZGVudGlmaWVyKCksIGN1cnJlbnRRdW90YSwgdG90YWxCeXRlc05lZWRlZCks
CisgICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hl
T3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmln
aW4ob3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSwgY3VycmVudFF1b3RhLCB0b3RhbEJ5dGVz
TmVlZGVkKSwKICAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YTo6UmVwbHkobmV3UXVvdGEpLCBtX3BhZ2UucGFnZUlEKCksIFNl
Y29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJv
Y2Vzc1dpbGxTdXNwZW5kKTsKIAotICAgIGNhY2hlU3RvcmFnZS5zdG9yZVVwZGF0ZWRRdW90YUZv
ck9yaWdpbihvcmlnaW4sIG5ld1F1b3RhKTsKKyAgICBjYWNoZVN0b3JhZ2Uuc3RvcmVVcGRhdGVk
UXVvdGFGb3JPcmlnaW4oJm9yaWdpbiwgbmV3UXVvdGEpOwogfQogCiAjaWYgRU5BQkxFKERBU0hC
T0FSRF9TVVBQT1JUKQorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6YW5ub3RhdGVkUmVnaW9uc0No
YW5nZWQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CisKICNlbmRpZgogCiBib29sIFdl
YkNocm9tZUNsaWVudDo6c2hvdWxkUmVwbGFjZVdpdGhHZW5lcmF0ZWRGaWxlRm9yVXBsb2FkKGNv
bnN0IFN0cmluZyYgcGF0aCwgU3RyaW5nJiBnZW5lcmF0ZWRGaWxlbmFtZSkKQEAgLTc1NCwxMCAr
NzU3LDEyIEBAIFN0cmluZyBXZWJDaHJvbWVDbGllbnQ6OmdlbmVyYXRlUmVwbGFjZW1lbnRGaWxl
KGNvbnN0IFN0cmluZyYgcGF0aCkKIH0KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQot
c3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xv
ckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiBjbGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFs
Q29sb3IpCisKK3N0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6
Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCYgY2xpZW50LCBjb25zdCBDb2xv
ciYgaW5pdGlhbENvbG9yKQogewotICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvbG9y
Q2hvb3Nlcj4oJm1fcGFnZSwgY2xpZW50LCBpbml0aWFsQ29sb3IpOworICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPFdlYkNvbG9yQ2hvb3Nlcj4oJm1fcGFnZSwgJmNsaWVudCwgaW5pdGlhbENv
bG9yKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5PcGVuUGFuZWwo
RnJhbWUmIGZyYW1lLCBGaWxlQ2hvb3NlciYgZmlsZUNob29zZXIpCkBAIC04MzIsMTQgKzgzNywx
NCBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6aGFzT3BlbmVkUG9wdXAoKSBjb25zdAogICAgIHJl
dHVybiBmYWxzZTsKIH0KIAotUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xp
ZW50OjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNv
bnN0CitSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBv
cHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gV2ViUG9wdXBNZW51OjpjcmVhdGUoJm1fcGFnZSwgY2xpZW50KTsKKyAgICByZXR1cm4g
V2ViUG9wdXBNZW51OjpjcmVhdGUoJm1fcGFnZSwgJmNsaWVudCk7CiB9CiAKLVJlZlB0cjxXZWJD
b3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBN
ZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUmVmUHRyPFdlYkNv
cmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1l
bnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IFdlYlNlYXJjaFBvcHVwTWVudTo6Y3JlYXRlKCZtX3BhZ2UsIGNsaWVudCk7CisgICAgcmV0dXJu
IFdlYlNlYXJjaFBvcHVwTWVudTo6Y3JlYXRlKCZtX3BhZ2UsICZjbGllbnQpOwogfQogCiBHcmFw
aGljc0xheWVyRmFjdG9yeSogV2ViQ2hyb21lQ2xpZW50OjpncmFwaGljc0xheWVyRmFjdG9yeSgp
IGNvbnN0CkBAIC04NTgsNyArODYzLDcgQEAgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNo
TW9uaXRvcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbmkKIAogI2Vu
ZGlmCiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFt
ZSosIEdyYXBoaWNzTGF5ZXIqIGxheWVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJv
b3RHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciogbGF5ZXIpCiB7CiAgICAgaWYg
KGxheWVyKQogICAgICAgICBtX3BhZ2UuZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShs
YXllcik7CkBAIC04NjYsMTAgKzg3MSwxMCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNo
Um9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKiBsYXllcikKICAgICAgICAg
bV9wYWdlLmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpOwogfQogCi12b2lkIFdlYkNo
cm9tZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lKiBmcmFtZSwg
R3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRh
Y2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUmIGZyYW1lLCBHcmFwaGljc0xheWVyKiBn
cmFwaGljc0xheWVyKQogewogICAgIGlmIChhdXRvIGRyYXdpbmdBcmVhID0gbV9wYWdlLmRyYXdp
bmdBcmVhKCkpCi0gICAgICAgIGRyYXdpbmdBcmVhLT5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNz
TGF5ZXIoZnJhbWUsIGdyYXBoaWNzTGF5ZXIpOworICAgICAgICBkcmF3aW5nQXJlYS0+YXR0YWNo
Vmlld092ZXJsYXlHcmFwaGljc0xheWVyKCZmcmFtZSwgZ3JhcGhpY3NMYXllcik7CiB9CiAKIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9u
KCkKQEAgLTg5OCw5ICs5MDMsOSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6bGF5ZXJUcmVlU3Rh
dGVJc0Zyb3plbigpIGNvbnN0CiAKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKQogCi1QYXNz
UmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yKFBhZ2UqIHBhZ2UpIGNvbnN0CitSZWZQdHI8U2Nyb2xsaW5nQ29vcmRp
bmF0b3I+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSYg
cGFnZSkgY29uc3QKIHsKLSAgICBBU1NFUlQobV9wYWdlLmNvcmVQYWdlKCkgPT0gcGFnZSk7Cisg
ICAgQVNTRVJUX1VOVVNFRChwYWdlLCBtX3BhZ2UuY29yZVBhZ2UoKSA9PSAmcGFnZSk7CiAgICAg
aWYgKG1fcGFnZS5kcmF3aW5nQXJlYSgpLT50eXBlKCkgIT0gRHJhd2luZ0FyZWFUeXBlUmVtb3Rl
TGF5ZXJUcmVlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICByZXR1cm4gUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OmNyZWF0ZSgmbV9wYWdlKTsKQEAgLTk0OSwxOSArOTU0LDE5IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFu
aW1hdGlvbihXZWJDb3JlOjpIVE1MVmlkCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAK
LWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0
IFdlYkNvcmU6OkVsZW1lbnQqLCBib29sIHdpdGhLZXlib2FyZCkKK2Jvb2wgV2ViQ2hyb21lQ2xp
ZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQm
LCBib29sIHdpdGhLZXlib2FyZCkKIHsKICAgICByZXR1cm4gbV9wYWdlLmZ1bGxTY3JlZW5NYW5h
Z2VyKCktPnN1cHBvcnRzRnVsbFNjcmVlbih3aXRoS2V5Ym9hcmQpOwogfQogCi12b2lkIFdlYkNo
cm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBl
bGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQo
V2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFn
ZXIoKS0+ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsKKyAgICBtX3BhZ2UuZnVs
bFNjcmVlbk1hbmFnZXIoKS0+ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCgmZWxlbWVudCk7CiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29y
ZTo6RWxlbWVudCogZWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBtX3BhZ2UuZnVs
bFNjcmVlbk1hbmFnZXIoKS0+ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOworICAg
IG1fcGFnZS5mdWxsU2NyZWVuTWFuYWdlcigpLT5leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoJmVs
ZW1lbnQpOwogfQogCiAjZW5kaWYKQEAgLTEwNDksMjkgKzEwNTQsMjkgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpCiAgICAgbV9wYWdlLnNlbmQoTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6RGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkpOwogfQog
Ci12b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXllciog
aGVhZGVyUGFyZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEhlYWRlckxheWVyKEdy
YXBoaWNzTGF5ZXImIGhlYWRlclBhcmVudCkKIHsKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcp
CiAgICAgaWYgKFBhZ2VCYW5uZXIqIGJhbm5lciA9IG1fcGFnZS5oZWFkZXJQYWdlQmFubmVyKCkp
Ci0gICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50TGF5ZXIoaGVhZGVyUGFyZW50KTsKKyAgICAg
ICAgYmFubmVyLT5kaWRBZGRQYXJlbnRMYXllcigmaGVhZGVyUGFyZW50KTsKICNlbHNlCiAgICAg
VU5VU0VEX1BBUkFNKGhlYWRlclBhcmVudCk7CiAjZW5kaWYKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmRpZEFkZEZvb3RlckxheWVyKEdyYXBoaWNzTGF5ZXIqIGZvb3RlclBhcmVudCkKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRGb290ZXJMYXllcihHcmFwaGljc0xheWVyJiBmb290
ZXJQYXJlbnQpCiB7CiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogICAgIGlmIChQYWdlQmFu
bmVyKiBiYW5uZXIgPSBtX3BhZ2UuZm9vdGVyUGFnZUJhbm5lcigpKQotICAgICAgICBiYW5uZXIt
PmRpZEFkZFBhcmVudExheWVyKGZvb3RlclBhcmVudCk7CisgICAgICAgIGJhbm5lci0+ZGlkQWRk
UGFyZW50TGF5ZXIoJmZvb3RlclBhcmVudCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShmb290
ZXJQYXJlbnQpOwogI2VuZGlmCiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVc2VU
aWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3KiBmcmFtZVZpZXcpIGNvbnN0
Citib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3
KGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaWV3KSBjb25zdAogewotICAgIHJldHVybiBtX3BhZ2Uu
ZHJhd2luZ0FyZWEoKS0+c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGZyYW1lVmll
dyk7CisgICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5zaG91bGRVc2VUaWxlZEJhY2tp
bmdGb3JGcmFtZVZpZXcoJmZyYW1lVmlldyk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpp
c1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRl
RmxhZ3Mgc3RhdGUsIHVpbnQ2NF90IHNvdXJjZUVsZW1lbnRJRCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CmluZGV4IDVjOWQ3NzNhNzJjMDYwOGMwMjA2OGFjMWQ5ZGRmNDVkNGEwYmQ5YzUuLjBhMDgwMDRm
ZmVmZWVjYmI0MTM0NDAzNmYwMmZkYTk0MTc0ZGFjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApA
QCAtNjIsNyArNjIsNyBAQCBwcml2YXRlOgogICAgIC8vIEZyYW1lIHdhbnRzIHRvIGNyZWF0ZSB0
aGUgbmV3IFBhZ2UuICBBbHNvLCB0aGUgbmV3bHkgY3JlYXRlZCB3aW5kb3cKICAgICAvLyBzaG91
bGQgbm90IGJlIHNob3duIHRvIHRoZSB1c2VyIHVudGlsIHRoZSBDaHJvbWVDbGllbnQgb2YgdGhl
IG5ld2x5CiAgICAgLy8gY3JlYXRlZCBQYWdlIGhhcyBpdHMgc2hvdyBtZXRob2QgY2FsbGVkLgot
ICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdl
YkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYs
IGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpQ
YWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpGcmFtZUxv
YWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmLCBjb25zdCBXZWJDb3Jl
OjpOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWw7CiAgICAgdm9pZCBzaG93KCkgZmluYWw7CiAgICAg
CiAgICAgYm9vbCBjYW5SdW5Nb2RhbCgpIGZpbmFsOwpAQCAtODcsMTMgKzg3LDEzIEBAIHByaXZh
dGU6CiAgICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlND
OjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJl
ciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSBmaW5hbDsK
ICAgICAKICAgICBib29sIGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpIGZpbmFsOwot
ICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKKyAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAg
ICAgCiAgICAgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIHJ1
bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFN0cmluZyYpIGZpbmFsOwot
ICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBTdHJp
bmcmKSBmaW5hbDsKLSAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUq
LCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJp
bmcmIHJlc3VsdCkgZmluYWw7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6
RnJhbWUmLCBjb25zdCBTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25m
aXJtKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBydW5K
YXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBj
b25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpIGZpbmFsOwogICAgIHZv
aWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSBmaW5hbDsKIAogICAgIFdlYkNvcmU6
OktleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgZmluYWw7CkBAIC0xMTcsMjMgKzExNywy
MyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1Q
YWdlQ2xpZW50KCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdl
YkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0IGZpbmFsOworICAg
IHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNjcm9sbFJlY3RJbnRvVmlldyhjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgZmluYWw7IC8vIEN1cnJlbnRseSBvbmx5IE1hYyBo
YXMgYSBub24gZW1wdHkgaW1wbGVtZW50YXRpb24uCiAKICAgICBib29sIHNob3VsZFVuYXZhaWxh
YmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQ
bHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7Ci0gICAgdm9pZCB1bmF2YWls
YWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVudCosIFdlYkNvcmU6OlJlbmRl
ckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7
CisgICAgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVu
dCYsIFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJl
YXNvbikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkg
Y29uc3QgZmluYWw7CiAgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBXZWJD
b3JlOjpIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgZmluYWw7CiAKICAg
ICB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikg
ZmluYWw7CiAgICAgCi0gICAgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopIGZpbmFsOworICAg
IHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKIAotICAgIHZvaWQgZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUs
IFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscykgZmluYWw7CisgICAgdm9pZCBleGNlZWRlZERhdGFi
YXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2Vi
Q29yZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKIAogICAgIHZvaWQgcmVhY2hlZE1heEFwcENh
Y2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVkKSBmaW5hbDsKLSAgICB2b2lkIHJlYWNoZWRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90
IHNwYWNlTmVlZGVkKSBmaW5hbDsKKyAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90IHNwYWNlTmVlZGVkKSBm
aW5hbDsKIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICB2b2lkIGFubm90YXRl
ZFJlZ2lvbnNDaGFuZ2VkKCkgZmluYWw7CkBAIC0xNDMsNyArMTQzLDcgQEAgcHJpdmF0ZToKICAg
ICBTdHJpbmcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKSBmaW5h
bDsKICAgICAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2ViQ29yZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29s
b3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoV2Vi
Q29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCkBAIC0xNTIsMTAgKzE1Miwx
MCBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgZGlkUmVjZWl2ZU1v
YmlsZURvY1R5cGUoYm9vbCkgZmluYWw7Ci0gICAgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNh
dGlvbnMoV2ViQ29yZTo6RnJhbWUqLCBib29sKSBmaW5hbDsKLSAgICB2b2lkIG9ic2VydmVkQ29u
dGVudENoYW5nZShXZWJDb3JlOjpGcmFtZSopIGZpbmFsOwotICAgIHZvaWQgY2xlYXJDb250ZW50
Q2hhbmdlT2JzZXJ2ZXJzKFdlYkNvcmU6OkZyYW1lKikgZmluYWw7Ci0gICAgdm9pZCBub3RpZnlS
ZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsK
KyAgICB2b2lkIHNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpGcmFtZSYsIGJv
b2wpIGZpbmFsOworICAgIHZvaWQgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKFdlYkNvcmU6OkZyYW1l
JikgZmluYWw7CisgICAgdm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoV2ViQ29yZTo6
RnJhbWUmKSBmaW5hbDsKKyAgICB2b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxp
bmdGcmFtZShXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwogICAgIGJvb2wgaXNTdG9wcGluZygpIGZp
bmFsOwogCiAgICAgdm9pZCBkaWRMYXlvdXQoTGF5b3V0VHlwZSA9IE5vcm1hbExheW91dCkgZmlu
YWw7CkBAIC0yMDMsMTIgKzIwMywxMiBAQCBwcml2YXRlOgogICAgIGJvb2wgc2VsZWN0SXRlbVdy
aXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBmaW5hbDsKICAgICBib29sIHNlbGVjdEl0ZW1BbGln
bm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBmaW5hbDsKICAgICBib29sIGhhc09w
ZW5lZFBvcHVwKCkgY29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4g
Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNvbnN0IGZpbmFsOwot
ICAgIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVu
dShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8V2Vi
Q29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50
JikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3Jl
YXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYpIGNvbnN0IGZpbmFs
OwogCiAgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0
b3J5KCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJD
b3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKLSAgICB2b2lkIGF0
dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqKSBmaW5hbDsKKyAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdl
YkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOworICAgIHZvaWQg
YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopIGZpbmFsOwogICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5
bmNocm9uaXphdGlvbigpIGZpbmFsOwogICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVy
Rmx1c2goKSBmaW5hbDsKICAgICBib29sIGFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKFdlYkNv
cmU6OkxheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpGbGFncykgZmluYWw7CkBAIC0yMzMsMTEgKzIz
MywxMSBAQCBwcml2YXRlOgogICAgIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0
IGZpbmFsOwogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKLSAgICBQYXNzUmVmUHRyPFdl
YkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihX
ZWJDb3JlOjpQYWdlKikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6OlNjcm9sbGlu
Z0Nvb3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihXZWJDb3JlOjpQYWdlJikg
Y29uc3QgZmluYWw7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2b2lkIGVsZW1l
bnREaWRSZWZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBmaW5hbDsKKyAgICB2b2lkIGVsZW1l
bnREaWRSZWZvY3VzKGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKICNlbmRpZgogCiAj
aWYgKFBMQVRGT1JNKElPUykgJiYgSEFWRShBVktJVCkpIHx8IChQTEFURk9STShNQUMpICYmIEVO
QUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCkBAIC0yNTMsMTQgKzI1MywxNCBAQCBwcml2
YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgYm9vbCBzdXBw
b3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqLCBib29sIHdp
dGhLZXlib2FyZCkgZmluYWw7Ci0gICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdl
YkNvcmU6OkVsZW1lbnQqKSBmaW5hbDsKLSAgICB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVu
dChXZWJDb3JlOjpFbGVtZW50KikgZmluYWw7CisgICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5G
b3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmLCBib29sIHdpdGhLZXlib2FyZCkgZmlu
YWw7CisgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQm
KSBmaW5hbDsKKyAgICB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVt
ZW50JikgZmluYWw7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQgZWxl
bWVudERpZEZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBmaW5hbDsKLSAgICB2b2lkIGVsZW1l
bnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBmaW5hbDsKKyAgICB2b2lkIGVsZW1lbnRE
aWRGb2N1cyhXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CisgICAgdm9pZCBlbGVtZW50RGlkQmx1
cihXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CiAKICAgICB2b2lkIG1ha2VGaXJzdFJlc3BvbmRl
cigpIGZpbmFsOwogI2VuZGlmCkBAIC0yOTEsMTAgKzI5MSwxMCBAQCBwcml2YXRlOgogICAgIFN0
cmluZyBwbHVnSW5FeHRyYVN0eWxlU2hlZXQoKSBjb25zdCBmaW5hbDsKICAgICBTdHJpbmcgcGx1
Z0luRXh0cmFTY3JpcHQoKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgZGlkQWRkSGVhZGVyTGF5
ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwotICAgIHZvaWQgZGlkQWRkRm9vdGVy
TGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOworICAgIHZvaWQgZGlkQWRkSGVh
ZGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciYpIGZpbmFsOworICAgIHZvaWQgZGlkQWRk
Rm9vdGVyTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciYpIGZpbmFsOwogCi0gICAgYm9vbCBz
aG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3
KikgY29uc3QgZmluYWw7CisgICAgYm9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZp
ZXcoY29uc3QgV2ViQ29yZTo6RnJhbWVWaWV3JikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIGlz
UGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVG
bGFncywgdWludDY0X3QpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CmluZGV4IDMyYWY1OWYzZmJkNDc0MDlmNDI4ODYzNjlmYTA4YmVkYWNiNWQ0NjguLjQzMzk4ZmM5
M2MyM2QxYjEzOGU3YTQ1ZDJhMTllYThkMzNkM2FkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCkBAIC02NDAsMTMgKzY0MCwxMyBAQCBGcmFtZSogV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0
aQogewogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCF3
ZWJQYWdlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICAvLyBKdXN0IGNhbGwgdGhyb3VnaCB0byB0aGUgY2hyb21lIGNsaWVudC4KICAgICBGcmFtZUxv
YWRSZXF1ZXN0IHJlcXVlc3QobV9mcmFtZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50KCktPnNlY3Vy
aXR5T3JpZ2luKCksIG5hdmlnYXRpb25BY3Rpb24ucmVzb3VyY2VSZXF1ZXN0KCksIExvY2tIaXN0
b3J5OjpObywgTG9ja0JhY2tGb3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxv
d05hdmlnYXRpb25Ub0ludmFsaWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OkFsbG93
LCBuYXZpZ2F0aW9uQWN0aW9uLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSk7Ci0gICAg
UGFnZSogbmV3UGFnZSA9IHdlYlBhZ2UtPmNvcmVQYWdlKCktPmNocm9tZSgpLmNyZWF0ZVdpbmRv
dyhtX2ZyYW1lLT5jb3JlRnJhbWUoKSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgbmF2aWdh
dGlvbkFjdGlvbik7CisgICAgUGFnZSogbmV3UGFnZSA9IHdlYlBhZ2UtPmNvcmVQYWdlKCktPmNo
cm9tZSgpLmNyZWF0ZVdpbmRvdygqbV9mcmFtZS0+Y29yZUZyYW1lKCksIHJlcXVlc3QsIFdpbmRv
d0ZlYXR1cmVzKCksIG5hdmlnYXRpb25BY3Rpb24pOwogICAgIGlmICghbmV3UGFnZSkKLSAgICAg
ICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIAogICAgIHJldHVybiAm
bmV3UGFnZS0+bWFpbkZyYW1lKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5jcHAKaW5k
ZXggOTY4OTI5ZmRhMzQ3OWFhZDJiZTRhMTBhMGI0NTk2YWUxNzU1NmQ1MC4uNDFiMzRmMDBhOGM2
ZmQyMDNjNTgzNDIwM2U4MjgwYTVjNDQ1NmY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50
LmNwcApAQCAtNzMsNyArNzMsNyBAQCBXZWJJbnNwZWN0b3JDbGllbnQ6On5XZWJJbnNwZWN0b3JD
bGllbnQoKQogICAgIH0KIAogICAgIGlmIChtX3BhaW50UmVjdE92ZXJsYXkgJiYgbV9wYWdlLT5t
YWluRnJhbWUoKSkKLSAgICAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250
cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkobV9wYWludFJlY3RPdmVybGF5LmdldCgpLCBQ
YWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOworICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgp
LT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqbV9wYWludFJl
Y3RPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOwogfQogCiB2b2lkIFdlYklu
c3BlY3RvckNsaWVudDo6aW5zcGVjdGVkUGFnZURlc3Ryb3llZCgpCkBAIC0xMjYsNyArMTI2LDcg
QEAgdm9pZCBXZWJJbnNwZWN0b3JDbGllbnQ6OmhpZGVIaWdobGlnaHQoKQogewogI2lmICFQTEFU
Rk9STShJT1MpCiAgICAgaWYgKG1faGlnaGxpZ2h0T3ZlcmxheSAmJiBtX3BhZ2UtPm1haW5GcmFt
ZSgpKQotICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIo
KS51bmluc3RhbGxQYWdlT3ZlcmxheShtX2hpZ2hsaWdodE92ZXJsYXksIFBhZ2VPdmVybGF5OjpG
YWRlTW9kZTo6RmFkZSk7CisgICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5
Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX2hpZ2hsaWdodE92ZXJsYXksIFBh
Z2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CiAjZWxzZQogICAgIG1fcGFnZS0+aGlkZUluc3Bl
Y3RvckhpZ2hsaWdodCgpOwogI2VuZGlmCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBXZWJJbnNw
ZWN0b3JDbGllbnQ6OnNob3dQYWludFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewogICAg
IGlmICghbV9wYWludFJlY3RPdmVybGF5KSB7CiAgICAgICAgIG1fcGFpbnRSZWN0T3ZlcmxheSA9
IFBhZ2VPdmVybGF5OjpjcmVhdGUoKnRoaXMsIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZTo6RG9j
dW1lbnQpOwotICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xs
ZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkobV9wYWludFJlY3RPdmVybGF5LCBQYWdlT3ZlcmxheTo6
RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VP
dmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSgqbV9wYWludFJlY3RPdmVybGF5
LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAgfQogCiAgICAgaWYgKCFt
X3BhaW50SW5kaWNhdG9yTGF5ZXJDbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAppbmRleCAxZTBjZWY0NjUxYjkzYmY4
MGZiNzA1NjY1YzZmNjE1ZmVhYmMyYTg5Li4zMzAzMmMxNzJiMWIyNDM4ZGFmZDYwYzM0NjQ2NmVh
NDUwNWU0YTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RmluZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9GaW5kQ29udHJvbGxlci5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCB2b2lkIEZpbmRDb250cm9s
bGVyOjp1cGRhdGVGaW5kVUlBZnRlclBhZ2VTY3JvbGwoYm9vbCBmb3VuZCwgY29uc3QgU3RyaW5n
JiBzdHJpbgogCiAgICAgaWYgKCFzaG91bGRTaG93T3ZlcmxheSkgewogICAgICAgICBpZiAobV9m
aW5kUGFnZU92ZXJsYXkpCi0gICAgICAgICAgICBtX3dlYlBhZ2UtPm1haW5GcmFtZSgpLT5wYWdl
T3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheShtX2ZpbmRQYWdlT3Zlcmxh
eSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICAgICAgICAgIG1fd2ViUGFnZS0+
bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5
KCptX2ZpbmRQYWdlT3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKICAgICB9
IGVsc2UgewogICAgICAgICBpZiAoIW1fZmluZFBhZ2VPdmVybGF5KSB7CiAgICAgICAgICAgICBh
dXRvIGZpbmRQYWdlT3ZlcmxheSA9IFBhZ2VPdmVybGF5OjpjcmVhdGUoKnRoaXMsIFBhZ2VPdmVy
bGF5OjpPdmVybGF5VHlwZTo6RG9jdW1lbnQpOwpAQCAtMzEyLDcgKzMxMiw3IEBAIHZvaWQgRmlu
ZENvbnRyb2xsZXI6OmhpZGVGaW5kVUkoKQogewogICAgIG1fZmluZE1hdGNoZXMuY2xlYXIoKTsK
ICAgICBpZiAobV9maW5kUGFnZU92ZXJsYXkpCi0gICAgICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1l
KCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fZmluZFBh
Z2VPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOworICAgICAgICBtX3dlYlBh
Z2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3Zl
cmxheSgqbV9maW5kUGFnZU92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CiAK
ICAgICBQbHVnaW5WaWV3KiBwbHVnaW5WaWV3ID0gcGx1Z2luVmlld0ZvckZyYW1lKG1fd2ViUGFn
ZS0+bWFpbkZyYW1lKCkpOwogICAgIApAQCAtMzI1LDYgKzMyNSw3IEBAIHZvaWQgRmluZENvbnRy
b2xsZXI6OmhpZGVGaW5kVUkoKQogfQogCiAjaWYgIVBMQVRGT1JNKElPUykKKwogYm9vbCBGaW5k
Q29udHJvbGxlcjo6dXBkYXRlRmluZEluZGljYXRvcihGcmFtZSYgc2VsZWN0ZWRGcmFtZSwgYm9v
bCBpc1Nob3dpbmdPdmVybGF5LCBib29sIHNob3VsZEFuaW1hdGUpCiB7CiAgICAgUmVmUHRyPFRl
eHRJbmRpY2F0b3I+IGluZGljYXRvciA9IFRleHRJbmRpY2F0b3I6OmNyZWF0ZVdpdGhTZWxlY3Rp
b25JbkZyYW1lKHNlbGVjdGVkRnJhbWUsIFRleHRJbmRpY2F0b3JPcHRpb25JbmNsdWRlTWFyZ2lu
SWZSYW5nZU1hdGNoZXNTZWxlY3Rpb24sIHNob3VsZEFuaW1hdGUgPyBUZXh0SW5kaWNhdG9yUHJl
c2VudGF0aW9uVHJhbnNpdGlvbjo6Qm91bmNlIDogVGV4dEluZGljYXRvclByZXNlbnRhdGlvblRy
YW5zaXRpb246Ok5vbmUpOwpAQCAtMzY2LDYgKzM2Nyw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6
OmRpZEZhaWxUb0ZpbmRTdHJpbmcoKQogdm9pZCBGaW5kQ29udHJvbGxlcjo6ZGlkSGlkZUZpbmRJ
bmRpY2F0b3IoKQogewogfQorCiAjZW5kaWYKIAogdm9pZCBGaW5kQ29udHJvbGxlcjo6c2hvd0Zp
bmRJbmRpY2F0b3JJblNlbGVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCAzNjI5ZDRhZTU4YzdkNDY4NjJlMTVhNzVmOTg0YmRj
ZDVlZWI4ZjQ2Li45OTlmZTI1YzEwMGEzMTM3NmIwZGY3NWE0MzA3YzMxY2E3ZmU0ZTJhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTEw
OSw3ICsxMDksNyBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVMaXN0ZW5lcklEKCkKICAgICBy
ZXR1cm4gdW5pcXVlTGlzdGVuZXJJRCsrOwogfQogCi1QYXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJG
cmFtZTo6Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSogcGFnZSwgV2ViQ29yZTo6RnJh
bWUqIGNvcmVGcmFtZSkKK1JlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVdpdGhDb3JlTWFp
bkZyYW1lKFdlYlBhZ2UqIHBhZ2UsIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUpCiB7CiAgICAg
YXV0byBmcmFtZSA9IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+
KHN0YXRpY19jYXN0PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4oJmNvcmVGcmFtZS0+bG9hZGVyKCku
Y2xpZW50KCkpKSk7CiAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRD
cmVhdGVNYWluRnJhbWUoZnJhbWUtPmZyYW1lSUQoKSksIHBhZ2UtPnBhZ2VJRCgpLCBJUEM6OlNl
bmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CkBA
IC0xMjAsMzAgKzEyMCwzMiBAQCBQYXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRl
V2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSogcGFnZSwgV2ViQ29yZTo6RgogICAgIHJldHVybiBm
cmFtZTsKIH0KIAotUGFzc1JlZlB0cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1l
KFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBIVE1MRnJhbWVPd25lckVs
ZW1lbnQqIG93bmVyRWxlbWVudCkKK1JlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVN1YmZy
YW1lKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBIVE1MRnJhbWVPd25l
ckVsZW1lbnQqIG93bmVyRWxlbWVudCkKIHsKICAgICBhdXRvIGZyYW1lID0gY3JlYXRlKHN0ZDo6
bWFrZV91bmlxdWU8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KCkpOwogICAgIHBhZ2UtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ3JlYXRlU3ViZnJhbWUoZnJhbWUtPmZyYW1lSUQoKSks
IHBhZ2UtPnBhZ2VJRCgpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVu
V2FpdGluZ0ZvclN5bmNSZXBseSk7CiAKLSAgICBSZWY8V2ViQ29yZTo6RnJhbWU+IGNvcmVGcmFt
ZSA9IEZyYW1lOjpjcmVhdGUocGFnZS0+Y29yZVBhZ2UoKSwgb3duZXJFbGVtZW50LCBmcmFtZS0+
bV9mcmFtZUxvYWRlckNsaWVudC5nZXQoKSk7CisgICAgYXV0byBjb3JlRnJhbWUgPSBGcmFtZTo6
Y3JlYXRlKHBhZ2UtPmNvcmVQYWdlKCksIG93bmVyRWxlbWVudCwgZnJhbWUtPm1fZnJhbWVMb2Fk
ZXJDbGllbnQuZ2V0KCkpOwogICAgIGZyYW1lLT5tX2NvcmVGcmFtZSA9IGNvcmVGcmFtZS5wdHIo
KTsKLSAgICBmcmFtZS0+bV9jb3JlRnJhbWUtPnRyZWUoKS5zZXROYW1lKGZyYW1lTmFtZSk7CisK
KyAgICBjb3JlRnJhbWUtPnRyZWUoKS5zZXROYW1lKGZyYW1lTmFtZSk7CiAgICAgaWYgKG93bmVy
RWxlbWVudCkgewogICAgICAgICBBU1NFUlQob3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1l
KCkpOwotICAgICAgICBvd25lckVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKS0+dHJlZSgpLmFw
cGVuZENoaWxkKFdURk1vdmUoY29yZUZyYW1lKSk7CisgICAgICAgIG93bmVyRWxlbWVudC0+ZG9j
dW1lbnQoKS5mcmFtZSgpLT50cmVlKCkuYXBwZW5kQ2hpbGQoY29yZUZyYW1lLmdldCgpKTsKICAg
ICB9Ci0gICAgZnJhbWUtPm1fY29yZUZyYW1lLT5pbml0KCk7CisgICAgY29yZUZyYW1lLT5pbml0
KCk7CisKICAgICByZXR1cm4gZnJhbWU7CiB9CiAKLVBhc3NSZWZQdHI8V2ViRnJhbWU+IFdlYkZy
YW1lOjpjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxv
YWRlckNsaWVudCkKK1JlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9w
dHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9hZGVyQ2xpZW50KQogewogICAgIGF1dG8g
ZnJhbWUgPSBhZG9wdFJlZigqbmV3IFdlYkZyYW1lKFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQp
KSk7CiAKICAgICAvLyBBZGQgZXhwbGljdCByZWYoKSB0aGF0IHdpbGwgYmUgYmFsYW5jZWQgaW4g
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lTG9hZGVyRGVzdHJveWVkKCkuCiAgICAgZnJhbWUt
PnJlZigpOwogCi0gICAgcmV0dXJuIFdURk1vdmUoZnJhbWUpOworICAgIHJldHVybiBmcmFtZTsK
IH0KIAogV2ViRnJhbWU6OldlYkZyYW1lKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNs
aWVudD4gZnJhbWVMb2FkZXJDbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJGcmFtZS5oCmluZGV4IDIzZDQ4ZDI5ZjgzNzY2NTM4NWNmNDE0MWEwYzRmNmU2M2M1
NWM2NjAuLmQ0YzdhNDA4MzRhMjg4OWIyYTFhZmQxZmNkZTM3MDZmYWUwMjZiMDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCkBAIC02Niw4ICs2Niw4
IEBAIHN0cnVjdCBGcmFtZUluZm9EYXRhOwogCiBjbGFzcyBXZWJGcmFtZSA6IHB1YmxpYyBBUEk6
Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZUZyYW1lPiB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWU+IGNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdl
YlBhZ2UqLCBXZWJDb3JlOjpGcmFtZSopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZyYW1l
PiBjcmVhdGVTdWJmcmFtZShXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNv
cmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCopOworICAgIHN0YXRpYyBSZWY8V2ViRnJhbWU+IGNy
ZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2UqLCBXZWJDb3JlOjpGcmFtZSopOworICAgIHN0
YXRpYyBSZWY8V2ViRnJhbWU+IGNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcm
IGZyYW1lTmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Kik7CiAgICAgfldlYkZy
YW1lKCk7CiAKICAgICAvLyBDYWxsZWQgd2hlbiB0aGUgRnJhbWVMb2FkZXJDbGllbnQgKGFuZCB0
aGVyZWZvcmUgdGhlIFdlYkNvcmU6OkZyYW1lKSBpcyBiZWluZyB0b3JuIGRvd24uCkBAIC0xNjYs
OCArMTY2LDggQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIFBhc3NS
ZWZQdHI8V2ViRnJhbWU+IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGll
bnQ+KTsKLSAgICBXZWJGcmFtZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+
KTsKKyAgICBzdGF0aWMgUmVmPFdlYkZyYW1lPiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkZy
YW1lTG9hZGVyQ2xpZW50Pik7CisgICAgZXhwbGljaXQgV2ViRnJhbWUoc3RkOjp1bmlxdWVfcHRy
PFdlYkZyYW1lTG9hZGVyQ2xpZW50Pik7CiAKICAgICBXZWJDb3JlOjpGcmFtZSogbV9jb3JlRnJh
bWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJ
bnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3Rvci5jcHAKaW5kZXggZDY0Nzg1OTdhODdmZWYzZGMwYjk5OTM1MjEyNjc2ZWZjYzQ5MzMyMy4u
MDE2ZDczOGZiNjEyZDI0M2MwMDQ5ZTUyMDE1ODYyMTMwZmQ5NThmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKQEAgLTE0NSw3
ICsxNDUsNyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6b3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYg
dXJsU3RyaW5nKQogICAgIEZyYW1lJiBpbnNwZWN0ZWRNYWluRnJhbWUgPSBpbnNwZWN0ZWRQYWdl
LT5tYWluRnJhbWUoKTsKICAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QoaW5zcGVjdGVkTWFp
bkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCh1cmxT
dHJpbmcpLCAiX2JsYW5rIiwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpO
bywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBO
ZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVS
TCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogCi0gICAg
UGFnZSogbmV3UGFnZSA9IGluc3BlY3RlZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdygmaW5z
cGVjdGVkTWFpbkZyYW1lLCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9uQWN0
aW9uKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIE5hdmlnYXRpb25UeXBlOjpMaW5rQ2xpY2tl
ZCkpOworICAgIFBhZ2UqIG5ld1BhZ2UgPSBpbnNwZWN0ZWRQYWdlLT5jaHJvbWUoKS5jcmVhdGVX
aW5kb3coaW5zcGVjdGVkTWFpbkZyYW1lLCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZp
Z2F0aW9uQWN0aW9uKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIE5hdmlnYXRpb25UeXBlOjpM
aW5rQ2xpY2tlZCkpOwogICAgIGlmICghbmV3UGFnZSkKICAgICAgICAgcmV0dXJuOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299465</attachid>
            <date>2017-01-22 02:02:29 -0800</date>
            <delta_ts>2017-01-22 12:55:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167224-20170122020033.patch</filename>
            <type>text/plain</type>
            <size>390625</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMDI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmY0OTQ1MzNjMDhmYTYx
NTVkNjdkZGMzNjdiM2I4OGRlZDliNDQwMy4uMWE3MjE5ZDlmMGRlZjIwM2JmNzc3N2MzNjdlMTk0
YTMyNGI4MGYyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzOCBAQAorMjAxNy0wMS0yMCAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIg
ZnJvbSAicGFnZSIgZGlyZWN0b3J5IG9mIFdlYkNvcmUsIGFsc28gZGVwbG95IHJlZmVyZW5jZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIyNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9ET01XaW5kb3dGZXRjaC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dG
ZXRjaDo6ZmV0Y2gpOiBVc2UgRE9NV2luZG93Ojpkb2N1bWVudCBpbnN0ZWFkIG9mCisgICAgICAg
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUNvbnRleHQ6
OmRhdGFiYXNlRXhjZWVkZWRRdW90YSk6IFBhc3MgYSByZWZlcmVuY2UuCisKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAg
ICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eVNob3dD
b250ZXh0TWVudV0pOgorICAgICAgICBQYXNzIGEgcmVmZXJlbmNlLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01X
aW5kb3c6OmdldE93blByb3BlcnR5U2xvdCk6IFBhc3MgYSByZWZlcmVuY2UuCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNoaWxkcmVu
Q2hhbmdlZCk6IFBhc3MgYSByZWZlcmVuY2UuIEFsc28gbWFkZSB0aGUKKyAgICAgICAgZGlkUmVj
ZWl2ZURvY1R5cGUgY29kZSB1bmNvbmRpdGlvbmFsIGluc3RlYWQgb2YgaU9TLW9ubHkuCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2Jq
ZWN0cyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVZpZXdwb3J0
QXJndW1lbnRzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Rm9jdXNl
ZEVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVET01X
aW5kb3cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0YWtlRE9NV2luZG93
RnJvbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlcXVlc3RGdWxsU2Ny
ZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtp
dEV4aXRGdWxsc2NyZWVuKTogRGl0dG8uCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Zm9jdXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmJsdXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRpc3Bh
dGNoRm9jdXNFdmVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZGlzcGF0
Y2hCbHVyRXZlbnQpOiBEaXR0by4KKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogRGl0dG8uCisgICAgICAgICogZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVQcmludCk6
IERpdHRvLgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldEZvY3VzZWRFbGVtZW50SWZOZWVkZWQpOiBEaXR0
by4KKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkRnJhbWU6OkNhY2hlZEZyYW1lKTogRGl0dG8uCisgICAgICAgICogaHRtbC9Db2xvcklucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6aGFuZGxlRE9NQWN0
aXZhdGVFdmVudCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2Fi
bGUpOiBEaXR0by4KKworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0tleWJvYXJkRm9j
dXNhYmxlKTogUGFzcyBhIHJlZmVyZW5jZSwKKyAgICAgICAgYW5kIGFsc28gcmV3cm90ZSB0byB1
c2UgJiYgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c3VwcG9ydHNGdWxsc2NyZWVu
KTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9TcGluQnV0dG9uRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6
OnJlbGVhc2VDYXB0dXJlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjOjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogRGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250ZXh0TWVudSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpkaXNwYXRjaEV2ZW50QXNDb250
ZXh0TWVudUV2ZW50KTogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUp
OiBVcGRhdGVkIHRvIHRha2UgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJv
bWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0p
OiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNvbW1p
dFByb3Zpc2lvbmFsTG9hZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmNsb3NlQW5kUmVtb3ZlQ2hpbGQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OmRldGFjaEZyb21QYXJlbnQpOiBQYXNzIGEgcmVmZXJlbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpc3BhdGNoQmVmb3JlVW5sb2FkRXZlbnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6IERpdHRvLgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAg
KiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVj
a2VyOjpjaGVja05ld1dpbmRvd1BvbGljeSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnJlY2FsY3VsYXRlQXZhaWxhYmxlU3BhY2VJblF1
b3RhKTogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmg6IFJldHVybiBhIHJlZmVyZW5jZSBmcm9tIG9yaWdpbi4KKworICAgICAgICAqIGxv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4pOiBU
YWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZSk6CisgICAg
ICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnN0
b3JlKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjpjaGVja09yaWdpblF1b3RhKTogVXBkYXRlZCBzaW5jZSBvcmlnaW4KKyAgICAg
ICAgbm93IHJldHVybnMgYXJlZmVyZW5jZS4KKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAg
ICogbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEpOiBQYXNzIGEgcmVmZXJlbmNlLgor
ICAgICAgICAqIG1hdGhtbC9NYXRoTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1h
dGhNTEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOiBEaXR0by4KKworICAgICAgICAqIHBh
Z2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Q2hyb21lKTogTW92ZWQg
aW5pdGlhbGl6YXRpb24gb2YgZGF0YSBtZW1iZXJzIHRvIHRoZQorICAgICAgICBjbGFzcyBkZWZp
bml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2VkKTog
VGFrZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlV2luZG93
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpydW5KYXZhU2NyaXB0
QWxlcnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdENv
bmZpcm0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdFBy
b21wdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZXRTdGF0dXNiYXJUZXh0
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnByaW50KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWU6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lOjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWU6OmRpZFJlY2VpdmVEb2NUeXBlKTogRGl0dG8uIEFsc28gbWFkZSB1bmNv
bmRpdGlvbmFsLCBidXQKKyAgICAgICAgZW1wdHkgZm9yIG5vbi1pT1MgcGxhdGZvcm1zLgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lOjpyZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKTogVGFr
ZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6dW5yZWdpc3RlclBvcHVw
T3BlbmluZ09ic2VydmVyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWUuaDogVXBkYXRl
ZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogVGFrZSBy
ZWZlcmVuY2VzLiBBbHNvIHVwZGF0ZWQgc29tZSBhcmd1bWVudHMgZnJvbQorICAgICAgICBOb2Rl
IHRvIEVsZW1lbnQuCisKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmhhbmRsZUNvbnRleHRN
ZW51RXZlbnQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudSk6IERpdHRvLiBB
bHNvIHVzZQorICAgICAgICBtYWtlX3VuaXF1ZSBpbnN0ZWFkIG9mIHVuaXF1ZV9wdHIgcGx1cyBu
ZXcuCisgICAgICAgIChXZWJDb3JlOjpvcGVuTmV3V2luZG93KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjppbnNlcnRVbmljb2RlQ2hhcmFjdGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVu
dUF0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNo
b3dJbWFnZUNvbnRyb2xzTWVudSk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2UvRE9N
VGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OmZpcmVkKTogUGFzcyBhIHJl
ZmVyZW5jZS4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBvc3RNZXNzYWdlVGltZXI6OlBvc3RNZXNzYWdlVGltZXIpOiBUYWtlIFJlZiYmIGluc3Rl
YWQgb2YKKyAgICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
YWRqdXN0V2luZG93UmVjdCk6IFVzZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6YWxsb3dQb3BVcCk6IERpdHRvLiBBbHNvIHJld3JpdGUgdG8gdXNlIHx8IGluc3Rl
YWQKKyAgICAgICAgb2Ygc3VjY2Vzc2l2ZSBpZiBzdGF0ZW1lbnRzLgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6RE9NV2luZG93KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OmRpZFNlY3VyZVRyYW5zaXRpb25Ubyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjpyZWdpc3RlclByb3BlcnR5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3c6OnVucmVnaXN0ZXJQcm9wZXJ0eSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQpOiBNZXJnZSB3aXRoIHRoZSBmdW5jdGlv
bgorICAgICAgICBpbW1lZGlhdGVseSBmb2xsb3dlZCwgY2FsbGVkIG9ubHkgZnJvbSBoZXJlLgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmln
aW5DaGVjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnByaW50KTog
UGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWxlcnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y29uZmlybSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpwcm9tcHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c2V0U3RhdHVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OnNldERlZmF1bHRTdGF0dXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6bW92ZUJ5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1vdmVU
byk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVCeSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVUbyk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6RE9NV2luZG93OjpjbGVhclRpbWVvdXQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6aW5jcmVtZW50U2Nyb2xsRXZlbnRMaXN0ZW5lcnNDb3VudCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkZWNyZW1lbnRTY3JvbGxFdmVudExp
c3RlbmVyc0NvdW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNob3dN
b2RhbERpYWxvZyk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZS4gQUxzbyBtYWRlIGZ1bmN0aW9ucyBwcml2YXRlCisgICAgICAgIGFuZCBm
aW5hbC4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93UHJvcGVydHk6OkRPTVdpbmRvd1Byb3BlcnR5KTogUGFzcyBhIHJl
ZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp+RE9NV2luZG93
UHJvcGVydHkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3
aWxsRGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJhbWUp
OiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVnaW9uT3ZlcmxheTo6Y3JlYXRlKTogUmV0dXJuIFJlZlB0ciBpbnN0ZWFk
IG9mIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpSZWdpb25PdmVybGF5Ojp+UmVnaW9u
T3ZlcmxheSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEZWJ1Z1BhZ2VP
dmVybGF5czo6c2hvd1JlZ2lvbk92ZXJsYXkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRl
YnVnUGFnZU92ZXJsYXlzOjpoaWRlUmVnaW9uT3ZlcmxheSk6IERpdHRvLgorCisgICAgICAgICog
cGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxl
cjo6ZHJhZ0V4aXRlZCk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6cGVyZm9ybURyYWdPcGVyYXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6dHJ5REhUTUxEcmFnKTogRGl0dG8uCisKKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6IFJlcGxhY2VkIE9wdGlvbmFsQ3Vyc29yIHdpdGggc3Rk
OjpvcHRpb25hbDxDdXJzb3I+LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRh
dGVDdXJzb3IpOiBSZWZhY3RvciBpbnRvIHR3byBmdW5jdGlvbnMgc28gd2UKKyAgICAgICAgY2Fu
IHNoYXJlIG1vcmUgY29kZSB3aXRoIHNlbGVjdEN1cnNvci4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKTogVXBkYXRlZCB0byB1c2Ugc3RkOjpvcHRpb25hbC4K
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3ZlRXZlbnQpOiBV
c2UgdGhlIG5ldyB1cGRhdGVDdXJzb3IuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OnN0YXJ0UGFuU2Nyb2xsaW5nKTogVXNlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERyb3ApOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KTog
VGFrZSBhIHJhdyBwb2ludGVyCisgICAgICAgIGluc3RlYWQgb2YgYSBQYXNzUmVmUHRyLgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZlbnQpOiBVc2UgYSBy
ZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0
ZUFmdGVyRWRpdERyYWdJZk5lZWRlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJzVG9MaW5rcyk6IERpdHRv
LgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4K
KworICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEZyYW1lKTogVGFrZSBwb2ludGVyIGluc3RlYWQK
KyAgICAgICAgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxl
cjo6c2V0Rm9jdXNlZEVsZW1lbnQpOiBUYWtlIHJlZmVyZW5jZSBpbnN0ZWFkIG9mCisgICAgICAg
IFBhc3NSZWZQdHIuCisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDogVXBkYXRlZCBm
b3IgdGhlIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OnRyYW5zZmVyQ2hpbGQpOiBEZWxldGVkLiBVbnVz
ZWQgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OmFwcGVuZENoaWxkKTog
TWVyZ2VkIHdpdGggdGhlIGZvbGxvd2luZyBmdW5jdGlvbgorICAgICAgICBzaW5jZSBpdCdzIG5v
dyBvbmx5IHVzZWQgaGVyZS4gVGFrZSByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVUcmVlOjphY3R1YWxseUFwcGVuZENoaWxkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6cmVtb3ZlQ2hpbGQpOiBUYWtlIHJlZmVy
ZW5jZSBpbnN0ZWFkIG9mIHBvaW50ZXIuCisgICAgICAgIFVzZSBtb3ZlIGluc3RlYWQgb2YgdHJp
Y2tpZXIgc3dhcC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5oOiBVcGRhdGVkIGZvciB0aGUg
YWJvdmUuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnNldENvbnRlbnRzU2l6ZSk6IFVzZSBhIHJlZmVyZW5jZS4KKyAgICAgICAg
KiBwYWdlL01haW5GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6OmRyb3BD
aGlsZHJlbik6IERpdHRvLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpzY3JvbGxpbmdDb29yZGluYXRvcik6IERpdHRvLgorICAgICAgICAqIHBhZ2Uv
UGFnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXk6OmZhZGVBbmlt
YXRpb25UaW1lckZpcmVkKTogRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlT3ZlcmxheUNvbnRyb2xsZXI6Omlu
c3RhbGxQYWdlT3ZlcmxheSk6IFRha2UgcmVmZXJlbmNlCisgICAgICAgIGluc3RlYWQgb2YgUGFz
c1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0
YWxsUGFnZU92ZXJsYXkpOiBUYWtlIHJlZmVyZW5jZQorICAgICAgICBpbnRlYWQgb2YgcG9pbnRl
ci4KKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oOiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpQYWdlU2VyaWFsaXplcik6IE1vdmVkIG1vc3QgaW5p
dGlhbGl6YXRpb24gdG8gdGhlCisgICAgICAgIGNsYXNzIGRlZmluaXRpb24uCisgICAgICAgIChX
ZWJDb3JlOjpQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplKTogVXNlIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVGcmFtZSk6IFVzZSBpbml0aWFs
aXplciBsaXN0IGluc3RlYWQgb2YKKyAgICAgICAgY29uc3RydWN0b3IgZm9yIHJlc291cmNlLgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUNTU1N0eWxlU2hlZXQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjphZGRJbWFnZVRvUmVz
b3VyY2VzKTogRGl0dG8uCisgICAgICAgICogcGFnZS9QYWdlU2VyaWFsaXplci5oOiBSZW1vdmVk
IGNvbnN0cnVjdG9ycyBmcm9tIFBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZQorICAgICAgICBzdHJ1
Y3Qgc2luY2Ugc3RydWN0dXJlcyBkb24ndCByZWFsbHkgbmVlZCB0aGVtLiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUuCisgICAgICAgIENoYW5nZWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yIGlu
dG8gYSBuZXN0ZWQgY2xhc3MuCisKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlRW50cnkuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlRW50cnk6OnN0YXJ0VGltZUNvbXBhcmVMZXNz
VGhhbik6IFVzZSBjb25zdCBSZWZQdHImCisgICAgICAgIGluc3RlYWQgb2YgUGFzc1JlZlB0ciB0
byBjb21wYXJlIFJlZlB0ciBpbiBwbGFjZS4KKworICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VV
c2VyVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omluc2VydFBlcmZvcm1hbmNlRW50cnkp
OiBUYWtlIFJlZiYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKworICAgICAgICAqIHBhZ2UvUmVz
b3VyY2VVc2FnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VVc2FnZU92
ZXJsYXk6On5SZXNvdXJjZVVzYWdlT3ZlcmxheSk6IFVzZSByZWZyZW5jZS4KKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlVXNhZ2VPdmVybGF5Ojppbml0aWFsaXplKTogRGl0dG8uCisKKyAgICAg
ICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmg6IFJlbW92ZWQgdW5uZWVkZWQgaW5j
bHVkZS4KKworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmNsZWFyKTog
VXNlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlOjpmaXJlRXZlbnRzQW5kVXBkYXRlU3R5bGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2gpOiBVc2UgdGhl
CisgICAgICAgIGFwcGVuZCBmdW5jdGlvbiBpbnN0ZWFkIG9mIGEgaGFuZC13cml0dGVuIGFsdGVy
bmF0aXZlLgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFk
ZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKToKKyAgICAgICAgVGFrZSBhIHJlZmVyZW5jZSByYXRo
ZXIgdGhhbiBhIFJlZiYmIHNpbmNlIG5vIGNhbGxlciBpcyBwYXNzaW5nIG93bmVyc2hpcC4KKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oOiBVcGRh
dGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0
eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibGVuZEZ1bmMpOiBSZXR1cm4gUmVm
UHRyIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OmJsZW5kRmlsdGVy
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpjcm9zc2ZhZGVCbGVuZCk6IERpdHRvLgorCisg
ICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlVHJhbnNpdGlvbnMpOiBVcGRhdGVk
IHRvIHVzZQorICAgICAgICBhbmltYXRpb25Gb3JQcm9wZXJ0eSwgd2hpY2ggcmV0dXJucyBhIHJh
dyBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRp
b25Gb3JQcm9wZXJ0eSk6IFJlbmFtZWQgZnJvbQorICAgICAgICBnZXRBbmltYXRpb25Gb3JQcm9w
ZXJ0eSBhbmQgY2hhbmdlZCB0byByZXR1cm4gcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAgICBv
ZiBQYXNzUmVmUHRyLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9J
bXBsaWNpdEFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlv
bjo6b25BbmltYXRpb25FbmQpOiBVc2UgYW5pbWF0aW9uRm9yUHJvcGVydHkuCisgICAgICAgIChX
ZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudCk6IFBhc3MgcmVm
ZXJlbmNlLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQp
OiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyk6IFRha2Ug
cmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2lu
Z0RhdGFUcmFuc2Zlcik6IFJldHVybiBSZWYuCisgICAgICAgICogcGFnZS9ndGsvRXZlbnRIYW5k
bGVyR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9y
bUNvbnRyb2xzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9pb3MvRXZlbnRI
YW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxG
b3JtQ29udHJvbHMpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRy
YW5zZmVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0Fs
bEZvcm1Db250cm9scyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpw
bGF0Zm9ybVByZXBhcmVGb3JXaGVlbEV2ZW50cyk6IERpdHRvLgorCisgICAgICAgICogcGFnZS9t
YWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oOiBUYWtlIFJlZiYmIGZvciByYW5nZXMgaW5z
dGVhZAorICAgICAgICBvZiBQYXNzUmVmUHRyLiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKiBw
YWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6Okhp
Z2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OkhpZ2hsaWdodCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6YnVpbGRQ
b3RlbnRpYWxIaWdobGlnaHRzSWZOZWVkZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkUGhvbmVOdW1iZXJIaWdobGlnaHRzKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFNl
bGVjdGlvbkhpZ2hsaWdodCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVy
bGF5Q29udHJvbGxlcjo6aGlnaGxpZ2h0c0FyZUVxdWl2YWxlbnQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmZpbmRUZWxlcGhvbmVOdW1iZXJI
aWdobGlnaHRDb250YWluaW5nU2VsZWN0aW9uSGlnaGxpZ2h0KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpoYW5kbGVDbGljayk6IERpdHRvLgor
CisgICAgICAgICogcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKyAgICAgICAgKC1b
V2ViVGV4dEluZGljYXRvclZpZXcgaW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpv
ZmZzZXQ6XSk6CisgICAgICAgIFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRy
LgorICAgICAgICAoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRv
cik6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0Fz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDogVXNlIFJlZiYmIGFuZCBSZWZQdHIgaW50ZWFkCisg
ICAgICAgIG9mIFBzYXNSZWZQdHIuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxM
YXRjaGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbExhdGNoaW5nU3RhdGU6
OlNjcm9sbExhdGNoaW5nU3RhdGUpOiBJbml0aWFsaXplIGRhdGEgbWVtYmVycworICAgICAgICBp
biBjbGFzcyBkZWZpbml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0
ZTo6c2V0V2hlZWxFdmVudEVsZW1lbnQpOiBVc2UgcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAg
ICBvZiBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6
c2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudCk6IFVzZSByYXcKKyAgICAgICAgcG9pbnRl
ciBpbnN0ZWFkIG9mIFJlZlB0ciYmLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdT
dGF0ZTo6c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcik6IFVzZSByYXcgcG9pbnRlciBpbnN0ZWFkCisg
ICAgICAgIG9mIFBhc3NSZWZQdHIuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0
Y2hpbmdTdGF0ZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KTogVXNlIFJlZiBpbnN0ZWFkIG9mIFBhc3NSZWZQ
dHIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxkKTog
VXNlIFJlZiYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZU5vZGUuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlTm9kZSk6IFVzZSBSZWYgaW5zdGVhZCBvZiBQ
YXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlOjphdHRhY2hO
b2RlKTogVXBkYXRlZCBmb3IgdGhlIGFidmUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdT
dGF0ZVRyZWU6OmNvbW1pdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlVHJlZS5oOiBEaXR0by4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJl
ZUZyb21TdGF0ZU5vZGUpOiBVc2UgcmVmZXJlbmNlLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaDogUmV0dXJuIFJlZiBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9kZTo6YXBwZW5kQ2hpbGQpOiBUYWtlIFJlZiYmIGluc3Rl
YWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVOb2RlOjpy
ZW1vdmVDaGlsZCk6IFRha2UgcmVmZXJlbmNlIGluc3RlYWQgb2YgcG9pbnRlci4KKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJv
dmUuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpUaHJlYWRlZFNjcm9s
bGluZ1RyZWUpOiBUYWtlIHJlZmVyZW5jZQorICAgICAgICBpbnN0ZWFkIG9mIHBvaW50ZXIuCisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdD
b29yZGluYXRvcklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
SU9TOjpTY3JvbGxpbmdDb29yZGluYXRvcklPUyk6IFBhc3MgcmVmZXJlbmNlLgorCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRlKTogVGFrZSBhIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVJT1M6OlNjcm9sbGluZ1RyZWVJT1MpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKTogUmV0dXJuIFJlZiBpbnN0ZWFkIG9mCisgICAgICAgIFBhc3NSZWZQdHIuCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaDogVXBkYXRlZCBmb3IgdGhl
IGFib3ZlLgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OlNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjKTogVXNlIHJlZmVyZW5jZS4KKworICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNwcDoKKyAgICAgICAgKFNjcm9sbGluZ1Ry
ZWVNYWM6OmNyZWF0ZSk6IFRha2UgYSByZWZlcmVuY2UuCisgICAgICAgIChTY3JvbGxpbmdUcmVl
TWFjOjpTY3JvbGxpbmdUcmVlTWFjKTogRGl0dG8uCisgICAgICAgIChTY3JvbGxpbmdUcmVlTWFj
OjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZSk6IFJldHVybiBhIFJlZiBpbnN0ZWFkIG9mIGEKKyAg
ICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZU1hYy5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL3dpbi9F
dmVudEhhbmRsZXJXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJz
VG9BbGxGb3JtQ29udHJvbHMpOiBUYWtlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIpOiBSZXR1cm4gUmVmLgorCisg
ICAgICAgICogcGxhdGZvcm0vQ3Vyc29yLmg6IFJlYXJyYW5nZWQgdGhlIGhlYWRlciBhIGJpdC4g
R290IHJpZCBvZiB0aGUgZXhwbGljaXQKKyAgICAgICAgY29weSBjb25zdHJ1Y3RvciwgYXNzaWdu
bWVudCBvcGVyYXRvciwgYW5kIGRlc3RydWN0b3IuIFVzaW5nIHRoZSBvbmVzCisgICAgICAgIHRo
YXQgdGhlIGNvbXBpbGVyIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVzIHdpbGwgd29yayBmb3IgYWxs
IHBsYXRmb3JtcyBhbmQKKyAgICAgICAgd2UgdGhlbiBhbHNvIGdldCBtb3ZlIGNvbnN0cnVjdG9y
IGFuZCBtb3ZlIGFzc2lnbm1lbnQgb3BlcmF0b3IuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
Q3Vyc29yRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6Q3Vyc29yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6fkN1cnNvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpDdXJzb3I6Om9wZXJhdG9yPSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3RrL0N1cnNvckd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6OkN1cnNvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6Om9wZXJhdG9yPSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6On5DdXJzb3IpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9DdXJzb3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6OkN1
cnNvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6Om9wZXJhdG9yPSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6On5DdXJzb3IpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9DdXJzb3JXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hh
cmVkQ3Vyc29yOjpTaGFyZWRDdXJzb3IpOiBNb3ZlZCB0aGlzIGhlcmUgZnJvbSB0aGUgaGVhZGVy
CisgICAgICAgIHNpbmNlIGl0IGlzIG9ubHkgdXNlZCB3aXRoaW4gdGhpcyBmaWxlLgorICAgICAg
ICAoV2ViQ29yZTo6U2hhcmVkQ3Vyc29yOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkN1cnNvcjo6Q3Vyc29yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6
b3BlcmF0b3I9KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6fkN1cnNvcik6
IERlbGV0ZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OmhhbmRsZVVuYXZhaWxh
YmxlUGx1Z2luSW5kaWNhdG9yRXZlbnQpOgorICAgICAgICBQYXNzIHJlZmVyZW5jZS4KKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXllckJhY2tpbmcpOiBHZXQgdG8gRnJhbWVW
aWV3CisgICAgICAgIHRocm91Z2ggdGhlIHJlbmRlciB0cmVlIGl0c2VsZiwgcmF0aGVyIHRoYW4g
dGhyb3VnaCB0aGUgZnJhbWUuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBk
YXRlTGF5ZXJGb3JIZWFkZXIpOiBVc2UgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllckZvckZvb3Rlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphdHRhY2hSb290TGF5ZXIpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGV0YWNoUm9vdExh
eWVyKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAg
ICAgICAgKFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXApOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Vh
cmNoRmllbGQ6OmFkZFNlYXJjaFJlc3VsdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU2VhcmNoRmllbGQ6OnNob3dQb3B1cCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU2VhcmNoRmllbGQ6OnZhbHVlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdB
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBRWxlbWVudDo6aXNLZXlib2FyZEZv
Y3VzYWJsZSk6IERpdHRvLgorICAgICAgICAqIHRlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYWdlT3ZlcmxheUNsaWVudDo6aW5zdGFsbE92
ZXJsYXkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYWdlT3ZlcmxheUNsaWVudDo6
dW5pbnN0YWxsQWxsT3ZlcmxheXMpOiBEaXR0by4KKwogMjAxNy0wMS0yMiAgWmFuIERvYmVyc2Vr
ICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dTdHJlYW1lcl0gQ2xlYXIgb3V0
IG1fYXBwc2lua0NhcHMgaW4gQXBwZW5kUGlwZWxpbmU6OmFwcHNpbmtDYXBzQ2hhbmdlZCgpIGJl
Zm9yZSB1c2luZyBvdXRQdHIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCmluZGV4IDlhMWFhMTliN2E0Nzc1Zjky
YWEwM2ZlNTQwNzgyMmQ1OTdmYjBkNzAuLjMwZTdhZTRhYTY3YjY2ZGNmYzY0ZDVkOTVjOTc0YzYy
YzZkNTVhZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNy0wMS0yMSAg
RGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQ
dHIgZnJvbSAicGFnZSIgZGlyZWN0b3J5IG9mIFdlYkNvcmUsIGFsc28gZGVwbG95IHJlZmVyZW5j
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIy
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmg6IFVwZGF0ZSBmb3IgY2hhbmdlcyB0byBD
aHJvbWVDbGllbnQuCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9T
Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50SU9TOjpydW5KYXZhU2NyaXB0QWxlcnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudElPUzo6cnVuSmF2YVNjcmlwdENvbmZpcm0p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudElPUzo6cnVuSmF2YVNjcmlwdFByb21w
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50SU9TOjpzZXROZWVkc1Njcm9sbE5v
dGlmaWNhdGlvbnMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudElPUzo6b2JzZXJ2
ZWRDb250ZW50Q2hhbmdlKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnRJT1M6OmNs
ZWFyQ29udGVudENoYW5nZU9ic2VydmVycyk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50SU9TOjpub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNocm9tZUNsaWVudElPUzo6ZWxlbWVudERpZEZvY3VzKTogRGl0dG8uCisg
ICAgICAgIChXZWJDaHJvbWVDbGllbnRJT1M6OmVsZW1lbnREaWRCbHVyKTogRGl0dG8uCisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnRJT1M6OmNyZWF0ZVBvcHVwTWVudSk6IERpdHRvLgorICAgICAg
ICAoV2ViQ2hyb21lQ2xpZW50SU9TOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNocm9tZUNsaWVudElPUzo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIpOiBEaXR0
by4KKwogMjAxNy0wMS0yMSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW1vdmUgdGhlIHVudXNlZCAtW1dlYkZpeGVkUG9zaXRpb25Db250ZW50IG1p
bmltdW1PZmZzZXRGcm9tRml4ZWRQb3NpdGlvbkxheWVyc1RvQW5jaG9yRWRnZTpvZlJlY3Q6aW5M
YXllcjpdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggMDA5ZDhiODMzMjM5ZGYxYTdlM2EzMTA3YmVkMGM3
MzU3YTBmNjYxOC4uZTM2NTdhNDk1MGEzOGNhNjNkZDIyZTM3YjAyNTU4MzU5NGE2OTBiMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE3LTAxLTIwICBEYXJpbiBBZGxlciAg
PGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgUGFzc1JlZlB0ciBmcm9tICJwYWdl
IiBkaXJlY3Rvcnkgb2YgV2ViQ29yZSwgYWxzbyBkZXBsb3kgcmVmZXJlbmNlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3MjI0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLm1tOgorICAgICAgICAoLVtXZWJBcHBsaWNh
dGlvbkNhY2hlUXVvdGFNYW5hZ2VyIHF1b3RhXSk6IFBhc3MgcmVmZXJlbmNlLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6IFVwZGF0ZWQgZm9yIGNoYW5nZXMg
dG8gQ2hyb21lQ2xpZW50LgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEVsZW1lbnRDaGFuZ2VkKTog
RGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyk6IERpdHRvLgor
ICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KTogRGl0
dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKTogRGl0
dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCk6IERpdHRv
LgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNr
ZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cHJpbnQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKTogRGl0dG8uCisg
ICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2Vy
KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRGb2N1cyk6IERp
dHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkQmx1cik6IERpdHRvLgor
ICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKTogRGl0dG8uCisg
ICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcik6
IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JF
bGVtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVl
bkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KTogRGl0dG8uCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1t
OgorICAgICAgICAoK1tXZWJGcmFtZSBfY3JlYXRlRnJhbWVXaXRoUGFnZTpmcmFtZU5hbWU6ZnJh
bWVWaWV3Om93bmVyRWxlbWVudDpdKToKKyAgICAgICAgVXBkYXRlZCBmb3IgY2hhbmdlIHRvIHRo
ZSBhcHBlbmRDaGlsZCBmdW5jdGlvbi4KKwogMjAxNy0wMS0yMSAgU2ltb24gRnJhc2VyICA8c2lt
b24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgLVtXZWJGcmFtZSBzZW5kT3Jp
ZW50YXRpb25DaGFuZ2VFdmVudDpdIHdoaWNoIGlzIHVudXNlZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4
IGVkZDIxYzBiYzc3NGJjZTc4YmVmMThkNWJiZjI4Y2ZlMmUwYWUxOWYuLjE4N2VmYzI4ZWQxNTRh
MDYxZmQ4NTFjMGFhMGQ5ZGIxYzk0Y2Y3OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NiBAQAorMjAxNy0wMS0yMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVtb3ZlIFBhc3NSZWZQdHIgZnJvbSAicGFnZSIgZGlyZWN0b3J5IG9mIFdlYkNvcmUsIGFs
c28gZGVwbG95IHJlZmVyZW5jZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2NzIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlBsdWdpblZpZXc6OnN0YXR1cyk6IFBhc3MgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6
UGx1Z2luVmlldzo6Zm9jdXNQbHVnaW5FbGVtZW50KTogRGl0dG8uCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50
OjpjcmVhdGVXaW5kb3cpOiBVcGRhdGVkIGZvciBjaGFuZ2UgdG8gQ2hyb21lQ2xpZW50LgorICAg
ICAgICAoV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KTogRGl0dG8u
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKTogRGl0dG8u
CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cHJpbnQpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKTogRGl0dG8uCisgICAg
ICAgIChXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5
ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlH
cmFwaGljc0xheWVyKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlk
ZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVD
bGllbnQ6OmNyZWF0ZVBvcHVwTWVudSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50
OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVu
dDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hy
b21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KTogRGl0dG8uCisgICAgICAgIChX
ZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAg
ICAoV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcpOiBE
aXR0by4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDogRGl0dG8u
CisKIDIwMTctMDEtMjAgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZW1vdmUgbmV2ZXIgY2hhbmdpbmcgSW5kZXhlZERCIFJ1bnRpbWVFbmFibGVkRmVh
dHVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCmluZGV4IDNiYWM3YTAxMzJkMTlkMjI3YjY1MWVjYWYzYTI5YTUxOWQ5YWYy
MzQuLjM1OTc5MjY1MWNiMWQ0NzA5NTNhOGE3YTM5ODM0YTdkN2I5Y2JlYmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw4MCBAQAorMjAxNy0wMS0yMCAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIgZnJvbSAicGFnZSIgZGlyZWN0b3J5IG9m
IFdlYkNvcmUsIGFsc28gZGVwbG95IHJlZmVyZW5jZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIyNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3Jl
YXRlU2Nyb2xsaW5nVHJlZU5vZGUpOiBSZXR1cm4gYSBSZWYKKyAgICAgICAgaW5zdGVhZCBvZiBQ
YXNzUmVmUHRyLgorICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5n
VHJlZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXS0J1bmRsZVBh
Z2VJbnN0YWxsUGFnZU92ZXJsYXkpOiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAgICAoV0tCdW5k
bGVQYWdlVW5pbnN0YWxsUGFnZU92ZXJsYXkpOiBEaXR0by4KKyAgICAgICAgKFdLQnVuZGxlUGFn
ZUluc3RhbGxQYWdlT3ZlcmxheVdpdGhBbmltYXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdLQnVu
ZGxlUGFnZVVuaW5zdGFsbFBhZ2VPdmVybGF5V2l0aEFuaW1hdGlvbik6IERpdHRvLgorICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbToKKyAgICAg
ICAgKFdlYktpdDo6UERGUGx1Z2luOjpqc1BERkRvY1ByaW50KTogRGl0dG8uCisgICAgICAgICog
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVn
aW5WaWV3Ojpmb2N1c1BsdWdpbkVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6UGx1
Z2luVmlldzo6c2V0U3RhdHVzYmFyVGV4dCk6IERpdHRvLgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRGb2N1cyk6IFVwZGF0ZWQgZm9yIGNoYW5nZXMgdG8g
Q2hyb21lQ2xpZW50LgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnRE
aWRCbHVyKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6bWFrZUZp
cnN0UmVzcG9uZGVyKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
Y3JlYXRlV2luZG93KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6Oldl
YkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KTogRGl0dG8uCisgICAgICAgIChXZWJL
aXQ6OldlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0pOiBEaXR0by4KKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KTogRGl0dG8u
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZCk6
IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1
Z2luQnV0dG9uQ2xpY2tlZCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6OnByaW50KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZXhj
ZWVkZWREYXRhYmFzZVF1b3RhKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSk6IERpdHRvLgorICAgICAg
ICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudSk6IERpdHRv
LgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVu
dSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RH
cmFwaGljc0xheWVyKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6
YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IpOiBEaXR0by4KKyAg
ICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVt
ZW50KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxs
U2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpX
ZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEhlYWRlckxheWVyKTogRGl0dG8uCisgICAgICAgIChXZWJL
aXQ6OldlYkNocm9tZUNsaWVudDo6ZGlkQWRkRm9vdGVyTGF5ZXIpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZp
ZXcpOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oOiBEaXR0by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lv
cy9XZWJDaHJvbWVDbGllbnRJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVu
dDo6ZWxlbWVudERpZFJlZm9jdXMpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21l
Q2xpZW50OjpkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0
OjpXZWJDaHJvbWVDbGllbnQ6Om9ic2VydmVkQ29udGVudENoYW5nZSk6IERpdHRvLgorICAgICAg
ICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyk6
IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6Om5vdGlmeVJldmVhbGVk
U2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZSk6IERpdHRvLgorCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaENyZWF0ZVBhZ2UpOiBQYXNzIHJlZmVy
ZW5jZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNs
aWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvckNsaWVudDo6fldlYkluc3Bl
Y3RvckNsaWVudCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JDbGllbnQ6
OmhpZGVIaWdobGlnaHQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yQ2xp
ZW50OjpzaG93UGFpbnRSZWN0KTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L0ZpbmRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmluZENvbnRyb2xsZXI6OnVw
ZGF0ZUZpbmRVSUFmdGVyUGFnZVNjcm9sbCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpGaW5k
Q29udHJvbGxlcjo6aGlkZUZpbmRVSSk6IERpdHRvLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkZyYW1lLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNyZWF0ZVdp
dGhDb3JlTWFpbkZyYW1lKTogUmV0dXJuIFJlZiBpbnN0ZWFkIG9mCisgICAgICAgIFBhc3NSZWZQ
dHIuCisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lOjpjcmVhdGVTdWJmcmFtZSk6IERpdHRvLgor
ICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y3JlYXRlKTogRGl0dG8uCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmg6IFVwZGF0ZWQgZm9yIHRlaCBhYm92ZS4KKworICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJJbnNwZWN0b3I6Om9wZW5Jbk5ld1RhYik6IFBhc3MgcmVmZXJlbmNlLgorCiAyMDE3
LTAxLTIxICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjExMDEyLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9ET01XaW5kb3dGZXRjaC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0RPTVdpbmRvd0ZldGNoLmNwcAppbmRleCBhZGFkYWNkODNjMjYwY2Zh
OWQ3Njk5ZDM0ZjZhNGJlYzkxZDYxZjA2Li5jNTlkMzY1NmEwYzIxMDdhYTlkYTc2ZGYxYTU3Mzdk
ZWZmOWY1MmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0RPTVdp
bmRvd0ZldGNoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0RPTVdpbmRv
d0ZldGNoLmNwcApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQ2Fu
b24gSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCwg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMyLDE2ICszMywxNyBA
QAogI2lmIEVOQUJMRShGRVRDSF9BUEkpCiAKICNpbmNsdWRlICJET01XaW5kb3cuaCIKLSNpbmNs
dWRlICJGZXRjaFJlcXVlc3QuaCIKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZl
dGNoUmVzcG9uc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIERPTVdpbmRvd0Zl
dGNoOjpmZXRjaChET01XaW5kb3cmIHdpbmRvdywgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0LCBSZWY8
RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UpCiB7Ci0gICAgaWYgKCF3aW5kb3cuc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKQorICAgIGF1dG8qIGRvY3VtZW50ID0gd2luZG93LmRvY3VtZW50KCk7
CisgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwotICAgIEZldGNoUmVzcG9uc2U6
OmZldGNoKCp3aW5kb3cuc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCByZXF1ZXN0LCBXVEZNb3Zl
KHByb21pc2UpKTsKKyAgICBGZXRjaFJlc3BvbnNlOjpmZXRjaCgqZG9jdW1lbnQsIHJlcXVlc3Qs
IFdURk1vdmUocHJvbWlzZSkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQ29udGV4dC5j
cHAKaW5kZXggZTU0ODlmY2I1NDBjOTY5NGFlNDM3NTk2ODNkZTlhY2YwMTgyNGFkOS4uM2RjYjU2
MDM0M2ViNWFiOTQ1MTFhMzkwZWIxOTExYjM5Y2IwZjFhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUNvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcApAQCAtMjA0
LDcgKzIwNCw3IEBAIHZvaWQgRGF0YWJhc2VDb250ZXh0OjpkYXRhYmFzZUV4Y2VlZGVkUXVvdGEo
Y29uc3QgU3RyaW5nJiBuYW1lLCBEYXRhYmFzZURldGFpbHMKICAgICBpZiAoaXM8RG9jdW1lbnQ+
KCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKSB7CiAgICAgICAgIERvY3VtZW50JiBkb2N1bWVu
dCA9IGRvd25jYXN0PERvY3VtZW50PigqbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKICAgICAg
ICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCkpCi0gICAgICAgICAgICBwYWdlLT5j
aHJvbWUoKS5jbGllbnQoKS5leGNlZWRlZERhdGFiYXNlUXVvdGEoZG9jdW1lbnQuZnJhbWUoKSwg
bmFtZSwgZGV0YWlscyk7CisgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5leGNl
ZWRlZERhdGFiYXNlUXVvdGEoKmRvY3VtZW50LmZyYW1lKCksIG5hbWUsIGRldGFpbHMpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIEFTU0VSVChtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQt
PmlzV29ya2VyR2xvYmFsU2NvcGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCmluZGV4IDQxNmIxODM0YmQ4YWE2MzRiOGM3YmMyY2VlN2YwOTQ2YmM2YmIwN2UuLjAz
MjBmOTU1NmI1N2IyYjAzNzI5MTJiMDhmNTI5MmViNGY4NmVkMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2li
aWxpdHlPYmplY3RXcmFwcGVyTWFjLm1tCkBAIC0zNzI5LDcgKzM3MjksNyBAQCAtICh2b2lkKWFj
Y2Vzc2liaWxpdHlTaG93Q29udGV4dE1lbnUKICAgICAgICAgfQogICAgIH0KICAgICAKLSAgICBw
YWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnVBdCgmcGFnZS0+bWFp
bkZyYW1lKCksIHJlY3QuY2VudGVyKCkpOworICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxl
cigpLnNob3dDb250ZXh0TWVudUF0KHBhZ2UtPm1haW5GcmFtZSgpLCByZWN0LmNlbnRlcigpKTsK
IH0KIAogLSAodm9pZClhY2Nlc3NpYmlsaXR5U2Nyb2xsVG9WaXNpYmxlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKaW5kZXggYTNmNjJlNTY0
NDExZjE4MDdiZmYwOTVmNWRiOWNhNTJmNmU2Y2RlNC4uYWU3ZmU4YzE3ZjBkYmNkMTViNzA1NDg2
ZDY0MmE0NThhZTU3YmNiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93Q3VzdG9tLmNwcApAQCAtMTc4LDcgKzE3OCw3IEBAIGJvb2wgSlNET01XaW5kb3c6
OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQ
cm9wZXJ0CiAgICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAvLyBEZXRlY3Qgd2hlbiB3ZSdyZSBn
ZXR0aW5nIHRoZSBwcm9wZXJ0eSAnc2hvd01vZGFsRGlhbG9nJywgdGhpcyBpcyBkaXNhYmxlZCwg
YW5kIGhhcyBpdHMgb3JpZ2luYWwgdmFsdWUuCiAgICAgICAgIGJvb2wgaXNTaG93TW9kYWxEaWFs
b2dBbmRTaG91bGRIaWRlID0gcHJvcGVydHlOYW1lID09IHN0YXRlLT5wcm9wZXJ0eU5hbWVzKCku
c2hvd01vZGFsRGlhbG9nCi0gICAgICAgICAgICAmJiAhRE9NV2luZG93OjpjYW5TaG93TW9kYWxE
aWFsb2coZnJhbWUpCisgICAgICAgICAgICAmJiAhRE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFs
b2coKmZyYW1lKQogICAgICAgICAgICAgJiYgc2xvdC5pc1ZhbHVlKCkgJiYgaXNIb3N0RnVuY3Rp
b24oc2xvdC5nZXRWYWx1ZShzdGF0ZSwgcHJvcGVydHlOYW1lKSwganNET01XaW5kb3dJbnN0YW5j
ZUZ1bmN0aW9uU2hvd01vZGFsRGlhbG9nKTsKICAgICAgICAgLy8gVW5sZXNzIHdlJ3JlIGluIHRo
ZSBzaG93TW9kYWxEaWFsb2cgc3BlY2lhbCBjYXNlLCB3ZSdyZSBkb25lLgogICAgICAgICBpZiAo
IWlzU2hvd01vZGFsRGlhbG9nQW5kU2hvdWxkSGlkZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDA4MTYwYWRkM2EzYTNkZTljZDQ4N2ZkNDE0MTM4MjE2MWM5MWYxOWMuLjk0OGQ2N2NlZTQz
OWI1MGRmODBiY2ZmNTliNzdmMDIyNjcwYmNlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtODQ4LDEzICs4NDgsMTEgQEAgdm9pZCBEb2N1bWVudDo6Y2hpbGRyZW5DaGFuZ2VkKGNvbnN0
IENoaWxkQ2hhbmdlJiBjaGFuZ2UpCiB7CiAgICAgQ29udGFpbmVyTm9kZTo6Y2hpbGRyZW5DaGFu
Z2VkKGNoYW5nZSk7CiAKLSNpZiBQTEFURk9STShJT1MpCiAgICAgLy8gRklYTUU6IENocm9tZTo6
ZGlkUmVjZWl2ZURvY1R5cGUoKSB1c2VkIHRvIGJlIGNhbGxlZCBvbmx5IHdoZW4gdGhlIGRvY3R5
cGUgY2hhbmdlZC4gV2UgbmVlZCB0byBjaGVjayB0aGUKICAgICAvLyBpbXBhY3Qgb2YgY2FsbGlu
ZyB0aGlzIHN5c3RlbWF0aWNhbGx5LiBJZiB0aGUgb3ZlcmhlYWQgaXMgbmVnbGlnaWJsZSwgd2Ug
bmVlZCB0byByZW5hbWUgZGlkUmVjZWl2ZURvY1R5cGUsCiAgICAgLy8gb3RoZXJ3aXNlLCB3ZSBu
ZWVkIHRvIGRldGVjdCB0aGUgZG9jIHR5cGUgY2hhbmdlcyBiZWZvcmUgdXBkYXRpbmcgdGhlIHZp
ZXdwb3J0LgogICAgIGlmIChQYWdlKiBwYWdlID0gdGhpcy0+cGFnZSgpKQotICAgICAgICBwYWdl
LT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZShmcmFtZSgpKTsKLSNlbmRpZgorICAgICAgICBw
YWdlLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZSgqZnJhbWUoKSk7CiAKICAgICBFbGVtZW50
KiBuZXdEb2N1bWVudEVsZW1lbnQgPSBjaGlsZHJlbk9mVHlwZTxFbGVtZW50PigqdGhpcykuZmly
c3QoKTsKICAgICBpZiAobmV3RG9jdW1lbnRFbGVtZW50ID09IG1fZG9jdW1lbnRFbGVtZW50KQpA
QCAtMjM3Miw5ICsyMzcwLDEwIEBAIHZvaWQgRG9jdW1lbnQ6OnBsYXRmb3JtU3VzcGVuZE9yU3Rv
cEFjdGl2ZURPTU9iamVjdHMoKQogewogI2lmIFBMQVRGT1JNKElPUykKICAgICBpZiAoV2ViVGhy
ZWFkQ291bnRPZk9ic2VydmVkQ29udGVudE1vZGlmaWVycygpID4gMCkgewotICAgICAgICBGcmFt
ZSogZnJhbWUgPSB0aGlzLT5mcmFtZSgpOwotICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1l
ID8gZnJhbWUtPnBhZ2UoKSA6IG51bGxwdHIpCi0gICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS5jbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoZnJhbWUpOworICAgICAgICBpZiAo
YXV0byogZnJhbWUgPSB0aGlzLT5mcmFtZSgpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogcGFn
ZSA9IGZyYW1lLT5wYWdlKCkpCisgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50
KCkuY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKCpmcmFtZSk7CisgICAgICAgIH0KICAgICB9
CiAjZW5kaWYKIH0KQEAgLTMyMTgsOSArMzIxNyw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZVZp
ZXdwb3J0QXJndW1lbnRzKCkKICAgICAgICAgbV9kaWREaXNwYXRjaFZpZXdwb3J0UHJvcGVydGll
c0NoYW5nZWQgPSB0cnVlOwogI2VuZGlmCiAgICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuZGlzcGF0
Y2hWaWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UobV92aWV3cG9ydEFyZ3VtZW50cyk7Ci0jaWYg
UExBVEZPUk0oSU9TKQotICAgICAgICBwYWdlKCktPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBl
KGZyYW1lKCkpOwotI2VuZGlmCisgICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuZGlkUmVjZWl2ZURv
Y1R5cGUoKmZyYW1lKCkpOwogICAgIH0KIH0KIApAQCAtMzY0Miw3ICszNjM5LDcgQEAgYm9vbCBE
b2N1bWVudDo6c2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgRm9jdXNEaXJlY3Rp
b24gZGlyZWN0aW9uLCBGb2MKICAgICAgICAgICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50Pigq
b2xkRm9jdXNlZEVsZW1lbnQpKQogICAgICAgICAgICAgICAgIGRvd25jYXN0PEhUTUxJbnB1dEVs
ZW1lbnQ+KCpvbGRGb2N1c2VkRWxlbWVudCkuZW5kRWRpdGluZygpOwogICAgICAgICAgICAgaWYg
KHBhZ2UoKSkKLSAgICAgICAgICAgICAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVsZW1l
bnREaWRCbHVyKG9sZEZvY3VzZWRFbGVtZW50LmdldCgpKTsKKyAgICAgICAgICAgICAgICBwYWdl
KCktPmNocm9tZSgpLmNsaWVudCgpLmVsZW1lbnREaWRCbHVyKCpvbGRGb2N1c2VkRWxlbWVudCk7
CiAgICAgICAgICAgICBBU1NFUlQoIW1fZm9jdXNlZEVsZW1lbnQpOwogICAgICAgICB9CiAKQEAg
LTQwMDAsNyArMzk5Nyw3IEBAIHZvaWQgRG9jdW1lbnQ6OmNyZWF0ZURPTVdpbmRvdygpCiAgICAg
QVNTRVJUKG1fZnJhbWUpOwogICAgIEFTU0VSVCghbV9kb21XaW5kb3cpOwogCi0gICAgbV9kb21X
aW5kb3cgPSBET01XaW5kb3c6OmNyZWF0ZSh0aGlzKTsKKyAgICBtX2RvbVdpbmRvdyA9IERPTVdp
bmRvdzo6Y3JlYXRlKCp0aGlzKTsKIAogICAgIEFTU0VSVChtX2RvbVdpbmRvdy0+ZG9jdW1lbnQo
KSA9PSB0aGlzKTsKICAgICBBU1NFUlQobV9kb21XaW5kb3ctPmZyYW1lKCkgPT0gbV9mcmFtZSk7
CkBAIC00MDE1LDcgKzQwMTIsNyBAQCB2b2lkIERvY3VtZW50Ojp0YWtlRE9NV2luZG93RnJvbShE
b2N1bWVudCogZG9jdW1lbnQpCiAgICAgQVNTRVJUKHBhZ2VDYWNoZVN0YXRlKCkgPT0gTm90SW5Q
YWdlQ2FjaGUpOwogCiAgICAgbV9kb21XaW5kb3cgPSBXVEZNb3ZlKGRvY3VtZW50LT5tX2RvbVdp
bmRvdyk7Ci0gICAgbV9kb21XaW5kb3ctPmRpZFNlY3VyZVRyYW5zaXRpb25Ubyh0aGlzKTsKKyAg
ICBtX2RvbVdpbmRvdy0+ZGlkU2VjdXJlVHJhbnNpdGlvblRvKCp0aGlzKTsKIAogICAgIEFTU0VS
VChtX2RvbVdpbmRvdy0+ZG9jdW1lbnQoKSA9PSB0aGlzKTsKICAgICBBU1NFUlQobV9kb21XaW5k
b3ctPmZyYW1lKCkgPT0gbV9mcmFtZSk7CkBAIC01NTczLDEyICs1NTcwLDEyIEBAIHZvaWQgRG9j
dW1lbnQ6OnJlcXVlc3RGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGdWxs
U2NyZWVuQ2hlY2tUeXBlCiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBib29sIGhhc0tl
eWJvYXJkQWNjZXNzID0gdHJ1ZTsKLSAgICAgICAgaWYgKCFwYWdlKCktPmNocm9tZSgpLmNsaWVu
dCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCwgaGFzS2V5Ym9hcmRBY2Nl
c3MpKSB7CisgICAgICAgIGlmICghcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0c0Z1
bGxTY3JlZW5Gb3JFbGVtZW50KCplbGVtZW50LCBoYXNLZXlib2FyZEFjY2VzcykpIHsKICAgICAg
ICAgICAgIC8vIFRoZSBuZXcgZnVsbCBzY3JlZW4gQVBJIGRvZXMgbm90IGFjY2VwdCBhICJmbGFn
cyIgcGFyYW1ldGVyLCBzbyBmYWxsIGJhY2sgdG8gZGlzYWxsb3dpbmcKICAgICAgICAgICAgIC8v
IGtleWJvYXJkIGlucHV0IGlmIHRoZSBjaHJvbWUgY2xpZW50IHJlZnVzZXMgdG8gYWxsb3cga2V5
Ym9hcmQgaW5wdXQuCiAgICAgICAgICAgICBoYXNLZXlib2FyZEFjY2VzcyA9IGZhbHNlOwogCi0g
ICAgICAgICAgICBpZiAoIXBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2Ny
ZWVuRm9yRWxlbWVudChlbGVtZW50LCBoYXNLZXlib2FyZEFjY2VzcykpCisgICAgICAgICAgICBp
ZiAoIXBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVu
dCgqZWxlbWVudCwgaGFzS2V5Ym9hcmRBY2Nlc3MpKQogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICB9CiAKQEAgLTU2MzEsNyArNTYyOCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnJlcXVlc3RG
dWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGdWxsU2NyZWVuQ2hlY2tUeXBl
CiAgICAgICAgIC8vIDUuIFJldHVybiwgYW5kIHJ1biB0aGUgcmVtYWluaW5nIHN0ZXBzIGFzeW5j
aHJvbm91c2x5LgogICAgICAgICAvLyA2LiBPcHRpb25hbGx5LCBwZXJmb3JtIHNvbWUgYW5pbWF0
aW9uLgogICAgICAgICBtX2FyZUtleXNFbmFibGVkSW5GdWxsU2NyZWVuID0gaGFzS2V5Ym9hcmRB
Y2Nlc3M7Ci0gICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJGdWxsU2NyZWVu
Rm9yRWxlbWVudChlbGVtZW50KTsKKyAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5l
bnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KCplbGVtZW50KTsKIAogICAgICAgICAvLyA3LiBPcHRp
b25hbGx5LCBkaXNwbGF5IGEgbWVzc2FnZSBpbmRpY2F0aW5nIGhvdyB0aGUgdXNlciBjYW4gZXhp
dCBkaXNwbGF5aW5nIHRoZSBjb250ZXh0IG9iamVjdCBmdWxsc2NyZWVuLgogICAgICAgICByZXR1
cm47CkBAIC01NzIzLDEyICs1NzIwLDEyIEBAIHZvaWQgRG9jdW1lbnQ6OndlYmtpdEV4aXRGdWxs
c2NyZWVuKCkKICAgICAvLyBPbmx5IGV4aXQgb3V0IG9mIGZ1bGwgc2NyZWVuIHdpbmRvdyBtb2Rl
IGlmIHRoZXJlIGFyZSBubyByZW1haW5pbmcgZWxlbWVudHMgaW4gdGhlIAogICAgIC8vIGZ1bGwg
c2NyZWVuIHN0YWNrLgogICAgIGlmICghbmV3VG9wKSB7Ci0gICAgICAgIHBhZ2UoKS0+Y2hyb21l
KCkuY2xpZW50KCkuZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KG1fZnVsbFNjcmVlbkVsZW1lbnQu
Z2V0KCkpOworICAgICAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudCgqbV9mdWxsU2NyZWVuRWxlbWVudCk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICAvLyBPdGhlcndpc2UsIG5vdGlmeSB0aGUgY2hyb21lIG9mIHRoZSBuZXcgZnVsbCBz
Y3JlZW4gZWxlbWVudC4KLSAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVudGVyRnVsbFNj
cmVlbkZvckVsZW1lbnQobmV3VG9wKTsKKyAgICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoKm5ld1RvcCk7CiB9CiAKIGJvb2wgRG9jdW1lbnQ6Ondl
YmtpdEZ1bGxzY3JlZW5FbmFibGVkKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA4
OGUzZTk5MzAxYTcxOWRlMjU0MDgzYTkzMjZhM2JhY2YzZWMzOGZjLi44NWUwYjI2ZjFjM2U3OGIy
Y2JiYzY4NWI2YWQxOWYyNWQwZDliZWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0yMzQ4
LDcgKzIzNDgsNyBAQCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2Vs
ZWN0aW9uLCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAKICAgICBpZiAoZG9jdW1lbnQoKS5m
b2N1c2VkRWxlbWVudCgpID09IHRoaXMpIHsKICAgICAgICAgaWYgKGRvY3VtZW50KCkucGFnZSgp
KQotICAgICAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVsZW1l
bnREaWRSZWZvY3VzKHRoaXMpOworICAgICAgICAgICAgZG9jdW1lbnQoKS5wYWdlKCktPmNocm9t
ZSgpLmNsaWVudCgpLmVsZW1lbnREaWRSZWZvY3VzKCp0aGlzKTsKIAogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtMjM3MSw3ICsyMzcxLDcgQEAgdm9pZCBFbGVtZW50Ojpmb2N1cyhib29sIHJl
c3RvcmVQcmV2aW91c1NlbGVjdGlvbiwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQogICAgICAg
ICAvLyBJZiBhIGZvY3VzIGV2ZW50IGhhbmRsZXIgY2hhbmdlcyB0aGUgZm9jdXMgdG8gYSBkaWZm
ZXJlbnQgbm9kZSBpdAogICAgICAgICAvLyBkb2VzIG5vdCBtYWtlIHNlbnNlIHRvIGNvbnRpbnVl
IGFuZCB1cGRhdGUgYXBwZWFyZW5jZS4KICAgICAgICAgcHJvdGVjdCA9IHRoaXM7Ci0gICAgICAg
IGlmICghcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQodGhpcywgZG9j
dW1lbnQoKS5mcmFtZSgpLCBkaXJlY3Rpb24pKQorICAgICAgICBpZiAoIXBhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KHRoaXMsICpkb2N1bWVudCgpLmZyYW1lKCksIGRp
cmVjdGlvbikpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yNDQxLDcgKzI0NDEs
NyBAQCB2b2lkIEVsZW1lbnQ6OmJsdXIoKQogICAgIGNhbmNlbEZvY3VzQXBwZWFyYW5jZVVwZGF0
ZSgpOwogICAgIGlmICh0cmVlU2NvcGUoKS5mb2N1c2VkRWxlbWVudEluU2NvcGUoKSA9PSB0aGlz
KSB7CiAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCi0gICAg
ICAgICAgICBmcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVu
dCgwLCBmcmFtZSk7CisgICAgICAgICAgICBmcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIo
KS5zZXRGb2N1c2VkRWxlbWVudChudWxscHRyLCAqZnJhbWUpOwogICAgICAgICBlbHNlCiAgICAg
ICAgICAgICBkb2N1bWVudCgpLnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIpOwogICAgIH0KQEAg
LTI0NjQsNyArMjQ2NCw3IEBAIHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c091dEV2ZW50KGNv
bnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWZQdHI8RWxlbWVuCiB2b2lkIEVsZW1lbnQ6
OmRpc3BhdGNoRm9jdXNFdmVudChSZWZQdHI8RWxlbWVudD4mJiBvbGRGb2N1c2VkRWxlbWVudCwg
Rm9jdXNEaXJlY3Rpb24pCiB7CiAgICAgaWYgKGRvY3VtZW50KCkucGFnZSgpKQotICAgICAgICBk
b2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZEZvY3VzKHRoaXMp
OworICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERp
ZEZvY3VzKCp0aGlzKTsKIAogICAgIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hFdmVudCgqdGhp
cywgRm9jdXNFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5mb2N1c0V2ZW50LCBmYWxzZSwgZmFs
c2UsIGRvY3VtZW50KCkuZGVmYXVsdFZpZXcoKSwgMCwgV1RGTW92ZShvbGRGb2N1c2VkRWxlbWVu
dCkpKTsKIH0KQEAgLTI0NzIsNyArMjQ3Miw3IEBAIHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hGb2N1
c0V2ZW50KFJlZlB0cjxFbGVtZW50PiYmIG9sZEZvY3VzZWRFbGVtZW50LCBGb2N1c0RpcmVjCiB2
b2lkIEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KFJlZlB0cjxFbGVtZW50PiYmIG5ld0ZvY3Vz
ZWRFbGVtZW50KQogewogICAgIGlmIChkb2N1bWVudCgpLnBhZ2UoKSkKLSAgICAgICAgZG9jdW1l
bnQoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVsZW1lbnREaWRCbHVyKHRoaXMpOworICAg
ICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZEJsdXIo
KnRoaXMpOwogCiAgICAgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KCp0aGlzLCBGb2N1
c0V2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmJsdXJFdmVudCwgZmFsc2UsIGZhbHNlLCBkb2N1
bWVudCgpLmRlZmF1bHRWaWV3KCksIDAsIFdURk1vdmUobmV3Rm9jdXNlZEVsZW1lbnQpKSk7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vTm9kZS5jcHAKaW5kZXggYmIzYWI5OWU2MWM1YmRjMTA0M2YzZWJjNGUwZjc5NmEyZGNi
ZDhiNy4uNzY2MjMwNTQ3MWU1MWZiYmY2ZTRmYTM1NTc1ZWQ2YWJhYmZjNzA3NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9O
b2RlLmNwcApAQCAtMjI1Myw3ICsyMjUzLDcgQEAgdm9pZCBOb2RlOjpkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50JiBldmVudCkKICAgICB9IGVsc2UgaWYgKGV2ZW50VHlwZSA9PSBldmVudE5hbWVz
KCkuY29udGV4dG1lbnVFdmVudCkgewogICAgICAgICBpZiAoRnJhbWUqIGZyYW1lID0gZG9jdW1l
bnQoKS5mcmFtZSgpKQogICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBmcmFtZS0+cGFnZSgp
KQotICAgICAgICAgICAgICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmhhbmRsZUNv
bnRleHRNZW51RXZlbnQoJmV2ZW50KTsKKyAgICAgICAgICAgICAgICBwYWdlLT5jb250ZXh0TWVu
dUNvbnRyb2xsZXIoKS5oYW5kbGVDb250ZXh0TWVudUV2ZW50KGV2ZW50KTsKICNlbmRpZgogICAg
IH0gZWxzZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS50ZXh0SW5wdXRFdmVudCkgewog
ICAgICAgICBpZiAoaXM8VGV4dEV2ZW50PihldmVudCkpIHsKQEAgLTIyNzIsNyArMjI3Miw3IEBA
IHZvaWQgTm9kZTo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiAKICAgICAgICAg
ICAgIGlmIChyZW5kZXJlcikgewogICAgICAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBk
b2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRs
ZXIoKS5zdGFydFBhblNjcm9sbGluZyhkb3duY2FzdDxSZW5kZXJCb3g+KHJlbmRlcmVyKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zdGFydFBhblNjcm9sbGlu
Zyhkb3duY2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJlcikpOwogICAgICAgICAgICAgfQogICAgICAg
ICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29t
bWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCmluZGV4
IGFjZjIyNjhhN2U3OTMwOTI3Y2VjYmIxM2QyNGQ2NGNmYWRiZjZkZGUuLjAxZjA3MWNjYWRjZGYx
OTY0MWYyODc3NzQxOWRiNDZjYjU0MGM2MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3JDb21tYW5kLmNwcApAQCAtOTMwLDcgKzkzMCw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVQcmlu
dChGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSwgY29uc3QgU3RyaW5n
CiAgICAgUGFnZSogcGFnZSA9IGZyYW1lLnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICBwYWdlLT5jaHJvbWUoKS5wcmludCgmZnJhbWUpOworICAgIHBh
Z2UtPmNocm9tZSgpLnByaW50KGZyYW1lKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9GcmFtZVNlbGVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcAppbmRleCA2NzU5ZmYxNzdmZTc2NzFj
YmIxNjkzNWViMzYxMGQyYTU2OTdiNzg2Li43MTNlNzc5NzE4MjUyNWQ3NzJmNGMyOTA0ZmI5MmI0
MjQ1OWYyMzkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0ZyYW1lU2VsZWN0aW9uLmNwcApA
QCAtMjE1Nyw3ICsyMTU3LDcgQEAgdm9pZCBGcmFtZVNlbGVjdGlvbjo6c2V0Rm9jdXNlZEVsZW1l
bnRJZk5lZWRlZCgpCiAgICAgYm9vbCBjYXJldEJyb3dzaW5nID0gbV9mcmFtZS0+c2V0dGluZ3Mo
KS5jYXJldEJyb3dzaW5nRW5hYmxlZCgpOwogICAgIGlmIChjYXJldEJyb3dzaW5nKSB7CiAgICAg
ICAgIGlmIChFbGVtZW50KiBhbmNob3IgPSBlbmNsb3NpbmdBbmNob3JFbGVtZW50KG1fc2VsZWN0
aW9uLmJhc2UoKSkpIHsKLSAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9s
bGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQoYW5jaG9yLCBtX2ZyYW1lKTsKKyAgICAgICAgICAgIG1f
ZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQoYW5jaG9y
LCAqbV9mcmFtZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CkBAIC0y
MTY5LDE2ICsyMTY5LDE2IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnNldEZvY3VzZWRFbGVtZW50
SWZOZWVkZWQoKQogICAgICAgICAgICAgLy8gc28gYWRkIHRoZSAhaXNGcmFtZUVsZW1lbnQgY2hl
Y2sgaGVyZS4gVGhlcmUncyBwcm9iYWJseSBhIGJldHRlciB3YXkgdG8gbWFrZSB0aGlzCiAgICAg
ICAgICAgICAvLyB3b3JrIGluIHRoZSBsb25nIHRlcm0sIGJ1dCB0aGlzIGlzIHRoZSBzYWZlc3Qg
Zml4IGF0IHRoaXMgdGltZS4KICAgICAgICAgICAgIGlmICh0YXJnZXQtPmlzTW91c2VGb2N1c2Fi
bGUoKSAmJiAhaXNGcmFtZUVsZW1lbnQodGFyZ2V0KSkgewotICAgICAgICAgICAgICAgIG1fZnJh
bWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQodGFyZ2V0LCBt
X2ZyYW1lKTsKKyAgICAgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxl
cigpLnNldEZvY3VzZWRFbGVtZW50KHRhcmdldCwgKm1fZnJhbWUpOwogICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHRhcmdldCA9IHRhcmdldC0+cGFy
ZW50T3JTaGFkb3dIb3N0RWxlbWVudCgpOwogICAgICAgICB9Ci0gICAgICAgIG1fZnJhbWUtPmRv
Y3VtZW50KCktPnNldEZvY3VzZWRFbGVtZW50KDApOworICAgICAgICBtX2ZyYW1lLT5kb2N1bWVu
dCgpLT5zZXRGb2N1c2VkRWxlbWVudChudWxscHRyKTsKICAgICB9CiAKICAgICBpZiAoY2FyZXRC
cm93c2luZykKLSAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRG
b2N1c2VkRWxlbWVudCgwLCBtX2ZyYW1lKTsKKyAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5mb2N1
c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChudWxscHRyLCAqbV9mcmFtZSk7CiB9CiAK
IHZvaWQgRHJhZ0NhcmV0Q29udHJvbGxlcjo6cGFpbnREcmFnQ2FyZXQoRnJhbWUqIGZyYW1lLCBH
cmFwaGljc0NvbnRleHQmIHAsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgY29uc3Qg
TGF5b3V0UmVjdCYgY2xpcFJlY3QpIGNvbnN0CkBAIC0yMzI4LDcgKzIzMjgsNyBAQCB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpyZXZlYWxTZWxlY3Rpb24oU2VsZWN0aW9uUmV2ZWFsTW9kZSByZXZlYWxN
b2RlLCBjb25zdCBTY3JvbAogICAgICAgICAgICAgICAgIGxheWVyLT5zZXRBZGp1c3RGb3JJT1ND
YXJldFdoZW5TY3JvbGxpbmcoZmFsc2UpOwogICAgICAgICAgICAgICAgIHVwZGF0ZUFwcGVhcmFu
Y2UoKTsKICAgICAgICAgICAgICAgICBpZiAobV9mcmFtZS0+cGFnZSgpKQotICAgICAgICAgICAg
ICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLm5vdGlmeVJldmVhbGVk
U2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShtX2ZyYW1lKTsKKyAgICAgICAgICAgICAgICAgICAg
bV9mcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5ub3RpZnlSZXZlYWxlZFNlbGVjdGlv
bkJ5U2Nyb2xsaW5nRnJhbWUoKm1fZnJhbWUpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAj
ZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9DYWNoZWRGcmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcAppbmRleCAzNjMzOThkNmVm
Y2MxNGM0YjZiYjc1ZjMxMzg3Y2RkN2U3YzU5OWQxLi4yMWYyNGFkMzlmNGE5MTY2YzhiMTEzY2Fl
MjcwMGZlOWY0NTFjYThiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hl
ZEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcApA
QCAtOTgsOSArOTgsOSBAQCB2b2lkIENhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSgpCiAgICAgZnJh
bWUubG9hZGVyKCkuY2xpZW50KCkuZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKIAogICAgIC8v
IFJlY29uc3RydWN0IHRoZSBGcmFtZVRyZWUuIEFuZCBvcGVuIHRoZSBjaGlsZCBDYWNoZWRGcmFt
ZXMgaW4gdGhlaXIgcmVzcGVjdGl2ZSBGcmFtZUxvYWRlcnMuCi0gICAgZm9yICh1bnNpZ25lZCBp
ID0gMDsgaSA8IG1fY2hpbGRGcmFtZXMuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgZnJhbWUudHJl
ZSgpLmFwcGVuZENoaWxkKCZtX2NoaWxkRnJhbWVzW2ldLT52aWV3KCktPmZyYW1lKCkpOwotICAg
ICAgICBtX2NoaWxkRnJhbWVzW2ldLT5vcGVuKCk7CisgICAgZm9yIChhdXRvJiBjaGlsZEZyYW1l
IDogbV9jaGlsZEZyYW1lcykgeworICAgICAgICBmcmFtZS50cmVlKCkuYXBwZW5kQ2hpbGQoY2hp
bGRGcmFtZS0+dmlldygpLT5mcmFtZSgpKTsKKyAgICAgICAgY2hpbGRGcmFtZS0+b3BlbigpOwog
ICAgIH0KIAogI2lmIFBMQVRGT1JNKElPUykKQEAgLTExMSw3ICsxMTEsNyBAQCB2b2lkIENhY2hl
ZEZyYW1lQmFzZTo6cmVzdG9yZSgpCiAgICAgICAgICAgICAvLyBGSVhNRTogQWRkIFNDUk9MTF9M
SVNURU5FUiB0byB0aGUgbGlzdCBvZiBldmVudCB0eXBlcyBvbiBEb2N1bWVudCwgYW5kIHVzZSBt
X2RvY3VtZW50LT5oYXNMaXN0ZW5lclR5cGUoKS4gU2VlIDxyZGFyOi8vcHJvYmxlbS85NjE1NDgy
Pi4KICAgICAgICAgICAgIC8vIEZJWE1FOiBDYW4gdXNlIERvY3VtZW50OjpoYXNMaXN0ZW5lclR5
cGUoKSBub3cuCiAgICAgICAgICAgICBpZiAoZG9tV2luZG93LT5zY3JvbGxFdmVudExpc3RlbmVy
Q291bnQoKSAmJiBmcmFtZS5wYWdlKCkpCi0gICAgICAgICAgICAgICAgZnJhbWUucGFnZSgpLT5j
aHJvbWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoJmZyYW1lLCB0cnVl
KTsKKyAgICAgICAgICAgICAgICBmcmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE5l
ZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhmcmFtZSwgdHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CiAj
ZW5kaWYKQEAgLTE2Myw3ICsxNjMsNyBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJhbWUoRnJhbWUm
IGZyYW1lKQogICAgIC8vIDEgLSBXZSByZXVzZSB0aGUgbWFpbiBmcmFtZSwgc28gd2hlbiBpdCBu
YXZpZ2F0ZXMgdG8gYSBuZXcgcGFnZSBsb2FkIGl0IG5lZWRzIHRvIHN0YXJ0IHdpdGggYSBibGFu
ayBGcmFtZVRyZWUuCiAgICAgLy8gMiAtIEl0J3MgbXVjaCBlYXNpZXIgdG8gZGVzdHJveSBhIENh
Y2hlZEZyYW1lIHdoaWxlIGl0IHJlc2lkZXMgaW4gdGhlIFBhZ2VDYWNoZSBpZiBpdCBpcyBkaXNj
b25uZWN0ZWQgZnJvbSBpdHMgcGFyZW50LgogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBt
X2NoaWxkRnJhbWVzLnNpemUoKTsgKytpKQotICAgICAgICBmcmFtZS50cmVlKCkucmVtb3ZlQ2hp
bGQoJm1fY2hpbGRGcmFtZXNbaV0tPnZpZXcoKS0+ZnJhbWUoKSk7CisgICAgICAgIGZyYW1lLnRy
ZWUoKS5yZW1vdmVDaGlsZChtX2NoaWxkRnJhbWVzW2ldLT52aWV3KCktPmZyYW1lKCkpOwogCiAg
ICAgaWYgKCFtX2lzTWFpbkZyYW1lKQogICAgICAgICBmcmFtZS5wYWdlKCktPmRlY3JlbWVudFN1
YmZyYW1lQ291bnQoKTsKQEAgLTE4MSw3ICsxODEsNyBAQCBDYWNoZWRGcmFtZTo6Q2FjaGVkRnJh
bWUoRnJhbWUmIGZyYW1lKQogICAgIGlmIChtX2lzTWFpbkZyYW1lKSB7CiAgICAgICAgIGlmIChE
T01XaW5kb3cqIGRvbVdpbmRvdyA9IG1fZG9jdW1lbnQtPmRvbVdpbmRvdygpKSB7CiAgICAgICAg
ICAgICBpZiAoZG9tV2luZG93LT5zY3JvbGxFdmVudExpc3RlbmVyQ291bnQoKSAmJiBmcmFtZS5w
YWdlKCkpCi0gICAgICAgICAgICAgICAgZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5z
ZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoJmZyYW1lLCBmYWxzZSk7CisgICAgICAgICAgICAg
ICAgZnJhbWUucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNh
dGlvbnMoZnJhbWUsIGZhbHNlKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9Db2xvcklucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAppbmRleCA1YmEyYzk1NGIyYmQ4OTk1YmMwYjJiNzJk
MmZmY2QzNzkxOTEwN2E2Li41MGUxZmNiMTQzNzEzYTMwYWM5MTUzMzEzYjU4OTMyNTc5MGQyMWU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9ySW5wdXRUeXBlLmNwcApAQCAtMTU2LDcgKzE1Niw3
IEBAIHZvaWQgQ29sb3JJbnB1dFR5cGU6OmhhbmRsZURPTUFjdGl2YXRlRXZlbnQoRXZlbnQmIGV2
ZW50KQogCiAgICAgaWYgKENocm9tZSogY2hyb21lID0gdGhpcy0+Y2hyb21lKCkpIHsKICAgICAg
ICAgaWYgKCFtX2Nob29zZXIpCi0gICAgICAgICAgICBtX2Nob29zZXIgPSBjaHJvbWUtPmNyZWF0
ZUNvbG9yQ2hvb3Nlcih0aGlzLCB2YWx1ZUFzQ29sb3IoKSk7CisgICAgICAgICAgICBtX2Nob29z
ZXIgPSBjaHJvbWUtPmNyZWF0ZUNvbG9yQ2hvb3NlcigqdGhpcywgdmFsdWVBc0NvbG9yKCkpOwog
ICAgICAgICBlbHNlCiAgICAgICAgICAgICBtX2Nob29zZXItPnJlYXR0YWNoQ29sb3JDaG9vc2Vy
KHZhbHVlQXNDb2xvcigpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwCmluZGV4IDgxMWViMGQ1ZDA1YjZhNmM3Njg4NzhkMDNmYzMzYzFjMjQ5NDZmYjAu
LmJhZWI1NzZiMTU2M2ViMzE1N2JiNzJlY2Q4N2I3ODI3MDA5ZWYzMDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCkBAIC0xMjksNyArMTI5LDcgQEAgYm9vbCBI
VE1MQW5jaG9yRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50JiBldmVu
dCkgY29uc3QKICAgICBpZiAoIWRvY3VtZW50KCkuZnJhbWUoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLnRhYnNU
b0xpbmtzKCZldmVudCkpCisgICAgaWYgKCFkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxl
cigpLnRhYnNUb0xpbmtzKGV2ZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYg
KCFyZW5kZXJlcigpICYmIGFuY2VzdG9yc09mVHlwZTxIVE1MQ2FudmFzRWxlbWVudD4oKnRoaXMp
LmZpcnN0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJv
bEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
LmNwcAppbmRleCBlYThhM2IzM2UwMDI3ODMyZDY3MGY5ZTA5ODdhY2NhOGQzNjhiYWEyLi42MmMy
ODYxN2FlMzVkZTY3MzJmZmEwNjYzMzhmZTMxODE2NTQ2Y2E4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAKQEAgLTM3MCwxMCArMzcwLDkgQEAg
Ym9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0ZvY3VzYWJsZSgpIGNvbnN0CiAKIGJvb2wg
SFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShLZXlib2FyZEV2ZW50
JiBldmVudCkgY29uc3QKIHsKLSAgICBpZiAoaXNGb2N1c2FibGUoKSkKLSAgICAgICAgaWYgKGRv
Y3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgIHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCkt
PmV2ZW50SGFuZGxlcigpLnRhYnNUb0FsbEZvcm1Db250cm9scygmZXZlbnQpOwotICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gaXNGb2N1c2FibGUoKQorICAgICAgICAmJiBkb2N1bWVudCgp
LmZyYW1lKCkKKyAgICAgICAgJiYgZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS50
YWJzVG9BbGxGb3JtQ29udHJvbHMoZXZlbnQpOwogfQogCiBib29sIEhUTUxGb3JtQ29udHJvbEVs
ZW1lbnQ6OmlzTW91c2VGb2N1c2FibGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZp
ZGVvRWxlbWVudC5jcHAKaW5kZXggZDhhNzkzZTMwZWJmMWJjMzNiMWEzMmEyZjJjZDFjZjdiOTE4
OWRiYy4uYTlkYjkwNTE4ZGU3MTAwZjg2MWFmY2RkYmE2ZDI2NzVhMjBlM2JkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3BwCkBAIC0xNzEsNyArMTcxLDcgQEAgYm9v
bCBIVE1MVmlkZW9FbGVtZW50OjpzdXBwb3J0c0Z1bGxzY3JlZW4oSFRNTE1lZGlhRWxlbWVudEVu
dW1zOjpWaWRlb0Z1bGxzY3JlZW4KICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgLy8g
SWYgdGhlIGZ1bGwgc2NyZWVuIEFQSSBpcyBlbmFibGVkIGFuZCBpcyBzdXBwb3J0ZWQgZm9yIHRo
ZSBjdXJyZW50IGVsZW1lbnQKICAgICAvLyBkbyBub3QgcmVxdWlyZSB0aGF0IHRoZSBwbGF5ZXIg
aGFzIGEgdmlkZW8gdHJhY2sgdG8gZW50ZXIgZnVsbCBzY3JlZW4uCi0gICAgaWYgKHZpZGVvRnVs
bHNjcmVlbk1vZGUgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2Rl
U3RhbmRhcmQgJiYgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9y
RWxlbWVudCh0aGlzLCBmYWxzZSkpCisgICAgaWYgKHZpZGVvRnVsbHNjcmVlbk1vZGUgPT0gSFRN
TE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlU3RhbmRhcmQgJiYgcGFnZS0+
Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudCgqdGhpcywgZmFs
c2UpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKaW5kZXggNThiZDYyYTM2NDQ3ZjEx
NDk4YzNkOGM5OTU3ZjFjZDFmNzNiMGU3Ny4uOThiZDcyYmZmMmQwZGY4MDZhYjBhYmY1MzdiYWU2
OTA3MjI4NDgwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1
dHRvbkVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0
b25FbGVtZW50LmNwcApAQCAtMTE5LDcgKzExOSw3IEBAIHZvaWQgU3BpbkJ1dHRvbkVsZW1lbnQ6
OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQogICAgICAgICAgICAgICAgICAgICBm
cmFtZS0+ZXZlbnRIYW5kbGVyKCkuc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KHRoaXMp
OwogICAgICAgICAgICAgICAgICAgICBtX2NhcHR1cmluZyA9IHRydWU7CiAgICAgICAgICAgICAg
ICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICAg
ICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5yZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKHRo
aXMpOworICAgICAgICAgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkucmVnaXN0ZXJQb3B1
cE9wZW5pbmdPYnNlcnZlcigqdGhpcyk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
fQogICAgICAgICAgICAgVXBEb3duU3RhdGUgb2xkVXBEb3duU3RhdGUgPSBtX3VwRG93blN0YXRl
OwpAQCAtMjA1LDcgKzIwNSw3IEBAIHZvaWQgU3BpbkJ1dHRvbkVsZW1lbnQ6OnJlbGVhc2VDYXB0
dXJlKCkKICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZXRDYXB0dXJpbmdNb3Vz
ZUV2ZW50c0VsZW1lbnQobnVsbHB0cik7CiAgICAgICAgICAgICBtX2NhcHR1cmluZyA9IGZhbHNl
OwogICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1bWVudCgpLnBhZ2UoKSkKLSAgICAg
ICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS51bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIo
dGhpcyk7CisgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkudW5yZWdpc3RlclBvcHVwT3Bl
bmluZ09ic2VydmVyKCp0aGlzKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1h
Yy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRv
bkVsZW1lbnRNYWMuY3BwCmluZGV4IGZkMGMzZTM2ZjM5MzM0MWRiZGFhMThjMDMxZTFiMWU3NDg3
ZWZjYzkuLmJhOWJhZGZlNTYyZTRiZmU3ZjllMTRmMGE2YjVlZDE5YjUwYWEzYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxl
bWVudE1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFjL0ltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcApAQCAtMTE3LDcgKzExNyw3IEBAIHZvaWQgSW1hZ2VD
b250cm9sc0J1dHRvbkVsZW1lbnRNYWM6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50
KQogICAgICAgICBpZiAoIXBhZ2UpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgcGFn
ZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0ltYWdlQ29udHJvbHNNZW51KCZldmVudCk7
CisgICAgICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dJbWFnZUNvbnRyb2xz
TWVudShldmVudCk7CiAgICAgICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZEhvc3QuY3BwCmluZGV4IDMxNTQ3ZGI3YWYzYjUzZmQ3ZWI0MjQxYzcwNTQzZjhm
NGI2NmIxN2UuLjc0OTg4Y2I1ZTYwNDg3MjA4ODkzYjAzMTYwMWNiYTgyMzRiYjkzZjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3Bw
CkBAIC0zMzksOCArMzM5LDggQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250
ZXh0TWVudShFdmVudCogZXZlbnQsIGNvbnN0IFZlY3RvcjxDb250ZXh0TWUKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICAgICBhdXRvIG1lbnVQcm92aWRlciA9IEZyb250ZW5kTWVudVByb3ZpZGVy
OjpjcmVhdGUodGhpcywgeyAmc3RhdGUsIGZyb250ZW5kQXBpT2JqZWN0IH0sIGl0ZW1zKTsKLSAg
ICBtX2Zyb250ZW5kUGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0NvbnRleHRNZW51
KGV2ZW50LCBtZW51UHJvdmlkZXIucHRyKCkpOwogICAgIG1fbWVudVByb3ZpZGVyID0gbWVudVBy
b3ZpZGVyLnB0cigpOworICAgIG1fZnJvbnRlbmRQYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIo
KS5zaG93Q29udGV4dE1lbnUoKmV2ZW50LCBtZW51UHJvdmlkZXIpOwogfQogCiAjZW5kaWYKQEAg
LTM1NSw3ICszNTUsNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6ZGlzcGF0Y2hFdmVu
dEFzQ29udGV4dE1lbnVFdmVudChFdmVudCogZXZlbnQpCiAgICAgTW91c2VFdmVudCYgbW91c2VF
dmVudCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+KCpldmVudCk7CiAgICAgSW50UG9pbnQgbW91c2VQ
b2ludCA9IEludFBvaW50KG1vdXNlRXZlbnQuY2xpZW50WCgpLCBtb3VzZUV2ZW50LmNsaWVudFko
KSk7CiAKLSAgICBtX2Zyb250ZW5kUGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0Nv
bnRleHRNZW51QXQoZnJhbWUsIG1vdXNlUG9pbnQpOworICAgIG1fZnJvbnRlbmRQYWdlLT5jb250
ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnVBdCgqZnJhbWUsIG1vdXNlUG9pbnQp
OwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZXZlbnQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9FbXB0eUNsaWVudHMuY3BwCmluZGV4IGU3NTQ5NWZkNDI0YzIzZTg5NTM2Y2E4ZDQzMzkw
NTNiZDRlMTFiYmQuLjU3NzkwYjUwY2ZjZGE0YTUyZjBjNGMwMmViNTdhYjIzM2E2ZDU3YjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuY3BwCkBAIC01NzIsMTkgKzU3MiwxOSBA
QCBjbGFzcyBFbXB0eVZpc2l0ZWRMaW5rU3RvcmUgZmluYWwgOiBwdWJsaWMgVmlzaXRlZExpbmtT
dG9yZSB7CiAgICAgdm9pZCBhZGRWaXNpdGVkTGluayhQYWdlJiwgTGlua0hhc2gpIGZpbmFsIHsg
fQogfTsKIAotUmVmUHRyPFBvcHVwTWVudT4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVw
TWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdAorUmVmUHRyPFBvcHVwTWVudT4gRW1wdHlDaHJv
bWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdAogewogICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5UG9wdXBNZW51KTsKIH0KIAotUmVmUHRyPFNlYXJj
aFBvcHVwTWVudT4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQqKSBjb25zdAorUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gRW1wdHlDaHJvbWVD
bGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdAogewog
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEVtcHR5U2VhcmNoUG9wdXBNZW51KTsKIH0KIAogI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogCi1zdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2Vy
PiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVu
dCosIGNvbnN0IENvbG9yJikKK3N0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IEVtcHR5Q2hy
b21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3Qg
Q29sb3ImKQogewogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5
Q2xpZW50cy5oCmluZGV4IDkxYzJkMzg2OTAxMGRhNWVhNDNkMDA5Y2QwZjEzZTBiNzhlN2NmZjUu
LmUyYWE2MGVkNzQ4OTM3NDg2OTZlODkxNzAzM2IxY2UwMWYxZDUzMmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTYxLDcgKzYxLDcgQEAgY2xhc3MgRW1wdHlDaHJvbWVD
bGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lkIGZvY3VzZWRFbGVtZW50Q2hh
bmdlZChFbGVtZW50KikgZmluYWwgeyB9CiAgICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKEZy
YW1lKikgZmluYWwgeyB9CiAKLSAgICBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBG
cmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9u
QWN0aW9uJikgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIFBhZ2UqIGNyZWF0ZVdpbmRv
dyhGcmFtZSYsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYs
IGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAgICAg
dm9pZCBzaG93KCkgZmluYWwgeyB9CiAKICAgICBib29sIGNhblJ1bk1vZGFsKCkgZmluYWwgeyBy
ZXR1cm4gZmFsc2U7IH0KQEAgLTg0LDE5ICs4NCwxOSBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVu
dCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShN
ZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYsIHVuc2lnbmVkLCB1bnNp
Z25lZCwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CiAKICAgICBib29sIGNhblJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbCgpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgYm9vbCBydW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiwgRnJhbWUqKSBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CisgICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3Qg
U3RyaW5nJiwgRnJhbWUmKSBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICB2b2lkIGNsb3Nl
V2luZG93U29vbigpIGZpbmFsIHsgfQogCi0gICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJh
bWUqLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH0KLSAgICBib29sIHJ1bkphdmFTY3JpcHRDb25m
aXJtKEZyYW1lKiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KLSAgICBi
b29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJp
bmcmLCBTdHJpbmcmKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZvaWQgcnVuSmF2YVNj
cmlwdEFsZXJ0KEZyYW1lJiwgY29uc3QgU3RyaW5nJikgZmluYWwgeyB9CisgICAgYm9vbCBydW5K
YXZhU2NyaXB0Q29uZmlybShGcmFtZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiwgY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KIAogICAg
IGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBmaW5hbCB7IHJldHVy
biBmYWxzZTsgfQogICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGlu
Z0RpcmVjdGlvbigpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBoYXNPcGVuZWRQ
b3B1cCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgUmVmUHRyPFBvcHVwTWVu
dT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IGZpbmFsOwotICAgIFJl
ZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUo
UG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFNlYXJjaFBvcHVwTWVu
dT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0IGZpbmFsOwog
CiAgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfQogCkBA
IC0xMDYsNDMgKzEwNiw0NyBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJv
bWVDbGllbnQgewogICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3Qg
SW50UmVjdCYpIG92ZXJyaWRlIHsgfQogICAgIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xv
d1Njcm9sbChjb25zdCBJbnRSZWN0JikgZmluYWwgeyB9CiAgICAgdm9pZCBzY3JvbGwoY29uc3Qg
SW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JikgZmluYWwgeyB9CisKICNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCiAgICAgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1
ZXN0ZWQoY29uc3QgSW50UG9pbnQmKSBmaW5hbCB7IH0KICNlbmRpZgorCiAjaWYgIVVTRShSRVFV
RVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKICAgICB2b2lkIHNjaGVkdWxlQW5pbWF0aW9uKCkg
ZmluYWwgeyB9CiAjZW5kaWYKIAogICAgIEludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3Qg
SW50UG9pbnQmIHApIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHA7IH0KICAgICBJbnRSZWN0IHJvb3RW
aWV3VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcikgY29uc3QgZmluYWwgeyByZXR1cm4gcjsgfQor
CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIEludFBvaW50IGFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jv
b3RWaWV3KGNvbnN0IEludFBvaW50JiBwKSBjb25zdCBmaW5hbCB7IHJldHVybiBwOyB9OwogICAg
IEludFJlY3Qgcm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29uc3QgSW50UmVjdCYgcikg
Y29uc3QgZmluYWwgeyByZXR1cm4gcjsgfTsKICNlbmRpZgorCiAgICAgUGxhdGZvcm1QYWdlQ2xp
ZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIDA7IH0KLSAgICB2
b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJbnRTaXplJikgY29uc3QgZmlu
YWwgeyB9CisgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiwgY29uc3QgSW50U2l6
ZSYpIGNvbnN0IGZpbmFsIHsgfQogCiAgICAgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgp
IGNvbnN0IGZpbmFsIHsgfQogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3Qg
SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkKSBmaW5hbCB7IH0KIAogICAgIHZvaWQgc2V0VG9vbFRp
cChjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgcHJp
bnQoRnJhbWUqKSBmaW5hbCB7IH0KKyAgICB2b2lkIHByaW50KEZyYW1lJikgZmluYWwgeyB9CiAK
LSAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0cmluZyYsIERh
dGFiYXNlRGV0YWlscykgZmluYWwgeyB9CisgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEo
RnJhbWUmLCBjb25zdCBTdHJpbmcmLCBEYXRhYmFzZURldGFpbHMpIGZpbmFsIHsgfQogCiAgICAg
dm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3QpIGZpbmFsIHsgfQotICAgIHZvaWQg
cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0
X3QpIGZpbmFsIHsgfQorICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90
YShTZWN1cml0eU9yaWdpbiYsIGludDY0X3QpIGZpbmFsIHsgfQogCiAjaWYgRU5BQkxFKElOUFVU
X1RZUEVfQ09MT1IpCi0gICAgc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29s
b3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IENvbG9yJikgZmluYWw7CisgICAg
c3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hv
b3NlckNsaWVudCYsIGNvbnN0IENvbG9yJikgZmluYWw7CiAjZW5kaWYKIAogICAgIHZvaWQgcnVu
T3BlblBhbmVsKEZyYW1lJiwgRmlsZUNob29zZXImKSBmaW5hbDsKICAgICB2b2lkIGxvYWRJY29u
Rm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mLCBGaWxlSWNvbkxvYWRlciYpIGZpbmFsIHsg
fQogCi0gICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgTm9kZSopIGZpbmFsIHsgfQotICAg
IHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9kZSopIGZpbmFsIHsgfQorICAgIHZvaWQgZWxl
bWVudERpZEZvY3VzKEVsZW1lbnQmKSBmaW5hbCB7IH0KKyAgICB2b2lkIGVsZW1lbnREaWRCbHVy
KEVsZW1lbnQmKSBmaW5hbCB7IH0KIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgdm9pZCBzZXRD
dXJzb3IoY29uc3QgQ3Vyc29yJikgZmluYWwgeyB9CkBAIC0xNTEsOCArMTU1LDggQEAgY2xhc3Mg
RW1wdHlDaHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKIAogICAgIHZvaWQgc2Ny
b2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdCBmaW5hbCB7IH0KIAotICAgIHZv
aWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikgZmluYWwg
eyB9Ci0gICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFw
aGljc0xheWVyKikgZmluYWwgeyB9CisgICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihG
cmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSBmaW5hbCB7IH0KKyAgICB2b2lkIGF0dGFjaFZpZXdPdmVy
bGF5R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSBmaW5hbCB7IH0KICAgICB2
b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSBmaW5hbCB7IH0KICAg
ICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgZmluYWwgeyB9CiAKQEAgLTE2
MiwxNSArMTY2LDE2IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNs
aWVudCB7CiAgICAgdm9pZCBBWEZpbmlzaEZyYW1lTG9hZCgpIGZpbmFsIHsgfQogI2VuZGlmCiAK
LSNpZiBQTEFURk9STShJT1MpCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgdm9p
ZCBkaWRQcmV2ZW50RGVmYXVsdEZvckV2ZW50KCkgZmluYWwgeyB9CiAjZW5kaWYKKworI2lmIFBM
QVRGT1JNKElPUykKICAgICB2b2lkIGRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wpIGZpbmFs
IHsgfQotICAgIHZvaWQgc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKEZyYW1lKiwgYm9vbCkg
ZmluYWwgeyB9Ci0gICAgdm9pZCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoRnJhbWUqKSBmaW5hbCB7
IH0KLSAgICB2b2lkIGNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhGcmFtZSopIGZpbmFsIHsg
fQotICAgIHZvaWQgbm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKEZyYW1l
KikgZmluYWwgeyB9CisgICAgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoRnJhbWUm
LCBib29sKSBmaW5hbCB7IH0KKyAgICB2b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShGcmFtZSYp
IGZpbmFsIHsgfQorICAgIHZvaWQgY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKEZyYW1lJikg
ZmluYWwgeyB9CisgICAgdm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJh
bWUoRnJhbWUmKSBmaW5hbCB7IH0KICAgICB2b2lkIGRpZExheW91dChMYXlvdXRUeXBlKSBmaW5h
bCB7IH0KICAgICB2b2lkIGRpZFN0YXJ0T3ZlcmZsb3dTY3JvbGwoKSBmaW5hbCB7IH0KICAgICB2
b2lkIGRpZEVuZE92ZXJmbG93U2Nyb2xsKCkgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcAppbmRleCAxNGQ0N2RhOTcyZTkyODM2OWFjODEzY2Y5NjE4NDc0ZjFhZjAw
MTg1Li43OGRmZjBjNDNjNWZiMDExYzc4MGE0NDdhOWI2OTJjNDRhZmQ0M2MxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTM5Nyw3ICszOTcsNyBAQCB2b2lkIEZyYW1l
TG9hZGVyOjpzdWJtaXRGb3JtKFJlZjxGb3JtU3VibWlzc2lvbj4mJiBzdWJtaXNzaW9uKQogCiAg
ICAgRnJhbWUqIHRhcmdldEZyYW1lID0gZmluZEZyYW1lRm9yTmF2aWdhdGlvbihzdWJtaXNzaW9u
LT50YXJnZXQoKSwgJnN1Ym1pc3Npb24tPnN0YXRlKCkuc291cmNlRG9jdW1lbnQoKSk7CiAgICAg
aWYgKCF0YXJnZXRGcmFtZSkgewotICAgICAgICBpZiAoIURPTVdpbmRvdzo6YWxsb3dQb3BVcCgm
bV9mcmFtZSkgJiYgIVNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQor
ICAgICAgICBpZiAoIURPTVdpbmRvdzo6YWxsb3dQb3BVcChtX2ZyYW1lKSAmJiAhU2NyaXB0Q29u
dHJvbGxlcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpCiAgICAgICAgICAgICByZXR1cm47CiAK
ICAgICAgICAgLy8gRklYTUU6IHRhcmdldEZyYW1lIGNhbiBiZSBudWxsIGZvciB0d28gZGlzdGlu
Y3QgcmVhc29uczoKQEAgLTE4NTIsMTEgKzE4NTIsOSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpjb21t
aXRQcm92aXNpb25hbExvYWQoKQogICAgICAgICBoaXN0b3J5KCkudXBkYXRlRm9yQ2xpZW50UmVk
aXJlY3QoKTsKIAogICAgIGlmIChtX2xvYWRpbmdGcm9tQ2FjaGVkUGFnZSkgewotI2lmIFBMQVRG
T1JNKElPUykKICAgICAgICAgLy8gTm90ZSwgZGlkUmVjZWl2ZURvY1R5cGUgaXMgZXhwZWN0ZWQg
dG8gYmUgY2FsbGVkIGZvciBjYWNoZWQgcGFnZXMuIFNlZSA8cmRhcjovL3Byb2JsZW0vNTkwNjc1
OD4gZm9yIG1vcmUgZGV0YWlscy4KLSAgICAgICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKS0+ZG9j
dHlwZSgpICYmIG1fZnJhbWUucGFnZSgpKQotICAgICAgICAgICAgbV9mcmFtZS5wYWdlKCktPmNo
cm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBlKCZtX2ZyYW1lKTsKLSNlbmRpZgorICAgICAgICBpZiAo
YXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQorICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCku
ZGlkUmVjZWl2ZURvY1R5cGUobV9mcmFtZSk7CiAgICAgICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+
cmVzdW1lKEFjdGl2ZURPTU9iamVjdDo6UGFnZUNhY2hlKTsKIAogICAgICAgICAvLyBGb3JjZSBh
IGxheW91dCB0byB1cGRhdGUgdmlldyBzaXplIGFuZCB0aGVyZWJ5IHVwZGF0ZSBzY3JvbGxiYXJz
LgpAQCAtMjQzOSwxNSArMjQzNywxNSBAQCB2b2lkIEZyYW1lTG9hZGVyOjpkZXRhY2hDaGlsZHJl
bigpCiAgICAgICAgIGNoaWxkLT5sb2FkZXIoKS5kZXRhY2hGcm9tUGFyZW50KCk7CiB9CiAKLXZv
aWQgRnJhbWVMb2FkZXI6OmNsb3NlQW5kUmVtb3ZlQ2hpbGQoRnJhbWUqIGNoaWxkKQordm9pZCBG
cmFtZUxvYWRlcjo6Y2xvc2VBbmRSZW1vdmVDaGlsZChGcmFtZSYgY2hpbGQpCiB7Ci0gICAgY2hp
bGQtPnRyZWUoKS5kZXRhY2hGcm9tUGFyZW50KCk7CisgICAgY2hpbGQudHJlZSgpLmRldGFjaEZy
b21QYXJlbnQoKTsKIAotICAgIGNoaWxkLT5zZXRWaWV3KG51bGxwdHIpOwotICAgIGlmIChjaGls
ZC0+b3duZXJFbGVtZW50KCkgJiYgY2hpbGQtPnBhZ2UoKSkKLSAgICAgICAgY2hpbGQtPnBhZ2Uo
KS0+ZGVjcmVtZW50U3ViZnJhbWVDb3VudCgpOwotICAgIGNoaWxkLT53aWxsRGV0YWNoUGFnZSgp
OwotICAgIGNoaWxkLT5kZXRhY2hGcm9tUGFnZSgpOworICAgIGNoaWxkLnNldFZpZXcobnVsbHB0
cik7CisgICAgaWYgKGNoaWxkLm93bmVyRWxlbWVudCgpICYmIGNoaWxkLnBhZ2UoKSkKKyAgICAg
ICAgY2hpbGQucGFnZSgpLT5kZWNyZW1lbnRTdWJmcmFtZUNvdW50KCk7CisgICAgY2hpbGQud2ls
bERldGFjaFBhZ2UoKTsKKyAgICBjaGlsZC5kZXRhY2hGcm9tUGFnZSgpOwogCiAgICAgbV9mcmFt
ZS50cmVlKCkucmVtb3ZlQ2hpbGQoY2hpbGQpOwogfQpAQCAtMjUyOCw3ICsyNTI2LDcgQEAgdm9p
ZCBGcmFtZUxvYWRlcjo6ZGV0YWNoRnJvbVBhcmVudCgpCiAgICAgbV9wcm9ncmVzc1RyYWNrZXIg
PSBudWxscHRyOwogCiAgICAgaWYgKEZyYW1lKiBwYXJlbnQgPSBtX2ZyYW1lLnRyZWUoKS5wYXJl
bnQoKSkgewotICAgICAgICBwYXJlbnQtPmxvYWRlcigpLmNsb3NlQW5kUmVtb3ZlQ2hpbGQoJm1f
ZnJhbWUpOworICAgICAgICBwYXJlbnQtPmxvYWRlcigpLmNsb3NlQW5kUmVtb3ZlQ2hpbGQobV9m
cmFtZSk7CiAgICAgICAgIHBhcmVudC0+bG9hZGVyKCkuc2NoZWR1bGVDaGVja0NvbXBsZXRlZCgp
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIG1fZnJhbWUuc2V0VmlldyhudWxscHRyKTsKQEAgLTMw
MzIsNyArMzAzMCw3IEBAIGJvb2wgRnJhbWVMb2FkZXI6OmRpc3BhdGNoQmVmb3JlVW5sb2FkRXZl
bnQoQ2hyb21lJiBjaHJvbWUsIEZyYW1lTG9hZGVyKiBmcmFtZUxvCiAgICAgZnJhbWVMb2FkZXJC
ZWluZ05hdmlnYXRlZC0+bV9jdXJyZW50TmF2aWdhdGlvbkhhc1Nob3duQmVmb3JlVW5sb2FkQ29u
ZmlybVBhbmVsID0gdHJ1ZTsKIAogICAgIFN0cmluZyB0ZXh0ID0gZG9jdW1lbnQtPmRpc3BsYXlT
dHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcoYmVmb3JlVW5sb2FkRXZlbnQtPnJldHVyblZhbHVlKCkp
OwotICAgIHJldHVybiBjaHJvbWUucnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHRleHQsICZt
X2ZyYW1lKTsKKyAgICByZXR1cm4gY2hyb21lLnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCh0
ZXh0LCBtX2ZyYW1lKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlcjo6Y29udGludWVMb2FkQWZ0ZXJO
YXZpZ2F0aW9uUG9saWN5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgRm9ybVN0YXRl
KiBmb3JtU3RhdGUsIGJvb2wgc2hvdWxkQ29udGludWUsIEFsbG93TmF2aWdhdGlvblRvSW52YWxp
ZFVSTCBhbGxvd05hdmlnYXRpb25Ub0ludmFsaWRVUkwpCkBAIC0zNjU3LDcgKzM2NTUsNyBAQCBS
ZWZQdHI8RnJhbWU+IGNyZWF0ZVdpbmRvdyhGcmFtZSYgb3BlbmVyRnJhbWUsIEZyYW1lJiBsb29r
dXBGcmFtZSwgY29uc3QgRnJhbWVMbwogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIFNo
b3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9
IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb0FwcGx5KG9wZW5lckZyYW1lLCByZXF1ZXN0
LnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKSk7Ci0gICAgUGFnZSogcGFnZSA9IG9sZFBh
Z2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdygmb3BlbmVyRnJhbWUsIHJlcXVlc3RXaXRoUmVmZXJy
ZXIsIGZlYXR1cmVzLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3RXaXRoUmVmZXJyZXIucmVzb3Vy
Y2VSZXF1ZXN0KCksIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpKTsKKyAgICBQYWdlKiBw
YWdlID0gb2xkUGFnZS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KG9wZW5lckZyYW1lLCByZXF1ZXN0
V2l0aFJlZmVycmVyLCBmZWF0dXJlcywgTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0V2l0aFJlZmVy
cmVyLnJlc291cmNlUmVxdWVzdCgpLCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KSk7CiAg
ICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApAQCAtMzcwNSw3ICszNzAz
LDcgQEAgUmVmUHRyPEZyYW1lPiBjcmVhdGVXaW5kb3coRnJhbWUmIG9wZW5lckZyYW1lLCBGcmFt
ZSYgbG9va3VwRnJhbWUsIGNvbnN0IEZyYW1lTG8KICAgICAgICAgd2luZG93UmVjdC5zZXRIZWln
aHQoKmZlYXR1cmVzLmhlaWdodCArICh3aW5kb3dSZWN0LmhlaWdodCgpIC0gdmlld3BvcnRTaXpl
LmhlaWdodCgpKSk7CiAKICAgICAvLyBFbnN1cmUgbm9uLU5hTiB2YWx1ZXMsIG1pbmltdW0gc2l6
ZSBhcyB3ZWxsIGFzIGJlaW5nIHdpdGhpbiB2YWxpZCBzY3JlZW4gYXJlYS4KLSAgICBGbG9hdFJl
Y3QgbmV3V2luZG93UmVjdCA9IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVjdChwYWdlLCB3aW5k
b3dSZWN0KTsKKyAgICBGbG9hdFJlY3QgbmV3V2luZG93UmVjdCA9IERPTVdpbmRvdzo6YWRqdXN0
V2luZG93UmVjdCgqcGFnZSwgd2luZG93UmVjdCk7CiAKICAgICBpZiAoIWZyYW1lLT5wYWdlKCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaApp
bmRleCBmYWEwNzEyZmE0ZDI0Nzg3ZmE1NWQ0ODRjNTQ1NDI2NWJhNTFiNjJiLi5kNjljODI5YzRl
MmY2YWJmOTRjZTFiNDA1NjQ3N2VjNmI5MGI2OThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVM
b2FkZXIuaApAQCAtMzY2LDcgKzM2Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXF1ZXN0RnJv
bURlbGVnYXRlKFJlc291cmNlUmVxdWVzdCYsIHVuc2lnbmVkIGxvbmcmIGlkZW50aWZpZXIsIFJl
c291cmNlRXJyb3ImKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGV0YWNoQ2hpbGRyZW4o
KTsKLSAgICB2b2lkIGNsb3NlQW5kUmVtb3ZlQ2hpbGQoRnJhbWUqKTsKKyAgICB2b2lkIGNsb3Nl
QW5kUmVtb3ZlQ2hpbGQoRnJhbWUmKTsKIAogICAgIHZvaWQgbG9hZEluU2FtZURvY3VtZW50KGNv
bnN0IFVSTCYsIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSogc3RhdGVPYmplY3QsIGJvb2wgaXNOZXdO
YXZpZ2F0aW9uKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNo
ZWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCmluZGV4
IGJiYjYxZWI0ODIxMjE5ODNhYmViNTdiY2U0ZTg0NzM0YjdmZTYyMjMuLmEwMWNlMjkyOWExMDEw
NjAwNGEyNGU3NGE2MDhiOGNkNzY3NjFhNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9Qb2xpY3lDaGVja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5
Q2hlY2tlci5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIFBvbGljeUNoZWNrZXI6OmNoZWNr
TmV3V2luZG93UG9saWN5KGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIGFjdGlvbiwgY29uc3QgUgog
ICAgIGlmIChtX2ZyYW1lLmRvY3VtZW50KCkgJiYgbV9mcmFtZS5kb2N1bWVudCgpLT5pc1NhbmRi
b3hlZChTYW5kYm94UG9wdXBzKSkKICAgICAgICAgcmV0dXJuIGNvbnRpbnVlQWZ0ZXJOYXZpZ2F0
aW9uUG9saWN5KFBvbGljeUlnbm9yZSk7CiAKLSAgICBpZiAoIURPTVdpbmRvdzo6YWxsb3dQb3BV
cCgmbV9mcmFtZSkpCisgICAgaWYgKCFET01XaW5kb3c6OmFsbG93UG9wVXAobV9mcmFtZSkpCiAg
ICAgICAgIHJldHVybiBjb250aW51ZUFmdGVyTmF2aWdhdGlvblBvbGljeShQb2xpY3lJZ25vcmUp
OwogCiAgICAgbV9jYWxsYmFjay5zZXQocmVxdWVzdCwgZm9ybVN0YXRlLCBmcmFtZU5hbWUsIGFj
dGlvbiwgV1RGTW92ZShmdW5jdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAppbmRleCA4YTI4Zjg4ZTY2
NzNkYjE3MDJiMTQ0MTRmYWY3MzhiNWM3NDJmY2VmLi45ZjlhYjAwMGNmNmQ5Mzg1ZjhhMjU4ZjUx
NTFiODcwZjcyOTBkOGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2Fj
aGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
YXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmNwcApAQCAtNzg0LDcgKzc4NCw3IEBAIHZv
aWQgQXBwbGljYXRpb25DYWNoZUdyb3VwOjpjYWNoZVVwZGF0ZUZhaWxlZCgpCiAKIHZvaWQgQXBw
bGljYXRpb25DYWNoZUdyb3VwOjpyZWNhbGN1bGF0ZUF2YWlsYWJsZVNwYWNlSW5RdW90YSgpCiB7
Ci0gICAgaWYgKCFtX2ZyYW1lLT5wYWdlKCktPmFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlKCkuY2Fs
Y3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hlKG1fb3JpZ2luLmdldCgp
LCBtX25ld2VzdENhY2hlLmdldCgpLCBtX2F2YWlsYWJsZVNwYWNlSW5RdW90YSkpIHsKKyAgICBp
ZiAoIW1fZnJhbWUtPnBhZ2UoKS0+YXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKS5jYWxjdWxhdGVS
ZW1haW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUobV9vcmlnaW4sIG1fbmV3ZXN0Q2Fj
aGUuZ2V0KCksIG1fYXZhaWxhYmxlU3BhY2VJblF1b3RhKSkgewogICAgICAgICAvLyBGYWlsZWQg
dG8gZGV0ZXJtaW5lIHdoYXQgaXMgbGVmdCBpbiB0aGUgcXVvdGEuIEZhbGxiYWNrIHRvIGFsbG93
aW5nIGFueXRoaW5nLgogICAgICAgICBtX2F2YWlsYWJsZVNwYWNlSW5RdW90YSA9IEFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlOjpub1F1b3RhKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5oCmluZGV4IGZjODUx
ZGE3Y2ZhOGM0MzMyZjY4NWVhMjkxMjJlMzdkNGRiN2FhYTIuLmNlYjgzZGZjNjIxNmZlNTU4NDI3
N2M5ZjlhYWU1NjYwOGQ3YzRkMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZUdyb3VwLmgKQEAgLTY2LDcgKzY2LDcgQEAgcHVi
bGljOgogCiAgICAgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UmIHN0b3JhZ2UoKSB7IHJldHVybiBt
X3N0b3JhZ2U7IH0KICAgICBjb25zdCBVUkwmIG1hbmlmZXN0VVJMKCkgY29uc3QgeyByZXR1cm4g
bV9tYW5pZmVzdFVSTDsgfQotICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4oKSBjb25z
dCB7IHJldHVybiBtX29yaWdpbi5nZXQoKTsgfQorICAgIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiBv
cmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbi5nZXQoKTsgfQogICAgIFVwZGF0ZVN0YXR1
cyB1cGRhdGVTdGF0dXMoKSBjb25zdCB7IHJldHVybiBtX3VwZGF0ZVN0YXR1czsgfQogICAgIHZv
aWQgc2V0VXBkYXRlU3RhdHVzKFVwZGF0ZVN0YXR1cyBzdGF0dXMpOwogCkBAIC0xMzUsNyArMTM1
LDcgQEAgcHJpdmF0ZToKICAgICBSZWY8QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U+IG1fc3RvcmFn
ZTsKIAogICAgIFVSTCBtX21hbmlmZXN0VVJMOwotICAgIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4g
bV9vcmlnaW47CisgICAgUmVmPFNlY3VyaXR5T3JpZ2luPiBtX29yaWdpbjsKICAgICBVcGRhdGVT
dGF0dXMgbV91cGRhdGVTdGF0dXMgeyBJZGxlIH07CiAgICAgCiAgICAgLy8gVGhpcyBpcyB0aGUg
bmV3ZXN0IGNvbXBsZXRlIGNhY2hlIGluIHRoZSBncm91cC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCmlu
ZGV4IGY0ZmE5NWI1MTdlYzc3OTE2MjRmYzBmMjVhNjU2YjBjMDk0NDE0NzcuLmI2YjlkN2E3Y2Q2
M2MwNzZhZTdhODQxMDk5OTgwYjQzZWY4N2I2YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcApAQCAt
NDIxLDcgKzQyMSw3IEBAIHZvaWQgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnNldERlZmF1bHRP
cmlnaW5RdW90YShpbnQ2NF90IHF1b3RhKQogICAgIG1fZGVmYXVsdE9yaWdpblF1b3RhID0gcXVv
dGE7CiB9CiAKLWJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0ZVF1b3RhRm9y
T3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGludDY0X3QmIHF1b3RhKQorYm9v
bCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3Qg
U2VjdXJpdHlPcmlnaW4mIG9yaWdpbiwgaW50NjRfdCYgcXVvdGEpCiB7CiAgICAgU1FMaXRlVHJh
bnNhY3Rpb25JblByb2dyZXNzQXV0b0NvdW50ZXIgdHJhbnNhY3Rpb25Db3VudGVyOwogCkBAIC00
MzIsNyArNDMyLDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVv
dGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qIG9yaWcKICAgICBpZiAoc3RhdGVtZW50
LnByZXBhcmUoKSAhPSBTUUxJVEVfT0spCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHN0
YXRlbWVudC5iaW5kVGV4dCgxLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdp
bigqb3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CisgICAgc3RhdGVtZW50LmJpbmRUZXh0
KDEsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKG9yaWdpbikuZGF0YWJh
c2VJZGVudGlmaWVyKCkpOwogICAgIGludCByZXN1bHQgPSBzdGF0ZW1lbnQuc3RlcCgpOwogCiAg
ICAgLy8gUmV0dXJuIHRoZSBxdW90YSwgb3IgaWYgaXQgd2FzIG51bGwgdGhlIGRlZmF1bHQuCkBA
IC00NzIsNyArNDcyLDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRl
VXNhZ2VGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4qIG9yaWcKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLWJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0ZVJlbWFpbmlu
Z1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZShjb25zdCBTZWN1cml0eU9yaWdpbiogb3JpZ2lu
LCBBcHBsaWNhdGlvbkNhY2hlKiBjYWNoZSwgaW50NjRfdCYgcmVtYWluaW5nU2l6ZSkKK2Jvb2wg
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5F
eGNsdWRpbmdDYWNoZShjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBBcHBsaWNhdGlvbkNh
Y2hlKiBjYWNoZSwgaW50NjRfdCYgcmVtYWluaW5nU2l6ZSkKIHsKICAgICBTUUxpdGVUcmFuc2Fj
dGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRlciB0cmFuc2FjdGlvbkNvdW50ZXI7CiAKQEAgLTUwMyw3
ICs1MDMsNyBAQCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjYWxjdWxhdGVSZW1haW5p
bmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUoY29ucwogICAgIGlmIChzdGF0ZW1lbnQucHJl
cGFyZSgpICE9IFNRTElURV9PSykKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc3RhdGVt
ZW50LmJpbmRUZXh0KDEsIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpv
cmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKKyAgICBzdGF0ZW1lbnQuYmluZFRleHQoMSwg
U2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3JpZ2luKS5kYXRhYmFzZUlk
ZW50aWZpZXIoKSk7CiAgICAgaWYgKGV4Y2x1ZGluZ0NhY2hlSWRlbnRpZmllciAhPSAwKQogICAg
ICAgICBzdGF0ZW1lbnQuYmluZEludDY0KDIsIGV4Y2x1ZGluZ0NhY2hlSWRlbnRpZmllcik7CiAg
ICAgaW50IHJlc3VsdCA9IHN0YXRlbWVudC5zdGVwKCk7CkBAIC02ODgsMTQgKzY4OCwxNCBAQCBi
b29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpzdG9yZShBcHBsaWNhdGlvbkNhY2hlR3JvdXAq
IGdyb3VwLCBHcm91cFN0b3JhZ2VJRAogCiAgICAgc3RhdGVtZW50LmJpbmRJbnQ2NCgxLCB1cmxI
b3N0SGFzaChncm91cC0+bWFuaWZlc3RVUkwoKSkpOwogICAgIHN0YXRlbWVudC5iaW5kVGV4dCgy
LCBncm91cC0+bWFuaWZlc3RVUkwoKSk7Ci0gICAgc3RhdGVtZW50LmJpbmRUZXh0KDMsIFNlY3Vy
aXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpncm91cC0+b3JpZ2luKCkpLmRhdGFi
YXNlSWRlbnRpZmllcigpKTsKKyAgICBzdGF0ZW1lbnQuYmluZFRleHQoMywgU2VjdXJpdHlPcmln
aW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oZ3JvdXAtPm9yaWdpbigpKS5kYXRhYmFzZUlkZW50
aWZpZXIoKSk7CiAKICAgICBpZiAoIWV4ZWN1dGVTdGF0ZW1lbnQoc3RhdGVtZW50KSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgdW5zaWduZWQgZ3JvdXBTdG9yYWdlSUQgPSBzdGF0aWNf
Y2FzdDx1bnNpZ25lZD4obV9kYXRhYmFzZS5sYXN0SW5zZXJ0Um93SUQoKSk7CiAKLSAgICBpZiAo
IWVuc3VyZU9yaWdpblJlY29yZChncm91cC0+b3JpZ2luKCkpKQorICAgIGlmICghZW5zdXJlT3Jp
Z2luUmVjb3JkKCZncm91cC0+b3JpZ2luKCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBncm91cC0+c2V0U3RvcmFnZUlEKGdyb3VwU3RvcmFnZUlEKTsKQEAgLTk3MSw3ICs5NzEsNyBA
QCBib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjaGVja09yaWdpblF1b3RhKEFwcGxpY2F0
aW9uQ2FjaGVHcm91cCogZ3JvdXAsIEFwcAogewogICAgIC8vIENoZWNrIGlmIHRoZSBvbGRDYWNo
ZSB3aXRoIHRoZSBuZXdDYWNoZSB3b3VsZCByZWFjaCB0aGUgcGVyLW9yaWdpbiBxdW90YS4KICAg
ICBpbnQ2NF90IHJlbWFpbmluZ1NwYWNlSW5PcmlnaW47Ci0gICAgY29uc3QgU2VjdXJpdHlPcmln
aW4qIG9yaWdpbiA9IGdyb3VwLT5vcmlnaW4oKTsKKyAgICBhdXRvJiBvcmlnaW4gPSBncm91cC0+
b3JpZ2luKCk7CiAgICAgaWYgKGNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRp
bmdDYWNoZShvcmlnaW4sIG9sZENhY2hlLCByZW1haW5pbmdTcGFjZUluT3JpZ2luKSkgewogICAg
ICAgICBpZiAocmVtYWluaW5nU3BhY2VJbk9yaWdpbiA8IG5ld0NhY2hlLT5lc3RpbWF0ZWRTaXpl
SW5TdG9yYWdlKCkpIHsKICAgICAgICAgICAgIGludDY0X3QgcXVvdGE7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5o
CmluZGV4IDlmYTI5MmVlNTBmYWVlODljMzVjODYxYThmOTlmYTE2ZjkwNTQ3NmQuLjlkMTdhMWJj
ZDA2YTZhYzExMWEwYWNhYTYwNzY0ZjZiMTU0MDUwZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oCkBAIC02
Myw4ICs2Myw4IEBAIHB1YmxpYzoKICAgICBpbnQ2NF90IGRlZmF1bHRPcmlnaW5RdW90YSgpIGNv
bnN0IHsgcmV0dXJuIG1fZGVmYXVsdE9yaWdpblF1b3RhOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBzZXREZWZhdWx0T3JpZ2luUXVvdGEoaW50NjRfdCBxdW90YSk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBjYWxjdWxhdGVVc2FnZUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbios
IGludDY0X3QmIHVzYWdlKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhbGN1bGF0ZVF1b3Rh
Rm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCYgcXVvdGEpOwotICAgIGJv
b2wgY2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hlKGNvbnN0IFNl
Y3VyaXR5T3JpZ2luKiwgQXBwbGljYXRpb25DYWNoZSosIGludDY0X3QmIHJlbWFpbmluZ1NpemUp
OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgY2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3Qg
U2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90JiBxdW90YSk7CisgICAgYm9vbCBjYWxjdWxhdGVSZW1h
aW5pbmdTaXplRm9yT3JpZ2luRXhjbHVkaW5nQ2FjaGUoY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBB
cHBsaWNhdGlvbkNhY2hlKiwgaW50NjRfdCYgcmVtYWluaW5nU2l6ZSk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBzdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdp
biosIGludDY0X3QgcXVvdGEpOwogICAgIGJvb2wgY2hlY2tPcmlnaW5RdW90YShBcHBsaWNhdGlv
bkNhY2hlR3JvdXAqLCBBcHBsaWNhdGlvbkNhY2hlKiBvbGRDYWNoZSwgQXBwbGljYXRpb25DYWNo
ZSogbmV3Q2FjaGUsIGludDY0X3QmIHRvdGFsU3BhY2VOZWVkZWQpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcAppbmRleCBh
OTIxYjA1ZTg0NmEwNWE1YWZjZTYzMDNhYTE4ZjhiZjMwNzA5ZGI0Li4yY2E2N2UyN2JlODg0MmNj
N2EyMTdkYWE5MjU1ZTgxOGVmOWExOTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXJjaGl2ZS9taHRtbC9NSFRNTEFyY2hpdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2ZS5jcHAKQEAgLTEzMyw4ICsxMzMsOCBAQCBS
ZWZQdHI8TUhUTUxBcmNoaXZlPiBNSFRNTEFyY2hpdmU6OmNyZWF0ZShjb25zdCBVUkwmIHVybCwg
U2hhcmVkQnVmZmVyJiBkYXRhKQogUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gTUhUTUxBcmNoaXZlOjpn
ZW5lcmF0ZU1IVE1MRGF0YShQYWdlKiBwYWdlKQogewogICAgIFZlY3RvcjxQYWdlU2VyaWFsaXpl
cjo6UmVzb3VyY2U+IHJlc291cmNlczsKLSAgICBQYWdlU2VyaWFsaXplciBwYWdlU2VyaWFsaXpl
cigmcmVzb3VyY2VzKTsKLSAgICBwYWdlU2VyaWFsaXplci5zZXJpYWxpemUocGFnZSk7CisgICAg
UGFnZVNlcmlhbGl6ZXIgcGFnZVNlcmlhbGl6ZXIocmVzb3VyY2VzKTsKKyAgICBwYWdlU2VyaWFs
aXplci5zZXJpYWxpemUoKnBhZ2UpOwogCiAgICAgU3RyaW5nIGJvdW5kYXJ5ID0gZ2VuZXJhdGVS
YW5kb21Cb3VuZGFyeSgpOwogICAgIFN0cmluZyBlbmRPZlJlc291cmNlQm91bmRhcnkgPSBtYWtl
U3RyaW5nKCItLSIsIGJvdW5kYXJ5LCAiXHJcbiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbWF0aG1sL01hdGhNTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TEVsZW1lbnQuY3BwCmluZGV4IGUxNTE3NmQzMzE5ZDk0Y2UwYjljOTFmYmJkOGViNzM3ODE5NGM4
NjQuLmU5NzEzOTYxY2UzYjc0ODg0YTFiM2JlM2U1MGE3MzkwNjIzZjg5ZTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAKQEAgLTE4Miw3ICsxODIsNyBAQCBib29sIE1h
dGhNTEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCYgZXZlbnQpIGNv
bnN0CiAgICAgICAgIHJldHVybiBTdHlsZWRFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKGV2
ZW50KTsKIAogICAgIGlmIChpc0xpbmsoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50KCkuZnJh
bWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoJmV2ZW50KTsKKyAgICAgICAgcmV0dXJu
IGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoZXZlbnQpOwog
CiAgICAgcmV0dXJuIFN0eWxlZEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuY3BwCmluZGV4IDc0ZGRlMWEzNGUxNWU5MDk3MWFkMDg2ZTI3MGI5
YWE1Njk4ODIxMGIuLmUzNjNmNDNhZGM2ZjViY2U0OTA4NDQwOTc1Mzc0NmFhODYxZTg0ZGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTQ4LDcgKzQ4LDYgQEAKICNpbmNsdWRlICJTdG9yYWdl
TmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlIDxydW50
aW1lL1ZNLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvU2V0
Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTYzLDEwICs2Miw2IEBA
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBDaHJvbWU6OkNocm9tZShQYWdlJiBwYWdlLCBD
aHJvbWVDbGllbnQmIGNsaWVudCkKICAgICA6IG1fcGFnZShwYWdlKQogICAgICwgbV9jbGllbnQo
Y2xpZW50KQotICAgICwgbV9kaXNwbGF5SUQoMCkKLSNpZiBQTEFURk9STShJT1MpCi0gICAgLCBt
X2lzRGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkKGZhbHNlKQotI2VuZGlm
CiB7CiB9CiAKQEAgLTExNCw2ICsxMDksNyBAQCBJbnRSZWN0IENocm9tZTo6cm9vdFZpZXdUb1Nj
cmVlbihjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAogfQogICAgIAogI2lmIFBMQVRGT1JNKElP
UykKKwogSW50UG9pbnQgQ2hyb21lOjphY2Nlc3NpYmlsaXR5U2NyZWVuVG9Sb290Vmlldyhjb25z
dCBJbnRQb2ludCYgcG9pbnQpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fY2xpZW50LmFjY2Vzc2li
aWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KHBvaW50KTsKQEAgLTEyMyw2ICsxMTksNyBAQCBJbnRSZWN0
IENocm9tZTo6cm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29uc3QgSW50UmVjdCYgcmVj
dCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9jbGllbnQucm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlT
Y3JlZW4ocmVjdCk7CiB9CisKICNlbmRpZgogCiBQbGF0Zm9ybVBhZ2VDbGllbnQgQ2hyb21lOjpw
bGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdApAQCAtMTMwLDcgKzEyNyw3IEBAIFBsYXRmb3JtUGFn
ZUNsaWVudCBDaHJvbWU6OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIG1f
Y2xpZW50LnBsYXRmb3JtUGFnZUNsaWVudCgpOwogfQogCi12b2lkIENocm9tZTo6Y29udGVudHNT
aXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0Cit2b2lk
IENocm9tZTo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFNpemUm
IHNpemUpIGNvbnN0CiB7CiAgICAgbV9jbGllbnQuY29udGVudHNTaXplQ2hhbmdlZChmcmFtZSwg
c2l6ZSk7CiB9CkBAIC0xOTAsMTUgKzE4NywxMyBAQCB2b2lkIENocm9tZTo6Zm9jdXNlZEZyYW1l
Q2hhbmdlZChGcmFtZSogZnJhbWUpIGNvbnN0CiAgICAgbV9jbGllbnQuZm9jdXNlZEZyYW1lQ2hh
bmdlZChmcmFtZSk7CiB9CiAKLVBhZ2UqIENocm9tZTo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFt
ZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMm
IGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24pIGNvbnN0CitQYWdlKiBD
aHJvbWU6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3Qm
IHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlv
bkFjdGlvbiYgYWN0aW9uKSBjb25zdAogewogICAgIFBhZ2UqIG5ld1BhZ2UgPSBtX2NsaWVudC5j
cmVhdGVXaW5kb3coZnJhbWUsIHJlcXVlc3QsIGZlYXR1cmVzLCBhY3Rpb24pOwogICAgIGlmICgh
bmV3UGFnZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICBpZiAoU3RvcmFnZU5hbWVzcGFjZSog
b2xkU2Vzc2lvblN0b3JhZ2UgPSBtX3BhZ2Uuc2Vzc2lvblN0b3JhZ2UoZmFsc2UpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoYXV0byogb2xkU2Vzc2lvblN0b3JhZ2UgPSBtX3Bh
Z2Uuc2Vzc2lvblN0b3JhZ2UoZmFsc2UpKQogICAgICAgICBuZXdQYWdlLT5zZXRTZXNzaW9uU3Rv
cmFnZShvbGRTZXNzaW9uU3RvcmFnZS0+Y29weShuZXdQYWdlKSk7Ci0KICAgICByZXR1cm4gbmV3
UGFnZTsKIH0KIApAQCAtMjc2LDcgKzI3MSw3IEBAIGJvb2wgQ2hyb21lOjpjYW5SdW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWwoKQogICAgIHJldHVybiBtX2NsaWVudC5jYW5SdW5CZWZvcmVVbmxv
YWRDb25maXJtUGFuZWwoKTsKIH0KIAotYm9vbCBDaHJvbWU6OnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKiBmcmFtZSkKK2Jvb2wgQ2hyb21l
OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFt
ZSYgZnJhbWUpCiB7CiAgICAgLy8gRGVmZXIgbG9hZHMgaW4gY2FzZSB0aGUgY2xpZW50IG1ldGhv
ZCBydW5zIGEgbmV3IGV2ZW50IGxvb3AgdGhhdCB3b3VsZAogICAgIC8vIG90aGVyd2lzZSBjYXVz
ZSB0aGUgbG9hZCB0byBjb250aW51ZSB3aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGV4ZWN1
dGluZyBKYXZhU2NyaXB0LgpAQCAtMjkwLDUzICsyODUsNDcgQEAgdm9pZCBDaHJvbWU6OmNsb3Nl
V2luZG93U29vbigpCiAgICAgbV9jbGllbnQuY2xvc2VXaW5kb3dTb29uKCk7CiB9CiAKLXZvaWQg
Q2hyb21lOjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpCit2b2lkIENocm9tZTo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiBmcmFtZSwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIC8vIERlZmVyIGxvYWRzIGluIGNhc2UgdGhlIGNs
aWVudCBtZXRob2QgcnVucyBhIG5ldyBldmVudCBsb29wIHRoYXQgd291bGQKICAgICAvLyBvdGhl
cndpc2UgY2F1c2UgdGhlIGxvYWQgdG8gY29udGludWUgd2hpbGUgd2UncmUgaW4gdGhlIG1pZGRs
ZSBvZiBleGVjdXRpbmcgSmF2YVNjcmlwdC4KICAgICBQYWdlR3JvdXBMb2FkRGVmZXJyZXIgZGVm
ZXJyZXIobV9wYWdlLCB0cnVlKTsKIAotICAgIEFTU0VSVChmcmFtZSk7CiAgICAgbm90aWZ5UG9w
dXBPcGVuaW5nT2JzZXJ2ZXJzKCk7Ci0gICAgU3RyaW5nIGRpc3BsYXlNZXNzYWdlID0gZnJhbWUt
PmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcobWVzc2FnZSk7CisgICAgU3RyaW5nIGRp
c3BsYXlNZXNzYWdlID0gZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhtZXNz
YWdlKTsKIAogICAgIG1fY2xpZW50LnJ1bkphdmFTY3JpcHRBbGVydChmcmFtZSwgZGlzcGxheU1l
c3NhZ2UpOwogfQogCi1ib29sIENocm9tZTo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZy
YW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCitib29sIENocm9tZTo6cnVuSmF2YVNjcmlwdENv
bmZpcm0oRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgLy8gRGVm
ZXIgbG9hZHMgaW4gY2FzZSB0aGUgY2xpZW50IG1ldGhvZCBydW5zIGEgbmV3IGV2ZW50IGxvb3Ag
dGhhdCB3b3VsZAogICAgIC8vIG90aGVyd2lzZSBjYXVzZSB0aGUgbG9hZCB0byBjb250aW51ZSB3
aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGV4ZWN1dGluZyBKYXZhU2NyaXB0LgogICAgIFBh
Z2VHcm91cExvYWREZWZlcnJlciBkZWZlcnJlcihtX3BhZ2UsIHRydWUpOwogCi0gICAgQVNTRVJU
KGZyYW1lKTsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKLSAgICBTdHJpbmcg
ZGlzcGxheU1lc3NhZ2UgPSBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyht
ZXNzYWdlKTsKLQotICAgIHJldHVybiBtX2NsaWVudC5ydW5KYXZhU2NyaXB0Q29uZmlybShmcmFt
ZSwgZGlzcGxheU1lc3NhZ2UpOworICAgIHJldHVybiBtX2NsaWVudC5ydW5KYXZhU2NyaXB0Q29u
ZmlybShmcmFtZSwgZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhtZXNzYWdl
KSk7CiB9CiAKLWJvb2wgQ2hyb21lOjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBmcmFtZSwg
Y29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcm
IHJlc3VsdCkKK2Jvb2wgQ2hyb21lOjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiBmcmFtZSwg
Y29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcm
IHJlc3VsdCkKIHsKICAgICAvLyBEZWZlciBsb2FkcyBpbiBjYXNlIHRoZSBjbGllbnQgbWV0aG9k
IHJ1bnMgYSBuZXcgZXZlbnQgbG9vcCB0aGF0IHdvdWxkCiAgICAgLy8gb3RoZXJ3aXNlIGNhdXNl
IHRoZSBsb2FkIHRvIGNvbnRpbnVlIHdoaWxlIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgZXhlY3V0
aW5nIEphdmFTY3JpcHQuCiAgICAgUGFnZUdyb3VwTG9hZERlZmVycmVyIGRlZmVycmVyKG1fcGFn
ZSwgdHJ1ZSk7CiAKLSAgICBBU1NFUlQoZnJhbWUpOwogICAgIG5vdGlmeVBvcHVwT3BlbmluZ09i
c2VydmVycygpOwotICAgIFN0cmluZyBkaXNwbGF5UHJvbXB0ID0gZnJhbWUtPmRpc3BsYXlTdHJp
bmdNb2RpZmllZEJ5RW5jb2RpbmcocHJvbXB0KTsKKyAgICBTdHJpbmcgZGlzcGxheVByb21wdCA9
IGZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcocHJvbXB0KTsKIAotICAgIGJv
b2wgb2sgPSBtX2NsaWVudC5ydW5KYXZhU2NyaXB0UHJvbXB0KGZyYW1lLCBkaXNwbGF5UHJvbXB0
LCBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhkZWZhdWx0VmFsdWUpLCBy
ZXN1bHQpOworICAgIGJvb2wgb2sgPSBtX2NsaWVudC5ydW5KYXZhU2NyaXB0UHJvbXB0KGZyYW1l
LCBkaXNwbGF5UHJvbXB0LCBmcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKGRl
ZmF1bHRWYWx1ZSksIHJlc3VsdCk7CiAgICAgaWYgKG9rKQotICAgICAgICByZXN1bHQgPSBmcmFt
ZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhyZXN1bHQpOworICAgICAgICByZXN1
bHQgPSBmcmFtZS5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHJlc3VsdCk7CiAKICAg
ICByZXR1cm4gb2s7CiB9CiAKLXZvaWQgQ2hyb21lOjpzZXRTdGF0dXNiYXJUZXh0KEZyYW1lKiBm
cmFtZSwgY29uc3QgU3RyaW5nJiBzdGF0dXMpCit2b2lkIENocm9tZTo6c2V0U3RhdHVzYmFyVGV4
dChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgc3RhdHVzKQogewotICAgIEFTU0VSVChmcmFt
ZSk7Ci0gICAgbV9jbGllbnQuc2V0U3RhdHVzYmFyVGV4dChmcmFtZS0+ZGlzcGxheVN0cmluZ01v
ZGlmaWVkQnlFbmNvZGluZyhzdGF0dXMpKTsKKyAgICBtX2NsaWVudC5zZXRTdGF0dXNiYXJUZXh0
KGZyYW1lLmRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2Rpbmcoc3RhdHVzKSk7CiB9CiAKIHZv
aWQgQ2hyb21lOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiBy
ZXN1bHQsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpCkBAIC00MDcsOSArMzk2LDkgQEAgdm9pZCBD
aHJvbWU6OnNldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQogICAgIG1fY2xp
ZW50LnNldFRvb2xUaXAodG9vbFRpcCwgdG9vbFRpcERpcmVjdGlvbik7CiB9CiAKLXZvaWQgQ2hy
b21lOjpwcmludChGcmFtZSogZnJhbWUpCit2b2lkIENocm9tZTo6cHJpbnQoRnJhbWUmIGZyYW1l
KQogewotICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBoYXZlIFBhZ2VHcm91cExvYWREZWZlcnJl
ciwgbGlrZSBydW5Nb2RhbCgpIG9yIHJ1bkphdmFTY3JpcHRBbGVydCgpLCBiZWNhc3VlIGl0J3Mg
bm8gZGlmZmVyZW50IGZyb20gdGhvc2UuCisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGhhdmUg
UGFnZUdyb3VwTG9hZERlZmVycmVyLCBsaWtlIHJ1bk1vZGFsKCkgb3IgcnVuSmF2YVNjcmlwdEFs
ZXJ0KCksIGJlY2F1c2UgaXQncyBubyBkaWZmZXJlbnQgZnJvbSB0aG9zZS4KICAgICBtX2NsaWVu
dC5wcmludChmcmFtZSk7CiB9CiAKQEAgLTQyNCwxMSArNDEzLDEzIEBAIHZvaWQgQ2hyb21lOjpk
aXNhYmxlU3VkZGVuVGVybWluYXRpb24oKQogfQogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09M
T1IpCi1zdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBDaHJvbWU6OmNyZWF0ZUNvbG9yQ2hv
b3NlcihDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xv
cikKKworc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gQ2hyb21lOjpjcmVhdGVDb2xvckNo
b29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiBjbGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29s
b3IpCiB7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7CiAgICAgcmV0dXJuIG1f
Y2xpZW50LmNyZWF0ZUNvbG9yQ2hvb3NlcihjbGllbnQsIGluaXRpYWxDb2xvcik7CiB9CisKICNl
bmRpZgogCiB2b2lkIENocm9tZTo6cnVuT3BlblBhbmVsKEZyYW1lJiBmcmFtZSwgRmlsZUNob29z
ZXImIGZpbGVDaG9vc2VyKQpAQCAtNTM4LDEzICs1MjksMTMgQEAgYm9vbCBDaHJvbWU6Omhhc09w
ZW5lZFBvcHVwKCkgY29uc3QKICAgICByZXR1cm4gbV9jbGllbnQuaGFzT3BlbmVkUG9wdXAoKTsK
IH0KIAotUmVmUHRyPFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8UG9wdXBNZW51PiBDaHJvbWU6OmNyZWF0ZVBv
cHVwTWVudShQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKICAgICBub3RpZnlQb3B1
cE9wZW5pbmdPYnNlcnZlcnMoKTsKICAgICByZXR1cm4gbV9jbGllbnQuY3JlYXRlUG9wdXBNZW51
KGNsaWVudCk7CiB9CiAKLVJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IENocm9tZTo6Y3JlYXRlU2Vh
cmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUmVmUHRyPFNlYXJj
aFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
JiBjbGllbnQpIGNvbnN0CiB7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7CiAg
ICAgcmV0dXJuIG1fY2xpZW50LmNyZWF0ZVNlYXJjaFBvcHVwTWVudShjbGllbnQpOwpAQCAtNTU1
LDMwICs1NDYsMjcgQEAgYm9vbCBDaHJvbWU6OnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxh
eWJhY2soKQogICAgIHJldHVybiBtX2NsaWVudC5yZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRlb1Bs
YXliYWNrKCk7CiB9CiAKLSNpZiBQTEFURk9STShJT1MpCi0vLyBGSVhNRTogTWFrZSBhcmd1bWVu
dCwgZnJhbWUsIGEgcmVmZXJlbmNlLgotdm9pZCBDaHJvbWU6OmRpZFJlY2VpdmVEb2NUeXBlKEZy
YW1lKiBmcmFtZSkKK3ZvaWQgQ2hyb21lOjpkaWRSZWNlaXZlRG9jVHlwZShGcmFtZSYgZnJhbWUp
CiB7Ci0gICAgQVNTRVJUKGZyYW1lKTsKLSAgICBpZiAoIWZyYW1lLT5pc01haW5GcmFtZSgpKQor
I2lmICFQTEFURk9STShJT1MpCisgICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKKyNlbHNlCisgICAg
aWYgKCFmcmFtZS5pc01haW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBib29sIGhh
c01vYmlsZURvY1R5cGUgPSBmYWxzZTsKLSAgICBpZiAoRG9jdW1lbnRUeXBlKiBkb2N1bWVudFR5
cGUgPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9jdHlwZSgpKQotICAgICAgICBoYXNNb2JpbGVEb2NU
eXBlID0gZG9jdW1lbnRUeXBlLT5wdWJsaWNJZCgpLmNvbnRhaW5zKCJ4aHRtbCBtb2JpbGUiLCBm
YWxzZSk7Ci0gICAgbV9jbGllbnQuZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoaGFzTW9iaWxlRG9j
VHlwZSk7Ci19CisgICAgYXV0byogZG9jdHlwZSA9IGZyYW1lLmRvY3VtZW50KCktPmRvY3R5cGUo
KTsKKyAgICBtX2NsaWVudC5kaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShkb2N0eXBlICYmIGRvY3R5
cGUtPnB1YmxpY0lkKCkuY29udGFpbnNJZ25vcmluZ0FTQ0lJQ2FzZSgieGh0bWwgbW9iaWxlIikp
OwogI2VuZGlmCit9CiAKLXZvaWQgQ2hyb21lOjpyZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVy
KFBvcHVwT3BlbmluZ09ic2VydmVyKiBvYnNlcnZlcikKK3ZvaWQgQ2hyb21lOjpyZWdpc3RlclBv
cHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyJiBvYnNlcnZlcikKIHsKLSAg
ICBBU1NFUlQob2JzZXJ2ZXIpOwotICAgIG1fcG9wdXBPcGVuaW5nT2JzZXJ2ZXJzLmFwcGVuZChv
YnNlcnZlcik7CisgICAgbV9wb3B1cE9wZW5pbmdPYnNlcnZlcnMuYXBwZW5kKCZvYnNlcnZlcik7
CiB9CiAKLXZvaWQgQ2hyb21lOjp1bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBP
cGVuaW5nT2JzZXJ2ZXIqIG9ic2VydmVyKQordm9pZCBDaHJvbWU6OnVucmVnaXN0ZXJQb3B1cE9w
ZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciYgb2JzZXJ2ZXIpCiB7Ci0gICAgYm9v
bCByZW1vdmVkID0gbV9wb3B1cE9wZW5pbmdPYnNlcnZlcnMucmVtb3ZlRmlyc3Qob2JzZXJ2ZXIp
OworICAgIGJvb2wgcmVtb3ZlZCA9IG1fcG9wdXBPcGVuaW5nT2JzZXJ2ZXJzLnJlbW92ZUZpcnN0
KCZvYnNlcnZlcik7CiAgICAgQVNTRVJUX1VOVVNFRChyZW1vdmVkLCByZW1vdmVkKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ2hyb21lLmgKaW5kZXggNmQyNWFjODkxNjAwZjIxODRhNjU0ZGFkMzIyNmQ0NmM4MTkz
MmE2Ni4uYjNjNDY0N2MxYWU5NTAwNTIwNzgzNDllMDc2YTI5YjBlNmFkYzZjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZS5oCkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2Nyb2xsUmVj
dEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdDsKIAotICAgIHZvaWQgY29udGVudHNTaXpl
Q2hhbmdlZChGcmFtZSosIGNvbnN0IEludFNpemUmKSBjb25zdDsKKyAgICB2b2lkIGNvbnRlbnRz
U2l6ZUNoYW5nZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3Q7CiAKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHNldFdpbmRvd1JlY3QoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgRmxvYXRSZWN0IHdpbmRvd1JlY3QoKSBjb25zdDsKQEAgLTExMSw3ICsx
MTEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBmb2N1c2VkRWxlbWVudENoYW5nZWQoRWxlbWVudCop
IGNvbnN0OwogICAgIHZvaWQgZm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSopIGNvbnN0OwogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lKiwgY29uc3QgRnJhbWVM
b2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFjdGlv
biYpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFBhZ2UqIGNyZWF0ZVdpbmRvdyhGcmFtZSYs
IGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IE5h
dmlnYXRpb25BY3Rpb24mKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNob3coKSBj
b25zdDsKIAogICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBjb25zdDsKQEAgLTEzMiwyNiArMTMyLDI2
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFJlc2l6YWJsZShib29sKSBjb25zdDsKIAogICAgIGJv
b2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCk7Ci0gICAgYm9vbCBydW5CZWZvcmVV
bmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSopOworICAgIGJv
b2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJh
bWUmKTsKIAogICAgIHZvaWQgY2xvc2VXaW5kb3dTb29uKCk7CiAKLSAgICB2b2lkIHJ1bkphdmFT
Y3JpcHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmluZyYpOwotICAgIGJvb2wgcnVuSmF2YVNjcmlw
dENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmKTsKLSAgICBib29sIHJ1bkphdmFTY3JpcHRQ
cm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVs
dFZhbHVlLCBTdHJpbmcmIHJlc3VsdCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTdGF0
dXNiYXJUZXh0KEZyYW1lKiwgY29uc3QgU3RyaW5nJik7CisgICAgdm9pZCBydW5KYXZhU2NyaXB0
QWxlcnQoRnJhbWUmLCBjb25zdCBTdHJpbmcmKTsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25m
aXJtKEZyYW1lJiwgY29uc3QgU3RyaW5nJik7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0
KEZyYW1lJiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1
ZSwgU3RyaW5nJiByZXN1bHQpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U3RhdHVzYmFy
VGV4dChGcmFtZSYsIGNvbnN0IFN0cmluZyYpOwogCiAgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVy
RWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7CiAK
ICAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYpOwogCi0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBwcmludChGcmFtZSopOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJp
bnQoRnJhbWUmKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5hYmxlU3VkZGVuVGVybWlu
YXRpb24oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGRpc2FibGVTdWRkZW5UZXJtaW5hdGlv
bigpOwogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgc3RkOjp1bmlxdWVfcHRy
PENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCosIGNv
bnN0IENvbG9yJiBpbml0aWFsQ29sb3IpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29z
ZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYg
aW5pdGlhbENvbG9yKTsKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBG
aWxlQ2hvb3NlciYpOwpAQCAtMTY4LDI4ICsxNjgsMjggQEAgcHVibGljOgogICAgIGJvb2wgc2Vs
ZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKTsKICAgICBib29sIHNlbGVjdEl0ZW1B
bGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKICAgICBib29sIGhhc09wZW5l
ZFBvcHVwKCkgY29uc3Q7Ci0gICAgUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBv
cHVwTWVudUNsaWVudCopIGNvbnN0OwotICAgIFJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNyZWF0
ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdDsKKyAgICBSZWZQdHI8UG9w
dXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JikgY29uc3Q7CisgICAgUmVm
UHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCYpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oSU9TKQogICAgIC8vIEZJWE1FOiBDYW4gd2UgY29t
ZSB1cCB3aXRoIGEgYmV0dGVyIG5hbWUgZm9yIHRoaXMgc2V0dGVyPwogICAgIHZvaWQgc2V0RGlz
cGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkKGJvb2wgZGlzcGF0Y2hWaWV3cG9y
dERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkKSB7IG1faXNEaXNwYXRjaFZpZXdwb3J0RGF0YURpZENo
YW5nZVN1cHByZXNzZWQgPSBkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZVN1cHByZXNzZWQ7
IH0KLQotICAgIHZvaWQgZGlkUmVjZWl2ZURvY1R5cGUoRnJhbWUqKTsKICNlbmRpZgogCi0gICAg
dm9pZCByZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyKik7
Ci0gICAgdm9pZCB1bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2Jz
ZXJ2ZXIqKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVEb2NUeXBlKEZyYW1lJik7CisKKyAgICB2b2lk
IHJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXImKTsKKyAg
ICB2b2lkIHVucmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZl
ciYpOwogCiBwcml2YXRlOgogICAgIHZvaWQgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCkg
Y29uc3Q7CiAKICAgICBQYWdlJiBtX3BhZ2U7CiAgICAgQ2hyb21lQ2xpZW50JiBtX2NsaWVudDsK
LSAgICBQbGF0Zm9ybURpc3BsYXlJRCBtX2Rpc3BsYXlJRDsKKyAgICBQbGF0Zm9ybURpc3BsYXlJ
RCBtX2Rpc3BsYXlJRCB7IDAgfTsKICAgICBWZWN0b3I8UG9wdXBPcGVuaW5nT2JzZXJ2ZXIqPiBt
X3BvcHVwT3BlbmluZ09ic2VydmVyczsKICNpZiBQTEFURk9STShJT1MpCi0gICAgYm9vbCBtX2lz
RGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VTdXBwcmVzc2VkOworICAgIGJvb2wgbV9pc0Rp
c3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlU3VwcHJlc3NlZCB7IGZhbHNlIH07CiAjZW5kaWYK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDJjODliNmNiYTUwNjgwYjk3
MmRjNTVmYzRiMjRjNDg5MGZhZWI4MjQuLjhhMTYzOTFmYmI4NmJjY2I3NGZmZTVjNDFmZjVhNTg2
NmNlN2VhNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTIzLDcgKzEyMyw3
IEBAIHB1YmxpYzoKICAgICAvLyBjcmVhdGVkIFBhZ2UgaGFzIGl0cyBzaG93IG1ldGhvZCBjYWxs
ZWQuCiAgICAgLy8gVGhlIEZyYW1lTG9hZFJlcXVlc3QgcGFyYW1ldGVyIGlzIG9ubHkgZm9yIENo
cm9tZUNsaWVudCB0byBjaGVjayBpZiB0aGUKICAgICAvLyByZXF1ZXN0IGNvdWxkIGJlIGZ1bGZp
bGxlZC4gVGhlIENocm9tZUNsaWVudCBzaG91bGQgbm90IGxvYWQgdGhlIHJlcXVlc3QuCi0gICAg
dmlydHVhbCBQYWdlKiBjcmVhdGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0
JiwgY29uc3QgV2luZG93RmVhdHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikgPSAwOwor
ICAgIHZpcnR1YWwgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lJiwgY29uc3QgRnJhbWVMb2FkUmVx
dWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2hvdygpID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5S
dW5Nb2RhbCgpID0gMDsKQEAgLTE0Niw2MyArMTQ2LDY3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShNZXNzYWdlU291cmNlLCBNZXNzYWdlTGV2ZWwsIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1u
TnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZUlEKSA9IDA7CiAKICAgICB2aXJ0dWFsIGJvb2wg
Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBy
dW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSop
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2VX
aW5kb3dTb29uKCkgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChG
cmFtZSosIGNvbnN0IFN0cmluZyYpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlw
dENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIHJ1
bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmLCBjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmly
dHVhbCBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiwgY29uc3QgU3RyaW5nJikgPSAw
OworICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBTdHJpbmcmKSA9
IDA7CiAgICAgdmlydHVhbCBLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpID0gMDsKIAot
ICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgogICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c0ltbWVkaWF0ZUludmFsaWRhdGlvbigpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVh
bCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0
IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwg
Y29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKSA9IDA7CisKICNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1MpCiAgICAgdmlydHVhbCB2b2lkIGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChj
b25zdCBJbnRQb2ludCYpID0gMDsKICNlbmRpZgorCiAgICAgdmlydHVhbCBJbnRQb2ludCBzY3Jl
ZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JikgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgSW50
UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmKSBjb25zdCA9IDA7CisKICNpZiBQ
TEFURk9STShJT1MpCiAgICAgdmlydHVhbCBJbnRQb2ludCBhY2Nlc3NpYmlsaXR5U2NyZWVuVG9S
b290Vmlldyhjb25zdCBJbnRQb2ludCYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIEludFJlY3Qg
cm9vdFZpZXdUb0FjY2Vzc2liaWxpdHlTY3JlZW4oY29uc3QgSW50UmVjdCYpIGNvbnN0ID0gMDsK
ICNlbmRpZiAgICAKKwogICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFn
ZUNsaWVudCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRD
aGFuZ2UoKSBjb25zdCA9IDA7CisKICNpZiBFTkFCTEUoQ1VSU09SX1NVUFBPUlQpCiAgICAgdmly
dHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSA9IDA7CiAjZW5kaWYKKwogI2lm
ICFVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfVElNRVIpCiAgICAgdmlydHVhbCB2b2lkIHNj
aGVkdWxlQW5pbWF0aW9uKCkgPSAwOwogI2VuZGlmCi0gICAgLy8gRW5kIG1ldGhvZHMgdXNlZCBi
eSBIb3N0V2luZG93LgogCi0gICAgdmlydHVhbCBGbG9hdFNpemUgc2NyZWVuU2l6ZSgpIGNvbnN0
IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Q2hyb21lQ2xpZW50Kj4odGhpcyktPndpbmRvd1JlY3QoKS5z
aXplKCk7IH0KLSAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBhdmFpbGFibGVTY3JlZW5TaXplKCkgY29u
c3QgeyByZXR1cm4gY29uc3RfY2FzdDxDaHJvbWVDbGllbnQqPih0aGlzKS0+d2luZG93UmVjdCgp
LnNpemUoKTsgfQorICAgIHZpcnR1YWwgRmxvYXRTaXplIHNjcmVlblNpemUoKSBjb25zdCB7IHJl
dHVybiBjb25zdF9jYXN0PENocm9tZUNsaWVudCY+KCp0aGlzKS53aW5kb3dSZWN0KCkuc2l6ZSgp
OyB9CisgICAgdmlydHVhbCBGbG9hdFNpemUgYXZhaWxhYmxlU2NyZWVuU2l6ZSgpIGNvbnN0IHsg
cmV0dXJuIGNvbnN0X2Nhc3Q8Q2hyb21lQ2xpZW50Jj4oKnRoaXMpLndpbmRvd1JlY3QoKS5zaXpl
KCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENo
YW5nZShjb25zdCBWaWV3cG9ydEFyZ3VtZW50cyYpIGNvbnN0IHsgfQogCi0gICAgdmlydHVhbCB2
b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJbnRTaXplJikgY29uc3QgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiwgY29uc3QgSW50
U2l6ZSYpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNv
bnN0IEludFJlY3QmKSBjb25zdCB7IH07IC8vIEN1cnJlbnRseSBvbmx5IE1hYyBoYXMgYSBub24g
ZW1wdHkgaW1wbGVtZW50YXRpb24uCiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVW5hdmFpbGFi
bGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZh
aWxhYmlsaXR5UmVhc29uKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9p
ZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCosIFJlbmRlckVtYmVkZGVk
T2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgeyB9CisgICAgdmlydHVh
bCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50JiwgUmVuZGVyRW1i
ZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYs
IHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRUb29s
VGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rpb24pID0gMDsKIAotICAgIHZpcnR1YWwgdm9p
ZCBwcmludChGcmFtZSopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUmKSA9IDA7
CiAKICAgICB2aXJ0dWFsIENvbG9yIHVuZGVybGF5Q29sb3IoKSBjb25zdCB7IHJldHVybiBDb2xv
cigpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yRGlk
Q2hhbmdlKENvbG9yKSBjb25zdCB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBleGNlZWRlZERhdGFi
YXNlUXVvdGEoRnJhbWUqLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRh
aWxzKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSYs
IGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMpID0gMDsKIAogICAg
IC8vIENhbGxiYWNrIGludm9rZWQgd2hlbiB0aGUgYXBwbGljYXRpb24gY2FjaGUgZmFpbHMgdG8g
c2F2ZSBhIGNhY2hlIG9iamVjdAogICAgIC8vIGJlY2F1c2Ugc3RvcmluZyBpdCB3b3VsZCBncm93
IHRoZSBkYXRhYmFzZSBmaWxlIHBhc3QgaXRzIGRlZmluZWQgbWF4aW11bQpAQCAtMjE5LDcgKzIy
Myw3IEBAIHB1YmxpYzoKICAgICAvLyBzdG9yYWdlLCBpbiBieXRlcywgbmVlZGVkIHRvIHN0b3Jl
IHRoZSBuZXcgY2FjaGUgYWxvbmcgd2l0aCBhbGwgb2YgdGhlCiAgICAgLy8gb3RoZXIgZXhpc3Rp
bmcgY2FjaGVzIGZvciB0aGUgb3JpZ2luIHRoYXQgd291bGQgbm90IGJlIHJlcGxhY2VkIGJ5CiAg
ICAgLy8gdGhlIG5ldyBjYWNoZS4KLSAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90YWxTcGFjZU5lZWRl
ZCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1
b3RhKFNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSA9IDA7CiAKICNp
ZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgdmlydHVhbCB2b2lkIGFubm90YXRlZFJl
Z2lvbnNDaGFuZ2VkKCk7CkBAIC0yMzYsMTAgKzI0MCwxMCBAQCBwdWJsaWM6CiAKICNpZiBQTEFU
Rk9STShJT1MpCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKEZyYW1l
KiwgYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoRnJh
bWUqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhG
cmFtZSopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNj
cm9sbGluZ0ZyYW1lKEZyYW1lKikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc1Njcm9s
bE5vdGlmaWNhdGlvbnMoRnJhbWUmLCBib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIG9ic2Vy
dmVkQ29udGVudENoYW5nZShGcmFtZSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDb250
ZW50Q2hhbmdlT2JzZXJ2ZXJzKEZyYW1lJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBub3RpZnlS
ZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoRnJhbWUmKSA9IDA7CiAKICAgICBlbnVt
IExheW91dFR5cGUgeyBOb3JtYWxMYXlvdXQsIFNjcm9sbCB9OwogICAgIHZpcnR1YWwgdm9pZCBk
aWRMYXlvdXQoTGF5b3V0VHlwZSA9IE5vcm1hbExheW91dCkgPSAwOwpAQCAtMjcwLDE2ICsyNzQs
MTYgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAg
ICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3Nl
cihDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBDb2xvciYpID0gMDsKKyAgICB2aXJ0dWFsIHN0
ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29z
ZXJDbGllbnQmLCBjb25zdCBDb2xvciYpID0gMDsKICNlbmRpZgogCiAgICAgdmlydHVhbCB2b2lk
IHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJikgPSAwOwogICAgIC8vIEFzeW5jaHJv
bm91cyByZXF1ZXN0IHRvIGxvYWQgYW4gaWNvbiBmb3Igc3BlY2lmaWVkIGZpbGVuYW1lcy4KICAg
ICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYsIEZp
bGVJY29uTG9hZGVyJikgPSAwOwogICAgICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgZWxlbWVudERp
ZEZvY3VzKGNvbnN0IE5vZGUqKSB7IH07Ci0gICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVy
KGNvbnN0IE5vZGUqKSB7IH07Ci0gICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRSZWZvY3VzKGNv
bnN0IE5vZGUqKSB7IH07CisgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRGb2N1cyhFbGVtZW50
JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGVsZW1lbnREaWRCbHVyKEVsZW1lbnQmKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZFJlZm9jdXMoRWxlbWVudCYpIHsgfQogICAgIAogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRQYWludEVudGlyZUNvbnRlbnRzKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaGFzU3RhYmxlUGFnZVNjYWxlRmFjdG9yKCkgY29u
c3QgeyByZXR1cm4gdHJ1ZTsgfQpAQCAtMjkxLDkgKzI5NSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9u
aXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlm
CiAKLSAgICAvLyBQYXNzIDAgYXMgdGhlIEdyYXBoaWNzTGF5ZXIgdG8gZGV0YXRjaCB0aGUgcm9v
dCBsYXllci4KLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUq
LCBHcmFwaGljc0xheWVyKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hWaWV3T3Zlcmxh
eUdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKikgPSAwOworICAgIC8vIFBhc3Mg
bnVsbHB0ciBhcyB0aGUgR3JhcGhpY3NMYXllciB0byBkZXRhdGNoIHRoZSByb290IGxheWVyLgor
ICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNz
TGF5ZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NM
YXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSA9IDA7CiAgICAgLy8gU2V0cyBhIGZsYWcgdG8g
c3BlY2lmeSB0aGF0IHRoZSBuZXh0IHRpbWUgY29udGVudCBpcyBkcmF3biB0byB0aGUgd2luZG93
LAogICAgIC8vIHRoZSBjaGFuZ2VzIGFwcGVhciBvbiB0aGUgc2NyZWVuIGluIHN5bmNocm9ueSB3
aXRoIHVwZGF0ZXMgdG8gR3JhcGhpY3NMYXllcnMuCiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRz
T25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSA9IDA7CkBAIC0zMjUsMjYgKzMyOSwyOCBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgYWRqdXN0TGF5ZXJGbHVzaFRocm90dGxpbmco
TGF5ZXJGbHVzaFRocm90dGxlU3RhdGU6OkZsYWdzKSB7IHJldHVybiBmYWxzZTsgfQogCi0gICAg
dmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdD
b29yZGluYXRvcihQYWdlKikgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwg
UmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihQ
YWdlJikgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogCiAjaWYgUExBVEZPUk0oV0lOKSAmJiBV
U0UoQVZGT1VOREFUSU9OKQotICAgIHZpcnR1YWwgR3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBncmFw
aGljc0RldmljZUFkYXB0ZXIoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBHcmFw
aGljc0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2aWNlQWRhcHRlcigpIGNvbnN0IHsgcmV0dXJu
IG51bGxwdHI7IH0KICNlbmRpZgogCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzVmlkZW9GdWxs
c2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgeyByZXR1
cm4gZmFsc2U7IH0KKwogI2lmIEVOQUJMRShWSURFTykKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJW
aWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYsIEhUTUxNZWRp
YUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgeyB9CiAgICAgdmlydHVhbCB2b2lk
IHNldFVwUGxheWJhY2tDb250cm9sc01hbmFnZXIoSFRNTE1lZGlhRWxlbWVudCYpIHsgfQogICAg
IHZpcnR1YWwgdm9pZCBjbGVhclBsYXliYWNrQ29udHJvbHNNYW5hZ2VyKCkgeyB9CiAjZW5kaWYK
LSAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJD
b3JlOjpIVE1MVmlkZW9FbGVtZW50JikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1
bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQm
LCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUgLyp0YXJnZXRNb2Rl
Ki8pIHsgfQorCisgICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBleGl0VmlkZW9G
dWxsc2NyZWVuVG9Nb2RlV2l0aG91dEFuaW1hdGlvbihIVE1MVmlkZW9FbGVtZW50JiwgSFRNTE1l
ZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSB7IH0KICAgICB2aXJ0dWFsIGJv
b2wgcmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpIHsgcmV0dXJuIGZhbHNlOyB9
IAogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0
c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQqLCBib29sKSB7IHJldHVybiBmYWxz
ZTsgfQotICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQq
KSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQq
KSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25z
dCBFbGVtZW50JiwgYm9vbCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZW50
ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGV4
aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNl
dFJvb3RGdWxsU2NyZWVuTGF5ZXIoR3JhcGhpY3NMYXllciopIHsgfQogI2VuZGlmCiAKQEAgLTM1
Myw3ICszNTksNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAg
IHZpcnR1YWwgTlNSZXNwb25kZXIgKmZpcnN0UmVzcG9uZGVyKCkgeyByZXR1cm4gMDsgfQorICAg
IHZpcnR1YWwgTlNSZXNwb25kZXIgKmZpcnN0UmVzcG9uZGVyKCkgeyByZXR1cm4gbnVsbHB0cjsg
fQogICAgIHZpcnR1YWwgdm9pZCBtYWtlRmlyc3RSZXNwb25kZXIoTlNSZXNwb25kZXIgKikgeyB9
CiAgICAgLy8gRm9jdXNlcyBvbiB0aGUgY29udGFpbmluZyB2aWV3IGFzc29jaWF0ZWQgd2l0aCB0
aGlzIHBhZ2UuCiAgICAgdmlydHVhbCB2b2lkIG1ha2VGaXJzdFJlc3BvbmRlcigpIHsgfQpAQCAt
Mzc3LDEwICszODMsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxp
Z25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgPSAwOwogICAgIC8vIENoZWNrcyBp
ZiB0aGVyZSBpcyBhbiBvcGVuZWQgcG9wdXAsIGNhbGxlZCBieSBSZW5kZXJNZW51TGlzdDo6c2hv
d1BvcHVwKCkuCiAgICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3QgPSAwOwot
ICAgIHZpcnR1YWwgUmVmUHRyPFBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCopIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IGNy
ZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqKSBjb25zdCA9IDA7CisgICAgdmly
dHVhbCBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50Jikg
Y29uc3QgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2Vh
cmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0ID0gMDsKIAotICAgIHZpcnR1YWwg
dm9pZCBwb3N0QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0Kiwg
QVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBwb3N0
QWNjZXNzaWJpbGl0eU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0JiwgQVhPYmplY3RD
YWNoZTo6QVhOb3RpZmljYXRpb24pIHsgfQogCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeVNjcm9s
bGVyVGh1bWJJc1Zpc2libGVJblJlY3QoY29uc3QgSW50UmVjdCYpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKFNjcm9sbGJhclN0eWxlKSB7
IH0KQEAgLTQwOCwxNiArNDE0LDE2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkQXNz
b2NpYXRlRm9ybUNvbnRyb2xzKGNvbnN0IFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+JikgeyB9Owog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGROb3RpZnlPbkZvcm1DaGFuZ2VzKCkgeyByZXR1cm4gZmFs
c2U7IH07CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkSGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXll
ciopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRGb290ZXJMYXllcihHcmFwaGljc0xheWVy
KikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZEFkZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5ZXIm
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkQWRkRm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciYp
IHsgfQogCi0gICAgdmlydHVhbCBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmll
dyhjb25zdCBGcmFtZVZpZXcqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3Jikg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdNZWRp
YURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MsIHVpbnQ2NF90KSB7IH0K
IAogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIHZpcnR1YWwgdm9pZCBoYXNNZWRpYVNl
c3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50c0RpZENoYW5nZShib29sKSB7IH0KLSAgICB2aXJ0
dWFsIHZvaWQgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6TWVk
aWFTZXNzaW9uTWV0YWRhdGEmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgbWVkaWFTZXNzaW9uTWV0
YWRhdGFEaWRDaGFuZ2UoY29uc3QgTWVkaWFTZXNzaW9uTWV0YWRhdGEmKSB7IH0KICAgICB2aXJ0
dWFsIHZvaWQgZm9jdXNlZENvbnRlbnRNZWRpYUVsZW1lbnREaWRDaGFuZ2UodWludDY0X3QpIHsg
fQogI2VuZGlmCiAKQEAgLTQyNywxMSArNDMzLDEyIEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYg
RU5BQkxFKFRFTEVQSE9ORV9OVU1CRVJfREVURUNUSU9OKSAmJiBQTEFURk9STShNQUMpCi0gICAg
dmlydHVhbCB2b2lkIGhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGNvbnN0IFN0cmluZyYsIGNv
bnN0IFdlYkNvcmU6OkludFBvaW50JikgeyB9CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZVRlbGVw
aG9uZU51bWJlckNsaWNrKGNvbnN0IFN0cmluZyYsIGNvbnN0IEludFBvaW50JikgeyB9CiAjZW5k
aWYKKwogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotICAgIHZpcnR1YWwgdm9pZCBoYW5k
bGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2soV2ViQ29yZTo6RnJhbWVTZWxlY3Rpb24mLCBjb25zdCBW
ZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgeyB9Ci0gICAgdmlydHVh
bCBib29sIGhhc1JlbGV2YW50U2VsZWN0aW9uU2VydmljZXMoYm9vbCAvKiBpc1RleHRPbmx5ICov
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVTZWxlY3Rp
b25TZXJ2aWNlQ2xpY2soRnJhbWVTZWxlY3Rpb24mLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNv
bnN0IEludFBvaW50JikgeyB9CisgICAgdmlydHVhbCBib29sIGhhc1JlbGV2YW50U2VsZWN0aW9u
U2VydmljZXMoYm9vbCAvKmlzVGV4dE9ubHkqLykgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNl
bmRpZgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZERpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50
cygpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KQEAgLTQ0MSwxMyArNDQ4LDEzIEBAIHB1YmxpYzoK
ICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogICAgIHZpcnR1YWwgdm9pZCBh
ZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCAvKmNvbnRleHRJZCovKSB7IH0K
ICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlUGxheWJhY2tUYXJnZXRQaWNrZXJDbGllbnQodWludDY0
X3QgLypjb250ZXh0SWQqLykgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1Rhcmdl
dFBpY2tlcih1aW50NjRfdCAvKmNvbnRleHRJZCovLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYs
IGJvb2wgLyogaXNWaWRlbyAqLykgeyB9CisgICAgdmlydHVhbCB2b2lkIHNob3dQbGF5YmFja1Rh
cmdldFBpY2tlcih1aW50NjRfdCAvKmNvbnRleHRJZCovLCBjb25zdCBJbnRQb2ludCYsIGJvb2wg
Lyppc1ZpZGVvKi8pIHsgfQogICAgIHZpcnR1YWwgdm9pZCBwbGF5YmFja1RhcmdldFBpY2tlckNs
aWVudFN0YXRlRGlkQ2hhbmdlKHVpbnQ2NF90IC8qY29udGV4dElkKi8sIE1lZGlhUHJvZHVjZXI6
Ok1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldE1vY2tNZWRpYVBsYXli
YWNrVGFyZ2V0UGlja2VyRW5hYmxlZChib29sKSAgeyB9Ci0gICAgdmlydHVhbCB2b2lkIHNldE1v
Y2tNZWRpYVBsYXliYWNrVGFyZ2V0UGlja2VyU3RhdGUoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6
TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0YXRlKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
c2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJTdGF0ZShjb25zdCBTdHJpbmcmLCBNZWRp
YVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6U3RhdGUpIHsgfQogI2VuZGlmCiAKLSAgICB2aXJ0dWFs
IHZvaWQgaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRT
aXplJikgeyB9CisgICAgdmlydHVhbCB2b2lkIGltYWdlT3JNZWRpYURvY3VtZW50U2l6ZUNoYW5n
ZWQoY29uc3QgSW50U2l6ZSYpIHsgfQogCiAjaWYgRU5BQkxFKFZJREVPKSAmJiBVU0UoR1NUUkVB
TUVSKQogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMo
Y29uc3QgU3RyaW5nJiAvKmRldGFpbHMqLywgY29uc3QgU3RyaW5nJiAvKmRlc2NyaXB0aW9uKi8s
IE1lZGlhUGxheWVyUmVxdWVzdEluc3RhbGxNaXNzaW5nUGx1Z2luc0NhbGxiYWNrJikgeyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKaW5kZXggMGU3
YTc3YjZkYTI4OWEwMjU2OTM1MzRhZDFmYzRkNTEwOWM1MGYzMy4uYzFjNDk0ODQwMjgzODQ5ZjE1
MmJiMjc0NWY4YTFiNDYwNmVlZDNlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4
dE1lbnVDb250cm9sbGVyLmNwcApAQCAtOTQsNyArOTQsNyBAQCB2b2lkIENvbnRleHRNZW51Q29u
dHJvbGxlcjo6Y2xlYXJDb250ZXh0TWVudSgpCiAgICAgbV9tZW51UHJvdmlkZXIgPSBudWxscHRy
OwogfQogCi12b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6aGFuZGxlQ29udGV4dE1lbnVFdmVu
dChFdmVudCogZXZlbnQpCit2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6aGFuZGxlQ29udGV4
dE1lbnVFdmVudChFdmVudCYgZXZlbnQpCiB7CiAgICAgbV9jb250ZXh0TWVudSA9IG1heWJlQ3Jl
YXRlQ29udGV4dE1lbnUoZXZlbnQpOwogICAgIGlmICghbV9jb250ZXh0TWVudSkKQEAgLTExMCw5
ICsxMTAsOSBAQCBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51SXRlbT4gc2VwYXJh
dG9ySXRlbSgpCiAgICAgcmV0dXJuIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudUl0ZW0+KG5l
dyBDb250ZXh0TWVudUl0ZW0oU2VwYXJhdG9yVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnTm9BY3Rp
b24sIFN0cmluZygpKSk7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29u
dGV4dE1lbnUoRXZlbnQqIGV2ZW50LCBQYXNzUmVmUHRyPENvbnRleHRNZW51UHJvdmlkZXI+IG1l
bnVQcm92aWRlcikKK3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUo
RXZlbnQmIGV2ZW50LCBDb250ZXh0TWVudVByb3ZpZGVyJiBwcm92aWRlcikKIHsKLSAgICBtX21l
bnVQcm92aWRlciA9IG1lbnVQcm92aWRlcjsKKyAgICBtX21lbnVQcm92aWRlciA9ICZwcm92aWRl
cjsKIAogICAgIG1fY29udGV4dE1lbnUgPSBtYXliZUNyZWF0ZUNvbnRleHRNZW51KGV2ZW50KTsK
ICAgICBpZiAoIW1fY29udGV4dE1lbnUpIHsKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIENvbnRl
eHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50KiBldmVudCwgUGFzc1JlZlB0
cjxDb250ZXh0TWVudQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9tZW51UHJvdmlk
ZXItPnBvcHVsYXRlQ29udGV4dE1lbnUobV9jb250ZXh0TWVudS5nZXQoKSk7CisgICAgcHJvdmlk
ZXIucG9wdWxhdGVDb250ZXh0TWVudShtX2NvbnRleHRNZW51LmdldCgpKTsKICAgICBpZiAobV9j
b250ZXh0LmhpdFRlc3RSZXN1bHQoKS5pc1NlbGVjdGVkKCkpIHsKICAgICAgICAgYXBwZW5kSXRl
bSgqc2VwYXJhdG9ySXRlbSgpLCBtX2NvbnRleHRNZW51LmdldCgpKTsKICAgICAgICAgcG9wdWxh
dGUoKTsKQEAgLTEyOSwzMyArMTI5LDM0IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpz
aG93Q29udGV4dE1lbnUoRXZlbnQqIGV2ZW50LCBQYXNzUmVmUHRyPENvbnRleHRNZW51CiB9CiAK
ICNpZiBFTkFCTEUoU0VSVklDRV9DT05UUk9MUykKKwogc3RhdGljIEltYWdlKiBpbWFnZUZyb21J
bWFnZUVsZW1lbnROb2RlKE5vZGUmIG5vZGUpCiB7Ci0gICAgUmVuZGVyT2JqZWN0KiByZW5kZXJl
ciA9IG5vZGUucmVuZGVyZXIoKTsKKyAgICBhdXRvKiByZW5kZXJlciA9IG5vZGUucmVuZGVyZXIo
KTsKICAgICBpZiAoIWlzPFJlbmRlckltYWdlPihyZW5kZXJlcikpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwotICAgIENhY2hlZEltYWdlKiBpbWFnZSA9IGRvd25jYXN0PFJlbmRlckltYWdlPigq
cmVuZGVyZXIpLmNhY2hlZEltYWdlKCk7CisgICAgYXV0byogaW1hZ2UgPSBkb3duY2FzdDxSZW5k
ZXJJbWFnZT4oKnJlbmRlcmVyKS5jYWNoZWRJbWFnZSgpOwogICAgIGlmICghaW1hZ2UgfHwgaW1h
Z2UtPmVycm9yT2NjdXJyZWQoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KICAgICByZXR1
cm4gaW1hZ2UtPmltYWdlRm9yUmVuZGVyZXIocmVuZGVyZXIpOwogfQorCiAjZW5kaWYKIAotc3Rk
Ojp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3Jl
YXRlQ29udGV4dE1lbnUoRXZlbnQqIGV2ZW50KQorc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51
PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlQ29udGV4dE1lbnUoRXZlbnQmIGV2
ZW50KQogewotICAgIEFTU0VSVChldmVudCk7Ci0gICAgCi0gICAgaWYgKCFpczxNb3VzZUV2ZW50
PigqZXZlbnQpKQorICAgIGlmICghaXM8TW91c2VFdmVudD4oZXZlbnQpKQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKIAotICAgIE1vdXNlRXZlbnQmIG1vdXNlRXZlbnQgPSBkb3duY2FzdDxNb3Vz
ZUV2ZW50PigqZXZlbnQpOwotICAgIEhpdFRlc3RSZXN1bHQgcmVzdWx0KG1vdXNlRXZlbnQuYWJz
b2x1dGVMb2NhdGlvbigpKTsKKyAgICBhdXRvJiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VF
dmVudD4oZXZlbnQpOworICAgIGF1dG8qIG5vZGUgPSBtb3VzZUV2ZW50LnRhcmdldCgpLT50b05v
ZGUoKTsKKyAgICBpZiAoIW5vZGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGF1dG8q
IGZyYW1lID0gbm9kZS0+ZG9jdW1lbnQoKS5mcmFtZSgpOworICAgIGlmICghZnJhbWUpCisgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgTm9kZSogbm9kZSA9IGV2ZW50LT50YXJnZXQoKS0+
dG9Ob2RlKCk7Ci0gICAgaWYgKEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCkuZnJhbWUo
KSkKLSAgICAgICAgcmVzdWx0ID0gZnJhbWUtPmV2ZW50SGFuZGxlcigpLmhpdFRlc3RSZXN1bHRB
dFBvaW50KG1vdXNlRXZlbnQuYWJzb2x1dGVMb2NhdGlvbigpKTsKLSAgICAKKyAgICBhdXRvIHJl
c3VsdCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5oaXRUZXN0UmVzdWx0QXRQb2ludChtb3VzZUV2
ZW50LmFic29sdXRlTG9jYXRpb24oKSk7CiAgICAgaWYgKCFyZXN1bHQuaW5uZXJOb25TaGFyZWRO
b2RlKCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC0xNjMsNyArMTY0LDcgQEAgc3Rk
Ojp1bmlxdWVfcHRyPENvbnRleHRNZW51PiBDb250ZXh0TWVudUNvbnRyb2xsZXI6Om1heWJlQ3Jl
YXRlQ29udGV4dE1lbnUoRXZlbnQKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogICAg
IGlmIChub2RlLT5pc0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50KCkpIHsKLSAgICAgICAgaWYg
KEltYWdlKiBpbWFnZSA9IGltYWdlRnJvbUltYWdlRWxlbWVudE5vZGUoKnJlc3VsdC5pbm5lck5v
blNoYXJlZE5vZGUoKSkpCisgICAgICAgIGlmIChhdXRvKiBpbWFnZSA9IGltYWdlRnJvbUltYWdl
RWxlbWVudE5vZGUoKnJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSkpCiAgICAgICAgICAgICBt
X2NvbnRleHQuc2V0Q29udHJvbGxlZEltYWdlKGltYWdlKTsKIAogICAgICAgICAvLyBGSVhNRTog
SWYgd2UgY291bGRuJ3QgZ2V0IHRoZSBpbWFnZSB0aGVuIHdlIHNob3VsZG4ndCB0cnkgdG8gc2hv
dyB0aGUgaW1hZ2UgY29udHJvbHMgbWVudSBmb3IgaXQuCkBAIC0xNzEsMjQgKzE3MiwyNCBAQCBz
dGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IENvbnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVD
cmVhdGVDb250ZXh0TWVudShFdmVudAogICAgIH0KICNlbmRpZgogCi0gICAgcmV0dXJuIHN0ZDo6
dW5pcXVlX3B0cjxDb250ZXh0TWVudT4obmV3IENvbnRleHRNZW51KTsKKyAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxDb250ZXh0TWVudT4oKTsKIH0KIAotdm9pZCBDb250ZXh0TWVudUNvbnRy
b2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCogZXZlbnQpCit2b2lkIENvbnRleHRNZW51Q29u
dHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50JiBldmVudCkKIHsKICAgICBpZiAobV9wYWdl
Lmluc3BlY3RvckNvbnRyb2xsZXIoKS5lbmFibGVkKCkpCiAgICAgICAgIGFkZEluc3BlY3RFbGVt
ZW50SXRlbSgpOwogCi0gICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgZXZlbnQu
c2V0RGVmYXVsdEhhbmRsZWQoKTsKIH0KIAotc3RhdGljIHZvaWQgb3Blbk5ld1dpbmRvdyhjb25z
dCBVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpCitzdGF0aWMgdm9pZCBvcGVuTmV3V2lu
ZG93KGNvbnN0IFVSTCYgdXJsVG9Mb2FkLCBGcmFtZSYgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5h
bFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSkKIHsKLSAgICBQYWdlKiBv
bGRQYWdlID0gZnJhbWUtPnBhZ2UoKTsKKyAgICBQYWdlKiBvbGRQYWdlID0gZnJhbWUucGFnZSgp
OwogICAgIGlmICghb2xkUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRnJhbWVMb2FkUmVx
dWVzdCByZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJj
ZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFtZS0+bG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigpKSwg
TG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJy
ZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGlj
eTo6U3VwcHJlc3MsIHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOworICAgIEZyYW1lTG9h
ZFJlcXVlc3QgcmVxdWVzdChmcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNv
dXJjZVJlcXVlc3QodXJsVG9Mb2FkLCBmcmFtZS5sb2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkp
LCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZl
cnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9s
aWN5OjpTdXBwcmVzcywgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CiAKICAgICBQYWdl
KiBuZXdQYWdlID0gb2xkUGFnZS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KGZyYW1lLCByZXF1ZXN0
LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QucmVzb3VyY2VSZXF1
ZXN0KCkpKTsKICAgICBpZiAoIW5ld1BhZ2UpCkBAIC0xOTgsMTUgKzE5OSwxNyBAQCBzdGF0aWMg
dm9pZCBvcGVuTmV3V2luZG93KGNvbnN0IFVSTCYgdXJsVG9Mb2FkLCBGcmFtZSogZnJhbWUsIFNo
b3VsZE9wZW5FeHRlcm5hbAogfQogCiAjaWYgUExBVEZPUk0oR1RLKQotc3RhdGljIHZvaWQgaW5z
ZXJ0VW5pY29kZUNoYXJhY3RlcihVQ2hhciBjaGFyYWN0ZXIsIEZyYW1lKiBmcmFtZSkKKworc3Rh
dGljIHZvaWQgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihVQ2hhciBjaGFyYWN0ZXIsIEZyYW1lJiBm
cmFtZSkKIHsKICAgICBTdHJpbmcgdGV4dCgmY2hhcmFjdGVyLCAxKTsKLSAgICBpZiAoIWZyYW1l
LT5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KHRleHQsIGZyYW1lLT5zZWxlY3Rpb24oKS50b05v
cm1hbGl6ZWRSYW5nZSgpLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OlR5cGVkKSkKKyAgICBp
ZiAoIWZyYW1lLmVkaXRvcigpLnNob3VsZEluc2VydFRleHQodGV4dCwgZnJhbWUuc2VsZWN0aW9u
KCkudG9Ob3JtYWxpemVkUmFuZ2UoKS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uOjpUeXBlZCkp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVChmcmFtZS0+ZG9jdW1lbnQoKSk7Ci0gICAg
VHlwaW5nQ29tbWFuZDo6aW5zZXJ0VGV4dCgqZnJhbWUtPmRvY3VtZW50KCksIHRleHQsIDAsIFR5
cGluZ0NvbW1hbmQ6OlRleHRDb21wb3NpdGlvbk5vbmUpOworICAgIEFTU0VSVChmcmFtZS5kb2N1
bWVudCgpKTsKKyAgICBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KCpmcmFtZS5kb2N1bWVudCgp
LCB0ZXh0LCAwLCBUeXBpbmdDb21tYW5kOjpUZXh0Q29tcG9zaXRpb25Ob25lKTsKIH0KKwogI2Vu
ZGlmCiAKIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3Rl
ZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUpCkBAIC0yMjUs
NyArMjI4LDcgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNl
bGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KIAogICAgIHN3aXRjaCAoYWN0aW9u
KSB7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93OgotICAg
ICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5r
VVJMKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxvd0V4
dGVybmFsU2NoZW1lcyk7CisgICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RS
ZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxz
UG9saWN5OjpTaG91bGRBbGxvd0V4dGVybmFsU2NoZW1lcyk7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrOgogICAgICAgICAvLyBG
SVhNRTogU29tZSBkYXkgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZG8gdGhpcyBmcm9tIHdpdGhpbiBX
ZWJDb3JlLiAoQnVnIDExNzcwOSkKQEAgLTIzNSw3ICsyMzgsNyBAQCB2b2lkIENvbnRleHRNZW51
Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0
aW9uLCBjbwogICAgICAgICBmcmFtZS0+ZWRpdG9yKCkuY29weVVSTChtX2NvbnRleHQuaGl0VGVz
dFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLnRl
eHRDb250ZW50KCkpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z09wZW5JbWFnZUluTmV3V2luZG93OgotICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5o
aXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVJbWFnZVVSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOworICAgICAgICBvcGVuTmV3V2luZG93KG1f
Y29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVJbWFnZVVSTCgpLCAqZnJhbWUsIFNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrOgogICAgICAg
ICAvLyBGSVhNRTogU29tZSBkYXkgd2Ugc2hvdWxkIGJlIGFibGUgdG8gZG8gdGhpcyBmcm9tIHdp
dGhpbiBXZWJDb3JlLiAoQnVnIDExNzcwOSkKQEAgLTI1Miw3ICsyNTUsNyBAQCB2b2lkIENvbnRl
eHRNZW51Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rp
b24gYWN0aW9uLCBjbwogICAgICAgICBicmVhazsKICNlbmRpZgogICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3c6Ci0gICAgICAgIG9wZW5OZXdXaW5kb3cobV9j
b250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZU1lZGlhVVJMKCksIGZyYW1lLCBTaG91bGRP
cGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgICAgIG9wZW5OZXdX
aW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZU1lZGlhVVJMKCksICpmcmFt
ZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkTWVkaWFUb0Rpc2s6
CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIGRheSB3ZSBzaG91bGQgYmUgYWJsZSB0byBkbyB0aGlz
IGZyb20gd2l0aGluIFdlYkNvcmUuIChCdWcgMTE3NzA5KQpAQCAtMjg1LDkgKzI4OCw5IEBAIHZv
aWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0
TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJh
bWVJbk5ld1dpbmRvdzogewogICAgICAgICBEb2N1bWVudExvYWRlciogbG9hZGVyID0gZnJhbWUt
PmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCk7CiAgICAgICAgIGlmICghbG9hZGVyLT51bnJlYWNo
YWJsZVVSTCgpLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG9wZW5OZXdXaW5kb3cobG9hZGVyLT51
bnJlYWNoYWJsZVVSTCgpLCBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hv
dWxkTm90QWxsb3cpOworICAgICAgICAgICAgb3Blbk5ld1dpbmRvdyhsb2FkZXItPnVucmVhY2hh
YmxlVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90
QWxsb3cpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBvcGVuTmV3V2luZG93KGxvYWRlci0+
dXJsKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxv
dyk7CisgICAgICAgICAgICBvcGVuTmV3V2luZG93KGxvYWRlci0+dXJsKCksICpmcmFtZSwgU2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogICAgICAgICBicmVh
azsKICAgICB9CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5OgpAQCAtMzE4LDM0ICsz
MjEsMzQgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVj
dGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KICAgICAgICAgZnJhbWUtPmVkaXRvcigp
LnBlcmZvcm1EZWxldGUoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdVbmljb2RlSW5zZXJ0TFJNTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rl
cihsZWZ0VG9SaWdodE1hcmssIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rl
cihsZWZ0VG9SaWdodE1hcmssICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29u
dGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydFJMTU1hcms6Ci0gICAgICAgIGluc2VydFVuaWNv
ZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRNYXJrLCBmcmFtZSk7CisgICAgICAgIGluc2VydFVuaWNv
ZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRNYXJrLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRMUkVNYXJrOgotICAgICAgICBp
bnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0RW1iZWQsIGZyYW1lKTsKKyAgICAgICAg
aW5zZXJ0VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9SaWdodEVtYmVkLCAqZnJhbWUpOwogICAgICAg
ICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRSTEVNYXJr
OgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHJpZ2h0VG9MZWZ0RW1iZWQsIGZyYW1l
KTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdodFRvTGVmdEVtYmVkLCAqZnJh
bWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJ
bnNlcnRMUk9NYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0
T3ZlcnJpZGUsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihsZWZ0VG9S
aWdodE92ZXJyaWRlLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRN
ZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRSTE9NYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hh
cmFjdGVyKHJpZ2h0VG9MZWZ0T3ZlcnJpZGUsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29k
ZUNoYXJhY3RlcihyaWdodFRvTGVmdE92ZXJyaWRlLCAqZnJhbWUpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRQREZNYXJrOgotICAgICAg
ICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHBvcERpcmVjdGlvbmFsRm9ybWF0dGluZywgZnJhbWUp
OworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHBvcERpcmVjdGlvbmFsRm9ybWF0dGlu
ZywgKmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdV
bmljb2RlSW5zZXJ0WldTTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rlcih6ZXJv
V2lkdGhTcGFjZSwgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHplcm9X
aWR0aFNwYWNlLCAqZnJhbWUpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51
SXRlbVRhZ1VuaWNvZGVJbnNlcnRaV0pNYXJrOgotICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFj
dGVyKHplcm9XaWR0aEpvaW5lciwgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFj
dGVyKHplcm9XaWR0aEpvaW5lciwgKmZyYW1lKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBD
b250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0WldOSk1hcms6Ci0gICAgICAgIGluc2VydFVu
aWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoTm9uSm9pbmVyLCBmcmFtZSk7CisgICAgICAgIGluc2Vy
dFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoTm9uSm9pbmVyLCAqZnJhbWUpOwogICAgICAgICBi
cmVhazsKICNlbmRpZgogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKQpAQCAtMzkz
LDcgKzM5Niw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1T
ZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgICAgIGlmIChGcmFtZSog
dGFyZ2V0RnJhbWUgPSBtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLnRhcmdldEZyYW1lKCkpCiAg
ICAgICAgICAgICB0YXJnZXRGcmFtZS0+bG9hZGVyKCkubG9hZEZyYW1lUmVxdWVzdChGcmFtZUxv
YWRSZXF1ZXN0KGZyYW1lLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLCBSZXNvdXJjZVJl
cXVlc3QobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgZnJhbWUt
PmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tG
b3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFs
aWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzLCB0YXJnZXRGcmFtZS0+
aXNNYWluRnJhbWUoKSA/IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93
IDogU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpLCBudWxscHRy
LCBudWxscHRyKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2Nv
bnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFtZSwgU2hvdWxkT3Bl
bkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3cpOworICAgICAgICAgICAgb3Blbk5ld1dp
bmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCAqZnJhbWUs
IFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93KTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdCb2xkOgogICAgICAgICBmcmFtZS0+ZWRp
dG9yKCkuY29tbWFuZCgiVG9nZ2xlQm9sZCIpLmV4ZWN1dGUoKTsKQEAgLTE0MjksMjYgKzE0MzIs
MzAgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNoZWNrT3JFbmFibGVJZk5lZWRlZChD
b250ZXh0TWVudUl0ZW0mIGl0ZW0pIGNvbnN0CiB9CiAKICNpZiBVU0UoQUNDRVNTSUJJTElUWV9D
T05URVhUX01FTlVTKQotdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVu
dUF0KEZyYW1lKiBmcmFtZSwgY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQpCisKK3ZvaWQgQ29u
dGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnVBdChGcmFtZSYgZnJhbWUsIGNvbnN0
IEludFBvaW50JiBjbGlja1BvaW50KQogewogICAgIGNsZWFyQ29udGV4dE1lbnUoKTsKICAgICAK
ICAgICAvLyBTaW11bGF0ZSBhIGNsaWNrIGluIHRoZSBtaWRkbGUgb2YgdGhlIGFjY2Vzc2liaWxp
dHkgb2JqZWN0LgogICAgIFBsYXRmb3JtTW91c2VFdmVudCBtb3VzZUV2ZW50KGNsaWNrUG9pbnQs
IGNsaWNrUG9pbnQsIFJpZ2h0QnV0dG9uLCBQbGF0Zm9ybUV2ZW50OjpNb3VzZVByZXNzZWQsIDEs
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBjdXJyZW50VGltZSgpLCBGb3JjZUF0Q2xpY2ss
IE5vVGFwKTsKLSAgICBmcmFtZS0+ZXZlbnRIYW5kbGVyKCkuaGFuZGxlTW91c2VQcmVzc0V2ZW50
KG1vdXNlRXZlbnQpOwotICAgIGJvb2wgaGFuZGxlZCA9IGZyYW1lLT5ldmVudEhhbmRsZXIoKS5z
ZW5kQ29udGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKKyAgICBmcmFtZS5ldmVudEhhbmRsZXIo
KS5oYW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VFdmVudCk7CisgICAgYm9vbCBoYW5kbGVkID0g
ZnJhbWUuZXZlbnRIYW5kbGVyKCkuc2VuZENvbnRleHRNZW51RXZlbnQobW91c2VFdmVudCk7CiAg
ICAgaWYgKGhhbmRsZWQpCiAgICAgICAgIG1fY2xpZW50LnNob3dDb250ZXh0TWVudSgpOwogfQor
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQotdm9pZCBDb250ZXh0TWVu
dUNvbnRyb2xsZXI6OnNob3dJbWFnZUNvbnRyb2xzTWVudShFdmVudCogZXZlbnQpCisKK3ZvaWQg
Q29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93SW1hZ2VDb250cm9sc01lbnUoRXZlbnQmIGV2ZW50
KQogewogICAgIGNsZWFyQ29udGV4dE1lbnUoKTsKICAgICBoYW5kbGVDb250ZXh0TWVudUV2ZW50
KGV2ZW50KTsKICAgICBtX2NsaWVudC5zaG93Q29udGV4dE1lbnUoKTsKIH0KKwogI2VuZGlmCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q29udGV4dE1lbnVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5oCmluZGV4IDExMjU2ZTFjZTc5YWIxZTdiMzIxNThmNzg0ZGM3ODgxMzY0NzRk
OGQuLmY2Mzk2NDhiMTg2MjA0NjA2ZWZjYTU2YTkwNzgyYzg5MzdhMGU5NTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOSwyMSArMjksMTYg
QEAKIAogI2luY2x1ZGUgIkNvbnRleHRNZW51Q29udGV4dC5oIgogI2luY2x1ZGUgIkNvbnRleHRN
ZW51SXRlbS5oIgotI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9Q
YXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIENvbnRleHRNZW51OwogY2xhc3MgQ29udGV4dE1lbnVDbGllbnQ7Ci1jbGFz
cyBDb250ZXh0TWVudUl0ZW07CiBjbGFzcyBDb250ZXh0TWVudVByb3ZpZGVyOwogY2xhc3MgRXZl
bnQ7CiBjbGFzcyBQYWdlOwogCiBjbGFzcyBDb250ZXh0TWVudUNvbnRyb2xsZXIgewotICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKENvbnRleHRNZW51Q29udHJvbGxlcik7IFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIENv
bnRleHRNZW51Q29udHJvbGxlcihQYWdlJiwgQ29udGV4dE1lbnVDbGllbnQmKTsKICAgICB+Q29u
dGV4dE1lbnVDb250cm9sbGVyKCk7CkBAIC01NCw4ICs0OSw4IEBAIHB1YmxpYzoKICAgICBDb250
ZXh0TWVudSogY29udGV4dE1lbnUoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHRNZW51LmdldCgp
OyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhckNvbnRleHRNZW51KCk7CiAKLSAgICB2
b2lkIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoRXZlbnQqKTsKLSAgICB2b2lkIHNob3dDb250ZXh0
TWVudShFdmVudCosIFBhc3NSZWZQdHI8Q29udGV4dE1lbnVQcm92aWRlcj4pOworICAgIHZvaWQg
aGFuZGxlQ29udGV4dE1lbnVFdmVudChFdmVudCYpOworICAgIHZvaWQgc2hvd0NvbnRleHRNZW51
KEV2ZW50JiwgQ29udGV4dE1lbnVQcm92aWRlciYpOwogCiAgICAgdm9pZCBwb3B1bGF0ZSgpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1l
bnVBY3Rpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUpOwpAQCAtNjgsMTYgKzYzLDE2IEBAIHB1Ymxp
YzoKICAgICBjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWx0KCkgY29uc3QgeyByZXR1
cm4gbV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKTsgfQogCiAjaWYgVVNFKEFDQ0VTU0lCSUxJVFlf
Q09OVEVYVF9NRU5VUykKLSAgICB2b2lkIHNob3dDb250ZXh0TWVudUF0KEZyYW1lKiwgY29uc3Qg
SW50UG9pbnQmIGNsaWNrUG9pbnQpOworICAgIHZvaWQgc2hvd0NvbnRleHRNZW51QXQoRnJhbWUm
LCBjb25zdCBJbnRQb2ludCYgY2xpY2tQb2ludCk7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJW
SUNFX0NPTlRST0xTKQotICAgIHZvaWQgc2hvd0ltYWdlQ29udHJvbHNNZW51KEV2ZW50Kik7Cisg
ICAgdm9pZCBzaG93SW1hZ2VDb250cm9sc01lbnUoRXZlbnQmKTsKICNlbmRpZgogCiBwcml2YXRl
OgotICAgIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4gbWF5YmVDcmVhdGVDb250ZXh0TWVu
dShFdmVudCopOwotICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KEV2ZW50Kik7CisgICAgc3RkOjp1
bmlxdWVfcHRyPENvbnRleHRNZW51PiBtYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50Jik7Cisg
ICAgdm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQmKTsKICAgICAKICAgICB2b2lkIGFwcGVuZEl0
ZW0oQ29udGV4dE1lbnVJdGVtJiwgQ29udGV4dE1lbnUqIHBhcmVudE1lbnUpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRE9NVGltZXIuY3BwCmluZGV4IDhjMjczODFhZDY5YmMyZWFiOTIzMmYyOGFhNTc2MDUwM2I2
ZGIxOGQuLjZiYjg5NjFkOWNlODI4YTk4MjU0MjU5MDAxMjZmOGU1YmRhN2MzNDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NVGltZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NVGltZXIuY3BwCkBAIC0zNjEsNyArMzYxLDcgQEAgdm9pZCBET01UaW1lcjo6Zmly
ZWQoKQogICAgICAgICBpZiAoV0tPYnNlcnZlZENvbnRlbnRDaGFuZ2UoKSA9PSBXS0NvbnRlbnRW
aXNpYmlsaXR5Q2hhbmdlIHx8IHNob3VsZFJlcG9ydExhY2tPZkNoYW5nZXMpIHsKICAgICAgICAg
ICAgIERvY3VtZW50JiBkb2N1bWVudCA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KTsKICAg
ICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gZG9jdW1lbnQucGFnZSgpKQotICAgICAgICAgICAg
ICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLm9ic2VydmVkQ29udGVudENoYW5nZShkb2N1bWVu
dC5mcmFtZSgpKTsKKyAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5vYnNl
cnZlZENvbnRlbnRDaGFuZ2UoKmRvY3VtZW50LmZyYW1lKCkpOwogICAgICAgICB9CiAgICAgfQog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXggOTY5OTY1MDM4YTI2NWRkNzE4
MDhjNmFmZGYwYjIwZGQ1MmViNjRhNC4uNjI2OTY3MzA5YTVhNzNhMzg3MzhjMDE3OGUyYmM2NjFm
YjMwYzI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDgsIDIwMTAsIDIwMTMgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENv
cnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApA
QCAtMjksNyArMjksNiBAQAogCiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCiAj
aW5jbHVkZSAiQmFyUHJvcC5oIgotI2luY2x1ZGUgIkJlZm9yZVVubG9hZEV2ZW50LmgiCiAjaW5j
bHVkZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTUnVsZS5o
IgogI2luY2x1ZGUgIkNTU1J1bGVMaXN0LmgiCkBAIC0xMjUsMjIgKzEyNCwyMyBAQAogI2luY2x1
ZGUgIldlYktpdE5hbWVzcGFjZS5oIgogI2VuZGlmCiAKLSNpZiBFTkFCTEUoUFJPWElNSVRZX0VW
RU5UUykKLSNpbmNsdWRlICJEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmgiCi0jZW5kaWYKLQog
I2lmIEVOQUJMRShHQU1FUEFEKQogI2luY2x1ZGUgIkdhbWVwYWRNYW5hZ2VyLmgiCiAjZW5kaWYK
IAorI2lmIEVOQUJMRShHRU9MT0NBVElPTikKKyNpbmNsdWRlICJOYXZpZ2F0b3JHZW9sb2NhdGlv
bi5oIgorI2VuZGlmCisKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogI2luY2x1ZGUgIlBvaW50
ZXJMb2NrQ29udHJvbGxlci5oIgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpCi0jaWYgRU5B
QkxFKEdFT0xPQ0FUSU9OKQotI2luY2x1ZGUgIk5hdmlnYXRvckdlb2xvY2F0aW9uLmgiCisjaWYg
RU5BQkxFKFBST1hJTUlUWV9FVkVOVFMpCisjaW5jbHVkZSAiRGV2aWNlUHJveGltaXR5Q29udHJv
bGxlci5oIgogI2VuZGlmCisKKyNpZiBQTEFURk9STShJT1MpCiAjaW5jbHVkZSAiV0tDb250ZW50
T2JzZXJ2YXRpb24uaCIKICNlbmRpZgogCkBAIC0xNTAsOSArMTUwLDkgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBjbGFzcyBQb3N0TWVzc2FnZVRpbWVyIDogcHVibGljIFRpbWVyQmFzZSB7CiBw
dWJsaWM6Ci0gICAgUG9zdE1lc3NhZ2VUaW1lcihET01XaW5kb3cmIHdpbmRvdywgUGFzc1JlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgc291cmNlT3Jp
Z2luLCBET01XaW5kb3cmIHNvdXJjZSwgc3RkOjp1bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5l
bEFycmF5PiBjaGFubmVscywgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiYmIHRhcmdldE9yaWdpbiwg
UmVmUHRyPFNjcmlwdENhbGxTdGFjaz4mJiBzdGFja1RyYWNlKQorICAgIFBvc3RNZXNzYWdlVGlt
ZXIoRE9NV2luZG93JiB3aW5kb3csIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+JiYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIERPTVdpbmRvdyYgc291cmNlLCBzdGQ6OnVu
aXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzLCBSZWZQdHI8U2VjdXJp
dHlPcmlnaW4+JiYgdGFyZ2V0T3JpZ2luLCBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiYmIHN0YWNr
VHJhY2UpCiAgICAgICAgIDogbV93aW5kb3cod2luZG93KQotICAgICAgICAsIG1fbWVzc2FnZSht
ZXNzYWdlKQorICAgICAgICAsIG1fbWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKQogICAgICAgICAs
IG1fb3JpZ2luKHNvdXJjZU9yaWdpbikKICAgICAgICAgLCBtX3NvdXJjZShzb3VyY2UpCiAgICAg
ICAgICwgbV9jaGFubmVscyhXVEZNb3ZlKGNoYW5uZWxzKSkKQEAgLTE4MSw3ICsxODEsNyBAQCBw
cml2YXRlOgogICAgIH0KIAogICAgIFJlZjxET01XaW5kb3c+IG1fd2luZG93OwotICAgIFJlZlB0
cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fbWVzc2FnZTsKKyAgICBSZWY8U2VyaWFsaXplZFNj
cmlwdFZhbHVlPiBtX21lc3NhZ2U7CiAgICAgU3RyaW5nIG1fb3JpZ2luOwogICAgIFJlZjxET01X
aW5kb3c+IG1fc291cmNlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxB
cnJheT4gbV9jaGFubmVsczsKQEAgLTMyNSwxMiArMzI1LDEwIEBAIHZvaWQgRE9NV2luZG93Ojpk
aXNwYXRjaEFsbFBlbmRpbmdVbmxvYWRFdmVudHMoKQogLy8gMykgQ29uc3RyYWlucyB0aGUgd2lu
ZG93IHJlY3QgdG8gd2l0aGluIHRoZSB0b3AgYW5kIGxlZnQgYm91bmRhcmllcyBvZiB0aGUgYXZh
aWxhYmxlIHNjcmVlbiByZWN0LgogLy8gNCkgQ29uc3RyYWlucyB0aGUgd2luZG93IHJlY3QgdG8g
d2l0aGluIHRoZSBib3R0b20gYW5kIHJpZ2h0IGJvdW5kYXJpZXMgb2YgdGhlIGF2YWlsYWJsZSBz
Y3JlZW4gcmVjdC4KIC8vIDUpIFRyYW5zbGF0ZSB0aGUgd2luZG93IHJlY3QgY29vcmRpbmF0ZXMg
dG8gYmUgd2l0aGluIHRoZSBjb29yZGluYXRlIHNwYWNlIG9mIHRoZSBzY3JlZW4uCi1GbG9hdFJl
Y3QgRE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0KFBhZ2UqIHBhZ2UsIGNvbnN0IEZsb2F0UmVj
dCYgcGVuZGluZ0NoYW5nZXMpCitGbG9hdFJlY3QgRE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0
KFBhZ2UmIHBhZ2UsIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5nZXMpCiB7Ci0gICAgQVNT
RVJUKHBhZ2UpOwotCi0gICAgRmxvYXRSZWN0IHNjcmVlbiA9IHNjcmVlbkF2YWlsYWJsZVJlY3Qo
cGFnZS0+bWFpbkZyYW1lKCkudmlldygpKTsKLSAgICBGbG9hdFJlY3Qgd2luZG93ID0gcGFnZS0+
Y2hyb21lKCkud2luZG93UmVjdCgpOworICAgIEZsb2F0UmVjdCBzY3JlZW4gPSBzY3JlZW5BdmFp
bGFibGVSZWN0KHBhZ2UubWFpbkZyYW1lKCkudmlldygpKTsKKyAgICBGbG9hdFJlY3Qgd2luZG93
ID0gcGFnZS5jaHJvbWUoKS53aW5kb3dSZWN0KCk7CiAKICAgICAvLyBNYWtlIHN1cmUgd2UncmUg
aW4gYSB2YWxpZCBzdGF0ZSBiZWZvcmUgYWRqdXN0aW5nIGRpbWVuc2lvbnMuCiAgICAgQVNTRVJU
KHN0ZDo6aXNmaW5pdGUoc2NyZWVuLngoKSkpOwpAQCAtMzUyLDcgKzM1MCw3IEBAIEZsb2F0UmVj
dCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSogcGFnZSwgY29uc3QgRmxvYXRSZWN0
JiBwZW5kaW5nQ2hhbmdlCiAgICAgaWYgKCFzdGQ6OmlzbmFuKHBlbmRpbmdDaGFuZ2VzLmhlaWdo
dCgpKSkKICAgICAgICAgd2luZG93LnNldEhlaWdodChwZW5kaW5nQ2hhbmdlcy5oZWlnaHQoKSk7
CiAKLSAgICBGbG9hdFNpemUgbWluaW11bVNpemUgPSBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5t
aW5pbXVtV2luZG93U2l6ZSgpOworICAgIEZsb2F0U2l6ZSBtaW5pbXVtU2l6ZSA9IHBhZ2UuY2hy
b21lKCkuY2xpZW50KCkubWluaW11bVdpbmRvd1NpemUoKTsKICAgICB3aW5kb3cuc2V0V2lkdGgo
c3RkOjptaW4oc3RkOjptYXgobWluaW11bVNpemUud2lkdGgoKSwgd2luZG93LndpZHRoKCkpLCBz
Y3JlZW4ud2lkdGgoKSkpOwogICAgIHdpbmRvdy5zZXRIZWlnaHQoc3RkOjptaW4oc3RkOjptYXgo
bWluaW11bVNpemUuaGVpZ2h0KCksIHdpbmRvdy5oZWlnaHQoKSksIHNjcmVlbi5oZWlnaHQoKSkp
OwogCkBAIC0zNjMsMzggKzM2MSwzMSBAQCBGbG9hdFJlY3QgRE9NV2luZG93OjphZGp1c3RXaW5k
b3dSZWN0KFBhZ2UqIHBhZ2UsIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0NoYW5nZQogICAgIHJl
dHVybiB3aW5kb3c7CiB9CiAKLWJvb2wgRE9NV2luZG93OjphbGxvd1BvcFVwKEZyYW1lKiBmaXJz
dEZyYW1lKQorYm9vbCBET01XaW5kb3c6OmFsbG93UG9wVXAoRnJhbWUmIGZpcnN0RnJhbWUpCiB7
Ci0gICAgQVNTRVJUKGZpcnN0RnJhbWUpOwotICAgIAotICAgIGF1dG8mIHNldHRpbmdzID0gZmly
c3RGcmFtZS0+c2V0dGluZ3MoKTsKLQotICAgIGlmIChTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNz
aW5nVXNlckdlc3R1cmUoKSB8fCBzZXR0aW5ncy5hbGxvd1dpbmRvd09wZW5XaXRob3V0VXNlckdl
c3R1cmUoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICByZXR1cm4gc2V0dGluZ3MuamF2
YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSgpOworICAgIGF1dG8mIHNldHRpbmdz
ID0gZmlyc3RGcmFtZS5zZXR0aW5ncygpOworICAgIHJldHVybiBTY3JpcHRDb250cm9sbGVyOjpw
cm9jZXNzaW5nVXNlckdlc3R1cmUoKQorICAgICAgICB8fCBzZXR0aW5ncy5hbGxvd1dpbmRvd09w
ZW5XaXRob3V0VXNlckdlc3R1cmUoKQorICAgICAgICB8fCBzZXR0aW5ncy5qYXZhU2NyaXB0Q2Fu
T3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KCk7CiB9CiAKIGJvb2wgRE9NV2luZG93OjphbGxvd1Bv
cFVwKCkKIHsKLSAgICByZXR1cm4gbV9mcmFtZSAmJiBhbGxvd1BvcFVwKG1fZnJhbWUpOworICAg
IHJldHVybiBtX2ZyYW1lICYmIGFsbG93UG9wVXAoKm1fZnJhbWUpOwogfQogCi1ib29sIERPTVdp
bmRvdzo6Y2FuU2hvd01vZGFsRGlhbG9nKGNvbnN0IEZyYW1lKiBmcmFtZSkKK2Jvb2wgRE9NV2lu
ZG93OjpjYW5TaG93TW9kYWxEaWFsb2coY29uc3QgRnJhbWUmIGZyYW1lKQogewotICAgIGlmICgh
ZnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIC8vIE92ZXJyaWRlIHN1cHBvcnQg
Zm9yIGxheW91dCB0ZXN0aW5nIHB1cnBvc2VzLgotICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGZy
YW1lLT5kb2N1bWVudCgpKSB7CisgICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJhbWUuZG9jdW1l
bnQoKSkgewogICAgICAgICBpZiAoYXV0byogd2luZG93ID0gZG9jdW1lbnQtPmRvbVdpbmRvdygp
KSB7CiAgICAgICAgICAgICBpZiAod2luZG93LT5tX2NhblNob3dNb2RhbERpYWxvZ092ZXJyaWRl
KQogICAgICAgICAgICAgICAgIHJldHVybiB3aW5kb3ctPm1fY2FuU2hvd01vZGFsRGlhbG9nT3Zl
cnJpZGUudmFsdWUoKTsKICAgICAgICAgfQogICAgIH0KIAotICAgIGF1dG8qIHBhZ2UgPSBmcmFt
ZS0+cGFnZSgpOwotICAgIHJldHVybiBwYWdlID8gcGFnZS0+Y2hyb21lKCkuY2FuUnVuTW9kYWwo
KSA6IGZhbHNlOworICAgIGF1dG8qIHBhZ2UgPSBmcmFtZS5wYWdlKCk7CisgICAgcmV0dXJuIHBh
Z2UgJiYgcGFnZS0+Y2hyb21lKCkuY2FuUnVuTW9kYWwoKTsKIH0KIAogc3RhdGljIHZvaWQgbGFu
Z3VhZ2VzQ2hhbmdlZENhbGxiYWNrKHZvaWQqIGNvbnRleHQpCkBAIC00MDcsMjAgKzM5OCwxOCBA
QCB2b2lkIERPTVdpbmRvdzo6c2V0Q2FuU2hvd01vZGFsRGlhbG9nT3ZlcnJpZGUoYm9vbCBhbGxv
dykKICAgICBtX2NhblNob3dNb2RhbERpYWxvZ092ZXJyaWRlID0gYWxsb3c7CiB9CiAKLURPTVdp
bmRvdzo6RE9NV2luZG93KERvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IENvbnRleHREZXN0cnVj
dGlvbk9ic2VydmVyKGRvY3VtZW50KQotICAgICwgRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKGRv
Y3VtZW50LT5mcmFtZSgpKQorRE9NV2luZG93OjpET01XaW5kb3coRG9jdW1lbnQmIGRvY3VtZW50
KQorICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoJmRvY3VtZW50KQorICAgICwgRnJh
bWVEZXN0cnVjdGlvbk9ic2VydmVyKGRvY3VtZW50LmZyYW1lKCkpCiAgICAgLCBtX3dlYWtQdHJG
YWN0b3J5KHRoaXMpCiB7CiAgICAgQVNTRVJUKGZyYW1lKCkpOwotICAgIEFTU0VSVChET01XaW5k
b3c6OmRvY3VtZW50KCkpOwotCiAgICAgYWRkTGFuZ3VhZ2VDaGFuZ2VPYnNlcnZlcih0aGlzLCAm
bGFuZ3VhZ2VzQ2hhbmdlZENhbGxiYWNrKTsKIH0KIAotdm9pZCBET01XaW5kb3c6OmRpZFNlY3Vy
ZVRyYW5zaXRpb25UbyhEb2N1bWVudCogZG9jdW1lbnQpCit2b2lkIERPTVdpbmRvdzo6ZGlkU2Vj
dXJlVHJhbnNpdGlvblRvKERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICBvYnNlcnZlQ29udGV4
dChkb2N1bWVudCk7CisgICAgb2JzZXJ2ZUNvbnRleHQoJmRvY3VtZW50KTsKIH0KIAogRE9NV2lu
ZG93Ojp+RE9NV2luZG93KCkKQEAgLTU0NywxNCArNTM2LDE0IEBAIHZvaWQgRE9NV2luZG93Ojpk
ZWNyZW1lbnRHYW1lcGFkRXZlbnRMaXN0ZW5lckNvdW50KCkKIAogI2VuZGlmCiAKLXZvaWQgRE9N
V2luZG93OjpyZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5KiBwcm9wZXJ0eSkKK3Zv
aWQgRE9NV2luZG93OjpyZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5JiBwcm9wZXJ0
eSkKIHsKLSAgICBtX3Byb3BlcnRpZXMuYWRkKHByb3BlcnR5KTsKKyAgICBtX3Byb3BlcnRpZXMu
YWRkKCZwcm9wZXJ0eSk7CiB9CiAKLXZvaWQgRE9NV2luZG93Ojp1bnJlZ2lzdGVyUHJvcGVydHko
RE9NV2luZG93UHJvcGVydHkqIHByb3BlcnR5KQordm9pZCBET01XaW5kb3c6OnVucmVnaXN0ZXJQ
cm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSYgcHJvcGVydHkpCiB7Ci0gICAgbV9wcm9wZXJ0aWVz
LnJlbW92ZShwcm9wZXJ0eSk7CisgICAgbV9wcm9wZXJ0aWVzLnJlbW92ZSgmcHJvcGVydHkpOwog
fQogCiB2b2lkIERPTVdpbmRvdzo6cmVzZXRVbmxlc3NTdXNwZW5kZWRGb3JEb2N1bWVudFN1c3Bl
bnNpb24oKQpAQCAtOTc0LDIzICs5NjMsMTggQEAgdm9pZCBET01XaW5kb3c6OnBvc3RNZXNzYWdl
VGltZXJGaXJlZChQb3N0TWVzc2FnZVRpbWVyJiB0aW1lcikKICAgICBpZiAoIWRvY3VtZW50KCkg
fHwgIWlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmlnaW5DaGVjayh0aW1lci50YXJnZXRPcmlnaW4o
KSwgdGltZXIuZXZlbnQoKmRvY3VtZW50KCkpLCB0aW1lci5zdGFja1RyYWNlKCkpOwotfQotCi12
b2lkIERPTVdpbmRvdzo6ZGlzcGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2luQ2hlY2soU2VjdXJp
dHlPcmlnaW4qIGludGVuZGVkVGFyZ2V0T3JpZ2luLCBFdmVudCYgZXZlbnQsIFBhc3NSZWZQdHI8
U2NyaXB0Q2FsbFN0YWNrPiBzdGFja1RyYWNlKQotewotICAgIGlmIChpbnRlbmRlZFRhcmdldE9y
aWdpbikgeworICAgIGlmIChhdXRvKiBpbnRlbmRlZFRhcmdldE9yaWdpbiA9IHRpbWVyLnRhcmdl
dE9yaWdpbigpKSB7CiAgICAgICAgIC8vIENoZWNrIHRhcmdldCBvcmlnaW4gbm93IHNpbmNlIHRo
ZSB0YXJnZXQgZG9jdW1lbnQgbWF5IGhhdmUgY2hhbmdlZCBzaW5jZSB0aGUgdGltZXIgd2FzIHNj
aGVkdWxlZC4KICAgICAgICAgaWYgKCFpbnRlbmRlZFRhcmdldE9yaWdpbi0+aXNTYW1lU2NoZW1l
SG9zdFBvcnQoZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSkpIHsKLSAgICAgICAgICAgIGlm
IChQYWdlQ29uc29sZUNsaWVudCogcGFnZUNvbnNvbGUgPSBjb25zb2xlKCkpIHsKKyAgICAgICAg
ICAgIGlmIChhdXRvKiBwYWdlQ29uc29sZSA9IGNvbnNvbGUoKSkgewogICAgICAgICAgICAgICAg
IFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZygiVW5hYmxlIHRvIHBvc3QgbWVzc2FnZSB0byAi
LCBpbnRlbmRlZFRhcmdldE9yaWdpbi0+dG9TdHJpbmcoKSwgIi4gUmVjaXBpZW50IGhhcyBvcmln
aW4gIiwgZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS50b1N0cmluZygpLCAiLlxuIik7Ci0g
ICAgICAgICAgICAgICAgcGFnZUNvbnNvbGUtPmFkZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2Vj
dXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UsIHN0YWNrVHJhY2UpOworICAgICAg
ICAgICAgICAgIHBhZ2VDb25zb2xlLT5hZGRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5
LCBNZXNzYWdlTGV2ZWw6OkVycm9yLCBtZXNzYWdlLCB0aW1lci5zdGFja1RyYWNlKCkpOwogICAg
ICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfQogCi0gICAg
ZGlzcGF0Y2hFdmVudChldmVudCk7CisgICAgZGlzcGF0Y2hFdmVudCh0aW1lci5ldmVudCgqZG9j
dW1lbnQoKSkpOwogfQogCiBET01TZWxlY3Rpb24qIERPTVdpbmRvdzo6Z2V0U2VsZWN0aW9uKCkK
QEAgLTExMTMsNyArMTA5Nyw3IEBAIHZvaWQgRE9NV2luZG93OjpwcmludCgpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgbV9zaG91bGRQcmludFdoZW5GaW5pc2hlZExvYWRpbmcgPSBmYWxz
ZTsKLSAgICBwYWdlLT5jaHJvbWUoKS5wcmludChtX2ZyYW1lKTsKKyAgICBwYWdlLT5jaHJvbWUo
KS5wcmludCgqbV9mcmFtZSk7CiB9CiAKIHZvaWQgRE9NV2luZG93OjpzdG9wKCkKQEAgLTExNDUs
NyArMTEyOSw3IEBAIHZvaWQgRE9NV2luZG93OjphbGVydChjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
CiAgICAgcGFnZS0+cG9pbnRlckxvY2tDb250cm9sbGVyKCkucmVxdWVzdFBvaW50ZXJVbmxvY2so
KTsKICNlbmRpZgogCi0gICAgcGFnZS0+Y2hyb21lKCkucnVuSmF2YVNjcmlwdEFsZXJ0KG1fZnJh
bWUsIG1lc3NhZ2UpOworICAgIHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRBbGVydCgqbV9m
cmFtZSwgbWVzc2FnZSk7CiB9CiAKIGJvb2wgRE9NV2luZG93Ojpjb25maXJtKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkKQEAgLTExNjcsNyArMTE1MSw3IEBAIGJvb2wgRE9NV2luZG93Ojpjb25maXJt
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBwYWdlLT5wb2ludGVyTG9ja0NvbnRyb2xsZXIo
KS5yZXF1ZXN0UG9pbnRlclVubG9jaygpOwogI2VuZGlmCiAKLSAgICByZXR1cm4gcGFnZS0+Y2hy
b21lKCkucnVuSmF2YVNjcmlwdENvbmZpcm0obV9mcmFtZSwgbWVzc2FnZSk7CisgICAgcmV0dXJu
IHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRDb25maXJtKCptX2ZyYW1lLCBtZXNzYWdlKTsK
IH0KIAogU3RyaW5nIERPTVdpbmRvdzo6cHJvbXB0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUpCkBAIC0xMTkwLDcgKzExNzQsNyBAQCBTdHJpbmcgRE9N
V2luZG93Ojpwcm9tcHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1
bHRWYWx1ZSkKICNlbmRpZgogCiAgICAgU3RyaW5nIHJldHVyblZhbHVlOwotICAgIGlmIChwYWdl
LT5jaHJvbWUoKS5ydW5KYXZhU2NyaXB0UHJvbXB0KG1fZnJhbWUsIG1lc3NhZ2UsIGRlZmF1bHRW
YWx1ZSwgcmV0dXJuVmFsdWUpKQorICAgIGlmIChwYWdlLT5jaHJvbWUoKS5ydW5KYXZhU2NyaXB0
UHJvbXB0KCptX2ZyYW1lLCBtZXNzYWdlLCBkZWZhdWx0VmFsdWUsIHJldHVyblZhbHVlKSkKICAg
ICAgICAgcmV0dXJuIHJldHVyblZhbHVlOwogCiAgICAgcmV0dXJuIFN0cmluZygpOwpAQCAtMTM2
OCw3ICsxMzUyLDcgQEAgdm9pZCBET01XaW5kb3c6OnNldFN0YXR1cyhjb25zdCBTdHJpbmcmIHN0
cmluZykKICAgICAgICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKG1fZnJhbWUtPmRvY3VtZW50KCkp
OyAvLyBDbGllbnQgY2FsbHMgc2hvdWxkbid0IGJlIG1hZGUgd2hlbiB0aGUgZnJhbWUgaXMgaW4g
aW5jb25zaXN0ZW50IHN0YXRlLgotICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQo
bV9mcmFtZSwgbV9zdGF0dXMpOworICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQo
Km1fZnJhbWUsIG1fc3RhdHVzKTsKIH0gCiAgICAgCiB2b2lkIERPTVdpbmRvdzo6c2V0RGVmYXVs
dFN0YXR1cyhjb25zdCBTdHJpbmcmIHN0cmluZykgCkBAIC0xMzgzLDcgKzEzNjcsNyBAQCB2b2lk
IERPTVdpbmRvdzo6c2V0RGVmYXVsdFN0YXR1cyhjb25zdCBTdHJpbmcmIHN0cmluZykKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgQVNTRVJUKG1fZnJhbWUtPmRvY3VtZW50KCkpOyAvLyBDbGllbnQg
Y2FsbHMgc2hvdWxkbid0IGJlIG1hZGUgd2hlbiB0aGUgZnJhbWUgaXMgaW4gaW5jb25zaXN0ZW50
IHN0YXRlLgotICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQobV9mcmFtZSwgbV9k
ZWZhdWx0U3RhdHVzKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJUZXh0KCptX2Zy
YW1lLCBtX2RlZmF1bHRTdGF0dXMpOwogfQogCiBET01XaW5kb3cqIERPTVdpbmRvdzo6c2VsZigp
IGNvbnN0CkBAIC0xNDMyLDggKzE0MTYsNyBAQCBET01XaW5kb3cqIERPTVdpbmRvdzo6dG9wKCkg
Y29uc3QKIAogRG9jdW1lbnQqIERPTVdpbmRvdzo6ZG9jdW1lbnQoKSBjb25zdAogewotICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQgPSBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZl
cjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwotICAgIHJldHVybiBkb3duY2FzdDxEb2N1bWVu
dD4oY29udGV4dCk7CisgICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50PihDb250ZXh0RGVzdHJ1
Y3Rpb25PYnNlcnZlcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKIH0KIAogUmVmUHRyPFN0
eWxlTWVkaWE+IERPTVdpbmRvdzo6c3R5bGVNZWRpYSgpIGNvbnN0CkBAIC0xNjE4LDggKzE2MDEs
NyBAQCB2b2lkIERPTVdpbmRvdzo6bW92ZUJ5KGZsb2F0IHgsIGZsb2F0IHkpIGNvbnN0CiAgICAg
RmxvYXRSZWN0IGZyID0gcGFnZS0+Y2hyb21lKCkud2luZG93UmVjdCgpOwogICAgIEZsb2F0UmVj
dCB1cGRhdGUgPSBmcjsKICAgICB1cGRhdGUubW92ZSh4LCB5KTsKLSAgICAvLyBTZWN1cml0eSBj
aGVjayAodGhlIHNwZWMgdGFsa3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRvIGRpc2Fi
bGUgdGhpcyBjaGVjay4uLikKLSAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVz
dFdpbmRvd1JlY3QocGFnZSwgdXBkYXRlKSk7CisgICAgcGFnZS0+Y2hyb21lKCkuc2V0V2luZG93
UmVjdChhZGp1c3RXaW5kb3dSZWN0KCpwYWdlLCB1cGRhdGUpKTsKIH0KIAogdm9pZCBET01XaW5k
b3c6Om1vdmVUbyhmbG9hdCB4LCBmbG9hdCB5KSBjb25zdApAQCAtMTYzMyw4ICsxNjE1LDcgQEAg
dm9pZCBET01XaW5kb3c6Om1vdmVUbyhmbG9hdCB4LCBmbG9hdCB5KSBjb25zdAogICAgIGZyLnNl
dExvY2F0aW9uKHNyLmxvY2F0aW9uKCkpOwogICAgIEZsb2F0UmVjdCB1cGRhdGUgPSBmcjsKICAg
ICB1cGRhdGUubW92ZSh4LCB5KTsKLSAgICAvLyBTZWN1cml0eSBjaGVjayAodGhlIHNwZWMgdGFs
a3MgYWJvdXQgVW5pdmVyc2FsQnJvd3NlcldyaXRlIHRvIGRpc2FibGUgdGhpcyBjaGVjay4uLikK
LSAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QocGFnZSwg
dXBkYXRlKSk7CisgICAgcGFnZS0+Y2hyb21lKCkuc2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dS
ZWN0KCpwYWdlLCB1cGRhdGUpKTsKIH0KIAogdm9pZCBET01XaW5kb3c6OnJlc2l6ZUJ5KGZsb2F0
IHgsIGZsb2F0IHkpIGNvbnN0CkBAIC0xNjQ2LDcgKzE2MjcsNyBAQCB2b2lkIERPTVdpbmRvdzo6
cmVzaXplQnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKICAgICBGbG9hdFJlY3QgZnIgPSBwYWdl
LT5jaHJvbWUoKS53aW5kb3dSZWN0KCk7CiAgICAgRmxvYXRTaXplIGRlc3QgPSBmci5zaXplKCkg
KyBGbG9hdFNpemUoeCwgeSk7CiAgICAgRmxvYXRSZWN0IHVwZGF0ZShmci5sb2NhdGlvbigpLCBk
ZXN0KTsKLSAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3Qo
cGFnZSwgdXBkYXRlKSk7CisgICAgcGFnZS0+Y2hyb21lKCkuc2V0V2luZG93UmVjdChhZGp1c3RX
aW5kb3dSZWN0KCpwYWdlLCB1cGRhdGUpKTsKIH0KIAogdm9pZCBET01XaW5kb3c6OnJlc2l6ZVRv
KGZsb2F0IHdpZHRoLCBmbG9hdCBoZWlnaHQpIGNvbnN0CkBAIC0xNjU4LDcgKzE2MzksNyBAQCB2
b2lkIERPTVdpbmRvdzo6cmVzaXplVG8oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkgY29uc3QK
ICAgICBGbG9hdFJlY3QgZnIgPSBwYWdlLT5jaHJvbWUoKS53aW5kb3dSZWN0KCk7CiAgICAgRmxv
YXRTaXplIGRlc3QgPSBGbG9hdFNpemUod2lkdGgsIGhlaWdodCk7CiAgICAgRmxvYXRSZWN0IHVw
ZGF0ZShmci5sb2NhdGlvbigpLCBkZXN0KTsKLSAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dS
ZWN0KGFkanVzdFdpbmRvd1JlY3QocGFnZSwgdXBkYXRlKSk7CisgICAgcGFnZS0+Y2hyb21lKCku
c2V0V2luZG93UmVjdChhZGp1c3RXaW5kb3dSZWN0KCpwYWdlLCB1cGRhdGUpKTsKIH0KIAogRXhj
ZXB0aW9uT3I8aW50PiBET01XaW5kb3c6OnNldFRpbWVvdXQoc3RkOjp1bmlxdWVfcHRyPFNjaGVk
dWxlZEFjdGlvbj4gYWN0aW9uLCBpbnQgdGltZW91dCkKQEAgLTE2ODEsNyArMTY2Miw3IEBAIHZv
aWQgRE9NV2luZG93OjpjbGVhclRpbWVvdXQoaW50IHRpbWVvdXRJZCkKIAogICAgICAgICAgICAg
ICAgIGlmICghV2ViVGhyZWFkQ291bnRPZk9ic2VydmVkQ29udGVudE1vZGlmaWVycygpKSB7CiAg
ICAgICAgICAgICAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKQotICAg
ICAgICAgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkub2JzZXJ2ZWRDb250
ZW50Q2hhbmdlKG1fZnJhbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21l
KCkuY2xpZW50KCkub2JzZXJ2ZWRDb250ZW50Q2hhbmdlKCptX2ZyYW1lKTsKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTE4NDEsNyArMTgyMiw3IEBAIHZv
aWQgRE9NV2luZG93OjppbmNyZW1lbnRTY3JvbGxFdmVudExpc3RlbmVyc0NvdW50KCkKICAgICBp
ZiAoKyttX3Njcm9sbEV2ZW50TGlzdGVuZXJDb3VudCA9PSAxICYmIGRvY3VtZW50ID09ICZkb2N1
bWVudC0+dG9wRG9jdW1lbnQoKSkgewogICAgICAgICBGcmFtZSogZnJhbWUgPSB0aGlzLT5mcmFt
ZSgpOwogICAgICAgICBpZiAoZnJhbWUgJiYgZnJhbWUtPnBhZ2UoKSkKLSAgICAgICAgICAgIGZy
YW1lLT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9u
cyhmcmFtZSwgdHJ1ZSk7CisgICAgICAgICAgICBmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS5jbGll
bnQoKS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoKmZyYW1lLCB0cnVlKTsKICAgICB9CiB9
CiAKQEAgLTE4NTEsNyArMTgzMiw3IEBAIHZvaWQgRE9NV2luZG93OjpkZWNyZW1lbnRTY3JvbGxF
dmVudExpc3RlbmVyc0NvdW50KCkKICAgICBpZiAoIS0tbV9zY3JvbGxFdmVudExpc3RlbmVyQ291
bnQgJiYgZG9jdW1lbnQgPT0gJmRvY3VtZW50LT50b3BEb2N1bWVudCgpKSB7CiAgICAgICAgIEZy
YW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCk7CiAgICAgICAgIGlmIChmcmFtZSAmJiBmcmFtZS0+
cGFnZSgpICYmIGRvY3VtZW50LT5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50OjpOb3RJblBh
Z2VDYWNoZSkKLSAgICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNl
dE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhmcmFtZSwgZmFsc2UpOworICAgICAgICAgICAgZnJh
bWUtPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25z
KCpmcmFtZSwgZmFsc2UpOwogICAgIH0KIH0KIApAQCAtMTg1OSw3ICsxODQwLDcgQEAgdm9pZCBE
T01XaW5kb3c6OmRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJzQ291bnQoKQogCiB2b2lkIERP
TVdpbmRvdzo6cmVzZXRBbGxHZW9sb2NhdGlvblBlcm1pc3Npb24oKQogewotICAgIC8vIEZJWE1F
OiBSZW1vdmUgUExBVEZPUk0oSU9TKS1ndWFyZCBvbmNlIHdlIHVwc3RyZWFtIHRoZSBpT1MgY2hh
bmdlcyB0byBHZW9sb2NhdGlvbi5jcHAuCisgICAgLy8gRklYTUU6IENhbiB3ZSByZW1vdmUgdGhl
IFBMQVRGT1JNKElPUyktZ3VhcmQ/CiAjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKSAmJiBQTEFURk9S
TShJT1MpCiAgICAgaWYgKG1fbmF2aWdhdG9yKQogICAgICAgICBOYXZpZ2F0b3JHZW9sb2NhdGlv
bjo6ZnJvbShtX25hdmlnYXRvci5nZXQoKSktPnJlc2V0QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9u
KCk7CkBAIC0yMjg3LDggKzIyNjgsNyBAQCB2b2lkIERPTVdpbmRvdzo6c2hvd01vZGFsRGlhbG9n
KGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGRpYWxvZ0ZlYQogewogICAg
IGlmICghaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJldHVybjsKLSAg
ICBGcmFtZSogYWN0aXZlRnJhbWUgPSBhY3RpdmVXaW5kb3cuZnJhbWUoKTsKLSAgICBpZiAoIWFj
dGl2ZUZyYW1lKQorICAgIGlmICghYWN0aXZlV2luZG93LmZyYW1lKCkpCiAgICAgICAgIHJldHVy
bjsKICAgICBGcmFtZSogZmlyc3RGcmFtZSA9IGZpcnN0V2luZG93LmZyYW1lKCk7CiAgICAgaWYg
KCFmaXJzdEZyYW1lKQpAQCAtMjMwMyw3ICsyMjgzLDcgQEAgdm9pZCBET01XaW5kb3c6OnNob3dN
b2RhbERpYWxvZyhjb25zdCBTdHJpbmcmIHVybFN0cmluZywgY29uc3QgU3RyaW5nJiBkaWFsb2dG
ZWEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICghY2FuU2hvd01vZGFsRGlhbG9n
KG1fZnJhbWUpIHx8ICFmaXJzdFdpbmRvdy5hbGxvd1BvcFVwKCkpCisgICAgaWYgKCFjYW5TaG93
TW9kYWxEaWFsb2coKm1fZnJhbWUpIHx8ICFmaXJzdFdpbmRvdy5hbGxvd1BvcFVwKCkpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIFJlZlB0cjxGcmFtZT4gZGlhbG9nRnJhbWUgPSBjcmVhdGVXaW5k
b3codXJsU3RyaW5nLCBlbXB0eUF0b20sIHBhcnNlRGlhbG9nRmVhdHVyZXMoZGlhbG9nRmVhdHVy
ZXNTdHJpbmcsIHNjcmVlbkF2YWlsYWJsZVJlY3QobV9mcmFtZS0+dmlldygpKSksIGFjdGl2ZVdp
bmRvdywgKmZpcnN0RnJhbWUsICptX2ZyYW1lLCBXVEZNb3ZlKHByZXBhcmVEaWFsb2dGdW5jdGlv
bikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgKaW5kZXggYzVlOTAyODk4ODZkNzJhYTg4NmM0OWFk
Yjk0Nzk1ZDM3NzA1OWIzMS4uZTAwNzAxNmU1ZDg2N2EyMDU3OWZhNDAxODMzMmJiNWRmMWFlMWVi
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNiwgMjAwNywgMjAwOSwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29y
IGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zMywyMyArMzMsMTQg
QEAKICNpbmNsdWRlICJGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJTY3Jv
bGxUb09wdGlvbnMuaCIKICNpbmNsdWRlICJTdXBwbGVtZW50YWJsZS5oIgotI2luY2x1ZGUgIlVS
TC5oIgotI2luY2x1ZGUgPGZ1bmN0aW9uYWw+Ci0jaW5jbHVkZSA8bWVtb3J5PgotI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYv
T3B0aW9uYWwuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCi1uYW1lc3BhY2UgSW5zcGVj
dG9yIHsKLWNsYXNzIFNjcmlwdENhbGxTdGFjazsKLX0KLQogbmFtZXNwYWNlIEpTQyB7CiBjbGFz
cyBFeGVjU3RhdGU7CiBjbGFzcyBKU09iamVjdDsKIGNsYXNzIEpTVmFsdWU7Ci10ZW1wbGF0ZTx0
eXBlbmFtZSBUPiBjbGFzcyBTdHJvbmc7Cit0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgU3Ryb25n
OwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC02MSwyMiArNTIsMTUgQEAgY2xhc3MgQ3J5
cHRvOwogY2xhc3MgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5OwogY2xhc3MgRE9NQXBwbGljYXRpb25D
YWNoZTsKIGNsYXNzIERPTVNlbGVjdGlvbjsKLWNsYXNzIERPTVVSTDsKIGNsYXNzIERPTVdpbmRv
d1Byb3BlcnR5OwogY2xhc3MgRE9NV3JhcHBlcldvcmxkOwotY2xhc3MgRGF0YWJhc2U7Ci1jbGFz
cyBEYXRhYmFzZUNhbGxiYWNrOwogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OwogY2xh
c3MgRXZlbnRMaXN0ZW5lcjsKIGNsYXNzIEZsb2F0UmVjdDsKLWNsYXNzIEZyYW1lOwogY2xhc3Mg
SGlzdG9yeTsKLWNsYXNzIElEQkZhY3Rvcnk7CiBjbGFzcyBMb2NhdGlvbjsKIGNsYXNzIE1lZGlh
UXVlcnlMaXN0OwotY2xhc3MgTWVzc2FnZUV2ZW50OwotY2xhc3MgTWVzc2FnZVBvcnQ7CiBjbGFz
cyBOYXZpZ2F0b3I7CiBjbGFzcyBOb2RlOwogY2xhc3MgTm9kZUxpc3Q7CkBAIC04Nyw4ICs3MSw2
IEBAIGNsYXNzIFBvc3RNZXNzYWdlVGltZXI7CiBjbGFzcyBSZXF1ZXN0QW5pbWF0aW9uRnJhbWVD
YWxsYmFjazsKIGNsYXNzIFNjaGVkdWxlZEFjdGlvbjsKIGNsYXNzIFNjcmVlbjsKLWNsYXNzIFNl
Y3VyaXR5T3JpZ2luOwotY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xhc3MgU3RvcmFn
ZTsKIGNsYXNzIFN0eWxlTWVkaWE7CiBjbGFzcyBXZWJLaXROYW1lc3BhY2U7CkBAIC0xMDcsNyAr
ODksNyBAQCBjbGFzcyBET01XaW5kb3cgZmluYWwKICAgICAsIHB1YmxpYyBCYXNlNjRVdGlsaXRp
ZXMKICAgICAsIHB1YmxpYyBTdXBwbGVtZW50YWJsZTxET01XaW5kb3c+IHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgUmVmPERPTVdpbmRvdz4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkgeyByZXR1
cm4gYWRvcHRSZWYoKm5ldyBET01XaW5kb3coZG9jdW1lbnQpKTsgfQorICAgIHN0YXRpYyBSZWY8
RE9NV2luZG93PiBjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50KSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IERPTVdpbmRvdyhkb2N1bWVudCkpOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+
RE9NV2luZG93KCk7CiAKICAgICAvLyBJbiBzb21lIHJhcmUgY2FzZXMsIHdlJ2xsIHJldXNlIGEg
RE9NV2luZG93IGZvciBhIG5ldyBEb2N1bWVudC4gRm9yIGV4YW1wbGUsCkBAIC0xMTcsMTUgKzk5
LDEwIEBAIHB1YmxpYzoKICAgICAvLyB3b24ndCBiZSBibG93biBhd2F5IHdoZW4gdGhlIG5ldHdv
cmsgbG9hZCBjb21taXRzLiBUbyBtYWtlIHRoYXQgaGFwcGVuLCB3ZQogICAgIC8vICJzZWN1cmVs
eSB0cmFuc2l0aW9uIiB0aGUgZXhpc3RpbmcgRE9NV2luZG93IHRvIHRoZSBEb2N1bWVudCB0aGF0
IHJlc3VsdHMgZnJvbQogICAgIC8vIHRoZSBuZXR3b3JrIGxvYWQuIFNlZSBhbHNvIFNlY3VyaXR5
Q29udGV4dDo6aXNTZWN1cmVUcmFuc2l0aW9uVG8uCi0gICAgdm9pZCBkaWRTZWN1cmVUcmFuc2l0
aW9uVG8oRG9jdW1lbnQqKTsKLQotICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFyZ2V0
SW50ZXJmYWNlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gRE9NV2luZG93RXZlbnRUYXJnZXRJ
bnRlcmZhY2VUeXBlOyB9Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9i
c2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KLQotICAgIERPTVdpbmRvdyogdG9E
T01XaW5kb3coKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFNlY3VyZVRyYW5zaXRpb25UbyhEb2N1
bWVudCYpOwogCi0gICAgdm9pZCByZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5Kik7
Ci0gICAgdm9pZCB1bnJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkqKTsKKyAgICB2
b2lkIHJlZ2lzdGVyUHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkmKTsKKyAgICB2b2lkIHVucmVn
aXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSYpOwogCiAgICAgdm9pZCByZXNldFVubGVz
c1N1c3BlbmRlZEZvckRvY3VtZW50U3VzcGVuc2lvbigpOwogICAgIHZvaWQgc3VzcGVuZEZvckRv
Y3VtZW50U3VzcGVuc2lvbigpOwpAQCAtMTM4LDExICsxMTUsMTEgQEAgcHVibGljOgogICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBib29sIGRpc3BhdGNoQWxsUGVuZGluZ0JlZm9yZVVubG9hZEV2
ZW50cygpOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyB2b2lkIGRpc3BhdGNoQWxsUGVuZGlu
Z1VubG9hZEV2ZW50cygpOwogCi0gICAgc3RhdGljIEZsb2F0UmVjdCBhZGp1c3RXaW5kb3dSZWN0
KFBhZ2UqLCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2VzKTsKKyAgICBzdGF0aWMgRmxv
YXRSZWN0IGFkanVzdFdpbmRvd1JlY3QoUGFnZSYsIGNvbnN0IEZsb2F0UmVjdCYgcGVuZGluZ0No
YW5nZXMpOwogCiAgICAgYm9vbCBhbGxvd1BvcFVwKCk7IC8vIENhbGwgb24gZmlyc3Qgd2luZG93
LCBub3QgdGFyZ2V0IHdpbmRvdy4KLSAgICBzdGF0aWMgYm9vbCBhbGxvd1BvcFVwKEZyYW1lKiBm
aXJzdEZyYW1lKTsKLSAgICBzdGF0aWMgYm9vbCBjYW5TaG93TW9kYWxEaWFsb2coY29uc3QgRnJh
bWUqKTsKKyAgICBzdGF0aWMgYm9vbCBhbGxvd1BvcFVwKEZyYW1lJiBmaXJzdEZyYW1lKTsKKyAg
ICBzdGF0aWMgYm9vbCBjYW5TaG93TW9kYWxEaWFsb2coY29uc3QgRnJhbWUmKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHNldENhblNob3dNb2RhbERpYWxvZ092ZXJyaWRlKGJvb2wpOwogCiAg
ICAgU2NyZWVuKiBzY3JlZW4oKSBjb25zdDsKQEAgLTI0NSw3ICsyMjIsNiBAQCBwdWJsaWM6CiAK
ICAgICBFeGNlcHRpb25Pcjx2b2lkPiBwb3N0TWVzc2FnZShKU0M6OkV4ZWNTdGF0ZSYsIERPTVdp
bmRvdyYgY2FsbGVyV2luZG93LCBKU0M6OkpTVmFsdWUgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiB0
YXJnZXRPcmlnaW4sIFZlY3RvcjxKU0M6OlN0cm9uZzxKU0M6OkpTT2JqZWN0Pj4mJik7CiAgICAg
dm9pZCBwb3N0TWVzc2FnZVRpbWVyRmlyZWQoUG9zdE1lc3NhZ2VUaW1lciYpOwotICAgIHZvaWQg
ZGlzcGF0Y2hNZXNzYWdlRXZlbnRXaXRoT3JpZ2luQ2hlY2soU2VjdXJpdHlPcmlnaW4qIGludGVu
ZGVkVGFyZ2V0T3JpZ2luLCBFdmVudCYsIFBhc3NSZWZQdHI8SW5zcGVjdG9yOjpTY3JpcHRDYWxs
U3RhY2s+KTsKIAogICAgIHZvaWQgbGFuZ3VhZ2VzQ2hhbmdlZCgpOwogCkBAIC0yNzIsOSArMjQ4
LDkgQEAgcHVibGljOgogCiAgICAgLy8gRXZlbnRzCiAgICAgLy8gRXZlbnRUYXJnZXQgQVBJCi0g
ICAgYm9vbCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBS
ZWY8RXZlbnRMaXN0ZW5lcj4mJiwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmKSBvdmVy
cmlkZTsKLSAgICBib29sIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIEV2ZW50TGlzdGVuZXImLCBjb25zdCBMaXN0ZW5lck9wdGlvbnMmKSBvdmVycmlk
ZTsKLSAgICB2b2lkIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkgb3ZlcnJpZGU7CisgICAgYm9v
bCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZl
bnRMaXN0ZW5lcj4mJiwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmKSBmaW5hbDsKKyAg
ICBib29sIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IEV2ZW50TGlzdGVuZXImLCBjb25zdCBMaXN0ZW5lck9wdGlvbnMmKSBmaW5hbDsKKyAgICB2b2lk
IHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzKCkgZmluYWw7CiAKICAgICB1c2luZyBFdmVudFRhcmdl
dDo6ZGlzcGF0Y2hFdmVudDsKICAgICBib29sIGRpc3BhdGNoRXZlbnQoRXZlbnQmLCBFdmVudFRh
cmdldCopOwpAQCAtMjg2LDggKzI2Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZmluaXNoZWRM
b2FkaW5nKCk7CiAKLSAgICB1c2luZyBSZWZDb3VudGVkPERPTVdpbmRvdz46OnJlZjsKLSAgICB1
c2luZyBSZWZDb3VudGVkPERPTVdpbmRvdz46OmRlcmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ6
OnJlZjsKKyAgICB1c2luZyBSZWZDb3VudGVkOjpkZXJlZjsKIAogICAgIC8vIEhUTUwgNSBrZXkv
dmFsdWUgc3RvcmFnZQogICAgIEV4Y2VwdGlvbk9yPFN0b3JhZ2UqPiBzZXNzaW9uU3RvcmFnZSgp
IGNvbnN0OwpAQCAtMzEzLDYgKzI4OSw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoV0VCX1RJTUlO
RykKICAgICBQZXJmb3JtYW5jZSogcGVyZm9ybWFuY2UoKSBjb25zdDsKICNlbmRpZgorCiAgICAg
ZG91YmxlIG5vd1RpbWVzdGFtcCgpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oSU9TKQpAQCAtMzQ3
LDE2ICszMjQsMjEgQEAgcHVibGljOgogICAgIFdlYWtQdHI8RE9NV2luZG93PiBjcmVhdGVXZWFr
UHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KIAogcHJp
dmF0ZToKLSAgICBleHBsaWNpdCBET01XaW5kb3coRG9jdW1lbnQqKTsKKyAgICBleHBsaWNpdCBE
T01XaW5kb3coRG9jdW1lbnQmKTsKKworICAgIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIGV2ZW50VGFy
Z2V0SW50ZXJmYWNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gRE9NV2luZG93RXZlbnRUYXJnZXRJ
bnRlcmZhY2VUeXBlOyB9CisgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIENvbnRleHREZXN0cnVjdGlvbk9ic2Vy
dmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKworICAgIERPTVdpbmRvdyogdG9ET01X
aW5kb3coKSBmaW5hbDsKIAogICAgIFBhZ2UqIHBhZ2UoKTsKICAgICBib29sIGFsbG93ZWRUb0No
YW5nZVdpbmRvd0dlb21ldHJ5KCkgY29uc3Q7CiAKLSAgICB2b2lkIGZyYW1lRGVzdHJveWVkKCkg
b3ZlcnJpZGU7Ci0gICAgdm9pZCB3aWxsRGV0YWNoUGFnZSgpIG92ZXJyaWRlOworICAgIHZvaWQg
ZnJhbWVEZXN0cm95ZWQoKSBmaW5hbDsKKyAgICB2b2lkIHdpbGxEZXRhY2hQYWdlKCkgZmluYWw7
CiAKLSAgICB2b2lkIHJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJpZGUgeyByZWYoKTsgfQotICAgIHZv
aWQgZGVyZWZFdmVudFRhcmdldCgpIG92ZXJyaWRlIHsgZGVyZWYoKTsgfQorICAgIHZvaWQgcmVm
RXZlbnRUYXJnZXQoKSBmaW5hbCB7IHJlZigpOyB9CisgICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0
KCkgZmluYWwgeyBkZXJlZigpOyB9CiAKICAgICBzdGF0aWMgUmVmUHRyPEZyYW1lPiBjcmVhdGVX
aW5kb3coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IEF0b21pY1N0cmluZyYgZnJhbWVO
YW1lLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYsIERPTVdpbmRvdyYgYWN0aXZlV2luZG93LCBGcmFt
ZSYgZmlyc3RGcmFtZSwgRnJhbWUmIG9wZW5lckZyYW1lLCBzdGQ6OmZ1bmN0aW9uPHZvaWQoRE9N
V2luZG93Jik+IHByZXBhcmVEaWFsb2dGdW5jdGlvbiA9IG51bGxwdHIpOwogICAgIGJvb2wgaXNJ
bnNlY3VyZVNjcmlwdEFjY2VzcyhET01XaW5kb3cmIGFjdGl2ZVdpbmRvdywgY29uc3QgU3RyaW5n
JiB1cmxTdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3dQ
cm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcApp
bmRleCBhMzc3MGU4ZTcwMGM2NTgyNjI2YzY0Yjk4NWZkZWM2ZmMwN2YzM2Y1Li41NTA5NmI2NGFh
YTdmMjQ5MzFhMmM3MTlhN2U1YzYwOWVkNTBmODU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvd1Byb3BlcnR5LmNwcApAQCAtNDIsMTQgKzQyLDE0IEBAIERPTVdpbmRvd1Byb3BlcnR5
OjpET01XaW5kb3dQcm9wZXJ0eShGcmFtZSogZnJhbWUpCiAgICAgLy8gV2Ugc2hvdWxkIGZpeCB0
aGF0LiAgPHJkYXI6Ly9wcm9ibGVtLzExNTY3MTMyPgogICAgIGlmIChtX2ZyYW1lKSB7CiAgICAg
ICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdyA9IG1fZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRv
dygpOwotICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ctPnJlZ2lzdGVyUHJvcGVydHkodGhp
cyk7CisgICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+cmVnaXN0ZXJQcm9wZXJ0eSgqdGhp
cyk7CiAgICAgfQogfQogCiBET01XaW5kb3dQcm9wZXJ0eTo6fkRPTVdpbmRvd1Byb3BlcnR5KCkK
IHsKICAgICBpZiAobV9hc3NvY2lhdGVkRE9NV2luZG93KQotICAgICAgICBtX2Fzc29jaWF0ZWRE
T01XaW5kb3ctPnVucmVnaXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAgICAgICAgbV9hc3NvY2lhdGVk
RE9NV2luZG93LT51bnJlZ2lzdGVyUHJvcGVydHkoKnRoaXMpOwogCiAgICAgbV9hc3NvY2lhdGVk
RE9NV2luZG93ID0gbnVsbHB0cjsKICAgICBtX2ZyYW1lID0gbnVsbHB0cjsKQEAgLTg2LDcgKzg2
LDcgQEAgdm9pZCBET01XaW5kb3dQcm9wZXJ0eTo6d2lsbERlc3Ryb3lHbG9iYWxPYmplY3RJbkNh
Y2hlZEZyYW1lKCkKICAgICAvLyBET01XaW5kb3dQcm9wZXJ0eSBsaWZldGltZSBpc24ndCB0aWVk
IGRpcmVjdGx5IHRvIHRoZSBET01XaW5kb3cgaXRzZWxmIHNvIGl0IGlzIGltcG9ydGFudCB0aGF0
IGl0IHVucmVnaXN0ZXIKICAgICAvLyBpdHNlbGYgZnJvbSBhbnkgRE9NV2luZG93IGl0IGlzIGFz
c29jaWF0ZWQgd2l0aCBpZiB0aGF0IERPTVdpbmRvdyBpcyBnb2luZyBhd2F5LgogICAgIGlmICht
X2Fzc29jaWF0ZWRET01XaW5kb3cpCi0gICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+dW5y
ZWdpc3RlclByb3BlcnR5KHRoaXMpOworICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ctPnVu
cmVnaXN0ZXJQcm9wZXJ0eSgqdGhpcyk7CiAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93ID0gbnVs
bHB0cjsKICAgICBtX2ZyYW1lID0gbnVsbHB0cjsKIH0KQEAgLTEwMCw3ICsxMDAsNyBAQCB2b2lk
IERPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJhbWUoKQogICAg
IC8vIERPTVdpbmRvd1Byb3BlcnR5IGxpZmV0aW1lIGlzbid0IHRpZWQgZGlyZWN0bHkgdG8gdGhl
IERPTVdpbmRvdyBpdHNlbGYgc28gaXQgaXMgaW1wb3J0YW50IHRoYXQgaXQgdW5yZWdpc3Rlcgog
ICAgIC8vIGl0c2VsZiBmcm9tIGFueSBET01XaW5kb3cgaXQgaXMgYXNzb2NpYXRlZCB3aXRoIGlm
IHRoYXQgRE9NV2luZG93IGlzIGdvaW5nIGF3YXkuCiAgICAgaWYgKG1fYXNzb2NpYXRlZERPTVdp
bmRvdykKLSAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93LT51bnJlZ2lzdGVyUHJvcGVydHko
dGhpcyk7CisgICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+dW5yZWdpc3RlclByb3BlcnR5
KCp0aGlzKTsKICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3cgPSBudWxscHRyOwogICAgIG1fZnJh
bWUgPSBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EZWJ1Z1Bh
Z2VPdmVybGF5cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNw
cAppbmRleCBjYWEwN2E0N2JlZThmMTljZWUzNDRlZmE1NzZmNTBlZDQ1MTQ3M2VhLi5hZjA4MDJi
YzhiZTgwMzgxZDEzMzA1M2Y3NzhmYzNhNzYzNjQzZTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RlYnVnUGFnZU92ZXJsYXlzLmNwcApAQCAtNDQsNyArNDQsNyBAQCBEZWJ1Z1BhZ2VPdmVybGF5
cyogRGVidWdQYWdlT3ZlcmxheXM6OnNoYXJlZERlYnVnT3ZlcmxheXM7CiAKIGNsYXNzIFJlZ2lv
bk92ZXJsYXkgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWdpb25PdmVybGF5PiwgcHVibGljIFBhZ2VP
dmVybGF5OjpDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlZ2lvbk92
ZXJsYXk+IGNyZWF0ZShNYWluRnJhbWUmLCBEZWJ1Z1BhZ2VPdmVybGF5czo6UmVnaW9uVHlwZSk7
CisgICAgc3RhdGljIFJlZlB0cjxSZWdpb25PdmVybGF5PiBjcmVhdGUoTWFpbkZyYW1lJiwgRGVi
dWdQYWdlT3ZlcmxheXM6OlJlZ2lvblR5cGUpOwogICAgIHZpcnR1YWwgflJlZ2lvbk92ZXJsYXko
KTsKIAogICAgIHZvaWQgcmVjb21wdXRlUmVnaW9uKCk7CkBAIC0xNDMsNyArMTQzLDcgQEAgYm9v
bCBOb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbk92ZXJsYXk6OnVwZGF0ZVJlZ2lvbigpCiAgICAgcmV0
dXJuIHJlZ2lvbkNoYW5nZWQ7CiB9CiAKLVBhc3NSZWZQdHI8UmVnaW9uT3ZlcmxheT4gUmVnaW9u
T3ZlcmxheTo6Y3JlYXRlKE1haW5GcmFtZSYgZnJhbWUsIERlYnVnUGFnZU92ZXJsYXlzOjpSZWdp
b25UeXBlIHJlZ2lvblR5cGUpCitSZWZQdHI8UmVnaW9uT3ZlcmxheT4gUmVnaW9uT3ZlcmxheTo6
Y3JlYXRlKE1haW5GcmFtZSYgZnJhbWUsIERlYnVnUGFnZU92ZXJsYXlzOjpSZWdpb25UeXBlIHJl
Z2lvblR5cGUpCiB7CiAgICAgc3dpdGNoIChyZWdpb25UeXBlKSB7CiAgICAgY2FzZSBEZWJ1Z1Bh
Z2VPdmVybGF5czo6UmVnaW9uVHlwZTo6V2hlZWxFdmVudEhhbmRsZXJzOgpAQCAtMTY1LDcgKzE2
NSw3IEBAIFJlZ2lvbk92ZXJsYXk6OlJlZ2lvbk92ZXJsYXkoTWFpbkZyYW1lJiBmcmFtZSwgQ29s
b3IgcmVnaW9uQ29sb3IpCiBSZWdpb25PdmVybGF5Ojp+UmVnaW9uT3ZlcmxheSgpCiB7CiAgICAg
aWYgKG1fb3ZlcmxheSkKLSAgICAgICAgbV9mcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51
bmluc3RhbGxQYWdlT3ZlcmxheShtX292ZXJsYXkuZ2V0KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9k
ZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAgbV9mcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51
bmluc3RhbGxQYWdlT3ZlcmxheSgqbV9vdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRv
Tm90RmFkZSk7CiB9CiAKIHZvaWQgUmVnaW9uT3ZlcmxheTo6d2lsbE1vdmVUb1BhZ2UoUGFnZU92
ZXJsYXkmLCBQYWdlKiBwYWdlKQpAQCAtMjQ4LDcgKzI0OCw3IEBAIFJlZ2lvbk92ZXJsYXkmIERl
YnVnUGFnZU92ZXJsYXlzOjplbnN1cmVSZWdpb25PdmVybGF5Rm9yRnJhbWUoTWFpbkZyYW1lJiBm
cmFtZSwKIHZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OnNob3dSZWdpb25PdmVybGF5KE1haW5GcmFt
ZSYgZnJhbWUsIFJlZ2lvblR5cGUgcmVnaW9uVHlwZSkKIHsKICAgICBSZWdpb25PdmVybGF5JiB2
aXN1YWxpemVyID0gZW5zdXJlUmVnaW9uT3ZlcmxheUZvckZyYW1lKGZyYW1lLCByZWdpb25UeXBl
KTsKLSAgICBmcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXko
JnZpc3VhbGl6ZXIub3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7
CisgICAgZnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KHZp
c3VhbGl6ZXIub3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiB9
CiAKIHZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OmhpZGVSZWdpb25PdmVybGF5KE1haW5GcmFtZSYg
ZnJhbWUsIFJlZ2lvblR5cGUgcmVnaW9uVHlwZSkKQEAgLTI1Nyw3ICsyNTcsNyBAQCB2b2lkIERl
YnVnUGFnZU92ZXJsYXlzOjpoaWRlUmVnaW9uT3ZlcmxheShNYWluRnJhbWUmIGZyYW1lLCBSZWdp
b25UeXBlIHJlZ2lvblR5cAogICAgIGlmIChpdCAhPSBtX2ZyYW1lUmVnaW9uT3ZlcmxheXMuZW5k
KCkpIHsKICAgICAgICAgYXV0byYgdmlzdWFsaXplcnMgPSBpdC0+dmFsdWU7CiAgICAgICAgIGlm
IChSZWdpb25PdmVybGF5KiB2aXN1YWxpemVyID0gdmlzdWFsaXplcnNbaW5kZXhPZihyZWdpb25U
eXBlKV0uZ2V0KCkpIHsKLSAgICAgICAgICAgIGZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigp
LnVuaW5zdGFsbFBhZ2VPdmVybGF5KCZ2aXN1YWxpemVyLT5vdmVybGF5KCksIFBhZ2VPdmVybGF5
OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAgICAgIGZyYW1lLnBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KHZpc3VhbGl6ZXItPm92ZXJsYXkoKSwgUGFn
ZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgICAgICAgICAgdmlzdWFsaXplcnNb
aW5kZXhPZihyZWdpb25UeXBlKV0gPSBudWxscHRyOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAppbmRleCBmMjMxOGEwM2MxNGJkMWRmODIzMjBj
YzA3Yzc4OTliMjk0MjdjNjQ2Li5kZjZjZmUwNGMyN2EzZjk4NDAyMjE5YTY2Yzg4MmIzZDQzYjZm
ZTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcApAQCAtMTk3LDcgKzE5
Nyw3IEBAIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRyYWdFeGl0ZWQoY29uc3QgRHJhZ0RhdGEmIGRy
YWdEYXRhKQogI2VuZGlmCiAgICAgICAgIFJlZlB0cjxEYXRhVHJhbnNmZXI+IGRhdGFUcmFuc2Zl
ciA9IERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AocG9saWN5LCBkcmFnRGF0YSk7
CiAgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0U291cmNlT3BlcmF0aW9uKGRyYWdEYXRhLmRyYWdn
aW5nU291cmNlT3BlcmF0aW9uTWFzaygpKTsKLSAgICAgICAgbV9wYWdlLm1haW5GcmFtZSgpLmV2
ZW50SGFuZGxlcigpLmNhbmNlbERyYWdBbmREcm9wKGNyZWF0ZU1vdXNlRXZlbnQoZHJhZ0RhdGEp
LCBkYXRhVHJhbnNmZXIuZ2V0KCkpOworICAgICAgICBtX3BhZ2UubWFpbkZyYW1lKCkuZXZlbnRI
YW5kbGVyKCkuY2FuY2VsRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChkcmFnRGF0YSksICpk
YXRhVHJhbnNmZXIpOwogICAgICAgICBkYXRhVHJhbnNmZXItPnNldEFjY2Vzc1BvbGljeShEYXRh
VHJhbnNmZXJBY2Nlc3NQb2xpY3k6Ok51bWIpOyAvLyBJbnZhbGlkYXRlIGRhdGFUcmFuc2ZlciBo
ZXJlIGZvciBzZWN1cml0eS4KICAgICB9CiAgICAgbW91c2VNb3ZlZEludG9Eb2N1bWVudChudWxs
cHRyKTsKQEAgLTIyNyw3ICsyMjcsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpwZXJmb3JtRHJh
Z09wZXJhdGlvbihjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgICAgICAvLyBTZW5k
aW5nIGFuIGV2ZW50IGNhbiByZXN1bHQgaW4gdGhlIGRlc3RydWN0aW9uIG9mIHRoZSB2aWV3IGFu
ZCBwYXJ0LgogICAgICAgICAgICAgUmVmUHRyPERhdGFUcmFuc2Zlcj4gZGF0YVRyYW5zZmVyID0g
RGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcChEYXRhVHJhbnNmZXJBY2Nlc3NQb2xp
Y3k6OlJlYWRhYmxlLCBkcmFnRGF0YSk7CiAgICAgICAgICAgICBkYXRhVHJhbnNmZXItPnNldFNv
dXJjZU9wZXJhdGlvbihkcmFnRGF0YS5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2soKSk7Ci0g
ICAgICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS5w
ZXJmb3JtRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChkcmFnRGF0YSksIGRhdGFUcmFuc2Zl
ci5nZXQoKSk7CisgICAgICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gbWFpbkZyYW1lLT5ldmVu
dEhhbmRsZXIoKS5wZXJmb3JtRHJhZ0FuZERyb3AoY3JlYXRlTW91c2VFdmVudChkcmFnRGF0YSks
ICpkYXRhVHJhbnNmZXIpOwogICAgICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRBY2Nlc3NQb2xp
Y3koRGF0YVRyYW5zZmVyQWNjZXNzUG9saWN5OjpOdW1iKTsgLy8gSW52YWxpZGF0ZSBkYXRhVHJh
bnNmZXIgaGVyZSBmb3Igc2VjdXJpdHkuCiAgICAgICAgIH0KICAgICAgICAgaWYgKHByZXZlbnRl
ZERlZmF1bHQpIHsKQEAgLTU0Nyw3ICs1NDcsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjpjb25j
bHVkZUVkaXREcmFnKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIAogICAgIGlmIChyb290RWRp
dGFibGVFbGVtZW50KSB7CiAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSByb290RWRpdGFibGVF
bGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCkpCi0gICAgICAgICAgICBmcmFtZS0+ZXZlbnRIYW5k
bGVyKCkudXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKHJvb3RFZGl0YWJsZUVs
ZW1lbnQuZ2V0KCkpOworICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLnVwZGF0ZURy
YWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRlZCgqcm9vdEVkaXRhYmxlRWxlbWVudCk7CiAgICAg
fQogCiAgICAgcmV0dXJuIHRydWU7CkBAIC02MjEsNyArNjIxLDcgQEAgYm9vbCBEcmFnQ29udHJv
bGxlcjo6dHJ5REhUTUxEcmFnKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSwgRHJhZ09wZXJhdGlv
biYgb3BlcmEKICAgICBkYXRhVHJhbnNmZXItPnNldFNvdXJjZU9wZXJhdGlvbihzcmNPcE1hc2sp
OwogCiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IGV2ZW50ID0gY3JlYXRlTW91c2VFdmVudChkcmFn
RGF0YSk7Ci0gICAgaWYgKCFtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLnVwZGF0ZURyYWdBbmRE
cm9wKGV2ZW50LCBkYXRhVHJhbnNmZXIuZ2V0KCkpKSB7CisgICAgaWYgKCFtYWluRnJhbWUtPmV2
ZW50SGFuZGxlcigpLnVwZGF0ZURyYWdBbmREcm9wKGV2ZW50LCAqZGF0YVRyYW5zZmVyKSkgewog
ICAgICAgICBkYXRhVHJhbnNmZXItPnNldEFjY2Vzc1BvbGljeShEYXRhVHJhbnNmZXJBY2Nlc3NQ
b2xpY3k6Ok51bWIpOyAvLyBJbnZhbGlkYXRlIGRhdGFUcmFuc2ZlciBoZXJlIGZvciBzZWN1cml0
eS4KICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5k
bGVyLmNwcAppbmRleCA5MjNlNDE2OWY3OGQwYWZmMGFjYjMzZGM2OTFiOGE5YTU4MGQzMGVkLi41
YTVhMzVlNjhhN2M4OTg4YjZlMTMwNGU0ODlhMjEyYWJkOWM3M2M0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwNi0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdo
dCAoQykgMjAwNiBBbGV4ZXkgUHJvc2t1cnlha292IChhcEB3ZWJraXQub3JnKQogICogQ29weXJp
Z2h0IChDKSAyMDEyIERpZ2lhIFBsYy4gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgpA
QCAtMjgsMTYgKzI4LDEyIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRXZlbnRI
YW5kbGVyLmgiCiAKLSNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQXV0b3Nj
cm9sbENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNo
cm9tZUNsaWVudC5oIgotI2luY2x1ZGUgIkN1cnNvci5oIgogI2luY2x1ZGUgIkN1cnNvckxpc3Qu
aCIKLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkRvY3VtZW50RXZlbnRRdWV1ZS5o
IgogI2luY2x1ZGUgIkRyYWdDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRHJhZ1N0YXRlLmgiCiAj
aW5jbHVkZSAiRWRpdG9yLmgiCkBAIC05NCwxMyArOTAsMTMgQEAKICNpbmNsdWRlICJVc2VyVHlw
aW5nR2VzdHVyZUluZGljYXRvci5oIgogI2luY2x1ZGUgIlZpc2libGVVbml0cy5oIgogI2luY2x1
ZGUgIldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJXaGVlbEV2ZW50RGVsdGFGaWx0ZXIuaCIKICNp
bmNsdWRlICJXaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oIgogI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgi
CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUu
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGli
RXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogI2lmIEVOQUJMRShJT1NfVE9V
Q0hfRVZFTlRTKQogI2luY2x1ZGUgIlBsYXRmb3JtVG91Y2hFdmVudElPUy5oIgpAQCAtMTc2LDIx
ICsxNzIsNiBAQCBjb25zdCBpbnQgbWF4aW11bUN1cnNvclNpemUgPSAxMjg7CiBjb25zdCBkb3Vi
bGUgbWluaW11bUN1cnNvclNjYWxlID0gMC4wMDE7CiAjZW5kaWYKIAotZW51bSBOb0N1cnNvckNo
YW5nZVR5cGUgeyBOb0N1cnNvckNoYW5nZSB9OwotCi1jbGFzcyBPcHRpb25hbEN1cnNvciB7Ci1w
dWJsaWM6Ci0gICAgT3B0aW9uYWxDdXJzb3IoTm9DdXJzb3JDaGFuZ2VUeXBlKSA6IG1faXNDdXJz
b3JDaGFuZ2UoZmFsc2UpIHsgfQotICAgIE9wdGlvbmFsQ3Vyc29yKGNvbnN0IEN1cnNvciYgY3Vy
c29yKSA6IG1faXNDdXJzb3JDaGFuZ2UodHJ1ZSksIG1fY3Vyc29yKGN1cnNvcikgeyB9Ci0KLSAg
ICBib29sIGlzQ3Vyc29yQ2hhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9pc0N1cnNvckNoYW5nZTsg
fQotICAgIGNvbnN0IEN1cnNvciYgY3Vyc29yKCkgY29uc3QgeyBBU1NFUlQobV9pc0N1cnNvckNo
YW5nZSk7IHJldHVybiBtX2N1cnNvcjsgfQotCi1wcml2YXRlOgotICAgIGJvb2wgbV9pc0N1cnNv
ckNoYW5nZTsKLSAgICBDdXJzb3IgbV9jdXJzb3I7Ci19OwotCiBjbGFzcyBNYXhpbXVtRHVyYXRp
b25UcmFja2VyIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBNYXhpbXVtRHVyYXRpb25UcmFja2Vy
KGRvdWJsZSAqbWF4RHVyYXRpb24pCkBAIC00MDUsMTIgKzM4NiwxNCBAQCBFdmVudEhhbmRsZXI6
On5FdmVudEhhbmRsZXIoKQogfQogICAgIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCisKIERy
YWdTdGF0ZSYgRXZlbnRIYW5kbGVyOjpkcmFnU3RhdGUoKQogewogICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxEcmFnU3RhdGU+IHN0YXRlOwogICAgIHJldHVybiBzdGF0ZTsKIH0KLSNlbmRpZiAv
LyBFTkFCTEUoRFJBR19TVVBQT1JUKQorCisjZW5kaWYKICAgICAKIHZvaWQgRXZlbnRIYW5kbGVy
OjpjbGVhcigpCiB7CkBAIC04MDAsMTQgKzc4MywxNSBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFu
ZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIGV2
ZQogCiAgICAgbV9tb3VzZVByZXNzTm9kZSA9IGV2ZW50LnRhcmdldE5vZGUoKTsKICAgICBtX2Zy
YW1lLmRvY3VtZW50KCktPnNldEZvY3VzTmF2aWdhdGlvblN0YXJ0aW5nTm9kZShldmVudC50YXJn
ZXROb2RlKCkpOworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICBtX2RyYWdTdGFydFBv
cyA9IGV2ZW50LmV2ZW50KCkucG9zaXRpb24oKTsKKyAgICBtX2RyYWdTdGFydFBvc2l0aW9uID0g
ZXZlbnQuZXZlbnQoKS5wb3NpdGlvbigpOwogI2VuZGlmCiAKLSAgICBib29sIHN3YWxsb3dFdmVu
dCA9IGZhbHNlOwogICAgIG1fbW91c2VQcmVzc2VkID0gdHJ1ZTsKICAgICBtX3NlbGVjdGlvbklu
aXRpYXRpb25TdGF0ZSA9IEhhdmVOb3RTdGFydGVkU2VsZWN0aW9uOwogCisgICAgYm9vbCBzd2Fs
bG93RXZlbnQgPSBmYWxzZTsKICAgICBpZiAoZXZlbnQuZXZlbnQoKS5jbGlja0NvdW50KCkgPT0g
MikKICAgICAgICAgc3dhbGxvd0V2ZW50ID0gaGFuZGxlTW91c2VQcmVzc0V2ZW50RG91YmxlQ2xp
Y2soZXZlbnQpOwogICAgIGVsc2UgaWYgKGV2ZW50LmV2ZW50KCkuY2xpY2tDb3VudCgpID49IDMp
CkBAIC05NzcsMTEgKzk2MSwxMSBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlU2VsZWN0aW9u
Rm9yTW91c2VEcmFnKGNvbnN0IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bAogICAgICAgICBu
ZXdTZWxlY3Rpb24uc2V0RXh0ZW50KHBvc2l0aW9uQWZ0ZXJOb2RlKHJvb3RVc2VyU2VsZWN0QWxs
Rm9yTW91c2VQcmVzc05vZGUpLmRvd25zdHJlYW0oQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpKTsK
ICAgICB9IGVsc2UgewogICAgICAgICAvLyBSZXNldCBiYXNlIGZvciB1c2VyIHNlbGVjdCBhbGwg
d2hlbiBiYXNlIGlzIGluc2lkZSB1c2VyLXNlbGVjdC1hbGwgYXJlYSBhbmQgZXh0ZW50IDwgYmFz
ZS4KLSAgICAgICAgaWYgKHJvb3RVc2VyU2VsZWN0QWxsRm9yTW91c2VQcmVzc05vZGUgJiYgY29t
cGFyZVBvc2l0aW9ucyh0YXJnZXQtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9yUG9pbnQoaGl0VGVz
dFJlc3VsdC5sb2NhbFBvaW50KCksIG51bGxwdHIpLCBtX21vdXNlUHJlc3NOb2RlLT5yZW5kZXJl
cigpLT5wb3NpdGlvbkZvclBvaW50KG1fZHJhZ1N0YXJ0UG9zLCBudWxscHRyKSkgPCAwKQorICAg
ICAgICBpZiAocm9vdFVzZXJTZWxlY3RBbGxGb3JNb3VzZVByZXNzTm9kZSAmJiBjb21wYXJlUG9z
aXRpb25zKHRhcmdldC0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChoaXRUZXN0UmVzdWx0
LmxvY2FsUG9pbnQoKSwgbnVsbHB0ciksIG1fbW91c2VQcmVzc05vZGUtPnJlbmRlcmVyKCktPnBv
c2l0aW9uRm9yUG9pbnQobV9kcmFnU3RhcnRQb3NpdGlvbiwgbnVsbHB0cikpIDwgMCkKICAgICAg
ICAgICAgIG5ld1NlbGVjdGlvbi5zZXRCYXNlKHBvc2l0aW9uQWZ0ZXJOb2RlKHJvb3RVc2VyU2Vs
ZWN0QWxsRm9yTW91c2VQcmVzc05vZGUpLmRvd25zdHJlYW0oQ2FuQ3Jvc3NFZGl0aW5nQm91bmRh
cnkpKTsKICAgICAgICAgCiAgICAgICAgIE5vZGUqIHJvb3RVc2VyU2VsZWN0QWxsRm9yVGFyZ2V0
ID0gUG9zaXRpb246OnJvb3RVc2VyU2VsZWN0QWxsRm9yTm9kZSh0YXJnZXQpOwotICAgICAgICBp
ZiAocm9vdFVzZXJTZWxlY3RBbGxGb3JUYXJnZXQgJiYgbV9tb3VzZVByZXNzTm9kZS0+cmVuZGVy
ZXIoKSAmJiBjb21wYXJlUG9zaXRpb25zKHRhcmdldC0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQ
b2ludChoaXRUZXN0UmVzdWx0LmxvY2FsUG9pbnQoKSwgbnVsbHB0ciksIG1fbW91c2VQcmVzc05v
ZGUtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9yUG9pbnQobV9kcmFnU3RhcnRQb3MsIG51bGxwdHIp
KSA8IDApCisgICAgICAgIGlmIChyb290VXNlclNlbGVjdEFsbEZvclRhcmdldCAmJiBtX21vdXNl
UHJlc3NOb2RlLT5yZW5kZXJlcigpICYmIGNvbXBhcmVQb3NpdGlvbnModGFyZ2V0LT5yZW5kZXJl
cigpLT5wb3NpdGlvbkZvclBvaW50KGhpdFRlc3RSZXN1bHQubG9jYWxQb2ludCgpLCBudWxscHRy
KSwgbV9tb3VzZVByZXNzTm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChtX2RyYWdT
dGFydFBvc2l0aW9uLCBudWxscHRyKSkgPCAwKQogICAgICAgICAgICAgbmV3U2VsZWN0aW9uLnNl
dEV4dGVudChwb3NpdGlvbkJlZm9yZU5vZGUocm9vdFVzZXJTZWxlY3RBbGxGb3JUYXJnZXQpLnVw
c3RyZWFtKENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KSk7CiAgICAgICAgIGVsc2UgaWYgKHJvb3RV
c2VyU2VsZWN0QWxsRm9yVGFyZ2V0ICYmIG1fbW91c2VQcmVzc05vZGUtPnJlbmRlcmVyKCkpCiAg
ICAgICAgICAgICBuZXdTZWxlY3Rpb24uc2V0RXh0ZW50KHBvc2l0aW9uQWZ0ZXJOb2RlKHJvb3RV
c2VyU2VsZWN0QWxsRm9yVGFyZ2V0KS5kb3duc3RyZWFtKENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5
KSk7CkBAIC0xMDQ3LDcgKzEwMzEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VS
ZWxlYXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZQogICAgIC8v
IGVkaXRpbmcsIHBsYWNlIHRoZSBjYXJldC4KICAgICBpZiAobV9tb3VzZURvd25XYXNTaW5nbGVD
bGlja0luU2VsZWN0aW9uICYmIG1fc2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlICE9IEV4dGVuZGVk
U2VsZWN0aW9uCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLSAgICAgICAgICAgICYmIG1fZHJh
Z1N0YXJ0UG9zID09IGV2ZW50LmV2ZW50KCkucG9zaXRpb24oKQorICAgICAgICAgICAgJiYgbV9k
cmFnU3RhcnRQb3NpdGlvbiA9PSBldmVudC5ldmVudCgpLnBvc2l0aW9uKCkKICNlbmRpZgogICAg
ICAgICAgICAgJiYgbV9mcmFtZS5zZWxlY3Rpb24oKS5pc1JhbmdlKCkKICAgICAgICAgICAgICYm
IGV2ZW50LmV2ZW50KCkuYnV0dG9uKCkgIT0gUmlnaHRCdXR0b24pIHsKQEAgLTEwODQsMTIgKzEw
NjgsMTIgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRpZFBhblNjcm9sbFN0b3AoKQogICAgIG1fYXV0
b3Njcm9sbENvbnRyb2xsZXItPmRpZFBhblNjcm9sbFN0b3AoKTsKIH0KIAotdm9pZCBFdmVudEhh
bmRsZXI6OnN0YXJ0UGFuU2Nyb2xsaW5nKFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyKQordm9pZCBF
dmVudEhhbmRsZXI6OnN0YXJ0UGFuU2Nyb2xsaW5nKFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQog
ewogI2lmICFQTEFURk9STShJT1MpCi0gICAgaWYgKCFpczxSZW5kZXJCb3g+KCpyZW5kZXJlcikp
CisgICAgaWYgKCFpczxSZW5kZXJCb3g+KHJlbmRlcmVyKSkKICAgICAgICAgcmV0dXJuOwotICAg
IG1fYXV0b3Njcm9sbENvbnRyb2xsZXItPnN0YXJ0UGFuU2Nyb2xsaW5nKGRvd25jYXN0PFJlbmRl
ckJveD4ocmVuZGVyZXIpLCBsYXN0S25vd25Nb3VzZVBvc2l0aW9uKCkpOworICAgIG1fYXV0b3Nj
cm9sbENvbnRyb2xsZXItPnN0YXJ0UGFuU2Nyb2xsaW5nKCZkb3duY2FzdDxSZW5kZXJCb3g+KHJl
bmRlcmVyKSwgbGFzdEtub3duTW91c2VQb3NpdGlvbigpKTsKICAgICBpbnZhbGlkYXRlQ2xpY2so
KTsKICNlbmRpZgogfQpAQCAtMTM3NCwyNCArMTM1OCwyOCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
dXBkYXRlQ3Vyc29yKCkKICAgICBIaXRUZXN0UmVzdWx0IHJlc3VsdCh2aWV3LT53aW5kb3dUb0Nv
bnRlbnRzKG1fbGFzdEtub3duTW91c2VQb3NpdGlvbikpOwogICAgIHJlbmRlclZpZXctPmhpdFRl
c3QocmVxdWVzdCwgcmVzdWx0KTsKIAotICAgIE9wdGlvbmFsQ3Vyc29yIG9wdGlvbmFsQ3Vyc29y
ID0gc2VsZWN0Q3Vyc29yKHJlc3VsdCwgc2hpZnRLZXkpOwotICAgIGlmIChvcHRpb25hbEN1cnNv
ci5pc0N1cnNvckNoYW5nZSgpKSB7Ci0gICAgICAgIG1fY3VycmVudE1vdXNlQ3Vyc29yID0gb3B0
aW9uYWxDdXJzb3IuY3Vyc29yKCk7Ci0gICAgICAgIHZpZXctPnNldEN1cnNvcihtX2N1cnJlbnRN
b3VzZUN1cnNvcik7CisgICAgdXBkYXRlQ3Vyc29yKCp2aWV3LCByZXN1bHQsIHNoaWZ0S2V5KTsK
K30KKwordm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZUN1cnNvcihGcmFtZVZpZXcmIHZpZXcsIGNv
bnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaGlmdEtleSkKK3sKKyAgICBpZiAoYXV0
byBvcHRpb25hbEN1cnNvciA9IHNlbGVjdEN1cnNvcihyZXN1bHQsIHNoaWZ0S2V5KSkgeworICAg
ICAgICBtX2N1cnJlbnRNb3VzZUN1cnNvciA9IFdURk1vdmUob3B0aW9uYWxDdXJzb3IudmFsdWUo
KSk7CisgICAgICAgIHZpZXcuc2V0Q3Vyc29yKG1fY3VycmVudE1vdXNlQ3Vyc29yKTsKICAgICB9
CiB9CiAKLU9wdGlvbmFsQ3Vyc29yIEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKGNvbnN0IEhp
dFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaGlmdEtleSkKK3N0ZDo6b3B0aW9uYWw8Q3Vyc29y
PiBFdmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQs
IGJvb2wgc2hpZnRLZXkpCiB7CiAgICAgaWYgKG1fcmVzaXplTGF5ZXIgJiYgbV9yZXNpemVMYXll
ci0+aW5SZXNpemVNb2RlKCkpCi0gICAgICAgIHJldHVybiBOb0N1cnNvckNoYW5nZTsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIAogICAgIGlmICghbV9mcmFtZS5wYWdlKCkpCi0gICAg
ICAgIHJldHVybiBOb0N1cnNvckNoYW5nZTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
IAogI2lmIEVOQUJMRShQQU5fU0NST0xMSU5HKQogICAgIGlmIChtX2ZyYW1lLm1haW5GcmFtZSgp
LmV2ZW50SGFuZGxlcigpLnBhblNjcm9sbEluUHJvZ3Jlc3MoKSkKLSAgICAgICAgcmV0dXJuIE5v
Q3Vyc29yQ2hhbmdlOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogI2VuZGlmCiAKICAg
ICBSZWY8RnJhbWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUpOwpAQCAtMTQwNiw3ICsxMzk0LDcg
QEAgT3B0aW9uYWxDdXJzb3IgRXZlbnRIYW5kbGVyOjpzZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVz
dFJlc3VsdCYgcmVzdWx0LCBib29sIHNoaWYKIAogICAgIE5vZGUqIG5vZGUgPSByZXN1bHQudGFy
Z2V0Tm9kZSgpOwogICAgIGlmICghbm9kZSkKLSAgICAgICAgcmV0dXJuIE5vQ3Vyc29yQ2hhbmdl
OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAgICAgYXV0byByZW5kZXJlciA9IG5v
ZGUtPnJlbmRlcmVyKCk7CiAgICAgYXV0byogc3R5bGUgPSByZW5kZXJlciA/ICZyZW5kZXJlci0+
c3R5bGUoKSA6IG51bGxwdHI7CkBAIC0xNDI4LDcgKzE0MTYsNyBAQCBPcHRpb25hbEN1cnNvciBF
dmVudEhhbmRsZXI6OnNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGJv
b2wgc2hpZgogICAgICAgICBjYXNlIFNldEN1cnNvcjoKICAgICAgICAgICAgIHJldHVybiBvdmVy
cmlkZUN1cnNvcjsKICAgICAgICAgY2FzZSBEb05vdFNldEN1cnNvcjoKLSAgICAgICAgICAgIHJl
dHVybiBOb0N1cnNvckNoYW5nZTsKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAg
ICAgICAgIH0KICAgICB9CiAKQEAgLTE5NDcsMTUgKzE5MzUsMTAgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgcGxhdGZv
cm1Nb3VzZUUKICAgICAgICAgLy8gbm9kZSB0byBiZSBkZXRhY2hlZCBmcm9tIGl0cyBGcmFtZVZp
ZXcsIGluIHdoaWNoIGNhc2UgdGhlIGV2ZW50IHNob3VsZCBub3QgYmUgcGFzc2VkLgogICAgICAg
ICBpZiAobmV3U3ViZnJhbWUtPnZpZXcoKSkKICAgICAgICAgICAgIHN3YWxsb3dFdmVudCB8PSBw
YXNzTW91c2VNb3ZlRXZlbnRUb1N1YmZyYW1lKG1vdXNlRXZlbnQsIG5ld1N1YmZyYW1lLmdldCgp
LCBob3ZlcmVkTm9kZSk7Ci0jaWYgRU5BQkxFKENVUlNPUl9TVVBQT1JUKQogICAgIH0gZWxzZSB7
Ci0gICAgICAgIGlmIChGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLnZpZXcoKSkgewotICAgICAg
ICAgICAgT3B0aW9uYWxDdXJzb3Igb3B0aW9uYWxDdXJzb3IgPSBzZWxlY3RDdXJzb3IobW91c2VF
dmVudC5oaXRUZXN0UmVzdWx0KCksIHBsYXRmb3JtTW91c2VFdmVudC5zaGlmdEtleSgpKTsKLSAg
ICAgICAgICAgIGlmIChvcHRpb25hbEN1cnNvci5pc0N1cnNvckNoYW5nZSgpKSB7Ci0gICAgICAg
ICAgICAgICAgbV9jdXJyZW50TW91c2VDdXJzb3IgPSBvcHRpb25hbEN1cnNvci5jdXJzb3IoKTsK
LSAgICAgICAgICAgICAgICB2aWV3LT5zZXRDdXJzb3IobV9jdXJyZW50TW91c2VDdXJzb3IpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9CisjaWYgRU5BQkxFKENVUlNPUl9TVVBQT1JUKQorICAg
ICAgICBpZiAoYXV0byogdmlldyA9IG1fZnJhbWUudmlldygpKQorICAgICAgICAgICAgdXBkYXRl
Q3Vyc29yKCp2aWV3LCBtb3VzZUV2ZW50LmhpdFRlc3RSZXN1bHQoKSwgcGxhdGZvcm1Nb3VzZUV2
ZW50LnNoaWZ0S2V5KCkpOwogI2VuZGlmCiAgICAgfQogICAgIApAQCAtMTk2OCw3ICsxOTUxLDcg
QEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KGNvbnN0IFBsYXRmb3Jt
TW91c2VFdmVudCYgcGxhdGZvcm1Nb3VzZUUKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAg
IGlmICghc3dhbGxvd0V2ZW50KQogICAgICAgICBzd2FsbG93RXZlbnQgPSBoYW5kbGVNb3VzZURy
YWdnZWRFdmVudChtb3VzZUV2ZW50KTsKLSNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQor
I2VuZGlmCiAKICAgICByZXR1cm4gc3dhbGxvd0V2ZW50OwogfQpAQCAtMjIzNiw3ICsyMjE5LDcg
QEAgc3RhdGljIGJvb2wgZmluZERyb3Bab25lKE5vZGUqIHRhcmdldCwgRGF0YVRyYW5zZmVyKiBk
YXRhVHJhbnNmZXIpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogICAgIAotYm9vbCBFdmVudEhhbmRs
ZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERh
dGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQorYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdB
bmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2ZlciYgZGF0
YVRyYW5zZmVyKQogewogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9mcmFtZSk7CiAK
QEAgLTIyNzUsMTYgKzIyNTgsMTYgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdBbmRE
cm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2YKICAgICAgICAg
ICAgICAgICAvLyBmb3Igbm93IHdlIGRvbid0IGNhcmUgaWYgZXZlbnQgaGFuZGxlciBjYW5jZWxz
IGRlZmF1bHQgYmVoYXZpb3IsIHNpbmNlIHRoZXJlIGlzIG5vbmUKICAgICAgICAgICAgICAgICBk
aXNwYXRjaERyYWdTcmNFdmVudChldmVudE5hbWVzKCkuZHJhZ0V2ZW50LCBldmVudCk7CiAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdFdmVudChldmVudE5h
bWVzKCkuZHJhZ2VudGVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNmZXIpOwor
ICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdl
bnRlckV2ZW50LCAqbmV3VGFyZ2V0LCBldmVudCwgJmRhdGFUcmFuc2Zlcik7CiAgICAgICAgICAg
ICBpZiAoIWFjY2VwdCkKLSAgICAgICAgICAgICAgICBhY2NlcHQgPSBmaW5kRHJvcFpvbmUobmV3
VGFyZ2V0LmdldCgpLCBkYXRhVHJhbnNmZXIpOworICAgICAgICAgICAgICAgIGFjY2VwdCA9IGZp
bmREcm9wWm9uZShuZXdUYXJnZXQuZ2V0KCksICZkYXRhVHJhbnNmZXIpOwogICAgICAgICB9CiAK
ICAgICAgICAgaWYgKHRhcmdldElzRnJhbWUobV9kcmFnVGFyZ2V0LmdldCgpLCB0YXJnZXRGcmFt
ZSkpIHsKICAgICAgICAgICAgIGlmICh0YXJnZXRGcmFtZSkKICAgICAgICAgICAgICAgICBhY2Nl
cHQgPSB0YXJnZXRGcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQs
IGRhdGFUcmFuc2Zlcik7CiAgICAgICAgIH0gZWxzZSBpZiAobV9kcmFnVGFyZ2V0KQotICAgICAg
ICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50LCAqbV9k
cmFnVGFyZ2V0LCBldmVudCwgZGF0YVRyYW5zZmVyKTsKKyAgICAgICAgICAgIGRpc3BhdGNoRHJh
Z0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnbGVhdmVFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQs
ICZkYXRhVHJhbnNmZXIpOwogCiAgICAgICAgIGlmIChuZXdUYXJnZXQpIHsKICAgICAgICAgICAg
IC8vIFdlIGRvIG5vdCBleHBsaWNpdGx5IGNhbGwgZGlzcGF0Y2hEcmFnRXZlbnQgaGVyZSBiZWNh
dXNlIGl0IGNvdWxkIHVsdGltYXRlbHkgcmVzdWx0IGluIHRoZSBhcHBlYXJhbmNlIHRoYXQKQEAg
LTIzMDIsOSArMjI4NSw5IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcChj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmCiAgICAgICAgICAgICAg
ICAgLy8gZm9yIG5vdyB3ZSBkb24ndCBjYXJlIGlmIGV2ZW50IGhhbmRsZXIgY2FuY2VscyBkZWZh
dWx0IGJlaGF2aW9yLCBzaW5jZSB0aGVyZSBpcyBub25lCiAgICAgICAgICAgICAgICAgZGlzcGF0
Y2hEcmFnU3JjRXZlbnQoZXZlbnROYW1lcygpLmRyYWdFdmVudCwgZXZlbnQpOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygp
LmRyYWdvdmVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNmZXIpOworICAgICAg
ICAgICAgYWNjZXB0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdvdmVyRXZl
bnQsICpuZXdUYXJnZXQsIGV2ZW50LCAmZGF0YVRyYW5zZmVyKTsKICAgICAgICAgICAgIGlmICgh
YWNjZXB0KQotICAgICAgICAgICAgICAgIGFjY2VwdCA9IGZpbmREcm9wWm9uZShuZXdUYXJnZXQu
Z2V0KCksIGRhdGFUcmFuc2Zlcik7CisgICAgICAgICAgICAgICAgYWNjZXB0ID0gZmluZERyb3Ba
b25lKG5ld1RhcmdldC5nZXQoKSwgJmRhdGFUcmFuc2Zlcik7CiAgICAgICAgICAgICBtX3Nob3Vs
ZE9ubHlGaXJlRHJhZ092ZXJFdmVudCA9IGZhbHNlOwogICAgICAgICB9CiAgICAgfQpAQCAtMjMx
Miw3ICsyMjk1LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2YKICAgICByZXR1cm4gYWNjZXB0
OwogfQogCi12b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIpCit2b2lkIEV2
ZW50SGFuZGxlcjo6Y2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBl
dmVudCwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIpCiB7CiAgICAgUmVmPEZyYW1lPiBwcm90
ZWN0ZWRGcmFtZShtX2ZyYW1lKTsKIApAQCAtMjMyMywxMiArMjMwNiwxMiBAQCB2b2lkIEV2ZW50
SGFuZGxlcjo6Y2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVu
dCwgRGF0YVRyYW5zZgogICAgIH0gZWxzZSBpZiAobV9kcmFnVGFyZ2V0KSB7CiAgICAgICAgIGlm
IChkcmFnU3RhdGUoKS5zb3VyY2UgJiYgZHJhZ1N0YXRlKCkuc2hvdWxkRGlzcGF0Y2hFdmVudHMp
CiAgICAgICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVudChldmVudE5hbWVzKCkuZHJhZ0V2ZW50
LCBldmVudCk7Ci0gICAgICAgIGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnbGVh
dmVFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsIGRhdGFUcmFuc2Zlcik7CisgICAgICAgIGRp
c3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnbGVhdmVFdmVudCwgKm1fZHJhZ1Rhcmdl
dCwgZXZlbnQsICZkYXRhVHJhbnNmZXIpOwogICAgIH0KICAgICBjbGVhckRyYWdTdGF0ZSgpOwog
fQogCi1ib29sIEV2ZW50SGFuZGxlcjo6cGVyZm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3Jt
TW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2ZlciogZGF0YVRyYW5zZmVyKQorYm9vbCBFdmVu
dEhhbmRsZXI6OnBlcmZvcm1EcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2
ZW50LCBEYXRhVHJhbnNmZXImIGRhdGFUcmFuc2ZlcikKIHsKICAgICBSZWY8RnJhbWU+IHByb3Rl
Y3RlZEZyYW1lKG1fZnJhbWUpOwogCkBAIC0yMzM4LDcgKzIzMjEsNyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6cGVyZm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQs
IERhdGFUcmFucwogICAgICAgICBpZiAodGFyZ2V0RnJhbWUpCiAgICAgICAgICAgICBwcmV2ZW50
ZWREZWZhdWx0ID0gdGFyZ2V0RnJhbWUtPmV2ZW50SGFuZGxlcigpLnBlcmZvcm1EcmFnQW5kRHJv
cChldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICB9IGVsc2UgaWYgKG1fZHJhZ1RhcmdldCkKLSAg
ICAgICAgcHJldmVudGVkRGVmYXVsdCA9IGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5k
cm9wRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNmZXIpOworICAgICAgICBw
cmV2ZW50ZWREZWZhdWx0ID0gZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyb3BFdmVu
dCwgKm1fZHJhZ1RhcmdldCwgZXZlbnQsICZkYXRhVHJhbnNmZXIpOwogICAgIGNsZWFyRHJhZ1N0
YXRlKCk7CiAgICAgcmV0dXJuIHByZXZlbnRlZERlZmF1bHQ7CiB9CkBAIC0yMzUzLDkgKzIzMzYs
MTAgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyRHJhZ1N0YXRlKCkKICAgICBtX3NlbmRpbmdF
dmVudFRvU3VidmlldyA9IGZhbHNlOwogI2VuZGlmCiB9CisKICNlbmRpZiAvLyBFTkFCTEUoRFJB
R19TVVBQT1JUKQogCi12b2lkIEV2ZW50SGFuZGxlcjo6c2V0Q2FwdHVyaW5nTW91c2VFdmVudHNF
bGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCkKK3ZvaWQgRXZlbnRIYW5kbGVyOjpz
ZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKIHsKICAgICBt
X2NhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudCA9IGVsZW1lbnQ7CiAgICAgbV9ldmVudEhhbmRs
ZXJXaWxsUmVzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQgPSBmYWxzZTsKQEAgLTI1NjMs
NyArMjU0Nyw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIE5vZGUqIHRhcmdlCiAKICAgICAvLyBJZiBmb2N1cyBz
aGlmdCBpcyBibG9ja2VkLCB3ZSBlYXQgdGhlIGV2ZW50LgogICAgIGF1dG8qIHBhZ2UgPSBtX2Zy
YW1lLnBhZ2UoKTsKLSAgICBpZiAocGFnZSAmJiAhcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0
Rm9jdXNlZEVsZW1lbnQoZWxlbWVudCwgJm1fZnJhbWUpKQorICAgIGlmIChwYWdlICYmICFwYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChlbGVtZW50LCBtX2ZyYW1lKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0zNDExLDExICsz
Mzk1LDExIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkcmFnU291cmNlRW5kZWRBdChjb25zdCBQbGF0
Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEcmFnT3BlcmF0CiAgICAgbV9tb3VzZURvd25NYXlTdGFy
dERyYWcgPSBmYWxzZTsKIH0KIAotdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0ZUFm
dGVyRWRpdERyYWdJZk5lZWRlZChFbGVtZW50KiByb290RWRpdGFibGVFbGVtZW50KQordm9pZCBF
dmVudEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRlZChFbGVtZW50
JiByb290RWRpdGFibGVFbGVtZW50KQogewogICAgIC8vIElmIGluc2VydGluZyB0aGUgZHJhZ2dl
ZCBjb250ZW50cyByZW1vdmVkIHRoZSBkcmFnIHNvdXJjZSwgd2Ugc3RpbGwgd2FudCB0byBmaXJl
IGRyYWdlbmQgYXQgdGhlIHJvb3QgZWRpdGFibGUgZWxlbWVudC4KICAgICBpZiAoZHJhZ1N0YXRl
KCkuc291cmNlICYmICFkcmFnU3RhdGUoKS5zb3VyY2UtPmluRG9jdW1lbnQoKSkKLSAgICAgICAg
ZHJhZ1N0YXRlKCkuc291cmNlID0gcm9vdEVkaXRhYmxlRWxlbWVudDsKKyAgICAgICAgZHJhZ1N0
YXRlKCkuc291cmNlID0gJnJvb3RFZGl0YWJsZUVsZW1lbnQ7CiB9CiAKIC8vIFJldHVybiB2YWx1
ZSBpbmRpY2F0ZXMgaWYgd2Ugc2hvdWxkIGNvbnRpbnVlICJkZWZhdWx0IHByb2Nlc3NpbmciLCBp
LmUuLCB3aGV0aGVyIGV2ZW50IGhhbmRsZXIgY2FuY2VsZWQuCkBAIC0zNjI1LDI1ICszNjA5LDI0
IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVUZXh0SW5wdXRFdmVudChjb25zdCBTdHJpbmcm
IHRleHQsIEV2ZW50KiB1bmRlcmx5aW5nRXZlCiAgICAgcmV0dXJuIGV2ZW50LT5kZWZhdWx0SGFu
ZGxlZCgpOwogfQogICAgIAotYm9vbCBFdmVudEhhbmRsZXI6OmlzS2V5Ym9hcmRPcHRpb25UYWIo
S2V5Ym9hcmRFdmVudCogZXZlbnQpCitib29sIEV2ZW50SGFuZGxlcjo6aXNLZXlib2FyZE9wdGlv
blRhYihLZXlib2FyZEV2ZW50JiBldmVudCkKIHsKLSAgICByZXR1cm4gZXZlbnQKLSAgICAgICAg
JiYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCB8fCBldmVudC0+
dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KQotICAgICAgICAmJiBldmVudC0+
YWx0S2V5KCkKLSAgICAgICAgJiYgZXZlbnQtPmtleUlkZW50aWZpZXIoKSA9PSAiVSswMDA5Ijsg
ICAgCisgICAgcmV0dXJuIChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVu
dCB8fCBldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXByZXNzRXZlbnQpCisgICAgICAg
ICYmIGV2ZW50LmFsdEtleSgpCisgICAgICAgICYmIGV2ZW50LmtleUlkZW50aWZpZXIoKSA9PSAi
VSswMDA5IjsKIH0KIAotYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtz
Q2xpZW50Q2FsbFJlc3VsdChLZXlib2FyZEV2ZW50KiBldmVudCkKK2Jvb2wgRXZlbnRIYW5kbGVy
OjpldmVudEludmVydHNUYWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQoS2V5Ym9hcmRFdmVudCYg
ZXZlbnQpCiB7CiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEVGTCkKLSAgICByZXR1
cm4gRXZlbnRIYW5kbGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKGV2ZW50KTsKKyAgICByZXR1cm4g
aXNLZXlib2FyZE9wdGlvblRhYihldmVudCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShldmVu
dCk7CiAgICAgcmV0dXJuIGZhbHNlOwogI2VuZGlmCiB9CiAKLWJvb2wgRXZlbnRIYW5kbGVyOjp0
YWJzVG9MaW5rcyhLZXlib2FyZEV2ZW50KiBldmVudCkgY29uc3QKK2Jvb2wgRXZlbnRIYW5kbGVy
Ojp0YWJzVG9MaW5rcyhLZXlib2FyZEV2ZW50JiBldmVudCkgY29uc3QKIHsKICAgICAvLyBGSVhN
RTogVGhpcyBmdW5jdGlvbiBuZWVkcyBhIGJldHRlciBuYW1lLiBJdCBjYW4gYmUgY2FsbGVkIGZv
ciBrZXlwcmVzc2VzIG90aGVyIHRoYW4gVGFiIHdoZW4gc3BhdGlhbCBuYXZpZ2F0aW9uIGlzIGVu
YWJsZWQuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IGRlNzhiY2FlODRhNzY2
NGRlMjhkNWQxNzkwNmI5YTNkYjJlMWI0MjMuLjZlZDdhZTMzOTVjODAyNjNkNGE3NzAwZmNhMGFm
MGY2ZWY5MThjMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMxLDMwICsz
MSwzMSBAQAogI2luY2x1ZGUgIkhpdFRlc3RSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiTGF5b3V0UG9p
bnQuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1vdXNlRXZlbnQuaCIKLSNpbmNsdWRlICJQbGF0Zm9y
bVdoZWVsRXZlbnQuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1ZGUgIlRleHRF
dmVudElucHV0VHlwZS5oIgogI2luY2x1ZGUgIlRleHRHcmFudWxhcml0eS5oIgogI2luY2x1ZGUg
IlRpbWVyLmgiCi0jaW5jbHVkZSAiV2hlZWxFdmVudERlbHRhRmlsdGVyLmgiCiAjaW5jbHVkZSA8
bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAu
aD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAorI2lmIFBM
QVRGT1JNKENPQ09BKQorT0JKQ19DTEFTUyBOU1ZpZXc7CisjZW5kaWYKKwogI2lmIFBMQVRGT1JN
KElPUykKIE9CSkNfQ0xBU1MgV2ViRXZlbnQ7Ci1PQkpDX0NMQVNTIFdBS1ZpZXc7Ci0jaWZkZWYg
X19PQkpDX18KLSNpbmNsdWRlICJXQUtBcHBLaXRTdHVicy5oIgogI2VuZGlmCi0jZW5kaWYgLy8g
UExBVEZPUk0oSU9TKQogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi1PQkpDX0NMQVNTIE5TVmlldzsK
KyNpZiBQTEFURk9STShNQUMpCitPQkpDX0NMQVNTIE5TRXZlbnQ7CisjZW5kaWYKKworI2lmIFBM
QVRGT1JNKElPUykgJiYgZGVmaW5lZChfX09CSkNfXykKKyNpbmNsdWRlICJXQUtBcHBLaXRTdHVi
cy5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTY2LDE2ICs2NywxNCBAQCBj
bGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBFdmVudDsKIGNsYXNzIEV2ZW50
VGFyZ2V0OwotY2xhc3MgRmxvYXRQb2ludDsKIGNsYXNzIEZsb2F0UXVhZDsKIGNsYXNzIEZyYW1l
OworY2xhc3MgRnJhbWVWaWV3OwogY2xhc3MgSFRNTEZyYW1lU2V0RWxlbWVudDsKLWNsYXNzIEhp
dFRlc3RSZXF1ZXN0OwogY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEtleWJvYXJkRXZlbnQ7
CiBjbGFzcyBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzOwogY2xhc3MgTm9kZTsKLWNsYXNz
IE9wdGlvbmFsQ3Vyc29yOwogY2xhc3MgUGxhdGZvcm1HZXN0dXJlRXZlbnQ7CiBjbGFzcyBQbGF0
Zm9ybUtleWJvYXJkRXZlbnQ7CiBjbGFzcyBQbGF0Zm9ybVRvdWNoRXZlbnQ7CkBAIC0xMDAsNyAr
OTksNyBAQCBleHRlcm4gY29uc3QgaW50IExpbmtEcmFnSHlzdGVyZXNpczsKIGV4dGVybiBjb25z
dCBpbnQgSW1hZ2VEcmFnSHlzdGVyZXNpczsKIGV4dGVybiBjb25zdCBpbnQgVGV4dERyYWdIeXN0
ZXJlc2lzOwogZXh0ZXJuIGNvbnN0IGludCBHZW5lcmFsRHJhZ0h5c3RlcmVzaXM7Ci0jZW5kaWYg
Ly8gRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNlbmRpZgogCiAjaWYgRU5BQkxFKElPU19HRVNUVVJF
X0VWRU5UUykgfHwgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKIGV4dGVybiBjb25zdCBmbG9h
dCBHZXN0dXJlVW5rbm93bjsKQEAgLTEyMCw3ICsxMTksNiBAQCBlbnVtIGNsYXNzIEltbWVkaWF0
ZUFjdGlvblN0YWdlIHsKIH07CiAKIGNsYXNzIEV2ZW50SGFuZGxlciB7Ci0gICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoRXZlbnRIYW5kbGVyKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
IHB1YmxpYzoKICAgICBleHBsaWNpdCBFdmVudEhhbmRsZXIoRnJhbWUmKTsKQEAgLTEzNiw3ICsx
MzQsNyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcpCiAgICAgdm9pZCBkaWRQ
YW5TY3JvbGxTdGFydCgpOwogICAgIHZvaWQgZGlkUGFuU2Nyb2xsU3RvcCgpOwotICAgIHZvaWQg
c3RhcnRQYW5TY3JvbGxpbmcoUmVuZGVyRWxlbWVudCopOworICAgIHZvaWQgc3RhcnRQYW5TY3Jv
bGxpbmcoUmVuZGVyRWxlbWVudCYpOwogI2VuZGlmCiAKICAgICB2b2lkIHN0b3BBdXRvc2Nyb2xs
VGltZXIoYm9vbCByZW5kZXJlcklzQmVpbmdEZXN0cm95ZWQgPSBmYWxzZSk7CkBAIC0xNTYsMTMg
KzE1NCwxMyBAQCBwdWJsaWM6CiAgICAgYm9vbCBtb3VzZVByZXNzZWQoKSBjb25zdCB7IHJldHVy
biBtX21vdXNlUHJlc3NlZDsgfQogICAgIE5vZGUqIG1vdXNlUHJlc3NOb2RlKCkgY29uc3QgeyBy
ZXR1cm4gbV9tb3VzZVByZXNzTm9kZS5nZXQoKTsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50Pik7IC8v
IEEgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciByZXNldHRpbmcgY2FwdHVyaW5nIGVsZW1lbnQg
dG8gMC4KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxl
bWVudChFbGVtZW50Kik7CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIGJvb2wgdXBk
YXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyKik7
Ci0gICAgdm9pZCBjYW5jZWxEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBE
YXRhVHJhbnNmZXIqKTsKLSAgICBib29sIHBlcmZvcm1EcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXIqKTsKLSAgICB2b2lkIHVwZGF0ZURyYWdTdGF0ZUFm
dGVyRWRpdERyYWdJZk5lZWRlZChFbGVtZW50KiByb290RWRpdGFibGVFbGVtZW50KTsKKyAgICBi
b29sIHVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFu
c2ZlciYpOworICAgIHZvaWQgY2FuY2VsRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiwgRGF0YVRyYW5zZmVyJik7CisgICAgYm9vbCBwZXJmb3JtRHJhZ0FuZERyb3AoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyJik7CisgICAgdm9pZCB1cGRhdGVEcmFn
U3RhdGVBZnRlckVkaXREcmFnSWZOZWVkZWQoRWxlbWVudCYgcm9vdEVkaXRhYmxlRWxlbWVudCk7
CiAjZW5kaWYKIAogICAgIHZvaWQgc2NoZWR1bGVIb3ZlclN0YXRlVXBkYXRlKCk7CkBAIC0xODcs
OCArMTg1LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2Nyb2xsUmVjdXJz
aXZlbHkoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgTm9kZSogc3RhcnRpbmdO
b2RlID0gbnVsbHB0cik7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBsb2dpY2FsU2Nyb2xsUmVj
dXJzaXZlbHkoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIE5vZGUq
IHN0YXJ0aW5nTm9kZSA9IG51bGxwdHIpOwogCi0gICAgYm9vbCB0YWJzVG9MaW5rcyhLZXlib2Fy
ZEV2ZW50KikgY29uc3Q7Ci0gICAgYm9vbCB0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRF
dmVudCopIGNvbnN0OworICAgIGJvb2wgdGFic1RvTGlua3MoS2V5Ym9hcmRFdmVudCYpIGNvbnN0
OworICAgIGJvb2wgdGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQmKSBjb25zdDsK
IAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbW91c2VNb3ZlZChjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHBhc3NNb3VzZU1vdmVkRXZlbnRUb1Nj
cm9sbGJhcnMoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jik7CkBAIC0yMTAsMTIgKzIwOCwxMiBA
QCBwdWJsaWM6CiAgICAgdm9pZCBwbGF0Zm9ybU5vdGlmeUlmRW5kR2VzdHVyZShjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmLCBjb25zdCBXZWFrUHRyPFNjcm9sbGFibGVBcmVhPiYpOwogCiAjaWYg
RU5BQkxFKElPU19UT1VDSF9FVkVOVFMpIHx8IEVOQUJMRShJT1NfR0VTVFVSRV9FVkVOVFMpCi0g
ICAgdHlwZWRlZiBWZWN0b3I8UmVmUHRyPFRvdWNoPj4gVG91Y2hBcnJheTsKLSAgICB0eXBlZGVm
IEhhc2hNYXA8RXZlbnRUYXJnZXQqLCBUb3VjaEFycmF5Kj4gRXZlbnRUYXJnZXRUb3VjaE1hcDsK
KyAgICB1c2luZyBUb3VjaEFycmF5ID0gVmVjdG9yPFJlZlB0cjxUb3VjaD4+OworICAgIHVzaW5n
IEV2ZW50VGFyZ2V0VG91Y2hNYXAgPSBIYXNoTWFwPEV2ZW50VGFyZ2V0KiwgVG91Y2hBcnJheSo+
OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgfHwgRU5BQkxFKElPU19H
RVNUVVJFX0VWRU5UUykgfHwgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKLSAgICB0eXBlZGVm
IEhhc2hTZXQ8UmVmUHRyPEV2ZW50VGFyZ2V0Pj4gRXZlbnRUYXJnZXRTZXQ7CisgICAgdXNpbmcg
RXZlbnRUYXJnZXRTZXQgPSBIYXNoU2V0PFJlZlB0cjxFdmVudFRhcmdldD4+OwogI2VuZGlmCiAK
ICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKQEAgLTIzMSw3ICsyMjksNyBAQCBwdWJsaWM6
CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKLSAgICB2b2lkIGRlZmF1bHRUb3VjaEV2ZW50
SGFuZGxlcihOb2RlKiwgVG91Y2hFdmVudCopOworICAgIHZvaWQgZGVmYXVsdFRvdWNoRXZlbnRI
YW5kbGVyKE5vZGUmLCBUb3VjaEV2ZW50Jik7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDT05URVhU
X01FTlVTKQpAQCAtMjY0LDggKzI2Miw3IEBAIHB1YmxpYzoKICAgICAKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNlbmRTY3JvbGxFdmVudCgpOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpICYmIGRl
ZmluZWQoX19PQkpDX18pCi0jaWYgIVBMQVRGT1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3VzZURvd24oTlNFdmVudCAqLCBOU0V2ZW50ICpjb3Jy
ZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3VzZURy
YWdnZWQoTlNFdmVudCAqLCBOU0V2ZW50ICpjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3VzZVVwKE5TRXZlbnQgKiwgTlNFdmVudCAqY29ycmVz
cG9uZGluZ1ByZXNzdXJlRXZlbnQpOwpAQCAtMjczLDcgKzI3MCw5IEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHByZXNzdXJlQ2hhbmdlKE5TRXZlbnQgKiwgTlNFdmVudCogY29y
cmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wga2V5RXZl
bnQoTlNFdmVudCAqKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHdoZWVsRXZlbnQoTlNFdmVu
dCAqKTsKLSNlbHNlCisjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPUykKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIG1vdXNlRG93bihXZWJFdmVudCAqKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IG1vdXNlVXAoV2ViRXZlbnQgKik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBtb3VzZU1vdmVk
KFdlYkV2ZW50ICopOwpAQCAtMjg1LDIzICsyODQsMjAgQEAgcHVibGljOgogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgdG91Y2hFdmVudChXZWJFdmVudCAqKTsKICNlbmRpZgogCi0jaWYgIVBMQVRG
T1JNKElPUykKKyNpZiBQTEFURk9STShNQUMpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwYXNz
TW91c2VNb3ZlZEV2ZW50VG9TY3JvbGxiYXJzKE5TRXZlbnQgKiwgTlNFdmVudCogY29ycmVzcG9u
ZGluZ1ByZXNzdXJlRXZlbnQpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZW5kRmFrZUV2
ZW50c0FmdGVyV2lkZ2V0VHJhY2tpbmcoTlNFdmVudCAqaW5pdGlhdGluZ0V2ZW50KTsKLSNlbmRp
ZgogCi0jaWYgIVBMQVRGT1JNKElPUykKICAgICB2b2lkIHNldEFjdGl2YXRpb25FdmVudE51bWJl
cihpbnQgbnVtKSB7IG1fYWN0aXZhdGlvbkV2ZW50TnVtYmVyID0gbnVtOyB9CiAKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgTlNFdmVudCAqY3VycmVudE5TRXZlbnQoKTsKICAgICBzdGF0aWMg
TlNFdmVudCAqY29ycmVzcG9uZGluZ1ByZXNzdXJlRXZlbnQoKTsKLSNlbHNlCi0gICAgc3RhdGlj
IFdlYkV2ZW50ICpjdXJyZW50RXZlbnQoKTsKLSNlbmRpZiAvLyAhUExBVEZPUk0oSU9TKQotI2Vu
ZGlmIC8vIFBMQVRGT1JNKENPQ09BKSAmJiBkZWZpbmVkKF9fT0JKQ19fKQorI2VuZGlmCiAKICNp
ZiBQTEFURk9STShJT1MpCisgICAgc3RhdGljIFdlYkV2ZW50ICpjdXJyZW50RXZlbnQoKTsKKwog
ICAgIHZvaWQgaW52YWxpZGF0ZUNsaWNrKCk7CiAjZW5kaWYKIApAQCAtMzIzLDkgKzMxOSw4IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBzdGF0aWMgRHJhZ1N0YXRl
JiBkcmFnU3RhdGUoKTsKICAgICBzdGF0aWMgY29uc3QgZG91YmxlIFRleHREcmFnRGVsYXk7Ci0g
ICAgCi0gICAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURyYWdnaW5nRGF0YVRyYW5z
ZmVyKCkgY29uc3Q7Ci0jZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKKyAgICBSZWY8RGF0
YVRyYW5zZmVyPiBjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0OworI2VuZGlmCiAK
ICAgICBib29sIGV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKSBj
b25zdDsKICAgICBib29sIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRG93bkRpc3BhdGNoaW5nU2Vs
ZWN0U3RhcnQoTm9kZSosIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mLCBUZXh0R3JhbnVsYXJpdHkp
OwpAQCAtMzQxLDE0ICszMzYsMTggQEAgcHJpdmF0ZToKICAgICBib29sIGhhbmRsZU1vdXNlUHJl
c3NFdmVudFNpbmdsZUNsaWNrKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsK
ICAgICBib29sIGhhbmRsZU1vdXNlUHJlc3NFdmVudERvdWJsZUNsaWNrKGNvbnN0IE1vdXNlRXZl
bnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsKICAgICBib29sIGhhbmRsZU1vdXNlUHJlc3NFdmVudFRy
aXBsZUNsaWNrKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsKKwogI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCiAgICAgYm9vbCBoYW5kbGVNb3VzZURyYWdnZWRFdmVudChjb25z
dCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CiAjZW5kaWYKKwogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyYpOwogCi0gICAgT3B0aW9uYWxDdXJzb3Igc2VsZWN0Q3Vyc29yKGNvbnN0
IEhpdFRlc3RSZXN1bHQmLCBib29sIHNoaWZ0S2V5KTsKKyAgICBzdGQ6Om9wdGlvbmFsPEN1cnNv
cj4gc2VsZWN0Q3Vyc29yKGNvbnN0IEhpdFRlc3RSZXN1bHQmLCBib29sIHNoaWZ0S2V5KTsKKyAg
ICB2b2lkIHVwZGF0ZUN1cnNvcihGcmFtZVZpZXcmLCBjb25zdCBIaXRUZXN0UmVzdWx0JiwgYm9v
bCBzaGlmdEtleSk7CiAKICAgICB2b2lkIGhvdmVyVGltZXJGaXJlZCgpOworCiAjaWYgRU5BQkxF
KENVUlNPUl9TVVBQT1JUKQogICAgIHZvaWQgY3Vyc29yVXBkYXRlVGltZXJGaXJlZCgpOwogI2Vu
ZGlmCkBAIC0zNTksOCArMzU4LDggQEAgcHJpdmF0ZToKICAgICAKICAgICBib29sIG1vdXNlRG93
bk1heVN0YXJ0U2VsZWN0KCkgY29uc3QgeyByZXR1cm4gbV9tb3VzZURvd25NYXlTdGFydFNlbGVj
dDsgfQogCi0gICAgc3RhdGljIGJvb2wgaXNLZXlib2FyZE9wdGlvblRhYihLZXlib2FyZEV2ZW50
Kik7Ci0gICAgc3RhdGljIGJvb2wgZXZlbnRJbnZlcnRzVGFic1RvTGlua3NDbGllbnRDYWxsUmVz
dWx0KEtleWJvYXJkRXZlbnQqKTsKKyAgICBzdGF0aWMgYm9vbCBpc0tleWJvYXJkT3B0aW9uVGFi
KEtleWJvYXJkRXZlbnQmKTsKKyAgICBzdGF0aWMgYm9vbCBldmVudEludmVydHNUYWJzVG9MaW5r
c0NsaWVudENhbGxSZXN1bHQoS2V5Ym9hcmRFdmVudCYpOwogCiAjaWYgIUVOQUJMRShJT1NfVE9V
Q0hfRVZFTlRTKQogICAgIHZvaWQgZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCgpOwpAQCAt
Mzg1LDYgKzM4NCw3IEBAIHByaXZhdGU6CiAgICAgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0
cyBwcmVwYXJlTW91c2VFdmVudChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIGNvbnN0IFBsYXRmb3Jt
TW91c2VFdmVudCYpOwogCiAgICAgYm9vbCBkaXNwYXRjaE1vdXNlRXZlbnQoY29uc3QgQXRvbWlj
U3RyaW5nJiBldmVudFR5cGUsIE5vZGUqIHRhcmdldCwgYm9vbCBjYW5jZWxhYmxlLCBpbnQgY2xp
Y2tDb3VudCwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgYm9vbCBzZXRVbmRlcik7CisKICNp
ZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIGJvb2wgZGlzcGF0Y2hEcmFnRXZlbnQoY29uc3Qg
QXRvbWljU3RyaW5nJiBldmVudFR5cGUsIEVsZW1lbnQmIHRhcmdldCwgY29uc3QgUGxhdGZvcm1N
b3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyKik7CiAKQEAgLTM5Miw3ICszOTIsOSBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBoYW5kbGVEcmFnKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3Vs
dHMmLCBDaGVja0RyYWdIeXN0ZXJlc2lzKTsKICNlbmRpZgorCiAgICAgYm9vbCBoYW5kbGVNb3Vz
ZVVwKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsKKwogI2lmIEVOQUJMRShE
UkFHX1NVUFBPUlQpCiAgICAgdm9pZCBjbGVhckRyYWdTdGF0ZSgpOwogCkBAIC00MDAsNyArNDAy
LDcgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgZHJhZ0h5c3RlcmVzaXNFeGNlZWRlZChjb25zdCBG
bG9hdFBvaW50JikgY29uc3Q7CiAgICAgYm9vbCBkcmFnSHlzdGVyZXNpc0V4Y2VlZGVkKGNvbnN0
IEludFBvaW50JikgY29uc3Q7Ci0jZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKKyNlbmRp
ZgogICAgIAogICAgIGJvb2wgbW91c2VNb3ZlbWVudEV4Y2VlZHNUaHJlc2hvbGQoY29uc3QgRmxv
YXRQb2ludCYsIGludCBwb2ludHNUaHJlc2hvbGQpIGNvbnN0OwogCkBAIC00MzEsMTEgKzQzMyw5
IEBAIHByaXZhdGU6CiAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmUgY2FsbGVkIGF0IHRoZSBiZWdp
bm5pbmcgb2YgaGFuZGxlTW91c2VVcCBhbmQgaGFuZGxlRHJhZy4gIAogICAgIC8vIElmIHRoZXkg
cmV0dXJuIHRydWUgaXQgaW5kaWNhdGVzIHRoYXQgdGhleSBoYXZlIGNvbnN1bWVkIHRoZSBldmVu
dC4KICAgICBib29sIGV2ZW50TG9vcEhhbmRsZU1vdXNlVXAoY29uc3QgTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyYpOwotI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAgYm9vbCBldmVu
dExvb3BIYW5kbGVNb3VzZURyYWdnZWQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0
cyYpOwotI2VuZGlmCiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorICAgIGJvb2wgZXZlbnRM
b29wSGFuZGxlTW91c2VEcmFnZ2VkKGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMm
KTsKICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbkZvck1vdXNlRHJhZyhjb25zdCBIaXRUZXN0UmVz
dWx0Jik7CiAjZW5kaWYKIApAQCAtNDczLDIxICs0NzMsMjQgQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8Tm9kZT4gbV9tb3VzZVByZXNzTm9kZTsKIAogICAgIGJvb2wgbV9tb3VzZURvd25NYXlTdGFy
dFNlbGVjdCB7IGZhbHNlIH07CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIGJvb2wg
bV9tb3VzZURvd25NYXlTdGFydERyYWcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9kcmFnTWF5U3Rh
cnRTZWxlY3Rpb25JbnN0ZWFkIHsgZmFsc2UgfTsKICNlbmRpZgorCiAgICAgYm9vbCBtX21vdXNl
RG93bldhc1NpbmdsZUNsaWNrSW5TZWxlY3Rpb24geyBmYWxzZSB9OwogICAgIGVudW0gU2VsZWN0
aW9uSW5pdGlhdGlvblN0YXRlIHsgSGF2ZU5vdFN0YXJ0ZWRTZWxlY3Rpb24sIFBsYWNlZENhcmV0
LCBFeHRlbmRlZFNlbGVjdGlvbiB9OwogICAgIFNlbGVjdGlvbkluaXRpYXRpb25TdGF0ZSBtX3Nl
bGVjdGlvbkluaXRpYXRpb25TdGF0ZSB7IEhhdmVOb3RTdGFydGVkU2VsZWN0aW9uIH07CiAKICNp
ZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotICAgIExheW91dFBvaW50IG1fZHJhZ1N0YXJ0UG9zOwor
ICAgIExheW91dFBvaW50IG1fZHJhZ1N0YXJ0UG9zaXRpb247CiAjZW5kaWYKIAogICAgIGJvb2wg
bV9wYW5TY3JvbGxCdXR0b25QcmVzc2VkIHsgZmFsc2UgfTsKIAogICAgIFRpbWVyIG1faG92ZXJU
aW1lcjsKKwogI2lmIEVOQUJMRShDVVJTT1JfU1VQUE9SVCkKICAgICBUaW1lciBtX2N1cnNvclVw
ZGF0ZVRpbWVyOwogI2VuZGlmCkBAIC00OTUsNiArNDk4LDcgQEAgcHJpdmF0ZToKICNpZiBQTEFU
Rk9STShNQUMpCiAgICAgVGltZXIgbV9wZW5kaW5nTW9tZW50dW1XaGVlbEV2ZW50c1RpbWVyOwog
I2VuZGlmCisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QXV0b3Njcm9sbENvbnRyb2xsZXI+IG1fYXV0
b3Njcm9sbENvbnRyb2xsZXI7CiAgICAgYm9vbCBtX21vdXNlRG93bk1heVN0YXJ0QXV0b3Njcm9s
bCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX21vdXNlRG93bldhc0luU3ViZnJhbWUgeyBmYWxzZSB9
OwpAQCAtNTIzLDExICs1MjcsMTMgQEAgcHJpdmF0ZToKICAgICBmbG9hdCBtX2dlc3R1cmVJbml0
aWFsRGlhbWV0ZXIgeyBHZXN0dXJlVW5rbm93biB9OwogICAgIGZsb2F0IG1fZ2VzdHVyZUluaXRp
YWxSb3RhdGlvbiB7IEdlc3R1cmVVbmtub3duIH07CiAjZW5kaWYKKwogI2lmIEVOQUJMRShJT1Nf
R0VTVFVSRV9FVkVOVFMpIHx8IEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAgICAgZmxvYXQg
bV9nZXN0dXJlTGFzdERpYW1ldGVyIHsgR2VzdHVyZVVua25vd24gfTsKICAgICBmbG9hdCBtX2dl
c3R1cmVMYXN0Um90YXRpb24geyBHZXN0dXJlVW5rbm93biB9OwogICAgIEV2ZW50VGFyZ2V0U2V0
IG1fZ2VzdHVyZVRhcmdldHM7CiAjZW5kaWYKKwogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVO
VFMpCiAgICAgYm9vbCBtX2hhc0FjdGl2ZUdlc3R1cmUgeyBmYWxzZSB9OwogI2VuZGlmCkBAIC01
NTgsMTIgKzU2NCwxNCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIE5TVmll
dyAqbV9tb3VzZURvd25WaWV3IHsgbnVsbHB0ciB9OwogICAgIGJvb2wgbV9zZW5kaW5nRXZlbnRU
b1N1YnZpZXcgeyBmYWxzZSB9OwotI2lmICFQTEFURk9STShJT1MpCi0gICAgaW50IG1fYWN0aXZh
dGlvbkV2ZW50TnVtYmVyIHsgLTEgfTsKICNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFDKQorICAg
IGludCBtX2FjdGl2YXRpb25FdmVudE51bWJlciB7IC0xIH07CiAjZW5kaWYKKwogI2lmIEVOQUJM
RShUT1VDSF9FVkVOVFMpICYmICFFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykKLSAgICB0eXBlZGVm
IEhhc2hNYXA8aW50LCBSZWZQdHI8RXZlbnRUYXJnZXQ+PiBUb3VjaFRhcmdldE1hcDsKKyAgICB1
c2luZyBUb3VjaFRhcmdldE1hcCA9IEhhc2hNYXA8aW50LCBSZWZQdHI8RXZlbnRUYXJnZXQ+PjsK
ICAgICBUb3VjaFRhcmdldE1hcCBtX29yaWdpbmF0aW5nVG91Y2hQb2ludFRhcmdldHM7CiAgICAg
UmVmUHRyPERvY3VtZW50PiBtX29yaWdpbmF0aW5nVG91Y2hQb2ludERvY3VtZW50OwogICAgIHVu
c2lnbmVkIG1fb3JpZ2luYXRpbmdUb3VjaFBvaW50VGFyZ2V0S2V5IHsgMCB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCmluZGV4IGE3YjI1NTdlNjk0NmRiOWU1NjExNTdh
ZGY3MmNjMjgyNmVmZTg3NDcuLjVhYTg2Yzk5Yzg5ZjNhZmVkZGE5NzU4OTZkNzJjMjA3MTVkOTU1
ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAKQEAgLTMxNiw3ICsz
MTYsNyBAQCBGb2N1c0NvbnRyb2xsZXI6OkZvY3VzQ29udHJvbGxlcihQYWdlJiBwYWdlLCBBY3Rp
dml0eVN0YXRlOjpGbGFncyBhY3Rpdml0eVN0YXRlKQogewogfQogCi12b2lkIEZvY3VzQ29udHJv
bGxlcjo6c2V0Rm9jdXNlZEZyYW1lKFBhc3NSZWZQdHI8RnJhbWU+IGZyYW1lKQordm9pZCBGb2N1
c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRGcmFtZShGcmFtZSogZnJhbWUpCiB7CiAgICAgQVNTRVJU
KCFmcmFtZSB8fCBmcmFtZS0+cGFnZSgpID09ICZtX3BhZ2UpOwogICAgIGlmIChtX2ZvY3VzZWRG
cmFtZSA9PSBmcmFtZSB8fCBtX2lzQ2hhbmdpbmdGb2N1c2VkRnJhbWUpCkBAIC03NjUsOCArNzY1
LDkgQEAgc3RhdGljIHZvaWQgY2xlYXJTZWxlY3Rpb25JZk5lZWRlZChGcmFtZSogb2xkRm9jdXNl
ZEZyYW1lLCBGcmFtZSogbmV3Rm9jdXNlZEZyYW0KICAgICBvbGRGb2N1c2VkRnJhbWUtPnNlbGVj
dGlvbigpLmNsZWFyKCk7CiB9CiAKLWJvb2wgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRWxl
bWVudChFbGVtZW50KiBlbGVtZW50LCBQYXNzUmVmUHRyPEZyYW1lPiBuZXdGb2N1c2VkRnJhbWUs
IEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKK2Jvb2wgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1
c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50LCBGcmFtZSYgbmV3Rm9jdXNlZEZyYW1lLCBGb2N1
c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiB7CisgICAgUmVmPEZyYW1lPiBwcm90ZWN0ZWROZXdGb2N1
c2VkRnJhbWUgPSBuZXdGb2N1c2VkRnJhbWU7CiAgICAgUmVmUHRyPEZyYW1lPiBvbGRGb2N1c2Vk
RnJhbWUgPSBmb2N1c2VkRnJhbWUoKTsKICAgICBSZWZQdHI8RG9jdW1lbnQ+IG9sZERvY3VtZW50
ID0gb2xkRm9jdXNlZEZyYW1lID8gb2xkRm9jdXNlZEZyYW1lLT5kb2N1bWVudCgpIDogbnVsbHB0
cjsKICAgICAKQEAgLTc4MCw3ICs3ODEsNyBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6c2V0Rm9j
dXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUGFzc1JlZlB0cjxGcmFtZT4gbmV3RgogCiAg
ICAgbV9wYWdlLmVkaXRvckNsaWVudCgpLndpbGxTZXRJbnB1dE1ldGhvZFN0YXRlKCk7CiAKLSAg
ICBjbGVhclNlbGVjdGlvbklmTmVlZGVkKG9sZEZvY3VzZWRGcmFtZS5nZXQoKSwgbmV3Rm9jdXNl
ZEZyYW1lLmdldCgpLCBlbGVtZW50KTsKKyAgICBjbGVhclNlbGVjdGlvbklmTmVlZGVkKG9sZEZv
Y3VzZWRGcmFtZS5nZXQoKSwgJm5ld0ZvY3VzZWRGcmFtZSwgZWxlbWVudCk7CiAKICAgICBpZiAo
IWVsZW1lbnQpIHsKICAgICAgICAgaWYgKG9sZERvY3VtZW50KQpAQCAtNzk5LDExICs4MDAsMTEg
QEAgYm9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqIGVsZW1l
bnQsIFBhc3NSZWZQdHI8RnJhbWU+IG5ld0YKICAgICBpZiAob2xkRG9jdW1lbnQgJiYgb2xkRG9j
dW1lbnQgIT0gbmV3RG9jdW1lbnQucHRyKCkpCiAgICAgICAgIG9sZERvY3VtZW50LT5zZXRGb2N1
c2VkRWxlbWVudChudWxscHRyKTsKIAotICAgIGlmIChuZXdGb2N1c2VkRnJhbWUgJiYgIW5ld0Zv
Y3VzZWRGcmFtZS0+cGFnZSgpKSB7CisgICAgaWYgKCFuZXdGb2N1c2VkRnJhbWUucGFnZSgpKSB7
CiAgICAgICAgIHNldEZvY3VzZWRGcmFtZShudWxscHRyKTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KLSAgICBzZXRGb2N1c2VkRnJhbWUobmV3Rm9jdXNlZEZyYW1lKTsKKyAgICBzZXRG
b2N1c2VkRnJhbWUoJm5ld0ZvY3VzZWRGcmFtZSk7CiAKICAgICBSZWY8RWxlbWVudD4gcHJvdGVj
dCgqZWxlbWVudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9jdXNDb250
cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCmluZGV4IGVj
YmUzOTYxZGExZjViMDA1YjAxYmNjODI1MTZiNTBhMjdhOGUyYWUuLmM2ZGNmMjIyMDkzNWVjYmIx
ZmNiZDQyMjFmMmNhMmQ5NDczZjc3YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Rm9jdXNDb250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xs
ZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMCwxMiArMzAsMTAgQEAKICNpbmNsdWRlICJMYXlvdXRSZWN0LmgiCiAjaW5j
bHVkZSAiVGltZXIuaCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9O
b25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1zdHJ1Y3QgRm9jdXNDYW5kaWRhdGU7CiBjbGFzcyBDb250YWluZXJOb2RlOwogY2xh
c3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVtZW50OwpAQCAtNDgsMTkgKzQ2LDIxIEBAIGNsYXNzIE5v
ZGU7CiBjbGFzcyBQYWdlOwogY2xhc3MgVHJlZVNjb3BlOwogCitzdHJ1Y3QgRm9jdXNDYW5kaWRh
dGU7CisKIGNsYXNzIEZvY3VzQ29udHJvbGxlciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
Rm9jdXNDb250cm9sbGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgRm9jdXNDb250cm9sbGVyKFBh
Z2UmLCBBY3Rpdml0eVN0YXRlOjpGbGFncyk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNl
dEZvY3VzZWRGcmFtZShQYXNzUmVmUHRyPEZyYW1lPik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRGb2N1c2VkRnJhbWUoRnJhbWUqKTsKICAgICBGcmFtZSogZm9jdXNlZEZyYW1lKCkgY29u
c3QgeyByZXR1cm4gbV9mb2N1c2VkRnJhbWUuZ2V0KCk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBG
cmFtZSYgZm9jdXNlZE9yTWFpbkZyYW1lKCkgY29uc3Q7CiAKICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIHNldEluaXRpYWxGb2N1cyhGb2N1c0RpcmVjdGlvbiwgS2V5Ym9hcmRFdmVudCopOwogICAg
IGJvb2wgYWR2YW5jZUZvY3VzKEZvY3VzRGlyZWN0aW9uLCBLZXlib2FyZEV2ZW50JiwgYm9vbCBp
bml0aWFsRm9jdXMgPSBmYWxzZSk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIHNldEZvY3Vz
ZWRFbGVtZW50KEVsZW1lbnQqLCBQYXNzUmVmUHRyPEZyYW1lPiwgRm9jdXNEaXJlY3Rpb24gPSBG
b2N1c0RpcmVjdGlvbk5vbmUpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0Rm9jdXNlZEVs
ZW1lbnQoRWxlbWVudCosIEZyYW1lJiwgRm9jdXNEaXJlY3Rpb24gPSBGb2N1c0RpcmVjdGlvbk5v
bmUpOwogCiAgICAgdm9pZCBzZXRBY3Rpdml0eVN0YXRlKEFjdGl2aXR5U3RhdGU6OkZsYWdzKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBlZGEzY2Y2YjRiZTNlOTkyNWIyNTFjNTY3YTg0ZTQ5
ZjcxMDA2ZWNmLi44NzhlZTFjYjIyMDM2NGQ0ODA0YzEzZDQwYTJjODgxMmY3OTkzMmE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcApAQCAtNzc3LDcgKzc3Nyw3IEBAIHZvaWQgRnJhbWU6OndpbGxEZXRh
Y2hQYWdlKCkKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICBpZiAoV2ViVGhyZWFkQ291bnRPZk9i
c2VydmVkQ29udGVudE1vZGlmaWVycygpID4gMCAmJiBtX3BhZ2UpCi0gICAgICAgIG1fcGFnZS0+
Y2hyb21lKCkuY2xpZW50KCkuY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKHRoaXMpOworICAg
ICAgICBtX3BhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmNsZWFyQ29udGVudENoYW5nZU9ic2VydmVy
cygqdGhpcyk7CiAjZW5kaWYKIAogICAgIHNjcmlwdCgpLmNsZWFyU2NyaXB0T2JqZWN0cygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVRyZWUuY3BwCmluZGV4IGRlZWIyM2I3NTg0NDliYmZlNWM1NWYxOWQ4
MGQwNDkyODI5MTE3YWEuLmZkY2YzNTYwZWU0YjE5ZmE5ODA2ZDQ5MzQwYTIzMzgxYTliYWJlMjUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDA2LCAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91
IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCkBAIC02MywyNSArNjMsNiBAQCBGcmFtZSogRnJh
bWVUcmVlOjpwYXJlbnQoKSBjb25zdAogICAgIHJldHVybiBtX3BhcmVudDsKIH0KIAotYm9vbCBG
cmFtZVRyZWU6OnRyYW5zZmVyQ2hpbGQoUGFzc1JlZlB0cjxGcmFtZT4gY2hpbGQpCi17Ci0gICAg
RnJhbWUqIG9sZFBhcmVudCA9IGNoaWxkLT50cmVlKCkucGFyZW50KCk7Ci0gICAgaWYgKG9sZFBh
cmVudCA9PSAmbV90aGlzRnJhbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsgLy8gfGNoaWxkfCBp
cyBhbHJlYWR5IGEgY2hpbGQgb2YgbV90aGlzRnJhbWUuCi0KLSAgICBpZiAob2xkUGFyZW50KQot
ICAgICAgICBvbGRQYXJlbnQtPnRyZWUoKS5yZW1vdmVDaGlsZChjaGlsZC5nZXQoKSk7Ci0KLSAg
ICBBU1NFUlQoY2hpbGQtPnBhZ2UoKSA9PSBtX3RoaXNGcmFtZS5wYWdlKCkpOwotICAgIGNoaWxk
LT50cmVlKCkubV9wYXJlbnQgPSAmbV90aGlzRnJhbWU7Ci0KLSAgICAvLyBXZSBuZWVkIHRvIGVu
c3VyZSB0aGF0IHRoZSBjaGlsZCBzdGlsbCBoYXMgYSB1bmlxdWUgZnJhbWUgbmFtZSB3aXRoIHJl
c3BlY3QgdG8gaXRzIG5ldyBwYXJlbnQuCi0gICAgY2hpbGQtPnRyZWUoKS5zZXROYW1lKGNoaWxk
LT50cmVlKCkubV9uYW1lKTsKLQotICAgIGFjdHVhbGx5QXBwZW5kQ2hpbGQoY2hpbGQpOyAvLyBO
b3RlLCBvbiByZXR1cm4gfGNoaWxkfCBpcyBudWxsLgotICAgIHJldHVybiB0cnVlOwotfQotCiB1
bnNpZ25lZCBGcmFtZVRyZWU6OmluZGV4SW5QYXJlbnQoKSBjb25zdAogewogICAgIGlmICghbV9w
YXJlbnQpCkBAIC05NSw0NiArNzYsMzIgQEAgdW5zaWduZWQgRnJhbWVUcmVlOjppbmRleEluUGFy
ZW50KCkgY29uc3QKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hFRCgpOwogfQogCi12b2lk
IEZyYW1lVHJlZTo6YXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxGcmFtZT4gY2hpbGQpCi17Ci0gICAg
QVNTRVJUKGNoaWxkLT5wYWdlKCkgPT0gbV90aGlzRnJhbWUucGFnZSgpKTsKLSAgICBjaGlsZC0+
dHJlZSgpLm1fcGFyZW50ID0gJm1fdGhpc0ZyYW1lOwotICAgIGFjdHVhbGx5QXBwZW5kQ2hpbGQo
Y2hpbGQpOyAvLyBOb3RlLCBvbiByZXR1cm4gfGNoaWxkfCBpcyBudWxsLgotfQotCi12b2lkIEZy
YW1lVHJlZTo6YWN0dWFsbHlBcHBlbmRDaGlsZChQYXNzUmVmUHRyPEZyYW1lPiBjaGlsZCkKK3Zv
aWQgRnJhbWVUcmVlOjphcHBlbmRDaGlsZChGcmFtZSYgY2hpbGQpCiB7Ci0gICAgQVNTRVJUKGNo
aWxkLT50cmVlKCkubV9wYXJlbnQgPT0gJm1fdGhpc0ZyYW1lKTsKKyAgICBBU1NFUlQoY2hpbGQu
cGFnZSgpID09IG1fdGhpc0ZyYW1lLnBhZ2UoKSk7CisgICAgY2hpbGQudHJlZSgpLm1fcGFyZW50
ID0gJm1fdGhpc0ZyYW1lOwogICAgIEZyYW1lKiBvbGRMYXN0ID0gbV9sYXN0Q2hpbGQ7Ci0gICAg
bV9sYXN0Q2hpbGQgPSBjaGlsZC5nZXQoKTsKKyAgICBtX2xhc3RDaGlsZCA9ICZjaGlsZDsKIAog
ICAgIGlmIChvbGRMYXN0KSB7Ci0gICAgICAgIGNoaWxkLT50cmVlKCkubV9wcmV2aW91c1NpYmxp
bmcgPSBvbGRMYXN0OwotICAgICAgICBvbGRMYXN0LT50cmVlKCkubV9uZXh0U2libGluZyA9IGNo
aWxkOworICAgICAgICBjaGlsZC50cmVlKCkubV9wcmV2aW91c1NpYmxpbmcgPSBvbGRMYXN0Owor
ICAgICAgICBvbGRMYXN0LT50cmVlKCkubV9uZXh0U2libGluZyA9ICZjaGlsZDsKICAgICB9IGVs
c2UKLSAgICAgICAgbV9maXJzdENoaWxkID0gY2hpbGQ7CisgICAgICAgIG1fZmlyc3RDaGlsZCA9
ICZjaGlsZDsKIAogICAgIG1fc2NvcGVkQ2hpbGRDb3VudCA9IGludmFsaWRDb3VudDsKIAogICAg
IEFTU0VSVCghbV9sYXN0Q2hpbGQtPnRyZWUoKS5tX25leHRTaWJsaW5nKTsKIH0KIAotdm9pZCBG
cmFtZVRyZWU6OnJlbW92ZUNoaWxkKEZyYW1lKiBjaGlsZCkKK3ZvaWQgRnJhbWVUcmVlOjpyZW1v
dmVDaGlsZChGcmFtZSYgY2hpbGQpCiB7Ci0gICAgY2hpbGQtPnRyZWUoKS5tX3BhcmVudCA9IG51
bGxwdHI7Ci0KLSAgICAvLyBTbGlnaHRseSB0cmlja3kgd2F5IHRvIHByZXZlbnQgZGVsZXRpbmcg
dGhlIGNoaWxkIHVudGlsIHdlIGFyZSBkb25lIHdpdGggaXQsIHcvbwotICAgIC8vIGV4dHJhIHJl
ZnMuIFRoZXNlIHN3YXBzIGxlYXZlIHRoZSBjaGlsZCBpbiBhIGNpcmN1bGFyIGxpc3QgYnkgaXRz
ZWxmLiBDbGVhcmluZyBpdHMKLSAgICAvLyBwcmV2aW91cyBhbmQgbmV4dCB3aWxsIHRoZW4gZmlu
YWxseSBkZXJlZiBpdC4KLQotICAgIFJlZlB0cjxGcmFtZT4mIG5ld0xvY2F0aW9uRm9yTmV4dCA9
IG1fZmlyc3RDaGlsZCA9PSBjaGlsZCA/IG1fZmlyc3RDaGlsZCA6IGNoaWxkLT50cmVlKCkubV9w
cmV2aW91c1NpYmxpbmctPnRyZWUoKS5tX25leHRTaWJsaW5nOwotICAgIEZyYW1lKiYgbmV3TG9j
YXRpb25Gb3JQcmV2aW91cyA9IG1fbGFzdENoaWxkID09IGNoaWxkID8gbV9sYXN0Q2hpbGQgOiBj
aGlsZC0+dHJlZSgpLm1fbmV4dFNpYmxpbmctPnRyZWUoKS5tX3ByZXZpb3VzU2libGluZzsKLSAg
ICBzd2FwKG5ld0xvY2F0aW9uRm9yTmV4dCwgY2hpbGQtPnRyZWUoKS5tX25leHRTaWJsaW5nKTsK
LSAgICAvLyBGb3Igc29tZSBpbmV4cGxpY2FibGUgcmVhc29uLCB0aGUgZm9sbG93aW5nIGxpbmUg
ZG9lcyBub3QgY29tcGlsZSB3aXRob3V0IHRoZSBleHBsaWNpdCBzdGQ6OiBuYW1lc3BhY2UKLSAg
ICBzdGQ6OnN3YXAobmV3TG9jYXRpb25Gb3JQcmV2aW91cywgY2hpbGQtPnRyZWUoKS5tX3ByZXZp
b3VzU2libGluZyk7CisgICAgRnJhbWUqJiBuZXdMb2NhdGlvbkZvclByZXZpb3VzID0gbV9sYXN0
Q2hpbGQgPT0gJmNoaWxkID8gbV9sYXN0Q2hpbGQgOiBjaGlsZC50cmVlKCkubV9uZXh0U2libGlu
Zy0+dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nOworICAgIFJlZlB0cjxGcmFtZT4mIG5ld0xvY2F0
aW9uRm9yTmV4dCA9IG1fZmlyc3RDaGlsZCA9PSAmY2hpbGQgPyBtX2ZpcnN0Q2hpbGQgOiBjaGls
ZC50cmVlKCkubV9wcmV2aW91c1NpYmxpbmctPnRyZWUoKS5tX25leHRTaWJsaW5nOwogCi0gICAg
Y2hpbGQtPnRyZWUoKS5tX3ByZXZpb3VzU2libGluZyA9IG51bGxwdHI7Ci0gICAgY2hpbGQtPnRy
ZWUoKS5tX25leHRTaWJsaW5nID0gbnVsbHB0cjsKKyAgICBjaGlsZC50cmVlKCkubV9wYXJlbnQg
PSBudWxscHRyOworICAgIG5ld0xvY2F0aW9uRm9yUHJldmlvdXMgPSBzdGQ6OmV4Y2hhbmdlKGNo
aWxkLnRyZWUoKS5tX3ByZXZpb3VzU2libGluZywgbnVsbHB0cik7CisgICAgbmV3TG9jYXRpb25G
b3JOZXh0ID0gV1RGTW92ZShjaGlsZC50cmVlKCkubV9uZXh0U2libGluZyk7CiAKICAgICBtX3Nj
b3BlZENoaWxkQ291bnQgPSBpbnZhbGlkQ291bnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuaApp
bmRleCBhYjE2ZjBhZDYzOTYyNWFlMmQ3OGMxNzlmMTM1M2JiODRjOThhZTFhLi4zZjg3YzI3OWJk
YzNhMDY0ZmU4ODgwOGI2MDNhMmFjZjdmMmRjN2ViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIEluYy4KKyAq
IENvcHlyaWdodCAoQykgMjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNjUsMTAgKzY1LDkgQEAgcHVibGljOgogICAgIFdFQkNP
UkVfRVhQT1JUIEZyYW1lKiB0cmF2ZXJzZU5leHRXaXRoV3JhcChib29sKSBjb25zdDsKICAgICBX
RUJDT1JFX0VYUE9SVCBGcmFtZSogdHJhdmVyc2VQcmV2aW91c1dpdGhXcmFwKGJvb2wpIGNvbnN0
OwogICAgIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxG
cmFtZT4pOwotICAgIGJvb2wgdHJhbnNmZXJDaGlsZChQYXNzUmVmUHRyPEZyYW1lPik7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBhcHBlbmRDaGlsZChGcmFtZSYpOwogICAgIHZvaWQgZGV0YWNo
RnJvbVBhcmVudCgpIHsgbV9wYXJlbnQgPSBudWxscHRyOyB9Ci0gICAgdm9pZCByZW1vdmVDaGls
ZChGcmFtZSopOworICAgIHZvaWQgcmVtb3ZlQ2hpbGQoRnJhbWUmKTsKIAogICAgIEZyYW1lKiBj
aGlsZCh1bnNpZ25lZCBpbmRleCkgY29uc3Q7CiAgICAgRnJhbWUqIGNoaWxkKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSkgY29uc3Q7CkBAIC04Nyw3ICs4Niw2IEBAIHB1YmxpYzoKIAogcHJpdmF0
ZToKICAgICBGcmFtZSogZGVlcExhc3RDaGlsZCgpIGNvbnN0OwotICAgIHZvaWQgYWN0dWFsbHlB
cHBlbmRDaGlsZChQYXNzUmVmUHRyPEZyYW1lPik7CiAKICAgICBib29sIHNjb3BlZEJ5KFRyZWVT
Y29wZSopIGNvbnN0OwogICAgIEZyYW1lKiBzY29wZWRDaGlsZCh1bnNpZ25lZCBpbmRleCwgVHJl
ZVNjb3BlKikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggZDk0YzlkOTIx
YTRhNDE5NjNlYzhkYWU3NWMwYjRlMjMyNjA5NzhhMi4uNGQ2MzhhMmU3NTNjMWVhYjdiZmMwZGM3
OGM4NzM3ZDBlNTJjMmEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtNjc3LDcg
KzY3Nyw3IEBAIHZvaWQgRnJhbWVWaWV3OjpzZXRDb250ZW50c1NpemUoY29uc3QgSW50U2l6ZSYg
c2l6ZSkKIAogICAgIHVwZGF0ZVNjcm9sbGFibGVBcmVhU2V0KCk7CiAKLSAgICBwYWdlLT5jaHJv
bWUoKS5jb250ZW50c1NpemVDaGFuZ2VkKCZmcmFtZSgpLCBzaXplKTsgLy8gTm90aWZ5IG9ubHku
CisgICAgcGFnZS0+Y2hyb21lKCkuY29udGVudHNTaXplQ2hhbmdlZChmcmFtZSgpLCBzaXplKTsg
Ly8gTm90aWZ5IG9ubHkuCiAKICAgICBpZiAoZnJhbWUoKS5pc01haW5GcmFtZSgpKSB7CiAgICAg
ICAgIGZyYW1lKCkubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuZGlkQ2hhbmdl
RG9jdW1lbnRTaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFt
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAKaW5kZXggNDgxNzRjYjI0
MzdkNTk2MGIyMWM1MzgzNmM1MjcxYjY2MGQ4ODZjMS4uYTE3YmUzYmI1M2E4OTJmNWJlNjJkNGM0
ZDc3MjRlMGFkNGNmZDRjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9NYWluRnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcApAQCAtOTIsNyAr
OTIsNyBAQCB2b2lkIE1haW5GcmFtZTo6c2VsZk9ubHlEZXJlZigpCiB2b2lkIE1haW5GcmFtZTo6
ZHJvcENoaWxkcmVuKCkKIHsKICAgICB3aGlsZSAoRnJhbWUqIGNoaWxkID0gdHJlZSgpLmZpcnN0
Q2hpbGQoKSkKLSAgICAgICAgdHJlZSgpLnJlbW92ZUNoaWxkKGNoaWxkKTsKKyAgICAgICAgdHJl
ZSgpLnJlbW92ZUNoaWxkKCpjaGlsZCk7CiB9CiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlLmNwcAppbmRleCBkYjE3ZTZiYWY3YWNlNGMyNzI2NWM4ZWRiMzcwNWZkYjE3ZWIyMGJhLi43
ZDZhZjExMGE0Y2Q0ZGFkZWNlZDI0NTkwNjYyNzMwNDJmM2QwYzVlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5j
cHAKQEAgLTM2Myw3ICszNjMsNyBAQCBWaWV3cG9ydEFyZ3VtZW50cyBQYWdlOjp2aWV3cG9ydEFy
Z3VtZW50cygpIGNvbnN0CiBTY3JvbGxpbmdDb29yZGluYXRvciogUGFnZTo6c2Nyb2xsaW5nQ29v
cmRpbmF0b3IoKQogewogICAgIGlmICghbV9zY3JvbGxpbmdDb29yZGluYXRvciAmJiBtX3NldHRp
bmdzLT5zY3JvbGxpbmdDb29yZGluYXRvckVuYWJsZWQoKSkgewotICAgICAgICBtX3Njcm9sbGlu
Z0Nvb3JkaW5hdG9yID0gY2hyb21lKCkuY2xpZW50KCkuY3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IodGhpcyk7CisgICAgICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBjaHJvbWUoKS5jbGll
bnQoKS5jcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcigqdGhpcyk7CiAgICAgICAgIGlmICghbV9z
Y3JvbGxpbmdDb29yZGluYXRvcikKICAgICAgICAgICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3Ig
PSBTY3JvbGxpbmdDb29yZGluYXRvcjo6Y3JlYXRlKHRoaXMpOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlT3ZlcmxheS5jcHAKaW5kZXggZTcwYmNhMDUyM2YwZTM5NWY4NzdmZjYzYzEyYWEzOTU1
N2FkZWQ3Yy4uMmNhODZmOTgyODA4MTYzNzg0ZjJhYjdmYTQzZWVlYmJlZTM3OTVmOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlT3ZlcmxheS5jcHAKQEAgLTI3NCw3ICsyNzQsNyBAQCB2b2lkIFBhZ2VP
dmVybGF5OjpmYWRlQW5pbWF0aW9uVGltZXJGaXJlZCgpCiAKICAgICAgICAgLy8gSWYgdGhpcyB3
YXMgYSBmYWRlIG91dCwgdW5pbnN0YWxsIHRoZSBwYWdlIG92ZXJsYXkuCiAgICAgICAgIGlmICh3
YXNGYWRpbmdPdXQpCi0gICAgICAgICAgICBjb250cm9sbGVyKCktPnVuaW5zdGFsbFBhZ2VPdmVy
bGF5KHRoaXMsIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAgICAg
IGNvbnRyb2xsZXIoKS0+dW5pbnN0YWxsUGFnZU92ZXJsYXkoKnRoaXMsIFBhZ2VPdmVybGF5OjpG
YWRlTW9kZTo6RG9Ob3RGYWRlKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcAppbmRleCA4NjZiODcwY2I4ZTRkMWI3ZTVkMjFiM2Ix
NmFjMWU1YzZiM2FiZjgzLi4wNTQzYmQ1MzRkMjUxYmEzN2RjYTQyMWRhMTdlMmM5OTNhMmRhZjJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTk1
LDI3ICs5NSwyNSBAQCBzdGF0aWMgdm9pZCB1cGRhdGVPdmVybGF5R2VvbWV0cnkoUGFnZU92ZXJs
YXkmIG92ZXJsYXksIEdyYXBoaWNzTGF5ZXImIGdyYXBoaWNzTAogICAgIGdyYXBoaWNzTGF5ZXIu
c2V0U2l6ZShvdmVybGF5RnJhbWUuc2l6ZSgpKTsKIH0KIAotdm9pZCBQYWdlT3ZlcmxheUNvbnRy
b2xsZXI6Omluc3RhbGxQYWdlT3ZlcmxheShQYXNzUmVmUHRyPFBhZ2VPdmVybGF5PiBwYWdlT3Zl
cmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlIGZhZGVNb2RlKQordm9pZCBQYWdlT3ZlcmxheUNv
bnRyb2xsZXI6Omluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSYgb3ZlcmxheSwgUGFnZU92
ZXJsYXk6OkZhZGVNb2RlIGZhZGVNb2RlKQogewogICAgIGNyZWF0ZVJvb3RMYXllcnNJZk5lZWRl
ZCgpOwogCi0gICAgUmVmUHRyPFBhZ2VPdmVybGF5PiBvdmVybGF5ID0gcGFnZU92ZXJsYXk7Ci0K
LSAgICBpZiAobV9wYWdlT3ZlcmxheXMuY29udGFpbnMob3ZlcmxheSkpCisgICAgaWYgKG1fcGFn
ZU92ZXJsYXlzLmNvbnRhaW5zKCZvdmVybGF5KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9w
YWdlT3ZlcmxheXMuYXBwZW5kKG92ZXJsYXkpOworICAgIG1fcGFnZU92ZXJsYXlzLmFwcGVuZCgm
b3ZlcmxheSk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3JhcGhpY3NMYXllcj4gbGF5ZXIgPSBH
cmFwaGljc0xheWVyOjpjcmVhdGUobV9tYWluRnJhbWUucGFnZSgpLT5jaHJvbWUoKS5jbGllbnQo
KS5ncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcyk7CiAgICAgbGF5ZXItPnNldEFuY2hvclBv
aW50KEZsb2F0UG9pbnQzRCgpKTsKLSAgICBsYXllci0+c2V0QmFja2dyb3VuZENvbG9yKG92ZXJs
YXktPmJhY2tncm91bmRDb2xvcigpKTsKKyAgICBsYXllci0+c2V0QmFja2dyb3VuZENvbG9yKG92
ZXJsYXkuYmFja2dyb3VuZENvbG9yKCkpOwogI2lmbmRlZiBOREVCVUcKICAgICBsYXllci0+c2V0
TmFtZSgiUGFnZSBPdmVybGF5IGNvbnRlbnQiKTsKICNlbmRpZgogCiAgICAgdXBkYXRlU2V0dGlu
Z3NGb3JMYXllcigqbGF5ZXIpOwogCi0gICAgc3dpdGNoIChvdmVybGF5LT5vdmVybGF5VHlwZSgp
KSB7CisgICAgc3dpdGNoIChvdmVybGF5Lm92ZXJsYXlUeXBlKCkpIHsKICAgICBjYXNlIFBhZ2VP
dmVybGF5OjpPdmVybGF5VHlwZTo6VmlldzoKICAgICAgICAgbV92aWV3T3ZlcmxheVJvb3RMYXll
ci0+YWRkQ2hpbGQobGF5ZXIuZ2V0KCkpOwogICAgICAgICBicmVhazsKQEAgLTEyNSwzMyArMTIz
LDMzIEBAIHZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVyOjppbnN0YWxsUGFnZU92ZXJsYXkoUGFz
c1JlZlB0cjxQYWdlT3ZlcmxheT4gcGFnZU92ZXJsCiAgICAgfQogCiAgICAgR3JhcGhpY3NMYXll
ciYgcmF3TGF5ZXIgPSAqbGF5ZXI7Ci0gICAgbV9vdmVybGF5R3JhcGhpY3NMYXllcnMuc2V0KG92
ZXJsYXkuZ2V0KCksIFdURk1vdmUobGF5ZXIpKTsKKyAgICBtX292ZXJsYXlHcmFwaGljc0xheWVy
cy5zZXQoJm92ZXJsYXksIFdURk1vdmUobGF5ZXIpKTsKIAogICAgIHVwZGF0ZUZvcmNlU3luY2hy
b25vdXNTY3JvbGxMYXllclBvc2l0aW9uVXBkYXRlcygpOwogCi0gICAgb3ZlcmxheS0+c2V0UGFn
ZShtX21haW5GcmFtZS5wYWdlKCkpOworICAgIG92ZXJsYXkuc2V0UGFnZShtX21haW5GcmFtZS5w
YWdlKCkpOwogCiAgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gbV9tYWluRnJhbWUudmll
dygpKQogICAgICAgICBmcmFtZVZpZXctPmVudGVyQ29tcG9zaXRpbmdNb2RlKCk7CiAKLSAgICB1
cGRhdGVPdmVybGF5R2VvbWV0cnkoKm92ZXJsYXksIHJhd0xheWVyKTsKKyAgICB1cGRhdGVPdmVy
bGF5R2VvbWV0cnkob3ZlcmxheSwgcmF3TGF5ZXIpOwogCiAgICAgaWYgKGZhZGVNb2RlID09IFBh
Z2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSkKLSAgICAgICAgb3ZlcmxheS0+c3RhcnRGYWRlSW5B
bmltYXRpb24oKTsKKyAgICAgICAgb3ZlcmxheS5zdGFydEZhZGVJbkFuaW1hdGlvbigpOwogfQog
Ci12b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92
ZXJsYXkqIG92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSBmYWRlTW9kZSkKK3ZvaWQgUGFn
ZU92ZXJsYXlDb250cm9sbGVyOjp1bmluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSYgb3Zl
cmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlIGZhZGVNb2RlKQogewogICAgIGlmIChmYWRlTW9k
ZSA9PSBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpIHsKLSAgICAgICAgb3ZlcmxheS0+c3Rh
cnRGYWRlT3V0QW5pbWF0aW9uKCk7CisgICAgICAgIG92ZXJsYXkuc3RhcnRGYWRlT3V0QW5pbWF0
aW9uKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBvdmVybGF5LT5zZXRQYWdlKG51
bGxwdHIpOworICAgIG92ZXJsYXkuc2V0UGFnZShudWxscHRyKTsKIAotICAgIG1fb3ZlcmxheUdy
YXBoaWNzTGF5ZXJzLnRha2Uob3ZlcmxheSktPnJlbW92ZUZyb21QYXJlbnQoKTsKKyAgICBtX292
ZXJsYXlHcmFwaGljc0xheWVycy50YWtlKCZvdmVybGF5KS0+cmVtb3ZlRnJvbVBhcmVudCgpOwog
Ci0gICAgYm9vbCByZW1vdmVkID0gbV9wYWdlT3ZlcmxheXMucmVtb3ZlRmlyc3Qob3ZlcmxheSk7
CisgICAgYm9vbCByZW1vdmVkID0gbV9wYWdlT3ZlcmxheXMucmVtb3ZlRmlyc3QoJm92ZXJsYXkp
OwogICAgIEFTU0VSVF9VTlVTRUQocmVtb3ZlZCwgcmVtb3ZlZCk7CiAKICAgICB1cGRhdGVGb3Jj
ZVN5bmNocm9ub3VzU2Nyb2xsTGF5ZXJQb3NpdGlvblVwZGF0ZXMoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCmluZGV4IDM5NzgwOTgyMDA4YzY1MWYyODhi
Nzk3NmIxYjkzMjk1YWM1MmU3YTQuLjYzODk0N2M2MTg0NmFiMDY3NWNlODAzYWJmMTc2YjZiNzFk
ZDhjMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaApA
QCAtMzksNyArMzksNiBAQCBjbGFzcyBQYWdlOwogY2xhc3MgUGxhdGZvcm1Nb3VzZUV2ZW50Owog
CiBjbGFzcyBQYWdlT3ZlcmxheUNvbnRyb2xsZXIgZmluYWwgOiBwdWJsaWMgR3JhcGhpY3NMYXll
ckNsaWVudCB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoUGFnZU92ZXJsYXlDb250cm9sbGVy
KTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBQYWdlT3Zlcmxh
eUNvbnRyb2xsZXIoTWFpbkZyYW1lJik7CkBAIC01MCw4ICs0OSw4IEBAIHB1YmxpYzoKIAogICAg
IGNvbnN0IFZlY3RvcjxSZWZQdHI8UGFnZU92ZXJsYXk+PiYgcGFnZU92ZXJsYXlzKCkgY29uc3Qg
eyByZXR1cm4gbV9wYWdlT3ZlcmxheXM7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgaW5z
dGFsbFBhZ2VPdmVybGF5KFBhc3NSZWZQdHI8UGFnZU92ZXJsYXk+LCBQYWdlT3ZlcmxheTo6RmFk
ZU1vZGUpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5pbnN0YWxsUGFnZU92ZXJsYXkoUGFn
ZU92ZXJsYXkqLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5JiwgUGFnZU92ZXJsYXk6OkZhZGVNb2Rl
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuaW5zdGFsbFBhZ2VPdmVybGF5KFBhZ2VPdmVy
bGF5JiwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlKTsKIAogICAgIHZvaWQgc2V0UGFnZU92ZXJsYXlO
ZWVkc0Rpc3BsYXkoUGFnZU92ZXJsYXkmLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdm9pZCBzZXRQ
YWdlT3ZlcmxheU9wYWNpdHkoUGFnZU92ZXJsYXkmLCBmbG9hdCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZVNlcmlhbGl6ZXIuY3BwCmluZGV4IDdmZmYxMjNmZjY0MTM3ODI1YzhkMTk4MDNkYmVjZjM5
Yzg2MzY4YWYuLjkzZDM3NzdhYTFhOWYwNzlmNzEwNGM5NzQ1ZDdkYTFjY2JiZmQ1ODAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuY3BwCkBAIC04MCw4ICs4MCw3IEBAIHN0YXRp
YyBib29sIGlzQ2hhcnNldFNwZWNpZnlpbmdOb2RlKGNvbnN0IE5vZGUmIG5vZGUpCiAgICAgICAg
ICAgICBhdHRyaWJ1dGVzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihhdHRyaWJ1dGUubmFtZSgpLnRv
U3RyaW5nKCksIGF0dHJpYnV0ZS52YWx1ZSgpLnN0cmluZygpKSk7CiAgICAgICAgIH0KICAgICB9
Ci0gICAgVGV4dEVuY29kaW5nIHRleHRFbmNvZGluZyA9IEhUTUxNZXRhQ2hhcnNldFBhcnNlcjo6
ZW5jb2RpbmdGcm9tTWV0YUF0dHJpYnV0ZXMoYXR0cmlidXRlcyk7Ci0gICAgcmV0dXJuIHRleHRF
bmNvZGluZy5pc1ZhbGlkKCk7CisgICAgcmV0dXJuIEhUTUxNZXRhQ2hhcnNldFBhcnNlcjo6ZW5j
b2RpbmdGcm9tTWV0YUF0dHJpYnV0ZXMoYXR0cmlidXRlcykuaXNWYWxpZCgpOwogfQogCiBzdGF0
aWMgYm9vbCBzaG91bGRJZ25vcmVFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCkBAIC05
NSwxMCArOTQsOSBAQCBzdGF0aWMgY29uc3QgUXVhbGlmaWVkTmFtZSYgZnJhbWVPd25lclVSTEF0
dHJpYnV0ZU5hbWUoY29uc3QgSFRNTEZyYW1lT3duZXJFbGVtZQogICAgIHJldHVybiBpczxIVE1M
T2JqZWN0RWxlbWVudD4oZnJhbWVPd25lcikgPyBIVE1MTmFtZXM6OmRhdGFBdHRyIDogSFRNTE5h
bWVzOjpzcmNBdHRyOwogfQogCi1jbGFzcyBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3IgZmlu
YWwgOiBwdWJsaWMgV2ViQ29yZTo6TWFya3VwQWNjdW11bGF0b3IgeworY2xhc3MgUGFnZVNlcmlh
bGl6ZXI6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvciBmaW5hbCA6IHB1YmxpYyBXZWJDb3Jl
OjpNYXJrdXBBY2N1bXVsYXRvciB7CiBwdWJsaWM6CiAgICAgU2VyaWFsaXplck1hcmt1cEFjY3Vt
dWxhdG9yKFBhZ2VTZXJpYWxpemVyJiwgRG9jdW1lbnQmLCBWZWN0b3I8Tm9kZSo+Kik7Ci0gICAg
dmlydHVhbCB+U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yKCk7CiAKIHByaXZhdGU6CiAgICAg
UGFnZVNlcmlhbGl6ZXImIG1fc2VyaWFsaXplcjsKQEAgLTExMCw3ICsxMDgsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgYXBwZW5kRW5kVGFnKGNvbnN0IEVsZW1lbnQmKSBvdmVycmlkZTsKIH07CiAK
LVNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9y
KFBhZ2VTZXJpYWxpemVyJiBzZXJpYWxpemVyLCBEb2N1bWVudCYgZG9jdW1lbnQsIFZlY3RvcjxO
b2RlKj4qIG5vZGVzKQorUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRv
cjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yKFBhZ2VTZXJpYWxpemVyJiBzZXJpYWxpemVy
LCBEb2N1bWVudCYgZG9jdW1lbnQsIFZlY3RvcjxOb2RlKj4qIG5vZGVzKQogICAgIDogTWFya3Vw
QWNjdW11bGF0b3Iobm9kZXMsIFJlc29sdmVBbGxVUkxzKQogICAgICwgbV9zZXJpYWxpemVyKHNl
cmlhbGl6ZXIpCiAgICAgLCBtX2RvY3VtZW50KGRvY3VtZW50KQpAQCAtMTIwLDE4ICsxMTgsMTQg
QEAgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0
b3IoUGFnZVNlcmlhbGl6ZXImIHNlcmlhbGkKICAgICAgICAgYXBwZW5kU3RyaW5nKCI8P3htbCB2
ZXJzaW9uPVwiIiArIG1fZG9jdW1lbnQueG1sVmVyc2lvbigpICsgIlwiIGVuY29kaW5nPVwiIiAr
IG1fZG9jdW1lbnQuY2hhcnNldCgpICsgIlwiPz4iKTsKIH0KIAotU2VyaWFsaXplck1hcmt1cEFj
Y3VtdWxhdG9yOjp+U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yKCkKLXsKLX0KLQotdm9pZCBT
ZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQoU3RyaW5nQnVpbGRlciYgb3V0
LCBjb25zdCBUZXh0JiB0ZXh0KQordm9pZCBQYWdlU2VyaWFsaXplcjo6U2VyaWFsaXplck1hcmt1
cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgVGV4dCYg
dGV4dCkKIHsKICAgICBFbGVtZW50KiBwYXJlbnQgPSB0ZXh0LnBhcmVudEVsZW1lbnQoKTsKICAg
ICBpZiAocGFyZW50ICYmICFzaG91bGRJZ25vcmVFbGVtZW50KCpwYXJlbnQpKQogICAgICAgICBN
YXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kVGV4dChvdXQsIHRleHQpOwogfQogCi12b2lkIFNlcmlh
bGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRWxlbWVudChTdHJpbmdCdWlsZGVyJiBvdXQs
IGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIE5hbWVzcGFjZXMqIG5hbWVzcGFjZXMpCit2b2lkIFBh
Z2VTZXJpYWxpemVyOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVsZW1lbnQo
U3RyaW5nQnVpbGRlciYgb3V0LCBjb25zdCBFbGVtZW50JiBlbGVtZW50LCBOYW1lc3BhY2VzKiBu
YW1lc3BhY2VzKQogewogICAgIGlmICghc2hvdWxkSWdub3JlRWxlbWVudChlbGVtZW50KSkKICAg
ICAgICAgTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZEVsZW1lbnQob3V0LCBlbGVtZW50LCBuYW1l
c3BhY2VzKTsKQEAgLTE0NSw3ICsxMzksNyBAQCB2b2lkIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVs
YXRvcjo6YXBwZW5kRWxlbWVudChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IEVsZW1lbgogICAg
IC8vIEZJWE1FOiBGb3Igb2JqZWN0IChwbHVnaW5zKSB0YWdzIGFuZCB2aWRlbyB0YWcgd2UgY291
bGQgcmVwbGFjZSB0aGVtIGJ5IGFuIGltYWdlIG9mIHRoZWlyIGN1cnJlbnQgY29udGVudHMuCiB9
CiAKLXZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRDdXN0b21BdHRyaWJ1
dGVzKFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgRWxlbWVudCYgZWxlbWVudCwgTmFtZXNwYWNl
cyogbmFtZXNwYWNlcykKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1
bXVsYXRvcjo6YXBwZW5kQ3VzdG9tQXR0cmlidXRlcyhTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0
IEVsZW1lbnQmIGVsZW1lbnQsIE5hbWVzcGFjZXMqIG5hbWVzcGFjZXMpCiB7CiAgICAgaWYgKCFp
czxIVE1MRnJhbWVPd25lckVsZW1lbnQ+KGVsZW1lbnQpKQogICAgICAgICByZXR1cm47CkBAIC0x
NjQsMzIgKzE1OCwyMCBAQCB2b2lkIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5k
Q3VzdG9tQXR0cmlidXRlcyhTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbgogICAgIGFwcGVuZEF0dHJp
YnV0ZShvdXQsIGVsZW1lbnQsIEF0dHJpYnV0ZShmcmFtZU93bmVyVVJMQXR0cmlidXRlTmFtZShm
cmFtZU93bmVyKSwgdXJsLnN0cmluZygpKSwgbmFtZXNwYWNlcyk7CiB9CiAKLXZvaWQgU2VyaWFs
aXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoY29uc3QgRWxlbWVudCYgZWxlbWVu
dCkKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6YXBw
ZW5kRW5kVGFnKGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgaWYgKCFzaG91bGRJZ25v
cmVFbGVtZW50KGVsZW1lbnQpKQogICAgICAgICBNYXJrdXBBY2N1bXVsYXRvcjo6YXBwZW5kRW5k
VGFnKGVsZW1lbnQpOwogfQogCi1QYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U6OlJlc291cmNlKCkK
LXsKLX0KLQotUGFnZVNlcmlhbGl6ZXI6OlJlc291cmNlOjpSZXNvdXJjZShjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEp
Ci0gICAgOiB1cmwodXJsKQotICAgICwgbWltZVR5cGUobWltZVR5cGUpCi0gICAgLCBkYXRhKGRh
dGEpCi17Ci19Ci0KLVBhZ2VTZXJpYWxpemVyOjpQYWdlU2VyaWFsaXplcihWZWN0b3I8UGFnZVNl
cmlhbGl6ZXI6OlJlc291cmNlPiogcmVzb3VyY2VzKQorUGFnZVNlcmlhbGl6ZXI6OlBhZ2VTZXJp
YWxpemVyKFZlY3RvcjxQYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U+JiByZXNvdXJjZXMpCiAgICAg
OiBtX3Jlc291cmNlcyhyZXNvdXJjZXMpCi0gICAgLCBtX2JsYW5rRnJhbWVDb3VudGVyKDApCiB7
CiB9CiAKLXZvaWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZShQYWdlKiBwYWdlKQordm9pZCBQ
YWdlU2VyaWFsaXplcjo6c2VyaWFsaXplKFBhZ2UmIHBhZ2UpCiB7Ci0gICAgc2VyaWFsaXplRnJh
bWUoJnBhZ2UtPm1haW5GcmFtZSgpKTsKKyAgICBzZXJpYWxpemVGcmFtZSgmcGFnZS5tYWluRnJh
bWUoKSk7CiB9CiAKIHZvaWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUZyYW1lKEZyYW1lKiBm
cmFtZSkKQEAgLTIxOCw3ICsyMDAsNyBAQCB2b2lkIFBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVG
cmFtZShGcmFtZSogZnJhbWUpCiAgICAgfQogICAgIFN0cmluZyB0ZXh0ID0gYWNjdW11bGF0b3Iu
c2VyaWFsaXplTm9kZXMoKmRvY3VtZW50LT5kb2N1bWVudEVsZW1lbnQoKSwgSW5jbHVkZU5vZGUp
OwogICAgIENTdHJpbmcgZnJhbWVIVE1MID0gdGV4dEVuY29kaW5nLmVuY29kZSh0ZXh0LCBFbnRp
dGllc0ZvclVuZW5jb2RhYmxlcyk7Ci0gICAgbV9yZXNvdXJjZXMtPmFwcGVuZChSZXNvdXJjZSh1
cmwsIGRvY3VtZW50LT5zdWdnZXN0ZWRNSU1FVHlwZSgpLCBTaGFyZWRCdWZmZXI6OmNyZWF0ZShm
cmFtZUhUTUwuZGF0YSgpLCBmcmFtZUhUTUwubGVuZ3RoKCkpKSk7CisgICAgbV9yZXNvdXJjZXMu
YXBwZW5kKHsgdXJsLCBkb2N1bWVudC0+c3VnZ2VzdGVkTUlNRVR5cGUoKSwgU2hhcmVkQnVmZmVy
OjpjcmVhdGUoZnJhbWVIVE1MLmRhdGEoKSwgZnJhbWVIVE1MLmxlbmd0aCgpKSB9KTsKICAgICBt
X3Jlc291cmNlVVJMcy5hZGQodXJsKTsKIAogICAgIGZvciAoYXV0byYgbm9kZSA6IG5vZGVzKSB7
CkBAIC0yODQsNyArMjY2LDcgQEAgdm9pZCBQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplQ1NTU3R5
bGVTaGVldChDU1NTdHlsZVNoZWV0KiBzdHlsZVNoZWV0LCBjb25zdCBVUkwKICAgICAgICAgQVNT
RVJUKHRleHRFbmNvZGluZy5pc1ZhbGlkKCkpOwogICAgICAgICBTdHJpbmcgdGV4dFN0cmluZyA9
IGNzc1RleHQudG9TdHJpbmcoKTsKICAgICAgICAgQ1N0cmluZyB0ZXh0ID0gdGV4dEVuY29kaW5n
LmVuY29kZSh0ZXh0U3RyaW5nLCBFbnRpdGllc0ZvclVuZW5jb2RhYmxlcyk7Ci0gICAgICAgIG1f
cmVzb3VyY2VzLT5hcHBlbmQoUmVzb3VyY2UodXJsLCBTdHJpbmcoInRleHQvY3NzIiksIFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlKHRleHQuZGF0YSgpLCB0ZXh0Lmxlbmd0aCgpKSkpOworICAgICAgICBt
X3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIEFTQ0lJTGl0ZXJhbCB7ICJ0ZXh0L2NzcyIgfSwgU2hh
cmVkQnVmZmVyOjpjcmVhdGUodGV4dC5kYXRhKCksIHRleHQubGVuZ3RoKCkpIH0pOwogICAgICAg
ICBtX3Jlc291cmNlVVJMcy5hZGQodXJsKTsKICAgICB9CiB9CkBAIC0zMDYsOCArMjg4LDcgQEAg
dm9pZCBQYWdlU2VyaWFsaXplcjo6YWRkSW1hZ2VUb1Jlc291cmNlcyhDYWNoZWRJbWFnZSogaW1h
Z2UsIFJlbmRlckVsZW1lbnQqIGltYWcKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFN0
cmluZyBtaW1lVHlwZSA9IGltYWdlLT5yZXNwb25zZSgpLm1pbWVUeXBlKCk7Ci0gICAgbV9yZXNv
dXJjZXMtPmFwcGVuZChSZXNvdXJjZSh1cmwsIG1pbWVUeXBlLCBkYXRhKSk7CisgICAgbV9yZXNv
dXJjZXMuYXBwZW5kKHsgdXJsLCBpbWFnZS0+cmVzcG9uc2UoKS5taW1lVHlwZSgpLCBXVEZNb3Zl
KGRhdGEpIH0pOwogICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwpOwogfQogCkBAIC0zMzQsMjAg
KzMxNSwxOCBAQCB2b2lkIFBhZ2VTZXJpYWxpemVyOjpyZXRyaWV2ZVJlc291cmNlc0ZvclByb3Bl
cnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiBzdHlsZQogICAgICAgICBpZiAoIWltYWdlKQog
ICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgVVJMIHVybCA9IGRvY3VtZW50LT5jb21w
bGV0ZVVSTChpbWFnZS0+dXJsKCkpOwotICAgICAgICBhZGRJbWFnZVRvUmVzb3VyY2VzKGltYWdl
LCBudWxscHRyLCB1cmwpOworICAgICAgICBhZGRJbWFnZVRvUmVzb3VyY2VzKGltYWdlLCBudWxs
cHRyLCBkb2N1bWVudC0+Y29tcGxldGVVUkwoaW1hZ2UtPnVybCgpKSk7CiAgICAgfQogfQogCiBV
UkwgUGFnZVNlcmlhbGl6ZXI6OnVybEZvckJsYW5rRnJhbWUoRnJhbWUqIGZyYW1lKQogewotICAg
IEhhc2hNYXA8RnJhbWUqLCBVUkw+OjppdGVyYXRvciBpdGVyID0gbV9ibGFua0ZyYW1lVVJMcy5m
aW5kKGZyYW1lKTsKKyAgICBhdXRvIGl0ZXIgPSBtX2JsYW5rRnJhbWVVUkxzLmZpbmQoZnJhbWUp
OwogICAgIGlmIChpdGVyICE9IG1fYmxhbmtGcmFtZVVSTHMuZW5kKCkpCiAgICAgICAgIHJldHVy
biBpdGVyLT52YWx1ZTsKICAgICBTdHJpbmcgdXJsID0gInd5Y2l3eWc6Ly9mcmFtZS8iICsgU3Ry
aW5nOjpudW1iZXIobV9ibGFua0ZyYW1lQ291bnRlcisrKTsKICAgICBVUkwgZmFrZVVSTChQYXJz
ZWRVUkxTdHJpbmcsIHVybCk7CiAgICAgbV9ibGFua0ZyYW1lVVJMcy5hZGQoZnJhbWUsIGZha2VV
UkwpOwotCiAgICAgcmV0dXJuIGZha2VVUkw7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZVNlcmlhbGl6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlh
bGl6ZXIuaAppbmRleCBhMWI0N2I5ZGJiYzAzNGIxNzI5MzU0YzA4MjFhYWJkZDU3NjJlZWFjLi5k
NTc0M2JjNGY2MTQ2MjkyMjhjM2ZmZjBhNGJlZGNiODc1MGMxMWY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlU2VyaWFsaXplci5oCkBAIC0zMCw3ICszMCw2IEBACiAKICNwcmFnbWEgb25jZQogCi0j
aW5jbHVkZSAiVVJMLmgiCiAjaW5jbHVkZSAiVVJMSGFzaC5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1
ZmZlci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC01NiwyMCArNTUsMjAgQEAgcHVi
bGljOgogICAgICAgICBVUkwgdXJsOwogICAgICAgICBTdHJpbmcgbWltZVR5cGU7CiAgICAgICAg
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGE7Ci0gICAgICAgIFJlc291cmNlKCk7Ci0gICAgICAg
IFJlc291cmNlKGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiBkYXRhKTsKICAgICB9OwogCi0gICAgZXhwbGljaXQgUGFnZVNlcmlhbGl6
ZXIoVmVjdG9yPFJlc291cmNlPiopOworICAgIGV4cGxpY2l0IFBhZ2VTZXJpYWxpemVyKFZlY3Rv
cjxSZXNvdXJjZT4mKTsKIAogICAgIC8vIEluaXRpYXRlcyB0aGUgc2VyaWFsaXphdGlvbiBvZiB0
aGUgZnJhbWUncyBwYWdlLiBBbGwgc2VyaWFsaXplZCBjb250ZW50IGFuZCByZXRyaWV2ZWQKICAg
ICAvLyByZXNvdXJjZXMgYXJlIGFkZGVkIHRvIHRoZSBWZWN0b3IgcGFzc2VkIHRvIHRoZSBjb25z
dHJ1Y3Rvci4gVGhlIGZpcnN0IHJlc291cmNlIGluIHRoYXQKICAgICAvLyB2ZWN0b3IgaXMgdGhl
IHRvcCBmcmFtZSBzZXJpYWxpemVkIGNvbnRlbnQuCi0gICAgdm9pZCBzZXJpYWxpemUoUGFnZSop
OworICAgIHZvaWQgc2VyaWFsaXplKFBhZ2UmKTsKKworcHJpdmF0ZToKKyAgICBjbGFzcyBTZXJp
YWxpemVyTWFya3VwQWNjdW11bGF0b3I7CiAKICAgICBVUkwgdXJsRm9yQmxhbmtGcmFtZShGcmFt
ZSopOwogCi1wcml2YXRlOgogICAgIHZvaWQgc2VyaWFsaXplRnJhbWUoRnJhbWUqKTsKIAogICAg
IC8vIFNlcmlhbGl6ZXMgdGhlIHN0eWxlc2hlZXQgYmFjayB0byB0ZXh0IGFuZCBhZGRzIGl0IHRv
IHRoZSByZXNvdXJjZXMgaWYgVVJMIGlzIG5vdC1lbXB0eS4KQEAgLTgwLDEwICs3OSwxMCBAQCBw
cml2YXRlOgogICAgIHZvaWQgcmV0cmlldmVSZXNvdXJjZXNGb3JQcm9wZXJ0aWVzKGNvbnN0IFN0
eWxlUHJvcGVydGllcyosIERvY3VtZW50Kik7CiAgICAgdm9pZCByZXRyaWV2ZVJlc291cmNlc0Zv
clJ1bGUoU3R5bGVSdWxlJiwgRG9jdW1lbnQqKTsKIAotICAgIFZlY3RvcjxSZXNvdXJjZT4qIG1f
cmVzb3VyY2VzOworICAgIFZlY3RvcjxSZXNvdXJjZT4mIG1fcmVzb3VyY2VzOwogICAgIExpc3RI
YXNoU2V0PFVSTD4gbV9yZXNvdXJjZVVSTHM7CiAgICAgSGFzaE1hcDxGcmFtZSosIFVSTD4gbV9i
bGFua0ZyYW1lVVJMczsKLSAgICB1bnNpZ25lZCBtX2JsYW5rRnJhbWVDb3VudGVyOworICAgIHVu
c2lnbmVkIG1fYmxhbmtGcmFtZUNvdW50ZXIgeyAwIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BlcmZvcm1hbmNlRW50cnku
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VFbnRyeS5oCmluZGV4IGIzYTg0YTNh
OWRjYTgyYmJmYThiMzQwNzRiZWNjNzNiNDg3ZWRhYWUuLmY4ZDZjYTdmZWM4MGMwZmZlNmE5ODZl
YmZlNDgxZWIzNDUwYmNiYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9y
bWFuY2VFbnRyeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VFbnRyeS5o
CkBAIC0zNCw3ICszNCw2IEBACiAjaWYgRU5BQkxFKFdFQl9USU1JTkcpCiAKICNpbmNsdWRlICJQ
ZXJmb3JtYW5jZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvVHlwZUNhc3RzLmg+CiAjaW5jbHVkZSA8d3Rm
L3RleHQvV1RGU3RyaW5nLmg+CkBAIC01NCw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IGJvb2wgaXNNYXJrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wg
aXNNZWFzdXJlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHN0YXRpYyBib29sIHN0
YXJ0VGltZUNvbXBhcmVMZXNzVGhhbihQYXNzUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+IGEsIFBh
c3NSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4gYikKKyAgICBzdGF0aWMgYm9vbCBzdGFydFRpbWVD
b21wYXJlTGVzc1RoYW4oY29uc3QgUmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+JiBhLCBjb25zdCBS
ZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4mIGIpCiAgICAgewogICAgICAgICByZXR1cm4gYS0+c3Rh
cnRUaW1lKCkgPCBiLT5zdGFydFRpbWUoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAKaW5kZXggZDk1MzE4MDU0NzBmOGVlY2E0Mjg3NjNi
N2NhMWVhYzUzZTE3M2I2Zi4uOWE2YzdhY2UzOTQwZWUzOGQ2NTdlYmJhMzVhMTgzNjM4ODBhNDlh
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcApA
QCAtODcsMTQgKzg3LDE0IEBAIFVzZXJUaW1pbmc6OlVzZXJUaW1pbmcoUGVyZm9ybWFuY2UmIHBl
cmZvcm1hbmNlKQogewogfQogCi1zdGF0aWMgdm9pZCBpbnNlcnRQZXJmb3JtYW5jZUVudHJ5KFBl
cmZvcm1hbmNlRW50cnlNYXAmIHBlcmZvcm1hbmNlRW50cnlNYXAsIFBhc3NSZWZQdHI8UGVyZm9y
bWFuY2VFbnRyeT4gcGVyZm9ybWFuY2VFbnRyeSkKK3N0YXRpYyB2b2lkIGluc2VydFBlcmZvcm1h
bmNlRW50cnkoUGVyZm9ybWFuY2VFbnRyeU1hcCYgcGVyZm9ybWFuY2VFbnRyeU1hcCwgUmVmPFBl
cmZvcm1hbmNlRW50cnk+JiYgcGVyZm9ybWFuY2VFbnRyeSkKIHsKLSAgICBSZWZQdHI8UGVyZm9y
bWFuY2VFbnRyeT4gZW50cnkgPSBwZXJmb3JtYW5jZUVudHJ5OwotICAgIFBlcmZvcm1hbmNlRW50
cnlNYXA6Oml0ZXJhdG9yIGl0ID0gcGVyZm9ybWFuY2VFbnRyeU1hcC5maW5kKGVudHJ5LT5uYW1l
KCkpOworICAgIFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBlbnRyeSA9IFdURk1vdmUocGVyZm9y
bWFuY2VFbnRyeSk7CisgICAgYXV0byBpdCA9IHBlcmZvcm1hbmNlRW50cnlNYXAuZmluZChlbnRy
eS0+bmFtZSgpKTsKICAgICBpZiAoaXQgIT0gcGVyZm9ybWFuY2VFbnRyeU1hcC5lbmQoKSkKLSAg
ICAgICAgaXQtPnZhbHVlLmFwcGVuZChlbnRyeSk7CisgICAgICAgIGl0LT52YWx1ZS5hcHBlbmQo
V1RGTW92ZShlbnRyeSkpOwogICAgIGVsc2UKLSAgICAgICAgcGVyZm9ybWFuY2VFbnRyeU1hcC5z
ZXQoZW50cnktPm5hbWUoKSwgVmVjdG9yPFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5Pj57IGVudHJ5
IH0pOworICAgICAgICBwZXJmb3JtYW5jZUVudHJ5TWFwLnNldChlbnRyeS0+bmFtZSgpLCBWZWN0
b3I8UmVmUHRyPFBlcmZvcm1hbmNlRW50cnk+PiB7IFdURk1vdmUoZW50cnkpIH0pOwogfQogCiBz
dGF0aWMgdm9pZCBjbGVhclBlZm9ybWFuY2VFbnRyaWVzKFBlcmZvcm1hbmNlRW50cnlNYXAmIHBl
cmZvcm1hbmNlRW50cnlNYXAsIGNvbnN0IFN0cmluZyYgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUmVzb3VyY2VVc2FnZU92ZXJsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9SZXNvdXJjZVVzYWdlT3ZlcmxheS5jcHAKaW5kZXggYWU4MTEyY2EyNjM5OTE2ZjQxNDVl
OTMyM2RlMGQyZjI4MTk1YWNiMC4uZTc0M2Q4ODBlMjBjYjFmZGY4NTcwMTYwZDBiMWFkNTgzOTI5
YjhkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlT3Zlcmxh
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdlT3ZlcmxheS5jcHAK
QEAgLTUzLDcgKzUzLDcgQEAgUmVzb3VyY2VVc2FnZU92ZXJsYXk6On5SZXNvdXJjZVVzYWdlT3Zl
cmxheSgpCiAKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIGhhY2sgc28gd2UgZG9uJ3QgdHJ5IHRv
IHVuaW5zdGFsbCB0aGUgUGFnZU92ZXJsYXkgZHVyaW5nIFBhZ2UgZGVzdHJ1Y3Rpb24uCiAgICAg
aWYgKG1fcGFnZS5tYWluRnJhbWUoKS5wYWdlKCkpCi0gICAgICAgIG1fcGFnZS5tYWluRnJhbWUo
KS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheShtX292ZXJsYXku
Z2V0KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAgbV9wYWdl
Lm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5
KCptX292ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIH0KIAogdm9p
ZCBSZXNvdXJjZVVzYWdlT3ZlcmxheTo6aW5pdGlhbGl6ZSgpCkBAIC03Miw3ICs3Miw3IEBAIHZv
aWQgUmVzb3VyY2VVc2FnZU92ZXJsYXk6OmluaXRpYWxpemUoKQogCiAgICAgbV9vdmVybGF5LT5z
ZXRGcmFtZShpbml0aWFsUmVjdCk7CiAgICAgbV9vdmVybGF5LT5zZXRTaG91bGRJZ25vcmVNb3Vz
ZUV2ZW50c091dHNpZGVCb3VuZHMoZmFsc2UpOwotICAgIG1fcGFnZS5tYWluRnJhbWUoKS5wYWdl
T3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkobV9vdmVybGF5LmdldCgpLCBQ
YWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgbV9wYWdlLm1haW5GcmFtZSgp
LnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSgqbV9vdmVybGF5LCBQ
YWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAgcGxhdGZvcm1Jbml0aWFsaXpl
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1h
dGlvbkJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2Uu
aAppbmRleCA1YWRlMDAyMmViYzBkODRkMjc4NjhmZTI0YjU0ZDY2YTYxZTc3ZTU4Li4yZGQwYzMw
OWUwNTgyZjM1Y2Y5MzZmNTBhY2Q5YzFhYzM0MTYzNTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVk
ZSAiQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUg
IlJlbmRlclN0eWxlQ29uc3RhbnRzLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9s
bGVyLmNwcAppbmRleCA1ODg5NmRiMmYxZTlmZDQ1Mzc4YjM2N2MwMGVjNzE3YmIxM2U0OTljLi40
YzQwYzkyM2EyM2UyMzM4ODQwODQyZTg4M2NlMDVkYjFlN2JkZDFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcApAQCAt
MTA0LDcgKzEwNCw3IEBAIGJvb2wgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmNsZWFyKFJl
bmRlckVsZW1lbnQmIHJlbmRlcmVyKQogICAgIEVsZW1lbnQqIGVsZW1lbnQgPSByZW5kZXJlci5l
bGVtZW50KCk7CiAKICAgICBtX2V2ZW50c1RvRGlzcGF0Y2gucmVtb3ZlQWxsTWF0Y2hpbmcoW2Vs
ZW1lbnRdIChjb25zdCBFdmVudFRvRGlzcGF0Y2gmIGluZm8pIHsKLSAgICAgICAgcmV0dXJuIGlu
Zm8uZWxlbWVudCA9PSBlbGVtZW50OworICAgICAgICByZXR1cm4gaW5mby5lbGVtZW50LnB0cigp
ID09IGVsZW1lbnQ7CiAgICAgfSk7CiAKICAgICBtX2VsZW1lbnRDaGFuZ2VzVG9EaXNwYXRjaC5y
ZW1vdmVBbGxNYXRjaGluZyhbZWxlbWVudF0oYXV0byYgY3VycmVudEVsZW1lbnQpIHsKQEAgLTIw
Myw3ICsyMDMsNyBAQCB2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjpmaXJlRXZlbnRz
QW5kVXBkYXRlU3R5bGUoKQogICAgIC8vIGZpcmUgYWxsIHRoZSBldmVudHMKICAgICBWZWN0b3I8
RXZlbnRUb0Rpc3BhdGNoPiBldmVudHNUb0Rpc3BhdGNoID0gV1RGTW92ZShtX2V2ZW50c1RvRGlz
cGF0Y2gpOwogICAgIGZvciAoYXV0byYgZXZlbnQgOiBldmVudHNUb0Rpc3BhdGNoKSB7Ci0gICAg
ICAgIEVsZW1lbnQmIGVsZW1lbnQgPSAqZXZlbnQuZWxlbWVudDsKKyAgICAgICAgRWxlbWVudCYg
ZWxlbWVudCA9IGV2ZW50LmVsZW1lbnQ7CiAgICAgICAgIGlmIChldmVudC5ldmVudFR5cGUgPT0g
ZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCkKICAgICAgICAgICAgIGVsZW1lbnQuZGlz
cGF0Y2hFdmVudChUcmFuc2l0aW9uRXZlbnQ6OmNyZWF0ZShldmVudC5ldmVudFR5cGUsIGV2ZW50
Lm5hbWUsIGV2ZW50LmVsYXBzZWRUaW1lLCBQc2V1ZG9FbGVtZW50Ojpwc2V1ZG9FbGVtZW50TmFt
ZUZvckV2ZW50cyhlbGVtZW50LnBzZXVkb0lkKCkpKSk7CiAgICAgICAgIGVsc2UKQEAgLTIyNSwy
MSArMjI1LDE1IEBAIHZvaWQgQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OnN0YXJ0VXBkYXRl
U3R5bGVJZk5lZWRlZERpc3BhdGNoZXIoKQogICAgICAgICBtX3VwZGF0ZVN0eWxlSWZOZWVkZWRE
aXNwYXRjaGVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAotdm9pZCBBbmltYXRpb25Db250cm9sbGVy
UHJpdmF0ZTo6YWRkRXZlbnRUb0Rpc3BhdGNoKFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCwg
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgZG91Ymxl
IGVsYXBzZWRUaW1lKQordm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6YWRkRXZlbnRU
b0Rpc3BhdGNoKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGRvdWJsZSBlbGFwc2VkVGltZSkKIHsKLSAgICBtX2V2ZW50
c1RvRGlzcGF0Y2guZ3JvdyhtX2V2ZW50c1RvRGlzcGF0Y2guc2l6ZSgpKzEpOwotICAgIEV2ZW50
VG9EaXNwYXRjaCYgZXZlbnQgPSBtX2V2ZW50c1RvRGlzcGF0Y2hbbV9ldmVudHNUb0Rpc3BhdGNo
LnNpemUoKS0xXTsKLSAgICBldmVudC5lbGVtZW50ID0gZWxlbWVudDsKLSAgICBldmVudC5ldmVu
dFR5cGUgPSBldmVudFR5cGU7Ci0gICAgZXZlbnQubmFtZSA9IG5hbWU7Ci0gICAgZXZlbnQuZWxh
cHNlZFRpbWUgPSBlbGFwc2VkVGltZTsKLSAgICAKKyAgICBtX2V2ZW50c1RvRGlzcGF0Y2guYXBw
ZW5kKHsgZWxlbWVudCwgZXZlbnRUeXBlLCBuYW1lLCBlbGFwc2VkVGltZSB9KTsKICAgICBzdGFy
dFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCk7CiB9CiAKLXZvaWQgQW5pbWF0aW9uQ29u
dHJvbGxlclByaXZhdGU6OmFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKFJlZjxFbGVtZW50PiYm
IGVsZW1lbnQpCit2b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFbGVtZW50Q2hh
bmdlVG9EaXNwYXRjaChFbGVtZW50JiBlbGVtZW50KQogewotICAgIG1fZWxlbWVudENoYW5nZXNU
b0Rpc3BhdGNoLmFwcGVuZChXVEZNb3ZlKGVsZW1lbnQpKTsKKyAgICBtX2VsZW1lbnRDaGFuZ2Vz
VG9EaXNwYXRjaC5hcHBlbmQoZWxlbWVudCk7CiAgICAgQVNTRVJUKG1fZWxlbWVudENoYW5nZXNU
b0Rpc3BhdGNoLmxhc3QoKS0+ZG9jdW1lbnQoKS5wYWdlQ2FjaGVTdGF0ZSgpID09IERvY3VtZW50
OjpOb3RJblBhZ2VDYWNoZSk7CiAgICAgc3RhcnRVcGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hl
cigpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0
aW9uQ29udHJvbGxlclByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Fu
aW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKaW5kZXggZmI5Y2M4MmI4MTUxN2QwYmEzMjczZjM4
MGYyMGJjZDhhOTg2MWY1OC4uNDlhZDNmOWM5NTQyNTVjMzFkMGZiZmZhNGM2MjY4YjA2NzkyMTdl
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29u
dHJvbGxlclByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Bbmlt
YXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCkBAIC0yOSwzMyArMjksMjEgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiQW5pbWF0aW9uQmFzZS5oIgotI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFt
ZXMuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1
ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3Rm
L3RleHQvQXRvbWljU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQW5pbWF0aW9uQmFzZTsKIGNsYXNzIENvbXBv
c2l0ZUFuaW1hdGlvbjsKIGNsYXNzIERvY3VtZW50OwotY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZy
YW1lOwotY2xhc3MgUmVuZGVyRWxlbWVudDsKLWNsYXNzIFJlbmRlclN0eWxlOwogCi1lbnVtIFNl
dENoYW5nZWQgewotICAgIERvTm90Q2FsbFNldENoYW5nZWQgPSAwLAotICAgIENhbGxTZXRDaGFu
Z2VkID0gMQotfTsKK2VudW0gU2V0Q2hhbmdlZCB7IERvTm90Q2FsbFNldENoYW5nZWQsIENhbGxT
ZXRDaGFuZ2VkIH07CiAKIGNsYXNzIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlIHsKLSAgICBX
VEZfTUFLRV9OT05DT1BZQUJMRShBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZSk7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgog
ICAgIGV4cGxpY2l0IEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlKEZyYW1lJik7CiAgICAgfkFu
aW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlKCk7CkBAIC02OSw4ICs1Nyw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgdXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXJGaXJlZCgpOwogICAgIHZvaWQg
c3RhcnRVcGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hlcigpOwotICAgIHZvaWQgYWRkRXZlbnRU
b0Rpc3BhdGNoKFBhc3NSZWZQdHI8RWxlbWVudD4gZWxlbWVudCwgY29uc3QgQXRvbWljU3RyaW5n
JiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKTsKLSAg
ICB2b2lkIGFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKFJlZjxFbGVtZW50PiYmKTsKKyAgICB2
b2lkIGFkZEV2ZW50VG9EaXNwYXRjaChFbGVtZW50JiwgY29uc3QgQXRvbWljU3RyaW5nJiBldmVu
dFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgZG91YmxlIGVsYXBzZWRUaW1lKTsKKyAgICB2b2lk
IGFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKEVsZW1lbnQmKTsKIAogICAgIGJvb2wgaGFzQW5p
bWF0aW9ucygpIGNvbnN0IHsgcmV0dXJuICFtX2NvbXBvc2l0ZUFuaW1hdGlvbnMuaXNFbXB0eSgp
OyB9CiAKQEAgLTEzNCwyMSArMTIyLDE5IEBAIHByaXZhdGU6CiAgICAgVGltZXIgbV9hbmltYXRp
b25UaW1lcjsKICAgICBUaW1lciBtX3VwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyOwogICAg
IEZyYW1lJiBtX2ZyYW1lOwotICAgIAotICAgIGNsYXNzIEV2ZW50VG9EaXNwYXRjaCB7Ci0gICAg
cHVibGljOgotICAgICAgICBSZWZQdHI8RWxlbWVudD4gZWxlbWVudDsKKworICAgIHN0cnVjdCBF
dmVudFRvRGlzcGF0Y2ggeworICAgICAgICBSZWY8RWxlbWVudD4gZWxlbWVudDsKICAgICAgICAg
QXRvbWljU3RyaW5nIGV2ZW50VHlwZTsKICAgICAgICAgU3RyaW5nIG5hbWU7CiAgICAgICAgIGRv
dWJsZSBlbGFwc2VkVGltZTsKICAgICB9OwotICAgIAogICAgIFZlY3RvcjxFdmVudFRvRGlzcGF0
Y2g+IG1fZXZlbnRzVG9EaXNwYXRjaDsKICAgICBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBtX2VsZW1l
bnRDaGFuZ2VzVG9EaXNwYXRjaDsKICAgICAKICAgICBkb3VibGUgbV9iZWdpbkFuaW1hdGlvblVw
ZGF0ZVRpbWU7CiAKLSAgICB0eXBlZGVmIEhhc2hTZXQ8UmVmUHRyPEFuaW1hdGlvbkJhc2U+PiBB
bmltYXRpb25zU2V0OworICAgIHVzaW5nIEFuaW1hdGlvbnNTZXQgPSBIYXNoU2V0PFJlZlB0cjxB
bmltYXRpb25CYXNlPj47CiAgICAgQW5pbWF0aW9uc1NldCBtX2FuaW1hdGlvbnNXYWl0aW5nRm9y
U3R5bGU7CiAgICAgQW5pbWF0aW9uc1NldCBtX2FuaW1hdGlvbnNXYWl0aW5nRm9yU3RhcnRUaW1l
UmVzcG9uc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NT
U1Byb3BlcnR5QW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NT
U1Byb3BlcnR5QW5pbWF0aW9uLmNwcAppbmRleCA5ZjZiOTE3YzZlYzFjNmZlYmJhNjk0MGExNjcw
NWJkYmQ1YWM3NGNmLi44YzU0MDNhNGMxOTYzN2FhNjIxZGU2YTQwNzE2MDcxYWU3ODM1MDJjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1h
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlB
bmltYXRpb24uY3BwCkBAIC0xMjUsNyArMTI1LDcgQEAgc3RhdGljIGlubGluZSBUcmFuc2Zvcm1P
cGVyYXRpb25zIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltYXRpb24sIGNvbnMK
ICAgICByZXR1cm4gdG8uYmxlbmRCeVVzaW5nTWF0cml4SW50ZXJwb2xhdGlvbihmcm9tLCBwcm9n
cmVzcywgaXM8UmVuZGVyQm94PigqYW5pbWF0aW9uLT5yZW5kZXJlcigpKSA/IGRvd25jYXN0PFJl
bmRlckJveD4oKmFuaW1hdGlvbi0+cmVuZGVyZXIoKSkuYm9yZGVyQm94UmVjdCgpLnNpemUoKSA6
IExheW91dFNpemUoKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxDbGlwUGF0aE9w
ZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBDbGlwUGF0aE9wZXJhdGlv
biogZnJvbSwgQ2xpcFBhdGhPcGVyYXRpb24qIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0aWMg
aW5saW5lIFJlZlB0cjxDbGlwUGF0aE9wZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlv
bkJhc2UqLCBDbGlwUGF0aE9wZXJhdGlvbiogZnJvbSwgQ2xpcFBhdGhPcGVyYXRpb24qIHRvLCBk
b3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgaWYgKCFmcm9tIHx8ICF0bykKICAgICAgICAgcmV0dXJu
IHRvOwpAQCAtMTQzLDcgKzE0Myw3IEBAIHN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxDbGlwUGF0
aE9wZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBDbGlwCiAgICAgcmV0
dXJuIFNoYXBlQ2xpcFBhdGhPcGVyYXRpb246OmNyZWF0ZSh0b1NoYXBlLmJsZW5kKGZyb21TaGFw
ZSwgcHJvZ3Jlc3MpKTsKIH0KIAotc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFNoYXBlVmFsdWU+
IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgU2hhcGVWYWx1ZSogZnJvbSwgU2hhcGVW
YWx1ZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPFNoYXBlVmFs
dWU+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgU2hhcGVWYWx1ZSogZnJvbSwgU2hh
cGVWYWx1ZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAoIWZyb20gfHwgIXRvKQog
ICAgICAgICByZXR1cm4gdG87CkBAIC0xNjMsNyArMTYzLDcgQEAgc3RhdGljIGlubGluZSBQYXNz
UmVmUHRyPFNoYXBlVmFsdWU+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiwgU2hhcGVW
YWx1ZSoKICAgICByZXR1cm4gU2hhcGVWYWx1ZTo6Y3JlYXRlKHRvU2hhcGUuYmxlbmQoZnJvbVNo
YXBlLCBwcm9ncmVzcyksIHRvLT5jc3NCb3goKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFzc1Jl
ZlB0cjxGaWx0ZXJPcGVyYXRpb24+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmlt
YXRpb24sIEZpbHRlck9wZXJhdGlvbiogZnJvbU9wLCBGaWx0ZXJPcGVyYXRpb24qIHRvT3AsIGRv
dWJsZSBwcm9ncmVzcywgYm9vbCBibGVuZFRvUGFzc3Rocm91Z2ggPSBmYWxzZSkKK3N0YXRpYyBp
bmxpbmUgUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJh
c2UqIGFuaW1hdGlvbiwgRmlsdGVyT3BlcmF0aW9uKiBmcm9tT3AsIEZpbHRlck9wZXJhdGlvbiog
dG9PcCwgZG91YmxlIHByb2dyZXNzLCBib29sIGJsZW5kVG9QYXNzdGhyb3VnaCA9IGZhbHNlKQog
ewogICAgIEFTU0VSVCh0b09wKTsKICAgICBpZiAodG9PcC0+YmxlbmRpbmdOZWVkc1JlbmRlcmVy
U2l6ZSgpKSB7CkBAIC0yMTgsNyArMjE4LDcgQEAgc3RhdGljIGlubGluZSBGaWx0ZXJPcGVyYXRp
b25zIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25zdCBGaWx0ZXIKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U3R5bGVJbWFn
ZT4gYmxlbmRGaWx0ZXIoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgQ2FjaGVkSW1hZ2UqIGlt
YWdlLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmcm9tLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25z
JiB0bywgZG91YmxlIHByb2dyZXNzKQorc3RhdGljIGlubGluZSBSZWZQdHI8U3R5bGVJbWFnZT4g
YmxlbmRGaWx0ZXIoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgQ2FjaGVkSW1hZ2UqIGltYWdl
LCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBmcm9tLCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiB0
bywgZG91YmxlIHByb2dyZXNzKQogewogICAgIEFTU0VSVChpbWFnZSk7CiAgICAgRmlsdGVyT3Bl
cmF0aW9ucyBmaWx0ZXJSZXN1bHQgPSBibGVuZEZpbHRlck9wZXJhdGlvbnMoYW5pbSwgZnJvbSwg
dG8sIHByb2dyZXNzKTsKQEAgLTI3OCw3ICsyNzgsNyBAQCBzdGF0aWMgaW5saW5lIFZlY3RvcjxT
VkdMZW5ndGhWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBjb25zdCBWZWN0
bwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxTdHls
ZUltYWdlPiBjcm9zc2ZhZGVCbGVuZChjb25zdCBBbmltYXRpb25CYXNlKiwgU3R5bGVDYWNoZWRJ
bWFnZSogZnJvbVN0eWxlSW1hZ2UsIFN0eWxlQ2FjaGVkSW1hZ2UqIHRvU3R5bGVJbWFnZSwgZG91
YmxlIHByb2dyZXNzKQorc3RhdGljIGlubGluZSBSZWZQdHI8U3R5bGVJbWFnZT4gY3Jvc3NmYWRl
QmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSosIFN0eWxlQ2FjaGVkSW1hZ2UqIGZyb21TdHlsZUlt
YWdlLCBTdHlsZUNhY2hlZEltYWdlKiB0b1N0eWxlSW1hZ2UsIGRvdWJsZSBwcm9ncmVzcykKIHsK
ICAgICAvLyBJZiBwcm9ncmVzcyBpcyBhdCBvbmUgb2YgdGhlIGV4dHJlbWVzLCB3ZSB3YW50IGdl
dENvbXB1dGVkU3R5bGUgdG8gc2hvdyB0aGUgaW1hZ2UsCiAgICAgLy8gbm90IGEgY29tcGxldGVk
IGNyb3NzLWZhZGUsIHNvIHdlIGhhbmQgYmFjayBvbmUgb2YgdGhlIGV4aXN0aW5nIGltYWdlcy4K
QEAgLTI5NSw3ICsyOTUsNyBAQCBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4g
Y3Jvc3NmYWRlQmxlbmQoY29uc3QgQW5pbWF0aW9uQmFzZSosIFN0eWxlQwogICAgIHJldHVybiBT
dHlsZUdlbmVyYXRlZEltYWdlOjpjcmVhdGUoV1RGTW92ZShjcm9zc2ZhZGVWYWx1ZSkpOwogfQog
Ci1zdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U3R5bGVJbWFnZT4gYmxlbmRGdW5jKGNvbnN0IEFu
aW1hdGlvbkJhc2UqIGFuaW0sIFN0eWxlSW1hZ2UqIGZyb20sIFN0eWxlSW1hZ2UqIHRvLCBkb3Vi
bGUgcHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5lIFJlZlB0cjxTdHlsZUltYWdlPiBibGVuZEZ1bmMo
Y29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgU3R5bGVJbWFnZSogZnJvbSwgU3R5bGVJbWFnZSog
dG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAoIWZyb20gfHwgIXRvKQogICAgICAgICBy
ZXR1cm4gdG87CkBAIC0zNjQsMTEgKzM2NCwxMiBAQCBzdGF0aWMgaW5saW5lIE5pbmVQaWVjZUlt
YWdlIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25zdCBOaW5lUGllYwog
ICAgIGlmIChmcm9tLmltYWdlKCktPmltYWdlU2l6ZShhbmltLT5yZW5kZXJlcigpLCAxLjApICE9
IHRvLmltYWdlKCktPmltYWdlU2l6ZShhbmltLT5yZW5kZXJlcigpLCAxLjApKQogICAgICAgICBy
ZXR1cm4gdG87CiAKLSAgICBhdXRvIG5ld0NvbnRlbnRJbWFnZSA9IGJsZW5kRnVuYyhhbmltLCBm
cm9tLmltYWdlKCksIHRvLmltYWdlKCksIHByb2dyZXNzKTsKLSAgICByZXR1cm4gTmluZVBpZWNl
SW1hZ2UobmV3Q29udGVudEltYWdlLCBmcm9tLmltYWdlU2xpY2VzKCksIGZyb20uZmlsbCgpLCBm
cm9tLmJvcmRlclNsaWNlcygpLCBmcm9tLm91dHNldCgpLCBmcm9tLmhvcml6b250YWxSdWxlKCks
IGZyb20udmVydGljYWxSdWxlKCkpOworICAgIHJldHVybiBOaW5lUGllY2VJbWFnZShibGVuZEZ1
bmMoYW5pbSwgZnJvbS5pbWFnZSgpLCB0by5pbWFnZSgpLCBwcm9ncmVzcyksCisgICAgICAgIGZy
b20uaW1hZ2VTbGljZXMoKSwgZnJvbS5maWxsKCksIGZyb20uYm9yZGVyU2xpY2VzKCksIGZyb20u
b3V0c2V0KCksIGZyb20uaG9yaXpvbnRhbFJ1bGUoKSwgZnJvbS52ZXJ0aWNhbFJ1bGUoKSk7CiB9
CiAKICNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZPTlRTKQorCiBzdGF0aWMgaW5saW5lIEZvbnRWYXJp
YXRpb25TZXR0aW5ncyBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgY29uc3Qg
Rm9udFZhcmlhdGlvblNldHRpbmdzJiBmcm9tLCBjb25zdCBGb250VmFyaWF0aW9uU2V0dGluZ3Mm
IHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAgaWYgKGZyb20uc2l6ZSgpICE9IHRvLnNpemUo
KSkKQEAgLTM4NSw2ICszODYsNyBAQCBzdGF0aWMgaW5saW5lIEZvbnRWYXJpYXRpb25TZXR0aW5n
cyBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgY29uc3QgRgogICAgIH0KICAg
ICByZXR1cm4gcmVzdWx0OwogfQorCiAjZW5kaWYKIAogY2xhc3MgQW5pbWF0aW9uUHJvcGVydHlX
cmFwcGVyQmFzZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9D
b21wb3NpdGVBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29t
cG9zaXRlQW5pbWF0aW9uLmNwcAppbmRleCA1Yjc0ZTc2NzgyOGM0NWE1NjI5ZTE5ZmUyNjA1Mzgz
YzJhNWY2ZThhLi42Njk5MjcwN2IxZWVhYjE4NDNmZTAzOWFhYzYyZGUzMGM0NDMwMmE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5jcHAKQEAgLTEyMSw4ICsxMjEsOCBAQCB2b2lkIENvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRl
VHJhbnNpdGlvbnMoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNvbnN0IFJlbmRlcgogICAgICAg
ICAgICAgICAgIC8vIElmIHRoZXJlIGlzIGEgcnVubmluZyBhbmltYXRpb24gZm9yIHRoaXMgcHJv
cGVydHksIHRoZSB0cmFuc2l0aW9uIGlzIG92ZXJyaWRkZW4KICAgICAgICAgICAgICAgICAvLyBh
bmQgd2UgaGF2ZSB0byB1c2UgdGhlIHVuYW5pbWF0ZWRTdHlsZSBmcm9tIHRoZSBhbmltYXRpb24u
IFdlIGRvIHRoZSB0ZXN0CiAgICAgICAgICAgICAgICAgLy8gYWdhaW5zdCB0aGUgdW5hbmltYXRl
ZCBzdHlsZSBoZXJlLCBidXQgd2UgIm92ZXJyaWRlIiB0aGUgdHJhbnNpdGlvbiBsYXRlci4KLSAg
ICAgICAgICAgICAgICBSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IGtleWZyYW1lQW5pbSA9IGdl
dEFuaW1hdGlvbkZvclByb3BlcnR5KHByb3ApOwotICAgICAgICAgICAgICAgIGF1dG8qIGZyb21T
dHlsZSA9IGtleWZyYW1lQW5pbSA/IGtleWZyYW1lQW5pbS0+dW5hbmltYXRlZFN0eWxlKCkgOiBj
dXJyZW50U3R5bGU7CisgICAgICAgICAgICAgICAgYXV0byoga2V5ZnJhbWVBbmltYXRpb24gPSBh
bmltYXRpb25Gb3JQcm9wZXJ0eShwcm9wKTsKKyAgICAgICAgICAgICAgICBhdXRvKiBmcm9tU3R5
bGUgPSBrZXlmcmFtZUFuaW1hdGlvbiA/IGtleWZyYW1lQW5pbWF0aW9uLT51bmFuaW1hdGVkU3R5
bGUoKSA6IGN1cnJlbnRTdHlsZTsKIAogICAgICAgICAgICAgICAgIC8vIFNlZSBpZiB0aGVyZSBp
cyBhIGN1cnJlbnQgdHJhbnNpdGlvbiBmb3IgdGhpcyBwcm9wCiAgICAgICAgICAgICAgICAgSW1w
bGljaXRBbmltYXRpb24qIGltcGxBbmltID0gbV90cmFuc2l0aW9ucy5nZXQocHJvcCk7CkBAIC0x
NzIsNyArMTcyLDcgQEAgdm9pZCBDb21wb3NpdGVBbmltYXRpb246OnVwZGF0ZVRyYW5zaXRpb25z
KFJlbmRlckVsZW1lbnQqIHJlbmRlcmVyLCBjb25zdCBSZW5kZXIKICAgICAgICAgICAgICAgICAg
ICAgTE9HKEFuaW1hdGlvbnMsICJDcmVhdGVkIEltcGxpY2l0QW5pbWF0aW9uICVwIG9uIHJlbmRl
cmVyICVwIGZvciBwcm9wZXJ0eSAlcyBkdXJhdGlvbiAlLjJmIGRlbGF5ICUuMmYiLCBpbXBsaWNp
dEFuaW1hdGlvbi5wdHIoKSwgcmVuZGVyZXIsIGdldFByb3BlcnR5TmFtZShwcm9wKSwgYW5pbWF0
aW9uLmR1cmF0aW9uKCksIGFuaW1hdGlvbi5kZWxheSgpKTsKICAgICAgICAgICAgICAgICAgICAg
bV90cmFuc2l0aW9ucy5zZXQocHJvcCwgV1RGTW92ZShpbXBsaWNpdEFuaW1hdGlvbikpOwogICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAKKwogICAgICAgICAgICAgICAgIC8vIFdl
IG9ubHkgbmVlZCBvbmUgcGFzcyBmb3IgdGhlIHNpbmdsZSBwcm9wIGNhc2UKICAgICAgICAgICAg
ICAgICBpZiAoIWFsbCkKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0zOTksMjEgKzM5
OSwyMSBAQCBkb3VibGUgQ29tcG9zaXRlQW5pbWF0aW9uOjp0aW1lVG9OZXh0U2VydmljZSgpIGNv
bnN0CiAgICAgcmV0dXJuIG1pblQ7CiB9CiAKLVBhc3NSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+
IENvbXBvc2l0ZUFuaW1hdGlvbjo6Z2V0QW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJ
RCBwcm9wZXJ0eSkgY29uc3QKK0tleWZyYW1lQW5pbWF0aW9uKiBDb21wb3NpdGVBbmltYXRpb246
OmFuaW1hdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQgcHJvcGVydHkpIGNvbnN0CiB7Ci0g
ICAgUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiByZXR2YWw7Ci0gICAgCisgICAgS2V5ZnJhbWVB
bmltYXRpb24qIHJlc3VsdCA9IG51bGxwdHI7CisKICAgICAvLyBXZSB3YW50IHRvIHNlbmQgYmFj
ayB0aGUgbGFzdCBhbmltYXRpb24gd2l0aCB0aGUgcHJvcGVydHkgaWYgdGhlcmUgYXJlIG11bHRp
cGxlcy4KICAgICAvLyBTbyB3ZSBuZWVkIHRvIGl0ZXJhdGUgdGhyb3VnaCBhbGwgYW5pbWF0aW9u
cwogICAgIGlmICghbV9rZXlmcmFtZUFuaW1hdGlvbnMuaXNFbXB0eSgpKSB7CiAgICAgICAgIG1f
a2V5ZnJhbWVBbmltYXRpb25zLmNoZWNrQ29uc2lzdGVuY3koKTsKICAgICAgICAgZm9yIChhdXRv
JiBhbmltYXRpb24gOiBtX2tleWZyYW1lQW5pbWF0aW9ucy52YWx1ZXMoKSkgewogICAgICAgICAg
ICAgaWYgKGFuaW1hdGlvbi0+aGFzQW5pbWF0aW9uRm9yUHJvcGVydHkocHJvcGVydHkpKQotICAg
ICAgICAgICAgICAgIHJldHZhbCA9IGFuaW1hdGlvbjsKKyAgICAgICAgICAgICAgICByZXN1bHQg
PSBhbmltYXRpb24uZ2V0KCk7CiAgICAgICAgIH0KICAgICB9Ci0gICAgCi0gICAgcmV0dXJuIHJl
dHZhbDsKKworICAgIHJldHVybiByZXN1bHQ7CiB9CiAKIGJvb2wgQ29tcG9zaXRlQW5pbWF0aW9u
Ojpjb21wdXRlRXh0ZW50T2ZUcmFuc2Zvcm1BbmltYXRpb24oTGF5b3V0UmVjdCYgYm91bmRzKSBj
b25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ29tcG9zaXRl
QW5pbWF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmlt
YXRpb24uaAppbmRleCAzMzdmZTZmMTY2ZTcxYzFjZTYxOWFlMjM4ODkzMTE4N2ZmODY0N2NjLi40
MGMzYTQ5MWYyYTU0OGViM2UyYjMzMTZjNGYwZmZlMDUzMjEzOTAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaApAQCAtNzEsNyAr
NzEsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzQW5pbWF0aW5nUHJvcGVydHkoQ1NTUHJvcGVy
dHlJRCwgYm9vbCBhY2NlbGVyYXRlZE9ubHksIEFuaW1hdGlvbkJhc2U6OlJ1bm5pbmdTdGF0ZSkg
Y29uc3Q7CiAKLSAgICBQYXNzUmVmUHRyPEtleWZyYW1lQW5pbWF0aW9uPiBnZXRBbmltYXRpb25G
b3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEKSBjb25zdDsKKyAgICBLZXlmcmFtZUFuaW1hdGlvbiog
YW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJvcGVydHlJRCkgY29uc3Q7CiAKICAgICB2b2lkIG92
ZXJyaWRlSW1wbGljaXRBbmltYXRpb25zKENTU1Byb3BlcnR5SUQpOwogICAgIHZvaWQgcmVzdW1l
T3ZlcnJpZGRlbkltcGxpY2l0QW5pbWF0aW9ucyhDU1NQcm9wZXJ0eUlEKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9uLmNwcAppbmRleCA3
MTZiZWE4MjQ5MDQ5MmM0M2JjZTE3NzQ5ZDFmZmI1MjEyN2NjY2ZmLi5mZGVkNjIzYTZhZGRhOTI0
YWI3NjM2M2UyNDY5Y2JjYTMyY2JmYjczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vSW1wbGljaXRBbmltYXRpb24uY3BwCkBAIC0xNjMsMTAgKzE2Myw5IEBAIHZv
aWQgSW1wbGljaXRBbmltYXRpb246Om9uQW5pbWF0aW9uRW5kKGRvdWJsZSBlbGFwc2VkVGltZSkK
ICAgICAvLyBydW5uaW5nLiBCdXQgbm93IHRoYXQgdGhlIHRyYW5zaXRpb24gaGFzIGNvbXBsZXRl
ZCwgd2UgbmVlZCB0byB1cGRhdGUgdGhpcyBzdHlsZSB3aXRoIGl0cyBuZXcKICAgICAvLyBkZXN0
aW5hdGlvbi4gSWYgd2UgZGlkbid0LCB0aGUgbmV4dCB0aW1lIHRocm91Z2ggd2Ugd291bGQgdGhp
bmsgYSB0cmFuc2l0aW9uIGhhZCBzdGFydGVkCiAgICAgLy8gKGNvbXBhcmluZyB0aGUgb2xkIHVu
YW5pbWF0ZWQgc3R5bGUgd2l0aCB0aGUgbmV3IGZpbmFsIHN0eWxlIG9mIHRoZSB0cmFuc2l0aW9u
KS4KLSAgICBSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+IGtleWZyYW1lQW5pbSA9IG1fY29tcG9z
aXRlQW5pbWF0aW9uLT5nZXRBbmltYXRpb25Gb3JQcm9wZXJ0eShtX2FuaW1hdGluZ1Byb3BlcnR5
KTsKLSAgICBpZiAoa2V5ZnJhbWVBbmltKQotICAgICAgICBrZXlmcmFtZUFuaW0tPnNldFVuYW5p
bWF0ZWRTdHlsZShSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoKm1fdG9TdHlsZSkpOwotICAgIAorICAg
IGlmIChhdXRvKiBhbmltYXRpb24gPSBtX2NvbXBvc2l0ZUFuaW1hdGlvbi0+YW5pbWF0aW9uRm9y
UHJvcGVydHkobV9hbmltYXRpbmdQcm9wZXJ0eSkpCisgICAgICAgIGFuaW1hdGlvbi0+c2V0VW5h
bmltYXRlZFN0eWxlKFJlbmRlclN0eWxlOjpjbG9uZVB0cigqbV90b1N0eWxlKSk7CisKICAgICBz
ZW5kVHJhbnNpdGlvbkV2ZW50KGV2ZW50TmFtZXMoKS50cmFuc2l0aW9uZW5kRXZlbnQsIGVsYXBz
ZWRUaW1lKTsKICAgICBlbmRBbmltYXRpb24oKTsKIH0KQEAgLTE4Nyw3ICsxODYsNyBAQCBib29s
IEltcGxpY2l0QW5pbWF0aW9uOjpzZW5kVHJhbnNpdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmlu
ZyYgZXZlbnRUeXBlLCBkb3VibAogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
ICAgICAgICAgLy8gU2NoZWR1bGUgZXZlbnQgaGFuZGxpbmcKLSAgICAgICAgICAgIG1fY29tcG9z
aXRlQW5pbWF0aW9uLT5hbmltYXRpb25Db250cm9sbGVyKCkuYWRkRXZlbnRUb0Rpc3BhdGNoKGVs
ZW1lbnQsIGV2ZW50VHlwZSwgcHJvcGVydHlOYW1lLCBlbGFwc2VkVGltZSk7CisgICAgICAgICAg
ICBtX2NvbXBvc2l0ZUFuaW1hdGlvbi0+YW5pbWF0aW9uQ29udHJvbGxlcigpLmFkZEV2ZW50VG9E
aXNwYXRjaCgqZWxlbWVudCwgZXZlbnRUeXBlLCBwcm9wZXJ0eU5hbWUsIGVsYXBzZWRUaW1lKTsK
IAogICAgICAgICAgICAgLy8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgKHVuYW5pbWF0ZWQpIHN0eWxl
CiAgICAgICAgICAgICBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS50cmFuc2l0aW9uZW5k
RXZlbnQgJiYgZWxlbWVudC0+cmVuZGVyZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAppbmRleCA0NzFiYWNmNmYxYjlmMDVj
ZTFkMzRkYTg3NWZlOGM2N2M5NGZmNTdkLi5kYzI5ZDIyMzkxYjAzNGJkY2VlNTY2ZjNiMmE1YzMx
N2EwZGQwMDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlm
cmFtZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5
ZnJhbWVBbmltYXRpb24uY3BwCkBAIC0zMjcsNyArMzI3LDcgQEAgYm9vbCBLZXlmcmFtZUFuaW1h
dGlvbjo6c2VuZEFuaW1hdGlvbkV2ZW50KGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBlLCBk
b3VibGUKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAvLyBTY2hlZHVsZSBl
dmVudCBoYW5kbGluZwotICAgICAgICBtX2NvbXBvc2l0ZUFuaW1hdGlvbi0+YW5pbWF0aW9uQ29u
dHJvbGxlcigpLmFkZEV2ZW50VG9EaXNwYXRjaChlbGVtZW50LCBldmVudFR5cGUsIG1fa2V5ZnJh
bWVzLmFuaW1hdGlvbk5hbWUoKSwgZWxhcHNlZFRpbWUpOworICAgICAgICBtX2NvbXBvc2l0ZUFu
aW1hdGlvbi0+YW5pbWF0aW9uQ29udHJvbGxlcigpLmFkZEV2ZW50VG9EaXNwYXRjaCgqZWxlbWVu
dCwgZXZlbnRUeXBlLCBtX2tleWZyYW1lcy5hbmltYXRpb25OYW1lKCksIGVsYXBzZWRUaW1lKTsK
IAogICAgICAgICAvLyBSZXN0b3JlIHRoZSBvcmlnaW5hbCAodW5hbmltYXRlZCkgc3R5bGUKICAg
ICAgICAgaWYgKChldmVudFR5cGUgPT0gZXZlbnROYW1lcygpLndlYmtpdEFuaW1hdGlvbkVuZEV2
ZW50IHx8IGV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkuYW5pbWF0aW9uZW5kRXZlbnQpICYmIGVs
ZW1lbnQtPnJlbmRlcmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2VmbC9F
dmVudEhhbmRsZXJFZmwuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVy
RWZsLmNwcAppbmRleCAyMTA2ZDFlMTlhNDg2YTM4NWZmZTg3ZjkwMGZhYWZlOTA4YmNhYzEyLi5h
YWQwN2Q2ZmY2YjE3ZWNkZDcxNzExZTQxZWY1YjRlMDNlZTAwNTFhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAKQEAgLTQ5LDcgKzQ5LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogY29uc3QgZG91YmxlIEV2ZW50SGFuZGxlcjo6VGV4dERyYWdEZWxheSA9
IDAuMDsKICNlbmRpZgogCi1ib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xz
KEtleWJvYXJkRXZlbnQqKSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1D
b250cm9scyhLZXlib2FyZEV2ZW50JikgY29uc3QKIHsKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAg
LTk2LDEwICs5NiwxMiBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lkZ2V0RGlkSGFuZGxlV2hlZWxF
dmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBXaQogfQogCiAjaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkKLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNy
ZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKKworUmVmPERhdGFUcmFuc2Zlcj4gRXZl
bnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CiB7CiAgICAgcmV0
dXJuIERhdGFUcmFuc2Zlcjo6Y3JlYXRlRm9yRHJhZ0FuZERyb3AoKTsKIH0KKwogI2VuZGlmCiAK
IGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFtZShNb3VzZUV2
ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBtZXYsIEZyYW1lKiBzdWJmcmFtZSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0ay5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3BwCmluZGV4IDQzZjA1Mzc1ZTViZGU2MTRm
OTA4YTdjMTU0ZDgyZDdiMDhlY2UyNGIuLmFhYWRlMDAyYzVjODliZGNlYzAyNTM2NWIwMTk3YTUw
MTk2YzJiODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxl
ckd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNw
cApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjb25zdCBkb3VibGUgRXZl
bnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4wOwogI2VuZGlmCiAKLWJvb2wgRXZlbnRIYW5k
bGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCopIGNvbnN0Citib29sIEV2
ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQmKSBjb25zdAog
ewogICAgIC8vIFdlIGFsd2F5cyBhbGxvdyB0YWJzIHRvIGFsbCBjb250cm9scwogICAgIHJldHVy
biB0cnVlOwpAQCAtOTYsMTAgKzk2LDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp3aWRnZXREaWRI
YW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIFdpCiB9CiAK
ICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50
SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAorCitSZWY8RGF0YVRy
YW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QK
IHsKICAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwogfQor
CiAjZW5kaWYKIAogYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVByZXNzRXZlbnRUb1N1YmZy
YW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwgRnJhbWUqIHN1YmZyYW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCmluZGV4IDUyNGZiNWFl
YTViM2Q1MjM2Yjk0MWQ3YWQyNTg4YjQ4OWNiZGE3YTAuLjI5YmFkZWY1OTU1ODRhM2ZjZTUzY2Ey
ZjgyNDFlNGY2ZWZkNzU0ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvaW9zL0V2
ZW50SGFuZGxlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVudEhhbmRs
ZXJJT1MubW0KQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6dG91Y2hFdmVu
dChXZWJFdmVudCAqZXZlbnQpCiB9CiAjZW5kaWYKIAotYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNU
b0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KiBldmVudCkgY29uc3QKK2Jvb2wgRXZlbnRI
YW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCYgZXZlbnQpIGNvbnN0
CiB7CiAgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpOwogICAgIGlmICghcGFnZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQppbmRleCBlNTkxOTc4YzAw
YzQwYzY5ZTc3M2E5NzYyMWQ3NjczM2JkNzUxYjAyLi5hZDdhNTllMzFlMDk1YjBiYzUyMDUwNzJm
ZGYxODM5ZjBmNGY2ODNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVu
dEhhbmRsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVy
TWFjLm1tCkBAIC02MSw2ICs2MSw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRl
ICJTaGFkb3dSb290LmgiCiAjaW5jbHVkZSAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgorI2lu
Y2x1ZGUgIldoZWVsRXZlbnREZWx0YUZpbHRlci5oIgogI2luY2x1ZGUgIldoZWVsRXZlbnRUZXN0
VHJpZ2dlci5oIgogI2luY2x1ZGUgPHd0Zi9CbG9ja09iakNFeGNlcHRpb25zLmg+CiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KQEAgLTcyMyw3ICs3MjQsNyBAQCBib29sIEV2ZW50SGFuZGxl
cjo6ZXZlbnRBY3RpdmF0ZWRWaWV3KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQpIGNv
bnN0CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogCi1QYXNzUmVmUHRyPERhdGFUcmFuc2Zl
cj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CitSZWY8
RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkg
Y29uc3QKIHsKICAgICAvLyBNdXN0IGJlIGRvbmUgYmVmb3JlIG9uZHJhZ3N0YXJ0IGFkZHMgdHlw
ZXMgYW5kIGRhdGEgdG8gdGhlIHBib2FyZCwKICAgICAvLyBhbHNvIGRvbmUgZm9yIHNlY3VyaXR5
LCBhcyBpdCBlcmFzZXMgZGF0YSBmcm9tIHRoZSBsYXN0IGRyYWcuCkBAIC03MzQsNyArNzM1LDcg
QEAgUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdE
YXRhVHJhbnNmZXIoKSBjb25zdAogCiAjZW5kaWYKIAotYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNU
b0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KiBldmVudCkgY29uc3QKK2Jvb2wgRXZlbnRI
YW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCYgZXZlbnQpIGNvbnN0
CiB7CiAgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpOwogICAgIGlmICghcGFnZSkKQEAg
LTk3MSwxMCArOTcyLDEwIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpwbGF0Zm9ybVByZXBhcmVGb3JX
aGVlbEV2ZW50cyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsCiAgICAgICAgICAgICAg
ICAgbV9mcmFtZS5tYWluRnJhbWUoKS5wdXNoTmV3TGF0Y2hpbmdTdGF0ZSgpOwogICAgICAgICAg
ICAgICAgIGxhdGNoaW5nU3RhdGUgPSBtX2ZyYW1lLm1haW5GcmFtZSgpLmxhdGNoaW5nU3RhdGUo
KTsKICAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlLT5zZXRTdGFydGVkR2VzdHVyZUF0U2Ny
b2xsTGltaXQoZmFsc2UpOwotICAgICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldFdoZWVs
RXZlbnRFbGVtZW50KHdoZWVsRXZlbnRUYXJnZXQpOworICAgICAgICAgICAgICAgIGxhdGNoaW5n
U3RhdGUtPnNldFdoZWVsRXZlbnRFbGVtZW50KHdoZWVsRXZlbnRUYXJnZXQuZ2V0KCkpOwogICAg
ICAgICAgICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldEZyYW1lKCZtX2ZyYW1lKTsKICAgICAgICAg
ICAgICAgICAvLyBGSVhNRTogV2hhdCBwcmV2ZW50cyB1cyBmcm9tIGRlbGV0aW5nIHRoaXMgc2Ny
b2xsYWJsZSBjb250YWluZXIgd2hpbGUgc3RpbGwgaG9sZGluZyBhIHBvaW50ZXIgdG8gaXQ/Ci0g
ICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihzY3Jv
bGxhYmxlQ29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRlLT5zZXRTY3Jv
bGxhYmxlQ29udGFpbmVyKHNjcm9sbGFibGVDb250YWluZXIuZ2V0KCkpOwogICAgICAgICAgICAg
ICAgIGxhdGNoaW5nU3RhdGUtPnNldFdpZGdldElzTGF0Y2hlZChyZXN1bHQuaXNPdmVyV2lkZ2V0
KCkpOwogICAgICAgICAgICAgICAgIGlzT3ZlcldpZGdldCA9IGxhdGNoaW5nU3RhdGUtPndpZGdl
dElzTGF0Y2hlZCgpOwogICAgICAgICAgICAgICAgIG1fZnJhbWUubWFpbkZyYW1lKCkud2hlZWxF
dmVudERlbHRhRmlsdGVyKCktPmJlZ2luRmlsdGVyaW5nRGVsdGFzKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmgKaW5kZXggNTVl
NGQ2NTk1ZWViNjA1M2Y2YTZhOTQ1MGI5ZGFlYjgxMjhjNTI3MC4uNjViMWNlZWM2YjExMjdiMDU5
NjMyMWVjNDg4MjQ1N2RmNDFiMDRmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
bWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMSw3ICszMSw2IEBACiAjaW5jbHVkZSAi
UGFnZU92ZXJsYXkuaCIKICNpbmNsdWRlICJSYW5nZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCi0j
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KIAogdHlwZWRlZiBzdHJ1Y3QgX19EREhpZ2hsaWdo
dCAqRERIaWdobGlnaHRSZWY7CiAKQEAgLTM5LDYgKzM4LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIAogY2xhc3MgTGF5b3V0UmVjdDsKIGNsYXNzIE1haW5GcmFtZTsKKwogc3RydWN0IEdh
cFJlY3RzOwogCiBjbGFzcyBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyIDogcHJpdmF0ZSBQYWdl
T3ZlcmxheTo6Q2xpZW50IHsKQEAgLTU0LDE0ICs1NCwxNCBAQCBwcml2YXRlOgogICAgIGNsYXNz
IEhpZ2hsaWdodCA6IHB1YmxpYyBSZWZDb3VudGVkPEhpZ2hsaWdodD4sIHByaXZhdGUgR3JhcGhp
Y3NMYXllckNsaWVudCB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEhpZ2hsaWdodCk7
CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlRm9yU2Vs
ZWN0aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImLCBSZXRhaW5QdHI8RERIaWdobGlnaHRS
ZWY+LCBQYXNzUmVmUHRyPFJhbmdlPik7Ci0gICAgICAgIHN0YXRpYyBSZWY8SGlnaGxpZ2h0PiBj
cmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFJldGFp
blB0cjxEREhpZ2hsaWdodFJlZj4sIFBhc3NSZWZQdHI8UmFuZ2U+KTsKKyAgICAgICAgc3RhdGlj
IFJlZjxIaWdobGlnaHQ+IGNyZWF0ZUZvclNlbGVjdGlvbihTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyJiwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUmVmPFJhbmdlPiYmKTsKKyAgICAgICAg
c3RhdGljIFJlZjxIaWdobGlnaHQ+IGNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcihTZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyJiwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUmVmPFJhbmdlPiYm
KTsKICAgICAgICAgfkhpZ2hsaWdodCgpOwogCiAgICAgICAgIHZvaWQgaW52YWxpZGF0ZSgpOwog
CiAgICAgICAgIERESGlnaGxpZ2h0UmVmIGRkSGlnaGxpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9k
ZEhpZ2hsaWdodC5nZXQoKTsgfQotICAgICAgICBSYW5nZSogcmFuZ2UoKSBjb25zdCB7IHJldHVy
biBtX3JhbmdlLmdldCgpOyB9CisgICAgICAgIFJhbmdlJiByYW5nZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmFuZ2UuZ2V0KCk7IH0KICAgICAgICAgR3JhcGhpY3NMYXllciogbGF5ZXIoKSBjb25zdCB7
IHJldHVybiBtX2dyYXBoaWNzTGF5ZXIuZ2V0KCk7IH0KIAogICAgICAgICBlbnVtIHsKQEAgLTc3
LDcgKzc3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBzZXREREhpZ2hsaWdodChEREhpZ2hs
aWdodFJlZik7CiAKICAgICBwcml2YXRlOgotICAgICAgICBleHBsaWNpdCBIaWdobGlnaHQoU2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlciYsIFR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4s
IFBhc3NSZWZQdHI8UmFuZ2U+KTsKKyAgICAgICAgSGlnaGxpZ2h0KFNlcnZpY2VzT3ZlcmxheUNv
bnRyb2xsZXImLCBUeXBlLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+LCBSZWY8UmFuZ2U+JiYp
OwogCiAgICAgICAgIC8vIEdyYXBoaWNzTGF5ZXJDbGllbnQKICAgICAgICAgdm9pZCBub3RpZnlG
bHVzaFJlcXVpcmVkKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKQEAgLTg3LDcgKzg3
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBkaWRGaW5pc2hGYWRlT3V0QW5pbWF0aW9uKCk7
CiAKICAgICAgICAgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBtX2RkSGlnaGxpZ2h0OwotICAg
ICAgICBSZWZQdHI8UmFuZ2U+IG1fcmFuZ2U7CisgICAgICAgIFJlZjxSYW5nZT4gbV9yYW5nZTsK
ICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPEdyYXBoaWNzTGF5ZXI+IG1fZ3JhcGhpY3NMYXllcjsK
ICAgICAgICAgVHlwZSBtX3R5cGU7CiAgICAgICAgIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIq
IG1fY29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyLm1tCmluZGV4IDlhODE1YjVhZTU1OTY0OTliZGY2MTZlZDQyMTFi
OWE1MjM4MTVlNjIuLjRiMDNlMjJhZTQ2YmU4OWFlMjMxMDJmYjQ5ZmY0OTIxZDQwNDY4YmUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJv
bGxlci5tbQpAQCAtNTUsMjMgKzU1LDIyIEBAIGNvbnN0IGZsb2F0IGhpZ2hsaWdodEZhZGVBbmlt
YXRpb25EdXJhdGlvbiA9IDAuMzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8U2Vydmlj
ZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0PiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
OjpIaWdobGlnaHQ6OmNyZWF0ZUZvclNlbGVjdGlvbihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
JiBjb250cm9sbGVyLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBQYXNz
UmVmUHRyPFJhbmdlPiByYW5nZSkKK1JlZjxTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdo
bGlnaHQ+IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6Y3JlYXRlRm9yU2Vs
ZWN0aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIsIFJldGFpblB0cjxE
REhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFJlZjxSYW5nZT4mJiByYW5nZSkKIHsKLSAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHQoY29udHJvbGxlciwgSGlnaGxpZ2h0OjpTZWxl
Y3Rpb25UeXBlLCBkZEhpZ2hsaWdodCwgcmFuZ2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBIaWdobGlnaHQoY29udHJvbGxlciwgSGlnaGxpZ2h0OjpTZWxlY3Rpb25UeXBlLCBkZEhpZ2hs
aWdodCwgV1RGTW92ZShyYW5nZSkpKTsKIH0KIAotUmVmPFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXI6OkhpZ2hsaWdodD4gU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVh
dGVGb3JUZWxlcGhvbmVOdW1iZXIoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYgY29udHJvbGxl
ciwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCwgUGFzc1JlZlB0cjxSYW5n
ZT4gcmFuZ2UpCitSZWY8U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0PiBTZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OmNyZWF0ZUZvclRlbGVwaG9uZU51bWJl
cihTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiBjb250cm9sbGVyLCBSZXRhaW5QdHI8RERIaWdo
bGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBSZWY8UmFuZ2U+JiYgcmFuZ2UpCiB7Ci0gICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgSGlnaGxpZ2h0KGNvbnRyb2xsZXIsIEhpZ2hsaWdodDo6VGVsZXBob25l
TnVtYmVyVHlwZSwgZGRIaWdobGlnaHQsIHJhbmdlKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgSGlnaGxpZ2h0KGNvbnRyb2xsZXIsIEhpZ2hsaWdodDo6VGVsZXBob25lTnVtYmVyVHlwZSwg
ZGRIaWdobGlnaHQsIFdURk1vdmUocmFuZ2UpKSk7CiB9CiAKLVNlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXI6OkhpZ2hsaWdodDo6SGlnaGxpZ2h0KFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImIGNv
bnRyb2xsZXIsIFR5cGUgdHlwZSwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdo
dCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpSYW5nZT4gcmFuZ2UpCi0gICAgOiBtX3JhbmdlKHJhbmdl
KQorU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpIaWdobGlnaHQoU2Vydmlj
ZXNPdmVybGF5Q29udHJvbGxlciYgY29udHJvbGxlciwgVHlwZSB0eXBlLCBSZXRhaW5QdHI8RERI
aWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBSZWY8V2ViQ29yZTo6UmFuZ2U+JiYgcmFuZ2UpCisg
ICAgOiBtX3JhbmdlKFdURk1vdmUocmFuZ2UpKQogICAgICwgbV90eXBlKHR5cGUpCiAgICAgLCBt
X2NvbnRyb2xsZXIoJmNvbnRyb2xsZXIpCiB7CiAgICAgQVNTRVJUKGRkSGlnaGxpZ2h0KTsKLSAg
ICBBU1NFUlQobV9yYW5nZSk7CiAKICAgICBQYWdlKiBwYWdlID0gY29udHJvbGxlci5tYWluRnJh
bWUoKS5wYWdlKCk7CiAgICAgbV9ncmFwaGljc0xheWVyID0gR3JhcGhpY3NMYXllcjo6Y3JlYXRl
KHBhZ2UgPyBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5ncmFwaGljc0xheWVyRmFjdG9yeSgpIDog
bnVsbHB0ciwgKnRoaXMpOwpAQCAtNDA5LDcgKzQwOCw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5
Q29udHJvbGxlcjo6YnVpbGRQb3RlbnRpYWxIaWdobGlnaHRzSWZOZWVkZWQoKQogCiAgICAgaWYg
KG1fcG90ZW50aWFsSGlnaGxpZ2h0cy5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKG1fc2Vydmlj
ZXNPdmVybGF5KQotICAgICAgICAgICAgbV9tYWluRnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVy
KCkudW5pbnN0YWxsUGFnZU92ZXJsYXkobV9zZXJ2aWNlc092ZXJsYXksIFBhZ2VPdmVybGF5OjpG
YWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAgICAgIG1fbWFpbkZyYW1lLnBhZ2VPdmVybGF5
Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX3NlcnZpY2VzT3ZlcmxheSwgUGFn
ZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC01MjcsNyArNTI2LDcgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWls
ZFBob25lTnVtYmVySGlnaGxpZ2h0cygpCiAgICAgICAgIENHUmVjdCBjZ1JlY3QgPSByZWN0Owog
ICAgICAgICBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0ID0gYWRvcHRDRihE
REhpZ2hsaWdodENyZWF0ZVdpdGhSZWN0c0luVmlzaWJsZVJlY3RXaXRoU3R5bGVBbmREaXJlY3Rp
b24obnVsbHB0ciwgJmNnUmVjdCwgMSwgbWFpbkZyYW1lVmlldy52aXNpYmxlQ29udGVudFJlY3Qo
KSwgRERIaWdobGlnaHRTdHlsZUJ1YmJsZVN0YW5kYXJkIHwgRERIaWdobGlnaHRTdHlsZVN0YW5k
YXJkSWNvbkFycm93LCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5PLCBZRVMpKTsK
IAotICAgICAgICBuZXdQb3RlbnRpYWxIaWdobGlnaHRzLmFkZChIaWdobGlnaHQ6OmNyZWF0ZUZv
clRlbGVwaG9uZU51bWJlcigqdGhpcywgZGRIaWdobGlnaHQsIHJhbmdlKSk7CisgICAgICAgIG5l
d1BvdGVudGlhbEhpZ2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVt
YmVyKCp0aGlzLCBkZEhpZ2hsaWdodCwgcmFuZ2UucmVsZWFzZU5vbk51bGwoKSkpOwogICAgIH0K
IAogICAgIHJlcGxhY2VIaWdobGlnaHRzT2ZUeXBlUHJlc2VydmluZ0VxdWl2YWxlbnRIaWdobGln
aHRzKG5ld1BvdGVudGlhbEhpZ2hsaWdodHMsIEhpZ2hsaWdodDo6VGVsZXBob25lTnVtYmVyVHlw
ZSk7CkBAIC01NzAsNyArNTY5LDcgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpi
dWlsZFNlbGVjdGlvbkhpZ2hsaWdodCgpCiAgICAgICAgICAgICBDR1JlY3QgdmlzaWJsZVJlY3Qg
PSBtYWluRnJhbWVWaWV3LT52aXNpYmxlQ29udGVudFJlY3QoKTsKICAgICAgICAgICAgIFJldGFp
blB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQgPSBhZG9wdENGKERESGlnaGxpZ2h0Q3Jl
YXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZUFuZERpcmVjdGlvbihudWxscHRyLCBj
Z1JlY3RzLmJlZ2luKCksIGNnUmVjdHMuc2l6ZSgpLCB2aXNpYmxlUmVjdCwgRERIaWdobGlnaHRT
dHlsZUJ1YmJsZU5vbmUgfCBEREhpZ2hsaWdodFN0eWxlU3RhbmRhcmRJY29uQXJyb3cgfCBEREhp
Z2hsaWdodFN0eWxlQnV0dG9uU2hvd0Fsd2F5cywgWUVTLCBOU1dyaXRpbmdEaXJlY3Rpb25OYXR1
cmFsLCBOTywgWUVTKSk7CiAgICAgICAgICAgICAKLSAgICAgICAgICAgIG5ld1BvdGVudGlhbEhp
Z2hsaWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yU2VsZWN0aW9uKCp0aGlzLCBkZEhpZ2hs
aWdodCwgc2VsZWN0aW9uUmFuZ2UpKTsKKyAgICAgICAgICAgIG5ld1BvdGVudGlhbEhpZ2hsaWdo
dHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yU2VsZWN0aW9uKCp0aGlzLCBkZEhpZ2hsaWdodCwg
c2VsZWN0aW9uUmFuZ2UucmVsZWFzZU5vbk51bGwoKSkpOwogICAgICAgICB9CiAgICAgfQogCkBA
IC02MzgsMTQgKzYzNyw5IEBAIGJvb2wgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6aGlnaGxp
Z2h0c0FyZUVxdWl2YWxlbnQoY29uc3QgSGlnaGxpZ2h0KiBhLCBjb25zCiB7CiAgICAgaWYgKGEg
PT0gYikKICAgICAgICAgcmV0dXJuIHRydWU7Ci0KICAgICBpZiAoIWEgfHwgIWIpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGlmIChhLT50eXBlKCkgPT0gYi0+dHlwZSgpICYmIGFyZVJh
bmdlc0VxdWFsKGEtPnJhbmdlKCksIGItPnJhbmdlKCkpKQotICAgICAgICByZXR1cm4gdHJ1ZTsK
LQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gYS0+dHlwZSgpID09IGItPnR5cGUoKSAm
JiBhcmVSYW5nZXNFcXVhbCgmYS0+cmFuZ2UoKSwgJmItPnJhbmdlKCkpOwogfQogCiBTZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQqIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6
OmZpbmRUZWxlcGhvbmVOdW1iZXJIaWdobGlnaHRDb250YWluaW5nU2VsZWN0aW9uSGlnaGxpZ2h0
KEhpZ2hsaWdodCYgc2VsZWN0aW9uSGlnaGxpZ2h0KQpAQCAtNjY5LDcgKzY2Myw3IEBAIFNlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodCogU2VydmljZXNPdmVybGF5Q29udHJvbGxl
cjo6ZmluZFRlbGVwaG9uZU51CiAgICAgICAgIGlmIChoaWdobGlnaHQtPnR5cGUoKSAhPSBIaWdo
bGlnaHQ6OlRlbGVwaG9uZU51bWJlclR5cGUpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAg
ICAgICBpZiAoaGlnaGxpZ2h0LT5yYW5nZSgpLT5jb250YWlucygqYWN0aXZlU2VsZWN0aW9uUmFu
Z2UpKQorICAgICAgICBpZiAoaGlnaGxpZ2h0LT5yYW5nZSgpLmNvbnRhaW5zKCphY3RpdmVTZWxl
Y3Rpb25SYW5nZSkpCiAgICAgICAgICAgICByZXR1cm4gaGlnaGxpZ2h0LmdldCgpOwogICAgIH0K
IApAQCAtODMyLDcgKzgyNiw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6aGFu
ZGxlQ2xpY2soY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQsIEhpZ2hsaWdoCiAKICAgICAgICAg
cGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKHBhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLnNlbGVjdGlvbigpLCBzZWxl
Y3RlZFRlbGVwaG9uZU51bWJlcnMsIHdpbmRvd1BvaW50KTsKICAgICB9IGVsc2UgaWYgKGhpZ2hs
aWdodC50eXBlKCkgPT0gSGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlKQotICAgICAgICBw
YWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYW5kbGVUZWxlcGhvbmVOdW1iZXJDbGljayhoaWdobGln
aHQucmFuZ2UoKS0+dGV4dCgpLCB3aW5kb3dQb2ludCk7CisgICAgICAgIHBhZ2UtPmNocm9tZSgp
LmNsaWVudCgpLmhhbmRsZVRlbGVwaG9uZU51bWJlckNsaWNrKGhpZ2hsaWdodC5yYW5nZSgpLnRl
eHQoKSwgd2luZG93UG9pbnQpOwogfQogCiB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6
OmRpZENyZWF0ZUhpZ2hsaWdodChIaWdobGlnaHQqIGhpZ2hsaWdodCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JXaW5kb3cubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCmluZGV4IGU0ZTIwZDIyNzY4Yzg4
MmU5MDBiMTJiNDFmZTAyZWNkZmI0OGY2MjguLmU1OTI5YmE2M2RlNTlmNDk4M2JkOGNmOWMzMDA2
NGU2NzE3NzNjYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRp
Y2F0b3JXaW5kb3cubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRv
cldpbmRvdy5tbQpAQCAtNjQsNyArNjQsNyBAQCBAaW50ZXJmYWNlIFdlYlRleHRJbmRpY2F0b3JW
aWV3IDogTlNWaWV3IHsKICAgICBCT09MIF9mYWRpbmdPdXQ7CiB9CiAKLS0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooUGFzc1JlZlB0cjxU
ZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yIG1hcmdpbjooTlNTaXplKW1hcmdpbiBvZmZzZXQ6
KE5TUG9pbnQpb2Zmc2V0OworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClm
cmFtZSB0ZXh0SW5kaWNhdG9yOihUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIG1hcmdpbjoo
TlNTaXplKW1hcmdpbiBvZmZzZXQ6KE5TUG9pbnQpb2Zmc2V0OwogCiAtICh2b2lkKXByZXNlbnQ7
CiAtICh2b2lkKWhpZGVXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxl
dGlvbkhhbmRsZXI7CkBAIC0xNDcsMTIgKzE0NywxMiBAQCBzdGF0aWMgYm9vbCBpbmRpY2F0b3JX
YW50c01hbnVhbEFuaW1hdGlvbihjb25zdCBUZXh0SW5kaWNhdG9yJiBpbmRpY2F0b3IpCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooTlNSZWN0
KWZyYW1lIHRleHRJbmRpY2F0b3I6KFBhc3NSZWZQdHI8VGV4dEluZGljYXRvcj4pdGV4dEluZGlj
YXRvciBtYXJnaW46KE5TU2l6ZSltYXJnaW4gb2Zmc2V0OihOU1BvaW50KW9mZnNldAorLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSB0ZXh0SW5kaWNhdG9yOihUZXh0
SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIG1hcmdpbjooTlNTaXplKW1hcmdpbiBvZmZzZXQ6KE5T
UG9pbnQpb2Zmc2V0CiB7CiAgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0V2l0aEZyYW1lOmZy
YW1lXSkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBfdGV4dEluZGljYXRvciA9IHRleHRJ
bmRpY2F0b3I7CisgICAgX3RleHRJbmRpY2F0b3IgPSAmdGV4dEluZGljYXRvcjsKICAgICBfbWFy
Z2luID0gbWFyZ2luOwogCiAgICAgc2VsZi53YW50c0xheWVyID0gWUVTOwpAQCAtNDY1LDcgKzQ2
NSw4IEBAIHZvaWQgVGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4
dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgQ0dSCiAgICAgW21fdGV4dEluZGljYXRvcldpbmRv
dyBzZXRPcGFxdWU6Tk9dOwogICAgIFttX3RleHRJbmRpY2F0b3JXaW5kb3cgc2V0SWdub3Jlc01v
dXNlRXZlbnRzOllFU107CiAKLSAgICBtX3RleHRJbmRpY2F0b3JWaWV3ID0gYWRvcHROUyhbW1dl
YlRleHRJbmRpY2F0b3JWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
W21fdGV4dEluZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS53aWR0aCwgW21fdGV4dEluZGljYXRv
cldpbmRvdyBmcmFtZV0uc2l6ZS5oZWlnaHQpIHRleHRJbmRpY2F0b3I6bV90ZXh0SW5kaWNhdG9y
IG1hcmdpbjpOU01ha2VTaXplKGhvcml6b250YWxNYXJnaW4sIHZlcnRpY2FsTWFyZ2luKSBvZmZz
ZXQ6ZnJhY3Rpb25hbFRleHRPZmZzZXRdKTsKKyAgICBtX3RleHRJbmRpY2F0b3JWaWV3ID0gYWRv
cHROUyhbW1dlYlRleHRJbmRpY2F0b3JWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgW21fdGV4dEluZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS53aWR0aCwgW21fdGV4
dEluZGljYXRvcldpbmRvdyBmcmFtZV0uc2l6ZS5oZWlnaHQpCisgICAgICAgIHRleHRJbmRpY2F0
b3I6Km1fdGV4dEluZGljYXRvciBtYXJnaW46TlNNYWtlU2l6ZShob3Jpem9udGFsTWFyZ2luLCB2
ZXJ0aWNhbE1hcmdpbikgb2Zmc2V0OmZyYWN0aW9uYWxUZXh0T2Zmc2V0XSk7CiAgICAgW21fdGV4
dEluZGljYXRvcldpbmRvdyBzZXRDb250ZW50VmlldzptX3RleHRJbmRpY2F0b3JWaWV3LmdldCgp
XTsKIAogICAgIFtbbV90YXJnZXRWaWV3IHdpbmRvd10gYWRkQ2hpbGRXaW5kb3c6bV90ZXh0SW5k
aWNhdG9yV2luZG93LmdldCgpIG9yZGVyZWQ6TlNXaW5kb3dBYm92ZV07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmgKaW5kZXggYTQzNDE3ZGNlMWM0MDEzMDg0NjkyMzgzYTEyYThjZjFhYjlkMjBiMy4uMDExYWUw
ZjIzM2MwOTI2ZmVmZTBmMGQ5MDdjNWYxYTgwZjI3Mjc0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApA
QCAtMzAsNyArMzAsNiBAQAogI2luY2x1ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5j
bHVkZSAiU2Nyb2xsaW5nVHJlZS5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCi0jaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKQEAgLTY5LDExICs2OCwxMSBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgV0VCQ09S
RV9FWFBPUlQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlKik7CiAKLSAgICB2b2lkIHNl
dFNjcm9sbGluZ1RyZWUoUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlPiBzY3JvbGxpbmdUcmVlKSB7
IG1fc2Nyb2xsaW5nVHJlZSA9IHNjcm9sbGluZ1RyZWU7IH0KKyAgICB2b2lkIHNldFNjcm9sbGlu
Z1RyZWUoUmVmPFNjcm9sbGluZ1RyZWU+JiYgc2Nyb2xsaW5nVHJlZSkgeyBtX3Njcm9sbGluZ1Ry
ZWUgPSBXVEZNb3ZlKHNjcm9sbGluZ1RyZWUpOyB9CiAKICAgICBTY3JvbGxpbmdTdGF0ZVRyZWUq
IHNjcm9sbGluZ1N0YXRlVHJlZSgpIHsgcmV0dXJuIG1fc2Nyb2xsaW5nU3RhdGVUcmVlLmdldCgp
OyB9CiAKLSAgICBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWU+IHJlbGVhc2VTY3JvbGxpbmdUcmVl
KCkgeyByZXR1cm4gV1RGTW92ZShtX3Njcm9sbGluZ1RyZWUpOyB9CisgICAgUmVmUHRyPFNjcm9s
bGluZ1RyZWU+IHJlbGVhc2VTY3JvbGxpbmdUcmVlKCkgeyByZXR1cm4gV1RGTW92ZShtX3Njcm9s
bGluZ1RyZWUpOyB9CiAKICAgICB2b2lkIHVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Nj
cm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmLCBzdGQ6Om9wdGlvbmFsPEZs
b2F0UG9pbnQ+IGxheW91dFZpZXdwb3J0T3JpZ2luLCBib29sIHByb2dyYW1tYXRpY1Njcm9sbCwg
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAKaW5kZXggZTM5ZDk5ZWZi
YTMwNjhjY2IwNTViNDBkMWM3MjQzNzdkNThlMzViZS4uMDFlNjUyOWIwMmM4YzFkNzBhZTc3MzI4
M2ViN2Y3MzAwNTc0Zjk4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5jcHAKQEAgLTMxLDkgKzMxLDYgQEAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0ZSgp
Ci0gICAgOiBtX2ZyYW1lKG51bGxwdHIpCi0gICAgLCBtX3dpZGdldElzTGF0Y2hlZChmYWxzZSkK
LSAgICAsIG1fc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0KGZhbHNlKQogewogfQogICAgIApA
QCAtNTAsNyArNDcsNyBAQCB2b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OmNsZWFyKCkKICAgICBt
X3ByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQgPSBudWxscHRyOwogfQogCi12b2lkIFNjcm9s
bExhdGNoaW5nU3RhdGU6OnNldFdoZWVsRXZlbnRFbGVtZW50KFBhc3NSZWZQdHI8RWxlbWVudD4g
ZWxlbWVudCkKK3ZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0V2hlZWxFdmVudEVsZW1lbnQo
RWxlbWVudCogZWxlbWVudCkKIHsKICAgICBtX3doZWVsRXZlbnRFbGVtZW50ID0gZWxlbWVudDsK
IH0KQEAgLTYwLDE0ICs1NywxNCBAQCB2b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFdpZGdl
dElzTGF0Y2hlZChib29sIGlzT3ZlcldpZGdldCkKICAgICBtX3dpZGdldElzTGF0Y2hlZCA9IGlz
T3ZlcldpZGdldDsKIH0KIAotdm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRlOjpzZXRQcmV2aW91c1do
ZWVsU2Nyb2xsZWRFbGVtZW50KFJlZlB0cjxFbGVtZW50PiYmIGVsZW1lbnQpCit2b2lkIFNjcm9s
bExhdGNoaW5nU3RhdGU6OnNldFByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQoRWxlbWVudCog
ZWxlbWVudCkKIHsKICAgICBtX3ByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQgPSBlbGVtZW50
OwogfQogCi12b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFNjcm9sbGFibGVDb250YWluZXIo
UGFzc1JlZlB0cjxDb250YWluZXJOb2RlPiBub2RlKQordm9pZCBTY3JvbGxMYXRjaGluZ1N0YXRl
OjpzZXRTY3JvbGxhYmxlQ29udGFpbmVyKENvbnRhaW5lck5vZGUqIGNvbnRhaW5lcikKIHsKLSAg
ICBtX3Njcm9sbGFibGVDb250YWluZXIgPSBub2RlOworICAgIG1fc2Nyb2xsYWJsZUNvbnRhaW5l
ciA9IGNvbnRhaW5lcjsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oCmluZGV4IDRkYzBkZDMyMjkzYjM5MGVjOWI2NzFj
ZmUzYjE5ODU3Yzk3M2M0NzguLjExZGNiZDBkYjE1NWUwNDUwMDA1NjIxYTA1MTc0NzZkMmI5Mjkz
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNo
aW5nU3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRj
aGluZ1N0YXRlLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXIoKTsK
IAogICAgIEVsZW1lbnQqIHdoZWVsRXZlbnRFbGVtZW50KCkgeyByZXR1cm4gbV93aGVlbEV2ZW50
RWxlbWVudC5nZXQoKTsgfQotICAgIHZvaWQgc2V0V2hlZWxFdmVudEVsZW1lbnQoUGFzc1JlZlB0
cjxFbGVtZW50Pik7CisgICAgdm9pZCBzZXRXaGVlbEV2ZW50RWxlbWVudChFbGVtZW50Kik7CiAg
ICAgRnJhbWUqIGZyYW1lKCkgeyByZXR1cm4gbV9mcmFtZTsgfQogICAgIHZvaWQgc2V0RnJhbWUo
RnJhbWUqIGZyYW1lKSB7IG1fZnJhbWUgPSBmcmFtZTsgfQogCkBAIC00OSwxMCArNDksMTAgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0V2lkZ2V0SXNMYXRjaGVkKGJvb2wgaXNPdmVyV2lkZ2V0KTsK
IAogICAgIEVsZW1lbnQqIHByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQoKSB7IHJldHVybiBt
X3ByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQuZ2V0KCk7IH0KLSAgICB2b2lkIHNldFByZXZp
b3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQoUmVmUHRyPEVsZW1lbnQ+JiYpOworICAgIHZvaWQgc2V0
UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudChFbGVtZW50Kik7CiAgICAgCiAgICAgQ29udGFp
bmVyTm9kZSogc2Nyb2xsYWJsZUNvbnRhaW5lcigpIHsgcmV0dXJuIG1fc2Nyb2xsYWJsZUNvbnRh
aW5lci5nZXQoKTsgfQotICAgIHZvaWQgc2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihQYXNzUmVmUHRy
PENvbnRhaW5lck5vZGU+KTsKKyAgICB2b2lkIHNldFNjcm9sbGFibGVDb250YWluZXIoQ29udGFp
bmVyTm9kZSopOwogICAgIGJvb2wgc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0KCkgY29uc3Qg
eyByZXR1cm4gbV9zdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQ7IH0KICAgICB2b2lkIHNldFN0
YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdChib29sIHN0YXJ0ZWRBdExpbWl0KSB7IG1fc3RhcnRl
ZEdlc3R1cmVBdFNjcm9sbExpbWl0ID0gc3RhcnRlZEF0TGltaXQ7IH0KIApAQCAtNjEsMTAgKzYx
LDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPEVsZW1lbnQ+IG1fcHJldmlvdXNXaGVlbFNjcm9s
bGVkRWxlbWVudDsKICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gbV9zY3JvbGxhYmxlQ29udGFp
bmVyOwogCi0gICAgRnJhbWUqIG1fZnJhbWU7Ci0gICAgCi0gICAgYm9vbCBtX3dpZGdldElzTGF0
Y2hlZDsKLSAgICBib29sIG1fc3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0OworICAgIEZyYW1l
KiBtX2ZyYW1lIHsgbnVsbHB0ciB9OworCisgICAgYm9vbCBtX3dpZGdldElzTGF0Y2hlZCB7IGZh
bHNlIH07CisgICAgYm9vbCBtX3N0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdCB7IGZhbHNlIH07
CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5jcHAKaW5kZXggYzg0NTliMDVh
MGQxNjdiNWFjZWFkMTQwOTVlOTNmNmVkNzdmMjRkMC4uNjFkYTU4YTlkZWVjMGY2OGQ1ZGE2MjBl
MmQ2ZmQ4MDMxNWE3NGMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgU2Nyb2xs
aW5nU3RhdGVOb2RlOjpzZXRQcm9wZXJ0eUNoYW5nZWQodW5zaWduZWQgcHJvcGVydHlCaXQpCiAg
ICAgbV9zY3JvbGxpbmdTdGF0ZVRyZWUuc2V0SGFzQ2hhbmdlZFByb3BlcnRpZXMoKTsKIH0KIAot
UGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVB
bmRSZXNldChTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKK1JlZjxTY3JvbGxpbmdT
dGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVBbmRSZXNldChTY3JvbGxpbmdTdGF0
ZVRyZWUmIGFkb3B0aXZlVHJlZSkKIHsKICAgICBhdXRvIGNsb25lID0gdGhpcy0+Y2xvbmUoYWRv
cHRpdmVUcmVlKTsKIApAQCAtODAsNyArODAsOCBAQCBQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRl
Tm9kZT4gU2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVAog
ICAgIHJlc2V0Q2hhbmdlZFByb3BlcnRpZXMoKTsKIAogICAgIGNsb25lQW5kUmVzZXRDaGlsZHJl
bihjbG9uZS5nZXQoKSwgYWRvcHRpdmVUcmVlKTsKLSAgICByZXR1cm4gV1RGTW92ZShjbG9uZSk7
CisKKyAgICByZXR1cm4gY2xvbmU7CiB9CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9u
ZUFuZFJlc2V0Q2hpbGRyZW4oU2Nyb2xsaW5nU3RhdGVOb2RlJiBjbG9uZSwgU2Nyb2xsaW5nU3Rh
dGVUcmVlJiBhZG9wdGl2ZVRyZWUpCkBAIC05MiwxNCArOTMsMTMgQEAgdm9pZCBTY3JvbGxpbmdT
dGF0ZU5vZGU6OmNsb25lQW5kUmVzZXRDaGlsZHJlbihTY3JvbGxpbmdTdGF0ZU5vZGUmIGNsb25l
LCBTY3JvbGwKICAgICAgICAgY2xvbmUuYXBwZW5kQ2hpbGQoY2hpbGQtPmNsb25lQW5kUmVzZXQo
YWRvcHRpdmVUcmVlKSk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjphcHBlbmRDaGls
ZChQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2hpbGROb2RlKQordm9pZCBTY3JvbGxp
bmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxkKFJlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+JiYgY2hpbGRO
b2RlKQogewogICAgIGNoaWxkTm9kZS0+c2V0UGFyZW50KHRoaXMpOwogCiAgICAgaWYgKCFtX2No
aWxkcmVuKQogICAgICAgICBtX2NoaWxkcmVuID0gc3RkOjptYWtlX3VuaXF1ZTxWZWN0b3I8UmVm
UHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4+PigpOwotCi0gICAgbV9jaGlsZHJlbi0+YXBwZW5kKGNo
aWxkTm9kZSk7CisgICAgbV9jaGlsZHJlbi0+YXBwZW5kKFdURk1vdmUoY2hpbGROb2RlKSk7CiB9
CiAKIHZvaWQgU2Nyb2xsaW5nU3RhdGVOb2RlOjpzZXRMYXllcihjb25zdCBMYXllclJlcHJlc2Vu
dGF0aW9uJiBsYXllclJlcHJlc2VudGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuaAppbmRleCBiZmFkMWM0NWUwZDcxZjliYTdj
MmJjMDgyM2YxMWJlNDY4ZDY5ZWMwLi4wODdkNjE4MjlhZGU1NDYxMDYxMjA1NzViZDQxYTE2ODBl
YmMxZDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZU5vZGUuaApAQCAtMjA2LDcgKzIwNiw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlKCkgY29uc3QgeyByZXR1cm4gbV9ub2RlVHlwZSA9PSBPdmVyZmxv
d1Njcm9sbGluZ05vZGU7IH0KIAogICAgIHZpcnR1YWwgUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4g
Y2xvbmUoU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9wdGl2ZVRyZWUpID0gMDsKLSAgICBQYXNzUmVm
UHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xvbmVBbmRSZXNldChTY3JvbGxpbmdTdGF0ZVRyZWUm
IGFkb3B0aXZlVHJlZSk7CisgICAgUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4gY2xvbmVBbmRSZXNl
dChTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSk7CiAgICAgdm9pZCBjbG9uZUFuZFJl
c2V0Q2hpbGRyZW4oU2Nyb2xsaW5nU3RhdGVOb2RlJiwgU2Nyb2xsaW5nU3RhdGVUcmVlJiBhZG9w
dGl2ZVRyZWUpOwogCiAgICAgZW51bSB7CkBAIC0yMzgsNyArMjM4LDcgQEAgcHVibGljOgogCiAg
ICAgVmVjdG9yPFJlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+PiogY2hpbGRyZW4oKSBjb25zdCB7
IHJldHVybiBtX2NoaWxkcmVuLmdldCgpOyB9CiAKLSAgICB2b2lkIGFwcGVuZENoaWxkKFBhc3NS
ZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPik7CisgICAgdm9pZCBhcHBlbmRDaGlsZChSZWY8U2Ny
b2xsaW5nU3RhdGVOb2RlPiYmKTsKIAogICAgIFN0cmluZyBzY3JvbGxpbmdTdGF0ZVRyZWVBc1Rl
eHQoKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nU3RhdGVUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1N0YXRlVHJlZS5jcHAKaW5kZXggOThiNmNhZGNiNGMzNTFjZDJkNzY2NjQ2NTczZTM4
NWE3MzJmYzE0Mi4uMGJiYzFiNzMzODI3MTliNjI1OGQxMWQwNDk0MzNlMzI5ODdhM2UwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRy
ZWUuY3BwCkBAIC02Nyw3ICs2Nyw3IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVUcmVlOjpzZXRIYXND
aGFuZ2VkUHJvcGVydGllcyhib29sIGNoYW5nZWRQcm9wZXJ0aWVzKQogI2VuZGlmCiB9CiAKLVBh
c3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZVRyZWU6OmNyZWF0ZU5v
ZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCitS
ZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZVRyZWU6OmNyZWF0ZU5vZGUoU2Ny
b2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7CiAgICAg
c3dpdGNoIChub2RlVHlwZSkgewogICAgIGNhc2UgRml4ZWROb2RlOgpAQCAtODAsNyArODAsNyBA
QCBQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVUcmVlOjpjcmVh
dGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlCiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdTdGF0ZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIH0KICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICByZXR1cm4gU2Ny
b2xsaW5nU3RhdGVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKIH0KIAogYm9vbCBT
Y3JvbGxpbmdTdGF0ZVRyZWU6Om5vZGVUeXBlQW5kUGFyZW50TWF0Y2goU2Nyb2xsaW5nU3RhdGVO
b2RlJiBub2RlLCBTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIHBh
cmVudElEKSBjb25zdApAQCAtMTI5LDEzICsxMjksMTMgQEAgU2Nyb2xsaW5nTm9kZUlEIFNjcm9s
bGluZ1N0YXRlVHJlZTo6YXR0YWNoTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Ny
b2wKICAgICAgICAgaWYgKG5vZGVUeXBlID09IEZyYW1lU2Nyb2xsaW5nTm9kZSAmJiBwYXJlbnRJ
RCkgewogICAgICAgICAgICAgaWYgKGF1dG8gb3JwaGFuZWROb2RlID0gbV9vcnBoYW5lZFN1YmZy
YW1lTm9kZXMudGFrZShuZXdOb2RlSUQpKSB7CiAgICAgICAgICAgICAgICAgbmV3Tm9kZSA9IG9y
cGhhbmVkTm9kZS5nZXQoKTsKLSAgICAgICAgICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKFdU
Rk1vdmUob3JwaGFuZWROb2RlKSk7CisgICAgICAgICAgICAgICAgcGFyZW50LT5hcHBlbmRDaGls
ZChvcnBoYW5lZE5vZGUucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KIAogICAgICAgICBpZiAoIW5ld05vZGUpIHsKICAgICAgICAgICAgIGF1dG8gc3RhdGVOb2Rl
ID0gY3JlYXRlTm9kZShub2RlVHlwZSwgbmV3Tm9kZUlEKTsKLSAgICAgICAgICAgIG5ld05vZGUg
PSBzdGF0ZU5vZGUuZ2V0KCk7CisgICAgICAgICAgICBuZXdOb2RlID0gc3RhdGVOb2RlLnB0cigp
OwogICAgICAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZChXVEZNb3ZlKHN0YXRlTm9kZSkpOwog
ICAgICAgICB9CiAgICAgfQpAQCAtMTgyLDcgKzE4Miw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTY3Jv
bGxpbmdTdGF0ZVRyZWU+IFNjcm9sbGluZ1N0YXRlVHJlZTo6Y29tbWl0KExheWVyUmVwcmVzZW50
YXRpCiAgICAgdHJlZVN0YXRlQ2xvbmUtPnNldFByZWZlcnJlZExheWVyUmVwcmVzZW50YXRpb24o
cHJlZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbik7CiAKICAgICBpZiAobV9yb290U3RhdGVOb2Rl
KQotICAgICAgICB0cmVlU3RhdGVDbG9uZS0+c2V0Um9vdFN0YXRlTm9kZShzdGF0aWNfcG9pbnRl
cl9jYXN0PFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdOb2RlPihtX3Jvb3RTdGF0ZU5vZGUt
PmNsb25lQW5kUmVzZXQoKnRyZWVTdGF0ZUNsb25lKSkpOworICAgICAgICB0cmVlU3RhdGVDbG9u
ZS0+c2V0Um9vdFN0YXRlTm9kZShzdGF0aWNfcmVmZXJlbmNlX2Nhc3Q8U2Nyb2xsaW5nU3RhdGVG
cmFtZVNjcm9sbGluZ05vZGU+KG1fcm9vdFN0YXRlTm9kZS0+Y2xvbmVBbmRSZXNldCgqdHJlZVN0
YXRlQ2xvbmUpKSk7CiAKICAgICAvLyBDb3B5IHRoZSBJRHMgb2YgdGhlIG5vZGVzIHRoYXQgaGF2
ZSBiZWVuIHJlbW92ZWQgc2luY2UgdGhlIGxhc3QgY29tbWl0IGludG8gdGhlIGNsb25lLgogICAg
IHRyZWVTdGF0ZUNsb25lLT5tX25vZGVzUmVtb3ZlZFNpbmNlTGFzdENvbW1pdC5zd2FwKG1fbm9k
ZXNSZW1vdmVkU2luY2VMYXN0Q29tbWl0KTsKQEAgLTIxMSw3ICsyMTEsOCBAQCB2b2lkIFNjcm9s
bGluZ1N0YXRlVHJlZTo6cmVtb3ZlTm9kZUFuZEFsbERlc2NlbmRhbnRzKFNjcm9sbGluZ1N0YXRl
Tm9kZSogbm9kZSwgUwogICAgIGlmIChub2RlID09IG1fcm9vdFN0YXRlTm9kZSkKICAgICAgICAg
bV9yb290U3RhdGVOb2RlID0gbnVsbHB0cjsKICAgICBlbHNlIGlmIChwYXJlbnQpIHsKLSAgICAg
ICAgQVNTRVJUKHBhcmVudC0+Y2hpbGRyZW4oKSAmJiBwYXJlbnQtPmNoaWxkcmVuKCktPmZpbmQo
bm9kZSkgIT0gbm90Rm91bmQpOworICAgICAgICBBU1NFUlQocGFyZW50LT5jaGlsZHJlbigpKTsK
KyAgICAgICAgQVNTRVJUKHBhcmVudC0+Y2hpbGRyZW4oKS0+ZmluZChub2RlKSAhPSBub3RGb3Vu
ZCk7CiAgICAgICAgIGlmIChhdXRvIGNoaWxkcmVuID0gcGFyZW50LT5jaGlsZHJlbigpKSB7CiAg
ICAgICAgICAgICBzaXplX3QgaW5kZXggPSBjaGlsZHJlbi0+ZmluZChub2RlKTsKICAgICAgICAg
ICAgIGlmIChpbmRleCAhPSBub3RGb3VuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmgKaW5kZXggMzFmNmRiNzllN2I0MGMxYjMyZjJl
YTdjZGNmZmM0OGYxN2JmY2UzMS4uM2IyNTYxNTFhZDc0NGJjZjAyMzRkNzJkNGZkM2EwYzc1ZDQz
NjkxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVUcmVlLmgKQEAgLTc0LDE3ICs3NCwxNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQcmVm
ZXJyZWRMYXllclJlcHJlc2VudGF0aW9uKExheWVyUmVwcmVzZW50YXRpb246OlR5cGUgcmVwcmVz
ZW50YXRpb24pIHsgbV9wcmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9uID0gcmVwcmVzZW50YXRp
b247IH0KIAogcHJpdmF0ZToKLSAgICB2b2lkIHNldFJvb3RTdGF0ZU5vZGUoUGFzc1JlZlB0cjxT
Y3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4gcm9vdFN0YXRlTm9kZSkgeyBtX3Jvb3RT
dGF0ZU5vZGUgPSByb290U3RhdGVOb2RlOyB9CisgICAgdm9pZCBzZXRSb290U3RhdGVOb2RlKFJl
ZjxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4mJiByb290U3RhdGVOb2RlKSB7IG1f
cm9vdFN0YXRlTm9kZSA9IFdURk1vdmUocm9vdFN0YXRlTm9kZSk7IH0KICAgICB2b2lkIGFkZE5v
ZGUoU2Nyb2xsaW5nU3RhdGVOb2RlKik7CiAKLSAgICBQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRl
Tm9kZT4gY3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKKyAg
ICBSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBT
Y3JvbGxpbmdOb2RlSUQpOwogCiAgICAgYm9vbCBub2RlVHlwZUFuZFBhcmVudE1hdGNoKFNjcm9s
bGluZ1N0YXRlTm9kZSYsIFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgcGFyZW50
SUQpIGNvbnN0OwogCi0gICAgZW51bSBjbGFzcyBTdWJmcmFtZU5vZGVSZW1vdmFsIHsKLSAgICAg
ICAgRGVsZXRlLAotICAgICAgICBPcnBoYW4KLSAgICB9OworICAgIGVudW0gY2xhc3MgU3ViZnJh
bWVOb2RlUmVtb3ZhbCB7IERlbGV0ZSwgT3JwaGFuIH07CiAgICAgdm9pZCByZW1vdmVOb2RlQW5k
QWxsRGVzY2VuZGFudHMoU2Nyb2xsaW5nU3RhdGVOb2RlKiwgU3ViZnJhbWVOb2RlUmVtb3ZhbCA9
IFN1YmZyYW1lTm9kZVJlbW92YWw6OkRlbGV0ZSk7CiAKICAgICB2b2lkIHJlY3Vyc2l2ZU5vZGVX
aWxsQmVSZW1vdmVkKFNjcm9sbGluZ1N0YXRlTm9kZSogY3Vyck5vZGUsIFN1YmZyYW1lTm9kZVJl
bW92YWwpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmNwcAppbmRleCBkMDBlYzVkZDliMWI3ZDRhNmQ2MWJmNWQxMzliNDk5MmU2MzdkOGVmLi40MGJj
YzYzZmY4YzMzN2FmYmMxMGJkNGI5OWViMWMwMDNmNDc1MGMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtMTc5LDcgKzE3OSw3IEBA
IHZvaWQgU2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJlZUZyb21TdGF0ZU5vZGUoY29uc3QgU2Nyb2xs
aW5nU3RhdGVOb2RlKiBzdGF0ZU5vZGUsCiAgICAgICAgIGlmIChwYXJlbnRJdCAhPSBtX25vZGVN
YXAuZW5kKCkpIHsKICAgICAgICAgICAgIFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJlbnQgPSBwYXJl
bnRJdC0+dmFsdWU7CiAgICAgICAgICAgICBub2RlLT5zZXRQYXJlbnQocGFyZW50KTsKLSAgICAg
ICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQobm9kZSk7CisgICAgICAgICAgICBwYXJlbnQtPmFw
cGVuZENoaWxkKCpub2RlKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTg5LDcgKzE4OSw3IEBA
IHZvaWQgU2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJlZUZyb21TdGF0ZU5vZGUoY29uc3QgU2Nyb2xs
aW5nU3RhdGVOb2RlKiBzdGF0ZU5vZGUsCiAgICAgaWYgKGF1dG8gbm9kZUNoaWxkcmVuID0gbm9k
ZS0+Y2hpbGRyZW4oKSkgewogICAgICAgICBmb3IgKGF1dG8mIGNoaWxkU2Nyb2xsaW5nTm9kZSA6
ICpub2RlQ2hpbGRyZW4pIHsKICAgICAgICAgICAgIGNoaWxkU2Nyb2xsaW5nTm9kZS0+c2V0UGFy
ZW50KG51bGxwdHIpOwotICAgICAgICAgICAgb3JwaGFuTm9kZXMuYWRkKGNoaWxkU2Nyb2xsaW5n
Tm9kZS0+c2Nyb2xsaW5nTm9kZUlEKCksIGNoaWxkU2Nyb2xsaW5nTm9kZSk7CisgICAgICAgICAg
ICBvcnBoYW5Ob2Rlcy5hZGQoY2hpbGRTY3JvbGxpbmdOb2RlLT5zY3JvbGxpbmdOb2RlSUQoKSwg
Y2hpbGRTY3JvbGxpbmdOb2RlLmdldCgpKTsKICAgICAgICAgfQogICAgICAgICBub2RlQ2hpbGRy
ZW4tPmNsZWFyKCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZS5oCmluZGV4IDY3MzRiNTNhZGFiNWMzOTliOTMzYWMzNzdlZGU3NGI4YzJhMDVh
NGQuLmFhZjJkNDc4YmJiODAwOTVmNTU5NmM5MTQ2MDZlMmI5YjVkOGY4Y2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTc0LDcgKzc0LDcg
QEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRNYWluRnJhbWVQaW5TdGF0ZShib29sIHBpbm5lZFRv
VGhlTGVmdCwgYm9vbCBwaW5uZWRUb1RoZVJpZ2h0LCBib29sIHBpbm5lZFRvVGhlVG9wLCBib29s
IHBpbm5lZFRvVGhlQm90dG9tKTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxTY3JvbGxpbmdU
cmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9s
bGluZ05vZGVJRCkgPSAwOworICAgIHZpcnR1YWwgUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVh
dGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSA9
IDA7CiAKICAgICAvLyBDYWxsZWQgYWZ0ZXIgYSBzY3JvbGxpbmcgdHJlZSBub2RlIGhhcyBoYW5k
bGVkIGEgc2Nyb2xsIGFuZCB1cGRhdGVkIGl0cyBsYXllcnMuCiAgICAgLy8gVXBkYXRlcyBGcmFt
ZVZpZXcvUmVuZGVyTGF5ZXIgc2Nyb2xsaW5nIHN0YXRlIGFuZCBHcmFwaGljc0xheWVycy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmNw
cAppbmRleCBkZWI3ODFhMWMxZjlmZGQwMzNjOTk5NWM5OTIxYzA3Mjk5MjY5YTJhLi4wZjY2MTZk
MGYzZGMzNTc4NjMwNmZkNDY2ZjdhNjk2NDE1YjJlZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwCkBAIC00NSwyMiArNDUs
MjEgQEAgU2Nyb2xsaW5nVHJlZU5vZGU6On5TY3JvbGxpbmdUcmVlTm9kZSgpCiB7CiB9CiAKLXZv
aWQgU2Nyb2xsaW5nVHJlZU5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJl
ZU5vZGU+IGNoaWxkTm9kZSkKK3ZvaWQgU2Nyb2xsaW5nVHJlZU5vZGU6OmFwcGVuZENoaWxkKFJl
ZjxTY3JvbGxpbmdUcmVlTm9kZT4mJiBjaGlsZE5vZGUpCiB7CiAgICAgY2hpbGROb2RlLT5zZXRQ
YXJlbnQodGhpcyk7CiAKICAgICBpZiAoIW1fY2hpbGRyZW4pCi0gICAgICAgIG1fY2hpbGRyZW4g
PSBzdGQ6Om1ha2VfdW5pcXVlPFNjcm9sbGluZ1RyZWVDaGlsZHJlblZlY3Rvcj4oKTsKLQotICAg
IG1fY2hpbGRyZW4tPmFwcGVuZChjaGlsZE5vZGUpOworICAgICAgICBtX2NoaWxkcmVuID0gc3Rk
OjptYWtlX3VuaXF1ZTxWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPj4+KCk7CisgICAg
bV9jaGlsZHJlbi0+YXBwZW5kKFdURk1vdmUoY2hpbGROb2RlKSk7CiB9CiAKLXZvaWQgU2Nyb2xs
aW5nVHJlZU5vZGU6OnJlbW92ZUNoaWxkKFNjcm9sbGluZ1RyZWVOb2RlKiBub2RlKQordm9pZCBT
Y3JvbGxpbmdUcmVlTm9kZTo6cmVtb3ZlQ2hpbGQoU2Nyb2xsaW5nVHJlZU5vZGUmIG5vZGUpCiB7
CiAgICAgaWYgKCFtX2NoaWxkcmVuKQogICAgICAgICByZXR1cm47CiAKLSAgICBzaXplX3QgaW5k
ZXggPSBtX2NoaWxkcmVuLT5maW5kKG5vZGUpOworICAgIHNpemVfdCBpbmRleCA9IG1fY2hpbGRy
ZW4tPmZpbmQoJm5vZGUpOwogCiAgICAgLy8gVGhlIGluZGV4IHdpbGwgYmUgbm90Rm91bmQgaWYg
dGhlIG5vZGUgdG8gcmVtb3ZlIGlzIGEgZGVlcGVyLXRoYW4tMS1sZXZlbCBkZXNjZW5kYW50IG9y
CiAgICAgLy8gaWYgbm9kZSBpcyB0aGUgcm9vdCBzdGF0ZSBub2RlLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKaW5kZXggM2U4NmUzZDQ3
OGQzNDA2OTM1OWVhYTVjNmI5Y2ZiYWM2NzVjZWQwNS4uMmUxNjMyNDZiYjk2ZTMzZmVmNjJhZGE3
MWI0MWEyMTM5MjEyNzkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZU5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlTm9kZS5oCkBAIC02MCwxMSArNjAsMTAgQEAgcHVibGljOgogICAgIFNj
cm9sbGluZ1RyZWVOb2RlKiBwYXJlbnQoKSBjb25zdCB7IHJldHVybiBtX3BhcmVudDsgfQogICAg
IHZvaWQgc2V0UGFyZW50KFNjcm9sbGluZ1RyZWVOb2RlKiBwYXJlbnQpIHsgbV9wYXJlbnQgPSBw
YXJlbnQ7IH0KIAotICAgIHR5cGVkZWYgVmVjdG9yPFJlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4+
IFNjcm9sbGluZ1RyZWVDaGlsZHJlblZlY3RvcjsKLSAgICBTY3JvbGxpbmdUcmVlQ2hpbGRyZW5W
ZWN0b3IqIGNoaWxkcmVuKCkgeyByZXR1cm4gbV9jaGlsZHJlbi5nZXQoKTsgfQotICAgIAotICAg
IHZvaWQgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4pOwotICAgIHZv
aWQgcmVtb3ZlQ2hpbGQoU2Nyb2xsaW5nVHJlZU5vZGUqKTsKKyAgICBWZWN0b3I8UmVmUHRyPFNj
cm9sbGluZ1RyZWVOb2RlPj4qIGNoaWxkcmVuKCkgeyByZXR1cm4gbV9jaGlsZHJlbi5nZXQoKTsg
fQorCisgICAgdm9pZCBhcHBlbmRDaGlsZChSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+JiYpOworICAg
IHZvaWQgcmVtb3ZlQ2hpbGQoU2Nyb2xsaW5nVHJlZU5vZGUmKTsKIAogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgZHVtcChUZXh0U3RyZWFtJiwgU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZp
b3IpIGNvbnN0OwogCkBAIC03Miw3ICs3MSw3IEBAIHByb3RlY3RlZDoKICAgICBTY3JvbGxpbmdU
cmVlTm9kZShTY3JvbGxpbmdUcmVlJiwgU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJ
RCk7CiAgICAgU2Nyb2xsaW5nVHJlZSYgc2Nyb2xsaW5nVHJlZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2Nyb2xsaW5nVHJlZTsgfQogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ1RyZWVDaGls
ZHJlblZlY3Rvcj4gbV9jaGlsZHJlbjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPFJlZlB0
cjxTY3JvbGxpbmdUcmVlTm9kZT4+PiBtX2NoaWxkcmVuOwogCiAgICAgV0VCQ09SRV9FWFBPUlQg
dmlydHVhbCB2b2lkIGR1bXBQcm9wZXJ0aWVzKFRleHRTdHJlYW0mLCBTY3JvbGxpbmdTdGF0ZVRy
ZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCmluZGV4IGJjYjQ4ZTQ5NWMx
YjBiODllNzVhN2FhMzNlODVlNTk0ZDdjNWU2ODUuLmY2NjRlZDNhYzNiZTUzOGRmZjJmZTU4ODAy
YTA5NzdhYTBhYTA4OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcApAQCAtMzksOCArMzksOCBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6VGhyZWFkZWRTY3JvbGxp
bmdUcmVlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQot
ICAgIDogbV9zY3JvbGxpbmdDb29yZGluYXRvcihzY3JvbGxpbmdDb29yZGluYXRvcikKK1RocmVh
ZGVkU2Nyb2xsaW5nVHJlZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlKEFzeW5jU2Nyb2xsaW5nQ29v
cmRpbmF0b3ImIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorICAgIDogbV9zY3JvbGxpbmdDb29yZGlu
YXRvcigmc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKaW5kZXggNzMyNTQw
NTljMmQ3NzAyMDVjZWZkYmQxNTMwYWIyNzkwNGFhNzM2My4uNmQxZDQ5ZDY3ZWNhNWZhOGQ1MmE4
NThlZWNmNWY5M2VlOWM5NzBkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE0LTIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01NSw3ICs1NSw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGludmFsaWRhdGUoKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgotICAgIGV4
cGxpY2l0IFRocmVhZGVkU2Nyb2xsaW5nVHJlZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKik7
CisgICAgZXhwbGljaXQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlKEFzeW5jU2Nyb2xsaW5nQ29vcmRp
bmF0b3ImKTsKIAogICAgIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5n
Tm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qgc3RkOjpvcHRp
b25hbDxGbG9hdFBvaW50PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb24gPSBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBvdmVycmlk
ZTsKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFNjcm9sbGluZ05v
ZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ0Nv
b3JkaW5hdG9ySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9s
bGluZ0Nvb3JkaW5hdG9ySU9TLm1tCmluZGV4IDRjY2Y0NDQyOWY5OWUxMDlmODc1NWI5NDYwMTI2
YmJjYTdlNWI5ZWEuLjZiMTY4NTczYjU2MDMwYjNhZjNkOTQwMmE0NGM3MGU4OTgyZTliMzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdDb29y
ZGluYXRvcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Ny
b2xsaW5nQ29vcmRpbmF0b3JJT1MubW0KQEAgLTUyLDcgKzUyLDcgQEAgU2Nyb2xsaW5nQ29vcmRp
bmF0b3JJT1M6OlNjcm9sbGluZ0Nvb3JkaW5hdG9ySU9TKFBhZ2UqIHBhZ2UpCiAgICAgOiBBc3lu
Y1Njcm9sbGluZ0Nvb3JkaW5hdG9yKHBhZ2UpCiAgICAgLCBtX3Njcm9sbGluZ1N0YXRlVHJlZUNv
bW1pdHRlclRpbWVyKCp0aGlzLCAmU2Nyb2xsaW5nQ29vcmRpbmF0b3JJT1M6OmNvbW1pdFRyZWVT
dGF0ZSkKIHsKLSAgICBzZXRTY3JvbGxpbmdUcmVlKFNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZSh0
aGlzKSk7CisgICAgc2V0U2Nyb2xsaW5nVHJlZShTY3JvbGxpbmdUcmVlSU9TOjpjcmVhdGUoKnRo
aXMpKTsKIH0KIAogU2Nyb2xsaW5nQ29vcmRpbmF0b3JJT1M6On5TY3JvbGxpbmdDb29yZGluYXRv
cklPUygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Ny
b2xsaW5nVHJlZUlPUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Ny
b2xsaW5nVHJlZUlPUy5jcHAKaW5kZXggMTBiM2Y4NzM0NWZkYTQzY2NkZmU5YzE1ZmU0MTdmNDZh
ZjU1NDVlYS4uMWYwM2U2ODZlOWY4NzU4ZWM2NWE5YjZmOWI2MTdlYjJmODY4YzY0MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVl
SU9TLmNwcApAQCAtNDAsMTMgKzQwLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUmVm
PFNjcm9sbGluZ1RyZWVJT1M+IFNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZShBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvcikKK1JlZjxTY3JvbGxpbmdUcmVlSU9T
PiBTY3JvbGxpbmdUcmVlSU9TOjpjcmVhdGUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYgc2Ny
b2xsaW5nQ29vcmRpbmF0b3IpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2Nyb2xsaW5n
VHJlZUlPUyhzY3JvbGxpbmdDb29yZGluYXRvcikpOwogfQogCi1TY3JvbGxpbmdUcmVlSU9TOjpT
Y3JvbGxpbmdUcmVlSU9TKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKQotICAgIDogbV9zY3JvbGxpbmdDb29yZGluYXRvcihzY3JvbGxpbmdDb29yZGluYXRv
cikKK1Njcm9sbGluZ1RyZWVJT1M6OlNjcm9sbGluZ1RyZWVJT1MoQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvciYgc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCisgICAgOiBtX3Njcm9sbGluZ0Nvb3JkaW5h
dG9yKCZzY3JvbGxpbmdDb29yZGluYXRvcikKIHsKIH0KIApAQCAtODMsMjAgKzgzLDIxIEBAIHZv
aWQgU2Nyb2xsaW5nVHJlZUlPUzo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5n
Tm9kZUlEIG5vZGVJRCwgY29uc3QKICAgICB9KTsKIH0KIAotUGFzc1JlZlB0cjxTY3JvbGxpbmdU
cmVlTm9kZT4gU2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xs
aW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCitSZWY8U2Nyb2xs
aW5nVHJlZU5vZGU+IFNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNj
cm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlEKQogewogICAg
IHN3aXRjaCAobm9kZVR5cGUpIHsKICAgICBjYXNlIEZyYW1lU2Nyb2xsaW5nTm9kZToKICAgICAg
ICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVJT1M6OmNyZWF0ZSgqdGhp
cywgbm9kZUlEKTsKICAgICBjYXNlIE92ZXJmbG93U2Nyb2xsaW5nTm9kZToKICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBicmVh
azsKICAgICBjYXNlIEZpeGVkTm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGaXhl
ZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICBjYXNlIFN0aWNreU5vZGU6CiAgICAg
ICAgIHJldHVybiBTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQp
OwogICAgIH0KLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQp
OwogfQogCiBGbG9hdFJlY3QgU2Nyb2xsaW5nVHJlZUlPUzo6Zml4ZWRQb3NpdGlvblJlY3QoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1Ry
ZWVJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVl
SU9TLmgKaW5kZXggMWE5YWFlMWI0MGM4MTI2ODM0NDg0MWNlN2IzMDc1ZWY3MGE3ZTU1NC4uYWVh
NjliMzlmNTljOTYxNWQxODBhYWVhNmViODk3MjU5Y2RhZDk0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5oCkBAIC0yOSwz
NSArMjksMzEgQEAKIAogI2luY2x1ZGUgIlNjcm9sbGluZ1N0YXRlVHJlZS5oIgogI2luY2x1ZGUg
IlNjcm9sbGluZ1RyZWUuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgotI2luY2x1ZGUg
PHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBBc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yOwogCi1jbGFzcyBTY3JvbGxpbmdUcmVlSU9TIDogcHVibGljIFNjcm9s
bGluZ1RyZWUgeworY2xhc3MgU2Nyb2xsaW5nVHJlZUlPUyBmaW5hbCA6IHB1YmxpYyBTY3JvbGxp
bmdUcmVlIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVJT1M+IGNyZWF0
ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKik7CisgICAgc3RhdGljIFJlZjxTY3JvbGxpbmdU
cmVlSU9TPiBjcmVhdGUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOwogICAgIHZpcnR1YWwg
flNjcm9sbGluZ1RyZWVJT1MoKTsKIAotICAgIC8vIE5vIHdoZWVsIGV2ZW50cyBvbiBpT1MKLSAg
ICB2b2lkIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJp
ZGUgeyB9Ci0gICAgRXZlbnRSZXN1bHQgdHJ5VG9IYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYpIG92ZXJyaWRlIHsgcmV0dXJuIERpZE5vdEhhbmRsZUV2ZW50OyB9Ci0K
LSAgICB2b2lkIGludmFsaWRhdGUoKSBvdmVycmlkZTsKLQogcHJpdmF0ZToKLSAgICBleHBsaWNp
dCBTY3JvbGxpbmdUcmVlSU9TKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqKTsKLSAgICBib29s
IGlzU2Nyb2xsaW5nVHJlZUlPUygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KKyAg
ICBleHBsaWNpdCBTY3JvbGxpbmdUcmVlSU9TKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImKTsK
IAotICAgIFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOworICAgIGJv
b2wgaXNTY3JvbGxpbmdUcmVlSU9TKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCi0g
ICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0
IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9p
bnQ+JiBsYXlvdXRWaWV3cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9
IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb246OlN5bmMpIG92ZXJyaWRlOworICAgIC8vIE5v
IHdoZWVsIGV2ZW50cyBvbiBpT1MKKyAgICB2b2lkIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JikgZmluYWwgeyB9CisgICAgRXZlbnRSZXN1bHQgdHJ5VG9IYW5kbGVX
aGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGZpbmFsIHsgcmV0dXJuIERpZE5v
dEhhbmRsZUV2ZW50OyB9CiAKLSAgICB2b2lkIGN1cnJlbnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hh
bmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgdW5zaWduZWQgaG9yaXpvbnRhbCwgdW5zaWdu
ZWQgdmVydGljYWwpIG92ZXJyaWRlOworICAgIHZvaWQgaW52YWxpZGF0ZSgpIGZpbmFsOwogCi0g
ICAgRmxvYXRSZWN0IGZpeGVkUG9zaXRpb25SZWN0KCkgb3ZlcnJpZGU7CisgICAgUmVmPFNjcm9s
bGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwg
U2Nyb2xsaW5nTm9kZUlEKSBmaW5hbDsKKyAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Ny
b2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGNv
bnN0IHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBTY3Jv
bGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbjo6
U3luYykgZmluYWw7CisgICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShX
ZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQsIHVuc2lnbmVkIGhvcml6b250YWwsIHVuc2lnbmVkIHZl
cnRpY2FsKSBmaW5hbDsKKyAgICBGbG9hdFJlY3QgZml4ZWRQb3NpdGlvblJlY3QoKSBmaW5hbDsK
IAogICAgIFJlZlB0cjxBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yPiBtX3Njcm9sbGluZ0Nvb3Jk
aW5hdG9yOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQppbmRleCBkNDNkOTRiMjQ3YTZlNGY5
Mzk3NDE1ODI2MTk3YzJiMGFkZjA3MTQ4Li44NjExOGI0NDUwMDc5NDZjZjBmYTc4M2M1ZDU0M2Ux
MTllOWViZjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCkBAIC01NCw3ICs1NCw3IEBAIFNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYyhQYWdlKiBwYWdl
KQogICAgIDogQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcihwYWdlKQogICAgICwgbV9zY3JvbGxp
bmdTdGF0ZVRyZWVDb21taXR0ZXJUaW1lcigqdGhpcywgJlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFj
Ojpjb21taXRUcmVlU3RhdGUpCiB7Ci0gICAgc2V0U2Nyb2xsaW5nVHJlZShTY3JvbGxpbmdUcmVl
TWFjOjpjcmVhdGUodGhpcykpOworICAgIHNldFNjcm9sbGluZ1RyZWUoU2Nyb2xsaW5nVHJlZU1h
Yzo6Y3JlYXRlKCp0aGlzKSk7CiB9CiAKIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjp+U2Nyb2xs
aW5nQ29vcmRpbmF0b3JNYWMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuY3BwCmluZGV4IDcwZGJjMDZjZjAxM2JmMzFiOGRh
MDdmZGUwZDM5ODhjNjFiNGQ4MGEuLjg5OWYxZTkwMTY3ZGI4YzhlYTFmYTZkOGVhZWY0YzcwNDEx
MjA1NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZU1hYy5jcHAKQEAgLTM0LDMwICszNCwzMSBAQAogCiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotUmVmPFNjcm9sbGluZ1RyZWVNYWM+IFNjcm9sbGluZ1RyZWVNYWM6OmNy
ZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvcikKK1Jl
ZjxTY3JvbGxpbmdUcmVlTWFjPiBTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGUoQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvciYgc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiB7CiAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU2Nyb2xsaW5nVHJlZU1hYyhzY3JvbGxpbmdDb29yZGluYXRvcikpOwogfQogCi1T
Y3JvbGxpbmdUcmVlTWFjOjpTY3JvbGxpbmdUcmVlTWFjKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorU2Nyb2xsaW5nVHJlZU1hYzo6U2Nyb2xsaW5nVHJl
ZU1hYyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRvcikKICAg
ICA6IFRocmVhZGVkU2Nyb2xsaW5nVHJlZShzY3JvbGxpbmdDb29yZGluYXRvcikKIHsKIH0KIAot
UGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlU2Ny
b2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJ
RCBub2RlSUQpCitSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IFNjcm9sbGluZ1RyZWVNYWM6OmNyZWF0
ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdO
b2RlSUQgbm9kZUlEKQogewogICAgIHN3aXRjaCAobm9kZVR5cGUpIHsKICAgICBjYXNlIEZyYW1l
U2Nyb2xsaW5nTm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVNYWM6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICBjYXNlIE92ZXJmbG93U2Nyb2xs
aW5nTm9kZToKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICBicmVhazsKICAgICBjYXNlIEZpeGVkTm9kZToKICAgICAgICAgcmV0
dXJuIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICBj
YXNlIFN0aWNreU5vZGU6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZTo6
Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIH0KLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6
Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEFTWU5DX1NDUk9M
TElORykgJiYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmgKaW5kZXggNDNhNDZiNzdlODViNDVmZjYxY2Iy
YjlhNmJiYjMyYzJjMGVmZmE1Ny4uNDk5ZmMzZmYxN2JjZjk0OTBhODM3MjI2NDJmNmJjODNiZTAw
YjdkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZU1hYy5oCkBAIC0zMSwxNCArMzEsMTQgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBTY3JvbGxpbmdUcmVlTWFjIDogcHVibGljIFRocmVhZGVkU2Nyb2xsaW5nVHJl
ZSB7CitjbGFzcyBTY3JvbGxpbmdUcmVlTWFjIGZpbmFsIDogcHVibGljIFRocmVhZGVkU2Nyb2xs
aW5nVHJlZSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlTWFjPiBjcmVh
dGUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciopOworICAgIHN0YXRpYyBSZWY8U2Nyb2xsaW5n
VHJlZU1hYz4gY3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3ImKTsKIAotICAgIFBhc3NS
ZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGlu
Z05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRlOwotICAgIAogcHJpdmF0ZToKLSAg
ICBleHBsaWNpdCBTY3JvbGxpbmdUcmVlTWFjKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqKTsK
KyAgICBleHBsaWNpdCBTY3JvbGxpbmdUcmVlTWFjKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Im
KTsKKworICAgIFJlZjxTY3JvbGxpbmdUcmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUo
U2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkgZmluYWw7CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dpbi9FdmVu
dEhhbmRsZXJXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2lu
LmNwcAppbmRleCA2MTYwNzA5MGQyNmM5OWMxYWUyNTNmNWE0ZWM1ZDY2ZDUxYzNkNjE1Li4zMjQz
MGM0N2I4N2QxYzA4ODQ0OWFjYmRjZDBiMzY0NzEzZjA5NDJiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgYm9vbCBFdmVu
dEhhbmRsZXI6OndpZGdldERpZEhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiB3aGVlbEV2ZW4KICAgICByZXR1cm4gZG93bmNhc3Q8RnJhbWVWaWV3Pih3aWRnZXQpLmZy
YW1lKCkuZXZlbnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKIH0KIAot
Ym9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50Kikg
Y29uc3QKK2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRF
dmVudCYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC05MiwxMCArOTIsMTIgQEAg
Ym9vbCBFdmVudEhhbmRsZXI6OmV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmIGV2ZW50KSBjb25zdAogfQogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKLVBhc3NS
ZWZQdHI8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5z
ZmVyKCkgY29uc3QKKworUmVmPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFn
Z2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIERhdGFUcmFuc2Zlcjo6Y3Jl
YXRlRm9yRHJhZ0FuZERyb3AoKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgRXZlbnRIYW5kbGVyOjpm
b2N1c0RvY3VtZW50VmlldygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9D
dXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5oCmluZGV4IDY4ZDA2OWQz
YTQzODQ2ODhkZjJkZWM4OGU4MzQwNDlmNTMyYjExMWQuLjA0Njg1YTI1YTdjY2MyOGU3NzNmYWEy
MzU1MjFkN2M2MWRkM2U1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1
cnNvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5oCkBAIC01NCwyNCAr
NTQsMjggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgSW1hZ2U7CiAKICNpZiBQTEFURk9S
TShXSU4pCisKIGNsYXNzIFNoYXJlZEN1cnNvciA6IHB1YmxpYyBSZWZDb3VudGVkPFNoYXJlZEN1
cnNvcj4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8U2hhcmVkQ3Vyc29yPiBjcmVhdGUoSENV
UlNPUiBuYXRpdmVDdXJzb3IpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2hhcmVkQ3Vyc29yKG5h
dGl2ZUN1cnNvcikpOyB9Ci0gICAgflNoYXJlZEN1cnNvcigpOworICAgIHN0YXRpYyBSZWY8U2hh
cmVkQ3Vyc29yPiBjcmVhdGUoSENVUlNPUik7CisgICAgV0VCQ09SRV9FWFBPUlQgflNoYXJlZEN1
cnNvcigpOwogICAgIEhDVVJTT1IgbmF0aXZlQ3Vyc29yKCkgY29uc3QgeyByZXR1cm4gbV9uYXRp
dmVDdXJzb3I7IH0KKwogcHJpdmF0ZToKLSAgICBTaGFyZWRDdXJzb3IoSENVUlNPUiBuYXRpdmVD
dXJzb3IpIDogbV9uYXRpdmVDdXJzb3IobmF0aXZlQ3Vyc29yKSB7IH0KKyAgICBTaGFyZWRDdXJz
b3IoSENVUlNPUik7CiAgICAgSENVUlNPUiBtX25hdGl2ZUN1cnNvcjsKIH07Ci10eXBlZGVmIFJl
ZlB0cjxTaGFyZWRDdXJzb3I+IFBsYXRmb3JtQ3Vyc29yOworCisjZW5kaWYKKworI2lmIFBMQVRG
T1JNKFdJTikKK3VzaW5nIFBsYXRmb3JtQ3Vyc29yID0gUmVmUHRyPFNoYXJlZEN1cnNvcj47CiAj
ZWxpZiBVU0UoQVBQS0lUKQotdHlwZWRlZiBOU0N1cnNvciAqUGxhdGZvcm1DdXJzb3I7Cit1c2lu
ZyBQbGF0Zm9ybUN1cnNvciA9IE5TQ3Vyc29yICo7CiAjZWxpZiBQTEFURk9STShHVEspCi10eXBl
ZGVmIEdSZWZQdHI8R2RrQ3Vyc29yPiBQbGF0Zm9ybUN1cnNvcjsKK3VzaW5nIFBsYXRmb3JtQ3Vy
c29yID0gR1JlZlB0cjxHZGtDdXJzb3I+OwogI2VsaWYgUExBVEZPUk0oRUZMKQotdHlwZWRlZiBj
b25zdCBjaGFyKiBQbGF0Zm9ybUN1cnNvcjsKLSNlbHNlCi10eXBlZGVmIHZvaWQqIFBsYXRmb3Jt
Q3Vyc29yOwordXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBjb25zdCBjaGFyKjsKICNlbmRpZgogCiBj
bGFzcyBDdXJzb3IgewpAQCAtMTI0LDYxICsxMjgsNTAgQEAgcHVibGljOgogICAgICAgICBDdXN0
b20KICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IEN1cnNvciYgZnJv
bVR5cGUoQ3Vyc29yOjpUeXBlKTsKKyAgICBDdXJzb3IoKSA9IGRlZmF1bHQ7CiAKLSAgICBDdXJz
b3IoKQogI2lmICFQTEFURk9STShJT1MpCi0gICAgICAgIC8vIFRoaXMgaXMgYW4gaW52YWxpZCBD
dXJzb3IgYW5kIHNob3VsZCBuZXZlciBhY3R1YWxseSBnZXQgdXNlZC4KLSAgICAgICAgOiBtX3R5
cGUoc3RhdGljX2Nhc3Q8VHlwZT4oLTEpKQotI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUp
Ci0gICAgICAgICwgbV9pbWFnZVNjYWxlRmFjdG9yKDEpCi0jZW5kaWYKLSAgICAgICAgLCBtX3Bs
YXRmb3JtQ3Vyc29yKDApCi0jZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKLSAgICB7Ci0gICAgfQog
Ci0jaWYgIVBMQVRGT1JNKElPUykKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgY29uc3QgQ3Vy
c29yJiBmcm9tVHlwZShDdXJzb3I6OlR5cGUpOworCiAgICAgV0VCQ09SRV9FWFBPUlQgQ3Vyc29y
KEltYWdlKiwgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QpOwotICAgIFdFQkNPUkVfRVhQT1JUIEN1
cnNvcihjb25zdCBDdXJzb3ImKTsKIAogI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCiAg
ICAgLy8gSG90IHNwb3QgaXMgaW4gaW1hZ2UgcGl4ZWxzLgogICAgIFdFQkNPUkVfRVhQT1JUIEN1
cnNvcihJbWFnZSosIGNvbnN0IEludFBvaW50JiBob3RTcG90LCBmbG9hdCBpbWFnZVNjYWxlRmFj
dG9yKTsKICNlbmRpZgogCi0gICAgV0VCQ09SRV9FWFBPUlQgfkN1cnNvcigpOwotICAgIFdFQkNP
UkVfRVhQT1JUIEN1cnNvciYgb3BlcmF0b3I9KGNvbnN0IEN1cnNvciYpOwotCiAgICAgZXhwbGlj
aXQgQ3Vyc29yKFR5cGUpOwotICAgIFR5cGUgdHlwZSgpIGNvbnN0Ci0gICAgewotICAgICAgICBB
U1NFUlQobV90eXBlID49IDAgJiYgbV90eXBlIDw9IEN1c3RvbSk7Ci0gICAgICAgIHJldHVybiBt
X3R5cGU7Ci0gICAgfQorCisgICAgVHlwZSB0eXBlKCkgY29uc3Q7CiAgICAgSW1hZ2UqIGltYWdl
KCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZS5nZXQoKTsgfQogICAgIGNvbnN0IEludFBvaW50JiBo
b3RTcG90KCkgY29uc3QgeyByZXR1cm4gbV9ob3RTcG90OyB9CisKICNpZiBFTkFCTEUoTU9VU0Vf
Q1VSU09SX1NDQUxFKQogICAgIC8vIEltYWdlIHNjYWxlIGluIGltYWdlIHBpeGVscyBwZXIgbG9n
aWNhbCAoVUkpIHBpeGVsLgogICAgIGZsb2F0IGltYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJl
dHVybiBtX2ltYWdlU2NhbGVGYWN0b3I7IH0KICNlbmRpZgorCiAgICAgV0VCQ09SRV9FWFBPUlQg
UGxhdGZvcm1DdXJzb3IgcGxhdGZvcm1DdXJzb3IoKSBjb25zdDsKIAotIHByaXZhdGU6Citwcml2
YXRlOgogICAgIHZvaWQgZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdDsKIAotICAgIFR5cGUg
bV90eXBlOworICAgIC8vIFRoZSB0eXBlIG9mIC0xIGluZGljYXRlcyBhbiBpbnZhbGlkIEN1cnNv
ciB0aGF0IHNob3VsZCBuZXZlciBhY3R1YWxseSBnZXQgdXNlZC4KKyAgICBUeXBlIG1fdHlwZSB7
IHN0YXRpY19jYXN0PFR5cGU+KC0xKSB9OwogICAgIFJlZlB0cjxJbWFnZT4gbV9pbWFnZTsKICAg
ICBJbnRQb2ludCBtX2hvdFNwb3Q7CisKICNpZiBFTkFCTEUoTU9VU0VfQ1VSU09SX1NDQUxFKQot
ICAgIGZsb2F0IG1faW1hZ2VTY2FsZUZhY3RvcjsKKyAgICBmbG9hdCBtX2ltYWdlU2NhbGVGYWN0
b3IgeyAxIH07CiAjZW5kaWYKIAogI2lmICFVU0UoQVBQS0lUKQotICAgIG11dGFibGUgUGxhdGZv
cm1DdXJzb3IgbV9wbGF0Zm9ybUN1cnNvcjsKKyAgICBtdXRhYmxlIFBsYXRmb3JtQ3Vyc29yIG1f
cGxhdGZvcm1DdXJzb3IgeyBudWxscHRyIH07CiAjZWxzZQogICAgIG11dGFibGUgUmV0YWluUHRy
PE5TQ3Vyc29yPiBtX3BsYXRmb3JtQ3Vyc29yOwogI2VuZGlmCisKICNlbmRpZiAvLyAhUExBVEZP
Uk0oSU9TKQogfTsKIApAQCAtMjI4LDQgKzIyMSwxNSBAQCBjb25zdCBDdXJzb3ImIG5vbmVDdXJz
b3IoKTsKIGNvbnN0IEN1cnNvciYgZ3JhYkN1cnNvcigpOwogY29uc3QgQ3Vyc29yJiBncmFiYmlu
Z0N1cnNvcigpOwogCisjaWYgIVBMQVRGT1JNKElPUykKKworaW5saW5lIEN1cnNvcjo6VHlwZSBD
dXJzb3I6OnR5cGUoKSBjb25zdAoreworICAgIEFTU0VSVChtX3R5cGUgPj0gMCk7CisgICAgQVNT
RVJUKG1fdHlwZSA8PSBDdXN0b20pOworICAgIHJldHVybiBtX3R5cGU7Cit9CisKKyNlbmRpZgor
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9lZmwvQ3Vyc29yRWZsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DdXJz
b3JFZmwuY3BwCmluZGV4IGIzZjQ0YWViN2VlYzRiZDJhOGU3ZDUyZWVlZTJjMTI3NmRkMjQ2Njku
LjU5NjQ4YmIxNDg2Y2RhNWE2OWQxZjkxMTgwOTYzNTExNzdjZTY2YWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DdXJzb3JFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2VmbC9DdXJzb3JFZmwuY3BwCkBAIC00MCwzNCArNDAsNiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLUN1cnNvcjo6Q3Vyc29yKGNvbnN0IEN1cnNvciYgb3RoZXIpCi0g
ICAgOiBtX3R5cGUob3RoZXIubV90eXBlKQotICAgICwgbV9pbWFnZShvdGhlci5tX2ltYWdlKQot
ICAgICwgbV9ob3RTcG90KG90aGVyLm1faG90U3BvdCkKLSNpZiBFTkFCTEUoTU9VU0VfQ1VSU09S
X1NDQUxFKQotICAgICwgbV9pbWFnZVNjYWxlRmFjdG9yKG90aGVyLm1faW1hZ2VTY2FsZUZhY3Rv
cikKLSNlbmRpZgotICAgICwgbV9wbGF0Zm9ybUN1cnNvcihvdGhlci5tX3BsYXRmb3JtQ3Vyc29y
KQotewotfQotCi1DdXJzb3I6On5DdXJzb3IoKQotewotfQotCi1DdXJzb3ImIEN1cnNvcjo6b3Bl
cmF0b3I9KGNvbnN0IEN1cnNvciYgb3RoZXIpCi17Ci0gICAgbV90eXBlID0gb3RoZXIubV90eXBl
OwotICAgIG1faW1hZ2UgPSBvdGhlci5tX2ltYWdlOwotICAgIG1faG90U3BvdCA9IG90aGVyLm1f
aG90U3BvdDsKLSNpZiBFTkFCTEUoTU9VU0VfQ1VSU09SX1NDQUxFKQotICAgIG1faW1hZ2VTY2Fs
ZUZhY3RvciA9IG90aGVyLm1faW1hZ2VTY2FsZUZhY3RvcjsKLSNlbmRpZgotICAgIG1fcGxhdGZv
cm1DdXJzb3IgPSBvdGhlci5tX3BsYXRmb3JtQ3Vyc29yOwotCi0gICAgcmV0dXJuICp0aGlzOwot
fQotCiBzdGF0aWMgY29uc3QgY2hhciogY3Vyc29yU3RyaW5nKEN1cnNvcjo6VHlwZSB0eXBlKQog
ewogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBjdXJzb3JTdHJpbmdzW10gPSB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvQ3Vyc29yR3RrLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwCmluZGV4IGYwNzVmMzYzYTAzYTg0YmIxMmE3
NjU0ZDA2YzhiZmRjYTcxNTlhMGIuLjQ2MzRlZmRhYzg1ZjE4Mjk4YjQyNjdiNmJjY2VhOGE0M2Fh
YTNmN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9DdXJzb3JHdGsuY3BwCkBAIC0x
NzUsMjUgKzE3NSw0IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0
CiAgICAgfQogfQogCi1DdXJzb3I6OkN1cnNvcihjb25zdCBDdXJzb3ImIG90aGVyKQotICAgIDog
bV90eXBlKG90aGVyLm1fdHlwZSkKLSAgICAsIG1faW1hZ2Uob3RoZXIubV9pbWFnZSkKLSAgICAs
IG1faG90U3BvdChvdGhlci5tX2hvdFNwb3QpCi0gICAgLCBtX3BsYXRmb3JtQ3Vyc29yKG90aGVy
Lm1fcGxhdGZvcm1DdXJzb3IpCi17Ci19Ci0KLUN1cnNvciYgQ3Vyc29yOjpvcGVyYXRvcj0oY29u
c3QgQ3Vyc29yJiBvdGhlcikKLXsKLSAgICBtX3R5cGUgPSBvdGhlci5tX3R5cGU7Ci0gICAgbV9p
bWFnZSA9IG90aGVyLm1faW1hZ2U7Ci0gICAgbV9ob3RTcG90ID0gb3RoZXIubV9ob3RTcG90Owot
ICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBvdGhlci5tX3BsYXRmb3JtQ3Vyc29yOwotICAgIHJldHVy
biAqdGhpczsKLX0KLQotQ3Vyc29yOjp+Q3Vyc29yKCkKLXsKLX0KLQogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9DdXJzb3JNYWMubW0KaW5kZXggODVjYzdjNWZkZDJjMTYwNjJjZjhhMDE4
NjRhMjlmYzM0NDVhN2UwNS4uYWEzNDVlODhlNDgxMThjNDY4N2I5ZWVmYmZjNzMyMThkYzQ3MDcw
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCkBAIC0yNDEsMzMg
KzI0MSw2IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAg
fQogfQogCi1DdXJzb3I6OkN1cnNvcihjb25zdCBDdXJzb3ImIG90aGVyKQotICAgIDogbV90eXBl
KG90aGVyLm1fdHlwZSkKLSAgICAsIG1faW1hZ2Uob3RoZXIubV9pbWFnZSkKLSAgICAsIG1faG90
U3BvdChvdGhlci5tX2hvdFNwb3QpCi0jaWYgRU5BQkxFKE1PVVNFX0NVUlNPUl9TQ0FMRSkKLSAg
ICAsIG1faW1hZ2VTY2FsZUZhY3RvcihvdGhlci5tX2ltYWdlU2NhbGVGYWN0b3IpCi0jZW5kaWYK
LSAgICAsIG1fcGxhdGZvcm1DdXJzb3Iob3RoZXIubV9wbGF0Zm9ybUN1cnNvcikKLXsKLX0KLQot
Q3Vyc29yJiBDdXJzb3I6Om9wZXJhdG9yPShjb25zdCBDdXJzb3ImIG90aGVyKQotewotICAgIG1f
dHlwZSA9IG90aGVyLm1fdHlwZTsKLSAgICBtX2ltYWdlID0gb3RoZXIubV9pbWFnZTsKLSAgICBt
X2hvdFNwb3QgPSBvdGhlci5tX2hvdFNwb3Q7Ci0jaWYgRU5BQkxFKE1PVVNFX0NVUlNPUl9TQ0FM
RSkKLSAgICBtX2ltYWdlU2NhbGVGYWN0b3IgPSBvdGhlci5tX2ltYWdlU2NhbGVGYWN0b3I7Ci0j
ZW5kaWYKLSAgICBtX3BsYXRmb3JtQ3Vyc29yID0gb3RoZXIubV9wbGF0Zm9ybUN1cnNvcjsKLSAg
ICByZXR1cm4gKnRoaXM7Ci19Ci0KLUN1cnNvcjo6fkN1cnNvcigpCi17Ci19Ci0KIE5TQ3Vyc29y
ICpDdXJzb3I6OnBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKIHsKICAgICBlbnN1cmVQbGF0Zm9ybUN1
cnNvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL0N1cnNvcldp
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vQ3Vyc29yV2luLmNwcAppbmRleCA3
YTk5MzEzNmJhMmMzYTA1ZDJkMzE5NmE1NTY3NzE4YTAwZGFmODU5Li5kOWIyMjU1YTVlMjFkZTI0
ODVhZDU1YTkwYmE5NmVkNTk5NDE0ZDk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93aW4vQ3Vyc29yV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4v
Q3Vyc29yV2luLmNwcApAQCAtNDAsNiArNDAsMjEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitTaGFyZWRDdXJzb3I6OlNoYXJlZEN1cnNvcihIQ1VSU09SIG5hdGl2ZUN1cnNvcikKKyAgICA6
IG1fbmF0aXZlQ3Vyc29yKG5hdGl2ZUN1cnNvcikKK3sKK30KKworUmVmPFNoYXJlZEN1cnNvcj4g
U2hhcmVkQ3Vyc29yOjpjcmVhdGUoSENVUlNPUiBuYXRpdmVDdXJzb3IpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKCpuZXcgU2hhcmVkQ3Vyc29yKG5hdGl2ZUN1cnNvcikpOworfQorCitTaGFyZWRD
dXJzb3I6On5TaGFyZWRDdXJzb3IoKQoreworICAgIERlc3Ryb3lJY29uKG1fbmF0aXZlQ3Vyc29y
KTsKK30KKwogc3RhdGljIFJlZjxTaGFyZWRDdXJzb3I+IGNyZWF0ZVNoYXJlZEN1cnNvcihJbWFn
ZSogaW1nLCBjb25zdCBJbnRQb2ludCYgaG90U3BvdCkKIHsKICAgICBJbnRQb2ludCBlZmZlY3Rp
dmVIb3RTcG90ID0gZGV0ZXJtaW5lSG90U3BvdChpbWcsIGhvdFNwb3QpOwpAQCAtMjUzLDM2ICsy
NjgsNCBAQCB2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25zdAogICAgIH0K
IH0KIAotU2hhcmVkQ3Vyc29yOjp+U2hhcmVkQ3Vyc29yKCkKLXsKLSAgICBEZXN0cm95SWNvbiht
X25hdGl2ZUN1cnNvcik7Ci19Ci0KLUN1cnNvcjo6Q3Vyc29yKGNvbnN0IEN1cnNvciYgb3RoZXIp
Ci0gICAgOiBtX3R5cGUob3RoZXIubV90eXBlKQotICAgICwgbV9pbWFnZShvdGhlci5tX2ltYWdl
KQotICAgICwgbV9ob3RTcG90KG90aGVyLm1faG90U3BvdCkKLSNpZiBFTkFCTEUoTU9VU0VfQ1VS
U09SX1NDQUxFKQotICAgICwgbV9pbWFnZVNjYWxlRmFjdG9yKG90aGVyLm1faW1hZ2VTY2FsZUZh
Y3RvcikKLSNlbmRpZgotICAgICwgbV9wbGF0Zm9ybUN1cnNvcihvdGhlci5tX3BsYXRmb3JtQ3Vy
c29yKQotewotfQotCi1DdXJzb3ImIEN1cnNvcjo6b3BlcmF0b3I9KGNvbnN0IEN1cnNvciYgb3Ro
ZXIpCi17Ci0gICAgbV90eXBlID0gb3RoZXIubV90eXBlOwotICAgIG1faW1hZ2UgPSBvdGhlci5t
X2ltYWdlOwotICAgIG1faG90U3BvdCA9IG90aGVyLm1faG90U3BvdDsKLSNpZiBFTkFCTEUoTU9V
U0VfQ1VSU09SX1NDQUxFKQotICAgIG1faW1hZ2VTY2FsZUZhY3RvciA9IG90aGVyLm1faW1hZ2VT
Y2FsZUZhY3RvcjsKLSNlbmRpZgotICAgIG1fcGxhdGZvcm1DdXJzb3IgPSBvdGhlci5tX3BsYXRm
b3JtQ3Vyc29yOwotICAgIHJldHVybiAqdGhpczsKLX0KLQotQ3Vyc29yOjp+Q3Vyc29yKCkKLXsK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKaW5kZXggMDZhZWU5Zjk3OTYyZmJjYTgyOWNm
NWUxYmUzODI1ZTZmYmQ1MmRlNC4uNDgyYjVkZDEzNzViNmZlNzcyNjdjYjYyNmY0MTYzNmRmOGY1
MzU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVk
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRP
YmplY3QuY3BwCkBAIC02MTYsNyArNjE2LDcgQEAgdm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6
aGFuZGxlVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3JFdmVudChFdmVudCogZXZlbnQpCiAgICAg
ICAgICAgICBzZXRVbmF2YWlsYWJsZVBsdWdpbkluZGljYXRvcklzUHJlc3NlZChmYWxzZSk7CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKG1fbW91c2VEb3duV2FzSW5VbmF2YWlsYWJsZVBsdWdpbklu
ZGljYXRvciAmJiBpc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3IobW91c2VFdmVudCkpIHsK
LSAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS51bmF2YWlsYWJsZVBsdWdpbkJ1
dHRvbkNsaWNrZWQoJmVsZW1lbnQsIG1fcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pOworICAg
ICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9u
Q2xpY2tlZChlbGVtZW50LCBtX3BsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKTsKICAgICAgICAg
fQogICAgICAgICBtX21vdXNlRG93bldhc0luVW5hdmFpbGFibGVQbHVnaW5JbmRpY2F0b3IgPSBm
YWxzZTsKICAgICAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IGExYTk0YzY3Yjdl
NDUwZTllYzAzMDVlZTA3MDU5ZGYyMmVjMDc2ZDQuLjYxY2FhYmY2YWZhOGU4NzAyNjg2MWI0ZmU4
MDk3Y2MwOTYzNTNlZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgUmVuZGVyTGF5ZXJCYWNraW5nOjpS
ZW5kZXJMYXllckJhY2tpbmcoUmVuZGVyTGF5ZXImIGxheWVyKQogewogICAgIGlmIChsYXllci5p
c1Jvb3RMYXllcigpKSB7CiAgICAgICAgIG1faXNNYWluRnJhbWVSZW5kZXJWaWV3TGF5ZXIgPSBy
ZW5kZXJlcigpLmZyYW1lKCkuaXNNYWluRnJhbWUoKTsKLSAgICAgICAgbV91c2luZ1RpbGVkQ2Fj
aGVMYXllciA9IHJlbmRlcmVyKCkucGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLnNob3VsZFVzZVRp
bGVkQmFja2luZ0ZvckZyYW1lVmlldyhyZW5kZXJlcigpLmZyYW1lKCkudmlldygpKTsKKyAgICAg
ICAgbV91c2luZ1RpbGVkQ2FjaGVMYXllciA9IHJlbmRlcmVyKCkucGFnZSgpLmNocm9tZSgpLmNs
aWVudCgpLnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhyZW5kZXJlcigpLnZpZXco
KS5mcmFtZVZpZXcoKSk7CiAgICAgfQogICAgIAogICAgIGNyZWF0ZVByaW1hcnlHcmFwaGljc0xh
eWVyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBv
c2l0b3IuY3BwCmluZGV4IDEyYjYyYzkyODdiYmZmZDllNTc5OGY3NjVkODJjNTcwMzczMWU2ZGQu
LjY1ZmRjNGRmZGE0NmZiZDIyZGJiYzM0N2E5NmIyMWMyZWVkZWMxOTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0zMTAz
LDcgKzMxMDMsNyBAQCBHcmFwaGljc0xheWVyKiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0
ZUxheWVyRm9ySGVhZGVyKGJvb2wgd2FudHNMYXllcikKICAgICBpZiAoU2Nyb2xsaW5nQ29vcmRp
bmF0b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+c2Nyb2xsaW5nQ29vcmRpbmF0b3Io
KSkKICAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmZyYW1lVmlld1Jvb3RMYXllckRpZENo
YW5nZShtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkpOwogCi0gICAgcGFnZSgpLmNocm9tZSgpLmNs
aWVudCgpLmRpZEFkZEhlYWRlckxheWVyKG1fbGF5ZXJGb3JIZWFkZXIuZ2V0KCkpOworICAgIHBh
Z2UoKS5jaHJvbWUoKS5jbGllbnQoKS5kaWRBZGRIZWFkZXJMYXllcigqbV9sYXllckZvckhlYWRl
cik7CiAKICAgICByZXR1cm4gbV9sYXllckZvckhlYWRlci5nZXQoKTsKIH0KQEAgLTMxNDEsNyAr
MzE0MSw3IEBAIEdyYXBoaWNzTGF5ZXIqIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5
ZXJGb3JGb290ZXIoYm9vbCB3YW50c0xheWVyKQogICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRv
ciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQog
ICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+ZnJhbWVWaWV3Um9vdExheWVyRGlkQ2hhbmdl
KG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKSk7CiAKLSAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50
KCkuZGlkQWRkRm9vdGVyTGF5ZXIobV9sYXllckZvckZvb3Rlci5nZXQoKSk7CisgICAgcGFnZSgp
LmNocm9tZSgpLmNsaWVudCgpLmRpZEFkZEZvb3RlckxheWVyKCptX2xheWVyRm9yRm9vdGVyKTsK
IAogICAgIHJldHVybiBtX2xheWVyRm9yRm9vdGVyLmdldCgpOwogfQpAQCAtMzQ2MywxMSArMzQ2
MywxMSBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6YXR0YWNoUm9vdExheWVyKFJvb3RM
YXllckF0dGFjaG1lbnQgYXR0YWNobWVudCkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIFJvb3RMYXllckF0dGFjaGVkVmlhQ2hyb21lQ2xpZW50OiB7CiAgICAgICAgICAgICBGcmFt
ZSYgZnJhbWUgPSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkuZnJhbWUoKTsKLSAgICAgICAgICAg
IHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hSb290R3JhcGhpY3NMYXllcigmZnJhbWUs
IHJvb3RHcmFwaGljc0xheWVyKCkpOworICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVu
dCgpLmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKGZyYW1lLCByb290R3JhcGhpY3NMYXllcigpKTsK
ICAgICAgICAgICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKSB7CiAgICAgICAgICAgICAgICAg
UGFnZU92ZXJsYXlDb250cm9sbGVyJiBwYWdlT3ZlcmxheUNvbnRyb2xsZXIgPSBmcmFtZS5tYWlu
RnJhbWUoKS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKTsKICAgICAgICAgICAgICAgICBwYWdlT3Zl
cmxheUNvbnRyb2xsZXIud2lsbEF0dGFjaFJvb3RMYXllcigpOwotICAgICAgICAgICAgICAgIHBh
Z2UoKS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoJmZy
YW1lLCAmcGFnZU92ZXJsYXlDb250cm9sbGVyLnZpZXdPdmVybGF5Um9vdExheWVyKCkpOworICAg
ICAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hWaWV3T3ZlcmxheUdy
YXBoaWNzTGF5ZXIoZnJhbWUsICZwYWdlT3ZlcmxheUNvbnRyb2xsZXIudmlld092ZXJsYXlSb290
TGF5ZXIoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpA
QCAtMzUwOCw5ICszNTA4LDkgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmRldGFjaFJv
b3RMYXllcigpCiAgICAgfQogICAgIGNhc2UgUm9vdExheWVyQXR0YWNoZWRWaWFDaHJvbWVDbGll
bnQ6IHsKICAgICAgICAgRnJhbWUmIGZyYW1lID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLmZy
YW1lKCk7Ci0gICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hSb290R3JhcGhp
Y3NMYXllcigmZnJhbWUsIDApOworICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0
YWNoUm9vdEdyYXBoaWNzTGF5ZXIoZnJhbWUsIG51bGxwdHIpOwogICAgICAgICBpZiAoZnJhbWUu
aXNNYWluRnJhbWUoKSkKLSAgICAgICAgICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5hdHRh
Y2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoJmZyYW1lLCAwKTsKKyAgICAgICAgICAgIHBhZ2Uo
KS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoZnJhbWUs
IG51bGxwdHIpOwogICAgIH0KICAgICBicmVhazsKICAgICBjYXNlIFJvb3RMYXllclVuYXR0YWNo
ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVudUxpc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcAppbmRleCBk
MmMwMmVmOWQ2MGUwNmM2ODY2NzIzZTQ3NDA3MzdhZDhjMGMzODIxLi4zN2M4M2U4ZDFmNWViYjA1
N2IxMTBjYzg4ODEwNTQ1MTJjZDRkNDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWVudUxpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZW51TGlzdC5jcHAKQEAgLTM3MSw3ICszNzEsNyBAQCB2b2lkIFJlbmRlck1lbnVMaXN0
OjpzaG93UG9wdXAoKQogICAgIC8vIGluc2lkZSB0aGUgc2hvd1BvcHVwIGNhbGwgYW5kIGl0IHdv
dWxkIGZhaWwuCiAgICAgY3JlYXRlSW5uZXJCbG9jaygpOwogICAgIGlmICghbV9wb3B1cCkKLSAg
ICAgICAgbV9wb3B1cCA9IGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jcmVhdGVQb3B1cE1l
bnUodGhpcyk7CisgICAgICAgIG1fcG9wdXAgPSBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCku
Y3JlYXRlUG9wdXBNZW51KCp0aGlzKTsKICAgICBtX3BvcHVwSXNWaXNpYmxlID0gdHJ1ZTsKIAog
ICAgIC8vIENvbXB1dGUgdGhlIHRvcCBsZWZ0IHRha2luZyB0cmFuc2Zvcm1zIGludG8gYWNjb3Vu
dCwgYnV0IHVzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNl
YXJjaEZpZWxkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVs
ZC5jcHAKaW5kZXggYjQ2ZDhlZDcxODYwOGNhZmU2MTY5M2UxNGJlMTNlODZkNGNhODIyYy4uY2E5
MDA1MTg0ZGIyOWFjOTI3NzBkYTEyNzU1ODE0YzYwODA2MjFjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCkBAIC05Nyw3ICs5Nyw3IEBAIHZv
aWQgUmVuZGVyU2VhcmNoRmllbGQ6OmFkZFNlYXJjaFJlc3VsdCgpCiAKICAgICBjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUgPSBhdXRvc2F2ZU5hbWUoKTsKICAgICBpZiAoIW1fc2VhcmNoUG9wdXAp
Ci0gICAgICAgIG1fc2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9w
dXBNZW51KHRoaXMpOworICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNy
ZWF0ZVNlYXJjaFBvcHVwTWVudSgqdGhpcyk7CiAKICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVj
ZW50U2VhcmNoZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hlcyk7CiB9CkBAIC0xMDgsNyArMTA4LDcg
QEAgdm9pZCBSZW5kZXJTZWFyY2hGaWVsZDo6c2hvd1BvcHVwKCkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgaWYgKCFtX3NlYXJjaFBvcHVwKQotICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgp
LmNocm9tZSgpLmNyZWF0ZVNlYXJjaFBvcHVwTWVudSh0aGlzKTsKKyAgICAgICAgbV9zZWFyY2hQ
b3B1cCA9IHBhZ2UoKS5jaHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUoKnRoaXMpOwogCiAg
ICAgaWYgKCFtX3NlYXJjaFBvcHVwLT5lbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTIw
MSw3ICsyMDEsNyBAQCB2b2lkIFJlbmRlclNlYXJjaEZpZWxkOjp2YWx1ZUNoYW5nZWQodW5zaWdu
ZWQgbGlzdEluZGV4LCBib29sIGZpcmVFdmVudHMpCiAgICAgICAgICAgICBjb25zdCBBdG9taWNT
dHJpbmcmIG5hbWUgPSBhdXRvc2F2ZU5hbWUoKTsKICAgICAgICAgICAgIGlmICghbmFtZS5pc0Vt
cHR5KCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0gICAgICAgICAg
ICAgICAgICAgIG1fc2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9w
dXBNZW51KHRoaXMpOworICAgICAgICAgICAgICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgp
LmNocm9tZSgpLmNyZWF0ZVNlYXJjaFBvcHVwTWVudSgqdGhpcyk7CiAgICAgICAgICAgICAgICAg
bV9zZWFyY2hQb3B1cC0+c2F2ZVJlY2VudFNlYXJjaGVzKG5hbWUsIG1fcmVjZW50U2VhcmNoZXMp
OwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHQUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcApp
bmRleCBiZWIwYTM5NTNiYzcyZmVlMTNiMzUzOGZlNTk3Y2QxOTA5ZDlkM2JlLi40MjAyM2ZhNzY4
NjU0ZTEzYWY2ZDMyNjI4MmFlMzgxNjdhY2E5ZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVu
dC5jcHAKQEAgLTE5Nyw3ICsxOTcsNyBAQCBib29sIFNWR0FFbGVtZW50Ojppc0tleWJvYXJkRm9j
dXNhYmxlKEtleWJvYXJkRXZlbnQmIGV2ZW50KSBjb25zdAogICAgICAgICByZXR1cm4gU1ZHRWxl
bWVudDo6aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCk7CiAKICAgICBpZiAoaXNMaW5rKCkpCi0g
ICAgICAgIHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLnRhYnNUb0xp
bmtzKCZldmVudCk7CisgICAgICAgIHJldHVybiBkb2N1bWVudCgpLmZyYW1lKCktPmV2ZW50SGFu
ZGxlcigpLnRhYnNUb0xpbmtzKGV2ZW50KTsKIAogICAgIHJldHVybiBTVkdFbGVtZW50Ojppc0tl
eWJvYXJkRm9jdXNhYmxlKGV2ZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
TW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcAppbmRleCBmZDU2NGFmZjE0MDRlNTg4YTlkYzQxYTYz
NjdkYjJmMGNiZGExMjhiLi4wMDQ0MDQxYmY3NTc4YzNjMmE4NjE3YjdmZTc2NmZkMmNiY2IyZDcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQu
Y3BwCkBAIC01MSw3ICs1MSw3IEBAIE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6TW9ja1BhZ2VPdmVy
bGF5Q2xpZW50KCkKIFJlZjxNb2NrUGFnZU92ZXJsYXk+IE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6
aW5zdGFsbE92ZXJsYXkoTWFpbkZyYW1lJiBtYWluRnJhbWUsIFBhZ2VPdmVybGF5OjpPdmVybGF5
VHlwZSBvdmVybGF5VHlwZSkKIHsKICAgICBhdXRvIG92ZXJsYXkgPSBQYWdlT3ZlcmxheTo6Y3Jl
YXRlKCp0aGlzLCBvdmVybGF5VHlwZSk7Ci0gICAgbWFpbkZyYW1lLnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheShvdmVybGF5LnB0cigpLCBQYWdlT3ZlcmxheTo6RmFk
ZU1vZGU6OkRvTm90RmFkZSk7CisgICAgbWFpbkZyYW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigp
Lmluc3RhbGxQYWdlT3ZlcmxheShvdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90
RmFkZSk7CiAKICAgICBhdXRvIG1vY2tPdmVybGF5ID0gTW9ja1BhZ2VPdmVybGF5OjpjcmVhdGUo
b3ZlcmxheS5wdHIoKSk7CiAgICAgbV9vdmVybGF5cy5hZGQobW9ja092ZXJsYXkucHRyKCkpOwpA
QCAtNjUsNyArNjUsNyBAQCB2b2lkIE1vY2tQYWdlT3ZlcmxheUNsaWVudDo6dW5pbnN0YWxsQWxs
T3ZlcmxheXMoKQogICAgICAgICBSZWZQdHI8TW9ja1BhZ2VPdmVybGF5PiBtb2NrT3ZlcmxheSA9
IG1fb3ZlcmxheXMudGFrZUFueSgpOwogICAgICAgICBQYWdlT3ZlcmxheUNvbnRyb2xsZXIqIG92
ZXJsYXlDb250cm9sbGVyID0gbW9ja092ZXJsYXktPm92ZXJsYXkoKS0+Y29udHJvbGxlcigpOwog
ICAgICAgICBBU1NFUlQob3ZlcmxheUNvbnRyb2xsZXIpOwotICAgICAgICBvdmVybGF5Q29udHJv
bGxlci0+dW5pbnN0YWxsUGFnZU92ZXJsYXkobW9ja092ZXJsYXktPm92ZXJsYXkoKSwgUGFnZU92
ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgICAgICBvdmVybGF5Q29udHJvbGxlci0+
dW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1vY2tPdmVybGF5LT5vdmVybGF5KCksIFBhZ2VPdmVybGF5
OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oIGIvU291cmNlL1dl
YktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmgKaW5kZXggNmNkNzAz
ZDg3M2JkODY1OTgwMDNlMzEzZTJlNGQ4MmRkYjg2MDc4MS4uMTQ2NDQ4Yjc1MjVlNTU2MTcxY2Vk
YjZkOTQ1ZDBhZGMwZmY2NTcyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmgKKysrIGIvU291cmNlL1dlYktpdC9pb3MvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLmgKQEAgLTQyLDkgKzQyLDkgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGZvY3VzKCkgZmluYWw7CiAgICAgdm9pZCB0YWtlRm9jdXMoV2ViQ29yZTo6
Rm9jdXNEaXJlY3Rpb24pIGZpbmFsIHsgfQogCi0gICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQo
V2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYpIGZpbmFsOwotICAgIGJvb2wgcnVu
SmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYpIGZp
bmFsOwotICAgIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSosIGNvbnN0
IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVmYXVsdFZhbHVlLCBX
VEY6OlN0cmluZyYgcmVzdWx0KSBmaW5hbDsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChX
ZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdURjo6U3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBydW5K
YXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdURjo6U3RyaW5nJikgZmlu
YWw7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lJiwgY29uc3Qg
V1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFdU
Rjo6U3RyaW5nJiByZXN1bHQpIGZpbmFsOwogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29y
ZTo6RnJhbWUmLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciYpIGZpbmFsOwogCkBAIC01MywxMyArNTMs
MTMgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgdm9pZCBkaWRSZWNlaXZlTW9iaWxlRG9jVHlw
ZShib29sKSBmaW5hbDsKLSAgICB2b2lkIHNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhXZWJD
b3JlOjpGcmFtZSosIGJvb2wpIGZpbmFsOwotICAgIHZvaWQgb2JzZXJ2ZWRDb250ZW50Q2hhbmdl
KFdlYkNvcmU6OkZyYW1lKikgZmluYWw7Ci0gICAgdm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VPYnNl
cnZlcnMoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKKyAgICB2b2lkIHNldE5lZWRzU2Nyb2xsTm90
aWZpY2F0aW9ucyhXZWJDb3JlOjpGcmFtZSYsIGJvb2wpIGZpbmFsOworICAgIHZvaWQgb2JzZXJ2
ZWRDb250ZW50Q2hhbmdlKFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CisgICAgdm9pZCBjbGVhckNv
bnRlbnRDaGFuZ2VPYnNlcnZlcnMoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKICAgICBXZWJDb3Jl
OjpGbG9hdFNpemUgc2NyZWVuU2l6ZSgpIGNvbnN0IGZpbmFsOwogICAgIFdlYkNvcmU6OkZsb2F0
U2l6ZSBhdmFpbGFibGVTY3JlZW5TaXplKCkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBkaXNwYXRj
aFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5nZShjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3Vt
ZW50cyYpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgbm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNj
cm9sbGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lKikgZmluYWw7CisgICAgdm9pZCBub3RpZnlSZXZl
YWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKICAg
ICBib29sIGlzU3RvcHBpbmcoKSBmaW5hbDsKICAgICB2b2lkIGRpZExheW91dChMYXlvdXRUeXBl
KSBmaW5hbDsKICAgICB2b2lkIGRpZFN0YXJ0T3ZlcmZsb3dTY3JvbGwoKSBmaW5hbDsKQEAgLTY3
LDExICs2NywxMSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzdXBwcmVzc0Zvcm1Ob3RpZmljYXRp
b25zKCkgZmluYWw7CiAgICAgdm9pZCByZXN0b3JlRm9ybU5vdGlmaWNhdGlvbnMoKSBmaW5hbDsK
LSAgICAKLSAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBXZWJDb3JlOjpOb2RlKikgZmlu
YWw7Ci0gICAgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBXZWJDb3JlOjpOb2RlKikgZmluYWw7
CiAKLSAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOworICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKFdl
YkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKKyAgICB2b2lkIGVsZW1lbnREaWRCbHVyKFdlYkNvcmU6
OkVsZW1lbnQmKSBmaW5hbDsKKworICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2Vi
Q29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7CiAKICAgICB2b2lk
IGRpZEZsdXNoQ29tcG9zaXRpbmdMYXllcnMoKSBmaW5hbDsKIApAQCAtODMsOCArODMsOCBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgp
IGZpbmFsOwogICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0Rp
cmVjdGlvbigpIGZpbmFsOwotICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBv
cHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBmaW5hbDsKLSAgICBSZWZQ
dHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29y
ZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6OlBv
cHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYpIGNvbnN0
IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJj
aFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBmaW5hbDsKIAogICAg
IHZvaWQgd2ViQXBwT3JpZW50YXRpb25zVXBkYXRlZCgpIGZpbmFsOwogICAgIHZvaWQgZm9jdXNl
ZEVsZW1lbnRDaGFuZ2VkKFdlYkNvcmU6OkVsZW1lbnQqKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5tbQppbmRl
eCA1M2U4ZjBlYmJlNTI4NDMyYTBmOWU0YmU0Y2ZjZDQyM2ZkNzNlMDM5Li42ODk3MWQyNjZmMzVm
NDBhNzk5YTZjMDQ1Yjc5NTJhMTEwYTIwMDk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2lv
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dC9pb3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50SU9TLm1tCkBAIC0xMDMsMjUgKzEw
MywyNSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudElPUzo6Zm9jdXMoKQogICAgIFtbd2ViVmlldygp
IF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3Rm9jdXM6d2ViVmlldygpXTsKIH0KIAotdm9p
ZCBXZWJDaHJvbWVDbGllbnRJT1M6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNv
bnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlKQordm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OnJ1bkph
dmFTY3JpcHRBbGVydChGcmFtZSYgZnJhbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlKQog
ewogICAgIFdlYlRocmVhZExvY2tQdXNoTW9kYWwoKTsKLSAgICBbW3dlYlZpZXcoKSBfVUlEZWxl
Z2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3KCkgcnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxX
aXRoTWVzc2FnZTptZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6a2l0KGZyYW1lKV07CisgICAgW1t3
ZWJWaWV3KCkgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldygpIHJ1bkphdmFT
Y3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6bWVzc2FnZSBpbml0aWF0ZWRCeUZyYW1lOmtpdCgm
ZnJhbWUpXTsKICAgICBXZWJUaHJlYWRMb2NrUG9wTW9kYWwoKTsKIH0KIAotYm9vbCBXZWJDaHJv
bWVDbGllbnRJT1M6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgV1RG
OjpTdHJpbmcmIG1lc3NhZ2UpCitib29sIFdlYkNocm9tZUNsaWVudElPUzo6cnVuSmF2YVNjcmlw
dENvbmZpcm0oRnJhbWUmIGZyYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSkKIHsKICAg
ICBXZWJUaHJlYWRMb2NrUHVzaE1vZGFsKCk7Ci0gICAgYm9vbCByZXN1bHQgPSBbW3dlYlZpZXco
KSBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3KCkgcnVuSmF2YVNjcmlwdENv
bmZpcm1QYW5lbFdpdGhNZXNzYWdlOm1lc3NhZ2UgaW5pdGlhdGVkQnlGcmFtZTpraXQoZnJhbWUp
XTsKKyAgICBib29sIHJlc3VsdCA9IFtbd2ViVmlldygpIF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3
ZWJWaWV3OndlYlZpZXcoKSBydW5KYXZhU2NyaXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6bWVz
c2FnZSBpbml0aWF0ZWRCeUZyYW1lOmtpdCgmZnJhbWUpXTsKICAgICBXZWJUaHJlYWRMb2NrUG9w
TW9kYWwoKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudElP
Uzo6cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNvbnN0IFdURjo6U3RyaW5nJiBw
cm9tcHQsIGNvbnN0IFdURjo6U3RyaW5nJiBkZWZhdWx0VGV4dCwgV1RGOjpTdHJpbmcmIHJlc3Vs
dCkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50SU9TOjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiBm
cmFtZSwgY29uc3QgV1RGOjpTdHJpbmcmIHByb21wdCwgY29uc3QgV1RGOjpTdHJpbmcmIGRlZmF1
bHRUZXh0LCBXVEY6OlN0cmluZyYgcmVzdWx0KQogewogICAgIFdlYlRocmVhZExvY2tQdXNoTW9k
YWwoKTsKLSAgICByZXN1bHQgPSBbW3dlYlZpZXcoKSBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2Vi
Vmlldzp3ZWJWaWV3KCkgcnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDpwcm9t
cHQgZGVmYXVsdFRleHQ6ZGVmYXVsdFRleHQgaW5pdGlhdGVkQnlGcmFtZTpraXQoZnJhbWUpXTsK
KyAgICByZXN1bHQgPSBbW3dlYlZpZXcoKSBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3
ZWJWaWV3KCkgcnVuSmF2YVNjcmlwdFRleHRJbnB1dFBhbmVsV2l0aFByb21wdDpwcm9tcHQgZGVm
YXVsdFRleHQ6ZGVmYXVsdFRleHQgaW5pdGlhdGVkQnlGcmFtZTpraXQoJmZyYW1lKV07CiAgICAg
V2ViVGhyZWFkTG9ja1BvcE1vZGFsKCk7CiAgICAgcmV0dXJuICFyZXN1bHQuaXNOdWxsKCk7CiB9
CkBAIC0xNzEsMjYgKzE3MSwyNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudElPUzo6ZGlkUmVjZWl2
ZU1vYmlsZURvY1R5cGUoYm9vbCBpc01vYmlsZURvY3R5cGUpCiAgICAgICAgIFtbd2ViVmlldygp
IF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3RGlkUmVjZWl2ZU1vYmlsZURvY1R5cGU6
d2ViVmlldygpXTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OnNldE5lZWRzU2Nyb2xs
Tm90aWZpY2F0aW9ucyhXZWJDb3JlOjpGcmFtZSogZnJhbWUsIGJvb2wgZmxhZykKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50SU9TOjpzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoV2ViQ29yZTo6RnJh
bWUmIGZyYW1lLCBib29sIGZsYWcpCiB7Ci0gICAgW1t3ZWJWaWV3KCkgX1VJS2l0RGVsZWdhdGVG
b3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldygpIG5lZWRzU2Nyb2xsTm90aWZpY2F0aW9uczpbTlNO
dW1iZXIgbnVtYmVyV2l0aEJvb2w6ZmxhZ10gZm9yRnJhbWU6a2l0KGZyYW1lKV07CisgICAgW1t3
ZWJWaWV3KCkgX1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldygpIG5lZWRz
U2Nyb2xsTm90aWZpY2F0aW9uczpbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6ZmxhZ10gZm9yRnJh
bWU6a2l0KCZmcmFtZSldOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudElPUzo6b2JzZXJ2ZWRD
b250ZW50Q2hhbmdlKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
SU9TOjpvYnNlcnZlZENvbnRlbnRDaGFuZ2UoV2ViQ29yZTo6RnJhbWUmIGZyYW1lKQogewotICAg
IFtbd2ViVmlldygpIF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZpZXcoKSBk
aWRPYnNlcnZlRGVmZXJyZWRDb250ZW50Q2hhbmdlOldLT2JzZXJ2ZWRDb250ZW50Q2hhbmdlKCkg
Zm9yRnJhbWU6a2l0KGZyYW1lKV07CisgICAgW1t3ZWJWaWV3KCkgX1VJS2l0RGVsZWdhdGVGb3J3
YXJkZXJdIHdlYlZpZXc6d2ViVmlldygpIGRpZE9ic2VydmVEZWZlcnJlZENvbnRlbnRDaGFuZ2U6
V0tPYnNlcnZlZENvbnRlbnRDaGFuZ2UoKSBmb3JGcmFtZTpraXQoJmZyYW1lKV07CiB9CiAKLXZv
aWQgV2ViQ2hyb21lQ2xpZW50SU9TOjpjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoV2ViQ29y
ZTo6RnJhbWUqIGZyYW1lKQordm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OmNsZWFyQ29udGVudENo
YW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSYgZnJhbWUpCiB7CiAgICAgQVNTRVJUKFdlYlRo
cmVhZENvdW50T2ZPYnNlcnZlZENvbnRlbnRNb2RpZmllcnMoKSA+IDApOwogICAgIGlmIChXZWJU
aHJlYWRDb3VudE9mT2JzZXJ2ZWRDb250ZW50TW9kaWZpZXJzKCkgPiAwKSB7CiAgICAgICAgIFdl
YlRocmVhZENsZWFyT2JzZXJ2ZWRDb250ZW50TW9kaWZpZXJzKCk7CiAgICAgICAgIG9ic2VydmVk
Q29udGVudENoYW5nZShmcmFtZSk7Ci0gICAgfSAgICAgICAgCisgICAgfQogfQogCi1zdGF0aWMg
aW5saW5lIE5TRGljdGlvbmFyeSogZGljdGlvbmFyeUZvclZpZXdwb3J0QXJndW1lbnRzKGNvbnN0
IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJiBhcmd1bWVudHMpCitzdGF0aWMgaW5saW5lIE5T
RGljdGlvbmFyeSAqZGljdGlvbmFyeUZvclZpZXdwb3J0QXJndW1lbnRzKGNvbnN0IFdlYkNvcmU6
OlZpZXdwb3J0QXJndW1lbnRzJiBhcmd1bWVudHMpCiB7CiAgICAgcmV0dXJuIEB7IEAiaW5pdGlh
bC1zY2FsZSI6QChhcmd1bWVudHMuem9vbSksCiAgICAgICAgICAgICAgIEAibWluaW11bS1zY2Fs
ZSI6QChhcmd1bWVudHMubWluWm9vbSksCkBAIC0yMTgsOSArMjE4LDkgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnRJT1M6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFdl
YkNvcmU6OlZpZXcKICAgICBbW3dlYlZpZXcoKSBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gd2Vi
Vmlldzp3ZWJWaWV3KCkgZGlkUmVjZWl2ZVZpZXdwb3J0QXJndW1lbnRzOmRpY3Rpb25hcnlGb3JW
aWV3cG9ydEFyZ3VtZW50cyhhcmd1bWVudHMpXTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnRJ
T1M6Om5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShXZWJDb3JlOjpGcmFt
ZSogZnJhbWUpCit2b2lkIFdlYkNocm9tZUNsaWVudElPUzo6bm90aWZ5UmV2ZWFsZWRTZWxlY3Rp
b25CeVNjcm9sbGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lJiBmcmFtZSkKIHsKLSAgICBbW3dlYlZp
ZXcoKSBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gcmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGlu
Z1dlYkZyYW1lOmtpdChmcmFtZSldOworICAgIFtbd2ViVmlldygpIF9VSUtpdERlbGVnYXRlRm9y
d2FyZGVyXSByZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nV2ViRnJhbWU6a2l0KCZmcmFtZSld
OwogfQogCiBib29sIFdlYkNocm9tZUNsaWVudElPUzo6aXNTdG9wcGluZygpCkBAIC0yNTYsMTYg
KzI1NiwxNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudElPUzo6cmVzdG9yZUZvcm1Ob3RpZmljYXRp
b25zKCkKICAgICAgICAgbV9mb3JtTm90aWZpY2F0aW9uU3VwcHJlc3Npb25zID0gMDsKIH0KIAot
dm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OmVsZW1lbnREaWRGb2N1cyhjb25zdCBXZWJDb3JlOjpO
b2RlKiBub2RlKQordm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OmVsZW1lbnREaWRGb2N1cyhXZWJD
b3JlOjpFbGVtZW50JiBlbGVtZW50KQogewogICAgIGlmIChtX2Zvcm1Ob3RpZmljYXRpb25TdXBw
cmVzc2lvbnMgPD0gMCkKLSAgICAgICAgW1t3ZWJWaWV3KCkgX1VJS2l0RGVsZWdhdGVGb3J3YXJk
ZXJdIHdlYlZpZXc6d2ViVmlldygpIGVsZW1lbnREaWRGb2N1c05vZGU6a2l0KGNvbnN0X2Nhc3Q8
V2ViQ29yZTo6Tm9kZSo+KG5vZGUpKV07CisgICAgICAgIFtbd2ViVmlldygpIF9VSUtpdERlbGVn
YXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZpZXcoKSBlbGVtZW50RGlkRm9jdXNOb2RlOmtpdCgm
ZWxlbWVudCldOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudElPUzo6ZWxlbWVudERpZEJsdXIo
Y29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50SU9TOjplbGVt
ZW50RGlkQmx1cihXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50KQogewogICAgIGlmIChtX2Zvcm1O
b3RpZmljYXRpb25TdXBwcmVzc2lvbnMgPD0gMCkKLSAgICAgICAgW1t3ZWJWaWV3KCkgX1VJS2l0
RGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldygpIGVsZW1lbnREaWRCbHVyTm9kZTpr
aXQoY29uc3RfY2FzdDxXZWJDb3JlOjpOb2RlKj4obm9kZSkpXTsKKyAgICAgICAgW1t3ZWJWaWV3
KCkgX1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldygpIGVsZW1lbnREaWRC
bHVyTm9kZTpraXQoJmVsZW1lbnQpXTsKIH0KIAogYm9vbCBXZWJDaHJvbWVDbGllbnRJT1M6OnNl
bGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKQEAgLTI3OCwxNyArMjc4LDE3IEBA
IGJvb2wgV2ViQ2hyb21lQ2xpZW50SU9TOjpzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVX
cml0aW5nRGlyZWN0aW9uKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotUmVmUHRyPFdlYkNvcmU6
OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50SU9TOjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6
UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51
PiBXZWJDaHJvbWVDbGllbnRJT1M6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVD
bGllbnQmIGNsaWVudCkgY29uc3QKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVu
dUlPUyhjbGllbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBvcHVwTWVudUlPUygmY2xp
ZW50KSk7CiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNs
aWVudElPUzo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCog
Y2xpZW50KSBjb25zdAorUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21l
Q2xpZW50SU9TOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50
JiBjbGllbnQpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1l
bnVJT1MoY2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQb3B1cE1lbnVJ
T1MoJmNsaWVudCkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudElPUzo6YXR0YWNoUm9vdEdy
YXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQordm9pZCBX
ZWJDaHJvbWVDbGllbnRJT1M6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhp
Y3NMYXllciogZ3JhcGhpY3NMYXllcikKIHsKICAgICAvLyBGSVhNRTogZm9yIG5vbi1yb290IGZy
YW1lcyB3ZSByZWx5IG9uIFJlbmRlclZpZXcgcG9zaXRpb25pbmcgdGhlIHJvb3QgbGF5ZXIsCiAg
ICAgLy8gd2hpY2ggaXMgYSBoYWNrLiA8cmRhcjovL3Byb2JsZW0vNTkwNjE0Nj4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVR
dW90YU1hbmFnZXIubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBs
aWNhdGlvbkNhY2hlUXVvdGFNYW5hZ2VyLm1tCmluZGV4IDNiM2MzYTQyOTRjMTdjNTc4YjgxOTE1
ZGEwYjFjNGY4YmZhMjNlYmEuLjBkNDgyYjRkZDkyNWJjMGI4YjhkNDI2MWVmYzJjN2E2NTU3NmUw
OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxp
Y2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbQpAQCAtNTksNyArNTks
OSBAQCAtICh1bnNpZ25lZCBsb25nIGxvbmcpdXNhZ2UKIC0gKHVuc2lnbmVkIGxvbmcgbG9uZylx
dW90YQogewogICAgIGxvbmcgbG9uZyBxdW90YTsKLSAgICBpZiAod2ViQXBwbGljYXRpb25DYWNo
ZVN0b3JhZ2UoKS5jYWxjdWxhdGVRdW90YUZvck9yaWdpbihbX29yaWdpbiBfY29yZV0sIHF1b3Rh
KSkKKyAgICBpZiAoIV9vcmlnaW4pCisgICAgICAgIHJldHVybiAwOworICAgIGlmICh3ZWJBcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZSgpLmNhbGN1bGF0ZVF1b3RhRm9yT3JpZ2luKCpbX29yaWdpbiBf
Y29yZV0sIHF1b3RhKSkKICAgICAgICAgcmV0dXJuIHF1b3RhOwogICAgIHJldHVybiAwOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aAppbmRleCBmNGYwOTZjNWQ2NDczZWJjNmU3YWJkNTgzYjZkZmVmNGFhYTRkMTU5Li43ZDhmM2I4
N2Y3ZTMyNDUxNmRiMDYxNWJlNThkOGQ5MDU1ODI0YjhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtNTksNyArNTksNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgZm9jdXNlZEVsZW1lbnRDaGFuZ2VkKFdlYkNvcmU6OkVsZW1l
bnQqKSBvdmVycmlkZTsKICAgICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoV2ViQ29yZTo6RnJh
bWUqKSBmaW5hbDsKIAotICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpG
cmFtZSosIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpX
aW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbDsK
KyAgICBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBX
ZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMm
LCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWw7CiAgICAgdm9pZCBzaG93
KCkgZmluYWw7CiAKICAgICBib29sIGNhblJ1bk1vZGFsKCkgZmluYWw7CkBAIC03OSwxNiArNzks
MTYgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpIGZpbmFsOwogCi0g
ICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNz
YWdlTGV2ZWwsIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVy
LCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFdURjo6U3RyaW5nJiBzb3VyY2VVUkwpIGZp
bmFsOworICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShKU0M6Ok1lc3NhZ2VTb3VyY2UsIEpT
Qzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1i
ZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpIGZpbmFs
OwogCiAgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSBmaW5hbDsKLSAg
ICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBXVEY6OlN0cmluZyYgbWVz
c2FnZSwgV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKKyAgICBib29sIHJ1bkJlZm9yZVVubG9hZENv
bmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIFdlYkNvcmU6OkZyYW1lJikgZmluYWw7
CiAKICAgICB2b2lkIGNsb3NlV2luZG93U29vbigpIGZpbmFsOwogCi0gICAgdm9pZCBydW5KYXZh
U2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYpIG92ZXJyaWRl
OwotICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBX
VEY6OlN0cmluZyYpIG92ZXJyaWRlOwotICAgIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJD
b3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmlu
ZyYgZGVmYXVsdFZhbHVlLCBXVEY6OlN0cmluZyYgcmVzdWx0KSBvdmVycmlkZTsKKyAgICB2b2lk
IHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYpIG92ZXJy
aWRlOworICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUmLCBjb25z
dCBTdHJpbmcmKSBvdmVycmlkZTsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29y
ZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZh
bHVlLCBTdHJpbmcmIHJlc3VsdCkgb3ZlcnJpZGU7CiAKICAgICBib29sIHN1cHBvcnRzSW1tZWRp
YXRlSW52YWxpZGF0aW9uKCkgZmluYWw7CiAgICAgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOwpAQCAtMTA1LDI5ICsxMDUsMjkgQEAgcHJpdmF0
ZToKICNlbmRpZgogCiAgICAgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgp
IGNvbnN0IGZpbmFsOwotICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFt
ZSosIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIGNvbnRl
bnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJikg
Y29uc3QgZmluYWw7CiAgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpIGNvbnN0IGZpbmFsOwogCi0gICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0
IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0
IFN0cmluZyYpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgp
IGNvbnN0IGZpbmFsIHsgfQogICAgIGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdl
QmVCdXR0b24oV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmls
aXR5UmVhc29uKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9u
Q2xpY2tlZChXZWJDb3JlOjpFbGVtZW50KiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6
OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHVuYXZh
aWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVtZW50JiwgV2ViQ29yZTo6UmVu
ZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5h
bDsKICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRl
c3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSBmaW5hbDsKIAotICAgIHZvaWQgc2V0
VG9vbFRpcChjb25zdCBXVEY6OlN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24pIGZpbmFs
OworICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0
aW9uKSBmaW5hbDsKIAotICAgIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKLSAg
ICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6
U3RyaW5nJiBkYXRhYmFzZU5hbWUsIFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscykgZmluYWw7Cisg
ICAgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOworICAgIHZvaWQgZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUs
IFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscykgZmluYWw7CiAgICAgdm9pZCByZWFjaGVkTWF4QXBw
Q2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpIGZpbmFsOwotICAgIHZvaWQgcmVhY2hlZEFw
cGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGludDY0
X3QgdG90YWxTcGFjZU5lZWRlZCkgZmluYWw7CisgICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCB0b3RhbFNw
YWNlTmVlZGVkKSBmaW5hbDsKIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICB2
b2lkIGFubm90YXRlZFJlZ2lvbnNDaGFuZ2VkKCkgZmluYWw7CiAjZW5kaWYKIAogICAgIHZvaWQg
cnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6RmlsZUNob29zZXImKSBvdmVy
cmlkZTsKLSAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5n
PiYsIFdlYkNvcmU6OkZpbGVJY29uTG9hZGVyJikgZmluYWw7CisgICAgdm9pZCBsb2FkSWNvbkZv
ckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXImKSBm
aW5hbDsKIAogI2lmICFQTEFURk9STShJT1MpCiAgICAgdm9pZCBzZXRDdXJzb3IoY29uc3QgV2Vi
Q29yZTo6Q3Vyc29yJikgZmluYWw7CkBAIC0xMzUsNyArMTM1LDcgQEAgcHJpdmF0ZToKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdl
YkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKFdlYkNvcmU6OkNvbG9yQ2hv
b3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgZmluYWw7CisgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKFdlYkNvcmU6
OkNvbG9yQ2hvb3NlckNsaWVudCYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgZmluYWw7CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCkBAIC0xNTEsMTYgKzE1MSwxNiBAQCBwcml2
YXRlOgogICAgIHZvaWQgZW5hYmxlU3VkZGVuVGVybWluYXRpb24oKSBmaW5hbDsKICAgICB2b2lk
IGRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpIGZpbmFsOwogCi0gICAgYm9vbCBzaG91bGRSZXBs
YWNlV2l0aEdlbmVyYXRlZEZpbGVGb3JVcGxvYWQoY29uc3QgV1RGOjpTdHJpbmcmIHBhdGgsIFdU
Rjo6U3RyaW5nICZnZW5lcmF0ZWRGaWxlbmFtZSkgZmluYWw7Ci0gICAgV1RGOjpTdHJpbmcgZ2Vu
ZXJhdGVSZXBsYWNlbWVudEZpbGUoY29uc3QgV1RGOjpTdHJpbmcmIHBhdGgpIGZpbmFsOworICAg
IGJvb2wgc2hvdWxkUmVwbGFjZVdpdGhHZW5lcmF0ZWRGaWxlRm9yVXBsb2FkKGNvbnN0IFN0cmlu
ZyYgcGF0aCwgU3RyaW5nICZnZW5lcmF0ZWRGaWxlbmFtZSkgZmluYWw7CisgICAgU3RyaW5nIGdl
bmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkgZmluYWw7CiAKLSAgICB2
b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBXZWJDb3JlOjpOb2RlKikgb3ZlcnJpZGU7Ci0gICAg
dm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBXZWJDb3JlOjpOb2RlKikgb3ZlcnJpZGU7CisgICAg
dm9pZCBlbGVtZW50RGlkRm9jdXMoV2ViQ29yZTo6RWxlbWVudCYpIG92ZXJyaWRlOworICAgIHZv
aWQgZWxlbWVudERpZEJsdXIoV2ViQ29yZTo6RWxlbWVudCYpIG92ZXJyaWRlOwogCiAgICAgYm9v
bCBzaG91bGRQYWludEVudGlyZUNvbnRlbnRzKCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIGF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIG92ZXJyaWRlOwotICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVy
KFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOworICAgIHZv
aWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFw
aGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNz
TGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7CiAg
ICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgZmluYWw7CiAg
ICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIGZpbmFsOwogCkBAIC0xODks
MTYgKzE4OSwxNiBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCi0gICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6
OkVsZW1lbnQqLCBib29sIHdpdGhLZXlib2FyZCkgZmluYWw7Ci0gICAgdm9pZCBlbnRlckZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBmaW5hbDsKLSAgICB2b2lkIGV4aXRG
dWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KikgZmluYWw7CisgICAgYm9vbCBz
dXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmLCBib29s
IHdpdGhLZXlib2FyZCkgZmluYWw7CisgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKKyAgICB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxl
bWVudChXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAogICAgIGJvb2wgc2VsZWN0
SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVyYWwoKSBvdmVycmlkZTsKICAgICBib29sIHNlbGVj
dEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKSBvdmVycmlkZTsKICAg
ICBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPFdlYkNvcmU6
OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCopIGNv
bnN0IG92ZXJyaWRlOwotICAgIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0
ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBvdmVycmlk
ZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29y
ZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3Qgb3ZlcnJpZGU7CisgICAgUmVmUHRyPFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVu
dUNsaWVudCYpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgdm9pZCB3aGVlbEV2ZW50SGFuZGxlcnND
aGFuZ2VkKGJvb2wpIGZpbmFsIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggMGVjZmY4ZDVmYWIxZWU1ZmM1NTI5
MmRjMDRhODA1YWQyY2NjZGVkOC4uZTQ5NjdiOWY4YzM3YzYyNWI1MDU1YmM0MjkxYTc1OTU5ZjA1
ZmFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbQpAQCAtMzAsNiArMzAsNyBAQAogI2ltcG9ydCAiV2ViQ2hyb21lQ2xpZW50
LmgiCiAKICNpbXBvcnQgIkRPTUVsZW1lbnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NSFRNTElu
cHV0RWxlbWVudEludGVybmFsLmgiCiAjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKICNpbXBv
cnQgIlBvcHVwTWVudU1hYy5oIgogI2ltcG9ydCAiU2VhcmNoUG9wdXBNZW51TWFjLmgiCkBAIC0y
MjIsNyArMjIzLDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRFbGVtZW50Q2hhbmdl
ZChFbGVtZW50KiBlbGVtZW50KQogICAgIGlmICghaXM8SFRNTElucHV0RWxlbWVudD4oZWxlbWVu
dCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEhUTUxJbnB1dEVsZW1lbnQmIGlucHV0RWxlbWVu
dCA9IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KCplbGVtZW50KTsKKyAgICBhdXRvJiBpbnB1
dEVsZW1lbnQgPSBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PigqZWxlbWVudCk7CiAgICAgaWYg
KCFpbnB1dEVsZW1lbnQuaXNUZXh0KCkpCiAgICAgICAgIHJldHVybjsKIApAQCAtMjMzLDE0ICsy
MzQsMTQgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUq
KQogewogfQogCi1QYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJh
bWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVy
ZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKQorUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVXaW5kb3coRnJhbWUmIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2lu
ZG93RmVhdHVyZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikKIHsKICAgICBp
ZCBkZWxlZ2F0ZSA9IFttX3dlYlZpZXcgVUlEZWxlZ2F0ZV07CiAgICAgV2ViVmlldyAqbmV3V2Vi
VmlldzsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICBpZiAoZnJhbWUtPmRvY3Vt
ZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVu
dCgpKQotICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigp
OworICAgIGlmIChmcmFtZS5kb2N1bWVudCgpICYmIGZyYW1lLmRvY3VtZW50KCktPndlYmtpdEN1
cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpKQorICAgICAgICBmcmFtZS5kb2N1bWVudCgpLT53ZWJr
aXRDYW5jZWxGdWxsU2NyZWVuKCk7CiAjZW5kaWYKICAgICAKICAgICBpZiAoW2RlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpjcmVhdGVXZWJWaWV3V2l0aFJlcXVl
c3Q6d2luZG93RmVhdHVyZXM6KV0pIHsKQEAgLTQ2OCw5ICs0NjksOSBAQCBib29sIFdlYkNocm9t
ZUNsaWVudDo6Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkKICAgICByZXR1cm4gW1tt
X3dlYlZpZXcgVUlEZWxlZ2F0ZV0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3
OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6
KV07CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSogZnJhbWUpCitib29sIFdlYkNocm9tZUNs
aWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
RnJhbWUmIGZyYW1lKQogewotICAgIHJldHVybiBDYWxsVUlEZWxlZ2F0ZVJldHVybmluZ0Jvb2xl
YW4odHJ1ZSwgbV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpydW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWxXaXRoTWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOiksIG1lc3NhZ2UsIGtpdChmcmFt
ZSkpOworICAgIHJldHVybiBDYWxsVUlEZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4odHJ1ZSwgbV93
ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWxXaXRo
TWVzc2FnZTppbml0aWF0ZWRCeUZyYW1lOiksIG1lc3NhZ2UsIGtpdCgmZnJhbWUpKTsKIH0KIAog
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNsb3NlV2luZG93U29vbigpCkBAIC00OTMsMTIgKzQ5NCwx
MiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xvc2VXaW5kb3dTb29uKCkKICAgICBbbV93ZWJW
aWV3IHBlcmZvcm1TZWxlY3RvcjpAc2VsZWN0b3IoX2Nsb3NlV2luZG93KSB3aXRoT2JqZWN0Om5p
bCBhZnRlckRlbGF5OjAuMF07CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2Ny
aXB0QWxlcnQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQogewogICAgIGlkIGRlbGVnYXRlID0gW21fd2ViVmlldyBVSURlbGVnYXRlXTsK
ICAgICBTRUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpydW5KYXZhU2NyaXB0QWxlcnRQ
YW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6KTsKICAgICBpZiAoW2RlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rvcl0pIHsKLSAgICAgICAgQ2FsbFVJRGVsZWdhdGUobV93
ZWJWaWV3LCBzZWxlY3RvciwgbWVzc2FnZSwga2l0KGZyYW1lKSk7CisgICAgICAgIENhbGxVSURl
bGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIG1lc3NhZ2UsIGtpdCgmZnJhbWUpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApAQCAtNTEwLDEyICs1MTEsMTIgQEAgdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKICAgICB9CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29u
ZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK2Jvb2wgV2ViQ2hyb21l
Q2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSkKIHsKICAgICBpZCBkZWxlZ2F0ZSA9IFttX3dlYlZpZXcgVUlEZWxlZ2F0ZV07CiAg
ICAgU0VMIHNlbGVjdG9yID0gQHNlbGVjdG9yKHdlYlZpZXc6cnVuSmF2YVNjcmlwdENvbmZpcm1Q
YW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6KTsKICAgICBpZiAoW2RlbGVnYXRlIHJl
c3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rvcl0pCi0gICAgICAgIHJldHVybiBDYWxsVUlEZWxlZ2F0
ZVJldHVybmluZ0Jvb2xlYW4oTk8sIG1fd2ViVmlldywgc2VsZWN0b3IsIG1lc3NhZ2UsIGtpdChm
cmFtZSkpOworICAgICAgICByZXR1cm4gQ2FsbFVJRGVsZWdhdGVSZXR1cm5pbmdCb29sZWFuKE5P
LCBtX3dlYlZpZXcsIHNlbGVjdG9yLCBtZXNzYWdlLCBraXQoJmZyYW1lKSk7CiAKICAgICAvLyBD
YWxsIHRoZSBvbGQgdmVyc2lvbiBvZiB0aGUgZGVsZWdhdGUgbWV0aG9kIGlmIGl0IGlzIGltcGxl
bWVudGVkLgogICAgIHNlbGVjdG9yID0gQHNlbGVjdG9yKHdlYlZpZXc6cnVuSmF2YVNjcmlwdENv
bmZpcm1QYW5lbFdpdGhNZXNzYWdlOik7CkBAIC01MjUsMTMgKzUyNiwxMyBAQCBib29sIFdlYkNo
cm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpCiAgICAgcmV0dXJuIE5POwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6
cnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgcHJvbXB0LCBj
b25zdCBTdHJpbmcmIGRlZmF1bHRUZXh0LCBTdHJpbmcmIHJlc3VsdCkKK2Jvb2wgV2ViQ2hyb21l
Q2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBw
cm9tcHQsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFRleHQsIFN0cmluZyYgcmVzdWx0KQogewogICAg
IGlkIGRlbGVnYXRlID0gW21fd2ViVmlldyBVSURlbGVnYXRlXTsKICAgICBTRUwgc2VsZWN0b3Ig
PSBAc2VsZWN0b3Iod2ViVmlldzpydW5KYXZhU2NyaXB0VGV4dElucHV0UGFuZWxXaXRoUHJvbXB0
OmRlZmF1bHRUZXh0OmluaXRpYXRlZEJ5RnJhbWU6KTsKICAgICBOU1N0cmluZyAqZGVmYXVsdFN0
cmluZyA9IGRlZmF1bHRUZXh0OwogICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9y
OnNlbGVjdG9yXSkgewotICAgICAgICByZXN1bHQgPSAoTlNTdHJpbmcgKilDYWxsVUlEZWxlZ2F0
ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBwcm9tcHQsIGRlZmF1bHRTdHJpbmcsIGtpdChmcmFtZSkp
OworICAgICAgICByZXN1bHQgPSAoTlNTdHJpbmcgKilDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcs
IHNlbGVjdG9yLCBwcm9tcHQsIGRlZmF1bHRTdHJpbmcsIGtpdCgmZnJhbWUpKTsKICAgICAgICAg
cmV0dXJuICFyZXN1bHQuaXNOdWxsKCk7CiAgICAgfQogCkBAIC01NDIsNyArNTQzLDcgQEAgYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25z
dCBTdHJpbmcmIHByb21wdCwgY28KICAgICAgICAgcmV0dXJuICFyZXN1bHQuaXNOdWxsKCk7CiAg
ICAgfQogCi0gICAgcmVzdWx0ID0gW1tXZWJEZWZhdWx0VUlEZWxlZ2F0ZSBzaGFyZWRVSURlbGVn
YXRlXSB3ZWJWaWV3Om1fd2ViVmlldyBydW5KYXZhU2NyaXB0VGV4dElucHV0UGFuZWxXaXRoUHJv
bXB0OnByb21wdCBkZWZhdWx0VGV4dDpkZWZhdWx0U3RyaW5nIGluaXRpYXRlZEJ5RnJhbWU6a2l0
KGZyYW1lKV07CisgICAgcmVzdWx0ID0gW1tXZWJEZWZhdWx0VUlEZWxlZ2F0ZSBzaGFyZWRVSURl
bGVnYXRlXSB3ZWJWaWV3Om1fd2ViVmlldyBydW5KYXZhU2NyaXB0VGV4dElucHV0UGFuZWxXaXRo
UHJvbXB0OnByb21wdCBkZWZhdWx0VGV4dDpkZWZhdWx0U3RyaW5nIGluaXRpYXRlZEJ5RnJhbWU6
a2l0KCZmcmFtZSldOwogICAgIHJldHVybiAhcmVzdWx0LmlzTnVsbCgpOwogfQogCkBAIC02MDYs
NyArNjA3LDcgQEAgUGxhdGZvcm1QYWdlQ2xpZW50IFdlYkNocm9tZUNsaWVudDo6cGxhdGZvcm1Q
YWdlQ2xpZW50KCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqLCBjb25zdCBJbnRTaXplJikgY29uc3QKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiwgY29uc3QgSW50
U2l6ZSYpIGNvbnN0CiB7CiB9CiAKQEAgLTYzNSwxMiArNjM2LDEyIEBAIGJvb2wgV2ViQ2hyb21l
Q2xpZW50OjpzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihSZW5kZXJFbWJl
ZGRlZE9iamVjCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6
dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlckVt
YmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbikgY29uc3QKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdp
bkJ1dHRvbkNsaWNrZWQoRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBs
dWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25z
dAogewotICAgIEFTU0VSVChlbGVtZW50LT5oYXNUYWdOYW1lKG9iamVjdFRhZykgfHwgZWxlbWVu
dC0+aGFzVGFnTmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShhcHBsZXRUYWcp
KTsKKyAgICBBU1NFUlQoZWxlbWVudC5oYXNUYWdOYW1lKG9iamVjdFRhZykgfHwgZWxlbWVudC5o
YXNUYWdOYW1lKGVtYmVkVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoYXBwbGV0VGFnKSk7CiAK
ICAgICBBU1NFUlQocGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gPT0gUmVuZGVyRW1iZWRkZWRP
YmplY3Q6OlBsdWdpbk1pc3NpbmcpOwotICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNl
bGVjdG9yKHdlYlZpZXc6ZGlkUHJlc3NNaXNzaW5nUGx1Z2luQnV0dG9uOiksIGtpdChlbGVtZW50
KSk7CisgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpkaWRQ
cmVzc01pc3NpbmdQbHVnaW5CdXR0b246KSwga2l0KCZlbGVtZW50KSk7CiB9CiAKIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0
JiByZXN1bHQsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpCkBAIC02NTcsMjEgKzY1OCwyMSBAQCB2
b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmIHRvb2xUaXAsIFRl
eHREaXJlY3Rpb24pCiAgICAgICAgIFsoV2ViSFRNTFZpZXcgKilkb2N1bWVudFZpZXcgX3NldFRv
b2xUaXA6dG9vbFRpcF07CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSog
ZnJhbWUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUmIGZyYW1lKQogewotICAg
IFdlYkZyYW1lICp3ZWJGcmFtZSA9IGtpdChmcmFtZSk7CisgICAgV2ViRnJhbWUgKndlYkZyYW1l
ID0ga2l0KCZmcmFtZSk7CiAgICAgaWYgKFtbbV93ZWJWaWV3IFVJRGVsZWdhdGVdIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3Iod2ViVmlldzpwcmludEZyYW1lOildKQogICAgICAgICBDYWxs
VUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnByaW50RnJhbWU6KSwgd2Vi
RnJhbWUpOwogICAgIGVsc2UKICAgICAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2Vs
ZWN0b3Iod2ViVmlldzpwcmludEZyYW1lVmlldzopLCBbd2ViRnJhbWUgZnJhbWVWaWV3XSk7CiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZy
YW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VEZXRhaWxzKQordm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSYgZnJhbWUsIGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMpCiB7CiAgICAgQkVHSU5fQkxP
Q0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgV2ViU2VjdXJpdHlPcmlnaW4gKndlYk9yaWdpbiA9
IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdp
bjomZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCldOwotICAgIENhbGxVSURlbGVn
YXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6ZnJhbWU6ZXhjZWVkZWREYXRhYmFzZVF1
b3RhRm9yU2VjdXJpdHlPcmlnaW46ZGF0YWJhc2U6KSwga2l0KGZyYW1lKSwgd2ViT3JpZ2luLCAo
TlNTdHJpbmcgKilkYXRhYmFzZU5hbWUpOworICAgIFdlYlNlY3VyaXR5T3JpZ2luICp3ZWJPcmln
aW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5pdFdpdGhXZWJDb3JlU2VjdXJpdHlP
cmlnaW46JmZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCldOworICAgIENhbGxVSURl
bGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6ZnJhbWU6ZXhjZWVkZWREYXRhYmFz
ZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46ZGF0YWJhc2U6KSwga2l0KCZmcmFtZSksIHdlYk9yaWdp
biwgKE5TU3RyaW5nICopZGF0YWJhc2VOYW1lKTsKICAgICBbd2ViT3JpZ2luIHJlbGVhc2VdOwog
CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKQEAgLTY4MiwxMSArNjgzLDExIEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VO
ZWVkZWQpCiAgICAgLy8gRklYTUU6IEZyZWUgc29tZSBzcGFjZS4KIH0KIAotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmln
aW4qIG9yaWdpbiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKQordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4mIG9y
aWdpbiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKQogewogICAgIEJFR0lOX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKIAotICAgIFdlYlNlY3VyaXR5T3JpZ2luICp3ZWJPcmlnaW4gPSBbW1dlYlNl
Y3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5pdFdpdGhXZWJDb3JlU2VjdXJpdHlPcmlnaW46b3JpZ2lu
XTsKKyAgICBXZWJTZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdp
biBhbGxvY10gX2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOiZvcmlnaW5dOwogICAgIENh
bGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6ZXhjZWVkZWRBcHBsaWNh
dGlvbkNhY2hlT3JpZ2luUXVvdGFGb3JTZWN1cml0eU9yaWdpbjp0b3RhbFNwYWNlTmVlZGVkOiks
IHdlYk9yaWdpbiwgc3RhdGljX2Nhc3Q8TlNVSW50ZWdlcj4odG90YWxTcGFjZU5lZWRlZCkpOwog
ICAgIFt3ZWJPcmlnaW4gcmVsZWFzZV07CiAKQEAgLTcwNSwxMiArNzA2LDE0IEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojphbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpCiAjZW5kaWYKIAogI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SKQotc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gV2Vi
Q2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiBjbGll
bnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCisKK3N0ZDo6dW5pcXVlX3B0cjxDb2xvckNo
b29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNs
aWVudCYgY2xpZW50LCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQogewogICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgPGlucHV0IHR5cGU9J2NvbG9yJz4gZm9yIFdLMSAoQnVnIDExOTA5NCkuCiAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CisKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKQEAgLTg0OCwxNCArODUxLDE0IEBAIFN0cmlu
ZyBXZWJDaHJvbWVDbGllbnQ6OmdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNvbnN0IFN0cmluZyYg
cGF0aCkKICAgICByZXR1cm4gW1ttX3dlYlZpZXcgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZp
ZXc6bV93ZWJWaWV3IGdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlOnBhdGhdOwogfQogCi12b2lkIFdl
YkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUp
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEZvY3VzKFdlYkNvcmU6OkVsZW1lbnQm
IGVsZW1lbnQpCiB7Ci0gICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2Vi
Vmlldzpmb3JtRGlkRm9jdXNOb2RlOiksIGtpdChjb25zdF9jYXN0PFdlYkNvcmU6Ok5vZGUqPihu
b2RlKSkpOworICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVjdG9yKHdlYlZpZXc6
Zm9ybURpZEZvY3VzTm9kZTopLCBraXQoJmVsZW1lbnQpKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmVsZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCkK
IHsKLSAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZvcm1E
aWRCbHVyTm9kZTopLCBraXQoY29uc3RfY2FzdDxXZWJDb3JlOjpOb2RlKj4obm9kZSkpKTsKKyAg
ICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZvcm1EaWRCbHVy
Tm9kZTopLCBraXQoJmVsZW1lbnQpKTsKIH0KIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNlbGVj
dEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkKQEAgLTg3NCwxOSArODc3LDE5IEBAIGJv
b2wgV2ViQ2hyb21lQ2xpZW50OjpoYXNPcGVuZWRQb3B1cCgpIGNvbnN0CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCi1SZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNy
ZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1Jl
ZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51
KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAogewogI2lmICFQTEFURk9S
TShJT1MpCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVNYWMoY2xpZW50KSk7Cisg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUG9wdXBNZW51TWFjKCZjbGllbnQpKTsKICNlbHNlCiAg
ICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYKIH0KIAotUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBv
cHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6
UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9w
dXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQ
b3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKICNpZiAhUExBVEZPUk0oSU9TKQotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51TWFjKGNsaWVudCkpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFNlYXJjaFBvcHVwTWVudU1hYygmY2xpZW50KSk7CiAjZWxzZQog
ICAgIHJldHVybiBudWxscHRyOwogI2VuZGlmCkBAIC05MDIsMTEgKzkwNSwxMSBAQCBib29sIFdl
YkNocm9tZUNsaWVudDo6c2hvdWxkUGFpbnRFbnRpcmVDb250ZW50cygpIGNvbnN0CiAjZW5kaWYK
IH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1l
KiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSYgZnJhbWUsIEdyYXBoaWNzTGF5ZXIq
IGdyYXBoaWNzTGF5ZXIpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0g
ICAgTlNWaWV3ICpkb2N1bWVudFZpZXcgPSBbW2tpdChmcmFtZSkgZnJhbWVWaWV3XSBkb2N1bWVu
dFZpZXddOworICAgIE5TVmlldyAqZG9jdW1lbnRWaWV3ID0gW1traXQoJmZyYW1lKSBmcmFtZVZp
ZXddIGRvY3VtZW50Vmlld107CiAgICAgaWYgKCFbZG9jdW1lbnRWaWV3IGlzS2luZE9mQ2xhc3M6
W1dlYkhUTUxWaWV3IGNsYXNzXV0pIHsKICAgICAgICAgLy8gV2Ugc2hvdWxkIG5ldmVyIGJlIGF0
dGFjaGluZyB3aGVuIHdlIGRvbid0IGhhdmUgYSBXZWJIVE1MVmlldy4KICAgICAgICAgQVNTRVJU
KCFncmFwaGljc0xheWVyKTsKQEAgLTkyMSw3ICs5MjQsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBn
cmFwaAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKLXZvaWQgV2ViQ2hyb21l
Q2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUqLCBHcmFwaGljc0xh
eWVyKikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5
ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikKIHsKICAgICAvLyBGSVhNRTogSWYgd2Ugd2FudCB2
aWV3LXJlbGF0aXZlIHBhZ2Ugb3ZlcmxheXMgaW4gTGVnYWN5IFdlYktpdCwgdGhpcyB3b3VsZCBi
ZSB0aGUgcGxhY2UgdG8gaG9vayB0aGVtIHVwLgogfQpAQCAtOTQxLDYgKzk0NCw3IEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpCiB9CiAKICNp
ZiBFTkFCTEUoVklERU8pCisKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c1ZpZGVvRnVs
bHNjcmVlbihIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUpCiB7CiAj
aWYgUExBVEZPUk0oSU9TKQpAQCAtOTY1LDcgKzk2OSwxMCBAQCB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9F
bGVtZQogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7ICAgIAogfQogCi0jaWYgUExBVEZP
Uk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCisjZW5kaWYgLy8gRU5B
QkxFKFZJREVPKQorCisjaWYgRU5BQkxFKFZJREVPKSAmJiBQTEFURk9STShNQUMpICYmIEVOQUJM
RShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFVw
UGxheWJhY2tDb250cm9sc01hbmFnZXIoSFRNTE1lZGlhRWxlbWVudCYgZWxlbWVudCkKIHsKICAg
ICBbbV93ZWJWaWV3IF9zZXRVcFBsYXliYWNrQ29udHJvbHNNYW5hZ2VyRm9yTWVkaWFFbGVtZW50
OmVsZW1lbnRdOwpAQCAtOTc1LDU0ICs5ODIsNTUgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNs
ZWFyUGxheWJhY2tDb250cm9sc01hbmFnZXIoKQogewogICAgIFttX3dlYlZpZXcgX2NsZWFyUGxh
eWJhY2tDb250cm9sc01hbmFnZXJdOwogfQotI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKLSNlbmRp
ZiAvLyBFTkFCTEUoVklERU8pCisKKyNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChj
b25zdCBFbGVtZW50KiBlbGVtZW50LCBib29sIHdpdGhLZXlib2FyZCkKK2Jvb2wgV2ViQ2hyb21l
Q2xpZW50OjpzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1l
bnQsIGJvb2wgd2l0aEtleWJvYXJkKQogewogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3
ZWJWaWV3OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQ6d2l0aEtleWJvYXJkOik7CiAgICAg
aWYgKFtbbV93ZWJWaWV3IFVJRGVsZWdhdGVdIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rvcl0p
Ci0gICAgICAgIHJldHVybiBDYWxsVUlEZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4oZmFsc2UsIG1f
d2ViVmlldywgc2VsZWN0b3IsIGtpdChjb25zdF9jYXN0PFdlYkNvcmU6OkVsZW1lbnQqPihlbGVt
ZW50KSksIHdpdGhLZXlib2FyZCk7CisgICAgICAgIHJldHVybiBDYWxsVUlEZWxlZ2F0ZVJldHVy
bmluZ0Jvb2xlYW4oZmFsc2UsIG1fd2ViVmlldywgc2VsZWN0b3IsIGtpdChjb25zdF9jYXN0PFdl
YkNvcmU6OkVsZW1lbnQqPigmZWxlbWVudCkpLCB3aXRoS2V5Ym9hcmQpOwogI2lmICFQTEFURk9S
TShJT1MpCi0gICAgcmV0dXJuIFttX3dlYlZpZXcgX3N1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1l
bnQ6Y29uc3RfY2FzdDxXZWJDb3JlOjpFbGVtZW50Kj4oZWxlbWVudCkgd2l0aEtleWJvYXJkOndp
dGhLZXlib2FyZF07CisgICAgcmV0dXJuIFttX3dlYlZpZXcgX3N1cHBvcnRzRnVsbFNjcmVlbkZv
ckVsZW1lbnQ6Y29uc3RfY2FzdDxXZWJDb3JlOjpFbGVtZW50Kj4oJmVsZW1lbnQpIHdpdGhLZXli
b2FyZDp3aXRoS2V5Ym9hcmRdOwogI2Vsc2UKICAgICByZXR1cm4gTk87CiAjZW5kaWYKIH0KIAot
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCog
ZWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
KEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgU0VMIHNlbGVjdG9yID0gQHNlbGVjdG9yKHdlYlZp
ZXc6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDpsaXN0ZW5lcjopOwogICAgIGlmIChbW21fd2Vi
VmlldyBVSURlbGVnYXRlXSByZXNwb25kc1RvU2VsZWN0b3I6c2VsZWN0b3JdKSB7Ci0gICAgICAg
IFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciogbGlzdGVuZXIgPSBbW1dlYktpdEZ1bGxTY3JlZW5M
aXN0ZW5lciBhbGxvY10gaW5pdFdpdGhFbGVtZW50OmVsZW1lbnRdOwotICAgICAgICBDYWxsVUlE
ZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBraXQoZWxlbWVudCksIGxpc3RlbmVyKTsKKyAg
ICAgICAgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyKiBsaXN0ZW5lciA9IFtbV2ViS2l0RnVsbFNj
cmVlbkxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aEVsZW1lbnQ6JmVsZW1lbnRdOworICAgICAgICBD
YWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBraXQoJmVsZW1lbnQpLCBsaXN0ZW5l
cik7CiAgICAgICAgIFtsaXN0ZW5lciByZWxlYXNlXTsKICAgICB9CiAjaWYgIVBMQVRGT1JNKElP
UykKICAgICBlbHNlCi0gICAgICAgIFttX3dlYlZpZXcgX2VudGVyRnVsbFNjcmVlbkZvckVsZW1l
bnQ6ZWxlbWVudF07CisgICAgICAgIFttX3dlYlZpZXcgX2VudGVyRnVsbFNjcmVlbkZvckVsZW1l
bnQ6JmVsZW1lbnRdOwogI2VuZGlmCiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVs
bFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBTRUwg
c2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6bGlz
dGVuZXI6KTsKICAgICBpZiAoW1ttX3dlYlZpZXcgVUlEZWxlZ2F0ZV0gcmVzcG9uZHNUb1NlbGVj
dG9yOnNlbGVjdG9yXSkgewotICAgICAgICBXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIqIGxpc3Rl
bmVyID0gW1tXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRoRWxlbWVudDpl
bGVtZW50XTsKLSAgICAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3Rvciwga2l0
KGVsZW1lbnQpLCBsaXN0ZW5lcik7CisgICAgICAgIFdlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciog
bGlzdGVuZXIgPSBbW1dlYktpdEZ1bGxTY3JlZW5MaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhFbGVt
ZW50OiZlbGVtZW50XTsKKyAgICAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3Rv
ciwga2l0KCZlbGVtZW50KSwgbGlzdGVuZXIpOwogICAgICAgICBbbGlzdGVuZXIgcmVsZWFzZV07
CiAgICAgfQogI2lmICFQTEFURk9STShJT1MpCiAgICAgZWxzZQotICAgICAgICBbbV93ZWJWaWV3
IF9leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQ6ZWxlbWVudF07CisgICAgICAgIFttX3dlYlZpZXcg
X2V4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDomZWxlbWVudF07CiAjZW5kaWYKIH0KIAogI2VuZGlm
IC8vIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIAogI2lmIEVOQUJMRShTVUJUTEVfQ1JZUFRPKQor
CiBib29sIFdlYkNocm9tZUNsaWVudDo6d3JhcENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhf
dD4mIGtleSwgVmVjdG9yPHVpbnQ4X3Q+JiB3cmFwcGVkS2V5KSBjb25zdAogewogICAgIFZlY3Rv
cjx1aW50OF90PiBtYXN0ZXJLZXk7CkBAIC0xMDQ4LDkgKzEwNTYsMTEgQEAgYm9vbCBXZWJDaHJv
bWVDbGllbnQ6OnVud3JhcENyeXB0b0tleShjb25zdCBWZWN0b3I8dWludDhfdD4mIHdyYXBwZWRL
ZXksIFZlY3RvcjwKIAogICAgIHJldHVybiB1bndyYXBTZXJpYWxpemVkQ3J5cHRvS2V5KG1hc3Rl
cktleSwgd3JhcHBlZEtleSwga2V5KTsKIH0KKwogI2VuZGlmCiAKICNpZiBFTkFCTEUoU0VSVklD
RV9DT05UUk9MUykKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmhhbmRsZVNlbGVjdGlvblNlcnZp
Y2VDbGljayhXZWJDb3JlOjpGcmFtZVNlbGVjdGlvbiYgc2VsZWN0aW9uLCBjb25zdCBWZWN0b3I8
U3RyaW5nPiYgdGVsZXBob25lTnVtYmVycywgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50
KQogewogICAgIFttX3dlYlZpZXcgX3NlbGVjdGlvblNlcnZpY2VDb250cm9sbGVyXS5oYW5kbGVT
ZWxlY3Rpb25TZXJ2aWNlQ2xpY2soc2VsZWN0aW9uLCB0ZWxlcGhvbmVOdW1iZXJzLCBwb2ludCk7
CkBAIC0xMDY0LDYgKzEwNzQsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6aGFzUmVsZXZhbnRT
ZWxlY3Rpb25TZXJ2aWNlcyhib29sIGlzVGV4dE9ubHkpIGNvbnN0CiAjZW5kaWYKIAogI2lmIEVO
QUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1MpCisKIHZvaWQg
V2ViQ2hyb21lQ2xpZW50OjphZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCBj
b250ZXh0SWQpCiB7CiAgICAgW21fd2ViVmlldyBfYWRkUGxheWJhY2tUYXJnZXRQaWNrZXJDbGll
bnQ6Y29udGV4dElkXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RnJhbWUubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IGYy
NGQ2NDNjYTE0MTQzMWVhZjc2OGQ4YTdlMjZmYzM0MDRhZmFmNGYuLmJkOGE0ZDUwNmIzOTkyYmFl
OTI4ZDY4NzZlNmEwNDQ2MTk3MzA5YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRnJhbWUubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFt
ZS5tbQpAQCAtMzAyLDE0ICszMDIsMTQgQEAgKyAoUmVmPFdlYkNvcmU6OkZyYW1lPilfY3JlYXRl
RnJhbWVXaXRoUGFnZTooUGFnZSopcGFnZSBmcmFtZU5hbWU6KGNvbnN0IFN0cmluZyYKICAgICBX
ZWJWaWV3ICp3ZWJWaWV3ID0ga2l0KHBhZ2UpOwogCiAgICAgV2ViRnJhbWUgKmZyYW1lID0gW1tz
ZWxmIGFsbG9jXSBfaW5pdFdpdGhXZWJGcmFtZVZpZXc6ZnJhbWVWaWV3IHdlYlZpZXc6d2ViVmll
d107Ci0gICAgUmVmPFdlYkNvcmU6OkZyYW1lPiBjb3JlRnJhbWUgPSBGcmFtZTo6Y3JlYXRlKHBh
Z2UsIG93bmVyRWxlbWVudCwgbmV3IFdlYkZyYW1lTG9hZGVyQ2xpZW50KGZyYW1lKSk7CisgICAg
YXV0byBjb3JlRnJhbWUgPSBGcmFtZTo6Y3JlYXRlKHBhZ2UsIG93bmVyRWxlbWVudCwgbmV3IFdl
YkZyYW1lTG9hZGVyQ2xpZW50KGZyYW1lKSk7CiAgICAgW2ZyYW1lIHJlbGVhc2VdOwogICAgIGZy
YW1lLT5fcHJpdmF0ZS0+Y29yZUZyYW1lID0gY29yZUZyYW1lLnB0cigpOwogCiAgICAgY29yZUZy
YW1lLmdldCgpLnRyZWUoKS5zZXROYW1lKG5hbWUpOwogICAgIGlmIChvd25lckVsZW1lbnQpIHsK
ICAgICAgICAgQVNTRVJUKG93bmVyRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpKTsKLSAgICAg
ICAgb3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCktPnRyZWUoKS5hcHBlbmRDaGlsZChj
b3JlRnJhbWUucHRyKCkpOworICAgICAgICBvd25lckVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUo
KS0+dHJlZSgpLmFwcGVuZENoaWxkKGNvcmVGcmFtZS5nZXQoKSk7CiAgICAgfQogCiAgICAgY29y
ZUZyYW1lLmdldCgpLmluaXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1BsdWdp
bnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcu
Y3BwCmluZGV4IDE0ZTk3MTBkMTVkNzliZjNiNTVjNDAwOWU1NjY4NGEwZWUzZDc4MzcuLjI5ODE1
M2RmM2M0YWQ3Zjc0YWIyNWY5ODA5YmZkZGIyMmQ4MDczODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4v
UGx1Z2lucy9QbHVnaW5WaWV3LmNwcApAQCAtNTkzLDcgKzU5Myw3IEBAIE5QRXJyb3IgUGx1Z2lu
Vmlldzo6ZGVzdHJveVN0cmVhbShOUFN0cmVhbSogc3RyZWFtLCBOUFJlYXNvbiByZWFzb24pCiB2
b2lkIFBsdWdpblZpZXc6OnN0YXR1cyhjb25zdCBjaGFyKiBtZXNzYWdlKQogewogICAgIGlmIChQ
YWdlKiBwYWdlID0gbV9wYXJlbnRGcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5jaHJvbWUo
KS5zZXRTdGF0dXNiYXJUZXh0KG1fcGFyZW50RnJhbWUuZ2V0KCksIFN0cmluZzo6ZnJvbVVURjgo
bWVzc2FnZSkpOworICAgICAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJUZXh0KCptX3Bh
cmVudEZyYW1lLCBTdHJpbmc6OmZyb21VVEY4KG1lc3NhZ2UpKTsKIH0KIAogTlBFcnJvciBQbHVn
aW5WaWV3OjpzZXRWYWx1ZShOUFBWYXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCkBAIC03
OTMsNyArNzkzLDcgQEAgUGx1Z2luVmlldzo6UGx1Z2luVmlldyhGcmFtZSogcGFyZW50RnJhbWUs
IGNvbnN0IEludFNpemUmIHNpemUsIFBsdWdpblBhY2thZ2UqIHAKIHZvaWQgUGx1Z2luVmlldzo6
Zm9jdXNQbHVnaW5FbGVtZW50KCkKIHsKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fcGFyZW50RnJh
bWUtPnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVs
ZW1lbnQobV9lbGVtZW50LCBtX3BhcmVudEZyYW1lKTsKKyAgICAgICAgcGFnZS0+Zm9jdXNDb250
cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQobV9lbGVtZW50LCAqbV9wYXJlbnRGcmFtZSk7CiAg
ICAgZWxzZQogICAgICAgICBtX3BhcmVudEZyYW1lLT5kb2N1bWVudCgpLT5zZXRGb2N1c2VkRWxl
bWVudChtX2VsZW1lbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggYTc3M2IxYWIxNDE3NGUwMjBjNjJkOWQw
NDc4NmQyYTI4MjFjYjc4NC4uYWI2NTE0NDRmOTIxOWE2Nzc2YmY4N2ViMThiMjgxY2JkMjQxMjBj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCkBAIC0xODksMTUgKzE4OSwxNSBAQCBzdGF0aWMgQ09NUHRyPElQcm9wZXJ0
eUJhZz4gY3JlYXRlV2luZG93RmVhdHVyZXNQcm9wZXJ0eUJhZyhjb25zdCBXaW5kb3dGZWF0dXJl
cwogICAgIHJldHVybiBDT01QdHI8SVByb3BlcnR5QmFnPihBZG9wdENPTSwgQ09NUHJvcGVydHlC
YWc8Q09NVmFyaWFudD46OmFkb3B0KG1hcCkpOwogfQogCi1QYWdlKiBXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25z
dCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmln
YXRpb25BY3Rpb24pCitQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYg
ZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVh
dHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpb25BY3Rpb24pCiB7CiAgICAg
Q09NUHRyPElXZWJVSURlbGVnYXRlPiBkZWxlZ2F0ZSA9IHVpRGVsZWdhdGUoKTsKICAgICBpZiAo
IWRlbGVnYXRlKQogICAgICAgICByZXR1cm4gMDsKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkKLSAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRvY3VtZW50KCktPndlYmtp
dEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpKQotICAgICAgICBmcmFtZS0+ZG9jdW1lbnQoKS0+
d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOworICAgIGlmIChmcmFtZS5kb2N1bWVudCgpICYmIGZy
YW1lLmRvY3VtZW50KCktPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpKQorICAgICAg
ICBmcmFtZS5kb2N1bWVudCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7CiAjZW5kaWYKIAog
ICAgIENPTVB0cjxXZWJNdXRhYmxlVVJMUmVxdWVzdD4gcmVxdWVzdCA9IGFkb3B0Q09NKFdlYk11
dGFibGVVUkxSZXF1ZXN0OjpjcmVhdGVJbnN0YW5jZShSZXNvdXJjZVJlcXVlc3QobmF2aWdhdGlv
bkFjdGlvbi51cmwoKSkpKTsKQEAgLTM2MSwxMiArMzYxLDEyIEBAIGJvb2wgV2ViQ2hyb21lQ2xp
ZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKQogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKiBmcmFtZSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50
OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFt
ZSYgZnJhbWUpCiB7CiAgICAgQk9PTCByZXN1bHQgPSBUUlVFOwogICAgIElXZWJVSURlbGVnYXRl
KiB1aTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWkpKSAmJiB1
aSkgewotICAgICAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBraXQoZnJhbWUpOworICAgICAgICBX
ZWJGcmFtZSogd2ViRnJhbWUgPSBraXQoJmZyYW1lKTsKICAgICAgICAgdWktPnJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlKG1fd2ViVmlldywgQlN0cmluZyhtZXNzYWdlKSwg
d2ViRnJhbWUsICZyZXN1bHQpOwogICAgICAgICB1aS0+UmVsZWFzZSgpOwogICAgIH0KQEAgLTM5
MywxNCArMzkzLDE0IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjbG9zZVdpbmRvd1Nvb24oKQog
ICAgIG1fd2ViVmlldy0+Y2xvc2VXaW5kb3dTb29uKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCit2
b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQogewogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWk7CiAgICAgaWYg
KFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpKSkpCiAgICAgICAgIHVpLT5ydW5K
YXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlKG1fd2ViVmlldywgQlN0cmluZyhtZXNzYWdl
KSk7CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFt
ZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZh
U2NyaXB0Q29uZmlybShGcmFtZSYsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBCT09M
IHJlc3VsdCA9IEZBTFNFOwogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWk7CkBAIC00MDks
NyArNDA5LDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZy
YW1lKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIHJldHVybiAhIXJlc3VsdDsKIH0KIAot
Ym9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3Vs
dCkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiwgY29u
c3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiBy
ZXN1bHQpCiB7CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aTsKICAgICBpZiAoRkFJTEVE
KG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWkpKSkKQEAgLTUwOCw3ICs1MDgsNyBAQCBQbGF0Zm9y
bVBhZ2VDbGllbnQgV2ViQ2hyb21lQ2xpZW50OjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAog
ICAgIHJldHVybiB2aWV3V2luZG93OwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVu
dHNTaXplQ2hhbmdlZChGcmFtZSosIGNvbnN0IEludFNpemUmKSBjb25zdAordm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29u
c3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpAQCAtNTQwLDcgKzU0MCw3IEBAIGJvb2wg
V2ViQ2hyb21lQ2xpZW50OjpzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihS
ZW5kZXJFbWJlZGRlZE9iamVjCiAgICAgcmV0dXJuIHVpRGVsZWdhdGVQcml2YXRlMzsKIH0KIAot
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVt
ZW50KiBlbGVtZW50LCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlS
ZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0Cit2b2lkIFdlYkNocm9tZUNs
aWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVsZW1lbnQmIGVsZW1lbnQsIFJl
bmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2
YWlsYWJpbGl0eVJlYXNvbikgY29uc3QKIHsKICAgICBBU1NFUlRfVU5VU0VEKHBsdWdpblVuYXZh
aWxhYmlsaXR5UmVhc29uLCBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiA9PSBSZW5kZXJFbWJl
ZGRlZE9iamVjdDo6UGx1Z2luTWlzc2luZyk7CiAKQEAgLTU1Miw3ICs1NTIsNyBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVsZW1lbnQqIGVs
ZW1lbnQsIFJlbmRlckVtYgogICAgIGlmICghdWlEZWxlZ2F0ZVByaXZhdGUzKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGUoQWRvcHRDT00sIERPTUVsZW1lbnQ6
OmNyZWF0ZUluc3RhbmNlKGVsZW1lbnQpKTsKKyAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGUoQWRv
cHRDT00sIERPTUVsZW1lbnQ6OmNyZWF0ZUluc3RhbmNlKCZlbGVtZW50KSk7CiAgICAgdWlEZWxl
Z2F0ZVByaXZhdGUzLT5kaWRQcmVzc01pc3NpbmdQbHVnaW5CdXR0b24oZS5nZXQoKSk7CiB9CiAK
QEAgLTU2MSwyMSArNTYxLDIxIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRUb29sVGlwKGNv
bnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikKICAgICBtX3dlYlZpZXctPnNldFRv
b2xUaXAodG9vbFRpcCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSog
ZnJhbWUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUmIGZyYW1lKQogewogICAg
IENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICBpZiAoU1VDQ0VFREVEKG1f
d2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKQotICAgICAgICB1aURlbGVnYXRlLT5w
cmludEZyYW1lKG1fd2ViVmlldywga2l0KGZyYW1lKSk7CisgICAgICAgIHVpRGVsZWdhdGUtPnBy
aW50RnJhbWUobV93ZWJWaWV3LCBraXQoJmZyYW1lKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpleGNlZWRlZERhdGFiYXNlUXVvdGEoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRh
dGFiYXNlSWRlbnRpZmllciwgRGF0YWJhc2VEZXRhaWxzKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJh
c2VJZGVudGlmaWVyLCBEYXRhYmFzZURldGFpbHMpCiB7Ci0gICAgQ09NUHRyPFdlYlNlY3VyaXR5
T3JpZ2luPiBvcmlnaW4oQWRvcHRDT00sIFdlYlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVJbnN0YW5j
ZSgmZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpKTsKKyAgICBDT01QdHI8V2Vi
U2VjdXJpdHlPcmlnaW4+IG9yaWdpbihBZG9wdENPTSwgV2ViU2VjdXJpdHlPcmlnaW46OmNyZWF0
ZUluc3RhbmNlKCZmcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSk7CiAgICAgQ09N
UHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOwogICAgIGlmIChTVUNDRUVERUQobV93ZWJW
aWV3LT51aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkpIHsKICAgICAgICAgQ09NUHRyPElXZWJVSURl
bGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZVByaXZhdGUoUXVlcnksIHVpRGVsZWdhdGUpOwogICAg
ICAgICBpZiAodWlEZWxlZ2F0ZVByaXZhdGUpCi0gICAgICAgICAgICB1aURlbGVnYXRlUHJpdmF0
ZS0+ZXhjZWVkZWREYXRhYmFzZVF1b3RhKG1fd2ViVmlldywga2l0KGZyYW1lKSwgb3JpZ2luLmdl
dCgpLCBCU3RyaW5nKGRhdGFiYXNlSWRlbnRpZmllcikpOworICAgICAgICAgICAgdWlEZWxlZ2F0
ZVByaXZhdGUtPmV4Y2VlZGVkRGF0YWJhc2VRdW90YShtX3dlYlZpZXcsIGtpdCgmZnJhbWUpLCBv
cmlnaW4uZ2V0KCksIEJTdHJpbmcoZGF0YWJhc2VJZGVudGlmaWVyKSk7CiAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgLy8gRklYTUU6IHJlbW92ZSB0aGlzIHdvcmthcm91bmQgb25jZSBzaGlw
cGluZyBTYWZhcmkgaGFzIHRoZSBuZWNlc3NhcnkgZGVsZWdhdGUgaW1wbGVtZW50ZWQuCiAgICAg
ICAgICAgICBXQ0hBUiBwYXRoW01BWF9QQVRIXTsKQEAgLTYxMyw3ICs2MTMsNyBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6cmVhY2hlZE1heEFwcENhY2hlU2l6ZShpbnQ2NF90IHNwYWNlTmVlZGVk
KQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFj
aGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCkK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3Rh
KFNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpA
QCAtNzE3LDEyICs3MTcsMTIgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldExhc3RTZXRDdXJz
b3JUb0N1cnJlbnRDdXJzb3IoKQogICAgIG1fd2ViVmlldy0+c2V0TGFzdEN1cnNvcig6OkdldEN1
cnNvcigpKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xh
eWVyKEZyYW1lKiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5
ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAgICAgbV93ZWJWaWV3LT5zZXRSb290Q2hpbGRMYXllcihn
cmFwaGljc0xheWVyKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVy
bGF5R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKQordm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5
ZXIqKQogewogICAgIC8vIEZJWE1FOiBJZiB3ZSB3YW50IHZpZXctcmVsYXRpdmUgcGFnZSBvdmVy
bGF5cyBpbiBMZWdhY3kgV2ViS2l0IG9uIFdpbmRvd3MsIHRoaXMgd291bGQgYmUgdGhlIHBsYWNl
IHRvIGhvb2sgdGhlbSB1cC4KIH0KQEAgLTc1Myw3ICs3NTMsNyBAQCBib29sIFdlYkNocm9tZUNs
aWVudDo6c3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRl
b0Z1bGxzYwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50
ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYgdmlkZW9F
bGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlk
ZW9FbGVtZW50KEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgSFRNTE1lZGlhRWxlbWVu
dEVudW1zOjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKQogewogICAgIG1fd2ViVmlldy0+ZW50ZXJWaWRl
b0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQodmlkZW9FbGVtZW50KTsKIH0KQEAgLTc4MSw1OSAr
NzgxLDYxIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpoYXNPcGVuZWRQb3B1cCgpIGNvbnN0CiAg
ICAgcmV0dXJuIGZhbHNlOwogfQogCi1SZWZQdHI8UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxQ
b3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVu
dCYgY2xpZW50KSBjb25zdAogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51V2lu
KGNsaWVudCkpOworICAgIHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51V2luKCZjbGllbnQp
KTsKIH0KIAotUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVT
ZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8U2Vh
cmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNl
YXJjaFBvcHVwTWVudVdpbihjbGllbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNlYXJj
aFBvcHVwTWVudVdpbigmY2xpZW50KSk7CiB9CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
Ci1ib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25z
dCBFbGVtZW50KiBlbGVtZW50LCBib29sIHJlcXVlc3RpbmdLZXlib2FyZEFjY2VzcykKKworYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgRWxl
bWVudCYgZWxlbWVudCwgYm9vbCByZXF1ZXN0aW5nS2V5Ym9hcmRBY2Nlc3MpCiB7CiAgICAgQ09N
UHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOwogICAgIGlmIChTVUNDRUVERUQobV93ZWJW
aWV3LT51aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkpIHsKICAgICAgICAgQ09NUHRyPElXZWJVSURl
bGVnYXRlUHJpdmF0ZTQ+IHVpRGVsZWdhdGVQcml2YXRlNChRdWVyeSwgdWlEZWxlZ2F0ZSk7CiAg
ICAgICAgIEJPT0wgc3VwcG9ydHMgPSBGQUxTRTsKLSAgICAgICAgQ09NUHRyPElET01FbGVtZW50
PiBkb21FbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZShjb25zdF9j
YXN0PEVsZW1lbnQqPihlbGVtZW50KSkpOworICAgICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRv
bUVsZW1lbnQoQWRvcHRDT00sIERPTUVsZW1lbnQ6OmNyZWF0ZUluc3RhbmNlKGNvbnN0X2Nhc3Q8
RWxlbWVudCo+KCZlbGVtZW50KSkpOwogCiAgICAgICAgIGlmICh1aURlbGVnYXRlUHJpdmF0ZTQg
JiYgU1VDQ0VFREVEKHVpRGVsZWdhdGVQcml2YXRlNC0+c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxl
bWVudChkb21FbGVtZW50LmdldCgpLCByZXF1ZXN0aW5nS2V5Ym9hcmRBY2Nlc3MsICZzdXBwb3J0
cykpKQogICAgICAgICAgICAgcmV0dXJuIHN1cHBvcnRzOwogICAgIH0KIAotICAgIHJldHVybiBt
X3dlYlZpZXctPnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCwgcmVxdWVzdGlu
Z0tleWJvYXJkQWNjZXNzKTsKKyAgICByZXR1cm4gbV93ZWJWaWV3LT5zdXBwb3J0c0Z1bGxTY3Jl
ZW5Gb3JFbGVtZW50KCZlbGVtZW50LCByZXF1ZXN0aW5nS2V5Ym9hcmRBY2Nlc3MpOwogfQogCi12
b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBl
bGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQo
RWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdh
dGU7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUp
KSkgewogICAgICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGVQcml2YXRlND4gdWlEZWxlZ2F0ZVBy
aXZhdGU0KFF1ZXJ5LCB1aURlbGVnYXRlKTsKLSAgICAgICAgQ09NUHRyPElET01FbGVtZW50PiBk
b21FbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZShlbGVtZW50KSk7
CisgICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxlbWVudChBZG9wdENPTSwgRE9NRWxl
bWVudDo6Y3JlYXRlSW5zdGFuY2UoJmVsZW1lbnQpKTsKICAgICAgICAgaWYgKHVpRGVsZWdhdGVQ
cml2YXRlNCAmJiBTVUNDRUVERUQodWlEZWxlZ2F0ZVByaXZhdGU0LT5lbnRlckZ1bGxTY3JlZW5G
b3JFbGVtZW50KGRvbUVsZW1lbnQuZ2V0KCkpKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9
IAogCi0gICAgbV93ZWJWaWV3LT5zZXRGdWxsU2NyZWVuRWxlbWVudChlbGVtZW50KTsKKyAgICBt
X3dlYlZpZXctPnNldEZ1bGxTY3JlZW5FbGVtZW50KCZlbGVtZW50KTsKICAgICBtX3dlYlZpZXct
PmZ1bGxTY3JlZW5Db250cm9sbGVyKCktPmVudGVyRnVsbFNjcmVlbigpOwogfQogCi12b2lkIFdl
YkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQp
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQm
IGVsZW1lbnQpCiB7CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURlbGVnYXRlOwogICAg
IGlmIChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVnYXRlKSkpIHsKICAg
ICAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlUHJpdmF0ZTQ+IHVpRGVsZWdhdGVQcml2YXRlNChR
dWVyeSwgdWlEZWxlZ2F0ZSk7Ci0gICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxlbWVu
dChBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoZWxlbWVudCkpOworICAgICAg
ICBDT01QdHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00sIERPTUVsZW1lbnQ6OmNy
ZWF0ZUluc3RhbmNlKCZlbGVtZW50KSk7CiAgICAgICAgIGlmICh1aURlbGVnYXRlUHJpdmF0ZTQg
JiYgU1VDQ0VFREVEKHVpRGVsZWdhdGVQcml2YXRlNC0+ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
KGRvbUVsZW1lbnQuZ2V0KCkpKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBB
U1NFUlQoZWxlbWVudCA9PSBtX3dlYlZpZXctPmZ1bGxTY3JlZW5FbGVtZW50KCkpOworICAgIEFT
U0VSVCgmZWxlbWVudCA9PSBtX3dlYlZpZXctPmZ1bGxTY3JlZW5FbGVtZW50KCkpOwogICAgIG1f
d2ViVmlldy0+ZnVsbFNjcmVlbkNvbnRyb2xsZXIoKS0+ZXhpdEZ1bGxTY3JlZW4oKTsKIH0KKwog
I2VuZGlmCiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpBWFN0YXJ0RnJhbWVMb2FkKCkKQEAgLTg1
MiwxMCArODU0LDEwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpBWEZpbmlzaEZyYW1lTG9hZCgp
CiAgICAgICAgIGRlbGVnYXRlLT5maXJlRnJhbWVMb2FkRmluaXNoZWRFdmVudHMoKTsKIH0KIAot
Ym9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhj
b25zdCBGcmFtZVZpZXcqIGZyYW1lVmlldykgY29uc3QKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50Ojpz
aG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3JiBmcmFtZVZp
ZXcpIGNvbnN0CiB7CiAjaWYgIVVTRShDQUlSTykKLSAgICByZXR1cm4gZnJhbWVWaWV3ICYmIGZy
YW1lVmlldy0+ZnJhbWUoKS5pc01haW5GcmFtZSgpOworICAgIHJldHVybiBmcmFtZVZpZXcuZnJh
bWUoKS5pc01haW5GcmFtZSgpOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
aW5kZXggOTI4NzJiNDFjMTJmYjMxNWU1NDFlY2JkYjk1ZGJjYjE1NjYyNzJkYy4uMTgzMTJkNmJj
NDRjNjdjZDg0MTI0MDE5MDhmYmQ2NDE4ZWU2MjUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTM3LDEzNyArMzcsMTM3
IEBAIGNsYXNzIFdlYkRlc2t0b3BOb3RpZmljYXRpb25zRGVsZWdhdGU7CiAKIGludGVyZmFjZSBJ
V2ViVUlEZWxlZ2F0ZTsKIAotY2xhc3MgV2ViQ2hyb21lQ2xpZW50IDogcHVibGljIFdlYkNvcmU6
OkNocm9tZUNsaWVudCB7CitjbGFzcyBXZWJDaHJvbWVDbGllbnQgZmluYWwgOiBwdWJsaWMgV2Vi
Q29yZTo6Q2hyb21lQ2xpZW50IHsKIHB1YmxpYzoKICAgICBXZWJDaHJvbWVDbGllbnQoV2ViVmll
dyopOwogCi0gICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpOworICAgIHZvaWQgY2hy
b21lRGVzdHJveWVkKCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93UmVjdChj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVj
dCB3aW5kb3dSZWN0KCk7CisgICAgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYpIGZpbmFsOworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgZmlu
YWw7CiAgICAgCi0gICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgcGFnZVJlY3QoKTsKKyAg
ICBXZWJDb3JlOjpGbG9hdFJlY3QgcGFnZVJlY3QoKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9p
ZCBmb2N1cygpOwotICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCk7CisgICAgdm9pZCBmb2N1cygp
IGZpbmFsOworICAgIHZvaWQgdW5mb2N1cygpIGZpbmFsOwogCi0gICAgdmlydHVhbCBib29sIGNh
blRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbik7Ci0gICAgdmlydHVhbCB2b2lkIHRh
a2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbik7CisgICAgYm9vbCBjYW5UYWtlRm9jdXMo
V2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pIGZpbmFsOworICAgIHZvaWQgdGFrZUZvY3VzKFdlYkNv
cmU6OkZvY3VzRGlyZWN0aW9uKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkRWxl
bWVudENoYW5nZWQoV2ViQ29yZTo6RWxlbWVudCopOwotICAgIHZpcnR1YWwgdm9pZCBmb2N1c2Vk
RnJhbWVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKik7CisgICAgdm9pZCBmb2N1c2VkRWxlbWVudENo
YW5nZWQoV2ViQ29yZTo6RWxlbWVudCopIGZpbmFsOworICAgIHZvaWQgZm9jdXNlZEZyYW1lQ2hh
bmdlZChXZWJDb3JlOjpGcmFtZSopIGZpbmFsOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpQYWdl
KiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRS
ZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpO
YXZpZ2F0aW9uQWN0aW9uJik7Ci0gICAgdmlydHVhbCB2b2lkIHNob3coKTsKKyAgICBXZWJDb3Jl
OjpQYWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpGcmFt
ZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmLCBjb25zdCBXZWJD
b3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWw7CisgICAgdm9pZCBzaG93KCkgZmluYWw7CiAK
LSAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuTW9kYWwoKTsKLSAgICB2aXJ0dWFsIHZvaWQgcnVuTW9k
YWwoKTsKKyAgICBib29sIGNhblJ1bk1vZGFsKCkgZmluYWw7CisgICAgdm9pZCBydW5Nb2RhbCgp
IGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHNldFRvb2xiYXJzVmlzaWJsZShib29sKTsKLSAg
ICB2aXJ0dWFsIGJvb2wgdG9vbGJhcnNWaXNpYmxlKCk7CisgICAgdm9pZCBzZXRUb29sYmFyc1Zp
c2libGUoYm9vbCkgZmluYWw7CisgICAgYm9vbCB0b29sYmFyc1Zpc2libGUoKSBmaW5hbDsKICAg
ICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVmlzaWJsZShib29sKTsKLSAgICB2aXJ0
dWFsIGJvb2wgc3RhdHVzYmFyVmlzaWJsZSgpOworICAgIHZvaWQgc2V0U3RhdHVzYmFyVmlzaWJs
ZShib29sKSBmaW5hbDsKKyAgICBib29sIHN0YXR1c2JhclZpc2libGUoKSBmaW5hbDsKICAgICAK
LSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsYmFyc1Zpc2libGUoYm9vbCk7Ci0gICAgdmlydHVh
bCBib29sIHNjcm9sbGJhcnNWaXNpYmxlKCk7CisgICAgdm9pZCBzZXRTY3JvbGxiYXJzVmlzaWJs
ZShib29sKSBmaW5hbDsKKyAgICBib29sIHNjcm9sbGJhcnNWaXNpYmxlKCkgZmluYWw7CiAgICAg
Ci0gICAgdmlydHVhbCB2b2lkIHNldE1lbnViYXJWaXNpYmxlKGJvb2wpOwotICAgIHZpcnR1YWwg
Ym9vbCBtZW51YmFyVmlzaWJsZSgpOworICAgIHZvaWQgc2V0TWVudWJhclZpc2libGUoYm9vbCkg
ZmluYWw7CisgICAgYm9vbCBtZW51YmFyVmlzaWJsZSgpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2
b2lkIHNldFJlc2l6YWJsZShib29sKTsKKyAgICB2b2lkIHNldFJlc2l6YWJsZShib29sKSBmaW5h
bDsKIAotICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKEpTQzo6TWVzc2FnZVNv
dXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCB1bnNp
Z25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFdURjo6U3RyaW5n
JiB1cmwpOworICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShKU0M6Ok1lc3NhZ2VTb3VyY2Us
IEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgdW5zaWduZWQg
bGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25zdCBXVEY6OlN0cmluZyYgdXJs
KSBmaW5hbDsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoKTsKLSAgICB2aXJ0dWFsIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0
IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSogZnJhbWUpOworICAgIGJvb2wg
Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgZmluYWw7CisgICAgYm9vbCBydW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIFdlYkNvcmU6
OkZyYW1lJikgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2xvc2VXaW5kb3dTb29uKCk7Cisg
ICAgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBydW5K
YXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYpOwotICAg
IHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZSosIGNvbnN0
IFdURjo6U3RyaW5nJik7Ci0gICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2Vi
Q29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3QgV1RGOjpTdHJp
bmcmIGRlZmF1bHRWYWx1ZSwgV1RGOjpTdHJpbmcmIHJlc3VsdCk7Ci0gICAgdmlydHVhbCB2b2lk
IHNldFN0YXR1c2JhclRleHQoY29uc3QgV1RGOjpTdHJpbmcmKTsKKyAgICB2b2lkIHJ1bkphdmFT
Y3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdURjo6U3RyaW5nJikgZmluYWw7Cisg
ICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdURjo6
U3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZy
YW1lJiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZWZh
dWx0VmFsdWUsIFdURjo6U3RyaW5nJiByZXN1bHQpIGZpbmFsOworICAgIHZvaWQgc2V0U3RhdHVz
YmFyVGV4dChjb25zdCBXVEY6OlN0cmluZyYpIGZpbmFsOwogCi0gICAgdmlydHVhbCBXZWJDb3Jl
OjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpOworICAgIFdlYkNvcmU6OktleWJvYXJk
VUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQg
aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwot
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmKTsKLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0VG9TY3Jv
bGwsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKKyAgICB2b2lkIGludmFsaWRh
dGVSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7CisgICAgdm9pZCBpbnZh
bGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7
CisgICAgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBzY3JvbGxEZWx0YSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlwUmVjdCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIFdlYkNv
cmU6OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBj
b25zdDsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3Q7Ci0gICAgdmlydHVhbCBQbGF0Zm9ybVBhZ2VDbGll
bnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIGNvbnRlbnRz
U2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29u
c3Q7CisgICAgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYpIGNvbnN0IGZpbmFsOworICAgIFdlYkNvcmU6OkludFJlY3Qgcm9vdFZpZXdU
b1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgZmluYWw7CisgICAgUGxhdGZv
cm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0IGZpbmFsOworICAgIHZvaWQg
Y29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKSBjb25zdCBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENo
YW5nZSgpIGNvbnN0IHsgfQotICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVu
dChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncyk7
Ci0gICAgdmlydHVhbCBib29sIHNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9u
KFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNv
bikgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tl
ZChXZWJDb3JlOjpFbGVtZW50KiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdp
blVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdDsKKyAgICB2b2lkIHNjcm9sbGJhcnNNb2RlRGlk
Q2hhbmdlKCkgY29uc3QgZmluYWwgeyB9CisgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVyRWxlbWVu
dChjb25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykg
ZmluYWw7CisgICAgYm9vbCBzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihX
ZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24p
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdl
YkNvcmU6OkVsZW1lbnQmLCBXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHNldFRv
b2xUaXAoY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKTsKKyAgICB2
b2lkIHNldFRvb2xUaXAoY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9u
KSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSopOworICAg
IHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9pZCBl
eGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYs
IFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscyk7CisgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVv
dGEoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXVEY6OlN0cmluZyYsIFdlYkNvcmU6OkRhdGFiYXNl
RGV0YWlscykgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZE1heEFwcENhY2hlU2l6
ZShpbnQ2NF90IHNwYWNlTmVlZGVkKTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVhY2hlZEFwcGxpY2F0
aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGludDY0X3QgdG90
YWxTcGFjZU5lZWRlZCk7CisgICAgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qg
c3BhY2VOZWVkZWQpIGZpbmFsOworICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIGludDY0X3QgdG90YWxTcGFjZU5lZWRl
ZCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1l
JiwgV2ViQ29yZTo6RmlsZUNob29zZXImKTsKLSAgICB2aXJ0dWFsIHZvaWQgbG9hZEljb25Gb3JG
aWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIm
KTsKKyAgICB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkZpbGVD
aG9vc2VyJikgZmluYWw7CisgICAgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxX
VEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpIGZpbmFsOwogCi0gICAgdmly
dHVhbCB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKTsKLSAgICB2aXJ0dWFs
IHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpOwotICAgIHZpcnR1YWwg
dm9pZCBzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29yKCk7CisgICAgdm9pZCBzZXRDdXJz
b3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJikgZmluYWw7CisgICAgdm9pZCBzZXRDdXJzb3JIaWRk
ZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkgZmluYWw7CisgICAgdm9pZCBzZXRMYXN0U2V0Q3Vyc29y
VG9DdXJyZW50Q3Vyc29yKCkgZmluYWw7CiAKICAgICAvLyBQYXNzIDAgYXMgdGhlIEdyYXBoaWNz
TGF5ZXIgdG8gZGV0YXRjaCB0aGUgcm9vdCBsYXllci4KLSAgICB2aXJ0dWFsIHZvaWQgYXR0YWNo
Um9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
Kik7Ci0gICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJh
bWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisgICAgdm9pZCBhdHRhY2hS
b290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBmaW5hbDsKKyAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3Jl
OjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKICAgICAvLyBTZXRzIGEg
ZmxhZyB0byBzcGVjaWZ5IHRoYXQgdGhlIG5leHQgdGltZSBjb250ZW50IGlzIGRyYXduIHRvIHRo
ZSB3aW5kb3csCiAgICAgLy8gdGhlIGNoYW5nZXMgYXBwZWFyIG9uIHRoZSBzY3JlZW4gaW4gc3lu
Y2hyb255IHdpdGggdXBkYXRlcyB0byBHcmFwaGljc0xheWVycy4KLSAgICB2aXJ0dWFsIHZvaWQg
c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIHsgfQorICAgIHZvaWQgc2V0
TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIGZpbmFsIHsgfQogICAgIC8vIFNl
dHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgdmlldyBuZWVkcyB0byBiZSB1cGRhdGVkLCBz
byB3ZSBuZWVkCiAgICAgLy8gdG8gZG8gYW4gZWFnZXIgbGF5b3V0IGJlZm9yZSB0aGUgZHJhd2lu
Zy4KLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKKyAg
ICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgZmluYWw7CiAKICNpZiBQTEFU
Rk9STShXSU4pICYmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgV2ViQ29yZTo6R3JhcGhpY3NEZXZp
Y2VBZGFwdGVyKiBncmFwaGljc0RldmljZUFkYXB0ZXIoKSBjb25zdCBvdmVycmlkZTsKKyAgICBX
ZWJDb3JlOjpHcmFwaGljc0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2aWNlQWRhcHRlcigpIGNv
bnN0IGZpbmFsOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdCB7IH0KKyAgICB2b2lkIHNjcm9sbFJlY3RJ
bnRvVmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgZmluYWwgeyB9CiAKICNpZiBF
TkFCTEUoVklERU8pCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKFdl
YkNvcmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSk7Ci0gICAg
dmlydHVhbCB2b2lkIGVudGVyVmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6
OkhUTUxWaWRlb0VsZW1lbnQmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVl
bkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50Jik7CisgICAgYm9vbCBz
dXBwb3J0c1ZpZGVvRnVsbHNjcmVlbihXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZp
ZGVvRnVsbHNjcmVlbk1vZGUpIGZpbmFsOworICAgIHZvaWQgZW50ZXJWaWRlb0Z1bGxzY3JlZW5G
b3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgZmluYWw7CisgICAgdm9pZCBl
eGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1l
bnQmKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE5PVElGSUNBVElPTlMpIHx8IEVOQUJM
RShMRUdBQ1lfTk9USUZJQ0FUSU9OUykKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Ok5vdGlmaWNhdGlv
bkNsaWVudCogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QgeyByZXR1cm4gcmVpbnRlcnBy
ZXRfY2FzdDxXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQqPihtX25vdGlmaWNhdGlvbnNEZWxl
Z2F0ZS5nZXQoKSk7IH0KKyAgICBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQqIG5vdGlmaWNh
dGlvblByZXNlbnRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8V2Vi
Q29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50Kj4obV9ub3RpZmljYXRpb25zRGVsZWdhdGUuZ2V0KCkp
OyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlv
bklzTmF0dXJhbCgpOwotICAgIHZpcnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93
c01lbnVXcml0aW5nRGlyZWN0aW9uKCk7Ci0gICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVw
KCkgY29uc3Q7Ci0gICAgdmlydHVhbCBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQ
b3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7Ci0gICAgdmlydHVhbCBS
ZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2Vi
Q29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Q7CisgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGlu
Z0RpcmVjdGlvbklzTmF0dXJhbCgpIGZpbmFsOworICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVu
dEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpIGZpbmFsOworICAgIGJvb2wgaGFzT3BlbmVk
UG9wdXAoKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVh
dGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CisgICAg
UmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdl
YkNvcmU6OlBvcHVwTWVudUNsaWVudCYpIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxFKEZVTExT
Q1JFRU5fQVBJKQotICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50
KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQqLCBib29sIHdpdGhLZXlib2FyZCk7Ci0gICAgdmlydHVh
bCB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopOwotICAg
IHZpcnR1YWwgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCop
OworICAgIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpF
bGVtZW50JiwgYm9vbCB3aXRoS2V5Ym9hcmQpIGZpbmFsOworICAgIHZvaWQgZW50ZXJGdWxsU2Ny
ZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CisgICAgdm9pZCBleGl0RnVs
bFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOwogI2VuZGlmCiAKLSAg
ICB2b2lkIHdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoYm9vbCkgb3ZlcnJpZGUgeyB9CisgICAg
dm9pZCB3aGVlbEV2ZW50SGFuZGxlcnNDaGFuZ2VkKGJvb2wpIGZpbmFsIHsgfQogCiAgICAgV2Vi
Vmlldyogd2ViVmlldygpIHsgcmV0dXJuIG1fd2ViVmlldzsgfQogCi0gICAgdmlydHVhbCB2b2lk
IEFYU3RhcnRGcmFtZUxvYWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgQVhGaW5pc2hGcmFtZUxvYWQo
KTsKKyAgICB2b2lkIEFYU3RhcnRGcmFtZUxvYWQoKSBmaW5hbDsKKyAgICB2b2lkIEFYRmluaXNo
RnJhbWVMb2FkKCkgZmluYWw7CiAKLSAgICBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZy
YW1lVmlldyhjb25zdCBXZWJDb3JlOjpGcmFtZVZpZXcqKSBjb25zdCBvdmVycmlkZTsKKyAgICBi
b29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBXZWJDb3JlOjpGcmFt
ZVZpZXcmKSBjb25zdCBmaW5hbDsKIAogcHJpdmF0ZToKICAgICBDT01QdHI8SVdlYlVJRGVsZWdh
dGU+IHVpRGVsZWdhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCAxMGI1Y2VlZGMzZTcwZDUw
YWRjMjc4MjExOTQ4ZWY5MDBlNjBiYzZmLi4zZDEzY2Q0NDZjNmFmNzdhMGVjZjBlZWVkOGMxYzhi
NTdiNjlhYWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xMDI1LDcgKzEwMjUsNyBAQCBSZWZQ
dHI8RnJhbWU+IFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpjcmVhdGVGcmFtZShjb25zdCBVUkwmIHVy
bCwgY29uc3QgU3RyaW5nJiBuYQogICAgIFJlZlB0cjxGcmFtZT4gY2hpbGRGcmFtZSA9IHdlYkZy
YW1lLT5jcmVhdGVTdWJmcmFtZVdpdGhPd25lckVsZW1lbnQobV93ZWJGcmFtZS0+d2ViVmlldygp
LCBjb3JlRnJhbWUtPnBhZ2UoKSwgJm93bmVyRWxlbWVudCk7CiAKICAgICBjaGlsZEZyYW1lLT50
cmVlKCkuc2V0TmFtZShuYW1lKTsKLSAgICBjb3JlRnJhbWUtPnRyZWUoKS5hcHBlbmRDaGlsZChj
aGlsZEZyYW1lKTsKKyAgICBjb3JlRnJhbWUtPnRyZWUoKS5hcHBlbmRDaGlsZCgqY2hpbGRGcmFt
ZSk7CiAgICAgY2hpbGRGcmFtZS0+aW5pdCgpOwogCiAgICAgY29yZUZyYW1lLT5sb2FkZXIoKS5s
b2FkVVJMSW50b0NoaWxkRnJhbWUodXJsLCByZWZlcnJlciwgY2hpbGRGcmFtZS5nZXQoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlZpZXcuY3BwCmluZGV4IDUxNzVmMDAyZDYxNzJiZTE2MDgwM2Y0NzNlMWRhZTJlMDQz
NjFiNTcuLjkzNzAxOWRiY2MxY2FkNjFlMmEyYjA0OTU1ODViYTVjYmQwMmY0MGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCkBAIC01ODUzLDcgKzU4NTMsNyBAQCBIUkVTVUxUIFdlYlZpZXc6OnN0YW5k
YXJkVXNlckFnZW50V2l0aEFwcGxpY2F0aW9uTmFtZShfSW5fIEJTVFIgYXBwbGljYXRpb25OYW1l
LAogSFJFU1VMVCBXZWJWaWV3OjpjbGVhckZvY3VzTm9kZSgpCiB7CiAgICAgaWYgKG1fcGFnZSkK
LSAgICAgICAgbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudCgwLCAw
KTsKKyAgICAgICAgbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChu
dWxscHRyLCBtX3BhZ2UtPmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpKTsK
ICAgICByZXR1cm4gU19PSzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggZTExNTUyOTEw
NjQ3MDFiODhiN2IzMmFiY2QxZjJlNjU0MzNlMjg5ZS4uNDIxYzc0NTdjOTAzYjQ3ZTJlMWE3YjQ4
ODk4ODFmNTdjMzBlYWM0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Nj
cm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCkBAIC0xMTAsNyArMTEwLDcg
QEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3RzU2Ny
b2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQKICAgICBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJv
eHkuc2Nyb2xsaW5nVHJlZU5vZGVSZXF1ZXN0c1Njcm9sbChub2RlSUQsIHNjcm9sbFBvc2l0aW9u
LCByZXByZXNlbnRzUHJvZ3JhbW1hdGljU2Nyb2xsKTsKIH0KIAotUGFzc1JlZlB0cjxTY3JvbGxp
bmdUcmVlTm9kZT4gUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUo
U2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCitSZWY8
U2Nyb2xsaW5nVHJlZU5vZGU+IFJlbW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1Ry
ZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9kZUlE
KQogewogICAgIHN3aXRjaCAobm9kZVR5cGUpIHsKICAgICBjYXNlIEZyYW1lU2Nyb2xsaW5nTm9k
ZToKQEAgLTEyNCwxNCArMTI0LDE1IEBAIFBhc3NSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+IFJl
bW90ZVNjcm9sbGluZ1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sCiAgICAgICAg
IHJldHVybiBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjpjcmVhdGUoKnRo
aXMsIG5vZGVJRCk7CiAjZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGJyZWFrOwogI2VuZGlmCiAgICAgY2FzZSBGaXhl
ZE5vZGU6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRo
aXMsIG5vZGVJRCk7CiAgICAgY2FzZSBTdGlja3lOb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xs
aW5nVHJlZVN0aWNreU5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICB9Ci0gICAgcmV0
dXJuIG51bGxwdHI7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFNjcm9s
bGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKIH0KIAogdm9pZCBSZW1v
dGVTY3JvbGxpbmdUcmVlOjpjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShTY3JvbGxp
bmdOb2RlSUQgbm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Ny
b2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVT
Y3JvbGxpbmdUcmVlLmgKaW5kZXggZDY1YjJmNWVkNmRkZjU3ZWM0NDBkZjQ5MGQyZTExNjhjOGVj
MDVjOS4uNzMxOGNjYzgxNGNhNTcxNmRjNzBjMjRiNmM0NDE3OGQyNTZjZGE3MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxp
bmdUcmVlLmgKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7CiAKLWNsYXNzIFJlbW90ZVNjcm9sbGluZ1Ry
ZWUgOiBwdWJsaWMgV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZSB7CitjbGFzcyBSZW1vdGVTY3JvbGxp
bmdUcmVlIGZpbmFsIDogcHVibGljIFdlYkNvcmU6OlNjcm9sbGluZ1RyZWUgewogcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8UmVtb3RlU2Nyb2xsaW5nVHJlZT4gY3JlYXRlKFJlbW90ZVNjcm9sbGlu
Z0Nvb3JkaW5hdG9yUHJveHkmKTsKICAgICB2aXJ0dWFsIH5SZW1vdGVTY3JvbGxpbmdUcmVlKCk7
CkBAIC02NSw3ICs2NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURp
ZEVuZFNjcm9sbCgpIG92ZXJyaWRlOwogI2VuZGlmCiAKLSAgICBQYXNzUmVmUHRyPFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShXZWJDb3JlOjpTY3Jv
bGxpbmdOb2RlVHlwZSwgV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlEKSBvdmVycmlkZTsKKyAgICBS
ZWY8V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFdl
YkNvcmU6OlNjcm9sbGluZ05vZGVUeXBlLCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpIG92ZXJy
aWRlOwogICAgIAogICAgIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkmIG1fc2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5jcHAKaW5k
ZXggODA1OWFkNTVhYWUzMmY4ZTUzYTcwMTliNTI4N2VlOGIwOTQwYjkxNC4uYTc5ZDEwYTlkNTA3
NzEwNDVjZTU4MzBlYTU3Mzc0Yzg0MTg1NjI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
LmNwcApAQCAtMzY4LDIyICszNjgsMjIgQEAgV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RSZWYgV0tC
dW5kbGVQYWdlR2V0QmFja0ZvcndhcmRMaXN0KFdLQnVuZGxlUGFnZVJlZiBwYWdlUmUKIAogdm9p
ZCBXS0J1bmRsZVBhZ2VJbnN0YWxsUGFnZU92ZXJsYXkoV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYs
IFdLQnVuZGxlUGFnZU92ZXJsYXlSZWYgcGFnZU92ZXJsYXlSZWYpCiB7Ci0gICAgdG9JbXBsKHBh
Z2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VP
dmVybGF5KHRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBh
Z2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICB0b0ltcGwocGFnZVJlZiktPm1h
aW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkoKnRv
SW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5
OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VVbmluc3RhbGxQ
YWdlT3ZlcmxheShXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQYWdlT3ZlcmxheVJl
ZiBwYWdlT3ZlcmxheVJlZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgpLT5w
YWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSh0b0ltcGwocGFnZU92
ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6
OkRvTm90RmFkZSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJs
YXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKnRvSW1wbChwYWdlT3ZlcmxheVJl
ZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RG
YWRlKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VJbnN0YWxsUGFnZU92ZXJsYXlXaXRoQW5pbWF0
aW9uKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0J1bmRsZVBhZ2VPdmVybGF5UmVmIHBhZ2VP
dmVybGF5UmVmKQogewotICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVy
bGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSh0b0ltcGwocGFnZU92ZXJsYXlSZWYp
LT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOwor
ICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigp
Lmluc3RhbGxQYWdlT3ZlcmxheSgqdG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXko
KSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKIH0KIAogdm9pZCBXS0J1
bmRsZVBhZ2VVbmluc3RhbGxQYWdlT3ZlcmxheVdpdGhBbmltYXRpb24oV0tCdW5kbGVQYWdlUmVm
IHBhZ2VSZWYsIFdLQnVuZGxlUGFnZU92ZXJsYXlSZWYgcGFnZU92ZXJsYXlSZWYpCiB7Ci0gICAg
dG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5p
bnN0YWxsUGFnZU92ZXJsYXkodG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwg
V2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICB0b0ltcGwocGFnZVJl
ZiktPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3Zl
cmxheSgqdG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6UGFn
ZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKIH0KIAogdm9pZCBXS0J1bmRsZVBhZ2VTZXRUb3BP
dmVyaGFuZ0ltYWdlKFdLQnVuZGxlUGFnZVJlZiBwYWdlUmVmLCBXS0ltYWdlUmVmIGltYWdlUmVm
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXBy
ZWNhdGVkUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9EZXByZWNhdGVkUERGUGx1Z2luLm1tCmluZGV4IDg1MDlhZTY1MDI0ZDRlZTU5MmVkMTI1YTEy
MTIxNDBmMDdmY2UzMWUuLjQxZWIwMzk0NmZhOWE0YWFmZDBmOGYxNjA5YmMxM2YzNzU3Zjk1Y2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVj
YXRlZFBERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KQEAgLTg2MCw3ICs4NjAsNyBAQCBKU1ZhbHVlUmVm
IFBERlBsdWdpbjo6anNQREZEb2NQcmludChKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBm
dW5jdGlvbiwgSlNPYgogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGN0eCk7CiAKLSAgICBwYWdlLT5jaHJvbWUoKS5wcmludChjb3JlRnJhbWUpOwor
ICAgIHBhZ2UtPmNocm9tZSgpLnByaW50KCpjb3JlRnJhbWUpOwogCiAgICAgcmV0dXJuIEpTVmFs
dWVNYWtlVW5kZWZpbmVkKGN0eCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggNTYyYTlhMmUxNTdjNDNjNWRlNzVjM2Y3MjU2
MzEyZGZlNGUxNTdiYy4uZDlhNDI4ODYxYmVjNTY0NTNhN2YwY2UxM2QzYmY5ODkxZjNkOTkyOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cApAQCAtMTEyOCw3ICsxMTI4LDcgQEAgdm9pZCBQbHVnaW5WaWV3Ojpmb2N1c1BsdWdpbkVsZW1l
bnQoKQogICAgIEFTU0VSVChmcmFtZSgpKTsKICAgICAKICAgICBpZiAoUGFnZSogcGFnZSA9IGZy
YW1lKCktPnBhZ2UoKSkKLSAgICAgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNl
ZEVsZW1lbnQobV9wbHVnaW5FbGVtZW50LmdldCgpLCBmcmFtZSgpKTsKKyAgICAgICAgcGFnZS0+
Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQobV9wbHVnaW5FbGVtZW50LmdldCgp
LCAqZnJhbWUoKSk7CiAgICAgZWxzZQogICAgICAgICBmcmFtZSgpLT5kb2N1bWVudCgpLT5zZXRG
b2N1c2VkRWxlbWVudChtX3BsdWdpbkVsZW1lbnQuZ2V0KCkpOwogfQpAQCAtMTUwOCw3ICsxNTA4
LDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYgc3Rh
dHVzYmFyVGV4dCkKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBhZ2Ut
PmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQoZnJhbWUoKSwgc3RhdHVzYmFyVGV4dCk7CisgICAg
cGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dCgqZnJhbWUoKSwgc3RhdHVzYmFyVGV4dCk7
CiB9CiAKIGJvb2wgUGx1Z2luVmlldzo6aXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNDk4MzRjM2EzMGViZjkyMTVlOWY1NGU5MWRj
YjI0ZWExM2Y5NGNlZC4uYThkZmRmYzk1MzBlZTA2ZjMxYzhmNWIxNGZkNjcyZmZlMjRiMjNjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTAzLDcgKzEwMyw2IEBAIHN0YXRpYyBkb3Vi
bGUgYXJlYShXZWJGcmFtZSogZnJhbWUpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4o
c2l6ZS5oZWlnaHQoKSkgKiBzaXplLndpZHRoKCk7CiB9CiAKLQogc3RhdGljIFdlYkZyYW1lKiBm
aW5kTGFyZ2VzdEZyYW1lSW5GcmFtZVNldChXZWJQYWdlJiBwYWdlKQogewogICAgIC8vIEFwcHJv
eGltYXRlIHdoYXQgYSB1c2VyIGNvdWxkIGNvbnNpZGVyIGEgZGVmYXVsdCB0YXJnZXQgZnJhbWUg
Zm9yIGFwcGxpY2F0aW9uIG1lbnUgb3BlcmF0aW9ucy4KQEAgLTE3OSwyMCArMTc4LDIyIEBAIHZv
aWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmZvY3VzKCkKIH0KIAogI2lmIFBMQVRGT1JNKENPQ09BKQot
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRGb2N1cyhjb25zdCBXZWJDb3JlOjpOb2Rl
KiBub2RlKQorCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEZvY3VzKFdlYkNvcmU6
OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9wYWdlLmVsZW1lbnREaWRGb2N1cyhjb25zdF9j
YXN0PFdlYkNvcmU6Ok5vZGUqPihub2RlKSk7CisgICAgbV9wYWdlLmVsZW1lbnREaWRGb2N1cygm
ZWxlbWVudCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkQmx1cihjb25z
dCBXZWJDb3JlOjpOb2RlKiBub2RlKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRC
bHVyKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9wYWdlLmVsZW1lbnREaWRC
bHVyKGNvbnN0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KG5vZGUpKTsKKyAgICBtX3BhZ2UuZWxlbWVu
dERpZEJsdXIoJmVsZW1lbnQpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6bWFrZUZpcnN0
UmVzcG9uZGVyKCkKIHsKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpN
YWtlRmlyc3RSZXNwb25kZXIoKSk7Ci19ICAgIAorfQorCiAjZW5kaWYgICAgCiAKIGJvb2wgV2Vi
Q2hyb21lQ2xpZW50OjpjYW5UYWtlRm9jdXMoRm9jdXNEaXJlY3Rpb24pCkBAIC0yMjcsMTYgKzIy
OCwxNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSog
ZnJhbWUpCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGb2N1c2VkRnJhbWVDaGFuZ2VkKHdl
YkZyYW1lID8gd2ViRnJhbWUtPmZyYW1lSUQoKSA6IDApLCBtX3BhZ2UucGFnZUlEKCkpOwogfQog
Ci1QYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJhbWUsIGNvbnN0
IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiB3aW5kb3dG
ZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbikKK1BhZ2Uq
IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVM
b2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVyZXMmIHdpbmRvd0ZlYXR1cmVz
LCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQogewogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKLSAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCkgJiYgZnJhbWUtPmRv
Y3VtZW50KCktPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVudCgpKQotICAgICAgICBmcmFt
ZS0+ZG9jdW1lbnQoKS0+d2Via2l0Q2FuY2VsRnVsbFNjcmVlbigpOworICAgIGlmIChmcmFtZS5k
b2N1bWVudCgpICYmIGZyYW1lLmRvY3VtZW50KCktPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxl
bWVudCgpKQorICAgICAgICBmcmFtZS5kb2N1bWVudCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVu
KCk7CiAjZW5kaWYKIAogICAgIGF1dG8mIHdlYlByb2Nlc3MgPSBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKTsKIAotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1l
KCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJh
bWUoZnJhbWUpOwogCiAgICAgTmF2aWdhdGlvbkFjdGlvbkRhdGEgbmF2aWdhdGlvbkFjdGlvbkRh
dGE7CiAgICAgbmF2aWdhdGlvbkFjdGlvbkRhdGEubmF2aWdhdGlvblR5cGUgPSBuYXZpZ2F0aW9u
QWN0aW9uLnR5cGUoKTsKQEAgLTI1MCw3ICsyNTEsNyBAQCBQYWdlKiBXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZVdpbmRvdyhGcmFtZSogZnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmIHJlcXVl
cwogCiAgICAgdWludDY0X3QgbmV3UGFnZUlEID0gMDsKICAgICBXZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzIHBhcmFtZXRlcnM7Ci0gICAgaWYgKCF3ZWJQcm9jZXNzLnBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2Uo
d2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoZnJhbWUp
LCByZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpLCB3aW5kb3dGZWF0dXJlcywgbmF2aWdhdGlvbkFj
dGlvbkRhdGEpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpSZXBseShu
ZXdQYWdlSUQsIHBhcmFtZXRlcnMpLCBtX3BhZ2UucGFnZUlEKCkpKQorICAgIGlmICghd2ViUHJv
Y2Vzcy5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpDcmVhdGVOZXdQYWdlKHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2lu
RGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIHdpbmRv
d0ZlYXR1cmVzLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkNyZWF0ZU5ld1BhZ2U6OlJlcGx5KG5ld1BhZ2VJRCwgcGFyYW1ldGVycyksIG1fcGFnZS5wYWdl
SUQoKSkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgaWYgKCFuZXdQYWdlSUQpCkBA
IC0zNjEsOSArMzYyLDkgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbCgpCiAgICAgcmV0dXJuIG1fcGFnZS5jYW5SdW5CZWZvcmVVbmxvYWRDb25m
aXJtUGFuZWwoKTsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9hZENv
bmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKiBmcmFtZSkKK2Jvb2wgV2Vi
Q2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlLCBGcmFtZSYgZnJhbWUpCiB7Ci0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJh
bWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJG
cmFtZTo6ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAKICAgICBib29sIHNob3VsZENsb3NlID0gZmFs
c2U7CiAKQEAgLTQwMiwxMiArNDAzLDEyIEBAIHN0YXRpYyBib29sIHNob3VsZFN1cHByZXNzSmF2
YVNjcmlwdERpYWxvZ3MoRnJhbWUmIGZyYW1lKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0
IFN0cmluZyYgYWxlcnRUZXh0KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRB
bGVydChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgYWxlcnRUZXh0KQogewotICAgIGlmIChz
aG91bGRTdXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKCpmcmFtZSkpCisgICAgaWYgKHNob3VsZFN1
cHByZXNzSmF2YVNjcmlwdERpYWxvZ3MoZnJhbWUpKQogICAgICAgICByZXR1cm47CiAKLSAgICBX
ZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAg
IFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKICAg
ICBBU1NFUlQod2ViRnJhbWUpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgpA
QCAtNDE1LDE1ICs0MTYsMTUgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRB
bGVydChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgYWxlcnRUZXh0KQogCiAgICAgSGFuZ0Rl
dGVjdGlvbkRpc2FibGVyIGhhbmdEZXRlY3Rpb25EaXNhYmxlcjsKIAotICAgIFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydCh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBT
ZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIGFsZXJ0VGV4dCksIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRBbGVydDo6UmVwbHkoKSwgbV9wYWdlLnBhZ2VJ
RCgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0
Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UnVuSmF2YVNjcmlwdEFsZXJ0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0
YTo6ZnJvbUZyYW1lKCZmcmFtZSksIGFsZXJ0VGV4dCksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlJ1bkphdmFTY3JpcHRBbGVydDo6UmVwbHkoKSwgbV9wYWdlLnBhZ2VJRCgpLCBTZWNvbmRzOjpp
bmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxs
U3VzcGVuZCk7CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmly
bShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK2Jvb2wgV2ViQ2hyb21lQ2xp
ZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSkKIHsKLSAgICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncygqZnJhbWUp
KQorICAgIGlmIChzaG91bGRTdXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKGZyYW1lKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZy
b21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6
ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogICAgIC8vIE5v
dGlmeSB0aGUgYnVuZGxlIGNsaWVudC4KQEAgLTQzMiwxOCArNDMzLDE4IEBAIGJvb2wgV2ViQ2hy
b21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSkKICAgICBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIgaGFuZ0RldGVjdGlvbkRpc2Fi
bGVyOwogCiAgICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtKHdlYkZyYW1lLT5mcmFtZUlEKCksIFNl
Y3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGZyYW1lKSwgbWVzc2FnZSksIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtOjpSZXBseShyZXN1bHQpLCBtX3BhZ2Uu
cGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9y
bVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmds
ZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25maXJtKHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3Vy
aXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIG1lc3NhZ2UpLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0Q29uZmlybTo6UmVwbHkocmVzdWx0KSwgbV9wYWdlLnBh
Z2VJRCgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1Q
bGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0
UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcm
IGRlZmF1bHRWYWx1ZSwgU3RyaW5nJiByZXN1bHQpCitib29sIFdlYkNocm9tZUNsaWVudDo6cnVu
SmF2YVNjcmlwdFByb21wdChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29u
c3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQogewotICAgIGlmIChzaG91
bGRTdXBwcmVzc0phdmFTY3JpcHREaWFsb2dzKCpmcmFtZSkpCisgICAgaWYgKHNob3VsZFN1cHBy
ZXNzSmF2YVNjcmlwdERpYWxvZ3MoZnJhbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAg
ICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOwor
ICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsK
ICAgICBBU1NFUlQod2ViRnJhbWUpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50
LgpAQCAtNDUxLDcgKzQ1Miw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0
UHJvbXB0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjCiAKICAgICBIYW5n
RGV0ZWN0aW9uRGlzYWJsZXIgaGFuZ0RldGVjdGlvbkRpc2FibGVyOwogCi0gICAgaWYgKCFXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0KHdlYkZyYW1lLT5mcmFt
ZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKGZyYW1lKSwgbWVzc2FnZSwgZGVm
YXVsdFZhbHVlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6
UmVwbHkocmVzdWx0KSwgbV9wYWdlLnBhZ2VJRCgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6
OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCkpCisgICAg
aWYgKCFXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5z
ZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0KHdlYkZy
YW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1lKCZmcmFtZSksIG1l
c3NhZ2UsIGRlZmF1bHRWYWx1ZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3Jp
cHRQcm9tcHQ6OlJlcGx5KHJlc3VsdCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5p
dHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3Bl
bmQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gIXJlc3VsdC5pc051bGwo
KTsKQEAgLTU1Niw3ICs1NTcsNyBAQCBQbGF0Zm9ybVBhZ2VDbGllbnQgV2ViQ2hyb21lQ2xpZW50
OjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIFdl
YkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IElu
dFNpemUmIHNpemUpIGNvbnN0Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hh
bmdlZChGcmFtZSYgZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUpIGNvbnN0CiB7CiAgICAgaWYg
KCFtX3BhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5mcmFtZUZsYXR0ZW5pbmdFbmFibGVkKCkp
IHsKICAgICAgICAgV2ViRnJhbWUqIGxhcmdlc3RGcmFtZSA9IGZpbmRMYXJnZXN0RnJhbWVJbkZy
YW1lU2V0KG1fcGFnZSk7CkBAIC01NjYsMTQgKzU2NywxNCBAQCB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFtZSogZnJhbWUsIGNvbnN0IEludFNpemUmIHNpemUp
IGNvbgogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKCZmcmFtZS0+cGFnZSgpLT5tYWluRnJh
bWUoKSAhPSBmcmFtZSkKKyAgICBpZiAoJmZyYW1lLnBhZ2UoKS0+bWFpbkZyYW1lKCkgIT0gJmZy
YW1lKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEaWRDaGFuZ2VDb250ZW50U2l6ZShzaXplKSk7CiAKICAgICBtX3BhZ2UuZHJhd2lu
Z0FyZWEoKS0+bWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKHNpemUpOwogCi0gICAgRnJhbWVW
aWV3KiBmcmFtZVZpZXcgPSBmcmFtZS0+dmlldygpOworICAgIEZyYW1lVmlldyogZnJhbWVWaWV3
ID0gZnJhbWUudmlldygpOwogICAgIGlmIChmcmFtZVZpZXcgJiYgIWZyYW1lVmlldy0+ZGVsZWdh
dGVzU2Nyb2xsaW5nKCkpICB7CiAgICAgICAgIGJvb2wgaGFzSG9yaXpvbnRhbFNjcm9sbGJhciA9
IGZyYW1lVmlldy0+aG9yaXpvbnRhbFNjcm9sbGJhcigpOwogICAgICAgICBib29sIGhhc1ZlcnRp
Y2FsU2Nyb2xsYmFyID0gZnJhbWVWaWV3LT52ZXJ0aWNhbFNjcm9sbGJhcigpOwpAQCAtNjExLDIx
ICs2MTIsMjEgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVuYXZhaWxhYmxlUGx1Z2lu
TWVzc2FnZUJlQnV0dG9uKFJlbmRlckVtYmVkZGVkT2JqZWMKICAgICByZXR1cm4gZmFsc2U7CiB9
CiAgICAgCi12b2lkIFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlj
a2VkKEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWls
YWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCYgZWxl
bWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBs
dWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdAogewogI2lmIEVOQUJMRShORVRTQ0FQRV9Q
TFVHSU5fQVBJKQotICAgIEFTU0VSVChlbGVtZW50LT5oYXNUYWdOYW1lKG9iamVjdFRhZykgfHwg
ZWxlbWVudC0+aGFzVGFnTmFtZShlbWJlZFRhZykgfHwgZWxlbWVudC0+aGFzVGFnTmFtZShhcHBs
ZXRUYWcpKTsKKyAgICBBU1NFUlQoZWxlbWVudC5oYXNUYWdOYW1lKG9iamVjdFRhZykgfHwgZWxl
bWVudC5oYXNUYWdOYW1lKGVtYmVkVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoYXBwbGV0VGFn
KSk7CiAgICAgQVNTRVJUKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uID09IFJlbmRlckVtYmVk
ZGVkT2JqZWN0OjpQbHVnaW5NaXNzaW5nIHx8IHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uID09
IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpJbnNlY3VyZVBsdWdpblZlcnNpb24gfHwgcGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb24pOwogCi0gICAgSFRNTFBsdWdJbkltYWdlRWxlbWVudCogcGx1Z2lu
RWxlbWVudCA9IHN0YXRpY19jYXN0PEhUTUxQbHVnSW5JbWFnZUVsZW1lbnQqPihlbGVtZW50KTsK
KyAgICBhdXRvJiBwbHVnaW5FbGVtZW50ID0gZG93bmNhc3Q8SFRNTFBsdWdJbkltYWdlRWxlbWVu
dD4oZWxlbWVudCk7CiAKLSAgICBTdHJpbmcgZnJhbWVVUkxTdHJpbmcgPSBwbHVnaW5FbGVtZW50
LT5kb2N1bWVudCgpLmZyYW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNl
VVJMKCkuc3RyaW5nKCk7CisgICAgU3RyaW5nIGZyYW1lVVJMU3RyaW5nID0gcGx1Z2luRWxlbWVu
dC5kb2N1bWVudCgpLmZyYW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNl
VVJMKCkuc3RyaW5nKCk7CiAgICAgU3RyaW5nIHBhZ2VVUkxTdHJpbmcgPSBtX3BhZ2UubWFpbkZy
YW1lKCktPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlVVJMKCkuc3RyaW5nKCk7
Ci0gICAgU3RyaW5nIHBsdWdpblVSTFN0cmluZyA9IHBsdWdpbkVsZW1lbnQtPmRvY3VtZW50KCku
Y29tcGxldGVVUkwocGx1Z2luRWxlbWVudC0+dXJsKCkpLnN0cmluZygpOwotICAgIFVSTCBwbHVn
aW5zcGFnZUF0dHJpYnV0ZVVSTCA9IGVsZW1lbnQtPmRvY3VtZW50KCkuY29tcGxldGVVUkwoc3Ry
aXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHBsdWdpbkVsZW1lbnQtPmdldEF0dHJpYnV0
ZShwbHVnaW5zcGFnZUF0dHIpKSk7CisgICAgU3RyaW5nIHBsdWdpblVSTFN0cmluZyA9IHBsdWdp
bkVsZW1lbnQuZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChwbHVnaW5FbGVtZW50LnVybCgpKS5zdHJp
bmcoKTsKKyAgICBVUkwgcGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkwgPSBwbHVnaW5FbGVtZW50LmRv
Y3VtZW50KCkuY29tcGxldGVVUkwoc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHBs
dWdpbkVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihwbHVnaW5zcGFnZUF0
dHIpKSk7CiAgICAgaWYgKCFwbHVnaW5zcGFnZUF0dHJpYnV0ZVVSTC5wcm90b2NvbElzSW5IVFRQ
RmFtaWx5KCkpCiAgICAgICAgIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMID0gVVJMKCk7Ci0gICAg
bV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6VW5hdmFpbGFibGVQbHVnaW5CdXR0
b25DbGlja2VkKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBwbHVnaW5FbGVtZW50LT5zZXJ2
aWNlVHlwZSgpLCBwbHVnaW5VUkxTdHJpbmcsIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMLnN0cmlu
ZygpLCBmcmFtZVVSTFN0cmluZywgcGFnZVVSTFN0cmluZykpOworICAgIG1fcGFnZS5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OlVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChwbHVn
aW5VbmF2YWlsYWJpbGl0eVJlYXNvbiwgcGx1Z2luRWxlbWVudC5zZXJ2aWNlVHlwZSgpLCBwbHVn
aW5VUkxTdHJpbmcsIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMLnN0cmluZygpLCBmcmFtZVVSTFN0
cmluZywgcGFnZVVSTFN0cmluZykpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oZWxlbWVudCk7
CiAgICAgVU5VU0VEX1BBUkFNKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKTsKQEAgLTY2MCw5
ICs2NjEsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VG9vbFRpcChjb25zdCBTdHJpbmcm
IHRvb2xUaXAsIFRleHREaXJlY3Rpb24pCiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6U2V0VG9vbFRpcChtX2NhY2hlZFRvb2xUaXApKTsKIH0KIAotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnByaW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpwcmlu
dChGcmFtZSYgZnJhbWUpCiB7Ci0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZy
b21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6
ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKIAogI2lmIFBMQVRG
T1JNKEdUSykgJiYgSEFWRShHVEtfVU5JWF9QUklOVElORykKQEAgLTY4OCwxMiArNjg5LDEyIEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSogZnJhbWUpCiAgICAgbV9wYWdlLnNl
bmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlByaW50RnJhbWUod2ViRnJhbWUtPmZyYW1l
SUQoKSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlByaW50RnJhbWU6OlJlcGx5KCksIFNlY29u
ZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vz
c1dpbGxTdXNwZW5kKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJh
c2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFz
ZURldGFpbHMgZGV0YWlscykKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNl
UXVvdGEoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VE
ZXRhaWxzIGRldGFpbHMpCiB7Ci0gICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZy
b21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6
ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAgICAgQVNTRVJUKHdlYkZyYW1lKTsKICAgICAKLSAgICBh
dXRvJiBvcmlnaW4gPSBmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICBh
dXRvJiBvcmlnaW4gPSBmcmFtZS5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpOwogICAgIGF1
dG8gb3JpZ2luRGF0YSA9IFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKG9y
aWdpbik7CiAgICAgYXV0byYgdHJhY2tlciA9IERhdGFiYXNlVHJhY2tlcjo6c2luZ2xldG9uKCk7
CiAgICAgYXV0byBjdXJyZW50UXVvdGEgPSB0cmFja2VyLnF1b3RhKG9yaWdpbkRhdGEpOwpAQCAt
NzE2LDkgKzcxNyw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkTWF4QXBwQ2FjaGVT
aXplKGludDY0X3QpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4q
IG9yaWdpbiwgaW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4mIG9yaWdp
biwgaW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkKQogewotICAgIFJlZlB0cjxBUEk6OlNlY3VyaXR5
T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21T
dHJpbmcob3JpZ2luLT50b1N0cmluZygpKTsKKyAgICBSZWZQdHI8QVBJOjpTZWN1cml0eU9yaWdp
bj4gc2VjdXJpdHlPcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5n
KG9yaWdpbi50b1N0cmluZygpKTsKICAgICBpZiAobV9wYWdlLmluamVjdGVkQnVuZGxlVUlDbGll
bnQoKS5kaWRSZWFjaEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YSgmbV9wYWdlLCBzZWN1cml0
eU9yaWdpbi5nZXQoKSwgdG90YWxCeXRlc05lZWRlZCkpCiAgICAgICAgIHJldHVybjsKIApAQCAt
NzI5LDE3ICs3MzAsMTkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlv
bkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4qIG9yaWdpbiwKIAogICAgIHVpbnQ2NF90
IG5ld1F1b3RhID0gMDsKICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5zZW5kU3luYygKLSAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbigqb3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSwg
Y3VycmVudFF1b3RhLCB0b3RhbEJ5dGVzTmVlZGVkKSwKKyAgICAgICAgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihvcmlnaW4pLmRhdGFiYXNlSWRlbnRp
ZmllcigpLCBjdXJyZW50UXVvdGEsIHRvdGFsQnl0ZXNOZWVkZWQpLAogICAgICAgICBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhOjpSZXBs
eShuZXdRdW90YSksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpT
ZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpOwogCi0gICAg
Y2FjaGVTdG9yYWdlLnN0b3JlVXBkYXRlZFF1b3RhRm9yT3JpZ2luKG9yaWdpbiwgbmV3UXVvdGEp
OworICAgIGNhY2hlU3RvcmFnZS5zdG9yZVVwZGF0ZWRRdW90YUZvck9yaWdpbigmb3JpZ2luLCBu
ZXdRdW90YSk7CiB9CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCisKIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojphbm5vdGF0ZWRSZWdpb25zQ2hhbmdlZCgpCiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KKwogI2VuZGlmCiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRSZXBs
YWNlV2l0aEdlbmVyYXRlZEZpbGVGb3JVcGxvYWQoY29uc3QgU3RyaW5nJiBwYXRoLCBTdHJpbmcm
IGdlbmVyYXRlZEZpbGVuYW1lKQpAQCAtNzU0LDEwICs3NTcsMTIgQEAgU3RyaW5nIFdlYkNocm9t
ZUNsaWVudDo6Z2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKQogfQog
CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi1zdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9v
c2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGll
bnQqIGNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKKworc3RkOjp1bmlxdWVfcHRy
PENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIoQ29sb3JD
aG9vc2VyQ2xpZW50JiBjbGllbnQsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpCiB7Ci0gICAg
cmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2ViQ29sb3JDaG9vc2VyPigmbV9wYWdlLCBjbGllbnQs
IGluaXRpYWxDb2xvcik7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2ViQ29sb3JDaG9v
c2VyPigmbV9wYWdlLCAmY2xpZW50LCBpbml0aWFsQ29sb3IpOwogfQorCiAjZW5kaWYKIAogdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bk9wZW5QYW5lbChGcmFtZSYgZnJhbWUsIEZpbGVDaG9vc2Vy
JiBmaWxlQ2hvb3NlcikKQEAgLTgzMiwxNCArODM3LDE0IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50
OjpoYXNPcGVuZWRQb3B1cCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1SZWZQdHI8
V2ViQ29yZTo6UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVBvcHVwTWVudShXZWJD
b3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxXZWJDb3JlOjpQb3B1
cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVu
dUNsaWVudCYgY2xpZW50KSBjb25zdAogewotICAgIHJldHVybiBXZWJQb3B1cE1lbnU6OmNyZWF0
ZSgmbV9wYWdlLCBjbGllbnQpOworICAgIHJldHVybiBXZWJQb3B1cE1lbnU6OmNyZWF0ZSgmbV9w
YWdlLCAmY2xpZW50KTsKIH0KIAotUmVmUHRyPFdlYkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gV2Vi
Q2hyb21lQ2xpZW50OjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xp
ZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJD
aHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGll
bnQmIGNsaWVudCkgY29uc3QKIHsKLSAgICByZXR1cm4gV2ViU2VhcmNoUG9wdXBNZW51OjpjcmVh
dGUoJm1fcGFnZSwgY2xpZW50KTsKKyAgICByZXR1cm4gV2ViU2VhcmNoUG9wdXBNZW51OjpjcmVh
dGUoJm1fcGFnZSwgJmNsaWVudCk7CiB9CiAKIEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBXZWJDaHJv
bWVDbGllbnQ6OmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgY29uc3QKQEAgLTg1OCw3ICs4NjMsNyBA
QCBSZWZQdHI8V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yPiBXZWJDaHJvbWVDbGllbnQ6
OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaQogCiAjZW5kaWYKIAotdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciogbGF5ZXIp
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBH
cmFwaGljc0xheWVyKiBsYXllcikKIHsKICAgICBpZiAobGF5ZXIpCiAgICAgICAgIG1fcGFnZS5l
bnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyKTsKQEAgLTg2NiwxMCArODcxLDEw
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSos
IEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogICAgICAgICBtX3BhZ2UuZXhpdEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3Zl
cmxheUdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xh
eWVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXll
cihGcmFtZSYgZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCiB7CiAgICAgaWYg
KGF1dG8gZHJhd2luZ0FyZWEgPSBtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKLSAgICAgICAgZHJhd2lu
Z0FyZWEtPmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihmcmFtZSwgZ3JhcGhpY3NMYXll
cik7CisgICAgICAgIGRyYXdpbmdBcmVhLT5hdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIo
JmZyYW1lLCBncmFwaGljc0xheWVyKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldE5l
ZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKQpAQCAtODk4LDkgKzkwMyw5IEBAIGJv
b2wgV2ViQ2hyb21lQ2xpZW50OjpsYXllclRyZWVTdGF0ZUlzRnJvemVuKCkgY29uc3QKIAogI2lm
IEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAKLVBhc3NSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0
b3I+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoUGFnZSogcGFn
ZSkgY29uc3QKK1JlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gV2ViQ2hyb21lQ2xpZW50Ojpj
cmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihQYWdlJiBwYWdlKSBjb25zdAogewotICAgIEFTU0VS
VChtX3BhZ2UuY29yZVBhZ2UoKSA9PSBwYWdlKTsKKyAgICBBU1NFUlRfVU5VU0VEKHBhZ2UsIG1f
cGFnZS5jb3JlUGFnZSgpID09ICZwYWdlKTsKICAgICBpZiAobV9wYWdlLmRyYXdpbmdBcmVhKCkt
PnR5cGUoKSAhPSBEcmF3aW5nQXJlYVR5cGVSZW1vdGVMYXllclRyZWUpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIHJldHVybiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcjo6Y3JlYXRl
KCZtX3BhZ2UpOwpAQCAtOTQ5LDE5ICs5NTQsMTkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4
aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6OkhUTUxWaWQK
IAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1
cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wg
d2l0aEtleWJvYXJkKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZv
ckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCYsIGJvb2wgd2l0aEtleWJvYXJkKQogewog
ICAgIHJldHVybiBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+c3VwcG9ydHNGdWxsU2NyZWVu
KHdpdGhLZXlib2FyZCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNs
aWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50
KQogewotICAgIG1fcGFnZS5mdWxsU2NyZWVuTWFuYWdlcigpLT5lbnRlckZ1bGxTY3JlZW5Gb3JF
bGVtZW50KGVsZW1lbnQpOworICAgIG1fcGFnZS5mdWxsU2NyZWVuTWFuYWdlcigpLT5lbnRlckZ1
bGxTY3JlZW5Gb3JFbGVtZW50KCZlbGVtZW50KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KiBlbGVtZW50KQordm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVt
ZW50JiBlbGVtZW50KQogewotICAgIG1fcGFnZS5mdWxsU2NyZWVuTWFuYWdlcigpLT5leGl0RnVs
bFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7CisgICAgbV9wYWdlLmZ1bGxTY3JlZW5NYW5hZ2Vy
KCktPmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCgmZWxlbWVudCk7CiB9CiAKICNlbmRpZgpAQCAt
MTA0OSwyOSArMTA1NCwyOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlzYWJsZVN1ZGRlblRl
cm1pbmF0aW9uKCkKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpE
aXNhYmxlU3VkZGVuVGVybWluYXRpb24oKSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpk
aWRBZGRIZWFkZXJMYXllcihHcmFwaGljc0xheWVyKiBoZWFkZXJQYXJlbnQpCit2b2lkIFdlYkNo
cm9tZUNsaWVudDo6ZGlkQWRkSGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXllciYgaGVhZGVyUGFyZW50
KQogewogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBpZiAoUGFnZUJhbm5lciogYmFu
bmVyID0gbV9wYWdlLmhlYWRlclBhZ2VCYW5uZXIoKSkKLSAgICAgICAgYmFubmVyLT5kaWRBZGRQ
YXJlbnRMYXllcihoZWFkZXJQYXJlbnQpOworICAgICAgICBiYW5uZXItPmRpZEFkZFBhcmVudExh
eWVyKCZoZWFkZXJQYXJlbnQpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0oaGVhZGVyUGFyZW50
KTsKICNlbmRpZgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkQWRkRm9vdGVyTGF5ZXIo
R3JhcGhpY3NMYXllciogZm9vdGVyUGFyZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFk
ZEZvb3RlckxheWVyKEdyYXBoaWNzTGF5ZXImIGZvb3RlclBhcmVudCkKIHsKICNpZiBFTkFCTEUo
UlVCQkVSX0JBTkRJTkcpCiAgICAgaWYgKFBhZ2VCYW5uZXIqIGJhbm5lciA9IG1fcGFnZS5mb290
ZXJQYWdlQmFubmVyKCkpCi0gICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50TGF5ZXIoZm9vdGVy
UGFyZW50KTsKKyAgICAgICAgYmFubmVyLT5kaWRBZGRQYXJlbnRMYXllcigmZm9vdGVyUGFyZW50
KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGZvb3RlclBhcmVudCk7CiAjZW5kaWYKIH0KIAot
Ym9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhj
b25zdCBGcmFtZVZpZXcqIGZyYW1lVmlldykgY29uc3QKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50Ojpz
aG91bGRVc2VUaWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoY29uc3QgRnJhbWVWaWV3JiBmcmFtZVZp
ZXcpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5zaG91bGRVc2VU
aWxlZEJhY2tpbmdGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKKyAgICByZXR1cm4gbV9wYWdlLmRy
YXdpbmdBcmVhKCktPnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldygmZnJhbWVWaWV3
KTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdl
YkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBzdGF0ZSwgdWludDY0X3Qgc291
cmNlRWxlbWVudElEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNWM5ZDc3M2E3MmMwNjA4YzAy
MDY4YWMxZDlkZGY0NWQ0YTBiZDljNS4uNWJlNGZjNjM3MTFhYmVhZWUzYzRkNDk1YzkwODk0ZDU5
MTNhNjJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC02Miw3ICs2Miw3IEBAIHByaXZhdGU6
CiAgICAgLy8gRnJhbWUgd2FudHMgdG8gY3JlYXRlIHRoZSBuZXcgUGFnZS4gIEFsc28sIHRoZSBu
ZXdseSBjcmVhdGVkIHdpbmRvdwogICAgIC8vIHNob3VsZCBub3QgYmUgc2hvd24gdG8gdGhlIHVz
ZXIgdW50aWwgdGhlIENocm9tZUNsaWVudCBvZiB0aGUgbmV3bHkKICAgICAvLyBjcmVhdGVkIFBh
Z2UgaGFzIGl0cyBzaG93IG1ldGhvZCBjYWxsZWQuCi0gICAgV2ViQ29yZTo6UGFnZSogY3JlYXRl
V2luZG93KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCYs
IGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlv
bkFjdGlvbiYpIGZpbmFsOworICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3Jl
OjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3Jl
OjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBmaW5h
bDsKICAgICB2b2lkIHNob3coKSBmaW5hbDsKICAgICAKICAgICBib29sIGNhblJ1bk1vZGFsKCkg
ZmluYWw7CkBAIC04NywxMyArODcsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFkZE1lc3NhZ2VU
b0NvbnNvbGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlSUQpIGZpbmFsOwogICAgIAogICAgIGJvb2wgY2FuUnVuQmVm
b3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgZmluYWw7Ci0gICAgYm9vbCBydW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSopIGZpbmFs
OworICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKICAgICAKICAgICB2b2lkIGNsb3NlV2luZG93
U29vbigpIGZpbmFsOwogICAgIAotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6
OkZyYW1lKiwgY29uc3QgU3RyaW5nJikgZmluYWw7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0Q29u
ZmlybShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFN0cmluZyYpIGZpbmFsOwotICAgIGJvb2wgcnVu
SmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwg
Y29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KSBmaW5hbDsKKyAgICB2
b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYpIGZp
bmFsOworICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2ViQ29yZTo6RnJhbWUmLCBjb25z
dCBTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6
RnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVl
LCBTdHJpbmcmIHJlc3VsdCkgZmluYWw7CiAgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0
IFN0cmluZyYpIGZpbmFsOwogCiAgICAgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRV
SU1vZGUoKSBmaW5hbDsKQEAgLTExNywyMyArMTE3LDIzIEBAIHByaXZhdGU6CiAjZW5kaWYKIAog
ICAgIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdCBmaW5hbDsK
LSAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJikgY29uc3QgZmluYWw7CisgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2Vk
KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0IGZpbmFsOwog
ICAgIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25z
dCBmaW5hbDsgLy8gQ3VycmVudGx5IG9ubHkgTWFjIGhhcyBhIG5vbiBlbXB0eSBpbXBsZW1lbnRh
dGlvbi4KIAogICAgIGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24o
V2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29u
KSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChX
ZWJDb3JlOjpFbGVtZW50KiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVu
YXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHVuYXZhaWxhYmxlUGx1
Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVtZW50JiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRk
ZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsKIAogICAg
IHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIG1v
dXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNp
Z25lZCBtb2RpZmllckZsYWdzKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBT
dHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKSBmaW5hbDsKICAgICAKLSAgICB2b2lkIHBy
aW50KFdlYkNvcmU6OkZyYW1lKikgZmluYWw7CisgICAgdm9pZCBwcmludChXZWJDb3JlOjpGcmFt
ZSYpIGZpbmFsOwogCi0gICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJh
bWUqLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxz
KSBmaW5hbDsKKyAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSYs
IGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMpIGZp
bmFsOwogCiAgICAgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVk
ZWQpIGZpbmFsOwotICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGludDY0X3Qgc3BhY2VOZWVkZWQpIGZpbmFsOworICAg
IHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiYsIGludDY0X3Qgc3BhY2VOZWVkZWQpIGZpbmFsOwogCiAjaWYgRU5BQkxFKERBU0hC
T0FSRF9TVVBQT1JUKQogICAgIHZvaWQgYW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKSBmaW5hbDsK
QEAgLTE0Myw3ICsxNDMsNyBAQCBwcml2YXRlOgogICAgIFN0cmluZyBnZW5lcmF0ZVJlcGxhY2Vt
ZW50RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpIGZpbmFsOwogICAgIAogI2lmIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SKQotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb2xvckNob29zZXI+
IGNyZWF0ZUNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQqLCBjb25zdCBX
ZWJDb3JlOjpDb2xvciYpIGZpbmFsOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpDb2xv
ckNob29zZXI+IGNyZWF0ZUNvbG9yQ2hvb3NlcihXZWJDb3JlOjpDb2xvckNob29zZXJDbGllbnQm
LCBjb25zdCBXZWJDb3JlOjpDb2xvciYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU9T
X1RPVUNIX0VWRU5UUykKQEAgLTE1MiwxMCArMTUyLDEwIEBAIHByaXZhdGU6CiAKICNpZiBQTEFU
Rk9STShJT1MpCiAgICAgdm9pZCBkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShib29sKSBmaW5hbDsK
LSAgICB2b2lkIHNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpGcmFtZSosIGJv
b2wpIGZpbmFsOwotICAgIHZvaWQgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKFdlYkNvcmU6OkZyYW1l
KikgZmluYWw7Ci0gICAgdm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoV2ViQ29yZTo6
RnJhbWUqKSBmaW5hbDsKLSAgICB2b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxp
bmdGcmFtZShXZWJDb3JlOjpGcmFtZSopIGZpbmFsOworICAgIHZvaWQgc2V0TmVlZHNTY3JvbGxO
b3RpZmljYXRpb25zKFdlYkNvcmU6OkZyYW1lJiwgYm9vbCkgZmluYWw7CisgICAgdm9pZCBvYnNl
cnZlZENvbnRlbnRDaGFuZ2UoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKKyAgICB2b2lkIGNsZWFy
Q29udGVudENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOworICAgIHZvaWQg
bm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lJikg
ZmluYWw7CiAgICAgYm9vbCBpc1N0b3BwaW5nKCkgZmluYWw7CiAKICAgICB2b2lkIGRpZExheW91
dChMYXlvdXRUeXBlID0gTm9ybWFsTGF5b3V0KSBmaW5hbDsKQEAgLTIwMywxMiArMjAzLDEyIEBA
IHByaXZhdGU6CiAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgp
IGZpbmFsOwogICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0Rp
cmVjdGlvbigpIGZpbmFsOwogICAgIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdCBmaW5hbDsK
LSAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6
UG9wdXBNZW51Q2xpZW50KikgY29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlNlYXJj
aFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVu
dCopIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBv
cHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQ
dHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29y
ZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CiAKICAgICBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSBjb25zdCBmaW5hbDsKLSAgICB2
b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopIGZpbmFsOwotICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xh
eWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOworICAg
IHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgZmluYWw7CisgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNz
TGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7CiAg
ICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgZmluYWw7CiAg
ICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIGZpbmFsOwogICAgIGJvb2wg
YWRqdXN0TGF5ZXJGbHVzaFRocm90dGxpbmcoV2ViQ29yZTo6TGF5ZXJGbHVzaFRocm90dGxlU3Rh
dGU6OkZsYWdzKSBmaW5hbDsKQEAgLTIzMywxMSArMjMzLDExIEBAIHByaXZhdGU6CiAgICAgYm9v
bCBsYXllclRyZWVTdGF0ZUlzRnJvemVuKCkgY29uc3QgZmluYWw7CiAKICNpZiBFTkFCTEUoQVNZ
TkNfU0NST0xMSU5HKQotICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0
b3I+IGNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFdlYkNvcmU6OlBhZ2UqKSBjb25zdCBmaW5h
bDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yKFdlYkNvcmU6OlBhZ2UmKSBjb25zdCBmaW5hbDsKICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oSU9TKQotICAgIHZvaWQgZWxlbWVudERpZFJlZm9jdXMoY29uc3QgV2ViQ29y
ZTo6Tm9kZSopIGZpbmFsOworICAgIHZvaWQgZWxlbWVudERpZFJlZm9jdXMoV2ViQ29yZTo6RWxl
bWVudCYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiAoUExBVEZPUk0oSU9TKSAmJiBIQVZFKEFWS0lU
KSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkK
QEAgLTI1MywxNCArMjUzLDE0IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKLSAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3Qg
V2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJkKSBmaW5hbDsKLSAgICB2b2lkIGVu
dGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopIGZpbmFsOwotICAgIHZv
aWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBmaW5hbDsKKyAg
ICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVu
dCYsIGJvb2wgd2l0aEtleWJvYXJkKSBmaW5hbDsKKyAgICB2b2lkIGVudGVyRnVsbFNjcmVlbkZv
ckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOworICAgIHZvaWQgZXhpdEZ1bGxTY3Jl
ZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCi0gICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgV2ViQ29yZTo6Tm9k
ZSopIGZpbmFsOwotICAgIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgV2ViQ29yZTo6Tm9kZSop
IGZpbmFsOworICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5h
bDsKKyAgICB2b2lkIGVsZW1lbnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5hbDsKIAog
ICAgIHZvaWQgbWFrZUZpcnN0UmVzcG9uZGVyKCkgZmluYWw7CiAjZW5kaWYKQEAgLTI5MSwxMCAr
MjkxLDEwIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIHBsdWdJbkV4dHJhU3R5bGVTaGVldCgpIGNv
bnN0IGZpbmFsOwogICAgIFN0cmluZyBwbHVnSW5FeHRyYVNjcmlwdCgpIGNvbnN0IGZpbmFsOwog
Ci0gICAgdm9pZCBkaWRBZGRIZWFkZXJMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmlu
YWw7Ci0gICAgdm9pZCBkaWRBZGRGb290ZXJMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikg
ZmluYWw7CisgICAgdm9pZCBkaWRBZGRIZWFkZXJMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVy
JikgZmluYWw7CisgICAgdm9pZCBkaWRBZGRGb290ZXJMYXllcihXZWJDb3JlOjpHcmFwaGljc0xh
eWVyJikgZmluYWw7CiAKLSAgICBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmll
dyhjb25zdCBXZWJDb3JlOjpGcmFtZVZpZXcqKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHNob3Vs
ZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhjb25zdCBXZWJDb3JlOjpGcmFtZVZpZXcmKSBj
b25zdCBmaW5hbDsKIAogICAgIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCB1aW50NjRfdCkgZmluYWw7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMzJhZjU5ZjNmYmQ0NzQwOWY0Mjg4NjM2
OWZhMDhiZWRhY2I1ZDQ2OC4uNDMzOThmYzkzYzIzZDFiMTM4ZTdhNDVkMmExOWVhOGQzM2QzYWQ5
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTY0MCwxMyArNjQwLDEz
IEBAIEZyYW1lKiBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hDcmVhdGVQYWdlKGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mIG5hdmlnYXRpCiB7CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IG1f
ZnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIXdlYlBhZ2UpCi0gICAgICAgIHJldHVybiAwOworICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIC8vIEp1c3QgY2FsbCB0aHJvdWdoIHRvIHRoZSBj
aHJvbWUgY2xpZW50LgogICAgIEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChtX2ZyYW1lLT5jb3Jl
RnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSwgbmF2aWdhdGlvbkFjdGlvbi5y
ZXNvdXJjZVJlcXVlc3QoKSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpO
bywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBO
ZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIG5hdmlnYXRpb25BY3Rpb24uc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSgpKTsKLSAgICBQYWdlKiBuZXdQYWdlID0gd2ViUGFnZS0+Y29yZVBh
Z2UoKS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KG1fZnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0
LCBXaW5kb3dGZWF0dXJlcygpLCBuYXZpZ2F0aW9uQWN0aW9uKTsKKyAgICBQYWdlKiBuZXdQYWdl
ID0gd2ViUGFnZS0+Y29yZVBhZ2UoKS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KCptX2ZyYW1lLT5j
b3JlRnJhbWUoKSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgbmF2aWdhdGlvbkFjdGlvbik7
CiAgICAgaWYgKCFuZXdQYWdlKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgCiAgICAgcmV0dXJuICZuZXdQYWdlLT5tYWluRnJhbWUoKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVj
dG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViSW5zcGVjdG9yQ2xpZW50LmNwcAppbmRleCA5Njg5MjlmZGEzNDc5YWFkMmJlNGExMGEwYjQ1
OTZhZTE3NTU2ZDUwLi40MWIzNGYwMGE4YzZmZDIwM2M1ODM0MjAzZTgyODBhNWM0NDU2Zjc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYklu
c3BlY3RvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCkBAIC03Myw3ICs3Myw3IEBAIFdlYkluc3Bl
Y3RvckNsaWVudDo6fldlYkluc3BlY3RvckNsaWVudCgpCiAgICAgfQogCiAgICAgaWYgKG1fcGFp
bnRSZWN0T3ZlcmxheSAmJiBtX3BhZ2UtPm1haW5GcmFtZSgpKQotICAgICAgICBtX3BhZ2UtPm1h
aW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSht
X3BhaW50UmVjdE92ZXJsYXkuZ2V0KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7Cisg
ICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5z
dGFsbFBhZ2VPdmVybGF5KCptX3BhaW50UmVjdE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9k
ZTo6RmFkZSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjppbnNwZWN0ZWRQYWdlRGVz
dHJveWVkKCkKQEAgLTEyNiw3ICsxMjYsNyBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6aGlk
ZUhpZ2hsaWdodCgpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKICAgICBpZiAobV9oaWdobGlnaHRP
dmVybGF5ICYmIG1fcGFnZS0+bWFpbkZyYW1lKCkpCi0gICAgICAgIG1fcGFnZS0+bWFpbkZyYW1l
KCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1faGlnaGxp
Z2h0T3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICAgICAgbV9wYWdl
LT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJs
YXkoKm1faGlnaGxpZ2h0T3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKICNl
bHNlCiAgICAgbV9wYWdlLT5oaWRlSW5zcGVjdG9ySGlnaGxpZ2h0KCk7CiAjZW5kaWYKQEAgLTEz
Niw3ICsxMzYsNyBAQCB2b2lkIFdlYkluc3BlY3RvckNsaWVudDo6c2hvd1BhaW50UmVjdChjb25z
dCBGbG9hdFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKCFtX3BhaW50UmVjdE92ZXJsYXkpIHsKICAg
ICAgICAgbV9wYWludFJlY3RPdmVybGF5ID0gUGFnZU92ZXJsYXk6OmNyZWF0ZSgqdGhpcywgUGFn
ZU92ZXJsYXk6Ok92ZXJsYXlUeXBlOjpEb2N1bWVudCk7Ci0gICAgICAgIG1fcGFnZS0+bWFpbkZy
YW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheShtX3BhaW50
UmVjdE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAg
bV9wYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VP
dmVybGF5KCptX3BhaW50UmVjdE92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RG
YWRlKTsKICAgICB9CiAKICAgICBpZiAoIW1fcGFpbnRJbmRpY2F0b3JMYXllckNsaWVudCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dl
YkNocm9tZUNsaWVudElPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvaW9zL1dlYkNocm9tZUNsaWVudElPUy5tbQppbmRleCBiZDAxNTVkY2MzY2RlY2U5ZmYy
MGZhOTg2NmRmMzc5ZjgyYTM2OGM1Li5lNmVmYjJhMjBhN2RhMWU4ZmM3OTE0ZDJkNzI0M2U3YWE5
OTg2MmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L2lvcy9XZWJDaHJvbWVDbGllbnRJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tCkBAIC00Niw5ICs0
Niw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRQcmV2ZW50RGVmYXVsdEZvckV2ZW50KCkK
IAogI2VuZGlmCiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkUmVmb2N1cyhjb25z
dCBXZWJDb3JlOjpOb2RlKiBub2RlKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmVsZW1lbnREaWRS
ZWZvY3VzKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgZWxlbWVudERpZEZvY3Vz
KG5vZGUpOworICAgIGVsZW1lbnREaWRGb2N1cyhlbGVtZW50OwogfQogCiB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6ZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoYm9vbCBpc01vYmlsZURvY3R5cGUpCkBA
IC01NiwyMiArNTYsMjIgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZFJlY2VpdmVNb2JpbGVE
b2NUeXBlKGJvb2wgaXNNb2JpbGVEb2N0eXBlKQogICAgIG1fcGFnZS5kaWRSZWNlaXZlTW9iaWxl
RG9jVHlwZShpc01vYmlsZURvY3R5cGUpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0
TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKFdlYkNvcmU6OkZyYW1lKiwgYm9vbCkKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoV2ViQ29yZTo6RnJhbWUm
LCBib29sKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpvYnNlcnZlZENvbnRlbnRDaGFuZ2UoV2ViQ29yZTo6RnJhbWUqKQordm9pZCBXZWJDaHJv
bWVDbGllbnQ6Om9ic2VydmVkQ29udGVudENoYW5nZShXZWJDb3JlOjpGcmFtZSYpCiB7CiAgICAg
bV9wYWdlLmNvbXBsZXRlUGVuZGluZ1N5bnRoZXRpY0NsaWNrRm9yQ29udGVudENoYW5nZU9ic2Vy
dmVyKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpjbGVhckNvbnRlbnRDaGFuZ2VPYnNl
cnZlcnMoV2ViQ29yZTo6RnJhbWUqKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNsZWFyQ29udGVu
dENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlT
Y3JvbGxpbmdGcmFtZShXZWJDb3JlOjpGcmFtZSopCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bm90
aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lJikKIHsK
ICAgICBtX3BhZ2UuZGlkQ2hhbmdlU2VsZWN0aW9uKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNwcAppbmRleCAxZTBjZWY0
NjUxYjkzYmY4MGZiNzA1NjY1YzZmNjE1ZmVhYmMyYTg5Li4zMzAzMmMxNzJiMWIyNDM4ZGFmZDYw
YzM0NjQ2NmVhNDUwNWU0YTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAKQEAgLTE4OSw3ICsxODksNyBAQCB2b2lkIEZp
bmRDb250cm9sbGVyOjp1cGRhdGVGaW5kVUlBZnRlclBhZ2VTY3JvbGwoYm9vbCBmb3VuZCwgY29u
c3QgU3RyaW5nJiBzdHJpbgogCiAgICAgaWYgKCFzaG91bGRTaG93T3ZlcmxheSkgewogICAgICAg
ICBpZiAobV9maW5kUGFnZU92ZXJsYXkpCi0gICAgICAgICAgICBtX3dlYlBhZ2UtPm1haW5GcmFt
ZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheShtX2ZpbmRQ
YWdlT3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICAgICAgICAgIG1f
d2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBh
Z2VPdmVybGF5KCptX2ZpbmRQYWdlT3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRl
KTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoIW1fZmluZFBhZ2VPdmVybGF5KSB7CiAgICAg
ICAgICAgICBhdXRvIGZpbmRQYWdlT3ZlcmxheSA9IFBhZ2VPdmVybGF5OjpjcmVhdGUoKnRoaXMs
IFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZTo6RG9jdW1lbnQpOwpAQCAtMzEyLDcgKzMxMiw3IEBA
IHZvaWQgRmluZENvbnRyb2xsZXI6OmhpZGVGaW5kVUkoKQogewogICAgIG1fZmluZE1hdGNoZXMu
Y2xlYXIoKTsKICAgICBpZiAobV9maW5kUGFnZU92ZXJsYXkpCi0gICAgICAgIG1fd2ViUGFnZS0+
bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5
KG1fZmluZFBhZ2VPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOworICAgICAg
ICBtX3dlYlBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3Rh
bGxQYWdlT3ZlcmxheSgqbV9maW5kUGFnZU92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6
RmFkZSk7CiAKICAgICBQbHVnaW5WaWV3KiBwbHVnaW5WaWV3ID0gcGx1Z2luVmlld0ZvckZyYW1l
KG1fd2ViUGFnZS0+bWFpbkZyYW1lKCkpOwogICAgIApAQCAtMzI1LDYgKzMyNSw3IEBAIHZvaWQg
RmluZENvbnRyb2xsZXI6OmhpZGVGaW5kVUkoKQogfQogCiAjaWYgIVBMQVRGT1JNKElPUykKKwog
Ym9vbCBGaW5kQ29udHJvbGxlcjo6dXBkYXRlRmluZEluZGljYXRvcihGcmFtZSYgc2VsZWN0ZWRG
cmFtZSwgYm9vbCBpc1Nob3dpbmdPdmVybGF5LCBib29sIHNob3VsZEFuaW1hdGUpCiB7CiAgICAg
UmVmUHRyPFRleHRJbmRpY2F0b3I+IGluZGljYXRvciA9IFRleHRJbmRpY2F0b3I6OmNyZWF0ZVdp
dGhTZWxlY3Rpb25JbkZyYW1lKHNlbGVjdGVkRnJhbWUsIFRleHRJbmRpY2F0b3JPcHRpb25JbmNs
dWRlTWFyZ2luSWZSYW5nZU1hdGNoZXNTZWxlY3Rpb24sIHNob3VsZEFuaW1hdGUgPyBUZXh0SW5k
aWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Qm91bmNlIDogVGV4dEluZGljYXRvclByZXNl
bnRhdGlvblRyYW5zaXRpb246Ok5vbmUpOwpAQCAtMzY2LDYgKzM2Nyw3IEBAIHZvaWQgRmluZENv
bnRyb2xsZXI6OmRpZEZhaWxUb0ZpbmRTdHJpbmcoKQogdm9pZCBGaW5kQ29udHJvbGxlcjo6ZGlk
SGlkZUZpbmRJbmRpY2F0b3IoKQogewogfQorCiAjZW5kaWYKIAogdm9pZCBGaW5kQ29udHJvbGxl
cjo6c2hvd0ZpbmRJbmRpY2F0b3JJblNlbGVjdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcAppbmRleCAzNjI5ZDRhZTU4YzdkNDY4NjJlMTVh
NzVmOTg0YmRjZDVlZWI4ZjQ2Li45OTlmZTI1YzEwMGEzMTM3NmIwZGY3NWE0MzA3YzMxY2E3ZmU0
ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5j
cHAKQEAgLTEwOSw3ICsxMDksNyBAQCBzdGF0aWMgdWludDY0X3QgZ2VuZXJhdGVMaXN0ZW5lcklE
KCkKICAgICByZXR1cm4gdW5pcXVlTGlzdGVuZXJJRCsrOwogfQogCi1QYXNzUmVmUHRyPFdlYkZy
YW1lPiBXZWJGcmFtZTo6Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSogcGFnZSwgV2Vi
Q29yZTo6RnJhbWUqIGNvcmVGcmFtZSkKK1JlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVdp
dGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2UqIHBhZ2UsIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUp
CiB7CiAgICAgYXV0byBmcmFtZSA9IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2Fk
ZXJDbGllbnQ+KHN0YXRpY19jYXN0PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4oJmNvcmVGcmFtZS0+
bG9hZGVyKCkuY2xpZW50KCkpKSk7CiAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpEaWRDcmVhdGVNYWluRnJhbWUoZnJhbWUtPmZyYW1lSUQoKSksIHBhZ2UtPnBhZ2VJRCgp
LCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseSk7CkBAIC0xMjAsMzAgKzEyMCwzMiBAQCBQYXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFt
ZTo6Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSogcGFnZSwgV2ViQ29yZTo6RgogICAg
IHJldHVybiBmcmFtZTsKIH0KIAotUGFzc1JlZlB0cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0
ZVN1YmZyYW1lKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBIVE1MRnJh
bWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCkKK1JlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNy
ZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqIHBhZ2UsIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBIVE1M
RnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVudCkKIHsKICAgICBhdXRvIGZyYW1lID0gY3Jl
YXRlKHN0ZDo6bWFrZV91bmlxdWU8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KCkpOwogICAgIHBhZ2Ut
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ3JlYXRlU3ViZnJhbWUoZnJhbWUtPmZy
YW1lSUQoKSksIHBhZ2UtPnBhZ2VJRCgpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2Fn
ZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiAKLSAgICBSZWY8V2ViQ29yZTo6RnJhbWU+
IGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZS0+Y29yZVBhZ2UoKSwgb3duZXJFbGVtZW50
LCBmcmFtZS0+bV9mcmFtZUxvYWRlckNsaWVudC5nZXQoKSk7CisgICAgYXV0byBjb3JlRnJhbWUg
PSBGcmFtZTo6Y3JlYXRlKHBhZ2UtPmNvcmVQYWdlKCksIG93bmVyRWxlbWVudCwgZnJhbWUtPm1f
ZnJhbWVMb2FkZXJDbGllbnQuZ2V0KCkpOwogICAgIGZyYW1lLT5tX2NvcmVGcmFtZSA9IGNvcmVG
cmFtZS5wdHIoKTsKLSAgICBmcmFtZS0+bV9jb3JlRnJhbWUtPnRyZWUoKS5zZXROYW1lKGZyYW1l
TmFtZSk7CisKKyAgICBjb3JlRnJhbWUtPnRyZWUoKS5zZXROYW1lKGZyYW1lTmFtZSk7CiAgICAg
aWYgKG93bmVyRWxlbWVudCkgewogICAgICAgICBBU1NFUlQob3duZXJFbGVtZW50LT5kb2N1bWVu
dCgpLmZyYW1lKCkpOwotICAgICAgICBvd25lckVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKS0+
dHJlZSgpLmFwcGVuZENoaWxkKFdURk1vdmUoY29yZUZyYW1lKSk7CisgICAgICAgIG93bmVyRWxl
bWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpLT50cmVlKCkuYXBwZW5kQ2hpbGQoY29yZUZyYW1lLmdl
dCgpKTsKICAgICB9Ci0gICAgZnJhbWUtPm1fY29yZUZyYW1lLT5pbml0KCk7CisgICAgY29yZUZy
YW1lLT5pbml0KCk7CisKICAgICByZXR1cm4gZnJhbWU7CiB9CiAKLVBhc3NSZWZQdHI8V2ViRnJh
bWU+IFdlYkZyYW1lOjpjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50
PiBmcmFtZUxvYWRlckNsaWVudCkKK1JlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZShzdGQ6
OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9hZGVyQ2xpZW50KQogewog
ICAgIGF1dG8gZnJhbWUgPSBhZG9wdFJlZigqbmV3IFdlYkZyYW1lKFdURk1vdmUoZnJhbWVMb2Fk
ZXJDbGllbnQpKSk7CiAKICAgICAvLyBBZGQgZXhwbGljdCByZWYoKSB0aGF0IHdpbGwgYmUgYmFs
YW5jZWQgaW4gV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZyYW1lTG9hZGVyRGVzdHJveWVkKCkuCiAg
ICAgZnJhbWUtPnJlZigpOwogCi0gICAgcmV0dXJuIFdURk1vdmUoZnJhbWUpOworICAgIHJldHVy
biBmcmFtZTsKIH0KIAogV2ViRnJhbWU6OldlYkZyYW1lKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFt
ZUxvYWRlckNsaWVudD4gZnJhbWVMb2FkZXJDbGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCmluZGV4IDIzZDQ4ZDI5ZjgzNzY2NTM4NWNmNDE0MWEw
YzRmNmU2M2M1NWM2NjAuLmQ0YzdhNDA4MzRhMjg4OWIyYTFhZmQxZmNkZTM3MDZmYWUwMjZiMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCkBAIC02
Niw4ICs2Niw4IEBAIHN0cnVjdCBGcmFtZUluZm9EYXRhOwogCiBjbGFzcyBXZWJGcmFtZSA6IHB1
YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6OkJ1bmRsZUZyYW1lPiB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWU+IGNyZWF0ZVdpdGhDb3JlTWFp
bkZyYW1lKFdlYlBhZ2UqLCBXZWJDb3JlOjpGcmFtZSopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFdlYkZyYW1lPiBjcmVhdGVTdWJmcmFtZShXZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5h
bWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCopOworICAgIHN0YXRpYyBSZWY8V2Vi
RnJhbWU+IGNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2UqLCBXZWJDb3JlOjpGcmFtZSop
OworICAgIHN0YXRpYyBSZWY8V2ViRnJhbWU+IGNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqLCBjb25z
dCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Kik7CiAg
ICAgfldlYkZyYW1lKCk7CiAKICAgICAvLyBDYWxsZWQgd2hlbiB0aGUgRnJhbWVMb2FkZXJDbGll
bnQgKGFuZCB0aGVyZWZvcmUgdGhlIFdlYkNvcmU6OkZyYW1lKSBpcyBiZWluZyB0b3JuIGRvd24u
CkBAIC0xNjYsOCArMTY2LDggQEAgcHVibGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8V2ViRnJhbWU+IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVM
b2FkZXJDbGllbnQ+KTsKLSAgICBXZWJGcmFtZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2Fk
ZXJDbGllbnQ+KTsKKyAgICBzdGF0aWMgUmVmPFdlYkZyYW1lPiBjcmVhdGUoc3RkOjp1bmlxdWVf
cHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50Pik7CisgICAgZXhwbGljaXQgV2ViRnJhbWUoc3RkOjp1
bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50Pik7CiAKICAgICBXZWJDb3JlOjpGcmFtZSog
bV9jb3JlRnJhbWU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYkluc3BlY3Rvci5jcHAKaW5kZXggZDY0Nzg1OTdhODdmZWYzZGMwYjk5OTM1MjEyNjc2ZWZj
YzQ5MzMyMy4uMDE2ZDczOGZiNjEyZDI0M2MwMDQ5ZTUyMDE1ODYyMTMwZmQ5NThmYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAK
QEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFdlYkluc3BlY3Rvcjo6b3BlbkluTmV3VGFiKGNvbnN0
IFN0cmluZyYgdXJsU3RyaW5nKQogICAgIEZyYW1lJiBpbnNwZWN0ZWRNYWluRnJhbWUgPSBpbnNw
ZWN0ZWRQYWdlLT5tYWluRnJhbWUoKTsKICAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QoaW5z
cGVjdGVkTWFpbkZyYW1lLmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVx
dWVzdCh1cmxTdHJpbmcpLCAiX2JsYW5rIiwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0Zvcndh
cmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVS
TDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGljeTo6QWxsb3csIFJlcGxhY2VEb2N1bWVudElmSmF2
YVNjcmlwdFVSTCwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cp
OwogCi0gICAgUGFnZSogbmV3UGFnZSA9IGluc3BlY3RlZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdp
bmRvdygmaW5zcGVjdGVkTWFpbkZyYW1lLCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZp
Z2F0aW9uQWN0aW9uKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIE5hdmlnYXRpb25UeXBlOjpM
aW5rQ2xpY2tlZCkpOworICAgIFBhZ2UqIG5ld1BhZ2UgPSBpbnNwZWN0ZWRQYWdlLT5jaHJvbWUo
KS5jcmVhdGVXaW5kb3coaW5zcGVjdGVkTWFpbkZyYW1lLCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJl
cygpLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCksIE5hdmlnYXRp
b25UeXBlOjpMaW5rQ2xpY2tlZCkpOwogICAgIGlmICghbmV3UGFnZSkKICAgICAgICAgcmV0dXJu
OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>299466</attachid>
            <date>2017-01-22 03:11:27 -0800</date>
            <delta_ts>2017-01-22 17:02:07 -0800</delta_ts>
            <desc>Archive of layout-test-results from ews100 for mac-elcapitan</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>796134</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
/Lat/kfLKkZNj5vba2Wk7dtyszlMKtvb+nmbd2er2y2/LAeSpOW1UjTGebMze5/3Brsy7F6rQ7Wc
iornuWGPh95gJVirj/3sMNrPW3r+elRnjbWadR312AjzYlbzyvamY/rlti0XTieZKwcv3+x7wSEW
Ft1rxIXG26qz2BXRod9LDgdx1vHf2/JRVfREWvMXq1a21W2Lb7xGw/Y25SyNPuxSKiR31hxPju/D
fraK9fKgn14u80Zzo7Qb1uQU+mo7Tndbf2Rsa63M3AuTW3KefawUx1Ikq51W6cDc+y25F14vWut1
ee4qwUxsdsLW8toTy4GdWJPGIH0pEuFYS9fb/nWvtUXTrqS32VT3CiMyov6p6/i6sSzs8dA5XDuR
8lI4VuVZVvRqb26OvXHRFqhcrR0Gnj22XGvYfkFJW5Y4Sd3FcGrbobjQNi/J+PphTmNh7qr9zv5d
yvubs+PabTrcHgVebehajcWfNne95d42qvbYiwP7gxx4VlWNUukt783sojafhZtY7pS9WbhO5PC2
WATe6SRUTjV330JhYFtwsfC9wA7u6DrDYRBYu5bjFC1rOGnW7ApLT/reUjAXQ1tZnUcLZ9yX5+te
MA+yrhiH03MkzJJ0sRns80nt6CurZr/VmbSH86m/vXm9izh61cNsXkxaJ6VSph/S8nI7KNNwXp2h
ldNm882cXV6dw3D50pNrx8HL4S1oea/H8bLoJtv2+2gwc5tLJxu5helXQeWNK6fROxbi7t3Nsri3
3KbSrvhYN7pGo5fV/P3uLeyXy8ravZUTNRxdqmZTciPnPfXcTdNZ7K+bXq+rSOH6Jhtjt7ycw4U4
z/qGPp7a06Rmt+fjjX2NhW6wqF7mh60pbuz1yvqYtF7cYzlPTh/Vy6t+Trg9X3e88OIsF61GoZuL
2WHQ6CY1v5muj1dx8DrNz44/3E7E9NxfVHav2Rvb2+PmNC0W/eidD33ezVdyOOj7+TeG8vru7/z0
X1BLAwQUAAIACADJEzZKhEHpvEcFAADXBgAAFAAcAF93cHRfY2VydHMvY2FrZXkucGVtVVQJAAO5
iYRYuYmEWHV4CwABBPUBAAAEFAAAAG2Vt7KDagKDe57i9NwzPzncjpxNjh3YRGMwOTz9nt16VWlG
nebT6Pf3T7ykaI8fz+d+HE+LuED6MaT0v8Ev5Mzj8ze4vuW/P8Q/0kPwUieQREiUjF9tqMZ/f0TJ
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
LTQzMDQKUEsDBBQAAgAIAM8TNkowO7ixSwAAAGgAAAA8ABwAY3J5cHRvL3N1YnRsZS9yc2EtaW1w
b3J0LWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1zdGRlcnIudHh0VVQJAAPFiYRYxYmEWHV4CwAB
BPUBAAAEFAAAAG3LsQ2AMAxE0Z4pbh8aVrBkS7GAOHIuRGwPDR31f39Lv4SG3e6O6SwxCFF1elQ5
oEKBpKEG0UdrkTRd1o/jjDeySAVnoKWf1n+GB1BLAwQKAAAAAADOEzZKAAAAAAAAAAAAAAAADwAc
AGNyeXB0by93b3JrZXJzL1VUCQADxImEWE+MhFh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAzhM2
SgAAAAAAAAAAAAAAABYAHABjcnlwdG8vd29ya2Vycy9zdWJ0bGUvVVQJAAPEiYRYT4yEWHV4CwAB
BPUBAAAEFAAAAFBLAwQKAAIAAADOEzZKJeDTCCwAAAAsAAAAMQAcAGNyeXB0by93b3JrZXJzL3N1
YnRsZS9yc2EtZ2VuZXJhdGUta2V5LXN0ZGVyci50eHRVVAkAA8SJhFjEiYRYdXgLAAEE9QEAAAQU
AAAAQ291bGQgbm90IGdlbmVyYXRlIGEga2V5IHBhaXIsIHN0YXR1cyAtNDMwNApQSwMECgAAAAAA
0hM2SgAAAAAAAAAAAAAAAA0AHABkaXNwbGF5bGlzdHMvVVQJAAPLiYRYT4yEWHV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACADSEzZKo1f96FAAAACOAAAAMgAcAGRpc3BsYXlsaXN0cy9leHRlbnQtaW5j
bHVkZXMtdHJhbnNmb3Jtcy1zdGRlcnIudHh0VVQJAAPLiYRYy4mEWHV4CwABBPUBAAAEFAAAAHMv
SizIyEwuds7PK0mtKLGySk8tcQ7x1dBUyCxWyMsvUahMLVFIzs8tSCzJTMpJVSjPLMlQKEpNzi9K
ycxLB8qAtRXrcbmjG1SMZhAxhgAAUEsDBBQAAgAIANITNkrylpXVRwAAAEkAAAApABwAZGlzcGxh
eWxpc3RzL2xheWVyLWRpc3BheS1saXN0LXN0ZGVyci50eHRVVAkAA8uJhFjLiYRYdXgLAAEE9QEA
AAQUAAAAcy9KLMjITC52zs8rSa0osbJKTy1xDvHV0FTILFbIyy9RqEwtUUjOzy1ILMlMyklVKM8s
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
C/7fAxkvCN37vWMu4+96IHUuY7gYurccSF0I93Ig9eVA6suB1JcDqS8HUp/0QCrEZTXwsk1/cQ5z
s9xxb2XxP1BLAwQKAAAAAADyEzZKAAAAAAAAAAAAAAAABQAcAGZhc3QvVVQJAAMHioRYT4yEWHV4
CwABBPUBAAAEFAAAAFBLAwQKAAAAAADiEzZKAAAAAAAAAAAAAAAADAAcAGZhc3QvY2FudmFzL1VU
CQAD54mEWE+MhFh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA4hM2Sq9wSSt8AAAAAgEAACYAHABm
YXN0L2NhbnZhcy9jYW52YXMtbGluZURhc2gtc3RkZXJyLnR4dFVUCQAD54mEWOeJhFh1eAsAAQT1
AQAABBQAAADFzjEKwkAURdHeVbwNKHGiFoPYJCIEK7UTiy/zwIHMH/mZiLp6swvLe6rbicI5VM7X
S1/VQDum54kaaBcjr26zqtc3bPdm2XYezaHJWvguZ5ZjVLYyPDyivqSPAWEqiJl8PKSgpwwFWQn2
TNSCNE5wJzTr/EvLi1n374EfUEsDBAoAAAAAAOsTNkoAAAAAAAAAAAAAAAAMABwAZmFzdC9pbWFn
ZXMvVVQJAAP5iYRYT4yEWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADrEzZKIY+9ODIAAAAzAAAA
LAAcAGZhc3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS1jcm9wLWJveC1zdGRlcnIudHh0VVQJAAP5iYRY
+YmEWHV4CwABBPUBAAAEFAAAAHPLSSxJdUlNzk9JtVJIAdGZeekKqUVF+UVWCpl5yflFRanJJQop
iSWJCskZqcnZelwAUEsDBAoAAAAAAPITNkoAAAAAAAAAAAAAAAAKABwAZmFzdC90ZXh0L1VUCQAD
B4qEWE+MhFh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA8hM2Svjg+K56AQAAgwkAACMAHABmYXN0
L3RleHQvZW1vamktZ2VuZGVyLTItc3RkZXJyLnR4dFVUCQADB4qEWAeKhFh1eAsAAQT1AQAABBQA
AADtk89Kw0AQxs/mKZYcS1smm2y2CRrQluKphzaeSg+bZFIDzR+SDVRLwDfw7Jv4PL6Ar+CmVlEo
eCnYQ/awsDO733w7P4aCwQdgDCglQF3TcE02tJwRmdRpMccswtIvEZfUNh1wGaeWsSLjvEQft9Il
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
EAAcAGh0dHAvdGVzdHMvbWlzYy9VVAkAA0WKhFhPjIRYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAI
ABMUNkoVNTWSegAAALwAAAAqABwAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC1zdGRl
cnIudHh0VVQJAANFioRYRYqEWHV4CwABBPUBAAAEFAAAAI2OQQ7DIAwE73mFP0Ag7aEVvyHEVSwZ
jIyR+vwS5QPVXlY7h9kspREnI6mAqqIRPsQIp1mL3m+P1xpmtvgOIfhCPXvFLkMzdv/tbG5Ph6PS
RM0NpXVuwFQRnoCMBavBTZdJ4l0hwqhpnxoTYEnHf7oqfeTzupcsMS8/UEsDBAoAAAAAAAwUNkoA
AAAAAAAAAAAAAAAUABwAaHR0cC90ZXN0cy9zZWN1cml0eS9VVAkAAziKhFhPjIRYdXgLAAEE9QEA
AAQUAAAAUEsDBAoAAAAAAAgUNkoAAAAAAAAAAAAAAAAqABwAaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvVVQJAAMvioRYT4yEWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIA
CAAIFDZKY6qsbIIAAACoAAAAQAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAAy+KhFgvioRYdXgLAAEE9QEAAAQUAAAA
LY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMtt
nePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB+DRoekNtXCeSyp2W
OdKOza8xRJuC7GpN1PGavlBLAwQUAAIACAAIFDZKY6qsbIIAAACoAAAAUgAcAGh0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC11bmFmZmVjdGVkLWJ5LXN0eWxlLXNy
Yy0yLXN0ZGVyci50eHRVVAkAAy+KhFgvioRYdXgLAAEE9QEAAAQUAAAALY1BCsMwDATveYVeEDu9
pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMttnePIku4xxmDIlxbvIUt1
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
eXB0/+QHcAn+Lxa2esV/AVBLAwQKAAAAAAANFDZKAAAAAAAAAAAAAAAACQAcAGltcG9ydGVkL1VU
CQADOoqEWE+MhFh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAADxQ2SgAAAAAAAAAAAAAAAA0AHABp
bXBvcnRlZC93M2MvVVQJAAM9ioRYT4yEWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAANFDZKAAAA
AAAAAAAAAAAAGgAcAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvVVQJAAM6ioRYT4yEWHV4CwAB
BPUBAAAEFAAAAFBLAwQKAAAAAAAPFDZKAAAAAAAAAAAAAAAAJgAcAGltcG9ydGVkL3czYy9XZWJD
cnlwdG9BUEkvZ2VuZXJhdGVLZXkvVVQJAAM+ioRYT4yEWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIA
CAANFDZKjzQacEQAAACgCQAARwAcAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVL
ZXkvdGVzdF9mYWlsdXJlc19SU0EtT0FFUC1zdGRlcnIudHh0VVQJAAM6ioRYOoqEWHV4CwABBPUB
AAAEFAAAAHPOL81JUcjLL1FIT81LLUosSVVIVMhOrVQoSMws0lEoLkksKS1W0DUxNjDhch5VO6p2
VO2o2lG1o2pH1Y6qHVVLc7UAUEsDBBQAAgAIAA8UNkpUAsmyNgAAAMACAABQABwAaW1wb3J0ZWQv
dzNjL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzX1JTQVNTQS1QS0NTMS12
MV81LXN0ZGVyci50eHRVVAkAAz6KhFg+ioRYdXgLAAEE9QEAAAQUAAAAc84vzUlRyMsvUUhPzUst
SixJVUhUyE6tVChIzCzSUSguSSwpLVbQNTE2MOFyHlU7qnaQqQUAUEsDBAoAAAAAABIUNkoAAAAA
AAAAAAAAAAAgABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9VVAkAA0OKhFhPjIRY
dXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAA8UNkoAAAAAAAAAAAAAAAAmABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9VVAkAAz2KhFhPjIRYdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAAA8UNkoAAAAAAAAAAAAAAAAqABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvVVQJAAM9ioRYT4yEWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAASFDZKAAAA
AAAAAAAAAAAALwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Nv
cnMvVVQJAANDioRYT4yEWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAPFDZKtERWaQkCAAC9DAAA
RQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1v
cmlnaW4tc3RkZXJyLnR4dFVUCQADPYqEWD2KhFh1eAsAAQT1AQAABBQAAADt1k1r20AQBuB7f4Uu
8W3s/dLsrsEU4Tppoa0Dbs9hP2ZtU8Uylkqbf99VQtO6BOLUlLY4SOggiX2lh2F2pvP3i/nbWfFu
tlhUF7NxMd+tl+tNseq67Xg0qpvg6lXTdmNjGCvWbbFpusLVdfOFYuFviioEaluYNptu19RQ9U/g
bo3hi+mvi59TF1ZFdfmmCG7Tr1Q3Ln7P4kIPWT74bdYo9e+O3HY92lHbfN7lnNF2R6leL1fdcHvz
sms+0WYSVdRBSAZWcQWKkgVPTIDSVJpgPKfoB9fu65Vb0oQNmttPm/SRZ7I6E+f5vA/Od/rowe3/
XV1Tt2piO7mYfRj+WZa/Z76XxQ81N7ZEst6AUyKbS6XBhuRA+BRs4E4ZHR4xvw++M+cnZL5X5web
J00RDSYQ1ltQRmgwUnvwiCRDScFQfFqdn4x5u4dulZIHF3okxz1qIJs0KCc5eMYlIPdK6FJwHfTD
6O2D6n32Kan/CHuKekmU0DMER7mpKGZsbjTagVcG0WR2xPSY+s/95ZTUf3sf5Y6YIRuAC0+gyujA
oUVIwUQM0ZrA9HH76OV88Yy+j669s0HGBLrEPLLE0oB1MYAmZ6z2MkhPx6G/nlWvhv+dS4kB81SB
gFL0LlrmXsAZJJmbcRDoJYoji/Hjcy3um+ehWXOuLRCX2dzmi0Pmcy2idaVXgXj6xwbpb1BLAwQU
AAIACAAQFDZKXDyMLpsBAADeBQAASAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtc3RkZXJyLnR4dFVUCQADQIqEWECKhFh1eAsA
AQT1AQAABBQAAADNlE1r3DAQhu/9FTr1NmvJkvWxEIrZuk0hX3S39FhG0jhe6tqurdDsv682ufSw
kBxKWHQbjdD7MPO+m9ub7e1Vw66b7bb+3KzZJ0qhY/XdFxZwGMbE+hEj61Ka1kUhSrPi+Yi1tZwX
7bG3wGlfzLSMD3OgpZhmavv9fZdW0+FDGn/ScGFiNFE6B05TAFV6DpbIgadSc4Wycijf/8LHH3hP
F3zFril1Y2Qfm6tm17D9wo4ysO/HPxSZP7A65I8W2IxDmsce6uMNPD9aVu82b0Dk2xC4jwaMjwRK
aQEoWgUtVY4IORqjTxDdfdudJY4NQlAUAkLlHSiMLWQCCcbxqjTYKnsap95tLs8SSDrrDNcGlOZ5
4zDPxwlCKLX2LnDZKnkK6Kb5fpY4kSMFSR6sqzgok13kjLQguMnWKYWtYvwX5yv9fqAlsY4w0sza
PfWRPULKNXiuiddyXj61vxEnZgU6+hK0iiLbKljwzjgoXTRSaKcqrl7kPOqnIcHuMNFZUjpheXCY
B4kyh4evSsiOUyCrgDkgrfat+U/h8RdQSwMEFAACAAgAEhQ2SkBbXo/KAgAAvxMAAFEAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcmVkaXJlY3Qt
cHJlZmxpZ2h0LXN0ZGVyci50eHRVVAkAA0OKhFhDioRYdXgLAAEE9QEAAAQUAAAA7Zdfa+NGEMDf
+yn0Er+NvbuzfwPmMCG5FtrmaD5A2J2djU1dK2cp3N237+jKJYGYtFA/tBdjIYm1ZYaf5jc7c3H9
6831z5fdL5c3N6v3l+fdFY+07lYffuoo73b92G37XLv1ON6fLxbahLmSjz6PUalFm367yPebxZ6H
/mFPPCzu99y2m7v1OL//8u6P/Pk23/FSzcb+d94tuVofW0rgG0awnBRE4gAWk2LVtOPoZ3uumz3T
eDuMeXwYlqj0bNtTHjf9bjkFcoarM3Mlx2M4sjIFJEtfQ5KrBCVn6veDXOZzOT2GKPfPg5xR/7Ab
l3re/cYfH3gYuzXnyvuubXhbu8/wCanbDN3EIm+3/SeuXfnSrUj+aoCLfjfu+y2spm/gx69PDvMf
Lo6N9RuUiepfLJVqNtcJI0UhWGOGmAKCYSR2VGShzp5ewD+nOq1u1/0w/huq/zeaVlGLFTPU5Als
MQaS8h4coy2hIZJSx6Cpv0OarypfKQQMpYB3qQrYaqG0XMColjTGpCrnAzjNSfmXSWpsouiMA2fJ
gHU5QY7ZgiKVrUNmTq8rb07KP9F0LepYbANfKIONlSCWLKU0p4qOk694FJpvTnlfPVqTCbyRMmqb
kp3J2Qwei9wXslQP4cST8i+TlA3mWBIBa/RgkzIQ5XGQ/skGx1x0xleTFE/KP9Ek62stxkNiraYC
SpBsKJDQWmytTW3TMWi+OeVRhYrkGqDKojw6C6kYhJhR2VA5loONfTgpfyBJfVaBkwHKWnYjyVJI
STlghVU3q8n9jfLhpPwTzYaFDUmTlGJMQlNPBTQ1qQDO2phKchSPQfPNKZ+MDcbpNtmupbEvCYrX
DogUem91yM0ewBlPyr9MUm2cCT5I+WxeBvqGVSqnlTlUJk/Xas5K2VeTNJ6UfzbL59qcbw6C7DzC
MGqQSiqzvEFpplJOweExaP4HlP8TUEsDBAoAAAAAABIUNkoAAAAAAAAAAAAAAAAlABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL1VUCQADQ4qEWE+MhFh1eAsAAQT1AQAABBQA
AABQSwMECgAAAAAAEhQ2SgAAAAAAAAAAAAAAAC4AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvVVQJAANDioRYT4yEWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAA
AAASFDZKAAAAAAAAAAAAAAAANgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy9oaXN0b3J5L1VUCQADQ4qEWE+MhFh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAA
EhQ2SgAAAAAAAAAAAAAAAE0AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL1VUCQADQ4qEWE+MhFh1eAsA
AQT1AQAABBQAAABQSwMEFAACAAgAEhQ2SqMLY3vJAAAAAgMAAHsAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJm
YWNlL2xvY2F0aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJva2VuLWFjdHVhbC50eHRVVAkAA0OK
hFhDioRYdXgLAAEE9QEAAAQUAAAAnZKxbsIwEIZ3P8UtTJWysLFFUShIIUQ4fQDHOUjo4bPMIXj8
QiSE2i42i6f/+7/z6YptrbdVCZtS6/yzXEDNAoaIr9iDMBCb/v5YQxDwzJdgcQFnG0Yvs3mpinfw
joz7zgY5kVJNrjVoFFi1bQNfuwr2wZxwYmRkl/nAwpbp0XaDV743YlLyMf1Tp1rm6ypaMWXaAYG7
I1oBaxy4+w46BEvssM/SRtiPhIm//INEWcSnSn4RMY4D+wFDouYfFGMaRPxH6m08IfUDUEsDBBQA
AgAIABIUNkoBa2rnFAEAALkCAAB5ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbi1wcm90
b2NvbC1zZXR0ZXItbm9uLWJyb2tlbi1kaWZmLnR4dFVUCQADQ4qEWEOKhFh1eAsAAQT1AQAABBQA
AADVUU1PwzAMvfdX+MKpZBGauOzUARVIjG1aBjunqadFc+sqcdXt35NOTOKI4MTFlj+en5+tlAL9
wdQ3GPWTFavLndE7rF69fLmH3lOtN0hoI2qyZ+5FCUZRAWNPErVvOg6CtR6mTg9YqY6s7Dk0l7ao
D9KQrgIPEUOKfBQOZy0HVMTOiudW+VYw7K1LBNdUF1jYMamIkoqqTbk05IitwlOHLhFO5CRZnuf/
UIJ10lu6CCgKUHe395CPpiiy/HG1NKtFCW+lMfPncgZLFrBEPGANwkBsaxhJCNL+3AeHM4gu+E5u
pmUGv8JXZNvjZNSZqb8ukMF6bgwYFHjZbtfwvlnAPtgG4XqayfU047jTd0CdPvgDwCdQSwMEFAAC
AAgAEhQ2So72CEDJAAAAAgMAAH0AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2xvY2F0aW9uLXByb3Rv
Y29sLXNldHRlci1ub24tYnJva2VuLWV4cGVjdGVkLnR4dFVUCQADQ4qEWEOKhFh1eAsAAQT1AQAA
BBQAAACdkrFuwjAQhnc/xS1MlbKwsUVRKEghRDh9AMc5SOjhs8whePxCJITaLjaLp//7v/Ppim2t
t1UJm1Lr/LNcQM0Choiv2IMwEJv+/lhDEPDMl2BxAR0Z950NciJVvMOfbRi9zOalUk2uNWgUWLVt
A1+7CvbBnHBCZGSX+cDClulRdoNXvjdiUvIx/VOnWubrKloxZdoBgbsjWgFrHLj7CjoES+ywz9JG
2I+Eib/8g0RZxKdKfhExjgP7AUOi5h8UYxpE/EfqbTwh9QNQSwMEFAACAAgAEhQ2SpYQts/+BwAA
ZxsAAIEAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlz
dG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29sLXNldHRlci1ub24t
YnJva2VuLXByZXR0eS1kaWZmLmh0bWxVVAkAA0OKhFhDioRYdXgLAAEE9QEAAAQUAAAA5Vltc9s2
Ev7uX8Gxp+eZjklKlpSzJMc3iS1fZ5qmmSptP96AJCgiBgkeAFpyevffb/FGkRQpK3Od+3LNNCKB
BfDs7rMvYG4zmdO7s9sMowR+ciyRF2eICyzfXlYy9W8uYVjIF4rvzhaUFE9X3uKZCCJx4v1x5sF/
Eu+kn+CYcSQJKxZewQq81FMR4wnmfsSkZPnCG5c7L4FnnCzP/n1mtrObxIwyvvAuRpO5ngseCcUP
JE3tfITipw1nVZH4TjS9UX+aB5kTBKMk8S6SJDFzKSukn6Kc0JeFl7OCiRLFFmCO+IYA5DHOvZEZ
Khkop/XgmIJGz1gDysYdpJPJpGd/gQrhC8xJ2pgU5CvWZzQP9SlO5cIbBTM3nhBRUgSbkAIsYxFu
SSIzWDwafWfxoSQhxaZeabBZ16intncsXFJkAErW4hl7xryj0Ww2Ww4ZG2NjhkD55AOcJezilDIE
anCyyWTbc0rqHtRHoIs7ioHpiQQVRx2VJYoo9mNMaUtLX+/bstI2A+187UNFtS1H5R7ZGsfKd4Ok
0YvblOnSxXLW2R0INSp35oTVrgT3wv6gGr7yAvXT1XAQniAJjl7U356G+p6y+OkT4jIAVRcp4UL6
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
8OcmgQnF0MzWVnwzeRcQXhKHV5Lr5WxkzZn2lF25y8trf5R5bjUKn5p7Kpo2X16m63nyPLa2OWvG
gSmrEYWT2+kXeGd2bB/Iw1ITcRtJRzdPtN1q0z05v7y5PLJq4nE+1FI/gaX9vIG1gBDMp0TBzb8u
F6BqBe5DoehT48Bc39w6/y45/+Q+5qOkwbJhV83v0GYLAufEkgYbpFk20iZwytyFN+Ruj4hUThp+
KIvbRIsybtSe6z+6PD9X97g9r8KlEaqMOOP7paaBlbu73N264+wzcaZ2bZgS2Abffvbp4vL24v3N
2Aow0eu8u7u4cufF8YEk67S5vHj/rshhV4+uTU4Pr4YRbHNb/Hx7nB1imu224+fT+wt/nR+lTkrW
pu0pHNqj8rnumx2WGofluTtynupdN7bZGtqAuT938t5e37rLU4oCO+PnO4mDIie0+WfyBIfHJlpw
9ULbEXQm220m/wdQSwMECgACAAAAWhQ2SuxiggAvAAAALwAAACsAHABtZWRpYS9hdWRpby1jb25j
dXJyZW50LXN1cHBvcnRlZC1zdGRlcnIudHh0VVQJAAPLioRYy4qEWHV4CwABBPUBAAAEFAAAAGxp
YmMrK2FiaS5keWxpYjogUHVyZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGxlZCEKUEsDBAoAAAAAADAU
NkoAAAAAAAAAAAAAAAAcABwAbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL1VUCQADfIqEWE+M
hFh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAMBQ2SgAAAAAAAAAAAAAAADwAHABtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9VVAkAA3yK
hFhPjIRYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIADAUNkrTC3QBRwEAAAQEAAB1ABwAbWVkaWEv
bW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFj
b3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0b25zLXN0eWxlcy1hY3R1YWwudHh0VVQJ
AAN8ioRYfIqEWHV4CwABBPUBAAAEFAAAAK2TTWvDMAyG7/kVIucRmn5fu9LCoKFhCYwdvURpTF07
WDZp/v3cZh1lY3UOu/iiV3qkV1aOZLg8gKkRElbss60VggqNKBMsOVsrabQSBIU6NdZgCWQ6gRQF
wV4C2aJAoifolIWWCwGECMy9miOBqiBMV1kWwsmp2AGdslJCqNbV+eggzDdZDut9ku42+SZ0NYNX
bLksn60xSgaX3J4XCawMcIJwvGjO4X2kxY8jNwmjY6qIG67k+1UYz38Ia+SHui8ynV5iQSpYlzJL
+MXbrl529zyqlRWuU4TFsjlH8MYIZi41GsQfe/lbpVumSy89vgzd4+PRZCjfP/+K68ZZ8MDtX0P8
SZv43ebpA1Iv+h9SrllxJK+ty/HN1floqKkz/1K/D8i/13h662AxH9rBAKOvwf40K9eN++Oa3MU5
idEWnT/3ZxcEn1BLAwQUAAIACAAwFDZKwRv9RD4BAABdBAAAcwAcAG1lZGlhL21vZGVybi1tZWRp
YS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3Jl
ZW4tbWVkaWEtY29udHJvbHMtYnV0dG9ucy1zdHlsZXMtZGlmZi50eHRVVAkAA3yKhFh8ioRYdXgL
AAEE9QEAAAQUAAAA1ZLLbsIwEEX3+QqLbeqYhGd3AbVIVVsJlaqoSycZioWJUWYs4O+bOBWiG+Iu
u4kV3aPxmStzzpn4MNruAcWDJCke1yuxhuxZ0c8xt0oX4g00SASh5dlY4gRIvAK0mlDsoVBS7E0B
VcndD89NSZXRdSZzg3xjtca8AvhrzjNLZErkSGcNyOF0gJygiOhEQRiG/0pe5mSlduppyvj9XZyw
0H3TNGDL2WrFHBltQX1tiSlkveHwcOoFrI5r+aW0CHM3NOBXvIZNS0+mDR0uZk8v1xFujdUFy4A1
QMTWEtmoHhz9uvUI2U7Rq8Td0qAiZcpPNzROnEKH38JUR1kVt+ziZNKh54jWL+4PvAXHHoJN40lb
eeLb+Xsl8x3eWmmadGzUAO1C4773PiOvwi/P7mbn8bCr84ZoFSdjb8WBh+I3UEsDBBQAAgAIADAU
NkqFZo/KFwEAAMMDAAB3ABwAbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxz
Y3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0
b25zLXN0eWxlcy1leHBlY3RlZC50eHRVVAkAA3yKhFh8ioRYdXgLAAEE9QEAAAQUAAAArZMxb4Mw
EIV3/4qT5yoSSdpkTSMyFYEKS0eHHGDh2Mhni/Lv6xSpijoAA4uXe36f3tmvQHJS1+AahESUaX7x
SlFpEXWCNynORjtrFEFp7p13eANyg0LaMJZqIF+WSPQCg/HQS6WAEEGE00okMBXw7JTnHO5BJWoM
ysooZfrgcx2AF3FewDlNso+4iHnwZJ/YS317984ZzR53R95GYeVAEvDtofvmz5Mer610iaA2MySd
NPrrVxi9/RM2KOtmNNnvHzOWKTFkwhNO8A7HpbztLO9ibC/sVLpozXgnabuQcBK3lLabX6bMJkij
aB1SYUXZ0gTsuDjW6/yb/fVhao/RivHG4disKtDDF7UUChMkznoM+Z9bw9gPUEsDBBQAAgAIADAU
NkqF7zBH+wgAAPUuAAB7ABwAbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxz
Y3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0
b25zLXN0eWxlcy1wcmV0dHktZGlmZi5odG1sVVQJAAN8ioRYfIqEWHV4CwABBPUBAAAEFAAAAN1a
a2+kyBX97l+BbGUtrQz9oNvuh8fRjB/aKLuRFY8yyqeogKKpcUH1UoXdniT/PbdeNNDQZhR7ZO+u
dhvqee7r3HuZOU9ESi8OzhOMIvhJsUBOmKCcY/HhuBCxOzuGYS6eKL44WFCS3Z84iwfCicCR8+8D
B/4ReCPcCIcsR4KwbOFkLMNLNRWwPMK5GzAhWLpwRuuNE8EzjpYH/z3Qx5lDQkZZvnCOhv5czXk3
hOIrEsdmPkDh/SpnRRa5dmk8k/9WL9I3cEZJ5BxFUaTnYpYJN0YpoU8LJ2UZ42sUGoApylcEII9w
6gz10JqBcEqOHFOQ6AErQMmogdT3/ZbzOcq4y3FO4sokJ9+wuqN6qUtxLBbO0Jva8YjwNUVwCMlA
MwbhI4lEApuHwz8ZfCiKSLYqd2psxjTyqW4dA5dkCYAS5fKEPeC8IdF0Ol12KRtjrQZP2uRXuIub
zTFlCMTIySoRdcvJVZcgPgJZ7FUMVE8EiDhsiCxQQLEbYkprUrrq3JqWHhOQzlU2lK72mKP1Ftkd
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
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9VVAkAA0iMhFhPjIRYdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAACYVNkoAAAAAAAAAAAAAAAAtABwAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvVVQJAANIjIRYT4yEWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAmFTZK
AAAAAAAAAAAAAAAANgAcAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Jyb3dzZXJzL1VUCQADSIyEWE+MhFh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAJhU2SgAA
AAAAAAAAAAAAAD4AHAByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy9oaXN0b3J5L1VUCQADSIyEWE+MhFh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAA
JhU2SgAAAAAAAAAAAAAAAFUAHAByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2UvVVQJAANIjIRY
T4yEWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAmFTZKowtje8kAAAACAwAAgwAcAHJldHJpZXMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhl
LWxvY2F0aW9uLWludGVyZmFjZS9sb2NhdGlvbi1wcm90b2NvbC1zZXR0ZXItbm9uLWJyb2tlbi1h
Y3R1YWwudHh0VVQJAANIjIRYSIyEWHV4CwABBPUBAAAEFAAAAJ2SsW7CMBCGdz/FLUyVsrCxRVEo
SCFEOH0AxzlI6OGzzCF4/EIkhNouNoun//u/8+mKba23VQmbUuv8s1xAzQKGiK/YgzAQm/7+WEMQ
8MyXYHEBZxtGL7N5qYp38I6M+84GOZFSTa41aBRYtW0DX7sK9sGccGJkZJf5wMKW6dF2g1e+N2JS
8jH9U6da5usqWjFl2gGBuyNaAWscuPsOOgRL7LDP0kbYj4SJv/yDRFnEp0p+ETGOA/sBQ6LmHxRj
GkT8R+ptPCH1A1BLAwQUAAIACAAmFTZKbHREPBgBAADJAgAAgQAcAHJldHJpZXMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9u
LWludGVyZmFjZS9sb2NhdGlvbi1wcm90b2NvbC1zZXR0ZXItbm9uLWJyb2tlbi1kaWZmLnR4dFVU
CQADSIyEWEiMhFh1eAsAAQT1AQAABBQAAADVUU1PwzAMvfdX+MKpZBGauOzUARVIjG1aBjunqadF
c+sqcdXt35NOTOKI4MTFlj+en5+tlAL9wdQ3GPWTFavLndE7rF69fLmH3lOtN0hoI2qyZ+5FCUZR
AWNPEnVACT7hfdNxEKz1MHV6wEp1ZGXPobm0R32QhnQVeIgYUuSjcDhrOaAidlY8t8q3gmFvXSK6
prrAwo5JRZRUVG3KpSFHbBWeOnSJcCInyfI8/8dSrJPe0kVIUYC6u72HfDRFkeWPq6VZLUp4K42Z
P5czWLKAJeIBaxAGYlvDSEKQdHAfHM4guuA7uZmWGfwKX5Ftj5NRZ6b+ukAG67kxYFDgZbtdw/tm
AftgG4TraSbX04zjTt8BdfrkDwCfUEsDBBQAAgAIACYVNkqO9ghAyQAAAAIDAACFABwAcmV0cmll
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90
aGUtbG9jYXRpb24taW50ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJva2Vu
LWV4cGVjdGVkLnR4dFVUCQADSIyEWEiMhFh1eAsAAQT1AQAABBQAAACdkrFuwjAQhnc/xS1MlbKw
sUVRKEghRDh9AMc5SOjhs8whePxCJITaLjaLp//7v/Ppim2tt1UJm1Lr/LNcQM0Choiv2IMwEJv+
/lhDEPDMl2BxAR0Z950NciJVvMOfbRi9zOalUk2uNWgUWLVtA1+7CvbBnHBCZGSX+cDClulRdoNX
vjdiUvIx/VOnWubrKloxZdoBgbsjWgFrHLj7CjoES+ywz9JG2I+Eib/8g0RZxKdKfhExjgP7AUOi
5h8UYxpE/EfqbTwh9QNQSwMEFAACAAgAJhU2StztPKQDCAAAbxsAAIkAHAByZXRyaWVzL2ltcG9y
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
ABgAAAAAAAAAEADtQQoZAgBjcnlwdG8vc3VidGxlL1VUBQADxYmEWHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAgAAAM8TNkol4NMILAAAACwAAAA+ABgAAAAAAAEAAACkgVIZAgBjcnlwdG8vc3VidGxl
L3JzYS1nZW5lcmF0ZS1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUBQADxYmE
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM8TNkowO7ixSwAAAGgAAAA8ABgAAAAAAAEAAACk
gfYZAgBjcnlwdG8vc3VidGxlL3JzYS1pbXBvcnQta2V5LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLXN0
ZGVyci50eHRVVAUAA8WJhFh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADOEzZKAAAAAAAAAAAA
AAAADwAYAAAAAAAAABAA7UG3GgIAY3J5cHRvL3dvcmtlcnMvVVQFAAPEiYRYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAzhM2SgAAAAAAAAAAAAAAABYAGAAAAAAAAAAQAO1BABsCAGNyeXB0by93
b3JrZXJzL3N1YnRsZS9VVAUAA8SJhFh1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAADOEzZKJeDT
CCwAAAAsAAAAMQAYAAAAAAABAAAApIFQGwIAY3J5cHRvL3dvcmtlcnMvc3VidGxlL3JzYS1nZW5l
cmF0ZS1rZXktc3RkZXJyLnR4dFVUBQADxImEWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANIT
NkoAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQecbAgBkaXNwbGF5bGlzdHMvVVQFAAPLiYRYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0hM2SqNX/ehQAAAAjgAAADIAGAAAAAAAAQAAAKSBLhwC
AGRpc3BsYXlsaXN0cy9leHRlbnQtaW5jbHVkZXMtdHJhbnNmb3Jtcy1zdGRlcnIudHh0VVQFAAPL
iYRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0hM2SvKWldVHAAAASQAAACkAGAAAAAAAAQAA
AKSB6hwCAGRpc3BsYXlsaXN0cy9sYXllci1kaXNwYXktbGlzdC1zdGRlcnIudHh0VVQFAAPLiYRY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAAxQ2SgAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1B
lB0CAGVkaXRpbmcvVVQFAAMmioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAAxQ2SgAAAAAA
AAAAAAAAABEAGAAAAAAAAAAQAO1B1h0CAGVkaXRpbmcvZGVsZXRpbmcvVVQFAAMmioRYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAAxQ2Sk1tAPu+AQAA/BIAACgAGAAAAAAAAQAAAKSBIR4CAGVk
aXRpbmcvZGVsZXRpbmcvZGVsZXRlLWVtb2ppLXN0ZGVyci50eHRVVAUAAyaKhFh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAoFTZKtb8kAngLAADrQgAADQAYAAAAAAABAAAApIFBIAIAZXJyb3Jf
bG9nLnR4dFVUBQADS4yEWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPITNkoAAAAAAAAAAAAA
AAAFABgAAAAAAAAAEADtQQAsAgBmYXN0L1VUBQADB4qEWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAOITNkoAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQT8sAgBmYXN0L2NhbnZhcy9VVAUAA+eJ
hFh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADiEzZKr3BJK3wAAAACAQAAJgAYAAAAAAABAAAA
pIGFLAIAZmFzdC9jYW52YXMvY2FudmFzLWxpbmVEYXNoLXN0ZGVyci50eHRVVAUAA+eJhFh1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAADrEzZKAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UFhLQIA
ZmFzdC9pbWFnZXMvVVQFAAP5iYRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6xM2SiGPvTgy
AAAAMwAAACwAGAAAAAAAAQAAAKSBpy0CAGZhc3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS1jcm9wLWJv
eC1zdGRlcnIudHh0VVQFAAP5iYRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA8hM2SgAAAAAA
AAAAAAAAAAoAGAAAAAAAAAAQAO1BPy4CAGZhc3QvdGV4dC9VVAUAAweKhFh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADyEzZK+OD4rnoBAACDCQAAIwAYAAAAAAABAAAApIGDLgIAZmFzdC90ZXh0
L2Vtb2ppLWdlbmRlci0yLXN0ZGVyci50eHRVVAUAAweKhFh1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAADxEzZKAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UFaMAIAZmFzdC94c2wvVVQFAAMFioRY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8BM2Sk77IPiIAAAA5wAAACUAGAAAAAAAAQAAAKSB
nTACAGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0ZGVyci50eHRVVAUAAwSKhFh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADwEzZK/aIuZI8AAADuAAAAJwAYAAAAAAABAAAApIGEMQIAZmFz
dC94c2wveHNsdC1iYWQtaW1wb3J0LXVyaS1zdGRlcnIudHh0VVQFAAMEioRYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA8BM2Ss+PZg5QAAAAoAAAACQAGAAAAAAAAQAAAKSBdDICAGZhc3QveHNs
L3hzbHQtY29udGVudFR5cGUtc3RkZXJyLnR4dFVUBQADBIqEWHV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAPETNkqBSnetSwAAAKwAAAA0ABgAAAAAAAEAAACkgSIzAgBmYXN0L3hzbC94c2x0LXRy
YW5zZm9ybS10by1mcmFnbWVudC1jcmFzaC1zdGRlcnIudHh0VVQFAAMFioRYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAKRU2SmtLy6EJAgAAkwQAABEAGAAAAAAAAQAAAKSB2zMCAGZ1bGxfcmVz
dWx0cy5qc29uVVQFAANNjIRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA+xM2SgAAAAAAAAAA
AAAAAAUAGAAAAAAAAAAQAO1BLzYCAGh0dHAvVVQFAAMZioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAExQ2SgAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BbjYCAGh0dHAvdGVzdHMvVVQFAANF
ioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA+xM2SgAAAAAAAAAAAAAAABEAGAAAAAAAAAAQ
AO1BszYCAGh0dHAvdGVzdHMvbWVkaWEvVVQFAAMZioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAA/RM2SgAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1B/jYCAGh0dHAvdGVzdHMvbWVkaWEvaGxz
L1VUBQADHYqEWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPsTNko+zBGYLQAAAC4AAAA6ABgA
AAAAAAEAAACkgU03AgBodHRwL3Rlc3RzL21lZGlhL2hscy92aWRlby1jb250cm9scy1saXZlLXN0
cmVhbS1hY3R1YWwudHh0VVQFAAMZioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+xM2SqXX
E6ElAgAAXQcAADgAGAAAAAAAAQAAAKSB7jcCAGh0dHAvdGVzdHMvbWVkaWEvaGxzL3ZpZGVvLWNv
bnRyb2xzLWxpdmUtc3RyZWFtLWRpZmYudHh0VVQFAAMZioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA+xM2Sgl+2WWiAQAACwYAADwAGAAAAAAAAQAAAKSBhToCAGh0dHAvdGVzdHMvbWVkaWEv
aGxzL3ZpZGVvLWNvbnRyb2xzLWxpdmUtc3RyZWFtLWV4cGVjdGVkLnR4dFVUBQADGYqEWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAPsTNkrsbekdagkAAPUuAABAABgAAAAAAAEAAACkgZ08AgBo
dHRwL3Rlc3RzL21lZGlhL2hscy92aWRlby1jb250cm9scy1saXZlLXN0cmVhbS1wcmV0dHktZGlm
Zi5odG1sVVQFAAMaioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA/RM2Sj7MEZgtAAAALgAA
ADwAGAAAAAAAAQAAAKSBgUYCAGh0dHAvdGVzdHMvbWVkaWEvaGxzL3ZpZGVvLWR1cmF0aW9uLWFj
Y2Vzc2liaWxpdHktYWN0dWFsLnR4dFVUBQADHYqEWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AP0TNkqmV9mXNAEAAMgDAAA6ABgAAAAAAAEAAACkgSRHAgBodHRwL3Rlc3RzL21lZGlhL2hscy92
aWRlby1kdXJhdGlvbi1hY2Nlc3NpYmlsaXR5LWRpZmYudHh0VVQFAAMdioRYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA/RM2SpGfzR+uAAAAfgIAAD4AGAAAAAAAAQAAAKSBzEgCAGh0dHAvdGVz
dHMvbWVkaWEvaGxzL3ZpZGVvLWR1cmF0aW9uLWFjY2Vzc2liaWxpdHktZXhwZWN0ZWQudHh0VVQF
AAMdioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA/RM2SoV0SmBoCAAAniQAAEIAGAAAAAAA
AQAAAKSB8kkCAGh0dHAvdGVzdHMvbWVkaWEvaGxzL3ZpZGVvLWR1cmF0aW9uLWFjY2Vzc2liaWxp
dHktcHJldHR5LWRpZmYuaHRtbFVUBQADHYqEWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABMU
NkoAAAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQdZSAgBodHRwL3Rlc3RzL21pc2MvVVQFAANFioRY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAExQ2ShU1NZJ6AAAAvAAAACoAGAAAAAAAAQAAAKSB
IFMCAGh0dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1pbXBvcnQtc3RkZXJyLnR4dFVUBQADRYqEWHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAAwUNkoAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQf5T
AgBodHRwL3Rlc3RzL3NlY3VyaXR5L1VUBQADOIqEWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AAgUNkoAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQUxUAgBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS9VVAUAAy+KhFh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAI
FDZKY6qsbIIAAACoAAAAQAAYAAAAAAABAAAApIGwVAIAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250
ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUBQADL4qEWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAAgUNkpjqqxsggAAAKgAAABSABgAAAAAAAEAAACkgaxVAgBodHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3RlZC1ieS1z
dHlsZS1zcmMtMi1zdGRlcnIudHh0VVQFAAMvioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
DBQ2SmBLZhCRAAAA+wEAAEUAGAAAAAAAAQAAAKSBulYCAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNz
LURFTklFRC14c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4dFVUBQADOIqEWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACMVNkpbBFgOogUAAE0QAAAKABgAAAAAAAEAAACkgcpX
AgBodHRwZC5jb25mVVQFAANCjIRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAADRQ2SgAAAAAA
AAAAAAAAAAkAGAAAAAAAAAAQAO1BsF0CAGltcG9ydGVkL1VUBQADOoqEWHV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAA8UNkoAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQfNdAgBpbXBvcnRlZC93
M2MvVVQFAAM9ioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAADRQ2SgAAAAAAAAAAAAAAABoA
GAAAAAAAAAAQAO1BOl4CAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvVVQFAAM6ioRYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAADxQ2SgAAAAAAAAAAAAAAACYAGAAAAAAAAAAQAO1Bjl4CAGlt
cG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvVVQFAAM+ioRYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgADRQ2So80GnBEAAAAoAkAAEcAGAAAAAAAAQAAAKSB7l4CAGltcG9ydGVk
L3czYy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19SU0EtT0FFUC1zdGRl
cnIudHh0VVQFAAM6ioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADxQ2SlQCybI2AAAAwAIA
AFAAGAAAAAAAAQAAAKSBs18CAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkv
dGVzdF9mYWlsdXJlc19SU0FTU0EtUEtDUzEtdjFfNS1zdGRlcnIudHh0VVQFAAM+ioRYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAEhQ2SgAAAAAAAAAAAAAAACAAGAAAAAAAAAAQAO1Bc2ACAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvVVQFAANDioRYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAADxQ2SgAAAAAAAAAAAAAAACYAGAAAAAAAAAAQAO1BzWACAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvVVQFAAM9ioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAADxQ2SgAAAAAAAAAAAAAAACoAGAAAAAAAAAAQAO1BLWECAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL1VUBQADPYqEWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
ABIUNkoAAAAAAAAAAAAAAAAvABgAAAAAAAAAEADtQZFhAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL1VUBQADQ4qEWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAA8UNkq0RFZpCQIAAL0MAABFABgAAAAAAAEAAACkgfphAgBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtb3JpZ2luLXN0ZGVyci50eHRVVAUAAz2K
hFh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAQFDZKXDyMLpsBAADeBQAASAAYAAAAAAABAAAA
pIGCZAIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3Jz
LXByZWZsaWdodC1zdGRlcnIudHh0VVQFAANAioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
EhQ2SkBbXo/KAgAAvxMAAFEAGAAAAAAAAQAAAKSBn2YCAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1yZWRpcmVjdC1wcmVmbGlnaHQtc3RkZXJyLnR4
dFVUBQADQ4qEWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABIUNkoAAAAAAAAAAAAAAAAlABgA
AAAAAAAAEADtQfRpAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvVVQFAAND
ioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAEhQ2SgAAAAAAAAAAAAAAAC4AGAAAAAAAAAAQ
AO1BU2oCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9VVAUA
A0OKhFh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAASFDZKAAAAAAAAAAAAAAAANgAYAAAAAAAA
ABAA7UG7agIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hp
c3RvcnkvVVQFAANDioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAEhQ2SgAAAAAAAAAAAAAA
AE0AGAAAAAAAAAAQAO1BK2sCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2UvVVQFAANDioRYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAEhQ2SqMLY3vJAAAAAgMAAHsAGAAAAAAAAQAAAKSBsmsCAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2Nh
dGlvbi1pbnRlcmZhY2UvbG9jYXRpb24tcHJvdG9jb2wtc2V0dGVyLW5vbi1icm9rZW4tYWN0dWFs
LnR4dFVUBQADQ4qEWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABIUNkoBa2rnFAEAALkCAAB5
ABgAAAAAAAEAAACkgTBtAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJv
d3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29sLXNl
dHRlci1ub24tYnJva2VuLWRpZmYudHh0VVQFAANDioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAEhQ2So72CEDJAAAAAgMAAH0AGAAAAAAAAQAAAKSB924CAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2Uv
bG9jYXRpb24tcHJvdG9jb2wtc2V0dGVyLW5vbi1icm9rZW4tZXhwZWN0ZWQudHh0VVQFAANDioRY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAEhQ2SpYQts/+BwAAZxsAAIEAGAAAAAAAAQAAAKSB
d3ACAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5
L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2UvbG9jYXRpb24tcHJvdG9jb2wtc2V0dGVyLW5vbi1icm9r
ZW4tcHJldHR5LWRpZmYuaHRtbFVUBQADQ4qEWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFoU
NkoAAAAAAAAAAAAAAAAGABgAAAAAAAAAEADtQTB5AgBtZWRpYS9VVAUAA8uKhFh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAAoFTZK7FLgjXlMAAAgbQEALgAYAAAAAAABAAAApIFweQIAbWVkaWEv
YXVkaW8tY29uY3VycmVudC1zdXBwb3J0ZWQtY3Jhc2gtbG9nLnR4dFVUBQADTIyEWHV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAgAAAFoUNkrsYoIALwAAAC8AAAArABgAAAAAAAEAAACkgVHGAgBtZWRp
YS9hdWRpby1jb25jdXJyZW50LXN1cHBvcnRlZC1zdGRlcnIudHh0VVQFAAPLioRYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAMBQ2SgAAAAAAAAAAAAAAABwAGAAAAAAAAAAQAO1B5cYCAG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9VVAUAA3yKhFh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AAAwFDZKAAAAAAAAAAAAAAAAPAAYAAAAAAAAABAA7UE7xwIAbWVkaWEvbW9kZXJuLW1lZGlhLWNv
bnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvVVQFAAN8ioRYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAMBQ2StMLdAFHAQAABAQAAHUAGAAAAAAAAQAAAKSBsccCAG1lZGlh
L21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtYnV0dG9ucy1zdHlsZXMtYWN0dWFsLnR4dFVU
BQADfIqEWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADAUNkrBG/1EPgEAAF0EAABzABgAAAAA
AAEAAACkgafJAgBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1t
ZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWJ1dHRvbnMtc3R5
bGVzLWRpZmYudHh0VVQFAAN8ioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAMBQ2SoVmj8oX
AQAAwwMAAHcAGAAAAAAAAQAAAKSBkssCAG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNv
cy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJv
bHMtYnV0dG9ucy1zdHlsZXMtZXhwZWN0ZWQudHh0VVQFAAN8ioRYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAMBQ2SoXvMEf7CAAA9S4AAHsAGAAAAAAAAQAAAKSBWs0CAG1lZGlhL21vZGVybi1t
ZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxz
Y3JlZW4tbWVkaWEtY29udHJvbHMtYnV0dG9ucy1zdHlsZXMtcHJldHR5LWRpZmYuaHRtbFVUBQAD
fIqEWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAEQUNkoAAAAAAAAAAAAAAAAMABgAAAAAAAAA
EADtQQrXAgBtZWRpYS90cmFjay9VVAUAA5+KhFh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABE
FDZKjekYVEsBAABUAgAAKgAYAAAAAAABAAAApIFQ1wIAbWVkaWEvdHJhY2svdHJhY2staW4tYmFu
ZC1zdHlsZS1hY3R1YWwudHh0VVQFAAOfioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgARBQ2
SuPleoBwAQAAvQIAACgAGAAAAAAAAQAAAKSB/9gCAG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQt
c3R5bGUtZGlmZi50eHRVVAUAA5+KhFh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABEFDZKDPrk
6jYBAAAzAgAALAAYAAAAAAABAAAApIHR2gIAbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1zdHls
ZS1leHBlY3RlZC50eHRVVAUAA5+KhFh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABEFDZKFPni
v5YIAADQIAAAMAAYAAAAAAABAAAApIFt3AIAbWVkaWEvdHJhY2svdHJhY2staW4tYmFuZC1zdHls
ZS1wcmV0dHktZGlmZi5odG1sVVQFAAOfioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAChQ2
Sn9mDudmAgAAohUAABoAGAAAAAAAAQAAAKSBbeUCAHB5d2Vic29ja2V0LndzLmxvZy1lcnIudHh0
VVQFAAM0ioRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAChQ2SjvtJc4MAQAAjwIAABoAGAAA
AAAAAQAAAKSBJ+gCAHB5d2Vic29ja2V0LndzLmxvZy1vdXQudHh0VVQFAAM0ioRYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAyBM2SgAAAAAAAAAAAAAAABsAGAAAAAAAAAAAAKSBh+kCAHB5d2Vi
c29ja2V0Lndzcy5sb2ctZXJyLnR4dFVUBQADuImEWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AMgTNkoAAAAAAAAAAAAAAAAbABgAAAAAAAAAAACkgdzpAgBweXdlYnNvY2tldC53c3MubG9nLW91
dC50eHRVVAUAA7eJhFh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAApFTZKRSYdOdEnAADLqgAA
DAAYAAAAAAABAAAApIEx6gIAcmVzdWx0cy5odG1sVVQFAANNjIRYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAJhU2SgAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1BSBIDAHJldHJpZXMvVVQFAANI
jIRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAJhU2SgAAAAAAAAAAAAAAABEAGAAAAAAAAAAQ
AO1BihIDAHJldHJpZXMvaW1wb3J0ZWQvVVQFAANIjIRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAJhU2SgAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1B1RIDAHJldHJpZXMvaW1wb3J0ZWQvdzNj
L1VUBQADSIyEWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACYVNkoAAAAAAAAAAAAAAAAoABgA
AAAAAAAAEADtQSQTAwByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvVVQF
AANIjIRYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAJhU2SgAAAAAAAAAAAAAAAC0AGAAAAAAA
AAAQAO1BhhMDAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL1VU
BQADSIyEWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACYVNkoAAAAAAAAAAAAAAAA2ABgAAAAA
AAAAEADtQe0TAwByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy9VVAUAA0iMhFh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAmFTZKAAAAAAAAAAAA
AAAAPgAYAAAAAAAAABAA7UFdFAMAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS9VVAUAA0iMhFh1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAAAmFTZKAAAAAAAAAAAAAAAAVQAYAAAAAAAAABAA7UHVFAMAcmV0cmllcy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24t
aW50ZXJmYWNlL1VUBQADSIyEWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACYVNkqjC2N7yQAA
AAIDAACDABgAAAAAAAEAAACkgWQVAwByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2UvbG9jYXRp
b24tcHJvdG9jb2wtc2V0dGVyLW5vbi1icm9rZW4tYWN0dWFsLnR4dFVUBQADSIyEWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIACYVNkpsdEQ8GAEAAMkCAACBABgAAAAAAAEAAACkgeoWAwByZXRy
aWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5
L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2UvbG9jYXRpb24tcHJvdG9jb2wtc2V0dGVyLW5vbi1icm9r
ZW4tZGlmZi50eHRVVAUAA0iMhFh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAmFTZKjvYIQMkA
AAACAwAAhQAYAAAAAAABAAAApIG9GAMAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2xvY2F0
aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJva2VuLWV4cGVjdGVkLnR4dFVUBQADSIyEWHV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIACYVNkrc7TykAwgAAG8bAACJABgAAAAAAAEAAACkgUUaAwBy
ZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0
b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2UvbG9jYXRpb24tcHJvdG9jb2wtc2V0dGVyLW5vbi1i
cm9rZW4tcHJldHR5LWRpZmYuaHRtbFVUBQADSIyEWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ACkVNkrjpbTOJcsIABnlLwAKABgAAAAAAAEAAACkgQsjAwBzdGF0cy5qc29uVVQFAANNjIRYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAKBU2Sphm3govAwAArBkAABkAGAAAAAAAAQAAAKSBdO4L
AHdwdHdrX3Byb2Nlc3NfbG9nLm91dC50eHRVVAUAA0yMhFh1eAsAAQT1AQAABBQAAABQSwUGAAAA
AHQAdADaMwAA9vELAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299479</attachid>
            <date>2017-01-22 12:55:18 -0800</date>
            <delta_ts>2017-01-22 16:54:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167224-20170122125321.patch</filename>
            <type>text/plain</type>
            <size>393170</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjgyY2FlNGU0MDc4NjI4
ZDQ3NTQ2M2Y3ZTdmMWIwNDgwNmU5ZDc1My4uZTJjMjQ0M2UxZjk5ZjNkMDc1OWIyN2IxZWI4OGEy
OTQ3MzQzYzE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzOCBAQAorMjAxNy0wMS0yMCAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIg
ZnJvbSAicGFnZSIgZGlyZWN0b3J5IG9mIFdlYkNvcmUsIGFsc28gZGVwbG95IHJlZmVyZW5jZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIyNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9ET01XaW5kb3dGZXRjaC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dG
ZXRjaDo6ZmV0Y2gpOiBVc2UgRE9NV2luZG93Ojpkb2N1bWVudCBpbnN0ZWFkIG9mCisgICAgICAg
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUNvbnRleHQ6
OmRhdGFiYXNlRXhjZWVkZWRRdW90YSk6IFBhc3MgYSByZWZlcmVuY2UuCisKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAg
ICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eVNob3dD
b250ZXh0TWVudV0pOgorICAgICAgICBQYXNzIGEgcmVmZXJlbmNlLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01X
aW5kb3c6OmdldE93blByb3BlcnR5U2xvdCk6IFBhc3MgYSByZWZlcmVuY2UuCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNoaWxkcmVu
Q2hhbmdlZCk6IFBhc3MgYSByZWZlcmVuY2UuIEFsc28gbWFkZSB0aGUKKyAgICAgICAgZGlkUmVj
ZWl2ZURvY1R5cGUgY29kZSB1bmNvbmRpdGlvbmFsIGluc3RlYWQgb2YgaU9TLW9ubHkuCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2Jq
ZWN0cyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVZpZXdwb3J0
QXJndW1lbnRzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Rm9jdXNl
ZEVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVET01X
aW5kb3cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0YWtlRE9NV2luZG93
RnJvbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlcXVlc3RGdWxsU2Ny
ZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtp
dEV4aXRGdWxsc2NyZWVuKTogRGl0dG8uCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Zm9jdXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmJsdXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRpc3Bh
dGNoRm9jdXNFdmVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZGlzcGF0
Y2hCbHVyRXZlbnQpOiBEaXR0by4KKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogRGl0dG8uCisgICAgICAgICogZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVQcmludCk6
IERpdHRvLgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldEZvY3VzZWRFbGVtZW50SWZOZWVkZWQpOiBEaXR0
by4KKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkRnJhbWU6OkNhY2hlZEZyYW1lKTogRGl0dG8uCisgICAgICAgICogaHRtbC9Db2xvcklucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6aGFuZGxlRE9NQWN0
aXZhdGVFdmVudCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2Fi
bGUpOiBEaXR0by4KKworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0tleWJvYXJkRm9j
dXNhYmxlKTogUGFzcyBhIHJlZmVyZW5jZSwKKyAgICAgICAgYW5kIGFsc28gcmV3cm90ZSB0byB1
c2UgJiYgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c3VwcG9ydHNGdWxsc2NyZWVu
KTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9TcGluQnV0dG9uRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6
OnJlbGVhc2VDYXB0dXJlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjOjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogRGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250ZXh0TWVudSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpkaXNwYXRjaEV2ZW50QXNDb250
ZXh0TWVudUV2ZW50KTogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUp
OiBVcGRhdGVkIHRvIHRha2UgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJv
bWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0p
OiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNvbW1p
dFByb3Zpc2lvbmFsTG9hZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmNsb3NlQW5kUmVtb3ZlQ2hpbGQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OmRldGFjaEZyb21QYXJlbnQpOiBQYXNzIGEgcmVmZXJlbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpc3BhdGNoQmVmb3JlVW5sb2FkRXZlbnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6IERpdHRvLgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAg
KiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVj
a2VyOjpjaGVja05ld1dpbmRvd1BvbGljeSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnJlY2FsY3VsYXRlQXZhaWxhYmxlU3BhY2VJblF1
b3RhKTogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmg6IFJldHVybiBhIHJlZmVyZW5jZSBmcm9tIG9yaWdpbi4KKworICAgICAgICAqIGxv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4pOiBU
YWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZSk6CisgICAg
ICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnN0
b3JlKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjpjaGVja09yaWdpblF1b3RhKTogVXBkYXRlZCBzaW5jZSBvcmlnaW4KKyAgICAg
ICAgbm93IHJldHVybnMgYXJlZmVyZW5jZS4KKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAg
ICogbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEpOiBQYXNzIGEgcmVmZXJlbmNlLgor
ICAgICAgICAqIG1hdGhtbC9NYXRoTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1h
dGhNTEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOiBEaXR0by4KKworICAgICAgICAqIHBh
Z2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Q2hyb21lKTogTW92ZWQg
aW5pdGlhbGl6YXRpb24gb2YgZGF0YSBtZW1iZXJzIHRvIHRoZQorICAgICAgICBjbGFzcyBkZWZp
bml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2VkKTog
VGFrZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlV2luZG93
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpydW5KYXZhU2NyaXB0
QWxlcnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdENv
bmZpcm0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdFBy
b21wdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZXRTdGF0dXNiYXJUZXh0
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnByaW50KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWU6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lOjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWU6OmRpZFJlY2VpdmVEb2NUeXBlKTogRGl0dG8uIEFsc28gbWFkZSB1bmNv
bmRpdGlvbmFsLCBidXQKKyAgICAgICAgZW1wdHkgZm9yIG5vbi1pT1MgcGxhdGZvcm1zLgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lOjpyZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKTogVGFr
ZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6dW5yZWdpc3RlclBvcHVw
T3BlbmluZ09ic2VydmVyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWUuaDogVXBkYXRl
ZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogVGFrZSBy
ZWZlcmVuY2VzLiBBbHNvIHVwZGF0ZWQgc29tZSBhcmd1bWVudHMgZnJvbQorICAgICAgICBOb2Rl
IHRvIEVsZW1lbnQuCisKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmhhbmRsZUNvbnRleHRN
ZW51RXZlbnQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudSk6IERpdHRvLiBB
bHNvIHVzZQorICAgICAgICBtYWtlX3VuaXF1ZSBpbnN0ZWFkIG9mIHVuaXF1ZV9wdHIgcGx1cyBu
ZXcuCisgICAgICAgIChXZWJDb3JlOjpvcGVuTmV3V2luZG93KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjppbnNlcnRVbmljb2RlQ2hhcmFjdGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVu
dUF0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNo
b3dJbWFnZUNvbnRyb2xzTWVudSk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2UvRE9N
VGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OmZpcmVkKTogUGFzcyBhIHJl
ZmVyZW5jZS4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBvc3RNZXNzYWdlVGltZXI6OlBvc3RNZXNzYWdlVGltZXIpOiBUYWtlIFJlZiYmIGluc3Rl
YWQgb2YKKyAgICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
YWRqdXN0V2luZG93UmVjdCk6IFVzZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6YWxsb3dQb3BVcCk6IERpdHRvLiBBbHNvIHJld3JpdGUgdG8gdXNlIHx8IGluc3Rl
YWQKKyAgICAgICAgb2Ygc3VjY2Vzc2l2ZSBpZiBzdGF0ZW1lbnRzLgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6RE9NV2luZG93KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OmRpZFNlY3VyZVRyYW5zaXRpb25Ubyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjpyZWdpc3RlclByb3BlcnR5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3c6OnVucmVnaXN0ZXJQcm9wZXJ0eSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQpOiBNZXJnZSB3aXRoIHRoZSBmdW5jdGlv
bgorICAgICAgICBpbW1lZGlhdGVseSBmb2xsb3dlZCwgY2FsbGVkIG9ubHkgZnJvbSBoZXJlLgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmln
aW5DaGVjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnByaW50KTog
UGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWxlcnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y29uZmlybSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpwcm9tcHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c2V0U3RhdHVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OnNldERlZmF1bHRTdGF0dXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6bW92ZUJ5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1vdmVU
byk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVCeSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVUbyk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6RE9NV2luZG93OjpjbGVhclRpbWVvdXQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6aW5jcmVtZW50U2Nyb2xsRXZlbnRMaXN0ZW5lcnNDb3VudCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkZWNyZW1lbnRTY3JvbGxFdmVudExp
c3RlbmVyc0NvdW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNob3dN
b2RhbERpYWxvZyk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZS4gQUxzbyBtYWRlIGZ1bmN0aW9ucyBwcml2YXRlCisgICAgICAgIGFuZCBm
aW5hbC4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93UHJvcGVydHk6OkRPTVdpbmRvd1Byb3BlcnR5KTogUGFzcyBhIHJl
ZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp+RE9NV2luZG93
UHJvcGVydHkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3
aWxsRGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJhbWUp
OiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVnaW9uT3ZlcmxheTo6Y3JlYXRlKTogUmV0dXJuIFJlZlB0ciBpbnN0ZWFk
IG9mIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpSZWdpb25PdmVybGF5Ojp+UmVnaW9u
T3ZlcmxheSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEZWJ1Z1BhZ2VP
dmVybGF5czo6c2hvd1JlZ2lvbk92ZXJsYXkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRl
YnVnUGFnZU92ZXJsYXlzOjpoaWRlUmVnaW9uT3ZlcmxheSk6IERpdHRvLgorCisgICAgICAgICog
cGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxl
cjo6ZHJhZ0V4aXRlZCk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6cGVyZm9ybURyYWdPcGVyYXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6dHJ5REhUTUxEcmFnKTogRGl0dG8uCisKKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6IFJlcGxhY2VkIE9wdGlvbmFsQ3Vyc29yIHdpdGggc3Rk
OjpvcHRpb25hbDxDdXJzb3I+LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRh
dGVDdXJzb3IpOiBSZWZhY3RvciBpbnRvIHR3byBmdW5jdGlvbnMgc28gd2UKKyAgICAgICAgY2Fu
IHNoYXJlIG1vcmUgY29kZSB3aXRoIHNlbGVjdEN1cnNvci4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKTogVXBkYXRlZCB0byB1c2Ugc3RkOjpvcHRpb25hbC4K
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3ZlRXZlbnQpOiBV
c2UgdGhlIG5ldyB1cGRhdGVDdXJzb3IuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OnN0YXJ0UGFuU2Nyb2xsaW5nKTogVXNlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERyb3ApOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KTog
VGFrZSBhIHJhdyBwb2ludGVyCisgICAgICAgIGluc3RlYWQgb2YgYSBQYXNzUmVmUHRyLgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZlbnQpOiBVc2UgYSBy
ZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0
ZUFmdGVyRWRpdERyYWdJZk5lZWRlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJzVG9MaW5rcyk6IERpdHRv
LgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4K
KworICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEZyYW1lKTogVGFrZSBwb2ludGVyIGluc3RlYWQK
KyAgICAgICAgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxl
cjo6c2V0Rm9jdXNlZEVsZW1lbnQpOiBUYWtlIHJlZmVyZW5jZSBpbnN0ZWFkIG9mCisgICAgICAg
IFBhc3NSZWZQdHIuCisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDogVXBkYXRlZCBm
b3IgdGhlIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OnRyYW5zZmVyQ2hpbGQpOiBEZWxldGVkLiBVbnVz
ZWQgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OmFwcGVuZENoaWxkKTog
TWVyZ2VkIHdpdGggdGhlIGZvbGxvd2luZyBmdW5jdGlvbgorICAgICAgICBzaW5jZSBpdCdzIG5v
dyBvbmx5IHVzZWQgaGVyZS4gVGFrZSByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVUcmVlOjphY3R1YWxseUFwcGVuZENoaWxkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6cmVtb3ZlQ2hpbGQpOiBUYWtlIHJlZmVy
ZW5jZSBpbnN0ZWFkIG9mIHBvaW50ZXIuCisgICAgICAgIFVzZSBtb3ZlIGluc3RlYWQgb2YgdHJp
Y2tpZXIgc3dhcC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5oOiBVcGRhdGVkIGZvciB0aGUg
YWJvdmUuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnNldENvbnRlbnRzU2l6ZSk6IFVzZSBhIHJlZmVyZW5jZS4KKyAgICAgICAg
KiBwYWdlL01haW5GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6OmRyb3BD
aGlsZHJlbik6IERpdHRvLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpzY3JvbGxpbmdDb29yZGluYXRvcik6IERpdHRvLgorICAgICAgICAqIHBhZ2Uv
UGFnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXk6OmZhZGVBbmlt
YXRpb25UaW1lckZpcmVkKTogRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlT3ZlcmxheUNvbnRyb2xsZXI6Omlu
c3RhbGxQYWdlT3ZlcmxheSk6IFRha2UgcmVmZXJlbmNlCisgICAgICAgIGluc3RlYWQgb2YgUGFz
c1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0
YWxsUGFnZU92ZXJsYXkpOiBUYWtlIHJlZmVyZW5jZQorICAgICAgICBpbnRlYWQgb2YgcG9pbnRl
ci4KKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oOiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpQYWdlU2VyaWFsaXplcik6IE1vdmVkIG1vc3QgaW5p
dGlhbGl6YXRpb24gdG8gdGhlCisgICAgICAgIGNsYXNzIGRlZmluaXRpb24uCisgICAgICAgIChX
ZWJDb3JlOjpQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplKTogVXNlIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVGcmFtZSk6IFVzZSBpbml0aWFs
aXplciBsaXN0IGluc3RlYWQgb2YKKyAgICAgICAgY29uc3RydWN0b3IgZm9yIHJlc291cmNlLgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUNTU1N0eWxlU2hlZXQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjphZGRJbWFnZVRvUmVz
b3VyY2VzKTogRGl0dG8uCisgICAgICAgICogcGFnZS9QYWdlU2VyaWFsaXplci5oOiBSZW1vdmVk
IGNvbnN0cnVjdG9ycyBmcm9tIFBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZQorICAgICAgICBzdHJ1
Y3Qgc2luY2Ugc3RydWN0dXJlcyBkb24ndCByZWFsbHkgbmVlZCB0aGVtLiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUuCisgICAgICAgIENoYW5nZWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yIGlu
dG8gYSBuZXN0ZWQgY2xhc3MuCisKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlRW50cnkuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlRW50cnk6OnN0YXJ0VGltZUNvbXBhcmVMZXNz
VGhhbik6IFVzZSBjb25zdCBSZWZQdHImCisgICAgICAgIGluc3RlYWQgb2YgUGFzc1JlZlB0ciB0
byBjb21wYXJlIFJlZlB0ciBpbiBwbGFjZS4KKworICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VV
c2VyVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omluc2VydFBlcmZvcm1hbmNlRW50cnkp
OiBUYWtlIFJlZiYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKworICAgICAgICAqIHBhZ2UvUmVz
b3VyY2VVc2FnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VVc2FnZU92
ZXJsYXk6On5SZXNvdXJjZVVzYWdlT3ZlcmxheSk6IFVzZSByZWZyZW5jZS4KKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlVXNhZ2VPdmVybGF5Ojppbml0aWFsaXplKTogRGl0dG8uCisKKyAgICAg
ICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmg6IFJlbW92ZWQgdW5uZWVkZWQgaW5j
bHVkZS4KKworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmNsZWFyKTog
VXNlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlOjpmaXJlRXZlbnRzQW5kVXBkYXRlU3R5bGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2gpOiBVc2UgdGhl
CisgICAgICAgIGFwcGVuZCBmdW5jdGlvbiBpbnN0ZWFkIG9mIGEgaGFuZC13cml0dGVuIGFsdGVy
bmF0aXZlLgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFk
ZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKToKKyAgICAgICAgVGFrZSBhIHJlZmVyZW5jZSByYXRo
ZXIgdGhhbiBhIFJlZiYmIHNpbmNlIG5vIGNhbGxlciBpcyBwYXNzaW5nIG93bmVyc2hpcC4KKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oOiBVcGRh
dGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0
eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibGVuZEZ1bmMpOiBSZXR1cm4gUmVm
UHRyIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OmJsZW5kRmlsdGVy
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpjcm9zc2ZhZGVCbGVuZCk6IERpdHRvLgorCisg
ICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlVHJhbnNpdGlvbnMpOiBVcGRhdGVk
IHRvIHVzZQorICAgICAgICBhbmltYXRpb25Gb3JQcm9wZXJ0eSwgd2hpY2ggcmV0dXJucyBhIHJh
dyBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRp
b25Gb3JQcm9wZXJ0eSk6IFJlbmFtZWQgZnJvbQorICAgICAgICBnZXRBbmltYXRpb25Gb3JQcm9w
ZXJ0eSBhbmQgY2hhbmdlZCB0byByZXR1cm4gcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAgICBv
ZiBQYXNzUmVmUHRyLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9J
bXBsaWNpdEFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlv
bjo6b25BbmltYXRpb25FbmQpOiBVc2UgYW5pbWF0aW9uRm9yUHJvcGVydHkuCisgICAgICAgIChX
ZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudCk6IFBhc3MgcmVm
ZXJlbmNlLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQp
OiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyk6IFRha2Ug
cmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2lu
Z0RhdGFUcmFuc2Zlcik6IFJldHVybiBSZWYuCisgICAgICAgICogcGFnZS9ndGsvRXZlbnRIYW5k
bGVyR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9y
bUNvbnRyb2xzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9pb3MvRXZlbnRI
YW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxG
b3JtQ29udHJvbHMpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRy
YW5zZmVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0Fs
bEZvcm1Db250cm9scyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpw
bGF0Zm9ybVByZXBhcmVGb3JXaGVlbEV2ZW50cyk6IERpdHRvLgorCisgICAgICAgICogcGFnZS9t
YWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oOiBUYWtlIFJlZiYmIGZvciByYW5nZXMgaW5z
dGVhZAorICAgICAgICBvZiBQYXNzUmVmUHRyLiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKiBw
YWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6Okhp
Z2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OkhpZ2hsaWdodCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6YnVpbGRQ
b3RlbnRpYWxIaWdobGlnaHRzSWZOZWVkZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkUGhvbmVOdW1iZXJIaWdobGlnaHRzKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFNl
bGVjdGlvbkhpZ2hsaWdodCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVy
bGF5Q29udHJvbGxlcjo6aGlnaGxpZ2h0c0FyZUVxdWl2YWxlbnQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmZpbmRUZWxlcGhvbmVOdW1iZXJI
aWdobGlnaHRDb250YWluaW5nU2VsZWN0aW9uSGlnaGxpZ2h0KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpoYW5kbGVDbGljayk6IERpdHRvLgor
CisgICAgICAgICogcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKyAgICAgICAgKC1b
V2ViVGV4dEluZGljYXRvclZpZXcgaW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpv
ZmZzZXQ6XSk6CisgICAgICAgIFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRy
LgorICAgICAgICAoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRv
cik6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0Fz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDogVXNlIFJlZiYmIGFuZCBSZWZQdHIgaW50ZWFkCisg
ICAgICAgIG9mIFBzYXNSZWZQdHIuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxM
YXRjaGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbExhdGNoaW5nU3RhdGU6
OlNjcm9sbExhdGNoaW5nU3RhdGUpOiBJbml0aWFsaXplIGRhdGEgbWVtYmVycworICAgICAgICBp
biBjbGFzcyBkZWZpbml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0
ZTo6c2V0V2hlZWxFdmVudEVsZW1lbnQpOiBVc2UgcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAg
ICBvZiBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6
c2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudCk6IFVzZSByYXcKKyAgICAgICAgcG9pbnRl
ciBpbnN0ZWFkIG9mIFJlZlB0ciYmLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdT
dGF0ZTo6c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcik6IFVzZSByYXcgcG9pbnRlciBpbnN0ZWFkCisg
ICAgICAgIG9mIFBhc3NSZWZQdHIuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0
Y2hpbmdTdGF0ZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KTogVXNlIFJlZiBpbnN0ZWFkIG9mIFBhc3NSZWZQ
dHIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxkKTog
VXNlIFJlZiYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZU5vZGUuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlTm9kZSk6IFVzZSBSZWYgaW5zdGVhZCBvZiBQ
YXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlOjphdHRhY2hO
b2RlKTogVXBkYXRlZCBmb3IgdGhlIGFidmUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdT
dGF0ZVRyZWU6OmNvbW1pdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlVHJlZS5oOiBEaXR0by4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJl
ZUZyb21TdGF0ZU5vZGUpOiBVc2UgcmVmZXJlbmNlLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaDogUmV0dXJuIFJlZiBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9kZTo6YXBwZW5kQ2hpbGQpOiBUYWtlIFJlZiYmIGluc3Rl
YWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVOb2RlOjpy
ZW1vdmVDaGlsZCk6IFRha2UgcmVmZXJlbmNlIGluc3RlYWQgb2YgcG9pbnRlci4KKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJv
dmUuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpUaHJlYWRlZFNjcm9s
bGluZ1RyZWUpOiBUYWtlIHJlZmVyZW5jZQorICAgICAgICBpbnN0ZWFkIG9mIHBvaW50ZXIuCisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdD
b29yZGluYXRvcklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
SU9TOjpTY3JvbGxpbmdDb29yZGluYXRvcklPUyk6IFBhc3MgcmVmZXJlbmNlLgorCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRlKTogVGFrZSBhIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVJT1M6OlNjcm9sbGluZ1RyZWVJT1MpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKTogUmV0dXJuIFJlZiBpbnN0ZWFkIG9mCisgICAgICAgIFBhc3NSZWZQdHIuCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaDogVXBkYXRlZCBmb3IgdGhl
IGFib3ZlLgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OlNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjKTogVXNlIHJlZmVyZW5jZS4KKworICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNwcDoKKyAgICAgICAgKFNjcm9sbGluZ1Ry
ZWVNYWM6OmNyZWF0ZSk6IFRha2UgYSByZWZlcmVuY2UuCisgICAgICAgIChTY3JvbGxpbmdUcmVl
TWFjOjpTY3JvbGxpbmdUcmVlTWFjKTogRGl0dG8uCisgICAgICAgIChTY3JvbGxpbmdUcmVlTWFj
OjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZSk6IFJldHVybiBhIFJlZiBpbnN0ZWFkIG9mIGEKKyAg
ICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZU1hYy5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL3dpbi9F
dmVudEhhbmRsZXJXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJz
VG9BbGxGb3JtQ29udHJvbHMpOiBUYWtlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIpOiBSZXR1cm4gUmVmLgorCisg
ICAgICAgICogcGxhdGZvcm0vQ3Vyc29yLmg6IFJlYXJyYW5nZWQgdGhlIGhlYWRlciBhIGJpdC4g
R290IHJpZCBvZiB0aGUgZXhwbGljaXQKKyAgICAgICAgY29weSBjb25zdHJ1Y3RvciwgYXNzaWdu
bWVudCBvcGVyYXRvciwgYW5kIGRlc3RydWN0b3IuIFVzaW5nIHRoZSBvbmVzCisgICAgICAgIHRo
YXQgdGhlIGNvbXBpbGVyIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVzIHdpbGwgd29yayBmb3IgYWxs
IHBsYXRmb3JtcyBhbmQKKyAgICAgICAgd2UgdGhlbiBhbHNvIGdldCBtb3ZlIGNvbnN0cnVjdG9y
IGFuZCBtb3ZlIGFzc2lnbm1lbnQgb3BlcmF0b3IuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
Q3Vyc29yRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6Q3Vyc29yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6fkN1cnNvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpDdXJzb3I6Om9wZXJhdG9yPSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3RrL0N1cnNvckd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6OkN1cnNvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6Om9wZXJhdG9yPSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6On5DdXJzb3IpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9DdXJzb3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6OkN1
cnNvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6Om9wZXJhdG9yPSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6On5DdXJzb3IpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9DdXJzb3JXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hh
cmVkQ3Vyc29yOjpTaGFyZWRDdXJzb3IpOiBNb3ZlZCB0aGlzIGhlcmUgZnJvbSB0aGUgaGVhZGVy
CisgICAgICAgIHNpbmNlIGl0IGlzIG9ubHkgdXNlZCB3aXRoaW4gdGhpcyBmaWxlLgorICAgICAg
ICAoV2ViQ29yZTo6U2hhcmVkQ3Vyc29yOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkN1cnNvcjo6Q3Vyc29yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6
b3BlcmF0b3I9KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6fkN1cnNvcik6
IERlbGV0ZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OmhhbmRsZVVuYXZhaWxh
YmxlUGx1Z2luSW5kaWNhdG9yRXZlbnQpOgorICAgICAgICBQYXNzIHJlZmVyZW5jZS4KKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXllckJhY2tpbmcpOiBHZXQgdG8gRnJhbWVW
aWV3CisgICAgICAgIHRocm91Z2ggdGhlIHJlbmRlciB0cmVlIGl0c2VsZiwgcmF0aGVyIHRoYW4g
dGhyb3VnaCB0aGUgZnJhbWUuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBk
YXRlTGF5ZXJGb3JIZWFkZXIpOiBVc2UgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllckZvckZvb3Rlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphdHRhY2hSb290TGF5ZXIpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGV0YWNoUm9vdExh
eWVyKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAg
ICAgICAgKFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXApOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Vh
cmNoRmllbGQ6OmFkZFNlYXJjaFJlc3VsdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU2VhcmNoRmllbGQ6OnNob3dQb3B1cCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU2VhcmNoRmllbGQ6OnZhbHVlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdB
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBRWxlbWVudDo6aXNLZXlib2FyZEZv
Y3VzYWJsZSk6IERpdHRvLgorICAgICAgICAqIHRlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYWdlT3ZlcmxheUNsaWVudDo6aW5zdGFsbE92
ZXJsYXkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYWdlT3ZlcmxheUNsaWVudDo6
dW5pbnN0YWxsQWxsT3ZlcmxheXMpOiBEaXR0by4KKwogMjAxNy0wMS0yMCAgRGVhbiBKYWNrc29u
ICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdMXSBEbyBub3QgYWxsb3cgR1BVIG11
eGluZyBvbiBzb21lIG9sZCBNYWMgaGFyZHdhcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
aW9zL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwppbmRleCA5YTFhYTE5
YjdhNDc3NWY5MmFhMDNmZTU0MDc4MjJkNTk3ZmIwZDcwLi4zMGU3YWU0YWE2N2I2NmRjZmM2NGQ1
ZDk1Yzk3NGM2MmM2ZDU1YWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIw
MTctMDEtMjEgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92
ZSBQYXNzUmVmUHRyIGZyb20gInBhZ2UiIGRpcmVjdG9yeSBvZiBXZWJDb3JlLCBhbHNvIGRlcGxv
eSByZWZlcmVuY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjcyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oOiBVcGRhdGUgZm9yIGNo
YW5nZXMgdG8gQ2hyb21lQ2xpZW50LgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudElPUy5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudElPUzo6cnVuSmF2YVNjcmlw
dEFsZXJ0KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnRJT1M6OnJ1bkphdmFTY3Jp
cHRDb25maXJtKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnRJT1M6OnJ1bkphdmFT
Y3JpcHRQcm9tcHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudElPUzo6c2V0TmVl
ZHNTY3JvbGxOb3RpZmljYXRpb25zKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnRJ
T1M6Om9ic2VydmVkQ29udGVudENoYW5nZSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50SU9TOjpjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNocm9tZUNsaWVudElPUzo6bm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1l
KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnRJT1M6OmVsZW1lbnREaWRGb2N1cyk6
IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50SU9TOjplbGVtZW50RGlkQmx1cik6IERp
dHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50SU9TOjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudElPUzo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTog
RGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnRJT1M6OmF0dGFjaFJvb3RHcmFwaGljc0xh
eWVyKTogRGl0dG8uCisKIDIwMTctMDEtMjEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSB1bnVzZWQgLVtXZWJGaXhlZFBvc2l0aW9u
Q29udGVudCBtaW5pbXVtT2Zmc2V0RnJvbUZpeGVkUG9zaXRpb25MYXllcnNUb0FuY2hvckVkZ2U6
b2ZSZWN0OmluTGF5ZXI6XQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDAwOWQ4YjgzMzIzOWRmMWE3ZTNh
MzEwN2JlZDBjNzM1N2EwZjY2MTguLmUzNjU3YTQ5NTBhMzhjYTYzZGQyMmUzN2IwMjU1ODM1OTRh
NjkwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxNy0wMS0yMCAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIg
ZnJvbSAicGFnZSIgZGlyZWN0b3J5IG9mIFdlYkNvcmUsIGFsc28gZGVwbG95IHJlZmVyZW5jZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIyNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbToKKyAgICAgICAgKC1b
V2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlciBxdW90YV0pOiBQYXNzIHJlZmVyZW5jZS4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOiBVcGRhdGVkIGZv
ciBjaGFuZ2VzIHRvIENocm9tZUNsaWVudC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRFbGVtZW50
Q2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3cp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRB
bGVydCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29u
ZmlybSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJv
bXB0KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5n
ZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnByaW50KTog
RGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6
IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNv
bG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlk
Rm9jdXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KTogRGl0
dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6IERp
dHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcik6
IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBo
aWNzTGF5ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxs
U2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjplbnRl
ckZ1bGxTY3JlZW5Gb3JFbGVtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6
OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorCisgICAgICAgICogV2ViVmlldy9X
ZWJGcmFtZS5tbToKKyAgICAgICAgKCtbV2ViRnJhbWUgX2NyZWF0ZUZyYW1lV2l0aFBhZ2U6ZnJh
bWVOYW1lOmZyYW1lVmlldzpvd25lckVsZW1lbnQ6XSk6CisgICAgICAgIFVwZGF0ZWQgZm9yIGNo
YW5nZSB0byB0aGUgYXBwZW5kQ2hpbGQgZnVuY3Rpb24uCisKIDIwMTctMDEtMjEgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIC1bV2ViRnJh
bWUgc2VuZE9yaWVudGF0aW9uQ2hhbmdlRXZlbnQ6XSB3aGljaCBpcyB1bnVzZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZwppbmRleCBlZGQyMWMwYmM3NzRiY2U3OGJlZjE4ZDViYmYyOGNmZTJlMGFlMTlmLi4xODdl
ZmMyOGVkMTU0YTA2MWZkODUxYzBhYTBkOWRiMWM5NGNmNzhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMTctMDEtMjAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIGZyb20gInBhZ2UiIGRpcmVjdG9yeSBvZiBX
ZWJDb3JlLCBhbHNvIGRlcGxveSByZWZlcmVuY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzdGF0dXMpOiBQYXNzIHJlZmVyZW5jZS4KKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpblZpZXc6OmZvY3VzUGx1Z2luRWxlbWVudCk6IERpdHRvLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KTogVXBkYXRlZCBmb3IgY2hhbmdlIHRvIENocm9tZUNs
aWVudC4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVy
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmly
bSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0
KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0
b25DbGlja2VkKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnByaW50KTogRGl0
dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6IERp
dHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RH
cmFwaGljc0xheWVyKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZp
ZXdPdmVybGF5R3JhcGhpY3NMYXllcik6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50
OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6IERpdHRvLgorICAgICAgICAo
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChXZWJD
aHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJh
bWVWaWV3KTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6IERpdHRvLgorCiAyMDE3LTAxLTIwICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG5ldmVyIGNoYW5naW5nIEluZGV4ZWREQiBSdW50aW1l
RW5hYmxlZEZlYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzYmFjN2EwMTMyZDE5ZDIyN2I2NTFlY2FmM2Ey
OWE1MTlkOWFmMjM0Li40M2FkNmI5NDk3YjhlZmJiZWM5MTllMWNjY2EwMWZlNDFlNzI4MTg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsODQgQEAKKzIwMTctMDEtMjAgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIGZyb20gInBhZ2UiIGRp
cmVjdG9yeSBvZiBXZWJDb3JlLCBhbHNvIGRlcGxveSByZWZlcmVuY2VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcyMjQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcv
UmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGlu
Z1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKTogUmV0dXJuIGEgUmVmCisgICAgICAgIGlu
c3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90
ZVNjcm9sbGluZ1RyZWUuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwOgorICAgICAgICAo
V0tCdW5kbGVQYWdlSW5zdGFsbFBhZ2VPdmVybGF5KTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdLQnVuZGxlUGFnZVVuaW5zdGFsbFBhZ2VPdmVybGF5KTogRGl0dG8uCisgICAgICAgIChX
S0J1bmRsZVBhZ2VJbnN0YWxsUGFnZU92ZXJsYXlXaXRoQW5pbWF0aW9uKTogRGl0dG8uCisgICAg
ICAgIChXS0J1bmRsZVBhZ2VVbmluc3RhbGxQYWdlT3ZlcmxheVdpdGhBbmltYXRpb24pOiBEaXR0
by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4u
bW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6anNQREZEb2NQcmludCk6IERpdHRvLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luVmlldzo6Zm9jdXNQbHVnaW5FbGVtZW50KTogRGl0dG8uCisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblZpZXc6OnNldFN0YXR1c2JhclRleHQpOiBEaXR0by4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9jdXMpOiBVcGRhdGVkIGZvciBj
aGFuZ2VzIHRvIENocm9tZUNsaWVudC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
OjplbGVtZW50RGlkQmx1cik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6Om1ha2VGaXJzdFJlc3BvbmRlcik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCk6IERpdHRvLgorICAgICAgICAo
V2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydCk6IERpdHRvLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKTogRGl0
dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21w
dCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6
ZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojp1bmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjpwcmludCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVD
bGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpX
ZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEpOiBEaXR0
by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIp
OiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1l
bnUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojph
dHRhY2hSb290R3JhcGhpY3NMYXllcik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcik6IERpdHRvLgorICAgICAg
ICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKTog
RGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2Ny
ZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRIZWFkZXJMYXllcik6IERpdHRvLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEZvb3RlckxheWVyKTogRGl0dG8u
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGlsZWRCYWNraW5n
Rm9yRnJhbWVWaWV3KTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaDogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJD
aHJvbWVDbGllbnQ6OmVsZW1lbnREaWRSZWZvY3VzKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6ZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUpOiBEaXR0by4KKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpvYnNlcnZlZENvbnRlbnRDaGFuZ2UpOiBEaXR0
by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjbGVhckNvbnRlbnRDaGFuZ2VP
YnNlcnZlcnMpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpub3Rp
ZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUpOiBEaXR0by4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hDcmVhdGVQYWdlKTog
UGFzcyByZWZlcmVuY2UuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JDbGllbnQ6
On5XZWJJbnNwZWN0b3JDbGllbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVj
dG9yQ2xpZW50OjpoaWRlSGlnaGxpZ2h0KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvckNsaWVudDo6c2hvd1BhaW50UmVjdCk6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZpbmRDb250
cm9sbGVyOjp1cGRhdGVGaW5kVUlBZnRlclBhZ2VTY3JvbGwpOiBEaXR0by4KKyAgICAgICAgKFdl
YktpdDo6RmluZENvbnRyb2xsZXI6OmhpZGVGaW5kVUkpOiBEaXR0by4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
OjpjcmVhdGVXaXRoQ29yZU1haW5GcmFtZSk6IFJldHVybiBSZWYgaW5zdGVhZCBvZgorICAgICAg
ICBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUp
OiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNyZWF0ZSk6IERpdHRvLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJv
dmUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yOjpvcGVuSW5OZXdUYWIpOiBQYXNzIHJlZmVyZW5j
ZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvRmluZENvbnRyb2xsZXJJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OkZpbmRDb250cm9sbGVyOjp1cGRhdGVGaW5kSW5kaWNhdG9y
KTogVXNlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYktpdDo6RmluZENvbnRyb2xsZXI6OmhpZGVG
aW5kSW5kaWNhdG9yKTogRGl0dG8uCisKIDIwMTctMDEtMjEgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIyMTEwMTIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0RPTVdp
bmRvd0ZldGNoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0
Y2guY3BwCmluZGV4IGFkYWRhY2Q4M2MyNjBjZmE5ZDc2OTlkMzRmNmE0YmVjOTFkNjFmMDYuLmM1
OWQzNjU2YTBjMjEwN2FhOWRhNzZkZjFhNTczN2RlZmY5ZjUyZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxNiBDYW5vbiBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzIsMTYgKzMzLDE3IEBACiAjaWYgRU5BQkxFKEZFVENIX0FQSSkKIAog
I2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkZldGNoUmVxdWVzdC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRmV0Y2hSZXNwb25zZS5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHZvaWQgRE9NV2luZG93RmV0Y2g6OmZldGNoKERPTVdpbmRvdyYgd2luZG93
LCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkK
IHsKLSAgICBpZiAoIXdpbmRvdy5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgYXV0byog
ZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQogICAgICAg
ICByZXR1cm47Ci0gICAgRmV0Y2hSZXNwb25zZTo6ZmV0Y2goKndpbmRvdy5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIHJlcXVlc3QsIFdURk1vdmUocHJvbWlzZSkpOworICAgIEZldGNoUmVzcG9u
c2U6OmZldGNoKCpkb2N1bWVudCwgcmVxdWVzdCwgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcAppbmRleCBlNTQ4OWZjYjU0MGM5Njk0YWU0
Mzc1OTY4M2RlOWFjZjAxODI0YWQ5Li4zZGNiNTYwMzQzZWI1YWI5NDUxMWEzOTBlYjE5MTFiMzlj
YjBmMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZUNvbnRleHQuY3BwCkBAIC0yMDQsNyArMjA0LDcgQEAgdm9pZCBEYXRhYmFzZUNv
bnRleHQ6OmRhdGFiYXNlRXhjZWVkZWRRdW90YShjb25zdCBTdHJpbmcmIG5hbWUsIERhdGFiYXNl
RGV0YWlscwogICAgIGlmIChpczxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkp
IHsKICAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50
LnBhZ2UoKSkKLSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV4Y2VlZGVkRGF0
YWJhc2VRdW90YShkb2N1bWVudC5mcmFtZSgpLCBuYW1lLCBkZXRhaWxzKTsKKyAgICAgICAgICAg
IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV4Y2VlZGVkRGF0YWJhc2VRdW90YSgqZG9jdW1lbnQu
ZnJhbWUoKSwgbmFtZSwgZGV0YWlscyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgQVNT
RVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggNDE2YjE4MzRiZDhhYTYz
NGI4YzdiYzJjZWU3ZjA5NDZiYzZiYjA3ZS4uMDMyMGY5NTU2YjU3YjJiMDM3MjkxMmIwOGY1Mjky
ZWI0Zjg2ZWQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAg
LTM3MjksNyArMzcyOSw3IEBAIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVNob3dDb250ZXh0TWVudQog
ICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigp
LnNob3dDb250ZXh0TWVudUF0KCZwYWdlLT5tYWluRnJhbWUoKSwgcmVjdC5jZW50ZXIoKSk7Cisg
ICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0NvbnRleHRNZW51QXQocGFnZS0+
bWFpbkZyYW1lKCksIHJlY3QuY2VudGVyKCkpOwogfQogCiAtICh2b2lkKWFjY2Vzc2liaWxpdHlT
Y3JvbGxUb1Zpc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcAppbmRleCBhM2Y2MmU1NjQ0MTFmMTgwN2JmZjA5NWY1ZGI5Y2E1MmY2ZTZj
ZGU0Li5hZTdmZThjMTdmMGRiY2QxNWI3MDU0ODZkNjQyYTQ1OGFlNTdiY2IyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC0xNzgs
NyArMTc4LDcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0
KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnQKICAgICBpZiAoQmFzZTo6Z2V0T3du
UHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAg
ICAgICAgIC8vIERldGVjdCB3aGVuIHdlJ3JlIGdldHRpbmcgdGhlIHByb3BlcnR5ICdzaG93TW9k
YWxEaWFsb2cnLCB0aGlzIGlzIGRpc2FibGVkLCBhbmQgaGFzIGl0cyBvcmlnaW5hbCB2YWx1ZS4K
ICAgICAgICAgYm9vbCBpc1Nob3dNb2RhbERpYWxvZ0FuZFNob3VsZEhpZGUgPSBwcm9wZXJ0eU5h
bWUgPT0gc3RhdGUtPnByb3BlcnR5TmFtZXMoKS5zaG93TW9kYWxEaWFsb2cKLSAgICAgICAgICAg
ICYmICFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhmcmFtZSkKKyAgICAgICAgICAgICYm
ICFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZygqZnJhbWUpCiAgICAgICAgICAgICAmJiBz
bG90LmlzVmFsdWUoKSAmJiBpc0hvc3RGdW5jdGlvbihzbG90LmdldFZhbHVlKHN0YXRlLCBwcm9w
ZXJ0eU5hbWUpLCBqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25TaG93TW9kYWxEaWFsb2cpOwog
ICAgICAgICAvLyBVbmxlc3Mgd2UncmUgaW4gdGhlIHNob3dNb2RhbERpYWxvZyBzcGVjaWFsIGNh
c2UsIHdlJ3JlIGRvbmUuCiAgICAgICAgIGlmICghaXNTaG93TW9kYWxEaWFsb2dBbmRTaG91bGRI
aWRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMDgxNjBhZGQzYTNhM2RlOWNkNDg3ZmQ0
MTQxMzgyMTYxYzkxZjE5Yy4uOTQ4ZDY3Y2VlNDM5YjUwZGY4MGJjZmY1OWI3N2YwMjI2NzBiY2Vi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NDgsMTMgKzg0OCwxMSBAQCB2b2lkIERv
Y3VtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKIHsKICAg
ICBDb250YWluZXJOb2RlOjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlKTsKIAotI2lmIFBMQVRGT1JN
KElPUykKICAgICAvLyBGSVhNRTogQ2hyb21lOjpkaWRSZWNlaXZlRG9jVHlwZSgpIHVzZWQgdG8g
YmUgY2FsbGVkIG9ubHkgd2hlbiB0aGUgZG9jdHlwZSBjaGFuZ2VkLiBXZSBuZWVkIHRvIGNoZWNr
IHRoZQogICAgIC8vIGltcGFjdCBvZiBjYWxsaW5nIHRoaXMgc3lzdGVtYXRpY2FsbHkuIElmIHRo
ZSBvdmVyaGVhZCBpcyBuZWdsaWdpYmxlLCB3ZSBuZWVkIHRvIHJlbmFtZSBkaWRSZWNlaXZlRG9j
VHlwZSwKICAgICAvLyBvdGhlcndpc2UsIHdlIG5lZWQgdG8gZGV0ZWN0IHRoZSBkb2MgdHlwZSBj
aGFuZ2VzIGJlZm9yZSB1cGRhdGluZyB0aGUgdmlld3BvcnQuCiAgICAgaWYgKFBhZ2UqIHBhZ2Ug
PSB0aGlzLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBl
KGZyYW1lKCkpOwotI2VuZGlmCisgICAgICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NU
eXBlKCpmcmFtZSgpKTsKIAogICAgIEVsZW1lbnQqIG5ld0RvY3VtZW50RWxlbWVudCA9IGNoaWxk
cmVuT2ZUeXBlPEVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpOwogICAgIGlmIChuZXdEb2N1bWVudEVs
ZW1lbnQgPT0gbV9kb2N1bWVudEVsZW1lbnQpCkBAIC0yMzcyLDkgKzIzNzAsMTAgQEAgdm9pZCBE
b2N1bWVudDo6cGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2JqZWN0cygpCiB7CiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIGlmIChXZWJUaHJlYWRDb3VudE9mT2JzZXJ2ZWRDb250ZW50TW9k
aWZpZXJzKCkgPiAwKSB7Ci0gICAgICAgIEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCk7Ci0g
ICAgICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUgPyBmcmFtZS0+cGFnZSgpIDogbnVsbHB0cikK
LSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmNsZWFyQ29udGVudENoYW5nZU9i
c2VydmVycyhmcmFtZSk7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCkp
IHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAg
ICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5jbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZl
cnMoKmZyYW1lKTsKKyAgICAgICAgfQogICAgIH0KICNlbmRpZgogfQpAQCAtMzIxOCw5ICszMjE3
LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlVmlld3BvcnRBcmd1bWVudHMoKQogICAgICAgICBt
X2RpZERpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZCA9IHRydWU7CiAjZW5kaWYKICAg
ICAgICAgcGFnZSgpLT5jaHJvbWUoKS5kaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5n
ZShtX3ZpZXdwb3J0QXJndW1lbnRzKTsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIHBhZ2Uo
KS0+Y2hyb21lKCkuZGlkUmVjZWl2ZURvY1R5cGUoZnJhbWUoKSk7Ci0jZW5kaWYKKyAgICAgICAg
cGFnZSgpLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZSgqZnJhbWUoKSk7CiAgICAgfQogfQog
CkBAIC0zNjQyLDcgKzM2MzksNyBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudChF
bGVtZW50KiBlbGVtZW50LCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEZvYwogICAgICAgICAg
ICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCpvbGRGb2N1c2VkRWxlbWVudCkpCiAgICAgICAg
ICAgICAgICAgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKm9sZEZvY3VzZWRFbGVtZW50KS5l
bmRFZGl0aW5nKCk7CiAgICAgICAgICAgICBpZiAocGFnZSgpKQotICAgICAgICAgICAgICAgIHBh
Z2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZEJsdXIob2xkRm9jdXNlZEVsZW1lbnQu
Z2V0KCkpOworICAgICAgICAgICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVu
dERpZEJsdXIoKm9sZEZvY3VzZWRFbGVtZW50KTsKICAgICAgICAgICAgIEFTU0VSVCghbV9mb2N1
c2VkRWxlbWVudCk7CiAgICAgICAgIH0KIApAQCAtNDAwMCw3ICszOTk3LDcgQEAgdm9pZCBEb2N1
bWVudDo6Y3JlYXRlRE9NV2luZG93KCkKICAgICBBU1NFUlQobV9mcmFtZSk7CiAgICAgQVNTRVJU
KCFtX2RvbVdpbmRvdyk7CiAKLSAgICBtX2RvbVdpbmRvdyA9IERPTVdpbmRvdzo6Y3JlYXRlKHRo
aXMpOworICAgIG1fZG9tV2luZG93ID0gRE9NV2luZG93OjpjcmVhdGUoKnRoaXMpOwogCiAgICAg
QVNTRVJUKG1fZG9tV2luZG93LT5kb2N1bWVudCgpID09IHRoaXMpOwogICAgIEFTU0VSVChtX2Rv
bVdpbmRvdy0+ZnJhbWUoKSA9PSBtX2ZyYW1lKTsKQEAgLTQwMTUsNyArNDAxMiw3IEBAIHZvaWQg
RG9jdW1lbnQ6OnRha2VET01XaW5kb3dGcm9tKERvY3VtZW50KiBkb2N1bWVudCkKICAgICBBU1NF
UlQocGFnZUNhY2hlU3RhdGUoKSA9PSBOb3RJblBhZ2VDYWNoZSk7CiAKICAgICBtX2RvbVdpbmRv
dyA9IFdURk1vdmUoZG9jdW1lbnQtPm1fZG9tV2luZG93KTsKLSAgICBtX2RvbVdpbmRvdy0+ZGlk
U2VjdXJlVHJhbnNpdGlvblRvKHRoaXMpOworICAgIG1fZG9tV2luZG93LT5kaWRTZWN1cmVUcmFu
c2l0aW9uVG8oKnRoaXMpOwogCiAgICAgQVNTRVJUKG1fZG9tV2luZG93LT5kb2N1bWVudCgpID09
IHRoaXMpOwogICAgIEFTU0VSVChtX2RvbVdpbmRvdy0+ZnJhbWUoKSA9PSBtX2ZyYW1lKTsKQEAg
LTU1NzMsMTIgKzU1NzAsMTIgQEAgdm9pZCBEb2N1bWVudDo6cmVxdWVzdEZ1bGxTY3JlZW5Gb3JF
bGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZ1bGxTY3JlZW5DaGVja1R5cGUKICAgICAgICAgICAg
IGJyZWFrOwogCiAgICAgICAgIGJvb2wgaGFzS2V5Ym9hcmRBY2Nlc3MgPSB0cnVlOwotICAgICAg
ICBpZiAoIXBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxl
bWVudChlbGVtZW50LCBoYXNLZXlib2FyZEFjY2VzcykpIHsKKyAgICAgICAgaWYgKCFwYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoKmVsZW1lbnQs
IGhhc0tleWJvYXJkQWNjZXNzKSkgewogICAgICAgICAgICAgLy8gVGhlIG5ldyBmdWxsIHNjcmVl
biBBUEkgZG9lcyBub3QgYWNjZXB0IGEgImZsYWdzIiBwYXJhbWV0ZXIsIHNvIGZhbGwgYmFjayB0
byBkaXNhbGxvd2luZwogICAgICAgICAgICAgLy8ga2V5Ym9hcmQgaW5wdXQgaWYgdGhlIGNocm9t
ZSBjbGllbnQgcmVmdXNlcyB0byBhbGxvdyBrZXlib2FyZCBpbnB1dC4KICAgICAgICAgICAgIGhh
c0tleWJvYXJkQWNjZXNzID0gZmFsc2U7CiAKLSAgICAgICAgICAgIGlmICghcGFnZSgpLT5jaHJv
bWUoKS5jbGllbnQoKS5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQsIGhhc0tl
eWJvYXJkQWNjZXNzKSkKKyAgICAgICAgICAgIGlmICghcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQo
KS5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KCplbGVtZW50LCBoYXNLZXlib2FyZEFjY2Vz
cykpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtNTYzMSw3ICs1NjI4
LDcgQEAgdm9pZCBEb2N1bWVudDo6cmVxdWVzdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQq
IGVsZW1lbnQsIEZ1bGxTY3JlZW5DaGVja1R5cGUKICAgICAgICAgLy8gNS4gUmV0dXJuLCBhbmQg
cnVuIHRoZSByZW1haW5pbmcgc3RlcHMgYXN5bmNocm9ub3VzbHkuCiAgICAgICAgIC8vIDYuIE9w
dGlvbmFsbHksIHBlcmZvcm0gc29tZSBhbmltYXRpb24uCiAgICAgICAgIG1fYXJlS2V5c0VuYWJs
ZWRJbkZ1bGxTY3JlZW4gPSBoYXNLZXlib2FyZEFjY2VzczsKLSAgICAgICAgcGFnZSgpLT5jaHJv
bWUoKS5jbGllbnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOworICAgICAg
ICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoKmVs
ZW1lbnQpOwogCiAgICAgICAgIC8vIDcuIE9wdGlvbmFsbHksIGRpc3BsYXkgYSBtZXNzYWdlIGlu
ZGljYXRpbmcgaG93IHRoZSB1c2VyIGNhbiBleGl0IGRpc3BsYXlpbmcgdGhlIGNvbnRleHQgb2Jq
ZWN0IGZ1bGxzY3JlZW4uCiAgICAgICAgIHJldHVybjsKQEAgLTU3MjMsMTIgKzU3MjAsMTIgQEAg
dm9pZCBEb2N1bWVudDo6d2Via2l0RXhpdEZ1bGxzY3JlZW4oKQogICAgIC8vIE9ubHkgZXhpdCBv
dXQgb2YgZnVsbCBzY3JlZW4gd2luZG93IG1vZGUgaWYgdGhlcmUgYXJlIG5vIHJlbWFpbmluZyBl
bGVtZW50cyBpbiB0aGUgCiAgICAgLy8gZnVsbCBzY3JlZW4gc3RhY2suCiAgICAgaWYgKCFuZXdU
b3ApIHsKLSAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5leGl0RnVsbFNjcmVlbkZv
ckVsZW1lbnQobV9mdWxsU2NyZWVuRWxlbWVudC5nZXQoKSk7CisgICAgICAgIHBhZ2UoKS0+Y2hy
b21lKCkuY2xpZW50KCkuZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KCptX2Z1bGxTY3JlZW5FbGVt
ZW50KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8vIE90aGVyd2lzZSwgbm90aWZ5
IHRoZSBjaHJvbWUgb2YgdGhlIG5ldyBmdWxsIHNjcmVlbiBlbGVtZW50LgotICAgIHBhZ2UoKS0+
Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChuZXdUb3ApOworICAg
IHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCgqbmV3
VG9wKTsKIH0KIAogYm9vbCBEb2N1bWVudDo6d2Via2l0RnVsbHNjcmVlbkVuYWJsZWQoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDg4ZTNlOTkzMDFhNzE5ZGUyNTQwODNhOTMyNmEz
YmFjZjNlYzM4ZmMuLjg1ZTBiMjZmMWMzZTc4YjJjYmJjNjg1YjZhZDE5ZjI1ZDBkOWJlYTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTIzNDgsNyArMjM0OCw3IEBAIHZvaWQgRWxlbWVudDo6
Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZvY3VzRGlyZWN0aW9uIGRpcmVj
dGlvbikKIAogICAgIGlmIChkb2N1bWVudCgpLmZvY3VzZWRFbGVtZW50KCkgPT0gdGhpcykgewog
ICAgICAgICBpZiAoZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICBkb2N1bWVudCgpLnBh
Z2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZFJlZm9jdXModGhpcyk7CisgICAgICAg
ICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZFJlZm9j
dXMoKnRoaXMpOwogCiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMzcxLDcgKzIzNzEsNyBA
QCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1
c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAgICAgICAgIC8vIElmIGEgZm9jdXMgZXZlbnQgaGFuZGxl
ciBjaGFuZ2VzIHRoZSBmb2N1cyB0byBhIGRpZmZlcmVudCBub2RlIGl0CiAgICAgICAgIC8vIGRv
ZXMgbm90IG1ha2Ugc2Vuc2UgdG8gY29udGludWUgYW5kIHVwZGF0ZSBhcHBlYXJlbmNlLgogICAg
ICAgICBwcm90ZWN0ID0gdGhpczsKLSAgICAgICAgaWYgKCFwYWdlLT5mb2N1c0NvbnRyb2xsZXIo
KS5zZXRGb2N1c2VkRWxlbWVudCh0aGlzLCBkb2N1bWVudCgpLmZyYW1lKCksIGRpcmVjdGlvbikp
CisgICAgICAgIGlmICghcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQo
dGhpcywgKmRvY3VtZW50KCkuZnJhbWUoKSwgZGlyZWN0aW9uKSkKICAgICAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTI0NDEsNyArMjQ0MSw3IEBAIHZvaWQgRWxlbWVudDo6Ymx1cigpCiAg
ICAgY2FuY2VsRm9jdXNBcHBlYXJhbmNlVXBkYXRlKCk7CiAgICAgaWYgKHRyZWVTY29wZSgpLmZv
Y3VzZWRFbGVtZW50SW5TY29wZSgpID09IHRoaXMpIHsKICAgICAgICAgaWYgKEZyYW1lKiBmcmFt
ZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmZvY3Vz
Q29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KDAsIGZyYW1lKTsKKyAgICAgICAgICAgIGZy
YW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIs
ICpmcmFtZSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRvY3VtZW50KCkuc2V0Rm9jdXNl
ZEVsZW1lbnQobnVsbHB0cik7CiAgICAgfQpAQCAtMjQ2NCw3ICsyNDY0LDcgQEAgdm9pZCBFbGVt
ZW50OjpkaXNwYXRjaEZvY3VzT3V0RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IFJlZlB0cjxFbGVtZW4KIHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KFJlZlB0cjxF
bGVtZW50PiYmIG9sZEZvY3VzZWRFbGVtZW50LCBGb2N1c0RpcmVjdGlvbikKIHsKICAgICBpZiAo
ZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5j
bGllbnQoKS5lbGVtZW50RGlkRm9jdXModGhpcyk7CisgICAgICAgIGRvY3VtZW50KCkucGFnZSgp
LT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkRm9jdXMoKnRoaXMpOwogCiAgICAgRXZlbnRE
aXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KCp0aGlzLCBGb2N1c0V2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLmZvY3VzRXZlbnQsIGZhbHNlLCBmYWxzZSwgZG9jdW1lbnQoKS5kZWZhdWx0Vmlldygp
LCAwLCBXVEZNb3ZlKG9sZEZvY3VzZWRFbGVtZW50KSkpOwogfQpAQCAtMjQ3Miw3ICsyNDcyLDcg
QEAgdm9pZCBFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgb2xk
Rm9jdXNlZEVsZW1lbnQsIEZvY3VzRGlyZWMKIHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZl
bnQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1lbnQpCiB7CiAgICAgaWYgKGRvY3Vt
ZW50KCkucGFnZSgpKQotICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50
KCkuZWxlbWVudERpZEJsdXIodGhpcyk7CisgICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJv
bWUoKS5jbGllbnQoKS5lbGVtZW50RGlkQmx1cigqdGhpcyk7CiAKICAgICBFdmVudERpc3BhdGNo
ZXI6OmRpc3BhdGNoRXZlbnQoKnRoaXMsIEZvY3VzRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
Ymx1ckV2ZW50LCBmYWxzZSwgZmFsc2UsIGRvY3VtZW50KCkuZGVmYXVsdFZpZXcoKSwgMCwgV1RG
TW92ZShuZXdGb2N1c2VkRWxlbWVudCkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBiYjNhYjk5
ZTYxYzViZGMxMDQzZjNlYmM0ZTBmNzk2YTJkY2JkOGI3Li43NjYyMzA1NDcxZTUxZmJiZjZlNGZh
MzU1NzVlZDZhYmFiZmM3MDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yMjUzLDcgKzIyNTMsNyBA
QCB2b2lkIE5vZGU6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQogICAgIH0gZWxz
ZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5jb250ZXh0bWVudUV2ZW50KSB7CiAgICAg
ICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCiAgICAgICAgICAgICBp
ZiAoUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCkpCi0gICAgICAgICAgICAgICAgcGFnZS0+Y29u
dGV4dE1lbnVDb250cm9sbGVyKCkuaGFuZGxlQ29udGV4dE1lbnVFdmVudCgmZXZlbnQpOworICAg
ICAgICAgICAgICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmhhbmRsZUNvbnRleHRN
ZW51RXZlbnQoZXZlbnQpOwogI2VuZGlmCiAgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZl
bnROYW1lcygpLnRleHRJbnB1dEV2ZW50KSB7CiAgICAgICAgIGlmIChpczxUZXh0RXZlbnQ+KGV2
ZW50KSkgewpAQCAtMjI3Miw3ICsyMjcyLDcgQEAgdm9pZCBOb2RlOjpkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50JiBldmVudCkKIAogICAgICAgICAgICAgaWYgKHJlbmRlcmVyKSB7CiAgICAgICAg
ICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAg
ICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLnN0YXJ0UGFuU2Nyb2xsaW5nKGRvd25j
YXN0PFJlbmRlckJveD4ocmVuZGVyZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmV2
ZW50SGFuZGxlcigpLnN0YXJ0UGFuU2Nyb2xsaW5nKGRvd25jYXN0PFJlbmRlckJveD4oKnJlbmRl
cmVyKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggYWNmMjI2OGE3ZTc5MzA5MjdjZWNiYjEzZDI0
ZDY0Y2ZhZGJmNmRkZS4uMDFmMDcxY2NhZGNkZjE5NjQxZjI4Nzc3NDE5ZGI0NmNiNTQwYzYwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC05MzAsNyArOTMw
LDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZVByaW50KEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0
b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcKICAgICBQYWdlKiBwYWdlID0gZnJhbWUucGFn
ZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHBhZ2UtPmNo
cm9tZSgpLnByaW50KCZmcmFtZSk7CisgICAgcGFnZS0+Y2hyb21lKCkucHJpbnQoZnJhbWUpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwCmluZGV4IDY3NTlmZjE3N2ZlNzY3MWNiYjE2OTM1ZWIzNjEwZDJhNTY5N2I3ODYuLjcx
M2U3Nzk3MTgyNTI1ZDc3MmY0YzI5MDRmYjkyYjQyNDU5ZjIzOTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0yMTU3LDcgKzIxNTcsNyBAQCB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZXRGb2N1c2VkRWxlbWVudElmTmVlZGVkKCkKICAgICBib29sIGNhcmV0
QnJvd3NpbmcgPSBtX2ZyYW1lLT5zZXR0aW5ncygpLmNhcmV0QnJvd3NpbmdFbmFibGVkKCk7CiAg
ICAgaWYgKGNhcmV0QnJvd3NpbmcpIHsKICAgICAgICAgaWYgKEVsZW1lbnQqIGFuY2hvciA9IGVu
Y2xvc2luZ0FuY2hvckVsZW1lbnQobV9zZWxlY3Rpb24uYmFzZSgpKSkgewotICAgICAgICAgICAg
bV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChhbmNo
b3IsIG1fZnJhbWUpOworICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xs
ZXIoKS5zZXRGb2N1c2VkRWxlbWVudChhbmNob3IsICptX2ZyYW1lKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTIxNjksMTYgKzIxNjksMTYgQEAgdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6c2V0Rm9jdXNlZEVsZW1lbnRJZk5lZWRlZCgpCiAgICAgICAgICAgICAvLyBz
byBhZGQgdGhlICFpc0ZyYW1lRWxlbWVudCBjaGVjayBoZXJlLiBUaGVyZSdzIHByb2JhYmx5IGEg
YmV0dGVyIHdheSB0byBtYWtlIHRoaXMKICAgICAgICAgICAgIC8vIHdvcmsgaW4gdGhlIGxvbmcg
dGVybSwgYnV0IHRoaXMgaXMgdGhlIHNhZmVzdCBmaXggYXQgdGhpcyB0aW1lLgogICAgICAgICAg
ICAgaWYgKHRhcmdldC0+aXNNb3VzZUZvY3VzYWJsZSgpICYmICFpc0ZyYW1lRWxlbWVudCh0YXJn
ZXQpKSB7Ci0gICAgICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIo
KS5zZXRGb2N1c2VkRWxlbWVudCh0YXJnZXQsIG1fZnJhbWUpOworICAgICAgICAgICAgICAgIG1f
ZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQodGFyZ2V0
LCAqbV9mcmFtZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0LT5wYXJlbnRPclNoYWRvd0hvc3RFbGVtZW50KCk7CiAg
ICAgICAgIH0KLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZEVsZW1lbnQo
MCk7CisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnNldEZvY3VzZWRFbGVtZW50KG51bGxw
dHIpOwogICAgIH0KIAogICAgIGlmIChjYXJldEJyb3dzaW5nKQotICAgICAgICBtX2ZyYW1lLT5w
YWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KDAsIG1fZnJhbWUpOwor
ICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVt
ZW50KG51bGxwdHIsICptX2ZyYW1lKTsKIH0KIAogdm9pZCBEcmFnQ2FyZXRDb250cm9sbGVyOjpw
YWludERyYWdDYXJldChGcmFtZSogZnJhbWUsIEdyYXBoaWNzQ29udGV4dCYgcCwgY29uc3QgTGF5
b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25zdCBMYXlvdXRSZWN0JiBjbGlwUmVjdCkgY29uc3QK
QEAgLTIzMjgsNyArMjMyOCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVjdGlv
bihTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IFNjcm9sCiAgICAgICAgICAg
ICAgICAgbGF5ZXItPnNldEFkanVzdEZvcklPU0NhcmV0V2hlblNjcm9sbGluZyhmYWxzZSk7CiAg
ICAgICAgICAgICAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogICAgICAgICAgICAgICAgIGlmICht
X2ZyYW1lLT5wYWdlKCkpCi0gICAgICAgICAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Y2hy
b21lKCkuY2xpZW50KCkubm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKG1f
ZnJhbWUpOworICAgICAgICAgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLmNs
aWVudCgpLm5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZSgqbV9mcmFtZSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2Fj
aGVkRnJhbWUuY3BwCmluZGV4IDM2MzM5OGQ2ZWZjYzE0YzRiNmJiNzVmMzEzODdjZGQ3ZTdjNTk5
ZDEuLjIxZjI0YWQzOWY0YTkxNjZjOGIxMTNjYWUyNzAwZmU5ZjQ1MWNhOGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCkBAIC05OCw5ICs5OCw5IEBAIHZvaWQgQ2FjaGVk
RnJhbWVCYXNlOjpyZXN0b3JlKCkKICAgICBmcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5kaWRSZXN0
b3JlRnJvbVBhZ2VDYWNoZSgpOwogCiAgICAgLy8gUmVjb25zdHJ1Y3QgdGhlIEZyYW1lVHJlZS4g
QW5kIG9wZW4gdGhlIGNoaWxkIENhY2hlZEZyYW1lcyBpbiB0aGVpciByZXNwZWN0aXZlIEZyYW1l
TG9hZGVycy4KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9jaGlsZEZyYW1lcy5zaXpl
KCk7ICsraSkgewotICAgICAgICBmcmFtZS50cmVlKCkuYXBwZW5kQ2hpbGQoJm1fY2hpbGRGcmFt
ZXNbaV0tPnZpZXcoKS0+ZnJhbWUoKSk7Ci0gICAgICAgIG1fY2hpbGRGcmFtZXNbaV0tPm9wZW4o
KTsKKyAgICBmb3IgKGF1dG8mIGNoaWxkRnJhbWUgOiBtX2NoaWxkRnJhbWVzKSB7CisgICAgICAg
IGZyYW1lLnRyZWUoKS5hcHBlbmRDaGlsZChjaGlsZEZyYW1lLT52aWV3KCktPmZyYW1lKCkpOwor
ICAgICAgICBjaGlsZEZyYW1lLT5vcGVuKCk7CiAgICAgfQogCiAjaWYgUExBVEZPUk0oSU9TKQpA
QCAtMTExLDcgKzExMSw3IEBAIHZvaWQgQ2FjaGVkRnJhbWVCYXNlOjpyZXN0b3JlKCkKICAgICAg
ICAgICAgIC8vIEZJWE1FOiBBZGQgU0NST0xMX0xJU1RFTkVSIHRvIHRoZSBsaXN0IG9mIGV2ZW50
IHR5cGVzIG9uIERvY3VtZW50LCBhbmQgdXNlIG1fZG9jdW1lbnQtPmhhc0xpc3RlbmVyVHlwZSgp
LiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzk2MTU0ODI+LgogICAgICAgICAgICAgLy8gRklYTUU6IENh
biB1c2UgRG9jdW1lbnQ6Omhhc0xpc3RlbmVyVHlwZSgpIG5vdy4KICAgICAgICAgICAgIGlmIChk
b21XaW5kb3ctPnNjcm9sbEV2ZW50TGlzdGVuZXJDb3VudCgpICYmIGZyYW1lLnBhZ2UoKSkKLSAg
ICAgICAgICAgICAgICBmcmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE5lZWRzU2Ny
b2xsTm90aWZpY2F0aW9ucygmZnJhbWUsIHRydWUpOworICAgICAgICAgICAgICAgIGZyYW1lLnBh
Z2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKGZyYW1l
LCB0cnVlKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpAQCAtMTYzLDcgKzE2Myw3IEBAIENh
Y2hlZEZyYW1lOjpDYWNoZWRGcmFtZShGcmFtZSYgZnJhbWUpCiAgICAgLy8gMSAtIFdlIHJldXNl
IHRoZSBtYWluIGZyYW1lLCBzbyB3aGVuIGl0IG5hdmlnYXRlcyB0byBhIG5ldyBwYWdlIGxvYWQg
aXQgbmVlZHMgdG8gc3RhcnQgd2l0aCBhIGJsYW5rIEZyYW1lVHJlZS4KICAgICAvLyAyIC0gSXQn
cyBtdWNoIGVhc2llciB0byBkZXN0cm95IGEgQ2FjaGVkRnJhbWUgd2hpbGUgaXQgcmVzaWRlcyBp
biB0aGUgUGFnZUNhY2hlIGlmIGl0IGlzIGRpc2Nvbm5lY3RlZCBmcm9tIGl0cyBwYXJlbnQuCiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY2hpbGRGcmFtZXMuc2l6ZSgpOyArK2kpCi0g
ICAgICAgIGZyYW1lLnRyZWUoKS5yZW1vdmVDaGlsZCgmbV9jaGlsZEZyYW1lc1tpXS0+dmlldygp
LT5mcmFtZSgpKTsKKyAgICAgICAgZnJhbWUudHJlZSgpLnJlbW92ZUNoaWxkKG1fY2hpbGRGcmFt
ZXNbaV0tPnZpZXcoKS0+ZnJhbWUoKSk7CiAKICAgICBpZiAoIW1faXNNYWluRnJhbWUpCiAgICAg
ICAgIGZyYW1lLnBhZ2UoKS0+ZGVjcmVtZW50U3ViZnJhbWVDb3VudCgpOwpAQCAtMTgxLDcgKzE4
MSw3IEBAIENhY2hlZEZyYW1lOjpDYWNoZWRGcmFtZShGcmFtZSYgZnJhbWUpCiAgICAgaWYgKG1f
aXNNYWluRnJhbWUpIHsKICAgICAgICAgaWYgKERPTVdpbmRvdyogZG9tV2luZG93ID0gbV9kb2N1
bWVudC0+ZG9tV2luZG93KCkpIHsKICAgICAgICAgICAgIGlmIChkb21XaW5kb3ctPnNjcm9sbEV2
ZW50TGlzdGVuZXJDb3VudCgpICYmIGZyYW1lLnBhZ2UoKSkKLSAgICAgICAgICAgICAgICBmcmFt
ZS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucygm
ZnJhbWUsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBmcmFtZS5wYWdlKCktPmNocm9tZSgpLmNs
aWVudCgpLnNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhmcmFtZSwgZmFsc2UpOwogICAgICAg
ICB9CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9y
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmlu
ZGV4IDViYTJjOTU0YjJiZDg5OTViYzBiMmI3MmQyZmZjZDM3OTE5MTA3YTYuLjUwZTFmY2IxNDM3
MTNhMzBhYzkxNTMzMTNiNTg5MzI1NzkwZDIxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJ
bnB1dFR5cGUuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBDb2xvcklucHV0VHlwZTo6aGFu
ZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYgZXZlbnQpCiAKICAgICBpZiAoQ2hyb21lKiBjaHJv
bWUgPSB0aGlzLT5jaHJvbWUoKSkgewogICAgICAgICBpZiAoIW1fY2hvb3NlcikKLSAgICAgICAg
ICAgIG1fY2hvb3NlciA9IGNocm9tZS0+Y3JlYXRlQ29sb3JDaG9vc2VyKHRoaXMsIHZhbHVlQXND
b2xvcigpKTsKKyAgICAgICAgICAgIG1fY2hvb3NlciA9IGNocm9tZS0+Y3JlYXRlQ29sb3JDaG9v
c2VyKCp0aGlzLCB2YWx1ZUFzQ29sb3IoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1f
Y2hvb3Nlci0+cmVhdHRhY2hDb2xvckNob29zZXIodmFsdWVBc0NvbG9yKCkpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXggODExZWIwZDVkMDVi
NmE2Yzc2ODg3OGQwM2ZjMzNjMWMyNDk0NmZiMC4uYmFlYjU3NmIxNTYzZWIzMTU3YmI3MmVjZDg3
Yjc4MjcwMDllZjMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5j
cHAKQEAgLTEyOSw3ICsxMjksNyBAQCBib29sIEhUTUxBbmNob3JFbGVtZW50Ojppc0tleWJvYXJk
Rm9jdXNhYmxlKEtleWJvYXJkRXZlbnQmIGV2ZW50KSBjb25zdAogICAgIGlmICghZG9jdW1lbnQo
KS5mcmFtZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRvY3VtZW50KCku
ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoJmV2ZW50KSkKKyAgICBpZiAoIWRv
Y3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoZXZlbnQpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIXJlbmRlcmVyKCkgJiYgYW5jZXN0b3JzT2ZU
eXBlPEhUTUxDYW52YXNFbGVtZW50PigqdGhpcykuZmlyc3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IGVhOGEzYjMzZTAwMjc4MzJk
NjcwZjllMDk4N2FjY2E4ZDM2OGJhYTIuLjYyYzI4NjE3YWUzNWRlNjczMmZmYTA2NjMzOGZlMzE4
MTY1NDZjYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9s
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmNwcApAQCAtMzcwLDEwICszNzAsOSBAQCBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OmlzRm9jdXNhYmxlKCkgY29uc3QKIAogYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0tl
eWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQmIGV2ZW50KSBjb25zdAogewotICAgIGlmIChp
c0ZvY3VzYWJsZSgpKQotICAgICAgICBpZiAoZG9jdW1lbnQoKS5mcmFtZSgpKQotICAgICAgICAg
ICAgcmV0dXJuIGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvQWxsRm9y
bUNvbnRyb2xzKCZldmVudCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZvY3Vz
YWJsZSgpCisgICAgICAgICYmIGRvY3VtZW50KCkuZnJhbWUoKQorICAgICAgICAmJiBkb2N1bWVu
dCgpLmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLnRhYnNUb0FsbEZvcm1Db250cm9scyhldmVudCk7
CiB9CiAKIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNNb3VzZUZvY3VzYWJsZSgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAppbmRleCBkOGE3OTNl
MzBlYmYxYmMzM2IxYTMyYTJmMmNkMWNmN2I5MTg5ZGJjLi5hOWRiOTA1MThkZTcxMDBmODYxYWZj
ZGRiYTZkMjY3NWEyMGUzYmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxW
aWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVu
dC5jcHAKQEAgLTE3MSw3ICsxNzEsNyBAQCBib29sIEhUTUxWaWRlb0VsZW1lbnQ6OnN1cHBvcnRz
RnVsbHNjcmVlbihIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbgogI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAvLyBJZiB0aGUgZnVsbCBzY3JlZW4gQVBJIGlzIGVu
YWJsZWQgYW5kIGlzIHN1cHBvcnRlZCBmb3IgdGhlIGN1cnJlbnQgZWxlbWVudAogICAgIC8vIGRv
IG5vdCByZXF1aXJlIHRoYXQgdGhlIHBsYXllciBoYXMgYSB2aWRlbyB0cmFjayB0byBlbnRlciBm
dWxsIHNjcmVlbi4KLSAgICBpZiAodmlkZW9GdWxsc2NyZWVuTW9kZSA9PSBIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCAmJiBwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KHRoaXMsIGZhbHNlKSkKKyAgICBp
ZiAodmlkZW9GdWxsc2NyZWVuTW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGVTdGFuZGFyZCAmJiBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0c0Z1
bGxTY3JlZW5Gb3JFbGVtZW50KCp0aGlzLCBmYWxzZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0
b25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVt
ZW50LmNwcAppbmRleCA1OGJkNjJhMzY0NDdmMTE0OThjM2Q4Yzk5NTdmMWNkMWY3M2IwZTc3Li45
OGJkNzJiZmYyZDBkZjgwNmFiMGFiZjUzN2JhZTY5MDcyMjg0ODBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCkBAIC0xMTksNyArMTE5
LDcgQEAgdm9pZCBTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYg
ZXZlbnQpCiAgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZXRDYXB0
dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQodGhpcyk7CiAgICAgICAgICAgICAgICAgICAgIG1fY2Fw
dHVyaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1
bWVudCgpLnBhZ2UoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLnJl
Z2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIodGhpcyk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBwYWdlLT5jaHJvbWUoKS5yZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKCp0aGlzKTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBVcERvd25TdGF0ZSBv
bGRVcERvd25TdGF0ZSA9IG1fdXBEb3duU3RhdGU7CkBAIC0yMDUsNyArMjA1LDcgQEAgdm9pZCBT
cGluQnV0dG9uRWxlbWVudDo6cmVsZWFzZUNhcHR1cmUoKQogICAgICAgICAgICAgZnJhbWUtPmV2
ZW50SGFuZGxlcigpLnNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudChudWxscHRyKTsKICAg
ICAgICAgICAgIG1fY2FwdHVyaW5nID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAoUGFnZSogcGFn
ZSA9IGRvY3VtZW50KCkucGFnZSgpKQotICAgICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLnVu
cmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcih0aGlzKTsKKyAgICAgICAgICAgICAgICBwYWdl
LT5jaHJvbWUoKS51bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoKnRoaXMpOwogICAgICAg
ICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFj
L0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAKaW5kZXggZmQwYzNl
MzZmMzkzMzQxZGJkYWExOGMwMzFlMWIxZTc0ODdlZmNjOS4uYmE5YmFkZmU1NjJlNGJmZTdmOWUx
NGYwYTZiNWVkMTliNTBhYTNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCkBA
IC0xMTcsNyArMTE3LDcgQEAgdm9pZCBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiAgICAgICAgIGlmICghcGFnZSkKICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICBwYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5z
aG93SW1hZ2VDb250cm9sc01lbnUoJmV2ZW50KTsKKyAgICAgICAgcGFnZS0+Y29udGV4dE1lbnVD
b250cm9sbGVyKCkuc2hvd0ltYWdlQ29udHJvbHNNZW51KGV2ZW50KTsKICAgICAgICAgZXZlbnQu
c2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKaW5kZXggMzE1
NDdkYjdhZjNiNTNmZDdlYjQyNDFjNzA1NDNmOGY0YjY2YjE3ZS4uNzQ5ODhjYjVlNjA0ODcyMDg4
OTNiMDMxNjAxY2JhODIzNGJiOTNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKQEAgLTMzOSw4ICszMzksOCBAQCB2b2lkIElu
c3BlY3RvckZyb250ZW5kSG9zdDo6c2hvd0NvbnRleHRNZW51KEV2ZW50KiBldmVudCwgY29uc3Qg
VmVjdG9yPENvbnRleHRNZQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gbWVudVBy
b3ZpZGVyID0gRnJvbnRlbmRNZW51UHJvdmlkZXI6OmNyZWF0ZSh0aGlzLCB7ICZzdGF0ZSwgZnJv
bnRlbmRBcGlPYmplY3QgfSwgaXRlbXMpOwotICAgIG1fZnJvbnRlbmRQYWdlLT5jb250ZXh0TWVu
dUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnUoZXZlbnQsIG1lbnVQcm92aWRlci5wdHIoKSk7
CiAgICAgbV9tZW51UHJvdmlkZXIgPSBtZW51UHJvdmlkZXIucHRyKCk7CisgICAgbV9mcm9udGVu
ZFBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVudSgqZXZlbnQsIG1l
bnVQcm92aWRlcik7CiB9CiAKICNlbmRpZgpAQCAtMzU1LDcgKzM1NSw3IEBAIHZvaWQgSW5zcGVj
dG9yRnJvbnRlbmRIb3N0OjpkaXNwYXRjaEV2ZW50QXNDb250ZXh0TWVudUV2ZW50KEV2ZW50KiBl
dmVudCkKICAgICBNb3VzZUV2ZW50JiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VFdmVudD4o
KmV2ZW50KTsKICAgICBJbnRQb2ludCBtb3VzZVBvaW50ID0gSW50UG9pbnQobW91c2VFdmVudC5j
bGllbnRYKCksIG1vdXNlRXZlbnQuY2xpZW50WSgpKTsKIAotICAgIG1fZnJvbnRlbmRQYWdlLT5j
b250ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnVBdChmcmFtZSwgbW91c2VQb2lu
dCk7CisgICAgbV9mcm9udGVuZFBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dDb250
ZXh0TWVudUF0KCpmcmFtZSwgbW91c2VQb2ludCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShl
dmVudCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXgg
ZTc1NDk1ZmQ0MjRjMjNlODk1MzZjYThkNDMzOTA1M2JkNGUxMWJiZC4uNTc3OTBiNTBjZmNkYTRh
NTJmMGM0YzAyZWI1N2FiMjMzYTZkNTdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKQEAgLTU3MiwxOSArNTcyLDE5IEBAIGNsYXNzIEVtcHR5VmlzaXRlZExpbmtTdG9y
ZSBmaW5hbCA6IHB1YmxpYyBWaXNpdGVkTGlua1N0b3JlIHsKICAgICB2b2lkIGFkZFZpc2l0ZWRM
aW5rKFBhZ2UmLCBMaW5rSGFzaCkgZmluYWwgeyB9CiB9OwogCi1SZWZQdHI8UG9wdXBNZW51PiBF
bXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0
CitSZWZQdHI8UG9wdXBNZW51PiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFBv
cHVwTWVudUNsaWVudCYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRW1wdHlQ
b3B1cE1lbnUpOwogfQogCi1SZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBFbXB0eUNocm9tZUNsaWVu
dDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0CitSZWZQdHI8
U2VhcmNoUG9wdXBNZW51PiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51
KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRW1w
dHlTZWFyY2hQb3B1cE1lbnUpOwogfQogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAK
LXN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IEVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVD
b2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgQ29sb3ImKQorc3RkOjp1bmlx
dWVfcHRyPENvbG9yQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3Nl
cihDb2xvckNob29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYpCiB7CiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggOTFjMmQzODY5MDEw
ZGE1ZWE0M2QwMDljZDBmMTNlMGI3OGU3Y2ZmNS4uZTJhYTYwZWQ3NDg5Mzc0ODY5NmU4OTE3MDMz
YjFjZTAxZjFkNTMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtNjEs
NyArNjEsNyBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQg
ewogICAgIHZvaWQgZm9jdXNlZEVsZW1lbnRDaGFuZ2VkKEVsZW1lbnQqKSBmaW5hbCB7IH0KICAg
ICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKSBmaW5hbCB7IH0KIAotICAgIFBhZ2Uq
IGNyZWF0ZVdpbmRvdyhGcmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5k
b3dGZWF0dXJlcyYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbCB7IHJldHVybiBudWxs
cHRyOyB9CisgICAgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lJiwgY29uc3QgRnJhbWVMb2FkUmVx
dWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpIGZp
bmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2b2lkIHNob3coKSBmaW5hbCB7IH0KIAogICAg
IGJvb2wgY2FuUnVuTW9kYWwoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQpAQCAtODQsMTkgKzg0
LDE5IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAg
ICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwg
Y29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7
IH0KIAogICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgZmluYWwgeyBy
ZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25z
dCBTdHJpbmcmLCBGcmFtZSopIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIHJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmLCBGcmFtZSYpIGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0KIAogICAgIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgZmluYWwgeyB9CiAKLSAg
ICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsg
fQotICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmKSBm
aW5hbCB7IHJldHVybiBmYWxzZTsgfQotICAgIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFt
ZSosIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFN0cmluZyYpIGZpbmFsIHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmLCBjb25zdCBTdHJp
bmcmKSBmaW5hbCB7IH0KKyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiwgY29u
c3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIHJ1bkphdmFTY3Jp
cHRQcm9tcHQoRnJhbWUmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBTdHJpbmcmKSBm
aW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBzZWxlY3RJ
dGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgZmluYWwgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50KikgY29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRl
U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IGZpbmFsOworICAgIFJlZlB0
cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBmaW5h
bDsKKyAgICBSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHNldFN0YXR1c2JhclRleHQo
Y29uc3QgU3RyaW5nJikgZmluYWwgeyB9CiAKQEAgLTEwNiw0MyArMTA2LDQ3IEBAIGNsYXNzIEVt
cHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAgICAgdm9pZCBpbnZhbGlk
YXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9CiAgICAg
dm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmKSBmaW5h
bCB7IH0KICAgICB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNv
bnN0IEludFJlY3QmKSBmaW5hbCB7IH0KKwogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykK
ICAgICB2b2lkIGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJbnRQb2ludCYpIGZpbmFs
IHsgfQogI2VuZGlmCisKICNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQog
ICAgIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKSBmaW5hbCB7IH0KICNlbmRpZgogCiAgICAgSW50
UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYgcCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gcDsgfQogICAgIEludFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JiBy
KSBjb25zdCBmaW5hbCB7IHJldHVybiByOyB9CisKICNpZiBQTEFURk9STShJT1MpCiAgICAgSW50
UG9pbnQgYWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmIHApIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHA7IH07CiAgICAgSW50UmVjdCByb290Vmlld1RvQWNjZXNzaWJp
bGl0eVNjcmVlbihjb25zdCBJbnRSZWN0JiByKSBjb25zdCBmaW5hbCB7IHJldHVybiByOyB9Owog
I2VuZGlmCisKICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gMDsgfQotICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFt
ZSosIGNvbnN0IEludFNpemUmKSBjb25zdCBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbnRlbnRzU2l6
ZUNoYW5nZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3QgZmluYWwgeyB9CiAKICAgICB2
b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgZmluYWwgeyB9CiAgICAgdm9pZCBt
b3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQpIGZp
bmFsIHsgfQogCiAgICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rp
b24pIGZpbmFsIHsgfQogCi0gICAgdm9pZCBwcmludChGcmFtZSopIGZpbmFsIHsgfQorICAgIHZv
aWQgcHJpbnQoRnJhbWUmKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1
b3RhKEZyYW1lKiwgY29uc3QgU3RyaW5nJiwgRGF0YWJhc2VEZXRhaWxzKSBmaW5hbCB7IH0KKyAg
ICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSYsIGNvbnN0IFN0cmluZyYsIERhdGFi
YXNlRGV0YWlscykgZmluYWwgeyB9CiAKICAgICB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUo
aW50NjRfdCkgZmluYWwgeyB9Ci0gICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCkgZmluYWwgeyB9CisgICAgdm9pZCByZWFj
aGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCkg
ZmluYWwgeyB9CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50
KiwgY29uc3QgQ29sb3ImKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2Vy
PiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3QgQ29sb3ImKSBm
aW5hbDsKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3Nl
ciYpIGZpbmFsOwogICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYsIEZpbGVJY29uTG9hZGVyJikgZmluYWwgeyB9CiAKLSAgICB2b2lkIGVsZW1lbnREaWRGb2N1
cyhjb25zdCBOb2RlKikgZmluYWwgeyB9Ci0gICAgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBO
b2RlKikgZmluYWwgeyB9CisgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoRWxlbWVudCYpIGZpbmFs
IHsgfQorICAgIHZvaWQgZWxlbWVudERpZEJsdXIoRWxlbWVudCYpIGZpbmFsIHsgfQogCiAjaWYg
IVBMQVRGT1JNKElPUykKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKSBmaW5hbCB7
IH0KQEAgLTE1MSw4ICsxNTUsOCBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBD
aHJvbWVDbGllbnQgewogCiAgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVj
dCYpIGNvbnN0IGZpbmFsIHsgfQogCi0gICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihG
cmFtZSosIEdyYXBoaWNzTGF5ZXIqKSBmaW5hbCB7IH0KLSAgICB2b2lkIGF0dGFjaFZpZXdPdmVy
bGF5R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSBmaW5hbCB7IH0KKyAgICB2
b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopIGZpbmFs
IHsgfQorICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lJiwgR3Jh
cGhpY3NMYXllciopIGZpbmFsIHsgfQogICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5
bmNocm9uaXphdGlvbigpIGZpbmFsIHsgfQogICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xh
eWVyRmx1c2goKSBmaW5hbCB7IH0KIApAQCAtMTYyLDE1ICsxNjYsMTYgQEAgY2xhc3MgRW1wdHlD
aHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lkIEFYRmluaXNoRnJh
bWVMb2FkKCkgZmluYWwgeyB9CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKICNpZiBFTkFC
TEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICB2b2lkIGRpZFByZXZlbnREZWZhdWx0Rm9yRXZlbnQo
KSBmaW5hbCB7IH0KICNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgZGlkUmVj
ZWl2ZU1vYmlsZURvY1R5cGUoYm9vbCkgZmluYWwgeyB9Ci0gICAgdm9pZCBzZXROZWVkc1Njcm9s
bE5vdGlmaWNhdGlvbnMoRnJhbWUqLCBib29sKSBmaW5hbCB7IH0KLSAgICB2b2lkIG9ic2VydmVk
Q29udGVudENoYW5nZShGcmFtZSopIGZpbmFsIHsgfQotICAgIHZvaWQgY2xlYXJDb250ZW50Q2hh
bmdlT2JzZXJ2ZXJzKEZyYW1lKikgZmluYWwgeyB9Ci0gICAgdm9pZCBub3RpZnlSZXZlYWxlZFNl
bGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoRnJhbWUqKSBmaW5hbCB7IH0KKyAgICB2b2lkIHNldE5l
ZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhGcmFtZSYsIGJvb2wpIGZpbmFsIHsgfQorICAgIHZvaWQg
b2JzZXJ2ZWRDb250ZW50Q2hhbmdlKEZyYW1lJikgZmluYWwgeyB9CisgICAgdm9pZCBjbGVhckNv
bnRlbnRDaGFuZ2VPYnNlcnZlcnMoRnJhbWUmKSBmaW5hbCB7IH0KKyAgICB2b2lkIG5vdGlmeVJl
dmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShGcmFtZSYpIGZpbmFsIHsgfQogICAgIHZv
aWQgZGlkTGF5b3V0KExheW91dFR5cGUpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlkU3RhcnRPdmVy
Zmxvd1Njcm9sbCgpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlkRW5kT3ZlcmZsb3dTY3JvbGwoKSBm
aW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDE0ZDQ3ZGE5
NzJlOTI4MzY5YWM4MTNjZjk2MTg0NzRmMWFmMDAxODUuLjc4ZGZmMGM0M2M1ZmIwMTFjNzgwYTQ0
N2E5YjY5MmM0NGFmZDQzYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApA
QCAtMzk3LDcgKzM5Nyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0oUmVmPEZvcm1T
dWJtaXNzaW9uPiYmIHN1Ym1pc3Npb24pCiAKICAgICBGcmFtZSogdGFyZ2V0RnJhbWUgPSBmaW5k
RnJhbWVGb3JOYXZpZ2F0aW9uKHN1Ym1pc3Npb24tPnRhcmdldCgpLCAmc3VibWlzc2lvbi0+c3Rh
dGUoKS5zb3VyY2VEb2N1bWVudCgpKTsKICAgICBpZiAoIXRhcmdldEZyYW1lKSB7Ci0gICAgICAg
IGlmICghRE9NV2luZG93OjphbGxvd1BvcFVwKCZtX2ZyYW1lKSAmJiAhU2NyaXB0Q29udHJvbGxl
cjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpCisgICAgICAgIGlmICghRE9NV2luZG93OjphbGxv
d1BvcFVwKG1fZnJhbWUpICYmICFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1
cmUoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAvLyBGSVhNRTogdGFyZ2V0RnJh
bWUgY2FuIGJlIG51bGwgZm9yIHR3byBkaXN0aW5jdCByZWFzb25zOgpAQCAtMTg1MiwxMSArMTg1
Miw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9hZCgpCiAgICAgICAg
IGhpc3RvcnkoKS51cGRhdGVGb3JDbGllbnRSZWRpcmVjdCgpOwogCiAgICAgaWYgKG1fbG9hZGlu
Z0Zyb21DYWNoZWRQYWdlKSB7Ci0jaWYgUExBVEZPUk0oSU9TKQogICAgICAgICAvLyBOb3RlLCBk
aWRSZWNlaXZlRG9jVHlwZSBpcyBleHBlY3RlZCB0byBiZSBjYWxsZWQgZm9yIGNhY2hlZCBwYWdl
cy4gU2VlIDxyZGFyOi8vcHJvYmxlbS81OTA2NzU4PiBmb3IgbW9yZSBkZXRhaWxzLgotICAgICAg
ICBpZiAobV9mcmFtZS5kb2N1bWVudCgpLT5kb2N0eXBlKCkgJiYgbV9mcmFtZS5wYWdlKCkpCi0g
ICAgICAgICAgICBtX2ZyYW1lLnBhZ2UoKS0+Y2hyb21lKCkuZGlkUmVjZWl2ZURvY1R5cGUoJm1f
ZnJhbWUpOwotI2VuZGlmCisgICAgICAgIGlmIChhdXRvKiBwYWdlID0gbV9mcmFtZS5wYWdlKCkp
CisgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZShtX2ZyYW1lKTsK
ICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5yZXN1bWUoQWN0aXZlRE9NT2JqZWN0OjpQYWdl
Q2FjaGUpOwogCiAgICAgICAgIC8vIEZvcmNlIGEgbGF5b3V0IHRvIHVwZGF0ZSB2aWV3IHNpemUg
YW5kIHRoZXJlYnkgdXBkYXRlIHNjcm9sbGJhcnMuCkBAIC0yNDM5LDE1ICsyNDM3LDE1IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OmRldGFjaENoaWxkcmVuKCkKICAgICAgICAgY2hpbGQtPmxvYWRlcigp
LmRldGFjaEZyb21QYXJlbnQoKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6Y2xvc2VBbmRSZW1v
dmVDaGlsZChGcmFtZSogY2hpbGQpCit2b2lkIEZyYW1lTG9hZGVyOjpjbG9zZUFuZFJlbW92ZUNo
aWxkKEZyYW1lJiBjaGlsZCkKIHsKLSAgICBjaGlsZC0+dHJlZSgpLmRldGFjaEZyb21QYXJlbnQo
KTsKKyAgICBjaGlsZC50cmVlKCkuZGV0YWNoRnJvbVBhcmVudCgpOwogCi0gICAgY2hpbGQtPnNl
dFZpZXcobnVsbHB0cik7Ci0gICAgaWYgKGNoaWxkLT5vd25lckVsZW1lbnQoKSAmJiBjaGlsZC0+
cGFnZSgpKQotICAgICAgICBjaGlsZC0+cGFnZSgpLT5kZWNyZW1lbnRTdWJmcmFtZUNvdW50KCk7
Ci0gICAgY2hpbGQtPndpbGxEZXRhY2hQYWdlKCk7Ci0gICAgY2hpbGQtPmRldGFjaEZyb21QYWdl
KCk7CisgICAgY2hpbGQuc2V0VmlldyhudWxscHRyKTsKKyAgICBpZiAoY2hpbGQub3duZXJFbGVt
ZW50KCkgJiYgY2hpbGQucGFnZSgpKQorICAgICAgICBjaGlsZC5wYWdlKCktPmRlY3JlbWVudFN1
YmZyYW1lQ291bnQoKTsKKyAgICBjaGlsZC53aWxsRGV0YWNoUGFnZSgpOworICAgIGNoaWxkLmRl
dGFjaEZyb21QYWdlKCk7CiAKICAgICBtX2ZyYW1lLnRyZWUoKS5yZW1vdmVDaGlsZChjaGlsZCk7
CiB9CkBAIC0yNTI4LDcgKzI1MjYsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpkZXRhY2hGcm9tUGFy
ZW50KCkKICAgICBtX3Byb2dyZXNzVHJhY2tlciA9IG51bGxwdHI7CiAKICAgICBpZiAoRnJhbWUq
IHBhcmVudCA9IG1fZnJhbWUudHJlZSgpLnBhcmVudCgpKSB7Ci0gICAgICAgIHBhcmVudC0+bG9h
ZGVyKCkuY2xvc2VBbmRSZW1vdmVDaGlsZCgmbV9mcmFtZSk7CisgICAgICAgIHBhcmVudC0+bG9h
ZGVyKCkuY2xvc2VBbmRSZW1vdmVDaGlsZChtX2ZyYW1lKTsKICAgICAgICAgcGFyZW50LT5sb2Fk
ZXIoKS5zY2hlZHVsZUNoZWNrQ29tcGxldGVkKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9m
cmFtZS5zZXRWaWV3KG51bGxwdHIpOwpAQCAtMzAzMiw3ICszMDMwLDcgQEAgYm9vbCBGcmFtZUxv
YWRlcjo6ZGlzcGF0Y2hCZWZvcmVVbmxvYWRFdmVudChDaHJvbWUmIGNocm9tZSwgRnJhbWVMb2Fk
ZXIqIGZyYW1lTG8KICAgICBmcmFtZUxvYWRlckJlaW5nTmF2aWdhdGVkLT5tX2N1cnJlbnROYXZp
Z2F0aW9uSGFzU2hvd25CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwgPSB0cnVlOwogCiAgICAgU3Ry
aW5nIHRleHQgPSBkb2N1bWVudC0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhiZWZv
cmVVbmxvYWRFdmVudC0+cmV0dXJuVmFsdWUoKSk7Ci0gICAgcmV0dXJuIGNocm9tZS5ydW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwodGV4dCwgJm1fZnJhbWUpOworICAgIHJldHVybiBjaHJvbWUu
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHRleHQsIG1fZnJhbWUpOwogfQogCiB2b2lkIEZy
YW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBGb3JtU3RhdGUqIGZvcm1TdGF0ZSwgYm9vbCBzaG91bGRDb250
aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxp
ZFVSTCkKQEAgLTM2NTcsNyArMzY1NSw3IEBAIFJlZlB0cjxGcmFtZT4gY3JlYXRlV2luZG93KEZy
YW1lJiBvcGVuZXJGcmFtZSwgRnJhbWUmIGxvb2t1cEZyYW1lLCBjb25zdCBGcmFtZUxvCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCiAgICAgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eVRvQXBwbHkob3BlbmVyRnJhbWUsIHJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSgpKTsKLSAgICBQYWdlKiBwYWdlID0gb2xkUGFnZS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KCZv
cGVuZXJGcmFtZSwgcmVxdWVzdFdpdGhSZWZlcnJlciwgZmVhdHVyZXMsIE5hdmlnYXRpb25BY3Rp
b24ocmVxdWVzdFdpdGhSZWZlcnJlci5yZXNvdXJjZVJlcXVlc3QoKSwgc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSkpOworICAgIFBhZ2UqIHBhZ2UgPSBvbGRQYWdlLT5jaHJvbWUoKS5jcmVh
dGVXaW5kb3cob3BlbmVyRnJhbWUsIHJlcXVlc3RXaXRoUmVmZXJyZXIsIGZlYXR1cmVzLCBOYXZp
Z2F0aW9uQWN0aW9uKHJlcXVlc3RXaXRoUmVmZXJyZXIucmVzb3VyY2VSZXF1ZXN0KCksIHNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCkBAIC0zNzA1LDcgKzM3MDMsNyBAQCBSZWZQdHI8RnJhbWU+IGNyZWF0ZVdp
bmRvdyhGcmFtZSYgb3BlbmVyRnJhbWUsIEZyYW1lJiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVM
bwogICAgICAgICB3aW5kb3dSZWN0LnNldEhlaWdodCgqZmVhdHVyZXMuaGVpZ2h0ICsgKHdpbmRv
d1JlY3QuaGVpZ2h0KCkgLSB2aWV3cG9ydFNpemUuaGVpZ2h0KCkpKTsKIAogICAgIC8vIEVuc3Vy
ZSBub24tTmFOIHZhbHVlcywgbWluaW11bSBzaXplIGFzIHdlbGwgYXMgYmVpbmcgd2l0aGluIHZh
bGlkIHNjcmVlbiBhcmVhLgotICAgIEZsb2F0UmVjdCBuZXdXaW5kb3dSZWN0ID0gRE9NV2luZG93
OjphZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIHdpbmRvd1JlY3QpOworICAgIEZsb2F0UmVjdCBuZXdX
aW5kb3dSZWN0ID0gRE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0KCpwYWdlLCB3aW5kb3dSZWN0
KTsKIAogICAgIGlmICghZnJhbWUtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGZhYTA3MTJmYTRkMjQ3ODdmYTU1ZDQ4
NGM1NDU0MjY1YmE1MWI2MmIuLmQ2OWM4MjljNGUyZjZhYmY5NGNlMWI0MDU2NDc3ZWM2YjkwYjY5
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0zNjYsNyArMzY2LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RGcm9tRGVsZWdhdGUoUmVzb3VyY2VSZXF1ZXN0Jiwg
dW5zaWduZWQgbG9uZyYgaWRlbnRpZmllciwgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkZXRhY2hDaGlsZHJlbigpOwotICAgIHZvaWQgY2xvc2VBbmRSZW1vdmVD
aGlsZChGcmFtZSopOworICAgIHZvaWQgY2xvc2VBbmRSZW1vdmVDaGlsZChGcmFtZSYpOwogCiAg
ICAgdm9pZCBsb2FkSW5TYW1lRG9jdW1lbnQoY29uc3QgVVJMJiwgU2VyaWFsaXplZFNjcmlwdFZh
bHVlKiBzdGF0ZU9iamVjdCwgYm9vbCBpc05ld05hdmlnYXRpb24pOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKaW5kZXggYmJiNjFlYjQ4MjEyMTk4M2FiZWI1N2JjZTRl
ODQ3MzRiN2ZlNjIyMy4uYTAxY2UyOTI5YTEwMTA2MDA0YTI0ZTc0YTYwOGI4Y2Q3Njc2MWE2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcApAQCAtMTU3LDcgKzE1Nyw3
IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOZXdXaW5kb3dQb2xpY3koY29uc3QgTmF2aWdh
dGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBSCiAgICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKSAm
JiBtX2ZyYW1lLmRvY3VtZW50KCktPmlzU2FuZGJveGVkKFNhbmRib3hQb3B1cHMpKQogICAgICAg
ICByZXR1cm4gY29udGludWVBZnRlck5hdmlnYXRpb25Qb2xpY3koUG9saWN5SWdub3JlKTsKIAot
ICAgIGlmICghRE9NV2luZG93OjphbGxvd1BvcFVwKCZtX2ZyYW1lKSkKKyAgICBpZiAoIURPTVdp
bmRvdzo6YWxsb3dQb3BVcChtX2ZyYW1lKSkKICAgICAgICAgcmV0dXJuIGNvbnRpbnVlQWZ0ZXJO
YXZpZ2F0aW9uUG9saWN5KFBvbGljeUlnbm9yZSk7CiAKICAgICBtX2NhbGxiYWNrLnNldChyZXF1
ZXN0LCBmb3JtU3RhdGUsIGZyYW1lTmFtZSwgYWN0aW9uLCBXVEZNb3ZlKGZ1bmN0aW9uKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlR3JvdXAuY3BwCmluZGV4IDhhMjhmODhlNjY3M2RiMTcwMmIxNDQxNGZhZjczOGI1Yzc0MmZj
ZWYuLjlmOWFiMDAwY2Y2ZDkzODVmOGEyNThmNTE1MWI4NzBmNzI5MGQ4YWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3Jv
dXAuY3BwCkBAIC03ODQsNyArNzg0LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNh
Y2hlVXBkYXRlRmFpbGVkKCkKIAogdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnJlY2FsY3Vs
YXRlQXZhaWxhYmxlU3BhY2VJblF1b3RhKCkKIHsKLSAgICBpZiAoIW1fZnJhbWUtPnBhZ2UoKS0+
YXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKS5jYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2lu
RXhjbHVkaW5nQ2FjaGUobV9vcmlnaW4uZ2V0KCksIG1fbmV3ZXN0Q2FjaGUuZ2V0KCksIG1fYXZh
aWxhYmxlU3BhY2VJblF1b3RhKSkgeworICAgIGlmICghbV9mcmFtZS0+cGFnZSgpLT5hcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZSgpLmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRp
bmdDYWNoZShtX29yaWdpbiwgbV9uZXdlc3RDYWNoZS5nZXQoKSwgbV9hdmFpbGFibGVTcGFjZUlu
UXVvdGEpKSB7CiAgICAgICAgIC8vIEZhaWxlZCB0byBkZXRlcm1pbmUgd2hhdCBpcyBsZWZ0IGlu
IHRoZSBxdW90YS4gRmFsbGJhY2sgdG8gYWxsb3dpbmcgYW55dGhpbmcuCiAgICAgICAgIG1fYXZh
aWxhYmxlU3BhY2VJblF1b3RhID0gQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6Om5vUXVvdGEoKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmgKaW5kZXggZmM4NTFkYTdjZmE4YzQzMzJmNjg1ZWEyOTEyMmUzN2Q0
ZGI3YWFhMi4uY2ViODNkZmM2MjE2ZmU1NTg0Mjc3YzlmOWFhZTU2NjA4ZDdjNGQwYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91
cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
R3JvdXAuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAKICAgICBBcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZSYgc3RvcmFnZSgpIHsgcmV0dXJuIG1fc3RvcmFnZTsgfQogICAgIGNvbnN0IFVSTCYg
bWFuaWZlc3RVUkwoKSBjb25zdCB7IHJldHVybiBtX21hbmlmZXN0VVJMOyB9Ci0gICAgY29uc3Qg
U2VjdXJpdHlPcmlnaW4qIG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luLmdldCgpOyB9
CisgICAgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3Jp
Z2luLmdldCgpOyB9CiAgICAgVXBkYXRlU3RhdHVzIHVwZGF0ZVN0YXR1cygpIGNvbnN0IHsgcmV0
dXJuIG1fdXBkYXRlU3RhdHVzOyB9CiAgICAgdm9pZCBzZXRVcGRhdGVTdGF0dXMoVXBkYXRlU3Rh
dHVzIHN0YXR1cyk7CiAKQEAgLTEzNSw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIFJlZjxBcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZT4gbV9zdG9yYWdlOwogCiAgICAgVVJMIG1fbWFuaWZlc3RVUkw7
Ci0gICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX29yaWdpbjsKKyAgICBSZWY8U2VjdXJpdHlP
cmlnaW4+IG1fb3JpZ2luOwogICAgIFVwZGF0ZVN0YXR1cyBtX3VwZGF0ZVN0YXR1cyB7IElkbGUg
fTsKICAgICAKICAgICAvLyBUaGlzIGlzIHRoZSBuZXdlc3QgY29tcGxldGUgY2FjaGUgaW4gdGhl
IGdyb3VwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKaW5kZXggZjRmYTk1YjUxN2VjNzc5MTYyNGZjMGYy
NWE2NTZiMGMwOTQ0MTQ3Ny4uYjZiOWQ3YTdjZDYzYzA3NmFlN2E4NDEwOTk5ODBiNDNlZjg3YjZh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCkBAIC00MjEsNyArNDIxLDcgQEAgdm9pZCBBcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZTo6c2V0RGVmYXVsdE9yaWdpblF1b3RhKGludDY0X3QgcXVvdGEpCiAg
ICAgbV9kZWZhdWx0T3JpZ2luUXVvdGEgPSBxdW90YTsKIH0KIAotYm9vbCBBcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4q
IG9yaWdpbiwgaW50NjRfdCYgcXVvdGEpCitib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpj
YWxjdWxhdGVRdW90YUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBpbnQ2
NF90JiBxdW90YSkKIHsKICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRl
ciB0cmFuc2FjdGlvbkNvdW50ZXI7CiAKQEAgLTQzMiw3ICs0MzIsNyBAQCBib29sIEFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlOjpjYWxjdWxhdGVRdW90YUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9y
aWdpbiogb3JpZwogICAgIGlmIChzdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSykKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc3RhdGVtZW50LmJpbmRUZXh0KDEsIFNlY3VyaXR5
T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpvcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmll
cigpKTsKKyAgICBzdGF0ZW1lbnQuYmluZFRleHQoMSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9t
U2VjdXJpdHlPcmlnaW4ob3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CiAgICAgaW50IHJl
c3VsdCA9IHN0YXRlbWVudC5zdGVwKCk7CiAKICAgICAvLyBSZXR1cm4gdGhlIHF1b3RhLCBvciBp
ZiBpdCB3YXMgbnVsbCB0aGUgZGVmYXVsdC4KQEAgLTQ3Miw3ICs0NzIsNyBAQCBib29sIEFwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlOjpjYWxjdWxhdGVVc2FnZUZvck9yaWdpbihjb25zdCBTZWN1cml0
eU9yaWdpbiogb3JpZwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBBcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZTo6Y2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hl
KGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIEFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlLCBp
bnQ2NF90JiByZW1haW5pbmdTaXplKQorYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2Fs
Y3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hlKGNvbnN0IFNlY3VyaXR5
T3JpZ2luJiBvcmlnaW4sIEFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlLCBpbnQ2NF90JiByZW1haW5p
bmdTaXplKQogewogICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1dG9Db3VudGVyIHRy
YW5zYWN0aW9uQ291bnRlcjsKIApAQCAtNTAzLDcgKzUwMyw3IEBAIGJvb2wgQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNo
ZShjb25zCiAgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBzdGF0ZW1lbnQuYmluZFRleHQoMSwgU2VjdXJpdHlPcmln
aW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKm9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCkp
OworICAgIHN0YXRlbWVudC5iaW5kVGV4dCgxLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1
cml0eU9yaWdpbihvcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKICAgICBpZiAoZXhjbHVk
aW5nQ2FjaGVJZGVudGlmaWVyICE9IDApCiAgICAgICAgIHN0YXRlbWVudC5iaW5kSW50NjQoMiwg
ZXhjbHVkaW5nQ2FjaGVJZGVudGlmaWVyKTsKICAgICBpbnQgcmVzdWx0ID0gc3RhdGVtZW50LnN0
ZXAoKTsKQEAgLTY4OCwxNCArNjg4LDE0IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6
OnN0b3JlKEFwcGxpY2F0aW9uQ2FjaGVHcm91cCogZ3JvdXAsIEdyb3VwU3RvcmFnZUlECiAKICAg
ICBzdGF0ZW1lbnQuYmluZEludDY0KDEsIHVybEhvc3RIYXNoKGdyb3VwLT5tYW5pZmVzdFVSTCgp
KSk7CiAgICAgc3RhdGVtZW50LmJpbmRUZXh0KDIsIGdyb3VwLT5tYW5pZmVzdFVSTCgpKTsKLSAg
ICBzdGF0ZW1lbnQuYmluZFRleHQoMywgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlP
cmlnaW4oKmdyb3VwLT5vcmlnaW4oKSkuZGF0YWJhc2VJZGVudGlmaWVyKCkpOworICAgIHN0YXRl
bWVudC5iaW5kVGV4dCgzLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihn
cm91cC0+b3JpZ2luKCkpLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKIAogICAgIGlmICghZXhlY3V0
ZVN0YXRlbWVudChzdGF0ZW1lbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICB1bnNp
Z25lZCBncm91cFN0b3JhZ2VJRCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX2RhdGFiYXNlLmxh
c3RJbnNlcnRSb3dJRCgpKTsKIAotICAgIGlmICghZW5zdXJlT3JpZ2luUmVjb3JkKGdyb3VwLT5v
cmlnaW4oKSkpCisgICAgaWYgKCFlbnN1cmVPcmlnaW5SZWNvcmQoJmdyb3VwLT5vcmlnaW4oKSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGdyb3VwLT5zZXRTdG9yYWdlSUQoZ3JvdXBT
dG9yYWdlSUQpOwpAQCAtOTcxLDcgKzk3MSw3IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2U6OmNoZWNrT3JpZ2luUXVvdGEoQXBwbGljYXRpb25DYWNoZUdyb3VwKiBncm91cCwgQXBwCiB7
CiAgICAgLy8gQ2hlY2sgaWYgdGhlIG9sZENhY2hlIHdpdGggdGhlIG5ld0NhY2hlIHdvdWxkIHJl
YWNoIHRoZSBwZXItb3JpZ2luIHF1b3RhLgogICAgIGludDY0X3QgcmVtYWluaW5nU3BhY2VJbk9y
aWdpbjsKLSAgICBjb25zdCBTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gZ3JvdXAtPm9yaWdpbigp
OworICAgIGF1dG8mIG9yaWdpbiA9IGdyb3VwLT5vcmlnaW4oKTsKICAgICBpZiAoY2FsY3VsYXRl
UmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hlKG9yaWdpbiwgb2xkQ2FjaGUsIHJl
bWFpbmluZ1NwYWNlSW5PcmlnaW4pKSB7CiAgICAgICAgIGlmIChyZW1haW5pbmdTcGFjZUluT3Jp
Z2luIDwgbmV3Q2FjaGUtPmVzdGltYXRlZFNpemVJblN0b3JhZ2UoKSkgewogICAgICAgICAgICAg
aW50NjRfdCBxdW90YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgKaW5kZXggOWZhMjkyZWU1MGZhZWU4OWMzNWM4
NjFhOGY5OWZhMTZmOTA1NDc2ZC4uOWQxN2ExYmNkMDZhNmFjMTExYTBhY2FhNjA3NjRmNmIxNTQw
NTBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgKQEAgLTYzLDggKzYzLDggQEAgcHVibGljOgogICAgIGlu
dDY0X3QgZGVmYXVsdE9yaWdpblF1b3RhKCkgY29uc3QgeyByZXR1cm4gbV9kZWZhdWx0T3JpZ2lu
UXVvdGE7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERlZmF1bHRPcmlnaW5RdW90YShp
bnQ2NF90IHF1b3RhKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhbGN1bGF0ZVVzYWdlRm9y
T3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCYgdXNhZ2UpOwotICAgIFdFQkNP
UkVfRVhQT1JUIGJvb2wgY2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmln
aW4qLCBpbnQ2NF90JiBxdW90YSk7Ci0gICAgYm9vbCBjYWxjdWxhdGVSZW1haW5pbmdTaXplRm9y
T3JpZ2luRXhjbHVkaW5nQ2FjaGUoY29uc3QgU2VjdXJpdHlPcmlnaW4qLCBBcHBsaWNhdGlvbkNh
Y2hlKiwgaW50NjRfdCYgcmVtYWluaW5nU2l6ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBj
YWxjdWxhdGVRdW90YUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYsIGludDY0X3QmIHF1
b3RhKTsKKyAgICBib29sIGNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdD
YWNoZShjb25zdCBTZWN1cml0eU9yaWdpbiYsIEFwcGxpY2F0aW9uQ2FjaGUqLCBpbnQ2NF90JiBy
ZW1haW5pbmdTaXplKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHN0b3JlVXBkYXRlZFF1b3Rh
Rm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCBxdW90YSk7CiAgICAgYm9v
bCBjaGVja09yaWdpblF1b3RhKEFwcGxpY2F0aW9uQ2FjaGVHcm91cCosIEFwcGxpY2F0aW9uQ2Fj
aGUqIG9sZENhY2hlLCBBcHBsaWNhdGlvbkNhY2hlKiBuZXdDYWNoZSwgaW50NjRfdCYgdG90YWxT
cGFjZU5lZWRlZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZl
L21odG1sL01IVE1MQXJjaGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9t
aHRtbC9NSFRNTEFyY2hpdmUuY3BwCmluZGV4IGE5MjFiMDVlODQ2YTA1YTVhZmNlNjMwM2FhMThm
OGJmMzA3MDlkYjQuLjJjYTY3ZTI3YmU4ODQyY2M3YTIxN2RhYTkyNTVlODE4ZWY5YTE5MmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNo
aXZlLmNwcApAQCAtMTMzLDggKzEzMyw4IEBAIFJlZlB0cjxNSFRNTEFyY2hpdmU+IE1IVE1MQXJj
aGl2ZTo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBTaGFyZWRCdWZmZXImIGRhdGEpCiBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBNSFRNTEFyY2hpdmU6OmdlbmVyYXRlTUhUTUxEYXRhKFBhZ2UqIHBhZ2Up
CiB7CiAgICAgVmVjdG9yPFBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZT4gcmVzb3VyY2VzOwotICAg
IFBhZ2VTZXJpYWxpemVyIHBhZ2VTZXJpYWxpemVyKCZyZXNvdXJjZXMpOwotICAgIHBhZ2VTZXJp
YWxpemVyLnNlcmlhbGl6ZShwYWdlKTsKKyAgICBQYWdlU2VyaWFsaXplciBwYWdlU2VyaWFsaXpl
cihyZXNvdXJjZXMpOworICAgIHBhZ2VTZXJpYWxpemVyLnNlcmlhbGl6ZSgqcGFnZSk7CiAKICAg
ICBTdHJpbmcgYm91bmRhcnkgPSBnZW5lcmF0ZVJhbmRvbUJvdW5kYXJ5KCk7CiAgICAgU3RyaW5n
IGVuZE9mUmVzb3VyY2VCb3VuZGFyeSA9IG1ha2VTdHJpbmcoIi0tIiwgYm91bmRhcnksICJcclxu
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAKaW5kZXggZTE1MTc2ZDMz
MTlkOTRjZTBiOWM5MWZiYmQ4ZWI3Mzc4MTk0Yzg2NC4uZTk3MTM5NjFjZTNiNzQ4ODRhMWIzYmUz
ZTUwYTczOTA2MjNmODllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNw
cApAQCAtMTgyLDcgKzE4Miw3IEBAIGJvb2wgTWF0aE1MRWxlbWVudDo6aXNLZXlib2FyZEZvY3Vz
YWJsZShLZXlib2FyZEV2ZW50JiBldmVudCkgY29uc3QKICAgICAgICAgcmV0dXJuIFN0eWxlZEVs
ZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpOwogCiAgICAgaWYgKGlzTGluaygpKQot
ICAgICAgICByZXR1cm4gZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS50YWJzVG9M
aW5rcygmZXZlbnQpOworICAgICAgICByZXR1cm4gZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhh
bmRsZXIoKS50YWJzVG9MaW5rcyhldmVudCk7CiAKICAgICByZXR1cm4gU3R5bGVkRWxlbWVudDo6
aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXgg
NzRkZGUxYTM0ZTE1ZTkwOTcxYWQwODZlMjcwYjlhYTU2OTg4MjEwYi4uZTM2M2Y0M2FkYzZmNWJj
ZTQ5MDg0NDA5NzUzNzQ2YWE4NjFlODRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNDgs
NyArNDgsNiBAQAogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJXaW5k
b3dGZWF0dXJlcy5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvVk0uaD4KLSNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KIApAQCAtNjMsMTAgKzYyLDYgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IENocm9tZTo6Q2hyb21lKFBhZ2UmIHBhZ2UsIENocm9tZUNsaWVudCYgY2xpZW50KQogICAgIDog
bV9wYWdlKHBhZ2UpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCi0gICAgLCBtX2Rpc3BsYXlJRCgw
KQotI2lmIFBMQVRGT1JNKElPUykKLSAgICAsIG1faXNEaXNwYXRjaFZpZXdwb3J0RGF0YURpZENo
YW5nZVN1cHByZXNzZWQoZmFsc2UpCi0jZW5kaWYKIHsKIH0KIApAQCAtMTE0LDYgKzEwOSw3IEBA
IEludFJlY3QgQ2hyb21lOjpyb290Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpIGNv
bnN0CiB9CiAgICAgCiAjaWYgUExBVEZPUk0oSU9TKQorCiBJbnRQb2ludCBDaHJvbWU6OmFjY2Vz
c2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9jbGllbnQuYWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcocG9pbnQp
OwpAQCAtMTIzLDYgKzExOSw3IEBAIEludFJlY3QgQ2hyb21lOjpyb290Vmlld1RvQWNjZXNzaWJp
bGl0eVNjcmVlbihjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAogewogICAgIHJldHVybiBtX2Ns
aWVudC5yb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVlbihyZWN0KTsKIH0KKwogI2VuZGlmCiAK
IFBsYXRmb3JtUGFnZUNsaWVudCBDaHJvbWU6OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0CkBA
IC0xMzAsNyArMTI3LDcgQEAgUGxhdGZvcm1QYWdlQ2xpZW50IENocm9tZTo6cGxhdGZvcm1QYWdl
Q2xpZW50KCkgY29uc3QKICAgICByZXR1cm4gbV9jbGllbnQucGxhdGZvcm1QYWdlQ2xpZW50KCk7
CiB9CiAKLXZvaWQgQ2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29u
c3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKK3ZvaWQgQ2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2Vk
KEZyYW1lJiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKIHsKICAgICBtX2NsaWVu
dC5jb250ZW50c1NpemVDaGFuZ2VkKGZyYW1lLCBzaXplKTsKIH0KQEAgLTE5MCwxNSArMTg3LDEz
IEBAIHZvaWQgQ2hyb21lOjpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKiBmcmFtZSkgY29uc3QK
ICAgICBtX2NsaWVudC5mb2N1c2VkRnJhbWVDaGFuZ2VkKGZyYW1lKTsKIH0KIAotUGFnZSogQ2hy
b21lOjpjcmVhdGVXaW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25B
Y3Rpb24mIGFjdGlvbikgY29uc3QKK1BhZ2UqIENocm9tZTo6Y3JlYXRlV2luZG93KEZyYW1lJiBm
cmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVy
ZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24pIGNvbnN0CiB7CiAg
ICAgUGFnZSogbmV3UGFnZSA9IG1fY2xpZW50LmNyZWF0ZVdpbmRvdyhmcmFtZSwgcmVxdWVzdCwg
ZmVhdHVyZXMsIGFjdGlvbik7CiAgICAgaWYgKCFuZXdQYWdlKQotICAgICAgICByZXR1cm4gMDsK
LQotICAgIGlmIChTdG9yYWdlTmFtZXNwYWNlKiBvbGRTZXNzaW9uU3RvcmFnZSA9IG1fcGFnZS5z
ZXNzaW9uU3RvcmFnZShmYWxzZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChh
dXRvKiBvbGRTZXNzaW9uU3RvcmFnZSA9IG1fcGFnZS5zZXNzaW9uU3RvcmFnZShmYWxzZSkpCiAg
ICAgICAgIG5ld1BhZ2UtPnNldFNlc3Npb25TdG9yYWdlKG9sZFNlc3Npb25TdG9yYWdlLT5jb3B5
KG5ld1BhZ2UpKTsKLQogICAgIHJldHVybiBuZXdQYWdlOwogfQogCkBAIC0yNzYsNyArMjcxLDcg
QEAgYm9vbCBDaHJvbWU6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpCiAgICAgcmV0
dXJuIG1fY2xpZW50LmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpOwogfQogCi1ib29s
IENocm9tZTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgRnJhbWUqIGZyYW1lKQorYm9vbCBDaHJvbWU6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lJiBmcmFtZSkKIHsKICAgICAvLyBEZWZlciBs
b2FkcyBpbiBjYXNlIHRoZSBjbGllbnQgbWV0aG9kIHJ1bnMgYSBuZXcgZXZlbnQgbG9vcCB0aGF0
IHdvdWxkCiAgICAgLy8gb3RoZXJ3aXNlIGNhdXNlIHRoZSBsb2FkIHRvIGNvbnRpbnVlIHdoaWxl
IHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgZXhlY3V0aW5nIEphdmFTY3JpcHQuCkBAIC0yOTAsNTMg
KzI4NSw0NyBAQCB2b2lkIENocm9tZTo6Y2xvc2VXaW5kb3dTb29uKCkKICAgICBtX2NsaWVudC5j
bG9zZVdpbmRvd1Nvb24oKTsKIH0KIAotdm9pZCBDaHJvbWU6OnJ1bkphdmFTY3JpcHRBbGVydChG
cmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgQ2hyb21lOjpydW5KYXZh
U2NyaXB0QWxlcnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAg
Ly8gRGVmZXIgbG9hZHMgaW4gY2FzZSB0aGUgY2xpZW50IG1ldGhvZCBydW5zIGEgbmV3IGV2ZW50
IGxvb3AgdGhhdCB3b3VsZAogICAgIC8vIG90aGVyd2lzZSBjYXVzZSB0aGUgbG9hZCB0byBjb250
aW51ZSB3aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGV4ZWN1dGluZyBKYXZhU2NyaXB0Lgog
ICAgIFBhZ2VHcm91cExvYWREZWZlcnJlciBkZWZlcnJlcihtX3BhZ2UsIHRydWUpOwogCi0gICAg
QVNTRVJUKGZyYW1lKTsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKLSAgICBT
dHJpbmcgZGlzcGxheU1lc3NhZ2UgPSBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNv
ZGluZyhtZXNzYWdlKTsKKyAgICBTdHJpbmcgZGlzcGxheU1lc3NhZ2UgPSBmcmFtZS5kaXNwbGF5
U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKG1lc3NhZ2UpOwogCiAgICAgbV9jbGllbnQucnVuSmF2
YVNjcmlwdEFsZXJ0KGZyYW1lLCBkaXNwbGF5TWVzc2FnZSk7CiB9CiAKLWJvb2wgQ2hyb21lOjpy
dW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
K2Jvb2wgQ2hyb21lOjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKIHsKICAgICAvLyBEZWZlciBsb2FkcyBpbiBjYXNlIHRoZSBjbGllbnQg
bWV0aG9kIHJ1bnMgYSBuZXcgZXZlbnQgbG9vcCB0aGF0IHdvdWxkCiAgICAgLy8gb3RoZXJ3aXNl
IGNhdXNlIHRoZSBsb2FkIHRvIGNvbnRpbnVlIHdoaWxlIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2Yg
ZXhlY3V0aW5nIEphdmFTY3JpcHQuCiAgICAgUGFnZUdyb3VwTG9hZERlZmVycmVyIGRlZmVycmVy
KG1fcGFnZSwgdHJ1ZSk7CiAKLSAgICBBU1NFUlQoZnJhbWUpOwogICAgIG5vdGlmeVBvcHVwT3Bl
bmluZ09ic2VydmVycygpOwotICAgIFN0cmluZyBkaXNwbGF5TWVzc2FnZSA9IGZyYW1lLT5kaXNw
bGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKG1lc3NhZ2UpOwotCi0gICAgcmV0dXJuIG1fY2xp
ZW50LnJ1bkphdmFTY3JpcHRDb25maXJtKGZyYW1lLCBkaXNwbGF5TWVzc2FnZSk7CisgICAgcmV0
dXJuIG1fY2xpZW50LnJ1bkphdmFTY3JpcHRDb25maXJtKGZyYW1lLCBmcmFtZS5kaXNwbGF5U3Ry
aW5nTW9kaWZpZWRCeUVuY29kaW5nKG1lc3NhZ2UpKTsKIH0KIAotYm9vbCBDaHJvbWU6OnJ1bkph
dmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwgY29uc3Qg
U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQorYm9vbCBDaHJvbWU6OnJ1bkph
dmFTY3JpcHRQcm9tcHQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwgY29uc3Qg
U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQogewogICAgIC8vIERlZmVyIGxv
YWRzIGluIGNhc2UgdGhlIGNsaWVudCBtZXRob2QgcnVucyBhIG5ldyBldmVudCBsb29wIHRoYXQg
d291bGQKICAgICAvLyBvdGhlcndpc2UgY2F1c2UgdGhlIGxvYWQgdG8gY29udGludWUgd2hpbGUg
d2UncmUgaW4gdGhlIG1pZGRsZSBvZiBleGVjdXRpbmcgSmF2YVNjcmlwdC4KICAgICBQYWdlR3Jv
dXBMb2FkRGVmZXJyZXIgZGVmZXJyZXIobV9wYWdlLCB0cnVlKTsKIAotICAgIEFTU0VSVChmcmFt
ZSk7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7Ci0gICAgU3RyaW5nIGRpc3Bs
YXlQcm9tcHQgPSBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhwcm9tcHQp
OworICAgIFN0cmluZyBkaXNwbGF5UHJvbXB0ID0gZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVk
QnlFbmNvZGluZyhwcm9tcHQpOwogCi0gICAgYm9vbCBvayA9IG1fY2xpZW50LnJ1bkphdmFTY3Jp
cHRQcm9tcHQoZnJhbWUsIGRpc3BsYXlQcm9tcHQsIGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZp
ZWRCeUVuY29kaW5nKGRlZmF1bHRWYWx1ZSksIHJlc3VsdCk7CisgICAgYm9vbCBvayA9IG1fY2xp
ZW50LnJ1bkphdmFTY3JpcHRQcm9tcHQoZnJhbWUsIGRpc3BsYXlQcm9tcHQsIGZyYW1lLmRpc3Bs
YXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcoZGVmYXVsdFZhbHVlKSwgcmVzdWx0KTsKICAgICBp
ZiAob2spCi0gICAgICAgIHJlc3VsdCA9IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVu
Y29kaW5nKHJlc3VsdCk7CisgICAgICAgIHJlc3VsdCA9IGZyYW1lLmRpc3BsYXlTdHJpbmdNb2Rp
ZmllZEJ5RW5jb2RpbmcocmVzdWx0KTsKIAogICAgIHJldHVybiBvazsKIH0KIAotdm9pZCBDaHJv
bWU6OnNldFN0YXR1c2JhclRleHQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIHN0YXR1cykK
K3ZvaWQgQ2hyb21lOjpzZXRTdGF0dXNiYXJUZXh0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5n
JiBzdGF0dXMpCiB7Ci0gICAgQVNTRVJUKGZyYW1lKTsKLSAgICBtX2NsaWVudC5zZXRTdGF0dXNi
YXJUZXh0KGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHN0YXR1cykpOwor
ICAgIG1fY2xpZW50LnNldFN0YXR1c2JhclRleHQoZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVk
QnlFbmNvZGluZyhzdGF0dXMpKTsKIH0KIAogdm9pZCBDaHJvbWU6Om1vdXNlRGlkTW92ZU92ZXJF
bGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJGbGFn
cykKQEAgLTQwNyw5ICszOTYsOSBAQCB2b2lkIENocm9tZTo6c2V0VG9vbFRpcChjb25zdCBIaXRU
ZXN0UmVzdWx0JiByZXN1bHQpCiAgICAgbV9jbGllbnQuc2V0VG9vbFRpcCh0b29sVGlwLCB0b29s
VGlwRGlyZWN0aW9uKTsKIH0KIAotdm9pZCBDaHJvbWU6OnByaW50KEZyYW1lKiBmcmFtZSkKK3Zv
aWQgQ2hyb21lOjpwcmludChGcmFtZSYgZnJhbWUpCiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIGhhdmUgUGFnZUdyb3VwTG9hZERlZmVycmVyLCBsaWtlIHJ1bk1vZGFsKCkgb3IgcnVuSmF2
YVNjcmlwdEFsZXJ0KCksIGJlY2FzdWUgaXQncyBubyBkaWZmZXJlbnQgZnJvbSB0aG9zZS4KKyAg
ICAvLyBGSVhNRTogVGhpcyBzaG91bGQgaGF2ZSBQYWdlR3JvdXBMb2FkRGVmZXJyZXIsIGxpa2Ug
cnVuTW9kYWwoKSBvciBydW5KYXZhU2NyaXB0QWxlcnQoKSwgYmVjYXVzZSBpdCdzIG5vIGRpZmZl
cmVudCBmcm9tIHRob3NlLgogICAgIG1fY2xpZW50LnByaW50KGZyYW1lKTsKIH0KIApAQCAtNDI0
LDExICs0MTMsMTMgQEAgdm9pZCBDaHJvbWU6OmRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpCiB9
CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLXN0ZDo6dW5pcXVlX3B0cjxDb2xvckNo
b29zZXI+IENocm9tZTo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCogY2xp
ZW50LCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQorCitzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JD
aG9vc2VyPiBDaHJvbWU6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmIGNs
aWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKIHsKICAgICBub3RpZnlQb3B1cE9wZW5p
bmdPYnNlcnZlcnMoKTsKICAgICByZXR1cm4gbV9jbGllbnQuY3JlYXRlQ29sb3JDaG9vc2VyKGNs
aWVudCwgaW5pdGlhbENvbG9yKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgQ2hyb21lOjpydW5PcGVu
UGFuZWwoRnJhbWUmIGZyYW1lLCBGaWxlQ2hvb3NlciYgZmlsZUNob29zZXIpCkBAIC01MzgsMTMg
KzUyOSwxMyBAQCBib29sIENocm9tZTo6aGFzT3BlbmVkUG9wdXAoKSBjb25zdAogICAgIHJldHVy
biBtX2NsaWVudC5oYXNPcGVuZWRQb3B1cCgpOwogfQogCi1SZWZQdHI8UG9wdXBNZW51PiBDaHJv
bWU6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0
cjxQb3B1cE1lbnU+IENocm9tZTo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYgY2xp
ZW50KSBjb25zdAogewogICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpOwogICAgIHJl
dHVybiBtX2NsaWVudC5jcmVhdGVQb3B1cE1lbnUoY2xpZW50KTsKIH0KIAotUmVmUHRyPFNlYXJj
aFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJvbWU6OmNyZWF0ZVNl
YXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKICAgICBub3Rp
ZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKICAgICByZXR1cm4gbV9jbGllbnQuY3JlYXRlU2Vh
cmNoUG9wdXBNZW51KGNsaWVudCk7CkBAIC01NTUsMzAgKzU0NiwyNyBAQCBib29sIENocm9tZTo6
cmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpCiAgICAgcmV0dXJuIG1fY2xpZW50
LnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKTsKIH0KIAotI2lmIFBMQVRGT1JN
KElPUykKLS8vIEZJWE1FOiBNYWtlIGFyZ3VtZW50LCBmcmFtZSwgYSByZWZlcmVuY2UuCi12b2lk
IENocm9tZTo6ZGlkUmVjZWl2ZURvY1R5cGUoRnJhbWUqIGZyYW1lKQordm9pZCBDaHJvbWU6OmRp
ZFJlY2VpdmVEb2NUeXBlKEZyYW1lJiBmcmFtZSkKIHsKLSAgICBBU1NFUlQoZnJhbWUpOwotICAg
IGlmICghZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisjaWYgIVBMQVRGT1JNKElPUykKKyAgICBVTlVT
RURfUEFSQU0oZnJhbWUpOworI2Vsc2UKKyAgICBpZiAoIWZyYW1lLmlzTWFpbkZyYW1lKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgaGFzTW9iaWxlRG9jVHlwZSA9IGZhbHNlOwotICAg
IGlmIChEb2N1bWVudFR5cGUqIGRvY3VtZW50VHlwZSA9IGZyYW1lLT5kb2N1bWVudCgpLT5kb2N0
eXBlKCkpCi0gICAgICAgIGhhc01vYmlsZURvY1R5cGUgPSBkb2N1bWVudFR5cGUtPnB1YmxpY0lk
KCkuY29udGFpbnMoInhodG1sIG1vYmlsZSIsIGZhbHNlKTsKLSAgICBtX2NsaWVudC5kaWRSZWNl
aXZlTW9iaWxlRG9jVHlwZShoYXNNb2JpbGVEb2NUeXBlKTsKLX0KKyAgICBhdXRvKiBkb2N0eXBl
ID0gZnJhbWUuZG9jdW1lbnQoKS0+ZG9jdHlwZSgpOworICAgIG1fY2xpZW50LmRpZFJlY2VpdmVN
b2JpbGVEb2NUeXBlKGRvY3R5cGUgJiYgZG9jdHlwZS0+cHVibGljSWQoKS5jb250YWluc0lnbm9y
aW5nQVNDSUlDYXNlKCJ4aHRtbCBtb2JpbGUiKSk7CiAjZW5kaWYKK30KIAotdm9pZCBDaHJvbWU6
OnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXIqIG9ic2Vy
dmVyKQordm9pZCBDaHJvbWU6OnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVu
aW5nT2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIEFTU0VSVChvYnNlcnZlcik7Ci0gICAgbV9w
b3B1cE9wZW5pbmdPYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKKyAgICBtX3BvcHVwT3Blbmlu
Z09ic2VydmVycy5hcHBlbmQoJm9ic2VydmVyKTsKIH0KIAotdm9pZCBDaHJvbWU6OnVucmVnaXN0
ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciogb2JzZXJ2ZXIpCit2
b2lkIENocm9tZTo6dW5yZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09i
c2VydmVyJiBvYnNlcnZlcikKIHsKLSAgICBib29sIHJlbW92ZWQgPSBtX3BvcHVwT3BlbmluZ09i
c2VydmVycy5yZW1vdmVGaXJzdChvYnNlcnZlcik7CisgICAgYm9vbCByZW1vdmVkID0gbV9wb3B1
cE9wZW5pbmdPYnNlcnZlcnMucmVtb3ZlRmlyc3QoJm9ic2VydmVyKTsKICAgICBBU1NFUlRfVU5V
U0VEKHJlbW92ZWQsIHJlbW92ZWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCA2ZDI1YWM4
OTE2MDBmMjE4NGE2NTRkYWQzMjI2ZDQ2YzgxOTMyYTY2Li5iM2M0NjQ3YzFhZTk1MDA1MjA3ODM0
OWUwNzZhMjliMGU2YWRjNmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTk1LDcgKzk1LDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNv
bnN0OwogCi0gICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6
ZSYpIGNvbnN0OworICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYsIGNvbnN0IElu
dFNpemUmKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0V2luZG93UmVjdChj
b25zdCBGbG9hdFJlY3QmKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBGbG9hdFJlY3Qgd2lu
ZG93UmVjdCgpIGNvbnN0OwpAQCAtMTExLDcgKzExMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGZv
Y3VzZWRFbGVtZW50Q2hhbmdlZChFbGVtZW50KikgY29uc3Q7CiAgICAgdm9pZCBmb2N1c2VkRnJh
bWVDaGFuZ2VkKEZyYW1lKikgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBQYWdlKiBjcmVh
dGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVh
dHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBP
UlQgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lJiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNv
bnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpIGNvbnN0OwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2hvdygpIGNvbnN0OwogCiAgICAgYm9vbCBjYW5SdW5Nb2Rh
bCgpIGNvbnN0OwpAQCAtMTMyLDI2ICsxMzIsMjYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVz
aXphYmxlKGJvb2wpIGNvbnN0OwogCiAgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwoKTsKLSAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIEZyYW1lKik7CisgICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSYpOwogCiAgICAgdm9pZCBjbG9zZVdpbmRv
d1Nvb24oKTsKIAotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiwgY29uc3QgU3Ry
aW5nJik7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSosIGNvbnN0IFN0cmlu
ZyYpOwotICAgIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSosIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFN0YXR1c2JhclRleHQoRnJhbWUqLCBjb25zdCBTdHJp
bmcmKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYsIGNvbnN0IFN0cmluZyYp
OworICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmLCBjb25zdCBTdHJpbmcmKTsK
KyAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCk7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KEZyYW1lJiwgY29uc3QgU3RyaW5nJik7
CiAKICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQm
LCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKIAogICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBI
aXRUZXN0UmVzdWx0Jik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHByaW50KEZyYW1lKik7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcmludChGcmFtZSYpOwogCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBlbmFibGVTdWRkZW5UZXJtaW5hdGlvbigpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQ
RV9DT0xPUikKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNo
b29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcik7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9y
Q2hvb3NlckNsaWVudCYsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpOwogI2VuZGlmCiAKICAg
ICB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJik7CkBAIC0xNjgsMjggKzE2
OCwyOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0
dXJhbCgpOwogICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0Rp
cmVjdGlvbigpOwogICAgIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdDsKLSAgICBSZWZQdHI8
UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7Ci0gICAg
UmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCopIGNvbnN0OworICAgIFJlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQmKSBjb25zdDsKKyAgICBSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVT
ZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JikgY29uc3Q7CiAKICNpZiBQTEFURk9STShJ
T1MpCiAgICAgLy8gRklYTUU6IENhbiB3ZSBjb21lIHVwIHdpdGggYSBiZXR0ZXIgbmFtZSBmb3Ig
dGhpcyBzZXR0ZXI/CiAgICAgdm9pZCBzZXREaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZVN1
cHByZXNzZWQoYm9vbCBkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZVN1cHByZXNzZWQpIHsg
bV9pc0Rpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlU3VwcHJlc3NlZCA9IGRpc3BhdGNoVmll
d3BvcnREYXRhRGlkQ2hhbmdlU3VwcHJlc3NlZDsgfQotCi0gICAgdm9pZCBkaWRSZWNlaXZlRG9j
VHlwZShGcmFtZSopOwogI2VuZGlmCiAKLSAgICB2b2lkIHJlZ2lzdGVyUG9wdXBPcGVuaW5nT2Jz
ZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXIqKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJQb3B1cE9w
ZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciopOworICAgIHZvaWQgZGlkUmVjZWl2
ZURvY1R5cGUoRnJhbWUmKTsKKworICAgIHZvaWQgcmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZl
cihQb3B1cE9wZW5pbmdPYnNlcnZlciYpOworICAgIHZvaWQgdW5yZWdpc3RlclBvcHVwT3Blbmlu
Z09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyJik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBu
b3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKSBjb25zdDsKIAogICAgIFBhZ2UmIG1fcGFnZTsK
ICAgICBDaHJvbWVDbGllbnQmIG1fY2xpZW50OwotICAgIFBsYXRmb3JtRGlzcGxheUlEIG1fZGlz
cGxheUlEOworICAgIFBsYXRmb3JtRGlzcGxheUlEIG1fZGlzcGxheUlEIHsgMCB9OwogICAgIFZl
Y3RvcjxQb3B1cE9wZW5pbmdPYnNlcnZlcio+IG1fcG9wdXBPcGVuaW5nT2JzZXJ2ZXJzOwogI2lm
IFBMQVRGT1JNKElPUykKLSAgICBib29sIG1faXNEaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5n
ZVN1cHByZXNzZWQ7CisgICAgYm9vbCBtX2lzRGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VT
dXBwcmVzc2VkIHsgZmFsc2UgfTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKaW5kZXggMmM4OWI2Y2JhNTA2ODBiOTcyZGM1NWZjNGIyNGM0ODkwZmFlYjgyNC4uOGEx
NjM5MWZiYjg2YmNjYjc0ZmZlNWM0MWZmNWE1ODY2Y2U3ZWE2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCkBAIC0xMjMsNyArMTIzLDcgQEAgcHVibGljOgogICAgIC8vIGNyZWF0ZWQg
UGFnZSBoYXMgaXRzIHNob3cgbWV0aG9kIGNhbGxlZC4KICAgICAvLyBUaGUgRnJhbWVMb2FkUmVx
dWVzdCBwYXJhbWV0ZXIgaXMgb25seSBmb3IgQ2hyb21lQ2xpZW50IHRvIGNoZWNrIGlmIHRoZQog
ICAgIC8vIHJlcXVlc3QgY291bGQgYmUgZnVsZmlsbGVkLiBUaGUgQ2hyb21lQ2xpZW50IHNob3Vs
ZCBub3QgbG9hZCB0aGUgcmVxdWVzdC4KLSAgICB2aXJ0dWFsIFBhZ2UqIGNyZWF0ZVdpbmRvdyhG
cmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYsIGNv
bnN0IE5hdmlnYXRpb25BY3Rpb24mKSA9IDA7CisgICAgdmlydHVhbCBQYWdlKiBjcmVhdGVXaW5k
b3coRnJhbWUmLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMm
LCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzaG93KCkg
PSAwOwogCiAgICAgdmlydHVhbCBib29sIGNhblJ1bk1vZGFsKCkgPSAwOwpAQCAtMTQ2LDYzICsx
NDYsNjcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1l
c3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
SUQpID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBydW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSYpID0g
MDsKIAogICAgIHZpcnR1YWwgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSA9IDA7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiwgY29uc3QgU3RyaW5nJikgPSAwOwot
ICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSosIGNvbnN0IFN0cmlu
ZyYpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSosIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYg
cmVzdWx0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYs
IGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZp
cm0oRnJhbWUmLCBjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCBib29sIHJ1bkphdmFT
Y3JpcHRQcm9tcHQoRnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRT
dGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIEtleWJvYXJkVUlN
b2RlIGtleWJvYXJkVUlNb2RlKCkgPSAwOwogCi0gICAgLy8gTWV0aG9kcyB1c2VkIGJ5IEhvc3RX
aW5kb3cuCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzSW1tZWRpYXRlSW52YWxpZGF0aW9uKCkg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNv
bnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0Fu
ZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRh
dGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVj
dCYpID0gMDsKKwogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0dWFsIHZv
aWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50JikgPSAwOwogI2VuZGlm
CisKICAgICB2aXJ0dWFsIEludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQm
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3Qg
SW50UmVjdCYpIGNvbnN0ID0gMDsKKwogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIElu
dFBvaW50IGFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JikgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgSW50UmVjdCByb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVl
bihjb25zdCBJbnRSZWN0JikgY29uc3QgPSAwOwogI2VuZGlmICAgIAorCiAgICAgdmlydHVhbCBQ
bGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0ID0gMDsKKwogI2lmIEVO
QUJMRShDVVJTT1JfU1VQUE9SVCkKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1
cnNvciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1v
dmVzKGJvb2wpID0gMDsKICNlbmRpZgorCiAjaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFN
RV9USU1FUikKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKSA9IDA7CiAjZW5k
aWYKLSAgICAvLyBFbmQgbWV0aG9kcyB1c2VkIGJ5IEhvc3RXaW5kb3cuCiAKLSAgICB2aXJ0dWFs
IEZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxDaHJvbWVD
bGllbnQqPih0aGlzKS0+d2luZG93UmVjdCgpLnNpemUoKTsgfQotICAgIHZpcnR1YWwgRmxvYXRT
aXplIGF2YWlsYWJsZVNjcmVlblNpemUoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PENocm9t
ZUNsaWVudCo+KHRoaXMpLT53aW5kb3dSZWN0KCkuc2l6ZSgpOyB9CisgICAgdmlydHVhbCBGbG9h
dFNpemUgc2NyZWVuU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Q2hyb21lQ2xpZW50
Jj4oKnRoaXMpLndpbmRvd1JlY3QoKS5zaXplKCk7IH0KKyAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBh
dmFpbGFibGVTY3JlZW5TaXplKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxDaHJvbWVDbGll
bnQmPigqdGhpcykud2luZG93UmVjdCgpLnNpemUoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRz
JikgY29uc3QgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFt
ZSosIGNvbnN0IEludFNpemUmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRz
U2l6ZUNoYW5nZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0IHsgfTsgLy8g
Q3VycmVudGx5IG9ubHkgTWFjIGhhcyBhIG5vbiBlbXB0eSBpbXBsZW1lbnRhdGlvbi4KIAogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihSZW5k
ZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xp
Y2tlZChFbGVtZW50KiwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0
b25DbGlja2VkKEVsZW1lbnQmLCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFi
aWxpdHlSZWFzb24pIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVy
RWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgPSAw
OwogCiAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgVGV4dERpcmVj
dGlvbikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHByaW50KEZyYW1lKikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBwcmludChGcmFtZSYpID0gMDsKIAogICAgIHZpcnR1YWwgQ29sb3IgdW5kZXJs
YXlDb2xvcigpIGNvbnN0IHsgcmV0dXJuIENvbG9yKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBw
YWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3JEaWRDaGFuZ2UoQ29sb3IpIGNvbnN0IHsgfQogCi0g
ICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0cmlu
ZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lJiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUs
IERhdGFiYXNlRGV0YWlscykgPSAwOwogCiAgICAgLy8gQ2FsbGJhY2sgaW52b2tlZCB3aGVuIHRo
ZSBhcHBsaWNhdGlvbiBjYWNoZSBmYWlscyB0byBzYXZlIGEgY2FjaGUgb2JqZWN0CiAgICAgLy8g
YmVjYXVzZSBzdG9yaW5nIGl0IHdvdWxkIGdyb3cgdGhlIGRhdGFiYXNlIGZpbGUgcGFzdCBpdHMg
ZGVmaW5lZCBtYXhpbXVtCkBAIC0yMTksNyArMjIzLDcgQEAgcHVibGljOgogICAgIC8vIHN0b3Jh
Z2UsIGluIGJ5dGVzLCBuZWVkZWQgdG8gc3RvcmUgdGhlIG5ldyBjYWNoZSBhbG9uZyB3aXRoIGFs
bCBvZiB0aGUKICAgICAvLyBvdGhlciBleGlzdGluZyBjYWNoZXMgZm9yIHRoZSBvcmlnaW4gdGhh
dCB3b3VsZCBub3QgYmUgcmVwbGFjZWQgYnkKICAgICAvLyB0aGUgbmV3IGNhY2hlLgotICAgIHZp
cnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3Jp
Z2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJl
YWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90
IHRvdGFsU3BhY2VOZWVkZWQpID0gMDsKIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkK
ICAgICB2aXJ0dWFsIHZvaWQgYW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKTsKQEAgLTIzNiwxMCAr
MjQwLDEwIEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRO
ZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoRnJhbWUqLCBib29sKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShGcmFtZSopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKEZyYW1lKikgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoRnJhbWUqKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhGcmFtZSYsIGJvb2wp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKEZyYW1lJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoRnJhbWUmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdG
cmFtZShGcmFtZSYpID0gMDsKIAogICAgIGVudW0gTGF5b3V0VHlwZSB7IE5vcm1hbExheW91dCwg
U2Nyb2xsIH07CiAgICAgdmlydHVhbCB2b2lkIGRpZExheW91dChMYXlvdXRUeXBlID0gTm9ybWFs
TGF5b3V0KSA9IDA7CkBAIC0yNzAsMTYgKzI3NCwxNiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPENv
bG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0
IENvbG9yJikgPSAwOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4g
Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCYsIGNvbnN0IENvbG9yJikgPSAw
OwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNo
b29zZXImKSA9IDA7CiAgICAgLy8gQXN5bmNocm9ub3VzIHJlcXVlc3QgdG8gbG9hZCBhbiBpY29u
IGZvciBzcGVjaWZpZWQgZmlsZW5hbWVzLgogICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZp
bGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXImKSA9IDA7CiAgICAgICAg
IAotICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgTm9kZSopIHsgfTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9kZSopIHsgfTsKLSAgICB2aXJ0
dWFsIHZvaWQgZWxlbWVudERpZFJlZm9jdXMoY29uc3QgTm9kZSopIHsgfTsKKyAgICB2aXJ0dWFs
IHZvaWQgZWxlbWVudERpZEZvY3VzKEVsZW1lbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZWxl
bWVudERpZEJsdXIoRWxlbWVudCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkUmVm
b2N1cyhFbGVtZW50JikgeyB9CiAgICAgCiAgICAgdmlydHVhbCBib29sIHNob3VsZFBhaW50RW50
aXJlQ29udGVudHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBo
YXNTdGFibGVQYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC0yOTEs
OSArMjk1LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9u
aXRvcj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKSBjb25z
dCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKIAotICAgIC8vIFBhc3MgMCBhcyB0aGUgR3Jh
cGhpY3NMYXllciB0byBkZXRhdGNoIHRoZSByb290IGxheWVyLgotICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBo
aWNzTGF5ZXIqKSA9IDA7CisgICAgLy8gUGFzcyBudWxscHRyIGFzIHRoZSBHcmFwaGljc0xheWVy
IHRvIGRldGF0Y2ggdGhlIHJvb3QgbGF5ZXIuCisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RH
cmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciop
ID0gMDsKICAgICAvLyBTZXRzIGEgZmxhZyB0byBzcGVjaWZ5IHRoYXQgdGhlIG5leHQgdGltZSBj
b250ZW50IGlzIGRyYXduIHRvIHRoZSB3aW5kb3csCiAgICAgLy8gdGhlIGNoYW5nZXMgYXBwZWFy
IG9uIHRoZSBzY3JlZW4gaW4gc3luY2hyb255IHdpdGggdXBkYXRlcyB0byBHcmFwaGljc0xheWVy
cy4KICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlv
bigpID0gMDsKQEAgLTMyNSwyNiArMzI5LDI4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9v
bCBhZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6Rmxh
Z3MpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2Nyb2xsaW5n
Q29vcmRpbmF0b3I+IGNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UqKSBjb25zdCB7IHJl
dHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+
IGNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UmKSBjb25zdCB7IHJldHVybiBudWxscHRy
OyB9CiAKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgdmlydHVh
bCBHcmFwaGljc0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2aWNlQWRhcHRlcigpIGNvbnN0IHsg
cmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIEdyYXBoaWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NE
ZXZpY2VBZGFwdGVyKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKICAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oSFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSB7IHJldHVybiBmYWxzZTsgfQorCiAjaWYgRU5BQkxFKFZJ
REVPKQogICAgIHZpcnR1YWwgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVu
dChIVE1MVmlkZW9FbGVtZW50JiwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdl
cihIVE1MTWVkaWFFbGVtZW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyUGxheWJhY2tD
b250cm9sc01hbmFnZXIoKSB7IH0KICNlbmRpZgotICAgIHZpcnR1YWwgdm9pZCBleGl0VmlkZW9G
dWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRp
b24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSAvKnRhcmdldE1vZGUqLykgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQg
ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JikgeyB9
CisgICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0
aW9uKEhUTUxWaWRlb0VsZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbk1vZGUpIHsgfQogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRl
b1BsYXliYWNrKCkgeyByZXR1cm4gZmFsc2U7IH0gCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3Qg
RWxlbWVudCosIGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBleGl0
RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmLCBib29sKSB7IHJldHVybiBm
YWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1l
bnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1l
bnQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdEZ1bGxTY3JlZW5MYXllcihHcmFwaGlj
c0xheWVyKikgeyB9CiAjZW5kaWYKIApAQCAtMzUzLDcgKzM1OSw3IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdmlydHVhbCBOU1Jlc3BvbmRlciAqZmlyc3RS
ZXNwb25kZXIoKSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBOU1Jlc3BvbmRlciAqZmlyc3RS
ZXNwb25kZXIoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIG1ha2VGaXJz
dFJlc3BvbmRlcihOU1Jlc3BvbmRlciAqKSB7IH0KICAgICAvLyBGb2N1c2VzIG9uIHRoZSBjb250
YWluaW5nIHZpZXcgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcGFnZS4KICAgICB2aXJ0dWFsIHZvaWQg
bWFrZUZpcnN0UmVzcG9uZGVyKCkgeyB9CkBAIC0zNzcsMTAgKzM4MywxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJl
Y3Rpb24oKSA9IDA7CiAgICAgLy8gQ2hlY2tzIGlmIHRoZXJlIGlzIGFuIG9wZW5lZCBwb3B1cCwg
Y2FsbGVkIGJ5IFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKS4KICAgICB2aXJ0dWFsIGJvb2wg
aGFzT3BlbmVkUG9wdXAoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBSZWZQdHI8UG9wdXBNZW51
PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgPSAwOwotICAgIHZpcnR1
YWwgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVu
dUNsaWVudCopIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxQb3B1cE1lbnU+IGNyZWF0
ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBSZWZQ
dHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
JikgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlv
bikgeyB9CisgICAgdmlydHVhbCB2b2lkIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QmLCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbikgeyB9CiAK
ICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25z
dCBJbnRSZWN0JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5
bGVEaWRDaGFuZ2UoU2Nyb2xsYmFyU3R5bGUpIHsgfQpAQCAtNDA4LDE2ICs0MTQsMTYgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVj
dG9yPFJlZlB0cjxFbGVtZW50Pj4mKSB7IH07CiAgICAgdmlydHVhbCBib29sIHNob3VsZE5vdGlm
eU9uRm9ybUNoYW5nZXMoKSB7IHJldHVybiBmYWxzZTsgfTsKIAotICAgIHZpcnR1YWwgdm9pZCBk
aWRBZGRIZWFkZXJMYXllcihHcmFwaGljc0xheWVyKikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZEFkZEZvb3RlckxheWVyKEdyYXBoaWNzTGF5ZXIqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlk
QWRkSGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXllciYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRB
ZGRGb290ZXJMYXllcihHcmFwaGljc0xheWVyJikgeyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyopIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0Zv
ckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncywgdWludDY0X3QpIHsgfQogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04p
CiAgICAgdmlydHVhbCB2b2lkIGhhc01lZGlhU2Vzc2lvbldpdGhBY3RpdmVNZWRpYUVsZW1lbnRz
RGlkQ2hhbmdlKGJvb2wpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBtZWRpYVNlc3Npb25NZXRhZGF0
YURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpNZWRpYVNlc3Npb25NZXRhZGF0YSYpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZShjb25zdCBNZWRpYVNl
c3Npb25NZXRhZGF0YSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkQ29udGVudE1lZGlh
RWxlbWVudERpZENoYW5nZSh1aW50NjRfdCkgeyB9CiAjZW5kaWYKIApAQCAtNDI3LDExICs0MzMs
MTIgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoVEVMRVBIT05FX05VTUJFUl9ERVRF
Q1RJT04pICYmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlVGVsZXBob25l
TnVtYmVyQ2xpY2soY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlVGVsZXBob25lTnVtYmVyQ2xpY2soY29uc3QgU3RyaW5n
JiwgY29uc3QgSW50UG9pbnQmKSB7IH0KICNlbmRpZgorCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09O
VFJPTFMpCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhXZWJD
b3JlOjpGcmFtZVNlbGVjdGlvbiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsZXZhbnRTZWxlY3Rpb25T
ZXJ2aWNlcyhib29sIC8qIGlzVGV4dE9ubHkgKi8pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhGcmFtZVNlbGVjdGlv
biYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgSW50UG9pbnQmKSB7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgaGFzUmVsZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcyhib29sIC8qaXNUZXh0T25seSov
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkRGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpA
QCAtNDQxLDEzICs0NDgsMTMgQEAgcHVibGljOgogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFD
S19UQVJHRVQpCiAgICAgdmlydHVhbCB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
KHVpbnQ2NF90IC8qY29udGV4dElkKi8pIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCAvKmNvbnRleHRJZCovKSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IC8qY29udGV4dElk
Ki8sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCAvKiBpc1ZpZGVvICovKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IC8qY29udGV4
dElkKi8sIGNvbnN0IEludFBvaW50JiwgYm9vbCAvKmlzVmlkZW8qLykgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UodWludDY0X3Qg
Lypjb250ZXh0SWQqLywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wp
ICB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJT
dGF0ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6
U3RhdGUpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpTdGF0
ZSkgeyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBpbWFnZU9yTWVkaWFEb2N1bWVudFNp
emVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
aW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZChjb25zdCBJbnRTaXplJikgeyB9CiAKICNp
ZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpCiAgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyhjb25zdCBTdHJpbmcmIC8qZGV0YWlscyovLCBj
b25zdCBTdHJpbmcmIC8qZGVzY3JpcHRpb24qLywgTWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1p
c3NpbmdQbHVnaW5zQ2FsbGJhY2smKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4
dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCAwZTdhNzdiNmRhMjg5YTAyNTY5MzUzNGFkMWZjNGQ1
MTA5YzUwZjMzLi5jMWM0OTQ4NDAyODM4NDlmMTUyYmIyNzQ1ZjhhMWI0NjA2ZWVkM2U1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC05NCw3
ICs5NCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjbGVhckNvbnRleHRNZW51KCkK
ICAgICBtX21lbnVQcm92aWRlciA9IG51bGxwdHI7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KEV2ZW50KiBldmVudCkKK3ZvaWQgQ29udGV4
dE1lbnVDb250cm9sbGVyOjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KEV2ZW50JiBldmVudCkKIHsK
ICAgICBtX2NvbnRleHRNZW51ID0gbWF5YmVDcmVhdGVDb250ZXh0TWVudShldmVudCk7CiAgICAg
aWYgKCFtX2NvbnRleHRNZW51KQpAQCAtMTEwLDkgKzExMCw5IEBAIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8Q29udGV4dE1lbnVJdGVtPiBzZXBhcmF0b3JJdGVtKCkKICAgICByZXR1cm4gc3RkOjp1
bmlxdWVfcHRyPENvbnRleHRNZW51SXRlbT4obmV3IENvbnRleHRNZW51SXRlbShTZXBhcmF0b3JU
eXBlLCBDb250ZXh0TWVudUl0ZW1UYWdOb0FjdGlvbiwgU3RyaW5nKCkpKTsKIH0KIAotdm9pZCBD
b250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCogZXZlbnQsIFBhc3NS
ZWZQdHI8Q29udGV4dE1lbnVQcm92aWRlcj4gbWVudVByb3ZpZGVyKQordm9pZCBDb250ZXh0TWVu
dUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCYgZXZlbnQsIENvbnRleHRNZW51UHJv
dmlkZXImIHByb3ZpZGVyKQogewotICAgIG1fbWVudVByb3ZpZGVyID0gbWVudVByb3ZpZGVyOwor
ICAgIG1fbWVudVByb3ZpZGVyID0gJnByb3ZpZGVyOwogCiAgICAgbV9jb250ZXh0TWVudSA9IG1h
eWJlQ3JlYXRlQ29udGV4dE1lbnUoZXZlbnQpOwogICAgIGlmICghbV9jb250ZXh0TWVudSkgewpA
QCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4
dE1lbnUoRXZlbnQqIGV2ZW50LCBQYXNzUmVmUHRyPENvbnRleHRNZW51CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBtX21lbnVQcm92aWRlci0+cG9wdWxhdGVDb250ZXh0TWVudShtX2Nv
bnRleHRNZW51LmdldCgpKTsKKyAgICBwcm92aWRlci5wb3B1bGF0ZUNvbnRleHRNZW51KG1fY29u
dGV4dE1lbnUuZ2V0KCkpOwogICAgIGlmIChtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmlzU2Vs
ZWN0ZWQoKSkgewogICAgICAgICBhcHBlbmRJdGVtKCpzZXBhcmF0b3JJdGVtKCksIG1fY29udGV4
dE1lbnUuZ2V0KCkpOwogICAgICAgICBwb3B1bGF0ZSgpOwpAQCAtMTI5LDMzICsxMjksMzQgQEAg
dm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCogZXZlbnQs
IFBhc3NSZWZQdHI8Q29udGV4dE1lbnUKIH0KIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xT
KQorCiBzdGF0aWMgSW1hZ2UqIGltYWdlRnJvbUltYWdlRWxlbWVudE5vZGUoTm9kZSYgbm9kZSkK
IHsKLSAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbm9kZS5yZW5kZXJlcigpOworICAgIGF1
dG8qIHJlbmRlcmVyID0gbm9kZS5yZW5kZXJlcigpOwogICAgIGlmICghaXM8UmVuZGVySW1hZ2U+
KHJlbmRlcmVyKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgQ2FjaGVkSW1hZ2UqIGlt
YWdlID0gZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlcikuY2FjaGVkSW1hZ2UoKTsKKyAg
ICBhdXRvKiBpbWFnZSA9IGRvd25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIpLmNhY2hlZElt
YWdlKCk7CiAgICAgaWYgKCFpbWFnZSB8fCBpbWFnZS0+ZXJyb3JPY2N1cnJlZCgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLQogICAgIHJldHVybiBpbWFnZS0+aW1hZ2VGb3JSZW5kZXJlcihy
ZW5kZXJlcik7CiB9CisKICNlbmRpZgogCi1zdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IENv
bnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudCogZXZlbnQp
CitzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IENvbnRleHRNZW51Q29udHJvbGxlcjo6bWF5
YmVDcmVhdGVDb250ZXh0TWVudShFdmVudCYgZXZlbnQpCiB7Ci0gICAgQVNTRVJUKGV2ZW50KTsK
LSAgICAKLSAgICBpZiAoIWlzPE1vdXNlRXZlbnQ+KCpldmVudCkpCisgICAgaWYgKCFpczxNb3Vz
ZUV2ZW50PihldmVudCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgTW91c2VFdmVu
dCYgbW91c2VFdmVudCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+KCpldmVudCk7Ci0gICAgSGl0VGVz
dFJlc3VsdCByZXN1bHQobW91c2VFdmVudC5hYnNvbHV0ZUxvY2F0aW9uKCkpOworICAgIGF1dG8m
IG1vdXNlRXZlbnQgPSBkb3duY2FzdDxNb3VzZUV2ZW50PihldmVudCk7CisgICAgYXV0byogbm9k
ZSA9IG1vdXNlRXZlbnQudGFyZ2V0KCktPnRvTm9kZSgpOworICAgIGlmICghbm9kZSkKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgYXV0byogZnJhbWUgPSBub2RlLT5kb2N1bWVudCgpLmZy
YW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBO
b2RlKiBub2RlID0gZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKTsKLSAgICBpZiAoRnJhbWUqIGZy
YW1lID0gbm9kZS0+ZG9jdW1lbnQoKS5mcmFtZSgpKQotICAgICAgICByZXN1bHQgPSBmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQobW91c2VFdmVudC5hYnNvbHV0ZUxv
Y2F0aW9uKCkpOwotICAgIAorICAgIGF1dG8gcmVzdWx0ID0gZnJhbWUtPmV2ZW50SGFuZGxlcigp
LmhpdFRlc3RSZXN1bHRBdFBvaW50KG1vdXNlRXZlbnQuYWJzb2x1dGVMb2NhdGlvbigpKTsKICAg
ICBpZiAoIXJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKQEAgLTE2Myw3ICsxNjQsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IENv
bnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudAogCiAjaWYg
RU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgaWYgKG5vZGUtPmlzSW1hZ2VDb250cm9sc0J1
dHRvbkVsZW1lbnQoKSkgewotICAgICAgICBpZiAoSW1hZ2UqIGltYWdlID0gaW1hZ2VGcm9tSW1h
Z2VFbGVtZW50Tm9kZSgqcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKSkKKyAgICAgICAgaWYg
KGF1dG8qIGltYWdlID0gaW1hZ2VGcm9tSW1hZ2VFbGVtZW50Tm9kZSgqcmVzdWx0LmlubmVyTm9u
U2hhcmVkTm9kZSgpKSkKICAgICAgICAgICAgIG1fY29udGV4dC5zZXRDb250cm9sbGVkSW1hZ2Uo
aW1hZ2UpOwogCiAgICAgICAgIC8vIEZJWE1FOiBJZiB3ZSBjb3VsZG4ndCBnZXQgdGhlIGltYWdl
IHRoZW4gd2Ugc2hvdWxkbid0IHRyeSB0byBzaG93IHRoZSBpbWFnZSBjb250cm9scyBtZW51IGZv
ciBpdC4KQEAgLTE3MSwyNCArMTcyLDI0IEBAIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4g
Q29udGV4dE1lbnVDb250cm9sbGVyOjptYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50CiAgICAg
fQogI2VuZGlmCiAKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PihuZXcg
Q29udGV4dE1lbnUpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENvbnRleHRNZW51Pigp
OwogfQogCi12b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50
KiBldmVudCkKK3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZl
bnQmIGV2ZW50KQogewogICAgIGlmIChtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLmVuYWJs
ZWQoKSkKICAgICAgICAgYWRkSW5zcGVjdEVsZW1lbnRJdGVtKCk7CiAKLSAgICBldmVudC0+c2V0
RGVmYXVsdEhhbmRsZWQoKTsKKyAgICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgpOwogfQogCi1z
dGF0aWMgdm9pZCBvcGVuTmV3V2luZG93KGNvbnN0IFVSTCYgdXJsVG9Mb2FkLCBGcmFtZSogZnJh
bWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSkKK3N0YXRpYyB2b2lkIG9wZW5OZXdXaW5kb3coY29uc3QgVVJMJiB1cmxUb0xvYWQsIEZy
YW1lJiBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5KQogewotICAgIFBhZ2UqIG9sZFBhZ2UgPSBmcmFtZS0+cGFnZSgpOworICAg
IFBhZ2UqIG9sZFBhZ2UgPSBmcmFtZS5wYWdlKCk7CiAgICAgaWYgKCFvbGRQYWdlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QoZnJhbWUtPmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCh1cmxUb0xvYWQsIGZyYW1lLT5s
b2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9y
d2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlk
VVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcywgc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KGZyYW1lLmRvY3Vt
ZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCh1cmxUb0xvYWQsIGZyYW1l
LmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tG
b3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFs
aWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzLCBzaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5KTsKIAogICAgIFBhZ2UqIG5ld1BhZ2UgPSBvbGRQYWdlLT5jaHJvbWUo
KS5jcmVhdGVXaW5kb3coZnJhbWUsIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIE5hdmlnYXRp
b25BY3Rpb24ocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSkpOwogICAgIGlmICghbmV3UGFnZSkK
QEAgLTE5OCwxNSArMTk5LDE3IEBAIHN0YXRpYyB2b2lkIG9wZW5OZXdXaW5kb3coY29uc3QgVVJM
JiB1cmxUb0xvYWQsIEZyYW1lKiBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsCiB9CiAKICNpZiBQ
TEFURk9STShHVEspCi1zdGF0aWMgdm9pZCBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKFVDaGFyIGNo
YXJhY3RlciwgRnJhbWUqIGZyYW1lKQorCitzdGF0aWMgdm9pZCBpbnNlcnRVbmljb2RlQ2hhcmFj
dGVyKFVDaGFyIGNoYXJhY3RlciwgRnJhbWUmIGZyYW1lKQogewogICAgIFN0cmluZyB0ZXh0KCZj
aGFyYWN0ZXIsIDEpOwotICAgIGlmICghZnJhbWUtPmVkaXRvcigpLnNob3VsZEluc2VydFRleHQo
dGV4dCwgZnJhbWUtPnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCksIEVkaXRv
ckluc2VydEFjdGlvbjo6VHlwZWQpKQorICAgIGlmICghZnJhbWUuZWRpdG9yKCkuc2hvdWxkSW5z
ZXJ0VGV4dCh0ZXh0LCBmcmFtZS5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgp
LCBFZGl0b3JJbnNlcnRBY3Rpb246OlR5cGVkKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNT
RVJUKGZyYW1lLT5kb2N1bWVudCgpKTsKLSAgICBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KCpm
cmFtZS0+ZG9jdW1lbnQoKSwgdGV4dCwgMCwgVHlwaW5nQ29tbWFuZDo6VGV4dENvbXBvc2l0aW9u
Tm9uZSk7CisgICAgQVNTRVJUKGZyYW1lLmRvY3VtZW50KCkpOworICAgIFR5cGluZ0NvbW1hbmQ6
Omluc2VydFRleHQoKmZyYW1lLmRvY3VtZW50KCksIHRleHQsIDAsIFR5cGluZ0NvbW1hbmQ6OlRl
eHRDb21wb3NpdGlvbk5vbmUpOwogfQorCiAjZW5kaWYKIAogdm9pZCBDb250ZXh0TWVudUNvbnRy
b2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSkKQEAgLTIyNSw3ICsyMjgsNyBAQCB2b2lkIENvbnRleHRNZW51
Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0
aW9uLCBjbwogCiAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ09wZW5MaW5rSW5OZXdXaW5kb3c6Ci0gICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0
LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgZnJhbWUsIFNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93RXh0ZXJuYWxTY2hlbWVzKTsKKyAgICAgICAgb3Bl
bk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCAq
ZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93RXh0ZXJuYWxT
Y2hlbWVzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdEb3du
bG9hZExpbmtUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIGRheSB3ZSBzaG91bGQgYmUg
YWJsZSB0byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUuIChCdWcgMTE3NzA5KQpAQCAtMjM1
LDcgKzIzOCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1T
ZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgICAgIGZyYW1lLT5lZGl0
b3IoKS5jb3B5VVJMKG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCks
IG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkudGV4dENvbnRlbnQoKSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3c6Ci0gICAg
ICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUltYWdl
VVJMKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxv
dyk7CisgICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNv
bHV0ZUltYWdlVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hv
dWxkTm90QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z0Rvd25sb2FkSW1hZ2VUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIGRheSB3ZSBzaG91
bGQgYmUgYWJsZSB0byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUuIChCdWcgMTE3NzA5KQpA
QCAtMjUyLDcgKzI1NSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVu
dUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgICAgIGJyZWFr
OwogI2VuZGlmCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRv
dzoKLSAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29s
dXRlTWVkaWFVUkwoKSwgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3Vs
ZE5vdEFsbG93KTsKKyAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3Vs
dCgpLmFic29sdXRlTWVkaWFVUkwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnRG93bmxvYWRNZWRpYVRvRGlzazoKICAgICAgICAgLy8gRklYTUU6IFNvbWUgZGF5
IHdlIHNob3VsZCBiZSBhYmxlIHRvIGRvIHRoaXMgZnJvbSB3aXRoaW4gV2ViQ29yZS4gKEJ1ZyAx
MTc3MDkpCkBAIC0yODUsOSArMjg4LDkgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNv
bnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KICAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93OiB7CiAgICAgICAgIERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIgPSBmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKTsK
ICAgICAgICAgaWYgKCFsb2FkZXItPnVucmVhY2hhYmxlVVJMKCkuaXNFbXB0eSgpKQotICAgICAg
ICAgICAgb3Blbk5ld1dpbmRvdyhsb2FkZXItPnVucmVhY2hhYmxlVVJMKCksIGZyYW1lLCBTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgICAgICAgICBv
cGVuTmV3V2luZG93KGxvYWRlci0+dW5yZWFjaGFibGVVUkwoKSwgKmZyYW1lLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIG9wZW5OZXdXaW5kb3cobG9hZGVyLT51cmwoKSwgZnJhbWUsIFNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICAgICAgICAgIG9wZW5OZXdXaW5k
b3cobG9hZGVyLT51cmwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpT
aG91bGROb3RBbGxvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIENvbnRleHRN
ZW51SXRlbVRhZ0NvcHk6CkBAIC0zMTgsMzQgKzMyMSwzNCBAQCB2b2lkIENvbnRleHRNZW51Q29u
dHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9u
LCBjbwogICAgICAgICBmcmFtZS0+ZWRpdG9yKCkucGVyZm9ybURlbGV0ZSgpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRMUk1NYXJrOgot
ICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0TWFyaywgZnJhbWUpOwor
ICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0TWFyaywgKmZyYW1lKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0
UkxNTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdodFRvTGVmdE1hcmss
IGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdodFRvTGVmdE1hcmss
ICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5p
Y29kZUluc2VydExSRU1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIobGVmdFRv
UmlnaHRFbWJlZCwgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRU
b1JpZ2h0RW1iZWQsICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnVW5pY29kZUluc2VydFJMRU1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFy
YWN0ZXIocmlnaHRUb0xlZnRFbWJlZCwgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hh
cmFjdGVyKHJpZ2h0VG9MZWZ0RW1iZWQsICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydExST01hcms6Ci0gICAgICAgIGluc2Vy
dFVuaWNvZGVDaGFyYWN0ZXIobGVmdFRvUmlnaHRPdmVycmlkZSwgZnJhbWUpOworICAgICAgICBp
bnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0T3ZlcnJpZGUsICpmcmFtZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydFJMT01h
cms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRPdmVycmlkZSwg
ZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHJpZ2h0VG9MZWZ0T3ZlcnJp
ZGUsICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
VW5pY29kZUluc2VydFBERk1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIocG9w
RGlyZWN0aW9uYWxGb3JtYXR0aW5nLCBmcmFtZSk7CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFy
YWN0ZXIocG9wRGlyZWN0aW9uYWxGb3JtYXR0aW5nLCAqZnJhbWUpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRaV1NNYXJrOgotICAgICAg
ICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHplcm9XaWR0aFNwYWNlLCBmcmFtZSk7CisgICAgICAg
IGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoU3BhY2UsICpmcmFtZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydFpXSk1hcms6
Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoSm9pbmVyLCBmcmFtZSk7
CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoSm9pbmVyLCAqZnJhbWUp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNl
cnRaV05KTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rlcih6ZXJvV2lkdGhOb25K
b2luZXIsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rlcih6ZXJvV2lkdGhO
b25Kb2luZXIsICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShFRkwpCkBAIC0zOTMsNyArMzk2LDcgQEAgdm9pZCBDb250ZXh0TWVu
dUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFj
dGlvbiwgY28KICAgICAgICAgaWYgKEZyYW1lKiB0YXJnZXRGcmFtZSA9IG1fY29udGV4dC5oaXRU
ZXN0UmVzdWx0KCkudGFyZ2V0RnJhbWUoKSkKICAgICAgICAgICAgIHRhcmdldEZyYW1lLT5sb2Fk
ZXIoKS5sb2FkRnJhbWVSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUtPmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdChtX2NvbnRleHQuaGl0VGVzdFJlc3Vs
dCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFtZS0+bG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigp
KSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVm
ZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBv
bGljeTo6U3VwcHJlc3MsIHRhcmdldEZyYW1lLT5pc01haW5GcmFtZSgpID8gU2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3cgOiBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5OjpTaG91bGROb3RBbGxvdyksIG51bGxwdHIsIG51bGxwdHIpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1
dGVMaW5rVVJMKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRB
bGxvdyk7CisgICAgICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0
KCkuYWJzb2x1dGVMaW5rVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eTo6U2hvdWxkQWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ0JvbGQ6CiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5jb21tYW5kKCJUb2dnbGVCb2xkIiku
ZXhlY3V0ZSgpOwpAQCAtMTQyOSwyNiArMTQzMiwzMCBAQCB2b2lkIENvbnRleHRNZW51Q29udHJv
bGxlcjo6Y2hlY2tPckVuYWJsZUlmTmVlZGVkKENvbnRleHRNZW51SXRlbSYgaXRlbSkgY29uc3QK
IH0KIAogI2lmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCi12b2lkIENvbnRleHRN
ZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51QXQoRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRQ
b2ludCYgY2xpY2tQb2ludCkKKwordm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250
ZXh0TWVudUF0KEZyYW1lJiBmcmFtZSwgY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQpCiB7CiAg
ICAgY2xlYXJDb250ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xpY2sgaW4g
dGhlIG1pZGRsZSBvZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCiAgICAgUGxhdGZvcm1Nb3Vz
ZUV2ZW50IG1vdXNlRXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGN1cnJlbnRUaW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOwotICAgIGZyYW1lLT5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VFdmVudCk7Ci0gICAgYm9vbCBoYW5k
bGVkID0gZnJhbWUtPmV2ZW50SGFuZGxlcigpLnNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZl
bnQpOworICAgIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3Vz
ZUV2ZW50KTsKKyAgICBib29sIGhhbmRsZWQgPSBmcmFtZS5ldmVudEhhbmRsZXIoKS5zZW5kQ29u
dGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKICAgICBpZiAoaGFuZGxlZCkKICAgICAgICAgbV9j
bGllbnQuc2hvd0NvbnRleHRNZW51KCk7CiB9CisKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfQ09OVFJPTFMpCi12b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0ltYWdlQ29udHJv
bHNNZW51KEV2ZW50KiBldmVudCkKKwordm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dJ
bWFnZUNvbnRyb2xzTWVudShFdmVudCYgZXZlbnQpCiB7CiAgICAgY2xlYXJDb250ZXh0TWVudSgp
OwogICAgIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoZXZlbnQpOwogICAgIG1fY2xpZW50LnNob3dD
b250ZXh0TWVudSgpOwogfQorCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmgKaW5kZXggMTEyNTZlMWNl
NzlhYjFlN2IzMjE1OGY3ODRkYzc4ODEzNjQ3NGQ4ZC4uZjYzOTY0OGIxODYyMDQ2MDZlZmNhNTZh
OTA3ODJjODkzN2EwZTk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0
TWVudUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI5LDIxICsyOSwxNiBAQAogCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVD
b250ZXh0LmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVJdGVtLmgiCi0jaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ29udGV4dE1lbnU7CiBj
bGFzcyBDb250ZXh0TWVudUNsaWVudDsKLWNsYXNzIENvbnRleHRNZW51SXRlbTsKIGNsYXNzIENv
bnRleHRNZW51UHJvdmlkZXI7CiBjbGFzcyBFdmVudDsKIGNsYXNzIFBhZ2U7CiAKIGNsYXNzIENv
bnRleHRNZW51Q29udHJvbGxlciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29udGV4dE1l
bnVDb250cm9sbGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgQ29udGV4dE1lbnVDb250cm9sbGVyKFBhZ2UmLCBD
b250ZXh0TWVudUNsaWVudCYpOwogICAgIH5Db250ZXh0TWVudUNvbnRyb2xsZXIoKTsKQEAgLTU0
LDggKzQ5LDggQEAgcHVibGljOgogICAgIENvbnRleHRNZW51KiBjb250ZXh0TWVudSgpIGNvbnN0
IHsgcmV0dXJuIG1fY29udGV4dE1lbnUuZ2V0KCk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGNsZWFyQ29udGV4dE1lbnUoKTsKIAotICAgIHZvaWQgaGFuZGxlQ29udGV4dE1lbnVFdmVudChF
dmVudCopOwotICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KEV2ZW50KiwgUGFzc1JlZlB0cjxDb250
ZXh0TWVudVByb3ZpZGVyPik7CisgICAgdm9pZCBoYW5kbGVDb250ZXh0TWVudUV2ZW50KEV2ZW50
Jik7CisgICAgdm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQmLCBDb250ZXh0TWVudVByb3ZpZGVy
Jik7CiAKICAgICB2b2lkIHBvcHVsYXRlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb250
ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSk7CkBAIC02OCwxNiArNjMsMTYgQEAgcHVibGljOgogICAgIGNvbnN0IEhpdFRlc3RSZXN1bHQm
IGhpdFRlc3RSZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgp
OyB9CiAKICNpZiBVU0UoQUNDRVNTSUJJTElUWV9DT05URVhUX01FTlVTKQotICAgIHZvaWQgc2hv
d0NvbnRleHRNZW51QXQoRnJhbWUqLCBjb25zdCBJbnRQb2ludCYgY2xpY2tQb2ludCk7CisgICAg
dm9pZCBzaG93Q29udGV4dE1lbnVBdChGcmFtZSYsIGNvbnN0IEludFBvaW50JiBjbGlja1BvaW50
KTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAgdm9pZCBzaG93
SW1hZ2VDb250cm9sc01lbnUoRXZlbnQqKTsKKyAgICB2b2lkIHNob3dJbWFnZUNvbnRyb2xzTWVu
dShFdmVudCYpOwogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgc3RkOjp1bmlxdWVfcHRyPENvbnRl
eHRNZW51PiBtYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50Kik7Ci0gICAgdm9pZCBzaG93Q29u
dGV4dE1lbnUoRXZlbnQqKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IG1heWJl
Q3JlYXRlQ29udGV4dE1lbnUoRXZlbnQmKTsKKyAgICB2b2lkIHNob3dDb250ZXh0TWVudShFdmVu
dCYpOwogICAgIAogICAgIHZvaWQgYXBwZW5kSXRlbShDb250ZXh0TWVudUl0ZW0mLCBDb250ZXh0
TWVudSogcGFyZW50TWVudSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
VGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKaW5kZXggOGMyNzM4
MWFkNjliYzJlYWI5MjMyZjI4YWE1NzYwNTAzYjZkYjE4ZC4uNmJiODk2MWQ5Y2U4MjhhOTgyNTQy
NTkwMDEyNmY4ZTViZGE3YzM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01U
aW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKQEAgLTM2MSw3
ICszNjEsNyBAQCB2b2lkIERPTVRpbWVyOjpmaXJlZCgpCiAgICAgICAgIGlmIChXS09ic2VydmVk
Q29udGVudENoYW5nZSgpID09IFdLQ29udGVudFZpc2liaWxpdHlDaGFuZ2UgfHwgc2hvdWxkUmVw
b3J0TGFja09mQ2hhbmdlcykgewogICAgICAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93
bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOwogICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBk
b2N1bWVudC5wYWdlKCkpCi0gICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCku
b2JzZXJ2ZWRDb250ZW50Q2hhbmdlKGRvY3VtZW50LmZyYW1lKCkpOworICAgICAgICAgICAgICAg
IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLm9ic2VydmVkQ29udGVudENoYW5nZSgqZG9jdW1lbnQu
ZnJhbWUoKSk7CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcAppbmRleCA5Njk5NjUwMzhhMjY1ZGQ3MTgwOGM2YWZkZjBiMjBkZDUyZWI2NGE0Li42MjY5
NjczMDlhNWE3M2EzODczOGMwMTc4ZTJiYzY2MWZiMzBjMjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NywgMjAwOCwgMjAxMCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbmNsdWRl
ICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJCYXJQcm9wLmgiCi0jaW5jbHVk
ZSAiQmVmb3JlVW5sb2FkRXZlbnQuaCIKICNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uaCIKICNpbmNsdWRlICJDU1NSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTUnVsZUxpc3QuaCIK
QEAgLTEyNSwyMiArMTI0LDIzIEBACiAjaW5jbHVkZSAiV2ViS2l0TmFtZXNwYWNlLmgiCiAjZW5k
aWYKIAotI2lmIEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQotI2luY2x1ZGUgIkRldmljZVByb3hp
bWl0eUNvbnRyb2xsZXIuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEdBTUVQQUQpCiAjaW5jbHVk
ZSAiR2FtZXBhZE1hbmFnZXIuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQor
I2luY2x1ZGUgIk5hdmlnYXRvckdlb2xvY2F0aW9uLmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShQ
T0lOVEVSX0xPQ0spCiAjaW5jbHVkZSAiUG9pbnRlckxvY2tDb250cm9sbGVyLmgiCiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKElPUykKLSNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCi0jaW5jbHVkZSAi
TmF2aWdhdG9yR2VvbG9jYXRpb24uaCIKKyNpZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKKyNp
bmNsdWRlICJEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmgiCiAjZW5kaWYKKworI2lmIFBMQVRG
T1JNKElPUykKICNpbmNsdWRlICJXS0NvbnRlbnRPYnNlcnZhdGlvbi5oIgogI2VuZGlmCiAKQEAg
LTE1MCw5ICsxNTAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBvc3RNZXNzYWdl
VGltZXIgOiBwdWJsaWMgVGltZXJCYXNlIHsKIHB1YmxpYzoKLSAgICBQb3N0TWVzc2FnZVRpbWVy
KERPTVdpbmRvdyYgd2luZG93LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIERPTVdpbmRvdyYgc291cmNlLCBzdGQ6
OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzLCBSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+JiYgdGFyZ2V0T3JpZ2luLCBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiYmIHN0
YWNrVHJhY2UpCisgICAgUG9zdE1lc3NhZ2VUaW1lcihET01XaW5kb3cmIHdpbmRvdywgUmVmPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdp
biwgRE9NV2luZG93JiBzb3VyY2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxB
cnJheT4gY2hhbm5lbHMsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiB0YXJnZXRPcmlnaW4sIFJl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2tUcmFjZSkKICAgICAgICAgOiBtX3dpbmRvdyh3
aW5kb3cpCi0gICAgICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCisgICAgICAgICwgbV9tZXNzYWdl
KFdURk1vdmUobWVzc2FnZSkpCiAgICAgICAgICwgbV9vcmlnaW4oc291cmNlT3JpZ2luKQogICAg
ICAgICAsIG1fc291cmNlKHNvdXJjZSkKICAgICAgICAgLCBtX2NoYW5uZWxzKFdURk1vdmUoY2hh
bm5lbHMpKQpAQCAtMTgxLDcgKzE4MSw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgUmVmPERP
TVdpbmRvdz4gbV93aW5kb3c7Ci0gICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9t
ZXNzYWdlOworICAgIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fbWVzc2FnZTsKICAgICBT
dHJpbmcgbV9vcmlnaW47CiAgICAgUmVmPERPTVdpbmRvdz4gbV9zb3VyY2U7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBtX2NoYW5uZWxzOwpAQCAtMzI1LDEy
ICszMjUsMTAgQEAgdm9pZCBET01XaW5kb3c6OmRpc3BhdGNoQWxsUGVuZGluZ1VubG9hZEV2ZW50
cygpCiAvLyAzKSBDb25zdHJhaW5zIHRoZSB3aW5kb3cgcmVjdCB0byB3aXRoaW4gdGhlIHRvcCBh
bmQgbGVmdCBib3VuZGFyaWVzIG9mIHRoZSBhdmFpbGFibGUgc2NyZWVuIHJlY3QuCiAvLyA0KSBD
b25zdHJhaW5zIHRoZSB3aW5kb3cgcmVjdCB0byB3aXRoaW4gdGhlIGJvdHRvbSBhbmQgcmlnaHQg
Ym91bmRhcmllcyBvZiB0aGUgYXZhaWxhYmxlIHNjcmVlbiByZWN0LgogLy8gNSkgVHJhbnNsYXRl
IHRoZSB3aW5kb3cgcmVjdCBjb29yZGluYXRlcyB0byBiZSB3aXRoaW4gdGhlIGNvb3JkaW5hdGUg
c3BhY2Ugb2YgdGhlIHNjcmVlbi4KLUZsb2F0UmVjdCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1Jl
Y3QoUGFnZSogcGFnZSwgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcykKK0Zsb2F0UmVj
dCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSYgcGFnZSwgY29uc3QgRmxvYXRSZWN0
JiBwZW5kaW5nQ2hhbmdlcykKIHsKLSAgICBBU1NFUlQocGFnZSk7Ci0KLSAgICBGbG9hdFJlY3Qg
c2NyZWVuID0gc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLT5tYWluRnJhbWUoKS52aWV3KCkpOwot
ICAgIEZsb2F0UmVjdCB3aW5kb3cgPSBwYWdlLT5jaHJvbWUoKS53aW5kb3dSZWN0KCk7CisgICAg
RmxvYXRSZWN0IHNjcmVlbiA9IHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS5tYWluRnJhbWUoKS52
aWV3KCkpOworICAgIEZsb2F0UmVjdCB3aW5kb3cgPSBwYWdlLmNocm9tZSgpLndpbmRvd1JlY3Qo
KTsKIAogICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSBpbiBhIHZhbGlkIHN0YXRlIGJlZm9yZSBhZGp1
c3RpbmcgZGltZW5zaW9ucy4KICAgICBBU1NFUlQoc3RkOjppc2Zpbml0ZShzY3JlZW4ueCgpKSk7
CkBAIC0zNTIsNyArMzUwLDcgQEAgRmxvYXRSZWN0IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVj
dChQYWdlKiBwYWdlLCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2UKICAgICBpZiAoIXN0
ZDo6aXNuYW4ocGVuZGluZ0NoYW5nZXMuaGVpZ2h0KCkpKQogICAgICAgICB3aW5kb3cuc2V0SGVp
Z2h0KHBlbmRpbmdDaGFuZ2VzLmhlaWdodCgpKTsKIAotICAgIEZsb2F0U2l6ZSBtaW5pbXVtU2l6
ZSA9IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLm1pbmltdW1XaW5kb3dTaXplKCk7CisgICAgRmxv
YXRTaXplIG1pbmltdW1TaXplID0gcGFnZS5jaHJvbWUoKS5jbGllbnQoKS5taW5pbXVtV2luZG93
U2l6ZSgpOwogICAgIHdpbmRvdy5zZXRXaWR0aChzdGQ6Om1pbihzdGQ6Om1heChtaW5pbXVtU2l6
ZS53aWR0aCgpLCB3aW5kb3cud2lkdGgoKSksIHNjcmVlbi53aWR0aCgpKSk7CiAgICAgd2luZG93
LnNldEhlaWdodChzdGQ6Om1pbihzdGQ6Om1heChtaW5pbXVtU2l6ZS5oZWlnaHQoKSwgd2luZG93
LmhlaWdodCgpKSwgc2NyZWVuLmhlaWdodCgpKSk7CiAKQEAgLTM2MywzOCArMzYxLDMxIEBAIEZs
b2F0UmVjdCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSogcGFnZSwgY29uc3QgRmxv
YXRSZWN0JiBwZW5kaW5nQ2hhbmdlCiAgICAgcmV0dXJuIHdpbmRvdzsKIH0KIAotYm9vbCBET01X
aW5kb3c6OmFsbG93UG9wVXAoRnJhbWUqIGZpcnN0RnJhbWUpCitib29sIERPTVdpbmRvdzo6YWxs
b3dQb3BVcChGcmFtZSYgZmlyc3RGcmFtZSkKIHsKLSAgICBBU1NFUlQoZmlyc3RGcmFtZSk7Ci0g
ICAgCi0gICAgYXV0byYgc2V0dGluZ3MgPSBmaXJzdEZyYW1lLT5zZXR0aW5ncygpOwotCi0gICAg
aWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpIHx8IHNldHRpbmdz
LmFsbG93V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVyZSgpKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLQotICAgIHJldHVybiBzZXR0aW5ncy5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0
aWNhbGx5KCk7CisgICAgYXV0byYgc2V0dGluZ3MgPSBmaXJzdEZyYW1lLnNldHRpbmdzKCk7Cisg
ICAgcmV0dXJuIFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpCisgICAg
ICAgIHx8IHNldHRpbmdzLmFsbG93V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVyZSgpCisgICAg
ICAgIHx8IHNldHRpbmdzLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoKTsK
IH0KIAogYm9vbCBET01XaW5kb3c6OmFsbG93UG9wVXAoKQogewotICAgIHJldHVybiBtX2ZyYW1l
ICYmIGFsbG93UG9wVXAobV9mcmFtZSk7CisgICAgcmV0dXJuIG1fZnJhbWUgJiYgYWxsb3dQb3BV
cCgqbV9mcmFtZSk7CiB9CiAKLWJvb2wgRE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2coY29u
c3QgRnJhbWUqIGZyYW1lKQorYm9vbCBET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhjb25z
dCBGcmFtZSYgZnJhbWUpCiB7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCiAgICAgLy8gT3ZlcnJpZGUgc3VwcG9ydCBmb3IgbGF5b3V0IHRlc3RpbmcgcHVycG9zZXMu
Ci0gICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpIHsKKyAgICBpZiAo
YXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiB3
aW5kb3cgPSBkb2N1bWVudC0+ZG9tV2luZG93KCkpIHsKICAgICAgICAgICAgIGlmICh3aW5kb3ct
Pm1fY2FuU2hvd01vZGFsRGlhbG9nT3ZlcnJpZGUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHdp
bmRvdy0+bV9jYW5TaG93TW9kYWxEaWFsb2dPdmVycmlkZS52YWx1ZSgpOwogICAgICAgICB9CiAg
ICAgfQogCi0gICAgYXV0byogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgcmV0dXJuIHBhZ2Ug
PyBwYWdlLT5jaHJvbWUoKS5jYW5SdW5Nb2RhbCgpIDogZmFsc2U7CisgICAgYXV0byogcGFnZSA9
IGZyYW1lLnBhZ2UoKTsKKyAgICByZXR1cm4gcGFnZSAmJiBwYWdlLT5jaHJvbWUoKS5jYW5SdW5N
b2RhbCgpOwogfQogCiBzdGF0aWMgdm9pZCBsYW5ndWFnZXNDaGFuZ2VkQ2FsbGJhY2sodm9pZCog
Y29udGV4dCkKQEAgLTQwNywyMCArMzk4LDE4IEBAIHZvaWQgRE9NV2luZG93OjpzZXRDYW5TaG93
TW9kYWxEaWFsb2dPdmVycmlkZShib29sIGFsbG93KQogICAgIG1fY2FuU2hvd01vZGFsRGlhbG9n
T3ZlcnJpZGUgPSBhbGxvdzsKIH0KIAotRE9NV2luZG93OjpET01XaW5kb3coRG9jdW1lbnQqIGRv
Y3VtZW50KQotICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1lbnQpCi0gICAg
LCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1lbnQtPmZyYW1lKCkpCitET01XaW5kb3c6
OkRPTVdpbmRvdyhEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlcigmZG9jdW1lbnQpCisgICAgLCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1l
bnQuZnJhbWUoKSkKICAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBBU1NFUlQo
ZnJhbWUoKSk7Ci0gICAgQVNTRVJUKERPTVdpbmRvdzo6ZG9jdW1lbnQoKSk7Ci0KICAgICBhZGRM
YW5ndWFnZUNoYW5nZU9ic2VydmVyKHRoaXMsICZsYW5ndWFnZXNDaGFuZ2VkQ2FsbGJhY2spOwog
fQogCi12b2lkIERPTVdpbmRvdzo6ZGlkU2VjdXJlVHJhbnNpdGlvblRvKERvY3VtZW50KiBkb2N1
bWVudCkKK3ZvaWQgRE9NV2luZG93OjpkaWRTZWN1cmVUcmFuc2l0aW9uVG8oRG9jdW1lbnQmIGRv
Y3VtZW50KQogewotICAgIG9ic2VydmVDb250ZXh0KGRvY3VtZW50KTsKKyAgICBvYnNlcnZlQ29u
dGV4dCgmZG9jdW1lbnQpOwogfQogCiBET01XaW5kb3c6On5ET01XaW5kb3coKQpAQCAtNTQ3LDE0
ICs1MzYsMTQgQEAgdm9pZCBET01XaW5kb3c6OmRlY3JlbWVudEdhbWVwYWRFdmVudExpc3RlbmVy
Q291bnQoKQogCiAjZW5kaWYKIAotdm9pZCBET01XaW5kb3c6OnJlZ2lzdGVyUHJvcGVydHkoRE9N
V2luZG93UHJvcGVydHkqIHByb3BlcnR5KQordm9pZCBET01XaW5kb3c6OnJlZ2lzdGVyUHJvcGVy
dHkoRE9NV2luZG93UHJvcGVydHkmIHByb3BlcnR5KQogewotICAgIG1fcHJvcGVydGllcy5hZGQo
cHJvcGVydHkpOworICAgIG1fcHJvcGVydGllcy5hZGQoJnByb3BlcnR5KTsKIH0KIAotdm9pZCBE
T01XaW5kb3c6OnVucmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSogcHJvcGVydHkp
Cit2b2lkIERPTVdpbmRvdzo6dW5yZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5JiBw
cm9wZXJ0eSkKIHsKLSAgICBtX3Byb3BlcnRpZXMucmVtb3ZlKHByb3BlcnR5KTsKKyAgICBtX3By
b3BlcnRpZXMucmVtb3ZlKCZwcm9wZXJ0eSk7CiB9CiAKIHZvaWQgRE9NV2luZG93OjpyZXNldFVu
bGVzc1N1c3BlbmRlZEZvckRvY3VtZW50U3VzcGVuc2lvbigpCkBAIC05NzQsMjMgKzk2MywxOCBA
QCB2b2lkIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVkKFBvc3RNZXNzYWdlVGltZXIm
IHRpbWVyKQogICAgIGlmICghZG9jdW1lbnQoKSB8fCAhaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZy
YW1lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRpc3BhdGNoTWVzc2FnZUV2ZW50V2l0aE9y
aWdpbkNoZWNrKHRpbWVyLnRhcmdldE9yaWdpbigpLCB0aW1lci5ldmVudCgqZG9jdW1lbnQoKSks
IHRpbWVyLnN0YWNrVHJhY2UoKSk7Ci19Ci0KLXZvaWQgRE9NV2luZG93OjpkaXNwYXRjaE1lc3Nh
Z2VFdmVudFdpdGhPcmlnaW5DaGVjayhTZWN1cml0eU9yaWdpbiogaW50ZW5kZWRUYXJnZXRPcmln
aW4sIEV2ZW50JiBldmVudCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2Up
Ci17Ci0gICAgaWYgKGludGVuZGVkVGFyZ2V0T3JpZ2luKSB7CisgICAgaWYgKGF1dG8qIGludGVu
ZGVkVGFyZ2V0T3JpZ2luID0gdGltZXIudGFyZ2V0T3JpZ2luKCkpIHsKICAgICAgICAgLy8gQ2hl
Y2sgdGFyZ2V0IG9yaWdpbiBub3cgc2luY2UgdGhlIHRhcmdldCBkb2N1bWVudCBtYXkgaGF2ZSBj
aGFuZ2VkIHNpbmNlIHRoZSB0aW1lciB3YXMgc2NoZWR1bGVkLgogICAgICAgICBpZiAoIWludGVu
ZGVkVGFyZ2V0T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChkb2N1bWVudCgpLT5zZWN1cml0
eU9yaWdpbigpKSkgewotICAgICAgICAgICAgaWYgKFBhZ2VDb25zb2xlQ2xpZW50KiBwYWdlQ29u
c29sZSA9IGNvbnNvbGUoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIHBhZ2VDb25zb2xlID0g
Y29uc29sZSgpKSB7CiAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5n
KCJVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvICIsIGludGVuZGVkVGFyZ2V0T3JpZ2luLT50b1N0
cmluZygpLCAiLiBSZWNpcGllbnQgaGFzIG9yaWdpbiAiLCBkb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpLnRvU3RyaW5nKCksICIuXG4iKTsKLSAgICAgICAgICAgICAgICBwYWdlQ29uc29sZS0+
YWRkTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwg
bWVzc2FnZSwgc3RhY2tUcmFjZSk7CisgICAgICAgICAgICAgICAgcGFnZUNvbnNvbGUtPmFkZE1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3Nh
Z2UsIHRpbWVyLnN0YWNrVHJhY2UoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICBk
aXNwYXRjaEV2ZW50KHRpbWVyLmV2ZW50KCpkb2N1bWVudCgpKSk7CiB9CiAKIERPTVNlbGVjdGlv
biogRE9NV2luZG93OjpnZXRTZWxlY3Rpb24oKQpAQCAtMTExMyw3ICsxMDk3LDcgQEAgdm9pZCBE
T01XaW5kb3c6OnByaW50KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX3Nob3VsZFBy
aW50V2hlbkZpbmlzaGVkTG9hZGluZyA9IGZhbHNlOwotICAgIHBhZ2UtPmNocm9tZSgpLnByaW50
KG1fZnJhbWUpOworICAgIHBhZ2UtPmNocm9tZSgpLnByaW50KCptX2ZyYW1lKTsKIH0KIAogdm9p
ZCBET01XaW5kb3c6OnN0b3AoKQpAQCAtMTE0NSw3ICsxMTI5LDcgQEAgdm9pZCBET01XaW5kb3c6
OmFsZXJ0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBwYWdlLT5wb2ludGVyTG9ja0NvbnRy
b2xsZXIoKS5yZXF1ZXN0UG9pbnRlclVubG9jaygpOwogI2VuZGlmCiAKLSAgICBwYWdlLT5jaHJv
bWUoKS5ydW5KYXZhU2NyaXB0QWxlcnQobV9mcmFtZSwgbWVzc2FnZSk7CisgICAgcGFnZS0+Y2hy
b21lKCkucnVuSmF2YVNjcmlwdEFsZXJ0KCptX2ZyYW1lLCBtZXNzYWdlKTsKIH0KIAogYm9vbCBE
T01XaW5kb3c6OmNvbmZpcm0oY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMTE2Nyw3ICsxMTUx
LDcgQEAgYm9vbCBET01XaW5kb3c6OmNvbmZpcm0oY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAg
IHBhZ2UtPnBvaW50ZXJMb2NrQ29udHJvbGxlcigpLnJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CiAj
ZW5kaWYKIAotICAgIHJldHVybiBwYWdlLT5jaHJvbWUoKS5ydW5KYXZhU2NyaXB0Q29uZmlybSht
X2ZyYW1lLCBtZXNzYWdlKTsKKyAgICByZXR1cm4gcGFnZS0+Y2hyb21lKCkucnVuSmF2YVNjcmlw
dENvbmZpcm0oKm1fZnJhbWUsIG1lc3NhZ2UpOwogfQogCiBTdHJpbmcgRE9NV2luZG93Ojpwcm9t
cHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSkKQEAg
LTExOTAsNyArMTE3NCw3IEBAIFN0cmluZyBET01XaW5kb3c6OnByb21wdChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlKQogI2VuZGlmCiAKICAgICBTdHJp
bmcgcmV0dXJuVmFsdWU7Ci0gICAgaWYgKHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRQcm9t
cHQobV9mcmFtZSwgbWVzc2FnZSwgZGVmYXVsdFZhbHVlLCByZXR1cm5WYWx1ZSkpCisgICAgaWYg
KHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRQcm9tcHQoKm1fZnJhbWUsIG1lc3NhZ2UsIGRl
ZmF1bHRWYWx1ZSwgcmV0dXJuVmFsdWUpKQogICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CiAK
ICAgICByZXR1cm4gU3RyaW5nKCk7CkBAIC0xMzY4LDcgKzEzNTIsNyBAQCB2b2lkIERPTVdpbmRv
dzo6c2V0U3RhdHVzKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgICAgICByZXR1cm47CiAKICAg
ICBBU1NFUlQobV9mcmFtZS0+ZG9jdW1lbnQoKSk7IC8vIENsaWVudCBjYWxscyBzaG91bGRuJ3Qg
YmUgbWFkZSB3aGVuIHRoZSBmcmFtZSBpcyBpbiBpbmNvbnNpc3RlbnQgc3RhdGUuCi0gICAgcGFn
ZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dChtX2ZyYW1lLCBtX3N0YXR1cyk7CisgICAgcGFn
ZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dCgqbV9mcmFtZSwgbV9zdGF0dXMpOwogfSAKICAg
ICAKIHZvaWQgRE9NV2luZG93OjpzZXREZWZhdWx0U3RhdHVzKGNvbnN0IFN0cmluZyYgc3RyaW5n
KSAKQEAgLTEzODMsNyArMTM2Nyw3IEBAIHZvaWQgRE9NV2luZG93OjpzZXREZWZhdWx0U3RhdHVz
KGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQobV9m
cmFtZS0+ZG9jdW1lbnQoKSk7IC8vIENsaWVudCBjYWxscyBzaG91bGRuJ3QgYmUgbWFkZSB3aGVu
IHRoZSBmcmFtZSBpcyBpbiBpbmNvbnNpc3RlbnQgc3RhdGUuCi0gICAgcGFnZS0+Y2hyb21lKCku
c2V0U3RhdHVzYmFyVGV4dChtX2ZyYW1lLCBtX2RlZmF1bHRTdGF0dXMpOworICAgIHBhZ2UtPmNo
cm9tZSgpLnNldFN0YXR1c2JhclRleHQoKm1fZnJhbWUsIG1fZGVmYXVsdFN0YXR1cyk7CiB9CiAK
IERPTVdpbmRvdyogRE9NV2luZG93OjpzZWxmKCkgY29uc3QKQEAgLTE0MzIsOCArMTQxNiw3IEBA
IERPTVdpbmRvdyogRE9NV2luZG93Ojp0b3AoKSBjb25zdAogCiBEb2N1bWVudCogRE9NV2luZG93
Ojpkb2N1bWVudCgpIGNvbnN0CiB7Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCA9IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7
Ci0gICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KTsKKyAgICByZXR1cm4gZG93
bmNhc3Q8RG9jdW1lbnQ+KENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpOwogfQogCiBSZWZQdHI8U3R5bGVNZWRpYT4gRE9NV2luZG93OjpzdHlsZU1l
ZGlhKCkgY29uc3QKQEAgLTE2MTgsOCArMTYwMSw3IEBAIHZvaWQgRE9NV2luZG93Ojptb3ZlQnko
ZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKICAgICBGbG9hdFJlY3QgZnIgPSBwYWdlLT5jaHJvbWUo
KS53aW5kb3dSZWN0KCk7CiAgICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOwogICAgIHVwZGF0ZS5t
b3ZlKHgsIHkpOwotICAgIC8vIFNlY3VyaXR5IGNoZWNrICh0aGUgc3BlYyB0YWxrcyBhYm91dCBV
bml2ZXJzYWxCcm93c2VyV3JpdGUgdG8gZGlzYWJsZSB0aGlzIGNoZWNrLi4uKQotICAgIHBhZ2Ut
PmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsK
KyAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2Us
IHVwZGF0ZSkpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6bW92ZVRvKGZsb2F0IHgsIGZsb2F0IHkp
IGNvbnN0CkBAIC0xNjMzLDggKzE2MTUsNyBAQCB2b2lkIERPTVdpbmRvdzo6bW92ZVRvKGZsb2F0
IHgsIGZsb2F0IHkpIGNvbnN0CiAgICAgZnIuc2V0TG9jYXRpb24oc3IubG9jYXRpb24oKSk7CiAg
ICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOwogICAgIHVwZGF0ZS5tb3ZlKHgsIHkpOwotICAgIC8v
IFNlY3VyaXR5IGNoZWNrICh0aGUgc3BlYyB0YWxrcyBhYm91dCBVbml2ZXJzYWxCcm93c2VyV3Jp
dGUgdG8gZGlzYWJsZSB0aGlzIGNoZWNrLi4uKQotICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRv
d1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKKyAgICBwYWdlLT5jaHJvbWUo
KS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHVwZGF0ZSkpOwogfQogCiB2
b2lkIERPTVdpbmRvdzo6cmVzaXplQnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKQEAgLTE2NDYs
NyArMTYyNyw3IEBAIHZvaWQgRE9NV2luZG93OjpyZXNpemVCeShmbG9hdCB4LCBmbG9hdCB5KSBj
b25zdAogICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLndpbmRvd1JlY3QoKTsKICAg
ICBGbG9hdFNpemUgZGVzdCA9IGZyLnNpemUoKSArIEZsb2F0U2l6ZSh4LCB5KTsKICAgICBGbG9h
dFJlY3QgdXBkYXRlKGZyLmxvY2F0aW9uKCksIGRlc3QpOwotICAgIHBhZ2UtPmNocm9tZSgpLnNl
dFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKKyAgICBwYWdlLT5j
aHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHVwZGF0ZSkpOwog
fQogCiB2b2lkIERPTVdpbmRvdzo6cmVzaXplVG8oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkg
Y29uc3QKQEAgLTE2NTgsNyArMTYzOSw3IEBAIHZvaWQgRE9NV2luZG93OjpyZXNpemVUbyhmbG9h
dCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSBjb25zdAogICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNo
cm9tZSgpLndpbmRvd1JlY3QoKTsKICAgICBGbG9hdFNpemUgZGVzdCA9IEZsb2F0U2l6ZSh3aWR0
aCwgaGVpZ2h0KTsKICAgICBGbG9hdFJlY3QgdXBkYXRlKGZyLmxvY2F0aW9uKCksIGRlc3QpOwot
ICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1
cGRhdGUpKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1Jl
Y3QoKnBhZ2UsIHVwZGF0ZSkpOwogfQogCiBFeGNlcHRpb25PcjxpbnQ+IERPTVdpbmRvdzo6c2V0
VGltZW91dChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0aW1l
b3V0KQpAQCAtMTY4MSw3ICsxNjYyLDcgQEAgdm9pZCBET01XaW5kb3c6OmNsZWFyVGltZW91dChp
bnQgdGltZW91dElkKQogCiAgICAgICAgICAgICAgICAgaWYgKCFXZWJUaHJlYWRDb3VudE9mT2Jz
ZXJ2ZWRDb250ZW50TW9kaWZpZXJzKCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBwYWdlLT5j
aHJvbWUoKS5jbGllbnQoKS5vYnNlcnZlZENvbnRlbnRDaGFuZ2UobV9mcmFtZSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5vYnNlcnZlZENvbnRlbnRD
aGFuZ2UoKm1fZnJhbWUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAg
ICAgfQpAQCAtMTg0MSw3ICsxODIyLDcgQEAgdm9pZCBET01XaW5kb3c6OmluY3JlbWVudFNjcm9s
bEV2ZW50TGlzdGVuZXJzQ291bnQoKQogICAgIGlmICgrK21fc2Nyb2xsRXZlbnRMaXN0ZW5lckNv
dW50ID09IDEgJiYgZG9jdW1lbnQgPT0gJmRvY3VtZW50LT50b3BEb2N1bWVudCgpKSB7CiAgICAg
ICAgIEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCk7CiAgICAgICAgIGlmIChmcmFtZSAmJiBm
cmFtZS0+cGFnZSgpKQotICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50
KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKGZyYW1lLCB0cnVlKTsKKyAgICAgICAgICAg
IGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE5lZWRzU2Nyb2xsTm90aWZpY2F0
aW9ucygqZnJhbWUsIHRydWUpOwogICAgIH0KIH0KIApAQCAtMTg1MSw3ICsxODMyLDcgQEAgdm9p
ZCBET01XaW5kb3c6OmRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJzQ291bnQoKQogICAgIGlm
ICghLS1tX3Njcm9sbEV2ZW50TGlzdGVuZXJDb3VudCAmJiBkb2N1bWVudCA9PSAmZG9jdW1lbnQt
PnRvcERvY3VtZW50KCkpIHsKICAgICAgICAgRnJhbWUqIGZyYW1lID0gdGhpcy0+ZnJhbWUoKTsK
ICAgICAgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCkgJiYgZG9jdW1lbnQtPnBhZ2VDYWNo
ZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKQotICAgICAgICAgICAgZnJhbWUt
PnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKGZy
YW1lLCBmYWxzZSk7CisgICAgICAgICAgICBmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQo
KS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoKmZyYW1lLCBmYWxzZSk7CiAgICAgfQogfQog
CkBAIC0xODU5LDcgKzE4NDAsNyBAQCB2b2lkIERPTVdpbmRvdzo6ZGVjcmVtZW50U2Nyb2xsRXZl
bnRMaXN0ZW5lcnNDb3VudCgpCiAKIHZvaWQgRE9NV2luZG93OjpyZXNldEFsbEdlb2xvY2F0aW9u
UGVybWlzc2lvbigpCiB7Ci0gICAgLy8gRklYTUU6IFJlbW92ZSBQTEFURk9STShJT1MpLWd1YXJk
IG9uY2Ugd2UgdXBzdHJlYW0gdGhlIGlPUyBjaGFuZ2VzIHRvIEdlb2xvY2F0aW9uLmNwcC4KKyAg
ICAvLyBGSVhNRTogQ2FuIHdlIHJlbW92ZSB0aGUgUExBVEZPUk0oSU9TKS1ndWFyZD8KICNpZiBF
TkFCTEUoR0VPTE9DQVRJT04pICYmIFBMQVRGT1JNKElPUykKICAgICBpZiAobV9uYXZpZ2F0b3Ip
CiAgICAgICAgIE5hdmlnYXRvckdlb2xvY2F0aW9uOjpmcm9tKG1fbmF2aWdhdG9yLmdldCgpKS0+
cmVzZXRBbGxHZW9sb2NhdGlvblBlcm1pc3Npb24oKTsKQEAgLTIyODcsOCArMjI2OCw3IEBAIHZv
aWQgRE9NV2luZG93OjpzaG93TW9kYWxEaWFsb2coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNv
bnN0IFN0cmluZyYgZGlhbG9nRmVhCiB7CiAgICAgaWYgKCFpc0N1cnJlbnRseURpc3BsYXllZElu
RnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwotICAgIEZyYW1lKiBhY3RpdmVGcmFtZSA9IGFjdGl2
ZVdpbmRvdy5mcmFtZSgpOwotICAgIGlmICghYWN0aXZlRnJhbWUpCisgICAgaWYgKCFhY3RpdmVX
aW5kb3cuZnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogICAgIEZyYW1lKiBmaXJzdEZyYW1lID0g
Zmlyc3RXaW5kb3cuZnJhbWUoKTsKICAgICBpZiAoIWZpcnN0RnJhbWUpCkBAIC0yMzAzLDcgKzIy
ODMsNyBAQCB2b2lkIERPTVdpbmRvdzo6c2hvd01vZGFsRGlhbG9nKGNvbnN0IFN0cmluZyYgdXJs
U3RyaW5nLCBjb25zdCBTdHJpbmcmIGRpYWxvZ0ZlYQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgaWYgKCFjYW5TaG93TW9kYWxEaWFsb2cobV9mcmFtZSkgfHwgIWZpcnN0V2luZG93LmFs
bG93UG9wVXAoKSkKKyAgICBpZiAoIWNhblNob3dNb2RhbERpYWxvZygqbV9mcmFtZSkgfHwgIWZp
cnN0V2luZG93LmFsbG93UG9wVXAoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPEZy
YW1lPiBkaWFsb2dGcmFtZSA9IGNyZWF0ZVdpbmRvdyh1cmxTdHJpbmcsIGVtcHR5QXRvbSwgcGFy
c2VEaWFsb2dGZWF0dXJlcyhkaWFsb2dGZWF0dXJlc1N0cmluZywgc2NyZWVuQXZhaWxhYmxlUmVj
dChtX2ZyYW1lLT52aWV3KCkpKSwgYWN0aXZlV2luZG93LCAqZmlyc3RGcmFtZSwgKm1fZnJhbWUs
IFdURk1vdmUocHJlcGFyZURpYWxvZ0Z1bmN0aW9uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApp
bmRleCBjNWU5MDI4OTg4NmQ3MmFhODg2YzQ5YWRiOTQ3OTVkMzc3MDU5YjMxLi5lMDA3MDE2ZTVk
ODY3YTIwNTc5ZmE0MDE4MzMyYmI1ZGYxYWUxZWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5LCAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
Ni0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKQEAgLTMzLDIzICszMywxNCBAQAogI2luY2x1ZGUgIkZyYW1lRGVzdHJ1Y3Rp
b25PYnNlcnZlci5oIgogI2luY2x1ZGUgIlNjcm9sbFRvT3B0aW9ucy5oIgogI2luY2x1ZGUgIlN1
cHBsZW1lbnRhYmxlLmgiCi0jaW5jbHVkZSAiVVJMLmgiCi0jaW5jbHVkZSA8ZnVuY3Rpb25hbD4K
LSNpbmNsdWRlIDxtZW1vcnk+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CiAKLW5hbWVzcGFjZSBJbnNwZWN0b3IgewotY2xhc3MgU2NyaXB0Q2FsbFN0YWNr
OwotfQotCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEV4ZWNTdGF0ZTsKIGNsYXNzIEpTT2JqZWN0
OwogY2xhc3MgSlNWYWx1ZTsKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFN0cm9uZzsKK3Rl
bXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBTdHJvbmc7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTYxLDIyICs1MiwxNSBAQCBjbGFzcyBDcnlwdG87CiBjbGFzcyBDdXN0b21FbGVtZW50UmVn
aXN0cnk7CiBjbGFzcyBET01BcHBsaWNhdGlvbkNhY2hlOwogY2xhc3MgRE9NU2VsZWN0aW9uOwot
Y2xhc3MgRE9NVVJMOwogY2xhc3MgRE9NV2luZG93UHJvcGVydHk7CiBjbGFzcyBET01XcmFwcGVy
V29ybGQ7Ci1jbGFzcyBEYXRhYmFzZTsKLWNsYXNzIERhdGFiYXNlQ2FsbGJhY2s7CiBjbGFzcyBE
b2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBFdmVudExpc3RlbmVyOwogY2xhc3MgRmxv
YXRSZWN0OwotY2xhc3MgRnJhbWU7CiBjbGFzcyBIaXN0b3J5OwotY2xhc3MgSURCRmFjdG9yeTsK
IGNsYXNzIExvY2F0aW9uOwogY2xhc3MgTWVkaWFRdWVyeUxpc3Q7Ci1jbGFzcyBNZXNzYWdlRXZl
bnQ7Ci1jbGFzcyBNZXNzYWdlUG9ydDsKIGNsYXNzIE5hdmlnYXRvcjsKIGNsYXNzIE5vZGU7CiBj
bGFzcyBOb2RlTGlzdDsKQEAgLTg3LDggKzcxLDYgQEAgY2xhc3MgUG9zdE1lc3NhZ2VUaW1lcjsK
IGNsYXNzIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrOwogY2xhc3MgU2NoZWR1bGVkQWN0
aW9uOwogY2xhc3MgU2NyZWVuOwotY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1jbGFzcyBTZXJpYWxp
emVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTdG9yYWdlOwogY2xhc3MgU3R5bGVNZWRpYTsKIGNsYXNz
IFdlYktpdE5hbWVzcGFjZTsKQEAgLTEwNyw3ICs4OSw3IEBAIGNsYXNzIERPTVdpbmRvdyBmaW5h
bAogICAgICwgcHVibGljIEJhc2U2NFV0aWxpdGllcwogICAgICwgcHVibGljIFN1cHBsZW1lbnRh
YmxlPERPTVdpbmRvdz4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RE9NV2luZG93PiBjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTVdpbmRvdyhk
b2N1bWVudCkpOyB9CisgICAgc3RhdGljIFJlZjxET01XaW5kb3c+IGNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NV2luZG93KGRvY3VtZW50KSk7IH0K
ICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5ET01XaW5kb3coKTsKIAogICAgIC8vIEluIHNv
bWUgcmFyZSBjYXNlcywgd2UnbGwgcmV1c2UgYSBET01XaW5kb3cgZm9yIGEgbmV3IERvY3VtZW50
LiBGb3IgZXhhbXBsZSwKQEAgLTExNywxNSArOTksMTAgQEAgcHVibGljOgogICAgIC8vIHdvbid0
IGJlIGJsb3duIGF3YXkgd2hlbiB0aGUgbmV0d29yayBsb2FkIGNvbW1pdHMuIFRvIG1ha2UgdGhh
dCBoYXBwZW4sIHdlCiAgICAgLy8gInNlY3VyZWx5IHRyYW5zaXRpb24iIHRoZSBleGlzdGluZyBE
T01XaW5kb3cgdG8gdGhlIERvY3VtZW50IHRoYXQgcmVzdWx0cyBmcm9tCiAgICAgLy8gdGhlIG5l
dHdvcmsgbG9hZC4gU2VlIGFsc28gU2VjdXJpdHlDb250ZXh0Ojppc1NlY3VyZVRyYW5zaXRpb25U
by4KLSAgICB2b2lkIGRpZFNlY3VyZVRyYW5zaXRpb25UbyhEb2N1bWVudCopOwotCi0gICAgRXZl
bnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBET01XaW5kb3dFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KLSAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsgfQotCi0gICAgRE9NV2luZG93KiB0b0RPTVdpbmRvdygpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkU2VjdXJlVHJhbnNpdGlvblRvKERvY3VtZW50Jik7CiAKLSAgICB2b2lkIHJlZ2lzdGVy
UHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkqKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJQcm9wZXJ0
eShET01XaW5kb3dQcm9wZXJ0eSopOworICAgIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0eShET01XaW5k
b3dQcm9wZXJ0eSYpOworICAgIHZvaWQgdW5yZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3Bl
cnR5Jik7CiAKICAgICB2b2lkIHJlc2V0VW5sZXNzU3VzcGVuZGVkRm9yRG9jdW1lbnRTdXNwZW5z
aW9uKCk7CiAgICAgdm9pZCBzdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCk7CkBAIC0xMzgs
MTEgKzExNSwxMSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgZGlz
cGF0Y2hBbGxQZW5kaW5nQmVmb3JlVW5sb2FkRXZlbnRzKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHZvaWQgZGlzcGF0Y2hBbGxQZW5kaW5nVW5sb2FkRXZlbnRzKCk7CiAKLSAgICBzdGF0
aWMgRmxvYXRSZWN0IGFkanVzdFdpbmRvd1JlY3QoUGFnZSosIGNvbnN0IEZsb2F0UmVjdCYgcGVu
ZGluZ0NoYW5nZXMpOworICAgIHN0YXRpYyBGbG9hdFJlY3QgYWRqdXN0V2luZG93UmVjdChQYWdl
JiwgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcyk7CiAKICAgICBib29sIGFsbG93UG9w
VXAoKTsgLy8gQ2FsbCBvbiBmaXJzdCB3aW5kb3csIG5vdCB0YXJnZXQgd2luZG93LgotICAgIHN0
YXRpYyBib29sIGFsbG93UG9wVXAoRnJhbWUqIGZpcnN0RnJhbWUpOwotICAgIHN0YXRpYyBib29s
IGNhblNob3dNb2RhbERpYWxvZyhjb25zdCBGcmFtZSopOworICAgIHN0YXRpYyBib29sIGFsbG93
UG9wVXAoRnJhbWUmIGZpcnN0RnJhbWUpOworICAgIHN0YXRpYyBib29sIGNhblNob3dNb2RhbERp
YWxvZyhjb25zdCBGcmFtZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2FuU2hvd01v
ZGFsRGlhbG9nT3ZlcnJpZGUoYm9vbCk7CiAKICAgICBTY3JlZW4qIHNjcmVlbigpIGNvbnN0OwpA
QCAtMjQ1LDcgKzIyMiw2IEBAIHB1YmxpYzoKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBvc3RN
ZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiwgRE9NV2luZG93JiBjYWxsZXJXaW5kb3csIEpTQzo6SlNW
YWx1ZSBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdpbiwgVmVjdG9yPEpTQzo6U3Ry
b25nPEpTQzo6SlNPYmplY3Q+PiYmKTsKICAgICB2b2lkIHBvc3RNZXNzYWdlVGltZXJGaXJlZChQ
b3N0TWVzc2FnZVRpbWVyJik7Ci0gICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmln
aW5DaGVjayhTZWN1cml0eU9yaWdpbiogaW50ZW5kZWRUYXJnZXRPcmlnaW4sIEV2ZW50JiwgUGFz
c1JlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4pOwogCiAgICAgdm9pZCBsYW5ndWFn
ZXNDaGFuZ2VkKCk7CiAKQEAgLTI3Miw5ICsyNDgsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBFdmVu
dHMKICAgICAvLyBFdmVudFRhcmdldCBBUEkKLSAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBB
ZGRFdmVudExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIGJvb2wgcmVtb3ZlRXZlbnRM
aXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGNv
bnN0IExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlQWxsRXZlbnRM
aXN0ZW5lcnMoKSBvdmVycmlkZTsKKyAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVu
dExpc3RlbmVyT3B0aW9ucyYpIGZpbmFsOworICAgIGJvb2wgcmVtb3ZlRXZlbnRMaXN0ZW5lcihj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGNvbnN0IExpc3Rl
bmVyT3B0aW9ucyYpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKSBm
aW5hbDsKIAogICAgIHVzaW5nIEV2ZW50VGFyZ2V0OjpkaXNwYXRjaEV2ZW50OwogICAgIGJvb2wg
ZGlzcGF0Y2hFdmVudChFdmVudCYsIEV2ZW50VGFyZ2V0Kik7CkBAIC0yODYsOCArMjYyLDggQEAg
cHVibGljOgogCiAgICAgdm9pZCBmaW5pc2hlZExvYWRpbmcoKTsKIAotICAgIHVzaW5nIFJlZkNv
dW50ZWQ8RE9NV2luZG93Pjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8RE9NV2luZG93Pjo6
ZGVyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ6
OmRlcmVmOwogCiAgICAgLy8gSFRNTCA1IGtleS92YWx1ZSBzdG9yYWdlCiAgICAgRXhjZXB0aW9u
T3I8U3RvcmFnZSo+IHNlc3Npb25TdG9yYWdlKCkgY29uc3Q7CkBAIC0zMTMsNiArMjg5LDcgQEAg
cHVibGljOgogI2lmIEVOQUJMRShXRUJfVElNSU5HKQogICAgIFBlcmZvcm1hbmNlKiBwZXJmb3Jt
YW5jZSgpIGNvbnN0OwogI2VuZGlmCisKICAgICBkb3VibGUgbm93VGltZXN0YW1wKCkgY29uc3Q7
CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0zNDcsMTYgKzMyNCwyMSBAQCBwdWJsaWM6CiAgICAg
V2Vha1B0cjxET01XaW5kb3c+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0
b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IERPTVdpbmRv
dyhEb2N1bWVudCopOworICAgIGV4cGxpY2l0IERPTVdpbmRvdyhEb2N1bWVudCYpOworCisgICAg
RXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBET01XaW5kb3dFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsgfQorCisgICAgRE9NV2luZG93KiB0b0RPTVdpbmRvdygpIGZpbmFsOwogCiAgICAgUGFnZSog
cGFnZSgpOwogICAgIGJvb2wgYWxsb3dlZFRvQ2hhbmdlV2luZG93R2VvbWV0cnkoKSBjb25zdDsK
IAotICAgIHZvaWQgZnJhbWVEZXN0cm95ZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXRh
Y2hQYWdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBmcmFtZURlc3Ryb3llZCgpIGZpbmFsOworICAg
IHZvaWQgd2lsbERldGFjaFBhZ2UoKSBmaW5hbDsKIAotICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQo
KSBvdmVycmlkZSB7IHJlZigpOyB9Ci0gICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJp
ZGUgeyBkZXJlZigpOyB9CisgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7
IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAg
IHN0YXRpYyBSZWZQdHI8RnJhbWU+IGNyZWF0ZVdpbmRvdyhjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZywgY29uc3QgQXRvbWljU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwg
RE9NV2luZG93JiBhY3RpdmVXaW5kb3csIEZyYW1lJiBmaXJzdEZyYW1lLCBGcmFtZSYgb3BlbmVy
RnJhbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZChET01XaW5kb3cmKT4gcHJlcGFyZURpYWxvZ0Z1bmN0
aW9uID0gbnVsbHB0cik7CiAgICAgYm9vbCBpc0luc2VjdXJlU2NyaXB0QWNjZXNzKERPTVdpbmRv
dyYgYWN0aXZlV2luZG93LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCmluZGV4IGEzNzcwZThlNzAwYzY1ODI2MjZjNjRi
OTg1ZmRlYzZmYzA3ZjMzZjUuLjU1MDk2YjY0YWFhN2YyNDkzMWEyYzcxOWE3ZTVjNjA5ZWQ1MGY4
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCkBAIC00Miwx
NCArNDIsMTQgQEAgRE9NV2luZG93UHJvcGVydHk6OkRPTVdpbmRvd1Byb3BlcnR5KEZyYW1lKiBm
cmFtZSkKICAgICAvLyBXZSBzaG91bGQgZml4IHRoYXQuICA8cmRhcjovL3Byb2JsZW0vMTE1Njcx
MzI+CiAgICAgaWYgKG1fZnJhbWUpIHsKICAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93ID0g
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCk7Ci0gICAgICAgIG1fYXNzb2NpYXRlZERP
TVdpbmRvdy0+cmVnaXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAgICAgICAgbV9hc3NvY2lhdGVkRE9N
V2luZG93LT5yZWdpc3RlclByb3BlcnR5KCp0aGlzKTsKICAgICB9CiB9CiAKIERPTVdpbmRvd1By
b3BlcnR5Ojp+RE9NV2luZG93UHJvcGVydHkoKQogewogICAgIGlmIChtX2Fzc29jaWF0ZWRET01X
aW5kb3cpCi0gICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+dW5yZWdpc3RlclByb3BlcnR5
KHRoaXMpOworICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ctPnVucmVnaXN0ZXJQcm9wZXJ0
eSgqdGhpcyk7CiAKICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3cgPSBudWxscHRyOwogICAgIG1f
ZnJhbWUgPSBudWxscHRyOwpAQCAtODYsNyArODYsNyBAQCB2b2lkIERPTVdpbmRvd1Byb3BlcnR5
Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUoKQogICAgIC8vIERPTVdpbmRv
d1Byb3BlcnR5IGxpZmV0aW1lIGlzbid0IHRpZWQgZGlyZWN0bHkgdG8gdGhlIERPTVdpbmRvdyBp
dHNlbGYgc28gaXQgaXMgaW1wb3J0YW50IHRoYXQgaXQgdW5yZWdpc3RlcgogICAgIC8vIGl0c2Vs
ZiBmcm9tIGFueSBET01XaW5kb3cgaXQgaXMgYXNzb2NpYXRlZCB3aXRoIGlmIHRoYXQgRE9NV2lu
ZG93IGlzIGdvaW5nIGF3YXkuCiAgICAgaWYgKG1fYXNzb2NpYXRlZERPTVdpbmRvdykKLSAgICAg
ICAgbV9hc3NvY2lhdGVkRE9NV2luZG93LT51bnJlZ2lzdGVyUHJvcGVydHkodGhpcyk7CisgICAg
ICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+dW5yZWdpc3RlclByb3BlcnR5KCp0aGlzKTsKICAg
ICBtX2Fzc29jaWF0ZWRET01XaW5kb3cgPSBudWxscHRyOwogICAgIG1fZnJhbWUgPSBudWxscHRy
OwogfQpAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgRE9NV2luZG93UHJvcGVydHk6OndpbGxEZXN0
cm95R2xvYmFsT2JqZWN0SW5GcmFtZSgpCiAgICAgLy8gRE9NV2luZG93UHJvcGVydHkgbGlmZXRp
bWUgaXNuJ3QgdGllZCBkaXJlY3RseSB0byB0aGUgRE9NV2luZG93IGl0c2VsZiBzbyBpdCBpcyBp
bXBvcnRhbnQgdGhhdCBpdCB1bnJlZ2lzdGVyCiAgICAgLy8gaXRzZWxmIGZyb20gYW55IERPTVdp
bmRvdyBpdCBpcyBhc3NvY2lhdGVkIHdpdGggaWYgdGhhdCBET01XaW5kb3cgaXMgZ29pbmcgYXdh
eS4KICAgICBpZiAobV9hc3NvY2lhdGVkRE9NV2luZG93KQotICAgICAgICBtX2Fzc29jaWF0ZWRE
T01XaW5kb3ctPnVucmVnaXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAgICAgICAgbV9hc3NvY2lhdGVk
RE9NV2luZG93LT51bnJlZ2lzdGVyUHJvcGVydHkoKnRoaXMpOwogICAgIG1fYXNzb2NpYXRlZERP
TVdpbmRvdyA9IG51bGxwdHI7CiAgICAgbV9mcmFtZSA9IG51bGxwdHI7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCmluZGV4IGNhYTA3YTQ3YmVlOGYxOWNlZTM0
NGVmYTU3NmY1MGVkNDUxNDczZWEuLmFmMDgwMmJjOGJlODAzODFkMTMzMDUzZjc3OGZjM2E3NjM2
NDNlNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCkBAIC00
NCw3ICs0NCw3IEBAIERlYnVnUGFnZU92ZXJsYXlzKiBEZWJ1Z1BhZ2VPdmVybGF5czo6c2hhcmVk
RGVidWdPdmVybGF5czsKIAogY2xhc3MgUmVnaW9uT3ZlcmxheSA6IHB1YmxpYyBSZWZDb3VudGVk
PFJlZ2lvbk92ZXJsYXk+LCBwdWJsaWMgUGFnZU92ZXJsYXk6OkNsaWVudCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8UmVnaW9uT3ZlcmxheT4gY3JlYXRlKE1haW5GcmFtZSYsIERl
YnVnUGFnZU92ZXJsYXlzOjpSZWdpb25UeXBlKTsKKyAgICBzdGF0aWMgUmVmUHRyPFJlZ2lvbk92
ZXJsYXk+IGNyZWF0ZShNYWluRnJhbWUmLCBEZWJ1Z1BhZ2VPdmVybGF5czo6UmVnaW9uVHlwZSk7
CiAgICAgdmlydHVhbCB+UmVnaW9uT3ZlcmxheSgpOwogCiAgICAgdm9pZCByZWNvbXB1dGVSZWdp
b24oKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBib29sIE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uT3Zl
cmxheTo6dXBkYXRlUmVnaW9uKCkKICAgICByZXR1cm4gcmVnaW9uQ2hhbmdlZDsKIH0KIAotUGFz
c1JlZlB0cjxSZWdpb25PdmVybGF5PiBSZWdpb25PdmVybGF5OjpjcmVhdGUoTWFpbkZyYW1lJiBm
cmFtZSwgRGVidWdQYWdlT3ZlcmxheXM6OlJlZ2lvblR5cGUgcmVnaW9uVHlwZSkKK1JlZlB0cjxS
ZWdpb25PdmVybGF5PiBSZWdpb25PdmVybGF5OjpjcmVhdGUoTWFpbkZyYW1lJiBmcmFtZSwgRGVi
dWdQYWdlT3ZlcmxheXM6OlJlZ2lvblR5cGUgcmVnaW9uVHlwZSkKIHsKICAgICBzd2l0Y2ggKHJl
Z2lvblR5cGUpIHsKICAgICBjYXNlIERlYnVnUGFnZU92ZXJsYXlzOjpSZWdpb25UeXBlOjpXaGVl
bEV2ZW50SGFuZGxlcnM6CkBAIC0xNjUsNyArMTY1LDcgQEAgUmVnaW9uT3ZlcmxheTo6UmVnaW9u
T3ZlcmxheShNYWluRnJhbWUmIGZyYW1lLCBDb2xvciByZWdpb25Db2xvcikKIFJlZ2lvbk92ZXJs
YXk6On5SZWdpb25PdmVybGF5KCkKIHsKICAgICBpZiAobV9vdmVybGF5KQotICAgICAgICBtX2Zy
YW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fb3Zlcmxh
eS5nZXQoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgICAgICBtX2Zy
YW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX292ZXJs
YXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIH0KIAogdm9pZCBSZWdpb25P
dmVybGF5Ojp3aWxsTW92ZVRvUGFnZShQYWdlT3ZlcmxheSYsIFBhZ2UqIHBhZ2UpCkBAIC0yNDgs
NyArMjQ4LDcgQEAgUmVnaW9uT3ZlcmxheSYgRGVidWdQYWdlT3ZlcmxheXM6OmVuc3VyZVJlZ2lv
bk92ZXJsYXlGb3JGcmFtZShNYWluRnJhbWUmIGZyYW1lLAogdm9pZCBEZWJ1Z1BhZ2VPdmVybGF5
czo6c2hvd1JlZ2lvbk92ZXJsYXkoTWFpbkZyYW1lJiBmcmFtZSwgUmVnaW9uVHlwZSByZWdpb25U
eXBlKQogewogICAgIFJlZ2lvbk92ZXJsYXkmIHZpc3VhbGl6ZXIgPSBlbnN1cmVSZWdpb25PdmVy
bGF5Rm9yRnJhbWUoZnJhbWUsIHJlZ2lvblR5cGUpOwotICAgIGZyYW1lLnBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSgmdmlzdWFsaXplci5vdmVybGF5KCksIFBhZ2VP
dmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICBmcmFtZS5wYWdlT3ZlcmxheUNvbnRy
b2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkodmlzdWFsaXplci5vdmVybGF5KCksIFBhZ2VPdmVy
bGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIH0KIAogdm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6
aGlkZVJlZ2lvbk92ZXJsYXkoTWFpbkZyYW1lJiBmcmFtZSwgUmVnaW9uVHlwZSByZWdpb25UeXBl
KQpAQCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OmhpZGVSZWdpb25P
dmVybGF5KE1haW5GcmFtZSYgZnJhbWUsIFJlZ2lvblR5cGUgcmVnaW9uVHlwCiAgICAgaWYgKGl0
ICE9IG1fZnJhbWVSZWdpb25PdmVybGF5cy5lbmQoKSkgewogICAgICAgICBhdXRvJiB2aXN1YWxp
emVycyA9IGl0LT52YWx1ZTsKICAgICAgICAgaWYgKFJlZ2lvbk92ZXJsYXkqIHZpc3VhbGl6ZXIg
PSB2aXN1YWxpemVyc1tpbmRleE9mKHJlZ2lvblR5cGUpXS5nZXQoKSkgewotICAgICAgICAgICAg
ZnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoJnZpc3Vh
bGl6ZXItPm92ZXJsYXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAg
ICAgICAgICAgZnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJs
YXkodmlzdWFsaXplci0+b3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFk
ZSk7CiAgICAgICAgICAgICB2aXN1YWxpemVyc1tpbmRleE9mKHJlZ2lvblR5cGUpXSA9IG51bGxw
dHI7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3Bw
CmluZGV4IGYyMzE4YTAzYzE0YmQxZGY4MjMyMGNjMDdjNzg5OWIyOTQyN2M2NDYuLmRmNmNmZTA0
YzI3YTNmOTg0MDIyMTlhNjZjODgyYjNkNDNiNmZlNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6
ZHJhZ0V4aXRlZChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAjZW5kaWYKICAgICAgICAgUmVm
UHRyPERhdGFUcmFuc2Zlcj4gZGF0YVRyYW5zZmVyID0gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JE
cmFnQW5kRHJvcChwb2xpY3ksIGRyYWdEYXRhKTsKICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRT
b3VyY2VPcGVyYXRpb24oZHJhZ0RhdGEuZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrKCkpOwot
ICAgICAgICBtX3BhZ2UubWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuY2FuY2VsRHJhZ0FuZERy
b3AoY3JlYXRlTW91c2VFdmVudChkcmFnRGF0YSksIGRhdGFUcmFuc2Zlci5nZXQoKSk7CisgICAg
ICAgIG1fcGFnZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5jYW5jZWxEcmFnQW5kRHJvcChj
cmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKSwgKmRhdGFUcmFuc2Zlcik7CiAgICAgICAgIGRhdGFU
cmFuc2Zlci0+c2V0QWNjZXNzUG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7
IC8vIEludmFsaWRhdGUgZGF0YVRyYW5zZmVyIGhlcmUgZm9yIHNlY3VyaXR5LgogICAgIH0KICAg
ICBtb3VzZU1vdmVkSW50b0RvY3VtZW50KG51bGxwdHIpOwpAQCAtMjI3LDcgKzIyNyw3IEBAIGJv
b2wgRHJhZ0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFnT3BlcmF0aW9uKGNvbnN0IERyYWdEYXRhJiBk
cmFnRGF0YSkKICAgICAgICAgICAgIC8vIFNlbmRpbmcgYW4gZXZlbnQgY2FuIHJlc3VsdCBpbiB0
aGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIHZpZXcgYW5kIHBhcnQuCiAgICAgICAgICAgICBSZWZQdHI8
RGF0YVRyYW5zZmVyPiBkYXRhVHJhbnNmZXIgPSBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6UmVhZGFibGUsIGRyYWdEYXRhKTsKICAg
ICAgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0U291cmNlT3BlcmF0aW9uKGRyYWdEYXRhLmRyYWdn
aW5nU291cmNlT3BlcmF0aW9uTWFzaygpKTsKLSAgICAgICAgICAgIHByZXZlbnRlZERlZmF1bHQg
PSBtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLnBlcmZvcm1EcmFnQW5kRHJvcChjcmVhdGVNb3Vz
ZUV2ZW50KGRyYWdEYXRhKSwgZGF0YVRyYW5zZmVyLmdldCgpKTsKKyAgICAgICAgICAgIHByZXZl
bnRlZERlZmF1bHQgPSBtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLnBlcmZvcm1EcmFnQW5kRHJv
cChjcmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKSwgKmRhdGFUcmFuc2Zlcik7CiAgICAgICAgICAg
ICBkYXRhVHJhbnNmZXItPnNldEFjY2Vzc1BvbGljeShEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6
Ok51bWIpOyAvLyBJbnZhbGlkYXRlIGRhdGFUcmFuc2ZlciBoZXJlIGZvciBzZWN1cml0eS4KICAg
ICAgICAgfQogICAgICAgICBpZiAocHJldmVudGVkRGVmYXVsdCkgewpAQCAtNTQ3LDcgKzU0Nyw3
IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERyYWcoY29uc3QgRHJhZ0RhdGEm
IGRyYWdEYXRhKQogCiAgICAgaWYgKHJvb3RFZGl0YWJsZUVsZW1lbnQpIHsKICAgICAgICAgaWYg
KEZyYW1lKiBmcmFtZSA9IHJvb3RFZGl0YWJsZUVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSkK
LSAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS51cGRhdGVEcmFnU3RhdGVBZnRlckVk
aXREcmFnSWZOZWVkZWQocm9vdEVkaXRhYmxlRWxlbWVudC5nZXQoKSk7CisgICAgICAgICAgICBm
cmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVk
KCpyb290RWRpdGFibGVFbGVtZW50KTsKICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTYy
MSw3ICs2MjEsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjp0cnlESFRNTERyYWcoY29uc3QgRHJh
Z0RhdGEmIGRyYWdEYXRhLCBEcmFnT3BlcmF0aW9uJiBvcGVyYQogICAgIGRhdGFUcmFuc2Zlci0+
c2V0U291cmNlT3BlcmF0aW9uKHNyY09wTWFzayk7CiAKICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZXZlbnQgPSBjcmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKTsKLSAgICBpZiAoIW1haW5GcmFtZS0+
ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQsIGRhdGFUcmFuc2Zlci5nZXQo
KSkpIHsKKyAgICBpZiAoIW1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ0FuZERy
b3AoZXZlbnQsICpkYXRhVHJhbnNmZXIpKSB7CiAgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0QWNj
ZXNzUG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7IC8vIEludmFsaWRhdGUg
ZGF0YVRyYW5zZmVyIGhlcmUgZm9yIHNlY3VyaXR5LgogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDkyM2U0MTY5Zjc4ZDBh
ZmYwYWNiMzNkYzY5MWI4YTlhNTgwZDMwZWQuLjVhNWEzNWU2OGE3Yzg5ODhiNmUxMzA0ZTQ4OWEy
MTJhYmQ5YzczYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFr
b3YgKGFwQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgRGlnaWEgUGxjLiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCkBAIC0yOCwxNiArMjgsMTIgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKIAotI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJBdXRvc2Nyb2xsQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5j
bHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0jaW5jbHVkZSAiQ3Vy
c29yLmgiCiAjaW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0j
aW5jbHVkZSAiRG9jdW1lbnRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJEcmFnU3RhdGUuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKQEAgLTk0LDEz
ICs5MCwxMyBAQAogI2luY2x1ZGUgIlVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5j
bHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgorI2luY2x1ZGUg
IldoZWVsRXZlbnREZWx0YUZpbHRlci5oIgogI2luY2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVz
LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAjaW5jbHVkZSAiUGxhdGZv
cm1Ub3VjaEV2ZW50SU9TLmgiCkBAIC0xNzYsMjEgKzE3Miw2IEBAIGNvbnN0IGludCBtYXhpbXVt
Q3Vyc29yU2l6ZSA9IDEyODsKIGNvbnN0IGRvdWJsZSBtaW5pbXVtQ3Vyc29yU2NhbGUgPSAwLjAw
MTsKICNlbmRpZgogCi1lbnVtIE5vQ3Vyc29yQ2hhbmdlVHlwZSB7IE5vQ3Vyc29yQ2hhbmdlIH07
Ci0KLWNsYXNzIE9wdGlvbmFsQ3Vyc29yIHsKLXB1YmxpYzoKLSAgICBPcHRpb25hbEN1cnNvcihO
b0N1cnNvckNoYW5nZVR5cGUpIDogbV9pc0N1cnNvckNoYW5nZShmYWxzZSkgeyB9Ci0gICAgT3B0
aW9uYWxDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpIDogbV9pc0N1cnNvckNoYW5nZSh0cnVl
KSwgbV9jdXJzb3IoY3Vyc29yKSB7IH0KLQotICAgIGJvb2wgaXNDdXJzb3JDaGFuZ2UoKSBjb25z
dCB7IHJldHVybiBtX2lzQ3Vyc29yQ2hhbmdlOyB9Ci0gICAgY29uc3QgQ3Vyc29yJiBjdXJzb3Io
KSBjb25zdCB7IEFTU0VSVChtX2lzQ3Vyc29yQ2hhbmdlKTsgcmV0dXJuIG1fY3Vyc29yOyB9Ci0K
LXByaXZhdGU6Ci0gICAgYm9vbCBtX2lzQ3Vyc29yQ2hhbmdlOwotICAgIEN1cnNvciBtX2N1cnNv
cjsKLX07Ci0KIGNsYXNzIE1heGltdW1EdXJhdGlvblRyYWNrZXIgewogcHVibGljOgogICAgIGV4
cGxpY2l0IE1heGltdW1EdXJhdGlvblRyYWNrZXIoZG91YmxlICptYXhEdXJhdGlvbikKQEAgLTQw
NSwxMiArMzg2LDE0IEBAIEV2ZW50SGFuZGxlcjo6fkV2ZW50SGFuZGxlcigpCiB9CiAgICAgCiAj
aWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKwogRHJhZ1N0YXRlJiBFdmVudEhhbmRsZXI6OmRyYWdT
dGF0ZSgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERyYWdTdGF0ZT4gc3RhdGU7CiAg
ICAgcmV0dXJuIHN0YXRlOwogfQotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCisKKyNl
bmRpZgogICAgIAogdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyKCkKIHsKQEAgLTgwMCwxNCArNzgz
LDE1IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQoY29uc3QgTW91
c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZXZlCiAKICAgICBtX21vdXNlUHJlc3NOb2RlID0g
ZXZlbnQudGFyZ2V0Tm9kZSgpOwogICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+c2V0Rm9jdXNOYXZp
Z2F0aW9uU3RhcnRpbmdOb2RlKGV2ZW50LnRhcmdldE5vZGUoKSk7CisKICNpZiBFTkFCTEUoRFJB
R19TVVBQT1JUKQotICAgIG1fZHJhZ1N0YXJ0UG9zID0gZXZlbnQuZXZlbnQoKS5wb3NpdGlvbigp
OworICAgIG1fZHJhZ1N0YXJ0UG9zaXRpb24gPSBldmVudC5ldmVudCgpLnBvc2l0aW9uKCk7CiAj
ZW5kaWYKIAotICAgIGJvb2wgc3dhbGxvd0V2ZW50ID0gZmFsc2U7CiAgICAgbV9tb3VzZVByZXNz
ZWQgPSB0cnVlOwogICAgIG1fc2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlID0gSGF2ZU5vdFN0YXJ0
ZWRTZWxlY3Rpb247CiAKKyAgICBib29sIHN3YWxsb3dFdmVudCA9IGZhbHNlOwogICAgIGlmIChl
dmVudC5ldmVudCgpLmNsaWNrQ291bnQoKSA9PSAyKQogICAgICAgICBzd2FsbG93RXZlbnQgPSBo
YW5kbGVNb3VzZVByZXNzRXZlbnREb3VibGVDbGljayhldmVudCk7CiAgICAgZWxzZSBpZiAoZXZl
bnQuZXZlbnQoKS5jbGlja0NvdW50KCkgPj0gMykKQEAgLTk3NywxMSArOTYxLDExIEBAIHZvaWQg
RXZlbnRIYW5kbGVyOjp1cGRhdGVTZWxlY3Rpb25Gb3JNb3VzZURyYWcoY29uc3QgSGl0VGVzdFJl
c3VsdCYgaGl0VGVzdFJlc3VsCiAgICAgICAgIG5ld1NlbGVjdGlvbi5zZXRFeHRlbnQocG9zaXRp
b25BZnRlck5vZGUocm9vdFVzZXJTZWxlY3RBbGxGb3JNb3VzZVByZXNzTm9kZSkuZG93bnN0cmVh
bShDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFJl
c2V0IGJhc2UgZm9yIHVzZXIgc2VsZWN0IGFsbCB3aGVuIGJhc2UgaXMgaW5zaWRlIHVzZXItc2Vs
ZWN0LWFsbCBhcmVhIGFuZCBleHRlbnQgPCBiYXNlLgotICAgICAgICBpZiAocm9vdFVzZXJTZWxl
Y3RBbGxGb3JNb3VzZVByZXNzTm9kZSAmJiBjb21wYXJlUG9zaXRpb25zKHRhcmdldC0+cmVuZGVy
ZXIoKS0+cG9zaXRpb25Gb3JQb2ludChoaXRUZXN0UmVzdWx0LmxvY2FsUG9pbnQoKSwgbnVsbHB0
ciksIG1fbW91c2VQcmVzc05vZGUtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9yUG9pbnQobV9kcmFn
U3RhcnRQb3MsIG51bGxwdHIpKSA8IDApCisgICAgICAgIGlmIChyb290VXNlclNlbGVjdEFsbEZv
ck1vdXNlUHJlc3NOb2RlICYmIGNvbXBhcmVQb3NpdGlvbnModGFyZ2V0LT5yZW5kZXJlcigpLT5w
b3NpdGlvbkZvclBvaW50KGhpdFRlc3RSZXN1bHQubG9jYWxQb2ludCgpLCBudWxscHRyKSwgbV9t
b3VzZVByZXNzTm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChtX2RyYWdTdGFydFBv
c2l0aW9uLCBudWxscHRyKSkgPCAwKQogICAgICAgICAgICAgbmV3U2VsZWN0aW9uLnNldEJhc2Uo
cG9zaXRpb25BZnRlck5vZGUocm9vdFVzZXJTZWxlY3RBbGxGb3JNb3VzZVByZXNzTm9kZSkuZG93
bnN0cmVhbShDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkpOwogICAgICAgICAKICAgICAgICAgTm9k
ZSogcm9vdFVzZXJTZWxlY3RBbGxGb3JUYXJnZXQgPSBQb3NpdGlvbjo6cm9vdFVzZXJTZWxlY3RB
bGxGb3JOb2RlKHRhcmdldCk7Ci0gICAgICAgIGlmIChyb290VXNlclNlbGVjdEFsbEZvclRhcmdl
dCAmJiBtX21vdXNlUHJlc3NOb2RlLT5yZW5kZXJlcigpICYmIGNvbXBhcmVQb3NpdGlvbnModGFy
Z2V0LT5yZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50KGhpdFRlc3RSZXN1bHQubG9jYWxQb2lu
dCgpLCBudWxscHRyKSwgbV9tb3VzZVByZXNzTm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQ
b2ludChtX2RyYWdTdGFydFBvcywgbnVsbHB0cikpIDwgMCkKKyAgICAgICAgaWYgKHJvb3RVc2Vy
U2VsZWN0QWxsRm9yVGFyZ2V0ICYmIG1fbW91c2VQcmVzc05vZGUtPnJlbmRlcmVyKCkgJiYgY29t
cGFyZVBvc2l0aW9ucyh0YXJnZXQtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9yUG9pbnQoaGl0VGVz
dFJlc3VsdC5sb2NhbFBvaW50KCksIG51bGxwdHIpLCBtX21vdXNlUHJlc3NOb2RlLT5yZW5kZXJl
cigpLT5wb3NpdGlvbkZvclBvaW50KG1fZHJhZ1N0YXJ0UG9zaXRpb24sIG51bGxwdHIpKSA8IDAp
CiAgICAgICAgICAgICBuZXdTZWxlY3Rpb24uc2V0RXh0ZW50KHBvc2l0aW9uQmVmb3JlTm9kZShy
b290VXNlclNlbGVjdEFsbEZvclRhcmdldCkudXBzdHJlYW0oQ2FuQ3Jvc3NFZGl0aW5nQm91bmRh
cnkpKTsKICAgICAgICAgZWxzZSBpZiAocm9vdFVzZXJTZWxlY3RBbGxGb3JUYXJnZXQgJiYgbV9t
b3VzZVByZXNzTm9kZS0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgIG5ld1NlbGVjdGlvbi5zZXRF
eHRlbnQocG9zaXRpb25BZnRlck5vZGUocm9vdFVzZXJTZWxlY3RBbGxGb3JUYXJnZXQpLmRvd25z
dHJlYW0oQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpKTsKQEAgLTEwNDcsNyArMTAzMSw3IEBAIGJv
b2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVJlbGVhc2VFdmVudChjb25zdCBNb3VzZUV2ZW50
V2l0aEhpdFRlc3RSZXN1bHRzJiBlCiAgICAgLy8gZWRpdGluZywgcGxhY2UgdGhlIGNhcmV0Lgog
ICAgIGlmIChtX21vdXNlRG93bldhc1NpbmdsZUNsaWNrSW5TZWxlY3Rpb24gJiYgbV9zZWxlY3Rp
b25Jbml0aWF0aW9uU3RhdGUgIT0gRXh0ZW5kZWRTZWxlY3Rpb24KICNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQotICAgICAgICAgICAgJiYgbV9kcmFnU3RhcnRQb3MgPT0gZXZlbnQuZXZlbnQoKS5w
b3NpdGlvbigpCisgICAgICAgICAgICAmJiBtX2RyYWdTdGFydFBvc2l0aW9uID09IGV2ZW50LmV2
ZW50KCkucG9zaXRpb24oKQogI2VuZGlmCiAgICAgICAgICAgICAmJiBtX2ZyYW1lLnNlbGVjdGlv
bigpLmlzUmFuZ2UoKQogICAgICAgICAgICAgJiYgZXZlbnQuZXZlbnQoKS5idXR0b24oKSAhPSBS
aWdodEJ1dHRvbikgewpAQCAtMTA4NCwxMiArMTA2OCwxMiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
ZGlkUGFuU2Nyb2xsU3RvcCgpCiAgICAgbV9hdXRvc2Nyb2xsQ29udHJvbGxlci0+ZGlkUGFuU2Ny
b2xsU3RvcCgpOwogfQogCi12b2lkIEV2ZW50SGFuZGxlcjo6c3RhcnRQYW5TY3JvbGxpbmcoUmVu
ZGVyRWxlbWVudCogcmVuZGVyZXIpCit2b2lkIEV2ZW50SGFuZGxlcjo6c3RhcnRQYW5TY3JvbGxp
bmcoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICBp
ZiAoIWlzPFJlbmRlckJveD4oKnJlbmRlcmVyKSkKKyAgICBpZiAoIWlzPFJlbmRlckJveD4ocmVu
ZGVyZXIpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9hdXRvc2Nyb2xsQ29udHJvbGxlci0+c3Rh
cnRQYW5TY3JvbGxpbmcoZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlciksIGxhc3RLbm93bk1v
dXNlUG9zaXRpb24oKSk7CisgICAgbV9hdXRvc2Nyb2xsQ29udHJvbGxlci0+c3RhcnRQYW5TY3Jv
bGxpbmcoJmRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIpLCBsYXN0S25vd25Nb3VzZVBvc2l0
aW9uKCkpOwogICAgIGludmFsaWRhdGVDbGljaygpOwogI2VuZGlmCiB9CkBAIC0xMzc0LDI0ICsx
MzU4LDI4IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjp1cGRhdGVDdXJzb3IoKQogICAgIEhpdFRlc3RS
ZXN1bHQgcmVzdWx0KHZpZXctPndpbmRvd1RvQ29udGVudHMobV9sYXN0S25vd25Nb3VzZVBvc2l0
aW9uKSk7CiAgICAgcmVuZGVyVmlldy0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOwogCi0gICAg
T3B0aW9uYWxDdXJzb3Igb3B0aW9uYWxDdXJzb3IgPSBzZWxlY3RDdXJzb3IocmVzdWx0LCBzaGlm
dEtleSk7Ci0gICAgaWYgKG9wdGlvbmFsQ3Vyc29yLmlzQ3Vyc29yQ2hhbmdlKCkpIHsKLSAgICAg
ICAgbV9jdXJyZW50TW91c2VDdXJzb3IgPSBvcHRpb25hbEN1cnNvci5jdXJzb3IoKTsKLSAgICAg
ICAgdmlldy0+c2V0Q3Vyc29yKG1fY3VycmVudE1vdXNlQ3Vyc29yKTsKKyAgICB1cGRhdGVDdXJz
b3IoKnZpZXcsIHJlc3VsdCwgc2hpZnRLZXkpOworfQorCit2b2lkIEV2ZW50SGFuZGxlcjo6dXBk
YXRlQ3Vyc29yKEZyYW1lVmlldyYgdmlldywgY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBi
b29sIHNoaWZ0S2V5KQoreworICAgIGlmIChhdXRvIG9wdGlvbmFsQ3Vyc29yID0gc2VsZWN0Q3Vy
c29yKHJlc3VsdCwgc2hpZnRLZXkpKSB7CisgICAgICAgIG1fY3VycmVudE1vdXNlQ3Vyc29yID0g
V1RGTW92ZShvcHRpb25hbEN1cnNvci52YWx1ZSgpKTsKKyAgICAgICAgdmlldy5zZXRDdXJzb3Io
bV9jdXJyZW50TW91c2VDdXJzb3IpOwogICAgIH0KIH0KIAotT3B0aW9uYWxDdXJzb3IgRXZlbnRI
YW5kbGVyOjpzZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBib29sIHNo
aWZ0S2V5KQorc3RkOjpvcHRpb25hbDxDdXJzb3I+IEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29y
KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaGlmdEtleSkKIHsKICAgICBpZiAo
bV9yZXNpemVMYXllciAmJiBtX3Jlc2l6ZUxheWVyLT5pblJlc2l6ZU1vZGUoKSkKLSAgICAgICAg
cmV0dXJuIE5vQ3Vyc29yQ2hhbmdlOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAg
ICAgaWYgKCFtX2ZyYW1lLnBhZ2UoKSkKLSAgICAgICAgcmV0dXJuIE5vQ3Vyc29yQ2hhbmdlOwor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcp
CiAgICAgaWYgKG1fZnJhbWUubWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkucGFuU2Nyb2xsSW5Q
cm9ncmVzcygpKQotICAgICAgICByZXR1cm4gTm9DdXJzb3JDaGFuZ2U7CisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAjZW5kaWYKIAogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUo
bV9mcmFtZSk7CkBAIC0xNDA2LDcgKzEzOTQsNyBAQCBPcHRpb25hbEN1cnNvciBFdmVudEhhbmRs
ZXI6OnNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGJvb2wgc2hpZgog
CiAgICAgTm9kZSogbm9kZSA9IHJlc3VsdC50YXJnZXROb2RlKCk7CiAgICAgaWYgKCFub2RlKQot
ICAgICAgICByZXR1cm4gTm9DdXJzb3JDaGFuZ2U7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAKICAgICBhdXRvIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsKICAgICBhdXRvKiBz
dHlsZSA9IHJlbmRlcmVyID8gJnJlbmRlcmVyLT5zdHlsZSgpIDogbnVsbHB0cjsKQEAgLTE0Mjgs
NyArMTQxNiw3IEBAIE9wdGlvbmFsQ3Vyc29yIEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKGNv
bnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaGlmCiAgICAgICAgIGNhc2UgU2V0Q3Vy
c29yOgogICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRlQ3Vyc29yOwogICAgICAgICBjYXNlIERv
Tm90U2V0Q3Vyc29yOgotICAgICAgICAgICAgcmV0dXJuIE5vQ3Vyc29yQ2hhbmdlOworICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTk0Nywx
NSArMTkzNSwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3ZlRXZlbnQoY29u
c3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybU1vdXNlRQogICAgICAgICAvLyBub2RlIHRv
IGJlIGRldGFjaGVkIGZyb20gaXRzIEZyYW1lVmlldywgaW4gd2hpY2ggY2FzZSB0aGUgZXZlbnQg
c2hvdWxkIG5vdCBiZSBwYXNzZWQuCiAgICAgICAgIGlmIChuZXdTdWJmcmFtZS0+dmlldygpKQog
ICAgICAgICAgICAgc3dhbGxvd0V2ZW50IHw9IHBhc3NNb3VzZU1vdmVFdmVudFRvU3ViZnJhbWUo
bW91c2VFdmVudCwgbmV3U3ViZnJhbWUuZ2V0KCksIGhvdmVyZWROb2RlKTsKLSNpZiBFTkFCTEUo
Q1VSU09SX1NVUFBPUlQpCiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKEZyYW1lVmlldyogdmll
dyA9IG1fZnJhbWUudmlldygpKSB7Ci0gICAgICAgICAgICBPcHRpb25hbEN1cnNvciBvcHRpb25h
bEN1cnNvciA9IHNlbGVjdEN1cnNvcihtb3VzZUV2ZW50LmhpdFRlc3RSZXN1bHQoKSwgcGxhdGZv
cm1Nb3VzZUV2ZW50LnNoaWZ0S2V5KCkpOwotICAgICAgICAgICAgaWYgKG9wdGlvbmFsQ3Vyc29y
LmlzQ3Vyc29yQ2hhbmdlKCkpIHsKLSAgICAgICAgICAgICAgICBtX2N1cnJlbnRNb3VzZUN1cnNv
ciA9IG9wdGlvbmFsQ3Vyc29yLmN1cnNvcigpOwotICAgICAgICAgICAgICAgIHZpZXctPnNldEN1
cnNvcihtX2N1cnJlbnRNb3VzZUN1cnNvcik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyNp
ZiBFTkFCTEUoQ1VSU09SX1NVUFBPUlQpCisgICAgICAgIGlmIChhdXRvKiB2aWV3ID0gbV9mcmFt
ZS52aWV3KCkpCisgICAgICAgICAgICB1cGRhdGVDdXJzb3IoKnZpZXcsIG1vdXNlRXZlbnQuaGl0
VGVzdFJlc3VsdCgpLCBwbGF0Zm9ybU1vdXNlRXZlbnQuc2hpZnRLZXkoKSk7CiAjZW5kaWYKICAg
ICB9CiAgICAgCkBAIC0xOTY4LDcgKzE5NTEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxl
TW91c2VNb3ZlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybU1vdXNlRQog
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgaWYgKCFzd2FsbG93RXZlbnQpCiAgICAgICAg
IHN3YWxsb3dFdmVudCA9IGhhbmRsZU1vdXNlRHJhZ2dlZEV2ZW50KG1vdXNlRXZlbnQpOwotI2Vu
ZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjZW5kaWYKIAogICAgIHJldHVybiBzd2FsbG93
RXZlbnQ7CiB9CkBAIC0yMjM2LDcgKzIyMTksNyBAQCBzdGF0aWMgYm9vbCBmaW5kRHJvcFpvbmUo
Tm9kZSogdGFyZ2V0LCBEYXRhVHJhbnNmZXIqIGRhdGFUcmFuc2ZlcikKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAgICAgCi1ib29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIpCiti
b29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIpCiB7CiAgICAgUmVmPEZyYW1l
PiBwcm90ZWN0ZWRGcmFtZShtX2ZyYW1lKTsKIApAQCAtMjI3NSwxNiArMjI1OCwxNiBAQCBib29s
IEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50
JiBldmVudCwgRGF0YVRyYW5zZgogICAgICAgICAgICAgICAgIC8vIGZvciBub3cgd2UgZG9uJ3Qg
Y2FyZSBpZiBldmVudCBoYW5kbGVyIGNhbmNlbHMgZGVmYXVsdCBiZWhhdmlvciwgc2luY2UgdGhl
cmUgaXMgbm9uZQogICAgICAgICAgICAgICAgIGRpc3BhdGNoRHJhZ1NyY0V2ZW50KGV2ZW50TmFt
ZXMoKS5kcmFnRXZlbnQsIGV2ZW50KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFjY2Vw
dCA9IGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnZW50ZXJFdmVudCwgKm5ld1Rh
cmdldCwgZXZlbnQsIGRhdGFUcmFuc2Zlcik7CisgICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRj
aERyYWdFdmVudChldmVudE5hbWVzKCkuZHJhZ2VudGVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50
LCAmZGF0YVRyYW5zZmVyKTsKICAgICAgICAgICAgIGlmICghYWNjZXB0KQotICAgICAgICAgICAg
ICAgIGFjY2VwdCA9IGZpbmREcm9wWm9uZShuZXdUYXJnZXQuZ2V0KCksIGRhdGFUcmFuc2Zlcik7
CisgICAgICAgICAgICAgICAgYWNjZXB0ID0gZmluZERyb3Bab25lKG5ld1RhcmdldC5nZXQoKSwg
JmRhdGFUcmFuc2Zlcik7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAodGFyZ2V0SXNGcmFtZSht
X2RyYWdUYXJnZXQuZ2V0KCksIHRhcmdldEZyYW1lKSkgewogICAgICAgICAgICAgaWYgKHRhcmdl
dEZyYW1lKQogICAgICAgICAgICAgICAgIGFjY2VwdCA9IHRhcmdldEZyYW1lLT5ldmVudEhhbmRs
ZXIoKS51cGRhdGVEcmFnQW5kRHJvcChldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICAgICAgfSBl
bHNlIGlmIChtX2RyYWdUYXJnZXQpCi0gICAgICAgICAgICBkaXNwYXRjaERyYWdFdmVudChldmVu
dE5hbWVzKCkuZHJhZ2xlYXZlRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNm
ZXIpOworICAgICAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2
ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgJmRhdGFUcmFuc2Zlcik7CiAKICAgICAgICAg
aWYgKG5ld1RhcmdldCkgewogICAgICAgICAgICAgLy8gV2UgZG8gbm90IGV4cGxpY2l0bHkgY2Fs
bCBkaXNwYXRjaERyYWdFdmVudCBoZXJlIGJlY2F1c2UgaXQgY291bGQgdWx0aW1hdGVseSByZXN1
bHQgaW4gdGhlIGFwcGVhcmFuY2UgdGhhdApAQCAtMjMwMiw5ICsyMjg1LDkgQEAgYm9vbCBFdmVu
dEhhbmRsZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZl
bnQsIERhdGFUcmFuc2YKICAgICAgICAgICAgICAgICAvLyBmb3Igbm93IHdlIGRvbid0IGNhcmUg
aWYgZXZlbnQgaGFuZGxlciBjYW5jZWxzIGRlZmF1bHQgYmVoYXZpb3IsIHNpbmNlIHRoZXJlIGlz
IG5vbmUKICAgICAgICAgICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVudChldmVudE5hbWVzKCku
ZHJhZ0V2ZW50LCBldmVudCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhY2NlcHQgPSBk
aXNwYXRjaERyYWdFdmVudChldmVudE5hbWVzKCkuZHJhZ292ZXJFdmVudCwgKm5ld1RhcmdldCwg
ZXZlbnQsIGRhdGFUcmFuc2Zlcik7CisgICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdF
dmVudChldmVudE5hbWVzKCkuZHJhZ292ZXJFdmVudCwgKm5ld1RhcmdldCwgZXZlbnQsICZkYXRh
VHJhbnNmZXIpOwogICAgICAgICAgICAgaWYgKCFhY2NlcHQpCi0gICAgICAgICAgICAgICAgYWNj
ZXB0ID0gZmluZERyb3Bab25lKG5ld1RhcmdldC5nZXQoKSwgZGF0YVRyYW5zZmVyKTsKKyAgICAg
ICAgICAgICAgICBhY2NlcHQgPSBmaW5kRHJvcFpvbmUobmV3VGFyZ2V0LmdldCgpLCAmZGF0YVRy
YW5zZmVyKTsKICAgICAgICAgICAgIG1fc2hvdWxkT25seUZpcmVEcmFnT3ZlckV2ZW50ID0gZmFs
c2U7CiAgICAgICAgIH0KICAgICB9CkBAIC0yMzEyLDcgKzIyOTUsNyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwg
RGF0YVRyYW5zZgogICAgIHJldHVybiBhY2NlcHQ7CiB9CiAKLXZvaWQgRXZlbnRIYW5kbGVyOjpj
YW5jZWxEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJh
bnNmZXIqIGRhdGFUcmFuc2ZlcikKK3ZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJv
cChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmZXImIGRhdGFUcmFu
c2ZlcikKIHsKICAgICBSZWY8RnJhbWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUpOwogCkBAIC0y
MzIzLDEyICsyMzA2LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcChj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmCiAgICAgfSBlbHNlIGlm
IChtX2RyYWdUYXJnZXQpIHsKICAgICAgICAgaWYgKGRyYWdTdGF0ZSgpLnNvdXJjZSAmJiBkcmFn
U3RhdGUoKS5zaG91bGREaXNwYXRjaEV2ZW50cykKICAgICAgICAgICAgIGRpc3BhdGNoRHJhZ1Ny
Y0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnRXZlbnQsIGV2ZW50KTsKLSAgICAgICAgZGlzcGF0Y2hE
cmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVu
dCwgZGF0YVRyYW5zZmVyKTsKKyAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygp
LmRyYWdsZWF2ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgJmRhdGFUcmFuc2Zlcik7CiAg
ICAgfQogICAgIGNsZWFyRHJhZ1N0YXRlKCk7CiB9CiAKLWJvb2wgRXZlbnRIYW5kbGVyOjpwZXJm
b3JtRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5z
ZmVyKiBkYXRhVHJhbnNmZXIpCitib29sIEV2ZW50SGFuZGxlcjo6cGVyZm9ybURyYWdBbmREcm9w
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5z
ZmVyKQogewogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9mcmFtZSk7CiAKQEAgLTIz
MzgsNyArMjMyMSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERyb3AoY29u
c3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zCiAgICAgICAgIGlmICh0YXJn
ZXRGcmFtZSkKICAgICAgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSB0YXJnZXRGcmFtZS0+ZXZl
bnRIYW5kbGVyKCkucGVyZm9ybURyYWdBbmREcm9wKGV2ZW50LCBkYXRhVHJhbnNmZXIpOwogICAg
IH0gZWxzZSBpZiAobV9kcmFnVGFyZ2V0KQotICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gZGlz
cGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyb3BFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZl
bnQsIGRhdGFUcmFuc2Zlcik7CisgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSBkaXNwYXRjaERy
YWdFdmVudChldmVudE5hbWVzKCkuZHJvcEV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgJmRh
dGFUcmFuc2Zlcik7CiAgICAgY2xlYXJEcmFnU3RhdGUoKTsKICAgICByZXR1cm4gcHJldmVudGVk
RGVmYXVsdDsKIH0KQEAgLTIzNTMsOSArMjMzNiwxMCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6Y2xl
YXJEcmFnU3RhdGUoKQogICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CiAjZW5k
aWYKIH0KKwogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKLXZvaWQgRXZlbnRIYW5k
bGVyOjpzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50PiBl
bGVtZW50KQordm9pZCBFdmVudEhhbmRsZXI6OnNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVu
dChFbGVtZW50KiBlbGVtZW50KQogewogICAgIG1fY2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50
ID0gZWxlbWVudDsKICAgICBtX2V2ZW50SGFuZGxlcldpbGxSZXNldENhcHR1cmluZ01vdXNlRXZl
bnRzRWxlbWVudCA9IGZhbHNlOwpAQCAtMjU2Myw3ICsyNTQ3LDcgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9k
ZSogdGFyZ2UKIAogICAgIC8vIElmIGZvY3VzIHNoaWZ0IGlzIGJsb2NrZWQsIHdlIGVhdCB0aGUg
ZXZlbnQuCiAgICAgYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpOwotICAgIGlmIChwYWdlICYm
ICFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChlbGVtZW50LCAmbV9m
cmFtZSkpCisgICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3Vz
ZWRFbGVtZW50KGVsZW1lbnQsIG1fZnJhbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTM0MTEsMTEgKzMzOTUsMTEgQEAgdm9pZCBFdmVudEhhbmRsZXI6
OmRyYWdTb3VyY2VFbmRlZEF0KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERyYWdP
cGVyYXQKICAgICBtX21vdXNlRG93bk1heVN0YXJ0RHJhZyA9IGZhbHNlOwogfQogCi12b2lkIEV2
ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKEVsZW1lbnQq
IHJvb3RFZGl0YWJsZUVsZW1lbnQpCit2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ1N0YXRl
QWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKEVsZW1lbnQmIHJvb3RFZGl0YWJsZUVsZW1lbnQpCiB7CiAg
ICAgLy8gSWYgaW5zZXJ0aW5nIHRoZSBkcmFnZ2VkIGNvbnRlbnRzIHJlbW92ZWQgdGhlIGRyYWcg
c291cmNlLCB3ZSBzdGlsbCB3YW50IHRvIGZpcmUgZHJhZ2VuZCBhdCB0aGUgcm9vdCBlZGl0YWJs
ZSBlbGVtZW50LgogICAgIGlmIChkcmFnU3RhdGUoKS5zb3VyY2UgJiYgIWRyYWdTdGF0ZSgpLnNv
dXJjZS0+aW5Eb2N1bWVudCgpKQotICAgICAgICBkcmFnU3RhdGUoKS5zb3VyY2UgPSByb290RWRp
dGFibGVFbGVtZW50OworICAgICAgICBkcmFnU3RhdGUoKS5zb3VyY2UgPSAmcm9vdEVkaXRhYmxl
RWxlbWVudDsKIH0KIAogLy8gUmV0dXJuIHZhbHVlIGluZGljYXRlcyBpZiB3ZSBzaG91bGQgY29u
dGludWUgImRlZmF1bHQgcHJvY2Vzc2luZyIsIGkuZS4sIHdoZXRoZXIgZXZlbnQgaGFuZGxlciBj
YW5jZWxlZC4KQEAgLTM2MjUsMjUgKzM2MDksMjQgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRs
ZVRleHRJbnB1dEV2ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXZlbnQqIHVuZGVybHlpbmdFdmUK
ICAgICByZXR1cm4gZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCk7CiB9CiAgICAgCi1ib29sIEV2ZW50
SGFuZGxlcjo6aXNLZXlib2FyZE9wdGlvblRhYihLZXlib2FyZEV2ZW50KiBldmVudCkKK2Jvb2wg
RXZlbnRIYW5kbGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKEtleWJvYXJkRXZlbnQmIGV2ZW50KQog
ewotICAgIHJldHVybiBldmVudAotICAgICAgICAmJiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5h
bWVzKCkua2V5ZG93bkV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXBy
ZXNzRXZlbnQpCi0gICAgICAgICYmIGV2ZW50LT5hbHRLZXkoKQotICAgICAgICAmJiBldmVudC0+
a2V5SWRlbnRpZmllcigpID09ICJVKzAwMDkiOyAgICAKKyAgICByZXR1cm4gKGV2ZW50LnR5cGUo
KSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50IHx8IGV2ZW50LnR5cGUoKSA9PSBldmVudE5h
bWVzKCkua2V5cHJlc3NFdmVudCkKKyAgICAgICAgJiYgZXZlbnQuYWx0S2V5KCkKKyAgICAgICAg
JiYgZXZlbnQua2V5SWRlbnRpZmllcigpID09ICJVKzAwMDkiOwogfQogCi1ib29sIEV2ZW50SGFu
ZGxlcjo6ZXZlbnRJbnZlcnRzVGFic1RvTGlua3NDbGllbnRDYWxsUmVzdWx0KEtleWJvYXJkRXZl
bnQqIGV2ZW50KQorYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xp
ZW50Q2FsbFJlc3VsdChLZXlib2FyZEV2ZW50JiBldmVudCkKIHsKICNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oRUZMKQotICAgIHJldHVybiBFdmVudEhhbmRsZXI6OmlzS2V5Ym9hcmRP
cHRpb25UYWIoZXZlbnQpOworICAgIHJldHVybiBpc0tleWJvYXJkT3B0aW9uVGFiKGV2ZW50KTsK
ICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGV2ZW50KTsKICAgICByZXR1cm4gZmFsc2U7CiAjZW5k
aWYKIH0KIAotYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQqIGV2
ZW50KSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQm
IGV2ZW50KSBjb25zdAogewogICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIG5lZWRzIGEgYmV0
dGVyIG5hbWUuIEl0IGNhbiBiZSBjYWxsZWQgZm9yIGtleXByZXNzZXMgb3RoZXIgdGhhbiBUYWIg
d2hlbiBzcGF0aWFsIG5hdmlnYXRpb24gaXMgZW5hYmxlZC4KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmgKaW5kZXggZGU3OGJjYWU4NGE3NjY0ZGUyOGQ1ZDE3OTA2YjlhM2RiMmUxYjQyMy4u
NmVkN2FlMzM5NWM4MDI2M2Q0YTc3MDBmY2EwYWYwZjZlZjkxOGMyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
Ni0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsMzAgKzMxLDMxIEBACiAjaW5jbHVkZSAiSGl0VGVzdFJl
cXVlc3QuaCIKICNpbmNsdWRlICJMYXlvdXRQb2ludC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91
c2VFdmVudC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlNj
cm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAi
VGV4dEdyYW51bGFyaXR5LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlICJXaGVlbEV2
ZW50RGVsdGFGaWx0ZXIuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogCisjaWYgUExBVEZPUk0oQ09DT0EpCitPQkpDX0NMQVNTIE5T
VmlldzsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogT0JKQ19DTEFTUyBXZWJFdmVudDsK
LU9CSkNfQ0xBU1MgV0FLVmlldzsKLSNpZmRlZiBfX09CSkNfXwotI2luY2x1ZGUgIldBS0FwcEtp
dFN0dWJzLmgiCiAjZW5kaWYKLSNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAKLSNpZiBQTEFURk9S
TShDT0NPQSkKLU9CSkNfQ0xBU1MgTlNWaWV3OworI2lmIFBMQVRGT1JNKE1BQykKK09CSkNfQ0xB
U1MgTlNFdmVudDsKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TKSAmJiBkZWZpbmVkKF9fT0JK
Q19fKQorI2luY2x1ZGUgIldBS0FwcEtpdFN0dWJzLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNjYsMTYgKzY3LDE0IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxlbWVu
dDsKIGNsYXNzIEV2ZW50OwogY2xhc3MgRXZlbnRUYXJnZXQ7Ci1jbGFzcyBGbG9hdFBvaW50Owog
Y2xhc3MgRmxvYXRRdWFkOwogY2xhc3MgRnJhbWU7CitjbGFzcyBGcmFtZVZpZXc7CiBjbGFzcyBI
VE1MRnJhbWVTZXRFbGVtZW50OwotY2xhc3MgSGl0VGVzdFJlcXVlc3Q7CiBjbGFzcyBIaXRUZXN0
UmVzdWx0OwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE1vdXNlRXZlbnRXaXRoSGl0VGVz
dFJlc3VsdHM7CiBjbGFzcyBOb2RlOwotY2xhc3MgT3B0aW9uYWxDdXJzb3I7CiBjbGFzcyBQbGF0
Zm9ybUdlc3R1cmVFdmVudDsKIGNsYXNzIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDsKIGNsYXNzIFBs
YXRmb3JtVG91Y2hFdmVudDsKQEAgLTEwMCw3ICs5OSw3IEBAIGV4dGVybiBjb25zdCBpbnQgTGlu
a0RyYWdIeXN0ZXJlc2lzOwogZXh0ZXJuIGNvbnN0IGludCBJbWFnZURyYWdIeXN0ZXJlc2lzOwog
ZXh0ZXJuIGNvbnN0IGludCBUZXh0RHJhZ0h5c3RlcmVzaXM7CiBleHRlcm4gY29uc3QgaW50IEdl
bmVyYWxEcmFnSHlzdGVyZXNpczsKLSNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKSB8fCBFTkFCTEUoTUFDX0dFU1RV
UkVfRVZFTlRTKQogZXh0ZXJuIGNvbnN0IGZsb2F0IEdlc3R1cmVVbmtub3duOwpAQCAtMTIwLDcg
KzExOSw2IEBAIGVudW0gY2xhc3MgSW1tZWRpYXRlQWN0aW9uU3RhZ2UgewogfTsKIAogY2xhc3Mg
RXZlbnRIYW5kbGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFdmVudEhhbmRsZXIpOwog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IEV2ZW50
SGFuZGxlcihGcmFtZSYpOwpAQCAtMTM2LDcgKzEzNCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUo
UEFOX1NDUk9MTElORykKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0YXJ0KCk7CiAgICAgdm9pZCBk
aWRQYW5TY3JvbGxTdG9wKCk7Ci0gICAgdm9pZCBzdGFydFBhblNjcm9sbGluZyhSZW5kZXJFbGVt
ZW50Kik7CisgICAgdm9pZCBzdGFydFBhblNjcm9sbGluZyhSZW5kZXJFbGVtZW50Jik7CiAjZW5k
aWYKIAogICAgIHZvaWQgc3RvcEF1dG9zY3JvbGxUaW1lcihib29sIHJlbmRlcmVySXNCZWluZ0Rl
c3Ryb3llZCA9IGZhbHNlKTsKQEAgLTE1NiwxMyArMTU0LDEzIEBAIHB1YmxpYzoKICAgICBib29s
IG1vdXNlUHJlc3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VQcmVzc2VkOyB9CiAgICAgTm9k
ZSogbW91c2VQcmVzc05vZGUoKSBjb25zdCB7IHJldHVybiBtX21vdXNlUHJlc3NOb2RlLmdldCgp
OyB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxl
bWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsgLy8gQSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9y
IHJlc2V0dGluZyBjYXB0dXJpbmcgZWxlbWVudCB0byAwLgorICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KEVsZW1lbnQqKTsKIAogI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCi0gICAgYm9vbCB1cGRhdGVEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXIqKTsKLSAgICB2b2lkIGNhbmNlbERyYWdBbmREcm9w
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwotICAgIGJvb2wgcGVy
Zm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2Zlciop
OwotICAgIHZvaWQgdXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKEVsZW1lbnQq
IHJvb3RFZGl0YWJsZUVsZW1lbnQpOworICAgIGJvb2wgdXBkYXRlRHJhZ0FuZERyb3AoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyJik7CisgICAgdm9pZCBjYW5jZWxEcmFn
QW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXImKTsKKyAgICBi
b29sIHBlcmZvcm1EcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJh
bnNmZXImKTsKKyAgICB2b2lkIHVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRlZChF
bGVtZW50JiByb290RWRpdGFibGVFbGVtZW50KTsKICNlbmRpZgogCiAgICAgdm9pZCBzY2hlZHVs
ZUhvdmVyU3RhdGVVcGRhdGUoKTsKQEAgLTE4Nyw4ICsxODUsOCBAQCBwdWJsaWM6CiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBzY3JvbGxSZWN1cnNpdmVseShTY3JvbGxEaXJlY3Rpb24sIFNjcm9s
bEdyYW51bGFyaXR5LCBOb2RlKiBzdGFydGluZ05vZGUgPSBudWxscHRyKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGxvZ2ljYWxTY3JvbGxSZWN1cnNpdmVseShTY3JvbGxMb2dpY2FsRGlyZWN0
aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgTm9kZSogc3RhcnRpbmdOb2RlID0gbnVsbHB0cik7CiAK
LSAgICBib29sIHRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQqKSBjb25zdDsKLSAgICBib29sIHRh
YnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KikgY29uc3Q7CisgICAgYm9vbCB0YWJz
VG9MaW5rcyhLZXlib2FyZEV2ZW50JikgY29uc3Q7CisgICAgYm9vbCB0YWJzVG9BbGxGb3JtQ29u
dHJvbHMoS2V5Ym9hcmRFdmVudCYpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBt
b3VzZU1vdmVkKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgcGFzc01vdXNlTW92ZWRFdmVudFRvU2Nyb2xsYmFycyhjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmKTsKQEAgLTIxMCwxMiArMjA4LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHBsYXRmb3Jt
Tm90aWZ5SWZFbmRHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIGNvbnN0IFdlYWtQ
dHI8U2Nyb2xsYWJsZUFyZWE+Jik7CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgfHwg
RU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykKLSAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8VG91
Y2g+PiBUb3VjaEFycmF5OwotICAgIHR5cGVkZWYgSGFzaE1hcDxFdmVudFRhcmdldCosIFRvdWNo
QXJyYXkqPiBFdmVudFRhcmdldFRvdWNoTWFwOworICAgIHVzaW5nIFRvdWNoQXJyYXkgPSBWZWN0
b3I8UmVmUHRyPFRvdWNoPj47CisgICAgdXNpbmcgRXZlbnRUYXJnZXRUb3VjaE1hcCA9IEhhc2hN
YXA8RXZlbnRUYXJnZXQqLCBUb3VjaEFycmF5Kj47CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJT1Nf
VE9VQ0hfRVZFTlRTKSB8fCBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKSB8fCBFTkFCTEUoTUFD
X0dFU1RVUkVfRVZFTlRTKQotICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8RXZlbnRUYXJnZXQ+
PiBFdmVudFRhcmdldFNldDsKKyAgICB1c2luZyBFdmVudFRhcmdldFNldCA9IEhhc2hTZXQ8UmVm
UHRyPEV2ZW50VGFyZ2V0Pj47CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQpAQCAtMjMxLDcgKzIyOSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9T
KQotICAgIHZvaWQgZGVmYXVsdFRvdWNoRXZlbnRIYW5kbGVyKE5vZGUqLCBUb3VjaEV2ZW50Kik7
CisgICAgdm9pZCBkZWZhdWx0VG91Y2hFdmVudEhhbmRsZXIoTm9kZSYsIFRvdWNoRXZlbnQmKTsK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0yNjQsOCArMjYyLDcgQEAg
cHVibGljOgogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VuZFNjcm9sbEV2ZW50KCk7
CiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgZGVmaW5lZChfX09CSkNfXykKLSNpZiAhUExBVEZP
Uk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNl
RG93bihOU0V2ZW50ICosIE5TRXZlbnQgKmNvcnJlc3BvbmRpbmdQcmVzc3VyZUV2ZW50KTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlRHJhZ2dlZChOU0V2ZW50ICosIE5TRXZlbnQgKmNv
cnJlc3BvbmRpbmdQcmVzc3VyZUV2ZW50KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNl
VXAoTlNFdmVudCAqLCBOU0V2ZW50ICpjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CkBAIC0y
NzMsNyArMjcwLDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJlc3N1cmVD
aGFuZ2UoTlNFdmVudCAqLCBOU0V2ZW50KiBjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBrZXlFdmVudChOU0V2ZW50ICopOwogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgd2hlZWxFdmVudChOU0V2ZW50ICopOwotI2Vsc2UKKyNlbmRpZgorCisjaWYg
UExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW91c2VEb3duKFdlYkV2ZW50
ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW91c2VVcChXZWJFdmVudCAqKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlTW92ZWQoV2ViRXZlbnQgKik7CkBAIC0yODUsMjMgKzI4
NCwyMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB0b3VjaEV2ZW50KFdlYkV2
ZW50ICopOwogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBhc3NNb3VzZU1vdmVkRXZlbnRUb1Njcm9sbGJhcnMo
TlNFdmVudCAqLCBOU0V2ZW50KiBjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2
ZW50ICppbml0aWF0aW5nRXZlbnQpOwotI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKQogICAg
IHZvaWQgc2V0QWN0aXZhdGlvbkV2ZW50TnVtYmVyKGludCBudW0pIHsgbV9hY3RpdmF0aW9uRXZl
bnROdW1iZXIgPSBudW07IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOU0V2ZW50ICpj
dXJyZW50TlNFdmVudCgpOwogICAgIHN0YXRpYyBOU0V2ZW50ICpjb3JyZXNwb25kaW5nUHJlc3N1
cmVFdmVudCgpOwotI2Vsc2UKLSAgICBzdGF0aWMgV2ViRXZlbnQgKmN1cnJlbnRFdmVudCgpOwot
I2VuZGlmIC8vICFQTEFURk9STShJT1MpCi0jZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIGRl
ZmluZWQoX19PQkpDX18pCisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKKyAgICBzdGF0aWMg
V2ViRXZlbnQgKmN1cnJlbnRFdmVudCgpOworCiAgICAgdm9pZCBpbnZhbGlkYXRlQ2xpY2soKTsK
ICNlbmRpZgogCkBAIC0zMjMsOSArMzE5LDggQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOwogICAgIHN0YXRpYyBj
b25zdCBkb3VibGUgVGV4dERyYWdEZWxheTsKLSAgICAKLSAgICBQYXNzUmVmUHRyPERhdGFUcmFu
c2Zlcj4gY3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdDsKLSNlbmRpZiAvLyBFTkFC
TEUoRFJBR19TVVBQT1JUKQorICAgIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURyYWdnaW5nRGF0
YVRyYW5zZmVyKCkgY29uc3Q7CisjZW5kaWYKIAogICAgIGJvb2wgZXZlbnRBY3RpdmF0ZWRWaWV3
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpIGNvbnN0OwogICAgIGJvb2wgdXBkYXRlU2VsZWN0
aW9uRm9yTW91c2VEb3duRGlzcGF0Y2hpbmdTZWxlY3RTdGFydChOb2RlKiwgY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYsIFRleHRHcmFudWxhcml0eSk7CkBAIC0zNDEsMTQgKzMzNiwxOCBAQCBwcml2
YXRlOgogICAgIGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2ZW50U2luZ2xlQ2xpY2soY29uc3QgTW91
c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwogICAgIGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2
ZW50RG91YmxlQ2xpY2soY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwogICAg
IGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2ZW50VHJpcGxlQ2xpY2soY29uc3QgTW91c2VFdmVudFdp
dGhIaXRUZXN0UmVzdWx0cyYpOworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBib29s
IGhhbmRsZU1vdXNlRHJhZ2dlZEV2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3Vs
dHMmKTsKICNlbmRpZgorCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVNb3VzZVJlbGVh
c2VFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CiAKLSAgICBPcHRp
b25hbEN1cnNvciBzZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGJvb2wgc2hpZnRL
ZXkpOworICAgIHN0ZDo6b3B0aW9uYWw8Q3Vyc29yPiBzZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVz
dFJlc3VsdCYsIGJvb2wgc2hpZnRLZXkpOworICAgIHZvaWQgdXBkYXRlQ3Vyc29yKEZyYW1lVmll
dyYsIGNvbnN0IEhpdFRlc3RSZXN1bHQmLCBib29sIHNoaWZ0S2V5KTsKIAogICAgIHZvaWQgaG92
ZXJUaW1lckZpcmVkKCk7CisKICNpZiBFTkFCTEUoQ1VSU09SX1NVUFBPUlQpCiAgICAgdm9pZCBj
dXJzb3JVcGRhdGVUaW1lckZpcmVkKCk7CiAjZW5kaWYKQEAgLTM1OSw4ICszNTgsOCBAQCBwcml2
YXRlOgogICAgIAogICAgIGJvb2wgbW91c2VEb3duTWF5U3RhcnRTZWxlY3QoKSBjb25zdCB7IHJl
dHVybiBtX21vdXNlRG93bk1heVN0YXJ0U2VsZWN0OyB9CiAKLSAgICBzdGF0aWMgYm9vbCBpc0tl
eWJvYXJkT3B0aW9uVGFiKEtleWJvYXJkRXZlbnQqKTsKLSAgICBzdGF0aWMgYm9vbCBldmVudElu
dmVydHNUYWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQoS2V5Ym9hcmRFdmVudCopOworICAgIHN0
YXRpYyBib29sIGlzS2V5Ym9hcmRPcHRpb25UYWIoS2V5Ym9hcmRFdmVudCYpOworICAgIHN0YXRp
YyBib29sIGV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdChLZXlib2FyZEV2
ZW50Jik7CiAKICNpZiAhRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgdm9pZCBmYWtlTW91
c2VNb3ZlRXZlbnRUaW1lckZpcmVkKCk7CkBAIC0zODUsNiArMzg0LDcgQEAgcHJpdmF0ZToKICAg
ICBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIHByZXBhcmVNb3VzZUV2ZW50KGNvbnN0IEhp
dFRlc3RSZXF1ZXN0JiwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jik7CiAKICAgICBib29sIGRp
c3BhdGNoTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSogdGFy
Z2V0LCBib29sIGNhbmNlbGFibGUsIGludCBjbGlja0NvdW50LCBjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmLCBib29sIHNldFVuZGVyKTsKKwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAg
Ym9vbCBkaXNwYXRjaERyYWdFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRWxl
bWVudCYgdGFyZ2V0LCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXIqKTsK
IApAQCAtMzkyLDcgKzM5Miw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIGhhbmRsZURyYWcoY29u
c3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIENoZWNrRHJhZ0h5c3RlcmVzaXMpOwog
I2VuZGlmCisKICAgICBib29sIGhhbmRsZU1vdXNlVXAoY29uc3QgTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cyYpOworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICB2b2lkIGNsZWFy
RHJhZ1N0YXRlKCk7CiAKQEAgLTQwMCw3ICs0MDIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBk
cmFnSHlzdGVyZXNpc0V4Y2VlZGVkKGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKICAgICBib29s
IGRyYWdIeXN0ZXJlc2lzRXhjZWVkZWQoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKLSNlbmRpZiAv
LyBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2VuZGlmCiAgICAgCiAgICAgYm9vbCBtb3VzZU1vdmVt
ZW50RXhjZWVkc1RocmVzaG9sZChjb25zdCBGbG9hdFBvaW50JiwgaW50IHBvaW50c1RocmVzaG9s
ZCkgY29uc3Q7CiAKQEAgLTQzMSwxMSArNDMzLDkgQEAgcHJpdmF0ZToKICAgICAvLyBUaGUgZm9s
bG93aW5nIGFyZSBjYWxsZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBoYW5kbGVNb3VzZVVwIGFuZCBo
YW5kbGVEcmFnLiAgCiAgICAgLy8gSWYgdGhleSByZXR1cm4gdHJ1ZSBpdCBpbmRpY2F0ZXMgdGhh
dCB0aGV5IGhhdmUgY29uc3VtZWQgdGhlIGV2ZW50LgogICAgIGJvb2wgZXZlbnRMb29wSGFuZGxl
TW91c2VVcChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7Ci0jaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkKLSAgICBib29sIGV2ZW50TG9vcEhhbmRsZU1vdXNlRHJhZ2dlZChjb25z
dCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShE
UkFHX1NVUFBPUlQpCisgICAgYm9vbCBldmVudExvb3BIYW5kbGVNb3VzZURyYWdnZWQoY29uc3Qg
TW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9u
Rm9yTW91c2VEcmFnKGNvbnN0IEhpdFRlc3RSZXN1bHQmKTsKICNlbmRpZgogCkBAIC00NzMsMjEg
KzQ3MywyNCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxOb2RlPiBtX21vdXNlUHJlc3NOb2RlOwog
CiAgICAgYm9vbCBtX21vdXNlRG93bk1heVN0YXJ0U2VsZWN0IHsgZmFsc2UgfTsKKwogI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCiAgICAgYm9vbCBtX21vdXNlRG93bk1heVN0YXJ0RHJhZyB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2RyYWdNYXlTdGFydFNlbGVjdGlvbkluc3RlYWQgeyBmYWxzZSB9
OwogI2VuZGlmCisKICAgICBib29sIG1fbW91c2VEb3duV2FzU2luZ2xlQ2xpY2tJblNlbGVjdGlv
biB7IGZhbHNlIH07CiAgICAgZW51bSBTZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgeyBIYXZlTm90
U3RhcnRlZFNlbGVjdGlvbiwgUGxhY2VkQ2FyZXQsIEV4dGVuZGVkU2VsZWN0aW9uIH07CiAgICAg
U2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlIG1fc2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlIHsgSGF2
ZU5vdFN0YXJ0ZWRTZWxlY3Rpb24gfTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAg
TGF5b3V0UG9pbnQgbV9kcmFnU3RhcnRQb3M7CisgICAgTGF5b3V0UG9pbnQgbV9kcmFnU3RhcnRQ
b3NpdGlvbjsKICNlbmRpZgogCiAgICAgYm9vbCBtX3BhblNjcm9sbEJ1dHRvblByZXNzZWQgeyBm
YWxzZSB9OwogCiAgICAgVGltZXIgbV9ob3ZlclRpbWVyOworCiAjaWYgRU5BQkxFKENVUlNPUl9T
VVBQT1JUKQogICAgIFRpbWVyIG1fY3Vyc29yVXBkYXRlVGltZXI7CiAjZW5kaWYKQEAgLTQ5NSw2
ICs0OTgsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBUaW1lciBtX3BlbmRp
bmdNb21lbnR1bVdoZWVsRXZlbnRzVGltZXI7CiAjZW5kaWYKKwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxBdXRvc2Nyb2xsQ29udHJvbGxlcj4gbV9hdXRvc2Nyb2xsQ29udHJvbGxlcjsKICAgICBib29s
IG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Nyb2xsIHsgZmFsc2UgfTsKICAgICBib29sIG1fbW91
c2VEb3duV2FzSW5TdWJmcmFtZSB7IGZhbHNlIH07CkBAIC01MjMsMTEgKzUyNywxMyBAQCBwcml2
YXRlOgogICAgIGZsb2F0IG1fZ2VzdHVyZUluaXRpYWxEaWFtZXRlciB7IEdlc3R1cmVVbmtub3du
IH07CiAgICAgZmxvYXQgbV9nZXN0dXJlSW5pdGlhbFJvdGF0aW9uIHsgR2VzdHVyZVVua25vd24g
fTsKICNlbmRpZgorCiAjaWYgRU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykgfHwgRU5BQkxFKE1B
Q19HRVNUVVJFX0VWRU5UUykKICAgICBmbG9hdCBtX2dlc3R1cmVMYXN0RGlhbWV0ZXIgeyBHZXN0
dXJlVW5rbm93biB9OwogICAgIGZsb2F0IG1fZ2VzdHVyZUxhc3RSb3RhdGlvbiB7IEdlc3R1cmVV
bmtub3duIH07CiAgICAgRXZlbnRUYXJnZXRTZXQgbV9nZXN0dXJlVGFyZ2V0czsKICNlbmRpZgor
CiAjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKICAgICBib29sIG1faGFzQWN0aXZlR2Vz
dHVyZSB7IGZhbHNlIH07CiAjZW5kaWYKQEAgLTU1OCwxMiArNTY0LDE0IEBAIHByaXZhdGU6CiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgTlNWaWV3ICptX21vdXNlRG93blZpZXcgeyBudWxscHRy
IH07CiAgICAgYm9vbCBtX3NlbmRpbmdFdmVudFRvU3VidmlldyB7IGZhbHNlIH07Ci0jaWYgIVBM
QVRGT1JNKElPUykKLSAgICBpbnQgbV9hY3RpdmF0aW9uRXZlbnROdW1iZXIgeyAtMSB9OwogI2Vu
ZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgaW50IG1fYWN0aXZhdGlvbkV2ZW50TnVtYmVy
IHsgLTEgfTsKICNlbmRpZgorCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgIUVOQUJMRShJ
T1NfVE9VQ0hfRVZFTlRTKQotICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFJlZlB0cjxFdmVudFRh
cmdldD4+IFRvdWNoVGFyZ2V0TWFwOworICAgIHVzaW5nIFRvdWNoVGFyZ2V0TWFwID0gSGFzaE1h
cDxpbnQsIFJlZlB0cjxFdmVudFRhcmdldD4+OwogICAgIFRvdWNoVGFyZ2V0TWFwIG1fb3JpZ2lu
YXRpbmdUb3VjaFBvaW50VGFyZ2V0czsKICAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fb3JpZ2luYXRp
bmdUb3VjaFBvaW50RG9jdW1lbnQ7CiAgICAgdW5zaWduZWQgbV9vcmlnaW5hdGluZ1RvdWNoUG9p
bnRUYXJnZXRLZXkgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAK
aW5kZXggYTdiMjU1N2U2OTQ2ZGI5ZTU2MTE1N2FkZjcyY2MyODI2ZWZlODc0Ny4uNWFhODZjOTlj
ODlmM2FmZWRkYTk3NTg5NmQ3MmMyMDcxNWQ5NTU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcApAQCAtMzE2LDcgKzMxNiw3IEBAIEZvY3VzQ29udHJvbGxlcjo6Rm9j
dXNDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIEFjdGl2aXR5U3RhdGU6OkZsYWdzIGFjdGl2aXR5U3Rh
dGUpCiB7CiB9CiAKLXZvaWQgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRnJhbWUoUGFzc1Jl
ZlB0cjxGcmFtZT4gZnJhbWUpCit2b2lkIEZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEZyYW1l
KEZyYW1lKiBmcmFtZSkKIHsKICAgICBBU1NFUlQoIWZyYW1lIHx8IGZyYW1lLT5wYWdlKCkgPT0g
Jm1fcGFnZSk7CiAgICAgaWYgKG1fZm9jdXNlZEZyYW1lID09IGZyYW1lIHx8IG1faXNDaGFuZ2lu
Z0ZvY3VzZWRGcmFtZSkKQEAgLTc2NSw4ICs3NjUsOSBAQCBzdGF0aWMgdm9pZCBjbGVhclNlbGVj
dGlvbklmTmVlZGVkKEZyYW1lKiBvbGRGb2N1c2VkRnJhbWUsIEZyYW1lKiBuZXdGb2N1c2VkRnJh
bQogICAgIG9sZEZvY3VzZWRGcmFtZS0+c2VsZWN0aW9uKCkuY2xlYXIoKTsKIH0KIAotYm9vbCBG
b2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIFBhc3NS
ZWZQdHI8RnJhbWU+IG5ld0ZvY3VzZWRGcmFtZSwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQor
Ym9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQs
IEZyYW1lJiBuZXdGb2N1c2VkRnJhbWUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKKyAg
ICBSZWY8RnJhbWU+IHByb3RlY3RlZE5ld0ZvY3VzZWRGcmFtZSA9IG5ld0ZvY3VzZWRGcmFtZTsK
ICAgICBSZWZQdHI8RnJhbWU+IG9sZEZvY3VzZWRGcmFtZSA9IGZvY3VzZWRGcmFtZSgpOwogICAg
IFJlZlB0cjxEb2N1bWVudD4gb2xkRG9jdW1lbnQgPSBvbGRGb2N1c2VkRnJhbWUgPyBvbGRGb2N1
c2VkRnJhbWUtPmRvY3VtZW50KCkgOiBudWxscHRyOwogICAgIApAQCAtNzgwLDcgKzc4MSw3IEBA
IGJvb2wgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50
LCBQYXNzUmVmUHRyPEZyYW1lPiBuZXdGCiAKICAgICBtX3BhZ2UuZWRpdG9yQ2xpZW50KCkud2ls
bFNldElucHV0TWV0aG9kU3RhdGUoKTsKIAotICAgIGNsZWFyU2VsZWN0aW9uSWZOZWVkZWQob2xk
Rm9jdXNlZEZyYW1lLmdldCgpLCBuZXdGb2N1c2VkRnJhbWUuZ2V0KCksIGVsZW1lbnQpOworICAg
IGNsZWFyU2VsZWN0aW9uSWZOZWVkZWQob2xkRm9jdXNlZEZyYW1lLmdldCgpLCAmbmV3Rm9jdXNl
ZEZyYW1lLCBlbGVtZW50KTsKIAogICAgIGlmICghZWxlbWVudCkgewogICAgICAgICBpZiAob2xk
RG9jdW1lbnQpCkBAIC03OTksMTEgKzgwMCwxMSBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6c2V0
Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUGFzc1JlZlB0cjxGcmFtZT4gbmV3Rgog
ICAgIGlmIChvbGREb2N1bWVudCAmJiBvbGREb2N1bWVudCAhPSBuZXdEb2N1bWVudC5wdHIoKSkK
ICAgICAgICAgb2xkRG9jdW1lbnQtPnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIpOwogCi0gICAg
aWYgKG5ld0ZvY3VzZWRGcmFtZSAmJiAhbmV3Rm9jdXNlZEZyYW1lLT5wYWdlKCkpIHsKKyAgICBp
ZiAoIW5ld0ZvY3VzZWRGcmFtZS5wYWdlKCkpIHsKICAgICAgICAgc2V0Rm9jdXNlZEZyYW1lKG51
bGxwdHIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHNldEZvY3VzZWRGcmFt
ZShuZXdGb2N1c2VkRnJhbWUpOworICAgIHNldEZvY3VzZWRGcmFtZSgmbmV3Rm9jdXNlZEZyYW1l
KTsKIAogICAgIFJlZjxFbGVtZW50PiBwcm90ZWN0KCplbGVtZW50KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmgKaW5kZXggZWNiZTM5NjFkYTFmNWIwMDViMDFiY2M4MjUxNmI1
MGEyN2E4ZTJhZS4uYzZkY2YyMjIwOTM1ZWNiYjFmY2JkNDIyMWYyY2EyZDk0NzNmNzdhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDEyICszMCwxMCBAQAog
I2luY2x1ZGUgIkxheW91dFJlY3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBGb2N1c0NhbmRpZGF0
ZTsKIGNsYXNzIENvbnRhaW5lck5vZGU7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7
CkBAIC00OCwxOSArNDYsMjEgQEAgY2xhc3MgTm9kZTsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBUcmVl
U2NvcGU7CiAKK3N0cnVjdCBGb2N1c0NhbmRpZGF0ZTsKKwogY2xhc3MgRm9jdXNDb250cm9sbGVy
IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGb2N1c0NvbnRyb2xsZXIpOyBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBGb2N1c0NvbnRyb2xsZXIoUGFnZSYsIEFjdGl2aXR5U3RhdGU6OkZsYWdzKTsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Rm9jdXNlZEZyYW1lKFBhc3NSZWZQdHI8RnJh
bWU+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZvY3VzZWRGcmFtZShGcmFtZSopOwog
ICAgIEZyYW1lKiBmb2N1c2VkRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZvY3VzZWRGcmFtZS5n
ZXQoKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lJiBmb2N1c2VkT3JNYWluRnJhbWUoKSBj
b25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0SW5pdGlhbEZvY3VzKEZvY3VzRGly
ZWN0aW9uLCBLZXlib2FyZEV2ZW50Kik7CiAgICAgYm9vbCBhZHZhbmNlRm9jdXMoRm9jdXNEaXJl
Y3Rpb24sIEtleWJvYXJkRXZlbnQmLCBib29sIGluaXRpYWxGb2N1cyA9IGZhbHNlKTsKIAotICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCosIFBhc3NSZWZQ
dHI8RnJhbWU+LCBGb2N1c0RpcmVjdGlvbiA9IEZvY3VzRGlyZWN0aW9uTm9uZSk7CisgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiwgRnJhbWUmLCBGb2N1
c0RpcmVjdGlvbiA9IEZvY3VzRGlyZWN0aW9uTm9uZSk7CiAKICAgICB2b2lkIHNldEFjdGl2aXR5
U3RhdGUoQWN0aXZpdHlTdGF0ZTo6RmxhZ3MpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IGVk
YTNjZjZiNGJlM2U5OTI1YjI1MWM1NjdhODRlNDlmNzEwMDZlY2YuLjg3OGVlMWNiMjIwMzY0ZDQ4
MDRjMTNkNDBhMmM4ODEyZjc5OTMyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC03NzcsNyAr
Nzc3LDcgQEAgdm9pZCBGcmFtZTo6d2lsbERldGFjaFBhZ2UoKQogCiAjaWYgUExBVEZPUk0oSU9T
KQogICAgIGlmIChXZWJUaHJlYWRDb3VudE9mT2JzZXJ2ZWRDb250ZW50TW9kaWZpZXJzKCkgPiAw
ICYmIG1fcGFnZSkKLSAgICAgICAgbV9wYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5jbGVhckNvbnRl
bnRDaGFuZ2VPYnNlcnZlcnModGhpcyk7CisgICAgICAgIG1fcGFnZS0+Y2hyb21lKCkuY2xpZW50
KCkuY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKCp0aGlzKTsKICNlbmRpZgogCiAgICAgc2Ny
aXB0KCkuY2xlYXJTY3JpcHRPYmplY3RzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKaW5k
ZXggZGVlYjIzYjc1ODQ0OWJiZmU1YzU1ZjE5ZDgwZDA0OTI4MjkxMTdhYS4uZmRjZjM1NjBlZTRi
MTlmYTk4MDZkNDkzNDBhMjMzODFhOWJhYmUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNw
cApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJ
biBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
QEAgLTYzLDI1ICs2Myw2IEBAIEZyYW1lKiBGcmFtZVRyZWU6OnBhcmVudCgpIGNvbnN0CiAgICAg
cmV0dXJuIG1fcGFyZW50OwogfQogCi1ib29sIEZyYW1lVHJlZTo6dHJhbnNmZXJDaGlsZChQYXNz
UmVmUHRyPEZyYW1lPiBjaGlsZCkKLXsKLSAgICBGcmFtZSogb2xkUGFyZW50ID0gY2hpbGQtPnRy
ZWUoKS5wYXJlbnQoKTsKLSAgICBpZiAob2xkUGFyZW50ID09ICZtX3RoaXNGcmFtZSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOyAvLyB8Y2hpbGR8IGlzIGFscmVhZHkgYSBjaGlsZCBvZiBtX3RoaXNG
cmFtZS4KLQotICAgIGlmIChvbGRQYXJlbnQpCi0gICAgICAgIG9sZFBhcmVudC0+dHJlZSgpLnJl
bW92ZUNoaWxkKGNoaWxkLmdldCgpKTsKLQotICAgIEFTU0VSVChjaGlsZC0+cGFnZSgpID09IG1f
dGhpc0ZyYW1lLnBhZ2UoKSk7Ci0gICAgY2hpbGQtPnRyZWUoKS5tX3BhcmVudCA9ICZtX3RoaXNG
cmFtZTsKLQotICAgIC8vIFdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGNoaWxkIHN0aWxsIGhh
cyBhIHVuaXF1ZSBmcmFtZSBuYW1lIHdpdGggcmVzcGVjdCB0byBpdHMgbmV3IHBhcmVudC4KLSAg
ICBjaGlsZC0+dHJlZSgpLnNldE5hbWUoY2hpbGQtPnRyZWUoKS5tX25hbWUpOwotCi0gICAgYWN0
dWFsbHlBcHBlbmRDaGlsZChjaGlsZCk7IC8vIE5vdGUsIG9uIHJldHVybiB8Y2hpbGR8IGlzIG51
bGwuCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHVuc2lnbmVkIEZyYW1lVHJlZTo6aW5kZXhJblBh
cmVudCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BhcmVudCkKQEAgLTk1LDQ2ICs3NiwzMiBAQCB1
bnNpZ25lZCBGcmFtZVRyZWU6OmluZGV4SW5QYXJlbnQoKSBjb25zdAogICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgRnJhbWVUcmVlOjphcHBlbmRDaGlsZChQYXNz
UmVmUHRyPEZyYW1lPiBjaGlsZCkKLXsKLSAgICBBU1NFUlQoY2hpbGQtPnBhZ2UoKSA9PSBtX3Ro
aXNGcmFtZS5wYWdlKCkpOwotICAgIGNoaWxkLT50cmVlKCkubV9wYXJlbnQgPSAmbV90aGlzRnJh
bWU7Ci0gICAgYWN0dWFsbHlBcHBlbmRDaGlsZChjaGlsZCk7IC8vIE5vdGUsIG9uIHJldHVybiB8
Y2hpbGR8IGlzIG51bGwuCi19Ci0KLXZvaWQgRnJhbWVUcmVlOjphY3R1YWxseUFwcGVuZENoaWxk
KFBhc3NSZWZQdHI8RnJhbWU+IGNoaWxkKQordm9pZCBGcmFtZVRyZWU6OmFwcGVuZENoaWxkKEZy
YW1lJiBjaGlsZCkKIHsKLSAgICBBU1NFUlQoY2hpbGQtPnRyZWUoKS5tX3BhcmVudCA9PSAmbV90
aGlzRnJhbWUpOworICAgIEFTU0VSVChjaGlsZC5wYWdlKCkgPT0gbV90aGlzRnJhbWUucGFnZSgp
KTsKKyAgICBjaGlsZC50cmVlKCkubV9wYXJlbnQgPSAmbV90aGlzRnJhbWU7CiAgICAgRnJhbWUq
IG9sZExhc3QgPSBtX2xhc3RDaGlsZDsKLSAgICBtX2xhc3RDaGlsZCA9IGNoaWxkLmdldCgpOwor
ICAgIG1fbGFzdENoaWxkID0gJmNoaWxkOwogCiAgICAgaWYgKG9sZExhc3QpIHsKLSAgICAgICAg
Y2hpbGQtPnRyZWUoKS5tX3ByZXZpb3VzU2libGluZyA9IG9sZExhc3Q7Ci0gICAgICAgIG9sZExh
c3QtPnRyZWUoKS5tX25leHRTaWJsaW5nID0gY2hpbGQ7CisgICAgICAgIGNoaWxkLnRyZWUoKS5t
X3ByZXZpb3VzU2libGluZyA9IG9sZExhc3Q7CisgICAgICAgIG9sZExhc3QtPnRyZWUoKS5tX25l
eHRTaWJsaW5nID0gJmNoaWxkOwogICAgIH0gZWxzZQotICAgICAgICBtX2ZpcnN0Q2hpbGQgPSBj
aGlsZDsKKyAgICAgICAgbV9maXJzdENoaWxkID0gJmNoaWxkOwogCiAgICAgbV9zY29wZWRDaGls
ZENvdW50ID0gaW52YWxpZENvdW50OwogCiAgICAgQVNTRVJUKCFtX2xhc3RDaGlsZC0+dHJlZSgp
Lm1fbmV4dFNpYmxpbmcpOwogfQogCi12b2lkIEZyYW1lVHJlZTo6cmVtb3ZlQ2hpbGQoRnJhbWUq
IGNoaWxkKQordm9pZCBGcmFtZVRyZWU6OnJlbW92ZUNoaWxkKEZyYW1lJiBjaGlsZCkKIHsKLSAg
ICBjaGlsZC0+dHJlZSgpLm1fcGFyZW50ID0gbnVsbHB0cjsKLQotICAgIC8vIFNsaWdodGx5IHRy
aWNreSB3YXkgdG8gcHJldmVudCBkZWxldGluZyB0aGUgY2hpbGQgdW50aWwgd2UgYXJlIGRvbmUg
d2l0aCBpdCwgdy9vCi0gICAgLy8gZXh0cmEgcmVmcy4gVGhlc2Ugc3dhcHMgbGVhdmUgdGhlIGNo
aWxkIGluIGEgY2lyY3VsYXIgbGlzdCBieSBpdHNlbGYuIENsZWFyaW5nIGl0cwotICAgIC8vIHBy
ZXZpb3VzIGFuZCBuZXh0IHdpbGwgdGhlbiBmaW5hbGx5IGRlcmVmIGl0LgotCi0gICAgUmVmUHRy
PEZyYW1lPiYgbmV3TG9jYXRpb25Gb3JOZXh0ID0gbV9maXJzdENoaWxkID09IGNoaWxkID8gbV9m
aXJzdENoaWxkIDogY2hpbGQtPnRyZWUoKS5tX3ByZXZpb3VzU2libGluZy0+dHJlZSgpLm1fbmV4
dFNpYmxpbmc7Ci0gICAgRnJhbWUqJiBuZXdMb2NhdGlvbkZvclByZXZpb3VzID0gbV9sYXN0Q2hp
bGQgPT0gY2hpbGQgPyBtX2xhc3RDaGlsZCA6IGNoaWxkLT50cmVlKCkubV9uZXh0U2libGluZy0+
dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nOwotICAgIHN3YXAobmV3TG9jYXRpb25Gb3JOZXh0LCBj
aGlsZC0+dHJlZSgpLm1fbmV4dFNpYmxpbmcpOwotICAgIC8vIEZvciBzb21lIGluZXhwbGljYWJs
ZSByZWFzb24sIHRoZSBmb2xsb3dpbmcgbGluZSBkb2VzIG5vdCBjb21waWxlIHdpdGhvdXQgdGhl
IGV4cGxpY2l0IHN0ZDo6IG5hbWVzcGFjZQotICAgIHN0ZDo6c3dhcChuZXdMb2NhdGlvbkZvclBy
ZXZpb3VzLCBjaGlsZC0+dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nKTsKKyAgICBGcmFtZSomIG5l
d0xvY2F0aW9uRm9yUHJldmlvdXMgPSBtX2xhc3RDaGlsZCA9PSAmY2hpbGQgPyBtX2xhc3RDaGls
ZCA6IGNoaWxkLnRyZWUoKS5tX25leHRTaWJsaW5nLT50cmVlKCkubV9wcmV2aW91c1NpYmxpbmc7
CisgICAgUmVmUHRyPEZyYW1lPiYgbmV3TG9jYXRpb25Gb3JOZXh0ID0gbV9maXJzdENoaWxkID09
ICZjaGlsZCA/IG1fZmlyc3RDaGlsZCA6IGNoaWxkLnRyZWUoKS5tX3ByZXZpb3VzU2libGluZy0+
dHJlZSgpLm1fbmV4dFNpYmxpbmc7CiAKLSAgICBjaGlsZC0+dHJlZSgpLm1fcHJldmlvdXNTaWJs
aW5nID0gbnVsbHB0cjsKLSAgICBjaGlsZC0+dHJlZSgpLm1fbmV4dFNpYmxpbmcgPSBudWxscHRy
OworICAgIGNoaWxkLnRyZWUoKS5tX3BhcmVudCA9IG51bGxwdHI7CisgICAgbmV3TG9jYXRpb25G
b3JQcmV2aW91cyA9IHN0ZDo6ZXhjaGFuZ2UoY2hpbGQudHJlZSgpLm1fcHJldmlvdXNTaWJsaW5n
LCBudWxscHRyKTsKKyAgICBuZXdMb2NhdGlvbkZvck5leHQgPSBXVEZNb3ZlKGNoaWxkLnRyZWUo
KS5tX25leHRTaWJsaW5nKTsKIAogICAgIG1fc2NvcGVkQ2hpbGRDb3VudCA9IGludmFsaWRDb3Vu
dDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oCmluZGV4IGFiMTZmMGFkNjM5NjI1YWUyZDc4YzE3
OWYxMzUzYmI4NGM5OGFlMWEuLjNmODdjMjc5YmRjM2EwNjRmZTg4ODA4YjYwM2EyYWNmN2YyZGM3
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDYgQXBwbGUgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02NSwx
MCArNjUsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUqIHRyYXZlcnNlTmV4
dFdpdGhXcmFwKGJvb2wpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lKiB0cmF2ZXJz
ZVByZXZpb3VzV2l0aFdyYXAoYm9vbCkgY29uc3Q7CiAgICAgCi0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPEZyYW1lPik7Ci0gICAgYm9vbCB0cmFuc2ZlckNo
aWxkKFBhc3NSZWZQdHI8RnJhbWU+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGVuZENo
aWxkKEZyYW1lJik7CiAgICAgdm9pZCBkZXRhY2hGcm9tUGFyZW50KCkgeyBtX3BhcmVudCA9IG51
bGxwdHI7IH0KLSAgICB2b2lkIHJlbW92ZUNoaWxkKEZyYW1lKik7CisgICAgdm9pZCByZW1vdmVD
aGlsZChGcmFtZSYpOwogCiAgICAgRnJhbWUqIGNoaWxkKHVuc2lnbmVkIGluZGV4KSBjb25zdDsK
ICAgICBGcmFtZSogY2hpbGQoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdDsKQEAgLTg3
LDcgKzg2LDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEZyYW1lKiBkZWVwTGFzdENoaWxk
KCkgY29uc3Q7Ci0gICAgdm9pZCBhY3R1YWxseUFwcGVuZENoaWxkKFBhc3NSZWZQdHI8RnJhbWU+
KTsKIAogICAgIGJvb2wgc2NvcGVkQnkoVHJlZVNjb3BlKikgY29uc3Q7CiAgICAgRnJhbWUqIHNj
b3BlZENoaWxkKHVuc2lnbmVkIGluZGV4LCBUcmVlU2NvcGUqKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAppbmRleCBkOTRjOWQ5MjFhNGE0MTk2M2VjOGRhZTc1YzBiNGUyMzI2MDk3
OGEyLi40ZDYzOGEyZTc1M2MxZWFiN2JmYzBkYzc4Yzg3MzdkMGU1MmMyYTBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCkBAIC02NzcsNyArNjc3LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNl
dENvbnRlbnRzU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogCiAgICAgdXBkYXRlU2Nyb2xsYWJs
ZUFyZWFTZXQoKTsKIAotICAgIHBhZ2UtPmNocm9tZSgpLmNvbnRlbnRzU2l6ZUNoYW5nZWQoJmZy
YW1lKCksIHNpemUpOyAvLyBOb3RpZnkgb25seS4KKyAgICBwYWdlLT5jaHJvbWUoKS5jb250ZW50
c1NpemVDaGFuZ2VkKGZyYW1lKCksIHNpemUpOyAvLyBOb3RpZnkgb25seS4KIAogICAgIGlmIChm
cmFtZSgpLmlzTWFpbkZyYW1lKCkpIHsKICAgICAgICAgZnJhbWUoKS5tYWluRnJhbWUoKS5wYWdl
T3ZlcmxheUNvbnRyb2xsZXIoKS5kaWRDaGFuZ2VEb2N1bWVudFNpemUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TWFpbkZyYW1lLmNwcAppbmRleCA0ODE3NGNiMjQzN2Q1OTYwYjIxYzUzODM2YzUyNzFiNjYwZDg4
NmMxLi5hMTdiZTNiYjUzYTg5MmY1YmU2MmQ0YzRkNzcyNGUwYWQ0Y2ZkNGNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9NYWluRnJhbWUuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgTWFpbkZyYW1lOjpzZWxm
T25seURlcmVmKCkKIHZvaWQgTWFpbkZyYW1lOjpkcm9wQ2hpbGRyZW4oKQogewogICAgIHdoaWxl
IChGcmFtZSogY2hpbGQgPSB0cmVlKCkuZmlyc3RDaGlsZCgpKQotICAgICAgICB0cmVlKCkucmVt
b3ZlQ2hpbGQoY2hpbGQpOworICAgICAgICB0cmVlKCkucmVtb3ZlQ2hpbGQoKmNoaWxkKTsKIH0K
IAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGRiMTdlNmJhZjdhY2U0
YzI3MjY1YzhlZGIzNzA1ZmRiMTdlYjIwYmEuLjdkNmFmMTEwYTRjZDRkYWRlY2VkMjQ1OTA2NjI3
MzA0MmYzZDBjNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMzYzLDcgKzM2Myw3IEBAIFZpZXdw
b3J0QXJndW1lbnRzIFBhZ2U6OnZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3QKIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yKiBQYWdlOjpzY3JvbGxpbmdDb29yZGluYXRvcigpCiB7CiAgICAgaWYgKCFtX3Nj
cm9sbGluZ0Nvb3JkaW5hdG9yICYmIG1fc2V0dGluZ3MtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yRW5h
YmxlZCgpKSB7Ci0gICAgICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBjaHJvbWUoKS5jbGll
bnQoKS5jcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcih0aGlzKTsKKyAgICAgICAgbV9zY3JvbGxp
bmdDb29yZGluYXRvciA9IGNocm9tZSgpLmNsaWVudCgpLmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yKCp0aGlzKTsKICAgICAgICAgaWYgKCFtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKQogICAgICAg
ICAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvciA9IFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVh
dGUodGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3Zl
cmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmNwcAppbmRleCBlNzBi
Y2EwNTIzZjBlMzk1Zjg3N2ZmNjNjMTJhYTM5NTU3YWRlZDdjLi4yY2E4NmY5ODI4MDgxNjM3ODRm
MmFiN2ZhNDNlZWViYmVlMzc5NWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmNwcApA
QCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgUGFnZU92ZXJsYXk6OmZhZGVBbmltYXRpb25UaW1lckZp
cmVkKCkKIAogICAgICAgICAvLyBJZiB0aGlzIHdhcyBhIGZhZGUgb3V0LCB1bmluc3RhbGwgdGhl
IHBhZ2Ugb3ZlcmxheS4KICAgICAgICAgaWYgKHdhc0ZhZGluZ091dCkKLSAgICAgICAgICAgIGNv
bnRyb2xsZXIoKS0+dW5pbnN0YWxsUGFnZU92ZXJsYXkodGhpcywgUGFnZU92ZXJsYXk6OkZhZGVN
b2RlOjpEb05vdEZhZGUpOworICAgICAgICAgICAgY29udHJvbGxlcigpLT51bmluc3RhbGxQYWdl
T3ZlcmxheSgqdGhpcywgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCmlu
ZGV4IDg2NmI4NzBjYjhlNGQxYjdlNWQyMWIzYjE2YWMxZTVjNmIzYWJmODMuLjA1NDNiZDUzNGQy
NTFiYTM3ZGNhNDIxZGExN2UyYzk5M2EyZGFmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTUsMjcgKzk1LDI1IEBAIHN0YXRpYyB2b2lkIHVw
ZGF0ZU92ZXJsYXlHZW9tZXRyeShQYWdlT3ZlcmxheSYgb3ZlcmxheSwgR3JhcGhpY3NMYXllciYg
Z3JhcGhpY3NMCiAgICAgZ3JhcGhpY3NMYXllci5zZXRTaXplKG92ZXJsYXlGcmFtZS5zaXplKCkp
OwogfQogCi12b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6aW5zdGFsbFBhZ2VPdmVybGF5KFBh
c3NSZWZQdHI8UGFnZU92ZXJsYXk+IHBhZ2VPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUg
ZmFkZU1vZGUpCit2b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6aW5zdGFsbFBhZ2VPdmVybGF5
KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUgZmFkZU1vZGUpCiB7
CiAgICAgY3JlYXRlUm9vdExheWVyc0lmTmVlZGVkKCk7CiAKLSAgICBSZWZQdHI8UGFnZU92ZXJs
YXk+IG92ZXJsYXkgPSBwYWdlT3ZlcmxheTsKLQotICAgIGlmIChtX3BhZ2VPdmVybGF5cy5jb250
YWlucyhvdmVybGF5KSkKKyAgICBpZiAobV9wYWdlT3ZlcmxheXMuY29udGFpbnMoJm92ZXJsYXkp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhZ2VPdmVybGF5cy5hcHBlbmQob3ZlcmxheSk7
CisgICAgbV9wYWdlT3ZlcmxheXMuYXBwZW5kKCZvdmVybGF5KTsKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxHcmFwaGljc0xheWVyPiBsYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShtX21haW5G
cmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0
aGlzKTsKICAgICBsYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDNEKCkpOwotICAgIGxh
eWVyLT5zZXRCYWNrZ3JvdW5kQ29sb3Iob3ZlcmxheS0+YmFja2dyb3VuZENvbG9yKCkpOworICAg
IGxheWVyLT5zZXRCYWNrZ3JvdW5kQ29sb3Iob3ZlcmxheS5iYWNrZ3JvdW5kQ29sb3IoKSk7CiAj
aWZuZGVmIE5ERUJVRwogICAgIGxheWVyLT5zZXROYW1lKCJQYWdlIE92ZXJsYXkgY29udGVudCIp
OwogI2VuZGlmCiAKICAgICB1cGRhdGVTZXR0aW5nc0ZvckxheWVyKCpsYXllcik7CiAKLSAgICBz
d2l0Y2ggKG92ZXJsYXktPm92ZXJsYXlUeXBlKCkpIHsKKyAgICBzd2l0Y2ggKG92ZXJsYXkub3Zl
cmxheVR5cGUoKSkgewogICAgIGNhc2UgUGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlOjpWaWV3Ogog
ICAgICAgICBtX3ZpZXdPdmVybGF5Um9vdExheWVyLT5hZGRDaGlsZChsYXllci5nZXQoKSk7CiAg
ICAgICAgIGJyZWFrOwpAQCAtMTI1LDMzICsxMjMsMzMgQEAgdm9pZCBQYWdlT3ZlcmxheUNvbnRy
b2xsZXI6Omluc3RhbGxQYWdlT3ZlcmxheShQYXNzUmVmUHRyPFBhZ2VPdmVybGF5PiBwYWdlT3Zl
cmwKICAgICB9CiAKICAgICBHcmFwaGljc0xheWVyJiByYXdMYXllciA9ICpsYXllcjsKLSAgICBt
X292ZXJsYXlHcmFwaGljc0xheWVycy5zZXQob3ZlcmxheS5nZXQoKSwgV1RGTW92ZShsYXllcikp
OworICAgIG1fb3ZlcmxheUdyYXBoaWNzTGF5ZXJzLnNldCgmb3ZlcmxheSwgV1RGTW92ZShsYXll
cikpOwogCiAgICAgdXBkYXRlRm9yY2VTeW5jaHJvbm91c1Njcm9sbExheWVyUG9zaXRpb25VcGRh
dGVzKCk7CiAKLSAgICBvdmVybGF5LT5zZXRQYWdlKG1fbWFpbkZyYW1lLnBhZ2UoKSk7CisgICAg
b3ZlcmxheS5zZXRQYWdlKG1fbWFpbkZyYW1lLnBhZ2UoKSk7CiAKICAgICBpZiAoRnJhbWVWaWV3
KiBmcmFtZVZpZXcgPSBtX21haW5GcmFtZS52aWV3KCkpCiAgICAgICAgIGZyYW1lVmlldy0+ZW50
ZXJDb21wb3NpdGluZ01vZGUoKTsKIAotICAgIHVwZGF0ZU92ZXJsYXlHZW9tZXRyeSgqb3Zlcmxh
eSwgcmF3TGF5ZXIpOworICAgIHVwZGF0ZU92ZXJsYXlHZW9tZXRyeShvdmVybGF5LCByYXdMYXll
cik7CiAKICAgICBpZiAoZmFkZU1vZGUgPT0gUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKQot
ICAgICAgICBvdmVybGF5LT5zdGFydEZhZGVJbkFuaW1hdGlvbigpOworICAgICAgICBvdmVybGF5
LnN0YXJ0RmFkZUluQW5pbWF0aW9uKCk7CiB9CiAKLXZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVy
Ojp1bmluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSogb3ZlcmxheSwgUGFnZU92ZXJsYXk6
OkZhZGVNb2RlIGZhZGVNb2RlKQordm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnVuaW5zdGFs
bFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUg
ZmFkZU1vZGUpCiB7CiAgICAgaWYgKGZhZGVNb2RlID09IFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6
RmFkZSkgewotICAgICAgICBvdmVybGF5LT5zdGFydEZhZGVPdXRBbmltYXRpb24oKTsKKyAgICAg
ICAgb3ZlcmxheS5zdGFydEZhZGVPdXRBbmltYXRpb24oKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIG92ZXJsYXktPnNldFBhZ2UobnVsbHB0cik7CisgICAgb3ZlcmxheS5zZXRQYWdl
KG51bGxwdHIpOwogCi0gICAgbV9vdmVybGF5R3JhcGhpY3NMYXllcnMudGFrZShvdmVybGF5KS0+
cmVtb3ZlRnJvbVBhcmVudCgpOworICAgIG1fb3ZlcmxheUdyYXBoaWNzTGF5ZXJzLnRha2UoJm92
ZXJsYXkpLT5yZW1vdmVGcm9tUGFyZW50KCk7CiAKLSAgICBib29sIHJlbW92ZWQgPSBtX3BhZ2VP
dmVybGF5cy5yZW1vdmVGaXJzdChvdmVybGF5KTsKKyAgICBib29sIHJlbW92ZWQgPSBtX3BhZ2VP
dmVybGF5cy5yZW1vdmVGaXJzdCgmb3ZlcmxheSk7CiAgICAgQVNTRVJUX1VOVVNFRChyZW1vdmVk
LCByZW1vdmVkKTsKIAogICAgIHVwZGF0ZUZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0
aW9uVXBkYXRlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3Zlcmxh
eUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVy
LmgKaW5kZXggMzk3ODA5ODIwMDhjNjUxZjI4OGI3OTc2YjFiOTMyOTVhYzUyZTdhNC4uNjM4OTQ3
YzYxODQ2YWIwNjc1Y2U4MDNhYmYxNzZiNmI3MWRkOGMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCkBAIC0zOSw3ICszOSw2IEBAIGNsYXNzIFBhZ2U7
CiBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiAKIGNsYXNzIFBhZ2VPdmVybGF5Q29udHJvbGxl
ciBmaW5hbCA6IHB1YmxpYyBHcmFwaGljc0xheWVyQ2xpZW50IHsKLSAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShQYWdlT3ZlcmxheUNvbnRyb2xsZXIpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgogICAgIFBhZ2VPdmVybGF5Q29udHJvbGxlcihNYWluRnJhbWUmKTsKQEAg
LTUwLDggKzQ5LDggQEAgcHVibGljOgogCiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxQYWdlT3Zl
cmxheT4+JiBwYWdlT3ZlcmxheXMoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VPdmVybGF5czsgfQog
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnN0YWxsUGFnZU92ZXJsYXkoUGFzc1JlZlB0cjxQ
YWdlT3ZlcmxheT4sIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB1bmluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSosIFBhZ2VPdmVybGF5OjpGYWRl
TW9kZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92
ZXJsYXkmLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
dW5pbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkmLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUp
OwogCiAgICAgdm9pZCBzZXRQYWdlT3ZlcmxheU5lZWRzRGlzcGxheShQYWdlT3ZlcmxheSYsIGNv
bnN0IEludFJlY3QmKTsKICAgICB2b2lkIHNldFBhZ2VPdmVybGF5T3BhY2l0eShQYWdlT3Zlcmxh
eSYsIGZsb2F0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKaW5kZXggN2Zm
ZjEyM2ZmNjQxMzc4MjVjOGQxOTgwM2RiZWNmMzljODYzNjhhZi4uOTNkMzc3N2FhMWE5ZjA3OWY3
MTA0Yzk3NDVkN2RhMWNjYmJmZDU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlU2VyaWFsaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXpl
ci5jcHAKQEAgLTgwLDggKzgwLDcgQEAgc3RhdGljIGJvb2wgaXNDaGFyc2V0U3BlY2lmeWluZ05v
ZGUoY29uc3QgTm9kZSYgbm9kZSkKICAgICAgICAgICAgIGF0dHJpYnV0ZXMuYXBwZW5kKHN0ZDo6
bWFrZV9wYWlyKGF0dHJpYnV0ZS5uYW1lKCkudG9TdHJpbmcoKSwgYXR0cmlidXRlLnZhbHVlKCku
c3RyaW5nKCkpKTsKICAgICAgICAgfQogICAgIH0KLSAgICBUZXh0RW5jb2RpbmcgdGV4dEVuY29k
aW5nID0gSFRNTE1ldGFDaGFyc2V0UGFyc2VyOjplbmNvZGluZ0Zyb21NZXRhQXR0cmlidXRlcyhh
dHRyaWJ1dGVzKTsKLSAgICByZXR1cm4gdGV4dEVuY29kaW5nLmlzVmFsaWQoKTsKKyAgICByZXR1
cm4gSFRNTE1ldGFDaGFyc2V0UGFyc2VyOjplbmNvZGluZ0Zyb21NZXRhQXR0cmlidXRlcyhhdHRy
aWJ1dGVzKS5pc1ZhbGlkKCk7CiB9CiAKIHN0YXRpYyBib29sIHNob3VsZElnbm9yZUVsZW1lbnQo
Y29uc3QgRWxlbWVudCYgZWxlbWVudCkKQEAgLTk1LDEwICs5NCw5IEBAIHN0YXRpYyBjb25zdCBR
dWFsaWZpZWROYW1lJiBmcmFtZU93bmVyVVJMQXR0cmlidXRlTmFtZShjb25zdCBIVE1MRnJhbWVP
d25lckVsZW1lCiAgICAgcmV0dXJuIGlzPEhUTUxPYmplY3RFbGVtZW50PihmcmFtZU93bmVyKSA/
IEhUTUxOYW1lczo6ZGF0YUF0dHIgOiBIVE1MTmFtZXM6OnNyY0F0dHI7CiB9CiAKLWNsYXNzIFNl
cmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpNYXJrdXBB
Y2N1bXVsYXRvciB7CitjbGFzcyBQYWdlU2VyaWFsaXplcjo6U2VyaWFsaXplck1hcmt1cEFjY3Vt
dWxhdG9yIGZpbmFsIDogcHVibGljIFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yIHsKIHB1Ymxp
YzoKICAgICBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXImLCBEb2N1
bWVudCYsIFZlY3RvcjxOb2RlKj4qKTsKLSAgICB2aXJ0dWFsIH5TZXJpYWxpemVyTWFya3VwQWNj
dW11bGF0b3IoKTsKIAogcHJpdmF0ZToKICAgICBQYWdlU2VyaWFsaXplciYgbV9zZXJpYWxpemVy
OwpAQCAtMTEwLDcgKzEwOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhcHBlbmRFbmRUYWcoY29u
c3QgRWxlbWVudCYpIG92ZXJyaWRlOwogfTsKIAotU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9y
OjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXImIHNlcmlhbGl6ZXIs
IERvY3VtZW50JiBkb2N1bWVudCwgVmVjdG9yPE5vZGUqPiogbm9kZXMpCitQYWdlU2VyaWFsaXpl
cjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0
b3IoUGFnZVNlcmlhbGl6ZXImIHNlcmlhbGl6ZXIsIERvY3VtZW50JiBkb2N1bWVudCwgVmVjdG9y
PE5vZGUqPiogbm9kZXMpCiAgICAgOiBNYXJrdXBBY2N1bXVsYXRvcihub2RlcywgUmVzb2x2ZUFs
bFVSTHMpCiAgICAgLCBtX3NlcmlhbGl6ZXIoc2VyaWFsaXplcikKICAgICAsIG1fZG9jdW1lbnQo
ZG9jdW1lbnQpCkBAIC0xMjAsMTggKzExOCwxNCBAQCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0
b3I6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcihQYWdlU2VyaWFsaXplciYgc2VyaWFsaQog
ICAgICAgICBhcHBlbmRTdHJpbmcoIjw/eG1sIHZlcnNpb249XCIiICsgbV9kb2N1bWVudC54bWxW
ZXJzaW9uKCkgKyAiXCIgZW5jb2Rpbmc9XCIiICsgbV9kb2N1bWVudC5jaGFyc2V0KCkgKyAiXCI/
PiIpOwogfQogCi1TZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6On5TZXJpYWxpemVyTWFya3Vw
QWNjdW11bGF0b3IoKQotewotfQotCi12b2lkIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6
YXBwZW5kVGV4dChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IFRleHQmIHRleHQpCit2b2lkIFBh
Z2VTZXJpYWxpemVyOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQoU3Ry
aW5nQnVpbGRlciYgb3V0LCBjb25zdCBUZXh0JiB0ZXh0KQogewogICAgIEVsZW1lbnQqIHBhcmVu
dCA9IHRleHQucGFyZW50RWxlbWVudCgpOwogICAgIGlmIChwYXJlbnQgJiYgIXNob3VsZElnbm9y
ZUVsZW1lbnQoKnBhcmVudCkpCiAgICAgICAgIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0
KG91dCwgdGV4dCk7CiB9CiAKLXZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBl
bmRFbGVtZW50KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgRWxlbWVudCYgZWxlbWVudCwgTmFt
ZXNwYWNlcyogbmFtZXNwYWNlcykKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJr
dXBBY2N1bXVsYXRvcjo6YXBwZW5kRWxlbWVudChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IEVs
ZW1lbnQmIGVsZW1lbnQsIE5hbWVzcGFjZXMqIG5hbWVzcGFjZXMpCiB7CiAgICAgaWYgKCFzaG91
bGRJZ25vcmVFbGVtZW50KGVsZW1lbnQpKQogICAgICAgICBNYXJrdXBBY2N1bXVsYXRvcjo6YXBw
ZW5kRWxlbWVudChvdXQsIGVsZW1lbnQsIG5hbWVzcGFjZXMpOwpAQCAtMTQ1LDcgKzEzOSw3IEBA
IHZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbGVtZW50KFN0cmluZ0J1
aWxkZXImIG91dCwgY29uc3QgRWxlbWVuCiAgICAgLy8gRklYTUU6IEZvciBvYmplY3QgKHBsdWdp
bnMpIHRhZ3MgYW5kIHZpZGVvIHRhZyB3ZSBjb3VsZCByZXBsYWNlIHRoZW0gYnkgYW4gaW1hZ2Ug
b2YgdGhlaXIgY3VycmVudCBjb250ZW50cy4KIH0KIAotdm9pZCBTZXJpYWxpemVyTWFya3VwQWNj
dW11bGF0b3I6OmFwcGVuZEN1c3RvbUF0dHJpYnV0ZXMoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25z
dCBFbGVtZW50JiBlbGVtZW50LCBOYW1lc3BhY2VzKiBuYW1lc3BhY2VzKQordm9pZCBQYWdlU2Vy
aWFsaXplcjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRDdXN0b21BdHRyaWJ1
dGVzKFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgRWxlbWVudCYgZWxlbWVudCwgTmFtZXNwYWNl
cyogbmFtZXNwYWNlcykKIHsKICAgICBpZiAoIWlzPEhUTUxGcmFtZU93bmVyRWxlbWVudD4oZWxl
bWVudCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE2NCwzMiArMTU4LDIwIEBAIHZvaWQgU2VyaWFs
aXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRDdXN0b21BdHRyaWJ1dGVzKFN0cmluZ0J1aWxk
ZXImIG91dCwgY29uCiAgICAgYXBwZW5kQXR0cmlidXRlKG91dCwgZWxlbWVudCwgQXR0cmlidXRl
KGZyYW1lT3duZXJVUkxBdHRyaWJ1dGVOYW1lKGZyYW1lT3duZXIpLCB1cmwuc3RyaW5nKCkpLCBu
YW1lc3BhY2VzKTsKIH0KIAotdm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVu
ZEVuZFRhZyhjb25zdCBFbGVtZW50JiBlbGVtZW50KQordm9pZCBQYWdlU2VyaWFsaXplcjo6U2Vy
aWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoY29uc3QgRWxlbWVudCYgZWxl
bWVudCkKIHsKICAgICBpZiAoIXNob3VsZElnbm9yZUVsZW1lbnQoZWxlbWVudCkpCiAgICAgICAg
IE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoZWxlbWVudCk7CiB9CiAKLVBhZ2VTZXJp
YWxpemVyOjpSZXNvdXJjZTo6UmVzb3VyY2UoKQotewotfQotCi1QYWdlU2VyaWFsaXplcjo6UmVz
b3VyY2U6OlJlc291cmNlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSkKLSAgICA6IHVybCh1cmwpCi0gICAgLCBtaW1l
VHlwZShtaW1lVHlwZSkKLSAgICAsIGRhdGEoZGF0YSkKLXsKLX0KLQotUGFnZVNlcmlhbGl6ZXI6
OlBhZ2VTZXJpYWxpemVyKFZlY3RvcjxQYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U+KiByZXNvdXJj
ZXMpCitQYWdlU2VyaWFsaXplcjo6UGFnZVNlcmlhbGl6ZXIoVmVjdG9yPFBhZ2VTZXJpYWxpemVy
OjpSZXNvdXJjZT4mIHJlc291cmNlcykKICAgICA6IG1fcmVzb3VyY2VzKHJlc291cmNlcykKLSAg
ICAsIG1fYmxhbmtGcmFtZUNvdW50ZXIoMCkKIHsKIH0KIAotdm9pZCBQYWdlU2VyaWFsaXplcjo6
c2VyaWFsaXplKFBhZ2UqIHBhZ2UpCit2b2lkIFBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemUoUGFn
ZSYgcGFnZSkKIHsKLSAgICBzZXJpYWxpemVGcmFtZSgmcGFnZS0+bWFpbkZyYW1lKCkpOworICAg
IHNlcmlhbGl6ZUZyYW1lKCZwYWdlLm1haW5GcmFtZSgpKTsKIH0KIAogdm9pZCBQYWdlU2VyaWFs
aXplcjo6c2VyaWFsaXplRnJhbWUoRnJhbWUqIGZyYW1lKQpAQCAtMjE4LDcgKzIwMCw3IEBAIHZv
aWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUZyYW1lKEZyYW1lKiBmcmFtZSkKICAgICB9CiAg
ICAgU3RyaW5nIHRleHQgPSBhY2N1bXVsYXRvci5zZXJpYWxpemVOb2RlcygqZG9jdW1lbnQtPmRv
Y3VtZW50RWxlbWVudCgpLCBJbmNsdWRlTm9kZSk7CiAgICAgQ1N0cmluZyBmcmFtZUhUTUwgPSB0
ZXh0RW5jb2RpbmcuZW5jb2RlKHRleHQsIEVudGl0aWVzRm9yVW5lbmNvZGFibGVzKTsKLSAgICBt
X3Jlc291cmNlcy0+YXBwZW5kKFJlc291cmNlKHVybCwgZG9jdW1lbnQtPnN1Z2dlc3RlZE1JTUVU
eXBlKCksIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGZyYW1lSFRNTC5kYXRhKCksIGZyYW1lSFRNTC5s
ZW5ndGgoKSkpKTsKKyAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIGRvY3VtZW50LT5zdWdn
ZXN0ZWRNSU1FVHlwZSgpLCBTaGFyZWRCdWZmZXI6OmNyZWF0ZShmcmFtZUhUTUwuZGF0YSgpLCBm
cmFtZUhUTUwubGVuZ3RoKCkpIH0pOwogICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwpOwogCiAg
ICAgZm9yIChhdXRvJiBub2RlIDogbm9kZXMpIHsKQEAgLTI4NCw3ICsyNjYsNyBAQCB2b2lkIFBh
Z2VTZXJpYWxpemVyOjpzZXJpYWxpemVDU1NTdHlsZVNoZWV0KENTU1N0eWxlU2hlZXQqIHN0eWxl
U2hlZXQsIGNvbnN0IFVSTAogICAgICAgICBBU1NFUlQodGV4dEVuY29kaW5nLmlzVmFsaWQoKSk7
CiAgICAgICAgIFN0cmluZyB0ZXh0U3RyaW5nID0gY3NzVGV4dC50b1N0cmluZygpOwogICAgICAg
ICBDU3RyaW5nIHRleHQgPSB0ZXh0RW5jb2RpbmcuZW5jb2RlKHRleHRTdHJpbmcsIEVudGl0aWVz
Rm9yVW5lbmNvZGFibGVzKTsKLSAgICAgICAgbV9yZXNvdXJjZXMtPmFwcGVuZChSZXNvdXJjZSh1
cmwsIFN0cmluZygidGV4dC9jc3MiKSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUodGV4dC5kYXRhKCks
IHRleHQubGVuZ3RoKCkpKSk7CisgICAgICAgIG1fcmVzb3VyY2VzLmFwcGVuZCh7IHVybCwgQVND
SUlMaXRlcmFsIHsgInRleHQvY3NzIiB9LCBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh0ZXh0LmRhdGEo
KSwgdGV4dC5sZW5ndGgoKSkgfSk7CiAgICAgICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwpOwog
ICAgIH0KIH0KQEAgLTMwNiw4ICsyODgsNyBAQCB2b2lkIFBhZ2VTZXJpYWxpemVyOjphZGRJbWFn
ZVRvUmVzb3VyY2VzKENhY2hlZEltYWdlKiBpbWFnZSwgUmVuZGVyRWxlbWVudCogaW1hZwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU3RyaW5nIG1pbWVUeXBlID0gaW1hZ2UtPnJlc3Bv
bnNlKCkubWltZVR5cGUoKTsKLSAgICBtX3Jlc291cmNlcy0+YXBwZW5kKFJlc291cmNlKHVybCwg
bWltZVR5cGUsIGRhdGEpKTsKKyAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIGltYWdlLT5y
ZXNwb25zZSgpLm1pbWVUeXBlKCksIFdURk1vdmUoZGF0YSkgfSk7CiAgICAgbV9yZXNvdXJjZVVS
THMuYWRkKHVybCk7CiB9CiAKQEAgLTMzNCwyMCArMzE1LDE4IEBAIHZvaWQgUGFnZVNlcmlhbGl6
ZXI6OnJldHJpZXZlUmVzb3VyY2VzRm9yUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMq
IHN0eWxlCiAgICAgICAgIGlmICghaW1hZ2UpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAg
ICAgICBVUkwgdXJsID0gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGltYWdlLT51cmwoKSk7Ci0gICAg
ICAgIGFkZEltYWdlVG9SZXNvdXJjZXMoaW1hZ2UsIG51bGxwdHIsIHVybCk7CisgICAgICAgIGFk
ZEltYWdlVG9SZXNvdXJjZXMoaW1hZ2UsIG51bGxwdHIsIGRvY3VtZW50LT5jb21wbGV0ZVVSTChp
bWFnZS0+dXJsKCkpKTsKICAgICB9CiB9CiAKIFVSTCBQYWdlU2VyaWFsaXplcjo6dXJsRm9yQmxh
bmtGcmFtZShGcmFtZSogZnJhbWUpCiB7Ci0gICAgSGFzaE1hcDxGcmFtZSosIFVSTD46Oml0ZXJh
dG9yIGl0ZXIgPSBtX2JsYW5rRnJhbWVVUkxzLmZpbmQoZnJhbWUpOworICAgIGF1dG8gaXRlciA9
IG1fYmxhbmtGcmFtZVVSTHMuZmluZChmcmFtZSk7CiAgICAgaWYgKGl0ZXIgIT0gbV9ibGFua0Zy
YW1lVVJMcy5lbmQoKSkKICAgICAgICAgcmV0dXJuIGl0ZXItPnZhbHVlOwogICAgIFN0cmluZyB1
cmwgPSAid3ljaXd5ZzovL2ZyYW1lLyIgKyBTdHJpbmc6Om51bWJlcihtX2JsYW5rRnJhbWVDb3Vu
dGVyKyspOwogICAgIFVSTCBmYWtlVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKTsKICAgICBtX2Js
YW5rRnJhbWVVUkxzLmFkZChmcmFtZSwgZmFrZVVSTCk7Ci0KICAgICByZXR1cm4gZmFrZVVSTDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5oCmluZGV4IGExYjQ3YjlkYmJjMDM0
YjE3MjkzNTRjMDgyMWFhYmRkNTc2MmVlYWMuLmQ1NzQzYmM0ZjYxNDYyOTIyOGMzZmZmMGE0YmVk
Y2I4NzUwYzExZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmgKQEAgLTMwLDcg
KzMwLDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJV
UkxIYXNoLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KQEAgLTU2LDIwICs1NSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIFVSTCB1cmw7CiAgICAg
ICAgIFN0cmluZyBtaW1lVHlwZTsKICAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YTsK
LSAgICAgICAgUmVzb3VyY2UoKTsKLSAgICAgICAgUmVzb3VyY2UoY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEpOwogICAgIH07
CiAKLSAgICBleHBsaWNpdCBQYWdlU2VyaWFsaXplcihWZWN0b3I8UmVzb3VyY2U+Kik7CisgICAg
ZXhwbGljaXQgUGFnZVNlcmlhbGl6ZXIoVmVjdG9yPFJlc291cmNlPiYpOwogCiAgICAgLy8gSW5p
dGlhdGVzIHRoZSBzZXJpYWxpemF0aW9uIG9mIHRoZSBmcmFtZSdzIHBhZ2UuIEFsbCBzZXJpYWxp
emVkIGNvbnRlbnQgYW5kIHJldHJpZXZlZAogICAgIC8vIHJlc291cmNlcyBhcmUgYWRkZWQgdG8g
dGhlIFZlY3RvciBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLiBUaGUgZmlyc3QgcmVzb3VyY2Ug
aW4gdGhhdAogICAgIC8vIHZlY3RvciBpcyB0aGUgdG9wIGZyYW1lIHNlcmlhbGl6ZWQgY29udGVu
dC4KLSAgICB2b2lkIHNlcmlhbGl6ZShQYWdlKik7CisgICAgdm9pZCBzZXJpYWxpemUoUGFnZSYp
OworCitwcml2YXRlOgorICAgIGNsYXNzIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjsKIAog
ICAgIFVSTCB1cmxGb3JCbGFua0ZyYW1lKEZyYW1lKik7CiAKLXByaXZhdGU6CiAgICAgdm9pZCBz
ZXJpYWxpemVGcmFtZShGcmFtZSopOwogCiAgICAgLy8gU2VyaWFsaXplcyB0aGUgc3R5bGVzaGVl
dCBiYWNrIHRvIHRleHQgYW5kIGFkZHMgaXQgdG8gdGhlIHJlc291cmNlcyBpZiBVUkwgaXMgbm90
LWVtcHR5LgpAQCAtODAsMTAgKzc5LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXRyaWV2ZVJl
c291cmNlc0ZvclByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiwgRG9jdW1lbnQqKTsK
ICAgICB2b2lkIHJldHJpZXZlUmVzb3VyY2VzRm9yUnVsZShTdHlsZVJ1bGUmLCBEb2N1bWVudCop
OwogCi0gICAgVmVjdG9yPFJlc291cmNlPiogbV9yZXNvdXJjZXM7CisgICAgVmVjdG9yPFJlc291
cmNlPiYgbV9yZXNvdXJjZXM7CiAgICAgTGlzdEhhc2hTZXQ8VVJMPiBtX3Jlc291cmNlVVJMczsK
ICAgICBIYXNoTWFwPEZyYW1lKiwgVVJMPiBtX2JsYW5rRnJhbWVVUkxzOwotICAgIHVuc2lnbmVk
IG1fYmxhbmtGcmFtZUNvdW50ZXI7CisgICAgdW5zaWduZWQgbV9ibGFua0ZyYW1lQ291bnRlciB7
IDAgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VFbnRyeS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZUVudHJ5LmgKaW5kZXggYjNhODRhM2E5ZGNhODJiYmZhOGIzNDA3NGJlY2M3M2I0ODdl
ZGFhZS4uZjhkNmNhN2ZlYzgwYzBmZmU2YTk4NmViZmU0ODFlYjM0NTBiY2JjNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmgKQEAgLTM0LDcgKzM0LDYgQEAKICNpZiBFTkFC
TEUoV0VCX1RJTUlORykKIAogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCi0jaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi9UeXBlQ2FzdHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTU0LDcg
KzUzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc01hcmsoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc01lYXN1cmUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCi0gICAgc3RhdGljIGJvb2wgc3RhcnRUaW1lQ29tcGFyZUxlc3NUaGFuKFBhc3NS
ZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4gYSwgUGFzc1JlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBi
KQorICAgIHN0YXRpYyBib29sIHN0YXJ0VGltZUNvbXBhcmVMZXNzVGhhbihjb25zdCBSZWZQdHI8
UGVyZm9ybWFuY2VFbnRyeT4mIGEsIGNvbnN0IFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiYgYikK
ICAgICB7CiAgICAgICAgIHJldHVybiBhLT5zdGFydFRpbWUoKSA8IGItPnN0YXJ0VGltZSgpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGlt
aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcApp
bmRleCBkOTUzMTgwNTQ3MGY4ZWVjYTQyODc2M2I3Y2ExZWFjNTNlMTczYjZmLi45YTZjN2FjZTM5
NDBlZTM4ZDY1N2ViYmEzNWExODM2Mzg4MGE0OWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwCkBAIC04NywxNCArODcsMTQgQEAgVXNlclRpbWlu
Zzo6VXNlclRpbWluZyhQZXJmb3JtYW5jZSYgcGVyZm9ybWFuY2UpCiB7CiB9CiAKLXN0YXRpYyB2
b2lkIGluc2VydFBlcmZvcm1hbmNlRW50cnkoUGVyZm9ybWFuY2VFbnRyeU1hcCYgcGVyZm9ybWFu
Y2VFbnRyeU1hcCwgUGFzc1JlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBwZXJmb3JtYW5jZUVudHJ5
KQorc3RhdGljIHZvaWQgaW5zZXJ0UGVyZm9ybWFuY2VFbnRyeShQZXJmb3JtYW5jZUVudHJ5TWFw
JiBwZXJmb3JtYW5jZUVudHJ5TWFwLCBSZWY8UGVyZm9ybWFuY2VFbnRyeT4mJiBwZXJmb3JtYW5j
ZUVudHJ5KQogewotICAgIFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBlbnRyeSA9IHBlcmZvcm1h
bmNlRW50cnk7Ci0gICAgUGVyZm9ybWFuY2VFbnRyeU1hcDo6aXRlcmF0b3IgaXQgPSBwZXJmb3Jt
YW5jZUVudHJ5TWFwLmZpbmQoZW50cnktPm5hbWUoKSk7CisgICAgUmVmUHRyPFBlcmZvcm1hbmNl
RW50cnk+IGVudHJ5ID0gV1RGTW92ZShwZXJmb3JtYW5jZUVudHJ5KTsKKyAgICBhdXRvIGl0ID0g
cGVyZm9ybWFuY2VFbnRyeU1hcC5maW5kKGVudHJ5LT5uYW1lKCkpOwogICAgIGlmIChpdCAhPSBw
ZXJmb3JtYW5jZUVudHJ5TWFwLmVuZCgpKQotICAgICAgICBpdC0+dmFsdWUuYXBwZW5kKGVudHJ5
KTsKKyAgICAgICAgaXQtPnZhbHVlLmFwcGVuZChXVEZNb3ZlKGVudHJ5KSk7CiAgICAgZWxzZQot
ICAgICAgICBwZXJmb3JtYW5jZUVudHJ5TWFwLnNldChlbnRyeS0+bmFtZSgpLCBWZWN0b3I8UmVm
UHRyPFBlcmZvcm1hbmNlRW50cnk+PnsgZW50cnkgfSk7CisgICAgICAgIHBlcmZvcm1hbmNlRW50
cnlNYXAuc2V0KGVudHJ5LT5uYW1lKCksIFZlY3RvcjxSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4+
IHsgV1RGTW92ZShlbnRyeSkgfSk7CiB9CiAKIHN0YXRpYyB2b2lkIGNsZWFyUGVmb3JtYW5jZUVu
dHJpZXMoUGVyZm9ybWFuY2VFbnRyeU1hcCYgcGVyZm9ybWFuY2VFbnRyeU1hcCwgY29uc3QgU3Ry
aW5nJiBuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdl
T3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmNw
cAppbmRleCBhZTgxMTJjYTI2Mzk5MTZmNDE0NWU5MzIzZGUwZDJmMjgxOTVhY2IwLi5lNzQzZDg4
MGUyMGNiMWZkZjg1NzAxNjBkMGIxYWQ1ODM5MjliOGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZXNvdXJjZVVz
YWdlT3ZlcmxheTo6flJlc291cmNlVXNhZ2VPdmVybGF5KCkKIAogICAgIC8vIEZJWE1FOiBUaGlz
IGlzIGEgaGFjayBzbyB3ZSBkb24ndCB0cnkgdG8gdW5pbnN0YWxsIHRoZSBQYWdlT3ZlcmxheSBk
dXJpbmcgUGFnZSBkZXN0cnVjdGlvbi4KICAgICBpZiAobV9wYWdlLm1haW5GcmFtZSgpLnBhZ2Uo
KSkKLSAgICAgICAgbV9wYWdlLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVu
aW5zdGFsbFBhZ2VPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2Rl
OjpEb05vdEZhZGUpOworICAgICAgICBtX3BhZ2UubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250
cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fb3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZh
ZGVNb2RlOjpEb05vdEZhZGUpOwogfQogCiB2b2lkIFJlc291cmNlVXNhZ2VPdmVybGF5Ojppbml0
aWFsaXplKCkKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBSZXNvdXJjZVVzYWdlT3ZlcmxheTo6aW5p
dGlhbGl6ZSgpCiAKICAgICBtX292ZXJsYXktPnNldEZyYW1lKGluaXRpYWxSZWN0KTsKICAgICBt
X292ZXJsYXktPnNldFNob3VsZElnbm9yZU1vdXNlRXZlbnRzT3V0c2lkZUJvdW5kcyhmYWxzZSk7
Ci0gICAgbV9wYWdlLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQ
YWdlT3ZlcmxheShtX292ZXJsYXkuZ2V0KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RG
YWRlKTsKKyAgICBtX3BhZ2UubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5z
dGFsbFBhZ2VPdmVybGF5KCptX292ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RG
YWRlKTsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCmluZGV4IDVhZGUwMDIyZWJjMGQ4NGQyNzg2
OGZlMjRiNTRkNjZhNjFlNzdlNTguLjJkZDBjMzA5ZTA1ODJmMzVjZjkzNmY1MGFjZDljMWFjMzQx
NjM1NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNl
LmgKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJBbmltYXRpb24uaCIKICNpbmNsdWRlICJD
U1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKLSNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDU4ODk2ZGIyZjFlOWZk
NDUzNzhiMzY3YzAwZWM3MTdiYjEzZTQ5OWMuLjRjNDBjOTIzYTIzZTIzMzg4NDA4NDJlODgzY2Uw
NWRiMWU3YmRkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Fu
aW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgYm9vbCBBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZTo6Y2xlYXIoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiAgICAg
RWxlbWVudCogZWxlbWVudCA9IHJlbmRlcmVyLmVsZW1lbnQoKTsKIAogICAgIG1fZXZlbnRzVG9E
aXNwYXRjaC5yZW1vdmVBbGxNYXRjaGluZyhbZWxlbWVudF0gKGNvbnN0IEV2ZW50VG9EaXNwYXRj
aCYgaW5mbykgewotICAgICAgICByZXR1cm4gaW5mby5lbGVtZW50ID09IGVsZW1lbnQ7CisgICAg
ICAgIHJldHVybiBpbmZvLmVsZW1lbnQucHRyKCkgPT0gZWxlbWVudDsKICAgICB9KTsKIAogICAg
IG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLnJlbW92ZUFsbE1hdGNoaW5nKFtlbGVtZW50XShh
dXRvJiBjdXJyZW50RWxlbWVudCkgewpAQCAtMjAzLDcgKzIwMyw3IEBAIHZvaWQgQW5pbWF0aW9u
Q29udHJvbGxlclByaXZhdGU6OmZpcmVFdmVudHNBbmRVcGRhdGVTdHlsZSgpCiAgICAgLy8gZmly
ZSBhbGwgdGhlIGV2ZW50cwogICAgIFZlY3RvcjxFdmVudFRvRGlzcGF0Y2g+IGV2ZW50c1RvRGlz
cGF0Y2ggPSBXVEZNb3ZlKG1fZXZlbnRzVG9EaXNwYXRjaCk7CiAgICAgZm9yIChhdXRvJiBldmVu
dCA6IGV2ZW50c1RvRGlzcGF0Y2gpIHsKLSAgICAgICAgRWxlbWVudCYgZWxlbWVudCA9ICpldmVu
dC5lbGVtZW50OworICAgICAgICBFbGVtZW50JiBlbGVtZW50ID0gZXZlbnQuZWxlbWVudDsKICAg
ICAgICAgaWYgKGV2ZW50LmV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2
ZW50KQogICAgICAgICAgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KFRyYW5zaXRpb25FdmVudDo6
Y3JlYXRlKGV2ZW50LmV2ZW50VHlwZSwgZXZlbnQubmFtZSwgZXZlbnQuZWxhcHNlZFRpbWUsIFBz
ZXVkb0VsZW1lbnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKGVsZW1lbnQucHNldWRvSWQo
KSkpKTsKICAgICAgICAgZWxzZQpAQCAtMjI1LDIxICsyMjUsMTUgQEAgdm9pZCBBbmltYXRpb25D
b250cm9sbGVyUHJpdmF0ZTo6c3RhcnRVcGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hlcigpCiAg
ICAgICAgIG1fdXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIuc3RhcnRPbmVTaG90KDApOwog
fQogCi12b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2go
UGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpCit2b2lkIEFuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2goRWxlbWVudCYgZWxlbWVudCwg
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgZG91Ymxl
IGVsYXBzZWRUaW1lKQogewotICAgIG1fZXZlbnRzVG9EaXNwYXRjaC5ncm93KG1fZXZlbnRzVG9E
aXNwYXRjaC5zaXplKCkrMSk7Ci0gICAgRXZlbnRUb0Rpc3BhdGNoJiBldmVudCA9IG1fZXZlbnRz
VG9EaXNwYXRjaFttX2V2ZW50c1RvRGlzcGF0Y2guc2l6ZSgpLTFdOwotICAgIGV2ZW50LmVsZW1l
bnQgPSBlbGVtZW50OwotICAgIGV2ZW50LmV2ZW50VHlwZSA9IGV2ZW50VHlwZTsKLSAgICBldmVu
dC5uYW1lID0gbmFtZTsKLSAgICBldmVudC5lbGFwc2VkVGltZSA9IGVsYXBzZWRUaW1lOwotICAg
IAorICAgIG1fZXZlbnRzVG9EaXNwYXRjaC5hcHBlbmQoeyBlbGVtZW50LCBldmVudFR5cGUsIG5h
bWUsIGVsYXBzZWRUaW1lIH0pOwogICAgIHN0YXJ0VXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNo
ZXIoKTsKIH0KIAotdm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6YWRkRWxlbWVudENo
YW5nZVRvRGlzcGF0Y2goUmVmPEVsZW1lbnQ+JiYgZWxlbWVudCkKK3ZvaWQgQW5pbWF0aW9uQ29u
dHJvbGxlclByaXZhdGU6OmFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKEVsZW1lbnQmIGVsZW1l
bnQpCiB7Ci0gICAgbV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2guYXBwZW5kKFdURk1vdmUoZWxl
bWVudCkpOworICAgIG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmFwcGVuZChlbGVtZW50KTsK
ICAgICBBU1NFUlQobV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2gubGFzdCgpLT5kb2N1bWVudCgp
LnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKICAgICBzdGFy
dFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaApp
bmRleCBmYjljYzgyYjgxNTE3ZDBiYTMyNzNmMzgwZjIwYmNkOGE5ODYxZjU4Li40OWFkM2Y5Yzk1
NDI1NWMzMWQwZmJmZmE0YzYyNjhiMDY3OTIxN2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKQEAg
LTI5LDMzICsyOSwyMSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBbmltYXRpb25CYXNl
LmgiCi0jaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBBbmltYXRpb25CYXNlOwogY2xhc3MgQ29tcG9zaXRlQW5pbWF0aW9uOwogY2xhc3MgRG9jdW1l
bnQ7Ci1jbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7Ci1jbGFzcyBSZW5kZXJFbGVtZW50Owot
Y2xhc3MgUmVuZGVyU3R5bGU7CiAKLWVudW0gU2V0Q2hhbmdlZCB7Ci0gICAgRG9Ob3RDYWxsU2V0
Q2hhbmdlZCA9IDAsCi0gICAgQ2FsbFNldENoYW5nZWQgPSAxCi19OworZW51bSBTZXRDaGFuZ2Vk
IHsgRG9Ob3RDYWxsU2V0Q2hhbmdlZCwgQ2FsbFNldENoYW5nZWQgfTsKIAogY2xhc3MgQW5pbWF0
aW9uQ29udHJvbGxlclByaXZhdGUgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgQW5pbWF0aW9uQ29udHJv
bGxlclByaXZhdGUoRnJhbWUmKTsKICAgICB+QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUoKTsK
QEAgLTY5LDggKzU3LDggQEAgcHVibGljOgogCiAgICAgdm9pZCB1cGRhdGVTdHlsZUlmTmVlZGVk
RGlzcGF0Y2hlckZpcmVkKCk7CiAgICAgdm9pZCBzdGFydFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNw
YXRjaGVyKCk7Ci0gICAgdm9pZCBhZGRFdmVudFRvRGlzcGF0Y2goUGFzc1JlZlB0cjxFbGVtZW50
PiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBu
YW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpOwotICAgIHZvaWQgYWRkRWxlbWVudENoYW5nZVRvRGlz
cGF0Y2goUmVmPEVsZW1lbnQ+JiYpOworICAgIHZvaWQgYWRkRXZlbnRUb0Rpc3BhdGNoKEVsZW1l
bnQmLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBk
b3VibGUgZWxhcHNlZFRpbWUpOworICAgIHZvaWQgYWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2go
RWxlbWVudCYpOwogCiAgICAgYm9vbCBoYXNBbmltYXRpb25zKCkgY29uc3QgeyByZXR1cm4gIW1f
Y29tcG9zaXRlQW5pbWF0aW9ucy5pc0VtcHR5KCk7IH0KIApAQCAtMTM0LDIxICsxMjIsMTkgQEAg
cHJpdmF0ZToKICAgICBUaW1lciBtX2FuaW1hdGlvblRpbWVyOwogICAgIFRpbWVyIG1fdXBkYXRl
U3R5bGVJZk5lZWRlZERpc3BhdGNoZXI7CiAgICAgRnJhbWUmIG1fZnJhbWU7Ci0gICAgCi0gICAg
Y2xhc3MgRXZlbnRUb0Rpc3BhdGNoIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFJlZlB0cjxFbGVt
ZW50PiBlbGVtZW50OworCisgICAgc3RydWN0IEV2ZW50VG9EaXNwYXRjaCB7CisgICAgICAgIFJl
ZjxFbGVtZW50PiBlbGVtZW50OwogICAgICAgICBBdG9taWNTdHJpbmcgZXZlbnRUeXBlOwogICAg
ICAgICBTdHJpbmcgbmFtZTsKICAgICAgICAgZG91YmxlIGVsYXBzZWRUaW1lOwogICAgIH07Ci0g
ICAgCiAgICAgVmVjdG9yPEV2ZW50VG9EaXNwYXRjaD4gbV9ldmVudHNUb0Rpc3BhdGNoOwogICAg
IFZlY3RvcjxSZWY8RWxlbWVudD4+IG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoOwogICAgIAog
ICAgIGRvdWJsZSBtX2JlZ2luQW5pbWF0aW9uVXBkYXRlVGltZTsKIAotICAgIHR5cGVkZWYgSGFz
aFNldDxSZWZQdHI8QW5pbWF0aW9uQmFzZT4+IEFuaW1hdGlvbnNTZXQ7CisgICAgdXNpbmcgQW5p
bWF0aW9uc1NldCA9IEhhc2hTZXQ8UmVmUHRyPEFuaW1hdGlvbkJhc2U+PjsKICAgICBBbmltYXRp
b25zU2V0IG1fYW5pbWF0aW9uc1dhaXRpbmdGb3JTdHlsZTsKICAgICBBbmltYXRpb25zU2V0IG1f
YW5pbWF0aW9uc1dhaXRpbmdGb3JTdGFydFRpbWVSZXNwb25zZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCmluZGV4
IDlmNmI5MTdjNmVjMWM2ZmViYmE2OTQwYTE2NzA1YmRiZDVhYzc0Y2YuLjhjNTQwM2E0YzE5NjM3
YWE2MjFkZTZhNDA3MTYwNzFhZTc4MzUwMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKQEAgLTEyNSw3ICsxMjUs
NyBAQCBzdGF0aWMgaW5saW5lIFRyYW5zZm9ybU9wZXJhdGlvbnMgYmxlbmRGdW5jKGNvbnN0IEFu
aW1hdGlvbkJhc2UqIGFuaW1hdGlvbiwgY29ucwogICAgIHJldHVybiB0by5ibGVuZEJ5VXNpbmdN
YXRyaXhJbnRlcnBvbGF0aW9uKGZyb20sIHByb2dyZXNzLCBpczxSZW5kZXJCb3g+KCphbmltYXRp
b24tPnJlbmRlcmVyKCkpID8gZG93bmNhc3Q8UmVuZGVyQm94PigqYW5pbWF0aW9uLT5yZW5kZXJl
cigpKS5ib3JkZXJCb3hSZWN0KCkuc2l6ZSgpIDogTGF5b3V0U2l6ZSgpKTsKIH0KIAotc3RhdGlj
IGlubGluZSBQYXNzUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29uc3QgQW5p
bWF0aW9uQmFzZSosIENsaXBQYXRoT3BlcmF0aW9uKiBmcm9tLCBDbGlwUGF0aE9wZXJhdGlvbiog
dG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPENsaXBQYXRoT3BlcmF0
aW9uPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIENsaXBQYXRoT3BlcmF0aW9uKiBm
cm9tLCBDbGlwUGF0aE9wZXJhdGlvbiogdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAo
IWZyb20gfHwgIXRvKQogICAgICAgICByZXR1cm4gdG87CkBAIC0xNDMsNyArMTQzLDcgQEAgc3Rh
dGljIGlubGluZSBQYXNzUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29uc3Qg
QW5pbWF0aW9uQmFzZSosIENsaXAKICAgICByZXR1cm4gU2hhcGVDbGlwUGF0aE9wZXJhdGlvbjo6
Y3JlYXRlKHRvU2hhcGUuYmxlbmQoZnJvbVNoYXBlLCBwcm9ncmVzcykpOwogfQogCi1zdGF0aWMg
aW5saW5lIFBhc3NSZWZQdHI8U2hhcGVWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJh
c2UqLCBTaGFwZVZhbHVlKiBmcm9tLCBTaGFwZVZhbHVlKiB0bywgZG91YmxlIHByb2dyZXNzKQor
c3RhdGljIGlubGluZSBSZWZQdHI8U2hhcGVWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlv
bkJhc2UqLCBTaGFwZVZhbHVlKiBmcm9tLCBTaGFwZVZhbHVlKiB0bywgZG91YmxlIHByb2dyZXNz
KQogewogICAgIGlmICghZnJvbSB8fCAhdG8pCiAgICAgICAgIHJldHVybiB0bzsKQEAgLTE2Myw3
ICsxNjMsNyBAQCBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U2hhcGVWYWx1ZT4gYmxlbmRGdW5j
KGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBTaGFwZVZhbHVlKgogICAgIHJldHVybiBTaGFwZVZhbHVl
OjpjcmVhdGUodG9TaGFwZS5ibGVuZChmcm9tU2hhcGUsIHByb2dyZXNzKSwgdG8tPmNzc0JveCgp
KTsKIH0KIAotc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gYmxlbmRG
dW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW1hdGlvbiwgRmlsdGVyT3BlcmF0aW9uKiBmcm9t
T3AsIEZpbHRlck9wZXJhdGlvbiogdG9PcCwgZG91YmxlIHByb2dyZXNzLCBib29sIGJsZW5kVG9Q
YXNzdGhyb3VnaCA9IGZhbHNlKQorc3RhdGljIGlubGluZSBSZWZQdHI8RmlsdGVyT3BlcmF0aW9u
PiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbWF0aW9uLCBGaWx0ZXJPcGVyYXRp
b24qIGZyb21PcCwgRmlsdGVyT3BlcmF0aW9uKiB0b09wLCBkb3VibGUgcHJvZ3Jlc3MsIGJvb2wg
YmxlbmRUb1Bhc3N0aHJvdWdoID0gZmFsc2UpCiB7CiAgICAgQVNTRVJUKHRvT3ApOwogICAgIGlm
ICh0b09wLT5ibGVuZGluZ05lZWRzUmVuZGVyZXJTaXplKCkpIHsKQEAgLTIxOCw3ICsyMTgsNyBA
QCBzdGF0aWMgaW5saW5lIEZpbHRlck9wZXJhdGlvbnMgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlv
bkJhc2UqIGFuaW0sIGNvbnN0IEZpbHRlcgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBibGVuZEZpbHRlcihjb25zdCBBbmltYXRp
b25CYXNlKiBhbmltLCBDYWNoZWRJbWFnZSogaW1hZ2UsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMm
IGZyb20sIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0
aWMgaW5saW5lIFJlZlB0cjxTdHlsZUltYWdlPiBibGVuZEZpbHRlcihjb25zdCBBbmltYXRpb25C
YXNlKiBhbmltLCBDYWNoZWRJbWFnZSogaW1hZ2UsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZy
b20sIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAg
QVNTRVJUKGltYWdlKTsKICAgICBGaWx0ZXJPcGVyYXRpb25zIGZpbHRlclJlc3VsdCA9IGJsZW5k
RmlsdGVyT3BlcmF0aW9ucyhhbmltLCBmcm9tLCB0bywgcHJvZ3Jlc3MpOwpAQCAtMjc4LDcgKzI3
OCw3IEBAIHN0YXRpYyBpbmxpbmUgVmVjdG9yPFNWR0xlbmd0aFZhbHVlPiBibGVuZEZ1bmMoY29u
c3QgQW5pbWF0aW9uQmFzZSosIGNvbnN0IFZlY3RvCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot
c3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGNyb3NzZmFkZUJsZW5kKGNvbnN0
IEFuaW1hdGlvbkJhc2UqLCBTdHlsZUNhY2hlZEltYWdlKiBmcm9tU3R5bGVJbWFnZSwgU3R5bGVD
YWNoZWRJbWFnZSogdG9TdHlsZUltYWdlLCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5l
IFJlZlB0cjxTdHlsZUltYWdlPiBjcm9zc2ZhZGVCbGVuZChjb25zdCBBbmltYXRpb25CYXNlKiwg
U3R5bGVDYWNoZWRJbWFnZSogZnJvbVN0eWxlSW1hZ2UsIFN0eWxlQ2FjaGVkSW1hZ2UqIHRvU3R5
bGVJbWFnZSwgZG91YmxlIHByb2dyZXNzKQogewogICAgIC8vIElmIHByb2dyZXNzIGlzIGF0IG9u
ZSBvZiB0aGUgZXh0cmVtZXMsIHdlIHdhbnQgZ2V0Q29tcHV0ZWRTdHlsZSB0byBzaG93IHRoZSBp
bWFnZSwKICAgICAvLyBub3QgYSBjb21wbGV0ZWQgY3Jvc3MtZmFkZSwgc28gd2UgaGFuZCBiYWNr
IG9uZSBvZiB0aGUgZXhpc3RpbmcgaW1hZ2VzLgpAQCAtMjk1LDcgKzI5NSw3IEBAIHN0YXRpYyBp
bmxpbmUgUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBjcm9zc2ZhZGVCbGVuZChjb25zdCBBbmltYXRp
b25CYXNlKiwgU3R5bGVDCiAgICAgcmV0dXJuIFN0eWxlR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZShX
VEZNb3ZlKGNyb3NzZmFkZVZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxT
dHlsZUltYWdlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgU3R5bGVJbWFn
ZSogZnJvbSwgU3R5bGVJbWFnZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUg
UmVmUHRyPFN0eWxlSW1hZ2U+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBT
dHlsZUltYWdlKiBmcm9tLCBTdHlsZUltYWdlKiB0bywgZG91YmxlIHByb2dyZXNzKQogewogICAg
IGlmICghZnJvbSB8fCAhdG8pCiAgICAgICAgIHJldHVybiB0bzsKQEAgLTM2NCwxMSArMzY0LDEy
IEBAIHN0YXRpYyBpbmxpbmUgTmluZVBpZWNlSW1hZ2UgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlv
bkJhc2UqIGFuaW0sIGNvbnN0IE5pbmVQaWVjCiAgICAgaWYgKGZyb20uaW1hZ2UoKS0+aW1hZ2VT
aXplKGFuaW0tPnJlbmRlcmVyKCksIDEuMCkgIT0gdG8uaW1hZ2UoKS0+aW1hZ2VTaXplKGFuaW0t
PnJlbmRlcmVyKCksIDEuMCkpCiAgICAgICAgIHJldHVybiB0bzsKIAotICAgIGF1dG8gbmV3Q29u
dGVudEltYWdlID0gYmxlbmRGdW5jKGFuaW0sIGZyb20uaW1hZ2UoKSwgdG8uaW1hZ2UoKSwgcHJv
Z3Jlc3MpOwotICAgIHJldHVybiBOaW5lUGllY2VJbWFnZShuZXdDb250ZW50SW1hZ2UsIGZyb20u
aW1hZ2VTbGljZXMoKSwgZnJvbS5maWxsKCksIGZyb20uYm9yZGVyU2xpY2VzKCksIGZyb20ub3V0
c2V0KCksIGZyb20uaG9yaXpvbnRhbFJ1bGUoKSwgZnJvbS52ZXJ0aWNhbFJ1bGUoKSk7CisgICAg
cmV0dXJuIE5pbmVQaWVjZUltYWdlKGJsZW5kRnVuYyhhbmltLCBmcm9tLmltYWdlKCksIHRvLmlt
YWdlKCksIHByb2dyZXNzKSwKKyAgICAgICAgZnJvbS5pbWFnZVNsaWNlcygpLCBmcm9tLmZpbGwo
KSwgZnJvbS5ib3JkZXJTbGljZXMoKSwgZnJvbS5vdXRzZXQoKSwgZnJvbS5ob3Jpem9udGFsUnVs
ZSgpLCBmcm9tLnZlcnRpY2FsUnVsZSgpKTsKIH0KIAogI2lmIEVOQUJMRShWQVJJQVRJT05fRk9O
VFMpCisKIHN0YXRpYyBpbmxpbmUgRm9udFZhcmlhdGlvblNldHRpbmdzIGJsZW5kRnVuYyhjb25z
dCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25zdCBGb250VmFyaWF0aW9uU2V0dGluZ3MmIGZyb20s
IGNvbnN0IEZvbnRWYXJpYXRpb25TZXR0aW5ncyYgdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAg
ICBpZiAoZnJvbS5zaXplKCkgIT0gdG8uc2l6ZSgpKQpAQCAtMzg1LDYgKzM4Niw3IEBAIHN0YXRp
YyBpbmxpbmUgRm9udFZhcmlhdGlvblNldHRpbmdzIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25C
YXNlKiBhbmltLCBjb25zdCBGCiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CisKICNlbmRp
ZgogCiBjbGFzcyBBbmltYXRpb25Qcm9wZXJ0eVdyYXBwZXJCYXNlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCmluZGV4IDVi
NzRlNzY3ODI4YzQ1YTU2MjllMTlmZTI2MDUzODNjMmE1ZjZlOGEuLjY2OTkyNzA3YjFlZWFiMTg0
M2ZlMDM5YWFjNjJkZTMwYzQ0MzAyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcApAQCAtMTIxLDggKzEyMSw4IEBAIHZv
aWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVUcmFuc2l0aW9ucyhSZW5kZXJFbGVtZW50KiBy
ZW5kZXJlciwgY29uc3QgUmVuZGVyCiAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBy
dW5uaW5nIGFuaW1hdGlvbiBmb3IgdGhpcyBwcm9wZXJ0eSwgdGhlIHRyYW5zaXRpb24gaXMgb3Zl
cnJpZGRlbgogICAgICAgICAgICAgICAgIC8vIGFuZCB3ZSBoYXZlIHRvIHVzZSB0aGUgdW5hbmlt
YXRlZFN0eWxlIGZyb20gdGhlIGFuaW1hdGlvbi4gV2UgZG8gdGhlIHRlc3QKICAgICAgICAgICAg
ICAgICAvLyBhZ2FpbnN0IHRoZSB1bmFuaW1hdGVkIHN0eWxlIGhlcmUsIGJ1dCB3ZSAib3ZlcnJp
ZGUiIHRoZSB0cmFuc2l0aW9uIGxhdGVyLgotICAgICAgICAgICAgICAgIFJlZlB0cjxLZXlmcmFt
ZUFuaW1hdGlvbj4ga2V5ZnJhbWVBbmltID0gZ2V0QW5pbWF0aW9uRm9yUHJvcGVydHkocHJvcCk7
Ci0gICAgICAgICAgICAgICAgYXV0byogZnJvbVN0eWxlID0ga2V5ZnJhbWVBbmltID8ga2V5ZnJh
bWVBbmltLT51bmFuaW1hdGVkU3R5bGUoKSA6IGN1cnJlbnRTdHlsZTsKKyAgICAgICAgICAgICAg
ICBhdXRvKiBrZXlmcmFtZUFuaW1hdGlvbiA9IGFuaW1hdGlvbkZvclByb3BlcnR5KHByb3ApOwor
ICAgICAgICAgICAgICAgIGF1dG8qIGZyb21TdHlsZSA9IGtleWZyYW1lQW5pbWF0aW9uID8ga2V5
ZnJhbWVBbmltYXRpb24tPnVuYW5pbWF0ZWRTdHlsZSgpIDogY3VycmVudFN0eWxlOwogCiAgICAg
ICAgICAgICAgICAgLy8gU2VlIGlmIHRoZXJlIGlzIGEgY3VycmVudCB0cmFuc2l0aW9uIGZvciB0
aGlzIHByb3AKICAgICAgICAgICAgICAgICBJbXBsaWNpdEFuaW1hdGlvbiogaW1wbEFuaW0gPSBt
X3RyYW5zaXRpb25zLmdldChwcm9wKTsKQEAgLTE3Miw3ICsxNzIsNyBAQCB2b2lkIENvbXBvc2l0
ZUFuaW1hdGlvbjo6dXBkYXRlVHJhbnNpdGlvbnMoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNv
bnN0IFJlbmRlcgogICAgICAgICAgICAgICAgICAgICBMT0coQW5pbWF0aW9ucywgIkNyZWF0ZWQg
SW1wbGljaXRBbmltYXRpb24gJXAgb24gcmVuZGVyZXIgJXAgZm9yIHByb3BlcnR5ICVzIGR1cmF0
aW9uICUuMmYgZGVsYXkgJS4yZiIsIGltcGxpY2l0QW5pbWF0aW9uLnB0cigpLCByZW5kZXJlciwg
Z2V0UHJvcGVydHlOYW1lKHByb3ApLCBhbmltYXRpb24uZHVyYXRpb24oKSwgYW5pbWF0aW9uLmRl
bGF5KCkpOwogICAgICAgICAgICAgICAgICAgICBtX3RyYW5zaXRpb25zLnNldChwcm9wLCBXVEZN
b3ZlKGltcGxpY2l0QW5pbWF0aW9uKSk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIAorCiAgICAgICAgICAgICAgICAgLy8gV2Ugb25seSBuZWVkIG9uZSBwYXNzIGZvciB0aGUg
c2luZ2xlIHByb3AgY2FzZQogICAgICAgICAgICAgICAgIGlmICghYWxsKQogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKQEAgLTM5OSwyMSArMzk5LDIxIEBAIGRvdWJsZSBDb21wb3NpdGVBbmlt
YXRpb246OnRpbWVUb05leHRTZXJ2aWNlKCkgY29uc3QKICAgICByZXR1cm4gbWluVDsKIH0KIAot
UGFzc1JlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4gQ29tcG9zaXRlQW5pbWF0aW9uOjpnZXRBbmlt
YXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5KSBjb25zdAorS2V5ZnJhbWVB
bmltYXRpb24qIENvbXBvc2l0ZUFuaW1hdGlvbjo6YW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eSkgY29uc3QKIHsKLSAgICBSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+
IHJldHZhbDsKLSAgICAKKyAgICBLZXlmcmFtZUFuaW1hdGlvbiogcmVzdWx0ID0gbnVsbHB0cjsK
KwogICAgIC8vIFdlIHdhbnQgdG8gc2VuZCBiYWNrIHRoZSBsYXN0IGFuaW1hdGlvbiB3aXRoIHRo
ZSBwcm9wZXJ0eSBpZiB0aGVyZSBhcmUgbXVsdGlwbGVzLgogICAgIC8vIFNvIHdlIG5lZWQgdG8g
aXRlcmF0ZSB0aHJvdWdoIGFsbCBhbmltYXRpb25zCiAgICAgaWYgKCFtX2tleWZyYW1lQW5pbWF0
aW9ucy5pc0VtcHR5KCkpIHsKICAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbnMuY2hlY2tDb25z
aXN0ZW5jeSgpOwogICAgICAgICBmb3IgKGF1dG8mIGFuaW1hdGlvbiA6IG1fa2V5ZnJhbWVBbmlt
YXRpb25zLnZhbHVlcygpKSB7CiAgICAgICAgICAgICBpZiAoYW5pbWF0aW9uLT5oYXNBbmltYXRp
b25Gb3JQcm9wZXJ0eShwcm9wZXJ0eSkpCi0gICAgICAgICAgICAgICAgcmV0dmFsID0gYW5pbWF0
aW9uOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGFuaW1hdGlvbi5nZXQoKTsKICAgICAgICAg
fQogICAgIH0KLSAgICAKLSAgICByZXR1cm4gcmV0dmFsOworCisgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAogYm9vbCBDb21wb3NpdGVBbmltYXRpb246OmNvbXB1dGVFeHRlbnRPZlRyYW5zZm9ybUFu
aW1hdGlvbihMYXlvdXRSZWN0JiBib3VuZHMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCmluZGV4IDMzN2ZlNmYxNjZlNzFj
MWNlNjE5YWUyMzg4OTMxMTg3ZmY4NjQ3Y2MuLjQwYzNhNDkxZjJhNTQ4ZWIzZTJiMzMxNmM0ZjBm
ZmUwNTMyMTM5MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Nv
bXBvc2l0ZUFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Nv
bXBvc2l0ZUFuaW1hdGlvbi5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
aXNBbmltYXRpbmdQcm9wZXJ0eShDU1NQcm9wZXJ0eUlELCBib29sIGFjY2VsZXJhdGVkT25seSwg
QW5pbWF0aW9uQmFzZTo6UnVubmluZ1N0YXRlKSBjb25zdDsKIAotICAgIFBhc3NSZWZQdHI8S2V5
ZnJhbWVBbmltYXRpb24+IGdldEFuaW1hdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQpIGNv
bnN0OworICAgIEtleWZyYW1lQW5pbWF0aW9uKiBhbmltYXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUlEKSBjb25zdDsKIAogICAgIHZvaWQgb3ZlcnJpZGVJbXBsaWNpdEFuaW1hdGlvbnMoQ1NT
UHJvcGVydHlJRCk7CiAgICAgdm9pZCByZXN1bWVPdmVycmlkZGVuSW1wbGljaXRBbmltYXRpb25z
KENTU1Byb3BlcnR5SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vSW1wbGljaXRBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
SW1wbGljaXRBbmltYXRpb24uY3BwCmluZGV4IDcxNmJlYTgyNDkwNDkyYzQzYmNlMTc3NDlkMWZm
YjUyMTI3Y2NjZmYuLmZkZWQ2MjNhNmFkZGE5MjRhYjc2MzYzZTI0NjljYmNhMzJjYmZiNzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlv
bi5jcHAKQEAgLTE2MywxMCArMTYzLDkgQEAgdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6b25Bbmlt
YXRpb25FbmQoZG91YmxlIGVsYXBzZWRUaW1lKQogICAgIC8vIHJ1bm5pbmcuIEJ1dCBub3cgdGhh
dCB0aGUgdHJhbnNpdGlvbiBoYXMgY29tcGxldGVkLCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGlzIHN0
eWxlIHdpdGggaXRzIG5ldwogICAgIC8vIGRlc3RpbmF0aW9uLiBJZiB3ZSBkaWRuJ3QsIHRoZSBu
ZXh0IHRpbWUgdGhyb3VnaCB3ZSB3b3VsZCB0aGluayBhIHRyYW5zaXRpb24gaGFkIHN0YXJ0ZWQK
ICAgICAvLyAoY29tcGFyaW5nIHRoZSBvbGQgdW5hbmltYXRlZCBzdHlsZSB3aXRoIHRoZSBuZXcg
ZmluYWwgc3R5bGUgb2YgdGhlIHRyYW5zaXRpb24pLgotICAgIFJlZlB0cjxLZXlmcmFtZUFuaW1h
dGlvbj4ga2V5ZnJhbWVBbmltID0gbV9jb21wb3NpdGVBbmltYXRpb24tPmdldEFuaW1hdGlvbkZv
clByb3BlcnR5KG1fYW5pbWF0aW5nUHJvcGVydHkpOwotICAgIGlmIChrZXlmcmFtZUFuaW0pCi0g
ICAgICAgIGtleWZyYW1lQW5pbS0+c2V0VW5hbmltYXRlZFN0eWxlKFJlbmRlclN0eWxlOjpjbG9u
ZVB0cigqbV90b1N0eWxlKSk7Ci0gICAgCisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbiA9IG1fY29t
cG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Gb3JQcm9wZXJ0eShtX2FuaW1hdGluZ1Byb3BlcnR5
KSkKKyAgICAgICAgYW5pbWF0aW9uLT5zZXRVbmFuaW1hdGVkU3R5bGUoUmVuZGVyU3R5bGU6OmNs
b25lUHRyKCptX3RvU3R5bGUpKTsKKwogICAgIHNlbmRUcmFuc2l0aW9uRXZlbnQoZXZlbnROYW1l
cygpLnRyYW5zaXRpb25lbmRFdmVudCwgZWxhcHNlZFRpbWUpOwogICAgIGVuZEFuaW1hdGlvbigp
OwogfQpAQCAtMTg3LDcgKzE4Niw3IEBAIGJvb2wgSW1wbGljaXRBbmltYXRpb246OnNlbmRUcmFu
c2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGRvdWJsCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICAvLyBTY2hlZHVsZSBldmVudCBo
YW5kbGluZwotICAgICAgICAgICAgbV9jb21wb3NpdGVBbmltYXRpb24tPmFuaW1hdGlvbkNvbnRy
b2xsZXIoKS5hZGRFdmVudFRvRGlzcGF0Y2goZWxlbWVudCwgZXZlbnRUeXBlLCBwcm9wZXJ0eU5h
bWUsIGVsYXBzZWRUaW1lKTsKKyAgICAgICAgICAgIG1fY29tcG9zaXRlQW5pbWF0aW9uLT5hbmlt
YXRpb25Db250cm9sbGVyKCkuYWRkRXZlbnRUb0Rpc3BhdGNoKCplbGVtZW50LCBldmVudFR5cGUs
IHByb3BlcnR5TmFtZSwgZWxhcHNlZFRpbWUpOwogCiAgICAgICAgICAgICAvLyBSZXN0b3JlIHRo
ZSBvcmlnaW5hbCAodW5hbmltYXRlZCkgc3R5bGUKICAgICAgICAgICAgIGlmIChldmVudFR5cGUg
PT0gZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCAmJiBlbGVtZW50LT5yZW5kZXJlcigp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmlt
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRp
b24uY3BwCmluZGV4IDQ3MWJhY2Y2ZjFiOWYwNWNlMWQzNGRhODc1ZmU4YzY3Yzk0ZmY1N2QuLmRj
MjlkMjIzOTFiMDM0YmRjZWU1NjZmM2IyYTVjMzE3YTBkZDAwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKQEAgLTMyNyw3
ICszMjcsNyBAQCBib29sIEtleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGRvdWJsZQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgICAgIC8vIFNjaGVkdWxlIGV2ZW50IGhhbmRsaW5nCi0gICAgICAgIG1fY29t
cG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Db250cm9sbGVyKCkuYWRkRXZlbnRUb0Rpc3BhdGNo
KGVsZW1lbnQsIGV2ZW50VHlwZSwgbV9rZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpLCBlbGFwc2Vk
VGltZSk7CisgICAgICAgIG1fY29tcG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Db250cm9sbGVy
KCkuYWRkRXZlbnRUb0Rpc3BhdGNoKCplbGVtZW50LCBldmVudFR5cGUsIG1fa2V5ZnJhbWVzLmFu
aW1hdGlvbk5hbWUoKSwgZWxhcHNlZFRpbWUpOwogCiAgICAgICAgIC8vIFJlc3RvcmUgdGhlIG9y
aWdpbmFsICh1bmFuaW1hdGVkKSBzdHlsZQogICAgICAgICBpZiAoKGV2ZW50VHlwZSA9PSBldmVu
dE5hbWVzKCkud2Via2l0QW5pbWF0aW9uRW5kRXZlbnQgfHwgZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5hbmltYXRpb25lbmRFdmVudCkgJiYgZWxlbWVudC0+cmVuZGVyZXIoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCmluZGV4IDIxMDZkMWUxOWE0ODZh
Mzg1ZmZlODdmOTAwZmFhZmU5MDhiY2FjMTIuLmFhZDA3ZDZmZjZiMTdlY2RkNzE3MTFlNDFlZjVi
NGUwM2VlMDA1MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFu
ZGxlckVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZs
LmNwcApAQCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjb25zdCBkb3VibGUg
RXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4wOwogI2VuZGlmCiAKLWJvb2wgRXZlbnRI
YW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCopIGNvbnN0Citib29s
IEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQmKSBjb25z
dAogewogICAgIHJldHVybiB0cnVlOwogfQpAQCAtOTYsMTAgKzk2LDEyIEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjp3aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgZXZlbnQsIFdpCiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc1JlZlB0cjxE
YXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBj
b25zdAorCitSZWY8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0
YVRyYW5zZmVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JE
cmFnQW5kRHJvcCgpOwogfQorCiAjZW5kaWYKIAogYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3Vz
ZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwg
RnJhbWUqIHN1YmZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZl
bnRIYW5kbGVyR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0
ay5jcHAKaW5kZXggNDNmMDUzNzVlNWJkZTYxNGY5MDhhN2MxNTRkODJkN2IwOGVjZTI0Yi4uYWFh
ZGUwMDJjNWM4OWJkY2VjMDI1MzY1YjAxOTdhNTAxOTZjMmI4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3BwCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgPSAw
LjA7CiAjZW5kaWYKIAotYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhL
ZXlib2FyZEV2ZW50KikgY29uc3QKK2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29u
dHJvbHMoS2V5Ym9hcmRFdmVudCYpIGNvbnN0CiB7CiAgICAgLy8gV2UgYWx3YXlzIGFsbG93IHRh
YnMgdG8gYWxsIGNvbnRyb2xzCiAgICAgcmV0dXJuIHRydWU7CkBAIC05NiwxMCArOTYsMTIgQEAg
Ym9vbCBFdmVudEhhbmRsZXI6OndpZGdldERpZEhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiBldmVudCwgV2kKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1Q
YXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFU
cmFuc2ZlcigpIGNvbnN0CisKK1JlZjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRl
RHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIHJldHVybiBEYXRhVHJhbnNmZXI6
OmNyZWF0ZUZvckRyYWdBbmREcm9wKCk7CiB9CisKICNlbmRpZgogCiBib29sIEV2ZW50SGFuZGxl
cjo6cGFzc01vdXNlUHJlc3NFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVz
dWx0cyYgbWV2LCBGcmFtZSogc3ViZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVu
dEhhbmRsZXJJT1MubW0KaW5kZXggNTI0ZmI1YWVhNWIzZDUyMzZiOTQxZDdhZDI1ODhiNDg5Y2Jk
YTdhMC4uMjliYWRlZjU5NTU4NGEzZmNlNTNjYTJmODI0MWU0ZjZlZmQ3NTRkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQpAQCAtMTIwLDcgKzEyMCw3IEBA
IHZvaWQgRXZlbnRIYW5kbGVyOjp0b3VjaEV2ZW50KFdlYkV2ZW50ICpldmVudCkKIH0KICNlbmRp
ZgogCi1ib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZl
bnQqIGV2ZW50KSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9s
cyhLZXlib2FyZEV2ZW50JiBldmVudCkgY29uc3QKIHsKICAgICBQYWdlKiBwYWdlID0gbV9mcmFt
ZS5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRI
YW5kbGVyTWFjLm1tCmluZGV4IGU1OTE5NzhjMDBjNDBjNjllNzczYTk3NjIxZDc2NzMzYmQ3NTFi
MDIuLmFkN2E1OWUzMWUwOTViMGJjNTIwNTA3MmZkZjE4MzlmMGY0ZjY4M2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAgLTYxLDYgKzYxLDcgQEAKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJX
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiV2hlZWxFdmVudERlbHRhRmlsdGVy
LmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL0Js
b2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpAQCAtNzIz
LDcgKzcyNCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpldmVudEFjdGl2YXRlZFZpZXcoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCkgY29uc3QKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCiAKLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdn
aW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKK1JlZjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6
Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIC8vIE11c3QgYmUgZG9u
ZSBiZWZvcmUgb25kcmFnc3RhcnQgYWRkcyB0eXBlcyBhbmQgZGF0YSB0byB0aGUgcGJvYXJkLAog
ICAgIC8vIGFsc28gZG9uZSBmb3Igc2VjdXJpdHksIGFzIGl0IGVyYXNlcyBkYXRhIGZyb20gdGhl
IGxhc3QgZHJhZy4KQEAgLTczNCw3ICs3MzUsNyBAQCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4g
RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CiAKICNlbmRp
ZgogCi1ib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZl
bnQqIGV2ZW50KSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9s
cyhLZXlib2FyZEV2ZW50JiBldmVudCkgY29uc3QKIHsKICAgICBQYWdlKiBwYWdlID0gbV9mcmFt
ZS5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpAQCAtOTcxLDEwICs5NzIsMTAgQEAgdm9pZCBFdmVu
dEhhbmRsZXI6OnBsYXRmb3JtUHJlcGFyZUZvcldoZWVsRXZlbnRzKGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYgd2hlZWwKICAgICAgICAgICAgICAgICBtX2ZyYW1lLm1haW5GcmFtZSgpLnB1c2hO
ZXdMYXRjaGluZ1N0YXRlKCk7CiAgICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZSA9IG1fZnJh
bWUubWFpbkZyYW1lKCkubGF0Y2hpbmdTdGF0ZSgpOwogICAgICAgICAgICAgICAgIGxhdGNoaW5n
U3RhdGUtPnNldFN0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdChmYWxzZSk7Ci0gICAgICAgICAg
ICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0V2hlZWxFdmVudEVsZW1lbnQod2hlZWxFdmVudFRhcmdl
dCk7CisgICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0V2hlZWxFdmVudEVsZW1lbnQo
d2hlZWxFdmVudFRhcmdldC5nZXQoKSk7CiAgICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+
c2V0RnJhbWUoJm1fZnJhbWUpOwogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXaGF0IHByZXZl
bnRzIHVzIGZyb20gZGVsZXRpbmcgdGhpcyBzY3JvbGxhYmxlIGNvbnRhaW5lciB3aGlsZSBzdGls
bCBob2xkaW5nIGEgcG9pbnRlciB0byBpdD8KLSAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRl
LT5zZXRTY3JvbGxhYmxlQ29udGFpbmVyKHNjcm9sbGFibGVDb250YWluZXIpOworICAgICAgICAg
ICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldFNjcm9sbGFibGVDb250YWluZXIoc2Nyb2xsYWJsZUNv
bnRhaW5lci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0V2lkZ2V0
SXNMYXRjaGVkKHJlc3VsdC5pc092ZXJXaWRnZXQoKSk7CiAgICAgICAgICAgICAgICAgaXNPdmVy
V2lkZ2V0ID0gbGF0Y2hpbmdTdGF0ZS0+d2lkZ2V0SXNMYXRjaGVkKCk7CiAgICAgICAgICAgICAg
ICAgbV9mcmFtZS5tYWluRnJhbWUoKS53aGVlbEV2ZW50RGVsdGFGaWx0ZXIoKS0+YmVnaW5GaWx0
ZXJpbmdEZWx0YXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXIuaAppbmRleCA1NWU0ZDY1OTVlZWI2MDUzZjZhNmE5NDUwYjlkYWVi
ODEyOGM1MjcwLi42NWIxY2VlYzZiMTEyN2IwNTk2MzIxZWM0ODgyNDU3ZGY0MWIwNGY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxl
ci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJQYWdlT3ZlcmxheS5oIgogI2luY2x1ZGUgIlJh
bmdlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
CiB0eXBlZGVmIHN0cnVjdCBfX0RESGlnaGxpZ2h0ICpEREhpZ2hsaWdodFJlZjsKIApAQCAtMzks
NiArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBMYXlvdXRSZWN0Owog
Y2xhc3MgTWFpbkZyYW1lOworCiBzdHJ1Y3QgR2FwUmVjdHM7CiAKIGNsYXNzIFNlcnZpY2VzT3Zl
cmxheUNvbnRyb2xsZXIgOiBwcml2YXRlIFBhZ2VPdmVybGF5OjpDbGllbnQgewpAQCAtNTQsMTQg
KzU0LDE0IEBAIHByaXZhdGU6CiAgICAgY2xhc3MgSGlnaGxpZ2h0IDogcHVibGljIFJlZkNvdW50
ZWQ8SGlnaGxpZ2h0PiwgcHJpdmF0ZSBHcmFwaGljc0xheWVyQ2xpZW50IHsKICAgICAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoSGlnaGxpZ2h0KTsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRp
YyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGVGb3JTZWxlY3Rpb24oU2VydmljZXNPdmVybGF5Q29udHJv
bGxlciYsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFBhc3NSZWZQdHI8UmFuZ2U+KTsKLSAg
ICAgICAgc3RhdGljIFJlZjxIaWdobGlnaHQ+IGNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcihTZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyJiwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUGFzc1Jl
ZlB0cjxSYW5nZT4pOworICAgICAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlRm9yU2Vs
ZWN0aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImLCBSZXRhaW5QdHI8RERIaWdobGlnaHRS
ZWY+LCBSZWY8UmFuZ2U+JiYpOworICAgICAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRl
Rm9yVGVsZXBob25lTnVtYmVyKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImLCBSZXRhaW5QdHI8
RERIaWdobGlnaHRSZWY+LCBSZWY8UmFuZ2U+JiYpOwogICAgICAgICB+SGlnaGxpZ2h0KCk7CiAK
ICAgICAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKICAgICAgICAgRERIaWdobGlnaHRSZWYgZGRI
aWdobGlnaHQoKSBjb25zdCB7IHJldHVybiBtX2RkSGlnaGxpZ2h0LmdldCgpOyB9Ci0gICAgICAg
IFJhbmdlKiByYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2UuZ2V0KCk7IH0KKyAgICAgICAg
UmFuZ2UmIHJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZS5nZXQoKTsgfQogICAgICAgICBH
cmFwaGljc0xheWVyKiBsYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fZ3JhcGhpY3NMYXllci5nZXQo
KTsgfQogCiAgICAgICAgIGVudW0gewpAQCAtNzcsNyArNzcsNyBAQCBwcml2YXRlOgogICAgICAg
ICB2b2lkIHNldERESGlnaGxpZ2h0KERESGlnaGxpZ2h0UmVmKTsKIAogICAgIHByaXZhdGU6Ci0g
ICAgICAgIGV4cGxpY2l0IEhpZ2hsaWdodChTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiwgVHlw
ZSwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUGFzc1JlZlB0cjxSYW5nZT4pOworICAgICAg
ICBIaWdobGlnaHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFR5cGUsIFJldGFpblB0cjxE
REhpZ2hsaWdodFJlZj4sIFJlZjxSYW5nZT4mJik7CiAKICAgICAgICAgLy8gR3JhcGhpY3NMYXll
ckNsaWVudAogICAgICAgICB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NM
YXllciopIG92ZXJyaWRlOwpAQCAtODcsNyArODcsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lk
IGRpZEZpbmlzaEZhZGVPdXRBbmltYXRpb24oKTsKIAogICAgICAgICBSZXRhaW5QdHI8RERIaWdo
bGlnaHRSZWY+IG1fZGRIaWdobGlnaHQ7Ci0gICAgICAgIFJlZlB0cjxSYW5nZT4gbV9yYW5nZTsK
KyAgICAgICAgUmVmPFJhbmdlPiBtX3JhbmdlOwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3Jh
cGhpY3NMYXllcj4gbV9ncmFwaGljc0xheWVyOwogICAgICAgICBUeXBlIG1fdHlwZTsKICAgICAg
ICAgU2VydmljZXNPdmVybGF5Q29udHJvbGxlciogbV9jb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KaW5kZXgg
OWE4MTViNWFlNTU5NjQ5OWJkZjYxNmVkNDIxMWI5YTUyMzgxNWU2Mi4uNGIwM2UyMmFlNDZiZTg5
YWUyMzEwMmZiNDlmZjQ5MjFkNDA0NjhiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCkBAIC01NSwyMyArNTUsMjIgQEAg
Y29uc3QgZmxvYXQgaGlnaGxpZ2h0RmFkZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4zOwogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGln
aHQ+IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6Y3JlYXRlRm9yU2VsZWN0
aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIsIFJldGFpblB0cjxEREhp
Z2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlKQorUmVmPFNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodD4gU2VydmljZXNPdmVybGF5Q29udHJv
bGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24oU2VydmljZXNPdmVybGF5Q29udHJv
bGxlciYgY29udHJvbGxlciwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCwg
UmVmPFJhbmdlPiYmIHJhbmdlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdo
dChjb250cm9sbGVyLCBIaWdobGlnaHQ6OlNlbGVjdGlvblR5cGUsIGRkSGlnaGxpZ2h0LCByYW5n
ZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodChjb250cm9sbGVyLCBIaWdo
bGlnaHQ6OlNlbGVjdGlvblR5cGUsIGRkSGlnaGxpZ2h0LCBXVEZNb3ZlKHJhbmdlKSkpOwogfQog
Ci1SZWY8U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0PiBTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OmNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcihTZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyJiBjb250cm9sbGVyLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+
IGRkSGlnaGxpZ2h0LCBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZSkKK1JlZjxTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyOjpIaWdobGlnaHQ+IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hs
aWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIm
IGNvbnRyb2xsZXIsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFJlZjxS
YW5nZT4mJiByYW5nZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHQoY29u
dHJvbGxlciwgSGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlLCBkZEhpZ2hsaWdodCwgcmFu
Z2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHQoY29udHJvbGxlciwgSGln
aGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlLCBkZEhpZ2hsaWdodCwgV1RGTW92ZShyYW5nZSkp
KTsKIH0KIAotU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpIaWdobGlnaHQo
U2VydmljZXNPdmVybGF5Q29udHJvbGxlciYgY29udHJvbGxlciwgVHlwZSB0eXBlLCBSZXRhaW5Q
dHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlJhbmdl
PiByYW5nZSkKLSAgICA6IG1fcmFuZ2UocmFuZ2UpCitTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
OjpIaWdobGlnaHQ6OkhpZ2hsaWdodChTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiBjb250cm9s
bGVyLCBUeXBlIHR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFJl
ZjxXZWJDb3JlOjpSYW5nZT4mJiByYW5nZSkKKyAgICA6IG1fcmFuZ2UoV1RGTW92ZShyYW5nZSkp
CiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fY29udHJvbGxlcigmY29udHJvbGxlcikKIHsK
ICAgICBBU1NFUlQoZGRIaWdobGlnaHQpOwotICAgIEFTU0VSVChtX3JhbmdlKTsKIAogICAgIFBh
Z2UqIHBhZ2UgPSBjb250cm9sbGVyLm1haW5GcmFtZSgpLnBhZ2UoKTsKICAgICBtX2dyYXBoaWNz
TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUocGFnZSA/IHBhZ2UtPmNocm9tZSgpLmNsaWVu
dCgpLmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgOiBudWxscHRyLCAqdGhpcyk7CkBAIC00MDksNyAr
NDA4LDcgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFBvdGVudGlhbEhp
Z2hsaWdodHNJZk5lZWRlZCgpCiAKICAgICBpZiAobV9wb3RlbnRpYWxIaWdobGlnaHRzLmlzRW1w
dHkoKSkgewogICAgICAgICBpZiAobV9zZXJ2aWNlc092ZXJsYXkpCi0gICAgICAgICAgICBtX21h
aW5GcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheShtX3Nl
cnZpY2VzT3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgICAg
ICAgICAgbV9tYWluRnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92
ZXJsYXkoKm1fc2VydmljZXNPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFk
ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTUyNyw3ICs1MjYsNyBAQCB2b2lkIFNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkUGhvbmVOdW1iZXJIaWdobGlnaHRzKCkKICAg
ICAgICAgQ0dSZWN0IGNnUmVjdCA9IHJlY3Q7CiAgICAgICAgIFJldGFpblB0cjxEREhpZ2hsaWdo
dFJlZj4gZGRIaWdobGlnaHQgPSBhZG9wdENGKERESGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5W
aXNpYmxlUmVjdFdpdGhTdHlsZUFuZERpcmVjdGlvbihudWxscHRyLCAmY2dSZWN0LCAxLCBtYWlu
RnJhbWVWaWV3LnZpc2libGVDb250ZW50UmVjdCgpLCBEREhpZ2hsaWdodFN0eWxlQnViYmxlU3Rh
bmRhcmQgfCBEREhpZ2hsaWdodFN0eWxlU3RhbmRhcmRJY29uQXJyb3csIFlFUywgTlNXcml0aW5n
RGlyZWN0aW9uTmF0dXJhbCwgTk8sIFlFUykpOwogCi0gICAgICAgIG5ld1BvdGVudGlhbEhpZ2hs
aWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKCp0aGlzLCBkZEhp
Z2hsaWdodCwgcmFuZ2UpKTsKKyAgICAgICAgbmV3UG90ZW50aWFsSGlnaGxpZ2h0cy5hZGQoSGln
aGxpZ2h0OjpjcmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIoKnRoaXMsIGRkSGlnaGxpZ2h0LCByYW5n
ZS5yZWxlYXNlTm9uTnVsbCgpKSk7CiAgICAgfQogCiAgICAgcmVwbGFjZUhpZ2hsaWdodHNPZlR5
cGVQcmVzZXJ2aW5nRXF1aXZhbGVudEhpZ2hsaWdodHMobmV3UG90ZW50aWFsSGlnaGxpZ2h0cywg
SGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlKTsKQEAgLTU3MCw3ICs1NjksNyBAQCB2b2lk
IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkU2VsZWN0aW9uSGlnaGxpZ2h0KCkKICAg
ICAgICAgICAgIENHUmVjdCB2aXNpYmxlUmVjdCA9IG1haW5GcmFtZVZpZXctPnZpc2libGVDb250
ZW50UmVjdCgpOwogICAgICAgICAgICAgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hs
aWdodCA9IGFkb3B0Q0YoRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0
aFN0eWxlQW5kRGlyZWN0aW9uKG51bGxwdHIsIGNnUmVjdHMuYmVnaW4oKSwgY2dSZWN0cy5zaXpl
KCksIHZpc2libGVSZWN0LCBEREhpZ2hsaWdodFN0eWxlQnViYmxlTm9uZSB8IERESGlnaGxpZ2h0
U3R5bGVTdGFuZGFyZEljb25BcnJvdyB8IERESGlnaGxpZ2h0U3R5bGVCdXR0b25TaG93QWx3YXlz
LCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5PLCBZRVMpKTsKICAgICAgICAgICAg
IAotICAgICAgICAgICAgbmV3UG90ZW50aWFsSGlnaGxpZ2h0cy5hZGQoSGlnaGxpZ2h0OjpjcmVh
dGVGb3JTZWxlY3Rpb24oKnRoaXMsIGRkSGlnaGxpZ2h0LCBzZWxlY3Rpb25SYW5nZSkpOworICAg
ICAgICAgICAgbmV3UG90ZW50aWFsSGlnaGxpZ2h0cy5hZGQoSGlnaGxpZ2h0OjpjcmVhdGVGb3JT
ZWxlY3Rpb24oKnRoaXMsIGRkSGlnaGxpZ2h0LCBzZWxlY3Rpb25SYW5nZS5yZWxlYXNlTm9uTnVs
bCgpKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTYzOCwxNCArNjM3LDkgQEAgYm9vbCBTZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyOjpoaWdobGlnaHRzQXJlRXF1aXZhbGVudChjb25zdCBIaWdo
bGlnaHQqIGEsIGNvbnMKIHsKICAgICBpZiAoYSA9PSBiKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
LQogICAgIGlmICghYSB8fCAhYikKICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGEt
PnR5cGUoKSA9PSBiLT50eXBlKCkgJiYgYXJlUmFuZ2VzRXF1YWwoYS0+cmFuZ2UoKSwgYi0+cmFu
Z2UoKSkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiBhLT50eXBlKCkgPT0gYi0+dHlwZSgpICYmIGFyZVJhbmdlc0VxdWFsKCZhLT5yYW5nZSgp
LCAmYi0+cmFuZ2UoKSk7CiB9CiAKIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdo
dCogU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6ZmluZFRlbGVwaG9uZU51bWJlckhpZ2hsaWdo
dENvbnRhaW5pbmdTZWxlY3Rpb25IaWdobGlnaHQoSGlnaGxpZ2h0JiBzZWxlY3Rpb25IaWdobGln
aHQpCkBAIC02NjksNyArNjYzLDcgQEAgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxp
Z2h0KiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpmaW5kVGVsZXBob25lTnUKICAgICAgICAg
aWYgKGhpZ2hsaWdodC0+dHlwZSgpICE9IEhpZ2hsaWdodDo6VGVsZXBob25lTnVtYmVyVHlwZSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmIChoaWdobGlnaHQtPnJhbmdlKCkt
PmNvbnRhaW5zKCphY3RpdmVTZWxlY3Rpb25SYW5nZSkpCisgICAgICAgIGlmIChoaWdobGlnaHQt
PnJhbmdlKCkuY29udGFpbnMoKmFjdGl2ZVNlbGVjdGlvblJhbmdlKSkKICAgICAgICAgICAgIHJl
dHVybiBoaWdobGlnaHQuZ2V0KCk7CiAgICAgfQogCkBAIC04MzIsNyArODI2LDcgQEAgdm9pZCBT
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpoYW5kbGVDbGljayhjb25zdCBJbnRQb2ludCYgY2xp
Y2tQb2ludCwgSGlnaGxpZ2gKIAogICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYW5k
bGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2socGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9y
TWFpbkZyYW1lKCkuc2VsZWN0aW9uKCksIHNlbGVjdGVkVGVsZXBob25lTnVtYmVycywgd2luZG93
UG9pbnQpOwogICAgIH0gZWxzZSBpZiAoaGlnaGxpZ2h0LnR5cGUoKSA9PSBIaWdobGlnaHQ6OlRl
bGVwaG9uZU51bWJlclR5cGUpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmhhbmRs
ZVRlbGVwaG9uZU51bWJlckNsaWNrKGhpZ2hsaWdodC5yYW5nZSgpLT50ZXh0KCksIHdpbmRvd1Bv
aW50KTsKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFuZGxlVGVsZXBob25lTnVt
YmVyQ2xpY2soaGlnaGxpZ2h0LnJhbmdlKCkudGV4dCgpLCB3aW5kb3dQb2ludCk7CiB9CiAKIHZv
aWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6ZGlkQ3JlYXRlSGlnaGxpZ2h0KEhpZ2hsaWdo
dCogaGlnaGxpZ2h0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dElu
ZGljYXRvcldpbmRvdy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JX
aW5kb3cubW0KaW5kZXggZTRlMjBkMjI3NjhjODgyZTkwMGIxMmI0MWZlMDJlY2RmYjQ4ZjYyOC4u
ZTU5MjliYTYzZGU1OWY0OTgzYmQ4Y2Y5YzMwMDY0ZTY3MTc3M2NiYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCkBAIC02NCw3ICs2NCw3IEBA
IEBpbnRlcmZhY2UgV2ViVGV4dEluZGljYXRvclZpZXcgOiBOU1ZpZXcgewogICAgIEJPT0wgX2Zh
ZGluZ091dDsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFt
ZSB0ZXh0SW5kaWNhdG9yOihQYXNzUmVmUHRyPFRleHRJbmRpY2F0b3I+KXRleHRJbmRpY2F0b3Ig
bWFyZ2luOihOU1NpemUpbWFyZ2luIG9mZnNldDooTlNQb2ludClvZmZzZXQ7CistIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFRleHRJbmRp
Y2F0b3ImKXRleHRJbmRpY2F0b3IgbWFyZ2luOihOU1NpemUpbWFyZ2luIG9mZnNldDooTlNQb2lu
dClvZmZzZXQ7CiAKIC0gKHZvaWQpcHJlc2VudDsKIC0gKHZvaWQpaGlkZVdpdGhDb21wbGV0aW9u
SGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKQEAgLTE0NywxMiArMTQ3
LDEyIEBAIHN0YXRpYyBib29sIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uKGNvbnN0IFRl
eHRJbmRpY2F0b3ImIGluZGljYXRvcikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLS0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooUGFzc1Jl
ZlB0cjxUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yIG1hcmdpbjooTlNTaXplKW1hcmdpbiBv
ZmZzZXQ6KE5TUG9pbnQpb2Zmc2V0CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooTlNS
ZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3IgbWFy
Z2luOihOU1NpemUpbWFyZ2luIG9mZnNldDooTlNQb2ludClvZmZzZXQKIHsKICAgICBpZiAoIShz
ZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdKSkKICAgICAgICAgcmV0dXJuIG5pbDsK
IAotICAgIF90ZXh0SW5kaWNhdG9yID0gdGV4dEluZGljYXRvcjsKKyAgICBfdGV4dEluZGljYXRv
ciA9ICZ0ZXh0SW5kaWNhdG9yOwogICAgIF9tYXJnaW4gPSBtYXJnaW47CiAKICAgICBzZWxmLndh
bnRzTGF5ZXIgPSBZRVM7CkBAIC00NjUsNyArNDY1LDggQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2lu
ZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBD
R1IKICAgICBbbV90ZXh0SW5kaWNhdG9yV2luZG93IHNldE9wYXF1ZTpOT107CiAgICAgW21fdGV4
dEluZGljYXRvcldpbmRvdyBzZXRJZ25vcmVzTW91c2VFdmVudHM6WUVTXTsKIAotICAgIG1fdGV4
dEluZGljYXRvclZpZXcgPSBhZG9wdE5TKFtbV2ViVGV4dEluZGljYXRvclZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCBbbV90ZXh0SW5kaWNhdG9yV2luZG93IGZyYW1l
XS5zaXplLndpZHRoLCBbbV90ZXh0SW5kaWNhdG9yV2luZG93IGZyYW1lXS5zaXplLmhlaWdodCkg
dGV4dEluZGljYXRvcjptX3RleHRJbmRpY2F0b3IgbWFyZ2luOk5TTWFrZVNpemUoaG9yaXpvbnRh
bE1hcmdpbiwgdmVydGljYWxNYXJnaW4pIG9mZnNldDpmcmFjdGlvbmFsVGV4dE9mZnNldF0pOwor
ICAgIG1fdGV4dEluZGljYXRvclZpZXcgPSBhZG9wdE5TKFtbV2ViVGV4dEluZGljYXRvclZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCBbbV90ZXh0SW5kaWNhdG9yV2lu
ZG93IGZyYW1lXS5zaXplLndpZHRoLCBbbV90ZXh0SW5kaWNhdG9yV2luZG93IGZyYW1lXS5zaXpl
LmhlaWdodCkKKyAgICAgICAgdGV4dEluZGljYXRvcjoqbV90ZXh0SW5kaWNhdG9yIG1hcmdpbjpO
U01ha2VTaXplKGhvcml6b250YWxNYXJnaW4sIHZlcnRpY2FsTWFyZ2luKSBvZmZzZXQ6ZnJhY3Rp
b25hbFRleHRPZmZzZXRdKTsKICAgICBbbV90ZXh0SW5kaWNhdG9yV2luZG93IHNldENvbnRlbnRW
aWV3Om1fdGV4dEluZGljYXRvclZpZXcuZ2V0KCldOwogCiAgICAgW1ttX3RhcmdldFZpZXcgd2lu
ZG93XSBhZGRDaGlsZFdpbmRvdzptX3RleHRJbmRpY2F0b3JXaW5kb3cuZ2V0KCkgb3JkZXJlZDpO
U1dpbmRvd0Fib3ZlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCBhNDM0MTdkY2UxYzQwMTMwODQ2
OTIzODNhMTJhOGNmMWFiOWQyMGIzLi4wMTFhZTBmMjMzYzA5MjZmZWZlMGYwZDkwN2M1ZjFhODBm
MjcyNzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAi
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlLmgiCiAjaW5j
bHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjksMTEgKzY4LDExIEBAIHB1
YmxpYzoKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBBc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yKFBhZ2UqKTsKIAotICAgIHZvaWQgc2V0U2Nyb2xsaW5nVHJlZShQYXNzUmVmUHRyPFNj
cm9sbGluZ1RyZWU+IHNjcm9sbGluZ1RyZWUpIHsgbV9zY3JvbGxpbmdUcmVlID0gc2Nyb2xsaW5n
VHJlZTsgfQorICAgIHZvaWQgc2V0U2Nyb2xsaW5nVHJlZShSZWY8U2Nyb2xsaW5nVHJlZT4mJiBz
Y3JvbGxpbmdUcmVlKSB7IG1fc2Nyb2xsaW5nVHJlZSA9IFdURk1vdmUoc2Nyb2xsaW5nVHJlZSk7
IH0KIAogICAgIFNjcm9sbGluZ1N0YXRlVHJlZSogc2Nyb2xsaW5nU3RhdGVUcmVlKCkgeyByZXR1
cm4gbV9zY3JvbGxpbmdTdGF0ZVRyZWUuZ2V0KCk7IH0KIAotICAgIFBhc3NSZWZQdHI8U2Nyb2xs
aW5nVHJlZT4gcmVsZWFzZVNjcm9sbGluZ1RyZWUoKSB7IHJldHVybiBXVEZNb3ZlKG1fc2Nyb2xs
aW5nVHJlZSk7IH0KKyAgICBSZWZQdHI8U2Nyb2xsaW5nVHJlZT4gcmVsZWFzZVNjcm9sbGluZ1Ry
ZWUoKSB7IHJldHVybiBXVEZNb3ZlKG1fc2Nyb2xsaW5nVHJlZSk7IH0KIAogICAgIHZvaWQgdXBk
YXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3Qg
RmxvYXRQb2ludCYsIHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4gbGF5b3V0Vmlld3BvcnRPcmln
aW4sIGJvb2wgcHJvZ3JhbW1hdGljU2Nyb2xsLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0
Y2hpbmdTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRj
aGluZ1N0YXRlLmNwcAppbmRleCBlMzlkOTllZmJhMzA2OGNjYjA1NWI0MGQxYzcyNDM3N2Q1OGUz
NWJlLi4wMWU2NTI5YjAyYzhjMWQ3MGFlNzczMjgzZWI3ZjczMDA1NzRmOTg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRlLmNw
cApAQCAtMzEsOSArMzEsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTY3JvbGxMYXRjaGlu
Z1N0YXRlOjpTY3JvbGxMYXRjaGluZ1N0YXRlKCkKLSAgICA6IG1fZnJhbWUobnVsbHB0cikKLSAg
ICAsIG1fd2lkZ2V0SXNMYXRjaGVkKGZhbHNlKQotICAgICwgbV9zdGFydGVkR2VzdHVyZUF0U2Ny
b2xsTGltaXQoZmFsc2UpCiB7CiB9CiAgICAgCkBAIC01MCw3ICs0Nyw3IEBAIHZvaWQgU2Nyb2xs
TGF0Y2hpbmdTdGF0ZTo6Y2xlYXIoKQogICAgIG1fcHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVu
dCA9IG51bGxwdHI7CiB9CiAKLXZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0V2hlZWxFdmVu
dEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50KQordm9pZCBTY3JvbGxMYXRjaGlu
Z1N0YXRlOjpzZXRXaGVlbEV2ZW50RWxlbWVudChFbGVtZW50KiBlbGVtZW50KQogewogICAgIG1f
d2hlZWxFdmVudEVsZW1lbnQgPSBlbGVtZW50OwogfQpAQCAtNjAsMTQgKzU3LDE0IEBAIHZvaWQg
U2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0V2lkZ2V0SXNMYXRjaGVkKGJvb2wgaXNPdmVyV2lkZ2V0
KQogICAgIG1fd2lkZ2V0SXNMYXRjaGVkID0gaXNPdmVyV2lkZ2V0OwogfQogCi12b2lkIFNjcm9s
bExhdGNoaW5nU3RhdGU6OnNldFByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQoUmVmUHRyPEVs
ZW1lbnQ+JiYgZWxlbWVudCkKK3ZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0UHJldmlvdXNX
aGVlbFNjcm9sbGVkRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQogewogICAgIG1fcHJldmlvdXNX
aGVlbFNjcm9sbGVkRWxlbWVudCA9IGVsZW1lbnQ7CiB9CiAKLXZvaWQgU2Nyb2xsTGF0Y2hpbmdT
dGF0ZTo6c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IG5v
ZGUpCit2b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFNjcm9sbGFibGVDb250YWluZXIoQ29u
dGFpbmVyTm9kZSogY29udGFpbmVyKQogewotICAgIG1fc2Nyb2xsYWJsZUNvbnRhaW5lciA9IG5v
ZGU7CisgICAgbV9zY3JvbGxhYmxlQ29udGFpbmVyID0gY29udGFpbmVyOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRlLmgK
aW5kZXggNGRjMGRkMzIyOTNiMzkwZWM5YjY3MWNmZTNiMTk4NTdjOTczYzQ3OC4uMTFkY2JkMGRi
MTU1ZTA0NTAwMDU2MjFhMDUxNzQ3NmQyYjkyOTNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuaApAQCAtNDEsNyArNDEsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhcigpOwogCiAgICAgRWxlbWVudCogd2hlZWxFdmVudEVs
ZW1lbnQoKSB7IHJldHVybiBtX3doZWVsRXZlbnRFbGVtZW50LmdldCgpOyB9Ci0gICAgdm9pZCBz
ZXRXaGVlbEV2ZW50RWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKKyAgICB2b2lkIHNldFdo
ZWVsRXZlbnRFbGVtZW50KEVsZW1lbnQqKTsKICAgICBGcmFtZSogZnJhbWUoKSB7IHJldHVybiBt
X2ZyYW1lOyB9CiAgICAgdm9pZCBzZXRGcmFtZShGcmFtZSogZnJhbWUpIHsgbV9mcmFtZSA9IGZy
YW1lOyB9CiAKQEAgLTQ5LDEwICs0OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRXaWRnZXRJ
c0xhdGNoZWQoYm9vbCBpc092ZXJXaWRnZXQpOwogCiAgICAgRWxlbWVudCogcHJldmlvdXNXaGVl
bFNjcm9sbGVkRWxlbWVudCgpIHsgcmV0dXJuIG1fcHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVu
dC5nZXQoKTsgfQotICAgIHZvaWQgc2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudChSZWZQ
dHI8RWxlbWVudD4mJik7CisgICAgdm9pZCBzZXRQcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50
KEVsZW1lbnQqKTsKICAgICAKICAgICBDb250YWluZXJOb2RlKiBzY3JvbGxhYmxlQ29udGFpbmVy
KCkgeyByZXR1cm4gbV9zY3JvbGxhYmxlQ29udGFpbmVyLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRT
Y3JvbGxhYmxlQ29udGFpbmVyKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4pOworICAgIHZvaWQg
c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihDb250YWluZXJOb2RlKik7CiAgICAgYm9vbCBzdGFydGVk
R2VzdHVyZUF0U2Nyb2xsTGltaXQoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0ZWRHZXN0dXJlQXRT
Y3JvbGxMaW1pdDsgfQogICAgIHZvaWQgc2V0U3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0KGJv
b2wgc3RhcnRlZEF0TGltaXQpIHsgbV9zdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQgPSBzdGFy
dGVkQXRMaW1pdDsgfQogCkBAIC02MSwxMCArNjEsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8
RWxlbWVudD4gbV9wcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50OwogICAgIFJlZlB0cjxDb250
YWluZXJOb2RlPiBtX3Njcm9sbGFibGVDb250YWluZXI7CiAKLSAgICBGcmFtZSogbV9mcmFtZTsK
LSAgICAKLSAgICBib29sIG1fd2lkZ2V0SXNMYXRjaGVkOwotICAgIGJvb2wgbV9zdGFydGVkR2Vz
dHVyZUF0U2Nyb2xsTGltaXQ7CisgICAgRnJhbWUqIG1fZnJhbWUgeyBudWxscHRyIH07CisKKyAg
ICBib29sIG1fd2lkZ2V0SXNMYXRjaGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc3RhcnRlZEdl
c3R1cmVBdFNjcm9sbExpbWl0IHsgZmFsc2UgfTsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVOb2RlLmNwcAppbmRleCBjODQ1OWIwNWEwZDE2N2I1YWNlYWQxNDA5NWU5M2Y2ZWQ3N2Yy
NGQwLi42MWRhNThhOWRlZWMwZjY4ZDVkYTYyMGUyZDZmZDgwMzE1YTc0YzIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5jcHAK
QEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OnNldFByb3BlcnR5Q2hh
bmdlZCh1bnNpZ25lZCBwcm9wZXJ0eUJpdCkKICAgICBtX3Njcm9sbGluZ1N0YXRlVHJlZS5zZXRI
YXNDaGFuZ2VkUHJvcGVydGllcygpOwogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9k
ZT4gU2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYg
YWRvcHRpdmVUcmVlKQorUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVOb2Rl
OjpjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVlKQogewogICAg
IGF1dG8gY2xvbmUgPSB0aGlzLT5jbG9uZShhZG9wdGl2ZVRyZWUpOwogCkBAIC04MCw3ICs4MCw4
IEBAIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZU5vZGU6OmNs
b25lQW5kUmVzZXQoU2Nyb2xsaW5nU3RhdGVUCiAgICAgcmVzZXRDaGFuZ2VkUHJvcGVydGllcygp
OwogCiAgICAgY2xvbmVBbmRSZXNldENoaWxkcmVuKGNsb25lLmdldCgpLCBhZG9wdGl2ZVRyZWUp
OwotICAgIHJldHVybiBXVEZNb3ZlKGNsb25lKTsKKworICAgIHJldHVybiBjbG9uZTsKIH0KIAog
dm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OmNsb25lQW5kUmVzZXRDaGlsZHJlbihTY3JvbGxpbmdT
dGF0ZU5vZGUmIGNsb25lLCBTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKQEAgLTky
LDE0ICs5MywxMyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVBbmRSZXNldENoaWxk
cmVuKFNjcm9sbGluZ1N0YXRlTm9kZSYgY2xvbmUsIFNjcm9sbAogICAgICAgICBjbG9uZS5hcHBl
bmRDaGlsZChjaGlsZC0+Y2xvbmVBbmRSZXNldChhZG9wdGl2ZVRyZWUpKTsKIH0KIAotdm9pZCBT
Y3JvbGxpbmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVO
b2RlPiBjaGlsZE5vZGUpCit2b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6YXBwZW5kQ2hpbGQoUmVm
PFNjcm9sbGluZ1N0YXRlTm9kZT4mJiBjaGlsZE5vZGUpCiB7CiAgICAgY2hpbGROb2RlLT5zZXRQ
YXJlbnQodGhpcyk7CiAKICAgICBpZiAoIW1fY2hpbGRyZW4pCiAgICAgICAgIG1fY2hpbGRyZW4g
PSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPj4+KCk7
Ci0KLSAgICBtX2NoaWxkcmVuLT5hcHBlbmQoY2hpbGROb2RlKTsKKyAgICBtX2NoaWxkcmVuLT5h
cHBlbmQoV1RGTW92ZShjaGlsZE5vZGUpKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6
OnNldExheWVyKGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIGxheWVyUmVwcmVzZW50YXRpb24p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9k
ZS5oCmluZGV4IGJmYWQxYzQ1ZTBkNzFmOWJhN2MyYmMwODIzZjExYmU0NjhkNjllYzAuLjA4N2Q2
MTgyOWFkZTU0NjEwNjEyMDU3NWJkNDFhMTY4MGViYzFkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5oCkBAIC0yMDYsNyArMjA2
LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNPdmVyZmxvd1Njcm9sbGluZ05vZGUoKSBjb25zdCB7
IHJldHVybiBtX25vZGVUeXBlID09IE92ZXJmbG93U2Nyb2xsaW5nTm9kZTsgfQogCiAgICAgdmly
dHVhbCBSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9uZShTY3JvbGxpbmdTdGF0ZVRyZWUmIGFk
b3B0aXZlVHJlZSkgPSAwOwotICAgIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9u
ZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVlKTsKKyAgICBSZWY8U2Ny
b2xsaW5nU3RhdGVOb2RlPiBjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRp
dmVUcmVlKTsKICAgICB2b2lkIGNsb25lQW5kUmVzZXRDaGlsZHJlbihTY3JvbGxpbmdTdGF0ZU5v
ZGUmLCBTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSk7CiAKICAgICBlbnVtIHsKQEAg
LTIzOCw3ICsyMzgsNyBAQCBwdWJsaWM6CiAKICAgICBWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1N0
YXRlTm9kZT4+KiBjaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW4uZ2V0KCk7IH0K
IAotICAgIHZvaWQgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+KTsK
KyAgICB2b2lkIGFwcGVuZENoaWxkKFJlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+JiYpOwogCiAgICAg
U3RyaW5nIHNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcAppbmRleCA5
OGI2Y2FkY2I0YzM1MWNkMmQ3NjY2NDY1NzNlMzg1YTczMmZjMTQyLi4wYmJjMWI3MzM4MjcxOWI2
MjU4ZDExZDA0OTQzM2UzMjk4N2EzZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgdm9p
ZCBTY3JvbGxpbmdTdGF0ZVRyZWU6OnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVzKGJvb2wgY2hhbmdl
ZFByb3BlcnRpZXMpCiAjZW5kaWYKIH0KIAotUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+
IFNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlw
ZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9s
bGluZ1N0YXRlVHJlZTo6Y3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Ny
b2xsaW5nTm9kZUlEIG5vZGVJRCkKIHsKICAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2Fz
ZSBGaXhlZE5vZGU6CkBAIC04MCw3ICs4MCw3IEBAIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVO
b2RlPiBTY3JvbGxpbmdTdGF0ZVRyZWU6OmNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUKICAg
ICAgICAgcmV0dXJuIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOjpjcmVhdGUo
KnRoaXMsIG5vZGVJRCk7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJl
dHVybiBudWxscHRyOworICAgIHJldHVybiBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZTo6Y3JlYXRl
KCp0aGlzLCBub2RlSUQpOwogfQogCiBib29sIFNjcm9sbGluZ1N0YXRlVHJlZTo6bm9kZVR5cGVB
bmRQYXJlbnRNYXRjaChTY3JvbGxpbmdTdGF0ZU5vZGUmIG5vZGUsIFNjcm9sbGluZ05vZGVUeXBl
IG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgcGFyZW50SUQpIGNvbnN0CkBAIC0xMjksMTMgKzEy
OSwxMyBAQCBTY3JvbGxpbmdOb2RlSUQgU2Nyb2xsaW5nU3RhdGVUcmVlOjphdHRhY2hOb2RlKFNj
cm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbAogICAgICAgICBpZiAobm9kZVR5cGUgPT0g
RnJhbWVTY3JvbGxpbmdOb2RlICYmIHBhcmVudElEKSB7CiAgICAgICAgICAgICBpZiAoYXV0byBv
cnBoYW5lZE5vZGUgPSBtX29ycGhhbmVkU3ViZnJhbWVOb2Rlcy50YWtlKG5ld05vZGVJRCkpIHsK
ICAgICAgICAgICAgICAgICBuZXdOb2RlID0gb3JwaGFuZWROb2RlLmdldCgpOwotICAgICAgICAg
ICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoV1RGTW92ZShvcnBoYW5lZE5vZGUpKTsKKyAgICAg
ICAgICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKG9ycGhhbmVkTm9kZS5yZWxlYXNlTm9uTnVs
bCgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGlmICghbmV3Tm9kZSkg
ewogICAgICAgICAgICAgYXV0byBzdGF0ZU5vZGUgPSBjcmVhdGVOb2RlKG5vZGVUeXBlLCBuZXdO
b2RlSUQpOwotICAgICAgICAgICAgbmV3Tm9kZSA9IHN0YXRlTm9kZS5nZXQoKTsKKyAgICAgICAg
ICAgIG5ld05vZGUgPSBzdGF0ZU5vZGUucHRyKCk7CiAgICAgICAgICAgICBwYXJlbnQtPmFwcGVu
ZENoaWxkKFdURk1vdmUoc3RhdGVOb2RlKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xODIsNyAr
MTgyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4gU2Nyb2xsaW5nU3Rh
dGVUcmVlOjpjb21taXQoTGF5ZXJSZXByZXNlbnRhdGkKICAgICB0cmVlU3RhdGVDbG9uZS0+c2V0
UHJlZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbihwcmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9u
KTsKIAogICAgIGlmIChtX3Jvb3RTdGF0ZU5vZGUpCi0gICAgICAgIHRyZWVTdGF0ZUNsb25lLT5z
ZXRSb290U3RhdGVOb2RlKHN0YXRpY19wb2ludGVyX2Nhc3Q8U2Nyb2xsaW5nU3RhdGVGcmFtZVNj
cm9sbGluZ05vZGU+KG1fcm9vdFN0YXRlTm9kZS0+Y2xvbmVBbmRSZXNldCgqdHJlZVN0YXRlQ2xv
bmUpKSk7CisgICAgICAgIHRyZWVTdGF0ZUNsb25lLT5zZXRSb290U3RhdGVOb2RlKHN0YXRpY19y
ZWZlcmVuY2VfY2FzdDxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4obV9yb290U3Rh
dGVOb2RlLT5jbG9uZUFuZFJlc2V0KCp0cmVlU3RhdGVDbG9uZSkpKTsKIAogICAgIC8vIENvcHkg
dGhlIElEcyBvZiB0aGUgbm9kZXMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZCBzaW5jZSB0aGUgbGFz
dCBjb21taXQgaW50byB0aGUgY2xvbmUuCiAgICAgdHJlZVN0YXRlQ2xvbmUtPm1fbm9kZXNSZW1v
dmVkU2luY2VMYXN0Q29tbWl0LnN3YXAobV9ub2Rlc1JlbW92ZWRTaW5jZUxhc3RDb21taXQpOwpA
QCAtMjExLDcgKzIxMSw4IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVUcmVlOjpyZW1vdmVOb2RlQW5k
QWxsRGVzY2VuZGFudHMoU2Nyb2xsaW5nU3RhdGVOb2RlKiBub2RlLCBTCiAgICAgaWYgKG5vZGUg
PT0gbV9yb290U3RhdGVOb2RlKQogICAgICAgICBtX3Jvb3RTdGF0ZU5vZGUgPSBudWxscHRyOwog
ICAgIGVsc2UgaWYgKHBhcmVudCkgewotICAgICAgICBBU1NFUlQocGFyZW50LT5jaGlsZHJlbigp
ICYmIHBhcmVudC0+Y2hpbGRyZW4oKS0+ZmluZChub2RlKSAhPSBub3RGb3VuZCk7CisgICAgICAg
IEFTU0VSVChwYXJlbnQtPmNoaWxkcmVuKCkpOworICAgICAgICBBU1NFUlQocGFyZW50LT5jaGls
ZHJlbigpLT5maW5kKG5vZGUpICE9IG5vdEZvdW5kKTsKICAgICAgICAgaWYgKGF1dG8gY2hpbGRy
ZW4gPSBwYXJlbnQtPmNoaWxkcmVuKCkpIHsKICAgICAgICAgICAgIHNpemVfdCBpbmRleCA9IGNo
aWxkcmVuLT5maW5kKG5vZGUpOwogICAgICAgICAgICAgaWYgKGluZGV4ICE9IG5vdEZvdW5kKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVU
cmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUu
aAppbmRleCAzMWY2ZGI3OWU3YjQwYzFiMzJmMmVhN2NkY2ZmYzQ4ZjE3YmZjZTMxLi4zYjI1NjE1
MWFkNzQ0YmNmMDIzNGQ3MmQ0ZmQzYTBjNzVkNDM2OTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuaApAQCAtNzQsMTcgKzc0LDE0
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByZWZlcnJlZExheWVyUmVwcmVzZW50YXRpb24oTGF5
ZXJSZXByZXNlbnRhdGlvbjo6VHlwZSByZXByZXNlbnRhdGlvbikgeyBtX3ByZWZlcnJlZExheWVy
UmVwcmVzZW50YXRpb24gPSByZXByZXNlbnRhdGlvbjsgfQogCiBwcml2YXRlOgotICAgIHZvaWQg
c2V0Um9vdFN0YXRlTm9kZShQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdO
b2RlPiByb290U3RhdGVOb2RlKSB7IG1fcm9vdFN0YXRlTm9kZSA9IHJvb3RTdGF0ZU5vZGU7IH0K
KyAgICB2b2lkIHNldFJvb3RTdGF0ZU5vZGUoUmVmPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxp
bmdOb2RlPiYmIHJvb3RTdGF0ZU5vZGUpIHsgbV9yb290U3RhdGVOb2RlID0gV1RGTW92ZShyb290
U3RhdGVOb2RlKTsgfQogICAgIHZvaWQgYWRkTm9kZShTY3JvbGxpbmdTdGF0ZU5vZGUqKTsKIAot
ICAgIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjcmVhdGVOb2RlKFNjcm9sbGluZ05v
ZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOworICAgIFJlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+IGNy
ZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CiAKICAgICBib29s
IG5vZGVUeXBlQW5kUGFyZW50TWF0Y2goU2Nyb2xsaW5nU3RhdGVOb2RlJiwgU2Nyb2xsaW5nTm9k
ZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBwYXJlbnRJRCkgY29uc3Q7CiAKLSAgICBlbnVtIGNsYXNz
IFN1YmZyYW1lTm9kZVJlbW92YWwgewotICAgICAgICBEZWxldGUsCi0gICAgICAgIE9ycGhhbgot
ICAgIH07CisgICAgZW51bSBjbGFzcyBTdWJmcmFtZU5vZGVSZW1vdmFsIHsgRGVsZXRlLCBPcnBo
YW4gfTsKICAgICB2b2lkIHJlbW92ZU5vZGVBbmRBbGxEZXNjZW5kYW50cyhTY3JvbGxpbmdTdGF0
ZU5vZGUqLCBTdWJmcmFtZU5vZGVSZW1vdmFsID0gU3ViZnJhbWVOb2RlUmVtb3ZhbDo6RGVsZXRl
KTsKIAogICAgIHZvaWQgcmVjdXJzaXZlTm9kZVdpbGxCZVJlbW92ZWQoU2Nyb2xsaW5nU3RhdGVO
b2RlKiBjdXJyTm9kZSwgU3ViZnJhbWVOb2RlUmVtb3ZhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmluZGV4IGQwMGVjNWRkOWIxYjdkNGE2
ZDYxYmY1ZDEzOWI0OTkyZTYzN2Q4ZWYuLjQwYmNjNjNmZjhjMzM3YWZiYzEwYmQ0Yjk5ZWIxYzAw
M2Y0NzUwYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuY3BwCkBAIC0xNzksNyArMTc5LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjp1cGRhdGVU
cmVlRnJvbVN0YXRlTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUqIHN0YXRlTm9kZSwKICAg
ICAgICAgaWYgKHBhcmVudEl0ICE9IG1fbm9kZU1hcC5lbmQoKSkgewogICAgICAgICAgICAgU2Ny
b2xsaW5nVHJlZU5vZGUqIHBhcmVudCA9IHBhcmVudEl0LT52YWx1ZTsKICAgICAgICAgICAgIG5v
ZGUtPnNldFBhcmVudChwYXJlbnQpOwotICAgICAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZChu
b2RlKTsKKyAgICAgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoKm5vZGUpOwogICAgICAgICB9
CiAgICAgfQogCkBAIC0xODksNyArMTg5LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjp1cGRhdGVU
cmVlRnJvbVN0YXRlTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUqIHN0YXRlTm9kZSwKICAg
ICBpZiAoYXV0byBub2RlQ2hpbGRyZW4gPSBub2RlLT5jaGlsZHJlbigpKSB7CiAgICAgICAgIGZv
ciAoYXV0byYgY2hpbGRTY3JvbGxpbmdOb2RlIDogKm5vZGVDaGlsZHJlbikgewogICAgICAgICAg
ICAgY2hpbGRTY3JvbGxpbmdOb2RlLT5zZXRQYXJlbnQobnVsbHB0cik7Ci0gICAgICAgICAgICBv
cnBoYW5Ob2Rlcy5hZGQoY2hpbGRTY3JvbGxpbmdOb2RlLT5zY3JvbGxpbmdOb2RlSUQoKSwgY2hp
bGRTY3JvbGxpbmdOb2RlKTsKKyAgICAgICAgICAgIG9ycGhhbk5vZGVzLmFkZChjaGlsZFNjcm9s
bGluZ05vZGUtPnNjcm9sbGluZ05vZGVJRCgpLCBjaGlsZFNjcm9sbGluZ05vZGUuZ2V0KCkpOwog
ICAgICAgICB9CiAgICAgICAgIG5vZGVDaGlsZHJlbi0+Y2xlYXIoKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggNjczNGI1M2Fk
YWI1YzM5OWI5MzNhYzM3N2VkZTc0YjhjMmEwNWE0ZC4uYWFmMmQ0NzhiYmI4MDA5NWY1NTk2Yzkx
NDYwNmUyYjliNWQ4ZjhjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1h
aW5GcmFtZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBib29sIHBpbm5lZFRvVGhlUmln
aHQsIGJvb2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVkVG9UaGVCb3R0b20pOwogCi0gICAg
dmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVl
Tm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSA9IDA7CisgICAgdmlydHVh
bCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGlu
Z05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpID0gMDsKIAogICAgIC8vIENhbGxlZCBhZnRlciBh
IHNjcm9sbGluZyB0cmVlIG5vZGUgaGFzIGhhbmRsZWQgYSBzY3JvbGwgYW5kIHVwZGF0ZWQgaXRz
IGxheWVycy4KICAgICAvLyBVcGRhdGVzIEZyYW1lVmlldy9SZW5kZXJMYXllciBzY3JvbGxpbmcg
c3RhdGUgYW5kIEdyYXBoaWNzTGF5ZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwCmluZGV4IGRlYjc4MWExYzFmOWZkZDAzM2M5
OTk1Yzk5MjFjMDcyOTkyNjlhMmEuLjBmNjYxNmQwZjNkYzM1Nzg2MzA2ZmQ0NjZmN2E2OTY0MTVi
MmVlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlTm9kZS5jcHAKQEAgLTQ1LDIyICs0NSwyMSBAQCBTY3JvbGxpbmdUcmVlTm9kZTo6flNj
cm9sbGluZ1RyZWVOb2RlKCkKIHsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlTm9kZTo6YXBwZW5k
Q2hpbGQoUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gY2hpbGROb2RlKQordm9pZCBTY3Jv
bGxpbmdUcmVlTm9kZTo6YXBwZW5kQ2hpbGQoUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiYmIGNoaWxk
Tm9kZSkKIHsKICAgICBjaGlsZE5vZGUtPnNldFBhcmVudCh0aGlzKTsKIAogICAgIGlmICghbV9j
aGlsZHJlbikKLSAgICAgICAgbV9jaGlsZHJlbiA9IHN0ZDo6bWFrZV91bmlxdWU8U2Nyb2xsaW5n
VHJlZUNoaWxkcmVuVmVjdG9yPigpOwotCi0gICAgbV9jaGlsZHJlbi0+YXBwZW5kKGNoaWxkTm9k
ZSk7CisgICAgICAgIG1fY2hpbGRyZW4gPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxSZWZQdHI8
U2Nyb2xsaW5nVHJlZU5vZGU+Pj4oKTsKKyAgICBtX2NoaWxkcmVuLT5hcHBlbmQoV1RGTW92ZShj
aGlsZE5vZGUpKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlTm9kZTo6cmVtb3ZlQ2hpbGQoU2Ny
b2xsaW5nVHJlZU5vZGUqIG5vZGUpCit2b2lkIFNjcm9sbGluZ1RyZWVOb2RlOjpyZW1vdmVDaGls
ZChTY3JvbGxpbmdUcmVlTm9kZSYgbm9kZSkKIHsKICAgICBpZiAoIW1fY2hpbGRyZW4pCiAgICAg
ICAgIHJldHVybjsKIAotICAgIHNpemVfdCBpbmRleCA9IG1fY2hpbGRyZW4tPmZpbmQobm9kZSk7
CisgICAgc2l6ZV90IGluZGV4ID0gbV9jaGlsZHJlbi0+ZmluZCgmbm9kZSk7CiAKICAgICAvLyBU
aGUgaW5kZXggd2lsbCBiZSBub3RGb3VuZCBpZiB0aGUgbm9kZSB0byByZW1vdmUgaXMgYSBkZWVw
ZXItdGhhbi0xLWxldmVsIGRlc2NlbmRhbnQgb3IKICAgICAvLyBpZiBub2RlIGlzIHRoZSByb290
IHN0YXRlIG5vZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZU5vZGUuaAppbmRleCAzZTg2ZTNkNDc4ZDM0MDY5MzU5ZWFhNWM2YjljZmJhYzY3NWNl
ZDA1Li4yZTE2MzI0NmJiOTZlMzNmZWY2MmFkYTcxYjQxYTIxMzkyMTI3OTMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKQEAgLTYw
LDExICs2MCwxMCBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsaW5nVHJlZU5vZGUqIHBhcmVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9CiAgICAgdm9pZCBzZXRQYXJlbnQoU2Nyb2xsaW5nVHJl
ZU5vZGUqIHBhcmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsgfQogCi0gICAgdHlwZWRlZiBWZWN0
b3I8UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPj4gU2Nyb2xsaW5nVHJlZUNoaWxkcmVuVmVjdG9y
OwotICAgIFNjcm9sbGluZ1RyZWVDaGlsZHJlblZlY3RvciogY2hpbGRyZW4oKSB7IHJldHVybiBt
X2NoaWxkcmVuLmdldCgpOyB9Ci0gICAgCi0gICAgdm9pZCBhcHBlbmRDaGlsZChQYXNzUmVmUHRy
PFNjcm9sbGluZ1RyZWVOb2RlPik7Ci0gICAgdm9pZCByZW1vdmVDaGlsZChTY3JvbGxpbmdUcmVl
Tm9kZSopOworICAgIFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+PiogY2hpbGRyZW4o
KSB7IHJldHVybiBtX2NoaWxkcmVuLmdldCgpOyB9CisKKyAgICB2b2lkIGFwcGVuZENoaWxkKFJl
ZjxTY3JvbGxpbmdUcmVlTm9kZT4mJik7CisgICAgdm9pZCByZW1vdmVDaGlsZChTY3JvbGxpbmdU
cmVlTm9kZSYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkdW1wKFRleHRTdHJlYW0mLCBT
Y3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7CiAKQEAgLTcyLDcgKzcxLDcg
QEAgcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ1RyZWUmLCBTY3Jv
bGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKICAgICBTY3JvbGxpbmdUcmVlJiBzY3Jv
bGxpbmdUcmVlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxpbmdUcmVlOyB9CiAKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nVHJlZUNoaWxkcmVuVmVjdG9yPiBtX2NoaWxkcmVuOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPj4+IG1fY2hp
bGRyZW47CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZHVtcFByb3BlcnRpZXMo
VGV4dFN0cmVhbSYsIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxp
bmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xs
aW5nVHJlZS5jcHAKaW5kZXggYmNiNDhlNDk1YzFiMGI4OWU3NWE3YWEzM2U4NWU1OTRkN2M1ZTY4
NS4uZjY2NGVkM2FjM2JlNTM4ZGZmMmZlNTg4MDJhMDk3N2FhMGFhMDg5MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
Y3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotVGhyZWFkZWRT
Y3JvbGxpbmdUcmVlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWUoQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCi0gICAgOiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9y
KHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpUaHJlYWRlZFNj
cm9sbGluZ1RyZWUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYgc2Nyb2xsaW5nQ29vcmRpbmF0
b3IpCisgICAgOiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKCZzY3JvbGxpbmdDb29yZGluYXRvcikK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFk
ZWRTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRl
ZFNjcm9sbGluZ1RyZWUuaAppbmRleCA3MzI1NDA1OWMyZDc3MDIwNWNlZmRiZDE1MzBhYjI3OTA0
YWE3MzYzLi42ZDFkNDlkNjdlY2E1ZmE4ZDUyYTg1OGVlY2Y1ZjkzZWU5Yzk3MGRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1Ry
ZWUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZSgpIG92
ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgVGhyZWFkZWRTY3JvbGxpbmdUcmVl
KEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqKTsKKyAgICBleHBsaWNpdCBUaHJlYWRlZFNjcm9s
bGluZ1RyZWUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOwogCiAgICAgdm9pZCBzY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBjb25zdCBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3
cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb246OlN5bmMpIG92ZXJyaWRlOwogICAgIHZvaWQgY3VycmVudFNuYXBQb2lu
dEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1
bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JJT1MubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JJT1MubW0KaW5kZXgg
NGNjZjQ0NDI5Zjk5ZTEwOWY4NzU1Yjk0NjAxMjZiYmNhN2U1YjllYS4uNmIxNjg1NzNiNTYwMzBi
M2FmM2Q5NDAyYTQ0YzcwZTg5ODJlOWIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ0Nvb3JkaW5hdG9ySU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdDb29yZGluYXRvcklPUy5tbQpAQCAt
NTIsNyArNTIsNyBAQCBTY3JvbGxpbmdDb29yZGluYXRvcklPUzo6U2Nyb2xsaW5nQ29vcmRpbmF0
b3JJT1MoUGFnZSogcGFnZSkKICAgICA6IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IocGFnZSkK
ICAgICAsIG1fc2Nyb2xsaW5nU3RhdGVUcmVlQ29tbWl0dGVyVGltZXIoKnRoaXMsICZTY3JvbGxp
bmdDb29yZGluYXRvcklPUzo6Y29tbWl0VHJlZVN0YXRlKQogewotICAgIHNldFNjcm9sbGluZ1Ry
ZWUoU2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRlKHRoaXMpKTsKKyAgICBzZXRTY3JvbGxpbmdUcmVl
KFNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZSgqdGhpcykpOwogfQogCiBTY3JvbGxpbmdDb29yZGlu
YXRvcklPUzo6flNjcm9sbGluZ0Nvb3JkaW5hdG9ySU9TKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNwcAppbmRleCAxMGIz
Zjg3MzQ1ZmRhNDNjY2RmZTljMTVmZTQxN2Y0NmFmNTU0NWVhLi4xZjAzZTY4NmU5Zjg3NThlYzY1
YTliNmY5YjYxN2ViMmY4NjhjNjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8U2Nyb2xsaW5nVHJlZUlPUz4gU2Nyb2xsaW5n
VHJlZUlPUzo6Y3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKQorUmVmPFNjcm9sbGluZ1RyZWVJT1M+IFNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZShB
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRvcikKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTY3JvbGxpbmdUcmVlSU9TKHNjcm9sbGluZ0Nvb3JkaW5hdG9y
KSk7CiB9CiAKLVNjcm9sbGluZ1RyZWVJT1M6OlNjcm9sbGluZ1RyZWVJT1MoQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCi0gICAgOiBtX3Njcm9sbGluZ0Nv
b3JkaW5hdG9yKHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorU2Nyb2xsaW5nVHJlZUlPUzo6U2Nyb2xs
aW5nVHJlZUlPUyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRv
cikKKyAgICA6IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IoJnNjcm9sbGluZ0Nvb3JkaW5hdG9yKQog
ewogfQogCkBAIC04MywyMCArODMsMjEgQEAgdm9pZCBTY3JvbGxpbmdUcmVlSU9TOjpzY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdAogICAgIH0p
OwogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlSU9TOjpj
cmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xs
aW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxTY3JvbGxpbmdUcmVlTm9kZT4gU2Nyb2xsaW5nVHJlZUlP
Uzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNj
cm9sbGluZ05vZGVJRCBub2RlSUQpCiB7CiAgICAgc3dpdGNoIChub2RlVHlwZSkgewogICAgIGNh
c2UgRnJhbWVTY3JvbGxpbmdOb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZUlPUzo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIGNhc2UgT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRml4ZWROb2RlOgogICAg
ICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQp
OwogICAgIGNhc2UgU3RpY2t5Tm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVTdGlj
a3lOb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgfQotICAgIHJldHVybiBudWxscHRy
OworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4
ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKIEZsb2F0UmVjdCBTY3JvbGxpbmdU
cmVlSU9TOjpmaXhlZFBvc2l0aW9uUmVjdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaAppbmRleCAxYTlhYWUxYjQwYzgxMjY4
MzQ0ODQxY2U3YjMwNzVlZjcwYTdlNTU0Li5hZWE2OWIzOWY1OWM5NjE1ZDE4MGFhZWE2ZWI4OTcy
NTljZGFkOTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3Mv
U2Nyb2xsaW5nVHJlZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lv
cy9TY3JvbGxpbmdUcmVlSU9TLmgKQEAgLTI5LDM1ICsyOSwzMSBAQAogCiAjaW5jbHVkZSAiU2Ny
b2xsaW5nU3RhdGVUcmVlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZS5oIgotI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiAKLWNsYXNzIFNj
cm9sbGluZ1RyZWVJT1MgOiBwdWJsaWMgU2Nyb2xsaW5nVHJlZSB7CitjbGFzcyBTY3JvbGxpbmdU
cmVlSU9TIGZpbmFsIDogcHVibGljIFNjcm9sbGluZ1RyZWUgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8U2Nyb2xsaW5nVHJlZUlPUz4gY3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iq
KTsKKyAgICBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVJT1M+IGNyZWF0ZShBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yJik7CiAgICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZUlPUygpOwogCi0gICAg
Ly8gTm8gd2hlZWwgZXZlbnRzIG9uIGlPUwotICAgIHZvaWQgaGFuZGxlV2hlZWxFdmVudChjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZSB7IH0KLSAgICBFdmVudFJlc3VsdCB0cnlU
b0hhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGUgeyBy
ZXR1cm4gRGlkTm90SGFuZGxlRXZlbnQ7IH0KLQotICAgIHZvaWQgaW52YWxpZGF0ZSgpIG92ZXJy
aWRlOwotCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVJT1MoQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvciopOwotICAgIGJvb2wgaXNTY3JvbGxpbmdUcmVlSU9TKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVJT1Mo
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOwogCi0gICAgUGFzc1JlZlB0cjxTY3JvbGxpbmdU
cmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9s
bGluZ05vZGVJRCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1Njcm9sbGluZ1RyZWVJT1MoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlk
U2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24s
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBT
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
bjo6U3luYykgb3ZlcnJpZGU7CisgICAgLy8gTm8gd2hlZWwgZXZlbnRzIG9uIGlPUworICAgIHZv
aWQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBmaW5hbCB7IH0K
KyAgICBFdmVudFJlc3VsdCB0cnlUb0hhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JikgZmluYWwgeyByZXR1cm4gRGlkTm90SGFuZGxlRXZlbnQ7IH0KIAotICAgIHZvaWQg
Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlE
LCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBpbnZhbGlkYXRlKCkgZmluYWw7CiAKLSAgICBGbG9hdFJlY3QgZml4ZWRQb3NpdGlvblJl
Y3QoKSBvdmVycmlkZTsKKyAgICBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGlu
Z1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIGZpbmFsOworICAg
IHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBG
bG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qgc3RkOjpvcHRpb25hbDxGbG9hdFBvaW50
PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBT
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBmaW5hbDsKKyAgICB2b2lkIGN1cnJl
bnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgdW5z
aWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGZpbmFsOworICAgIEZsb2F0UmVj
dCBmaXhlZFBvc2l0aW9uUmVjdCgpIGZpbmFsOwogCiAgICAgUmVmUHRyPEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3I+IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
TWFjLm1tCmluZGV4IGQ0M2Q5NGIyNDdhNmU0ZjkzOTc0MTU4MjYxOTdjMmIwYWRmMDcxNDguLjg2
MTE4YjQ0NTAwNzk0NmNmMGZhNzgzYzVkNTQzZTExOWU5ZWJmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWMubW0KQEAgLTU0LDcgKzU0LDcgQEAgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OlNjcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjKFBhZ2UqIHBhZ2UpCiAgICAgOiBBc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yKHBhZ2UpCiAgICAgLCBtX3Njcm9sbGluZ1N0YXRlVHJlZUNvbW1pdHRlclRpbWVyKCp0
aGlzLCAmU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmNvbW1pdFRyZWVTdGF0ZSkKIHsKLSAgICBz
ZXRTY3JvbGxpbmdUcmVlKFNjcm9sbGluZ1RyZWVNYWM6OmNyZWF0ZSh0aGlzKSk7CisgICAgc2V0
U2Nyb2xsaW5nVHJlZShTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGUoKnRoaXMpKTsKIH0KIAogU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWM6On5TY3JvbGxpbmdDb29yZGluYXRvck1hYygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5j
cHAKaW5kZXggNzBkYmMwNmNmMDEzYmYzMWI4ZGEwN2ZkZTBkMzk4OGM2MWI0ZDgwYS4uODk5ZjFl
OTAxNjdkYjhjOGVhMWZhNmQ4ZWFlZjRjNzA0MTEyMDU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNwcApAQCAtMzQs
MzAgKzM0LDMxIEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8U2Nyb2xsaW5n
VHJlZU1hYz4gU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorUmVmPFNjcm9sbGluZ1RyZWVNYWM+IFNjcm9sbGlu
Z1RyZWVNYWM6OmNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29y
ZGluYXRvcikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTY3JvbGxpbmdUcmVlTWFjKHNj
cm9sbGluZ0Nvb3JkaW5hdG9yKSk7CiB9CiAKLVNjcm9sbGluZ1RyZWVNYWM6OlNjcm9sbGluZ1Ry
ZWVNYWMoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCitT
Y3JvbGxpbmdUcmVlTWFjOjpTY3JvbGxpbmdUcmVlTWFjKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3ImIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQogICAgIDogVGhyZWFkZWRTY3JvbGxpbmdUcmVlKHNj
cm9sbGluZ0Nvb3JkaW5hdG9yKQogewogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2Rl
PiBTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2Rl
VHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxTY3JvbGxpbmdUcmVl
Tm9kZT4gU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5n
Tm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7CiAgICAgc3dpdGNo
IChub2RlVHlwZSkgewogICAgIGNhc2UgRnJhbWVTY3JvbGxpbmdOb2RlOgogICAgICAgICByZXR1
cm4gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6Y3JlYXRlKCp0aGlzLCBub2Rl
SUQpOwogICAgIGNhc2UgT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOgogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgRml4ZWROb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6
Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIGNhc2UgU3RpY2t5Tm9kZToKICAgICAgICAgcmV0
dXJuIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAg
fQotICAgIHJldHVybiBudWxscHRyOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1h
Yy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMu
aAppbmRleCA0M2E0NmI3N2U4NWI0NWZmNjFjYjJiOWE2YmJiMzJjMmMwZWZmYTU3Li40OTlmYzNm
ZjE3YmNmOTQ5MGE4MzcyMjY0MmY2YmM4M2JlMDBiN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmgKQEAgLTMxLDE0ICsz
MSwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNjcm9sbGluZ1RyZWVNYWMg
OiBwdWJsaWMgVGhyZWFkZWRTY3JvbGxpbmdUcmVlIHsKK2NsYXNzIFNjcm9sbGluZ1RyZWVNYWMg
ZmluYWwgOiBwdWJsaWMgVGhyZWFkZWRTY3JvbGxpbmdUcmVlIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFNjcm9sbGluZ1RyZWVNYWM+IGNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Kik7CisgICAgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlTWFjPiBjcmVhdGUoQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvciYpOwogCi0gICAgUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gY3Jl
YXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkg
b3ZlcnJpZGU7Ci0gICAgCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVNYWMo
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciopOworICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVN
YWMoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOworCisgICAgUmVmPFNjcm9sbGluZ1RyZWVO
b2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5n
Tm9kZUlEKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCmluZGV4IDYxNjA3MDkwZDI2Yzk5YzFh
ZTI1M2Y1YTRlYzVkNjZkNTFjM2Q2MTUuLjMyNDMwYzQ3Yjg3ZDFjMDg4NDQ5YWNiZGNkMGIzNjQ3
MTNmMDk0MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxl
cldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNw
cApAQCAtODEsNyArODEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lkZ2V0RGlkSGFuZGxlV2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbgogICAgIHJldHVybiBk
b3duY2FzdDxGcmFtZVZpZXc+KHdpZGdldCkuZnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oYW5kbGVX
aGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogfQogCi1ib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxs
Rm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRh
YnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JikgY29uc3QKIHsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KQEAgLTkyLDEwICs5MiwxMiBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZXZlbnRBY3Rp
dmF0ZWRWaWV3KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQpIGNvbnN0CiB9CiAKICNp
ZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFu
ZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAorCitSZWY8RGF0YVRyYW5z
ZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwogfQorCiAj
ZW5kaWYKIAogdm9pZCBFdmVudEhhbmRsZXI6OmZvY3VzRG9jdW1lbnRWaWV3KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vQ3Vyc29yLmgKaW5kZXggNjhkMDY5ZDNhNDM4NDY4OGRmMmRlYzg4ZTgzNDA0OWY1MzJi
MTExZC4uMDQ2ODVhMjVhN2NjYzI4ZTc3M2ZhYTIzNTUyMWQ3YzYxZGQzZTU3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ3Vyc29yLmgKQEAgLTU0LDI0ICs1NCwyOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBJbWFnZTsKIAogI2lmIFBMQVRGT1JNKFdJTikKKwogY2xhc3MgU2hhcmVkQ3Vyc29y
IDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkQ3Vyc29yPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxTaGFyZWRDdXJzb3I+IGNyZWF0ZShIQ1VSU09SIG5hdGl2ZUN1cnNvcikgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTaGFyZWRDdXJzb3IobmF0aXZlQ3Vyc29yKSk7IH0KLSAgICB+U2hhcmVk
Q3Vyc29yKCk7CisgICAgc3RhdGljIFJlZjxTaGFyZWRDdXJzb3I+IGNyZWF0ZShIQ1VSU09SKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB+U2hhcmVkQ3Vyc29yKCk7CiAgICAgSENVUlNPUiBuYXRpdmVD
dXJzb3IoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUN1cnNvcjsgfQorCiBwcml2YXRlOgotICAg
IFNoYXJlZEN1cnNvcihIQ1VSU09SIG5hdGl2ZUN1cnNvcikgOiBtX25hdGl2ZUN1cnNvcihuYXRp
dmVDdXJzb3IpIHsgfQorICAgIFNoYXJlZEN1cnNvcihIQ1VSU09SKTsKICAgICBIQ1VSU09SIG1f
bmF0aXZlQ3Vyc29yOwogfTsKLXR5cGVkZWYgUmVmUHRyPFNoYXJlZEN1cnNvcj4gUGxhdGZvcm1D
dXJzb3I7CisKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oV0lOKQordXNpbmcgUGxhdGZvcm1DdXJz
b3IgPSBSZWZQdHI8U2hhcmVkQ3Vyc29yPjsKICNlbGlmIFVTRShBUFBLSVQpCi10eXBlZGVmIE5T
Q3Vyc29yICpQbGF0Zm9ybUN1cnNvcjsKK3VzaW5nIFBsYXRmb3JtQ3Vyc29yID0gTlNDdXJzb3Ig
KjsKICNlbGlmIFBMQVRGT1JNKEdUSykKLXR5cGVkZWYgR1JlZlB0cjxHZGtDdXJzb3I+IFBsYXRm
b3JtQ3Vyc29yOwordXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBHUmVmUHRyPEdka0N1cnNvcj47CiAj
ZWxpZiBQTEFURk9STShFRkwpCi10eXBlZGVmIGNvbnN0IGNoYXIqIFBsYXRmb3JtQ3Vyc29yOwot
I2Vsc2UKLXR5cGVkZWYgdm9pZCogUGxhdGZvcm1DdXJzb3I7Cit1c2luZyBQbGF0Zm9ybUN1cnNv
ciA9IGNvbnN0IGNoYXIqOwogI2VuZGlmCiAKIGNsYXNzIEN1cnNvciB7CkBAIC0xMjQsNjEgKzEy
OCw1MCBAQCBwdWJsaWM6CiAgICAgICAgIEN1c3RvbQogICAgIH07CiAKLSAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgY29uc3QgQ3Vyc29yJiBmcm9tVHlwZShDdXJzb3I6OlR5cGUpOworICAgIEN1
cnNvcigpID0gZGVmYXVsdDsKIAotICAgIEN1cnNvcigpCiAjaWYgIVBMQVRGT1JNKElPUykKLSAg
ICAgICAgLy8gVGhpcyBpcyBhbiBpbnZhbGlkIEN1cnNvciBhbmQgc2hvdWxkIG5ldmVyIGFjdHVh
bGx5IGdldCB1c2VkLgotICAgICAgICA6IG1fdHlwZShzdGF0aWNfY2FzdDxUeXBlPigtMSkpCi0j
aWYgRU5BQkxFKE1PVVNFX0NVUlNPUl9TQ0FMRSkKLSAgICAgICAgLCBtX2ltYWdlU2NhbGVGYWN0
b3IoMSkKLSNlbmRpZgotICAgICAgICAsIG1fcGxhdGZvcm1DdXJzb3IoMCkKLSNlbmRpZiAvLyAh
UExBVEZPUk0oSU9TKQotICAgIHsKLSAgICB9CiAKLSNpZiAhUExBVEZPUk0oSU9TKQorICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBjb25zdCBDdXJzb3ImIGZyb21UeXBlKEN1cnNvcjo6VHlwZSk7
CisKICAgICBXRUJDT1JFX0VYUE9SVCBDdXJzb3IoSW1hZ2UqLCBjb25zdCBJbnRQb2ludCYgaG90
U3BvdCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ3Vyc29yKGNvbnN0IEN1cnNvciYpOwogCiAjaWYg
RU5BQkxFKE1PVVNFX0NVUlNPUl9TQ0FMRSkKICAgICAvLyBIb3Qgc3BvdCBpcyBpbiBpbWFnZSBw
aXhlbHMuCiAgICAgV0VCQ09SRV9FWFBPUlQgQ3Vyc29yKEltYWdlKiwgY29uc3QgSW50UG9pbnQm
IGhvdFNwb3QsIGZsb2F0IGltYWdlU2NhbGVGYWN0b3IpOwogI2VuZGlmCiAKLSAgICBXRUJDT1JF
X0VYUE9SVCB+Q3Vyc29yKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ3Vyc29yJiBvcGVyYXRvcj0o
Y29uc3QgQ3Vyc29yJik7Ci0KICAgICBleHBsaWNpdCBDdXJzb3IoVHlwZSk7Ci0gICAgVHlwZSB0
eXBlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPj0gMCAmJiBtX3R5cGUg
PD0gQ3VzdG9tKTsKLSAgICAgICAgcmV0dXJuIG1fdHlwZTsKLSAgICB9CisKKyAgICBUeXBlIHR5
cGUoKSBjb25zdDsKICAgICBJbWFnZSogaW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlLmdl
dCgpOyB9CiAgICAgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QoKSBjb25zdCB7IHJldHVybiBtX2hv
dFNwb3Q7IH0KKwogI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCiAgICAgLy8gSW1hZ2Ug
c2NhbGUgaW4gaW1hZ2UgcGl4ZWxzIHBlciBsb2dpY2FsIChVSSkgcGl4ZWwuCiAgICAgZmxvYXQg
aW1hZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VTY2FsZUZhY3RvcjsgfQog
I2VuZGlmCisKICAgICBXRUJDT1JFX0VYUE9SVCBQbGF0Zm9ybUN1cnNvciBwbGF0Zm9ybUN1cnNv
cigpIGNvbnN0OwogCi0gcHJpdmF0ZToKK3ByaXZhdGU6CiAgICAgdm9pZCBlbnN1cmVQbGF0Zm9y
bUN1cnNvcigpIGNvbnN0OwogCi0gICAgVHlwZSBtX3R5cGU7CisgICAgLy8gVGhlIHR5cGUgb2Yg
LTEgaW5kaWNhdGVzIGFuIGludmFsaWQgQ3Vyc29yIHRoYXQgc2hvdWxkIG5ldmVyIGFjdHVhbGx5
IGdldCB1c2VkLgorICAgIFR5cGUgbV90eXBlIHsgc3RhdGljX2Nhc3Q8VHlwZT4oLTEpIH07CiAg
ICAgUmVmUHRyPEltYWdlPiBtX2ltYWdlOwogICAgIEludFBvaW50IG1faG90U3BvdDsKKwogI2lm
IEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgZmxvYXQgbV9pbWFnZVNjYWxlRmFjdG9y
OworICAgIGZsb2F0IG1faW1hZ2VTY2FsZUZhY3RvciB7IDEgfTsKICNlbmRpZgogCiAjaWYgIVVT
RShBUFBLSVQpCi0gICAgbXV0YWJsZSBQbGF0Zm9ybUN1cnNvciBtX3BsYXRmb3JtQ3Vyc29yOwor
ICAgIG11dGFibGUgUGxhdGZvcm1DdXJzb3IgbV9wbGF0Zm9ybUN1cnNvciB7IG51bGxwdHIgfTsK
ICNlbHNlCiAgICAgbXV0YWJsZSBSZXRhaW5QdHI8TlNDdXJzb3I+IG1fcGxhdGZvcm1DdXJzb3I7
CiAjZW5kaWYKKwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiB9OwogCkBAIC0yMjgsNCArMjIx
LDE1IEBAIGNvbnN0IEN1cnNvciYgbm9uZUN1cnNvcigpOwogY29uc3QgQ3Vyc29yJiBncmFiQ3Vy
c29yKCk7CiBjb25zdCBDdXJzb3ImIGdyYWJiaW5nQ3Vyc29yKCk7CiAKKyNpZiAhUExBVEZPUk0o
SU9TKQorCitpbmxpbmUgQ3Vyc29yOjpUeXBlIEN1cnNvcjo6dHlwZSgpIGNvbnN0Cit7CisgICAg
QVNTRVJUKG1fdHlwZSA+PSAwKTsKKyAgICBBU1NFUlQobV90eXBlIDw9IEN1c3RvbSk7CisgICAg
cmV0dXJuIG1fdHlwZTsKK30KKworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DdXJzb3JFZmwuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0N1cnNvckVmbC5jcHAKaW5kZXggYjNmNDRhZWI3ZWVj
NGJkMmE4ZTdkNTJlZWVlMmMxMjc2ZGQyNDY2OS4uNTk2NDhiYjE0ODZjZGE1YTY5ZDFmOTExODA5
NjM1MTE3N2NlNjZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0N1
cnNvckVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0N1cnNvckVmbC5j
cHAKQEAgLTQwLDM0ICs0MCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ3Vyc29yOjpD
dXJzb3IoY29uc3QgQ3Vyc29yJiBvdGhlcikKLSAgICA6IG1fdHlwZShvdGhlci5tX3R5cGUpCi0g
ICAgLCBtX2ltYWdlKG90aGVyLm1faW1hZ2UpCi0gICAgLCBtX2hvdFNwb3Qob3RoZXIubV9ob3RT
cG90KQotI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgLCBtX2ltYWdlU2NhbGVG
YWN0b3Iob3RoZXIubV9pbWFnZVNjYWxlRmFjdG9yKQotI2VuZGlmCi0gICAgLCBtX3BsYXRmb3Jt
Q3Vyc29yKG90aGVyLm1fcGxhdGZvcm1DdXJzb3IpCi17Ci19Ci0KLUN1cnNvcjo6fkN1cnNvcigp
Ci17Ci19Ci0KLUN1cnNvciYgQ3Vyc29yOjpvcGVyYXRvcj0oY29uc3QgQ3Vyc29yJiBvdGhlcikK
LXsKLSAgICBtX3R5cGUgPSBvdGhlci5tX3R5cGU7Ci0gICAgbV9pbWFnZSA9IG90aGVyLm1faW1h
Z2U7Ci0gICAgbV9ob3RTcG90ID0gb3RoZXIubV9ob3RTcG90OwotI2lmIEVOQUJMRShNT1VTRV9D
VVJTT1JfU0NBTEUpCi0gICAgbV9pbWFnZVNjYWxlRmFjdG9yID0gb3RoZXIubV9pbWFnZVNjYWxl
RmFjdG9yOwotI2VuZGlmCi0gICAgbV9wbGF0Zm9ybUN1cnNvciA9IG90aGVyLm1fcGxhdGZvcm1D
dXJzb3I7Ci0KLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KIHN0YXRpYyBjb25zdCBjaGFyKiBjdXJz
b3JTdHJpbmcoQ3Vyc29yOjpUeXBlIHR5cGUpCiB7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGN1
cnNvclN0cmluZ3NbXSA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9DdXJzb3JHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0N1cnNvckd0ay5j
cHAKaW5kZXggZjA3NWYzNjNhMDNhODRiYjEyYTc2NTRkMDZjOGJmZGNhNzE1OWEwYi4uNDYzNGVm
ZGFjODVmMTgyOThiNDI2N2I2YmNjZWE4YTQzYWFhM2Y3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKQEAgLTE3NSwyNSArMTc1LDQgQEAgdm9pZCBDdXJzb3I6
OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICB9CiB9CiAKLUN1cnNvcjo6Q3Vyc29y
KGNvbnN0IEN1cnNvciYgb3RoZXIpCi0gICAgOiBtX3R5cGUob3RoZXIubV90eXBlKQotICAgICwg
bV9pbWFnZShvdGhlci5tX2ltYWdlKQotICAgICwgbV9ob3RTcG90KG90aGVyLm1faG90U3BvdCkK
LSAgICAsIG1fcGxhdGZvcm1DdXJzb3Iob3RoZXIubV9wbGF0Zm9ybUN1cnNvcikKLXsKLX0KLQot
Q3Vyc29yJiBDdXJzb3I6Om9wZXJhdG9yPShjb25zdCBDdXJzb3ImIG90aGVyKQotewotICAgIG1f
dHlwZSA9IG90aGVyLm1fdHlwZTsKLSAgICBtX2ltYWdlID0gb3RoZXIubV9pbWFnZTsKLSAgICBt
X2hvdFNwb3QgPSBvdGhlci5tX2hvdFNwb3Q7Ci0gICAgbV9wbGF0Zm9ybUN1cnNvciA9IG90aGVy
Lm1fcGxhdGZvcm1DdXJzb3I7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi1DdXJzb3I6On5DdXJz
b3IoKQotewotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
Q3Vyc29yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQpp
bmRleCA4NWNjN2M1ZmRkMmMxNjA2MmNmOGEwMTg2NGEyOWZjMzQ0NWE3ZTA1Li5hYTM0NWU4OGU0
ODExOGM0Njg3YjllZWZiZmM3MzIxOGRjNDcwNzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9DdXJzb3JNYWMubW0KQEAgLTI0MSwzMyArMjQxLDYgQEAgdm9pZCBDdXJzb3I6OmVuc3Vy
ZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICB9CiB9CiAKLUN1cnNvcjo6Q3Vyc29yKGNvbnN0
IEN1cnNvciYgb3RoZXIpCi0gICAgOiBtX3R5cGUob3RoZXIubV90eXBlKQotICAgICwgbV9pbWFn
ZShvdGhlci5tX2ltYWdlKQotICAgICwgbV9ob3RTcG90KG90aGVyLm1faG90U3BvdCkKLSNpZiBF
TkFCTEUoTU9VU0VfQ1VSU09SX1NDQUxFKQotICAgICwgbV9pbWFnZVNjYWxlRmFjdG9yKG90aGVy
Lm1faW1hZ2VTY2FsZUZhY3RvcikKLSNlbmRpZgotICAgICwgbV9wbGF0Zm9ybUN1cnNvcihvdGhl
ci5tX3BsYXRmb3JtQ3Vyc29yKQotewotfQotCi1DdXJzb3ImIEN1cnNvcjo6b3BlcmF0b3I9KGNv
bnN0IEN1cnNvciYgb3RoZXIpCi17Ci0gICAgbV90eXBlID0gb3RoZXIubV90eXBlOwotICAgIG1f
aW1hZ2UgPSBvdGhlci5tX2ltYWdlOwotICAgIG1faG90U3BvdCA9IG90aGVyLm1faG90U3BvdDsK
LSNpZiBFTkFCTEUoTU9VU0VfQ1VSU09SX1NDQUxFKQotICAgIG1faW1hZ2VTY2FsZUZhY3RvciA9
IG90aGVyLm1faW1hZ2VTY2FsZUZhY3RvcjsKLSNlbmRpZgotICAgIG1fcGxhdGZvcm1DdXJzb3Ig
PSBvdGhlci5tX3BsYXRmb3JtQ3Vyc29yOwotICAgIHJldHVybiAqdGhpczsKLX0KLQotQ3Vyc29y
Ojp+Q3Vyc29yKCkKLXsKLX0KLQogTlNDdXJzb3IgKkN1cnNvcjo6cGxhdGZvcm1DdXJzb3IoKSBj
b25zdAogewogICAgIGVuc3VyZVBsYXRmb3JtQ3Vyc29yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vQ3Vyc29yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9DdXJzb3JXaW4uY3BwCmluZGV4IDdhOTkzMTM2YmEyYzNhMDVkMmQzMTk2YTU1Njc3
MThhMDBkYWY4NTkuLmQ5YjIyNTVhNWUyMWRlMjQ4NWFkNTVhOTBiYTk2ZWQ1OTk0MTRkOTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DdXJzb3JXaW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DdXJzb3JXaW4uY3BwCkBAIC00MCw2ICs0MCwy
MSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1NoYXJlZEN1cnNvcjo6U2hhcmVkQ3Vyc29y
KEhDVVJTT1IgbmF0aXZlQ3Vyc29yKQorICAgIDogbV9uYXRpdmVDdXJzb3IobmF0aXZlQ3Vyc29y
KQoreworfQorCitSZWY8U2hhcmVkQ3Vyc29yPiBTaGFyZWRDdXJzb3I6OmNyZWF0ZShIQ1VSU09S
IG5hdGl2ZUN1cnNvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGFyZWRDdXJzb3Io
bmF0aXZlQ3Vyc29yKSk7Cit9CisKK1NoYXJlZEN1cnNvcjo6flNoYXJlZEN1cnNvcigpCit7Cisg
ICAgRGVzdHJveUljb24obV9uYXRpdmVDdXJzb3IpOworfQorCiBzdGF0aWMgUmVmPFNoYXJlZEN1
cnNvcj4gY3JlYXRlU2hhcmVkQ3Vyc29yKEltYWdlKiBpbWcsIGNvbnN0IEludFBvaW50JiBob3RT
cG90KQogewogICAgIEludFBvaW50IGVmZmVjdGl2ZUhvdFNwb3QgPSBkZXRlcm1pbmVIb3RTcG90
KGltZywgaG90U3BvdCk7CkBAIC0yNTMsMzYgKzI2OCw0IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQ
bGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgfQogfQogCi1TaGFyZWRDdXJzb3I6On5TaGFyZWRD
dXJzb3IoKQotewotICAgIERlc3Ryb3lJY29uKG1fbmF0aXZlQ3Vyc29yKTsKLX0KLQotQ3Vyc29y
OjpDdXJzb3IoY29uc3QgQ3Vyc29yJiBvdGhlcikKLSAgICA6IG1fdHlwZShvdGhlci5tX3R5cGUp
Ci0gICAgLCBtX2ltYWdlKG90aGVyLm1faW1hZ2UpCi0gICAgLCBtX2hvdFNwb3Qob3RoZXIubV9o
b3RTcG90KQotI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgLCBtX2ltYWdlU2Nh
bGVGYWN0b3Iob3RoZXIubV9pbWFnZVNjYWxlRmFjdG9yKQotI2VuZGlmCi0gICAgLCBtX3BsYXRm
b3JtQ3Vyc29yKG90aGVyLm1fcGxhdGZvcm1DdXJzb3IpCi17Ci19Ci0KLUN1cnNvciYgQ3Vyc29y
OjpvcGVyYXRvcj0oY29uc3QgQ3Vyc29yJiBvdGhlcikKLXsKLSAgICBtX3R5cGUgPSBvdGhlci5t
X3R5cGU7Ci0gICAgbV9pbWFnZSA9IG90aGVyLm1faW1hZ2U7Ci0gICAgbV9ob3RTcG90ID0gb3Ro
ZXIubV9ob3RTcG90OwotI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgbV9pbWFn
ZVNjYWxlRmFjdG9yID0gb3RoZXIubV9pbWFnZVNjYWxlRmFjdG9yOwotI2VuZGlmCi0gICAgbV9w
bGF0Zm9ybUN1cnNvciA9IG90aGVyLm1fcGxhdGZvcm1DdXJzb3I7Ci0gICAgcmV0dXJuICp0aGlz
OwotfQotCi1DdXJzb3I6On5DdXJzb3IoKQotewotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNw
cAppbmRleCAwNmFlZTlmOTc5NjJmYmNhODI5Y2Y1ZTFiZTM4MjVlNmZiZDUyZGU0Li40ODJiNWRk
MTM3NWI2ZmU3NzI2N2NiNjI2ZjQxNjM2ZGY4ZjUzNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTYxNiw3ICs2MTYsNyBA
QCB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpoYW5kbGVVbmF2YWlsYWJsZVBsdWdpbkluZGlj
YXRvckV2ZW50KEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIHNldFVuYXZhaWxhYmxlUGx1Z2lu
SW5kaWNhdG9ySXNQcmVzc2VkKGZhbHNlKTsKICAgICAgICAgfQogICAgICAgICBpZiAobV9tb3Vz
ZURvd25XYXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yICYmIGlzSW5VbmF2YWlsYWJsZVBs
dWdpbkluZGljYXRvcihtb3VzZUV2ZW50KSkgewotICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgp
LmNsaWVudCgpLnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCgmZWxlbWVudCwgbV9wbHVn
aW5VbmF2YWlsYWJpbGl0eVJlYXNvbik7CisgICAgICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xp
ZW50KCkudW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKGVsZW1lbnQsIG1fcGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb24pOwogICAgICAgICB9CiAgICAgICAgIG1fbW91c2VEb3duV2FzSW5V
bmF2YWlsYWJsZVBsdWdpbkluZGljYXRvciA9IGZhbHNlOwogICAgICAgICBldmVudC0+c2V0RGVm
YXVsdEhhbmRsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKaW5kZXggYTFhOTRjNjdiN2U0NTBlOWVjMDMwNWVlMDcwNTlkZjIyZWMwNzZk
NC4uNjFjYWFiZjZhZmE4ZTg3MDI2ODYxYjRmZTgwOTdjYzA5NjM1M2VlOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTEwNyw3ICsx
MDcsNyBAQCBSZW5kZXJMYXllckJhY2tpbmc6OlJlbmRlckxheWVyQmFja2luZyhSZW5kZXJMYXll
ciYgbGF5ZXIpCiB7CiAgICAgaWYgKGxheWVyLmlzUm9vdExheWVyKCkpIHsKICAgICAgICAgbV9p
c01haW5GcmFtZVJlbmRlclZpZXdMYXllciA9IHJlbmRlcmVyKCkuZnJhbWUoKS5pc01haW5GcmFt
ZSgpOwotICAgICAgICBtX3VzaW5nVGlsZWRDYWNoZUxheWVyID0gcmVuZGVyZXIoKS5wYWdlKCku
Y2hyb21lKCkuY2xpZW50KCkuc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KHJlbmRl
cmVyKCkuZnJhbWUoKS52aWV3KCkpOworICAgICAgICBtX3VzaW5nVGlsZWRDYWNoZUxheWVyID0g
cmVuZGVyZXIoKS5wYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuc2hvdWxkVXNlVGlsZWRCYWNraW5n
Rm9yRnJhbWVWaWV3KHJlbmRlcmVyKCkudmlldygpLmZyYW1lVmlldygpKTsKICAgICB9CiAgICAg
CiAgICAgY3JlYXRlUHJpbWFyeUdyYXBoaWNzTGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMTJiNjJjOTI4N2Ji
ZmZkOWU1Nzk4Zjc2NWQ4MmM1NzAzNzMxZTZkZC4uNjVmZGM0ZGZkYTQ2ZmJkMjJkYmJjMzQ3YTk2
YjIxYzJlZWRlYzE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTMxMDMsNyArMzEwMyw3IEBAIEdyYXBoaWNzTGF5ZXIq
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJGb3JIZWFkZXIoYm9vbCB3YW50c0xh
eWVyKQogICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3Ig
PSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQogICAgICAgICBzY3JvbGxpbmdDb29yZGlu
YXRvci0+ZnJhbWVWaWV3Um9vdExheWVyRGlkQ2hhbmdlKG1fcmVuZGVyVmlldy5mcmFtZVZpZXco
KSk7CiAKLSAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlkQWRkSGVhZGVyTGF5ZXIobV9s
YXllckZvckhlYWRlci5nZXQoKSk7CisgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmRpZEFk
ZEhlYWRlckxheWVyKCptX2xheWVyRm9ySGVhZGVyKTsKIAogICAgIHJldHVybiBtX2xheWVyRm9y
SGVhZGVyLmdldCgpOwogfQpAQCAtMzE0MSw3ICszMTQxLDcgQEAgR3JhcGhpY3NMYXllciogUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllckZvckZvb3Rlcihib29sIHdhbnRzTGF5ZXIp
CiAgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRo
aXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9y
LT5mcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpKTsK
IAotICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5kaWRBZGRGb290ZXJMYXllcihtX2xheWVy
Rm9yRm9vdGVyLmdldCgpKTsKKyAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlkQWRkRm9v
dGVyTGF5ZXIoKm1fbGF5ZXJGb3JGb290ZXIpOwogCiAgICAgcmV0dXJuIG1fbGF5ZXJGb3JGb290
ZXIuZ2V0KCk7CiB9CkBAIC0zNDYzLDExICszNDYzLDExIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjphdHRhY2hSb290TGF5ZXIoUm9vdExheWVyQXR0YWNobWVudCBhdHRhY2htZW50KQog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUm9vdExheWVyQXR0YWNoZWRWaWFDaHJv
bWVDbGllbnQ6IHsKICAgICAgICAgICAgIEZyYW1lJiBmcmFtZSA9IG1fcmVuZGVyVmlldy5mcmFt
ZVZpZXcoKS5mcmFtZSgpOwotICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKCZmcmFtZSwgcm9vdEdyYXBoaWNzTGF5ZXIoKSk7CisgICAg
ICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIo
ZnJhbWUsIHJvb3RHcmFwaGljc0xheWVyKCkpOwogICAgICAgICAgICAgaWYgKGZyYW1lLmlzTWFp
bkZyYW1lKCkpIHsKICAgICAgICAgICAgICAgICBQYWdlT3ZlcmxheUNvbnRyb2xsZXImIHBhZ2VP
dmVybGF5Q29udHJvbGxlciA9IGZyYW1lLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxl
cigpOwogICAgICAgICAgICAgICAgIHBhZ2VPdmVybGF5Q29udHJvbGxlci53aWxsQXR0YWNoUm9v
dExheWVyKCk7Ci0gICAgICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFj
aFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcigmZnJhbWUsICZwYWdlT3ZlcmxheUNvbnRyb2xsZXIu
dmlld092ZXJsYXlSb290TGF5ZXIoKSk7CisgICAgICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgp
LmNsaWVudCgpLmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihmcmFtZSwgJnBhZ2VPdmVy
bGF5Q29udHJvbGxlci52aWV3T3ZlcmxheVJvb3RMYXllcigpKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0zNTA4LDkgKzM1MDgsOSBAQCB2b2lkIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6ZGV0YWNoUm9vdExheWVyKCkKICAgICB9CiAgICAgY2FzZSBS
b290TGF5ZXJBdHRhY2hlZFZpYUNocm9tZUNsaWVudDogewogICAgICAgICBGcmFtZSYgZnJhbWUg
PSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkuZnJhbWUoKTsKLSAgICAgICAgcGFnZSgpLmNocm9t
ZSgpLmNsaWVudCgpLmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKCZmcmFtZSwgMCk7CisgICAgICAg
IHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hSb290R3JhcGhpY3NMYXllcihmcmFtZSwg
bnVsbHB0cik7CiAgICAgICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKQotICAgICAgICAgICAg
cGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcigm
ZnJhbWUsIDApOworICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFZp
ZXdPdmVybGF5R3JhcGhpY3NMYXllcihmcmFtZSwgbnVsbHB0cik7CiAgICAgfQogICAgIGJyZWFr
OwogICAgIGNhc2UgUm9vdExheWVyVW5hdHRhY2hlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IGQyYzAyZWY5ZDYwZTA2YzY4NjY3MjNlNDc0MDcz
N2FkOGMwYzM4MjEuLjM3YzgzZThkMWY1ZWJiMDU3YjExMGNjODg4MTA1NDUxMmNkNGQ0N2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMzcxLDcg
KzM3MSw3IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpCiAgICAgLy8gaW5zaWRl
IHRoZSBzaG93UG9wdXAgY2FsbCBhbmQgaXQgd291bGQgZmFpbC4KICAgICBjcmVhdGVJbm5lckJs
b2NrKCk7CiAgICAgaWYgKCFtX3BvcHVwKQotICAgICAgICBtX3BvcHVwID0gZG9jdW1lbnQoKS5w
YWdlKCktPmNocm9tZSgpLmNyZWF0ZVBvcHVwTWVudSh0aGlzKTsKKyAgICAgICAgbV9wb3B1cCA9
IGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jcmVhdGVQb3B1cE1lbnUoKnRoaXMpOwogICAg
IG1fcG9wdXBJc1Zpc2libGUgPSB0cnVlOwogCiAgICAgLy8gQ29tcHV0ZSB0aGUgdG9wIGxlZnQg
dGFraW5nIHRyYW5zZm9ybXMgaW50byBhY2NvdW50LCBidXQgdXNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcAppbmRleCBiNDZkOGVkNzE4NjA4Y2Fm
ZTYxNjkzZTE0YmUxM2U4NmQ0Y2E4MjJjLi5jYTkwMDUxODRkYjI5YWM5Mjc3MGRhMTI3NTU4MTRj
NjA4MDYyMWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Vh
cmNoRmllbGQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hG
aWVsZC5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBSZW5kZXJTZWFyY2hGaWVsZDo6YWRkU2Vh
cmNoUmVzdWx0KCkKIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZlTmFt
ZSgpOwogICAgIGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQb3B1cCA9IHBh
Z2UoKS5jaHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7CisgICAgICAgIG1fc2Vh
cmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KCp0aGlzKTsK
IAogICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBtX3JlY2VudFNl
YXJjaGVzKTsKIH0KQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFJlbmRlclNlYXJjaEZpZWxkOjpz
aG93UG9wdXAoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0g
ICAgICAgIG1fc2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBN
ZW51KHRoaXMpOworICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNyZWF0
ZVNlYXJjaFBvcHVwTWVudSgqdGhpcyk7CiAKICAgICBpZiAoIW1fc2VhcmNoUG9wdXAtPmVuYWJs
ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgUmVuZGVyU2Vh
cmNoRmllbGQ6OnZhbHVlQ2hhbmdlZCh1bnNpZ25lZCBsaXN0SW5kZXgsIGJvb2wgZmlyZUV2ZW50
cykKICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZlTmFtZSgp
OwogICAgICAgICAgICAgaWYgKCFuYW1lLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIGlm
ICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IHBh
Z2UoKS5jaHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7CisgICAgICAgICAgICAg
ICAgICAgIG1fc2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBN
ZW51KCp0aGlzKTsKICAgICAgICAgICAgICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2Vh
cmNoZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hlcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCmluZGV4IGJlYjBhMzk1M2JjNzJmZWUxM2IzNTM4
ZmU1OTdjZDE5MDlkOWQzYmUuLjQyMDIzZmE3Njg2NTRlMTNhZjZkMzI2MjgyYWUzODE2N2FjYTlk
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIGJv
b2wgU1ZHQUVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCYgZXZlbnQp
IGNvbnN0CiAgICAgICAgIHJldHVybiBTVkdFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKGV2
ZW50KTsKIAogICAgIGlmIChpc0xpbmsoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50KCkuZnJh
bWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoJmV2ZW50KTsKKyAgICAgICAgcmV0dXJu
IGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoZXZlbnQpOwog
CiAgICAgcmV0dXJuIFNWR0VsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCmlu
ZGV4IGZkNTY0YWZmMTQwNGU1ODhhOWRjNDFhNjM2N2RiMmYwY2JkYTEyOGIuLjAwNDQwNDFiZjc1
NzhjM2MyYTg2MTdiN2ZlNzY2ZmQyY2JjYjJkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgTW9ja1Bh
Z2VPdmVybGF5Q2xpZW50OjpNb2NrUGFnZU92ZXJsYXlDbGllbnQoKQogUmVmPE1vY2tQYWdlT3Zl
cmxheT4gTW9ja1BhZ2VPdmVybGF5Q2xpZW50OjppbnN0YWxsT3ZlcmxheShNYWluRnJhbWUmIG1h
aW5GcmFtZSwgUGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlIG92ZXJsYXlUeXBlKQogewogICAgIGF1
dG8gb3ZlcmxheSA9IFBhZ2VPdmVybGF5OjpjcmVhdGUoKnRoaXMsIG92ZXJsYXlUeXBlKTsKLSAg
ICBtYWluRnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KG92
ZXJsYXkucHRyKCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICBtYWlu
RnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KG92ZXJsYXks
IFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIAogICAgIGF1dG8gbW9ja092ZXJs
YXkgPSBNb2NrUGFnZU92ZXJsYXk6OmNyZWF0ZShvdmVybGF5LnB0cigpKTsKICAgICBtX292ZXJs
YXlzLmFkZChtb2NrT3ZlcmxheS5wdHIoKSk7CkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgTW9ja1Bh
Z2VPdmVybGF5Q2xpZW50Ojp1bmluc3RhbGxBbGxPdmVybGF5cygpCiAgICAgICAgIFJlZlB0cjxN
b2NrUGFnZU92ZXJsYXk+IG1vY2tPdmVybGF5ID0gbV9vdmVybGF5cy50YWtlQW55KCk7CiAgICAg
ICAgIFBhZ2VPdmVybGF5Q29udHJvbGxlciogb3ZlcmxheUNvbnRyb2xsZXIgPSBtb2NrT3Zlcmxh
eS0+b3ZlcmxheSgpLT5jb250cm9sbGVyKCk7CiAgICAgICAgIEFTU0VSVChvdmVybGF5Q29udHJv
bGxlcik7Ci0gICAgICAgIG92ZXJsYXlDb250cm9sbGVyLT51bmluc3RhbGxQYWdlT3ZlcmxheSht
b2NrT3ZlcmxheS0+b3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7
CisgICAgICAgIG92ZXJsYXlDb250cm9sbGVyLT51bmluc3RhbGxQYWdlT3ZlcmxheSgqbW9ja092
ZXJsYXktPm92ZXJsYXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50SU9TLmggYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnRJT1MuaAppbmRleCA2Y2Q3MDNkODczYmQ4NjU5ODAwM2UzMTNlMmU0ZDgyZGRi
ODYwNzgxLi4xNDY0NDhiNzUyNWU1NTYxNzFjZWRiNmQ5NDVkMGFkYzBmZjY1NzI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJ
T1MuaApAQCAtNDIsOSArNDIsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZm9jdXMoKSBmaW5hbDsK
ICAgICB2b2lkIHRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbikgZmluYWwgeyB9CiAK
LSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6
U3RyaW5nJikgZmluYWw7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpG
cmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJikgZmluYWw7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0
UHJvbXB0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFdURjo6U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFdURjo6U3RyaW5nJiByZXN1bHQpIGZpbmFsOwor
ICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV1RGOjpT
dHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZy
YW1lJiwgY29uc3QgV1RGOjpTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRQ
cm9tcHQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
V1RGOjpTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgV1RGOjpTdHJpbmcmIHJlc3VsdCkgZmluYWw7CiAK
ICAgICB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkZpbGVDaG9v
c2VyJikgZmluYWw7CiAKQEAgLTUzLDEzICs1MywxMyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAg
ICB2b2lkIGRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wpIGZpbmFsOwotICAgIHZvaWQgc2V0
TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKFdlYkNvcmU6OkZyYW1lKiwgYm9vbCkgZmluYWw7Ci0g
ICAgdm9pZCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKLSAg
ICB2b2lkIGNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSopIGZpbmFs
OworICAgIHZvaWQgc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKFdlYkNvcmU6OkZyYW1lJiwg
Ym9vbCkgZmluYWw7CisgICAgdm9pZCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoV2ViQ29yZTo6RnJh
bWUmKSBmaW5hbDsKKyAgICB2b2lkIGNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhXZWJDb3Jl
OjpGcmFtZSYpIGZpbmFsOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29u
c3QgZmluYWw7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemUoKSBj
b25zdCBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdl
KGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJikgY29uc3QgZmluYWw7Ci0gICAgdm9p
ZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoV2ViQ29yZTo6RnJhbWUq
KSBmaW5hbDsKKyAgICB2b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFt
ZShXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwogICAgIGJvb2wgaXNTdG9wcGluZygpIGZpbmFsOwog
ICAgIHZvaWQgZGlkTGF5b3V0KExheW91dFR5cGUpIGZpbmFsOwogICAgIHZvaWQgZGlkU3RhcnRP
dmVyZmxvd1Njcm9sbCgpIGZpbmFsOwpAQCAtNjcsMTEgKzY3LDExIEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIHN1cHByZXNzRm9ybU5vdGlmaWNhdGlvbnMoKSBmaW5hbDsKICAgICB2b2lkIHJlc3Rv
cmVGb3JtTm90aWZpY2F0aW9ucygpIGZpbmFsOwotICAgIAotICAgIHZvaWQgZWxlbWVudERpZEZv
Y3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBmaW5hbDsKLSAgICB2b2lkIGVsZW1lbnREaWRCbHVy
KGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBmaW5hbDsKIAotICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBo
aWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7
CisgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOworICAg
IHZvaWQgZWxlbWVudERpZEJsdXIoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOworCisgICAgdm9p
ZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkRmx1c2hDb21wb3NpdGluZ0xheWVycygp
IGZpbmFsOwogCkBAIC04Myw4ICs4Myw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNlbGVjdEl0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgZmluYWw7CiAgICAgYm9vbCBzZWxlY3RJdGVt
QWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgZmluYWw7Ci0gICAgUmVmUHRy
PFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNs
aWVudCopIGNvbnN0IGZpbmFsOwotICAgIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+
IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBm
aW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2Vi
Q29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVu
dUNsaWVudCYpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCB3ZWJBcHBPcmllbnRhdGlvbnNVcGRh
dGVkKCkgZmluYWw7CiAgICAgdm9pZCBmb2N1c2VkRWxlbWVudENoYW5nZWQoV2ViQ29yZTo6RWxl
bWVudCopIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50SU9TLm1tIGIvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50SU9TLm1tCmluZGV4IDUzZThmMGViYmU1Mjg0MzJhMGY5ZTRiZTRj
ZmNkNDIzZmQ3M2UwMzkuLjY4OTcxZDI2NmYzNWY0MGE3OTlhNmMwNDViNzk1MmExMTBhMjAwOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnRJT1MubW0KQEAgLTEwMywyNSArMTAzLDI1IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
SU9TOjpmb2N1cygpCiAgICAgW1t3ZWJWaWV3KCkgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZp
ZXdGb2N1czp3ZWJWaWV3KCldOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudElPUzo6cnVuSmF2
YVNjcmlwdEFsZXJ0KEZyYW1lKiBmcmFtZSwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UpCit2
b2lkIFdlYkNocm9tZUNsaWVudElPUzo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiBmcmFtZSwg
Y29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgV2ViVGhyZWFkTG9ja1B1c2hNb2Rh
bCgpOwotICAgIFtbd2ViVmlldygpIF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZp
ZXcoKSBydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOm1lc3NhZ2UgaW5pdGlhdGVk
QnlGcmFtZTpraXQoZnJhbWUpXTsKKyAgICBbW3dlYlZpZXcoKSBfVUlEZWxlZ2F0ZUZvcndhcmRl
cl0gd2ViVmlldzp3ZWJWaWV3KCkgcnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTpt
ZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6a2l0KCZmcmFtZSldOwogICAgIFdlYlRocmVhZExvY2tQ
b3BNb2RhbCgpOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudElPUzo6cnVuSmF2YVNjcmlwdENv
bmZpcm0oRnJhbWUqIGZyYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSkKK2Jvb2wgV2Vi
Q2hyb21lQ2xpZW50SU9TOjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYgZnJhbWUsIGNvbnN0
IFdURjo6U3RyaW5nJiBtZXNzYWdlKQogewogICAgIFdlYlRocmVhZExvY2tQdXNoTW9kYWwoKTsK
LSAgICBib29sIHJlc3VsdCA9IFtbd2ViVmlldygpIF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJW
aWV3OndlYlZpZXcoKSBydW5KYXZhU2NyaXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6bWVzc2Fn
ZSBpbml0aWF0ZWRCeUZyYW1lOmtpdChmcmFtZSldOworICAgIGJvb2wgcmVzdWx0ID0gW1t3ZWJW
aWV3KCkgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldygpIHJ1bkphdmFTY3Jp
cHRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTptZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6a2l0KCZm
cmFtZSldOwogICAgIFdlYlRocmVhZExvY2tQb3BNb2RhbCgpOwogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50SU9TOjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1l
KiBmcmFtZSwgY29uc3QgV1RGOjpTdHJpbmcmIHByb21wdCwgY29uc3QgV1RGOjpTdHJpbmcmIGRl
ZmF1bHRUZXh0LCBXVEY6OlN0cmluZyYgcmVzdWx0KQorYm9vbCBXZWJDaHJvbWVDbGllbnRJT1M6
OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmIGZyYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgcHJv
bXB0LCBjb25zdCBXVEY6OlN0cmluZyYgZGVmYXVsdFRleHQsIFdURjo6U3RyaW5nJiByZXN1bHQp
CiB7CiAgICAgV2ViVGhyZWFkTG9ja1B1c2hNb2RhbCgpOwotICAgIHJlc3VsdCA9IFtbd2ViVmll
dygpIF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZpZXcoKSBydW5KYXZhU2NyaXB0
VGV4dElucHV0UGFuZWxXaXRoUHJvbXB0OnByb21wdCBkZWZhdWx0VGV4dDpkZWZhdWx0VGV4dCBp
bml0aWF0ZWRCeUZyYW1lOmtpdChmcmFtZSldOworICAgIHJlc3VsdCA9IFtbd2ViVmlldygpIF9V
SURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZpZXcoKSBydW5KYXZhU2NyaXB0VGV4dElu
cHV0UGFuZWxXaXRoUHJvbXB0OnByb21wdCBkZWZhdWx0VGV4dDpkZWZhdWx0VGV4dCBpbml0aWF0
ZWRCeUZyYW1lOmtpdCgmZnJhbWUpXTsKICAgICBXZWJUaHJlYWRMb2NrUG9wTW9kYWwoKTsKICAg
ICByZXR1cm4gIXJlc3VsdC5pc051bGwoKTsKIH0KQEAgLTE3MSwyNiArMTcxLDI2IEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50SU9TOjpkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShib29sIGlzTW9iaWxl
RG9jdHlwZSkKICAgICAgICAgW1t3ZWJWaWV3KCkgX1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIHdl
YlZpZXdEaWRSZWNlaXZlTW9iaWxlRG9jVHlwZTp3ZWJWaWV3KCldOwogfQogCi12b2lkIFdlYkNo
cm9tZUNsaWVudElPUzo6c2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKFdlYkNvcmU6OkZyYW1l
KiBmcmFtZSwgYm9vbCBmbGFnKQordm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OnNldE5lZWRzU2Ny
b2xsTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpGcmFtZSYgZnJhbWUsIGJvb2wgZmxhZykKIHsKLSAg
ICBbW3dlYlZpZXcoKSBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3KCkg
bmVlZHNTY3JvbGxOb3RpZmljYXRpb25zOltOU051bWJlciBudW1iZXJXaXRoQm9vbDpmbGFnXSBm
b3JGcmFtZTpraXQoZnJhbWUpXTsKKyAgICBbW3dlYlZpZXcoKSBfVUlLaXREZWxlZ2F0ZUZvcndh
cmRlcl0gd2ViVmlldzp3ZWJWaWV3KCkgbmVlZHNTY3JvbGxOb3RpZmljYXRpb25zOltOU051bWJl
ciBudW1iZXJXaXRoQm9vbDpmbGFnXSBmb3JGcmFtZTpraXQoJmZyYW1lKV07CiB9CiAKLXZvaWQg
V2ViQ2hyb21lQ2xpZW50SU9TOjpvYnNlcnZlZENvbnRlbnRDaGFuZ2UoV2ViQ29yZTo6RnJhbWUq
IGZyYW1lKQordm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6Om9ic2VydmVkQ29udGVudENoYW5nZShX
ZWJDb3JlOjpGcmFtZSYgZnJhbWUpCiB7Ci0gICAgW1t3ZWJWaWV3KCkgX1VJS2l0RGVsZWdhdGVG
b3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldygpIGRpZE9ic2VydmVEZWZlcnJlZENvbnRlbnRDaGFu
Z2U6V0tPYnNlcnZlZENvbnRlbnRDaGFuZ2UoKSBmb3JGcmFtZTpraXQoZnJhbWUpXTsKKyAgICBb
W3dlYlZpZXcoKSBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3KCkgZGlk
T2JzZXJ2ZURlZmVycmVkQ29udGVudENoYW5nZTpXS09ic2VydmVkQ29udGVudENoYW5nZSgpIGZv
ckZyYW1lOmtpdCgmZnJhbWUpXTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OmNsZWFy
Q29udGVudENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSogZnJhbWUpCit2b2lkIFdlYkNo
cm9tZUNsaWVudElPUzo6Y2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKFdlYkNvcmU6OkZyYW1l
JiBmcmFtZSkKIHsKICAgICBBU1NFUlQoV2ViVGhyZWFkQ291bnRPZk9ic2VydmVkQ29udGVudE1v
ZGlmaWVycygpID4gMCk7CiAgICAgaWYgKFdlYlRocmVhZENvdW50T2ZPYnNlcnZlZENvbnRlbnRN
b2RpZmllcnMoKSA+IDApIHsKICAgICAgICAgV2ViVGhyZWFkQ2xlYXJPYnNlcnZlZENvbnRlbnRN
b2RpZmllcnMoKTsKICAgICAgICAgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKGZyYW1lKTsKLSAgICB9
ICAgICAgICAKKyAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgTlNEaWN0aW9uYXJ5KiBkaWN0aW9u
YXJ5Rm9yVmlld3BvcnRBcmd1bWVudHMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMm
IGFyZ3VtZW50cykKK3N0YXRpYyBpbmxpbmUgTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5Rm9yVmll
d3BvcnRBcmd1bWVudHMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmIGFyZ3VtZW50
cykKIHsKICAgICByZXR1cm4gQHsgQCJpbml0aWFsLXNjYWxlIjpAKGFyZ3VtZW50cy56b29tKSwK
ICAgICAgICAgICAgICAgQCJtaW5pbXVtLXNjYWxlIjpAKGFyZ3VtZW50cy5taW5ab29tKSwKQEAg
LTIxOCw5ICsyMTgsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudElPUzo6ZGlzcGF0Y2hWaWV3cG9y
dFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6VmlldwogICAgIFtbd2ViVmlldygp
IF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZpZXcoKSBkaWRSZWNlaXZlVmll
d3BvcnRBcmd1bWVudHM6ZGljdGlvbmFyeUZvclZpZXdwb3J0QXJndW1lbnRzKGFyZ3VtZW50cyld
OwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudElPUzo6bm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25C
eVNjcm9sbGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50SU9TOjpub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoV2ViQ29yZTo6
RnJhbWUmIGZyYW1lKQogewotICAgIFtbd2ViVmlldygpIF9VSUtpdERlbGVnYXRlRm9yd2FyZGVy
XSByZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nV2ViRnJhbWU6a2l0KGZyYW1lKV07CisgICAg
W1t3ZWJWaWV3KCkgX1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIHJldmVhbGVkU2VsZWN0aW9uQnlT
Y3JvbGxpbmdXZWJGcmFtZTpraXQoJmZyYW1lKV07CiB9CiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50
SU9TOjppc1N0b3BwaW5nKCkKQEAgLTI1NiwxNiArMjU2LDE2IEBAIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50SU9TOjpyZXN0b3JlRm9ybU5vdGlmaWNhdGlvbnMoKQogICAgICAgICBtX2Zvcm1Ob3RpZmlj
YXRpb25TdXBwcmVzc2lvbnMgPSAwOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudElPUzo6ZWxl
bWVudERpZEZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit2b2lkIFdlYkNocm9tZUNs
aWVudElPUzo6ZWxlbWVudERpZEZvY3VzKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7CiAg
ICAgaWYgKG1fZm9ybU5vdGlmaWNhdGlvblN1cHByZXNzaW9ucyA8PSAwKQotICAgICAgICBbW3dl
YlZpZXcoKSBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3KCkgZWxlbWVu
dERpZEZvY3VzTm9kZTpraXQoY29uc3RfY2FzdDxXZWJDb3JlOjpOb2RlKj4obm9kZSkpXTsKKyAg
ICAgICAgW1t3ZWJWaWV3KCkgX1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmll
dygpIGVsZW1lbnREaWRGb2N1c05vZGU6a2l0KCZlbGVtZW50KV07CiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50SU9TOjplbGVtZW50RGlkQmx1cihjb25zdCBXZWJDb3JlOjpOb2RlKiBub2RlKQor
dm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OmVsZW1lbnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQm
IGVsZW1lbnQpCiB7CiAgICAgaWYgKG1fZm9ybU5vdGlmaWNhdGlvblN1cHByZXNzaW9ucyA8PSAw
KQotICAgICAgICBbW3dlYlZpZXcoKSBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3
ZWJWaWV3KCkgZWxlbWVudERpZEJsdXJOb2RlOmtpdChjb25zdF9jYXN0PFdlYkNvcmU6Ok5vZGUq
Pihub2RlKSldOworICAgICAgICBbW3dlYlZpZXcoKSBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0g
d2ViVmlldzp3ZWJWaWV3KCkgZWxlbWVudERpZEJsdXJOb2RlOmtpdCgmZWxlbWVudCldOwogfQog
CiBib29sIFdlYkNocm9tZUNsaWVudElPUzo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05h
dHVyYWwoKQpAQCAtMjc4LDE3ICsyNzgsMTcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnRJT1M6OnNl
bGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKQogICAgIHJldHVy
biB0cnVlOwogfQogCi1SZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnRJ
T1M6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29u
c3QKK1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudElPUzo6Y3JlYXRl
UG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51SU9TKGNsaWVudCkpOworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgUG9wdXBNZW51SU9TKCZjbGllbnQpKTsKIH0KIAotUmVmUHRyPFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50SU9TOjpjcmVhdGVTZWFyY2hQb3B1cE1l
bnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8V2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnRJT1M6OmNyZWF0ZVNlYXJjaFBvcHVw
TWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudUlPUyhjbGllbnQpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudUlPUygmY2xpZW50KSk7CiB9CiAKLXZvaWQgV2Vi
Q2hyb21lQ2xpZW50SU9TOjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNz
TGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudElPUzo6YXR0YWNoUm9v
dEdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQogewog
ICAgIC8vIEZJWE1FOiBmb3Igbm9uLXJvb3QgZnJhbWVzIHdlIHJlbHkgb24gUmVuZGVyVmlldyBw
b3NpdGlvbmluZyB0aGUgcm9vdCBsYXllciwKICAgICAvLyB3aGljaCBpcyBhIGhhY2suIDxyZGFy
Oi8vcHJvYmxlbS81OTA2MTQ2PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0K
aW5kZXggM2IzYzNhNDI5NGMxN2M1NzhiODE5MTVkYTBiMWM0ZjhiZmEyM2ViYS4uMGQ0ODJiNGRk
OTI1YmMwYjhiOGQ0MjYxZWZjMmM3YTY1NTc2ZTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hl
UXVvdGFNYW5hZ2VyLm1tCkBAIC01OSw3ICs1OSw5IEBAIC0gKHVuc2lnbmVkIGxvbmcgbG9uZyl1
c2FnZQogLSAodW5zaWduZWQgbG9uZyBsb25nKXF1b3RhCiB7CiAgICAgbG9uZyBsb25nIHF1b3Rh
OwotICAgIGlmICh3ZWJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSgpLmNhbGN1bGF0ZVF1b3RhRm9y
T3JpZ2luKFtfb3JpZ2luIF9jb3JlXSwgcXVvdGEpKQorICAgIGlmICghX29yaWdpbikKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgaWYgKHdlYkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlKCkuY2FsY3Vs
YXRlUXVvdGFGb3JPcmlnaW4oKltfb3JpZ2luIF9jb3JlXSwgcXVvdGEpKQogICAgICAgICByZXR1
cm4gcXVvdGE7CiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGY0ZjA5NmM1ZDY0NzNlYmM2ZTdh
YmQ1ODNiNmRmZWY0YWFhNGQxNTkuLjdkOGYzYjg3ZjdlMzI0NTE2ZGIwNjE1YmU1OGQ4ZDkwNTU4
MjRiOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmb2N1c2Vk
RWxlbWVudENoYW5nZWQoV2ViQ29yZTo6RWxlbWVudCopIG92ZXJyaWRlOwogICAgIHZvaWQgZm9j
dXNlZEZyYW1lQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSopIGZpbmFsOwogCi0gICAgV2ViQ29yZTo6
UGFnZSogY3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6RnJhbWVM
b2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29y
ZTo6TmF2aWdhdGlvbkFjdGlvbiYpIGZpbmFsOworICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdp
bmRvdyhXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBj
b25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25B
Y3Rpb24mKSBmaW5hbDsKICAgICB2b2lkIHNob3coKSBmaW5hbDsKIAogICAgIGJvb2wgY2FuUnVu
TW9kYWwoKSBmaW5hbDsKQEAgLTc5LDE2ICs3OSwxNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBz
ZXRSZXNpemFibGUoYm9vbCkgZmluYWw7CiAKLSAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUo
SlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgV1RGOjpTdHJpbmcm
IG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29u
c3QgV1RGOjpTdHJpbmcmIHNvdXJjZVVSTCkgZmluYWw7CisgICAgdm9pZCBhZGRNZXNzYWdlVG9D
b25zb2xlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgZmluYWw7CiAKICAgICBib29sIGNhblJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbCgpIGZpbmFsOwotICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsKGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSopIGZpbmFs
OworICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKIAogICAgIHZvaWQgY2xvc2VXaW5kb3dTb29u
KCkgZmluYWw7CiAKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSos
IGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0Q29u
ZmlybShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFdURjo6U3RyaW5n
JiByZXN1bHQpIG92ZXJyaWRlOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6
OkZyYW1lJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0
Q29uZmlybShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIGJv
b2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KSBvdmVycmlk
ZTsKIAogICAgIGJvb2wgc3VwcG9ydHNJbW1lZGlhdGVJbnZhbGlkYXRpb24oKSBmaW5hbDsKICAg
ICB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7
CkBAIC0xMDUsMjkgKzEwNSwyOSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBQbGF0Zm9ybVBh
Z2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb250
ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFt
ZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNjcm9s
bFJlY3RJbnRvVmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgZmluYWw7CiAKLSAg
ICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgV1RGOjpTdHJpbmcmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgZmluYWwgeyB9CiAgICAgYm9vbCBz
aG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihXZWJDb3JlOjpSZW5kZXJFbWJl
ZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOwotICAg
IHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQqLCBX
ZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24p
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdl
YkNvcmU6OkVsZW1lbnQmLCBXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVy
RmxhZ3MpIGZpbmFsOwogCi0gICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFdURjo6U3RyaW5nJiwg
V2ViQ29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7CisgICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0
IFN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24pIGZpbmFsOwogCi0gICAgdm9pZCBwcmlu
dChXZWJDb3JlOjpGcmFtZSopIGZpbmFsOwotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3Rh
KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29y
ZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKKyAgICB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1l
JikgZmluYWw7CisgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUm
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBm
aW5hbDsKICAgICB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRl
ZCkgZmluYWw7Ci0gICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSBmaW5hbDsK
KyAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4mLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpIGZpbmFsOwogCiAjaWYgRU5B
QkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIHZvaWQgYW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQo
KSBmaW5hbDsKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUm
LCBXZWJDb3JlOjpGaWxlQ2hvb3NlciYpIG92ZXJyaWRlOwotICAgIHZvaWQgbG9hZEljb25Gb3JG
aWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIm
KSBmaW5hbDsKKyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
LCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpIGZpbmFsOwogCiAjaWYgIVBMQVRGT1JNKElPUykK
ICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBmaW5hbDsKQEAgLTEz
NSw3ICsxMzUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9D
T0xPUikKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVD
b2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgV2ViQ29yZTo6
Q29sb3ImKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2Vy
PiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3Qg
V2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKQEAgLTE1MSwxNiArMTUxLDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbmFibGVTdWRkZW5U
ZXJtaW5hdGlvbigpIGZpbmFsOwogICAgIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkg
ZmluYWw7CiAKLSAgICBib29sIHNob3VsZFJlcGxhY2VXaXRoR2VuZXJhdGVkRmlsZUZvclVwbG9h
ZChjb25zdCBXVEY6OlN0cmluZyYgcGF0aCwgV1RGOjpTdHJpbmcgJmdlbmVyYXRlZEZpbGVuYW1l
KSBmaW5hbDsKLSAgICBXVEY6OlN0cmluZyBnZW5lcmF0ZVJlcGxhY2VtZW50RmlsZShjb25zdCBX
VEY6OlN0cmluZyYgcGF0aCkgZmluYWw7CisgICAgYm9vbCBzaG91bGRSZXBsYWNlV2l0aEdlbmVy
YXRlZEZpbGVGb3JVcGxvYWQoY29uc3QgU3RyaW5nJiBwYXRoLCBTdHJpbmcgJmdlbmVyYXRlZEZp
bGVuYW1lKSBmaW5hbDsKKyAgICBTdHJpbmcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoY29uc3Qg
U3RyaW5nJiBwYXRoKSBmaW5hbDsKIAotICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IFdl
YkNvcmU6Ok5vZGUqKSBvdmVycmlkZTsKLSAgICB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IFdl
YkNvcmU6Ok5vZGUqKSBvdmVycmlkZTsKKyAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhXZWJDb3Jl
OjpFbGVtZW50Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBlbGVtZW50RGlkQmx1cihXZWJDb3JlOjpF
bGVtZW50Jikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNob3VsZFBhaW50RW50aXJlQ29udGVudHMo
KSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29y
ZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBh
dHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgZmluYWw7CisgICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihX
ZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2
b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdp
bmdTeW5jaHJvbml6YXRpb24oKSBmaW5hbDsKICAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdM
YXllckZsdXNoKCkgZmluYWw7CiAKQEAgLTE4OSwxNiArMTg5LDE2IEBAIHByaXZhdGU6CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICBib29sIHN1cHBvcnRzRnVsbFNj
cmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJk
KSBmaW5hbDsKLSAgICB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxl
bWVudCopIGZpbmFsOwotICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6
OkVsZW1lbnQqKSBmaW5hbDsKKyAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQo
Y29uc3QgV2ViQ29yZTo6RWxlbWVudCYsIGJvb2wgd2l0aEtleWJvYXJkKSBmaW5hbDsKKyAgICB2
b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOwor
ICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5h
bDsKICNlbmRpZgogCiAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpIG92ZXJyaWRlOwogICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3Jp
dGluZ0RpcmVjdGlvbigpIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25z
dCBmaW5hbDsKLSAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUo
V2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgUmVmUHRyPFdl
YkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCopIGNvbnN0IG92ZXJyaWRlOworICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1
cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBv
dmVycmlkZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3Qgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIHdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoYm9vbCkgZmluYWwgeyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bQppbmRleCAwZWNmZjhkNWZhYjFlZTVmYzU1MjkyZGMwNGE4MDVhZDJjY2NkZWQ4Li5lNDk2N2I5
ZjhjMzdjNjI1YjUwNTViYzQyOTFhNzU5NTlmMDVmYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0zMCw2ICszMCw3
IEBACiAjaW1wb3J0ICJXZWJDaHJvbWVDbGllbnQuaCIKIAogI2ltcG9ydCAiRE9NRWxlbWVudElu
dGVybmFsLmgiCisjaW1wb3J0ICJET01IVE1MSW5wdXRFbGVtZW50SW50ZXJuYWwuaCIKICNpbXBv
cnQgIkRPTU5vZGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiUG9wdXBNZW51TWFjLmgiCiAjaW1wb3J0
ICJTZWFyY2hQb3B1cE1lbnVNYWMuaCIKQEAgLTIyMiw3ICsyMjMsNyBAQCB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6Zm9jdXNlZEVsZW1lbnRDaGFuZ2VkKEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgaWYg
KCFpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
SFRNTElucHV0RWxlbWVudCYgaW5wdXRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVu
dD4oKmVsZW1lbnQpOworICAgIGF1dG8mIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1
dEVsZW1lbnQ+KCplbGVtZW50KTsKICAgICBpZiAoIWlucHV0RWxlbWVudC5pc1RleHQoKSkKICAg
ICAgICAgcmV0dXJuOwogCkBAIC0yMzMsMTQgKzIzNCwxNCBAQCB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSopCiB7CiB9CiAKLVBhZ2UqIFdlYkNocm9tZUNs
aWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYs
IGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYp
CitQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0
IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mKQogewogICAgIGlkIGRlbGVnYXRlID0gW21fd2ViVmlldyBVSURl
bGVnYXRlXTsKICAgICBXZWJWaWV3ICpuZXdXZWJWaWV3OwogCiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQotICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+
d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkpCi0gICAgICAgIGZyYW1lLT5kb2N1bWVu
dCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7CisgICAgaWYgKGZyYW1lLmRvY3VtZW50KCkg
JiYgZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkpCisg
ICAgICAgIGZyYW1lLmRvY3VtZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsKICNlbmRp
ZgogICAgIAogICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3
ZWJWaWV3OmNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdDp3aW5kb3dGZWF0dXJlczopXSkgewpAQCAt
NDY4LDkgKzQ2OSw5IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwoKQogICAgIHJldHVybiBbW21fd2ViVmlldyBVSURlbGVnYXRlXSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
V2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTopXTsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZy
YW1lKiBmcmFtZSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSYgZnJhbWUpCiB7Ci0gICAgcmV0dXJu
IENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVhbih0cnVlLCBtX3dlYlZpZXcsIEBzZWxlY3Rv
cih3ZWJWaWV3OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRl
ZEJ5RnJhbWU6KSwgbWVzc2FnZSwga2l0KGZyYW1lKSk7CisgICAgcmV0dXJuIENhbGxVSURlbGVn
YXRlUmV0dXJuaW5nQm9vbGVhbih0cnVlLCBtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6KSwg
bWVzc2FnZSwga2l0KCZmcmFtZSkpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xvc2VX
aW5kb3dTb29uKCkKQEAgLTQ5MywxMiArNDk0LDEyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpj
bG9zZVdpbmRvd1Nvb24oKQogICAgIFttX3dlYlZpZXcgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3Rv
cihfY2xvc2VXaW5kb3cpIHdpdGhPYmplY3Q6bmlsIGFmdGVyRGVsYXk6MC4wXTsKIH0KIAotdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxl
cnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgaWQgZGVsZWdh
dGUgPSBbbV93ZWJWaWV3IFVJRGVsZWdhdGVdOwogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rv
cih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlG
cmFtZTopOwogICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkg
ewotICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBtZXNzYWdlLCBr
aXQoZnJhbWUpKTsKKyAgICAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3Rvciwg
bWVzc2FnZSwga2l0KCZmcmFtZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC01MTAs
MTIgKzUxMSwxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZy
YW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIH0KIH0KIAotYm9vbCBXZWJD
aHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJt
KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIGlkIGRlbGVnYXRl
ID0gW21fd2ViVmlldyBVSURlbGVnYXRlXTsKICAgICBTRUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Io
d2ViVmlldzpydW5KYXZhU2NyaXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlG
cmFtZTopOwogICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkK
LSAgICAgICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVhbihOTywgbV93ZWJW
aWV3LCBzZWxlY3RvciwgbWVzc2FnZSwga2l0KGZyYW1lKSk7CisgICAgICAgIHJldHVybiBDYWxs
VUlEZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4oTk8sIG1fd2ViVmlldywgc2VsZWN0b3IsIG1lc3Nh
Z2UsIGtpdCgmZnJhbWUpKTsKIAogICAgIC8vIENhbGwgdGhlIG9sZCB2ZXJzaW9uIG9mIHRoZSBk
ZWxlZ2F0ZSBtZXRob2QgaWYgaXQgaXMgaW1wbGVtZW50ZWQuCiAgICAgc2VsZWN0b3IgPSBAc2Vs
ZWN0b3Iod2ViVmlldzpydW5KYXZhU2NyaXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6KTsKQEAg
LTUyNSwxMyArNTI2LDEzIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29u
ZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICByZXR1cm4gTk87
CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBm
cmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFRleHQsIFN0
cmluZyYgcmVzdWx0KQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQo
RnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwgY29uc3QgU3RyaW5nJiBkZWZhdWx0
VGV4dCwgU3RyaW5nJiByZXN1bHQpCiB7CiAgICAgaWQgZGVsZWdhdGUgPSBbbV93ZWJWaWV3IFVJ
RGVsZWdhdGVdOwogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFT
Y3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6ZGVmYXVsdFRleHQ6aW5pdGlhdGVkQnlGcmFt
ZTopOwogICAgIE5TU3RyaW5nICpkZWZhdWx0U3RyaW5nID0gZGVmYXVsdFRleHQ7CiAgICAgaWYg
KFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6c2VsZWN0b3JdKSB7Ci0gICAgICAgIHJlc3Vs
dCA9IChOU1N0cmluZyAqKUNhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIHByb21w
dCwgZGVmYXVsdFN0cmluZywga2l0KGZyYW1lKSk7CisgICAgICAgIHJlc3VsdCA9IChOU1N0cmlu
ZyAqKUNhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIHByb21wdCwgZGVmYXVsdFN0
cmluZywga2l0KCZmcmFtZSkpOwogICAgICAgICByZXR1cm4gIXJlc3VsdC5pc051bGwoKTsKICAg
ICB9CiAKQEAgLTU0Miw3ICs1NDMsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNj
cmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgcHJvbXB0LCBjbwogICAgICAg
ICByZXR1cm4gIXJlc3VsdC5pc051bGwoKTsKICAgICB9CiAKLSAgICByZXN1bHQgPSBbW1dlYkRl
ZmF1bHRVSURlbGVnYXRlIHNoYXJlZFVJRGVsZWdhdGVdIHdlYlZpZXc6bV93ZWJWaWV3IHJ1bkph
dmFTY3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6cHJvbXB0IGRlZmF1bHRUZXh0OmRlZmF1
bHRTdHJpbmcgaW5pdGlhdGVkQnlGcmFtZTpraXQoZnJhbWUpXTsKKyAgICByZXN1bHQgPSBbW1dl
YkRlZmF1bHRVSURlbGVnYXRlIHNoYXJlZFVJRGVsZWdhdGVdIHdlYlZpZXc6bV93ZWJWaWV3IHJ1
bkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6cHJvbXB0IGRlZmF1bHRUZXh0OmRl
ZmF1bHRTdHJpbmcgaW5pdGlhdGVkQnlGcmFtZTpraXQoJmZyYW1lKV07CiAgICAgcmV0dXJuICFy
ZXN1bHQuaXNOdWxsKCk7CiB9CiAKQEAgLTYwNiw3ICs2MDcsNyBAQCBQbGF0Zm9ybVBhZ2VDbGll
bnQgV2ViQ2hyb21lQ2xpZW50OjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogICAgIHJldHVy
biAwOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFt
ZSosIGNvbnN0IEludFNpemUmKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRz
U2l6ZUNoYW5nZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3QKIHsKIH0KIApAQCAtNjM1
LDEyICs2MzYsMTIgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVuYXZhaWxhYmxlUGx1
Z2luTWVzc2FnZUJlQnV0dG9uKFJlbmRlckVtYmVkZGVkT2JqZWMKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNr
ZWQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxh
YmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdAordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50JiBlbGVt
ZW50LCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1
Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQtPmhh
c1RhZ05hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGVtYmVkVGFnKSB8fCBl
bGVtZW50LT5oYXNUYWdOYW1lKGFwcGxldFRhZykpOworICAgIEFTU0VSVChlbGVtZW50Lmhhc1Rh
Z05hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZW1iZWRUYWcpIHx8IGVsZW1l
bnQuaGFzVGFnTmFtZShhcHBsZXRUYWcpKTsKIAogICAgIEFTU0VSVChwbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbiA9PSBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luTWlzc2luZyk7Ci0gICAg
Q2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpkaWRQcmVzc01pc3Np
bmdQbHVnaW5CdXR0b246KSwga2l0KGVsZW1lbnQpKTsKKyAgICBDYWxsVUlEZWxlZ2F0ZShtX3dl
YlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmRpZFByZXNzTWlzc2luZ1BsdWdpbkJ1dHRvbjopLCBr
aXQoJmVsZW1lbnQpKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJG
bGFncykKQEAgLTY1NywyMSArNjU4LDIxIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRUb29s
VGlwKGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikKICAgICAgICAgWyhXZWJI
VE1MVmlldyAqKWRvY3VtZW50VmlldyBfc2V0VG9vbFRpcDp0b29sVGlwXTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpwcmludChGcmFtZSYgZnJhbWUpCiB7Ci0gICAgV2ViRnJhbWUgKndlYkZyYW1lID0ga2l0KGZy
YW1lKTsKKyAgICBXZWJGcmFtZSAqd2ViRnJhbWUgPSBraXQoJmZyYW1lKTsKICAgICBpZiAoW1tt
X3dlYlZpZXcgVUlEZWxlZ2F0ZV0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3
OnByaW50RnJhbWU6KV0pCiAgICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVj
dG9yKHdlYlZpZXc6cHJpbnRGcmFtZTopLCB3ZWJGcmFtZSk7CiAgICAgZWxzZQogICAgICAgICBD
YWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnByaW50RnJhbWVWaWV3
OiksIFt3ZWJGcmFtZSBmcmFtZVZpZXddKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4
Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lLCBEYXRhYmFzZURldGFpbHMpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRh
YmFzZVF1b3RhKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFi
YXNlRGV0YWlscykKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBX
ZWJTZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdpbiBhbGxvY10g
X2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOiZmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKV07Ci0gICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2Vi
VmlldzpmcmFtZTpleGNlZWRlZERhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjpkYXRhYmFz
ZTopLCBraXQoZnJhbWUpLCB3ZWJPcmlnaW4sIChOU1N0cmluZyAqKWRhdGFiYXNlTmFtZSk7Cisg
ICAgV2ViU2VjdXJpdHlPcmlnaW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxs
b2NdIF9pbml0V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdpbjomZnJhbWUuZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKV07CisgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Io
d2ViVmlldzpmcmFtZTpleGNlZWRlZERhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjpkYXRh
YmFzZTopLCBraXQoJmZyYW1lKSwgd2ViT3JpZ2luLCAoTlNTdHJpbmcgKilkYXRhYmFzZU5hbWUp
OwogICAgIFt3ZWJPcmlnaW4gcmVsZWFzZV07CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOwpAQCAtNjgyLDExICs2ODMsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRN
YXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkKICAgICAvLyBGSVhNRTogRnJlZSBz
b21lIHNwYWNlLgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBpbnQ2NF90IHRvdGFsU3Bh
Y2VOZWVkZWQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVk
ZWQpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgV2ViU2VjdXJp
dHlPcmlnaW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0
aFdlYkNvcmVTZWN1cml0eU9yaWdpbjpvcmlnaW5dOworICAgIFdlYlNlY3VyaXR5T3JpZ2luICp3
ZWJPcmlnaW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5pdFdpdGhXZWJDb3JlU2Vj
dXJpdHlPcmlnaW46Jm9yaWdpbl07CiAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2Vs
ZWN0b3Iod2ViVmlldzpleGNlZWRlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YUZvclNlY3Vy
aXR5T3JpZ2luOnRvdGFsU3BhY2VOZWVkZWQ6KSwgd2ViT3JpZ2luLCBzdGF0aWNfY2FzdDxOU1VJ
bnRlZ2VyPih0b3RhbFNwYWNlTmVlZGVkKSk7CiAgICAgW3dlYk9yaWdpbiByZWxlYXNlXTsKIApA
QCAtNzA1LDEyICs3MDYsMTQgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFubm90YXRlZFJlZ2lv
bnNDaGFuZ2VkKCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi1zdGQ6
OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hv
b3NlcihDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xv
cikKKworc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiBjbGllbnQsIGNvbnN0IENvbG9yJiBp
bml0aWFsQ29sb3IpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCA8aW5wdXQgdHlwZT0nY29s
b3InPiBmb3IgV0sxIChCdWcgMTE5MDk0KS4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KKwogI2VuZGlmCiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NL
KQpAQCAtODQ4LDE0ICs4NTEsMTQgQEAgU3RyaW5nIFdlYkNocm9tZUNsaWVudDo6Z2VuZXJhdGVS
ZXBsYWNlbWVudEZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVybiBbW21fd2ViVmll
dyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzptX3dlYlZpZXcgZ2VuZXJhdGVSZXBsYWNl
bWVudEZpbGU6cGF0aF07CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9j
dXMoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVt
ZW50RGlkRm9jdXMoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBDYWxsVUlEZWxl
Z2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZvcm1EaWRGb2N1c05vZGU6KSwga2l0
KGNvbnN0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KG5vZGUpKSk7CisgICAgQ2FsbFVJRGVsZWdhdGUo
bV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpmb3JtRGlkRm9jdXNOb2RlOiksIGtpdCgmZWxl
bWVudCkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIoY29uc3Qg
V2ViQ29yZTo6Tm9kZSogbm9kZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkQmx1
cihXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50KQogewotICAgIENhbGxVSURlbGVnYXRlKG1fd2Vi
VmlldywgQHNlbGVjdG9yKHdlYlZpZXc6Zm9ybURpZEJsdXJOb2RlOiksIGtpdChjb25zdF9jYXN0
PFdlYkNvcmU6Ok5vZGUqPihub2RlKSkpOworICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywg
QHNlbGVjdG9yKHdlYlZpZXc6Zm9ybURpZEJsdXJOb2RlOiksIGtpdCgmZWxlbWVudCkpOwogfQog
CiBib29sIFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKQpAQCAtODc0LDE5ICs4NzcsMTkgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6Omhhc09wZW5l
ZFBvcHVwKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpQ
b3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2Vi
Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JiBj
bGllbnQpIGNvbnN0CiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFBvcHVwTWVudU1hYyhjbGllbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQb3B1
cE1lbnVNYWMoJmNsaWVudCkpOwogI2Vsc2UKICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgog
fQogCi1SZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNy
ZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29u
c3QKK1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25z
dAogewogI2lmICFQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQ
b3B1cE1lbnVNYWMoY2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VhcmNoUG9w
dXBNZW51TWFjKCZjbGllbnQpKTsKICNlbHNlCiAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYK
QEAgLTkwMiwxMSArOTA1LDExIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRQYWludEVu
dGlyZUNvbnRlbnRzKCkgY29uc3QKICNlbmRpZgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6
YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFw
aGljc0xheWVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVy
KEZyYW1lJiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBOU1ZpZXcgKmRvY3VtZW50VmlldyA9IFtb
a2l0KGZyYW1lKSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld107CisgICAgTlNWaWV3ICpkb2N1bWVu
dFZpZXcgPSBbW2tpdCgmZnJhbWUpIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKICAgICBpZiAo
IVtkb2N1bWVudFZpZXcgaXNLaW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkgewogICAg
ICAgICAvLyBXZSBzaG91bGQgbmV2ZXIgYmUgYXR0YWNoaW5nIHdoZW4gd2UgZG9uJ3QgaGF2ZSBh
IFdlYkhUTUxWaWV3LgogICAgICAgICBBU1NFUlQoIWdyYXBoaWNzTGF5ZXIpOwpAQCAtOTIxLDcg
KzkyNCw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihG
cmFtZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoCiAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3Jh
cGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKQog
ewogICAgIC8vIEZJWE1FOiBJZiB3ZSB3YW50IHZpZXctcmVsYXRpdmUgcGFnZSBvdmVybGF5cyBp
biBMZWdhY3kgV2ViS2l0LCB0aGlzIHdvdWxkIGJlIHRoZSBwbGFjZSB0byBob29rIHRoZW0gdXAu
CiB9CkBAIC05NDEsNiArOTQ0LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQ29t
cG9zaXRpbmdMYXllckZsdXNoKCkKIH0KIAogI2lmIEVOQUJMRShWSURFTykKKwogYm9vbCBXZWJD
aHJvbWVDbGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZSkKIHsKICNpZiBQTEFURk9STShJT1MpCkBAIC05NjUsNyAr
OTY5LDEwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlk
ZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lCiAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsgICAgCiB9CiAKLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkKKyNlbmRpZiAvLyBFTkFCTEUoVklERU8pCisKKyNpZiBFTkFCTEUoVklE
RU8pICYmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQor
CiB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlcihIVE1M
TWVkaWFFbGVtZW50JiBlbGVtZW50KQogewogICAgIFttX3dlYlZpZXcgX3NldFVwUGxheWJhY2tD
b250cm9sc01hbmFnZXJGb3JNZWRpYUVsZW1lbnQ6ZWxlbWVudF07CkBAIC05NzUsNTQgKzk4Miw1
NSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigp
CiB7CiAgICAgW21fd2ViVmlldyBfY2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcl07CiB9Ci0j
ZW5kaWYgLy8gUExBVEZPUk0oTUFDKQotI2VuZGlmIC8vIEVOQUJMRShWSURFTykKKworI2VuZGlm
CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50Ojpz
dXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wg
d2l0aEtleWJvYXJkKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZv
ckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgYm9vbCB3aXRoS2V5Ym9hcmQpCiB7CiAg
ICAgU0VMIHNlbGVjdG9yID0gQHNlbGVjdG9yKHdlYlZpZXc6c3VwcG9ydHNGdWxsU2NyZWVuRm9y
RWxlbWVudDp3aXRoS2V5Ym9hcmQ6KTsKICAgICBpZiAoW1ttX3dlYlZpZXcgVUlEZWxlZ2F0ZV0g
cmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkKLSAgICAgICAgcmV0dXJuIENhbGxVSURlbGVn
YXRlUmV0dXJuaW5nQm9vbGVhbihmYWxzZSwgbV93ZWJWaWV3LCBzZWxlY3Rvciwga2l0KGNvbnN0
X2Nhc3Q8V2ViQ29yZTo6RWxlbWVudCo+KGVsZW1lbnQpKSwgd2l0aEtleWJvYXJkKTsKKyAgICAg
ICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVhbihmYWxzZSwgbV93ZWJWaWV3
LCBzZWxlY3Rvciwga2l0KGNvbnN0X2Nhc3Q8V2ViQ29yZTo6RWxlbWVudCo+KCZlbGVtZW50KSks
IHdpdGhLZXlib2FyZCk7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICByZXR1cm4gW21fd2ViVmll
dyBfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDpjb25zdF9jYXN0PFdlYkNvcmU6OkVsZW1l
bnQqPihlbGVtZW50KSB3aXRoS2V5Ym9hcmQ6d2l0aEtleWJvYXJkXTsKKyAgICByZXR1cm4gW21f
d2ViVmlldyBfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDpjb25zdF9jYXN0PFdlYkNvcmU6
OkVsZW1lbnQqPigmZWxlbWVudCkgd2l0aEtleWJvYXJkOndpdGhLZXlib2FyZF07CiAjZWxzZQog
ICAgIHJldHVybiBOTzsKICNlbmRpZgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBT
RUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
Omxpc3RlbmVyOik7CiAgICAgaWYgKFtbbV93ZWJWaWV3IFVJRGVsZWdhdGVdIHJlc3BvbmRzVG9T
ZWxlY3RvcjpzZWxlY3Rvcl0pIHsKLSAgICAgICAgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyKiBs
aXN0ZW5lciA9IFtbV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aEVsZW1l
bnQ6ZWxlbWVudF07Ci0gICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3Is
IGtpdChlbGVtZW50KSwgbGlzdGVuZXIpOworICAgICAgICBXZWJLaXRGdWxsU2NyZWVuTGlzdGVu
ZXIqIGxpc3RlbmVyID0gW1tXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRo
RWxlbWVudDomZWxlbWVudF07CisgICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2Vs
ZWN0b3IsIGtpdCgmZWxlbWVudCksIGxpc3RlbmVyKTsKICAgICAgICAgW2xpc3RlbmVyIHJlbGVh
c2VdOwogICAgIH0KICNpZiAhUExBVEZPUk0oSU9TKQogICAgIGVsc2UKLSAgICAgICAgW21fd2Vi
VmlldyBfZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDplbGVtZW50XTsKKyAgICAgICAgW21fd2Vi
VmlldyBfZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDomZWxlbWVudF07CiAjZW5kaWYKIH0KIAot
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBl
bGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChF
bGVtZW50JiBlbGVtZW50KQogewogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3
OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDpsaXN0ZW5lcjopOwogICAgIGlmIChbW21fd2ViVmll
dyBVSURlbGVnYXRlXSByZXNwb25kc1RvU2VsZWN0b3I6c2VsZWN0b3JdKSB7Ci0gICAgICAgIFdl
YktpdEZ1bGxTY3JlZW5MaXN0ZW5lciogbGlzdGVuZXIgPSBbW1dlYktpdEZ1bGxTY3JlZW5MaXN0
ZW5lciBhbGxvY10gaW5pdFdpdGhFbGVtZW50OmVsZW1lbnRdOwotICAgICAgICBDYWxsVUlEZWxl
Z2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBraXQoZWxlbWVudCksIGxpc3RlbmVyKTsKKyAgICAg
ICAgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyKiBsaXN0ZW5lciA9IFtbV2ViS2l0RnVsbFNjcmVl
bkxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aEVsZW1lbnQ6JmVsZW1lbnRdOworICAgICAgICBDYWxs
VUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBraXQoJmVsZW1lbnQpLCBsaXN0ZW5lcik7
CiAgICAgICAgIFtsaXN0ZW5lciByZWxlYXNlXTsKICAgICB9CiAjaWYgIVBMQVRGT1JNKElPUykK
ICAgICBlbHNlCi0gICAgICAgIFttX3dlYlZpZXcgX2V4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDpl
bGVtZW50XTsKKyAgICAgICAgW21fd2ViVmlldyBfZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50OiZl
bGVtZW50XTsKICNlbmRpZgogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQog
CiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCisKIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojp3cmFw
Q3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBWZWN0b3I8dWludDhfdD4mIHdy
YXBwZWRLZXkpIGNvbnN0CiB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IG1hc3RlcktleTsKQEAgLTEw
NDgsOSArMTA1NiwxMSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6dW53cmFwQ3J5cHRvS2V5KGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgd3JhcHBlZEtleSwgVmVjdG9yPAogCiAgICAgcmV0dXJuIHVu
d3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkobWFzdGVyS2V5LCB3cmFwcGVkS2V5LCBrZXkpOwogfQor
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQorCiB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6aGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKFdlYkNvcmU6OkZyYW1lU2VsZWN0
aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0ZWxlcGhvbmVOdW1iZXJzLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQpCiB7CiAgICAgW21fd2ViVmlldyBfc2VsZWN0
aW9uU2VydmljZUNvbnRyb2xsZXJdLmhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhzZWxlY3Rp
b24sIHRlbGVwaG9uZU51bWJlcnMsIHBvaW50KTsKQEAgLTEwNjQsNiArMTA3NCw3IEBAIGJvb2wg
V2ViQ2hyb21lQ2xpZW50OjpoYXNSZWxldmFudFNlbGVjdGlvblNlcnZpY2VzKGJvb2wgaXNUZXh0
T25seSkgY29uc3QKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdF
VCkgJiYgIVBMQVRGT1JNKElPUykKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFkZFBsYXliYWNr
VGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAgICBbbV93ZWJWaWV3
IF9hZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudDpjb250ZXh0SWRdOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggZjI0ZDY0M2NhMTQxNDMxZWFmNzY4ZDhhN2UyNmZj
MzQwNGFmYWY0Zi4uYmQ4YTRkNTA2YjM5OTJiYWU5MjhkNjg3NmU2YTA0NDYxOTczMDliNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC0zMDIsMTQgKzMwMiwxNCBAQCAr
IChSZWY8V2ViQ29yZTo6RnJhbWU+KV9jcmVhdGVGcmFtZVdpdGhQYWdlOihQYWdlKilwYWdlIGZy
YW1lTmFtZTooY29uc3QgU3RyaW5nJgogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBraXQocGFnZSk7
CiAKICAgICBXZWJGcmFtZSAqZnJhbWUgPSBbW3NlbGYgYWxsb2NdIF9pbml0V2l0aFdlYkZyYW1l
VmlldzpmcmFtZVZpZXcgd2ViVmlldzp3ZWJWaWV3XTsKLSAgICBSZWY8V2ViQ29yZTo6RnJhbWU+
IGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZSwgb3duZXJFbGVtZW50LCBuZXcgV2ViRnJh
bWVMb2FkZXJDbGllbnQoZnJhbWUpKTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVh
dGUocGFnZSwgb3duZXJFbGVtZW50LCBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQoZnJhbWUpKTsK
ICAgICBbZnJhbWUgcmVsZWFzZV07CiAgICAgZnJhbWUtPl9wcml2YXRlLT5jb3JlRnJhbWUgPSBj
b3JlRnJhbWUucHRyKCk7CiAKICAgICBjb3JlRnJhbWUuZ2V0KCkudHJlZSgpLnNldE5hbWUobmFt
ZSk7CiAgICAgaWYgKG93bmVyRWxlbWVudCkgewogICAgICAgICBBU1NFUlQob3duZXJFbGVtZW50
LT5kb2N1bWVudCgpLmZyYW1lKCkpOwotICAgICAgICBvd25lckVsZW1lbnQtPmRvY3VtZW50KCku
ZnJhbWUoKS0+dHJlZSgpLmFwcGVuZENoaWxkKGNvcmVGcmFtZS5wdHIoKSk7CisgICAgICAgIG93
bmVyRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpLT50cmVlKCkuYXBwZW5kQ2hpbGQoY29yZUZy
YW1lLmdldCgpKTsKICAgICB9CiAKICAgICBjb3JlRnJhbWUuZ2V0KCkuaW5pdCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggMTRlOTcxMGQxNWQ3OWJmM2I1
NWM0MDA5ZTU2Njg0YTBlZTNkNzgzNy4uMjk4MTUzZGYzYzRhZDdmNzRhYjI1Zjk4MDliZmRkYjIy
ZDgwNzM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC01
OTMsNyArNTkzLDcgQEAgTlBFcnJvciBQbHVnaW5WaWV3OjpkZXN0cm95U3RyZWFtKE5QU3RyZWFt
KiBzdHJlYW0sIE5QUmVhc29uIHJlYXNvbikKIHZvaWQgUGx1Z2luVmlldzo6c3RhdHVzKGNvbnN0
IGNoYXIqIG1lc3NhZ2UpCiB7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX3BhcmVudEZyYW1lLT5w
YWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQobV9wYXJlbnRG
cmFtZS5nZXQoKSwgU3RyaW5nOjpmcm9tVVRGOChtZXNzYWdlKSk7CisgICAgICAgIHBhZ2UtPmNo
cm9tZSgpLnNldFN0YXR1c2JhclRleHQoKm1fcGFyZW50RnJhbWUsIFN0cmluZzo6ZnJvbVVURjgo
bWVzc2FnZSkpOwogfQogCiBOUEVycm9yIFBsdWdpblZpZXc6OnNldFZhbHVlKE5QUFZhcmlhYmxl
IHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSkKQEAgLTc5Myw3ICs3OTMsNyBAQCBQbHVnaW5WaWV3OjpQ
bHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2lu
UGFja2FnZSogcAogdm9pZCBQbHVnaW5WaWV3Ojpmb2N1c1BsdWdpbkVsZW1lbnQoKQogewogICAg
IGlmIChQYWdlKiBwYWdlID0gbV9wYXJlbnRGcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5m
b2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChtX2VsZW1lbnQsIG1fcGFyZW50RnJh
bWUpOworICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudCht
X2VsZW1lbnQsICptX3BhcmVudEZyYW1lKTsKICAgICBlbHNlCiAgICAgICAgIG1fcGFyZW50RnJh
bWUtPmRvY3VtZW50KCktPnNldEZvY3VzZWRFbGVtZW50KG1fZWxlbWVudCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApp
bmRleCBhNzczYjFhYjE0MTc0ZTAyMGM2MmQ5ZDA0Nzg2ZDJhMjgyMWNiNzg0Li5hYjY1MTQ0NGY5
MjE5YTY3NzZiZjg3ZWIxOGIyODFjYmQyNDEyMGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTE4OSwxNSArMTg5
LDE1IEBAIHN0YXRpYyBDT01QdHI8SVByb3BlcnR5QmFnPiBjcmVhdGVXaW5kb3dGZWF0dXJlc1By
b3BlcnR5QmFnKGNvbnN0IFdpbmRvd0ZlYXR1cmVzCiAgICAgcmV0dXJuIENPTVB0cjxJUHJvcGVy
dHlCYWc+KEFkb3B0Q09NLCBDT01Qcm9wZXJ0eUJhZzxDT01WYXJpYW50Pjo6YWRvcHQobWFwKSk7
CiB9CiAKLVBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwg
Y29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywg
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbikKK1BhZ2UqIFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVz
dCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlv
biYgbmF2aWdhdGlvbkFjdGlvbikKIHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IGRlbGVn
YXRlID0gdWlEZWxlZ2F0ZSgpOwogICAgIGlmICghZGVsZWdhdGUpCiAgICAgICAgIHJldHVybiAw
OwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQo
KSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkp
Ci0gICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7Cisg
ICAgaWYgKGZyYW1lLmRvY3VtZW50KCkgJiYgZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVu
dEZ1bGxTY3JlZW5FbGVtZW50KCkpCisgICAgICAgIGZyYW1lLmRvY3VtZW50KCktPndlYmtpdENh
bmNlbEZ1bGxTY3JlZW4oKTsKICNlbmRpZgogCiAgICAgQ09NUHRyPFdlYk11dGFibGVVUkxSZXF1
ZXN0PiByZXF1ZXN0ID0gYWRvcHRDT00oV2ViTXV0YWJsZVVSTFJlcXVlc3Q6OmNyZWF0ZUluc3Rh
bmNlKFJlc291cmNlUmVxdWVzdChuYXZpZ2F0aW9uQWN0aW9uLnVybCgpKSkpOwpAQCAtMzYxLDEy
ICszNjEsMTIgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUq
IGZyYW1lKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lJiBmcmFtZSkKIHsKICAgICBCT09MIHJlc3Vs
dCA9IFRSVUU7CiAgICAgSVdlYlVJRGVsZWdhdGUqIHVpOwogICAgIGlmIChTVUNDRUVERUQobV93
ZWJWaWV3LT51aURlbGVnYXRlKCZ1aSkpICYmIHVpKSB7Ci0gICAgICAgIFdlYkZyYW1lKiB3ZWJG
cmFtZSA9IGtpdChmcmFtZSk7CisgICAgICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IGtpdCgmZnJh
bWUpOwogICAgICAgICB1aS0+cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2Uo
bV93ZWJWaWV3LCBCU3RyaW5nKG1lc3NhZ2UpLCB3ZWJGcmFtZSwgJnJlc3VsdCk7CiAgICAgICAg
IHVpLT5SZWxlYXNlKCk7CiAgICAgfQpAQCAtMzkzLDE0ICszOTMsMTQgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmNsb3NlV2luZG93U29vbigpCiAgICAgbV93ZWJWaWV3LT5jbG9zZVdpbmRvd1Nv
b24oKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFt
ZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZh
U2NyaXB0QWxlcnQoRnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgQ09NUHRy
PElXZWJVSURlbGVnYXRlPiB1aTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxl
Z2F0ZSgmdWkpKSkKICAgICAgICAgdWktPnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3Nh
Z2UobV93ZWJWaWV3LCBCU3RyaW5nKG1lc3NhZ2UpKTsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQor
Ym9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQogewogICAgIEJPT0wgcmVzdWx0ID0gRkFMU0U7CiAgICAgQ09NUHRy
PElXZWJVSURlbGVnYXRlPiB1aTsKQEAgLTQwOSw3ICs0MDksNyBAQCBib29sIFdlYkNocm9tZUNs
aWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
CiAgICAgcmV0dXJuICEhcmVzdWx0OwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2
YVNjcmlwdFByb21wdChGcmFtZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1
bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKIHsKICAgICBDT01QdHI8SVdlYlVJ
RGVsZWdhdGU+IHVpOwogICAgIGlmIChGQUlMRUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aSkp
KQpAQCAtNTA4LDcgKzUwOCw3IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGllbnQ6
OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHZpZXdXaW5kb3c7CiB9CiAK
LXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3Qg
SW50U2l6ZSYpIGNvbnN0Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdl
ZChGcmFtZSYsIGNvbnN0IEludFNpemUmKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CkBAIC01NDAsNyArNTQwLDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVuYXZh
aWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFJlbmRlckVtYmVkZGVkT2JqZWMKICAgICByZXR1
cm4gdWlEZWxlZ2F0ZVByaXZhdGUzOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6dW5hdmFp
bGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlckVtYmVkZGVk
T2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJl
YXNvbikgY29uc3QKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWQoRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVu
YXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdAogewog
ICAgIEFTU0VSVF9VTlVTRUQocGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIHBsdWdpblVuYXZh
aWxhYmlsaXR5UmVhc29uID09IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5NaXNzaW5nKTsK
IApAQCAtNTUyLDcgKzU1Miw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBs
dWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVyRW1iCiAgICAgaWYgKCF1
aURlbGVnYXRlUHJpdmF0ZTMpCiAgICAgICAgIHJldHVybjsKIAotICAgIENPTVB0cjxJRE9NRWxl
bWVudD4gZShBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoZWxlbWVudCkpOwor
ICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZShBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5z
dGFuY2UoJmVsZW1lbnQpKTsKICAgICB1aURlbGVnYXRlUHJpdmF0ZTMtPmRpZFByZXNzTWlzc2lu
Z1BsdWdpbkJ1dHRvbihlLmdldCgpKTsKIH0KIApAQCAtNTYxLDIxICs1NjEsMjEgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlwLCBUZXh0RGly
ZWN0aW9uKQogICAgIG1fd2ViVmlldy0+c2V0VG9vbFRpcCh0b29sVGlwKTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpwcmludChGcmFtZSYgZnJhbWUpCiB7CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURl
bGVnYXRlOwogICAgIGlmIChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVn
YXRlKSkpCi0gICAgICAgIHVpRGVsZWdhdGUtPnByaW50RnJhbWUobV93ZWJWaWV3LCBraXQoZnJh
bWUpKTsKKyAgICAgICAgdWlEZWxlZ2F0ZS0+cHJpbnRGcmFtZShtX3dlYlZpZXcsIGtpdCgmZnJh
bWUpKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShG
cmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyLCBEYXRhYmFzZURl
dGFpbHMpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1l
JiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIsIERhdGFiYXNlRGV0YWls
cykKIHsKLSAgICBDT01QdHI8V2ViU2VjdXJpdHlPcmlnaW4+IG9yaWdpbihBZG9wdENPTSwgV2Vi
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUluc3RhbmNlKCZmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKSkpOworICAgIENPTVB0cjxXZWJTZWN1cml0eU9yaWdpbj4gb3JpZ2luKEFkb3B0
Q09NLCBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlSW5zdGFuY2UoJmZyYW1lLmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCkpKTsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdh
dGU7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUp
KSkgewogICAgICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGVQcml2YXRlPiB1aURlbGVnYXRlUHJp
dmF0ZShRdWVyeSwgdWlEZWxlZ2F0ZSk7CiAgICAgICAgIGlmICh1aURlbGVnYXRlUHJpdmF0ZSkK
LSAgICAgICAgICAgIHVpRGVsZWdhdGVQcml2YXRlLT5leGNlZWRlZERhdGFiYXNlUXVvdGEobV93
ZWJWaWV3LCBraXQoZnJhbWUpLCBvcmlnaW4uZ2V0KCksIEJTdHJpbmcoZGF0YWJhc2VJZGVudGlm
aWVyKSk7CisgICAgICAgICAgICB1aURlbGVnYXRlUHJpdmF0ZS0+ZXhjZWVkZWREYXRhYmFzZVF1
b3RhKG1fd2ViVmlldywga2l0KCZmcmFtZSksIG9yaWdpbi5nZXQoKSwgQlN0cmluZyhkYXRhYmFz
ZUlkZW50aWZpZXIpKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogcmVt
b3ZlIHRoaXMgd29ya2Fyb3VuZCBvbmNlIHNoaXBwaW5nIFNhZmFyaSBoYXMgdGhlIG5lY2Vzc2Fy
eSBkZWxlZ2F0ZSBpbXBsZW1lbnRlZC4KICAgICAgICAgICAgIFdDSEFSIHBhdGhbTUFYX1BBVEhd
OwpAQCAtNjEzLDcgKzYxMyw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkTWF4QXBw
Q2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEoU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNo
ZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90KQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC03MTcsMTIgKzcxNywxMiBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6c2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpCiAgICAgbV93
ZWJWaWV3LT5zZXRMYXN0Q3Vyc29yKDo6R2V0Q3Vyc29yKCkpOwogfQogCi12b2lkIFdlYkNocm9t
ZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xh
eWVyKiBncmFwaGljc0xheWVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFw
aGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBt
X3dlYlZpZXctPnNldFJvb3RDaGlsZExheWVyKGdyYXBoaWNzTGF5ZXIpOwogfQogCi12b2lkIFdl
YkNocm9tZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lKiwgR3Jh
cGhpY3NMYXllciopCit2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlHcmFw
aGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopCiB7CiAgICAgLy8gRklYTUU6IElmIHdl
IHdhbnQgdmlldy1yZWxhdGl2ZSBwYWdlIG92ZXJsYXlzIGluIExlZ2FjeSBXZWJLaXQgb24gV2lu
ZG93cywgdGhpcyB3b3VsZCBiZSB0aGUgcGxhY2UgdG8gaG9vayB0aGVtIHVwLgogfQpAQCAtNzUz
LDcgKzc1Myw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c1ZpZGVvRnVsbHNjcmVl
bihIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxl
bWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYg
dmlkZW9FbGVtZW50LCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUp
CiB7CiAgICAgbV93ZWJWaWV3LT5lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCh2
aWRlb0VsZW1lbnQpOwogfQpAQCAtNzgxLDU5ICs3ODEsNjEgQEAgYm9vbCBXZWJDaHJvbWVDbGll
bnQ6Omhhc09wZW5lZFBvcHVwKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlZlB0
cjxQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCogY2xpZW50KSBjb25zdAorUmVmUHRyPFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50Ojpj
cmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVXaW4oY2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBQb3B1cE1lbnVXaW4oJmNsaWVudCkpOwogfQogCi1SZWZQdHI8U2VhcmNoUG9wdXBN
ZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51V2luKGNsaWVudCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51V2luKCZjbGllbnQpKTsKIH0K
IAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBw
b3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgcmVx
dWVzdGluZ0tleWJvYXJkQWNjZXNzKQorCitib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNG
dWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50LCBib29sIHJlcXVlc3Rp
bmdLZXlib2FyZEFjY2VzcykKIHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdh
dGU7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUp
KSkgewogICAgICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGVQcml2YXRlND4gdWlEZWxlZ2F0ZVBy
aXZhdGU0KFF1ZXJ5LCB1aURlbGVnYXRlKTsKICAgICAgICAgQk9PTCBzdXBwb3J0cyA9IEZBTFNF
OwotICAgICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00sIERPTUVs
ZW1lbnQ6OmNyZWF0ZUluc3RhbmNlKGNvbnN0X2Nhc3Q8RWxlbWVudCo+KGVsZW1lbnQpKSk7Cisg
ICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxlbWVudChBZG9wdENPTSwgRE9NRWxlbWVu
dDo6Y3JlYXRlSW5zdGFuY2UoY29uc3RfY2FzdDxFbGVtZW50Kj4oJmVsZW1lbnQpKSk7CiAKICAg
ICAgICAgaWYgKHVpRGVsZWdhdGVQcml2YXRlNCAmJiBTVUNDRUVERUQodWlEZWxlZ2F0ZVByaXZh
dGU0LT5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGRvbUVsZW1lbnQuZ2V0KCksIHJlcXVl
c3RpbmdLZXlib2FyZEFjY2VzcywgJnN1cHBvcnRzKSkpCiAgICAgICAgICAgICByZXR1cm4gc3Vw
cG9ydHM7CiAgICAgfQogCi0gICAgcmV0dXJuIG1fd2ViVmlldy0+c3VwcG9ydHNGdWxsU2NyZWVu
Rm9yRWxlbWVudChlbGVtZW50LCByZXF1ZXN0aW5nS2V5Ym9hcmRBY2Nlc3MpOworICAgIHJldHVy
biBtX3dlYlZpZXctPnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoJmVsZW1lbnQsIHJlcXVl
c3RpbmdLZXlib2FyZEFjY2Vzcyk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1
bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogewogICAgIENP
TVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2Vi
Vmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CiAgICAgICAgIENPTVB0cjxJV2ViVUlE
ZWxlZ2F0ZVByaXZhdGU0PiB1aURlbGVnYXRlUHJpdmF0ZTQoUXVlcnksIHVpRGVsZWdhdGUpOwot
ICAgICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00sIERPTUVsZW1l
bnQ6OmNyZWF0ZUluc3RhbmNlKGVsZW1lbnQpKTsKKyAgICAgICAgQ09NUHRyPElET01FbGVtZW50
PiBkb21FbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZSgmZWxlbWVu
dCkpOwogICAgICAgICBpZiAodWlEZWxlZ2F0ZVByaXZhdGU0ICYmIFNVQ0NFRURFRCh1aURlbGVn
YXRlUHJpdmF0ZTQtPmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZG9tRWxlbWVudC5nZXQoKSkp
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0gCiAKLSAgICBtX3dlYlZpZXctPnNldEZ1bGxT
Y3JlZW5FbGVtZW50KGVsZW1lbnQpOworICAgIG1fd2ViVmlldy0+c2V0RnVsbFNjcmVlbkVsZW1l
bnQoJmVsZW1lbnQpOwogICAgIG1fd2ViVmlldy0+ZnVsbFNjcmVlbkNvbnRyb2xsZXIoKS0+ZW50
ZXJGdWxsU2NyZWVuKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0
RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBDT01QdHI8SVdl
YlVJRGVsZWdhdGU+IHVpRGVsZWdhdGU7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVp
RGVsZWdhdGUoJnVpRGVsZWdhdGUpKSkgewogICAgICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGVQ
cml2YXRlND4gdWlEZWxlZ2F0ZVByaXZhdGU0KFF1ZXJ5LCB1aURlbGVnYXRlKTsKLSAgICAgICAg
Q09NUHRyPElET01FbGVtZW50PiBkb21FbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVh
dGVJbnN0YW5jZShlbGVtZW50KSk7CisgICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxl
bWVudChBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoJmVsZW1lbnQpKTsKICAg
ICAgICAgaWYgKHVpRGVsZWdhdGVQcml2YXRlNCAmJiBTVUNDRUVERUQodWlEZWxlZ2F0ZVByaXZh
dGU0LT5leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoZG9tRWxlbWVudC5nZXQoKSkpKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEFTU0VSVChlbGVtZW50ID09IG1fd2ViVmlldy0+
ZnVsbFNjcmVlbkVsZW1lbnQoKSk7CisgICAgQVNTRVJUKCZlbGVtZW50ID09IG1fd2ViVmlldy0+
ZnVsbFNjcmVlbkVsZW1lbnQoKSk7CiAgICAgbV93ZWJWaWV3LT5mdWxsU2NyZWVuQ29udHJvbGxl
cigpLT5leGl0RnVsbFNjcmVlbigpOwogfQorCiAjZW5kaWYKIAogdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OkFYU3RhcnRGcmFtZUxvYWQoKQpAQCAtODUyLDEwICs4NTQsMTAgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OkFYRmluaXNoRnJhbWVMb2FkKCkKICAgICAgICAgZGVsZWdhdGUtPmZpcmVGcmFt
ZUxvYWRGaW5pc2hlZEV2ZW50cygpOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxk
VXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyogZnJhbWVWaWV3KSBj
b25zdAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1l
Vmlldyhjb25zdCBGcmFtZVZpZXcmIGZyYW1lVmlldykgY29uc3QKIHsKICNpZiAhVVNFKENBSVJP
KQotICAgIHJldHVybiBmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5mcmFtZSgpLmlzTWFpbkZyYW1l
KCk7CisgICAgcmV0dXJuIGZyYW1lVmlldy5mcmFtZSgpLmlzTWFpbkZyYW1lKCk7CiAjZWxzZQog
ICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA5Mjg3MmI0MWMxMmZiMzE1ZTU0MWVj
YmRiOTVkYmNiMTU2NjI3MmRjLi4xODMxMmQ2YmM0NGM2N2NkODQxMjQwMTkwOGZiZDY0MThlZTYy
NTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaApAQCAtMzcsMTM3ICszNywxMzcgQEAgY2xhc3MgV2ViRGVza3RvcE5vdGlmaWNh
dGlvbnNEZWxlZ2F0ZTsKIAogaW50ZXJmYWNlIElXZWJVSURlbGVnYXRlOwogCi1jbGFzcyBXZWJD
aHJvbWVDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6Q2hyb21lQ2xpZW50IHsKK2NsYXNzIFdlYkNo
cm9tZUNsaWVudCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpDaHJvbWVDbGllbnQgewogcHVibGlj
OgogICAgIFdlYkNocm9tZUNsaWVudChXZWJWaWV3Kik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2hy
b21lRGVzdHJveWVkKCk7CisgICAgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKSBmaW5hbDsKIAotICAg
IHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwot
ICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKTsKKyAgICB2b2lkIHNl
dFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CisgICAgV2ViQ29y
ZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKSBmaW5hbDsKICAgICAKLSAgICB2aXJ0dWFsIFdlYkNv
cmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVj
dCgpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7Ci0gICAgdmlydHVhbCB2b2lk
IHVuZm9jdXMoKTsKKyAgICB2b2lkIGZvY3VzKCkgZmluYWw7CisgICAgdm9pZCB1bmZvY3VzKCkg
ZmluYWw7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuVGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGly
ZWN0aW9uKTsKLSAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0
aW9uKTsKKyAgICBib29sIGNhblRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbikgZmlu
YWw7CisgICAgdm9pZCB0YWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pIGZpbmFsOwog
Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChXZWJDb3JlOjpFbGVtZW50
Kik7Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUq
KTsKKyAgICB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChXZWJDb3JlOjpFbGVtZW50KikgZmlu
YWw7CisgICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKikgZmluYWw7
CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFt
ZSosIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5k
b3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2hvdygpOworICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3Jl
OjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3Jl
OjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBmaW5h
bDsKKyAgICB2b2lkIHNob3coKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5Nb2Rh
bCgpOwotICAgIHZpcnR1YWwgdm9pZCBydW5Nb2RhbCgpOworICAgIGJvb2wgY2FuUnVuTW9kYWwo
KSBmaW5hbDsKKyAgICB2b2lkIHJ1bk1vZGFsKCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wpOwotICAgIHZpcnR1YWwgYm9vbCB0b29sYmFyc1Zpc2li
bGUoKTsKKyAgICB2b2lkIHNldFRvb2xiYXJzVmlzaWJsZShib29sKSBmaW5hbDsKKyAgICBib29s
IHRvb2xiYXJzVmlzaWJsZSgpIGZpbmFsOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0
dXNiYXJWaXNpYmxlKGJvb2wpOwotICAgIHZpcnR1YWwgYm9vbCBzdGF0dXNiYXJWaXNpYmxlKCk7
CisgICAgdm9pZCBzZXRTdGF0dXNiYXJWaXNpYmxlKGJvb2wpIGZpbmFsOworICAgIGJvb2wgc3Rh
dHVzYmFyVmlzaWJsZSgpIGZpbmFsOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxi
YXJzVmlzaWJsZShib29sKTsKLSAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyc1Zpc2libGUoKTsK
KyAgICB2b2lkIHNldFNjcm9sbGJhcnNWaXNpYmxlKGJvb2wpIGZpbmFsOworICAgIGJvb2wgc2Ny
b2xsYmFyc1Zpc2libGUoKSBmaW5hbDsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TWVudWJh
clZpc2libGUoYm9vbCk7Ci0gICAgdmlydHVhbCBib29sIG1lbnViYXJWaXNpYmxlKCk7CisgICAg
dm9pZCBzZXRNZW51YmFyVmlzaWJsZShib29sKSBmaW5hbDsKKyAgICBib29sIG1lbnViYXJWaXNp
YmxlKCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpOworICAg
IHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGFkZE1l
c3NhZ2VUb0NvbnNvbGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29u
c3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNv
bHVtbk51bWJlciwgY29uc3QgV1RGOjpTdHJpbmcmIHVybCk7CisgICAgdm9pZCBhZGRNZXNzYWdl
VG9Db25zb2xlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFdU
Rjo6U3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5O
dW1iZXIsIGNvbnN0IFdURjo6U3RyaW5nJiB1cmwpIGZpbmFsOwogCi0gICAgdmlydHVhbCBib29s
IGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpOwotICAgIHZpcnR1YWwgYm9vbCBydW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIFdlYkNv
cmU6OkZyYW1lKiBmcmFtZSk7CisgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoKSBmaW5hbDsKKyAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBX
VEY6OlN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKIAotICAgIHZpcnR1
YWwgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKTsKKyAgICB2b2lkIGNsb3NlV2luZG93U29vbigpIGZp
bmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFt
ZSosIGNvbnN0IFdURjo6U3RyaW5nJik7Ci0gICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRD
b25maXJtKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAgICB2aXJ0dWFs
IGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVmYXVsdFZhbHVlLCBXVEY6OlN0cmlu
ZyYgcmVzdWx0KTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBXVEY6
OlN0cmluZyYpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lJiwg
Y29uc3QgV1RGOjpTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJt
KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV1RGOjpTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHJ1
bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXVEY6OlN0cmluZyYgbWVz
c2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgV1RGOjpTdHJpbmcmIHJlc3Vs
dCkgZmluYWw7CisgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFdURjo6U3RyaW5nJikg
ZmluYWw7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OktleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlN
b2RlKCk7CisgICAgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5h
bDsKIAotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmll
dyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVD
b250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHZpcnR1
YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
Y2xpcFJlY3QpOworICAgIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIGludmFsaWRhdGVDb250ZW50
c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOworICAgIHZvaWQg
c2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0
KSBmaW5hbDsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9Sb290Vmll
dyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0OwotICAgIHZpcnR1YWwgV2ViQ29yZTo6
SW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdDsK
LSAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25z
dDsKLSAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSos
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdDsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBz
Y3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3QgZmluYWw7Cisg
ICAgV2ViQ29yZTo6SW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSBjb25zdCBmaW5hbDsKKyAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xp
ZW50KCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6
OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0IGZpbmFsOwogCi0gICAgdmly
dHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1
bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVW5h
dmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmpl
Y3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQg
dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJDb3Jl
OjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0
OworICAgIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBmaW5hbCB7IH0KKyAg
ICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1
bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSBmaW5hbDsKKyAgICBib29sIHNob3VsZFVuYXZh
aWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0
OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7CisgICAgdm9pZCB1bmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVudCYsIFdlYkNvcmU6OlJl
bmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmlu
YWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXVEY6OlN0cmluZyYsIFdl
YkNvcmU6OlRleHREaXJlY3Rpb24pOworICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXVEY6OlN0
cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24pIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lk
IHByaW50KFdlYkNvcmU6OkZyYW1lKik7CisgICAgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSYp
IGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3Jl
OjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKTsK
KyAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdU
Rjo6U3RyaW5nJiwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKIAotICAgIHZpcnR1
YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpOwotICAg
IHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKTsKKyAgICB2b2lkIHJl
YWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkgZmluYWw7CisgICAgdm9p
ZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9p
ZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciYpOwot
ICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmlu
Zz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpOworICAgIHZvaWQgcnVuT3BlblBhbmVsKFdl
YkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6RmlsZUNob29zZXImKSBmaW5hbDsKKyAgICB2b2lkIGxv
YWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJ
Y29uTG9hZGVyJikgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdl
YkNvcmU6OkN1cnNvciYpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1v
dXNlTW92ZXMoYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1cnJl
bnRDdXJzb3IoKTsKKyAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBm
aW5hbDsKKyAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSBmaW5h
bDsKKyAgICB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKSBmaW5hbDsKIAog
ICAgIC8vIFBhc3MgMCBhcyB0aGUgR3JhcGhpY3NMYXllciB0byBkZXRhdGNoIHRoZSByb290IGxh
eWVyLgotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpG
cmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKLSAgICB2b2lkIGF0dGFjaFZpZXdPdmVy
bGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZy
YW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOworICAgIHZvaWQgYXR0YWNoVmll
d092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIGZpbmFsOwogICAgIC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgbmV4
dCB0aW1lIGNvbnRlbnQgaXMgZHJhd24gdG8gdGhlIHdpbmRvdywKICAgICAvLyB0aGUgY2hhbmdl
cyBhcHBlYXIgb24gdGhlIHNjcmVlbiBpbiBzeW5jaHJvbnkgd2l0aCB1cGRhdGVzIHRvIEdyYXBo
aWNzTGF5ZXJzLgotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hy
b25pemF0aW9uKCkgeyB9CisgICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25p
emF0aW9uKCkgZmluYWwgeyB9CiAgICAgLy8gU2V0cyBhIGZsYWcgdG8gc3BlY2lmeSB0aGF0IHRo
ZSB2aWV3IG5lZWRzIHRvIGJlIHVwZGF0ZWQsIHNvIHdlIG5lZWQKICAgICAvLyB0byBkbyBhbiBl
YWdlciBsYXlvdXQgYmVmb3JlIHRoZSBkcmF3aW5nLgotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVs
ZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xh
eWVyRmx1c2goKSBmaW5hbDsKIAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKEFWRk9VTkRBVElP
TikKLSAgICBXZWJDb3JlOjpHcmFwaGljc0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2aWNlQWRh
cHRlcigpIGNvbnN0IG92ZXJyaWRlOworICAgIFdlYkNvcmU6OkdyYXBoaWNzRGV2aWNlQWRhcHRl
ciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAotICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNv
bnN0IHsgfQorICAgIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSBjb25zdCBmaW5hbCB7IH0KIAogI2lmIEVOQUJMRShWSURFTykKLSAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpOwotICAgIHZp
cnR1YWwgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhU
TUxWaWRlb0VsZW1lbnQmKTsKKyAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgZmluYWw7Cisg
ICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1M
VmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlKSBmaW5hbDsKKyAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQotICAg
IHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50KiBub3RpZmljYXRpb25QcmVzZW50
ZXIoKSBjb25zdCB7IHJldHVybiByZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vdGlmaWNhdGlv
bkNsaWVudCo+KG1fbm90aWZpY2F0aW9uc0RlbGVnYXRlLmdldCgpKTsgfQorICAgIFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbkNsaWVudCogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQqPiht
X25vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5nZXQoKSk7IH0KICNlbmRpZgogCi0gICAgdmlydHVhbCBi
b29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7Ci0gICAgdmlydHVhbCBi
b29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKLSAg
ICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFJlZlB0
cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVD
bGllbnQqKSBjb25zdDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25z
dDsKKyAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgZmluYWw7
CisgICAgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9u
KCkgZmluYWw7CisgICAgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0IGZpbmFsOworICAgIFJl
ZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1l
bnVDbGllbnQmKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29u
c3QgZmluYWw7CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgdmlydHVhbCBib29s
IHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJv
b2wgd2l0aEtleWJvYXJkKTsKLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxl
bWVudChXZWJDb3JlOjpFbGVtZW50Kik7Ci0gICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Kik7CisgICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3Jl
ZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmLCBib29sIHdpdGhLZXlib2FyZCkg
ZmluYWw7CisgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1l
bnQmKSBmaW5hbDsKKyAgICB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpF
bGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAotICAgIHZvaWQgd2hlZWxFdmVudEhhbmRsZXJzQ2hh
bmdlZChib29sKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIHdoZWVsRXZlbnRIYW5kbGVyc0NoYW5n
ZWQoYm9vbCkgZmluYWwgeyB9CiAKICAgICBXZWJWaWV3KiB3ZWJWaWV3KCkgeyByZXR1cm4gbV93
ZWJWaWV3OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgQVhTdGFydEZyYW1lTG9hZCgpOwotICAgIHZp
cnR1YWwgdm9pZCBBWEZpbmlzaEZyYW1lTG9hZCgpOworICAgIHZvaWQgQVhTdGFydEZyYW1lTG9h
ZCgpIGZpbmFsOworICAgIHZvaWQgQVhGaW5pc2hGcmFtZUxvYWQoKSBmaW5hbDsKIAotICAgIGJv
b2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1l
VmlldyopIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9y
RnJhbWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyYpIGNvbnN0IGZpbmFsOwogCiBwcml2
YXRlOgogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCmluZGV4IDEwYjVjZWVkYzNlNzBkNTBhZGMyNzgyMTE5NDhlZjkwMGU2MGJjNmYuLjNk
MTNjZDQ0NmM2YWY3N2EwZWNmMGVlZWQ4YzFjOGI1N2I2OWFhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKQEAgLTEwMjUsNyArMTAyNSw3IEBAIFJlZlB0cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmNyZWF0ZUZyYW1lKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hCiAgICAgUmVm
UHRyPEZyYW1lPiBjaGlsZEZyYW1lID0gd2ViRnJhbWUtPmNyZWF0ZVN1YmZyYW1lV2l0aE93bmVy
RWxlbWVudChtX3dlYkZyYW1lLT53ZWJWaWV3KCksIGNvcmVGcmFtZS0+cGFnZSgpLCAmb3duZXJF
bGVtZW50KTsKIAogICAgIGNoaWxkRnJhbWUtPnRyZWUoKS5zZXROYW1lKG5hbWUpOwotICAgIGNv
cmVGcmFtZS0+dHJlZSgpLmFwcGVuZENoaWxkKGNoaWxkRnJhbWUpOworICAgIGNvcmVGcmFtZS0+
dHJlZSgpLmFwcGVuZENoaWxkKCpjaGlsZEZyYW1lKTsKICAgICBjaGlsZEZyYW1lLT5pbml0KCk7
CiAKICAgICBjb3JlRnJhbWUtPmxvYWRlcigpLmxvYWRVUkxJbnRvQ2hpbGRGcmFtZSh1cmwsIHJl
ZmVycmVyLCBjaGlsZEZyYW1lLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggNTE3NWYw
MDJkNjE3MmJlMTYwODAzZjQ3M2UxZGFlMmUwNDM2MWI1Ny4uOTM3MDE5ZGJjYzFjYWQ2MWUyYTJi
MDQ5NTU4NWJhNWNiZDAyZjQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTU4NTMsNyArNTg1
Myw3IEBAIEhSRVNVTFQgV2ViVmlldzo6c3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25O
YW1lKF9Jbl8gQlNUUiBhcHBsaWNhdGlvbk5hbWUsCiBIUkVTVUxUIFdlYlZpZXc6OmNsZWFyRm9j
dXNOb2RlKCkKIHsKICAgICBpZiAobV9wYWdlKQotICAgICAgICBtX3BhZ2UtPmZvY3VzQ29udHJv
bGxlcigpLnNldEZvY3VzZWRFbGVtZW50KDAsIDApOworICAgICAgICBtX3BhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIsIG1fcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkpOwogICAgIHJldHVybiBTX09LOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmNwcAppbmRleCBlMTE1NTI5MTA2NDcwMWI4OGI3YjMyYWJjZDFmMmU2NTQzM2Uy
ODllLi40MjFjNzQ1N2M5MDNiNDdlMmUxYTdiNDg4OTg4MWY1N2MzMGVhYzRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xs
aW5nVHJlZS5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6
OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRAog
ICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3Rz
U2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwpOwogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdU
cmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwg
U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxTY3JvbGxpbmdUcmVlTm9kZT4gUmVtb3RlU2Ny
b2xsaW5nVHJlZTo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9k
ZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7CiAgICAgc3dpdGNoIChub2RlVHlwZSkg
ewogICAgIGNhc2UgRnJhbWVTY3JvbGxpbmdOb2RlOgpAQCAtMTI0LDE0ICsxMjQsMTUgQEAgUGFz
c1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3JlYXRlU2Ny
b2xsaW5nVHJlZU5vZGUoU2Nyb2wKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVJT1M6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICNlbHNlCiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg
YnJlYWs7CiAjZW5kaWYKICAgICBjYXNlIEZpeGVkTm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9s
bGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICBjYXNlIFN0aWNr
eU5vZGU6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZTo6Y3JlYXRlKCp0
aGlzLCBub2RlSUQpOwogICAgIH0KLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0
aGlzLCBub2RlSUQpOwogfQogCiB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OmN1cnJlbnRTbmFw
UG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIHVuc2lnbmVkIGhv
cml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAppbmRleCBkNjViMmY1
ZWQ2ZGRmNTdlYzQ0MGRmNDkwZDJlMTE2OGM4ZWMwNWM5Li43MzE4Y2NjODE0Y2E1NzE2ZGM3MGMy
NGI2YzQ0MTc4ZDI1NmNkYTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
U2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaApAQCAtMzYsNyArMzYsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eTsKIAotY2xhc3MgUmVtb3RlU2Nyb2xsaW5nVHJlZSA6IHB1YmxpYyBXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlIHsKK2NsYXNzIFJlbW90ZVNjcm9sbGluZ1RyZWUgZmluYWwgOiBwdWJsaWMgV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxSZW1vdGVTY3JvbGxp
bmdUcmVlPiBjcmVhdGUoUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSYpOwogICAgIHZp
cnR1YWwgflJlbW90ZVNjcm9sbGluZ1RyZWUoKTsKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kU2Nyb2xsKCkgb3ZlcnJpZGU7CiAjZW5k
aWYKIAotICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNj
cm9sbGluZ1RyZWVOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVUeXBlLCBXZWJDb3JlOjpTY3Jv
bGxpbmdOb2RlSUQpIG92ZXJyaWRlOworICAgIFJlZjxXZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9k
ZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZVR5cGUsIFdl
YkNvcmU6OlNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eSYgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5OwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCA4MDU5YWQ1NWFhZTMyZjhlNTNhNzAxOWI1
Mjg3ZWU4YjA5NDBiOTE0Li5hNzlkMTBhOWQ1MDc3MTA0NWNlNTgzMGVhNTczNzRjODQxODU2Mjdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCkBAIC0zNjgsMjIgKzM2OCwyMiBAQCBX
S0J1bmRsZUJhY2tGb3J3YXJkTGlzdFJlZiBXS0J1bmRsZVBhZ2VHZXRCYWNrRm9yd2FyZExpc3Qo
V0tCdW5kbGVQYWdlUmVmIHBhZ2VSZQogCiB2b2lkIFdLQnVuZGxlUGFnZUluc3RhbGxQYWdlT3Zl
cmxheShXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQYWdlT3ZlcmxheVJlZiBwYWdl
T3ZlcmxheVJlZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgpLT5wYWdlT3Zl
cmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkodG9JbXBsKHBhZ2VPdmVybGF5UmVm
KS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZh
ZGUpOworICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSgqdG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92
ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogfQog
CiB2b2lkIFdLQnVuZGxlUGFnZVVuaW5zdGFsbFBhZ2VPdmVybGF5KFdLQnVuZGxlUGFnZVJlZiBw
YWdlUmVmLCBXS0J1bmRsZVBhZ2VPdmVybGF5UmVmIHBhZ2VPdmVybGF5UmVmKQogewotICAgIHRv
SW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5z
dGFsbFBhZ2VPdmVybGF5KHRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdl
YkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICB0b0ltcGwocGFn
ZVJlZiktPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdl
T3ZlcmxheSgqdG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6
UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogfQogCiB2b2lkIFdLQnVuZGxlUGFn
ZUluc3RhbGxQYWdlT3ZlcmxheVdpdGhBbmltYXRpb24oV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYs
IFdLQnVuZGxlUGFnZU92ZXJsYXlSZWYgcGFnZU92ZXJsYXlSZWYpCiB7Ci0gICAgdG9JbXBsKHBh
Z2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VP
dmVybGF5KHRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBh
Z2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJh
bWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KCp0b0ltcGwo
cGFnZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFk
ZU1vZGU6OkZhZGUpOwogfQogCiB2b2lkIFdLQnVuZGxlUGFnZVVuaW5zdGFsbFBhZ2VPdmVybGF5
V2l0aEFuaW1hdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQYWdlT3Zlcmxh
eVJlZiBwYWdlT3ZlcmxheVJlZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgp
LT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSh0b0ltcGwocGFn
ZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1v
ZGU6OkZhZGUpOworICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5
Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCp0b0ltcGwocGFnZU92ZXJsYXlSZWYp
LT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOwog
fQogCiB2b2lkIFdLQnVuZGxlUGFnZVNldFRvcE92ZXJoYW5nSW1hZ2UoV0tCdW5kbGVQYWdlUmVm
IHBhZ2VSZWYsIFdLSW1hZ2VSZWYgaW1hZ2VSZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KaW5k
ZXggODUwOWFlNjUwMjRkNGVlNTkyZWQxMjVhMTIxMjE0MGYwN2ZjZTMxZS4uNDFlYjAzOTQ2ZmE5
YTRhYWZkMGY4ZjE2MDliYzEzZjM3NTdmOTVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQpA
QCAtODYwLDcgKzg2MCw3IEBAIEpTVmFsdWVSZWYgUERGUGx1Z2luOjpqc1BERkRvY1ByaW50KEpT
Q29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iCiAgICAgaWYgKCFwYWdl
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY3R4KTsKIAotICAgIHBhZ2Ut
PmNocm9tZSgpLnByaW50KGNvcmVGcmFtZSk7CisgICAgcGFnZS0+Y2hyb21lKCkucHJpbnQoKmNv
cmVGcmFtZSk7CiAKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY3R4KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRl
eCA1NjJhOWEyZTE1N2M0M2M1ZGU3NWMzZjcyNTYzMTJkZmU0ZTE1N2JjLi5kOWE0Mjg4NjFiZWM1
NjQ1M2E3ZjBjZTEzZDNiZjk4OTFmM2Q5OTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0xMTI4LDcgKzExMjgsNyBAQCB2b2lk
IFBsdWdpblZpZXc6OmZvY3VzUGx1Z2luRWxlbWVudCgpCiAgICAgQVNTRVJUKGZyYW1lKCkpOwog
ICAgIAogICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUoKS0+cGFnZSgpKQotICAgICAgICBwYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChtX3BsdWdpbkVsZW1lbnQuZ2V0
KCksIGZyYW1lKCkpOworICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2Vk
RWxlbWVudChtX3BsdWdpbkVsZW1lbnQuZ2V0KCksICpmcmFtZSgpKTsKICAgICBlbHNlCiAgICAg
ICAgIGZyYW1lKCktPmRvY3VtZW50KCktPnNldEZvY3VzZWRFbGVtZW50KG1fcGx1Z2luRWxlbWVu
dC5nZXQoKSk7CiB9CkBAIC0xNTA4LDcgKzE1MDgsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnNldFN0
YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJiBzdGF0dXNiYXJUZXh0KQogICAgIGlmICghcGFnZSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dChm
cmFtZSgpLCBzdGF0dXNiYXJUZXh0KTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJU
ZXh0KCpmcmFtZSgpLCBzdGF0dXNiYXJUZXh0KTsKIH0KIAogYm9vbCBQbHVnaW5WaWV3Ojppc0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRl
eCA0OTgzNGMzYTMwZWJmOTIxNWU5ZjU0ZTkxZGNiMjRlYTEzZjk0Y2VkLi5hOGRmZGZjOTUzMGVl
MDZmMzFjOGY1YjE0ZmQ2NzJmZmUyNGIyM2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC0xMDMsNyArMTAzLDYgQEAgc3RhdGljIGRvdWJsZSBhcmVhKFdlYkZyYW1lKiBmcmFtZSkKICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihzaXplLmhlaWdodCgpKSAqIHNpemUud2lkdGgo
KTsKIH0KIAotCiBzdGF0aWMgV2ViRnJhbWUqIGZpbmRMYXJnZXN0RnJhbWVJbkZyYW1lU2V0KFdl
YlBhZ2UmIHBhZ2UpCiB7CiAgICAgLy8gQXBwcm94aW1hdGUgd2hhdCBhIHVzZXIgY291bGQgY29u
c2lkZXIgYSBkZWZhdWx0IHRhcmdldCBmcmFtZSBmb3IgYXBwbGljYXRpb24gbWVudSBvcGVyYXRp
b25zLgpAQCAtMTc5LDIwICsxNzgsMjIgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuZm9jdXMo
KQogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVu
dERpZEZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCisKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjplbGVtZW50RGlkRm9jdXMoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBt
X3BhZ2UuZWxlbWVudERpZEZvY3VzKGNvbnN0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KG5vZGUpKTsK
KyAgICBtX3BhZ2UuZWxlbWVudERpZEZvY3VzKCZlbGVtZW50KTsKIH0KIAotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmVsZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit2b2lk
IFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVu
dCkKIHsKLSAgICBtX3BhZ2UuZWxlbWVudERpZEJsdXIoY29uc3RfY2FzdDxXZWJDb3JlOjpOb2Rl
Kj4obm9kZSkpOworICAgIG1fcGFnZS5lbGVtZW50RGlkQmx1cigmZWxlbWVudCk7CiB9CiAKIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjptYWtlRmlyc3RSZXNwb25kZXIoKQogewogICAgIG1fcGFnZS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Ok1ha2VGaXJzdFJlc3BvbmRlcigpKTsKLX0gICAg
Cit9CisKICNlbmRpZiAgICAKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblRha2VGb2N1cyhG
b2N1c0RpcmVjdGlvbikKQEAgLTIyNywxNiArMjI4LDE2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKiBmcmFtZSkKICAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkZvY3VzZWRGcmFtZUNoYW5nZWQod2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgp
IDogMCksIG1fcGFnZS5wYWdlSUQoKSk7CiB9CiAKLVBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlV2luZG93KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgV2luZG93RmVhdHVyZXMmIHdpbmRvd0ZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQorUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5k
b3coRnJhbWUmIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBX
aW5kb3dGZWF0dXJlcyYgd2luZG93RmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5h
dmlnYXRpb25BY3Rpb24pCiB7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIGlmIChm
cmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxT
Y3JlZW5FbGVtZW50KCkpCi0gICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRDYW5jZWxG
dWxsU2NyZWVuKCk7CisgICAgaWYgKGZyYW1lLmRvY3VtZW50KCkgJiYgZnJhbWUuZG9jdW1lbnQo
KS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkpCisgICAgICAgIGZyYW1lLmRvY3Vt
ZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsKICNlbmRpZgogCiAgICAgYXV0byYgd2Vi
UHJvY2VzcyA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpOwogCi0gICAgV2ViRnJhbWUqIHdlYkZy
YW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2Vi
RnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAKICAgICBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YTsKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0
YS5uYXZpZ2F0aW9uVHlwZSA9IG5hdmlnYXRpb25BY3Rpb24udHlwZSgpOwpAQCAtMjUwLDcgKzI1
MSw3IEBAIFBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwg
Y29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzCiAKICAgICB1aW50NjRfdCBuZXdQYWdlSUQg
PSAwOwogICAgIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKLSAgICBpZiAo
IXdlYlByb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0
eU9yaWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCks
IHdpbmRvd0ZlYXR1cmVzLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkNyZWF0ZU5ld1BhZ2U6OlJlcGx5KG5ld1BhZ2VJRCwgcGFyYW1ldGVycyksIG1fcGFn
ZS5wYWdlSUQoKSkpCisgICAgaWYgKCF3ZWJQcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2Uod2ViRnJh
bWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoJmZyYW1lKSwgcmVx
dWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgd2luZG93RmVhdHVyZXMsIG5hdmlnYXRpb25BY3Rpb25E
YXRhKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6UmVwbHkobmV3UGFn
ZUlELCBwYXJhbWV0ZXJzKSwgbV9wYWdlLnBhZ2VJRCgpKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBpZiAoIW5ld1BhZ2VJRCkKQEAgLTM2MSw5ICszNjIsOSBAQCBib29sIFdlYkNo
cm9tZUNsaWVudDo6Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkKICAgICByZXR1cm4g
bV9wYWdlLmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpOwogfQogCi1ib29sIFdlYkNo
cm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgRnJhbWUqIGZyYW1lKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lJiBmcmFtZSkKIHsKLSAg
ICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOwor
ICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsK
IAogICAgIGJvb2wgc2hvdWxkQ2xvc2UgPSBmYWxzZTsKIApAQCAtNDAyLDEyICs0MDMsMTIgQEAg
c3RhdGljIGJvb2wgc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncyhGcmFtZSYgZnJhbWUp
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNj
cmlwdEFsZXJ0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBhbGVydFRleHQpCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiBhbGVydFRleHQpCiB7Ci0gICAgaWYgKHNob3VsZFN1cHByZXNzSmF2YVNjcmlwdERpYWxv
Z3MoKmZyYW1lKSkKKyAgICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncyhmcmFt
ZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1l
Ojpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJh
bWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKICAgICAv
LyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCkBAIC00MTUsMTUgKzQxNiwxNSBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiBhbGVydFRleHQpCiAKICAgICBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIgaGFuZ0RldGVjdGlv
bkRpc2FibGVyOwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlw
dEFsZXJ0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1l
KGZyYW1lKSwgYWxlcnRUZXh0KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlw
dEFsZXJ0OjpSZXBseSgpLCBtX3BhZ2UucGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCksIElQ
Qzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKTsKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
U3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQod2ViRnJhbWUt
PmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoJmZyYW1lKSwgYWxlcnRU
ZXh0KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpSZXBseSgp
LCBtX3BhZ2UucGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRp
b246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKTsKIH0KIAotYm9vbCBXZWJDaHJv
bWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZy
YW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewotICAgIGlmIChzaG91bGRTdXBw
cmVzc0phdmFTY3JpcHREaWFsb2dzKCpmcmFtZSkpCisgICAgaWYgKHNob3VsZFN1cHByZXNzSmF2
YVNjcmlwdERpYWxvZ3MoZnJhbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAgIFdl
YkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKICAgICBB
U1NFUlQod2ViRnJhbWUpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgpAQCAt
NDMyLDE4ICs0MzMsMTggQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25m
aXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIEhhbmdEZXRlY3Rp
b25EaXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlzYWJsZXI7CiAKICAgICBib29sIHJlc3VsdCA9IGZh
bHNlOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENv
bmZpcm0od2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUo
ZnJhbWUpLCBtZXNzYWdlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENv
bmZpcm06OlJlcGx5KHJlc3VsdCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHko
KSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQp
KQorICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZp
cm0od2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoJmZy
YW1lKSwgbWVzc2FnZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25m
aXJtOjpSZXBseShyZXN1bHQpLCBtX3BhZ2UucGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCks
IElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3Vs
dCkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiBmcmFt
ZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3Ry
aW5nJiByZXN1bHQpCiB7Ci0gICAgaWYgKHNob3VsZFN1cHByZXNzSmF2YVNjcmlwdERpYWxvZ3Mo
KmZyYW1lKSkKKyAgICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncyhmcmFtZSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZy
YW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2Vi
RnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKICAg
ICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCkBAIC00NTEsNyArNDUyLDcgQEAgYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGMKIAogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0ZWN0
aW9uRGlzYWJsZXI7CiAKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkph
dmFTY3JpcHRQcm9tcHQod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpm
cm9tRnJhbWUoZnJhbWUpLCBtZXNzYWdlLCBkZWZhdWx0VmFsdWUpLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpSZXBseShyZXN1bHQpLCBtX3BhZ2UucGFnZUlE
KCksIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRm
b3JtUHJvY2Vzc1dpbGxTdXNwZW5kKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmln
aW5EYXRhOjpmcm9tRnJhbWUoJmZyYW1lKSwgbWVzc2FnZSwgZGVmYXVsdFZhbHVlKSwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6UmVwbHkocmVzdWx0KSwgbV9w
YWdlLnBhZ2VJRCgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJ
bmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIHJldHVybiAhcmVzdWx0LmlzTnVsbCgpOwpAQCAtNTU2LDcgKzU1Nyw3IEBAIFBsYXRm
b3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGllbnQ6OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0
CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVD
aGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiBmcmFtZSwgY29uc3QgSW50
U2l6ZSYgc2l6ZSkgY29uc3QKIHsKICAgICBpZiAoIW1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5n
cygpLmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoKSkgewogICAgICAgICBXZWJGcmFtZSogbGFyZ2Vz
dEZyYW1lID0gZmluZExhcmdlc3RGcmFtZUluRnJhbWVTZXQobV9wYWdlKTsKQEAgLTU2NiwxNCAr
NTY3LDE0IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1l
KiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uCiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICBpZiAoJmZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpICE9IGZyYW1lKQorICAgIGlmICgmZnJh
bWUucGFnZSgpLT5tYWluRnJhbWUoKSAhPSAmZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAogICAg
IG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZUNvbnRlbnRTaXpl
KHNpemUpKTsKIAogICAgIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5tYWluRnJhbWVDb250ZW50U2l6
ZUNoYW5nZWQoc2l6ZSk7CiAKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGZyYW1lLT52aWV3
KCk7CisgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBmcmFtZS52aWV3KCk7CiAgICAgaWYgKGZy
YW1lVmlldyAmJiAhZnJhbWVWaWV3LT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSkgIHsKICAgICAgICAg
Ym9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyID0gZnJhbWVWaWV3LT5ob3Jpem9udGFsU2Nyb2xs
YmFyKCk7CiAgICAgICAgIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIgPSBmcmFtZVZpZXctPnZl
cnRpY2FsU2Nyb2xsYmFyKCk7CkBAIC02MTEsMjEgKzYxMiwyMSBAQCBib29sIFdlYkNocm9tZUNs
aWVudDo6c2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVyRW1iZWRk
ZWRPYmplYwogICAgIHJldHVybiBmYWxzZTsKIH0KICAgICAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50
Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVy
RW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxh
YmlsaXR5UmVhc29uKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1
Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6
UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNv
bnN0CiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgQVNTRVJUKGVsZW1l
bnQtPmhhc1RhZ05hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGVtYmVkVGFn
KSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGFwcGxldFRhZykpOworICAgIEFTU0VSVChlbGVtZW50
Lmhhc1RhZ05hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZW1iZWRUYWcpIHx8
IGVsZW1lbnQuaGFzVGFnTmFtZShhcHBsZXRUYWcpKTsKICAgICBBU1NFUlQocGx1Z2luVW5hdmFp
bGFiaWxpdHlSZWFzb24gPT0gUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpbk1pc3NpbmcgfHwg
cGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gPT0gUmVuZGVyRW1iZWRkZWRPYmplY3Q6Okluc2Vj
dXJlUGx1Z2luVmVyc2lvbiB8fCBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbik7CiAKLSAgICBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBwbHVnaW5FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFBs
dWdJbkltYWdlRWxlbWVudCo+KGVsZW1lbnQpOworICAgIGF1dG8mIHBsdWdpbkVsZW1lbnQgPSBk
b3duY2FzdDxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50PihlbGVtZW50KTsKIAotICAgIFN0cmluZyBm
cmFtZVVSTFN0cmluZyA9IHBsdWdpbkVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKS0+bG9hZGVy
KCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2VVUkwoKS5zdHJpbmcoKTsKKyAgICBTdHJpbmcg
ZnJhbWVVUkxTdHJpbmcgPSBwbHVnaW5FbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+bG9hZGVy
KCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2VVUkwoKS5zdHJpbmcoKTsKICAgICBTdHJpbmcg
cGFnZVVSTFN0cmluZyA9IG1fcGFnZS5tYWluRnJhbWUoKS0+bG9hZGVyKCkuZG9jdW1lbnRMb2Fk
ZXIoKS0+cmVzcG9uc2VVUkwoKS5zdHJpbmcoKTsKLSAgICBTdHJpbmcgcGx1Z2luVVJMU3RyaW5n
ID0gcGx1Z2luRWxlbWVudC0+ZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChwbHVnaW5FbGVtZW50LT51
cmwoKSkuc3RyaW5nKCk7Ci0gICAgVVJMIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMID0gZWxlbWVu
dC0+ZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFj
ZXMocGx1Z2luRWxlbWVudC0+Z2V0QXR0cmlidXRlKHBsdWdpbnNwYWdlQXR0cikpKTsKKyAgICBT
dHJpbmcgcGx1Z2luVVJMU3RyaW5nID0gcGx1Z2luRWxlbWVudC5kb2N1bWVudCgpLmNvbXBsZXRl
VVJMKHBsdWdpbkVsZW1lbnQudXJsKCkpLnN0cmluZygpOworICAgIFVSTCBwbHVnaW5zcGFnZUF0
dHJpYnV0ZVVSTCA9IHBsdWdpbkVsZW1lbnQuZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChzdHJpcExl
YWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMocGx1Z2luRWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKHBsdWdpbnNwYWdlQXR0cikpKTsKICAgICBpZiAoIXBsdWdpbnNwYWdl
QXR0cmlidXRlVVJMLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkKICAgICAgICAgcGx1Z2luc3Bh
Z2VBdHRyaWJ1dGVVUkwgPSBVUkwoKTsKLSAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQocGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24sIHBsdWdpbkVsZW1lbnQtPnNlcnZpY2VUeXBlKCksIHBsdWdpblVSTFN0cmluZywg
cGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkwuc3RyaW5nKCksIGZyYW1lVVJMU3RyaW5nLCBwYWdlVVJM
U3RyaW5nKSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6VW5hdmFp
bGFibGVQbHVnaW5CdXR0b25DbGlja2VkKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBwbHVn
aW5FbGVtZW50LnNlcnZpY2VUeXBlKCksIHBsdWdpblVSTFN0cmluZywgcGx1Z2luc3BhZ2VBdHRy
aWJ1dGVVUkwuc3RyaW5nKCksIGZyYW1lVVJMU3RyaW5nLCBwYWdlVVJMU3RyaW5nKSk7CiAjZWxz
ZQogICAgIFVOVVNFRF9QQVJBTShlbGVtZW50KTsKICAgICBVTlVTRURfUEFSQU0ocGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb24pOwpAQCAtNjYwLDkgKzY2MSw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikKICAg
ICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRUb29sVGlwKG1fY2FjaGVk
VG9vbFRpcCkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1l
KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lJiBmcmFtZSkKIHsKLSAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAgIFdl
YkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKICAgICBB
U1NFUlQod2ViRnJhbWUpOwogCiAjaWYgUExBVEZPUk0oR1RLKSAmJiBIQVZFKEdUS19VTklYX1BS
SU5USU5HKQpAQCAtNjg4LDEyICs2ODksMTIgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByaW50
KEZyYW1lKiBmcmFtZSkKICAgICBtX3BhZ2Uuc2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UHJpbnRGcmFtZSh3ZWJGcmFtZS0+ZnJhbWVJRCgpKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UHJpbnRGcmFtZTo6UmVwbHkoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3lu
Y09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpOwogfQogCi12b2lkIFdl
YkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiBmcmFtZSwgY29uc3Qg
U3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscyBkZXRhaWxzKQordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMgZGV0YWlscykKIHsKLSAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAgIFdl
YkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKICAgICBB
U1NFUlQod2ViRnJhbWUpOwogICAgIAotICAgIGF1dG8mIG9yaWdpbiA9IGZyYW1lLT5kb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpOworICAgIGF1dG8mIG9yaWdpbiA9IGZyYW1lLmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCk7CiAgICAgYXV0byBvcmlnaW5EYXRhID0gU2VjdXJpdHlPcmln
aW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3JpZ2luKTsKICAgICBhdXRvJiB0cmFja2VyID0g
RGF0YWJhc2VUcmFja2VyOjpzaW5nbGV0b24oKTsKICAgICBhdXRvIGN1cnJlbnRRdW90YSA9IHRy
YWNrZXIucXVvdGEob3JpZ2luRGF0YSk7CkBAIC03MTYsOSArNzE3LDkgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCkKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBpbnQ2NF90IHRvdGFsQnl0ZXNO
ZWVkZWQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YShTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQp
CiB7Ci0gICAgUmVmUHRyPEFQSTo6U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luID0gQVBJ
OjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW4tPnRvU3RyaW5nKCkpOwor
ICAgIFJlZlB0cjxBUEk6OlNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9IEFQSTo6U2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2luLnRvU3RyaW5nKCkpOwogICAgIGlm
IChtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLmRpZFJlYWNoQXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKCZtX3BhZ2UsIHNlY3VyaXR5T3JpZ2luLmdldCgpLCB0b3RhbEJ5dGVzTmVl
ZGVkKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC03MjksMTcgKzczMCwxOSBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9y
aWdpbiogb3JpZ2luLAogCiAgICAgdWludDY0X3QgbmV3UXVvdGEgPSAwOwogICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKAotICAg
ICAgICBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpv
cmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpLCBjdXJyZW50UXVvdGEsIHRvdGFsQnl0ZXNOZWVk
ZWQpLAorICAgICAgICBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5
T3JpZ2luKG9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCksIGN1cnJlbnRRdW90YSwgdG90YWxC
eXRlc05lZWRlZCksCiAgICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGE6OlJlcGx5KG5ld1F1b3RhKSwgbV9wYWdlLnBhZ2VJRCgp
LCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9y
bVByb2Nlc3NXaWxsU3VzcGVuZCk7CiAKLSAgICBjYWNoZVN0b3JhZ2Uuc3RvcmVVcGRhdGVkUXVv
dGFGb3JPcmlnaW4ob3JpZ2luLCBuZXdRdW90YSk7CisgICAgY2FjaGVTdG9yYWdlLnN0b3JlVXBk
YXRlZFF1b3RhRm9yT3JpZ2luKCZvcmlnaW4sIG5ld1F1b3RhKTsKIH0KIAogI2lmIEVOQUJMRShE
QVNIQk9BUkRfU1VQUE9SVCkKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFubm90YXRlZFJlZ2lv
bnNDaGFuZ2VkKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQorCiAjZW5kaWYKIAogYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFJlcGxhY2VXaXRoR2VuZXJhdGVkRmlsZUZvclVwbG9h
ZChjb25zdCBTdHJpbmcmIHBhdGgsIFN0cmluZyYgZ2VuZXJhdGVkRmlsZW5hbWUpCkBAIC03NTQs
MTAgKzc1NywxMiBAQCBTdHJpbmcgV2ViQ2hyb21lQ2xpZW50OjpnZW5lcmF0ZVJlcGxhY2VtZW50
RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCiB9CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xP
UikKLXN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRl
Q29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25zdCBDb2xvciYgaW5p
dGlhbENvbG9yKQorCitzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBXZWJDaHJvbWVDbGll
bnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmIGNsaWVudCwgY29uc3Qg
Q29sb3ImIGluaXRpYWxDb2xvcikKIHsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJD
b2xvckNob29zZXI+KCZtX3BhZ2UsIGNsaWVudCwgaW5pdGlhbENvbG9yKTsKKyAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxXZWJDb2xvckNob29zZXI+KCZtX3BhZ2UsICZjbGllbnQsIGluaXRp
YWxDb2xvcik7CiB9CisKICNlbmRpZgogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuT3BlblBh
bmVsKEZyYW1lJiBmcmFtZSwgRmlsZUNob29zZXImIGZpbGVDaG9vc2VyKQpAQCAtODMyLDE0ICs4
MzcsMTQgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6Omhhc09wZW5lZFBvcHVwKCkgY29uc3QKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50
KSBjb25zdAorUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIFdlYlBvcHVwTWVudTo6Y3JlYXRlKCZtX3BhZ2UsIGNsaWVudCk7CisgICAgcmV0
dXJuIFdlYlBvcHVwTWVudTo6Y3JlYXRlKCZtX3BhZ2UsICZjbGllbnQpOwogfQogCi1SZWZQdHI8
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBv
cHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxX
ZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAogewotICAgIHJl
dHVybiBXZWJTZWFyY2hQb3B1cE1lbnU6OmNyZWF0ZSgmbV9wYWdlLCBjbGllbnQpOworICAgIHJl
dHVybiBXZWJTZWFyY2hQb3B1cE1lbnU6OmNyZWF0ZSgmbV9wYWdlLCAmY2xpZW50KTsKIH0KIAog
R3JhcGhpY3NMYXllckZhY3RvcnkqIFdlYkNocm9tZUNsaWVudDo6Z3JhcGhpY3NMYXllckZhY3Rv
cnkoKSBjb25zdApAQCAtODU4LDcgKzg2Myw3IEBAIFJlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3I+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pCiAK
ICNlbmRpZgogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIo
RnJhbWUqLCBHcmFwaGljc0xheWVyKiBsYXllcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRh
Y2hSb290R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogewogICAg
IGlmIChsYXllcikKICAgICAgICAgbV9wYWdlLmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUobGF5ZXIpOwpAQCAtODY2LDEwICs4NzEsMTAgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAg
ICAgIG1fcGFnZS5leGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSogZnJh
bWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lJiBmcmFtZSwgR3JhcGhpY3NMYXll
ciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBpZiAoYXV0byBkcmF3aW5nQXJlYSA9IG1fcGFnZS5k
cmF3aW5nQXJlYSgpKQotICAgICAgICBkcmF3aW5nQXJlYS0+YXR0YWNoVmlld092ZXJsYXlHcmFw
aGljc0xheWVyKGZyYW1lLCBncmFwaGljc0xheWVyKTsKKyAgICAgICAgZHJhd2luZ0FyZWEtPmF0
dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcigmZnJhbWUsIGdyYXBoaWNzTGF5ZXIpOwogfQog
CiB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXph
dGlvbigpCkBAIC04OTgsOSArOTAzLDkgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmxheWVyVHJl
ZVN0YXRlSXNGcm96ZW4oKSBjb25zdAogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKIAot
UGFzc1JlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVT
Y3JvbGxpbmdDb29yZGluYXRvcihQYWdlKiBwYWdlKSBjb25zdAorUmVmUHRyPFNjcm9sbGluZ0Nv
b3JkaW5hdG9yPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBh
Z2UmIHBhZ2UpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKG1fcGFnZS5jb3JlUGFnZSgpID09IHBhZ2Up
OworICAgIEFTU0VSVF9VTlVTRUQocGFnZSwgbV9wYWdlLmNvcmVQYWdlKCkgPT0gJnBhZ2UpOwog
ICAgIGlmIChtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+dHlwZSgpICE9IERyYXdpbmdBcmVhVHlwZVJl
bW90ZUxheWVyVHJlZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGUoJm1fcGFnZSk7CkBAIC05NDksMTkgKzk1NCwx
OSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhv
dXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZAogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChj
b25zdCBXZWJDb3JlOjpFbGVtZW50KiwgYm9vbCB3aXRoS2V5Ym9hcmQpCitib29sIFdlYkNocm9t
ZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVt
ZW50JiwgYm9vbCB3aXRoS2V5Ym9hcmQpCiB7CiAgICAgcmV0dXJuIG1fcGFnZS5mdWxsU2NyZWVu
TWFuYWdlcigpLT5zdXBwb3J0c0Z1bGxTY3JlZW4od2l0aEtleWJvYXJkKTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVu
dCogZWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVt
ZW50KFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9wYWdlLmZ1bGxTY3JlZW5N
YW5hZ2VyKCktPmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7CisgICAgbV9wYWdl
LmZ1bGxTY3JlZW5NYW5hZ2VyKCktPmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoJmVsZW1lbnQp
OwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdl
YkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9wYWdl
LmZ1bGxTY3JlZW5NYW5hZ2VyKCktPmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsK
KyAgICBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
KCZlbGVtZW50KTsKIH0KIAogI2VuZGlmCkBAIC0xMDQ5LDI5ICsxMDU0LDI5IEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKQogICAgIG1fcGFnZS5zZW5k
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpKTsK
IH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5
ZXIqIGhlYWRlclBhcmVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRIZWFkZXJMYXll
cihHcmFwaGljc0xheWVyJiBoZWFkZXJQYXJlbnQpCiB7CiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5E
SU5HKQogICAgIGlmIChQYWdlQmFubmVyKiBiYW5uZXIgPSBtX3BhZ2UuaGVhZGVyUGFnZUJhbm5l
cigpKQotICAgICAgICBiYW5uZXItPmRpZEFkZFBhcmVudExheWVyKGhlYWRlclBhcmVudCk7Cisg
ICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50TGF5ZXIoJmhlYWRlclBhcmVudCk7CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTShoZWFkZXJQYXJlbnQpOwogI2VuZGlmCiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpkaWRBZGRGb290ZXJMYXllcihHcmFwaGljc0xheWVyKiBmb290ZXJQYXJlbnQp
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkQWRkRm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciYg
Zm9vdGVyUGFyZW50KQogewogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBpZiAoUGFn
ZUJhbm5lciogYmFubmVyID0gbV9wYWdlLmZvb3RlclBhZ2VCYW5uZXIoKSkKLSAgICAgICAgYmFu
bmVyLT5kaWRBZGRQYXJlbnRMYXllcihmb290ZXJQYXJlbnQpOworICAgICAgICBiYW5uZXItPmRp
ZEFkZFBhcmVudExheWVyKCZmb290ZXJQYXJlbnQpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
Zm9vdGVyUGFyZW50KTsKICNlbmRpZgogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxk
VXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyogZnJhbWVWaWV3KSBj
b25zdAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1l
Vmlldyhjb25zdCBGcmFtZVZpZXcmIGZyYW1lVmlldykgY29uc3QKIHsKLSAgICByZXR1cm4gbV9w
YWdlLmRyYXdpbmdBcmVhKCktPnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhmcmFt
ZVZpZXcpOworICAgIHJldHVybiBtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+c2hvdWxkVXNlVGlsZWRC
YWNraW5nRm9yRnJhbWVWaWV3KCZmcmFtZVZpZXcpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIHN0YXRlLCB1aW50NjRfdCBzb3VyY2VFbGVtZW50SUQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAppbmRleCA1YzlkNzczYTcyYzA2MDhjMDIwNjhhYzFkOWRkZjQ1ZDRhMGJkOWM1Li41YmU0
ZmM2MzcxMWFiZWFlZTNjNGQ0OTVjOTA4OTRkNTkxM2E2MmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBGcmFtZSB3YW50cyB0byBjcmVh
dGUgdGhlIG5ldyBQYWdlLiAgQWxzbywgdGhlIG5ld2x5IGNyZWF0ZWQgd2luZG93CiAgICAgLy8g
c2hvdWxkIG5vdCBiZSBzaG93biB0byB0aGUgdXNlciB1bnRpbCB0aGUgQ2hyb21lQ2xpZW50IG9m
IHRoZSBuZXdseQogICAgIC8vIGNyZWF0ZWQgUGFnZSBoYXMgaXRzIHNob3cgbWV0aG9kIGNhbGxl
ZC4KLSAgICBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWUqLCBjb25z
dCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVy
ZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWw7CisgICAgV2ViQ29y
ZTo6UGFnZSogY3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6RnJh
bWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2Vi
Q29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpIGZpbmFsOwogICAgIHZvaWQgc2hvdygpIGZpbmFsOwog
ICAgIAogICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBmaW5hbDsKQEAgLTg3LDEzICs4NywxMyBAQCBw
cml2YXRlOgogICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShKU0M6Ok1lc3NhZ2VTb3VyY2Us
IEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVO
dW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkgZmlu
YWw7CiAgICAgCiAgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSBmaW5h
bDsKLSAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIFdlYkNvcmU6OkZyYW1lKikgZmluYWw7CisgICAgYm9vbCBydW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSYpIGZpbmFs
OwogICAgIAogICAgIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgZmluYWw7CiAgICAgCi0gICAgdm9p
ZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBTdHJpbmcmKSBmaW5h
bDsKLSAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lKiwgY29uc3Qg
U3RyaW5nJikgZmluYWw7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZy
YW1lKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwg
U3RyaW5nJiByZXN1bHQpIGZpbmFsOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNv
cmU6OkZyYW1lJiwgY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0
Q29uZmlybShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIGJvb2wg
cnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KSBmaW5hbDsKICAg
ICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgZmluYWw7CiAKICAgICBXZWJD
b3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpIGZpbmFsOwpAQCAtMTE3LDIzICsx
MTcsMjMgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRm
b3JtUGFnZUNsaWVudCgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdl
ZChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdCBmaW5hbDsK
KyAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXco
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IGZpbmFsOyAvLyBDdXJyZW50bHkgb25seSBN
YWMgaGFzIGEgbm9uIGVtcHR5IGltcGxlbWVudGF0aW9uLgogCiAgICAgYm9vbCBzaG91bGRVbmF2
YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVj
dDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgdW5h
dmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJDb3JlOjpS
ZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZp
bmFsOworICAgIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVs
ZW1lbnQmLCBXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24pIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5n
ZSgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3Qg
V2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIGZpbmFsOwog
CiAgICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rp
b24pIGZpbmFsOwogICAgIAotICAgIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsK
KyAgICB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAKLSAgICB2b2lkIGV4Y2Vl
ZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lLCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMpIGZpbmFsOworICAgIHZvaWQgZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUs
IFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscykgZmluYWw7CiAKICAgICB2b2lkIHJlYWNoZWRNYXhB
cHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkgZmluYWw7Ci0gICAgdm9pZCByZWFjaGVk
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50
NjRfdCBzcGFjZU5lZWRlZCkgZmluYWw7CisgICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCBzcGFjZU5lZWRl
ZCkgZmluYWw7CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgdm9pZCBhbm5v
dGF0ZWRSZWdpb25zQ2hhbmdlZCgpIGZpbmFsOwpAQCAtMTQzLDcgKzE0Myw3IEBAIHByaXZhdGU6
CiAgICAgU3RyaW5nIGdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkg
ZmluYWw7CiAgICAgCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKFdlYkNvcmU6
OkNvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgZmluYWw7CisgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2Vy
KFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgZmlu
YWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQpAQCAtMTUyLDEwICsx
NTIsMTAgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICB2b2lkIGRpZFJlY2Vp
dmVNb2JpbGVEb2NUeXBlKGJvb2wpIGZpbmFsOwotICAgIHZvaWQgc2V0TmVlZHNTY3JvbGxOb3Rp
ZmljYXRpb25zKFdlYkNvcmU6OkZyYW1lKiwgYm9vbCkgZmluYWw7Ci0gICAgdm9pZCBvYnNlcnZl
ZENvbnRlbnRDaGFuZ2UoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKLSAgICB2b2lkIGNsZWFyQ29u
dGVudENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSopIGZpbmFsOwotICAgIHZvaWQgbm90
aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lKikgZmlu
YWw7CisgICAgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoV2ViQ29yZTo6RnJhbWUm
LCBib29sKSBmaW5hbDsKKyAgICB2b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShXZWJDb3JlOjpG
cmFtZSYpIGZpbmFsOworICAgIHZvaWQgY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKFdlYkNv
cmU6OkZyYW1lJikgZmluYWw7CisgICAgdm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Ny
b2xsaW5nRnJhbWUoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKICAgICBib29sIGlzU3RvcHBpbmco
KSBmaW5hbDsKIAogICAgIHZvaWQgZGlkTGF5b3V0KExheW91dFR5cGUgPSBOb3JtYWxMYXlvdXQp
IGZpbmFsOwpAQCAtMjAzLDEyICsyMDMsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIHNlbGVjdEl0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgZmluYWw7CiAgICAgYm9vbCBzZWxlY3RJdGVt
QWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgZmluYWw7CiAgICAgYm9vbCBo
YXNPcGVuZWRQb3B1cCgpIGNvbnN0IGZpbmFsOwotICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cE1l
bnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBmaW5h
bDsKLSAgICBSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1
cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3QgZmluYWw7CisgICAgUmVmUHRy
PFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNs
aWVudCYpIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+
IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBm
aW5hbDsKIAogICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVy
RmFjdG9yeSgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIo
V2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7Ci0gICAgdm9p
ZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKikgZmluYWw7CisgICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXll
cihXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKKyAgICB2
b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdp
bmdTeW5jaHJvbml6YXRpb24oKSBmaW5hbDsKICAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdM
YXllckZsdXNoKCkgZmluYWw7CiAgICAgYm9vbCBhZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhX
ZWJDb3JlOjpMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RmxhZ3MpIGZpbmFsOwpAQCAtMjMzLDEx
ICsyMzMsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIGxheWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBj
b25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCi0gICAgUGFzc1JlZlB0
cjxXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcj4gY3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IoV2ViQ29yZTo6UGFnZSopIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpTY3Jv
bGxpbmdDb29yZGluYXRvcj4gY3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoV2ViQ29yZTo6UGFn
ZSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgdm9pZCBl
bGVtZW50RGlkUmVmb2N1cyhjb25zdCBXZWJDb3JlOjpOb2RlKikgZmluYWw7CisgICAgdm9pZCBl
bGVtZW50RGlkUmVmb2N1cyhXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAogI2lm
IChQTEFURk9STShJT1MpICYmIEhBVkUoQVZLSVQpKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFC
TEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQpAQCAtMjUzLDE0ICsyNTMsMTQgQEAgcHJpdmF0
ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIGJvb2wgc3VwcG9y
dHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50KiwgYm9vbCB3aXRo
S2V5Ym9hcmQpIGZpbmFsOwotICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJD
b3JlOjpFbGVtZW50KikgZmluYWw7Ci0gICAgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQo
V2ViQ29yZTo6RWxlbWVudCopIGZpbmFsOworICAgIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9y
RWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50JiwgYm9vbCB3aXRoS2V5Ym9hcmQpIGZpbmFs
OworICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Jikg
ZmluYWw7CisgICAgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVu
dCYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2b2lkIGVsZW1l
bnREaWRGb2N1cyhjb25zdCBXZWJDb3JlOjpOb2RlKikgZmluYWw7Ci0gICAgdm9pZCBlbGVtZW50
RGlkQmx1cihjb25zdCBXZWJDb3JlOjpOb2RlKikgZmluYWw7CisgICAgdm9pZCBlbGVtZW50RGlk
Rm9jdXMoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOworICAgIHZvaWQgZWxlbWVudERpZEJsdXIo
V2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOwogCiAgICAgdm9pZCBtYWtlRmlyc3RSZXNwb25kZXIo
KSBmaW5hbDsKICNlbmRpZgpAQCAtMjkxLDEwICsyOTEsMTAgQEAgcHJpdmF0ZToKICAgICBTdHJp
bmcgcGx1Z0luRXh0cmFTdHlsZVNoZWV0KCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIHBsdWdJ
bkV4dHJhU2NyaXB0KCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIGRpZEFkZEhlYWRlckxheWVy
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKLSAgICB2b2lkIGRpZEFkZEZvb3Rlckxh
eWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKKyAgICB2b2lkIGRpZEFkZEhlYWRl
ckxheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXImKSBmaW5hbDsKKyAgICB2b2lkIGRpZEFkZEZv
b3RlckxheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXImKSBmaW5hbDsKIAotICAgIGJvb2wgc2hv
dWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyop
IGNvbnN0IGZpbmFsOworICAgIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3
KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyYpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBpc1Bs
YXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MsIHVpbnQ2NF90KSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApp
bmRleCAzMmFmNTlmM2ZiZDQ3NDA5ZjQyODg2MzY5ZmEwOGJlZGFjYjVkNDY4Li40MzM5OGZjOTNj
MjNkMWIxMzhlN2E0NWQyYTE5ZWE4ZDMzZDNhZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcApAQCAtNjQwLDEzICs2NDAsMTMgQEAgRnJhbWUqIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGkK
IHsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwogICAgIGlmICghd2Vi
UGFnZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAg
Ly8gSnVzdCBjYWxsIHRocm91Z2ggdG8gdGhlIGNocm9tZSBjbGllbnQuCiAgICAgRnJhbWVMb2Fk
UmVxdWVzdCByZXF1ZXN0KG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5kb2N1bWVudCgpLT5zZWN1cml0
eU9yaWdpbigpLCBuYXZpZ2F0aW9uQWN0aW9uLnJlc291cmNlUmVxdWVzdCgpLCBMb2NrSGlzdG9y
eTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dO
YXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywg
bmF2aWdhdGlvbkFjdGlvbi5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCkpOwotICAgIFBh
Z2UqIG5ld1BhZ2UgPSB3ZWJQYWdlLT5jb3JlUGFnZSgpLT5jaHJvbWUoKS5jcmVhdGVXaW5kb3co
bV9mcmFtZS0+Y29yZUZyYW1lKCksIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIG5hdmlnYXRp
b25BY3Rpb24pOworICAgIFBhZ2UqIG5ld1BhZ2UgPSB3ZWJQYWdlLT5jb3JlUGFnZSgpLT5jaHJv
bWUoKS5jcmVhdGVXaW5kb3coKm1fZnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0LCBXaW5kb3dG
ZWF0dXJlcygpLCBuYXZpZ2F0aW9uQWN0aW9uKTsKICAgICBpZiAoIW5ld1BhZ2UpCi0gICAgICAg
IHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICByZXR1cm4gJm5l
d1BhZ2UtPm1haW5GcmFtZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCmluZGV4
IDk2ODkyOWZkYTM0NzlhYWQyYmU0YTEwYTBiNDU5NmFlMTc1NTZkNTAuLjQxYjM0ZjAwYThjNmZk
MjAzYzU4MzQyMDNlODI4MGE1YzQ0NTZmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5j
cHAKQEAgLTczLDcgKzczLDcgQEAgV2ViSW5zcGVjdG9yQ2xpZW50Ojp+V2ViSW5zcGVjdG9yQ2xp
ZW50KCkKICAgICB9CiAKICAgICBpZiAobV9wYWludFJlY3RPdmVybGF5ICYmIG1fcGFnZS0+bWFp
bkZyYW1lKCkpCi0gICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fcGFpbnRSZWN0T3ZlcmxheS5nZXQoKSwgUGFn
ZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+
cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fcGFpbnRSZWN0
T3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKIH0KIAogdm9pZCBXZWJJbnNw
ZWN0b3JDbGllbnQ6Omluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoKQpAQCAtMTI2LDcgKzEyNiw3IEBA
IHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpoaWRlSGlnaGxpZ2h0KCkKIHsKICNpZiAhUExBVEZP
Uk0oSU9TKQogICAgIGlmIChtX2hpZ2hsaWdodE92ZXJsYXkgJiYgbV9wYWdlLT5tYWluRnJhbWUo
KSkKLSAgICAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCku
dW5pbnN0YWxsUGFnZU92ZXJsYXkobV9oaWdobGlnaHRPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFk
ZU1vZGU6OkZhZGUpOworICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNv
bnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqbV9oaWdobGlnaHRPdmVybGF5LCBQYWdl
T3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOwogI2Vsc2UKICAgICBtX3BhZ2UtPmhpZGVJbnNwZWN0
b3JIaWdobGlnaHQoKTsKICNlbmRpZgpAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgV2ViSW5zcGVj
dG9yQ2xpZW50OjpzaG93UGFpbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBp
ZiAoIW1fcGFpbnRSZWN0T3ZlcmxheSkgewogICAgICAgICBtX3BhaW50UmVjdE92ZXJsYXkgPSBQ
YWdlT3ZlcmxheTo6Y3JlYXRlKCp0aGlzLCBQYWdlT3ZlcmxheTo6T3ZlcmxheVR5cGU6OkRvY3Vt
ZW50KTsKLSAgICAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVy
KCkuaW5zdGFsbFBhZ2VPdmVybGF5KG1fcGFpbnRSZWN0T3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZh
ZGVNb2RlOjpEb05vdEZhZGUpOworICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3Zl
cmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fcGFpbnRSZWN0T3ZlcmxheSwg
UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgIH0KIAogICAgIGlmICghbV9w
YWludEluZGljYXRvckxheWVyQ2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9T
Lm1tCmluZGV4IGJkMDE1NWRjYzNjZGVjZTlmZjIwZmE5ODY2ZGYzNzlmODJhMzY4YzUuLmU2ZWZi
MmEyMGE3ZGExZThmYzc5MTRkMmQ3MjQzZTdhYTk5ODYyYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkNocm9tZUNsaWVudElPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJD
aHJvbWVDbGllbnRJT1MubW0KQEAgLTQ2LDkgKzQ2LDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmRpZFByZXZlbnREZWZhdWx0Rm9yRXZlbnQoKQogCiAjZW5kaWYKIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmVsZW1lbnREaWRSZWZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit2b2lk
IFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZFJlZm9jdXMoV2ViQ29yZTo6RWxlbWVudCYgZWxl
bWVudCkKIHsKLSAgICBlbGVtZW50RGlkRm9jdXMobm9kZSk7CisgICAgZWxlbWVudERpZEZvY3Vz
KGVsZW1lbnQ7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRSZWNlaXZlTW9iaWxlRG9j
VHlwZShib29sIGlzTW9iaWxlRG9jdHlwZSkKQEAgLTU2LDIyICs1NiwyMiBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6ZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoYm9vbCBpc01vYmlsZURvY3R5cGUp
CiAgICAgbV9wYWdlLmRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGlzTW9iaWxlRG9jdHlwZSk7CiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoV2Vi
Q29yZTo6RnJhbWUqLCBib29sKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldE5lZWRzU2Nyb2xs
Tm90aWZpY2F0aW9ucyhXZWJDb3JlOjpGcmFtZSYsIGJvb2wpCiB7CiAgICAgbm90SW1wbGVtZW50
ZWQoKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om9ic2VydmVkQ29udGVudENoYW5nZShX
ZWJDb3JlOjpGcmFtZSopCit2b2lkIFdlYkNocm9tZUNsaWVudDo6b2JzZXJ2ZWRDb250ZW50Q2hh
bmdlKFdlYkNvcmU6OkZyYW1lJikKIHsKICAgICBtX3BhZ2UuY29tcGxldGVQZW5kaW5nU3ludGhl
dGljQ2xpY2tGb3JDb250ZW50Q2hhbmdlT2JzZXJ2ZXIoKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSopCit2b2lk
IFdlYkNocm9tZUNsaWVudDo6Y2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKFdlYkNvcmU6OkZy
YW1lJikKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVu
dDo6bm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1l
KikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xs
aW5nRnJhbWUoV2ViQ29yZTo6RnJhbWUmKQogewogICAgIG1fcGFnZS5kaWRDaGFuZ2VTZWxlY3Rp
b24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9G
aW5kQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmlu
ZENvbnRyb2xsZXIuY3BwCmluZGV4IDFlMGNlZjQ2NTFiOTNiZjgwZmI3MDU2NjVjNmY2MTVmZWFi
YzJhODkuLjMzMDMyYzE3MmIxYjI0MzhkYWZkNjBjMzQ2NDY2ZWE0NTA1ZTRhN2IgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0ZpbmRDb250cm9sbGVyLmNw
cApAQCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OnVwZGF0ZUZpbmRVSUFm
dGVyUGFnZVNjcm9sbChib29sIGZvdW5kLCBjb25zdCBTdHJpbmcmIHN0cmluCiAKICAgICBpZiAo
IXNob3VsZFNob3dPdmVybGF5KSB7CiAgICAgICAgIGlmIChtX2ZpbmRQYWdlT3ZlcmxheSkKLSAg
ICAgICAgICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigp
LnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fZmluZFBhZ2VPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFk
ZU1vZGU6OkZhZGUpOworICAgICAgICAgICAgbV93ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92
ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fZmluZFBhZ2VPdmVybGF5
LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGlm
ICghbV9maW5kUGFnZU92ZXJsYXkpIHsKICAgICAgICAgICAgIGF1dG8gZmluZFBhZ2VPdmVybGF5
ID0gUGFnZU92ZXJsYXk6OmNyZWF0ZSgqdGhpcywgUGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlOjpE
b2N1bWVudCk7CkBAIC0zMTIsNyArMzEyLDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6aGlkZUZp
bmRVSSgpCiB7CiAgICAgbV9maW5kTWF0Y2hlcy5jbGVhcigpOwogICAgIGlmIChtX2ZpbmRQYWdl
T3ZlcmxheSkKLSAgICAgICAgbV93ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250
cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkobV9maW5kUGFnZU92ZXJsYXksIFBhZ2VPdmVy
bGF5OjpGYWRlTW9kZTo6RmFkZSk7CisgICAgICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBh
Z2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX2ZpbmRQYWdlT3Zl
cmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKIAogICAgIFBsdWdpblZpZXcqIHBs
dWdpblZpZXcgPSBwbHVnaW5WaWV3Rm9yRnJhbWUobV93ZWJQYWdlLT5tYWluRnJhbWUoKSk7CiAg
ICAgCkBAIC0zMjUsNiArMzI1LDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6aGlkZUZpbmRVSSgp
CiB9CiAKICNpZiAhUExBVEZPUk0oSU9TKQorCiBib29sIEZpbmRDb250cm9sbGVyOjp1cGRhdGVG
aW5kSW5kaWNhdG9yKEZyYW1lJiBzZWxlY3RlZEZyYW1lLCBib29sIGlzU2hvd2luZ092ZXJsYXks
IGJvb2wgc2hvdWxkQW5pbWF0ZSkKIHsKICAgICBSZWZQdHI8VGV4dEluZGljYXRvcj4gaW5kaWNh
dG9yID0gVGV4dEluZGljYXRvcjo6Y3JlYXRlV2l0aFNlbGVjdGlvbkluRnJhbWUoc2VsZWN0ZWRG
cmFtZSwgVGV4dEluZGljYXRvck9wdGlvbkluY2x1ZGVNYXJnaW5JZlJhbmdlTWF0Y2hlc1NlbGVj
dGlvbiwgc2hvdWxkQW5pbWF0ZSA/IFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9u
OjpCb3VuY2UgOiBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Tm9uZSk7CkBA
IC0zNjYsNiArMzY3LDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6ZGlkRmFpbFRvRmluZFN0cmlu
ZygpCiB2b2lkIEZpbmRDb250cm9sbGVyOjpkaWRIaWRlRmluZEluZGljYXRvcigpCiB7CiB9CisK
ICNlbmRpZgogCiB2b2lkIEZpbmRDb250cm9sbGVyOjpzaG93RmluZEluZGljYXRvckluU2VsZWN0
aW9uKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3Bw
CmluZGV4IDM2MjlkNGFlNThjN2Q0Njg2MmUxNWE3NWY5ODRiZGNkNWVlYjhmNDYuLjk5OWZlMjVj
MTAwYTMxMzc2YjBkZjc1YTQzMDdjMzFjYTdmZTRlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIHN0YXRp
YyB1aW50NjRfdCBnZW5lcmF0ZUxpc3RlbmVySUQoKQogICAgIHJldHVybiB1bmlxdWVMaXN0ZW5l
cklEKys7CiB9CiAKLVBhc3NSZWZQdHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGVXaXRoQ29y
ZU1haW5GcmFtZShXZWJQYWdlKiBwYWdlLCBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lKQorUmVm
PFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSogcGFn
ZSwgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSkKIHsKICAgICBhdXRvIGZyYW1lID0gY3JlYXRl
KHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4oc3RhdGljX2Nhc3Q8V2ViRnJh
bWVMb2FkZXJDbGllbnQqPigmY29yZUZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKSkpKTsKICAgICBw
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENyZWF0ZU1haW5GcmFtZShmcmFt
ZS0+ZnJhbWVJRCgpKSwgcGFnZS0+cGFnZUlEKCksIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hN
ZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKQEAgLTEyMCwzMCArMTIwLDMyIEBA
IFBhc3NSZWZQdHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGVXaXRoQ29yZU1haW5GcmFtZShX
ZWJQYWdlKiBwYWdlLCBXZWJDb3JlOjpGCiAgICAgcmV0dXJuIGZyYW1lOwogfQogCi1QYXNzUmVm
UHRyPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUoV2ViUGFnZSogcGFnZSwgY29u
c3QgU3RyaW5nJiBmcmFtZU5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVtZW50
KQorUmVmPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUoV2ViUGFnZSogcGFnZSwg
Y29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIEhUTUxGcmFtZU93bmVyRWxlbWVudCogb3duZXJFbGVt
ZW50KQogewogICAgIGF1dG8gZnJhbWUgPSBjcmVhdGUoc3RkOjptYWtlX3VuaXF1ZTxXZWJGcmFt
ZUxvYWRlckNsaWVudD4oKSk7CiAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEaWRDcmVhdGVTdWJmcmFtZShmcmFtZS0+ZnJhbWVJRCgpKSwgcGFnZS0+cGFnZUlEKCksIElQ
Qzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5
KTsKIAotICAgIFJlZjxXZWJDb3JlOjpGcmFtZT4gY29yZUZyYW1lID0gRnJhbWU6OmNyZWF0ZShw
YWdlLT5jb3JlUGFnZSgpLCBvd25lckVsZW1lbnQsIGZyYW1lLT5tX2ZyYW1lTG9hZGVyQ2xpZW50
LmdldCgpKTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZS0+Y29yZVBh
Z2UoKSwgb3duZXJFbGVtZW50LCBmcmFtZS0+bV9mcmFtZUxvYWRlckNsaWVudC5nZXQoKSk7CiAg
ICAgZnJhbWUtPm1fY29yZUZyYW1lID0gY29yZUZyYW1lLnB0cigpOwotICAgIGZyYW1lLT5tX2Nv
cmVGcmFtZS0+dHJlZSgpLnNldE5hbWUoZnJhbWVOYW1lKTsKKworICAgIGNvcmVGcmFtZS0+dHJl
ZSgpLnNldE5hbWUoZnJhbWVOYW1lKTsKICAgICBpZiAob3duZXJFbGVtZW50KSB7CiAgICAgICAg
IEFTU0VSVChvd25lckVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSk7Ci0gICAgICAgIG93bmVy
RWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpLT50cmVlKCkuYXBwZW5kQ2hpbGQoV1RGTW92ZShj
b3JlRnJhbWUpKTsKKyAgICAgICAgb3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCktPnRy
ZWUoKS5hcHBlbmRDaGlsZChjb3JlRnJhbWUuZ2V0KCkpOwogICAgIH0KLSAgICBmcmFtZS0+bV9j
b3JlRnJhbWUtPmluaXQoKTsKKyAgICBjb3JlRnJhbWUtPmluaXQoKTsKKwogICAgIHJldHVybiBm
cmFtZTsKIH0KIAotUGFzc1JlZlB0cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZShzdGQ6OnVu
aXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+IGZyYW1lTG9hZGVyQ2xpZW50KQorUmVmPFdl
YkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNs
aWVudD4gZnJhbWVMb2FkZXJDbGllbnQpCiB7CiAgICAgYXV0byBmcmFtZSA9IGFkb3B0UmVmKCpu
ZXcgV2ViRnJhbWUoV1RGTW92ZShmcmFtZUxvYWRlckNsaWVudCkpKTsKIAogICAgIC8vIEFkZCBl
eHBsaWN0IHJlZigpIHRoYXQgd2lsbCBiZSBiYWxhbmNlZCBpbiBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZnJhbWVMb2FkZXJEZXN0cm95ZWQoKS4KICAgICBmcmFtZS0+cmVmKCk7CiAKLSAgICByZXR1
cm4gV1RGTW92ZShmcmFtZSk7CisgICAgcmV0dXJuIGZyYW1lOwogfQogCiBXZWJGcmFtZTo6V2Vi
RnJhbWUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRlckNs
aWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJG
cmFtZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKaW5k
ZXggMjNkNDhkMjlmODM3NjY1Mzg1Y2Y0MTQxYTBjNGY2ZTYzYzU1YzY2MC4uZDRjN2E0MDgzNGEy
ODg5YjJhMWFmZDFmY2RlMzcwNmZhZTAyNmIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmgKQEAgLTY2LDggKzY2LDggQEAgc3RydWN0IEZyYW1lSW5m
b0RhdGE7CiAKIGNsYXNzIFdlYkZyYW1lIDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9i
amVjdDo6VHlwZTo6QnVuZGxlRnJhbWU+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0
cjxXZWJGcmFtZT4gY3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSosIFdlYkNvcmU6OkZy
YW1lKik7Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWU+IGNyZWF0ZVN1YmZyYW1lKFdl
YlBhZ2UqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6SFRNTEZyYW1lT3duZXJF
bGVtZW50Kik7CisgICAgc3RhdGljIFJlZjxXZWJGcmFtZT4gY3JlYXRlV2l0aENvcmVNYWluRnJh
bWUoV2ViUGFnZSosIFdlYkNvcmU6OkZyYW1lKik7CisgICAgc3RhdGljIFJlZjxXZWJGcmFtZT4g
Y3JlYXRlU3ViZnJhbWUoV2ViUGFnZSosIGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBXZWJDb3Jl
OjpIVE1MRnJhbWVPd25lckVsZW1lbnQqKTsKICAgICB+V2ViRnJhbWUoKTsKIAogICAgIC8vIENh
bGxlZCB3aGVuIHRoZSBGcmFtZUxvYWRlckNsaWVudCAoYW5kIHRoZXJlZm9yZSB0aGUgV2ViQ29y
ZTo6RnJhbWUpIGlzIGJlaW5nIHRvcm4gZG93bi4KQEAgLTE2Niw4ICsxNjYsOCBAQCBwdWJsaWM6
CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJGcmFtZT4gY3Jl
YXRlKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4pOwotICAgIFdlYkZyYW1l
KHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4pOworICAgIHN0YXRpYyBSZWY8
V2ViRnJhbWU+IGNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsK
KyAgICBleHBsaWNpdCBXZWJGcmFtZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGll
bnQ+KTsKIAogICAgIFdlYkNvcmU6OkZyYW1lKiBtX2NvcmVGcmFtZTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAppbmRleCBkNjQ3
ODU5N2E4N2ZlZjNkYzBiOTk5MzUyMTI2NzZlZmNjNDkzMzIzLi4wMTZkNzM4ZmI2MTJkMjQzYzAw
NDllNTIwMTU4NjIxMzBmZDk1OGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcApAQCAtMTQ1LDcgKzE0NSw3IEBAIHZvaWQgV2Vi
SW5zcGVjdG9yOjpvcGVuSW5OZXdUYWIoY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcpCiAgICAgRnJh
bWUmIGluc3BlY3RlZE1haW5GcmFtZSA9IGluc3BlY3RlZFBhZ2UtPm1haW5GcmFtZSgpOwogICAg
IEZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChpbnNwZWN0ZWRNYWluRnJhbWUuZG9jdW1lbnQoKS0+
c2VjdXJpdHlPcmlnaW4oKSwgUmVzb3VyY2VSZXF1ZXN0KHVybFN0cmluZyksICJfYmxhbmsiLCBM
b2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJl
ciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5
OjpBbGxvdywgUmVwbGFjZURvY3VtZW50SWZKYXZhU2NyaXB0VVJMLCBTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAKLSAgICBQYWdlKiBuZXdQYWdlID0gaW5z
cGVjdGVkUGFnZS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KCZpbnNwZWN0ZWRNYWluRnJhbWUsIHJl
cXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVzdC5yZXNvdXJj
ZVJlcXVlc3QoKSwgTmF2aWdhdGlvblR5cGU6OkxpbmtDbGlja2VkKSk7CisgICAgUGFnZSogbmV3
UGFnZSA9IGluc3BlY3RlZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdyhpbnNwZWN0ZWRNYWlu
RnJhbWUsIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIE5hdmlnYXRpb25BY3Rpb24ocmVxdWVz
dC5yZXNvdXJjZVJlcXVlc3QoKSwgTmF2aWdhdGlvblR5cGU6OkxpbmtDbGlja2VkKSk7CiAgICAg
aWYgKCFuZXdQYWdlKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvRmluZENvbnRyb2xsZXJJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL0ZpbmRDb250cm9sbGVySU9TLm1tCmluZGV4
IDFkNjkwOGJlOWVmYjU4ZGNmM2FkYzcwYTNhMTllNWQwNzE0M2VlYjMuLmZlMzJiM2IzY2UyMGY5
YmJjYzE3NWNjODBlZWRhMWZlZDBiYjdmYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9pb3MvRmluZENvbnRyb2xsZXJJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9GaW5kQ29udHJvbGxlcklPUy5tbQpAQCAtODks
NyArODksNyBAQCB2b2lkIEZpbmRJbmRpY2F0b3JPdmVybGF5Q2xpZW50SU9TOjpkcmF3UmVjdChQ
YWdlT3ZlcmxheSYgb3ZlcmxheSwgR3JhcGhpY3NDb250ZQogYm9vbCBGaW5kQ29udHJvbGxlcjo6
dXBkYXRlRmluZEluZGljYXRvcihGcmFtZSYgc2VsZWN0ZWRGcmFtZSwgYm9vbCBpc1Nob3dpbmdP
dmVybGF5LCBib29sIHNob3VsZEFuaW1hdGUpCiB7CiAgICAgaWYgKG1fZmluZEluZGljYXRvck92
ZXJsYXkpCi0gICAgICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fZmluZEluZGljYXRvck92ZXJsYXkuZ2V0KCks
IFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICAgICAgbV93ZWJQYWdlLT5t
YWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXko
Km1fZmluZEluZGljYXRvck92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRl
KTsKIAogICAgIFJlZlB0cjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yID0gVGV4dEluZGlj
YXRvcjo6Y3JlYXRlV2l0aFNlbGVjdGlvbkluRnJhbWUoc2VsZWN0ZWRGcmFtZSwgZmluZFRleHRJ
bmRpY2F0b3JPcHRpb25zLCBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbjo6Tm9u
ZSwgRmxvYXRTaXplKHRvdGFsSG9yaXpvbnRhbE1hcmdpbiwgdG90YWxWZXJ0aWNhbE1hcmdpbikp
OwogICAgIGlmICghdGV4dEluZGljYXRvcikKQEAgLTk3LDcgKzk3LDcgQEAgYm9vbCBGaW5kQ29u
dHJvbGxlcjo6dXBkYXRlRmluZEluZGljYXRvcihGcmFtZSYgc2VsZWN0ZWRGcmFtZSwgYm9vbCBp
c1Nob3dpbmdPdmUKIAogICAgIG1fZmluZEluZGljYXRvck92ZXJsYXlDbGllbnQgPSBzdGQ6Om1h
a2VfdW5pcXVlPEZpbmRJbmRpY2F0b3JPdmVybGF5Q2xpZW50SU9TPihzZWxlY3RlZEZyYW1lLCB0
ZXh0SW5kaWNhdG9yLmdldCgpKTsKICAgICBtX2ZpbmRJbmRpY2F0b3JPdmVybGF5ID0gUGFnZU92
ZXJsYXk6OmNyZWF0ZSgqbV9maW5kSW5kaWNhdG9yT3ZlcmxheUNsaWVudCwgUGFnZU92ZXJsYXk6
Ok92ZXJsYXlUeXBlOjpEb2N1bWVudCk7Ci0gICAgbV93ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFn
ZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KG1fZmluZEluZGljYXRvck92
ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICBtX3dlYlBhZ2Ut
Pm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXko
Km1fZmluZEluZGljYXRvck92ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRl
KTsKIAogICAgIG1fZmluZEluZGljYXRvck92ZXJsYXktPnNldEZyYW1lKGVuY2xvc2luZ0ludFJl
Y3QodGV4dEluZGljYXRvci0+dGV4dEJvdW5kaW5nUmVjdEluUm9vdFZpZXdDb29yZGluYXRlcygp
KSk7CiAgICAgbV9maW5kSW5kaWNhdG9yT3ZlcmxheS0+c2V0TmVlZHNEaXNwbGF5KCk7CkBAIC0x
MjQsNyArMTI0LDcgQEAgdm9pZCBGaW5kQ29udHJvbGxlcjo6aGlkZUZpbmRJbmRpY2F0b3IoKQog
ICAgIGlmICghbV9pc1Nob3dpbmdGaW5kSW5kaWNhdG9yKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtX3dlYlBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3Rh
bGxQYWdlT3ZlcmxheShtX2ZpbmRJbmRpY2F0b3JPdmVybGF5LmdldCgpLCBQYWdlT3ZlcmxheTo6
RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgbV93ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92
ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fZmluZEluZGljYXRvck92
ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKICAgICBtX2ZpbmRJbmRp
Y2F0b3JPdmVybGF5ID0gbnVsbHB0cjsKICAgICBtX2lzU2hvd2luZ0ZpbmRJbmRpY2F0b3IgPSBm
YWxzZTsKICAgICBtX2ZvdW5kU3RyaW5nTWF0Y2hJbmRleCA9IC0xOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>299483</attachid>
            <date>2017-01-22 14:02:57 -0800</date>
            <delta_ts>2017-01-22 17:02:10 -0800</delta_ts>
            <desc>Archive of layout-test-results from ews102 for mac-elcapitan</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>731782</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
1Plg6s/NFepI+2od0f5C5xAJAwm5mLizxy43rTpLcyel0VOdD/p5w9lLaUzU0cIbjsxX8d2AY9WZ
0PcEbgVZHfVIxJhzHRx29mEEgdLp7oSA0j1SNAgUELlgAcIxEYNAESOSvoKAQkGgcBAoDESTGYi1
7EzaBYHCQSyMJCA6BnMqQaBQn7sSnyt9yiCgYAEApXvEZhAoXjp2PpR4RBwjEFAojFwgTiX2inh+
EE0WIBxjMLRgEOnL8VgYAgIF5BYDkgsMLRLkvDCQ8wLiKWFKQTgG4ilRPJ77hZDx0EJHZPkpiFwY
yNkXMBwT45ELjIVhMOdFjOiuZOPxxpkaT1wJ413AeEpA8T7IqSQj8i3FiG5kyUbkj4FkemGspYrH
I32YbA9IfozA5C25Go/XJ+l4aIHRZAZzKiHkQmAiPinHo2MKAkr31qwfSPqKjefFioNYS4XGQ4sY
T4ake4PMD5QbFzC5i3hEEZ8Ayir8B1BLAwQKAAAAAADYajZKAAAAAAAAAAAAAAAABwAcAGNyeXB0
by9VVAkAA6cihVgoJYVYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANZqNkoAAAAAAAAAAAAAAAAO
ABwAY3J5cHRvL3N1YnRsZS9VVAkAA6MihVgoJYVYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAgAAANVq
Nkol4NMILAAAACwAAAA+ABwAY3J5cHRvL3N1YnRsZS9yc2EtZ2VuZXJhdGUta2V5LW1hbGZvcm1l
ZC1wYXJhbWV0ZXJzLXN0ZGVyci50eHRVVAkAA6IihViiIoVYdXgLAAEE9QEAAAQUAAAAQ291bGQg
bm90IGdlbmVyYXRlIGEga2V5IHBhaXIsIHN0YXR1cyAtNDMwNApQSwMEFAACAAgA1mo2SjA7uLFL
AAAAaAAAADwAHABjcnlwdG8vc3VidGxlL3JzYS1pbXBvcnQta2V5LW1hbGZvcm1lZC1wYXJhbWV0
ZXJzLXN0ZGVyci50eHRVVAkAA6MihVijIoVYdXgLAAEE9QEAAAQUAAAAbcuxDYAwDETRniluHxpW
sGRLsYA4ci5EbA8NHfV/f0u/hIbd7o7pLDEIUXV6VDmgQoGkoQbRR2uRNF3Wj+OMN7JIBWegpZ/W
f4YHUEsDBAoAAAAAANhqNkoAAAAAAAAAAAAAAAAPABwAY3J5cHRvL3dvcmtlcnMvVVQJAAOnIoVY
KCWFWHV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADYajZKAAAAAAAAAAAAAAAAFgAcAGNyeXB0by93
b3JrZXJzL3N1YnRsZS9VVAkAA6cihVgoJYVYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAgAAANhqNkol
4NMILAAAACwAAAAxABwAY3J5cHRvL3dvcmtlcnMvc3VidGxlL3JzYS1nZW5lcmF0ZS1rZXktc3Rk
ZXJyLnR4dFVUCQADpyKFWKcihVh1eAsAAQT1AQAABBQAAABDb3VsZCBub3QgZ2VuZXJhdGUgYSBr
ZXkgcGFpciwgc3RhdHVzIC00MzA0ClBLAwQKAAAAAADZajZKAAAAAAAAAAAAAAAADQAcAGRpc3Bs
YXlsaXN0cy9VVAkAA6kihVgoJYVYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIANlqNkqjV/3oUAAA
AI4AAAAyABwAZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy10cmFuc2Zvcm1zLXN0ZGVyci50
eHRVVAkAA6kihVipIoVYdXgLAAEE9QEAAAQUAAAAcy9KLMjITC52zs8rSa0osbJKTy1xDvHV0FTI
LFbIyy9RqEwtUUjOzy1ILMlMyklVKM8syVAoSk3OL0rJzEsHyoC1FetxuaMbVIxmEDGGAABQSwME
FAACAAgA2Wo2SvKWldVHAAAASQAAACkAHABkaXNwbGF5bGlzdHMvbGF5ZXItZGlzcGF5LWxpc3Qt
c3RkZXJyLnR4dFVUCQADqSKFWKkihVh1eAsAAQT1AQAABBQAAABzL0osyMhMLnbOzytJrSixskpP
LXEO8dXQVMgsVsjLL1GoTC1RSM7PLUgsyUzKSVUozyzJUChKTc4vSsnMSwfKgLUV63EBAFBLAwQK
AAAAAAAIazZKAAAAAAAAAAAAAAAACAAcAGVkaXRpbmcvVVQJAAMAI4VYKCWFWHV4CwABBPUBAAAE
FAAAAFBLAwQKAAAAAAAIazZKAAAAAAAAAAAAAAAAEQAcAGVkaXRpbmcvZGVsZXRpbmcvVVQJAAMA
I4VYKCWFWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAIazZK6/k8UsEBAAAGEwAAKAAcAGVkaXRp
bmcvZGVsZXRpbmcvZGVsZXRlLWVtb2ppLXN0ZGVyci50eHRVVAkAAwAjhVgAI4VYdXgLAAEE9QEA
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
cD43zg7pljMnzGH4wvnMOHNsd8uZSg7i8j//J+dvUEsDBAoAAAAAAPdqNkoAAAAAAAAAAAAAAAAJ
ABwAZmFzdC94c2wvVVQJAAPhIoVYKCWFWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAD3ajZKTvsg
+IgAAADnAAAAJQAcAGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0ZGVyci50eHRVVAkAA+Ei
hVjhIoVYdXgLAAEE9QEAAAQUAAAApY6xDsIwDET3foV/oHhgywwTbCA6u60rIjlx5ThS+XsC5Q9Y
Tiffye8mTWsU8qgZ2EwtwBKFvxIQ8aFSExc8kROehxsOPF6i45VeWv3OxQsuVBy3ImhctNrU6tvT
+lmnQ7uCxMxwBBZOnB1iWtW8a0nYLQSomcYGdQVRmn/w/9D9/pznz4buDVBLAwQUAAIACAD3ajZK
/aIuZI8AAADuAAAAJwAcAGZhc3QveHNsL3hzbHQtYmFkLWltcG9ydC11cmktc3RkZXJyLnR4dFVU
CQAD4SKFWOEihVh1eAsAAQT1AQAABBQAAACdjjEOwjAMRfeewhcoHtgywwQbiM5u64pITlw5jlRu
T6CcgOXL/3/bepOmNQp51AxsphZgicJfCYj4UKmJC57ICc/DDQceL9HxSi+tfufiBRcqjlsRNC5a
bWrrzXk/0tzHtKp5Xy0eWgYSM8MRWDhxdtjbrjVhHyFAzTQ2AFcQpfkH8idG1lKn5+dFuxPp3lBL
AwQUAAIACAD3ajZKz49mDlAAAACgAAAAJAAcAGZhc3QveHNsL3hzbHQtY29udGVudFR5cGUtc3Rk
ZXJyLnR4dFVUCQAD4SKFWOEihVh1eAsAAQT1AQAABBQAAACtzLENwCAMBdGeKf4GUdpsg8AISzZG
lokyfsgOaa67V0wnSw62AXI3v9BYCBAehBMkpDQCtmKuSDzuLFyxuwjNHErRre7LLJW/sKeHyvGR
L1BLAwQUAAIACAD3ajZKgUp3rUsAAACsAAAANAAcAGZhc3QveHNsL3hzbHQtdHJhbnNmb3JtLXRv
LWZyYWdtZW50LWNyYXNoLXN0ZGVyci50eHRVVAkAA+EihVjhIoVYdXgLAAEE9QEAAAQUAAAAtcyx
DYAwDETRPlPcCrRs48AFWXJsZCzmR6JgA+qv97eYp5qUhoOZkSuGGgFTJxbQOOmFW1KlG1ty51DX
V8TAYdHFvo7iVW375foAUEsDBBQAAgAIAC5sNkrpc6cBuwEAABoDAAARABwAZnVsbF9yZXN1bHRz
Lmpzb25VVAkAAyclhVgoJYVYdXgLAAEE9QEAAAQUAAAApVLBjtMwEP2VyieQEtImK1UKp0otCLbA
alNYOEWOM9lYdWzLnuw2qvrvO3agQtoDB3KJ8zzz3ps32Wy39f2u+r4/VG/ODMGjZ+WZDdBKHg7o
uDheD6nUacN1m3qcFLzrcVDhzoE1DlnJPuw3t79YwuBkQSC0BN1tqooQLnDkVMwOu5+HRQQvl0vC
5BBaQ+WZPRcivqBJreLYGTekV0d/tBpnnj24GZMejZuivR5SZQRHaTS5RHAdFxBurqh1Bo0wKvWA
dJ9qwojtCPr1IPe7j5RK9enb139PEwaJT0Im0UY3r3LsVfx+ki2YtB3dbIkLAd7LRiqJ0//HGT34
o7Q21BbLfJkwPQ61g0cXdIwmE6uEGUrL1cJx30OwFfYQInOjjSodVx7m1kFSn35kJVEpPpkR6zhc
3UpH8tkPo8YBfLblyLPdQ5U9QHMrMdvH2kPMIWFPtDBSZ+XNzGq590H5pliv1wmz8gTqNy9o3qi/
TLQcaY1suSqL4u7LwujFZ65H7qZFnieLfLlaE3/PfW0drXUiahQ9K9GN1NzJU2CLWRSzdKf4kf6Y
PGEjWajnaOM2fN3JUBtaL2/fvwBQSwMECgAAAAAAA2s2SgAAAAAAAAAAAAAAAAUAHABodHRwL1VU
CQAD9iKFWCglhVh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAGWs2SgAAAAAAAAAAAAAAAAsAHABo
dHRwL3Rlc3RzL1VUCQADIiOFWCglhVh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAA2s2SgAAAAAA
AAAAAAAAABEAHABodHRwL3Rlc3RzL21lZGlhL1VUCQAD9iKFWCglhVh1eAsAAQT1AQAABBQAAABQ
SwMECgAAAAAAA2s2SgAAAAAAAAAAAAAAABUAHABodHRwL3Rlc3RzL21lZGlhL2hscy9VVAkAA/Yi
hVgoJYVYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAANrNko+zBGYLQAAAC4AAAA8ABwAaHR0cC90
ZXN0cy9tZWRpYS9obHMvdmlkZW8tZHVyYXRpb24tYWNjZXNzaWJpbGl0eS1hY3R1YWwudHh0VVQJ
AAP2IoVY9iKFWHV4CwABBPUBAAAEFAAAAONyDXP1C9EoLknMyUlN0VQIcQ0O0UhLzClO1VRwc/T0
4XL1c1HwdwOLc3EBAFBLAwQUAAIACAADazZKplfZlzQBAADIAwAAOgAcAGh0dHAvdGVzdHMvbWVk
aWEvaGxzL3ZpZGVvLWR1cmF0aW9uLWFjY2Vzc2liaWxpdHktZGlmZi50eHRVVAkAA/YihVj2IoVY
dXgLAAEE9QEAAAQUAAAAxdJBT8IwGAbg+37F54mR0TUzHryQTGVEgoKRBbyW9cM1lnZpvxr4924I
Bw/eXDw1fZs873soYwz42uqwR88nggQvNiu+we1c0fm4D0pL/ooahUeuxdEGYoSemEMfNHleEzW8
Szzfo1SC19rzTyXRMhmcIGUNE1WF3qut0oqODA8NVoQypQNFSZL8xwZRURD6tCDPgWWj7BaSbHQD
eR5BxIp1sSjjSpimraPa2fBeDy9xl3WXt5fioSwmEJ+a0ksTXI1hZnbKtD0wHsOAXMDBEJbzC+AR
P1D+IFCLxqMs1R5dKtFXTjUdlioj8bDcxYMMVlhZI1vpqlVZ9of29dn2feAZPCsTCPsZ/m33NPzR
BtfP7E7+dXRypklo3dpQFqsy3gntcQjTu9lTBMViAsvp6aH9rl9QSwMEFAACAAgAA2s2SpGfzR+u
AAAAfgIAAD4AHABodHRwL3Rlc3RzL21lZGlhL2hscy92aWRlby1kdXJhdGlvbi1hY2Nlc3NpYmls
aXR5LWV4cGVjdGVkLnR4dFVUCQAD9iKFWPYihVh1eAsAAQT1AQAABBQAAAC1zr0OgjAUhuG9V3Gc
gEES3JmkRmMEExrj2tCDNGJL+mPk7oXA4OIG28mXnCcvoTeas7Diqmt57xqj/aOJyLSO03Dfr3TP
aAbhWwrUsfCGO6kVbFI4qVoq6XpIUwic8RhEUJznd4v4RPELYMs7i4LJF5pYoK2M7EYqlkrgp6jD
IIESK63E4GwGc5ssJu9m2S5PJ3CRyjtcI3qSV4k+am/WSB7d/8F5BsUBGC0ZIV9QSwMEFAACAAgA
A2s2SoV0SmBoCAAAniQAAEIAHABodHRwL3Rlc3RzL21lZGlhL2hscy92aWRlby1kdXJhdGlvbi1h
Y2Nlc3NpYmlsaXR5LXByZXR0eS1kaWZmLmh0bWxVVAkAA/YihVj2IoVYdXgLAAEE9QEAAAQUAAAA
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
ABwAaW1wb3J0ZWQvdzNjL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzX1JT
QVNTQS1QS0NTMS12MV81LXN0ZGVyci50eHRVVAkAAxgjhVgYI4VYdXgLAAEE9QEAAAQUAAAAc84v
zUlRyMsvUUhPzUstSixJVUhUyE6tVChIzCzSUSguSSwpLVbQNTE2MOFyHlU7qnaQqQUAUEsDBAoA
AAAAABdrNkoAAAAAAAAAAAAAAAAgABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9V
VAkAAx4jhVgoJYVYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAABRrNkoAAAAAAAAAAAAAAAAmABwA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9VVAkAAxcjhVgoJYVYdXgLAAEE
9QEAAAQUAAAAUEsDBAoAAAAAABRrNkoAAAAAAAAAAAAAAAAqABwAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvVVQJAAMXI4VYKCWFWHV4CwABBPUBAAAEFAAAAFBLAwQK
AAAAAAAXazZKAAAAAAAAAAAAAAAALwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2NvcnMvVVQJAAMdI4VYKCWFWHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAUazZK
XaqaBwsCAAC9DAAARQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBp
L2NvcnMvY29ycy1vcmlnaW4tc3RkZXJyLnR4dFVUCQADFyOFWBcjhVh1eAsAAQT1AQAABBQAAADt
ll1rE0EUhu/9FXvT3J1kPnfOBIIsMa2CmkL0upz5SoLbbMiuaP+9sy1WI4WmBlFJmbmaHc47+/Dy
njOdv1/M386Kd7PForqYjYv5br1cb4pV123Ho1HdeKpXTduNERkr1m2xabqC6rr5EkPhborK+9i2
MG023a6poeq/wF2N4Yvpr8XPY+dXRXX5pvC06SvVDYXvWlyYIcuL32qNUn93RNv1aBfb5vMu64y2
u5jq9XLVDbc3L7vmU9xMpArcJ87AGCtBlRoBHeMQg+K6dCpqVQ6u6esVLeOEDZrbp016yTNZnYnz
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
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvVVQJAAMeI4VYKCWFWHV4CwABBPUBAAAE
FAAAAFBLAwQKAAAAAAAXazZKAAAAAAAAAAAAAAAANgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L1VUCQADHiOFWCglhVh1eAsAAQT1AQAABBQA
AABQSwMECgAAAAAAF2s2SgAAAAAAAAAAAAAAAE0AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL1VUCQAD
HiOFWCglhVh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAF2s2SqMLY3vJAAAAAgMAAHsAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9j
YXRpb24taW50ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJva2VuLWFjdHVh
bC50eHRVVAkAAx4jhVgeI4VYdXgLAAEE9QEAAAQUAAAAnZKxbsIwEIZ3P8UtTJWysLFFUShIIUQ4
fQDHOUjo4bPMIXj8QiSE2i42i6f/+7/z6YptrbdVCZtS6/yzXEDNAoaIr9iDMBCb/v5YQxDwzJdg
cQFnG0Yvs3mpinfwjoz7zgY5kVJNrjVoFFi1bQNfuwr2wZxwYmRkl/nAwpbp0XaDV743YlLyMf1T
p1rm6ypaMWXaAYG7I1oBaxy4+w46BEvssM/SRtiPhIm//INEWcSnSn4RMY4D+wFDouYfFGMaRPxH
6m08IfUDUEsDBBQAAgAIABdrNkoBa2rnFAEAALkCAAB5ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9s
b2NhdGlvbi1wcm90b2NvbC1zZXR0ZXItbm9uLWJyb2tlbi1kaWZmLnR4dFVUCQADHiOFWB4jhVh1
eAsAAQT1AQAABBQAAADVUU1PwzAMvfdX+MKpZBGauOzUARVIjG1aBjunqadFc+sqcdXt35NOTOKI
4MTFlj+en5+tlAL9wdQ3GPWTFavLndE7rF69fLmH3lOtN0hoI2qyZ+5FCUZRAWNPErVvOg6CtR6m
Tg9YqY6s7Dk0l7aoD9KQrgIPEUOKfBQOZy0HVMTOiudW+VYw7K1LBNdUF1jYMamIkoqqTbk05Iit
wlOHLhFO5CRZnuf/UIJ10lu6CCgKUHe395CPpiiy/HG1NKtFCW+lMfPncgZLFrBEPGANwkBsaxhJ
CNL+3AeHM4gu+E5upmUGv8JXZNvjZNSZqb8ukMF6bgwYFHjZbtfwvlnAPtgG4XqayfU047jTd0Cd
PvgDwCdQSwMEFAACAAgAF2s2So72CEDJAAAAAgMAAH0AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2xv
Y2F0aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJva2VuLWV4cGVjdGVkLnR4dFVUCQADHiOFWB4j
hVh1eAsAAQT1AQAABBQAAACdkrFuwjAQhnc/xS1MlbKwsUVRKEghRDh9AMc5SOjhs8whePxCJITa
LjaLp//7v/Ppim2tt1UJm1Lr/LNcQM0Choiv2IMwEJv+/lhDEPDMl2BxAR0Z950NciJVvMOfbRi9
zOalUk2uNWgUWLVtA1+7CvbBnHBCZGSX+cDClulRdoNXvjdiUvIx/VOnWubrKloxZdoBgbsjWgFr
HLj7CjoES+ywz9JG2I+Eib/8g0RZxKdKfhExjgP7AUOi5h8UYxpE/EfqbTwh9QNQSwMEFAACAAgA
F2s2SpYQts/+BwAAZxsAAIEAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29s
LXNldHRlci1ub24tYnJva2VuLXByZXR0eS1kaWZmLmh0bWxVVAkAAx4jhVgeI4VYdXgLAAEE9QEA
AAQUAAAA5Vltc9s2Ev7uX8Gxp+eZjklKlpSzJMc3iS1fZ5qmmSptP96AJCgiBgkeAFpyevffb/FG
kRQpK3Od+3LNNCKBBfDs7rMvYG4zmdO7s9sMowR+ciyRF2eICyzfXlYy9W8uYVjIF4rvzhaUFE9X
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
VAkAAyMlhVgoJYVYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAACxsNkoAAAAAAAAAAAAAAAAoABwA
cmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1VUCQADIyWFWCglhVh1eAsA
AQT1AQAABBQAAABQSwMECgAAAAAALGw2SgAAAAAAAAAAAAAAAC0AHAByZXRyaWVzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9VVAkAAyMlhVgoJYVYdXgLAAEE9QEAAAQUAAAA
UEsDBAoAAAAAACxsNkoAAAAAAAAAAAAAAAA2ABwAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvVVQJAAMjJYVYKCWFWHV4CwABBPUBAAAEFAAAAFBL
AwQKAAAAAAAsbDZKAAAAAAAAAAAAAAAAPgAcAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvVVQJAAMjJYVYKCWFWHV4CwABBPUBAAAE
FAAAAFBLAwQKAAAAAAAsbDZKAAAAAAAAAAAAAAAAVQAcAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVy
ZmFjZS9VVAkAAyMlhVgoJYVYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIACxsNkqjC2N7yQAAAAID
AACDABwAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3Nl
cnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29sLXNldHRl
ci1ub24tYnJva2VuLWFjdHVhbC50eHRVVAkAAyMlhVgjJYVYdXgLAAEE9QEAAAQUAAAAnZKxbsIw
EIZ3P8UtTJWysLFFUShIIUQ4fQDHOUjo4bPMIXj8QiSE2i42i6f/+7/z6YptrbdVCZtS6/yzXEDN
AoaIr9iDMBCb/v5YQxDwzJdgcQFnG0Yvs3mpinfwjoz7zgY5kVJNrjVoFFi1bQNfuwr2wZxwYmRk
l/nAwpbp0XaDV743YlLyMf1Tp1rm6ypaMWXaAYG7I1oBaxy4+w46BEvssM/SRtiPhIm//INEWcSn
Sn4RMY4D+wFDouYfFGMaRPxH6m08IfUDUEsDBBQAAgAIACxsNkpsdEQ8GAEAAMkCAACBABwAcmV0
cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9y
eS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJv
a2VuLWRpZmYudHh0VVQJAAMjJYVYIyWFWHV4CwABBPUBAAAEFAAAANVRTU/DMAy991f4wqlkEZq4
7NQBFUiMbVoGO6epp0Vz6ypx1e3fk05M4ojgxMWWP56fn62UAv3B1DcY9ZMVq8ud0TusXr18uYfe
U603SGgjarJn7kUJRlEBY08SdUAJPuF903EQrPUwdXrASnVkZc+hubRHfZCGdBV4iBhS5KNwOGs5
oCJ2Vjy3yreCYW9dIrqmusDCjklFlFRUbcqlIUdsFZ46dIlwIifJ8jz/x1Ksk97SRUhRgLq7vYd8
NEWR5Y+rpVktSngrjZk/lzNYsoAl4gFrEAZiW8NIQpB0cB8cziC64Du5mZYZ/ApfkW2Pk1Fnpv66
QAbruTFgUOBlu13D+2YB+2AbhOtpJtfTjONO3wF1+uQPAJ9QSwMEFAACAAgALGw2So72CEDJAAAA
AgMAAIUAHAByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93
c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2UvbG9jYXRpb24tcHJvdG9jb2wtc2V0
dGVyLW5vbi1icm9rZW4tZXhwZWN0ZWQudHh0VVQJAAMjJYVYIyWFWHV4CwABBPUBAAAEFAAAAJ2S
sW7CMBCGdz/FLUyVsrCxRVEoSCFEOH0AxzlI6OGzzCF4/EIkhNouNoun//u/8+mKba23VQmbUuv8
s1xAzQKGiK/YgzAQm/7+WEMQ8MyXYHEBHRn3nQ1yIlW8w59tGL3M5qVSTa41aBRYtW0DX7sK9sGc
cEJkZJf5wMKW6VF2g1e+N2JS8jH9U6da5usqWjFl2gGBuyNaAWscuPsKOgRL7LDP0kbYj4SJv/yD
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
VVQFAAMeJYVYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgACAAAA0Wo2Sha9BmEHAAAABwAAABUAGAAA
AAAAAQAAAKSBcTQAAF93cHRfY2VydHMvc2VyaWFsLm9sZFVUBQADmSKFWHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIACxsNkp5P1QoXZQBAJh1DwAOABgAAAAAAAEAAACkgcc0AABhY2Nlc3NfbG9n
LnR4dFVUBQADJCWFWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANhqNkoAAAAAAAAAAAAAAAAH
ABgAAAAAAAAAEADtQWzJAQBjcnlwdG8vVVQFAAOnIoVYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAA1mo2SgAAAAAAAAAAAAAAAA4AGAAAAAAAAAAQAO1BrckBAGNyeXB0by9zdWJ0bGUvVVQFAAOj
IoVYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgACAAAA1Wo2SiXg0wgsAAAALAAAAD4AGAAAAAAAAQAA
AKSB9ckBAGNyeXB0by9zdWJ0bGUvcnNhLWdlbmVyYXRlLWtleS1tYWxmb3JtZWQtcGFyYW1ldGVy
cy1zdGRlcnIudHh0VVQFAAOiIoVYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1mo2SjA7uLFL
AAAAaAAAADwAGAAAAAAAAQAAAKSBmcoBAGNyeXB0by9zdWJ0bGUvcnNhLWltcG9ydC1rZXktbWFs
Zm9ybWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUBQADoyKFWHV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAANhqNkoAAAAAAAAAAAAAAAAPABgAAAAAAAAAEADtQVrLAQBjcnlwdG8vd29ya2Vycy9V
VAUAA6cihVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADYajZKAAAAAAAAAAAAAAAAFgAYAAAA
AAAAABAA7UGjywEAY3J5cHRvL3dvcmtlcnMvc3VidGxlL1VUBQADpyKFWHV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAgAAANhqNkol4NMILAAAACwAAAAxABgAAAAAAAEAAACkgfPLAQBjcnlwdG8vd29y
a2Vycy9zdWJ0bGUvcnNhLWdlbmVyYXRlLWtleS1zdGRlcnIudHh0VVQFAAOnIoVYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAA2Wo2SgAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1BiswBAGRpc3Bs
YXlsaXN0cy9VVAUAA6kihVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADZajZKo1f96FAAAACO
AAAAMgAYAAAAAAABAAAApIHRzAEAZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy10cmFuc2Zv
cm1zLXN0ZGVyci50eHRVVAUAA6kihVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADZajZK8paV
1UcAAABJAAAAKQAYAAAAAAABAAAApIGNzQEAZGlzcGxheWxpc3RzL2xheWVyLWRpc3BheS1saXN0
LXN0ZGVyci50eHRVVAUAA6kihVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAIazZKAAAAAAAA
AAAAAAAACAAYAAAAAAAAABAA7UE3zgEAZWRpdGluZy9VVAUAAwAjhVh1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAAAIazZKAAAAAAAAAAAAAAAAEQAYAAAAAAAAABAA7UF5zgEAZWRpdGluZy9kZWxl
dGluZy9VVAUAAwAjhVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAIazZK6/k8UsEBAAAGEwAA
KAAYAAAAAAABAAAApIHEzgEAZWRpdGluZy9kZWxldGluZy9kZWxldGUtZW1vamktc3RkZXJyLnR4
dFVUBQADACOFWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACxsNkrEfT/ghgsAAP5DAAANABgA
AAAAAAEAAACkgefQAQBlcnJvcl9sb2cudHh0VVQFAAMkJYVYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAA92o2SgAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1BtNwBAGZhc3QvVVQFAAPiIoVYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA6Go2SgAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1B89wB
AGZhc3QvY2FudmFzL1VUBQADxCKFWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOhqNkqOw+Ah
fQAAAAIBAAAmABgAAAAAAAEAAACkgTndAQBmYXN0L2NhbnZhcy9jYW52YXMtbGluZURhc2gtc3Rk
ZXJyLnR4dFVUBQADxCKFWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPFqNkoAAAAAAAAAAAAA
AAAMABgAAAAAAAAAEADtQRbeAQBmYXN0L2ltYWdlcy9VVAUAA9YihVh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADxajZKIY+9ODIAAAAzAAAALAAYAAAAAAABAAAApIFc3gEAZmFzdC9pbWFnZXMv
cGRmLWFzLWltYWdlLWNyb3AtYm94LXN0ZGVyci50eHRVVAUAA9YihVh1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAAD3ajZKAAAAAAAAAAAAAAAACgAYAAAAAAAAABAA7UH03gEAZmFzdC90ZXh0L1VU
BQAD4iKFWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPdqNkoONUVqeQEAAIgJAAAjABgAAAAA
AAEAAACkgTjfAQBmYXN0L3RleHQvZW1vamktZ2VuZGVyLTItc3RkZXJyLnR4dFVUBQAD4iKFWHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPdqNkoAAAAAAAAAAAAAAAAJABgAAAAAAAAAEADtQQ7h
AQBmYXN0L3hzbC9VVAUAA+EihVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD3ajZKTvsg+IgA
AADnAAAAJQAYAAAAAAABAAAApIFR4QEAZmFzdC94c2wvdHJhbnNmb3JtLXhoci1kb2Mtc3RkZXJy
LnR4dFVUBQAD4SKFWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPdqNkr9oi5kjwAAAO4AAAAn
ABgAAAAAAAEAAACkgTjiAQBmYXN0L3hzbC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRV
VAUAA+EihVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD3ajZKz49mDlAAAACgAAAAJAAYAAAA
AAABAAAApIEo4wEAZmFzdC94c2wveHNsdC1jb250ZW50VHlwZS1zdGRlcnIudHh0VVQFAAPhIoVY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA92o2SoFKd61LAAAArAAAADQAGAAAAAAAAQAAAKSB
1uMBAGZhc3QveHNsL3hzbHQtdHJhbnNmb3JtLXRvLWZyYWdtZW50LWNyYXNoLXN0ZGVyci50eHRV
VAUAA+EihVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAubDZK6XOnAbsBAAAaAwAAEQAYAAAA
AAABAAAApIGP5AEAZnVsbF9yZXN1bHRzLmpzb25VVAUAAyclhVh1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAAADazZKAAAAAAAAAAAAAAAABQAYAAAAAAAAABAA7UGV5gEAaHR0cC9VVAUAA/YihVh1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAZazZKAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UHU
5gEAaHR0cC90ZXN0cy9VVAUAAyIjhVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAADazZKAAAA
AAAAAAAAAAAAEQAYAAAAAAAAABAA7UEZ5wEAaHR0cC90ZXN0cy9tZWRpYS9VVAUAA/YihVh1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAAADazZKAAAAAAAAAAAAAAAAFQAYAAAAAAAAABAA7UFk5wEA
aHR0cC90ZXN0cy9tZWRpYS9obHMvVVQFAAP2IoVYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
A2s2Sj7MEZgtAAAALgAAADwAGAAAAAAAAQAAAKSBs+cBAGh0dHAvdGVzdHMvbWVkaWEvaGxzL3Zp
ZGVvLWR1cmF0aW9uLWFjY2Vzc2liaWxpdHktYWN0dWFsLnR4dFVUBQAD9iKFWHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAANrNkqmV9mXNAEAAMgDAAA6ABgAAAAAAAEAAACkgVboAQBodHRwL3Rl
c3RzL21lZGlhL2hscy92aWRlby1kdXJhdGlvbi1hY2Nlc3NpYmlsaXR5LWRpZmYudHh0VVQFAAP2
IoVYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAA2s2SpGfzR+uAAAAfgIAAD4AGAAAAAAAAQAA
AKSB/ukBAGh0dHAvdGVzdHMvbWVkaWEvaGxzL3ZpZGVvLWR1cmF0aW9uLWFjY2Vzc2liaWxpdHkt
ZXhwZWN0ZWQudHh0VVQFAAP2IoVYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAA2s2SoV0SmBo
CAAAniQAAEIAGAAAAAAAAQAAAKSBJOsBAGh0dHAvdGVzdHMvbWVkaWEvaGxzL3ZpZGVvLWR1cmF0
aW9uLWFjY2Vzc2liaWxpdHktcHJldHR5LWRpZmYuaHRtbFVUBQAD9iKFWHV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAABlrNkoAAAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQQj0AQBodHRwL3Rlc3Rz
L21pc2MvVVQFAAMiI4VYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAGWs2ShU1NZJ6AAAAvAAA
ACoAGAAAAAAAAQAAAKSBUvQBAGh0dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1pbXBvcnQtc3RkZXJy
LnR4dFVUBQADIiOFWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABRrNkoAAAAAAAAAAAAAAAAU
ABgAAAAAAAAAEADtQTD1AQBodHRwL3Rlc3RzL3NlY3VyaXR5L1VUBQADFyOFWHV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAA1rNkoAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQX71AQBodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAUAAwkjhVh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAANazZKY6qsbIIAAACoAAAAQAAYAAAAAAABAAAApIHi9QEAaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVU
BQADCSOFWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA1rNkpjqqxsggAAAKgAAABSABgAAAAA
AAEAAACkgd72AQBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wt
dW5hZmZlY3RlZC1ieS1zdHlsZS1zcmMtMi1zdGRlcnIudHh0VVQFAAMJI4VYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAFGs2SmBLZhCRAAAA+wEAAEUAGAAAAAAAAQAAAKSB7PcBAGh0dHAvdGVz
dHMvc2VjdXJpdHkveHNzLURFTklFRC14c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJy
LnR4dFVUBQADFyOFWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAClsNkpbBFgOogUAAE0QAAAK
ABgAAAAAAAEAAACkgfz4AQBodHRwZC5jb25mVVQFAAMdJYVYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAEms2SgAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1B4v4BAGltcG9ydGVkL1VUBQADFCOF
WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABRrNkoAAAAAAAAAAAAAAAANABgAAAAAAAAAEADt
QSX/AQBpbXBvcnRlZC93M2MvVVQFAAMXI4VYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAEms2
SgAAAAAAAAAAAAAAABoAGAAAAAAAAAAQAO1BbP8BAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkv
VVQFAAMUI4VYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAFGs2SgAAAAAAAAAAAAAAACYAGAAA
AAAAAAAQAO1BwP8BAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvVVQFAAMY
I4VYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAEms2So80GnBEAAAAoAkAAEcAGAAAAAAAAQAA
AKSBIAACAGltcG9ydGVkL3czYy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJl
c19SU0EtT0FFUC1zdGRlcnIudHh0VVQFAAMUI4VYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
FGs2SlQCybI2AAAAwAIAAFAAGAAAAAAAAQAAAKSB5QACAGltcG9ydGVkL3czYy9XZWJDcnlwdG9B
UEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19SU0FTU0EtUEtDUzEtdjFfNS1zdGRlcnIudHh0
VVQFAAMYI4VYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAF2s2SgAAAAAAAAAAAAAAACAAGAAA
AAAAAAAQAO1BpQECAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvVVQFAAMeI4VYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAFGs2SgAAAAAAAAAAAAAAACYAGAAAAAAAAAAQAO1B/wEC
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvVVQFAAMXI4VYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAFGs2SgAAAAAAAAAAAAAAACoAGAAAAAAAAAAQAO1BXwICAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL1VUBQADFyOFWHV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAABdrNkoAAAAAAAAAAAAAAAAvABgAAAAAAAAAEADtQcMCAgBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL1VUBQADHSOFWHV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIABRrNkpdqpoHCwIAAL0MAABFABgAAAAAAAEAAACkgSwDAgBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtb3JpZ2luLXN0
ZGVyci50eHRVVAUAAxcjhVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAWazZK4pjbAZkBAADe
BQAASAAYAAAAAAABAAAApIG2BQIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC1zdGRlcnIudHh0VVQFAAMbI4VYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAF2s2SkngAPbKAgAAvxMAAFEAGAAAAAAAAQAAAKSB0QcCAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1yZWRpcmVjdC1wcmVm
bGlnaHQtc3RkZXJyLnR4dFVUBQADHSOFWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAABdrNkoA
AAAAAAAAAAAAAAAlABgAAAAAAAAAEADtQSYLAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvVVQFAAMeI4VYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAF2s2SgAAAAAAAAAA
AAAAAC4AGAAAAAAAAAAQAO1BhQsCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy9VVAUAAx4jhVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAXazZKAAAAAAAA
AAAAAAAANgAYAAAAAAAAABAA7UHtCwIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Jyb3dzZXJzL2hpc3RvcnkvVVQFAAMeI4VYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
F2s2SgAAAAAAAAAAAAAAAE0AGAAAAAAAAAAQAO1BXQwCAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2UvVVQF
AAMeI4VYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAF2s2SqMLY3vJAAAAAgMAAHsAGAAAAAAA
AQAAAKSB5AwCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9o
aXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2UvbG9jYXRpb24tcHJvdG9jb2wtc2V0dGVyLW5v
bi1icm9rZW4tYWN0dWFsLnR4dFVUBQADHiOFWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABdr
NkoBa2rnFAEAALkCAAB5ABgAAAAAAAEAAACkgWIOAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2xvY2F0
aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJva2VuLWRpZmYudHh0VVQFAAMeI4VYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAF2s2So72CEDJAAAAAgMAAH0AGAAAAAAAAQAAAKSBKRACAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy9oaXN0b3J5L3RoZS1sb2Nh
dGlvbi1pbnRlcmZhY2UvbG9jYXRpb24tcHJvdG9jb2wtc2V0dGVyLW5vbi1icm9rZW4tZXhwZWN0
ZWQudHh0VVQFAAMeI4VYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAF2s2SpYQts/+BwAAZxsA
AIEAGAAAAAAAAQAAAKSBqRECAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy9oaXN0b3J5L3RoZS1sb2NhdGlvbi1pbnRlcmZhY2UvbG9jYXRpb24tcHJvdG9jb2wt
c2V0dGVyLW5vbi1icm9rZW4tcHJldHR5LWRpZmYuaHRtbFVUBQADHiOFWHV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAEhrNkoAAAAAAAAAAAAAAAAGABgAAAAAAAAAEADtQWIaAgBtZWRpYS9VVAUA
A3cjhVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABIazZKAAAAAAAAAAAAAAAADAAYAAAAAAAA
ABAA7UGiGgIAbWVkaWEvdHJhY2svVVQFAAN3I4VYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
SGs2So3pGFRLAQAAVAIAACoAGAAAAAAAAQAAAKSB6BoCAG1lZGlhL3RyYWNrL3RyYWNrLWluLWJh
bmQtc3R5bGUtYWN0dWFsLnR4dFVUBQADdyOFWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEhr
Nkrj5XqAcAEAAL0CAAAoABgAAAAAAAEAAACkgZccAgBtZWRpYS90cmFjay90cmFjay1pbi1iYW5k
LXN0eWxlLWRpZmYudHh0VVQFAAN3I4VYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgASGs2Sgz6
5Oo2AQAAMwIAACwAGAAAAAAAAQAAAKSBaR4CAG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5
bGUtZXhwZWN0ZWQudHh0VVQFAAN3I4VYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgASGs2ShT5
4r+WCAAA0CAAADAAGAAAAAAAAQAAAKSBBSACAG1lZGlhL3RyYWNrL3RyYWNrLWluLWJhbmQtc3R5
bGUtcHJldHR5LWRpZmYuaHRtbFVUBQADdyOFWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABBr
NkoddJDSSgIAAJAQAAAaABgAAAAAAAEAAACkgQUpAgBweXdlYnNvY2tldC53cy5sb2ctZXJyLnR4
dFVUBQADDyOFWHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABBrNkrTIO9vBwEAAI8CAAAaABgA
AAAAAAEAAACkgaMrAgBweXdlYnNvY2tldC53cy5sb2ctb3V0LnR4dFVUBQADDyOFWHV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAANBqNkoAAAAAAAAAAAAAAAAbABgAAAAAAAAAAACkgf4sAgBweXdl
YnNvY2tldC53c3MubG9nLWVyci50eHRVVAUAA5cihVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AADQajZKAAAAAAAAAAAAAAAAGwAYAAAAAAAAAAAApIFTLQIAcHl3ZWJzb2NrZXQud3NzLmxvZy1v
dXQudHh0VVQFAAOXIoVYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALmw2SkUmHTnRJwAAy6oA
AAwAGAAAAAAAAQAAAKSBqC0CAHJlc3VsdHMuaHRtbFVUBQADJyWFWHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAACxsNkoAAAAAAAAAAAAAAAAIABgAAAAAAAAAEADtQb9VAgByZXRyaWVzL1VUBQAD
IyWFWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACxsNkoAAAAAAAAAAAAAAAARABgAAAAAAAAA
EADtQQFWAgByZXRyaWVzL2ltcG9ydGVkL1VUBQADIyWFWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAACxsNkoAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQUxWAgByZXRyaWVzL2ltcG9ydGVkL3cz
Yy9VVAUAAyMlhVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAsbDZKAAAAAAAAAAAAAAAAKAAY
AAAAAAAAABAA7UGbVgIAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1VU
BQADIyWFWHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACxsNkoAAAAAAAAAAAAAAAAtABgAAAAA
AAAAEADtQf1WAgByZXRyaWVzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9V
VAUAAyMlhVh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAsbDZKAAAAAAAAAAAAAAAANgAYAAAA
AAAAABAA7UFkVwIAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvVVQFAAMjJYVYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAALGw2SgAAAAAAAAAA
AAAAAD4AGAAAAAAAAAAQAO1B1FcCAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvVVQFAAMjJYVYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAALGw2SgAAAAAAAAAAAAAAAFUAGAAAAAAAAAAQAO1BTFgCAHJldHJpZXMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9u
LWludGVyZmFjZS9VVAUAAyMlhVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAsbDZKowtje8kA
AAACAwAAgwAYAAAAAAABAAAApIHbWAIAcmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2xvY2F0
aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJva2VuLWFjdHVhbC50eHRVVAUAAyMlhVh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAAsbDZKbHREPBgBAADJAgAAgQAYAAAAAAABAAAApIFhWgIAcmV0
cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlzdG9y
eS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29sLXNldHRlci1ub24tYnJv
a2VuLWRpZmYudHh0VVQFAAMjJYVYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALGw2So72CEDJ
AAAAAgMAAIUAGAAAAAAAAQAAAKSBNFwCAHJldHJpZXMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL2hpc3RvcnkvdGhlLWxvY2F0aW9uLWludGVyZmFjZS9sb2Nh
dGlvbi1wcm90b2NvbC1zZXR0ZXItbm9uLWJyb2tlbi1leHBlY3RlZC50eHRVVAUAAyMlhVh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAsbDZK3O08pAMIAABvGwAAiQAYAAAAAAABAAAApIG8XQIA
cmV0cmllcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvaGlz
dG9yeS90aGUtbG9jYXRpb24taW50ZXJmYWNlL2xvY2F0aW9uLXByb3RvY29sLXNldHRlci1ub24t
YnJva2VuLXByZXR0eS1kaWZmLmh0bWxVVAUAAyMlhVh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAAubDZKknns5mqTCADU1C8ACgAYAAAAAAABAAAApIGCZgIAc3RhdHMuanNvblVUBQADJyWFWHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC1sNkqY3zUbPAMAAKwZAAAZABgAAAAAAAEAAACkgTD6
CgB3cHR3a19wcm9jZXNzX2xvZy5vdXQudHh0VVQFAAMlJYVYdXgLAAEE9QEAAAQUAAAAUEsFBgAA
AABnAGcAsSwAAL/9CgAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299489</attachid>
            <date>2017-01-22 16:54:59 -0800</date>
            <delta_ts>2017-01-22 21:17:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-167224-20170122165302.patch</filename>
            <type>text/plain</type>
            <size>393171</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjExMDI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjgyY2FlNGU0MDc4NjI4
ZDQ3NTQ2M2Y3ZTdmMWIwNDgwNmU5ZDc1My4uZTJjMjQ0M2UxZjk5ZjNkMDc1OWIyN2IxZWI4OGEy
OTQ3MzQzYzE1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzOCBAQAorMjAxNy0wMS0yMCAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIg
ZnJvbSAicGFnZSIgZGlyZWN0b3J5IG9mIFdlYkNvcmUsIGFsc28gZGVwbG95IHJlZmVyZW5jZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIyNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9ET01XaW5kb3dGZXRjaC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dG
ZXRjaDo6ZmV0Y2gpOiBVc2UgRE9NV2luZG93Ojpkb2N1bWVudCBpbnN0ZWFkIG9mCisgICAgICAg
IHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCisKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUNvbnRleHQ6
OmRhdGFiYXNlRXhjZWVkZWRRdW90YSk6IFBhc3MgYSByZWZlcmVuY2UuCisKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L21hYy9XZWJBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlck1hYy5tbToKKyAg
ICAgICAgKC1bV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgYWNjZXNzaWJpbGl0eVNob3dD
b250ZXh0TWVudV0pOgorICAgICAgICBQYXNzIGEgcmVmZXJlbmNlLgorCisgICAgICAgICogYmlu
ZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01X
aW5kb3c6OmdldE93blByb3BlcnR5U2xvdCk6IFBhc3MgYSByZWZlcmVuY2UuCisKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNoaWxkcmVu
Q2hhbmdlZCk6IFBhc3MgYSByZWZlcmVuY2UuIEFsc28gbWFkZSB0aGUKKyAgICAgICAgZGlkUmVj
ZWl2ZURvY1R5cGUgY29kZSB1bmNvbmRpdGlvbmFsIGluc3RlYWQgb2YgaU9TLW9ubHkuCisgICAg
ICAgIChXZWJDb3JlOjpEb2N1bWVudDo6cGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2Jq
ZWN0cyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVZpZXdwb3J0
QXJndW1lbnRzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2V0Rm9jdXNl
ZEVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpjcmVhdGVET01X
aW5kb3cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp0YWtlRE9NV2luZG93
RnJvbSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnJlcXVlc3RGdWxsU2Ny
ZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OndlYmtp
dEV4aXRGdWxsc2NyZWVuKTogRGl0dG8uCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RWxlbWVudDo6Zm9jdXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkVsZW1lbnQ6OmJsdXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmRpc3Bh
dGNoRm9jdXNFdmVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6ZGlzcGF0
Y2hCbHVyRXZlbnQpOiBEaXR0by4KKyAgICAgICAgKiBkb20vTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpOb2RlOjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogRGl0dG8uCisgICAgICAgICogZWRp
dGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVQcmludCk6
IERpdHRvLgorICAgICAgICAqIGVkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVTZWxlY3Rpb246OnNldEZvY3VzZWRFbGVtZW50SWZOZWVkZWQpOiBEaXR0
by4KKyAgICAgICAgKiBoaXN0b3J5L0NhY2hlZEZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZEZyYW1lQmFzZTo6cmVzdG9yZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2Fj
aGVkRnJhbWU6OkNhY2hlZEZyYW1lKTogRGl0dG8uCisgICAgICAgICogaHRtbC9Db2xvcklucHV0
VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb2xvcklucHV0VHlwZTo6aGFuZGxlRE9NQWN0
aXZhdGVFdmVudCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2Fi
bGUpOiBEaXR0by4KKworICAgICAgICAqIGh0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0tleWJvYXJkRm9j
dXNhYmxlKTogUGFzcyBhIHJlZmVyZW5jZSwKKyAgICAgICAgYW5kIGFsc28gcmV3cm90ZSB0byB1
c2UgJiYgZm9yIGNsYXJpdHkuCisKKyAgICAgICAgKiBodG1sL0hUTUxWaWRlb0VsZW1lbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudDo6c3VwcG9ydHNGdWxsc2NyZWVu
KTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKiBodG1sL3NoYWRvdy9TcGluQnV0dG9uRWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2
ZW50SGFuZGxlcik6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U3BpbkJ1dHRvbkVsZW1lbnQ6
OnJlbGVhc2VDYXB0dXJlKTogRGl0dG8uCisgICAgICAgICogaHRtbC9zaGFkb3cvbWFjL0ltYWdl
Q29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlQ29u
dHJvbHNCdXR0b25FbGVtZW50TWFjOjpkZWZhdWx0RXZlbnRIYW5kbGVyKTogRGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OnNob3dDb250ZXh0TWVudSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpkaXNwYXRjaEV2ZW50QXNDb250
ZXh0TWVudUV2ZW50KTogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUp
OiBVcGRhdGVkIHRvIHRha2UgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RW1wdHlDaHJv
bWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0p
OiBQYXNzIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmNvbW1p
dFByb3Zpc2lvbmFsTG9hZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6
OmNsb3NlQW5kUmVtb3ZlQ2hpbGQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29y
ZTo6RnJhbWVMb2FkZXI6OmRldGFjaEZyb21QYXJlbnQpOiBQYXNzIGEgcmVmZXJlbmNlLgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OmRpc3BhdGNoQmVmb3JlVW5sb2FkRXZlbnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6IERpdHRvLgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAg
KiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVj
a2VyOjpjaGVja05ld1dpbmRvd1BvbGljeSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgICog
bG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91cC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnJlY2FsY3VsYXRlQXZhaWxhYmxlU3BhY2VJblF1
b3RhKTogRGl0dG8uCisKKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmg6IFJldHVybiBhIHJlZmVyZW5jZSBmcm9tIG9yaWdpbi4KKworICAgICAgICAqIGxv
YWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4pOiBU
YWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNoZSk6CisgICAg
ICAgIERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OnN0
b3JlKTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjpjaGVja09yaWdpblF1b3RhKTogVXBkYXRlZCBzaW5jZSBvcmlnaW4KKyAgICAg
ICAgbm93IHJldHVybnMgYXJlZmVyZW5jZS4KKyAgICAgICAgKiBsb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAg
ICogbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNoaXZlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6Ok1IVE1MQXJjaGl2ZTo6Z2VuZXJhdGVNSFRNTERhdGEpOiBQYXNzIGEgcmVmZXJlbmNlLgor
ICAgICAgICAqIG1hdGhtbC9NYXRoTUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1h
dGhNTEVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUpOiBEaXR0by4KKworICAgICAgICAqIHBh
Z2UvQ2hyb21lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Q2hyb21lKTogTW92ZWQg
aW5pdGlhbGl6YXRpb24gb2YgZGF0YSBtZW1iZXJzIHRvIHRoZQorICAgICAgICBjbGFzcyBkZWZp
bml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2VkKTog
VGFrZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6Y3JlYXRlV2luZG93
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpydW5KYXZhU2NyaXB0
QWxlcnQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdENv
bmZpcm0pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6cnVuSmF2YVNjcmlwdFBy
b21wdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjpzZXRTdGF0dXNiYXJUZXh0
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnByaW50KTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpDaHJvbWU6OmNyZWF0ZUNvbG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21lOjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZTo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWU6OmRpZFJlY2VpdmVEb2NUeXBlKTogRGl0dG8uIEFsc28gbWFkZSB1bmNv
bmRpdGlvbmFsLCBidXQKKyAgICAgICAgZW1wdHkgZm9yIG5vbi1pT1MgcGxhdGZvcm1zLgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lOjpyZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKTogVGFr
ZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6dW5yZWdpc3RlclBvcHVw
T3BlbmluZ09ic2VydmVyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9DaHJvbWUuaDogVXBkYXRl
ZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDogVGFrZSBy
ZWZlcmVuY2VzLiBBbHNvIHVwZGF0ZWQgc29tZSBhcmd1bWVudHMgZnJvbQorICAgICAgICBOb2Rl
IHRvIEVsZW1lbnQuCisKKyAgICAgICAgKiBwYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmhhbmRsZUNvbnRleHRN
ZW51RXZlbnQpOiBUYWtlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1l
bnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkNvbnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudSk6IERpdHRvLiBB
bHNvIHVzZQorICAgICAgICBtYWtlX3VuaXF1ZSBpbnN0ZWFkIG9mIHVuaXF1ZV9wdHIgcGx1cyBu
ZXcuCisgICAgICAgIChXZWJDb3JlOjpvcGVuTmV3V2luZG93KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjppbnNlcnRVbmljb2RlQ2hhcmFjdGVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVu
dUF0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNo
b3dJbWFnZUNvbnRyb2xzTWVudSk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2UvRE9N
VGltZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9NVGltZXI6OmZpcmVkKTogUGFzcyBhIHJl
ZmVyZW5jZS4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlBvc3RNZXNzYWdlVGltZXI6OlBvc3RNZXNzYWdlVGltZXIpOiBUYWtlIFJlZiYmIGluc3Rl
YWQgb2YKKyAgICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6
YWRqdXN0V2luZG93UmVjdCk6IFVzZSBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6YWxsb3dQb3BVcCk6IERpdHRvLiBBbHNvIHJld3JpdGUgdG8gdXNlIHx8IGluc3Rl
YWQKKyAgICAgICAgb2Ygc3VjY2Vzc2l2ZSBpZiBzdGF0ZW1lbnRzLgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6RE9NV2luZG93KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OmRpZFNlY3VyZVRyYW5zaXRpb25Ubyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93OjpyZWdpc3RlclByb3BlcnR5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3c6OnVucmVnaXN0ZXJQcm9wZXJ0eSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
RE9NV2luZG93Ojpwb3N0TWVzc2FnZVRpbWVyRmlyZWQpOiBNZXJnZSB3aXRoIHRoZSBmdW5jdGlv
bgorICAgICAgICBpbW1lZGlhdGVseSBmb2xsb3dlZCwgY2FsbGVkIG9ubHkgZnJvbSBoZXJlLgor
ICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmln
aW5DaGVjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnByaW50KTog
UGFzcyBhIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6YWxlcnQpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6Y29uZmlybSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6RE9NV2luZG93Ojpwcm9tcHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRPTVdpbmRvdzo6c2V0U3RhdHVzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01X
aW5kb3c6OnNldERlZmF1bHRTdGF0dXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdp
bmRvdzo6bW92ZUJ5KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6Om1vdmVU
byk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVCeSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpyZXNpemVUbyk6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6RE9NV2luZG93OjpjbGVhclRpbWVvdXQpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6aW5jcmVtZW50U2Nyb2xsRXZlbnRMaXN0ZW5lcnNDb3VudCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpkZWNyZW1lbnRTY3JvbGxFdmVudExp
c3RlbmVyc0NvdW50KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNob3dN
b2RhbERpYWxvZyk6IERpdHRvLgorICAgICAgICAqIHBhZ2UvRE9NV2luZG93Lmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZS4gQUxzbyBtYWRlIGZ1bmN0aW9ucyBwcml2YXRlCisgICAgICAgIGFuZCBm
aW5hbC4KKworICAgICAgICAqIHBhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RE9NV2luZG93UHJvcGVydHk6OkRPTVdpbmRvd1Byb3BlcnR5KTogUGFzcyBhIHJl
ZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp+RE9NV2luZG93
UHJvcGVydHkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3
aWxsRGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvd1Byb3BlcnR5Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluRnJhbWUp
OiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVnaW9uT3ZlcmxheTo6Y3JlYXRlKTogUmV0dXJuIFJlZlB0ciBpbnN0ZWFk
IG9mIFBhc3NSZWZQdHIuCisgICAgICAgIChXZWJDb3JlOjpSZWdpb25PdmVybGF5Ojp+UmVnaW9u
T3ZlcmxheSk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEZWJ1Z1BhZ2VP
dmVybGF5czo6c2hvd1JlZ2lvbk92ZXJsYXkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRl
YnVnUGFnZU92ZXJsYXlzOjpoaWRlUmVnaW9uT3ZlcmxheSk6IERpdHRvLgorCisgICAgICAgICog
cGFnZS9EcmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxl
cjo6ZHJhZ0V4aXRlZCk6IFBhc3MgYSByZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpEcmFn
Q29udHJvbGxlcjo6cGVyZm9ybURyYWdPcGVyYXRpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkRyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6dHJ5REhUTUxEcmFnKTogRGl0dG8uCisKKyAgICAgICAg
KiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6IFJlcGxhY2VkIE9wdGlvbmFsQ3Vyc29yIHdpdGggc3Rk
OjpvcHRpb25hbDxDdXJzb3I+LgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRh
dGVDdXJzb3IpOiBSZWZhY3RvciBpbnRvIHR3byBmdW5jdGlvbnMgc28gd2UKKyAgICAgICAgY2Fu
IHNoYXJlIG1vcmUgY29kZSB3aXRoIHNlbGVjdEN1cnNvci4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKTogVXBkYXRlZCB0byB1c2Ugc3RkOjpvcHRpb25hbC4K
KyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3ZlRXZlbnQpOiBV
c2UgdGhlIG5ldyB1cGRhdGVDdXJzb3IuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OnN0YXJ0UGFuU2Nyb2xsaW5nKTogVXNlIGEgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRIYW5kbGVyOjp1cGRhdGVEcmFnQW5kRHJvcCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERyb3ApOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6c2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KTog
VGFrZSBhIHJhdyBwb2ludGVyCisgICAgICAgIGluc3RlYWQgb2YgYSBQYXNzUmVmUHRyLgorICAg
ICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaE1vdXNlRXZlbnQpOiBVc2UgYSBy
ZWZlcmVuY2UuCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnVwZGF0ZURyYWdTdGF0
ZUFmdGVyRWRpdERyYWdJZk5lZWRlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRI
YW5kbGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJzVG9MaW5rcyk6IERpdHRv
LgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4K
KworICAgICAgICAqIHBhZ2UvRm9jdXNDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEZyYW1lKTogVGFrZSBwb2ludGVyIGluc3RlYWQK
KyAgICAgICAgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OkZvY3VzQ29udHJvbGxl
cjo6c2V0Rm9jdXNlZEVsZW1lbnQpOiBUYWtlIHJlZmVyZW5jZSBpbnN0ZWFkIG9mCisgICAgICAg
IFBhc3NSZWZQdHIuCisgICAgICAgICogcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaDogVXBkYXRlZCBm
b3IgdGhlIGFib3ZlIGNoYW5nZXMuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OnRyYW5zZmVyQ2hpbGQpOiBEZWxldGVkLiBVbnVz
ZWQgZnVuY3Rpb24uCisgICAgICAgIChXZWJDb3JlOjpGcmFtZVRyZWU6OmFwcGVuZENoaWxkKTog
TWVyZ2VkIHdpdGggdGhlIGZvbGxvd2luZyBmdW5jdGlvbgorICAgICAgICBzaW5jZSBpdCdzIG5v
dyBvbmx5IHVzZWQgaGVyZS4gVGFrZSByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRyLgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVUcmVlOjphY3R1YWxseUFwcGVuZENoaWxkKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVHJlZTo6cmVtb3ZlQ2hpbGQpOiBUYWtlIHJlZmVy
ZW5jZSBpbnN0ZWFkIG9mIHBvaW50ZXIuCisgICAgICAgIFVzZSBtb3ZlIGluc3RlYWQgb2YgdHJp
Y2tpZXIgc3dhcC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVHJlZS5oOiBVcGRhdGVkIGZvciB0aGUg
YWJvdmUuCisKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OnNldENvbnRlbnRzU2l6ZSk6IFVzZSBhIHJlZmVyZW5jZS4KKyAgICAgICAg
KiBwYWdlL01haW5GcmFtZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNYWluRnJhbWU6OmRyb3BD
aGlsZHJlbik6IERpdHRvLgorICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYWdlOjpzY3JvbGxpbmdDb29yZGluYXRvcik6IERpdHRvLgorICAgICAgICAqIHBhZ2Uv
UGFnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZU92ZXJsYXk6OmZhZGVBbmlt
YXRpb25UaW1lckZpcmVkKTogRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdlT3ZlcmxheUNvbnRyb2xsZXI6Omlu
c3RhbGxQYWdlT3ZlcmxheSk6IFRha2UgcmVmZXJlbmNlCisgICAgICAgIGluc3RlYWQgb2YgUGFz
c1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0
YWxsUGFnZU92ZXJsYXkpOiBUYWtlIHJlZmVyZW5jZQorICAgICAgICBpbnRlYWQgb2YgcG9pbnRl
ci4KKyAgICAgICAgKiBwYWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oOiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL1BhZ2VTZXJpYWxpemVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpQYWdlU2VyaWFsaXplcik6IE1vdmVkIG1vc3QgaW5p
dGlhbGl6YXRpb24gdG8gdGhlCisgICAgICAgIGNsYXNzIGRlZmluaXRpb24uCisgICAgICAgIChX
ZWJDb3JlOjpQYWdlU2VyaWFsaXplcjo6c2VyaWFsaXplKTogVXNlIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemVGcmFtZSk6IFVzZSBpbml0aWFs
aXplciBsaXN0IGluc3RlYWQgb2YKKyAgICAgICAgY29uc3RydWN0b3IgZm9yIHJlc291cmNlLgor
ICAgICAgICAoV2ViQ29yZTo6UGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUNTU1N0eWxlU2hlZXQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlBhZ2VTZXJpYWxpemVyOjphZGRJbWFnZVRvUmVz
b3VyY2VzKTogRGl0dG8uCisgICAgICAgICogcGFnZS9QYWdlU2VyaWFsaXplci5oOiBSZW1vdmVk
IGNvbnN0cnVjdG9ycyBmcm9tIFBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZQorICAgICAgICBzdHJ1
Y3Qgc2luY2Ugc3RydWN0dXJlcyBkb24ndCByZWFsbHkgbmVlZCB0aGVtLiBVcGRhdGVkIGZvciB0
aGUgYWJvdmUuCisgICAgICAgIENoYW5nZWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yIGlu
dG8gYSBuZXN0ZWQgY2xhc3MuCisKKyAgICAgICAgKiBwYWdlL1BlcmZvcm1hbmNlRW50cnkuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlBlcmZvcm1hbmNlRW50cnk6OnN0YXJ0VGltZUNvbXBhcmVMZXNz
VGhhbik6IFVzZSBjb25zdCBSZWZQdHImCisgICAgICAgIGluc3RlYWQgb2YgUGFzc1JlZlB0ciB0
byBjb21wYXJlIFJlZlB0ciBpbiBwbGFjZS4KKworICAgICAgICAqIHBhZ2UvUGVyZm9ybWFuY2VV
c2VyVGltaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omluc2VydFBlcmZvcm1hbmNlRW50cnkp
OiBUYWtlIFJlZiYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKworICAgICAgICAqIHBhZ2UvUmVz
b3VyY2VVc2FnZU92ZXJsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VVc2FnZU92
ZXJsYXk6On5SZXNvdXJjZVVzYWdlT3ZlcmxheSk6IFVzZSByZWZyZW5jZS4KKyAgICAgICAgKFdl
YkNvcmU6OlJlc291cmNlVXNhZ2VPdmVybGF5Ojppbml0aWFsaXplKTogRGl0dG8uCisKKyAgICAg
ICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmg6IFJlbW92ZWQgdW5uZWVkZWQgaW5j
bHVkZS4KKworICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmNsZWFyKTog
VXNlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2
YXRlOjpmaXJlRXZlbnRzQW5kVXBkYXRlU3R5bGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2gpOiBVc2UgdGhl
CisgICAgICAgIGFwcGVuZCBmdW5jdGlvbiBpbnN0ZWFkIG9mIGEgaGFuZC13cml0dGVuIGFsdGVy
bmF0aXZlLgorICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGU6OmFk
ZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKToKKyAgICAgICAgVGFrZSBhIHJlZmVyZW5jZSByYXRo
ZXIgdGhhbiBhIFJlZiYmIHNpbmNlIG5vIGNhbGxlciBpcyBwYXNzaW5nIG93bmVyc2hpcC4KKyAg
ICAgICAgKiBwYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oOiBVcGRh
dGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0
eUFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpibGVuZEZ1bmMpOiBSZXR1cm4gUmVm
UHRyIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OmJsZW5kRmlsdGVy
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpjcm9zc2ZhZGVCbGVuZCk6IERpdHRvLgorCisg
ICAgICAgICogcGFnZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkNvbXBvc2l0ZUFuaW1hdGlvbjo6dXBkYXRlVHJhbnNpdGlvbnMpOiBVcGRhdGVk
IHRvIHVzZQorICAgICAgICBhbmltYXRpb25Gb3JQcm9wZXJ0eSwgd2hpY2ggcmV0dXJucyBhIHJh
dyBwb2ludGVyLgorICAgICAgICAoV2ViQ29yZTo6Q29tcG9zaXRlQW5pbWF0aW9uOjphbmltYXRp
b25Gb3JQcm9wZXJ0eSk6IFJlbmFtZWQgZnJvbQorICAgICAgICBnZXRBbmltYXRpb25Gb3JQcm9w
ZXJ0eSBhbmQgY2hhbmdlZCB0byByZXR1cm4gcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAgICBv
ZiBQYXNzUmVmUHRyLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlv
bi5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9J
bXBsaWNpdEFuaW1hdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlv
bjo6b25BbmltYXRpb25FbmQpOiBVc2UgYW5pbWF0aW9uRm9yUHJvcGVydHkuCisgICAgICAgIChX
ZWJDb3JlOjpJbXBsaWNpdEFuaW1hdGlvbjo6c2VuZFRyYW5zaXRpb25FdmVudCk6IFBhc3MgcmVm
ZXJlbmNlLgorICAgICAgICAqIHBhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQp
OiBEaXR0by4KKworICAgICAgICAqIHBhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyk6IFRha2Ug
cmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2lu
Z0RhdGFUcmFuc2Zlcik6IFJldHVybiBSZWYuCisgICAgICAgICogcGFnZS9ndGsvRXZlbnRIYW5k
bGVyR3RrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9y
bUNvbnRyb2xzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0
ZURyYWdnaW5nRGF0YVRyYW5zZmVyKTogRGl0dG8uCisgICAgICAgICogcGFnZS9pb3MvRXZlbnRI
YW5kbGVySU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxG
b3JtQ29udHJvbHMpOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL21hYy9FdmVudEhhbmRsZXJNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRy
YW5zZmVyKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnRhYnNUb0Fs
bEZvcm1Db250cm9scyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpw
bGF0Zm9ybVByZXBhcmVGb3JXaGVlbEV2ZW50cyk6IERpdHRvLgorCisgICAgICAgICogcGFnZS9t
YWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oOiBUYWtlIFJlZiYmIGZvciByYW5nZXMgaW5z
dGVhZAorICAgICAgICBvZiBQYXNzUmVmUHRyLiBVc2UgcmVmZXJlbmNlcy4KKyAgICAgICAgKiBw
YWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24p
OiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6Okhp
Z2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OkhpZ2hsaWdodCk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6YnVpbGRQ
b3RlbnRpYWxIaWdobGlnaHRzSWZOZWVkZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkUGhvbmVOdW1iZXJIaWdobGlnaHRzKTogRGl0
dG8uCisgICAgICAgIChXZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFNl
bGVjdGlvbkhpZ2hsaWdodCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6U2VydmljZXNPdmVy
bGF5Q29udHJvbGxlcjo6aGlnaGxpZ2h0c0FyZUVxdWl2YWxlbnQpOiBEaXR0by4KKyAgICAgICAg
KFdlYkNvcmU6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmZpbmRUZWxlcGhvbmVOdW1iZXJI
aWdobGlnaHRDb250YWluaW5nU2VsZWN0aW9uSGlnaGxpZ2h0KTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpoYW5kbGVDbGljayk6IERpdHRvLgor
CisgICAgICAgICogcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbToKKyAgICAgICAgKC1b
V2ViVGV4dEluZGljYXRvclZpZXcgaW5pdFdpdGhGcmFtZTp0ZXh0SW5kaWNhdG9yOm1hcmdpbjpv
ZmZzZXQ6XSk6CisgICAgICAgIFRha2UgYSByZWZlcmVuY2UgaW5zdGVhZCBvZiBQYXNzUmVmUHRy
LgorICAgICAgICAoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvdzo6c2V0VGV4dEluZGljYXRv
cik6IFVwZGF0ZWQgZm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL0Fz
eW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDogVXNlIFJlZiYmIGFuZCBSZWZQdHIgaW50ZWFkCisg
ICAgICAgIG9mIFBzYXNSZWZQdHIuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxM
YXRjaGluZ1N0YXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbExhdGNoaW5nU3RhdGU6
OlNjcm9sbExhdGNoaW5nU3RhdGUpOiBJbml0aWFsaXplIGRhdGEgbWVtYmVycworICAgICAgICBp
biBjbGFzcyBkZWZpbml0aW9uLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0
ZTo6c2V0V2hlZWxFdmVudEVsZW1lbnQpOiBVc2UgcmF3IHBvaW50ZXIgaW5zdGVhZAorICAgICAg
ICBvZiBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6
c2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudCk6IFVzZSByYXcKKyAgICAgICAgcG9pbnRl
ciBpbnN0ZWFkIG9mIFJlZlB0ciYmLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsTGF0Y2hpbmdT
dGF0ZTo6c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcik6IFVzZSByYXcgcG9pbnRlciBpbnN0ZWFkCisg
ICAgICAgIG9mIFBhc3NSZWZQdHIuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0
Y2hpbmdTdGF0ZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KTogVXNlIFJlZiBpbnN0ZWFkIG9mIFBhc3NSZWZQ
dHIuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxkKTog
VXNlIFJlZiYmIGluc3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdTdGF0ZU5vZGUuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlTm9kZSk6IFVzZSBSZWYgaW5zdGVhZCBvZiBQ
YXNzUmVmUHRyLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVUcmVlOjphdHRhY2hO
b2RlKTogVXBkYXRlZCBmb3IgdGhlIGFidmUuCisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdT
dGF0ZVRyZWU6OmNvbW1pdCk6IERpdHRvLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1N0YXRlVHJlZS5oOiBEaXR0by4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6dXBkYXRlVHJl
ZUZyb21TdGF0ZU5vZGUpOiBVc2UgcmVmZXJlbmNlLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaDogUmV0dXJuIFJlZiBpbnN0ZWFkIG9mIFBhc3NSZWZQdHIuCisKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9kZTo6YXBwZW5kQ2hpbGQpOiBUYWtlIFJlZiYmIGluc3Rl
YWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVOb2RlOjpy
ZW1vdmVDaGlsZCk6IFRha2UgcmVmZXJlbmNlIGluc3RlYWQgb2YgcG9pbnRlci4KKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJv
dmUuCisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpUaHJlYWRlZFNjcm9s
bGluZ1RyZWUpOiBUYWtlIHJlZmVyZW5jZQorICAgICAgICBpbnN0ZWFkIG9mIHBvaW50ZXIuCisg
ICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmg6IFVwZGF0ZWQg
Zm9yIHRoZSBhYm92ZS4KKworICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdD
b29yZGluYXRvcklPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9y
SU9TOjpTY3JvbGxpbmdDb29yZGluYXRvcklPUyk6IFBhc3MgcmVmZXJlbmNlLgorCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRlKTogVGFrZSBhIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVJT1M6OlNjcm9sbGluZ1RyZWVJT1MpOiBEaXR0by4K
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZVNjcm9sbGluZ1RyZWVO
b2RlKTogUmV0dXJuIFJlZiBpbnN0ZWFkIG9mCisgICAgICAgIFBhc3NSZWZQdHIuCisgICAgICAg
ICogcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaDogVXBkYXRlZCBmb3IgdGhl
IGFib3ZlLgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OlNj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjKTogVXNlIHJlZmVyZW5jZS4KKworICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNwcDoKKyAgICAgICAgKFNjcm9sbGluZ1Ry
ZWVNYWM6OmNyZWF0ZSk6IFRha2UgYSByZWZlcmVuY2UuCisgICAgICAgIChTY3JvbGxpbmdUcmVl
TWFjOjpTY3JvbGxpbmdUcmVlTWFjKTogRGl0dG8uCisgICAgICAgIChTY3JvbGxpbmdUcmVlTWFj
OjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZSk6IFJldHVybiBhIFJlZiBpbnN0ZWFkIG9mIGEKKyAg
ICAgICAgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZU1hYy5oOiBVcGRhdGVkIGZvciB0aGUgYWJvdmUuCisKKyAgICAgICAgKiBwYWdlL3dpbi9F
dmVudEhhbmRsZXJXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp0YWJz
VG9BbGxGb3JtQ29udHJvbHMpOiBUYWtlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIpOiBSZXR1cm4gUmVmLgorCisg
ICAgICAgICogcGxhdGZvcm0vQ3Vyc29yLmg6IFJlYXJyYW5nZWQgdGhlIGhlYWRlciBhIGJpdC4g
R290IHJpZCBvZiB0aGUgZXhwbGljaXQKKyAgICAgICAgY29weSBjb25zdHJ1Y3RvciwgYXNzaWdu
bWVudCBvcGVyYXRvciwgYW5kIGRlc3RydWN0b3IuIFVzaW5nIHRoZSBvbmVzCisgICAgICAgIHRo
YXQgdGhlIGNvbXBpbGVyIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVzIHdpbGwgd29yayBmb3IgYWxs
IHBsYXRmb3JtcyBhbmQKKyAgICAgICAgd2UgdGhlbiBhbHNvIGdldCBtb3ZlIGNvbnN0cnVjdG9y
IGFuZCBtb3ZlIGFzc2lnbm1lbnQgb3BlcmF0b3IuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
Q3Vyc29yRWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6Q3Vyc29yKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6fkN1cnNvcik6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpDdXJzb3I6Om9wZXJhdG9yPSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3RrL0N1cnNvckd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6OkN1cnNvcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6Om9wZXJhdG9yPSk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6On5DdXJzb3IpOiBEZWxldGVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9DdXJzb3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6OkN1
cnNvcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6Om9wZXJhdG9yPSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDdXJzb3I6On5DdXJzb3IpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9DdXJzb3JXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hh
cmVkQ3Vyc29yOjpTaGFyZWRDdXJzb3IpOiBNb3ZlZCB0aGlzIGhlcmUgZnJvbSB0aGUgaGVhZGVy
CisgICAgICAgIHNpbmNlIGl0IGlzIG9ubHkgdXNlZCB3aXRoaW4gdGhpcyBmaWxlLgorICAgICAg
ICAoV2ViQ29yZTo6U2hhcmVkQ3Vyc29yOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OkN1cnNvcjo6Q3Vyc29yKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6
b3BlcmF0b3I9KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkN1cnNvcjo6fkN1cnNvcik6
IERlbGV0ZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OmhhbmRsZVVuYXZhaWxh
YmxlUGx1Z2luSW5kaWNhdG9yRXZlbnQpOgorICAgICAgICBQYXNzIHJlZmVyZW5jZS4KKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXJCYWNraW5nOjpSZW5kZXJMYXllckJhY2tpbmcpOiBHZXQgdG8gRnJhbWVW
aWV3CisgICAgICAgIHRocm91Z2ggdGhlIHJlbmRlciB0cmVlIGl0c2VsZiwgcmF0aGVyIHRoYW4g
dGhyb3VnaCB0aGUgZnJhbWUuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21w
b3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBk
YXRlTGF5ZXJGb3JIZWFkZXIpOiBVc2UgcmVmZXJlbmNlLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllckZvckZvb3Rlcik6IERpdHRvLgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjphdHRhY2hSb290TGF5ZXIpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZGV0YWNoUm9vdExh
eWVyKTogRGl0dG8uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcDoKKyAg
ICAgICAgKFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXApOiBEaXR0by4KKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU2Vh
cmNoRmllbGQ6OmFkZFNlYXJjaFJlc3VsdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU2VhcmNoRmllbGQ6OnNob3dQb3B1cCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU2VhcmNoRmllbGQ6OnZhbHVlQ2hhbmdlZCk6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdB
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdBRWxlbWVudDo6aXNLZXlib2FyZEZv
Y3VzYWJsZSk6IERpdHRvLgorICAgICAgICAqIHRlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYWdlT3ZlcmxheUNsaWVudDo6aW5zdGFsbE92
ZXJsYXkpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tQYWdlT3ZlcmxheUNsaWVudDo6
dW5pbnN0YWxsQWxsT3ZlcmxheXMpOiBEaXR0by4KKwogMjAxNy0wMS0yMCAgRGVhbiBKYWNrc29u
ICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdMXSBEbyBub3QgYWxsb3cgR1BVIG11
eGluZyBvbiBzb21lIG9sZCBNYWMgaGFyZHdhcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
aW9zL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwppbmRleCA5YTFhYTE5
YjdhNDc3NWY5MmFhMDNmZTU0MDc4MjJkNTk3ZmIwZDcwLi4zMGU3YWU0YWE2N2I2NmRjZmM2NGQ1
ZDk1Yzk3NGM2MmM2ZDU1YWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIw
MTctMDEtMjEgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92
ZSBQYXNzUmVmUHRyIGZyb20gInBhZ2UiIGRpcmVjdG9yeSBvZiBXZWJDb3JlLCBhbHNvIGRlcGxv
eSByZWZlcmVuY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNjcyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudElPUy5oOiBVcGRhdGUgZm9yIGNo
YW5nZXMgdG8gQ2hyb21lQ2xpZW50LgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudElPUy5tbToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudElPUzo6cnVuSmF2YVNjcmlw
dEFsZXJ0KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnRJT1M6OnJ1bkphdmFTY3Jp
cHRDb25maXJtKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnRJT1M6OnJ1bkphdmFT
Y3JpcHRQcm9tcHQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudElPUzo6c2V0TmVl
ZHNTY3JvbGxOb3RpZmljYXRpb25zKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnRJ
T1M6Om9ic2VydmVkQ29udGVudENoYW5nZSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xp
ZW50SU9TOjpjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNocm9tZUNsaWVudElPUzo6bm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1l
KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnRJT1M6OmVsZW1lbnREaWRGb2N1cyk6
IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50SU9TOjplbGVtZW50RGlkQmx1cik6IERp
dHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50SU9TOjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudElPUzo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTog
RGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnRJT1M6OmF0dGFjaFJvb3RHcmFwaGljc0xh
eWVyKTogRGl0dG8uCisKIDIwMTctMDEtMjEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHRoZSB1bnVzZWQgLVtXZWJGaXhlZFBvc2l0aW9u
Q29udGVudCBtaW5pbXVtT2Zmc2V0RnJvbUZpeGVkUG9zaXRpb25MYXllcnNUb0FuY2hvckVkZ2U6
b2ZSZWN0OmluTGF5ZXI6XQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDAwOWQ4YjgzMzIzOWRmMWE3ZTNh
MzEwN2JlZDBjNzM1N2EwZjY2MTguLmUzNjU3YTQ5NTBhMzhjYTYzZGQyMmUzN2IwMjU1ODM1OTRh
NjkwYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxNy0wMS0yMCAgRGFy
aW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIFBhc3NSZWZQdHIg
ZnJvbSAicGFnZSIgZGlyZWN0b3J5IG9mIFdlYkNvcmUsIGFsc28gZGVwbG95IHJlZmVyZW5jZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzIyNAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbToKKyAgICAgICAgKC1b
V2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlciBxdW90YV0pOiBQYXNzIHJlZmVyZW5jZS4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOiBVcGRhdGVkIGZv
ciBjaGFuZ2VzIHRvIENocm9tZUNsaWVudC4KKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmZvY3VzZWRFbGVtZW50
Q2hhbmdlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5kb3cp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRB
bGVydCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29u
ZmlybSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJv
bXB0KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5n
ZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5C
dXR0b25DbGlja2VkKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnByaW50KTog
RGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6
IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNv
bG9yQ2hvb3Nlcik6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlk
Rm9jdXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KTogRGl0
dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudSk6IERp
dHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcik6
IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hWaWV3T3ZlcmxheUdyYXBo
aWNzTGF5ZXIpOiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxs
U2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjplbnRl
ckZ1bGxTY3JlZW5Gb3JFbGVtZW50KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6
OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgorCisgICAgICAgICogV2ViVmlldy9X
ZWJGcmFtZS5tbToKKyAgICAgICAgKCtbV2ViRnJhbWUgX2NyZWF0ZUZyYW1lV2l0aFBhZ2U6ZnJh
bWVOYW1lOmZyYW1lVmlldzpvd25lckVsZW1lbnQ6XSk6CisgICAgICAgIFVwZGF0ZWQgZm9yIGNo
YW5nZSB0byB0aGUgYXBwZW5kQ2hpbGQgZnVuY3Rpb24uCisKIDIwMTctMDEtMjEgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIC1bV2ViRnJh
bWUgc2VuZE9yaWVudGF0aW9uQ2hhbmdlRXZlbnQ6XSB3aGljaCBpcyB1bnVzZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZwppbmRleCBlZGQyMWMwYmM3NzRiY2U3OGJlZjE4ZDViYmYyOGNmZTJlMGFlMTlmLi4xODdl
ZmMyOGVkMTU0YTA2MWZkODUxYzBhYTBkOWRiMWM5NGNmNzhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzYgQEAKKzIwMTctMDEtMjAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIGZyb20gInBhZ2UiIGRpcmVjdG9yeSBvZiBX
ZWJDb3JlLCBhbHNvIGRlcGxveSByZWZlcmVuY2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcyMjQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3OjpzdGF0dXMpOiBQYXNzIHJlZmVyZW5jZS4KKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpblZpZXc6OmZvY3VzUGx1Z2luRWxlbWVudCk6IERpdHRvLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KTogVXBkYXRlZCBmb3IgY2hhbmdlIHRvIENocm9tZUNs
aWVudC4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBh
bmVsKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVy
dCk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29uZmly
bSk6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0
KTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQp
OiBEaXR0by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6dW5hdmFpbGFibGVQbHVnaW5CdXR0
b25DbGlja2VkKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnByaW50KTogRGl0
dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6IERp
dHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkQXBwbGljYXRpb25DYWNoZU9y
aWdpblF1b3RhKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RH
cmFwaGljc0xheWVyKTogRGl0dG8uCisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZp
ZXdPdmVybGF5R3JhcGhpY3NMYXllcik6IERpdHRvLgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50
OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCk6IERpdHRvLgorICAgICAgICAo
V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KTogRGl0dG8uCisgICAgICAgIChXZWJD
aHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNocm9tZUNsaWVudDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCk6IERpdHRvLgor
ICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJh
bWVWaWV3KTogRGl0dG8uCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6IERpdHRvLgorCiAyMDE3LTAxLTIwICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIG5ldmVyIGNoYW5naW5nIEluZGV4ZWREQiBSdW50aW1l
RW5hYmxlZEZlYXR1cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAzYmFjN2EwMTMyZDE5ZDIyN2I2NTFlY2FmM2Ey
OWE1MTlkOWFmMjM0Li40M2FkNmI5NDk3YjhlZmJiZWM5MTllMWNjY2EwMWZlNDFlNzI4MTg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsODQgQEAKKzIwMTctMDEtMjAgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBQYXNzUmVmUHRyIGZyb20gInBhZ2UiIGRp
cmVjdG9yeSBvZiBXZWJDb3JlLCBhbHNvIGRlcGxveSByZWZlcmVuY2VzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjcyMjQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcv
UmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGlu
Z1RyZWU6OmNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKTogUmV0dXJuIGEgUmVmCisgICAgICAgIGlu
c3RlYWQgb2YgUGFzc1JlZlB0ci4KKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90
ZVNjcm9sbGluZ1RyZWUuaDogVXBkYXRlZCBmb3IgdGhlIGFib3ZlLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwOgorICAgICAgICAo
V0tCdW5kbGVQYWdlSW5zdGFsbFBhZ2VPdmVybGF5KTogUGFzcyBhIHJlZmVyZW5jZS4KKyAgICAg
ICAgKFdLQnVuZGxlUGFnZVVuaW5zdGFsbFBhZ2VPdmVybGF5KTogRGl0dG8uCisgICAgICAgIChX
S0J1bmRsZVBhZ2VJbnN0YWxsUGFnZU92ZXJsYXlXaXRoQW5pbWF0aW9uKTogRGl0dG8uCisgICAg
ICAgIChXS0J1bmRsZVBhZ2VVbmluc3RhbGxQYWdlT3ZlcmxheVdpdGhBbmltYXRpb24pOiBEaXR0
by4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4u
bW06CisgICAgICAgIChXZWJLaXQ6OlBERlBsdWdpbjo6anNQREZEb2NQcmludCk6IERpdHRvLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGx1Z2luVmlldzo6Zm9jdXNQbHVnaW5FbGVtZW50KTogRGl0dG8uCisgICAgICAgIChX
ZWJLaXQ6OlBsdWdpblZpZXc6OnNldFN0YXR1c2JhclRleHQpOiBEaXR0by4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9jdXMpOiBVcGRhdGVkIGZvciBj
aGFuZ2VzIHRvIENocm9tZUNsaWVudC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
OjplbGVtZW50RGlkQmx1cik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGll
bnQ6Om1ha2VGaXJzdFJlc3BvbmRlcik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCk6IERpdHRvLgorICAgICAgICAo
V2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydCk6IERpdHRvLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKTogRGl0
dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdFByb21w
dCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRzU2l6
ZUNoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojp1bmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjpwcmludCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVD
bGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YSk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpX
ZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEpOiBEaXR0
by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVDb2xvckNob29zZXIp
OiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1l
bnUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojph
dHRhY2hSb290R3JhcGhpY3NMYXllcik6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJv
bWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcik6IERpdHRvLgorICAgICAg
ICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKTog
RGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2Ny
ZWVuRm9yRWxlbWVudCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6
OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2Vi
Q2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQpOiBEaXR0by4KKyAgICAgICAg
KFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRIZWFkZXJMYXllcik6IERpdHRvLgorICAg
ICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEZvb3RlckxheWVyKTogRGl0dG8u
CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2hvdWxkVXNlVGlsZWRCYWNraW5n
Rm9yRnJhbWVWaWV3KTogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuaDogRGl0dG8uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJD
aHJvbWVDbGllbnQ6OmVsZW1lbnREaWRSZWZvY3VzKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6
OldlYkNocm9tZUNsaWVudDo6ZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUpOiBEaXR0by4KKyAgICAg
ICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpvYnNlcnZlZENvbnRlbnRDaGFuZ2UpOiBEaXR0
by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpjbGVhckNvbnRlbnRDaGFuZ2VP
YnNlcnZlcnMpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpub3Rp
ZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUpOiBEaXR0by4KKworICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hDcmVhdGVQYWdlKTog
UGFzcyByZWZlcmVuY2UuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJ
bnNwZWN0b3JDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JDbGllbnQ6
On5XZWJJbnNwZWN0b3JDbGllbnQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVj
dG9yQ2xpZW50OjpoaWRlSGlnaGxpZ2h0KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYklu
c3BlY3RvckNsaWVudDo6c2hvd1BhaW50UmVjdCk6IERpdHRvLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZpbmRDb250
cm9sbGVyOjp1cGRhdGVGaW5kVUlBZnRlclBhZ2VTY3JvbGwpOiBEaXR0by4KKyAgICAgICAgKFdl
YktpdDo6RmluZENvbnRyb2xsZXI6OmhpZGVGaW5kVUkpOiBEaXR0by4KKworICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
OjpjcmVhdGVXaXRoQ29yZU1haW5GcmFtZSk6IFJldHVybiBSZWYgaW5zdGVhZCBvZgorICAgICAg
ICBQYXNzUmVmUHRyLgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZTo6Y3JlYXRlU3ViZnJhbWUp
OiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNyZWF0ZSk6IERpdHRvLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oOiBVcGRhdGVkIGZvciB0aGUgYWJv
dmUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yOjpvcGVuSW5OZXdUYWIpOiBQYXNzIHJlZmVyZW5j
ZS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9pb3MvRmluZENvbnRyb2xsZXJJT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OkZpbmRDb250cm9sbGVyOjp1cGRhdGVGaW5kSW5kaWNhdG9y
KTogVXNlIHJlZmVyZW5jZS4KKyAgICAgICAgKFdlYktpdDo6RmluZENvbnRyb2xsZXI6OmhpZGVG
aW5kSW5kaWNhdG9yKTogRGl0dG8uCisKIDIwMTctMDEtMjEgIENhcmxvcyBHYXJjaWEgQ2FtcG9z
ICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHIyMTEwMTIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0RPTVdp
bmRvd0ZldGNoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0
Y2guY3BwCmluZGV4IGFkYWRhY2Q4M2MyNjBjZmE5ZDc2OTlkMzRmNmE0YmVjOTFkNjFmMDYuLmM1
OWQzNjU2YTBjMjEwN2FhOWRhNzZkZjFhNTczN2RlZmY5ZjUyZmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRE9NV2luZG93RmV0Y2guY3BwCkBAIC0xLDUgKzEsNiBAQAog
LyoKICAqIENvcHlyaWdodCAoQykgMjAxNiBDYW5vbiBJbmMuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkLCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzIsMTYgKzMzLDE3IEBACiAjaWYgRU5BQkxFKEZFVENIX0FQSSkKIAog
I2luY2x1ZGUgIkRPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkZldGNoUmVxdWVzdC5oIgorI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRmV0Y2hSZXNwb25zZS5oIgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIHZvaWQgRE9NV2luZG93RmV0Y2g6OmZldGNoKERPTVdpbmRvdyYgd2luZG93
LCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSkK
IHsKLSAgICBpZiAoIXdpbmRvdy5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCisgICAgYXV0byog
ZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQogICAgICAg
ICByZXR1cm47Ci0gICAgRmV0Y2hSZXNwb25zZTo6ZmV0Y2goKndpbmRvdy5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCksIHJlcXVlc3QsIFdURk1vdmUocHJvbWlzZSkpOworICAgIEZldGNoUmVzcG9u
c2U6OmZldGNoKCpkb2N1bWVudCwgcmVxdWVzdCwgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VDb250ZXh0LmNwcAppbmRleCBlNTQ4OWZjYjU0MGM5Njk0YWU0
Mzc1OTY4M2RlOWFjZjAxODI0YWQ5Li4zZGNiNTYwMzQzZWI1YWI5NDUxMWEzOTBlYjE5MTFiMzlj
YjBmMWFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZUNvbnRleHQuY3BwCkBAIC0yMDQsNyArMjA0LDcgQEAgdm9pZCBEYXRhYmFzZUNv
bnRleHQ6OmRhdGFiYXNlRXhjZWVkZWRRdW90YShjb25zdCBTdHJpbmcmIG5hbWUsIERhdGFiYXNl
RGV0YWlscwogICAgIGlmIChpczxEb2N1bWVudD4oKm1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkp
IHsKICAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93bmNhc3Q8RG9jdW1lbnQ+KCptX3Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQpOwogICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGRvY3VtZW50
LnBhZ2UoKSkKLSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV4Y2VlZGVkRGF0
YWJhc2VRdW90YShkb2N1bWVudC5mcmFtZSgpLCBuYW1lLCBkZXRhaWxzKTsKKyAgICAgICAgICAg
IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmV4Y2VlZGVkRGF0YWJhc2VRdW90YSgqZG9jdW1lbnQu
ZnJhbWUoKSwgbmFtZSwgZGV0YWlscyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgQVNT
RVJUKG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+aXNXb3JrZXJHbG9iYWxTY29wZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL1dlYkFjY2Vzc2liaWxp
dHlPYmplY3RXcmFwcGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KaW5kZXggNDE2YjE4MzRiZDhhYTYz
NGI4YzdiYzJjZWU3ZjA5NDZiYzZiYjA3ZS4uMDMyMGY5NTU2YjU3YjJiMDM3MjkxMmIwOGY1Mjky
ZWI0Zjg2ZWQyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMv
V2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9tYWMvV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXJNYWMubW0KQEAg
LTM3MjksNyArMzcyOSw3IEBAIC0gKHZvaWQpYWNjZXNzaWJpbGl0eVNob3dDb250ZXh0TWVudQog
ICAgICAgICB9CiAgICAgfQogICAgIAotICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigp
LnNob3dDb250ZXh0TWVudUF0KCZwYWdlLT5tYWluRnJhbWUoKSwgcmVjdC5jZW50ZXIoKSk7Cisg
ICAgcGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0NvbnRleHRNZW51QXQocGFnZS0+
bWFpbkZyYW1lKCksIHJlY3QuY2VudGVyKCkpOwogfQogCiAtICh2b2lkKWFjY2Vzc2liaWxpdHlT
Y3JvbGxUb1Zpc2libGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93Q3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcAppbmRleCBhM2Y2MmU1NjQ0MTFmMTgwN2JmZjA5NWY1ZGI5Y2E1MmY2ZTZj
ZGU0Li5hZTdmZThjMTdmMGRiY2QxNWI3MDU0ODZkNjQyYTQ1OGFlNTdiY2IyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCkBAIC0xNzgs
NyArMTc4LDcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0
KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnQKICAgICBpZiAoQmFzZTo6Z2V0T3du
UHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAg
ICAgICAgIC8vIERldGVjdCB3aGVuIHdlJ3JlIGdldHRpbmcgdGhlIHByb3BlcnR5ICdzaG93TW9k
YWxEaWFsb2cnLCB0aGlzIGlzIGRpc2FibGVkLCBhbmQgaGFzIGl0cyBvcmlnaW5hbCB2YWx1ZS4K
ICAgICAgICAgYm9vbCBpc1Nob3dNb2RhbERpYWxvZ0FuZFNob3VsZEhpZGUgPSBwcm9wZXJ0eU5h
bWUgPT0gc3RhdGUtPnByb3BlcnR5TmFtZXMoKS5zaG93TW9kYWxEaWFsb2cKLSAgICAgICAgICAg
ICYmICFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhmcmFtZSkKKyAgICAgICAgICAgICYm
ICFET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZygqZnJhbWUpCiAgICAgICAgICAgICAmJiBz
bG90LmlzVmFsdWUoKSAmJiBpc0hvc3RGdW5jdGlvbihzbG90LmdldFZhbHVlKHN0YXRlLCBwcm9w
ZXJ0eU5hbWUpLCBqc0RPTVdpbmRvd0luc3RhbmNlRnVuY3Rpb25TaG93TW9kYWxEaWFsb2cpOwog
ICAgICAgICAvLyBVbmxlc3Mgd2UncmUgaW4gdGhlIHNob3dNb2RhbERpYWxvZyBzcGVjaWFsIGNh
c2UsIHdlJ3JlIGRvbmUuCiAgICAgICAgIGlmICghaXNTaG93TW9kYWxEaWFsb2dBbmRTaG91bGRI
aWRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMDgxNjBhZGQzYTNhM2RlOWNkNDg3ZmQ0
MTQxMzgyMTYxYzkxZjE5Yy4uOTQ4ZDY3Y2VlNDM5YjUwZGY4MGJjZmY1OWI3N2YwMjI2NzBiY2Vi
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC04NDgsMTMgKzg0OCwxMSBAQCB2b2lkIERv
Y3VtZW50OjpjaGlsZHJlbkNoYW5nZWQoY29uc3QgQ2hpbGRDaGFuZ2UmIGNoYW5nZSkKIHsKICAg
ICBDb250YWluZXJOb2RlOjpjaGlsZHJlbkNoYW5nZWQoY2hhbmdlKTsKIAotI2lmIFBMQVRGT1JN
KElPUykKICAgICAvLyBGSVhNRTogQ2hyb21lOjpkaWRSZWNlaXZlRG9jVHlwZSgpIHVzZWQgdG8g
YmUgY2FsbGVkIG9ubHkgd2hlbiB0aGUgZG9jdHlwZSBjaGFuZ2VkLiBXZSBuZWVkIHRvIGNoZWNr
IHRoZQogICAgIC8vIGltcGFjdCBvZiBjYWxsaW5nIHRoaXMgc3lzdGVtYXRpY2FsbHkuIElmIHRo
ZSBvdmVyaGVhZCBpcyBuZWdsaWdpYmxlLCB3ZSBuZWVkIHRvIHJlbmFtZSBkaWRSZWNlaXZlRG9j
VHlwZSwKICAgICAvLyBvdGhlcndpc2UsIHdlIG5lZWQgdG8gZGV0ZWN0IHRoZSBkb2MgdHlwZSBj
aGFuZ2VzIGJlZm9yZSB1cGRhdGluZyB0aGUgdmlld3BvcnQuCiAgICAgaWYgKFBhZ2UqIHBhZ2Ug
PSB0aGlzLT5wYWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NUeXBl
KGZyYW1lKCkpOwotI2VuZGlmCisgICAgICAgIHBhZ2UtPmNocm9tZSgpLmRpZFJlY2VpdmVEb2NU
eXBlKCpmcmFtZSgpKTsKIAogICAgIEVsZW1lbnQqIG5ld0RvY3VtZW50RWxlbWVudCA9IGNoaWxk
cmVuT2ZUeXBlPEVsZW1lbnQ+KCp0aGlzKS5maXJzdCgpOwogICAgIGlmIChuZXdEb2N1bWVudEVs
ZW1lbnQgPT0gbV9kb2N1bWVudEVsZW1lbnQpCkBAIC0yMzcyLDkgKzIzNzAsMTAgQEAgdm9pZCBE
b2N1bWVudDo6cGxhdGZvcm1TdXNwZW5kT3JTdG9wQWN0aXZlRE9NT2JqZWN0cygpCiB7CiAjaWYg
UExBVEZPUk0oSU9TKQogICAgIGlmIChXZWJUaHJlYWRDb3VudE9mT2JzZXJ2ZWRDb250ZW50TW9k
aWZpZXJzKCkgPiAwKSB7Ci0gICAgICAgIEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCk7Ci0g
ICAgICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUgPyBmcmFtZS0+cGFnZSgpIDogbnVsbHB0cikK
LSAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmNsZWFyQ29udGVudENoYW5nZU9i
c2VydmVycyhmcmFtZSk7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCkp
IHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBwYWdlID0gZnJhbWUtPnBhZ2UoKSkKKyAgICAgICAg
ICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5jbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZl
cnMoKmZyYW1lKTsKKyAgICAgICAgfQogICAgIH0KICNlbmRpZgogfQpAQCAtMzIxOCw5ICszMjE3
LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlVmlld3BvcnRBcmd1bWVudHMoKQogICAgICAgICBt
X2RpZERpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZCA9IHRydWU7CiAjZW5kaWYKICAg
ICAgICAgcGFnZSgpLT5jaHJvbWUoKS5kaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0RpZENoYW5n
ZShtX3ZpZXdwb3J0QXJndW1lbnRzKTsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIHBhZ2Uo
KS0+Y2hyb21lKCkuZGlkUmVjZWl2ZURvY1R5cGUoZnJhbWUoKSk7Ci0jZW5kaWYKKyAgICAgICAg
cGFnZSgpLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZSgqZnJhbWUoKSk7CiAgICAgfQogfQog
CkBAIC0zNjQyLDcgKzM2MzksNyBAQCBib29sIERvY3VtZW50OjpzZXRGb2N1c2VkRWxlbWVudChF
bGVtZW50KiBlbGVtZW50LCBGb2N1c0RpcmVjdGlvbiBkaXJlY3Rpb24sIEZvYwogICAgICAgICAg
ICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KCpvbGRGb2N1c2VkRWxlbWVudCkpCiAgICAgICAg
ICAgICAgICAgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oKm9sZEZvY3VzZWRFbGVtZW50KS5l
bmRFZGl0aW5nKCk7CiAgICAgICAgICAgICBpZiAocGFnZSgpKQotICAgICAgICAgICAgICAgIHBh
Z2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZEJsdXIob2xkRm9jdXNlZEVsZW1lbnQu
Z2V0KCkpOworICAgICAgICAgICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVu
dERpZEJsdXIoKm9sZEZvY3VzZWRFbGVtZW50KTsKICAgICAgICAgICAgIEFTU0VSVCghbV9mb2N1
c2VkRWxlbWVudCk7CiAgICAgICAgIH0KIApAQCAtNDAwMCw3ICszOTk3LDcgQEAgdm9pZCBEb2N1
bWVudDo6Y3JlYXRlRE9NV2luZG93KCkKICAgICBBU1NFUlQobV9mcmFtZSk7CiAgICAgQVNTRVJU
KCFtX2RvbVdpbmRvdyk7CiAKLSAgICBtX2RvbVdpbmRvdyA9IERPTVdpbmRvdzo6Y3JlYXRlKHRo
aXMpOworICAgIG1fZG9tV2luZG93ID0gRE9NV2luZG93OjpjcmVhdGUoKnRoaXMpOwogCiAgICAg
QVNTRVJUKG1fZG9tV2luZG93LT5kb2N1bWVudCgpID09IHRoaXMpOwogICAgIEFTU0VSVChtX2Rv
bVdpbmRvdy0+ZnJhbWUoKSA9PSBtX2ZyYW1lKTsKQEAgLTQwMTUsNyArNDAxMiw3IEBAIHZvaWQg
RG9jdW1lbnQ6OnRha2VET01XaW5kb3dGcm9tKERvY3VtZW50KiBkb2N1bWVudCkKICAgICBBU1NF
UlQocGFnZUNhY2hlU3RhdGUoKSA9PSBOb3RJblBhZ2VDYWNoZSk7CiAKICAgICBtX2RvbVdpbmRv
dyA9IFdURk1vdmUoZG9jdW1lbnQtPm1fZG9tV2luZG93KTsKLSAgICBtX2RvbVdpbmRvdy0+ZGlk
U2VjdXJlVHJhbnNpdGlvblRvKHRoaXMpOworICAgIG1fZG9tV2luZG93LT5kaWRTZWN1cmVUcmFu
c2l0aW9uVG8oKnRoaXMpOwogCiAgICAgQVNTRVJUKG1fZG9tV2luZG93LT5kb2N1bWVudCgpID09
IHRoaXMpOwogICAgIEFTU0VSVChtX2RvbVdpbmRvdy0+ZnJhbWUoKSA9PSBtX2ZyYW1lKTsKQEAg
LTU1NzMsMTIgKzU1NzAsMTIgQEAgdm9pZCBEb2N1bWVudDo6cmVxdWVzdEZ1bGxTY3JlZW5Gb3JF
bGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIEZ1bGxTY3JlZW5DaGVja1R5cGUKICAgICAgICAgICAg
IGJyZWFrOwogCiAgICAgICAgIGJvb2wgaGFzS2V5Ym9hcmRBY2Nlc3MgPSB0cnVlOwotICAgICAg
ICBpZiAoIXBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxl
bWVudChlbGVtZW50LCBoYXNLZXlib2FyZEFjY2VzcykpIHsKKyAgICAgICAgaWYgKCFwYWdlKCkt
PmNocm9tZSgpLmNsaWVudCgpLnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoKmVsZW1lbnQs
IGhhc0tleWJvYXJkQWNjZXNzKSkgewogICAgICAgICAgICAgLy8gVGhlIG5ldyBmdWxsIHNjcmVl
biBBUEkgZG9lcyBub3QgYWNjZXB0IGEgImZsYWdzIiBwYXJhbWV0ZXIsIHNvIGZhbGwgYmFjayB0
byBkaXNhbGxvd2luZwogICAgICAgICAgICAgLy8ga2V5Ym9hcmQgaW5wdXQgaWYgdGhlIGNocm9t
ZSBjbGllbnQgcmVmdXNlcyB0byBhbGxvdyBrZXlib2FyZCBpbnB1dC4KICAgICAgICAgICAgIGhh
c0tleWJvYXJkQWNjZXNzID0gZmFsc2U7CiAKLSAgICAgICAgICAgIGlmICghcGFnZSgpLT5jaHJv
bWUoKS5jbGllbnQoKS5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQsIGhhc0tl
eWJvYXJkQWNjZXNzKSkKKyAgICAgICAgICAgIGlmICghcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQo
KS5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KCplbGVtZW50LCBoYXNLZXlib2FyZEFjY2Vz
cykpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtNTYzMSw3ICs1NjI4
LDcgQEAgdm9pZCBEb2N1bWVudDo6cmVxdWVzdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQq
IGVsZW1lbnQsIEZ1bGxTY3JlZW5DaGVja1R5cGUKICAgICAgICAgLy8gNS4gUmV0dXJuLCBhbmQg
cnVuIHRoZSByZW1haW5pbmcgc3RlcHMgYXN5bmNocm9ub3VzbHkuCiAgICAgICAgIC8vIDYuIE9w
dGlvbmFsbHksIHBlcmZvcm0gc29tZSBhbmltYXRpb24uCiAgICAgICAgIG1fYXJlS2V5c0VuYWJs
ZWRJbkZ1bGxTY3JlZW4gPSBoYXNLZXlib2FyZEFjY2VzczsKLSAgICAgICAgcGFnZSgpLT5jaHJv
bWUoKS5jbGllbnQoKS5lbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KGVsZW1lbnQpOworICAgICAg
ICBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoKmVs
ZW1lbnQpOwogCiAgICAgICAgIC8vIDcuIE9wdGlvbmFsbHksIGRpc3BsYXkgYSBtZXNzYWdlIGlu
ZGljYXRpbmcgaG93IHRoZSB1c2VyIGNhbiBleGl0IGRpc3BsYXlpbmcgdGhlIGNvbnRleHQgb2Jq
ZWN0IGZ1bGxzY3JlZW4uCiAgICAgICAgIHJldHVybjsKQEAgLTU3MjMsMTIgKzU3MjAsMTIgQEAg
dm9pZCBEb2N1bWVudDo6d2Via2l0RXhpdEZ1bGxzY3JlZW4oKQogICAgIC8vIE9ubHkgZXhpdCBv
dXQgb2YgZnVsbCBzY3JlZW4gd2luZG93IG1vZGUgaWYgdGhlcmUgYXJlIG5vIHJlbWFpbmluZyBl
bGVtZW50cyBpbiB0aGUgCiAgICAgLy8gZnVsbCBzY3JlZW4gc3RhY2suCiAgICAgaWYgKCFuZXdU
b3ApIHsKLSAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5leGl0RnVsbFNjcmVlbkZv
ckVsZW1lbnQobV9mdWxsU2NyZWVuRWxlbWVudC5nZXQoKSk7CisgICAgICAgIHBhZ2UoKS0+Y2hy
b21lKCkuY2xpZW50KCkuZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KCptX2Z1bGxTY3JlZW5FbGVt
ZW50KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIC8vIE90aGVyd2lzZSwgbm90aWZ5
IHRoZSBjaHJvbWUgb2YgdGhlIG5ldyBmdWxsIHNjcmVlbiBlbGVtZW50LgotICAgIHBhZ2UoKS0+
Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChuZXdUb3ApOworICAg
IHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudCgqbmV3
VG9wKTsKIH0KIAogYm9vbCBEb2N1bWVudDo6d2Via2l0RnVsbHNjcmVlbkVuYWJsZWQoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IDg4ZTNlOTkzMDFhNzE5ZGUyNTQwODNhOTMyNmEz
YmFjZjNlYzM4ZmMuLjg1ZTBiMjZmMWMzZTc4YjJjYmJjNjg1YjZhZDE5ZjI1ZDBkOWJlYTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTIzNDgsNyArMjM0OCw3IEBAIHZvaWQgRWxlbWVudDo6
Zm9jdXMoYm9vbCByZXN0b3JlUHJldmlvdXNTZWxlY3Rpb24sIEZvY3VzRGlyZWN0aW9uIGRpcmVj
dGlvbikKIAogICAgIGlmIChkb2N1bWVudCgpLmZvY3VzZWRFbGVtZW50KCkgPT0gdGhpcykgewog
ICAgICAgICBpZiAoZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgICAgICBkb2N1bWVudCgpLnBh
Z2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZFJlZm9jdXModGhpcyk7CisgICAgICAg
ICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuZWxlbWVudERpZFJlZm9j
dXMoKnRoaXMpOwogCiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yMzcxLDcgKzIzNzEsNyBA
QCB2b2lkIEVsZW1lbnQ6OmZvY3VzKGJvb2wgcmVzdG9yZVByZXZpb3VzU2VsZWN0aW9uLCBGb2N1
c0RpcmVjdGlvbiBkaXJlY3Rpb24pCiAgICAgICAgIC8vIElmIGEgZm9jdXMgZXZlbnQgaGFuZGxl
ciBjaGFuZ2VzIHRoZSBmb2N1cyB0byBhIGRpZmZlcmVudCBub2RlIGl0CiAgICAgICAgIC8vIGRv
ZXMgbm90IG1ha2Ugc2Vuc2UgdG8gY29udGludWUgYW5kIHVwZGF0ZSBhcHBlYXJlbmNlLgogICAg
ICAgICBwcm90ZWN0ID0gdGhpczsKLSAgICAgICAgaWYgKCFwYWdlLT5mb2N1c0NvbnRyb2xsZXIo
KS5zZXRGb2N1c2VkRWxlbWVudCh0aGlzLCBkb2N1bWVudCgpLmZyYW1lKCksIGRpcmVjdGlvbikp
CisgICAgICAgIGlmICghcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQo
dGhpcywgKmRvY3VtZW50KCkuZnJhbWUoKSwgZGlyZWN0aW9uKSkKICAgICAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTI0NDEsNyArMjQ0MSw3IEBAIHZvaWQgRWxlbWVudDo6Ymx1cigpCiAg
ICAgY2FuY2VsRm9jdXNBcHBlYXJhbmNlVXBkYXRlKCk7CiAgICAgaWYgKHRyZWVTY29wZSgpLmZv
Y3VzZWRFbGVtZW50SW5TY29wZSgpID09IHRoaXMpIHsKICAgICAgICAgaWYgKEZyYW1lKiBmcmFt
ZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAgICAgIGZyYW1lLT5wYWdlKCktPmZvY3Vz
Q29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KDAsIGZyYW1lKTsKKyAgICAgICAgICAgIGZy
YW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIs
ICpmcmFtZSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIGRvY3VtZW50KCkuc2V0Rm9jdXNl
ZEVsZW1lbnQobnVsbHB0cik7CiAgICAgfQpAQCAtMjQ2NCw3ICsyNDY0LDcgQEAgdm9pZCBFbGVt
ZW50OjpkaXNwYXRjaEZvY3VzT3V0RXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUs
IFJlZlB0cjxFbGVtZW4KIHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KFJlZlB0cjxF
bGVtZW50PiYmIG9sZEZvY3VzZWRFbGVtZW50LCBGb2N1c0RpcmVjdGlvbikKIHsKICAgICBpZiAo
ZG9jdW1lbnQoKS5wYWdlKCkpCi0gICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5j
bGllbnQoKS5lbGVtZW50RGlkRm9jdXModGhpcyk7CisgICAgICAgIGRvY3VtZW50KCkucGFnZSgp
LT5jaHJvbWUoKS5jbGllbnQoKS5lbGVtZW50RGlkRm9jdXMoKnRoaXMpOwogCiAgICAgRXZlbnRE
aXNwYXRjaGVyOjpkaXNwYXRjaEV2ZW50KCp0aGlzLCBGb2N1c0V2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLmZvY3VzRXZlbnQsIGZhbHNlLCBmYWxzZSwgZG9jdW1lbnQoKS5kZWZhdWx0Vmlldygp
LCAwLCBXVEZNb3ZlKG9sZEZvY3VzZWRFbGVtZW50KSkpOwogfQpAQCAtMjQ3Miw3ICsyNDcyLDcg
QEAgdm9pZCBFbGVtZW50OjpkaXNwYXRjaEZvY3VzRXZlbnQoUmVmUHRyPEVsZW1lbnQ+JiYgb2xk
Rm9jdXNlZEVsZW1lbnQsIEZvY3VzRGlyZWMKIHZvaWQgRWxlbWVudDo6ZGlzcGF0Y2hCbHVyRXZl
bnQoUmVmUHRyPEVsZW1lbnQ+JiYgbmV3Rm9jdXNlZEVsZW1lbnQpCiB7CiAgICAgaWYgKGRvY3Vt
ZW50KCkucGFnZSgpKQotICAgICAgICBkb2N1bWVudCgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50
KCkuZWxlbWVudERpZEJsdXIodGhpcyk7CisgICAgICAgIGRvY3VtZW50KCkucGFnZSgpLT5jaHJv
bWUoKS5jbGllbnQoKS5lbGVtZW50RGlkQmx1cigqdGhpcyk7CiAKICAgICBFdmVudERpc3BhdGNo
ZXI6OmRpc3BhdGNoRXZlbnQoKnRoaXMsIEZvY3VzRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
Ymx1ckV2ZW50LCBmYWxzZSwgZmFsc2UsIGRvY3VtZW50KCkuZGVmYXVsdFZpZXcoKSwgMCwgV1RG
TW92ZShuZXdGb2N1c2VkRWxlbWVudCkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBiYjNhYjk5
ZTYxYzViZGMxMDQzZjNlYmM0ZTBmNzk2YTJkY2JkOGI3Li43NjYyMzA1NDcxZTUxZmJiZjZlNGZh
MzU1NzVlZDZhYmFiZmM3MDc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0yMjUzLDcgKzIyNTMsNyBA
QCB2b2lkIE5vZGU6OmRlZmF1bHRFdmVudEhhbmRsZXIoRXZlbnQmIGV2ZW50KQogICAgIH0gZWxz
ZSBpZiAoZXZlbnRUeXBlID09IGV2ZW50TmFtZXMoKS5jb250ZXh0bWVudUV2ZW50KSB7CiAgICAg
ICAgIGlmIChGcmFtZSogZnJhbWUgPSBkb2N1bWVudCgpLmZyYW1lKCkpCiAgICAgICAgICAgICBp
ZiAoUGFnZSogcGFnZSA9IGZyYW1lLT5wYWdlKCkpCi0gICAgICAgICAgICAgICAgcGFnZS0+Y29u
dGV4dE1lbnVDb250cm9sbGVyKCkuaGFuZGxlQ29udGV4dE1lbnVFdmVudCgmZXZlbnQpOworICAg
ICAgICAgICAgICAgIHBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLmhhbmRsZUNvbnRleHRN
ZW51RXZlbnQoZXZlbnQpOwogI2VuZGlmCiAgICAgfSBlbHNlIGlmIChldmVudFR5cGUgPT0gZXZl
bnROYW1lcygpLnRleHRJbnB1dEV2ZW50KSB7CiAgICAgICAgIGlmIChpczxUZXh0RXZlbnQ+KGV2
ZW50KSkgewpAQCAtMjI3Miw3ICsyMjcyLDcgQEAgdm9pZCBOb2RlOjpkZWZhdWx0RXZlbnRIYW5k
bGVyKEV2ZW50JiBldmVudCkKIAogICAgICAgICAgICAgaWYgKHJlbmRlcmVyKSB7CiAgICAgICAg
ICAgICAgICAgaWYgKEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50KCkuZnJhbWUoKSkKLSAgICAgICAg
ICAgICAgICAgICAgZnJhbWUtPmV2ZW50SGFuZGxlcigpLnN0YXJ0UGFuU2Nyb2xsaW5nKGRvd25j
YXN0PFJlbmRlckJveD4ocmVuZGVyZXIpKTsKKyAgICAgICAgICAgICAgICAgICAgZnJhbWUtPmV2
ZW50SGFuZGxlcigpLnN0YXJ0UGFuU2Nyb2xsaW5nKGRvd25jYXN0PFJlbmRlckJveD4oKnJlbmRl
cmVyKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggYWNmMjI2OGE3ZTc5MzA5MjdjZWNiYjEzZDI0
ZDY0Y2ZhZGJmNmRkZS4uMDFmMDcxY2NhZGNkZjE5NjQxZjI4Nzc3NDE5ZGI0NmNiNTQwYzYwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC05MzAsNyArOTMw
LDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZVByaW50KEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0
b3JDb21tYW5kU291cmNlLCBjb25zdCBTdHJpbmcKICAgICBQYWdlKiBwYWdlID0gZnJhbWUucGFn
ZSgpOwogICAgIGlmICghcGFnZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHBhZ2UtPmNo
cm9tZSgpLnByaW50KCZmcmFtZSk7CisgICAgcGFnZS0+Y2hyb21lKCkucHJpbnQoZnJhbWUpOwog
ICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0ZyYW1lU2VsZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rp
b24uY3BwCmluZGV4IDY3NTlmZjE3N2ZlNzY3MWNiYjE2OTM1ZWIzNjEwZDJhNTY5N2I3ODYuLjcx
M2U3Nzk3MTgyNTI1ZDc3MmY0YzI5MDRmYjkyYjQyNDU5ZjIzOTAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRnJhbWVTZWxlY3Rpb24uY3BwCkBAIC0yMTU3LDcgKzIxNTcsNyBAQCB2b2lkIEZy
YW1lU2VsZWN0aW9uOjpzZXRGb2N1c2VkRWxlbWVudElmTmVlZGVkKCkKICAgICBib29sIGNhcmV0
QnJvd3NpbmcgPSBtX2ZyYW1lLT5zZXR0aW5ncygpLmNhcmV0QnJvd3NpbmdFbmFibGVkKCk7CiAg
ICAgaWYgKGNhcmV0QnJvd3NpbmcpIHsKICAgICAgICAgaWYgKEVsZW1lbnQqIGFuY2hvciA9IGVu
Y2xvc2luZ0FuY2hvckVsZW1lbnQobV9zZWxlY3Rpb24uYmFzZSgpKSkgewotICAgICAgICAgICAg
bV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChhbmNo
b3IsIG1fZnJhbWUpOworICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xs
ZXIoKS5zZXRGb2N1c2VkRWxlbWVudChhbmNob3IsICptX2ZyYW1lKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTIxNjksMTYgKzIxNjksMTYgQEAgdm9pZCBGcmFt
ZVNlbGVjdGlvbjo6c2V0Rm9jdXNlZEVsZW1lbnRJZk5lZWRlZCgpCiAgICAgICAgICAgICAvLyBz
byBhZGQgdGhlICFpc0ZyYW1lRWxlbWVudCBjaGVjayBoZXJlLiBUaGVyZSdzIHByb2JhYmx5IGEg
YmV0dGVyIHdheSB0byBtYWtlIHRoaXMKICAgICAgICAgICAgIC8vIHdvcmsgaW4gdGhlIGxvbmcg
dGVybSwgYnV0IHRoaXMgaXMgdGhlIHNhZmVzdCBmaXggYXQgdGhpcyB0aW1lLgogICAgICAgICAg
ICAgaWYgKHRhcmdldC0+aXNNb3VzZUZvY3VzYWJsZSgpICYmICFpc0ZyYW1lRWxlbWVudCh0YXJn
ZXQpKSB7Ci0gICAgICAgICAgICAgICAgbV9mcmFtZS0+cGFnZSgpLT5mb2N1c0NvbnRyb2xsZXIo
KS5zZXRGb2N1c2VkRWxlbWVudCh0YXJnZXQsIG1fZnJhbWUpOworICAgICAgICAgICAgICAgIG1f
ZnJhbWUtPnBhZ2UoKS0+Zm9jdXNDb250cm9sbGVyKCkuc2V0Rm9jdXNlZEVsZW1lbnQodGFyZ2V0
LCAqbV9mcmFtZSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogICAg
ICAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0LT5wYXJlbnRPclNoYWRvd0hvc3RFbGVtZW50KCk7CiAg
ICAgICAgIH0KLSAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2V0Rm9jdXNlZEVsZW1lbnQo
MCk7CisgICAgICAgIG1fZnJhbWUtPmRvY3VtZW50KCktPnNldEZvY3VzZWRFbGVtZW50KG51bGxw
dHIpOwogICAgIH0KIAogICAgIGlmIChjYXJldEJyb3dzaW5nKQotICAgICAgICBtX2ZyYW1lLT5w
YWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KDAsIG1fZnJhbWUpOwor
ICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRFbGVt
ZW50KG51bGxwdHIsICptX2ZyYW1lKTsKIH0KIAogdm9pZCBEcmFnQ2FyZXRDb250cm9sbGVyOjpw
YWludERyYWdDYXJldChGcmFtZSogZnJhbWUsIEdyYXBoaWNzQ29udGV4dCYgcCwgY29uc3QgTGF5
b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBjb25zdCBMYXlvdXRSZWN0JiBjbGlwUmVjdCkgY29uc3QK
QEAgLTIzMjgsNyArMjMyOCw3IEBAIHZvaWQgRnJhbWVTZWxlY3Rpb246OnJldmVhbFNlbGVjdGlv
bihTZWxlY3Rpb25SZXZlYWxNb2RlIHJldmVhbE1vZGUsIGNvbnN0IFNjcm9sCiAgICAgICAgICAg
ICAgICAgbGF5ZXItPnNldEFkanVzdEZvcklPU0NhcmV0V2hlblNjcm9sbGluZyhmYWxzZSk7CiAg
ICAgICAgICAgICAgICAgdXBkYXRlQXBwZWFyYW5jZSgpOwogICAgICAgICAgICAgICAgIGlmICht
X2ZyYW1lLT5wYWdlKCkpCi0gICAgICAgICAgICAgICAgICAgIG1fZnJhbWUtPnBhZ2UoKS0+Y2hy
b21lKCkuY2xpZW50KCkubm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKG1f
ZnJhbWUpOworICAgICAgICAgICAgICAgICAgICBtX2ZyYW1lLT5wYWdlKCktPmNocm9tZSgpLmNs
aWVudCgpLm5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZSgqbV9mcmFtZSk7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9oaXN0b3J5L0NhY2hlZEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2Fj
aGVkRnJhbWUuY3BwCmluZGV4IDM2MzM5OGQ2ZWZjYzE0YzRiNmJiNzVmMzEzODdjZGQ3ZTdjNTk5
ZDEuLjIxZjI0YWQzOWY0YTkxNjZjOGIxMTNjYWUyNzAwZmU5ZjQ1MWNhOGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvQ2FjaGVkRnJhbWUuY3BwCkBAIC05OCw5ICs5OCw5IEBAIHZvaWQgQ2FjaGVk
RnJhbWVCYXNlOjpyZXN0b3JlKCkKICAgICBmcmFtZS5sb2FkZXIoKS5jbGllbnQoKS5kaWRSZXN0
b3JlRnJvbVBhZ2VDYWNoZSgpOwogCiAgICAgLy8gUmVjb25zdHJ1Y3QgdGhlIEZyYW1lVHJlZS4g
QW5kIG9wZW4gdGhlIGNoaWxkIENhY2hlZEZyYW1lcyBpbiB0aGVpciByZXNwZWN0aXZlIEZyYW1l
TG9hZGVycy4KLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9jaGlsZEZyYW1lcy5zaXpl
KCk7ICsraSkgewotICAgICAgICBmcmFtZS50cmVlKCkuYXBwZW5kQ2hpbGQoJm1fY2hpbGRGcmFt
ZXNbaV0tPnZpZXcoKS0+ZnJhbWUoKSk7Ci0gICAgICAgIG1fY2hpbGRGcmFtZXNbaV0tPm9wZW4o
KTsKKyAgICBmb3IgKGF1dG8mIGNoaWxkRnJhbWUgOiBtX2NoaWxkRnJhbWVzKSB7CisgICAgICAg
IGZyYW1lLnRyZWUoKS5hcHBlbmRDaGlsZChjaGlsZEZyYW1lLT52aWV3KCktPmZyYW1lKCkpOwor
ICAgICAgICBjaGlsZEZyYW1lLT5vcGVuKCk7CiAgICAgfQogCiAjaWYgUExBVEZPUk0oSU9TKQpA
QCAtMTExLDcgKzExMSw3IEBAIHZvaWQgQ2FjaGVkRnJhbWVCYXNlOjpyZXN0b3JlKCkKICAgICAg
ICAgICAgIC8vIEZJWE1FOiBBZGQgU0NST0xMX0xJU1RFTkVSIHRvIHRoZSBsaXN0IG9mIGV2ZW50
IHR5cGVzIG9uIERvY3VtZW50LCBhbmQgdXNlIG1fZG9jdW1lbnQtPmhhc0xpc3RlbmVyVHlwZSgp
LiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzk2MTU0ODI+LgogICAgICAgICAgICAgLy8gRklYTUU6IENh
biB1c2UgRG9jdW1lbnQ6Omhhc0xpc3RlbmVyVHlwZSgpIG5vdy4KICAgICAgICAgICAgIGlmIChk
b21XaW5kb3ctPnNjcm9sbEV2ZW50TGlzdGVuZXJDb3VudCgpICYmIGZyYW1lLnBhZ2UoKSkKLSAg
ICAgICAgICAgICAgICBmcmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE5lZWRzU2Ny
b2xsTm90aWZpY2F0aW9ucygmZnJhbWUsIHRydWUpOworICAgICAgICAgICAgICAgIGZyYW1lLnBh
Z2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKGZyYW1l
LCB0cnVlKTsKICAgICAgICAgfQogICAgIH0KICNlbmRpZgpAQCAtMTYzLDcgKzE2Myw3IEBAIENh
Y2hlZEZyYW1lOjpDYWNoZWRGcmFtZShGcmFtZSYgZnJhbWUpCiAgICAgLy8gMSAtIFdlIHJldXNl
IHRoZSBtYWluIGZyYW1lLCBzbyB3aGVuIGl0IG5hdmlnYXRlcyB0byBhIG5ldyBwYWdlIGxvYWQg
aXQgbmVlZHMgdG8gc3RhcnQgd2l0aCBhIGJsYW5rIEZyYW1lVHJlZS4KICAgICAvLyAyIC0gSXQn
cyBtdWNoIGVhc2llciB0byBkZXN0cm95IGEgQ2FjaGVkRnJhbWUgd2hpbGUgaXQgcmVzaWRlcyBp
biB0aGUgUGFnZUNhY2hlIGlmIGl0IGlzIGRpc2Nvbm5lY3RlZCBmcm9tIGl0cyBwYXJlbnQuCiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fY2hpbGRGcmFtZXMuc2l6ZSgpOyArK2kpCi0g
ICAgICAgIGZyYW1lLnRyZWUoKS5yZW1vdmVDaGlsZCgmbV9jaGlsZEZyYW1lc1tpXS0+dmlldygp
LT5mcmFtZSgpKTsKKyAgICAgICAgZnJhbWUudHJlZSgpLnJlbW92ZUNoaWxkKG1fY2hpbGRGcmFt
ZXNbaV0tPnZpZXcoKS0+ZnJhbWUoKSk7CiAKICAgICBpZiAoIW1faXNNYWluRnJhbWUpCiAgICAg
ICAgIGZyYW1lLnBhZ2UoKS0+ZGVjcmVtZW50U3ViZnJhbWVDb3VudCgpOwpAQCAtMTgxLDcgKzE4
MSw3IEBAIENhY2hlZEZyYW1lOjpDYWNoZWRGcmFtZShGcmFtZSYgZnJhbWUpCiAgICAgaWYgKG1f
aXNNYWluRnJhbWUpIHsKICAgICAgICAgaWYgKERPTVdpbmRvdyogZG9tV2luZG93ID0gbV9kb2N1
bWVudC0+ZG9tV2luZG93KCkpIHsKICAgICAgICAgICAgIGlmIChkb21XaW5kb3ctPnNjcm9sbEV2
ZW50TGlzdGVuZXJDb3VudCgpICYmIGZyYW1lLnBhZ2UoKSkKLSAgICAgICAgICAgICAgICBmcmFt
ZS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucygm
ZnJhbWUsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBmcmFtZS5wYWdlKCktPmNocm9tZSgpLmNs
aWVudCgpLnNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhmcmFtZSwgZmFsc2UpOwogICAgICAg
ICB9CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0NvbG9y
SW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCmlu
ZGV4IDViYTJjOTU0YjJiZDg5OTViYzBiMmI3MmQyZmZjZDM3OTE5MTA3YTYuLjUwZTFmY2IxNDM3
MTNhMzBhYzkxNTMzMTNiNTg5MzI1NzkwZDIxZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvQ29sb3JJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvQ29sb3JJ
bnB1dFR5cGUuY3BwCkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBDb2xvcklucHV0VHlwZTo6aGFu
ZGxlRE9NQWN0aXZhdGVFdmVudChFdmVudCYgZXZlbnQpCiAKICAgICBpZiAoQ2hyb21lKiBjaHJv
bWUgPSB0aGlzLT5jaHJvbWUoKSkgewogICAgICAgICBpZiAoIW1fY2hvb3NlcikKLSAgICAgICAg
ICAgIG1fY2hvb3NlciA9IGNocm9tZS0+Y3JlYXRlQ29sb3JDaG9vc2VyKHRoaXMsIHZhbHVlQXND
b2xvcigpKTsKKyAgICAgICAgICAgIG1fY2hvb3NlciA9IGNocm9tZS0+Y3JlYXRlQ29sb3JDaG9v
c2VyKCp0aGlzLCB2YWx1ZUFzQ29sb3IoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1f
Y2hvb3Nlci0+cmVhdHRhY2hDb2xvckNob29zZXIodmFsdWVBc0NvbG9yKCkpOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5jcHAKaW5kZXggODExZWIwZDVkMDVi
NmE2Yzc2ODg3OGQwM2ZjMzNjMWMyNDk0NmZiMC4uYmFlYjU3NmIxNTYzZWIzMTU3YmI3MmVjZDg3
Yjc4MjcwMDllZjMwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9y
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVudC5j
cHAKQEAgLTEyOSw3ICsxMjksNyBAQCBib29sIEhUTUxBbmNob3JFbGVtZW50Ojppc0tleWJvYXJk
Rm9jdXNhYmxlKEtleWJvYXJkRXZlbnQmIGV2ZW50KSBjb25zdAogICAgIGlmICghZG9jdW1lbnQo
KS5mcmFtZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoIWRvY3VtZW50KCku
ZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoJmV2ZW50KSkKKyAgICBpZiAoIWRv
Y3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoZXZlbnQpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIXJlbmRlcmVyKCkgJiYgYW5jZXN0b3JzT2ZU
eXBlPEhUTUxDYW52YXNFbGVtZW50PigqdGhpcykuZmlyc3QoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCmluZGV4IGVhOGEzYjMzZTAwMjc4MzJk
NjcwZjllMDk4N2FjY2E4ZDM2OGJhYTIuLjYyYzI4NjE3YWUzNWRlNjczMmZmYTA2NjMzOGZlMzE4
MTY1NDZjYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9s
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVt
ZW50LmNwcApAQCAtMzcwLDEwICszNzAsOSBAQCBib29sIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6
OmlzRm9jdXNhYmxlKCkgY29uc3QKIAogYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50Ojppc0tl
eWJvYXJkRm9jdXNhYmxlKEtleWJvYXJkRXZlbnQmIGV2ZW50KSBjb25zdAogewotICAgIGlmIChp
c0ZvY3VzYWJsZSgpKQotICAgICAgICBpZiAoZG9jdW1lbnQoKS5mcmFtZSgpKQotICAgICAgICAg
ICAgcmV0dXJuIGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvQWxsRm9y
bUNvbnRyb2xzKCZldmVudCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc0ZvY3Vz
YWJsZSgpCisgICAgICAgICYmIGRvY3VtZW50KCkuZnJhbWUoKQorICAgICAgICAmJiBkb2N1bWVu
dCgpLmZyYW1lKCktPmV2ZW50SGFuZGxlcigpLnRhYnNUb0FsbEZvcm1Db250cm9scyhldmVudCk7
CiB9CiAKIGJvb2wgSFRNTEZvcm1Db250cm9sRWxlbWVudDo6aXNNb3VzZUZvY3VzYWJsZSgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxWaWRlb0VsZW1lbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNwcAppbmRleCBkOGE3OTNl
MzBlYmYxYmMzM2IxYTMyYTJmMmNkMWNmN2I5MTg5ZGJjLi5hOWRiOTA1MThkZTcxMDBmODYxYWZj
ZGRiYTZkMjY3NWEyMGUzYmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxW
aWRlb0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVu
dC5jcHAKQEAgLTE3MSw3ICsxNzEsNyBAQCBib29sIEhUTUxWaWRlb0VsZW1lbnQ6OnN1cHBvcnRz
RnVsbHNjcmVlbihIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbgogI2lmIEVO
QUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICAvLyBJZiB0aGUgZnVsbCBzY3JlZW4gQVBJIGlzIGVu
YWJsZWQgYW5kIGlzIHN1cHBvcnRlZCBmb3IgdGhlIGN1cnJlbnQgZWxlbWVudAogICAgIC8vIGRv
IG5vdCByZXF1aXJlIHRoYXQgdGhlIHBsYXllciBoYXMgYSB2aWRlbyB0cmFjayB0byBlbnRlciBm
dWxsIHNjcmVlbi4KLSAgICBpZiAodmlkZW9GdWxsc2NyZWVuTW9kZSA9PSBIVE1MTWVkaWFFbGVt
ZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGVTdGFuZGFyZCAmJiBwYWdlLT5jaHJvbWUoKS5j
bGllbnQoKS5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KHRoaXMsIGZhbHNlKSkKKyAgICBp
ZiAodmlkZW9GdWxsc2NyZWVuTW9kZSA9PSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVs
bHNjcmVlbk1vZGVTdGFuZGFyZCAmJiBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5zdXBwb3J0c0Z1
bGxTY3JlZW5Gb3JFbGVtZW50KCp0aGlzLCBmYWxzZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0
b25FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L1NwaW5CdXR0b25FbGVt
ZW50LmNwcAppbmRleCA1OGJkNjJhMzY0NDdmMTE0OThjM2Q4Yzk5NTdmMWNkMWY3M2IwZTc3Li45
OGJkNzJiZmYyZDBkZjgwNmFiMGFiZjUzN2JhZTY5MDcyMjg0ODBmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL3NoYWRvdy9TcGluQnV0dG9uRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvU3BpbkJ1dHRvbkVsZW1lbnQuY3BwCkBAIC0xMTksNyArMTE5
LDcgQEAgdm9pZCBTcGluQnV0dG9uRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCYg
ZXZlbnQpCiAgICAgICAgICAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS5zZXRDYXB0
dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQodGhpcyk7CiAgICAgICAgICAgICAgICAgICAgIG1fY2Fw
dHVyaW5nID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBkb2N1
bWVudCgpLnBhZ2UoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLnJl
Z2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIodGhpcyk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBwYWdlLT5jaHJvbWUoKS5yZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKCp0aGlzKTsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBVcERvd25TdGF0ZSBv
bGRVcERvd25TdGF0ZSA9IG1fdXBEb3duU3RhdGU7CkBAIC0yMDUsNyArMjA1LDcgQEAgdm9pZCBT
cGluQnV0dG9uRWxlbWVudDo6cmVsZWFzZUNhcHR1cmUoKQogICAgICAgICAgICAgZnJhbWUtPmV2
ZW50SGFuZGxlcigpLnNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVudChudWxscHRyKTsKICAg
ICAgICAgICAgIG1fY2FwdHVyaW5nID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAoUGFnZSogcGFn
ZSA9IGRvY3VtZW50KCkucGFnZSgpKQotICAgICAgICAgICAgICAgIHBhZ2UtPmNocm9tZSgpLnVu
cmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcih0aGlzKTsKKyAgICAgICAgICAgICAgICBwYWdl
LT5jaHJvbWUoKS51bnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoKnRoaXMpOwogICAgICAg
ICB9CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvbWFj
L0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
c2hhZG93L21hYy9JbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAKaW5kZXggZmQwYzNl
MzZmMzkzMzQxZGJkYWExOGMwMzFlMWIxZTc0ODdlZmNjOS4uYmE5YmFkZmU1NjJlNGJmZTdmOWUx
NGYwYTZiNWVkMTliNTBhYTNhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvbWFjL0ltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9tYWMvSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwCkBA
IC0xMTcsNyArMTE3LDcgQEAgdm9pZCBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYzo6ZGVm
YXVsdEV2ZW50SGFuZGxlcihFdmVudCYgZXZlbnQpCiAgICAgICAgIGlmICghcGFnZSkKICAgICAg
ICAgICAgIHJldHVybjsKIAotICAgICAgICBwYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5z
aG93SW1hZ2VDb250cm9sc01lbnUoJmV2ZW50KTsKKyAgICAgICAgcGFnZS0+Y29udGV4dE1lbnVD
b250cm9sbGVyKCkuc2hvd0ltYWdlQ29udHJvbHNNZW51KGV2ZW50KTsKICAgICAgICAgZXZlbnQu
c2V0RGVmYXVsdEhhbmRsZWQoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKaW5kZXggMzE1
NDdkYjdhZjNiNTNmZDdlYjQyNDFjNzA1NDNmOGY0YjY2YjE3ZS4uNzQ5ODhjYjVlNjA0ODcyMDg4
OTNiMDMxNjAxY2JhODIzNGJiOTNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKQEAgLTMzOSw4ICszMzksOCBAQCB2b2lkIElu
c3BlY3RvckZyb250ZW5kSG9zdDo6c2hvd0NvbnRleHRNZW51KEV2ZW50KiBldmVudCwgY29uc3Qg
VmVjdG9yPENvbnRleHRNZQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGF1dG8gbWVudVBy
b3ZpZGVyID0gRnJvbnRlbmRNZW51UHJvdmlkZXI6OmNyZWF0ZSh0aGlzLCB7ICZzdGF0ZSwgZnJv
bnRlbmRBcGlPYmplY3QgfSwgaXRlbXMpOwotICAgIG1fZnJvbnRlbmRQYWdlLT5jb250ZXh0TWVu
dUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnUoZXZlbnQsIG1lbnVQcm92aWRlci5wdHIoKSk7
CiAgICAgbV9tZW51UHJvdmlkZXIgPSBtZW51UHJvdmlkZXIucHRyKCk7CisgICAgbV9mcm9udGVu
ZFBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dDb250ZXh0TWVudSgqZXZlbnQsIG1l
bnVQcm92aWRlcik7CiB9CiAKICNlbmRpZgpAQCAtMzU1LDcgKzM1NSw3IEBAIHZvaWQgSW5zcGVj
dG9yRnJvbnRlbmRIb3N0OjpkaXNwYXRjaEV2ZW50QXNDb250ZXh0TWVudUV2ZW50KEV2ZW50KiBl
dmVudCkKICAgICBNb3VzZUV2ZW50JiBtb3VzZUV2ZW50ID0gZG93bmNhc3Q8TW91c2VFdmVudD4o
KmV2ZW50KTsKICAgICBJbnRQb2ludCBtb3VzZVBvaW50ID0gSW50UG9pbnQobW91c2VFdmVudC5j
bGllbnRYKCksIG1vdXNlRXZlbnQuY2xpZW50WSgpKTsKIAotICAgIG1fZnJvbnRlbmRQYWdlLT5j
b250ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnVBdChmcmFtZSwgbW91c2VQb2lu
dCk7CisgICAgbV9mcm9udGVuZFBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dDb250
ZXh0TWVudUF0KCpmcmFtZSwgbW91c2VQb2ludCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShl
dmVudCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXgg
ZTc1NDk1ZmQ0MjRjMjNlODk1MzZjYThkNDMzOTA1M2JkNGUxMWJiZC4uNTc3OTBiNTBjZmNkYTRh
NTJmMGM0YzAyZWI1N2FiMjMzYTZkNTdiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKQEAgLTU3MiwxOSArNTcyLDE5IEBAIGNsYXNzIEVtcHR5VmlzaXRlZExpbmtTdG9y
ZSBmaW5hbCA6IHB1YmxpYyBWaXNpdGVkTGlua1N0b3JlIHsKICAgICB2b2lkIGFkZFZpc2l0ZWRM
aW5rKFBhZ2UmLCBMaW5rSGFzaCkgZmluYWwgeyB9CiB9OwogCi1SZWZQdHI8UG9wdXBNZW51PiBF
bXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0
CitSZWZQdHI8UG9wdXBNZW51PiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFBv
cHVwTWVudUNsaWVudCYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRW1wdHlQ
b3B1cE1lbnUpOwogfQogCi1SZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBFbXB0eUNocm9tZUNsaWVu
dDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0CitSZWZQdHI8
U2VhcmNoUG9wdXBNZW51PiBFbXB0eUNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51
KFBvcHVwTWVudUNsaWVudCYpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRW1w
dHlTZWFyY2hQb3B1cE1lbnUpOwogfQogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiAK
LXN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IEVtcHR5Q2hyb21lQ2xpZW50OjpjcmVhdGVD
b2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgQ29sb3ImKQorc3RkOjp1bmlx
dWVfcHRyPENvbG9yQ2hvb3Nlcj4gRW1wdHlDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hvb3Nl
cihDb2xvckNob29zZXJDbGllbnQmLCBjb25zdCBDb2xvciYpCiB7CiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggOTFjMmQzODY5MDEw
ZGE1ZWE0M2QwMDljZDBmMTNlMGI3OGU3Y2ZmNS4uZTJhYTYwZWQ3NDg5Mzc0ODY5NmU4OTE3MDMz
YjFjZTAxZjFkNTMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtNjEs
NyArNjEsNyBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQg
ewogICAgIHZvaWQgZm9jdXNlZEVsZW1lbnRDaGFuZ2VkKEVsZW1lbnQqKSBmaW5hbCB7IH0KICAg
ICB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKSBmaW5hbCB7IH0KIAotICAgIFBhZ2Uq
IGNyZWF0ZVdpbmRvdyhGcmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5k
b3dGZWF0dXJlcyYsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mKSBmaW5hbCB7IHJldHVybiBudWxs
cHRyOyB9CisgICAgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lJiwgY29uc3QgRnJhbWVMb2FkUmVx
dWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpIGZp
bmFsIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2b2lkIHNob3coKSBmaW5hbCB7IH0KIAogICAg
IGJvb2wgY2FuUnVuTW9kYWwoKSBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQpAQCAtODQsMTkgKzg0
LDE5IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAg
ICAgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwg
Y29uc3QgU3RyaW5nJiwgdW5zaWduZWQsIHVuc2lnbmVkLCBjb25zdCBTdHJpbmcmKSBmaW5hbCB7
IH0KIAogICAgIGJvb2wgY2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkgZmluYWwgeyBy
ZXR1cm4gZmFsc2U7IH0KLSAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25z
dCBTdHJpbmcmLCBGcmFtZSopIGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICBib29sIHJ1bkJl
Zm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmLCBGcmFtZSYpIGZpbmFsIHsgcmV0
dXJuIHRydWU7IH0KIAogICAgIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgZmluYWwgeyB9CiAKLSAg
ICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSosIGNvbnN0IFN0cmluZyYpIGZpbmFsIHsg
fQotICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmKSBm
aW5hbCB7IHJldHVybiBmYWxzZTsgfQotICAgIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFt
ZSosIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFN0cmluZyYpIGZpbmFsIHsgcmV0dXJu
IGZhbHNlOyB9CisgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoRnJhbWUmLCBjb25zdCBTdHJp
bmcmKSBmaW5hbCB7IH0KKyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiwgY29u
c3QgU3RyaW5nJikgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KKyAgICBib29sIHJ1bkphdmFTY3Jp
cHRQcm9tcHQoRnJhbWUmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBTdHJpbmcmKSBm
aW5hbCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVj
dGlvbklzTmF0dXJhbCgpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBzZWxlY3RJ
dGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgZmluYWwgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICBSZWZQdHI8UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51
Q2xpZW50KikgY29uc3QgZmluYWw7Ci0gICAgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRl
U2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCopIGNvbnN0IGZpbmFsOworICAgIFJlZlB0
cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBmaW5h
bDsKKyAgICBSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9w
dXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CiAKICAgICB2b2lkIHNldFN0YXR1c2JhclRleHQo
Y29uc3QgU3RyaW5nJikgZmluYWwgeyB9CiAKQEAgLTEwNiw0MyArMTA2LDQ3IEBAIGNsYXNzIEVt
cHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAgICAgdm9pZCBpbnZhbGlk
YXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9CiAgICAg
dm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmKSBmaW5h
bCB7IH0KICAgICB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNv
bnN0IEludFJlY3QmKSBmaW5hbCB7IH0KKwogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykK
ICAgICB2b2lkIGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJbnRQb2ludCYpIGZpbmFs
IHsgfQogI2VuZGlmCisKICNpZiAhVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQog
ICAgIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKSBmaW5hbCB7IH0KICNlbmRpZgogCiAgICAgSW50
UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYgcCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gcDsgfQogICAgIEludFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JiBy
KSBjb25zdCBmaW5hbCB7IHJldHVybiByOyB9CisKICNpZiBQTEFURk9STShJT1MpCiAgICAgSW50
UG9pbnQgYWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmIHApIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHA7IH07CiAgICAgSW50UmVjdCByb290Vmlld1RvQWNjZXNzaWJp
bGl0eVNjcmVlbihjb25zdCBJbnRSZWN0JiByKSBjb25zdCBmaW5hbCB7IHJldHVybiByOyB9Owog
I2VuZGlmCisKICAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29u
c3QgZmluYWwgeyByZXR1cm4gMDsgfQotICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFt
ZSosIGNvbnN0IEludFNpemUmKSBjb25zdCBmaW5hbCB7IH0KKyAgICB2b2lkIGNvbnRlbnRzU2l6
ZUNoYW5nZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3QgZmluYWwgeyB9CiAKICAgICB2
b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgZmluYWwgeyB9CiAgICAgdm9pZCBt
b3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQpIGZp
bmFsIHsgfQogCiAgICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFRleHREaXJlY3Rp
b24pIGZpbmFsIHsgfQogCi0gICAgdm9pZCBwcmludChGcmFtZSopIGZpbmFsIHsgfQorICAgIHZv
aWQgcHJpbnQoRnJhbWUmKSBmaW5hbCB7IH0KIAotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1
b3RhKEZyYW1lKiwgY29uc3QgU3RyaW5nJiwgRGF0YWJhc2VEZXRhaWxzKSBmaW5hbCB7IH0KKyAg
ICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSYsIGNvbnN0IFN0cmluZyYsIERhdGFi
YXNlRGV0YWlscykgZmluYWwgeyB9CiAKICAgICB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUo
aW50NjRfdCkgZmluYWwgeyB9Ci0gICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCkgZmluYWwgeyB9CisgICAgdm9pZCByZWFj
aGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCkg
ZmluYWwgeyB9CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLSAgICBzdGQ6OnVuaXF1
ZV9wdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50
KiwgY29uc3QgQ29sb3ImKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2Vy
PiBjcmVhdGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3QgQ29sb3ImKSBm
aW5hbDsKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoRnJhbWUmLCBGaWxlQ2hvb3Nl
ciYpIGZpbmFsOwogICAgIHZvaWQgbG9hZEljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYsIEZpbGVJY29uTG9hZGVyJikgZmluYWwgeyB9CiAKLSAgICB2b2lkIGVsZW1lbnREaWRGb2N1
cyhjb25zdCBOb2RlKikgZmluYWwgeyB9Ci0gICAgdm9pZCBlbGVtZW50RGlkQmx1cihjb25zdCBO
b2RlKikgZmluYWwgeyB9CisgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoRWxlbWVudCYpIGZpbmFs
IHsgfQorICAgIHZvaWQgZWxlbWVudERpZEJsdXIoRWxlbWVudCYpIGZpbmFsIHsgfQogCiAjaWYg
IVBMQVRGT1JNKElPUykKICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBDdXJzb3ImKSBmaW5hbCB7
IH0KQEAgLTE1MSw4ICsxNTUsOCBAQCBjbGFzcyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBD
aHJvbWVDbGllbnQgewogCiAgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVj
dCYpIGNvbnN0IGZpbmFsIHsgfQogCi0gICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihG
cmFtZSosIEdyYXBoaWNzTGF5ZXIqKSBmaW5hbCB7IH0KLSAgICB2b2lkIGF0dGFjaFZpZXdPdmVy
bGF5R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSBmaW5hbCB7IH0KKyAgICB2
b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopIGZpbmFs
IHsgfQorICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lJiwgR3Jh
cGhpY3NMYXllciopIGZpbmFsIHsgfQogICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5
bmNocm9uaXphdGlvbigpIGZpbmFsIHsgfQogICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xh
eWVyRmx1c2goKSBmaW5hbCB7IH0KIApAQCAtMTYyLDE1ICsxNjYsMTYgQEAgY2xhc3MgRW1wdHlD
aHJvbWVDbGllbnQgOiBwdWJsaWMgQ2hyb21lQ2xpZW50IHsKICAgICB2b2lkIEFYRmluaXNoRnJh
bWVMb2FkKCkgZmluYWwgeyB9CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykKICNpZiBFTkFC
TEUoSU9TX1RPVUNIX0VWRU5UUykKICAgICB2b2lkIGRpZFByZXZlbnREZWZhdWx0Rm9yRXZlbnQo
KSBmaW5hbCB7IH0KICNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TKQogICAgIHZvaWQgZGlkUmVj
ZWl2ZU1vYmlsZURvY1R5cGUoYm9vbCkgZmluYWwgeyB9Ci0gICAgdm9pZCBzZXROZWVkc1Njcm9s
bE5vdGlmaWNhdGlvbnMoRnJhbWUqLCBib29sKSBmaW5hbCB7IH0KLSAgICB2b2lkIG9ic2VydmVk
Q29udGVudENoYW5nZShGcmFtZSopIGZpbmFsIHsgfQotICAgIHZvaWQgY2xlYXJDb250ZW50Q2hh
bmdlT2JzZXJ2ZXJzKEZyYW1lKikgZmluYWwgeyB9Ci0gICAgdm9pZCBub3RpZnlSZXZlYWxlZFNl
bGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoRnJhbWUqKSBmaW5hbCB7IH0KKyAgICB2b2lkIHNldE5l
ZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhGcmFtZSYsIGJvb2wpIGZpbmFsIHsgfQorICAgIHZvaWQg
b2JzZXJ2ZWRDb250ZW50Q2hhbmdlKEZyYW1lJikgZmluYWwgeyB9CisgICAgdm9pZCBjbGVhckNv
bnRlbnRDaGFuZ2VPYnNlcnZlcnMoRnJhbWUmKSBmaW5hbCB7IH0KKyAgICB2b2lkIG5vdGlmeVJl
dmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShGcmFtZSYpIGZpbmFsIHsgfQogICAgIHZv
aWQgZGlkTGF5b3V0KExheW91dFR5cGUpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlkU3RhcnRPdmVy
Zmxvd1Njcm9sbCgpIGZpbmFsIHsgfQogICAgIHZvaWQgZGlkRW5kT3ZlcmZsb3dTY3JvbGwoKSBm
aW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IDE0ZDQ3ZGE5
NzJlOTI4MzY5YWM4MTNjZjk2MTg0NzRmMWFmMDAxODUuLjc4ZGZmMGM0M2M1ZmIwMTFjNzgwYTQ0
N2E5YjY5MmM0NGFmZDQzYzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApA
QCAtMzk3LDcgKzM5Nyw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnN1Ym1pdEZvcm0oUmVmPEZvcm1T
dWJtaXNzaW9uPiYmIHN1Ym1pc3Npb24pCiAKICAgICBGcmFtZSogdGFyZ2V0RnJhbWUgPSBmaW5k
RnJhbWVGb3JOYXZpZ2F0aW9uKHN1Ym1pc3Npb24tPnRhcmdldCgpLCAmc3VibWlzc2lvbi0+c3Rh
dGUoKS5zb3VyY2VEb2N1bWVudCgpKTsKICAgICBpZiAoIXRhcmdldEZyYW1lKSB7Ci0gICAgICAg
IGlmICghRE9NV2luZG93OjphbGxvd1BvcFVwKCZtX2ZyYW1lKSAmJiAhU2NyaXB0Q29udHJvbGxl
cjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpCisgICAgICAgIGlmICghRE9NV2luZG93OjphbGxv
d1BvcFVwKG1fZnJhbWUpICYmICFTY3JpcHRDb250cm9sbGVyOjpwcm9jZXNzaW5nVXNlckdlc3R1
cmUoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAvLyBGSVhNRTogdGFyZ2V0RnJh
bWUgY2FuIGJlIG51bGwgZm9yIHR3byBkaXN0aW5jdCByZWFzb25zOgpAQCAtMTg1MiwxMSArMTg1
Miw5IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmNvbW1pdFByb3Zpc2lvbmFsTG9hZCgpCiAgICAgICAg
IGhpc3RvcnkoKS51cGRhdGVGb3JDbGllbnRSZWRpcmVjdCgpOwogCiAgICAgaWYgKG1fbG9hZGlu
Z0Zyb21DYWNoZWRQYWdlKSB7Ci0jaWYgUExBVEZPUk0oSU9TKQogICAgICAgICAvLyBOb3RlLCBk
aWRSZWNlaXZlRG9jVHlwZSBpcyBleHBlY3RlZCB0byBiZSBjYWxsZWQgZm9yIGNhY2hlZCBwYWdl
cy4gU2VlIDxyZGFyOi8vcHJvYmxlbS81OTA2NzU4PiBmb3IgbW9yZSBkZXRhaWxzLgotICAgICAg
ICBpZiAobV9mcmFtZS5kb2N1bWVudCgpLT5kb2N0eXBlKCkgJiYgbV9mcmFtZS5wYWdlKCkpCi0g
ICAgICAgICAgICBtX2ZyYW1lLnBhZ2UoKS0+Y2hyb21lKCkuZGlkUmVjZWl2ZURvY1R5cGUoJm1f
ZnJhbWUpOwotI2VuZGlmCisgICAgICAgIGlmIChhdXRvKiBwYWdlID0gbV9mcmFtZS5wYWdlKCkp
CisgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5kaWRSZWNlaXZlRG9jVHlwZShtX2ZyYW1lKTsK
ICAgICAgICAgbV9mcmFtZS5kb2N1bWVudCgpLT5yZXN1bWUoQWN0aXZlRE9NT2JqZWN0OjpQYWdl
Q2FjaGUpOwogCiAgICAgICAgIC8vIEZvcmNlIGEgbGF5b3V0IHRvIHVwZGF0ZSB2aWV3IHNpemUg
YW5kIHRoZXJlYnkgdXBkYXRlIHNjcm9sbGJhcnMuCkBAIC0yNDM5LDE1ICsyNDM3LDE1IEBAIHZv
aWQgRnJhbWVMb2FkZXI6OmRldGFjaENoaWxkcmVuKCkKICAgICAgICAgY2hpbGQtPmxvYWRlcigp
LmRldGFjaEZyb21QYXJlbnQoKTsKIH0KIAotdm9pZCBGcmFtZUxvYWRlcjo6Y2xvc2VBbmRSZW1v
dmVDaGlsZChGcmFtZSogY2hpbGQpCit2b2lkIEZyYW1lTG9hZGVyOjpjbG9zZUFuZFJlbW92ZUNo
aWxkKEZyYW1lJiBjaGlsZCkKIHsKLSAgICBjaGlsZC0+dHJlZSgpLmRldGFjaEZyb21QYXJlbnQo
KTsKKyAgICBjaGlsZC50cmVlKCkuZGV0YWNoRnJvbVBhcmVudCgpOwogCi0gICAgY2hpbGQtPnNl
dFZpZXcobnVsbHB0cik7Ci0gICAgaWYgKGNoaWxkLT5vd25lckVsZW1lbnQoKSAmJiBjaGlsZC0+
cGFnZSgpKQotICAgICAgICBjaGlsZC0+cGFnZSgpLT5kZWNyZW1lbnRTdWJmcmFtZUNvdW50KCk7
Ci0gICAgY2hpbGQtPndpbGxEZXRhY2hQYWdlKCk7Ci0gICAgY2hpbGQtPmRldGFjaEZyb21QYWdl
KCk7CisgICAgY2hpbGQuc2V0VmlldyhudWxscHRyKTsKKyAgICBpZiAoY2hpbGQub3duZXJFbGVt
ZW50KCkgJiYgY2hpbGQucGFnZSgpKQorICAgICAgICBjaGlsZC5wYWdlKCktPmRlY3JlbWVudFN1
YmZyYW1lQ291bnQoKTsKKyAgICBjaGlsZC53aWxsRGV0YWNoUGFnZSgpOworICAgIGNoaWxkLmRl
dGFjaEZyb21QYWdlKCk7CiAKICAgICBtX2ZyYW1lLnRyZWUoKS5yZW1vdmVDaGlsZChjaGlsZCk7
CiB9CkBAIC0yNTI4LDcgKzI1MjYsNyBAQCB2b2lkIEZyYW1lTG9hZGVyOjpkZXRhY2hGcm9tUGFy
ZW50KCkKICAgICBtX3Byb2dyZXNzVHJhY2tlciA9IG51bGxwdHI7CiAKICAgICBpZiAoRnJhbWUq
IHBhcmVudCA9IG1fZnJhbWUudHJlZSgpLnBhcmVudCgpKSB7Ci0gICAgICAgIHBhcmVudC0+bG9h
ZGVyKCkuY2xvc2VBbmRSZW1vdmVDaGlsZCgmbV9mcmFtZSk7CisgICAgICAgIHBhcmVudC0+bG9h
ZGVyKCkuY2xvc2VBbmRSZW1vdmVDaGlsZChtX2ZyYW1lKTsKICAgICAgICAgcGFyZW50LT5sb2Fk
ZXIoKS5zY2hlZHVsZUNoZWNrQ29tcGxldGVkKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV9m
cmFtZS5zZXRWaWV3KG51bGxwdHIpOwpAQCAtMzAzMiw3ICszMDMwLDcgQEAgYm9vbCBGcmFtZUxv
YWRlcjo6ZGlzcGF0Y2hCZWZvcmVVbmxvYWRFdmVudChDaHJvbWUmIGNocm9tZSwgRnJhbWVMb2Fk
ZXIqIGZyYW1lTG8KICAgICBmcmFtZUxvYWRlckJlaW5nTmF2aWdhdGVkLT5tX2N1cnJlbnROYXZp
Z2F0aW9uSGFzU2hvd25CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwgPSB0cnVlOwogCiAgICAgU3Ry
aW5nIHRleHQgPSBkb2N1bWVudC0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhiZWZv
cmVVbmxvYWRFdmVudC0+cmV0dXJuVmFsdWUoKSk7Ci0gICAgcmV0dXJuIGNocm9tZS5ydW5CZWZv
cmVVbmxvYWRDb25maXJtUGFuZWwodGV4dCwgJm1fZnJhbWUpOworICAgIHJldHVybiBjaHJvbWUu
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKHRleHQsIG1fZnJhbWUpOwogfQogCiB2b2lkIEZy
YW1lTG9hZGVyOjpjb250aW51ZUxvYWRBZnRlck5hdmlnYXRpb25Qb2xpY3koY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBGb3JtU3RhdGUqIGZvcm1TdGF0ZSwgYm9vbCBzaG91bGRDb250
aW51ZSwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMIGFsbG93TmF2aWdhdGlvblRvSW52YWxp
ZFVSTCkKQEAgLTM2NTcsNyArMzY1NSw3IEBAIFJlZlB0cjxGcmFtZT4gY3JlYXRlV2luZG93KEZy
YW1lJiBvcGVuZXJGcmFtZSwgRnJhbWUmIGxvb2t1cEZyYW1lLCBjb25zdCBGcmFtZUxvCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCiAgICAgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5ID0gc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eVRvQXBwbHkob3BlbmVyRnJhbWUsIHJlcXVlc3Quc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eSgpKTsKLSAgICBQYWdlKiBwYWdlID0gb2xkUGFnZS0+Y2hyb21lKCkuY3JlYXRlV2luZG93KCZv
cGVuZXJGcmFtZSwgcmVxdWVzdFdpdGhSZWZlcnJlciwgZmVhdHVyZXMsIE5hdmlnYXRpb25BY3Rp
b24ocmVxdWVzdFdpdGhSZWZlcnJlci5yZXNvdXJjZVJlcXVlc3QoKSwgc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSkpOworICAgIFBhZ2UqIHBhZ2UgPSBvbGRQYWdlLT5jaHJvbWUoKS5jcmVh
dGVXaW5kb3cob3BlbmVyRnJhbWUsIHJlcXVlc3RXaXRoUmVmZXJyZXIsIGZlYXR1cmVzLCBOYXZp
Z2F0aW9uQWN0aW9uKHJlcXVlc3RXaXRoUmVmZXJyZXIucmVzb3VyY2VSZXF1ZXN0KCksIHNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCkBAIC0zNzA1LDcgKzM3MDMsNyBAQCBSZWZQdHI8RnJhbWU+IGNyZWF0ZVdp
bmRvdyhGcmFtZSYgb3BlbmVyRnJhbWUsIEZyYW1lJiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVM
bwogICAgICAgICB3aW5kb3dSZWN0LnNldEhlaWdodCgqZmVhdHVyZXMuaGVpZ2h0ICsgKHdpbmRv
d1JlY3QuaGVpZ2h0KCkgLSB2aWV3cG9ydFNpemUuaGVpZ2h0KCkpKTsKIAogICAgIC8vIEVuc3Vy
ZSBub24tTmFOIHZhbHVlcywgbWluaW11bSBzaXplIGFzIHdlbGwgYXMgYmVpbmcgd2l0aGluIHZh
bGlkIHNjcmVlbiBhcmVhLgotICAgIEZsb2F0UmVjdCBuZXdXaW5kb3dSZWN0ID0gRE9NV2luZG93
OjphZGp1c3RXaW5kb3dSZWN0KHBhZ2UsIHdpbmRvd1JlY3QpOworICAgIEZsb2F0UmVjdCBuZXdX
aW5kb3dSZWN0ID0gRE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0KCpwYWdlLCB3aW5kb3dSZWN0
KTsKIAogICAgIGlmICghZnJhbWUtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGZhYTA3MTJmYTRkMjQ3ODdmYTU1ZDQ4
NGM1NDU0MjY1YmE1MWI2MmIuLmQ2OWM4MjljNGUyZjZhYmY5NGNlMWI0MDU2NDc3ZWM2YjkwYjY5
OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0zNjYsNyArMzY2LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHJlcXVlc3RGcm9tRGVsZWdhdGUoUmVzb3VyY2VSZXF1ZXN0Jiwg
dW5zaWduZWQgbG9uZyYgaWRlbnRpZmllciwgUmVzb3VyY2VFcnJvciYpOwogCiAgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBkZXRhY2hDaGlsZHJlbigpOwotICAgIHZvaWQgY2xvc2VBbmRSZW1vdmVD
aGlsZChGcmFtZSopOworICAgIHZvaWQgY2xvc2VBbmRSZW1vdmVDaGlsZChGcmFtZSYpOwogCiAg
ICAgdm9pZCBsb2FkSW5TYW1lRG9jdW1lbnQoY29uc3QgVVJMJiwgU2VyaWFsaXplZFNjcmlwdFZh
bHVlKiBzdGF0ZU9iamVjdCwgYm9vbCBpc05ld05hdmlnYXRpb24pOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvUG9saWN5Q2hlY2tlci5jcHAKaW5kZXggYmJiNjFlYjQ4MjEyMTk4M2FiZWI1N2JjZTRl
ODQ3MzRiN2ZlNjIyMy4uYTAxY2UyOTI5YTEwMTA2MDA0YTI0ZTc0YTYwOGI4Y2Q3Njc2MWE2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcApAQCAtMTU3LDcgKzE1Nyw3
IEBAIHZvaWQgUG9saWN5Q2hlY2tlcjo6Y2hlY2tOZXdXaW5kb3dQb2xpY3koY29uc3QgTmF2aWdh
dGlvbkFjdGlvbiYgYWN0aW9uLCBjb25zdCBSCiAgICAgaWYgKG1fZnJhbWUuZG9jdW1lbnQoKSAm
JiBtX2ZyYW1lLmRvY3VtZW50KCktPmlzU2FuZGJveGVkKFNhbmRib3hQb3B1cHMpKQogICAgICAg
ICByZXR1cm4gY29udGludWVBZnRlck5hdmlnYXRpb25Qb2xpY3koUG9saWN5SWdub3JlKTsKIAot
ICAgIGlmICghRE9NV2luZG93OjphbGxvd1BvcFVwKCZtX2ZyYW1lKSkKKyAgICBpZiAoIURPTVdp
bmRvdzo6YWxsb3dQb3BVcChtX2ZyYW1lKSkKICAgICAgICAgcmV0dXJuIGNvbnRpbnVlQWZ0ZXJO
YXZpZ2F0aW9uUG9saWN5KFBvbGljeUlnbm9yZSk7CiAKICAgICBtX2NhbGxiYWNrLnNldChyZXF1
ZXN0LCBmb3JtU3RhdGUsIGZyYW1lTmFtZSwgYWN0aW9uLCBXVEZNb3ZlKGZ1bmN0aW9uKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNo
ZUdyb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNh
Y2hlR3JvdXAuY3BwCmluZGV4IDhhMjhmODhlNjY3M2RiMTcwMmIxNDQxNGZhZjczOGI1Yzc0MmZj
ZWYuLjlmOWFiMDAwY2Y2ZDkzODVmOGEyNThmNTE1MWI4NzBmNzI5MGQ4YWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3JvdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlR3Jv
dXAuY3BwCkBAIC03ODQsNyArNzg0LDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OmNh
Y2hlVXBkYXRlRmFpbGVkKCkKIAogdm9pZCBBcHBsaWNhdGlvbkNhY2hlR3JvdXA6OnJlY2FsY3Vs
YXRlQXZhaWxhYmxlU3BhY2VJblF1b3RhKCkKIHsKLSAgICBpZiAoIW1fZnJhbWUtPnBhZ2UoKS0+
YXBwbGljYXRpb25DYWNoZVN0b3JhZ2UoKS5jYWxjdWxhdGVSZW1haW5pbmdTaXplRm9yT3JpZ2lu
RXhjbHVkaW5nQ2FjaGUobV9vcmlnaW4uZ2V0KCksIG1fbmV3ZXN0Q2FjaGUuZ2V0KCksIG1fYXZh
aWxhYmxlU3BhY2VJblF1b3RhKSkgeworICAgIGlmICghbV9mcmFtZS0+cGFnZSgpLT5hcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZSgpLmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRp
bmdDYWNoZShtX29yaWdpbiwgbV9uZXdlc3RDYWNoZS5nZXQoKSwgbV9hdmFpbGFibGVTcGFjZUlu
UXVvdGEpKSB7CiAgICAgICAgIC8vIEZhaWxlZCB0byBkZXRlcm1pbmUgd2hhdCBpcyBsZWZ0IGlu
IHRoZSBxdW90YS4gRmFsbGJhY2sgdG8gYWxsb3dpbmcgYW55dGhpbmcuCiAgICAgICAgIG1fYXZh
aWxhYmxlU3BhY2VJblF1b3RhID0gQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6Om5vUXVvdGEoKTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZUdyb3VwLmgKaW5kZXggZmM4NTFkYTdjZmE4YzQzMzJmNjg1ZWEyOTEyMmUzN2Q0
ZGI3YWFhMi4uY2ViODNkZmM2MjE2ZmU1NTg0Mjc3YzlmOWFhZTU2NjA4ZDdjNGQwYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVHcm91
cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hl
R3JvdXAuaApAQCAtNjYsNyArNjYsNyBAQCBwdWJsaWM6CiAKICAgICBBcHBsaWNhdGlvbkNhY2hl
U3RvcmFnZSYgc3RvcmFnZSgpIHsgcmV0dXJuIG1fc3RvcmFnZTsgfQogICAgIGNvbnN0IFVSTCYg
bWFuaWZlc3RVUkwoKSBjb25zdCB7IHJldHVybiBtX21hbmlmZXN0VVJMOyB9Ci0gICAgY29uc3Qg
U2VjdXJpdHlPcmlnaW4qIG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luLmdldCgpOyB9
CisgICAgY29uc3QgU2VjdXJpdHlPcmlnaW4mIG9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fb3Jp
Z2luLmdldCgpOyB9CiAgICAgVXBkYXRlU3RhdHVzIHVwZGF0ZVN0YXR1cygpIGNvbnN0IHsgcmV0
dXJuIG1fdXBkYXRlU3RhdHVzOyB9CiAgICAgdm9pZCBzZXRVcGRhdGVTdGF0dXMoVXBkYXRlU3Rh
dHVzIHN0YXR1cyk7CiAKQEAgLTEzNSw3ICsxMzUsNyBAQCBwcml2YXRlOgogICAgIFJlZjxBcHBs
aWNhdGlvbkNhY2hlU3RvcmFnZT4gbV9zdG9yYWdlOwogCiAgICAgVVJMIG1fbWFuaWZlc3RVUkw7
Ci0gICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX29yaWdpbjsKKyAgICBSZWY8U2VjdXJpdHlP
cmlnaW4+IG1fb3JpZ2luOwogICAgIFVwZGF0ZVN0YXR1cyBtX3VwZGF0ZVN0YXR1cyB7IElkbGUg
fTsKICAgICAKICAgICAvLyBUaGlzIGlzIHRoZSBuZXdlc3QgY29tcGxldGUgY2FjaGUgaW4gdGhl
IGdyb3VwLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9B
cHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKaW5kZXggZjRmYTk1YjUxN2VjNzc5MTYyNGZjMGYy
NWE2NTZiMGMwOTQ0MTQ3Ny4uYjZiOWQ3YTdjZDYzYzA3NmFlN2E4NDEwOTk5ODBiNDNlZjg3YjZh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBw
bGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCkBAIC00MjEsNyArNDIxLDcgQEAgdm9pZCBBcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZTo6c2V0RGVmYXVsdE9yaWdpblF1b3RhKGludDY0X3QgcXVvdGEpCiAg
ICAgbV9kZWZhdWx0T3JpZ2luUXVvdGEgPSBxdW90YTsKIH0KIAotYm9vbCBBcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZTo6Y2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW4q
IG9yaWdpbiwgaW50NjRfdCYgcXVvdGEpCitib29sIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpj
YWxjdWxhdGVRdW90YUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBpbnQ2
NF90JiBxdW90YSkKIHsKICAgICBTUUxpdGVUcmFuc2FjdGlvbkluUHJvZ3Jlc3NBdXRvQ291bnRl
ciB0cmFuc2FjdGlvbkNvdW50ZXI7CiAKQEAgLTQzMiw3ICs0MzIsNyBAQCBib29sIEFwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlOjpjYWxjdWxhdGVRdW90YUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9y
aWdpbiogb3JpZwogICAgIGlmIChzdGF0ZW1lbnQucHJlcGFyZSgpICE9IFNRTElURV9PSykKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgc3RhdGVtZW50LmJpbmRUZXh0KDEsIFNlY3VyaXR5
T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpvcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmll
cigpKTsKKyAgICBzdGF0ZW1lbnQuYmluZFRleHQoMSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9t
U2VjdXJpdHlPcmlnaW4ob3JpZ2luKS5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CiAgICAgaW50IHJl
c3VsdCA9IHN0YXRlbWVudC5zdGVwKCk7CiAKICAgICAvLyBSZXR1cm4gdGhlIHF1b3RhLCBvciBp
ZiBpdCB3YXMgbnVsbCB0aGUgZGVmYXVsdC4KQEAgLTQ3Miw3ICs0NzIsNyBAQCBib29sIEFwcGxp
Y2F0aW9uQ2FjaGVTdG9yYWdlOjpjYWxjdWxhdGVVc2FnZUZvck9yaWdpbihjb25zdCBTZWN1cml0
eU9yaWdpbiogb3JpZwogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBBcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZTo6Y2FsY3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hl
KGNvbnN0IFNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIEFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlLCBp
bnQ2NF90JiByZW1haW5pbmdTaXplKQorYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2Fs
Y3VsYXRlUmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hlKGNvbnN0IFNlY3VyaXR5
T3JpZ2luJiBvcmlnaW4sIEFwcGxpY2F0aW9uQ2FjaGUqIGNhY2hlLCBpbnQ2NF90JiByZW1haW5p
bmdTaXplKQogewogICAgIFNRTGl0ZVRyYW5zYWN0aW9uSW5Qcm9ncmVzc0F1dG9Db3VudGVyIHRy
YW5zYWN0aW9uQ291bnRlcjsKIApAQCAtNTAzLDcgKzUwMyw3IEBAIGJvb2wgQXBwbGljYXRpb25D
YWNoZVN0b3JhZ2U6OmNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdDYWNo
ZShjb25zCiAgICAgaWYgKHN0YXRlbWVudC5wcmVwYXJlKCkgIT0gU1FMSVRFX09LKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBzdGF0ZW1lbnQuYmluZFRleHQoMSwgU2VjdXJpdHlPcmln
aW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4oKm9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCkp
OworICAgIHN0YXRlbWVudC5iaW5kVGV4dCgxLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1
cml0eU9yaWdpbihvcmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKICAgICBpZiAoZXhjbHVk
aW5nQ2FjaGVJZGVudGlmaWVyICE9IDApCiAgICAgICAgIHN0YXRlbWVudC5iaW5kSW50NjQoMiwg
ZXhjbHVkaW5nQ2FjaGVJZGVudGlmaWVyKTsKICAgICBpbnQgcmVzdWx0ID0gc3RhdGVtZW50LnN0
ZXAoKTsKQEAgLTY4OCwxNCArNjg4LDE0IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6
OnN0b3JlKEFwcGxpY2F0aW9uQ2FjaGVHcm91cCogZ3JvdXAsIEdyb3VwU3RvcmFnZUlECiAKICAg
ICBzdGF0ZW1lbnQuYmluZEludDY0KDEsIHVybEhvc3RIYXNoKGdyb3VwLT5tYW5pZmVzdFVSTCgp
KSk7CiAgICAgc3RhdGVtZW50LmJpbmRUZXh0KDIsIGdyb3VwLT5tYW5pZmVzdFVSTCgpKTsKLSAg
ICBzdGF0ZW1lbnQuYmluZFRleHQoMywgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tU2VjdXJpdHlP
cmlnaW4oKmdyb3VwLT5vcmlnaW4oKSkuZGF0YWJhc2VJZGVudGlmaWVyKCkpOworICAgIHN0YXRl
bWVudC5iaW5kVGV4dCgzLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21TZWN1cml0eU9yaWdpbihn
cm91cC0+b3JpZ2luKCkpLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKIAogICAgIGlmICghZXhlY3V0
ZVN0YXRlbWVudChzdGF0ZW1lbnQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICB1bnNp
Z25lZCBncm91cFN0b3JhZ2VJRCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX2RhdGFiYXNlLmxh
c3RJbnNlcnRSb3dJRCgpKTsKIAotICAgIGlmICghZW5zdXJlT3JpZ2luUmVjb3JkKGdyb3VwLT5v
cmlnaW4oKSkpCisgICAgaWYgKCFlbnN1cmVPcmlnaW5SZWNvcmQoJmdyb3VwLT5vcmlnaW4oKSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGdyb3VwLT5zZXRTdG9yYWdlSUQoZ3JvdXBT
dG9yYWdlSUQpOwpAQCAtOTcxLDcgKzk3MSw3IEBAIGJvb2wgQXBwbGljYXRpb25DYWNoZVN0b3Jh
Z2U6OmNoZWNrT3JpZ2luUXVvdGEoQXBwbGljYXRpb25DYWNoZUdyb3VwKiBncm91cCwgQXBwCiB7
CiAgICAgLy8gQ2hlY2sgaWYgdGhlIG9sZENhY2hlIHdpdGggdGhlIG5ld0NhY2hlIHdvdWxkIHJl
YWNoIHRoZSBwZXItb3JpZ2luIHF1b3RhLgogICAgIGludDY0X3QgcmVtYWluaW5nU3BhY2VJbk9y
aWdpbjsKLSAgICBjb25zdCBTZWN1cml0eU9yaWdpbiogb3JpZ2luID0gZ3JvdXAtPm9yaWdpbigp
OworICAgIGF1dG8mIG9yaWdpbiA9IGdyb3VwLT5vcmlnaW4oKTsKICAgICBpZiAoY2FsY3VsYXRl
UmVtYWluaW5nU2l6ZUZvck9yaWdpbkV4Y2x1ZGluZ0NhY2hlKG9yaWdpbiwgb2xkQ2FjaGUsIHJl
bWFpbmluZ1NwYWNlSW5PcmlnaW4pKSB7CiAgICAgICAgIGlmIChyZW1haW5pbmdTcGFjZUluT3Jp
Z2luIDwgbmV3Q2FjaGUtPmVzdGltYXRlZFNpemVJblN0b3JhZ2UoKSkgewogICAgICAgICAgICAg
aW50NjRfdCBxdW90YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgKaW5kZXggOWZhMjkyZWU1MGZhZWU4OWMzNWM4
NjFhOGY5OWZhMTZmOTA1NDc2ZC4uOWQxN2ExYmNkMDZhNmFjMTExYTBhY2FhNjA3NjRmNmIxNTQw
NTBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0
aW9uQ2FjaGVTdG9yYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmgKQEAgLTYzLDggKzYzLDggQEAgcHVibGljOgogICAgIGlu
dDY0X3QgZGVmYXVsdE9yaWdpblF1b3RhKCkgY29uc3QgeyByZXR1cm4gbV9kZWZhdWx0T3JpZ2lu
UXVvdGE7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldERlZmF1bHRPcmlnaW5RdW90YShp
bnQ2NF90IHF1b3RhKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNhbGN1bGF0ZVVzYWdlRm9y
T3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCYgdXNhZ2UpOwotICAgIFdFQkNP
UkVfRVhQT1JUIGJvb2wgY2FsY3VsYXRlUXVvdGFGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmln
aW4qLCBpbnQ2NF90JiBxdW90YSk7Ci0gICAgYm9vbCBjYWxjdWxhdGVSZW1haW5pbmdTaXplRm9y
T3JpZ2luRXhjbHVkaW5nQ2FjaGUoY29uc3QgU2VjdXJpdHlPcmlnaW4qLCBBcHBsaWNhdGlvbkNh
Y2hlKiwgaW50NjRfdCYgcmVtYWluaW5nU2l6ZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBj
YWxjdWxhdGVRdW90YUZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbiYsIGludDY0X3QmIHF1
b3RhKTsKKyAgICBib29sIGNhbGN1bGF0ZVJlbWFpbmluZ1NpemVGb3JPcmlnaW5FeGNsdWRpbmdD
YWNoZShjb25zdCBTZWN1cml0eU9yaWdpbiYsIEFwcGxpY2F0aW9uQ2FjaGUqLCBpbnQ2NF90JiBy
ZW1haW5pbmdTaXplKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIHN0b3JlVXBkYXRlZFF1b3Rh
Rm9yT3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCBxdW90YSk7CiAgICAgYm9v
bCBjaGVja09yaWdpblF1b3RhKEFwcGxpY2F0aW9uQ2FjaGVHcm91cCosIEFwcGxpY2F0aW9uQ2Fj
aGUqIG9sZENhY2hlLCBBcHBsaWNhdGlvbkNhY2hlKiBuZXdDYWNoZSwgaW50NjRfdCYgdG90YWxT
cGFjZU5lZWRlZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZl
L21odG1sL01IVE1MQXJjaGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXJjaGl2ZS9t
aHRtbC9NSFRNTEFyY2hpdmUuY3BwCmluZGV4IGE5MjFiMDVlODQ2YTA1YTVhZmNlNjMwM2FhMThm
OGJmMzA3MDlkYjQuLjJjYTY3ZTI3YmU4ODQyY2M3YTIxN2RhYTkyNTVlODE4ZWY5YTE5MmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcmNoaXZlL21odG1sL01IVE1MQXJjaGl2
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FyY2hpdmUvbWh0bWwvTUhUTUxBcmNo
aXZlLmNwcApAQCAtMTMzLDggKzEzMyw4IEBAIFJlZlB0cjxNSFRNTEFyY2hpdmU+IE1IVE1MQXJj
aGl2ZTo6Y3JlYXRlKGNvbnN0IFVSTCYgdXJsLCBTaGFyZWRCdWZmZXImIGRhdGEpCiBSZWZQdHI8
U2hhcmVkQnVmZmVyPiBNSFRNTEFyY2hpdmU6OmdlbmVyYXRlTUhUTUxEYXRhKFBhZ2UqIHBhZ2Up
CiB7CiAgICAgVmVjdG9yPFBhZ2VTZXJpYWxpemVyOjpSZXNvdXJjZT4gcmVzb3VyY2VzOwotICAg
IFBhZ2VTZXJpYWxpemVyIHBhZ2VTZXJpYWxpemVyKCZyZXNvdXJjZXMpOwotICAgIHBhZ2VTZXJp
YWxpemVyLnNlcmlhbGl6ZShwYWdlKTsKKyAgICBQYWdlU2VyaWFsaXplciBwYWdlU2VyaWFsaXpl
cihyZXNvdXJjZXMpOworICAgIHBhZ2VTZXJpYWxpemVyLnNlcmlhbGl6ZSgqcGFnZSk7CiAKICAg
ICBTdHJpbmcgYm91bmRhcnkgPSBnZW5lcmF0ZVJhbmRvbUJvdW5kYXJ5KCk7CiAgICAgU3RyaW5n
IGVuZE9mUmVzb3VyY2VCb3VuZGFyeSA9IG1ha2VTdHJpbmcoIi0tIiwgYm91bmRhcnksICJcclxu
Iik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9tYXRobWwvTWF0aE1MRWxlbWVudC5jcHAKaW5kZXggZTE1MTc2ZDMz
MTlkOTRjZTBiOWM5MWZiYmQ4ZWI3Mzc4MTk0Yzg2NC4uZTk3MTM5NjFjZTNiNzQ4ODRhMWIzYmUz
ZTUwYTczOTA2MjNmODllNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbWF0aG1sL01hdGhN
TEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL21hdGhtbC9NYXRoTUxFbGVtZW50LmNw
cApAQCAtMTgyLDcgKzE4Miw3IEBAIGJvb2wgTWF0aE1MRWxlbWVudDo6aXNLZXlib2FyZEZvY3Vz
YWJsZShLZXlib2FyZEV2ZW50JiBldmVudCkgY29uc3QKICAgICAgICAgcmV0dXJuIFN0eWxlZEVs
ZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpOwogCiAgICAgaWYgKGlzTGluaygpKQot
ICAgICAgICByZXR1cm4gZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhhbmRsZXIoKS50YWJzVG9M
aW5rcygmZXZlbnQpOworICAgICAgICByZXR1cm4gZG9jdW1lbnQoKS5mcmFtZSgpLT5ldmVudEhh
bmRsZXIoKS50YWJzVG9MaW5rcyhldmVudCk7CiAKICAgICByZXR1cm4gU3R5bGVkRWxlbWVudDo6
aXNLZXlib2FyZEZvY3VzYWJsZShldmVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXgg
NzRkZGUxYTM0ZTE1ZTkwOTcxYWQwODZlMjcwYjlhYTU2OTg4MjEwYi4uZTM2M2Y0M2FkYzZmNWJj
ZTQ5MDg0NDA5NzUzNzQ2YWE4NjFlODRkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNDgs
NyArNDgsNiBAQAogI2luY2x1ZGUgIlN0b3JhZ2VOYW1lc3BhY2UuaCIKICNpbmNsdWRlICJXaW5k
b3dGZWF0dXJlcy5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvVk0uaD4KLSNpbmNsdWRlIDx3dGYvUGFz
c1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9W
ZWN0b3IuaD4KIApAQCAtNjMsMTAgKzYyLDYgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsK
IENocm9tZTo6Q2hyb21lKFBhZ2UmIHBhZ2UsIENocm9tZUNsaWVudCYgY2xpZW50KQogICAgIDog
bV9wYWdlKHBhZ2UpCiAgICAgLCBtX2NsaWVudChjbGllbnQpCi0gICAgLCBtX2Rpc3BsYXlJRCgw
KQotI2lmIFBMQVRGT1JNKElPUykKLSAgICAsIG1faXNEaXNwYXRjaFZpZXdwb3J0RGF0YURpZENo
YW5nZVN1cHByZXNzZWQoZmFsc2UpCi0jZW5kaWYKIHsKIH0KIApAQCAtMTE0LDYgKzEwOSw3IEBA
IEludFJlY3QgQ2hyb21lOjpyb290Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpIGNv
bnN0CiB9CiAgICAgCiAjaWYgUExBVEZPUk0oSU9TKQorCiBJbnRQb2ludCBDaHJvbWU6OmFjY2Vz
c2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JiBwb2ludCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9jbGllbnQuYWNjZXNzaWJpbGl0eVNjcmVlblRvUm9vdFZpZXcocG9pbnQp
OwpAQCAtMTIzLDYgKzExOSw3IEBAIEludFJlY3QgQ2hyb21lOjpyb290Vmlld1RvQWNjZXNzaWJp
bGl0eVNjcmVlbihjb25zdCBJbnRSZWN0JiByZWN0KSBjb25zdAogewogICAgIHJldHVybiBtX2Ns
aWVudC5yb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVlbihyZWN0KTsKIH0KKwogI2VuZGlmCiAK
IFBsYXRmb3JtUGFnZUNsaWVudCBDaHJvbWU6OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0CkBA
IC0xMzAsNyArMTI3LDcgQEAgUGxhdGZvcm1QYWdlQ2xpZW50IENocm9tZTo6cGxhdGZvcm1QYWdl
Q2xpZW50KCkgY29uc3QKICAgICByZXR1cm4gbV9jbGllbnQucGxhdGZvcm1QYWdlQ2xpZW50KCk7
CiB9CiAKLXZvaWQgQ2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29u
c3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKK3ZvaWQgQ2hyb21lOjpjb250ZW50c1NpemVDaGFuZ2Vk
KEZyYW1lJiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKIHsKICAgICBtX2NsaWVu
dC5jb250ZW50c1NpemVDaGFuZ2VkKGZyYW1lLCBzaXplKTsKIH0KQEAgLTE5MCwxNSArMTg3LDEz
IEBAIHZvaWQgQ2hyb21lOjpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKiBmcmFtZSkgY29uc3QK
ICAgICBtX2NsaWVudC5mb2N1c2VkRnJhbWVDaGFuZ2VkKGZyYW1lKTsKIH0KIAotUGFnZSogQ2hy
b21lOjpjcmVhdGVXaW5kb3coRnJhbWUqIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiBy
ZXF1ZXN0LCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25B
Y3Rpb24mIGFjdGlvbikgY29uc3QKK1BhZ2UqIENocm9tZTo6Y3JlYXRlV2luZG93KEZyYW1lJiBm
cmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgV2luZG93RmVhdHVy
ZXMmIGZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24pIGNvbnN0CiB7CiAg
ICAgUGFnZSogbmV3UGFnZSA9IG1fY2xpZW50LmNyZWF0ZVdpbmRvdyhmcmFtZSwgcmVxdWVzdCwg
ZmVhdHVyZXMsIGFjdGlvbik7CiAgICAgaWYgKCFuZXdQYWdlKQotICAgICAgICByZXR1cm4gMDsK
LQotICAgIGlmIChTdG9yYWdlTmFtZXNwYWNlKiBvbGRTZXNzaW9uU3RvcmFnZSA9IG1fcGFnZS5z
ZXNzaW9uU3RvcmFnZShmYWxzZSkpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIGlmIChh
dXRvKiBvbGRTZXNzaW9uU3RvcmFnZSA9IG1fcGFnZS5zZXNzaW9uU3RvcmFnZShmYWxzZSkpCiAg
ICAgICAgIG5ld1BhZ2UtPnNldFNlc3Npb25TdG9yYWdlKG9sZFNlc3Npb25TdG9yYWdlLT5jb3B5
KG5ld1BhZ2UpKTsKLQogICAgIHJldHVybiBuZXdQYWdlOwogfQogCkBAIC0yNzYsNyArMjcxLDcg
QEAgYm9vbCBDaHJvbWU6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpCiAgICAgcmV0
dXJuIG1fY2xpZW50LmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpOwogfQogCi1ib29s
IENocm9tZTo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgRnJhbWUqIGZyYW1lKQorYm9vbCBDaHJvbWU6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lJiBmcmFtZSkKIHsKICAgICAvLyBEZWZlciBs
b2FkcyBpbiBjYXNlIHRoZSBjbGllbnQgbWV0aG9kIHJ1bnMgYSBuZXcgZXZlbnQgbG9vcCB0aGF0
IHdvdWxkCiAgICAgLy8gb3RoZXJ3aXNlIGNhdXNlIHRoZSBsb2FkIHRvIGNvbnRpbnVlIHdoaWxl
IHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgZXhlY3V0aW5nIEphdmFTY3JpcHQuCkBAIC0yOTAsNTMg
KzI4NSw0NyBAQCB2b2lkIENocm9tZTo6Y2xvc2VXaW5kb3dTb29uKCkKICAgICBtX2NsaWVudC5j
bG9zZVdpbmRvd1Nvb24oKTsKIH0KIAotdm9pZCBDaHJvbWU6OnJ1bkphdmFTY3JpcHRBbGVydChG
cmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgQ2hyb21lOjpydW5KYXZh
U2NyaXB0QWxlcnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAg
Ly8gRGVmZXIgbG9hZHMgaW4gY2FzZSB0aGUgY2xpZW50IG1ldGhvZCBydW5zIGEgbmV3IGV2ZW50
IGxvb3AgdGhhdCB3b3VsZAogICAgIC8vIG90aGVyd2lzZSBjYXVzZSB0aGUgbG9hZCB0byBjb250
aW51ZSB3aGlsZSB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIGV4ZWN1dGluZyBKYXZhU2NyaXB0Lgog
ICAgIFBhZ2VHcm91cExvYWREZWZlcnJlciBkZWZlcnJlcihtX3BhZ2UsIHRydWUpOwogCi0gICAg
QVNTRVJUKGZyYW1lKTsKICAgICBub3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKLSAgICBT
dHJpbmcgZGlzcGxheU1lc3NhZ2UgPSBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNv
ZGluZyhtZXNzYWdlKTsKKyAgICBTdHJpbmcgZGlzcGxheU1lc3NhZ2UgPSBmcmFtZS5kaXNwbGF5
U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKG1lc3NhZ2UpOwogCiAgICAgbV9jbGllbnQucnVuSmF2
YVNjcmlwdEFsZXJ0KGZyYW1lLCBkaXNwbGF5TWVzc2FnZSk7CiB9CiAKLWJvb2wgQ2hyb21lOjpy
dW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
K2Jvb2wgQ2hyb21lOjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0
cmluZyYgbWVzc2FnZSkKIHsKICAgICAvLyBEZWZlciBsb2FkcyBpbiBjYXNlIHRoZSBjbGllbnQg
bWV0aG9kIHJ1bnMgYSBuZXcgZXZlbnQgbG9vcCB0aGF0IHdvdWxkCiAgICAgLy8gb3RoZXJ3aXNl
IGNhdXNlIHRoZSBsb2FkIHRvIGNvbnRpbnVlIHdoaWxlIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2Yg
ZXhlY3V0aW5nIEphdmFTY3JpcHQuCiAgICAgUGFnZUdyb3VwTG9hZERlZmVycmVyIGRlZmVycmVy
KG1fcGFnZSwgdHJ1ZSk7CiAKLSAgICBBU1NFUlQoZnJhbWUpOwogICAgIG5vdGlmeVBvcHVwT3Bl
bmluZ09ic2VydmVycygpOwotICAgIFN0cmluZyBkaXNwbGF5TWVzc2FnZSA9IGZyYW1lLT5kaXNw
bGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKG1lc3NhZ2UpOwotCi0gICAgcmV0dXJuIG1fY2xp
ZW50LnJ1bkphdmFTY3JpcHRDb25maXJtKGZyYW1lLCBkaXNwbGF5TWVzc2FnZSk7CisgICAgcmV0
dXJuIG1fY2xpZW50LnJ1bkphdmFTY3JpcHRDb25maXJtKGZyYW1lLCBmcmFtZS5kaXNwbGF5U3Ry
aW5nTW9kaWZpZWRCeUVuY29kaW5nKG1lc3NhZ2UpKTsKIH0KIAotYm9vbCBDaHJvbWU6OnJ1bkph
dmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwgY29uc3Qg
U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQorYm9vbCBDaHJvbWU6OnJ1bkph
dmFTY3JpcHRQcm9tcHQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwgY29uc3Qg
U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQogewogICAgIC8vIERlZmVyIGxv
YWRzIGluIGNhc2UgdGhlIGNsaWVudCBtZXRob2QgcnVucyBhIG5ldyBldmVudCBsb29wIHRoYXQg
d291bGQKICAgICAvLyBvdGhlcndpc2UgY2F1c2UgdGhlIGxvYWQgdG8gY29udGludWUgd2hpbGUg
d2UncmUgaW4gdGhlIG1pZGRsZSBvZiBleGVjdXRpbmcgSmF2YVNjcmlwdC4KICAgICBQYWdlR3Jv
dXBMb2FkRGVmZXJyZXIgZGVmZXJyZXIobV9wYWdlLCB0cnVlKTsKIAotICAgIEFTU0VSVChmcmFt
ZSk7CiAgICAgbm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCk7Ci0gICAgU3RyaW5nIGRpc3Bs
YXlQcm9tcHQgPSBmcmFtZS0+ZGlzcGxheVN0cmluZ01vZGlmaWVkQnlFbmNvZGluZyhwcm9tcHQp
OworICAgIFN0cmluZyBkaXNwbGF5UHJvbXB0ID0gZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVk
QnlFbmNvZGluZyhwcm9tcHQpOwogCi0gICAgYm9vbCBvayA9IG1fY2xpZW50LnJ1bkphdmFTY3Jp
cHRQcm9tcHQoZnJhbWUsIGRpc3BsYXlQcm9tcHQsIGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZp
ZWRCeUVuY29kaW5nKGRlZmF1bHRWYWx1ZSksIHJlc3VsdCk7CisgICAgYm9vbCBvayA9IG1fY2xp
ZW50LnJ1bkphdmFTY3JpcHRQcm9tcHQoZnJhbWUsIGRpc3BsYXlQcm9tcHQsIGZyYW1lLmRpc3Bs
YXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmcoZGVmYXVsdFZhbHVlKSwgcmVzdWx0KTsKICAgICBp
ZiAob2spCi0gICAgICAgIHJlc3VsdCA9IGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVu
Y29kaW5nKHJlc3VsdCk7CisgICAgICAgIHJlc3VsdCA9IGZyYW1lLmRpc3BsYXlTdHJpbmdNb2Rp
ZmllZEJ5RW5jb2RpbmcocmVzdWx0KTsKIAogICAgIHJldHVybiBvazsKIH0KIAotdm9pZCBDaHJv
bWU6OnNldFN0YXR1c2JhclRleHQoRnJhbWUqIGZyYW1lLCBjb25zdCBTdHJpbmcmIHN0YXR1cykK
K3ZvaWQgQ2hyb21lOjpzZXRTdGF0dXNiYXJUZXh0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5n
JiBzdGF0dXMpCiB7Ci0gICAgQVNTRVJUKGZyYW1lKTsKLSAgICBtX2NsaWVudC5zZXRTdGF0dXNi
YXJUZXh0KGZyYW1lLT5kaXNwbGF5U3RyaW5nTW9kaWZpZWRCeUVuY29kaW5nKHN0YXR1cykpOwor
ICAgIG1fY2xpZW50LnNldFN0YXR1c2JhclRleHQoZnJhbWUuZGlzcGxheVN0cmluZ01vZGlmaWVk
QnlFbmNvZGluZyhzdGF0dXMpKTsKIH0KIAogdm9pZCBDaHJvbWU6Om1vdXNlRGlkTW92ZU92ZXJF
bGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJGbGFn
cykKQEAgLTQwNyw5ICszOTYsOSBAQCB2b2lkIENocm9tZTo6c2V0VG9vbFRpcChjb25zdCBIaXRU
ZXN0UmVzdWx0JiByZXN1bHQpCiAgICAgbV9jbGllbnQuc2V0VG9vbFRpcCh0b29sVGlwLCB0b29s
VGlwRGlyZWN0aW9uKTsKIH0KIAotdm9pZCBDaHJvbWU6OnByaW50KEZyYW1lKiBmcmFtZSkKK3Zv
aWQgQ2hyb21lOjpwcmludChGcmFtZSYgZnJhbWUpCiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgc2hv
dWxkIGhhdmUgUGFnZUdyb3VwTG9hZERlZmVycmVyLCBsaWtlIHJ1bk1vZGFsKCkgb3IgcnVuSmF2
YVNjcmlwdEFsZXJ0KCksIGJlY2FzdWUgaXQncyBubyBkaWZmZXJlbnQgZnJvbSB0aG9zZS4KKyAg
ICAvLyBGSVhNRTogVGhpcyBzaG91bGQgaGF2ZSBQYWdlR3JvdXBMb2FkRGVmZXJyZXIsIGxpa2Ug
cnVuTW9kYWwoKSBvciBydW5KYXZhU2NyaXB0QWxlcnQoKSwgYmVjYXVzZSBpdCdzIG5vIGRpZmZl
cmVudCBmcm9tIHRob3NlLgogICAgIG1fY2xpZW50LnByaW50KGZyYW1lKTsKIH0KIApAQCAtNDI0
LDExICs0MTMsMTMgQEAgdm9pZCBDaHJvbWU6OmRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpCiB9
CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLXN0ZDo6dW5pcXVlX3B0cjxDb2xvckNo
b29zZXI+IENocm9tZTo6Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCogY2xp
ZW50LCBjb25zdCBDb2xvciYgaW5pdGlhbENvbG9yKQorCitzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JD
aG9vc2VyPiBDaHJvbWU6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmIGNs
aWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcikKIHsKICAgICBub3RpZnlQb3B1cE9wZW5p
bmdPYnNlcnZlcnMoKTsKICAgICByZXR1cm4gbV9jbGllbnQuY3JlYXRlQ29sb3JDaG9vc2VyKGNs
aWVudCwgaW5pdGlhbENvbG9yKTsKIH0KKwogI2VuZGlmCiAKIHZvaWQgQ2hyb21lOjpydW5PcGVu
UGFuZWwoRnJhbWUmIGZyYW1lLCBGaWxlQ2hvb3NlciYgZmlsZUNob29zZXIpCkBAIC01MzgsMTMg
KzUyOSwxMyBAQCBib29sIENocm9tZTo6aGFzT3BlbmVkUG9wdXAoKSBjb25zdAogICAgIHJldHVy
biBtX2NsaWVudC5oYXNPcGVuZWRQb3B1cCgpOwogfQogCi1SZWZQdHI8UG9wdXBNZW51PiBDaHJv
bWU6OmNyZWF0ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0
cjxQb3B1cE1lbnU+IENocm9tZTo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYgY2xp
ZW50KSBjb25zdAogewogICAgIG5vdGlmeVBvcHVwT3BlbmluZ09ic2VydmVycygpOwogICAgIHJl
dHVybiBtX2NsaWVudC5jcmVhdGVQb3B1cE1lbnUoY2xpZW50KTsKIH0KIAotUmVmUHRyPFNlYXJj
aFBvcHVwTWVudT4gQ2hyb21lOjpjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBDaHJvbWU6OmNyZWF0ZVNl
YXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKICAgICBub3Rp
ZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKTsKICAgICByZXR1cm4gbV9jbGllbnQuY3JlYXRlU2Vh
cmNoUG9wdXBNZW51KGNsaWVudCk7CkBAIC01NTUsMzAgKzU0NiwyNyBAQCBib29sIENocm9tZTo6
cmVxdWlyZXNGdWxsc2NyZWVuRm9yVmlkZW9QbGF5YmFjaygpCiAgICAgcmV0dXJuIG1fY2xpZW50
LnJlcXVpcmVzRnVsbHNjcmVlbkZvclZpZGVvUGxheWJhY2soKTsKIH0KIAotI2lmIFBMQVRGT1JN
KElPUykKLS8vIEZJWE1FOiBNYWtlIGFyZ3VtZW50LCBmcmFtZSwgYSByZWZlcmVuY2UuCi12b2lk
IENocm9tZTo6ZGlkUmVjZWl2ZURvY1R5cGUoRnJhbWUqIGZyYW1lKQordm9pZCBDaHJvbWU6OmRp
ZFJlY2VpdmVEb2NUeXBlKEZyYW1lJiBmcmFtZSkKIHsKLSAgICBBU1NFUlQoZnJhbWUpOwotICAg
IGlmICghZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisjaWYgIVBMQVRGT1JNKElPUykKKyAgICBVTlVT
RURfUEFSQU0oZnJhbWUpOworI2Vsc2UKKyAgICBpZiAoIWZyYW1lLmlzTWFpbkZyYW1lKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgaGFzTW9iaWxlRG9jVHlwZSA9IGZhbHNlOwotICAg
IGlmIChEb2N1bWVudFR5cGUqIGRvY3VtZW50VHlwZSA9IGZyYW1lLT5kb2N1bWVudCgpLT5kb2N0
eXBlKCkpCi0gICAgICAgIGhhc01vYmlsZURvY1R5cGUgPSBkb2N1bWVudFR5cGUtPnB1YmxpY0lk
KCkuY29udGFpbnMoInhodG1sIG1vYmlsZSIsIGZhbHNlKTsKLSAgICBtX2NsaWVudC5kaWRSZWNl
aXZlTW9iaWxlRG9jVHlwZShoYXNNb2JpbGVEb2NUeXBlKTsKLX0KKyAgICBhdXRvKiBkb2N0eXBl
ID0gZnJhbWUuZG9jdW1lbnQoKS0+ZG9jdHlwZSgpOworICAgIG1fY2xpZW50LmRpZFJlY2VpdmVN
b2JpbGVEb2NUeXBlKGRvY3R5cGUgJiYgZG9jdHlwZS0+cHVibGljSWQoKS5jb250YWluc0lnbm9y
aW5nQVNDSUlDYXNlKCJ4aHRtbCBtb2JpbGUiKSk7CiAjZW5kaWYKK30KIAotdm9pZCBDaHJvbWU6
OnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXIqIG9ic2Vy
dmVyKQordm9pZCBDaHJvbWU6OnJlZ2lzdGVyUG9wdXBPcGVuaW5nT2JzZXJ2ZXIoUG9wdXBPcGVu
aW5nT2JzZXJ2ZXImIG9ic2VydmVyKQogewotICAgIEFTU0VSVChvYnNlcnZlcik7Ci0gICAgbV9w
b3B1cE9wZW5pbmdPYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKKyAgICBtX3BvcHVwT3Blbmlu
Z09ic2VydmVycy5hcHBlbmQoJm9ic2VydmVyKTsKIH0KIAotdm9pZCBDaHJvbWU6OnVucmVnaXN0
ZXJQb3B1cE9wZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciogb2JzZXJ2ZXIpCit2
b2lkIENocm9tZTo6dW5yZWdpc3RlclBvcHVwT3BlbmluZ09ic2VydmVyKFBvcHVwT3BlbmluZ09i
c2VydmVyJiBvYnNlcnZlcikKIHsKLSAgICBib29sIHJlbW92ZWQgPSBtX3BvcHVwT3BlbmluZ09i
c2VydmVycy5yZW1vdmVGaXJzdChvYnNlcnZlcik7CisgICAgYm9vbCByZW1vdmVkID0gbV9wb3B1
cE9wZW5pbmdPYnNlcnZlcnMucmVtb3ZlRmlyc3QoJm9ic2VydmVyKTsKICAgICBBU1NFUlRfVU5V
U0VEKHJlbW92ZWQsIHJlbW92ZWQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCA2ZDI1YWM4
OTE2MDBmMjE4NGE2NTRkYWQzMjI2ZDQ2YzgxOTMyYTY2Li5iM2M0NjQ3YzFhZTk1MDA1MjA3ODM0
OWUwNzZhMjliMGU2YWRjNmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9t
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKQEAgLTk1LDcgKzk1LDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNv
bnN0OwogCi0gICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50U2l6
ZSYpIGNvbnN0OworICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFtZSYsIGNvbnN0IElu
dFNpemUmKSBjb25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0V2luZG93UmVjdChj
b25zdCBGbG9hdFJlY3QmKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBGbG9hdFJlY3Qgd2lu
ZG93UmVjdCgpIGNvbnN0OwpAQCAtMTExLDcgKzExMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGZv
Y3VzZWRFbGVtZW50Q2hhbmdlZChFbGVtZW50KikgY29uc3Q7CiAgICAgdm9pZCBmb2N1c2VkRnJh
bWVDaGFuZ2VkKEZyYW1lKikgY29uc3Q7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBQYWdlKiBjcmVh
dGVXaW5kb3coRnJhbWUqLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVh
dHVyZXMmLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBP
UlQgUGFnZSogY3JlYXRlV2luZG93KEZyYW1lJiwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNv
bnN0IFdpbmRvd0ZlYXR1cmVzJiwgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYpIGNvbnN0OwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgc2hvdygpIGNvbnN0OwogCiAgICAgYm9vbCBjYW5SdW5Nb2Rh
bCgpIGNvbnN0OwpAQCAtMTMyLDI2ICsxMzIsMjYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UmVz
aXphYmxlKGJvb2wpIGNvbnN0OwogCiAgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwoKTsKLSAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJp
bmcmIG1lc3NhZ2UsIEZyYW1lKik7CisgICAgYm9vbCBydW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSYpOwogCiAgICAgdm9pZCBjbG9zZVdpbmRv
d1Nvb24oKTsKIAotICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiwgY29uc3QgU3Ry
aW5nJik7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSosIGNvbnN0IFN0cmlu
ZyYpOwotICAgIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSosIGNvbnN0IFN0cmluZyYg
bWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFN0YXR1c2JhclRleHQoRnJhbWUqLCBjb25zdCBTdHJp
bmcmKTsKKyAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYsIGNvbnN0IFN0cmluZyYp
OworICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUmLCBjb25zdCBTdHJpbmcmKTsK
KyAgICBib29sIHJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3Nh
Z2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCk7CisgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KEZyYW1lJiwgY29uc3QgU3RyaW5nJik7
CiAKICAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQm
LCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKIAogICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBI
aXRUZXN0UmVzdWx0Jik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHByaW50KEZyYW1lKik7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcmludChGcmFtZSYpOwogCiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBlbmFibGVTdWRkZW5UZXJtaW5hdGlvbigpOwogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCk7CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQ
RV9DT0xPUikKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBjcmVhdGVDb2xvckNo
b29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xvcik7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9y
Q2hvb3NlckNsaWVudCYsIGNvbnN0IENvbG9yJiBpbml0aWFsQ29sb3IpOwogI2VuZGlmCiAKICAg
ICB2b2lkIHJ1bk9wZW5QYW5lbChGcmFtZSYsIEZpbGVDaG9vc2VyJik7CkBAIC0xNjgsMjggKzE2
OCwyOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0
dXJhbCgpOwogICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0Rp
cmVjdGlvbigpOwogICAgIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdDsKLSAgICBSZWZQdHI8
UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3Q7Ci0gICAg
UmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCopIGNvbnN0OworICAgIFJlZlB0cjxQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShQb3B1
cE1lbnVDbGllbnQmKSBjb25zdDsKKyAgICBSZWZQdHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVT
ZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JikgY29uc3Q7CiAKICNpZiBQTEFURk9STShJ
T1MpCiAgICAgLy8gRklYTUU6IENhbiB3ZSBjb21lIHVwIHdpdGggYSBiZXR0ZXIgbmFtZSBmb3Ig
dGhpcyBzZXR0ZXI/CiAgICAgdm9pZCBzZXREaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZVN1
cHByZXNzZWQoYm9vbCBkaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5nZVN1cHByZXNzZWQpIHsg
bV9pc0Rpc3BhdGNoVmlld3BvcnREYXRhRGlkQ2hhbmdlU3VwcHJlc3NlZCA9IGRpc3BhdGNoVmll
d3BvcnREYXRhRGlkQ2hhbmdlU3VwcHJlc3NlZDsgfQotCi0gICAgdm9pZCBkaWRSZWNlaXZlRG9j
VHlwZShGcmFtZSopOwogI2VuZGlmCiAKLSAgICB2b2lkIHJlZ2lzdGVyUG9wdXBPcGVuaW5nT2Jz
ZXJ2ZXIoUG9wdXBPcGVuaW5nT2JzZXJ2ZXIqKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJQb3B1cE9w
ZW5pbmdPYnNlcnZlcihQb3B1cE9wZW5pbmdPYnNlcnZlciopOworICAgIHZvaWQgZGlkUmVjZWl2
ZURvY1R5cGUoRnJhbWUmKTsKKworICAgIHZvaWQgcmVnaXN0ZXJQb3B1cE9wZW5pbmdPYnNlcnZl
cihQb3B1cE9wZW5pbmdPYnNlcnZlciYpOworICAgIHZvaWQgdW5yZWdpc3RlclBvcHVwT3Blbmlu
Z09ic2VydmVyKFBvcHVwT3BlbmluZ09ic2VydmVyJik7CiAKIHByaXZhdGU6CiAgICAgdm9pZCBu
b3RpZnlQb3B1cE9wZW5pbmdPYnNlcnZlcnMoKSBjb25zdDsKIAogICAgIFBhZ2UmIG1fcGFnZTsK
ICAgICBDaHJvbWVDbGllbnQmIG1fY2xpZW50OwotICAgIFBsYXRmb3JtRGlzcGxheUlEIG1fZGlz
cGxheUlEOworICAgIFBsYXRmb3JtRGlzcGxheUlEIG1fZGlzcGxheUlEIHsgMCB9OwogICAgIFZl
Y3RvcjxQb3B1cE9wZW5pbmdPYnNlcnZlcio+IG1fcG9wdXBPcGVuaW5nT2JzZXJ2ZXJzOwogI2lm
IFBMQVRGT1JNKElPUykKLSAgICBib29sIG1faXNEaXNwYXRjaFZpZXdwb3J0RGF0YURpZENoYW5n
ZVN1cHByZXNzZWQ7CisgICAgYm9vbCBtX2lzRGlzcGF0Y2hWaWV3cG9ydERhdGFEaWRDaGFuZ2VT
dXBwcmVzc2VkIHsgZmFsc2UgfTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKaW5kZXggMmM4OWI2Y2JhNTA2ODBiOTcyZGM1NWZjNGIyNGM0ODkwZmFlYjgyNC4uOGEx
NjM5MWZiYjg2YmNjYjc0ZmZlNWM0MWZmNWE1ODY2Y2U3ZWE2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZUNsaWVudC5oCkBAIC0xMjMsNyArMTIzLDcgQEAgcHVibGljOgogICAgIC8vIGNyZWF0ZWQg
UGFnZSBoYXMgaXRzIHNob3cgbWV0aG9kIGNhbGxlZC4KICAgICAvLyBUaGUgRnJhbWVMb2FkUmVx
dWVzdCBwYXJhbWV0ZXIgaXMgb25seSBmb3IgQ2hyb21lQ2xpZW50IHRvIGNoZWNrIGlmIHRoZQog
ICAgIC8vIHJlcXVlc3QgY291bGQgYmUgZnVsZmlsbGVkLiBUaGUgQ2hyb21lQ2xpZW50IHNob3Vs
ZCBub3QgbG9hZCB0aGUgcmVxdWVzdC4KLSAgICB2aXJ0dWFsIFBhZ2UqIGNyZWF0ZVdpbmRvdyhG
cmFtZSosIGNvbnN0IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYsIGNv
bnN0IE5hdmlnYXRpb25BY3Rpb24mKSA9IDA7CisgICAgdmlydHVhbCBQYWdlKiBjcmVhdGVXaW5k
b3coRnJhbWUmLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2luZG93RmVhdHVyZXMm
LCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzaG93KCkg
PSAwOwogCiAgICAgdmlydHVhbCBib29sIGNhblJ1bk1vZGFsKCkgPSAwOwpAQCAtMTQ2LDYzICsx
NDYsNjcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlVG9Db25zb2xlKE1l
c3NhZ2VTb3VyY2UsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25l
ZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5OdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNl
SUQpID0gMDsKIAogICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChj
b25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lKikgPSAwOworICAgIHZpcnR1YWwgYm9vbCBydW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSYpID0g
MDsKIAogICAgIHZpcnR1YWwgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSA9IDA7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiwgY29uc3QgU3RyaW5nJikgPSAwOwot
ICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSosIGNvbnN0IFN0cmlu
ZyYpID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChGcmFtZSosIGNv
bnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYg
cmVzdWx0KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSYs
IGNvbnN0IFN0cmluZyYpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZp
cm0oRnJhbWUmLCBjb25zdCBTdHJpbmcmKSA9IDA7CisgICAgdmlydHVhbCBib29sIHJ1bkphdmFT
Y3JpcHRQcm9tcHQoRnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYg
ZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRT
dGF0dXNiYXJUZXh0KGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIEtleWJvYXJkVUlN
b2RlIGtleWJvYXJkVUlNb2RlKCkgPSAwOwogCi0gICAgLy8gTWV0aG9kcyB1c2VkIGJ5IEhvc3RX
aW5kb3cuCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzSW1tZWRpYXRlSW52YWxpZGF0aW9uKCkg
eyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNv
bnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0Fu
ZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGludmFsaWRh
dGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVj
dCYpID0gMDsKKwogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0dWFsIHZv
aWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50JikgPSAwOwogI2VuZGlm
CisKICAgICB2aXJ0dWFsIEludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQm
KSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3Qg
SW50UmVjdCYpIGNvbnN0ID0gMDsKKwogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIElu
dFBvaW50IGFjY2Vzc2liaWxpdHlTY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JikgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgSW50UmVjdCByb290Vmlld1RvQWNjZXNzaWJpbGl0eVNjcmVl
bihjb25zdCBJbnRSZWN0JikgY29uc3QgPSAwOwogI2VuZGlmICAgIAorCiAgICAgdmlydHVhbCBQ
bGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0ID0gMDsKKwogI2lmIEVO
QUJMRShDVVJTT1JfU1VQUE9SVCkKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IEN1
cnNvciYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1v
dmVzKGJvb2wpID0gMDsKICNlbmRpZgorCiAjaWYgIVVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFN
RV9USU1FUikKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKSA9IDA7CiAjZW5k
aWYKLSAgICAvLyBFbmQgbWV0aG9kcyB1c2VkIGJ5IEhvc3RXaW5kb3cuCiAKLSAgICB2aXJ0dWFs
IEZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxDaHJvbWVD
bGllbnQqPih0aGlzKS0+d2luZG93UmVjdCgpLnNpemUoKTsgfQotICAgIHZpcnR1YWwgRmxvYXRT
aXplIGF2YWlsYWJsZVNjcmVlblNpemUoKSBjb25zdCB7IHJldHVybiBjb25zdF9jYXN0PENocm9t
ZUNsaWVudCo+KHRoaXMpLT53aW5kb3dSZWN0KCkuc2l6ZSgpOyB9CisgICAgdmlydHVhbCBGbG9h
dFNpemUgc2NyZWVuU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGNvbnN0X2Nhc3Q8Q2hyb21lQ2xpZW50
Jj4oKnRoaXMpLndpbmRvd1JlY3QoKS5zaXplKCk7IH0KKyAgICB2aXJ0dWFsIEZsb2F0U2l6ZSBh
dmFpbGFibGVTY3JlZW5TaXplKCkgY29uc3QgeyByZXR1cm4gY29uc3RfY2FzdDxDaHJvbWVDbGll
bnQmPigqdGhpcykud2luZG93UmVjdCgpLnNpemUoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGRp
c3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbnRz
JikgY29uc3QgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChGcmFt
ZSosIGNvbnN0IEludFNpemUmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRz
U2l6ZUNoYW5nZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3QgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgSW50UmVjdCYpIGNvbnN0IHsgfTsgLy8g
Q3VycmVudGx5IG9ubHkgTWFjIGhhcyBhIG5vbiBlbXB0eSBpbXBsZW1lbnRhdGlvbi4KIAogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihSZW5k
ZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xp
Y2tlZChFbGVtZW50KiwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uKSBjb25zdCB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0
b25DbGlja2VkKEVsZW1lbnQmLCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFi
aWxpdHlSZWFzb24pIGNvbnN0IHsgfQogICAgIHZpcnR1YWwgdm9pZCBtb3VzZURpZE1vdmVPdmVy
RWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQgbW9kaWZpZXJGbGFncykgPSAw
OwogCiAgICAgdmlydHVhbCB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiwgVGV4dERpcmVj
dGlvbikgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHByaW50KEZyYW1lKikgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBwcmludChGcmFtZSYpID0gMDsKIAogICAgIHZpcnR1YWwgQ29sb3IgdW5kZXJs
YXlDb2xvcigpIGNvbnN0IHsgcmV0dXJuIENvbG9yKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBw
YWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3JEaWRDaGFuZ2UoQ29sb3IpIGNvbnN0IHsgfQogCi0g
ICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSosIGNvbnN0IFN0cmlu
ZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lJiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUs
IERhdGFiYXNlRGV0YWlscykgPSAwOwogCiAgICAgLy8gQ2FsbGJhY2sgaW52b2tlZCB3aGVuIHRo
ZSBhcHBsaWNhdGlvbiBjYWNoZSBmYWlscyB0byBzYXZlIGEgY2FjaGUgb2JqZWN0CiAgICAgLy8g
YmVjYXVzZSBzdG9yaW5nIGl0IHdvdWxkIGdyb3cgdGhlIGRhdGFiYXNlIGZpbGUgcGFzdCBpdHMg
ZGVmaW5lZCBtYXhpbXVtCkBAIC0yMTksNyArMjIzLDcgQEAgcHVibGljOgogICAgIC8vIHN0b3Jh
Z2UsIGluIGJ5dGVzLCBuZWVkZWQgdG8gc3RvcmUgdGhlIG5ldyBjYWNoZSBhbG9uZyB3aXRoIGFs
bCBvZiB0aGUKICAgICAvLyBvdGhlciBleGlzdGluZyBjYWNoZXMgZm9yIHRoZSBvcmlnaW4gdGhh
dCB3b3VsZCBub3QgYmUgcmVwbGFjZWQgYnkKICAgICAvLyB0aGUgbmV3IGNhY2hlLgotICAgIHZp
cnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFNlY3VyaXR5T3Jp
Z2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHJl
YWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90
IHRvdGFsU3BhY2VOZWVkZWQpID0gMDsKIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkK
ICAgICB2aXJ0dWFsIHZvaWQgYW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQoKTsKQEAgLTIzNiwxMCAr
MjQwLDEwIEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUmVjZWl2ZU1vYmlsZURvY1R5cGUoYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXRO
ZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoRnJhbWUqLCBib29sKSA9IDA7Ci0gICAgdmlydHVhbCB2
b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShGcmFtZSopID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKEZyYW1lKikgPSAwOwotICAgIHZpcnR1YWwgdm9p
ZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoRnJhbWUqKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHNldE5lZWRzU2Nyb2xsTm90aWZpY2F0aW9ucyhGcmFtZSYsIGJvb2wp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKEZyYW1lJikgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoRnJhbWUmKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdG
cmFtZShGcmFtZSYpID0gMDsKIAogICAgIGVudW0gTGF5b3V0VHlwZSB7IE5vcm1hbExheW91dCwg
U2Nyb2xsIH07CiAgICAgdmlydHVhbCB2b2lkIGRpZExheW91dChMYXlvdXRUeXBlID0gTm9ybWFs
TGF5b3V0KSA9IDA7CkBAIC0yNzAsMTYgKzI3NCwxNiBAQCBwdWJsaWM6CiAjZW5kaWYKIAogI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPENv
bG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0
IENvbG9yJikgPSAwOworICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4g
Y3JlYXRlQ29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCYsIGNvbnN0IENvbG9yJikgPSAw
OwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIHZvaWQgcnVuT3BlblBhbmVsKEZyYW1lJiwgRmlsZUNo
b29zZXImKSA9IDA7CiAgICAgLy8gQXN5bmNocm9ub3VzIHJlcXVlc3QgdG8gbG9hZCBhbiBpY29u
IGZvciBzcGVjaWZpZWQgZmlsZW5hbWVzLgogICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZp
bGVzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgRmlsZUljb25Mb2FkZXImKSA9IDA7CiAgICAgICAg
IAotICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgTm9kZSopIHsgfTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZWxlbWVudERpZEJsdXIoY29uc3QgTm9kZSopIHsgfTsKLSAgICB2aXJ0
dWFsIHZvaWQgZWxlbWVudERpZFJlZm9jdXMoY29uc3QgTm9kZSopIHsgfTsKKyAgICB2aXJ0dWFs
IHZvaWQgZWxlbWVudERpZEZvY3VzKEVsZW1lbnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZWxl
bWVudERpZEJsdXIoRWxlbWVudCYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBlbGVtZW50RGlkUmVm
b2N1cyhFbGVtZW50JikgeyB9CiAgICAgCiAgICAgdmlydHVhbCBib29sIHNob3VsZFBhaW50RW50
aXJlQ29udGVudHMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBo
YXNTdGFibGVQYWdlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CkBAIC0yOTEs
OSArMjk1LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9u
aXRvcj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKSBjb25z
dCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKIAotICAgIC8vIFBhc3MgMCBhcyB0aGUgR3Jh
cGhpY3NMYXllciB0byBkZXRhdGNoIHRoZSByb290IGxheWVyLgotICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKSA9IDA7Ci0gICAg
dmlydHVhbCB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBo
aWNzTGF5ZXIqKSA9IDA7CisgICAgLy8gUGFzcyBudWxscHRyIGFzIHRoZSBHcmFwaGljc0xheWVy
IHRvIGRldGF0Y2ggdGhlIHJvb3QgbGF5ZXIuCisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFJvb3RH
cmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciop
ID0gMDsKICAgICAvLyBTZXRzIGEgZmxhZyB0byBzcGVjaWZ5IHRoYXQgdGhlIG5leHQgdGltZSBj
b250ZW50IGlzIGRyYXduIHRvIHRoZSB3aW5kb3csCiAgICAgLy8gdGhlIGNoYW5nZXMgYXBwZWFy
IG9uIHRoZSBzY3JlZW4gaW4gc3luY2hyb255IHdpdGggdXBkYXRlcyB0byBHcmFwaGljc0xheWVy
cy4KICAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlv
bigpID0gMDsKQEAgLTMyNSwyNiArMzI5LDI4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9v
bCBhZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6Rmxh
Z3MpIHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8U2Nyb2xsaW5n
Q29vcmRpbmF0b3I+IGNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UqKSBjb25zdCB7IHJl
dHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+
IGNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UmKSBjb25zdCB7IHJldHVybiBudWxscHRy
OyB9CiAKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShBVkZPVU5EQVRJT04pCi0gICAgdmlydHVh
bCBHcmFwaGljc0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2aWNlQWRhcHRlcigpIGNvbnN0IHsg
cmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIEdyYXBoaWNzRGV2aWNlQWRhcHRlciogZ3JhcGhpY3NE
ZXZpY2VBZGFwdGVyKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKICAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oSFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKSB7IHJldHVybiBmYWxzZTsgfQorCiAjaWYgRU5BQkxFKFZJ
REVPKQogICAgIHZpcnR1YWwgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVu
dChIVE1MVmlkZW9FbGVtZW50JiwgSFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxzY3Jl
ZW5Nb2RlKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdl
cihIVE1MTWVkaWFFbGVtZW50JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNsZWFyUGxheWJhY2tD
b250cm9sc01hbmFnZXIoKSB7IH0KICNlbmRpZgotICAgIHZpcnR1YWwgdm9pZCBleGl0VmlkZW9G
dWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnQmKSB7IH0K
LSAgICB2aXJ0dWFsIHZvaWQgZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhvdXRBbmltYXRp
b24oV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYsIEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6Vmlk
ZW9GdWxsc2NyZWVuTW9kZSAvKnRhcmdldE1vZGUqLykgeyB9CisKKyAgICB2aXJ0dWFsIHZvaWQg
ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChIVE1MVmlkZW9FbGVtZW50JikgeyB9
CisgICAgdmlydHVhbCB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Ub01vZGVXaXRob3V0QW5pbWF0
aW9uKEhUTUxWaWRlb0VsZW1lbnQmLCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNj
cmVlbk1vZGUpIHsgfQogICAgIHZpcnR1YWwgYm9vbCByZXF1aXJlc0Z1bGxzY3JlZW5Gb3JWaWRl
b1BsYXliYWNrKCkgeyByZXR1cm4gZmFsc2U7IH0gCiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCi0gICAgdmlydHVhbCBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3Qg
RWxlbWVudCosIGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIGVudGVy
RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopIHsgfQotICAgIHZpcnR1YWwgdm9pZCBleGl0
RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCopIHsgfQorICAgIHZpcnR1YWwgYm9vbCBzdXBw
b3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQmLCBib29sKSB7IHJldHVybiBm
YWxzZTsgfQorICAgIHZpcnR1YWwgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1l
bnQmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1l
bnQmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdEZ1bGxTY3JlZW5MYXllcihHcmFwaGlj
c0xheWVyKikgeyB9CiAjZW5kaWYKIApAQCAtMzUzLDcgKzM1OSw3IEBAIHB1YmxpYzoKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdmlydHVhbCBOU1Jlc3BvbmRlciAqZmlyc3RS
ZXNwb25kZXIoKSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBOU1Jlc3BvbmRlciAqZmlyc3RS
ZXNwb25kZXIoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIG1ha2VGaXJz
dFJlc3BvbmRlcihOU1Jlc3BvbmRlciAqKSB7IH0KICAgICAvLyBGb2N1c2VzIG9uIHRoZSBjb250
YWluaW5nIHZpZXcgYXNzb2NpYXRlZCB3aXRoIHRoaXMgcGFnZS4KICAgICB2aXJ0dWFsIHZvaWQg
bWFrZUZpcnN0UmVzcG9uZGVyKCkgeyB9CkBAIC0zNzcsMTAgKzM4MywxMCBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJl
Y3Rpb24oKSA9IDA7CiAgICAgLy8gQ2hlY2tzIGlmIHRoZXJlIGlzIGFuIG9wZW5lZCBwb3B1cCwg
Y2FsbGVkIGJ5IFJlbmRlck1lbnVMaXN0OjpzaG93UG9wdXAoKS4KICAgICB2aXJ0dWFsIGJvb2wg
aGFzT3BlbmVkUG9wdXAoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBSZWZQdHI8UG9wdXBNZW51
PiBjcmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50KikgY29uc3QgPSAwOwotICAgIHZpcnR1
YWwgUmVmUHRyPFNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVu
dUNsaWVudCopIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFJlZlB0cjxQb3B1cE1lbnU+IGNyZWF0
ZVBvcHVwTWVudShQb3B1cE1lbnVDbGllbnQmKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBSZWZQ
dHI8U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50
JikgY29uc3QgPSAwOwogCi0gICAgdmlydHVhbCB2b2lkIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZp
Y2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlv
bikgeyB9CisgICAgdmlydHVhbCB2b2lkIHBvc3RBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uKEFj
Y2Vzc2liaWxpdHlPYmplY3QmLCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbikgeyB9CiAK
ICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5U2Nyb2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChjb25z
dCBJbnRSZWN0JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5
bGVEaWRDaGFuZ2UoU2Nyb2xsYmFyU3R5bGUpIHsgfQpAQCAtNDA4LDE2ICs0MTQsMTYgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRBc3NvY2lhdGVGb3JtQ29udHJvbHMoY29uc3QgVmVj
dG9yPFJlZlB0cjxFbGVtZW50Pj4mKSB7IH07CiAgICAgdmlydHVhbCBib29sIHNob3VsZE5vdGlm
eU9uRm9ybUNoYW5nZXMoKSB7IHJldHVybiBmYWxzZTsgfTsKIAotICAgIHZpcnR1YWwgdm9pZCBk
aWRBZGRIZWFkZXJMYXllcihHcmFwaGljc0xheWVyKikgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGRp
ZEFkZEZvb3RlckxheWVyKEdyYXBoaWNzTGF5ZXIqKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlk
QWRkSGVhZGVyTGF5ZXIoR3JhcGhpY3NMYXllciYpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBkaWRB
ZGRGb290ZXJMYXllcihHcmFwaGljc0xheWVyJikgeyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyopIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHNob3VsZFVzZVRpbGVkQmFja2luZ0Zv
ckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcmKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAg
ICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncywgdWludDY0X3QpIHsgfQogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04p
CiAgICAgdmlydHVhbCB2b2lkIGhhc01lZGlhU2Vzc2lvbldpdGhBY3RpdmVNZWRpYUVsZW1lbnRz
RGlkQ2hhbmdlKGJvb2wpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBtZWRpYVNlc3Npb25NZXRhZGF0
YURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpNZWRpYVNlc3Npb25NZXRhZGF0YSYpIHsgfQorICAg
IHZpcnR1YWwgdm9pZCBtZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZShjb25zdCBNZWRpYVNl
c3Npb25NZXRhZGF0YSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkQ29udGVudE1lZGlh
RWxlbWVudERpZENoYW5nZSh1aW50NjRfdCkgeyB9CiAjZW5kaWYKIApAQCAtNDI3LDExICs0MzMs
MTIgQEAgcHVibGljOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoVEVMRVBIT05FX05VTUJFUl9ERVRF
Q1RJT04pICYmIFBMQVRGT1JNKE1BQykKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlVGVsZXBob25l
TnVtYmVyQ2xpY2soY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSB7IH0K
KyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlVGVsZXBob25lTnVtYmVyQ2xpY2soY29uc3QgU3RyaW5n
JiwgY29uc3QgSW50UG9pbnQmKSB7IH0KICNlbmRpZgorCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09O
VFJPTFMpCi0gICAgdmlydHVhbCB2b2lkIGhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhXZWJD
b3JlOjpGcmFtZVNlbGVjdGlvbiYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmKSB7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaGFzUmVsZXZhbnRTZWxlY3Rpb25T
ZXJ2aWNlcyhib29sIC8qIGlzVGV4dE9ubHkgKi8pIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhGcmFtZVNlbGVjdGlv
biYsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgSW50UG9pbnQmKSB7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgaGFzUmVsZXZhbnRTZWxlY3Rpb25TZXJ2aWNlcyhib29sIC8qaXNUZXh0T25seSov
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkRGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpA
QCAtNDQxLDEzICs0NDgsMTMgQEAgcHVibGljOgogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFD
S19UQVJHRVQpCiAgICAgdmlydHVhbCB2b2lkIGFkZFBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50
KHVpbnQ2NF90IC8qY29udGV4dElkKi8pIHsgfQogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVQbGF5
YmFja1RhcmdldFBpY2tlckNsaWVudCh1aW50NjRfdCAvKmNvbnRleHRJZCovKSB7IH0KLSAgICB2
aXJ0dWFsIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IC8qY29udGV4dElk
Ki8sIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCAvKiBpc1ZpZGVvICovKSB7IH0KKyAg
ICB2aXJ0dWFsIHZvaWQgc2hvd1BsYXliYWNrVGFyZ2V0UGlja2VyKHVpbnQ2NF90IC8qY29udGV4
dElkKi8sIGNvbnN0IEludFBvaW50JiwgYm9vbCAvKmlzVmlkZW8qLykgeyB9CiAgICAgdmlydHVh
bCB2b2lkIHBsYXliYWNrVGFyZ2V0UGlja2VyQ2xpZW50U3RhdGVEaWRDaGFuZ2UodWludDY0X3Qg
Lypjb250ZXh0SWQqLywgTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzKSB7IH0KICAgICB2
aXJ0dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJFbmFibGVkKGJvb2wp
ICB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0TW9ja01lZGlhUGxheWJhY2tUYXJnZXRQaWNrZXJT
dGF0ZShjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dDo6
U3RhdGUpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRNb2NrTWVkaWFQbGF5YmFja1RhcmdldFBp
Y2tlclN0YXRlKGNvbnN0IFN0cmluZyYsIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpTdGF0
ZSkgeyB9CiAjZW5kaWYKIAotICAgIHZpcnR1YWwgdm9pZCBpbWFnZU9yTWVkaWFEb2N1bWVudFNp
emVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
aW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZChjb25zdCBJbnRTaXplJikgeyB9CiAKICNp
ZiBFTkFCTEUoVklERU8pICYmIFVTRShHU1RSRUFNRVIpCiAgICAgdmlydHVhbCB2b2lkIHJlcXVl
c3RJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2lucyhjb25zdCBTdHJpbmcmIC8qZGV0YWlscyovLCBj
b25zdCBTdHJpbmcmIC8qZGVzY3JpcHRpb24qLywgTWVkaWFQbGF5ZXJSZXF1ZXN0SW5zdGFsbE1p
c3NpbmdQbHVnaW5zQ2FsbGJhY2smKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4
dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCAwZTdhNzdiNmRhMjg5YTAyNTY5MzUzNGFkMWZjNGQ1
MTA5YzUwZjMzLi5jMWM0OTQ4NDAyODM4NDlmMTUyYmIyNzQ1ZjhhMWI0NjA2ZWVkM2U1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC05NCw3
ICs5NCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjbGVhckNvbnRleHRNZW51KCkK
ICAgICBtX21lbnVQcm92aWRlciA9IG51bGxwdHI7CiB9CiAKLXZvaWQgQ29udGV4dE1lbnVDb250
cm9sbGVyOjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KEV2ZW50KiBldmVudCkKK3ZvaWQgQ29udGV4
dE1lbnVDb250cm9sbGVyOjpoYW5kbGVDb250ZXh0TWVudUV2ZW50KEV2ZW50JiBldmVudCkKIHsK
ICAgICBtX2NvbnRleHRNZW51ID0gbWF5YmVDcmVhdGVDb250ZXh0TWVudShldmVudCk7CiAgICAg
aWYgKCFtX2NvbnRleHRNZW51KQpAQCAtMTEwLDkgKzExMCw5IEBAIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8Q29udGV4dE1lbnVJdGVtPiBzZXBhcmF0b3JJdGVtKCkKICAgICByZXR1cm4gc3RkOjp1
bmlxdWVfcHRyPENvbnRleHRNZW51SXRlbT4obmV3IENvbnRleHRNZW51SXRlbShTZXBhcmF0b3JU
eXBlLCBDb250ZXh0TWVudUl0ZW1UYWdOb0FjdGlvbiwgU3RyaW5nKCkpKTsKIH0KIAotdm9pZCBD
b250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCogZXZlbnQsIFBhc3NS
ZWZQdHI8Q29udGV4dE1lbnVQcm92aWRlcj4gbWVudVByb3ZpZGVyKQordm9pZCBDb250ZXh0TWVu
dUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCYgZXZlbnQsIENvbnRleHRNZW51UHJv
dmlkZXImIHByb3ZpZGVyKQogewotICAgIG1fbWVudVByb3ZpZGVyID0gbWVudVByb3ZpZGVyOwor
ICAgIG1fbWVudVByb3ZpZGVyID0gJnByb3ZpZGVyOwogCiAgICAgbV9jb250ZXh0TWVudSA9IG1h
eWJlQ3JlYXRlQ29udGV4dE1lbnUoZXZlbnQpOwogICAgIGlmICghbV9jb250ZXh0TWVudSkgewpA
QCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4
dE1lbnUoRXZlbnQqIGV2ZW50LCBQYXNzUmVmUHRyPENvbnRleHRNZW51CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBtX21lbnVQcm92aWRlci0+cG9wdWxhdGVDb250ZXh0TWVudShtX2Nv
bnRleHRNZW51LmdldCgpKTsKKyAgICBwcm92aWRlci5wb3B1bGF0ZUNvbnRleHRNZW51KG1fY29u
dGV4dE1lbnUuZ2V0KCkpOwogICAgIGlmIChtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmlzU2Vs
ZWN0ZWQoKSkgewogICAgICAgICBhcHBlbmRJdGVtKCpzZXBhcmF0b3JJdGVtKCksIG1fY29udGV4
dE1lbnUuZ2V0KCkpOwogICAgICAgICBwb3B1bGF0ZSgpOwpAQCAtMTI5LDMzICsxMjksMzQgQEAg
dm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVudShFdmVudCogZXZlbnQs
IFBhc3NSZWZQdHI8Q29udGV4dE1lbnUKIH0KIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xT
KQorCiBzdGF0aWMgSW1hZ2UqIGltYWdlRnJvbUltYWdlRWxlbWVudE5vZGUoTm9kZSYgbm9kZSkK
IHsKLSAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gbm9kZS5yZW5kZXJlcigpOworICAgIGF1
dG8qIHJlbmRlcmVyID0gbm9kZS5yZW5kZXJlcigpOwogICAgIGlmICghaXM8UmVuZGVySW1hZ2U+
KHJlbmRlcmVyKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgQ2FjaGVkSW1hZ2UqIGlt
YWdlID0gZG93bmNhc3Q8UmVuZGVySW1hZ2U+KCpyZW5kZXJlcikuY2FjaGVkSW1hZ2UoKTsKKyAg
ICBhdXRvKiBpbWFnZSA9IGRvd25jYXN0PFJlbmRlckltYWdlPigqcmVuZGVyZXIpLmNhY2hlZElt
YWdlKCk7CiAgICAgaWYgKCFpbWFnZSB8fCBpbWFnZS0+ZXJyb3JPY2N1cnJlZCgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLQogICAgIHJldHVybiBpbWFnZS0+aW1hZ2VGb3JSZW5kZXJlcihy
ZW5kZXJlcik7CiB9CisKICNlbmRpZgogCi1zdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IENv
bnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudCogZXZlbnQp
CitzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IENvbnRleHRNZW51Q29udHJvbGxlcjo6bWF5
YmVDcmVhdGVDb250ZXh0TWVudShFdmVudCYgZXZlbnQpCiB7Ci0gICAgQVNTRVJUKGV2ZW50KTsK
LSAgICAKLSAgICBpZiAoIWlzPE1vdXNlRXZlbnQ+KCpldmVudCkpCisgICAgaWYgKCFpczxNb3Vz
ZUV2ZW50PihldmVudCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgTW91c2VFdmVu
dCYgbW91c2VFdmVudCA9IGRvd25jYXN0PE1vdXNlRXZlbnQ+KCpldmVudCk7Ci0gICAgSGl0VGVz
dFJlc3VsdCByZXN1bHQobW91c2VFdmVudC5hYnNvbHV0ZUxvY2F0aW9uKCkpOworICAgIGF1dG8m
IG1vdXNlRXZlbnQgPSBkb3duY2FzdDxNb3VzZUV2ZW50PihldmVudCk7CisgICAgYXV0byogbm9k
ZSA9IG1vdXNlRXZlbnQudGFyZ2V0KCktPnRvTm9kZSgpOworICAgIGlmICghbm9kZSkKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgYXV0byogZnJhbWUgPSBub2RlLT5kb2N1bWVudCgpLmZy
YW1lKCk7CisgICAgaWYgKCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBO
b2RlKiBub2RlID0gZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKTsKLSAgICBpZiAoRnJhbWUqIGZy
YW1lID0gbm9kZS0+ZG9jdW1lbnQoKS5mcmFtZSgpKQotICAgICAgICByZXN1bHQgPSBmcmFtZS0+
ZXZlbnRIYW5kbGVyKCkuaGl0VGVzdFJlc3VsdEF0UG9pbnQobW91c2VFdmVudC5hYnNvbHV0ZUxv
Y2F0aW9uKCkpOwotICAgIAorICAgIGF1dG8gcmVzdWx0ID0gZnJhbWUtPmV2ZW50SGFuZGxlcigp
LmhpdFRlc3RSZXN1bHRBdFBvaW50KG1vdXNlRXZlbnQuYWJzb2x1dGVMb2NhdGlvbigpKTsKICAg
ICBpZiAoIXJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKQEAgLTE2Myw3ICsxNjQsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IENv
bnRleHRNZW51Q29udHJvbGxlcjo6bWF5YmVDcmVhdGVDb250ZXh0TWVudShFdmVudAogCiAjaWYg
RU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCiAgICAgaWYgKG5vZGUtPmlzSW1hZ2VDb250cm9sc0J1
dHRvbkVsZW1lbnQoKSkgewotICAgICAgICBpZiAoSW1hZ2UqIGltYWdlID0gaW1hZ2VGcm9tSW1h
Z2VFbGVtZW50Tm9kZSgqcmVzdWx0LmlubmVyTm9uU2hhcmVkTm9kZSgpKSkKKyAgICAgICAgaWYg
KGF1dG8qIGltYWdlID0gaW1hZ2VGcm9tSW1hZ2VFbGVtZW50Tm9kZSgqcmVzdWx0LmlubmVyTm9u
U2hhcmVkTm9kZSgpKSkKICAgICAgICAgICAgIG1fY29udGV4dC5zZXRDb250cm9sbGVkSW1hZ2Uo
aW1hZ2UpOwogCiAgICAgICAgIC8vIEZJWE1FOiBJZiB3ZSBjb3VsZG4ndCBnZXQgdGhlIGltYWdl
IHRoZW4gd2Ugc2hvdWxkbid0IHRyeSB0byBzaG93IHRoZSBpbWFnZSBjb250cm9scyBtZW51IGZv
ciBpdC4KQEAgLTE3MSwyNCArMTcyLDI0IEBAIHN0ZDo6dW5pcXVlX3B0cjxDb250ZXh0TWVudT4g
Q29udGV4dE1lbnVDb250cm9sbGVyOjptYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50CiAgICAg
fQogI2VuZGlmCiAKLSAgICByZXR1cm4gc3RkOjp1bmlxdWVfcHRyPENvbnRleHRNZW51PihuZXcg
Q29udGV4dE1lbnUpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPENvbnRleHRNZW51Pigp
OwogfQogCi12b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51KEV2ZW50
KiBldmVudCkKK3ZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpzaG93Q29udGV4dE1lbnUoRXZl
bnQmIGV2ZW50KQogewogICAgIGlmIChtX3BhZ2UuaW5zcGVjdG9yQ29udHJvbGxlcigpLmVuYWJs
ZWQoKSkKICAgICAgICAgYWRkSW5zcGVjdEVsZW1lbnRJdGVtKCk7CiAKLSAgICBldmVudC0+c2V0
RGVmYXVsdEhhbmRsZWQoKTsKKyAgICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgpOwogfQogCi1z
dGF0aWMgdm9pZCBvcGVuTmV3V2luZG93KGNvbnN0IFVSTCYgdXJsVG9Mb2FkLCBGcmFtZSogZnJh
bWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgc2hvdWxkT3BlbkV4dGVybmFsVVJMc1Bv
bGljeSkKK3N0YXRpYyB2b2lkIG9wZW5OZXdXaW5kb3coY29uc3QgVVJMJiB1cmxUb0xvYWQsIEZy
YW1lJiBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBzaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5KQogewotICAgIFBhZ2UqIG9sZFBhZ2UgPSBmcmFtZS0+cGFnZSgpOworICAg
IFBhZ2UqIG9sZFBhZ2UgPSBmcmFtZS5wYWdlKCk7CiAgICAgaWYgKCFvbGRQYWdlKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QoZnJhbWUtPmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCh1cmxUb0xvYWQsIGZyYW1lLT5s
b2FkZXIoKS5vdXRnb2luZ1JlZmVycmVyKCkpLCBMb2NrSGlzdG9yeTo6Tm8sIExvY2tCYWNrRm9y
d2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlk
VVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpTdXBwcmVzcywgc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSk7CisgICAgRnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KGZyYW1lLmRvY3Vt
ZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCh1cmxUb0xvYWQsIGZyYW1l
LmxvYWRlcigpLm91dGdvaW5nUmVmZXJyZXIoKSksIExvY2tIaXN0b3J5OjpObywgTG9ja0JhY2tG
b3J3YXJkTGlzdDo6Tm8sIE1heWJlU2VuZFJlZmVycmVyLCBBbGxvd05hdmlnYXRpb25Ub0ludmFs
aWRVUkw6OlllcywgTmV3RnJhbWVPcGVuZXJQb2xpY3k6OlN1cHByZXNzLCBzaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5KTsKIAogICAgIFBhZ2UqIG5ld1BhZ2UgPSBvbGRQYWdlLT5jaHJvbWUo
KS5jcmVhdGVXaW5kb3coZnJhbWUsIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIE5hdmlnYXRp
b25BY3Rpb24ocmVxdWVzdC5yZXNvdXJjZVJlcXVlc3QoKSkpOwogICAgIGlmICghbmV3UGFnZSkK
QEAgLTE5OCwxNSArMTk5LDE3IEBAIHN0YXRpYyB2b2lkIG9wZW5OZXdXaW5kb3coY29uc3QgVVJM
JiB1cmxUb0xvYWQsIEZyYW1lKiBmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsCiB9CiAKICNpZiBQ
TEFURk9STShHVEspCi1zdGF0aWMgdm9pZCBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKFVDaGFyIGNo
YXJhY3RlciwgRnJhbWUqIGZyYW1lKQorCitzdGF0aWMgdm9pZCBpbnNlcnRVbmljb2RlQ2hhcmFj
dGVyKFVDaGFyIGNoYXJhY3RlciwgRnJhbWUmIGZyYW1lKQogewogICAgIFN0cmluZyB0ZXh0KCZj
aGFyYWN0ZXIsIDEpOwotICAgIGlmICghZnJhbWUtPmVkaXRvcigpLnNob3VsZEluc2VydFRleHQo
dGV4dCwgZnJhbWUtPnNlbGVjdGlvbigpLnRvTm9ybWFsaXplZFJhbmdlKCkuZ2V0KCksIEVkaXRv
ckluc2VydEFjdGlvbjo6VHlwZWQpKQorICAgIGlmICghZnJhbWUuZWRpdG9yKCkuc2hvdWxkSW5z
ZXJ0VGV4dCh0ZXh0LCBmcmFtZS5zZWxlY3Rpb24oKS50b05vcm1hbGl6ZWRSYW5nZSgpLmdldCgp
LCBFZGl0b3JJbnNlcnRBY3Rpb246OlR5cGVkKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgQVNT
RVJUKGZyYW1lLT5kb2N1bWVudCgpKTsKLSAgICBUeXBpbmdDb21tYW5kOjppbnNlcnRUZXh0KCpm
cmFtZS0+ZG9jdW1lbnQoKSwgdGV4dCwgMCwgVHlwaW5nQ29tbWFuZDo6VGV4dENvbXBvc2l0aW9u
Tm9uZSk7CisgICAgQVNTRVJUKGZyYW1lLmRvY3VtZW50KCkpOworICAgIFR5cGluZ0NvbW1hbmQ6
Omluc2VydFRleHQoKmZyYW1lLmRvY3VtZW50KCksIHRleHQsIDAsIFR5cGluZ0NvbW1hbmQ6OlRl
eHRDb21wb3NpdGlvbk5vbmUpOwogfQorCiAjZW5kaWYKIAogdm9pZCBDb250ZXh0TWVudUNvbnRy
b2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwg
Y29uc3QgU3RyaW5nJiB0aXRsZSkKQEAgLTIyNSw3ICsyMjgsNyBAQCB2b2lkIENvbnRleHRNZW51
Q29udHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0
aW9uLCBjbwogCiAgICAgc3dpdGNoIChhY3Rpb24pIHsKICAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ09wZW5MaW5rSW5OZXdXaW5kb3c6Ci0gICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0
LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUxpbmtVUkwoKSwgZnJhbWUsIFNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93RXh0ZXJuYWxTY2hlbWVzKTsKKyAgICAgICAgb3Bl
bk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29sdXRlTGlua1VSTCgpLCAq
ZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3VsZEFsbG93RXh0ZXJuYWxT
Y2hlbWVzKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdEb3du
bG9hZExpbmtUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIGRheSB3ZSBzaG91bGQgYmUg
YWJsZSB0byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUuIChCdWcgMTE3NzA5KQpAQCAtMjM1
LDcgKzIzOCw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUl0ZW1T
ZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgICAgIGZyYW1lLT5lZGl0
b3IoKS5jb3B5VVJMKG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1dGVMaW5rVVJMKCks
IG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkudGV4dENvbnRlbnQoKSk7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3c6Ci0gICAg
ICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNvbHV0ZUltYWdl
VVJMKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxv
dyk7CisgICAgICAgIG9wZW5OZXdXaW5kb3cobV9jb250ZXh0LmhpdFRlc3RSZXN1bHQoKS5hYnNv
bHV0ZUltYWdlVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hv
dWxkTm90QWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRh
Z0Rvd25sb2FkSW1hZ2VUb0Rpc2s6CiAgICAgICAgIC8vIEZJWE1FOiBTb21lIGRheSB3ZSBzaG91
bGQgYmUgYWJsZSB0byBkbyB0aGlzIGZyb20gd2l0aGluIFdlYkNvcmUuIChCdWcgMTE3NzA5KQpA
QCAtMjUyLDcgKzI1NSw3IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVu
dUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiBhY3Rpb24sIGNvCiAgICAgICAgIGJyZWFr
OwogI2VuZGlmCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJbk5ld1dpbmRv
dzoKLSAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgpLmFic29s
dXRlTWVkaWFVUkwoKSwgZnJhbWUsIFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3k6OlNob3Vs
ZE5vdEFsbG93KTsKKyAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2NvbnRleHQuaGl0VGVzdFJlc3Vs
dCgpLmFic29sdXRlTWVkaWFVUkwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnRG93bmxvYWRNZWRpYVRvRGlzazoKICAgICAgICAgLy8gRklYTUU6IFNvbWUgZGF5
IHdlIHNob3VsZCBiZSBhYmxlIHRvIGRvIHRoaXMgZnJvbSB3aXRoaW4gV2ViQ29yZS4gKEJ1ZyAx
MTc3MDkpCkBAIC0yODUsOSArMjg4LDkgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OmNv
bnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFjdGlvbiwgY28KICAgICBj
YXNlIENvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93OiB7CiAgICAgICAgIERv
Y3VtZW50TG9hZGVyKiBsb2FkZXIgPSBmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKTsK
ICAgICAgICAgaWYgKCFsb2FkZXItPnVucmVhY2hhYmxlVVJMKCkuaXNFbXB0eSgpKQotICAgICAg
ICAgICAgb3Blbk5ld1dpbmRvdyhsb2FkZXItPnVucmVhY2hhYmxlVVJMKCksIGZyYW1lLCBTaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CisgICAgICAgICAgICBv
cGVuTmV3V2luZG93KGxvYWRlci0+dW5yZWFjaGFibGVVUkwoKSwgKmZyYW1lLCBTaG91bGRPcGVu
RXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyk7CiAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIG9wZW5OZXdXaW5kb3cobG9hZGVyLT51cmwoKSwgZnJhbWUsIFNob3VsZE9wZW5FeHRl
cm5hbFVSTHNQb2xpY3k6OlNob3VsZE5vdEFsbG93KTsKKyAgICAgICAgICAgIG9wZW5OZXdXaW5k
b3cobG9hZGVyLT51cmwoKSwgKmZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpT
aG91bGROb3RBbGxvdyk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIENvbnRleHRN
ZW51SXRlbVRhZ0NvcHk6CkBAIC0zMTgsMzQgKzMyMSwzNCBAQCB2b2lkIENvbnRleHRNZW51Q29u
dHJvbGxlcjo6Y29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoQ29udGV4dE1lbnVBY3Rpb24gYWN0aW9u
LCBjbwogICAgICAgICBmcmFtZS0+ZWRpdG9yKCkucGVyZm9ybURlbGV0ZSgpOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRMUk1NYXJrOgot
ICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0TWFyaywgZnJhbWUpOwor
ICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0TWFyaywgKmZyYW1lKTsK
ICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdVbmljb2RlSW5zZXJ0
UkxNTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdodFRvTGVmdE1hcmss
IGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3RlcihyaWdodFRvTGVmdE1hcmss
ICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5p
Y29kZUluc2VydExSRU1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIobGVmdFRv
UmlnaHRFbWJlZCwgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRU
b1JpZ2h0RW1iZWQsICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnVW5pY29kZUluc2VydFJMRU1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFy
YWN0ZXIocmlnaHRUb0xlZnRFbWJlZCwgZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hh
cmFjdGVyKHJpZ2h0VG9MZWZ0RW1iZWQsICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydExST01hcms6Ci0gICAgICAgIGluc2Vy
dFVuaWNvZGVDaGFyYWN0ZXIobGVmdFRvUmlnaHRPdmVycmlkZSwgZnJhbWUpOworICAgICAgICBp
bnNlcnRVbmljb2RlQ2hhcmFjdGVyKGxlZnRUb1JpZ2h0T3ZlcnJpZGUsICpmcmFtZSk7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydFJMT01h
cms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIocmlnaHRUb0xlZnRPdmVycmlkZSwg
ZnJhbWUpOworICAgICAgICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHJpZ2h0VG9MZWZ0T3ZlcnJp
ZGUsICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFn
VW5pY29kZUluc2VydFBERk1hcms6Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIocG9w
RGlyZWN0aW9uYWxGb3JtYXR0aW5nLCBmcmFtZSk7CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFy
YWN0ZXIocG9wRGlyZWN0aW9uYWxGb3JtYXR0aW5nLCAqZnJhbWUpOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNlcnRaV1NNYXJrOgotICAgICAg
ICBpbnNlcnRVbmljb2RlQ2hhcmFjdGVyKHplcm9XaWR0aFNwYWNlLCBmcmFtZSk7CisgICAgICAg
IGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoU3BhY2UsICpmcmFtZSk7CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnVW5pY29kZUluc2VydFpXSk1hcms6
Ci0gICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoSm9pbmVyLCBmcmFtZSk7
CisgICAgICAgIGluc2VydFVuaWNvZGVDaGFyYWN0ZXIoemVyb1dpZHRoSm9pbmVyLCAqZnJhbWUp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ1VuaWNvZGVJbnNl
cnRaV05KTWFyazoKLSAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rlcih6ZXJvV2lkdGhOb25K
b2luZXIsIGZyYW1lKTsKKyAgICAgICAgaW5zZXJ0VW5pY29kZUNoYXJhY3Rlcih6ZXJvV2lkdGhO
b25Kb2luZXIsICpmcmFtZSk7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCiAjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShFRkwpCkBAIC0zOTMsNyArMzk2LDcgQEAgdm9pZCBDb250ZXh0TWVu
dUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SXRlbVNlbGVjdGVkKENvbnRleHRNZW51QWN0aW9uIGFj
dGlvbiwgY28KICAgICAgICAgaWYgKEZyYW1lKiB0YXJnZXRGcmFtZSA9IG1fY29udGV4dC5oaXRU
ZXN0UmVzdWx0KCkudGFyZ2V0RnJhbWUoKSkKICAgICAgICAgICAgIHRhcmdldEZyYW1lLT5sb2Fk
ZXIoKS5sb2FkRnJhbWVSZXF1ZXN0KEZyYW1lTG9hZFJlcXVlc3QoZnJhbWUtPmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdChtX2NvbnRleHQuaGl0VGVzdFJlc3Vs
dCgpLmFic29sdXRlTGlua1VSTCgpLCBmcmFtZS0+bG9hZGVyKCkub3V0Z29pbmdSZWZlcnJlcigp
KSwgTG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVm
ZXJyZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBv
bGljeTo6U3VwcHJlc3MsIHRhcmdldEZyYW1lLT5pc01haW5GcmFtZSgpID8gU2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3cgOiBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5OjpTaG91bGROb3RBbGxvdyksIG51bGxwdHIsIG51bGxwdHIpOwogICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0KCkuYWJzb2x1
dGVMaW5rVVJMKCksIGZyYW1lLCBTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRB
bGxvdyk7CisgICAgICAgICAgICBvcGVuTmV3V2luZG93KG1fY29udGV4dC5oaXRUZXN0UmVzdWx0
KCkuYWJzb2x1dGVMaW5rVVJMKCksICpmcmFtZSwgU2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGlj
eTo6U2hvdWxkQWxsb3cpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ0JvbGQ6CiAgICAgICAgIGZyYW1lLT5lZGl0b3IoKS5jb21tYW5kKCJUb2dnbGVCb2xkIiku
ZXhlY3V0ZSgpOwpAQCAtMTQyOSwyNiArMTQzMiwzMCBAQCB2b2lkIENvbnRleHRNZW51Q29udHJv
bGxlcjo6Y2hlY2tPckVuYWJsZUlmTmVlZGVkKENvbnRleHRNZW51SXRlbSYgaXRlbSkgY29uc3QK
IH0KIAogI2lmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCi12b2lkIENvbnRleHRN
ZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRNZW51QXQoRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRQ
b2ludCYgY2xpY2tQb2ludCkKKwordm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250
ZXh0TWVudUF0KEZyYW1lJiBmcmFtZSwgY29uc3QgSW50UG9pbnQmIGNsaWNrUG9pbnQpCiB7CiAg
ICAgY2xlYXJDb250ZXh0TWVudSgpOwogICAgIAogICAgIC8vIFNpbXVsYXRlIGEgY2xpY2sgaW4g
dGhlIG1pZGRsZSBvZiB0aGUgYWNjZXNzaWJpbGl0eSBvYmplY3QuCiAgICAgUGxhdGZvcm1Nb3Vz
ZUV2ZW50IG1vdXNlRXZlbnQoY2xpY2tQb2ludCwgY2xpY2tQb2ludCwgUmlnaHRCdXR0b24sIFBs
YXRmb3JtRXZlbnQ6Ok1vdXNlUHJlc3NlZCwgMSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
IGN1cnJlbnRUaW1lKCksIEZvcmNlQXRDbGljaywgTm9UYXApOwotICAgIGZyYW1lLT5ldmVudEhh
bmRsZXIoKS5oYW5kbGVNb3VzZVByZXNzRXZlbnQobW91c2VFdmVudCk7Ci0gICAgYm9vbCBoYW5k
bGVkID0gZnJhbWUtPmV2ZW50SGFuZGxlcigpLnNlbmRDb250ZXh0TWVudUV2ZW50KG1vdXNlRXZl
bnQpOworICAgIGZyYW1lLmV2ZW50SGFuZGxlcigpLmhhbmRsZU1vdXNlUHJlc3NFdmVudChtb3Vz
ZUV2ZW50KTsKKyAgICBib29sIGhhbmRsZWQgPSBmcmFtZS5ldmVudEhhbmRsZXIoKS5zZW5kQ29u
dGV4dE1lbnVFdmVudChtb3VzZUV2ZW50KTsKICAgICBpZiAoaGFuZGxlZCkKICAgICAgICAgbV9j
bGllbnQuc2hvd0NvbnRleHRNZW51KCk7CiB9CisKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJ
Q0VfQ09OVFJPTFMpCi12b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0ltYWdlQ29udHJv
bHNNZW51KEV2ZW50KiBldmVudCkKKwordm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dJ
bWFnZUNvbnRyb2xzTWVudShFdmVudCYgZXZlbnQpCiB7CiAgICAgY2xlYXJDb250ZXh0TWVudSgp
OwogICAgIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoZXZlbnQpOwogICAgIG1fY2xpZW50LnNob3dD
b250ZXh0TWVudSgpOwogfQorCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmgKaW5kZXggMTEyNTZlMWNl
NzlhYjFlN2IzMjE1OGY3ODRkYzc4ODEzNjQ3NGQ4ZC4uZjYzOTY0OGIxODYyMDQ2MDZlZmNhNTZh
OTA3ODJjODkzN2EwZTk1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0
TWVudUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29u
dHJvbGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYt
MjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTI5LDIxICsyOSwxNiBAQAogCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVD
b250ZXh0LmgiCiAjaW5jbHVkZSAiQ29udGV4dE1lbnVJdGVtLmgiCi0jaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYv
UmVmUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQ29udGV4dE1lbnU7CiBj
bGFzcyBDb250ZXh0TWVudUNsaWVudDsKLWNsYXNzIENvbnRleHRNZW51SXRlbTsKIGNsYXNzIENv
bnRleHRNZW51UHJvdmlkZXI7CiBjbGFzcyBFdmVudDsKIGNsYXNzIFBhZ2U7CiAKIGNsYXNzIENv
bnRleHRNZW51Q29udHJvbGxlciB7Ci0gICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29udGV4dE1l
bnVDb250cm9sbGVyKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgQ29udGV4dE1lbnVDb250cm9sbGVyKFBhZ2UmLCBD
b250ZXh0TWVudUNsaWVudCYpOwogICAgIH5Db250ZXh0TWVudUNvbnRyb2xsZXIoKTsKQEAgLTU0
LDggKzQ5LDggQEAgcHVibGljOgogICAgIENvbnRleHRNZW51KiBjb250ZXh0TWVudSgpIGNvbnN0
IHsgcmV0dXJuIG1fY29udGV4dE1lbnUuZ2V0KCk7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGNsZWFyQ29udGV4dE1lbnUoKTsKIAotICAgIHZvaWQgaGFuZGxlQ29udGV4dE1lbnVFdmVudChF
dmVudCopOwotICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KEV2ZW50KiwgUGFzc1JlZlB0cjxDb250
ZXh0TWVudVByb3ZpZGVyPik7CisgICAgdm9pZCBoYW5kbGVDb250ZXh0TWVudUV2ZW50KEV2ZW50
Jik7CisgICAgdm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQmLCBDb250ZXh0TWVudVByb3ZpZGVy
Jik7CiAKICAgICB2b2lkIHBvcHVsYXRlKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb250
ZXh0TWVudUl0ZW1TZWxlY3RlZChDb250ZXh0TWVudUFjdGlvbiwgY29uc3QgU3RyaW5nJiB0aXRs
ZSk7CkBAIC02OCwxNiArNjMsMTYgQEAgcHVibGljOgogICAgIGNvbnN0IEhpdFRlc3RSZXN1bHQm
IGhpdFRlc3RSZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuaGl0VGVzdFJlc3VsdCgp
OyB9CiAKICNpZiBVU0UoQUNDRVNTSUJJTElUWV9DT05URVhUX01FTlVTKQotICAgIHZvaWQgc2hv
d0NvbnRleHRNZW51QXQoRnJhbWUqLCBjb25zdCBJbnRQb2ludCYgY2xpY2tQb2ludCk7CisgICAg
dm9pZCBzaG93Q29udGV4dE1lbnVBdChGcmFtZSYsIGNvbnN0IEludFBvaW50JiBjbGlja1BvaW50
KTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfQ09OVFJPTFMpCi0gICAgdm9pZCBzaG93
SW1hZ2VDb250cm9sc01lbnUoRXZlbnQqKTsKKyAgICB2b2lkIHNob3dJbWFnZUNvbnRyb2xzTWVu
dShFdmVudCYpOwogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgc3RkOjp1bmlxdWVfcHRyPENvbnRl
eHRNZW51PiBtYXliZUNyZWF0ZUNvbnRleHRNZW51KEV2ZW50Kik7Ci0gICAgdm9pZCBzaG93Q29u
dGV4dE1lbnUoRXZlbnQqKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGV4dE1lbnU+IG1heWJl
Q3JlYXRlQ29udGV4dE1lbnUoRXZlbnQmKTsKKyAgICB2b2lkIHNob3dDb250ZXh0TWVudShFdmVu
dCYpOwogICAgIAogICAgIHZvaWQgYXBwZW5kSXRlbShDb250ZXh0TWVudUl0ZW0mLCBDb250ZXh0
TWVudSogcGFyZW50TWVudSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
VGltZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKaW5kZXggOGMyNzM4
MWFkNjliYzJlYWI5MjMyZjI4YWE1NzYwNTAzYjZkYjE4ZC4uNmJiODk2MWQ5Y2U4MjhhOTgyNTQy
NTkwMDEyNmY4ZTViZGE3YzM0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01U
aW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01UaW1lci5jcHAKQEAgLTM2MSw3
ICszNjEsNyBAQCB2b2lkIERPTVRpbWVyOjpmaXJlZCgpCiAgICAgICAgIGlmIChXS09ic2VydmVk
Q29udGVudENoYW5nZSgpID09IFdLQ29udGVudFZpc2liaWxpdHlDaGFuZ2UgfHwgc2hvdWxkUmVw
b3J0TGFja09mQ2hhbmdlcykgewogICAgICAgICAgICAgRG9jdW1lbnQmIGRvY3VtZW50ID0gZG93
bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpOwogICAgICAgICAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBk
b2N1bWVudC5wYWdlKCkpCi0gICAgICAgICAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCku
b2JzZXJ2ZWRDb250ZW50Q2hhbmdlKGRvY3VtZW50LmZyYW1lKCkpOworICAgICAgICAgICAgICAg
IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLm9ic2VydmVkQ29udGVudENoYW5nZSgqZG9jdW1lbnQu
ZnJhbWUoKSk7CiAgICAgICAgIH0KICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcAppbmRleCA5Njk5NjUwMzhhMjY1ZGQ3MTgwOGM2YWZkZjBiMjBkZDUyZWI2NGE0Li42MjY5
NjczMDlhNWE3M2EzODczOGMwMTc4ZTJiYzY2MWZiMzBjMjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01X
aW5kb3cuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NywgMjAwOCwgMjAxMCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRp
YXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0yOSw3ICsyOSw2IEBACiAKICNpbmNsdWRl
ICJCYWNrRm9yd2FyZENvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJCYXJQcm9wLmgiCi0jaW5jbHVk
ZSAiQmVmb3JlVW5sb2FkRXZlbnQuaCIKICNpbmNsdWRlICJDU1NDb21wdXRlZFN0eWxlRGVjbGFy
YXRpb24uaCIKICNpbmNsdWRlICJDU1NSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTUnVsZUxpc3QuaCIK
QEAgLTEyNSwyMiArMTI0LDIzIEBACiAjaW5jbHVkZSAiV2ViS2l0TmFtZXNwYWNlLmgiCiAjZW5k
aWYKIAotI2lmIEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQotI2luY2x1ZGUgIkRldmljZVByb3hp
bWl0eUNvbnRyb2xsZXIuaCIKLSNlbmRpZgotCiAjaWYgRU5BQkxFKEdBTUVQQUQpCiAjaW5jbHVk
ZSAiR2FtZXBhZE1hbmFnZXIuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKEdFT0xPQ0FUSU9OKQor
I2luY2x1ZGUgIk5hdmlnYXRvckdlb2xvY2F0aW9uLmgiCisjZW5kaWYKKwogI2lmIEVOQUJMRShQ
T0lOVEVSX0xPQ0spCiAjaW5jbHVkZSAiUG9pbnRlckxvY2tDb250cm9sbGVyLmgiCiAjZW5kaWYK
IAotI2lmIFBMQVRGT1JNKElPUykKLSNpZiBFTkFCTEUoR0VPTE9DQVRJT04pCi0jaW5jbHVkZSAi
TmF2aWdhdG9yR2VvbG9jYXRpb24uaCIKKyNpZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKKyNp
bmNsdWRlICJEZXZpY2VQcm94aW1pdHlDb250cm9sbGVyLmgiCiAjZW5kaWYKKworI2lmIFBMQVRG
T1JNKElPUykKICNpbmNsdWRlICJXS0NvbnRlbnRPYnNlcnZhdGlvbi5oIgogI2VuZGlmCiAKQEAg
LTE1MCw5ICsxNTAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFBvc3RNZXNzYWdl
VGltZXIgOiBwdWJsaWMgVGltZXJCYXNlIHsKIHB1YmxpYzoKLSAgICBQb3N0TWVzc2FnZVRpbWVy
KERPTVdpbmRvdyYgd2luZG93LCBQYXNzUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBzb3VyY2VPcmlnaW4sIERPTVdpbmRvdyYgc291cmNlLCBzdGQ6
OnVuaXF1ZV9wdHI8TWVzc2FnZVBvcnRDaGFubmVsQXJyYXk+IGNoYW5uZWxzLCBSZWZQdHI8U2Vj
dXJpdHlPcmlnaW4+JiYgdGFyZ2V0T3JpZ2luLCBSZWZQdHI8U2NyaXB0Q2FsbFN0YWNrPiYmIHN0
YWNrVHJhY2UpCisgICAgUG9zdE1lc3NhZ2VUaW1lcihET01XaW5kb3cmIHdpbmRvdywgUmVmPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4mJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHNvdXJjZU9yaWdp
biwgRE9NV2luZG93JiBzb3VyY2UsIHN0ZDo6dW5pcXVlX3B0cjxNZXNzYWdlUG9ydENoYW5uZWxB
cnJheT4gY2hhbm5lbHMsIFJlZlB0cjxTZWN1cml0eU9yaWdpbj4mJiB0YXJnZXRPcmlnaW4sIFJl
ZlB0cjxTY3JpcHRDYWxsU3RhY2s+JiYgc3RhY2tUcmFjZSkKICAgICAgICAgOiBtX3dpbmRvdyh3
aW5kb3cpCi0gICAgICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCisgICAgICAgICwgbV9tZXNzYWdl
KFdURk1vdmUobWVzc2FnZSkpCiAgICAgICAgICwgbV9vcmlnaW4oc291cmNlT3JpZ2luKQogICAg
ICAgICAsIG1fc291cmNlKHNvdXJjZSkKICAgICAgICAgLCBtX2NoYW5uZWxzKFdURk1vdmUoY2hh
bm5lbHMpKQpAQCAtMTgxLDcgKzE4MSw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgUmVmPERP
TVdpbmRvdz4gbV93aW5kb3c7Ci0gICAgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4gbV9t
ZXNzYWdlOworICAgIFJlZjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IG1fbWVzc2FnZTsKICAgICBT
dHJpbmcgbV9vcmlnaW47CiAgICAgUmVmPERPTVdpbmRvdz4gbV9zb3VyY2U7CiAgICAgc3RkOjp1
bmlxdWVfcHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbEFycmF5PiBtX2NoYW5uZWxzOwpAQCAtMzI1LDEy
ICszMjUsMTAgQEAgdm9pZCBET01XaW5kb3c6OmRpc3BhdGNoQWxsUGVuZGluZ1VubG9hZEV2ZW50
cygpCiAvLyAzKSBDb25zdHJhaW5zIHRoZSB3aW5kb3cgcmVjdCB0byB3aXRoaW4gdGhlIHRvcCBh
bmQgbGVmdCBib3VuZGFyaWVzIG9mIHRoZSBhdmFpbGFibGUgc2NyZWVuIHJlY3QuCiAvLyA0KSBD
b25zdHJhaW5zIHRoZSB3aW5kb3cgcmVjdCB0byB3aXRoaW4gdGhlIGJvdHRvbSBhbmQgcmlnaHQg
Ym91bmRhcmllcyBvZiB0aGUgYXZhaWxhYmxlIHNjcmVlbiByZWN0LgogLy8gNSkgVHJhbnNsYXRl
IHRoZSB3aW5kb3cgcmVjdCBjb29yZGluYXRlcyB0byBiZSB3aXRoaW4gdGhlIGNvb3JkaW5hdGUg
c3BhY2Ugb2YgdGhlIHNjcmVlbi4KLUZsb2F0UmVjdCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1Jl
Y3QoUGFnZSogcGFnZSwgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcykKK0Zsb2F0UmVj
dCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSYgcGFnZSwgY29uc3QgRmxvYXRSZWN0
JiBwZW5kaW5nQ2hhbmdlcykKIHsKLSAgICBBU1NFUlQocGFnZSk7Ci0KLSAgICBGbG9hdFJlY3Qg
c2NyZWVuID0gc2NyZWVuQXZhaWxhYmxlUmVjdChwYWdlLT5tYWluRnJhbWUoKS52aWV3KCkpOwot
ICAgIEZsb2F0UmVjdCB3aW5kb3cgPSBwYWdlLT5jaHJvbWUoKS53aW5kb3dSZWN0KCk7CisgICAg
RmxvYXRSZWN0IHNjcmVlbiA9IHNjcmVlbkF2YWlsYWJsZVJlY3QocGFnZS5tYWluRnJhbWUoKS52
aWV3KCkpOworICAgIEZsb2F0UmVjdCB3aW5kb3cgPSBwYWdlLmNocm9tZSgpLndpbmRvd1JlY3Qo
KTsKIAogICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSBpbiBhIHZhbGlkIHN0YXRlIGJlZm9yZSBhZGp1
c3RpbmcgZGltZW5zaW9ucy4KICAgICBBU1NFUlQoc3RkOjppc2Zpbml0ZShzY3JlZW4ueCgpKSk7
CkBAIC0zNTIsNyArMzUwLDcgQEAgRmxvYXRSZWN0IERPTVdpbmRvdzo6YWRqdXN0V2luZG93UmVj
dChQYWdlKiBwYWdlLCBjb25zdCBGbG9hdFJlY3QmIHBlbmRpbmdDaGFuZ2UKICAgICBpZiAoIXN0
ZDo6aXNuYW4ocGVuZGluZ0NoYW5nZXMuaGVpZ2h0KCkpKQogICAgICAgICB3aW5kb3cuc2V0SGVp
Z2h0KHBlbmRpbmdDaGFuZ2VzLmhlaWdodCgpKTsKIAotICAgIEZsb2F0U2l6ZSBtaW5pbXVtU2l6
ZSA9IHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLm1pbmltdW1XaW5kb3dTaXplKCk7CisgICAgRmxv
YXRTaXplIG1pbmltdW1TaXplID0gcGFnZS5jaHJvbWUoKS5jbGllbnQoKS5taW5pbXVtV2luZG93
U2l6ZSgpOwogICAgIHdpbmRvdy5zZXRXaWR0aChzdGQ6Om1pbihzdGQ6Om1heChtaW5pbXVtU2l6
ZS53aWR0aCgpLCB3aW5kb3cud2lkdGgoKSksIHNjcmVlbi53aWR0aCgpKSk7CiAgICAgd2luZG93
LnNldEhlaWdodChzdGQ6Om1pbihzdGQ6Om1heChtaW5pbXVtU2l6ZS5oZWlnaHQoKSwgd2luZG93
LmhlaWdodCgpKSwgc2NyZWVuLmhlaWdodCgpKSk7CiAKQEAgLTM2MywzOCArMzYxLDMxIEBAIEZs
b2F0UmVjdCBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoUGFnZSogcGFnZSwgY29uc3QgRmxv
YXRSZWN0JiBwZW5kaW5nQ2hhbmdlCiAgICAgcmV0dXJuIHdpbmRvdzsKIH0KIAotYm9vbCBET01X
aW5kb3c6OmFsbG93UG9wVXAoRnJhbWUqIGZpcnN0RnJhbWUpCitib29sIERPTVdpbmRvdzo6YWxs
b3dQb3BVcChGcmFtZSYgZmlyc3RGcmFtZSkKIHsKLSAgICBBU1NFUlQoZmlyc3RGcmFtZSk7Ci0g
ICAgCi0gICAgYXV0byYgc2V0dGluZ3MgPSBmaXJzdEZyYW1lLT5zZXR0aW5ncygpOwotCi0gICAg
aWYgKFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpIHx8IHNldHRpbmdz
LmFsbG93V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVyZSgpKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLQotICAgIHJldHVybiBzZXR0aW5ncy5qYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0
aWNhbGx5KCk7CisgICAgYXV0byYgc2V0dGluZ3MgPSBmaXJzdEZyYW1lLnNldHRpbmdzKCk7Cisg
ICAgcmV0dXJuIFNjcmlwdENvbnRyb2xsZXI6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpCisgICAg
ICAgIHx8IHNldHRpbmdzLmFsbG93V2luZG93T3BlbldpdGhvdXRVc2VyR2VzdHVyZSgpCisgICAg
ICAgIHx8IHNldHRpbmdzLmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoKTsK
IH0KIAogYm9vbCBET01XaW5kb3c6OmFsbG93UG9wVXAoKQogewotICAgIHJldHVybiBtX2ZyYW1l
ICYmIGFsbG93UG9wVXAobV9mcmFtZSk7CisgICAgcmV0dXJuIG1fZnJhbWUgJiYgYWxsb3dQb3BV
cCgqbV9mcmFtZSk7CiB9CiAKLWJvb2wgRE9NV2luZG93OjpjYW5TaG93TW9kYWxEaWFsb2coY29u
c3QgRnJhbWUqIGZyYW1lKQorYm9vbCBET01XaW5kb3c6OmNhblNob3dNb2RhbERpYWxvZyhjb25z
dCBGcmFtZSYgZnJhbWUpCiB7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCiAgICAgLy8gT3ZlcnJpZGUgc3VwcG9ydCBmb3IgbGF5b3V0IHRlc3RpbmcgcHVycG9zZXMu
Ci0gICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpIHsKKyAgICBpZiAo
YXV0byogZG9jdW1lbnQgPSBmcmFtZS5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChhdXRvKiB3
aW5kb3cgPSBkb2N1bWVudC0+ZG9tV2luZG93KCkpIHsKICAgICAgICAgICAgIGlmICh3aW5kb3ct
Pm1fY2FuU2hvd01vZGFsRGlhbG9nT3ZlcnJpZGUpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHdp
bmRvdy0+bV9jYW5TaG93TW9kYWxEaWFsb2dPdmVycmlkZS52YWx1ZSgpOwogICAgICAgICB9CiAg
ICAgfQogCi0gICAgYXV0byogcGFnZSA9IGZyYW1lLT5wYWdlKCk7Ci0gICAgcmV0dXJuIHBhZ2Ug
PyBwYWdlLT5jaHJvbWUoKS5jYW5SdW5Nb2RhbCgpIDogZmFsc2U7CisgICAgYXV0byogcGFnZSA9
IGZyYW1lLnBhZ2UoKTsKKyAgICByZXR1cm4gcGFnZSAmJiBwYWdlLT5jaHJvbWUoKS5jYW5SdW5N
b2RhbCgpOwogfQogCiBzdGF0aWMgdm9pZCBsYW5ndWFnZXNDaGFuZ2VkQ2FsbGJhY2sodm9pZCog
Y29udGV4dCkKQEAgLTQwNywyMCArMzk4LDE4IEBAIHZvaWQgRE9NV2luZG93OjpzZXRDYW5TaG93
TW9kYWxEaWFsb2dPdmVycmlkZShib29sIGFsbG93KQogICAgIG1fY2FuU2hvd01vZGFsRGlhbG9n
T3ZlcnJpZGUgPSBhbGxvdzsKIH0KIAotRE9NV2luZG93OjpET01XaW5kb3coRG9jdW1lbnQqIGRv
Y3VtZW50KQotICAgIDogQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1lbnQpCi0gICAg
LCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1lbnQtPmZyYW1lKCkpCitET01XaW5kb3c6
OkRPTVdpbmRvdyhEb2N1bWVudCYgZG9jdW1lbnQpCisgICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlcigmZG9jdW1lbnQpCisgICAgLCBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIoZG9jdW1l
bnQuZnJhbWUoKSkKICAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKIHsKICAgICBBU1NFUlQo
ZnJhbWUoKSk7Ci0gICAgQVNTRVJUKERPTVdpbmRvdzo6ZG9jdW1lbnQoKSk7Ci0KICAgICBhZGRM
YW5ndWFnZUNoYW5nZU9ic2VydmVyKHRoaXMsICZsYW5ndWFnZXNDaGFuZ2VkQ2FsbGJhY2spOwog
fQogCi12b2lkIERPTVdpbmRvdzo6ZGlkU2VjdXJlVHJhbnNpdGlvblRvKERvY3VtZW50KiBkb2N1
bWVudCkKK3ZvaWQgRE9NV2luZG93OjpkaWRTZWN1cmVUcmFuc2l0aW9uVG8oRG9jdW1lbnQmIGRv
Y3VtZW50KQogewotICAgIG9ic2VydmVDb250ZXh0KGRvY3VtZW50KTsKKyAgICBvYnNlcnZlQ29u
dGV4dCgmZG9jdW1lbnQpOwogfQogCiBET01XaW5kb3c6On5ET01XaW5kb3coKQpAQCAtNTQ3LDE0
ICs1MzYsMTQgQEAgdm9pZCBET01XaW5kb3c6OmRlY3JlbWVudEdhbWVwYWRFdmVudExpc3RlbmVy
Q291bnQoKQogCiAjZW5kaWYKIAotdm9pZCBET01XaW5kb3c6OnJlZ2lzdGVyUHJvcGVydHkoRE9N
V2luZG93UHJvcGVydHkqIHByb3BlcnR5KQordm9pZCBET01XaW5kb3c6OnJlZ2lzdGVyUHJvcGVy
dHkoRE9NV2luZG93UHJvcGVydHkmIHByb3BlcnR5KQogewotICAgIG1fcHJvcGVydGllcy5hZGQo
cHJvcGVydHkpOworICAgIG1fcHJvcGVydGllcy5hZGQoJnByb3BlcnR5KTsKIH0KIAotdm9pZCBE
T01XaW5kb3c6OnVucmVnaXN0ZXJQcm9wZXJ0eShET01XaW5kb3dQcm9wZXJ0eSogcHJvcGVydHkp
Cit2b2lkIERPTVdpbmRvdzo6dW5yZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3BlcnR5JiBw
cm9wZXJ0eSkKIHsKLSAgICBtX3Byb3BlcnRpZXMucmVtb3ZlKHByb3BlcnR5KTsKKyAgICBtX3By
b3BlcnRpZXMucmVtb3ZlKCZwcm9wZXJ0eSk7CiB9CiAKIHZvaWQgRE9NV2luZG93OjpyZXNldFVu
bGVzc1N1c3BlbmRlZEZvckRvY3VtZW50U3VzcGVuc2lvbigpCkBAIC05NzQsMjMgKzk2MywxOCBA
QCB2b2lkIERPTVdpbmRvdzo6cG9zdE1lc3NhZ2VUaW1lckZpcmVkKFBvc3RNZXNzYWdlVGltZXIm
IHRpbWVyKQogICAgIGlmICghZG9jdW1lbnQoKSB8fCAhaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZy
YW1lKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGRpc3BhdGNoTWVzc2FnZUV2ZW50V2l0aE9y
aWdpbkNoZWNrKHRpbWVyLnRhcmdldE9yaWdpbigpLCB0aW1lci5ldmVudCgqZG9jdW1lbnQoKSks
IHRpbWVyLnN0YWNrVHJhY2UoKSk7Ci19Ci0KLXZvaWQgRE9NV2luZG93OjpkaXNwYXRjaE1lc3Nh
Z2VFdmVudFdpdGhPcmlnaW5DaGVjayhTZWN1cml0eU9yaWdpbiogaW50ZW5kZWRUYXJnZXRPcmln
aW4sIEV2ZW50JiBldmVudCwgUGFzc1JlZlB0cjxTY3JpcHRDYWxsU3RhY2s+IHN0YWNrVHJhY2Up
Ci17Ci0gICAgaWYgKGludGVuZGVkVGFyZ2V0T3JpZ2luKSB7CisgICAgaWYgKGF1dG8qIGludGVu
ZGVkVGFyZ2V0T3JpZ2luID0gdGltZXIudGFyZ2V0T3JpZ2luKCkpIHsKICAgICAgICAgLy8gQ2hl
Y2sgdGFyZ2V0IG9yaWdpbiBub3cgc2luY2UgdGhlIHRhcmdldCBkb2N1bWVudCBtYXkgaGF2ZSBj
aGFuZ2VkIHNpbmNlIHRoZSB0aW1lciB3YXMgc2NoZWR1bGVkLgogICAgICAgICBpZiAoIWludGVu
ZGVkVGFyZ2V0T3JpZ2luLT5pc1NhbWVTY2hlbWVIb3N0UG9ydChkb2N1bWVudCgpLT5zZWN1cml0
eU9yaWdpbigpKSkgewotICAgICAgICAgICAgaWYgKFBhZ2VDb25zb2xlQ2xpZW50KiBwYWdlQ29u
c29sZSA9IGNvbnNvbGUoKSkgeworICAgICAgICAgICAgaWYgKGF1dG8qIHBhZ2VDb25zb2xlID0g
Y29uc29sZSgpKSB7CiAgICAgICAgICAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSBtYWtlU3RyaW5n
KCJVbmFibGUgdG8gcG9zdCBtZXNzYWdlIHRvICIsIGludGVuZGVkVGFyZ2V0T3JpZ2luLT50b1N0
cmluZygpLCAiLiBSZWNpcGllbnQgaGFzIG9yaWdpbiAiLCBkb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpLnRvU3RyaW5nKCksICIuXG4iKTsKLSAgICAgICAgICAgICAgICBwYWdlQ29uc29sZS0+
YWRkTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwg
bWVzc2FnZSwgc3RhY2tUcmFjZSk7CisgICAgICAgICAgICAgICAgcGFnZUNvbnNvbGUtPmFkZE1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3Nh
Z2UsIHRpbWVyLnN0YWNrVHJhY2UoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1
cm47CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBkaXNwYXRjaEV2ZW50KGV2ZW50KTsKKyAgICBk
aXNwYXRjaEV2ZW50KHRpbWVyLmV2ZW50KCpkb2N1bWVudCgpKSk7CiB9CiAKIERPTVNlbGVjdGlv
biogRE9NV2luZG93OjpnZXRTZWxlY3Rpb24oKQpAQCAtMTExMyw3ICsxMDk3LDcgQEAgdm9pZCBE
T01XaW5kb3c6OnByaW50KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX3Nob3VsZFBy
aW50V2hlbkZpbmlzaGVkTG9hZGluZyA9IGZhbHNlOwotICAgIHBhZ2UtPmNocm9tZSgpLnByaW50
KG1fZnJhbWUpOworICAgIHBhZ2UtPmNocm9tZSgpLnByaW50KCptX2ZyYW1lKTsKIH0KIAogdm9p
ZCBET01XaW5kb3c6OnN0b3AoKQpAQCAtMTE0NSw3ICsxMTI5LDcgQEAgdm9pZCBET01XaW5kb3c6
OmFsZXJ0KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICBwYWdlLT5wb2ludGVyTG9ja0NvbnRy
b2xsZXIoKS5yZXF1ZXN0UG9pbnRlclVubG9jaygpOwogI2VuZGlmCiAKLSAgICBwYWdlLT5jaHJv
bWUoKS5ydW5KYXZhU2NyaXB0QWxlcnQobV9mcmFtZSwgbWVzc2FnZSk7CisgICAgcGFnZS0+Y2hy
b21lKCkucnVuSmF2YVNjcmlwdEFsZXJ0KCptX2ZyYW1lLCBtZXNzYWdlKTsKIH0KIAogYm9vbCBE
T01XaW5kb3c6OmNvbmZpcm0oY29uc3QgU3RyaW5nJiBtZXNzYWdlKQpAQCAtMTE2Nyw3ICsxMTUx
LDcgQEAgYm9vbCBET01XaW5kb3c6OmNvbmZpcm0oY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAg
IHBhZ2UtPnBvaW50ZXJMb2NrQ29udHJvbGxlcigpLnJlcXVlc3RQb2ludGVyVW5sb2NrKCk7CiAj
ZW5kaWYKIAotICAgIHJldHVybiBwYWdlLT5jaHJvbWUoKS5ydW5KYXZhU2NyaXB0Q29uZmlybSht
X2ZyYW1lLCBtZXNzYWdlKTsKKyAgICByZXR1cm4gcGFnZS0+Y2hyb21lKCkucnVuSmF2YVNjcmlw
dENvbmZpcm0oKm1fZnJhbWUsIG1lc3NhZ2UpOwogfQogCiBTdHJpbmcgRE9NV2luZG93Ojpwcm9t
cHQoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSkKQEAg
LTExOTAsNyArMTE3NCw3IEBAIFN0cmluZyBET01XaW5kb3c6OnByb21wdChjb25zdCBTdHJpbmcm
IG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlKQogI2VuZGlmCiAKICAgICBTdHJp
bmcgcmV0dXJuVmFsdWU7Ci0gICAgaWYgKHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRQcm9t
cHQobV9mcmFtZSwgbWVzc2FnZSwgZGVmYXVsdFZhbHVlLCByZXR1cm5WYWx1ZSkpCisgICAgaWYg
KHBhZ2UtPmNocm9tZSgpLnJ1bkphdmFTY3JpcHRQcm9tcHQoKm1fZnJhbWUsIG1lc3NhZ2UsIGRl
ZmF1bHRWYWx1ZSwgcmV0dXJuVmFsdWUpKQogICAgICAgICByZXR1cm4gcmV0dXJuVmFsdWU7CiAK
ICAgICByZXR1cm4gU3RyaW5nKCk7CkBAIC0xMzY4LDcgKzEzNTIsNyBAQCB2b2lkIERPTVdpbmRv
dzo6c2V0U3RhdHVzKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgICAgICByZXR1cm47CiAKICAg
ICBBU1NFUlQobV9mcmFtZS0+ZG9jdW1lbnQoKSk7IC8vIENsaWVudCBjYWxscyBzaG91bGRuJ3Qg
YmUgbWFkZSB3aGVuIHRoZSBmcmFtZSBpcyBpbiBpbmNvbnNpc3RlbnQgc3RhdGUuCi0gICAgcGFn
ZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dChtX2ZyYW1lLCBtX3N0YXR1cyk7CisgICAgcGFn
ZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dCgqbV9mcmFtZSwgbV9zdGF0dXMpOwogfSAKICAg
ICAKIHZvaWQgRE9NV2luZG93OjpzZXREZWZhdWx0U3RhdHVzKGNvbnN0IFN0cmluZyYgc3RyaW5n
KSAKQEAgLTEzODMsNyArMTM2Nyw3IEBAIHZvaWQgRE9NV2luZG93OjpzZXREZWZhdWx0U3RhdHVz
KGNvbnN0IFN0cmluZyYgc3RyaW5nKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQobV9m
cmFtZS0+ZG9jdW1lbnQoKSk7IC8vIENsaWVudCBjYWxscyBzaG91bGRuJ3QgYmUgbWFkZSB3aGVu
IHRoZSBmcmFtZSBpcyBpbiBpbmNvbnNpc3RlbnQgc3RhdGUuCi0gICAgcGFnZS0+Y2hyb21lKCku
c2V0U3RhdHVzYmFyVGV4dChtX2ZyYW1lLCBtX2RlZmF1bHRTdGF0dXMpOworICAgIHBhZ2UtPmNo
cm9tZSgpLnNldFN0YXR1c2JhclRleHQoKm1fZnJhbWUsIG1fZGVmYXVsdFN0YXR1cyk7CiB9CiAK
IERPTVdpbmRvdyogRE9NV2luZG93OjpzZWxmKCkgY29uc3QKQEAgLTE0MzIsOCArMTQxNiw3IEBA
IERPTVdpbmRvdyogRE9NV2luZG93Ojp0b3AoKSBjb25zdAogCiBEb2N1bWVudCogRE9NV2luZG93
Ojpkb2N1bWVudCgpIGNvbnN0CiB7Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCA9IENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7
Ci0gICAgcmV0dXJuIGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KTsKKyAgICByZXR1cm4gZG93
bmNhc3Q8RG9jdW1lbnQ+KENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyOjpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpOwogfQogCiBSZWZQdHI8U3R5bGVNZWRpYT4gRE9NV2luZG93OjpzdHlsZU1l
ZGlhKCkgY29uc3QKQEAgLTE2MTgsOCArMTYwMSw3IEBAIHZvaWQgRE9NV2luZG93Ojptb3ZlQnko
ZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKICAgICBGbG9hdFJlY3QgZnIgPSBwYWdlLT5jaHJvbWUo
KS53aW5kb3dSZWN0KCk7CiAgICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOwogICAgIHVwZGF0ZS5t
b3ZlKHgsIHkpOwotICAgIC8vIFNlY3VyaXR5IGNoZWNrICh0aGUgc3BlYyB0YWxrcyBhYm91dCBV
bml2ZXJzYWxCcm93c2VyV3JpdGUgdG8gZGlzYWJsZSB0aGlzIGNoZWNrLi4uKQotICAgIHBhZ2Ut
PmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsK
KyAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2Us
IHVwZGF0ZSkpOwogfQogCiB2b2lkIERPTVdpbmRvdzo6bW92ZVRvKGZsb2F0IHgsIGZsb2F0IHkp
IGNvbnN0CkBAIC0xNjMzLDggKzE2MTUsNyBAQCB2b2lkIERPTVdpbmRvdzo6bW92ZVRvKGZsb2F0
IHgsIGZsb2F0IHkpIGNvbnN0CiAgICAgZnIuc2V0TG9jYXRpb24oc3IubG9jYXRpb24oKSk7CiAg
ICAgRmxvYXRSZWN0IHVwZGF0ZSA9IGZyOwogICAgIHVwZGF0ZS5tb3ZlKHgsIHkpOwotICAgIC8v
IFNlY3VyaXR5IGNoZWNrICh0aGUgc3BlYyB0YWxrcyBhYm91dCBVbml2ZXJzYWxCcm93c2VyV3Jp
dGUgdG8gZGlzYWJsZSB0aGlzIGNoZWNrLi4uKQotICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRv
d1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKKyAgICBwYWdlLT5jaHJvbWUo
KS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHVwZGF0ZSkpOwogfQogCiB2
b2lkIERPTVdpbmRvdzo6cmVzaXplQnkoZmxvYXQgeCwgZmxvYXQgeSkgY29uc3QKQEAgLTE2NDYs
NyArMTYyNyw3IEBAIHZvaWQgRE9NV2luZG93OjpyZXNpemVCeShmbG9hdCB4LCBmbG9hdCB5KSBj
b25zdAogICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNocm9tZSgpLndpbmRvd1JlY3QoKTsKICAg
ICBGbG9hdFNpemUgZGVzdCA9IGZyLnNpemUoKSArIEZsb2F0U2l6ZSh4LCB5KTsKICAgICBGbG9h
dFJlY3QgdXBkYXRlKGZyLmxvY2F0aW9uKCksIGRlc3QpOwotICAgIHBhZ2UtPmNocm9tZSgpLnNl
dFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1cGRhdGUpKTsKKyAgICBwYWdlLT5j
aHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHVwZGF0ZSkpOwog
fQogCiB2b2lkIERPTVdpbmRvdzo6cmVzaXplVG8oZmxvYXQgd2lkdGgsIGZsb2F0IGhlaWdodCkg
Y29uc3QKQEAgLTE2NTgsNyArMTYzOSw3IEBAIHZvaWQgRE9NV2luZG93OjpyZXNpemVUbyhmbG9h
dCB3aWR0aCwgZmxvYXQgaGVpZ2h0KSBjb25zdAogICAgIEZsb2F0UmVjdCBmciA9IHBhZ2UtPmNo
cm9tZSgpLndpbmRvd1JlY3QoKTsKICAgICBGbG9hdFNpemUgZGVzdCA9IEZsb2F0U2l6ZSh3aWR0
aCwgaGVpZ2h0KTsKICAgICBGbG9hdFJlY3QgdXBkYXRlKGZyLmxvY2F0aW9uKCksIGRlc3QpOwot
ICAgIHBhZ2UtPmNocm9tZSgpLnNldFdpbmRvd1JlY3QoYWRqdXN0V2luZG93UmVjdChwYWdlLCB1
cGRhdGUpKTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRXaW5kb3dSZWN0KGFkanVzdFdpbmRvd1Jl
Y3QoKnBhZ2UsIHVwZGF0ZSkpOwogfQogCiBFeGNlcHRpb25PcjxpbnQ+IERPTVdpbmRvdzo6c2V0
VGltZW91dChzdGQ6OnVuaXF1ZV9wdHI8U2NoZWR1bGVkQWN0aW9uPiBhY3Rpb24sIGludCB0aW1l
b3V0KQpAQCAtMTY4MSw3ICsxNjYyLDcgQEAgdm9pZCBET01XaW5kb3c6OmNsZWFyVGltZW91dChp
bnQgdGltZW91dElkKQogCiAgICAgICAgICAgICAgICAgaWYgKCFXZWJUaHJlYWRDb3VudE9mT2Jz
ZXJ2ZWRDb250ZW50TW9kaWZpZXJzKCkpIHsKICAgICAgICAgICAgICAgICAgICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBwYWdlLT5j
aHJvbWUoKS5jbGllbnQoKS5vYnNlcnZlZENvbnRlbnRDaGFuZ2UobV9mcmFtZSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5vYnNlcnZlZENvbnRlbnRD
aGFuZ2UoKm1fZnJhbWUpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KICAgICAg
ICAgfQpAQCAtMTg0MSw3ICsxODIyLDcgQEAgdm9pZCBET01XaW5kb3c6OmluY3JlbWVudFNjcm9s
bEV2ZW50TGlzdGVuZXJzQ291bnQoKQogICAgIGlmICgrK21fc2Nyb2xsRXZlbnRMaXN0ZW5lckNv
dW50ID09IDEgJiYgZG9jdW1lbnQgPT0gJmRvY3VtZW50LT50b3BEb2N1bWVudCgpKSB7CiAgICAg
ICAgIEZyYW1lKiBmcmFtZSA9IHRoaXMtPmZyYW1lKCk7CiAgICAgICAgIGlmIChmcmFtZSAmJiBm
cmFtZS0+cGFnZSgpKQotICAgICAgICAgICAgZnJhbWUtPnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50
KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKGZyYW1lLCB0cnVlKTsKKyAgICAgICAgICAg
IGZyYW1lLT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNldE5lZWRzU2Nyb2xsTm90aWZpY2F0
aW9ucygqZnJhbWUsIHRydWUpOwogICAgIH0KIH0KIApAQCAtMTg1MSw3ICsxODMyLDcgQEAgdm9p
ZCBET01XaW5kb3c6OmRlY3JlbWVudFNjcm9sbEV2ZW50TGlzdGVuZXJzQ291bnQoKQogICAgIGlm
ICghLS1tX3Njcm9sbEV2ZW50TGlzdGVuZXJDb3VudCAmJiBkb2N1bWVudCA9PSAmZG9jdW1lbnQt
PnRvcERvY3VtZW50KCkpIHsKICAgICAgICAgRnJhbWUqIGZyYW1lID0gdGhpcy0+ZnJhbWUoKTsK
ICAgICAgICAgaWYgKGZyYW1lICYmIGZyYW1lLT5wYWdlKCkgJiYgZG9jdW1lbnQtPnBhZ2VDYWNo
ZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKQotICAgICAgICAgICAgZnJhbWUt
PnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKGZy
YW1lLCBmYWxzZSk7CisgICAgICAgICAgICBmcmFtZS0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQo
KS5zZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoKmZyYW1lLCBmYWxzZSk7CiAgICAgfQogfQog
CkBAIC0xODU5LDcgKzE4NDAsNyBAQCB2b2lkIERPTVdpbmRvdzo6ZGVjcmVtZW50U2Nyb2xsRXZl
bnRMaXN0ZW5lcnNDb3VudCgpCiAKIHZvaWQgRE9NV2luZG93OjpyZXNldEFsbEdlb2xvY2F0aW9u
UGVybWlzc2lvbigpCiB7Ci0gICAgLy8gRklYTUU6IFJlbW92ZSBQTEFURk9STShJT1MpLWd1YXJk
IG9uY2Ugd2UgdXBzdHJlYW0gdGhlIGlPUyBjaGFuZ2VzIHRvIEdlb2xvY2F0aW9uLmNwcC4KKyAg
ICAvLyBGSVhNRTogQ2FuIHdlIHJlbW92ZSB0aGUgUExBVEZPUk0oSU9TKS1ndWFyZD8KICNpZiBF
TkFCTEUoR0VPTE9DQVRJT04pICYmIFBMQVRGT1JNKElPUykKICAgICBpZiAobV9uYXZpZ2F0b3Ip
CiAgICAgICAgIE5hdmlnYXRvckdlb2xvY2F0aW9uOjpmcm9tKG1fbmF2aWdhdG9yLmdldCgpKS0+
cmVzZXRBbGxHZW9sb2NhdGlvblBlcm1pc3Npb24oKTsKQEAgLTIyODcsOCArMjI2OCw3IEBAIHZv
aWQgRE9NV2luZG93OjpzaG93TW9kYWxEaWFsb2coY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNv
bnN0IFN0cmluZyYgZGlhbG9nRmVhCiB7CiAgICAgaWYgKCFpc0N1cnJlbnRseURpc3BsYXllZElu
RnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwotICAgIEZyYW1lKiBhY3RpdmVGcmFtZSA9IGFjdGl2
ZVdpbmRvdy5mcmFtZSgpOwotICAgIGlmICghYWN0aXZlRnJhbWUpCisgICAgaWYgKCFhY3RpdmVX
aW5kb3cuZnJhbWUoKSkKICAgICAgICAgcmV0dXJuOwogICAgIEZyYW1lKiBmaXJzdEZyYW1lID0g
Zmlyc3RXaW5kb3cuZnJhbWUoKTsKICAgICBpZiAoIWZpcnN0RnJhbWUpCkBAIC0yMzAzLDcgKzIy
ODMsNyBAQCB2b2lkIERPTVdpbmRvdzo6c2hvd01vZGFsRGlhbG9nKGNvbnN0IFN0cmluZyYgdXJs
U3RyaW5nLCBjb25zdCBTdHJpbmcmIGRpYWxvZ0ZlYQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgaWYgKCFjYW5TaG93TW9kYWxEaWFsb2cobV9mcmFtZSkgfHwgIWZpcnN0V2luZG93LmFs
bG93UG9wVXAoKSkKKyAgICBpZiAoIWNhblNob3dNb2RhbERpYWxvZygqbV9mcmFtZSkgfHwgIWZp
cnN0V2luZG93LmFsbG93UG9wVXAoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVmUHRyPEZy
YW1lPiBkaWFsb2dGcmFtZSA9IGNyZWF0ZVdpbmRvdyh1cmxTdHJpbmcsIGVtcHR5QXRvbSwgcGFy
c2VEaWFsb2dGZWF0dXJlcyhkaWFsb2dGZWF0dXJlc1N0cmluZywgc2NyZWVuQXZhaWxhYmxlUmVj
dChtX2ZyYW1lLT52aWV3KCkpKSwgYWN0aXZlV2luZG93LCAqZmlyc3RGcmFtZSwgKm1fZnJhbWUs
IFdURk1vdmUocHJlcGFyZURpYWxvZ0Z1bmN0aW9uKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0RPTVdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaApp
bmRleCBjNWU5MDI4OTg4NmQ3MmFhODg2YzQ5YWRiOTQ3OTVkMzc3MDU5YjMxLi5lMDA3MDE2ZTVk
ODY3YTIwNTc5ZmE0MDE4MzMyYmI1ZGYxYWUxZWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA5LCAy
MDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAw
Ni0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykg
MjAxMCBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKQEAgLTMzLDIzICszMywxNCBAQAogI2luY2x1ZGUgIkZyYW1lRGVzdHJ1Y3Rp
b25PYnNlcnZlci5oIgogI2luY2x1ZGUgIlNjcm9sbFRvT3B0aW9ucy5oIgogI2luY2x1ZGUgIlN1
cHBsZW1lbnRhYmxlLmgiCi0jaW5jbHVkZSAiVVJMLmgiCi0jaW5jbHVkZSA8ZnVuY3Rpb25hbD4K
LSNpbmNsdWRlIDxtZW1vcnk+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvSGFzaFNldC5oPgotI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9X
ZWFrUHRyLmg+CiAKLW5hbWVzcGFjZSBJbnNwZWN0b3IgewotY2xhc3MgU2NyaXB0Q2FsbFN0YWNr
OwotfQotCiBuYW1lc3BhY2UgSlNDIHsKIGNsYXNzIEV4ZWNTdGF0ZTsKIGNsYXNzIEpTT2JqZWN0
OwogY2xhc3MgSlNWYWx1ZTsKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IGNsYXNzIFN0cm9uZzsKK3Rl
bXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBTdHJvbmc7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
QEAgLTYxLDIyICs1MiwxNSBAQCBjbGFzcyBDcnlwdG87CiBjbGFzcyBDdXN0b21FbGVtZW50UmVn
aXN0cnk7CiBjbGFzcyBET01BcHBsaWNhdGlvbkNhY2hlOwogY2xhc3MgRE9NU2VsZWN0aW9uOwot
Y2xhc3MgRE9NVVJMOwogY2xhc3MgRE9NV2luZG93UHJvcGVydHk7CiBjbGFzcyBET01XcmFwcGVy
V29ybGQ7Ci1jbGFzcyBEYXRhYmFzZTsKLWNsYXNzIERhdGFiYXNlQ2FsbGJhY2s7CiBjbGFzcyBE
b2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBFdmVudExpc3RlbmVyOwogY2xhc3MgRmxv
YXRSZWN0OwotY2xhc3MgRnJhbWU7CiBjbGFzcyBIaXN0b3J5OwotY2xhc3MgSURCRmFjdG9yeTsK
IGNsYXNzIExvY2F0aW9uOwogY2xhc3MgTWVkaWFRdWVyeUxpc3Q7Ci1jbGFzcyBNZXNzYWdlRXZl
bnQ7Ci1jbGFzcyBNZXNzYWdlUG9ydDsKIGNsYXNzIE5hdmlnYXRvcjsKIGNsYXNzIE5vZGU7CiBj
bGFzcyBOb2RlTGlzdDsKQEAgLTg3LDggKzcxLDYgQEAgY2xhc3MgUG9zdE1lc3NhZ2VUaW1lcjsK
IGNsYXNzIFJlcXVlc3RBbmltYXRpb25GcmFtZUNhbGxiYWNrOwogY2xhc3MgU2NoZWR1bGVkQWN0
aW9uOwogY2xhc3MgU2NyZWVuOwotY2xhc3MgU2VjdXJpdHlPcmlnaW47Ci1jbGFzcyBTZXJpYWxp
emVkU2NyaXB0VmFsdWU7CiBjbGFzcyBTdG9yYWdlOwogY2xhc3MgU3R5bGVNZWRpYTsKIGNsYXNz
IFdlYktpdE5hbWVzcGFjZTsKQEAgLTEwNyw3ICs4OSw3IEBAIGNsYXNzIERPTVdpbmRvdyBmaW5h
bAogICAgICwgcHVibGljIEJhc2U2NFV0aWxpdGllcwogICAgICwgcHVibGljIFN1cHBsZW1lbnRh
YmxlPERPTVdpbmRvdz4gewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RE9NV2luZG93PiBjcmVh
dGUoRG9jdW1lbnQqIGRvY3VtZW50KSB7IHJldHVybiBhZG9wdFJlZigqbmV3IERPTVdpbmRvdyhk
b2N1bWVudCkpOyB9CisgICAgc3RhdGljIFJlZjxET01XaW5kb3c+IGNyZWF0ZShEb2N1bWVudCYg
ZG9jdW1lbnQpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRE9NV2luZG93KGRvY3VtZW50KSk7IH0K
ICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIH5ET01XaW5kb3coKTsKIAogICAgIC8vIEluIHNv
bWUgcmFyZSBjYXNlcywgd2UnbGwgcmV1c2UgYSBET01XaW5kb3cgZm9yIGEgbmV3IERvY3VtZW50
LiBGb3IgZXhhbXBsZSwKQEAgLTExNywxNSArOTksMTAgQEAgcHVibGljOgogICAgIC8vIHdvbid0
IGJlIGJsb3duIGF3YXkgd2hlbiB0aGUgbmV0d29yayBsb2FkIGNvbW1pdHMuIFRvIG1ha2UgdGhh
dCBoYXBwZW4sIHdlCiAgICAgLy8gInNlY3VyZWx5IHRyYW5zaXRpb24iIHRoZSBleGlzdGluZyBE
T01XaW5kb3cgdG8gdGhlIERvY3VtZW50IHRoYXQgcmVzdWx0cyBmcm9tCiAgICAgLy8gdGhlIG5l
dHdvcmsgbG9hZC4gU2VlIGFsc28gU2VjdXJpdHlDb250ZXh0Ojppc1NlY3VyZVRyYW5zaXRpb25U
by4KLSAgICB2b2lkIGRpZFNlY3VyZVRyYW5zaXRpb25UbyhEb2N1bWVudCopOwotCi0gICAgRXZl
bnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBET01XaW5kb3dFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KLSAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKTsgfQotCi0gICAgRE9NV2luZG93KiB0b0RPTVdpbmRvdygpIG92ZXJyaWRlOworICAgIHZv
aWQgZGlkU2VjdXJlVHJhbnNpdGlvblRvKERvY3VtZW50Jik7CiAKLSAgICB2b2lkIHJlZ2lzdGVy
UHJvcGVydHkoRE9NV2luZG93UHJvcGVydHkqKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJQcm9wZXJ0
eShET01XaW5kb3dQcm9wZXJ0eSopOworICAgIHZvaWQgcmVnaXN0ZXJQcm9wZXJ0eShET01XaW5k
b3dQcm9wZXJ0eSYpOworICAgIHZvaWQgdW5yZWdpc3RlclByb3BlcnR5KERPTVdpbmRvd1Byb3Bl
cnR5Jik7CiAKICAgICB2b2lkIHJlc2V0VW5sZXNzU3VzcGVuZGVkRm9yRG9jdW1lbnRTdXNwZW5z
aW9uKCk7CiAgICAgdm9pZCBzdXNwZW5kRm9yRG9jdW1lbnRTdXNwZW5zaW9uKCk7CkBAIC0xMzgs
MTEgKzExNSwxMSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIGJvb2wgZGlz
cGF0Y2hBbGxQZW5kaW5nQmVmb3JlVW5sb2FkRXZlbnRzKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIHZvaWQgZGlzcGF0Y2hBbGxQZW5kaW5nVW5sb2FkRXZlbnRzKCk7CiAKLSAgICBzdGF0
aWMgRmxvYXRSZWN0IGFkanVzdFdpbmRvd1JlY3QoUGFnZSosIGNvbnN0IEZsb2F0UmVjdCYgcGVu
ZGluZ0NoYW5nZXMpOworICAgIHN0YXRpYyBGbG9hdFJlY3QgYWRqdXN0V2luZG93UmVjdChQYWdl
JiwgY29uc3QgRmxvYXRSZWN0JiBwZW5kaW5nQ2hhbmdlcyk7CiAKICAgICBib29sIGFsbG93UG9w
VXAoKTsgLy8gQ2FsbCBvbiBmaXJzdCB3aW5kb3csIG5vdCB0YXJnZXQgd2luZG93LgotICAgIHN0
YXRpYyBib29sIGFsbG93UG9wVXAoRnJhbWUqIGZpcnN0RnJhbWUpOwotICAgIHN0YXRpYyBib29s
IGNhblNob3dNb2RhbERpYWxvZyhjb25zdCBGcmFtZSopOworICAgIHN0YXRpYyBib29sIGFsbG93
UG9wVXAoRnJhbWUmIGZpcnN0RnJhbWUpOworICAgIHN0YXRpYyBib29sIGNhblNob3dNb2RhbERp
YWxvZyhjb25zdCBGcmFtZSYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Q2FuU2hvd01v
ZGFsRGlhbG9nT3ZlcnJpZGUoYm9vbCk7CiAKICAgICBTY3JlZW4qIHNjcmVlbigpIGNvbnN0OwpA
QCAtMjQ1LDcgKzIyMiw2IEBAIHB1YmxpYzoKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHBvc3RN
ZXNzYWdlKEpTQzo6RXhlY1N0YXRlJiwgRE9NV2luZG93JiBjYWxsZXJXaW5kb3csIEpTQzo6SlNW
YWx1ZSBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIHRhcmdldE9yaWdpbiwgVmVjdG9yPEpTQzo6U3Ry
b25nPEpTQzo6SlNPYmplY3Q+PiYmKTsKICAgICB2b2lkIHBvc3RNZXNzYWdlVGltZXJGaXJlZChQ
b3N0TWVzc2FnZVRpbWVyJik7Ci0gICAgdm9pZCBkaXNwYXRjaE1lc3NhZ2VFdmVudFdpdGhPcmln
aW5DaGVjayhTZWN1cml0eU9yaWdpbiogaW50ZW5kZWRUYXJnZXRPcmlnaW4sIEV2ZW50JiwgUGFz
c1JlZlB0cjxJbnNwZWN0b3I6OlNjcmlwdENhbGxTdGFjaz4pOwogCiAgICAgdm9pZCBsYW5ndWFn
ZXNDaGFuZ2VkKCk7CiAKQEAgLTI3Miw5ICsyNDgsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBFdmVu
dHMKICAgICAvLyBFdmVudFRhcmdldCBBUEkKLSAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBB
ZGRFdmVudExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIGJvb2wgcmVtb3ZlRXZlbnRM
aXN0ZW5lcihjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGNv
bnN0IExpc3RlbmVyT3B0aW9ucyYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlQWxsRXZlbnRM
aXN0ZW5lcnMoKSBvdmVycmlkZTsKKyAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25zdCBBZGRFdmVu
dExpc3RlbmVyT3B0aW9ucyYpIGZpbmFsOworICAgIGJvb2wgcmVtb3ZlRXZlbnRMaXN0ZW5lcihj
b25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciYsIGNvbnN0IExpc3Rl
bmVyT3B0aW9ucyYpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnMoKSBm
aW5hbDsKIAogICAgIHVzaW5nIEV2ZW50VGFyZ2V0OjpkaXNwYXRjaEV2ZW50OwogICAgIGJvb2wg
ZGlzcGF0Y2hFdmVudChFdmVudCYsIEV2ZW50VGFyZ2V0Kik7CkBAIC0yODYsOCArMjYyLDggQEAg
cHVibGljOgogCiAgICAgdm9pZCBmaW5pc2hlZExvYWRpbmcoKTsKIAotICAgIHVzaW5nIFJlZkNv
dW50ZWQ8RE9NV2luZG93Pjo6cmVmOwotICAgIHVzaW5nIFJlZkNvdW50ZWQ8RE9NV2luZG93Pjo6
ZGVyZWY7CisgICAgdXNpbmcgUmVmQ291bnRlZDo6cmVmOworICAgIHVzaW5nIFJlZkNvdW50ZWQ6
OmRlcmVmOwogCiAgICAgLy8gSFRNTCA1IGtleS92YWx1ZSBzdG9yYWdlCiAgICAgRXhjZXB0aW9u
T3I8U3RvcmFnZSo+IHNlc3Npb25TdG9yYWdlKCkgY29uc3Q7CkBAIC0zMTMsNiArMjg5LDcgQEAg
cHVibGljOgogI2lmIEVOQUJMRShXRUJfVElNSU5HKQogICAgIFBlcmZvcm1hbmNlKiBwZXJmb3Jt
YW5jZSgpIGNvbnN0OwogI2VuZGlmCisKICAgICBkb3VibGUgbm93VGltZXN0YW1wKCkgY29uc3Q7
CiAKICNpZiBQTEFURk9STShJT1MpCkBAIC0zNDcsMTYgKzMyNCwyMSBAQCBwdWJsaWM6CiAgICAg
V2Vha1B0cjxET01XaW5kb3c+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0
b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IERPTVdpbmRv
dyhEb2N1bWVudCopOworICAgIGV4cGxpY2l0IERPTVdpbmRvdyhEb2N1bWVudCYpOworCisgICAg
RXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBET01XaW5kb3dFdmVudFRhcmdldEludGVyZmFjZVR5cGU7IH0KKyAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXI6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsgfQorCisgICAgRE9NV2luZG93KiB0b0RPTVdpbmRvdygpIGZpbmFsOwogCiAgICAgUGFnZSog
cGFnZSgpOwogICAgIGJvb2wgYWxsb3dlZFRvQ2hhbmdlV2luZG93R2VvbWV0cnkoKSBjb25zdDsK
IAotICAgIHZvaWQgZnJhbWVEZXN0cm95ZWQoKSBvdmVycmlkZTsKLSAgICB2b2lkIHdpbGxEZXRh
Y2hQYWdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBmcmFtZURlc3Ryb3llZCgpIGZpbmFsOworICAg
IHZvaWQgd2lsbERldGFjaFBhZ2UoKSBmaW5hbDsKIAotICAgIHZvaWQgcmVmRXZlbnRUYXJnZXQo
KSBvdmVycmlkZSB7IHJlZigpOyB9Ci0gICAgdm9pZCBkZXJlZkV2ZW50VGFyZ2V0KCkgb3ZlcnJp
ZGUgeyBkZXJlZigpOyB9CisgICAgdm9pZCByZWZFdmVudFRhcmdldCgpIGZpbmFsIHsgcmVmKCk7
IH0KKyAgICB2b2lkIGRlcmVmRXZlbnRUYXJnZXQoKSBmaW5hbCB7IGRlcmVmKCk7IH0KIAogICAg
IHN0YXRpYyBSZWZQdHI8RnJhbWU+IGNyZWF0ZVdpbmRvdyhjb25zdCBTdHJpbmcmIHVybFN0cmlu
ZywgY29uc3QgQXRvbWljU3RyaW5nJiBmcmFtZU5hbWUsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiwg
RE9NV2luZG93JiBhY3RpdmVXaW5kb3csIEZyYW1lJiBmaXJzdEZyYW1lLCBGcmFtZSYgb3BlbmVy
RnJhbWUsIHN0ZDo6ZnVuY3Rpb248dm9pZChET01XaW5kb3cmKT4gcHJlcGFyZURpYWxvZ0Z1bmN0
aW9uID0gbnVsbHB0cik7CiAgICAgYm9vbCBpc0luc2VjdXJlU2NyaXB0QWNjZXNzKERPTVdpbmRv
dyYgYWN0aXZlV2luZG93LCBjb25zdCBTdHJpbmcmIHVybFN0cmluZyk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvd1Byb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCmluZGV4IGEzNzcwZThlNzAwYzY1ODI2MjZjNjRi
OTg1ZmRlYzZmYzA3ZjMzZjUuLjU1MDk2YjY0YWFhN2YyNDkzMWEyYzcxOWE3ZTVjNjA5ZWQ1MGY4
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93UHJvcGVydHkuY3BwCkBAIC00Miwx
NCArNDIsMTQgQEAgRE9NV2luZG93UHJvcGVydHk6OkRPTVdpbmRvd1Byb3BlcnR5KEZyYW1lKiBm
cmFtZSkKICAgICAvLyBXZSBzaG91bGQgZml4IHRoYXQuICA8cmRhcjovL3Byb2JsZW0vMTE1Njcx
MzI+CiAgICAgaWYgKG1fZnJhbWUpIHsKICAgICAgICAgbV9hc3NvY2lhdGVkRE9NV2luZG93ID0g
bV9mcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCk7Ci0gICAgICAgIG1fYXNzb2NpYXRlZERP
TVdpbmRvdy0+cmVnaXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAgICAgICAgbV9hc3NvY2lhdGVkRE9N
V2luZG93LT5yZWdpc3RlclByb3BlcnR5KCp0aGlzKTsKICAgICB9CiB9CiAKIERPTVdpbmRvd1By
b3BlcnR5Ojp+RE9NV2luZG93UHJvcGVydHkoKQogewogICAgIGlmIChtX2Fzc29jaWF0ZWRET01X
aW5kb3cpCi0gICAgICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+dW5yZWdpc3RlclByb3BlcnR5
KHRoaXMpOworICAgICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3ctPnVucmVnaXN0ZXJQcm9wZXJ0
eSgqdGhpcyk7CiAKICAgICBtX2Fzc29jaWF0ZWRET01XaW5kb3cgPSBudWxscHRyOwogICAgIG1f
ZnJhbWUgPSBudWxscHRyOwpAQCAtODYsNyArODYsNyBAQCB2b2lkIERPTVdpbmRvd1Byb3BlcnR5
Ojp3aWxsRGVzdHJveUdsb2JhbE9iamVjdEluQ2FjaGVkRnJhbWUoKQogICAgIC8vIERPTVdpbmRv
d1Byb3BlcnR5IGxpZmV0aW1lIGlzbid0IHRpZWQgZGlyZWN0bHkgdG8gdGhlIERPTVdpbmRvdyBp
dHNlbGYgc28gaXQgaXMgaW1wb3J0YW50IHRoYXQgaXQgdW5yZWdpc3RlcgogICAgIC8vIGl0c2Vs
ZiBmcm9tIGFueSBET01XaW5kb3cgaXQgaXMgYXNzb2NpYXRlZCB3aXRoIGlmIHRoYXQgRE9NV2lu
ZG93IGlzIGdvaW5nIGF3YXkuCiAgICAgaWYgKG1fYXNzb2NpYXRlZERPTVdpbmRvdykKLSAgICAg
ICAgbV9hc3NvY2lhdGVkRE9NV2luZG93LT51bnJlZ2lzdGVyUHJvcGVydHkodGhpcyk7CisgICAg
ICAgIG1fYXNzb2NpYXRlZERPTVdpbmRvdy0+dW5yZWdpc3RlclByb3BlcnR5KCp0aGlzKTsKICAg
ICBtX2Fzc29jaWF0ZWRET01XaW5kb3cgPSBudWxscHRyOwogICAgIG1fZnJhbWUgPSBudWxscHRy
OwogfQpAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgRE9NV2luZG93UHJvcGVydHk6OndpbGxEZXN0
cm95R2xvYmFsT2JqZWN0SW5GcmFtZSgpCiAgICAgLy8gRE9NV2luZG93UHJvcGVydHkgbGlmZXRp
bWUgaXNuJ3QgdGllZCBkaXJlY3RseSB0byB0aGUgRE9NV2luZG93IGl0c2VsZiBzbyBpdCBpcyBp
bXBvcnRhbnQgdGhhdCBpdCB1bnJlZ2lzdGVyCiAgICAgLy8gaXRzZWxmIGZyb20gYW55IERPTVdp
bmRvdyBpdCBpcyBhc3NvY2lhdGVkIHdpdGggaWYgdGhhdCBET01XaW5kb3cgaXMgZ29pbmcgYXdh
eS4KICAgICBpZiAobV9hc3NvY2lhdGVkRE9NV2luZG93KQotICAgICAgICBtX2Fzc29jaWF0ZWRE
T01XaW5kb3ctPnVucmVnaXN0ZXJQcm9wZXJ0eSh0aGlzKTsKKyAgICAgICAgbV9hc3NvY2lhdGVk
RE9NV2luZG93LT51bnJlZ2lzdGVyUHJvcGVydHkoKnRoaXMpOwogICAgIG1fYXNzb2NpYXRlZERP
TVdpbmRvdyA9IG51bGxwdHI7CiAgICAgbV9mcmFtZSA9IG51bGxwdHI7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RlYnVnUGFnZU92ZXJsYXlzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCmluZGV4IGNhYTA3YTQ3YmVlOGYxOWNlZTM0
NGVmYTU3NmY1MGVkNDUxNDczZWEuLmFmMDgwMmJjOGJlODAzODFkMTMzMDUzZjc3OGZjM2E3NjM2
NDNlNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRGVidWdQYWdlT3ZlcmxheXMuY3BwCkBAIC00
NCw3ICs0NCw3IEBAIERlYnVnUGFnZU92ZXJsYXlzKiBEZWJ1Z1BhZ2VPdmVybGF5czo6c2hhcmVk
RGVidWdPdmVybGF5czsKIAogY2xhc3MgUmVnaW9uT3ZlcmxheSA6IHB1YmxpYyBSZWZDb3VudGVk
PFJlZ2lvbk92ZXJsYXk+LCBwdWJsaWMgUGFnZU92ZXJsYXk6OkNsaWVudCB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIFBhc3NSZWZQdHI8UmVnaW9uT3ZlcmxheT4gY3JlYXRlKE1haW5GcmFtZSYsIERl
YnVnUGFnZU92ZXJsYXlzOjpSZWdpb25UeXBlKTsKKyAgICBzdGF0aWMgUmVmUHRyPFJlZ2lvbk92
ZXJsYXk+IGNyZWF0ZShNYWluRnJhbWUmLCBEZWJ1Z1BhZ2VPdmVybGF5czo6UmVnaW9uVHlwZSk7
CiAgICAgdmlydHVhbCB+UmVnaW9uT3ZlcmxheSgpOwogCiAgICAgdm9pZCByZWNvbXB1dGVSZWdp
b24oKTsKQEAgLTE0Myw3ICsxNDMsNyBAQCBib29sIE5vbkZhc3RTY3JvbGxhYmxlUmVnaW9uT3Zl
cmxheTo6dXBkYXRlUmVnaW9uKCkKICAgICByZXR1cm4gcmVnaW9uQ2hhbmdlZDsKIH0KIAotUGFz
c1JlZlB0cjxSZWdpb25PdmVybGF5PiBSZWdpb25PdmVybGF5OjpjcmVhdGUoTWFpbkZyYW1lJiBm
cmFtZSwgRGVidWdQYWdlT3ZlcmxheXM6OlJlZ2lvblR5cGUgcmVnaW9uVHlwZSkKK1JlZlB0cjxS
ZWdpb25PdmVybGF5PiBSZWdpb25PdmVybGF5OjpjcmVhdGUoTWFpbkZyYW1lJiBmcmFtZSwgRGVi
dWdQYWdlT3ZlcmxheXM6OlJlZ2lvblR5cGUgcmVnaW9uVHlwZSkKIHsKICAgICBzd2l0Y2ggKHJl
Z2lvblR5cGUpIHsKICAgICBjYXNlIERlYnVnUGFnZU92ZXJsYXlzOjpSZWdpb25UeXBlOjpXaGVl
bEV2ZW50SGFuZGxlcnM6CkBAIC0xNjUsNyArMTY1LDcgQEAgUmVnaW9uT3ZlcmxheTo6UmVnaW9u
T3ZlcmxheShNYWluRnJhbWUmIGZyYW1lLCBDb2xvciByZWdpb25Db2xvcikKIFJlZ2lvbk92ZXJs
YXk6On5SZWdpb25PdmVybGF5KCkKIHsKICAgICBpZiAobV9vdmVybGF5KQotICAgICAgICBtX2Zy
YW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fb3Zlcmxh
eS5nZXQoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgICAgICBtX2Zy
YW1lLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX292ZXJs
YXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIH0KIAogdm9pZCBSZWdpb25P
dmVybGF5Ojp3aWxsTW92ZVRvUGFnZShQYWdlT3ZlcmxheSYsIFBhZ2UqIHBhZ2UpCkBAIC0yNDgs
NyArMjQ4LDcgQEAgUmVnaW9uT3ZlcmxheSYgRGVidWdQYWdlT3ZlcmxheXM6OmVuc3VyZVJlZ2lv
bk92ZXJsYXlGb3JGcmFtZShNYWluRnJhbWUmIGZyYW1lLAogdm9pZCBEZWJ1Z1BhZ2VPdmVybGF5
czo6c2hvd1JlZ2lvbk92ZXJsYXkoTWFpbkZyYW1lJiBmcmFtZSwgUmVnaW9uVHlwZSByZWdpb25U
eXBlKQogewogICAgIFJlZ2lvbk92ZXJsYXkmIHZpc3VhbGl6ZXIgPSBlbnN1cmVSZWdpb25PdmVy
bGF5Rm9yRnJhbWUoZnJhbWUsIHJlZ2lvblR5cGUpOwotICAgIGZyYW1lLnBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSgmdmlzdWFsaXplci5vdmVybGF5KCksIFBhZ2VP
dmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICBmcmFtZS5wYWdlT3ZlcmxheUNvbnRy
b2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkodmlzdWFsaXplci5vdmVybGF5KCksIFBhZ2VPdmVy
bGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIH0KIAogdm9pZCBEZWJ1Z1BhZ2VPdmVybGF5czo6
aGlkZVJlZ2lvbk92ZXJsYXkoTWFpbkZyYW1lJiBmcmFtZSwgUmVnaW9uVHlwZSByZWdpb25UeXBl
KQpAQCAtMjU3LDcgKzI1Nyw3IEBAIHZvaWQgRGVidWdQYWdlT3ZlcmxheXM6OmhpZGVSZWdpb25P
dmVybGF5KE1haW5GcmFtZSYgZnJhbWUsIFJlZ2lvblR5cGUgcmVnaW9uVHlwCiAgICAgaWYgKGl0
ICE9IG1fZnJhbWVSZWdpb25PdmVybGF5cy5lbmQoKSkgewogICAgICAgICBhdXRvJiB2aXN1YWxp
emVycyA9IGl0LT52YWx1ZTsKICAgICAgICAgaWYgKFJlZ2lvbk92ZXJsYXkqIHZpc3VhbGl6ZXIg
PSB2aXN1YWxpemVyc1tpbmRleE9mKHJlZ2lvblR5cGUpXS5nZXQoKSkgewotICAgICAgICAgICAg
ZnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoJnZpc3Vh
bGl6ZXItPm92ZXJsYXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAg
ICAgICAgICAgZnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJs
YXkodmlzdWFsaXplci0+b3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFk
ZSk7CiAgICAgICAgICAgICB2aXN1YWxpemVyc1tpbmRleE9mKHJlZ2lvblR5cGUpXSA9IG51bGxw
dHI7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Ry
YWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3Bw
CmluZGV4IGYyMzE4YTAzYzE0YmQxZGY4MjMyMGNjMDdjNzg5OWIyOTQyN2M2NDYuLmRmNmNmZTA0
YzI3YTNmOTg0MDIyMTlhNjZjODgyYjNkNDNiNmZlNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6
ZHJhZ0V4aXRlZChjb25zdCBEcmFnRGF0YSYgZHJhZ0RhdGEpCiAjZW5kaWYKICAgICAgICAgUmVm
UHRyPERhdGFUcmFuc2Zlcj4gZGF0YVRyYW5zZmVyID0gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JE
cmFnQW5kRHJvcChwb2xpY3ksIGRyYWdEYXRhKTsKICAgICAgICAgZGF0YVRyYW5zZmVyLT5zZXRT
b3VyY2VPcGVyYXRpb24oZHJhZ0RhdGEuZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrKCkpOwot
ICAgICAgICBtX3BhZ2UubWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuY2FuY2VsRHJhZ0FuZERy
b3AoY3JlYXRlTW91c2VFdmVudChkcmFnRGF0YSksIGRhdGFUcmFuc2Zlci5nZXQoKSk7CisgICAg
ICAgIG1fcGFnZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5jYW5jZWxEcmFnQW5kRHJvcChj
cmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKSwgKmRhdGFUcmFuc2Zlcik7CiAgICAgICAgIGRhdGFU
cmFuc2Zlci0+c2V0QWNjZXNzUG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7
IC8vIEludmFsaWRhdGUgZGF0YVRyYW5zZmVyIGhlcmUgZm9yIHNlY3VyaXR5LgogICAgIH0KICAg
ICBtb3VzZU1vdmVkSW50b0RvY3VtZW50KG51bGxwdHIpOwpAQCAtMjI3LDcgKzIyNyw3IEBAIGJv
b2wgRHJhZ0NvbnRyb2xsZXI6OnBlcmZvcm1EcmFnT3BlcmF0aW9uKGNvbnN0IERyYWdEYXRhJiBk
cmFnRGF0YSkKICAgICAgICAgICAgIC8vIFNlbmRpbmcgYW4gZXZlbnQgY2FuIHJlc3VsdCBpbiB0
aGUgZGVzdHJ1Y3Rpb24gb2YgdGhlIHZpZXcgYW5kIHBhcnQuCiAgICAgICAgICAgICBSZWZQdHI8
RGF0YVRyYW5zZmVyPiBkYXRhVHJhbnNmZXIgPSBEYXRhVHJhbnNmZXI6OmNyZWF0ZUZvckRyYWdB
bmREcm9wKERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6UmVhZGFibGUsIGRyYWdEYXRhKTsKICAg
ICAgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0U291cmNlT3BlcmF0aW9uKGRyYWdEYXRhLmRyYWdn
aW5nU291cmNlT3BlcmF0aW9uTWFzaygpKTsKLSAgICAgICAgICAgIHByZXZlbnRlZERlZmF1bHQg
PSBtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLnBlcmZvcm1EcmFnQW5kRHJvcChjcmVhdGVNb3Vz
ZUV2ZW50KGRyYWdEYXRhKSwgZGF0YVRyYW5zZmVyLmdldCgpKTsKKyAgICAgICAgICAgIHByZXZl
bnRlZERlZmF1bHQgPSBtYWluRnJhbWUtPmV2ZW50SGFuZGxlcigpLnBlcmZvcm1EcmFnQW5kRHJv
cChjcmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKSwgKmRhdGFUcmFuc2Zlcik7CiAgICAgICAgICAg
ICBkYXRhVHJhbnNmZXItPnNldEFjY2Vzc1BvbGljeShEYXRhVHJhbnNmZXJBY2Nlc3NQb2xpY3k6
Ok51bWIpOyAvLyBJbnZhbGlkYXRlIGRhdGFUcmFuc2ZlciBoZXJlIGZvciBzZWN1cml0eS4KICAg
ICAgICAgfQogICAgICAgICBpZiAocHJldmVudGVkRGVmYXVsdCkgewpAQCAtNTQ3LDcgKzU0Nyw3
IEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERyYWcoY29uc3QgRHJhZ0RhdGEm
IGRyYWdEYXRhKQogCiAgICAgaWYgKHJvb3RFZGl0YWJsZUVsZW1lbnQpIHsKICAgICAgICAgaWYg
KEZyYW1lKiBmcmFtZSA9IHJvb3RFZGl0YWJsZUVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKSkK
LSAgICAgICAgICAgIGZyYW1lLT5ldmVudEhhbmRsZXIoKS51cGRhdGVEcmFnU3RhdGVBZnRlckVk
aXREcmFnSWZOZWVkZWQocm9vdEVkaXRhYmxlRWxlbWVudC5nZXQoKSk7CisgICAgICAgICAgICBm
cmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVk
KCpyb290RWRpdGFibGVFbGVtZW50KTsKICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTYy
MSw3ICs2MjEsNyBAQCBib29sIERyYWdDb250cm9sbGVyOjp0cnlESFRNTERyYWcoY29uc3QgRHJh
Z0RhdGEmIGRyYWdEYXRhLCBEcmFnT3BlcmF0aW9uJiBvcGVyYQogICAgIGRhdGFUcmFuc2Zlci0+
c2V0U291cmNlT3BlcmF0aW9uKHNyY09wTWFzayk7CiAKICAgICBQbGF0Zm9ybU1vdXNlRXZlbnQg
ZXZlbnQgPSBjcmVhdGVNb3VzZUV2ZW50KGRyYWdEYXRhKTsKLSAgICBpZiAoIW1haW5GcmFtZS0+
ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ0FuZERyb3AoZXZlbnQsIGRhdGFUcmFuc2Zlci5nZXQo
KSkpIHsKKyAgICBpZiAoIW1haW5GcmFtZS0+ZXZlbnRIYW5kbGVyKCkudXBkYXRlRHJhZ0FuZERy
b3AoZXZlbnQsICpkYXRhVHJhbnNmZXIpKSB7CiAgICAgICAgIGRhdGFUcmFuc2Zlci0+c2V0QWNj
ZXNzUG9saWN5KERhdGFUcmFuc2ZlckFjY2Vzc1BvbGljeTo6TnVtYik7IC8vIEludmFsaWRhdGUg
ZGF0YVRyYW5zZmVyIGhlcmUgZm9yIHNlY3VyaXR5LgogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDkyM2U0MTY5Zjc4ZDBh
ZmYwYWNiMzNkYzY5MWI4YTlhNTgwZDMwZWQuLjVhNWEzNWU2OGE3Yzg5ODhiNmUxMzA0ZTQ4OWEy
MTJhYmQ5YzczYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA2IEFsZXhleSBQcm9za3VyeWFr
b3YgKGFwQHdlYmtpdC5vcmcpCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTIgRGlnaWEgUGxjLiBhbmQv
b3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCkBAIC0yOCwxNiArMjgsMTIgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKIAotI2luY2x1ZGUgIkFYT2Jq
ZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJBdXRvc2Nyb2xsQ29udHJvbGxlci5oIgogI2luY2x1ZGUg
IkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNhY2hlZEltYWdlLmgiCiAjaW5j
bHVkZSAiQ2hyb21lLmgiCiAjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCi0jaW5jbHVkZSAiQ3Vy
c29yLmgiCiAjaW5jbHVkZSAiQ3Vyc29yTGlzdC5oIgotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0j
aW5jbHVkZSAiRG9jdW1lbnRFdmVudFF1ZXVlLmgiCiAjaW5jbHVkZSAiRHJhZ0NvbnRyb2xsZXIu
aCIKICNpbmNsdWRlICJEcmFnU3RhdGUuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKQEAgLTk0LDEz
ICs5MCwxMyBAQAogI2luY2x1ZGUgIlVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmgiCiAjaW5j
bHVkZSAiVmlzaWJsZVVuaXRzLmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudC5oIgorI2luY2x1ZGUg
IldoZWVsRXZlbnREZWx0YUZpbHRlci5oIgogI2luY2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVz
LmgiCiAjaW5jbHVkZSAiaHRtbGVkaXRpbmcuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgogI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KLSNpbmNsdWRlIDx3dGYvV2Vh
a1B0ci5oPgogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAjaW5jbHVkZSAiUGxhdGZv
cm1Ub3VjaEV2ZW50SU9TLmgiCkBAIC0xNzYsMjEgKzE3Miw2IEBAIGNvbnN0IGludCBtYXhpbXVt
Q3Vyc29yU2l6ZSA9IDEyODsKIGNvbnN0IGRvdWJsZSBtaW5pbXVtQ3Vyc29yU2NhbGUgPSAwLjAw
MTsKICNlbmRpZgogCi1lbnVtIE5vQ3Vyc29yQ2hhbmdlVHlwZSB7IE5vQ3Vyc29yQ2hhbmdlIH07
Ci0KLWNsYXNzIE9wdGlvbmFsQ3Vyc29yIHsKLXB1YmxpYzoKLSAgICBPcHRpb25hbEN1cnNvcihO
b0N1cnNvckNoYW5nZVR5cGUpIDogbV9pc0N1cnNvckNoYW5nZShmYWxzZSkgeyB9Ci0gICAgT3B0
aW9uYWxDdXJzb3IoY29uc3QgQ3Vyc29yJiBjdXJzb3IpIDogbV9pc0N1cnNvckNoYW5nZSh0cnVl
KSwgbV9jdXJzb3IoY3Vyc29yKSB7IH0KLQotICAgIGJvb2wgaXNDdXJzb3JDaGFuZ2UoKSBjb25z
dCB7IHJldHVybiBtX2lzQ3Vyc29yQ2hhbmdlOyB9Ci0gICAgY29uc3QgQ3Vyc29yJiBjdXJzb3Io
KSBjb25zdCB7IEFTU0VSVChtX2lzQ3Vyc29yQ2hhbmdlKTsgcmV0dXJuIG1fY3Vyc29yOyB9Ci0K
LXByaXZhdGU6Ci0gICAgYm9vbCBtX2lzQ3Vyc29yQ2hhbmdlOwotICAgIEN1cnNvciBtX2N1cnNv
cjsKLX07Ci0KIGNsYXNzIE1heGltdW1EdXJhdGlvblRyYWNrZXIgewogcHVibGljOgogICAgIGV4
cGxpY2l0IE1heGltdW1EdXJhdGlvblRyYWNrZXIoZG91YmxlICptYXhEdXJhdGlvbikKQEAgLTQw
NSwxMiArMzg2LDE0IEBAIEV2ZW50SGFuZGxlcjo6fkV2ZW50SGFuZGxlcigpCiB9CiAgICAgCiAj
aWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKKwogRHJhZ1N0YXRlJiBFdmVudEhhbmRsZXI6OmRyYWdT
dGF0ZSgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPERyYWdTdGF0ZT4gc3RhdGU7CiAg
ICAgcmV0dXJuIHN0YXRlOwogfQotI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCisKKyNl
bmRpZgogICAgIAogdm9pZCBFdmVudEhhbmRsZXI6OmNsZWFyKCkKIHsKQEAgLTgwMCwxNCArNzgz
LDE1IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNzRXZlbnQoY29uc3QgTW91
c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYgZXZlCiAKICAgICBtX21vdXNlUHJlc3NOb2RlID0g
ZXZlbnQudGFyZ2V0Tm9kZSgpOwogICAgIG1fZnJhbWUuZG9jdW1lbnQoKS0+c2V0Rm9jdXNOYXZp
Z2F0aW9uU3RhcnRpbmdOb2RlKGV2ZW50LnRhcmdldE5vZGUoKSk7CisKICNpZiBFTkFCTEUoRFJB
R19TVVBQT1JUKQotICAgIG1fZHJhZ1N0YXJ0UG9zID0gZXZlbnQuZXZlbnQoKS5wb3NpdGlvbigp
OworICAgIG1fZHJhZ1N0YXJ0UG9zaXRpb24gPSBldmVudC5ldmVudCgpLnBvc2l0aW9uKCk7CiAj
ZW5kaWYKIAotICAgIGJvb2wgc3dhbGxvd0V2ZW50ID0gZmFsc2U7CiAgICAgbV9tb3VzZVByZXNz
ZWQgPSB0cnVlOwogICAgIG1fc2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlID0gSGF2ZU5vdFN0YXJ0
ZWRTZWxlY3Rpb247CiAKKyAgICBib29sIHN3YWxsb3dFdmVudCA9IGZhbHNlOwogICAgIGlmIChl
dmVudC5ldmVudCgpLmNsaWNrQ291bnQoKSA9PSAyKQogICAgICAgICBzd2FsbG93RXZlbnQgPSBo
YW5kbGVNb3VzZVByZXNzRXZlbnREb3VibGVDbGljayhldmVudCk7CiAgICAgZWxzZSBpZiAoZXZl
bnQuZXZlbnQoKS5jbGlja0NvdW50KCkgPj0gMykKQEAgLTk3NywxMSArOTYxLDExIEBAIHZvaWQg
RXZlbnRIYW5kbGVyOjp1cGRhdGVTZWxlY3Rpb25Gb3JNb3VzZURyYWcoY29uc3QgSGl0VGVzdFJl
c3VsdCYgaGl0VGVzdFJlc3VsCiAgICAgICAgIG5ld1NlbGVjdGlvbi5zZXRFeHRlbnQocG9zaXRp
b25BZnRlck5vZGUocm9vdFVzZXJTZWxlY3RBbGxGb3JNb3VzZVByZXNzTm9kZSkuZG93bnN0cmVh
bShDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIFJl
c2V0IGJhc2UgZm9yIHVzZXIgc2VsZWN0IGFsbCB3aGVuIGJhc2UgaXMgaW5zaWRlIHVzZXItc2Vs
ZWN0LWFsbCBhcmVhIGFuZCBleHRlbnQgPCBiYXNlLgotICAgICAgICBpZiAocm9vdFVzZXJTZWxl
Y3RBbGxGb3JNb3VzZVByZXNzTm9kZSAmJiBjb21wYXJlUG9zaXRpb25zKHRhcmdldC0+cmVuZGVy
ZXIoKS0+cG9zaXRpb25Gb3JQb2ludChoaXRUZXN0UmVzdWx0LmxvY2FsUG9pbnQoKSwgbnVsbHB0
ciksIG1fbW91c2VQcmVzc05vZGUtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9yUG9pbnQobV9kcmFn
U3RhcnRQb3MsIG51bGxwdHIpKSA8IDApCisgICAgICAgIGlmIChyb290VXNlclNlbGVjdEFsbEZv
ck1vdXNlUHJlc3NOb2RlICYmIGNvbXBhcmVQb3NpdGlvbnModGFyZ2V0LT5yZW5kZXJlcigpLT5w
b3NpdGlvbkZvclBvaW50KGhpdFRlc3RSZXN1bHQubG9jYWxQb2ludCgpLCBudWxscHRyKSwgbV9t
b3VzZVByZXNzTm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQb2ludChtX2RyYWdTdGFydFBv
c2l0aW9uLCBudWxscHRyKSkgPCAwKQogICAgICAgICAgICAgbmV3U2VsZWN0aW9uLnNldEJhc2Uo
cG9zaXRpb25BZnRlck5vZGUocm9vdFVzZXJTZWxlY3RBbGxGb3JNb3VzZVByZXNzTm9kZSkuZG93
bnN0cmVhbShDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkpOwogICAgICAgICAKICAgICAgICAgTm9k
ZSogcm9vdFVzZXJTZWxlY3RBbGxGb3JUYXJnZXQgPSBQb3NpdGlvbjo6cm9vdFVzZXJTZWxlY3RB
bGxGb3JOb2RlKHRhcmdldCk7Ci0gICAgICAgIGlmIChyb290VXNlclNlbGVjdEFsbEZvclRhcmdl
dCAmJiBtX21vdXNlUHJlc3NOb2RlLT5yZW5kZXJlcigpICYmIGNvbXBhcmVQb3NpdGlvbnModGFy
Z2V0LT5yZW5kZXJlcigpLT5wb3NpdGlvbkZvclBvaW50KGhpdFRlc3RSZXN1bHQubG9jYWxQb2lu
dCgpLCBudWxscHRyKSwgbV9tb3VzZVByZXNzTm9kZS0+cmVuZGVyZXIoKS0+cG9zaXRpb25Gb3JQ
b2ludChtX2RyYWdTdGFydFBvcywgbnVsbHB0cikpIDwgMCkKKyAgICAgICAgaWYgKHJvb3RVc2Vy
U2VsZWN0QWxsRm9yVGFyZ2V0ICYmIG1fbW91c2VQcmVzc05vZGUtPnJlbmRlcmVyKCkgJiYgY29t
cGFyZVBvc2l0aW9ucyh0YXJnZXQtPnJlbmRlcmVyKCktPnBvc2l0aW9uRm9yUG9pbnQoaGl0VGVz
dFJlc3VsdC5sb2NhbFBvaW50KCksIG51bGxwdHIpLCBtX21vdXNlUHJlc3NOb2RlLT5yZW5kZXJl
cigpLT5wb3NpdGlvbkZvclBvaW50KG1fZHJhZ1N0YXJ0UG9zaXRpb24sIG51bGxwdHIpKSA8IDAp
CiAgICAgICAgICAgICBuZXdTZWxlY3Rpb24uc2V0RXh0ZW50KHBvc2l0aW9uQmVmb3JlTm9kZShy
b290VXNlclNlbGVjdEFsbEZvclRhcmdldCkudXBzdHJlYW0oQ2FuQ3Jvc3NFZGl0aW5nQm91bmRh
cnkpKTsKICAgICAgICAgZWxzZSBpZiAocm9vdFVzZXJTZWxlY3RBbGxGb3JUYXJnZXQgJiYgbV9t
b3VzZVByZXNzTm9kZS0+cmVuZGVyZXIoKSkKICAgICAgICAgICAgIG5ld1NlbGVjdGlvbi5zZXRF
eHRlbnQocG9zaXRpb25BZnRlck5vZGUocm9vdFVzZXJTZWxlY3RBbGxGb3JUYXJnZXQpLmRvd25z
dHJlYW0oQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpKTsKQEAgLTEwNDcsNyArMTAzMSw3IEBAIGJv
b2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVJlbGVhc2VFdmVudChjb25zdCBNb3VzZUV2ZW50
V2l0aEhpdFRlc3RSZXN1bHRzJiBlCiAgICAgLy8gZWRpdGluZywgcGxhY2UgdGhlIGNhcmV0Lgog
ICAgIGlmIChtX21vdXNlRG93bldhc1NpbmdsZUNsaWNrSW5TZWxlY3Rpb24gJiYgbV9zZWxlY3Rp
b25Jbml0aWF0aW9uU3RhdGUgIT0gRXh0ZW5kZWRTZWxlY3Rpb24KICNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQotICAgICAgICAgICAgJiYgbV9kcmFnU3RhcnRQb3MgPT0gZXZlbnQuZXZlbnQoKS5w
b3NpdGlvbigpCisgICAgICAgICAgICAmJiBtX2RyYWdTdGFydFBvc2l0aW9uID09IGV2ZW50LmV2
ZW50KCkucG9zaXRpb24oKQogI2VuZGlmCiAgICAgICAgICAgICAmJiBtX2ZyYW1lLnNlbGVjdGlv
bigpLmlzUmFuZ2UoKQogICAgICAgICAgICAgJiYgZXZlbnQuZXZlbnQoKS5idXR0b24oKSAhPSBS
aWdodEJ1dHRvbikgewpAQCAtMTA4NCwxMiArMTA2OCwxMiBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6
ZGlkUGFuU2Nyb2xsU3RvcCgpCiAgICAgbV9hdXRvc2Nyb2xsQ29udHJvbGxlci0+ZGlkUGFuU2Ny
b2xsU3RvcCgpOwogfQogCi12b2lkIEV2ZW50SGFuZGxlcjo6c3RhcnRQYW5TY3JvbGxpbmcoUmVu
ZGVyRWxlbWVudCogcmVuZGVyZXIpCit2b2lkIEV2ZW50SGFuZGxlcjo6c3RhcnRQYW5TY3JvbGxp
bmcoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICBp
ZiAoIWlzPFJlbmRlckJveD4oKnJlbmRlcmVyKSkKKyAgICBpZiAoIWlzPFJlbmRlckJveD4ocmVu
ZGVyZXIpKQogICAgICAgICByZXR1cm47Ci0gICAgbV9hdXRvc2Nyb2xsQ29udHJvbGxlci0+c3Rh
cnRQYW5TY3JvbGxpbmcoZG93bmNhc3Q8UmVuZGVyQm94PihyZW5kZXJlciksIGxhc3RLbm93bk1v
dXNlUG9zaXRpb24oKSk7CisgICAgbV9hdXRvc2Nyb2xsQ29udHJvbGxlci0+c3RhcnRQYW5TY3Jv
bGxpbmcoJmRvd25jYXN0PFJlbmRlckJveD4ocmVuZGVyZXIpLCBsYXN0S25vd25Nb3VzZVBvc2l0
aW9uKCkpOwogICAgIGludmFsaWRhdGVDbGljaygpOwogI2VuZGlmCiB9CkBAIC0xMzc0LDI0ICsx
MzU4LDI4IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjp1cGRhdGVDdXJzb3IoKQogICAgIEhpdFRlc3RS
ZXN1bHQgcmVzdWx0KHZpZXctPndpbmRvd1RvQ29udGVudHMobV9sYXN0S25vd25Nb3VzZVBvc2l0
aW9uKSk7CiAgICAgcmVuZGVyVmlldy0+aGl0VGVzdChyZXF1ZXN0LCByZXN1bHQpOwogCi0gICAg
T3B0aW9uYWxDdXJzb3Igb3B0aW9uYWxDdXJzb3IgPSBzZWxlY3RDdXJzb3IocmVzdWx0LCBzaGlm
dEtleSk7Ci0gICAgaWYgKG9wdGlvbmFsQ3Vyc29yLmlzQ3Vyc29yQ2hhbmdlKCkpIHsKLSAgICAg
ICAgbV9jdXJyZW50TW91c2VDdXJzb3IgPSBvcHRpb25hbEN1cnNvci5jdXJzb3IoKTsKLSAgICAg
ICAgdmlldy0+c2V0Q3Vyc29yKG1fY3VycmVudE1vdXNlQ3Vyc29yKTsKKyAgICB1cGRhdGVDdXJz
b3IoKnZpZXcsIHJlc3VsdCwgc2hpZnRLZXkpOworfQorCit2b2lkIEV2ZW50SGFuZGxlcjo6dXBk
YXRlQ3Vyc29yKEZyYW1lVmlldyYgdmlldywgY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBi
b29sIHNoaWZ0S2V5KQoreworICAgIGlmIChhdXRvIG9wdGlvbmFsQ3Vyc29yID0gc2VsZWN0Q3Vy
c29yKHJlc3VsdCwgc2hpZnRLZXkpKSB7CisgICAgICAgIG1fY3VycmVudE1vdXNlQ3Vyc29yID0g
V1RGTW92ZShvcHRpb25hbEN1cnNvci52YWx1ZSgpKTsKKyAgICAgICAgdmlldy5zZXRDdXJzb3Io
bV9jdXJyZW50TW91c2VDdXJzb3IpOwogICAgIH0KIH0KIAotT3B0aW9uYWxDdXJzb3IgRXZlbnRI
YW5kbGVyOjpzZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBib29sIHNo
aWZ0S2V5KQorc3RkOjpvcHRpb25hbDxDdXJzb3I+IEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29y
KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaGlmdEtleSkKIHsKICAgICBpZiAo
bV9yZXNpemVMYXllciAmJiBtX3Jlc2l6ZUxheWVyLT5pblJlc2l6ZU1vZGUoKSkKLSAgICAgICAg
cmV0dXJuIE5vQ3Vyc29yQ2hhbmdlOworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAg
ICAgaWYgKCFtX2ZyYW1lLnBhZ2UoKSkKLSAgICAgICAgcmV0dXJuIE5vQ3Vyc29yQ2hhbmdlOwor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCiAjaWYgRU5BQkxFKFBBTl9TQ1JPTExJTkcp
CiAgICAgaWYgKG1fZnJhbWUubWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkucGFuU2Nyb2xsSW5Q
cm9ncmVzcygpKQotICAgICAgICByZXR1cm4gTm9DdXJzb3JDaGFuZ2U7CisgICAgICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7CiAjZW5kaWYKIAogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUo
bV9mcmFtZSk7CkBAIC0xNDA2LDcgKzEzOTQsNyBAQCBPcHRpb25hbEN1cnNvciBFdmVudEhhbmRs
ZXI6OnNlbGVjdEN1cnNvcihjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGJvb2wgc2hpZgog
CiAgICAgTm9kZSogbm9kZSA9IHJlc3VsdC50YXJnZXROb2RlKCk7CiAgICAgaWYgKCFub2RlKQot
ICAgICAgICByZXR1cm4gTm9DdXJzb3JDaGFuZ2U7CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAKICAgICBhdXRvIHJlbmRlcmVyID0gbm9kZS0+cmVuZGVyZXIoKTsKICAgICBhdXRvKiBz
dHlsZSA9IHJlbmRlcmVyID8gJnJlbmRlcmVyLT5zdHlsZSgpIDogbnVsbHB0cjsKQEAgLTE0Mjgs
NyArMTQxNiw3IEBAIE9wdGlvbmFsQ3Vyc29yIEV2ZW50SGFuZGxlcjo6c2VsZWN0Q3Vyc29yKGNv
bnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgYm9vbCBzaGlmCiAgICAgICAgIGNhc2UgU2V0Q3Vy
c29yOgogICAgICAgICAgICAgcmV0dXJuIG92ZXJyaWRlQ3Vyc29yOwogICAgICAgICBjYXNlIERv
Tm90U2V0Q3Vyc29yOgotICAgICAgICAgICAgcmV0dXJuIE5vQ3Vyc29yQ2hhbmdlOworICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTk0Nywx
NSArMTkzNSwxMCBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3ZlRXZlbnQoY29u
c3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybU1vdXNlRQogICAgICAgICAvLyBub2RlIHRv
IGJlIGRldGFjaGVkIGZyb20gaXRzIEZyYW1lVmlldywgaW4gd2hpY2ggY2FzZSB0aGUgZXZlbnQg
c2hvdWxkIG5vdCBiZSBwYXNzZWQuCiAgICAgICAgIGlmIChuZXdTdWJmcmFtZS0+dmlldygpKQog
ICAgICAgICAgICAgc3dhbGxvd0V2ZW50IHw9IHBhc3NNb3VzZU1vdmVFdmVudFRvU3ViZnJhbWUo
bW91c2VFdmVudCwgbmV3U3ViZnJhbWUuZ2V0KCksIGhvdmVyZWROb2RlKTsKLSNpZiBFTkFCTEUo
Q1VSU09SX1NVUFBPUlQpCiAgICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKEZyYW1lVmlldyogdmll
dyA9IG1fZnJhbWUudmlldygpKSB7Ci0gICAgICAgICAgICBPcHRpb25hbEN1cnNvciBvcHRpb25h
bEN1cnNvciA9IHNlbGVjdEN1cnNvcihtb3VzZUV2ZW50LmhpdFRlc3RSZXN1bHQoKSwgcGxhdGZv
cm1Nb3VzZUV2ZW50LnNoaWZ0S2V5KCkpOwotICAgICAgICAgICAgaWYgKG9wdGlvbmFsQ3Vyc29y
LmlzQ3Vyc29yQ2hhbmdlKCkpIHsKLSAgICAgICAgICAgICAgICBtX2N1cnJlbnRNb3VzZUN1cnNv
ciA9IG9wdGlvbmFsQ3Vyc29yLmN1cnNvcigpOwotICAgICAgICAgICAgICAgIHZpZXctPnNldEN1
cnNvcihtX2N1cnJlbnRNb3VzZUN1cnNvcik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyNp
ZiBFTkFCTEUoQ1VSU09SX1NVUFBPUlQpCisgICAgICAgIGlmIChhdXRvKiB2aWV3ID0gbV9mcmFt
ZS52aWV3KCkpCisgICAgICAgICAgICB1cGRhdGVDdXJzb3IoKnZpZXcsIG1vdXNlRXZlbnQuaGl0
VGVzdFJlc3VsdCgpLCBwbGF0Zm9ybU1vdXNlRXZlbnQuc2hpZnRLZXkoKSk7CiAjZW5kaWYKICAg
ICB9CiAgICAgCkBAIC0xOTY4LDcgKzE5NTEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxl
TW91c2VNb3ZlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBwbGF0Zm9ybU1vdXNlRQog
I2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAgaWYgKCFzd2FsbG93RXZlbnQpCiAgICAgICAg
IHN3YWxsb3dFdmVudCA9IGhhbmRsZU1vdXNlRHJhZ2dlZEV2ZW50KG1vdXNlRXZlbnQpOwotI2Vu
ZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCisjZW5kaWYKIAogICAgIHJldHVybiBzd2FsbG93
RXZlbnQ7CiB9CkBAIC0yMjM2LDcgKzIyMTksNyBAQCBzdGF0aWMgYm9vbCBmaW5kRHJvcFpvbmUo
Tm9kZSogdGFyZ2V0LCBEYXRhVHJhbnNmZXIqIGRhdGFUcmFuc2ZlcikKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAgICAgCi1ib29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyKiBkYXRhVHJhbnNmZXIpCiti
b29sIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50JiBldmVudCwgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIpCiB7CiAgICAgUmVmPEZyYW1l
PiBwcm90ZWN0ZWRGcmFtZShtX2ZyYW1lKTsKIApAQCAtMjI3NSwxNiArMjI1OCwxNiBAQCBib29s
IEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50
JiBldmVudCwgRGF0YVRyYW5zZgogICAgICAgICAgICAgICAgIC8vIGZvciBub3cgd2UgZG9uJ3Qg
Y2FyZSBpZiBldmVudCBoYW5kbGVyIGNhbmNlbHMgZGVmYXVsdCBiZWhhdmlvciwgc2luY2UgdGhl
cmUgaXMgbm9uZQogICAgICAgICAgICAgICAgIGRpc3BhdGNoRHJhZ1NyY0V2ZW50KGV2ZW50TmFt
ZXMoKS5kcmFnRXZlbnQsIGV2ZW50KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGFjY2Vw
dCA9IGRpc3BhdGNoRHJhZ0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnZW50ZXJFdmVudCwgKm5ld1Rh
cmdldCwgZXZlbnQsIGRhdGFUcmFuc2Zlcik7CisgICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRj
aERyYWdFdmVudChldmVudE5hbWVzKCkuZHJhZ2VudGVyRXZlbnQsICpuZXdUYXJnZXQsIGV2ZW50
LCAmZGF0YVRyYW5zZmVyKTsKICAgICAgICAgICAgIGlmICghYWNjZXB0KQotICAgICAgICAgICAg
ICAgIGFjY2VwdCA9IGZpbmREcm9wWm9uZShuZXdUYXJnZXQuZ2V0KCksIGRhdGFUcmFuc2Zlcik7
CisgICAgICAgICAgICAgICAgYWNjZXB0ID0gZmluZERyb3Bab25lKG5ld1RhcmdldC5nZXQoKSwg
JmRhdGFUcmFuc2Zlcik7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAodGFyZ2V0SXNGcmFtZSht
X2RyYWdUYXJnZXQuZ2V0KCksIHRhcmdldEZyYW1lKSkgewogICAgICAgICAgICAgaWYgKHRhcmdl
dEZyYW1lKQogICAgICAgICAgICAgICAgIGFjY2VwdCA9IHRhcmdldEZyYW1lLT5ldmVudEhhbmRs
ZXIoKS51cGRhdGVEcmFnQW5kRHJvcChldmVudCwgZGF0YVRyYW5zZmVyKTsKICAgICAgICAgfSBl
bHNlIGlmIChtX2RyYWdUYXJnZXQpCi0gICAgICAgICAgICBkaXNwYXRjaERyYWdFdmVudChldmVu
dE5hbWVzKCkuZHJhZ2xlYXZlRXZlbnQsICptX2RyYWdUYXJnZXQsIGV2ZW50LCBkYXRhVHJhbnNm
ZXIpOworICAgICAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2
ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgJmRhdGFUcmFuc2Zlcik7CiAKICAgICAgICAg
aWYgKG5ld1RhcmdldCkgewogICAgICAgICAgICAgLy8gV2UgZG8gbm90IGV4cGxpY2l0bHkgY2Fs
bCBkaXNwYXRjaERyYWdFdmVudCBoZXJlIGJlY2F1c2UgaXQgY291bGQgdWx0aW1hdGVseSByZXN1
bHQgaW4gdGhlIGFwcGVhcmFuY2UgdGhhdApAQCAtMjMwMiw5ICsyMjg1LDkgQEAgYm9vbCBFdmVu
dEhhbmRsZXI6OnVwZGF0ZURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZl
bnQsIERhdGFUcmFuc2YKICAgICAgICAgICAgICAgICAvLyBmb3Igbm93IHdlIGRvbid0IGNhcmUg
aWYgZXZlbnQgaGFuZGxlciBjYW5jZWxzIGRlZmF1bHQgYmVoYXZpb3IsIHNpbmNlIHRoZXJlIGlz
IG5vbmUKICAgICAgICAgICAgICAgICBkaXNwYXRjaERyYWdTcmNFdmVudChldmVudE5hbWVzKCku
ZHJhZ0V2ZW50LCBldmVudCk7CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBhY2NlcHQgPSBk
aXNwYXRjaERyYWdFdmVudChldmVudE5hbWVzKCkuZHJhZ292ZXJFdmVudCwgKm5ld1RhcmdldCwg
ZXZlbnQsIGRhdGFUcmFuc2Zlcik7CisgICAgICAgICAgICBhY2NlcHQgPSBkaXNwYXRjaERyYWdF
dmVudChldmVudE5hbWVzKCkuZHJhZ292ZXJFdmVudCwgKm5ld1RhcmdldCwgZXZlbnQsICZkYXRh
VHJhbnNmZXIpOwogICAgICAgICAgICAgaWYgKCFhY2NlcHQpCi0gICAgICAgICAgICAgICAgYWNj
ZXB0ID0gZmluZERyb3Bab25lKG5ld1RhcmdldC5nZXQoKSwgZGF0YVRyYW5zZmVyKTsKKyAgICAg
ICAgICAgICAgICBhY2NlcHQgPSBmaW5kRHJvcFpvbmUobmV3VGFyZ2V0LmdldCgpLCAmZGF0YVRy
YW5zZmVyKTsKICAgICAgICAgICAgIG1fc2hvdWxkT25seUZpcmVEcmFnT3ZlckV2ZW50ID0gZmFs
c2U7CiAgICAgICAgIH0KICAgICB9CkBAIC0yMzEyLDcgKzIyOTUsNyBAQCBib29sIEV2ZW50SGFu
ZGxlcjo6dXBkYXRlRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwg
RGF0YVRyYW5zZgogICAgIHJldHVybiBhY2NlcHQ7CiB9CiAKLXZvaWQgRXZlbnRIYW5kbGVyOjpj
YW5jZWxEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJh
bnNmZXIqIGRhdGFUcmFuc2ZlcikKK3ZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJv
cChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmZXImIGRhdGFUcmFu
c2ZlcikKIHsKICAgICBSZWY8RnJhbWU+IHByb3RlY3RlZEZyYW1lKG1fZnJhbWUpOwogCkBAIC0y
MzIzLDEyICsyMzA2LDEyIEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxEcmFnQW5kRHJvcChj
b25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50LCBEYXRhVHJhbnNmCiAgICAgfSBlbHNlIGlm
IChtX2RyYWdUYXJnZXQpIHsKICAgICAgICAgaWYgKGRyYWdTdGF0ZSgpLnNvdXJjZSAmJiBkcmFn
U3RhdGUoKS5zaG91bGREaXNwYXRjaEV2ZW50cykKICAgICAgICAgICAgIGRpc3BhdGNoRHJhZ1Ny
Y0V2ZW50KGV2ZW50TmFtZXMoKS5kcmFnRXZlbnQsIGV2ZW50KTsKLSAgICAgICAgZGlzcGF0Y2hE
cmFnRXZlbnQoZXZlbnROYW1lcygpLmRyYWdsZWF2ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVu
dCwgZGF0YVRyYW5zZmVyKTsKKyAgICAgICAgZGlzcGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygp
LmRyYWdsZWF2ZUV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgJmRhdGFUcmFuc2Zlcik7CiAg
ICAgfQogICAgIGNsZWFyRHJhZ1N0YXRlKCk7CiB9CiAKLWJvb2wgRXZlbnRIYW5kbGVyOjpwZXJm
b3JtRHJhZ0FuZERyb3AoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5z
ZmVyKiBkYXRhVHJhbnNmZXIpCitib29sIEV2ZW50SGFuZGxlcjo6cGVyZm9ybURyYWdBbmREcm9w
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERhdGFUcmFuc2ZlciYgZGF0YVRyYW5z
ZmVyKQogewogICAgIFJlZjxGcmFtZT4gcHJvdGVjdGVkRnJhbWUobV9mcmFtZSk7CiAKQEAgLTIz
MzgsNyArMjMyMSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwZXJmb3JtRHJhZ0FuZERyb3AoY29u
c3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCwgRGF0YVRyYW5zCiAgICAgICAgIGlmICh0YXJn
ZXRGcmFtZSkKICAgICAgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSB0YXJnZXRGcmFtZS0+ZXZl
bnRIYW5kbGVyKCkucGVyZm9ybURyYWdBbmREcm9wKGV2ZW50LCBkYXRhVHJhbnNmZXIpOwogICAg
IH0gZWxzZSBpZiAobV9kcmFnVGFyZ2V0KQotICAgICAgICBwcmV2ZW50ZWREZWZhdWx0ID0gZGlz
cGF0Y2hEcmFnRXZlbnQoZXZlbnROYW1lcygpLmRyb3BFdmVudCwgKm1fZHJhZ1RhcmdldCwgZXZl
bnQsIGRhdGFUcmFuc2Zlcik7CisgICAgICAgIHByZXZlbnRlZERlZmF1bHQgPSBkaXNwYXRjaERy
YWdFdmVudChldmVudE5hbWVzKCkuZHJvcEV2ZW50LCAqbV9kcmFnVGFyZ2V0LCBldmVudCwgJmRh
dGFUcmFuc2Zlcik7CiAgICAgY2xlYXJEcmFnU3RhdGUoKTsKICAgICByZXR1cm4gcHJldmVudGVk
RGVmYXVsdDsKIH0KQEAgLTIzNTMsOSArMjMzNiwxMCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6Y2xl
YXJEcmFnU3RhdGUoKQogICAgIG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3ID0gZmFsc2U7CiAjZW5k
aWYKIH0KKwogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKLXZvaWQgRXZlbnRIYW5k
bGVyOjpzZXRDYXB0dXJpbmdNb3VzZUV2ZW50c0VsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50PiBl
bGVtZW50KQordm9pZCBFdmVudEhhbmRsZXI6OnNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxlbWVu
dChFbGVtZW50KiBlbGVtZW50KQogewogICAgIG1fY2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50
ID0gZWxlbWVudDsKICAgICBtX2V2ZW50SGFuZGxlcldpbGxSZXNldENhcHR1cmluZ01vdXNlRXZl
bnRzRWxlbWVudCA9IGZhbHNlOwpAQCAtMjU2Myw3ICsyNTQ3LDcgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OmRpc3BhdGNoTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9k
ZSogdGFyZ2UKIAogICAgIC8vIElmIGZvY3VzIHNoaWZ0IGlzIGJsb2NrZWQsIHdlIGVhdCB0aGUg
ZXZlbnQuCiAgICAgYXV0byogcGFnZSA9IG1fZnJhbWUucGFnZSgpOwotICAgIGlmIChwYWdlICYm
ICFwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChlbGVtZW50LCAmbV9m
cmFtZSkpCisgICAgaWYgKHBhZ2UgJiYgIXBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3Vz
ZWRFbGVtZW50KGVsZW1lbnQsIG1fZnJhbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICByZXR1cm4gdHJ1ZTsKQEAgLTM0MTEsMTEgKzMzOTUsMTEgQEAgdm9pZCBFdmVudEhhbmRsZXI6
OmRyYWdTb3VyY2VFbmRlZEF0KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQsIERyYWdP
cGVyYXQKICAgICBtX21vdXNlRG93bk1heVN0YXJ0RHJhZyA9IGZhbHNlOwogfQogCi12b2lkIEV2
ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKEVsZW1lbnQq
IHJvb3RFZGl0YWJsZUVsZW1lbnQpCit2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlRHJhZ1N0YXRl
QWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKEVsZW1lbnQmIHJvb3RFZGl0YWJsZUVsZW1lbnQpCiB7CiAg
ICAgLy8gSWYgaW5zZXJ0aW5nIHRoZSBkcmFnZ2VkIGNvbnRlbnRzIHJlbW92ZWQgdGhlIGRyYWcg
c291cmNlLCB3ZSBzdGlsbCB3YW50IHRvIGZpcmUgZHJhZ2VuZCBhdCB0aGUgcm9vdCBlZGl0YWJs
ZSBlbGVtZW50LgogICAgIGlmIChkcmFnU3RhdGUoKS5zb3VyY2UgJiYgIWRyYWdTdGF0ZSgpLnNv
dXJjZS0+aW5Eb2N1bWVudCgpKQotICAgICAgICBkcmFnU3RhdGUoKS5zb3VyY2UgPSByb290RWRp
dGFibGVFbGVtZW50OworICAgICAgICBkcmFnU3RhdGUoKS5zb3VyY2UgPSAmcm9vdEVkaXRhYmxl
RWxlbWVudDsKIH0KIAogLy8gUmV0dXJuIHZhbHVlIGluZGljYXRlcyBpZiB3ZSBzaG91bGQgY29u
dGludWUgImRlZmF1bHQgcHJvY2Vzc2luZyIsIGkuZS4sIHdoZXRoZXIgZXZlbnQgaGFuZGxlciBj
YW5jZWxlZC4KQEAgLTM2MjUsMjUgKzM2MDksMjQgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRs
ZVRleHRJbnB1dEV2ZW50KGNvbnN0IFN0cmluZyYgdGV4dCwgRXZlbnQqIHVuZGVybHlpbmdFdmUK
ICAgICByZXR1cm4gZXZlbnQtPmRlZmF1bHRIYW5kbGVkKCk7CiB9CiAgICAgCi1ib29sIEV2ZW50
SGFuZGxlcjo6aXNLZXlib2FyZE9wdGlvblRhYihLZXlib2FyZEV2ZW50KiBldmVudCkKK2Jvb2wg
RXZlbnRIYW5kbGVyOjppc0tleWJvYXJkT3B0aW9uVGFiKEtleWJvYXJkRXZlbnQmIGV2ZW50KQog
ewotICAgIHJldHVybiBldmVudAotICAgICAgICAmJiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5h
bWVzKCkua2V5ZG93bkV2ZW50IHx8IGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXBy
ZXNzRXZlbnQpCi0gICAgICAgICYmIGV2ZW50LT5hbHRLZXkoKQotICAgICAgICAmJiBldmVudC0+
a2V5SWRlbnRpZmllcigpID09ICJVKzAwMDkiOyAgICAKKyAgICByZXR1cm4gKGV2ZW50LnR5cGUo
KSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50IHx8IGV2ZW50LnR5cGUoKSA9PSBldmVudE5h
bWVzKCkua2V5cHJlc3NFdmVudCkKKyAgICAgICAgJiYgZXZlbnQuYWx0S2V5KCkKKyAgICAgICAg
JiYgZXZlbnQua2V5SWRlbnRpZmllcigpID09ICJVKzAwMDkiOwogfQogCi1ib29sIEV2ZW50SGFu
ZGxlcjo6ZXZlbnRJbnZlcnRzVGFic1RvTGlua3NDbGllbnRDYWxsUmVzdWx0KEtleWJvYXJkRXZl
bnQqIGV2ZW50KQorYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xp
ZW50Q2FsbFJlc3VsdChLZXlib2FyZEV2ZW50JiBldmVudCkKIHsKICNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oRUZMKQotICAgIHJldHVybiBFdmVudEhhbmRsZXI6OmlzS2V5Ym9hcmRP
cHRpb25UYWIoZXZlbnQpOworICAgIHJldHVybiBpc0tleWJvYXJkT3B0aW9uVGFiKGV2ZW50KTsK
ICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKGV2ZW50KTsKICAgICByZXR1cm4gZmFsc2U7CiAjZW5k
aWYKIH0KIAotYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQqIGV2
ZW50KSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQm
IGV2ZW50KSBjb25zdAogewogICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIG5lZWRzIGEgYmV0
dGVyIG5hbWUuIEl0IGNhbiBiZSBjYWxsZWQgZm9yIGtleXByZXNzZXMgb3RoZXIgdGhhbiBUYWIg
d2hlbiBzcGF0aWFsIG5hdmlnYXRpb24gaXMgZW5hYmxlZC4KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmgKaW5kZXggZGU3OGJjYWU4NGE3NjY0ZGUyOGQ1ZDE3OTA2YjlhM2RiMmUxYjQyMy4u
NmVkN2FlMzM5NWM4MDI2M2Q0YTc3MDBmY2EwYWYwZjZlZjkxOGMyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
Ni0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwNi0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMzEsMzAgKzMxLDMxIEBACiAjaW5jbHVkZSAiSGl0VGVzdFJl
cXVlc3QuaCIKICNpbmNsdWRlICJMYXlvdXRQb2ludC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91
c2VFdmVudC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlNj
cm9sbFR5cGVzLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50SW5wdXRUeXBlLmgiCiAjaW5jbHVkZSAi
VGV4dEdyYW51bGFyaXR5LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlICJXaGVlbEV2
ZW50RGVsdGFGaWx0ZXIuaCIKICNpbmNsdWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNs
dWRlIDx3dGYvV2Vha1B0ci5oPgogCisjaWYgUExBVEZPUk0oQ09DT0EpCitPQkpDX0NMQVNTIE5T
VmlldzsKKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oSU9TKQogT0JKQ19DTEFTUyBXZWJFdmVudDsK
LU9CSkNfQ0xBU1MgV0FLVmlldzsKLSNpZmRlZiBfX09CSkNfXwotI2luY2x1ZGUgIldBS0FwcEtp
dFN0dWJzLmgiCiAjZW5kaWYKLSNlbmRpZiAvLyBQTEFURk9STShJT1MpCiAKLSNpZiBQTEFURk9S
TShDT0NPQSkKLU9CSkNfQ0xBU1MgTlNWaWV3OworI2lmIFBMQVRGT1JNKE1BQykKK09CSkNfQ0xB
U1MgTlNFdmVudDsKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TKSAmJiBkZWZpbmVkKF9fT0JK
Q19fKQorI2luY2x1ZGUgIldBS0FwcEtpdFN0dWJzLmgiCiAjZW5kaWYKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtNjYsMTYgKzY3LDE0IEBAIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxlbWVu
dDsKIGNsYXNzIEV2ZW50OwogY2xhc3MgRXZlbnRUYXJnZXQ7Ci1jbGFzcyBGbG9hdFBvaW50Owog
Y2xhc3MgRmxvYXRRdWFkOwogY2xhc3MgRnJhbWU7CitjbGFzcyBGcmFtZVZpZXc7CiBjbGFzcyBI
VE1MRnJhbWVTZXRFbGVtZW50OwotY2xhc3MgSGl0VGVzdFJlcXVlc3Q7CiBjbGFzcyBIaXRUZXN0
UmVzdWx0OwogY2xhc3MgS2V5Ym9hcmRFdmVudDsKIGNsYXNzIE1vdXNlRXZlbnRXaXRoSGl0VGVz
dFJlc3VsdHM7CiBjbGFzcyBOb2RlOwotY2xhc3MgT3B0aW9uYWxDdXJzb3I7CiBjbGFzcyBQbGF0
Zm9ybUdlc3R1cmVFdmVudDsKIGNsYXNzIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDsKIGNsYXNzIFBs
YXRmb3JtVG91Y2hFdmVudDsKQEAgLTEwMCw3ICs5OSw3IEBAIGV4dGVybiBjb25zdCBpbnQgTGlu
a0RyYWdIeXN0ZXJlc2lzOwogZXh0ZXJuIGNvbnN0IGludCBJbWFnZURyYWdIeXN0ZXJlc2lzOwog
ZXh0ZXJuIGNvbnN0IGludCBUZXh0RHJhZ0h5c3RlcmVzaXM7CiBleHRlcm4gY29uc3QgaW50IEdl
bmVyYWxEcmFnSHlzdGVyZXNpczsKLSNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKSB8fCBFTkFCTEUoTUFDX0dFU1RV
UkVfRVZFTlRTKQogZXh0ZXJuIGNvbnN0IGZsb2F0IEdlc3R1cmVVbmtub3duOwpAQCAtMTIwLDcg
KzExOSw2IEBAIGVudW0gY2xhc3MgSW1tZWRpYXRlQWN0aW9uU3RhZ2UgewogfTsKIAogY2xhc3Mg
RXZlbnRIYW5kbGVyIHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShFdmVudEhhbmRsZXIpOwog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIGV4cGxpY2l0IEV2ZW50
SGFuZGxlcihGcmFtZSYpOwpAQCAtMTM2LDcgKzEzNCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUo
UEFOX1NDUk9MTElORykKICAgICB2b2lkIGRpZFBhblNjcm9sbFN0YXJ0KCk7CiAgICAgdm9pZCBk
aWRQYW5TY3JvbGxTdG9wKCk7Ci0gICAgdm9pZCBzdGFydFBhblNjcm9sbGluZyhSZW5kZXJFbGVt
ZW50Kik7CisgICAgdm9pZCBzdGFydFBhblNjcm9sbGluZyhSZW5kZXJFbGVtZW50Jik7CiAjZW5k
aWYKIAogICAgIHZvaWQgc3RvcEF1dG9zY3JvbGxUaW1lcihib29sIHJlbmRlcmVySXNCZWluZ0Rl
c3Ryb3llZCA9IGZhbHNlKTsKQEAgLTE1NiwxMyArMTU0LDEzIEBAIHB1YmxpYzoKICAgICBib29s
IG1vdXNlUHJlc3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VQcmVzc2VkOyB9CiAgICAgTm9k
ZSogbW91c2VQcmVzc05vZGUoKSBjb25zdCB7IHJldHVybiBtX21vdXNlUHJlc3NOb2RlLmdldCgp
OyB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldENhcHR1cmluZ01vdXNlRXZlbnRzRWxl
bWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsgLy8gQSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9y
IHJlc2V0dGluZyBjYXB0dXJpbmcgZWxlbWVudCB0byAwLgorICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc2V0Q2FwdHVyaW5nTW91c2VFdmVudHNFbGVtZW50KEVsZW1lbnQqKTsKIAogI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCi0gICAgYm9vbCB1cGRhdGVEcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXIqKTsKLSAgICB2b2lkIGNhbmNlbERyYWdBbmREcm9w
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2ZlciopOwotICAgIGJvb2wgcGVy
Zm9ybURyYWdBbmREcm9wKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIERhdGFUcmFuc2Zlciop
OwotICAgIHZvaWQgdXBkYXRlRHJhZ1N0YXRlQWZ0ZXJFZGl0RHJhZ0lmTmVlZGVkKEVsZW1lbnQq
IHJvb3RFZGl0YWJsZUVsZW1lbnQpOworICAgIGJvb2wgdXBkYXRlRHJhZ0FuZERyb3AoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiwgRGF0YVRyYW5zZmVyJik7CisgICAgdm9pZCBjYW5jZWxEcmFn
QW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXImKTsKKyAgICBi
b29sIHBlcmZvcm1EcmFnQW5kRHJvcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJh
bnNmZXImKTsKKyAgICB2b2lkIHVwZGF0ZURyYWdTdGF0ZUFmdGVyRWRpdERyYWdJZk5lZWRlZChF
bGVtZW50JiByb290RWRpdGFibGVFbGVtZW50KTsKICNlbmRpZgogCiAgICAgdm9pZCBzY2hlZHVs
ZUhvdmVyU3RhdGVVcGRhdGUoKTsKQEAgLTE4Nyw4ICsxODUsOCBAQCBwdWJsaWM6CiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBzY3JvbGxSZWN1cnNpdmVseShTY3JvbGxEaXJlY3Rpb24sIFNjcm9s
bEdyYW51bGFyaXR5LCBOb2RlKiBzdGFydGluZ05vZGUgPSBudWxscHRyKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGxvZ2ljYWxTY3JvbGxSZWN1cnNpdmVseShTY3JvbGxMb2dpY2FsRGlyZWN0
aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgTm9kZSogc3RhcnRpbmdOb2RlID0gbnVsbHB0cik7CiAK
LSAgICBib29sIHRhYnNUb0xpbmtzKEtleWJvYXJkRXZlbnQqKSBjb25zdDsKLSAgICBib29sIHRh
YnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KikgY29uc3Q7CisgICAgYm9vbCB0YWJz
VG9MaW5rcyhLZXlib2FyZEV2ZW50JikgY29uc3Q7CisgICAgYm9vbCB0YWJzVG9BbGxGb3JtQ29u
dHJvbHMoS2V5Ym9hcmRFdmVudCYpIGNvbnN0OwogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBt
b3VzZU1vdmVkKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwogICAgIFdFQkNPUkVfRVhQT1JU
IGJvb2wgcGFzc01vdXNlTW92ZWRFdmVudFRvU2Nyb2xsYmFycyhjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmKTsKQEAgLTIxMCwxMiArMjA4LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHBsYXRmb3Jt
Tm90aWZ5SWZFbmRHZXN0dXJlKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIGNvbnN0IFdlYWtQ
dHI8U2Nyb2xsYWJsZUFyZWE+Jik7CiAKICNpZiBFTkFCTEUoSU9TX1RPVUNIX0VWRU5UUykgfHwg
RU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykKLSAgICB0eXBlZGVmIFZlY3RvcjxSZWZQdHI8VG91
Y2g+PiBUb3VjaEFycmF5OwotICAgIHR5cGVkZWYgSGFzaE1hcDxFdmVudFRhcmdldCosIFRvdWNo
QXJyYXkqPiBFdmVudFRhcmdldFRvdWNoTWFwOworICAgIHVzaW5nIFRvdWNoQXJyYXkgPSBWZWN0
b3I8UmVmUHRyPFRvdWNoPj47CisgICAgdXNpbmcgRXZlbnRUYXJnZXRUb3VjaE1hcCA9IEhhc2hN
YXA8RXZlbnRUYXJnZXQqLCBUb3VjaEFycmF5Kj47CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJT1Nf
VE9VQ0hfRVZFTlRTKSB8fCBFTkFCTEUoSU9TX0dFU1RVUkVfRVZFTlRTKSB8fCBFTkFCTEUoTUFD
X0dFU1RVUkVfRVZFTlRTKQotICAgIHR5cGVkZWYgSGFzaFNldDxSZWZQdHI8RXZlbnRUYXJnZXQ+
PiBFdmVudFRhcmdldFNldDsKKyAgICB1c2luZyBFdmVudFRhcmdldFNldCA9IEhhc2hTZXQ8UmVm
UHRyPEV2ZW50VGFyZ2V0Pj47CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRT
KQpAQCAtMjMxLDcgKzIyOSw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9T
KQotICAgIHZvaWQgZGVmYXVsdFRvdWNoRXZlbnRIYW5kbGVyKE5vZGUqLCBUb3VjaEV2ZW50Kik7
CisgICAgdm9pZCBkZWZhdWx0VG91Y2hFdmVudEhhbmRsZXIoTm9kZSYsIFRvdWNoRXZlbnQmKTsK
ICNlbmRpZgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCkBAIC0yNjQsOCArMjYyLDcgQEAg
cHVibGljOgogICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2VuZFNjcm9sbEV2ZW50KCk7
CiAKLSNpZiBQTEFURk9STShDT0NPQSkgJiYgZGVmaW5lZChfX09CSkNfXykKLSNpZiAhUExBVEZP
Uk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNl
RG93bihOU0V2ZW50ICosIE5TRXZlbnQgKmNvcnJlc3BvbmRpbmdQcmVzc3VyZUV2ZW50KTsKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlRHJhZ2dlZChOU0V2ZW50ICosIE5TRXZlbnQgKmNv
cnJlc3BvbmRpbmdQcmVzc3VyZUV2ZW50KTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNl
VXAoTlNFdmVudCAqLCBOU0V2ZW50ICpjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CkBAIC0y
NzMsNyArMjcwLDkgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcHJlc3N1cmVD
aGFuZ2UoTlNFdmVudCAqLCBOU0V2ZW50KiBjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBrZXlFdmVudChOU0V2ZW50ICopOwogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgd2hlZWxFdmVudChOU0V2ZW50ICopOwotI2Vsc2UKKyNlbmRpZgorCisjaWYg
UExBVEZPUk0oSU9TKQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW91c2VEb3duKFdlYkV2ZW50
ICopOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgbW91c2VVcChXZWJFdmVudCAqKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIG1vdXNlTW92ZWQoV2ViRXZlbnQgKik7CkBAIC0yODUsMjMgKzI4
NCwyMCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB0b3VjaEV2ZW50KFdlYkV2
ZW50ICopOwogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBhc3NNb3VzZU1vdmVkRXZlbnRUb1Njcm9sbGJhcnMo
TlNFdmVudCAqLCBOU0V2ZW50KiBjb3JyZXNwb25kaW5nUHJlc3N1cmVFdmVudCk7CiAKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNlbmRGYWtlRXZlbnRzQWZ0ZXJXaWRnZXRUcmFja2luZyhOU0V2
ZW50ICppbml0aWF0aW5nRXZlbnQpOwotI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oSU9TKQogICAg
IHZvaWQgc2V0QWN0aXZhdGlvbkV2ZW50TnVtYmVyKGludCBudW0pIHsgbV9hY3RpdmF0aW9uRXZl
bnROdW1iZXIgPSBudW07IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOU0V2ZW50ICpj
dXJyZW50TlNFdmVudCgpOwogICAgIHN0YXRpYyBOU0V2ZW50ICpjb3JyZXNwb25kaW5nUHJlc3N1
cmVFdmVudCgpOwotI2Vsc2UKLSAgICBzdGF0aWMgV2ViRXZlbnQgKmN1cnJlbnRFdmVudCgpOwot
I2VuZGlmIC8vICFQTEFURk9STShJT1MpCi0jZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpICYmIGRl
ZmluZWQoX19PQkpDX18pCisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPUykKKyAgICBzdGF0aWMg
V2ViRXZlbnQgKmN1cnJlbnRFdmVudCgpOworCiAgICAgdm9pZCBpbnZhbGlkYXRlQ2xpY2soKTsK
ICNlbmRpZgogCkBAIC0zMjMsOSArMzE5LDggQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoRFJBR19T
VVBQT1JUKQogICAgIHN0YXRpYyBEcmFnU3RhdGUmIGRyYWdTdGF0ZSgpOwogICAgIHN0YXRpYyBj
b25zdCBkb3VibGUgVGV4dERyYWdEZWxheTsKLSAgICAKLSAgICBQYXNzUmVmUHRyPERhdGFUcmFu
c2Zlcj4gY3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdDsKLSNlbmRpZiAvLyBFTkFC
TEUoRFJBR19TVVBQT1JUKQorICAgIFJlZjxEYXRhVHJhbnNmZXI+IGNyZWF0ZURyYWdnaW5nRGF0
YVRyYW5zZmVyKCkgY29uc3Q7CisjZW5kaWYKIAogICAgIGJvb2wgZXZlbnRBY3RpdmF0ZWRWaWV3
KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpIGNvbnN0OwogICAgIGJvb2wgdXBkYXRlU2VsZWN0
aW9uRm9yTW91c2VEb3duRGlzcGF0Y2hpbmdTZWxlY3RTdGFydChOb2RlKiwgY29uc3QgVmlzaWJs
ZVNlbGVjdGlvbiYsIFRleHRHcmFudWxhcml0eSk7CkBAIC0zNDEsMTQgKzMzNiwxOCBAQCBwcml2
YXRlOgogICAgIGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2ZW50U2luZ2xlQ2xpY2soY29uc3QgTW91
c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwogICAgIGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2
ZW50RG91YmxlQ2xpY2soY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwogICAg
IGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2ZW50VHJpcGxlQ2xpY2soY29uc3QgTW91c2VFdmVudFdp
dGhIaXRUZXN0UmVzdWx0cyYpOworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBib29s
IGhhbmRsZU1vdXNlRHJhZ2dlZEV2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3Vs
dHMmKTsKICNlbmRpZgorCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVNb3VzZVJlbGVh
c2VFdmVudChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7CiAKLSAgICBPcHRp
b25hbEN1cnNvciBzZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGJvb2wgc2hpZnRL
ZXkpOworICAgIHN0ZDo6b3B0aW9uYWw8Q3Vyc29yPiBzZWxlY3RDdXJzb3IoY29uc3QgSGl0VGVz
dFJlc3VsdCYsIGJvb2wgc2hpZnRLZXkpOworICAgIHZvaWQgdXBkYXRlQ3Vyc29yKEZyYW1lVmll
dyYsIGNvbnN0IEhpdFRlc3RSZXN1bHQmLCBib29sIHNoaWZ0S2V5KTsKIAogICAgIHZvaWQgaG92
ZXJUaW1lckZpcmVkKCk7CisKICNpZiBFTkFCTEUoQ1VSU09SX1NVUFBPUlQpCiAgICAgdm9pZCBj
dXJzb3JVcGRhdGVUaW1lckZpcmVkKCk7CiAjZW5kaWYKQEAgLTM1OSw4ICszNTgsOCBAQCBwcml2
YXRlOgogICAgIAogICAgIGJvb2wgbW91c2VEb3duTWF5U3RhcnRTZWxlY3QoKSBjb25zdCB7IHJl
dHVybiBtX21vdXNlRG93bk1heVN0YXJ0U2VsZWN0OyB9CiAKLSAgICBzdGF0aWMgYm9vbCBpc0tl
eWJvYXJkT3B0aW9uVGFiKEtleWJvYXJkRXZlbnQqKTsKLSAgICBzdGF0aWMgYm9vbCBldmVudElu
dmVydHNUYWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQoS2V5Ym9hcmRFdmVudCopOworICAgIHN0
YXRpYyBib29sIGlzS2V5Ym9hcmRPcHRpb25UYWIoS2V5Ym9hcmRFdmVudCYpOworICAgIHN0YXRp
YyBib29sIGV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtzQ2xpZW50Q2FsbFJlc3VsdChLZXlib2FyZEV2
ZW50Jik7CiAKICNpZiAhRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgdm9pZCBmYWtlTW91
c2VNb3ZlRXZlbnRUaW1lckZpcmVkKCk7CkBAIC0zODUsNiArMzg0LDcgQEAgcHJpdmF0ZToKICAg
ICBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzIHByZXBhcmVNb3VzZUV2ZW50KGNvbnN0IEhp
dFRlc3RSZXF1ZXN0JiwgY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jik7CiAKICAgICBib29sIGRp
c3BhdGNoTW91c2VFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgTm9kZSogdGFy
Z2V0LCBib29sIGNhbmNlbGFibGUsIGludCBjbGlja0NvdW50LCBjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmLCBib29sIHNldFVuZGVyKTsKKwogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAgICAg
Ym9vbCBkaXNwYXRjaERyYWdFdmVudChjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgRWxl
bWVudCYgdGFyZ2V0LCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBEYXRhVHJhbnNmZXIqKTsK
IApAQCAtMzkyLDcgKzM5Miw5IEBAIHByaXZhdGU6CiAKICAgICBib29sIGhhbmRsZURyYWcoY29u
c3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIENoZWNrRHJhZ0h5c3RlcmVzaXMpOwog
I2VuZGlmCisKICAgICBib29sIGhhbmRsZU1vdXNlVXAoY29uc3QgTW91c2VFdmVudFdpdGhIaXRU
ZXN0UmVzdWx0cyYpOworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICB2b2lkIGNsZWFy
RHJhZ1N0YXRlKCk7CiAKQEAgLTQwMCw3ICs0MDIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBk
cmFnSHlzdGVyZXNpc0V4Y2VlZGVkKGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKICAgICBib29s
IGRyYWdIeXN0ZXJlc2lzRXhjZWVkZWQoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKLSNlbmRpZiAv
LyBFTkFCTEUoRFJBR19TVVBQT1JUKQorI2VuZGlmCiAgICAgCiAgICAgYm9vbCBtb3VzZU1vdmVt
ZW50RXhjZWVkc1RocmVzaG9sZChjb25zdCBGbG9hdFBvaW50JiwgaW50IHBvaW50c1RocmVzaG9s
ZCkgY29uc3Q7CiAKQEAgLTQzMSwxMSArNDMzLDkgQEAgcHJpdmF0ZToKICAgICAvLyBUaGUgZm9s
bG93aW5nIGFyZSBjYWxsZWQgYXQgdGhlIGJlZ2lubmluZyBvZiBoYW5kbGVNb3VzZVVwIGFuZCBo
YW5kbGVEcmFnLiAgCiAgICAgLy8gSWYgdGhleSByZXR1cm4gdHJ1ZSBpdCBpbmRpY2F0ZXMgdGhh
dCB0aGV5IGhhdmUgY29uc3VtZWQgdGhlIGV2ZW50LgogICAgIGJvb2wgZXZlbnRMb29wSGFuZGxl
TW91c2VVcChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7Ci0jaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkKLSAgICBib29sIGV2ZW50TG9vcEhhbmRsZU1vdXNlRHJhZ2dlZChjb25z
dCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJik7Ci0jZW5kaWYKIAogI2lmIEVOQUJMRShE
UkFHX1NVUFBPUlQpCisgICAgYm9vbCBldmVudExvb3BIYW5kbGVNb3VzZURyYWdnZWQoY29uc3Qg
TW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwogICAgIHZvaWQgdXBkYXRlU2VsZWN0aW9u
Rm9yTW91c2VEcmFnKGNvbnN0IEhpdFRlc3RSZXN1bHQmKTsKICNlbmRpZgogCkBAIC00NzMsMjEg
KzQ3MywyNCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxOb2RlPiBtX21vdXNlUHJlc3NOb2RlOwog
CiAgICAgYm9vbCBtX21vdXNlRG93bk1heVN0YXJ0U2VsZWN0IHsgZmFsc2UgfTsKKwogI2lmIEVO
QUJMRShEUkFHX1NVUFBPUlQpCiAgICAgYm9vbCBtX21vdXNlRG93bk1heVN0YXJ0RHJhZyB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2RyYWdNYXlTdGFydFNlbGVjdGlvbkluc3RlYWQgeyBmYWxzZSB9
OwogI2VuZGlmCisKICAgICBib29sIG1fbW91c2VEb3duV2FzU2luZ2xlQ2xpY2tJblNlbGVjdGlv
biB7IGZhbHNlIH07CiAgICAgZW51bSBTZWxlY3Rpb25Jbml0aWF0aW9uU3RhdGUgeyBIYXZlTm90
U3RhcnRlZFNlbGVjdGlvbiwgUGxhY2VkQ2FyZXQsIEV4dGVuZGVkU2VsZWN0aW9uIH07CiAgICAg
U2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlIG1fc2VsZWN0aW9uSW5pdGlhdGlvblN0YXRlIHsgSGF2
ZU5vdFN0YXJ0ZWRTZWxlY3Rpb24gfTsKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi0gICAg
TGF5b3V0UG9pbnQgbV9kcmFnU3RhcnRQb3M7CisgICAgTGF5b3V0UG9pbnQgbV9kcmFnU3RhcnRQ
b3NpdGlvbjsKICNlbmRpZgogCiAgICAgYm9vbCBtX3BhblNjcm9sbEJ1dHRvblByZXNzZWQgeyBm
YWxzZSB9OwogCiAgICAgVGltZXIgbV9ob3ZlclRpbWVyOworCiAjaWYgRU5BQkxFKENVUlNPUl9T
VVBQT1JUKQogICAgIFRpbWVyIG1fY3Vyc29yVXBkYXRlVGltZXI7CiAjZW5kaWYKQEAgLTQ5NSw2
ICs0OTgsNyBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBUaW1lciBtX3BlbmRp
bmdNb21lbnR1bVdoZWVsRXZlbnRzVGltZXI7CiAjZW5kaWYKKwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxBdXRvc2Nyb2xsQ29udHJvbGxlcj4gbV9hdXRvc2Nyb2xsQ29udHJvbGxlcjsKICAgICBib29s
IG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Nyb2xsIHsgZmFsc2UgfTsKICAgICBib29sIG1fbW91
c2VEb3duV2FzSW5TdWJmcmFtZSB7IGZhbHNlIH07CkBAIC01MjMsMTEgKzUyNywxMyBAQCBwcml2
YXRlOgogICAgIGZsb2F0IG1fZ2VzdHVyZUluaXRpYWxEaWFtZXRlciB7IEdlc3R1cmVVbmtub3du
IH07CiAgICAgZmxvYXQgbV9nZXN0dXJlSW5pdGlhbFJvdGF0aW9uIHsgR2VzdHVyZVVua25vd24g
fTsKICNlbmRpZgorCiAjaWYgRU5BQkxFKElPU19HRVNUVVJFX0VWRU5UUykgfHwgRU5BQkxFKE1B
Q19HRVNUVVJFX0VWRU5UUykKICAgICBmbG9hdCBtX2dlc3R1cmVMYXN0RGlhbWV0ZXIgeyBHZXN0
dXJlVW5rbm93biB9OwogICAgIGZsb2F0IG1fZ2VzdHVyZUxhc3RSb3RhdGlvbiB7IEdlc3R1cmVV
bmtub3duIH07CiAgICAgRXZlbnRUYXJnZXRTZXQgbV9nZXN0dXJlVGFyZ2V0czsKICNlbmRpZgor
CiAjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKICAgICBib29sIG1faGFzQWN0aXZlR2Vz
dHVyZSB7IGZhbHNlIH07CiAjZW5kaWYKQEAgLTU1OCwxMiArNTY0LDE0IEBAIHByaXZhdGU6CiAj
aWYgUExBVEZPUk0oQ09DT0EpCiAgICAgTlNWaWV3ICptX21vdXNlRG93blZpZXcgeyBudWxscHRy
IH07CiAgICAgYm9vbCBtX3NlbmRpbmdFdmVudFRvU3VidmlldyB7IGZhbHNlIH07Ci0jaWYgIVBM
QVRGT1JNKElPUykKLSAgICBpbnQgbV9hY3RpdmF0aW9uRXZlbnROdW1iZXIgeyAtMSB9OwogI2Vu
ZGlmCisKKyNpZiBQTEFURk9STShNQUMpCisgICAgaW50IG1fYWN0aXZhdGlvbkV2ZW50TnVtYmVy
IHsgLTEgfTsKICNlbmRpZgorCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykgJiYgIUVOQUJMRShJ
T1NfVE9VQ0hfRVZFTlRTKQotICAgIHR5cGVkZWYgSGFzaE1hcDxpbnQsIFJlZlB0cjxFdmVudFRh
cmdldD4+IFRvdWNoVGFyZ2V0TWFwOworICAgIHVzaW5nIFRvdWNoVGFyZ2V0TWFwID0gSGFzaE1h
cDxpbnQsIFJlZlB0cjxFdmVudFRhcmdldD4+OwogICAgIFRvdWNoVGFyZ2V0TWFwIG1fb3JpZ2lu
YXRpbmdUb3VjaFBvaW50VGFyZ2V0czsKICAgICBSZWZQdHI8RG9jdW1lbnQ+IG1fb3JpZ2luYXRp
bmdUb3VjaFBvaW50RG9jdW1lbnQ7CiAgICAgdW5zaWduZWQgbV9vcmlnaW5hdGluZ1RvdWNoUG9p
bnRUYXJnZXRLZXkgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3Vz
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5jcHAK
aW5kZXggYTdiMjU1N2U2OTQ2ZGI5ZTU2MTE1N2FkZjcyY2MyODI2ZWZlODc0Ny4uNWFhODZjOTlj
ODlmM2FmZWRkYTk3NTg5NmQ3MmMyMDcxNWQ5NTU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRm9j
dXNDb250cm9sbGVyLmNwcApAQCAtMzE2LDcgKzMxNiw3IEBAIEZvY3VzQ29udHJvbGxlcjo6Rm9j
dXNDb250cm9sbGVyKFBhZ2UmIHBhZ2UsIEFjdGl2aXR5U3RhdGU6OkZsYWdzIGFjdGl2aXR5U3Rh
dGUpCiB7CiB9CiAKLXZvaWQgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRnJhbWUoUGFzc1Jl
ZlB0cjxGcmFtZT4gZnJhbWUpCit2b2lkIEZvY3VzQ29udHJvbGxlcjo6c2V0Rm9jdXNlZEZyYW1l
KEZyYW1lKiBmcmFtZSkKIHsKICAgICBBU1NFUlQoIWZyYW1lIHx8IGZyYW1lLT5wYWdlKCkgPT0g
Jm1fcGFnZSk7CiAgICAgaWYgKG1fZm9jdXNlZEZyYW1lID09IGZyYW1lIHx8IG1faXNDaGFuZ2lu
Z0ZvY3VzZWRGcmFtZSkKQEAgLTc2NSw4ICs3NjUsOSBAQCBzdGF0aWMgdm9pZCBjbGVhclNlbGVj
dGlvbklmTmVlZGVkKEZyYW1lKiBvbGRGb2N1c2VkRnJhbWUsIEZyYW1lKiBuZXdGb2N1c2VkRnJh
bQogICAgIG9sZEZvY3VzZWRGcmFtZS0+c2VsZWN0aW9uKCkuY2xlYXIoKTsKIH0KIAotYm9vbCBG
b2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQsIFBhc3NS
ZWZQdHI8RnJhbWU+IG5ld0ZvY3VzZWRGcmFtZSwgRm9jdXNEaXJlY3Rpb24gZGlyZWN0aW9uKQor
Ym9vbCBGb2N1c0NvbnRyb2xsZXI6OnNldEZvY3VzZWRFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQs
IEZyYW1lJiBuZXdGb2N1c2VkRnJhbWUsIEZvY3VzRGlyZWN0aW9uIGRpcmVjdGlvbikKIHsKKyAg
ICBSZWY8RnJhbWU+IHByb3RlY3RlZE5ld0ZvY3VzZWRGcmFtZSA9IG5ld0ZvY3VzZWRGcmFtZTsK
ICAgICBSZWZQdHI8RnJhbWU+IG9sZEZvY3VzZWRGcmFtZSA9IGZvY3VzZWRGcmFtZSgpOwogICAg
IFJlZlB0cjxEb2N1bWVudD4gb2xkRG9jdW1lbnQgPSBvbGRGb2N1c2VkRnJhbWUgPyBvbGRGb2N1
c2VkRnJhbWUtPmRvY3VtZW50KCkgOiBudWxscHRyOwogICAgIApAQCAtNzgwLDcgKzc4MSw3IEBA
IGJvb2wgRm9jdXNDb250cm9sbGVyOjpzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiBlbGVtZW50
LCBQYXNzUmVmUHRyPEZyYW1lPiBuZXdGCiAKICAgICBtX3BhZ2UuZWRpdG9yQ2xpZW50KCkud2ls
bFNldElucHV0TWV0aG9kU3RhdGUoKTsKIAotICAgIGNsZWFyU2VsZWN0aW9uSWZOZWVkZWQob2xk
Rm9jdXNlZEZyYW1lLmdldCgpLCBuZXdGb2N1c2VkRnJhbWUuZ2V0KCksIGVsZW1lbnQpOworICAg
IGNsZWFyU2VsZWN0aW9uSWZOZWVkZWQob2xkRm9jdXNlZEZyYW1lLmdldCgpLCAmbmV3Rm9jdXNl
ZEZyYW1lLCBlbGVtZW50KTsKIAogICAgIGlmICghZWxlbWVudCkgewogICAgICAgICBpZiAob2xk
RG9jdW1lbnQpCkBAIC03OTksMTEgKzgwMCwxMSBAQCBib29sIEZvY3VzQ29udHJvbGxlcjo6c2V0
Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCwgUGFzc1JlZlB0cjxGcmFtZT4gbmV3Rgog
ICAgIGlmIChvbGREb2N1bWVudCAmJiBvbGREb2N1bWVudCAhPSBuZXdEb2N1bWVudC5wdHIoKSkK
ICAgICAgICAgb2xkRG9jdW1lbnQtPnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIpOwogCi0gICAg
aWYgKG5ld0ZvY3VzZWRGcmFtZSAmJiAhbmV3Rm9jdXNlZEZyYW1lLT5wYWdlKCkpIHsKKyAgICBp
ZiAoIW5ld0ZvY3VzZWRGcmFtZS5wYWdlKCkpIHsKICAgICAgICAgc2V0Rm9jdXNlZEZyYW1lKG51
bGxwdHIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQotICAgIHNldEZvY3VzZWRGcmFt
ZShuZXdGb2N1c2VkRnJhbWUpOworICAgIHNldEZvY3VzZWRGcmFtZSgmbmV3Rm9jdXNlZEZyYW1l
KTsKIAogICAgIFJlZjxFbGVtZW50PiBwcm90ZWN0KCplbGVtZW50KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRm9jdXNDb250cm9sbGVyLmgKaW5kZXggZWNiZTM5NjFkYTFmNWIwMDViMDFiY2M4MjUxNmI1
MGEyN2E4ZTJhZS4uYzZkY2YyMjIwOTM1ZWNiYjFmY2JkNDIyMWYyY2EyZDk0NzNmNzdhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Gb2N1c0NvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZvY3VzQ29udHJvbGxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMwLDEyICszMCwxMCBAQAog
I2luY2x1ZGUgIkxheW91dFJlY3QuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0
Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3Rm
L1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXN0cnVjdCBGb2N1c0NhbmRpZGF0
ZTsKIGNsYXNzIENvbnRhaW5lck5vZGU7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEVsZW1lbnQ7
CkBAIC00OCwxOSArNDYsMjEgQEAgY2xhc3MgTm9kZTsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBUcmVl
U2NvcGU7CiAKK3N0cnVjdCBGb2N1c0NhbmRpZGF0ZTsKKwogY2xhc3MgRm9jdXNDb250cm9sbGVy
IHsKLSAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShGb2N1c0NvbnRyb2xsZXIpOyBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAg
ICBleHBsaWNpdCBGb2N1c0NvbnRyb2xsZXIoUGFnZSYsIEFjdGl2aXR5U3RhdGU6OkZsYWdzKTsK
IAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0Rm9jdXNlZEZyYW1lKFBhc3NSZWZQdHI8RnJh
bWU+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldEZvY3VzZWRGcmFtZShGcmFtZSopOwog
ICAgIEZyYW1lKiBmb2N1c2VkRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2ZvY3VzZWRGcmFtZS5n
ZXQoKTsgfQogICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lJiBmb2N1c2VkT3JNYWluRnJhbWUoKSBj
b25zdDsKIAogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0SW5pdGlhbEZvY3VzKEZvY3VzRGly
ZWN0aW9uLCBLZXlib2FyZEV2ZW50Kik7CiAgICAgYm9vbCBhZHZhbmNlRm9jdXMoRm9jdXNEaXJl
Y3Rpb24sIEtleWJvYXJkRXZlbnQmLCBib29sIGluaXRpYWxGb2N1cyA9IGZhbHNlKTsKIAotICAg
IFdFQkNPUkVfRVhQT1JUIGJvb2wgc2V0Rm9jdXNlZEVsZW1lbnQoRWxlbWVudCosIFBhc3NSZWZQ
dHI8RnJhbWU+LCBGb2N1c0RpcmVjdGlvbiA9IEZvY3VzRGlyZWN0aW9uTm9uZSk7CisgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBzZXRGb2N1c2VkRWxlbWVudChFbGVtZW50KiwgRnJhbWUmLCBGb2N1
c0RpcmVjdGlvbiA9IEZvY3VzRGlyZWN0aW9uTm9uZSk7CiAKICAgICB2b2lkIHNldEFjdGl2aXR5
U3RhdGUoQWN0aXZpdHlTdGF0ZTo6RmxhZ3MpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IGVk
YTNjZjZiNGJlM2U5OTI1YjI1MWM1NjdhODRlNDlmNzEwMDZlY2YuLjg3OGVlMWNiMjIwMzY0ZDQ4
MDRjMTNkNDBhMmM4ODEyZjc5OTMyYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC03NzcsNyAr
Nzc3LDcgQEAgdm9pZCBGcmFtZTo6d2lsbERldGFjaFBhZ2UoKQogCiAjaWYgUExBVEZPUk0oSU9T
KQogICAgIGlmIChXZWJUaHJlYWRDb3VudE9mT2JzZXJ2ZWRDb250ZW50TW9kaWZpZXJzKCkgPiAw
ICYmIG1fcGFnZSkKLSAgICAgICAgbV9wYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5jbGVhckNvbnRl
bnRDaGFuZ2VPYnNlcnZlcnModGhpcyk7CisgICAgICAgIG1fcGFnZS0+Y2hyb21lKCkuY2xpZW50
KCkuY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKCp0aGlzKTsKICNlbmRpZgogCiAgICAgc2Ny
aXB0KCkuY2xlYXJTY3JpcHRPYmplY3RzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5jcHAKaW5k
ZXggZGVlYjIzYjc1ODQ0OWJiZmU1YzU1ZjE5ZDgwZDA0OTI4MjkxMTdhYS4uZmRjZjM1NjBlZTRi
MTlmYTk4MDZkNDkzNDBhMjMzODFhOWJhYmUyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmNw
cApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJ
biBNb3Rpb24gTGltaXRlZCAyMDEwLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
QEAgLTYzLDI1ICs2Myw2IEBAIEZyYW1lKiBGcmFtZVRyZWU6OnBhcmVudCgpIGNvbnN0CiAgICAg
cmV0dXJuIG1fcGFyZW50OwogfQogCi1ib29sIEZyYW1lVHJlZTo6dHJhbnNmZXJDaGlsZChQYXNz
UmVmUHRyPEZyYW1lPiBjaGlsZCkKLXsKLSAgICBGcmFtZSogb2xkUGFyZW50ID0gY2hpbGQtPnRy
ZWUoKS5wYXJlbnQoKTsKLSAgICBpZiAob2xkUGFyZW50ID09ICZtX3RoaXNGcmFtZSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOyAvLyB8Y2hpbGR8IGlzIGFscmVhZHkgYSBjaGlsZCBvZiBtX3RoaXNG
cmFtZS4KLQotICAgIGlmIChvbGRQYXJlbnQpCi0gICAgICAgIG9sZFBhcmVudC0+dHJlZSgpLnJl
bW92ZUNoaWxkKGNoaWxkLmdldCgpKTsKLQotICAgIEFTU0VSVChjaGlsZC0+cGFnZSgpID09IG1f
dGhpc0ZyYW1lLnBhZ2UoKSk7Ci0gICAgY2hpbGQtPnRyZWUoKS5tX3BhcmVudCA9ICZtX3RoaXNG
cmFtZTsKLQotICAgIC8vIFdlIG5lZWQgdG8gZW5zdXJlIHRoYXQgdGhlIGNoaWxkIHN0aWxsIGhh
cyBhIHVuaXF1ZSBmcmFtZSBuYW1lIHdpdGggcmVzcGVjdCB0byBpdHMgbmV3IHBhcmVudC4KLSAg
ICBjaGlsZC0+dHJlZSgpLnNldE5hbWUoY2hpbGQtPnRyZWUoKS5tX25hbWUpOwotCi0gICAgYWN0
dWFsbHlBcHBlbmRDaGlsZChjaGlsZCk7IC8vIE5vdGUsIG9uIHJldHVybiB8Y2hpbGR8IGlzIG51
bGwuCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIHVuc2lnbmVkIEZyYW1lVHJlZTo6aW5kZXhJblBh
cmVudCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3BhcmVudCkKQEAgLTk1LDQ2ICs3NiwzMiBAQCB1
bnNpZ25lZCBGcmFtZVRyZWU6OmluZGV4SW5QYXJlbnQoKSBjb25zdAogICAgIFJFTEVBU0VfQVNT
RVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgRnJhbWVUcmVlOjphcHBlbmRDaGlsZChQYXNz
UmVmUHRyPEZyYW1lPiBjaGlsZCkKLXsKLSAgICBBU1NFUlQoY2hpbGQtPnBhZ2UoKSA9PSBtX3Ro
aXNGcmFtZS5wYWdlKCkpOwotICAgIGNoaWxkLT50cmVlKCkubV9wYXJlbnQgPSAmbV90aGlzRnJh
bWU7Ci0gICAgYWN0dWFsbHlBcHBlbmRDaGlsZChjaGlsZCk7IC8vIE5vdGUsIG9uIHJldHVybiB8
Y2hpbGR8IGlzIG51bGwuCi19Ci0KLXZvaWQgRnJhbWVUcmVlOjphY3R1YWxseUFwcGVuZENoaWxk
KFBhc3NSZWZQdHI8RnJhbWU+IGNoaWxkKQordm9pZCBGcmFtZVRyZWU6OmFwcGVuZENoaWxkKEZy
YW1lJiBjaGlsZCkKIHsKLSAgICBBU1NFUlQoY2hpbGQtPnRyZWUoKS5tX3BhcmVudCA9PSAmbV90
aGlzRnJhbWUpOworICAgIEFTU0VSVChjaGlsZC5wYWdlKCkgPT0gbV90aGlzRnJhbWUucGFnZSgp
KTsKKyAgICBjaGlsZC50cmVlKCkubV9wYXJlbnQgPSAmbV90aGlzRnJhbWU7CiAgICAgRnJhbWUq
IG9sZExhc3QgPSBtX2xhc3RDaGlsZDsKLSAgICBtX2xhc3RDaGlsZCA9IGNoaWxkLmdldCgpOwor
ICAgIG1fbGFzdENoaWxkID0gJmNoaWxkOwogCiAgICAgaWYgKG9sZExhc3QpIHsKLSAgICAgICAg
Y2hpbGQtPnRyZWUoKS5tX3ByZXZpb3VzU2libGluZyA9IG9sZExhc3Q7Ci0gICAgICAgIG9sZExh
c3QtPnRyZWUoKS5tX25leHRTaWJsaW5nID0gY2hpbGQ7CisgICAgICAgIGNoaWxkLnRyZWUoKS5t
X3ByZXZpb3VzU2libGluZyA9IG9sZExhc3Q7CisgICAgICAgIG9sZExhc3QtPnRyZWUoKS5tX25l
eHRTaWJsaW5nID0gJmNoaWxkOwogICAgIH0gZWxzZQotICAgICAgICBtX2ZpcnN0Q2hpbGQgPSBj
aGlsZDsKKyAgICAgICAgbV9maXJzdENoaWxkID0gJmNoaWxkOwogCiAgICAgbV9zY29wZWRDaGls
ZENvdW50ID0gaW52YWxpZENvdW50OwogCiAgICAgQVNTRVJUKCFtX2xhc3RDaGlsZC0+dHJlZSgp
Lm1fbmV4dFNpYmxpbmcpOwogfQogCi12b2lkIEZyYW1lVHJlZTo6cmVtb3ZlQ2hpbGQoRnJhbWUq
IGNoaWxkKQordm9pZCBGcmFtZVRyZWU6OnJlbW92ZUNoaWxkKEZyYW1lJiBjaGlsZCkKIHsKLSAg
ICBjaGlsZC0+dHJlZSgpLm1fcGFyZW50ID0gbnVsbHB0cjsKLQotICAgIC8vIFNsaWdodGx5IHRy
aWNreSB3YXkgdG8gcHJldmVudCBkZWxldGluZyB0aGUgY2hpbGQgdW50aWwgd2UgYXJlIGRvbmUg
d2l0aCBpdCwgdy9vCi0gICAgLy8gZXh0cmEgcmVmcy4gVGhlc2Ugc3dhcHMgbGVhdmUgdGhlIGNo
aWxkIGluIGEgY2lyY3VsYXIgbGlzdCBieSBpdHNlbGYuIENsZWFyaW5nIGl0cwotICAgIC8vIHBy
ZXZpb3VzIGFuZCBuZXh0IHdpbGwgdGhlbiBmaW5hbGx5IGRlcmVmIGl0LgotCi0gICAgUmVmUHRy
PEZyYW1lPiYgbmV3TG9jYXRpb25Gb3JOZXh0ID0gbV9maXJzdENoaWxkID09IGNoaWxkID8gbV9m
aXJzdENoaWxkIDogY2hpbGQtPnRyZWUoKS5tX3ByZXZpb3VzU2libGluZy0+dHJlZSgpLm1fbmV4
dFNpYmxpbmc7Ci0gICAgRnJhbWUqJiBuZXdMb2NhdGlvbkZvclByZXZpb3VzID0gbV9sYXN0Q2hp
bGQgPT0gY2hpbGQgPyBtX2xhc3RDaGlsZCA6IGNoaWxkLT50cmVlKCkubV9uZXh0U2libGluZy0+
dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nOwotICAgIHN3YXAobmV3TG9jYXRpb25Gb3JOZXh0LCBj
aGlsZC0+dHJlZSgpLm1fbmV4dFNpYmxpbmcpOwotICAgIC8vIEZvciBzb21lIGluZXhwbGljYWJs
ZSByZWFzb24sIHRoZSBmb2xsb3dpbmcgbGluZSBkb2VzIG5vdCBjb21waWxlIHdpdGhvdXQgdGhl
IGV4cGxpY2l0IHN0ZDo6IG5hbWVzcGFjZQotICAgIHN0ZDo6c3dhcChuZXdMb2NhdGlvbkZvclBy
ZXZpb3VzLCBjaGlsZC0+dHJlZSgpLm1fcHJldmlvdXNTaWJsaW5nKTsKKyAgICBGcmFtZSomIG5l
d0xvY2F0aW9uRm9yUHJldmlvdXMgPSBtX2xhc3RDaGlsZCA9PSAmY2hpbGQgPyBtX2xhc3RDaGls
ZCA6IGNoaWxkLnRyZWUoKS5tX25leHRTaWJsaW5nLT50cmVlKCkubV9wcmV2aW91c1NpYmxpbmc7
CisgICAgUmVmUHRyPEZyYW1lPiYgbmV3TG9jYXRpb25Gb3JOZXh0ID0gbV9maXJzdENoaWxkID09
ICZjaGlsZCA/IG1fZmlyc3RDaGlsZCA6IGNoaWxkLnRyZWUoKS5tX3ByZXZpb3VzU2libGluZy0+
dHJlZSgpLm1fbmV4dFNpYmxpbmc7CiAKLSAgICBjaGlsZC0+dHJlZSgpLm1fcHJldmlvdXNTaWJs
aW5nID0gbnVsbHB0cjsKLSAgICBjaGlsZC0+dHJlZSgpLm1fbmV4dFNpYmxpbmcgPSBudWxscHRy
OworICAgIGNoaWxkLnRyZWUoKS5tX3BhcmVudCA9IG51bGxwdHI7CisgICAgbmV3TG9jYXRpb25G
b3JQcmV2aW91cyA9IHN0ZDo6ZXhjaGFuZ2UoY2hpbGQudHJlZSgpLm1fcHJldmlvdXNTaWJsaW5n
LCBudWxscHRyKTsKKyAgICBuZXdMb2NhdGlvbkZvck5leHQgPSBXVEZNb3ZlKGNoaWxkLnRyZWUo
KS5tX25leHRTaWJsaW5nKTsKIAogICAgIG1fc2NvcGVkQ2hpbGRDb3VudCA9IGludmFsaWRDb3Vu
dDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVHJlZS5oCmluZGV4IGFiMTZmMGFkNjM5NjI1YWUyZDc4YzE3
OWYxMzUzYmI4NGM5OGFlMWEuLjNmODdjMjc5YmRjM2EwNjRmZTg4ODA4YjYwM2EyYWNmN2YyZGM3
ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVUcmVlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVRyZWUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMDYgQXBwbGUgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMTcgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVl
IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1
bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC02NSwx
MCArNjUsOSBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgRnJhbWUqIHRyYXZlcnNlTmV4
dFdpdGhXcmFwKGJvb2wpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JUIEZyYW1lKiB0cmF2ZXJz
ZVByZXZpb3VzV2l0aFdyYXAoYm9vbCkgY29uc3Q7CiAgICAgCi0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBhcHBlbmRDaGlsZChQYXNzUmVmUHRyPEZyYW1lPik7Ci0gICAgYm9vbCB0cmFuc2ZlckNo
aWxkKFBhc3NSZWZQdHI8RnJhbWU+KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGFwcGVuZENo
aWxkKEZyYW1lJik7CiAgICAgdm9pZCBkZXRhY2hGcm9tUGFyZW50KCkgeyBtX3BhcmVudCA9IG51
bGxwdHI7IH0KLSAgICB2b2lkIHJlbW92ZUNoaWxkKEZyYW1lKik7CisgICAgdm9pZCByZW1vdmVD
aGlsZChGcmFtZSYpOwogCiAgICAgRnJhbWUqIGNoaWxkKHVuc2lnbmVkIGluZGV4KSBjb25zdDsK
ICAgICBGcmFtZSogY2hpbGQoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdDsKQEAgLTg3
LDcgKzg2LDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEZyYW1lKiBkZWVwTGFzdENoaWxk
KCkgY29uc3Q7Ci0gICAgdm9pZCBhY3R1YWxseUFwcGVuZENoaWxkKFBhc3NSZWZQdHI8RnJhbWU+
KTsKIAogICAgIGJvb2wgc2NvcGVkQnkoVHJlZVNjb3BlKikgY29uc3Q7CiAgICAgRnJhbWUqIHNj
b3BlZENoaWxkKHVuc2lnbmVkIGluZGV4LCBUcmVlU2NvcGUqKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAppbmRleCBkOTRjOWQ5MjFhNGE0MTk2M2VjOGRhZTc1YzBiNGUyMzI2MDk3
OGEyLi40ZDYzOGEyZTc1M2MxZWFiN2JmYzBkYzc4Yzg3MzdkMGU1MmMyYTBmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCkBAIC02NzcsNyArNjc3LDcgQEAgdm9pZCBGcmFtZVZpZXc6OnNl
dENvbnRlbnRzU2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQogCiAgICAgdXBkYXRlU2Nyb2xsYWJs
ZUFyZWFTZXQoKTsKIAotICAgIHBhZ2UtPmNocm9tZSgpLmNvbnRlbnRzU2l6ZUNoYW5nZWQoJmZy
YW1lKCksIHNpemUpOyAvLyBOb3RpZnkgb25seS4KKyAgICBwYWdlLT5jaHJvbWUoKS5jb250ZW50
c1NpemVDaGFuZ2VkKGZyYW1lKCksIHNpemUpOyAvLyBOb3RpZnkgb25seS4KIAogICAgIGlmIChm
cmFtZSgpLmlzTWFpbkZyYW1lKCkpIHsKICAgICAgICAgZnJhbWUoKS5tYWluRnJhbWUoKS5wYWdl
T3ZlcmxheUNvbnRyb2xsZXIoKS5kaWRDaGFuZ2VEb2N1bWVudFNpemUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWFpbkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
TWFpbkZyYW1lLmNwcAppbmRleCA0ODE3NGNiMjQzN2Q1OTYwYjIxYzUzODM2YzUyNzFiNjYwZDg4
NmMxLi5hMTdiZTNiYjUzYTg5MmY1YmU2MmQ0YzRkNzcyNGUwYWQ0Y2ZkNGNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01haW5GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9NYWluRnJhbWUuY3BwCkBAIC05Miw3ICs5Miw3IEBAIHZvaWQgTWFpbkZyYW1lOjpzZWxm
T25seURlcmVmKCkKIHZvaWQgTWFpbkZyYW1lOjpkcm9wQ2hpbGRyZW4oKQogewogICAgIHdoaWxl
IChGcmFtZSogY2hpbGQgPSB0cmVlKCkuZmlyc3RDaGlsZCgpKQotICAgICAgICB0cmVlKCkucmVt
b3ZlQ2hpbGQoY2hpbGQpOworICAgICAgICB0cmVlKCkucmVtb3ZlQ2hpbGQoKmNoaWxkKTsKIH0K
IAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCmluZGV4IGRiMTdlNmJhZjdhY2U0
YzI3MjY1YzhlZGIzNzA1ZmRiMTdlYjIwYmEuLjdkNmFmMTEwYTRjZDRkYWRlY2VkMjQ1OTA2NjI3
MzA0MmYzZDBjNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAtMzYzLDcgKzM2Myw3IEBAIFZpZXdw
b3J0QXJndW1lbnRzIFBhZ2U6OnZpZXdwb3J0QXJndW1lbnRzKCkgY29uc3QKIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yKiBQYWdlOjpzY3JvbGxpbmdDb29yZGluYXRvcigpCiB7CiAgICAgaWYgKCFtX3Nj
cm9sbGluZ0Nvb3JkaW5hdG9yICYmIG1fc2V0dGluZ3MtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yRW5h
YmxlZCgpKSB7Ci0gICAgICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSBjaHJvbWUoKS5jbGll
bnQoKS5jcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcih0aGlzKTsKKyAgICAgICAgbV9zY3JvbGxp
bmdDb29yZGluYXRvciA9IGNocm9tZSgpLmNsaWVudCgpLmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yKCp0aGlzKTsKICAgICAgICAgaWYgKCFtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKQogICAgICAg
ICAgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvciA9IFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVh
dGUodGhpcyk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3Zl
cmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmNwcAppbmRleCBlNzBi
Y2EwNTIzZjBlMzk1Zjg3N2ZmNjNjMTJhYTM5NTU3YWRlZDdjLi4yY2E4NmY5ODI4MDgxNjM3ODRm
MmFiN2ZhNDNlZWViYmVlMzc5NWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2VPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VPdmVybGF5LmNwcApA
QCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgUGFnZU92ZXJsYXk6OmZhZGVBbmltYXRpb25UaW1lckZp
cmVkKCkKIAogICAgICAgICAvLyBJZiB0aGlzIHdhcyBhIGZhZGUgb3V0LCB1bmluc3RhbGwgdGhl
IHBhZ2Ugb3ZlcmxheS4KICAgICAgICAgaWYgKHdhc0ZhZGluZ091dCkKLSAgICAgICAgICAgIGNv
bnRyb2xsZXIoKS0+dW5pbnN0YWxsUGFnZU92ZXJsYXkodGhpcywgUGFnZU92ZXJsYXk6OkZhZGVN
b2RlOjpEb05vdEZhZGUpOworICAgICAgICAgICAgY29udHJvbGxlcigpLT51bmluc3RhbGxQYWdl
T3ZlcmxheSgqdGhpcywgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xs
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuY3BwCmlu
ZGV4IDg2NmI4NzBjYjhlNGQxYjdlNWQyMWIzYjE2YWMxZTVjNmIzYWJmODMuLjA1NDNiZDUzNGQy
NTFiYTM3ZGNhNDIxZGExN2UyYzk5M2EyZGFmMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2VPdmVybGF5Q29udHJvbGxlci5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTUsMjcgKzk1LDI1IEBAIHN0YXRpYyB2b2lkIHVw
ZGF0ZU92ZXJsYXlHZW9tZXRyeShQYWdlT3ZlcmxheSYgb3ZlcmxheSwgR3JhcGhpY3NMYXllciYg
Z3JhcGhpY3NMCiAgICAgZ3JhcGhpY3NMYXllci5zZXRTaXplKG92ZXJsYXlGcmFtZS5zaXplKCkp
OwogfQogCi12b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6aW5zdGFsbFBhZ2VPdmVybGF5KFBh
c3NSZWZQdHI8UGFnZU92ZXJsYXk+IHBhZ2VPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUg
ZmFkZU1vZGUpCit2b2lkIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6aW5zdGFsbFBhZ2VPdmVybGF5
KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUgZmFkZU1vZGUpCiB7
CiAgICAgY3JlYXRlUm9vdExheWVyc0lmTmVlZGVkKCk7CiAKLSAgICBSZWZQdHI8UGFnZU92ZXJs
YXk+IG92ZXJsYXkgPSBwYWdlT3ZlcmxheTsKLQotICAgIGlmIChtX3BhZ2VPdmVybGF5cy5jb250
YWlucyhvdmVybGF5KSkKKyAgICBpZiAobV9wYWdlT3ZlcmxheXMuY29udGFpbnMoJm92ZXJsYXkp
KQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhZ2VPdmVybGF5cy5hcHBlbmQob3ZlcmxheSk7
CisgICAgbV9wYWdlT3ZlcmxheXMuYXBwZW5kKCZvdmVybGF5KTsKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxHcmFwaGljc0xheWVyPiBsYXllciA9IEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShtX21haW5G
cmFtZS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCksICp0
aGlzKTsKICAgICBsYXllci0+c2V0QW5jaG9yUG9pbnQoRmxvYXRQb2ludDNEKCkpOwotICAgIGxh
eWVyLT5zZXRCYWNrZ3JvdW5kQ29sb3Iob3ZlcmxheS0+YmFja2dyb3VuZENvbG9yKCkpOworICAg
IGxheWVyLT5zZXRCYWNrZ3JvdW5kQ29sb3Iob3ZlcmxheS5iYWNrZ3JvdW5kQ29sb3IoKSk7CiAj
aWZuZGVmIE5ERUJVRwogICAgIGxheWVyLT5zZXROYW1lKCJQYWdlIE92ZXJsYXkgY29udGVudCIp
OwogI2VuZGlmCiAKICAgICB1cGRhdGVTZXR0aW5nc0ZvckxheWVyKCpsYXllcik7CiAKLSAgICBz
d2l0Y2ggKG92ZXJsYXktPm92ZXJsYXlUeXBlKCkpIHsKKyAgICBzd2l0Y2ggKG92ZXJsYXkub3Zl
cmxheVR5cGUoKSkgewogICAgIGNhc2UgUGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlOjpWaWV3Ogog
ICAgICAgICBtX3ZpZXdPdmVybGF5Um9vdExheWVyLT5hZGRDaGlsZChsYXllci5nZXQoKSk7CiAg
ICAgICAgIGJyZWFrOwpAQCAtMTI1LDMzICsxMjMsMzMgQEAgdm9pZCBQYWdlT3ZlcmxheUNvbnRy
b2xsZXI6Omluc3RhbGxQYWdlT3ZlcmxheShQYXNzUmVmUHRyPFBhZ2VPdmVybGF5PiBwYWdlT3Zl
cmwKICAgICB9CiAKICAgICBHcmFwaGljc0xheWVyJiByYXdMYXllciA9ICpsYXllcjsKLSAgICBt
X292ZXJsYXlHcmFwaGljc0xheWVycy5zZXQob3ZlcmxheS5nZXQoKSwgV1RGTW92ZShsYXllcikp
OworICAgIG1fb3ZlcmxheUdyYXBoaWNzTGF5ZXJzLnNldCgmb3ZlcmxheSwgV1RGTW92ZShsYXll
cikpOwogCiAgICAgdXBkYXRlRm9yY2VTeW5jaHJvbm91c1Njcm9sbExheWVyUG9zaXRpb25VcGRh
dGVzKCk7CiAKLSAgICBvdmVybGF5LT5zZXRQYWdlKG1fbWFpbkZyYW1lLnBhZ2UoKSk7CisgICAg
b3ZlcmxheS5zZXRQYWdlKG1fbWFpbkZyYW1lLnBhZ2UoKSk7CiAKICAgICBpZiAoRnJhbWVWaWV3
KiBmcmFtZVZpZXcgPSBtX21haW5GcmFtZS52aWV3KCkpCiAgICAgICAgIGZyYW1lVmlldy0+ZW50
ZXJDb21wb3NpdGluZ01vZGUoKTsKIAotICAgIHVwZGF0ZU92ZXJsYXlHZW9tZXRyeSgqb3Zlcmxh
eSwgcmF3TGF5ZXIpOworICAgIHVwZGF0ZU92ZXJsYXlHZW9tZXRyeShvdmVybGF5LCByYXdMYXll
cik7CiAKICAgICBpZiAoZmFkZU1vZGUgPT0gUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKQot
ICAgICAgICBvdmVybGF5LT5zdGFydEZhZGVJbkFuaW1hdGlvbigpOworICAgICAgICBvdmVybGF5
LnN0YXJ0RmFkZUluQW5pbWF0aW9uKCk7CiB9CiAKLXZvaWQgUGFnZU92ZXJsYXlDb250cm9sbGVy
Ojp1bmluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSogb3ZlcmxheSwgUGFnZU92ZXJsYXk6
OkZhZGVNb2RlIGZhZGVNb2RlKQordm9pZCBQYWdlT3ZlcmxheUNvbnRyb2xsZXI6OnVuaW5zdGFs
bFBhZ2VPdmVybGF5KFBhZ2VPdmVybGF5JiBvdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUg
ZmFkZU1vZGUpCiB7CiAgICAgaWYgKGZhZGVNb2RlID09IFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6
RmFkZSkgewotICAgICAgICBvdmVybGF5LT5zdGFydEZhZGVPdXRBbmltYXRpb24oKTsKKyAgICAg
ICAgb3ZlcmxheS5zdGFydEZhZGVPdXRBbmltYXRpb24oKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIAotICAgIG92ZXJsYXktPnNldFBhZ2UobnVsbHB0cik7CisgICAgb3ZlcmxheS5zZXRQYWdl
KG51bGxwdHIpOwogCi0gICAgbV9vdmVybGF5R3JhcGhpY3NMYXllcnMudGFrZShvdmVybGF5KS0+
cmVtb3ZlRnJvbVBhcmVudCgpOworICAgIG1fb3ZlcmxheUdyYXBoaWNzTGF5ZXJzLnRha2UoJm92
ZXJsYXkpLT5yZW1vdmVGcm9tUGFyZW50KCk7CiAKLSAgICBib29sIHJlbW92ZWQgPSBtX3BhZ2VP
dmVybGF5cy5yZW1vdmVGaXJzdChvdmVybGF5KTsKKyAgICBib29sIHJlbW92ZWQgPSBtX3BhZ2VP
dmVybGF5cy5yZW1vdmVGaXJzdCgmb3ZlcmxheSk7CiAgICAgQVNTRVJUX1VOVVNFRChyZW1vdmVk
LCByZW1vdmVkKTsKIAogICAgIHVwZGF0ZUZvcmNlU3luY2hyb25vdXNTY3JvbGxMYXllclBvc2l0
aW9uVXBkYXRlcygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlT3Zlcmxh
eUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZU92ZXJsYXlDb250cm9sbGVy
LmgKaW5kZXggMzk3ODA5ODIwMDhjNjUxZjI4OGI3OTc2YjFiOTMyOTVhYzUyZTdhNC4uNjM4OTQ3
YzYxODQ2YWIwNjc1Y2U4MDNhYmYxNzZiNmI3MWRkOGMwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlT3ZlcmxheUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2VPdmVybGF5Q29udHJvbGxlci5oCkBAIC0zOSw3ICszOSw2IEBAIGNsYXNzIFBhZ2U7
CiBjbGFzcyBQbGF0Zm9ybU1vdXNlRXZlbnQ7CiAKIGNsYXNzIFBhZ2VPdmVybGF5Q29udHJvbGxl
ciBmaW5hbCA6IHB1YmxpYyBHcmFwaGljc0xheWVyQ2xpZW50IHsKLSAgICBXVEZfTUFLRV9OT05D
T1BZQUJMRShQYWdlT3ZlcmxheUNvbnRyb2xsZXIpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgogICAgIFBhZ2VPdmVybGF5Q29udHJvbGxlcihNYWluRnJhbWUmKTsKQEAg
LTUwLDggKzQ5LDggQEAgcHVibGljOgogCiAgICAgY29uc3QgVmVjdG9yPFJlZlB0cjxQYWdlT3Zl
cmxheT4+JiBwYWdlT3ZlcmxheXMoKSBjb25zdCB7IHJldHVybiBtX3BhZ2VPdmVybGF5czsgfQog
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnN0YWxsUGFnZU92ZXJsYXkoUGFzc1JlZlB0cjxQ
YWdlT3ZlcmxheT4sIFBhZ2VPdmVybGF5OjpGYWRlTW9kZSk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB1bmluc3RhbGxQYWdlT3ZlcmxheShQYWdlT3ZlcmxheSosIFBhZ2VPdmVybGF5OjpGYWRl
TW9kZSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBpbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92
ZXJsYXkmLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
dW5pbnN0YWxsUGFnZU92ZXJsYXkoUGFnZU92ZXJsYXkmLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGUp
OwogCiAgICAgdm9pZCBzZXRQYWdlT3ZlcmxheU5lZWRzRGlzcGxheShQYWdlT3ZlcmxheSYsIGNv
bnN0IEludFJlY3QmKTsKICAgICB2b2lkIHNldFBhZ2VPdmVybGF5T3BhY2l0eShQYWdlT3Zlcmxh
eSYsIGZsb2F0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5jcHAKaW5kZXggN2Zm
ZjEyM2ZmNjQxMzc4MjVjOGQxOTgwM2RiZWNmMzljODYzNjhhZi4uOTNkMzc3N2FhMWE5ZjA3OWY3
MTA0Yzk3NDVkN2RhMWNjYmJmZDU4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Q
YWdlU2VyaWFsaXplci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXpl
ci5jcHAKQEAgLTgwLDggKzgwLDcgQEAgc3RhdGljIGJvb2wgaXNDaGFyc2V0U3BlY2lmeWluZ05v
ZGUoY29uc3QgTm9kZSYgbm9kZSkKICAgICAgICAgICAgIGF0dHJpYnV0ZXMuYXBwZW5kKHN0ZDo6
bWFrZV9wYWlyKGF0dHJpYnV0ZS5uYW1lKCkudG9TdHJpbmcoKSwgYXR0cmlidXRlLnZhbHVlKCku
c3RyaW5nKCkpKTsKICAgICAgICAgfQogICAgIH0KLSAgICBUZXh0RW5jb2RpbmcgdGV4dEVuY29k
aW5nID0gSFRNTE1ldGFDaGFyc2V0UGFyc2VyOjplbmNvZGluZ0Zyb21NZXRhQXR0cmlidXRlcyhh
dHRyaWJ1dGVzKTsKLSAgICByZXR1cm4gdGV4dEVuY29kaW5nLmlzVmFsaWQoKTsKKyAgICByZXR1
cm4gSFRNTE1ldGFDaGFyc2V0UGFyc2VyOjplbmNvZGluZ0Zyb21NZXRhQXR0cmlidXRlcyhhdHRy
aWJ1dGVzKS5pc1ZhbGlkKCk7CiB9CiAKIHN0YXRpYyBib29sIHNob3VsZElnbm9yZUVsZW1lbnQo
Y29uc3QgRWxlbWVudCYgZWxlbWVudCkKQEAgLTk1LDEwICs5NCw5IEBAIHN0YXRpYyBjb25zdCBR
dWFsaWZpZWROYW1lJiBmcmFtZU93bmVyVVJMQXR0cmlidXRlTmFtZShjb25zdCBIVE1MRnJhbWVP
d25lckVsZW1lCiAgICAgcmV0dXJuIGlzPEhUTUxPYmplY3RFbGVtZW50PihmcmFtZU93bmVyKSA/
IEhUTUxOYW1lczo6ZGF0YUF0dHIgOiBIVE1MTmFtZXM6OnNyY0F0dHI7CiB9CiAKLWNsYXNzIFNl
cmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvciBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpNYXJrdXBB
Y2N1bXVsYXRvciB7CitjbGFzcyBQYWdlU2VyaWFsaXplcjo6U2VyaWFsaXplck1hcmt1cEFjY3Vt
dWxhdG9yIGZpbmFsIDogcHVibGljIFdlYkNvcmU6Ok1hcmt1cEFjY3VtdWxhdG9yIHsKIHB1Ymxp
YzoKICAgICBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXImLCBEb2N1
bWVudCYsIFZlY3RvcjxOb2RlKj4qKTsKLSAgICB2aXJ0dWFsIH5TZXJpYWxpemVyTWFya3VwQWNj
dW11bGF0b3IoKTsKIAogcHJpdmF0ZToKICAgICBQYWdlU2VyaWFsaXplciYgbV9zZXJpYWxpemVy
OwpAQCAtMTEwLDcgKzEwOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhcHBlbmRFbmRUYWcoY29u
c3QgRWxlbWVudCYpIG92ZXJyaWRlOwogfTsKIAotU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9y
OjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3IoUGFnZVNlcmlhbGl6ZXImIHNlcmlhbGl6ZXIs
IERvY3VtZW50JiBkb2N1bWVudCwgVmVjdG9yPE5vZGUqPiogbm9kZXMpCitQYWdlU2VyaWFsaXpl
cjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0
b3IoUGFnZVNlcmlhbGl6ZXImIHNlcmlhbGl6ZXIsIERvY3VtZW50JiBkb2N1bWVudCwgVmVjdG9y
PE5vZGUqPiogbm9kZXMpCiAgICAgOiBNYXJrdXBBY2N1bXVsYXRvcihub2RlcywgUmVzb2x2ZUFs
bFVSTHMpCiAgICAgLCBtX3NlcmlhbGl6ZXIoc2VyaWFsaXplcikKICAgICAsIG1fZG9jdW1lbnQo
ZG9jdW1lbnQpCkBAIC0xMjAsMTggKzExOCwxNCBAQCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0
b3I6OlNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcihQYWdlU2VyaWFsaXplciYgc2VyaWFsaQog
ICAgICAgICBhcHBlbmRTdHJpbmcoIjw/eG1sIHZlcnNpb249XCIiICsgbV9kb2N1bWVudC54bWxW
ZXJzaW9uKCkgKyAiXCIgZW5jb2Rpbmc9XCIiICsgbV9kb2N1bWVudC5jaGFyc2V0KCkgKyAiXCI/
PiIpOwogfQogCi1TZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6On5TZXJpYWxpemVyTWFya3Vw
QWNjdW11bGF0b3IoKQotewotfQotCi12b2lkIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjo6
YXBwZW5kVGV4dChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IFRleHQmIHRleHQpCit2b2lkIFBh
Z2VTZXJpYWxpemVyOjpTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVuZFRleHQoU3Ry
aW5nQnVpbGRlciYgb3V0LCBjb25zdCBUZXh0JiB0ZXh0KQogewogICAgIEVsZW1lbnQqIHBhcmVu
dCA9IHRleHQucGFyZW50RWxlbWVudCgpOwogICAgIGlmIChwYXJlbnQgJiYgIXNob3VsZElnbm9y
ZUVsZW1lbnQoKnBhcmVudCkpCiAgICAgICAgIE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRUZXh0
KG91dCwgdGV4dCk7CiB9CiAKLXZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBl
bmRFbGVtZW50KFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgRWxlbWVudCYgZWxlbWVudCwgTmFt
ZXNwYWNlcyogbmFtZXNwYWNlcykKK3ZvaWQgUGFnZVNlcmlhbGl6ZXI6OlNlcmlhbGl6ZXJNYXJr
dXBBY2N1bXVsYXRvcjo6YXBwZW5kRWxlbWVudChTdHJpbmdCdWlsZGVyJiBvdXQsIGNvbnN0IEVs
ZW1lbnQmIGVsZW1lbnQsIE5hbWVzcGFjZXMqIG5hbWVzcGFjZXMpCiB7CiAgICAgaWYgKCFzaG91
bGRJZ25vcmVFbGVtZW50KGVsZW1lbnQpKQogICAgICAgICBNYXJrdXBBY2N1bXVsYXRvcjo6YXBw
ZW5kRWxlbWVudChvdXQsIGVsZW1lbnQsIG5hbWVzcGFjZXMpOwpAQCAtMTQ1LDcgKzEzOSw3IEBA
IHZvaWQgU2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbGVtZW50KFN0cmluZ0J1
aWxkZXImIG91dCwgY29uc3QgRWxlbWVuCiAgICAgLy8gRklYTUU6IEZvciBvYmplY3QgKHBsdWdp
bnMpIHRhZ3MgYW5kIHZpZGVvIHRhZyB3ZSBjb3VsZCByZXBsYWNlIHRoZW0gYnkgYW4gaW1hZ2Ug
b2YgdGhlaXIgY3VycmVudCBjb250ZW50cy4KIH0KIAotdm9pZCBTZXJpYWxpemVyTWFya3VwQWNj
dW11bGF0b3I6OmFwcGVuZEN1c3RvbUF0dHJpYnV0ZXMoU3RyaW5nQnVpbGRlciYgb3V0LCBjb25z
dCBFbGVtZW50JiBlbGVtZW50LCBOYW1lc3BhY2VzKiBuYW1lc3BhY2VzKQordm9pZCBQYWdlU2Vy
aWFsaXplcjo6U2VyaWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRDdXN0b21BdHRyaWJ1
dGVzKFN0cmluZ0J1aWxkZXImIG91dCwgY29uc3QgRWxlbWVudCYgZWxlbWVudCwgTmFtZXNwYWNl
cyogbmFtZXNwYWNlcykKIHsKICAgICBpZiAoIWlzPEhUTUxGcmFtZU93bmVyRWxlbWVudD4oZWxl
bWVudCkpCiAgICAgICAgIHJldHVybjsKQEAgLTE2NCwzMiArMTU4LDIwIEBAIHZvaWQgU2VyaWFs
aXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRDdXN0b21BdHRyaWJ1dGVzKFN0cmluZ0J1aWxk
ZXImIG91dCwgY29uCiAgICAgYXBwZW5kQXR0cmlidXRlKG91dCwgZWxlbWVudCwgQXR0cmlidXRl
KGZyYW1lT3duZXJVUkxBdHRyaWJ1dGVOYW1lKGZyYW1lT3duZXIpLCB1cmwuc3RyaW5nKCkpLCBu
YW1lc3BhY2VzKTsKIH0KIAotdm9pZCBTZXJpYWxpemVyTWFya3VwQWNjdW11bGF0b3I6OmFwcGVu
ZEVuZFRhZyhjb25zdCBFbGVtZW50JiBlbGVtZW50KQordm9pZCBQYWdlU2VyaWFsaXplcjo6U2Vy
aWFsaXplck1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoY29uc3QgRWxlbWVudCYgZWxl
bWVudCkKIHsKICAgICBpZiAoIXNob3VsZElnbm9yZUVsZW1lbnQoZWxlbWVudCkpCiAgICAgICAg
IE1hcmt1cEFjY3VtdWxhdG9yOjphcHBlbmRFbmRUYWcoZWxlbWVudCk7CiB9CiAKLVBhZ2VTZXJp
YWxpemVyOjpSZXNvdXJjZTo6UmVzb3VyY2UoKQotewotfQotCi1QYWdlU2VyaWFsaXplcjo6UmVz
b3VyY2U6OlJlc291cmNlKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSkKLSAgICA6IHVybCh1cmwpCi0gICAgLCBtaW1l
VHlwZShtaW1lVHlwZSkKLSAgICAsIGRhdGEoZGF0YSkKLXsKLX0KLQotUGFnZVNlcmlhbGl6ZXI6
OlBhZ2VTZXJpYWxpemVyKFZlY3RvcjxQYWdlU2VyaWFsaXplcjo6UmVzb3VyY2U+KiByZXNvdXJj
ZXMpCitQYWdlU2VyaWFsaXplcjo6UGFnZVNlcmlhbGl6ZXIoVmVjdG9yPFBhZ2VTZXJpYWxpemVy
OjpSZXNvdXJjZT4mIHJlc291cmNlcykKICAgICA6IG1fcmVzb3VyY2VzKHJlc291cmNlcykKLSAg
ICAsIG1fYmxhbmtGcmFtZUNvdW50ZXIoMCkKIHsKIH0KIAotdm9pZCBQYWdlU2VyaWFsaXplcjo6
c2VyaWFsaXplKFBhZ2UqIHBhZ2UpCit2b2lkIFBhZ2VTZXJpYWxpemVyOjpzZXJpYWxpemUoUGFn
ZSYgcGFnZSkKIHsKLSAgICBzZXJpYWxpemVGcmFtZSgmcGFnZS0+bWFpbkZyYW1lKCkpOworICAg
IHNlcmlhbGl6ZUZyYW1lKCZwYWdlLm1haW5GcmFtZSgpKTsKIH0KIAogdm9pZCBQYWdlU2VyaWFs
aXplcjo6c2VyaWFsaXplRnJhbWUoRnJhbWUqIGZyYW1lKQpAQCAtMjE4LDcgKzIwMCw3IEBAIHZv
aWQgUGFnZVNlcmlhbGl6ZXI6OnNlcmlhbGl6ZUZyYW1lKEZyYW1lKiBmcmFtZSkKICAgICB9CiAg
ICAgU3RyaW5nIHRleHQgPSBhY2N1bXVsYXRvci5zZXJpYWxpemVOb2RlcygqZG9jdW1lbnQtPmRv
Y3VtZW50RWxlbWVudCgpLCBJbmNsdWRlTm9kZSk7CiAgICAgQ1N0cmluZyBmcmFtZUhUTUwgPSB0
ZXh0RW5jb2RpbmcuZW5jb2RlKHRleHQsIEVudGl0aWVzRm9yVW5lbmNvZGFibGVzKTsKLSAgICBt
X3Jlc291cmNlcy0+YXBwZW5kKFJlc291cmNlKHVybCwgZG9jdW1lbnQtPnN1Z2dlc3RlZE1JTUVU
eXBlKCksIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGZyYW1lSFRNTC5kYXRhKCksIGZyYW1lSFRNTC5s
ZW5ndGgoKSkpKTsKKyAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIGRvY3VtZW50LT5zdWdn
ZXN0ZWRNSU1FVHlwZSgpLCBTaGFyZWRCdWZmZXI6OmNyZWF0ZShmcmFtZUhUTUwuZGF0YSgpLCBm
cmFtZUhUTUwubGVuZ3RoKCkpIH0pOwogICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwpOwogCiAg
ICAgZm9yIChhdXRvJiBub2RlIDogbm9kZXMpIHsKQEAgLTI4NCw3ICsyNjYsNyBAQCB2b2lkIFBh
Z2VTZXJpYWxpemVyOjpzZXJpYWxpemVDU1NTdHlsZVNoZWV0KENTU1N0eWxlU2hlZXQqIHN0eWxl
U2hlZXQsIGNvbnN0IFVSTAogICAgICAgICBBU1NFUlQodGV4dEVuY29kaW5nLmlzVmFsaWQoKSk7
CiAgICAgICAgIFN0cmluZyB0ZXh0U3RyaW5nID0gY3NzVGV4dC50b1N0cmluZygpOwogICAgICAg
ICBDU3RyaW5nIHRleHQgPSB0ZXh0RW5jb2RpbmcuZW5jb2RlKHRleHRTdHJpbmcsIEVudGl0aWVz
Rm9yVW5lbmNvZGFibGVzKTsKLSAgICAgICAgbV9yZXNvdXJjZXMtPmFwcGVuZChSZXNvdXJjZSh1
cmwsIFN0cmluZygidGV4dC9jc3MiKSwgU2hhcmVkQnVmZmVyOjpjcmVhdGUodGV4dC5kYXRhKCks
IHRleHQubGVuZ3RoKCkpKSk7CisgICAgICAgIG1fcmVzb3VyY2VzLmFwcGVuZCh7IHVybCwgQVND
SUlMaXRlcmFsIHsgInRleHQvY3NzIiB9LCBTaGFyZWRCdWZmZXI6OmNyZWF0ZSh0ZXh0LmRhdGEo
KSwgdGV4dC5sZW5ndGgoKSkgfSk7CiAgICAgICAgIG1fcmVzb3VyY2VVUkxzLmFkZCh1cmwpOwog
ICAgIH0KIH0KQEAgLTMwNiw4ICsyODgsNyBAQCB2b2lkIFBhZ2VTZXJpYWxpemVyOjphZGRJbWFn
ZVRvUmVzb3VyY2VzKENhY2hlZEltYWdlKiBpbWFnZSwgUmVuZGVyRWxlbWVudCogaW1hZwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgU3RyaW5nIG1pbWVUeXBlID0gaW1hZ2UtPnJlc3Bv
bnNlKCkubWltZVR5cGUoKTsKLSAgICBtX3Jlc291cmNlcy0+YXBwZW5kKFJlc291cmNlKHVybCwg
bWltZVR5cGUsIGRhdGEpKTsKKyAgICBtX3Jlc291cmNlcy5hcHBlbmQoeyB1cmwsIGltYWdlLT5y
ZXNwb25zZSgpLm1pbWVUeXBlKCksIFdURk1vdmUoZGF0YSkgfSk7CiAgICAgbV9yZXNvdXJjZVVS
THMuYWRkKHVybCk7CiB9CiAKQEAgLTMzNCwyMCArMzE1LDE4IEBAIHZvaWQgUGFnZVNlcmlhbGl6
ZXI6OnJldHJpZXZlUmVzb3VyY2VzRm9yUHJvcGVydGllcyhjb25zdCBTdHlsZVByb3BlcnRpZXMq
IHN0eWxlCiAgICAgICAgIGlmICghaW1hZ2UpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAg
ICAgICBVUkwgdXJsID0gZG9jdW1lbnQtPmNvbXBsZXRlVVJMKGltYWdlLT51cmwoKSk7Ci0gICAg
ICAgIGFkZEltYWdlVG9SZXNvdXJjZXMoaW1hZ2UsIG51bGxwdHIsIHVybCk7CisgICAgICAgIGFk
ZEltYWdlVG9SZXNvdXJjZXMoaW1hZ2UsIG51bGxwdHIsIGRvY3VtZW50LT5jb21wbGV0ZVVSTChp
bWFnZS0+dXJsKCkpKTsKICAgICB9CiB9CiAKIFVSTCBQYWdlU2VyaWFsaXplcjo6dXJsRm9yQmxh
bmtGcmFtZShGcmFtZSogZnJhbWUpCiB7Ci0gICAgSGFzaE1hcDxGcmFtZSosIFVSTD46Oml0ZXJh
dG9yIGl0ZXIgPSBtX2JsYW5rRnJhbWVVUkxzLmZpbmQoZnJhbWUpOworICAgIGF1dG8gaXRlciA9
IG1fYmxhbmtGcmFtZVVSTHMuZmluZChmcmFtZSk7CiAgICAgaWYgKGl0ZXIgIT0gbV9ibGFua0Zy
YW1lVVJMcy5lbmQoKSkKICAgICAgICAgcmV0dXJuIGl0ZXItPnZhbHVlOwogICAgIFN0cmluZyB1
cmwgPSAid3ljaXd5ZzovL2ZyYW1lLyIgKyBTdHJpbmc6Om51bWJlcihtX2JsYW5rRnJhbWVDb3Vu
dGVyKyspOwogICAgIFVSTCBmYWtlVVJMKFBhcnNlZFVSTFN0cmluZywgdXJsKTsKICAgICBtX2Js
YW5rRnJhbWVVUkxzLmFkZChmcmFtZSwgZmFrZVVSTCk7Ci0KICAgICByZXR1cm4gZmFrZVVSTDsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlU2VyaWFsaXplci5oCmluZGV4IGExYjQ3YjlkYmJjMDM0
YjE3MjkzNTRjMDgyMWFhYmRkNTc2MmVlYWMuLmQ1NzQzYmM0ZjYxNDYyOTIyOGMzZmZmMGE0YmVk
Y2I4NzUwYzExZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZVNlcmlhbGl6
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2VTZXJpYWxpemVyLmgKQEAgLTMwLDcg
KzMwLDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJVUkwuaCIKICNpbmNsdWRlICJV
UkxIYXNoLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hN
YXAuaD4KQEAgLTU2LDIwICs1NSwyMCBAQCBwdWJsaWM6CiAgICAgICAgIFVSTCB1cmw7CiAgICAg
ICAgIFN0cmluZyBtaW1lVHlwZTsKICAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YTsK
LSAgICAgICAgUmVzb3VyY2UoKTsKLSAgICAgICAgUmVzb3VyY2UoY29uc3QgVVJMJiwgY29uc3Qg
U3RyaW5nJiBtaW1lVHlwZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGRhdGEpOwogICAgIH07
CiAKLSAgICBleHBsaWNpdCBQYWdlU2VyaWFsaXplcihWZWN0b3I8UmVzb3VyY2U+Kik7CisgICAg
ZXhwbGljaXQgUGFnZVNlcmlhbGl6ZXIoVmVjdG9yPFJlc291cmNlPiYpOwogCiAgICAgLy8gSW5p
dGlhdGVzIHRoZSBzZXJpYWxpemF0aW9uIG9mIHRoZSBmcmFtZSdzIHBhZ2UuIEFsbCBzZXJpYWxp
emVkIGNvbnRlbnQgYW5kIHJldHJpZXZlZAogICAgIC8vIHJlc291cmNlcyBhcmUgYWRkZWQgdG8g
dGhlIFZlY3RvciBwYXNzZWQgdG8gdGhlIGNvbnN0cnVjdG9yLiBUaGUgZmlyc3QgcmVzb3VyY2Ug
aW4gdGhhdAogICAgIC8vIHZlY3RvciBpcyB0aGUgdG9wIGZyYW1lIHNlcmlhbGl6ZWQgY29udGVu
dC4KLSAgICB2b2lkIHNlcmlhbGl6ZShQYWdlKik7CisgICAgdm9pZCBzZXJpYWxpemUoUGFnZSYp
OworCitwcml2YXRlOgorICAgIGNsYXNzIFNlcmlhbGl6ZXJNYXJrdXBBY2N1bXVsYXRvcjsKIAog
ICAgIFVSTCB1cmxGb3JCbGFua0ZyYW1lKEZyYW1lKik7CiAKLXByaXZhdGU6CiAgICAgdm9pZCBz
ZXJpYWxpemVGcmFtZShGcmFtZSopOwogCiAgICAgLy8gU2VyaWFsaXplcyB0aGUgc3R5bGVzaGVl
dCBiYWNrIHRvIHRleHQgYW5kIGFkZHMgaXQgdG8gdGhlIHJlc291cmNlcyBpZiBVUkwgaXMgbm90
LWVtcHR5LgpAQCAtODAsMTAgKzc5LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXRyaWV2ZVJl
c291cmNlc0ZvclByb3BlcnRpZXMoY29uc3QgU3R5bGVQcm9wZXJ0aWVzKiwgRG9jdW1lbnQqKTsK
ICAgICB2b2lkIHJldHJpZXZlUmVzb3VyY2VzRm9yUnVsZShTdHlsZVJ1bGUmLCBEb2N1bWVudCop
OwogCi0gICAgVmVjdG9yPFJlc291cmNlPiogbV9yZXNvdXJjZXM7CisgICAgVmVjdG9yPFJlc291
cmNlPiYgbV9yZXNvdXJjZXM7CiAgICAgTGlzdEhhc2hTZXQ8VVJMPiBtX3Jlc291cmNlVVJMczsK
ICAgICBIYXNoTWFwPEZyYW1lKiwgVVJMPiBtX2JsYW5rRnJhbWVVUkxzOwotICAgIHVuc2lnbmVk
IG1fYmxhbmtGcmFtZUNvdW50ZXI7CisgICAgdW5zaWduZWQgbV9ibGFua0ZyYW1lQ291bnRlciB7
IDAgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VFbnRyeS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJm
b3JtYW5jZUVudHJ5LmgKaW5kZXggYjNhODRhM2E5ZGNhODJiYmZhOGIzNDA3NGJlY2M3M2I0ODdl
ZGFhZS4uZjhkNmNhN2ZlYzgwYzBmZmU2YTk4NmViZmU0ODFlYjM0NTBiY2JjNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9QZXJmb3JtYW5jZUVudHJ5LmgKQEAgLTM0LDcgKzM0LDYgQEAKICNpZiBFTkFC
TEUoV0VCX1RJTUlORykKIAogI2luY2x1ZGUgIlBlcmZvcm1hbmNlLmgiCi0jaW5jbHVkZSA8d3Rm
L1Bhc3NSZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0
Zi9UeXBlQ2FzdHMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTU0LDcg
KzUzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc01hcmsoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc01lYXN1cmUoKSBjb25zdCB7IHJldHVybiBm
YWxzZTsgfQogCi0gICAgc3RhdGljIGJvb2wgc3RhcnRUaW1lQ29tcGFyZUxlc3NUaGFuKFBhc3NS
ZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4gYSwgUGFzc1JlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBi
KQorICAgIHN0YXRpYyBib29sIHN0YXJ0VGltZUNvbXBhcmVMZXNzVGhhbihjb25zdCBSZWZQdHI8
UGVyZm9ybWFuY2VFbnRyeT4mIGEsIGNvbnN0IFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiYgYikK
ICAgICB7CiAgICAgICAgIHJldHVybiBhLT5zdGFydFRpbWUoKSA8IGItPnN0YXJ0VGltZSgpOwog
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGlt
aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGVyZm9ybWFuY2VVc2VyVGltaW5nLmNwcApp
bmRleCBkOTUzMTgwNTQ3MGY4ZWVjYTQyODc2M2I3Y2ExZWFjNTNlMTczYjZmLi45YTZjN2FjZTM5
NDBlZTM4ZDY1N2ViYmEzNWExODM2Mzg4MGE0OWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BlcmZvcm1hbmNlVXNlclRpbWluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9QZXJmb3JtYW5jZVVzZXJUaW1pbmcuY3BwCkBAIC04NywxNCArODcsMTQgQEAgVXNlclRpbWlu
Zzo6VXNlclRpbWluZyhQZXJmb3JtYW5jZSYgcGVyZm9ybWFuY2UpCiB7CiB9CiAKLXN0YXRpYyB2
b2lkIGluc2VydFBlcmZvcm1hbmNlRW50cnkoUGVyZm9ybWFuY2VFbnRyeU1hcCYgcGVyZm9ybWFu
Y2VFbnRyeU1hcCwgUGFzc1JlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBwZXJmb3JtYW5jZUVudHJ5
KQorc3RhdGljIHZvaWQgaW5zZXJ0UGVyZm9ybWFuY2VFbnRyeShQZXJmb3JtYW5jZUVudHJ5TWFw
JiBwZXJmb3JtYW5jZUVudHJ5TWFwLCBSZWY8UGVyZm9ybWFuY2VFbnRyeT4mJiBwZXJmb3JtYW5j
ZUVudHJ5KQogewotICAgIFJlZlB0cjxQZXJmb3JtYW5jZUVudHJ5PiBlbnRyeSA9IHBlcmZvcm1h
bmNlRW50cnk7Ci0gICAgUGVyZm9ybWFuY2VFbnRyeU1hcDo6aXRlcmF0b3IgaXQgPSBwZXJmb3Jt
YW5jZUVudHJ5TWFwLmZpbmQoZW50cnktPm5hbWUoKSk7CisgICAgUmVmUHRyPFBlcmZvcm1hbmNl
RW50cnk+IGVudHJ5ID0gV1RGTW92ZShwZXJmb3JtYW5jZUVudHJ5KTsKKyAgICBhdXRvIGl0ID0g
cGVyZm9ybWFuY2VFbnRyeU1hcC5maW5kKGVudHJ5LT5uYW1lKCkpOwogICAgIGlmIChpdCAhPSBw
ZXJmb3JtYW5jZUVudHJ5TWFwLmVuZCgpKQotICAgICAgICBpdC0+dmFsdWUuYXBwZW5kKGVudHJ5
KTsKKyAgICAgICAgaXQtPnZhbHVlLmFwcGVuZChXVEZNb3ZlKGVudHJ5KSk7CiAgICAgZWxzZQot
ICAgICAgICBwZXJmb3JtYW5jZUVudHJ5TWFwLnNldChlbnRyeS0+bmFtZSgpLCBWZWN0b3I8UmVm
UHRyPFBlcmZvcm1hbmNlRW50cnk+PnsgZW50cnkgfSk7CisgICAgICAgIHBlcmZvcm1hbmNlRW50
cnlNYXAuc2V0KGVudHJ5LT5uYW1lKCksIFZlY3RvcjxSZWZQdHI8UGVyZm9ybWFuY2VFbnRyeT4+
IHsgV1RGTW92ZShlbnRyeSkgfSk7CiB9CiAKIHN0YXRpYyB2b2lkIGNsZWFyUGVmb3JtYW5jZUVu
dHJpZXMoUGVyZm9ybWFuY2VFbnRyeU1hcCYgcGVyZm9ybWFuY2VFbnRyeU1hcCwgY29uc3QgU3Ry
aW5nJiBuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNvdXJjZVVzYWdl
T3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmNw
cAppbmRleCBhZTgxMTJjYTI2Mzk5MTZmNDE0NWU5MzIzZGUwZDJmMjgxOTVhY2IwLi5lNzQzZDg4
MGUyMGNiMWZkZjg1NzAxNjBkMGIxYWQ1ODM5MjliOGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1Jlc291cmNlVXNhZ2VPdmVybGF5LmNwcApAQCAtNTMsNyArNTMsNyBAQCBSZXNvdXJjZVVz
YWdlT3ZlcmxheTo6flJlc291cmNlVXNhZ2VPdmVybGF5KCkKIAogICAgIC8vIEZJWE1FOiBUaGlz
IGlzIGEgaGFjayBzbyB3ZSBkb24ndCB0cnkgdG8gdW5pbnN0YWxsIHRoZSBQYWdlT3ZlcmxheSBk
dXJpbmcgUGFnZSBkZXN0cnVjdGlvbi4KICAgICBpZiAobV9wYWdlLm1haW5GcmFtZSgpLnBhZ2Uo
KSkKLSAgICAgICAgbV9wYWdlLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVu
aW5zdGFsbFBhZ2VPdmVybGF5KG1fb3ZlcmxheS5nZXQoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2Rl
OjpEb05vdEZhZGUpOworICAgICAgICBtX3BhZ2UubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250
cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fb3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZh
ZGVNb2RlOjpEb05vdEZhZGUpOwogfQogCiB2b2lkIFJlc291cmNlVXNhZ2VPdmVybGF5Ojppbml0
aWFsaXplKCkKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBSZXNvdXJjZVVzYWdlT3ZlcmxheTo6aW5p
dGlhbGl6ZSgpCiAKICAgICBtX292ZXJsYXktPnNldEZyYW1lKGluaXRpYWxSZWN0KTsKICAgICBt
X292ZXJsYXktPnNldFNob3VsZElnbm9yZU1vdXNlRXZlbnRzT3V0c2lkZUJvdW5kcyhmYWxzZSk7
Ci0gICAgbV9wYWdlLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQ
YWdlT3ZlcmxheShtX292ZXJsYXkuZ2V0KCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RG
YWRlKTsKKyAgICBtX3BhZ2UubWFpbkZyYW1lKCkucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5z
dGFsbFBhZ2VPdmVybGF5KCptX292ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RG
YWRlKTsKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5oCmluZGV4IDVhZGUwMDIyZWJjMGQ4NGQyNzg2
OGZlMjRiNTRkNjZhNjFlNzdlNTguLjJkZDBjMzA5ZTA1ODJmMzVjZjkzNmY1MGFjZDljMWFjMzQx
NjM1NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlv
bkJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNl
LmgKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJBbmltYXRpb24uaCIKICNpbmNsdWRlICJD
U1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGVDb25zdGFudHMuaCIKLSNp
bmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0F0b21pY1N0cmlu
Zy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDU4ODk2ZGIyZjFlOWZk
NDUzNzhiMzY3YzAwZWM3MTdiYjEzZTQ5OWMuLjRjNDBjOTIzYTIzZTIzMzg4NDA4NDJlODgzY2Uw
NWRiMWU3YmRkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Fu
aW1hdGlvbkNvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9u
L0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgYm9vbCBBbmltYXRp
b25Db250cm9sbGVyUHJpdmF0ZTo6Y2xlYXIoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiAgICAg
RWxlbWVudCogZWxlbWVudCA9IHJlbmRlcmVyLmVsZW1lbnQoKTsKIAogICAgIG1fZXZlbnRzVG9E
aXNwYXRjaC5yZW1vdmVBbGxNYXRjaGluZyhbZWxlbWVudF0gKGNvbnN0IEV2ZW50VG9EaXNwYXRj
aCYgaW5mbykgewotICAgICAgICByZXR1cm4gaW5mby5lbGVtZW50ID09IGVsZW1lbnQ7CisgICAg
ICAgIHJldHVybiBpbmZvLmVsZW1lbnQucHRyKCkgPT0gZWxlbWVudDsKICAgICB9KTsKIAogICAg
IG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLnJlbW92ZUFsbE1hdGNoaW5nKFtlbGVtZW50XShh
dXRvJiBjdXJyZW50RWxlbWVudCkgewpAQCAtMjAzLDcgKzIwMyw3IEBAIHZvaWQgQW5pbWF0aW9u
Q29udHJvbGxlclByaXZhdGU6OmZpcmVFdmVudHNBbmRVcGRhdGVTdHlsZSgpCiAgICAgLy8gZmly
ZSBhbGwgdGhlIGV2ZW50cwogICAgIFZlY3RvcjxFdmVudFRvRGlzcGF0Y2g+IGV2ZW50c1RvRGlz
cGF0Y2ggPSBXVEZNb3ZlKG1fZXZlbnRzVG9EaXNwYXRjaCk7CiAgICAgZm9yIChhdXRvJiBldmVu
dCA6IGV2ZW50c1RvRGlzcGF0Y2gpIHsKLSAgICAgICAgRWxlbWVudCYgZWxlbWVudCA9ICpldmVu
dC5lbGVtZW50OworICAgICAgICBFbGVtZW50JiBlbGVtZW50ID0gZXZlbnQuZWxlbWVudDsKICAg
ICAgICAgaWYgKGV2ZW50LmV2ZW50VHlwZSA9PSBldmVudE5hbWVzKCkudHJhbnNpdGlvbmVuZEV2
ZW50KQogICAgICAgICAgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KFRyYW5zaXRpb25FdmVudDo6
Y3JlYXRlKGV2ZW50LmV2ZW50VHlwZSwgZXZlbnQubmFtZSwgZXZlbnQuZWxhcHNlZFRpbWUsIFBz
ZXVkb0VsZW1lbnQ6OnBzZXVkb0VsZW1lbnROYW1lRm9yRXZlbnRzKGVsZW1lbnQucHNldWRvSWQo
KSkpKTsKICAgICAgICAgZWxzZQpAQCAtMjI1LDIxICsyMjUsMTUgQEAgdm9pZCBBbmltYXRpb25D
b250cm9sbGVyUHJpdmF0ZTo6c3RhcnRVcGRhdGVTdHlsZUlmTmVlZGVkRGlzcGF0Y2hlcigpCiAg
ICAgICAgIG1fdXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNoZXIuc3RhcnRPbmVTaG90KDApOwog
fQogCi12b2lkIEFuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2go
UGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlw
ZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpCit2b2lkIEFuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlOjphZGRFdmVudFRvRGlzcGF0Y2goRWxlbWVudCYgZWxlbWVudCwg
Y29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSwgZG91Ymxl
IGVsYXBzZWRUaW1lKQogewotICAgIG1fZXZlbnRzVG9EaXNwYXRjaC5ncm93KG1fZXZlbnRzVG9E
aXNwYXRjaC5zaXplKCkrMSk7Ci0gICAgRXZlbnRUb0Rpc3BhdGNoJiBldmVudCA9IG1fZXZlbnRz
VG9EaXNwYXRjaFttX2V2ZW50c1RvRGlzcGF0Y2guc2l6ZSgpLTFdOwotICAgIGV2ZW50LmVsZW1l
bnQgPSBlbGVtZW50OwotICAgIGV2ZW50LmV2ZW50VHlwZSA9IGV2ZW50VHlwZTsKLSAgICBldmVu
dC5uYW1lID0gbmFtZTsKLSAgICBldmVudC5lbGFwc2VkVGltZSA9IGVsYXBzZWRUaW1lOwotICAg
IAorICAgIG1fZXZlbnRzVG9EaXNwYXRjaC5hcHBlbmQoeyBlbGVtZW50LCBldmVudFR5cGUsIG5h
bWUsIGVsYXBzZWRUaW1lIH0pOwogICAgIHN0YXJ0VXBkYXRlU3R5bGVJZk5lZWRlZERpc3BhdGNo
ZXIoKTsKIH0KIAotdm9pZCBBbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZTo6YWRkRWxlbWVudENo
YW5nZVRvRGlzcGF0Y2goUmVmPEVsZW1lbnQ+JiYgZWxlbWVudCkKK3ZvaWQgQW5pbWF0aW9uQ29u
dHJvbGxlclByaXZhdGU6OmFkZEVsZW1lbnRDaGFuZ2VUb0Rpc3BhdGNoKEVsZW1lbnQmIGVsZW1l
bnQpCiB7Ci0gICAgbV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2guYXBwZW5kKFdURk1vdmUoZWxl
bWVudCkpOworICAgIG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoLmFwcGVuZChlbGVtZW50KTsK
ICAgICBBU1NFUlQobV9lbGVtZW50Q2hhbmdlc1RvRGlzcGF0Y2gubGFzdCgpLT5kb2N1bWVudCgp
LnBhZ2VDYWNoZVN0YXRlKCkgPT0gRG9jdW1lbnQ6Ok5vdEluUGFnZUNhY2hlKTsKICAgICBzdGFy
dFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNwYXRjaGVyKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUuaApp
bmRleCBmYjljYzgyYjgxNTE3ZDBiYTMyNzNmMzgwZjIwYmNkOGE5ODYxZjU4Li40OWFkM2Y5Yzk1
NDI1NWMzMWQwZmJmZmE0YzYyNjhiMDY3OTIxN2UwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyUHJpdmF0ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXJQcml2YXRlLmgKQEAg
LTI5LDMzICsyOSwyMSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBbmltYXRpb25CYXNl
LmgiCi0jaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAj
aW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1
ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFz
cyBBbmltYXRpb25CYXNlOwogY2xhc3MgQ29tcG9zaXRlQW5pbWF0aW9uOwogY2xhc3MgRG9jdW1l
bnQ7Ci1jbGFzcyBFbGVtZW50OwogY2xhc3MgRnJhbWU7Ci1jbGFzcyBSZW5kZXJFbGVtZW50Owot
Y2xhc3MgUmVuZGVyU3R5bGU7CiAKLWVudW0gU2V0Q2hhbmdlZCB7Ci0gICAgRG9Ob3RDYWxsU2V0
Q2hhbmdlZCA9IDAsCi0gICAgQ2FsbFNldENoYW5nZWQgPSAxCi19OworZW51bSBTZXRDaGFuZ2Vk
IHsgRG9Ob3RDYWxsU2V0Q2hhbmdlZCwgQ2FsbFNldENoYW5nZWQgfTsKIAogY2xhc3MgQW5pbWF0
aW9uQ29udHJvbGxlclByaXZhdGUgewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFuaW1hdGlv
bkNvbnRyb2xsZXJQcml2YXRlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CisgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgQW5pbWF0aW9uQ29udHJv
bGxlclByaXZhdGUoRnJhbWUmKTsKICAgICB+QW5pbWF0aW9uQ29udHJvbGxlclByaXZhdGUoKTsK
QEAgLTY5LDggKzU3LDggQEAgcHVibGljOgogCiAgICAgdm9pZCB1cGRhdGVTdHlsZUlmTmVlZGVk
RGlzcGF0Y2hlckZpcmVkKCk7CiAgICAgdm9pZCBzdGFydFVwZGF0ZVN0eWxlSWZOZWVkZWREaXNw
YXRjaGVyKCk7Ci0gICAgdm9pZCBhZGRFdmVudFRvRGlzcGF0Y2goUGFzc1JlZlB0cjxFbGVtZW50
PiBlbGVtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBu
YW1lLCBkb3VibGUgZWxhcHNlZFRpbWUpOwotICAgIHZvaWQgYWRkRWxlbWVudENoYW5nZVRvRGlz
cGF0Y2goUmVmPEVsZW1lbnQ+JiYpOworICAgIHZvaWQgYWRkRXZlbnRUb0Rpc3BhdGNoKEVsZW1l
bnQmLCBjb25zdCBBdG9taWNTdHJpbmcmIGV2ZW50VHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lLCBk
b3VibGUgZWxhcHNlZFRpbWUpOworICAgIHZvaWQgYWRkRWxlbWVudENoYW5nZVRvRGlzcGF0Y2go
RWxlbWVudCYpOwogCiAgICAgYm9vbCBoYXNBbmltYXRpb25zKCkgY29uc3QgeyByZXR1cm4gIW1f
Y29tcG9zaXRlQW5pbWF0aW9ucy5pc0VtcHR5KCk7IH0KIApAQCAtMTM0LDIxICsxMjIsMTkgQEAg
cHJpdmF0ZToKICAgICBUaW1lciBtX2FuaW1hdGlvblRpbWVyOwogICAgIFRpbWVyIG1fdXBkYXRl
U3R5bGVJZk5lZWRlZERpc3BhdGNoZXI7CiAgICAgRnJhbWUmIG1fZnJhbWU7Ci0gICAgCi0gICAg
Y2xhc3MgRXZlbnRUb0Rpc3BhdGNoIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFJlZlB0cjxFbGVt
ZW50PiBlbGVtZW50OworCisgICAgc3RydWN0IEV2ZW50VG9EaXNwYXRjaCB7CisgICAgICAgIFJl
ZjxFbGVtZW50PiBlbGVtZW50OwogICAgICAgICBBdG9taWNTdHJpbmcgZXZlbnRUeXBlOwogICAg
ICAgICBTdHJpbmcgbmFtZTsKICAgICAgICAgZG91YmxlIGVsYXBzZWRUaW1lOwogICAgIH07Ci0g
ICAgCiAgICAgVmVjdG9yPEV2ZW50VG9EaXNwYXRjaD4gbV9ldmVudHNUb0Rpc3BhdGNoOwogICAg
IFZlY3RvcjxSZWY8RWxlbWVudD4+IG1fZWxlbWVudENoYW5nZXNUb0Rpc3BhdGNoOwogICAgIAog
ICAgIGRvdWJsZSBtX2JlZ2luQW5pbWF0aW9uVXBkYXRlVGltZTsKIAotICAgIHR5cGVkZWYgSGFz
aFNldDxSZWZQdHI8QW5pbWF0aW9uQmFzZT4+IEFuaW1hdGlvbnNTZXQ7CisgICAgdXNpbmcgQW5p
bWF0aW9uc1NldCA9IEhhc2hTZXQ8UmVmUHRyPEFuaW1hdGlvbkJhc2U+PjsKICAgICBBbmltYXRp
b25zU2V0IG1fYW5pbWF0aW9uc1dhaXRpbmdGb3JTdHlsZTsKICAgICBBbmltYXRpb25zU2V0IG1f
YW5pbWF0aW9uc1dhaXRpbmdGb3JTdGFydFRpbWVSZXNwb25zZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vQ1NTUHJvcGVydHlBbmltYXRpb24uY3BwCmluZGV4
IDlmNmI5MTdjNmVjMWM2ZmViYmE2OTQwYTE2NzA1YmRiZDVhYzc0Y2YuLjhjNTQwM2E0YzE5NjM3
YWE2MjFkZTZhNDA3MTYwNzFhZTc4MzUwMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0NTU1Byb3BlcnR5QW5pbWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2FuaW1hdGlvbi9DU1NQcm9wZXJ0eUFuaW1hdGlvbi5jcHAKQEAgLTEyNSw3ICsxMjUs
NyBAQCBzdGF0aWMgaW5saW5lIFRyYW5zZm9ybU9wZXJhdGlvbnMgYmxlbmRGdW5jKGNvbnN0IEFu
aW1hdGlvbkJhc2UqIGFuaW1hdGlvbiwgY29ucwogICAgIHJldHVybiB0by5ibGVuZEJ5VXNpbmdN
YXRyaXhJbnRlcnBvbGF0aW9uKGZyb20sIHByb2dyZXNzLCBpczxSZW5kZXJCb3g+KCphbmltYXRp
b24tPnJlbmRlcmVyKCkpID8gZG93bmNhc3Q8UmVuZGVyQm94PigqYW5pbWF0aW9uLT5yZW5kZXJl
cigpKS5ib3JkZXJCb3hSZWN0KCkuc2l6ZSgpIDogTGF5b3V0U2l6ZSgpKTsKIH0KIAotc3RhdGlj
IGlubGluZSBQYXNzUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29uc3QgQW5p
bWF0aW9uQmFzZSosIENsaXBQYXRoT3BlcmF0aW9uKiBmcm9tLCBDbGlwUGF0aE9wZXJhdGlvbiog
dG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUgUmVmUHRyPENsaXBQYXRoT3BlcmF0
aW9uPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSosIENsaXBQYXRoT3BlcmF0aW9uKiBm
cm9tLCBDbGlwUGF0aE9wZXJhdGlvbiogdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAgICBpZiAo
IWZyb20gfHwgIXRvKQogICAgICAgICByZXR1cm4gdG87CkBAIC0xNDMsNyArMTQzLDcgQEAgc3Rh
dGljIGlubGluZSBQYXNzUmVmUHRyPENsaXBQYXRoT3BlcmF0aW9uPiBibGVuZEZ1bmMoY29uc3Qg
QW5pbWF0aW9uQmFzZSosIENsaXAKICAgICByZXR1cm4gU2hhcGVDbGlwUGF0aE9wZXJhdGlvbjo6
Y3JlYXRlKHRvU2hhcGUuYmxlbmQoZnJvbVNoYXBlLCBwcm9ncmVzcykpOwogfQogCi1zdGF0aWMg
aW5saW5lIFBhc3NSZWZQdHI8U2hhcGVWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlvbkJh
c2UqLCBTaGFwZVZhbHVlKiBmcm9tLCBTaGFwZVZhbHVlKiB0bywgZG91YmxlIHByb2dyZXNzKQor
c3RhdGljIGlubGluZSBSZWZQdHI8U2hhcGVWYWx1ZT4gYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlv
bkJhc2UqLCBTaGFwZVZhbHVlKiBmcm9tLCBTaGFwZVZhbHVlKiB0bywgZG91YmxlIHByb2dyZXNz
KQogewogICAgIGlmICghZnJvbSB8fCAhdG8pCiAgICAgICAgIHJldHVybiB0bzsKQEAgLTE2Myw3
ICsxNjMsNyBAQCBzdGF0aWMgaW5saW5lIFBhc3NSZWZQdHI8U2hhcGVWYWx1ZT4gYmxlbmRGdW5j
KGNvbnN0IEFuaW1hdGlvbkJhc2UqLCBTaGFwZVZhbHVlKgogICAgIHJldHVybiBTaGFwZVZhbHVl
OjpjcmVhdGUodG9TaGFwZS5ibGVuZChmcm9tU2hhcGUsIHByb2dyZXNzKSwgdG8tPmNzc0JveCgp
KTsKIH0KIAotc3RhdGljIGlubGluZSBQYXNzUmVmUHRyPEZpbHRlck9wZXJhdGlvbj4gYmxlbmRG
dW5jKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW1hdGlvbiwgRmlsdGVyT3BlcmF0aW9uKiBmcm9t
T3AsIEZpbHRlck9wZXJhdGlvbiogdG9PcCwgZG91YmxlIHByb2dyZXNzLCBib29sIGJsZW5kVG9Q
YXNzdGhyb3VnaCA9IGZhbHNlKQorc3RhdGljIGlubGluZSBSZWZQdHI8RmlsdGVyT3BlcmF0aW9u
PiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbWF0aW9uLCBGaWx0ZXJPcGVyYXRp
b24qIGZyb21PcCwgRmlsdGVyT3BlcmF0aW9uKiB0b09wLCBkb3VibGUgcHJvZ3Jlc3MsIGJvb2wg
YmxlbmRUb1Bhc3N0aHJvdWdoID0gZmFsc2UpCiB7CiAgICAgQVNTRVJUKHRvT3ApOwogICAgIGlm
ICh0b09wLT5ibGVuZGluZ05lZWRzUmVuZGVyZXJTaXplKCkpIHsKQEAgLTIxOCw3ICsyMTgsNyBA
QCBzdGF0aWMgaW5saW5lIEZpbHRlck9wZXJhdGlvbnMgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlv
bkJhc2UqIGFuaW0sIGNvbnN0IEZpbHRlcgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0YXRp
YyBpbmxpbmUgUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBibGVuZEZpbHRlcihjb25zdCBBbmltYXRp
b25CYXNlKiBhbmltLCBDYWNoZWRJbWFnZSogaW1hZ2UsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMm
IGZyb20sIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0
aWMgaW5saW5lIFJlZlB0cjxTdHlsZUltYWdlPiBibGVuZEZpbHRlcihjb25zdCBBbmltYXRpb25C
YXNlKiBhbmltLCBDYWNoZWRJbWFnZSogaW1hZ2UsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIGZy
b20sIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIHRvLCBkb3VibGUgcHJvZ3Jlc3MpCiB7CiAgICAg
QVNTRVJUKGltYWdlKTsKICAgICBGaWx0ZXJPcGVyYXRpb25zIGZpbHRlclJlc3VsdCA9IGJsZW5k
RmlsdGVyT3BlcmF0aW9ucyhhbmltLCBmcm9tLCB0bywgcHJvZ3Jlc3MpOwpAQCAtMjc4LDcgKzI3
OCw3IEBAIHN0YXRpYyBpbmxpbmUgVmVjdG9yPFNWR0xlbmd0aFZhbHVlPiBibGVuZEZ1bmMoY29u
c3QgQW5pbWF0aW9uQmFzZSosIGNvbnN0IFZlY3RvCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAot
c3RhdGljIGlubGluZSBQYXNzUmVmUHRyPFN0eWxlSW1hZ2U+IGNyb3NzZmFkZUJsZW5kKGNvbnN0
IEFuaW1hdGlvbkJhc2UqLCBTdHlsZUNhY2hlZEltYWdlKiBmcm9tU3R5bGVJbWFnZSwgU3R5bGVD
YWNoZWRJbWFnZSogdG9TdHlsZUltYWdlLCBkb3VibGUgcHJvZ3Jlc3MpCitzdGF0aWMgaW5saW5l
IFJlZlB0cjxTdHlsZUltYWdlPiBjcm9zc2ZhZGVCbGVuZChjb25zdCBBbmltYXRpb25CYXNlKiwg
U3R5bGVDYWNoZWRJbWFnZSogZnJvbVN0eWxlSW1hZ2UsIFN0eWxlQ2FjaGVkSW1hZ2UqIHRvU3R5
bGVJbWFnZSwgZG91YmxlIHByb2dyZXNzKQogewogICAgIC8vIElmIHByb2dyZXNzIGlzIGF0IG9u
ZSBvZiB0aGUgZXh0cmVtZXMsIHdlIHdhbnQgZ2V0Q29tcHV0ZWRTdHlsZSB0byBzaG93IHRoZSBp
bWFnZSwKICAgICAvLyBub3QgYSBjb21wbGV0ZWQgY3Jvc3MtZmFkZSwgc28gd2UgaGFuZCBiYWNr
IG9uZSBvZiB0aGUgZXhpc3RpbmcgaW1hZ2VzLgpAQCAtMjk1LDcgKzI5NSw3IEBAIHN0YXRpYyBp
bmxpbmUgUGFzc1JlZlB0cjxTdHlsZUltYWdlPiBjcm9zc2ZhZGVCbGVuZChjb25zdCBBbmltYXRp
b25CYXNlKiwgU3R5bGVDCiAgICAgcmV0dXJuIFN0eWxlR2VuZXJhdGVkSW1hZ2U6OmNyZWF0ZShX
VEZNb3ZlKGNyb3NzZmFkZVZhbHVlKSk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgUGFzc1JlZlB0cjxT
dHlsZUltYWdlPiBibGVuZEZ1bmMoY29uc3QgQW5pbWF0aW9uQmFzZSogYW5pbSwgU3R5bGVJbWFn
ZSogZnJvbSwgU3R5bGVJbWFnZSogdG8sIGRvdWJsZSBwcm9ncmVzcykKK3N0YXRpYyBpbmxpbmUg
UmVmUHRyPFN0eWxlSW1hZ2U+IGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25CYXNlKiBhbmltLCBT
dHlsZUltYWdlKiBmcm9tLCBTdHlsZUltYWdlKiB0bywgZG91YmxlIHByb2dyZXNzKQogewogICAg
IGlmICghZnJvbSB8fCAhdG8pCiAgICAgICAgIHJldHVybiB0bzsKQEAgLTM2NCwxMSArMzY0LDEy
IEBAIHN0YXRpYyBpbmxpbmUgTmluZVBpZWNlSW1hZ2UgYmxlbmRGdW5jKGNvbnN0IEFuaW1hdGlv
bkJhc2UqIGFuaW0sIGNvbnN0IE5pbmVQaWVjCiAgICAgaWYgKGZyb20uaW1hZ2UoKS0+aW1hZ2VT
aXplKGFuaW0tPnJlbmRlcmVyKCksIDEuMCkgIT0gdG8uaW1hZ2UoKS0+aW1hZ2VTaXplKGFuaW0t
PnJlbmRlcmVyKCksIDEuMCkpCiAgICAgICAgIHJldHVybiB0bzsKIAotICAgIGF1dG8gbmV3Q29u
dGVudEltYWdlID0gYmxlbmRGdW5jKGFuaW0sIGZyb20uaW1hZ2UoKSwgdG8uaW1hZ2UoKSwgcHJv
Z3Jlc3MpOwotICAgIHJldHVybiBOaW5lUGllY2VJbWFnZShuZXdDb250ZW50SW1hZ2UsIGZyb20u
aW1hZ2VTbGljZXMoKSwgZnJvbS5maWxsKCksIGZyb20uYm9yZGVyU2xpY2VzKCksIGZyb20ub3V0
c2V0KCksIGZyb20uaG9yaXpvbnRhbFJ1bGUoKSwgZnJvbS52ZXJ0aWNhbFJ1bGUoKSk7CisgICAg
cmV0dXJuIE5pbmVQaWVjZUltYWdlKGJsZW5kRnVuYyhhbmltLCBmcm9tLmltYWdlKCksIHRvLmlt
YWdlKCksIHByb2dyZXNzKSwKKyAgICAgICAgZnJvbS5pbWFnZVNsaWNlcygpLCBmcm9tLmZpbGwo
KSwgZnJvbS5ib3JkZXJTbGljZXMoKSwgZnJvbS5vdXRzZXQoKSwgZnJvbS5ob3Jpem9udGFsUnVs
ZSgpLCBmcm9tLnZlcnRpY2FsUnVsZSgpKTsKIH0KIAogI2lmIEVOQUJMRShWQVJJQVRJT05fRk9O
VFMpCisKIHN0YXRpYyBpbmxpbmUgRm9udFZhcmlhdGlvblNldHRpbmdzIGJsZW5kRnVuYyhjb25z
dCBBbmltYXRpb25CYXNlKiBhbmltLCBjb25zdCBGb250VmFyaWF0aW9uU2V0dGluZ3MmIGZyb20s
IGNvbnN0IEZvbnRWYXJpYXRpb25TZXR0aW5ncyYgdG8sIGRvdWJsZSBwcm9ncmVzcykKIHsKICAg
ICBpZiAoZnJvbS5zaXplKCkgIT0gdG8uc2l6ZSgpKQpAQCAtMzg1LDYgKzM4Niw3IEBAIHN0YXRp
YyBpbmxpbmUgRm9udFZhcmlhdGlvblNldHRpbmdzIGJsZW5kRnVuYyhjb25zdCBBbmltYXRpb25C
YXNlKiBhbmltLCBjb25zdCBGCiAgICAgfQogICAgIHJldHVybiByZXN1bHQ7CiB9CisKICNlbmRp
ZgogCiBjbGFzcyBBbmltYXRpb25Qcm9wZXJ0eVdyYXBwZXJCYXNlIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uY3BwCmluZGV4IDVi
NzRlNzY3ODI4YzQ1YTU2MjllMTlmZTI2MDUzODNjMmE1ZjZlOGEuLjY2OTkyNzA3YjFlZWFiMTg0
M2ZlMDM5YWFjNjJkZTMwYzQ0MzAyYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
YW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9hbmltYXRpb24vQ29tcG9zaXRlQW5pbWF0aW9uLmNwcApAQCAtMTIxLDggKzEyMSw4IEBAIHZv
aWQgQ29tcG9zaXRlQW5pbWF0aW9uOjp1cGRhdGVUcmFuc2l0aW9ucyhSZW5kZXJFbGVtZW50KiBy
ZW5kZXJlciwgY29uc3QgUmVuZGVyCiAgICAgICAgICAgICAgICAgLy8gSWYgdGhlcmUgaXMgYSBy
dW5uaW5nIGFuaW1hdGlvbiBmb3IgdGhpcyBwcm9wZXJ0eSwgdGhlIHRyYW5zaXRpb24gaXMgb3Zl
cnJpZGRlbgogICAgICAgICAgICAgICAgIC8vIGFuZCB3ZSBoYXZlIHRvIHVzZSB0aGUgdW5hbmlt
YXRlZFN0eWxlIGZyb20gdGhlIGFuaW1hdGlvbi4gV2UgZG8gdGhlIHRlc3QKICAgICAgICAgICAg
ICAgICAvLyBhZ2FpbnN0IHRoZSB1bmFuaW1hdGVkIHN0eWxlIGhlcmUsIGJ1dCB3ZSAib3ZlcnJp
ZGUiIHRoZSB0cmFuc2l0aW9uIGxhdGVyLgotICAgICAgICAgICAgICAgIFJlZlB0cjxLZXlmcmFt
ZUFuaW1hdGlvbj4ga2V5ZnJhbWVBbmltID0gZ2V0QW5pbWF0aW9uRm9yUHJvcGVydHkocHJvcCk7
Ci0gICAgICAgICAgICAgICAgYXV0byogZnJvbVN0eWxlID0ga2V5ZnJhbWVBbmltID8ga2V5ZnJh
bWVBbmltLT51bmFuaW1hdGVkU3R5bGUoKSA6IGN1cnJlbnRTdHlsZTsKKyAgICAgICAgICAgICAg
ICBhdXRvKiBrZXlmcmFtZUFuaW1hdGlvbiA9IGFuaW1hdGlvbkZvclByb3BlcnR5KHByb3ApOwor
ICAgICAgICAgICAgICAgIGF1dG8qIGZyb21TdHlsZSA9IGtleWZyYW1lQW5pbWF0aW9uID8ga2V5
ZnJhbWVBbmltYXRpb24tPnVuYW5pbWF0ZWRTdHlsZSgpIDogY3VycmVudFN0eWxlOwogCiAgICAg
ICAgICAgICAgICAgLy8gU2VlIGlmIHRoZXJlIGlzIGEgY3VycmVudCB0cmFuc2l0aW9uIGZvciB0
aGlzIHByb3AKICAgICAgICAgICAgICAgICBJbXBsaWNpdEFuaW1hdGlvbiogaW1wbEFuaW0gPSBt
X3RyYW5zaXRpb25zLmdldChwcm9wKTsKQEAgLTE3Miw3ICsxNzIsNyBAQCB2b2lkIENvbXBvc2l0
ZUFuaW1hdGlvbjo6dXBkYXRlVHJhbnNpdGlvbnMoUmVuZGVyRWxlbWVudCogcmVuZGVyZXIsIGNv
bnN0IFJlbmRlcgogICAgICAgICAgICAgICAgICAgICBMT0coQW5pbWF0aW9ucywgIkNyZWF0ZWQg
SW1wbGljaXRBbmltYXRpb24gJXAgb24gcmVuZGVyZXIgJXAgZm9yIHByb3BlcnR5ICVzIGR1cmF0
aW9uICUuMmYgZGVsYXkgJS4yZiIsIGltcGxpY2l0QW5pbWF0aW9uLnB0cigpLCByZW5kZXJlciwg
Z2V0UHJvcGVydHlOYW1lKHByb3ApLCBhbmltYXRpb24uZHVyYXRpb24oKSwgYW5pbWF0aW9uLmRl
bGF5KCkpOwogICAgICAgICAgICAgICAgICAgICBtX3RyYW5zaXRpb25zLnNldChwcm9wLCBXVEZN
b3ZlKGltcGxpY2l0QW5pbWF0aW9uKSk7CiAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAg
ICAgIAorCiAgICAgICAgICAgICAgICAgLy8gV2Ugb25seSBuZWVkIG9uZSBwYXNzIGZvciB0aGUg
c2luZ2xlIHByb3AgY2FzZQogICAgICAgICAgICAgICAgIGlmICghYWxsKQogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKQEAgLTM5OSwyMSArMzk5LDIxIEBAIGRvdWJsZSBDb21wb3NpdGVBbmlt
YXRpb246OnRpbWVUb05leHRTZXJ2aWNlKCkgY29uc3QKICAgICByZXR1cm4gbWluVDsKIH0KIAot
UGFzc1JlZlB0cjxLZXlmcmFtZUFuaW1hdGlvbj4gQ29tcG9zaXRlQW5pbWF0aW9uOjpnZXRBbmlt
YXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BlcnR5KSBjb25zdAorS2V5ZnJhbWVB
bmltYXRpb24qIENvbXBvc2l0ZUFuaW1hdGlvbjo6YW5pbWF0aW9uRm9yUHJvcGVydHkoQ1NTUHJv
cGVydHlJRCBwcm9wZXJ0eSkgY29uc3QKIHsKLSAgICBSZWZQdHI8S2V5ZnJhbWVBbmltYXRpb24+
IHJldHZhbDsKLSAgICAKKyAgICBLZXlmcmFtZUFuaW1hdGlvbiogcmVzdWx0ID0gbnVsbHB0cjsK
KwogICAgIC8vIFdlIHdhbnQgdG8gc2VuZCBiYWNrIHRoZSBsYXN0IGFuaW1hdGlvbiB3aXRoIHRo
ZSBwcm9wZXJ0eSBpZiB0aGVyZSBhcmUgbXVsdGlwbGVzLgogICAgIC8vIFNvIHdlIG5lZWQgdG8g
aXRlcmF0ZSB0aHJvdWdoIGFsbCBhbmltYXRpb25zCiAgICAgaWYgKCFtX2tleWZyYW1lQW5pbWF0
aW9ucy5pc0VtcHR5KCkpIHsKICAgICAgICAgbV9rZXlmcmFtZUFuaW1hdGlvbnMuY2hlY2tDb25z
aXN0ZW5jeSgpOwogICAgICAgICBmb3IgKGF1dG8mIGFuaW1hdGlvbiA6IG1fa2V5ZnJhbWVBbmlt
YXRpb25zLnZhbHVlcygpKSB7CiAgICAgICAgICAgICBpZiAoYW5pbWF0aW9uLT5oYXNBbmltYXRp
b25Gb3JQcm9wZXJ0eShwcm9wZXJ0eSkpCi0gICAgICAgICAgICAgICAgcmV0dmFsID0gYW5pbWF0
aW9uOworICAgICAgICAgICAgICAgIHJlc3VsdCA9IGFuaW1hdGlvbi5nZXQoKTsKICAgICAgICAg
fQogICAgIH0KLSAgICAKLSAgICByZXR1cm4gcmV0dmFsOworCisgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAogYm9vbCBDb21wb3NpdGVBbmltYXRpb246OmNvbXB1dGVFeHRlbnRPZlRyYW5zZm9ybUFu
aW1hdGlvbihMYXlvdXRSZWN0JiBib3VuZHMpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9Db21wb3NpdGVBbmltYXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvYW5pbWF0aW9uL0NvbXBvc2l0ZUFuaW1hdGlvbi5oCmluZGV4IDMzN2ZlNmYxNjZlNzFj
MWNlNjE5YWUyMzg4OTMxMTg3ZmY4NjQ3Y2MuLjQwYzNhNDkxZjJhNTQ4ZWIzZTJiMzMxNmM0ZjBm
ZmUwNTMyMTM5MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Nv
bXBvc2l0ZUFuaW1hdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0Nv
bXBvc2l0ZUFuaW1hdGlvbi5oCkBAIC03MSw3ICs3MSw3IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
aXNBbmltYXRpbmdQcm9wZXJ0eShDU1NQcm9wZXJ0eUlELCBib29sIGFjY2VsZXJhdGVkT25seSwg
QW5pbWF0aW9uQmFzZTo6UnVubmluZ1N0YXRlKSBjb25zdDsKIAotICAgIFBhc3NSZWZQdHI8S2V5
ZnJhbWVBbmltYXRpb24+IGdldEFuaW1hdGlvbkZvclByb3BlcnR5KENTU1Byb3BlcnR5SUQpIGNv
bnN0OworICAgIEtleWZyYW1lQW5pbWF0aW9uKiBhbmltYXRpb25Gb3JQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUlEKSBjb25zdDsKIAogICAgIHZvaWQgb3ZlcnJpZGVJbXBsaWNpdEFuaW1hdGlvbnMoQ1NT
UHJvcGVydHlJRCk7CiAgICAgdm9pZCByZXN1bWVPdmVycmlkZGVuSW1wbGljaXRBbmltYXRpb25z
KENTU1Byb3BlcnR5SUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRp
b24vSW1wbGljaXRBbmltYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24v
SW1wbGljaXRBbmltYXRpb24uY3BwCmluZGV4IDcxNmJlYTgyNDkwNDkyYzQzYmNlMTc3NDlkMWZm
YjUyMTI3Y2NjZmYuLmZkZWQ2MjNhNmFkZGE5MjRhYjc2MzYzZTI0NjljYmNhMzJjYmZiNzMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0ltcGxpY2l0QW5pbWF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9JbXBsaWNpdEFuaW1hdGlv
bi5jcHAKQEAgLTE2MywxMCArMTYzLDkgQEAgdm9pZCBJbXBsaWNpdEFuaW1hdGlvbjo6b25Bbmlt
YXRpb25FbmQoZG91YmxlIGVsYXBzZWRUaW1lKQogICAgIC8vIHJ1bm5pbmcuIEJ1dCBub3cgdGhh
dCB0aGUgdHJhbnNpdGlvbiBoYXMgY29tcGxldGVkLCB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGlzIHN0
eWxlIHdpdGggaXRzIG5ldwogICAgIC8vIGRlc3RpbmF0aW9uLiBJZiB3ZSBkaWRuJ3QsIHRoZSBu
ZXh0IHRpbWUgdGhyb3VnaCB3ZSB3b3VsZCB0aGluayBhIHRyYW5zaXRpb24gaGFkIHN0YXJ0ZWQK
ICAgICAvLyAoY29tcGFyaW5nIHRoZSBvbGQgdW5hbmltYXRlZCBzdHlsZSB3aXRoIHRoZSBuZXcg
ZmluYWwgc3R5bGUgb2YgdGhlIHRyYW5zaXRpb24pLgotICAgIFJlZlB0cjxLZXlmcmFtZUFuaW1h
dGlvbj4ga2V5ZnJhbWVBbmltID0gbV9jb21wb3NpdGVBbmltYXRpb24tPmdldEFuaW1hdGlvbkZv
clByb3BlcnR5KG1fYW5pbWF0aW5nUHJvcGVydHkpOwotICAgIGlmIChrZXlmcmFtZUFuaW0pCi0g
ICAgICAgIGtleWZyYW1lQW5pbS0+c2V0VW5hbmltYXRlZFN0eWxlKFJlbmRlclN0eWxlOjpjbG9u
ZVB0cigqbV90b1N0eWxlKSk7Ci0gICAgCisgICAgaWYgKGF1dG8qIGFuaW1hdGlvbiA9IG1fY29t
cG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Gb3JQcm9wZXJ0eShtX2FuaW1hdGluZ1Byb3BlcnR5
KSkKKyAgICAgICAgYW5pbWF0aW9uLT5zZXRVbmFuaW1hdGVkU3R5bGUoUmVuZGVyU3R5bGU6OmNs
b25lUHRyKCptX3RvU3R5bGUpKTsKKwogICAgIHNlbmRUcmFuc2l0aW9uRXZlbnQoZXZlbnROYW1l
cygpLnRyYW5zaXRpb25lbmRFdmVudCwgZWxhcHNlZFRpbWUpOwogICAgIGVuZEFuaW1hdGlvbigp
OwogfQpAQCAtMTg3LDcgKzE4Niw3IEBAIGJvb2wgSW1wbGljaXRBbmltYXRpb246OnNlbmRUcmFu
c2l0aW9uRXZlbnQoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGRvdWJsCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgICAgICAvLyBTY2hlZHVsZSBldmVudCBo
YW5kbGluZwotICAgICAgICAgICAgbV9jb21wb3NpdGVBbmltYXRpb24tPmFuaW1hdGlvbkNvbnRy
b2xsZXIoKS5hZGRFdmVudFRvRGlzcGF0Y2goZWxlbWVudCwgZXZlbnRUeXBlLCBwcm9wZXJ0eU5h
bWUsIGVsYXBzZWRUaW1lKTsKKyAgICAgICAgICAgIG1fY29tcG9zaXRlQW5pbWF0aW9uLT5hbmlt
YXRpb25Db250cm9sbGVyKCkuYWRkRXZlbnRUb0Rpc3BhdGNoKCplbGVtZW50LCBldmVudFR5cGUs
IHByb3BlcnR5TmFtZSwgZWxhcHNlZFRpbWUpOwogCiAgICAgICAgICAgICAvLyBSZXN0b3JlIHRo
ZSBvcmlnaW5hbCAodW5hbmltYXRlZCkgc3R5bGUKICAgICAgICAgICAgIGlmIChldmVudFR5cGUg
PT0gZXZlbnROYW1lcygpLnRyYW5zaXRpb25lbmRFdmVudCAmJiBlbGVtZW50LT5yZW5kZXJlcigp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmlt
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRp
b24uY3BwCmluZGV4IDQ3MWJhY2Y2ZjFiOWYwNWNlMWQzNGRhODc1ZmU4YzY3Yzk0ZmY1N2QuLmRj
MjlkMjIzOTFiMDM0YmRjZWU1NjZmM2IyYTVjMzE3YTBkZDAwMzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAKQEAgLTMyNyw3
ICszMjcsNyBAQCBib29sIEtleWZyYW1lQW5pbWF0aW9uOjpzZW5kQW5pbWF0aW9uRXZlbnQoY29u
c3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIGRvdWJsZQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgICAgIC8vIFNjaGVkdWxlIGV2ZW50IGhhbmRsaW5nCi0gICAgICAgIG1fY29t
cG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Db250cm9sbGVyKCkuYWRkRXZlbnRUb0Rpc3BhdGNo
KGVsZW1lbnQsIGV2ZW50VHlwZSwgbV9rZXlmcmFtZXMuYW5pbWF0aW9uTmFtZSgpLCBlbGFwc2Vk
VGltZSk7CisgICAgICAgIG1fY29tcG9zaXRlQW5pbWF0aW9uLT5hbmltYXRpb25Db250cm9sbGVy
KCkuYWRkRXZlbnRUb0Rpc3BhdGNoKCplbGVtZW50LCBldmVudFR5cGUsIG1fa2V5ZnJhbWVzLmFu
aW1hdGlvbk5hbWUoKSwgZWxhcHNlZFRpbWUpOwogCiAgICAgICAgIC8vIFJlc3RvcmUgdGhlIG9y
aWdpbmFsICh1bmFuaW1hdGVkKSBzdHlsZQogICAgICAgICBpZiAoKGV2ZW50VHlwZSA9PSBldmVu
dE5hbWVzKCkud2Via2l0QW5pbWF0aW9uRW5kRXZlbnQgfHwgZXZlbnRUeXBlID09IGV2ZW50TmFt
ZXMoKS5hbmltYXRpb25lbmRFdmVudCkgJiYgZWxlbWVudC0+cmVuZGVyZXIoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFuZGxlckVmbC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2VmbC9FdmVudEhhbmRsZXJFZmwuY3BwCmluZGV4IDIxMDZkMWUxOWE0ODZh
Mzg1ZmZlODdmOTAwZmFhZmU5MDhiY2FjMTIuLmFhZDA3ZDZmZjZiMTdlY2RkNzE3MTFlNDFlZjVi
NGUwM2VlMDA1MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZWZsL0V2ZW50SGFu
ZGxlckVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9lZmwvRXZlbnRIYW5kbGVyRWZs
LmNwcApAQCAtNDksNyArNDksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjb25zdCBkb3VibGUg
RXZlbnRIYW5kbGVyOjpUZXh0RHJhZ0RlbGF5ID0gMC4wOwogI2VuZGlmCiAKLWJvb2wgRXZlbnRI
YW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCopIGNvbnN0Citib29s
IEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQmKSBjb25z
dAogewogICAgIHJldHVybiB0cnVlOwogfQpAQCAtOTYsMTAgKzk2LDEyIEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjp3aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgZXZlbnQsIFdpCiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc1JlZlB0cjxE
YXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBj
b25zdAorCitSZWY8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0
YVRyYW5zZmVyKCkgY29uc3QKIHsKICAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JE
cmFnQW5kRHJvcCgpOwogfQorCiAjZW5kaWYKIAogYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3Vz
ZVByZXNzRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmIG1ldiwg
RnJhbWUqIHN1YmZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ndGsvRXZl
bnRIYW5kbGVyR3RrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvZ3RrL0V2ZW50SGFuZGxlckd0
ay5jcHAKaW5kZXggNDNmMDUzNzVlNWJkZTYxNGY5MDhhN2MxNTRkODJkN2IwOGVjZTI0Yi4uYWFh
ZGUwMDJjNWM4OWJkY2VjMDI1MzY1YjAxOTdhNTAxOTZjMmI4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9ndGsvRXZlbnRIYW5kbGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2d0ay9FdmVudEhhbmRsZXJHdGsuY3BwCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIGNvbnN0IGRvdWJsZSBFdmVudEhhbmRsZXI6OlRleHREcmFnRGVsYXkgPSAw
LjA7CiAjZW5kaWYKIAotYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhL
ZXlib2FyZEV2ZW50KikgY29uc3QKK2Jvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxGb3JtQ29u
dHJvbHMoS2V5Ym9hcmRFdmVudCYpIGNvbnN0CiB7CiAgICAgLy8gV2UgYWx3YXlzIGFsbG93IHRh
YnMgdG8gYWxsIGNvbnRyb2xzCiAgICAgcmV0dXJuIHRydWU7CkBAIC05NiwxMCArOTYsMTIgQEAg
Ym9vbCBFdmVudEhhbmRsZXI6OndpZGdldERpZEhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiBldmVudCwgV2kKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCi1Q
YXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4gRXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFU
cmFuc2ZlcigpIGNvbnN0CisKK1JlZjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6Y3JlYXRl
RHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIHJldHVybiBEYXRhVHJhbnNmZXI6
OmNyZWF0ZUZvckRyYWdBbmREcm9wKCk7CiB9CisKICNlbmRpZgogCiBib29sIEV2ZW50SGFuZGxl
cjo6cGFzc01vdXNlUHJlc3NFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVz
dWx0cyYgbWV2LCBGcmFtZSogc3ViZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVu
dEhhbmRsZXJJT1MubW0KaW5kZXggNTI0ZmI1YWVhNWIzZDUyMzZiOTQxZDdhZDI1ODhiNDg5Y2Jk
YTdhMC4uMjliYWRlZjU5NTU4NGEzZmNlNTNjYTJmODI0MWU0ZjZlZmQ3NTRkNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQpAQCAtMTIwLDcgKzEyMCw3IEBA
IHZvaWQgRXZlbnRIYW5kbGVyOjp0b3VjaEV2ZW50KFdlYkV2ZW50ICpldmVudCkKIH0KICNlbmRp
ZgogCi1ib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZl
bnQqIGV2ZW50KSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9s
cyhLZXlib2FyZEV2ZW50JiBldmVudCkgY29uc3QKIHsKICAgICBQYWdlKiBwYWdlID0gbV9mcmFt
ZS5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRI
YW5kbGVyTWFjLm1tCmluZGV4IGU1OTE5NzhjMDBjNDBjNjllNzczYTk3NjIxZDc2NzMzYmQ3NTFi
MDIuLmFkN2E1OWUzMWUwOTViMGJjNTIwNTA3MmZkZjE4MzlmMGY0ZjY4M2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAgLTYxLDYgKzYxLDcgQEAKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRlICJX
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCisjaW5jbHVkZSAiV2hlZWxFdmVudERlbHRhRmlsdGVy
LmgiCiAjaW5jbHVkZSAiV2hlZWxFdmVudFRlc3RUcmlnZ2VyLmgiCiAjaW5jbHVkZSA8d3RmL0Js
b2NrT2JqQ0V4Y2VwdGlvbnMuaD4KICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgpAQCAtNzIz
LDcgKzcyNCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpldmVudEFjdGl2YXRlZFZpZXcoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCkgY29uc3QKIAogI2lmIEVOQUJMRShEUkFHX1NVUFBP
UlQpCiAKLVBhc3NSZWZQdHI8RGF0YVRyYW5zZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdn
aW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKK1JlZjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFuZGxlcjo6
Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAogewogICAgIC8vIE11c3QgYmUgZG9u
ZSBiZWZvcmUgb25kcmFnc3RhcnQgYWRkcyB0eXBlcyBhbmQgZGF0YSB0byB0aGUgcGJvYXJkLAog
ICAgIC8vIGFsc28gZG9uZSBmb3Igc2VjdXJpdHksIGFzIGl0IGVyYXNlcyBkYXRhIGZyb20gdGhl
IGxhc3QgZHJhZy4KQEAgLTczNCw3ICs3MzUsNyBAQCBQYXNzUmVmUHRyPERhdGFUcmFuc2Zlcj4g
RXZlbnRIYW5kbGVyOjpjcmVhdGVEcmFnZ2luZ0RhdGFUcmFuc2ZlcigpIGNvbnN0CiAKICNlbmRp
ZgogCi1ib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZl
bnQqIGV2ZW50KSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9s
cyhLZXlib2FyZEV2ZW50JiBldmVudCkgY29uc3QKIHsKICAgICBQYWdlKiBwYWdlID0gbV9mcmFt
ZS5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpAQCAtOTcxLDEwICs5NzIsMTAgQEAgdm9pZCBFdmVu
dEhhbmRsZXI6OnBsYXRmb3JtUHJlcGFyZUZvcldoZWVsRXZlbnRzKGNvbnN0IFBsYXRmb3JtV2hl
ZWxFdmVudCYgd2hlZWwKICAgICAgICAgICAgICAgICBtX2ZyYW1lLm1haW5GcmFtZSgpLnB1c2hO
ZXdMYXRjaGluZ1N0YXRlKCk7CiAgICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZSA9IG1fZnJh
bWUubWFpbkZyYW1lKCkubGF0Y2hpbmdTdGF0ZSgpOwogICAgICAgICAgICAgICAgIGxhdGNoaW5n
U3RhdGUtPnNldFN0YXJ0ZWRHZXN0dXJlQXRTY3JvbGxMaW1pdChmYWxzZSk7Ci0gICAgICAgICAg
ICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0V2hlZWxFdmVudEVsZW1lbnQod2hlZWxFdmVudFRhcmdl
dCk7CisgICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0V2hlZWxFdmVudEVsZW1lbnQo
d2hlZWxFdmVudFRhcmdldC5nZXQoKSk7CiAgICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+
c2V0RnJhbWUoJm1fZnJhbWUpOwogICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBXaGF0IHByZXZl
bnRzIHVzIGZyb20gZGVsZXRpbmcgdGhpcyBzY3JvbGxhYmxlIGNvbnRhaW5lciB3aGlsZSBzdGls
bCBob2xkaW5nIGEgcG9pbnRlciB0byBpdD8KLSAgICAgICAgICAgICAgICBsYXRjaGluZ1N0YXRl
LT5zZXRTY3JvbGxhYmxlQ29udGFpbmVyKHNjcm9sbGFibGVDb250YWluZXIpOworICAgICAgICAg
ICAgICAgIGxhdGNoaW5nU3RhdGUtPnNldFNjcm9sbGFibGVDb250YWluZXIoc2Nyb2xsYWJsZUNv
bnRhaW5lci5nZXQoKSk7CiAgICAgICAgICAgICAgICAgbGF0Y2hpbmdTdGF0ZS0+c2V0V2lkZ2V0
SXNMYXRjaGVkKHJlc3VsdC5pc092ZXJXaWRnZXQoKSk7CiAgICAgICAgICAgICAgICAgaXNPdmVy
V2lkZ2V0ID0gbGF0Y2hpbmdTdGF0ZS0+d2lkZ2V0SXNMYXRjaGVkKCk7CiAgICAgICAgICAgICAg
ICAgbV9mcmFtZS5tYWluRnJhbWUoKS53aGVlbEV2ZW50RGVsdGFGaWx0ZXIoKS0+YmVnaW5GaWx0
ZXJpbmdEZWx0YXMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZp
Y2VzT3ZlcmxheUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXIuaAppbmRleCA1NWU0ZDY1OTVlZWI2MDUzZjZhNmE5NDUwYjlkYWVi
ODEyOGM1MjcwLi42NWIxY2VlYzZiMTEyN2IwNTk2MzIxZWM0ODgyNDU3ZGY0MWIwNGY2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxl
ci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJQYWdlT3ZlcmxheS5oIgogI2luY2x1ZGUgIlJh
bmdlLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgog
CiB0eXBlZGVmIHN0cnVjdCBfX0RESGlnaGxpZ2h0ICpEREhpZ2hsaWdodFJlZjsKIApAQCAtMzks
NiArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBjbGFzcyBMYXlvdXRSZWN0Owog
Y2xhc3MgTWFpbkZyYW1lOworCiBzdHJ1Y3QgR2FwUmVjdHM7CiAKIGNsYXNzIFNlcnZpY2VzT3Zl
cmxheUNvbnRyb2xsZXIgOiBwcml2YXRlIFBhZ2VPdmVybGF5OjpDbGllbnQgewpAQCAtNTQsMTQg
KzU0LDE0IEBAIHByaXZhdGU6CiAgICAgY2xhc3MgSGlnaGxpZ2h0IDogcHVibGljIFJlZkNvdW50
ZWQ8SGlnaGxpZ2h0PiwgcHJpdmF0ZSBHcmFwaGljc0xheWVyQ2xpZW50IHsKICAgICAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoSGlnaGxpZ2h0KTsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRp
YyBSZWY8SGlnaGxpZ2h0PiBjcmVhdGVGb3JTZWxlY3Rpb24oU2VydmljZXNPdmVybGF5Q29udHJv
bGxlciYsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4sIFBhc3NSZWZQdHI8UmFuZ2U+KTsKLSAg
ICAgICAgc3RhdGljIFJlZjxIaWdobGlnaHQ+IGNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcihTZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyJiwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUGFzc1Jl
ZlB0cjxSYW5nZT4pOworICAgICAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRlRm9yU2Vs
ZWN0aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImLCBSZXRhaW5QdHI8RERIaWdobGlnaHRS
ZWY+LCBSZWY8UmFuZ2U+JiYpOworICAgICAgICBzdGF0aWMgUmVmPEhpZ2hsaWdodD4gY3JlYXRl
Rm9yVGVsZXBob25lTnVtYmVyKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImLCBSZXRhaW5QdHI8
RERIaWdobGlnaHRSZWY+LCBSZWY8UmFuZ2U+JiYpOwogICAgICAgICB+SGlnaGxpZ2h0KCk7CiAK
ICAgICAgICAgdm9pZCBpbnZhbGlkYXRlKCk7CiAKICAgICAgICAgRERIaWdobGlnaHRSZWYgZGRI
aWdobGlnaHQoKSBjb25zdCB7IHJldHVybiBtX2RkSGlnaGxpZ2h0LmdldCgpOyB9Ci0gICAgICAg
IFJhbmdlKiByYW5nZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmFuZ2UuZ2V0KCk7IH0KKyAgICAgICAg
UmFuZ2UmIHJhbmdlKCkgY29uc3QgeyByZXR1cm4gbV9yYW5nZS5nZXQoKTsgfQogICAgICAgICBH
cmFwaGljc0xheWVyKiBsYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fZ3JhcGhpY3NMYXllci5nZXQo
KTsgfQogCiAgICAgICAgIGVudW0gewpAQCAtNzcsNyArNzcsNyBAQCBwcml2YXRlOgogICAgICAg
ICB2b2lkIHNldERESGlnaGxpZ2h0KERESGlnaGxpZ2h0UmVmKTsKIAogICAgIHByaXZhdGU6Ci0g
ICAgICAgIGV4cGxpY2l0IEhpZ2hsaWdodChTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiwgVHlw
ZSwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiwgUGFzc1JlZlB0cjxSYW5nZT4pOworICAgICAg
ICBIaWdobGlnaHQoU2VydmljZXNPdmVybGF5Q29udHJvbGxlciYsIFR5cGUsIFJldGFpblB0cjxE
REhpZ2hsaWdodFJlZj4sIFJlZjxSYW5nZT4mJik7CiAKICAgICAgICAgLy8gR3JhcGhpY3NMYXll
ckNsaWVudAogICAgICAgICB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3QgR3JhcGhpY3NM
YXllciopIG92ZXJyaWRlOwpAQCAtODcsNyArODcsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lk
IGRpZEZpbmlzaEZhZGVPdXRBbmltYXRpb24oKTsKIAogICAgICAgICBSZXRhaW5QdHI8RERIaWdo
bGlnaHRSZWY+IG1fZGRIaWdobGlnaHQ7Ci0gICAgICAgIFJlZlB0cjxSYW5nZT4gbV9yYW5nZTsK
KyAgICAgICAgUmVmPFJhbmdlPiBtX3JhbmdlOwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8R3Jh
cGhpY3NMYXllcj4gbV9ncmFwaGljc0xheWVyOwogICAgICAgICBUeXBlIG1fdHlwZTsKICAgICAg
ICAgU2VydmljZXNPdmVybGF5Q29udHJvbGxlciogbV9jb250cm9sbGVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIubW0KaW5kZXgg
OWE4MTViNWFlNTU5NjQ5OWJkZjYxNmVkNDIxMWI5YTUyMzgxNWU2Mi4uNGIwM2UyMmFlNDZiZTg5
YWUyMzEwMmZiNDlmZjQ5MjFkNDA0NjhiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCkBAIC01NSwyMyArNTUsMjIgQEAg
Y29uc3QgZmxvYXQgaGlnaGxpZ2h0RmFkZUFuaW1hdGlvbkR1cmF0aW9uID0gMC4zOwogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpIaWdobGln
aHQ+IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodDo6Y3JlYXRlRm9yU2VsZWN0
aW9uKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXImIGNvbnRyb2xsZXIsIFJldGFpblB0cjxEREhp
Z2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFBhc3NSZWZQdHI8UmFuZ2U+IHJhbmdlKQorUmVmPFNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdodD4gU2VydmljZXNPdmVybGF5Q29udHJv
bGxlcjo6SGlnaGxpZ2h0OjpjcmVhdGVGb3JTZWxlY3Rpb24oU2VydmljZXNPdmVybGF5Q29udHJv
bGxlciYgY29udHJvbGxlciwgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hsaWdodCwg
UmVmPFJhbmdlPiYmIHJhbmdlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdo
dChjb250cm9sbGVyLCBIaWdobGlnaHQ6OlNlbGVjdGlvblR5cGUsIGRkSGlnaGxpZ2h0LCByYW5n
ZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEhpZ2hsaWdodChjb250cm9sbGVyLCBIaWdo
bGlnaHQ6OlNlbGVjdGlvblR5cGUsIGRkSGlnaGxpZ2h0LCBXVEZNb3ZlKHJhbmdlKSkpOwogfQog
Ci1SZWY8U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0PiBTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyOjpIaWdobGlnaHQ6OmNyZWF0ZUZvclRlbGVwaG9uZU51bWJlcihTZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyJiBjb250cm9sbGVyLCBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+
IGRkSGlnaGxpZ2h0LCBQYXNzUmVmUHRyPFJhbmdlPiByYW5nZSkKK1JlZjxTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyOjpIaWdobGlnaHQ+IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hs
aWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIm
IGNvbnRyb2xsZXIsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFJlZjxS
YW5nZT4mJiByYW5nZSkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHQoY29u
dHJvbGxlciwgSGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlLCBkZEhpZ2hsaWdodCwgcmFu
Z2UpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBIaWdobGlnaHQoY29udHJvbGxlciwgSGln
aGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlLCBkZEhpZ2hsaWdodCwgV1RGTW92ZShyYW5nZSkp
KTsKIH0KIAotU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxpZ2h0OjpIaWdobGlnaHQo
U2VydmljZXNPdmVybGF5Q29udHJvbGxlciYgY29udHJvbGxlciwgVHlwZSB0eXBlLCBSZXRhaW5Q
dHI8RERIaWdobGlnaHRSZWY+IGRkSGlnaGxpZ2h0LCBQYXNzUmVmUHRyPFdlYkNvcmU6OlJhbmdl
PiByYW5nZSkKLSAgICA6IG1fcmFuZ2UocmFuZ2UpCitTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
OjpIaWdobGlnaHQ6OkhpZ2hsaWdodChTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyJiBjb250cm9s
bGVyLCBUeXBlIHR5cGUsIFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4gZGRIaWdobGlnaHQsIFJl
ZjxXZWJDb3JlOjpSYW5nZT4mJiByYW5nZSkKKyAgICA6IG1fcmFuZ2UoV1RGTW92ZShyYW5nZSkp
CiAgICAgLCBtX3R5cGUodHlwZSkKICAgICAsIG1fY29udHJvbGxlcigmY29udHJvbGxlcikKIHsK
ICAgICBBU1NFUlQoZGRIaWdobGlnaHQpOwotICAgIEFTU0VSVChtX3JhbmdlKTsKIAogICAgIFBh
Z2UqIHBhZ2UgPSBjb250cm9sbGVyLm1haW5GcmFtZSgpLnBhZ2UoKTsKICAgICBtX2dyYXBoaWNz
TGF5ZXIgPSBHcmFwaGljc0xheWVyOjpjcmVhdGUocGFnZSA/IHBhZ2UtPmNocm9tZSgpLmNsaWVu
dCgpLmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgOiBudWxscHRyLCAqdGhpcyk7CkBAIC00MDksNyAr
NDA4LDcgQEAgdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpidWlsZFBvdGVudGlhbEhp
Z2hsaWdodHNJZk5lZWRlZCgpCiAKICAgICBpZiAobV9wb3RlbnRpYWxIaWdobGlnaHRzLmlzRW1w
dHkoKSkgewogICAgICAgICBpZiAobV9zZXJ2aWNlc092ZXJsYXkpCi0gICAgICAgICAgICBtX21h
aW5GcmFtZS5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheShtX3Nl
cnZpY2VzT3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgICAg
ICAgICAgbV9tYWluRnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92
ZXJsYXkoKm1fc2VydmljZXNPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFk
ZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTUyNyw3ICs1MjYsNyBAQCB2b2lkIFNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkUGhvbmVOdW1iZXJIaWdobGlnaHRzKCkKICAg
ICAgICAgQ0dSZWN0IGNnUmVjdCA9IHJlY3Q7CiAgICAgICAgIFJldGFpblB0cjxEREhpZ2hsaWdo
dFJlZj4gZGRIaWdobGlnaHQgPSBhZG9wdENGKERESGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5W
aXNpYmxlUmVjdFdpdGhTdHlsZUFuZERpcmVjdGlvbihudWxscHRyLCAmY2dSZWN0LCAxLCBtYWlu
RnJhbWVWaWV3LnZpc2libGVDb250ZW50UmVjdCgpLCBEREhpZ2hsaWdodFN0eWxlQnViYmxlU3Rh
bmRhcmQgfCBEREhpZ2hsaWdodFN0eWxlU3RhbmRhcmRJY29uQXJyb3csIFlFUywgTlNXcml0aW5n
RGlyZWN0aW9uTmF0dXJhbCwgTk8sIFlFUykpOwogCi0gICAgICAgIG5ld1BvdGVudGlhbEhpZ2hs
aWdodHMuYWRkKEhpZ2hsaWdodDo6Y3JlYXRlRm9yVGVsZXBob25lTnVtYmVyKCp0aGlzLCBkZEhp
Z2hsaWdodCwgcmFuZ2UpKTsKKyAgICAgICAgbmV3UG90ZW50aWFsSGlnaGxpZ2h0cy5hZGQoSGln
aGxpZ2h0OjpjcmVhdGVGb3JUZWxlcGhvbmVOdW1iZXIoKnRoaXMsIGRkSGlnaGxpZ2h0LCByYW5n
ZS5yZWxlYXNlTm9uTnVsbCgpKSk7CiAgICAgfQogCiAgICAgcmVwbGFjZUhpZ2hsaWdodHNPZlR5
cGVQcmVzZXJ2aW5nRXF1aXZhbGVudEhpZ2hsaWdodHMobmV3UG90ZW50aWFsSGlnaGxpZ2h0cywg
SGlnaGxpZ2h0OjpUZWxlcGhvbmVOdW1iZXJUeXBlKTsKQEAgLTU3MCw3ICs1NjksNyBAQCB2b2lk
IFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmJ1aWxkU2VsZWN0aW9uSGlnaGxpZ2h0KCkKICAg
ICAgICAgICAgIENHUmVjdCB2aXNpYmxlUmVjdCA9IG1haW5GcmFtZVZpZXctPnZpc2libGVDb250
ZW50UmVjdCgpOwogICAgICAgICAgICAgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBkZEhpZ2hs
aWdodCA9IGFkb3B0Q0YoRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0
aFN0eWxlQW5kRGlyZWN0aW9uKG51bGxwdHIsIGNnUmVjdHMuYmVnaW4oKSwgY2dSZWN0cy5zaXpl
KCksIHZpc2libGVSZWN0LCBEREhpZ2hsaWdodFN0eWxlQnViYmxlTm9uZSB8IERESGlnaGxpZ2h0
U3R5bGVTdGFuZGFyZEljb25BcnJvdyB8IERESGlnaGxpZ2h0U3R5bGVCdXR0b25TaG93QWx3YXlz
LCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwsIE5PLCBZRVMpKTsKICAgICAgICAgICAg
IAotICAgICAgICAgICAgbmV3UG90ZW50aWFsSGlnaGxpZ2h0cy5hZGQoSGlnaGxpZ2h0OjpjcmVh
dGVGb3JTZWxlY3Rpb24oKnRoaXMsIGRkSGlnaGxpZ2h0LCBzZWxlY3Rpb25SYW5nZSkpOworICAg
ICAgICAgICAgbmV3UG90ZW50aWFsSGlnaGxpZ2h0cy5hZGQoSGlnaGxpZ2h0OjpjcmVhdGVGb3JT
ZWxlY3Rpb24oKnRoaXMsIGRkSGlnaGxpZ2h0LCBzZWxlY3Rpb25SYW5nZS5yZWxlYXNlTm9uTnVs
bCgpKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTYzOCwxNCArNjM3LDkgQEAgYm9vbCBTZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyOjpoaWdobGlnaHRzQXJlRXF1aXZhbGVudChjb25zdCBIaWdo
bGlnaHQqIGEsIGNvbnMKIHsKICAgICBpZiAoYSA9PSBiKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
LQogICAgIGlmICghYSB8fCAhYikKICAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGEt
PnR5cGUoKSA9PSBiLT50eXBlKCkgJiYgYXJlUmFuZ2VzRXF1YWwoYS0+cmFuZ2UoKSwgYi0+cmFu
Z2UoKSkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIGZhbHNlOworICAgIHJl
dHVybiBhLT50eXBlKCkgPT0gYi0+dHlwZSgpICYmIGFyZVJhbmdlc0VxdWFsKCZhLT5yYW5nZSgp
LCAmYi0+cmFuZ2UoKSk7CiB9CiAKIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OkhpZ2hsaWdo
dCogU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6ZmluZFRlbGVwaG9uZU51bWJlckhpZ2hsaWdo
dENvbnRhaW5pbmdTZWxlY3Rpb25IaWdobGlnaHQoSGlnaGxpZ2h0JiBzZWxlY3Rpb25IaWdobGln
aHQpCkBAIC02NjksNyArNjYzLDcgQEAgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6SGlnaGxp
Z2h0KiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpmaW5kVGVsZXBob25lTnUKICAgICAgICAg
aWYgKGhpZ2hsaWdodC0+dHlwZSgpICE9IEhpZ2hsaWdodDo6VGVsZXBob25lTnVtYmVyVHlwZSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmIChoaWdobGlnaHQtPnJhbmdlKCkt
PmNvbnRhaW5zKCphY3RpdmVTZWxlY3Rpb25SYW5nZSkpCisgICAgICAgIGlmIChoaWdobGlnaHQt
PnJhbmdlKCkuY29udGFpbnMoKmFjdGl2ZVNlbGVjdGlvblJhbmdlKSkKICAgICAgICAgICAgIHJl
dHVybiBoaWdobGlnaHQuZ2V0KCk7CiAgICAgfQogCkBAIC04MzIsNyArODI2LDcgQEAgdm9pZCBT
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpoYW5kbGVDbGljayhjb25zdCBJbnRQb2ludCYgY2xp
Y2tQb2ludCwgSGlnaGxpZ2gKIAogICAgICAgICBwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5oYW5k
bGVTZWxlY3Rpb25TZXJ2aWNlQ2xpY2socGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9y
TWFpbkZyYW1lKCkuc2VsZWN0aW9uKCksIHNlbGVjdGVkVGVsZXBob25lTnVtYmVycywgd2luZG93
UG9pbnQpOwogICAgIH0gZWxzZSBpZiAoaGlnaGxpZ2h0LnR5cGUoKSA9PSBIaWdobGlnaHQ6OlRl
bGVwaG9uZU51bWJlclR5cGUpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmhhbmRs
ZVRlbGVwaG9uZU51bWJlckNsaWNrKGhpZ2hsaWdodC5yYW5nZSgpLT50ZXh0KCksIHdpbmRvd1Bv
aW50KTsKKyAgICAgICAgcGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuaGFuZGxlVGVsZXBob25lTnVt
YmVyQ2xpY2soaGlnaGxpZ2h0LnJhbmdlKCkudGV4dCgpLCB3aW5kb3dQb2ludCk7CiB9CiAKIHZv
aWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6ZGlkQ3JlYXRlSGlnaGxpZ2h0KEhpZ2hsaWdo
dCogaGlnaGxpZ2h0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dElu
ZGljYXRvcldpbmRvdy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1RleHRJbmRpY2F0b3JX
aW5kb3cubW0KaW5kZXggZTRlMjBkMjI3NjhjODgyZTkwMGIxMmI0MWZlMDJlY2RmYjQ4ZjYyOC4u
ZTU5MjliYTYzZGU1OWY0OTgzYmQ4Y2Y5YzMwMDY0ZTY3MTc3M2NiYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvVGV4dEluZGljYXRvcldpbmRvdy5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL21hYy9UZXh0SW5kaWNhdG9yV2luZG93Lm1tCkBAIC02NCw3ICs2NCw3IEBA
IEBpbnRlcmZhY2UgV2ViVGV4dEluZGljYXRvclZpZXcgOiBOU1ZpZXcgewogICAgIEJPT0wgX2Zh
ZGluZ091dDsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFt
ZSB0ZXh0SW5kaWNhdG9yOihQYXNzUmVmUHRyPFRleHRJbmRpY2F0b3I+KXRleHRJbmRpY2F0b3Ig
bWFyZ2luOihOU1NpemUpbWFyZ2luIG9mZnNldDooTlNQb2ludClvZmZzZXQ7CistIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhGcmFtZTooTlNSZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFRleHRJbmRp
Y2F0b3ImKXRleHRJbmRpY2F0b3IgbWFyZ2luOihOU1NpemUpbWFyZ2luIG9mZnNldDooTlNQb2lu
dClvZmZzZXQ7CiAKIC0gKHZvaWQpcHJlc2VudDsKIC0gKHZvaWQpaGlkZVdpdGhDb21wbGV0aW9u
SGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcjsKQEAgLTE0NywxMiArMTQ3
LDEyIEBAIHN0YXRpYyBib29sIGluZGljYXRvcldhbnRzTWFudWFsQW5pbWF0aW9uKGNvbnN0IFRl
eHRJbmRpY2F0b3ImIGluZGljYXRvcikKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLS0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgdGV4dEluZGljYXRvcjooUGFzc1Jl
ZlB0cjxUZXh0SW5kaWNhdG9yPil0ZXh0SW5kaWNhdG9yIG1hcmdpbjooTlNTaXplKW1hcmdpbiBv
ZmZzZXQ6KE5TUG9pbnQpb2Zmc2V0CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooTlNS
ZWN0KWZyYW1lIHRleHRJbmRpY2F0b3I6KFRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3IgbWFy
Z2luOihOU1NpemUpbWFyZ2luIG9mZnNldDooTlNQb2ludClvZmZzZXQKIHsKICAgICBpZiAoIShz
ZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdKSkKICAgICAgICAgcmV0dXJuIG5pbDsK
IAotICAgIF90ZXh0SW5kaWNhdG9yID0gdGV4dEluZGljYXRvcjsKKyAgICBfdGV4dEluZGljYXRv
ciA9ICZ0ZXh0SW5kaWNhdG9yOwogICAgIF9tYXJnaW4gPSBtYXJnaW47CiAKICAgICBzZWxmLndh
bnRzTGF5ZXIgPSBZRVM7CkBAIC00NjUsNyArNDY1LDggQEAgdm9pZCBUZXh0SW5kaWNhdG9yV2lu
ZG93OjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBD
R1IKICAgICBbbV90ZXh0SW5kaWNhdG9yV2luZG93IHNldE9wYXF1ZTpOT107CiAgICAgW21fdGV4
dEluZGljYXRvcldpbmRvdyBzZXRJZ25vcmVzTW91c2VFdmVudHM6WUVTXTsKIAotICAgIG1fdGV4
dEluZGljYXRvclZpZXcgPSBhZG9wdE5TKFtbV2ViVGV4dEluZGljYXRvclZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCBbbV90ZXh0SW5kaWNhdG9yV2luZG93IGZyYW1l
XS5zaXplLndpZHRoLCBbbV90ZXh0SW5kaWNhdG9yV2luZG93IGZyYW1lXS5zaXplLmhlaWdodCkg
dGV4dEluZGljYXRvcjptX3RleHRJbmRpY2F0b3IgbWFyZ2luOk5TTWFrZVNpemUoaG9yaXpvbnRh
bE1hcmdpbiwgdmVydGljYWxNYXJnaW4pIG9mZnNldDpmcmFjdGlvbmFsVGV4dE9mZnNldF0pOwor
ICAgIG1fdGV4dEluZGljYXRvclZpZXcgPSBhZG9wdE5TKFtbV2ViVGV4dEluZGljYXRvclZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCBbbV90ZXh0SW5kaWNhdG9yV2lu
ZG93IGZyYW1lXS5zaXplLndpZHRoLCBbbV90ZXh0SW5kaWNhdG9yV2luZG93IGZyYW1lXS5zaXpl
LmhlaWdodCkKKyAgICAgICAgdGV4dEluZGljYXRvcjoqbV90ZXh0SW5kaWNhdG9yIG1hcmdpbjpO
U01ha2VTaXplKGhvcml6b250YWxNYXJnaW4sIHZlcnRpY2FsTWFyZ2luKSBvZmZzZXQ6ZnJhY3Rp
b25hbFRleHRPZmZzZXRdKTsKICAgICBbbV90ZXh0SW5kaWNhdG9yV2luZG93IHNldENvbnRlbnRW
aWV3Om1fdGV4dEluZGljYXRvclZpZXcuZ2V0KCldOwogCiAgICAgW1ttX3RhcmdldFZpZXcgd2lu
ZG93XSBhZGRDaGlsZFdpbmRvdzptX3RleHRJbmRpY2F0b3JXaW5kb3cuZ2V0KCkgb3JkZXJlZDpO
U1dpbmRvd0Fib3ZlXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCBhNDM0MTdkY2UxYzQwMTMwODQ2
OTIzODNhMTJhOGNmMWFiOWQyMGIzLi4wMTFhZTBmMjMzYzA5MjZmZWZlMGYwZDkwN2M1ZjFhODBm
MjcyNzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0zMCw3ICszMCw2IEBACiAjaW5jbHVkZSAi
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlLmgiCiAjaW5j
bHVkZSAiVGltZXIuaCIKLSNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjksMTEgKzY4LDExIEBAIHB1
YmxpYzoKIHByb3RlY3RlZDoKICAgICBXRUJDT1JFX0VYUE9SVCBBc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yKFBhZ2UqKTsKIAotICAgIHZvaWQgc2V0U2Nyb2xsaW5nVHJlZShQYXNzUmVmUHRyPFNj
cm9sbGluZ1RyZWU+IHNjcm9sbGluZ1RyZWUpIHsgbV9zY3JvbGxpbmdUcmVlID0gc2Nyb2xsaW5n
VHJlZTsgfQorICAgIHZvaWQgc2V0U2Nyb2xsaW5nVHJlZShSZWY8U2Nyb2xsaW5nVHJlZT4mJiBz
Y3JvbGxpbmdUcmVlKSB7IG1fc2Nyb2xsaW5nVHJlZSA9IFdURk1vdmUoc2Nyb2xsaW5nVHJlZSk7
IH0KIAogICAgIFNjcm9sbGluZ1N0YXRlVHJlZSogc2Nyb2xsaW5nU3RhdGVUcmVlKCkgeyByZXR1
cm4gbV9zY3JvbGxpbmdTdGF0ZVRyZWUuZ2V0KCk7IH0KIAotICAgIFBhc3NSZWZQdHI8U2Nyb2xs
aW5nVHJlZT4gcmVsZWFzZVNjcm9sbGluZ1RyZWUoKSB7IHJldHVybiBXVEZNb3ZlKG1fc2Nyb2xs
aW5nVHJlZSk7IH0KKyAgICBSZWZQdHI8U2Nyb2xsaW5nVHJlZT4gcmVsZWFzZVNjcm9sbGluZ1Ry
ZWUoKSB7IHJldHVybiBXVEZNb3ZlKG1fc2Nyb2xsaW5nVHJlZSk7IH0KIAogICAgIHZvaWQgdXBk
YXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3Qg
RmxvYXRQb2ludCYsIHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4gbGF5b3V0Vmlld3BvcnRPcmln
aW4sIGJvb2wgcHJvZ3JhbW1hdGljU2Nyb2xsLCBTY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9u
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0
Y2hpbmdTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRj
aGluZ1N0YXRlLmNwcAppbmRleCBlMzlkOTllZmJhMzA2OGNjYjA1NWI0MGQxYzcyNDM3N2Q1OGUz
NWJlLi4wMWU2NTI5YjAyYzhjMWQ3MGFlNzczMjgzZWI3ZjczMDA1NzRmOTg1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRlLmNw
cApAQCAtMzEsOSArMzEsNiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBTY3JvbGxMYXRjaGlu
Z1N0YXRlOjpTY3JvbGxMYXRjaGluZ1N0YXRlKCkKLSAgICA6IG1fZnJhbWUobnVsbHB0cikKLSAg
ICAsIG1fd2lkZ2V0SXNMYXRjaGVkKGZhbHNlKQotICAgICwgbV9zdGFydGVkR2VzdHVyZUF0U2Ny
b2xsTGltaXQoZmFsc2UpCiB7CiB9CiAgICAgCkBAIC01MCw3ICs0Nyw3IEBAIHZvaWQgU2Nyb2xs
TGF0Y2hpbmdTdGF0ZTo6Y2xlYXIoKQogICAgIG1fcHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVu
dCA9IG51bGxwdHI7CiB9CiAKLXZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0V2hlZWxFdmVu
dEVsZW1lbnQoUGFzc1JlZlB0cjxFbGVtZW50PiBlbGVtZW50KQordm9pZCBTY3JvbGxMYXRjaGlu
Z1N0YXRlOjpzZXRXaGVlbEV2ZW50RWxlbWVudChFbGVtZW50KiBlbGVtZW50KQogewogICAgIG1f
d2hlZWxFdmVudEVsZW1lbnQgPSBlbGVtZW50OwogfQpAQCAtNjAsMTQgKzU3LDE0IEBAIHZvaWQg
U2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0V2lkZ2V0SXNMYXRjaGVkKGJvb2wgaXNPdmVyV2lkZ2V0
KQogICAgIG1fd2lkZ2V0SXNMYXRjaGVkID0gaXNPdmVyV2lkZ2V0OwogfQogCi12b2lkIFNjcm9s
bExhdGNoaW5nU3RhdGU6OnNldFByZXZpb3VzV2hlZWxTY3JvbGxlZEVsZW1lbnQoUmVmUHRyPEVs
ZW1lbnQ+JiYgZWxlbWVudCkKK3ZvaWQgU2Nyb2xsTGF0Y2hpbmdTdGF0ZTo6c2V0UHJldmlvdXNX
aGVlbFNjcm9sbGVkRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQogewogICAgIG1fcHJldmlvdXNX
aGVlbFNjcm9sbGVkRWxlbWVudCA9IGVsZW1lbnQ7CiB9CiAKLXZvaWQgU2Nyb2xsTGF0Y2hpbmdT
dGF0ZTo6c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihQYXNzUmVmUHRyPENvbnRhaW5lck5vZGU+IG5v
ZGUpCit2b2lkIFNjcm9sbExhdGNoaW5nU3RhdGU6OnNldFNjcm9sbGFibGVDb250YWluZXIoQ29u
dGFpbmVyTm9kZSogY29udGFpbmVyKQogewotICAgIG1fc2Nyb2xsYWJsZUNvbnRhaW5lciA9IG5v
ZGU7CisgICAgbV9zY3JvbGxhYmxlQ29udGFpbmVyID0gY29udGFpbmVyOwogfQogCiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxMYXRjaGluZ1N0YXRlLmgK
aW5kZXggNGRjMGRkMzIyOTNiMzkwZWM5YjY3MWNmZTNiMTk4NTdjOTczYzQ3OC4uMTFkY2JkMGRi
MTU1ZTA0NTAwMDU2MjFhMDUxNzQ3NmQyYjkyOTNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsTGF0Y2hpbmdTdGF0ZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbExhdGNoaW5nU3RhdGUuaApAQCAtNDEsNyArNDEsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhcigpOwogCiAgICAgRWxlbWVudCogd2hlZWxFdmVudEVs
ZW1lbnQoKSB7IHJldHVybiBtX3doZWVsRXZlbnRFbGVtZW50LmdldCgpOyB9Ci0gICAgdm9pZCBz
ZXRXaGVlbEV2ZW50RWxlbWVudChQYXNzUmVmUHRyPEVsZW1lbnQ+KTsKKyAgICB2b2lkIHNldFdo
ZWVsRXZlbnRFbGVtZW50KEVsZW1lbnQqKTsKICAgICBGcmFtZSogZnJhbWUoKSB7IHJldHVybiBt
X2ZyYW1lOyB9CiAgICAgdm9pZCBzZXRGcmFtZShGcmFtZSogZnJhbWUpIHsgbV9mcmFtZSA9IGZy
YW1lOyB9CiAKQEAgLTQ5LDEwICs0OSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRXaWRnZXRJ
c0xhdGNoZWQoYm9vbCBpc092ZXJXaWRnZXQpOwogCiAgICAgRWxlbWVudCogcHJldmlvdXNXaGVl
bFNjcm9sbGVkRWxlbWVudCgpIHsgcmV0dXJuIG1fcHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVu
dC5nZXQoKTsgfQotICAgIHZvaWQgc2V0UHJldmlvdXNXaGVlbFNjcm9sbGVkRWxlbWVudChSZWZQ
dHI8RWxlbWVudD4mJik7CisgICAgdm9pZCBzZXRQcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50
KEVsZW1lbnQqKTsKICAgICAKICAgICBDb250YWluZXJOb2RlKiBzY3JvbGxhYmxlQ29udGFpbmVy
KCkgeyByZXR1cm4gbV9zY3JvbGxhYmxlQ29udGFpbmVyLmdldCgpOyB9Ci0gICAgdm9pZCBzZXRT
Y3JvbGxhYmxlQ29udGFpbmVyKFBhc3NSZWZQdHI8Q29udGFpbmVyTm9kZT4pOworICAgIHZvaWQg
c2V0U2Nyb2xsYWJsZUNvbnRhaW5lcihDb250YWluZXJOb2RlKik7CiAgICAgYm9vbCBzdGFydGVk
R2VzdHVyZUF0U2Nyb2xsTGltaXQoKSBjb25zdCB7IHJldHVybiBtX3N0YXJ0ZWRHZXN0dXJlQXRT
Y3JvbGxMaW1pdDsgfQogICAgIHZvaWQgc2V0U3RhcnRlZEdlc3R1cmVBdFNjcm9sbExpbWl0KGJv
b2wgc3RhcnRlZEF0TGltaXQpIHsgbV9zdGFydGVkR2VzdHVyZUF0U2Nyb2xsTGltaXQgPSBzdGFy
dGVkQXRMaW1pdDsgfQogCkBAIC02MSwxMCArNjEsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8
RWxlbWVudD4gbV9wcmV2aW91c1doZWVsU2Nyb2xsZWRFbGVtZW50OwogICAgIFJlZlB0cjxDb250
YWluZXJOb2RlPiBtX3Njcm9sbGFibGVDb250YWluZXI7CiAKLSAgICBGcmFtZSogbV9mcmFtZTsK
LSAgICAKLSAgICBib29sIG1fd2lkZ2V0SXNMYXRjaGVkOwotICAgIGJvb2wgbV9zdGFydGVkR2Vz
dHVyZUF0U2Nyb2xsTGltaXQ7CisgICAgRnJhbWUqIG1fZnJhbWUgeyBudWxscHRyIH07CisKKyAg
ICBib29sIG1fd2lkZ2V0SXNMYXRjaGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fc3RhcnRlZEdl
c3R1cmVBdFNjcm9sbExpbWl0IHsgZmFsc2UgfTsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdTdGF0ZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVOb2RlLmNwcAppbmRleCBjODQ1OWIwNWEwZDE2N2I1YWNlYWQxNDA5NWU5M2Y2ZWQ3N2Yy
NGQwLi42MWRhNThhOWRlZWMwZjY4ZDVkYTYyMGUyZDZmZDgwMzE1YTc0YzIwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZU5vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5jcHAK
QEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OnNldFByb3BlcnR5Q2hh
bmdlZCh1bnNpZ25lZCBwcm9wZXJ0eUJpdCkKICAgICBtX3Njcm9sbGluZ1N0YXRlVHJlZS5zZXRI
YXNDaGFuZ2VkUHJvcGVydGllcygpOwogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlTm9k
ZT4gU2Nyb2xsaW5nU3RhdGVOb2RlOjpjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYg
YWRvcHRpdmVUcmVlKQorUmVmPFNjcm9sbGluZ1N0YXRlTm9kZT4gU2Nyb2xsaW5nU3RhdGVOb2Rl
OjpjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVlKQogewogICAg
IGF1dG8gY2xvbmUgPSB0aGlzLT5jbG9uZShhZG9wdGl2ZVRyZWUpOwogCkBAIC04MCw3ICs4MCw4
IEBAIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBTY3JvbGxpbmdTdGF0ZU5vZGU6OmNs
b25lQW5kUmVzZXQoU2Nyb2xsaW5nU3RhdGVUCiAgICAgcmVzZXRDaGFuZ2VkUHJvcGVydGllcygp
OwogCiAgICAgY2xvbmVBbmRSZXNldENoaWxkcmVuKGNsb25lLmdldCgpLCBhZG9wdGl2ZVRyZWUp
OwotICAgIHJldHVybiBXVEZNb3ZlKGNsb25lKTsKKworICAgIHJldHVybiBjbG9uZTsKIH0KIAog
dm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6OmNsb25lQW5kUmVzZXRDaGlsZHJlbihTY3JvbGxpbmdT
dGF0ZU5vZGUmIGNsb25lLCBTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSkKQEAgLTky
LDE0ICs5MywxMyBAQCB2b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6Y2xvbmVBbmRSZXNldENoaWxk
cmVuKFNjcm9sbGluZ1N0YXRlTm9kZSYgY2xvbmUsIFNjcm9sbAogICAgICAgICBjbG9uZS5hcHBl
bmRDaGlsZChjaGlsZC0+Y2xvbmVBbmRSZXNldChhZG9wdGl2ZVRyZWUpKTsKIH0KIAotdm9pZCBT
Y3JvbGxpbmdTdGF0ZU5vZGU6OmFwcGVuZENoaWxkKFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVO
b2RlPiBjaGlsZE5vZGUpCit2b2lkIFNjcm9sbGluZ1N0YXRlTm9kZTo6YXBwZW5kQ2hpbGQoUmVm
PFNjcm9sbGluZ1N0YXRlTm9kZT4mJiBjaGlsZE5vZGUpCiB7CiAgICAgY2hpbGROb2RlLT5zZXRQ
YXJlbnQodGhpcyk7CiAKICAgICBpZiAoIW1fY2hpbGRyZW4pCiAgICAgICAgIG1fY2hpbGRyZW4g
PSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPj4+KCk7
Ci0KLSAgICBtX2NoaWxkcmVuLT5hcHBlbmQoY2hpbGROb2RlKTsKKyAgICBtX2NoaWxkcmVuLT5h
cHBlbmQoV1RGTW92ZShjaGlsZE5vZGUpKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdTdGF0ZU5vZGU6
OnNldExheWVyKGNvbnN0IExheWVyUmVwcmVzZW50YXRpb24mIGxheWVyUmVwcmVzZW50YXRpb24p
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0
ZU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9k
ZS5oCmluZGV4IGJmYWQxYzQ1ZTBkNzFmOWJhN2MyYmMwODIzZjExYmU0NjhkNjllYzAuLjA4N2Q2
MTgyOWFkZTU0NjEwNjEyMDU3NWJkNDFhMTY4MGViYzFkMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlTm9kZS5oCkBAIC0yMDYsNyArMjA2
LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNPdmVyZmxvd1Njcm9sbGluZ05vZGUoKSBjb25zdCB7
IHJldHVybiBtX25vZGVUeXBlID09IE92ZXJmbG93U2Nyb2xsaW5nTm9kZTsgfQogCiAgICAgdmly
dHVhbCBSZWY8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9uZShTY3JvbGxpbmdTdGF0ZVRyZWUmIGFk
b3B0aXZlVHJlZSkgPSAwOwotICAgIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjbG9u
ZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRpdmVUcmVlKTsKKyAgICBSZWY8U2Ny
b2xsaW5nU3RhdGVOb2RlPiBjbG9uZUFuZFJlc2V0KFNjcm9sbGluZ1N0YXRlVHJlZSYgYWRvcHRp
dmVUcmVlKTsKICAgICB2b2lkIGNsb25lQW5kUmVzZXRDaGlsZHJlbihTY3JvbGxpbmdTdGF0ZU5v
ZGUmLCBTY3JvbGxpbmdTdGF0ZVRyZWUmIGFkb3B0aXZlVHJlZSk7CiAKICAgICBlbnVtIHsKQEAg
LTIzOCw3ICsyMzgsNyBAQCBwdWJsaWM6CiAKICAgICBWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1N0
YXRlTm9kZT4+KiBjaGlsZHJlbigpIGNvbnN0IHsgcmV0dXJuIG1fY2hpbGRyZW4uZ2V0KCk7IH0K
IAotICAgIHZvaWQgYXBwZW5kQ2hpbGQoUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+KTsK
KyAgICB2b2lkIGFwcGVuZENoaWxkKFJlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+JiYpOwogCiAgICAg
U3RyaW5nIHNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVUcmVlLmNwcAppbmRleCA5
OGI2Y2FkY2I0YzM1MWNkMmQ3NjY2NDY1NzNlMzg1YTczMmZjMTQyLi4wYmJjMWI3MzM4MjcxOWI2
MjU4ZDExZDA0OTQzM2UzMjk4N2EzZTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlVHJlZS5jcHAKQEAgLTY3LDcgKzY3LDcgQEAgdm9p
ZCBTY3JvbGxpbmdTdGF0ZVRyZWU6OnNldEhhc0NoYW5nZWRQcm9wZXJ0aWVzKGJvb2wgY2hhbmdl
ZFByb3BlcnRpZXMpCiAjZW5kaWYKIH0KIAotUGFzc1JlZlB0cjxTY3JvbGxpbmdTdGF0ZU5vZGU+
IFNjcm9sbGluZ1N0YXRlVHJlZTo6Y3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlw
ZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+IFNjcm9s
bGluZ1N0YXRlVHJlZTo6Y3JlYXRlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Ny
b2xsaW5nTm9kZUlEIG5vZGVJRCkKIHsKICAgICBzd2l0Y2ggKG5vZGVUeXBlKSB7CiAgICAgY2Fz
ZSBGaXhlZE5vZGU6CkBAIC04MCw3ICs4MCw3IEBAIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVO
b2RlPiBTY3JvbGxpbmdTdGF0ZVRyZWU6OmNyZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUKICAg
ICAgICAgcmV0dXJuIFNjcm9sbGluZ1N0YXRlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOjpjcmVhdGUo
KnRoaXMsIG5vZGVJRCk7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJl
dHVybiBudWxscHRyOworICAgIHJldHVybiBTY3JvbGxpbmdTdGF0ZUZpeGVkTm9kZTo6Y3JlYXRl
KCp0aGlzLCBub2RlSUQpOwogfQogCiBib29sIFNjcm9sbGluZ1N0YXRlVHJlZTo6bm9kZVR5cGVB
bmRQYXJlbnRNYXRjaChTY3JvbGxpbmdTdGF0ZU5vZGUmIG5vZGUsIFNjcm9sbGluZ05vZGVUeXBl
IG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgcGFyZW50SUQpIGNvbnN0CkBAIC0xMjksMTMgKzEy
OSwxMyBAQCBTY3JvbGxpbmdOb2RlSUQgU2Nyb2xsaW5nU3RhdGVUcmVlOjphdHRhY2hOb2RlKFNj
cm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbAogICAgICAgICBpZiAobm9kZVR5cGUgPT0g
RnJhbWVTY3JvbGxpbmdOb2RlICYmIHBhcmVudElEKSB7CiAgICAgICAgICAgICBpZiAoYXV0byBv
cnBoYW5lZE5vZGUgPSBtX29ycGhhbmVkU3ViZnJhbWVOb2Rlcy50YWtlKG5ld05vZGVJRCkpIHsK
ICAgICAgICAgICAgICAgICBuZXdOb2RlID0gb3JwaGFuZWROb2RlLmdldCgpOwotICAgICAgICAg
ICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoV1RGTW92ZShvcnBoYW5lZE5vZGUpKTsKKyAgICAg
ICAgICAgICAgICBwYXJlbnQtPmFwcGVuZENoaWxkKG9ycGhhbmVkTm9kZS5yZWxlYXNlTm9uTnVs
bCgpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCiAgICAgICAgIGlmICghbmV3Tm9kZSkg
ewogICAgICAgICAgICAgYXV0byBzdGF0ZU5vZGUgPSBjcmVhdGVOb2RlKG5vZGVUeXBlLCBuZXdO
b2RlSUQpOwotICAgICAgICAgICAgbmV3Tm9kZSA9IHN0YXRlTm9kZS5nZXQoKTsKKyAgICAgICAg
ICAgIG5ld05vZGUgPSBzdGF0ZU5vZGUucHRyKCk7CiAgICAgICAgICAgICBwYXJlbnQtPmFwcGVu
ZENoaWxkKFdURk1vdmUoc3RhdGVOb2RlKSk7CiAgICAgICAgIH0KICAgICB9CkBAIC0xODIsNyAr
MTgyLDcgQEAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4gU2Nyb2xsaW5nU3Rh
dGVUcmVlOjpjb21taXQoTGF5ZXJSZXByZXNlbnRhdGkKICAgICB0cmVlU3RhdGVDbG9uZS0+c2V0
UHJlZmVycmVkTGF5ZXJSZXByZXNlbnRhdGlvbihwcmVmZXJyZWRMYXllclJlcHJlc2VudGF0aW9u
KTsKIAogICAgIGlmIChtX3Jvb3RTdGF0ZU5vZGUpCi0gICAgICAgIHRyZWVTdGF0ZUNsb25lLT5z
ZXRSb290U3RhdGVOb2RlKHN0YXRpY19wb2ludGVyX2Nhc3Q8U2Nyb2xsaW5nU3RhdGVGcmFtZVNj
cm9sbGluZ05vZGU+KG1fcm9vdFN0YXRlTm9kZS0+Y2xvbmVBbmRSZXNldCgqdHJlZVN0YXRlQ2xv
bmUpKSk7CisgICAgICAgIHRyZWVTdGF0ZUNsb25lLT5zZXRSb290U3RhdGVOb2RlKHN0YXRpY19y
ZWZlcmVuY2VfY2FzdDxTY3JvbGxpbmdTdGF0ZUZyYW1lU2Nyb2xsaW5nTm9kZT4obV9yb290U3Rh
dGVOb2RlLT5jbG9uZUFuZFJlc2V0KCp0cmVlU3RhdGVDbG9uZSkpKTsKIAogICAgIC8vIENvcHkg
dGhlIElEcyBvZiB0aGUgbm9kZXMgdGhhdCBoYXZlIGJlZW4gcmVtb3ZlZCBzaW5jZSB0aGUgbGFz
dCBjb21taXQgaW50byB0aGUgY2xvbmUuCiAgICAgdHJlZVN0YXRlQ2xvbmUtPm1fbm9kZXNSZW1v
dmVkU2luY2VMYXN0Q29tbWl0LnN3YXAobV9ub2Rlc1JlbW92ZWRTaW5jZUxhc3RDb21taXQpOwpA
QCAtMjExLDcgKzIxMSw4IEBAIHZvaWQgU2Nyb2xsaW5nU3RhdGVUcmVlOjpyZW1vdmVOb2RlQW5k
QWxsRGVzY2VuZGFudHMoU2Nyb2xsaW5nU3RhdGVOb2RlKiBub2RlLCBTCiAgICAgaWYgKG5vZGUg
PT0gbV9yb290U3RhdGVOb2RlKQogICAgICAgICBtX3Jvb3RTdGF0ZU5vZGUgPSBudWxscHRyOwog
ICAgIGVsc2UgaWYgKHBhcmVudCkgewotICAgICAgICBBU1NFUlQocGFyZW50LT5jaGlsZHJlbigp
ICYmIHBhcmVudC0+Y2hpbGRyZW4oKS0+ZmluZChub2RlKSAhPSBub3RGb3VuZCk7CisgICAgICAg
IEFTU0VSVChwYXJlbnQtPmNoaWxkcmVuKCkpOworICAgICAgICBBU1NFUlQocGFyZW50LT5jaGls
ZHJlbigpLT5maW5kKG5vZGUpICE9IG5vdEZvdW5kKTsKICAgICAgICAgaWYgKGF1dG8gY2hpbGRy
ZW4gPSBwYXJlbnQtPmNoaWxkcmVuKCkpIHsKICAgICAgICAgICAgIHNpemVfdCBpbmRleCA9IGNo
aWxkcmVuLT5maW5kKG5vZGUpOwogICAgICAgICAgICAgaWYgKGluZGV4ICE9IG5vdEZvdW5kKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVU
cmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUu
aAppbmRleCAzMWY2ZGI3OWU3YjQwYzFiMzJmMmVhN2NkY2ZmYzQ4ZjE3YmZjZTMxLi4zYjI1NjE1
MWFkNzQ0YmNmMDIzNGQ3MmQ0ZmQzYTBjNzVkNDM2OTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVRyZWUuaApAQCAtNzQsMTcgKzc0LDE0
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFByZWZlcnJlZExheWVyUmVwcmVzZW50YXRpb24oTGF5
ZXJSZXByZXNlbnRhdGlvbjo6VHlwZSByZXByZXNlbnRhdGlvbikgeyBtX3ByZWZlcnJlZExheWVy
UmVwcmVzZW50YXRpb24gPSByZXByZXNlbnRhdGlvbjsgfQogCiBwcml2YXRlOgotICAgIHZvaWQg
c2V0Um9vdFN0YXRlTm9kZShQYXNzUmVmUHRyPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxpbmdO
b2RlPiByb290U3RhdGVOb2RlKSB7IG1fcm9vdFN0YXRlTm9kZSA9IHJvb3RTdGF0ZU5vZGU7IH0K
KyAgICB2b2lkIHNldFJvb3RTdGF0ZU5vZGUoUmVmPFNjcm9sbGluZ1N0YXRlRnJhbWVTY3JvbGxp
bmdOb2RlPiYmIHJvb3RTdGF0ZU5vZGUpIHsgbV9yb290U3RhdGVOb2RlID0gV1RGTW92ZShyb290
U3RhdGVOb2RlKTsgfQogICAgIHZvaWQgYWRkTm9kZShTY3JvbGxpbmdTdGF0ZU5vZGUqKTsKIAot
ICAgIFBhc3NSZWZQdHI8U2Nyb2xsaW5nU3RhdGVOb2RlPiBjcmVhdGVOb2RlKFNjcm9sbGluZ05v
ZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpOworICAgIFJlZjxTY3JvbGxpbmdTdGF0ZU5vZGU+IGNy
ZWF0ZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCk7CiAKICAgICBib29s
IG5vZGVUeXBlQW5kUGFyZW50TWF0Y2goU2Nyb2xsaW5nU3RhdGVOb2RlJiwgU2Nyb2xsaW5nTm9k
ZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBwYXJlbnRJRCkgY29uc3Q7CiAKLSAgICBlbnVtIGNsYXNz
IFN1YmZyYW1lTm9kZVJlbW92YWwgewotICAgICAgICBEZWxldGUsCi0gICAgICAgIE9ycGhhbgot
ICAgIH07CisgICAgZW51bSBjbGFzcyBTdWJmcmFtZU5vZGVSZW1vdmFsIHsgRGVsZXRlLCBPcnBo
YW4gfTsKICAgICB2b2lkIHJlbW92ZU5vZGVBbmRBbGxEZXNjZW5kYW50cyhTY3JvbGxpbmdTdGF0
ZU5vZGUqLCBTdWJmcmFtZU5vZGVSZW1vdmFsID0gU3ViZnJhbWVOb2RlUmVtb3ZhbDo6RGVsZXRl
KTsKIAogICAgIHZvaWQgcmVjdXJzaXZlTm9kZVdpbGxCZVJlbW92ZWQoU2Nyb2xsaW5nU3RhdGVO
b2RlKiBjdXJyTm9kZSwgU3ViZnJhbWVOb2RlUmVtb3ZhbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCmluZGV4IGQwMGVjNWRkOWIxYjdkNGE2
ZDYxYmY1ZDEzOWI0OTkyZTYzN2Q4ZWYuLjQwYmNjNjNmZjhjMzM3YWZiYzEwYmQ0Yjk5ZWIxYzAw
M2Y0NzUwYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuY3BwCkBAIC0xNzksNyArMTc5LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjp1cGRhdGVU
cmVlRnJvbVN0YXRlTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUqIHN0YXRlTm9kZSwKICAg
ICAgICAgaWYgKHBhcmVudEl0ICE9IG1fbm9kZU1hcC5lbmQoKSkgewogICAgICAgICAgICAgU2Ny
b2xsaW5nVHJlZU5vZGUqIHBhcmVudCA9IHBhcmVudEl0LT52YWx1ZTsKICAgICAgICAgICAgIG5v
ZGUtPnNldFBhcmVudChwYXJlbnQpOwotICAgICAgICAgICAgcGFyZW50LT5hcHBlbmRDaGlsZChu
b2RlKTsKKyAgICAgICAgICAgIHBhcmVudC0+YXBwZW5kQ2hpbGQoKm5vZGUpOwogICAgICAgICB9
CiAgICAgfQogCkBAIC0xODksNyArMTg5LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjp1cGRhdGVU
cmVlRnJvbVN0YXRlTm9kZShjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUqIHN0YXRlTm9kZSwKICAg
ICBpZiAoYXV0byBub2RlQ2hpbGRyZW4gPSBub2RlLT5jaGlsZHJlbigpKSB7CiAgICAgICAgIGZv
ciAoYXV0byYgY2hpbGRTY3JvbGxpbmdOb2RlIDogKm5vZGVDaGlsZHJlbikgewogICAgICAgICAg
ICAgY2hpbGRTY3JvbGxpbmdOb2RlLT5zZXRQYXJlbnQobnVsbHB0cik7Ci0gICAgICAgICAgICBv
cnBoYW5Ob2Rlcy5hZGQoY2hpbGRTY3JvbGxpbmdOb2RlLT5zY3JvbGxpbmdOb2RlSUQoKSwgY2hp
bGRTY3JvbGxpbmdOb2RlKTsKKyAgICAgICAgICAgIG9ycGhhbk5vZGVzLmFkZChjaGlsZFNjcm9s
bGluZ05vZGUtPnNjcm9sbGluZ05vZGVJRCgpLCBjaGlsZFNjcm9sbGluZ05vZGUuZ2V0KCkpOwog
ICAgICAgICB9CiAgICAgICAgIG5vZGVDaGlsZHJlbi0+Y2xlYXIoKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKaW5kZXggNjczNGI1M2Fk
YWI1YzM5OWI5MzNhYzM3N2VkZTc0YjhjMmEwNWE0ZC4uYWFmMmQ0NzhiYmI4MDA5NWY1NTk2Yzkx
NDYwNmUyYjliNWQ4ZjhjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1h
aW5GcmFtZVBpblN0YXRlKGJvb2wgcGlubmVkVG9UaGVMZWZ0LCBib29sIHBpbm5lZFRvVGhlUmln
aHQsIGJvb2wgcGlubmVkVG9UaGVUb3AsIGJvb2wgcGlubmVkVG9UaGVCb3R0b20pOwogCi0gICAg
dmlydHVhbCBQYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVl
Tm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKSA9IDA7CisgICAgdmlydHVh
bCBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGlu
Z05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpID0gMDsKIAogICAgIC8vIENhbGxlZCBhZnRlciBh
IHNjcm9sbGluZyB0cmVlIG5vZGUgaGFzIGhhbmRsZWQgYSBzY3JvbGwgYW5kIHVwZGF0ZWQgaXRz
IGxheWVycy4KICAgICAvLyBVcGRhdGVzIEZyYW1lVmlldy9SZW5kZXJMYXllciBzY3JvbGxpbmcg
c3RhdGUgYW5kIEdyYXBoaWNzTGF5ZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZU5vZGUuY3BwCmluZGV4IGRlYjc4MWExYzFmOWZkZDAzM2M5
OTk1Yzk5MjFjMDcyOTkyNjlhMmEuLjBmNjYxNmQwZjNkYzM1Nzg2MzA2ZmQ0NjZmN2E2OTY0MTVi
MmVlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlTm9kZS5jcHAKQEAgLTQ1LDIyICs0NSwyMSBAQCBTY3JvbGxpbmdUcmVlTm9kZTo6flNj
cm9sbGluZ1RyZWVOb2RlKCkKIHsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlTm9kZTo6YXBwZW5k
Q2hpbGQoUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gY2hpbGROb2RlKQordm9pZCBTY3Jv
bGxpbmdUcmVlTm9kZTo6YXBwZW5kQ2hpbGQoUmVmPFNjcm9sbGluZ1RyZWVOb2RlPiYmIGNoaWxk
Tm9kZSkKIHsKICAgICBjaGlsZE5vZGUtPnNldFBhcmVudCh0aGlzKTsKIAogICAgIGlmICghbV9j
aGlsZHJlbikKLSAgICAgICAgbV9jaGlsZHJlbiA9IHN0ZDo6bWFrZV91bmlxdWU8U2Nyb2xsaW5n
VHJlZUNoaWxkcmVuVmVjdG9yPigpOwotCi0gICAgbV9jaGlsZHJlbi0+YXBwZW5kKGNoaWxkTm9k
ZSk7CisgICAgICAgIG1fY2hpbGRyZW4gPSBzdGQ6Om1ha2VfdW5pcXVlPFZlY3RvcjxSZWZQdHI8
U2Nyb2xsaW5nVHJlZU5vZGU+Pj4oKTsKKyAgICBtX2NoaWxkcmVuLT5hcHBlbmQoV1RGTW92ZShj
aGlsZE5vZGUpKTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlTm9kZTo6cmVtb3ZlQ2hpbGQoU2Ny
b2xsaW5nVHJlZU5vZGUqIG5vZGUpCit2b2lkIFNjcm9sbGluZ1RyZWVOb2RlOjpyZW1vdmVDaGls
ZChTY3JvbGxpbmdUcmVlTm9kZSYgbm9kZSkKIHsKICAgICBpZiAoIW1fY2hpbGRyZW4pCiAgICAg
ICAgIHJldHVybjsKIAotICAgIHNpemVfdCBpbmRleCA9IG1fY2hpbGRyZW4tPmZpbmQobm9kZSk7
CisgICAgc2l6ZV90IGluZGV4ID0gbV9jaGlsZHJlbi0+ZmluZCgmbm9kZSk7CiAKICAgICAvLyBU
aGUgaW5kZXggd2lsbCBiZSBub3RGb3VuZCBpZiB0aGUgbm9kZSB0byByZW1vdmUgaXMgYSBkZWVw
ZXItdGhhbi0xLWxldmVsIGRlc2NlbmRhbnQgb3IKICAgICAvLyBpZiBub2RlIGlzIHRoZSByb290
IHN0YXRlIG5vZGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZU5vZGUuaAppbmRleCAzZTg2ZTNkNDc4ZDM0MDY5MzU5ZWFhNWM2YjljZmJhYzY3NWNl
ZDA1Li4yZTE2MzI0NmJiOTZlMzNmZWY2MmFkYTcxYjQxYTIxMzkyMTI3OTMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmgKQEAgLTYw
LDExICs2MCwxMCBAQCBwdWJsaWM6CiAgICAgU2Nyb2xsaW5nVHJlZU5vZGUqIHBhcmVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fcGFyZW50OyB9CiAgICAgdm9pZCBzZXRQYXJlbnQoU2Nyb2xsaW5nVHJl
ZU5vZGUqIHBhcmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsgfQogCi0gICAgdHlwZWRlZiBWZWN0
b3I8UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPj4gU2Nyb2xsaW5nVHJlZUNoaWxkcmVuVmVjdG9y
OwotICAgIFNjcm9sbGluZ1RyZWVDaGlsZHJlblZlY3RvciogY2hpbGRyZW4oKSB7IHJldHVybiBt
X2NoaWxkcmVuLmdldCgpOyB9Ci0gICAgCi0gICAgdm9pZCBhcHBlbmRDaGlsZChQYXNzUmVmUHRy
PFNjcm9sbGluZ1RyZWVOb2RlPik7Ci0gICAgdm9pZCByZW1vdmVDaGlsZChTY3JvbGxpbmdUcmVl
Tm9kZSopOworICAgIFZlY3RvcjxSZWZQdHI8U2Nyb2xsaW5nVHJlZU5vZGU+PiogY2hpbGRyZW4o
KSB7IHJldHVybiBtX2NoaWxkcmVuLmdldCgpOyB9CisKKyAgICB2b2lkIGFwcGVuZENoaWxkKFJl
ZjxTY3JvbGxpbmdUcmVlTm9kZT4mJik7CisgICAgdm9pZCByZW1vdmVDaGlsZChTY3JvbGxpbmdU
cmVlTm9kZSYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBkdW1wKFRleHRTdHJlYW0mLCBT
Y3JvbGxpbmdTdGF0ZVRyZWVBc1RleHRCZWhhdmlvcikgY29uc3Q7CiAKQEAgLTcyLDcgKzcxLDcg
QEAgcHJvdGVjdGVkOgogICAgIFNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ1RyZWUmLCBTY3Jv
bGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEKTsKICAgICBTY3JvbGxpbmdUcmVlJiBzY3Jv
bGxpbmdUcmVlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxpbmdUcmVlOyB9CiAKLSAgICBzdGQ6
OnVuaXF1ZV9wdHI8U2Nyb2xsaW5nVHJlZUNoaWxkcmVuVmVjdG9yPiBtX2NoaWxkcmVuOworICAg
IHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8UmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPj4+IG1fY2hp
bGRyZW47CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2aXJ0dWFsIHZvaWQgZHVtcFByb3BlcnRpZXMo
VGV4dFN0cmVhbSYsIFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxp
bmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xs
aW5nVHJlZS5jcHAKaW5kZXggYmNiNDhlNDk1YzFiMGI4OWU3NWE3YWEzM2U4NWU1OTRkN2M1ZTY4
NS4uZjY2NGVkM2FjM2JlNTM4ZGZmMmZlNTg4MDJhMDk3N2FhMGFhMDg5MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
Y3BwCkBAIC0zOSw4ICszOSw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotVGhyZWFkZWRT
Y3JvbGxpbmdUcmVlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWUoQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCi0gICAgOiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9y
KHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpUaHJlYWRlZFNj
cm9sbGluZ1RyZWUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYgc2Nyb2xsaW5nQ29vcmRpbmF0
b3IpCisgICAgOiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yKCZzY3JvbGxpbmdDb29yZGluYXRvcikK
IHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFk
ZWRTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRl
ZFNjcm9sbGluZ1RyZWUuaAppbmRleCA3MzI1NDA1OWMyZDc3MDIwNWNlZmRiZDE1MzBhYjI3OTA0
YWE3MzYzLi42ZDFkNDlkNjdlY2E1ZmE4ZDUyYTg1OGVlY2Y1ZjkzZWU5Yzk3MGRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1Ry
ZWUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZSgpIG92
ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6Ci0gICAgZXhwbGljaXQgVGhyZWFkZWRTY3JvbGxpbmdUcmVl
KEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqKTsKKyAgICBleHBsaWNpdCBUaHJlYWRlZFNjcm9s
bGluZ1RyZWUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOwogCiAgICAgdm9pZCBzY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNj
cm9sbFBvc2l0aW9uLCBjb25zdCBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+JiBsYXlvdXRWaWV3
cG9ydE9yaWdpbiwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb246OlN5bmMpIG92ZXJyaWRlOwogICAgIHZvaWQgY3VycmVudFNuYXBQb2lu
dEluZGljZXNEaWRDaGFuZ2UoU2Nyb2xsaW5nTm9kZUlELCB1bnNpZ25lZCBob3Jpem9udGFsLCB1
bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JJT1MubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JJT1MubW0KaW5kZXgg
NGNjZjQ0NDI5Zjk5ZTEwOWY4NzU1Yjk0NjAxMjZiYmNhN2U1YjllYS4uNmIxNjg1NzNiNTYwMzBi
M2FmM2Q5NDAyYTQ0YzcwZTg5ODJlOWIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ0Nvb3JkaW5hdG9ySU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdDb29yZGluYXRvcklPUy5tbQpAQCAt
NTIsNyArNTIsNyBAQCBTY3JvbGxpbmdDb29yZGluYXRvcklPUzo6U2Nyb2xsaW5nQ29vcmRpbmF0
b3JJT1MoUGFnZSogcGFnZSkKICAgICA6IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IocGFnZSkK
ICAgICAsIG1fc2Nyb2xsaW5nU3RhdGVUcmVlQ29tbWl0dGVyVGltZXIoKnRoaXMsICZTY3JvbGxp
bmdDb29yZGluYXRvcklPUzo6Y29tbWl0VHJlZVN0YXRlKQogewotICAgIHNldFNjcm9sbGluZ1Ry
ZWUoU2Nyb2xsaW5nVHJlZUlPUzo6Y3JlYXRlKHRoaXMpKTsKKyAgICBzZXRTY3JvbGxpbmdUcmVl
KFNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZSgqdGhpcykpOwogfQogCiBTY3JvbGxpbmdDb29yZGlu
YXRvcklPUzo6flNjcm9sbGluZ0Nvb3JkaW5hdG9ySU9TKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNwcAppbmRleCAxMGIz
Zjg3MzQ1ZmRhNDNjY2RmZTljMTVmZTQxN2Y0NmFmNTU0NWVhLi4xZjAzZTY4NmU5Zjg3NThlYzY1
YTliNmY5YjYxN2ViMmY4NjhjNjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuY3BwCkBAIC00MCwxMyArNDAsMTMgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8U2Nyb2xsaW5nVHJlZUlPUz4gU2Nyb2xsaW5n
VHJlZUlPUzo6Y3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IqIHNjcm9sbGluZ0Nvb3Jk
aW5hdG9yKQorUmVmPFNjcm9sbGluZ1RyZWVJT1M+IFNjcm9sbGluZ1RyZWVJT1M6OmNyZWF0ZShB
c3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRvcikKIHsKICAgICBy
ZXR1cm4gYWRvcHRSZWYoKm5ldyBTY3JvbGxpbmdUcmVlSU9TKHNjcm9sbGluZ0Nvb3JkaW5hdG9y
KSk7CiB9CiAKLVNjcm9sbGluZ1RyZWVJT1M6OlNjcm9sbGluZ1RyZWVJT1MoQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCi0gICAgOiBtX3Njcm9sbGluZ0Nv
b3JkaW5hdG9yKHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorU2Nyb2xsaW5nVHJlZUlPUzo6U2Nyb2xs
aW5nVHJlZUlPUyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29yZGluYXRv
cikKKyAgICA6IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IoJnNjcm9sbGluZ0Nvb3JkaW5hdG9yKQog
ewogfQogCkBAIC04MywyMCArODMsMjEgQEAgdm9pZCBTY3JvbGxpbmdUcmVlSU9TOjpzY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdAogICAgIH0p
OwogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBTY3JvbGxpbmdUcmVlSU9TOjpj
cmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwgU2Nyb2xs
aW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxTY3JvbGxpbmdUcmVlTm9kZT4gU2Nyb2xsaW5nVHJlZUlP
Uzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9kZVR5cGUsIFNj
cm9sbGluZ05vZGVJRCBub2RlSUQpCiB7CiAgICAgc3dpdGNoIChub2RlVHlwZSkgewogICAgIGNh
c2UgRnJhbWVTY3JvbGxpbmdOb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZUlPUzo6Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIGNhc2UgT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlOgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgRml4ZWROb2RlOgogICAg
ICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0aGlzLCBub2RlSUQp
OwogICAgIGNhc2UgU3RpY2t5Tm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVTdGlj
a3lOb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAgfQotICAgIHJldHVybiBudWxscHRy
OworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBTY3JvbGxpbmdUcmVlRml4
ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAKIEZsb2F0UmVjdCBTY3JvbGxpbmdU
cmVlSU9TOjpmaXhlZFBvc2l0aW9uUmVjdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5oIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaAppbmRleCAxYTlhYWUxYjQwYzgxMjY4
MzQ0ODQxY2U3YjMwNzVlZjcwYTdlNTU0Li5hZWE2OWIzOWY1OWM5NjE1ZDE4MGFhZWE2ZWI4OTcy
NTljZGFkOTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3Mv
U2Nyb2xsaW5nVHJlZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lv
cy9TY3JvbGxpbmdUcmVlSU9TLmgKQEAgLTI5LDM1ICsyOSwzMSBAQAogCiAjaW5jbHVkZSAiU2Ny
b2xsaW5nU3RhdGVUcmVlLmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZS5oIgotI2luY2x1ZGUg
PHd0Zi9QYXNzUmVmUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiAKLWNsYXNzIFNj
cm9sbGluZ1RyZWVJT1MgOiBwdWJsaWMgU2Nyb2xsaW5nVHJlZSB7CitjbGFzcyBTY3JvbGxpbmdU
cmVlSU9TIGZpbmFsIDogcHVibGljIFNjcm9sbGluZ1RyZWUgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8U2Nyb2xsaW5nVHJlZUlPUz4gY3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3Iq
KTsKKyAgICBzdGF0aWMgUmVmPFNjcm9sbGluZ1RyZWVJT1M+IGNyZWF0ZShBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yJik7CiAgICAgdmlydHVhbCB+U2Nyb2xsaW5nVHJlZUlPUygpOwogCi0gICAg
Ly8gTm8gd2hlZWwgZXZlbnRzIG9uIGlPUwotICAgIHZvaWQgaGFuZGxlV2hlZWxFdmVudChjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBvdmVycmlkZSB7IH0KLSAgICBFdmVudFJlc3VsdCB0cnlU
b0hhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGUgeyBy
ZXR1cm4gRGlkTm90SGFuZGxlRXZlbnQ7IH0KLQotICAgIHZvaWQgaW52YWxpZGF0ZSgpIG92ZXJy
aWRlOwotCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVJT1MoQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvciopOwotICAgIGJvb2wgaXNTY3JvbGxpbmdUcmVlSU9TKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQorICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVJT1Mo
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOwogCi0gICAgUGFzc1JlZlB0cjxTY3JvbGxpbmdU
cmVlTm9kZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9s
bGluZ05vZGVJRCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1Njcm9sbGluZ1RyZWVJT1MoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlk
U2Nyb2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24s
IGNvbnN0IHN0ZDo6b3B0aW9uYWw8RmxvYXRQb2ludD4mIGxheW91dFZpZXdwb3J0T3JpZ2luLCBT
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uID0gU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlv
bjo6U3luYykgb3ZlcnJpZGU7CisgICAgLy8gTm8gd2hlZWwgZXZlbnRzIG9uIGlPUworICAgIHZv
aWQgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBmaW5hbCB7IH0K
KyAgICBFdmVudFJlc3VsdCB0cnlUb0hhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JikgZmluYWwgeyByZXR1cm4gRGlkTm90SGFuZGxlRXZlbnQ7IH0KIAotICAgIHZvaWQg
Y3VycmVudFNuYXBQb2ludEluZGljZXNEaWRDaGFuZ2UoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlE
LCB1bnNpZ25lZCBob3Jpem9udGFsLCB1bnNpZ25lZCB2ZXJ0aWNhbCkgb3ZlcnJpZGU7CisgICAg
dm9pZCBpbnZhbGlkYXRlKCkgZmluYWw7CiAKLSAgICBGbG9hdFJlY3QgZml4ZWRQb3NpdGlvblJl
Y3QoKSBvdmVycmlkZTsKKyAgICBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGlu
Z1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIGZpbmFsOworICAg
IHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBG
bG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3Qgc3RkOjpvcHRpb25hbDxGbG9hdFBvaW50
PiYgbGF5b3V0Vmlld3BvcnRPcmlnaW4sIFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24gPSBT
Y3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uOjpTeW5jKSBmaW5hbDsKKyAgICB2b2lkIGN1cnJl
bnRTbmFwUG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCwgdW5z
aWduZWQgaG9yaXpvbnRhbCwgdW5zaWduZWQgdmVydGljYWwpIGZpbmFsOworICAgIEZsb2F0UmVj
dCBmaXhlZFBvc2l0aW9uUmVjdCgpIGZpbmFsOwogCiAgICAgUmVmUHRyPEFzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3I+IG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3I7CiB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9y
TWFjLm1tCmluZGV4IGQ0M2Q5NGIyNDdhNmU0ZjkzOTc0MTU4MjYxOTdjMmIwYWRmMDcxNDguLjg2
MTE4YjQ0NTAwNzk0NmNmMGZhNzgzYzVkNTQzZTExOWU5ZWJmNjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWMubW0KQEAgLTU0LDcgKzU0LDcgQEAgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OlNjcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjKFBhZ2UqIHBhZ2UpCiAgICAgOiBBc3luY1Njcm9sbGluZ0Nvb3Jk
aW5hdG9yKHBhZ2UpCiAgICAgLCBtX3Njcm9sbGluZ1N0YXRlVHJlZUNvbW1pdHRlclRpbWVyKCp0
aGlzLCAmU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmNvbW1pdFRyZWVTdGF0ZSkKIHsKLSAgICBz
ZXRTY3JvbGxpbmdUcmVlKFNjcm9sbGluZ1RyZWVNYWM6OmNyZWF0ZSh0aGlzKSk7CisgICAgc2V0
U2Nyb2xsaW5nVHJlZShTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGUoKnRoaXMpKTsKIH0KIAogU2Ny
b2xsaW5nQ29vcmRpbmF0b3JNYWM6On5TY3JvbGxpbmdDb29yZGluYXRvck1hYygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5j
cHAKaW5kZXggNzBkYmMwNmNmMDEzYmYzMWI4ZGEwN2ZkZTBkMzk4OGM2MWI0ZDgwYS4uODk5ZjFl
OTAxNjdkYjhjOGVhMWZhNmQ4ZWFlZjRjNzA0MTEyMDU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmNwcApAQCAtMzQs
MzAgKzM0LDMxIEBACiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8U2Nyb2xsaW5n
VHJlZU1hYz4gU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IqIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQorUmVmPFNjcm9sbGluZ1RyZWVNYWM+IFNjcm9sbGlu
Z1RyZWVNYWM6OmNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yJiBzY3JvbGxpbmdDb29y
ZGluYXRvcikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTY3JvbGxpbmdUcmVlTWFjKHNj
cm9sbGluZ0Nvb3JkaW5hdG9yKSk7CiB9CiAKLVNjcm9sbGluZ1RyZWVNYWM6OlNjcm9sbGluZ1Ry
ZWVNYWMoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCitT
Y3JvbGxpbmdUcmVlTWFjOjpTY3JvbGxpbmdUcmVlTWFjKEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3ImIHNjcm9sbGluZ0Nvb3JkaW5hdG9yKQogICAgIDogVGhyZWFkZWRTY3JvbGxpbmdUcmVlKHNj
cm9sbGluZ0Nvb3JkaW5hdG9yKQogewogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2Rl
PiBTY3JvbGxpbmdUcmVlTWFjOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2Rl
VHlwZSBub2RlVHlwZSwgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxTY3JvbGxpbmdUcmVl
Tm9kZT4gU2Nyb2xsaW5nVHJlZU1hYzo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5n
Tm9kZVR5cGUgbm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7CiAgICAgc3dpdGNo
IChub2RlVHlwZSkgewogICAgIGNhc2UgRnJhbWVTY3JvbGxpbmdOb2RlOgogICAgICAgICByZXR1
cm4gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6Y3JlYXRlKCp0aGlzLCBub2Rl
SUQpOwogICAgIGNhc2UgT3ZlcmZsb3dTY3JvbGxpbmdOb2RlOgogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgRml4ZWROb2RlOgogICAgICAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6
Y3JlYXRlKCp0aGlzLCBub2RlSUQpOwogICAgIGNhc2UgU3RpY2t5Tm9kZToKICAgICAgICAgcmV0
dXJuIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiAgICAg
fQotICAgIHJldHVybiBudWxscHRyOworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBTY3JvbGxpbmdUcmVlRml4ZWROb2RlOjpjcmVhdGUoKnRoaXMsIG5vZGVJRCk7CiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1h
Yy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMu
aAppbmRleCA0M2E0NmI3N2U4NWI0NWZmNjFjYjJiOWE2YmJiMzJjMmMwZWZmYTU3Li40OTlmYzNm
ZjE3YmNmOTQ5MGE4MzcyMjY0MmY2YmM4M2JlMDBiN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU1hYy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmgKQEAgLTMxLDE0ICsz
MSwxNCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIFNjcm9sbGluZ1RyZWVNYWMg
OiBwdWJsaWMgVGhyZWFkZWRTY3JvbGxpbmdUcmVlIHsKK2NsYXNzIFNjcm9sbGluZ1RyZWVNYWMg
ZmluYWwgOiBwdWJsaWMgVGhyZWFkZWRTY3JvbGxpbmdUcmVlIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFNjcm9sbGluZ1RyZWVNYWM+IGNyZWF0ZShBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Kik7CisgICAgc3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlTWFjPiBjcmVhdGUoQXN5bmNTY3JvbGxp
bmdDb29yZGluYXRvciYpOwogCi0gICAgUGFzc1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gY3Jl
YXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUsIFNjcm9sbGluZ05vZGVJRCkg
b3ZlcnJpZGU7Ci0gICAgCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVNYWMo
QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciopOworICAgIGV4cGxpY2l0IFNjcm9sbGluZ1RyZWVN
YWMoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOworCisgICAgUmVmPFNjcm9sbGluZ1RyZWVO
b2RlPiBjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSwgU2Nyb2xsaW5n
Tm9kZUlEKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxlcldpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3dpbi9FdmVudEhhbmRsZXJXaW4uY3BwCmluZGV4IDYxNjA3MDkwZDI2Yzk5YzFh
ZTI1M2Y1YTRlYzVkNjZkNTFjM2Q2MTUuLjMyNDMwYzQ3Yjg3ZDFjMDg4NDQ5YWNiZGNkMGIzNjQ3
MTNmMDk0MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvd2luL0V2ZW50SGFuZGxl
cldpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS93aW4vRXZlbnRIYW5kbGVyV2luLmNw
cApAQCAtODEsNyArODEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6d2lkZ2V0RGlkSGFuZGxlV2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbgogICAgIHJldHVybiBk
b3duY2FzdDxGcmFtZVZpZXc+KHdpZGdldCkuZnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oYW5kbGVX
aGVlbEV2ZW50KHdoZWVsRXZlbnQpOwogfQogCi1ib29sIEV2ZW50SGFuZGxlcjo6dGFic1RvQWxs
Rm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdAorYm9vbCBFdmVudEhhbmRsZXI6OnRh
YnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50JikgY29uc3QKIHsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KQEAgLTkyLDEwICs5MiwxMiBAQCBib29sIEV2ZW50SGFuZGxlcjo6ZXZlbnRBY3Rp
dmF0ZWRWaWV3KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQpIGNvbnN0CiB9CiAKICNp
ZiBFTkFCTEUoRFJBR19TVVBQT1JUKQotUGFzc1JlZlB0cjxEYXRhVHJhbnNmZXI+IEV2ZW50SGFu
ZGxlcjo6Y3JlYXRlRHJhZ2dpbmdEYXRhVHJhbnNmZXIoKSBjb25zdAorCitSZWY8RGF0YVRyYW5z
ZmVyPiBFdmVudEhhbmRsZXI6OmNyZWF0ZURyYWdnaW5nRGF0YVRyYW5zZmVyKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gRGF0YVRyYW5zZmVyOjpjcmVhdGVGb3JEcmFnQW5kRHJvcCgpOwogfQorCiAj
ZW5kaWYKIAogdm9pZCBFdmVudEhhbmRsZXI6OmZvY3VzRG9jdW1lbnRWaWV3KCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNvci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vQ3Vyc29yLmgKaW5kZXggNjhkMDY5ZDNhNDM4NDY4OGRmMmRlYzg4ZTgzNDA0OWY1MzJi
MTExZC4uMDQ2ODVhMjVhN2NjYzI4ZTc3M2ZhYTIzNTUyMWQ3YzYxZGQzZTU3ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vQ3Vyc29yLmgKQEAgLTU0LDI0ICs1NCwyOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiBjbGFzcyBJbWFnZTsKIAogI2lmIFBMQVRGT1JNKFdJTikKKwogY2xhc3MgU2hhcmVkQ3Vyc29y
IDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVkQ3Vyc29yPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFJlZjxTaGFyZWRDdXJzb3I+IGNyZWF0ZShIQ1VSU09SIG5hdGl2ZUN1cnNvcikgeyByZXR1cm4g
YWRvcHRSZWYoKm5ldyBTaGFyZWRDdXJzb3IobmF0aXZlQ3Vyc29yKSk7IH0KLSAgICB+U2hhcmVk
Q3Vyc29yKCk7CisgICAgc3RhdGljIFJlZjxTaGFyZWRDdXJzb3I+IGNyZWF0ZShIQ1VSU09SKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCB+U2hhcmVkQ3Vyc29yKCk7CiAgICAgSENVUlNPUiBuYXRpdmVD
dXJzb3IoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUN1cnNvcjsgfQorCiBwcml2YXRlOgotICAg
IFNoYXJlZEN1cnNvcihIQ1VSU09SIG5hdGl2ZUN1cnNvcikgOiBtX25hdGl2ZUN1cnNvcihuYXRp
dmVDdXJzb3IpIHsgfQorICAgIFNoYXJlZEN1cnNvcihIQ1VSU09SKTsKICAgICBIQ1VSU09SIG1f
bmF0aXZlQ3Vyc29yOwogfTsKLXR5cGVkZWYgUmVmUHRyPFNoYXJlZEN1cnNvcj4gUGxhdGZvcm1D
dXJzb3I7CisKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oV0lOKQordXNpbmcgUGxhdGZvcm1DdXJz
b3IgPSBSZWZQdHI8U2hhcmVkQ3Vyc29yPjsKICNlbGlmIFVTRShBUFBLSVQpCi10eXBlZGVmIE5T
Q3Vyc29yICpQbGF0Zm9ybUN1cnNvcjsKK3VzaW5nIFBsYXRmb3JtQ3Vyc29yID0gTlNDdXJzb3Ig
KjsKICNlbGlmIFBMQVRGT1JNKEdUSykKLXR5cGVkZWYgR1JlZlB0cjxHZGtDdXJzb3I+IFBsYXRm
b3JtQ3Vyc29yOwordXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBHUmVmUHRyPEdka0N1cnNvcj47CiAj
ZWxpZiBQTEFURk9STShFRkwpCi10eXBlZGVmIGNvbnN0IGNoYXIqIFBsYXRmb3JtQ3Vyc29yOwot
I2Vsc2UKLXR5cGVkZWYgdm9pZCogUGxhdGZvcm1DdXJzb3I7Cit1c2luZyBQbGF0Zm9ybUN1cnNv
ciA9IGNvbnN0IGNoYXIqOwogI2VuZGlmCiAKIGNsYXNzIEN1cnNvciB7CkBAIC0xMjQsNjEgKzEy
OCw1MCBAQCBwdWJsaWM6CiAgICAgICAgIEN1c3RvbQogICAgIH07CiAKLSAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgY29uc3QgQ3Vyc29yJiBmcm9tVHlwZShDdXJzb3I6OlR5cGUpOworICAgIEN1
cnNvcigpID0gZGVmYXVsdDsKIAotICAgIEN1cnNvcigpCiAjaWYgIVBMQVRGT1JNKElPUykKLSAg
ICAgICAgLy8gVGhpcyBpcyBhbiBpbnZhbGlkIEN1cnNvciBhbmQgc2hvdWxkIG5ldmVyIGFjdHVh
bGx5IGdldCB1c2VkLgotICAgICAgICA6IG1fdHlwZShzdGF0aWNfY2FzdDxUeXBlPigtMSkpCi0j
aWYgRU5BQkxFKE1PVVNFX0NVUlNPUl9TQ0FMRSkKLSAgICAgICAgLCBtX2ltYWdlU2NhbGVGYWN0
b3IoMSkKLSNlbmRpZgotICAgICAgICAsIG1fcGxhdGZvcm1DdXJzb3IoMCkKLSNlbmRpZiAvLyAh
UExBVEZPUk0oSU9TKQotICAgIHsKLSAgICB9CiAKLSNpZiAhUExBVEZPUk0oSU9TKQorICAgIFdF
QkNPUkVfRVhQT1JUIHN0YXRpYyBjb25zdCBDdXJzb3ImIGZyb21UeXBlKEN1cnNvcjo6VHlwZSk7
CisKICAgICBXRUJDT1JFX0VYUE9SVCBDdXJzb3IoSW1hZ2UqLCBjb25zdCBJbnRQb2ludCYgaG90
U3BvdCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ3Vyc29yKGNvbnN0IEN1cnNvciYpOwogCiAjaWYg
RU5BQkxFKE1PVVNFX0NVUlNPUl9TQ0FMRSkKICAgICAvLyBIb3Qgc3BvdCBpcyBpbiBpbWFnZSBw
aXhlbHMuCiAgICAgV0VCQ09SRV9FWFBPUlQgQ3Vyc29yKEltYWdlKiwgY29uc3QgSW50UG9pbnQm
IGhvdFNwb3QsIGZsb2F0IGltYWdlU2NhbGVGYWN0b3IpOwogI2VuZGlmCiAKLSAgICBXRUJDT1JF
X0VYUE9SVCB+Q3Vyc29yKCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgQ3Vyc29yJiBvcGVyYXRvcj0o
Y29uc3QgQ3Vyc29yJik7Ci0KICAgICBleHBsaWNpdCBDdXJzb3IoVHlwZSk7Ci0gICAgVHlwZSB0
eXBlKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX3R5cGUgPj0gMCAmJiBtX3R5cGUg
PD0gQ3VzdG9tKTsKLSAgICAgICAgcmV0dXJuIG1fdHlwZTsKLSAgICB9CisKKyAgICBUeXBlIHR5
cGUoKSBjb25zdDsKICAgICBJbWFnZSogaW1hZ2UoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlLmdl
dCgpOyB9CiAgICAgY29uc3QgSW50UG9pbnQmIGhvdFNwb3QoKSBjb25zdCB7IHJldHVybiBtX2hv
dFNwb3Q7IH0KKwogI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCiAgICAgLy8gSW1hZ2Ug
c2NhbGUgaW4gaW1hZ2UgcGl4ZWxzIHBlciBsb2dpY2FsIChVSSkgcGl4ZWwuCiAgICAgZmxvYXQg
aW1hZ2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1faW1hZ2VTY2FsZUZhY3RvcjsgfQog
I2VuZGlmCisKICAgICBXRUJDT1JFX0VYUE9SVCBQbGF0Zm9ybUN1cnNvciBwbGF0Zm9ybUN1cnNv
cigpIGNvbnN0OwogCi0gcHJpdmF0ZToKK3ByaXZhdGU6CiAgICAgdm9pZCBlbnN1cmVQbGF0Zm9y
bUN1cnNvcigpIGNvbnN0OwogCi0gICAgVHlwZSBtX3R5cGU7CisgICAgLy8gVGhlIHR5cGUgb2Yg
LTEgaW5kaWNhdGVzIGFuIGludmFsaWQgQ3Vyc29yIHRoYXQgc2hvdWxkIG5ldmVyIGFjdHVhbGx5
IGdldCB1c2VkLgorICAgIFR5cGUgbV90eXBlIHsgc3RhdGljX2Nhc3Q8VHlwZT4oLTEpIH07CiAg
ICAgUmVmUHRyPEltYWdlPiBtX2ltYWdlOwogICAgIEludFBvaW50IG1faG90U3BvdDsKKwogI2lm
IEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgZmxvYXQgbV9pbWFnZVNjYWxlRmFjdG9y
OworICAgIGZsb2F0IG1faW1hZ2VTY2FsZUZhY3RvciB7IDEgfTsKICNlbmRpZgogCiAjaWYgIVVT
RShBUFBLSVQpCi0gICAgbXV0YWJsZSBQbGF0Zm9ybUN1cnNvciBtX3BsYXRmb3JtQ3Vyc29yOwor
ICAgIG11dGFibGUgUGxhdGZvcm1DdXJzb3IgbV9wbGF0Zm9ybUN1cnNvciB7IG51bGxwdHIgfTsK
ICNlbHNlCiAgICAgbXV0YWJsZSBSZXRhaW5QdHI8TlNDdXJzb3I+IG1fcGxhdGZvcm1DdXJzb3I7
CiAjZW5kaWYKKwogI2VuZGlmIC8vICFQTEFURk9STShJT1MpCiB9OwogCkBAIC0yMjgsNCArMjIx
LDE1IEBAIGNvbnN0IEN1cnNvciYgbm9uZUN1cnNvcigpOwogY29uc3QgQ3Vyc29yJiBncmFiQ3Vy
c29yKCk7CiBjb25zdCBDdXJzb3ImIGdyYWJiaW5nQ3Vyc29yKCk7CiAKKyNpZiAhUExBVEZPUk0o
SU9TKQorCitpbmxpbmUgQ3Vyc29yOjpUeXBlIEN1cnNvcjo6dHlwZSgpIGNvbnN0Cit7CisgICAg
QVNTRVJUKG1fdHlwZSA+PSAwKTsKKyAgICBBU1NFUlQobV90eXBlIDw9IEN1c3RvbSk7CisgICAg
cmV0dXJuIG1fdHlwZTsKK30KKworI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2VmbC9DdXJzb3JFZmwuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0N1cnNvckVmbC5jcHAKaW5kZXggYjNmNDRhZWI3ZWVj
NGJkMmE4ZTdkNTJlZWVlMmMxMjc2ZGQyNDY2OS4uNTk2NDhiYjE0ODZjZGE1YTY5ZDFmOTExODA5
NjM1MTE3N2NlNjZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0N1
cnNvckVmbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZWZsL0N1cnNvckVmbC5j
cHAKQEAgLTQwLDM0ICs0MCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ3Vyc29yOjpD
dXJzb3IoY29uc3QgQ3Vyc29yJiBvdGhlcikKLSAgICA6IG1fdHlwZShvdGhlci5tX3R5cGUpCi0g
ICAgLCBtX2ltYWdlKG90aGVyLm1faW1hZ2UpCi0gICAgLCBtX2hvdFNwb3Qob3RoZXIubV9ob3RT
cG90KQotI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgLCBtX2ltYWdlU2NhbGVG
YWN0b3Iob3RoZXIubV9pbWFnZVNjYWxlRmFjdG9yKQotI2VuZGlmCi0gICAgLCBtX3BsYXRmb3Jt
Q3Vyc29yKG90aGVyLm1fcGxhdGZvcm1DdXJzb3IpCi17Ci19Ci0KLUN1cnNvcjo6fkN1cnNvcigp
Ci17Ci19Ci0KLUN1cnNvciYgQ3Vyc29yOjpvcGVyYXRvcj0oY29uc3QgQ3Vyc29yJiBvdGhlcikK
LXsKLSAgICBtX3R5cGUgPSBvdGhlci5tX3R5cGU7Ci0gICAgbV9pbWFnZSA9IG90aGVyLm1faW1h
Z2U7Ci0gICAgbV9ob3RTcG90ID0gb3RoZXIubV9ob3RTcG90OwotI2lmIEVOQUJMRShNT1VTRV9D
VVJTT1JfU0NBTEUpCi0gICAgbV9pbWFnZVNjYWxlRmFjdG9yID0gb3RoZXIubV9pbWFnZVNjYWxl
RmFjdG9yOwotI2VuZGlmCi0gICAgbV9wbGF0Zm9ybUN1cnNvciA9IG90aGVyLm1fcGxhdGZvcm1D
dXJzb3I7Ci0KLSAgICByZXR1cm4gKnRoaXM7Ci19Ci0KIHN0YXRpYyBjb25zdCBjaGFyKiBjdXJz
b3JTdHJpbmcoQ3Vyc29yOjpUeXBlIHR5cGUpCiB7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGN1
cnNvclN0cmluZ3NbXSA9IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0
ay9DdXJzb3JHdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0N1cnNvckd0ay5j
cHAKaW5kZXggZjA3NWYzNjNhMDNhODRiYjEyYTc2NTRkMDZjOGJmZGNhNzE1OWEwYi4uNDYzNGVm
ZGFjODVmMTgyOThiNDI2N2I2YmNjZWE4YTQzYWFhM2Y3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3RrL0N1cnNvckd0ay5jcHAKQEAgLTE3NSwyNSArMTc1LDQgQEAgdm9pZCBDdXJzb3I6
OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICB9CiB9CiAKLUN1cnNvcjo6Q3Vyc29y
KGNvbnN0IEN1cnNvciYgb3RoZXIpCi0gICAgOiBtX3R5cGUob3RoZXIubV90eXBlKQotICAgICwg
bV9pbWFnZShvdGhlci5tX2ltYWdlKQotICAgICwgbV9ob3RTcG90KG90aGVyLm1faG90U3BvdCkK
LSAgICAsIG1fcGxhdGZvcm1DdXJzb3Iob3RoZXIubV9wbGF0Zm9ybUN1cnNvcikKLXsKLX0KLQot
Q3Vyc29yJiBDdXJzb3I6Om9wZXJhdG9yPShjb25zdCBDdXJzb3ImIG90aGVyKQotewotICAgIG1f
dHlwZSA9IG90aGVyLm1fdHlwZTsKLSAgICBtX2ltYWdlID0gb3RoZXIubV9pbWFnZTsKLSAgICBt
X2hvdFNwb3QgPSBvdGhlci5tX2hvdFNwb3Q7Ci0gICAgbV9wbGF0Zm9ybUN1cnNvciA9IG90aGVy
Lm1fcGxhdGZvcm1DdXJzb3I7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCi1DdXJzb3I6On5DdXJz
b3IoKQotewotfQotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
Q3Vyc29yTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0N1cnNvck1hYy5tbQpp
bmRleCA4NWNjN2M1ZmRkMmMxNjA2MmNmOGEwMTg2NGEyOWZjMzQ0NWE3ZTA1Li5hYTM0NWU4OGU0
ODExOGM0Njg3YjllZWZiZmM3MzIxOGRjNDcwNzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvQ3Vyc29yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9DdXJzb3JNYWMubW0KQEAgLTI0MSwzMyArMjQxLDYgQEAgdm9pZCBDdXJzb3I6OmVuc3Vy
ZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKICAgICB9CiB9CiAKLUN1cnNvcjo6Q3Vyc29yKGNvbnN0
IEN1cnNvciYgb3RoZXIpCi0gICAgOiBtX3R5cGUob3RoZXIubV90eXBlKQotICAgICwgbV9pbWFn
ZShvdGhlci5tX2ltYWdlKQotICAgICwgbV9ob3RTcG90KG90aGVyLm1faG90U3BvdCkKLSNpZiBF
TkFCTEUoTU9VU0VfQ1VSU09SX1NDQUxFKQotICAgICwgbV9pbWFnZVNjYWxlRmFjdG9yKG90aGVy
Lm1faW1hZ2VTY2FsZUZhY3RvcikKLSNlbmRpZgotICAgICwgbV9wbGF0Zm9ybUN1cnNvcihvdGhl
ci5tX3BsYXRmb3JtQ3Vyc29yKQotewotfQotCi1DdXJzb3ImIEN1cnNvcjo6b3BlcmF0b3I9KGNv
bnN0IEN1cnNvciYgb3RoZXIpCi17Ci0gICAgbV90eXBlID0gb3RoZXIubV90eXBlOwotICAgIG1f
aW1hZ2UgPSBvdGhlci5tX2ltYWdlOwotICAgIG1faG90U3BvdCA9IG90aGVyLm1faG90U3BvdDsK
LSNpZiBFTkFCTEUoTU9VU0VfQ1VSU09SX1NDQUxFKQotICAgIG1faW1hZ2VTY2FsZUZhY3RvciA9
IG90aGVyLm1faW1hZ2VTY2FsZUZhY3RvcjsKLSNlbmRpZgotICAgIG1fcGxhdGZvcm1DdXJzb3Ig
PSBvdGhlci5tX3BsYXRmb3JtQ3Vyc29yOwotICAgIHJldHVybiAqdGhpczsKLX0KLQotQ3Vyc29y
Ojp+Q3Vyc29yKCkKLXsKLX0KLQogTlNDdXJzb3IgKkN1cnNvcjo6cGxhdGZvcm1DdXJzb3IoKSBj
b25zdAogewogICAgIGVuc3VyZVBsYXRmb3JtQ3Vyc29yKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93aW4vQ3Vyc29yV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dpbi9DdXJzb3JXaW4uY3BwCmluZGV4IDdhOTkzMTM2YmEyYzNhMDVkMmQzMTk2YTU1Njc3
MThhMDBkYWY4NTkuLmQ5YjIyNTVhNWUyMWRlMjQ4NWFkNTVhOTBiYTk2ZWQ1OTk0MTRkOTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DdXJzb3JXaW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9DdXJzb3JXaW4uY3BwCkBAIC00MCw2ICs0MCwy
MSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1NoYXJlZEN1cnNvcjo6U2hhcmVkQ3Vyc29y
KEhDVVJTT1IgbmF0aXZlQ3Vyc29yKQorICAgIDogbV9uYXRpdmVDdXJzb3IobmF0aXZlQ3Vyc29y
KQoreworfQorCitSZWY8U2hhcmVkQ3Vyc29yPiBTaGFyZWRDdXJzb3I6OmNyZWF0ZShIQ1VSU09S
IG5hdGl2ZUN1cnNvcikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBTaGFyZWRDdXJzb3Io
bmF0aXZlQ3Vyc29yKSk7Cit9CisKK1NoYXJlZEN1cnNvcjo6flNoYXJlZEN1cnNvcigpCit7Cisg
ICAgRGVzdHJveUljb24obV9uYXRpdmVDdXJzb3IpOworfQorCiBzdGF0aWMgUmVmPFNoYXJlZEN1
cnNvcj4gY3JlYXRlU2hhcmVkQ3Vyc29yKEltYWdlKiBpbWcsIGNvbnN0IEludFBvaW50JiBob3RT
cG90KQogewogICAgIEludFBvaW50IGVmZmVjdGl2ZUhvdFNwb3QgPSBkZXRlcm1pbmVIb3RTcG90
KGltZywgaG90U3BvdCk7CkBAIC0yNTMsMzYgKzI2OCw0IEBAIHZvaWQgQ3Vyc29yOjplbnN1cmVQ
bGF0Zm9ybUN1cnNvcigpIGNvbnN0CiAgICAgfQogfQogCi1TaGFyZWRDdXJzb3I6On5TaGFyZWRD
dXJzb3IoKQotewotICAgIERlc3Ryb3lJY29uKG1fbmF0aXZlQ3Vyc29yKTsKLX0KLQotQ3Vyc29y
OjpDdXJzb3IoY29uc3QgQ3Vyc29yJiBvdGhlcikKLSAgICA6IG1fdHlwZShvdGhlci5tX3R5cGUp
Ci0gICAgLCBtX2ltYWdlKG90aGVyLm1faW1hZ2UpCi0gICAgLCBtX2hvdFNwb3Qob3RoZXIubV9o
b3RTcG90KQotI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgLCBtX2ltYWdlU2Nh
bGVGYWN0b3Iob3RoZXIubV9pbWFnZVNjYWxlRmFjdG9yKQotI2VuZGlmCi0gICAgLCBtX3BsYXRm
b3JtQ3Vyc29yKG90aGVyLm1fcGxhdGZvcm1DdXJzb3IpCi17Ci19Ci0KLUN1cnNvciYgQ3Vyc29y
OjpvcGVyYXRvcj0oY29uc3QgQ3Vyc29yJiBvdGhlcikKLXsKLSAgICBtX3R5cGUgPSBvdGhlci5t
X3R5cGU7Ci0gICAgbV9pbWFnZSA9IG90aGVyLm1faW1hZ2U7Ci0gICAgbV9ob3RTcG90ID0gb3Ro
ZXIubV9ob3RTcG90OwotI2lmIEVOQUJMRShNT1VTRV9DVVJTT1JfU0NBTEUpCi0gICAgbV9pbWFn
ZVNjYWxlRmFjdG9yID0gb3RoZXIubV9pbWFnZVNjYWxlRmFjdG9yOwotI2VuZGlmCi0gICAgbV9w
bGF0Zm9ybUN1cnNvciA9IG90aGVyLm1fcGxhdGZvcm1DdXJzb3I7Ci0gICAgcmV0dXJuICp0aGlz
OwotfQotCi1DdXJzb3I6On5DdXJzb3IoKQotewotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNw
cAppbmRleCAwNmFlZTlmOTc5NjJmYmNhODI5Y2Y1ZTFiZTM4MjVlNmZiZDUyZGU0Li40ODJiNWRk
MTM3NWI2ZmU3NzI2N2NiNjI2ZjQxNjM2ZGY4ZjUzNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKQEAgLTYxNiw3ICs2MTYsNyBA
QCB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpoYW5kbGVVbmF2YWlsYWJsZVBsdWdpbkluZGlj
YXRvckV2ZW50KEV2ZW50KiBldmVudCkKICAgICAgICAgICAgIHNldFVuYXZhaWxhYmxlUGx1Z2lu
SW5kaWNhdG9ySXNQcmVzc2VkKGZhbHNlKTsKICAgICAgICAgfQogICAgICAgICBpZiAobV9tb3Vz
ZURvd25XYXNJblVuYXZhaWxhYmxlUGx1Z2luSW5kaWNhdG9yICYmIGlzSW5VbmF2YWlsYWJsZVBs
dWdpbkluZGljYXRvcihtb3VzZUV2ZW50KSkgewotICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgp
LmNsaWVudCgpLnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZCgmZWxlbWVudCwgbV9wbHVn
aW5VbmF2YWlsYWJpbGl0eVJlYXNvbik7CisgICAgICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xp
ZW50KCkudW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKGVsZW1lbnQsIG1fcGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb24pOwogICAgICAgICB9CiAgICAgICAgIG1fbW91c2VEb3duV2FzSW5V
bmF2YWlsYWJsZVBsdWdpbkluZGljYXRvciA9IGZhbHNlOwogICAgICAgICBldmVudC0+c2V0RGVm
YXVsdEhhbmRsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKaW5kZXggYTFhOTRjNjdiN2U0NTBlOWVjMDMwNWVlMDcwNTlkZjIyZWMwNzZk
NC4uNjFjYWFiZjZhZmE4ZTg3MDI2ODYxYjRmZTgwOTdjYzA5NjM1M2VlOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAKQEAgLTEwNyw3ICsx
MDcsNyBAQCBSZW5kZXJMYXllckJhY2tpbmc6OlJlbmRlckxheWVyQmFja2luZyhSZW5kZXJMYXll
ciYgbGF5ZXIpCiB7CiAgICAgaWYgKGxheWVyLmlzUm9vdExheWVyKCkpIHsKICAgICAgICAgbV9p
c01haW5GcmFtZVJlbmRlclZpZXdMYXllciA9IHJlbmRlcmVyKCkuZnJhbWUoKS5pc01haW5GcmFt
ZSgpOwotICAgICAgICBtX3VzaW5nVGlsZWRDYWNoZUxheWVyID0gcmVuZGVyZXIoKS5wYWdlKCku
Y2hyb21lKCkuY2xpZW50KCkuc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KHJlbmRl
cmVyKCkuZnJhbWUoKS52aWV3KCkpOworICAgICAgICBtX3VzaW5nVGlsZWRDYWNoZUxheWVyID0g
cmVuZGVyZXIoKS5wYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuc2hvdWxkVXNlVGlsZWRCYWNraW5n
Rm9yRnJhbWVWaWV3KHJlbmRlcmVyKCkudmlldygpLmZyYW1lVmlldygpKTsKICAgICB9CiAgICAg
CiAgICAgY3JlYXRlUHJpbWFyeUdyYXBoaWNzTGF5ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggMTJiNjJjOTI4N2Ji
ZmZkOWU1Nzk4Zjc2NWQ4MmM1NzAzNzMxZTZkZC4uNjVmZGM0ZGZkYTQ2ZmJkMjJkYmJjMzQ3YTk2
YjIxYzJlZWRlYzE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTMxMDMsNyArMzEwMyw3IEBAIEdyYXBoaWNzTGF5ZXIq
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlTGF5ZXJGb3JIZWFkZXIoYm9vbCB3YW50c0xh
eWVyKQogICAgIGlmIChTY3JvbGxpbmdDb29yZGluYXRvciogc2Nyb2xsaW5nQ29vcmRpbmF0b3Ig
PSB0aGlzLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKQogICAgICAgICBzY3JvbGxpbmdDb29yZGlu
YXRvci0+ZnJhbWVWaWV3Um9vdExheWVyRGlkQ2hhbmdlKG1fcmVuZGVyVmlldy5mcmFtZVZpZXco
KSk7CiAKLSAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlkQWRkSGVhZGVyTGF5ZXIobV9s
YXllckZvckhlYWRlci5nZXQoKSk7CisgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmRpZEFk
ZEhlYWRlckxheWVyKCptX2xheWVyRm9ySGVhZGVyKTsKIAogICAgIHJldHVybiBtX2xheWVyRm9y
SGVhZGVyLmdldCgpOwogfQpAQCAtMzE0MSw3ICszMTQxLDcgQEAgR3JhcGhpY3NMYXllciogUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVMYXllckZvckZvb3Rlcihib29sIHdhbnRzTGF5ZXIp
CiAgICAgaWYgKFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IHRo
aXMtPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpCiAgICAgICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9y
LT5mcmFtZVZpZXdSb290TGF5ZXJEaWRDaGFuZ2UobV9yZW5kZXJWaWV3LmZyYW1lVmlldygpKTsK
IAotICAgIHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5kaWRBZGRGb290ZXJMYXllcihtX2xheWVy
Rm9yRm9vdGVyLmdldCgpKTsKKyAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuZGlkQWRkRm9v
dGVyTGF5ZXIoKm1fbGF5ZXJGb3JGb290ZXIpOwogCiAgICAgcmV0dXJuIG1fbGF5ZXJGb3JGb290
ZXIuZ2V0KCk7CiB9CkBAIC0zNDYzLDExICszNDYzLDExIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjphdHRhY2hSb290TGF5ZXIoUm9vdExheWVyQXR0YWNobWVudCBhdHRhY2htZW50KQog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgUm9vdExheWVyQXR0YWNoZWRWaWFDaHJv
bWVDbGllbnQ6IHsKICAgICAgICAgICAgIEZyYW1lJiBmcmFtZSA9IG1fcmVuZGVyVmlldy5mcmFt
ZVZpZXcoKS5mcmFtZSgpOwotICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKCZmcmFtZSwgcm9vdEdyYXBoaWNzTGF5ZXIoKSk7CisgICAg
ICAgICAgICBwYWdlKCkuY2hyb21lKCkuY2xpZW50KCkuYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIo
ZnJhbWUsIHJvb3RHcmFwaGljc0xheWVyKCkpOwogICAgICAgICAgICAgaWYgKGZyYW1lLmlzTWFp
bkZyYW1lKCkpIHsKICAgICAgICAgICAgICAgICBQYWdlT3ZlcmxheUNvbnRyb2xsZXImIHBhZ2VP
dmVybGF5Q29udHJvbGxlciA9IGZyYW1lLm1haW5GcmFtZSgpLnBhZ2VPdmVybGF5Q29udHJvbGxl
cigpOwogICAgICAgICAgICAgICAgIHBhZ2VPdmVybGF5Q29udHJvbGxlci53aWxsQXR0YWNoUm9v
dExheWVyKCk7Ci0gICAgICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFj
aFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcigmZnJhbWUsICZwYWdlT3ZlcmxheUNvbnRyb2xsZXIu
dmlld092ZXJsYXlSb290TGF5ZXIoKSk7CisgICAgICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgp
LmNsaWVudCgpLmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihmcmFtZSwgJnBhZ2VPdmVy
bGF5Q29udHJvbGxlci52aWV3T3ZlcmxheVJvb3RMYXllcigpKTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC0zNTA4LDkgKzM1MDgsOSBAQCB2b2lkIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6ZGV0YWNoUm9vdExheWVyKCkKICAgICB9CiAgICAgY2FzZSBS
b290TGF5ZXJBdHRhY2hlZFZpYUNocm9tZUNsaWVudDogewogICAgICAgICBGcmFtZSYgZnJhbWUg
PSBtX3JlbmRlclZpZXcuZnJhbWVWaWV3KCkuZnJhbWUoKTsKLSAgICAgICAgcGFnZSgpLmNocm9t
ZSgpLmNsaWVudCgpLmF0dGFjaFJvb3RHcmFwaGljc0xheWVyKCZmcmFtZSwgMCk7CisgICAgICAg
IHBhZ2UoKS5jaHJvbWUoKS5jbGllbnQoKS5hdHRhY2hSb290R3JhcGhpY3NMYXllcihmcmFtZSwg
bnVsbHB0cik7CiAgICAgICAgIGlmIChmcmFtZS5pc01haW5GcmFtZSgpKQotICAgICAgICAgICAg
cGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcigm
ZnJhbWUsIDApOworICAgICAgICAgICAgcGFnZSgpLmNocm9tZSgpLmNsaWVudCgpLmF0dGFjaFZp
ZXdPdmVybGF5R3JhcGhpY3NMYXllcihmcmFtZSwgbnVsbHB0cik7CiAgICAgfQogICAgIGJyZWFr
OwogICAgIGNhc2UgUm9vdExheWVyVW5hdHRhY2hlZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWVudUxpc3QuY3BwCmluZGV4IGQyYzAyZWY5ZDYwZTA2YzY4NjY3MjNlNDc0MDcz
N2FkOGMwYzM4MjEuLjM3YzgzZThkMWY1ZWJiMDU3YjExMGNjODg4MTA1NDUxMmNkNGQ0N2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZW51TGlzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lbnVMaXN0LmNwcApAQCAtMzcxLDcg
KzM3MSw3IEBAIHZvaWQgUmVuZGVyTWVudUxpc3Q6OnNob3dQb3B1cCgpCiAgICAgLy8gaW5zaWRl
IHRoZSBzaG93UG9wdXAgY2FsbCBhbmQgaXQgd291bGQgZmFpbC4KICAgICBjcmVhdGVJbm5lckJs
b2NrKCk7CiAgICAgaWYgKCFtX3BvcHVwKQotICAgICAgICBtX3BvcHVwID0gZG9jdW1lbnQoKS5w
YWdlKCktPmNocm9tZSgpLmNyZWF0ZVBvcHVwTWVudSh0aGlzKTsKKyAgICAgICAgbV9wb3B1cCA9
IGRvY3VtZW50KCkucGFnZSgpLT5jaHJvbWUoKS5jcmVhdGVQb3B1cE1lbnUoKnRoaXMpOwogICAg
IG1fcG9wdXBJc1Zpc2libGUgPSB0cnVlOwogCiAgICAgLy8gQ29tcHV0ZSB0aGUgdG9wIGxlZnQg
dGFraW5nIHRyYW5zZm9ybXMgaW50byBhY2NvdW50LCBidXQgdXNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcAppbmRleCBiNDZkOGVkNzE4NjA4Y2Fm
ZTYxNjkzZTE0YmUxM2U4NmQ0Y2E4MjJjLi5jYTkwMDUxODRkYjI5YWM5Mjc3MGRhMTI3NTU4MTRj
NjA4MDYyMWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2Vh
cmNoRmllbGQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hG
aWVsZC5jcHAKQEAgLTk3LDcgKzk3LDcgQEAgdm9pZCBSZW5kZXJTZWFyY2hGaWVsZDo6YWRkU2Vh
cmNoUmVzdWx0KCkKIAogICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZlTmFt
ZSgpOwogICAgIGlmICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgbV9zZWFyY2hQb3B1cCA9IHBh
Z2UoKS5jaHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7CisgICAgICAgIG1fc2Vh
cmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBNZW51KCp0aGlzKTsK
IAogICAgIG1fc2VhcmNoUG9wdXAtPnNhdmVSZWNlbnRTZWFyY2hlcyhuYW1lLCBtX3JlY2VudFNl
YXJjaGVzKTsKIH0KQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIFJlbmRlclNlYXJjaEZpZWxkOjpz
aG93UG9wdXAoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fc2VhcmNoUG9wdXApCi0g
ICAgICAgIG1fc2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBN
ZW51KHRoaXMpOworICAgICAgICBtX3NlYXJjaFBvcHVwID0gcGFnZSgpLmNocm9tZSgpLmNyZWF0
ZVNlYXJjaFBvcHVwTWVudSgqdGhpcyk7CiAKICAgICBpZiAoIW1fc2VhcmNoUG9wdXAtPmVuYWJs
ZWQoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgUmVuZGVyU2Vh
cmNoRmllbGQ6OnZhbHVlQ2hhbmdlZCh1bnNpZ25lZCBsaXN0SW5kZXgsIGJvb2wgZmlyZUV2ZW50
cykKICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSA9IGF1dG9zYXZlTmFtZSgp
OwogICAgICAgICAgICAgaWYgKCFuYW1lLmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIGlm
ICghbV9zZWFyY2hQb3B1cCkKLSAgICAgICAgICAgICAgICAgICAgbV9zZWFyY2hQb3B1cCA9IHBh
Z2UoKS5jaHJvbWUoKS5jcmVhdGVTZWFyY2hQb3B1cE1lbnUodGhpcyk7CisgICAgICAgICAgICAg
ICAgICAgIG1fc2VhcmNoUG9wdXAgPSBwYWdlKCkuY2hyb21lKCkuY3JlYXRlU2VhcmNoUG9wdXBN
ZW51KCp0aGlzKTsKICAgICAgICAgICAgICAgICBtX3NlYXJjaFBvcHVwLT5zYXZlUmVjZW50U2Vh
cmNoZXMobmFtZSwgbV9yZWNlbnRTZWFyY2hlcyk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHQUVsZW1lbnQuY3BwCmluZGV4IGJlYjBhMzk1M2JjNzJmZWUxM2IzNTM4
ZmU1OTdjZDE5MDlkOWQzYmUuLjQyMDIzZmE3Njg2NTRlMTNhZjZkMzI2MjgyYWUzODE2N2FjYTlk
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdBRWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcApAQCAtMTk3LDcgKzE5Nyw3IEBAIGJv
b2wgU1ZHQUVsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoS2V5Ym9hcmRFdmVudCYgZXZlbnQp
IGNvbnN0CiAgICAgICAgIHJldHVybiBTVkdFbGVtZW50Ojppc0tleWJvYXJkRm9jdXNhYmxlKGV2
ZW50KTsKIAogICAgIGlmIChpc0xpbmsoKSkKLSAgICAgICAgcmV0dXJuIGRvY3VtZW50KCkuZnJh
bWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoJmV2ZW50KTsKKyAgICAgICAgcmV0dXJu
IGRvY3VtZW50KCkuZnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkudGFic1RvTGlua3MoZXZlbnQpOwog
CiAgICAgcmV0dXJuIFNWR0VsZW1lbnQ6OmlzS2V5Ym9hcmRGb2N1c2FibGUoZXZlbnQpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrUGFnZU92ZXJsYXlDbGllbnQuY3BwCmlu
ZGV4IGZkNTY0YWZmMTQwNGU1ODhhOWRjNDFhNjM2N2RiMmYwY2JkYTEyOGIuLjAwNDQwNDFiZjc1
NzhjM2MyYTg2MTdiN2ZlNzY2ZmQyY2JjYjJkNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvTW9ja1BhZ2VPdmVybGF5Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tQYWdlT3ZlcmxheUNsaWVudC5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgTW9ja1Bh
Z2VPdmVybGF5Q2xpZW50OjpNb2NrUGFnZU92ZXJsYXlDbGllbnQoKQogUmVmPE1vY2tQYWdlT3Zl
cmxheT4gTW9ja1BhZ2VPdmVybGF5Q2xpZW50OjppbnN0YWxsT3ZlcmxheShNYWluRnJhbWUmIG1h
aW5GcmFtZSwgUGFnZU92ZXJsYXk6Ok92ZXJsYXlUeXBlIG92ZXJsYXlUeXBlKQogewogICAgIGF1
dG8gb3ZlcmxheSA9IFBhZ2VPdmVybGF5OjpjcmVhdGUoKnRoaXMsIG92ZXJsYXlUeXBlKTsKLSAg
ICBtYWluRnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KG92
ZXJsYXkucHRyKCksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICBtYWlu
RnJhbWUucGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KG92ZXJsYXks
IFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKIAogICAgIGF1dG8gbW9ja092ZXJs
YXkgPSBNb2NrUGFnZU92ZXJsYXk6OmNyZWF0ZShvdmVybGF5LnB0cigpKTsKICAgICBtX292ZXJs
YXlzLmFkZChtb2NrT3ZlcmxheS5wdHIoKSk7CkBAIC02NSw3ICs2NSw3IEBAIHZvaWQgTW9ja1Bh
Z2VPdmVybGF5Q2xpZW50Ojp1bmluc3RhbGxBbGxPdmVybGF5cygpCiAgICAgICAgIFJlZlB0cjxN
b2NrUGFnZU92ZXJsYXk+IG1vY2tPdmVybGF5ID0gbV9vdmVybGF5cy50YWtlQW55KCk7CiAgICAg
ICAgIFBhZ2VPdmVybGF5Q29udHJvbGxlciogb3ZlcmxheUNvbnRyb2xsZXIgPSBtb2NrT3Zlcmxh
eS0+b3ZlcmxheSgpLT5jb250cm9sbGVyKCk7CiAgICAgICAgIEFTU0VSVChvdmVybGF5Q29udHJv
bGxlcik7Ci0gICAgICAgIG92ZXJsYXlDb250cm9sbGVyLT51bmluc3RhbGxQYWdlT3ZlcmxheSht
b2NrT3ZlcmxheS0+b3ZlcmxheSgpLCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7
CisgICAgICAgIG92ZXJsYXlDb250cm9sbGVyLT51bmluc3RhbGxQYWdlT3ZlcmxheSgqbW9ja092
ZXJsYXktPm92ZXJsYXkoKSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50SU9TLmggYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnRJT1MuaAppbmRleCA2Y2Q3MDNkODczYmQ4NjU5ODAwM2UzMTNlMmU0ZDgyZGRi
ODYwNzgxLi4xNDY0NDhiNzUyNWU1NTYxNzFjZWRiNmQ5NDVkMGFkYzBmZjY1NzI2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJT1Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnRJ
T1MuaApAQCAtNDIsOSArNDIsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgZm9jdXMoKSBmaW5hbDsK
ICAgICB2b2lkIHRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbikgZmluYWwgeyB9CiAK
LSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6
U3RyaW5nJikgZmluYWw7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJDb3JlOjpG
cmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJikgZmluYWw7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0
UHJvbXB0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0
IFdURjo6U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFdURjo6U3RyaW5nJiByZXN1bHQpIGZpbmFsOwor
ICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV1RGOjpT
dHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZy
YW1lJiwgY29uc3QgV1RGOjpTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRQ
cm9tcHQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSwgY29uc3Qg
V1RGOjpTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgV1RGOjpTdHJpbmcmIHJlc3VsdCkgZmluYWw7CiAK
ICAgICB2b2lkIHJ1bk9wZW5QYW5lbChXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkZpbGVDaG9v
c2VyJikgZmluYWw7CiAKQEAgLTUzLDEzICs1MywxMyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAg
ICB2b2lkIGRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wpIGZpbmFsOwotICAgIHZvaWQgc2V0
TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKFdlYkNvcmU6OkZyYW1lKiwgYm9vbCkgZmluYWw7Ci0g
ICAgdm9pZCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKLSAg
ICB2b2lkIGNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSopIGZpbmFs
OworICAgIHZvaWQgc2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKFdlYkNvcmU6OkZyYW1lJiwg
Ym9vbCkgZmluYWw7CisgICAgdm9pZCBvYnNlcnZlZENvbnRlbnRDaGFuZ2UoV2ViQ29yZTo6RnJh
bWUmKSBmaW5hbDsKKyAgICB2b2lkIGNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhXZWJDb3Jl
OjpGcmFtZSYpIGZpbmFsOwogICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBzY3JlZW5TaXplKCkgY29u
c3QgZmluYWw7CiAgICAgV2ViQ29yZTo6RmxvYXRTaXplIGF2YWlsYWJsZVNjcmVlblNpemUoKSBj
b25zdCBmaW5hbDsKICAgICB2b2lkIGRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdl
KGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJikgY29uc3QgZmluYWw7Ci0gICAgdm9p
ZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoV2ViQ29yZTo6RnJhbWUq
KSBmaW5hbDsKKyAgICB2b2lkIG5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFt
ZShXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwogICAgIGJvb2wgaXNTdG9wcGluZygpIGZpbmFsOwog
ICAgIHZvaWQgZGlkTGF5b3V0KExheW91dFR5cGUpIGZpbmFsOwogICAgIHZvaWQgZGlkU3RhcnRP
dmVyZmxvd1Njcm9sbCgpIGZpbmFsOwpAQCAtNjcsMTEgKzY3LDExIEBAIHByaXZhdGU6CiAKICAg
ICB2b2lkIHN1cHByZXNzRm9ybU5vdGlmaWNhdGlvbnMoKSBmaW5hbDsKICAgICB2b2lkIHJlc3Rv
cmVGb3JtTm90aWZpY2F0aW9ucygpIGZpbmFsOwotICAgIAotICAgIHZvaWQgZWxlbWVudERpZEZv
Y3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBmaW5hbDsKLSAgICB2b2lkIGVsZW1lbnREaWRCbHVy
KGNvbnN0IFdlYkNvcmU6Ok5vZGUqKSBmaW5hbDsKIAotICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBo
aWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7
CisgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOworICAg
IHZvaWQgZWxlbWVudERpZEJsdXIoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOworCisgICAgdm9p
ZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBmaW5hbDsKIAogICAgIHZvaWQgZGlkRmx1c2hDb21wb3NpdGluZ0xheWVycygp
IGZpbmFsOwogCkBAIC04Myw4ICs4Myw4IEBAIHByaXZhdGU6CiAKICAgICBib29sIHNlbGVjdEl0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgZmluYWw7CiAgICAgYm9vbCBzZWxlY3RJdGVt
QWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgZmluYWw7Ci0gICAgUmVmUHRy
PFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNs
aWVudCopIGNvbnN0IGZpbmFsOwotICAgIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+
IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBm
aW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUoV2Vi
Q29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3QgZmluYWw7CisgICAgUmVmUHRyPFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVu
dUNsaWVudCYpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCB3ZWJBcHBPcmllbnRhdGlvbnNVcGRh
dGVkKCkgZmluYWw7CiAgICAgdm9pZCBmb2N1c2VkRWxlbWVudENoYW5nZWQoV2ViQ29yZTo6RWxl
bWVudCopIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50SU9TLm1tIGIvU291cmNlL1dlYktpdC9pb3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50SU9TLm1tCmluZGV4IDUzZThmMGViYmU1Mjg0MzJhMGY5ZTRiZTRj
ZmNkNDIzZmQ3M2UwMzkuLjY4OTcxZDI2NmYzNWY0MGE3OTlhNmMwNDViNzk1MmExMTBhMjAwOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvaW9zL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnRJT1MubW0KQEAgLTEwMywyNSArMTAzLDI1IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
SU9TOjpmb2N1cygpCiAgICAgW1t3ZWJWaWV3KCkgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZp
ZXdGb2N1czp3ZWJWaWV3KCldOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudElPUzo6cnVuSmF2
YVNjcmlwdEFsZXJ0KEZyYW1lKiBmcmFtZSwgY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UpCit2
b2lkIFdlYkNocm9tZUNsaWVudElPUzo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiBmcmFtZSwg
Y29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgV2ViVGhyZWFkTG9ja1B1c2hNb2Rh
bCgpOwotICAgIFtbd2ViVmlldygpIF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZp
ZXcoKSBydW5KYXZhU2NyaXB0QWxlcnRQYW5lbFdpdGhNZXNzYWdlOm1lc3NhZ2UgaW5pdGlhdGVk
QnlGcmFtZTpraXQoZnJhbWUpXTsKKyAgICBbW3dlYlZpZXcoKSBfVUlEZWxlZ2F0ZUZvcndhcmRl
cl0gd2ViVmlldzp3ZWJWaWV3KCkgcnVuSmF2YVNjcmlwdEFsZXJ0UGFuZWxXaXRoTWVzc2FnZTpt
ZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6a2l0KCZmcmFtZSldOwogICAgIFdlYlRocmVhZExvY2tQ
b3BNb2RhbCgpOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudElPUzo6cnVuSmF2YVNjcmlwdENv
bmZpcm0oRnJhbWUqIGZyYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2FnZSkKK2Jvb2wgV2Vi
Q2hyb21lQ2xpZW50SU9TOjpydW5KYXZhU2NyaXB0Q29uZmlybShGcmFtZSYgZnJhbWUsIGNvbnN0
IFdURjo6U3RyaW5nJiBtZXNzYWdlKQogewogICAgIFdlYlRocmVhZExvY2tQdXNoTW9kYWwoKTsK
LSAgICBib29sIHJlc3VsdCA9IFtbd2ViVmlldygpIF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJW
aWV3OndlYlZpZXcoKSBydW5KYXZhU2NyaXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6bWVzc2Fn
ZSBpbml0aWF0ZWRCeUZyYW1lOmtpdChmcmFtZSldOworICAgIGJvb2wgcmVzdWx0ID0gW1t3ZWJW
aWV3KCkgX1VJRGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldygpIHJ1bkphdmFTY3Jp
cHRDb25maXJtUGFuZWxXaXRoTWVzc2FnZTptZXNzYWdlIGluaXRpYXRlZEJ5RnJhbWU6a2l0KCZm
cmFtZSldOwogICAgIFdlYlRocmVhZExvY2tQb3BNb2RhbCgpOwogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50SU9TOjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1l
KiBmcmFtZSwgY29uc3QgV1RGOjpTdHJpbmcmIHByb21wdCwgY29uc3QgV1RGOjpTdHJpbmcmIGRl
ZmF1bHRUZXh0LCBXVEY6OlN0cmluZyYgcmVzdWx0KQorYm9vbCBXZWJDaHJvbWVDbGllbnRJT1M6
OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmIGZyYW1lLCBjb25zdCBXVEY6OlN0cmluZyYgcHJv
bXB0LCBjb25zdCBXVEY6OlN0cmluZyYgZGVmYXVsdFRleHQsIFdURjo6U3RyaW5nJiByZXN1bHQp
CiB7CiAgICAgV2ViVGhyZWFkTG9ja1B1c2hNb2RhbCgpOwotICAgIHJlc3VsdCA9IFtbd2ViVmll
dygpIF9VSURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZpZXcoKSBydW5KYXZhU2NyaXB0
VGV4dElucHV0UGFuZWxXaXRoUHJvbXB0OnByb21wdCBkZWZhdWx0VGV4dDpkZWZhdWx0VGV4dCBp
bml0aWF0ZWRCeUZyYW1lOmtpdChmcmFtZSldOworICAgIHJlc3VsdCA9IFtbd2ViVmlldygpIF9V
SURlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZpZXcoKSBydW5KYXZhU2NyaXB0VGV4dElu
cHV0UGFuZWxXaXRoUHJvbXB0OnByb21wdCBkZWZhdWx0VGV4dDpkZWZhdWx0VGV4dCBpbml0aWF0
ZWRCeUZyYW1lOmtpdCgmZnJhbWUpXTsKICAgICBXZWJUaHJlYWRMb2NrUG9wTW9kYWwoKTsKICAg
ICByZXR1cm4gIXJlc3VsdC5pc051bGwoKTsKIH0KQEAgLTE3MSwyNiArMTcxLDI2IEBAIHZvaWQg
V2ViQ2hyb21lQ2xpZW50SU9TOjpkaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShib29sIGlzTW9iaWxl
RG9jdHlwZSkKICAgICAgICAgW1t3ZWJWaWV3KCkgX1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIHdl
YlZpZXdEaWRSZWNlaXZlTW9iaWxlRG9jVHlwZTp3ZWJWaWV3KCldOwogfQogCi12b2lkIFdlYkNo
cm9tZUNsaWVudElPUzo6c2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKFdlYkNvcmU6OkZyYW1l
KiBmcmFtZSwgYm9vbCBmbGFnKQordm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OnNldE5lZWRzU2Ny
b2xsTm90aWZpY2F0aW9ucyhXZWJDb3JlOjpGcmFtZSYgZnJhbWUsIGJvb2wgZmxhZykKIHsKLSAg
ICBbW3dlYlZpZXcoKSBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3KCkg
bmVlZHNTY3JvbGxOb3RpZmljYXRpb25zOltOU051bWJlciBudW1iZXJXaXRoQm9vbDpmbGFnXSBm
b3JGcmFtZTpraXQoZnJhbWUpXTsKKyAgICBbW3dlYlZpZXcoKSBfVUlLaXREZWxlZ2F0ZUZvcndh
cmRlcl0gd2ViVmlldzp3ZWJWaWV3KCkgbmVlZHNTY3JvbGxOb3RpZmljYXRpb25zOltOU051bWJl
ciBudW1iZXJXaXRoQm9vbDpmbGFnXSBmb3JGcmFtZTpraXQoJmZyYW1lKV07CiB9CiAKLXZvaWQg
V2ViQ2hyb21lQ2xpZW50SU9TOjpvYnNlcnZlZENvbnRlbnRDaGFuZ2UoV2ViQ29yZTo6RnJhbWUq
IGZyYW1lKQordm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6Om9ic2VydmVkQ29udGVudENoYW5nZShX
ZWJDb3JlOjpGcmFtZSYgZnJhbWUpCiB7Ci0gICAgW1t3ZWJWaWV3KCkgX1VJS2l0RGVsZWdhdGVG
b3J3YXJkZXJdIHdlYlZpZXc6d2ViVmlldygpIGRpZE9ic2VydmVEZWZlcnJlZENvbnRlbnRDaGFu
Z2U6V0tPYnNlcnZlZENvbnRlbnRDaGFuZ2UoKSBmb3JGcmFtZTpraXQoZnJhbWUpXTsKKyAgICBb
W3dlYlZpZXcoKSBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3KCkgZGlk
T2JzZXJ2ZURlZmVycmVkQ29udGVudENoYW5nZTpXS09ic2VydmVkQ29udGVudENoYW5nZSgpIGZv
ckZyYW1lOmtpdCgmZnJhbWUpXTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OmNsZWFy
Q29udGVudENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSogZnJhbWUpCit2b2lkIFdlYkNo
cm9tZUNsaWVudElPUzo6Y2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKFdlYkNvcmU6OkZyYW1l
JiBmcmFtZSkKIHsKICAgICBBU1NFUlQoV2ViVGhyZWFkQ291bnRPZk9ic2VydmVkQ29udGVudE1v
ZGlmaWVycygpID4gMCk7CiAgICAgaWYgKFdlYlRocmVhZENvdW50T2ZPYnNlcnZlZENvbnRlbnRN
b2RpZmllcnMoKSA+IDApIHsKICAgICAgICAgV2ViVGhyZWFkQ2xlYXJPYnNlcnZlZENvbnRlbnRN
b2RpZmllcnMoKTsKICAgICAgICAgb2JzZXJ2ZWRDb250ZW50Q2hhbmdlKGZyYW1lKTsKLSAgICB9
ICAgICAgICAKKyAgICB9CiB9CiAKLXN0YXRpYyBpbmxpbmUgTlNEaWN0aW9uYXJ5KiBkaWN0aW9u
YXJ5Rm9yVmlld3BvcnRBcmd1bWVudHMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMm
IGFyZ3VtZW50cykKK3N0YXRpYyBpbmxpbmUgTlNEaWN0aW9uYXJ5ICpkaWN0aW9uYXJ5Rm9yVmll
d3BvcnRBcmd1bWVudHMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmIGFyZ3VtZW50
cykKIHsKICAgICByZXR1cm4gQHsgQCJpbml0aWFsLXNjYWxlIjpAKGFyZ3VtZW50cy56b29tKSwK
ICAgICAgICAgICAgICAgQCJtaW5pbXVtLXNjYWxlIjpAKGFyZ3VtZW50cy5taW5ab29tKSwKQEAg
LTIxOCw5ICsyMTgsOSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudElPUzo6ZGlzcGF0Y2hWaWV3cG9y
dFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgV2ViQ29yZTo6VmlldwogICAgIFtbd2ViVmlldygp
IF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSB3ZWJWaWV3OndlYlZpZXcoKSBkaWRSZWNlaXZlVmll
d3BvcnRBcmd1bWVudHM6ZGljdGlvbmFyeUZvclZpZXdwb3J0QXJndW1lbnRzKGFyZ3VtZW50cyld
OwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudElPUzo6bm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25C
eVNjcm9sbGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50SU9TOjpub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nRnJhbWUoV2ViQ29yZTo6
RnJhbWUmIGZyYW1lKQogewotICAgIFtbd2ViVmlldygpIF9VSUtpdERlbGVnYXRlRm9yd2FyZGVy
XSByZXZlYWxlZFNlbGVjdGlvbkJ5U2Nyb2xsaW5nV2ViRnJhbWU6a2l0KGZyYW1lKV07CisgICAg
W1t3ZWJWaWV3KCkgX1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIHJldmVhbGVkU2VsZWN0aW9uQnlT
Y3JvbGxpbmdXZWJGcmFtZTpraXQoJmZyYW1lKV07CiB9CiAKIGJvb2wgV2ViQ2hyb21lQ2xpZW50
SU9TOjppc1N0b3BwaW5nKCkKQEAgLTI1NiwxNiArMjU2LDE2IEBAIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50SU9TOjpyZXN0b3JlRm9ybU5vdGlmaWNhdGlvbnMoKQogICAgICAgICBtX2Zvcm1Ob3RpZmlj
YXRpb25TdXBwcmVzc2lvbnMgPSAwOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudElPUzo6ZWxl
bWVudERpZEZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit2b2lkIFdlYkNocm9tZUNs
aWVudElPUzo6ZWxlbWVudERpZEZvY3VzKFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7CiAg
ICAgaWYgKG1fZm9ybU5vdGlmaWNhdGlvblN1cHByZXNzaW9ucyA8PSAwKQotICAgICAgICBbW3dl
YlZpZXcoKSBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3ZWJWaWV3KCkgZWxlbWVu
dERpZEZvY3VzTm9kZTpraXQoY29uc3RfY2FzdDxXZWJDb3JlOjpOb2RlKj4obm9kZSkpXTsKKyAg
ICAgICAgW1t3ZWJWaWV3KCkgX1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIHdlYlZpZXc6d2ViVmll
dygpIGVsZW1lbnREaWRGb2N1c05vZGU6a2l0KCZlbGVtZW50KV07CiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50SU9TOjplbGVtZW50RGlkQmx1cihjb25zdCBXZWJDb3JlOjpOb2RlKiBub2RlKQor
dm9pZCBXZWJDaHJvbWVDbGllbnRJT1M6OmVsZW1lbnREaWRCbHVyKFdlYkNvcmU6OkVsZW1lbnQm
IGVsZW1lbnQpCiB7CiAgICAgaWYgKG1fZm9ybU5vdGlmaWNhdGlvblN1cHByZXNzaW9ucyA8PSAw
KQotICAgICAgICBbW3dlYlZpZXcoKSBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzp3
ZWJWaWV3KCkgZWxlbWVudERpZEJsdXJOb2RlOmtpdChjb25zdF9jYXN0PFdlYkNvcmU6Ok5vZGUq
Pihub2RlKSldOworICAgICAgICBbW3dlYlZpZXcoKSBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0g
d2ViVmlldzp3ZWJWaWV3KCkgZWxlbWVudERpZEJsdXJOb2RlOmtpdCgmZWxlbWVudCldOwogfQog
CiBib29sIFdlYkNocm9tZUNsaWVudElPUzo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05h
dHVyYWwoKQpAQCAtMjc4LDE3ICsyNzgsMTcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnRJT1M6OnNl
bGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKQogICAgIHJldHVy
biB0cnVlOwogfQogCi1SZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnRJ
T1M6OmNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29u
c3QKK1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudElPUzo6Y3JlYXRl
UG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAogewotICAg
IHJldHVybiBhZG9wdFJlZihuZXcgUG9wdXBNZW51SU9TKGNsaWVudCkpOworICAgIHJldHVybiBh
ZG9wdFJlZihuZXcgUG9wdXBNZW51SU9TKCZjbGllbnQpKTsKIH0KIAotUmVmUHRyPFdlYkNvcmU6
OlNlYXJjaFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50SU9TOjpjcmVhdGVTZWFyY2hQb3B1cE1l
bnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KiBjbGllbnQpIGNvbnN0CitSZWZQdHI8V2ViQ29y
ZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnRJT1M6OmNyZWF0ZVNlYXJjaFBvcHVw
TWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmIGNsaWVudCkgY29uc3QKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudUlPUyhjbGllbnQpKTsKKyAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFNlYXJjaFBvcHVwTWVudUlPUygmY2xpZW50KSk7CiB9CiAKLXZvaWQgV2Vi
Q2hyb21lQ2xpZW50SU9TOjphdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNz
TGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudElPUzo6YXR0YWNoUm9v
dEdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQogewog
ICAgIC8vIEZJWE1FOiBmb3Igbm9uLXJvb3QgZnJhbWVzIHdlIHJlbHkgb24gUmVuZGVyVmlldyBw
b3NpdGlvbmluZyB0aGUgcm9vdCBsYXllciwKICAgICAvLyB3aGljaCBpcyBhIGhhY2suIDxyZGFy
Oi8vcHJvYmxlbS81OTA2MTQ2PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbSBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YU1hbmFnZXIubW0K
aW5kZXggM2IzYzNhNDI5NGMxN2M1NzhiODE5MTVkYTBiMWM0ZjhiZmEyM2ViYS4uMGQ0ODJiNGRk
OTI1YmMwYjhiOGQ0MjYxZWZjMmM3YTY1NTc2ZTA5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhTWFuYWdlci5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJBcHBsaWNhdGlvbkNhY2hl
UXVvdGFNYW5hZ2VyLm1tCkBAIC01OSw3ICs1OSw5IEBAIC0gKHVuc2lnbmVkIGxvbmcgbG9uZyl1
c2FnZQogLSAodW5zaWduZWQgbG9uZyBsb25nKXF1b3RhCiB7CiAgICAgbG9uZyBsb25nIHF1b3Rh
OwotICAgIGlmICh3ZWJBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZSgpLmNhbGN1bGF0ZVF1b3RhRm9y
T3JpZ2luKFtfb3JpZ2luIF9jb3JlXSwgcXVvdGEpKQorICAgIGlmICghX29yaWdpbikKKyAgICAg
ICAgcmV0dXJuIDA7CisgICAgaWYgKHdlYkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlKCkuY2FsY3Vs
YXRlUXVvdGFGb3JPcmlnaW4oKltfb3JpZ2luIF9jb3JlXSwgcXVvdGEpKQogICAgICAgICByZXR1
cm4gcXVvdGE7CiAgICAgcmV0dXJuIDA7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGY0ZjA5NmM1ZDY0NzNlYmM2ZTdh
YmQ1ODNiNmRmZWY0YWFhNGQxNTkuLjdkOGYzYjg3ZjdlMzI0NTE2ZGIwNjE1YmU1OGQ4ZDkwNTU4
MjRiOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oCkBAIC01OSw3ICs1OSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBmb2N1c2Vk
RWxlbWVudENoYW5nZWQoV2ViQ29yZTo6RWxlbWVudCopIG92ZXJyaWRlOwogICAgIHZvaWQgZm9j
dXNlZEZyYW1lQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSopIGZpbmFsOwogCi0gICAgV2ViQ29yZTo6
UGFnZSogY3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6RnJhbWVM
b2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2ViQ29y
ZTo6TmF2aWdhdGlvbkFjdGlvbiYpIGZpbmFsOworICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdp
bmRvdyhXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBj
b25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25B
Y3Rpb24mKSBmaW5hbDsKICAgICB2b2lkIHNob3coKSBmaW5hbDsKIAogICAgIGJvb2wgY2FuUnVu
TW9kYWwoKSBmaW5hbDsKQEAgLTc5LDE2ICs3OSwxNiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBz
ZXRSZXNpemFibGUoYm9vbCkgZmluYWw7CiAKLSAgICB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUo
SlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29uc3QgV1RGOjpTdHJpbmcm
IG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29u
c3QgV1RGOjpTdHJpbmcmIHNvdXJjZVVSTCkgZmluYWw7CisgICAgdm9pZCBhZGRNZXNzYWdlVG9D
b25zb2xlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBj
b25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgZmluYWw7CiAKICAgICBib29sIGNhblJ1bkJlZm9yZVVu
bG9hZENvbmZpcm1QYW5lbCgpIGZpbmFsOwotICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmly
bVBhbmVsKGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSopIGZpbmFs
OworICAgIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKIAogICAgIHZvaWQgY2xvc2VXaW5kb3dTb29u
KCkgZmluYWw7CiAKLSAgICB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFtZSos
IGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0Q29u
ZmlybShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJikgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFdURjo6U3RyaW5n
JiByZXN1bHQpIG92ZXJyaWRlOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6
OkZyYW1lJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0
Q29uZmlybShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworICAgIGJv
b2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KSBvdmVycmlk
ZTsKIAogICAgIGJvb2wgc3VwcG9ydHNJbW1lZGlhdGVJbnZhbGlkYXRpb24oKSBmaW5hbDsKICAg
ICB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgZmluYWw7
CkBAIC0xMDUsMjkgKzEwNSwyOSBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBQbGF0Zm9ybVBh
Z2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xpZW50KCkgY29uc3QgZmluYWw7Ci0gICAgdm9pZCBjb250
ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFt
ZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIHNjcm9s
bFJlY3RJbnRvVmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3QgZmluYWw7CiAKLSAg
ICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgV1RGOjpTdHJpbmcmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgZmluYWwgeyB9CiAgICAgYm9vbCBz
aG91bGRVbmF2YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihXZWJDb3JlOjpSZW5kZXJFbWJl
ZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOwotICAg
IHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQqLCBX
ZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24p
IGNvbnN0IGZpbmFsOworICAgIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdl
YkNvcmU6OkVsZW1lbnQmLCBXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3Zl
ckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVy
RmxhZ3MpIGZpbmFsOwogCi0gICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFdURjo6U3RyaW5nJiwg
V2ViQ29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7CisgICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0
IFN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24pIGZpbmFsOwogCi0gICAgdm9pZCBwcmlu
dChXZWJDb3JlOjpGcmFtZSopIGZpbmFsOwotICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3Rh
KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29y
ZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKKyAgICB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1l
JikgZmluYWw7CisgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUm
LCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBm
aW5hbDsKICAgICB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRl
ZCkgZmluYWw7Ci0gICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSBmaW5hbDsK
KyAgICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW4mLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVkZWQpIGZpbmFsOwogCiAjaWYgRU5B
QkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIHZvaWQgYW5ub3RhdGVkUmVnaW9uc0NoYW5nZWQo
KSBmaW5hbDsKICNlbmRpZgogCiAgICAgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUm
LCBXZWJDb3JlOjpGaWxlQ2hvb3NlciYpIG92ZXJyaWRlOwotICAgIHZvaWQgbG9hZEljb25Gb3JG
aWxlcyhjb25zdCBWZWN0b3I8V1RGOjpTdHJpbmc+JiwgV2ViQ29yZTo6RmlsZUljb25Mb2FkZXIm
KSBmaW5hbDsKKyAgICB2b2lkIGxvYWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4m
LCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpIGZpbmFsOwogCiAjaWYgIVBMQVRGT1JNKElPUykK
ICAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBmaW5hbDsKQEAgLTEz
NSw3ICsxMzUsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9D
T0xPUikKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2VyPiBjcmVhdGVD
b2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50KiwgY29uc3QgV2ViQ29yZTo6
Q29sb3ImKSBmaW5hbDsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6Q29sb3JDaG9vc2Vy
PiBjcmVhdGVDb2xvckNob29zZXIoV2ViQ29yZTo6Q29sb3JDaG9vc2VyQ2xpZW50JiwgY29uc3Qg
V2ViQ29yZTo6Q29sb3ImKSBmaW5hbDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9D
SykKQEAgLTE1MSwxNiArMTUxLDE2IEBAIHByaXZhdGU6CiAgICAgdm9pZCBlbmFibGVTdWRkZW5U
ZXJtaW5hdGlvbigpIGZpbmFsOwogICAgIHZvaWQgZGlzYWJsZVN1ZGRlblRlcm1pbmF0aW9uKCkg
ZmluYWw7CiAKLSAgICBib29sIHNob3VsZFJlcGxhY2VXaXRoR2VuZXJhdGVkRmlsZUZvclVwbG9h
ZChjb25zdCBXVEY6OlN0cmluZyYgcGF0aCwgV1RGOjpTdHJpbmcgJmdlbmVyYXRlZEZpbGVuYW1l
KSBmaW5hbDsKLSAgICBXVEY6OlN0cmluZyBnZW5lcmF0ZVJlcGxhY2VtZW50RmlsZShjb25zdCBX
VEY6OlN0cmluZyYgcGF0aCkgZmluYWw7CisgICAgYm9vbCBzaG91bGRSZXBsYWNlV2l0aEdlbmVy
YXRlZEZpbGVGb3JVcGxvYWQoY29uc3QgU3RyaW5nJiBwYXRoLCBTdHJpbmcgJmdlbmVyYXRlZEZp
bGVuYW1lKSBmaW5hbDsKKyAgICBTdHJpbmcgZ2VuZXJhdGVSZXBsYWNlbWVudEZpbGUoY29uc3Qg
U3RyaW5nJiBwYXRoKSBmaW5hbDsKIAotICAgIHZvaWQgZWxlbWVudERpZEZvY3VzKGNvbnN0IFdl
YkNvcmU6Ok5vZGUqKSBvdmVycmlkZTsKLSAgICB2b2lkIGVsZW1lbnREaWRCbHVyKGNvbnN0IFdl
YkNvcmU6Ok5vZGUqKSBvdmVycmlkZTsKKyAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhXZWJDb3Jl
OjpFbGVtZW50Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBlbGVtZW50RGlkQmx1cihXZWJDb3JlOjpF
bGVtZW50Jikgb3ZlcnJpZGU7CiAKICAgICBib29sIHNob3VsZFBhaW50RW50aXJlQ29udGVudHMo
KSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29y
ZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBh
dHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgZmluYWw7CisgICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihX
ZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2
b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdp
bmdTeW5jaHJvbml6YXRpb24oKSBmaW5hbDsKICAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdM
YXllckZsdXNoKCkgZmluYWw7CiAKQEAgLTE4OSwxNiArMTg5LDE2IEBAIHByaXZhdGU6CiAjZW5k
aWYKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLSAgICBib29sIHN1cHBvcnRzRnVsbFNj
cmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJvb2wgd2l0aEtleWJvYXJk
KSBmaW5hbDsKLSAgICB2b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxl
bWVudCopIGZpbmFsOwotICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6
OkVsZW1lbnQqKSBmaW5hbDsKKyAgICBib29sIHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQo
Y29uc3QgV2ViQ29yZTo6RWxlbWVudCYsIGJvb2wgd2l0aEtleWJvYXJkKSBmaW5hbDsKKyAgICB2
b2lkIGVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOwor
ICAgIHZvaWQgZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmKSBmaW5h
bDsKICNlbmRpZgogCiAgICAgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJh
bCgpIG92ZXJyaWRlOwogICAgIGJvb2wgc2VsZWN0SXRlbUFsaWdubWVudEZvbGxvd3NNZW51V3Jp
dGluZ0RpcmVjdGlvbigpIG92ZXJyaWRlOwogICAgIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25z
dCBmaW5hbDsKLSAgICBSZWZQdHI8V2ViQ29yZTo6UG9wdXBNZW51PiBjcmVhdGVQb3B1cE1lbnUo
V2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgUmVmUHRyPFdl
YkNvcmU6OlNlYXJjaFBvcHVwTWVudT4gY3JlYXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBv
cHVwTWVudUNsaWVudCopIGNvbnN0IG92ZXJyaWRlOworICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1
cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBv
dmVycmlkZTsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFy
Y2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29uc3Qgb3ZlcnJpZGU7CiAK
ICAgICB2b2lkIHdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQoYm9vbCkgZmluYWwgeyB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bQppbmRleCAwZWNmZjhkNWZhYjFlZTVmYzU1MjkyZGMwNGE4MDVhZDJjY2NkZWQ4Li5lNDk2N2I5
ZjhjMzdjNjI1YjUwNTViYzQyOTFhNzU5NTlmMDVmYWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC0zMCw2ICszMCw3
IEBACiAjaW1wb3J0ICJXZWJDaHJvbWVDbGllbnQuaCIKIAogI2ltcG9ydCAiRE9NRWxlbWVudElu
dGVybmFsLmgiCisjaW1wb3J0ICJET01IVE1MSW5wdXRFbGVtZW50SW50ZXJuYWwuaCIKICNpbXBv
cnQgIkRPTU5vZGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiUG9wdXBNZW51TWFjLmgiCiAjaW1wb3J0
ICJTZWFyY2hQb3B1cE1lbnVNYWMuaCIKQEAgLTIyMiw3ICsyMjMsNyBAQCB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6Zm9jdXNlZEVsZW1lbnRDaGFuZ2VkKEVsZW1lbnQqIGVsZW1lbnQpCiAgICAgaWYg
KCFpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
SFRNTElucHV0RWxlbWVudCYgaW5wdXRFbGVtZW50ID0gZG93bmNhc3Q8SFRNTElucHV0RWxlbWVu
dD4oKmVsZW1lbnQpOworICAgIGF1dG8mIGlucHV0RWxlbWVudCA9IGRvd25jYXN0PEhUTUxJbnB1
dEVsZW1lbnQ+KCplbGVtZW50KTsKICAgICBpZiAoIWlucHV0RWxlbWVudC5pc1RleHQoKSkKICAg
ICAgICAgcmV0dXJuOwogCkBAIC0yMzMsMTQgKzIzNCwxNCBAQCB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6Zm9jdXNlZEZyYW1lQ2hhbmdlZChGcmFtZSopCiB7CiB9CiAKLVBhZ2UqIFdlYkNocm9tZUNs
aWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYs
IGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYp
CitQYWdlKiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVdpbmRvdyhGcmFtZSYgZnJhbWUsIGNvbnN0
IEZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXaW5kb3dGZWF0dXJlcyYgZmVhdHVyZXMsIGNvbnN0
IE5hdmlnYXRpb25BY3Rpb24mKQogewogICAgIGlkIGRlbGVnYXRlID0gW21fd2ViVmlldyBVSURl
bGVnYXRlXTsKICAgICBXZWJWaWV3ICpuZXdXZWJWaWV3OwogCiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQotICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+
d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkpCi0gICAgICAgIGZyYW1lLT5kb2N1bWVu
dCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7CisgICAgaWYgKGZyYW1lLmRvY3VtZW50KCkg
JiYgZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkpCisg
ICAgICAgIGZyYW1lLmRvY3VtZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsKICNlbmRp
ZgogICAgIAogICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3
ZWJWaWV3OmNyZWF0ZVdlYlZpZXdXaXRoUmVxdWVzdDp3aW5kb3dGZWF0dXJlczopXSkgewpAQCAt
NDY4LDkgKzQ2OSw5IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpjYW5SdW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwoKQogICAgIHJldHVybiBbW21fd2ViVmlldyBVSURlbGVnYXRlXSByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXc6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVs
V2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlGcmFtZTopXTsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZy
YW1lKiBmcmFtZSkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5CZWZvcmVVbmxvYWRDb25maXJt
UGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBGcmFtZSYgZnJhbWUpCiB7Ci0gICAgcmV0dXJu
IENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVhbih0cnVlLCBtX3dlYlZpZXcsIEBzZWxlY3Rv
cih3ZWJWaWV3OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRl
ZEJ5RnJhbWU6KSwgbWVzc2FnZSwga2l0KGZyYW1lKSk7CisgICAgcmV0dXJuIENhbGxVSURlbGVn
YXRlUmV0dXJuaW5nQm9vbGVhbih0cnVlLCBtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnJ1
bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbFdpdGhNZXNzYWdlOmluaXRpYXRlZEJ5RnJhbWU6KSwg
bWVzc2FnZSwga2l0KCZmcmFtZSkpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xvc2VX
aW5kb3dTb29uKCkKQEAgLTQ5MywxMiArNDk0LDEyIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpj
bG9zZVdpbmRvd1Nvb24oKQogICAgIFttX3dlYlZpZXcgcGVyZm9ybVNlbGVjdG9yOkBzZWxlY3Rv
cihfY2xvc2VXaW5kb3cpIHdpdGhPYmplY3Q6bmlsIGFmdGVyRGVsYXk6MC4wXTsKIH0KIAotdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFtZSogZnJhbWUsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0QWxl
cnQoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgaWQgZGVsZWdh
dGUgPSBbbV93ZWJWaWV3IFVJRGVsZWdhdGVdOwogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rv
cih3ZWJWaWV3OnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlG
cmFtZTopOwogICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkg
ewotICAgICAgICBDYWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBtZXNzYWdlLCBr
aXQoZnJhbWUpKTsKKyAgICAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBzZWxlY3Rvciwg
bWVzc2FnZSwga2l0KCZmcmFtZSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC01MTAs
MTIgKzUxMSwxMiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZy
YW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIH0KIH0KIAotYm9vbCBXZWJD
aHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJt
KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewogICAgIGlkIGRlbGVnYXRl
ID0gW21fd2ViVmlldyBVSURlbGVnYXRlXTsKICAgICBTRUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Io
d2ViVmlldzpydW5KYXZhU2NyaXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6aW5pdGlhdGVkQnlG
cmFtZTopOwogICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkK
LSAgICAgICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVhbihOTywgbV93ZWJW
aWV3LCBzZWxlY3RvciwgbWVzc2FnZSwga2l0KGZyYW1lKSk7CisgICAgICAgIHJldHVybiBDYWxs
VUlEZWxlZ2F0ZVJldHVybmluZ0Jvb2xlYW4oTk8sIG1fd2ViVmlldywgc2VsZWN0b3IsIG1lc3Nh
Z2UsIGtpdCgmZnJhbWUpKTsKIAogICAgIC8vIENhbGwgdGhlIG9sZCB2ZXJzaW9uIG9mIHRoZSBk
ZWxlZ2F0ZSBtZXRob2QgaWYgaXQgaXMgaW1wbGVtZW50ZWQuCiAgICAgc2VsZWN0b3IgPSBAc2Vs
ZWN0b3Iod2ViVmlldzpydW5KYXZhU2NyaXB0Q29uZmlybVBhbmVsV2l0aE1lc3NhZ2U6KTsKQEAg
LTUyNSwxMyArNTI2LDEzIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0Q29u
ZmlybShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICByZXR1cm4gTk87
CiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lKiBm
cmFtZSwgY29uc3QgU3RyaW5nJiBwcm9tcHQsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFRleHQsIFN0
cmluZyYgcmVzdWx0KQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQo
RnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIHByb21wdCwgY29uc3QgU3RyaW5nJiBkZWZhdWx0
VGV4dCwgU3RyaW5nJiByZXN1bHQpCiB7CiAgICAgaWQgZGVsZWdhdGUgPSBbbV93ZWJWaWV3IFVJ
RGVsZWdhdGVdOwogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3OnJ1bkphdmFT
Y3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6ZGVmYXVsdFRleHQ6aW5pdGlhdGVkQnlGcmFt
ZTopOwogICAgIE5TU3RyaW5nICpkZWZhdWx0U3RyaW5nID0gZGVmYXVsdFRleHQ7CiAgICAgaWYg
KFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6c2VsZWN0b3JdKSB7Ci0gICAgICAgIHJlc3Vs
dCA9IChOU1N0cmluZyAqKUNhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIHByb21w
dCwgZGVmYXVsdFN0cmluZywga2l0KGZyYW1lKSk7CisgICAgICAgIHJlc3VsdCA9IChOU1N0cmlu
ZyAqKUNhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3IsIHByb21wdCwgZGVmYXVsdFN0
cmluZywga2l0KCZmcmFtZSkpOwogICAgICAgICByZXR1cm4gIXJlc3VsdC5pc051bGwoKTsKICAg
ICB9CiAKQEAgLTU0Miw3ICs1NDMsNyBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNj
cmlwdFByb21wdChGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgcHJvbXB0LCBjbwogICAgICAg
ICByZXR1cm4gIXJlc3VsdC5pc051bGwoKTsKICAgICB9CiAKLSAgICByZXN1bHQgPSBbW1dlYkRl
ZmF1bHRVSURlbGVnYXRlIHNoYXJlZFVJRGVsZWdhdGVdIHdlYlZpZXc6bV93ZWJWaWV3IHJ1bkph
dmFTY3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6cHJvbXB0IGRlZmF1bHRUZXh0OmRlZmF1
bHRTdHJpbmcgaW5pdGlhdGVkQnlGcmFtZTpraXQoZnJhbWUpXTsKKyAgICByZXN1bHQgPSBbW1dl
YkRlZmF1bHRVSURlbGVnYXRlIHNoYXJlZFVJRGVsZWdhdGVdIHdlYlZpZXc6bV93ZWJWaWV3IHJ1
bkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbFdpdGhQcm9tcHQ6cHJvbXB0IGRlZmF1bHRUZXh0OmRl
ZmF1bHRTdHJpbmcgaW5pdGlhdGVkQnlGcmFtZTpraXQoJmZyYW1lKV07CiAgICAgcmV0dXJuICFy
ZXN1bHQuaXNOdWxsKCk7CiB9CiAKQEAgLTYwNiw3ICs2MDcsNyBAQCBQbGF0Zm9ybVBhZ2VDbGll
bnQgV2ViQ2hyb21lQ2xpZW50OjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogICAgIHJldHVy
biAwOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdlZChGcmFt
ZSosIGNvbnN0IEludFNpemUmKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmNvbnRlbnRz
U2l6ZUNoYW5nZWQoRnJhbWUmLCBjb25zdCBJbnRTaXplJikgY29uc3QKIHsKIH0KIApAQCAtNjM1
LDEyICs2MzYsMTIgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVuYXZhaWxhYmxlUGx1
Z2luTWVzc2FnZUJlQnV0dG9uKFJlbmRlckVtYmVkZGVkT2JqZWMKICAgICByZXR1cm4gZmFsc2U7
CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNr
ZWQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxh
YmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdAordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50JiBlbGVt
ZW50LCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1
Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0CiB7Ci0gICAgQVNTRVJUKGVsZW1lbnQtPmhh
c1RhZ05hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGVtYmVkVGFnKSB8fCBl
bGVtZW50LT5oYXNUYWdOYW1lKGFwcGxldFRhZykpOworICAgIEFTU0VSVChlbGVtZW50Lmhhc1Rh
Z05hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZW1iZWRUYWcpIHx8IGVsZW1l
bnQuaGFzVGFnTmFtZShhcHBsZXRUYWcpKTsKIAogICAgIEFTU0VSVChwbHVnaW5VbmF2YWlsYWJp
bGl0eVJlYXNvbiA9PSBSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luTWlzc2luZyk7Ci0gICAg
Q2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpkaWRQcmVzc01pc3Np
bmdQbHVnaW5CdXR0b246KSwga2l0KGVsZW1lbnQpKTsKKyAgICBDYWxsVUlEZWxlZ2F0ZShtX3dl
YlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmRpZFByZXNzTWlzc2luZ1BsdWdpbkJ1dHRvbjopLCBr
aXQoJmVsZW1lbnQpKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6Om1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJG
bGFncykKQEAgLTY1NywyMSArNjU4LDIxIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRUb29s
VGlwKGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikKICAgICAgICAgWyhXZWJI
VE1MVmlldyAqKWRvY3VtZW50VmlldyBfc2V0VG9vbFRpcDp0b29sVGlwXTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpwcmludChGcmFtZSYgZnJhbWUpCiB7Ci0gICAgV2ViRnJhbWUgKndlYkZyYW1lID0ga2l0KGZy
YW1lKTsKKyAgICBXZWJGcmFtZSAqd2ViRnJhbWUgPSBraXQoJmZyYW1lKTsKICAgICBpZiAoW1tt
X3dlYlZpZXcgVUlEZWxlZ2F0ZV0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3
OnByaW50RnJhbWU6KV0pCiAgICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgQHNlbGVj
dG9yKHdlYlZpZXc6cHJpbnRGcmFtZTopLCB3ZWJGcmFtZSk7CiAgICAgZWxzZQogICAgICAgICBD
YWxsVUlEZWxlZ2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OnByaW50RnJhbWVWaWV3
OiksIFt3ZWJGcmFtZSBmcmFtZVZpZXddKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4
Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lLCBEYXRhYmFzZURldGFpbHMpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRh
YmFzZVF1b3RhKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFi
YXNlRGV0YWlscykKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBX
ZWJTZWN1cml0eU9yaWdpbiAqd2ViT3JpZ2luID0gW1tXZWJTZWN1cml0eU9yaWdpbiBhbGxvY10g
X2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOiZmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKV07Ci0gICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2Vi
VmlldzpmcmFtZTpleGNlZWRlZERhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjpkYXRhYmFz
ZTopLCBraXQoZnJhbWUpLCB3ZWJPcmlnaW4sIChOU1N0cmluZyAqKWRhdGFiYXNlTmFtZSk7Cisg
ICAgV2ViU2VjdXJpdHlPcmlnaW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxs
b2NdIF9pbml0V2l0aFdlYkNvcmVTZWN1cml0eU9yaWdpbjomZnJhbWUuZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKV07CisgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Io
d2ViVmlldzpmcmFtZTpleGNlZWRlZERhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjpkYXRh
YmFzZTopLCBraXQoJmZyYW1lKSwgd2ViT3JpZ2luLCAoTlNTdHJpbmcgKilkYXRhYmFzZU5hbWUp
OwogICAgIFt3ZWJPcmlnaW4gcmVsZWFzZV07CiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOwpAQCAtNjgyLDExICs2ODMsMTEgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRN
YXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkKICAgICAvLyBGSVhNRTogRnJlZSBz
b21lIHNwYWNlLgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBpbnQ2NF90IHRvdGFsU3Bh
Y2VOZWVkZWQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVP
cmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBpbnQ2NF90IHRvdGFsU3BhY2VOZWVk
ZWQpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCi0gICAgV2ViU2VjdXJp
dHlPcmlnaW4gKndlYk9yaWdpbiA9IFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0
aFdlYkNvcmVTZWN1cml0eU9yaWdpbjpvcmlnaW5dOworICAgIFdlYlNlY3VyaXR5T3JpZ2luICp3
ZWJPcmlnaW4gPSBbW1dlYlNlY3VyaXR5T3JpZ2luIGFsbG9jXSBfaW5pdFdpdGhXZWJDb3JlU2Vj
dXJpdHlPcmlnaW46Jm9yaWdpbl07CiAgICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2Vs
ZWN0b3Iod2ViVmlldzpleGNlZWRlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YUZvclNlY3Vy
aXR5T3JpZ2luOnRvdGFsU3BhY2VOZWVkZWQ6KSwgd2ViT3JpZ2luLCBzdGF0aWNfY2FzdDxOU1VJ
bnRlZ2VyPih0b3RhbFNwYWNlTmVlZGVkKSk7CiAgICAgW3dlYk9yaWdpbiByZWxlYXNlXTsKIApA
QCAtNzA1LDEyICs3MDYsMTQgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFubm90YXRlZFJlZ2lv
bnNDaGFuZ2VkKCkKICNlbmRpZgogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi1zdGQ6
OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZUNvbG9yQ2hv
b3NlcihDb2xvckNob29zZXJDbGllbnQqIGNsaWVudCwgY29uc3QgQ29sb3ImIGluaXRpYWxDb2xv
cikKKworc3RkOjp1bmlxdWVfcHRyPENvbG9yQ2hvb3Nlcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVDb2xvckNob29zZXIoQ29sb3JDaG9vc2VyQ2xpZW50JiBjbGllbnQsIGNvbnN0IENvbG9yJiBp
bml0aWFsQ29sb3IpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCA8aW5wdXQgdHlwZT0nY29s
b3InPiBmb3IgV0sxIChCdWcgMTE5MDk0KS4KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICByZXR1cm4gbnVsbHB0cjsKIH0KKwogI2VuZGlmCiAKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NL
KQpAQCAtODQ4LDE0ICs4NTEsMTQgQEAgU3RyaW5nIFdlYkNocm9tZUNsaWVudDo6Z2VuZXJhdGVS
ZXBsYWNlbWVudEZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVybiBbW21fd2ViVmll
dyBfVUlEZWxlZ2F0ZUZvcndhcmRlcl0gd2ViVmlldzptX3dlYlZpZXcgZ2VuZXJhdGVSZXBsYWNl
bWVudEZpbGU6cGF0aF07CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkRm9j
dXMoY29uc3QgV2ViQ29yZTo6Tm9kZSogbm9kZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVt
ZW50RGlkRm9jdXMoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBDYWxsVUlEZWxl
Z2F0ZShtX3dlYlZpZXcsIEBzZWxlY3Rvcih3ZWJWaWV3OmZvcm1EaWRGb2N1c05vZGU6KSwga2l0
KGNvbnN0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KG5vZGUpKSk7CisgICAgQ2FsbFVJRGVsZWdhdGUo
bV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpmb3JtRGlkRm9jdXNOb2RlOiksIGtpdCgmZWxl
bWVudCkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIoY29uc3Qg
V2ViQ29yZTo6Tm9kZSogbm9kZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbGVtZW50RGlkQmx1
cihXZWJDb3JlOjpFbGVtZW50JiBlbGVtZW50KQogewotICAgIENhbGxVSURlbGVnYXRlKG1fd2Vi
VmlldywgQHNlbGVjdG9yKHdlYlZpZXc6Zm9ybURpZEJsdXJOb2RlOiksIGtpdChjb25zdF9jYXN0
PFdlYkNvcmU6Ok5vZGUqPihub2RlKSkpOworICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywg
QHNlbGVjdG9yKHdlYlZpZXc6Zm9ybURpZEJsdXJOb2RlOiksIGtpdCgmZWxlbWVudCkpOwogfQog
CiBib29sIFdlYkNocm9tZUNsaWVudDo6c2VsZWN0SXRlbVdyaXRpbmdEaXJlY3Rpb25Jc05hdHVy
YWwoKQpAQCAtODc0LDE5ICs4NzcsMTkgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6Omhhc09wZW5l
ZFBvcHVwKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpQ
b3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVw
TWVudUNsaWVudCogY2xpZW50KSBjb25zdAorUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2Vi
Q2hyb21lQ2xpZW50OjpjcmVhdGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JiBj
bGllbnQpIGNvbnN0CiB7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFBvcHVwTWVudU1hYyhjbGllbnQpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBQb3B1
cE1lbnVNYWMoJmNsaWVudCkpOwogI2Vsc2UKICAgICByZXR1cm4gbnVsbHB0cjsKICNlbmRpZgog
fQogCi1SZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNy
ZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29u
c3QKK1JlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlU2VhcmNoUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25z
dAogewogI2lmICFQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBTZWFyY2hQ
b3B1cE1lbnVNYWMoY2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU2VhcmNoUG9w
dXBNZW51TWFjKCZjbGllbnQpKTsKICNlbHNlCiAgICAgcmV0dXJuIG51bGxwdHI7CiAjZW5kaWYK
QEAgLTkwMiwxMSArOTA1LDExIEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzaG91bGRQYWludEVu
dGlyZUNvbnRlbnRzKCkgY29uc3QKICNlbmRpZgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6
YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xheWVyKiBncmFw
aGljc0xheWVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFwaGljc0xheWVy
KEZyYW1lJiBmcmFtZSwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKLSAgICBOU1ZpZXcgKmRvY3VtZW50VmlldyA9IFtb
a2l0KGZyYW1lKSBmcmFtZVZpZXddIGRvY3VtZW50Vmlld107CisgICAgTlNWaWV3ICpkb2N1bWVu
dFZpZXcgPSBbW2tpdCgmZnJhbWUpIGZyYW1lVmlld10gZG9jdW1lbnRWaWV3XTsKICAgICBpZiAo
IVtkb2N1bWVudFZpZXcgaXNLaW5kT2ZDbGFzczpbV2ViSFRNTFZpZXcgY2xhc3NdXSkgewogICAg
ICAgICAvLyBXZSBzaG91bGQgbmV2ZXIgYmUgYXR0YWNoaW5nIHdoZW4gd2UgZG9uJ3QgaGF2ZSBh
IFdlYkhUTUxWaWV3LgogICAgICAgICBBU1NFUlQoIWdyYXBoaWNzTGF5ZXIpOwpAQCAtOTIxLDcg
KzkyNCw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRhY2hSb290R3JhcGhpY3NMYXllcihG
cmFtZSogZnJhbWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoCiAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3Jh
cGhpY3NMYXllcihGcmFtZSosIEdyYXBoaWNzTGF5ZXIqKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKQog
ewogICAgIC8vIEZJWE1FOiBJZiB3ZSB3YW50IHZpZXctcmVsYXRpdmUgcGFnZSBvdmVybGF5cyBp
biBMZWdhY3kgV2ViS2l0LCB0aGlzIHdvdWxkIGJlIHRoZSBwbGFjZSB0byBob29rIHRoZW0gdXAu
CiB9CkBAIC05NDEsNiArOTQ0LDcgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQ29t
cG9zaXRpbmdMYXllckZsdXNoKCkKIH0KIAogI2lmIEVOQUJMRShWSURFTykKKwogYm9vbCBXZWJD
aHJvbWVDbGllbnQ6OnN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKEhUTUxNZWRpYUVsZW1lbnRFbnVt
czo6VmlkZW9GdWxsc2NyZWVuTW9kZSkKIHsKICNpZiBQTEFURk9STShJT1MpCkBAIC05NjUsNyAr
OTY5LDEwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlk
ZW9FbGVtZW50KFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lCiAgICAgRU5EX0JMT0NLX09CSkNfRVhD
RVBUSU9OUzsgICAgCiB9CiAKLSNpZiBQTEFURk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVT
RU5UQVRJT05fTU9ERSkKKyNlbmRpZiAvLyBFTkFCTEUoVklERU8pCisKKyNpZiBFTkFCTEUoVklE
RU8pICYmIFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKQor
CiB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0VXBQbGF5YmFja0NvbnRyb2xzTWFuYWdlcihIVE1M
TWVkaWFFbGVtZW50JiBlbGVtZW50KQogewogICAgIFttX3dlYlZpZXcgX3NldFVwUGxheWJhY2tD
b250cm9sc01hbmFnZXJGb3JNZWRpYUVsZW1lbnQ6ZWxlbWVudF07CkBAIC05NzUsNTQgKzk4Miw1
NSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6Y2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcigp
CiB7CiAgICAgW21fd2ViVmlldyBfY2xlYXJQbGF5YmFja0NvbnRyb2xzTWFuYWdlcl07CiB9Ci0j
ZW5kaWYgLy8gUExBVEZPUk0oTUFDKQotI2VuZGlmIC8vIEVOQUJMRShWSURFTykKKworI2VuZGlm
CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50Ojpz
dXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wg
d2l0aEtleWJvYXJkKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnN1cHBvcnRzRnVsbFNjcmVlbkZv
ckVsZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgYm9vbCB3aXRoS2V5Ym9hcmQpCiB7CiAg
ICAgU0VMIHNlbGVjdG9yID0gQHNlbGVjdG9yKHdlYlZpZXc6c3VwcG9ydHNGdWxsU2NyZWVuRm9y
RWxlbWVudDp3aXRoS2V5Ym9hcmQ6KTsKICAgICBpZiAoW1ttX3dlYlZpZXcgVUlEZWxlZ2F0ZV0g
cmVzcG9uZHNUb1NlbGVjdG9yOnNlbGVjdG9yXSkKLSAgICAgICAgcmV0dXJuIENhbGxVSURlbGVn
YXRlUmV0dXJuaW5nQm9vbGVhbihmYWxzZSwgbV93ZWJWaWV3LCBzZWxlY3Rvciwga2l0KGNvbnN0
X2Nhc3Q8V2ViQ29yZTo6RWxlbWVudCo+KGVsZW1lbnQpKSwgd2l0aEtleWJvYXJkKTsKKyAgICAg
ICAgcmV0dXJuIENhbGxVSURlbGVnYXRlUmV0dXJuaW5nQm9vbGVhbihmYWxzZSwgbV93ZWJWaWV3
LCBzZWxlY3Rvciwga2l0KGNvbnN0X2Nhc3Q8V2ViQ29yZTo6RWxlbWVudCo+KCZlbGVtZW50KSks
IHdpdGhLZXlib2FyZCk7CiAjaWYgIVBMQVRGT1JNKElPUykKLSAgICByZXR1cm4gW21fd2ViVmll
dyBfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDpjb25zdF9jYXN0PFdlYkNvcmU6OkVsZW1l
bnQqPihlbGVtZW50KSB3aXRoS2V5Ym9hcmQ6d2l0aEtleWJvYXJkXTsKKyAgICByZXR1cm4gW21f
d2ViVmlldyBfc3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudDpjb25zdF9jYXN0PFdlYkNvcmU6
OkVsZW1lbnQqPigmZWxlbWVudCkgd2l0aEtleWJvYXJkOndpdGhLZXlib2FyZF07CiAjZWxzZQog
ICAgIHJldHVybiBOTzsKICNlbmRpZgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZW50ZXJG
dWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBlbGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBT
RUwgc2VsZWN0b3IgPSBAc2VsZWN0b3Iod2ViVmlldzplbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50
Omxpc3RlbmVyOik7CiAgICAgaWYgKFtbbV93ZWJWaWV3IFVJRGVsZWdhdGVdIHJlc3BvbmRzVG9T
ZWxlY3RvcjpzZWxlY3Rvcl0pIHsKLSAgICAgICAgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyKiBs
aXN0ZW5lciA9IFtbV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aEVsZW1l
bnQ6ZWxlbWVudF07Ci0gICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2VsZWN0b3Is
IGtpdChlbGVtZW50KSwgbGlzdGVuZXIpOworICAgICAgICBXZWJLaXRGdWxsU2NyZWVuTGlzdGVu
ZXIqIGxpc3RlbmVyID0gW1tXZWJLaXRGdWxsU2NyZWVuTGlzdGVuZXIgYWxsb2NdIGluaXRXaXRo
RWxlbWVudDomZWxlbWVudF07CisgICAgICAgIENhbGxVSURlbGVnYXRlKG1fd2ViVmlldywgc2Vs
ZWN0b3IsIGtpdCgmZWxlbWVudCksIGxpc3RlbmVyKTsKICAgICAgICAgW2xpc3RlbmVyIHJlbGVh
c2VdOwogICAgIH0KICNpZiAhUExBVEZPUk0oSU9TKQogICAgIGVsc2UKLSAgICAgICAgW21fd2Vi
VmlldyBfZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDplbGVtZW50XTsKKyAgICAgICAgW21fd2Vi
VmlldyBfZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudDomZWxlbWVudF07CiAjZW5kaWYKIH0KIAot
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50KiBl
bGVtZW50KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChF
bGVtZW50JiBlbGVtZW50KQogewogICAgIFNFTCBzZWxlY3RvciA9IEBzZWxlY3Rvcih3ZWJWaWV3
OmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDpsaXN0ZW5lcjopOwogICAgIGlmIChbW21fd2ViVmll
dyBVSURlbGVnYXRlXSByZXNwb25kc1RvU2VsZWN0b3I6c2VsZWN0b3JdKSB7Ci0gICAgICAgIFdl
YktpdEZ1bGxTY3JlZW5MaXN0ZW5lciogbGlzdGVuZXIgPSBbW1dlYktpdEZ1bGxTY3JlZW5MaXN0
ZW5lciBhbGxvY10gaW5pdFdpdGhFbGVtZW50OmVsZW1lbnRdOwotICAgICAgICBDYWxsVUlEZWxl
Z2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBraXQoZWxlbWVudCksIGxpc3RlbmVyKTsKKyAgICAg
ICAgV2ViS2l0RnVsbFNjcmVlbkxpc3RlbmVyKiBsaXN0ZW5lciA9IFtbV2ViS2l0RnVsbFNjcmVl
bkxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aEVsZW1lbnQ6JmVsZW1lbnRdOworICAgICAgICBDYWxs
VUlEZWxlZ2F0ZShtX3dlYlZpZXcsIHNlbGVjdG9yLCBraXQoJmVsZW1lbnQpLCBsaXN0ZW5lcik7
CiAgICAgICAgIFtsaXN0ZW5lciByZWxlYXNlXTsKICAgICB9CiAjaWYgIVBMQVRGT1JNKElPUykK
ICAgICBlbHNlCi0gICAgICAgIFttX3dlYlZpZXcgX2V4aXRGdWxsU2NyZWVuRm9yRWxlbWVudDpl
bGVtZW50XTsKKyAgICAgICAgW21fd2ViVmlldyBfZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50OiZl
bGVtZW50XTsKICNlbmRpZgogfQogCiAjZW5kaWYgLy8gRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQog
CiAjaWYgRU5BQkxFKFNVQlRMRV9DUllQVE8pCisKIGJvb2wgV2ViQ2hyb21lQ2xpZW50Ojp3cmFw
Q3J5cHRvS2V5KGNvbnN0IFZlY3Rvcjx1aW50OF90PiYga2V5LCBWZWN0b3I8dWludDhfdD4mIHdy
YXBwZWRLZXkpIGNvbnN0CiB7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IG1hc3RlcktleTsKQEAgLTEw
NDgsOSArMTA1NiwxMSBAQCBib29sIFdlYkNocm9tZUNsaWVudDo6dW53cmFwQ3J5cHRvS2V5KGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYgd3JhcHBlZEtleSwgVmVjdG9yPAogCiAgICAgcmV0dXJuIHVu
d3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkobWFzdGVyS2V5LCB3cmFwcGVkS2V5LCBrZXkpOwogfQor
CiAjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQorCiB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6aGFuZGxlU2VsZWN0aW9uU2VydmljZUNsaWNrKFdlYkNvcmU6OkZyYW1lU2VsZWN0
aW9uJiBzZWxlY3Rpb24sIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB0ZWxlcGhvbmVOdW1iZXJzLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQpCiB7CiAgICAgW21fd2ViVmlldyBfc2VsZWN0
aW9uU2VydmljZUNvbnRyb2xsZXJdLmhhbmRsZVNlbGVjdGlvblNlcnZpY2VDbGljayhzZWxlY3Rp
b24sIHRlbGVwaG9uZU51bWJlcnMsIHBvaW50KTsKQEAgLTEwNjQsNiArMTA3NCw3IEBAIGJvb2wg
V2ViQ2hyb21lQ2xpZW50OjpoYXNSZWxldmFudFNlbGVjdGlvblNlcnZpY2VzKGJvb2wgaXNUZXh0
T25seSkgY29uc3QKICNlbmRpZgogCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdF
VCkgJiYgIVBMQVRGT1JNKElPUykKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFkZFBsYXliYWNr
VGFyZ2V0UGlja2VyQ2xpZW50KHVpbnQ2NF90IGNvbnRleHRJZCkKIHsKICAgICBbbV93ZWJWaWV3
IF9hZGRQbGF5YmFja1RhcmdldFBpY2tlckNsaWVudDpjb250ZXh0SWRdOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggZjI0ZDY0M2NhMTQxNDMxZWFmNzY4ZDhhN2UyNmZj
MzQwNGFmYWY0Zi4uYmQ4YTRkNTA2YjM5OTJiYWU5MjhkNjg3NmU2YTA0NDYxOTczMDliNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC0zMDIsMTQgKzMwMiwxNCBAQCAr
IChSZWY8V2ViQ29yZTo6RnJhbWU+KV9jcmVhdGVGcmFtZVdpdGhQYWdlOihQYWdlKilwYWdlIGZy
YW1lTmFtZTooY29uc3QgU3RyaW5nJgogICAgIFdlYlZpZXcgKndlYlZpZXcgPSBraXQocGFnZSk7
CiAKICAgICBXZWJGcmFtZSAqZnJhbWUgPSBbW3NlbGYgYWxsb2NdIF9pbml0V2l0aFdlYkZyYW1l
VmlldzpmcmFtZVZpZXcgd2ViVmlldzp3ZWJWaWV3XTsKLSAgICBSZWY8V2ViQ29yZTo6RnJhbWU+
IGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUocGFnZSwgb3duZXJFbGVtZW50LCBuZXcgV2ViRnJh
bWVMb2FkZXJDbGllbnQoZnJhbWUpKTsKKyAgICBhdXRvIGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVh
dGUocGFnZSwgb3duZXJFbGVtZW50LCBuZXcgV2ViRnJhbWVMb2FkZXJDbGllbnQoZnJhbWUpKTsK
ICAgICBbZnJhbWUgcmVsZWFzZV07CiAgICAgZnJhbWUtPl9wcml2YXRlLT5jb3JlRnJhbWUgPSBj
b3JlRnJhbWUucHRyKCk7CiAKICAgICBjb3JlRnJhbWUuZ2V0KCkudHJlZSgpLnNldE5hbWUobmFt
ZSk7CiAgICAgaWYgKG93bmVyRWxlbWVudCkgewogICAgICAgICBBU1NFUlQob3duZXJFbGVtZW50
LT5kb2N1bWVudCgpLmZyYW1lKCkpOwotICAgICAgICBvd25lckVsZW1lbnQtPmRvY3VtZW50KCku
ZnJhbWUoKS0+dHJlZSgpLmFwcGVuZENoaWxkKGNvcmVGcmFtZS5wdHIoKSk7CisgICAgICAgIG93
bmVyRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpLT50cmVlKCkuYXBwZW5kQ2hpbGQoY29yZUZy
YW1lLmdldCgpKTsKICAgICB9CiAKICAgICBjb3JlRnJhbWUuZ2V0KCkuaW5pdCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKaW5kZXggMTRlOTcxMGQxNWQ3OWJmM2I1
NWM0MDA5ZTU2Njg0YTBlZTNkNzgzNy4uMjk4MTUzZGYzYzRhZDdmNzRhYjI1Zjk4MDliZmRkYjIy
ZDgwNzM4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vUGx1Z2lucy9QbHVnaW5WaWV3
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC01
OTMsNyArNTkzLDcgQEAgTlBFcnJvciBQbHVnaW5WaWV3OjpkZXN0cm95U3RyZWFtKE5QU3RyZWFt
KiBzdHJlYW0sIE5QUmVhc29uIHJlYXNvbikKIHZvaWQgUGx1Z2luVmlldzo6c3RhdHVzKGNvbnN0
IGNoYXIqIG1lc3NhZ2UpCiB7CiAgICAgaWYgKFBhZ2UqIHBhZ2UgPSBtX3BhcmVudEZyYW1lLT5w
YWdlKCkpCi0gICAgICAgIHBhZ2UtPmNocm9tZSgpLnNldFN0YXR1c2JhclRleHQobV9wYXJlbnRG
cmFtZS5nZXQoKSwgU3RyaW5nOjpmcm9tVVRGOChtZXNzYWdlKSk7CisgICAgICAgIHBhZ2UtPmNo
cm9tZSgpLnNldFN0YXR1c2JhclRleHQoKm1fcGFyZW50RnJhbWUsIFN0cmluZzo6ZnJvbVVURjgo
bWVzc2FnZSkpOwogfQogCiBOUEVycm9yIFBsdWdpblZpZXc6OnNldFZhbHVlKE5QUFZhcmlhYmxl
IHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSkKQEAgLTc5Myw3ICs3OTMsNyBAQCBQbHVnaW5WaWV3OjpQ
bHVnaW5WaWV3KEZyYW1lKiBwYXJlbnRGcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgUGx1Z2lu
UGFja2FnZSogcAogdm9pZCBQbHVnaW5WaWV3Ojpmb2N1c1BsdWdpbkVsZW1lbnQoKQogewogICAg
IGlmIChQYWdlKiBwYWdlID0gbV9wYXJlbnRGcmFtZS0+cGFnZSgpKQotICAgICAgICBwYWdlLT5m
b2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChtX2VsZW1lbnQsIG1fcGFyZW50RnJh
bWUpOworICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudCht
X2VsZW1lbnQsICptX3BhcmVudEZyYW1lKTsKICAgICBlbHNlCiAgICAgICAgIG1fcGFyZW50RnJh
bWUtPmRvY3VtZW50KCktPnNldEZvY3VzZWRFbGVtZW50KG1fZWxlbWVudCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApp
bmRleCBhNzczYjFhYjE0MTc0ZTAyMGM2MmQ5ZDA0Nzg2ZDJhMjgyMWNiNzg0Li5hYjY1MTQ0NGY5
MjE5YTY3NzZiZjg3ZWIxOGIyODFjYmQyNDEyMGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTE4OSwxNSArMTg5
LDE1IEBAIHN0YXRpYyBDT01QdHI8SVByb3BlcnR5QmFnPiBjcmVhdGVXaW5kb3dGZWF0dXJlc1By
b3BlcnR5QmFnKGNvbnN0IFdpbmRvd0ZlYXR1cmVzCiAgICAgcmV0dXJuIENPTVB0cjxJUHJvcGVy
dHlCYWc+KEFkb3B0Q09NLCBDT01Qcm9wZXJ0eUJhZzxDT01WYXJpYW50Pjo6YWRvcHQobWFwKSk7
CiB9CiAKLVBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwg
Y29uc3QgRnJhbWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywg
Y29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGlvbkFjdGlvbikKK1BhZ2UqIFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVz
dCYsIGNvbnN0IFdpbmRvd0ZlYXR1cmVzJiBmZWF0dXJlcywgY29uc3QgTmF2aWdhdGlvbkFjdGlv
biYgbmF2aWdhdGlvbkFjdGlvbikKIHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IGRlbGVn
YXRlID0gdWlEZWxlZ2F0ZSgpOwogICAgIGlmICghZGVsZWdhdGUpCiAgICAgICAgIHJldHVybiAw
OwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQo
KSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkp
Ci0gICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRDYW5jZWxGdWxsU2NyZWVuKCk7Cisg
ICAgaWYgKGZyYW1lLmRvY3VtZW50KCkgJiYgZnJhbWUuZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVu
dEZ1bGxTY3JlZW5FbGVtZW50KCkpCisgICAgICAgIGZyYW1lLmRvY3VtZW50KCktPndlYmtpdENh
bmNlbEZ1bGxTY3JlZW4oKTsKICNlbmRpZgogCiAgICAgQ09NUHRyPFdlYk11dGFibGVVUkxSZXF1
ZXN0PiByZXF1ZXN0ID0gYWRvcHRDT00oV2ViTXV0YWJsZVVSTFJlcXVlc3Q6OmNyZWF0ZUluc3Rh
bmNlKFJlc291cmNlUmVxdWVzdChuYXZpZ2F0aW9uQWN0aW9uLnVybCgpKSkpOwpAQCAtMzYxLDEy
ICszNjEsMTIgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblJ1bkJlZm9yZVVubG9hZENvbmZp
cm1QYW5lbCgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6
cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgRnJhbWUq
IGZyYW1lKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5l
bChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lJiBmcmFtZSkKIHsKICAgICBCT09MIHJlc3Vs
dCA9IFRSVUU7CiAgICAgSVdlYlVJRGVsZWdhdGUqIHVpOwogICAgIGlmIChTVUNDRUVERUQobV93
ZWJWaWV3LT51aURlbGVnYXRlKCZ1aSkpICYmIHVpKSB7Ci0gICAgICAgIFdlYkZyYW1lKiB3ZWJG
cmFtZSA9IGtpdChmcmFtZSk7CisgICAgICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IGtpdCgmZnJh
bWUpOwogICAgICAgICB1aS0+cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsV2l0aE1lc3NhZ2Uo
bV93ZWJWaWV3LCBCU3RyaW5nKG1lc3NhZ2UpLCB3ZWJGcmFtZSwgJnJlc3VsdCk7CiAgICAgICAg
IHVpLT5SZWxlYXNlKCk7CiAgICAgfQpAQCAtMzkzLDE0ICszOTMsMTQgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmNsb3NlV2luZG93U29vbigpCiAgICAgbV93ZWJWaWV3LT5jbG9zZVdpbmRvd1Nv
b24oKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRBbGVydChGcmFt
ZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZh
U2NyaXB0QWxlcnQoRnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB7CiAgICAgQ09NUHRy
PElXZWJVSURlbGVnYXRlPiB1aTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2ViVmlldy0+dWlEZWxl
Z2F0ZSgmdWkpKSkKICAgICAgICAgdWktPnJ1bkphdmFTY3JpcHRBbGVydFBhbmVsV2l0aE1lc3Nh
Z2UobV93ZWJWaWV3LCBCU3RyaW5nKG1lc3NhZ2UpKTsKIH0KIAotYm9vbCBXZWJDaHJvbWVDbGll
bnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQor
Ym9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lJiwgY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKQogewogICAgIEJPT0wgcmVzdWx0ID0gRkFMU0U7CiAgICAgQ09NUHRy
PElXZWJVSURlbGVnYXRlPiB1aTsKQEAgLTQwOSw3ICs0MDksNyBAQCBib29sIFdlYkNocm9tZUNs
aWVudDo6cnVuSmF2YVNjcmlwdENvbmZpcm0oRnJhbWUqLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2Up
CiAgICAgcmV0dXJuICEhcmVzdWx0OwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2
YVNjcmlwdFByb21wdChGcmFtZSosIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5n
JiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1
bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUmLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0
cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3VsdCkKIHsKICAgICBDT01QdHI8SVdlYlVJ
RGVsZWdhdGU+IHVpOwogICAgIGlmIChGQUlMRUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aSkp
KQpAQCAtNTA4LDcgKzUwOCw3IEBAIFBsYXRmb3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGllbnQ6
OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHZpZXdXaW5kb3c7CiB9CiAK
LXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3Qg
SW50U2l6ZSYpIGNvbnN0Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6Y29udGVudHNTaXplQ2hhbmdl
ZChGcmFtZSYsIGNvbnN0IEludFNpemUmKSBjb25zdAogewogICAgIG5vdEltcGxlbWVudGVkKCk7
CiB9CkBAIC01NDAsNyArNTQwLDcgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVuYXZh
aWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFJlbmRlckVtYmVkZGVkT2JqZWMKICAgICByZXR1
cm4gdWlEZWxlZ2F0ZVByaXZhdGUzOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6dW5hdmFp
bGFibGVQbHVnaW5CdXR0b25DbGlja2VkKEVsZW1lbnQqIGVsZW1lbnQsIFJlbmRlckVtYmVkZGVk
T2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0eVJl
YXNvbikgY29uc3QKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRv
bkNsaWNrZWQoRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVu
YXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdAogewog
ICAgIEFTU0VSVF9VTlVTRUQocGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24sIHBsdWdpblVuYXZh
aWxhYmlsaXR5UmVhc29uID09IFJlbmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5NaXNzaW5nKTsK
IApAQCAtNTUyLDcgKzU1Miw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBs
dWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVyRW1iCiAgICAgaWYgKCF1
aURlbGVnYXRlUHJpdmF0ZTMpCiAgICAgICAgIHJldHVybjsKIAotICAgIENPTVB0cjxJRE9NRWxl
bWVudD4gZShBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoZWxlbWVudCkpOwor
ICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZShBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5z
dGFuY2UoJmVsZW1lbnQpKTsKICAgICB1aURlbGVnYXRlUHJpdmF0ZTMtPmRpZFByZXNzTWlzc2lu
Z1BsdWdpbkJ1dHRvbihlLmdldCgpKTsKIH0KIApAQCAtNTYxLDIxICs1NjEsMjEgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlwLCBUZXh0RGly
ZWN0aW9uKQogICAgIG1fd2ViVmlldy0+c2V0VG9vbFRpcCh0b29sVGlwKTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lKiBmcmFtZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjpwcmludChGcmFtZSYgZnJhbWUpCiB7CiAgICAgQ09NUHRyPElXZWJVSURlbGVnYXRlPiB1aURl
bGVnYXRlOwogICAgIGlmIChTVUNDRUVERUQobV93ZWJWaWV3LT51aURlbGVnYXRlKCZ1aURlbGVn
YXRlKSkpCi0gICAgICAgIHVpRGVsZWdhdGUtPnByaW50RnJhbWUobV93ZWJWaWV3LCBraXQoZnJh
bWUpKTsKKyAgICAgICAgdWlEZWxlZ2F0ZS0+cHJpbnRGcmFtZShtX3dlYlZpZXcsIGtpdCgmZnJh
bWUpKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShG
cmFtZSogZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VJZGVudGlmaWVyLCBEYXRhYmFzZURl
dGFpbHMpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1l
JiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZUlkZW50aWZpZXIsIERhdGFiYXNlRGV0YWls
cykKIHsKLSAgICBDT01QdHI8V2ViU2VjdXJpdHlPcmlnaW4+IG9yaWdpbihBZG9wdENPTSwgV2Vi
U2VjdXJpdHlPcmlnaW46OmNyZWF0ZUluc3RhbmNlKCZmcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJp
dHlPcmlnaW4oKSkpOworICAgIENPTVB0cjxXZWJTZWN1cml0eU9yaWdpbj4gb3JpZ2luKEFkb3B0
Q09NLCBXZWJTZWN1cml0eU9yaWdpbjo6Y3JlYXRlSW5zdGFuY2UoJmZyYW1lLmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCkpKTsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdh
dGU7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUp
KSkgewogICAgICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGVQcml2YXRlPiB1aURlbGVnYXRlUHJp
dmF0ZShRdWVyeSwgdWlEZWxlZ2F0ZSk7CiAgICAgICAgIGlmICh1aURlbGVnYXRlUHJpdmF0ZSkK
LSAgICAgICAgICAgIHVpRGVsZWdhdGVQcml2YXRlLT5leGNlZWRlZERhdGFiYXNlUXVvdGEobV93
ZWJWaWV3LCBraXQoZnJhbWUpLCBvcmlnaW4uZ2V0KCksIEJTdHJpbmcoZGF0YWJhc2VJZGVudGlm
aWVyKSk7CisgICAgICAgICAgICB1aURlbGVnYXRlUHJpdmF0ZS0+ZXhjZWVkZWREYXRhYmFzZVF1
b3RhKG1fd2ViVmlldywga2l0KCZmcmFtZSksIG9yaWdpbi5nZXQoKSwgQlN0cmluZyhkYXRhYmFz
ZUlkZW50aWZpZXIpKTsKICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogcmVt
b3ZlIHRoaXMgd29ya2Fyb3VuZCBvbmNlIHNoaXBwaW5nIFNhZmFyaSBoYXMgdGhlIG5lY2Vzc2Fy
eSBkZWxlZ2F0ZSBpbXBsZW1lbnRlZC4KICAgICAgICAgICAgIFdDSEFSIHBhdGhbTUFYX1BBVEhd
OwpAQCAtNjEzLDcgKzYxMyw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpyZWFjaGVkTWF4QXBw
Q2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGEoU2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnJlYWNo
ZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoU2VjdXJpdHlPcmlnaW4mLCBpbnQ2NF90KQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CkBAIC03MTcsMTIgKzcxNywxMiBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6c2V0TGFzdFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpCiAgICAgbV93
ZWJWaWV3LT5zZXRMYXN0Q3Vyc29yKDo6R2V0Q3Vyc29yKCkpOwogfQogCi12b2lkIFdlYkNocm9t
ZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUqIGZyYW1lLCBHcmFwaGljc0xh
eWVyKiBncmFwaGljc0xheWVyKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFJvb3RHcmFw
aGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBt
X3dlYlZpZXctPnNldFJvb3RDaGlsZExheWVyKGdyYXBoaWNzTGF5ZXIpOwogfQogCi12b2lkIFdl
YkNocm9tZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lKiwgR3Jh
cGhpY3NMYXllciopCit2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlHcmFw
aGljc0xheWVyKEZyYW1lJiwgR3JhcGhpY3NMYXllciopCiB7CiAgICAgLy8gRklYTUU6IElmIHdl
IHdhbnQgdmlldy1yZWxhdGl2ZSBwYWdlIG92ZXJsYXlzIGluIExlZ2FjeSBXZWJLaXQgb24gV2lu
ZG93cywgdGhpcyB3b3VsZCBiZSB0aGUgcGxhY2UgdG8gaG9vayB0aGVtIHVwLgogfQpAQCAtNzUz
LDcgKzc1Myw3IEBAIGJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBwb3J0c1ZpZGVvRnVsbHNjcmVl
bihIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxl
bWVudChIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6ZW50ZXJWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0VsZW1lbnQoSFRNTFZpZGVvRWxlbWVudCYg
dmlkZW9FbGVtZW50LCBIVE1MTWVkaWFFbGVtZW50RW51bXM6OlZpZGVvRnVsbHNjcmVlbk1vZGUp
CiB7CiAgICAgbV93ZWJWaWV3LT5lbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudCh2
aWRlb0VsZW1lbnQpOwogfQpAQCAtNzgxLDU5ICs3ODEsNjEgQEAgYm9vbCBXZWJDaHJvbWVDbGll
bnQ6Omhhc09wZW5lZFBvcHVwKCkgY29uc3QKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlZlB0
cjxQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFBvcHVwTWVudUNs
aWVudCogY2xpZW50KSBjb25zdAorUmVmUHRyPFBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50Ojpj
cmVhdGVQb3B1cE1lbnUoUG9wdXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBQb3B1cE1lbnVXaW4oY2xpZW50KSk7CisgICAgcmV0dXJuIGFkb3B0
UmVmKG5ldyBQb3B1cE1lbnVXaW4oJmNsaWVudCkpOwogfQogCi1SZWZQdHI8U2VhcmNoUG9wdXBN
ZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBvcHVwTWVudShQb3B1cE1lbnVDbGll
bnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVu
dDo6Y3JlYXRlU2VhcmNoUG9wdXBNZW51KFBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAog
ewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51V2luKGNsaWVudCkpOwor
ICAgIHJldHVybiBhZG9wdFJlZihuZXcgU2VhcmNoUG9wdXBNZW51V2luKCZjbGllbnQpKTsKIH0K
IAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjpzdXBw
b3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGNvbnN0IEVsZW1lbnQqIGVsZW1lbnQsIGJvb2wgcmVx
dWVzdGluZ0tleWJvYXJkQWNjZXNzKQorCitib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNG
dWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50LCBib29sIHJlcXVlc3Rp
bmdLZXlib2FyZEFjY2VzcykKIHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdh
dGU7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVpRGVsZWdhdGUoJnVpRGVsZWdhdGUp
KSkgewogICAgICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGVQcml2YXRlND4gdWlEZWxlZ2F0ZVBy
aXZhdGU0KFF1ZXJ5LCB1aURlbGVnYXRlKTsKICAgICAgICAgQk9PTCBzdXBwb3J0cyA9IEZBTFNF
OwotICAgICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00sIERPTUVs
ZW1lbnQ6OmNyZWF0ZUluc3RhbmNlKGNvbnN0X2Nhc3Q8RWxlbWVudCo+KGVsZW1lbnQpKSk7Cisg
ICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxlbWVudChBZG9wdENPTSwgRE9NRWxlbWVu
dDo6Y3JlYXRlSW5zdGFuY2UoY29uc3RfY2FzdDxFbGVtZW50Kj4oJmVsZW1lbnQpKSk7CiAKICAg
ICAgICAgaWYgKHVpRGVsZWdhdGVQcml2YXRlNCAmJiBTVUNDRUVERUQodWlEZWxlZ2F0ZVByaXZh
dGU0LT5zdXBwb3J0c0Z1bGxTY3JlZW5Gb3JFbGVtZW50KGRvbUVsZW1lbnQuZ2V0KCksIHJlcXVl
c3RpbmdLZXlib2FyZEFjY2VzcywgJnN1cHBvcnRzKSkpCiAgICAgICAgICAgICByZXR1cm4gc3Vw
cG9ydHM7CiAgICAgfQogCi0gICAgcmV0dXJuIG1fd2ViVmlldy0+c3VwcG9ydHNGdWxsU2NyZWVu
Rm9yRWxlbWVudChlbGVtZW50LCByZXF1ZXN0aW5nS2V5Ym9hcmRBY2Nlc3MpOworICAgIHJldHVy
biBtX3dlYlZpZXctPnN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoJmVsZW1lbnQsIHJlcXVl
c3RpbmdLZXlib2FyZEFjY2Vzcyk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1
bGxTY3JlZW5Gb3JFbGVtZW50KEVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6ZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogewogICAgIENP
TVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKICAgICBpZiAoU1VDQ0VFREVEKG1fd2Vi
Vmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CiAgICAgICAgIENPTVB0cjxJV2ViVUlE
ZWxlZ2F0ZVByaXZhdGU0PiB1aURlbGVnYXRlUHJpdmF0ZTQoUXVlcnksIHVpRGVsZWdhdGUpOwot
ICAgICAgICBDT01QdHI8SURPTUVsZW1lbnQ+IGRvbUVsZW1lbnQoQWRvcHRDT00sIERPTUVsZW1l
bnQ6OmNyZWF0ZUluc3RhbmNlKGVsZW1lbnQpKTsKKyAgICAgICAgQ09NUHRyPElET01FbGVtZW50
PiBkb21FbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVhdGVJbnN0YW5jZSgmZWxlbWVu
dCkpOwogICAgICAgICBpZiAodWlEZWxlZ2F0ZVByaXZhdGU0ICYmIFNVQ0NFRURFRCh1aURlbGVn
YXRlUHJpdmF0ZTQtPmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZG9tRWxlbWVudC5nZXQoKSkp
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0gCiAKLSAgICBtX3dlYlZpZXctPnNldEZ1bGxT
Y3JlZW5FbGVtZW50KGVsZW1lbnQpOworICAgIG1fd2ViVmlldy0+c2V0RnVsbFNjcmVlbkVsZW1l
bnQoJmVsZW1lbnQpOwogICAgIG1fd2ViVmlldy0+ZnVsbFNjcmVlbkNvbnRyb2xsZXIoKS0+ZW50
ZXJGdWxsU2NyZWVuKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0RnVsbFNjcmVl
bkZvckVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGl0
RnVsbFNjcmVlbkZvckVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIHsKICAgICBDT01QdHI8SVdl
YlVJRGVsZWdhdGU+IHVpRGVsZWdhdGU7CiAgICAgaWYgKFNVQ0NFRURFRChtX3dlYlZpZXctPnVp
RGVsZWdhdGUoJnVpRGVsZWdhdGUpKSkgewogICAgICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGVQ
cml2YXRlND4gdWlEZWxlZ2F0ZVByaXZhdGU0KFF1ZXJ5LCB1aURlbGVnYXRlKTsKLSAgICAgICAg
Q09NUHRyPElET01FbGVtZW50PiBkb21FbGVtZW50KEFkb3B0Q09NLCBET01FbGVtZW50OjpjcmVh
dGVJbnN0YW5jZShlbGVtZW50KSk7CisgICAgICAgIENPTVB0cjxJRE9NRWxlbWVudD4gZG9tRWxl
bWVudChBZG9wdENPTSwgRE9NRWxlbWVudDo6Y3JlYXRlSW5zdGFuY2UoJmVsZW1lbnQpKTsKICAg
ICAgICAgaWYgKHVpRGVsZWdhdGVQcml2YXRlNCAmJiBTVUNDRUVERUQodWlEZWxlZ2F0ZVByaXZh
dGU0LT5leGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoZG9tRWxlbWVudC5nZXQoKSkpKQogICAgICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIEFTU0VSVChlbGVtZW50ID09IG1fd2ViVmlldy0+
ZnVsbFNjcmVlbkVsZW1lbnQoKSk7CisgICAgQVNTRVJUKCZlbGVtZW50ID09IG1fd2ViVmlldy0+
ZnVsbFNjcmVlbkVsZW1lbnQoKSk7CiAgICAgbV93ZWJWaWV3LT5mdWxsU2NyZWVuQ29udHJvbGxl
cigpLT5leGl0RnVsbFNjcmVlbigpOwogfQorCiAjZW5kaWYKIAogdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OkFYU3RhcnRGcmFtZUxvYWQoKQpAQCAtODUyLDEwICs4NTQsMTAgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OkFYRmluaXNoRnJhbWVMb2FkKCkKICAgICAgICAgZGVsZWdhdGUtPmZpcmVGcmFt
ZUxvYWRGaW5pc2hlZEV2ZW50cygpOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxk
VXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyogZnJhbWVWaWV3KSBj
b25zdAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1l
Vmlldyhjb25zdCBGcmFtZVZpZXcmIGZyYW1lVmlldykgY29uc3QKIHsKICNpZiAhVVNFKENBSVJP
KQotICAgIHJldHVybiBmcmFtZVZpZXcgJiYgZnJhbWVWaWV3LT5mcmFtZSgpLmlzTWFpbkZyYW1l
KCk7CisgICAgcmV0dXJuIGZyYW1lVmlldy5mcmFtZSgpLmlzTWFpbkZyYW1lKCk7CiAjZWxzZQog
ICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA5Mjg3MmI0MWMxMmZiMzE1ZTU0MWVj
YmRiOTVkYmNiMTU2NjI3MmRjLi4xODMxMmQ2YmM0NGM2N2NkODQxMjQwMTkwOGZiZDY0MThlZTYy
NTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaApAQCAtMzcsMTM3ICszNywxMzcgQEAgY2xhc3MgV2ViRGVza3RvcE5vdGlmaWNh
dGlvbnNEZWxlZ2F0ZTsKIAogaW50ZXJmYWNlIElXZWJVSURlbGVnYXRlOwogCi1jbGFzcyBXZWJD
aHJvbWVDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6Q2hyb21lQ2xpZW50IHsKK2NsYXNzIFdlYkNo
cm9tZUNsaWVudCBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpDaHJvbWVDbGllbnQgewogcHVibGlj
OgogICAgIFdlYkNocm9tZUNsaWVudChXZWJWaWV3Kik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgY2hy
b21lRGVzdHJveWVkKCk7CisgICAgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKSBmaW5hbDsKIAotICAg
IHZpcnR1YWwgdm9pZCBzZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwot
ICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKTsKKyAgICB2b2lkIHNl
dFdpbmRvd1JlY3QoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JikgZmluYWw7CisgICAgV2ViQ29y
ZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKSBmaW5hbDsKICAgICAKLSAgICB2aXJ0dWFsIFdlYkNv
cmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVj
dCgpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGZvY3VzKCk7Ci0gICAgdmlydHVhbCB2b2lk
IHVuZm9jdXMoKTsKKyAgICB2b2lkIGZvY3VzKCkgZmluYWw7CisgICAgdm9pZCB1bmZvY3VzKCkg
ZmluYWw7CiAKLSAgICB2aXJ0dWFsIGJvb2wgY2FuVGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGly
ZWN0aW9uKTsKLSAgICB2aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0
aW9uKTsKKyAgICBib29sIGNhblRha2VGb2N1cyhXZWJDb3JlOjpGb2N1c0RpcmVjdGlvbikgZmlu
YWw7CisgICAgdm9pZCB0YWtlRm9jdXMoV2ViQ29yZTo6Rm9jdXNEaXJlY3Rpb24pIGZpbmFsOwog
Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChXZWJDb3JlOjpFbGVtZW50
Kik7Ci0gICAgdmlydHVhbCB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUq
KTsKKyAgICB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChXZWJDb3JlOjpFbGVtZW50KikgZmlu
YWw7CisgICAgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1lKikgZmluYWw7
CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFt
ZSosIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5k
b3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKTsKLSAgICB2aXJ0
dWFsIHZvaWQgc2hvdygpOworICAgIFdlYkNvcmU6OlBhZ2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3Jl
OjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QmLCBjb25zdCBXZWJDb3Jl
OjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mKSBmaW5h
bDsKKyAgICB2b2lkIHNob3coKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5Nb2Rh
bCgpOwotICAgIHZpcnR1YWwgdm9pZCBydW5Nb2RhbCgpOworICAgIGJvb2wgY2FuUnVuTW9kYWwo
KSBmaW5hbDsKKyAgICB2b2lkIHJ1bk1vZGFsKCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQg
c2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wpOwotICAgIHZpcnR1YWwgYm9vbCB0b29sYmFyc1Zpc2li
bGUoKTsKKyAgICB2b2lkIHNldFRvb2xiYXJzVmlzaWJsZShib29sKSBmaW5hbDsKKyAgICBib29s
IHRvb2xiYXJzVmlzaWJsZSgpIGZpbmFsOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0
dXNiYXJWaXNpYmxlKGJvb2wpOwotICAgIHZpcnR1YWwgYm9vbCBzdGF0dXNiYXJWaXNpYmxlKCk7
CisgICAgdm9pZCBzZXRTdGF0dXNiYXJWaXNpYmxlKGJvb2wpIGZpbmFsOworICAgIGJvb2wgc3Rh
dHVzYmFyVmlzaWJsZSgpIGZpbmFsOwogICAgIAotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxi
YXJzVmlzaWJsZShib29sKTsKLSAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyc1Zpc2libGUoKTsK
KyAgICB2b2lkIHNldFNjcm9sbGJhcnNWaXNpYmxlKGJvb2wpIGZpbmFsOworICAgIGJvb2wgc2Ny
b2xsYmFyc1Zpc2libGUoKSBmaW5hbDsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TWVudWJh
clZpc2libGUoYm9vbCk7Ci0gICAgdmlydHVhbCBib29sIG1lbnViYXJWaXNpYmxlKCk7CisgICAg
dm9pZCBzZXRNZW51YmFyVmlzaWJsZShib29sKSBmaW5hbDsKKyAgICBib29sIG1lbnViYXJWaXNp
YmxlKCkgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpOworICAg
IHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGFkZE1l
c3NhZ2VUb0NvbnNvbGUoSlNDOjpNZXNzYWdlU291cmNlLCBKU0M6Ok1lc3NhZ2VMZXZlbCwgY29u
c3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNv
bHVtbk51bWJlciwgY29uc3QgV1RGOjpTdHJpbmcmIHVybCk7CisgICAgdm9pZCBhZGRNZXNzYWdl
VG9Db25zb2xlKEpTQzo6TWVzc2FnZVNvdXJjZSwgSlNDOjpNZXNzYWdlTGV2ZWwsIGNvbnN0IFdU
Rjo6U3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCB1bnNpZ25lZCBjb2x1bW5O
dW1iZXIsIGNvbnN0IFdURjo6U3RyaW5nJiB1cmwpIGZpbmFsOwogCi0gICAgdmlydHVhbCBib29s
IGNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpOwotICAgIHZpcnR1YWwgYm9vbCBydW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoY29uc3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIFdlYkNv
cmU6OkZyYW1lKiBmcmFtZSk7CisgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFu
ZWwoKSBmaW5hbDsKKyAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBX
VEY6OlN0cmluZyYgbWVzc2FnZSwgV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKIAotICAgIHZpcnR1
YWwgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKTsKKyAgICB2b2lkIGNsb3NlV2luZG93U29vbigpIGZp
bmFsOwogCi0gICAgdmlydHVhbCB2b2lkIHJ1bkphdmFTY3JpcHRBbGVydChXZWJDb3JlOjpGcmFt
ZSosIGNvbnN0IFdURjo6U3RyaW5nJik7Ci0gICAgdmlydHVhbCBib29sIHJ1bkphdmFTY3JpcHRD
b25maXJtKFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAgICB2aXJ0dWFs
IGJvb2wgcnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3Ry
aW5nJiBtZXNzYWdlLCBjb25zdCBXVEY6OlN0cmluZyYgZGVmYXVsdFZhbHVlLCBXVEY6OlN0cmlu
ZyYgcmVzdWx0KTsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhdHVzYmFyVGV4dChjb25zdCBXVEY6
OlN0cmluZyYpOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lJiwg
Y29uc3QgV1RGOjpTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJt
KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV1RGOjpTdHJpbmcmKSBmaW5hbDsKKyAgICBib29sIHJ1
bkphdmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXVEY6OlN0cmluZyYgbWVz
c2FnZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgV1RGOjpTdHJpbmcmIHJlc3Vs
dCkgZmluYWw7CisgICAgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNvbnN0IFdURjo6U3RyaW5nJikg
ZmluYWw7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OktleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlN
b2RlKCk7CisgICAgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKSBmaW5h
bDsKIAotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmll
dyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVD
b250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOwotICAgIHZpcnR1
YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
Y2xpcFJlY3QpOworICAgIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKSBmaW5hbDsKKyAgICB2b2lkIGludmFsaWRhdGVDb250ZW50
c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGZpbmFsOworICAgIHZvaWQg
c2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0
KSBmaW5hbDsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9Sb290Vmll
dyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0OwotICAgIHZpcnR1YWwgV2ViQ29yZTo6
SW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25zdDsK
LSAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25z
dDsKLSAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hhbmdlZChXZWJDb3JlOjpGcmFtZSos
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdDsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBz
Y3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3QgZmluYWw7Cisg
ICAgV2ViQ29yZTo6SW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSBjb25zdCBmaW5hbDsKKyAgICBQbGF0Zm9ybVBhZ2VDbGllbnQgcGxhdGZvcm1QYWdlQ2xp
ZW50KCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6
OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0IGZpbmFsOwogCi0gICAgdmly
dHVhbCB2b2lkIHNjcm9sbGJhcnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1
bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVW5h
dmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmpl
Y3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQg
dW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJDb3Jl
OjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0
OworICAgIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBmaW5hbCB7IH0KKyAg
ICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1
bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSBmaW5hbDsKKyAgICBib29sIHNob3VsZFVuYXZh
aWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0
OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmluYWw7CisgICAgdm9pZCB1bmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoV2ViQ29yZTo6RWxlbWVudCYsIFdlYkNvcmU6OlJl
bmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgZmlu
YWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXVEY6OlN0cmluZyYsIFdl
YkNvcmU6OlRleHREaXJlY3Rpb24pOworICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXVEY6OlN0
cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rpb24pIGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lk
IHByaW50KFdlYkNvcmU6OkZyYW1lKik7CisgICAgdm9pZCBwcmludChXZWJDb3JlOjpGcmFtZSYp
IGZpbmFsOwogCi0gICAgdmlydHVhbCB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3Jl
OjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKTsK
KyAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdU
Rjo6U3RyaW5nJiwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKIAotICAgIHZpcnR1
YWwgdm9pZCByZWFjaGVkTWF4QXBwQ2FjaGVTaXplKGludDY0X3Qgc3BhY2VOZWVkZWQpOwotICAg
IHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKTsKKyAgICB2b2lkIHJl
YWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkgZmluYWw7CisgICAgdm9p
ZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luJiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVkKSBmaW5hbDsKIAotICAgIHZpcnR1YWwgdm9p
ZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpGaWxlQ2hvb3NlciYpOwot
ICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmlu
Zz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciYpOworICAgIHZvaWQgcnVuT3BlblBhbmVsKFdl
YkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6RmlsZUNob29zZXImKSBmaW5hbDsKKyAgICB2b2lkIGxv
YWRJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFdURjo6U3RyaW5nPiYsIFdlYkNvcmU6OkZpbGVJ
Y29uTG9hZGVyJikgZmluYWw7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdl
YkNvcmU6OkN1cnNvciYpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1v
dXNlTW92ZXMoYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1cnJl
bnRDdXJzb3IoKTsKKyAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBm
aW5hbDsKKyAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKSBmaW5h
bDsKKyAgICB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKSBmaW5hbDsKIAog
ICAgIC8vIFBhc3MgMCBhcyB0aGUgR3JhcGhpY3NMYXllciB0byBkZXRhdGNoIHRoZSByb290IGxh
eWVyLgotICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpG
cmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsKLSAgICB2b2lkIGF0dGFjaFZpZXdPdmVy
bGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBvdmVycmlkZTsKKyAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZy
YW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOworICAgIHZvaWQgYXR0YWNoVmll
d092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIGZpbmFsOwogICAgIC8vIFNldHMgYSBmbGFnIHRvIHNwZWNpZnkgdGhhdCB0aGUgbmV4
dCB0aW1lIGNvbnRlbnQgaXMgZHJhd24gdG8gdGhlIHdpbmRvdywKICAgICAvLyB0aGUgY2hhbmdl
cyBhcHBlYXIgb24gdGhlIHNjcmVlbiBpbiBzeW5jaHJvbnkgd2l0aCB1cGRhdGVzIHRvIEdyYXBo
aWNzTGF5ZXJzLgotICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hy
b25pemF0aW9uKCkgeyB9CisgICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25p
emF0aW9uKCkgZmluYWwgeyB9CiAgICAgLy8gU2V0cyBhIGZsYWcgdG8gc3BlY2lmeSB0aGF0IHRo
ZSB2aWV3IG5lZWRzIHRvIGJlIHVwZGF0ZWQsIHNvIHdlIG5lZWQKICAgICAvLyB0byBkbyBhbiBl
YWdlciBsYXlvdXQgYmVmb3JlIHRoZSBkcmF3aW5nLgotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVs
ZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xh
eWVyRmx1c2goKSBmaW5hbDsKIAogI2lmIFBMQVRGT1JNKFdJTikgJiYgVVNFKEFWRk9VTkRBVElP
TikKLSAgICBXZWJDb3JlOjpHcmFwaGljc0RldmljZUFkYXB0ZXIqIGdyYXBoaWNzRGV2aWNlQWRh
cHRlcigpIGNvbnN0IG92ZXJyaWRlOworICAgIFdlYkNvcmU6OkdyYXBoaWNzRGV2aWNlQWRhcHRl
ciogZ3JhcGhpY3NEZXZpY2VBZGFwdGVyKCkgY29uc3QgZmluYWw7CiAjZW5kaWYKIAotICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNv
bnN0IHsgfQorICAgIHZvaWQgc2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSBjb25zdCBmaW5hbCB7IH0KIAogI2lmIEVOQUJMRShWSURFTykKLSAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNWaWRlb0Z1bGxzY3JlZW4oV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1z
OjpWaWRlb0Z1bGxzY3JlZW5Nb2RlKTsKLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJWaWRlb0Z1bGxz
Y3JlZW5Gb3JWaWRlb0VsZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpOwotICAgIHZp
cnR1YWwgdm9pZCBleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZW9FbGVtZW50KFdlYkNvcmU6OkhU
TUxWaWRlb0VsZW1lbnQmKTsKKyAgICBib29sIHN1cHBvcnRzVmlkZW9GdWxsc2NyZWVuKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnRFbnVtczo6VmlkZW9GdWxsc2NyZWVuTW9kZSkgZmluYWw7Cisg
ICAgdm9pZCBlbnRlclZpZGVvRnVsbHNjcmVlbkZvclZpZGVvRWxlbWVudChXZWJDb3JlOjpIVE1M
VmlkZW9FbGVtZW50JiwgV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudEVudW1zOjpWaWRlb0Z1bGxz
Y3JlZW5Nb2RlKSBmaW5hbDsKKyAgICB2b2lkIGV4aXRWaWRlb0Z1bGxzY3JlZW5Gb3JWaWRlb0Vs
ZW1lbnQoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudCYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBF
TkFCTEUoTk9USUZJQ0FUSU9OUykgfHwgRU5BQkxFKExFR0FDWV9OT1RJRklDQVRJT05TKQotICAg
IHZpcnR1YWwgV2ViQ29yZTo6Tm90aWZpY2F0aW9uQ2xpZW50KiBub3RpZmljYXRpb25QcmVzZW50
ZXIoKSBjb25zdCB7IHJldHVybiByZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok5vdGlmaWNhdGlv
bkNsaWVudCo+KG1fbm90aWZpY2F0aW9uc0RlbGVnYXRlLmdldCgpKTsgfQorICAgIFdlYkNvcmU6
Ok5vdGlmaWNhdGlvbkNsaWVudCogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQqPiht
X25vdGlmaWNhdGlvbnNEZWxlZ2F0ZS5nZXQoKSk7IH0KICNlbmRpZgogCi0gICAgdmlydHVhbCBi
b29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCk7Ci0gICAgdmlydHVhbCBi
b29sIHNlbGVjdEl0ZW1BbGlnbm1lbnRGb2xsb3dzTWVudVdyaXRpbmdEaXJlY3Rpb24oKTsKLSAg
ICB2aXJ0dWFsIGJvb2wgaGFzT3BlbmVkUG9wdXAoKSBjb25zdDsKLSAgICB2aXJ0dWFsIFJlZlB0
cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVD
bGllbnQqKSBjb25zdDsKLSAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1l
bnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25z
dDsKKyAgICBib29sIHNlbGVjdEl0ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgZmluYWw7
CisgICAgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9u
KCkgZmluYWw7CisgICAgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0IGZpbmFsOworICAgIFJl
ZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1l
bnVDbGllbnQmKSBjb25zdCBmaW5hbDsKKyAgICBSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBN
ZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JikgY29u
c3QgZmluYWw7CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAgdmlydHVhbCBib29s
IHN1cHBvcnRzRnVsbFNjcmVlbkZvckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6RWxlbWVudCosIGJv
b2wgd2l0aEtleWJvYXJkKTsKLSAgICB2aXJ0dWFsIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxl
bWVudChXZWJDb3JlOjpFbGVtZW50Kik7Ci0gICAgdmlydHVhbCB2b2lkIGV4aXRGdWxsU2NyZWVu
Rm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Kik7CisgICAgYm9vbCBzdXBwb3J0c0Z1bGxTY3Jl
ZW5Gb3JFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkVsZW1lbnQmLCBib29sIHdpdGhLZXlib2FyZCkg
ZmluYWw7CisgICAgdm9pZCBlbnRlckZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1l
bnQmKSBmaW5hbDsKKyAgICB2b2lkIGV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpF
bGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAotICAgIHZvaWQgd2hlZWxFdmVudEhhbmRsZXJzQ2hh
bmdlZChib29sKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIHdoZWVsRXZlbnRIYW5kbGVyc0NoYW5n
ZWQoYm9vbCkgZmluYWwgeyB9CiAKICAgICBXZWJWaWV3KiB3ZWJWaWV3KCkgeyByZXR1cm4gbV93
ZWJWaWV3OyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgQVhTdGFydEZyYW1lTG9hZCgpOwotICAgIHZp
cnR1YWwgdm9pZCBBWEZpbmlzaEZyYW1lTG9hZCgpOworICAgIHZvaWQgQVhTdGFydEZyYW1lTG9h
ZCgpIGZpbmFsOworICAgIHZvaWQgQVhGaW5pc2hGcmFtZUxvYWQoKSBmaW5hbDsKIAotICAgIGJv
b2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1l
VmlldyopIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9y
RnJhbWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyYpIGNvbnN0IGZpbmFsOwogCiBwcml2
YXRlOgogICAgIENPTVB0cjxJV2ViVUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCmluZGV4IDEwYjVjZWVkYzNlNzBkNTBhZGMyNzgyMTE5NDhlZjkwMGU2MGJjNmYuLjNk
MTNjZDQ0NmM2YWY3N2EwZWNmMGVlZWQ4YzFjOGI1N2I2OWFhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKQEAgLTEwMjUsNyArMTAyNSw3IEBAIFJlZlB0cjxGcmFtZT4gV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmNyZWF0ZUZyYW1lKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIG5hCiAgICAgUmVm
UHRyPEZyYW1lPiBjaGlsZEZyYW1lID0gd2ViRnJhbWUtPmNyZWF0ZVN1YmZyYW1lV2l0aE93bmVy
RWxlbWVudChtX3dlYkZyYW1lLT53ZWJWaWV3KCksIGNvcmVGcmFtZS0+cGFnZSgpLCAmb3duZXJF
bGVtZW50KTsKIAogICAgIGNoaWxkRnJhbWUtPnRyZWUoKS5zZXROYW1lKG5hbWUpOwotICAgIGNv
cmVGcmFtZS0+dHJlZSgpLmFwcGVuZENoaWxkKGNoaWxkRnJhbWUpOworICAgIGNvcmVGcmFtZS0+
dHJlZSgpLmFwcGVuZENoaWxkKCpjaGlsZEZyYW1lKTsKICAgICBjaGlsZEZyYW1lLT5pbml0KCk7
CiAKICAgICBjb3JlRnJhbWUtPmxvYWRlcigpLmxvYWRVUkxJbnRvQ2hpbGRGcmFtZSh1cmwsIHJl
ZmVycmVyLCBjaGlsZEZyYW1lLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggNTE3NWYw
MDJkNjE3MmJlMTYwODAzZjQ3M2UxZGFlMmUwNDM2MWI1Ny4uOTM3MDE5ZGJjYzFjYWQ2MWUyYTJi
MDQ5NTU4NWJhNWNiZDAyZjQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTU4NTMsNyArNTg1
Myw3IEBAIEhSRVNVTFQgV2ViVmlldzo6c3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25O
YW1lKF9Jbl8gQlNUUiBhcHBsaWNhdGlvbk5hbWUsCiBIUkVTVUxUIFdlYlZpZXc6OmNsZWFyRm9j
dXNOb2RlKCkKIHsKICAgICBpZiAobV9wYWdlKQotICAgICAgICBtX3BhZ2UtPmZvY3VzQ29udHJv
bGxlcigpLnNldEZvY3VzZWRFbGVtZW50KDAsIDApOworICAgICAgICBtX3BhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLnNldEZvY3VzZWRFbGVtZW50KG51bGxwdHIsIG1fcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCkuZm9jdXNlZE9yTWFpbkZyYW1lKCkpOwogICAgIHJldHVybiBTX09LOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3Jv
bGxpbmdUcmVlLmNwcAppbmRleCBlMTE1NTI5MTA2NDcwMWI4OGI3YjMyYWJjZDFmMmU2NTQzM2Uy
ODllLi40MjFjNzQ1N2M5MDNiNDdlMmUxYTdiNDg4OTg4MWY1N2MzMGVhYzRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xs
aW5nVHJlZS5jcHAKQEAgLTExMCw3ICsxMTAsNyBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6
OnNjcm9sbGluZ1RyZWVOb2RlUmVxdWVzdHNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRAog
ICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxpbmdUcmVlTm9kZVJlcXVlc3Rz
U2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24sIHJlcHJlc2VudHNQcm9ncmFtbWF0aWNTY3Jv
bGwpOwogfQogCi1QYXNzUmVmUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdU
cmVlOjpjcmVhdGVTY3JvbGxpbmdUcmVlTm9kZShTY3JvbGxpbmdOb2RlVHlwZSBub2RlVHlwZSwg
U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCkKK1JlZjxTY3JvbGxpbmdUcmVlTm9kZT4gUmVtb3RlU2Ny
b2xsaW5nVHJlZTo6Y3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoU2Nyb2xsaW5nTm9kZVR5cGUgbm9k
ZVR5cGUsIFNjcm9sbGluZ05vZGVJRCBub2RlSUQpCiB7CiAgICAgc3dpdGNoIChub2RlVHlwZSkg
ewogICAgIGNhc2UgRnJhbWVTY3JvbGxpbmdOb2RlOgpAQCAtMTI0LDE0ICsxMjQsMTUgQEAgUGFz
c1JlZlB0cjxTY3JvbGxpbmdUcmVlTm9kZT4gUmVtb3RlU2Nyb2xsaW5nVHJlZTo6Y3JlYXRlU2Ny
b2xsaW5nVHJlZU5vZGUoU2Nyb2wKICAgICAgICAgcmV0dXJuIFNjcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVJT1M6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICNlbHNlCiAgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAg
YnJlYWs7CiAjZW5kaWYKICAgICBjYXNlIEZpeGVkTm9kZToKICAgICAgICAgcmV0dXJuIFNjcm9s
bGluZ1RyZWVGaXhlZE5vZGU6OmNyZWF0ZSgqdGhpcywgbm9kZUlEKTsKICAgICBjYXNlIFN0aWNr
eU5vZGU6CiAgICAgICAgIHJldHVybiBTY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZTo6Y3JlYXRlKCp0
aGlzLCBub2RlSUQpOwogICAgIH0KLSAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZTo6Y3JlYXRlKCp0
aGlzLCBub2RlSUQpOwogfQogCiB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OmN1cnJlbnRTbmFw
UG9pbnRJbmRpY2VzRGlkQ2hhbmdlKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIHVuc2lnbmVkIGhv
cml6b250YWwsIHVuc2lnbmVkIHZlcnRpY2FsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAppbmRleCBkNjViMmY1
ZWQ2ZGRmNTdlYzQ0MGRmNDkwZDJlMTE2OGM4ZWMwNWM5Li43MzE4Y2NjODE0Y2E1NzE2ZGM3MGMy
NGI2YzQ0MTc4ZDI1NmNkYTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
U2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuaApAQCAtMzYsNyArMzYsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eTsKIAotY2xhc3MgUmVtb3RlU2Nyb2xsaW5nVHJlZSA6IHB1YmxpYyBXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlIHsKK2NsYXNzIFJlbW90ZVNjcm9sbGluZ1RyZWUgZmluYWwgOiBwdWJsaWMgV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxSZW1vdGVTY3JvbGxp
bmdUcmVlPiBjcmVhdGUoUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSYpOwogICAgIHZp
cnR1YWwgflJlbW90ZVNjcm9sbGluZ1RyZWUoKTsKQEAgLTY1LDcgKzY1LDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkRW5kU2Nyb2xsKCkgb3ZlcnJpZGU7CiAjZW5k
aWYKIAotICAgIFBhc3NSZWZQdHI8V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNj
cm9sbGluZ1RyZWVOb2RlKFdlYkNvcmU6OlNjcm9sbGluZ05vZGVUeXBlLCBXZWJDb3JlOjpTY3Jv
bGxpbmdOb2RlSUQpIG92ZXJyaWRlOworICAgIFJlZjxXZWJDb3JlOjpTY3JvbGxpbmdUcmVlTm9k
ZT4gY3JlYXRlU2Nyb2xsaW5nVHJlZU5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZVR5cGUsIFdl
YkNvcmU6OlNjcm9sbGluZ05vZGVJRCkgb3ZlcnJpZGU7CiAgICAgCiAgICAgUmVtb3RlU2Nyb2xs
aW5nQ29vcmRpbmF0b3JQcm94eSYgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5OwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlLmNwcAppbmRleCA4MDU5YWQ1NWFhZTMyZjhlNTNhNzAxOWI1
Mjg3ZWU4YjA5NDBiOTE0Li5hNzlkMTBhOWQ1MDc3MTA0NWNlNTgzMGVhNTczNzRjODQxODU2Mjdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQ
SS9jL1dLQnVuZGxlUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2UuY3BwCkBAIC0zNjgsMjIgKzM2OCwyMiBAQCBX
S0J1bmRsZUJhY2tGb3J3YXJkTGlzdFJlZiBXS0J1bmRsZVBhZ2VHZXRCYWNrRm9yd2FyZExpc3Qo
V0tCdW5kbGVQYWdlUmVmIHBhZ2VSZQogCiB2b2lkIFdLQnVuZGxlUGFnZUluc3RhbGxQYWdlT3Zl
cmxheShXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQYWdlT3ZlcmxheVJlZiBwYWdl
T3ZlcmxheVJlZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgpLT5wYWdlT3Zl
cmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkodG9JbXBsKHBhZ2VPdmVybGF5UmVm
KS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZh
ZGUpOworICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheSgqdG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92
ZXJsYXkoKSwgV2ViQ29yZTo6UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogfQog
CiB2b2lkIFdLQnVuZGxlUGFnZVVuaW5zdGFsbFBhZ2VPdmVybGF5KFdLQnVuZGxlUGFnZVJlZiBw
YWdlUmVmLCBXS0J1bmRsZVBhZ2VPdmVybGF5UmVmIHBhZ2VPdmVybGF5UmVmKQogewotICAgIHRv
SW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5z
dGFsbFBhZ2VPdmVybGF5KHRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdl
YkNvcmU6OlBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RG9Ob3RGYWRlKTsKKyAgICB0b0ltcGwocGFn
ZVJlZiktPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdl
T3ZlcmxheSgqdG9JbXBsKHBhZ2VPdmVybGF5UmVmKS0+Y29yZU92ZXJsYXkoKSwgV2ViQ29yZTo6
UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogfQogCiB2b2lkIFdLQnVuZGxlUGFn
ZUluc3RhbGxQYWdlT3ZlcmxheVdpdGhBbmltYXRpb24oV0tCdW5kbGVQYWdlUmVmIHBhZ2VSZWYs
IFdLQnVuZGxlUGFnZU92ZXJsYXlSZWYgcGFnZU92ZXJsYXlSZWYpCiB7Ci0gICAgdG9JbXBsKHBh
Z2VSZWYpLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VP
dmVybGF5KHRvSW1wbChwYWdlT3ZlcmxheVJlZiktPmNvcmVPdmVybGF5KCksIFdlYkNvcmU6OlBh
Z2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5tYWluRnJh
bWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5KCp0b0ltcGwo
cGFnZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFk
ZU1vZGU6OkZhZGUpOwogfQogCiB2b2lkIFdLQnVuZGxlUGFnZVVuaW5zdGFsbFBhZ2VPdmVybGF5
V2l0aEFuaW1hdGlvbihXS0J1bmRsZVBhZ2VSZWYgcGFnZVJlZiwgV0tCdW5kbGVQYWdlT3Zlcmxh
eVJlZiBwYWdlT3ZlcmxheVJlZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPm1haW5GcmFtZSgp
LT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSh0b0ltcGwocGFn
ZU92ZXJsYXlSZWYpLT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1v
ZGU6OkZhZGUpOworICAgIHRvSW1wbChwYWdlUmVmKS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5
Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCp0b0ltcGwocGFnZU92ZXJsYXlSZWYp
LT5jb3JlT3ZlcmxheSgpLCBXZWJDb3JlOjpQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOwog
fQogCiB2b2lkIFdLQnVuZGxlUGFnZVNldFRvcE92ZXJoYW5nSW1hZ2UoV0tCdW5kbGVQYWdlUmVm
IHBhZ2VSZWYsIFdLSW1hZ2VSZWYgaW1hZ2VSZWYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL0RlcHJlY2F0ZWRQREZQbHVnaW4ubW0KaW5k
ZXggODUwOWFlNjUwMjRkNGVlNTkyZWQxMjVhMTIxMjE0MGYwN2ZjZTMxZS4uNDFlYjAzOTQ2ZmE5
YTRhYWZkMGY4ZjE2MDliYzEzZjM3NTdmOTVjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9EZXByZWNhdGVkUERGUGx1Z2luLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvRGVwcmVjYXRlZFBERlBsdWdpbi5tbQpA
QCAtODYwLDcgKzg2MCw3IEBAIEpTVmFsdWVSZWYgUERGUGx1Z2luOjpqc1BERkRvY1ByaW50KEpT
Q29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iCiAgICAgaWYgKCFwYWdl
KQogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY3R4KTsKIAotICAgIHBhZ2Ut
PmNocm9tZSgpLnByaW50KGNvcmVGcmFtZSk7CisgICAgcGFnZS0+Y2hyb21lKCkucHJpbnQoKmNv
cmVGcmFtZSk7CiAKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY3R4KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRl
eCA1NjJhOWEyZTE1N2M0M2M1ZGU3NWMzZjcyNTYzMTJkZmU0ZTE1N2JjLi5kOWE0Mjg4NjFiZWM1
NjQ1M2E3ZjBjZTEzZDNiZjk4OTFmM2Q5OTI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCkBAIC0xMTI4LDcgKzExMjgsNyBAQCB2b2lk
IFBsdWdpblZpZXc6OmZvY3VzUGx1Z2luRWxlbWVudCgpCiAgICAgQVNTRVJUKGZyYW1lKCkpOwog
ICAgIAogICAgIGlmIChQYWdlKiBwYWdlID0gZnJhbWUoKS0+cGFnZSgpKQotICAgICAgICBwYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2VkRWxlbWVudChtX3BsdWdpbkVsZW1lbnQuZ2V0
KCksIGZyYW1lKCkpOworICAgICAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5zZXRGb2N1c2Vk
RWxlbWVudChtX3BsdWdpbkVsZW1lbnQuZ2V0KCksICpmcmFtZSgpKTsKICAgICBlbHNlCiAgICAg
ICAgIGZyYW1lKCktPmRvY3VtZW50KCktPnNldEZvY3VzZWRFbGVtZW50KG1fcGx1Z2luRWxlbWVu
dC5nZXQoKSk7CiB9CkBAIC0xNTA4LDcgKzE1MDgsNyBAQCB2b2lkIFBsdWdpblZpZXc6OnNldFN0
YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJiBzdGF0dXNiYXJUZXh0KQogICAgIGlmICghcGFnZSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgcGFnZS0+Y2hyb21lKCkuc2V0U3RhdHVzYmFyVGV4dChm
cmFtZSgpLCBzdGF0dXNiYXJUZXh0KTsKKyAgICBwYWdlLT5jaHJvbWUoKS5zZXRTdGF0dXNiYXJU
ZXh0KCpmcmFtZSgpLCBzdGF0dXNiYXJUZXh0KTsKIH0KIAogYm9vbCBQbHVnaW5WaWV3Ojppc0Fj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRl
eCA0OTgzNGMzYTMwZWJmOTIxNWU5ZjU0ZTkxZGNiMjRlYTEzZjk0Y2VkLi5hOGRmZGZjOTUzMGVl
MDZmMzFjOGY1YjE0ZmQ2NzJmZmUyNGIyM2NiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBA
IC0xMDMsNyArMTAzLDYgQEAgc3RhdGljIGRvdWJsZSBhcmVhKFdlYkZyYW1lKiBmcmFtZSkKICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8ZG91YmxlPihzaXplLmhlaWdodCgpKSAqIHNpemUud2lkdGgo
KTsKIH0KIAotCiBzdGF0aWMgV2ViRnJhbWUqIGZpbmRMYXJnZXN0RnJhbWVJbkZyYW1lU2V0KFdl
YlBhZ2UmIHBhZ2UpCiB7CiAgICAgLy8gQXBwcm94aW1hdGUgd2hhdCBhIHVzZXIgY291bGQgY29u
c2lkZXIgYSBkZWZhdWx0IHRhcmdldCBmcmFtZSBmb3IgYXBwbGljYXRpb24gbWVudSBvcGVyYXRp
b25zLgpAQCAtMTc5LDIwICsxNzgsMjIgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuZm9jdXMo
KQogfQogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZWxlbWVu
dERpZEZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCisKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjplbGVtZW50RGlkRm9jdXMoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBt
X3BhZ2UuZWxlbWVudERpZEZvY3VzKGNvbnN0X2Nhc3Q8V2ViQ29yZTo6Tm9kZSo+KG5vZGUpKTsK
KyAgICBtX3BhZ2UuZWxlbWVudERpZEZvY3VzKCZlbGVtZW50KTsKIH0KIAotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmVsZW1lbnREaWRCbHVyKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit2b2lk
IFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZEJsdXIoV2ViQ29yZTo6RWxlbWVudCYgZWxlbWVu
dCkKIHsKLSAgICBtX3BhZ2UuZWxlbWVudERpZEJsdXIoY29uc3RfY2FzdDxXZWJDb3JlOjpOb2Rl
Kj4obm9kZSkpOworICAgIG1fcGFnZS5lbGVtZW50RGlkQmx1cigmZWxlbWVudCk7CiB9CiAKIHZv
aWQgV2ViQ2hyb21lQ2xpZW50OjptYWtlRmlyc3RSZXNwb25kZXIoKQogewogICAgIG1fcGFnZS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Ok1ha2VGaXJzdFJlc3BvbmRlcigpKTsKLX0gICAg
Cit9CisKICNlbmRpZiAgICAKIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmNhblRha2VGb2N1cyhG
b2N1c0RpcmVjdGlvbikKQEAgLTIyNywxNiArMjI4LDE2IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50
Ojpmb2N1c2VkRnJhbWVDaGFuZ2VkKEZyYW1lKiBmcmFtZSkKICAgICBXZWJQcm9jZXNzOjpzaW5n
bGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkZvY3VzZWRGcmFtZUNoYW5nZWQod2ViRnJhbWUgPyB3ZWJGcmFtZS0+ZnJhbWVJRCgp
IDogMCksIG1fcGFnZS5wYWdlSUQoKSk7CiB9CiAKLVBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3Jl
YXRlV2luZG93KEZyYW1lKiBmcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgV2luZG93RmVhdHVyZXMmIHdpbmRvd0ZlYXR1cmVzLCBjb25zdCBOYXZpZ2F0aW9uQWN0
aW9uJiBuYXZpZ2F0aW9uQWN0aW9uKQorUGFnZSogV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVXaW5k
b3coRnJhbWUmIGZyYW1lLCBjb25zdCBGcmFtZUxvYWRSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBX
aW5kb3dGZWF0dXJlcyYgd2luZG93RmVhdHVyZXMsIGNvbnN0IE5hdmlnYXRpb25BY3Rpb24mIG5h
dmlnYXRpb25BY3Rpb24pCiB7CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIGlmIChm
cmFtZS0+ZG9jdW1lbnQoKSAmJiBmcmFtZS0+ZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxT
Y3JlZW5FbGVtZW50KCkpCi0gICAgICAgIGZyYW1lLT5kb2N1bWVudCgpLT53ZWJraXRDYW5jZWxG
dWxsU2NyZWVuKCk7CisgICAgaWYgKGZyYW1lLmRvY3VtZW50KCkgJiYgZnJhbWUuZG9jdW1lbnQo
KS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkpCisgICAgICAgIGZyYW1lLmRvY3Vt
ZW50KCktPndlYmtpdENhbmNlbEZ1bGxTY3JlZW4oKTsKICNlbmRpZgogCiAgICAgYXV0byYgd2Vi
UHJvY2VzcyA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpOwogCi0gICAgV2ViRnJhbWUqIHdlYkZy
YW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoKmZyYW1lKTsKKyAgICBXZWJGcmFtZSogd2Vi
RnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZShmcmFtZSk7CiAKICAgICBOYXZpZ2F0aW9u
QWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YTsKICAgICBuYXZpZ2F0aW9uQWN0aW9uRGF0
YS5uYXZpZ2F0aW9uVHlwZSA9IG5hdmlnYXRpb25BY3Rpb24udHlwZSgpOwpAQCAtMjUwLDcgKzI1
MSw3IEBAIFBhZ2UqIFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lKiBmcmFtZSwg
Y29uc3QgRnJhbWVMb2FkUmVxdWVzdCYgcmVxdWVzCiAKICAgICB1aW50NjRfdCBuZXdQYWdlSUQg
PSAwOwogICAgIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKLSAgICBpZiAo
IXdlYlByb2Nlc3MucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCBTZWN1cml0
eU9yaWdpbkRhdGE6OmZyb21GcmFtZShmcmFtZSksIHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCks
IHdpbmRvd0ZlYXR1cmVzLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkNyZWF0ZU5ld1BhZ2U6OlJlcGx5KG5ld1BhZ2VJRCwgcGFyYW1ldGVycyksIG1fcGFn
ZS5wYWdlSUQoKSkpCisgICAgaWYgKCF3ZWJQcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9u
KCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2Uod2ViRnJh
bWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoJmZyYW1lKSwgcmVx
dWVzdC5yZXNvdXJjZVJlcXVlc3QoKSwgd2luZG93RmVhdHVyZXMsIG5hdmlnYXRpb25BY3Rpb25E
YXRhKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFnZTo6UmVwbHkobmV3UGFn
ZUlELCBwYXJhbWV0ZXJzKSwgbV9wYWdlLnBhZ2VJRCgpKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBpZiAoIW5ld1BhZ2VJRCkKQEAgLTM2MSw5ICszNjIsOSBAQCBib29sIFdlYkNo
cm9tZUNsaWVudDo6Y2FuUnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKCkKICAgICByZXR1cm4g
bV9wYWdlLmNhblJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbCgpOwogfQogCi1ib29sIFdlYkNo
cm9tZUNsaWVudDo6cnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFN0cmluZyYgbWVz
c2FnZSwgRnJhbWUqIGZyYW1lKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkJlZm9yZVVubG9h
ZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEZyYW1lJiBmcmFtZSkKIHsKLSAg
ICBXZWJGcmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOwor
ICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsK
IAogICAgIGJvb2wgc2hvdWxkQ2xvc2UgPSBmYWxzZTsKIApAQCAtNDAyLDEyICs0MDMsMTIgQEAg
c3RhdGljIGJvb2wgc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncyhGcmFtZSYgZnJhbWUp
CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuSmF2YVNj
cmlwdEFsZXJ0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBhbGVydFRleHQpCit2b2lkIFdl
YkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lJiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiBhbGVydFRleHQpCiB7Ci0gICAgaWYgKHNob3VsZFN1cHByZXNzSmF2YVNjcmlwdERpYWxv
Z3MoKmZyYW1lKSkKKyAgICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncyhmcmFt
ZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1l
Ojpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJh
bWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKICAgICAv
LyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCkBAIC00MTUsMTUgKzQxNiwxNSBAQCB2b2lkIFdl
YkNocm9tZUNsaWVudDo6cnVuSmF2YVNjcmlwdEFsZXJ0KEZyYW1lKiBmcmFtZSwgY29uc3QgU3Ry
aW5nJiBhbGVydFRleHQpCiAKICAgICBIYW5nRGV0ZWN0aW9uRGlzYWJsZXIgaGFuZ0RldGVjdGlv
bkRpc2FibGVyOwogCi0gICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlw
dEFsZXJ0KHdlYkZyYW1lLT5mcmFtZUlEKCksIFNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbUZyYW1l
KGZyYW1lKSwgYWxlcnRUZXh0KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlw
dEFsZXJ0OjpSZXBseSgpLCBtX3BhZ2UucGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCksIElQ
Qzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKTsKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
U3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSdW5KYXZhU2NyaXB0QWxlcnQod2ViRnJhbWUt
PmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoJmZyYW1lKSwgYWxlcnRU
ZXh0KSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdEFsZXJ0OjpSZXBseSgp
LCBtX3BhZ2UucGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRp
b246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKTsKIH0KIAotYm9vbCBXZWJDaHJv
bWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25maXJtKEZy
YW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogewotICAgIGlmIChzaG91bGRTdXBw
cmVzc0phdmFTY3JpcHREaWFsb2dzKCpmcmFtZSkpCisgICAgaWYgKHNob3VsZFN1cHByZXNzSmF2
YVNjcmlwdERpYWxvZ3MoZnJhbWUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAgIFdl
YkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKICAgICBB
U1NFUlQod2ViRnJhbWUpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBidW5kbGUgY2xpZW50LgpAQCAt
NDMyLDE4ICs0MzMsMTggQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRDb25m
aXJtKEZyYW1lKiBmcmFtZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKQogICAgIEhhbmdEZXRlY3Rp
b25EaXNhYmxlciBoYW5nRGV0ZWN0aW9uRGlzYWJsZXI7CiAKICAgICBib29sIHJlc3VsdCA9IGZh
bHNlOwotICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENv
bmZpcm0od2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUo
ZnJhbWUpLCBtZXNzYWdlKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENv
bmZpcm06OlJlcGx5KHJlc3VsdCksIG1fcGFnZS5wYWdlSUQoKSwgU2Vjb25kczo6aW5maW5pdHko
KSwgSVBDOjpTZW5kU3luY09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQp
KQorICAgIGlmICghV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rp
b24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdENvbmZp
cm0od2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoJmZy
YW1lKSwgbWVzc2FnZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkphdmFTY3JpcHRDb25m
aXJtOjpSZXBseShyZXN1bHQpLCBtX3BhZ2UucGFnZUlEKCksIFNlY29uZHM6OmluZmluaXR5KCks
IElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgZGVmYXVsdFZhbHVlLCBTdHJpbmcmIHJlc3Vs
dCkKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjpydW5KYXZhU2NyaXB0UHJvbXB0KEZyYW1lJiBmcmFt
ZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgU3Ry
aW5nJiByZXN1bHQpCiB7Ci0gICAgaWYgKHNob3VsZFN1cHByZXNzSmF2YVNjcmlwdERpYWxvZ3Mo
KmZyYW1lKSkKKyAgICBpZiAoc2hvdWxkU3VwcHJlc3NKYXZhU2NyaXB0RGlhbG9ncyhmcmFtZSkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZy
YW1lOjpmcm9tQ29yZUZyYW1lKCpmcmFtZSk7CisgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2Vi
RnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogICAgIEFTU0VSVCh3ZWJGcmFtZSk7CiAKICAg
ICAvLyBOb3RpZnkgdGhlIGJ1bmRsZSBjbGllbnQuCkBAIC00NTEsNyArNDUyLDcgQEAgYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OnJ1bkphdmFTY3JpcHRQcm9tcHQoRnJhbWUqIGZyYW1lLCBjb25zdCBT
dHJpbmcmIG1lc3NhZ2UsIGMKIAogICAgIEhhbmdEZXRlY3Rpb25EaXNhYmxlciBoYW5nRGV0ZWN0
aW9uRGlzYWJsZXI7CiAKLSAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFBy
b2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJ1bkph
dmFTY3JpcHRQcm9tcHQod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpm
cm9tRnJhbWUoZnJhbWUpLCBtZXNzYWdlLCBkZWZhdWx0VmFsdWUpLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpSdW5KYXZhU2NyaXB0UHJvbXB0OjpSZXBseShyZXN1bHQpLCBtX3BhZ2UucGFnZUlE
KCksIFNlY29uZHM6OmluZmluaXR5KCksIElQQzo6U2VuZFN5bmNPcHRpb246OkluZm9ybVBsYXRm
b3JtUHJvY2Vzc1dpbGxTdXNwZW5kKSkKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OlJ1bkphdmFTY3JpcHRQcm9tcHQod2ViRnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmln
aW5EYXRhOjpmcm9tRnJhbWUoJmZyYW1lKSwgbWVzc2FnZSwgZGVmYXVsdFZhbHVlKSwgTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UnVuSmF2YVNjcmlwdFByb21wdDo6UmVwbHkocmVzdWx0KSwgbV9w
YWdlLnBhZ2VJRCgpLCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJ
bmZvcm1QbGF0Zm9ybVByb2Nlc3NXaWxsU3VzcGVuZCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIHJldHVybiAhcmVzdWx0LmlzTnVsbCgpOwpAQCAtNTU2LDcgKzU1Nyw3IEBAIFBsYXRm
b3JtUGFnZUNsaWVudCBXZWJDaHJvbWVDbGllbnQ6OnBsYXRmb3JtUGFnZUNsaWVudCgpIGNvbnN0
CiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVD
aGFuZ2VkKEZyYW1lKiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uc3QKK3ZvaWQgV2Vi
Q2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lJiBmcmFtZSwgY29uc3QgSW50
U2l6ZSYgc2l6ZSkgY29uc3QKIHsKICAgICBpZiAoIW1fcGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5n
cygpLmZyYW1lRmxhdHRlbmluZ0VuYWJsZWQoKSkgewogICAgICAgICBXZWJGcmFtZSogbGFyZ2Vz
dEZyYW1lID0gZmluZExhcmdlc3RGcmFtZUluRnJhbWVTZXQobV9wYWdlKTsKQEAgLTU2NiwxNCAr
NTY3LDE0IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1l
KiBmcmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgY29uCiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICBpZiAoJmZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpICE9IGZyYW1lKQorICAgIGlmICgmZnJh
bWUucGFnZSgpLT5tYWluRnJhbWUoKSAhPSAmZnJhbWUpCiAgICAgICAgIHJldHVybjsKIAogICAg
IG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENoYW5nZUNvbnRlbnRTaXpl
KHNpemUpKTsKIAogICAgIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5tYWluRnJhbWVDb250ZW50U2l6
ZUNoYW5nZWQoc2l6ZSk7CiAKLSAgICBGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGZyYW1lLT52aWV3
KCk7CisgICAgRnJhbWVWaWV3KiBmcmFtZVZpZXcgPSBmcmFtZS52aWV3KCk7CiAgICAgaWYgKGZy
YW1lVmlldyAmJiAhZnJhbWVWaWV3LT5kZWxlZ2F0ZXNTY3JvbGxpbmcoKSkgIHsKICAgICAgICAg
Ym9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyID0gZnJhbWVWaWV3LT5ob3Jpem9udGFsU2Nyb2xs
YmFyKCk7CiAgICAgICAgIGJvb2wgaGFzVmVydGljYWxTY3JvbGxiYXIgPSBmcmFtZVZpZXctPnZl
cnRpY2FsU2Nyb2xsYmFyKCk7CkBAIC02MTEsMjEgKzYxMiwyMSBAQCBib29sIFdlYkNocm9tZUNs
aWVudDo6c2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVyRW1iZWRk
ZWRPYmplYwogICAgIHJldHVybiBmYWxzZTsKIH0KICAgICAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50
Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCogZWxlbWVudCwgUmVuZGVy
RW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uIHBsdWdpblVuYXZhaWxh
YmlsaXR5UmVhc29uKSBjb25zdAordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnVuYXZhaWxhYmxlUGx1
Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6
UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gcGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNv
bnN0CiB7CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgQVNTRVJUKGVsZW1l
bnQtPmhhc1RhZ05hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGVtYmVkVGFn
KSB8fCBlbGVtZW50LT5oYXNUYWdOYW1lKGFwcGxldFRhZykpOworICAgIEFTU0VSVChlbGVtZW50
Lmhhc1RhZ05hbWUob2JqZWN0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZW1iZWRUYWcpIHx8
IGVsZW1lbnQuaGFzVGFnTmFtZShhcHBsZXRUYWcpKTsKICAgICBBU1NFUlQocGx1Z2luVW5hdmFp
bGFiaWxpdHlSZWFzb24gPT0gUmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpbk1pc3NpbmcgfHwg
cGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24gPT0gUmVuZGVyRW1iZWRkZWRPYmplY3Q6Okluc2Vj
dXJlUGx1Z2luVmVyc2lvbiB8fCBwbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbik7CiAKLSAgICBI
VE1MUGx1Z0luSW1hZ2VFbGVtZW50KiBwbHVnaW5FbGVtZW50ID0gc3RhdGljX2Nhc3Q8SFRNTFBs
dWdJbkltYWdlRWxlbWVudCo+KGVsZW1lbnQpOworICAgIGF1dG8mIHBsdWdpbkVsZW1lbnQgPSBk
b3duY2FzdDxIVE1MUGx1Z0luSW1hZ2VFbGVtZW50PihlbGVtZW50KTsKIAotICAgIFN0cmluZyBm
cmFtZVVSTFN0cmluZyA9IHBsdWdpbkVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKS0+bG9hZGVy
KCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2VVUkwoKS5zdHJpbmcoKTsKKyAgICBTdHJpbmcg
ZnJhbWVVUkxTdHJpbmcgPSBwbHVnaW5FbGVtZW50LmRvY3VtZW50KCkuZnJhbWUoKS0+bG9hZGVy
KCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2VVUkwoKS5zdHJpbmcoKTsKICAgICBTdHJpbmcg
cGFnZVVSTFN0cmluZyA9IG1fcGFnZS5tYWluRnJhbWUoKS0+bG9hZGVyKCkuZG9jdW1lbnRMb2Fk
ZXIoKS0+cmVzcG9uc2VVUkwoKS5zdHJpbmcoKTsKLSAgICBTdHJpbmcgcGx1Z2luVVJMU3RyaW5n
ID0gcGx1Z2luRWxlbWVudC0+ZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChwbHVnaW5FbGVtZW50LT51
cmwoKSkuc3RyaW5nKCk7Ci0gICAgVVJMIHBsdWdpbnNwYWdlQXR0cmlidXRlVVJMID0gZWxlbWVu
dC0+ZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFj
ZXMocGx1Z2luRWxlbWVudC0+Z2V0QXR0cmlidXRlKHBsdWdpbnNwYWdlQXR0cikpKTsKKyAgICBT
dHJpbmcgcGx1Z2luVVJMU3RyaW5nID0gcGx1Z2luRWxlbWVudC5kb2N1bWVudCgpLmNvbXBsZXRl
VVJMKHBsdWdpbkVsZW1lbnQudXJsKCkpLnN0cmluZygpOworICAgIFVSTCBwbHVnaW5zcGFnZUF0
dHJpYnV0ZVVSTCA9IHBsdWdpbkVsZW1lbnQuZG9jdW1lbnQoKS5jb21wbGV0ZVVSTChzdHJpcExl
YWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMocGx1Z2luRWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKHBsdWdpbnNwYWdlQXR0cikpKTsKICAgICBpZiAoIXBsdWdpbnNwYWdl
QXR0cmlidXRlVVJMLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSkKICAgICAgICAgcGx1Z2luc3Bh
Z2VBdHRyaWJ1dGVVUkwgPSBVUkwoKTsKLSAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpVbmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQocGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24sIHBsdWdpbkVsZW1lbnQtPnNlcnZpY2VUeXBlKCksIHBsdWdpblVSTFN0cmluZywg
cGx1Z2luc3BhZ2VBdHRyaWJ1dGVVUkwuc3RyaW5nKCksIGZyYW1lVVJMU3RyaW5nLCBwYWdlVVJM
U3RyaW5nKSk7CisgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6VW5hdmFp
bGFibGVQbHVnaW5CdXR0b25DbGlja2VkKHBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uLCBwbHVn
aW5FbGVtZW50LnNlcnZpY2VUeXBlKCksIHBsdWdpblVSTFN0cmluZywgcGx1Z2luc3BhZ2VBdHRy
aWJ1dGVVUkwuc3RyaW5nKCksIGZyYW1lVVJMU3RyaW5nLCBwYWdlVVJMU3RyaW5nKSk7CiAjZWxz
ZQogICAgIFVOVVNFRF9QQVJBTShlbGVtZW50KTsKICAgICBVTlVTRURfUEFSQU0ocGx1Z2luVW5h
dmFpbGFiaWxpdHlSZWFzb24pOwpAQCAtNjYwLDkgKzY2MSw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjpzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikKICAg
ICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpTZXRUb29sVGlwKG1fY2FjaGVk
VG9vbFRpcCkpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJhbWUqIGZyYW1l
KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lJiBmcmFtZSkKIHsKLSAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAgIFdl
YkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKICAgICBB
U1NFUlQod2ViRnJhbWUpOwogCiAjaWYgUExBVEZPUk0oR1RLKSAmJiBIQVZFKEdUS19VTklYX1BS
SU5USU5HKQpAQCAtNjg4LDEyICs2ODksMTIgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByaW50
KEZyYW1lKiBmcmFtZSkKICAgICBtX3BhZ2Uuc2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UHJpbnRGcmFtZSh3ZWJGcmFtZS0+ZnJhbWVJRCgpKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UHJpbnRGcmFtZTo6UmVwbHkoKSwgU2Vjb25kczo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3lu
Y09wdGlvbjo6SW5mb3JtUGxhdGZvcm1Qcm9jZXNzV2lsbFN1c3BlbmQpOwogfQogCi12b2lkIFdl
YkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lKiBmcmFtZSwgY29uc3Qg
U3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscyBkZXRhaWxzKQordm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmV4Y2VlZGVkRGF0YWJhc2VRdW90YShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VOYW1lLCBEYXRhYmFzZURldGFpbHMgZGV0YWlscykKIHsKLSAgICBXZWJG
cmFtZSogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZSgqZnJhbWUpOworICAgIFdl
YkZyYW1lKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKICAgICBB
U1NFUlQod2ViRnJhbWUpOwogICAgIAotICAgIGF1dG8mIG9yaWdpbiA9IGZyYW1lLT5kb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpOworICAgIGF1dG8mIG9yaWdpbiA9IGZyYW1lLmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCk7CiAgICAgYXV0byBvcmlnaW5EYXRhID0gU2VjdXJpdHlPcmln
aW5EYXRhOjpmcm9tU2VjdXJpdHlPcmlnaW4ob3JpZ2luKTsKICAgICBhdXRvJiB0cmFja2VyID0g
RGF0YWJhc2VUcmFja2VyOjpzaW5nbGV0b24oKTsKICAgICBhdXRvIGN1cnJlbnRRdW90YSA9IHRy
YWNrZXIucXVvdGEob3JpZ2luRGF0YSk7CkBAIC03MTYsOSArNzE3LDkgQEAgdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCkKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2Fj
aGVPcmlnaW5RdW90YShTZWN1cml0eU9yaWdpbiogb3JpZ2luLCBpbnQ2NF90IHRvdGFsQnl0ZXNO
ZWVkZWQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmln
aW5RdW90YShTZWN1cml0eU9yaWdpbiYgb3JpZ2luLCBpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQp
CiB7Ci0gICAgUmVmUHRyPEFQSTo6U2VjdXJpdHlPcmlnaW4+IHNlY3VyaXR5T3JpZ2luID0gQVBJ
OjpTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhvcmlnaW4tPnRvU3RyaW5nKCkpOwor
ICAgIFJlZlB0cjxBUEk6OlNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbiA9IEFQSTo6U2Vj
dXJpdHlPcmlnaW46OmNyZWF0ZUZyb21TdHJpbmcob3JpZ2luLnRvU3RyaW5nKCkpOwogICAgIGlm
IChtX3BhZ2UuaW5qZWN0ZWRCdW5kbGVVSUNsaWVudCgpLmRpZFJlYWNoQXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKCZtX3BhZ2UsIHNlY3VyaXR5T3JpZ2luLmdldCgpLCB0b3RhbEJ5dGVzTmVl
ZGVkKSkKICAgICAgICAgcmV0dXJuOwogCkBAIC03MjksMTcgKzczMCwxOSBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShTZWN1cml0eU9y
aWdpbiogb3JpZ2luLAogCiAgICAgdWludDY0X3QgbmV3UXVvdGEgPSAwOwogICAgIFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKAotICAg
ICAgICBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5T3JpZ2luKCpv
cmlnaW4pLmRhdGFiYXNlSWRlbnRpZmllcigpLCBjdXJyZW50UXVvdGEsIHRvdGFsQnl0ZXNOZWVk
ZWQpLAorICAgICAgICBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25D
YWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YTo6ZnJvbVNlY3VyaXR5
T3JpZ2luKG9yaWdpbikuZGF0YWJhc2VJZGVudGlmaWVyKCksIGN1cnJlbnRRdW90YSwgdG90YWxC
eXRlc05lZWRlZCksCiAgICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBs
aWNhdGlvbkNhY2hlT3JpZ2luUXVvdGE6OlJlcGx5KG5ld1F1b3RhKSwgbV9wYWdlLnBhZ2VJRCgp
LCBTZWNvbmRzOjppbmZpbml0eSgpLCBJUEM6OlNlbmRTeW5jT3B0aW9uOjpJbmZvcm1QbGF0Zm9y
bVByb2Nlc3NXaWxsU3VzcGVuZCk7CiAKLSAgICBjYWNoZVN0b3JhZ2Uuc3RvcmVVcGRhdGVkUXVv
dGFGb3JPcmlnaW4ob3JpZ2luLCBuZXdRdW90YSk7CisgICAgY2FjaGVTdG9yYWdlLnN0b3JlVXBk
YXRlZFF1b3RhRm9yT3JpZ2luKCZvcmlnaW4sIG5ld1F1b3RhKTsKIH0KIAogI2lmIEVOQUJMRShE
QVNIQk9BUkRfU1VQUE9SVCkKKwogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmFubm90YXRlZFJlZ2lv
bnNDaGFuZ2VkKCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQorCiAjZW5kaWYKIAogYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFJlcGxhY2VXaXRoR2VuZXJhdGVkRmlsZUZvclVwbG9h
ZChjb25zdCBTdHJpbmcmIHBhdGgsIFN0cmluZyYgZ2VuZXJhdGVkRmlsZW5hbWUpCkBAIC03NTQs
MTAgKzc1NywxMiBAQCBTdHJpbmcgV2ViQ2hyb21lQ2xpZW50OjpnZW5lcmF0ZVJlcGxhY2VtZW50
RmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCiB9CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xP
UikKLXN0ZDo6dW5pcXVlX3B0cjxDb2xvckNob29zZXI+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRl
Q29sb3JDaG9vc2VyKENvbG9yQ2hvb3NlckNsaWVudCogY2xpZW50LCBjb25zdCBDb2xvciYgaW5p
dGlhbENvbG9yKQorCitzdGQ6OnVuaXF1ZV9wdHI8Q29sb3JDaG9vc2VyPiBXZWJDaHJvbWVDbGll
bnQ6OmNyZWF0ZUNvbG9yQ2hvb3NlcihDb2xvckNob29zZXJDbGllbnQmIGNsaWVudCwgY29uc3Qg
Q29sb3ImIGluaXRpYWxDb2xvcikKIHsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxXZWJD
b2xvckNob29zZXI+KCZtX3BhZ2UsIGNsaWVudCwgaW5pdGlhbENvbG9yKTsKKyAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxXZWJDb2xvckNob29zZXI+KCZtX3BhZ2UsICZjbGllbnQsIGluaXRp
YWxDb2xvcik7CiB9CisKICNlbmRpZgogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6cnVuT3BlblBh
bmVsKEZyYW1lJiBmcmFtZSwgRmlsZUNob29zZXImIGZpbGVDaG9vc2VyKQpAQCAtODMyLDE0ICs4
MzcsMTQgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6Omhhc09wZW5lZFBvcHVwKCkgY29uc3QKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKLVJlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCogY2xpZW50
KSBjb25zdAorUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gV2ViQ2hyb21lQ2xpZW50OjpjcmVh
dGVQb3B1cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50JiBjbGllbnQpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIFdlYlBvcHVwTWVudTo6Y3JlYXRlKCZtX3BhZ2UsIGNsaWVudCk7CisgICAgcmV0
dXJuIFdlYlBvcHVwTWVudTo6Y3JlYXRlKCZtX3BhZ2UsICZjbGllbnQpOwogfQogCi1SZWZQdHI8
V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNlYXJjaFBv
cHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqIGNsaWVudCkgY29uc3QKK1JlZlB0cjxX
ZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlU2VhcmNoUG9w
dXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNsaWVudCYgY2xpZW50KSBjb25zdAogewotICAgIHJl
dHVybiBXZWJTZWFyY2hQb3B1cE1lbnU6OmNyZWF0ZSgmbV9wYWdlLCBjbGllbnQpOworICAgIHJl
dHVybiBXZWJTZWFyY2hQb3B1cE1lbnU6OmNyZWF0ZSgmbV9wYWdlLCAmY2xpZW50KTsKIH0KIAog
R3JhcGhpY3NMYXllckZhY3RvcnkqIFdlYkNocm9tZUNsaWVudDo6Z3JhcGhpY3NMYXllckZhY3Rv
cnkoKSBjb25zdApAQCAtODU4LDcgKzg2Myw3IEBAIFJlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVm
cmVzaE1vbml0b3I+IFdlYkNocm9tZUNsaWVudDo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pCiAK
ICNlbmRpZgogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIo
RnJhbWUqLCBHcmFwaGljc0xheWVyKiBsYXllcikKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjphdHRh
Y2hSb290R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqIGxheWVyKQogewogICAg
IGlmIChsYXllcikKICAgICAgICAgbV9wYWdlLmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01v
ZGUobGF5ZXIpOwpAQCAtODY2LDEwICs4NzEsMTAgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmF0
dGFjaFJvb3RHcmFwaGljc0xheWVyKEZyYW1lKiwgR3JhcGhpY3NMYXllciogbGF5ZXIpCiAgICAg
ICAgIG1fcGFnZS5leGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihGcmFtZSogZnJh
bWUsIEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEZyYW1lJiBmcmFtZSwgR3JhcGhpY3NMYXll
ciogZ3JhcGhpY3NMYXllcikKIHsKICAgICBpZiAoYXV0byBkcmF3aW5nQXJlYSA9IG1fcGFnZS5k
cmF3aW5nQXJlYSgpKQotICAgICAgICBkcmF3aW5nQXJlYS0+YXR0YWNoVmlld092ZXJsYXlHcmFw
aGljc0xheWVyKGZyYW1lLCBncmFwaGljc0xheWVyKTsKKyAgICAgICAgZHJhd2luZ0FyZWEtPmF0
dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcigmZnJhbWUsIGdyYXBoaWNzTGF5ZXIpOwogfQog
CiB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXph
dGlvbigpCkBAIC04OTgsOSArOTAzLDkgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmxheWVyVHJl
ZVN0YXRlSXNGcm96ZW4oKSBjb25zdAogCiAjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKIAot
UGFzc1JlZlB0cjxTY3JvbGxpbmdDb29yZGluYXRvcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVT
Y3JvbGxpbmdDb29yZGluYXRvcihQYWdlKiBwYWdlKSBjb25zdAorUmVmUHRyPFNjcm9sbGluZ0Nv
b3JkaW5hdG9yPiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBh
Z2UmIHBhZ2UpIGNvbnN0CiB7Ci0gICAgQVNTRVJUKG1fcGFnZS5jb3JlUGFnZSgpID09IHBhZ2Up
OworICAgIEFTU0VSVF9VTlVTRUQocGFnZSwgbV9wYWdlLmNvcmVQYWdlKCkgPT0gJnBhZ2UpOwog
ICAgIGlmIChtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+dHlwZSgpICE9IERyYXdpbmdBcmVhVHlwZVJl
bW90ZUxheWVyVHJlZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgcmV0dXJuIFJlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjcmVhdGUoJm1fcGFnZSk7CkBAIC05NDksMTkgKzk1NCwx
OSBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdFZpZGVvRnVsbHNjcmVlblRvTW9kZVdpdGhv
dXRBbmltYXRpb24oV2ViQ29yZTo6SFRNTFZpZAogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChj
b25zdCBXZWJDb3JlOjpFbGVtZW50KiwgYm9vbCB3aXRoS2V5Ym9hcmQpCitib29sIFdlYkNocm9t
ZUNsaWVudDo6c3VwcG9ydHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVt
ZW50JiwgYm9vbCB3aXRoS2V5Ym9hcmQpCiB7CiAgICAgcmV0dXJuIG1fcGFnZS5mdWxsU2NyZWVu
TWFuYWdlcigpLT5zdXBwb3J0c0Z1bGxTY3JlZW4od2l0aEtleWJvYXJkKTsKIH0KIAotdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVu
dCogZWxlbWVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjplbnRlckZ1bGxTY3JlZW5Gb3JFbGVt
ZW50KFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9wYWdlLmZ1bGxTY3JlZW5N
YW5hZ2VyKCktPmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoZWxlbWVudCk7CisgICAgbV9wYWdl
LmZ1bGxTY3JlZW5NYW5hZ2VyKCktPmVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnQoJmVsZW1lbnQp
OwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KFdl
YkNvcmU6OkVsZW1lbnQqIGVsZW1lbnQpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhpdEZ1bGxT
Y3JlZW5Gb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgbV9wYWdl
LmZ1bGxTY3JlZW5NYW5hZ2VyKCktPmV4aXRGdWxsU2NyZWVuRm9yRWxlbWVudChlbGVtZW50KTsK
KyAgICBtX3BhZ2UuZnVsbFNjcmVlbk1hbmFnZXIoKS0+ZXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50
KCZlbGVtZW50KTsKIH0KIAogI2VuZGlmCkBAIC0xMDQ5LDI5ICsxMDU0LDI5IEBAIHZvaWQgV2Vi
Q2hyb21lQ2xpZW50OjpkaXNhYmxlU3VkZGVuVGVybWluYXRpb24oKQogICAgIG1fcGFnZS5zZW5k
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkRpc2FibGVTdWRkZW5UZXJtaW5hdGlvbigpKTsK
IH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmRpZEFkZEhlYWRlckxheWVyKEdyYXBoaWNzTGF5
ZXIqIGhlYWRlclBhcmVudCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpkaWRBZGRIZWFkZXJMYXll
cihHcmFwaGljc0xheWVyJiBoZWFkZXJQYXJlbnQpCiB7CiAjaWYgRU5BQkxFKFJVQkJFUl9CQU5E
SU5HKQogICAgIGlmIChQYWdlQmFubmVyKiBiYW5uZXIgPSBtX3BhZ2UuaGVhZGVyUGFnZUJhbm5l
cigpKQotICAgICAgICBiYW5uZXItPmRpZEFkZFBhcmVudExheWVyKGhlYWRlclBhcmVudCk7Cisg
ICAgICAgIGJhbm5lci0+ZGlkQWRkUGFyZW50TGF5ZXIoJmhlYWRlclBhcmVudCk7CiAjZWxzZQog
ICAgIFVOVVNFRF9QQVJBTShoZWFkZXJQYXJlbnQpOwogI2VuZGlmCiB9CiAKLXZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpkaWRBZGRGb290ZXJMYXllcihHcmFwaGljc0xheWVyKiBmb290ZXJQYXJlbnQp
Cit2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkQWRkRm9vdGVyTGF5ZXIoR3JhcGhpY3NMYXllciYg
Zm9vdGVyUGFyZW50KQogewogI2lmIEVOQUJMRShSVUJCRVJfQkFORElORykKICAgICBpZiAoUGFn
ZUJhbm5lciogYmFubmVyID0gbV9wYWdlLmZvb3RlclBhZ2VCYW5uZXIoKSkKLSAgICAgICAgYmFu
bmVyLT5kaWRBZGRQYXJlbnRMYXllcihmb290ZXJQYXJlbnQpOworICAgICAgICBiYW5uZXItPmRp
ZEFkZFBhcmVudExheWVyKCZmb290ZXJQYXJlbnQpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
Zm9vdGVyUGFyZW50KTsKICNlbmRpZgogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6c2hvdWxk
VXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyogZnJhbWVWaWV3KSBj
b25zdAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1l
Vmlldyhjb25zdCBGcmFtZVZpZXcmIGZyYW1lVmlldykgY29uc3QKIHsKLSAgICByZXR1cm4gbV9w
YWdlLmRyYXdpbmdBcmVhKCktPnNob3VsZFVzZVRpbGVkQmFja2luZ0ZvckZyYW1lVmlldyhmcmFt
ZVZpZXcpOworICAgIHJldHVybiBtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+c2hvdWxkVXNlVGlsZWRC
YWNraW5nRm9yRnJhbWVWaWV3KCZmcmFtZVZpZXcpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVu
dDo6aXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFT
dGF0ZUZsYWdzIHN0YXRlLCB1aW50NjRfdCBzb3VyY2VFbGVtZW50SUQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaAppbmRleCA1YzlkNzczYTcyYzA2MDhjMDIwNjhhYzFkOWRkZjQ1ZDRhMGJkOWM1Li41YmU0
ZmM2MzcxMWFiZWFlZTNjNGQ0OTVjOTA4OTRkNTkxM2E2MmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBGcmFtZSB3YW50cyB0byBjcmVh
dGUgdGhlIG5ldyBQYWdlLiAgQWxzbywgdGhlIG5ld2x5IGNyZWF0ZWQgd2luZG93CiAgICAgLy8g
c2hvdWxkIG5vdCBiZSBzaG93biB0byB0aGUgdXNlciB1bnRpbCB0aGUgQ2hyb21lQ2xpZW50IG9m
IHRoZSBuZXdseQogICAgIC8vIGNyZWF0ZWQgUGFnZSBoYXMgaXRzIHNob3cgbWV0aG9kIGNhbGxl
ZC4KLSAgICBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5kb3coV2ViQ29yZTo6RnJhbWUqLCBjb25z
dCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVy
ZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgZmluYWw7CisgICAgV2ViQ29y
ZTo6UGFnZSogY3JlYXRlV2luZG93KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6RnJh
bWVMb2FkUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzJiwgY29uc3QgV2Vi
Q29yZTo6TmF2aWdhdGlvbkFjdGlvbiYpIGZpbmFsOwogICAgIHZvaWQgc2hvdygpIGZpbmFsOwog
ICAgIAogICAgIGJvb2wgY2FuUnVuTW9kYWwoKSBmaW5hbDsKQEAgLTg3LDEzICs4NywxMyBAQCBw
cml2YXRlOgogICAgIHZvaWQgYWRkTWVzc2FnZVRvQ29uc29sZShKU0M6Ok1lc3NhZ2VTb3VyY2Us
IEpTQzo6TWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVO
dW1iZXIsIHVuc2lnbmVkIGNvbHVtbk51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VJRCkgZmlu
YWw7CiAgICAgCiAgICAgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSBmaW5h
bDsKLSAgICBib29sIHJ1bkJlZm9yZVVubG9hZENvbmZpcm1QYW5lbChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIFdlYkNvcmU6OkZyYW1lKikgZmluYWw7CisgICAgYm9vbCBydW5CZWZvcmVVbmxvYWRD
b25maXJtUGFuZWwoY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSYpIGZpbmFs
OwogICAgIAogICAgIHZvaWQgY2xvc2VXaW5kb3dTb29uKCkgZmluYWw7CiAgICAgCi0gICAgdm9p
ZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBTdHJpbmcmKSBmaW5h
bDsKLSAgICBib29sIHJ1bkphdmFTY3JpcHRDb25maXJtKFdlYkNvcmU6OkZyYW1lKiwgY29uc3Qg
U3RyaW5nJikgZmluYWw7Ci0gICAgYm9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZy
YW1lKiwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBTdHJpbmcmIGRlZmF1bHRWYWx1ZSwg
U3RyaW5nJiByZXN1bHQpIGZpbmFsOworICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNv
cmU6OkZyYW1lJiwgY29uc3QgU3RyaW5nJikgZmluYWw7CisgICAgYm9vbCBydW5KYXZhU2NyaXB0
Q29uZmlybShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIGJvb2wg
cnVuSmF2YVNjcmlwdFByb21wdChXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgU3RyaW5nJiBkZWZhdWx0VmFsdWUsIFN0cmluZyYgcmVzdWx0KSBmaW5hbDsKICAg
ICB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgU3RyaW5nJikgZmluYWw7CiAKICAgICBXZWJD
b3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9kZSgpIGZpbmFsOwpAQCAtMTE3LDIzICsx
MTcsMjMgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAgICAgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRm
b3JtUGFnZUNsaWVudCgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgY29udGVudHNTaXplQ2hhbmdl
ZChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdCBmaW5hbDsK
KyAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJD
b3JlOjpJbnRTaXplJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBzY3JvbGxSZWN0SW50b1ZpZXco
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IGZpbmFsOyAvLyBDdXJyZW50bHkgb25seSBN
YWMgaGFzIGEgbm9uIGVtcHR5IGltcGxlbWVudGF0aW9uLgogCiAgICAgYm9vbCBzaG91bGRVbmF2
YWlsYWJsZVBsdWdpbk1lc3NhZ2VCZUJ1dHRvbihXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVj
dDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgdW5h
dmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJDb3JlOjpS
ZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZp
bmFsOworICAgIHZvaWQgdW5hdmFpbGFibGVQbHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVs
ZW1lbnQmLCBXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxp
dHlSZWFzb24pIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5n
ZSgpIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3Qg
V2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIGZpbmFsOwog
CiAgICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlRleHREaXJlY3Rp
b24pIGZpbmFsOwogICAgIAotICAgIHZvaWQgcHJpbnQoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsK
KyAgICB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAKLSAgICB2b2lkIGV4Y2Vl
ZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VO
YW1lLCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMpIGZpbmFsOworICAgIHZvaWQgZXhjZWVkZWRE
YXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUs
IFdlYkNvcmU6OkRhdGFiYXNlRGV0YWlscykgZmluYWw7CiAKICAgICB2b2lkIHJlYWNoZWRNYXhB
cHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCkgZmluYWw7Ci0gICAgdm9pZCByZWFjaGVk
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50
NjRfdCBzcGFjZU5lZWRlZCkgZmluYWw7CisgICAgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNo
ZU9yaWdpblF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgaW50NjRfdCBzcGFjZU5lZWRl
ZCkgZmluYWw7CiAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgdm9pZCBhbm5v
dGF0ZWRSZWdpb25zQ2hhbmdlZCgpIGZpbmFsOwpAQCAtMTQzLDcgKzE0Myw3IEBAIHByaXZhdGU6
CiAgICAgU3RyaW5nIGdlbmVyYXRlUmVwbGFjZW1lbnRGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkg
ZmluYWw7CiAgICAgCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi0gICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2VyKFdlYkNvcmU6
OkNvbG9yQ2hvb3NlckNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgZmluYWw7CisgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkNvbG9yQ2hvb3Nlcj4gY3JlYXRlQ29sb3JDaG9vc2Vy
KFdlYkNvcmU6OkNvbG9yQ2hvb3NlckNsaWVudCYsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJikgZmlu
YWw7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJT1NfVE9VQ0hfRVZFTlRTKQpAQCAtMTUyLDEwICsx
NTIsMTAgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKElPUykKICAgICB2b2lkIGRpZFJlY2Vp
dmVNb2JpbGVEb2NUeXBlKGJvb2wpIGZpbmFsOwotICAgIHZvaWQgc2V0TmVlZHNTY3JvbGxOb3Rp
ZmljYXRpb25zKFdlYkNvcmU6OkZyYW1lKiwgYm9vbCkgZmluYWw7Ci0gICAgdm9pZCBvYnNlcnZl
ZENvbnRlbnRDaGFuZ2UoV2ViQ29yZTo6RnJhbWUqKSBmaW5hbDsKLSAgICB2b2lkIGNsZWFyQ29u
dGVudENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpGcmFtZSopIGZpbmFsOwotICAgIHZvaWQgbm90
aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9sbGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lKikgZmlu
YWw7CisgICAgdm9pZCBzZXROZWVkc1Njcm9sbE5vdGlmaWNhdGlvbnMoV2ViQ29yZTo6RnJhbWUm
LCBib29sKSBmaW5hbDsKKyAgICB2b2lkIG9ic2VydmVkQ29udGVudENoYW5nZShXZWJDb3JlOjpG
cmFtZSYpIGZpbmFsOworICAgIHZvaWQgY2xlYXJDb250ZW50Q2hhbmdlT2JzZXJ2ZXJzKFdlYkNv
cmU6OkZyYW1lJikgZmluYWw7CisgICAgdm9pZCBub3RpZnlSZXZlYWxlZFNlbGVjdGlvbkJ5U2Ny
b2xsaW5nRnJhbWUoV2ViQ29yZTo6RnJhbWUmKSBmaW5hbDsKICAgICBib29sIGlzU3RvcHBpbmco
KSBmaW5hbDsKIAogICAgIHZvaWQgZGlkTGF5b3V0KExheW91dFR5cGUgPSBOb3JtYWxMYXlvdXQp
IGZpbmFsOwpAQCAtMjAzLDEyICsyMDMsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIHNlbGVjdEl0
ZW1Xcml0aW5nRGlyZWN0aW9uSXNOYXR1cmFsKCkgZmluYWw7CiAgICAgYm9vbCBzZWxlY3RJdGVt
QWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9uKCkgZmluYWw7CiAgICAgYm9vbCBo
YXNPcGVuZWRQb3B1cCgpIGNvbnN0IGZpbmFsOwotICAgIFJlZlB0cjxXZWJDb3JlOjpQb3B1cE1l
bnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQqKSBjb25zdCBmaW5h
bDsKLSAgICBSZWZQdHI8V2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1
cE1lbnUoV2ViQ29yZTo6UG9wdXBNZW51Q2xpZW50KikgY29uc3QgZmluYWw7CisgICAgUmVmUHRy
PFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6OlBvcHVwTWVudUNs
aWVudCYpIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnU+
IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1lbnVDbGllbnQmKSBjb25zdCBm
aW5hbDsKIAogICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVy
RmFjdG9yeSgpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIo
V2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7Ci0gICAgdm9p
ZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3Jl
OjpHcmFwaGljc0xheWVyKikgZmluYWw7CisgICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXll
cihXZWJDb3JlOjpGcmFtZSYsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKKyAgICB2
b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdp
bmdTeW5jaHJvbml6YXRpb24oKSBmaW5hbDsKICAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdM
YXllckZsdXNoKCkgZmluYWw7CiAgICAgYm9vbCBhZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhX
ZWJDb3JlOjpMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RmxhZ3MpIGZpbmFsOwpAQCAtMjMzLDEx
ICsyMzMsMTEgQEAgcHJpdmF0ZToKICAgICBib29sIGxheWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBj
b25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCi0gICAgUGFzc1JlZlB0
cjxXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcj4gY3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0
b3IoV2ViQ29yZTo6UGFnZSopIGNvbnN0IGZpbmFsOworICAgIFJlZlB0cjxXZWJDb3JlOjpTY3Jv
bGxpbmdDb29yZGluYXRvcj4gY3JlYXRlU2Nyb2xsaW5nQ29vcmRpbmF0b3IoV2ViQ29yZTo6UGFn
ZSYpIGNvbnN0IGZpbmFsOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCi0gICAgdm9pZCBl
bGVtZW50RGlkUmVmb2N1cyhjb25zdCBXZWJDb3JlOjpOb2RlKikgZmluYWw7CisgICAgdm9pZCBl
bGVtZW50RGlkUmVmb2N1cyhXZWJDb3JlOjpFbGVtZW50JikgZmluYWw7CiAjZW5kaWYKIAogI2lm
IChQTEFURk9STShJT1MpICYmIEhBVkUoQVZLSVQpKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFC
TEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpKQpAQCAtMjUzLDE0ICsyNTMsMTQgQEAgcHJpdmF0
ZToKICNlbmRpZgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIGJvb2wgc3VwcG9y
dHNGdWxsU2NyZWVuRm9yRWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50KiwgYm9vbCB3aXRo
S2V5Ym9hcmQpIGZpbmFsOwotICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJD
b3JlOjpFbGVtZW50KikgZmluYWw7Ci0gICAgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQo
V2ViQ29yZTo6RWxlbWVudCopIGZpbmFsOworICAgIGJvb2wgc3VwcG9ydHNGdWxsU2NyZWVuRm9y
RWxlbWVudChjb25zdCBXZWJDb3JlOjpFbGVtZW50JiwgYm9vbCB3aXRoS2V5Ym9hcmQpIGZpbmFs
OworICAgIHZvaWQgZW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50Jikg
ZmluYWw7CisgICAgdm9pZCBleGl0RnVsbFNjcmVlbkZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVu
dCYpIGZpbmFsOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICB2b2lkIGVsZW1l
bnREaWRGb2N1cyhjb25zdCBXZWJDb3JlOjpOb2RlKikgZmluYWw7Ci0gICAgdm9pZCBlbGVtZW50
RGlkQmx1cihjb25zdCBXZWJDb3JlOjpOb2RlKikgZmluYWw7CisgICAgdm9pZCBlbGVtZW50RGlk
Rm9jdXMoV2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOworICAgIHZvaWQgZWxlbWVudERpZEJsdXIo
V2ViQ29yZTo6RWxlbWVudCYpIGZpbmFsOwogCiAgICAgdm9pZCBtYWtlRmlyc3RSZXNwb25kZXIo
KSBmaW5hbDsKICNlbmRpZgpAQCAtMjkxLDEwICsyOTEsMTAgQEAgcHJpdmF0ZToKICAgICBTdHJp
bmcgcGx1Z0luRXh0cmFTdHlsZVNoZWV0KCkgY29uc3QgZmluYWw7CiAgICAgU3RyaW5nIHBsdWdJ
bkV4dHJhU2NyaXB0KCkgY29uc3QgZmluYWw7CiAKLSAgICB2b2lkIGRpZEFkZEhlYWRlckxheWVy
KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKLSAgICB2b2lkIGRpZEFkZEZvb3Rlckxh
eWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBmaW5hbDsKKyAgICB2b2lkIGRpZEFkZEhlYWRl
ckxheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXImKSBmaW5hbDsKKyAgICB2b2lkIGRpZEFkZEZv
b3RlckxheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXImKSBmaW5hbDsKIAotICAgIGJvb2wgc2hv
dWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyop
IGNvbnN0IGZpbmFsOworICAgIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3
KGNvbnN0IFdlYkNvcmU6OkZyYW1lVmlldyYpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBpc1Bs
YXlpbmdNZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxh
Z3MsIHVpbnQ2NF90KSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApp
bmRleCAzMmFmNTlmM2ZiZDQ3NDA5ZjQyODg2MzY5ZmEwOGJlZGFjYjVkNDY4Li40MzM5OGZjOTNj
MjNkMWIxMzhlN2E0NWQyYTE5ZWE4ZDMzZDNhZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVy
Q2xpZW50LmNwcApAQCAtNjQwLDEzICs2NDAsMTMgQEAgRnJhbWUqIFdlYkZyYW1lTG9hZGVyQ2xp
ZW50OjpkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgbmF2aWdhdGkK
IHsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gbV9mcmFtZS0+cGFnZSgpOwogICAgIGlmICghd2Vi
UGFnZSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAg
Ly8gSnVzdCBjYWxsIHRocm91Z2ggdG8gdGhlIGNocm9tZSBjbGllbnQuCiAgICAgRnJhbWVMb2Fk
UmVxdWVzdCByZXF1ZXN0KG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5kb2N1bWVudCgpLT5zZWN1cml0
eU9yaWdpbigpLCBuYXZpZ2F0aW9uQWN0aW9uLnJlc291cmNlUmVxdWVzdCgpLCBMb2NrSGlzdG9y
eTo6Tm8sIExvY2tCYWNrRm9yd2FyZExpc3Q6Ok5vLCBNYXliZVNlbmRSZWZlcnJlciwgQWxsb3dO
YXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIE5ld0ZyYW1lT3BlbmVyUG9saWN5OjpBbGxvdywg
bmF2aWdhdGlvbkFjdGlvbi5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCkpOwotICAgIFBh
Z2UqIG5ld1BhZ2UgPSB3ZWJQYWdlLT5jb3JlUGFnZSgpLT5jaHJvbWUoKS5jcmVhdGVXaW5kb3co
bV9mcmFtZS0+Y29yZUZyYW1lKCksIHJlcXVlc3QsIFdpbmRvd0ZlYXR1cmVzKCksIG5hdmlnYXRp
b25BY3Rpb24pOworICAgIFBhZ2UqIG5ld1BhZ2UgPSB3ZWJQYWdlLT5jb3JlUGFnZSgpLT5jaHJv
bWUoKS5jcmVhdGVXaW5kb3coKm1fZnJhbWUtPmNvcmVGcmFtZSgpLCByZXF1ZXN0LCBXaW5kb3dG
ZWF0dXJlcygpLCBuYXZpZ2F0aW9uQWN0aW9uKTsKICAgICBpZiAoIW5ld1BhZ2UpCi0gICAgICAg
IHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAKICAgICByZXR1cm4gJm5l
d1BhZ2UtPm1haW5GcmFtZSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJJbnNwZWN0b3JDbGllbnQuY3BwCmluZGV4
IDk2ODkyOWZkYTM0NzlhYWQyYmU0YTEwYTBiNDU5NmFlMTc1NTZkNTAuLjQxYjM0ZjAwYThjNmZk
MjAzYzU4MzQyMDNlODI4MGE1YzQ0NTZmNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViSW5zcGVjdG9yQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkluc3BlY3RvckNsaWVudC5j
cHAKQEAgLTczLDcgKzczLDcgQEAgV2ViSW5zcGVjdG9yQ2xpZW50Ojp+V2ViSW5zcGVjdG9yQ2xp
ZW50KCkKICAgICB9CiAKICAgICBpZiAobV9wYWludFJlY3RPdmVybGF5ICYmIG1fcGFnZS0+bWFp
bkZyYW1lKCkpCi0gICAgICAgIG1fcGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJv
bGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fcGFpbnRSZWN0T3ZlcmxheS5nZXQoKSwgUGFn
ZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKKyAgICAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+
cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fcGFpbnRSZWN0
T3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKIH0KIAogdm9pZCBXZWJJbnNw
ZWN0b3JDbGllbnQ6Omluc3BlY3RlZFBhZ2VEZXN0cm95ZWQoKQpAQCAtMTI2LDcgKzEyNiw3IEBA
IHZvaWQgV2ViSW5zcGVjdG9yQ2xpZW50OjpoaWRlSGlnaGxpZ2h0KCkKIHsKICNpZiAhUExBVEZP
Uk0oSU9TKQogICAgIGlmIChtX2hpZ2hsaWdodE92ZXJsYXkgJiYgbV9wYWdlLT5tYWluRnJhbWUo
KSkKLSAgICAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCku
dW5pbnN0YWxsUGFnZU92ZXJsYXkobV9oaWdobGlnaHRPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFk
ZU1vZGU6OkZhZGUpOworICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNv
bnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqbV9oaWdobGlnaHRPdmVybGF5LCBQYWdl
T3ZlcmxheTo6RmFkZU1vZGU6OkZhZGUpOwogI2Vsc2UKICAgICBtX3BhZ2UtPmhpZGVJbnNwZWN0
b3JIaWdobGlnaHQoKTsKICNlbmRpZgpAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgV2ViSW5zcGVj
dG9yQ2xpZW50OjpzaG93UGFpbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKICAgICBp
ZiAoIW1fcGFpbnRSZWN0T3ZlcmxheSkgewogICAgICAgICBtX3BhaW50UmVjdE92ZXJsYXkgPSBQ
YWdlT3ZlcmxheTo6Y3JlYXRlKCp0aGlzLCBQYWdlT3ZlcmxheTo6T3ZlcmxheVR5cGU6OkRvY3Vt
ZW50KTsKLSAgICAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVy
KCkuaW5zdGFsbFBhZ2VPdmVybGF5KG1fcGFpbnRSZWN0T3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZh
ZGVNb2RlOjpEb05vdEZhZGUpOworICAgICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3Zl
cmxheUNvbnRyb2xsZXIoKS5pbnN0YWxsUGFnZU92ZXJsYXkoKm1fcGFpbnRSZWN0T3ZlcmxheSwg
UGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpEb05vdEZhZGUpOwogICAgIH0KIAogICAgIGlmICghbV9w
YWludEluZGljYXRvckxheWVyQ2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9TLm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViQ2hyb21lQ2xpZW50SU9T
Lm1tCmluZGV4IGJkMDE1NWRjYzNjZGVjZTlmZjIwZmE5ODY2ZGYzNzlmODJhMzY4YzUuLmQxZTBl
ZGE1ZTVjMDhlZGFkNzk3YWQ5MDAzZDdmMTYyYTY1OWM1ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkNocm9tZUNsaWVudElPUy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJD
aHJvbWVDbGllbnRJT1MubW0KQEAgLTQ2LDkgKzQ2LDkgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmRpZFByZXZlbnREZWZhdWx0Rm9yRXZlbnQoKQogCiAjZW5kaWYKIAotdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmVsZW1lbnREaWRSZWZvY3VzKGNvbnN0IFdlYkNvcmU6Ok5vZGUqIG5vZGUpCit2b2lk
IFdlYkNocm9tZUNsaWVudDo6ZWxlbWVudERpZFJlZm9jdXMoV2ViQ29yZTo6RWxlbWVudCYgZWxl
bWVudCkKIHsKLSAgICBlbGVtZW50RGlkRm9jdXMobm9kZSk7CisgICAgZWxlbWVudERpZEZvY3Vz
KGVsZW1lbnQpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZGlkUmVjZWl2ZU1vYmlsZURv
Y1R5cGUoYm9vbCBpc01vYmlsZURvY3R5cGUpCkBAIC01NiwyMiArNTYsMjIgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmRpZFJlY2VpdmVNb2JpbGVEb2NUeXBlKGJvb2wgaXNNb2JpbGVEb2N0eXBl
KQogICAgIG1fcGFnZS5kaWRSZWNlaXZlTW9iaWxlRG9jVHlwZShpc01vYmlsZURvY3R5cGUpOwog
fQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TmVlZHNTY3JvbGxOb3RpZmljYXRpb25zKFdl
YkNvcmU6OkZyYW1lKiwgYm9vbCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXROZWVkc1Njcm9s
bE5vdGlmaWNhdGlvbnMoV2ViQ29yZTo6RnJhbWUmLCBib29sKQogewogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpvYnNlcnZlZENvbnRlbnRDaGFuZ2Uo
V2ViQ29yZTo6RnJhbWUqKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6Om9ic2VydmVkQ29udGVudENo
YW5nZShXZWJDb3JlOjpGcmFtZSYpCiB7CiAgICAgbV9wYWdlLmNvbXBsZXRlUGVuZGluZ1N5bnRo
ZXRpY0NsaWNrRm9yQ29udGVudENoYW5nZU9ic2VydmVyKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpjbGVhckNvbnRlbnRDaGFuZ2VPYnNlcnZlcnMoV2ViQ29yZTo6RnJhbWUqKQordm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmNsZWFyQ29udGVudENoYW5nZU9ic2VydmVycyhXZWJDb3JlOjpG
cmFtZSYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGll
bnQ6Om5vdGlmeVJldmVhbGVkU2VsZWN0aW9uQnlTY3JvbGxpbmdGcmFtZShXZWJDb3JlOjpGcmFt
ZSopCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bm90aWZ5UmV2ZWFsZWRTZWxlY3Rpb25CeVNjcm9s
bGluZ0ZyYW1lKFdlYkNvcmU6OkZyYW1lJikKIHsKICAgICBtX3BhZ2UuZGlkQ2hhbmdlU2VsZWN0
aW9uKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RmluZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Zp
bmRDb250cm9sbGVyLmNwcAppbmRleCAxZTBjZWY0NjUxYjkzYmY4MGZiNzA1NjY1YzZmNjE1ZmVh
YmMyYTg5Li4zMzAzMmMxNzJiMWIyNDM4ZGFmZDYwYzM0NjQ2NmVhNDUwNWU0YTdiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRmluZENvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9GaW5kQ29udHJvbGxlci5j
cHAKQEAgLTE4OSw3ICsxODksNyBAQCB2b2lkIEZpbmRDb250cm9sbGVyOjp1cGRhdGVGaW5kVUlB
ZnRlclBhZ2VTY3JvbGwoYm9vbCBmb3VuZCwgY29uc3QgU3RyaW5nJiBzdHJpbgogCiAgICAgaWYg
KCFzaG91bGRTaG93T3ZlcmxheSkgewogICAgICAgICBpZiAobV9maW5kUGFnZU92ZXJsYXkpCi0g
ICAgICAgICAgICBtX3dlYlBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRyb2xsZXIo
KS51bmluc3RhbGxQYWdlT3ZlcmxheShtX2ZpbmRQYWdlT3ZlcmxheSwgUGFnZU92ZXJsYXk6OkZh
ZGVNb2RlOjpGYWRlKTsKKyAgICAgICAgICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VP
dmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX2ZpbmRQYWdlT3Zlcmxh
eSwgUGFnZU92ZXJsYXk6OkZhZGVNb2RlOjpGYWRlKTsKICAgICB9IGVsc2UgewogICAgICAgICBp
ZiAoIW1fZmluZFBhZ2VPdmVybGF5KSB7CiAgICAgICAgICAgICBhdXRvIGZpbmRQYWdlT3Zlcmxh
eSA9IFBhZ2VPdmVybGF5OjpjcmVhdGUoKnRoaXMsIFBhZ2VPdmVybGF5OjpPdmVybGF5VHlwZTo6
RG9jdW1lbnQpOwpAQCAtMzEyLDcgKzMxMiw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmhpZGVG
aW5kVUkoKQogewogICAgIG1fZmluZE1hdGNoZXMuY2xlYXIoKTsKICAgICBpZiAobV9maW5kUGFn
ZU92ZXJsYXkpCi0gICAgICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29u
dHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KG1fZmluZFBhZ2VPdmVybGF5LCBQYWdlT3Zl
cmxheTo6RmFkZU1vZGU6OkZhZGUpOworICAgICAgICBtX3dlYlBhZ2UtPm1haW5GcmFtZSgpLT5w
YWdlT3ZlcmxheUNvbnRyb2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheSgqbV9maW5kUGFnZU92
ZXJsYXksIFBhZ2VPdmVybGF5OjpGYWRlTW9kZTo6RmFkZSk7CiAKICAgICBQbHVnaW5WaWV3KiBw
bHVnaW5WaWV3ID0gcGx1Z2luVmlld0ZvckZyYW1lKG1fd2ViUGFnZS0+bWFpbkZyYW1lKCkpOwog
ICAgIApAQCAtMzI1LDYgKzMyNSw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmhpZGVGaW5kVUko
KQogfQogCiAjaWYgIVBMQVRGT1JNKElPUykKKwogYm9vbCBGaW5kQ29udHJvbGxlcjo6dXBkYXRl
RmluZEluZGljYXRvcihGcmFtZSYgc2VsZWN0ZWRGcmFtZSwgYm9vbCBpc1Nob3dpbmdPdmVybGF5
LCBib29sIHNob3VsZEFuaW1hdGUpCiB7CiAgICAgUmVmUHRyPFRleHRJbmRpY2F0b3I+IGluZGlj
YXRvciA9IFRleHRJbmRpY2F0b3I6OmNyZWF0ZVdpdGhTZWxlY3Rpb25JbkZyYW1lKHNlbGVjdGVk
RnJhbWUsIFRleHRJbmRpY2F0b3JPcHRpb25JbmNsdWRlTWFyZ2luSWZSYW5nZU1hdGNoZXNTZWxl
Y3Rpb24sIHNob3VsZEFuaW1hdGUgPyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlv
bjo6Qm91bmNlIDogVGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246Ok5vbmUpOwpA
QCAtMzY2LDYgKzM2Nyw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmRpZEZhaWxUb0ZpbmRTdHJp
bmcoKQogdm9pZCBGaW5kQ29udHJvbGxlcjo6ZGlkSGlkZUZpbmRJbmRpY2F0b3IoKQogewogfQor
CiAjZW5kaWYKIAogdm9pZCBGaW5kQ29udHJvbGxlcjo6c2hvd0ZpbmRJbmRpY2F0b3JJblNlbGVj
dGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNw
cAppbmRleCAzNjI5ZDRhZTU4YzdkNDY4NjJlMTVhNzVmOTg0YmRjZDVlZWI4ZjQ2Li45OTlmZTI1
YzEwMGEzMTM3NmIwZGY3NWE0MzA3YzMxY2E3ZmU0ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBzdGF0
aWMgdWludDY0X3QgZ2VuZXJhdGVMaXN0ZW5lcklEKCkKICAgICByZXR1cm4gdW5pcXVlTGlzdGVu
ZXJJRCsrOwogfQogCi1QYXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlV2l0aENv
cmVNYWluRnJhbWUoV2ViUGFnZSogcGFnZSwgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSkKK1Jl
ZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2UqIHBh
Z2UsIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUpCiB7CiAgICAgYXV0byBmcmFtZSA9IGNyZWF0
ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KHN0YXRpY19jYXN0PFdlYkZy
YW1lTG9hZGVyQ2xpZW50Kj4oJmNvcmVGcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkpKSk7CiAgICAg
cGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDcmVhdGVNYWluRnJhbWUoZnJh
bWUtPmZyYW1lSUQoKSksIHBhZ2UtPnBhZ2VJRCgpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNo
TWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CkBAIC0xMjAsMzAgKzEyMCwzMiBA
QCBQYXNzUmVmUHRyPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUo
V2ViUGFnZSogcGFnZSwgV2ViQ29yZTo6RgogICAgIHJldHVybiBmcmFtZTsKIH0KIAotUGFzc1Jl
ZlB0cjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqIHBhZ2UsIGNv
bnN0IFN0cmluZyYgZnJhbWVOYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxlbWVu
dCkKK1JlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqIHBhZ2Us
IGNvbnN0IFN0cmluZyYgZnJhbWVOYW1lLCBIVE1MRnJhbWVPd25lckVsZW1lbnQqIG93bmVyRWxl
bWVudCkKIHsKICAgICBhdXRvIGZyYW1lID0gY3JlYXRlKHN0ZDo6bWFrZV91bmlxdWU8V2ViRnJh
bWVMb2FkZXJDbGllbnQ+KCkpOwogICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGlkQ3JlYXRlU3ViZnJhbWUoZnJhbWUtPmZyYW1lSUQoKSksIHBhZ2UtPnBhZ2VJRCgpLCBJ
UEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBs
eSk7CiAKLSAgICBSZWY8V2ViQ29yZTo6RnJhbWU+IGNvcmVGcmFtZSA9IEZyYW1lOjpjcmVhdGUo
cGFnZS0+Y29yZVBhZ2UoKSwgb3duZXJFbGVtZW50LCBmcmFtZS0+bV9mcmFtZUxvYWRlckNsaWVu
dC5nZXQoKSk7CisgICAgYXV0byBjb3JlRnJhbWUgPSBGcmFtZTo6Y3JlYXRlKHBhZ2UtPmNvcmVQ
YWdlKCksIG93bmVyRWxlbWVudCwgZnJhbWUtPm1fZnJhbWVMb2FkZXJDbGllbnQuZ2V0KCkpOwog
ICAgIGZyYW1lLT5tX2NvcmVGcmFtZSA9IGNvcmVGcmFtZS5wdHIoKTsKLSAgICBmcmFtZS0+bV9j
b3JlRnJhbWUtPnRyZWUoKS5zZXROYW1lKGZyYW1lTmFtZSk7CisKKyAgICBjb3JlRnJhbWUtPnRy
ZWUoKS5zZXROYW1lKGZyYW1lTmFtZSk7CiAgICAgaWYgKG93bmVyRWxlbWVudCkgewogICAgICAg
ICBBU1NFUlQob3duZXJFbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCkpOwotICAgICAgICBvd25l
ckVsZW1lbnQtPmRvY3VtZW50KCkuZnJhbWUoKS0+dHJlZSgpLmFwcGVuZENoaWxkKFdURk1vdmUo
Y29yZUZyYW1lKSk7CisgICAgICAgIG93bmVyRWxlbWVudC0+ZG9jdW1lbnQoKS5mcmFtZSgpLT50
cmVlKCkuYXBwZW5kQ2hpbGQoY29yZUZyYW1lLmdldCgpKTsKICAgICB9Ci0gICAgZnJhbWUtPm1f
Y29yZUZyYW1lLT5pbml0KCk7CisgICAgY29yZUZyYW1lLT5pbml0KCk7CisKICAgICByZXR1cm4g
ZnJhbWU7CiB9CiAKLVBhc3NSZWZQdHI8V2ViRnJhbWU+IFdlYkZyYW1lOjpjcmVhdGUoc3RkOjp1
bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50PiBmcmFtZUxvYWRlckNsaWVudCkKK1JlZjxX
ZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJD
bGllbnQ+IGZyYW1lTG9hZGVyQ2xpZW50KQogewogICAgIGF1dG8gZnJhbWUgPSBhZG9wdFJlZigq
bmV3IFdlYkZyYW1lKFdURk1vdmUoZnJhbWVMb2FkZXJDbGllbnQpKSk7CiAKICAgICAvLyBBZGQg
ZXhwbGljdCByZWYoKSB0aGF0IHdpbGwgYmUgYmFsYW5jZWQgaW4gV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OmZyYW1lTG9hZGVyRGVzdHJveWVkKCkuCiAgICAgZnJhbWUtPnJlZigpOwogCi0gICAgcmV0
dXJuIFdURk1vdmUoZnJhbWUpOworICAgIHJldHVybiBmcmFtZTsKIH0KIAogV2ViRnJhbWU6Oldl
YkZyYW1lKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4gZnJhbWVMb2FkZXJD
bGllbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
RnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCmlu
ZGV4IDIzZDQ4ZDI5ZjgzNzY2NTM4NWNmNDE0MWEwYzRmNmU2M2M1NWM2NjAuLmQ0YzdhNDA4MzRh
Mjg4OWIyYTFhZmQxZmNkZTM3MDZmYWUwMjZiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5oCkBAIC02Niw4ICs2Niw4IEBAIHN0cnVjdCBGcmFtZUlu
Zm9EYXRhOwogCiBjbGFzcyBXZWJGcmFtZSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpP
YmplY3Q6OlR5cGU6OkJ1bmRsZUZyYW1lPiB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViRnJhbWU+IGNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKFdlYlBhZ2UqLCBXZWJDb3JlOjpG
cmFtZSopOwotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkZyYW1lPiBjcmVhdGVTdWJmcmFtZShX
ZWJQYWdlKiwgY29uc3QgU3RyaW5nJiBmcmFtZU5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVy
RWxlbWVudCopOworICAgIHN0YXRpYyBSZWY8V2ViRnJhbWU+IGNyZWF0ZVdpdGhDb3JlTWFpbkZy
YW1lKFdlYlBhZ2UqLCBXZWJDb3JlOjpGcmFtZSopOworICAgIHN0YXRpYyBSZWY8V2ViRnJhbWU+
IGNyZWF0ZVN1YmZyYW1lKFdlYlBhZ2UqLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29y
ZTo6SFRNTEZyYW1lT3duZXJFbGVtZW50Kik7CiAgICAgfldlYkZyYW1lKCk7CiAKICAgICAvLyBD
YWxsZWQgd2hlbiB0aGUgRnJhbWVMb2FkZXJDbGllbnQgKGFuZCB0aGVyZWZvcmUgdGhlIFdlYkNv
cmU6OkZyYW1lKSBpcyBiZWluZyB0b3JuIGRvd24uCkBAIC0xNjYsOCArMTY2LDggQEAgcHVibGlj
OgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViRnJhbWU+IGNy
ZWF0ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsKLSAgICBXZWJGcmFt
ZShzdGQ6OnVuaXF1ZV9wdHI8V2ViRnJhbWVMb2FkZXJDbGllbnQ+KTsKKyAgICBzdGF0aWMgUmVm
PFdlYkZyYW1lPiBjcmVhdGUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xpZW50Pik7
CisgICAgZXhwbGljaXQgV2ViRnJhbWUoc3RkOjp1bmlxdWVfcHRyPFdlYkZyYW1lTG9hZGVyQ2xp
ZW50Pik7CiAKICAgICBXZWJDb3JlOjpGcmFtZSogbV9jb3JlRnJhbWU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKaW5kZXggZDY0
Nzg1OTdhODdmZWYzZGMwYjk5OTM1MjEyNjc2ZWZjYzQ5MzMyMy4uMDE2ZDczOGZiNjEyZDI0M2Mw
MDQ5ZTUyMDE1ODYyMTMwZmQ5NThmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFdl
Ykluc3BlY3Rvcjo6b3BlbkluTmV3VGFiKGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nKQogICAgIEZy
YW1lJiBpbnNwZWN0ZWRNYWluRnJhbWUgPSBpbnNwZWN0ZWRQYWdlLT5tYWluRnJhbWUoKTsKICAg
ICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3QoaW5zcGVjdGVkTWFpbkZyYW1lLmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCh1cmxTdHJpbmcpLCAiX2JsYW5rIiwg
TG9ja0hpc3Rvcnk6Ok5vLCBMb2NrQmFja0ZvcndhcmRMaXN0OjpObywgTWF5YmVTZW5kUmVmZXJy
ZXIsIEFsbG93TmF2aWdhdGlvblRvSW52YWxpZFVSTDo6WWVzLCBOZXdGcmFtZU9wZW5lclBvbGlj
eTo6QWxsb3csIFJlcGxhY2VEb2N1bWVudElmSmF2YVNjcmlwdFVSTCwgU2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeTo6U2hvdWxkTm90QWxsb3cpOwogCi0gICAgUGFnZSogbmV3UGFnZSA9IGlu
c3BlY3RlZFBhZ2UtPmNocm9tZSgpLmNyZWF0ZVdpbmRvdygmaW5zcGVjdGVkTWFpbkZyYW1lLCBy
ZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QucmVzb3Vy
Y2VSZXF1ZXN0KCksIE5hdmlnYXRpb25UeXBlOjpMaW5rQ2xpY2tlZCkpOworICAgIFBhZ2UqIG5l
d1BhZ2UgPSBpbnNwZWN0ZWRQYWdlLT5jaHJvbWUoKS5jcmVhdGVXaW5kb3coaW5zcGVjdGVkTWFp
bkZyYW1lLCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJlcygpLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVl
c3QucmVzb3VyY2VSZXF1ZXN0KCksIE5hdmlnYXRpb25UeXBlOjpMaW5rQ2xpY2tlZCkpOwogICAg
IGlmICghbmV3UGFnZSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL0ZpbmRDb250cm9sbGVySU9TLm1tIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9GaW5kQ29udHJvbGxlcklPUy5tbQppbmRl
eCAxZDY5MDhiZTllZmI1OGRjZjNhZGM3MGEzYTE5ZTVkMDcxNDNlZWIzLi5mZTMyYjNiM2NlMjBm
OWJiY2MxNzVjYzgwZWVkYTFmZWQwYmI3ZmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL0ZpbmRDb250cm9sbGVySU9TLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvRmluZENvbnRyb2xsZXJJT1MubW0KQEAgLTg5
LDcgKzg5LDcgQEAgdm9pZCBGaW5kSW5kaWNhdG9yT3ZlcmxheUNsaWVudElPUzo6ZHJhd1JlY3Qo
UGFnZU92ZXJsYXkmIG92ZXJsYXksIEdyYXBoaWNzQ29udGUKIGJvb2wgRmluZENvbnRyb2xsZXI6
OnVwZGF0ZUZpbmRJbmRpY2F0b3IoRnJhbWUmIHNlbGVjdGVkRnJhbWUsIGJvb2wgaXNTaG93aW5n
T3ZlcmxheSwgYm9vbCBzaG91bGRBbmltYXRlKQogewogICAgIGlmIChtX2ZpbmRJbmRpY2F0b3JP
dmVybGF5KQotICAgICAgICBtX3dlYlBhZ2UtPm1haW5GcmFtZSgpLT5wYWdlT3ZlcmxheUNvbnRy
b2xsZXIoKS51bmluc3RhbGxQYWdlT3ZlcmxheShtX2ZpbmRJbmRpY2F0b3JPdmVybGF5LmdldCgp
LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgICAgIG1fd2ViUGFnZS0+
bWFpbkZyYW1lKCktPnBhZ2VPdmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5
KCptX2ZpbmRJbmRpY2F0b3JPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFk
ZSk7CiAKICAgICBSZWZQdHI8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciA9IFRleHRJbmRp
Y2F0b3I6OmNyZWF0ZVdpdGhTZWxlY3Rpb25JbkZyYW1lKHNlbGVjdGVkRnJhbWUsIGZpbmRUZXh0
SW5kaWNhdG9yT3B0aW9ucywgVGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb246Ok5v
bmUsIEZsb2F0U2l6ZSh0b3RhbEhvcml6b250YWxNYXJnaW4sIHRvdGFsVmVydGljYWxNYXJnaW4p
KTsKICAgICBpZiAoIXRleHRJbmRpY2F0b3IpCkBAIC05Nyw3ICs5Nyw3IEBAIGJvb2wgRmluZENv
bnRyb2xsZXI6OnVwZGF0ZUZpbmRJbmRpY2F0b3IoRnJhbWUmIHNlbGVjdGVkRnJhbWUsIGJvb2wg
aXNTaG93aW5nT3ZlCiAKICAgICBtX2ZpbmRJbmRpY2F0b3JPdmVybGF5Q2xpZW50ID0gc3RkOjpt
YWtlX3VuaXF1ZTxGaW5kSW5kaWNhdG9yT3ZlcmxheUNsaWVudElPUz4oc2VsZWN0ZWRGcmFtZSwg
dGV4dEluZGljYXRvci5nZXQoKSk7CiAgICAgbV9maW5kSW5kaWNhdG9yT3ZlcmxheSA9IFBhZ2VP
dmVybGF5OjpjcmVhdGUoKm1fZmluZEluZGljYXRvck92ZXJsYXlDbGllbnQsIFBhZ2VPdmVybGF5
OjpPdmVybGF5VHlwZTo6RG9jdW1lbnQpOwotICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBh
Z2VPdmVybGF5Q29udHJvbGxlcigpLmluc3RhbGxQYWdlT3ZlcmxheShtX2ZpbmRJbmRpY2F0b3JP
dmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CisgICAgbV93ZWJQYWdl
LT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkuaW5zdGFsbFBhZ2VPdmVybGF5
KCptX2ZpbmRJbmRpY2F0b3JPdmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFk
ZSk7CiAKICAgICBtX2ZpbmRJbmRpY2F0b3JPdmVybGF5LT5zZXRGcmFtZShlbmNsb3NpbmdJbnRS
ZWN0KHRleHRJbmRpY2F0b3ItPnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMo
KSkpOwogICAgIG1fZmluZEluZGljYXRvck92ZXJsYXktPnNldE5lZWRzRGlzcGxheSgpOwpAQCAt
MTI0LDcgKzEyNCw3IEBAIHZvaWQgRmluZENvbnRyb2xsZXI6OmhpZGVGaW5kSW5kaWNhdG9yKCkK
ICAgICBpZiAoIW1faXNTaG93aW5nRmluZEluZGljYXRvcikKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV93ZWJQYWdlLT5tYWluRnJhbWUoKS0+cGFnZU92ZXJsYXlDb250cm9sbGVyKCkudW5pbnN0
YWxsUGFnZU92ZXJsYXkobV9maW5kSW5kaWNhdG9yT3ZlcmxheS5nZXQoKSwgUGFnZU92ZXJsYXk6
OkZhZGVNb2RlOjpEb05vdEZhZGUpOworICAgIG1fd2ViUGFnZS0+bWFpbkZyYW1lKCktPnBhZ2VP
dmVybGF5Q29udHJvbGxlcigpLnVuaW5zdGFsbFBhZ2VPdmVybGF5KCptX2ZpbmRJbmRpY2F0b3JP
dmVybGF5LCBQYWdlT3ZlcmxheTo6RmFkZU1vZGU6OkRvTm90RmFkZSk7CiAgICAgbV9maW5kSW5k
aWNhdG9yT3ZlcmxheSA9IG51bGxwdHI7CiAgICAgbV9pc1Nob3dpbmdGaW5kSW5kaWNhdG9yID0g
ZmFsc2U7CiAgICAgbV9mb3VuZFN0cmluZ01hdGNoSW5kZXggPSAtMTsK
</data>
<flag name="review"
          id="321424"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>