<?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>183920</bug_id>
          
          <creation_ts>2018-03-22 15:45:37 -0700</creation_ts>
          <short_desc>Go to back/forward list items after a process-swapped navigation</short_desc>
          <delta_ts>2018-03-26 10:42:08 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>aestes</cc>
    
    <cc>berto</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>ryanhaddad</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1408516</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-03-22 15:45:37 -0700</bug_when>
    <thetext>Go to back/forward list items after a process-swapped navigation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408517</commentid>
    <comment_count>1</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-03-22 15:45:49 -0700</bug_when>
    <thetext>&lt;rdar://problem/38690544&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408757</commentid>
    <comment_count>2</comment_count>
      <attachid>336388</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-03-23 10:45:44 -0700</bug_when>
    <thetext>Created attachment 336388
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408759</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-23 10:47:12 -0700</bug_when>
    <thetext>Attachment 336388 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:121:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:130:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:132:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:135:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:141:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 5 in 38 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408785</commentid>
    <comment_count>4</comment_count>
      <attachid>336394</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-03-23 11:26:46 -0700</bug_when>
    <thetext>Created attachment 336394
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408787</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-23 11:29:32 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408788</commentid>
    <comment_count>6</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-23 11:30:00 -0700</bug_when>
    <thetext>Attachment 336394 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:121:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:130:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:132:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:135:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:141:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 5 in 39 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408825</commentid>
    <comment_count>7</comment_count>
      <attachid>336405</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-03-23 12:26:39 -0700</bug_when>
    <thetext>Created attachment 336405
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408826</commentid>
    <comment_count>8</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-23 12:29:10 -0700</bug_when>
    <thetext>Attachment 336405 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:121:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:130:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:132:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:135:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:141:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 5 in 40 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408887</commentid>
    <comment_count>9</comment_count>
      <attachid>336421</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-03-23 14:20:48 -0700</bug_when>
    <thetext>Created attachment 336421
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408888</commentid>
    <comment_count>10</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-03-23 14:22:45 -0700</bug_when>
    <thetext>Attachment 336421 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:121:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:130:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:132:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:135:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:141:  Multi-line string (&quot;...&quot;) found.  This lint script doesn&apos;t do well with such strings, and may give bogus warnings.  They&apos;re ugly and unnecessary, and you should use concatenation instead&quot;.  [readability/multiline_string] [5]
Total errors found: 5 in 42 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408912</commentid>
    <comment_count>11</comment_count>
      <attachid>336421</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-23 15:15:28 -0700</bug_when>
    <thetext>Comment on attachment 336421
Patch

Clearing flags on attachment: 336421

Committed r229926: &lt;https://trac.webkit.org/changeset/229926&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408913</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-03-23 15:15:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408956</commentid>
    <comment_count>13</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2018-03-23 16:39:07 -0700</bug_when>
    <thetext>This change broke the Windows build:
https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/8448

C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKitLegacy\win\WebView.cpp(3436): error C2027: use of undefined type &apos;WebCore::NavigationPolicyCheck&apos; [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKitLegacy\WebKitLegacy.vcxproj]
  C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\DerivedSources\ForwardingHeaders\WebCore/HistoryController.h(43): note: see declaration of &apos;WebCore::NavigationPolicyCheck&apos;
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKitLegacy\win\WebView.cpp(3436): error C2065: &apos;Require&apos;: undeclared identifier [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKitLegacy\WebKitLegacy.vcxproj]
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKitLegacy\win\WebView.cpp(5963): error C2027: use of undefined type &apos;WebCore::NavigationPolicyCheck&apos; [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKitLegacy\WebKitLegacy.vcxproj]
  C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\DerivedSources\ForwardingHeaders\WebCore/HistoryController.h(43): note: see declaration of &apos;WebCore::NavigationPolicyCheck&apos;
C:\cygwin\home\buildbot\slave\win-release\build\Source\WebKitLegacy\win\WebView.cpp(5963): error C2065: &apos;Require&apos;: undeclared identifier [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Source\WebKitLegacy\WebKitLegacy.vcxproj]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1408960</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-03-23 16:42:18 -0700</bug_when>
    <thetext>(In reply to Ryan Haddad from comment #13)
&gt; This change broke the Windows build:
&gt; https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/
&gt; 8448
&gt; 
&gt; C:\cygwin\home\buildbot\slave\win-
&gt; release\build\Source\WebKitLegacy\win\WebView.cpp(3436): error C2027: use of
&gt; undefined type &apos;WebCore::NavigationPolicyCheck&apos;
&gt; [C:\cygwin\home\buildbot\slave\win-
&gt; release\build\WebKitBuild\Release\Source\WebKitLegacy\WebKitLegacy.vcxproj]
&gt;  
&gt; C:\cygwin\home\buildbot\slave\win-
&gt; release\build\WebKitBuild\Release\DerivedSources\ForwardingHeaders\WebCore/
&gt; HistoryController.h(43): note: see declaration of
&gt; &apos;WebCore::NavigationPolicyCheck&apos;
&gt; C:\cygwin\home\buildbot\slave\win-
&gt; release\build\Source\WebKitLegacy\win\WebView.cpp(3436): error C2065:
&gt; &apos;Require&apos;: undeclared identifier
&gt; [C:\cygwin\home\buildbot\slave\win-
&gt; release\build\WebKitBuild\Release\Source\WebKitLegacy\WebKitLegacy.vcxproj]
&gt; C:\cygwin\home\buildbot\slave\win-
&gt; release\build\Source\WebKitLegacy\win\WebView.cpp(5963): error C2027: use of
&gt; undefined type &apos;WebCore::NavigationPolicyCheck&apos;
&gt; [C:\cygwin\home\buildbot\slave\win-
&gt; release\build\WebKitBuild\Release\Source\WebKitLegacy\WebKitLegacy.vcxproj]
&gt;  
&gt; C:\cygwin\home\buildbot\slave\win-
&gt; release\build\WebKitBuild\Release\DerivedSources\ForwardingHeaders\WebCore/
&gt; HistoryController.h(43): note: see declaration of
&gt; &apos;WebCore::NavigationPolicyCheck&apos;
&gt; C:\cygwin\home\buildbot\slave\win-
&gt; release\build\Source\WebKitLegacy\win\WebView.cpp(5963): error C2065:
&gt; &apos;Require&apos;: undeclared identifier
&gt; [C:\cygwin\home\buildbot\slave\win-
&gt; release\build\WebKitBuild\Release\Source\WebKitLegacy\WebKitLegacy.vcxproj]

Follow-up Windows build fix:
&lt;https://trac.webkit.org/changeset/229934&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1409324</commentid>
    <comment_count>15</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2018-03-26 10:42:08 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #14)
&gt; (In reply to Ryan Haddad from comment #13)
&gt; &gt; This change broke the Windows build:
&gt; &gt; https://build.webkit.org/builders/Apple%20Win%20Release%20%28Build%29/builds/
&gt; &gt; 8448
&gt; &gt; 
&gt; &gt; C:\cygwin\home\buildbot\slave\win-
&gt; &gt; release\build\Source\WebKitLegacy\win\WebView.cpp(3436): error C2027: use of
&gt; &gt; undefined type &apos;WebCore::NavigationPolicyCheck&apos;
&gt; &gt; [C:\cygwin\home\buildbot\slave\win-
&gt; &gt; release\build\WebKitBuild\Release\Source\WebKitLegacy\WebKitLegacy.vcxproj]
&gt; &gt;  
&gt; &gt; C:\cygwin\home\buildbot\slave\win-
&gt; &gt; release\build\WebKitBuild\Release\DerivedSources\ForwardingHeaders\WebCore/
&gt; &gt; HistoryController.h(43): note: see declaration of
&gt; &gt; &apos;WebCore::NavigationPolicyCheck&apos;
&gt; &gt; C:\cygwin\home\buildbot\slave\win-
&gt; &gt; release\build\Source\WebKitLegacy\win\WebView.cpp(3436): error C2065:
&gt; &gt; &apos;Require&apos;: undeclared identifier
&gt; &gt; [C:\cygwin\home\buildbot\slave\win-
&gt; &gt; release\build\WebKitBuild\Release\Source\WebKitLegacy\WebKitLegacy.vcxproj]
&gt; &gt; C:\cygwin\home\buildbot\slave\win-
&gt; &gt; release\build\Source\WebKitLegacy\win\WebView.cpp(5963): error C2027: use of
&gt; &gt; undefined type &apos;WebCore::NavigationPolicyCheck&apos;
&gt; &gt; [C:\cygwin\home\buildbot\slave\win-
&gt; &gt; release\build\WebKitBuild\Release\Source\WebKitLegacy\WebKitLegacy.vcxproj]
&gt; &gt;  
&gt; &gt; C:\cygwin\home\buildbot\slave\win-
&gt; &gt; release\build\WebKitBuild\Release\DerivedSources\ForwardingHeaders\WebCore/
&gt; &gt; HistoryController.h(43): note: see declaration of
&gt; &gt; &apos;WebCore::NavigationPolicyCheck&apos;
&gt; &gt; C:\cygwin\home\buildbot\slave\win-
&gt; &gt; release\build\Source\WebKitLegacy\win\WebView.cpp(5963): error C2065:
&gt; &gt; &apos;Require&apos;: undeclared identifier
&gt; &gt; [C:\cygwin\home\buildbot\slave\win-
&gt; &gt; release\build\WebKitBuild\Release\Source\WebKitLegacy\WebKitLegacy.vcxproj]
&gt; 
&gt; Follow-up Windows build fix:
&gt; &lt;https://trac.webkit.org/changeset/229934&gt;

Thank you.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336388</attachid>
            <date>2018-03-23 10:45:44 -0700</date>
            <delta_ts>2018-03-23 11:26:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183920-20180323104543.patch</filename>
            <type>text/plain</type>
            <size>69212</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5ODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDdjOWJjZWFjYjcxYWJi
ZTU5NzU3Y2EyY2RlNmUyMmNlNGJiOTFhZi4uNGI5MWIzMDYxMWI4Y2M5ODk1ODMwN2Q1MGRmYzZk
NjFlYTUwZTNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE4LTAzLTIzICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBHbyB0byBiYWNrL2Zvcndh
cmQgbGlzdCBpdGVtcyBhZnRlciBhIHByb2Nlc3Mtc3dhcHBlZCBuYXZpZ2F0aW9uLgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzg2OTA1NDQ+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgzOTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3QuCisKKyAgICAgICAgTW9zdCBv
ZiB0aGUgY2hhbmdlcyB0byBXZWJDb3JlIGFyZSB0ZWFjaGluZyBIaXN0b3J5SXRlbSBuYXZpZ2F0
aW9ucyB0byBrbm93IHdoZW4gdGhleSBzaG91bGQKKyAgICAgICAgZG8gYSBwb2xpY3kgY2hlY2sg
b3Igbm90LgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CisgICAgICAgICogaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QmFja0ZvcndhcmRDb250cm9sbGVyOjpnb0JhY2tPckZvcndhcmQpOgorICAgICAg
ICAoV2ViQ29yZTo6QmFja0ZvcndhcmRDb250cm9sbGVyOjpnb0JhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6QmFja0ZvcndhcmRDb250cm9sbGVyOjpnb0ZvcndhcmQpOgorCisgICAgICAgICogaGlz
dG9yeS9IaXN0b3J5SXRlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6c2V0
U3RhdGVPYmplY3QpOiBBY3R1YWxseSBwdXNoIHN0YXRlIG9iamVjdCBjaGFuZ2VzIHRvIHRoZSBV
SVByb2Nlc3MuCisgICAgICAgICAgVGhpcyB3YXMgYSBsb25nIHN0YW5kaW5nIGJ1ZyB0aGF0IG1h
ZGUgaXQgZGlmZmljdWx0IHRvIGVmZmVjdGl2ZWx5IHRlc3QgdGhpcyBjaGFuZ2UuCisKKyAgICAg
ICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmxvYWRVUkxJbnRvQ2hpbGRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnJldHJ5QWZ0
ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oOgorCisgICAg
ICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okhp
c3RvcnlDb250cm9sbGVyOjpnb1RvSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29u
dHJvbGxlcjo6c2V0RGVmZXJzTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29u
dHJvbGxlcjo6cmVjdXJzaXZlR29Ub0l0ZW0pOgorICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29u
dHJvbGxlci5oOgorCisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25Qb2xpY3lDaGVjay5oOgor
CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmdvVG9J
dGVtKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKwogMjAxOC0wMy0yMSAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIERpc2Nvbm5lY3QgdGhl
IFNWR1BhdGhTZWdMaXN0IGl0ZW1zIGZyb20gdGhlaXIgU1ZHUGF0aEVsZW1lbnQgYmVmb3JlIHJl
YnVpbGRpbmcgYSBuZXcgbGlzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3ZDVlZWVhZGFmNjUyNDA1YTg0OGY4ODIy
MjdlMzEzZWY1MjdkOGZiLi4xOTI5ZTM0NDE4MGY1MjdjMDRmMGViYjBhYjRjMWJkYTM0YTgxYzI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDE4LTAzLTIzICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBHbyB0byBiYWNrL2ZvcndhcmQgbGlzdCBpdGVt
cyBhZnRlciBhIHByb2Nlc3Mtc3dhcHBlZCBuYXZpZ2F0aW9uLgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMzg2OTA1NDQ+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgzOTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyB0YWtlcyB0aGUgaW5pdGlhbCB3b3JrIG9mICJwcm9jZXNzIHN3YXAgYSBub3JtYWwg
bmF2aWdhdGlvbiIgYW5kIGV4dGVuZHMgaXQgdG8KKyAgICAgICAgcHJvY2VzcyBzd2FwcGluZyBm
b3IgYmFjay9mb3J3YXJkIGl0ZW0gbmF2aWdhdGlvbnMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weToKKworICAgICAgICBNYWtlIHN1cmUgc3RhdGUgb2JqZWN0cyBhcmUg
c2VyaWFsaXplZCB0byB0aGUgVUkgUHJvY2VzcyBiYWNrL2ZvcndhcmQgbGlzdCBpdGVtcywgYXMg
b3RoZXJ3aXNlCisgICAgICAgIHRoZXkgd2lsbCBiZSBsb3N0IGluIHByb2Nlc3Mtc3dhcCBzY2Vu
YXJpb3M6CisgICAgICAgICogU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VTdGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVN0YXRl
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9TZXNzaW9uU3RhdGUuaDoKKworICAgICAgICBN
YWtlIGEgbmV3IHZhcmlhbnQgb2YgQVBJTmF2aWdhdGlvbiBzcGVjaWZpY2FsbHkgZm9yIGJhY2sv
Zm9yd2FyZCBsaXN0IGl0ZW1zLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlv
bi5jcHA6CisgICAgICAgIChBUEk6Ok5hdmlnYXRpb246Ok5hdmlnYXRpb24pOgorICAgICAgICAo
QVBJOjpOYXZpZ2F0aW9uOjpsb2dnaW5nVVJMIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0FQSU5hdmlnYXRpb24uaDoKKyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbjo6Y3JlYXRlKToK
KyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbjo6YmFja0ZvcndhcmRMaXN0SXRlbSk6CisgICAgICAg
IChBUEk6Ok5hdmlnYXRpb246OmJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSBjb25zdCk6CisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZUdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIgZ29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW06XSk6CisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtOl0pOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYk5hdmlnYXRp
b25TdGF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRpb25TdGF0ZTo6Y3JlYXRl
TG9hZFJlcXVlc3ROYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdGlvblN0
YXRlOjpjcmVhdGVCYWNrRm9yd2FyZE5hdmlnYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJOYXZpZ2F0aW9uU3RhdGUuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQcm9jZXNz
Rm9yUmVsb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2Vi
UHJvY2Vzc1dpdGhJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpnb0Zvcndh
cmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdvQmFjayk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKTogSGFuZGxl
IGJhY2svZm9yd2FyZCBuYXZpZ2F0aW9ucyBkaWZmZXJlbnRseSB0aGFuIG90aGVycy4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXN0b3JlRnJvbVNlc3Npb25TdGF0ZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6YWRk
T3JVcGRhdGVCYWNrRm9yd2FyZEl0ZW0pOiBSZW5hbWVkIGZyb20gImFkZEJhY2tGb3J3YXJkSXRl
bSIgZm9yIGNsYXJpdHkKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjphZGRCYWNr
Rm9yd2FyZEl0ZW0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbToK
KyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjplbmRTd2lwZUdlc3R1cmUp
OgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252
ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6dG9QYWdlU3RhdGUpOgorICAgICAgICAoV2Vi
S2l0Ojp0b0hpc3RvcnlJdGVtKToKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJC
YWNrRm9yd2FyZExpc3RQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnVwZGF0ZUJhY2tGb3J3
YXJkSXRlbSk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdvVG9CYWNrRm9yd2FyZEl0ZW0pOiBDb21iaW5lZCAi
Z29CYWNrIiBhbmQgImdvRm9yd2FyZCIgd2l0aCB0aGlzIG1ldGhvZCwKKyAgICAgICAgICBwYXNz
aW5nIHRoZSBhcHByb3ByaWF0ZSBGcmFtZUxvYWRUeXBlIGFyb3VuZCBhcyBuZWVkZWQgdG8gcmVt
ZW1iZXIgdGhlIHNwZWNpZmljIHR5cGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdvRm9y
d2FyZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdvQmFjayk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAxOC0wMy0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24ocjIyOTgz
MSk6IFByb2Nlc3NTd2FwLkJhc2ljIEFQSSB0ZXN0IGlzIGNyYXNoaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKaW5kZXggZWI3YTdhMzFjNmE4ZjAxYmVmMGEzYmY3MWZhMzdiNjZhY2RlNGZj
MS4uYjUxMDJhMGVhYzE1MDE4OWY1ZjQ3NmMwMjNiNDM5ODAxMGI2MGZmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTAzLTIzICBCcmFkeSBFaWRz
b24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBHbyB0byBiYWNrL2ZvcndhcmQgbGlz
dCBpdGVtcyBhZnRlciBhIHByb2Nlc3Mtc3dhcHBlZCBuYXZpZ2F0aW9uLgorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzg2OTA1NDQ+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgzOTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2xvYWRC
YWNrRm9yd2FyZExpc3RGcm9tT3RoZXJWaWV3Ol0pOgorICAgICAgICAoLVtXZWJWaWV3IGdvVG9C
YWNrRm9yd2FyZEl0ZW06XSk6CisKIDIwMTgtMDMtMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIHRoZSBtaW5pbWFsIHNpbXVsYXRvciBm
ZWF0dXJlIGZsYWcgd2hlbiBhcHByb3ByaWF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNkYzYyMzUxZWE5ZGNlYTgxY2VjYmZl
NTlmN2VkMTM0YTdiZTUwOTAuLmQ3MDE4MmI3NjNjZjkyNTZjNDQzMWQ0OTc5MzdkODdlYjNhZWVi
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEzNDIsNiArMTM0Miw3IEBACiAJCTUxMEQ0QTM3MTAzMTY1RUUwMDQ5RUE1NCAv
KiBTb2NrZXRTdHJlYW1IYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMEQ0QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
MTBENEEzODEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEzMjEwMzE2
NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTExMEZDRkMxRTAzNjQxRDAwNkY4
RDBCIC8qIElEQkN1cnNvclJlY29yZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTExMEZDRkIxRTAzNjJBNTAwNkY4RDBCIC8qIElEQkN1cnNvclJlY29y
ZC5oICovOyB9OworCQk1MTFFOTdBMzIwNjMwNzQ2MDBBRDQ1OTkgLyogTmF2aWdhdGlvblBvbGlj
eUNoZWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTFFOTdBMTIwNjMwNzJBMDBBRDQ1OTkgLyogTmF2aWdhdGlvblBvbGljeUNoZWNrLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTExRUMxMjgxQzUw
QUFDQTAwMzJGOTgzIC8qIElEQlNlcmlhbGl6YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJT
ZXJpYWxpemF0aW9uLmggKi87IH07CiAJCTUxMUVDMTJDMUM1MEFCQkYwMDMyRjk4MyAvKiBTUUxp
dGVJREJUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTExRUMxMkExQzUwQUJCQTAwMzJGOTgzIC8qIFNRTGl0ZUlEQlRyYW5zYWN0aW9u
LmggKi87IH07CiAJCTUxMUVDMTMwMUM1MEFCRjUwMDMyRjk4MyAvKiBTUUxpdGVJREJDdXJzb3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTJF
MUM1MEFCRUMwMDMyRjk4MyAvKiBTUUxpdGVJREJDdXJzb3IuaCAqLzsgfTsKQEAgLTc3MDEsNiAr
NzcwMiw3IEBACiAJCTUxMEQ0QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1
NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMTBGQ0ZCMUUwMzYyQTUwMDZGOEQwQiAvKiBJREJDdXJzb3JSZWNvcmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCQ3Vyc29yUmVjb3JkLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMUU5N0ExMjA2MzA3MkEwMEFENDU5OSAvKiBOYXZp
Z2F0aW9uUG9saWN5Q2hlY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF2
aWdhdGlvblBvbGljeUNoZWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUVD
MTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlNlcmlhbGl6YXRpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTFFQzEyNjFDNTBBQTU3MDAzMkY5ODMgLyogSURCU2VyaWFs
aXphdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJTZXJpYWxpemF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUVDMTI5MUM1MEFCQkEwMDMy
Rjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yMzk2MSw2ICsyMzk2Myw3IEBACiAJCQkJOTNDQ0YwNUYwQUY2Q0E3NjAw
MDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uY3BwICovLAogCQkJCTkzQ0NGMDI2MEFGNkM1Mjkw
MDAxOEU4OSAvKiBOYXZpZ2F0aW9uQWN0aW9uLmggKi8sCiAJCQkJOUJBODI3NzgxRjA2MTU2NTAw
RjcxRTc1IC8qIE5hdmlnYXRpb25EaXNhYmxlci5oICovLAorCQkJCTUxMUU5N0ExMjA2MzA3MkEw
MEFENDU5OSAvKiBOYXZpZ2F0aW9uUG9saWN5Q2hlY2suaCAqLywKIAkJCQk5NzlGNDNEMTEwNzVF
NDRBMDAwMEY4M0IgLyogTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgKi8sCiAJCQkJOTc5RjQzRDIx
MDc1RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRpb25TY2hlZHVsZXIuaCAqLywKIAkJCQk5M0UyMjdE
RDBBRjU4OUFEMDBENDgzMjQgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwICovLApA
QCAtMjkxMjksNiArMjkxMzIsNyBAQAogCQkJCTgzQjJEMTc1MUI4QkNENkEwMEEwMkU0NyAvKiBO
YXRpdmVOb2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTBCOUI2QzBCNzQ3NTk5MDAz
RUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0ND
RjAyNzBBRjZDNTI5MDAwMThFODkgLyogTmF2aWdhdGlvbkFjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNTExRTk3QTMyMDYzMDc0NjAwQUQ0NTk5IC8qIE5hdmlnYXRpb25Qb2xpY3lDaGVjay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTc5RjQzRDQxMDc1RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRp
b25TY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE5QzZFNUE2MEQ3NDY0NTgwMDY0NDJF
OSAvKiBOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjcxOUM3MEVFRUMxNjgwMEY2
MTIxMyAvKiBOYXZpZ2F0b3JCYXNlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmNwcAppbmRleCBmNDUwOTI2M2MwNDAx
OGJkZmE4ZDUyNWViYjE3NmE5ZWI2YTkxNjFlLi4wZjA1YmY2NWEzNWQ2MDdhNjhiYjI2ZmZkY2Y0
Zjc3NjJlNDQ5YWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3
YXJkQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2Fy
ZENvbnRyb2xsZXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQmFja0ZvcndhcmRD
b250cm9sbGVyLmgiCiAKICNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgorI2luY2x1ZGUg
Ik5hdmlnYXRpb25Qb2xpY3lDaGVjay5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNjksNyArNzAsNyBAQCB2b2lkIEJhY2tGb3J3YXJkQ29udHJvbGxlcjo6
Z29CYWNrT3JGb3J3YXJkKGludCBkaXN0YW5jZSkKICAgICBpZiAoIWl0ZW0pCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fcGFnZS5nb1RvSXRlbSgqaXRlbSwgRnJhbWVMb2FkVHlwZTo6SW5kZXhl
ZEJhY2tGb3J3YXJkKTsKKyAgICBtX3BhZ2UuZ29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6
OkluZGV4ZWRCYWNrRm9yd2FyZCwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKTsKIH0K
IAogYm9vbCBCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmdvQmFjaygpCkBAIC03OCw3ICs3OSw3IEBA
IGJvb2wgQmFja0ZvcndhcmRDb250cm9sbGVyOjpnb0JhY2soKQogICAgIGlmICghaXRlbSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9wYWdlLmdvVG9JdGVtKCppdGVtLCBGcmFtZUxv
YWRUeXBlOjpCYWNrKTsKKyAgICBtX3BhZ2UuZ29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6
OkJhY2ssIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZSk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKQEAgLTg4LDcgKzg5LDcgQEAgYm9vbCBCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmdvRm9y
d2FyZCgpCiAgICAgaWYgKCFpdGVtKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX3Bh
Z2UuZ29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6OkZvcndhcmQpOworICAgIG1fcGFnZS5n
b1RvSXRlbSgqaXRlbSwgRnJhbWVMb2FkVHlwZTo6Rm9yd2FyZCwgTmF2aWdhdGlvblBvbGljeUNo
ZWNrOjpSZXF1aXJlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5
L0hpc3RvcnlJdGVtLmNwcAppbmRleCA2YzMwMzRjYWUwMjUwNzNkNDhiMjA5MTY3NDJlYzk0ZGFh
MzZkYzhiLi45ZDg2ODk4OGFkMGVkYWUwMGQ5NWY4NDJmZDM4MjMyNGRmOWY1NTg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcApAQCAtMzExLDYgKzMxMSw3IEBAIHZvaWQg
SGlzdG9yeUl0ZW06OnNldElzVGFyZ2V0SXRlbShib29sIGZsYWcpCiB2b2lkIEhpc3RvcnlJdGVt
OjpzZXRTdGF0ZU9iamVjdChSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG9iamVjdCkK
IHsKICAgICBtX3N0YXRlT2JqZWN0ID0gV1RGTW92ZShvYmplY3QpOworICAgIG5vdGlmeUhpc3Rv
cnlJdGVtQ2hhbmdlZCh0aGlzKTsKIH0KIAogdm9pZCBIaXN0b3J5SXRlbTo6YWRkQ2hpbGRJdGVt
KFJlZjxIaXN0b3J5SXRlbT4mJiBjaGlsZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCmluZGV4IGQ3NmU0NDEwYjYxNTk2NDcwOGYyMGZhYzRkOTg1ZDIzNjk0OWMwNWQuLmZjZjg2
NDk0MzRlMGIwMGNkMGUzNjMzZTdhOTlhMzVlN2ZlY2FkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcApAQCAtODcsNiArODcsNyBAQAogI2luY2x1ZGUgIk1lbW9yeUNhY2hl
LmgiCiAjaW5jbHVkZSAiTWVtb3J5UmVsZWFzZS5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25EaXNh
Ymxlci5oIgorI2luY2x1ZGUgIk5hdmlnYXRpb25Qb2xpY3lDaGVjay5oIgogI2luY2x1ZGUgIk5h
dmlnYXRpb25TY2hlZHVsZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNh
Y2hlLmgiCkBAIC05MjcsNyArOTI4LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTEludG9D
aGlsZEZyYW1lKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVyZXIsIEYKICAgICBp
ZiAocGFyZW50SXRlbSAmJiBwYXJlbnRJdGVtLT5jaGlsZHJlbigpLnNpemUoKSAmJiBpc0JhY2tG
b3J3YXJkTG9hZFR5cGUobG9hZFR5cGUoKSkgJiYgIW1fZnJhbWUuZG9jdW1lbnQoKS0+bG9hZEV2
ZW50RmluaXNoZWQoKSkgewogICAgICAgICBpZiAoYXV0byogY2hpbGRJdGVtID0gcGFyZW50SXRl
bS0+Y2hpbGRJdGVtV2l0aFRhcmdldChjaGlsZEZyYW1lLT50cmVlKCkudW5pcXVlTmFtZSgpKSkg
ewogICAgICAgICAgICAgY2hpbGRGcmFtZS0+bG9hZGVyKCkubV9yZXF1ZXN0ZWRIaXN0b3J5SXRl
bSA9IGNoaWxkSXRlbTsKLSAgICAgICAgICAgIGNoaWxkRnJhbWUtPmxvYWRlcigpLmxvYWREaWZm
ZXJlbnREb2N1bWVudEl0ZW0oKmNoaWxkSXRlbSwgbG9hZFR5cGUoKSwgTWF5QXR0ZW1wdENhY2hl
T25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0ZW0pOworICAgICAgICAgICAgY2hpbGRGcmFtZS0+
bG9hZGVyKCkubG9hZERpZmZlcmVudERvY3VtZW50SXRlbSgqY2hpbGRJdGVtLCBsb2FkVHlwZSgp
LCBNYXlBdHRlbXB0Q2FjaGVPbmx5TG9hZEZvckZvcm1TdWJtaXNzaW9uSXRlbSwgTmF2aWdhdGlv
blBvbGljeUNoZWNrOjpSZXF1aXJlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgIH0KQEAgLTM0NjUsNyArMzQ2Niw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRTYW1lRG9j
dW1lbnRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtKQogLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gc2hv
dWxkIHJlYWxseSBiZSBzcGxpdCBpbnRvIGEgY291cGxlIHBpZWNlcywgc29tZSBvZgogLy8gd2hp
Y2ggc2hvdWxkIGJlIG1ldGhvZHMgb2YgSGlzdG9yeUNvbnRyb2xsZXIgYW5kIHNvbWUgb2Ygd2hp
Y2ggc2hvdWxkIGJlCiAvLyBtZXRob2RzIG9mIEZyYW1lTG9hZGVyLgotdm9pZCBGcmFtZUxvYWRl
cjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2Fk
VHlwZSBsb2FkVHlwZSwgRm9ybVN1Ym1pc3Npb25DYWNoZUxvYWRQb2xpY3kgY2FjaGVMb2FkUG9s
aWN5KQordm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5
SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSwgRm9ybVN1Ym1pc3Npb25DYWNoZUxv
YWRQb2xpY3kgY2FjaGVMb2FkUG9saWN5LCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2sgbmF2aWdhdGlv
blBvbGljeUNoZWNrKQogewogICAgIC8vIFJlbWVtYmVyIHRoaXMgaXRlbSBzbyB3ZSBjYW4gdHJh
dmVyc2UgYW55IGNoaWxkIGl0ZW1zIGFzIGNoaWxkIGZyYW1lcyBsb2FkCiAgICAgaGlzdG9yeSgp
LnNldFByb3Zpc2lvbmFsSXRlbSgmaXRlbSk7CkBAIC0zNTYzLDExICszNTY0LDEzIEBAIHZvaWQg
RnJhbWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0s
IEZyYW1lTG9hZFR5cGUgbG9hCiAgICAgICAgIGFjdGlvbiA9IHsgKm1fZnJhbWUuZG9jdW1lbnQo
KSwgcmVxdWVzdEZvck9yaWdpbmFsVVJMLCBpbml0aWF0ZWRCeU1haW5GcmFtZSwgbG9hZFR5cGUs
IGlzRm9ybVN1Ym1pc3Npb24sIGV2ZW50LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IH07
CiAgICAgfQogCisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY3VycmVudExvYWRTaG91bGRDaGVja05h
dmlnYXRpb25Qb2xpY3lHdWFyZChtX2N1cnJlbnRMb2FkU2hvdWxkQ2hlY2tOYXZpZ2F0aW9uUG9s
aWN5LCBuYXZpZ2F0aW9uUG9saWN5Q2hlY2sgIT0gTmF2aWdhdGlvblBvbGljeUNoZWNrOjpCeXBh
c3MpOworCiAgICAgbG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIGFjdGlvbiwgTG9j
a0hpc3Rvcnk6Ok5vLCBsb2FkVHlwZSwgMCwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZ
ZXMsIFtdIHsgfSk7CiB9CiAKIC8vIExvYWRzIGNvbnRlbnQgaW50byB0aGlzIGZyYW1lLCBhcyBz
cGVjaWZpZWQgYnkgaGlzdG9yeSBpdGVtCi12b2lkIEZyYW1lTG9hZGVyOjpsb2FkSXRlbShIaXN0
b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSkKK3ZvaWQgRnJhbWVMb2FkZXI6
OmxvYWRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBGcmFtZUxvYWRUeXBlIGxvYWRUeXBlLCBOYXZp
Z2F0aW9uUG9saWN5Q2hlY2sgbmF2aWdhdGlvblBvbGljeUNoZWNrKQogewogICAgIG1fcmVxdWVz
dGVkSGlzdG9yeUl0ZW0gPSAmaXRlbTsKICAgICBIaXN0b3J5SXRlbSogY3VycmVudEl0ZW0gPSBo
aXN0b3J5KCkuY3VycmVudEl0ZW0oKTsKQEAgLTM1NzYsNyArMzU3OSw3IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OmxvYWRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBGcmFtZUxvYWRUeXBlIGxvYWRUeXBl
KQogICAgIGlmIChzYW1lRG9jdW1lbnROYXZpZ2F0aW9uKQogICAgICAgICBsb2FkU2FtZURvY3Vt
ZW50SXRlbShpdGVtKTsKICAgICBlbHNlCi0gICAgICAgIGxvYWREaWZmZXJlbnREb2N1bWVudEl0
ZW0oaXRlbSwgbG9hZFR5cGUsIE1heUF0dGVtcHRDYWNoZU9ubHlMb2FkRm9yRm9ybVN1Ym1pc3Np
b25JdGVtKTsKKyAgICAgICAgbG9hZERpZmZlcmVudERvY3VtZW50SXRlbShpdGVtLCBsb2FkVHlw
ZSwgTWF5QXR0ZW1wdENhY2hlT25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0ZW0sIG5hdmlnYXRp
b25Qb2xpY3lDaGVjayk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OnJldHJ5QWZ0ZXJGYWlsZWRD
YWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKCkKQEAgLTM1OTEsNyArMzU5NCw3IEBAIHZvaWQgRnJh
bWVMb2FkZXI6OnJldHJ5QWZ0ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKCkKICAg
ICBIaXN0b3J5SXRlbSYgaXRlbSA9ICpoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCk7CiAKICAg
ICBzdG9wQWxsTG9hZGVycyhTaG91bGROb3RDbGVhclByb3Zpc2lvbmFsSXRlbSk7Ci0gICAgbG9h
ZERpZmZlcmVudERvY3VtZW50SXRlbShpdGVtLCBsb2FkVHlwZSwgTWF5Tm90QXR0ZW1wdENhY2hl
T25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0ZW0pOworICAgIGxvYWREaWZmZXJlbnREb2N1bWVu
dEl0ZW0oaXRlbSwgbG9hZFR5cGUsIE1heU5vdEF0dGVtcHRDYWNoZU9ubHlMb2FkRm9yRm9ybVN1
Ym1pc3Npb25JdGVtLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6OlJlcXVpcmUpOwogfQogCiBSZXNv
dXJjZUVycm9yIEZyYW1lTG9hZGVyOjpjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDhl
NGI5NWViMTQzNjdkMjE1OTllYzNhYjBkOTVhODBkZjlkMjIyNDIuLjdlNWVkNWRkN2U2MjYyNDIx
MTA5ZjZlMDc0OTk5NTZjNDBiNDEwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5o
CkBAIC04MCw2ICs4MCw4IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIFN1YmZyYW1lTG9h
ZGVyOwogY2xhc3MgU3Vic3RpdHV0ZURhdGE7CiAKK2VudW0gY2xhc3MgTmF2aWdhdGlvblBvbGlj
eUNoZWNrOworCiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiAKIFdFQkNPUkVfRVhQT1JUIGJvb2wg
aXNCYWNrRm9yd2FyZExvYWRUeXBlKEZyYW1lTG9hZFR5cGUpOwpAQCAtMTI1LDcgKzEyNyw3IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbG9hZFdpdGhPdmVycmlkZUVuY29k
aW5nKGNvbnN0IFN0cmluZyYgb3ZlcnJpZGVFbmNvZGluZyk7CiAKICAgICB2b2lkIG9wZW4oQ2Fj
aGVkRnJhbWVCYXNlJik7Ci0gICAgdm9pZCBsb2FkSXRlbShIaXN0b3J5SXRlbSYsIEZyYW1lTG9h
ZFR5cGUpOworICAgIHZvaWQgbG9hZEl0ZW0oSGlzdG9yeUl0ZW0mLCBGcmFtZUxvYWRUeXBlLCBO
YXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogICAgIEhpc3RvcnlJdGVtKiByZXF1ZXN0ZWRIaXN0b3J5
SXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkSGlzdG9yeUl0ZW0uZ2V0KCk7IH0KIAog
ICAgIHZvaWQgcmV0cnlBZnRlckZhaWxlZENhY2hlT25seU1haW5SZXNvdXJjZUxvYWQoKTsKQEAg
LTMxNyw3ICszMTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2hlY2tUaW1lckZpcmVkKCk7CiAK
ICAgICB2b2lkIGxvYWRTYW1lRG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJik7Ci0gICAgdm9pZCBs
b2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJiwgRnJhbWVMb2FkVHlwZSwgRm9y
bVN1Ym1pc3Npb25DYWNoZUxvYWRQb2xpY3kpOworICAgIHZvaWQgbG9hZERpZmZlcmVudERvY3Vt
ZW50SXRlbShIaXN0b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUsIEZvcm1TdWJtaXNzaW9uQ2FjaGVM
b2FkUG9saWN5LCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogCiAgICAgdm9pZCBsb2FkUHJvdmlz
aW9uYWxJdGVtRnJvbUNhY2hlZFBhZ2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlclR5cGVzLmgKaW5kZXggNTliNmE2MjNkMTViZDA1N2I4ODYzMWYyNDI5MDUwZGZkOWQwMmJk
Zi4uNmRlMWI2ZmFhZmUyZTlhZDM1NGU2OTkyY2I3NGVjOGFkM2MyOTMxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCkBAIC0xNjQsNCArMTY0LDIwIEBAIHRlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UG9saWN5QWN0aW9uPiB7CiAgICAgPjsK
IH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RnJhbWVMb2FkVHlw
ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkZy
YW1lTG9hZFR5cGUsCisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGU6OlN0YW5kYXJkLAor
ICAgICAgICBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlOjpCYWNrLAorICAgICAgICBXZWJDb3JlOjpG
cmFtZUxvYWRUeXBlOjpGb3J3YXJkLAorICAgICAgICBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlOjpJ
bmRleGVkQmFja0ZvcndhcmQsCisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGU6OlJlbG9h
ZCwKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZTo6U2FtZSwKKyAgICAgICAgV2ViQ29y
ZTo6RnJhbWVMb2FkVHlwZTo6UmVkaXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRMaXN0LAorICAg
ICAgICBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlOjpSZXBsYWNlLAorICAgICAgICBXZWJDb3JlOjpG
cmFtZUxvYWRUeXBlOjpSZWxvYWRGcm9tT3JpZ2luLAorICAgICAgICBXZWJDb3JlOjpGcmFtZUxv
YWRUeXBlOjpSZWxvYWRFeHBpcmVkT25seQorICAgID47Cit9OworCiB9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCmluZGV4IGI4
ZWU3MzM2YjdjZDk3ZGE1MDVjNDkwOGYxNTM5ZTY3N2FmNmYwYTAuLmVhMjU2N2I2MzgwMDRkN2I4
MDY2MGFkNjE2NzlmZjljZDFjZGFkMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9IaXN0b3J5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3Rv
cnlDb250cm9sbGVyLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkhpc3RvcnlJdGVt
LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgorI2luY2x1
ZGUgIk5hdmlnYXRpb25Qb2xpY3lDaGVjay5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgpAQCAtMjkw
LDcgKzI5MSw3IEBAIGJvb2wgSGlzdG9yeUNvbnRyb2xsZXI6OnNob3VsZFN0b3BMb2FkaW5nRm9y
SGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0mIHRhcmdldEl0ZW0pCiAKIC8vIE1haW4gZnVubmVsIGZv
ciBuYXZpZ2F0aW5nIHRvIGEgcHJldmlvdXMgbG9jYXRpb24gKGJhY2svZm9yd2FyZCwgbm9uLXNl
YXJjaCBzbmFwLWJhY2spCiAvLyBUaGlzIGluY2x1ZGVzIHJlY3Vyc2lvbiB0byBoYW5kbGUgbG9h
ZGluZyBpbnRvIGZyYW1lc2V0cyBwcm9wZXJseQotdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6Z29U
b0l0ZW0oSGlzdG9yeUl0ZW0mIHRhcmdldEl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSkKK3ZvaWQg
SGlzdG9yeUNvbnRyb2xsZXI6OmdvVG9JdGVtKEhpc3RvcnlJdGVtJiB0YXJnZXRJdGVtLCBGcmFt
ZUxvYWRUeXBlIHR5cGUsIE5hdmlnYXRpb25Qb2xpY3lDaGVjayBuYXZpZ2F0aW9uUG9saWN5Q2hl
Y2spCiB7CiAgICAgTE9HKEhpc3RvcnksICJIaXN0b3J5Q29udHJvbGxlciAlcCBnb1RvSXRlbSAl
cCB0eXBlPSVkIiwgdGhpcywgJnRhcmdldEl0ZW0sIHN0YXRpY19jYXN0PGludD4odHlwZSkpOwog
CkBAIC0zMjUsMTQgKzMyNiwxNCBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjpnb1RvSXRlbShI
aXN0b3J5SXRlbSYgdGFyZ2V0SXRlbSwgRnJhbWVMb2FkVHlwZSB0eXBlKQogICAgIHJlY3Vyc2l2
ZVNldFByb3Zpc2lvbmFsSXRlbSh0YXJnZXRJdGVtLCBjdXJyZW50SXRlbS5nZXQoKSk7CiAKICAg
ICAvLyBOb3cgdGhhdCBhbGwgb3RoZXIgZnJhbWVzIGhhdmUgcHJvdmlzaW9uYWwgaXRlbXMsIGRv
IHRoZSBhY3R1YWwgbmF2aWdhdGlvbi4KLSAgICByZWN1cnNpdmVHb1RvSXRlbSh0YXJnZXRJdGVt
LCBjdXJyZW50SXRlbS5nZXQoKSwgdHlwZSk7CisgICAgcmVjdXJzaXZlR29Ub0l0ZW0odGFyZ2V0
SXRlbSwgY3VycmVudEl0ZW0uZ2V0KCksIHR5cGUsIG5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CiB9
CiAKIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcikK
IHsKICAgICBtX2RlZmVyc0xvYWRpbmcgPSBkZWZlcjsKICAgICBpZiAoIWRlZmVyICYmIG1fZGVm
ZXJyZWRJdGVtKSB7Ci0gICAgICAgIGdvVG9JdGVtKCptX2RlZmVycmVkSXRlbSwgbV9kZWZlcnJl
ZEZyYW1lTG9hZFR5cGUpOworICAgICAgICBnb1RvSXRlbSgqbV9kZWZlcnJlZEl0ZW0sIG1fZGVm
ZXJyZWRGcmFtZUxvYWRUeXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6OlJlcXVpcmUpOwogICAg
ICAgICBtX2RlZmVycmVkSXRlbSA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAtNzQ5LDEwICs3NTAs
MTAgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVjdXJzaXZlU2V0UHJvdmlzaW9uYWxJdGVt
KEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXQKIAogLy8gV2Ugbm93IHRyYXZlcnNlIHRoZSBm
cmFtZSB0cmVlIGFuZCBpdGVtIHRyZWUgYSBzZWNvbmQgdGltZSwgbG9hZGluZyBmcmFtZXMgdGhh
dAogLy8gZG8gaGF2ZSB0aGUgY29udGVudCB0aGUgaXRlbSByZXF1ZXN0cy4KLXZvaWQgSGlzdG9y
eUNvbnRyb2xsZXI6OnJlY3Vyc2l2ZUdvVG9JdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5
SXRlbSogZnJvbUl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSkKK3ZvaWQgSGlzdG9yeUNvbnRyb2xs
ZXI6OnJlY3Vyc2l2ZUdvVG9JdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXRlbSogZnJv
bUl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSwgTmF2aWdhdGlvblBvbGljeUNoZWNrIG5hdmlnYXRp
b25Qb2xpY3lDaGVjaykKIHsKICAgICBpZiAoIWl0ZW1zQXJlQ2xvbmVzKGl0ZW0sIGZyb21JdGVt
KSkgewotICAgICAgICBtX2ZyYW1lLmxvYWRlcigpLmxvYWRJdGVtKGl0ZW0sIHR5cGUpOworICAg
ICAgICBtX2ZyYW1lLmxvYWRlcigpLmxvYWRJdGVtKGl0ZW0sIHR5cGUsIG5hdmlnYXRpb25Qb2xp
Y3lDaGVjayk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTc2Myw3ICs3NjQsNyBAQCB2
b2lkIEhpc3RvcnlDb250cm9sbGVyOjpyZWN1cnNpdmVHb1RvSXRlbShIaXN0b3J5SXRlbSYgaXRl
bSwgSGlzdG9yeUl0ZW0qIGZyb21JdAogICAgICAgICBIaXN0b3J5SXRlbSogZnJvbUNoaWxkSXRl
bSA9IGZyb21JdGVtLT5jaGlsZEl0ZW1XaXRoVGFyZ2V0KGNoaWxkRnJhbWVOYW1lKTsKICAgICAg
ICAgQVNTRVJUKGZyb21DaGlsZEl0ZW0pOwogICAgICAgICBpZiAoRnJhbWUqIGNoaWxkRnJhbWUg
PSBtX2ZyYW1lLnRyZWUoKS5jaGlsZChjaGlsZEZyYW1lTmFtZSkpCi0gICAgICAgICAgICBjaGls
ZEZyYW1lLT5sb2FkZXIoKS5oaXN0b3J5KCkucmVjdXJzaXZlR29Ub0l0ZW0oY2hpbGRJdGVtLCBm
cm9tQ2hpbGRJdGVtLCB0eXBlKTsKKyAgICAgICAgICAgIGNoaWxkRnJhbWUtPmxvYWRlcigpLmhp
c3RvcnkoKS5yZWN1cnNpdmVHb1RvSXRlbShjaGlsZEl0ZW0sIGZyb21DaGlsZEl0ZW0sIHR5cGUs
IG5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9IaXN0b3J5Q29udHJvbGxlci5oCmluZGV4IDNkMjVlMjg5YjIyZmIxZjk5NjNmNmRmYjMzNDc4
OTU4MWQwOTI3MDEuLjQ1MzVhYWViMzgwZDE4NWM5YTExMTlmYjU4ODRjNThmMzBmNTkwZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCkBAIC00MCw2ICs0MCw4
IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgSGlzdG9yeUl0ZW07CiBjbGFzcyBTZXJpYWxpemVkU2Ny
aXB0VmFsdWU7CiAKK2VudW0gY2xhc3MgTmF2aWdhdGlvblBvbGljeUNoZWNrOworCiBzdHJ1Y3Qg
U3RyaW5nV2l0aERpcmVjdGlvbjsKIAogY2xhc3MgSGlzdG9yeUNvbnRyb2xsZXIgewpAQCAtOTIs
MTQgKzk0LDE0IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFBhZ2U7CiAg
ICAgYm9vbCBzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtJikgY29u
c3Q7Ci0gICAgdm9pZCBnb1RvSXRlbShIaXN0b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUpOworICAg
IHZvaWQgZ29Ub0l0ZW0oSGlzdG9yeUl0ZW0mLCBGcmFtZUxvYWRUeXBlLCBOYXZpZ2F0aW9uUG9s
aWN5Q2hlY2spOwogCiAgICAgdm9pZCBpbml0aWFsaXplSXRlbShIaXN0b3J5SXRlbSYpOwogICAg
IFJlZjxIaXN0b3J5SXRlbT4gY3JlYXRlSXRlbSgpOwogICAgIFJlZjxIaXN0b3J5SXRlbT4gY3Jl
YXRlSXRlbVRyZWUoRnJhbWUmIHRhcmdldEZyYW1lLCBib29sIGNsaXBBdFRhcmdldCk7CiAKICAg
ICB2b2lkIHJlY3Vyc2l2ZVNldFByb3Zpc2lvbmFsSXRlbShIaXN0b3J5SXRlbSYsIEhpc3RvcnlJ
dGVtKik7Ci0gICAgdm9pZCByZWN1cnNpdmVHb1RvSXRlbShIaXN0b3J5SXRlbSYsIEhpc3RvcnlJ
dGVtKiwgRnJhbWVMb2FkVHlwZSk7CisgICAgdm9pZCByZWN1cnNpdmVHb1RvSXRlbShIaXN0b3J5
SXRlbSYsIEhpc3RvcnlJdGVtKiwgRnJhbWVMb2FkVHlwZSwgTmF2aWdhdGlvblBvbGljeUNoZWNr
KTsKICAgICBib29sIGlzUmVwbGFjZUxvYWRUeXBlV2l0aFByb3Zpc2lvbmFsSXRlbShGcmFtZUxv
YWRUeXBlKTsKICAgICBib29sIGlzUmVsb2FkVHlwZVdpdGhQcm92aXNpb25hbEl0ZW0oRnJhbWVM
b2FkVHlwZSk7CiAgICAgdm9pZCByZWN1cnNpdmVVcGRhdGVGb3JDb21taXQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uUG9saWN5Q2hlY2suaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uUG9saWN5Q2hlY2suaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjE3
OGVmZGNhOGVkMGRhOGUzOWEyNmRlMmFjNWQ4NmNiM2M4YjY0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25Qb2xpY3lDaGVjay5oCkBAIC0wLDAgKzEs
NDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJh
aXRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9s
aWN5Q2hlY2sgeworICAgIFJlcXVpcmUsCisgICAgQnlwYXNzLAorfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpOYXZpZ2F0aW9uUG9saWN5Q2hlY2s+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpOYXZpZ2F0aW9uUG9saWN5Q2hlY2ssCisg
ICAgICAgIFdlYkNvcmU6Ok5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZSwKKyAgICAgICAg
V2ViQ29yZTo6TmF2aWdhdGlvblBvbGljeUNoZWNrOjpCeXBhc3MKKyAgICA+OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAzOTQzYWEyY2RhY2E1MzYzOGI5
OTc2YTliNDY2OWFmYjU4NmU3YTBlLi45NTU4MTQ2NGEzZGQzYTFmNDIwZTg1YTVhNTZjOTQ5OGVk
YjUyZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTQ0Nyw3ICs0NDcsNyBAQCB2b2lkIFBhZ2U6
OnNldE9wZW5lZEJ5RE9NKCkKICAgICBtX29wZW5lZEJ5RE9NID0gdHJ1ZTsKIH0KIAotdm9pZCBQ
YWdlOjpnb1RvSXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSB0eXBlKQordm9p
ZCBQYWdlOjpnb1RvSXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSB0eXBlLCBO
YXZpZ2F0aW9uUG9saWN5Q2hlY2sgbmF2aWdhdGlvblBvbGljeUNoZWNrKQogewogICAgIC8vIHN0
b3BBbGxMb2FkZXJzIG1heSBlbmQgdXAgcnVubmluZyBvbmxvYWQgaGFuZGxlcnMsIHdoaWNoIGNv
dWxkIGNhdXNlIGZ1cnRoZXIgaGlzdG9yeSB0cmF2ZXJzYWxzIHRoYXQgbWF5IGxlYWQgdG8gdGhl
IHBhc3NlZCBpbiBIaXN0b3J5SXRlbQogICAgIC8vIGJlaW5nIGRlcmVmKCktZWQuIE1ha2Ugc3Vy
ZSB3ZSBjYW4gc3RpbGwgdXNlIGl0IHdpdGggSGlzdG9yeUNvbnRyb2xsZXI6OmdvVG9JdGVtIGxh
dGVyLgpAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQgUGFnZTo6Z29Ub0l0ZW0oSGlzdG9yeUl0ZW0m
IGl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSkKICAgICBpZiAobV9tYWluRnJhbWUtPmxvYWRlcigp
Lmhpc3RvcnkoKS5zaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKGl0ZW0pKQogICAgICAg
ICBtX21haW5GcmFtZS0+bG9hZGVyKCkuc3RvcEFsbExvYWRlcnMoKTsKIAotICAgIG1fbWFpbkZy
YW1lLT5sb2FkZXIoKS5oaXN0b3J5KCkuZ29Ub0l0ZW0oaXRlbSwgdHlwZSk7CisgICAgbV9tYWlu
RnJhbWUtPmxvYWRlcigpLmhpc3RvcnkoKS5nb1RvSXRlbShpdGVtLCB0eXBlLCBuYXZpZ2F0aW9u
UG9saWN5Q2hlY2spOwogfQogCiB2b2lkIFBhZ2U6OnNldEdyb3VwTmFtZShjb25zdCBTdHJpbmcm
IG5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDlmZGQ0ZDgxZDMxYjU1ODAxYmU3OGJlYTJmOGI1ODk4
OTVlMWU5ZWUuLjkwNzlkOGFhZmQyODA5NWZlNGJkMzQ0MTE4MTRhODA2MzkzYmE3YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCkBAIC0xNDUsNiArMTQ1LDcgQEAgZW51bSBjbGFzcyBFdmVudFRocm90dGxpbmdC
ZWhhdmlvciB7CiAKIGVudW0gY2xhc3MgQ2FuV3JhcCA6IGJvb2w7CiBlbnVtIGNsYXNzIERpZFdy
YXAgOiBib29sOworZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s7CiAKIGNsYXNzIFBh
Z2UgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8UGFnZT4gewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFBhZ2UpOwpAQCAtMTgwLDcgKzE4MSw3IEBAIHB1YmxpYzoKICAgICBib29sIG9wZW5lZEJ5
RE9NKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRPcGVuZWRCeURPTSgpOwogCi0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBnb1RvSXRlbShIaXN0b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZ29Ub0l0ZW0oSGlzdG9yeUl0ZW0mLCBGcmFtZUxvYWRUeXBlLCBO
YXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRHcm91
cE5hbWUoY29uc3QgU3RyaW5nJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgU3RyaW5nJiBn
cm91cE5hbWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CmluZGV4IGMwYjMwZDM2Nzc5MDZlZjMxYmVhYTg5NTMxZjVlYWNmMGY1NjcwZmIuLjgyMDc4MGI4
OWVhNDZhMDYxZTk2YjEzM2U1ZGE0Zjk3ZjRjZTkwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMzcyLDYgKzM3Miw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90
eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzJzogWyc8V2Vi
Q29yZS9BdXRvcGxheUV2ZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpFeGNlcHRpb25EZXRh
aWxzJzogWyc8V2ViQ29yZS9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJzogWyc8V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPidd
LAorICAgICAgICAnV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSc6IFsnPFdlYkNvcmUvRnJhbWVMb2Fk
ZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6R3JhbW1hckRldGFpbCc6IFsnPFdlYkNv
cmUvVGV4dENoZWNrZXJDbGllbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Okhhc0luc2VjdXJl
Q29udGVudCc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6SGlnaGxpZ2h0JzogWyc8V2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5Lmg+J10sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmNwcAppbmRleCBiMGFhZTU5YWIwZWJjMjkwYTVlNTk0
YTU0OWE4M2MzOTRiMTk4YWE5Li45MTFkMmU3Mzc3OGM5ZWY1YWE4ZjViMzIzOWNkYmM4ZDU0MTI2
MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAKQEAgLTI4LDYgKzI4LDgg
QEAKIAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGJvb2wgaXNWYWxpZEVudW0oV2Vi
Q29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBwb2xpY3kpCkBAIC0xODQsOCArMTg2
LDExIEBAIHN0ZDo6b3B0aW9uYWw8RnJhbWVTdGF0ZT4gRnJhbWVTdGF0ZTo6ZGVjb2RlKElQQzo6
RGVjb2RlciYgZGVjb2RlcikKIAogdm9pZCBQYWdlU3RhdGU6OmVuY29kZShJUEM6OkVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCB0aXRsZTsKLSAgICBlbmNvZGVyIDw8
IG1haW5GcmFtZVN0YXRlOworICAgIGVuY29kZXIgPDwgdGl0bGUgPDwgbWFpbkZyYW1lU3RhdGUg
PDwgISFzZXNzaW9uU3RhdGVPYmplY3Q7CisKKyAgICBpZiAoc2Vzc2lvblN0YXRlT2JqZWN0KQor
ICAgICAgICBlbmNvZGVyIDw8IHNlc3Npb25TdGF0ZU9iamVjdC0+dG9XaXJlQnl0ZXMoKTsKKwog
ICAgIGVuY29kZXIuZW5jb2RlRW51bShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKIH0K
IApAQCAtMTk4LDYgKzIwMywxOSBAQCBib29sIFBhZ2VTdGF0ZTo6ZGVjb2RlKElQQzo6RGVjb2Rl
ciYgZGVjb2RlciwgUGFnZVN0YXRlJiByZXN1bHQpCiAgICAgaWYgKCFtYWluRnJhbWVTdGF0ZSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJlc3VsdC5tYWluRnJhbWVTdGF0ZSA9IFdURk1v
dmUoKm1haW5GcmFtZVN0YXRlKTsKKworICAgIGJvb2wgaGFzU2Vzc2lvblN0YXRlOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoaGFzU2Vzc2lvblN0YXRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgaWYgKGhhc1Nlc3Npb25TdGF0ZSkgeworICAgICAgICBWZWN0b3I8dWludDhfdD4g
d2lyZUJ5dGVzOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHdpcmVCeXRlcykpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmVzdWx0LnNlc3Npb25TdGF0ZU9iamVj
dCA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlRnJvbVdpcmVCeXRlcyhXVEZNb3ZlKHdp
cmVCeXRlcykpOworICAgIH0KKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5z
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KSB8fCAhaXNWYWxpZEVudW0ocmVzdWx0LnNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKaW5kZXggYzM1NGJkNzMzYjk4NWZiMzJhMTg2ZTQ2MGRl
NTAxMDJhYjVlZDhlOS4uMTQ4MjE0NDVjODdmZTQzMzU1Nzk2MmJjYjM0OTkzZTUxZDJmMmFmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgogI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTExOSw2ICsxMjAs
NyBAQCBzdHJ1Y3QgUGFnZVN0YXRlIHsKICAgICBTdHJpbmcgdGl0bGU7CiAgICAgRnJhbWVTdGF0
ZSBtYWluRnJhbWVTdGF0ZTsKICAgICBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgeyBXZWJDb3JlOjpTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyB9OworICAgIFJlZlB0cjxXZWJDb3JlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlc3Npb25TdGF0ZU9iamVjdDsKIH07CiAKIHN0cnVjdCBC
YWNrRm9yd2FyZExpc3RJdGVtU3RhdGUgewpAQCAtMTMxLDcgKzEzMyw2IEBAIHN0cnVjdCBCYWNr
Rm9yd2FyZExpc3RJdGVtU3RhdGUgewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJlZlB0cjxW
aWV3U25hcHNob3Q+IHNuYXBzaG90OwogI2VuZGlmCi0KIH07CiAKIHN0cnVjdCBCYWNrRm9yd2Fy
ZExpc3RTdGF0ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
TmF2aWdhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlv
bi5jcHAKaW5kZXggYjdmNjk4ZWFiMmRjZDFkOTYzZWY4ZGI4OWI0MDgwNWJlNWE0NDQyMy4uYmVh
MzMzZTlmNDRiYzFkYTlkODJhOTRiMTUxMzhmNTFlMjZmMWYzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmNwcApAQCAtMjYsMjIgKzI2LDMzIEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5oIgogCisjaW5jbHVk
ZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25TdGF0
ZS5oIgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CisKIG5hbWVzcGFjZSBBUEkgewogCi1OYXZpZ2F0aW9uOjpOYXZpZ2F0aW9uKFdlYktpdDo6V2Vi
TmF2aWdhdGlvblN0YXRlJiBzdGF0ZSkKK05hdmlnYXRpb246Ok5hdmlnYXRpb24oV2ViTmF2aWdh
dGlvblN0YXRlJiBzdGF0ZSkKICAgICA6IG1fbmF2aWdhdGlvbklEKHN0YXRlLmdlbmVyYXRlTmF2
aWdhdGlvbklEKCkpCiB7CiB9CiAKLU5hdmlnYXRpb246Ok5hdmlnYXRpb24oV2ViS2l0OjpXZWJO
YXZpZ2F0aW9uU3RhdGUmIHN0YXRlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
KQorTmF2aWdhdGlvbjo6TmF2aWdhdGlvbihXZWJOYXZpZ2F0aW9uU3RhdGUmIHN0YXRlLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogICAgIDogbV9uYXZpZ2F0aW9uSUQoc3Rh
dGUuZ2VuZXJhdGVOYXZpZ2F0aW9uSUQoKSkKICAgICAsIG1fcmVxdWVzdChXVEZNb3ZlKHJlcXVl
c3QpKQogewogICAgIG1fcmVkaXJlY3RDaGFpbi5hcHBlbmQobV9yZXF1ZXN0LnVybCgpKTsKIH0K
IAorTmF2aWdhdGlvbjo6TmF2aWdhdGlvbihXZWJOYXZpZ2F0aW9uU3RhdGUmIHN0YXRlLCBXZWJC
YWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtLCBGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkRnJhbWVM
b2FkVHlwZSkKKyAgICA6IG1fbmF2aWdhdGlvbklEKHN0YXRlLmdlbmVyYXRlTmF2aWdhdGlvbklE
KCkpCisgICAgLCBtX2JhY2tGb3J3YXJkTGlzdEl0ZW0oJml0ZW0pCisgICAgLCBtX2JhY2tGb3J3
YXJkRnJhbWVMb2FkVHlwZShiYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUpCit7Cit9CisKIE5hdmln
YXRpb246On5OYXZpZ2F0aW9uKCkKIHsKIH0KQEAgLTUyLDQgKzYzLDExIEBAIHZvaWQgTmF2aWdh
dGlvbjo6YXBwZW5kUmVkaXJlY3Rpb25VUkwoY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwpCiAgICAg
ICAgIG1fcmVkaXJlY3RDaGFpbi5hcHBlbmQodXJsKTsKIH0KIAorI2lmICFMT0dfRElTQUJMRUQK
K1dURjo6U3RyaW5nIE5hdmlnYXRpb246OmxvZ2dpbmdVUkwoKSBjb25zdAoreworICAgIHJldHVy
biBtX2JhY2tGb3J3YXJkTGlzdEl0ZW0gPyBtX2JhY2tGb3J3YXJkTGlzdEl0ZW0tPnVybCgpIDog
bV9yZXF1ZXN0LnVybCgpLnN0cmluZygpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRp
b24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmgKaW5kZXgg
NDRmZjUwY2M2ODg0NmE1YzBjZjJlNmY4YThjOGY1ZTgxZTg0OTFhNi4uZjFmODk1NzA4ZDQ5ODgw
OWRjNjNjMzlhZjI0MjQxMjVlOWUzYTQxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJTmF2aWdhdGlvbi5oCkBAIC0yOSw3ICsyOSwxMiBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitlbnVtIGNsYXNzIEZyYW1lTG9hZFR5cGU7Cit9OworCiBuYW1lc3BhY2UgV2ViS2l0
IHsKK2NsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBXZWJOYXZpZ2F0aW9uU3Rh
dGU7CiB9CiAKQEAgLTQzLDYgKzQ4LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgTmF2aWdhdGlvbihzdGF0ZSkpOwogICAgIH0KIAorICAgIHN0YXRpYyBSZWY8TmF2
aWdhdGlvbj4gY3JlYXRlKFdlYktpdDo6V2ViTmF2aWdhdGlvblN0YXRlJiBzdGF0ZSwgV2ViS2l0
OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtLCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJh
Y2tGb3J3YXJkRnJhbWVMb2FkVHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE5hdmlnYXRpb24oc3RhdGUsIGl0ZW0sIGJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSkpOwor
ICAgIH0KKwogICAgIHN0YXRpYyBSZWY8TmF2aWdhdGlvbj4gY3JlYXRlKFdlYktpdDo6V2ViTmF2
aWdhdGlvblN0YXRlJiBzdGF0ZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5hdmlnYXRpb24oc3RhdGUsIFdU
Rk1vdmUocmVxdWVzdCkpKTsKQEAgLTUzLDYgKzYzLDggQEAgcHVibGljOgogICAgIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF2aWdhdGlvbklEOyB9CiAKICAgICBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBt
X3JlcXVlc3Q7IH0KKyAgICBXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGJhY2tGb3J3
YXJkTGlzdEl0ZW0oKSB7IHJldHVybiBtX2JhY2tGb3J3YXJkTGlzdEl0ZW0uZ2V0KCk7IH0KKyAg
ICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lTG9hZFR5cGU+IGJhY2tGb3J3YXJkRnJhbWVM
b2FkVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBlOyB9CiAK
ICAgICB2b2lkIGFwcGVuZFJlZGlyZWN0aW9uVVJMKGNvbnN0IFdlYkNvcmU6OlVSTCYpOwogICAg
IFZlY3RvcjxXZWJDb3JlOjpVUkw+IHRha2VSZWRpcmVjdENoYWluKCkgeyByZXR1cm4gV1RGTW92
ZShtX3JlZGlyZWN0Q2hhaW4pOyB9CkBAIC02MywxNSArNzUsMjMgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0U2hvdWxkRm9yY2VEb3dubG9hZChib29sIHZhbHVlKSB7IG1fc2hvdWxkRm9yY2VEb3du
bG9hZCA9IHZhbHVlOyB9CiAgICAgYm9vbCBzaG91bGRGb3JjZURvd25sb2FkKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaG91bGRGb3JjZURvd25sb2FkOyB9CiAKKyNpZiAhTE9HX0RJU0FCTEVECisgICAg
V1RGOjpTdHJpbmcgbG9nZ2luZ1VSTCgpIGNvbnN0OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgTmF2aWdhdGlvbihXZWJLaXQ6OldlYk5hdmlnYXRpb25TdGF0ZSYpOwogICAgIE5h
dmlnYXRpb24oV2ViS2l0OjpXZWJOYXZpZ2F0aW9uU3RhdGUmLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJik7CisgICAgTmF2aWdhdGlvbihXZWJLaXQ6OldlYk5hdmlnYXRpb25TdGF0ZSYsIFdl
YktpdDo6V2ViQmFja0ZvcndhcmRMaXN0SXRlbSYsIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUpOwog
CiAgICAgdWludDY0X3QgbV9uYXZpZ2F0aW9uSUQ7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IG1fcmVxdWVzdDsKICAgICBWZWN0b3I8V2ViQ29yZTo6VVJMPiBtX3JlZGlyZWN0Q2hhaW47
CiAgICAgYm9vbCBtX3dhc1VzZXJJbml0aWF0ZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX3Nob3Vs
ZEZvcmNlRG93bmxvYWQgeyBmYWxzZSB9OworCisgICAgUmVmUHRyPFdlYktpdDo6V2ViQmFja0Zv
cndhcmRMaXN0SXRlbT4gbV9iYWNrRm9yd2FyZExpc3RJdGVtOworICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVMb2FkVHlwZT4gbV9iYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCmluZGV4IDk3ZTk5ODI2MDEzMmUzNzQ4MTczMTY3NDZhMzI4Y2JlNDhiOWFmYWYuLjZhNjU1
ZmQyODIyNjQ0MWRkMDY2ZWQwYmJiN2RkMGZlODc0MzI5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMzA1LDcgKzMwNSw3IEBAIGJvb2wgV0tQYWdlQ2Fu
R29CYWNrKFdLUGFnZVJlZiBwYWdlUmVmKQogCiB2b2lkIFdLUGFnZUdvVG9CYWNrRm9yd2FyZExp
c3RJdGVtKFdLUGFnZVJlZiBwYWdlUmVmLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbVJl
ZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPmdvVG9CYWNrRm9yd2FyZEl0ZW0odG9JbXBsKGl0
ZW1SZWYpKTsKKyAgICB0b0ltcGwocGFnZVJlZiktPmdvVG9CYWNrRm9yd2FyZEl0ZW0oKnRvSW1w
bChpdGVtUmVmKSk7CiB9CiAKIHZvaWQgV0tQYWdlVHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKFdL
UGFnZVJlZiBwYWdlUmVmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0KaW5kZXggYjdl
NWU2OTJjODMwNjcyYmUwMGUxZTYxMDg1ZjM1ZWRiMzRmOTdiMC4uODFlNGU1MjMxYjhlMDBlMWI2
NmEwODkxOWQwYjUyZDNkNjQ1YjVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1t
CkBAIC0yNDEsNyArMjQxLDcgQEAgc3RhdGljIEhhc2hNYXA8V2ViUGFnZVByb3h5KiwgV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyICo+JiBicm93c2luZ0NvbnRleHRDb24KIAogLSAodm9pZCln
b1RvQmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbQogewot
ICAgIF9wYWdlLT5nb1RvQmFja0ZvcndhcmRJdGVtKCZpdGVtLl9pdGVtKTsKKyAgICBfcGFnZS0+
Z29Ub0JhY2tGb3J3YXJkSXRlbShpdGVtLl9pdGVtKTsKIH0KIAogLSAoV0tCYWNrRm9yd2FyZExp
c3QgKiliYWNrRm9yd2FyZExpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCmluZGV4IDE4YjJiYzFlYmQwNzFjZWYwZGMwNmJkZjcxNTgzNDUzZWZj
ZmU4NTQuLmY5YTYyYmQ0ZTQ3MTA1ZjZkNGE5NWM1OGQ3YzlkNjE2NTA0ZWI5YTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtOTA3LDcg
KzkwNyw3IEBAIHN0YXRpYyB2b2lkIHZhbGlkYXRlKFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNv
bmZpZ3VyYXRpb24pCiAKIC0gKFdLTmF2aWdhdGlvbiAqKWdvVG9CYWNrRm9yd2FyZExpc3RJdGVt
OihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtCiB7Ci0gICAgYXV0byBuYXZpZ2F0aW9uID0g
X3BhZ2UtPmdvVG9CYWNrRm9yd2FyZEl0ZW0oJml0ZW0uX2l0ZW0pOworICAgIGF1dG8gbmF2aWdh
dGlvbiA9IF9wYWdlLT5nb1RvQmFja0ZvcndhcmRJdGVtKGl0ZW0uX2l0ZW0pOwogICAgIGlmICgh
bmF2aWdhdGlvbikKICAgICAgICAgcmV0dXJuIG5pbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYk5hdmlnYXRpb25TdGF0ZS5jcHAKaW5kZXggNDhmOTM0NTllOWExNjg1MGVkMjc5
MGFkMGNkNzRmMWViOTllMzZlNC4uMzFhNzA3YjJlNjg0YmVkOTMwOWI3MzJjYjNlODFkNGYzYWVm
NmZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0
YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uU3RhdGUu
Y3BwCkBAIC0zMCw2ICszMCw4IEBACiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KIAordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJOYXZpZ2F0aW9uU3RhdGU6OldlYk5hdmlnYXRp
b25TdGF0ZSgpCkBAIC00MCw3ICs0Miw3IEBAIFdlYk5hdmlnYXRpb25TdGF0ZTo6fldlYk5hdmln
YXRpb25TdGF0ZSgpCiB7CiB9CiAKLVJlZjxBUEk6Ok5hdmlnYXRpb24+IFdlYk5hdmlnYXRpb25T
dGF0ZTo6Y3JlYXRlTG9hZFJlcXVlc3ROYXZpZ2F0aW9uKFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QpCitSZWY8QVBJOjpOYXZpZ2F0aW9uPiBXZWJOYXZpZ2F0aW9uU3RhdGU6OmNy
ZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlvbihSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewog
ICAgIGF1dG8gbmF2aWdhdGlvbiA9IEFQSTo6TmF2aWdhdGlvbjo6Y3JlYXRlKCp0aGlzLCBXVEZN
b3ZlKHJlcXVlc3QpKTsKIApAQCAtNDksOSArNTEsOSBAQCBSZWY8QVBJOjpOYXZpZ2F0aW9uPiBX
ZWJOYXZpZ2F0aW9uU3RhdGU6OmNyZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlvbihXZWJDb3JlOjpS
ZQogICAgIHJldHVybiBuYXZpZ2F0aW9uOwogfQogCi1SZWY8QVBJOjpOYXZpZ2F0aW9uPiBXZWJO
YXZpZ2F0aW9uU3RhdGU6OmNyZWF0ZUJhY2tGb3J3YXJkTmF2aWdhdGlvbigpCitSZWY8QVBJOjpO
YXZpZ2F0aW9uPiBXZWJOYXZpZ2F0aW9uU3RhdGU6OmNyZWF0ZUJhY2tGb3J3YXJkTmF2aWdhdGlv
bihXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtLCBGcmFtZUxvYWRUeXBlIGZyYW1lTG9hZFR5
cGUpCiB7Ci0gICAgYXV0byBuYXZpZ2F0aW9uID0gQVBJOjpOYXZpZ2F0aW9uOjpjcmVhdGUoKnRo
aXMpOworICAgIGF1dG8gbmF2aWdhdGlvbiA9IEFQSTo6TmF2aWdhdGlvbjo6Y3JlYXRlKCp0aGlz
LCBpdGVtLCBmcmFtZUxvYWRUeXBlKTsKIAogICAgIG1fbmF2aWdhdGlvbnMuc2V0KG5hdmlnYXRp
b24tPm5hdmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9uLnB0cigpKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uU3RhdGUuaAppbmRleCA0NWFiMmQyYmM3Y2I2MDBhZjkz
NjRkOGIyNWIyZDdmYzRhOWIzZTkzLi4wZTEyZjNmODAxMWFhZGEzZTg2MzM5YTk5M2VjY2NkOGYy
NzFlOGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9u
U3RhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uU3RhdGUu
aApAQCAtMzQsNiArMzQsOCBAQCBjbGFzcyBOYXZpZ2F0aW9uOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CisKK2VudW0gY2xhc3MgRnJhbWVMb2FkVHlwZTsK
IH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Niw3ICs0OCw3IEBAIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBXZWJOYXZpZ2F0aW9uU3RhdGUoKTsKICAgICB+V2ViTmF2aWdhdGlvblN0YXRlKCk7
CiAKLSAgICBSZWY8QVBJOjpOYXZpZ2F0aW9uPiBjcmVhdGVCYWNrRm9yd2FyZE5hdmlnYXRpb24o
KTsKKyAgICBSZWY8QVBJOjpOYXZpZ2F0aW9uPiBjcmVhdGVCYWNrRm9yd2FyZE5hdmlnYXRpb24o
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSYsIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUpOwogICAgIFJl
ZjxBUEk6Ok5hdmlnYXRpb24+IGNyZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlvbihXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmJik7CiAgICAgUmVmPEFQSTo6TmF2aWdhdGlvbj4gY3JlYXRlUmVsb2Fk
TmF2aWdhdGlvbigpOwogICAgIFJlZjxBUEk6Ok5hdmlnYXRpb24+IGNyZWF0ZUxvYWREYXRhTmF2
aWdhdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXgg
MjcyZDYzOTAxY2RhYjhmZWFiYmEwMDY2MDZhMmYyN2E1ZmY3YjI3ZC4uODhjNzU4NTk4ZTFiN2Vh
Y2FlYmY0ZjAyNWE3MDc1NmRiYjIwOWVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC0xMjYsMTEgKzEyNiwxMyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRXZl
bnROYW1lcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9Gb2N1c0RpcmVjdGlvbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NQmluZGluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSlNE
T01FeGNlcHRpb25IYW5kbGluZy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGVuZ3RoQm94Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9NSU1FVHlwZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYVN0cmVhbVJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05hdmlnYXRpb25Qb2xpY3lD
aGVjay5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGVyZm9ybWFuY2VMb2dnaW5nQ2xpZW50Lmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9QdWJsaWNTdWZmaXguaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlbmRl
ckVtYmVkZGVkT2JqZWN0Lmg+CkBAIC03MTMsMTMgKzcxNSwxMyBAQCBSZWZQdHI8QVBJOjpOYXZp
Z2F0aW9uPiBXZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQcm9jZXNzRm9yUmVsb2FkKCkKICAg
ICBhdXRvIG5hdmlnYXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlUmVsb2FkTmF2aWdh
dGlvbigpOwogCiAgICAgLy8gV2UgYWxsb3cgc3RhbGUgY29udGVudCB3aGVuIHJlbG9hZGluZyBh
IFdlYlByb2Nlc3MgdGhhdCdzIGJlZW4ga2lsbGVkIG9yIGNyYXNoZWQuCi0gICAgbV9wcm9jZXNz
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24t
Pm5hdmlnYXRpb25JRCgpLCBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKS0+aXRlbUlE
KCkpLCBtX3BhZ2VJRCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpH
b1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpLCBtX2JhY2tGb3J3
YXJkTGlzdC0+Y3VycmVudEl0ZW0oKS0+aXRlbUlEKCksIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRC
YWNrRm9yd2FyZCwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKSwgbV9wYWdlSUQpOwog
ICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CiAKICAgICByZXR1
cm4gV1RGTW92ZShuYXZpZ2F0aW9uKTsKIH0KIAotUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2Vi
UGFnZVByb3h5OjpyZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0qIGl0ZW0pCitSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6OnJlYXR0
YWNoVG9XZWJQcm9jZXNzV2l0aEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYgaXRlbSkKIHsK
ICAgICBpZiAobV9pc0Nsb3NlZCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBAIC03MjcsMTUg
KzcyOSwxMiBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6OnJlYXR0YWNo
VG9XZWJQcm9jZXNzV2l0aEl0ZW0oV2ViQmFja0ZvcndhcgogICAgIEFTU0VSVCghaXNWYWxpZCgp
KTsKICAgICByZWF0dGFjaFRvV2ViUHJvY2VzcygpOwogCi0gICAgaWYgKCFpdGVtKQotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICBpZiAoJml0ZW0gIT0gbV9iYWNrRm9yd2FyZExpc3QtPmN1
cnJlbnRJdGVtKCkpCisgICAgICAgIG1fYmFja0ZvcndhcmRMaXN0LT5nb1RvSXRlbShpdGVtKTsK
IAotICAgIGlmIChpdGVtICE9IG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpKQotICAg
ICAgICBtX2JhY2tGb3J3YXJkTGlzdC0+Z29Ub0l0ZW0oKml0ZW0pOworICAgIGF1dG8gbmF2aWdh
dGlvbiA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVCYWNrRm9yd2FyZE5hdmlnYXRpb24oaXRl
bSwgRnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJkKTsKIAotICAgIGF1dG8gbmF2aWdh
dGlvbiA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVCYWNrRm9yd2FyZE5hdmlnYXRpb24oKTsK
LQotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJk
SXRlbShuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgaXRlbS0+aXRlbUlEKCkpLCBtX3BhZ2VJ
RCk7CisgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb1RvQmFja0Zvcndh
cmRJdGVtKG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpLCBpdGVtLml0ZW1JRCgpLCBGcmFtZUxv
YWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWly
ZSksIG1fcGFnZUlEKTsKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFy
dCgpOwogCiAgICAgcmV0dXJuIFdURk1vdmUobmF2aWdhdGlvbik7CkBAIC0xMTg0LDIxICsxMTgz
LDcgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpnb0ZvcndhcmQoKQog
ICAgIGlmICghZm9yd2FyZEl0ZW0pCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0
byB0cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlvbigpOwotCi0gICAgbV9w
YWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0VVJMKHRyYW5zYWN0aW9uLCBmb3J3YXJk
SXRlbS0+dXJsKCkpOwotCi0gICAgaWYgKCFpc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiByZWF0
dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKGZvcndhcmRJdGVtKTsKLQotICAgIFJlZlB0cjxBUEk6
Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247Ci0gICAgaWYgKCFtX2JhY2tGb3J3YXJkTGlzdC0+Y3Vy
cmVudEl0ZW0oKS0+aXRlbUlzSW5TYW1lRG9jdW1lbnQoKmZvcndhcmRJdGVtKSkKLSAgICAgICAg
bmF2aWdhdGlvbiA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVCYWNrRm9yd2FyZE5hdmlnYXRp
b24oKTsKLQotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Gb3J3YXJk
KG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSA6IDAsIGZvcndhcmRJdGVt
LT5pdGVtSUQoKSksIG1fcGFnZUlEKTsKLSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGlt
ZXIoKS5zdGFydCgpOwotCi0gICAgcmV0dXJuIG5hdmlnYXRpb247CisgICAgcmV0dXJuIGdvVG9C
YWNrRm9yd2FyZEl0ZW0oKmZvcndhcmRJdGVtLCBGcmFtZUxvYWRUeXBlOjpGb3J3YXJkKTsKIH0K
IAogUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpnb0JhY2soKQpAQCAtMTIw
NywzNyArMTE5MiwzMCBAQCBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6Omdv
QmFjaygpCiAgICAgaWYgKCFiYWNrSXRlbSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAg
ICBhdXRvIHRyYW5zYWN0aW9uID0gbV9wYWdlTG9hZFN0YXRlLnRyYW5zYWN0aW9uKCk7Ci0KLSAg
ICBtX3BhZ2VMb2FkU3RhdGUuc2V0UGVuZGluZ0FQSVJlcXVlc3RVUkwodHJhbnNhY3Rpb24sIGJh
Y2tJdGVtLT51cmwoKSk7Ci0KLSAgICBpZiAoIWlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJuIHJl
YXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0ZW0oYmFja0l0ZW0pOwotCi0gICAgUmVmUHRyPEFQSTo6
TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKLSAgICBpZiAoIW1fYmFja0ZvcndhcmRMaXN0LT5jdXJy
ZW50SXRlbSgpLT5pdGVtSXNJblNhbWVEb2N1bWVudCgqYmFja0l0ZW0pKQotICAgICAgICBuYXZp
Z2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUJhY2tGb3J3YXJkTmF2aWdhdGlvbigp
OwotCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpHb0JhY2sobmF2aWdh
dGlvbiA/IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpIDogMCwgYmFja0l0ZW0tPml0ZW1JRCgp
KSwgbV9wYWdlSUQpOwotICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0
KCk7CisgICAgcmV0dXJuIGdvVG9CYWNrRm9yd2FyZEl0ZW0oKmJhY2tJdGVtLCBGcmFtZUxvYWRU
eXBlOjpCYWNrKTsKK30KIAotICAgIHJldHVybiBuYXZpZ2F0aW9uOworUmVmUHRyPEFQSTo6TmF2
aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0mIGl0ZW0pCit7CisgICAgcmV0dXJuIGdvVG9CYWNrRm9yd2FyZEl0ZW0oaXRlbSwg
RnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJkKTsKIH0KIAotUmVmUHRyPEFQSTo6TmF2
aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0qIGl0ZW0pCitSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBXZWJQYWdlUHJveHk6Omdv
VG9CYWNrRm9yd2FyZEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYgaXRlbSwgRnJhbWVMb2Fk
VHlwZSBmcmFtZUxvYWRUeXBlKQogeworICAgIExPRyhMb2FkaW5nLCAiV2ViUGFnZVByb3h5ICVw
IGdvVG9CYWNrRm9yd2FyZEl0ZW0gdG8gYmFjayBpdGVtIFVSTCAlcyIsIHRoaXMsIGl0ZW0udXJs
KCkudXRmOCgpLmRhdGEoKSk7CisKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
IHJlYXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0ZW0oaXRlbSk7CiAKICAgICBhdXRvIHRyYW5zYWN0
aW9uID0gbV9wYWdlTG9hZFN0YXRlLnRyYW5zYWN0aW9uKCk7CiAKLSAgICBtX3BhZ2VMb2FkU3Rh
dGUuc2V0UGVuZGluZ0FQSVJlcXVlc3RVUkwodHJhbnNhY3Rpb24sIGl0ZW0tPnVybCgpKTsKKyAg
ICBtX3BhZ2VMb2FkU3RhdGUuc2V0UGVuZGluZ0FQSVJlcXVlc3RVUkwodHJhbnNhY3Rpb24sIGl0
ZW0udXJsKCkpOwogCiAgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gbmF2aWdhdGlvbjsKLSAg
ICBpZiAoIW1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpLT5pdGVtSXNJblNhbWVEb2N1
bWVudCgqaXRlbSkpCi0gICAgICAgIG5hdmlnYXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3Jl
YXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKCk7CisgICAgaWYgKCFtX2JhY2tGb3J3YXJkTGlzdC0+
Y3VycmVudEl0ZW0oKS0+aXRlbUlzSW5TYW1lRG9jdW1lbnQoaXRlbSkpCisgICAgICAgIG5hdmln
YXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKGl0
ZW0sIGZyYW1lTG9hZFR5cGUpOwogCi0gICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZpZ2F0
aW9uSUQoKSA6IDAsIGl0ZW0tPml0ZW1JRCgpKSwgbV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uID8g
bmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCBpdGVtLml0ZW1JRCgpLCBmcmFtZUxvYWRU
eXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6OlJlcXVpcmUpLCBtX3BhZ2VJRCk7CiAgICAgbV9w
cm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKIAogICAgIHJldHVybiBuYXZp
Z2F0aW9uOwpAQCAtMjM3NSw2ICsyMzUzLDggQEAgdm9pZCBXZWJQYWdlUHJveHk6OnJlY2VpdmVk
UG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIGFjdGlvbiwgV2ViRnJhbWVQcm94eSYgZnIKICAg
ICAgICAgaWYgKGFjdGlvbiA9PSBQb2xpY3lBY3Rpb246OlVzZSAmJiBuYXZpZ2F0aW9uKSB7CiAg
ICAgICAgICAgICBhdXRvIHByb3Bvc2VkUHJvY2VzcyA9IHByb2Nlc3MoKS5wcm9jZXNzUG9vbCgp
LnByb2Nlc3NGb3JOYXZpZ2F0aW9uKCp0aGlzLCBuYXZpZ2F0aW9uLT5yZXF1ZXN0KCkudXJsKCkp
OwogICAgICAgICAgICAgaWYgKHByb3Bvc2VkUHJvY2Vzcy5wdHIoKSAhPSAmcHJvY2VzcygpKSB7
CisgICAgICAgICAgICAgICAgTE9HKExvYWRpbmcsICJTd2l0Y2hpbmcgdG8gbmV3IHByb2Nlc3Mg
Zm9yIG5hdmlnYXRpb24gJSIgUFJJdTY0ICIgdG8gdXJsICclcycgKFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0gJXApIiwgbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24tPmxvZ2dp
bmdVUkwoKS51dGY4KCkuZGF0YSgpLCBuYXZpZ2F0aW9uLT5iYWNrRm9yd2FyZExpc3RJdGVtKCkp
OworCiAgICAgICAgICAgICAgICAgYWN0aW9uID0gUG9saWN5QWN0aW9uOjpTdXNwZW5kOwogICAg
ICAgICAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBuYXZpZ2F0aW9uID0gbWFrZVJlZigqbmF2aWdhdGlvbiksIHBy
b3Bvc2VkUHJvY2VzcyA9IFdURk1vdmUocHJvcG9zZWRQcm9jZXNzKV0oKSBtdXRhYmxlIHsKICAg
ICAgICAgICAgICAgICAgICAgY29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKG5hdmlnYXRp
b24uZ2V0KCksIFdURk1vdmUocHJvcG9zZWRQcm9jZXNzKSk7CkBAIC0yMzg4LDEwICsyMzY4LDIy
IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlv
biBhY3Rpb24sIFdlYkZyYW1lUHJveHkmIGZyCiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51
ZU5hdmlnYXRpb25Jbk5ld1Byb2Nlc3MoQVBJOjpOYXZpZ2F0aW9uJiBuYXZpZ2F0aW9uLCBSZWY8
V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MpCiB7Ci0gICAgTE9HKExvYWRpbmcsICJDb250aW51
aW5nIG5hdmlnYXRpb24gJSIgUFJJdTY0ICIgdG8gVVJMICVzIGluIGEgbmV3IHdlYiBwcm9jZXNz
IiwgbmF2aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5yZXF1ZXN0KCkudXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgTE9HKExvYWRpbmcsICJDb250aW51aW5nIG5h
dmlnYXRpb24gJSIgUFJJdTY0ICIgdG8gVVJMICVzIGluIGEgbmV3IHdlYiBwcm9jZXNzIiwgbmF2
aWdhdGlvbi5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5sb2dnaW5nVVJMKCkudXRmOCgpLmRh
dGEoKSk7CiAKICAgICBhdHRhY2hUb1Byb2Nlc3NGb3JOYXZpZ2F0aW9uKFdURk1vdmUocHJvY2Vz
cykpOwogCisgICAgaWYgKGF1dG8qIGl0ZW0gPSBuYXZpZ2F0aW9uLmJhY2tGb3J3YXJkTGlzdEl0
ZW0oKSkgeworICAgICAgICBpZiAoaXRlbSAhPSBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0
ZW0oKSkKKyAgICAgICAgICAgIG1fYmFja0ZvcndhcmRMaXN0LT5nb1RvSXRlbSgqaXRlbSk7CisK
KyAgICAgICAgQVNTRVJUKG5hdmlnYXRpb24uYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBlKCkpOwor
ICAgICAgICBBU1NFUlQoaXNCYWNrRm9yd2FyZExvYWRUeXBlKCpuYXZpZ2F0aW9uLmJhY2tGb3J3
YXJkRnJhbWVMb2FkVHlwZSgpKSk7CisKKyAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlOjpHb1RvQmFja0ZvcndhcmRJdGVtKG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCks
IGl0ZW0tPml0ZW1JRCgpLCAqbmF2aWdhdGlvbi5iYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUoKSwg
TmF2aWdhdGlvblBvbGljeUNoZWNrOjpCeXBhc3MpLCBtX3BhZ2VJRCk7CisKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKwogICAgIC8vIEZJWE1FOiBXb3JrIG91dCB0aW1pbmcgb2YgcmVzcG9uZGlu
ZyB3aXRoIHRoZSBsYXN0IHBvbGljeSBkZWxlZ2F0ZSwgZXRjCiAgICAgbG9hZFJlcXVlc3RXaXRo
TmF2aWdhdGlvbihuYXZpZ2F0aW9uLCBSZXNvdXJjZVJlcXVlc3QgeyBuYXZpZ2F0aW9uLnJlcXVl
c3QoKSB9LCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGRBbGxv
d0V4dGVybmFsU2NoZW1lcywgbnVsbHB0ciwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpCeXBhc3Mp
OwogfQpAQCAtMjUyOCw5ICsyNTIwLDggQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFn
ZVByb3h5OjpyZXN0b3JlRnJvbVNlc3Npb25TdGF0ZShTZXNzaW9uU3RhdGUgc2Vzc2kKICAgICAg
ICAgICAgIHJldHVybiBsb2FkUmVxdWVzdChzZXNzaW9uU3RhdGUucHJvdmlzaW9uYWxVUkwpOwog
CiAgICAgICAgIGlmIChoYXNCYWNrRm9yd2FyZExpc3QpIHsKLSAgICAgICAgICAgIC8vIEZJWE1F
OiBEbyB3ZSBoYXZlIHRvIG51bGwgY2hlY2sgdGhlIGJhY2sgZm9yd2FyZCBsaXN0IGl0ZW0gaGVy
ZT8KICAgICAgICAgICAgIGlmIChXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBpdGVtID0gbV9iYWNr
Rm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGdvVG9C
YWNrRm9yd2FyZEl0ZW0oaXRlbSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGdvVG9CYWNrRm9y
d2FyZEl0ZW0oKml0ZW0pOwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IGRjNTk0OThkYjFiOGVmY2Y3MzkwMzJlZTU1YzNhZGIzYzQ2
ZmJkMDguLjQ0NWNhNzc1Y2VmZTlmODI4OWJmMmNlNWE2ZWM2NmM4NmMzNThhNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNjQsNiArMTY0LDE0IEBAIGNsYXNz
IFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIFRleHRJbmRpY2F0b3I7CiBjbGFzcyBWYWxpZGF0aW9uQnVi
YmxlOwogCitlbnVtIFNlbGVjdGlvbkRpcmVjdGlvbiA6IHVpbnQ4X3Q7CisKK2VudW0gY2xhc3Mg
QXV0b3BsYXlFdmVudDsKK2VudW0gY2xhc3MgSGFzSW5zZWN1cmVDb250ZW50OworZW51bSBjbGFz
cyBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s7CitlbnVtIGNsYXNzIE5vdGlmaWNhdGlvbkRpcmVjdGlv
bjsKK2VudW0gY2xhc3MgU2hvdWxkU2FtcGxlOworCiBzdHJ1Y3QgQXBwbGljYXRpb25NYW5pZmVz
dDsKIHN0cnVjdCBEaWN0aW9uYXJ5UG9wdXBJbmZvOwogc3RydWN0IEV4Y2VwdGlvbkRldGFpbHM7
CkBAIC0xNzUsMTMgKzE4Myw2IEBAIHN0cnVjdCBUZXh0Q2hlY2tpbmdSZXN1bHQ7CiBzdHJ1Y3Qg
Vmlld3BvcnRBdHRyaWJ1dGVzOwogc3RydWN0IFdpbmRvd0ZlYXR1cmVzOwogCi1lbnVtIFNlbGVj
dGlvbkRpcmVjdGlvbiA6IHVpbnQ4X3Q7Ci0KLWVudW0gY2xhc3MgQXV0b3BsYXlFdmVudDsKLWVu
dW0gY2xhc3MgSGFzSW5zZWN1cmVDb250ZW50OwotZW51bSBjbGFzcyBOb3RpZmljYXRpb25EaXJl
Y3Rpb247Ci1lbnVtIGNsYXNzIFNob3VsZFNhbXBsZTsKLQogdGVtcGxhdGUgPHR5cGVuYW1lPiBj
bGFzcyBSZWN0RWRnZXM7CiB1c2luZyBGbG9hdEJveEV4dGVudCA9IFJlY3RFZGdlczxmbG9hdD47
CiB9CkBAIC00NDAsNyArNDQxLDcgQEAgcHVibGljOgogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRp
b24+IGdvRm9yd2FyZCgpOwogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IGdvQmFjaygpOwog
Ci0gICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gZ29Ub0JhY2tGb3J3YXJkSXRlbShXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtKik7CisgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gZ29Ub0JhY2tG
b3J3YXJkSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtJik7CiAgICAgdm9pZCB0cnlSZXN0b3Jl
U2Nyb2xsUG9zaXRpb24oKTsKICAgICB2b2lkIGRpZENoYW5nZUJhY2tGb3J3YXJkTGlzdChXZWJC
YWNrRm9yd2FyZExpc3RJdGVtKiBhZGRlZEl0ZW0sIFZlY3RvcjxSZWY8V2ViQmFja0ZvcndhcmRM
aXN0SXRlbT4+JiYgcmVtb3ZlZCk7CiAgICAgdm9pZCB3aWxsR29Ub0JhY2tGb3J3YXJkTGlzdEl0
ZW0odWludDY0X3QgaXRlbUlELCBib29sIGluUGFnZUNhY2hlLCBjb25zdCBVc2VyRGF0YSYpOwpA
QCAtMTI5NCw2ICsxMjk1LDggQEAgcHJpdmF0ZToKICAgICBXZWJQYWdlUHJveHkoUGFnZUNsaWVu
dCYsIFdlYlByb2Nlc3NQcm94eSYsIHVpbnQ2NF90IHBhZ2VJRCwgUmVmPEFQSTo6UGFnZUNvbmZp
Z3VyYXRpb24+JiYpOwogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAKKyAgICBSZWZQ
dHI8QVBJOjpOYXZpZ2F0aW9uPiBnb1RvQmFja0ZvcndhcmRJdGVtKFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0mLCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlKTsKKwogICAgIHZvaWQgdXBkYXRlQWN0aXZp
dHlTdGF0ZShXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFncyBmbGFnc1RvVXBkYXRlID0gV2Vi
Q29yZTo6QWN0aXZpdHlTdGF0ZTo6QWxsRmxhZ3MpOwogICAgIHZvaWQgdXBkYXRlVGhyb3R0bGVT
dGF0ZSgpOwogICAgIHZvaWQgdXBkYXRlSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2Vz
KCk7CkBAIC0xNDQxLDEzICsxNDQ0LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlYXR0YWNoVG9X
ZWJQcm9jZXNzKFJlZjxXZWJQcm9jZXNzUHJveHk+JiYpOwogCiAgICAgUmVmUHRyPEFQSTo6TmF2
aWdhdGlvbj4gcmVhdHRhY2hUb1dlYlByb2Nlc3NGb3JSZWxvYWQoKTsKLSAgICBSZWZQdHI8QVBJ
OjpOYXZpZ2F0aW9uPiByZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0qKTsKKyAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiByZWF0dGFjaFRvV2ViUHJv
Y2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKTsKIAotICAgIGVudW0gY2xhc3Mg
TmF2aWdhdGlvblBvbGljeUNoZWNrIHsKLSAgICAgICAgUmVxdWlyZSwKLSAgICAgICAgQnlwYXNz
LAotICAgIH07Ci0gICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uKEFQSTo6TmF2aWdh
dGlvbiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIE5hdmlnYXRpb25Qb2xpY3lD
aGVjayk7CisgICAgdm9pZCBsb2FkUmVxdWVzdFdpdGhOYXZpZ2F0aW9uKEFQSTo6TmF2aWdhdGlv
biYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5LCBBUEk6Ok9iamVjdCogdXNlckRhdGEsIFdlYkNvcmU6Ok5hdmlnYXRpb25Q
b2xpY3lDaGVjayk7CiAKICAgICB2b2lkIHJlcXVlc3ROb3RpZmljYXRpb25QZXJtaXNzaW9uKHVp
bnQ2NF90IG5vdGlmaWNhdGlvbklELCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZyk7CiAgICAg
dm9pZCBzaG93Tm90aWZpY2F0aW9uKGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFN0cmluZyYg
Ym9keSwgY29uc3QgU3RyaW5nJiBpY29uVVJMLCBjb25zdCBTdHJpbmcmIHRhZywgY29uc3QgU3Ry
aW5nJiBsYW5nLCBXZWJDb3JlOjpOb3RpZmljYXRpb25EaXJlY3Rpb24sIGNvbnN0IFN0cmluZyYg
b3JpZ2luU3RyaW5nLCB1aW50NjRfdCBub3RpZmljYXRpb25JRCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA2ZjgzZTg4YTAwMTg0YWM5MzcwN2Vm
YzAxMGYxYmYyZDA2NTJkNzBjLi5kY2E5ODk5NjBlZmY4NjM0M2M3Mzg1Y2VlMWQ3MTQxMWFlNWNl
YzcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAg
LTU1MSw3ICs1NTEsNyBAQCBib29sIFdlYlByb2Nlc3NQcm94eTo6ZnVsbEtleWJvYXJkQWNjZXNz
RW5hYmxlZCgpCiB9CiAjZW5kaWYKIAotdm9pZCBXZWJQcm9jZXNzUHJveHk6OmFkZEJhY2tGb3J3
YXJkSXRlbSh1aW50NjRfdCBpdGVtSUQsIHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgUGFnZVN0YXRl
JiBwYWdlU3RhdGUpCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6YWRkT3JVcGRhdGVCYWNrRm9yd2Fy
ZEl0ZW0odWludDY0X3QgaXRlbUlELCB1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFBhZ2VTdGF0ZSYg
cGFnZVN0YXRlKQogewogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKHBhZ2VTdGF0ZS5tYWluRnJhbWVT
dGF0ZS5vcmlnaW5hbFVSTFN0cmluZyk7CiAgICAgTUVTU0FHRV9DSEVDS19VUkwocGFnZVN0YXRl
Lm1haW5GcmFtZVN0YXRlLnVybFN0cmluZyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5oCmluZGV4IDY5N2ViOTA4ZDYxY2ZjNzMzY2QyMTFmM2RhYzEwZDdhNGY0NDRm
YzUuLjNiYWQyZWVlNGEyYjVmODZhNWRlNDkzOGQ1YzNjNWVlY2EzZmZlNzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBAIC0yMjAsNyArMjIwLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIHNodXREb3duKCk7CiAKICAgICAvLyBJUEMgbWVzc2FnZSBoYW5kbGVy
cy4KLSAgICB2b2lkIGFkZEJhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBpdGVtSUQsIHVpbnQ2NF90
IHBhZ2VJRCwgY29uc3QgUGFnZVN0YXRlJik7CisgICAgdm9pZCBhZGRPclVwZGF0ZUJhY2tGb3J3
YXJkSXRlbSh1aW50NjRfdCBpdGVtSUQsIHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgUGFnZVN0YXRl
Jik7CiAgICAgdm9pZCBkaWREZXN0cm95RnJhbWUodWludDY0X3QpOwogICAgIHZvaWQgZGlkRGVz
dHJveVVzZXJHZXN0dXJlVG9rZW4odWludDY0X3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggOThjNzEyYWNjM2Y3
OWQ0ZTEwOGJmNWFiMzU0YTQxZTBhZGQ4NjI1Ni4uZWM3Y2Y1MDEzOTM3NmI1Mzg3Nzk5NDYwOWMw
NzA1MjkwNjY2MzU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjEsNyArMjEsNyBAQAogIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
CiBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewotICAgIEFkZEJh
Y2tGb3J3YXJkSXRlbSh1aW50NjRfdCBpdGVtSUQsIHVpbnQ2NF90IHBhZ2VJRCwgc3RydWN0IFdl
YktpdDo6UGFnZVN0YXRlIHBhZ2VTdGF0ZSkKKyAgICBBZGRPclVwZGF0ZUJhY2tGb3J3YXJkSXRl
bSh1aW50NjRfdCBpdGVtSUQsIHVpbnQ2NF90IHBhZ2VJRCwgc3RydWN0IFdlYktpdDo6UGFnZVN0
YXRlIHBhZ2VTdGF0ZSkKICAgICBEaWREZXN0cm95RnJhbWUodWludDY0X3QgZnJhbWVJRCkgCiAK
ICAgICBEaWREZXN0cm95VXNlckdlc3R1cmVUb2tlbih1aW50NjRfdCB1c2VyR2VzdHVyZVRva2Vu
SUQpIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJl
Q29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVy
ZUNvbnRyb2xsZXJNYWMubW0KaW5kZXggZGZmYTU0NzdmNTllZjU3NzUxYTY4MjI5ZWE2NjM3ZmMz
YzdhZTUzMC4uMDMyNmMzNDQwM2I3YTAyNWVkNjdiYjZlYWIwNmJmNjU2ZGQ1MDkyMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9s
bGVyTWFjLm1tCkBAIC03NDEsNyArNzQxLDcgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6
OmVuZFN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLAogICAg
IG1fd2ViUGFnZVByb3h5LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpWaWV3R2VzdHVyZUdlb21l
dHJ5Q29sbGVjdG9yOjpTZXRSZW5kZXJUcmVlU2l6ZU5vdGlmaWNhdGlvblRocmVzaG9sZChyZW5k
ZXJUcmVlU2l6ZSAqIHN3aXBlU25hcHNob3RSZW1vdmFsUmVuZGVyVHJlZVNpemVUYXJnZXRGcmFj
dGlvbiksIG1fd2ViUGFnZVByb3h5LnBhZ2VJRCgpKTsKIAogICAgIG1fd2ViUGFnZVByb3h5Lm5h
dmlnYXRpb25HZXN0dXJlRGlkRW5kKHRydWUsICp0YXJnZXRJdGVtKTsKLSAgICBtX3dlYlBhZ2VQ
cm94eS5nb1RvQmFja0ZvcndhcmRJdGVtKHRhcmdldEl0ZW0pOworICAgIG1fd2ViUGFnZVByb3h5
LmdvVG9CYWNrRm9yd2FyZEl0ZW0oKnRhcmdldEl0ZW0pOwogCiAgICAgU25hcHNob3RSZW1vdmFs
VHJhY2tlcjo6RXZlbnRzIGRlc2lyZWRFdmVudHMgPSBTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpW
aXN1YWxseU5vbkVtcHR5TGF5b3V0CiAgICAgICAgIHwgU25hcHNob3RSZW1vdmFsVHJhY2tlcjo6
TWFpbkZyYW1lTG9hZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCmluZGV4IDFh
ZTJjM2M4YjdkNjIyMTUyOGY4YWIxNDViNGM4YmI3ZWFkNjc1OWEuLmE1ZDQ1YTlhODBlZTg1ODJh
YjVkM2ZmOWE3ODI2OGRmY2JkYjkyMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lv
bi5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCBQYWdlU3RhdGUgdG9QYWdlU3RhdGUoY29uc3QgV2Vi
Q29yZTo6SGlzdG9yeUl0ZW0mIGhpc3RvcnlJdGVtKQogICAgIHBhZ2VTdGF0ZS50aXRsZSA9IGhp
c3RvcnlJdGVtLnRpdGxlKCk7CiAgICAgcGFnZVN0YXRlLm1haW5GcmFtZVN0YXRlID0gdG9GcmFt
ZVN0YXRlKGhpc3RvcnlJdGVtKTsKICAgICBwYWdlU3RhdGUuc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSA9IGhpc3RvcnlJdGVtLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKTsKLQor
ICAgIHBhZ2VTdGF0ZS5zZXNzaW9uU3RhdGVPYmplY3QgPSBoaXN0b3J5SXRlbS5zdGF0ZU9iamVj
dCgpOwogICAgIHJldHVybiBwYWdlU3RhdGU7CiB9CiAKQEAgLTE5Myw2ICsxOTMsNyBAQCBSZWY8
SGlzdG9yeUl0ZW0+IHRvSGlzdG9yeUl0ZW0oY29uc3QgUGFnZVN0YXRlJiBwYWdlU3RhdGUpCiB7
CiAgICAgUmVmPEhpc3RvcnlJdGVtPiBoaXN0b3J5SXRlbSA9IEhpc3RvcnlJdGVtOjpjcmVhdGUo
cGFnZVN0YXRlLm1haW5GcmFtZVN0YXRlLnVybFN0cmluZywgcGFnZVN0YXRlLnRpdGxlKTsKICAg
ICBoaXN0b3J5SXRlbS0+c2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShwYWdlU3RhdGUu
c2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CisgICAgaGlzdG9yeUl0ZW0tPnNldFN0YXRl
T2JqZWN0KHBhZ2VTdGF0ZS5zZXNzaW9uU3RhdGVPYmplY3QuZ2V0KCkpOwogICAgIGFwcGx5RnJh
bWVTdGF0ZShoaXN0b3J5SXRlbSwgcGFnZVN0YXRlLm1haW5GcmFtZVN0YXRlKTsKIAogICAgIHJl
dHVybiBoaXN0b3J5SXRlbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcAppbmRleCBjMmU5MWVhN2Yx
Y2UzMTY1OTU4YmRiOTRhNjY2MGI1MTRmODY4ZGU1Li43ZjRlMTI3N2NjZDc0MDI3NmY3ZGUwOWZh
MzQ4MGNhMjEyZGQyZWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwCkBAIC05MSw3ICs5MSw3
IEBAIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OnNldEhpZ2hlc3RJdGVtSURGcm9tVUlQ
cm9jZXNzKHVpbnQ2NF90IGl0ZW1JRCkKIAogc3RhdGljIHZvaWQgdXBkYXRlQmFja0ZvcndhcmRJ
dGVtKHVpbnQ2NF90IGl0ZW1JRCwgdWludDY0X3QgcGFnZUlELCBIaXN0b3J5SXRlbSogaXRlbSkK
IHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkFkZEJhY2tGb3J3YXJkSXRlbShpdGVt
SUQsIHBhZ2VJRCwgdG9QYWdlU3RhdGUoKml0ZW0pKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJv
Y2Vzc1Byb3h5OjpBZGRPclVwZGF0ZUJhY2tGb3J3YXJkSXRlbShpdGVtSUQsIHBhZ2VJRCwgdG9Q
YWdlU3RhdGUoKml0ZW0pKSwgMCk7CiB9CiAKIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6
OmFkZEl0ZW1Gcm9tVUlQcm9jZXNzKHVpbnQ2NF90IGl0ZW1JRCwgUmVmPEhpc3RvcnlJdGVtPiYm
IGl0ZW0sIHVpbnQ2NF90IHBhZ2VJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggODFhZTQ1YzRlMzFlOThmOTRkNGE3NTUxNDAyODk4MDRkYTgz
NDRlZS4uOGJlMmQ3NjAwOWVmM2I2OTZhMGY1MDZlMTgwMTZmN2RiNzYwZjY4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEzODAsNDkgKzEz
ODAsMjMgQEAgdm9pZCBXZWJQYWdlOjpyZWxvYWQodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50
MzJfdCByZWxvYWRPcHRpb25zLCBTYW5kYm94RXh0ZW4KICAgICBjb3JlUGFnZSgpLT51c2VySW5w
dXRCcmlkZ2UoKS5yZWxvYWRGcmFtZShtX21haW5GcmFtZS0+Y29yZUZyYW1lKCksIE9wdGlvblNl
dDxSZWxvYWRPcHRpb24+Ojpmcm9tUmF3KHJlbG9hZE9wdGlvbnMpKTsKIH0KIAotdm9pZCBXZWJQ
YWdlOjpnb0ZvcndhcmQodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50NjRfdCBiYWNrRm9yd2Fy
ZEl0ZW1JRCkKK3ZvaWQgV2ViUGFnZTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlELCBGcmFtZUxvYWRUeXBlIGJhY2tG
b3J3YXJkVHlwZSwgTmF2aWdhdGlvblBvbGljeUNoZWNrIG5hdmlnYXRpb25Qb2xpY3lDaGVjaykK
IHsKICAgICBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3RvcHBlcjsKIAotICAgIEhpc3Rv
cnlJdGVtKiBpdGVtID0gV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6Oml0ZW1Gb3JJRChiYWNrRm9y
d2FyZEl0ZW1JRCk7Ci0gICAgQVNTRVJUKGl0ZW0pOwotICAgIGlmICghaXRlbSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgQVNTRVJUKCFtX3BlbmRpbmdOYXZpZ2F0aW9uSUQpOwotICAgIG1fcGVu
ZGluZ05hdmlnYXRpb25JRCA9IG5hdmlnYXRpb25JRDsKLQotICAgIG1fcGFnZS0+Z29Ub0l0ZW0o
Kml0ZW0sIEZyYW1lTG9hZFR5cGU6OkZvcndhcmQpOwotfQotCi12b2lkIFdlYlBhZ2U6OmdvQmFj
ayh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlEKQotewot
ICAgIFNlbmRTdG9wUmVzcG9uc2l2ZW5lc3NUaW1lciBzdG9wcGVyOworICAgIEFTU0VSVChpc0Jh
Y2tGb3J3YXJkTG9hZFR5cGUoYmFja0ZvcndhcmRUeXBlKSk7CiAKICAgICBIaXN0b3J5SXRlbSog
aXRlbSA9IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjppdGVtRm9ySUQoYmFja0ZvcndhcmRJdGVt
SUQpOwogICAgIEFTU0VSVChpdGVtKTsKICAgICBpZiAoIWl0ZW0pCiAgICAgICAgIHJldHVybjsK
IAotICAgIEFTU0VSVCghbV9wZW5kaW5nTmF2aWdhdGlvbklEKTsKLSAgICBtX3BlbmRpbmdOYXZp
Z2F0aW9uSUQgPSBuYXZpZ2F0aW9uSUQ7Ci0KLSAgICBtX3BhZ2UtPmdvVG9JdGVtKCppdGVtLCBG
cmFtZUxvYWRUeXBlOjpCYWNrKTsKLX0KLQotdm9pZCBXZWJQYWdlOjpnb1RvQmFja0ZvcndhcmRJ
dGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDY0X3QgYmFja0ZvcndhcmRJdGVtSUQpCi17
Ci0gICAgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1RpbWVyIHN0b3BwZXI7Ci0KLSAgICBIaXN0b3J5
SXRlbSogaXRlbSA9IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjppdGVtRm9ySUQoYmFja0Zvcndh
cmRJdGVtSUQpOwotICAgIEFTU0VSVChpdGVtKTsKLSAgICBpZiAoIWl0ZW0pCi0gICAgICAgIHJl
dHVybjsKKyAgICBMT0coTG9hZGluZywgIkluIFdlYlByb2Nlc3MsIFdlYlBhZ2UgJSIgUFJJdTY0
ICIgaXMgbmF2aWdhdGluZyB0byBiYWNrL2ZvcndhcmQgVVJMICVzIiwgbV9wYWdlSUQsIGl0ZW0t
PnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgQVNTRVJUKCFtX3BlbmRpbmdO
YXZpZ2F0aW9uSUQpOwogICAgIG1fcGVuZGluZ05hdmlnYXRpb25JRCA9IG5hdmlnYXRpb25JRDsK
IAotICAgIG1fcGFnZS0+Z29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNr
Rm9yd2FyZCk7CisgICAgbV9wYWdlLT5nb1RvSXRlbSgqaXRlbSwgYmFja0ZvcndhcmRUeXBlLCBu
YXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogfQogCiB2b2lkIFdlYlBhZ2U6OnRyeVJlc3RvcmVTY3Jv
bGxQb3NpdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
aW5kZXggMTVmOTJjOTc0MGY4MWI4YzFhNGViYWI4N2M0ZWY3NmQ4YWVjMzgyZS4uMDc0NGEyZjRm
ZDU5YmE1ODliZjAxNzViMTFkZDdjYmI3ZWM3MDcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTQ5LDYgKzE0OSwxMCBAQCBjbGFzcyBUZXh0Q2hl
Y2tpbmdSZXF1ZXN0OwogY2xhc3MgVVJMOwogY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogCitlbnVt
IFN5bnRoZXRpY0NsaWNrVHlwZSA6IGludDhfdDsKK2VudW0gY2xhc3MgTmF2aWdhdGlvblBvbGlj
eUNoZWNrOworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiA6
IHVpbnQ4X3Q7CisKIHN0cnVjdCBDb21wb3NpdGlvblVuZGVybGluZTsKIHN0cnVjdCBEaWN0YXRp
b25BbHRlcm5hdGl2ZTsKIHN0cnVjdCBIaWdobGlnaHQ7CkBAIC0xNTcsOSArMTYxLDcgQEAgc3Ry
dWN0IFByb21pc2VkQmxvYkluZm87CiBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0Owogc3RydWN0
IFZpZXdwb3J0QXJndW1lbnRzOwogCi1lbnVtIFN5bnRoZXRpY0NsaWNrVHlwZSA6IGludDhfdDsK
IAotZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiA6IHVpbnQ4
X3Q7CiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogY2xhc3MgSFRNTEF0dGFjaG1l
bnRFbGVtZW50OwpAQCAtMjE0LDYgKzIxNiw5IEBAIGNsYXNzIFdlYlRvdWNoRXZlbnQ7CiBjbGFz
cyBXZWJDcmVkZW50aWFsc01lc3NlbmdlcjsKIGNsYXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uOwogCitlbnVtIEZpbmRPcHRpb25zIDogdWludDE2X3Q7CitlbnVtIGNsYXNzIERyYWdDb250
cm9sbGVyQWN0aW9uOworCiBzdHJ1Y3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb247CiBzdHJ1Y3Qg
QXR0cmlidXRlZFN0cmluZzsKIHN0cnVjdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU7CkBAIC0y
MjcsOSArMjMyLDYgQEAgc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiBzdHJ1Y3QgV2ViU2Vs
ZWN0aW9uRGF0YTsKIHN0cnVjdCBXZWJzaXRlUG9saWNpZXNEYXRhOwogCi1lbnVtIGNsYXNzIERy
YWdDb250cm9sbGVyQWN0aW9uOwotZW51bSBGaW5kT3B0aW9ucyA6IHVpbnQxNl90OwotCiB1c2lu
ZyBTbmFwc2hvdE9wdGlvbnMgPSB1aW50MzJfdDsKIHVzaW5nIFdLRXZlbnRNb2RpZmllcnMgPSB1
aW50MzJfdDsKIApAQCAtMTE0OCw5ICsxMTUwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvYWRB
bHRlcm5hdGVIVE1MU3RyaW5nKGNvbnN0IExvYWRQYXJhbWV0ZXJzJik7CiAgICAgdm9pZCBuYXZp
Z2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayhjb25zdCBTdHJpbmcmIHVybCwgV2ViQ29y
ZTo6SW50UG9pbnQgZG9jdW1lbnRQb2ludCwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuUG9pbnQp
OwogICAgIHZvaWQgcmVsb2FkKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3QgcmVsb2Fk
T3B0aW9ucywgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpOwotICAgIHZvaWQgZ29Gb3J3YXJk
KHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDY0X3QpOwotICAgIHZvaWQgZ29CYWNrKHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgdWludDY0X3QpOwotICAgIHZvaWQgZ29Ub0JhY2tGb3J3YXJkSXRl
bSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90KTsKKyAgICB2b2lkIGdvVG9CYWNrRm9y
d2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50NjRfdCwgV2ViQ29yZTo6RnJhbWVM
b2FkVHlwZSwgV2ViQ29yZTo6TmF2aWdhdGlvblBvbGljeUNoZWNrKTsKICAgICB2b2lkIHRyeVJl
c3RvcmVTY3JvbGxQb3NpdGlvbigpOwogICAgIHZvaWQgc2V0SW5pdGlhbEZvY3VzKGJvb2wgZm9y
d2FyZCwgYm9vbCBpc0tleWJvYXJkRXZlbnRWYWxpZCwgY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYs
IENhbGxiYWNrSUQpOwogICAgIHZvaWQgdXBkYXRlSXNJbldpbmRvdyhib29sIGlzSW5pdGlhbFN0
YXRlID0gZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNzFmN2M1MTZiMGJmYjdhYzQ3NTAyZTZiZWJhMmFl
NjlmZjVhZGQyOC4uNWE3YWFmNGM3NTI2Y2EyYjhmMDNiMTgyMjYxZjZmNzIyYzc4OWI2MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluCkBAIC0xMzQsOSArMTM0LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNl
aXZlciB7CiAgICAgU2Nyb2xsQnkodWludDMyX3Qgc2Nyb2xsRGlyZWN0aW9uLCB1aW50MzJfdCBz
Y3JvbGxHcmFudWxhcml0eSkKICAgICBDZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhKCkKIAot
ICAgIEdvQmFjayh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRl
bUlEKQotICAgIEdvRm9yd2FyZCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90IGJhY2tG
b3J3YXJkSXRlbUlEKQotICAgIEdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlv
bklELCB1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1JRCkKKyAgICBHb1RvQmFja0ZvcndhcmRJdGVt
KHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDY0X3QgYmFja0ZvcndhcmRJdGVtSUQsIGVudW0g
V2ViQ29yZTo6RnJhbWVMb2FkVHlwZSBiYWNrRm9yd2FyZFR5cGUsIGVudW0gV2ViQ29yZTo6TmF2
aWdhdGlvblBvbGljeUNoZWNrIG5hdmlnYXRpb25Qb2xpY3lDaGVjaykKICAgICBUcnlSZXN0b3Jl
U2Nyb2xsUG9zaXRpb24oKQogCiAgICAgTG9hZFVSTEluRnJhbWUoV2ViQ29yZTo6VVJMIHVybCwg
dWludDY0X3QgZnJhbWVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dl
YlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQppbmRleCBhMjA1YzJhMzRhMGMwZGM2YzdkYWYwZTE2N2YwNzFhMGE5YjBlYTEwLi4yMzM4
NzkyODM0MzJhYmI1ZGY3ODY5MmNjMTMyZjg3YWIxNWE5MjU3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xNzQsNiArMTc0LDcgQEAKICNpbXBvcnQg
PFdlYkNvcmUvTWFpbkZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL01lbW9yeVJlbGVhc2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTmF2aWdh
dGlvblBvbGljeUNoZWNrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lv
bi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob2RlTGlzdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3Rp
ZmljYXRpb24uaD4KQEAgLTI1NjYsNyArMjU2Nyw3IEBAIHN0YXRpYyBib29sIGZhc3REb2N1bWVu
dFRlYXJkb3duRW5hYmxlZCgpCiAgICAgfQogCiAgICAgQVNTRVJUKG5ld0l0ZW1Ub0dvVG8pOwot
ICAgIF9wcml2YXRlLT5wYWdlLT5nb1RvSXRlbSgqbmV3SXRlbVRvR29UbywgRnJhbWVMb2FkVHlw
ZTo6SW5kZXhlZEJhY2tGb3J3YXJkKTsKKyAgICBfcHJpdmF0ZS0+cGFnZS0+Z29Ub0l0ZW0oKm5l
d0l0ZW1Ub0dvVG8sIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwgTmF2aWdhdGlv
blBvbGljeUNoZWNrOjpSZXF1aXJlKTsKIH0KIAogLSAodm9pZClfc2V0Rm9ybURlbGVnYXRlOiAo
aWQ8V2ViRm9ybURlbGVnYXRlPilkZWxlZ2F0ZQpAQCAtNjM2OSw3ICs2MzcwLDcgQEAgc3RhdGlj
IE5TU3RyaW5nICogY29uc3QgYmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5T
QmFja2luZ1Byb3BlcnR5T2wKICAgICAgICAgcmV0dXJuIE5POwogCiAgICAgQVNTRVJUKGl0ZW0p
OwotICAgIF9wcml2YXRlLT5wYWdlLT5nb1RvSXRlbSgqY29yZShpdGVtKSwgRnJhbWVMb2FkVHlw
ZTo6SW5kZXhlZEJhY2tGb3J3YXJkKTsKKyAgICBfcHJpdmF0ZS0+cGFnZS0+Z29Ub0l0ZW0oKmNv
cmUoaXRlbSksIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwgTmF2aWdhdGlvblBv
bGljeUNoZWNrOjpSZXF1aXJlKTsKICAgICByZXR1cm4gWUVTOwogfQogCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjBkM2ZiNDgzYjhiZmQzMWMw
NTc4ZGVjYmVkNjVlMjFiZTM1ZjkzOS4uYjQ3YjgwOTlkNzgyZjhlZTZmMWY0N2M4NmUxNmFjOWZj
OWRhZjk5MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIxIEBACisyMDE4LTAzLTIzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFw
cGxlLmNvbT4KKworICAgICAgICBHbyB0byBiYWNrL2ZvcndhcmQgbGlzdCBpdGVtcyBhZnRlciBh
IHByb2Nlc3Mtc3dhcHBlZCBuYXZpZ2F0aW9uLgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg2
OTA1NDQ+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTIw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEg
bmV3IEFQSSB0ZXN0IHRoYXQgZG9lcyBzb21lIHByb2Nlc3Mtc3dhcHBpbmcgbmF2aWdhdGlvbnMg
KGluY2x1ZGluZyBhIGJhY2sgbmF2aWdhdGlvbikKKyAgICAgICAgYW5kIHZlcmlmaWVzIHRoZSBz
dGF0ZSBvZiB0aGUgZW5naW5lIGFmdGVyd2FyZHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAgICAgICAo
LVtQU09OTWVzc2FnZUhhbmRsZXIgdXNlckNvbnRlbnRDb250cm9sbGVyOmRpZFJlY2VpdmVTY3Jp
cHRNZXNzYWdlOl0pOgorICAgICAgICAoLVtQU09OU2NoZW1lIGluaXRXaXRoQnl0ZXM6XSk6Cisg
ICAgICAgICgtW1BTT05TY2hlbWUgd2ViVmlldzpzdGFydFVSTFNjaGVtZVRhc2s6XSk6CisgICAg
ICAgIChsb2cpOgorICAgICAgICAoZnVuY3Rpb24pOgorICAgICAgICAoVEVTVCk6IERlbGV0ZWQu
CisKIDIwMTgtMDMtMjEgIFlvc2hpYWtpIEppdHN1a2F3YSAgPHlvc2hpYWtpLmppdHN1a2F3YUBz
b255LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBtYWtlIHRoZSBlbWFpbCBhZGRyZXNzIG9m
IFlvc2hpYWtpIEppdHN1a2F3YSBhbGwgbG93ZXIgY2FzZS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZp
Z2F0aW9uLm1tCmluZGV4IGY0YjFlMDdjYjgxYzQ0YTU3OGE5MTczMDc2ZDRiOTgxMWNlMTNlNzYu
LmYyMjJjYmUxODE3MzA1MzlkZGNlNDBiMmEzZWZhYWI4MTE1NGEzM2YgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRp
b24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNz
U3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtNTIsNiArNTIsMTkgQEAKIHN0YXRpYyBib29sIGRvbmU7
CiBzdGF0aWMgaW50IG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHM7CiAKK3N0YXRpYyBSZXRhaW5Q
dHI8TlNNdXRhYmxlQXJyYXk+IHJlY2VpdmVkTWVzc2FnZXMgPSBhZG9wdE5TKFtAW10gbXV0YWJs
ZUNvcHldKTsKK3N0YXRpYyBib29sIHJlY2VpdmVkTWVzc2FnZTsKK0BpbnRlcmZhY2UgUFNPTk1l
c3NhZ2VIYW5kbGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+CitAZW5kCisK
K0BpbXBsZW1lbnRhdGlvbiBQU09OTWVzc2FnZUhhbmRsZXIKKy0gKHZvaWQpdXNlckNvbnRlbnRD
b250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29udHJvbGxl
ciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNzYWdlICopbWVzc2FnZQorewor
ICAgIFtyZWNlaXZlZE1lc3NhZ2VzIGFkZE9iamVjdDpbbWVzc2FnZSBib2R5XV07CisgICAgcmVj
ZWl2ZWRNZXNzYWdlID0gdHJ1ZTsKK30KK0BlbmQKKwogQGludGVyZmFjZSBQU09OTmF2aWdhdGlv
bkRlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPgogQGVuZAogCkBAIC03
MSwxNiArODQsMzEgQEAgc3RhdGljIGludCBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxzOwogQGVu
ZAogCiBAaW50ZXJmYWNlIFBTT05TY2hlbWUgOiBOU09iamVjdCA8V0tVUkxTY2hlbWVIYW5kbGVy
PiB7CisgICAgY29uc3QgY2hhciogX2J5dGVzOwogfQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRo
Qnl0ZXM6KGNvbnN0IGNoYXIqKWJ5dGVzOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gUFNPTlNj
aGVtZQogCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhCeXRlczooY29uc3QgY2hhciopYnl0ZXMK
K3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIF9ieXRlcyA9IGJ5dGVzOworICAgIHJl
dHVybiBzZWxmOworfQorCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc3Rh
cnRVUkxTY2hlbWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YXNrCiB7CiAgICAgUmV0YWlu
UHRyPE5TVVJMUmVzcG9uc2U+IHJlc3BvbnNlID0gYWRvcHROUyhbW05TVVJMUmVzcG9uc2UgYWxs
b2NdIGluaXRXaXRoVVJMOnRhc2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0bWwiIGV4
cGVjdGVkQ29udGVudExlbmd0aDoxIHRleHRFbmNvZGluZ05hbWU6bmlsXSk7CiAgICAgW3Rhc2sg
ZGlkUmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgpXTsKLSAgICBbdGFzayBkaWRSZWNlaXZl
RGF0YTpbQCJIZWxsbyIgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddXTsK
KworICAgIGlmIChfYnl0ZXMpIHsKKyAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4gZGF0YSA9IGFk
b3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXNOb0NvcHk6KHZvaWQgKilfYnl0ZXMg
bGVuZ3RoOnN0cmxlbihfYnl0ZXMpIGZyZWVXaGVuRG9uZTpOT10pOworICAgICAgICBbdGFzayBk
aWRSZWNlaXZlRGF0YTpkYXRhLmdldCgpXTsKKyAgICB9IGVsc2UKKyAgICAgICAgW3Rhc2sgZGlk
UmVjZWl2ZURhdGE6W0AiSGVsbG8iIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29k
aW5nXV07CisKICAgICBbdGFzayBkaWRGaW5pc2hdOwogfQogCkBAIC05MCw2ICsxMTgsMjggQEAg
c3RhdGljIGludCBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxzOwogCiBAZW5kCiAKK3N0YXRpYyBj
b25zdCBjaGFyKiB0ZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKKzxoZWFkPgorPHNjcmlwdD4K
KworZnVuY3Rpb24gbG9nKG1zZykKK3sKKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVy
cy5wc29uLnBvc3RNZXNzYWdlKG1zZyk7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbihl
dnQpIHsKKyAgICBpZiAod2luZG93Lmhpc3Rvcnkuc3RhdGUgIT0gIm9ubG9hZENhbGxlZCIpCisg
ICAgICAgIHNldFRpbWVvdXQoJ3dpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSgib25sb2FkQ2Fs
bGVkIiwgIiIpOycsIDApOworfQorCit3aW5kb3cub25wYWdlc2hvdyA9IGZ1bmN0aW9uKGV2dCkg
eworICAgIGxvZygiUGFnZVNob3cgY2FsbGVkLiBQZXJzaXN0ZWQ6ICIgKyBldnQucGVyc2lzdGVk
ICsgIiwgYW5kIHdpbmRvdy5oaXN0b3J5LnN0YXRlIGlzOiAiICsgd2luZG93Lmhpc3Rvcnkuc3Rh
dGUpOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKylQU09OUkVTT1VSQ0UiOworCiBURVNUKFBy
b2Nlc3NTd2FwLCBCYXNpYykKIHsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9
IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKQEAg
LTEzNyw0ICsxODcsNzAgQEAgVEVTVChQcm9jZXNzU3dhcCwgQmFzaWMpCiAgICAgRVhQRUNUX0VR
KG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMsIDMpOwogfQogCitURVNUKFByb2Nlc3NTd2FwLCBC
YWNrKQoreworICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW19X
S1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIHByb2Nlc3NQb29s
Q29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzU3dhcHNPbk5hdmlnYXRpb24gPSBZRVM7CisgICAg
YXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBfaW5pdFdp
dGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOworCisgICAg
YXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0
aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFByb2Nlc3NQ
b29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBSZXRhaW5QdHI8UFNPTlNjaGVtZT4gaGFuZGxl
cjEgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdFdpdGhCeXRlczp0ZXN0Qnl0ZXNd
KTsKKyAgICBSZXRhaW5QdHI8UFNPTlNjaGVtZT4gaGFuZGxlcjIgPSBhZG9wdE5TKFtbUFNPTlNj
aGVtZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hl
bWVIYW5kbGVyOmhhbmRsZXIxLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04xIl07CisgICAgW3dl
YlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlcjIuZ2V0KCkgZm9y
VVJMU2NoZW1lOkAiUFNPTjIiXTsKKworICAgIFJldGFpblB0cjxQU09OTWVzc2FnZUhhbmRsZXI+
IG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1BTT05NZXNzYWdlSGFuZGxlciBhbGxvY10gaW5p
dF0pOworICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBh
ZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAicHNvbiJd
OworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdD
b25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tQU09O
TmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdh
dGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVz
dCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJw
c29uMTovL2hvc3QvbWFpbjEuaHRtbCJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1
ZXN0XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsK
KyAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIGF1dG8gcGlkMSA9IFt3ZWJWaWV3
IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICByZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCBy
ZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb24yOi8vaG9zdC9tYWluMi5o
dG1sIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAgVGVzdFdl
YktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAgICBhdXRv
IHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworCisgICAgW3dlYlZpZXcg
Z29CYWNrXTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNzYWdl
KTsKKyAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIGF1dG8gcGlkMyA9IFt3ZWJW
aWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICAvLyAzIGxvYWRzLCAzIGRlY2lkZVBv
bGljeSBjYWxscyAoZS5nLiBhbnkgbG9hZCB0aGF0IHBlcmZvcm1zIGEgcHJvY2VzcyBzd2FwIHNo
b3VsZCBub3QgaGF2ZSBnZW5lcmF0ZWQgYW4KKyAgICAvLyBhZGRpdGlvbmFsIGRlY2lkZVBvbGlj
eSBjYWxsIGFzIGEgcmVzdWx0IG9mIHRoZSBwcm9jZXNzIHN3YXApCisgICAgRVhQRUNUX0VRKG51
bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMsIDMpOworCisgICAgRVhQRUNUX0VRKFtyZWNlaXZlZE1l
c3NhZ2VzIGNvdW50XSwgMnUpOworICAgIEVYUEVDVF9UUlVFKFtyZWNlaXZlZE1lc3NhZ2VzLmdl
dCgpWzBdIGlzRXF1YWxUb1N0cmluZzpAIlBhZ2VTaG93IGNhbGxlZC4gUGVyc2lzdGVkOiBmYWxz
ZSwgYW5kIHdpbmRvdy5oaXN0b3J5LnN0YXRlIGlzOiBudWxsIl0pOworCisgICAgLy8gRklYTUU6
IFdlJ2QgbGlrZSB0byBnZXQgdGhlIHBhZ2UgcmVzdG9yaW5nIGZyb20gdGhlIHBhZ2UgY2FjaGUg
bGlrZSBiZWZvcmUgcHJvY2VzcyBzd2FwcGluZywgd2hpY2ggd2lsbCBtYWtlIFBlcnNpc3RlZCBi
ZSAidHJ1ZSIKKyAgICAvLyBGb3Igbm93IGl0J3MgZXhwZWN0ZWQgdG8gYmUgZmFsc2UiCisgICAg
RVhQRUNUX1RSVUUoW3JlY2VpdmVkTWVzc2FnZXMuZ2V0KClbMV0gaXNFcXVhbFRvU3RyaW5nOkAi
UGFnZVNob3cgY2FsbGVkLiBQZXJzaXN0ZWQ6IGZhbHNlLCBhbmQgd2luZG93Lmhpc3Rvcnkuc3Rh
dGUgaXM6IG9ubG9hZENhbGxlZCJdKTsKKworICAgIEVYUEVDVF9GQUxTRShwaWQxID09IHBpZDIp
OworICAgIEVYUEVDVF9GQUxTRShwaWQyID09IHBpZDMpOworCisgICAgLy8gRklYTUU6IElkZWFs
bHkgd2UnZCBsaWtlIHRvIGdldCBwcm9jZXNzIGNhY2hpbmcgaGFwcGVuaW5nIHN1Y2ggdGhhdCBw
aWQxIGFuZCBwaWQzIGFyZSBlcXVhbC4KKyAgICAvLyBCdXQgZm9yIG5vdyB0aGV5IHNob3VsZCBu
b3QgYmUuCisgICAgRVhQRUNUX0ZBTFNFKHBpZDEgPT0gcGlkMyk7Cit9CisKICNlbmRpZiAvLyBX
S19BUElfRU5BQkxFRAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336394</attachid>
            <date>2018-03-23 11:26:46 -0700</date>
            <delta_ts>2018-03-23 12:26:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183920-20180323112645.patch</filename>
            <type>text/plain</type>
            <size>69948</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5ODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDdjOWJjZWFjYjcxYWJi
ZTU5NzU3Y2EyY2RlNmUyMmNlNGJiOTFhZi4uNGI5MWIzMDYxMWI4Y2M5ODk1ODMwN2Q1MGRmYzZk
NjFlYTUwZTNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE4LTAzLTIzICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBHbyB0byBiYWNrL2Zvcndh
cmQgbGlzdCBpdGVtcyBhZnRlciBhIHByb2Nlc3Mtc3dhcHBlZCBuYXZpZ2F0aW9uLgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzg2OTA1NDQ+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgzOTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3QuCisKKyAgICAgICAgTW9zdCBv
ZiB0aGUgY2hhbmdlcyB0byBXZWJDb3JlIGFyZSB0ZWFjaGluZyBIaXN0b3J5SXRlbSBuYXZpZ2F0
aW9ucyB0byBrbm93IHdoZW4gdGhleSBzaG91bGQKKyAgICAgICAgZG8gYSBwb2xpY3kgY2hlY2sg
b3Igbm90LgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CisgICAgICAgICogaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QmFja0ZvcndhcmRDb250cm9sbGVyOjpnb0JhY2tPckZvcndhcmQpOgorICAgICAg
ICAoV2ViQ29yZTo6QmFja0ZvcndhcmRDb250cm9sbGVyOjpnb0JhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6QmFja0ZvcndhcmRDb250cm9sbGVyOjpnb0ZvcndhcmQpOgorCisgICAgICAgICogaGlz
dG9yeS9IaXN0b3J5SXRlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6c2V0
U3RhdGVPYmplY3QpOiBBY3R1YWxseSBwdXNoIHN0YXRlIG9iamVjdCBjaGFuZ2VzIHRvIHRoZSBV
SVByb2Nlc3MuCisgICAgICAgICAgVGhpcyB3YXMgYSBsb25nIHN0YW5kaW5nIGJ1ZyB0aGF0IG1h
ZGUgaXQgZGlmZmljdWx0IHRvIGVmZmVjdGl2ZWx5IHRlc3QgdGhpcyBjaGFuZ2UuCisKKyAgICAg
ICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmxvYWRVUkxJbnRvQ2hpbGRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnJldHJ5QWZ0
ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oOgorCisgICAg
ICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okhp
c3RvcnlDb250cm9sbGVyOjpnb1RvSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29u
dHJvbGxlcjo6c2V0RGVmZXJzTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29u
dHJvbGxlcjo6cmVjdXJzaXZlR29Ub0l0ZW0pOgorICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29u
dHJvbGxlci5oOgorCisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25Qb2xpY3lDaGVjay5oOgor
CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmdvVG9J
dGVtKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKwogMjAxOC0wMy0yMSAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIERpc2Nvbm5lY3QgdGhl
IFNWR1BhdGhTZWdMaXN0IGl0ZW1zIGZyb20gdGhlaXIgU1ZHUGF0aEVsZW1lbnQgYmVmb3JlIHJl
YnVpbGRpbmcgYSBuZXcgbGlzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3ZDVlZWVhZGFmNjUyNDA1YTg0OGY4ODIy
MjdlMzEzZWY1MjdkOGZiLi4xOTI5ZTM0NDE4MGY1MjdjMDRmMGViYjBhYjRjMWJkYTM0YTgxYzI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDE4LTAzLTIzICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBHbyB0byBiYWNrL2ZvcndhcmQgbGlzdCBpdGVt
cyBhZnRlciBhIHByb2Nlc3Mtc3dhcHBlZCBuYXZpZ2F0aW9uLgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMzg2OTA1NDQ+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgzOTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyB0YWtlcyB0aGUgaW5pdGlhbCB3b3JrIG9mICJwcm9jZXNzIHN3YXAgYSBub3JtYWwg
bmF2aWdhdGlvbiIgYW5kIGV4dGVuZHMgaXQgdG8KKyAgICAgICAgcHJvY2VzcyBzd2FwcGluZyBm
b3IgYmFjay9mb3J3YXJkIGl0ZW0gbmF2aWdhdGlvbnMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weToKKworICAgICAgICBNYWtlIHN1cmUgc3RhdGUgb2JqZWN0cyBhcmUg
c2VyaWFsaXplZCB0byB0aGUgVUkgUHJvY2VzcyBiYWNrL2ZvcndhcmQgbGlzdCBpdGVtcywgYXMg
b3RoZXJ3aXNlCisgICAgICAgIHRoZXkgd2lsbCBiZSBsb3N0IGluIHByb2Nlc3Mtc3dhcCBzY2Vu
YXJpb3M6CisgICAgICAgICogU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VTdGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVN0YXRl
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9TZXNzaW9uU3RhdGUuaDoKKworICAgICAgICBN
YWtlIGEgbmV3IHZhcmlhbnQgb2YgQVBJTmF2aWdhdGlvbiBzcGVjaWZpY2FsbHkgZm9yIGJhY2sv
Zm9yd2FyZCBsaXN0IGl0ZW1zLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlv
bi5jcHA6CisgICAgICAgIChBUEk6Ok5hdmlnYXRpb246Ok5hdmlnYXRpb24pOgorICAgICAgICAo
QVBJOjpOYXZpZ2F0aW9uOjpsb2dnaW5nVVJMIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0FQSU5hdmlnYXRpb24uaDoKKyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbjo6Y3JlYXRlKToK
KyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbjo6YmFja0ZvcndhcmRMaXN0SXRlbSk6CisgICAgICAg
IChBUEk6Ok5hdmlnYXRpb246OmJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSBjb25zdCk6CisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZUdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIgZ29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW06XSk6CisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtOl0pOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYk5hdmlnYXRp
b25TdGF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRpb25TdGF0ZTo6Y3JlYXRl
TG9hZFJlcXVlc3ROYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdGlvblN0
YXRlOjpjcmVhdGVCYWNrRm9yd2FyZE5hdmlnYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJOYXZpZ2F0aW9uU3RhdGUuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQcm9jZXNz
Rm9yUmVsb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2Vi
UHJvY2Vzc1dpdGhJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpnb0Zvcndh
cmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdvQmFjayk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKTogSGFuZGxl
IGJhY2svZm9yd2FyZCBuYXZpZ2F0aW9ucyBkaWZmZXJlbnRseSB0aGFuIG90aGVycy4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXN0b3JlRnJvbVNlc3Npb25TdGF0ZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6YWRk
T3JVcGRhdGVCYWNrRm9yd2FyZEl0ZW0pOiBSZW5hbWVkIGZyb20gImFkZEJhY2tGb3J3YXJkSXRl
bSIgZm9yIGNsYXJpdHkKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjphZGRCYWNr
Rm9yd2FyZEl0ZW0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbToK
KyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjplbmRTd2lwZUdlc3R1cmUp
OgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252
ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6dG9QYWdlU3RhdGUpOgorICAgICAgICAoV2Vi
S2l0Ojp0b0hpc3RvcnlJdGVtKToKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJC
YWNrRm9yd2FyZExpc3RQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnVwZGF0ZUJhY2tGb3J3
YXJkSXRlbSk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdvVG9CYWNrRm9yd2FyZEl0ZW0pOiBDb21iaW5lZCAi
Z29CYWNrIiBhbmQgImdvRm9yd2FyZCIgd2l0aCB0aGlzIG1ldGhvZCwKKyAgICAgICAgICBwYXNz
aW5nIHRoZSBhcHByb3ByaWF0ZSBGcmFtZUxvYWRUeXBlIGFyb3VuZCBhcyBuZWVkZWQgdG8gcmVt
ZW1iZXIgdGhlIHNwZWNpZmljIHR5cGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdvRm9y
d2FyZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdvQmFjayk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAxOC0wMy0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24ocjIyOTgz
MSk6IFByb2Nlc3NTd2FwLkJhc2ljIEFQSSB0ZXN0IGlzIGNyYXNoaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKaW5kZXggZWI3YTdhMzFjNmE4ZjAxYmVmMGEzYmY3MWZhMzdiNjZhY2RlNGZj
MS4uYjUxMDJhMGVhYzE1MDE4OWY1ZjQ3NmMwMjNiNDM5ODAxMGI2MGZmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTAzLTIzICBCcmFkeSBFaWRz
b24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBHbyB0byBiYWNrL2ZvcndhcmQgbGlz
dCBpdGVtcyBhZnRlciBhIHByb2Nlc3Mtc3dhcHBlZCBuYXZpZ2F0aW9uLgorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzg2OTA1NDQ+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgzOTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2xvYWRC
YWNrRm9yd2FyZExpc3RGcm9tT3RoZXJWaWV3Ol0pOgorICAgICAgICAoLVtXZWJWaWV3IGdvVG9C
YWNrRm9yd2FyZEl0ZW06XSk6CisKIDIwMTgtMDMtMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIHRoZSBtaW5pbWFsIHNpbXVsYXRvciBm
ZWF0dXJlIGZsYWcgd2hlbiBhcHByb3ByaWF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNkYzYyMzUxZWE5ZGNlYTgxY2VjYmZl
NTlmN2VkMTM0YTdiZTUwOTAuLmQ3MDE4MmI3NjNjZjkyNTZjNDQzMWQ0OTc5MzdkODdlYjNhZWVi
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEzNDIsNiArMTM0Miw3IEBACiAJCTUxMEQ0QTM3MTAzMTY1RUUwMDQ5RUE1NCAv
KiBTb2NrZXRTdHJlYW1IYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMEQ0QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
MTBENEEzODEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEzMjEwMzE2
NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTExMEZDRkMxRTAzNjQxRDAwNkY4
RDBCIC8qIElEQkN1cnNvclJlY29yZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTExMEZDRkIxRTAzNjJBNTAwNkY4RDBCIC8qIElEQkN1cnNvclJlY29y
ZC5oICovOyB9OworCQk1MTFFOTdBMzIwNjMwNzQ2MDBBRDQ1OTkgLyogTmF2aWdhdGlvblBvbGlj
eUNoZWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTFFOTdBMTIwNjMwNzJBMDBBRDQ1OTkgLyogTmF2aWdhdGlvblBvbGljeUNoZWNrLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTExRUMxMjgxQzUw
QUFDQTAwMzJGOTgzIC8qIElEQlNlcmlhbGl6YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJT
ZXJpYWxpemF0aW9uLmggKi87IH07CiAJCTUxMUVDMTJDMUM1MEFCQkYwMDMyRjk4MyAvKiBTUUxp
dGVJREJUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTExRUMxMkExQzUwQUJCQTAwMzJGOTgzIC8qIFNRTGl0ZUlEQlRyYW5zYWN0aW9u
LmggKi87IH07CiAJCTUxMUVDMTMwMUM1MEFCRjUwMDMyRjk4MyAvKiBTUUxpdGVJREJDdXJzb3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTJF
MUM1MEFCRUMwMDMyRjk4MyAvKiBTUUxpdGVJREJDdXJzb3IuaCAqLzsgfTsKQEAgLTc3MDEsNiAr
NzcwMiw3IEBACiAJCTUxMEQ0QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1
NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMTBGQ0ZCMUUwMzYyQTUwMDZGOEQwQiAvKiBJREJDdXJzb3JSZWNvcmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCQ3Vyc29yUmVjb3JkLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMUU5N0ExMjA2MzA3MkEwMEFENDU5OSAvKiBOYXZp
Z2F0aW9uUG9saWN5Q2hlY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF2
aWdhdGlvblBvbGljeUNoZWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUVD
MTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlNlcmlhbGl6YXRpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTFFQzEyNjFDNTBBQTU3MDAzMkY5ODMgLyogSURCU2VyaWFs
aXphdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJTZXJpYWxpemF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUVDMTI5MUM1MEFCQkEwMDMy
Rjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yMzk2MSw2ICsyMzk2Myw3IEBACiAJCQkJOTNDQ0YwNUYwQUY2Q0E3NjAw
MDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uY3BwICovLAogCQkJCTkzQ0NGMDI2MEFGNkM1Mjkw
MDAxOEU4OSAvKiBOYXZpZ2F0aW9uQWN0aW9uLmggKi8sCiAJCQkJOUJBODI3NzgxRjA2MTU2NTAw
RjcxRTc1IC8qIE5hdmlnYXRpb25EaXNhYmxlci5oICovLAorCQkJCTUxMUU5N0ExMjA2MzA3MkEw
MEFENDU5OSAvKiBOYXZpZ2F0aW9uUG9saWN5Q2hlY2suaCAqLywKIAkJCQk5NzlGNDNEMTEwNzVF
NDRBMDAwMEY4M0IgLyogTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgKi8sCiAJCQkJOTc5RjQzRDIx
MDc1RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRpb25TY2hlZHVsZXIuaCAqLywKIAkJCQk5M0UyMjdE
RDBBRjU4OUFEMDBENDgzMjQgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwICovLApA
QCAtMjkxMjksNiArMjkxMzIsNyBAQAogCQkJCTgzQjJEMTc1MUI4QkNENkEwMEEwMkU0NyAvKiBO
YXRpdmVOb2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTBCOUI2QzBCNzQ3NTk5MDAz
RUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0ND
RjAyNzBBRjZDNTI5MDAwMThFODkgLyogTmF2aWdhdGlvbkFjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNTExRTk3QTMyMDYzMDc0NjAwQUQ0NTk5IC8qIE5hdmlnYXRpb25Qb2xpY3lDaGVjay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTc5RjQzRDQxMDc1RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRp
b25TY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE5QzZFNUE2MEQ3NDY0NTgwMDY0NDJF
OSAvKiBOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjcxOUM3MEVFRUMxNjgwMEY2
MTIxMyAvKiBOYXZpZ2F0b3JCYXNlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmNwcAppbmRleCBmNDUwOTI2M2MwNDAx
OGJkZmE4ZDUyNWViYjE3NmE5ZWI2YTkxNjFlLi4wZjA1YmY2NWEzNWQ2MDdhNjhiYjI2ZmZkY2Y0
Zjc3NjJlNDQ5YWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3
YXJkQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2Fy
ZENvbnRyb2xsZXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQmFja0ZvcndhcmRD
b250cm9sbGVyLmgiCiAKICNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgorI2luY2x1ZGUg
Ik5hdmlnYXRpb25Qb2xpY3lDaGVjay5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNjksNyArNzAsNyBAQCB2b2lkIEJhY2tGb3J3YXJkQ29udHJvbGxlcjo6
Z29CYWNrT3JGb3J3YXJkKGludCBkaXN0YW5jZSkKICAgICBpZiAoIWl0ZW0pCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fcGFnZS5nb1RvSXRlbSgqaXRlbSwgRnJhbWVMb2FkVHlwZTo6SW5kZXhl
ZEJhY2tGb3J3YXJkKTsKKyAgICBtX3BhZ2UuZ29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6
OkluZGV4ZWRCYWNrRm9yd2FyZCwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKTsKIH0K
IAogYm9vbCBCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmdvQmFjaygpCkBAIC03OCw3ICs3OSw3IEBA
IGJvb2wgQmFja0ZvcndhcmRDb250cm9sbGVyOjpnb0JhY2soKQogICAgIGlmICghaXRlbSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9wYWdlLmdvVG9JdGVtKCppdGVtLCBGcmFtZUxv
YWRUeXBlOjpCYWNrKTsKKyAgICBtX3BhZ2UuZ29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6
OkJhY2ssIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZSk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKQEAgLTg4LDcgKzg5LDcgQEAgYm9vbCBCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmdvRm9y
d2FyZCgpCiAgICAgaWYgKCFpdGVtKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX3Bh
Z2UuZ29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6OkZvcndhcmQpOworICAgIG1fcGFnZS5n
b1RvSXRlbSgqaXRlbSwgRnJhbWVMb2FkVHlwZTo6Rm9yd2FyZCwgTmF2aWdhdGlvblBvbGljeUNo
ZWNrOjpSZXF1aXJlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5
L0hpc3RvcnlJdGVtLmNwcAppbmRleCA2YzMwMzRjYWUwMjUwNzNkNDhiMjA5MTY3NDJlYzk0ZGFh
MzZkYzhiLi45ZDg2ODk4OGFkMGVkYWUwMGQ5NWY4NDJmZDM4MjMyNGRmOWY1NTg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcApAQCAtMzExLDYgKzMxMSw3IEBAIHZvaWQg
SGlzdG9yeUl0ZW06OnNldElzVGFyZ2V0SXRlbShib29sIGZsYWcpCiB2b2lkIEhpc3RvcnlJdGVt
OjpzZXRTdGF0ZU9iamVjdChSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG9iamVjdCkK
IHsKICAgICBtX3N0YXRlT2JqZWN0ID0gV1RGTW92ZShvYmplY3QpOworICAgIG5vdGlmeUhpc3Rv
cnlJdGVtQ2hhbmdlZCh0aGlzKTsKIH0KIAogdm9pZCBIaXN0b3J5SXRlbTo6YWRkQ2hpbGRJdGVt
KFJlZjxIaXN0b3J5SXRlbT4mJiBjaGlsZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCmluZGV4IGQ3NmU0NDEwYjYxNTk2NDcwOGYyMGZhYzRkOTg1ZDIzNjk0OWMwNWQuLmZjZjg2
NDk0MzRlMGIwMGNkMGUzNjMzZTdhOTlhMzVlN2ZlY2FkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcApAQCAtODcsNiArODcsNyBAQAogI2luY2x1ZGUgIk1lbW9yeUNhY2hl
LmgiCiAjaW5jbHVkZSAiTWVtb3J5UmVsZWFzZS5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25EaXNh
Ymxlci5oIgorI2luY2x1ZGUgIk5hdmlnYXRpb25Qb2xpY3lDaGVjay5oIgogI2luY2x1ZGUgIk5h
dmlnYXRpb25TY2hlZHVsZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNh
Y2hlLmgiCkBAIC05MjcsNyArOTI4LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTEludG9D
aGlsZEZyYW1lKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVyZXIsIEYKICAgICBp
ZiAocGFyZW50SXRlbSAmJiBwYXJlbnRJdGVtLT5jaGlsZHJlbigpLnNpemUoKSAmJiBpc0JhY2tG
b3J3YXJkTG9hZFR5cGUobG9hZFR5cGUoKSkgJiYgIW1fZnJhbWUuZG9jdW1lbnQoKS0+bG9hZEV2
ZW50RmluaXNoZWQoKSkgewogICAgICAgICBpZiAoYXV0byogY2hpbGRJdGVtID0gcGFyZW50SXRl
bS0+Y2hpbGRJdGVtV2l0aFRhcmdldChjaGlsZEZyYW1lLT50cmVlKCkudW5pcXVlTmFtZSgpKSkg
ewogICAgICAgICAgICAgY2hpbGRGcmFtZS0+bG9hZGVyKCkubV9yZXF1ZXN0ZWRIaXN0b3J5SXRl
bSA9IGNoaWxkSXRlbTsKLSAgICAgICAgICAgIGNoaWxkRnJhbWUtPmxvYWRlcigpLmxvYWREaWZm
ZXJlbnREb2N1bWVudEl0ZW0oKmNoaWxkSXRlbSwgbG9hZFR5cGUoKSwgTWF5QXR0ZW1wdENhY2hl
T25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0ZW0pOworICAgICAgICAgICAgY2hpbGRGcmFtZS0+
bG9hZGVyKCkubG9hZERpZmZlcmVudERvY3VtZW50SXRlbSgqY2hpbGRJdGVtLCBsb2FkVHlwZSgp
LCBNYXlBdHRlbXB0Q2FjaGVPbmx5TG9hZEZvckZvcm1TdWJtaXNzaW9uSXRlbSwgTmF2aWdhdGlv
blBvbGljeUNoZWNrOjpSZXF1aXJlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgIH0KQEAgLTM0NjUsNyArMzQ2Niw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRTYW1lRG9j
dW1lbnRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtKQogLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gc2hv
dWxkIHJlYWxseSBiZSBzcGxpdCBpbnRvIGEgY291cGxlIHBpZWNlcywgc29tZSBvZgogLy8gd2hp
Y2ggc2hvdWxkIGJlIG1ldGhvZHMgb2YgSGlzdG9yeUNvbnRyb2xsZXIgYW5kIHNvbWUgb2Ygd2hp
Y2ggc2hvdWxkIGJlCiAvLyBtZXRob2RzIG9mIEZyYW1lTG9hZGVyLgotdm9pZCBGcmFtZUxvYWRl
cjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2Fk
VHlwZSBsb2FkVHlwZSwgRm9ybVN1Ym1pc3Npb25DYWNoZUxvYWRQb2xpY3kgY2FjaGVMb2FkUG9s
aWN5KQordm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5
SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSwgRm9ybVN1Ym1pc3Npb25DYWNoZUxv
YWRQb2xpY3kgY2FjaGVMb2FkUG9saWN5LCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2sgbmF2aWdhdGlv
blBvbGljeUNoZWNrKQogewogICAgIC8vIFJlbWVtYmVyIHRoaXMgaXRlbSBzbyB3ZSBjYW4gdHJh
dmVyc2UgYW55IGNoaWxkIGl0ZW1zIGFzIGNoaWxkIGZyYW1lcyBsb2FkCiAgICAgaGlzdG9yeSgp
LnNldFByb3Zpc2lvbmFsSXRlbSgmaXRlbSk7CkBAIC0zNTYzLDExICszNTY0LDEzIEBAIHZvaWQg
RnJhbWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0s
IEZyYW1lTG9hZFR5cGUgbG9hCiAgICAgICAgIGFjdGlvbiA9IHsgKm1fZnJhbWUuZG9jdW1lbnQo
KSwgcmVxdWVzdEZvck9yaWdpbmFsVVJMLCBpbml0aWF0ZWRCeU1haW5GcmFtZSwgbG9hZFR5cGUs
IGlzRm9ybVN1Ym1pc3Npb24sIGV2ZW50LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IH07
CiAgICAgfQogCisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY3VycmVudExvYWRTaG91bGRDaGVja05h
dmlnYXRpb25Qb2xpY3lHdWFyZChtX2N1cnJlbnRMb2FkU2hvdWxkQ2hlY2tOYXZpZ2F0aW9uUG9s
aWN5LCBuYXZpZ2F0aW9uUG9saWN5Q2hlY2sgIT0gTmF2aWdhdGlvblBvbGljeUNoZWNrOjpCeXBh
c3MpOworCiAgICAgbG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIGFjdGlvbiwgTG9j
a0hpc3Rvcnk6Ok5vLCBsb2FkVHlwZSwgMCwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZ
ZXMsIFtdIHsgfSk7CiB9CiAKIC8vIExvYWRzIGNvbnRlbnQgaW50byB0aGlzIGZyYW1lLCBhcyBz
cGVjaWZpZWQgYnkgaGlzdG9yeSBpdGVtCi12b2lkIEZyYW1lTG9hZGVyOjpsb2FkSXRlbShIaXN0
b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSkKK3ZvaWQgRnJhbWVMb2FkZXI6
OmxvYWRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBGcmFtZUxvYWRUeXBlIGxvYWRUeXBlLCBOYXZp
Z2F0aW9uUG9saWN5Q2hlY2sgbmF2aWdhdGlvblBvbGljeUNoZWNrKQogewogICAgIG1fcmVxdWVz
dGVkSGlzdG9yeUl0ZW0gPSAmaXRlbTsKICAgICBIaXN0b3J5SXRlbSogY3VycmVudEl0ZW0gPSBo
aXN0b3J5KCkuY3VycmVudEl0ZW0oKTsKQEAgLTM1NzYsNyArMzU3OSw3IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OmxvYWRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBGcmFtZUxvYWRUeXBlIGxvYWRUeXBl
KQogICAgIGlmIChzYW1lRG9jdW1lbnROYXZpZ2F0aW9uKQogICAgICAgICBsb2FkU2FtZURvY3Vt
ZW50SXRlbShpdGVtKTsKICAgICBlbHNlCi0gICAgICAgIGxvYWREaWZmZXJlbnREb2N1bWVudEl0
ZW0oaXRlbSwgbG9hZFR5cGUsIE1heUF0dGVtcHRDYWNoZU9ubHlMb2FkRm9yRm9ybVN1Ym1pc3Np
b25JdGVtKTsKKyAgICAgICAgbG9hZERpZmZlcmVudERvY3VtZW50SXRlbShpdGVtLCBsb2FkVHlw
ZSwgTWF5QXR0ZW1wdENhY2hlT25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0ZW0sIG5hdmlnYXRp
b25Qb2xpY3lDaGVjayk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OnJldHJ5QWZ0ZXJGYWlsZWRD
YWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKCkKQEAgLTM1OTEsNyArMzU5NCw3IEBAIHZvaWQgRnJh
bWVMb2FkZXI6OnJldHJ5QWZ0ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKCkKICAg
ICBIaXN0b3J5SXRlbSYgaXRlbSA9ICpoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCk7CiAKICAg
ICBzdG9wQWxsTG9hZGVycyhTaG91bGROb3RDbGVhclByb3Zpc2lvbmFsSXRlbSk7Ci0gICAgbG9h
ZERpZmZlcmVudERvY3VtZW50SXRlbShpdGVtLCBsb2FkVHlwZSwgTWF5Tm90QXR0ZW1wdENhY2hl
T25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0ZW0pOworICAgIGxvYWREaWZmZXJlbnREb2N1bWVu
dEl0ZW0oaXRlbSwgbG9hZFR5cGUsIE1heU5vdEF0dGVtcHRDYWNoZU9ubHlMb2FkRm9yRm9ybVN1
Ym1pc3Npb25JdGVtLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6OlJlcXVpcmUpOwogfQogCiBSZXNv
dXJjZUVycm9yIEZyYW1lTG9hZGVyOjpjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDhl
NGI5NWViMTQzNjdkMjE1OTllYzNhYjBkOTVhODBkZjlkMjIyNDIuLjdlNWVkNWRkN2U2MjYyNDIx
MTA5ZjZlMDc0OTk5NTZjNDBiNDEwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5o
CkBAIC04MCw2ICs4MCw4IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIFN1YmZyYW1lTG9h
ZGVyOwogY2xhc3MgU3Vic3RpdHV0ZURhdGE7CiAKK2VudW0gY2xhc3MgTmF2aWdhdGlvblBvbGlj
eUNoZWNrOworCiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiAKIFdFQkNPUkVfRVhQT1JUIGJvb2wg
aXNCYWNrRm9yd2FyZExvYWRUeXBlKEZyYW1lTG9hZFR5cGUpOwpAQCAtMTI1LDcgKzEyNyw3IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbG9hZFdpdGhPdmVycmlkZUVuY29k
aW5nKGNvbnN0IFN0cmluZyYgb3ZlcnJpZGVFbmNvZGluZyk7CiAKICAgICB2b2lkIG9wZW4oQ2Fj
aGVkRnJhbWVCYXNlJik7Ci0gICAgdm9pZCBsb2FkSXRlbShIaXN0b3J5SXRlbSYsIEZyYW1lTG9h
ZFR5cGUpOworICAgIHZvaWQgbG9hZEl0ZW0oSGlzdG9yeUl0ZW0mLCBGcmFtZUxvYWRUeXBlLCBO
YXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogICAgIEhpc3RvcnlJdGVtKiByZXF1ZXN0ZWRIaXN0b3J5
SXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkSGlzdG9yeUl0ZW0uZ2V0KCk7IH0KIAog
ICAgIHZvaWQgcmV0cnlBZnRlckZhaWxlZENhY2hlT25seU1haW5SZXNvdXJjZUxvYWQoKTsKQEAg
LTMxNyw3ICszMTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2hlY2tUaW1lckZpcmVkKCk7CiAK
ICAgICB2b2lkIGxvYWRTYW1lRG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJik7Ci0gICAgdm9pZCBs
b2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJiwgRnJhbWVMb2FkVHlwZSwgRm9y
bVN1Ym1pc3Npb25DYWNoZUxvYWRQb2xpY3kpOworICAgIHZvaWQgbG9hZERpZmZlcmVudERvY3Vt
ZW50SXRlbShIaXN0b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUsIEZvcm1TdWJtaXNzaW9uQ2FjaGVM
b2FkUG9saWN5LCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogCiAgICAgdm9pZCBsb2FkUHJvdmlz
aW9uYWxJdGVtRnJvbUNhY2hlZFBhZ2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlclR5cGVzLmgKaW5kZXggNTliNmE2MjNkMTViZDA1N2I4ODYzMWYyNDI5MDUwZGZkOWQwMmJk
Zi4uNmRlMWI2ZmFhZmUyZTlhZDM1NGU2OTkyY2I3NGVjOGFkM2MyOTMxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCkBAIC0xNjQsNCArMTY0LDIwIEBAIHRlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UG9saWN5QWN0aW9uPiB7CiAgICAgPjsK
IH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RnJhbWVMb2FkVHlw
ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkZy
YW1lTG9hZFR5cGUsCisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGU6OlN0YW5kYXJkLAor
ICAgICAgICBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlOjpCYWNrLAorICAgICAgICBXZWJDb3JlOjpG
cmFtZUxvYWRUeXBlOjpGb3J3YXJkLAorICAgICAgICBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlOjpJ
bmRleGVkQmFja0ZvcndhcmQsCisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGU6OlJlbG9h
ZCwKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZTo6U2FtZSwKKyAgICAgICAgV2ViQ29y
ZTo6RnJhbWVMb2FkVHlwZTo6UmVkaXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRMaXN0LAorICAg
ICAgICBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlOjpSZXBsYWNlLAorICAgICAgICBXZWJDb3JlOjpG
cmFtZUxvYWRUeXBlOjpSZWxvYWRGcm9tT3JpZ2luLAorICAgICAgICBXZWJDb3JlOjpGcmFtZUxv
YWRUeXBlOjpSZWxvYWRFeHBpcmVkT25seQorICAgID47Cit9OworCiB9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCmluZGV4IGI4
ZWU3MzM2YjdjZDk3ZGE1MDVjNDkwOGYxNTM5ZTY3N2FmNmYwYTAuLmVhMjU2N2I2MzgwMDRkN2I4
MDY2MGFkNjE2NzlmZjljZDFjZGFkMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9IaXN0b3J5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3Rv
cnlDb250cm9sbGVyLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkhpc3RvcnlJdGVt
LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgorI2luY2x1
ZGUgIk5hdmlnYXRpb25Qb2xpY3lDaGVjay5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgpAQCAtMjkw
LDcgKzI5MSw3IEBAIGJvb2wgSGlzdG9yeUNvbnRyb2xsZXI6OnNob3VsZFN0b3BMb2FkaW5nRm9y
SGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0mIHRhcmdldEl0ZW0pCiAKIC8vIE1haW4gZnVubmVsIGZv
ciBuYXZpZ2F0aW5nIHRvIGEgcHJldmlvdXMgbG9jYXRpb24gKGJhY2svZm9yd2FyZCwgbm9uLXNl
YXJjaCBzbmFwLWJhY2spCiAvLyBUaGlzIGluY2x1ZGVzIHJlY3Vyc2lvbiB0byBoYW5kbGUgbG9h
ZGluZyBpbnRvIGZyYW1lc2V0cyBwcm9wZXJseQotdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6Z29U
b0l0ZW0oSGlzdG9yeUl0ZW0mIHRhcmdldEl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSkKK3ZvaWQg
SGlzdG9yeUNvbnRyb2xsZXI6OmdvVG9JdGVtKEhpc3RvcnlJdGVtJiB0YXJnZXRJdGVtLCBGcmFt
ZUxvYWRUeXBlIHR5cGUsIE5hdmlnYXRpb25Qb2xpY3lDaGVjayBuYXZpZ2F0aW9uUG9saWN5Q2hl
Y2spCiB7CiAgICAgTE9HKEhpc3RvcnksICJIaXN0b3J5Q29udHJvbGxlciAlcCBnb1RvSXRlbSAl
cCB0eXBlPSVkIiwgdGhpcywgJnRhcmdldEl0ZW0sIHN0YXRpY19jYXN0PGludD4odHlwZSkpOwog
CkBAIC0zMjUsMTQgKzMyNiwxNCBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjpnb1RvSXRlbShI
aXN0b3J5SXRlbSYgdGFyZ2V0SXRlbSwgRnJhbWVMb2FkVHlwZSB0eXBlKQogICAgIHJlY3Vyc2l2
ZVNldFByb3Zpc2lvbmFsSXRlbSh0YXJnZXRJdGVtLCBjdXJyZW50SXRlbS5nZXQoKSk7CiAKICAg
ICAvLyBOb3cgdGhhdCBhbGwgb3RoZXIgZnJhbWVzIGhhdmUgcHJvdmlzaW9uYWwgaXRlbXMsIGRv
IHRoZSBhY3R1YWwgbmF2aWdhdGlvbi4KLSAgICByZWN1cnNpdmVHb1RvSXRlbSh0YXJnZXRJdGVt
LCBjdXJyZW50SXRlbS5nZXQoKSwgdHlwZSk7CisgICAgcmVjdXJzaXZlR29Ub0l0ZW0odGFyZ2V0
SXRlbSwgY3VycmVudEl0ZW0uZ2V0KCksIHR5cGUsIG5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CiB9
CiAKIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcikK
IHsKICAgICBtX2RlZmVyc0xvYWRpbmcgPSBkZWZlcjsKICAgICBpZiAoIWRlZmVyICYmIG1fZGVm
ZXJyZWRJdGVtKSB7Ci0gICAgICAgIGdvVG9JdGVtKCptX2RlZmVycmVkSXRlbSwgbV9kZWZlcnJl
ZEZyYW1lTG9hZFR5cGUpOworICAgICAgICBnb1RvSXRlbSgqbV9kZWZlcnJlZEl0ZW0sIG1fZGVm
ZXJyZWRGcmFtZUxvYWRUeXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6OlJlcXVpcmUpOwogICAg
ICAgICBtX2RlZmVycmVkSXRlbSA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAtNzQ5LDEwICs3NTAs
MTAgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVjdXJzaXZlU2V0UHJvdmlzaW9uYWxJdGVt
KEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXQKIAogLy8gV2Ugbm93IHRyYXZlcnNlIHRoZSBm
cmFtZSB0cmVlIGFuZCBpdGVtIHRyZWUgYSBzZWNvbmQgdGltZSwgbG9hZGluZyBmcmFtZXMgdGhh
dAogLy8gZG8gaGF2ZSB0aGUgY29udGVudCB0aGUgaXRlbSByZXF1ZXN0cy4KLXZvaWQgSGlzdG9y
eUNvbnRyb2xsZXI6OnJlY3Vyc2l2ZUdvVG9JdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5
SXRlbSogZnJvbUl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSkKK3ZvaWQgSGlzdG9yeUNvbnRyb2xs
ZXI6OnJlY3Vyc2l2ZUdvVG9JdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXRlbSogZnJv
bUl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSwgTmF2aWdhdGlvblBvbGljeUNoZWNrIG5hdmlnYXRp
b25Qb2xpY3lDaGVjaykKIHsKICAgICBpZiAoIWl0ZW1zQXJlQ2xvbmVzKGl0ZW0sIGZyb21JdGVt
KSkgewotICAgICAgICBtX2ZyYW1lLmxvYWRlcigpLmxvYWRJdGVtKGl0ZW0sIHR5cGUpOworICAg
ICAgICBtX2ZyYW1lLmxvYWRlcigpLmxvYWRJdGVtKGl0ZW0sIHR5cGUsIG5hdmlnYXRpb25Qb2xp
Y3lDaGVjayk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTc2Myw3ICs3NjQsNyBAQCB2
b2lkIEhpc3RvcnlDb250cm9sbGVyOjpyZWN1cnNpdmVHb1RvSXRlbShIaXN0b3J5SXRlbSYgaXRl
bSwgSGlzdG9yeUl0ZW0qIGZyb21JdAogICAgICAgICBIaXN0b3J5SXRlbSogZnJvbUNoaWxkSXRl
bSA9IGZyb21JdGVtLT5jaGlsZEl0ZW1XaXRoVGFyZ2V0KGNoaWxkRnJhbWVOYW1lKTsKICAgICAg
ICAgQVNTRVJUKGZyb21DaGlsZEl0ZW0pOwogICAgICAgICBpZiAoRnJhbWUqIGNoaWxkRnJhbWUg
PSBtX2ZyYW1lLnRyZWUoKS5jaGlsZChjaGlsZEZyYW1lTmFtZSkpCi0gICAgICAgICAgICBjaGls
ZEZyYW1lLT5sb2FkZXIoKS5oaXN0b3J5KCkucmVjdXJzaXZlR29Ub0l0ZW0oY2hpbGRJdGVtLCBm
cm9tQ2hpbGRJdGVtLCB0eXBlKTsKKyAgICAgICAgICAgIGNoaWxkRnJhbWUtPmxvYWRlcigpLmhp
c3RvcnkoKS5yZWN1cnNpdmVHb1RvSXRlbShjaGlsZEl0ZW0sIGZyb21DaGlsZEl0ZW0sIHR5cGUs
IG5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9IaXN0b3J5Q29udHJvbGxlci5oCmluZGV4IDNkMjVlMjg5YjIyZmIxZjk5NjNmNmRmYjMzNDc4
OTU4MWQwOTI3MDEuLjQ1MzVhYWViMzgwZDE4NWM5YTExMTlmYjU4ODRjNThmMzBmNTkwZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCkBAIC00MCw2ICs0MCw4
IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgSGlzdG9yeUl0ZW07CiBjbGFzcyBTZXJpYWxpemVkU2Ny
aXB0VmFsdWU7CiAKK2VudW0gY2xhc3MgTmF2aWdhdGlvblBvbGljeUNoZWNrOworCiBzdHJ1Y3Qg
U3RyaW5nV2l0aERpcmVjdGlvbjsKIAogY2xhc3MgSGlzdG9yeUNvbnRyb2xsZXIgewpAQCAtOTIs
MTQgKzk0LDE0IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFBhZ2U7CiAg
ICAgYm9vbCBzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtJikgY29u
c3Q7Ci0gICAgdm9pZCBnb1RvSXRlbShIaXN0b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUpOworICAg
IHZvaWQgZ29Ub0l0ZW0oSGlzdG9yeUl0ZW0mLCBGcmFtZUxvYWRUeXBlLCBOYXZpZ2F0aW9uUG9s
aWN5Q2hlY2spOwogCiAgICAgdm9pZCBpbml0aWFsaXplSXRlbShIaXN0b3J5SXRlbSYpOwogICAg
IFJlZjxIaXN0b3J5SXRlbT4gY3JlYXRlSXRlbSgpOwogICAgIFJlZjxIaXN0b3J5SXRlbT4gY3Jl
YXRlSXRlbVRyZWUoRnJhbWUmIHRhcmdldEZyYW1lLCBib29sIGNsaXBBdFRhcmdldCk7CiAKICAg
ICB2b2lkIHJlY3Vyc2l2ZVNldFByb3Zpc2lvbmFsSXRlbShIaXN0b3J5SXRlbSYsIEhpc3RvcnlJ
dGVtKik7Ci0gICAgdm9pZCByZWN1cnNpdmVHb1RvSXRlbShIaXN0b3J5SXRlbSYsIEhpc3RvcnlJ
dGVtKiwgRnJhbWVMb2FkVHlwZSk7CisgICAgdm9pZCByZWN1cnNpdmVHb1RvSXRlbShIaXN0b3J5
SXRlbSYsIEhpc3RvcnlJdGVtKiwgRnJhbWVMb2FkVHlwZSwgTmF2aWdhdGlvblBvbGljeUNoZWNr
KTsKICAgICBib29sIGlzUmVwbGFjZUxvYWRUeXBlV2l0aFByb3Zpc2lvbmFsSXRlbShGcmFtZUxv
YWRUeXBlKTsKICAgICBib29sIGlzUmVsb2FkVHlwZVdpdGhQcm92aXNpb25hbEl0ZW0oRnJhbWVM
b2FkVHlwZSk7CiAgICAgdm9pZCByZWN1cnNpdmVVcGRhdGVGb3JDb21taXQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uUG9saWN5Q2hlY2suaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uUG9saWN5Q2hlY2suaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjE3
OGVmZGNhOGVkMGRhOGUzOWEyNmRlMmFjNWQ4NmNiM2M4YjY0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25Qb2xpY3lDaGVjay5oCkBAIC0wLDAgKzEs
NDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJh
aXRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9s
aWN5Q2hlY2sgeworICAgIFJlcXVpcmUsCisgICAgQnlwYXNzLAorfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpOYXZpZ2F0aW9uUG9saWN5Q2hlY2s+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpOYXZpZ2F0aW9uUG9saWN5Q2hlY2ssCisg
ICAgICAgIFdlYkNvcmU6Ok5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZSwKKyAgICAgICAg
V2ViQ29yZTo6TmF2aWdhdGlvblBvbGljeUNoZWNrOjpCeXBhc3MKKyAgICA+OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAzOTQzYWEyY2RhY2E1MzYzOGI5
OTc2YTliNDY2OWFmYjU4NmU3YTBlLi45NTU4MTQ2NGEzZGQzYTFmNDIwZTg1YTVhNTZjOTQ5OGVk
YjUyZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTQ0Nyw3ICs0NDcsNyBAQCB2b2lkIFBhZ2U6
OnNldE9wZW5lZEJ5RE9NKCkKICAgICBtX29wZW5lZEJ5RE9NID0gdHJ1ZTsKIH0KIAotdm9pZCBQ
YWdlOjpnb1RvSXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSB0eXBlKQordm9p
ZCBQYWdlOjpnb1RvSXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSB0eXBlLCBO
YXZpZ2F0aW9uUG9saWN5Q2hlY2sgbmF2aWdhdGlvblBvbGljeUNoZWNrKQogewogICAgIC8vIHN0
b3BBbGxMb2FkZXJzIG1heSBlbmQgdXAgcnVubmluZyBvbmxvYWQgaGFuZGxlcnMsIHdoaWNoIGNv
dWxkIGNhdXNlIGZ1cnRoZXIgaGlzdG9yeSB0cmF2ZXJzYWxzIHRoYXQgbWF5IGxlYWQgdG8gdGhl
IHBhc3NlZCBpbiBIaXN0b3J5SXRlbQogICAgIC8vIGJlaW5nIGRlcmVmKCktZWQuIE1ha2Ugc3Vy
ZSB3ZSBjYW4gc3RpbGwgdXNlIGl0IHdpdGggSGlzdG9yeUNvbnRyb2xsZXI6OmdvVG9JdGVtIGxh
dGVyLgpAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQgUGFnZTo6Z29Ub0l0ZW0oSGlzdG9yeUl0ZW0m
IGl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSkKICAgICBpZiAobV9tYWluRnJhbWUtPmxvYWRlcigp
Lmhpc3RvcnkoKS5zaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKGl0ZW0pKQogICAgICAg
ICBtX21haW5GcmFtZS0+bG9hZGVyKCkuc3RvcEFsbExvYWRlcnMoKTsKIAotICAgIG1fbWFpbkZy
YW1lLT5sb2FkZXIoKS5oaXN0b3J5KCkuZ29Ub0l0ZW0oaXRlbSwgdHlwZSk7CisgICAgbV9tYWlu
RnJhbWUtPmxvYWRlcigpLmhpc3RvcnkoKS5nb1RvSXRlbShpdGVtLCB0eXBlLCBuYXZpZ2F0aW9u
UG9saWN5Q2hlY2spOwogfQogCiB2b2lkIFBhZ2U6OnNldEdyb3VwTmFtZShjb25zdCBTdHJpbmcm
IG5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDlmZGQ0ZDgxZDMxYjU1ODAxYmU3OGJlYTJmOGI1ODk4
OTVlMWU5ZWUuLjkwNzlkOGFhZmQyODA5NWZlNGJkMzQ0MTE4MTRhODA2MzkzYmE3YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCkBAIC0xNDUsNiArMTQ1LDcgQEAgZW51bSBjbGFzcyBFdmVudFRocm90dGxpbmdC
ZWhhdmlvciB7CiAKIGVudW0gY2xhc3MgQ2FuV3JhcCA6IGJvb2w7CiBlbnVtIGNsYXNzIERpZFdy
YXAgOiBib29sOworZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s7CiAKIGNsYXNzIFBh
Z2UgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8UGFnZT4gewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFBhZ2UpOwpAQCAtMTgwLDcgKzE4MSw3IEBAIHB1YmxpYzoKICAgICBib29sIG9wZW5lZEJ5
RE9NKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRPcGVuZWRCeURPTSgpOwogCi0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBnb1RvSXRlbShIaXN0b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZ29Ub0l0ZW0oSGlzdG9yeUl0ZW0mLCBGcmFtZUxvYWRUeXBlLCBO
YXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRHcm91
cE5hbWUoY29uc3QgU3RyaW5nJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgU3RyaW5nJiBn
cm91cE5hbWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CmluZGV4IGMwYjMwZDM2Nzc5MDZlZjMxYmVhYTg5NTMxZjVlYWNmMGY1NjcwZmIuLjgyMDc4MGI4
OWVhNDZhMDYxZTk2YjEzM2U1ZGE0Zjk3ZjRjZTkwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMzcyLDYgKzM3Miw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90
eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzJzogWyc8V2Vi
Q29yZS9BdXRvcGxheUV2ZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpFeGNlcHRpb25EZXRh
aWxzJzogWyc8V2ViQ29yZS9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJzogWyc8V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPidd
LAorICAgICAgICAnV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSc6IFsnPFdlYkNvcmUvRnJhbWVMb2Fk
ZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6R3JhbW1hckRldGFpbCc6IFsnPFdlYkNv
cmUvVGV4dENoZWNrZXJDbGllbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Okhhc0luc2VjdXJl
Q29udGVudCc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6SGlnaGxpZ2h0JzogWyc8V2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5Lmg+J10sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmNwcAppbmRleCBiMGFhZTU5YWIwZWJjMjkwYTVlNTk0
YTU0OWE4M2MzOTRiMTk4YWE5Li45MTFkMmU3Mzc3OGM5ZWY1YWE4ZjViMzIzOWNkYmM4ZDU0MTI2
MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAKQEAgLTI4LDYgKzI4LDgg
QEAKIAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGJvb2wgaXNWYWxpZEVudW0oV2Vi
Q29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBwb2xpY3kpCkBAIC0xODQsOCArMTg2
LDExIEBAIHN0ZDo6b3B0aW9uYWw8RnJhbWVTdGF0ZT4gRnJhbWVTdGF0ZTo6ZGVjb2RlKElQQzo6
RGVjb2RlciYgZGVjb2RlcikKIAogdm9pZCBQYWdlU3RhdGU6OmVuY29kZShJUEM6OkVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCB0aXRsZTsKLSAgICBlbmNvZGVyIDw8
IG1haW5GcmFtZVN0YXRlOworICAgIGVuY29kZXIgPDwgdGl0bGUgPDwgbWFpbkZyYW1lU3RhdGUg
PDwgISFzZXNzaW9uU3RhdGVPYmplY3Q7CisKKyAgICBpZiAoc2Vzc2lvblN0YXRlT2JqZWN0KQor
ICAgICAgICBlbmNvZGVyIDw8IHNlc3Npb25TdGF0ZU9iamVjdC0+dG9XaXJlQnl0ZXMoKTsKKwog
ICAgIGVuY29kZXIuZW5jb2RlRW51bShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKIH0K
IApAQCAtMTk4LDYgKzIwMywxOSBAQCBib29sIFBhZ2VTdGF0ZTo6ZGVjb2RlKElQQzo6RGVjb2Rl
ciYgZGVjb2RlciwgUGFnZVN0YXRlJiByZXN1bHQpCiAgICAgaWYgKCFtYWluRnJhbWVTdGF0ZSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJlc3VsdC5tYWluRnJhbWVTdGF0ZSA9IFdURk1v
dmUoKm1haW5GcmFtZVN0YXRlKTsKKworICAgIGJvb2wgaGFzU2Vzc2lvblN0YXRlOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoaGFzU2Vzc2lvblN0YXRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgaWYgKGhhc1Nlc3Npb25TdGF0ZSkgeworICAgICAgICBWZWN0b3I8dWludDhfdD4g
d2lyZUJ5dGVzOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHdpcmVCeXRlcykpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmVzdWx0LnNlc3Npb25TdGF0ZU9iamVj
dCA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlRnJvbVdpcmVCeXRlcyhXVEZNb3ZlKHdp
cmVCeXRlcykpOworICAgIH0KKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5z
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KSB8fCAhaXNWYWxpZEVudW0ocmVzdWx0LnNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKaW5kZXggYzM1NGJkNzMzYjk4NWZiMzJhMTg2ZTQ2MGRl
NTAxMDJhYjVlZDhlOS4uMTQ4MjE0NDVjODdmZTQzMzU1Nzk2MmJjYjM0OTkzZTUxZDJmMmFmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgogI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTExOSw2ICsxMjAs
NyBAQCBzdHJ1Y3QgUGFnZVN0YXRlIHsKICAgICBTdHJpbmcgdGl0bGU7CiAgICAgRnJhbWVTdGF0
ZSBtYWluRnJhbWVTdGF0ZTsKICAgICBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgeyBXZWJDb3JlOjpTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyB9OworICAgIFJlZlB0cjxXZWJDb3JlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlc3Npb25TdGF0ZU9iamVjdDsKIH07CiAKIHN0cnVjdCBC
YWNrRm9yd2FyZExpc3RJdGVtU3RhdGUgewpAQCAtMTMxLDcgKzEzMyw2IEBAIHN0cnVjdCBCYWNr
Rm9yd2FyZExpc3RJdGVtU3RhdGUgewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJlZlB0cjxW
aWV3U25hcHNob3Q+IHNuYXBzaG90OwogI2VuZGlmCi0KIH07CiAKIHN0cnVjdCBCYWNrRm9yd2Fy
ZExpc3RTdGF0ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
TmF2aWdhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlv
bi5jcHAKaW5kZXggYjdmNjk4ZWFiMmRjZDFkOTYzZWY4ZGI4OWI0MDgwNWJlNWE0NDQyMy4uYmVh
MzMzZTlmNDRiYzFkYTlkODJhOTRiMTUxMzhmNTFlMjZmMWYzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmNwcApAQCAtMjYsMjIgKzI2LDMzIEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5oIgogCisjaW5jbHVk
ZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25TdGF0
ZS5oIgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CisKIG5hbWVzcGFjZSBBUEkgewogCi1OYXZpZ2F0aW9uOjpOYXZpZ2F0aW9uKFdlYktpdDo6V2Vi
TmF2aWdhdGlvblN0YXRlJiBzdGF0ZSkKK05hdmlnYXRpb246Ok5hdmlnYXRpb24oV2ViTmF2aWdh
dGlvblN0YXRlJiBzdGF0ZSkKICAgICA6IG1fbmF2aWdhdGlvbklEKHN0YXRlLmdlbmVyYXRlTmF2
aWdhdGlvbklEKCkpCiB7CiB9CiAKLU5hdmlnYXRpb246Ok5hdmlnYXRpb24oV2ViS2l0OjpXZWJO
YXZpZ2F0aW9uU3RhdGUmIHN0YXRlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
KQorTmF2aWdhdGlvbjo6TmF2aWdhdGlvbihXZWJOYXZpZ2F0aW9uU3RhdGUmIHN0YXRlLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogICAgIDogbV9uYXZpZ2F0aW9uSUQoc3Rh
dGUuZ2VuZXJhdGVOYXZpZ2F0aW9uSUQoKSkKICAgICAsIG1fcmVxdWVzdChXVEZNb3ZlKHJlcXVl
c3QpKQogewogICAgIG1fcmVkaXJlY3RDaGFpbi5hcHBlbmQobV9yZXF1ZXN0LnVybCgpKTsKIH0K
IAorTmF2aWdhdGlvbjo6TmF2aWdhdGlvbihXZWJOYXZpZ2F0aW9uU3RhdGUmIHN0YXRlLCBXZWJC
YWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtLCBGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkRnJhbWVM
b2FkVHlwZSkKKyAgICA6IG1fbmF2aWdhdGlvbklEKHN0YXRlLmdlbmVyYXRlTmF2aWdhdGlvbklE
KCkpCisgICAgLCBtX2JhY2tGb3J3YXJkTGlzdEl0ZW0oJml0ZW0pCisgICAgLCBtX2JhY2tGb3J3
YXJkRnJhbWVMb2FkVHlwZShiYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUpCit7Cit9CisKIE5hdmln
YXRpb246On5OYXZpZ2F0aW9uKCkKIHsKIH0KQEAgLTUyLDQgKzYzLDExIEBAIHZvaWQgTmF2aWdh
dGlvbjo6YXBwZW5kUmVkaXJlY3Rpb25VUkwoY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwpCiAgICAg
ICAgIG1fcmVkaXJlY3RDaGFpbi5hcHBlbmQodXJsKTsKIH0KIAorI2lmICFMT0dfRElTQUJMRUQK
K1dURjo6U3RyaW5nIE5hdmlnYXRpb246OmxvZ2dpbmdVUkwoKSBjb25zdAoreworICAgIHJldHVy
biBtX2JhY2tGb3J3YXJkTGlzdEl0ZW0gPyBtX2JhY2tGb3J3YXJkTGlzdEl0ZW0tPnVybCgpIDog
bV9yZXF1ZXN0LnVybCgpLnN0cmluZygpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRp
b24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmgKaW5kZXgg
NDRmZjUwY2M2ODg0NmE1YzBjZjJlNmY4YThjOGY1ZTgxZTg0OTFhNi4uZjFmODk1NzA4ZDQ5ODgw
OWRjNjNjMzlhZjI0MjQxMjVlOWUzYTQxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJTmF2aWdhdGlvbi5oCkBAIC0yOSw3ICsyOSwxMiBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitlbnVtIGNsYXNzIEZyYW1lTG9hZFR5cGU7Cit9OworCiBuYW1lc3BhY2UgV2ViS2l0
IHsKK2NsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBXZWJOYXZpZ2F0aW9uU3Rh
dGU7CiB9CiAKQEAgLTQzLDYgKzQ4LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgTmF2aWdhdGlvbihzdGF0ZSkpOwogICAgIH0KIAorICAgIHN0YXRpYyBSZWY8TmF2
aWdhdGlvbj4gY3JlYXRlKFdlYktpdDo6V2ViTmF2aWdhdGlvblN0YXRlJiBzdGF0ZSwgV2ViS2l0
OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtLCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJh
Y2tGb3J3YXJkRnJhbWVMb2FkVHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE5hdmlnYXRpb24oc3RhdGUsIGl0ZW0sIGJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSkpOwor
ICAgIH0KKwogICAgIHN0YXRpYyBSZWY8TmF2aWdhdGlvbj4gY3JlYXRlKFdlYktpdDo6V2ViTmF2
aWdhdGlvblN0YXRlJiBzdGF0ZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5hdmlnYXRpb24oc3RhdGUsIFdU
Rk1vdmUocmVxdWVzdCkpKTsKQEAgLTUzLDYgKzYzLDggQEAgcHVibGljOgogICAgIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF2aWdhdGlvbklEOyB9CiAKICAgICBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBt
X3JlcXVlc3Q7IH0KKyAgICBXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGJhY2tGb3J3
YXJkTGlzdEl0ZW0oKSB7IHJldHVybiBtX2JhY2tGb3J3YXJkTGlzdEl0ZW0uZ2V0KCk7IH0KKyAg
ICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lTG9hZFR5cGU+IGJhY2tGb3J3YXJkRnJhbWVM
b2FkVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBlOyB9CiAK
ICAgICB2b2lkIGFwcGVuZFJlZGlyZWN0aW9uVVJMKGNvbnN0IFdlYkNvcmU6OlVSTCYpOwogICAg
IFZlY3RvcjxXZWJDb3JlOjpVUkw+IHRha2VSZWRpcmVjdENoYWluKCkgeyByZXR1cm4gV1RGTW92
ZShtX3JlZGlyZWN0Q2hhaW4pOyB9CkBAIC02MywxNSArNzUsMjMgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0U2hvdWxkRm9yY2VEb3dubG9hZChib29sIHZhbHVlKSB7IG1fc2hvdWxkRm9yY2VEb3du
bG9hZCA9IHZhbHVlOyB9CiAgICAgYm9vbCBzaG91bGRGb3JjZURvd25sb2FkKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaG91bGRGb3JjZURvd25sb2FkOyB9CiAKKyNpZiAhTE9HX0RJU0FCTEVECisgICAg
V1RGOjpTdHJpbmcgbG9nZ2luZ1VSTCgpIGNvbnN0OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgTmF2aWdhdGlvbihXZWJLaXQ6OldlYk5hdmlnYXRpb25TdGF0ZSYpOwogICAgIE5h
dmlnYXRpb24oV2ViS2l0OjpXZWJOYXZpZ2F0aW9uU3RhdGUmLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJik7CisgICAgTmF2aWdhdGlvbihXZWJLaXQ6OldlYk5hdmlnYXRpb25TdGF0ZSYsIFdl
YktpdDo6V2ViQmFja0ZvcndhcmRMaXN0SXRlbSYsIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUpOwog
CiAgICAgdWludDY0X3QgbV9uYXZpZ2F0aW9uSUQ7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IG1fcmVxdWVzdDsKICAgICBWZWN0b3I8V2ViQ29yZTo6VVJMPiBtX3JlZGlyZWN0Q2hhaW47
CiAgICAgYm9vbCBtX3dhc1VzZXJJbml0aWF0ZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX3Nob3Vs
ZEZvcmNlRG93bmxvYWQgeyBmYWxzZSB9OworCisgICAgUmVmUHRyPFdlYktpdDo6V2ViQmFja0Zv
cndhcmRMaXN0SXRlbT4gbV9iYWNrRm9yd2FyZExpc3RJdGVtOworICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVMb2FkVHlwZT4gbV9iYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCmluZGV4IDk3ZTk5ODI2MDEzMmUzNzQ4MTczMTY3NDZhMzI4Y2JlNDhiOWFmYWYuLjZhNjU1
ZmQyODIyNjQ0MWRkMDY2ZWQwYmJiN2RkMGZlODc0MzI5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMzA1LDcgKzMwNSw3IEBAIGJvb2wgV0tQYWdlQ2Fu
R29CYWNrKFdLUGFnZVJlZiBwYWdlUmVmKQogCiB2b2lkIFdLUGFnZUdvVG9CYWNrRm9yd2FyZExp
c3RJdGVtKFdLUGFnZVJlZiBwYWdlUmVmLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbVJl
ZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPmdvVG9CYWNrRm9yd2FyZEl0ZW0odG9JbXBsKGl0
ZW1SZWYpKTsKKyAgICB0b0ltcGwocGFnZVJlZiktPmdvVG9CYWNrRm9yd2FyZEl0ZW0oKnRvSW1w
bChpdGVtUmVmKSk7CiB9CiAKIHZvaWQgV0tQYWdlVHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKFdL
UGFnZVJlZiBwYWdlUmVmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0KaW5kZXggYjdl
NWU2OTJjODMwNjcyYmUwMGUxZTYxMDg1ZjM1ZWRiMzRmOTdiMC4uODFlNGU1MjMxYjhlMDBlMWI2
NmEwODkxOWQwYjUyZDNkNjQ1YjVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1t
CkBAIC0yNDEsNyArMjQxLDcgQEAgc3RhdGljIEhhc2hNYXA8V2ViUGFnZVByb3h5KiwgV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyICo+JiBicm93c2luZ0NvbnRleHRDb24KIAogLSAodm9pZCln
b1RvQmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbQogewot
ICAgIF9wYWdlLT5nb1RvQmFja0ZvcndhcmRJdGVtKCZpdGVtLl9pdGVtKTsKKyAgICBfcGFnZS0+
Z29Ub0JhY2tGb3J3YXJkSXRlbShpdGVtLl9pdGVtKTsKIH0KIAogLSAoV0tCYWNrRm9yd2FyZExp
c3QgKiliYWNrRm9yd2FyZExpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCmluZGV4IDE4YjJiYzFlYmQwNzFjZWYwZGMwNmJkZjcxNTgzNDUzZWZj
ZmU4NTQuLmY5YTYyYmQ0ZTQ3MTA1ZjZkNGE5NWM1OGQ3YzlkNjE2NTA0ZWI5YTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtOTA3LDcg
KzkwNyw3IEBAIHN0YXRpYyB2b2lkIHZhbGlkYXRlKFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNv
bmZpZ3VyYXRpb24pCiAKIC0gKFdLTmF2aWdhdGlvbiAqKWdvVG9CYWNrRm9yd2FyZExpc3RJdGVt
OihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtCiB7Ci0gICAgYXV0byBuYXZpZ2F0aW9uID0g
X3BhZ2UtPmdvVG9CYWNrRm9yd2FyZEl0ZW0oJml0ZW0uX2l0ZW0pOworICAgIGF1dG8gbmF2aWdh
dGlvbiA9IF9wYWdlLT5nb1RvQmFja0ZvcndhcmRJdGVtKGl0ZW0uX2l0ZW0pOwogICAgIGlmICgh
bmF2aWdhdGlvbikKICAgICAgICAgcmV0dXJuIG5pbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCBhMjdmOWVjMzE5Mjlj
OWUxOTEyNzczNWEzZmQxNWVmNWY5M2VhZDYyLi5iOWJlMzljZmY1MDk5MDM0MDMwMmZmMmUyZGI5
MjY4YzZmYTUzZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMzAzMCw3ICszMDMwLDcgQEAgdm9pZCB3ZWJraXRfd2Vi
X3ZpZXdfZ29fdG9fYmFja19mb3J3YXJkX2xpc3RfaXRlbShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
LCBXZWJLaXQKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3
KSk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfQkFDS19GT1JXQVJEX0xJU1RfSVRF
TShsaXN0SXRlbSkpOwogCi0gICAgZ2V0UGFnZSh3ZWJWaWV3KS5nb1RvQmFja0ZvcndhcmRJdGVt
KHdlYmtpdEJhY2tGb3J3YXJkTGlzdEl0ZW1HZXRJdGVtKGxpc3RJdGVtKSk7CisgICAgZ2V0UGFn
ZSh3ZWJWaWV3KS5nb1RvQmFja0ZvcndhcmRJdGVtKCp3ZWJraXRCYWNrRm9yd2FyZExpc3RJdGVt
R2V0SXRlbShsaXN0SXRlbSkpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYk5hdmlnYXRpb25TdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJOYXZpZ2F0aW9uU3RhdGUuY3BwCmluZGV4IDQ4ZjkzNDU5ZTlhMTY4NTBlZDI3OTBhZDBj
ZDc0ZjFlYjk5ZTM2ZTQuLjMxYTcwN2IyZTY4NGJlZDkzMDliNzMyY2IzZTgxZDRmM2FlZjZmYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25TdGF0ZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmNwcApA
QCAtMzAsNiArMzAsOCBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViTmF2aWdhdGlvblN0YXRlOjpXZWJOYXZpZ2F0aW9uU3Rh
dGUoKQpAQCAtNDAsNyArNDIsNyBAQCBXZWJOYXZpZ2F0aW9uU3RhdGU6On5XZWJOYXZpZ2F0aW9u
U3RhdGUoKQogewogfQogCi1SZWY8QVBJOjpOYXZpZ2F0aW9uPiBXZWJOYXZpZ2F0aW9uU3RhdGU6
OmNyZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0KQorUmVmPEFQSTo6TmF2aWdhdGlvbj4gV2ViTmF2aWdhdGlvblN0YXRlOjpjcmVhdGVM
b2FkUmVxdWVzdE5hdmlnYXRpb24oUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKIHsKICAgICBh
dXRvIG5hdmlnYXRpb24gPSBBUEk6Ok5hdmlnYXRpb246OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShy
ZXF1ZXN0KSk7CiAKQEAgLTQ5LDkgKzUxLDkgQEAgUmVmPEFQSTo6TmF2aWdhdGlvbj4gV2ViTmF2
aWdhdGlvblN0YXRlOjpjcmVhdGVMb2FkUmVxdWVzdE5hdmlnYXRpb24oV2ViQ29yZTo6UmUKICAg
ICByZXR1cm4gbmF2aWdhdGlvbjsKIH0KIAotUmVmPEFQSTo6TmF2aWdhdGlvbj4gV2ViTmF2aWdh
dGlvblN0YXRlOjpjcmVhdGVCYWNrRm9yd2FyZE5hdmlnYXRpb24oKQorUmVmPEFQSTo6TmF2aWdh
dGlvbj4gV2ViTmF2aWdhdGlvblN0YXRlOjpjcmVhdGVCYWNrRm9yd2FyZE5hdmlnYXRpb24oV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBmcmFtZUxvYWRUeXBlKQog
ewotICAgIGF1dG8gbmF2aWdhdGlvbiA9IEFQSTo6TmF2aWdhdGlvbjo6Y3JlYXRlKCp0aGlzKTsK
KyAgICBhdXRvIG5hdmlnYXRpb24gPSBBUEk6Ok5hdmlnYXRpb246OmNyZWF0ZSgqdGhpcywgaXRl
bSwgZnJhbWVMb2FkVHlwZSk7CiAKICAgICBtX25hdmlnYXRpb25zLnNldChuYXZpZ2F0aW9uLT5u
YXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5wdHIoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25TdGF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmgKaW5kZXggNDVhYjJkMmJjN2NiNjAwYWY5MzY0ZDhi
MjViMmQ3ZmM0YTliM2U5My4uMGUxMmYzZjgwMTFhYWRhM2U4NjMzOWE5OTNlY2NjZDhmMjcxZThh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmgKQEAg
LTM0LDYgKzM0LDggQEAgY2xhc3MgTmF2aWdhdGlvbjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgUmVzb3VyY2VSZXF1ZXN0OworCitlbnVtIGNsYXNzIEZyYW1lTG9hZFR5cGU7CiB9CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDYsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgV2ViTmF2aWdhdGlvblN0YXRlKCk7CiAgICAgfldlYk5hdmlnYXRpb25TdGF0ZSgpOwogCi0g
ICAgUmVmPEFQSTo6TmF2aWdhdGlvbj4gY3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKCk7Cisg
ICAgUmVmPEFQSTo6TmF2aWdhdGlvbj4gY3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0mLCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlKTsKICAgICBSZWY8QVBJ
OjpOYXZpZ2F0aW9uPiBjcmVhdGVMb2FkUmVxdWVzdE5hdmlnYXRpb24oV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYpOwogICAgIFJlZjxBUEk6Ok5hdmlnYXRpb24+IGNyZWF0ZVJlbG9hZE5hdmln
YXRpb24oKTsKICAgICBSZWY8QVBJOjpOYXZpZ2F0aW9uPiBjcmVhdGVMb2FkRGF0YU5hdmlnYXRp
b24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDI3MmQ2
MzkwMWNkYWI4ZmVhYmJhMDA2NjA2YTJmMjdhNWZmN2IyN2QuLjg4Yzc1ODU5OGUxYjdlYWNhZWJm
NGYwMjVhNzA3NTZkYmIyMDllZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtMTI2LDExICsxMjYsMTMgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TmFt
ZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
Rm9jdXNEaXJlY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9KU0RPTUJpbmRpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NRXhj
ZXB0aW9uSGFuZGxpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0aEJveC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFT
dHJlYW1SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9OYXZpZ2F0aW9uUG9saWN5Q2hlY2su
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUHVibGljU3VmZml4Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJFbWJl
ZGRlZE9iamVjdC5oPgpAQCAtNzEzLDEzICs3MTUsMTMgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlv
bj4gV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2ViUHJvY2Vzc0ZvclJlbG9hZCgpCiAgICAgYXV0
byBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZVJlbG9hZE5hdmlnYXRpb24o
KTsKIAogICAgIC8vIFdlIGFsbG93IHN0YWxlIGNvbnRlbnQgd2hlbiByZWxvYWRpbmcgYSBXZWJQ
cm9jZXNzIHRoYXQncyBiZWVuIGtpbGxlZCBvciBjcmFzaGVkLgotICAgIG1fcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLT5uYXZp
Z2F0aW9uSUQoKSwgbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCktPml0ZW1JRCgpKSwg
bV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0Jh
Y2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgbV9iYWNrRm9yd2FyZExp
c3QtPmN1cnJlbnRJdGVtKCktPml0ZW1JRCgpLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0Zv
cndhcmQsIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZSksIG1fcGFnZUlEKTsKICAgICBt
X3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOwogCiAgICAgcmV0dXJuIFdU
Rk1vdmUobmF2aWdhdGlvbik7CiB9CiAKLVJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQ
cm94eTo6cmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVt
KiBpdGVtKQorUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRv
V2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0pCiB7CiAgICAg
aWYgKG1faXNDbG9zZWQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNzI3LDE1ICs3Mjks
MTIgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2Vi
UHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXIKICAgICBBU1NFUlQoIWlzVmFsaWQoKSk7CiAg
ICAgcmVhdHRhY2hUb1dlYlByb2Nlc3MoKTsKIAotICAgIGlmICghaXRlbSkKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgaWYgKCZpdGVtICE9IG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50
SXRlbSgpKQorICAgICAgICBtX2JhY2tGb3J3YXJkTGlzdC0+Z29Ub0l0ZW0oaXRlbSk7CiAKLSAg
ICBpZiAoaXRlbSAhPSBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKSkKLSAgICAgICAg
bV9iYWNrRm9yd2FyZExpc3QtPmdvVG9JdGVtKCppdGVtKTsKKyAgICBhdXRvIG5hdmlnYXRpb24g
PSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKGl0ZW0sIEZy
YW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCk7CiAKLSAgICBhdXRvIG5hdmlnYXRpb24g
PSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKCk7Ci0KLSAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0o
bmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCksIGl0ZW0tPml0ZW1JRCgpKSwgbV9wYWdlSUQpOwor
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRl
bShuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgaXRlbS5pdGVtSUQoKSwgRnJhbWVMb2FkVHlw
ZTo6SW5kZXhlZEJhY2tGb3J3YXJkLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6OlJlcXVpcmUpLCBt
X3BhZ2VJRCk7CiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsK
IAogICAgIHJldHVybiBXVEZNb3ZlKG5hdmlnYXRpb24pOwpAQCAtMTE4NCwyMSArMTE4Myw3IEBA
IFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6Z29Gb3J3YXJkKCkKICAgICBp
ZiAoIWZvcndhcmRJdGVtKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gdHJh
bnNhY3Rpb24gPSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNhY3Rpb24oKTsKLQotICAgIG1fcGFnZUxv
YWRTdGF0ZS5zZXRQZW5kaW5nQVBJUmVxdWVzdFVSTCh0cmFuc2FjdGlvbiwgZm9yd2FyZEl0ZW0t
PnVybCgpKTsKLQotICAgIGlmICghaXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gcmVhdHRhY2hU
b1dlYlByb2Nlc3NXaXRoSXRlbShmb3J3YXJkSXRlbSk7Ci0KLSAgICBSZWZQdHI8QVBJOjpOYXZp
Z2F0aW9uPiBuYXZpZ2F0aW9uOwotICAgIGlmICghbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJ
dGVtKCktPml0ZW1Jc0luU2FtZURvY3VtZW50KCpmb3J3YXJkSXRlbSkpCi0gICAgICAgIG5hdmln
YXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKCk7
Ci0KLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdvRm9yd2FyZChuYXZp
Z2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCBmb3J3YXJkSXRlbS0+aXRl
bUlEKCkpLCBtX3BhZ2VJRCk7Ci0gICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCku
c3RhcnQoKTsKLQotICAgIHJldHVybiBuYXZpZ2F0aW9uOworICAgIHJldHVybiBnb1RvQmFja0Zv
cndhcmRJdGVtKCpmb3J3YXJkSXRlbSwgRnJhbWVMb2FkVHlwZTo6Rm9yd2FyZCk7CiB9CiAKIFJl
ZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6Z29CYWNrKCkKQEAgLTEyMDcsMzcg
KzExOTIsMzAgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpnb0JhY2so
KQogICAgIGlmICghYmFja0l0ZW0pCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0
byB0cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlvbigpOwotCi0gICAgbV9w
YWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0VVJMKHRyYW5zYWN0aW9uLCBiYWNrSXRl
bS0+dXJsKCkpOwotCi0gICAgaWYgKCFpc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiByZWF0dGFj
aFRvV2ViUHJvY2Vzc1dpdGhJdGVtKGJhY2tJdGVtKTsKLQotICAgIFJlZlB0cjxBUEk6Ok5hdmln
YXRpb24+IG5hdmlnYXRpb247Ci0gICAgaWYgKCFtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0
ZW0oKS0+aXRlbUlzSW5TYW1lRG9jdW1lbnQoKmJhY2tJdGVtKSkKLSAgICAgICAgbmF2aWdhdGlv
biA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVCYWNrRm9yd2FyZE5hdmlnYXRpb24oKTsKLQot
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29CYWNrKG5hdmlnYXRpb24g
PyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSA6IDAsIGJhY2tJdGVtLT5pdGVtSUQoKSksIG1f
cGFnZUlEKTsKLSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOwor
ICAgIHJldHVybiBnb1RvQmFja0ZvcndhcmRJdGVtKCpiYWNrSXRlbSwgRnJhbWVMb2FkVHlwZTo6
QmFjayk7Cit9CiAKLSAgICByZXR1cm4gbmF2aWdhdGlvbjsKK1JlZlB0cjxBUEk6Ok5hdmlnYXRp
b24+IFdlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtJiBpdGVtKQoreworICAgIHJldHVybiBnb1RvQmFja0ZvcndhcmRJdGVtKGl0ZW0sIEZyYW1l
TG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCk7CiB9CiAKLVJlZlB0cjxBUEk6Ok5hdmlnYXRp
b24+IFdlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtKiBpdGVtKQorUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpnb1RvQmFj
a0ZvcndhcmRJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIEZyYW1lTG9hZFR5cGUg
ZnJhbWVMb2FkVHlwZSkKIHsKKyAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94eSAlcCBnb1Rv
QmFja0ZvcndhcmRJdGVtIHRvIGJhY2sgaXRlbSBVUkwgJXMiLCB0aGlzLCBpdGVtLnVybCgpLnV0
ZjgoKS5kYXRhKCkpOworCiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiByZWF0
dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKGl0ZW0pOwogCiAgICAgYXV0byB0cmFuc2FjdGlvbiA9
IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlvbigpOwogCi0gICAgbV9wYWdlTG9hZFN0YXRlLnNl
dFBlbmRpbmdBUElSZXF1ZXN0VVJMKHRyYW5zYWN0aW9uLCBpdGVtLT51cmwoKSk7CisgICAgbV9w
YWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0VVJMKHRyYW5zYWN0aW9uLCBpdGVtLnVy
bCgpKTsKIAogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247Ci0gICAgaWYg
KCFtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKS0+aXRlbUlzSW5TYW1lRG9jdW1lbnQo
Kml0ZW0pKQotICAgICAgICBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUJh
Y2tGb3J3YXJkTmF2aWdhdGlvbigpOworICAgIGlmICghbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJl
bnRJdGVtKCktPml0ZW1Jc0luU2FtZURvY3VtZW50KGl0ZW0pKQorICAgICAgICBuYXZpZ2F0aW9u
ID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUJhY2tGb3J3YXJkTmF2aWdhdGlvbihpdGVtLCBm
cmFtZUxvYWRUeXBlKTsKIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklE
KCkgOiAwLCBpdGVtLT5pdGVtSUQoKSksIG1fcGFnZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbiA/IG5hdmln
YXRpb24tPm5hdmlnYXRpb25JRCgpIDogMCwgaXRlbS5pdGVtSUQoKSwgZnJhbWVMb2FkVHlwZSwg
TmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKSwgbV9wYWdlSUQpOwogICAgIG1fcHJvY2Vz
cy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CiAKICAgICByZXR1cm4gbmF2aWdhdGlv
bjsKQEAgLTIzNzUsNiArMjM1Myw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGlj
eURlY2lzaW9uKFBvbGljeUFjdGlvbiBhY3Rpb24sIFdlYkZyYW1lUHJveHkmIGZyCiAgICAgICAg
IGlmIChhY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgbmF2aWdhdGlvbikgewogICAgICAg
ICAgICAgYXV0byBwcm9wb3NlZFByb2Nlc3MgPSBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5wcm9j
ZXNzRm9yTmF2aWdhdGlvbigqdGhpcywgbmF2aWdhdGlvbi0+cmVxdWVzdCgpLnVybCgpKTsKICAg
ICAgICAgICAgIGlmIChwcm9wb3NlZFByb2Nlc3MucHRyKCkgIT0gJnByb2Nlc3MoKSkgeworICAg
ICAgICAgICAgICAgIExPRyhMb2FkaW5nLCAiU3dpdGNoaW5nIHRvIG5ldyBwcm9jZXNzIGZvciBu
YXZpZ2F0aW9uICUiIFBSSXU2NCAiIHRvIHVybCAnJXMnIChXZWJCYWNrRm9yd2FyZExpc3RJdGVt
ICVwKSIsIG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9uLT5sb2dnaW5nVVJM
KCkudXRmOCgpLmRhdGEoKSwgbmF2aWdhdGlvbi0+YmFja0ZvcndhcmRMaXN0SXRlbSgpKTsKKwog
ICAgICAgICAgICAgICAgIGFjdGlvbiA9IFBvbGljeUFjdGlvbjo6U3VzcGVuZDsKICAgICAgICAg
ICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgbmF2aWdhdGlvbiA9IG1ha2VSZWYoKm5hdmlnYXRpb24pLCBwcm9wb3Nl
ZFByb2Nlc3MgPSBXVEZNb3ZlKHByb3Bvc2VkUHJvY2VzcyldKCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhuYXZpZ2F0aW9uLmdl
dCgpLCBXVEZNb3ZlKHByb3Bvc2VkUHJvY2VzcykpOwpAQCAtMjM4OCwxMCArMjM2OCwyMiBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gYWN0
aW9uLCBXZWJGcmFtZVByb3h5JiBmcgogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZp
Z2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzKQogewotICAgIExPRyhMb2FkaW5nLCAiQ29udGludWluZyBu
YXZpZ2F0aW9uICUiIFBSSXU2NCAiIHRvIFVSTCAlcyBpbiBhIG5ldyB3ZWIgcHJvY2VzcyIsIG5h
dmlnYXRpb24ubmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24ucmVxdWVzdCgpLnVybCgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIExPRyhMb2FkaW5nLCAiQ29udGludWluZyBuYXZpZ2F0
aW9uICUiIFBSSXU2NCAiIHRvIFVSTCAlcyBpbiBhIG5ldyB3ZWIgcHJvY2VzcyIsIG5hdmlnYXRp
b24ubmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24ubG9nZ2luZ1VSTCgpLnV0ZjgoKS5kYXRhKCkp
OwogCiAgICAgYXR0YWNoVG9Qcm9jZXNzRm9yTmF2aWdhdGlvbihXVEZNb3ZlKHByb2Nlc3MpKTsK
IAorICAgIGlmIChhdXRvKiBpdGVtID0gbmF2aWdhdGlvbi5iYWNrRm9yd2FyZExpc3RJdGVtKCkp
IHsKKyAgICAgICAgaWYgKGl0ZW0gIT0gbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCkp
CisgICAgICAgICAgICBtX2JhY2tGb3J3YXJkTGlzdC0+Z29Ub0l0ZW0oKml0ZW0pOworCisgICAg
ICAgIEFTU0VSVChuYXZpZ2F0aW9uLmJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSgpKTsKKyAgICAg
ICAgQVNTRVJUKGlzQmFja0ZvcndhcmRMb2FkVHlwZSgqbmF2aWdhdGlvbi5iYWNrRm9yd2FyZEZy
YW1lTG9hZFR5cGUoKSkpOworCisgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCBpdGVt
LT5pdGVtSUQoKSwgKm5hdmlnYXRpb24uYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBlKCksIE5hdmln
YXRpb25Qb2xpY3lDaGVjazo6QnlwYXNzKSwgbV9wYWdlSUQpOworCisgICAgICAgIHJldHVybjsK
KyAgICB9CisKICAgICAvLyBGSVhNRTogV29yayBvdXQgdGltaW5nIG9mIHJlc3BvbmRpbmcgd2l0
aCB0aGUgbGFzdCBwb2xpY3kgZGVsZWdhdGUsIGV0YwogICAgIGxvYWRSZXF1ZXN0V2l0aE5hdmln
YXRpb24obmF2aWdhdGlvbiwgUmVzb3VyY2VSZXF1ZXN0IHsgbmF2aWdhdGlvbi5yZXF1ZXN0KCkg
fSwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3dFeHRl
cm5hbFNjaGVtZXMsIG51bGxwdHIsIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6QnlwYXNzKTsKIH0K
QEAgLTI1MjgsOSArMjUyMCw4IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94
eTo6cmVzdG9yZUZyb21TZXNzaW9uU3RhdGUoU2Vzc2lvblN0YXRlIHNlc3NpCiAgICAgICAgICAg
ICByZXR1cm4gbG9hZFJlcXVlc3Qoc2Vzc2lvblN0YXRlLnByb3Zpc2lvbmFsVVJMKTsKIAogICAg
ICAgICBpZiAoaGFzQmFja0ZvcndhcmRMaXN0KSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogRG8g
d2UgaGF2ZSB0byBudWxsIGNoZWNrIHRoZSBiYWNrIGZvcndhcmQgbGlzdCBpdGVtIGhlcmU/CiAg
ICAgICAgICAgICBpZiAoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogaXRlbSA9IG1fYmFja0Zvcndh
cmRMaXN0LT5jdXJyZW50SXRlbSgpKQotICAgICAgICAgICAgICAgIHJldHVybiBnb1RvQmFja0Zv
cndhcmRJdGVtKGl0ZW0pOworICAgICAgICAgICAgICAgIHJldHVybiBnb1RvQmFja0ZvcndhcmRJ
dGVtKCppdGVtKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAppbmRleCBkYzU5NDk4ZGIxYjhlZmNmNzM5MDMyZWU1NWMzYWRiM2M0NmZiZDA4
Li40NDVjYTc3NWNlZmU5ZjgyODliZjJjZTVhNmVjNjZjODZjMzU4YTY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTY0LDYgKzE2NCwxNCBAQCBjbGFzcyBTaGFy
ZWRCdWZmZXI7CiBjbGFzcyBUZXh0SW5kaWNhdG9yOwogY2xhc3MgVmFsaWRhdGlvbkJ1YmJsZTsK
IAorZW51bSBTZWxlY3Rpb25EaXJlY3Rpb24gOiB1aW50OF90OworCitlbnVtIGNsYXNzIEF1dG9w
bGF5RXZlbnQ7CitlbnVtIGNsYXNzIEhhc0luc2VjdXJlQ29udGVudDsKK2VudW0gY2xhc3MgTmF2
aWdhdGlvblBvbGljeUNoZWNrOworZW51bSBjbGFzcyBOb3RpZmljYXRpb25EaXJlY3Rpb247Citl
bnVtIGNsYXNzIFNob3VsZFNhbXBsZTsKKwogc3RydWN0IEFwcGxpY2F0aW9uTWFuaWZlc3Q7CiBz
dHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKIHN0cnVjdCBFeGNlcHRpb25EZXRhaWxzOwpAQCAt
MTc1LDEzICsxODMsNiBAQCBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0Owogc3RydWN0IFZpZXdw
b3J0QXR0cmlidXRlczsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIAotZW51bSBTZWxlY3Rpb25E
aXJlY3Rpb24gOiB1aW50OF90OwotCi1lbnVtIGNsYXNzIEF1dG9wbGF5RXZlbnQ7Ci1lbnVtIGNs
YXNzIEhhc0luc2VjdXJlQ29udGVudDsKLWVudW0gY2xhc3MgTm90aWZpY2F0aW9uRGlyZWN0aW9u
OwotZW51bSBjbGFzcyBTaG91bGRTYW1wbGU7Ci0KIHRlbXBsYXRlIDx0eXBlbmFtZT4gY2xhc3Mg
UmVjdEVkZ2VzOwogdXNpbmcgRmxvYXRCb3hFeHRlbnQgPSBSZWN0RWRnZXM8ZmxvYXQ+OwogfQpA
QCAtNDQwLDcgKzQ0MSw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBn
b0ZvcndhcmQoKTsKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBnb0JhY2soKTsKIAotICAg
IFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IGdvVG9CYWNrRm9yd2FyZEl0ZW0oV2ViQmFja0Zvcndh
cmRMaXN0SXRlbSopOworICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IGdvVG9CYWNrRm9yd2Fy
ZEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpOwogICAgIHZvaWQgdHJ5UmVzdG9yZVNjcm9s
bFBvc2l0aW9uKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QoV2ViQmFja0Zv
cndhcmRMaXN0SXRlbSogYWRkZWRJdGVtLCBWZWN0b3I8UmVmPFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0+PiYmIHJlbW92ZWQpOwogICAgIHZvaWQgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVp
bnQ2NF90IGl0ZW1JRCwgYm9vbCBpblBhZ2VDYWNoZSwgY29uc3QgVXNlckRhdGEmKTsKQEAgLTEy
OTQsNiArMTI5NSw4IEBAIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBX
ZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCBwYWdlSUQsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0
aW9uPiYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogCisgICAgUmVmUHRyPEFQ
STo6TmF2aWdhdGlvbj4gZ29Ub0JhY2tGb3J3YXJkSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVt
JiwgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSk7CisKICAgICB2b2lkIHVwZGF0ZUFjdGl2aXR5U3Rh
dGUoV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3MgZmxhZ3NUb1VwZGF0ZSA9IFdlYkNvcmU6
OkFjdGl2aXR5U3RhdGU6OkFsbEZsYWdzKTsKICAgICB2b2lkIHVwZGF0ZVRocm90dGxlU3RhdGUo
KTsKICAgICB2b2lkIHVwZGF0ZUhpZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3JlYXNlcygpOwpA
QCAtMTQ0MSwxMyArMTQ0NCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWF0dGFjaFRvV2ViUHJv
Y2VzcyhSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmKTsKIAogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRp
b24+IHJlYXR0YWNoVG9XZWJQcm9jZXNzRm9yUmVsb2FkKCk7Ci0gICAgUmVmUHRyPEFQSTo6TmF2
aWdhdGlvbj4gcmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtKik7CisgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gcmVhdHRhY2hUb1dlYlByb2Nlc3NX
aXRoSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtJik7CiAKLSAgICBlbnVtIGNsYXNzIE5hdmln
YXRpb25Qb2xpY3lDaGVjayB7Ci0gICAgICAgIFJlcXVpcmUsCi0gICAgICAgIEJ5cGFzcywKLSAg
ICB9OwotICAgIHZvaWQgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24m
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2sp
OworICAgIHZvaWQgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24mLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpOYXZpZ2F0aW9uUG9saWN5
Q2hlY2spOwogCiAgICAgdm9pZCByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpOwogICAgIHZvaWQg
c2hvd05vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHks
IGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYg
bGFuZywgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdp
blN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggNmY4M2U4OGEwMDE4NGFjOTM3MDdlZmMwMTBm
MWJmMmQwNjUyZDcwYy4uZGNhOTg5OTYwZWZmODYzNDNjNzM4NWNlZTFkNzE0MTFhZTVjZWM3MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC01NTEs
NyArNTUxLDcgQEAgYm9vbCBXZWJQcm9jZXNzUHJveHk6OmZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJs
ZWQoKQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjphZGRCYWNrRm9yd2FyZEl0
ZW0odWludDY0X3QgaXRlbUlELCB1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFBhZ2VTdGF0ZSYgcGFn
ZVN0YXRlKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmFkZE9yVXBkYXRlQmFja0ZvcndhcmRJdGVt
KHVpbnQ2NF90IGl0ZW1JRCwgdWludDY0X3QgcGFnZUlELCBjb25zdCBQYWdlU3RhdGUmIHBhZ2VT
dGF0ZSkKIHsKICAgICBNRVNTQUdFX0NIRUNLX1VSTChwYWdlU3RhdGUubWFpbkZyYW1lU3RhdGUu
b3JpZ2luYWxVUkxTdHJpbmcpOwogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKHBhZ2VTdGF0ZS5tYWlu
RnJhbWVTdGF0ZS51cmxTdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaAppbmRleCA2OTdlYjkwOGQ2MWNmYzczM2NkMjExZjNkYWMxMGQ3YTRmNDQ0ZmM1Li4z
YmFkMmVlZTRhMmI1Zjg2YTVkZTQ5MzhkNWMzYzVlZWNhM2ZmZTc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMjIwLDcgKzIyMCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzaHV0RG93bigpOwogCiAgICAgLy8gSVBDIG1lc3NhZ2UgaGFuZGxlcnMuCi0g
ICAgdm9pZCBhZGRCYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgaXRlbUlELCB1aW50NjRfdCBwYWdl
SUQsIGNvbnN0IFBhZ2VTdGF0ZSYpOworICAgIHZvaWQgYWRkT3JVcGRhdGVCYWNrRm9yd2FyZEl0
ZW0odWludDY0X3QgaXRlbUlELCB1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFBhZ2VTdGF0ZSYpOwog
ICAgIHZvaWQgZGlkRGVzdHJveUZyYW1lKHVpbnQ2NF90KTsKICAgICB2b2lkIGRpZERlc3Ryb3lV
c2VyR2VzdHVyZVRva2VuKHVpbnQ2NF90KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDk4YzcxMmFjYzNmNzlkNGUx
MDhiZjVhYjM1NGE0MWUwYWRkODYyNTYuLmVjN2NmNTAxMzkzNzZiNTM4Nzc5OTQ2MDljMDcwNTI5
MDY2NjM1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KQEAgLTIxLDcgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVz
c2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKLSAgICBBZGRCYWNrRm9y
d2FyZEl0ZW0odWludDY0X3QgaXRlbUlELCB1aW50NjRfdCBwYWdlSUQsIHN0cnVjdCBXZWJLaXQ6
OlBhZ2VTdGF0ZSBwYWdlU3RhdGUpCisgICAgQWRkT3JVcGRhdGVCYWNrRm9yd2FyZEl0ZW0odWlu
dDY0X3QgaXRlbUlELCB1aW50NjRfdCBwYWdlSUQsIHN0cnVjdCBXZWJLaXQ6OlBhZ2VTdGF0ZSBw
YWdlU3RhdGUpCiAgICAgRGlkRGVzdHJveUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpIAogCiAgICAg
RGlkRGVzdHJveVVzZXJHZXN0dXJlVG9rZW4odWludDY0X3QgdXNlckdlc3R1cmVUb2tlbklEKSAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRy
b2xsZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250
cm9sbGVyTWFjLm1tCmluZGV4IGRmZmE1NDc3ZjU5ZWY1Nzc1MWE2ODIyOWVhNjYzN2ZjM2M3YWU1
MzAuLjAzMjZjMzQ0MDNiN2EwMjVlZDY3YmI2ZWFiMDZiZjY1NmRkNTA5MjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1h
Yy5tbQpAQCAtNzQxLDcgKzc0MSw3IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjplbmRT
d2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwKICAgICBtX3dl
YlBhZ2VQcm94eS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6Vmlld0dlc3R1cmVHZW9tZXRyeUNv
bGxlY3Rvcjo6U2V0UmVuZGVyVHJlZVNpemVOb3RpZmljYXRpb25UaHJlc2hvbGQocmVuZGVyVHJl
ZVNpemUgKiBzd2lwZVNuYXBzaG90UmVtb3ZhbFJlbmRlclRyZWVTaXplVGFyZ2V0RnJhY3Rpb24p
LCBtX3dlYlBhZ2VQcm94eS5wYWdlSUQoKSk7CiAKICAgICBtX3dlYlBhZ2VQcm94eS5uYXZpZ2F0
aW9uR2VzdHVyZURpZEVuZCh0cnVlLCAqdGFyZ2V0SXRlbSk7Ci0gICAgbV93ZWJQYWdlUHJveHku
Z29Ub0JhY2tGb3J3YXJkSXRlbSh0YXJnZXRJdGVtKTsKKyAgICBtX3dlYlBhZ2VQcm94eS5nb1Rv
QmFja0ZvcndhcmRJdGVtKCp0YXJnZXRJdGVtKTsKIAogICAgIFNuYXBzaG90UmVtb3ZhbFRyYWNr
ZXI6OkV2ZW50cyBkZXNpcmVkRXZlbnRzID0gU25hcHNob3RSZW1vdmFsVHJhY2tlcjo6VmlzdWFs
bHlOb25FbXB0eUxheW91dAogICAgICAgICB8IFNuYXBzaG90UmVtb3ZhbFRyYWNrZXI6Ok1haW5G
cmFtZUxvYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcAppbmRleCAxYWUyYzNj
OGI3ZDYyMjE1MjhmOGFiMTQ1YjRjOGJiN2VhZDY3NTlhLi5hNWQ0NWE5YTgwZWU4NTgyYWI1ZDNm
ZjlhNzgyNjhkZmNiZGI5MjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3Bw
CkBAIC0xMTksNyArMTE5LDcgQEAgUGFnZVN0YXRlIHRvUGFnZVN0YXRlKGNvbnN0IFdlYkNvcmU6
Okhpc3RvcnlJdGVtJiBoaXN0b3J5SXRlbSkKICAgICBwYWdlU3RhdGUudGl0bGUgPSBoaXN0b3J5
SXRlbS50aXRsZSgpOwogICAgIHBhZ2VTdGF0ZS5tYWluRnJhbWVTdGF0ZSA9IHRvRnJhbWVTdGF0
ZShoaXN0b3J5SXRlbSk7CiAgICAgcGFnZVN0YXRlLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xp
Y3kgPSBoaXN0b3J5SXRlbS5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KCk7Ci0KKyAgICBw
YWdlU3RhdGUuc2Vzc2lvblN0YXRlT2JqZWN0ID0gaGlzdG9yeUl0ZW0uc3RhdGVPYmplY3QoKTsK
ICAgICByZXR1cm4gcGFnZVN0YXRlOwogfQogCkBAIC0xOTMsNiArMTkzLDcgQEAgUmVmPEhpc3Rv
cnlJdGVtPiB0b0hpc3RvcnlJdGVtKGNvbnN0IFBhZ2VTdGF0ZSYgcGFnZVN0YXRlKQogewogICAg
IFJlZjxIaXN0b3J5SXRlbT4gaGlzdG9yeUl0ZW0gPSBIaXN0b3J5SXRlbTo6Y3JlYXRlKHBhZ2VT
dGF0ZS5tYWluRnJhbWVTdGF0ZS51cmxTdHJpbmcsIHBhZ2VTdGF0ZS50aXRsZSk7CiAgICAgaGlz
dG9yeUl0ZW0tPnNldFNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kocGFnZVN0YXRlLnNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpOworICAgIGhpc3RvcnlJdGVtLT5zZXRTdGF0ZU9iamVj
dChwYWdlU3RhdGUuc2Vzc2lvblN0YXRlT2JqZWN0LmdldCgpKTsKICAgICBhcHBseUZyYW1lU3Rh
dGUoaGlzdG9yeUl0ZW0sIHBhZ2VTdGF0ZS5tYWluRnJhbWVTdGF0ZSk7CiAKICAgICByZXR1cm4g
aGlzdG9yeUl0ZW07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAKaW5kZXggYzJlOTFlYTdmMWNlMzE2
NTk1OGJkYjk0YTY2NjBiNTE0Zjg2OGRlNS4uN2Y0ZTEyNzdjY2Q3NDAyNzZmN2RlMDlmYTM0ODBj
YTIxMmRkMmVkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcApAQCAtOTEsNyArOTEsNyBAQCB2
b2lkIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpzZXRIaWdoZXN0SXRlbUlERnJvbVVJUHJvY2Vz
cyh1aW50NjRfdCBpdGVtSUQpCiAKIHN0YXRpYyB2b2lkIHVwZGF0ZUJhY2tGb3J3YXJkSXRlbSh1
aW50NjRfdCBpdGVtSUQsIHVpbnQ2NF90IHBhZ2VJRCwgSGlzdG9yeUl0ZW0qIGl0ZW0pCiB7Ci0g
ICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpBZGRCYWNrRm9yd2FyZEl0ZW0oaXRlbUlELCBw
YWdlSUQsIHRvUGFnZVN0YXRlKCppdGVtKSksIDApOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRv
bigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nlc3NQ
cm94eTo6QWRkT3JVcGRhdGVCYWNrRm9yd2FyZEl0ZW0oaXRlbUlELCBwYWdlSUQsIHRvUGFnZVN0
YXRlKCppdGVtKSksIDApOwogfQogCiB2b2lkIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjphZGRJ
dGVtRnJvbVVJUHJvY2Vzcyh1aW50NjRfdCBpdGVtSUQsIFJlZjxIaXN0b3J5SXRlbT4mJiBpdGVt
LCB1aW50NjRfdCBwYWdlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCmluZGV4IDgxYWU0NWM0ZTMxZTk4Zjk0ZDRhNzU1MTQwMjg5ODA0ZGE4MzQ0ZWUu
LjhiZTJkNzYwMDllZjNiNjk2YTBmNTA2ZTE4MDE2ZjdkYjc2MGY2ODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0xMzgwLDQ5ICsxMzgwLDIz
IEBAIHZvaWQgV2ViUGFnZTo6cmVsb2FkKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qg
cmVsb2FkT3B0aW9ucywgU2FuZGJveEV4dGVuCiAgICAgY29yZVBhZ2UoKS0+dXNlcklucHV0QnJp
ZGdlKCkucmVsb2FkRnJhbWUobV9tYWluRnJhbWUtPmNvcmVGcmFtZSgpLCBPcHRpb25TZXQ8UmVs
b2FkT3B0aW9uPjo6ZnJvbVJhdyhyZWxvYWRPcHRpb25zKSk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6
Z29Gb3J3YXJkKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDY0X3QgYmFja0ZvcndhcmRJdGVt
SUQpCit2b2lkIFdlYlBhZ2U6OmdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlv
bklELCB1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1JRCwgRnJhbWVMb2FkVHlwZSBiYWNrRm9yd2Fy
ZFR5cGUsIE5hdmlnYXRpb25Qb2xpY3lDaGVjayBuYXZpZ2F0aW9uUG9saWN5Q2hlY2spCiB7CiAg
ICAgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1RpbWVyIHN0b3BwZXI7CiAKLSAgICBIaXN0b3J5SXRl
bSogaXRlbSA9IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjppdGVtRm9ySUQoYmFja0ZvcndhcmRJ
dGVtSUQpOwotICAgIEFTU0VSVChpdGVtKTsKLSAgICBpZiAoIWl0ZW0pCi0gICAgICAgIHJldHVy
bjsKLQotICAgIEFTU0VSVCghbV9wZW5kaW5nTmF2aWdhdGlvbklEKTsKLSAgICBtX3BlbmRpbmdO
YXZpZ2F0aW9uSUQgPSBuYXZpZ2F0aW9uSUQ7Ci0KLSAgICBtX3BhZ2UtPmdvVG9JdGVtKCppdGVt
LCBGcmFtZUxvYWRUeXBlOjpGb3J3YXJkKTsKLX0KLQotdm9pZCBXZWJQYWdlOjpnb0JhY2sodWlu
dDY0X3QgbmF2aWdhdGlvbklELCB1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1JRCkKLXsKLSAgICBT
ZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3RvcHBlcjsKKyAgICBBU1NFUlQoaXNCYWNrRm9y
d2FyZExvYWRUeXBlKGJhY2tGb3J3YXJkVHlwZSkpOwogCiAgICAgSGlzdG9yeUl0ZW0qIGl0ZW0g
PSBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6aXRlbUZvcklEKGJhY2tGb3J3YXJkSXRlbUlEKTsK
ICAgICBBU1NFUlQoaXRlbSk7CiAgICAgaWYgKCFpdGVtKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBBU1NFUlQoIW1fcGVuZGluZ05hdmlnYXRpb25JRCk7Ci0gICAgbV9wZW5kaW5nTmF2aWdhdGlv
bklEID0gbmF2aWdhdGlvbklEOwotCi0gICAgbV9wYWdlLT5nb1RvSXRlbSgqaXRlbSwgRnJhbWVM
b2FkVHlwZTo6QmFjayk7Ci19Ci0KLXZvaWQgV2ViUGFnZTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSh1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlEKQotewotICAg
IFNlbmRTdG9wUmVzcG9uc2l2ZW5lc3NUaW1lciBzdG9wcGVyOwotCi0gICAgSGlzdG9yeUl0ZW0q
IGl0ZW0gPSBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6aXRlbUZvcklEKGJhY2tGb3J3YXJkSXRl
bUlEKTsKLSAgICBBU1NFUlQoaXRlbSk7Ci0gICAgaWYgKCFpdGVtKQotICAgICAgICByZXR1cm47
CisgICAgTE9HKExvYWRpbmcsICJJbiBXZWJQcm9jZXNzLCBXZWJQYWdlICUiIFBSSXU2NCAiIGlz
IG5hdmlnYXRpbmcgdG8gYmFjay9mb3J3YXJkIFVSTCAlcyIsIG1fcGFnZUlELCBpdGVtLT51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKIAogICAgIEFTU0VSVCghbV9wZW5kaW5nTmF2aWdh
dGlvbklEKTsKICAgICBtX3BlbmRpbmdOYXZpZ2F0aW9uSUQgPSBuYXZpZ2F0aW9uSUQ7CiAKLSAg
ICBtX3BhZ2UtPmdvVG9JdGVtKCppdGVtLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0Zvcndh
cmQpOworICAgIG1fcGFnZS0+Z29Ub0l0ZW0oKml0ZW0sIGJhY2tGb3J3YXJkVHlwZSwgbmF2aWdh
dGlvblBvbGljeUNoZWNrKTsKIH0KIAogdm9pZCBXZWJQYWdlOjp0cnlSZXN0b3JlU2Nyb2xsUG9z
aXRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4
IDE1ZjkyYzk3NDBmODFiOGMxYTRlYmFiODdjNGVmNzZkOGFlYzM4MmUuLjA3NDRhMmY0ZmQ1OWJh
NTg5YmYwMTc1YjExZGQ3Y2JiN2VjNzA3MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKQEAgLTE0OSw2ICsxNDksMTAgQEAgY2xhc3MgVGV4dENoZWNraW5n
UmVxdWVzdDsKIGNsYXNzIFVSTDsKIGNsYXNzIFZpc2libGVQb3NpdGlvbjsKIAorZW51bSBTeW50
aGV0aWNDbGlja1R5cGUgOiBpbnQ4X3Q7CitlbnVtIGNsYXNzIE5hdmlnYXRpb25Qb2xpY3lDaGVj
azsKK2VudW0gY2xhc3MgVGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb24gOiB1aW50
OF90OworCiBzdHJ1Y3QgQ29tcG9zaXRpb25VbmRlcmxpbmU7CiBzdHJ1Y3QgRGljdGF0aW9uQWx0
ZXJuYXRpdmU7CiBzdHJ1Y3QgSGlnaGxpZ2h0OwpAQCAtMTU3LDkgKzE2MSw3IEBAIHN0cnVjdCBQ
cm9taXNlZEJsb2JJbmZvOwogc3RydWN0IFRleHRDaGVja2luZ1Jlc3VsdDsKIHN0cnVjdCBWaWV3
cG9ydEFyZ3VtZW50czsKIAotZW51bSBTeW50aGV0aWNDbGlja1R5cGUgOiBpbnQ4X3Q7CiAKLWVu
dW0gY2xhc3MgVGV4dEluZGljYXRvclByZXNlbnRhdGlvblRyYW5zaXRpb24gOiB1aW50OF90Owog
CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKIGNsYXNzIEhUTUxBdHRhY2htZW50RWxl
bWVudDsKQEAgLTIxNCw2ICsyMTYsOSBAQCBjbGFzcyBXZWJUb3VjaEV2ZW50OwogY2xhc3MgV2Vi
Q3JlZGVudGlhbHNNZXNzZW5nZXI7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjsK
IAorZW51bSBGaW5kT3B0aW9ucyA6IHVpbnQxNl90OworZW51bSBjbGFzcyBEcmFnQ29udHJvbGxl
ckFjdGlvbjsKKwogc3RydWN0IEFzc2lzdGVkTm9kZUluZm9ybWF0aW9uOwogc3RydWN0IEF0dHJp
YnV0ZWRTdHJpbmc7CiBzdHJ1Y3QgQmFja0ZvcndhcmRMaXN0SXRlbVN0YXRlOwpAQCAtMjI3LDkg
KzIzMiw2IEBAIHN0cnVjdCBXZWJQcmVmZXJlbmNlc1N0b3JlOwogc3RydWN0IFdlYlNlbGVjdGlv
bkRhdGE7CiBzdHJ1Y3QgV2Vic2l0ZVBvbGljaWVzRGF0YTsKIAotZW51bSBjbGFzcyBEcmFnQ29u
dHJvbGxlckFjdGlvbjsKLWVudW0gRmluZE9wdGlvbnMgOiB1aW50MTZfdDsKLQogdXNpbmcgU25h
cHNob3RPcHRpb25zID0gdWludDMyX3Q7CiB1c2luZyBXS0V2ZW50TW9kaWZpZXJzID0gdWludDMy
X3Q7CiAKQEAgLTExNDgsOSArMTE1MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2FkQWx0ZXJu
YXRlSFRNTFN0cmluZyhjb25zdCBMb2FkUGFyYW1ldGVycyYpOwogICAgIHZvaWQgbmF2aWdhdGVU
b1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3QgU3RyaW5nJiB1cmwsIFdlYkNvcmU6Oklu
dFBvaW50IGRvY3VtZW50UG9pbnQsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblBvaW50KTsKICAg
ICB2b2lkIHJlbG9hZCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IHJlbG9hZE9wdGlv
bnMsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKTsKLSAgICB2b2lkIGdvRm9yd2FyZCh1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90KTsKLSAgICB2b2lkIGdvQmFjayh1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIHVpbnQ2NF90KTsKLSAgICB2b2lkIGdvVG9CYWNrRm9yd2FyZEl0ZW0odWlu
dDY0X3QgbmF2aWdhdGlvbklELCB1aW50NjRfdCk7CisgICAgdm9pZCBnb1RvQmFja0ZvcndhcmRJ
dGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDY0X3QsIFdlYkNvcmU6OkZyYW1lTG9hZFR5
cGUsIFdlYkNvcmU6Ok5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CiAgICAgdm9pZCB0cnlSZXN0b3Jl
U2Nyb2xsUG9zaXRpb24oKTsKICAgICB2b2lkIHNldEluaXRpYWxGb2N1cyhib29sIGZvcndhcmQs
IGJvb2wgaXNLZXlib2FyZEV2ZW50VmFsaWQsIGNvbnN0IFdlYktleWJvYXJkRXZlbnQmLCBDYWxs
YmFja0lEKTsKICAgICB2b2lkIHVwZGF0ZUlzSW5XaW5kb3coYm9vbCBpc0luaXRpYWxTdGF0ZSA9
IGZhbHNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCmluZGV4IDcxZjdjNTE2YjBiZmI3YWM0NzUwMmU2YmViYTJhZTY5ZmY1
YWRkMjguLjVhN2FhZjRjNzUyNmNhMmI4ZjAzYjE4MjI2MWY2ZjcyMmM3ODliNjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgpAQCAtMTM0LDkgKzEzNCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIg
ewogICAgIFNjcm9sbEJ5KHVpbnQzMl90IHNjcm9sbERpcmVjdGlvbiwgdWludDMyX3Qgc2Nyb2xs
R3JhbnVsYXJpdHkpCiAgICAgQ2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYSgpCiAKLSAgICBH
b0JhY2sodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1JRCkK
LSAgICBHb0ZvcndhcmQodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50NjRfdCBiYWNrRm9yd2Fy
ZEl0ZW1JRCkKLSAgICBHb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
dWludDY0X3QgYmFja0ZvcndhcmRJdGVtSUQpCisgICAgR29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlELCBlbnVtIFdlYkNv
cmU6OkZyYW1lTG9hZFR5cGUgYmFja0ZvcndhcmRUeXBlLCBlbnVtIFdlYkNvcmU6Ok5hdmlnYXRp
b25Qb2xpY3lDaGVjayBuYXZpZ2F0aW9uUG9saWN5Q2hlY2spCiAgICAgVHJ5UmVzdG9yZVNjcm9s
bFBvc2l0aW9uKCkKIAogICAgIExvYWRVUkxJbkZyYW1lKFdlYkNvcmU6OlVSTCB1cmwsIHVpbnQ2
NF90IGZyYW1lSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0K
aW5kZXggYTIwNWMyYTM0YTBjMGRjNmM3ZGFmMGUxNjdmMDcxYTBhOWIwZWExMC4uMjMzODc5Mjgz
NDMyYWJiNWRmNzg2OTJjYzEzMmY4N2FiMTVhOTI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTc0LDYgKzE3NCw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL01haW5GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9NZW1vcnlDYWNoZS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9NZW1vcnlSZWxlYXNlLmg+CisjaW1wb3J0IDxXZWJDb3JlL05hdmlnYXRpb25Q
b2xpY3lDaGVjay5oPgogI2ltcG9ydCA8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTm9kZUxpc3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvTm90aWZpY2F0
aW9uLmg+CkBAIC0yNTY2LDcgKzI1NjcsNyBAQCBzdGF0aWMgYm9vbCBmYXN0RG9jdW1lbnRUZWFy
ZG93bkVuYWJsZWQoKQogICAgIH0KIAogICAgIEFTU0VSVChuZXdJdGVtVG9Hb1RvKTsKLSAgICBf
cHJpdmF0ZS0+cGFnZS0+Z29Ub0l0ZW0oKm5ld0l0ZW1Ub0dvVG8sIEZyYW1lTG9hZFR5cGU6Oklu
ZGV4ZWRCYWNrRm9yd2FyZCk7CisgICAgX3ByaXZhdGUtPnBhZ2UtPmdvVG9JdGVtKCpuZXdJdGVt
VG9Hb1RvLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIE5hdmlnYXRpb25Qb2xp
Y3lDaGVjazo6UmVxdWlyZSk7CiB9CiAKIC0gKHZvaWQpX3NldEZvcm1EZWxlZ2F0ZTogKGlkPFdl
YkZvcm1EZWxlZ2F0ZT4pZGVsZWdhdGUKQEAgLTYzNjksNyArNjM3MCw3IEBAIHN0YXRpYyBOU1N0
cmluZyAqIGNvbnN0IGJhY2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFjdG9yS2V5ID0gQCJOU0JhY2tp
bmdQcm9wZXJ0eU9sCiAgICAgICAgIHJldHVybiBOTzsKIAogICAgIEFTU0VSVChpdGVtKTsKLSAg
ICBfcHJpdmF0ZS0+cGFnZS0+Z29Ub0l0ZW0oKmNvcmUoaXRlbSksIEZyYW1lTG9hZFR5cGU6Oklu
ZGV4ZWRCYWNrRm9yd2FyZCk7CisgICAgX3ByaXZhdGUtPnBhZ2UtPmdvVG9JdGVtKCpjb3JlKGl0
ZW0pLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIE5hdmlnYXRpb25Qb2xpY3lD
aGVjazo6UmVxdWlyZSk7CiAgICAgcmV0dXJuIFlFUzsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDYwZDNmYjQ4M2I4YmZkMzFjMDU3OGRl
Y2JlZDY1ZTIxYmUzNWY5MzkuLmI0N2I4MDk5ZDc4MmY4ZWU2ZjFmNDdjODZlMTZhYzlmYzlkYWY5
OTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMSBAQAorMjAxOC0wMy0yMyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5j
b20+CisKKyAgICAgICAgR28gdG8gYmFjay9mb3J3YXJkIGxpc3QgaXRlbXMgYWZ0ZXIgYSBwcm9j
ZXNzLXN3YXBwZWQgbmF2aWdhdGlvbi4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4NjkwNTQ0
PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MzkyMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIG5ldyBB
UEkgdGVzdCB0aGF0IGRvZXMgc29tZSBwcm9jZXNzLXN3YXBwaW5nIG5hdmlnYXRpb25zIChpbmNs
dWRpbmcgYSBiYWNrIG5hdmlnYXRpb24pCisgICAgICAgIGFuZCB2ZXJpZmllcyB0aGUgc3RhdGUg
b2YgdGhlIGVuZ2luZSBhZnRlcndhcmRzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbToKKyAgICAgICAgKC1bUFNP
Tk1lc3NhZ2VIYW5kbGVyIHVzZXJDb250ZW50Q29udHJvbGxlcjpkaWRSZWNlaXZlU2NyaXB0TWVz
c2FnZTpdKToKKyAgICAgICAgKC1bUFNPTlNjaGVtZSBpbml0V2l0aEJ5dGVzOl0pOgorICAgICAg
ICAoLVtQU09OU2NoZW1lIHdlYlZpZXc6c3RhcnRVUkxTY2hlbWVUYXNrOl0pOgorICAgICAgICAo
bG9nKToKKyAgICAgICAgKGZ1bmN0aW9uKToKKyAgICAgICAgKFRFU1QpOiBEZWxldGVkLgorCiAy
MDE4LTAzLTIxICBZb3NoaWFraSBKaXRzdWthd2EgIDx5b3NoaWFraS5qaXRzdWthd2FAc29ueS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgbWFrZSB0aGUgZW1haWwgYWRkcmVzcyBvZiBZb3No
aWFraSBKaXRzdWthd2EgYWxsIGxvd2VyIGNhc2UuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlv
bi5tbQppbmRleCBmNGIxZTA3Y2I4MWM0NGE1NzhhOTE3MzA3NmQ0Yjk4MTFjZTEzZTc2Li5mMjIy
Y2JlMTgxNzMwNTM5ZGRjZTQwYjJhM2VmYWFiODExNTRhMzNmIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1t
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBP
bk5hdmlnYXRpb24ubW0KQEAgLTUyLDYgKzUyLDE5IEBACiBzdGF0aWMgYm9vbCBkb25lOwogc3Rh
dGljIGludCBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxzOwogCitzdGF0aWMgUmV0YWluUHRyPE5T
TXV0YWJsZUFycmF5PiByZWNlaXZlZE1lc3NhZ2VzID0gYWRvcHROUyhbQFtdIG11dGFibGVDb3B5
XSk7CitzdGF0aWMgYm9vbCByZWNlaXZlZE1lc3NhZ2U7CitAaW50ZXJmYWNlIFBTT05NZXNzYWdl
SGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5kbGVyPgorQGVuZAorCitAaW1w
bGVtZW50YXRpb24gUFNPTk1lc3NhZ2VIYW5kbGVyCistICh2b2lkKXVzZXJDb250ZW50Q29udHJv
bGxlcjooV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZGlk
UmVjZWl2ZVNjcmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UKK3sKKyAgICBb
cmVjZWl2ZWRNZXNzYWdlcyBhZGRPYmplY3Q6W21lc3NhZ2UgYm9keV1dOworICAgIHJlY2VpdmVk
TWVzc2FnZSA9IHRydWU7Cit9CitAZW5kCisKIEBpbnRlcmZhY2UgUFNPTk5hdmlnYXRpb25EZWxl
Z2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4KIEBlbmQKIApAQCAtNzEsMTYg
Kzg0LDMxIEBAIHN0YXRpYyBpbnQgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxsczsKIEBlbmQKIAog
QGludGVyZmFjZSBQU09OU2NoZW1lIDogTlNPYmplY3QgPFdLVVJMU2NoZW1lSGFuZGxlcj4gewor
ICAgIGNvbnN0IGNoYXIqIF9ieXRlczsKIH0KKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aEJ5dGVz
Oihjb25zdCBjaGFyKilieXRlczsKIEBlbmQKIAogQGltcGxlbWVudGF0aW9uIFBTT05TY2hlbWUK
IAorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQnl0ZXM6KGNvbnN0IGNoYXIqKWJ5dGVzCit7Cisg
ICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBfYnl0ZXMgPSBieXRlczsKKyAgICByZXR1cm4g
c2VsZjsKK30KKwogLSAodm9pZCl3ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHN0YXJ0VVJM
U2NoZW1lVGFzazooaWQgPFdLVVJMU2NoZW1lVGFzaz4pdGFzawogewogICAgIFJldGFpblB0cjxO
U1VSTFJlc3BvbnNlPiByZXNwb25zZSA9IGFkb3B0TlMoW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBp
bml0V2l0aFVSTDp0YXNrLnJlcXVlc3QuVVJMIE1JTUVUeXBlOkAidGV4dC9odG1sIiBleHBlY3Rl
ZENvbnRlbnRMZW5ndGg6MSB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0pOwogICAgIFt0YXNrIGRpZFJl
Y2VpdmVSZXNwb25zZTpyZXNwb25zZS5nZXQoKV07Ci0gICAgW3Rhc2sgZGlkUmVjZWl2ZURhdGE6
W0AiSGVsbG8iIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXV07CisKKyAg
ICBpZiAoX2J5dGVzKSB7CisgICAgICAgIFJldGFpblB0cjxOU0RhdGE+IGRhdGEgPSBhZG9wdE5T
KFtbTlNEYXRhIGFsbG9jXSBpbml0V2l0aEJ5dGVzTm9Db3B5Oih2b2lkICopX2J5dGVzIGxlbmd0
aDpzdHJsZW4oX2J5dGVzKSBmcmVlV2hlbkRvbmU6Tk9dKTsKKyAgICAgICAgW3Rhc2sgZGlkUmVj
ZWl2ZURhdGE6ZGF0YS5nZXQoKV07CisgICAgfSBlbHNlCisgICAgICAgIFt0YXNrIGRpZFJlY2Vp
dmVEYXRhOltAIkhlbGxvIiBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ11d
OworCiAgICAgW3Rhc2sgZGlkRmluaXNoXTsKIH0KIApAQCAtOTAsNiArMTE4LDI4IEBAIHN0YXRp
YyBpbnQgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxsczsKIAogQGVuZAogCitzdGF0aWMgY29uc3Qg
Y2hhciogdGVzdEJ5dGVzID0gUiJQU09OUkVTT1VSQ0UoCis8aGVhZD4KKzxzY3JpcHQ+CisKK2Z1
bmN0aW9uIGxvZyhtc2cpCit7CisgICAgd2luZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMucHNv
bi5wb3N0TWVzc2FnZShtc2cpOworfQorCit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oZXZ0KSB7
CisgICAgaWYgKHdpbmRvdy5oaXN0b3J5LnN0YXRlICE9ICJvbmxvYWRDYWxsZWQiKQorICAgICAg
ICBzZXRUaW1lb3V0KCd3aW5kb3cuaGlzdG9yeS5yZXBsYWNlU3RhdGUoIm9ubG9hZENhbGxlZCIs
ICIiKTsnLCAwKTsKK30KKword2luZG93Lm9ucGFnZXNob3cgPSBmdW5jdGlvbihldnQpIHsKKyAg
ICBsb2coIlBhZ2VTaG93IGNhbGxlZC4gUGVyc2lzdGVkOiAiICsgZXZ0LnBlcnNpc3RlZCArICIs
IGFuZCB3aW5kb3cuaGlzdG9yeS5zdGF0ZSBpczogIiArIHdpbmRvdy5oaXN0b3J5LnN0YXRlKTsK
K30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+CispUFNPTlJFU09VUkNFIjsKKwogVEVTVChQcm9jZXNz
U3dhcCwgQmFzaWMpCiB7CiAgICAgYXV0byBwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gPSBhZG9w
dE5TKFtbX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CkBAIC0xMzcs
NCArMTg3LDcwIEBAIFRFU1QoUHJvY2Vzc1N3YXAsIEJhc2ljKQogICAgIEVYUEVDVF9FUShudW1i
ZXJPZkRlY2lkZVBvbGljeUNhbGxzLCAzKTsKIH0KIAorVEVTVChQcm9jZXNzU3dhcCwgQmFjaykK
K3sKKyAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tQcm9j
ZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBwcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uZ2V0KCkucHJvY2Vzc1N3YXBzT25OYXZpZ2F0aW9uID0gWUVTOworICAgIGF1dG8g
cHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtbV0tQcm9jZXNzUG9vbCBhbGxvY10gX2luaXRXaXRoQ29u
ZmlndXJhdGlvbjpwcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKworICAgIGF1dG8g
d2ViVmlld0NvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDpw
cm9jZXNzUG9vbC5nZXQoKV07CisgICAgUmV0YWluUHRyPFBTT05TY2hlbWU+IGhhbmRsZXIxID0g
YWRvcHROUyhbW1BTT05TY2hlbWUgYWxsb2NdIGluaXRXaXRoQnl0ZXM6dGVzdEJ5dGVzXSk7Cisg
ICAgUmV0YWluUHRyPFBTT05TY2hlbWU+IGhhbmRsZXIyID0gYWRvcHROUyhbW1BTT05TY2hlbWUg
YWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFu
ZGxlcjpoYW5kbGVyMS5nZXQoKSBmb3JVUkxTY2hlbWU6QCJQU09OMSJdOworICAgIFt3ZWJWaWV3
Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIyLmdldCgpIGZvclVSTFNj
aGVtZTpAIlBTT04yIl07CisKKyAgICBSZXRhaW5QdHI8UFNPTk1lc3NhZ2VIYW5kbGVyPiBtZXNz
YWdlSGFuZGxlciA9IGFkb3B0TlMoW1tQU09OTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsK
KyAgICBbW3dlYlZpZXdDb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2Ny
aXB0TWVzc2FnZUhhbmRsZXI6bWVzc2FnZUhhbmRsZXIuZ2V0KCkgbmFtZTpAInBzb24iXTsKKwor
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjp3ZWJWaWV3Q29uZmln
dXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gZGVsZWdhdGUgPSBhZG9wdE5TKFtbUFNPTk5hdmln
YXRpb25EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25E
ZWxlZ2F0ZTpkZWxlZ2F0ZS5nZXQoKV07CisKKyAgICBOU1VSTFJlcXVlc3QgKnJlcXVlc3QgPSBb
TlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAicHNvbjE6
Ly9ob3N0L21haW4xLmh0bWwiXV07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07
CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTWVzc2FnZSk7CisgICAg
cmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZk
b25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAgICBhdXRvIHBpZDEgPSBbd2ViVmlldyBfd2Vi
UHJvY2Vzc0lkZW50aWZpZXJdOworCisgICAgcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uMjovL2hvc3QvbWFpbjIuaHRtbCJd
XTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZG9uZSk7CisgICAgZG9uZSA9IGZhbHNlOworCisgICAgYXV0byBwaWQy
ID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXTsKKworICAgIFt3ZWJWaWV3IGdvQmFj
a107CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkTWVzc2FnZSk7Cisg
ICAgcmVjZWl2ZWRNZXNzYWdlID0gZmFsc2U7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVu
KCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAgICBhdXRvIHBpZDMgPSBbd2ViVmlldyBf
d2ViUHJvY2Vzc0lkZW50aWZpZXJdOworCisgICAgLy8gMyBsb2FkcywgMyBkZWNpZGVQb2xpY3kg
Y2FsbHMgKGUuZy4gYW55IGxvYWQgdGhhdCBwZXJmb3JtcyBhIHByb2Nlc3Mgc3dhcCBzaG91bGQg
bm90IGhhdmUgZ2VuZXJhdGVkIGFuCisgICAgLy8gYWRkaXRpb25hbCBkZWNpZGVQb2xpY3kgY2Fs
bCBhcyBhIHJlc3VsdCBvZiB0aGUgcHJvY2VzcyBzd2FwKQorICAgIEVYUEVDVF9FUShudW1iZXJP
ZkRlY2lkZVBvbGljeUNhbGxzLCAzKTsKKworICAgIEVYUEVDVF9FUShbcmVjZWl2ZWRNZXNzYWdl
cyBjb3VudF0sIDJ1KTsKKyAgICBFWFBFQ1RfVFJVRShbcmVjZWl2ZWRNZXNzYWdlcy5nZXQoKVsw
XSBpc0VxdWFsVG9TdHJpbmc6QCJQYWdlU2hvdyBjYWxsZWQuIFBlcnNpc3RlZDogZmFsc2UsIGFu
ZCB3aW5kb3cuaGlzdG9yeS5zdGF0ZSBpczogbnVsbCJdKTsKKworICAgIC8vIEZJWE1FOiBXZSdk
IGxpa2UgdG8gZ2V0IHRoZSBwYWdlIHJlc3RvcmluZyBmcm9tIHRoZSBwYWdlIGNhY2hlIGxpa2Ug
YmVmb3JlIHByb2Nlc3Mgc3dhcHBpbmcsIHdoaWNoIHdpbGwgbWFrZSBQZXJzaXN0ZWQgYmUgInRy
dWUiCisgICAgLy8gRm9yIG5vdyBpdCdzIGV4cGVjdGVkIHRvIGJlIGZhbHNlIgorICAgIEVYUEVD
VF9UUlVFKFtyZWNlaXZlZE1lc3NhZ2VzLmdldCgpWzFdIGlzRXF1YWxUb1N0cmluZzpAIlBhZ2VT
aG93IGNhbGxlZC4gUGVyc2lzdGVkOiBmYWxzZSwgYW5kIHdpbmRvdy5oaXN0b3J5LnN0YXRlIGlz
OiBvbmxvYWRDYWxsZWQiXSk7CisKKyAgICBFWFBFQ1RfRkFMU0UocGlkMSA9PSBwaWQyKTsKKyAg
ICBFWFBFQ1RfRkFMU0UocGlkMiA9PSBwaWQzKTsKKworICAgIC8vIEZJWE1FOiBJZGVhbGx5IHdl
J2QgbGlrZSB0byBnZXQgcHJvY2VzcyBjYWNoaW5nIGhhcHBlbmluZyBzdWNoIHRoYXQgcGlkMSBh
bmQgcGlkMyBhcmUgZXF1YWwuCisgICAgLy8gQnV0IGZvciBub3cgdGhleSBzaG91bGQgbm90IGJl
LgorICAgIEVYUEVDVF9GQUxTRShwaWQxID09IHBpZDMpOworfQorCiAjZW5kaWYgLy8gV0tfQVBJ
X0VOQUJMRUQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336405</attachid>
            <date>2018-03-23 12:26:39 -0700</date>
            <delta_ts>2018-03-23 14:20:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183920-20180323122638.patch</filename>
            <type>text/plain</type>
            <size>70814</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5ODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDdjOWJjZWFjYjcxYWJi
ZTU5NzU3Y2EyY2RlNmUyMmNlNGJiOTFhZi4uNGI5MWIzMDYxMWI4Y2M5ODk1ODMwN2Q1MGRmYzZk
NjFlYTUwZTNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE4LTAzLTIzICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBHbyB0byBiYWNrL2Zvcndh
cmQgbGlzdCBpdGVtcyBhZnRlciBhIHByb2Nlc3Mtc3dhcHBlZCBuYXZpZ2F0aW9uLgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzg2OTA1NDQ+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgzOTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBuZXcgQVBJIHRlc3QuCisKKyAgICAgICAgTW9zdCBv
ZiB0aGUgY2hhbmdlcyB0byBXZWJDb3JlIGFyZSB0ZWFjaGluZyBIaXN0b3J5SXRlbSBuYXZpZ2F0
aW9ucyB0byBrbm93IHdoZW4gdGhleSBzaG91bGQKKyAgICAgICAgZG8gYSBwb2xpY3kgY2hlY2sg
b3Igbm90LgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
CisgICAgICAgICogaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QmFja0ZvcndhcmRDb250cm9sbGVyOjpnb0JhY2tPckZvcndhcmQpOgorICAgICAg
ICAoV2ViQ29yZTo6QmFja0ZvcndhcmRDb250cm9sbGVyOjpnb0JhY2spOgorICAgICAgICAoV2Vi
Q29yZTo6QmFja0ZvcndhcmRDb250cm9sbGVyOjpnb0ZvcndhcmQpOgorCisgICAgICAgICogaGlz
dG9yeS9IaXN0b3J5SXRlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5SXRlbTo6c2V0
U3RhdGVPYmplY3QpOiBBY3R1YWxseSBwdXNoIHN0YXRlIG9iamVjdCBjaGFuZ2VzIHRvIHRoZSBV
SVByb2Nlc3MuCisgICAgICAgICAgVGhpcyB3YXMgYSBsb25nIHN0YW5kaW5nIGJ1ZyB0aGF0IG1h
ZGUgaXQgZGlmZmljdWx0IHRvIGVmZmVjdGl2ZWx5IHRlc3QgdGhpcyBjaGFuZ2UuCisKKyAgICAg
ICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXI6OmxvYWRVUkxJbnRvQ2hpbGRGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRl
cjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlcjo6bG9hZEl0ZW0pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6OnJldHJ5QWZ0
ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKToKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuaDoKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oOgorCisgICAg
ICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okhp
c3RvcnlDb250cm9sbGVyOjpnb1RvSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29u
dHJvbGxlcjo6c2V0RGVmZXJzTG9hZGluZyk6CisgICAgICAgIChXZWJDb3JlOjpIaXN0b3J5Q29u
dHJvbGxlcjo6cmVjdXJzaXZlR29Ub0l0ZW0pOgorICAgICAgICAqIGxvYWRlci9IaXN0b3J5Q29u
dHJvbGxlci5oOgorCisgICAgICAgICogbG9hZGVyL05hdmlnYXRpb25Qb2xpY3lDaGVjay5oOgor
CisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmdvVG9J
dGVtKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKwogMjAxOC0wMy0yMSAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIERpc2Nvbm5lY3QgdGhl
IFNWR1BhdGhTZWdMaXN0IGl0ZW1zIGZyb20gdGhlaXIgU1ZHUGF0aEVsZW1lbnQgYmVmb3JlIHJl
YnVpbGRpbmcgYSBuZXcgbGlzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA3ZDVlZWVhZGFmNjUyNDA1YTg0OGY4ODIy
MjdlMzEzZWY1MjdkOGZiLi4xOTI5ZTM0NDE4MGY1MjdjMDRmMGViYjBhYjRjMWJkYTM0YTgxYzI4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDgxIEBACisyMDE4LTAzLTIzICBCcmFkeSBFaWRzb24gIDxi
ZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBHbyB0byBiYWNrL2ZvcndhcmQgbGlzdCBpdGVt
cyBhZnRlciBhIHByb2Nlc3Mtc3dhcHBlZCBuYXZpZ2F0aW9uLgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMzg2OTA1NDQ+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgzOTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhpcyB0YWtlcyB0aGUgaW5pdGlhbCB3b3JrIG9mICJwcm9jZXNzIHN3YXAgYSBub3JtYWwg
bmF2aWdhdGlvbiIgYW5kIGV4dGVuZHMgaXQgdG8KKyAgICAgICAgcHJvY2VzcyBzd2FwcGluZyBm
b3IgYmFjay9mb3J3YXJkIGl0ZW0gbmF2aWdhdGlvbnMuCisKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdC9tZXNzYWdlcy5weToKKworICAgICAgICBNYWtlIHN1cmUgc3RhdGUgb2JqZWN0cyBhcmUg
c2VyaWFsaXplZCB0byB0aGUgVUkgUHJvY2VzcyBiYWNrL2ZvcndhcmQgbGlzdCBpdGVtcywgYXMg
b3RoZXJ3aXNlCisgICAgICAgIHRoZXkgd2lsbCBiZSBsb3N0IGluIHByb2Nlc3Mtc3dhcCBzY2Vu
YXJpb3M6CisgICAgICAgICogU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VTdGF0ZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UGFnZVN0YXRl
OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9TZXNzaW9uU3RhdGUuaDoKKworICAgICAgICBN
YWtlIGEgbmV3IHZhcmlhbnQgb2YgQVBJTmF2aWdhdGlvbiBzcGVjaWZpY2FsbHkgZm9yIGJhY2sv
Zm9yd2FyZCBsaXN0IGl0ZW1zLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlv
bi5jcHA6CisgICAgICAgIChBUEk6Ok5hdmlnYXRpb246Ok5hdmlnYXRpb24pOgorICAgICAgICAo
QVBJOjpOYXZpZ2F0aW9uOjpsb2dnaW5nVVJMIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0FQSU5hdmlnYXRpb24uaDoKKyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbjo6Y3JlYXRlKToK
KyAgICAgICAgKEFQSTo6TmF2aWdhdGlvbjo6YmFja0ZvcndhcmRMaXN0SXRlbSk6CisgICAgICAg
IChBUEk6Ok5hdmlnYXRpb246OmJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSBjb25zdCk6CisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZUdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0Jyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIgZ29Ub0JhY2tGb3J3YXJkTGlzdEl0ZW06XSk6CisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGdvVG9C
YWNrRm9yd2FyZExpc3RJdGVtOl0pOgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYk5hdmlnYXRp
b25TdGF0ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRpb25TdGF0ZTo6Y3JlYXRl
TG9hZFJlcXVlc3ROYXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViTmF2aWdhdGlvblN0
YXRlOjpjcmVhdGVCYWNrRm9yd2FyZE5hdmlnYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJOYXZpZ2F0aW9uU3RhdGUuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlYXR0YWNoVG9XZWJQcm9jZXNz
Rm9yUmVsb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2Vi
UHJvY2Vzc1dpdGhJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpnb0Zvcndh
cmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdvQmFjayk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKTogSGFuZGxl
IGJhY2svZm9yd2FyZCBuYXZpZ2F0aW9ucyBkaWZmZXJlbnRseSB0aGFuIG90aGVycy4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXN0b3JlRnJvbVNlc3Npb25TdGF0ZSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorCisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6YWRk
T3JVcGRhdGVCYWNrRm9yd2FyZEl0ZW0pOiBSZW5hbWVkIGZyb20gImFkZEJhY2tGb3J3YXJkSXRl
bSIgZm9yIGNsYXJpdHkKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjphZGRCYWNr
Rm9yd2FyZEl0ZW0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbToK
KyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjplbmRTd2lwZUdlc3R1cmUp
OgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252
ZXJzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6dG9QYWdlU3RhdGUpOgorICAgICAgICAoV2Vi
S2l0Ojp0b0hpc3RvcnlJdGVtKToKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJC
YWNrRm9yd2FyZExpc3RQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnVwZGF0ZUJhY2tGb3J3
YXJkSXRlbSk6CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdvVG9CYWNrRm9yd2FyZEl0ZW0pOiBDb21iaW5lZCAi
Z29CYWNrIiBhbmQgImdvRm9yd2FyZCIgd2l0aCB0aGlzIG1ldGhvZCwKKyAgICAgICAgICBwYXNz
aW5nIHRoZSBhcHByb3ByaWF0ZSBGcmFtZUxvYWRUeXBlIGFyb3VuZCBhcyBuZWVkZWQgdG8gcmVt
ZW1iZXIgdGhlIHNwZWNpZmljIHR5cGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdvRm9y
d2FyZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdvQmFjayk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAxOC0wMy0yMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24ocjIyOTgz
MSk6IFByb2Nlc3NTd2FwLkJhc2ljIEFQSSB0ZXN0IGlzIGNyYXNoaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKaW5kZXggZWI3YTdhMzFjNmE4ZjAxYmVmMGEzYmY3MWZhMzdiNjZhY2RlNGZj
MS4uYjUxMDJhMGVhYzE1MDE4OWY1ZjQ3NmMwMjNiNDM5ODAxMGI2MGZmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTAzLTIzICBCcmFkeSBFaWRz
b24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBHbyB0byBiYWNrL2ZvcndhcmQgbGlz
dCBpdGVtcyBhZnRlciBhIHByb2Nlc3Mtc3dhcHBlZCBuYXZpZ2F0aW9uLgorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMzg2OTA1NDQ+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgzOTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2xvYWRC
YWNrRm9yd2FyZExpc3RGcm9tT3RoZXJWaWV3Ol0pOgorICAgICAgICAoLVtXZWJWaWV3IGdvVG9C
YWNrRm9yd2FyZEl0ZW06XSk6CisKIDIwMTgtMDMtMjAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hv
cnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIHRoZSBtaW5pbWFsIHNpbXVsYXRvciBm
ZWF0dXJlIGZsYWcgd2hlbiBhcHByb3ByaWF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNkYzYyMzUxZWE5ZGNlYTgxY2VjYmZl
NTlmN2VkMTM0YTdiZTUwOTAuLmQ3MDE4MmI3NjNjZjkyNTZjNDQzMWQ0OTc5MzdkODdlYjNhZWVi
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTEzNDIsNiArMTM0Miw3IEBACiAJCTUxMEQ0QTM3MTAzMTY1RUUwMDQ5RUE1NCAv
KiBTb2NrZXRTdHJlYW1IYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDUxMEQ0QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
MTBENEEzODEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEzMjEwMzE2
NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTExMEZDRkMxRTAzNjQxRDAwNkY4
RDBCIC8qIElEQkN1cnNvclJlY29yZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTExMEZDRkIxRTAzNjJBNTAwNkY4RDBCIC8qIElEQkN1cnNvclJlY29y
ZC5oICovOyB9OworCQk1MTFFOTdBMzIwNjMwNzQ2MDBBRDQ1OTkgLyogTmF2aWdhdGlvblBvbGlj
eUNoZWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MTFFOTdBMTIwNjMwNzJBMDBBRDQ1OTkgLyogTmF2aWdhdGlvblBvbGljeUNoZWNrLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTExRUMxMjgxQzUw
QUFDQTAwMzJGOTgzIC8qIElEQlNlcmlhbGl6YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJT
ZXJpYWxpemF0aW9uLmggKi87IH07CiAJCTUxMUVDMTJDMUM1MEFCQkYwMDMyRjk4MyAvKiBTUUxp
dGVJREJUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTExRUMxMkExQzUwQUJCQTAwMzJGOTgzIC8qIFNRTGl0ZUlEQlRyYW5zYWN0aW9u
LmggKi87IH07CiAJCTUxMUVDMTMwMUM1MEFCRjUwMDMyRjk4MyAvKiBTUUxpdGVJREJDdXJzb3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTJF
MUM1MEFCRUMwMDMyRjk4MyAvKiBTUUxpdGVJREJDdXJzb3IuaCAqLzsgfTsKQEAgLTc3MDEsNiAr
NzcwMiw3IEBACiAJCTUxMEQ0QTMxMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5k
bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1
NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMTBGQ0ZCMUUwMzYyQTUwMDZGOEQwQiAvKiBJREJDdXJzb3JSZWNvcmQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSURCQ3Vyc29yUmVjb3JkLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUxMUU5N0ExMjA2MzA3MkEwMEFENDU5OSAvKiBOYXZp
Z2F0aW9uUG9saWN5Q2hlY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF2
aWdhdGlvblBvbGljeUNoZWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUVD
MTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElEQlNlcmlhbGl6YXRpb24uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1MTFFQzEyNjFDNTBBQTU3MDAzMkY5ODMgLyogSURCU2VyaWFs
aXphdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJREJTZXJpYWxpemF0
aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUVDMTI5MUM1MEFCQkEwMDMy
Rjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBTUUxpdGVJREJUcmFuc2FjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0yMzk2MSw2ICsyMzk2Myw3IEBACiAJCQkJOTNDQ0YwNUYwQUY2Q0E3NjAw
MDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24uY3BwICovLAogCQkJCTkzQ0NGMDI2MEFGNkM1Mjkw
MDAxOEU4OSAvKiBOYXZpZ2F0aW9uQWN0aW9uLmggKi8sCiAJCQkJOUJBODI3NzgxRjA2MTU2NTAw
RjcxRTc1IC8qIE5hdmlnYXRpb25EaXNhYmxlci5oICovLAorCQkJCTUxMUU5N0ExMjA2MzA3MkEw
MEFENDU5OSAvKiBOYXZpZ2F0aW9uUG9saWN5Q2hlY2suaCAqLywKIAkJCQk5NzlGNDNEMTEwNzVF
NDRBMDAwMEY4M0IgLyogTmF2aWdhdGlvblNjaGVkdWxlci5jcHAgKi8sCiAJCQkJOTc5RjQzRDIx
MDc1RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRpb25TY2hlZHVsZXIuaCAqLywKIAkJCQk5M0UyMjdE
RDBBRjU4OUFEMDBENDgzMjQgLyogTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwICovLApA
QCAtMjkxMjksNiArMjkxMzIsNyBAQAogCQkJCTgzQjJEMTc1MUI4QkNENkEwMEEwMkU0NyAvKiBO
YXRpdmVOb2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTBCOUI2QzBCNzQ3NTk5MDAz
RUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0ND
RjAyNzBBRjZDNTI5MDAwMThFODkgLyogTmF2aWdhdGlvbkFjdGlvbi5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNTExRTk3QTMyMDYzMDc0NjAwQUQ0NTk5IC8qIE5hdmlnYXRpb25Qb2xpY3lDaGVjay5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTc5RjQzRDQxMDc1RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRp
b25TY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE5QzZFNUE2MEQ3NDY0NTgwMDY0NDJF
OSAvKiBOYXZpZ2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMjcxOUM3MEVFRUMxNjgwMEY2
MTIxMyAvKiBOYXZpZ2F0b3JCYXNlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDb250cm9sbGVyLmNwcAppbmRleCBmNDUwOTI2M2MwNDAx
OGJkZmE4ZDUyNWViYjE3NmE5ZWI2YTkxNjFlLi4wZjA1YmY2NWEzNWQ2MDdhNjhiYjI2ZmZkY2Y0
Zjc3NjJlNDQ5YWUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3
YXJkQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2Fy
ZENvbnRyb2xsZXIuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQmFja0ZvcndhcmRD
b250cm9sbGVyLmgiCiAKICNpbmNsdWRlICJCYWNrRm9yd2FyZENsaWVudC5oIgorI2luY2x1ZGUg
Ik5hdmlnYXRpb25Qb2xpY3lDaGVjay5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNjksNyArNzAsNyBAQCB2b2lkIEJhY2tGb3J3YXJkQ29udHJvbGxlcjo6
Z29CYWNrT3JGb3J3YXJkKGludCBkaXN0YW5jZSkKICAgICBpZiAoIWl0ZW0pCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fcGFnZS5nb1RvSXRlbSgqaXRlbSwgRnJhbWVMb2FkVHlwZTo6SW5kZXhl
ZEJhY2tGb3J3YXJkKTsKKyAgICBtX3BhZ2UuZ29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6
OkluZGV4ZWRCYWNrRm9yd2FyZCwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKTsKIH0K
IAogYm9vbCBCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmdvQmFjaygpCkBAIC03OCw3ICs3OSw3IEBA
IGJvb2wgQmFja0ZvcndhcmRDb250cm9sbGVyOjpnb0JhY2soKQogICAgIGlmICghaXRlbSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgbV9wYWdlLmdvVG9JdGVtKCppdGVtLCBGcmFtZUxv
YWRUeXBlOjpCYWNrKTsKKyAgICBtX3BhZ2UuZ29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6
OkJhY2ssIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZSk7CiAgICAgcmV0dXJuIHRydWU7
CiB9CiAKQEAgLTg4LDcgKzg5LDcgQEAgYm9vbCBCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmdvRm9y
d2FyZCgpCiAgICAgaWYgKCFpdGVtKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX3Bh
Z2UuZ29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6OkZvcndhcmQpOworICAgIG1fcGFnZS5n
b1RvSXRlbSgqaXRlbSwgRnJhbWVMb2FkVHlwZTo6Rm9yd2FyZCwgTmF2aWdhdGlvblBvbGljeUNo
ZWNrOjpSZXF1aXJlKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5
L0hpc3RvcnlJdGVtLmNwcAppbmRleCA2YzMwMzRjYWUwMjUwNzNkNDhiMjA5MTY3NDJlYzk0ZGFh
MzZkYzhiLi45ZDg2ODk4OGFkMGVkYWUwMGQ5NWY4NDJmZDM4MjMyNGRmOWY1NTg0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcApAQCAtMzExLDYgKzMxMSw3IEBAIHZvaWQg
SGlzdG9yeUl0ZW06OnNldElzVGFyZ2V0SXRlbShib29sIGZsYWcpCiB2b2lkIEhpc3RvcnlJdGVt
OjpzZXRTdGF0ZU9iamVjdChSZWZQdHI8U2VyaWFsaXplZFNjcmlwdFZhbHVlPiYmIG9iamVjdCkK
IHsKICAgICBtX3N0YXRlT2JqZWN0ID0gV1RGTW92ZShvYmplY3QpOworICAgIG5vdGlmeUhpc3Rv
cnlJdGVtQ2hhbmdlZCh0aGlzKTsKIH0KIAogdm9pZCBIaXN0b3J5SXRlbTo6YWRkQ2hpbGRJdGVt
KFJlZjxIaXN0b3J5SXRlbT4mJiBjaGlsZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCmluZGV4IGQ3NmU0NDEwYjYxNTk2NDcwOGYyMGZhYzRkOTg1ZDIzNjk0OWMwNWQuLmZjZjg2
NDk0MzRlMGIwMGNkMGUzNjMzZTdhOTlhMzVlN2ZlY2FkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcApAQCAtODcsNiArODcsNyBAQAogI2luY2x1ZGUgIk1lbW9yeUNhY2hl
LmgiCiAjaW5jbHVkZSAiTWVtb3J5UmVsZWFzZS5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25EaXNh
Ymxlci5oIgorI2luY2x1ZGUgIk5hdmlnYXRpb25Qb2xpY3lDaGVjay5oIgogI2luY2x1ZGUgIk5h
dmlnYXRpb25TY2hlZHVsZXIuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNh
Y2hlLmgiCkBAIC05MjcsNyArOTI4LDcgQEAgdm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTEludG9D
aGlsZEZyYW1lKGNvbnN0IFVSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHJlZmVyZXIsIEYKICAgICBp
ZiAocGFyZW50SXRlbSAmJiBwYXJlbnRJdGVtLT5jaGlsZHJlbigpLnNpemUoKSAmJiBpc0JhY2tG
b3J3YXJkTG9hZFR5cGUobG9hZFR5cGUoKSkgJiYgIW1fZnJhbWUuZG9jdW1lbnQoKS0+bG9hZEV2
ZW50RmluaXNoZWQoKSkgewogICAgICAgICBpZiAoYXV0byogY2hpbGRJdGVtID0gcGFyZW50SXRl
bS0+Y2hpbGRJdGVtV2l0aFRhcmdldChjaGlsZEZyYW1lLT50cmVlKCkudW5pcXVlTmFtZSgpKSkg
ewogICAgICAgICAgICAgY2hpbGRGcmFtZS0+bG9hZGVyKCkubV9yZXF1ZXN0ZWRIaXN0b3J5SXRl
bSA9IGNoaWxkSXRlbTsKLSAgICAgICAgICAgIGNoaWxkRnJhbWUtPmxvYWRlcigpLmxvYWREaWZm
ZXJlbnREb2N1bWVudEl0ZW0oKmNoaWxkSXRlbSwgbG9hZFR5cGUoKSwgTWF5QXR0ZW1wdENhY2hl
T25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0ZW0pOworICAgICAgICAgICAgY2hpbGRGcmFtZS0+
bG9hZGVyKCkubG9hZERpZmZlcmVudERvY3VtZW50SXRlbSgqY2hpbGRJdGVtLCBsb2FkVHlwZSgp
LCBNYXlBdHRlbXB0Q2FjaGVPbmx5TG9hZEZvckZvcm1TdWJtaXNzaW9uSXRlbSwgTmF2aWdhdGlv
blBvbGljeUNoZWNrOjpSZXF1aXJlKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQog
ICAgIH0KQEAgLTM0NjUsNyArMzQ2Niw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRTYW1lRG9j
dW1lbnRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtKQogLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gc2hv
dWxkIHJlYWxseSBiZSBzcGxpdCBpbnRvIGEgY291cGxlIHBpZWNlcywgc29tZSBvZgogLy8gd2hp
Y2ggc2hvdWxkIGJlIG1ldGhvZHMgb2YgSGlzdG9yeUNvbnRyb2xsZXIgYW5kIHNvbWUgb2Ygd2hp
Y2ggc2hvdWxkIGJlCiAvLyBtZXRob2RzIG9mIEZyYW1lTG9hZGVyLgotdm9pZCBGcmFtZUxvYWRl
cjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2Fk
VHlwZSBsb2FkVHlwZSwgRm9ybVN1Ym1pc3Npb25DYWNoZUxvYWRQb2xpY3kgY2FjaGVMb2FkUG9s
aWN5KQordm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5
SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSwgRm9ybVN1Ym1pc3Npb25DYWNoZUxv
YWRQb2xpY3kgY2FjaGVMb2FkUG9saWN5LCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2sgbmF2aWdhdGlv
blBvbGljeUNoZWNrKQogewogICAgIC8vIFJlbWVtYmVyIHRoaXMgaXRlbSBzbyB3ZSBjYW4gdHJh
dmVyc2UgYW55IGNoaWxkIGl0ZW1zIGFzIGNoaWxkIGZyYW1lcyBsb2FkCiAgICAgaGlzdG9yeSgp
LnNldFByb3Zpc2lvbmFsSXRlbSgmaXRlbSk7CkBAIC0zNTYzLDExICszNTY0LDEzIEBAIHZvaWQg
RnJhbWVMb2FkZXI6OmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0s
IEZyYW1lTG9hZFR5cGUgbG9hCiAgICAgICAgIGFjdGlvbiA9IHsgKm1fZnJhbWUuZG9jdW1lbnQo
KSwgcmVxdWVzdEZvck9yaWdpbmFsVVJMLCBpbml0aWF0ZWRCeU1haW5GcmFtZSwgbG9hZFR5cGUs
IGlzRm9ybVN1Ym1pc3Npb24sIGV2ZW50LCBzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IH07
CiAgICAgfQogCisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY3VycmVudExvYWRTaG91bGRDaGVja05h
dmlnYXRpb25Qb2xpY3lHdWFyZChtX2N1cnJlbnRMb2FkU2hvdWxkQ2hlY2tOYXZpZ2F0aW9uUG9s
aWN5LCBuYXZpZ2F0aW9uUG9saWN5Q2hlY2sgIT0gTmF2aWdhdGlvblBvbGljeUNoZWNrOjpCeXBh
c3MpOworCiAgICAgbG9hZFdpdGhOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QsIGFjdGlvbiwgTG9j
a0hpc3Rvcnk6Ok5vLCBsb2FkVHlwZSwgMCwgQWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZ
ZXMsIFtdIHsgfSk7CiB9CiAKIC8vIExvYWRzIGNvbnRlbnQgaW50byB0aGlzIGZyYW1lLCBhcyBz
cGVjaWZpZWQgYnkgaGlzdG9yeSBpdGVtCi12b2lkIEZyYW1lTG9hZGVyOjpsb2FkSXRlbShIaXN0
b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSkKK3ZvaWQgRnJhbWVMb2FkZXI6
OmxvYWRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBGcmFtZUxvYWRUeXBlIGxvYWRUeXBlLCBOYXZp
Z2F0aW9uUG9saWN5Q2hlY2sgbmF2aWdhdGlvblBvbGljeUNoZWNrKQogewogICAgIG1fcmVxdWVz
dGVkSGlzdG9yeUl0ZW0gPSAmaXRlbTsKICAgICBIaXN0b3J5SXRlbSogY3VycmVudEl0ZW0gPSBo
aXN0b3J5KCkuY3VycmVudEl0ZW0oKTsKQEAgLTM1NzYsNyArMzU3OSw3IEBAIHZvaWQgRnJhbWVM
b2FkZXI6OmxvYWRJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBGcmFtZUxvYWRUeXBlIGxvYWRUeXBl
KQogICAgIGlmIChzYW1lRG9jdW1lbnROYXZpZ2F0aW9uKQogICAgICAgICBsb2FkU2FtZURvY3Vt
ZW50SXRlbShpdGVtKTsKICAgICBlbHNlCi0gICAgICAgIGxvYWREaWZmZXJlbnREb2N1bWVudEl0
ZW0oaXRlbSwgbG9hZFR5cGUsIE1heUF0dGVtcHRDYWNoZU9ubHlMb2FkRm9yRm9ybVN1Ym1pc3Np
b25JdGVtKTsKKyAgICAgICAgbG9hZERpZmZlcmVudERvY3VtZW50SXRlbShpdGVtLCBsb2FkVHlw
ZSwgTWF5QXR0ZW1wdENhY2hlT25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0ZW0sIG5hdmlnYXRp
b25Qb2xpY3lDaGVjayk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXI6OnJldHJ5QWZ0ZXJGYWlsZWRD
YWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKCkKQEAgLTM1OTEsNyArMzU5NCw3IEBAIHZvaWQgRnJh
bWVMb2FkZXI6OnJldHJ5QWZ0ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKCkKICAg
ICBIaXN0b3J5SXRlbSYgaXRlbSA9ICpoaXN0b3J5KCkucHJvdmlzaW9uYWxJdGVtKCk7CiAKICAg
ICBzdG9wQWxsTG9hZGVycyhTaG91bGROb3RDbGVhclByb3Zpc2lvbmFsSXRlbSk7Ci0gICAgbG9h
ZERpZmZlcmVudERvY3VtZW50SXRlbShpdGVtLCBsb2FkVHlwZSwgTWF5Tm90QXR0ZW1wdENhY2hl
T25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0ZW0pOworICAgIGxvYWREaWZmZXJlbnREb2N1bWVu
dEl0ZW0oaXRlbSwgbG9hZFR5cGUsIE1heU5vdEF0dGVtcHRDYWNoZU9ubHlMb2FkRm9yRm9ybVN1
Ym1pc3Npb25JdGVtLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6OlJlcXVpcmUpOwogfQogCiBSZXNv
dXJjZUVycm9yIEZyYW1lTG9hZGVyOjpjYW5jZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDhl
NGI5NWViMTQzNjdkMjE1OTllYzNhYjBkOTVhODBkZjlkMjIyNDIuLjdlNWVkNWRkN2U2MjYyNDIx
MTA5ZjZlMDc0OTk5NTZjNDBiNDEwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5o
CkBAIC04MCw2ICs4MCw4IEBAIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKIGNsYXNzIFN1YmZyYW1lTG9h
ZGVyOwogY2xhc3MgU3Vic3RpdHV0ZURhdGE7CiAKK2VudW0gY2xhc3MgTmF2aWdhdGlvblBvbGlj
eUNoZWNrOworCiBzdHJ1Y3QgV2luZG93RmVhdHVyZXM7CiAKIFdFQkNPUkVfRVhQT1JUIGJvb2wg
aXNCYWNrRm9yd2FyZExvYWRUeXBlKEZyYW1lTG9hZFR5cGUpOwpAQCAtMTI1LDcgKzEyNyw3IEBA
IHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbG9hZFdpdGhPdmVycmlkZUVuY29k
aW5nKGNvbnN0IFN0cmluZyYgb3ZlcnJpZGVFbmNvZGluZyk7CiAKICAgICB2b2lkIG9wZW4oQ2Fj
aGVkRnJhbWVCYXNlJik7Ci0gICAgdm9pZCBsb2FkSXRlbShIaXN0b3J5SXRlbSYsIEZyYW1lTG9h
ZFR5cGUpOworICAgIHZvaWQgbG9hZEl0ZW0oSGlzdG9yeUl0ZW0mLCBGcmFtZUxvYWRUeXBlLCBO
YXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogICAgIEhpc3RvcnlJdGVtKiByZXF1ZXN0ZWRIaXN0b3J5
SXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdGVkSGlzdG9yeUl0ZW0uZ2V0KCk7IH0KIAog
ICAgIHZvaWQgcmV0cnlBZnRlckZhaWxlZENhY2hlT25seU1haW5SZXNvdXJjZUxvYWQoKTsKQEAg
LTMxNyw3ICszMTksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2hlY2tUaW1lckZpcmVkKCk7CiAK
ICAgICB2b2lkIGxvYWRTYW1lRG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJik7Ci0gICAgdm9pZCBs
b2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJiwgRnJhbWVMb2FkVHlwZSwgRm9y
bVN1Ym1pc3Npb25DYWNoZUxvYWRQb2xpY3kpOworICAgIHZvaWQgbG9hZERpZmZlcmVudERvY3Vt
ZW50SXRlbShIaXN0b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUsIEZvcm1TdWJtaXNzaW9uQ2FjaGVM
b2FkUG9saWN5LCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogCiAgICAgdm9pZCBsb2FkUHJvdmlz
aW9uYWxJdGVtRnJvbUNhY2hlZFBhZ2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlclR5cGVzLmgKaW5kZXggNTliNmE2MjNkMTViZDA1N2I4ODYzMWYyNDI5MDUwZGZkOWQwMmJk
Zi4uNmRlMWI2ZmFhZmUyZTlhZDM1NGU2OTkyY2I3NGVjOGFkM2MyOTMxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCkBAIC0xNjQsNCArMTY0LDIwIEBAIHRlbXBs
YXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UG9saWN5QWN0aW9uPiB7CiAgICAgPjsK
IH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RnJhbWVMb2FkVHlw
ZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkZy
YW1lTG9hZFR5cGUsCisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGU6OlN0YW5kYXJkLAor
ICAgICAgICBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlOjpCYWNrLAorICAgICAgICBXZWJDb3JlOjpG
cmFtZUxvYWRUeXBlOjpGb3J3YXJkLAorICAgICAgICBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlOjpJ
bmRleGVkQmFja0ZvcndhcmQsCisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGU6OlJlbG9h
ZCwKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZTo6U2FtZSwKKyAgICAgICAgV2ViQ29y
ZTo6RnJhbWVMb2FkVHlwZTo6UmVkaXJlY3RXaXRoTG9ja2VkQmFja0ZvcndhcmRMaXN0LAorICAg
ICAgICBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlOjpSZXBsYWNlLAorICAgICAgICBXZWJDb3JlOjpG
cmFtZUxvYWRUeXBlOjpSZWxvYWRGcm9tT3JpZ2luLAorICAgICAgICBXZWJDb3JlOjpGcmFtZUxv
YWRUeXBlOjpSZWxvYWRFeHBpcmVkT25seQorICAgID47Cit9OworCiB9IC8vIG5hbWVzcGFjZSBX
VEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCmluZGV4IGI4
ZWU3MzM2YjdjZDk3ZGE1MDVjNDkwOGYxNTM5ZTY3N2FmNmYwYTAuLmVhMjU2N2I2MzgwMDRkN2I4
MDY2MGFkNjE2NzlmZjljZDFjZGFkMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9IaXN0b3J5Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3Rv
cnlDb250cm9sbGVyLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkhpc3RvcnlJdGVt
LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1haW5GcmFtZS5oIgorI2luY2x1
ZGUgIk5hdmlnYXRpb25Qb2xpY3lDaGVjay5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdDb29yZGluYXRvci5oIgpAQCAtMjkw
LDcgKzI5MSw3IEBAIGJvb2wgSGlzdG9yeUNvbnRyb2xsZXI6OnNob3VsZFN0b3BMb2FkaW5nRm9y
SGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0mIHRhcmdldEl0ZW0pCiAKIC8vIE1haW4gZnVubmVsIGZv
ciBuYXZpZ2F0aW5nIHRvIGEgcHJldmlvdXMgbG9jYXRpb24gKGJhY2svZm9yd2FyZCwgbm9uLXNl
YXJjaCBzbmFwLWJhY2spCiAvLyBUaGlzIGluY2x1ZGVzIHJlY3Vyc2lvbiB0byBoYW5kbGUgbG9h
ZGluZyBpbnRvIGZyYW1lc2V0cyBwcm9wZXJseQotdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6Z29U
b0l0ZW0oSGlzdG9yeUl0ZW0mIHRhcmdldEl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSkKK3ZvaWQg
SGlzdG9yeUNvbnRyb2xsZXI6OmdvVG9JdGVtKEhpc3RvcnlJdGVtJiB0YXJnZXRJdGVtLCBGcmFt
ZUxvYWRUeXBlIHR5cGUsIE5hdmlnYXRpb25Qb2xpY3lDaGVjayBuYXZpZ2F0aW9uUG9saWN5Q2hl
Y2spCiB7CiAgICAgTE9HKEhpc3RvcnksICJIaXN0b3J5Q29udHJvbGxlciAlcCBnb1RvSXRlbSAl
cCB0eXBlPSVkIiwgdGhpcywgJnRhcmdldEl0ZW0sIHN0YXRpY19jYXN0PGludD4odHlwZSkpOwog
CkBAIC0zMjUsMTQgKzMyNiwxNCBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjpnb1RvSXRlbShI
aXN0b3J5SXRlbSYgdGFyZ2V0SXRlbSwgRnJhbWVMb2FkVHlwZSB0eXBlKQogICAgIHJlY3Vyc2l2
ZVNldFByb3Zpc2lvbmFsSXRlbSh0YXJnZXRJdGVtLCBjdXJyZW50SXRlbS5nZXQoKSk7CiAKICAg
ICAvLyBOb3cgdGhhdCBhbGwgb3RoZXIgZnJhbWVzIGhhdmUgcHJvdmlzaW9uYWwgaXRlbXMsIGRv
IHRoZSBhY3R1YWwgbmF2aWdhdGlvbi4KLSAgICByZWN1cnNpdmVHb1RvSXRlbSh0YXJnZXRJdGVt
LCBjdXJyZW50SXRlbS5nZXQoKSwgdHlwZSk7CisgICAgcmVjdXJzaXZlR29Ub0l0ZW0odGFyZ2V0
SXRlbSwgY3VycmVudEl0ZW0uZ2V0KCksIHR5cGUsIG5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CiB9
CiAKIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcikK
IHsKICAgICBtX2RlZmVyc0xvYWRpbmcgPSBkZWZlcjsKICAgICBpZiAoIWRlZmVyICYmIG1fZGVm
ZXJyZWRJdGVtKSB7Ci0gICAgICAgIGdvVG9JdGVtKCptX2RlZmVycmVkSXRlbSwgbV9kZWZlcnJl
ZEZyYW1lTG9hZFR5cGUpOworICAgICAgICBnb1RvSXRlbSgqbV9kZWZlcnJlZEl0ZW0sIG1fZGVm
ZXJyZWRGcmFtZUxvYWRUeXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6OlJlcXVpcmUpOwogICAg
ICAgICBtX2RlZmVycmVkSXRlbSA9IG51bGxwdHI7CiAgICAgfQogfQpAQCAtNzQ5LDEwICs3NTAs
MTAgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVjdXJzaXZlU2V0UHJvdmlzaW9uYWxJdGVt
KEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXQKIAogLy8gV2Ugbm93IHRyYXZlcnNlIHRoZSBm
cmFtZSB0cmVlIGFuZCBpdGVtIHRyZWUgYSBzZWNvbmQgdGltZSwgbG9hZGluZyBmcmFtZXMgdGhh
dAogLy8gZG8gaGF2ZSB0aGUgY29udGVudCB0aGUgaXRlbSByZXF1ZXN0cy4KLXZvaWQgSGlzdG9y
eUNvbnRyb2xsZXI6OnJlY3Vyc2l2ZUdvVG9JdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5
SXRlbSogZnJvbUl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSkKK3ZvaWQgSGlzdG9yeUNvbnRyb2xs
ZXI6OnJlY3Vyc2l2ZUdvVG9JdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXRlbSogZnJv
bUl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSwgTmF2aWdhdGlvblBvbGljeUNoZWNrIG5hdmlnYXRp
b25Qb2xpY3lDaGVjaykKIHsKICAgICBpZiAoIWl0ZW1zQXJlQ2xvbmVzKGl0ZW0sIGZyb21JdGVt
KSkgewotICAgICAgICBtX2ZyYW1lLmxvYWRlcigpLmxvYWRJdGVtKGl0ZW0sIHR5cGUpOworICAg
ICAgICBtX2ZyYW1lLmxvYWRlcigpLmxvYWRJdGVtKGl0ZW0sIHR5cGUsIG5hdmlnYXRpb25Qb2xp
Y3lDaGVjayk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTc2Myw3ICs3NjQsNyBAQCB2
b2lkIEhpc3RvcnlDb250cm9sbGVyOjpyZWN1cnNpdmVHb1RvSXRlbShIaXN0b3J5SXRlbSYgaXRl
bSwgSGlzdG9yeUl0ZW0qIGZyb21JdAogICAgICAgICBIaXN0b3J5SXRlbSogZnJvbUNoaWxkSXRl
bSA9IGZyb21JdGVtLT5jaGlsZEl0ZW1XaXRoVGFyZ2V0KGNoaWxkRnJhbWVOYW1lKTsKICAgICAg
ICAgQVNTRVJUKGZyb21DaGlsZEl0ZW0pOwogICAgICAgICBpZiAoRnJhbWUqIGNoaWxkRnJhbWUg
PSBtX2ZyYW1lLnRyZWUoKS5jaGlsZChjaGlsZEZyYW1lTmFtZSkpCi0gICAgICAgICAgICBjaGls
ZEZyYW1lLT5sb2FkZXIoKS5oaXN0b3J5KCkucmVjdXJzaXZlR29Ub0l0ZW0oY2hpbGRJdGVtLCBm
cm9tQ2hpbGRJdGVtLCB0eXBlKTsKKyAgICAgICAgICAgIGNoaWxkRnJhbWUtPmxvYWRlcigpLmhp
c3RvcnkoKS5yZWN1cnNpdmVHb1RvSXRlbShjaGlsZEl0ZW0sIGZyb21DaGlsZEl0ZW0sIHR5cGUs
IG5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9IaXN0b3J5Q29udHJvbGxlci5oCmluZGV4IDNkMjVlMjg5YjIyZmIxZjk5NjNmNmRmYjMzNDc4
OTU4MWQwOTI3MDEuLjQ1MzVhYWViMzgwZDE4NWM5YTExMTlmYjU4ODRjNThmMzBmNTkwZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCkBAIC00MCw2ICs0MCw4
IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgSGlzdG9yeUl0ZW07CiBjbGFzcyBTZXJpYWxpemVkU2Ny
aXB0VmFsdWU7CiAKK2VudW0gY2xhc3MgTmF2aWdhdGlvblBvbGljeUNoZWNrOworCiBzdHJ1Y3Qg
U3RyaW5nV2l0aERpcmVjdGlvbjsKIAogY2xhc3MgSGlzdG9yeUNvbnRyb2xsZXIgewpAQCAtOTIs
MTQgKzk0LDE0IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFBhZ2U7CiAg
ICAgYm9vbCBzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtJikgY29u
c3Q7Ci0gICAgdm9pZCBnb1RvSXRlbShIaXN0b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUpOworICAg
IHZvaWQgZ29Ub0l0ZW0oSGlzdG9yeUl0ZW0mLCBGcmFtZUxvYWRUeXBlLCBOYXZpZ2F0aW9uUG9s
aWN5Q2hlY2spOwogCiAgICAgdm9pZCBpbml0aWFsaXplSXRlbShIaXN0b3J5SXRlbSYpOwogICAg
IFJlZjxIaXN0b3J5SXRlbT4gY3JlYXRlSXRlbSgpOwogICAgIFJlZjxIaXN0b3J5SXRlbT4gY3Jl
YXRlSXRlbVRyZWUoRnJhbWUmIHRhcmdldEZyYW1lLCBib29sIGNsaXBBdFRhcmdldCk7CiAKICAg
ICB2b2lkIHJlY3Vyc2l2ZVNldFByb3Zpc2lvbmFsSXRlbShIaXN0b3J5SXRlbSYsIEhpc3RvcnlJ
dGVtKik7Ci0gICAgdm9pZCByZWN1cnNpdmVHb1RvSXRlbShIaXN0b3J5SXRlbSYsIEhpc3RvcnlJ
dGVtKiwgRnJhbWVMb2FkVHlwZSk7CisgICAgdm9pZCByZWN1cnNpdmVHb1RvSXRlbShIaXN0b3J5
SXRlbSYsIEhpc3RvcnlJdGVtKiwgRnJhbWVMb2FkVHlwZSwgTmF2aWdhdGlvblBvbGljeUNoZWNr
KTsKICAgICBib29sIGlzUmVwbGFjZUxvYWRUeXBlV2l0aFByb3Zpc2lvbmFsSXRlbShGcmFtZUxv
YWRUeXBlKTsKICAgICBib29sIGlzUmVsb2FkVHlwZVdpdGhQcm92aXNpb25hbEl0ZW0oRnJhbWVM
b2FkVHlwZSk7CiAgICAgdm9pZCByZWN1cnNpdmVVcGRhdGVGb3JDb21taXQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uUG9saWN5Q2hlY2suaCBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9uUG9saWN5Q2hlY2suaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjE3
OGVmZGNhOGVkMGRhOGUzOWEyNmRlMmFjNWQ4NmNiM2M4YjY0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmlnYXRpb25Qb2xpY3lDaGVjay5oCkBAIC0wLDAgKzEs
NDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJh
aXRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9s
aWN5Q2hlY2sgeworICAgIFJlcXVpcmUsCisgICAgQnlwYXNzLAorfTsKKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRy
YWl0czxXZWJDb3JlOjpOYXZpZ2F0aW9uUG9saWN5Q2hlY2s+IHsKKyAgICB1c2luZyB2YWx1ZXMg
PSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpOYXZpZ2F0aW9uUG9saWN5Q2hlY2ssCisg
ICAgICAgIFdlYkNvcmU6Ok5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZSwKKyAgICAgICAg
V2ViQ29yZTo6TmF2aWdhdGlvblBvbGljeUNoZWNrOjpCeXBhc3MKKyAgICA+OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAzOTQzYWEyY2RhY2E1MzYzOGI5
OTc2YTliNDY2OWFmYjU4NmU3YTBlLi45NTU4MTQ2NGEzZGQzYTFmNDIwZTg1YTVhNTZjOTQ5OGVk
YjUyZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTQ0Nyw3ICs0NDcsNyBAQCB2b2lkIFBhZ2U6
OnNldE9wZW5lZEJ5RE9NKCkKICAgICBtX29wZW5lZEJ5RE9NID0gdHJ1ZTsKIH0KIAotdm9pZCBQ
YWdlOjpnb1RvSXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSB0eXBlKQordm9p
ZCBQYWdlOjpnb1RvSXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSB0eXBlLCBO
YXZpZ2F0aW9uUG9saWN5Q2hlY2sgbmF2aWdhdGlvblBvbGljeUNoZWNrKQogewogICAgIC8vIHN0
b3BBbGxMb2FkZXJzIG1heSBlbmQgdXAgcnVubmluZyBvbmxvYWQgaGFuZGxlcnMsIHdoaWNoIGNv
dWxkIGNhdXNlIGZ1cnRoZXIgaGlzdG9yeSB0cmF2ZXJzYWxzIHRoYXQgbWF5IGxlYWQgdG8gdGhl
IHBhc3NlZCBpbiBIaXN0b3J5SXRlbQogICAgIC8vIGJlaW5nIGRlcmVmKCktZWQuIE1ha2Ugc3Vy
ZSB3ZSBjYW4gc3RpbGwgdXNlIGl0IHdpdGggSGlzdG9yeUNvbnRyb2xsZXI6OmdvVG9JdGVtIGxh
dGVyLgpAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQgUGFnZTo6Z29Ub0l0ZW0oSGlzdG9yeUl0ZW0m
IGl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSkKICAgICBpZiAobV9tYWluRnJhbWUtPmxvYWRlcigp
Lmhpc3RvcnkoKS5zaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVtKGl0ZW0pKQogICAgICAg
ICBtX21haW5GcmFtZS0+bG9hZGVyKCkuc3RvcEFsbExvYWRlcnMoKTsKIAotICAgIG1fbWFpbkZy
YW1lLT5sb2FkZXIoKS5oaXN0b3J5KCkuZ29Ub0l0ZW0oaXRlbSwgdHlwZSk7CisgICAgbV9tYWlu
RnJhbWUtPmxvYWRlcigpLmhpc3RvcnkoKS5nb1RvSXRlbShpdGVtLCB0eXBlLCBuYXZpZ2F0aW9u
UG9saWN5Q2hlY2spOwogfQogCiB2b2lkIFBhZ2U6OnNldEdyb3VwTmFtZShjb25zdCBTdHJpbmcm
IG5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDlmZGQ0ZDgxZDMxYjU1ODAxYmU3OGJlYTJmOGI1ODk4
OTVlMWU5ZWUuLjkwNzlkOGFhZmQyODA5NWZlNGJkMzQ0MTE4MTRhODA2MzkzYmE3YTIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5oCkBAIC0xNDUsNiArMTQ1LDcgQEAgZW51bSBjbGFzcyBFdmVudFRocm90dGxpbmdC
ZWhhdmlvciB7CiAKIGVudW0gY2xhc3MgQ2FuV3JhcCA6IGJvb2w7CiBlbnVtIGNsYXNzIERpZFdy
YXAgOiBib29sOworZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s7CiAKIGNsYXNzIFBh
Z2UgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8UGFnZT4gewogICAgIFdURl9NQUtFX05PTkNPUFlB
QkxFKFBhZ2UpOwpAQCAtMTgwLDcgKzE4MSw3IEBAIHB1YmxpYzoKICAgICBib29sIG9wZW5lZEJ5
RE9NKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRPcGVuZWRCeURPTSgpOwogCi0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBnb1RvSXRlbShIaXN0b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgZ29Ub0l0ZW0oSGlzdG9yeUl0ZW0mLCBGcmFtZUxvYWRUeXBlLCBO
YXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRHcm91
cE5hbWUoY29uc3QgU3RyaW5nJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgY29uc3QgU3RyaW5nJiBn
cm91cE5hbWUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJr
aXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
CmluZGV4IGMwYjMwZDM2Nzc5MDZlZjMxYmVhYTg5NTMxZjVlYWNmMGY1NjcwZmIuLjgyMDc4MGI4
OWVhNDZhMDYxZTk2YjEzM2U1ZGE0Zjk3ZjRjZTkwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRz
L3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMzcyLDYgKzM3Miw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90
eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzJzogWyc8V2Vi
Q29yZS9BdXRvcGxheUV2ZW50Lmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpFeGNlcHRpb25EZXRh
aWxzJzogWyc8V2ViQ29yZS9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmg+J10sCiAgICAgICAgICdX
ZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzJzogWyc8V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPidd
LAorICAgICAgICAnV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSc6IFsnPFdlYkNvcmUvRnJhbWVMb2Fk
ZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6R3JhbW1hckRldGFpbCc6IFsnPFdlYkNv
cmUvVGV4dENoZWNrZXJDbGllbnQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6Okhhc0luc2VjdXJl
Q29udGVudCc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6SGlnaGxpZ2h0JzogWyc8V2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5Lmg+J10sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmNwcAppbmRleCBiMGFhZTU5YWIwZWJjMjkwYTVlNTk0
YTU0OWE4M2MzOTRiMTk4YWE5Li45MTFkMmU3Mzc3OGM5ZWY1YWE4ZjViMzIzOWNkYmM4ZDU0MTI2
MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5jcHAKQEAgLTI4LDYgKzI4LDgg
QEAKIAogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgogCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGJvb2wgaXNWYWxpZEVudW0oV2Vi
Q29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSBwb2xpY3kpCkBAIC0xODQsOCArMTg2
LDExIEBAIHN0ZDo6b3B0aW9uYWw8RnJhbWVTdGF0ZT4gRnJhbWVTdGF0ZTo6ZGVjb2RlKElQQzo6
RGVjb2RlciYgZGVjb2RlcikKIAogdm9pZCBQYWdlU3RhdGU6OmVuY29kZShJUEM6OkVuY29kZXIm
IGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCB0aXRsZTsKLSAgICBlbmNvZGVyIDw8
IG1haW5GcmFtZVN0YXRlOworICAgIGVuY29kZXIgPDwgdGl0bGUgPDwgbWFpbkZyYW1lU3RhdGUg
PDwgISFzZXNzaW9uU3RhdGVPYmplY3Q7CisKKyAgICBpZiAoc2Vzc2lvblN0YXRlT2JqZWN0KQor
ICAgICAgICBlbmNvZGVyIDw8IHNlc3Npb25TdGF0ZU9iamVjdC0+dG9XaXJlQnl0ZXMoKTsKKwog
ICAgIGVuY29kZXIuZW5jb2RlRW51bShzaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKIH0K
IApAQCAtMTk4LDYgKzIwMywxOSBAQCBib29sIFBhZ2VTdGF0ZTo6ZGVjb2RlKElQQzo6RGVjb2Rl
ciYgZGVjb2RlciwgUGFnZVN0YXRlJiByZXN1bHQpCiAgICAgaWYgKCFtYWluRnJhbWVTdGF0ZSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJlc3VsdC5tYWluRnJhbWVTdGF0ZSA9IFdURk1v
dmUoKm1haW5GcmFtZVN0YXRlKTsKKworICAgIGJvb2wgaGFzU2Vzc2lvblN0YXRlOworICAgIGlm
ICghZGVjb2Rlci5kZWNvZGUoaGFzU2Vzc2lvblN0YXRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgaWYgKGhhc1Nlc3Npb25TdGF0ZSkgeworICAgICAgICBWZWN0b3I8dWludDhfdD4g
d2lyZUJ5dGVzOworICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHdpcmVCeXRlcykpCisgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgcmVzdWx0LnNlc3Npb25TdGF0ZU9iamVj
dCA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlRnJvbVdpcmVCeXRlcyhXVEZNb3ZlKHdp
cmVCeXRlcykpOworICAgIH0KKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5z
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KSB8fCAhaXNWYWxpZEVudW0ocmVzdWx0LnNob3Vs
ZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nlc3Npb25TdGF0ZS5oIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKaW5kZXggYzM1NGJkNzMzYjk4NWZiMzJhMTg2ZTQ2MGRl
NTAxMDJhYjVlZDhlOS4uMTQ4MjE0NDVjODdmZTQzMzU1Nzk2MmJjYjM0OTkzZTUxZDJmMmFmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxNC0yMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJp
YWxpemVkU2NyaXB0VmFsdWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VSTC5oPgogI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTExOSw2ICsxMjAs
NyBAQCBzdHJ1Y3QgUGFnZVN0YXRlIHsKICAgICBTdHJpbmcgdGl0bGU7CiAgICAgRnJhbWVTdGF0
ZSBtYWluRnJhbWVTdGF0ZTsKICAgICBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9s
aWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kgeyBXZWJDb3JlOjpTaG91bGRPcGVuRXh0
ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RBbGxvdyB9OworICAgIFJlZlB0cjxXZWJDb3JlOjpT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlc3Npb25TdGF0ZU9iamVjdDsKIH07CiAKIHN0cnVjdCBC
YWNrRm9yd2FyZExpc3RJdGVtU3RhdGUgewpAQCAtMTMxLDcgKzEzMyw2IEBAIHN0cnVjdCBCYWNr
Rm9yd2FyZExpc3RJdGVtU3RhdGUgewogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJlZlB0cjxW
aWV3U25hcHNob3Q+IHNuYXBzaG90OwogI2VuZGlmCi0KIH07CiAKIHN0cnVjdCBCYWNrRm9yd2Fy
ZExpc3RTdGF0ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
TmF2aWdhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlv
bi5jcHAKaW5kZXggYjdmNjk4ZWFiMmRjZDFkOTYzZWY4ZGI4OWI0MDgwNWJlNWE0NDQyMy4uYmVh
MzMzZTlmNDRiYzFkYTlkODJhOTRiMTUxMzhmNTFlMjZmMWYzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmNwcApAQCAtMjYsMjIgKzI2LDMzIEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5oIgogCisjaW5jbHVk
ZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5oIgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25TdGF0
ZS5oIgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CisKIG5hbWVzcGFjZSBBUEkgewogCi1OYXZpZ2F0aW9uOjpOYXZpZ2F0aW9uKFdlYktpdDo6V2Vi
TmF2aWdhdGlvblN0YXRlJiBzdGF0ZSkKK05hdmlnYXRpb246Ok5hdmlnYXRpb24oV2ViTmF2aWdh
dGlvblN0YXRlJiBzdGF0ZSkKICAgICA6IG1fbmF2aWdhdGlvbklEKHN0YXRlLmdlbmVyYXRlTmF2
aWdhdGlvbklEKCkpCiB7CiB9CiAKLU5hdmlnYXRpb246Ok5hdmlnYXRpb24oV2ViS2l0OjpXZWJO
YXZpZ2F0aW9uU3RhdGUmIHN0YXRlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
KQorTmF2aWdhdGlvbjo6TmF2aWdhdGlvbihXZWJOYXZpZ2F0aW9uU3RhdGUmIHN0YXRlLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogICAgIDogbV9uYXZpZ2F0aW9uSUQoc3Rh
dGUuZ2VuZXJhdGVOYXZpZ2F0aW9uSUQoKSkKICAgICAsIG1fcmVxdWVzdChXVEZNb3ZlKHJlcXVl
c3QpKQogewogICAgIG1fcmVkaXJlY3RDaGFpbi5hcHBlbmQobV9yZXF1ZXN0LnVybCgpKTsKIH0K
IAorTmF2aWdhdGlvbjo6TmF2aWdhdGlvbihXZWJOYXZpZ2F0aW9uU3RhdGUmIHN0YXRlLCBXZWJC
YWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtLCBGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkRnJhbWVM
b2FkVHlwZSkKKyAgICA6IG1fbmF2aWdhdGlvbklEKHN0YXRlLmdlbmVyYXRlTmF2aWdhdGlvbklE
KCkpCisgICAgLCBtX2JhY2tGb3J3YXJkTGlzdEl0ZW0oJml0ZW0pCisgICAgLCBtX2JhY2tGb3J3
YXJkRnJhbWVMb2FkVHlwZShiYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUpCit7Cit9CisKIE5hdmln
YXRpb246On5OYXZpZ2F0aW9uKCkKIHsKIH0KQEAgLTUyLDQgKzYzLDExIEBAIHZvaWQgTmF2aWdh
dGlvbjo6YXBwZW5kUmVkaXJlY3Rpb25VUkwoY29uc3QgV2ViQ29yZTo6VVJMJiB1cmwpCiAgICAg
ICAgIG1fcmVkaXJlY3RDaGFpbi5hcHBlbmQodXJsKTsKIH0KIAorI2lmICFMT0dfRElTQUJMRUQK
K1dURjo6U3RyaW5nIE5hdmlnYXRpb246OmxvZ2dpbmdVUkwoKSBjb25zdAoreworICAgIHJldHVy
biBtX2JhY2tGb3J3YXJkTGlzdEl0ZW0gPyBtX2JhY2tGb3J3YXJkTGlzdEl0ZW0tPnVybCgpIDog
bV9yZXF1ZXN0LnVybCgpLnN0cmluZygpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRp
b24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmgKaW5kZXgg
NDRmZjUwY2M2ODg0NmE1YzBjZjJlNmY4YThjOGY1ZTgxZTg0OTFhNi4uZjFmODk1NzA4ZDQ5ODgw
OWRjNjNjMzlhZjI0MjQxMjVlOWUzYTQxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJTmF2aWdhdGlvbi5oCkBAIC0yOSw3ICsyOSwxMiBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
UmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZi5oPgogCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitlbnVtIGNsYXNzIEZyYW1lTG9hZFR5cGU7Cit9OworCiBuYW1lc3BhY2UgV2ViS2l0
IHsKK2NsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBXZWJOYXZpZ2F0aW9uU3Rh
dGU7CiB9CiAKQEAgLTQzLDYgKzQ4LDExIEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgTmF2aWdhdGlvbihzdGF0ZSkpOwogICAgIH0KIAorICAgIHN0YXRpYyBSZWY8TmF2
aWdhdGlvbj4gY3JlYXRlKFdlYktpdDo6V2ViTmF2aWdhdGlvblN0YXRlJiBzdGF0ZSwgV2ViS2l0
OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtLCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJh
Y2tGb3J3YXJkRnJhbWVMb2FkVHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigq
bmV3IE5hdmlnYXRpb24oc3RhdGUsIGl0ZW0sIGJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSkpOwor
ICAgIH0KKwogICAgIHN0YXRpYyBSZWY8TmF2aWdhdGlvbj4gY3JlYXRlKFdlYktpdDo6V2ViTmF2
aWdhdGlvblN0YXRlJiBzdGF0ZSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5hdmlnYXRpb24oc3RhdGUsIFdU
Rk1vdmUocmVxdWVzdCkpKTsKQEAgLTUzLDYgKzYzLDggQEAgcHVibGljOgogICAgIHVpbnQ2NF90
IG5hdmlnYXRpb25JRCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF2aWdhdGlvbklEOyB9CiAKICAgICBj
b25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBt
X3JlcXVlc3Q7IH0KKyAgICBXZWJLaXQ6OldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGJhY2tGb3J3
YXJkTGlzdEl0ZW0oKSB7IHJldHVybiBtX2JhY2tGb3J3YXJkTGlzdEl0ZW0uZ2V0KCk7IH0KKyAg
ICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lTG9hZFR5cGU+IGJhY2tGb3J3YXJkRnJhbWVM
b2FkVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBlOyB9CiAK
ICAgICB2b2lkIGFwcGVuZFJlZGlyZWN0aW9uVVJMKGNvbnN0IFdlYkNvcmU6OlVSTCYpOwogICAg
IFZlY3RvcjxXZWJDb3JlOjpVUkw+IHRha2VSZWRpcmVjdENoYWluKCkgeyByZXR1cm4gV1RGTW92
ZShtX3JlZGlyZWN0Q2hhaW4pOyB9CkBAIC02MywxNSArNzUsMjMgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0U2hvdWxkRm9yY2VEb3dubG9hZChib29sIHZhbHVlKSB7IG1fc2hvdWxkRm9yY2VEb3du
bG9hZCA9IHZhbHVlOyB9CiAgICAgYm9vbCBzaG91bGRGb3JjZURvd25sb2FkKCkgY29uc3QgeyBy
ZXR1cm4gbV9zaG91bGRGb3JjZURvd25sb2FkOyB9CiAKKyNpZiAhTE9HX0RJU0FCTEVECisgICAg
V1RGOjpTdHJpbmcgbG9nZ2luZ1VSTCgpIGNvbnN0OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgTmF2aWdhdGlvbihXZWJLaXQ6OldlYk5hdmlnYXRpb25TdGF0ZSYpOwogICAgIE5h
dmlnYXRpb24oV2ViS2l0OjpXZWJOYXZpZ2F0aW9uU3RhdGUmLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJik7CisgICAgTmF2aWdhdGlvbihXZWJLaXQ6OldlYk5hdmlnYXRpb25TdGF0ZSYsIFdl
YktpdDo6V2ViQmFja0ZvcndhcmRMaXN0SXRlbSYsIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUpOwog
CiAgICAgdWludDY0X3QgbV9uYXZpZ2F0aW9uSUQ7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0IG1fcmVxdWVzdDsKICAgICBWZWN0b3I8V2ViQ29yZTo6VVJMPiBtX3JlZGlyZWN0Q2hhaW47
CiAgICAgYm9vbCBtX3dhc1VzZXJJbml0aWF0ZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX3Nob3Vs
ZEZvcmNlRG93bmxvYWQgeyBmYWxzZSB9OworCisgICAgUmVmUHRyPFdlYktpdDo6V2ViQmFja0Zv
cndhcmRMaXN0SXRlbT4gbV9iYWNrRm9yd2FyZExpc3RJdGVtOworICAgIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVMb2FkVHlwZT4gbV9iYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGU7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2Uu
Y3BwCmluZGV4IDk3ZTk5ODI2MDEzMmUzNzQ4MTczMTY3NDZhMzI4Y2JlNDhiOWFmYWYuLjZhNjU1
ZmQyODIyNjQ0MWRkMDY2ZWQwYmJiN2RkMGZlODc0MzI5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMzA1LDcgKzMwNSw3IEBAIGJvb2wgV0tQYWdlQ2Fu
R29CYWNrKFdLUGFnZVJlZiBwYWdlUmVmKQogCiB2b2lkIFdLUGFnZUdvVG9CYWNrRm9yd2FyZExp
c3RJdGVtKFdLUGFnZVJlZiBwYWdlUmVmLCBXS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbVJl
ZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZiktPmdvVG9CYWNrRm9yd2FyZEl0ZW0odG9JbXBsKGl0
ZW1SZWYpKTsKKyAgICB0b0ltcGwocGFnZVJlZiktPmdvVG9CYWNrRm9yd2FyZEl0ZW0oKnRvSW1w
bChpdGVtUmVmKSk7CiB9CiAKIHZvaWQgV0tQYWdlVHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKFdL
UGFnZVJlZiBwYWdlUmVmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0KaW5kZXggYjdl
NWU2OTJjODMwNjcyYmUwMGUxZTYxMDg1ZjM1ZWRiMzRmOTdiMC4uODFlNGU1MjMxYjhlMDBlMWI2
NmEwODkxOWQwYjUyZDNkNjQ1YjVlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1t
CkBAIC0yNDEsNyArMjQxLDcgQEAgc3RhdGljIEhhc2hNYXA8V2ViUGFnZVByb3h5KiwgV0tCcm93
c2luZ0NvbnRleHRDb250cm9sbGVyICo+JiBicm93c2luZ0NvbnRleHRDb24KIAogLSAodm9pZCln
b1RvQmFja0ZvcndhcmRMaXN0SXRlbTooV0tCYWNrRm9yd2FyZExpc3RJdGVtICopaXRlbQogewot
ICAgIF9wYWdlLT5nb1RvQmFja0ZvcndhcmRJdGVtKCZpdGVtLl9pdGVtKTsKKyAgICBfcGFnZS0+
Z29Ub0JhY2tGb3J3YXJkSXRlbShpdGVtLl9pdGVtKTsKIH0KIAogLSAoV0tCYWNrRm9yd2FyZExp
c3QgKiliYWNrRm9yd2FyZExpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tCmluZGV4IDE4YjJiYzFlYmQwNzFjZWYwZGMwNmJkZjcxNTgzNDUzZWZj
ZmU4NTQuLmY5YTYyYmQ0ZTQ3MTA1ZjZkNGE5NWM1OGQ3YzlkNjE2NTA0ZWI5YTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtOTA3LDcg
KzkwNyw3IEBAIHN0YXRpYyB2b2lkIHZhbGlkYXRlKFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNv
bmZpZ3VyYXRpb24pCiAKIC0gKFdLTmF2aWdhdGlvbiAqKWdvVG9CYWNrRm9yd2FyZExpc3RJdGVt
OihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilpdGVtCiB7Ci0gICAgYXV0byBuYXZpZ2F0aW9uID0g
X3BhZ2UtPmdvVG9CYWNrRm9yd2FyZEl0ZW0oJml0ZW0uX2l0ZW0pOworICAgIGF1dG8gbmF2aWdh
dGlvbiA9IF9wYWdlLT5nb1RvQmFja0ZvcndhcmRJdGVtKGl0ZW0uX2l0ZW0pOwogICAgIGlmICgh
bmF2aWdhdGlvbikKICAgICAgICAgcmV0dXJuIG5pbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCBhMjdmOWVjMzE5Mjlj
OWUxOTEyNzczNWEzZmQxNWVmNWY5M2VhZDYyLi5iOWJlMzljZmY1MDk5MDM0MDMwMmZmMmUyZGI5
MjY4YzZmYTUzZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMzAzMCw3ICszMDMwLDcgQEAgdm9pZCB3ZWJraXRfd2Vi
X3ZpZXdfZ29fdG9fYmFja19mb3J3YXJkX2xpc3RfaXRlbShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
LCBXZWJLaXQKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3
KSk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfQkFDS19GT1JXQVJEX0xJU1RfSVRF
TShsaXN0SXRlbSkpOwogCi0gICAgZ2V0UGFnZSh3ZWJWaWV3KS5nb1RvQmFja0ZvcndhcmRJdGVt
KHdlYmtpdEJhY2tGb3J3YXJkTGlzdEl0ZW1HZXRJdGVtKGxpc3RJdGVtKSk7CisgICAgZ2V0UGFn
ZSh3ZWJWaWV3KS5nb1RvQmFja0ZvcndhcmRJdGVtKCp3ZWJraXRCYWNrRm9yd2FyZExpc3RJdGVt
R2V0SXRlbShsaXN0SXRlbSkpOwogfQogCiAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYk5hdmlnYXRpb25TdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJOYXZpZ2F0aW9uU3RhdGUuY3BwCmluZGV4IDQ4ZjkzNDU5ZTlhMTY4NTBlZDI3OTBhZDBj
ZDc0ZjFlYjk5ZTM2ZTQuLjMxYTcwN2IyZTY4NGJlZDkzMDliNzMyY2IzZTgxZDRmM2FlZjZmYzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25TdGF0ZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmNwcApA
QCAtMzAsNiArMzAsOCBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViTmF2aWdhdGlvblN0YXRlOjpXZWJOYXZpZ2F0aW9uU3Rh
dGUoKQpAQCAtNDAsNyArNDIsNyBAQCBXZWJOYXZpZ2F0aW9uU3RhdGU6On5XZWJOYXZpZ2F0aW9u
U3RhdGUoKQogewogfQogCi1SZWY8QVBJOjpOYXZpZ2F0aW9uPiBXZWJOYXZpZ2F0aW9uU3RhdGU6
OmNyZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlvbihXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0KQorUmVmPEFQSTo6TmF2aWdhdGlvbj4gV2ViTmF2aWdhdGlvblN0YXRlOjpjcmVhdGVM
b2FkUmVxdWVzdE5hdmlnYXRpb24oUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKIHsKICAgICBh
dXRvIG5hdmlnYXRpb24gPSBBUEk6Ok5hdmlnYXRpb246OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShy
ZXF1ZXN0KSk7CiAKQEAgLTQ5LDkgKzUxLDkgQEAgUmVmPEFQSTo6TmF2aWdhdGlvbj4gV2ViTmF2
aWdhdGlvblN0YXRlOjpjcmVhdGVMb2FkUmVxdWVzdE5hdmlnYXRpb24oV2ViQ29yZTo6UmUKICAg
ICByZXR1cm4gbmF2aWdhdGlvbjsKIH0KIAotUmVmPEFQSTo6TmF2aWdhdGlvbj4gV2ViTmF2aWdh
dGlvblN0YXRlOjpjcmVhdGVCYWNrRm9yd2FyZE5hdmlnYXRpb24oKQorUmVmPEFQSTo6TmF2aWdh
dGlvbj4gV2ViTmF2aWdhdGlvblN0YXRlOjpjcmVhdGVCYWNrRm9yd2FyZE5hdmlnYXRpb24oV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBmcmFtZUxvYWRUeXBlKQog
ewotICAgIGF1dG8gbmF2aWdhdGlvbiA9IEFQSTo6TmF2aWdhdGlvbjo6Y3JlYXRlKCp0aGlzKTsK
KyAgICBhdXRvIG5hdmlnYXRpb24gPSBBUEk6Ok5hdmlnYXRpb246OmNyZWF0ZSgqdGhpcywgaXRl
bSwgZnJhbWVMb2FkVHlwZSk7CiAKICAgICBtX25hdmlnYXRpb25zLnNldChuYXZpZ2F0aW9uLT5u
YXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5wdHIoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25TdGF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmgKaW5kZXggNDVhYjJkMmJjN2NiNjAwYWY5MzY0ZDhi
MjViMmQ3ZmM0YTliM2U5My4uMGUxMmYzZjgwMTFhYWRhM2U4NjMzOWE5OTNlY2NjZDhmMjcxZThh
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmgKQEAg
LTM0LDYgKzM0LDggQEAgY2xhc3MgTmF2aWdhdGlvbjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgUmVzb3VyY2VSZXF1ZXN0OworCitlbnVtIGNsYXNzIEZyYW1lTG9hZFR5cGU7CiB9CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDYsNyArNDgsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgV2ViTmF2aWdhdGlvblN0YXRlKCk7CiAgICAgfldlYk5hdmlnYXRpb25TdGF0ZSgpOwogCi0g
ICAgUmVmPEFQSTo6TmF2aWdhdGlvbj4gY3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKCk7Cisg
ICAgUmVmPEFQSTo6TmF2aWdhdGlvbj4gY3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0mLCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlKTsKICAgICBSZWY8QVBJ
OjpOYXZpZ2F0aW9uPiBjcmVhdGVMb2FkUmVxdWVzdE5hdmlnYXRpb24oV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYpOwogICAgIFJlZjxBUEk6Ok5hdmlnYXRpb24+IGNyZWF0ZVJlbG9hZE5hdmln
YXRpb24oKTsKICAgICBSZWY8QVBJOjpOYXZpZ2F0aW9uPiBjcmVhdGVMb2FkRGF0YU5hdmlnYXRp
b24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDI3MmQ2
MzkwMWNkYWI4ZmVhYmJhMDA2NjA2YTJmMjdhNWZmN2IyN2QuLjg4Yzc1ODU5OGUxYjdlYWNhZWJm
NGYwMjVhNzA3NTZkYmIyMDllZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtMTI2LDExICsxMjYsMTMgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TmFt
ZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
Rm9jdXNEaXJlY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9KU0RPTUJpbmRpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NRXhj
ZXB0aW9uSGFuZGxpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xlbmd0aEJveC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3RyeS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFT
dHJlYW1SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9OYXZpZ2F0aW9uUG9saWN5Q2hlY2su
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1BlcmZvcm1hbmNlTG9nZ2luZ0NsaWVudC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUHVibGljU3VmZml4Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJFbWJl
ZGRlZE9iamVjdC5oPgpAQCAtNzEzLDEzICs3MTUsMTMgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlv
bj4gV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2ViUHJvY2Vzc0ZvclJlbG9hZCgpCiAgICAgYXV0
byBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZVJlbG9hZE5hdmlnYXRpb24o
KTsKIAogICAgIC8vIFdlIGFsbG93IHN0YWxlIGNvbnRlbnQgd2hlbiByZWxvYWRpbmcgYSBXZWJQ
cm9jZXNzIHRoYXQncyBiZWVuIGtpbGxlZCBvciBjcmFzaGVkLgotICAgIG1fcHJvY2Vzcy0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLT5uYXZp
Z2F0aW9uSUQoKSwgbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCktPml0ZW1JRCgpKSwg
bV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0Jh
Y2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgbV9iYWNrRm9yd2FyZExp
c3QtPmN1cnJlbnRJdGVtKCktPml0ZW1JRCgpLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0Zv
cndhcmQsIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6UmVxdWlyZSksIG1fcGFnZUlEKTsKICAgICBt
X3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOwogCiAgICAgcmV0dXJuIFdU
Rk1vdmUobmF2aWdhdGlvbik7CiB9CiAKLVJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQ
cm94eTo6cmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVt
KiBpdGVtKQorUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRv
V2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0pCiB7CiAgICAg
aWYgKG1faXNDbG9zZWQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNzI3LDE1ICs3Mjks
MTIgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2Vi
UHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3YXIKICAgICBBU1NFUlQoIWlzVmFsaWQoKSk7CiAg
ICAgcmVhdHRhY2hUb1dlYlByb2Nlc3MoKTsKIAotICAgIGlmICghaXRlbSkKLSAgICAgICAgcmV0
dXJuIG51bGxwdHI7CisgICAgaWYgKCZpdGVtICE9IG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50
SXRlbSgpKQorICAgICAgICBtX2JhY2tGb3J3YXJkTGlzdC0+Z29Ub0l0ZW0oaXRlbSk7CiAKLSAg
ICBpZiAoaXRlbSAhPSBtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKSkKLSAgICAgICAg
bV9iYWNrRm9yd2FyZExpc3QtPmdvVG9JdGVtKCppdGVtKTsKKyAgICBhdXRvIG5hdmlnYXRpb24g
PSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKGl0ZW0sIEZy
YW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCk7CiAKLSAgICBhdXRvIG5hdmlnYXRpb24g
PSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKCk7Ci0KLSAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0o
bmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCksIGl0ZW0tPml0ZW1JRCgpKSwgbV9wYWdlSUQpOwor
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRl
bShuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgaXRlbS5pdGVtSUQoKSwgRnJhbWVMb2FkVHlw
ZTo6SW5kZXhlZEJhY2tGb3J3YXJkLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2s6OlJlcXVpcmUpLCBt
X3BhZ2VJRCk7CiAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsK
IAogICAgIHJldHVybiBXVEZNb3ZlKG5hdmlnYXRpb24pOwpAQCAtMTE4NCwyMSArMTE4Myw3IEBA
IFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6Z29Gb3J3YXJkKCkKICAgICBp
ZiAoIWZvcndhcmRJdGVtKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gdHJh
bnNhY3Rpb24gPSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNhY3Rpb24oKTsKLQotICAgIG1fcGFnZUxv
YWRTdGF0ZS5zZXRQZW5kaW5nQVBJUmVxdWVzdFVSTCh0cmFuc2FjdGlvbiwgZm9yd2FyZEl0ZW0t
PnVybCgpKTsKLQotICAgIGlmICghaXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gcmVhdHRhY2hU
b1dlYlByb2Nlc3NXaXRoSXRlbShmb3J3YXJkSXRlbSk7Ci0KLSAgICBSZWZQdHI8QVBJOjpOYXZp
Z2F0aW9uPiBuYXZpZ2F0aW9uOwotICAgIGlmICghbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJ
dGVtKCktPml0ZW1Jc0luU2FtZURvY3VtZW50KCpmb3J3YXJkSXRlbSkpCi0gICAgICAgIG5hdmln
YXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKCk7
Ci0KLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdvRm9yd2FyZChuYXZp
Z2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCBmb3J3YXJkSXRlbS0+aXRl
bUlEKCkpLCBtX3BhZ2VJRCk7Ci0gICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCku
c3RhcnQoKTsKLQotICAgIHJldHVybiBuYXZpZ2F0aW9uOworICAgIHJldHVybiBnb1RvQmFja0Zv
cndhcmRJdGVtKCpmb3J3YXJkSXRlbSwgRnJhbWVMb2FkVHlwZTo6Rm9yd2FyZCk7CiB9CiAKIFJl
ZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6Z29CYWNrKCkKQEAgLTEyMDcsMzcg
KzExOTIsMzAgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpnb0JhY2so
KQogICAgIGlmICghYmFja0l0ZW0pCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0
byB0cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlvbigpOwotCi0gICAgbV9w
YWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0VVJMKHRyYW5zYWN0aW9uLCBiYWNrSXRl
bS0+dXJsKCkpOwotCi0gICAgaWYgKCFpc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiByZWF0dGFj
aFRvV2ViUHJvY2Vzc1dpdGhJdGVtKGJhY2tJdGVtKTsKLQotICAgIFJlZlB0cjxBUEk6Ok5hdmln
YXRpb24+IG5hdmlnYXRpb247Ci0gICAgaWYgKCFtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0
ZW0oKS0+aXRlbUlzSW5TYW1lRG9jdW1lbnQoKmJhY2tJdGVtKSkKLSAgICAgICAgbmF2aWdhdGlv
biA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVhdGVCYWNrRm9yd2FyZE5hdmlnYXRpb24oKTsKLQot
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29CYWNrKG5hdmlnYXRpb24g
PyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSA6IDAsIGJhY2tJdGVtLT5pdGVtSUQoKSksIG1f
cGFnZUlEKTsKLSAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOwor
ICAgIHJldHVybiBnb1RvQmFja0ZvcndhcmRJdGVtKCpiYWNrSXRlbSwgRnJhbWVMb2FkVHlwZTo6
QmFjayk7Cit9CiAKLSAgICByZXR1cm4gbmF2aWdhdGlvbjsKK1JlZlB0cjxBUEk6Ok5hdmlnYXRp
b24+IFdlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtJiBpdGVtKQoreworICAgIHJldHVybiBnb1RvQmFja0ZvcndhcmRJdGVtKGl0ZW0sIEZyYW1l
TG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCk7CiB9CiAKLVJlZlB0cjxBUEk6Ok5hdmlnYXRp
b24+IFdlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtKiBpdGVtKQorUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpnb1RvQmFj
a0ZvcndhcmRJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0sIEZyYW1lTG9hZFR5cGUg
ZnJhbWVMb2FkVHlwZSkKIHsKKyAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94eSAlcCBnb1Rv
QmFja0ZvcndhcmRJdGVtIHRvIGJhY2sgaXRlbSBVUkwgJXMiLCB0aGlzLCBpdGVtLnVybCgpLnV0
ZjgoKS5kYXRhKCkpOworCiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiByZWF0
dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKGl0ZW0pOwogCiAgICAgYXV0byB0cmFuc2FjdGlvbiA9
IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlvbigpOwogCi0gICAgbV9wYWdlTG9hZFN0YXRlLnNl
dFBlbmRpbmdBUElSZXF1ZXN0VVJMKHRyYW5zYWN0aW9uLCBpdGVtLT51cmwoKSk7CisgICAgbV9w
YWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0VVJMKHRyYW5zYWN0aW9uLCBpdGVtLnVy
bCgpKTsKIAogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247Ci0gICAgaWYg
KCFtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKS0+aXRlbUlzSW5TYW1lRG9jdW1lbnQo
Kml0ZW0pKQotICAgICAgICBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUJh
Y2tGb3J3YXJkTmF2aWdhdGlvbigpOworICAgIGlmICghbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJl
bnRJdGVtKCktPml0ZW1Jc0luU2FtZURvY3VtZW50KGl0ZW0pKQorICAgICAgICBuYXZpZ2F0aW9u
ID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUJhY2tGb3J3YXJkTmF2aWdhdGlvbihpdGVtLCBm
cmFtZUxvYWRUeXBlKTsKIAotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6
R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklE
KCkgOiAwLCBpdGVtLT5pdGVtSUQoKSksIG1fcGFnZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbiA/IG5hdmln
YXRpb24tPm5hdmlnYXRpb25JRCgpIDogMCwgaXRlbS5pdGVtSUQoKSwgZnJhbWVMb2FkVHlwZSwg
TmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKSwgbV9wYWdlSUQpOwogICAgIG1fcHJvY2Vz
cy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0YXJ0KCk7CiAKICAgICByZXR1cm4gbmF2aWdhdGlv
bjsKQEAgLTIzNzUsNiArMjM1Myw4IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGlj
eURlY2lzaW9uKFBvbGljeUFjdGlvbiBhY3Rpb24sIFdlYkZyYW1lUHJveHkmIGZyCiAgICAgICAg
IGlmIChhY3Rpb24gPT0gUG9saWN5QWN0aW9uOjpVc2UgJiYgbmF2aWdhdGlvbikgewogICAgICAg
ICAgICAgYXV0byBwcm9wb3NlZFByb2Nlc3MgPSBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5wcm9j
ZXNzRm9yTmF2aWdhdGlvbigqdGhpcywgbmF2aWdhdGlvbi0+cmVxdWVzdCgpLnVybCgpKTsKICAg
ICAgICAgICAgIGlmIChwcm9wb3NlZFByb2Nlc3MucHRyKCkgIT0gJnByb2Nlc3MoKSkgeworICAg
ICAgICAgICAgICAgIExPRyhMb2FkaW5nLCAiU3dpdGNoaW5nIHRvIG5ldyBwcm9jZXNzIGZvciBu
YXZpZ2F0aW9uICUiIFBSSXU2NCAiIHRvIHVybCAnJXMnIChXZWJCYWNrRm9yd2FyZExpc3RJdGVt
ICVwKSIsIG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9uLT5sb2dnaW5nVVJM
KCkudXRmOCgpLmRhdGEoKSwgbmF2aWdhdGlvbi0+YmFja0ZvcndhcmRMaXN0SXRlbSgpKTsKKwog
ICAgICAgICAgICAgICAgIGFjdGlvbiA9IFBvbGljeUFjdGlvbjo6U3VzcGVuZDsKICAgICAgICAg
ICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgbmF2aWdhdGlvbiA9IG1ha2VSZWYoKm5hdmlnYXRpb24pLCBwcm9wb3Nl
ZFByb2Nlc3MgPSBXVEZNb3ZlKHByb3Bvc2VkUHJvY2VzcyldKCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICAgICAgICAgIGNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2VzcyhuYXZpZ2F0aW9uLmdl
dCgpLCBXVEZNb3ZlKHByb3Bvc2VkUHJvY2VzcykpOwpAQCAtMjM4OCwxMCArMjM2OCwyMiBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gYWN0
aW9uLCBXZWJGcmFtZVByb3h5JiBmcgogCiB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZp
Z2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2aWdhdGlvbiYgbmF2aWdhdGlvbiwgUmVmPFdlYlBy
b2Nlc3NQcm94eT4mJiBwcm9jZXNzKQogewotICAgIExPRyhMb2FkaW5nLCAiQ29udGludWluZyBu
YXZpZ2F0aW9uICUiIFBSSXU2NCAiIHRvIFVSTCAlcyBpbiBhIG5ldyB3ZWIgcHJvY2VzcyIsIG5h
dmlnYXRpb24ubmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24ucmVxdWVzdCgpLnVybCgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIExPRyhMb2FkaW5nLCAiQ29udGludWluZyBuYXZpZ2F0
aW9uICUiIFBSSXU2NCAiIHRvIFVSTCAlcyBpbiBhIG5ldyB3ZWIgcHJvY2VzcyIsIG5hdmlnYXRp
b24ubmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb24ubG9nZ2luZ1VSTCgpLnV0ZjgoKS5kYXRhKCkp
OwogCiAgICAgYXR0YWNoVG9Qcm9jZXNzRm9yTmF2aWdhdGlvbihXVEZNb3ZlKHByb2Nlc3MpKTsK
IAorICAgIGlmIChhdXRvKiBpdGVtID0gbmF2aWdhdGlvbi5iYWNrRm9yd2FyZExpc3RJdGVtKCkp
IHsKKyAgICAgICAgaWYgKGl0ZW0gIT0gbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCkp
CisgICAgICAgICAgICBtX2JhY2tGb3J3YXJkTGlzdC0+Z29Ub0l0ZW0oKml0ZW0pOworCisgICAg
ICAgIEFTU0VSVChuYXZpZ2F0aW9uLmJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSgpKTsKKyAgICAg
ICAgQVNTRVJUKGlzQmFja0ZvcndhcmRMb2FkVHlwZSgqbmF2aWdhdGlvbi5iYWNrRm9yd2FyZEZy
YW1lTG9hZFR5cGUoKSkpOworCisgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCBpdGVt
LT5pdGVtSUQoKSwgKm5hdmlnYXRpb24uYmFja0ZvcndhcmRGcmFtZUxvYWRUeXBlKCksIE5hdmln
YXRpb25Qb2xpY3lDaGVjazo6QnlwYXNzKSwgbV9wYWdlSUQpOworCisgICAgICAgIHJldHVybjsK
KyAgICB9CisKICAgICAvLyBGSVhNRTogV29yayBvdXQgdGltaW5nIG9mIHJlc3BvbmRpbmcgd2l0
aCB0aGUgbGFzdCBwb2xpY3kgZGVsZWdhdGUsIGV0YwogICAgIGxvYWRSZXF1ZXN0V2l0aE5hdmln
YXRpb24obmF2aWdhdGlvbiwgUmVzb3VyY2VSZXF1ZXN0IHsgbmF2aWdhdGlvbi5yZXF1ZXN0KCkg
fSwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3dFeHRl
cm5hbFNjaGVtZXMsIG51bGxwdHIsIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6QnlwYXNzKTsKIH0K
QEAgLTI1MjgsOSArMjUyMCw4IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94
eTo6cmVzdG9yZUZyb21TZXNzaW9uU3RhdGUoU2Vzc2lvblN0YXRlIHNlc3NpCiAgICAgICAgICAg
ICByZXR1cm4gbG9hZFJlcXVlc3Qoc2Vzc2lvblN0YXRlLnByb3Zpc2lvbmFsVVJMKTsKIAogICAg
ICAgICBpZiAoaGFzQmFja0ZvcndhcmRMaXN0KSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogRG8g
d2UgaGF2ZSB0byBudWxsIGNoZWNrIHRoZSBiYWNrIGZvcndhcmQgbGlzdCBpdGVtIGhlcmU/CiAg
ICAgICAgICAgICBpZiAoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogaXRlbSA9IG1fYmFja0Zvcndh
cmRMaXN0LT5jdXJyZW50SXRlbSgpKQotICAgICAgICAgICAgICAgIHJldHVybiBnb1RvQmFja0Zv
cndhcmRJdGVtKGl0ZW0pOworICAgICAgICAgICAgICAgIHJldHVybiBnb1RvQmFja0ZvcndhcmRJ
dGVtKCppdGVtKTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAppbmRleCBkYzU5NDk4ZGIxYjhlZmNmNzM5MDMyZWU1NWMzYWRiM2M0NmZiZDA4
Li40NDVjYTc3NWNlZmU5ZjgyODliZjJjZTVhNmVjNjZjODZjMzU4YTY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTY0LDYgKzE2NCwxNCBAQCBjbGFzcyBTaGFy
ZWRCdWZmZXI7CiBjbGFzcyBUZXh0SW5kaWNhdG9yOwogY2xhc3MgVmFsaWRhdGlvbkJ1YmJsZTsK
IAorZW51bSBTZWxlY3Rpb25EaXJlY3Rpb24gOiB1aW50OF90OworCitlbnVtIGNsYXNzIEF1dG9w
bGF5RXZlbnQ7CitlbnVtIGNsYXNzIEhhc0luc2VjdXJlQ29udGVudDsKK2VudW0gY2xhc3MgTmF2
aWdhdGlvblBvbGljeUNoZWNrOworZW51bSBjbGFzcyBOb3RpZmljYXRpb25EaXJlY3Rpb247Citl
bnVtIGNsYXNzIFNob3VsZFNhbXBsZTsKKwogc3RydWN0IEFwcGxpY2F0aW9uTWFuaWZlc3Q7CiBz
dHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsKIHN0cnVjdCBFeGNlcHRpb25EZXRhaWxzOwpAQCAt
MTc1LDEzICsxODMsNiBAQCBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0Owogc3RydWN0IFZpZXdw
b3J0QXR0cmlidXRlczsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIAotZW51bSBTZWxlY3Rpb25E
aXJlY3Rpb24gOiB1aW50OF90OwotCi1lbnVtIGNsYXNzIEF1dG9wbGF5RXZlbnQ7Ci1lbnVtIGNs
YXNzIEhhc0luc2VjdXJlQ29udGVudDsKLWVudW0gY2xhc3MgTm90aWZpY2F0aW9uRGlyZWN0aW9u
OwotZW51bSBjbGFzcyBTaG91bGRTYW1wbGU7Ci0KIHRlbXBsYXRlIDx0eXBlbmFtZT4gY2xhc3Mg
UmVjdEVkZ2VzOwogdXNpbmcgRmxvYXRCb3hFeHRlbnQgPSBSZWN0RWRnZXM8ZmxvYXQ+OwogfQpA
QCAtNDQwLDcgKzQ0MSw3IEBAIHB1YmxpYzoKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBn
b0ZvcndhcmQoKTsKICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBnb0JhY2soKTsKIAotICAg
IFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IGdvVG9CYWNrRm9yd2FyZEl0ZW0oV2ViQmFja0Zvcndh
cmRMaXN0SXRlbSopOworICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IGdvVG9CYWNrRm9yd2Fy
ZEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpOwogICAgIHZvaWQgdHJ5UmVzdG9yZVNjcm9s
bFBvc2l0aW9uKCk7CiAgICAgdm9pZCBkaWRDaGFuZ2VCYWNrRm9yd2FyZExpc3QoV2ViQmFja0Zv
cndhcmRMaXN0SXRlbSogYWRkZWRJdGVtLCBWZWN0b3I8UmVmPFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0+PiYmIHJlbW92ZWQpOwogICAgIHZvaWQgd2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVp
bnQ2NF90IGl0ZW1JRCwgYm9vbCBpblBhZ2VDYWNoZSwgY29uc3QgVXNlckRhdGEmKTsKQEAgLTEy
OTQsNiArMTI5NSw4IEBAIHByaXZhdGU6CiAgICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBX
ZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCBwYWdlSUQsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0
aW9uPiYmKTsKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogCisgICAgUmVmUHRyPEFQ
STo6TmF2aWdhdGlvbj4gZ29Ub0JhY2tGb3J3YXJkSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVt
JiwgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSk7CisKICAgICB2b2lkIHVwZGF0ZUFjdGl2aXR5U3Rh
dGUoV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3MgZmxhZ3NUb1VwZGF0ZSA9IFdlYkNvcmU6
OkFjdGl2aXR5U3RhdGU6OkFsbEZsYWdzKTsKICAgICB2b2lkIHVwZGF0ZVRocm90dGxlU3RhdGUo
KTsKICAgICB2b2lkIHVwZGF0ZUhpZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3JlYXNlcygpOwpA
QCAtMTQ0MSwxMyArMTQ0NCw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZWF0dGFjaFRvV2ViUHJv
Y2VzcyhSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmKTsKIAogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRp
b24+IHJlYXR0YWNoVG9XZWJQcm9jZXNzRm9yUmVsb2FkKCk7Ci0gICAgUmVmUHRyPEFQSTo6TmF2
aWdhdGlvbj4gcmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtKik7CisgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gcmVhdHRhY2hUb1dlYlByb2Nlc3NX
aXRoSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtJik7CiAKLSAgICBlbnVtIGNsYXNzIE5hdmln
YXRpb25Qb2xpY3lDaGVjayB7Ci0gICAgICAgIFJlcXVpcmUsCi0gICAgICAgIEJ5cGFzcywKLSAg
ICB9OwotICAgIHZvaWQgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24m
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFs
VVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2sp
OworICAgIHZvaWQgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24mLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpOYXZpZ2F0aW9uUG9saWN5
Q2hlY2spOwogCiAgICAgdm9pZCByZXF1ZXN0Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRf
dCBub3RpZmljYXRpb25JRCwgY29uc3QgU3RyaW5nJiBvcmlnaW5TdHJpbmcpOwogICAgIHZvaWQg
c2hvd05vdGlmaWNhdGlvbihjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHks
IGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29uc3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYg
bGFuZywgV2ViQ29yZTo6Tm90aWZpY2F0aW9uRGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdp
blN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0aW9uSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggNmY4M2U4OGEwMDE4NGFjOTM3MDdlZmMwMTBm
MWJmMmQwNjUyZDcwYy4uZGNhOTg5OTYwZWZmODYzNDNjNzM4NWNlZTFkNzE0MTFhZTVjZWM3MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC01NTEs
NyArNTUxLDcgQEAgYm9vbCBXZWJQcm9jZXNzUHJveHk6OmZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJs
ZWQoKQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUHJvY2Vzc1Byb3h5OjphZGRCYWNrRm9yd2FyZEl0
ZW0odWludDY0X3QgaXRlbUlELCB1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFBhZ2VTdGF0ZSYgcGFn
ZVN0YXRlKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmFkZE9yVXBkYXRlQmFja0ZvcndhcmRJdGVt
KHVpbnQ2NF90IGl0ZW1JRCwgdWludDY0X3QgcGFnZUlELCBjb25zdCBQYWdlU3RhdGUmIHBhZ2VT
dGF0ZSkKIHsKICAgICBNRVNTQUdFX0NIRUNLX1VSTChwYWdlU3RhdGUubWFpbkZyYW1lU3RhdGUu
b3JpZ2luYWxVUkxTdHJpbmcpOwogICAgIE1FU1NBR0VfQ0hFQ0tfVVJMKHBhZ2VTdGF0ZS5tYWlu
RnJhbWVTdGF0ZS51cmxTdHJpbmcpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaAppbmRleCA2OTdlYjkwOGQ2MWNmYzczM2NkMjExZjNkYWMxMGQ3YTRmNDQ0ZmM1Li4z
YmFkMmVlZTRhMmI1Zjg2YTVkZTQ5MzhkNWMzYzVlZWNhM2ZmZTc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtMjIwLDcgKzIyMCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzaHV0RG93bigpOwogCiAgICAgLy8gSVBDIG1lc3NhZ2UgaGFuZGxlcnMuCi0g
ICAgdm9pZCBhZGRCYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgaXRlbUlELCB1aW50NjRfdCBwYWdl
SUQsIGNvbnN0IFBhZ2VTdGF0ZSYpOworICAgIHZvaWQgYWRkT3JVcGRhdGVCYWNrRm9yd2FyZEl0
ZW0odWludDY0X3QgaXRlbUlELCB1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFBhZ2VTdGF0ZSYpOwog
ICAgIHZvaWQgZGlkRGVzdHJveUZyYW1lKHVpbnQ2NF90KTsKICAgICB2b2lkIGRpZERlc3Ryb3lV
c2VyR2VzdHVyZVRva2VuKHVpbnQ2NF90KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDk4YzcxMmFjYzNmNzlkNGUx
MDhiZjVhYjM1NGE0MWUwYWRkODYyNTYuLmVjN2NmNTAxMzkzNzZiNTM4Nzc5OTQ2MDljMDcwNTI5
MDY2NjM1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkubWVzc2FnZXMuaW4KQEAgLTIxLDcgKzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVz
c2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExlZ2FjeVJlY2VpdmVyIHsKLSAgICBBZGRCYWNrRm9y
d2FyZEl0ZW0odWludDY0X3QgaXRlbUlELCB1aW50NjRfdCBwYWdlSUQsIHN0cnVjdCBXZWJLaXQ6
OlBhZ2VTdGF0ZSBwYWdlU3RhdGUpCisgICAgQWRkT3JVcGRhdGVCYWNrRm9yd2FyZEl0ZW0odWlu
dDY0X3QgaXRlbUlELCB1aW50NjRfdCBwYWdlSUQsIHN0cnVjdCBXZWJLaXQ6OlBhZ2VTdGF0ZSBw
YWdlU3RhdGUpCiAgICAgRGlkRGVzdHJveUZyYW1lKHVpbnQ2NF90IGZyYW1lSUQpIAogCiAgICAg
RGlkRGVzdHJveVVzZXJHZXN0dXJlVG9rZW4odWludDY0X3QgdXNlckdlc3R1cmVUb2tlbklEKSAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRy
b2xsZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250
cm9sbGVySU9TLm1tCmluZGV4IDRjMzNkNTVkMWY5MDMyODU4OGZlY2E1YTI3NDRiMDA5MWRlNjE4
NzUuLjc0OTgzODI4MmIwNTdlZGVjNTMzMWNkNmM2ZjU1NDVjZmRhZjdlNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklP
Uy5tbQpAQCAtMjk0LDcgKzI5NCw3IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjplbmRT
d2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwKICAgICBpZiAo
Jm1fd2ViUGFnZVByb3h5ICE9IG1fd2ViUGFnZVByb3h5Rm9yQmFja0ZvcndhcmRMaXN0Rm9yQ3Vy
cmVudFN3aXBlKQogICAgICAgICBtX3dlYlBhZ2VQcm94eS5uYXZpZ2F0aW9uR2VzdHVyZURpZEVu
ZCgpOwogCi0gICAgbV93ZWJQYWdlUHJveHlGb3JCYWNrRm9yd2FyZExpc3RGb3JDdXJyZW50U3dp
cGUtPmdvVG9CYWNrRm9yd2FyZEl0ZW0odGFyZ2V0SXRlbSk7CisgICAgbV93ZWJQYWdlUHJveHlG
b3JCYWNrRm9yd2FyZExpc3RGb3JDdXJyZW50U3dpcGUtPmdvVG9CYWNrRm9yd2FyZEl0ZW0oKnRh
cmdldEl0ZW0pOwogCiAgICAgaWYgKGF1dG8gZHJhd2luZ0FyZWEgPSBtX3dlYlBhZ2VQcm94eS5k
cmF3aW5nQXJlYSgpKSB7CiAgICAgICAgIHVpbnQ2NF90IHBhZ2VJRCA9IG1fd2ViUGFnZVByb3h5
LnBhZ2VJRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdH
ZXN0dXJlQ29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3
R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0KaW5kZXggZGZmYTU0NzdmNTllZjU3NzUxYTY4MjI5ZWE2
NjM3ZmMzYzdhZTUzMC4uMDMyNmMzNDQwM2I3YTAyNWVkNjdiYjZlYWIwNmJmNjU2ZGQ1MDkyMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJv
bGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVD
b250cm9sbGVyTWFjLm1tCkBAIC03NDEsNyArNzQxLDcgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRy
b2xsZXI6OmVuZFN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVt
LAogICAgIG1fd2ViUGFnZVByb3h5LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpWaWV3R2VzdHVy
ZUdlb21ldHJ5Q29sbGVjdG9yOjpTZXRSZW5kZXJUcmVlU2l6ZU5vdGlmaWNhdGlvblRocmVzaG9s
ZChyZW5kZXJUcmVlU2l6ZSAqIHN3aXBlU25hcHNob3RSZW1vdmFsUmVuZGVyVHJlZVNpemVUYXJn
ZXRGcmFjdGlvbiksIG1fd2ViUGFnZVByb3h5LnBhZ2VJRCgpKTsKIAogICAgIG1fd2ViUGFnZVBy
b3h5Lm5hdmlnYXRpb25HZXN0dXJlRGlkRW5kKHRydWUsICp0YXJnZXRJdGVtKTsKLSAgICBtX3dl
YlBhZ2VQcm94eS5nb1RvQmFja0ZvcndhcmRJdGVtKHRhcmdldEl0ZW0pOworICAgIG1fd2ViUGFn
ZVByb3h5LmdvVG9CYWNrRm9yd2FyZEl0ZW0oKnRhcmdldEl0ZW0pOwogCiAgICAgU25hcHNob3RS
ZW1vdmFsVHJhY2tlcjo6RXZlbnRzIGRlc2lyZWRFdmVudHMgPSBTbmFwc2hvdFJlbW92YWxUcmFj
a2VyOjpWaXN1YWxseU5vbkVtcHR5TGF5b3V0CiAgICAgICAgIHwgU25hcHNob3RSZW1vdmFsVHJh
Y2tlcjo6TWFpbkZyYW1lTG9hZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCmlu
ZGV4IDFhZTJjM2M4YjdkNjIyMTUyOGY4YWIxNDViNGM4YmI3ZWFkNjc1OWEuLmE1ZDQ1YTlhODBl
ZTg1ODJhYjVkM2ZmOWE3ODI2OGRmY2JkYjkyMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29u
dmVyc2lvbi5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCBQYWdlU3RhdGUgdG9QYWdlU3RhdGUoY29u
c3QgV2ViQ29yZTo6SGlzdG9yeUl0ZW0mIGhpc3RvcnlJdGVtKQogICAgIHBhZ2VTdGF0ZS50aXRs
ZSA9IGhpc3RvcnlJdGVtLnRpdGxlKCk7CiAgICAgcGFnZVN0YXRlLm1haW5GcmFtZVN0YXRlID0g
dG9GcmFtZVN0YXRlKGhpc3RvcnlJdGVtKTsKICAgICBwYWdlU3RhdGUuc2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeSA9IGhpc3RvcnlJdGVtLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3ko
KTsKLQorICAgIHBhZ2VTdGF0ZS5zZXNzaW9uU3RhdGVPYmplY3QgPSBoaXN0b3J5SXRlbS5zdGF0
ZU9iamVjdCgpOwogICAgIHJldHVybiBwYWdlU3RhdGU7CiB9CiAKQEAgLTE5Myw2ICsxOTMsNyBA
QCBSZWY8SGlzdG9yeUl0ZW0+IHRvSGlzdG9yeUl0ZW0oY29uc3QgUGFnZVN0YXRlJiBwYWdlU3Rh
dGUpCiB7CiAgICAgUmVmPEhpc3RvcnlJdGVtPiBoaXN0b3J5SXRlbSA9IEhpc3RvcnlJdGVtOjpj
cmVhdGUocGFnZVN0YXRlLm1haW5GcmFtZVN0YXRlLnVybFN0cmluZywgcGFnZVN0YXRlLnRpdGxl
KTsKICAgICBoaXN0b3J5SXRlbS0+c2V0U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShwYWdl
U3RhdGUuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSk7CisgICAgaGlzdG9yeUl0ZW0tPnNl
dFN0YXRlT2JqZWN0KHBhZ2VTdGF0ZS5zZXNzaW9uU3RhdGVPYmplY3QuZ2V0KCkpOwogICAgIGFw
cGx5RnJhbWVTdGF0ZShoaXN0b3J5SXRlbSwgcGFnZVN0YXRlLm1haW5GcmFtZVN0YXRlKTsKIAog
ICAgIHJldHVybiBoaXN0b3J5SXRlbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcAppbmRleCBjMmU5
MWVhN2YxY2UzMTY1OTU4YmRiOTRhNjY2MGI1MTRmODY4ZGU1Li43ZjRlMTI3N2NjZDc0MDI3NmY3
ZGUwOWZhMzQ4MGNhMjEyZGQyZWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwCkBAIC05MSw3
ICs5MSw3IEBAIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OnNldEhpZ2hlc3RJdGVtSURG
cm9tVUlQcm9jZXNzKHVpbnQ2NF90IGl0ZW1JRCkKIAogc3RhdGljIHZvaWQgdXBkYXRlQmFja0Zv
cndhcmRJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgdWludDY0X3QgcGFnZUlELCBIaXN0b3J5SXRlbSog
aXRlbSkKIHsKLSAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkFkZEJhY2tGb3J3YXJkSXRl
bShpdGVtSUQsIHBhZ2VJRCwgdG9QYWdlU3RhdGUoKml0ZW0pKSwgMCk7CisgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
V2ViUHJvY2Vzc1Byb3h5OjpBZGRPclVwZGF0ZUJhY2tGb3J3YXJkSXRlbShpdGVtSUQsIHBhZ2VJ
RCwgdG9QYWdlU3RhdGUoKml0ZW0pKSwgMCk7CiB9CiAKIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0
UHJveHk6OmFkZEl0ZW1Gcm9tVUlQcm9jZXNzKHVpbnQ2NF90IGl0ZW1JRCwgUmVmPEhpc3RvcnlJ
dGVtPiYmIGl0ZW0sIHVpbnQ2NF90IHBhZ2VJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggODFhZTQ1YzRlMzFlOThmOTRkNGE3NTUxNDAyODk4
MDRkYTgzNDRlZS4uOGJlMmQ3NjAwOWVmM2I2OTZhMGY1MDZlMTgwMTZmN2RiNzYwZjY4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEzODAs
NDkgKzEzODAsMjMgQEAgdm9pZCBXZWJQYWdlOjpyZWxvYWQodWludDY0X3QgbmF2aWdhdGlvbklE
LCB1aW50MzJfdCByZWxvYWRPcHRpb25zLCBTYW5kYm94RXh0ZW4KICAgICBjb3JlUGFnZSgpLT51
c2VySW5wdXRCcmlkZ2UoKS5yZWxvYWRGcmFtZShtX21haW5GcmFtZS0+Y29yZUZyYW1lKCksIE9w
dGlvblNldDxSZWxvYWRPcHRpb24+Ojpmcm9tUmF3KHJlbG9hZE9wdGlvbnMpKTsKIH0KIAotdm9p
ZCBXZWJQYWdlOjpnb0ZvcndhcmQodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50NjRfdCBiYWNr
Rm9yd2FyZEl0ZW1JRCkKK3ZvaWQgV2ViUGFnZTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlELCBGcmFtZUxvYWRUeXBl
IGJhY2tGb3J3YXJkVHlwZSwgTmF2aWdhdGlvblBvbGljeUNoZWNrIG5hdmlnYXRpb25Qb2xpY3lD
aGVjaykKIHsKICAgICBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3RvcHBlcjsKIAotICAg
IEhpc3RvcnlJdGVtKiBpdGVtID0gV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6Oml0ZW1Gb3JJRChi
YWNrRm9yd2FyZEl0ZW1JRCk7Ci0gICAgQVNTRVJUKGl0ZW0pOwotICAgIGlmICghaXRlbSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgQVNTRVJUKCFtX3BlbmRpbmdOYXZpZ2F0aW9uSUQpOwotICAg
IG1fcGVuZGluZ05hdmlnYXRpb25JRCA9IG5hdmlnYXRpb25JRDsKLQotICAgIG1fcGFnZS0+Z29U
b0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6OkZvcndhcmQpOwotfQotCi12b2lkIFdlYlBhZ2U6
OmdvQmFjayh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlE
KQotewotICAgIFNlbmRTdG9wUmVzcG9uc2l2ZW5lc3NUaW1lciBzdG9wcGVyOworICAgIEFTU0VS
VChpc0JhY2tGb3J3YXJkTG9hZFR5cGUoYmFja0ZvcndhcmRUeXBlKSk7CiAKICAgICBIaXN0b3J5
SXRlbSogaXRlbSA9IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjppdGVtRm9ySUQoYmFja0Zvcndh
cmRJdGVtSUQpOwogICAgIEFTU0VSVChpdGVtKTsKICAgICBpZiAoIWl0ZW0pCiAgICAgICAgIHJl
dHVybjsKIAotICAgIEFTU0VSVCghbV9wZW5kaW5nTmF2aWdhdGlvbklEKTsKLSAgICBtX3BlbmRp
bmdOYXZpZ2F0aW9uSUQgPSBuYXZpZ2F0aW9uSUQ7Ci0KLSAgICBtX3BhZ2UtPmdvVG9JdGVtKCpp
dGVtLCBGcmFtZUxvYWRUeXBlOjpCYWNrKTsKLX0KLQotdm9pZCBXZWJQYWdlOjpnb1RvQmFja0Zv
cndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDY0X3QgYmFja0ZvcndhcmRJdGVt
SUQpCi17Ci0gICAgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1RpbWVyIHN0b3BwZXI7Ci0KLSAgICBI
aXN0b3J5SXRlbSogaXRlbSA9IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjppdGVtRm9ySUQoYmFj
a0ZvcndhcmRJdGVtSUQpOwotICAgIEFTU0VSVChpdGVtKTsKLSAgICBpZiAoIWl0ZW0pCi0gICAg
ICAgIHJldHVybjsKKyAgICBMT0coTG9hZGluZywgIkluIFdlYlByb2Nlc3MsIFdlYlBhZ2UgJSIg
UFJJdTY0ICIgaXMgbmF2aWdhdGluZyB0byBiYWNrL2ZvcndhcmQgVVJMICVzIiwgbV9wYWdlSUQs
IGl0ZW0tPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgQVNTRVJUKCFtX3Bl
bmRpbmdOYXZpZ2F0aW9uSUQpOwogICAgIG1fcGVuZGluZ05hdmlnYXRpb25JRCA9IG5hdmlnYXRp
b25JRDsKIAotICAgIG1fcGFnZS0+Z29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6OkluZGV4
ZWRCYWNrRm9yd2FyZCk7CisgICAgbV9wYWdlLT5nb1RvSXRlbSgqaXRlbSwgYmFja0ZvcndhcmRU
eXBlLCBuYXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogfQogCiB2b2lkIFdlYlBhZ2U6OnRyeVJlc3Rv
cmVTY3JvbGxQb3NpdGlvbigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKaW5kZXggMTVmOTJjOTc0MGY4MWI4YzFhNGViYWI4N2M0ZWY3NmQ4YWVjMzgyZS4uMDc0
NGEyZjRmZDU5YmE1ODliZjAxNzViMTFkZDdjYmI3ZWM3MDcwOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTQ5LDYgKzE0OSwxMCBAQCBjbGFzcyBU
ZXh0Q2hlY2tpbmdSZXF1ZXN0OwogY2xhc3MgVVJMOwogY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwog
CitlbnVtIFN5bnRoZXRpY0NsaWNrVHlwZSA6IGludDhfdDsKK2VudW0gY2xhc3MgTmF2aWdhdGlv
blBvbGljeUNoZWNrOworZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNp
dGlvbiA6IHVpbnQ4X3Q7CisKIHN0cnVjdCBDb21wb3NpdGlvblVuZGVybGluZTsKIHN0cnVjdCBE
aWN0YXRpb25BbHRlcm5hdGl2ZTsKIHN0cnVjdCBIaWdobGlnaHQ7CkBAIC0xNTcsOSArMTYxLDcg
QEAgc3RydWN0IFByb21pc2VkQmxvYkluZm87CiBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0Owog
c3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOwogCi1lbnVtIFN5bnRoZXRpY0NsaWNrVHlwZSA6IGlu
dDhfdDsKIAotZW51bSBjbGFzcyBUZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiA6
IHVpbnQ4X3Q7CiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogY2xhc3MgSFRNTEF0
dGFjaG1lbnRFbGVtZW50OwpAQCAtMjE0LDYgKzIxNiw5IEBAIGNsYXNzIFdlYlRvdWNoRXZlbnQ7
CiBjbGFzcyBXZWJDcmVkZW50aWFsc01lc3NlbmdlcjsKIGNsYXNzIFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOwogCitlbnVtIEZpbmRPcHRpb25zIDogdWludDE2X3Q7CitlbnVtIGNsYXNzIERy
YWdDb250cm9sbGVyQWN0aW9uOworCiBzdHJ1Y3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb247CiBz
dHJ1Y3QgQXR0cmlidXRlZFN0cmluZzsKIHN0cnVjdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU7
CkBAIC0yMjcsOSArMjMyLDYgQEAgc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiBzdHJ1Y3Qg
V2ViU2VsZWN0aW9uRGF0YTsKIHN0cnVjdCBXZWJzaXRlUG9saWNpZXNEYXRhOwogCi1lbnVtIGNs
YXNzIERyYWdDb250cm9sbGVyQWN0aW9uOwotZW51bSBGaW5kT3B0aW9ucyA6IHVpbnQxNl90Owot
CiB1c2luZyBTbmFwc2hvdE9wdGlvbnMgPSB1aW50MzJfdDsKIHVzaW5nIFdLRXZlbnRNb2RpZmll
cnMgPSB1aW50MzJfdDsKIApAQCAtMTE0OCw5ICsxMTUwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGxvYWRBbHRlcm5hdGVIVE1MU3RyaW5nKGNvbnN0IExvYWRQYXJhbWV0ZXJzJik7CiAgICAgdm9p
ZCBuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayhjb25zdCBTdHJpbmcmIHVybCwg
V2ViQ29yZTo6SW50UG9pbnQgZG9jdW1lbnRQb2ludCwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVu
UG9pbnQpOwogICAgIHZvaWQgcmVsb2FkKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3Qg
cmVsb2FkT3B0aW9ucywgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpOwotICAgIHZvaWQgZ29G
b3J3YXJkKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDY0X3QpOwotICAgIHZvaWQgZ29CYWNr
KHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDY0X3QpOwotICAgIHZvaWQgZ29Ub0JhY2tGb3J3
YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90KTsKKyAgICB2b2lkIGdvVG9C
YWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50NjRfdCwgV2ViQ29yZTo6
RnJhbWVMb2FkVHlwZSwgV2ViQ29yZTo6TmF2aWdhdGlvblBvbGljeUNoZWNrKTsKICAgICB2b2lk
IHRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOwogICAgIHZvaWQgc2V0SW5pdGlhbEZvY3VzKGJv
b2wgZm9yd2FyZCwgYm9vbCBpc0tleWJvYXJkRXZlbnRWYWxpZCwgY29uc3QgV2ViS2V5Ym9hcmRF
dmVudCYsIENhbGxiYWNrSUQpOwogICAgIHZvaWQgdXBkYXRlSXNJbldpbmRvdyhib29sIGlzSW5p
dGlhbFN0YXRlID0gZmFsc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggNzFmN2M1MTZiMGJmYjdhYzQ3NTAyZTZi
ZWJhMmFlNjlmZjVhZGQyOC4uNWE3YWFmNGM3NTI2Y2EyYjhmMDNiMTgyMjYxZjZmNzIyYzc4OWI2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCkBAIC0xMzQsOSArMTM0LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdh
Y3lSZWNlaXZlciB7CiAgICAgU2Nyb2xsQnkodWludDMyX3Qgc2Nyb2xsRGlyZWN0aW9uLCB1aW50
MzJfdCBzY3JvbGxHcmFudWxhcml0eSkKICAgICBDZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVh
KCkKIAotICAgIEdvQmFjayh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90IGJhY2tGb3J3
YXJkSXRlbUlEKQotICAgIEdvRm9yd2FyZCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90
IGJhY2tGb3J3YXJkSXRlbUlEKQotICAgIEdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2
aWdhdGlvbklELCB1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1JRCkKKyAgICBHb1RvQmFja0Zvcndh
cmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDY0X3QgYmFja0ZvcndhcmRJdGVtSUQs
IGVudW0gV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSBiYWNrRm9yd2FyZFR5cGUsIGVudW0gV2ViQ29y
ZTo6TmF2aWdhdGlvblBvbGljeUNoZWNrIG5hdmlnYXRpb25Qb2xpY3lDaGVjaykKICAgICBUcnlS
ZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogCiAgICAgTG9hZFVSTEluRnJhbWUoV2ViQ29yZTo6VVJM
IHVybCwgdWludDY0X3QgZnJhbWVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQppbmRleCBhMjA1YzJhMzRhMGMwZGM2YzdkYWYwZTE2N2YwNzFhMGE5YjBlYTEw
Li4yMzM4NzkyODM0MzJhYmI1ZGY3ODY5MmNjMTMyZjg3YWIxNWE5MjU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xNzQsNiArMTc0LDcgQEAKICNp
bXBvcnQgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lbW9yeUNhY2hl
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lbW9yeVJlbGVhc2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
TmF2aWdhdGlvblBvbGljeUNoZWNrLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob2RlTGlzdC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9Ob3RpZmljYXRpb24uaD4KQEAgLTI1NjYsNyArMjU2Nyw3IEBAIHN0YXRpYyBib29sIGZhc3RE
b2N1bWVudFRlYXJkb3duRW5hYmxlZCgpCiAgICAgfQogCiAgICAgQVNTRVJUKG5ld0l0ZW1Ub0dv
VG8pOwotICAgIF9wcml2YXRlLT5wYWdlLT5nb1RvSXRlbSgqbmV3SXRlbVRvR29UbywgRnJhbWVM
b2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJkKTsKKyAgICBfcHJpdmF0ZS0+cGFnZS0+Z29Ub0l0
ZW0oKm5ld0l0ZW1Ub0dvVG8sIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwgTmF2
aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKTsKIH0KIAogLSAodm9pZClfc2V0Rm9ybURlbGVn
YXRlOiAoaWQ8V2ViRm9ybURlbGVnYXRlPilkZWxlZ2F0ZQpAQCAtNjM2OSw3ICs2MzcwLDcgQEAg
c3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkg
PSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAgICAgICAgcmV0dXJuIE5POwogCiAgICAgQVNTRVJU
KGl0ZW0pOwotICAgIF9wcml2YXRlLT5wYWdlLT5nb1RvSXRlbSgqY29yZShpdGVtKSwgRnJhbWVM
b2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJkKTsKKyAgICBfcHJpdmF0ZS0+cGFnZS0+Z29Ub0l0
ZW0oKmNvcmUoaXRlbSksIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwgTmF2aWdh
dGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKTsKICAgICByZXR1cm4gWUVTOwogfQogCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjBkM2ZiNDgzYjhi
ZmQzMWMwNTc4ZGVjYmVkNjVlMjFiZTM1ZjkzOS4uYjQ3YjgwOTlkNzgyZjhlZTZmMWY0N2M4NmUx
NmFjOWZjOWRhZjk5MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE4LTAzLTIzICBCcmFkeSBFaWRzb24gIDxiZWlk
c29uQGFwcGxlLmNvbT4KKworICAgICAgICBHbyB0byBiYWNrL2ZvcndhcmQgbGlzdCBpdGVtcyBh
ZnRlciBhIHByb2Nlc3Mtc3dhcHBlZCBuYXZpZ2F0aW9uLgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzg2OTA1NDQ+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgzOTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
QWRkIGEgbmV3IEFQSSB0ZXN0IHRoYXQgZG9lcyBzb21lIHByb2Nlc3Mtc3dhcHBpbmcgbmF2aWdh
dGlvbnMgKGluY2x1ZGluZyBhIGJhY2sgbmF2aWdhdGlvbikKKyAgICAgICAgYW5kIHZlcmlmaWVz
IHRoZSBzdGF0ZSBvZiB0aGUgZW5naW5lIGFmdGVyd2FyZHMuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorICAg
ICAgICAoLVtQU09OTWVzc2FnZUhhbmRsZXIgdXNlckNvbnRlbnRDb250cm9sbGVyOmRpZFJlY2Vp
dmVTY3JpcHRNZXNzYWdlOl0pOgorICAgICAgICAoLVtQU09OU2NoZW1lIGluaXRXaXRoQnl0ZXM6
XSk6CisgICAgICAgICgtW1BTT05TY2hlbWUgd2ViVmlldzpzdGFydFVSTFNjaGVtZVRhc2s6XSk6
CisgICAgICAgIChsb2cpOgorICAgICAgICAoZnVuY3Rpb24pOgorICAgICAgICAoVEVTVCk6IERl
bGV0ZWQuCisKIDIwMTgtMDMtMjEgIFlvc2hpYWtpIEppdHN1a2F3YSAgPHlvc2hpYWtpLmppdHN1
a2F3YUBzb255LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBtYWtlIHRoZSBlbWFpbCBhZGRy
ZXNzIG9mIFlvc2hpYWtpIEppdHN1a2F3YSBhbGwgbG93ZXIgY2FzZS4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5hdmlnYXRp
b24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2Fw
T25OYXZpZ2F0aW9uLm1tCmluZGV4IGY0YjFlMDdjYjgxYzQ0YTU3OGE5MTczMDc2ZDRiOTgxMWNl
MTNlNzYuLmYyMjJjYmUxODE3MzA1MzlkZGNlNDBiMmEzZWZhYWI4MTE1NGEzM2YgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5h
dmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Q
cm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtNTIsNiArNTIsMTkgQEAKIHN0YXRpYyBib29s
IGRvbmU7CiBzdGF0aWMgaW50IG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHM7CiAKK3N0YXRpYyBS
ZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IHJlY2VpdmVkTWVzc2FnZXMgPSBhZG9wdE5TKFtAW10g
bXV0YWJsZUNvcHldKTsKK3N0YXRpYyBib29sIHJlY2VpdmVkTWVzc2FnZTsKK0BpbnRlcmZhY2Ug
UFNPTk1lc3NhZ2VIYW5kbGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+CitA
ZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBQU09OTWVzc2FnZUhhbmRsZXIKKy0gKHZvaWQpdXNlckNv
bnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAqKXVzZXJDb250ZW50Q29u
dHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRNZXNzYWdlICopbWVzc2Fn
ZQoreworICAgIFtyZWNlaXZlZE1lc3NhZ2VzIGFkZE9iamVjdDpbbWVzc2FnZSBib2R5XV07Cisg
ICAgcmVjZWl2ZWRNZXNzYWdlID0gdHJ1ZTsKK30KK0BlbmQKKwogQGludGVyZmFjZSBQU09OTmF2
aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPgogQGVuZAog
CkBAIC03MSwxNiArODQsMzEgQEAgc3RhdGljIGludCBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxz
OwogQGVuZAogCiBAaW50ZXJmYWNlIFBTT05TY2hlbWUgOiBOU09iamVjdCA8V0tVUkxTY2hlbWVI
YW5kbGVyPiB7CisgICAgY29uc3QgY2hhciogX2J5dGVzOwogfQorLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoQnl0ZXM6KGNvbnN0IGNoYXIqKWJ5dGVzOwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24g
UFNPTlNjaGVtZQogCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhCeXRlczooY29uc3QgY2hhciop
Ynl0ZXMKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIF9ieXRlcyA9IGJ5dGVzOwor
ICAgIHJldHVybiBzZWxmOworfQorCiAtICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgc3RhcnRVUkxTY2hlbWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNrPil0YXNrCiB7CiAgICAg
UmV0YWluUHRyPE5TVVJMUmVzcG9uc2U+IHJlc3BvbnNlID0gYWRvcHROUyhbW05TVVJMUmVzcG9u
c2UgYWxsb2NdIGluaXRXaXRoVVJMOnRhc2sucmVxdWVzdC5VUkwgTUlNRVR5cGU6QCJ0ZXh0L2h0
bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDoxIHRleHRFbmNvZGluZ05hbWU6bmlsXSk7CiAgICAg
W3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgpXTsKLSAgICBbdGFzayBkaWRS
ZWNlaXZlRGF0YTpbQCJIZWxsbyIgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2Rp
bmddXTsKKworICAgIGlmIChfYnl0ZXMpIHsKKyAgICAgICAgUmV0YWluUHRyPE5TRGF0YT4gZGF0
YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXNOb0NvcHk6KHZvaWQgKilf
Ynl0ZXMgbGVuZ3RoOnN0cmxlbihfYnl0ZXMpIGZyZWVXaGVuRG9uZTpOT10pOworICAgICAgICBb
dGFzayBkaWRSZWNlaXZlRGF0YTpkYXRhLmdldCgpXTsKKyAgICB9IGVsc2UKKyAgICAgICAgW3Rh
c2sgZGlkUmVjZWl2ZURhdGE6W0AiSGVsbG8iIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmlu
Z0VuY29kaW5nXV07CisKICAgICBbdGFzayBkaWRGaW5pc2hdOwogfQogCkBAIC05MCw2ICsxMTgs
MjggQEAgc3RhdGljIGludCBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxzOwogCiBAZW5kCiAKK3N0
YXRpYyBjb25zdCBjaGFyKiB0ZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJDRSgKKzxoZWFkPgorPHNj
cmlwdD4KKworZnVuY3Rpb24gbG9nKG1zZykKK3sKKyAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VI
YW5kbGVycy5wc29uLnBvc3RNZXNzYWdlKG1zZyk7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBmdW5j
dGlvbihldnQpIHsKKyAgICBpZiAod2luZG93Lmhpc3Rvcnkuc3RhdGUgIT0gIm9ubG9hZENhbGxl
ZCIpCisgICAgICAgIHNldFRpbWVvdXQoJ3dpbmRvdy5oaXN0b3J5LnJlcGxhY2VTdGF0ZSgib25s
b2FkQ2FsbGVkIiwgIiIpOycsIDApOworfQorCit3aW5kb3cub25wYWdlc2hvdyA9IGZ1bmN0aW9u
KGV2dCkgeworICAgIGxvZygiUGFnZVNob3cgY2FsbGVkLiBQZXJzaXN0ZWQ6ICIgKyBldnQucGVy
c2lzdGVkICsgIiwgYW5kIHdpbmRvdy5oaXN0b3J5LnN0YXRlIGlzOiAiICsgd2luZG93Lmhpc3Rv
cnkuc3RhdGUpOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKylQU09OUkVTT1VSQ0UiOworCiBU
RVNUKFByb2Nlc3NTd2FwLCBCYXNpYykKIHsKICAgICBhdXRvIHByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbiA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKQEAgLTEzNyw0ICsxODcsNzAgQEAgVEVTVChQcm9jZXNzU3dhcCwgQmFzaWMpCiAgICAgRVhQ
RUNUX0VRKG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMsIDMpOwogfQogCitURVNUKFByb2Nlc3NT
d2FwLCBCYWNrKQoreworICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uID0gYWRvcHRO
UyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIHByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzU3dhcHNPbk5hdmlnYXRpb24gPSBZRVM7
CisgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nlc3NQb29sIGFsbG9jXSBf
aW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKV0pOwor
CisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25m
aWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFBy
b2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBSZXRhaW5QdHI8UFNPTlNjaGVtZT4g
aGFuZGxlcjEgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdFdpdGhCeXRlczp0ZXN0
Qnl0ZXNdKTsKKyAgICBSZXRhaW5QdHI8UFNPTlNjaGVtZT4gaGFuZGxlcjIgPSBhZG9wdE5TKFtb
UFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRV
UkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIxLmdldCgpIGZvclVSTFNjaGVtZTpAIlBTT04xIl07Cisg
ICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6aGFuZGxlcjIuZ2V0
KCkgZm9yVVJMU2NoZW1lOkAiUFNPTjIiXTsKKworICAgIFJldGFpblB0cjxQU09OTWVzc2FnZUhh
bmRsZXI+IG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1BTT05NZXNzYWdlSGFuZGxlciBhbGxv
Y10gaW5pdF0pOworICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9s
bGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxlci5nZXQoKSBuYW1lOkAi
cHNvbiJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndl
YlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMo
W1tQU09OTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0
TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAgIE5TVVJMUmVxdWVzdCAq
cmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJp
bmc6QCJwc29uMTovL2hvc3QvbWFpbjEuaHRtbCJdXTsKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVz
dDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRNZXNz
YWdlKTsKKyAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIGF1dG8gcGlkMSA9IFt3
ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICByZXF1ZXN0ID0gW05TVVJMUmVx
dWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInBzb24yOi8vaG9zdC9t
YWluMi5odG1sIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworCisgICAg
VGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7CisKKyAg
ICBhdXRvIHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdOworCisgICAgW3dl
YlZpZXcgZ29CYWNrXTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRN
ZXNzYWdlKTsKKyAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIGF1dG8gcGlkMyA9
IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICAvLyAzIGxvYWRzLCAzIGRl
Y2lkZVBvbGljeSBjYWxscyAoZS5nLiBhbnkgbG9hZCB0aGF0IHBlcmZvcm1zIGEgcHJvY2VzcyBz
d2FwIHNob3VsZCBub3QgaGF2ZSBnZW5lcmF0ZWQgYW4KKyAgICAvLyBhZGRpdGlvbmFsIGRlY2lk
ZVBvbGljeSBjYWxsIGFzIGEgcmVzdWx0IG9mIHRoZSBwcm9jZXNzIHN3YXApCisgICAgRVhQRUNU
X0VRKG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMsIDMpOworCisgICAgRVhQRUNUX0VRKFtyZWNl
aXZlZE1lc3NhZ2VzIGNvdW50XSwgMnUpOworICAgIEVYUEVDVF9UUlVFKFtyZWNlaXZlZE1lc3Nh
Z2VzLmdldCgpWzBdIGlzRXF1YWxUb1N0cmluZzpAIlBhZ2VTaG93IGNhbGxlZC4gUGVyc2lzdGVk
OiBmYWxzZSwgYW5kIHdpbmRvdy5oaXN0b3J5LnN0YXRlIGlzOiBudWxsIl0pOworCisgICAgLy8g
RklYTUU6IFdlJ2QgbGlrZSB0byBnZXQgdGhlIHBhZ2UgcmVzdG9yaW5nIGZyb20gdGhlIHBhZ2Ug
Y2FjaGUgbGlrZSBiZWZvcmUgcHJvY2VzcyBzd2FwcGluZywgd2hpY2ggd2lsbCBtYWtlIFBlcnNp
c3RlZCBiZSAidHJ1ZSIKKyAgICAvLyBGb3Igbm93IGl0J3MgZXhwZWN0ZWQgdG8gYmUgZmFsc2Ui
CisgICAgRVhQRUNUX1RSVUUoW3JlY2VpdmVkTWVzc2FnZXMuZ2V0KClbMV0gaXNFcXVhbFRvU3Ry
aW5nOkAiUGFnZVNob3cgY2FsbGVkLiBQZXJzaXN0ZWQ6IGZhbHNlLCBhbmQgd2luZG93Lmhpc3Rv
cnkuc3RhdGUgaXM6IG9ubG9hZENhbGxlZCJdKTsKKworICAgIEVYUEVDVF9GQUxTRShwaWQxID09
IHBpZDIpOworICAgIEVYUEVDVF9GQUxTRShwaWQyID09IHBpZDMpOworCisgICAgLy8gRklYTUU6
IElkZWFsbHkgd2UnZCBsaWtlIHRvIGdldCBwcm9jZXNzIGNhY2hpbmcgaGFwcGVuaW5nIHN1Y2gg
dGhhdCBwaWQxIGFuZCBwaWQzIGFyZSBlcXVhbC4KKyAgICAvLyBCdXQgZm9yIG5vdyB0aGV5IHNo
b3VsZCBub3QgYmUuCisgICAgRVhQRUNUX0ZBTFNFKHBpZDEgPT0gcGlkMyk7Cit9CisKICNlbmRp
ZiAvLyBXS19BUElfRU5BQkxFRAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336421</attachid>
            <date>2018-03-23 14:20:48 -0700</date>
            <delta_ts>2018-03-23 15:15:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-183920-20180323142047.patch</filename>
            <type>text/plain</type>
            <size>72710</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI5ODQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDdjOWJjZWFjYjcxYWJi
ZTU5NzU3Y2EyY2RlNmUyMmNlNGJiOTFhZi4uOTI1N2QwNWY0MjEwZWI5NDY3ZjY1YWFlN2VmNTI1
MDg3Y2E3YTc0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE4LTAzLTIzICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBHbyB0byBiYWNrL2Zvcndh
cmQgbGlzdCBpdGVtcyBhZnRlciBhIHByb2Nlc3Mtc3dhcHBlZCBuYXZpZ2F0aW9uLgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzg2OTA1NDQ+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTgzOTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5keSBFc3Rlcy4K
KworICAgICAgICBDb3ZlcmVkIGJ5IG5ldyBBUEkgdGVzdC4KKworICAgICAgICBNb3N0IG9mIHRo
ZSBjaGFuZ2VzIHRvIFdlYkNvcmUgYXJlIHRlYWNoaW5nIEhpc3RvcnlJdGVtIG5hdmlnYXRpb25z
IHRvIGtub3cgd2hlbiB0aGV5IHNob3VsZAorICAgICAgICBkbyBhIHBvbGljeSBjaGVjayBvciBu
b3QuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKKyAg
ICAgICAgKiBoaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmdvQmFja09yRm9yd2FyZCk6CisgICAgICAgIChX
ZWJDb3JlOjpCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmdvQmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmdvRm9yd2FyZCk6CisKKyAgICAgICAgKiBoaXN0b3J5
L0hpc3RvcnlJdGVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlJdGVtOjpzZXRTdGF0
ZU9iamVjdCk6IEFjdHVhbGx5IHB1c2ggc3RhdGUgb2JqZWN0IGNoYW5nZXMgdG8gdGhlIFVJUHJv
Y2Vzcy4KKyAgICAgICAgICBUaGlzIHdhcyBhIGxvbmcgc3RhbmRpbmcgYnVnIHRoYXQgbWFkZSBp
dCBkaWZmaWN1bHQgdG8gZWZmZWN0aXZlbHkgdGVzdCB0aGlzIGNoYW5nZS4KKworICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6
bG9hZFVSTEludG9DaGlsZEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyOjps
b2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Ojpsb2FkSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmV0cnlBZnRlckZh
aWxlZENhY2hlT25seU1haW5SZXNvdXJjZUxvYWQpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxv
YWRlci5oOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlclR5cGVzLmg6CisKKyAgICAgICAg
KiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGlzdG9y
eUNvbnRyb2xsZXI6OmdvVG9JdGVtKToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9s
bGVyOjpzZXREZWZlcnNMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9s
bGVyOjpyZWN1cnNpdmVHb1RvSXRlbSk6CisgICAgICAgICogbG9hZGVyL0hpc3RvcnlDb250cm9s
bGVyLmg6CisKKyAgICAgICAgKiBsb2FkZXIvTmF2aWdhdGlvblBvbGljeUNoZWNrLmg6CisKKyAg
ICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6Z29Ub0l0ZW0p
OgorICAgICAgICAqIHBhZ2UvUGFnZS5oOgorCiAyMDE4LTAzLTIxICBTYWlkIEFib3UtSGFsbGF3
YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgRGlzY29ubmVjdCB0aGUgU1ZH
UGF0aFNlZ0xpc3QgaXRlbXMgZnJvbSB0aGVpciBTVkdQYXRoRWxlbWVudCBiZWZvcmUgcmVidWls
ZGluZyBhIG5ldyBsaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDdkNWVlZWFkYWY2NTI0MDVhODQ4Zjg4MjIyN2Uz
MTNlZjUyN2Q4ZmIuLjY0NGVjNzZjZTBhZWJmNmU4YzRmMWI2ZDdjYTQ5Y2NhZjI3YWU2NTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsODMgQEAKKzIwMTgtMDMtMjMgIEJyYWR5IEVpZHNvbiAgPGJlaWRz
b25AYXBwbGUuY29tPgorCisgICAgICAgIEdvIHRvIGJhY2svZm9yd2FyZCBsaXN0IGl0ZW1zIGFm
dGVyIGEgcHJvY2Vzcy1zd2FwcGVkIG5hdmlnYXRpb24uCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zODY5MDU0ND4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODM5MjAKKworICAgICAgICBSZXZpZXdlZCBieSBBbmR5IEVzdGVzLgorCisgICAgICAgIFRoaXMg
dGFrZXMgdGhlIGluaXRpYWwgd29yayBvZiAicHJvY2VzcyBzd2FwIGEgbm9ybWFsIG5hdmlnYXRp
b24iIGFuZCBleHRlbmRzIGl0IHRvCisgICAgICAgIHByb2Nlc3Mgc3dhcHBpbmcgZm9yIGJhY2sv
Zm9yd2FyZCBpdGVtIG5hdmlnYXRpb25zLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHk6CisKKyAgICAgICAgTWFrZSBzdXJlIHN0YXRlIG9iamVjdHMgYXJlIHNlcmlhbGl6
ZWQgdG8gdGhlIFVJIFByb2Nlc3MgYmFjay9mb3J3YXJkIGxpc3QgaXRlbXMsIGFzIG90aGVyd2lz
ZQorICAgICAgICB0aGV5IHdpbGwgYmUgbG9zdCBpbiBwcm9jZXNzLXN3YXAgc2NlbmFyaW9zOgor
ICAgICAgICAqIFNoYXJlZC9TZXNzaW9uU3RhdGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdl
U3RhdGU6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VTdGF0ZTo6ZGVjb2Rl
KToKKyAgICAgICAgKiBTaGFyZWQvU2Vzc2lvblN0YXRlLmg6CisKKyAgICAgICAgTWFrZSBhIG5l
dyB2YXJpYW50IG9mIEFQSU5hdmlnYXRpb24gc3BlY2lmaWNhbGx5IGZvciBiYWNrL2ZvcndhcmQg
bGlzdCBpdGVtcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uY3BwOgor
ICAgICAgICAoQVBJOjpOYXZpZ2F0aW9uOjpOYXZpZ2F0aW9uKToKKyAgICAgICAgKEFQSTo6TmF2
aWdhdGlvbjo6bG9nZ2luZ1VSTCBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElO
YXZpZ2F0aW9uLmg6CisgICAgICAgIChBUEk6Ok5hdmlnYXRpb246OmNyZWF0ZSk6CisgICAgICAg
IChBUEk6Ok5hdmlnYXRpb246OmJhY2tGb3J3YXJkTGlzdEl0ZW0pOgorICAgICAgICAoQVBJOjpO
YXZpZ2F0aW9uOjpiYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUgY29uc3QpOgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VHb1RvQmFja0Zvcndh
cmRMaXN0SXRlbSk6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tCcm93c2luZ0NvbnRleHRDb250cm9s
bGVyIGdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOl0pOgorCisgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBnb1RvQmFja0Zvcndh
cmRMaXN0SXRlbTpdKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uU3RhdGUu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJOYXZpZ2F0aW9uU3RhdGU6OmNyZWF0ZUxvYWRSZXF1
ZXN0TmF2aWdhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYk5hdmlnYXRpb25TdGF0ZTo6Y3Jl
YXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViTmF2aWdh
dGlvblN0YXRlLmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2ViUHJvY2Vzc0ZvclJlbG9h
ZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVhdHRhY2hUb1dlYlByb2Nlc3NX
aXRoSXRlbSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z29Gb3J3YXJkKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpnb0JhY2spOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmdvVG9CYWNrRm9yd2FyZEl0ZW0pOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2Vzcyk6IEhhbmRsZSBiYWNrL2Zv
cndhcmQgbmF2aWdhdGlvbnMgZGlmZmVyZW50bHkgdGhhbiBvdGhlcnMuCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVzdG9yZUZyb21TZXNzaW9uU3RhdGUpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OmFkZE9yVXBkYXRl
QmFja0ZvcndhcmRJdGVtKTogUmVuYW1lZCBmcm9tICJhZGRCYWNrRm9yd2FyZEl0ZW0iIGZvciBj
bGFyaXR5CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6YWRkQmFja0ZvcndhcmRJ
dGVtKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbjoKKworICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tOgorICAgICAgICAo
V2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmVuZFN3aXBlR2VzdHVyZSk6CisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbToKKyAgICAgICAg
KFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjplbmRTd2lwZUdlc3R1cmUpOgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9TZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6dG9QYWdlU3RhdGUpOgorICAgICAgICAoV2ViS2l0Ojp0b0hp
c3RvcnlJdGVtKToKKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2Fy
ZExpc3RQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OnVwZGF0ZUJhY2tGb3J3YXJkSXRlbSk6
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2U6OmdvVG9CYWNrRm9yd2FyZEl0ZW0pOiBDb21iaW5lZCAiZ29CYWNrIiBh
bmQgImdvRm9yd2FyZCIgd2l0aCB0aGlzIG1ldGhvZCwKKyAgICAgICAgICBwYXNzaW5nIHRoZSBh
cHByb3ByaWF0ZSBGcmFtZUxvYWRUeXBlIGFyb3VuZCBhcyBuZWVkZWQgdG8gcmVtZW1iZXIgdGhl
IHNwZWNpZmljIHR5cGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdvRm9yd2FyZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdvQmFjayk6IERlbGV0ZWQuCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKwogMjAxOC0wMy0yMSAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJlZ3Jlc3Npb24ocjIyOTgzMSk6IFByb2Nl
c3NTd2FwLkJhc2ljIEFQSSB0ZXN0IGlzIGNyYXNoaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VM
b2cKaW5kZXggZWI3YTdhMzFjNmE4ZjAxYmVmMGEzYmY3MWZhMzdiNjZhY2RlNGZjMS4uMDg2ZDY2
YWUwYzVkOGI5ZGU5ZDIzMDY5NzM5YTZjYmI0YjAwZGIwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE4LTAzLTIzICBCcmFkeSBFaWRzb24gIDxiZWlk
c29uQGFwcGxlLmNvbT4KKworICAgICAgICBHbyB0byBiYWNrL2ZvcndhcmQgbGlzdCBpdGVtcyBh
ZnRlciBhIHByb2Nlc3Mtc3dhcHBlZCBuYXZpZ2F0aW9uLgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzg2OTA1NDQ+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTgzOTIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5keSBFc3Rlcy4KKworICAgICAgICAqIFdl
YlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfbG9hZEJhY2tGb3J3YXJkTGlz
dEZyb21PdGhlclZpZXc6XSk6CisgICAgICAgICgtW1dlYlZpZXcgZ29Ub0JhY2tGb3J3YXJkSXRl
bTpdKToKKwogMjAxOC0wMy0yMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNv
bT4KIAogICAgICAgICBFbmFibGUgdGhlIG1pbmltYWwgc2ltdWxhdG9yIGZlYXR1cmUgZmxhZyB3
aGVuIGFwcHJvcHJpYXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKaW5kZXggY2ZmYTdmMjE4
NDIyMmU2ZWJhODk0MDgxNTViYTMxYTU2YTNkMmQxNy4uN2EwZjk5YTdjZThmOTJiMWQzOWMxOWNj
ZjQzZGRmNmE1NmJmM2JkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE0IEBACisyMDE4LTAzLTIzICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBHbyB0byBiYWNrL2ZvcndhcmQgbGlzdCBpdGVtcyBhZnRlciBhIHByb2Nlc3Mtc3dh
cHBlZCBuYXZpZ2F0aW9uLgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzg2OTA1NDQ+IGFuZCBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgzOTIwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQW5keSBFc3Rlcy4KKworICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAg
ICAoV2ViVmlldzo6Z29Ub0JhY2tGb3J3YXJkSXRlbSk6CisgICAgICAgIChXZWJWaWV3Ojpsb2Fk
QmFja0ZvcndhcmRMaXN0RnJvbU90aGVyVmlldyk6CisKIDIwMTgtMDMtMTUgIFlvdXN1a2UgS2lt
b3RvICA8eW91c3VrZS5raW1vdG9Ac29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBGaXgg
YnVpbGQgZXJyb3JzIHdoZW4gRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgaXMgdHVybmVkIG9m
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGNkYzYyMzUxZWE5ZGNlYTgxY2VjYmZlNTlmN2VkMTM0YTdiZTUwOTAuLmQ3MDE4MmI3
NjNjZjkyNTZjNDQzMWQ0OTc5MzdkODdlYjNhZWViMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzNDIsNiArMTM0Miw3IEBA
CiAJCTUxMEQ0QTM3MTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTMxMTAzMTY1
RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MTBENEEzODEwMzE2NUVFMDA0OUVBNTQgLyog
U29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MTBENEEzMjEwMzE2NUVFMDA0OUVBNTQgLyogU29ja2V0U3RyZWFt
SGFuZGxlQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNTExMEZDRkMxRTAzNjQxRDAwNkY4RDBCIC8qIElEQkN1cnNvclJlY29yZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMEZDRkIxRTAz
NjJBNTAwNkY4RDBCIC8qIElEQkN1cnNvclJlY29yZC5oICovOyB9OworCQk1MTFFOTdBMzIwNjMw
NzQ2MDBBRDQ1OTkgLyogTmF2aWdhdGlvblBvbGljeUNoZWNrLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTFFOTdBMTIwNjMwNzJBMDBBRDQ1OTkgLyog
TmF2aWdhdGlvblBvbGljeUNoZWNrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNTExRUMxMjgxQzUwQUFDQTAwMzJGOTgzIC8qIElEQlNlcmlhbGl6
YXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MUVDMTI2MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJTZXJpYWxpemF0aW9uLmggKi87IH07CiAJCTUx
MUVDMTJDMUM1MEFCQkYwMDMyRjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExRUMxMkExQzUwQUJCQTAw
MzJGOTgzIC8qIFNRTGl0ZUlEQlRyYW5zYWN0aW9uLmggKi87IH07CiAJCTUxMUVDMTMwMUM1MEFC
RjUwMDMyRjk4MyAvKiBTUUxpdGVJREJDdXJzb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMUVDMTJFMUM1MEFCRUMwMDMyRjk4MyAvKiBTUUxpdGVJ
REJDdXJzb3IuaCAqLzsgfTsKQEAgLTc3MDEsNiArNzcwMiw3IEBACiAJCTUxMEQ0QTMxMTAzMTY1
RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTUxMEQ0QTMyMTAzMTY1RUUwMDQ5RUE1NCAvKiBTb2NrZXRTdHJlYW1IYW5kbGVDbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU29ja2V0U3RyZWFtSGFuZGxl
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMTBGQ0ZCMUUwMzYyQTUw
MDZGOEQwQiAvKiBJREJDdXJzb3JSZWNvcmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSURCQ3Vyc29yUmVjb3JkLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUx
MUU5N0ExMjA2MzA3MkEwMEFENDU5OSAvKiBOYXZpZ2F0aW9uUG9saWN5Q2hlY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF2aWdhdGlvblBvbGljeUNoZWNrLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMUVDMTI1MUM1MEFBNTcwMDMyRjk4MyAvKiBJREJT
ZXJpYWxpemF0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElE
QlNlcmlhbGl6YXRpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTFFQzEy
NjFDNTBBQTU3MDAzMkY5ODMgLyogSURCU2VyaWFsaXphdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJREJTZXJpYWxpemF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUxMUVDMTI5MUM1MEFCQkEwMDMyRjk4MyAvKiBTUUxpdGVJREJUcmFuc2FjdGlv
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTUUxpdGVJREJUcmFu
c2FjdGlvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzk2MSw2ICsyMzk2
Myw3IEBACiAJCQkJOTNDQ0YwNUYwQUY2Q0E3NjAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24u
Y3BwICovLAogCQkJCTkzQ0NGMDI2MEFGNkM1MjkwMDAxOEU4OSAvKiBOYXZpZ2F0aW9uQWN0aW9u
LmggKi8sCiAJCQkJOUJBODI3NzgxRjA2MTU2NTAwRjcxRTc1IC8qIE5hdmlnYXRpb25EaXNhYmxl
ci5oICovLAorCQkJCTUxMUU5N0ExMjA2MzA3MkEwMEFENDU5OSAvKiBOYXZpZ2F0aW9uUG9saWN5
Q2hlY2suaCAqLywKIAkJCQk5NzlGNDNEMTEwNzVFNDRBMDAwMEY4M0IgLyogTmF2aWdhdGlvblNj
aGVkdWxlci5jcHAgKi8sCiAJCQkJOTc5RjQzRDIxMDc1RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRp
b25TY2hlZHVsZXIuaCAqLywKIAkJCQk5M0UyMjdERDBBRjU4OUFEMDBENDgzMjQgLyogTmV0c2Nh
cGVQbHVnSW5TdHJlYW1Mb2FkZXIuY3BwICovLApAQCAtMjkxMjksNiArMjkxMzIsNyBAQAogCQkJ
CTgzQjJEMTc1MUI4QkNENkEwMEEwMkU0NyAvKiBOYXRpdmVOb2RlRmlsdGVyLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlFMTBCOUI2QzBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29s
dmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0NDRjAyNzBBRjZDNTI5MDAwMThFODkgLyogTmF2
aWdhdGlvbkFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTExRTk3QTMyMDYzMDc0NjAwQUQ0
NTk5IC8qIE5hdmlnYXRpb25Qb2xpY3lDaGVjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc5RjQz
RDQxMDc1RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRpb25TY2hlZHVsZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUE5QzZFNUE2MEQ3NDY0NTgwMDY0NDJFOSAvKiBOYXZpZ2F0b3IuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUUxMjcxOUM3MEVFRUMxNjgwMEY2MTIxMyAvKiBOYXZpZ2F0b3JCYXNlLmggaW4g
SGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0Zvcndh
cmRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvQmFja0ZvcndhcmRDb250
cm9sbGVyLmNwcAppbmRleCBmNDUwOTI2M2MwNDAxOGJkZmE4ZDUyNWViYjE3NmE5ZWI2YTkxNjFl
Li4wZjA1YmY2NWEzNWQ2MDdhNjhiYjI2ZmZkY2Y0Zjc3NjJlNDQ5YWUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9oaXN0b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaGlzdG9yeS9CYWNrRm9yd2FyZENvbnRyb2xsZXIuY3BwCkBAIC0yNyw2ICsy
Nyw3IEBACiAjaW5jbHVkZSAiQmFja0ZvcndhcmRDb250cm9sbGVyLmgiCiAKICNpbmNsdWRlICJC
YWNrRm9yd2FyZENsaWVudC5oIgorI2luY2x1ZGUgIk5hdmlnYXRpb25Qb2xpY3lDaGVjay5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNjksNyArNzAsNyBA
QCB2b2lkIEJhY2tGb3J3YXJkQ29udHJvbGxlcjo6Z29CYWNrT3JGb3J3YXJkKGludCBkaXN0YW5j
ZSkKICAgICBpZiAoIWl0ZW0pCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZS5nb1RvSXRl
bSgqaXRlbSwgRnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJkKTsKKyAgICBtX3BhZ2Uu
Z29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwgTmF2aWdh
dGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKTsKIH0KIAogYm9vbCBCYWNrRm9yd2FyZENvbnRyb2xs
ZXI6OmdvQmFjaygpCkBAIC03OCw3ICs3OSw3IEBAIGJvb2wgQmFja0ZvcndhcmRDb250cm9sbGVy
Ojpnb0JhY2soKQogICAgIGlmICghaXRlbSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAg
bV9wYWdlLmdvVG9JdGVtKCppdGVtLCBGcmFtZUxvYWRUeXBlOjpCYWNrKTsKKyAgICBtX3BhZ2Uu
Z29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6OkJhY2ssIE5hdmlnYXRpb25Qb2xpY3lDaGVj
azo6UmVxdWlyZSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTg4LDcgKzg5LDcgQEAgYm9v
bCBCYWNrRm9yd2FyZENvbnRyb2xsZXI6OmdvRm9yd2FyZCgpCiAgICAgaWYgKCFpdGVtKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBtX3BhZ2UuZ29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9h
ZFR5cGU6OkZvcndhcmQpOworICAgIG1fcGFnZS5nb1RvSXRlbSgqaXRlbSwgRnJhbWVMb2FkVHlw
ZTo6Rm9yd2FyZCwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKTsKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9IaXN0b3J5SXRl
bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVtLmNwcAppbmRleCA2YzMw
MzRjYWUwMjUwNzNkNDhiMjA5MTY3NDJlYzk0ZGFhMzZkYzhiLi45ZDg2ODk4OGFkMGVkYWUwMGQ5
NWY4NDJmZDM4MjMyNGRmOWY1NTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5
L0hpc3RvcnlJdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L0hpc3RvcnlJdGVt
LmNwcApAQCAtMzExLDYgKzMxMSw3IEBAIHZvaWQgSGlzdG9yeUl0ZW06OnNldElzVGFyZ2V0SXRl
bShib29sIGZsYWcpCiB2b2lkIEhpc3RvcnlJdGVtOjpzZXRTdGF0ZU9iamVjdChSZWZQdHI8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiYmIG9iamVjdCkKIHsKICAgICBtX3N0YXRlT2JqZWN0ID0gV1RG
TW92ZShvYmplY3QpOworICAgIG5vdGlmeUhpc3RvcnlJdGVtQ2hhbmdlZCh0aGlzKTsKIH0KIAog
dm9pZCBIaXN0b3J5SXRlbTo6YWRkQ2hpbGRJdGVtKFJlZjxIaXN0b3J5SXRlbT4mJiBjaGlsZCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmluZGV4IGQ3NmU0NDEwYjYxNTk2NDcw
OGYyMGZhYzRkOTg1ZDIzNjk0OWMwNWQuLmZjZjg2NDk0MzRlMGIwMGNkMGUzNjMzZTdhOTlhMzVl
N2ZlY2FkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcApAQCAtODcsNiAr
ODcsNyBAQAogI2luY2x1ZGUgIk1lbW9yeUNhY2hlLmgiCiAjaW5jbHVkZSAiTWVtb3J5UmVsZWFz
ZS5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25EaXNhYmxlci5oIgorI2luY2x1ZGUgIk5hdmlnYXRp
b25Qb2xpY3lDaGVjay5oIgogI2luY2x1ZGUgIk5hdmlnYXRpb25TY2hlZHVsZXIuaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFnZUNhY2hlLmgiCkBAIC05MjcsNyArOTI4LDcgQEAg
dm9pZCBGcmFtZUxvYWRlcjo6bG9hZFVSTEludG9DaGlsZEZyYW1lKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBTdHJpbmcmIHJlZmVyZXIsIEYKICAgICBpZiAocGFyZW50SXRlbSAmJiBwYXJlbnRJdGVt
LT5jaGlsZHJlbigpLnNpemUoKSAmJiBpc0JhY2tGb3J3YXJkTG9hZFR5cGUobG9hZFR5cGUoKSkg
JiYgIW1fZnJhbWUuZG9jdW1lbnQoKS0+bG9hZEV2ZW50RmluaXNoZWQoKSkgewogICAgICAgICBp
ZiAoYXV0byogY2hpbGRJdGVtID0gcGFyZW50SXRlbS0+Y2hpbGRJdGVtV2l0aFRhcmdldChjaGls
ZEZyYW1lLT50cmVlKCkudW5pcXVlTmFtZSgpKSkgewogICAgICAgICAgICAgY2hpbGRGcmFtZS0+
bG9hZGVyKCkubV9yZXF1ZXN0ZWRIaXN0b3J5SXRlbSA9IGNoaWxkSXRlbTsKLSAgICAgICAgICAg
IGNoaWxkRnJhbWUtPmxvYWRlcigpLmxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oKmNoaWxkSXRl
bSwgbG9hZFR5cGUoKSwgTWF5QXR0ZW1wdENhY2hlT25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0
ZW0pOworICAgICAgICAgICAgY2hpbGRGcmFtZS0+bG9hZGVyKCkubG9hZERpZmZlcmVudERvY3Vt
ZW50SXRlbSgqY2hpbGRJdGVtLCBsb2FkVHlwZSgpLCBNYXlBdHRlbXB0Q2FjaGVPbmx5TG9hZEZv
ckZvcm1TdWJtaXNzaW9uSXRlbSwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKTsKICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogICAgIH0KQEAgLTM0NjUsNyArMzQ2Niw3IEBA
IHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRTYW1lRG9jdW1lbnRJdGVtKEhpc3RvcnlJdGVtJiBpdGVt
KQogLy8gRklYTUU6IFRoaXMgZnVuY3Rpb24gc2hvdWxkIHJlYWxseSBiZSBzcGxpdCBpbnRvIGEg
Y291cGxlIHBpZWNlcywgc29tZSBvZgogLy8gd2hpY2ggc2hvdWxkIGJlIG1ldGhvZHMgb2YgSGlz
dG9yeUNvbnRyb2xsZXIgYW5kIHNvbWUgb2Ygd2hpY2ggc2hvdWxkIGJlCiAvLyBtZXRob2RzIG9m
IEZyYW1lTG9hZGVyLgotdm9pZCBGcmFtZUxvYWRlcjo6bG9hZERpZmZlcmVudERvY3VtZW50SXRl
bShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSwgRm9ybVN1Ym1pc3Np
b25DYWNoZUxvYWRQb2xpY3kgY2FjaGVMb2FkUG9saWN5KQordm9pZCBGcmFtZUxvYWRlcjo6bG9h
ZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlwZSBs
b2FkVHlwZSwgRm9ybVN1Ym1pc3Npb25DYWNoZUxvYWRQb2xpY3kgY2FjaGVMb2FkUG9saWN5LCBO
YXZpZ2F0aW9uUG9saWN5Q2hlY2sgbmF2aWdhdGlvblBvbGljeUNoZWNrKQogewogICAgIC8vIFJl
bWVtYmVyIHRoaXMgaXRlbSBzbyB3ZSBjYW4gdHJhdmVyc2UgYW55IGNoaWxkIGl0ZW1zIGFzIGNo
aWxkIGZyYW1lcyBsb2FkCiAgICAgaGlzdG9yeSgpLnNldFByb3Zpc2lvbmFsSXRlbSgmaXRlbSk7
CkBAIC0zNTYzLDExICszNTY0LDEzIEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWREaWZmZXJlbnRE
b2N1bWVudEl0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEZyYW1lTG9hZFR5cGUgbG9hCiAgICAgICAg
IGFjdGlvbiA9IHsgKm1fZnJhbWUuZG9jdW1lbnQoKSwgcmVxdWVzdEZvck9yaWdpbmFsVVJMLCBp
bml0aWF0ZWRCeU1haW5GcmFtZSwgbG9hZFR5cGUsIGlzRm9ybVN1Ym1pc3Npb24sIGV2ZW50LCBz
aG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IH07CiAgICAgfQogCisgICAgU2V0Rm9yU2NvcGU8
Ym9vbD4gY3VycmVudExvYWRTaG91bGRDaGVja05hdmlnYXRpb25Qb2xpY3lHdWFyZChtX2N1cnJl
bnRMb2FkU2hvdWxkQ2hlY2tOYXZpZ2F0aW9uUG9saWN5LCBuYXZpZ2F0aW9uUG9saWN5Q2hlY2sg
IT0gTmF2aWdhdGlvblBvbGljeUNoZWNrOjpCeXBhc3MpOworCiAgICAgbG9hZFdpdGhOYXZpZ2F0
aW9uQWN0aW9uKHJlcXVlc3QsIGFjdGlvbiwgTG9ja0hpc3Rvcnk6Ok5vLCBsb2FkVHlwZSwgMCwg
QWxsb3dOYXZpZ2F0aW9uVG9JbnZhbGlkVVJMOjpZZXMsIFtdIHsgfSk7CiB9CiAKIC8vIExvYWRz
IGNvbnRlbnQgaW50byB0aGlzIGZyYW1lLCBhcyBzcGVjaWZpZWQgYnkgaGlzdG9yeSBpdGVtCi12
b2lkIEZyYW1lTG9hZGVyOjpsb2FkSXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgRnJhbWVMb2FkVHlw
ZSBsb2FkVHlwZSkKK3ZvaWQgRnJhbWVMb2FkZXI6OmxvYWRJdGVtKEhpc3RvcnlJdGVtJiBpdGVt
LCBGcmFtZUxvYWRUeXBlIGxvYWRUeXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2sgbmF2aWdhdGlv
blBvbGljeUNoZWNrKQogewogICAgIG1fcmVxdWVzdGVkSGlzdG9yeUl0ZW0gPSAmaXRlbTsKICAg
ICBIaXN0b3J5SXRlbSogY3VycmVudEl0ZW0gPSBoaXN0b3J5KCkuY3VycmVudEl0ZW0oKTsKQEAg
LTM1NzYsNyArMzU3OSw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OmxvYWRJdGVtKEhpc3RvcnlJdGVt
JiBpdGVtLCBGcmFtZUxvYWRUeXBlIGxvYWRUeXBlKQogICAgIGlmIChzYW1lRG9jdW1lbnROYXZp
Z2F0aW9uKQogICAgICAgICBsb2FkU2FtZURvY3VtZW50SXRlbShpdGVtKTsKICAgICBlbHNlCi0g
ICAgICAgIGxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oaXRlbSwgbG9hZFR5cGUsIE1heUF0dGVt
cHRDYWNoZU9ubHlMb2FkRm9yRm9ybVN1Ym1pc3Npb25JdGVtKTsKKyAgICAgICAgbG9hZERpZmZl
cmVudERvY3VtZW50SXRlbShpdGVtLCBsb2FkVHlwZSwgTWF5QXR0ZW1wdENhY2hlT25seUxvYWRG
b3JGb3JtU3VibWlzc2lvbkl0ZW0sIG5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CiB9CiAKIHZvaWQg
RnJhbWVMb2FkZXI6OnJldHJ5QWZ0ZXJGYWlsZWRDYWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKCkK
QEAgLTM1OTEsNyArMzU5NCw3IEBAIHZvaWQgRnJhbWVMb2FkZXI6OnJldHJ5QWZ0ZXJGYWlsZWRD
YWNoZU9ubHlNYWluUmVzb3VyY2VMb2FkKCkKICAgICBIaXN0b3J5SXRlbSYgaXRlbSA9ICpoaXN0
b3J5KCkucHJvdmlzaW9uYWxJdGVtKCk7CiAKICAgICBzdG9wQWxsTG9hZGVycyhTaG91bGROb3RD
bGVhclByb3Zpc2lvbmFsSXRlbSk7Ci0gICAgbG9hZERpZmZlcmVudERvY3VtZW50SXRlbShpdGVt
LCBsb2FkVHlwZSwgTWF5Tm90QXR0ZW1wdENhY2hlT25seUxvYWRGb3JGb3JtU3VibWlzc2lvbkl0
ZW0pOworICAgIGxvYWREaWZmZXJlbnREb2N1bWVudEl0ZW0oaXRlbSwgbG9hZFR5cGUsIE1heU5v
dEF0dGVtcHRDYWNoZU9ubHlMb2FkRm9yRm9ybVN1Ym1pc3Npb25JdGVtLCBOYXZpZ2F0aW9uUG9s
aWN5Q2hlY2s6OlJlcXVpcmUpOwogfQogCiBSZXNvdXJjZUVycm9yIEZyYW1lTG9hZGVyOjpjYW5j
ZWxsZWRFcnJvcihjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IDhlNGI5NWViMTQzNjdkMjE1OTllYzNhYjBkOTVh
ODBkZjlkMjIyNDIuLjdlNWVkNWRkN2U2MjYyNDIxMTA5ZjZlMDc0OTk5NTZjNDBiNDEwMTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC04MCw2ICs4MCw4IEBAIGNsYXNzIFNo
YXJlZEJ1ZmZlcjsKIGNsYXNzIFN1YmZyYW1lTG9hZGVyOwogY2xhc3MgU3Vic3RpdHV0ZURhdGE7
CiAKK2VudW0gY2xhc3MgTmF2aWdhdGlvblBvbGljeUNoZWNrOworCiBzdHJ1Y3QgV2luZG93RmVh
dHVyZXM7CiAKIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNCYWNrRm9yd2FyZExvYWRUeXBlKEZyYW1l
TG9hZFR5cGUpOwpAQCAtMTI1LDcgKzEyNyw3IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbG9hZFdpdGhPdmVycmlkZUVuY29kaW5nKGNvbnN0IFN0cmluZyYgb3ZlcnJpZGVF
bmNvZGluZyk7CiAKICAgICB2b2lkIG9wZW4oQ2FjaGVkRnJhbWVCYXNlJik7Ci0gICAgdm9pZCBs
b2FkSXRlbShIaXN0b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUpOworICAgIHZvaWQgbG9hZEl0ZW0o
SGlzdG9yeUl0ZW0mLCBGcmFtZUxvYWRUeXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogICAg
IEhpc3RvcnlJdGVtKiByZXF1ZXN0ZWRIaXN0b3J5SXRlbSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVx
dWVzdGVkSGlzdG9yeUl0ZW0uZ2V0KCk7IH0KIAogICAgIHZvaWQgcmV0cnlBZnRlckZhaWxlZENh
Y2hlT25seU1haW5SZXNvdXJjZUxvYWQoKTsKQEAgLTMxNyw3ICszMTksNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgY2hlY2tUaW1lckZpcmVkKCk7CiAKICAgICB2b2lkIGxvYWRTYW1lRG9jdW1lbnRJ
dGVtKEhpc3RvcnlJdGVtJik7Ci0gICAgdm9pZCBsb2FkRGlmZmVyZW50RG9jdW1lbnRJdGVtKEhp
c3RvcnlJdGVtJiwgRnJhbWVMb2FkVHlwZSwgRm9ybVN1Ym1pc3Npb25DYWNoZUxvYWRQb2xpY3kp
OworICAgIHZvaWQgbG9hZERpZmZlcmVudERvY3VtZW50SXRlbShIaXN0b3J5SXRlbSYsIEZyYW1l
TG9hZFR5cGUsIEZvcm1TdWJtaXNzaW9uQ2FjaGVMb2FkUG9saWN5LCBOYXZpZ2F0aW9uUG9saWN5
Q2hlY2spOwogCiAgICAgdm9pZCBsb2FkUHJvdmlzaW9uYWxJdGVtRnJvbUNhY2hlZFBhZ2UoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlclR5cGVzLmgKaW5kZXggNTliNmE2MjNk
MTViZDA1N2I4ODYzMWYyNDI5MDUwZGZkOWQwMmJkZi4uNmRlMWI2ZmFhZmUyZTlhZDM1NGU2OTky
Y2I3NGVjOGFkM2MyOTMxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyVHlwZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJUeXBl
cy5oCkBAIC0xNjQsNCArMTY0LDIwIEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2Vi
Q29yZTo6UG9saWN5QWN0aW9uPiB7CiAgICAgPjsKIH07CiAKK3RlbXBsYXRlPD4gc3RydWN0IEVu
dW1UcmFpdHM8V2ViQ29yZTo6RnJhbWVMb2FkVHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVu
dW1WYWx1ZXM8CisgICAgICAgIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUsCisgICAgICAgIFdlYkNv
cmU6OkZyYW1lTG9hZFR5cGU6OlN0YW5kYXJkLAorICAgICAgICBXZWJDb3JlOjpGcmFtZUxvYWRU
eXBlOjpCYWNrLAorICAgICAgICBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlOjpGb3J3YXJkLAorICAg
ICAgICBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsCisgICAgICAg
IFdlYkNvcmU6OkZyYW1lTG9hZFR5cGU6OlJlbG9hZCwKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVM
b2FkVHlwZTo6U2FtZSwKKyAgICAgICAgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZTo6UmVkaXJlY3RX
aXRoTG9ja2VkQmFja0ZvcndhcmRMaXN0LAorICAgICAgICBXZWJDb3JlOjpGcmFtZUxvYWRUeXBl
OjpSZXBsYWNlLAorICAgICAgICBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlOjpSZWxvYWRGcm9tT3Jp
Z2luLAorICAgICAgICBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlOjpSZWxvYWRFeHBpcmVkT25seQor
ICAgID47Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
SGlzdG9yeUNvbnRyb2xsZXIuY3BwCmluZGV4IGI4ZWU3MzM2YjdjZDk3ZGE1MDVjNDkwOGYxNTM5
ZTY3N2FmNmYwYTAuLmVhMjU2N2I2MzgwMDRkN2I4MDY2MGFkNjE2NzlmZjljZDFjZGFkMTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcApAQCAtNDMsNiAr
NDMsNyBAQAogI2luY2x1ZGUgIkhpc3RvcnlJdGVtLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgog
I2luY2x1ZGUgIk1haW5GcmFtZS5oIgorI2luY2x1ZGUgIk5hdmlnYXRpb25Qb2xpY3lDaGVjay5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlQ2FjaGUuaCIKICNpbmNsdWRlICJT
Y3JvbGxpbmdDb29yZGluYXRvci5oIgpAQCAtMjkwLDcgKzI5MSw3IEBAIGJvb2wgSGlzdG9yeUNv
bnRyb2xsZXI6OnNob3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0oSGlzdG9yeUl0ZW0mIHRh
cmdldEl0ZW0pCiAKIC8vIE1haW4gZnVubmVsIGZvciBuYXZpZ2F0aW5nIHRvIGEgcHJldmlvdXMg
bG9jYXRpb24gKGJhY2svZm9yd2FyZCwgbm9uLXNlYXJjaCBzbmFwLWJhY2spCiAvLyBUaGlzIGlu
Y2x1ZGVzIHJlY3Vyc2lvbiB0byBoYW5kbGUgbG9hZGluZyBpbnRvIGZyYW1lc2V0cyBwcm9wZXJs
eQotdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6Z29Ub0l0ZW0oSGlzdG9yeUl0ZW0mIHRhcmdldEl0
ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSkKK3ZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OmdvVG9JdGVt
KEhpc3RvcnlJdGVtJiB0YXJnZXRJdGVtLCBGcmFtZUxvYWRUeXBlIHR5cGUsIE5hdmlnYXRpb25Q
b2xpY3lDaGVjayBuYXZpZ2F0aW9uUG9saWN5Q2hlY2spCiB7CiAgICAgTE9HKEhpc3RvcnksICJI
aXN0b3J5Q29udHJvbGxlciAlcCBnb1RvSXRlbSAlcCB0eXBlPSVkIiwgdGhpcywgJnRhcmdldEl0
ZW0sIHN0YXRpY19jYXN0PGludD4odHlwZSkpOwogCkBAIC0zMjUsMTQgKzMyNiwxNCBAQCB2b2lk
IEhpc3RvcnlDb250cm9sbGVyOjpnb1RvSXRlbShIaXN0b3J5SXRlbSYgdGFyZ2V0SXRlbSwgRnJh
bWVMb2FkVHlwZSB0eXBlKQogICAgIHJlY3Vyc2l2ZVNldFByb3Zpc2lvbmFsSXRlbSh0YXJnZXRJ
dGVtLCBjdXJyZW50SXRlbS5nZXQoKSk7CiAKICAgICAvLyBOb3cgdGhhdCBhbGwgb3RoZXIgZnJh
bWVzIGhhdmUgcHJvdmlzaW9uYWwgaXRlbXMsIGRvIHRoZSBhY3R1YWwgbmF2aWdhdGlvbi4KLSAg
ICByZWN1cnNpdmVHb1RvSXRlbSh0YXJnZXRJdGVtLCBjdXJyZW50SXRlbS5nZXQoKSwgdHlwZSk7
CisgICAgcmVjdXJzaXZlR29Ub0l0ZW0odGFyZ2V0SXRlbSwgY3VycmVudEl0ZW0uZ2V0KCksIHR5
cGUsIG5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CiB9CiAKIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6
OnNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcikKIHsKICAgICBtX2RlZmVyc0xvYWRpbmcgPSBk
ZWZlcjsKICAgICBpZiAoIWRlZmVyICYmIG1fZGVmZXJyZWRJdGVtKSB7Ci0gICAgICAgIGdvVG9J
dGVtKCptX2RlZmVycmVkSXRlbSwgbV9kZWZlcnJlZEZyYW1lTG9hZFR5cGUpOworICAgICAgICBn
b1RvSXRlbSgqbV9kZWZlcnJlZEl0ZW0sIG1fZGVmZXJyZWRGcmFtZUxvYWRUeXBlLCBOYXZpZ2F0
aW9uUG9saWN5Q2hlY2s6OlJlcXVpcmUpOwogICAgICAgICBtX2RlZmVycmVkSXRlbSA9IG51bGxw
dHI7CiAgICAgfQogfQpAQCAtNzQ5LDEwICs3NTAsMTAgQEAgdm9pZCBIaXN0b3J5Q29udHJvbGxl
cjo6cmVjdXJzaXZlU2V0UHJvdmlzaW9uYWxJdGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5
SXQKIAogLy8gV2Ugbm93IHRyYXZlcnNlIHRoZSBmcmFtZSB0cmVlIGFuZCBpdGVtIHRyZWUgYSBz
ZWNvbmQgdGltZSwgbG9hZGluZyBmcmFtZXMgdGhhdAogLy8gZG8gaGF2ZSB0aGUgY29udGVudCB0
aGUgaXRlbSByZXF1ZXN0cy4KLXZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnJlY3Vyc2l2ZUdvVG9J
dGVtKEhpc3RvcnlJdGVtJiBpdGVtLCBIaXN0b3J5SXRlbSogZnJvbUl0ZW0sIEZyYW1lTG9hZFR5
cGUgdHlwZSkKK3ZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnJlY3Vyc2l2ZUdvVG9JdGVtKEhpc3Rv
cnlJdGVtJiBpdGVtLCBIaXN0b3J5SXRlbSogZnJvbUl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSwg
TmF2aWdhdGlvblBvbGljeUNoZWNrIG5hdmlnYXRpb25Qb2xpY3lDaGVjaykKIHsKICAgICBpZiAo
IWl0ZW1zQXJlQ2xvbmVzKGl0ZW0sIGZyb21JdGVtKSkgewotICAgICAgICBtX2ZyYW1lLmxvYWRl
cigpLmxvYWRJdGVtKGl0ZW0sIHR5cGUpOworICAgICAgICBtX2ZyYW1lLmxvYWRlcigpLmxvYWRJ
dGVtKGl0ZW0sIHR5cGUsIG5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKQEAgLTc2Myw3ICs3NjQsNyBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjpyZWN1
cnNpdmVHb1RvSXRlbShIaXN0b3J5SXRlbSYgaXRlbSwgSGlzdG9yeUl0ZW0qIGZyb21JdAogICAg
ICAgICBIaXN0b3J5SXRlbSogZnJvbUNoaWxkSXRlbSA9IGZyb21JdGVtLT5jaGlsZEl0ZW1XaXRo
VGFyZ2V0KGNoaWxkRnJhbWVOYW1lKTsKICAgICAgICAgQVNTRVJUKGZyb21DaGlsZEl0ZW0pOwog
ICAgICAgICBpZiAoRnJhbWUqIGNoaWxkRnJhbWUgPSBtX2ZyYW1lLnRyZWUoKS5jaGlsZChjaGls
ZEZyYW1lTmFtZSkpCi0gICAgICAgICAgICBjaGlsZEZyYW1lLT5sb2FkZXIoKS5oaXN0b3J5KCku
cmVjdXJzaXZlR29Ub0l0ZW0oY2hpbGRJdGVtLCBmcm9tQ2hpbGRJdGVtLCB0eXBlKTsKKyAgICAg
ICAgICAgIGNoaWxkRnJhbWUtPmxvYWRlcigpLmhpc3RvcnkoKS5yZWN1cnNpdmVHb1RvSXRlbShj
aGlsZEl0ZW0sIGZyb21DaGlsZEl0ZW0sIHR5cGUsIG5hdmlnYXRpb25Qb2xpY3lDaGVjayk7CiAg
ICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5oCmluZGV4
IDNkMjVlMjg5YjIyZmIxZjk5NjNmNmRmYjMzNDc4OTU4MWQwOTI3MDEuLjQ1MzVhYWViMzgwZDE4
NWM5YTExMTlmYjU4ODRjNThmMzBmNTkwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9IaXN0b3J5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0
b3J5Q29udHJvbGxlci5oCkBAIC00MCw2ICs0MCw4IEBAIGNsYXNzIEZyYW1lOwogY2xhc3MgSGlz
dG9yeUl0ZW07CiBjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiAKK2VudW0gY2xhc3MgTmF2
aWdhdGlvblBvbGljeUNoZWNrOworCiBzdHJ1Y3QgU3RyaW5nV2l0aERpcmVjdGlvbjsKIAogY2xh
c3MgSGlzdG9yeUNvbnRyb2xsZXIgewpAQCAtOTIsMTQgKzk0LDE0IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgZnJpZW5kIGNsYXNzIFBhZ2U7CiAgICAgYm9vbCBzaG91bGRTdG9wTG9hZGluZ0Zv
ckhpc3RvcnlJdGVtKEhpc3RvcnlJdGVtJikgY29uc3Q7Ci0gICAgdm9pZCBnb1RvSXRlbShIaXN0
b3J5SXRlbSYsIEZyYW1lTG9hZFR5cGUpOworICAgIHZvaWQgZ29Ub0l0ZW0oSGlzdG9yeUl0ZW0m
LCBGcmFtZUxvYWRUeXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogCiAgICAgdm9pZCBpbml0
aWFsaXplSXRlbShIaXN0b3J5SXRlbSYpOwogICAgIFJlZjxIaXN0b3J5SXRlbT4gY3JlYXRlSXRl
bSgpOwogICAgIFJlZjxIaXN0b3J5SXRlbT4gY3JlYXRlSXRlbVRyZWUoRnJhbWUmIHRhcmdldEZy
YW1lLCBib29sIGNsaXBBdFRhcmdldCk7CiAKICAgICB2b2lkIHJlY3Vyc2l2ZVNldFByb3Zpc2lv
bmFsSXRlbShIaXN0b3J5SXRlbSYsIEhpc3RvcnlJdGVtKik7Ci0gICAgdm9pZCByZWN1cnNpdmVH
b1RvSXRlbShIaXN0b3J5SXRlbSYsIEhpc3RvcnlJdGVtKiwgRnJhbWVMb2FkVHlwZSk7CisgICAg
dm9pZCByZWN1cnNpdmVHb1RvSXRlbShIaXN0b3J5SXRlbSYsIEhpc3RvcnlJdGVtKiwgRnJhbWVM
b2FkVHlwZSwgTmF2aWdhdGlvblBvbGljeUNoZWNrKTsKICAgICBib29sIGlzUmVwbGFjZUxvYWRU
eXBlV2l0aFByb3Zpc2lvbmFsSXRlbShGcmFtZUxvYWRUeXBlKTsKICAgICBib29sIGlzUmVsb2Fk
VHlwZVdpdGhQcm92aXNpb25hbEl0ZW0oRnJhbWVMb2FkVHlwZSk7CiAgICAgdm9pZCByZWN1cnNp
dmVVcGRhdGVGb3JDb21taXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9O
YXZpZ2F0aW9uUG9saWN5Q2hlY2suaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9OYXZpZ2F0aW9u
UG9saWN5Q2hlY2suaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjE3OGVmZGNhOGVkMGRhOGUzOWEyNmRlMmFjNWQ4
NmNiM2M4YjY0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL05hdmln
YXRpb25Qb2xpY3lDaGVjay5oCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21h
IG9uY2UKKworI2luY2x1ZGUgPHd0Zi9FbnVtVHJhaXRzLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworZW51bSBjbGFzcyBOYXZpZ2F0aW9uUG9saWN5Q2hlY2sgeworICAgIFJlcXVpcmUsCisg
ICAgQnlwYXNzLAorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RG
IHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpOYXZpZ2F0aW9uUG9s
aWN5Q2hlY2s+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJD
b3JlOjpOYXZpZ2F0aW9uUG9saWN5Q2hlY2ssCisgICAgICAgIFdlYkNvcmU6Ok5hdmlnYXRpb25Q
b2xpY3lDaGVjazo6UmVxdWlyZSwKKyAgICAgICAgV2ViQ29yZTo6TmF2aWdhdGlvblBvbGljeUNo
ZWNrOjpCeXBhc3MKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcAppbmRleCAzOTQzYWEyY2RhY2E1MzYzOGI5OTc2YTliNDY2OWFmYjU4NmU3YTBlLi45NTU4
MTQ2NGEzZGQzYTFmNDIwZTg1YTVhNTZjOTQ5OGVkYjUyZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAK
QEAgLTQ0Nyw3ICs0NDcsNyBAQCB2b2lkIFBhZ2U6OnNldE9wZW5lZEJ5RE9NKCkKICAgICBtX29w
ZW5lZEJ5RE9NID0gdHJ1ZTsKIH0KIAotdm9pZCBQYWdlOjpnb1RvSXRlbShIaXN0b3J5SXRlbSYg
aXRlbSwgRnJhbWVMb2FkVHlwZSB0eXBlKQordm9pZCBQYWdlOjpnb1RvSXRlbShIaXN0b3J5SXRl
bSYgaXRlbSwgRnJhbWVMb2FkVHlwZSB0eXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2sgbmF2aWdh
dGlvblBvbGljeUNoZWNrKQogewogICAgIC8vIHN0b3BBbGxMb2FkZXJzIG1heSBlbmQgdXAgcnVu
bmluZyBvbmxvYWQgaGFuZGxlcnMsIHdoaWNoIGNvdWxkIGNhdXNlIGZ1cnRoZXIgaGlzdG9yeSB0
cmF2ZXJzYWxzIHRoYXQgbWF5IGxlYWQgdG8gdGhlIHBhc3NlZCBpbiBIaXN0b3J5SXRlbQogICAg
IC8vIGJlaW5nIGRlcmVmKCktZWQuIE1ha2Ugc3VyZSB3ZSBjYW4gc3RpbGwgdXNlIGl0IHdpdGgg
SGlzdG9yeUNvbnRyb2xsZXI6OmdvVG9JdGVtIGxhdGVyLgpAQCAtNDU2LDcgKzQ1Niw3IEBAIHZv
aWQgUGFnZTo6Z29Ub0l0ZW0oSGlzdG9yeUl0ZW0mIGl0ZW0sIEZyYW1lTG9hZFR5cGUgdHlwZSkK
ICAgICBpZiAobV9tYWluRnJhbWUtPmxvYWRlcigpLmhpc3RvcnkoKS5zaG91bGRTdG9wTG9hZGlu
Z0Zvckhpc3RvcnlJdGVtKGl0ZW0pKQogICAgICAgICBtX21haW5GcmFtZS0+bG9hZGVyKCkuc3Rv
cEFsbExvYWRlcnMoKTsKIAotICAgIG1fbWFpbkZyYW1lLT5sb2FkZXIoKS5oaXN0b3J5KCkuZ29U
b0l0ZW0oaXRlbSwgdHlwZSk7CisgICAgbV9tYWluRnJhbWUtPmxvYWRlcigpLmhpc3RvcnkoKS5n
b1RvSXRlbShpdGVtLCB0eXBlLCBuYXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogfQogCiB2b2lkIFBh
Z2U6OnNldEdyb3VwTmFtZShjb25zdCBTdHJpbmcmIG5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCmluZGV4IDlm
ZGQ0ZDgxZDMxYjU1ODAxYmU3OGJlYTJmOGI1ODk4OTVlMWU5ZWUuLjkwNzlkOGFhZmQyODA5NWZl
NGJkMzQ0MTE4MTRhODA2MzkzYmE3YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
UGFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oCkBAIC0xNDUsNiArMTQ1LDcg
QEAgZW51bSBjbGFzcyBFdmVudFRocm90dGxpbmdCZWhhdmlvciB7CiAKIGVudW0gY2xhc3MgQ2Fu
V3JhcCA6IGJvb2w7CiBlbnVtIGNsYXNzIERpZFdyYXAgOiBib29sOworZW51bSBjbGFzcyBOYXZp
Z2F0aW9uUG9saWN5Q2hlY2s7CiAKIGNsYXNzIFBhZ2UgOiBwdWJsaWMgU3VwcGxlbWVudGFibGU8
UGFnZT4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFBhZ2UpOwpAQCAtMTgwLDcgKzE4MSw3
IEBAIHB1YmxpYzoKICAgICBib29sIG9wZW5lZEJ5RE9NKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRP
cGVuZWRCeURPTSgpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnb1RvSXRlbShIaXN0b3J5
SXRlbSYsIEZyYW1lTG9hZFR5cGUpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZ29Ub0l0ZW0o
SGlzdG9yeUl0ZW0mLCBGcmFtZUxvYWRUeXBlLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogCiAg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRHcm91cE5hbWUoY29uc3QgU3RyaW5nJik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgY29uc3QgU3RyaW5nJiBncm91cE5hbWUoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGMwYjMwZDM2Nzc5MDZlZjMxYmVh
YTg5NTMxZjVlYWNmMGY1NjcwZmIuLjgyMDc4MGI4OWVhNDZhMDYxZTk2YjEzM2U1ZGE0Zjk3ZjRj
ZTkwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMu
cHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpAQCAtMzcy
LDYgKzM3Miw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAnV2ViQ29y
ZTo6QXV0b3BsYXlFdmVudEZsYWdzJzogWyc8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpFeGNlcHRpb25EZXRhaWxzJzogWyc8V2ViQ29yZS9KU0RPTUV4Y2Vw
dGlvbkhhbmRsaW5nLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdz
JzogWyc8V2ViQ29yZS9GaWxlQ2hvb3Nlci5oPiddLAorICAgICAgICAnV2ViQ29yZTo6RnJhbWVM
b2FkVHlwZSc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2Vi
Q29yZTo6R3JhbW1hckRldGFpbCc6IFsnPFdlYkNvcmUvVGV4dENoZWNrZXJDbGllbnQuaD4nXSwK
ICAgICAgICAgJ1dlYkNvcmU6Okhhc0luc2VjdXJlQ29udGVudCc6IFsnPFdlYkNvcmUvRnJhbWVM
b2FkZXJUeXBlcy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6SGlnaGxpZ2h0JzogWyc8V2ViQ29y
ZS9JbnNwZWN0b3JPdmVybGF5Lmg+J10sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9TZXNzaW9uU3RhdGUuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmNw
cAppbmRleCBiMGFhZTU5YWIwZWJjMjkwYTVlNTk0YTU0OWE4M2MzOTRiMTk4YWE5Li45MTFkMmU3
Mzc3OGM5ZWY1YWE4ZjViMzIzOWNkYmM4ZDU0MTI2MjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9TZXNzaW9uU3RhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Nl
c3Npb25TdGF0ZS5jcHAKQEAgLTI4LDYgKzI4LDggQEAKIAogI2luY2x1ZGUgIldlYkNvcmVBcmd1
bWVudENvZGVycy5oIgogCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGJvb2wgaXNWYWxpZEVudW0oV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSBwb2xpY3kpCkBAIC0xODQsOCArMTg2LDExIEBAIHN0ZDo6b3B0aW9uYWw8RnJhbWVT
dGF0ZT4gRnJhbWVTdGF0ZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlcikKIAogdm9pZCBQ
YWdlU3RhdGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5j
b2RlciA8PCB0aXRsZTsKLSAgICBlbmNvZGVyIDw8IG1haW5GcmFtZVN0YXRlOworICAgIGVuY29k
ZXIgPDwgdGl0bGUgPDwgbWFpbkZyYW1lU3RhdGUgPDwgISFzZXNzaW9uU3RhdGVPYmplY3Q7CisK
KyAgICBpZiAoc2Vzc2lvblN0YXRlT2JqZWN0KQorICAgICAgICBlbmNvZGVyIDw8IHNlc3Npb25T
dGF0ZU9iamVjdC0+dG9XaXJlQnl0ZXMoKTsKKwogICAgIGVuY29kZXIuZW5jb2RlRW51bShzaG91
bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5KTsKIH0KIApAQCAtMTk4LDYgKzIwMywxOSBAQCBib29s
IFBhZ2VTdGF0ZTo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgUGFnZVN0YXRlJiByZXN1
bHQpCiAgICAgaWYgKCFtYWluRnJhbWVTdGF0ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IHJlc3VsdC5tYWluRnJhbWVTdGF0ZSA9IFdURk1vdmUoKm1haW5GcmFtZVN0YXRlKTsKKworICAg
IGJvb2wgaGFzU2Vzc2lvblN0YXRlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoaGFzU2Vzc2lv
blN0YXRlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGhhc1Nlc3Npb25TdGF0
ZSkgeworICAgICAgICBWZWN0b3I8dWludDhfdD4gd2lyZUJ5dGVzOworICAgICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHdpcmVCeXRlcykpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICAgICAgcmVzdWx0LnNlc3Npb25TdGF0ZU9iamVjdCA9IFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6
Y3JlYXRlRnJvbVdpcmVCeXRlcyhXVEZNb3ZlKHdpcmVCeXRlcykpOworICAgIH0KKwogICAgIGlm
ICghZGVjb2Rlci5kZWNvZGVFbnVtKHJlc3VsdC5zaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5
KSB8fCAhaXNWYWxpZEVudW0ocmVzdWx0LnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3kpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1Nlc3Npb25TdGF0ZS5oIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0YXRlLmgKaW5k
ZXggYzM1NGJkNzMzYjk4NWZiMzJhMTg2ZTQ2MGRlNTAxMDJhYjVlZDhlOS4uMTQ4MjE0NDVjODdm
ZTQzMzU1Nzk2MmJjYjM0OTkzZTUxZDJmMmFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9T
aGFyZWQvU2Vzc2lvblN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvU2Vzc2lvblN0
YXRlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRS
ZWN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXJpYWxpemVkU2NyaXB0VmFsdWUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgogI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KQEAgLTExOSw2ICsxMjAsNyBAQCBzdHJ1Y3QgUGFnZVN0YXRlIHsKICAg
ICBTdHJpbmcgdGl0bGU7CiAgICAgRnJhbWVTdGF0ZSBtYWluRnJhbWVTdGF0ZTsKICAgICBXZWJD
b3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5IHNob3VsZE9wZW5FeHRlcm5hbFVSTHNQ
b2xpY3kgeyBXZWJDb3JlOjpTaG91bGRPcGVuRXh0ZXJuYWxVUkxzUG9saWN5OjpTaG91bGROb3RB
bGxvdyB9OworICAgIFJlZlB0cjxXZWJDb3JlOjpTZXJpYWxpemVkU2NyaXB0VmFsdWU+IHNlc3Np
b25TdGF0ZU9iamVjdDsKIH07CiAKIHN0cnVjdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUgewpA
QCAtMTMxLDcgKzEzMyw2IEBAIHN0cnVjdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGUgewogI2lm
IFBMQVRGT1JNKENPQ09BKQogICAgIFJlZlB0cjxWaWV3U25hcHNob3Q+IHNuYXBzaG90OwogI2Vu
ZGlmCi0KIH07CiAKIHN0cnVjdCBCYWNrRm9yd2FyZExpc3RTdGF0ZSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5jcHAKaW5kZXggYjdmNjk4ZWFiMmRjZDFk
OTYzZWY4ZGI4OWI0MDgwNWJlNWE0NDQyMy4uYmVhMzMzZTlmNDRiYzFkYTlkODJhOTRiMTUxMzhm
NTFlMjZmMWYzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5h
dmlnYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElOYXZpZ2F0
aW9uLmNwcApAQCAtMjYsMjIgKzI2LDMzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiQVBJTmF2aWdhdGlvbi5oIgogCisjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRMaXN0SXRlbS5o
IgogI2luY2x1ZGUgIldlYk5hdmlnYXRpb25TdGF0ZS5oIgogCit1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKIG5hbWVzcGFjZSBBUEkgewogCi1OYXZp
Z2F0aW9uOjpOYXZpZ2F0aW9uKFdlYktpdDo6V2ViTmF2aWdhdGlvblN0YXRlJiBzdGF0ZSkKK05h
dmlnYXRpb246Ok5hdmlnYXRpb24oV2ViTmF2aWdhdGlvblN0YXRlJiBzdGF0ZSkKICAgICA6IG1f
bmF2aWdhdGlvbklEKHN0YXRlLmdlbmVyYXRlTmF2aWdhdGlvbklEKCkpCiB7CiB9CiAKLU5hdmln
YXRpb246Ok5hdmlnYXRpb24oV2ViS2l0OjpXZWJOYXZpZ2F0aW9uU3RhdGUmIHN0YXRlLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQorTmF2aWdhdGlvbjo6TmF2aWdhdGlvbihX
ZWJOYXZpZ2F0aW9uU3RhdGUmIHN0YXRlLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1
ZXN0KQogICAgIDogbV9uYXZpZ2F0aW9uSUQoc3RhdGUuZ2VuZXJhdGVOYXZpZ2F0aW9uSUQoKSkK
ICAgICAsIG1fcmVxdWVzdChXVEZNb3ZlKHJlcXVlc3QpKQogewogICAgIG1fcmVkaXJlY3RDaGFp
bi5hcHBlbmQobV9yZXF1ZXN0LnVybCgpKTsKIH0KIAorTmF2aWdhdGlvbjo6TmF2aWdhdGlvbihX
ZWJOYXZpZ2F0aW9uU3RhdGUmIHN0YXRlLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtLCBG
cmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSkKKyAgICA6IG1fbmF2aWdhdGlv
bklEKHN0YXRlLmdlbmVyYXRlTmF2aWdhdGlvbklEKCkpCisgICAgLCBtX2JhY2tGb3J3YXJkTGlz
dEl0ZW0oJml0ZW0pCisgICAgLCBtX2JhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZShiYWNrRm9yd2Fy
ZEZyYW1lTG9hZFR5cGUpCit7Cit9CisKIE5hdmlnYXRpb246On5OYXZpZ2F0aW9uKCkKIHsKIH0K
QEAgLTUyLDQgKzYzLDExIEBAIHZvaWQgTmF2aWdhdGlvbjo6YXBwZW5kUmVkaXJlY3Rpb25VUkwo
Y29uc3QgV2ViQ29yZTo6VVJMJiB1cmwpCiAgICAgICAgIG1fcmVkaXJlY3RDaGFpbi5hcHBlbmQo
dXJsKTsKIH0KIAorI2lmICFMT0dfRElTQUJMRUQKK1dURjo6U3RyaW5nIE5hdmlnYXRpb246Omxv
Z2dpbmdVUkwoKSBjb25zdAoreworICAgIHJldHVybiBtX2JhY2tGb3J3YXJkTGlzdEl0ZW0gPyBt
X2JhY2tGb3J3YXJkTGlzdEl0ZW0tPnVybCgpIDogbV9yZXF1ZXN0LnVybCgpLnN0cmluZygpOwor
fQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElOYXZpZ2F0aW9uLmgKaW5kZXggNDRmZjUwY2M2ODg0NmE1YzBjZjJlNmY4YThj
OGY1ZTgxZTg0OTFhNi4uZjFmODk1NzA4ZDQ5ODgwOWRjNjNjMzlhZjI0MjQxMjVlOWUzYTQxOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSU5hdmlnYXRpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJTmF2aWdhdGlvbi5oCkBAIC0yOSw3
ICsyOSwxMiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAjaW5jbHVk
ZSA8d3RmL1JlZi5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitlbnVtIGNsYXNzIEZyYW1lTG9h
ZFR5cGU7Cit9OworCiBuYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW07CiBjbGFzcyBXZWJOYXZpZ2F0aW9uU3RhdGU7CiB9CiAKQEAgLTQzLDYgKzQ4LDExIEBA
IHB1YmxpYzoKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTmF2aWdhdGlvbihzdGF0ZSkp
OwogICAgIH0KIAorICAgIHN0YXRpYyBSZWY8TmF2aWdhdGlvbj4gY3JlYXRlKFdlYktpdDo6V2Vi
TmF2aWdhdGlvblN0YXRlJiBzdGF0ZSwgV2ViS2l0OjpXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBp
dGVtLCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSkKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IE5hdmlnYXRpb24oc3RhdGUsIGl0ZW0s
IGJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSkpOworICAgIH0KKwogICAgIHN0YXRpYyBSZWY8TmF2
aWdhdGlvbj4gY3JlYXRlKFdlYktpdDo6V2ViTmF2aWdhdGlvblN0YXRlJiBzdGF0ZSwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IE5hdmlnYXRpb24oc3RhdGUsIFdURk1vdmUocmVxdWVzdCkpKTsKQEAgLTUzLDYg
KzYzLDggQEAgcHVibGljOgogICAgIHVpbnQ2NF90IG5hdmlnYXRpb25JRCgpIGNvbnN0IHsgcmV0
dXJuIG1fbmF2aWdhdGlvbklEOyB9CiAKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIHJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3Q7IH0KKyAgICBXZWJLaXQ6Oldl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGJhY2tGb3J3YXJkTGlzdEl0ZW0oKSB7IHJldHVybiBtX2Jh
Y2tGb3J3YXJkTGlzdEl0ZW0uZ2V0KCk7IH0KKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZy
YW1lTG9hZFR5cGU+IGJhY2tGb3J3YXJkRnJhbWVMb2FkVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
YmFja0ZvcndhcmRGcmFtZUxvYWRUeXBlOyB9CiAKICAgICB2b2lkIGFwcGVuZFJlZGlyZWN0aW9u
VVJMKGNvbnN0IFdlYkNvcmU6OlVSTCYpOwogICAgIFZlY3RvcjxXZWJDb3JlOjpVUkw+IHRha2VS
ZWRpcmVjdENoYWluKCkgeyByZXR1cm4gV1RGTW92ZShtX3JlZGlyZWN0Q2hhaW4pOyB9CkBAIC02
MywxNSArNzUsMjMgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2hvdWxkRm9yY2VEb3dubG9hZChi
b29sIHZhbHVlKSB7IG1fc2hvdWxkRm9yY2VEb3dubG9hZCA9IHZhbHVlOyB9CiAgICAgYm9vbCBz
aG91bGRGb3JjZURvd25sb2FkKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRGb3JjZURvd25sb2Fk
OyB9CiAKKyNpZiAhTE9HX0RJU0FCTEVECisgICAgV1RGOjpTdHJpbmcgbG9nZ2luZ1VSTCgpIGNv
bnN0OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgTmF2aWdhdGlvbihXZWJLaXQ6
OldlYk5hdmlnYXRpb25TdGF0ZSYpOwogICAgIE5hdmlnYXRpb24oV2ViS2l0OjpXZWJOYXZpZ2F0
aW9uU3RhdGUmLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJik7CisgICAgTmF2aWdhdGlvbihX
ZWJLaXQ6OldlYk5hdmlnYXRpb25TdGF0ZSYsIFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0SXRl
bSYsIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUpOwogCiAgICAgdWludDY0X3QgbV9uYXZpZ2F0aW9u
SUQ7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBWZWN0b3I8
V2ViQ29yZTo6VVJMPiBtX3JlZGlyZWN0Q2hhaW47CiAgICAgYm9vbCBtX3dhc1VzZXJJbml0aWF0
ZWQgeyB0cnVlIH07CiAgICAgYm9vbCBtX3Nob3VsZEZvcmNlRG93bmxvYWQgeyBmYWxzZSB9Owor
CisgICAgUmVmUHRyPFdlYktpdDo6V2ViQmFja0ZvcndhcmRMaXN0SXRlbT4gbV9iYWNrRm9yd2Fy
ZExpc3RJdGVtOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJhbWVMb2FkVHlwZT4gbV9i
YWNrRm9yd2FyZEZyYW1lTG9hZFR5cGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBBUEkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDk3ZTk5ODI2MDEzMmUzNzQ4
MTczMTY3NDZhMzI4Y2JlNDhiOWFmYWYuLjZhNjU1ZmQyODIyNjQ0MWRkMDY2ZWQwYmJiN2RkMGZl
ODc0MzI5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAt
MzA1LDcgKzMwNSw3IEBAIGJvb2wgV0tQYWdlQ2FuR29CYWNrKFdLUGFnZVJlZiBwYWdlUmVmKQog
CiB2b2lkIFdLUGFnZUdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKFdLUGFnZVJlZiBwYWdlUmVmLCBX
S0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYgaXRlbVJlZikKIHsKLSAgICB0b0ltcGwocGFnZVJlZikt
PmdvVG9CYWNrRm9yd2FyZEl0ZW0odG9JbXBsKGl0ZW1SZWYpKTsKKyAgICB0b0ltcGwocGFnZVJl
ZiktPmdvVG9CYWNrRm9yd2FyZEl0ZW0oKnRvSW1wbChpdGVtUmVmKSk7CiB9CiAKIHZvaWQgV0tQ
YWdlVHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKFdLUGFnZVJlZiBwYWdlUmVmKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5n
Q29udGV4dENvbnRyb2xsZXIubW0KaW5kZXggYjdlNWU2OTJjODMwNjcyYmUwMGUxZTYxMDg1ZjM1
ZWRiMzRmOTdiMC4uODFlNGU1MjMxYjhlMDBlMWI2NmEwODkxOWQwYjUyZDNkNjQ1YjVlZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCkBAIC0yNDEsNyArMjQxLDcgQEAgc3RhdGlj
IEhhc2hNYXA8V2ViUGFnZVByb3h5KiwgV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyICo+JiBi
cm93c2luZ0NvbnRleHRDb24KIAogLSAodm9pZClnb1RvQmFja0ZvcndhcmRMaXN0SXRlbTooV0tC
YWNrRm9yd2FyZExpc3RJdGVtICopaXRlbQogewotICAgIF9wYWdlLT5nb1RvQmFja0ZvcndhcmRJ
dGVtKCZpdGVtLl9pdGVtKTsKKyAgICBfcGFnZS0+Z29Ub0JhY2tGb3J3YXJkSXRlbShpdGVtLl9p
dGVtKTsKIH0KIAogLSAoV0tCYWNrRm9yd2FyZExpc3QgKiliYWNrRm9yd2FyZExpc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDE4YjJi
YzFlYmQwNzFjZWYwZGMwNmJkZjcxNTgzNDUzZWZjZmU4NTQuLmY5YTYyYmQ0ZTQ3MTA1ZjZkNGE5
NWM1OGQ3YzlkNjE2NTA0ZWI5YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQpAQCAtOTA3LDcgKzkwNyw3IEBAIHN0YXRpYyB2b2lkIHZhbGlk
YXRlKFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24pCiAKIC0gKFdLTmF2aWdh
dGlvbiAqKWdvVG9CYWNrRm9yd2FyZExpc3RJdGVtOihXS0JhY2tGb3J3YXJkTGlzdEl0ZW0gKilp
dGVtCiB7Ci0gICAgYXV0byBuYXZpZ2F0aW9uID0gX3BhZ2UtPmdvVG9CYWNrRm9yd2FyZEl0ZW0o
Jml0ZW0uX2l0ZW0pOworICAgIGF1dG8gbmF2aWdhdGlvbiA9IF9wYWdlLT5nb1RvQmFja0Zvcndh
cmRJdGVtKGl0ZW0uX2l0ZW0pOwogICAgIGlmICghbmF2aWdhdGlvbikKICAgICAgICAgcmV0dXJu
IG5pbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJWaWV3LmNwcAppbmRleCBhMjdmOWVjMzE5MjljOWUxOTEyNzczNWEzZmQxNWVmNWY5M2VhZDYy
Li5iOWJlMzljZmY1MDk5MDM0MDMwMmZmMmUyZGI5MjY4YzZmYTUzZjk1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMzAz
MCw3ICszMDMwLDcgQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfZ29fdG9fYmFja19mb3J3YXJkX2xp
c3RfaXRlbShXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBXZWJLaXQKICAgICBnX3JldHVybl9pZl9m
YWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CiAgICAgZ19yZXR1cm5faWZfZmFpbChX
RUJLSVRfSVNfQkFDS19GT1JXQVJEX0xJU1RfSVRFTShsaXN0SXRlbSkpOwogCi0gICAgZ2V0UGFn
ZSh3ZWJWaWV3KS5nb1RvQmFja0ZvcndhcmRJdGVtKHdlYmtpdEJhY2tGb3J3YXJkTGlzdEl0ZW1H
ZXRJdGVtKGxpc3RJdGVtKSk7CisgICAgZ2V0UGFnZSh3ZWJWaWV3KS5nb1RvQmFja0ZvcndhcmRJ
dGVtKCp3ZWJraXRCYWNrRm9yd2FyZExpc3RJdGVtR2V0SXRlbShsaXN0SXRlbSkpOwogfQogCiAv
KioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYk5hdmlnYXRpb25TdGF0
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJOYXZpZ2F0aW9uU3RhdGUuY3BwCmlu
ZGV4IDQ4ZjkzNDU5ZTlhMTY4NTBlZDI3OTBhZDBjZDc0ZjFlYjk5ZTM2ZTQuLjMxYTcwN2IyZTY4
NGJlZDkzMDliNzMyY2IzZTgxZDRmM2FlZjZmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYk5hdmlnYXRpb25TdGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmNwcApAQCAtMzAsNiArMzAsOCBAQAogI2luY2x1ZGUg
IldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAK
K3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViTmF2
aWdhdGlvblN0YXRlOjpXZWJOYXZpZ2F0aW9uU3RhdGUoKQpAQCAtNDAsNyArNDIsNyBAQCBXZWJO
YXZpZ2F0aW9uU3RhdGU6On5XZWJOYXZpZ2F0aW9uU3RhdGUoKQogewogfQogCi1SZWY8QVBJOjpO
YXZpZ2F0aW9uPiBXZWJOYXZpZ2F0aW9uU3RhdGU6OmNyZWF0ZUxvYWRSZXF1ZXN0TmF2aWdhdGlv
bihXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQorUmVmPEFQSTo6TmF2aWdhdGlv
bj4gV2ViTmF2aWdhdGlvblN0YXRlOjpjcmVhdGVMb2FkUmVxdWVzdE5hdmlnYXRpb24oUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCkKIHsKICAgICBhdXRvIG5hdmlnYXRpb24gPSBBUEk6Ok5hdmln
YXRpb246OmNyZWF0ZSgqdGhpcywgV1RGTW92ZShyZXF1ZXN0KSk7CiAKQEAgLTQ5LDkgKzUxLDkg
QEAgUmVmPEFQSTo6TmF2aWdhdGlvbj4gV2ViTmF2aWdhdGlvblN0YXRlOjpjcmVhdGVMb2FkUmVx
dWVzdE5hdmlnYXRpb24oV2ViQ29yZTo6UmUKICAgICByZXR1cm4gbmF2aWdhdGlvbjsKIH0KIAot
UmVmPEFQSTo6TmF2aWdhdGlvbj4gV2ViTmF2aWdhdGlvblN0YXRlOjpjcmVhdGVCYWNrRm9yd2Fy
ZE5hdmlnYXRpb24oKQorUmVmPEFQSTo6TmF2aWdhdGlvbj4gV2ViTmF2aWdhdGlvblN0YXRlOjpj
cmVhdGVCYWNrRm9yd2FyZE5hdmlnYXRpb24oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYgaXRlbSwg
RnJhbWVMb2FkVHlwZSBmcmFtZUxvYWRUeXBlKQogewotICAgIGF1dG8gbmF2aWdhdGlvbiA9IEFQ
STo6TmF2aWdhdGlvbjo6Y3JlYXRlKCp0aGlzKTsKKyAgICBhdXRvIG5hdmlnYXRpb24gPSBBUEk6
Ok5hdmlnYXRpb246OmNyZWF0ZSgqdGhpcywgaXRlbSwgZnJhbWVMb2FkVHlwZSk7CiAKICAgICBt
X25hdmlnYXRpb25zLnNldChuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgbmF2aWdhdGlvbi5w
dHIoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYk5hdmlnYXRp
b25TdGF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmgK
aW5kZXggNDVhYjJkMmJjN2NiNjAwYWY5MzY0ZDhiMjViMmQ3ZmM0YTliM2U5My4uMGUxMmYzZjgw
MTFhYWRhM2U4NjMzOWE5OTNlY2NjZDhmMjcxZThhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViTmF2aWdhdGlvblN0YXRlLmgKQEAgLTM0LDYgKzM0LDggQEAgY2xhc3MgTmF2aWdh
dGlvbjsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OworCitl
bnVtIGNsYXNzIEZyYW1lTG9hZFR5cGU7CiB9CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDYs
NyArNDgsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgV2ViTmF2aWdhdGlvblN0YXRlKCk7CiAg
ICAgfldlYk5hdmlnYXRpb25TdGF0ZSgpOwogCi0gICAgUmVmPEFQSTo6TmF2aWdhdGlvbj4gY3Jl
YXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKCk7CisgICAgUmVmPEFQSTo6TmF2aWdhdGlvbj4gY3Jl
YXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mLCBXZWJDb3Jl
OjpGcmFtZUxvYWRUeXBlKTsKICAgICBSZWY8QVBJOjpOYXZpZ2F0aW9uPiBjcmVhdGVMb2FkUmVx
dWVzdE5hdmlnYXRpb24oV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYpOwogICAgIFJlZjxBUEk6
Ok5hdmlnYXRpb24+IGNyZWF0ZVJlbG9hZE5hdmlnYXRpb24oKTsKICAgICBSZWY8QVBJOjpOYXZp
Z2F0aW9uPiBjcmVhdGVMb2FkRGF0YU5hdmlnYXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDI3MmQ2MzkwMWNkYWI4ZmVhYmJhMDA2NjA2YTJmMjdh
NWZmN2IyN2QuLjg4Yzc1ODU5OGUxYjdlYWNhZWJmNGYwMjVhNzA3NTZkYmIyMDllZjIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTI2LDExICsxMjYsMTMg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNEaXJlY3Rpb24uaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9KU0RPTUJpbmRpbmcu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0xlbmd0aEJveC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTUlNRVR5cGVSZWdpc3Ry
eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTdHJlYW1SZXF1ZXN0Lmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9OYXZpZ2F0aW9uUG9saWN5Q2hlY2suaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BlcmZv
cm1hbmNlTG9nZ2luZ0NsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHVibGljU3VmZml4Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJFbWJlZGRlZE9iamVjdC5oPgpAQCAtNzEzLDEzICs3
MTUsMTMgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRv
V2ViUHJvY2Vzc0ZvclJlbG9hZCgpCiAgICAgYXV0byBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9u
U3RhdGUtPmNyZWF0ZVJlbG9hZE5hdmlnYXRpb24oKTsKIAogICAgIC8vIFdlIGFsbG93IHN0YWxl
IGNvbnRlbnQgd2hlbiByZWxvYWRpbmcgYSBXZWJQcm9jZXNzIHRoYXQncyBiZWVuIGtpbGxlZCBv
ciBjcmFzaGVkLgotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0Jh
Y2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQoKSwgbV9iYWNrRm9yd2FyZExp
c3QtPmN1cnJlbnRJdGVtKCktPml0ZW1JRCgpKSwgbV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+
c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLT5u
YXZpZ2F0aW9uSUQoKSwgbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCktPml0ZW1JRCgp
LCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQsIE5hdmlnYXRpb25Qb2xpY3lDaGVj
azo6UmVxdWlyZSksIG1fcGFnZUlEKTsKICAgICBtX3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGlt
ZXIoKS5zdGFydCgpOwogCiAgICAgcmV0dXJuIFdURk1vdmUobmF2aWdhdGlvbik7CiB9CiAKLVJl
ZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6cmVhdHRhY2hUb1dlYlByb2Nlc3NX
aXRoSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBpdGVtKQorUmVmUHRyPEFQSTo6TmF2aWdh
dGlvbj4gV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tG
b3J3YXJkTGlzdEl0ZW0mIGl0ZW0pCiB7CiAgICAgaWYgKG1faXNDbG9zZWQpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwpAQCAtNzI3LDE1ICs3MjksMTIgQEAgUmVmUHRyPEFQSTo6TmF2aWdhdGlv
bj4gV2ViUGFnZVByb3h5OjpyZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKFdlYkJhY2tGb3J3
YXIKICAgICBBU1NFUlQoIWlzVmFsaWQoKSk7CiAgICAgcmVhdHRhY2hUb1dlYlByb2Nlc3MoKTsK
IAotICAgIGlmICghaXRlbSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgaWYgKCZpdGVt
ICE9IG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpKQorICAgICAgICBtX2JhY2tGb3J3
YXJkTGlzdC0+Z29Ub0l0ZW0oaXRlbSk7CiAKLSAgICBpZiAoaXRlbSAhPSBtX2JhY2tGb3J3YXJk
TGlzdC0+Y3VycmVudEl0ZW0oKSkKLSAgICAgICAgbV9iYWNrRm9yd2FyZExpc3QtPmdvVG9JdGVt
KCppdGVtKTsKKyAgICBhdXRvIG5hdmlnYXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRl
QmFja0ZvcndhcmROYXZpZ2F0aW9uKGl0ZW0sIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9y
d2FyZCk7CiAKLSAgICBhdXRvIG5hdmlnYXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+Y3JlYXRl
QmFja0ZvcndhcmROYXZpZ2F0aW9uKCk7Ci0KLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2U6OkdvVG9CYWNrRm9yd2FyZEl0ZW0obmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCks
IGl0ZW0tPml0ZW1JRCgpKSwgbV9wYWdlSUQpOworICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQo
KSwgaXRlbS5pdGVtSUQoKSwgRnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJkLCBOYXZp
Z2F0aW9uUG9saWN5Q2hlY2s6OlJlcXVpcmUpLCBtX3BhZ2VJRCk7CiAgICAgbV9wcm9jZXNzLT5y
ZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKIAogICAgIHJldHVybiBXVEZNb3ZlKG5hdmln
YXRpb24pOwpAQCAtMTE4NCwyMSArMTE4Myw3IEBAIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdl
YlBhZ2VQcm94eTo6Z29Gb3J3YXJkKCkKICAgICBpZiAoIWZvcndhcmRJdGVtKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3BhZ2VMb2FkU3RhdGUu
dHJhbnNhY3Rpb24oKTsKLQotICAgIG1fcGFnZUxvYWRTdGF0ZS5zZXRQZW5kaW5nQVBJUmVxdWVz
dFVSTCh0cmFuc2FjdGlvbiwgZm9yd2FyZEl0ZW0tPnVybCgpKTsKLQotICAgIGlmICghaXNWYWxp
ZCgpKQotICAgICAgICByZXR1cm4gcmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbShmb3J3YXJk
SXRlbSk7Ci0KLSAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBuYXZpZ2F0aW9uOwotICAgIGlm
ICghbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCktPml0ZW1Jc0luU2FtZURvY3VtZW50
KCpmb3J3YXJkSXRlbSkpCi0gICAgICAgIG5hdmlnYXRpb24gPSBtX25hdmlnYXRpb25TdGF0ZS0+
Y3JlYXRlQmFja0ZvcndhcmROYXZpZ2F0aW9uKCk7Ci0KLSAgICBtX3Byb2Nlc3MtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OkdvRm9yd2FyZChuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdh
dGlvbklEKCkgOiAwLCBmb3J3YXJkSXRlbS0+aXRlbUlEKCkpLCBtX3BhZ2VJRCk7Ci0gICAgbV9w
cm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RhcnQoKTsKLQotICAgIHJldHVybiBuYXZp
Z2F0aW9uOworICAgIHJldHVybiBnb1RvQmFja0ZvcndhcmRJdGVtKCpmb3J3YXJkSXRlbSwgRnJh
bWVMb2FkVHlwZTo6Rm9yd2FyZCk7CiB9CiAKIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBh
Z2VQcm94eTo6Z29CYWNrKCkKQEAgLTEyMDcsMzcgKzExOTIsMzAgQEAgUmVmUHRyPEFQSTo6TmF2
aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpnb0JhY2soKQogICAgIGlmICghYmFja0l0ZW0pCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRT
dGF0ZS50cmFuc2FjdGlvbigpOwotCi0gICAgbV9wYWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElS
ZXF1ZXN0VVJMKHRyYW5zYWN0aW9uLCBiYWNrSXRlbS0+dXJsKCkpOwotCi0gICAgaWYgKCFpc1Zh
bGlkKCkpCi0gICAgICAgIHJldHVybiByZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKGJhY2tJ
dGVtKTsKLQotICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb247Ci0gICAgaWYg
KCFtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVudEl0ZW0oKS0+aXRlbUlzSW5TYW1lRG9jdW1lbnQo
KmJhY2tJdGVtKSkKLSAgICAgICAgbmF2aWdhdGlvbiA9IG1fbmF2aWdhdGlvblN0YXRlLT5jcmVh
dGVCYWNrRm9yd2FyZE5hdmlnYXRpb24oKTsKLQotICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZTo6R29CYWNrKG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5uYXZpZ2F0aW9uSUQo
KSA6IDAsIGJhY2tJdGVtLT5pdGVtSUQoKSksIG1fcGFnZUlEKTsKLSAgICBtX3Byb2Nlc3MtPnJl
c3BvbnNpdmVuZXNzVGltZXIoKS5zdGFydCgpOworICAgIHJldHVybiBnb1RvQmFja0ZvcndhcmRJ
dGVtKCpiYWNrSXRlbSwgRnJhbWVMb2FkVHlwZTo6QmFjayk7Cit9CiAKLSAgICByZXR1cm4gbmF2
aWdhdGlvbjsKK1JlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6Z29Ub0JhY2tG
b3J3YXJkSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtKQoreworICAgIHJldHVybiBn
b1RvQmFja0ZvcndhcmRJdGVtKGl0ZW0sIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2Fy
ZCk7CiB9CiAKLVJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6Z29Ub0JhY2tG
b3J3YXJkSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBpdGVtKQorUmVmUHRyPEFQSTo6TmF2
aWdhdGlvbj4gV2ViUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0mIGl0ZW0sIEZyYW1lTG9hZFR5cGUgZnJhbWVMb2FkVHlwZSkKIHsKKyAgICBMT0co
TG9hZGluZywgIldlYlBhZ2VQcm94eSAlcCBnb1RvQmFja0ZvcndhcmRJdGVtIHRvIGJhY2sgaXRl
bSBVUkwgJXMiLCB0aGlzLCBpdGVtLnVybCgpLnV0ZjgoKS5kYXRhKCkpOworCiAgICAgaWYgKCFp
c1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiByZWF0dGFjaFRvV2ViUHJvY2Vzc1dpdGhJdGVtKGl0
ZW0pOwogCiAgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2FjdGlv
bigpOwogCi0gICAgbV9wYWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0VVJMKHRyYW5z
YWN0aW9uLCBpdGVtLT51cmwoKSk7CisgICAgbV9wYWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElS
ZXF1ZXN0VVJMKHRyYW5zYWN0aW9uLCBpdGVtLnVybCgpKTsKIAogICAgIFJlZlB0cjxBUEk6Ok5h
dmlnYXRpb24+IG5hdmlnYXRpb247Ci0gICAgaWYgKCFtX2JhY2tGb3J3YXJkTGlzdC0+Y3VycmVu
dEl0ZW0oKS0+aXRlbUlzSW5TYW1lRG9jdW1lbnQoKml0ZW0pKQotICAgICAgICBuYXZpZ2F0aW9u
ID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0ZUJhY2tGb3J3YXJkTmF2aWdhdGlvbigpOworICAg
IGlmICghbV9iYWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCktPml0ZW1Jc0luU2FtZURvY3Vt
ZW50KGl0ZW0pKQorICAgICAgICBuYXZpZ2F0aW9uID0gbV9uYXZpZ2F0aW9uU3RhdGUtPmNyZWF0
ZUJhY2tGb3J3YXJkTmF2aWdhdGlvbihpdGVtLCBmcmFtZUxvYWRUeXBlKTsKIAotICAgIG1fcHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShuYXZpZ2F0
aW9uID8gbmF2aWdhdGlvbi0+bmF2aWdhdGlvbklEKCkgOiAwLCBpdGVtLT5pdGVtSUQoKSksIG1f
cGFnZUlEKTsKKyAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdvVG9CYWNr
Rm9yd2FyZEl0ZW0obmF2aWdhdGlvbiA/IG5hdmlnYXRpb24tPm5hdmlnYXRpb25JRCgpIDogMCwg
aXRlbS5pdGVtSUQoKSwgZnJhbWVMb2FkVHlwZSwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1
aXJlKSwgbV9wYWdlSUQpOwogICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLnN0
YXJ0KCk7CiAKICAgICByZXR1cm4gbmF2aWdhdGlvbjsKQEAgLTIzNzUsNiArMjM1Myw4IEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBhY3Rp
b24sIFdlYkZyYW1lUHJveHkmIGZyCiAgICAgICAgIGlmIChhY3Rpb24gPT0gUG9saWN5QWN0aW9u
OjpVc2UgJiYgbmF2aWdhdGlvbikgewogICAgICAgICAgICAgYXV0byBwcm9wb3NlZFByb2Nlc3Mg
PSBwcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5wcm9jZXNzRm9yTmF2aWdhdGlvbigqdGhpcywgbmF2
aWdhdGlvbi0+cmVxdWVzdCgpLnVybCgpKTsKICAgICAgICAgICAgIGlmIChwcm9wb3NlZFByb2Nl
c3MucHRyKCkgIT0gJnByb2Nlc3MoKSkgeworICAgICAgICAgICAgICAgIExPRyhMb2FkaW5nLCAi
U3dpdGNoaW5nIHRvIG5ldyBwcm9jZXNzIGZvciBuYXZpZ2F0aW9uICUiIFBSSXU2NCAiIHRvIHVy
bCAnJXMnIChXZWJCYWNrRm9yd2FyZExpc3RJdGVtICVwKSIsIG5hdmlnYXRpb24tPm5hdmlnYXRp
b25JRCgpLCBuYXZpZ2F0aW9uLT5sb2dnaW5nVVJMKCkudXRmOCgpLmRhdGEoKSwgbmF2aWdhdGlv
bi0+YmFja0ZvcndhcmRMaXN0SXRlbSgpKTsKKwogICAgICAgICAgICAgICAgIGFjdGlvbiA9IFBv
bGljeUFjdGlvbjo6U3VzcGVuZDsKICAgICAgICAgICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlz
cGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgbmF2aWdhdGlvbiA9
IG1ha2VSZWYoKm5hdmlnYXRpb24pLCBwcm9wb3NlZFByb2Nlc3MgPSBXVEZNb3ZlKHByb3Bvc2Vk
UHJvY2VzcyldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlTmF2aWdh
dGlvbkluTmV3UHJvY2VzcyhuYXZpZ2F0aW9uLmdldCgpLCBXVEZNb3ZlKHByb3Bvc2VkUHJvY2Vz
cykpOwpAQCAtMjM4OCwxMCArMjM2OCwyMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQ
b2xpY3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gYWN0aW9uLCBXZWJGcmFtZVByb3h5JiBmcgogCiB2
b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNzKEFQSTo6TmF2
aWdhdGlvbiYgbmF2aWdhdGlvbiwgUmVmPFdlYlByb2Nlc3NQcm94eT4mJiBwcm9jZXNzKQogewot
ICAgIExPRyhMb2FkaW5nLCAiQ29udGludWluZyBuYXZpZ2F0aW9uICUiIFBSSXU2NCAiIHRvIFVS
TCAlcyBpbiBhIG5ldyB3ZWIgcHJvY2VzcyIsIG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIG5h
dmlnYXRpb24ucmVxdWVzdCgpLnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgIExP
RyhMb2FkaW5nLCAiQ29udGludWluZyBuYXZpZ2F0aW9uICUiIFBSSXU2NCAiIHRvIFVSTCAlcyBp
biBhIG5ldyB3ZWIgcHJvY2VzcyIsIG5hdmlnYXRpb24ubmF2aWdhdGlvbklEKCksIG5hdmlnYXRp
b24ubG9nZ2luZ1VSTCgpLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgYXR0YWNoVG9Qcm9jZXNzRm9y
TmF2aWdhdGlvbihXVEZNb3ZlKHByb2Nlc3MpKTsKIAorICAgIGlmIChhdXRvKiBpdGVtID0gbmF2
aWdhdGlvbi5iYWNrRm9yd2FyZExpc3RJdGVtKCkpIHsKKyAgICAgICAgaWYgKGl0ZW0gIT0gbV9i
YWNrRm9yd2FyZExpc3QtPmN1cnJlbnRJdGVtKCkpCisgICAgICAgICAgICBtX2JhY2tGb3J3YXJk
TGlzdC0+Z29Ub0l0ZW0oKml0ZW0pOworCisgICAgICAgIEFTU0VSVChuYXZpZ2F0aW9uLmJhY2tG
b3J3YXJkRnJhbWVMb2FkVHlwZSgpKTsKKyAgICAgICAgQVNTRVJUKGlzQmFja0ZvcndhcmRMb2Fk
VHlwZSgqbmF2aWdhdGlvbi5iYWNrRm9yd2FyZEZyYW1lTG9hZFR5cGUoKSkpOworCisgICAgICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6R29Ub0JhY2tGb3J3YXJkSXRlbShu
YXZpZ2F0aW9uLm5hdmlnYXRpb25JRCgpLCBpdGVtLT5pdGVtSUQoKSwgKm5hdmlnYXRpb24uYmFj
a0ZvcndhcmRGcmFtZUxvYWRUeXBlKCksIE5hdmlnYXRpb25Qb2xpY3lDaGVjazo6QnlwYXNzKSwg
bV9wYWdlSUQpOworCisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICAvLyBGSVhNRTogV29y
ayBvdXQgdGltaW5nIG9mIHJlc3BvbmRpbmcgd2l0aCB0aGUgbGFzdCBwb2xpY3kgZGVsZWdhdGUs
IGV0YwogICAgIGxvYWRSZXF1ZXN0V2l0aE5hdmlnYXRpb24obmF2aWdhdGlvbiwgUmVzb3VyY2VS
ZXF1ZXN0IHsgbmF2aWdhdGlvbi5yZXF1ZXN0KCkgfSwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVy
bmFsVVJMc1BvbGljeTo6U2hvdWxkQWxsb3dFeHRlcm5hbFNjaGVtZXMsIG51bGxwdHIsIE5hdmln
YXRpb25Qb2xpY3lDaGVjazo6QnlwYXNzKTsKIH0KQEAgLTI1MjgsOSArMjUyMCw4IEBAIFJlZlB0
cjxBUEk6Ok5hdmlnYXRpb24+IFdlYlBhZ2VQcm94eTo6cmVzdG9yZUZyb21TZXNzaW9uU3RhdGUo
U2Vzc2lvblN0YXRlIHNlc3NpCiAgICAgICAgICAgICByZXR1cm4gbG9hZFJlcXVlc3Qoc2Vzc2lv
blN0YXRlLnByb3Zpc2lvbmFsVVJMKTsKIAogICAgICAgICBpZiAoaGFzQmFja0ZvcndhcmRMaXN0
KSB7Ci0gICAgICAgICAgICAvLyBGSVhNRTogRG8gd2UgaGF2ZSB0byBudWxsIGNoZWNrIHRoZSBi
YWNrIGZvcndhcmQgbGlzdCBpdGVtIGhlcmU/CiAgICAgICAgICAgICBpZiAoV2ViQmFja0Zvcndh
cmRMaXN0SXRlbSogaXRlbSA9IG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRlbSgpKQotICAg
ICAgICAgICAgICAgIHJldHVybiBnb1RvQmFja0ZvcndhcmRJdGVtKGl0ZW0pOworICAgICAgICAg
ICAgICAgIHJldHVybiBnb1RvQmFja0ZvcndhcmRJdGVtKCppdGVtKTsKICAgICAgICAgfQogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBkYzU5NDk4ZGIx
YjhlZmNmNzM5MDMyZWU1NWMzYWRiM2M0NmZiZDA4Li40NDVjYTc3NWNlZmU5ZjgyODliZjJjZTVh
NmVjNjZjODZjMzU4YTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApA
QCAtMTY0LDYgKzE2NCwxNCBAQCBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBUZXh0SW5kaWNh
dG9yOwogY2xhc3MgVmFsaWRhdGlvbkJ1YmJsZTsKIAorZW51bSBTZWxlY3Rpb25EaXJlY3Rpb24g
OiB1aW50OF90OworCitlbnVtIGNsYXNzIEF1dG9wbGF5RXZlbnQ7CitlbnVtIGNsYXNzIEhhc0lu
c2VjdXJlQ29udGVudDsKK2VudW0gY2xhc3MgTmF2aWdhdGlvblBvbGljeUNoZWNrOworZW51bSBj
bGFzcyBOb3RpZmljYXRpb25EaXJlY3Rpb247CitlbnVtIGNsYXNzIFNob3VsZFNhbXBsZTsKKwog
c3RydWN0IEFwcGxpY2F0aW9uTWFuaWZlc3Q7CiBzdHJ1Y3QgRGljdGlvbmFyeVBvcHVwSW5mbzsK
IHN0cnVjdCBFeGNlcHRpb25EZXRhaWxzOwpAQCAtMTc1LDEzICsxODMsNiBAQCBzdHJ1Y3QgVGV4
dENoZWNraW5nUmVzdWx0Owogc3RydWN0IFZpZXdwb3J0QXR0cmlidXRlczsKIHN0cnVjdCBXaW5k
b3dGZWF0dXJlczsKIAotZW51bSBTZWxlY3Rpb25EaXJlY3Rpb24gOiB1aW50OF90OwotCi1lbnVt
IGNsYXNzIEF1dG9wbGF5RXZlbnQ7Ci1lbnVtIGNsYXNzIEhhc0luc2VjdXJlQ29udGVudDsKLWVu
dW0gY2xhc3MgTm90aWZpY2F0aW9uRGlyZWN0aW9uOwotZW51bSBjbGFzcyBTaG91bGRTYW1wbGU7
Ci0KIHRlbXBsYXRlIDx0eXBlbmFtZT4gY2xhc3MgUmVjdEVkZ2VzOwogdXNpbmcgRmxvYXRCb3hF
eHRlbnQgPSBSZWN0RWRnZXM8ZmxvYXQ+OwogfQpAQCAtNDQwLDcgKzQ0MSw3IEBAIHB1YmxpYzoK
ICAgICBSZWZQdHI8QVBJOjpOYXZpZ2F0aW9uPiBnb0ZvcndhcmQoKTsKICAgICBSZWZQdHI8QVBJ
OjpOYXZpZ2F0aW9uPiBnb0JhY2soKTsKIAotICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IGdv
VG9CYWNrRm9yd2FyZEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSopOworICAgIFJlZlB0cjxB
UEk6Ok5hdmlnYXRpb24+IGdvVG9CYWNrRm9yd2FyZEl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRl
bSYpOwogICAgIHZvaWQgdHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CiAgICAgdm9pZCBkaWRD
aGFuZ2VCYWNrRm9yd2FyZExpc3QoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogYWRkZWRJdGVtLCBW
ZWN0b3I8UmVmPFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0+PiYmIHJlbW92ZWQpOwogICAgIHZvaWQg
d2lsbEdvVG9CYWNrRm9yd2FyZExpc3RJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgYm9vbCBpblBhZ2VD
YWNoZSwgY29uc3QgVXNlckRhdGEmKTsKQEAgLTEyOTQsNiArMTI5NSw4IEBAIHByaXZhdGU6CiAg
ICAgV2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmLCBXZWJQcm9jZXNzUHJveHkmLCB1aW50NjRfdCBw
YWdlSUQsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKICAgICB2b2lkIHBsYXRmb3Jt
SW5pdGlhbGl6ZSgpOwogCisgICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gZ29Ub0JhY2tGb3J3
YXJkSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiwgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSk7
CisKICAgICB2b2lkIHVwZGF0ZUFjdGl2aXR5U3RhdGUoV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6
RmxhZ3MgZmxhZ3NUb1VwZGF0ZSA9IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkFsbEZsYWdzKTsK
ICAgICB2b2lkIHVwZGF0ZVRocm90dGxlU3RhdGUoKTsKICAgICB2b2lkIHVwZGF0ZUhpZGRlblBh
Z2VUaHJvdHRsaW5nQXV0b0luY3JlYXNlcygpOwpAQCAtMTQ0MSwxMyArMTQ0NCw5IEBAIHByaXZh
dGU6CiAgICAgdm9pZCByZWF0dGFjaFRvV2ViUHJvY2VzcyhSZWY8V2ViUHJvY2Vzc1Byb3h5PiYm
KTsKIAogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IHJlYXR0YWNoVG9XZWJQcm9jZXNzRm9y
UmVsb2FkKCk7Ci0gICAgUmVmUHRyPEFQSTo6TmF2aWdhdGlvbj4gcmVhdHRhY2hUb1dlYlByb2Nl
c3NXaXRoSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKik7CisgICAgUmVmUHRyPEFQSTo6TmF2
aWdhdGlvbj4gcmVhdHRhY2hUb1dlYlByb2Nlc3NXaXRoSXRlbShXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtJik7CiAKLSAgICBlbnVtIGNsYXNzIE5hdmlnYXRpb25Qb2xpY3lDaGVjayB7Ci0gICAgICAg
IFJlcXVpcmUsCi0gICAgICAgIEJ5cGFzcywKLSAgICB9OwotICAgIHZvaWQgbG9hZFJlcXVlc3RX
aXRoTmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVz
ZXJEYXRhLCBOYXZpZ2F0aW9uUG9saWN5Q2hlY2spOworICAgIHZvaWQgbG9hZFJlcXVlc3RXaXRo
TmF2aWdhdGlvbihBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
V2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJOjpPYmplY3QqIHVzZXJE
YXRhLCBXZWJDb3JlOjpOYXZpZ2F0aW9uUG9saWN5Q2hlY2spOwogCiAgICAgdm9pZCByZXF1ZXN0
Tm90aWZpY2F0aW9uUGVybWlzc2lvbih1aW50NjRfdCBub3RpZmljYXRpb25JRCwgY29uc3QgU3Ry
aW5nJiBvcmlnaW5TdHJpbmcpOwogICAgIHZvaWQgc2hvd05vdGlmaWNhdGlvbihjb25zdCBTdHJp
bmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIGJvZHksIGNvbnN0IFN0cmluZyYgaWNvblVSTCwgY29u
c3QgU3RyaW5nJiB0YWcsIGNvbnN0IFN0cmluZyYgbGFuZywgV2ViQ29yZTo6Tm90aWZpY2F0aW9u
RGlyZWN0aW9uLCBjb25zdCBTdHJpbmcmIG9yaWdpblN0cmluZywgdWludDY0X3Qgbm90aWZpY2F0
aW9uSUQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5k
ZXggNmY4M2U4OGEwMDE4NGFjOTM3MDdlZmMwMTBmMWJmMmQwNjUyZDcwYy4uZGNhOTg5OTYwZWZm
ODYzNDNjNzM4NWNlZTFkNzE0MTFhZTVjZWM3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUHJveHkuY3BwCkBAIC01NTEsNyArNTUxLDcgQEAgYm9vbCBXZWJQcm9jZXNz
UHJveHk6OmZ1bGxLZXlib2FyZEFjY2Vzc0VuYWJsZWQoKQogfQogI2VuZGlmCiAKLXZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjphZGRCYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgaXRlbUlELCB1aW50NjRf
dCBwYWdlSUQsIGNvbnN0IFBhZ2VTdGF0ZSYgcGFnZVN0YXRlKQordm9pZCBXZWJQcm9jZXNzUHJv
eHk6OmFkZE9yVXBkYXRlQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IGl0ZW1JRCwgdWludDY0X3Qg
cGFnZUlELCBjb25zdCBQYWdlU3RhdGUmIHBhZ2VTdGF0ZSkKIHsKICAgICBNRVNTQUdFX0NIRUNL
X1VSTChwYWdlU3RhdGUubWFpbkZyYW1lU3RhdGUub3JpZ2luYWxVUkxTdHJpbmcpOwogICAgIE1F
U1NBR0VfQ0hFQ0tfVVJMKHBhZ2VTdGF0ZS5tYWluRnJhbWVTdGF0ZS51cmxTdHJpbmcpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCA2OTdlYjkwOGQ2MWNm
YzczM2NkMjExZjNkYWMxMGQ3YTRmNDQ0ZmM1Li4zYmFkMmVlZTRhMmI1Zjg2YTVkZTQ5MzhkNWMz
YzVlZWNhM2ZmZTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aApAQCAtMjIwLDcgKzIyMCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzaHV0RG93bigpOwogCiAg
ICAgLy8gSVBDIG1lc3NhZ2UgaGFuZGxlcnMuCi0gICAgdm9pZCBhZGRCYWNrRm9yd2FyZEl0ZW0o
dWludDY0X3QgaXRlbUlELCB1aW50NjRfdCBwYWdlSUQsIGNvbnN0IFBhZ2VTdGF0ZSYpOworICAg
IHZvaWQgYWRkT3JVcGRhdGVCYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgaXRlbUlELCB1aW50NjRf
dCBwYWdlSUQsIGNvbnN0IFBhZ2VTdGF0ZSYpOwogICAgIHZvaWQgZGlkRGVzdHJveUZyYW1lKHVp
bnQ2NF90KTsKICAgICB2b2lkIGRpZERlc3Ryb3lVc2VyR2VzdHVyZVRva2VuKHVpbnQ2NF90KTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDk4YzcxMmFjYzNmNzlkNGUxMDhiZjVhYjM1NGE0MWUwYWRkODYyNTYuLmVj
N2NmNTAxMzkzNzZiNTM4Nzc5OTQ2MDljMDcwNTI5MDY2NjM1ODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KQEAgLTIxLDcg
KzIxLDcgQEAKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gV2ViUHJvY2Vzc1Byb3h5IExl
Z2FjeVJlY2VpdmVyIHsKLSAgICBBZGRCYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgaXRlbUlELCB1
aW50NjRfdCBwYWdlSUQsIHN0cnVjdCBXZWJLaXQ6OlBhZ2VTdGF0ZSBwYWdlU3RhdGUpCisgICAg
QWRkT3JVcGRhdGVCYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgaXRlbUlELCB1aW50NjRfdCBwYWdl
SUQsIHN0cnVjdCBXZWJLaXQ6OlBhZ2VTdGF0ZSBwYWdlU3RhdGUpCiAgICAgRGlkRGVzdHJveUZy
YW1lKHVpbnQ2NF90IGZyYW1lSUQpIAogCiAgICAgRGlkRGVzdHJveVVzZXJHZXN0dXJlVG9rZW4o
dWludDY0X3QgdXNlckdlc3R1cmVUb2tlbklEKSAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCmluZGV4IDRjMzNkNTVk
MWY5MDMyODU4OGZlY2E1YTI3NDRiMDA5MWRlNjE4NzUuLjc0OTgzODI4MmIwNTdlZGVjNTMzMWNk
NmM2ZjU1NDVjZmRhZjdlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbQpAQCAtMjk0LDcgKzI5NCw3IEBAIHZv
aWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjplbmRTd2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRM
aXN0SXRlbSogdGFyZ2V0SXRlbSwKICAgICBpZiAoJm1fd2ViUGFnZVByb3h5ICE9IG1fd2ViUGFn
ZVByb3h5Rm9yQmFja0ZvcndhcmRMaXN0Rm9yQ3VycmVudFN3aXBlKQogICAgICAgICBtX3dlYlBh
Z2VQcm94eS5uYXZpZ2F0aW9uR2VzdHVyZURpZEVuZCgpOwogCi0gICAgbV93ZWJQYWdlUHJveHlG
b3JCYWNrRm9yd2FyZExpc3RGb3JDdXJyZW50U3dpcGUtPmdvVG9CYWNrRm9yd2FyZEl0ZW0odGFy
Z2V0SXRlbSk7CisgICAgbV93ZWJQYWdlUHJveHlGb3JCYWNrRm9yd2FyZExpc3RGb3JDdXJyZW50
U3dpcGUtPmdvVG9CYWNrRm9yd2FyZEl0ZW0oKnRhcmdldEl0ZW0pOwogCiAgICAgaWYgKGF1dG8g
ZHJhd2luZ0FyZWEgPSBtX3dlYlBhZ2VQcm94eS5kcmF3aW5nQXJlYSgpKSB7CiAgICAgICAgIHVp
bnQ2NF90IHBhZ2VJRCA9IG1fd2ViUGFnZVByb3h5LnBhZ2VJRCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJNYWMubW0KaW5k
ZXggZGZmYTU0NzdmNTllZjU3NzUxYTY4MjI5ZWE2NjM3ZmMzYzdhZTUzMC4uMDMyNmMzNDQwM2I3
YTAyNWVkNjdiYjZlYWIwNmJmNjU2ZGQ1MDkyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCkBAIC03NDEsNyAr
NzQxLDcgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmVuZFN3aXBlR2VzdHVyZShXZWJC
YWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLAogICAgIG1fd2ViUGFnZVByb3h5LnByb2Nl
c3MoKS5zZW5kKE1lc3NhZ2VzOjpWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yOjpTZXRSZW5k
ZXJUcmVlU2l6ZU5vdGlmaWNhdGlvblRocmVzaG9sZChyZW5kZXJUcmVlU2l6ZSAqIHN3aXBlU25h
cHNob3RSZW1vdmFsUmVuZGVyVHJlZVNpemVUYXJnZXRGcmFjdGlvbiksIG1fd2ViUGFnZVByb3h5
LnBhZ2VJRCgpKTsKIAogICAgIG1fd2ViUGFnZVByb3h5Lm5hdmlnYXRpb25HZXN0dXJlRGlkRW5k
KHRydWUsICp0YXJnZXRJdGVtKTsKLSAgICBtX3dlYlBhZ2VQcm94eS5nb1RvQmFja0ZvcndhcmRJ
dGVtKHRhcmdldEl0ZW0pOworICAgIG1fd2ViUGFnZVByb3h5LmdvVG9CYWNrRm9yd2FyZEl0ZW0o
KnRhcmdldEl0ZW0pOwogCiAgICAgU25hcHNob3RSZW1vdmFsVHJhY2tlcjo6RXZlbnRzIGRlc2ly
ZWRFdmVudHMgPSBTbmFwc2hvdFJlbW92YWxUcmFja2VyOjpWaXN1YWxseU5vbkVtcHR5TGF5b3V0
CiAgICAgICAgIHwgU25hcHNob3RSZW1vdmFsVHJhY2tlcjo6TWFpbkZyYW1lTG9hZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1Nlc3Npb25TdGF0
ZUNvbnZlcnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1Nlc3Npb25TdGF0ZUNvbnZlcnNpb24uY3BwCmluZGV4IDFhZTJjM2M4YjdkNjIyMTUyOGY4YWIx
NDViNGM4YmI3ZWFkNjc1OWEuLmE1ZDQ1YTlhODBlZTg1ODJhYjVkM2ZmOWE3ODI2OGRmY2JkYjky
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9T
ZXNzaW9uU3RhdGVDb252ZXJzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvU2Vzc2lvblN0YXRlQ29udmVyc2lvbi5jcHAKQEAgLTExOSw3ICsxMTks
NyBAQCBQYWdlU3RhdGUgdG9QYWdlU3RhdGUoY29uc3QgV2ViQ29yZTo6SGlzdG9yeUl0ZW0mIGhp
c3RvcnlJdGVtKQogICAgIHBhZ2VTdGF0ZS50aXRsZSA9IGhpc3RvcnlJdGVtLnRpdGxlKCk7CiAg
ICAgcGFnZVN0YXRlLm1haW5GcmFtZVN0YXRlID0gdG9GcmFtZVN0YXRlKGhpc3RvcnlJdGVtKTsK
ICAgICBwYWdlU3RhdGUuc2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSA9IGhpc3RvcnlJdGVt
LnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3koKTsKLQorICAgIHBhZ2VTdGF0ZS5zZXNzaW9u
U3RhdGVPYmplY3QgPSBoaXN0b3J5SXRlbS5zdGF0ZU9iamVjdCgpOwogICAgIHJldHVybiBwYWdl
U3RhdGU7CiB9CiAKQEAgLTE5Myw2ICsxOTMsNyBAQCBSZWY8SGlzdG9yeUl0ZW0+IHRvSGlzdG9y
eUl0ZW0oY29uc3QgUGFnZVN0YXRlJiBwYWdlU3RhdGUpCiB7CiAgICAgUmVmPEhpc3RvcnlJdGVt
PiBoaXN0b3J5SXRlbSA9IEhpc3RvcnlJdGVtOjpjcmVhdGUocGFnZVN0YXRlLm1haW5GcmFtZVN0
YXRlLnVybFN0cmluZywgcGFnZVN0YXRlLnRpdGxlKTsKICAgICBoaXN0b3J5SXRlbS0+c2V0U2hv
dWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeShwYWdlU3RhdGUuc2hvdWxkT3BlbkV4dGVybmFsVVJM
c1BvbGljeSk7CisgICAgaGlzdG9yeUl0ZW0tPnNldFN0YXRlT2JqZWN0KHBhZ2VTdGF0ZS5zZXNz
aW9uU3RhdGVPYmplY3QuZ2V0KCkpOwogICAgIGFwcGx5RnJhbWVTdGF0ZShoaXN0b3J5SXRlbSwg
cGFnZVN0YXRlLm1haW5GcmFtZVN0YXRlKTsKIAogICAgIHJldHVybiBoaXN0b3J5SXRlbTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJk
TGlzdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tG
b3J3YXJkTGlzdFByb3h5LmNwcAppbmRleCBjMmU5MWVhN2YxY2UzMTY1OTU4YmRiOTRhNjY2MGI1
MTRmODY4ZGU1Li43ZjRlMTI3N2NjZDc0MDI3NmY3ZGUwOWZhMzQ4MGNhMjEyZGQyZWRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExp
c3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFj
a0ZvcndhcmRMaXN0UHJveHkuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgV2ViQmFja0Zvcndh
cmRMaXN0UHJveHk6OnNldEhpZ2hlc3RJdGVtSURGcm9tVUlQcm9jZXNzKHVpbnQ2NF90IGl0ZW1J
RCkKIAogc3RhdGljIHZvaWQgdXBkYXRlQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IGl0ZW1JRCwg
dWludDY0X3QgcGFnZUlELCBIaXN0b3J5SXRlbSogaXRlbSkKIHsKLSAgICBXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OkFkZEJhY2tGb3J3YXJkSXRlbShpdGVtSUQsIHBhZ2VJRCwgdG9QYWdlU3Rh
dGUoKml0ZW0pKSwgMCk7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpBZGRPclVwZGF0
ZUJhY2tGb3J3YXJkSXRlbShpdGVtSUQsIHBhZ2VJRCwgdG9QYWdlU3RhdGUoKml0ZW0pKSwgMCk7
CiB9CiAKIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmFkZEl0ZW1Gcm9tVUlQcm9jZXNz
KHVpbnQ2NF90IGl0ZW1JRCwgUmVmPEhpc3RvcnlJdGVtPiYmIGl0ZW0sIHVpbnQ2NF90IHBhZ2VJ
RCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXgg
ODFhZTQ1YzRlMzFlOThmOTRkNGE3NTUxNDAyODk4MDRkYTgzNDRlZS4uOGJlMmQ3NjAwOWVmM2I2
OTZhMGY1MDZlMTgwMTZmN2RiNzYwZjY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTEzODAsNDkgKzEzODAsMjMgQEAgdm9pZCBXZWJQYWdl
OjpyZWxvYWQodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCByZWxvYWRPcHRpb25zLCBT
YW5kYm94RXh0ZW4KICAgICBjb3JlUGFnZSgpLT51c2VySW5wdXRCcmlkZ2UoKS5yZWxvYWRGcmFt
ZShtX21haW5GcmFtZS0+Y29yZUZyYW1lKCksIE9wdGlvblNldDxSZWxvYWRPcHRpb24+Ojpmcm9t
UmF3KHJlbG9hZE9wdGlvbnMpKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpnb0ZvcndhcmQodWludDY0
X3QgbmF2aWdhdGlvbklELCB1aW50NjRfdCBiYWNrRm9yd2FyZEl0ZW1JRCkKK3ZvaWQgV2ViUGFn
ZTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90IGJh
Y2tGb3J3YXJkSXRlbUlELCBGcmFtZUxvYWRUeXBlIGJhY2tGb3J3YXJkVHlwZSwgTmF2aWdhdGlv
blBvbGljeUNoZWNrIG5hdmlnYXRpb25Qb2xpY3lDaGVjaykKIHsKICAgICBTZW5kU3RvcFJlc3Bv
bnNpdmVuZXNzVGltZXIgc3RvcHBlcjsKIAotICAgIEhpc3RvcnlJdGVtKiBpdGVtID0gV2ViQmFj
a0ZvcndhcmRMaXN0UHJveHk6Oml0ZW1Gb3JJRChiYWNrRm9yd2FyZEl0ZW1JRCk7Ci0gICAgQVNT
RVJUKGl0ZW0pOwotICAgIGlmICghaXRlbSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQVNTRVJU
KCFtX3BlbmRpbmdOYXZpZ2F0aW9uSUQpOwotICAgIG1fcGVuZGluZ05hdmlnYXRpb25JRCA9IG5h
dmlnYXRpb25JRDsKLQotICAgIG1fcGFnZS0+Z29Ub0l0ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6
OkZvcndhcmQpOwotfQotCi12b2lkIFdlYlBhZ2U6OmdvQmFjayh1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlEKQotewotICAgIFNlbmRTdG9wUmVzcG9uc2l2
ZW5lc3NUaW1lciBzdG9wcGVyOworICAgIEFTU0VSVChpc0JhY2tGb3J3YXJkTG9hZFR5cGUoYmFj
a0ZvcndhcmRUeXBlKSk7CiAKICAgICBIaXN0b3J5SXRlbSogaXRlbSA9IFdlYkJhY2tGb3J3YXJk
TGlzdFByb3h5OjppdGVtRm9ySUQoYmFja0ZvcndhcmRJdGVtSUQpOwogICAgIEFTU0VSVChpdGVt
KTsKICAgICBpZiAoIWl0ZW0pCiAgICAgICAgIHJldHVybjsKIAotICAgIEFTU0VSVCghbV9wZW5k
aW5nTmF2aWdhdGlvbklEKTsKLSAgICBtX3BlbmRpbmdOYXZpZ2F0aW9uSUQgPSBuYXZpZ2F0aW9u
SUQ7Ci0KLSAgICBtX3BhZ2UtPmdvVG9JdGVtKCppdGVtLCBGcmFtZUxvYWRUeXBlOjpCYWNrKTsK
LX0KLQotdm9pZCBXZWJQYWdlOjpnb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgdWludDY0X3QgYmFja0ZvcndhcmRJdGVtSUQpCi17Ci0gICAgU2VuZFN0b3BSZXNwb25z
aXZlbmVzc1RpbWVyIHN0b3BwZXI7Ci0KLSAgICBIaXN0b3J5SXRlbSogaXRlbSA9IFdlYkJhY2tG
b3J3YXJkTGlzdFByb3h5OjppdGVtRm9ySUQoYmFja0ZvcndhcmRJdGVtSUQpOwotICAgIEFTU0VS
VChpdGVtKTsKLSAgICBpZiAoIWl0ZW0pCi0gICAgICAgIHJldHVybjsKKyAgICBMT0coTG9hZGlu
ZywgIkluIFdlYlByb2Nlc3MsIFdlYlBhZ2UgJSIgUFJJdTY0ICIgaXMgbmF2aWdhdGluZyB0byBi
YWNrL2ZvcndhcmQgVVJMICVzIiwgbV9wYWdlSUQsIGl0ZW0tPnVybCgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOwogCiAgICAgQVNTRVJUKCFtX3BlbmRpbmdOYXZpZ2F0aW9uSUQpOwogICAgIG1f
cGVuZGluZ05hdmlnYXRpb25JRCA9IG5hdmlnYXRpb25JRDsKIAotICAgIG1fcGFnZS0+Z29Ub0l0
ZW0oKml0ZW0sIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCk7CisgICAgbV9wYWdl
LT5nb1RvSXRlbSgqaXRlbSwgYmFja0ZvcndhcmRUeXBlLCBuYXZpZ2F0aW9uUG9saWN5Q2hlY2sp
OwogfQogCiB2b2lkIFdlYlBhZ2U6OnRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggMTVmOTJjOTc0MGY4MWI4
YzFhNGViYWI4N2M0ZWY3NmQ4YWVjMzgyZS4uMDc0NGEyZjRmZDU5YmE1ODliZjAxNzViMTFkZDdj
YmI3ZWM3MDcwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aApAQCAtMTQ5LDYgKzE0OSwxMCBAQCBjbGFzcyBUZXh0Q2hlY2tpbmdSZXF1ZXN0OwogY2xhc3Mg
VVJMOwogY2xhc3MgVmlzaWJsZVBvc2l0aW9uOwogCitlbnVtIFN5bnRoZXRpY0NsaWNrVHlwZSA6
IGludDhfdDsKK2VudW0gY2xhc3MgTmF2aWdhdGlvblBvbGljeUNoZWNrOworZW51bSBjbGFzcyBU
ZXh0SW5kaWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiA6IHVpbnQ4X3Q7CisKIHN0cnVjdCBD
b21wb3NpdGlvblVuZGVybGluZTsKIHN0cnVjdCBEaWN0YXRpb25BbHRlcm5hdGl2ZTsKIHN0cnVj
dCBIaWdobGlnaHQ7CkBAIC0xNTcsOSArMTYxLDcgQEAgc3RydWN0IFByb21pc2VkQmxvYkluZm87
CiBzdHJ1Y3QgVGV4dENoZWNraW5nUmVzdWx0Owogc3RydWN0IFZpZXdwb3J0QXJndW1lbnRzOwog
Ci1lbnVtIFN5bnRoZXRpY0NsaWNrVHlwZSA6IGludDhfdDsKIAotZW51bSBjbGFzcyBUZXh0SW5k
aWNhdG9yUHJlc2VudGF0aW9uVHJhbnNpdGlvbiA6IHVpbnQ4X3Q7CiAKICNpZiBFTkFCTEUoQVRU
QUNITUVOVF9FTEVNRU5UKQogY2xhc3MgSFRNTEF0dGFjaG1lbnRFbGVtZW50OwpAQCAtMjE0LDYg
KzIxNiw5IEBAIGNsYXNzIFdlYlRvdWNoRXZlbnQ7CiBjbGFzcyBXZWJDcmVkZW50aWFsc01lc3Nl
bmdlcjsKIGNsYXNzIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOwogCitlbnVtIEZpbmRPcHRp
b25zIDogdWludDE2X3Q7CitlbnVtIGNsYXNzIERyYWdDb250cm9sbGVyQWN0aW9uOworCiBzdHJ1
Y3QgQXNzaXN0ZWROb2RlSW5mb3JtYXRpb247CiBzdHJ1Y3QgQXR0cmlidXRlZFN0cmluZzsKIHN0
cnVjdCBCYWNrRm9yd2FyZExpc3RJdGVtU3RhdGU7CkBAIC0yMjcsOSArMjMyLDYgQEAgc3RydWN0
IFdlYlByZWZlcmVuY2VzU3RvcmU7CiBzdHJ1Y3QgV2ViU2VsZWN0aW9uRGF0YTsKIHN0cnVjdCBX
ZWJzaXRlUG9saWNpZXNEYXRhOwogCi1lbnVtIGNsYXNzIERyYWdDb250cm9sbGVyQWN0aW9uOwot
ZW51bSBGaW5kT3B0aW9ucyA6IHVpbnQxNl90OwotCiB1c2luZyBTbmFwc2hvdE9wdGlvbnMgPSB1
aW50MzJfdDsKIHVzaW5nIFdLRXZlbnRNb2RpZmllcnMgPSB1aW50MzJfdDsKIApAQCAtMTE0OCw5
ICsxMTUwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvYWRBbHRlcm5hdGVIVE1MU3RyaW5nKGNv
bnN0IExvYWRQYXJhbWV0ZXJzJik7CiAgICAgdm9pZCBuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11
bGF0ZWRDbGljayhjb25zdCBTdHJpbmcmIHVybCwgV2ViQ29yZTo6SW50UG9pbnQgZG9jdW1lbnRQ
b2ludCwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuUG9pbnQpOwogICAgIHZvaWQgcmVsb2FkKHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMyX3QgcmVsb2FkT3B0aW9ucywgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlJiYpOwotICAgIHZvaWQgZ29Gb3J3YXJkKHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgdWludDY0X3QpOwotICAgIHZvaWQgZ29CYWNrKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWlu
dDY0X3QpOwotICAgIHZvaWQgZ29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIHVpbnQ2NF90KTsKKyAgICB2b2lkIGdvVG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2
aWdhdGlvbklELCB1aW50NjRfdCwgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSwgV2ViQ29yZTo6TmF2
aWdhdGlvblBvbGljeUNoZWNrKTsKICAgICB2b2lkIHRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigp
OwogICAgIHZvaWQgc2V0SW5pdGlhbEZvY3VzKGJvb2wgZm9yd2FyZCwgYm9vbCBpc0tleWJvYXJk
RXZlbnRWYWxpZCwgY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYsIENhbGxiYWNrSUQpOwogICAgIHZv
aWQgdXBkYXRlSXNJbldpbmRvdyhib29sIGlzSW5pdGlhbFN0YXRlID0gZmFsc2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4K
aW5kZXggNzFmN2M1MTZiMGJmYjdhYzQ3NTAyZTZiZWJhMmFlNjlmZjVhZGQyOC4uNWE3YWFmNGM3
NTI2Y2EyYjhmMDNiMTgyMjYxZjZmNzIyYzc4OWI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xMzQsOSArMTM0
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2Nyb2xsQnko
dWludDMyX3Qgc2Nyb2xsRGlyZWN0aW9uLCB1aW50MzJfdCBzY3JvbGxHcmFudWxhcml0eSkKICAg
ICBDZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhKCkKIAotICAgIEdvQmFjayh1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlEKQotICAgIEdvRm9yd2FyZCh1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQ2NF90IGJhY2tGb3J3YXJkSXRlbUlEKQotICAgIEdv
VG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50NjRfdCBiYWNrRm9y
d2FyZEl0ZW1JRCkKKyAgICBHb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25J
RCwgdWludDY0X3QgYmFja0ZvcndhcmRJdGVtSUQsIGVudW0gV2ViQ29yZTo6RnJhbWVMb2FkVHlw
ZSBiYWNrRm9yd2FyZFR5cGUsIGVudW0gV2ViQ29yZTo6TmF2aWdhdGlvblBvbGljeUNoZWNrIG5h
dmlnYXRpb25Qb2xpY3lDaGVjaykKICAgICBUcnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQogCiAg
ICAgTG9hZFVSTEluRnJhbWUoV2ViQ29yZTo6VVJMIHVybCwgdWludDY0X3QgZnJhbWVJRCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCBhMjA1YzJhMzRh
MGMwZGM2YzdkYWYwZTE2N2YwNzFhMGE5YjBlYTEwLi4yMzM4NzkyODM0MzJhYmI1ZGY3ODY5MmNj
MTMyZjg3YWIxNWE5MjU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCkBAIC0xNzQsNiArMTc0LDcgQEAKICNpbXBvcnQgPFdlYkNvcmUvTWFpbkZyYW1lLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL01lbW9yeUNhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL01lbW9y
eVJlbGVhc2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTmF2aWdhdGlvblBvbGljeUNoZWNrLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9Ob2RlTGlzdC5oPgogI2ltcG9ydCA8V2ViQ29yZS9Ob3RpZmljYXRpb24uaD4KQEAgLTI1NjYs
NyArMjU2Nyw3IEBAIHN0YXRpYyBib29sIGZhc3REb2N1bWVudFRlYXJkb3duRW5hYmxlZCgpCiAg
ICAgfQogCiAgICAgQVNTRVJUKG5ld0l0ZW1Ub0dvVG8pOwotICAgIF9wcml2YXRlLT5wYWdlLT5n
b1RvSXRlbSgqbmV3SXRlbVRvR29UbywgRnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJk
KTsKKyAgICBfcHJpdmF0ZS0+cGFnZS0+Z29Ub0l0ZW0oKm5ld0l0ZW1Ub0dvVG8sIEZyYW1lTG9h
ZFR5cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJl
KTsKIH0KIAogLSAodm9pZClfc2V0Rm9ybURlbGVnYXRlOiAoaWQ8V2ViRm9ybURlbGVnYXRlPilk
ZWxlZ2F0ZQpAQCAtNjM2OSw3ICs2MzcwLDcgQEAgc3RhdGljIE5TU3RyaW5nICogY29uc3QgYmFj
a2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXkgPSBAIk5TQmFja2luZ1Byb3BlcnR5T2wKICAg
ICAgICAgcmV0dXJuIE5POwogCiAgICAgQVNTRVJUKGl0ZW0pOwotICAgIF9wcml2YXRlLT5wYWdl
LT5nb1RvSXRlbSgqY29yZShpdGVtKSwgRnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJk
KTsKKyAgICBfcHJpdmF0ZS0+cGFnZS0+Z29Ub0l0ZW0oKmNvcmUoaXRlbSksIEZyYW1lTG9hZFR5
cGU6OkluZGV4ZWRCYWNrRm9yd2FyZCwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKTsK
ICAgICByZXR1cm4gWUVTOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4
IGE1ZmYwN2NhNGJhMWE1NzUyNWQ4MWQzZTJlNTlhZGM0ZDdkMmM4MjQuLjIzNzAyYjRkYzliNDA2
YmY4ZmY3YTliODIyYjdlM2UyNDM0ZjhlZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcu
Y3BwCkBAIC0zNDMzLDcgKzM0MzMsNyBAQCBIUkVTVUxUIFdlYlZpZXc6OmdvVG9CYWNrRm9yd2Fy
ZEl0ZW0oX0luX29wdF8gSVdlYkhpc3RvcnlJdGVtKiBpdGVtLCBfT3V0XyBCT09MKgogICAgIGlm
IChGQUlMRUQoaHIpKQogICAgICAgICByZXR1cm4gaHI7CiAKLSAgICBtX3BhZ2UtPmdvVG9JdGVt
KCp3ZWJIaXN0b3J5SXRlbS0+aGlzdG9yeUl0ZW0oKSwgRnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJh
Y2tGb3J3YXJkKTsKKyAgICBtX3BhZ2UtPmdvVG9JdGVtKCp3ZWJIaXN0b3J5SXRlbS0+aGlzdG9y
eUl0ZW0oKSwgRnJhbWVMb2FkVHlwZTo6SW5kZXhlZEJhY2tGb3J3YXJkLCBOYXZpZ2F0aW9uUG9s
aWN5Q2hlY2s6OlJlcXVpcmUpOwogICAgICpzdWNjZWVkZWQgPSBUUlVFOwogCiAgICAgcmV0dXJu
IFNfT0s7CkBAIC01OTYwLDcgKzU5NjAsNyBAQCBIUkVTVUxUIFdlYlZpZXc6OmxvYWRCYWNrRm9y
d2FyZExpc3RGcm9tT3RoZXJWaWV3KF9Jbl9vcHRfIElXZWJWaWV3KiBvdGhlclZpZXcpCiAgICAg
fQogICAgIAogICAgIEFTU0VSVChuZXdJdGVtVG9Hb1RvKTsKLSAgICBtX3BhZ2UtPmdvVG9JdGVt
KCpuZXdJdGVtVG9Hb1RvLCBGcmFtZUxvYWRUeXBlOjpJbmRleGVkQmFja0ZvcndhcmQpOworICAg
IG1fcGFnZS0+Z29Ub0l0ZW0oKm5ld0l0ZW1Ub0dvVG8sIEZyYW1lTG9hZFR5cGU6OkluZGV4ZWRC
YWNrRm9yd2FyZCwgTmF2aWdhdGlvblBvbGljeUNoZWNrOjpSZXF1aXJlKTsKICAgICByZXR1cm4g
U19PSzsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IDYwZDNmYjQ4M2I4YmZkMzFjMDU3OGRlY2JlZDY1ZTIxYmUzNWY5MzkuLmFjYTUwNDg4
Zjk1MDk1ZGEzOGJkYmVhMDQ2OTRlZjI5YWMzYmMxOGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxOC0wMy0yMyAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgR28gdG8gYmFjay9m
b3J3YXJkIGxpc3QgaXRlbXMgYWZ0ZXIgYSBwcm9jZXNzLXN3YXBwZWQgbmF2aWdhdGlvbi4KKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM4NjkwNTQ0PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MzkyMAorCisgICAgICAgIFJldmlld2VkIGJ5IEFuZHkgRXN0
ZXMuCisKKyAgICAgICAgQWRkIGEgbmV3IEFQSSB0ZXN0IHRoYXQgZG9lcyBzb21lIHByb2Nlc3Mt
c3dhcHBpbmcgbmF2aWdhdGlvbnMgKGluY2x1ZGluZyBhIGJhY2sgbmF2aWdhdGlvbikKKyAgICAg
ICAgYW5kIHZlcmlmaWVzIHRoZSBzdGF0ZSBvZiB0aGUgZW5naW5lIGFmdGVyd2FyZHMuCisKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZp
Z2F0aW9uLm1tOgorICAgICAgICAoLVtQU09OTWVzc2FnZUhhbmRsZXIgdXNlckNvbnRlbnRDb250
cm9sbGVyOmRpZFJlY2VpdmVTY3JpcHRNZXNzYWdlOl0pOgorICAgICAgICAoLVtQU09OU2NoZW1l
IGluaXRXaXRoQnl0ZXM6XSk6CisgICAgICAgICgtW1BTT05TY2hlbWUgd2ViVmlldzpzdGFydFVS
TFNjaGVtZVRhc2s6XSk6CisgICAgICAgIChsb2cpOgorICAgICAgICAoZnVuY3Rpb24pOgorICAg
ICAgICAoVEVTVCk6IERlbGV0ZWQuCisKIDIwMTgtMDMtMjEgIFlvc2hpYWtpIEppdHN1a2F3YSAg
PHlvc2hpYWtpLmppdHN1a2F3YUBzb255LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBtYWtl
IHRoZSBlbWFpbCBhZGRyZXNzIG9mIFlvc2hpYWtpIEppdHN1a2F3YSBhbGwgbG93ZXIgY2FzZS4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vz
c1N3YXBPbk5hdmlnYXRpb24ubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENv
Y29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCmluZGV4IGY0YjFlMDdjYjgxYzQ0YTU3OGE5
MTczMDc2ZDRiOTgxMWNlMTNlNzYuLmYyMjJjYmUxODE3MzA1MzlkZGNlNDBiMmEzZWZhYWI4MTE1
NGEzM2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2Ev
UHJvY2Vzc1N3YXBPbk5hdmlnYXRpb24ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5tbQpAQCAtNTIsNiArNTIsMTkg
QEAKIHN0YXRpYyBib29sIGRvbmU7CiBzdGF0aWMgaW50IG51bWJlck9mRGVjaWRlUG9saWN5Q2Fs
bHM7CiAKK3N0YXRpYyBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IHJlY2VpdmVkTWVzc2FnZXMg
PSBhZG9wdE5TKFtAW10gbXV0YWJsZUNvcHldKTsKK3N0YXRpYyBib29sIHJlY2VpdmVkTWVzc2Fn
ZTsKK0BpbnRlcmZhY2UgUFNPTk1lc3NhZ2VIYW5kbGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVz
c2FnZUhhbmRsZXI+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBQU09OTWVzc2FnZUhhbmRsZXIK
Ky0gKHZvaWQpdXNlckNvbnRlbnRDb250cm9sbGVyOihXS1VzZXJDb250ZW50Q29udHJvbGxlciAq
KXVzZXJDb250ZW50Q29udHJvbGxlciBkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTooV0tTY3JpcHRN
ZXNzYWdlICopbWVzc2FnZQoreworICAgIFtyZWNlaXZlZE1lc3NhZ2VzIGFkZE9iamVjdDpbbWVz
c2FnZSBib2R5XV07CisgICAgcmVjZWl2ZWRNZXNzYWdlID0gdHJ1ZTsKK30KK0BlbmQKKwogQGlu
dGVyZmFjZSBQU09OTmF2aWdhdGlvbkRlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRl
bGVnYXRlPgogQGVuZAogCkBAIC03MSwxNiArODQsMzEgQEAgc3RhdGljIGludCBudW1iZXJPZkRl
Y2lkZVBvbGljeUNhbGxzOwogQGVuZAogCiBAaW50ZXJmYWNlIFBTT05TY2hlbWUgOiBOU09iamVj
dCA8V0tVUkxTY2hlbWVIYW5kbGVyPiB7CisgICAgY29uc3QgY2hhciogX2J5dGVzOwogfQorLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoQnl0ZXM6KGNvbnN0IGNoYXIqKWJ5dGVzOwogQGVuZAogCiBA
aW1wbGVtZW50YXRpb24gUFNPTlNjaGVtZQogCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhCeXRl
czooY29uc3QgY2hhciopYnl0ZXMKK3sKKyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIF9i
eXRlcyA9IGJ5dGVzOworICAgIHJldHVybiBzZWxmOworfQorCiAtICh2b2lkKXdlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgc3RhcnRVUkxTY2hlbWVUYXNrOihpZCA8V0tVUkxTY2hlbWVUYXNr
Pil0YXNrCiB7CiAgICAgUmV0YWluUHRyPE5TVVJMUmVzcG9uc2U+IHJlc3BvbnNlID0gYWRvcHRO
UyhbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnRhc2sucmVxdWVzdC5VUkwgTUlN
RVR5cGU6QCJ0ZXh0L2h0bWwiIGV4cGVjdGVkQ29udGVudExlbmd0aDoxIHRleHRFbmNvZGluZ05h
bWU6bmlsXSk7CiAgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOnJlc3BvbnNlLmdldCgpXTsK
LSAgICBbdGFzayBkaWRSZWNlaXZlRGF0YTpbQCJIZWxsbyIgZGF0YVVzaW5nRW5jb2Rpbmc6TlNV
VEY4U3RyaW5nRW5jb2RpbmddXTsKKworICAgIGlmIChfYnl0ZXMpIHsKKyAgICAgICAgUmV0YWlu
UHRyPE5TRGF0YT4gZGF0YSA9IGFkb3B0TlMoW1tOU0RhdGEgYWxsb2NdIGluaXRXaXRoQnl0ZXNO
b0NvcHk6KHZvaWQgKilfYnl0ZXMgbGVuZ3RoOnN0cmxlbihfYnl0ZXMpIGZyZWVXaGVuRG9uZTpO
T10pOworICAgICAgICBbdGFzayBkaWRSZWNlaXZlRGF0YTpkYXRhLmdldCgpXTsKKyAgICB9IGVs
c2UKKyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZURhdGE6W0AiSGVsbG8iIGRhdGFVc2luZ0VuY29k
aW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXV07CisKICAgICBbdGFzayBkaWRGaW5pc2hdOwogfQog
CkBAIC05MCw2ICsxMTgsMjggQEAgc3RhdGljIGludCBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxz
OwogCiBAZW5kCiAKK3N0YXRpYyBjb25zdCBjaGFyKiB0ZXN0Qnl0ZXMgPSBSIlBTT05SRVNPVVJD
RSgKKzxoZWFkPgorPHNjcmlwdD4KKworZnVuY3Rpb24gbG9nKG1zZykKK3sKKyAgICB3aW5kb3cu
d2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5wc29uLnBvc3RNZXNzYWdlKG1zZyk7Cit9CisKK3dpbmRv
dy5vbmxvYWQgPSBmdW5jdGlvbihldnQpIHsKKyAgICBpZiAod2luZG93Lmhpc3Rvcnkuc3RhdGUg
IT0gIm9ubG9hZENhbGxlZCIpCisgICAgICAgIHNldFRpbWVvdXQoJ3dpbmRvdy5oaXN0b3J5LnJl
cGxhY2VTdGF0ZSgib25sb2FkQ2FsbGVkIiwgIiIpOycsIDApOworfQorCit3aW5kb3cub25wYWdl
c2hvdyA9IGZ1bmN0aW9uKGV2dCkgeworICAgIGxvZygiUGFnZVNob3cgY2FsbGVkLiBQZXJzaXN0
ZWQ6ICIgKyBldnQucGVyc2lzdGVkICsgIiwgYW5kIHdpbmRvdy5oaXN0b3J5LnN0YXRlIGlzOiAi
ICsgd2luZG93Lmhpc3Rvcnkuc3RhdGUpOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKylQU09O
UkVTT1VSQ0UiOworCiBURVNUKFByb2Nlc3NTd2FwLCBCYXNpYykKIHsKICAgICBhdXRvIHByb2Nl
c3NQb29sQ29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tfV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24gYWxsb2NdIGluaXRdKTsKQEAgLTEzNyw0ICsxODcsNzAgQEAgVEVTVChQcm9jZXNzU3dhcCwg
QmFzaWMpCiAgICAgRVhQRUNUX0VRKG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMsIDMpOwogfQog
CitURVNUKFByb2Nlc3NTd2FwLCBCYWNrKQoreworICAgIGF1dG8gcHJvY2Vzc1Bvb2xDb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW19XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbiBhbGxvY10gaW5p
dF0pOworICAgIHByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5nZXQoKS5wcm9jZXNzU3dhcHNPbk5h
dmlnYXRpb24gPSBZRVM7CisgICAgYXV0byBwcm9jZXNzUG9vbCA9IGFkb3B0TlMoW1tXS1Byb2Nl
c3NQb29sIGFsbG9jXSBfaW5pdFdpdGhDb25maWd1cmF0aW9uOnByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5nZXQoKV0pOworCisgICAgYXV0byB3ZWJWaWV3Q29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXdDb25m
aWd1cmF0aW9uIHNldFByb2Nlc3NQb29sOnByb2Nlc3NQb29sLmdldCgpXTsKKyAgICBSZXRhaW5Q
dHI8UFNPTlNjaGVtZT4gaGFuZGxlcjEgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5p
dFdpdGhCeXRlczp0ZXN0Qnl0ZXNdKTsKKyAgICBSZXRhaW5QdHI8UFNPTlNjaGVtZT4gaGFuZGxl
cjIgPSBhZG9wdE5TKFtbUFNPTlNjaGVtZSBhbGxvY10gaW5pdF0pOworICAgIFt3ZWJWaWV3Q29u
ZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5kbGVyOmhhbmRsZXIxLmdldCgpIGZvclVSTFNjaGVt
ZTpAIlBTT04xIl07CisgICAgW3dlYlZpZXdDb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRs
ZXI6aGFuZGxlcjIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAiUFNPTjIiXTsKKworICAgIFJldGFpblB0
cjxQU09OTWVzc2FnZUhhbmRsZXI+IG1lc3NhZ2VIYW5kbGVyID0gYWRvcHROUyhbW1BTT05NZXNz
YWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIFtbd2ViVmlld0NvbmZpZ3VyYXRpb24gdXNl
ckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdlSGFuZGxlcjptZXNzYWdlSGFuZGxl
ci5nZXQoKSBuYW1lOkAicHNvbiJdOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBj
b25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byBkZWxl
Z2F0ZSA9IGFkb3B0TlMoW1tQU09OTmF2aWdhdGlvbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7Cisg
ICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRlbGVnYXRlLmdldCgpXTsKKworICAg
IE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05T
VVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uMTovL2hvc3QvbWFpbjEuaHRtbCJdXTsKKyAgICBbd2Vi
VmlldyBsb2FkUmVxdWVzdDpyZXF1ZXN0XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1
bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAg
IGF1dG8gcGlkMSA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICByZXF1
ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpA
InBzb24yOi8vaG9zdC9tYWluMi5odG1sIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJl
cXVlc3RdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25l
ID0gZmFsc2U7CisKKyAgICBhdXRvIHBpZDIgPSBbd2ViVmlldyBfd2ViUHJvY2Vzc0lkZW50aWZp
ZXJdOworCisgICAgW3dlYlZpZXcgZ29CYWNrXTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcmVjZWl2ZWRNZXNzYWdlKTsKKyAgICByZWNlaXZlZE1lc3NhZ2UgPSBmYWxzZTsKKyAg
ICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKwor
ICAgIGF1dG8gcGlkMyA9IFt3ZWJWaWV3IF93ZWJQcm9jZXNzSWRlbnRpZmllcl07CisKKyAgICAv
LyAzIGxvYWRzLCAzIGRlY2lkZVBvbGljeSBjYWxscyAoZS5nLiBhbnkgbG9hZCB0aGF0IHBlcmZv
cm1zIGEgcHJvY2VzcyBzd2FwIHNob3VsZCBub3QgaGF2ZSBnZW5lcmF0ZWQgYW4KKyAgICAvLyBh
ZGRpdGlvbmFsIGRlY2lkZVBvbGljeSBjYWxsIGFzIGEgcmVzdWx0IG9mIHRoZSBwcm9jZXNzIHN3
YXApCisgICAgRVhQRUNUX0VRKG51bWJlck9mRGVjaWRlUG9saWN5Q2FsbHMsIDMpOworCisgICAg
RVhQRUNUX0VRKFtyZWNlaXZlZE1lc3NhZ2VzIGNvdW50XSwgMnUpOworICAgIEVYUEVDVF9UUlVF
KFtyZWNlaXZlZE1lc3NhZ2VzLmdldCgpWzBdIGlzRXF1YWxUb1N0cmluZzpAIlBhZ2VTaG93IGNh
bGxlZC4gUGVyc2lzdGVkOiBmYWxzZSwgYW5kIHdpbmRvdy5oaXN0b3J5LnN0YXRlIGlzOiBudWxs
Il0pOworCisgICAgLy8gRklYTUU6IFdlJ2QgbGlrZSB0byBnZXQgdGhlIHBhZ2UgcmVzdG9yaW5n
IGZyb20gdGhlIHBhZ2UgY2FjaGUgbGlrZSBiZWZvcmUgcHJvY2VzcyBzd2FwcGluZywgd2hpY2gg
d2lsbCBtYWtlIFBlcnNpc3RlZCBiZSAidHJ1ZSIKKyAgICAvLyBGb3Igbm93IGl0J3MgZXhwZWN0
ZWQgdG8gYmUgZmFsc2UiCisgICAgRVhQRUNUX1RSVUUoW3JlY2VpdmVkTWVzc2FnZXMuZ2V0KClb
MV0gaXNFcXVhbFRvU3RyaW5nOkAiUGFnZVNob3cgY2FsbGVkLiBQZXJzaXN0ZWQ6IGZhbHNlLCBh
bmQgd2luZG93Lmhpc3Rvcnkuc3RhdGUgaXM6IG9ubG9hZENhbGxlZCJdKTsKKworICAgIEVYUEVD
VF9GQUxTRShwaWQxID09IHBpZDIpOworICAgIEVYUEVDVF9GQUxTRShwaWQyID09IHBpZDMpOwor
CisgICAgLy8gRklYTUU6IElkZWFsbHkgd2UnZCBsaWtlIHRvIGdldCBwcm9jZXNzIGNhY2hpbmcg
aGFwcGVuaW5nIHN1Y2ggdGhhdCBwaWQxIGFuZCBwaWQzIGFyZSBlcXVhbC4KKyAgICAvLyBCdXQg
Zm9yIG5vdyB0aGV5IHNob3VsZCBub3QgYmUuCisgICAgRVhQRUNUX0ZBTFNFKHBpZDEgPT0gcGlk
Myk7Cit9CisKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>