<?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>207870</bug_id>
          
          <creation_ts>2020-02-17 16:44:19 -0800</creation_ts>
          <short_desc>Move from &quot;layer flush&quot; terminology to &quot;rendering update&quot;</short_desc>
          <delta_ts>2020-02-26 14:46:15 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>koivisto</cc>
    
    <cc>luiz</cc>
    
    <cc>noam</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1619972</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-17 16:44:19 -0800</bug_when>
    <thetext>Move from &quot;layer flush&quot; terminology to &quot;rendering update&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619974</commentid>
    <comment_count>1</comment_count>
      <attachid>391002</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-17 16:46:36 -0800</bug_when>
    <thetext>Created attachment 391002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1619980</commentid>
    <comment_count>2</comment_count>
      <attachid>391002</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-02-17 16:51:06 -0800</bug_when>
    <thetext>Comment on attachment 391002
Patch

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

&gt; Source/WebCore/page/ChromeClient.h:342
&gt; +    virtual bool adjustRenderUpdateThrottling(OptionSet&lt;RenderingUpdateThrottleState&gt;) { return false; }

should this be an -ing?

&gt; Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.h:159
&gt; +    bool m_nextRenderingUpdateIsImmediate { false };

If we&apos;re changing the name, can we change it to something less mysterious?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620002</commentid>
    <comment_count>3</comment_count>
      <attachid>391010</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-17 17:32:12 -0800</bug_when>
    <thetext>Created attachment 391010
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620042</commentid>
    <comment_count>4</comment_count>
      <attachid>391020</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-17 18:59:55 -0800</bug_when>
    <thetext>Created attachment 391020
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620077</commentid>
    <comment_count>5</comment_count>
      <attachid>391032</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-17 23:01:45 -0800</bug_when>
    <thetext>Created attachment 391032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620098</commentid>
    <comment_count>6</comment_count>
      <attachid>391032</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-18 02:16:39 -0800</bug_when>
    <thetext>Comment on attachment 391032
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:211
&gt; +        }
&gt;  }

Weird indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620121</commentid>
    <comment_count>7</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-02-18 06:18:23 -0800</bug_when>
    <thetext>Is there some terminology confusion here with the HTML concept of &quot;rendering update&quot;? To reach visually non-empty state we need to update layout without doing any layer flushes. Should there be a concept of &quot;visual rendering update&quot; or similar?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620142</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-02-18 08:10:11 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #7)
&gt; Is there some terminology confusion here with the HTML concept of &quot;rendering
&gt; update&quot;?

Perhaps, but I was trying to match this terminology on purpose.

&gt; To reach visually non-empty state we need to update layout without
&gt; doing any layer flushes. Should there be a concept of &quot;visual rendering
&gt; update&quot; or similar?

Probably!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1620184</commentid>
    <comment_count>9</comment_count>
      <attachid>391032</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-02-18 09:24:35 -0800</bug_when>
    <thetext>Comment on attachment 391032
Patch

Clearing flags on attachment: 391032

Committed r256834: &lt;https://trac.webkit.org/changeset/256834&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623194</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-26 14:46:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/59822371&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391002</attachid>
            <date>2020-02-17 16:46:36 -0800</date>
            <delta_ts>2020-02-17 16:51:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207870-20200217164635.patch</filename>
            <type>text/plain</type>
            <size>75091</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ4NjNjNjU2ZWQyYmM5MDZkZWQyN2I1
YTg2YWI3YzdlZjBhNGUyMjMuLjE3N2NhMmI1OGIwNmE3MjgzZTk0MzVlZTRlYmUzMDJlNDYwMDQ3
MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDItMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBmcm9tICJsYXllciBmbHVzaCIgdGVy
bWlub2xvZ3kgdG8gInJlbmRlcmluZyB1cGRhdGUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9TeXN0ZW1UcmFjaW5nLmg6CisKIDIwMjAtMDIt
MTcgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCAgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBhIGxvdCBnY2Mgd2FybmluZ3MgYmVjYXVzZSBvZiAle3B1YmxpY31zIGZvcm1hdCBz
cGVjaWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyMzFjN2E4YzA1ODkyY2NmNGRhNGRlMDYwNGE4YzY2ZDRi
NmZkOTA0Li4yZTMyZWVkODdjNjU2ZjEzMDQ1MjZkNWZhYWE2YjcwYmFkOTRkM2QzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjAtMDItMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBmcm9tICJsYXllciBmbHVzaCIgdGVybWlu
b2xvZ3kgdG8gInJlbmRlcmluZyB1cGRhdGUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIEhl
YWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6c2NoZWR1bGVTdHlsZVJlY2FsYyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2hv
dWxkU2NoZWR1bGVMYXlvdXQpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAg
ICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xp
ZW50OjpyZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nSXNBY3RpdmUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50OjphZGp1c3RSZW5kZXJVcGRhdGVUaHJvdHRsaW5nKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6bGF5ZXJGbHVzaFRocm90dGxpbmdJc0FjdGl2
ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmFkanVz
dExheWVyRmx1c2hUaHJvdHRsaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZXRlcm1pbmVMYXllckZsdXNoVGhyb3R0bGVTdGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmRpc2FibGVMYXllckZsdXNoVGhyb3R0
bGluZ1RlbXBvcmFyaWx5Rm9ySW50ZXJhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3Ojp1cGRhdGVMYXllckZsdXNoVGhyb3R0bGluZyk6CisgICAgICAgICogcGFnZS9SZW5kZXJp
bmdVcGRhdGVTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyaW5nVXBkYXRl
U2NoZWR1bGVyOjpzY2hlZHVsZUltbWVkaWF0ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgICog
cGFnZS9SZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0xheWVyRmx1c2hUaHJvdHRsZVN0YXRlLmguCisKIDIwMjAtMDItMTcgIFbD
rWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCAgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBhIGxvdCBnY2Mgd2FybmluZ3MgYmVjYXVzZSBvZiAle3B1YmxpY31zIGZvcm1hdCBzcGVjaWZp
ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggYmRlM2E4YjA3ODJjOGE0YTBhN2IzNTIzNTI2MzhmN2MwZjY2YjI0MC4u
ZmRiOGJiNDAzYTM5MzI1YzY3NDM3NDdiZGVhYWY0YTdkMWY3MjJhNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5NSBAQAorMjAyMC0wMi0xNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBNb3ZlIGZyb20gImxheWVyIGZsdXNoIiB0ZXJtaW5vbG9neSB0byAi
cmVuZGVyaW5nIHVwZGF0ZSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNzg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
ICAgICAgICAKKyAgICAgICAgUmVuYW1lIHZhcmlvdXMgZnVuY3Rpb25zIGFuZCBtZW1iZXIgdmFy
aWFibGVzIHRvIG1vdmUgYXdheSBmcm9tIHRoZSBsZWdhY3kgImxheWVyIGZsdXNoIgorICAgICAg
ICB0ZXJtaW5vbG9neSBhbmQgaW5zdGVhZCB1c2UgInJlbmRlcmluZyB1cGRhdGUiLCBtYXRjaGlu
ZyBQYWdlOjp1cGRhdGVSZW5kZXJpbmcoKS4gVGhlIGZhY3QKKyAgICAgICAgdGhhdCB3ZSBoYXZl
IGxheWVycyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuCisgICAgICAgIAorICAgICAgICBD
aGFuZ2UgTGF5ZXJGbHVzaFRocm90dGxpbmdTdGF0ZSB0byBiZSBhbiBPcHRpb25TZXQ8Pi4KKwor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6YWRqdXN0UmVuZGVyVXBkYXRl
VGhyb3R0bGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cmVuZGVyaW5n
VXBkYXRlVGhyb3R0bGluZ0lzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hy
b21lQ2xpZW50OjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6YWRqdXN0TGF5ZXJGbHVzaFRocm90dGxpbmcp
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmxheWVyRmx1c2hU
aHJvdHRsaW5nSXNBY3RpdmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJQYWdlL0RyYXdpbmdBcmVhLmg6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjpyZW5k
ZXJpbmdVcGRhdGVUaHJvdHRsaW5nSXNBY3RpdmUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpE
cmF3aW5nQXJlYTo6YWRqdXN0UmVuZGVyVXBkYXRlVGhyb3R0bGluZyk6CisgICAgICAgIChXZWJL
aXQ6OkRyYXdpbmdBcmVhOjpsYXllckZsdXNoVGhyb3R0bGluZ0lzQWN0aXZlIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OmFkanVzdExheWVyRmx1c2hUaHJv
dHRsaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OmxheWVySG9z
dERpZEZsdXNoTGF5ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6c2V0TmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWlu
dCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUNvbnRleHQ6Om5leHRGbHVzaElz
Rm9ySW1tZWRpYXRlUGFpbnQgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLm1tOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3I6OnJl
cXVlc3RSZWZyZXNoQ2FsbGJhY2spOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1v
dGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6UmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWEpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYTo6c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3pl
bik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmb3JjZVJl
cGFpbnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2V0
RXhwb3NlZENvbnRlbnRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWE6OnNjaGVkdWxlSW1tZWRpYXRlUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVkdWxlSW5pdGlhbERlZmVycmVk
UGFpbnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2No
ZWR1bGVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYTo6YWRqdXN0UmVuZGVyVXBkYXRlVGhyb3R0bGluZyk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp1cGRhdGVSZW5kZXJpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6ZGlkVXBkYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmFjdGl2aXR5U3RhdGVEaWRD
aGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6YWRk
VHJhbnNhY3Rpb25DYWxsYmFja0lEKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWE6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2No
ZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2gpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6YWRqdXN0TGF5ZXJGbHVzaFRocm90dGxpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1
c2hMYXllcnMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW06CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZVRyZWVTdGF0ZUNvbW1pdCk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpzY2hlZHVsZUZ1bGxFZGl0b3JTdGF0ZVVwZGF0ZSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OlRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6On5UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYSk6CisgICAgICAgIChX
ZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmb3JjZVJlcGFpbnQpOgorICAg
ICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2V0TGF5ZXJUcmVl
U3RhdGVJc0Zyb3plbik6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZUltbWVkaWF0ZVJlbmRlcmluZ1VwZGF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjphdHRh
Y2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6c2V0U2hvdWxkU2NhbGVWaWV3VG9GaXREb2N1bWVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpkaXNwYXRjaEFm
dGVyRW5zdXJpbmdVcGRhdGVkU2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6YWRkVHJhbnNhY3Rpb25DYWxsYmFja0lEKToKKyAg
ICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRl
cmluZyk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpz
dXNwZW5kUGFpbnRpbmcpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYTo6YXBwbHlUcmFuc2llbnRab29tVG9QYWdlKToKKyAgICAgICAgKFdl
YktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmluZ1J1bkxv
b3BDYWxsYmFjayk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjppbnZhbGlkYXRlUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyKToKKyAgICAgICAg
KFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNjaGVkdWxlUmVuZGVyaW5n
VXBkYXRlUnVuTG9vcE9ic2VydmVyKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWE6OmFkanVzdFJlbmRlclVwZGF0ZVRocm90dGxpbmcpOgorICAgICAgICAo
V2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6cmVuZGVyaW5nVXBkYXRlVGhy
b3R0bGluZ0lzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWE6OnN0YXJ0UmVuZGVyVGhyb3R0bGluZ1RpbWVyKToKKyAgICAgICAgKFdl
YktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnJlbmRlclRocm90dGxpbmdUaW1l
ckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXll
ckZsdXNoSW1tZWRpYXRlbHkpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6bGF5ZXJGbHVzaFJ1bkxvb3BDYWxs
YmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhOjppbnZhbGlkYXRlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZUxh
eWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6YWRqdXN0TGF5ZXJGbHVzaFRocm90dGxpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
bGF5ZXJGbHVzaFRocm90dGxpbmdJc0FjdGl2ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzdGFydExheWVyRmx1c2hUaHJv
dHRsaW5nVGltZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYTo6bGF5ZXJGbHVzaFRocm90dGxpbmdUaW1lckZpcmVkKTogRGVsZXRlZC4K
KwogMjAyMC0wMi0xNyAgVsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsICA8dmphcXVlekBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIGEgbG90IGdjYyB3YXJuaW5ncyBiZWNhdXNlIG9mICV7cHVibGlj
fXMgZm9ybWF0IHNwZWNpZmllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGNhYzA4
NzBkYjUwNjNhYzg5OTQ0NjgzYjY2Y2QwMzBhOTg5NWFiY2EuLjY0NmQ4ZDcyMWFmM2EzNzgxYTRi
NGIzYmNjZDFjZmM4Yzc1MjUwMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNiBAQAorMjAyMC0wMi0xNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxl
LmNvbT4KKworICAgICAgICBNb3ZlIGZyb20gImxheWVyIGZsdXNoIiB0ZXJtaW5vbG9neSB0byAi
cmVuZGVyaW5nIHVwZGF0ZSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIwNzg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFJlbmFtZSB2YXJpb3VzIGZ1bmN0aW9ucyBhbmQgbWVtYmVyIHZhcmlhYmxlcyB0
byBtb3ZlIGF3YXkgZnJvbSB0aGUgbGVnYWN5ICJsYXllciBmbHVzaCIKKyAgICAgICAgdGVybWlu
b2xvZ3kgYW5kIGluc3RlYWQgdXNlICJyZW5kZXJpbmcgdXBkYXRlIiwgbWF0Y2hpbmcgUGFnZTo6
dXBkYXRlUmVuZGVyaW5nKCkuIFRoZSBmYWN0CisgICAgICAgIHRoYXQgd2UgaGF2ZSBsYXllcnMg
aXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLgorICAgICAgICAKKyAgICAgICAgQ2hhbmdlIExh
eWVyRmx1c2hUaHJvdHRsaW5nU3RhdGUgdG8gYmUgYW4gT3B0aW9uU2V0PD4uCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNjaGVk
dWxlUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVD
b21wb3NpdGluZ0xheWVyRmx1c2gpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlZpZXcvV2ViVmll
dy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfc2NoZWR1bGVVcGRhdGVSZW5kZXJpbmddKToKKyAg
ICAgICAgKC1bV2ViVmlldyBfc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2hdKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6CisgICAgICAgICogV2ViVmlldy9X
ZWJWaWV3SW50ZXJuYWwuaDoKKwogMjAyMC0wMi0xNCAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5j
b20+CiAKICAgICAgICAgTWFzayBXZWJHTCBzdHJpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9TeXN0ZW1UcmFjaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi9TeXN0ZW1UcmFjaW5nLmgKaW5k
ZXggZmU3NTJlMmNhZmNkZDA0YzM3Y2EzMDY2NzE4MDFiZmQyZGEwY2U3Ny4uMGJmNWRkOWQ0MDBl
ODUwYzQ2NDRiZTEwNGZkMmQyZjI3ZTRiMWRmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
U3lzdGVtVHJhY2luZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1N5c3RlbVRyYWNpbmcuaApAQCAt
MTAyLDggKzEwMiw4IEBAIGVudW0gVHJhY2VQb2ludENvZGUgewogICAgIFN5bmNUb3VjaEV2ZW50
RW5kLAogICAgIEluaXRpYWxpemVXZWJQcm9jZXNzU3RhcnQsCiAgICAgSW5pdGlhbGl6ZVdlYlBy
b2Nlc3NFbmQsCi0gICAgTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlclN0YXJ0LAotICAgIExheWVy
Rmx1c2hSdW5Mb29wT2JzZXJ2ZXJFbmQsCisgICAgUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2Vy
dmVyU3RhcnQsCisgICAgUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyRW5kLAogICAgIExh
eWVyVHJlZUZyZWV6ZVN0YXJ0LAogICAgIExheWVyVHJlZUZyZWV6ZUVuZCwKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKaW5kZXggZWI0NDMxZGRkNzE5ZjhkMWY3Y2I3NDczZjIyZjViMjUzNzc4NTMwYy4uYjdk
NWJhNWY4YmRiNmVkODg3MTA5NTZiZWZjMmVjZTU2MjU0NjY2YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CkBAIC04MTAsNyArODEwLDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogICAgIHBhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCiAgICAgcGFnZS9HbG9iYWxGcmFt
ZUlkZW50aWZpZXIuaAogICAgIHBhZ2UvR2xvYmFsV2luZG93SWRlbnRpZmllci5oCi0gICAgcGFn
ZS9MYXllckZsdXNoVGhyb3R0bGVTdGF0ZS5oCiAgICAgcGFnZS9MYXlvdXRNaWxlc3RvbmUuaAog
ICAgIHBhZ2UvTWVkaWFDYW5TdGFydExpc3RlbmVyLmgKICAgICBwYWdlL01lZGlhUHJvZHVjZXIu
aApAQCAtODM2LDYgKzgzNSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURF
UlMKICAgICBwYWdlL1JlbW90ZURPTVdpbmRvdy5oCiAgICAgcGFnZS9SZW1vdGVGcmFtZS5oCiAg
ICAgcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaAorICAgIHBhZ2UvUmVuZGVyaW5nVXBk
YXRlVGhyb3R0bGVTdGF0ZS5oCiAgICAgcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKICAg
ICBwYWdlL1Njcm9sbEJlaGF2aW9yLmgKICAgICBwYWdlL1Njcm9sbEludG9WaWV3T3B0aW9ucy5o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggY2RhYWQyMzY5MDQxZjNkMzJlMjIxMDUxNmYxMDc4YmZjYjg0MTcyNi4uNThiNTBhYmE4
MDNmNjc3ZDQ5NTY3N2FiODA1YTgyMWZmMDhjNjdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDg3Myw3ICs0ODczLDcgQEAK
IAkJRTQ4NEEzM0UyMzA1NTMyNTAwOUFERTZBIC8qIExpbmVMYXlvdXRUcmF2ZXJzYWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0ODRBMzNCMjMwNTUz
MDMwMDlBREU2QSAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQ4NjNDRkUyMzg0MkU5RTAwOTcyMTU4IC8q
IFJ1bGVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNDg2M0NGRDIzODQyRTlFMDA5NzIxNTggLyogUnVsZURhdGEuaCAqLzsgfTsKIAkJRTQ4OTQ0
QTMxODBCNTdEODAwRjE2NUQ4IC8qIFNpbXBsZUxpbmVMYXlvdXQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0ODk0NEExMTgwQjU3RDgwMEYxNjVEOCAv
KiBTaW1wbGVMaW5lTGF5b3V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJRTQ5MTZGRjcxOTVERjZBMDAwNUFCMzQ5IC8qIExheWVyRmx1c2hUaHJv
dHRsZVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBFNDkxNkZGNjE5NURGNkEwMDA1QUIzNDkgLyogTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlFNDkxNkZG
NzE5NURGNkEwMDA1QUIzNDkgLyogUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5MTZGRjYxOTVERjZB
MDAwNUFCMzQ5IC8qIFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDk0NkVBRjE1NkU2NEREMDBE
MzI5N0YgLyogU3R5bGVSdWxlSW1wb3J0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBFNDk0NkVBRDE1NkU2NEREMDBEMzI5N0YgLyogU3R5bGVSdWxlSW1w
b3J0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
RTQ5QkQ5RkExMzFGRDJFRDAwM0M1NkYwIC8qIENTU1ZhbHVlUG9vbC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5QkQ5RjkxMzFGRDJFRDAwM0M1NkYw
IC8qIENTU1ZhbHVlUG9vbC5oICovOyB9OwogCQlFNEE3OTk1MjIwRUU0QjE0MDBDMTk1NjggLyog
Q1NTUGFyc2VyQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRTRBNzk5NEUyMEVFNEFFMTAwQzE5NTY4IC8qIENTU1BhcnNlckNvbnRleHQuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTUyNTQs
NyArMTUyNTQsNyBAQAogCQlFNDg2M0NGRDIzODQyRTlFMDA5NzIxNTggLyogUnVsZURhdGEuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUnVsZURhdGEuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTQ4OTQ0QTAxODBCNTdEODAwRjE2NUQ4IC8qIFNpbXBsZUxpbmVM
YXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2ltcGxlTGlu
ZUxheW91dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0ODk0NEExMTgwQjU3
RDgwMEYxNjVEOCAvKiBTaW1wbGVMaW5lTGF5b3V0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJRTQ5MTZGRjYxOTVERjZBMDAwNUFCMzQ5IC8qIExheWVyRmx1c2hUaHJvdHRsZVN0YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheWVyRmx1c2hUaHJvdHRsZVN0YXRl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0OTE2RkY2MTk1REY2QTAwMDVBQjM0
OSAvKiBSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTQ5NDZFQUMxNTZFNjRERDAwRDMyOTdGIC8qIFN0eWxlUnVsZUlt
cG9ydC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTdHlsZVJ1bGVJ
bXBvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDk0NkVBRDE1NkU2NERE
MDBEMzI5N0YgLyogU3R5bGVSdWxlSW1wb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFN0eWxlUnVsZUltcG9ydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
NDlCRDlGOTEzMUZEMkVEMDAzQzU2RjAgLyogQ1NTVmFsdWVQb29sLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ZhbHVlUG9vbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjA2MzgsNyArMjA2MzgsNiBAQAogCQkJCTBGNDcxMEQ4MURCNkZFMjIwMDJEQ0VD
MyAvKiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5LmNwcCAqLywKIAkJCQkwRjQ3MTBEOTFEQjZG
RTIyMDAyRENFQzMgLyogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeS5oICovLAogCQkJCTBGNDcx
MERBMURCNkZFMjIwMDJEQ0VDMyAvKiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5LmlkbCAqLywK
LQkJCQlFNDkxNkZGNjE5NURGNkEwMDA1QUIzNDkgLyogTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUu
aCAqLywKIAkJCQk5MzFENzJGNTE1RkU2OTUzMDBDNEMwN0UgLyogTGF5b3V0TWlsZXN0b25lLmgg
Ki8sCiAJCQkJQkNFMUM0MUEwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmNwcCAqLywKIAkJ
CQlCQ0UxQzQxOTBEOTgyOTgwMDAzQjAyRjIgLyogTG9jYXRpb24uaCAqLywKQEAgLTIwNzQzLDYg
KzIwNzQyLDcgQEAKIAkJCQk0NkI5NTE5MjIwN0Q2MzJFMDBBN0QyREQgLyogUmVtb3RlRnJhbWUu
aCAqLywKIAkJCQk1NTZDN0M0OTIyMTIzOTQzMDA5QjA2Q0EgLyogUmVuZGVyaW5nVXBkYXRlU2No
ZWR1bGVyLmNwcCAqLywKIAkJCQk1NTZDN0M0NzIyMTIzOTQyMDA5QjA2Q0EgLyogUmVuZGVyaW5n
VXBkYXRlU2NoZWR1bGVyLmggKi8sCisJCQkJRTQ5MTZGRjYxOTVERjZBMDAwNUFCMzQ5IC8qIFJl
bmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGUuaCAqLywKIAkJCQk1OEIyRjlGMjIyMzJENDNGMDA5
MzhENjMgLyogUmVzaXplT2JzZXJ2YXRpb24uY3BwICovLAogCQkJCTU4QjJGOUYzMjIzMkQ0M0Yw
MDkzOEQ2MyAvKiBSZXNpemVPYnNlcnZhdGlvbi5oICovLAogCQkJCTU4QjJGOUVGMjIzMkQ0M0Qw
MDkzOEQ2MyAvKiBSZXNpemVPYnNlcnZlci5jcHAgKi8sCkBAIC0zMTI2MCw3ICszMTI2MCw2IEBA
CiAJCQkJNDUwQ0VCRjExNTA3M0JCRTAwMkJCMTQ5IC8qIExhYmVsYWJsZUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUE0NTZGQTI3MTFBRDRBODMwMDIwQjQyMCAvKiBMYWJlbHNOb2RlTGlz
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzEyMEMyMkJGMkNEMjAwNEU5RDM1IC8qIExheWVy
QW5jZXN0b3JDbGlwcGluZ1N0YWNrLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDkxNkZGNzE5NURG
NkEwMDA1QUIzNDkgLyogTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCTU4MDM3MTY0MUE2NkYxRDMwMEJBRjUxOSAvKiBMYXllckZyYWdtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQk3QUEzQTZBMDE5NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxMTMxMENGNzIwQkE0QTYyMDA2NUE4RDAgLyogTGF5b3V0QW5jZXN0b3JJ
dGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTkxOSw2ICszMTkxOCw3IEBACiAJCQkJMDg2
NDFENDgxMjE0MkY3RDAwOERFOUY2IC8qIFJlbmRlckltYWdlUmVzb3VyY2VTdHlsZUltYWdlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3Mjk5QkM2ODIzRDZBNTNFMDBDQzY4ODMgLyogUmVuZGVyaW5n
TW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTU2QzdDNEIyMjEyMzk5NzAwOUIwNkNBIC8qIFJl
bmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ5MTZGRjcxOTVE
RjZBMDAwNUFCMzQ5IC8qIFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDRUE0ODc4MDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJJbmxpbmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUI1OTVGRjQ3MTgyNENFRTMwMEZGNTFDRCAvKiBSZW5kZXJJdGVyYXRv
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4N0EwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRl
ckxheWVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDAyYTY1
MzQ3YWM0OWVmMDEyYjE5YjM4NjdlOTM5NTA3OTZlZDhiZmEuLmM2YzQxYTY5MjZjMTA2MzAzYzI5
YmI1ODAwMDA5NDhlYTczNTlmOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTg3NCw3
ICsxODc0LDcgQEAgdm9pZCBEb2N1bWVudDo6c2NoZWR1bGVTdHlsZVJlY2FsYygpCiAgICAgYXV0
byBzaG91bGRUaHJvdHRsZVN0eWxlUmVjYWxjID0gWyZdIHsKICAgICAgICAgaWYgKCF2aWV3KCkg
fHwgIXZpZXcoKS0+aXNWaXN1YWxseU5vbkVtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIGlmICghcGFnZSgpIHx8ICFwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmxh
eWVyRmx1c2hUaHJvdHRsaW5nSXNBY3RpdmUoKSkKKyAgICAgICAgaWYgKCFwYWdlKCkgfHwgIXBh
Z2UoKS0+Y2hyb21lKCkuY2xpZW50KCkucmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZ0lzQWN0aXZl
KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH07CkBAIC0zMTM0LDcgKzMxMzQsNyBAQCBib29sIERvY3VtZW50OjpzaG91bGRTY2hlZHVsZUxh
eW91dCgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoc3R5bGVTY29wZSgpLmhhc1Bl
bmRpbmdTaGVldHNCZWZvcmVCb2R5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAo
cGFnZSgpICYmIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkubGF5ZXJGbHVzaFRocm90dGxpbmdJ
c0FjdGl2ZSgpICYmIHZpZXcoKSAmJiB2aWV3KCktPmlzVmlzdWFsbHlOb25FbXB0eSgpKQorICAg
IGlmIChwYWdlKCkgJiYgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5yZW5kZXJpbmdVcGRhdGVU
aHJvdHRsaW5nSXNBY3RpdmUoKSAmJiB2aWV3KCkgJiYgdmlldygpLT5pc1Zpc3VhbGx5Tm9uRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggNzg5NTdiYjBjN2Y4YmVlMjBjNTcwMDc5MDBh
OWY3OGUyZGRlYzcwMS4uYjYwNzRiMTUzMzQ5ODlhNzZlMzViNDU1ODRlODE4MDdlYTUxODUwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTUwLDcgKzE1MCw3IEBAIGNs
YXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAgICAgdm9pZCBh
dHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSBmaW5hbCB7IH0K
ICAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyKikg
ZmluYWwgeyB9CiAgICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9u
KCkgZmluYWwgeyB9Ci0gICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIGZp
bmFsIHsgfQorICAgIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKSBmaW5hbCB7IH0KIAog
I2lmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJz
b3IoKSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDk4OWJhZjRh
N2Q3ZjMzNTQ1OTMyYmQ5MzA0M2VmNDNiYTdhYTUxMmEuLmQ4ZDc4YTg1MGI3ZmQzZGZmNTY0MzY5
YjczMzRmZmU2ZTdmNTQ4YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMzcs
MTIgKzM3LDEyIEBACiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgogI2luY2x1ZGUgIkljb24uaCIK
ICNpbmNsdWRlICJJbnB1dE1vZGUuaCIKLSNpbmNsdWRlICJMYXllckZsdXNoVGhyb3R0bGVTdGF0
ZS5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKICNpbmNsdWRlICJQb3B1cE1lbnUuaCIK
ICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJSZWdpc3RyYWJsZURvbWFp
bi5oIgogI2luY2x1ZGUgIlJlbmRlckVtYmVkZGVkT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVy
aW5nVXBkYXRlVGhyb3R0bGVTdGF0ZS5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5j
bHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJTZWFyY2hQb3B1cE1lbnUu
aCIKQEAgLTMxMyw3ICszMTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE5lZWRz
T25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSA9IDA7CiAgICAgLy8gU2V0cyBhIGZsYWcg
dG8gc3BlY2lmeSB0aGF0IHRoZSB2aWV3IG5lZWRzIHRvIGJlIHVwZGF0ZWQsIHNvIHdlIG5lZWQK
ICAgICAvLyB0byBkbyBhbiBlYWdlciBsYXlvdXQgYmVmb3JlIHRoZSBkcmF3aW5nLgotICAgIHZp
cnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKSA9IDA7CiAgICAgdmlydHVhbCBib29s
IG5lZWRzSW1tZWRpYXRlUmVuZGVyaW5nVXBkYXRlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICAvLyBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBjbGllbnQgY2FuIHJlbmRlciB0aGUg
Y29tcG9zaXRlZCBsYXllciwKICAgICAvLyByZWdhcmRsZXNzIG9mIHRoZSBzZXR0aW5ncy4KQEAg
LTMzNyw5ICszMzcsOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIGxh
eWVyIHRyZWUgdXBkYXRlcyBhcmUgZGlzYWJsZWQuCiAgICAgdmlydHVhbCBib29sIGxheWVyVHJl
ZVN0YXRlSXNGcm96ZW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9v
bCBsYXllckZsdXNoVGhyb3R0bGluZ0lzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
KyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZ0lzQWN0aXZlKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBhZGp1c3RMYXllckZsdXNo
VGhyb3R0bGluZyhMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RmxhZ3MpIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgdmlydHVhbCBib29sIGFkanVzdFJlbmRlclVwZGF0ZVRocm90dGxpbmcoT3B0aW9u
U2V0PFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU+KSB7IHJldHVybiBmYWxzZTsgfQogCiAg
ICAgdmlydHVhbCBSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yKFBhZ2UmKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcAppbmRleCBlMDNlNDJiNDkyZWZiN2YzNDgyODNhNWQ0MWJmZmExMjAzYjI5
YzFlLi40MTk2MTdkNTdmYzZiMTI5ZDdkODBlMWE4NTkxYzBmNzY1MmZhODA5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yODE3LDE5ICsyODE3LDE5IEBAIHZvaWQgRnJhbWVWaWV3
Ojp1bm9ic2N1cmVkQ29udGVudFNpemVDaGFuZ2VkKCkKICNlbmRpZgogfQogCi1zdGF0aWMgTGF5
ZXJGbHVzaFRocm90dGxlU3RhdGU6OkZsYWdzIGRldGVybWluZUxheWVyRmx1c2hUaHJvdHRsZVN0
YXRlKFBhZ2UmIHBhZ2UpCitzdGF0aWMgT3B0aW9uU2V0PFJlbmRlcmluZ1VwZGF0ZVRocm90dGxl
U3RhdGU+IGRldGVybWluZUxheWVyRmx1c2hUaHJvdHRsZVN0YXRlKFBhZ2UmIHBhZ2UpCiB7CiAg
ICAgLy8gV2Ugb25seSB0aHJvdHRsZSB3aGVuIGNvbnN0YW50bHkgcmVjZWl2aW5nIG5ldyBkYXRh
IGR1cmluZyB0aGUgaW5pdGFsIHBhZ2UgbG9hZC4KICAgICBpZiAoIXBhZ2UucHJvZ3Jlc3MoKS5p
c01haW5Mb2FkUHJvZ3Jlc3NpbmcoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVy
biB7IH07CiAgICAgLy8gU2Nyb2xsaW5nIGR1cmluZyBwYWdlIGxvYWRpbmcgZGlzYWJsZXMgdGhy
b3R0bGluZy4KICAgICBpZiAocGFnZS5tYWluRnJhbWUoKS52aWV3KCktPndhc1Njcm9sbGVkQnlV
c2VyKCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4geyB9OwogICAgIC8vIERp
c2FibGUgZm9yIGltYWdlIGRvY3VtZW50cyBzbyBsYXJnZSBHSUYgYW5pbWF0aW9ucyBkb24ndCBn
ZXQgdGhyb3R0bGVkIGR1cmluZyBsb2FkaW5nLgogICAgIGF1dG8qIGRvY3VtZW50ID0gcGFnZS5t
YWluRnJhbWUoKS5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwgaXM8SW1hZ2VEb2N1
bWVudD4oKmRvY3VtZW50KSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIExheWVyRmx1
c2hUaHJvdHRsZVN0YXRlOjpFbmFibGVkOworICAgICAgICByZXR1cm4geyB9OworICAgIHJldHVy
biB7IFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU6OkVuYWJsZWQgfTsKIH0KIAogdm9pZCBG
cmFtZVZpZXc6OmRpc2FibGVMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5Rm9ySW50ZXJh
Y3Rpb24oKQpAQCAtMjgzOCw4ICsyODM4LDkgQEAgdm9pZCBGcmFtZVZpZXc6OmRpc2FibGVMYXll
ckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5Rm9ySW50ZXJhY3Rpb24oKQogICAgICAgICByZXR1
cm47CiAgICAgYXV0byYgcGFnZSA9ICpmcmFtZSgpLnBhZ2UoKTsKIAotICAgIExheWVyRmx1c2hU
aHJvdHRsZVN0YXRlOjpGbGFncyBmbGFncyA9IExheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpVc2Vy
SXNJbnRlcmFjdGluZyB8IGRldGVybWluZUxheWVyRmx1c2hUaHJvdHRsZVN0YXRlKHBhZ2UpOwot
ICAgIGlmIChwYWdlLmNocm9tZSgpLmNsaWVudCgpLmFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5n
KGZsYWdzKSkKKyAgICBhdXRvIGZsYWdzID0gZGV0ZXJtaW5lTGF5ZXJGbHVzaFRocm90dGxlU3Rh
dGUocGFnZSk7CisgICAgZmxhZ3MuYWRkKFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU6OlVz
ZXJJc0ludGVyYWN0aW5nKTsKKyAgICBpZiAocGFnZS5jaHJvbWUoKS5jbGllbnQoKS5hZGp1c3RS
ZW5kZXJVcGRhdGVUaHJvdHRsaW5nKGZsYWdzKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYg
KFJlbmRlclZpZXcqIHZpZXcgPSByZW5kZXJWaWV3KCkpCkBAIC0yODYyLDE1ICsyODYzLDE1IEBA
IHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVMYXllckZsdXNoVGhyb3R0bGluZygpCiAKICAgICBBU1NF
UlQoZnJhbWUoKS5pc01haW5GcmFtZSgpKTsKIAotICAgIExheWVyRmx1c2hUaHJvdHRsZVN0YXRl
OjpGbGFncyBmbGFncyA9IGRldGVybWluZUxheWVyRmx1c2hUaHJvdHRsZVN0YXRlKCpwYWdlKTsK
KyAgICBhdXRvIGZsYWdzID0gZGV0ZXJtaW5lTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUoKnBhZ2Up
OwogCiAgICAgLy8gU2VlIGlmIHRoZSBjbGllbnQgaXMgaGFuZGxpbmcgdGhyb3R0bGluZy4KLSAg
ICBpZiAocGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuYWRqdXN0TGF5ZXJGbHVzaFRocm90dGxpbmco
ZmxhZ3MpKQorICAgIGlmIChwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5hZGp1c3RSZW5kZXJVcGRh
dGVUaHJvdHRsaW5nKGZsYWdzKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChhdXRvKiBm
cmFtZSA9IG1fZnJhbWUucHRyKCk7IGZyYW1lOyBmcmFtZSA9IGZyYW1lLT50cmVlKCkudHJhdmVy
c2VOZXh0KG1fZnJhbWUucHRyKCkpKSB7CiAgICAgICAgIGlmIChSZW5kZXJWaWV3KiByZW5kZXJW
aWV3ID0gZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpKQotICAgICAgICAgICAgcmVuZGVyVmlldy0+
Y29tcG9zaXRvcigpLnNldExheWVyRmx1c2hUaHJvdHRsaW5nRW5hYmxlZChmbGFncyAmIExheWVy
Rmx1c2hUaHJvdHRsZVN0YXRlOjpFbmFibGVkKTsKKyAgICAgICAgICAgIHJlbmRlclZpZXctPmNv
bXBvc2l0b3IoKS5zZXRMYXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQoZmxhZ3MuY29udGFpbnMo
UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZTo6RW5hYmxlZCkpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9MYXllckZsdXNoVGhyb3R0bGVTdGF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9MYXllckZsdXNoVGhyb3R0bGVTdGF0ZS5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA3OTZmMjE4ZTFkYjMxYzY2YzQ0NjRlZmIyOWE2YzM0YTVlYzIz
Njk0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaAorKysgL2Rldi9udWxsCkBA
IC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotbmFtZXNwYWNlIFdl
YkNvcmUgewotCi1zdHJ1Y3QgTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUgewotICAgIGVudW0gewot
ICAgICAgICBFbmFibGVkID0gMSA8PCAwLAotICAgICAgICBVc2VySXNJbnRlcmFjdGluZyA9IDEg
PDwgMQotICAgIH07Ci0gICAgdHlwZWRlZiB1bnNpZ25lZCBGbGFnczsKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5n
VXBkYXRlU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRl
U2NoZWR1bGVyLmNwcAppbmRleCAzYjg4MWRmYmIxNzE3ZjRlNDExYTZjNTM0NDU5NWZiZDNhYjQz
MDZkLi42ZjMzNzAyZmIzZmM0ODY3NDAwYmI5YmQxZDhlNWI3OTZmMTFjZGE5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwCkBAIC0xMDcs
NyArMTA3LDcgQEAgdm9pZCBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI6OmRpc3BsYXlSZWZyZXNo
RmlyZWQoKQogCiB2b2lkIFJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcjo6c2NoZWR1bGVJbW1lZGlh
dGVSZW5kZXJpbmdVcGRhdGUoKQogewotICAgIG1fcGFnZS5jaHJvbWUoKS5jbGllbnQoKS5zY2hl
ZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIG1fcGFnZS5jaHJvbWUoKS5jbGllbnQo
KS5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCiB2b2lkIFJlbmRlcmluZ1VwZGF0ZVNj
aGVkdWxlcjo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMWRmNWRk
OGQ1YTNkZmMwMTY1MTFlNWMwY2ViM2VkNjE2YjI0YmZkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlLmgKQEAgLTAsMCAr
MSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworZW51bSBjbGFzcyBSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlIHsKKyAgICBF
bmFibGVkICAgICAgICAgICAgID0gMSA8PCAwLAorICAgIFVzZXJJc0ludGVyYWN0aW5nICAgPSAx
IDw8IDEKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
aW5kZXggOGU0YzkzNzVkN2I4Y2MxMGZmYTAwODAzZDQ4MjE3M2JlNWEzNTU4YS4uZWNmODMxZTI3
OGIxN2RhZTcxMjI0NGY3MzgwZjU0YTNjNTNjZDk3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
QEAgLTkxMCwxMCArOTEwLDEwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXROZWVkc09uZVNo
b3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12
b2lkIFdlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKQordm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkKIHsKICAgICBpZiAo
bV9wYWdlLmRyYXdpbmdBcmVhKCkpCi0gICAgICAgIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5zY2hl
ZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgICAgICBtX3BhZ2UuZHJhd2luZ0FyZWEo
KS0+c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OmNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbihjb25zdCBVUkwmIHVybCwgY29uc3QgQ29udGVu
dFJ1bGVMaXN0UmVzdWx0cyYgcmVzdWx0cykKQEAgLTkyNCw5ICs5MjQsOSBAQCB2b2lkIFdlYkNo
cm9tZUNsaWVudDo6Y29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKGNvbnN0IFVSTCYgdXJsLCBj
b25zdCBDb250ZW50UgogI2VuZGlmCiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50OjphZGp1c3RM
YXllckZsdXNoVGhyb3R0bGluZyhMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RmxhZ3MgZmxhZ3Mp
Citib29sIFdlYkNocm9tZUNsaWVudDo6YWRqdXN0UmVuZGVyVXBkYXRlVGhyb3R0bGluZyhPcHRp
b25TZXQ8UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZT4gZmxhZ3MpCiB7Ci0gICAgcmV0dXJu
IG1fcGFnZS5kcmF3aW5nQXJlYSgpICYmIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5hZGp1c3RMYXll
ckZsdXNoVGhyb3R0bGluZyhmbGFncyk7CisgICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5nQXJlYSgp
ICYmIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5hZGp1c3RSZW5kZXJVcGRhdGVUaHJvdHRsaW5nKGZs
YWdzKTsKIH0KIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmxheWVyVHJlZVN0YXRlSXNGcm96ZW4o
KSBjb25zdApAQCAtOTM3LDEwICs5MzcsMTAgQEAgYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmxheWVy
VHJlZVN0YXRlSXNGcm96ZW4oKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBX
ZWJDaHJvbWVDbGllbnQ6OmxheWVyRmx1c2hUaHJvdHRsaW5nSXNBY3RpdmUoKSBjb25zdAorYm9v
bCBXZWJDaHJvbWVDbGllbnQ6OnJlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdJc0FjdGl2ZSgpIGNv
bnN0CiB7CiAgICAgaWYgKG1fcGFnZS5kcmF3aW5nQXJlYSgpKQotICAgICAgICByZXR1cm4gbV9w
YWdlLmRyYXdpbmdBcmVhKCktPmxheWVyRmx1c2hUaHJvdHRsaW5nSXNBY3RpdmUoKTsKKyAgICAg
ICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5yZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5n
SXNBY3RpdmUoKTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRl
eCBhOGE0Y2NhYzU3ZDgwOGFhYTU1ZDhkNzk1MWJjNWM1NDFjNjBmMmFkLi41ZmNlN2JhYmIwNDMw
M2VlOGNmOWI4NjEwMDJiMmMyNzE3OWM2MmUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMTYs
OCArMjE2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdl
YkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwogICAgIHZvaWQg
YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBm
aW5hbDsKICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSBm
aW5hbDsKLSAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgZmluYWw7Ci0g
ICAgYm9vbCBhZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhXZWJDb3JlOjpMYXllckZsdXNoVGhy
b3R0bGVTdGF0ZTo6RmxhZ3MpIGZpbmFsOworICAgIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRh
dGUoKSBmaW5hbDsKKyAgICBib29sIGFkanVzdFJlbmRlclVwZGF0ZVRocm90dGxpbmcoT3B0aW9u
U2V0PFdlYkNvcmU6OlJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU+KSBmaW5hbDsKIAogICAg
IHZvaWQgY29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKGNvbnN0IFVSTCYsIGNvbnN0IFdlYkNv
cmU6OkNvbnRlbnRSdWxlTGlzdFJlc3VsdHMmKSBmaW5hbDsKIApAQCAtMjUwLDcgKzI1MCw3IEBA
IHByaXZhdGU6CiAgICAgfQogCiAgICAgYm9vbCBsYXllclRyZWVTdGF0ZUlzRnJvemVuKCkgY29u
c3QgZmluYWw7Ci0gICAgYm9vbCBsYXllckZsdXNoVGhyb3R0bGluZ0lzQWN0aXZlKCkgY29uc3Qg
ZmluYWw7CisgICAgYm9vbCByZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nSXNBY3RpdmUoKSBjb25z
dCBmaW5hbDsKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAgICAgUmVmUHRyPFdlYkNv
cmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdDb29yZGluYXRvcihXZWJD
b3JlOjpQYWdlJikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvRHJhd2luZ0FyZWEuaAppbmRleCBiYWIxZDRiZmJlZTllNDUxNGYzZjdiYzRiY2E1YTU5
NWU1OTg2ZjE1Li5iODg4MDEyZjJmZmEzYzAwODk1NGE3MTQzODljZWYzNzMyZjU3ODU4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgKQEAgLTMz
LDkgKzMzLDkgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvSW50UmVjdC5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0xheW91dE1pbGVzdG9uZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4u
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGUuaD4KICNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogI2lu
Y2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgYm9vbCBmb3JjZVJlcGFpbnRBc3luYyhDYWxsYmFja0lEKSB7IHJldHVybiBmYWxzZTsg
fQogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJvb2wpIHsgfQog
ICAgIHZpcnR1YWwgYm9vbCBsYXllclRyZWVTdGF0ZUlzRnJvemVuKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgbGF5ZXJGbHVzaFRocm90dGxpbmdJc0FjdGl2ZSgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHJlbmRlcmluZ1VwZGF0
ZVRocm90dGxpbmdJc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBlbmFibGVQYWludGluZygpIHsgfQpAQCAtMTEzLDkgKzExMyw5
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6R3JhcGhpY3NMYXllckZhY3Rvcnkq
IGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNjaGVkdWxlSW5pdGlhbERlZmVycmVkUGFpbnQoKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKSA9IDA7Cisg
ICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlSW1tZWRpYXRlUmVuZGVyaW5nVXBkYXRlKCkgPSAwOwog
CiAjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKICAgICB2
aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3Bs
YXlSZWZyZXNoTW9uaXRvcihXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCk7CkBAIC0xMjgsNyAr
MTI4LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIG1hcmtMYXllcnNWb2xhdGlsZUlt
bWVkaWF0ZWx5SWZQb3NzaWJsZSgpIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgYm9v
bCBhZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhXZWJDb3JlOjpMYXllckZsdXNoVGhyb3R0bGVT
dGF0ZTo6RmxhZ3MpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGFkanVzdFJl
bmRlclVwZGF0ZVRocm90dGxpbmcoT3B0aW9uU2V0PFdlYkNvcmU6OlJlbmRlcmluZ1VwZGF0ZVRo
cm90dGxlU3RhdGU+KSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGF0dGFj
aFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgeyB9CiAK
QEAgLTE0MSw4ICsxNDEsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdlb21l
dHJ5KGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHZpZXdTaXplLCBib29sIGZsdXNoU3luY2hyb25v
dXNseSwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBmZW5jZVBvcnQpIHsgfQogI2VuZGlmCiAK
LSAgICB2aXJ0dWFsIHZvaWQgbGF5ZXJIb3N0RGlkRmx1c2hMYXllcnMoKSB7IH0KLQogI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykgfHwgVVNFKFRFWFRVUkVfTUFQUEVSKQogICAgIHZpcnR1
YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMoV2ViQ29yZTo6Vmlld3BvcnRBdHRy
aWJ1dGVzJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JD
aGFuZ2VkKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVDb250
ZXh0LmgKaW5kZXggNTdhMDI1OWIyMjU5NjAwMTUwM2Y2NDZiN2JmNzU0OTg5OTRiZjllOC4uNDZm
MGZkZGQ1YjM2MmMwM2QyNzRjMGU5NGE4OTU2YTU5YmNkODM1OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCkBAIC03Myw4ICs3Myw4IEBAIHB1Ymxp
YzoKIAogICAgIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbiYgYmFja2luZ1N0b3Jl
Q29sbGVjdGlvbigpIHsgcmV0dXJuIG1fYmFja2luZ1N0b3JlQ29sbGVjdGlvbjsgfQogICAgIAot
ICAgIHZvaWQgc2V0TmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludChib29sIG5leHRGbHVzaElz
Rm9ySW1tZWRpYXRlUGFpbnQpIHsgbV9uZXh0Rmx1c2hJc0ZvckltbWVkaWF0ZVBhaW50ID0gbmV4
dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludDsgfQotICAgIGJvb2wgbmV4dEZsdXNoSXNGb3JJbW1l
ZGlhdGVQYWludCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWlu
dDsgfQorICAgIHZvaWQgc2V0TmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludChib29sIG5leHRG
bHVzaElzRm9ySW1tZWRpYXRlUGFpbnQpIHsgbV9uZXh0UmVuZGVyaW5nVXBkYXRlSXNJbW1lZGlh
dGUgPSBuZXh0Rmx1c2hJc0ZvckltbWVkaWF0ZVBhaW50OyB9CisgICAgYm9vbCBuZXh0Rmx1c2hJ
c0ZvckltbWVkaWF0ZVBhaW50KCkgY29uc3QgeyByZXR1cm4gbV9uZXh0UmVuZGVyaW5nVXBkYXRl
SXNJbW1lZGlhdGU7IH0KIAogICAgIHZvaWQgYWRvcHRMYXllcnNGcm9tQ29udGV4dChSZW1vdGVM
YXllclRyZWVDb250ZXh0Jik7CiAgICAgCkBAIC0xMDIsNyArMTAyLDcgQEAgcHJpdmF0ZToKIAog
ICAgIFdlYkNvcmU6OkxheWVyUG9vbCBtX2xheWVyUG9vbDsKICAgICAKLSAgICBib29sIG1fbmV4
dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludCB7IGZhbHNlIH07CisgICAgYm9vbCBtX25leHRSZW5k
ZXJpbmdVcGRhdGVJc0ltbWVkaWF0ZSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJU
cmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLm1tCmluZGV4IDM1YzgxNDFjMDBjMzRiOTk2NjdmMDFl
NGMzMzQ1YzUyOWJkZWU1MWQuLmEyZTZkNDAzMmI0YjZjOTk1MGRkMWE5ODRhY2Y3Zjg3YzIyZjE0
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW0KKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVy
VHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbQpAQCAtNDksNyArNDksNyBAQCBib29sIFJlbW90
ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcjo6cmVxdWVzdFJlZnJlc2hDYWxsYmFjaygp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghaXNTY2hlZHVsZWQoKSkKLSAgICAg
ICAgc3RhdGljX2Nhc3Q8RHJhd2luZ0FyZWEmPigqbV9kcmF3aW5nQXJlYS5nZXQoKSkuc2NoZWR1
bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8RHJhd2luZ0Fy
ZWEmPigqbV9kcmF3aW5nQXJlYS5nZXQoKSkuc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIAog
ICAgIHNldElzQWN0aXZlKHRydWUpOwogICAgIHNldElzU2NoZWR1bGVkKHRydWUpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCBm
MTExNjgzZmJhNzI3OGY4NzI0YmFkZThlODI5ZTJlZGZmYjY1ZGRjLi5jY2MyNTdiMmU2Y2ExMTM2
MDAxMTQ4YmM1MTZjMTRjZGM2ZDU0Yjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApAQCAtNjUsOCArNjUsOCBAQCBwcml2YXRlOgog
ICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgp
IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopIG92ZXJyaWRlOwogICAgIHZvaWQgc2NoZWR1bGVJbml0aWFsRGVmZXJyZWRQ
YWludCgpIG92ZXJyaWRlOwotICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2go
KSBvdmVycmlkZTsKLSAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRp
YXRlbHkoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBzY2hlZHVsZUltbWVkaWF0ZVJlbmRlcmluZ1VwZGF0ZSgpIG92ZXJy
aWRlOwogICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKIAogICAgIHZvaWQgYWRkVHJhbnNhY3Rpb25DYWxsYmFj
a0lEKENhbGxiYWNrSUQpIG92ZXJyaWRlOwpAQCAtODMsOCArODMsOCBAQCBwcml2YXRlOgogICAg
IGJvb2wgdXNlc0RlbGVnYXRlZFBhZ2VTY2FsaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
dHJ1ZTsgfQogCiAgICAgdm9pZCBzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJvb2wpIG92ZXJy
aWRlOwotICAgIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1faXNGbHVzaGluZ1N1c3BlbmRlZDsgfQotICAgIGJvb2wgbGF5ZXJGbHVzaFRocm90
dGxpbmdJc0FjdGl2ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNUaHJvdHRsaW5nTGF5
ZXJGbHVzaGVzICYmIG1fbGF5ZXJGbHVzaFRpbWVyLmlzQWN0aXZlKCk7IH0KKyAgICBib29sIGxh
eWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lzUmVuZGVy
aW5nU3VzcGVuZGVkOyB9CisgICAgYm9vbCByZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nSXNBY3Rp
dmUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lzVGhyb3R0bGluZ1JlbmRlcmluZ1VwZGF0
ZXMgJiYgbV91cGRhdGVSZW5kZXJpbmdUaW1lci5pc0FjdGl2ZSgpOyB9CiAKICAgICB2b2lkIGZv
cmNlUmVwYWludCgpIG92ZXJyaWRlOwogICAgIGJvb2wgZm9yY2VSZXBhaW50QXN5bmMoQ2FsbGJh
Y2tJRCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTEwOCw3ICsxMDgsNyBAQCBwcml2
YXRlOgogCiAgICAgdm9pZCBhY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKE9wdGlvblNldDxXZWJDb3Jl
OjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBjaGFuZ2VkLCBBY3Rpdml0eVN0YXRlQ2hhbmdlSUQsIGNv
bnN0IFZlY3RvcjxDYWxsYmFja0lEPiYgY2FsbGJhY2tJRHMpIG92ZXJyaWRlOwogCi0gICAgYm9v
bCBhZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhXZWJDb3JlOjpMYXllckZsdXNoVGhyb3R0bGVT
dGF0ZTo6RmxhZ3MpIG92ZXJyaWRlOworICAgIGJvb2wgYWRqdXN0UmVuZGVyVXBkYXRlVGhyb3R0
bGluZyhPcHRpb25TZXQ8V2ViQ29yZTo6UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZT4pIG92
ZXJyaWRlOwogCiAgICAgYm9vbCBhZGRNaWxlc3RvbmVzVG9EaXNwYXRjaChPcHRpb25TZXQ8V2Vi
Q29yZTo6TGF5b3V0TWlsZXN0b25lPikgb3ZlcnJpZGU7CiAKQEAgLTExNiw3ICsxMTYsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgdXBkYXRlUm9vdExheWVycygpOwogCiAgICAgdm9pZCBhZGRDb21t
aXRIYW5kbGVycygpOwotICAgIHZvaWQgZmx1c2hMYXllcnMoKTsKKyAgICB2b2lkIHVwZGF0ZVJl
bmRlcmluZygpOwogCiAgICAgV2ViQ29yZTo6VGlsZWRCYWNraW5nKiBtYWluRnJhbWVUaWxlZEJh
Y2tpbmcoKSBjb25zdDsKIApAQCAtMTUxLDE4ICsxNTEsMTkgQEAgcHJpdmF0ZToKICAgICBPcHRp
b25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IG1fdmlld0V4cG9zZWRSZWN0OwogICAgIE9wdGlvbmFs
PFdlYkNvcmU6OkZsb2F0UmVjdD4gbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdDsKIAotICAgIFdl
YkNvcmU6OlRpbWVyIG1fbGF5ZXJGbHVzaFRpbWVyOwotICAgIGJvb2wgbV9pc0ZsdXNoaW5nU3Vz
cGVuZGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1faGFzRGVmZXJyZWRGbHVzaCB7IGZhbHNlIH07
Ci0gICAgYm9vbCBtX2ZsdXNoaW5nSW5pdGlhbERlZmVycmVkUGFpbnQgeyBmYWxzZSB9OwotICAg
IGJvb2wgbV9pc1Rocm90dGxpbmdMYXllckZsdXNoZXMgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9p
c0xheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uIHsg
ZmFsc2UgfTsKLSAgICBib29sIG1faXNJbml0aWFsVGhyb3R0bGVkTGF5ZXJGbHVzaCB7IGZhbHNl
IH07CisgICAgV2ViQ29yZTo6VGltZXIgbV91cGRhdGVSZW5kZXJpbmdUaW1lcjsKKyAgICBib29s
IG1faXNSZW5kZXJpbmdTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNEZWZlcnJl
ZFJlbmRlcmluZ1VwZGF0ZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2luSW5pdGlhbERlZmVycmVk
UmVuZGVyaW5nVXBkYXRlIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNGaXJzdFRocm90dGxlZFJl
bmRlcmluZ1VwZGF0ZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX25leHRSZW5kZXJpbmdVcGRhdGVJ
c0ltbWVkaWF0ZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2luVXBkYXRlUmVuZGVyaW5nIHsgZmFs
c2UgfTsKKworICAgIGJvb2wgbV9pc1Rocm90dGxpbmdSZW5kZXJpbmdVcGRhdGVzIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1faXNSZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNh
YmxlZEZvckludGVyYWN0aW9uIHsgZmFsc2UgfTsKIAogICAgIGJvb2wgbV93YWl0aW5nRm9yQmFj
a2luZ1N0b3JlU3dhcCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2hhZEZsdXNoRGVmZXJyZWRXaGls
ZVdhaXRpbmdGb3JCYWNraW5nU3RvcmVTd2FwIHsgZmFsc2UgfTsKLSAgICBib29sIG1fbmV4dEZs
dXNoSXNGb3JJbW1lZGlhdGVQYWludCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2luRmx1c2hMYXll
cnMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9kZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZVdoaWxlV2Fp
dGluZ0ZvckJhY2tpbmdTdG9yZVN3YXAgeyBmYWxzZSB9OwogCiAgICAgZGlzcGF0Y2hfcXVldWVf
dCBtX2NvbW1pdFF1ZXVlOwogICAgIFJlZlB0cjxCYWNraW5nU3RvcmVGbHVzaGVyPiBtX3BlbmRp
bmdCYWNraW5nU3RvcmVGbHVzaGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1t
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmluZGV4IGQ3MjBiMmVkOTZjOGI3ZTVmZmE5NjJkYzlk
ZDVmNzU0OGRjYzVjZDkuLjMxNjg3ODk1NWVkNWQ2MWFlNjYxOThkZmFkYjQ2OWIxNjdmYTEzNDkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEubW0KQEAgLTYwLDcgKzYwLDcgQEAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OlJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFcKICAgICA6IERy
YXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZSwgcGFyYW1ldGVycy5kcmF3
aW5nQXJlYUlkZW50aWZpZXIsIHdlYlBhZ2UpCiAgICAgLCBtX3JlbW90ZUxheWVyVHJlZUNvbnRl
eHQobWFrZVVuaXF1ZTxSZW1vdGVMYXllclRyZWVDb250ZXh0Pih3ZWJQYWdlKSkKICAgICAsIG1f
cm9vdExheWVyKEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAq
dGhpcykpCi0gICAgLCBtX2xheWVyRmx1c2hUaW1lcigqdGhpcywgJlJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhOjpmbHVzaExheWVycykKKyAgICAsIG1fdXBkYXRlUmVuZGVyaW5nVGltZXIoKnRo
aXMsICZSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6dXBkYXRlUmVuZGVyaW5nKQogewogICAg
IHdlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0
cnVlKTsKICAgICBtX3Jvb3RMYXllci0+c2V0TmFtZSgiZHJhd2luZyBhcmVhIHJvb3QiKTsKQEAg
LTE0NSw3ICsxNDUsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzZXRSb290
Q29tcG9zaXRpbmdMYXllcihHcmFwaGljc0xheWVyKiByb290TGF5ZQogewogICAgIG1fY29udGVu
dExheWVyID0gcm9vdExheWVyOwogICAgIHVwZGF0ZVJvb3RMYXllcnMoKTsKLSAgICBzY2hlZHVs
ZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7
CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5KGNv
bnN0IEludFNpemUmIHZpZXdTaXplLCBib29sIGZsdXNoU3luY2hyb25vdXNseSwgY29uc3QgV1RG
OjpNYWNoU2VuZFJpZ2h0JikKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwgYm9v
bCBmbAogICAgIG1fdmlld1NpemUgPSB2aWV3U2l6ZTsKICAgICBtX3dlYlBhZ2Uuc2V0U2l6ZSh2
aWV3U2l6ZSk7CiAKLSAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIHNj
aGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJl
YVByb3h5OjpEaWRVcGRhdGVHZW9tZXRyeSgpKTsKIH0KQEAgLTE4NSwyMiArMTg1LDIyIEBAIHZv
aWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0
IGRldmljZVNjYWxlRmFjdG9yKQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpz
ZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJvb2wgaXNGcm96ZW4pCiB7Ci0gICAgaWYgKG1faXNG
bHVzaGluZ1N1c3BlbmRlZCA9PSBpc0Zyb3plbikKKyAgICBpZiAobV9pc1JlbmRlcmluZ1N1c3Bl
bmRlZCA9PSBpc0Zyb3plbikKICAgICAgICAgcmV0dXJuOwogCiAgICAgdHJhY2VQb2ludChpc0Zy
b3plbiA/IExheWVyVHJlZUZyZWV6ZVN0YXJ0IDogTGF5ZXJUcmVlRnJlZXplRW5kKTsKIAotICAg
IG1faXNGbHVzaGluZ1N1c3BlbmRlZCA9IGlzRnJvemVuOworICAgIG1faXNSZW5kZXJpbmdTdXNw
ZW5kZWQgPSBpc0Zyb3plbjsKIAotICAgIGlmICghbV9pc0ZsdXNoaW5nU3VzcGVuZGVkICYmIG1f
aGFzRGVmZXJyZWRGbHVzaCkgewotICAgICAgICBtX2hhc0RlZmVycmVkRmx1c2ggPSBmYWxzZTsK
KyAgICBpZiAoIW1faXNSZW5kZXJpbmdTdXNwZW5kZWQgJiYgbV9oYXNEZWZlcnJlZFJlbmRlcmlu
Z1VwZGF0ZSkgeworICAgICAgICBtX2hhc0RlZmVycmVkUmVuZGVyaW5nVXBkYXRlID0gZmFsc2U7
CiAgICAgICAgIHNjaGVkdWxlSW5pdGlhbERlZmVycmVkUGFpbnQoKTsKICAgICB9CiB9CiAKIHZv
aWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZvcmNlUmVwYWludCgpCiB7Ci0gICAgaWYg
KG1faXNGbHVzaGluZ1N1c3BlbmRlZCkKKyAgICBpZiAobV9pc1JlbmRlcmluZ1N1c3BlbmRlZCkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbV93ZWJQYWdlLmNv
cmVQYWdlKCktPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZl
cnNlTmV4dCgpKSB7CkBAIC0yMTEsNyArMjExLDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYTo6Zm9yY2VSZXBhaW50KCkKICAgICAgICAgZnJhbWVWaWV3LT50aWxlZEJhY2tpbmco
KS0+Zm9yY2VSZXBhaW50KCk7CiAgICAgfQogCi0gICAgZmx1c2hMYXllcnMoKTsKKyAgICB1cGRh
dGVSZW5kZXJpbmcoKTsKIH0KIAogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6YWNj
ZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCh1aW50NjRfdCBsYXllcklELCBjb25zdCBTdHJpbmcm
IGtleSwgTW9ub3RvbmljVGltZSBzdGFydFRpbWUpCkBAIC0yNDgsNyArMjQ4LDcgQEAgdm9pZCBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2V0RXhwb3NlZENvbnRlbnRSZWN0KGNvbnN0IEZs
b2F0UmVjdCYgZXhwb3NlZEMKICAgICAgICAgcmV0dXJuOwogCiAgICAgZnJhbWVWaWV3LT5zZXRF
eHBvc2VkQ29udGVudFJlY3QoZXhwb3NlZENvbnRlbnRSZWN0KTsKLSAgICBzY2hlZHVsZUNvbXBv
c2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAK
IHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJl
Y3QoKQpAQCAtMjczLDYwICsyNzMsNjAgQEAgVGlsZWRCYWNraW5nKiBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYTo6bWFpbkZyYW1lVGlsZWRCYWNraW5nKCkgY29uc3QKICAgICByZXR1cm4gZnJh
bWVWaWV3ID8gZnJhbWVWaWV3LT50aWxlZEJhY2tpbmcoKSA6IG51bGxwdHI7CiB9CiAKLXZvaWQg
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNo
SW1tZWRpYXRlbHkoKQordm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2NoZWR1bGVJ
bW1lZGlhdGVSZW5kZXJpbmdVcGRhdGUoKQogewotICAgIG1fbGF5ZXJGbHVzaFRpbWVyLnN0YXJ0
T25lU2hvdCgwX3MpOworICAgIG1fdXBkYXRlUmVuZGVyaW5nVGltZXIuc3RhcnRPbmVTaG90KDBf
cyk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVkdWxlSW5pdGlh
bERlZmVycmVkUGFpbnQoKQogewotICAgIEFTU0VSVCghbV9pc0ZsdXNoaW5nU3VzcGVuZGVkKTsK
LSAgICBtX2ZsdXNoaW5nSW5pdGlhbERlZmVycmVkUGFpbnQgPSB0cnVlOworICAgIEFTU0VSVCgh
bV9pc1JlbmRlcmluZ1N1c3BlbmRlZCk7CisgICAgbV9pbkluaXRpYWxEZWZlcnJlZFJlbmRlcmlu
Z1VwZGF0ZSA9IHRydWU7CiAKLSAgICBpZiAobV9sYXllckZsdXNoVGltZXIuaXNBY3RpdmUoKSkK
KyAgICBpZiAobV91cGRhdGVSZW5kZXJpbmdUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICByZXR1
cm47Ci0gICAgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpOworICAg
IHNjaGVkdWxlSW1tZWRpYXRlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKLXZvaWQgUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkKK3ZvaWQg
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkKIHsK
LSAgICBpZiAobV9pc0ZsdXNoaW5nU3VzcGVuZGVkKSB7Ci0gICAgICAgIG1faXNMYXllckZsdXNo
VGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbiA9IGZhbHNlOwotICAg
ICAgICBtX2hhc0RlZmVycmVkRmx1c2ggPSB0cnVlOworICAgIGlmIChtX2lzUmVuZGVyaW5nU3Vz
cGVuZGVkKSB7CisgICAgICAgIG1faXNSZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nVGVtcG9yYXJp
bHlEaXNhYmxlZEZvckludGVyYWN0aW9uID0gZmFsc2U7CisgICAgICAgIG1faGFzRGVmZXJyZWRS
ZW5kZXJpbmdVcGRhdGUgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGlmICht
X2lzTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24p
IHsKLSAgICAgICAgbV9pc0xheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZv
ckludGVyYWN0aW9uID0gZmFsc2U7Ci0gICAgICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZs
dXNoSW1tZWRpYXRlbHkoKTsKKyAgICBpZiAobV9pc1JlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdU
ZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24pIHsKKyAgICAgICAgbV9pc1JlbmRlcmlu
Z1VwZGF0ZVRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24gPSBmYWxz
ZTsKKyAgICAgICAgc2NoZWR1bGVJbW1lZGlhdGVSZW5kZXJpbmdVcGRhdGUoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX2xheWVyRmx1c2hUaW1lci5pc0FjdGl2ZSgpKQor
ICAgIGlmIChtX3VwZGF0ZVJlbmRlcmluZ1RpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIGNvbnN0IFNlY29uZHMgaW5pdGlhbEZsdXNoRGVsYXkgPSA1MDBfbXM7CiAgICAg
Y29uc3QgU2Vjb25kcyBmbHVzaERlbGF5ID0gMTUwMF9tczsKLSAgICBTZWNvbmRzIHRocm90dGxl
RGVsYXkgPSBtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyA/IChtX2lzSW5pdGlhbFRocm90dGxl
ZExheWVyRmx1c2ggPyBpbml0aWFsRmx1c2hEZWxheSA6IGZsdXNoRGVsYXkpIDogMF9zOwotICAg
IG1faXNJbml0aWFsVGhyb3R0bGVkTGF5ZXJGbHVzaCA9IGZhbHNlOworICAgIFNlY29uZHMgdGhy
b3R0bGVEZWxheSA9IG1faXNUaHJvdHRsaW5nUmVuZGVyaW5nVXBkYXRlcyA/IChtX2lzRmlyc3RU
aHJvdHRsZWRSZW5kZXJpbmdVcGRhdGUgPyBpbml0aWFsRmx1c2hEZWxheSA6IGZsdXNoRGVsYXkp
IDogMF9zOworICAgIG1faXNGaXJzdFRocm90dGxlZFJlbmRlcmluZ1VwZGF0ZSA9IGZhbHNlOwog
Ci0gICAgbV9sYXllckZsdXNoVGltZXIuc3RhcnRPbmVTaG90KHRocm90dGxlRGVsYXkpOworICAg
IG1fdXBkYXRlUmVuZGVyaW5nVGltZXIuc3RhcnRPbmVTaG90KHRocm90dGxlRGVsYXkpOwogfQog
Ci1ib29sIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjphZGp1c3RMYXllckZsdXNoVGhyb3R0
bGluZyhXZWJDb3JlOjpMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RmxhZ3MgZmxhZ3MpCitib29s
IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjphZGp1c3RSZW5kZXJVcGRhdGVUaHJvdHRsaW5n
KE9wdGlvblNldDxSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlPiBmbGFncykKIHsKLSAgICBp
ZiAoZmxhZ3MgJiBXZWJDb3JlOjpMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6VXNlcklzSW50ZXJh
Y3RpbmcpCi0gICAgICAgIG1faXNMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJs
ZWRGb3JJbnRlcmFjdGlvbiA9IHRydWU7CisgICAgaWYgKGZsYWdzLmNvbnRhaW5zKFJlbmRlcmlu
Z1VwZGF0ZVRocm90dGxlU3RhdGU6OlVzZXJJc0ludGVyYWN0aW5nKSkKKyAgICAgICAgbV9pc1Jl
bmRlcmluZ1VwZGF0ZVRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24g
PSB0cnVlOwogCi0gICAgYm9vbCB3YXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzID0gbV9pc1Rocm90
dGxpbmdMYXllckZsdXNoZXM7Ci0gICAgbV9pc1Rocm90dGxpbmdMYXllckZsdXNoZXMgPSBmbGFn
cyAmIFdlYkNvcmU6OkxheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpFbmFibGVkOworICAgIGJvb2wg
d2FzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyA9IG1faXNUaHJvdHRsaW5nUmVuZGVyaW5nVXBkYXRl
czsKKyAgICBtX2lzVGhyb3R0bGluZ1JlbmRlcmluZ1VwZGF0ZXMgPSBmbGFncy5jb250YWlucyhS
ZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlOjpFbmFibGVkKTsKIAotICAgIGlmICghd2FzVGhy
b3R0bGluZ0xheWVyRmx1c2hlcyAmJiBtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcykKLSAgICAg
ICAgbV9pc0luaXRpYWxUaHJvdHRsZWRMYXllckZsdXNoID0gdHJ1ZTsKKyAgICBpZiAoIXdhc1Ro
cm90dGxpbmdMYXllckZsdXNoZXMgJiYgbV9pc1Rocm90dGxpbmdSZW5kZXJpbmdVcGRhdGVzKQor
ICAgICAgICBtX2lzRmlyc3RUaHJvdHRsZWRSZW5kZXJpbmdVcGRhdGUgPSB0cnVlOwogCiAgICAg
Ly8gUmUtc2NoZWR1bGUgdGhlIGZsdXNoIGlmIHdlIHN0b3BwZWQgdGhyb3R0bGluZy4KLSAgICBp
ZiAod2FzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyAmJiAhbV9pc1Rocm90dGxpbmdMYXllckZsdXNo
ZXMgJiYgbV9sYXllckZsdXNoVGltZXIuaXNBY3RpdmUoKSkgewotICAgICAgICBtX2xheWVyRmx1
c2hUaW1lci5zdG9wKCk7Ci0gICAgICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7
CisgICAgaWYgKHdhc1Rocm90dGxpbmdMYXllckZsdXNoZXMgJiYgIW1faXNUaHJvdHRsaW5nUmVu
ZGVyaW5nVXBkYXRlcyAmJiBtX3VwZGF0ZVJlbmRlcmluZ1RpbWVyLmlzQWN0aXZlKCkpIHsKKyAg
ICAgICAgbV91cGRhdGVSZW5kZXJpbmdUaW1lci5zdG9wKCk7CisgICAgICAgIHNjaGVkdWxlUmVu
ZGVyaW5nVXBkYXRlKCk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMzU0LDMwICsz
NTQsMzAgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6YWRkQ29tbWl0SGFuZGxl
cnMoKQogICAgIG1fd2ViUGFnZS5zZXRGaXJzdEZsdXNoQWZ0ZXJDb21taXQodHJ1ZSk7CiB9CiAK
LXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKCkKK3ZvaWQgUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmluZygpCiB7Ci0gICAgaWYgKG1f
aXNGbHVzaGluZ1N1c3BlbmRlZCkgewotICAgICAgICBtX2hhc0RlZmVycmVkRmx1c2ggPSB0cnVl
OworICAgIGlmIChtX2lzUmVuZGVyaW5nU3VzcGVuZGVkKSB7CisgICAgICAgIG1faGFzRGVmZXJy
ZWRSZW5kZXJpbmdVcGRhdGUgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAg
aWYgKG1fd2FpdGluZ0ZvckJhY2tpbmdTdG9yZVN3YXApIHsKLSAgICAgICAgbV9oYWRGbHVzaERl
ZmVycmVkV2hpbGVXYWl0aW5nRm9yQmFja2luZ1N0b3JlU3dhcCA9IHRydWU7CisgICAgICAgIG1f
ZGVmZXJyZWRSZW5kZXJpbmdVcGRhdGVXaGlsZVdhaXRpbmdGb3JCYWNraW5nU3RvcmVTd2FwID0g
dHJ1ZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX2ZsdXNoaW5nSW5pdGlh
bERlZmVycmVkUGFpbnQpIHsKLSAgICAgICAgbV9mbHVzaGluZ0luaXRpYWxEZWZlcnJlZFBhaW50
ID0gZmFsc2U7CisgICAgaWYgKG1faW5Jbml0aWFsRGVmZXJyZWRSZW5kZXJpbmdVcGRhdGUpIHsK
KyAgICAgICAgbV9pbkluaXRpYWxEZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZSA9IGZhbHNlOwogICAg
ICAgICAvLyBSZXNjaGVkdWxlIHRoZSBmbHVzaCB0aW1lciBmb3IgdGhlIHNlY29uZCBwYWludCBp
ZiBwYWludGluZyBpcyBiZWluZyB0aHJvdHRsZWQuCi0gICAgICAgIGlmIChtX2lzVGhyb3R0bGlu
Z0xheWVyRmx1c2hlcykKLSAgICAgICAgICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNo
KCk7CisgICAgICAgIGlmIChtX2lzVGhyb3R0bGluZ1JlbmRlcmluZ1VwZGF0ZXMpCisgICAgICAg
ICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogICAgIH0KIAogICAgIC8vIFRoaXMgZnVu
Y3Rpb24gaXMgbm90IHJlZW50cmFudCwgZS5nLiBhIHJBRiBjYWxsYmFjayBtYXkgZm9yY2UgcmVw
YWludC4KLSAgICBpZiAobV9pbkZsdXNoTGF5ZXJzKQorICAgIGlmIChtX2luVXBkYXRlUmVuZGVy
aW5nKQogICAgICAgICByZXR1cm47CiAKLSAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9p
bkZsdXNoTGF5ZXJzLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9pblVw
ZGF0ZVJlbmRlcmluZywgdHJ1ZSk7CiAgICAgbV93ZWJQYWdlLnVwZGF0ZVJlbmRlcmluZygpOwog
CiAgICAgRmxvYXRSZWN0IHZpc2libGVSZWN0KEZsb2F0UG9pbnQoKSwgbV92aWV3U2l6ZSk7CkBA
IC0zODYsNyArMzg2LDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hM
YXllcnMoKQogCiAgICAgYWRkQ29tbWl0SGFuZGxlcnMoKTsKIAotICAgIGlmIChtX25leHRGbHVz
aElzRm9ySW1tZWRpYXRlUGFpbnQpCisgICAgaWYgKG1fbmV4dFJlbmRlcmluZ1VwZGF0ZUlzSW1t
ZWRpYXRlKQogICAgICAgICBtX3dlYlBhZ2UubWFpbkZyYW1lVmlldygpLT5pbnZhbGlkYXRlSW1h
Z2VzV2l0aEFzeW5jRGVjb2RlcygpOwogCiAgICAgbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKS0+
Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7CkBAIC00MDYsNyArNDA2
LDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMoKQogICAg
IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uIGxheWVyVHJhbnNhY3Rpb247CiAgICAgbGF5ZXJU
cmFuc2FjdGlvbi5zZXRUcmFuc2FjdGlvbklEKHRha2VOZXh0VHJhbnNhY3Rpb25JRCgpKTsKICAg
ICBsYXllclRyYW5zYWN0aW9uLnNldENhbGxiYWNrSURzKFdURk1vdmUobV9wZW5kaW5nQ2FsbGJh
Y2tJRHMpKTsKLSAgICBtX3JlbW90ZUxheWVyVHJlZUNvbnRleHQtPnNldE5leHRGbHVzaElzRm9y
SW1tZWRpYXRlUGFpbnQobV9uZXh0Rmx1c2hJc0ZvckltbWVkaWF0ZVBhaW50KTsKKyAgICBtX3Jl
bW90ZUxheWVyVHJlZUNvbnRleHQtPnNldE5leHRGbHVzaElzRm9ySW1tZWRpYXRlUGFpbnQobV9u
ZXh0UmVuZGVyaW5nVXBkYXRlSXNJbW1lZGlhdGUpOwogICAgIG1fcmVtb3RlTGF5ZXJUcmVlQ29u
dGV4dC0+YnVpbGRUcmFuc2FjdGlvbihsYXllclRyYW5zYWN0aW9uLCAqZG93bmNhc3Q8R3JhcGhp
Y3NMYXllckNBUmVtb3RlPihtX3Jvb3RMYXllci5nZXQoKSkucGxhdGZvcm1DQUxheWVyKCkpOwog
ICAgIG1fcmVtb3RlTGF5ZXJUcmVlQ29udGV4dC0+c2V0TmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQ
YWludChmYWxzZSk7CiAgICAgYmFja2luZ1N0b3JlQ29sbGVjdGlvbi53aWxsQ29tbWl0TGF5ZXJU
cmVlKGxheWVyVHJhbnNhY3Rpb24pOwpAQCAtNDI0LDcgKzQyNCw3IEBAIHZvaWQgUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKCkKICAgICAgICAgZG93bmNhc3Q8UmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3I+KCptX3dlYlBhZ2Uuc2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSku
YnVpbGRUcmFuc2FjdGlvbihzY3JvbGxpbmdUcmFuc2FjdGlvbik7CiAjZW5kaWYKIAotICAgIG1f
bmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludCA9IGZhbHNlOworICAgIG1fbmV4dFJlbmRlcmlu
Z1VwZGF0ZUlzSW1tZWRpYXRlID0gZmFsc2U7CiAgICAgbV93YWl0aW5nRm9yQmFja2luZ1N0b3Jl
U3dhcCA9IHRydWU7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5OjpXaWxsQ29tbWl0TGF5ZXJUcmVlKGxheWVyVHJhbnNhY3Rpb24udHJhbnNhY3Rp
b25JRCgpKSk7CkBAIC00NzUsOSArNDc1LDkgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYTo6ZGlkVXBkYXRlKCkKIAogICAgIG1fd2FpdGluZ0ZvckJhY2tpbmdTdG9yZVN3YXAgPSBm
YWxzZTsKIAotICAgIGlmIChtX2hhZEZsdXNoRGVmZXJyZWRXaGlsZVdhaXRpbmdGb3JCYWNraW5n
U3RvcmVTd2FwKSB7Ci0gICAgICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7Ci0g
ICAgICAgIG1faGFkRmx1c2hEZWZlcnJlZFdoaWxlV2FpdGluZ0ZvckJhY2tpbmdTdG9yZVN3YXAg
PSBmYWxzZTsKKyAgICBpZiAobV9kZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZVdoaWxlV2FpdGluZ0Zv
ckJhY2tpbmdTdG9yZVN3YXApIHsKKyAgICAgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsK
KyAgICAgICAgbV9kZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZVdoaWxlV2FpdGluZ0ZvckJhY2tpbmdT
dG9yZVN3YXAgPSBmYWxzZTsKICAgICB9CiAKICAgICAvLyBUaGlzIGVtcHR5IHRyYW5zYWN0aW9u
IHNlcnZlcyB0byB0cmlnZ2VyIENBJ3MgZ2FyYmFnZSBjb2xsZWN0aW9uIG9mIElPU3VyZmFjZXMu
IFNlZSA8cmRhcjovL3Byb2JsZW0vMTYxMTA2ODc+CkBAIC01MzMsOSArNTMzLDkgQEAgdm9pZCBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6YWN0aXZpdHlTdGF0ZURpZENoYW5nZShPcHRpb25T
ZXQ8V2ViQ29yZTo6QWN0aXYKICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIHN1c3BlbmQgcGFpbnRp
bmcgd2hpbGUgbm90IHZpc2libGUsIGxpa2UgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE/
IFByb2JhYmx5LgogCiAgICAgaWYgKGFjdGl2aXR5U3RhdGVDaGFuZ2VJRCAhPSBBY3Rpdml0eVN0
YXRlQ2hhbmdlQXN5bmNocm9ub3VzKSB7Ci0gICAgICAgIG1fbmV4dEZsdXNoSXNGb3JJbW1lZGlh
dGVQYWludCA9IHRydWU7CisgICAgICAgIG1fbmV4dFJlbmRlcmluZ1VwZGF0ZUlzSW1tZWRpYXRl
ID0gdHJ1ZTsKICAgICAgICAgbV9hY3Rpdml0eVN0YXRlQ2hhbmdlSUQgPSBhY3Rpdml0eVN0YXRl
Q2hhbmdlSUQ7Ci0gICAgICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRl
bHkoKTsKKyAgICAgICAgc2NoZWR1bGVJbW1lZGlhdGVSZW5kZXJpbmdVcGRhdGUoKTsKICAgICB9
CiAKICAgICAvLyBGSVhNRTogV2UgbWF5IHdhbnQgdG8gbWF0Y2ggYmVoYXZpb3IgaW4gVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEgYnkgZmlyaW5nIHRoZXNlIGNhbGxiYWNrcyBhZnRlciB0
aGUgbmV4dCBjb21wb3NpdGluZyBmbHVzaCwgcmF0aGVyIHRoYW4gaW1tZWRpYXRlbHkgYWZ0ZXIK
QEAgLTU0OCwxMCArNTQ4LDEwIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmFk
ZFRyYW5zYWN0aW9uQ2FsbGJhY2tJRChDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgLy8g
QXNzdW1lIHRoYXQgaWYgc29tZW9uZSBpcyBsaXN0ZW5pbmcgZm9yIHRoaXMgdHJhbnNhY3Rpb24n
cyBjb21wbGV0aW9uLCB0aGF0IHRoZXkgd2FudCBpdCB0bwogICAgIC8vIGJlIGEgImNvbXBsZXRl
IiBwYWludCAoaW5jbHVkaW5nIGltYWdlcyB0aGF0IHdvdWxkIG5vcm1hbGx5IGJlIGFzeW5jaHJv
bm91c2x5IGRlY29kaW5nKS4KLSAgICBtX25leHRGbHVzaElzRm9ySW1tZWRpYXRlUGFpbnQgPSB0
cnVlOworICAgIG1fbmV4dFJlbmRlcmluZ1VwZGF0ZUlzSW1tZWRpYXRlID0gdHJ1ZTsKIAogICAg
IG1fcGVuZGluZ0NhbGxiYWNrSURzLmFwcGVuZChzdGF0aWNfY2FzdDxSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbjo6VHJhbnNhY3Rpb25DYWxsYmFja0lEPihjYWxsYmFja0lEKSk7Ci0gICAgc2No
ZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKKyAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0
ZSgpOwogfQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjphZG9wdExheWVyc0Zy
b21EcmF3aW5nQXJlYShEcmF3aW5nQXJlYSYgb2xkRHJhd2luZ0FyZWEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KaW5kZXggODM1NDQx
ZDMxOWI5NWY0NjY4Nzc1ODUzODkwOTJjOWVlYTI5Mzg2MS4uY2JmYTMxYjI3ZjFiZDhhNjI2NWRh
ODc3NjU0NTM5NjllMjZmNzg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQpAQCAtNjEsNyArNjEsNyBAQCBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvcjo6flJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkKIAogdm9pZCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2NoZWR1bGVUcmVlU3RhdGVDb21taXQoKQogewotICAg
IG1fd2ViUGFnZS0+ZHJhd2luZ0FyZWEoKS0+c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2go
KTsKKyAgICBtX3dlYlBhZ2UtPmRyYXdpbmdBcmVhKCktPnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRl
KCk7CiB9CiAKIGJvb2wgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmNvb3JkaW5hdGVzU2Ny
b2xsaW5nRm9yRnJhbWVWaWV3KGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaWV3KSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCA4NjgzYzEw
NGRiZmEyYzA1ZjVlODRiNTk2MGZkNjgyYWUyNDUxZGFmLi5kMWQyZjFiN2FmY2MwOWZhZDFiODkz
MWVkOGY4MTJmNDkwYzk1Mzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcApAQCAtNjIxOCw3ICs2MjE4LDcgQEAgdm9pZCBXZWJQYWdlOjpzY2hlZHVs
ZUZ1bGxFZGl0b3JTdGF0ZVVwZGF0ZSgpCiAgICAgbV9oYXNQZW5kaW5nRWRpdG9yU3RhdGVVcGRh
dGUgPSB0cnVlOwogICAgIC8vIEZJWE1FOiBTY2hlZHVsaW5nIGEgY29tcG9zaXRpbmcgbGF5ZXIg
Zmx1c2ggaGVyZSBjYW4gYmUgbW9yZSBleHBlbnNpdmUgdGhhbiBuZWNlc3NhcnkuCiAgICAgLy8g
SW5zdGVhZCwgd2Ugc2hvdWxkIGp1c3QgY29tcHV0ZSBhbmQgc2VuZCBwb3N0LWxheW91dCBlZGl0
b3Igc3RhdGUgZHVyaW5nIHRoZSBuZXh0IGZyYW1lLgotICAgIG1fZHJhd2luZ0FyZWEtPnNjaGVk
dWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAgbV9kcmF3aW5nQXJlYS0+c2NoZWR1bGVS
ZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogI2lmIEhBVkUoVE9VQ0hfQkFSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQppbmRleCA0NzM4
MzU3NmNmMDM5M2Q3YTRlZDNmNTg3NzNjMzk5Mzg5ZWVmYWU2Li4yNDA2OGI3MDVkZGY3OTcwZmUw
MjhkODI5MWFkMGVlYTA1MjU5NDQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMzQxNyw3ICszNDE3LDcgQEAgdm9pZCBX
ZWJQYWdlOjpkeW5hbWljVmlld3BvcnRTaXplVXBkYXRlKGNvbnN0IEZsb2F0U2l6ZSYgdmlld0xh
eW91dFNpemUsIGNvbnN0IFcKICAgICAgICAgdmlld3BvcnRDb25maWd1cmF0aW9uQ2hhbmdlZCgp
OwogI2VuZGlmCiAKLSAgICBtX2RyYXdpbmdBcmVhLT5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJG
bHVzaCgpOworICAgIG1fZHJhd2luZ0FyZWEtPnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAK
ICAgICBtX3BlbmRpbmdEeW5hbWljVmlld3BvcnRTaXplVXBkYXRlSUQgPSBkeW5hbWljVmlld3Bv
cnRTaXplVXBkYXRlSUQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5o
CmluZGV4IGE3NmYxZWJjMWM4ZjA0YWI5NjNlYTNmMGQ2MTI4ODFiNjg3ZTQ1MGIuLjUxNDAzNDUw
M2E5NDYwZDE0OGQ0M2E1YWFkMGNhMDRhYzA0MDQ4MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5oCkBAIC02Niw4ICs2Niw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBs
YXllclRyZWVTdGF0ZUlzRnJvemVuKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRSb290
Q29tcG9zaXRpbmdMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBzY2hlZHVsZUluaXRpYWxEZWZlcnJlZFBhaW50KCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBz
Y2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIG92ZXJyaWRlOwotICAgIHZvaWQgc2NoZWR1
bGVDb21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpIG92ZXJyaWRlOworICAgIHZvaWQg
c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjaGVkdWxlSW1t
ZWRpYXRlUmVuZGVyaW5nVXBkYXRlKCkgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHVwZGF0ZVByZWZl
cmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKSBvdmVycmlkZTsKICAgICB2b2lkIG1h
aW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgb3ZlcnJp
ZGU7CkBAIC05Miw4ICs5Miw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBhZGRNaWxlc3RvbmVzVG9E
aXNwYXRjaChPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPiBwYWludE1pbGVzdG9u
ZXMpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBhZGRDb21taXRIYW5kbGVycygpOwotICAgIGVudW0g
Y2xhc3MgRmx1c2hUeXBlIHsgTm9ybWFsLCBUcmFuc2llbnRab29tIH07Ci0gICAgdm9pZCBmbHVz
aExheWVycyhGbHVzaFR5cGUgPSBGbHVzaFR5cGU6Ok5vcm1hbCk7CisgICAgZW51bSBjbGFzcyBV
cGRhdGVSZW5kZXJpbmdUeXBlIHsgTm9ybWFsLCBUcmFuc2llbnRab29tIH07CisgICAgdm9pZCB1
cGRhdGVSZW5kZXJpbmcoVXBkYXRlUmVuZGVyaW5nVHlwZSA9IFVwZGF0ZVJlbmRlcmluZ1R5cGU6
Ok5vcm1hbCk7CiAKICAgICAvLyBNZXNzYWdlIGhhbmRsZXJzLgogICAgIHZvaWQgdXBkYXRlR2Vv
bWV0cnkoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdmlld1NpemUsIGJvb2wgZmx1c2hTeW5jaHJv
bm91c2x5LCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmIGZlbmNlUG9ydCkgb3ZlcnJpZGU7CkBA
IC0xMzAsMTUgKzEzMCwxNSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzZW5kUGVuZGluZ05ld2x5
UmVhY2hlZFBhaW50aW5nTWlsZXN0b25lcygpOwogCi0gICAgdm9pZCBsYXllckZsdXNoUnVuTG9v
cENhbGxiYWNrKCk7Ci0gICAgdm9pZCBpbnZhbGlkYXRlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZl
cigpOwotICAgIHZvaWQgc2NoZWR1bGVMYXllckZsdXNoUnVuTG9vcE9ic2VydmVyKCk7CisgICAg
dm9pZCB1cGRhdGVSZW5kZXJpbmdSdW5Mb29wQ2FsbGJhY2soKTsKKyAgICB2b2lkIGludmFsaWRh
dGVSZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIoKTsKKyAgICB2b2lkIHNjaGVkdWxlUmVu
ZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyKCk7CiAKLSAgICBib29sIGFkanVzdExheWVyRmx1
c2hUaHJvdHRsaW5nKFdlYkNvcmU6OkxheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpGbGFncykgb3Zl
cnJpZGU7Ci0gICAgYm9vbCBsYXllckZsdXNoVGhyb3R0bGluZ0lzQWN0aXZlKCkgY29uc3Qgb3Zl
cnJpZGU7CisgICAgYm9vbCBhZGp1c3RSZW5kZXJVcGRhdGVUaHJvdHRsaW5nKE9wdGlvblNldDxX
ZWJDb3JlOjpSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlPikgb3ZlcnJpZGU7CisgICAgYm9v
bCByZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nSXNBY3RpdmUoKSBjb25zdCBvdmVycmlkZTsKIAot
ICAgIHZvaWQgc3RhcnRMYXllckZsdXNoVGhyb3R0bGluZ1RpbWVyKCk7Ci0gICAgdm9pZCBsYXll
ckZsdXNoVGhyb3R0bGluZ1RpbWVyRmlyZWQoKTsKKyAgICB2b2lkIHN0YXJ0UmVuZGVyVGhyb3R0
bGluZ1RpbWVyKCk7CisgICAgdm9pZCByZW5kZXJUaHJvdHRsaW5nVGltZXJGaXJlZCgpOwogCiAg
ICAgc3RkOjp1bmlxdWVfcHRyPExheWVySG9zdGluZ0NvbnRleHQ+IG1fbGF5ZXJIb3N0aW5nQ29u
dGV4dDsKIApAQCAtMTU2LDcgKzE1Niw3IEBAIHByaXZhdGU6CiAgICAgZG91YmxlIG1fdHJhbnNp
ZW50Wm9vbVNjYWxlIHsgMSB9OwogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgbV90cmFuc2llbnRa
b29tT3JpZ2luOwogCi0gICAgV2ViQ29yZTo6VGltZXIgbV9sYXllckZsdXNoVGhyb3R0bGluZ1Rp
bWVyOworICAgIFdlYkNvcmU6OlRpbWVyIG1fcmVuZGVyVGhyb3R0bGluZ1RpbWVyOwogCiAgICAg
UnVuTG9vcDo6VGltZXI8VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE+IG1fc2VuZERpZFVw
ZGF0ZUFjdGl2aXR5U3RhdGVUaW1lcjsKICAgICBWZWN0b3I8Q2FsbGJhY2tJRD4gbV9uZXh0QWN0
aXZpdHlTdGF0ZUNoYW5nZUNhbGxiYWNrSURzOwpAQCAtMTY3LDE1ICsxNjcsMTUgQEAgcHJpdmF0
ZToKICAgICBPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPiBtX3BlbmRpbmdOZXds
eVJlYWNoZWRQYWludGluZ01pbGVzdG9uZXM7CiAgICAgVmVjdG9yPENhbGxiYWNrSUQ+IG1fcGVu
ZGluZ0NhbGxiYWNrSURzOwogCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlJ1bkxvb3BP
YnNlcnZlcj4gbV9sYXllckZsdXNoUnVuTG9vcE9ic2VydmVyOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJDb3JlOjpSdW5Mb29wT2JzZXJ2ZXI+IG1fcmVuZGVyVXBkYXRlUnVuTG9vcE9ic2VydmVy
OwogCiAgICAgYm9vbCBtX2lzUGFpbnRpbmdTdXNwZW5kZWQgeyBmYWxzZSB9OwogICAgIGJvb2wg
bV9pblVwZGF0ZUdlb21ldHJ5IHsgZmFsc2UgfTsKICAgICBib29sIG1fbGF5ZXJUcmVlU3RhdGVJ
c0Zyb3plbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZFNjYWxlVmlld1RvRml0RG9jdW1l
bnQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1NjYWxpbmdWaWV3VG9GaXREb2N1bWVudCB7IGZh
bHNlIH07Ci0gICAgYm9vbCBtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyB7IGZhbHNlIH07Ci0g
ICAgYm9vbCBtX2lzTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50
ZXJhY3Rpb24geyBmYWxzZSB9OworICAgIGJvb2wgbV9pc1Rocm90dGxpbmdSZW5kZXJpbmdVcGRh
dGVzIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNSZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nVGVt
cG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIG1fbmVl
ZHNTZW5kRW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSB7IHRydWUgfTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQppbmRleCA1NmZhMTgwMzJmODg1
YzIzZDdhMzQ3ODU1OWMwZjBjNjAzMzU3ZTA0Li5mN2IzMjIxNDk3ZTYyYjQzNzY0ZTAxNDg4OWZi
ZTYwYWU0MGFjOTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1t
CkBAIC03Miw3ICs3Miw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYTo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEoV2ViUGFn
ZSYgd2ViUGFnZSwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykK
ICAgICA6IERyYXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZVRpbGVkQ29yZUFuaW1hdGlvbiwgcGFy
YW1ldGVycy5kcmF3aW5nQXJlYUlkZW50aWZpZXIsIHdlYlBhZ2UpCi0gICAgLCBtX2xheWVyRmx1
c2hUaHJvdHRsaW5nVGltZXIoKnRoaXMsICZUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
bGF5ZXJGbHVzaFRocm90dGxpbmdUaW1lckZpcmVkKQorICAgICwgbV9yZW5kZXJUaHJvdHRsaW5n
VGltZXIoKnRoaXMsICZUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6cmVuZGVyVGhyb3R0
bGluZ1RpbWVyRmlyZWQpCiAgICAgLCBtX3NlbmREaWRVcGRhdGVBY3Rpdml0eVN0YXRlVGltZXIo
UnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmRp
ZFVwZGF0ZUFjdGl2aXR5U3RhdGVUaW1lckZpcmVkKQogICAgICwgbV9pc1BhaW50aW5nU3VzcGVu
ZGVkKCEocGFyYW1ldGVycy5hY3Rpdml0eVN0YXRlICYgQWN0aXZpdHlTdGF0ZTo6SXNWaXNpYmxl
KSkKIHsKQEAgLTg0LDggKzg0LDggQEAgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OlRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhKFdlYlBhZ2UmIHdlYlBhZ2UsIGMKICAgICBbbV9o
b3N0aW5nTGF5ZXIgc2V0T3BhcXVlOllFU107CiAgICAgW21faG9zdGluZ0xheWVyIHNldEdlb21l
dHJ5RmxpcHBlZDpZRVNdOwogCi0gICAgbV9sYXllckZsdXNoUnVuTG9vcE9ic2VydmVyID0gbWFr
ZVVuaXF1ZTxSdW5Mb29wT2JzZXJ2ZXI+KHN0YXRpY19jYXN0PENGSW5kZXg+KFJ1bkxvb3BPYnNl
cnZlcjo6V2VsbEtub3duUnVuTG9vcE9yZGVyczo6TGF5ZXJGbHVzaCksIFt0aGlzXSgpIHsKLSAg
ICAgICAgdGhpcy0+bGF5ZXJGbHVzaFJ1bkxvb3BDYWxsYmFjaygpOworICAgIG1fcmVuZGVyVXBk
YXRlUnVuTG9vcE9ic2VydmVyID0gbWFrZVVuaXF1ZTxSdW5Mb29wT2JzZXJ2ZXI+KHN0YXRpY19j
YXN0PENGSW5kZXg+KFJ1bkxvb3BPYnNlcnZlcjo6V2VsbEtub3duUnVuTG9vcE9yZGVyczo6TGF5
ZXJGbHVzaCksIFt0aGlzXSgpIHsKKyAgICAgICAgdGhpcy0+dXBkYXRlUmVuZGVyaW5nUnVuTG9v
cENhbGxiYWNrKCk7CiAgICAgfSk7CiAKICAgICB1cGRhdGVMYXllckhvc3RpbmdDb250ZXh0KCk7
CkBAIC05NCw3ICs5NCw3IEBAIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYShXZWJQYWdlJiB3ZWJQYWdlLCBjCiAKIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjp+VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEoKQogewot
ICAgIGludmFsaWRhdGVMYXllckZsdXNoUnVuTG9vcE9ic2VydmVyKCk7CisgICAgaW52YWxpZGF0
ZVJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZlcigpOwogfQogCiB2b2lkIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjpzZW5kRW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZUlm
TmVlZGVkKCkKQEAgLTE1NSw3ICsxNTUsNyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhOjpmb3JjZVJlcGFpbnQoKQogICAgICAgICBmcmFtZVZpZXctPnRpbGVkQmFja2luZygp
LT5mb3JjZVJlcGFpbnQoKTsKICAgICB9CiAKLSAgICBmbHVzaExheWVycygpOworICAgIHVwZGF0
ZVJlbmRlcmluZygpOwogICAgIFtDQVRyYW5zYWN0aW9uIGZsdXNoXTsKICAgICBbQ0FUcmFuc2Fj
dGlvbiBzeW5jaHJvbml6ZV07CiB9CkBAIC0xODIsMTEgKzE4MiwxMSBAQCB2b2lkIFRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJvb2wgbGF5
ZXJUcmVlU3RhdAogICAgIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbiA9IGxheWVyVHJlZVN0YXRl
SXNGcm96ZW47CiAKICAgICBpZiAobV9sYXllclRyZWVTdGF0ZUlzRnJvemVuKSB7Ci0gICAgICAg
IGludmFsaWRhdGVMYXllckZsdXNoUnVuTG9vcE9ic2VydmVyKCk7Ci0gICAgICAgIG1fbGF5ZXJG
bHVzaFRocm90dGxpbmdUaW1lci5zdG9wKCk7CisgICAgICAgIGludmFsaWRhdGVSZW5kZXJpbmdV
cGRhdGVSdW5Mb29wT2JzZXJ2ZXIoKTsKKyAgICAgICAgbV9yZW5kZXJUaHJvdHRsaW5nVGltZXIu
c3RvcCgpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIEltbWVkaWF0ZSBmbHVzaCBhcyBhbnkg
ZGVsYXkgaW4gdW5mcmVlemluZyBjYW4gcmVzdWx0IGluIGZsYXNoZXMuCi0gICAgICAgIHNjaGVk
dWxlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOworICAgICAgICBzY2hlZHVsZVJlbmRlcmlu
Z1VwZGF0ZVJ1bkxvb3BPYnNlcnZlcigpOwogICAgIH0KIH0KIApAQCAtMTk5LDMxICsxOTksMzEg
QEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NoZWR1bGVJbml0aWFsRGVm
ZXJyZWRQYWludCgpCiB7CiB9CiAKLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkKK3ZvaWQgVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkKIHsKICAgICBpZiAobV9sYXll
clRyZWVTdGF0ZUlzRnJvemVuKSB7Ci0gICAgICAgIG1faXNMYXllckZsdXNoVGhyb3R0bGluZ1Rl
bXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbiA9IGZhbHNlOworICAgICAgICBtX2lzUmVu
ZGVyaW5nVXBkYXRlVGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbiA9
IGZhbHNlOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1faXNMYXllckZsdXNo
VGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbikgewotICAgICAgICBt
X2lzTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24g
PSBmYWxzZTsKLSAgICAgICAgc2NoZWR1bGVMYXllckZsdXNoUnVuTG9vcE9ic2VydmVyKCk7Ci0g
ICAgICAgIG1fbGF5ZXJGbHVzaFRocm90dGxpbmdUaW1lci5zdG9wKCk7CisgICAgaWYgKG1faXNS
ZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9u
KSB7CisgICAgICAgIG1faXNSZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNh
YmxlZEZvckludGVyYWN0aW9uID0gZmFsc2U7CisgICAgICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBk
YXRlUnVuTG9vcE9ic2VydmVyKCk7CisgICAgICAgIG1fcmVuZGVyVGhyb3R0bGluZ1RpbWVyLnN0
b3AoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX2xheWVyRmx1c2hUaHJv
dHRsaW5nVGltZXIuaXNBY3RpdmUoKSkgewotICAgICAgICBBU1NFUlQobV9pc1Rocm90dGxpbmdM
YXllckZsdXNoZXMpOworICAgIGlmIChtX3JlbmRlclRocm90dGxpbmdUaW1lci5pc0FjdGl2ZSgp
KSB7CisgICAgICAgIEFTU0VSVChtX2lzVGhyb3R0bGluZ1JlbmRlcmluZ1VwZGF0ZXMpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc2NoZWR1bGVMYXllckZsdXNoUnVuTG9vcE9ic2Vy
dmVyKCk7CisgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIoKTsKIH0K
IAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NoZWR1bGVDb21wb3NpdGlu
Z0xheWVyRmx1c2hJbW1lZGlhdGVseSgpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpzY2hlZHVsZUltbWVkaWF0ZVJlbmRlcmluZ1VwZGF0ZSgpCiB7Ci0gICAgc2NoZWR1bGVM
YXllckZsdXNoUnVuTG9vcE9ic2VydmVyKCk7CisgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVS
dW5Mb29wT2JzZXJ2ZXIoKTsKIH0KIAogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpCkBAIC0yNzEs
NyArMjcxLDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6YXR0YWNoVmll
d092ZXJsYXlHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXIKIHsKICAgICBtX3ZpZXdPdmVybGF5
Um9vdExheWVyID0gdmlld092ZXJsYXlSb290TGF5ZXI7CiAgICAgdXBkYXRlUm9vdExheWVycygp
OwotICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAgc2NoZWR1bGVSZW5k
ZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
bWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0IEludFNpemUmIHNpemUpCkBAIC0yODQs
NyArMjg0LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2V0U2hvdWxk
U2NhbGVWaWV3VG9GaXREb2N1bWVudChib29sIHNob3VsZFMKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgbV9zaG91bGRTY2FsZVZpZXdUb0ZpdERvY3VtZW50ID0gc2hvdWxkU2NhbGVWaWV3OwotICAg
IHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAgc2NoZWR1bGVSZW5kZXJpbmdV
cGRhdGUoKTsKIH0KIAogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NhbGVW
aWV3VG9GaXREb2N1bWVudElmTmVlZGVkKCkKQEAgLTM5Miw3ICszOTIsNyBAQCB2b2lkIFRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdVcGRhdGVkU2Ny
b2xsUG9zaXRpb24oVwogICAgIG1fd2ViUGFnZS5jb3JlUGFnZSgpLT5zY3JvbGxpbmdDb29yZGlu
YXRvcigpLT5jb21taXRUcmVlU3RhdGVJZk5lZWRlZCgpOwogCiAgICAgaWYgKCFtX2xheWVyVHJl
ZVN0YXRlSXNGcm96ZW4pCi0gICAgICAgIGludmFsaWRhdGVMYXllckZsdXNoUnVuTG9vcE9ic2Vy
dmVyKCk7CisgICAgICAgIGludmFsaWRhdGVSZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIo
KTsKIAogICAgIC8vIEl0IGlzIHBvc3NpYmxlIGZvciB0aGUgZHJhd2luZyBhcmVhIHRvIGJlIGRl
c3Ryb3llZCBiZWZvcmUgdGhlIGJvdW5kIGJsb2NrCiAgICAgLy8gaXMgaW52b2tlZCwgc28gZ3Jh
YiBhIHJlZmVyZW5jZSB0byB0aGUgd2ViIHBhZ2UgaGVyZSBzbyB3ZSBjYW4gYWNjZXNzIHRoZSBk
cmF3aW5nIGFyZWEgdGhyb3VnaCBpdC4KQEAgLTQwNyw3ICs0MDcsNyBAQCB2b2lkIFRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdVcGRhdGVkU2Nyb2xs
UG9zaXRpb24oVwogICAgICAgICBmdW5jdGlvbigpOwogCiAgICAgICAgIGlmICghbV9sYXllclRy
ZWVTdGF0ZUlzRnJvemVuKQotICAgICAgICAgICAgc2NoZWR1bGVMYXllckZsdXNoUnVuTG9vcE9i
c2VydmVyKCk7CisgICAgICAgICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNl
cnZlcigpOwogCiAgICAgICAgIHdlYlBhZ2UtPmRlcmVmKCk7CiAgICAgfSk7CkBAIC00MjgsNyAr
NDI4LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2VuZFBlbmRpbmdO
ZXdseVJlYWNoZWRQYWludGluZ01pbGVzdG9uZXMoKQogdm9pZCBUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYTo6YWRkVHJhbnNhY3Rpb25DYWxsYmFja0lEKENhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKIHsKICAgICBtX3BlbmRpbmdDYWxsYmFja0lEcy5hcHBlbmQoY2FsbGJhY2tJRCk7Ci0gICAg
c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKKyAgICBzY2hlZHVsZVJlbmRlcmluZ1Vw
ZGF0ZSgpOwogfQogCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjphZGRDb21t
aXRIYW5kbGVycygpCkBAIC00NTYsNyArNDU2LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYTo6YWRkQ29tbWl0SGFuZGxlcnMoKQogICAgIG1fd2ViUGFnZS5zZXRGaXJzdEZs
dXNoQWZ0ZXJDb21taXQodHJ1ZSk7CiB9CiAKLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6OmZsdXNoTGF5ZXJzKEZsdXNoVHlwZSBmbHVzaFR5cGUpCit2b2lkIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVSZW5kZXJpbmcoVXBkYXRlUmVuZGVyaW5nVHlwZSBm
bHVzaFR5cGUpCiB7CiAgICAgaWYgKGxheWVyVHJlZVN0YXRlSXNGcm96ZW4oKSkKICAgICAgICAg
cmV0dXJuOwpAQCAtNDg3LDcgKzQ4Nyw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6OmZsdXNoTGF5ZXJzKEZsdXNoVHlwZSBmbHVzaFR5cGUpCiAjaWYgRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKICAgICAgICAgaWYgKGF1dG8qIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gbV93
ZWJQYWdlLmNvcmVQYWdlKCktPnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpIHsKICAgICAgICAgICAg
IHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5jb21taXRUcmVlU3RhdGVJZk5lZWRlZCgpOwotICAgICAg
ICAgICAgaWYgKGZsdXNoVHlwZSA9PSBGbHVzaFR5cGU6Ok5vcm1hbCkKKyAgICAgICAgICAgIGlm
IChmbHVzaFR5cGUgPT0gVXBkYXRlUmVuZGVyaW5nVHlwZTo6Tm9ybWFsKQogICAgICAgICAgICAg
ICAgIHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5hcHBseVNjcm9sbGluZ1RyZWVMYXllclBvc2l0aW9u
cygpOwogICAgICAgICB9CiAjZW5kaWYKQEAgLTUwNCwxMyArNTA0LDEzIEBAIHZvaWQgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKEZsdXNoVHlwZSBmbHVzaFR5cGUp
CiAKICAgICAgICAgaWYgKGRpZEZsdXNoQWxsRnJhbWVzKSB7CiAgICAgICAgICAgICBzZW5kRW50
ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZUlmTmVlZGVkKCk7Ci0gICAgICAgICAgICBpbnZh
bGlkYXRlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOworICAgICAgICAgICAgaW52YWxpZGF0
ZVJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZlcigpOwogICAgICAgICB9CiAKLSAgICAgICAg
aWYgKG1faXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzKQotICAgICAgICAgICAgc3RhcnRMYXllckZs
dXNoVGhyb3R0bGluZ1RpbWVyKCk7CisgICAgICAgIGlmIChtX2lzVGhyb3R0bGluZ1JlbmRlcmlu
Z1VwZGF0ZXMpCisgICAgICAgICAgICBzdGFydFJlbmRlclRocm90dGxpbmdUaW1lcigpOwogICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBtX2xheWVyRmx1c2hUaHJvdHRsaW5nVGltZXIuc3RvcCgp
OworICAgICAgICAgICAgbV9yZW5kZXJUaHJvdHRsaW5nVGltZXIuc3RvcCgpOwogICAgIH0KIH0K
IApAQCAtNTQ5LDYgKzU0OSw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OnN1c3BlbmRQYWludGluZygpCiAgICAgQVNTRVJUKCFtX2lzUGFpbnRpbmdTdXNwZW5kZWQpOwog
ICAgIG1faXNQYWludGluZ1N1c3BlbmRlZCA9IHRydWU7CiAKKyAgICAvLyBUaGlzIGlzIGEgc2ln
bmFsIHRvIG1lZGlhIGZyYW1ld29ya3M7IGl0IGRvZXMgbm90IGFjdGl2ZWx5IHBhdXNlIGFueXRo
aW5nLgogICAgIFttX2hvc3RpbmdMYXllciBzZXRWYWx1ZTpAWUVTIGZvcktleTpAIk5TQ0FWaWV3
UmVuZGVyUGF1c2VkIl07CiAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVy
XSBwb3N0Tm90aWZpY2F0aW9uTmFtZTpAIk5TQ0FWaWV3UmVuZGVyRGlkUGF1c2VOb3RpZmljYXRp
b24iIG9iamVjdDpuaWwgdXNlckluZm86W05TRGljdGlvbmFyeSBkaWN0aW9uYXJ5V2l0aE9iamVj
dDptX2hvc3RpbmdMYXllci5nZXQoKSBmb3JLZXk6QCJsYXllciJdXTsKIH0KQEAgLTYyMyw3ICs2
MjQsNyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRy
eShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwgYm9vbAogICAgICAgICBzaXplID0gY29udGVudFNp
emU7CiAgICAgfQogCi0gICAgZmx1c2hMYXllcnMoKTsKKyAgICB1cGRhdGVSZW5kZXJpbmcoKTsK
IAogICAgIFtDQVRyYW5zYWN0aW9uIGJlZ2luXTsKICAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNh
YmxlQWN0aW9uczpZRVNdOwpAQCAtOTI5LDcgKzkzMCw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWE6OmFwcGx5VHJhbnNpZW50Wm9vbVRvUGFnZShkb3VibGUgc2NhbGUsIEZs
b2F0CiAgICAgdW5zY3JvbGxlZE9yaWdpbi5tb3ZlQnkoLXVub2JzY3VyZWRDb250ZW50UmVjdC5s
b2NhdGlvbigpKTsKICAgICBtX3dlYlBhZ2Uuc2NhbGVQYWdlKHNjYWxlIC8gbV93ZWJQYWdlLnZp
ZXdTY2FsZUZhY3RvcigpLCByb3VuZGVkSW50UG9pbnQoLXVuc2Nyb2xsZWRPcmlnaW4pKTsKICAg
ICBtX3RyYW5zaWVudFpvb21TY2FsZSA9IDE7Ci0gICAgZmx1c2hMYXllcnMoRmx1c2hUeXBlOjpU
cmFuc2llbnRab29tKTsKKyAgICB1cGRhdGVSZW5kZXJpbmcoVXBkYXRlUmVuZGVyaW5nVHlwZTo6
VHJhbnNpZW50Wm9vbSk7CiB9CiAKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OmFkZEZlbmNlKGNvbnN0IE1hY2hTZW5kUmlnaHQmIGZlbmNlUG9ydCkKQEAgLTkzNyw3MSArOTM4
LDcxIEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmFkZEZlbmNlKGNvbnN0
IE1hY2hTZW5kUmlnaHQmIGZlbmNlUG9ydCkKICAgICBtX2xheWVySG9zdGluZ0NvbnRleHQtPnNl
dEZlbmNlUG9ydChmZW5jZVBvcnQuc2VuZFJpZ2h0KCkpOwogfQogCi12b2lkIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjpsYXllckZsdXNoUnVuTG9vcENhbGxiYWNrKCkKK3ZvaWQgVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmluZ1J1bkxvb3BDYWxsYmFj
aygpCiB7Ci0gICAgdHJhY2VQb2ludChMYXllckZsdXNoUnVuTG9vcE9ic2VydmVyRW5kLCAwKTsK
KyAgICB0cmFjZVBvaW50KFJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZlckVuZCwgMCk7CiAK
LSAgICBmbHVzaExheWVycygpOworICAgIHVwZGF0ZVJlbmRlcmluZygpOwogfQogCi12b2lkIFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjppbnZhbGlkYXRlTGF5ZXJGbHVzaFJ1bkxvb3BP
YnNlcnZlcigpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjppbnZhbGlkYXRl
UmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyKCkKIHsKLSAgICBpZiAoIW1fbGF5ZXJGbHVz
aFJ1bkxvb3BPYnNlcnZlci0+aXNTY2hlZHVsZWQoKSkKKyAgICBpZiAoIW1fcmVuZGVyVXBkYXRl
UnVuTG9vcE9ic2VydmVyLT5pc1NjaGVkdWxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICB0
cmFjZVBvaW50KExheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXJFbmQsIDEpOworICAgIHRyYWNlUG9p
bnQoUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyRW5kLCAxKTsKIAotICAgIG1fbGF5ZXJG
bHVzaFJ1bkxvb3BPYnNlcnZlci0+aW52YWxpZGF0ZSgpOworICAgIG1fcmVuZGVyVXBkYXRlUnVu
TG9vcE9ic2VydmVyLT5pbnZhbGlkYXRlKCk7CiB9CiAKLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OnNjaGVkdWxlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpCit2b2lkIFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZVJ1bkxv
b3BPYnNlcnZlcigpCiB7Ci0gICAgdHJhY2VQb2ludChMYXllckZsdXNoUnVuTG9vcE9ic2VydmVy
U3RhcnQpOworICAgIHRyYWNlUG9pbnQoUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyU3Rh
cnQpOwogICAgIAotICAgIG1fbGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlci0+c2NoZWR1bGUoQ0ZS
dW5Mb29wR2V0Q3VycmVudCgpKTsKKyAgICBtX3JlbmRlclVwZGF0ZVJ1bkxvb3BPYnNlcnZlci0+
c2NoZWR1bGUoQ0ZSdW5Mb29wR2V0Q3VycmVudCgpKTsKIH0KIAotYm9vbCBUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYTo6YWRqdXN0TGF5ZXJGbHVzaFRocm90dGxpbmcoTGF5ZXJGbHVzaFRo
cm90dGxlU3RhdGU6OkZsYWdzIGZsYWdzKQorYm9vbCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYTo6YWRqdXN0UmVuZGVyVXBkYXRlVGhyb3R0bGluZyhPcHRpb25TZXQ8UmVuZGVyaW5nVXBk
YXRlVGhyb3R0bGVTdGF0ZT4gZmxhZ3MpCiB7Ci0gICAgYm9vbCB3YXNUaHJvdHRsaW5nTGF5ZXJG
bHVzaGVzID0gbV9pc1Rocm90dGxpbmdMYXllckZsdXNoZXM7Ci0gICAgbV9pc1Rocm90dGxpbmdM
YXllckZsdXNoZXMgPSBmbGFncyAmIExheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpFbmFibGVkOwot
ICAgIG1faXNMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFj
dGlvbiA9IGZsYWdzICYgTGF5ZXJGbHVzaFRocm90dGxlU3RhdGU6OlVzZXJJc0ludGVyYWN0aW5n
OworICAgIGJvb2wgd2FzVGhyb3R0bGluZ1JlbmRlcmluZyA9IG1faXNUaHJvdHRsaW5nUmVuZGVy
aW5nVXBkYXRlczsKKyAgICBtX2lzVGhyb3R0bGluZ1JlbmRlcmluZ1VwZGF0ZXMgPSBmbGFncy5j
b250YWlucyhSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlOjpFbmFibGVkKTsKKyAgICBtX2lz
UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlv
biA9IGZsYWdzLmNvbnRhaW5zKFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU6OlVzZXJJc0lu
dGVyYWN0aW5nKTsKIAotICAgIGlmICh3YXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzID09IG1faXNU
aHJvdHRsaW5nTGF5ZXJGbHVzaGVzKQorICAgIGlmICh3YXNUaHJvdHRsaW5nUmVuZGVyaW5nID09
IG1faXNUaHJvdHRsaW5nUmVuZGVyaW5nVXBkYXRlcykKICAgICAgICAgcmV0dXJuIHRydWU7CiAK
LSAgICBtX2xheWVyRmx1c2hUaHJvdHRsaW5nVGltZXIuc3RvcCgpOworICAgIG1fcmVuZGVyVGhy
b3R0bGluZ1RpbWVyLnN0b3AoKTsKIAogICAgIGlmIChtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4p
CiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKG1faXNUaHJvdHRsaW5nTGF5ZXJGbHVz
aGVzKSB7Ci0gICAgICAgIGludmFsaWRhdGVMYXllckZsdXNoUnVuTG9vcE9ic2VydmVyKCk7Ci0g
ICAgICAgIHN0YXJ0TGF5ZXJGbHVzaFRocm90dGxpbmdUaW1lcigpOworICAgIGlmIChtX2lzVGhy
b3R0bGluZ1JlbmRlcmluZ1VwZGF0ZXMpIHsKKyAgICAgICAgaW52YWxpZGF0ZVJlbmRlcmluZ1Vw
ZGF0ZVJ1bkxvb3BPYnNlcnZlcigpOworICAgICAgICBzdGFydFJlbmRlclRocm90dGxpbmdUaW1l
cigpOwogICAgIH0gZWxzZQotICAgICAgICBzY2hlZHVsZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2
ZXIoKTsKKyAgICAgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIoKTsK
IAogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpsYXllckZsdXNoVGhyb3R0bGluZ0lzQWN0aXZlKCkgY29uc3QKK2Jvb2wgVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWE6OnJlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdJc0FjdGl2ZSgp
IGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzICYmICFtX2xh
eWVyVHJlZVN0YXRlSXNGcm96ZW47CisgICAgcmV0dXJuIG1faXNUaHJvdHRsaW5nUmVuZGVyaW5n
VXBkYXRlcyAmJiAhbV9sYXllclRyZWVTdGF0ZUlzRnJvemVuOwogfQogCi12b2lkIFRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzdGFydExheWVyRmx1c2hUaHJvdHRsaW5nVGltZXIoKQor
dm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c3RhcnRSZW5kZXJUaHJvdHRsaW5n
VGltZXIoKQogewotICAgIEFTU0VSVChtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyk7CisgICAg
QVNTRVJUKG1faXNUaHJvdHRsaW5nUmVuZGVyaW5nVXBkYXRlcyk7CiAKICAgICBjb25zdCBhdXRv
IHRocm90dGxlZEZsdXNoRGVsYXkgPSA1MDBfbXM7Ci0gICAgbV9sYXllckZsdXNoVGhyb3R0bGlu
Z1RpbWVyLnN0YXJ0T25lU2hvdCh0aHJvdHRsZWRGbHVzaERlbGF5KTsKKyAgICBtX3JlbmRlclRo
cm90dGxpbmdUaW1lci5zdGFydE9uZVNob3QodGhyb3R0bGVkRmx1c2hEZWxheSk7CiB9CiAKLXZv
aWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmxheWVyRmx1c2hUaHJvdHRsaW5nVGlt
ZXJGaXJlZCgpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpyZW5kZXJUaHJv
dHRsaW5nVGltZXJGaXJlZCgpCiB7CiAgICAgaWYgKG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbikK
ICAgICAgICAgcmV0dXJuOwotICAgIHNjaGVkdWxlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigp
OworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyKCk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCA0MjVhYmZjMWE5MTcxOWI4
ZDI1Y2RlYjc1OTk0ZTU4ZTE2NjRlYTllLi4xYmFmYWYwODQzNTFiNmU1NzQwZDY5YmM1ZjQ5NGJi
YzBjZmE4NTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTY5LDcgKzE2OSw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihXZWJDb3JlOjpGcmFtZSYsIFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKICAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5
R3JhcGhpY3NMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgZmluYWw7CiAgICAgdm9pZCBz
ZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgZmluYWw7Ci0gICAgdm9pZCBz
Y2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIGZpbmFsOworICAgIHZvaWQgc2NoZWR1bGVS
ZW5kZXJpbmdVcGRhdGUoKSBmaW5hbDsKICAgICBib29sIG5lZWRzSW1tZWRpYXRlUmVuZGVyaW5n
VXBkYXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgQ29tcG9zaXRpbmdU
cmlnZ2VyRmxhZ3MgYWxsb3dlZENvbXBvc2l0aW5nVHJpZ2dlcnMoKSBjb25zdCBmaW5hbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lm1tCmluZGV4IDNiNWZiODJlMjBhZWNjMDgyZGFkN2JlNGI5NDEwMTg2OTYzMWFm
YmQuLjg5ZTAxNDJjYTAxODY2Y2ZmYjY1MWNmZGNiOTM5NjQ3ZmZhOWQ5M2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0KQEAgLTk0MiwxMCArOTQyLDEwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXRO
ZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkKICAgICBFTkRfQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVDb21wb3NpdGlu
Z0xheWVyRmx1c2goKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlUmVuZGVyaW5nVXBk
YXRlKCkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7Ci0gICAgW21fd2ViVmll
dyBfc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2hdOworICAgIFttX3dlYlZpZXcgX3NjaGVk
dWxlVXBkYXRlUmVuZGVyaW5nXTsKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0g
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggZGZlNjYz
ZmM5YjVlZjI4OTdhZGQ0ODlmNTIxMzYwODZhYmY4MzI1OS4uNzg1MDE5MGU0MWNhMDMwMWNmYzMy
NGY1ZWQwZGJjZTdkYWI4MjQ1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQpAQCAtOTI4OCw3ICs5Mjg4LDcgQEAgYm9vbCBMYXllckZsdXNoQ29udHJvbGxl
cjo6Zmx1c2hMYXllcnMoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotLSAodm9pZClfc2NoZWR1
bGVDb21wb3NpdGluZ0xheWVyRmx1c2gKKy0gKHZvaWQpX3NjaGVkdWxlVXBkYXRlUmVuZGVyaW5n
CiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBpZiAoX3ByaXZhdGUtPmNsb3Npbmcp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRh
LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKaW5kZXgg
NjgwMzdjMDZlZmI3ODg3YzRiZDVjMjUzYWE2OWFkNDJmM2RlNmRhYy4uZTJmZGU0NTY1NjM2OGNk
NGRjMmM2ZDBlZjRmYjY1YTJiYTMyMTQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlld0RhdGEuaApAQCAtMTMwLDYgKzEzMCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgTGF5ZXJGbHVzaENvbnRyb2xsZXIod2ViVmlldykpOwog
ICAgIH0KICAgICAKKyAgICAvLyBGSVhNRTogUmVuYW1lIHRvIHVzZSAndXBkYXRlUmVuZGVyaW5n
JyB0ZXJtaW5vbG9neS4KICAgICBib29sIGZsdXNoTGF5ZXJzKCk7CiAgICAgCiAgICAgdm9pZCBz
Y2hlZHVsZUxheWVyRmx1c2goKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFj
L1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJW
aWV3L1dlYlZpZXdJbnRlcm5hbC5oCmluZGV4IDhlYzc5OTk5ZTM5YWJlN2Y4MWJmMzU0ZmYxOTM3
ODFiNjkyZTllODYuLjU2YzhkNTYyOTBkZGNlYTRhOGM5YzBkYzAyZjA4ZmU5YTRiODg4OGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFs
LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwu
aApAQCAtMTI4LDcgKzEyOCw3IEBAIE9CSkNfQ0xBU1MgTlNUZXh0QWx0ZXJuYXRpdmVzOwogCiAt
IChCT09MKV9uZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uOwogLSAodm9pZClfc2V0
TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbjooQk9PTCluZWVkc1N5bmNocm9uaXph
dGlvbjsKLS0gKHZvaWQpX3NjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoOworLSAodm9pZClf
c2NoZWR1bGVVcGRhdGVSZW5kZXJpbmc7CiAtIChCT09MKV9mbHVzaENvbXBvc2l0aW5nQ2hhbmdl
czsKIAogI2lmIFVTRShBVVRPQ09SUkVDVElPTl9QQU5FTCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3NzZhNzdlNzc1ZWJjNTcxZWIwMmFlZDVk
YTEzZjcxZjZiYzBlZTIzLi44M2M0MzJmMzc2ZTY3OGY3ZWZjMDg3OWYzZmE1ZmM4YmY1ZDk0OTE3
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMjAtMDItMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgTW92ZSBmcm9tICJsYXllciBmbHVzaCIgdGVybWlub2xvZ3kgdG8g
InJlbmRlcmluZyB1cGRhdGUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMDc4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW5hbWUgdmFyaW91cyBmdW5jdGlvbnMgYW5kIG1lbWJlciB2YXJpYWJsZXMg
dG8gbW92ZSBhd2F5IGZyb20gdGhlIGxlZ2FjeSAibGF5ZXIgZmx1c2giCisgICAgICAgIHRlcm1p
bm9sb2d5IGFuZCBpbnN0ZWFkIHVzZSAicmVuZGVyaW5nIHVwZGF0ZSIsIG1hdGNoaW5nIFBhZ2U6
OnVwZGF0ZVJlbmRlcmluZygpLiBUaGUgZmFjdAorICAgICAgICB0aGF0IHdlIGhhdmUgbGF5ZXJz
IGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbC4KKyAgICAgICAgCisgICAgICAgIENoYW5nZSBM
YXllckZsdXNoVGhyb3R0bGluZ1N0YXRlIHRvIGJlIGFuIE9wdGlvblNldDw+LgorCisgICAgICAg
ICogVHJhY2luZy9TeXN0ZW1UcmFjZVBvaW50cy5wbGlzdDoKKwogMjAyMC0wMi0xNyAgQWFrYXNo
IEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRVdTIHNob3VsZCBiZSBh
YmxlIHRvIGNvbW1lbnQgb24gQnVnemlsbGEKZGlmZiAtLWdpdCBhL1Rvb2xzL1RyYWNpbmcvU3lz
dGVtVHJhY2VQb2ludHMucGxpc3QgYi9Ub29scy9UcmFjaW5nL1N5c3RlbVRyYWNlUG9pbnRzLnBs
aXN0CmluZGV4IDFlM2IyYmIyNTQwNjhiNjljNGRkZjBjZTA2MDUyMTBhYTViNDg0N2EuLjJiNTNi
NDJjZWViOWJmN2QzYzcyOTY2ZjJiZGEyYjkzMWI2ZmY4NGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Ry
YWNpbmcvU3lzdGVtVHJhY2VQb2ludHMucGxpc3QKKysrIGIvVG9vbHMvVHJhY2luZy9TeXN0ZW1U
cmFjZVBvaW50cy5wbGlzdApAQCAtMzU5LDcgKzM1OSw3IEBACiAgICAgICAgICAgICAgPC9kaWN0
PgogICAgICAgICAgICAgIDxkaWN0PgogICAgICAgICAgICAgICAgICA8a2V5Pk5hbWU8L2tleT4K
LSAgICAgICAgICAgICAgICAgPHN0cmluZz5MYXllciBmbHVzaCBydW5sb29wIG9ic2VydmVyPC9z
dHJpbmc+CisgICAgICAgICAgICAgICAgIDxzdHJpbmc+UmVuZGVyaW5nIHVwZGF0ZSBydW5sb29w
IG9ic2VydmVyPC9zdHJpbmc+CiAgICAgICAgICAgICAgICAgIDxrZXk+VHlwZTwva2V5PgogICAg
ICAgICAgICAgICAgICA8c3RyaW5nPkludGVydmFsPC9zdHJpbmc+CiAgICAgICAgICAgICAgICAg
IDxrZXk+Q29tcG9uZW50PC9rZXk+Cg==
</data>
<flag name="review"
          id="406576"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391010</attachid>
            <date>2020-02-17 17:32:12 -0800</date>
            <delta_ts>2020-02-17 19:00:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207870-20200217173212.patch</filename>
            <type>text/plain</type>
            <size>77578</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2NzQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGQ4NjNjNjU2ZWQyYmM5MDZkZWQyN2I1
YTg2YWI3YzdlZjBhNGUyMjMuLmRiNjZjODg2Y2E4OTNkZWQyNjJmMzljMWU4YjZhN2JmZjNlMzVk
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDItMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBmcm9tICJsYXllciBmbHVzaCIgdGVy
bWlub2xvZ3kgdG8gInJlbmRlcmluZyB1cGRhdGUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0g
SG9ydG9uLgorCisgICAgICAgICogd3RmL1N5c3RlbVRyYWNpbmcuaDoKKwogMjAyMC0wMi0xNyAg
VsOtY3RvciBNYW51ZWwgSsOhcXVleiBMZWFsICA8dmphcXVlekBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIGEgbG90IGdjYyB3YXJuaW5ncyBiZWNhdXNlIG9mICV7cHVibGljfXMgZm9ybWF0IHNwZWNp
ZmllcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDIzMWM3YThjMDU4OTJjY2Y0ZGE0ZGUwNjA0YThjNjZkNGI2ZmQ5
MDQuLjYzNDQxNjNiMWNmZjNmNmViNDQ5MTIyYmM1NmQ0MjJkNWY3ZDMyNmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNSBAQAorMjAyMC0wMi0xNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIGZyb20gImxheWVyIGZsdXNoIiB0ZXJtaW5vbG9n
eSB0byAicmVuZGVyaW5nIHVwZGF0ZSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNzg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24u
CisKKyAgICAgICAgUmVuYW1lIHZhcmlvdXMgZnVuY3Rpb25zIGFuZCBtZW1iZXIgdmFyaWFibGVz
IHRvIG1vdmUgYXdheSBmcm9tIHRoZSBsZWdhY3kgImxheWVyIGZsdXNoIgorICAgICAgICB0ZXJt
aW5vbG9neSBhbmQgaW5zdGVhZCB1c2UgInJlbmRlcmluZyB1cGRhdGUiLCBtYXRjaGluZyBQYWdl
Ojp1cGRhdGVSZW5kZXJpbmcoKS4gVGhlIGZhY3QKKyAgICAgICAgdGhhdCB3ZSBoYXZlIGxheWVy
cyBpcyBhbiBpbXBsZW1lbnRhdGlvbiBkZXRhaWwuCisgICAgICAgIAorICAgICAgICBDaGFuZ2Ug
TGF5ZXJGbHVzaFRocm90dGxpbmdTdGF0ZSB0byBiZSBhbiBPcHRpb25TZXQ8Pi4KKworICAgICAg
ICAqIEhlYWRlcnMuY21ha2U6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpE
b2N1bWVudDo6c2NoZWR1bGVTdHlsZVJlY2FsYyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVu
dDo6c2hvdWxkU2NoZWR1bGVMYXlvdXQpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMu
aDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lQ2xpZW50OjpyZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nSXNBY3RpdmUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjphZGp1c3RSZW5kZXJVcGRhdGVUaHJvdHRsaW5n
KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6bGF5ZXJGbHVzaFRocm90dGxpbmdJ
c0FjdGl2ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6
OmFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkZXRlcm1pbmVMYXllckZsdXNoVGhyb3R0
bGVTdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmRpc2FibGVMYXllckZsdXNo
VGhyb3R0bGluZ1RlbXBvcmFyaWx5Rm9ySW50ZXJhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3Ojp1cGRhdGVMYXllckZsdXNoVGhyb3R0bGluZyk6CisgICAgICAgICogcGFnZS9S
ZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyaW5n
VXBkYXRlU2NoZWR1bGVyOjpzY2hlZHVsZUltbWVkaWF0ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAg
ICAgICogcGFnZS9SZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlLmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvV2ViQ29yZS9wYWdlL0xheWVyRmx1c2hUaHJvdHRsZVN0YXRlLmguCisKIDIwMjAtMDIt
MTcgIFbDrWN0b3IgTWFudWVsIErDoXF1ZXogTGVhbCAgPHZqYXF1ZXpAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBhIGxvdCBnY2Mgd2FybmluZ3MgYmVjYXVzZSBvZiAle3B1YmxpY31zIGZvcm1hdCBz
cGVjaWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggYmRlM2E4YjA3ODJjOGE0YTBhN2IzNTIzNTI2MzhmN2MwZjY2
YjI0MC4uOGRjMWRlYjlhZDQ4YjkyYmU3ZWQ5Y2Y0N2Q3NmI4NzU5ZDMxNjViZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw5NSBAQAorMjAyMC0wMi0xNyAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2Vy
QGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIGZyb20gImxheWVyIGZsdXNoIiB0ZXJtaW5vbG9n
eSB0byAicmVuZGVyaW5nIHVwZGF0ZSIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIwNzg3MAorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24u
CisgICAgICAgIAorICAgICAgICBSZW5hbWUgdmFyaW91cyBmdW5jdGlvbnMgYW5kIG1lbWJlciB2
YXJpYWJsZXMgdG8gbW92ZSBhd2F5IGZyb20gdGhlIGxlZ2FjeSAibGF5ZXIgZmx1c2giCisgICAg
ICAgIHRlcm1pbm9sb2d5IGFuZCBpbnN0ZWFkIHVzZSAicmVuZGVyaW5nIHVwZGF0ZSIsIG1hdGNo
aW5nIFBhZ2U6OnVwZGF0ZVJlbmRlcmluZygpLiBUaGUgZmFjdAorICAgICAgICB0aGF0IHdlIGhh
dmUgbGF5ZXJzIGlzIGFuIGltcGxlbWVudGF0aW9uIGRldGFpbC4KKyAgICAgICAgCisgICAgICAg
IENoYW5nZSBMYXllckZsdXNoVGhyb3R0bGluZ1N0YXRlIHRvIGJlIGFuIE9wdGlvblNldDw+Lgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlUmVuZGVyaW5nVXBk
YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjphZGp1c3RSZW5kZXJVcGRh
dGVUaHJvdHRsaW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpyZW5kZXJp
bmdVcGRhdGVUaHJvdHRsaW5nSXNBY3RpdmUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
aHJvbWVDbGllbnQ6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjphZGp1c3RMYXllckZsdXNoVGhyb3R0bGlu
Zyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6bGF5ZXJGbHVz
aFRocm90dGxpbmdJc0FjdGl2ZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OnJl
bmRlcmluZ1VwZGF0ZVRocm90dGxpbmdJc0FjdGl2ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6
OkRyYXdpbmdBcmVhOjphZGp1c3RSZW5kZXJVcGRhdGVUaHJvdHRsaW5nKToKKyAgICAgICAgKFdl
YktpdDo6RHJhd2luZ0FyZWE6OmxheWVyRmx1c2hUaHJvdHRsaW5nSXNBY3RpdmUgY29uc3QpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6YWRqdXN0TGF5ZXJGbHVzaFRo
cm90dGxpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6bGF5ZXJI
b3N0RGlkRmx1c2hMYXllcnMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVMYXllclRyZWVDb250ZXh0OjpzZXROZXh0Rmx1c2hJc0ZvckltbWVkaWF0ZVBh
aW50KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlQ29udGV4dDo6bmV4dEZsdXNo
SXNGb3JJbW1lZGlhdGVQYWludCBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW06
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcjo6
cmVxdWVzdFJlZnJlc2hDYWxsYmFjayk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhOjpzZXRSb290Q29tcG9zaXRpbmdMYXllcik6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzZXRMYXllclRyZWVTdGF0ZUlzRnJv
emVuKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZvcmNl
UmVwYWludCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpz
ZXRFeHBvc2VkQ29udGVudFJlY3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYTo6c2NoZWR1bGVJbW1lZGlhdGVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2NoZWR1bGVJbml0aWFsRGVmZXJy
ZWRQYWludCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpz
Y2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhOjphZGp1c3RSZW5kZXJVcGRhdGVUaHJvdHRsaW5nKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmluZyk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpkaWRVcGRhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6YWN0aXZpdHlTdGF0ZURp
ZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjph
ZGRUcmFuc2FjdGlvbkNhbGxiYWNrSUQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpz
Y2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjphZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpm
bHVzaExheWVycyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KToK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnNjaGVkdWxlRnVsbEVkaXRvclN0YXRlVXBkYXRlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OmR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tOgor
ICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6VGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYTo6flRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhKToKKyAgICAgICAg
KFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmZvcmNlUmVwYWludCk6Cisg
ICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRMYXllclRy
ZWVTdGF0ZUlzRnJvemVuKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWE6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6VGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNjaGVkdWxlSW1tZWRpYXRlUmVuZGVyaW5nVXBk
YXRlKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmF0
dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzZXRTaG91bGRTY2FsZVZpZXdUb0ZpdERvY3VtZW50KToK
KyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmRpc3BhdGNo
QWZ0ZXJFbnN1cmluZ1VwZGF0ZWRTY3JvbGxQb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjphZGRUcmFuc2FjdGlvbkNhbGxiYWNrSUQpOgor
ICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlUmVu
ZGVyaW5nKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OnN1c3BlbmRQYWludGluZyk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeSk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjphcHBseVRyYW5zaWVudFpvb21Ub1BhZ2UpOgorICAgICAgICAo
V2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlUmVuZGVyaW5nUnVu
TG9vcENhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6OmludmFsaWRhdGVSZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIpOgorICAgICAg
ICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NoZWR1bGVSZW5kZXJp
bmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYTo6YWRqdXN0UmVuZGVyVXBkYXRlVGhyb3R0bGluZyk6CisgICAgICAg
IChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpyZW5kZXJpbmdVcGRhdGVU
aHJvdHRsaW5nSXNBY3RpdmUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYTo6c3RhcnRSZW5kZXJUaHJvdHRsaW5nVGltZXIpOgorICAgICAgICAo
V2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6cmVuZGVyVGhyb3R0bGluZ1Rp
bWVyRmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2gpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NoZWR1bGVDb21wb3NpdGluZ0xh
eWVyRmx1c2hJbW1lZGlhdGVseSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmbHVzaExheWVycyk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpsYXllckZsdXNoUnVuTG9vcENh
bGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWE6OmludmFsaWRhdGVMYXllckZsdXNoUnVuTG9vcE9ic2VydmVyKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNjaGVkdWxl
TGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjphZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
OjpsYXllckZsdXNoVGhyb3R0bGluZ0lzQWN0aXZlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnN0YXJ0TGF5ZXJGbHVzaFRo
cm90dGxpbmdUaW1lcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhOjpsYXllckZsdXNoVGhyb3R0bGluZ1RpbWVyRmlyZWQpOiBEZWxldGVk
LgorCiAyMDIwLTAyLTE3ICBWw61jdG9yIE1hbnVlbCBKw6FxdWV6IExlYWwgIDx2amFxdWV6QGln
YWxpYS5jb20+CiAKICAgICAgICAgYSBsb3QgZ2NjIHdhcm5pbmdzIGJlY2F1c2Ugb2YgJXtwdWJs
aWN9cyBmb3JtYXQgc3BlY2lmaWVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggY2Fj
MDg3MGRiNTA2M2FjODk5NDQ2ODNiNjZjZDAzMGE5ODk1YWJjYS4uMDg2YmNjYWY2NGQyMmVhZDEx
NjNkMzFlNTQ0NDk2NzBhZGRlZWNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI2IEBACisyMDIwLTAyLTE3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgorCisgICAgICAgIE1vdmUgZnJvbSAibGF5ZXIgZmx1c2giIHRlcm1pbm9sb2d5IHRv
ICJyZW5kZXJpbmcgdXBkYXRlIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA3ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKwor
ICAgICAgICBSZW5hbWUgdmFyaW91cyBmdW5jdGlvbnMgYW5kIG1lbWJlciB2YXJpYWJsZXMgdG8g
bW92ZSBhd2F5IGZyb20gdGhlIGxlZ2FjeSAibGF5ZXIgZmx1c2giCisgICAgICAgIHRlcm1pbm9s
b2d5IGFuZCBpbnN0ZWFkIHVzZSAicmVuZGVyaW5nIHVwZGF0ZSIsIG1hdGNoaW5nIFBhZ2U6OnVw
ZGF0ZVJlbmRlcmluZygpLiBUaGUgZmFjdAorICAgICAgICB0aGF0IHdlIGhhdmUgbGF5ZXJzIGlz
IGFuIGltcGxlbWVudGF0aW9uIGRldGFpbC4KKyAgICAgICAgCisgICAgICAgIENoYW5nZSBMYXll
ckZsdXNoVGhyb3R0bGluZ1N0YXRlIHRvIGJlIGFuIE9wdGlvblNldDw+LgorCisgICAgICAgICog
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVs
ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQ29t
cG9zaXRpbmdMYXllckZsdXNoKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcu
bW06CisgICAgICAgICgtW1dlYlZpZXcgX3NjaGVkdWxlVXBkYXRlUmVuZGVyaW5nXSk6CisgICAg
ICAgICgtW1dlYlZpZXcgX3NjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoXSk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2Vi
Vmlld0ludGVybmFsLmg6CisKIDIwMjAtMDItMTQgIEpvbiBMZWUgIDxqb25sZWVAYXBwbGUuY29t
PgogCiAgICAgICAgIE1hc2sgV2ViR0wgc3RyaW5ncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvU3lzdGVtVHJhY2luZy5oIGIvU291cmNlL1dURi93dGYvU3lzdGVtVHJhY2luZy5oCmluZGV4
IGZlNzUyZTJjYWZjZGQwNGMzN2NhMzA2NjcxODAxYmZkMmRhMGNlNzcuLjBiZjVkZDlkNDAwZTg1
MGM0NjQ0YmUxMDRmZDJkMmYyN2U0YjFkZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1N5
c3RlbVRyYWNpbmcuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9TeXN0ZW1UcmFjaW5nLmgKQEAgLTEw
Miw4ICsxMDIsOCBAQCBlbnVtIFRyYWNlUG9pbnRDb2RlIHsKICAgICBTeW5jVG91Y2hFdmVudEVu
ZCwKICAgICBJbml0aWFsaXplV2ViUHJvY2Vzc1N0YXJ0LAogICAgIEluaXRpYWxpemVXZWJQcm9j
ZXNzRW5kLAotICAgIExheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXJTdGFydCwKLSAgICBMYXllckZs
dXNoUnVuTG9vcE9ic2VydmVyRW5kLAorICAgIFJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZl
clN0YXJ0LAorICAgIFJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZlckVuZCwKICAgICBMYXll
clRyZWVGcmVlemVTdGFydCwKICAgICBMYXllclRyZWVGcmVlemVFbmQsCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCmluZGV4IGViNDQzMWRkZDcxOWY4ZDFmN2NiNzQ3M2YyMmY1YjI1Mzc3ODUzMGMuLmI3ZDVi
YTVmOGJkYjZlZDg4NzEwOTU2YmVmYzJlY2U1NjI1NDY2NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpA
QCAtODEwLDcgKzgxMCw2IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMK
ICAgICBwYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaAogICAgIHBhZ2UvR2xvYmFsRnJhbWVJ
ZGVudGlmaWVyLmgKICAgICBwYWdlL0dsb2JhbFdpbmRvd0lkZW50aWZpZXIuaAotICAgIHBhZ2Uv
TGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaAogICAgIHBhZ2UvTGF5b3V0TWlsZXN0b25lLmgKICAg
ICBwYWdlL01lZGlhQ2FuU3RhcnRMaXN0ZW5lci5oCiAgICAgcGFnZS9NZWRpYVByb2R1Y2VyLmgK
QEAgLTgzNiw2ICs4MzUsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJT
CiAgICAgcGFnZS9SZW1vdGVET01XaW5kb3cuaAogICAgIHBhZ2UvUmVtb3RlRnJhbWUuaAogICAg
IHBhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmgKKyAgICBwYWdlL1JlbmRlcmluZ1VwZGF0
ZVRocm90dGxlU3RhdGUuaAogICAgIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCiAgICAg
cGFnZS9TY3JvbGxCZWhhdmlvci5oCiAgICAgcGFnZS9TY3JvbGxJbnRvVmlld09wdGlvbnMuaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGNkYWFkMjM2OTA0MWYzZDMyZTIyMTA1MTZmMTA3OGJmY2I4NDE3MjYuLjU4YjUwYWJhODAz
ZjY3N2Q0OTU2NzdhYjgwNWE4MjFmZjA4YzY3YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ4NzMsNyArNDg3Myw3IEBACiAJ
CUU0ODRBMzNFMjMwNTUzMjUwMDlBREU2QSAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDg0QTMzQjIzMDU1MzAz
MDA5QURFNkEgLyogTGluZUxheW91dFRyYXZlcnNhbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0ODYzQ0ZFMjM4NDJFOUUwMDk3MjE1OCAvKiBS
dWxlRGF0YS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTQ4NjNDRkQyMzg0MkU5RTAwOTcyMTU4IC8qIFJ1bGVEYXRhLmggKi87IH07CiAJCUU0ODk0NEEz
MTgwQjU3RDgwMEYxNjVEOCAvKiBTaW1wbGVMaW5lTGF5b3V0LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDg5NDRBMTE4MEI1N0Q4MDBGMTY1RDggLyog
U2ltcGxlTGluZUxheW91dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCUU0OTE2RkY3MTk1REY2QTAwMDVBQjM0OSAvKiBMYXllckZsdXNoVGhyb3R0
bGVTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RTQ5MTZGRjYxOTVERjZBMDAwNUFCMzQ5IC8qIExheWVyRmx1c2hUaHJvdHRsZVN0YXRlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRTQ5MTZGRjcx
OTVERjZBMDAwNUFCMzQ5IC8qIFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGUuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0OTE2RkY2MTk1REY2QTAw
MDVBQjM0OSAvKiBSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQ5NDZFQUYxNTZFNjRERDAwRDMy
OTdGIC8qIFN0eWxlUnVsZUltcG9ydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTQ5NDZFQUQxNTZFNjRERDAwRDMyOTdGIC8qIFN0eWxlUnVsZUltcG9y
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0
OUJEOUZBMTMxRkQyRUQwMDNDNTZGMCAvKiBDU1NWYWx1ZVBvb2wuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0OUJEOUY5MTMxRkQyRUQwMDNDNTZGMCAv
KiBDU1NWYWx1ZVBvb2wuaCAqLzsgfTsKIAkJRTRBNzk5NTIyMEVFNEIxNDAwQzE5NTY4IC8qIENT
U1BhcnNlckNvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU0QTc5OTRFMjBFRTRBRTEwMEMxOTU2OCAvKiBDU1NQYXJzZXJDb250ZXh0LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTE1MjU0LDcg
KzE1MjU0LDcgQEAKIAkJRTQ4NjNDRkQyMzg0MkU5RTAwOTcyMTU4IC8qIFJ1bGVEYXRhLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJ1bGVEYXRhLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUU0ODk0NEEwMTgwQjU3RDgwMEYxNjVEOCAvKiBTaW1wbGVMaW5lTGF5
b3V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNpbXBsZUxpbmVM
YXlvdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDg5NDRBMTE4MEI1N0Q4
MDBGMTY1RDggLyogU2ltcGxlTGluZUxheW91dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTaW1wbGVMaW5lTGF5b3V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUU0OTE2RkY2MTk1REY2QTAwMDVBQjM0OSAvKiBMYXllckZsdXNoVGhyb3R0bGVTdGF0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXllckZsdXNoVGhyb3R0bGVTdGF0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFNDkxNkZGNjE5NURGNkEwMDA1QUIzNDkg
LyogUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUU0OTQ2RUFDMTU2RTY0REQwMEQzMjk3RiAvKiBTdHlsZVJ1bGVJbXBv
cnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU3R5bGVSdWxlSW1w
b3J0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ5NDZFQUQxNTZFNjRERDAw
RDMyOTdGIC8qIFN0eWxlUnVsZUltcG9ydC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBTdHlsZVJ1bGVJbXBvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ5
QkQ5RjkxMzFGRDJFRDAwM0M1NkYwIC8qIENTU1ZhbHVlUG9vbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDU1NWYWx1ZVBvb2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTIwNjM4LDcgKzIwNjM4LDYgQEAKIAkJCQkwRjQ3MTBEODFEQjZGRTIyMDAyRENFQzMg
LyogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeS5jcHAgKi8sCiAJCQkJMEY0NzEwRDkxREI2RkUy
MjAwMkRDRUMzIC8qIEludGVyc2VjdGlvbk9ic2VydmVyRW50cnkuaCAqLywKIAkJCQkwRjQ3MTBE
QTFEQjZGRTIyMDAyRENFQzMgLyogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeS5pZGwgKi8sCi0J
CQkJRTQ5MTZGRjYxOTVERjZBMDAwNUFCMzQ5IC8qIExheWVyRmx1c2hUaHJvdHRsZVN0YXRlLmgg
Ki8sCiAJCQkJOTMxRDcyRjUxNUZFNjk1MzAwQzRDMDdFIC8qIExheW91dE1pbGVzdG9uZS5oICov
LAogCQkJCUJDRTFDNDFBMEQ5ODI5ODAwMDNCMDJGMiAvKiBMb2NhdGlvbi5jcHAgKi8sCiAJCQkJ
QkNFMUM0MTkwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmggKi8sCkBAIC0yMDc0Myw2ICsy
MDc0Miw3IEBACiAJCQkJNDZCOTUxOTIyMDdENjMyRTAwQTdEMkREIC8qIFJlbW90ZUZyYW1lLmgg
Ki8sCiAJCQkJNTU2QzdDNDkyMjEyMzk0MzAwOUIwNkNBIC8qIFJlbmRlcmluZ1VwZGF0ZVNjaGVk
dWxlci5jcHAgKi8sCiAJCQkJNTU2QzdDNDcyMjEyMzk0MjAwOUIwNkNBIC8qIFJlbmRlcmluZ1Vw
ZGF0ZVNjaGVkdWxlci5oICovLAorCQkJCUU0OTE2RkY2MTk1REY2QTAwMDVBQjM0OSAvKiBSZW5k
ZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlLmggKi8sCiAJCQkJNThCMkY5RjIyMjMyRDQzRjAwOTM4
RDYzIC8qIFJlc2l6ZU9ic2VydmF0aW9uLmNwcCAqLywKIAkJCQk1OEIyRjlGMzIyMzJENDNGMDA5
MzhENjMgLyogUmVzaXplT2JzZXJ2YXRpb24uaCAqLywKIAkJCQk1OEIyRjlFRjIyMzJENDNEMDA5
MzhENjMgLyogUmVzaXplT2JzZXJ2ZXIuY3BwICovLApAQCAtMzEyNjAsNyArMzEyNjAsNiBAQAog
CQkJCTQ1MENFQkYxMTUwNzNCQkUwMDJCQjE0OSAvKiBMYWJlbGFibGVFbGVtZW50LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNDU2RkEyNzExQUQ0QTgzMDAyMEI0MjAgLyogTGFiZWxzTm9kZUxpc3Qu
aCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUMxMjBDMjJCRjJDRDIwMDRFOUQzNSAvKiBMYXllckFu
Y2VzdG9yQ2xpcHBpbmdTdGFjay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ5MTZGRjcxOTVERjZB
MDAwNUFCMzQ5IC8qIExheWVyRmx1c2hUaHJvdHRsZVN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk1ODAzNzE2NDFBNjZGMUQzMDBCQUY1MTkgLyogTGF5ZXJGcmFnbWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0FBM0E2QTAxOTRCNTlCNjAwMUNCRDI0IC8qIExheWVyUG9vbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTEzMTBDRjcyMEJBNEE2MjAwNjVBOEQwIC8qIExheW91dEFuY2VzdG9ySXRl
cmF0b3IuaCBpbiBIZWFkZXJzICovLApAQCAtMzE5MTksNiArMzE5MTgsNyBAQAogCQkJCTA4NjQx
RDQ4MTIxNDJGN0QwMDhERTlGNiAvKiBSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNzI5OUJDNjgyM0Q2QTUzRTAwQ0M2ODgzIC8qIFJlbmRlcmluZ01v
ZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTU1NkM3QzRCMjIxMjM5OTcwMDlCMDZDQSAvKiBSZW5k
ZXJpbmdVcGRhdGVTY2hlZHVsZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0OTE2RkY3MTk1REY2
QTAwMDVBQjM0OSAvKiBSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQ0VBNDg3ODA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVySW5saW5lLmggaW4gSGVh
ZGVycyAqLywKIAkJCQlCNTk1RkY0NzE4MjRDRUUzMDBGRjUxQ0QgLyogUmVuZGVySXRlcmF0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUE0ODdBMDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJM
YXllci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAwMmE2NTM0
N2FjNDllZjAxMmIxOWIzODY3ZTkzOTUwNzk2ZWQ4YmZhLi5jNmM0MWE2OTI2YzEwNjMwM2MyOWJi
NTgwMDAwOTQ4ZWE3MzU5ZjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTE4NzQsNyAr
MTg3NCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnNjaGVkdWxlU3R5bGVSZWNhbGMoKQogICAgIGF1dG8g
c2hvdWxkVGhyb3R0bGVTdHlsZVJlY2FsYyA9IFsmXSB7CiAgICAgICAgIGlmICghdmlldygpIHx8
ICF2aWV3KCktPmlzVmlzdWFsbHlOb25FbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICBpZiAoIXBhZ2UoKSB8fCAhcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5sYXll
ckZsdXNoVGhyb3R0bGluZ0lzQWN0aXZlKCkpCisgICAgICAgIGlmICghcGFnZSgpIHx8ICFwYWdl
KCktPmNocm9tZSgpLmNsaWVudCgpLnJlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdJc0FjdGl2ZSgp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
OwpAQCAtMzEzNCw3ICszMTM0LDcgQEAgYm9vbCBEb2N1bWVudDo6c2hvdWxkU2NoZWR1bGVMYXlv
dXQoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKHN0eWxlU2NvcGUoKS5oYXNQZW5k
aW5nU2hlZXRzQmVmb3JlQm9keSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKHBh
Z2UoKSAmJiBwYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmxheWVyRmx1c2hUaHJvdHRsaW5nSXNB
Y3RpdmUoKSAmJiB2aWV3KCkgJiYgdmlldygpLT5pc1Zpc3VhbGx5Tm9uRW1wdHkoKSkKKyAgICBp
ZiAocGFnZSgpICYmIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkucmVuZGVyaW5nVXBkYXRlVGhy
b3R0bGluZ0lzQWN0aXZlKCkgJiYgdmlldygpICYmIHZpZXcoKS0+aXNWaXN1YWxseU5vbkVtcHR5
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDc4OTU3YmIwYzdmOGJlZTIwYzU3MDA3OTAwYTlm
NzhlMmRkZWM3MDEuLmI2MDc0YjE1MzM0OTg5YTc2ZTM1YjQ1NTg0ZTgxODA3ZWE1MTg1MGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTE1MCw3ICsxNTAsNyBAQCBjbGFz
cyBFbXB0eUNocm9tZUNsaWVudCA6IHB1YmxpYyBDaHJvbWVDbGllbnQgewogICAgIHZvaWQgYXR0
YWNoUm9vdEdyYXBoaWNzTGF5ZXIoRnJhbWUmLCBHcmFwaGljc0xheWVyKikgZmluYWwgeyB9CiAg
ICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoR3JhcGhpY3NMYXllciopIGZp
bmFsIHsgfQogICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigp
IGZpbmFsIHsgfQotICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBmaW5h
bCB7IH0KKyAgICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkgZmluYWwgeyB9CiAKICNp
ZiBQTEFURk9STShXSU4pCiAgICAgdm9pZCBzZXRMYXN0U2V0Q3Vyc29yVG9DdXJyZW50Q3Vyc29y
KCkgZmluYWwgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCA5ODliYWY0YTdk
N2YzMzU0NTkzMmJkOTMwNDNlZjQzYmE3YWE1MTJhLi5kMmY0MmExM2I2YTM0Nzk5OWM3ZDY5MDRi
OTAwNzY3ODFlODEyYWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTM3LDEy
ICszNywxMiBAQAogI2luY2x1ZGUgIkhvc3RXaW5kb3cuaCIKICNpbmNsdWRlICJJY29uLmgiCiAj
aW5jbHVkZSAiSW5wdXRNb2RlLmgiCi0jaW5jbHVkZSAiTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUu
aCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCiAjaW5jbHVkZSAiUG9wdXBNZW51LmgiCiAj
aW5jbHVkZSAiUG9wdXBNZW51Q2xpZW50LmgiCiAjaW5jbHVkZSAiUmVnaXN0cmFibGVEb21haW4u
aCIKICNpbmNsdWRlICJSZW5kZXJFbWJlZGRlZE9iamVjdC5oIgorI2luY2x1ZGUgIlJlbmRlcmlu
Z1VwZGF0ZVRocm90dGxlU3RhdGUuaCIKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5oIgogI2luY2x1
ZGUgIlNjcm9sbGluZ0Nvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiU2VhcmNoUG9wdXBNZW51Lmgi
CkBAIC0zMTMsNyArMzEzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09u
ZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgPSAwOwogICAgIC8vIFNldHMgYSBmbGFnIHRv
IHNwZWNpZnkgdGhhdCB0aGUgdmlldyBuZWVkcyB0byBiZSB1cGRhdGVkLCBzbyB3ZSBuZWVkCiAg
ICAgLy8gdG8gZG8gYW4gZWFnZXIgbGF5b3V0IGJlZm9yZSB0aGUgZHJhd2luZy4KLSAgICB2aXJ0
dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBu
ZWVkc0ltbWVkaWF0ZVJlbmRlcmluZ1VwZGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAg
ICAgLy8gUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgY2xpZW50IGNhbiByZW5kZXIgdGhlIGNv
bXBvc2l0ZWQgbGF5ZXIsCiAgICAgLy8gcmVnYXJkbGVzcyBvZiB0aGUgc2V0dGluZ3MuCkBAIC0z
MzcsOSArMzM3LDkgQEAgcHVibGljOgogICAgIAogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiBsYXll
ciB0cmVlIHVwZGF0ZXMgYXJlIGRpc2FibGVkLgogICAgIHZpcnR1YWwgYm9vbCBsYXllclRyZWVT
dGF0ZUlzRnJvemVuKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wg
bGF5ZXJGbHVzaFRocm90dGxpbmdJc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Cisg
ICAgdmlydHVhbCBib29sIHJlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdJc0FjdGl2ZSgpIGNvbnN0
IHsgcmV0dXJuIGZhbHNlOyB9CiAKLSAgICB2aXJ0dWFsIGJvb2wgYWRqdXN0TGF5ZXJGbHVzaFRo
cm90dGxpbmcoTGF5ZXJGbHVzaFRocm90dGxlU3RhdGU6OkZsYWdzKSB7IHJldHVybiBmYWxzZTsg
fQorICAgIHZpcnR1YWwgYm9vbCBhZGp1c3RSZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nKE9wdGlv
blNldDxSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlPikgeyByZXR1cm4gZmFsc2U7IH0KIAog
ICAgIHZpcnR1YWwgUmVmUHRyPFNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdD
b29yZGluYXRvcihQYWdlJikgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAKaW5kZXggZTAzZTQyYjQ5MmVmYjdmMzQ4MjgzYTVkNDFiZmZhMTIwM2Iy
OWMxZS4uYzlmMGQ1ZWNlOTMxYjU1MWYwYmQ2ZDJiY2U1ZGQyZWFlM2FhNzNhMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMjgxNywxOSArMjgxNywxOSBAQCB2b2lkIEZyYW1lVmll
dzo6dW5vYnNjdXJlZENvbnRlbnRTaXplQ2hhbmdlZCgpCiAjZW5kaWYKIH0KIAotc3RhdGljIExh
eWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpGbGFncyBkZXRlcm1pbmVMYXllckZsdXNoVGhyb3R0bGVT
dGF0ZShQYWdlJiBwYWdlKQorc3RhdGljIE9wdGlvblNldDxSZW5kZXJpbmdVcGRhdGVUaHJvdHRs
ZVN0YXRlPiBkZXRlcm1pbmVMYXllckZsdXNoVGhyb3R0bGVTdGF0ZShQYWdlJiBwYWdlKQogewog
ICAgIC8vIFdlIG9ubHkgdGhyb3R0bGUgd2hlbiBjb25zdGFudGx5IHJlY2VpdmluZyBuZXcgZGF0
YSBkdXJpbmcgdGhlIGluaXRhbCBwYWdlIGxvYWQuCiAgICAgaWYgKCFwYWdlLnByb2dyZXNzKCku
aXNNYWluTG9hZFByb2dyZXNzaW5nKCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1
cm4geyB9OwogICAgIC8vIFNjcm9sbGluZyBkdXJpbmcgcGFnZSBsb2FkaW5nIGRpc2FibGVzIHRo
cm90dGxpbmcuCiAgICAgaWYgKHBhZ2UubWFpbkZyYW1lKCkudmlldygpLT53YXNTY3JvbGxlZEJ5
VXNlcigpKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICAvLyBE
aXNhYmxlIGZvciBpbWFnZSBkb2N1bWVudHMgc28gbGFyZ2UgR0lGIGFuaW1hdGlvbnMgZG9uJ3Qg
Z2V0IHRocm90dGxlZCBkdXJpbmcgbG9hZGluZy4KICAgICBhdXRvKiBkb2N1bWVudCA9IHBhZ2Uu
bWFpbkZyYW1lKCkuZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50IHx8IGlzPEltYWdlRG9j
dW1lbnQ+KCpkb2N1bWVudCkpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBMYXllckZs
dXNoVGhyb3R0bGVTdGF0ZTo6RW5hYmxlZDsKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1
cm4geyBSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlOjpFbmFibGVkIH07CiB9CiAKIHZvaWQg
RnJhbWVWaWV3OjpkaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVy
YWN0aW9uKCkKQEAgLTI4MzgsOCArMjgzOCw5IEBAIHZvaWQgRnJhbWVWaWV3OjpkaXNhYmxlTGF5
ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVyYWN0aW9uKCkKICAgICAgICAgcmV0
dXJuOwogICAgIGF1dG8mIHBhZ2UgPSAqZnJhbWUoKS5wYWdlKCk7CiAKLSAgICBMYXllckZsdXNo
VGhyb3R0bGVTdGF0ZTo6RmxhZ3MgZmxhZ3MgPSBMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6VXNl
cklzSW50ZXJhY3RpbmcgfCBkZXRlcm1pbmVMYXllckZsdXNoVGhyb3R0bGVTdGF0ZShwYWdlKTsK
LSAgICBpZiAocGFnZS5jaHJvbWUoKS5jbGllbnQoKS5hZGp1c3RMYXllckZsdXNoVGhyb3R0bGlu
ZyhmbGFncykpCisgICAgYXV0byBmbGFncyA9IGRldGVybWluZUxheWVyRmx1c2hUaHJvdHRsZVN0
YXRlKHBhZ2UpOworICAgIGZsYWdzLmFkZChSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlOjpV
c2VySXNJbnRlcmFjdGluZyk7CisgICAgaWYgKHBhZ2UuY2hyb21lKCkuY2xpZW50KCkuYWRqdXN0
UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZyhmbGFncykpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGlmIChSZW5kZXJWaWV3KiB2aWV3ID0gcmVuZGVyVmlldygpKQpAQCAtMjg2MiwxNSArMjg2Mywx
NSBAQCB2b2lkIEZyYW1lVmlldzo6dXBkYXRlTGF5ZXJGbHVzaFRocm90dGxpbmcoKQogCiAgICAg
QVNTRVJUKGZyYW1lKCkuaXNNYWluRnJhbWUoKSk7CiAKLSAgICBMYXllckZsdXNoVGhyb3R0bGVT
dGF0ZTo6RmxhZ3MgZmxhZ3MgPSBkZXRlcm1pbmVMYXllckZsdXNoVGhyb3R0bGVTdGF0ZSgqcGFn
ZSk7CisgICAgYXV0byBmbGFncyA9IGRldGVybWluZUxheWVyRmx1c2hUaHJvdHRsZVN0YXRlKCpw
YWdlKTsKIAogICAgIC8vIFNlZSBpZiB0aGUgY2xpZW50IGlzIGhhbmRsaW5nIHRocm90dGxpbmcu
Ci0gICAgaWYgKHBhZ2UtPmNocm9tZSgpLmNsaWVudCgpLmFkanVzdExheWVyRmx1c2hUaHJvdHRs
aW5nKGZsYWdzKSkKKyAgICBpZiAocGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuYWRqdXN0UmVuZGVy
aW5nVXBkYXRlVGhyb3R0bGluZyhmbGFncykpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAo
YXV0byogZnJhbWUgPSBtX2ZyYW1lLnB0cigpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgp
LnRyYXZlcnNlTmV4dChtX2ZyYW1lLnB0cigpKSkgewogICAgICAgICBpZiAoUmVuZGVyVmlldyog
cmVuZGVyVmlldyA9IGZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHJlbmRl
clZpZXctPmNvbXBvc2l0b3IoKS5zZXRMYXllckZsdXNoVGhyb3R0bGluZ0VuYWJsZWQoZmxhZ3Mg
JiBMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RW5hYmxlZCk7CisgICAgICAgICAgICByZW5kZXJW
aWV3LT5jb21wb3NpdG9yKCkuc2V0TGF5ZXJGbHVzaFRocm90dGxpbmdFbmFibGVkKGZsYWdzLmNv
bnRhaW5zKFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU6OkVuYWJsZWQpKTsKICAgICB9CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTGF5ZXJGbHVzaFRocm90dGxlU3Rh
dGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzk2ZjIxOGUxZGIzMWM2NmM0NDY0ZWZiMjlhNmMz
NGE1ZWMyMzY5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xheWVyRmx1c2hUaHJvdHRsZVN0YXRlLmgKKysrIC9kZXYv
bnVsbApAQCAtMSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotc3RydWN0IExheWVyRmx1c2hUaHJvdHRsZVN0YXRlIHsKLSAgICBl
bnVtIHsKLSAgICAgICAgRW5hYmxlZCA9IDEgPDwgMCwKLSAgICAgICAgVXNlcklzSW50ZXJhY3Rp
bmcgPSAxIDw8IDEKLSAgICB9OwotICAgIHR5cGVkZWYgdW5zaWduZWQgRmxhZ3M7Ci19OwotCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jl
bmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmlu
Z1VwZGF0ZVNjaGVkdWxlci5jcHAKaW5kZXggM2I4ODFkZmJiMTcxN2Y0ZTQxMWE2YzUzNDQ1OTVm
YmQzYWI0MzA2ZC4uNmYzMzcwMmZiM2ZjNDg2NzQwMGJiOWJkMWQ4ZTViNzk2ZjExY2RhOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcApA
QCAtMTA3LDcgKzEwNyw3IEBAIHZvaWQgUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyOjpkaXNwbGF5
UmVmcmVzaEZpcmVkKCkKIAogdm9pZCBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI6OnNjaGVkdWxl
SW1tZWRpYXRlUmVuZGVyaW5nVXBkYXRlKCkKIHsKLSAgICBtX3BhZ2UuY2hyb21lKCkuY2xpZW50
KCkuc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKKyAgICBtX3BhZ2UuY2hyb21lKCku
Y2xpZW50KCkuc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBSZW5kZXJpbmdV
cGRhdGVTY2hlZHVsZXI6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZS5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZDFkZjVkZDhkNWEzZGZjMDE2NTExZTVjMGNlYjNlZDYxNmIyNGJmZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZS5oCkBA
IC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2VudW0gY2xhc3MgUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZSB7
CisgICAgRW5hYmxlZCAgICAgICAgICAgICA9IDEgPDwgMCwKKyAgICBVc2VySXNJbnRlcmFjdGlu
ZyAgID0gMSA8PCAxCit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL2xpbnV4L1Jlc291cmNlVXNhZ2VPdmVybGF5TGludXguY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlT3ZlcmxheUxpbnV4LmNwcApp
bmRleCA2NzA3Zjc4ZjMyYWNiMmJlZjFhNmUyNGUwYzc5NWEzNGM4MDc4NzZmLi45ZmUyNGMyZjY0
ZGUzNmNjNWRkNzY2NGQ1ZWRmYjdjYWQ1MTYyOWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2xpbnV4L1Jlc291cmNlVXNhZ2VPdmVybGF5TGludXguY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlMaW51eC5jcHAKQEAgLTEyNCw3
ICsxMjQsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBub3RpZnlGbHVzaFJlcXVpcmVkKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZQogICAgIHsKLSAgICAgICAgbV9vdmVybGF5Lm92ZXJs
YXkoKS5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZs
dXNoKCk7CisgICAgICAgIG1fb3ZlcmxheS5vdmVybGF5KCkucGFnZSgpLT5jaHJvbWUoKS5jbGll
bnQoKS5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogICAgIH0KIAogICAgIFJlc291cmNlVXNh
Z2VPdmVybGF5JiBtX292ZXJsYXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0gYi9Tb3VyY2UvV2ViS2l0
L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0KaW5kZXgg
NjJmMzJhZGM3ZDI2NTI3ZTc2NDA2Y2M4ZjY3OGNkOTI2YzE1ZjAzZi4uNTM5ZTIzZmQ0NmNkNGFk
ZTNmYjY5Mjk4ZGNjMzQzYmUzNjE3MmUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFy
ZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFja2luZ1N0b3JlLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5t
bQpAQCAtMzQzLDcgKzM0Myw4IEBAIHZvaWQgUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OmRyYXdJ
bkNvbnRleHQoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBDCiAKICAgICBjb250
ZXh0LnNjYWxlKG1fc2NhbGUpOwogICAgIAotICAgIGF1dG8gZmxhZ3MgPSBtX2xheWVyLT5jb250
ZXh0KCkgJiYgbV9sYXllci0+Y29udGV4dCgpLT5uZXh0Rmx1c2hJc0ZvckltbWVkaWF0ZVBhaW50
KCkgPyBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRTbmFwc2hvdHRpbmcgOiBXZWJDb3JlOjpH
cmFwaGljc0xheWVyUGFpbnROb3JtYWw7CisgICAgLy8gRklYTUU6IENsYXJpZnkgdGhhdCBXZWJD
b3JlOjpHcmFwaGljc0xheWVyUGFpbnRTbmFwc2hvdHRpbmcgaXMganVzdCBhYm91dCBpbWFnZSBk
ZWNvZGluZy4KKyAgICBhdXRvIGZsYWdzID0gbV9sYXllci0+Y29udGV4dCgpICYmIG1fbGF5ZXIt
PmNvbnRleHQoKS0+bmV4dFJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVzU3luY2hyb25vdXNJbWFnZURl
Y29kaW5nKCkgPyBXZWJDb3JlOjpHcmFwaGljc0xheWVyUGFpbnRTbmFwc2hvdHRpbmcgOiBXZWJD
b3JlOjpHcmFwaGljc0xheWVyUGFpbnROb3JtYWw7CiAgICAgCiAgICAgLy8gRklYTUU6IFRoaXMg
c2hvdWxkIGJlIG1vdmVkIHRvIFBsYXRmb3JtQ0FMYXllclJlbW90ZSBmb3IgYmV0dGVyIGxheWVy
aW5nLgogICAgIHN3aXRjaCAobV9sYXllci0+bGF5ZXJUeXBlKCkpIHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKaW5kZXggOGU0YzkzNzVkN2I4Y2MxMGZmYTAwODAzZDQ4MjE3M2JlNWEzNTU4YS4uOGY1
MTA2N2EzOTk4Y2ZiM2FhNWZlNzAxNGYzNmI5YWQ2NzU2YjM0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKQEAgLTkxMCwxMCArOTEwLDEwIEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzZXROZWVk
c09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2go
KQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkKIHsKICAg
ICBpZiAobV9wYWdlLmRyYXdpbmdBcmVhKCkpCi0gICAgICAgIG1fcGFnZS5kcmF3aW5nQXJlYSgp
LT5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgICAgICBtX3BhZ2UuZHJhd2lu
Z0FyZWEoKS0+c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVD
bGllbnQ6OmNvbnRlbnRSdWxlTGlzdE5vdGlmaWNhdGlvbihjb25zdCBVUkwmIHVybCwgY29uc3Qg
Q29udGVudFJ1bGVMaXN0UmVzdWx0cyYgcmVzdWx0cykKQEAgLTkyNCw5ICs5MjQsOSBAQCB2b2lk
IFdlYkNocm9tZUNsaWVudDo6Y29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBDb250ZW50UgogI2VuZGlmCiB9CiAKLWJvb2wgV2ViQ2hyb21lQ2xpZW50Ojph
ZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RmxhZ3Mg
ZmxhZ3MpCitib29sIFdlYkNocm9tZUNsaWVudDo6YWRqdXN0UmVuZGVyaW5nVXBkYXRlVGhyb3R0
bGluZyhPcHRpb25TZXQ8UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZT4gZmxhZ3MpCiB7Ci0g
ICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5nQXJlYSgpICYmIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5h
ZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhmbGFncyk7CisgICAgcmV0dXJuIG1fcGFnZS5kcmF3
aW5nQXJlYSgpICYmIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5hZGp1c3RSZW5kZXJpbmdVcGRhdGVU
aHJvdHRsaW5nKGZsYWdzKTsKIH0KIAogYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmxheWVyVHJlZVN0
YXRlSXNGcm96ZW4oKSBjb25zdApAQCAtOTM3LDEwICs5MzcsMTAgQEAgYm9vbCBXZWJDaHJvbWVD
bGllbnQ6OmxheWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBjb25zdAogICAgIHJldHVybiBmYWxzZTsK
IH0KIAotYm9vbCBXZWJDaHJvbWVDbGllbnQ6OmxheWVyRmx1c2hUaHJvdHRsaW5nSXNBY3RpdmUo
KSBjb25zdAorYm9vbCBXZWJDaHJvbWVDbGllbnQ6OnJlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdJ
c0FjdGl2ZSgpIGNvbnN0CiB7CiAgICAgaWYgKG1fcGFnZS5kcmF3aW5nQXJlYSgpKQotICAgICAg
ICByZXR1cm4gbV9wYWdlLmRyYXdpbmdBcmVhKCktPmxheWVyRmx1c2hUaHJvdHRsaW5nSXNBY3Rp
dmUoKTsKKyAgICAgICAgcmV0dXJuIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5yZW5kZXJpbmdVcGRh
dGVUaHJvdHRsaW5nSXNBY3RpdmUoKTsKIAogICAgIHJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAppbmRleCBhOGE0Y2NhYzU3ZDgwOGFhYTU1ZDhkNzk1MWJjNWM1NDFjNjBmMmFkLi43
YzFjN2UwOGNmNGQ5NDllNDBlMjEwMzJlMjQ0YmEyMTIxMjVkODExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCkBAIC0yMTYsOCArMjE2LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGF0dGFjaFJvb3RHcmFw
aGljc0xheWVyKFdlYkNvcmU6OkZyYW1lJiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFs
OwogICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBmaW5hbDsKICAgICB2b2lkIHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJv
bml6YXRpb24oKSBmaW5hbDsKLSAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNo
KCkgZmluYWw7Ci0gICAgYm9vbCBhZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhXZWJDb3JlOjpM
YXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RmxhZ3MpIGZpbmFsOworICAgIHZvaWQgc2NoZWR1bGVS
ZW5kZXJpbmdVcGRhdGUoKSBmaW5hbDsKKyAgICBib29sIGFkanVzdFJlbmRlcmluZ1VwZGF0ZVRo
cm90dGxpbmcoT3B0aW9uU2V0PFdlYkNvcmU6OlJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU+
KSBmaW5hbDsKIAogICAgIHZvaWQgY29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKGNvbnN0IFVS
TCYsIGNvbnN0IFdlYkNvcmU6OkNvbnRlbnRSdWxlTGlzdFJlc3VsdHMmKSBmaW5hbDsKIApAQCAt
MjUwLDcgKzI1MCw3IEBAIHByaXZhdGU6CiAgICAgfQogCiAgICAgYm9vbCBsYXllclRyZWVTdGF0
ZUlzRnJvemVuKCkgY29uc3QgZmluYWw7Ci0gICAgYm9vbCBsYXllckZsdXNoVGhyb3R0bGluZ0lz
QWN0aXZlKCkgY29uc3QgZmluYWw7CisgICAgYm9vbCByZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5n
SXNBY3RpdmUoKSBjb25zdCBmaW5hbDsKIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAg
ICAgUmVmUHRyPFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yPiBjcmVhdGVTY3JvbGxpbmdD
b29yZGluYXRvcihXZWJDb3JlOjpQYWdlJikgY29uc3QgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAppbmRleCBiYWIxZDRiZmJlZTllNDUx
NGYzZjdiYzRiY2E1YTU5NWU1OTg2ZjE1Li5mMDJjZTQ2ZTUyNWI4MDMzYzEzNGM3MDBjZGVkMTZh
OTY0Y2ZlNDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhLmgKQEAgLTMzLDkgKzMzLDkgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0FjdGl2aXR5U3Rh
dGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
SW50UmVjdC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0xheW91dE1pbGVzdG9uZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGxhdGZvcm1TY3JlZW4uaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlbmRlcmluZ1VwZGF0ZVRocm90
dGxlU3RhdGUuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9UeXBlQ2FzdHMuaD4KQEAgLTg1LDcgKzg1LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBmb3JjZVJlcGFpbnRBc3luYyhDYWxsYmFja0lEKSB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllclRyZWVTdGF0ZUlzRnJv
emVuKGJvb2wpIHsgfQogICAgIHZpcnR1YWwgYm9vbCBsYXllclRyZWVTdGF0ZUlzRnJvemVuKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgbGF5ZXJGbHVzaFRocm90
dGxpbmdJc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29s
IHJlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdJc0FjdGl2ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNl
OyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBlbmFibGVQYWludGluZygpIHsgfQpA
QCAtMTEzLDkgKzExMyw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgeyByZXR1cm4gbnVsbHB0cjsg
fQogICAgIHZpcnR1YWwgdm9pZCBzZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJDb3JlOjpHcmFw
aGljc0xheWVyKikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5
ZXJGbHVzaCgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUo
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlSW5pdGlhbERlZmVycmVkUGFpbnQoKSA9
IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRp
YXRlbHkoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlSW1tZWRpYXRlUmVuZGVyaW5n
VXBkYXRlKCkgPSAwOwogCiAjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlf
TU9OSVRPUikKICAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0
b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJ
RCk7CkBAIC0xMjgsNyArMTI4LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIG1hcmtM
YXllcnNWb2xhdGlsZUltbWVkaWF0ZWx5SWZQb3NzaWJsZSgpIHsgcmV0dXJuIHRydWU7IH0KIAot
ICAgIHZpcnR1YWwgYm9vbCBhZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhXZWJDb3JlOjpMYXll
ckZsdXNoVGhyb3R0bGVTdGF0ZTo6RmxhZ3MpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCBib29sIGFkanVzdFJlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmcoT3B0aW9uU2V0PFdlYkNvcmU6
OlJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU+KSB7IHJldHVybiBmYWxzZTsgfQogCiAgICAg
dmlydHVhbCB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJDb3JlOjpHcmFw
aGljc0xheWVyKikgeyB9CiAKQEAgLTE0MSw4ICsxNDEsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUdlb21ldHJ5KGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHZpZXdTaXplLCBi
b29sIGZsdXNoU3luY2hyb25vdXNseSwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBmZW5jZVBv
cnQpIHsgfQogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgbGF5ZXJIb3N0RGlkRmx1c2hMYXll
cnMoKSB7IH0KLQogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykgfHwgVVNFKFRFWFRVUkVf
TUFQUEVSKQogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMoV2Vi
Q29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGV2aWNl
T3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUNvbnRl
eHQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVDb250ZXh0LmgKaW5kZXggNTdhMDI1OWIyMjU5NjAwMTUwM2Y2NDZiN2Jm
NzU0OTg5OTRiZjllOC4uNGY3Yjk4M2NkODBlYTU1NzVkOGIzOTAzMzI1NmRjMDFhMTdjOWFlMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCkBAIC03
Myw4ICs3Myw4IEBAIHB1YmxpYzoKIAogICAgIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVj
dGlvbiYgYmFja2luZ1N0b3JlQ29sbGVjdGlvbigpIHsgcmV0dXJuIG1fYmFja2luZ1N0b3JlQ29s
bGVjdGlvbjsgfQogICAgIAotICAgIHZvaWQgc2V0TmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWlu
dChib29sIG5leHRGbHVzaElzRm9ySW1tZWRpYXRlUGFpbnQpIHsgbV9uZXh0Rmx1c2hJc0Zvcklt
bWVkaWF0ZVBhaW50ID0gbmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludDsgfQotICAgIGJvb2wg
bmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dEZsdXNo
SXNGb3JJbW1lZGlhdGVQYWludDsgfQorICAgIHZvaWQgc2V0TmV4dFJlbmRlcmluZ1VwZGF0ZVJl
cXVpcmVzU3luY2hyb25vdXNJbWFnZURlY29kaW5nKGJvb2wgcmVxdWlyZVN5bmNocm9ub3VzRGVj
b2RpbmcpIHsgbV9uZXh0UmVuZGVyaW5nVXBkYXRlUmVxdWlyZXNTeW5jaHJvbm91c0ltYWdlRGVj
b2RpbmcgPSByZXF1aXJlU3luY2hyb25vdXNEZWNvZGluZzsgfQorICAgIGJvb2wgbmV4dFJlbmRl
cmluZ1VwZGF0ZVJlcXVpcmVzU3luY2hyb25vdXNJbWFnZURlY29kaW5nKCkgY29uc3QgeyByZXR1
cm4gbV9uZXh0UmVuZGVyaW5nVXBkYXRlUmVxdWlyZXNTeW5jaHJvbm91c0ltYWdlRGVjb2Rpbmc7
IH0KIAogICAgIHZvaWQgYWRvcHRMYXllcnNGcm9tQ29udGV4dChSZW1vdGVMYXllclRyZWVDb250
ZXh0Jik7CiAgICAgCkBAIC0xMDIsNyArMTAyLDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6
OkxheWVyUG9vbCBtX2xheWVyUG9vbDsKICAgICAKLSAgICBib29sIG1fbmV4dEZsdXNoSXNGb3JJ
bW1lZGlhdGVQYWludCB7IGZhbHNlIH07CisgICAgYm9vbCBtX25leHRSZW5kZXJpbmdVcGRhdGVS
ZXF1aXJlc1N5bmNocm9ub3VzSW1hZ2VEZWNvZGluZyB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3Iu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yLm1tCmluZGV4IDM1YzgxNDFjMDBjMzRi
OTk2NjdmMDFlNGMzMzQ1YzUyOWJkZWU1MWQuLmEyZTZkNDAzMmI0YjZjOTk1MGRkMWE5ODRhY2Y3
Zjg3YzIyZjE0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW0K
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbQpAQCAtNDksNyArNDksNyBAQCBi
b29sIFJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcjo6cmVxdWVzdFJlZnJlc2hD
YWxsYmFjaygpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghaXNTY2hlZHVsZWQo
KSkKLSAgICAgICAgc3RhdGljX2Nhc3Q8RHJhd2luZ0FyZWEmPigqbV9kcmF3aW5nQXJlYS5nZXQo
KSkuc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8
RHJhd2luZ0FyZWEmPigqbV9kcmF3aW5nQXJlYS5nZXQoKSkuc2NoZWR1bGVSZW5kZXJpbmdVcGRh
dGUoKTsKIAogICAgIHNldElzQWN0aXZlKHRydWUpOwogICAgIHNldElzU2NoZWR1bGVkKHRydWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEu
aAppbmRleCBmMTExNjgzZmJhNzI3OGY4NzI0YmFkZThlODI5ZTJlZGZmYjY1ZGRjLi4xN2U4NmUz
N2UwYmNkYTQ3MDY2YTQyZjhiYWJjM2E2YzBlNGQxZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApAQCAtNjUsOCArNjUsOCBAQCBw
cml2YXRlOgogICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVy
RmFjdG9yeSgpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogICAgIHZvaWQgc2NoZWR1bGVJbml0aWFs
RGVmZXJyZWRQYWludCgpIG92ZXJyaWRlOwotICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xh
eWVyRmx1c2goKSBvdmVycmlkZTsKLSAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZs
dXNoSW1tZWRpYXRlbHkoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBk
YXRlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY2hlZHVsZUltbWVkaWF0ZVJlbmRlcmluZ1VwZGF0
ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKIAogICAgIHZvaWQgYWRkVHJhbnNhY3Rp
b25DYWxsYmFja0lEKENhbGxiYWNrSUQpIG92ZXJyaWRlOwpAQCAtODMsOCArODMsOCBAQCBwcml2
YXRlOgogICAgIGJvb2wgdXNlc0RlbGVnYXRlZFBhZ2VTY2FsaW5nKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdm9pZCBzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJv
b2wpIG92ZXJyaWRlOwotICAgIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIG1faXNGbHVzaGluZ1N1c3BlbmRlZDsgfQotICAgIGJvb2wgbGF5ZXJG
bHVzaFRocm90dGxpbmdJc0FjdGl2ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNUaHJv
dHRsaW5nTGF5ZXJGbHVzaGVzICYmIG1fbGF5ZXJGbHVzaFRpbWVyLmlzQWN0aXZlKCk7IH0KKyAg
ICBib29sIGxheWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2lzUmVuZGVyaW5nU3VzcGVuZGVkOyB9CisgICAgYm9vbCByZW5kZXJpbmdVcGRhdGVUaHJvdHRs
aW5nSXNBY3RpdmUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lzVGhyb3R0bGluZ1JlbmRl
cmluZ1VwZGF0ZXMgJiYgbV91cGRhdGVSZW5kZXJpbmdUaW1lci5pc0FjdGl2ZSgpOyB9CiAKICAg
ICB2b2lkIGZvcmNlUmVwYWludCgpIG92ZXJyaWRlOwogICAgIGJvb2wgZm9yY2VSZXBhaW50QXN5
bmMoQ2FsbGJhY2tJRCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTEwOCw3ICsxMDgs
NyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBhY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKE9wdGlvblNl
dDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBjaGFuZ2VkLCBBY3Rpdml0eVN0YXRlQ2hh
bmdlSUQsIGNvbnN0IFZlY3RvcjxDYWxsYmFja0lEPiYgY2FsbGJhY2tJRHMpIG92ZXJyaWRlOwog
Ci0gICAgYm9vbCBhZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhXZWJDb3JlOjpMYXllckZsdXNo
VGhyb3R0bGVTdGF0ZTo6RmxhZ3MpIG92ZXJyaWRlOworICAgIGJvb2wgYWRqdXN0UmVuZGVyaW5n
VXBkYXRlVGhyb3R0bGluZyhPcHRpb25TZXQ8V2ViQ29yZTo6UmVuZGVyaW5nVXBkYXRlVGhyb3R0
bGVTdGF0ZT4pIG92ZXJyaWRlOwogCiAgICAgYm9vbCBhZGRNaWxlc3RvbmVzVG9EaXNwYXRjaChP
cHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPikgb3ZlcnJpZGU7CiAKQEAgLTExNiw3
ICsxMTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlUm9vdExheWVycygpOwogCiAgICAg
dm9pZCBhZGRDb21taXRIYW5kbGVycygpOwotICAgIHZvaWQgZmx1c2hMYXllcnMoKTsKKyAgICB2
b2lkIHVwZGF0ZVJlbmRlcmluZygpOwogCiAgICAgV2ViQ29yZTo6VGlsZWRCYWNraW5nKiBtYWlu
RnJhbWVUaWxlZEJhY2tpbmcoKSBjb25zdDsKIApAQCAtMTUxLDE4ICsxNTEsMTkgQEAgcHJpdmF0
ZToKICAgICBPcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IG1fdmlld0V4cG9zZWRSZWN0Owog
ICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVjdD4gbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVj
dDsKIAotICAgIFdlYkNvcmU6OlRpbWVyIG1fbGF5ZXJGbHVzaFRpbWVyOwotICAgIGJvb2wgbV9p
c0ZsdXNoaW5nU3VzcGVuZGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1faGFzRGVmZXJyZWRGbHVz
aCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2ZsdXNoaW5nSW5pdGlhbERlZmVycmVkUGFpbnQgeyBm
YWxzZSB9OwotICAgIGJvb2wgbV9pc1Rocm90dGxpbmdMYXllckZsdXNoZXMgeyBmYWxzZSB9Owot
ICAgIGJvb2wgbV9pc0xheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvcklu
dGVyYWN0aW9uIHsgZmFsc2UgfTsKLSAgICBib29sIG1faXNJbml0aWFsVGhyb3R0bGVkTGF5ZXJG
bHVzaCB7IGZhbHNlIH07CisgICAgV2ViQ29yZTo6VGltZXIgbV91cGRhdGVSZW5kZXJpbmdUaW1l
cjsKKyAgICBib29sIG1faXNSZW5kZXJpbmdTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wg
bV9oYXNEZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2luSW5p
dGlhbERlZmVycmVkUmVuZGVyaW5nVXBkYXRlIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNGaXJz
dFRocm90dGxlZFJlbmRlcmluZ1VwZGF0ZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX25leHRSZW5k
ZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNocm9ub3VzSW1hZ2VEZWNvZGluZyB7IGZhbHNlIH07Cisg
ICAgYm9vbCBtX2luVXBkYXRlUmVuZGVyaW5nIHsgZmFsc2UgfTsKKworICAgIGJvb2wgbV9pc1Ro
cm90dGxpbmdSZW5kZXJpbmdVcGRhdGVzIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNSZW5kZXJp
bmdVcGRhdGVUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uIHsgZmFs
c2UgfTsKIAogICAgIGJvb2wgbV93YWl0aW5nRm9yQmFja2luZ1N0b3JlU3dhcCB7IGZhbHNlIH07
Ci0gICAgYm9vbCBtX2hhZEZsdXNoRGVmZXJyZWRXaGlsZVdhaXRpbmdGb3JCYWNraW5nU3RvcmVT
d2FwIHsgZmFsc2UgfTsKLSAgICBib29sIG1fbmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludCB7
IGZhbHNlIH07Ci0gICAgYm9vbCBtX2luRmx1c2hMYXllcnMgeyBmYWxzZSB9OworICAgIGJvb2wg
bV9kZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZVdoaWxlV2FpdGluZ0ZvckJhY2tpbmdTdG9yZVN3YXAg
eyBmYWxzZSB9OwogCiAgICAgZGlzcGF0Y2hfcXVldWVfdCBtX2NvbW1pdFF1ZXVlOwogICAgIFJl
ZlB0cjxCYWNraW5nU3RvcmVGbHVzaGVyPiBtX3BlbmRpbmdCYWNraW5nU3RvcmVGbHVzaGVyOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1t
CmluZGV4IGQ3MjBiMmVkOTZjOGI3ZTVmZmE5NjJkYzlkZDVmNzU0OGRjYzVjZDkuLjQ0NTA4OWU1
NmNjN2YxMDEyZjc0NmVhYWExM2IxNjU1MmZhYTJkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KQEAgLTYwLDcgKzYwLDcgQEAg
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhKFdl
YlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFcKICAgICA6IERyYXdpbmdBcmVhKERyYXdpbmdBcmVhVHlw
ZVJlbW90ZUxheWVyVHJlZSwgcGFyYW1ldGVycy5kcmF3aW5nQXJlYUlkZW50aWZpZXIsIHdlYlBh
Z2UpCiAgICAgLCBtX3JlbW90ZUxheWVyVHJlZUNvbnRleHQobWFrZVVuaXF1ZTxSZW1vdGVMYXll
clRyZWVDb250ZXh0Pih3ZWJQYWdlKSkKICAgICAsIG1fcm9vdExheWVyKEdyYXBoaWNzTGF5ZXI6
OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcykpCi0gICAgLCBtX2xheWVyRmx1
c2hUaW1lcigqdGhpcywgJlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExheWVycykK
KyAgICAsIG1fdXBkYXRlUmVuZGVyaW5nVGltZXIoKnRoaXMsICZSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYTo6dXBkYXRlUmVuZGVyaW5nKQogewogICAgIHdlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0
dGluZ3MoKS5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKICAgICBtX3Jvb3RMYXllci0+
c2V0TmFtZSgiZHJhd2luZyBhcmVhIHJvb3QiKTsKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzZXRSb290Q29tcG9zaXRpbmdMYXllcihHcmFwaGlj
c0xheWVyKiByb290TGF5ZQogewogICAgIG1fY29udGVudExheWVyID0gcm9vdExheWVyOwogICAg
IHVwZGF0ZVJvb3RMYXllcnMoKTsKLSAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgp
OworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5KGNvbnN0IEludFNpemUmIHZpZXdTaXplLCBi
b29sIGZsdXNoU3luY2hyb25vdXNseSwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JikKQEAgLTE1
Myw3ICsxNTMsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp1cGRhdGVHZW9t
ZXRyeShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwgYm9vbCBmbAogICAgIG1fdmlld1NpemUgPSB2
aWV3U2l6ZTsKICAgICBtX3dlYlBhZ2Uuc2V0U2l6ZSh2aWV3U2l6ZSk7CiAKLSAgICBzY2hlZHVs
ZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7
CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYVByb3h5OjpEaWRVcGRhdGVHZW9tZXRy
eSgpKTsKIH0KQEAgLTE4NSwyMiArMTg1LDIyIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWE6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQogCiB2
b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVu
KGJvb2wgaXNGcm96ZW4pCiB7Ci0gICAgaWYgKG1faXNGbHVzaGluZ1N1c3BlbmRlZCA9PSBpc0Zy
b3plbikKKyAgICBpZiAobV9pc1JlbmRlcmluZ1N1c3BlbmRlZCA9PSBpc0Zyb3plbikKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgdHJhY2VQb2ludChpc0Zyb3plbiA/IExheWVyVHJlZUZyZWV6ZVN0
YXJ0IDogTGF5ZXJUcmVlRnJlZXplRW5kKTsKIAotICAgIG1faXNGbHVzaGluZ1N1c3BlbmRlZCA9
IGlzRnJvemVuOworICAgIG1faXNSZW5kZXJpbmdTdXNwZW5kZWQgPSBpc0Zyb3plbjsKIAotICAg
IGlmICghbV9pc0ZsdXNoaW5nU3VzcGVuZGVkICYmIG1faGFzRGVmZXJyZWRGbHVzaCkgewotICAg
ICAgICBtX2hhc0RlZmVycmVkRmx1c2ggPSBmYWxzZTsKKyAgICBpZiAoIW1faXNSZW5kZXJpbmdT
dXNwZW5kZWQgJiYgbV9oYXNEZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZSkgeworICAgICAgICBtX2hh
c0RlZmVycmVkUmVuZGVyaW5nVXBkYXRlID0gZmFsc2U7CiAgICAgICAgIHNjaGVkdWxlSW5pdGlh
bERlZmVycmVkUGFpbnQoKTsKICAgICB9CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWE6OmZvcmNlUmVwYWludCgpCiB7Ci0gICAgaWYgKG1faXNGbHVzaGluZ1N1c3BlbmRlZCkK
KyAgICBpZiAobV9pc1JlbmRlcmluZ1N1c3BlbmRlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
Zm9yIChGcmFtZSogZnJhbWUgPSAmbV93ZWJQYWdlLmNvcmVQYWdlKCktPm1haW5GcmFtZSgpOyBm
cmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CkBAIC0yMTEsNyAr
MjExLDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zm9yY2VSZXBhaW50KCkK
ICAgICAgICAgZnJhbWVWaWV3LT50aWxlZEJhY2tpbmcoKS0+Zm9yY2VSZXBhaW50KCk7CiAgICAg
fQogCi0gICAgZmx1c2hMYXllcnMoKTsKKyAgICB1cGRhdGVSZW5kZXJpbmcoKTsKIH0KIAogdm9p
ZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6YWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFy
dCh1aW50NjRfdCBsYXllcklELCBjb25zdCBTdHJpbmcmIGtleSwgTW9ub3RvbmljVGltZSBzdGFy
dFRpbWUpCkBAIC0yNDgsNyArMjQ4LDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YTo6c2V0RXhwb3NlZENvbnRlbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgZXhwb3NlZEMKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgZnJhbWVWaWV3LT5zZXRFeHBvc2VkQ29udGVudFJlY3QoZXhwb3Nl
ZENvbnRlbnRSZWN0KTsKLSAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAg
IHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWE6OnVwZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKQpAQCAtMjczLDYwICsyNzMsNjAg
QEAgVGlsZWRCYWNraW5nKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6bWFpbkZyYW1lVGls
ZWRCYWNraW5nKCkgY29uc3QKICAgICByZXR1cm4gZnJhbWVWaWV3ID8gZnJhbWVWaWV3LT50aWxl
ZEJhY2tpbmcoKSA6IG51bGxwdHI7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWE6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKQordm9pZCBSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2NoZWR1bGVJbW1lZGlhdGVSZW5kZXJpbmdVcGRhdGUo
KQogewotICAgIG1fbGF5ZXJGbHVzaFRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOworICAgIG1fdXBk
YXRlUmVuZGVyaW5nVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVkdWxlSW5pdGlhbERlZmVycmVkUGFpbnQoKQogewotICAg
IEFTU0VSVCghbV9pc0ZsdXNoaW5nU3VzcGVuZGVkKTsKLSAgICBtX2ZsdXNoaW5nSW5pdGlhbERl
ZmVycmVkUGFpbnQgPSB0cnVlOworICAgIEFTU0VSVCghbV9pc1JlbmRlcmluZ1N1c3BlbmRlZCk7
CisgICAgbV9pbkluaXRpYWxEZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZSA9IHRydWU7CiAKLSAgICBp
ZiAobV9sYXllckZsdXNoVGltZXIuaXNBY3RpdmUoKSkKKyAgICBpZiAobV91cGRhdGVSZW5kZXJp
bmdUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgc2NoZWR1bGVDb21wb3Np
dGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpOworICAgIHNjaGVkdWxlSW1tZWRpYXRlUmVuZGVy
aW5nVXBkYXRlKCk7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVk
dWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWE6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkKIHsKLSAgICBpZiAobV9pc0ZsdXNoaW5nU3Vz
cGVuZGVkKSB7Ci0gICAgICAgIG1faXNMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlz
YWJsZWRGb3JJbnRlcmFjdGlvbiA9IGZhbHNlOwotICAgICAgICBtX2hhc0RlZmVycmVkRmx1c2gg
PSB0cnVlOworICAgIGlmIChtX2lzUmVuZGVyaW5nU3VzcGVuZGVkKSB7CisgICAgICAgIG1faXNS
ZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9u
ID0gZmFsc2U7CisgICAgICAgIG1faGFzRGVmZXJyZWRSZW5kZXJpbmdVcGRhdGUgPSB0cnVlOwog
ICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGlmIChtX2lzTGF5ZXJGbHVzaFRocm90dGxpbmdU
ZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24pIHsKLSAgICAgICAgbV9pc0xheWVyRmx1
c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uID0gZmFsc2U7Ci0g
ICAgICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKTsKKyAgICBp
ZiAobV9pc1JlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50
ZXJhY3Rpb24pIHsKKyAgICAgICAgbV9pc1JlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdUZW1wb3Jh
cmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgc2NoZWR1bGVJbW1l
ZGlhdGVSZW5kZXJpbmdVcGRhdGUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlm
IChtX2xheWVyRmx1c2hUaW1lci5pc0FjdGl2ZSgpKQorICAgIGlmIChtX3VwZGF0ZVJlbmRlcmlu
Z1RpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IFNlY29uZHMg
aW5pdGlhbEZsdXNoRGVsYXkgPSA1MDBfbXM7CiAgICAgY29uc3QgU2Vjb25kcyBmbHVzaERlbGF5
ID0gMTUwMF9tczsKLSAgICBTZWNvbmRzIHRocm90dGxlRGVsYXkgPSBtX2lzVGhyb3R0bGluZ0xh
eWVyRmx1c2hlcyA/IChtX2lzSW5pdGlhbFRocm90dGxlZExheWVyRmx1c2ggPyBpbml0aWFsRmx1
c2hEZWxheSA6IGZsdXNoRGVsYXkpIDogMF9zOwotICAgIG1faXNJbml0aWFsVGhyb3R0bGVkTGF5
ZXJGbHVzaCA9IGZhbHNlOworICAgIFNlY29uZHMgdGhyb3R0bGVEZWxheSA9IG1faXNUaHJvdHRs
aW5nUmVuZGVyaW5nVXBkYXRlcyA/IChtX2lzRmlyc3RUaHJvdHRsZWRSZW5kZXJpbmdVcGRhdGUg
PyBpbml0aWFsRmx1c2hEZWxheSA6IGZsdXNoRGVsYXkpIDogMF9zOworICAgIG1faXNGaXJzdFRo
cm90dGxlZFJlbmRlcmluZ1VwZGF0ZSA9IGZhbHNlOwogCi0gICAgbV9sYXllckZsdXNoVGltZXIu
c3RhcnRPbmVTaG90KHRocm90dGxlRGVsYXkpOworICAgIG1fdXBkYXRlUmVuZGVyaW5nVGltZXIu
c3RhcnRPbmVTaG90KHRocm90dGxlRGVsYXkpOwogfQogCi1ib29sIFJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhOjphZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhXZWJDb3JlOjpMYXllckZsdXNo
VGhyb3R0bGVTdGF0ZTo6RmxhZ3MgZmxhZ3MpCitib29sIFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhOjphZGp1c3RSZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nKE9wdGlvblNldDxSZW5kZXJpbmdV
cGRhdGVUaHJvdHRsZVN0YXRlPiBmbGFncykKIHsKLSAgICBpZiAoZmxhZ3MgJiBXZWJDb3JlOjpM
YXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6VXNlcklzSW50ZXJhY3RpbmcpCi0gICAgICAgIG1faXNM
YXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbiA9IHRy
dWU7CisgICAgaWYgKGZsYWdzLmNvbnRhaW5zKFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU6
OlVzZXJJc0ludGVyYWN0aW5nKSkKKyAgICAgICAgbV9pc1JlbmRlcmluZ1VwZGF0ZVRocm90dGxp
bmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24gPSB0cnVlOwogCi0gICAgYm9vbCB3
YXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzID0gbV9pc1Rocm90dGxpbmdMYXllckZsdXNoZXM7Ci0g
ICAgbV9pc1Rocm90dGxpbmdMYXllckZsdXNoZXMgPSBmbGFncyAmIFdlYkNvcmU6OkxheWVyRmx1
c2hUaHJvdHRsZVN0YXRlOjpFbmFibGVkOworICAgIGJvb2wgd2FzVGhyb3R0bGluZ0xheWVyRmx1
c2hlcyA9IG1faXNUaHJvdHRsaW5nUmVuZGVyaW5nVXBkYXRlczsKKyAgICBtX2lzVGhyb3R0bGlu
Z1JlbmRlcmluZ1VwZGF0ZXMgPSBmbGFncy5jb250YWlucyhSZW5kZXJpbmdVcGRhdGVUaHJvdHRs
ZVN0YXRlOjpFbmFibGVkKTsKIAotICAgIGlmICghd2FzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyAm
JiBtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcykKLSAgICAgICAgbV9pc0luaXRpYWxUaHJvdHRs
ZWRMYXllckZsdXNoID0gdHJ1ZTsKKyAgICBpZiAoIXdhc1Rocm90dGxpbmdMYXllckZsdXNoZXMg
JiYgbV9pc1Rocm90dGxpbmdSZW5kZXJpbmdVcGRhdGVzKQorICAgICAgICBtX2lzRmlyc3RUaHJv
dHRsZWRSZW5kZXJpbmdVcGRhdGUgPSB0cnVlOwogCiAgICAgLy8gUmUtc2NoZWR1bGUgdGhlIGZs
dXNoIGlmIHdlIHN0b3BwZWQgdGhyb3R0bGluZy4KLSAgICBpZiAod2FzVGhyb3R0bGluZ0xheWVy
Rmx1c2hlcyAmJiAhbV9pc1Rocm90dGxpbmdMYXllckZsdXNoZXMgJiYgbV9sYXllckZsdXNoVGlt
ZXIuaXNBY3RpdmUoKSkgewotICAgICAgICBtX2xheWVyRmx1c2hUaW1lci5zdG9wKCk7Ci0gICAg
ICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAgaWYgKHdhc1Rocm90dGxp
bmdMYXllckZsdXNoZXMgJiYgIW1faXNUaHJvdHRsaW5nUmVuZGVyaW5nVXBkYXRlcyAmJiBtX3Vw
ZGF0ZVJlbmRlcmluZ1RpbWVyLmlzQWN0aXZlKCkpIHsKKyAgICAgICAgbV91cGRhdGVSZW5kZXJp
bmdUaW1lci5zdG9wKCk7CisgICAgICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAgICAg
fQogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMzU0LDMwICszNTQsMzAgQEAgdm9pZCBSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYTo6YWRkQ29tbWl0SGFuZGxlcnMoKQogICAgIG1fd2ViUGFnZS5z
ZXRGaXJzdEZsdXNoQWZ0ZXJDb21taXQodHJ1ZSk7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKCkKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWE6OnVwZGF0ZVJlbmRlcmluZygpCiB7Ci0gICAgaWYgKG1faXNGbHVzaGluZ1N1c3BlbmRlZCkg
ewotICAgICAgICBtX2hhc0RlZmVycmVkRmx1c2ggPSB0cnVlOworICAgIGlmIChtX2lzUmVuZGVy
aW5nU3VzcGVuZGVkKSB7CisgICAgICAgIG1faGFzRGVmZXJyZWRSZW5kZXJpbmdVcGRhdGUgPSB0
cnVlOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG1fd2FpdGluZ0ZvckJhY2tp
bmdTdG9yZVN3YXApIHsKLSAgICAgICAgbV9oYWRGbHVzaERlZmVycmVkV2hpbGVXYWl0aW5nRm9y
QmFja2luZ1N0b3JlU3dhcCA9IHRydWU7CisgICAgICAgIG1fZGVmZXJyZWRSZW5kZXJpbmdVcGRh
dGVXaGlsZVdhaXRpbmdGb3JCYWNraW5nU3RvcmVTd2FwID0gdHJ1ZTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIGlmIChtX2ZsdXNoaW5nSW5pdGlhbERlZmVycmVkUGFpbnQpIHsKLSAg
ICAgICAgbV9mbHVzaGluZ0luaXRpYWxEZWZlcnJlZFBhaW50ID0gZmFsc2U7CisgICAgaWYgKG1f
aW5Jbml0aWFsRGVmZXJyZWRSZW5kZXJpbmdVcGRhdGUpIHsKKyAgICAgICAgbV9pbkluaXRpYWxE
ZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZSA9IGZhbHNlOwogICAgICAgICAvLyBSZXNjaGVkdWxlIHRo
ZSBmbHVzaCB0aW1lciBmb3IgdGhlIHNlY29uZCBwYWludCBpZiBwYWludGluZyBpcyBiZWluZyB0
aHJvdHRsZWQuCi0gICAgICAgIGlmIChtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcykKLSAgICAg
ICAgICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAgICAgIGlmIChtX2lz
VGhyb3R0bGluZ1JlbmRlcmluZ1VwZGF0ZXMpCisgICAgICAgICAgICBzY2hlZHVsZVJlbmRlcmlu
Z1VwZGF0ZSgpOwogICAgIH0KIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgbm90IHJlZW50cmFu
dCwgZS5nLiBhIHJBRiBjYWxsYmFjayBtYXkgZm9yY2UgcmVwYWludC4KLSAgICBpZiAobV9pbkZs
dXNoTGF5ZXJzKQorICAgIGlmIChtX2luVXBkYXRlUmVuZGVyaW5nKQogICAgICAgICByZXR1cm47
CiAKLSAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9pbkZsdXNoTGF5ZXJzLCB0cnVlKTsK
KyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9pblVwZGF0ZVJlbmRlcmluZywgdHJ1ZSk7
CiAgICAgbV93ZWJQYWdlLnVwZGF0ZVJlbmRlcmluZygpOwogCiAgICAgRmxvYXRSZWN0IHZpc2li
bGVSZWN0KEZsb2F0UG9pbnQoKSwgbV92aWV3U2l6ZSk7CkBAIC0zODYsNyArMzg2LDcgQEAgdm9p
ZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMoKQogCiAgICAgYWRkQ29t
bWl0SGFuZGxlcnMoKTsKIAotICAgIGlmIChtX25leHRGbHVzaElzRm9ySW1tZWRpYXRlUGFpbnQp
CisgICAgaWYgKG1fbmV4dFJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVzU3luY2hyb25vdXNJbWFnZURl
Y29kaW5nKQogICAgICAgICBtX3dlYlBhZ2UubWFpbkZyYW1lVmlldygpLT5pbnZhbGlkYXRlSW1h
Z2VzV2l0aEFzeW5jRGVjb2RlcygpOwogCiAgICAgbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKS0+
Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7CkBAIC00MDYsOSArNDA2
LDExIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKCkKICAg
ICBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiBsYXllclRyYW5zYWN0aW9uOwogICAgIGxheWVy
VHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb25JRCh0YWtlTmV4dFRyYW5zYWN0aW9uSUQoKSk7CiAg
ICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRDYWxsYmFja0lEcyhXVEZNb3ZlKG1fcGVuZGluZ0NhbGxi
YWNrSURzKSk7Ci0gICAgbV9yZW1vdGVMYXllclRyZWVDb250ZXh0LT5zZXROZXh0Rmx1c2hJc0Zv
ckltbWVkaWF0ZVBhaW50KG1fbmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludCk7CisKKyAgICBt
X3JlbW90ZUxheWVyVHJlZUNvbnRleHQtPnNldE5leHRSZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5
bmNocm9ub3VzSW1hZ2VEZWNvZGluZyhtX25leHRSZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNo
cm9ub3VzSW1hZ2VEZWNvZGluZyk7CiAgICAgbV9yZW1vdGVMYXllclRyZWVDb250ZXh0LT5idWls
ZFRyYW5zYWN0aW9uKGxheWVyVHJhbnNhY3Rpb24sICpkb3duY2FzdDxHcmFwaGljc0xheWVyQ0FS
ZW1vdGU+KG1fcm9vdExheWVyLmdldCgpKS5wbGF0Zm9ybUNBTGF5ZXIoKSk7Ci0gICAgbV9yZW1v
dGVMYXllclRyZWVDb250ZXh0LT5zZXROZXh0Rmx1c2hJc0ZvckltbWVkaWF0ZVBhaW50KGZhbHNl
KTsKKyAgICBtX3JlbW90ZUxheWVyVHJlZUNvbnRleHQtPnNldE5leHRSZW5kZXJpbmdVcGRhdGVS
ZXF1aXJlc1N5bmNocm9ub3VzSW1hZ2VEZWNvZGluZyhmYWxzZSk7CisKICAgICBiYWNraW5nU3Rv
cmVDb2xsZWN0aW9uLndpbGxDb21taXRMYXllclRyZWUobGF5ZXJUcmFuc2FjdGlvbik7CiAgICAg
bV93ZWJQYWdlLndpbGxDb21taXRMYXllclRyZWUobGF5ZXJUcmFuc2FjdGlvbik7CiAKQEAgLTQy
NCw3ICs0MjYsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExheWVy
cygpCiAgICAgICAgIGRvd25jYXN0PFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yPigqbV93ZWJQ
YWdlLnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpLmJ1aWxkVHJhbnNhY3Rpb24oc2Nyb2xsaW5nVHJh
bnNhY3Rpb24pOwogI2VuZGlmCiAKLSAgICBtX25leHRGbHVzaElzRm9ySW1tZWRpYXRlUGFpbnQg
PSBmYWxzZTsKKyAgICBtX25leHRSZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNocm9ub3VzSW1h
Z2VEZWNvZGluZyA9IGZhbHNlOwogICAgIG1fd2FpdGluZ0ZvckJhY2tpbmdTdG9yZVN3YXAgPSB0
cnVlOwogCiAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eTo6V2lsbENvbW1pdExheWVyVHJlZShsYXllclRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSUQoKSkp
OwpAQCAtNDc1LDkgKzQ3Nyw5IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmRp
ZFVwZGF0ZSgpCiAKICAgICBtX3dhaXRpbmdGb3JCYWNraW5nU3RvcmVTd2FwID0gZmFsc2U7CiAK
LSAgICBpZiAobV9oYWRGbHVzaERlZmVycmVkV2hpbGVXYWl0aW5nRm9yQmFja2luZ1N0b3JlU3dh
cCkgewotICAgICAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOwotICAgICAgICBt
X2hhZEZsdXNoRGVmZXJyZWRXaGlsZVdhaXRpbmdGb3JCYWNraW5nU3RvcmVTd2FwID0gZmFsc2U7
CisgICAgaWYgKG1fZGVmZXJyZWRSZW5kZXJpbmdVcGRhdGVXaGlsZVdhaXRpbmdGb3JCYWNraW5n
U3RvcmVTd2FwKSB7CisgICAgICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgICAg
IG1fZGVmZXJyZWRSZW5kZXJpbmdVcGRhdGVXaGlsZVdhaXRpbmdGb3JCYWNraW5nU3RvcmVTd2Fw
ID0gZmFsc2U7CiAgICAgfQogCiAgICAgLy8gVGhpcyBlbXB0eSB0cmFuc2FjdGlvbiBzZXJ2ZXMg
dG8gdHJpZ2dlciBDQSdzIGdhcmJhZ2UgY29sbGVjdGlvbiBvZiBJT1N1cmZhY2VzLiBTZWUgPHJk
YXI6Ly9wcm9ibGVtLzE2MTEwNjg3PgpAQCAtNTMzLDkgKzUzNSw5IEBAIHZvaWQgUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWE6OmFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoT3B0aW9uU2V0PFdlYkNv
cmU6OkFjdGl2CiAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBzdXNwZW5kIHBhaW50aW5nIHdoaWxl
IG5vdCB2aXNpYmxlLCBsaWtlIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhPyBQcm9iYWJs
eS4KIAogICAgIGlmIChhY3Rpdml0eVN0YXRlQ2hhbmdlSUQgIT0gQWN0aXZpdHlTdGF0ZUNoYW5n
ZUFzeW5jaHJvbm91cykgewotICAgICAgICBtX25leHRGbHVzaElzRm9ySW1tZWRpYXRlUGFpbnQg
PSB0cnVlOworICAgICAgICBtX25leHRSZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNocm9ub3Vz
SW1hZ2VEZWNvZGluZyA9IHRydWU7CiAgICAgICAgIG1fYWN0aXZpdHlTdGF0ZUNoYW5nZUlEID0g
YWN0aXZpdHlTdGF0ZUNoYW5nZUlEOwotICAgICAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJG
bHVzaEltbWVkaWF0ZWx5KCk7CisgICAgICAgIHNjaGVkdWxlSW1tZWRpYXRlUmVuZGVyaW5nVXBk
YXRlKCk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFdlIG1heSB3YW50IHRvIG1hdGNoIGJlaGF2
aW9yIGluIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhIGJ5IGZpcmluZyB0aGVzZSBjYWxs
YmFja3MgYWZ0ZXIgdGhlIG5leHQgY29tcG9zaXRpbmcgZmx1c2gsIHJhdGhlciB0aGFuIGltbWVk
aWF0ZWx5IGFmdGVyCkBAIC01NDgsMTAgKzU1MCwxMCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhOjphZGRUcmFuc2FjdGlvbkNhbGxiYWNrSUQoQ2FsbGJhY2tJRCBjYWxsYmFja0lE
KQogewogICAgIC8vIEFzc3VtZSB0aGF0IGlmIHNvbWVvbmUgaXMgbGlzdGVuaW5nIGZvciB0aGlz
IHRyYW5zYWN0aW9uJ3MgY29tcGxldGlvbiwgdGhhdCB0aGV5IHdhbnQgaXQgdG8KICAgICAvLyBi
ZSBhICJjb21wbGV0ZSIgcGFpbnQgKGluY2x1ZGluZyBpbWFnZXMgdGhhdCB3b3VsZCBub3JtYWxs
eSBiZSBhc3luY2hyb25vdXNseSBkZWNvZGluZykuCi0gICAgbV9uZXh0Rmx1c2hJc0ZvckltbWVk
aWF0ZVBhaW50ID0gdHJ1ZTsKKyAgICBtX25leHRSZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNo
cm9ub3VzSW1hZ2VEZWNvZGluZyA9IHRydWU7CiAKICAgICBtX3BlbmRpbmdDYWxsYmFja0lEcy5h
cHBlbmQoc3RhdGljX2Nhc3Q8UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OlRyYW5zYWN0aW9u
Q2FsbGJhY2tJRD4oY2FsbGJhY2tJRCkpOwotICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZs
dXNoKCk7CisgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYTo6YWRvcHRMYXllcnNGcm9tRHJhd2luZ0FyZWEoRHJhd2luZ0Fy
ZWEmIG9sZERyYXdpbmdBcmVhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yLm1tCmluZGV4IDgzNTQ0MWQzMTliOTVmNDY2ODc3NTg1Mzg5MDky
YzllZWEyOTM4NjEuLmNiZmEzMWIyN2YxYmQ4YTYyNjVkYTg3NzY1NDUzOTY5ZTI2Zjc4NGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3Iu
bW0KQEAgLTYxLDcgKzYxLDcgQEAgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6On5SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvcigpCiAKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OnNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCkKIHsKLSAgICBtX3dlYlBhZ2UtPmRyYXdpbmdBcmVh
KCktPnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAgbV93ZWJQYWdlLT5kcmF3
aW5nQXJlYSgpLT5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCiBib29sIFJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yOjpjb29yZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldyhjb25z
dCBGcmFtZVZpZXcmIGZyYW1lVmlldykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggODY4M2MxMDRkYmZhMmMwNWY1ZTg0YjU5NjBmZDY4
MmFlMjQ1MWRhZi4uZDFkMmYxYjdhZmNjMDlmYWQxYjg5MzFlZDhmODEyZjQ5MGM5NTM3OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYyMTgs
NyArNjIxOCw3IEBAIHZvaWQgV2ViUGFnZTo6c2NoZWR1bGVGdWxsRWRpdG9yU3RhdGVVcGRhdGUo
KQogICAgIG1faGFzUGVuZGluZ0VkaXRvclN0YXRlVXBkYXRlID0gdHJ1ZTsKICAgICAvLyBGSVhN
RTogU2NoZWR1bGluZyBhIGNvbXBvc2l0aW5nIGxheWVyIGZsdXNoIGhlcmUgY2FuIGJlIG1vcmUg
ZXhwZW5zaXZlIHRoYW4gbmVjZXNzYXJ5LgogICAgIC8vIEluc3RlYWQsIHdlIHNob3VsZCBqdXN0
IGNvbXB1dGUgYW5kIHNlbmQgcG9zdC1sYXlvdXQgZWRpdG9yIHN0YXRlIGR1cmluZyB0aGUgbmV4
dCBmcmFtZS4KLSAgICBtX2RyYXdpbmdBcmVhLT5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVz
aCgpOworICAgIG1fZHJhd2luZ0FyZWEtPnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAK
ICNpZiBIQVZFKFRPVUNIX0JBUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXggNDczODM1NzZjZjAzOTNkN2E0ZWQzZjU4Nzcz
YzM5OTM4OWVlZmFlNi4uMjQwNjhiNzA1ZGRmNzk3MGZlMDI4ZDgyOTFhZDBlZWEwNTI1OTQ0NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJ
T1MubW0KQEAgLTM0MTcsNyArMzQxNyw3IEBAIHZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0
U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXCiAgICAg
ICAgIHZpZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5nZWQoKTsKICNlbmRpZgogCi0gICAgbV9kcmF3
aW5nQXJlYS0+c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKKyAgICBtX2RyYXdpbmdB
cmVhLT5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogCiAgICAgbV9wZW5kaW5nRHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZUlEID0gZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAppbmRleCBhNzZmMWViYzFjOGYwNGFi
OTYzZWEzZjBkNjEyODgxYjY4N2U0NTBiLi43ZWMwOTAxZmZkNDNhODQxYjFlZTg2OTY0YmFhMzdj
ODk2M2UyNGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9t
YWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaApAQCAt
NjYsOCArNjYsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigp
IGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogICAgIHZvaWQgc2NoZWR1bGVJbml0aWFsRGVm
ZXJyZWRQYWludCgpIG92ZXJyaWRlOwotICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVy
Rmx1c2goKSBvdmVycmlkZTsKLSAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNo
SW1tZWRpYXRlbHkoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRl
KCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY2hlZHVsZUltbWVkaWF0ZVJlbmRlcmluZ1VwZGF0ZSgp
IG92ZXJyaWRlOwogCiAgICAgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJl
bmNlc1N0b3JlJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBtYWluRnJhbWVDb250ZW50U2l6ZUNoYW5n
ZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOwpAQCAtOTIsOCArOTIsOCBAQCBw
cml2YXRlOgogICAgIGJvb2wgYWRkTWlsZXN0b25lc1RvRGlzcGF0Y2goT3B0aW9uU2V0PFdlYkNv
cmU6OkxheW91dE1pbGVzdG9uZT4gcGFpbnRNaWxlc3RvbmVzKSBvdmVycmlkZTsKIAogICAgIHZv
aWQgYWRkQ29tbWl0SGFuZGxlcnMoKTsKLSAgICBlbnVtIGNsYXNzIEZsdXNoVHlwZSB7IE5vcm1h
bCwgVHJhbnNpZW50Wm9vbSB9OwotICAgIHZvaWQgZmx1c2hMYXllcnMoRmx1c2hUeXBlID0gRmx1
c2hUeXBlOjpOb3JtYWwpOworICAgIGVudW0gY2xhc3MgVXBkYXRlUmVuZGVyaW5nVHlwZSB7IE5v
cm1hbCwgVHJhbnNpZW50Wm9vbSB9OworICAgIHZvaWQgdXBkYXRlUmVuZGVyaW5nKFVwZGF0ZVJl
bmRlcmluZ1R5cGUgPSBVcGRhdGVSZW5kZXJpbmdUeXBlOjpOb3JtYWwpOwogCiAgICAgLy8gTWVz
c2FnZSBoYW5kbGVycy4KICAgICB2b2lkIHVwZGF0ZUdlb21ldHJ5KGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIHZpZXdTaXplLCBib29sIGZsdXNoU3luY2hyb25vdXNseSwgY29uc3QgV1RGOjpNYWNo
U2VuZFJpZ2h0JiBmZW5jZVBvcnQpIG92ZXJyaWRlOwpAQCAtMTMwLDE1ICsxMzAsMTUgQEAgcHJp
dmF0ZToKIAogICAgIHZvaWQgc2VuZFBlbmRpbmdOZXdseVJlYWNoZWRQYWludGluZ01pbGVzdG9u
ZXMoKTsKIAotICAgIHZvaWQgbGF5ZXJGbHVzaFJ1bkxvb3BDYWxsYmFjaygpOwotICAgIHZvaWQg
aW52YWxpZGF0ZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIoKTsKLSAgICB2b2lkIHNjaGVkdWxl
TGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOworICAgIHZvaWQgdXBkYXRlUmVuZGVyaW5nUnVu
TG9vcENhbGxiYWNrKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlUmVuZGVyaW5nVXBkYXRlUnVuTG9v
cE9ic2VydmVyKCk7CisgICAgdm9pZCBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNl
cnZlcigpOwogCi0gICAgYm9vbCBhZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhXZWJDb3JlOjpM
YXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RmxhZ3MpIG92ZXJyaWRlOwotICAgIGJvb2wgbGF5ZXJG
bHVzaFRocm90dGxpbmdJc0FjdGl2ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgYWRqdXN0
UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZyhPcHRpb25TZXQ8V2ViQ29yZTo6UmVuZGVyaW5nVXBk
YXRlVGhyb3R0bGVTdGF0ZT4pIG92ZXJyaWRlOworICAgIGJvb2wgcmVuZGVyaW5nVXBkYXRlVGhy
b3R0bGluZ0lzQWN0aXZlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHN0YXJ0TGF5ZXJG
bHVzaFRocm90dGxpbmdUaW1lcigpOwotICAgIHZvaWQgbGF5ZXJGbHVzaFRocm90dGxpbmdUaW1l
ckZpcmVkKCk7CisgICAgdm9pZCBzdGFydFJlbmRlclRocm90dGxpbmdUaW1lcigpOworICAgIHZv
aWQgcmVuZGVyVGhyb3R0bGluZ1RpbWVyRmlyZWQoKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxM
YXllckhvc3RpbmdDb250ZXh0PiBtX2xheWVySG9zdGluZ0NvbnRleHQ7CiAKQEAgLTE1Niw3ICsx
NTYsNyBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX3RyYW5zaWVudFpvb21TY2FsZSB7IDEgfTsK
ICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IG1fdHJhbnNpZW50Wm9vbU9yaWdpbjsKIAotICAgIFdl
YkNvcmU6OlRpbWVyIG1fbGF5ZXJGbHVzaFRocm90dGxpbmdUaW1lcjsKKyAgICBXZWJDb3JlOjpU
aW1lciBtX3JlbmRlclRocm90dGxpbmdUaW1lcjsKIAogICAgIFJ1bkxvb3A6OlRpbWVyPFRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhPiBtX3NlbmREaWRVcGRhdGVBY3Rpdml0eVN0YXRlVGlt
ZXI7CiAgICAgVmVjdG9yPENhbGxiYWNrSUQ+IG1fbmV4dEFjdGl2aXR5U3RhdGVDaGFuZ2VDYWxs
YmFja0lEczsKQEAgLTE2NywxNSArMTY3LDE1IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uU2V0PFdl
YkNvcmU6OkxheW91dE1pbGVzdG9uZT4gbV9wZW5kaW5nTmV3bHlSZWFjaGVkUGFpbnRpbmdNaWxl
c3RvbmVzOwogICAgIFZlY3RvcjxDYWxsYmFja0lEPiBtX3BlbmRpbmdDYWxsYmFja0lEczsKIAot
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpSdW5Mb29wT2JzZXJ2ZXI+IG1fbGF5ZXJGbHVz
aFJ1bkxvb3BPYnNlcnZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UnVuTG9vcE9i
c2VydmVyPiBtX3JlbmRlclVwZGF0ZVJ1bkxvb3BPYnNlcnZlcjsKIAogICAgIGJvb2wgbV9pc1Bh
aW50aW5nU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faW5VcGRhdGVHZW9tZXRyeSB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4geyBmYWxzZSB9Owog
ICAgIGJvb2wgbV9zaG91bGRTY2FsZVZpZXdUb0ZpdERvY3VtZW50IHsgZmFsc2UgfTsKICAgICBi
b29sIG1faXNTY2FsaW5nVmlld1RvRml0RG9jdW1lbnQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9p
c1Rocm90dGxpbmdMYXllckZsdXNoZXMgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc0xheWVyRmx1
c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uIHsgZmFsc2UgfTsK
KyAgICBib29sIG1faXNUaHJvdHRsaW5nUmVuZGVyaW5nVXBkYXRlcyB7IGZhbHNlIH07CisgICAg
Ym9vbCBtX2lzUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJ
bnRlcmFjdGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX25lZWRzU2VuZEVudGVyQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUgeyB0cnVlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEu
bW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWEubW0KaW5kZXggNTZmYTE4MDMyZjg4NWMyM2Q3YTM0Nzg1NTljMGYwYzYw
MzM1N2UwNC4uMjI2NmRiMDk4Y2Q2YzVmM2YyMGFjODM2OGMwM2YzMDUzZTgyYTk1MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtNzIsNyArNzIsNyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFdl
YlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgOiBEcmF3aW5nQXJlYShE
cmF3aW5nQXJlYVR5cGVUaWxlZENvcmVBbmltYXRpb24sIHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFJ
ZGVudGlmaWVyLCB3ZWJQYWdlKQotICAgICwgbV9sYXllckZsdXNoVGhyb3R0bGluZ1RpbWVyKCp0
aGlzLCAmVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmxheWVyRmx1c2hUaHJvdHRsaW5n
VGltZXJGaXJlZCkKKyAgICAsIG1fcmVuZGVyVGhyb3R0bGluZ1RpbWVyKCp0aGlzLCAmVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnJlbmRlclRocm90dGxpbmdUaW1lckZpcmVkKQogICAg
ICwgbV9zZW5kRGlkVXBkYXRlQWN0aXZpdHlTdGF0ZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhp
cywgJlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpkaWRVcGRhdGVBY3Rpdml0eVN0YXRl
VGltZXJGaXJlZCkKICAgICAsIG1faXNQYWludGluZ1N1c3BlbmRlZCghKHBhcmFtZXRlcnMuYWN0
aXZpdHlTdGF0ZSAmIEFjdGl2aXR5U3RhdGU6OklzVmlzaWJsZSkpCiB7CkBAIC04NCw4ICs4NCw4
IEBAIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpUaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYShXZWJQYWdlJiB3ZWJQYWdlLCBjCiAgICAgW21faG9zdGluZ0xheWVyIHNldE9wYXF1
ZTpZRVNdOwogICAgIFttX2hvc3RpbmdMYXllciBzZXRHZW9tZXRyeUZsaXBwZWQ6WUVTXTsKIAot
ICAgIG1fbGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlciA9IG1ha2VVbmlxdWU8UnVuTG9vcE9ic2Vy
dmVyPihzdGF0aWNfY2FzdDxDRkluZGV4PihSdW5Mb29wT2JzZXJ2ZXI6OldlbGxLbm93blJ1bkxv
b3BPcmRlcnM6OkxheWVyRmx1c2gpLCBbdGhpc10oKSB7Ci0gICAgICAgIHRoaXMtPmxheWVyRmx1
c2hSdW5Mb29wQ2FsbGJhY2soKTsKKyAgICBtX3JlbmRlclVwZGF0ZVJ1bkxvb3BPYnNlcnZlciA9
IG1ha2VVbmlxdWU8UnVuTG9vcE9ic2VydmVyPihzdGF0aWNfY2FzdDxDRkluZGV4PihSdW5Mb29w
T2JzZXJ2ZXI6OldlbGxLbm93blJ1bkxvb3BPcmRlcnM6OkxheWVyRmx1c2gpLCBbdGhpc10oKSB7
CisgICAgICAgIHRoaXMtPnVwZGF0ZVJlbmRlcmluZ1J1bkxvb3BDYWxsYmFjaygpOwogICAgIH0p
OwogCiAgICAgdXBkYXRlTGF5ZXJIb3N0aW5nQ29udGV4dCgpOwpAQCAtOTQsNyArOTQsNyBAQCBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWEoV2ViUGFnZSYgd2ViUGFnZSwgYwogCiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
flRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhKCkKIHsKLSAgICBpbnZhbGlkYXRlTGF5ZXJG
bHVzaFJ1bkxvb3BPYnNlcnZlcigpOworICAgIGludmFsaWRhdGVSZW5kZXJpbmdVcGRhdGVSdW5M
b29wT2JzZXJ2ZXIoKTsKIH0KIAogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
c2VuZEVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVJZk5lZWRlZCgpCkBAIC0xNTUsNyAr
MTU1LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Zm9yY2VSZXBhaW50
KCkKICAgICAgICAgZnJhbWVWaWV3LT50aWxlZEJhY2tpbmcoKS0+Zm9yY2VSZXBhaW50KCk7CiAg
ICAgfQogCi0gICAgZmx1c2hMYXllcnMoKTsKKyAgICB1cGRhdGVSZW5kZXJpbmcoKTsKICAgICBb
Q0FUcmFuc2FjdGlvbiBmbHVzaF07CiAgICAgW0NBVHJhbnNhY3Rpb24gc3luY2hyb25pemVdOwog
fQpAQCAtMTgyLDExICsxODIsMTEgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YTo6c2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihib29sIGxheWVyVHJlZVN0YXQKICAgICBtX2xh
eWVyVHJlZVN0YXRlSXNGcm96ZW4gPSBsYXllclRyZWVTdGF0ZUlzRnJvemVuOwogCiAgICAgaWYg
KG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbikgewotICAgICAgICBpbnZhbGlkYXRlTGF5ZXJGbHVz
aFJ1bkxvb3BPYnNlcnZlcigpOwotICAgICAgICBtX2xheWVyRmx1c2hUaHJvdHRsaW5nVGltZXIu
c3RvcCgpOworICAgICAgICBpbnZhbGlkYXRlUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVy
KCk7CisgICAgICAgIG1fcmVuZGVyVGhyb3R0bGluZ1RpbWVyLnN0b3AoKTsKICAgICB9IGVsc2Ug
ewogICAgICAgICAvLyBJbW1lZGlhdGUgZmx1c2ggYXMgYW55IGRlbGF5IGluIHVuZnJlZXppbmcg
Y2FuIHJlc3VsdCBpbiBmbGFzaGVzLgotICAgICAgICBzY2hlZHVsZUxheWVyRmx1c2hSdW5Mb29w
T2JzZXJ2ZXIoKTsKKyAgICAgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2
ZXIoKTsKICAgICB9CiB9CiAKQEAgLTE5OSwzMSArMTk5LDMxIEBAIHZvaWQgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OnNjaGVkdWxlSW5pdGlhbERlZmVycmVkUGFpbnQoKQogewogfQog
Ci12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZUNvbXBvc2l0aW5n
TGF5ZXJGbHVzaCgpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVs
ZVJlbmRlcmluZ1VwZGF0ZSgpCiB7CiAgICAgaWYgKG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbikg
ewotICAgICAgICBtX2lzTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9y
SW50ZXJhY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgbV9pc1JlbmRlcmluZ1VwZGF0ZVRocm90dGxp
bmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24gPSBmYWxzZTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIGlmIChtX2lzTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3Jhcmls
eURpc2FibGVkRm9ySW50ZXJhY3Rpb24pIHsKLSAgICAgICAgbV9pc0xheWVyRmx1c2hUaHJvdHRs
aW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uID0gZmFsc2U7Ci0gICAgICAgIHNj
aGVkdWxlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOwotICAgICAgICBtX2xheWVyRmx1c2hU
aHJvdHRsaW5nVGltZXIuc3RvcCgpOworICAgIGlmIChtX2lzUmVuZGVyaW5nVXBkYXRlVGhyb3R0
bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbikgeworICAgICAgICBtX2lzUmVu
ZGVyaW5nVXBkYXRlVGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbiA9
IGZhbHNlOworICAgICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZlcigp
OworICAgICAgICBtX3JlbmRlclRocm90dGxpbmdUaW1lci5zdG9wKCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBpZiAobV9sYXllckZsdXNoVGhyb3R0bGluZ1RpbWVyLmlzQWN0aXZl
KCkpIHsKLSAgICAgICAgQVNTRVJUKG1faXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzKTsKKyAgICBp
ZiAobV9yZW5kZXJUaHJvdHRsaW5nVGltZXIuaXNBY3RpdmUoKSkgeworICAgICAgICBBU1NFUlQo
bV9pc1Rocm90dGxpbmdSZW5kZXJpbmdVcGRhdGVzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIHNjaGVkdWxlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOworICAgIHNjaGVkdWxl
UmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyKCk7CiB9CiAKLXZvaWQgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRl
bHkoKQordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NoZWR1bGVJbW1lZGlh
dGVSZW5kZXJpbmdVcGRhdGUoKQogewotICAgIHNjaGVkdWxlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNl
cnZlcigpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyKCk7CiB9
CiAKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVByZWZlcmVuY2Vz
KGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKQpAQCAtMjcxLDcgKzI3MSw3IEBAIHZvaWQgVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXll
cihHcmFwaGljc0xheWVyCiB7CiAgICAgbV92aWV3T3ZlcmxheVJvb3RMYXllciA9IHZpZXdPdmVy
bGF5Um9vdExheWVyOwogICAgIHVwZGF0ZVJvb3RMYXllcnMoKTsKLSAgICBzY2hlZHVsZUNvbXBv
c2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAK
IHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6Om1haW5GcmFtZUNvbnRlbnRTaXpl
Q2hhbmdlZChjb25zdCBJbnRTaXplJiBzaXplKQpAQCAtMjg0LDcgKzI4NCw3IEBAIHZvaWQgVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldFNob3VsZFNjYWxlVmlld1RvRml0RG9jdW1l
bnQoYm9vbCBzaG91bGRTCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc2hvdWxkU2NhbGVWaWV3
VG9GaXREb2N1bWVudCA9IHNob3VsZFNjYWxlVmlldzsKLSAgICBzY2hlZHVsZUNvbXBvc2l0aW5n
TGF5ZXJGbHVzaCgpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKIHZvaWQg
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNjYWxlVmlld1RvRml0RG9jdW1lbnRJZk5l
ZWRlZCgpCkBAIC0zOTIsNyArMzkyLDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYTo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nVXBkYXRlZFNjcm9sbFBvc2l0aW9uKFcKICAgICBt
X3dlYlBhZ2UuY29yZVBhZ2UoKS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKS0+Y29tbWl0VHJlZVN0
YXRlSWZOZWVkZWQoKTsKIAogICAgIGlmICghbV9sYXllclRyZWVTdGF0ZUlzRnJvemVuKQotICAg
ICAgICBpbnZhbGlkYXRlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOworICAgICAgICBpbnZh
bGlkYXRlUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyKCk7CiAKICAgICAvLyBJdCBpcyBw
b3NzaWJsZSBmb3IgdGhlIGRyYXdpbmcgYXJlYSB0byBiZSBkZXN0cm95ZWQgYmVmb3JlIHRoZSBi
b3VuZCBibG9jawogICAgIC8vIGlzIGludm9rZWQsIHNvIGdyYWIgYSByZWZlcmVuY2UgdG8gdGhl
IHdlYiBwYWdlIGhlcmUgc28gd2UgY2FuIGFjY2VzcyB0aGUgZHJhd2luZyBhcmVhIHRocm91Z2gg
aXQuCkBAIC00MDcsNyArNDA3LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YTo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nVXBkYXRlZFNjcm9sbFBvc2l0aW9uKFcKICAgICAgICAg
ZnVuY3Rpb24oKTsKIAogICAgICAgICBpZiAoIW1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbikKLSAg
ICAgICAgICAgIHNjaGVkdWxlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOworICAgICAgICAg
ICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIoKTsKIAogICAgICAgICB3
ZWJQYWdlLT5kZXJlZigpOwogICAgIH0pOwpAQCAtNDI4LDcgKzQyOCw3IEBAIHZvaWQgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNlbmRQZW5kaW5nTmV3bHlSZWFjaGVkUGFpbnRpbmdN
aWxlc3RvbmVzKCkKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmFkZFRyYW5z
YWN0aW9uQ2FsbGJhY2tJRChDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgbV9wZW5kaW5n
Q2FsbGJhY2tJRHMuYXBwZW5kKGNhbGxiYWNrSUQpOwotICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdM
YXllckZsdXNoKCk7CisgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6YWRkQ29tbWl0SGFuZGxlcnMoKQpAQCAtNDU2
LDcgKzQ1Niw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmFkZENvbW1p
dEhhbmRsZXJzKCkKICAgICBtX3dlYlBhZ2Uuc2V0Rmlyc3RGbHVzaEFmdGVyQ29tbWl0KHRydWUp
OwogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmbHVzaExheWVycyhG
bHVzaFR5cGUgZmx1c2hUeXBlKQordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
dXBkYXRlUmVuZGVyaW5nKFVwZGF0ZVJlbmRlcmluZ1R5cGUgZmx1c2hUeXBlKQogewogICAgIGlm
IChsYXllclRyZWVTdGF0ZUlzRnJvemVuKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTQ4Nyw3ICs0
ODcsNyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmbHVzaExheWVycyhG
bHVzaFR5cGUgZmx1c2hUeXBlKQogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAgICAgICAg
IGlmIChhdXRvKiBzY3JvbGxpbmdDb29yZGluYXRvciA9IG1fd2ViUGFnZS5jb3JlUGFnZSgpLT5z
Y3JvbGxpbmdDb29yZGluYXRvcigpKSB7CiAgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRv
ci0+Y29tbWl0VHJlZVN0YXRlSWZOZWVkZWQoKTsKLSAgICAgICAgICAgIGlmIChmbHVzaFR5cGUg
PT0gRmx1c2hUeXBlOjpOb3JtYWwpCisgICAgICAgICAgICBpZiAoZmx1c2hUeXBlID09IFVwZGF0
ZVJlbmRlcmluZ1R5cGU6Ok5vcm1hbCkKICAgICAgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGlu
YXRvci0+YXBwbHlTY3JvbGxpbmdUcmVlTGF5ZXJQb3NpdGlvbnMoKTsKICAgICAgICAgfQogI2Vu
ZGlmCkBAIC01MDQsMTMgKzUwNCwxMyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpmbHVzaExheWVycyhGbHVzaFR5cGUgZmx1c2hUeXBlKQogCiAgICAgICAgIGlmIChkaWRG
bHVzaEFsbEZyYW1lcykgewogICAgICAgICAgICAgc2VuZEVudGVyQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGVJZk5lZWRlZCgpOwotICAgICAgICAgICAgaW52YWxpZGF0ZUxheWVyRmx1c2hSdW5M
b29wT2JzZXJ2ZXIoKTsKKyAgICAgICAgICAgIGludmFsaWRhdGVSZW5kZXJpbmdVcGRhdGVSdW5M
b29wT2JzZXJ2ZXIoKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChtX2lzVGhyb3R0bGluZ0xh
eWVyRmx1c2hlcykKLSAgICAgICAgICAgIHN0YXJ0TGF5ZXJGbHVzaFRocm90dGxpbmdUaW1lcigp
OworICAgICAgICBpZiAobV9pc1Rocm90dGxpbmdSZW5kZXJpbmdVcGRhdGVzKQorICAgICAgICAg
ICAgc3RhcnRSZW5kZXJUaHJvdHRsaW5nVGltZXIoKTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgbV9sYXllckZsdXNoVGhyb3R0bGluZ1RpbWVyLnN0b3AoKTsKKyAgICAgICAgICAgIG1fcmVu
ZGVyVGhyb3R0bGluZ1RpbWVyLnN0b3AoKTsKICAgICB9CiB9CiAKQEAgLTU0OSw2ICs1NDksNyBA
QCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzdXNwZW5kUGFpbnRpbmcoKQog
ICAgIEFTU0VSVCghbV9pc1BhaW50aW5nU3VzcGVuZGVkKTsKICAgICBtX2lzUGFpbnRpbmdTdXNw
ZW5kZWQgPSB0cnVlOwogCisgICAgLy8gVGhpcyBpcyBhIHNpZ25hbCB0byBtZWRpYSBmcmFtZXdv
cmtzOyBpdCBkb2VzIG5vdCBhY3RpdmVseSBwYXVzZSBhbnl0aGluZy4KICAgICBbbV9ob3N0aW5n
TGF5ZXIgc2V0VmFsdWU6QFlFUyBmb3JLZXk6QCJOU0NBVmlld1JlbmRlclBhdXNlZCJdOwogICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5h
bWU6QCJOU0NBVmlld1JlbmRlckRpZFBhdXNlTm90aWZpY2F0aW9uIiBvYmplY3Q6bmlsIHVzZXJJ
bmZvOltOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3Q6bV9ob3N0aW5nTGF5ZXIuZ2V0
KCkgZm9yS2V5OkAibGF5ZXIiXV07CiB9CkBAIC02MjMsNyArNjI0LDcgQEAgdm9pZCBUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmll
d1NpemUsIGJvb2wKICAgICAgICAgc2l6ZSA9IGNvbnRlbnRTaXplOwogICAgIH0KIAotICAgIGZs
dXNoTGF5ZXJzKCk7CisgICAgdXBkYXRlUmVuZGVyaW5nKCk7CiAKICAgICBbQ0FUcmFuc2FjdGlv
biBiZWdpbl07CiAgICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKQEAg
LTkyOSw3ICs5MzAsNyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjphcHBs
eVRyYW5zaWVudFpvb21Ub1BhZ2UoZG91YmxlIHNjYWxlLCBGbG9hdAogICAgIHVuc2Nyb2xsZWRP
cmlnaW4ubW92ZUJ5KC11bm9ic2N1cmVkQ29udGVudFJlY3QubG9jYXRpb24oKSk7CiAgICAgbV93
ZWJQYWdlLnNjYWxlUGFnZShzY2FsZSAvIG1fd2ViUGFnZS52aWV3U2NhbGVGYWN0b3IoKSwgcm91
bmRlZEludFBvaW50KC11bnNjcm9sbGVkT3JpZ2luKSk7CiAgICAgbV90cmFuc2llbnRab29tU2Nh
bGUgPSAxOwotICAgIGZsdXNoTGF5ZXJzKEZsdXNoVHlwZTo6VHJhbnNpZW50Wm9vbSk7CisgICAg
dXBkYXRlUmVuZGVyaW5nKFVwZGF0ZVJlbmRlcmluZ1R5cGU6OlRyYW5zaWVudFpvb20pOwogfQog
CiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjphZGRGZW5jZShjb25zdCBNYWNo
U2VuZFJpZ2h0JiBmZW5jZVBvcnQpCkBAIC05MzcsNzEgKzkzOCw3MSBAQCB2b2lkIFRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjphZGRGZW5jZShjb25zdCBNYWNoU2VuZFJpZ2h0JiBmZW5j
ZVBvcnQpCiAgICAgbV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRGZW5jZVBvcnQoZmVuY2VQb3J0
LnNlbmRSaWdodCgpKTsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
bGF5ZXJGbHVzaFJ1bkxvb3BDYWxsYmFjaygpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhOjp1cGRhdGVSZW5kZXJpbmdSdW5Mb29wQ2FsbGJhY2soKQogewotICAgIHRyYWNlUG9p
bnQoTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlckVuZCwgMCk7CisgICAgdHJhY2VQb2ludChSZW5k
ZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXJFbmQsIDApOwogCi0gICAgZmx1c2hMYXllcnMoKTsK
KyAgICB1cGRhdGVSZW5kZXJpbmcoKTsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYTo6aW52YWxpZGF0ZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIoKQordm9pZCBUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6aW52YWxpZGF0ZVJlbmRlcmluZ1VwZGF0ZVJ1bkxv
b3BPYnNlcnZlcigpCiB7Ci0gICAgaWYgKCFtX2xheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXItPmlz
U2NoZWR1bGVkKCkpCisgICAgaWYgKCFtX3JlbmRlclVwZGF0ZVJ1bkxvb3BPYnNlcnZlci0+aXNT
Y2hlZHVsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgdHJhY2VQb2ludChMYXllckZsdXNo
UnVuTG9vcE9ic2VydmVyRW5kLCAxKTsKKyAgICB0cmFjZVBvaW50KFJlbmRlcmluZ1VwZGF0ZVJ1
bkxvb3BPYnNlcnZlckVuZCwgMSk7CiAKLSAgICBtX2xheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIt
PmludmFsaWRhdGUoKTsKKyAgICBtX3JlbmRlclVwZGF0ZVJ1bkxvb3BPYnNlcnZlci0+aW52YWxp
ZGF0ZSgpOwogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVs
ZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIoKQordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYTo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIoKQogewotICAg
IHRyYWNlUG9pbnQoTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlclN0YXJ0KTsKKyAgICB0cmFjZVBv
aW50KFJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZlclN0YXJ0KTsKICAgICAKLSAgICBtX2xh
eWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXItPnNjaGVkdWxlKENGUnVuTG9vcEdldEN1cnJlbnQoKSk7
CisgICAgbV9yZW5kZXJVcGRhdGVSdW5Mb29wT2JzZXJ2ZXItPnNjaGVkdWxlKENGUnVuTG9vcEdl
dEN1cnJlbnQoKSk7CiB9CiAKLWJvb2wgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmFk
anVzdExheWVyRmx1c2hUaHJvdHRsaW5nKExheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpGbGFncyBm
bGFncykKK2Jvb2wgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmFkanVzdFJlbmRlcmlu
Z1VwZGF0ZVRocm90dGxpbmcoT3B0aW9uU2V0PFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU+
IGZsYWdzKQogewotICAgIGJvb2wgd2FzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyA9IG1faXNUaHJv
dHRsaW5nTGF5ZXJGbHVzaGVzOwotICAgIG1faXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzID0gZmxh
Z3MgJiBMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RW5hYmxlZDsKLSAgICBtX2lzTGF5ZXJGbHVz
aFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24gPSBmbGFncyAmIExh
eWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpVc2VySXNJbnRlcmFjdGluZzsKKyAgICBib29sIHdhc1Ro
cm90dGxpbmdSZW5kZXJpbmcgPSBtX2lzVGhyb3R0bGluZ1JlbmRlcmluZ1VwZGF0ZXM7CisgICAg
bV9pc1Rocm90dGxpbmdSZW5kZXJpbmdVcGRhdGVzID0gZmxhZ3MuY29udGFpbnMoUmVuZGVyaW5n
VXBkYXRlVGhyb3R0bGVTdGF0ZTo6RW5hYmxlZCk7CisgICAgbV9pc1JlbmRlcmluZ1VwZGF0ZVRo
cm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24gPSBmbGFncy5jb250YWlu
cyhSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlOjpVc2VySXNJbnRlcmFjdGluZyk7CiAKLSAg
ICBpZiAod2FzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyA9PSBtX2lzVGhyb3R0bGluZ0xheWVyRmx1
c2hlcykKKyAgICBpZiAod2FzVGhyb3R0bGluZ1JlbmRlcmluZyA9PSBtX2lzVGhyb3R0bGluZ1Jl
bmRlcmluZ1VwZGF0ZXMpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgbV9sYXllckZsdXNo
VGhyb3R0bGluZ1RpbWVyLnN0b3AoKTsKKyAgICBtX3JlbmRlclRocm90dGxpbmdUaW1lci5zdG9w
KCk7CiAKICAgICBpZiAobV9sYXllclRyZWVTdGF0ZUlzRnJvemVuKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIAotICAgIGlmIChtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcykgewotICAgICAgICBp
bnZhbGlkYXRlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOwotICAgICAgICBzdGFydExheWVy
Rmx1c2hUaHJvdHRsaW5nVGltZXIoKTsKKyAgICBpZiAobV9pc1Rocm90dGxpbmdSZW5kZXJpbmdV
cGRhdGVzKSB7CisgICAgICAgIGludmFsaWRhdGVSZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2
ZXIoKTsKKyAgICAgICAgc3RhcnRSZW5kZXJUaHJvdHRsaW5nVGltZXIoKTsKICAgICB9IGVsc2UK
LSAgICAgICAgc2NoZWR1bGVMYXllckZsdXNoUnVuTG9vcE9ic2VydmVyKCk7CisgICAgICAgIHNj
aGVkdWxlUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyKCk7CiAKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotYm9vbCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6bGF5ZXJGbHVzaFRo
cm90dGxpbmdJc0FjdGl2ZSgpIGNvbnN0Citib29sIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpyZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nSXNBY3RpdmUoKSBjb25zdAogewotICAgIHJl
dHVybiBtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyAmJiAhbV9sYXllclRyZWVTdGF0ZUlzRnJv
emVuOworICAgIHJldHVybiBtX2lzVGhyb3R0bGluZ1JlbmRlcmluZ1VwZGF0ZXMgJiYgIW1fbGF5
ZXJUcmVlU3RhdGVJc0Zyb3plbjsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYTo6c3RhcnRMYXllckZsdXNoVGhyb3R0bGluZ1RpbWVyKCkKK3ZvaWQgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OnN0YXJ0UmVuZGVyVGhyb3R0bGluZ1RpbWVyKCkKIHsKLSAgICBB
U1NFUlQobV9pc1Rocm90dGxpbmdMYXllckZsdXNoZXMpOworICAgIEFTU0VSVChtX2lzVGhyb3R0
bGluZ1JlbmRlcmluZ1VwZGF0ZXMpOwogCiAgICAgY29uc3QgYXV0byB0aHJvdHRsZWRGbHVzaERl
bGF5ID0gNTAwX21zOwotICAgIG1fbGF5ZXJGbHVzaFRocm90dGxpbmdUaW1lci5zdGFydE9uZVNo
b3QodGhyb3R0bGVkRmx1c2hEZWxheSk7CisgICAgbV9yZW5kZXJUaHJvdHRsaW5nVGltZXIuc3Rh
cnRPbmVTaG90KHRocm90dGxlZEZsdXNoRGVsYXkpOwogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhOjpsYXllckZsdXNoVGhyb3R0bGluZ1RpbWVyRmlyZWQoKQordm9pZCBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6cmVuZGVyVGhyb3R0bGluZ1RpbWVyRmlyZWQo
KQogewogICAgIGlmIChtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4pCiAgICAgICAgIHJldHVybjsK
LSAgICBzY2hlZHVsZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIoKTsKKyAgICBzY2hlZHVsZVJl
bmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZlcigpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNDI1YWJmYzFhOTE3MTliOGQyNWNkZWI3NTk5NGU1OGUx
NjY0ZWE5ZS4uMWJhZmFmMDg0MzUxYjZlNTc0MGQ2OWJjNWY0OTRiYmMwY2ZhODUxZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKQEAgLTE2OSw3ICsxNjksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYXR0YWNo
Um9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVy
Kikgb3ZlcnJpZGU7CiAgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwogICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJh
d2luZ1N5bmNocm9uaXphdGlvbigpIGZpbmFsOwotICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGlu
Z0xheWVyRmx1c2goKSBmaW5hbDsKKyAgICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkg
ZmluYWw7CiAgICAgYm9vbCBuZWVkc0ltbWVkaWF0ZVJlbmRlcmluZ1VwZGF0ZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIENvbXBvc2l0aW5nVHJpZ2dlckZsYWdzIGFsbG93
ZWRDb21wb3NpdGluZ1RyaWdnZXJzKCkgY29uc3QgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRl
eCAzYjVmYjgyZTIwYWVjYzA4MmRhZDdiZTRiOTQxMDE4Njk2MzFhZmJkLi44OWUwMTQyY2EwMTg2
NmNmZmI2NTFjZmRjYjkzOTY0N2ZmYTlkOTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC05NDIs
MTAgKzk0MiwxMCBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TmVlZHNPbmVTaG90RHJhd2lu
Z1N5bmNocm9uaXphdGlvbigpCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAot
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkKK3Zv
aWQgV2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpCiB7CiAgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAgIFttX3dlYlZpZXcgX3NjaGVkdWxlQ29tcG9z
aXRpbmdMYXllckZsdXNoXTsKKyAgICBbbV93ZWJWaWV3IF9zY2hlZHVsZVVwZGF0ZVJlbmRlcmlu
Z107CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGRmZTY2M2ZjOWI1ZWYyODk3YWRkNDg5
ZjUyMTM2MDg2YWJmODMyNTkuLjc4NTAxOTBlNDFjYTAzMDFjZmMzMjRmNWVkMGRiY2U3ZGFiODI0
NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTky
ODgsNyArOTI4OCw3IEBAIGJvb2wgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OmZsdXNoTGF5ZXJzKCkK
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLS0gKHZvaWQpX3NjaGVkdWxlQ29tcG9zaXRpbmdMYXll
ckZsdXNoCistICh2b2lkKV9zY2hlZHVsZVVwZGF0ZVJlbmRlcmluZwogewogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgaWYgKF9wcml2YXRlLT5jbG9zaW5nKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCmluZGV4IDY4MDM3YzA2ZWZiNzg4N2M0
YmQ1YzI1M2FhNjlhZDQyZjNkZTZkYWMuLmUyZmRlNDU2NTYzNjhjZDRkYzJjNmQwZWY0ZmI2NWEy
YmEzMjE0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2Vi
Vmlld0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdE
YXRhLmgKQEAgLTEzMCw2ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IExheWVyRmx1c2hDb250cm9sbGVyKHdlYlZpZXcpKTsKICAgICB9CiAgICAgCisgICAg
Ly8gRklYTUU6IFJlbmFtZSB0byB1c2UgJ3VwZGF0ZVJlbmRlcmluZycgdGVybWlub2xvZ3kuCiAg
ICAgYm9vbCBmbHVzaExheWVycygpOwogICAgIAogICAgIHZvaWQgc2NoZWR1bGVMYXllckZsdXNo
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJ
bnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJu
YWwuaAppbmRleCA4ZWM3OTk5OWUzOWFiZTdmODFiZjM1NGZmMTkzNzgxYjY5MmU5ZTg2Li41NmM4
ZDU2MjkwZGRjZWE0YThjOWMwZGMwMmYwOGZlOWE0Yjg4ODhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKQEAgLTEyOCw3ICsxMjgs
NyBAQCBPQkpDX0NMQVNTIE5TVGV4dEFsdGVybmF0aXZlczsKIAogLSAoQk9PTClfbmVlZHNPbmVT
aG90RHJhd2luZ1N5bmNocm9uaXphdGlvbjsKIC0gKHZvaWQpX3NldE5lZWRzT25lU2hvdERyYXdp
bmdTeW5jaHJvbml6YXRpb246KEJPT0wpbmVlZHNTeW5jaHJvbml6YXRpb247Ci0tICh2b2lkKV9z
Y2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaDsKKy0gKHZvaWQpX3NjaGVkdWxlVXBkYXRlUmVu
ZGVyaW5nOwogLSAoQk9PTClfZmx1c2hDb21wb3NpdGluZ0NoYW5nZXM7CiAKICNpZiBVU0UoQVVU
T0NPUlJFQ1RJT05fUEFORUwpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9D
aGFuZ2VMb2cKaW5kZXggNzc2YTc3ZTc3NWViYzU3MWViMDJhZWQ1ZGExM2Y3MWY2YmMwZWUyMy4u
YWFkNjkzZDE1NDE1ODBjOGQwN2VlMmU2YzA3MDgxYTNlMzA3MWMwZSAxMDA2NDQKLS0tIGEvVG9v
bHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIw
LTAyLTE3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAg
IE1vdmUgZnJvbSAibGF5ZXIgZmx1c2giIHRlcm1pbm9sb2d5IHRvICJyZW5kZXJpbmcgdXBkYXRl
IgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3ODcw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBSZW5hbWUgdmFy
aW91cyBmdW5jdGlvbnMgYW5kIG1lbWJlciB2YXJpYWJsZXMgdG8gbW92ZSBhd2F5IGZyb20gdGhl
IGxlZ2FjeSAibGF5ZXIgZmx1c2giCisgICAgICAgIHRlcm1pbm9sb2d5IGFuZCBpbnN0ZWFkIHVz
ZSAicmVuZGVyaW5nIHVwZGF0ZSIsIG1hdGNoaW5nIFBhZ2U6OnVwZGF0ZVJlbmRlcmluZygpLiBU
aGUgZmFjdAorICAgICAgICB0aGF0IHdlIGhhdmUgbGF5ZXJzIGlzIGFuIGltcGxlbWVudGF0aW9u
IGRldGFpbC4KKyAgICAgICAgCisgICAgICAgIENoYW5nZSBMYXllckZsdXNoVGhyb3R0bGluZ1N0
YXRlIHRvIGJlIGFuIE9wdGlvblNldDw+LgorCisgICAgICAgICogVHJhY2luZy9TeXN0ZW1UcmFj
ZVBvaW50cy5wbGlzdDoKKwogMjAyMC0wMi0xNyAgQWFrYXNoIEphaW4gIDxhYWthc2hfamFpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgRVdTIHNob3VsZCBiZSBhYmxlIHRvIGNvbW1lbnQgb24gQnVn
emlsbGEKZGlmZiAtLWdpdCBhL1Rvb2xzL1RyYWNpbmcvU3lzdGVtVHJhY2VQb2ludHMucGxpc3Qg
Yi9Ub29scy9UcmFjaW5nL1N5c3RlbVRyYWNlUG9pbnRzLnBsaXN0CmluZGV4IDFlM2IyYmIyNTQw
NjhiNjljNGRkZjBjZTA2MDUyMTBhYTViNDg0N2EuLjJiNTNiNDJjZWViOWJmN2QzYzcyOTY2ZjJi
ZGEyYjkzMWI2ZmY4NGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1RyYWNpbmcvU3lzdGVtVHJhY2VQb2lu
dHMucGxpc3QKKysrIGIvVG9vbHMvVHJhY2luZy9TeXN0ZW1UcmFjZVBvaW50cy5wbGlzdApAQCAt
MzU5LDcgKzM1OSw3IEBACiAgICAgICAgICAgICAgPC9kaWN0PgogICAgICAgICAgICAgIDxkaWN0
PgogICAgICAgICAgICAgICAgICA8a2V5Pk5hbWU8L2tleT4KLSAgICAgICAgICAgICAgICAgPHN0
cmluZz5MYXllciBmbHVzaCBydW5sb29wIG9ic2VydmVyPC9zdHJpbmc+CisgICAgICAgICAgICAg
ICAgIDxzdHJpbmc+UmVuZGVyaW5nIHVwZGF0ZSBydW5sb29wIG9ic2VydmVyPC9zdHJpbmc+CiAg
ICAgICAgICAgICAgICAgIDxrZXk+VHlwZTwva2V5PgogICAgICAgICAgICAgICAgICA8c3RyaW5n
PkludGVydmFsPC9zdHJpbmc+CiAgICAgICAgICAgICAgICAgIDxrZXk+Q29tcG9uZW50PC9rZXk+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391020</attachid>
            <date>2020-02-17 18:59:55 -0800</date>
            <delta_ts>2020-02-17 23:01:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207870-20200217185954.patch</filename>
            <type>text/plain</type>
            <size>80958</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2ODA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJlMzM1MzljNTExNzY1MWM0NzAyY2I1
ZTg0ZGU3Y2E2YjRjZGEwZjQuLjY3YTJkODU0Yzk2MjUyOWI2MGUxMDI0NGYxZmUwMjVmOWJhODdl
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDItMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBmcm9tICJsYXllciBmbHVzaCIgdGVy
bWlub2xvZ3kgdG8gInJlbmRlcmluZyB1cGRhdGUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0g
SG9ydG9uLgorCisgICAgICAgICogd3RmL1N5c3RlbVRyYWNpbmcuaDoKKwogMjAyMC0wMi0xNyAg
TWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgZ2V0VlRhYmxlUG9pbnRl
cigpIHNob3VsZCByZXR1cm4gYSBjb25zdCB2b2lkKi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxYTViMGQ0OWU2
MDAyYjNkYTdmMTE4NGY1MTc1MDA1NzUyN2RkM2ZlLi5hZGMwNzI1NzA1Y2E2OGFmYjQwZmJkYjIw
OWYxNWRlZjFjNTBkNzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjAtMDItMTcg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBm
cm9tICJsYXllciBmbHVzaCIgdGVybWlub2xvZ3kgdG8gInJlbmRlcmluZyB1cGRhdGUiCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc4NzAKKworICAg
ICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIFJlbmFtZSB2YXJpb3VzIGZ1
bmN0aW9ucyBhbmQgbWVtYmVyIHZhcmlhYmxlcyB0byBtb3ZlIGF3YXkgZnJvbSB0aGUgbGVnYWN5
ICJsYXllciBmbHVzaCIKKyAgICAgICAgdGVybWlub2xvZ3kgYW5kIGluc3RlYWQgdXNlICJyZW5k
ZXJpbmcgdXBkYXRlIiwgbWF0Y2hpbmcgUGFnZTo6dXBkYXRlUmVuZGVyaW5nKCkuIFRoZSBmYWN0
CisgICAgICAgIHRoYXQgd2UgaGF2ZSBsYXllcnMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWls
LgorICAgICAgICAKKyAgICAgICAgQ2hhbmdlIExheWVyRmx1c2hUaHJvdHRsaW5nU3RhdGUgdG8g
YmUgYW4gT3B0aW9uU2V0PD4uCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNjaGVkdWxlU3R5bGVSZWNhbGMp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNob3VsZFNjaGVkdWxlTGF5b3V0KToKKyAg
ICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6cmVuZGVyaW5nVXBkYXRlVGhy
b3R0bGluZ0lzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6
YWRqdXN0UmVuZGVyVXBkYXRlVGhyb3R0bGluZyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnQ6OmxheWVyRmx1c2hUaHJvdHRsaW5nSXNBY3RpdmUgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjphZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyk6
IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6ZGV0ZXJtaW5lTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpkaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVy
YWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dXBkYXRlTGF5ZXJGbHVzaFRo
cm90dGxpbmcpOgorICAgICAgICAqIHBhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcjo6c2NoZWR1bGVJbW1l
ZGlhdGVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAqIHBhZ2UvUmVuZGVyaW5nVXBkYXRlVGhy
b3R0bGVTdGF0ZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9MYXllckZsdXNo
VGhyb3R0bGVTdGF0ZS5oLgorCiAyMDIwLTAyLTE3ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBs
ZS5jb20+CiAKICAgICAgICAgTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCkgc2F5cyAidmlk
ZW8vbXA0O2NvZGVjcz1cImF2YzMuNDJDMDE1XCIiIGlzIG5vdCBzdXBwb3J0ZWQsIGJ1dCBpdCBp
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAxZDY0NTZlNDBmYjI0ODI3YzVmMWYyY2Y5ZmNiM2VhMDgwYTgyMzgzLi44
NGViMzMxYTc2ZjFiZjU0ZmJjNTFmODU4MDQyNmNmOGI0YzQ3MTUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDk0IEBACisyMDIwLTAyLTE3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIE1vdmUgZnJvbSAibGF5ZXIgZmx1c2giIHRlcm1pbm9sb2d5IHRvICJy
ZW5kZXJpbmcgdXBkYXRlIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA3ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKyAgICAg
ICAgCisgICAgICAgIFJlbmFtZSB2YXJpb3VzIGZ1bmN0aW9ucyBhbmQgbWVtYmVyIHZhcmlhYmxl
cyB0byBtb3ZlIGF3YXkgZnJvbSB0aGUgbGVnYWN5ICJsYXllciBmbHVzaCIKKyAgICAgICAgdGVy
bWlub2xvZ3kgYW5kIGluc3RlYWQgdXNlICJyZW5kZXJpbmcgdXBkYXRlIiwgbWF0Y2hpbmcgUGFn
ZTo6dXBkYXRlUmVuZGVyaW5nKCkuIFRoZSBmYWN0CisgICAgICAgIHRoYXQgd2UgaGF2ZSBsYXll
cnMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLgorICAgICAgICAKKyAgICAgICAgQ2hhbmdl
IExheWVyRmx1c2hUaHJvdHRsaW5nU3RhdGUgdG8gYmUgYW4gT3B0aW9uU2V0PD4uCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmFkanVzdFJlbmRlclVwZGF0ZVRocm90
dGxpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJlbmRlcmluZ1VwZGF0
ZVRocm90dGxpbmdJc0FjdGl2ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2gpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpsYXllckZsdXNoVGhyb3R0
bGluZ0lzQWN0aXZlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6cmVuZGVyaW5n
VXBkYXRlVGhyb3R0bGluZ0lzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6RHJhd2lu
Z0FyZWE6OmFkanVzdFJlbmRlclVwZGF0ZVRocm90dGxpbmcpOgorICAgICAgICAoV2ViS2l0OjpE
cmF3aW5nQXJlYTo6bGF5ZXJGbHVzaFRocm90dGxpbmdJc0FjdGl2ZSBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjphZGp1c3RMYXllckZsdXNoVGhyb3R0bGlu
Zyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllclRyZWVDb250ZXh0Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZUNvbnRleHQ6OnNldE5leHRGbHVzaElzRm9ySW1tZWRpYXRlUGFpbnQpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMYXllclRyZWVDb250ZXh0OjpuZXh0Rmx1c2hJc0ZvckltbWVkaWF0ZVBh
aW50IGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpyZXF1ZXN0UmVmcmVzaENh
bGxiYWNrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OlJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNl
dFJvb3RDb21wb3NpdGluZ0xheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWE6OnNldExheWVyVHJlZVN0YXRlSXNGcm96ZW4pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zm9yY2VSZXBhaW50KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNldEV4cG9zZWRDb250ZW50
UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzY2hl
ZHVsZUltbWVkaWF0ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhOjpzY2hlZHVsZUluaXRpYWxEZWZlcnJlZFBhaW50KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVkdWxlUmVuZGVyaW5n
VXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmFk
anVzdFJlbmRlclVwZGF0ZVRocm90dGxpbmcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYTo6dXBkYXRlUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmRpZFVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjphY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmFkZFRyYW5zYWN0aW9uQ2Fs
bGJhY2tJRCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpz
Y2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaEltbWVkaWF0ZWx5KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVkdWxlQ29tcG9zaXRp
bmdMYXllckZsdXNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWE6OmFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvcjo6c2NoZWR1bGVUcmVlU3RhdGVDb21taXQpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2No
ZWR1bGVGdWxsRWRpdG9yU3RhdGVVcGRhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6
OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYSk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp+
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Zm9yY2VSZXBhaW50KToKKyAgICAgICAgKFdlYktpdDo6
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldExheWVyVHJlZVN0YXRlSXNGcm96ZW4p
OgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NoZWR1
bGVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYTo6c2NoZWR1bGVJbW1lZGlhdGVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAo
V2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6YXR0YWNoVmlld092ZXJsYXlH
cmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6OnNldFNob3VsZFNjYWxlVmlld1RvRml0RG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0
OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nVXBk
YXRlZFNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OmFkZFRyYW5zYWN0aW9uQ2FsbGJhY2tJRCk6CisgICAgICAgIChXZWJLaXQ6
OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVSZW5kZXJpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c3VzcGVuZFBhaW50aW5n
KToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0
ZUdlb21ldHJ5KToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWE6OmFwcGx5VHJhbnNpZW50Wm9vbVRvUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVSZW5kZXJpbmdSdW5Mb29wQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6aW52YWxpZGF0
ZVJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BP
YnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
OjphZGp1c3RSZW5kZXJVcGRhdGVUaHJvdHRsaW5nKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnJlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdJc0FjdGl2
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
OjpzdGFydFJlbmRlclRocm90dGxpbmdUaW1lcik6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpyZW5kZXJUaHJvdHRsaW5nVGltZXJGaXJlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZUNvbXBv
c2l0aW5nTGF5ZXJGbHVzaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaEltbWVkaWF0
ZWx5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6OmZsdXNoTGF5ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWE6OmxheWVyRmx1c2hSdW5Mb29wQ2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6aW52YWxp
ZGF0ZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NoZWR1bGVMYXllckZsdXNoUnVuTG9v
cE9ic2VydmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OmFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmxheWVyRmx1c2hUaHJv
dHRsaW5nSXNBY3RpdmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c3RhcnRMYXllckZsdXNoVGhyb3R0bGluZ1RpbWVyKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OmxheWVyRmx1c2hUaHJvdHRsaW5nVGltZXJGaXJlZCk6IERlbGV0ZWQuCisKIDIwMjAtMDItMTcg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4gYW5kIFBhdmVsIEZl
bGRtYW4gPHBhdmVsLmZlbGRtYW5AZ21haWwuY29tPgogCiAgICAgICAgIEVwaGVtZXJhbCBzZXNz
aW9uIGRhdGEgbGVha3MgYmV0d2VlbiBwcm9jZXNzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwppbmRleCBjYWMwODcwZGI1MDYzYWM4OTk0NDY4M2I2NmNkMDMwYTk4OTVhYmNhLi4wODZiY2Nh
ZjY0ZDIyZWFkMTE2M2QzMWU1NDQ0OTY3MGFkZGVlY2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMDItMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBmcm9tICJsYXllciBmbHVzaCIgdGVy
bWlub2xvZ3kgdG8gInJlbmRlcmluZyB1cGRhdGUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0g
SG9ydG9uLgorCisgICAgICAgIFJlbmFtZSB2YXJpb3VzIGZ1bmN0aW9ucyBhbmQgbWVtYmVyIHZh
cmlhYmxlcyB0byBtb3ZlIGF3YXkgZnJvbSB0aGUgbGVnYWN5ICJsYXllciBmbHVzaCIKKyAgICAg
ICAgdGVybWlub2xvZ3kgYW5kIGluc3RlYWQgdXNlICJyZW5kZXJpbmcgdXBkYXRlIiwgbWF0Y2hp
bmcgUGFnZTo6dXBkYXRlUmVuZGVyaW5nKCkuIFRoZSBmYWN0CisgICAgICAgIHRoYXQgd2UgaGF2
ZSBsYXllcnMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLgorICAgICAgICAKKyAgICAgICAg
Q2hhbmdlIExheWVyRmx1c2hUaHJvdHRsaW5nU3RhdGUgdG8gYmUgYW4gT3B0aW9uU2V0PD4uCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6
c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2gpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlZp
ZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfc2NoZWR1bGVVcGRhdGVSZW5kZXJp
bmddKToKKyAgICAgICAgKC1bV2ViVmlldyBfc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2hd
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6CisgICAgICAgICog
V2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaDoKKwogMjAyMC0wMi0xNCAgSm9uIExlZSAgPGpvbmxl
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFzayBXZWJHTCBzdHJpbmdzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9TeXN0ZW1UcmFjaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi9TeXN0ZW1UcmFj
aW5nLmgKaW5kZXggZmU3NTJlMmNhZmNkZDA0YzM3Y2EzMDY2NzE4MDFiZmQyZGEwY2U3Ny4uMGJm
NWRkOWQ0MDBlODUwYzQ2NDRiZTEwNGZkMmQyZjI3ZTRiMWRmZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvU3lzdGVtVHJhY2luZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1N5c3RlbVRyYWNp
bmcuaApAQCAtMTAyLDggKzEwMiw4IEBAIGVudW0gVHJhY2VQb2ludENvZGUgewogICAgIFN5bmNU
b3VjaEV2ZW50RW5kLAogICAgIEluaXRpYWxpemVXZWJQcm9jZXNzU3RhcnQsCiAgICAgSW5pdGlh
bGl6ZVdlYlByb2Nlc3NFbmQsCi0gICAgTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlclN0YXJ0LAot
ICAgIExheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXJFbmQsCisgICAgUmVuZGVyaW5nVXBkYXRlUnVu
TG9vcE9ic2VydmVyU3RhcnQsCisgICAgUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyRW5k
LAogICAgIExheWVyVHJlZUZyZWV6ZVN0YXJ0LAogICAgIExheWVyVHJlZUZyZWV6ZUVuZCwKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKaW5kZXggZjQ4MzJhYTcxNjM2Nzg1MTFkODZhNDk0MjA3MzM1ZDU3ZWRm
MTYxYS4uNDk5ODU5ZWFjNDFiNGE5NTEwYWEzODJjODczYzg4YTM0ODUxZWNlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCkBAIC04MTEsNyArODExLDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdP
UktfSEVBREVSUwogICAgIHBhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCiAgICAgcGFnZS9H
bG9iYWxGcmFtZUlkZW50aWZpZXIuaAogICAgIHBhZ2UvR2xvYmFsV2luZG93SWRlbnRpZmllci5o
Ci0gICAgcGFnZS9MYXllckZsdXNoVGhyb3R0bGVTdGF0ZS5oCiAgICAgcGFnZS9MYXlvdXRNaWxl
c3RvbmUuaAogICAgIHBhZ2UvTWVkaWFDYW5TdGFydExpc3RlbmVyLmgKICAgICBwYWdlL01lZGlh
UHJvZHVjZXIuaApAQCAtODM3LDYgKzgzNiw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVX
T1JLX0hFQURFUlMKICAgICBwYWdlL1JlbW90ZURPTVdpbmRvdy5oCiAgICAgcGFnZS9SZW1vdGVG
cmFtZS5oCiAgICAgcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaAorICAgIHBhZ2UvUmVu
ZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZS5oCiAgICAgcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmgKICAgICBwYWdlL1Njcm9sbEJlaGF2aW9yLmgKICAgICBwYWdlL1Njcm9sbEludG9WaWV3
T3B0aW9ucy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggM2JjZmRmNDQwNTE5MzBjYTlkMDQ5NTE2YzJkMGUwNGRhOGE1ODhlYy4u
MWY0ZDcyZjc5ZDliOThhNjRhYTlmMTAxMjU5N2MzMDUwNTM2MTYwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDg3NSw3ICs0
ODc1LDcgQEAKIAkJRTQ4NEEzM0UyMzA1NTMyNTAwOUFERTZBIC8qIExpbmVMYXlvdXRUcmF2ZXJz
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0ODRB
MzNCMjMwNTUzMDMwMDlBREU2QSAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQ4NjNDRkUyMzg0MkU5RTAw
OTcyMTU4IC8qIFJ1bGVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDg2M0NGRDIzODQyRTlFMDA5NzIxNTggLyogUnVsZURhdGEuaCAqLzsgfTsK
IAkJRTQ4OTQ0QTMxODBCNTdEODAwRjE2NUQ4IC8qIFNpbXBsZUxpbmVMYXlvdXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0ODk0NEExMTgwQjU3RDgw
MEYxNjVEOCAvKiBTaW1wbGVMaW5lTGF5b3V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRTQ5MTZGRjcxOTVERjZBMDAwNUFCMzQ5IC8qIExheWVy
Rmx1c2hUaHJvdHRsZVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDkxNkZGNjE5NURGNkEwMDA1QUIzNDkgLyogTGF5ZXJGbHVzaFRocm90dGxl
U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQlFNDkxNkZGNzE5NURGNkEwMDA1QUIzNDkgLyogUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5MTZG
RjYxOTVERjZBMDAwNUFCMzQ5IC8qIFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDk0NkVBRjE1
NkU2NEREMDBEMzI5N0YgLyogU3R5bGVSdWxlSW1wb3J0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDk0NkVBRDE1NkU2NEREMDBEMzI5N0YgLyogU3R5
bGVSdWxlSW1wb3J0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRTQ5QkQ5RkExMzFGRDJFRDAwM0M1NkYwIC8qIENTU1ZhbHVlUG9vbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5QkQ5RjkxMzFGRDJF
RDAwM0M1NkYwIC8qIENTU1ZhbHVlUG9vbC5oICovOyB9OwogCQlFNEE3OTk1MjIwRUU0QjE0MDBD
MTk1NjggLyogQ1NTUGFyc2VyQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTRBNzk5NEUyMEVFNEFFMTAwQzE5NTY4IC8qIENTU1BhcnNlckNv
bnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTUyNjAsNyArMTUyNjAsNyBAQAogCQlFNDg2M0NGRDIzODQyRTlFMDA5NzIxNTggLyogUnVs
ZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUnVsZURhdGEuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ4OTQ0QTAxODBCNTdEODAwRjE2NUQ4IC8qIFNp
bXBsZUxpbmVMYXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2ltcGxlTGluZUxheW91dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0ODk0
NEExMTgwQjU3RDgwMEYxNjVEOCAvKiBTaW1wbGVMaW5lTGF5b3V0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJRTQ5MTZGRjYxOTVERjZBMDAwNUFCMzQ5IC8qIExheWVyRmx1c2hUaHJvdHRs
ZVN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheWVyRmx1c2hUaHJv
dHRsZVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0OTE2RkY2MTk1REY2
QTAwMDVBQjM0OSAvKiBSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ5NDZFQUMxNTZFNjRERDAwRDMyOTdGIC8qIFN0
eWxlUnVsZUltcG9ydC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
dHlsZVJ1bGVJbXBvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDk0NkVB
RDE1NkU2NEREMDBEMzI5N0YgLyogU3R5bGVSdWxlSW1wb3J0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN0eWxlUnVsZUltcG9ydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFNDlCRDlGOTEzMUZEMkVEMDAzQzU2RjAgLyogQ1NTVmFsdWVQb29sLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ZhbHVlUG9vbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjA2NDQsNyArMjA2NDQsNiBAQAogCQkJCTBGNDcxMEQ4MURCNkZF
MjIwMDJEQ0VDMyAvKiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5LmNwcCAqLywKIAkJCQkwRjQ3
MTBEOTFEQjZGRTIyMDAyRENFQzMgLyogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeS5oICovLAog
CQkJCTBGNDcxMERBMURCNkZFMjIwMDJEQ0VDMyAvKiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5
LmlkbCAqLywKLQkJCQlFNDkxNkZGNjE5NURGNkEwMDA1QUIzNDkgLyogTGF5ZXJGbHVzaFRocm90
dGxlU3RhdGUuaCAqLywKIAkJCQk5MzFENzJGNTE1RkU2OTUzMDBDNEMwN0UgLyogTGF5b3V0TWls
ZXN0b25lLmggKi8sCiAJCQkJQkNFMUM0MUEwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmNw
cCAqLywKIAkJCQlCQ0UxQzQxOTBEOTgyOTgwMDAzQjAyRjIgLyogTG9jYXRpb24uaCAqLywKQEAg
LTIwNzQ5LDYgKzIwNzQ4LDcgQEAKIAkJCQk0NkI5NTE5MjIwN0Q2MzJFMDBBN0QyREQgLyogUmVt
b3RlRnJhbWUuaCAqLywKIAkJCQk1NTZDN0M0OTIyMTIzOTQzMDA5QjA2Q0EgLyogUmVuZGVyaW5n
VXBkYXRlU2NoZWR1bGVyLmNwcCAqLywKIAkJCQk1NTZDN0M0NzIyMTIzOTQyMDA5QjA2Q0EgLyog
UmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmggKi8sCisJCQkJRTQ5MTZGRjYxOTVERjZBMDAwNUFC
MzQ5IC8qIFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGUuaCAqLywKIAkJCQk1OEIyRjlGMjIy
MzJENDNGMDA5MzhENjMgLyogUmVzaXplT2JzZXJ2YXRpb24uY3BwICovLAogCQkJCTU4QjJGOUYz
MjIzMkQ0M0YwMDkzOEQ2MyAvKiBSZXNpemVPYnNlcnZhdGlvbi5oICovLAogCQkJCTU4QjJGOUVG
MjIzMkQ0M0QwMDkzOEQ2MyAvKiBSZXNpemVPYnNlcnZlci5jcHAgKi8sCkBAIC0zMTI3MCw3ICsz
MTI3MCw2IEBACiAJCQkJNDUwQ0VCRjExNTA3M0JCRTAwMkJCMTQ5IC8qIExhYmVsYWJsZUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE0NTZGQTI3MTFBRDRBODMwMDIwQjQyMCAvKiBMYWJl
bHNOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzEyMEMyMkJGMkNEMjAwNEU5RDM1
IC8qIExheWVyQW5jZXN0b3JDbGlwcGluZ1N0YWNrLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDkx
NkZGNzE5NURGNkEwMDA1QUIzNDkgLyogTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTU4MDM3MTY0MUE2NkYxRDMwMEJBRjUxOSAvKiBMYXllckZyYWdtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTZBMDE5NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29s
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTMxMENGNzIwQkE0QTYyMDA2NUE4RDAgLyogTGF5b3V0
QW5jZXN0b3JJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTkyOSw2ICszMTkyOCw3IEBA
CiAJCQkJMDg2NDFENDgxMjE0MkY3RDAwOERFOUY2IC8qIFJlbmRlckltYWdlUmVzb3VyY2VTdHls
ZUltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Mjk5QkM2ODIzRDZBNTNFMDBDQzY4ODMgLyog
UmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTU2QzdDNEIyMjEyMzk5NzAwOUIw
NkNBIC8qIFJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ5
MTZGRjcxOTVERjZBMDAwNUFCMzQ5IC8qIFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDRUE0ODc4MDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJJbmxp
bmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1OTVGRjQ3MTgyNENFRTMwMEZGNTFDRCAvKiBSZW5k
ZXJJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4N0EwOTdEOTMwMjAwOTRDOUU0
IC8qIFJlbmRlckxheWVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IGJiNDAzOTM4Yzk1NzQ5ZWQ1YjFmNWJiNDRmYzA3MDQzZmE5YTI3NjIuLjgwNzkxOWYyMzhi
NTlkZTliZWUyMWI1ZGViYjQ3MGViZTMwOWQxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMTg3NSw3ICsxODc1LDcgQEAgdm9pZCBEb2N1bWVudDo6c2NoZWR1bGVTdHlsZVJlY2FsYygp
CiAgICAgYXV0byBzaG91bGRUaHJvdHRsZVN0eWxlUmVjYWxjID0gWyZdIHsKICAgICAgICAgaWYg
KCF2aWV3KCkgfHwgIXZpZXcoKS0+aXNWaXN1YWxseU5vbkVtcHR5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghcGFnZSgpIHx8ICFwYWdlKCktPmNocm9tZSgpLmNs
aWVudCgpLmxheWVyRmx1c2hUaHJvdHRsaW5nSXNBY3RpdmUoKSkKKyAgICAgICAgaWYgKCFwYWdl
KCkgfHwgIXBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkucmVuZGVyaW5nVXBkYXRlVGhyb3R0bGlu
Z0lzQWN0aXZlKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH07CkBAIC0zMTM1LDcgKzMxMzUsNyBAQCBib29sIERvY3VtZW50OjpzaG91bGRT
Y2hlZHVsZUxheW91dCgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoc3R5bGVTY29w
ZSgpLmhhc1BlbmRpbmdTaGVldHNCZWZvcmVCb2R5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBpZiAocGFnZSgpICYmIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkubGF5ZXJGbHVzaFRo
cm90dGxpbmdJc0FjdGl2ZSgpICYmIHZpZXcoKSAmJiB2aWV3KCktPmlzVmlzdWFsbHlOb25FbXB0
eSgpKQorICAgIGlmIChwYWdlKCkgJiYgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5yZW5kZXJp
bmdVcGRhdGVUaHJvdHRsaW5nSXNBY3RpdmUoKSAmJiB2aWV3KCkgJiYgdmlldygpLT5pc1Zpc3Vh
bGx5Tm9uRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggNzg5NTdiYjBjN2Y4YmVlMjBj
NTcwMDc5MDBhOWY3OGUyZGRlYzcwMS4uYjYwNzRiMTUzMzQ5ODlhNzZlMzViNDU1ODRlODE4MDdl
YTUxODUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTUwLDcgKzE1
MCw3IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAg
ICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSBm
aW5hbCB7IH0KICAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihHcmFwaGlj
c0xheWVyKikgZmluYWwgeyB9CiAgICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hy
b25pemF0aW9uKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJG
bHVzaCgpIGZpbmFsIHsgfQorICAgIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKSBmaW5h
bCB7IH0KIAogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1
cnJlbnRDdXJzb3IoKSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4
IDk4OWJhZjRhN2Q3ZjMzNTQ1OTMyYmQ5MzA0M2VmNDNiYTdhYTUxMmEuLmQyZjQyYTEzYjZhMzQ3
OTk5YzdkNjkwNGI5MDA3Njc4MWU4MTJhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aApAQCAtMzcsMTIgKzM3LDEyIEBACiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgogI2luY2x1ZGUg
Ikljb24uaCIKICNpbmNsdWRlICJJbnB1dE1vZGUuaCIKLSNpbmNsdWRlICJMYXllckZsdXNoVGhy
b3R0bGVTdGF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKICNpbmNsdWRlICJQb3B1
cE1lbnUuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJSZWdpc3Ry
YWJsZURvbWFpbi5oIgogI2luY2x1ZGUgIlJlbmRlckVtYmVkZGVkT2JqZWN0LmgiCisjaW5jbHVk
ZSAiUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZS5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVz
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJTZWFyY2hQ
b3B1cE1lbnUuaCIKQEAgLTMxMyw3ICszMTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSA9IDA7CiAgICAgLy8gU2V0
cyBhIGZsYWcgdG8gc3BlY2lmeSB0aGF0IHRoZSB2aWV3IG5lZWRzIHRvIGJlIHVwZGF0ZWQsIHNv
IHdlIG5lZWQKICAgICAvLyB0byBkbyBhbiBlYWdlciBsYXlvdXQgYmVmb3JlIHRoZSBkcmF3aW5n
LgotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKSA9IDA7CiAgICAgdmly
dHVhbCBib29sIG5lZWRzSW1tZWRpYXRlUmVuZGVyaW5nVXBkYXRlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICAvLyBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBjbGllbnQgY2FuIHJl
bmRlciB0aGUgY29tcG9zaXRlZCBsYXllciwKICAgICAvLyByZWdhcmRsZXNzIG9mIHRoZSBzZXR0
aW5ncy4KQEAgLTMzNyw5ICszMzcsOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gUmV0dXJucyB0
cnVlIGlmIGxheWVyIHRyZWUgdXBkYXRlcyBhcmUgZGlzYWJsZWQuCiAgICAgdmlydHVhbCBib29s
IGxheWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZp
cnR1YWwgYm9vbCBsYXllckZsdXNoVGhyb3R0bGluZ0lzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZ0lzQWN0
aXZlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBhZGp1c3RM
YXllckZsdXNoVGhyb3R0bGluZyhMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RmxhZ3MpIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGFkanVzdFJlbmRlcmluZ1VwZGF0ZVRocm90
dGxpbmcoT3B0aW9uU2V0PFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU+KSB7IHJldHVybiBm
YWxzZTsgfQogCiAgICAgdmlydHVhbCBSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UmKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBlMDNlNDJiNDkyZWZiN2YzNDgyODNhNWQ0
MWJmZmExMjAzYjI5YzFlLi5jOWYwZDVlY2U5MzFiNTUxZjBiZDZkMmJjZTVkZDJlYWUzYWE3M2Ew
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yODE3LDE5ICsyODE3LDE5IEBAIHZv
aWQgRnJhbWVWaWV3Ojp1bm9ic2N1cmVkQ29udGVudFNpemVDaGFuZ2VkKCkKICNlbmRpZgogfQog
Ci1zdGF0aWMgTGF5ZXJGbHVzaFRocm90dGxlU3RhdGU6OkZsYWdzIGRldGVybWluZUxheWVyRmx1
c2hUaHJvdHRsZVN0YXRlKFBhZ2UmIHBhZ2UpCitzdGF0aWMgT3B0aW9uU2V0PFJlbmRlcmluZ1Vw
ZGF0ZVRocm90dGxlU3RhdGU+IGRldGVybWluZUxheWVyRmx1c2hUaHJvdHRsZVN0YXRlKFBhZ2Um
IHBhZ2UpCiB7CiAgICAgLy8gV2Ugb25seSB0aHJvdHRsZSB3aGVuIGNvbnN0YW50bHkgcmVjZWl2
aW5nIG5ldyBkYXRhIGR1cmluZyB0aGUgaW5pdGFsIHBhZ2UgbG9hZC4KICAgICBpZiAoIXBhZ2Uu
cHJvZ3Jlc3MoKS5pc01haW5Mb2FkUHJvZ3Jlc3NpbmcoKSkKLSAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgIHJldHVybiB7IH07CiAgICAgLy8gU2Nyb2xsaW5nIGR1cmluZyBwYWdlIGxvYWRpbmcg
ZGlzYWJsZXMgdGhyb3R0bGluZy4KICAgICBpZiAocGFnZS5tYWluRnJhbWUoKS52aWV3KCktPndh
c1Njcm9sbGVkQnlVc2VyKCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4geyB9
OwogICAgIC8vIERpc2FibGUgZm9yIGltYWdlIGRvY3VtZW50cyBzbyBsYXJnZSBHSUYgYW5pbWF0
aW9ucyBkb24ndCBnZXQgdGhyb3R0bGVkIGR1cmluZyBsb2FkaW5nLgogICAgIGF1dG8qIGRvY3Vt
ZW50ID0gcGFnZS5tYWluRnJhbWUoKS5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwg
aXM8SW1hZ2VEb2N1bWVudD4oKmRvY3VtZW50KSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0
dXJuIExheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpFbmFibGVkOworICAgICAgICByZXR1cm4geyB9
OworICAgIHJldHVybiB7IFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU6OkVuYWJsZWQgfTsK
IH0KIAogdm9pZCBGcmFtZVZpZXc6OmRpc2FibGVMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFy
aWx5Rm9ySW50ZXJhY3Rpb24oKQpAQCAtMjgzOCw4ICsyODM4LDkgQEAgdm9pZCBGcmFtZVZpZXc6
OmRpc2FibGVMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5Rm9ySW50ZXJhY3Rpb24oKQog
ICAgICAgICByZXR1cm47CiAgICAgYXV0byYgcGFnZSA9ICpmcmFtZSgpLnBhZ2UoKTsKIAotICAg
IExheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpGbGFncyBmbGFncyA9IExheWVyRmx1c2hUaHJvdHRs
ZVN0YXRlOjpVc2VySXNJbnRlcmFjdGluZyB8IGRldGVybWluZUxheWVyRmx1c2hUaHJvdHRsZVN0
YXRlKHBhZ2UpOwotICAgIGlmIChwYWdlLmNocm9tZSgpLmNsaWVudCgpLmFkanVzdExheWVyRmx1
c2hUaHJvdHRsaW5nKGZsYWdzKSkKKyAgICBhdXRvIGZsYWdzID0gZGV0ZXJtaW5lTGF5ZXJGbHVz
aFRocm90dGxlU3RhdGUocGFnZSk7CisgICAgZmxhZ3MuYWRkKFJlbmRlcmluZ1VwZGF0ZVRocm90
dGxlU3RhdGU6OlVzZXJJc0ludGVyYWN0aW5nKTsKKyAgICBpZiAocGFnZS5jaHJvbWUoKS5jbGll
bnQoKS5hZGp1c3RSZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nKGZsYWdzKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgaWYgKFJlbmRlclZpZXcqIHZpZXcgPSByZW5kZXJWaWV3KCkpCkBAIC0yODYy
LDE1ICsyODYzLDE1IEBAIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVMYXllckZsdXNoVGhyb3R0bGlu
ZygpCiAKICAgICBBU1NFUlQoZnJhbWUoKS5pc01haW5GcmFtZSgpKTsKIAotICAgIExheWVyRmx1
c2hUaHJvdHRsZVN0YXRlOjpGbGFncyBmbGFncyA9IGRldGVybWluZUxheWVyRmx1c2hUaHJvdHRs
ZVN0YXRlKCpwYWdlKTsKKyAgICBhdXRvIGZsYWdzID0gZGV0ZXJtaW5lTGF5ZXJGbHVzaFRocm90
dGxlU3RhdGUoKnBhZ2UpOwogCiAgICAgLy8gU2VlIGlmIHRoZSBjbGllbnQgaXMgaGFuZGxpbmcg
dGhyb3R0bGluZy4KLSAgICBpZiAocGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuYWRqdXN0TGF5ZXJG
bHVzaFRocm90dGxpbmcoZmxhZ3MpKQorICAgIGlmIChwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5h
ZGp1c3RSZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nKGZsYWdzKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgZm9yIChhdXRvKiBmcmFtZSA9IG1fZnJhbWUucHRyKCk7IGZyYW1lOyBmcmFtZSA9IGZy
YW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KG1fZnJhbWUucHRyKCkpKSB7CiAgICAgICAgIGlmIChS
ZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpKQotICAgICAg
ICAgICAgcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLnNldExheWVyRmx1c2hUaHJvdHRsaW5nRW5h
YmxlZChmbGFncyAmIExheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpFbmFibGVkKTsKKyAgICAgICAg
ICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5zZXRMYXllckZsdXNoVGhyb3R0bGluZ0VuYWJs
ZWQoZmxhZ3MuY29udGFpbnMoUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZTo6RW5hYmxlZCkp
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9MYXllckZsdXNo
VGhyb3R0bGVTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9MYXllckZsdXNoVGhyb3R0bGVT
dGF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTZmMjE4ZTFkYjMxYzY2YzQ0
NjRlZmIyOWE2YzM0YTVlYzIzNjk0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUu
aAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9u
Y2UKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdHJ1Y3QgTGF5ZXJGbHVzaFRocm90dGxlU3Rh
dGUgewotICAgIGVudW0gewotICAgICAgICBFbmFibGVkID0gMSA8PCAwLAotICAgICAgICBVc2Vy
SXNJbnRlcmFjdGluZyA9IDEgPDwgMQotICAgIH07Ci0gICAgdHlwZWRlZiB1bnNpZ25lZCBGbGFn
czsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcAppbmRleCAzYjg4MWRmYmIxNzE3ZjRlNDEx
YTZjNTM0NDU5NWZiZDNhYjQzMDZkLi42ZjMzNzAyZmIzZmM0ODY3NDAwYmI5YmQxZDhlNWI3OTZm
MTFjZGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNj
aGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hl
ZHVsZXIuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBSZW5kZXJpbmdVcGRhdGVTY2hlZHVs
ZXI6OmRpc3BsYXlSZWZyZXNoRmlyZWQoKQogCiB2b2lkIFJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxl
cjo6c2NoZWR1bGVJbW1lZGlhdGVSZW5kZXJpbmdVcGRhdGUoKQogewotICAgIG1fcGFnZS5jaHJv
bWUoKS5jbGllbnQoKS5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIG1fcGFn
ZS5jaHJvbWUoKS5jbGllbnQoKS5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCiB2b2lk
IFJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcjo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMWRmNWRkOGQ1YTNkZmMwMTY1MTFlNWMwY2ViM2VkNjE2YjI0YmZkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVUaHJvdHRs
ZVN0YXRlLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBSZW5kZXJpbmdVcGRhdGVUaHJv
dHRsZVN0YXRlIHsKKyAgICBFbmFibGVkICAgICAgICAgICAgID0gMSA8PCAwLAorICAgIFVzZXJJ
c0ludGVyYWN0aW5nICAgPSAxIDw8IDEKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlM
aW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2xpbnV4L1Jlc291cmNlVXNhZ2VPdmVybGF5
TGludXguY3BwCmluZGV4IDY3MDdmNzhmMzJhY2IyYmVmMWE2ZTI0ZTBjNzk1YTM0YzgwNzg3NmYu
LjlmZTI0YzJmNjRkZTM2Y2M1ZGQ3NjY0ZDVlZGZiN2NhZDUxNjI5ZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlMaW51eC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlT3ZlcmxheUxpbnV4LmNw
cApAQCAtMTI0LDcgKzEyNCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIG5vdGlmeUZsdXNoUmVx
dWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlCiAgICAgewotICAgICAgICBtX292
ZXJsYXkub3ZlcmxheSgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2NoZWR1bGVDb21wb3Np
dGluZ0xheWVyRmx1c2goKTsKKyAgICAgICAgbV9vdmVybGF5Lm92ZXJsYXkoKS5wYWdlKCktPmNo
cm9tZSgpLmNsaWVudCgpLnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAgICAgfQogCiAgICAg
UmVzb3VyY2VVc2FnZU92ZXJsYXkmIG1fb3ZlcmxheTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9y
ZS5tbQppbmRleCA2MmYzMmFkYzdkMjY1MjdlNzY0MDZjYzhmNjc4Y2Q5MjZjMTVmMDNmLi41Mzll
MjNmZDQ2Y2Q0YWRlM2ZiNjkyOThkY2MzNDNiZTM2MTcyZTAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0K
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFj
a2luZ1N0b3JlLm1tCkBAIC0zNDMsNyArMzQzLDggQEAgdm9pZCBSZW1vdGVMYXllckJhY2tpbmdT
dG9yZTo6ZHJhd0luQ29udGV4dChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEMK
IAogICAgIGNvbnRleHQuc2NhbGUobV9zY2FsZSk7CiAgICAgCi0gICAgYXV0byBmbGFncyA9IG1f
bGF5ZXItPmNvbnRleHQoKSAmJiBtX2xheWVyLT5jb250ZXh0KCktPm5leHRGbHVzaElzRm9ySW1t
ZWRpYXRlUGFpbnQoKSA/IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludFNuYXBzaG90dGluZyA6
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludE5vcm1hbDsKKyAgICAvLyBGSVhNRTogQ2xhcmlm
eSB0aGF0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludFNuYXBzaG90dGluZyBpcyBqdXN0IGFi
b3V0IGltYWdlIGRlY29kaW5nLgorICAgIGF1dG8gZmxhZ3MgPSBtX2xheWVyLT5jb250ZXh0KCkg
JiYgbV9sYXllci0+Y29udGV4dCgpLT5uZXh0UmVuZGVyaW5nVXBkYXRlUmVxdWlyZXNTeW5jaHJv
bm91c0ltYWdlRGVjb2RpbmcoKSA/IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludFNuYXBzaG90
dGluZyA6IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludE5vcm1hbDsKICAgICAKICAgICAvLyBG
SVhNRTogVGhpcyBzaG91bGQgYmUgbW92ZWQgdG8gUGxhdGZvcm1DQUxheWVyUmVtb3RlIGZvciBi
ZXR0ZXIgbGF5ZXJpbmcuCiAgICAgc3dpdGNoIChtX2xheWVyLT5sYXllclR5cGUoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAppbmRleCA4ZTRjOTM3NWQ3YjhjYzEwZmZhMDA4MDNkNDgyMTczYmU1
YTM1NThhLi44ZjUxMDY3YTM5OThjZmIzYWE1ZmU3MDE0ZjM2YjlhZDY3NTZiMzQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcApAQCAtOTEwLDEwICs5MTAsMTAgQEAgdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKQogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUNvbXBvc2l0aW5n
TGF5ZXJGbHVzaCgpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVSZW5kZXJpbmdVcGRh
dGUoKQogewogICAgIGlmIChtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKLSAgICAgICAgbV9wYWdlLmRy
YXdpbmdBcmVhKCktPnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAgICAgIG1f
cGFnZS5kcmF3aW5nQXJlYSgpLT5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCiB2b2lk
IFdlYkNocm9tZUNsaWVudDo6Y29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBDb250ZW50UnVsZUxpc3RSZXN1bHRzJiByZXN1bHRzKQpAQCAtOTI0LDkgKzky
NCw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24o
Y29uc3QgVVJMJiB1cmwsIGNvbnN0IENvbnRlbnRSCiAjZW5kaWYKIH0KIAotYm9vbCBXZWJDaHJv
bWVDbGllbnQ6OmFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKExheWVyRmx1c2hUaHJvdHRsZVN0
YXRlOjpGbGFncyBmbGFncykKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjphZGp1c3RSZW5kZXJpbmdV
cGRhdGVUaHJvdHRsaW5nKE9wdGlvblNldDxSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlPiBm
bGFncykKIHsKLSAgICByZXR1cm4gbV9wYWdlLmRyYXdpbmdBcmVhKCkgJiYgbV9wYWdlLmRyYXdp
bmdBcmVhKCktPmFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKGZsYWdzKTsKKyAgICByZXR1cm4g
bV9wYWdlLmRyYXdpbmdBcmVhKCkgJiYgbV9wYWdlLmRyYXdpbmdBcmVhKCktPmFkanVzdFJlbmRl
cmluZ1VwZGF0ZVRocm90dGxpbmcoZmxhZ3MpOwogfQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6
bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0CkBAIC05MzcsMTAgKzkzNywxMCBAQCBib29s
IFdlYkNocm9tZUNsaWVudDo6bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6bGF5ZXJGbHVzaFRocm90dGxp
bmdJc0FjdGl2ZSgpIGNvbnN0Citib29sIFdlYkNocm9tZUNsaWVudDo6cmVuZGVyaW5nVXBkYXRl
VGhyb3R0bGluZ0lzQWN0aXZlKCkgY29uc3QKIHsKICAgICBpZiAobV9wYWdlLmRyYXdpbmdBcmVh
KCkpCi0gICAgICAgIHJldHVybiBtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+bGF5ZXJGbHVzaFRocm90
dGxpbmdJc0FjdGl2ZSgpOworICAgICAgICByZXR1cm4gbV9wYWdlLmRyYXdpbmdBcmVhKCktPnJl
bmRlcmluZ1VwZGF0ZVRocm90dGxpbmdJc0FjdGl2ZSgpOwogCiAgICAgcmV0dXJuIGZhbHNlOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGE4YTRjY2FjNTdkODA4YWFhNTVkOGQ3OTUxYmM1YzU0
MWM2MGYyYWQuLjdjMWM3ZTA4Y2Y0ZDk0OWU0MGUyMTAzMmUyNDRiYTIxMjEyNWQ4MTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKQEAgLTIxNiw4ICsyMTYsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgYXR0
YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKikgZmluYWw7CiAgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwogICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJh
d2luZ1N5bmNocm9uaXphdGlvbigpIGZpbmFsOwotICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGlu
Z0xheWVyRmx1c2goKSBmaW5hbDsKLSAgICBib29sIGFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5n
KFdlYkNvcmU6OkxheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpGbGFncykgZmluYWw7CisgICAgdm9p
ZCBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpIGZpbmFsOworICAgIGJvb2wgYWRqdXN0UmVuZGVy
aW5nVXBkYXRlVGhyb3R0bGluZyhPcHRpb25TZXQ8V2ViQ29yZTo6UmVuZGVyaW5nVXBkYXRlVGhy
b3R0bGVTdGF0ZT4pIGZpbmFsOwogCiAgICAgdm9pZCBjb250ZW50UnVsZUxpc3ROb3RpZmljYXRp
b24oY29uc3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFJ1bGVMaXN0UmVzdWx0cyYpIGZp
bmFsOwogCkBAIC0yNTAsNyArMjUwLDcgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBib29sIGxh
eWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBjb25zdCBmaW5hbDsKLSAgICBib29sIGxheWVyRmx1c2hU
aHJvdHRsaW5nSXNBY3RpdmUoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHJlbmRlcmluZ1VwZGF0
ZVRocm90dGxpbmdJc0FjdGl2ZSgpIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKICAgICBSZWZQdHI8V2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFdlYkNvcmU6OlBhZ2UmKSBjb25zdCBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvRHJhd2luZ0FyZWFDb29yZGluYXRlZEdyYXBoaWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFDb29yZGluYXRl
ZEdyYXBoaWNzLmNwcAppbmRleCBmYmRmMjU0ZWM0MmRjNzM2Y2EwYTAwZjUyMWRlODMzOWYwOGZm
YmYyLi45MzEyZWM0NjgxZjM5MjMwYWFhYTcyYWMxMjUwMzVhZjkxNDMwNDQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Ry
YXdpbmdBcmVhQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJlYUNvb3JkaW5hdGVk
R3JhcGhpY3MuY3BwCkBAIC0zMzgsNyArMzM4LDcgQEAgdm9pZCBEcmF3aW5nQXJlYUNvb3JkaW5h
dGVkR3JhcGhpY3M6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKEdyYXBoaWNzTGF5ZXIqIGdyYXAK
ICAgICBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGdyYXBoaWNzTGF5ZXIpOwogfQog
Ci12b2lkIERyYXdpbmdBcmVhQ29vcmRpbmF0ZWRHcmFwaGljczo6c2NoZWR1bGVDb21wb3NpdGlu
Z0xheWVyRmx1c2goKQordm9pZCBEcmF3aW5nQXJlYUNvb3JkaW5hdGVkR3JhcGhpY3M6OnNjaGVk
dWxlUmVuZGVyaW5nVXBkYXRlKCkKIHsKICAgICBpZiAobV9sYXllclRyZWVIb3N0KQogICAgICAg
ICBtX2xheWVyVHJlZUhvc3QtPnNjaGVkdWxlTGF5ZXJGbHVzaCgpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5n
QXJlYUNvb3JkaW5hdGVkR3JhcGhpY3MuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFDb29yZGluYXRlZEdyYXBoaWNzLmgK
aW5kZXggMjVhMDQ1ZDE0NjZhMDAwNDg0NmViZDU5Mjg5NmFmMWI0YzQ4YWI4ZS4uNzE0ODMyNWVh
MmRmY2I5OWU0NDM1ZGUxMzE2ZGU3NmZkM2RkMjhmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJlYUNvb3Jk
aW5hdGVkR3JhcGhpY3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhQ29vcmRpbmF0ZWRHcmFwaGljcy5oCkBAIC03
MCw4ICs3MCw4IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXllckZhY3Rvcnkq
IGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXRSb290Q29tcG9z
aXRpbmdMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBz
Y2hlZHVsZUluaXRpYWxEZWZlcnJlZFBhaW50KCkgb3ZlcnJpZGUgeyB9OwotICAgIHZvaWQgc2No
ZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsKLSAgICB2b2lkIHNjaGVkdWxl
Q29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKSBvdmVycmlkZSB7IHNjaGVkdWxlQ29t
cG9zaXRpbmdMYXllckZsdXNoKCk7IH07CisgICAgdm9pZCBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0
ZSgpIG92ZXJyaWRlOworICAgIHZvaWQgc2NoZWR1bGVJbW1lZGlhdGVSZW5kZXJpbmdVcGRhdGUo
KSBvdmVycmlkZSB7IHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7IH07CiAgICAgdm9pZCBsYXll
ckhvc3REaWRGbHVzaExheWVycygpIG92ZXJyaWRlOwogCiAjaWYgVVNFKFJFUVVFU1RfQU5JTUFU
SU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4IGJhYjFkNGJmYmVlOWU0NTE0ZjNmN2JjNGJjYTVh
NTk1ZTU5ODZmMTUuLmY0ZmQ2YjI2NzkzNmYwNTk5MmQ2ZTBiMmE3MGE5NTI3NDQxMTI4NWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaApAQCAt
MzMsOSArMzMsOSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnRSZWN0Lmg+Ci0j
aW5jbHVkZSA8V2ViQ29yZS9MYXllckZsdXNoVGhyb3R0bGVTdGF0ZS5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvTGF5b3V0TWlsZXN0b25lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVNjcmVl
bi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZS5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAj
aW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgpAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBib29sIGZvcmNlUmVwYWludEFzeW5jKENhbGxiYWNrSUQpIHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgdmlydHVhbCB2b2lkIHNldExheWVyVHJlZVN0YXRlSXNGcm96ZW4oYm9vbCkgeyB9
CiAgICAgdmlydHVhbCBib29sIGxheWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBsYXllckZsdXNoVGhyb3R0bGluZ0lzQWN0aXZl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyaW5nVXBk
YXRlVGhyb3R0bGluZ0lzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJikg
eyB9CiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZVBhaW50aW5nKCkgeyB9CkBAIC0xMTMsOSArMTEz
LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9y
eSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdmlydHVh
bCB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSA9
IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2NoZWR1bGVJbml0aWFsRGVmZXJyZWRQYWludCgpID0gMDsKLSAgICB2aXJ0
dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVJbW1lZGlhdGVSZW5kZXJpbmdVcGRhdGUoKSA9IDA7
CiAKICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQogICAg
IHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlz
cGxheVJlZnJlc2hNb25pdG9yKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKTsKQEAgLTEyOCw3
ICsxMjgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgbWFya0xheWVyc1ZvbGF0aWxl
SW1tZWRpYXRlbHlJZlBvc3NpYmxlKCkgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBi
b29sIGFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKFdlYkNvcmU6OkxheWVyRmx1c2hUaHJvdHRs
ZVN0YXRlOjpGbGFncykgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgYWRqdXN0
UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZyhPcHRpb25TZXQ8V2ViQ29yZTo6UmVuZGVyaW5nVXBk
YXRlVGhyb3R0bGVTdGF0ZT4pIHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSB7
IH0KIApAQCAtMTQxLDcgKzE0MSw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
R2VvbWV0cnkoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdmlld1NpemUsIGJvb2wgZmx1c2hTeW5j
aHJvbm91c2x5LCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmIGZlbmNlUG9ydCkgeyB9CiAjZW5k
aWYKIAorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAgICB2aXJ0dWFsIHZvaWQgbGF5
ZXJIb3N0RGlkRmx1c2hMYXllcnMoKSB7IH0KKyNlbmRpZgogCiAjaWYgVVNFKENPT1JESU5BVEVE
X0dSQVBISUNTKSB8fCBVU0UoVEVYVFVSRV9NQVBQRVIpCiAgICAgdmlydHVhbCB2b2lkIGRpZENo
YW5nZVZpZXdwb3J0QXR0cmlidXRlcyhXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmJikgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVDb250ZXh0LmgKaW5kZXgg
NTdhMDI1OWIyMjU5NjAwMTUwM2Y2NDZiN2JmNzU0OTg5OTRiZjllOC4uNGY3Yjk4M2NkODBlYTU1
NzVkOGIzOTAzMzI1NmRjMDFhMTdjOWFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlQ29udGV4dC5oCkBAIC03Myw4ICs3Myw4IEBAIHB1YmxpYzoKIAogICAgIFJl
bW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbiYgYmFja2luZ1N0b3JlQ29sbGVjdGlvbigp
IHsgcmV0dXJuIG1fYmFja2luZ1N0b3JlQ29sbGVjdGlvbjsgfQogICAgIAotICAgIHZvaWQgc2V0
TmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludChib29sIG5leHRGbHVzaElzRm9ySW1tZWRpYXRl
UGFpbnQpIHsgbV9uZXh0Rmx1c2hJc0ZvckltbWVkaWF0ZVBhaW50ID0gbmV4dEZsdXNoSXNGb3JJ
bW1lZGlhdGVQYWludDsgfQotICAgIGJvb2wgbmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludCgp
IGNvbnN0IHsgcmV0dXJuIG1fbmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludDsgfQorICAgIHZv
aWQgc2V0TmV4dFJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVzU3luY2hyb25vdXNJbWFnZURlY29kaW5n
KGJvb2wgcmVxdWlyZVN5bmNocm9ub3VzRGVjb2RpbmcpIHsgbV9uZXh0UmVuZGVyaW5nVXBkYXRl
UmVxdWlyZXNTeW5jaHJvbm91c0ltYWdlRGVjb2RpbmcgPSByZXF1aXJlU3luY2hyb25vdXNEZWNv
ZGluZzsgfQorICAgIGJvb2wgbmV4dFJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVzU3luY2hyb25vdXNJ
bWFnZURlY29kaW5nKCkgY29uc3QgeyByZXR1cm4gbV9uZXh0UmVuZGVyaW5nVXBkYXRlUmVxdWly
ZXNTeW5jaHJvbm91c0ltYWdlRGVjb2Rpbmc7IH0KIAogICAgIHZvaWQgYWRvcHRMYXllcnNGcm9t
Q29udGV4dChSZW1vdGVMYXllclRyZWVDb250ZXh0Jik7CiAgICAgCkBAIC0xMDIsNyArMTAyLDcg
QEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6OkxheWVyUG9vbCBtX2xheWVyUG9vbDsKICAgICAK
LSAgICBib29sIG1fbmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludCB7IGZhbHNlIH07CisgICAg
Ym9vbCBtX25leHRSZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNocm9ub3VzSW1hZ2VEZWNvZGlu
ZyB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
clRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25p
dG9yLm1tCmluZGV4IDM1YzgxNDFjMDBjMzRiOTk2NjdmMDFlNGMzMzQ1YzUyOWJkZWU1MWQuLmEy
ZTZkNDAzMmI0YjZjOTk1MGRkMWE5ODRhY2Y3Zjg3YzIyZjE0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9u
aXRvci5tbQpAQCAtNDksNyArNDksNyBAQCBib29sIFJlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZy
ZXNoTW9uaXRvcjo6cmVxdWVzdFJlZnJlc2hDYWxsYmFjaygpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIGlmICghaXNTY2hlZHVsZWQoKSkKLSAgICAgICAgc3RhdGljX2Nhc3Q8RHJhd2lu
Z0FyZWEmPigqbV9kcmF3aW5nQXJlYS5nZXQoKSkuc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1
c2goKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8RHJhd2luZ0FyZWEmPigqbV9kcmF3aW5nQXJlYS5n
ZXQoKSkuc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIAogICAgIHNldElzQWN0aXZlKHRydWUp
OwogICAgIHNldElzU2NoZWR1bGVkKHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCBmMTExNjgzZmJhNzI3OGY4NzI0YmFk
ZThlODI5ZTJlZGZmYjY1ZGRjLi4xN2U4NmUzN2UwYmNkYTQ3MDY2YTQyZjhiYWJjM2E2YzBlNGQx
ZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEuaApAQCAtNjUsOCArNjUsOCBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIG92ZXJyaWRlOwogICAgIHZvaWQg
c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRl
OwogICAgIHZvaWQgc2NoZWR1bGVJbml0aWFsRGVmZXJyZWRQYWludCgpIG92ZXJyaWRlOwotICAg
IHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsKLSAgICB2b2lk
IHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY2hl
ZHVsZUltbWVkaWF0ZVJlbmRlcmluZ1VwZGF0ZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgYXR0YWNo
Vmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlk
ZTsKIAogICAgIHZvaWQgYWRkVHJhbnNhY3Rpb25DYWxsYmFja0lEKENhbGxiYWNrSUQpIG92ZXJy
aWRlOwpAQCAtODMsOCArODMsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgdXNlc0RlbGVnYXRlZFBh
Z2VTY2FsaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgdm9pZCBz
ZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJvb2wpIG92ZXJyaWRlOwotICAgIGJvb2wgbGF5ZXJU
cmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNGbHVzaGluZ1N1
c3BlbmRlZDsgfQotICAgIGJvb2wgbGF5ZXJGbHVzaFRocm90dGxpbmdJc0FjdGl2ZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzICYmIG1fbGF5ZXJG
bHVzaFRpbWVyLmlzQWN0aXZlKCk7IH0KKyAgICBib29sIGxheWVyVHJlZVN0YXRlSXNGcm96ZW4o
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lzUmVuZGVyaW5nU3VzcGVuZGVkOyB9CisgICAg
Ym9vbCByZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nSXNBY3RpdmUoKSBjb25zdCBvdmVycmlkZSB7
IHJldHVybiBtX2lzVGhyb3R0bGluZ1JlbmRlcmluZ1VwZGF0ZXMgJiYgbV91cGRhdGVSZW5kZXJp
bmdUaW1lci5pc0FjdGl2ZSgpOyB9CiAKICAgICB2b2lkIGZvcmNlUmVwYWludCgpIG92ZXJyaWRl
OwogICAgIGJvb2wgZm9yY2VSZXBhaW50QXN5bmMoQ2FsbGJhY2tJRCkgb3ZlcnJpZGUgeyByZXR1
cm4gZmFsc2U7IH0KQEAgLTEwOCw3ICsxMDgsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBhY3Rp
dml0eVN0YXRlRGlkQ2hhbmdlKE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFn
PiBjaGFuZ2VkLCBBY3Rpdml0eVN0YXRlQ2hhbmdlSUQsIGNvbnN0IFZlY3RvcjxDYWxsYmFja0lE
PiYgY2FsbGJhY2tJRHMpIG92ZXJyaWRlOwogCi0gICAgYm9vbCBhZGp1c3RMYXllckZsdXNoVGhy
b3R0bGluZyhXZWJDb3JlOjpMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RmxhZ3MpIG92ZXJyaWRl
OworICAgIGJvb2wgYWRqdXN0UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZyhPcHRpb25TZXQ8V2Vi
Q29yZTo6UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZT4pIG92ZXJyaWRlOwogCiAgICAgYm9v
bCBhZGRNaWxlc3RvbmVzVG9EaXNwYXRjaChPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0
b25lPikgb3ZlcnJpZGU7CiAKQEAgLTExNiw3ICsxMTYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQg
dXBkYXRlUm9vdExheWVycygpOwogCiAgICAgdm9pZCBhZGRDb21taXRIYW5kbGVycygpOwotICAg
IHZvaWQgZmx1c2hMYXllcnMoKTsKKyAgICB2b2lkIHVwZGF0ZVJlbmRlcmluZygpOwogCiAgICAg
V2ViQ29yZTo6VGlsZWRCYWNraW5nKiBtYWluRnJhbWVUaWxlZEJhY2tpbmcoKSBjb25zdDsKIApA
QCAtMTUxLDE4ICsxNTEsMTkgQEAgcHJpdmF0ZToKICAgICBPcHRpb25hbDxXZWJDb3JlOjpGbG9h
dFJlY3Q+IG1fdmlld0V4cG9zZWRSZWN0OwogICAgIE9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UmVj
dD4gbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdDsKIAotICAgIFdlYkNvcmU6OlRpbWVyIG1fbGF5
ZXJGbHVzaFRpbWVyOwotICAgIGJvb2wgbV9pc0ZsdXNoaW5nU3VzcGVuZGVkIHsgZmFsc2UgfTsK
LSAgICBib29sIG1faGFzRGVmZXJyZWRGbHVzaCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2ZsdXNo
aW5nSW5pdGlhbERlZmVycmVkUGFpbnQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc1Rocm90dGxp
bmdMYXllckZsdXNoZXMgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc0xheWVyRmx1c2hUaHJvdHRs
aW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uIHsgZmFsc2UgfTsKLSAgICBib29s
IG1faXNJbml0aWFsVGhyb3R0bGVkTGF5ZXJGbHVzaCB7IGZhbHNlIH07CisgICAgV2ViQ29yZTo6
VGltZXIgbV91cGRhdGVSZW5kZXJpbmdUaW1lcjsKKyAgICBib29sIG1faXNSZW5kZXJpbmdTdXNw
ZW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNEZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZSB7
IGZhbHNlIH07CisgICAgYm9vbCBtX2luSW5pdGlhbERlZmVycmVkUmVuZGVyaW5nVXBkYXRlIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1faXNGaXJzdFRocm90dGxlZFJlbmRlcmluZ1VwZGF0ZSB7IGZh
bHNlIH07CisgICAgYm9vbCBtX25leHRSZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNocm9ub3Vz
SW1hZ2VEZWNvZGluZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2luVXBkYXRlUmVuZGVyaW5nIHsg
ZmFsc2UgfTsKKworICAgIGJvb2wgbV9pc1Rocm90dGxpbmdSZW5kZXJpbmdVcGRhdGVzIHsgZmFs
c2UgfTsKKyAgICBib29sIG1faXNSZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nVGVtcG9yYXJpbHlE
aXNhYmxlZEZvckludGVyYWN0aW9uIHsgZmFsc2UgfTsKIAogICAgIGJvb2wgbV93YWl0aW5nRm9y
QmFja2luZ1N0b3JlU3dhcCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2hhZEZsdXNoRGVmZXJyZWRX
aGlsZVdhaXRpbmdGb3JCYWNraW5nU3RvcmVTd2FwIHsgZmFsc2UgfTsKLSAgICBib29sIG1fbmV4
dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludCB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2luRmx1c2hM
YXllcnMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9kZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZVdoaWxl
V2FpdGluZ0ZvckJhY2tpbmdTdG9yZVN3YXAgeyBmYWxzZSB9OwogCiAgICAgZGlzcGF0Y2hfcXVl
dWVfdCBtX2NvbW1pdFF1ZXVlOwogICAgIFJlZlB0cjxCYWNraW5nU3RvcmVGbHVzaGVyPiBtX3Bl
bmRpbmdCYWNraW5nU3RvcmVGbHVzaGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmluZGV4IGQ3MjBiMmVkOTZjOGI3ZTVmZmE5NjJk
YzlkZDVmNzU0OGRjYzVjZDkuLjQ0NTA4OWU1NmNjN2YxMDEyZjc0NmVhYWExM2IxNjU1MmZhYTJk
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEubW0KQEAgLTYwLDcgKzYwLDcgQEAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OlJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFcKICAgICA6
IERyYXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZSwgcGFyYW1ldGVycy5k
cmF3aW5nQXJlYUlkZW50aWZpZXIsIHdlYlBhZ2UpCiAgICAgLCBtX3JlbW90ZUxheWVyVHJlZUNv
bnRleHQobWFrZVVuaXF1ZTxSZW1vdGVMYXllclRyZWVDb250ZXh0Pih3ZWJQYWdlKSkKICAgICAs
IG1fcm9vdExheWVyKEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFwaGljc0xheWVyRmFjdG9yeSgp
LCAqdGhpcykpCi0gICAgLCBtX2xheWVyRmx1c2hUaW1lcigqdGhpcywgJlJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhOjpmbHVzaExheWVycykKKyAgICAsIG1fdXBkYXRlUmVuZGVyaW5nVGltZXIo
KnRoaXMsICZSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6dXBkYXRlUmVuZGVyaW5nKQogewog
ICAgIHdlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5zZXRGb3JjZUNvbXBvc2l0aW5nTW9k
ZSh0cnVlKTsKICAgICBtX3Jvb3RMYXllci0+c2V0TmFtZSgiZHJhd2luZyBhcmVhIHJvb3QiKTsK
QEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzZXRS
b290Q29tcG9zaXRpbmdMYXllcihHcmFwaGljc0xheWVyKiByb290TGF5ZQogewogICAgIG1fY29u
dGVudExheWVyID0gcm9vdExheWVyOwogICAgIHVwZGF0ZVJvb3RMYXllcnMoKTsKLSAgICBzY2hl
ZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRl
KCk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5
KGNvbnN0IEludFNpemUmIHZpZXdTaXplLCBib29sIGZsdXNoU3luY2hyb25vdXNseSwgY29uc3Qg
V1RGOjpNYWNoU2VuZFJpZ2h0JikKQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeShjb25zdCBJbnRTaXplJiB2aWV3U2l6ZSwg
Ym9vbCBmbAogICAgIG1fdmlld1NpemUgPSB2aWV3U2l6ZTsKICAgICBtX3dlYlBhZ2Uuc2V0U2l6
ZSh2aWV3U2l6ZSk7CiAKLSAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAg
IHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAKICAgICBzZW5kKE1lc3NhZ2VzOjpEcmF3aW5n
QXJlYVByb3h5OjpEaWRVcGRhdGVHZW9tZXRyeSgpKTsKIH0KQEAgLTE4NSwyMiArMTg1LDIyIEBA
IHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNldERldmljZVNjYWxlRmFjdG9yKGZs
b2F0IGRldmljZVNjYWxlRmFjdG9yKQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
OjpzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJvb2wgaXNGcm96ZW4pCiB7Ci0gICAgaWYgKG1f
aXNGbHVzaGluZ1N1c3BlbmRlZCA9PSBpc0Zyb3plbikKKyAgICBpZiAobV9pc1JlbmRlcmluZ1N1
c3BlbmRlZCA9PSBpc0Zyb3plbikKICAgICAgICAgcmV0dXJuOwogCiAgICAgdHJhY2VQb2ludChp
c0Zyb3plbiA/IExheWVyVHJlZUZyZWV6ZVN0YXJ0IDogTGF5ZXJUcmVlRnJlZXplRW5kKTsKIAot
ICAgIG1faXNGbHVzaGluZ1N1c3BlbmRlZCA9IGlzRnJvemVuOworICAgIG1faXNSZW5kZXJpbmdT
dXNwZW5kZWQgPSBpc0Zyb3plbjsKIAotICAgIGlmICghbV9pc0ZsdXNoaW5nU3VzcGVuZGVkICYm
IG1faGFzRGVmZXJyZWRGbHVzaCkgewotICAgICAgICBtX2hhc0RlZmVycmVkRmx1c2ggPSBmYWxz
ZTsKKyAgICBpZiAoIW1faXNSZW5kZXJpbmdTdXNwZW5kZWQgJiYgbV9oYXNEZWZlcnJlZFJlbmRl
cmluZ1VwZGF0ZSkgeworICAgICAgICBtX2hhc0RlZmVycmVkUmVuZGVyaW5nVXBkYXRlID0gZmFs
c2U7CiAgICAgICAgIHNjaGVkdWxlSW5pdGlhbERlZmVycmVkUGFpbnQoKTsKICAgICB9CiB9CiAK
IHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZvcmNlUmVwYWludCgpCiB7Ci0gICAg
aWYgKG1faXNGbHVzaGluZ1N1c3BlbmRlZCkKKyAgICBpZiAobV9pc1JlbmRlcmluZ1N1c3BlbmRl
ZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSAmbV93ZWJQYWdl
LmNvcmVQYWdlKCktPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRy
YXZlcnNlTmV4dCgpKSB7CkBAIC0yMTEsNyArMjExLDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYTo6Zm9yY2VSZXBhaW50KCkKICAgICAgICAgZnJhbWVWaWV3LT50aWxlZEJhY2tp
bmcoKS0+Zm9yY2VSZXBhaW50KCk7CiAgICAgfQogCi0gICAgZmx1c2hMYXllcnMoKTsKKyAgICB1
cGRhdGVSZW5kZXJpbmcoKTsKIH0KIAogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6
YWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCh1aW50NjRfdCBsYXllcklELCBjb25zdCBTdHJp
bmcmIGtleSwgTW9ub3RvbmljVGltZSBzdGFydFRpbWUpCkBAIC0yNDgsNyArMjQ4LDcgQEAgdm9p
ZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2V0RXhwb3NlZENvbnRlbnRSZWN0KGNvbnN0
IEZsb2F0UmVjdCYgZXhwb3NlZEMKICAgICAgICAgcmV0dXJuOwogCiAgICAgZnJhbWVWaWV3LT5z
ZXRFeHBvc2VkQ29udGVudFJlY3QoZXhwb3NlZENvbnRlbnRSZWN0KTsKLSAgICBzY2hlZHVsZUNv
bXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9
CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZVNjcm9sbGVkRXhwb3Nl
ZFJlY3QoKQpAQCAtMjczLDYwICsyNzMsNjAgQEAgVGlsZWRCYWNraW5nKiBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYTo6bWFpbkZyYW1lVGlsZWRCYWNraW5nKCkgY29uc3QKICAgICByZXR1cm4g
ZnJhbWVWaWV3ID8gZnJhbWVWaWV3LT50aWxlZEJhY2tpbmcoKSA6IG51bGxwdHI7CiB9CiAKLXZv
aWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZs
dXNoSW1tZWRpYXRlbHkoKQordm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2NoZWR1
bGVJbW1lZGlhdGVSZW5kZXJpbmdVcGRhdGUoKQogewotICAgIG1fbGF5ZXJGbHVzaFRpbWVyLnN0
YXJ0T25lU2hvdCgwX3MpOworICAgIG1fdXBkYXRlUmVuZGVyaW5nVGltZXIuc3RhcnRPbmVTaG90
KDBfcyk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVkdWxlSW5p
dGlhbERlZmVycmVkUGFpbnQoKQogewotICAgIEFTU0VSVCghbV9pc0ZsdXNoaW5nU3VzcGVuZGVk
KTsKLSAgICBtX2ZsdXNoaW5nSW5pdGlhbERlZmVycmVkUGFpbnQgPSB0cnVlOworICAgIEFTU0VS
VCghbV9pc1JlbmRlcmluZ1N1c3BlbmRlZCk7CisgICAgbV9pbkluaXRpYWxEZWZlcnJlZFJlbmRl
cmluZ1VwZGF0ZSA9IHRydWU7CiAKLSAgICBpZiAobV9sYXllckZsdXNoVGltZXIuaXNBY3RpdmUo
KSkKKyAgICBpZiAobV91cGRhdGVSZW5kZXJpbmdUaW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBy
ZXR1cm47Ci0gICAgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpOwor
ICAgIHNjaGVkdWxlSW1tZWRpYXRlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKLXZvaWQgUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkKK3Zv
aWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkK
IHsKLSAgICBpZiAobV9pc0ZsdXNoaW5nU3VzcGVuZGVkKSB7Ci0gICAgICAgIG1faXNMYXllckZs
dXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbiA9IGZhbHNlOwot
ICAgICAgICBtX2hhc0RlZmVycmVkRmx1c2ggPSB0cnVlOworICAgIGlmIChtX2lzUmVuZGVyaW5n
U3VzcGVuZGVkKSB7CisgICAgICAgIG1faXNSZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nVGVtcG9y
YXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uID0gZmFsc2U7CisgICAgICAgIG1faGFzRGVmZXJy
ZWRSZW5kZXJpbmdVcGRhdGUgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIGlm
IChtX2lzTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rp
b24pIHsKLSAgICAgICAgbV9pc0xheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxl
ZEZvckludGVyYWN0aW9uID0gZmFsc2U7Ci0gICAgICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXll
ckZsdXNoSW1tZWRpYXRlbHkoKTsKKyAgICBpZiAobV9pc1JlbmRlcmluZ1VwZGF0ZVRocm90dGxp
bmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24pIHsKKyAgICAgICAgbV9pc1JlbmRl
cmluZ1VwZGF0ZVRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24gPSBm
YWxzZTsKKyAgICAgICAgc2NoZWR1bGVJbW1lZGlhdGVSZW5kZXJpbmdVcGRhdGUoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX2xheWVyRmx1c2hUaW1lci5pc0FjdGl2ZSgp
KQorICAgIGlmIChtX3VwZGF0ZVJlbmRlcmluZ1RpbWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIGNvbnN0IFNlY29uZHMgaW5pdGlhbEZsdXNoRGVsYXkgPSA1MDBfbXM7CiAg
ICAgY29uc3QgU2Vjb25kcyBmbHVzaERlbGF5ID0gMTUwMF9tczsKLSAgICBTZWNvbmRzIHRocm90
dGxlRGVsYXkgPSBtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyA/IChtX2lzSW5pdGlhbFRocm90
dGxlZExheWVyRmx1c2ggPyBpbml0aWFsRmx1c2hEZWxheSA6IGZsdXNoRGVsYXkpIDogMF9zOwot
ICAgIG1faXNJbml0aWFsVGhyb3R0bGVkTGF5ZXJGbHVzaCA9IGZhbHNlOworICAgIFNlY29uZHMg
dGhyb3R0bGVEZWxheSA9IG1faXNUaHJvdHRsaW5nUmVuZGVyaW5nVXBkYXRlcyA/IChtX2lzRmly
c3RUaHJvdHRsZWRSZW5kZXJpbmdVcGRhdGUgPyBpbml0aWFsRmx1c2hEZWxheSA6IGZsdXNoRGVs
YXkpIDogMF9zOworICAgIG1faXNGaXJzdFRocm90dGxlZFJlbmRlcmluZ1VwZGF0ZSA9IGZhbHNl
OwogCi0gICAgbV9sYXllckZsdXNoVGltZXIuc3RhcnRPbmVTaG90KHRocm90dGxlRGVsYXkpOwor
ICAgIG1fdXBkYXRlUmVuZGVyaW5nVGltZXIuc3RhcnRPbmVTaG90KHRocm90dGxlRGVsYXkpOwog
fQogCi1ib29sIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjphZGp1c3RMYXllckZsdXNoVGhy
b3R0bGluZyhXZWJDb3JlOjpMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RmxhZ3MgZmxhZ3MpCiti
b29sIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjphZGp1c3RSZW5kZXJpbmdVcGRhdGVUaHJv
dHRsaW5nKE9wdGlvblNldDxSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlPiBmbGFncykKIHsK
LSAgICBpZiAoZmxhZ3MgJiBXZWJDb3JlOjpMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6VXNlcklz
SW50ZXJhY3RpbmcpCi0gICAgICAgIG1faXNMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5
RGlzYWJsZWRGb3JJbnRlcmFjdGlvbiA9IHRydWU7CisgICAgaWYgKGZsYWdzLmNvbnRhaW5zKFJl
bmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU6OlVzZXJJc0ludGVyYWN0aW5nKSkKKyAgICAgICAg
bV9pc1JlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJh
Y3Rpb24gPSB0cnVlOwogCi0gICAgYm9vbCB3YXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzID0gbV9p
c1Rocm90dGxpbmdMYXllckZsdXNoZXM7Ci0gICAgbV9pc1Rocm90dGxpbmdMYXllckZsdXNoZXMg
PSBmbGFncyAmIFdlYkNvcmU6OkxheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpFbmFibGVkOworICAg
IGJvb2wgd2FzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyA9IG1faXNUaHJvdHRsaW5nUmVuZGVyaW5n
VXBkYXRlczsKKyAgICBtX2lzVGhyb3R0bGluZ1JlbmRlcmluZ1VwZGF0ZXMgPSBmbGFncy5jb250
YWlucyhSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlOjpFbmFibGVkKTsKIAotICAgIGlmICgh
d2FzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyAmJiBtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcykK
LSAgICAgICAgbV9pc0luaXRpYWxUaHJvdHRsZWRMYXllckZsdXNoID0gdHJ1ZTsKKyAgICBpZiAo
IXdhc1Rocm90dGxpbmdMYXllckZsdXNoZXMgJiYgbV9pc1Rocm90dGxpbmdSZW5kZXJpbmdVcGRh
dGVzKQorICAgICAgICBtX2lzRmlyc3RUaHJvdHRsZWRSZW5kZXJpbmdVcGRhdGUgPSB0cnVlOwog
CiAgICAgLy8gUmUtc2NoZWR1bGUgdGhlIGZsdXNoIGlmIHdlIHN0b3BwZWQgdGhyb3R0bGluZy4K
LSAgICBpZiAod2FzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyAmJiAhbV9pc1Rocm90dGxpbmdMYXll
ckZsdXNoZXMgJiYgbV9sYXllckZsdXNoVGltZXIuaXNBY3RpdmUoKSkgewotICAgICAgICBtX2xh
eWVyRmx1c2hUaW1lci5zdG9wKCk7Ci0gICAgICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZs
dXNoKCk7CisgICAgaWYgKHdhc1Rocm90dGxpbmdMYXllckZsdXNoZXMgJiYgIW1faXNUaHJvdHRs
aW5nUmVuZGVyaW5nVXBkYXRlcyAmJiBtX3VwZGF0ZVJlbmRlcmluZ1RpbWVyLmlzQWN0aXZlKCkp
IHsKKyAgICAgICAgbV91cGRhdGVSZW5kZXJpbmdUaW1lci5zdG9wKCk7CisgICAgICAgIHNjaGVk
dWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQpAQCAtMzU0
LDMwICszNTQsMzAgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6YWRkQ29tbWl0
SGFuZGxlcnMoKQogICAgIG1fd2ViUGFnZS5zZXRGaXJzdEZsdXNoQWZ0ZXJDb21taXQodHJ1ZSk7
CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKCkKK3Zv
aWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZVJlbmRlcmluZygpCiB7Ci0gICAg
aWYgKG1faXNGbHVzaGluZ1N1c3BlbmRlZCkgewotICAgICAgICBtX2hhc0RlZmVycmVkRmx1c2gg
PSB0cnVlOworICAgIGlmIChtX2lzUmVuZGVyaW5nU3VzcGVuZGVkKSB7CisgICAgICAgIG1faGFz
RGVmZXJyZWRSZW5kZXJpbmdVcGRhdGUgPSB0cnVlOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAgICAgaWYgKG1fd2FpdGluZ0ZvckJhY2tpbmdTdG9yZVN3YXApIHsKLSAgICAgICAgbV9oYWRG
bHVzaERlZmVycmVkV2hpbGVXYWl0aW5nRm9yQmFja2luZ1N0b3JlU3dhcCA9IHRydWU7CisgICAg
ICAgIG1fZGVmZXJyZWRSZW5kZXJpbmdVcGRhdGVXaGlsZVdhaXRpbmdGb3JCYWNraW5nU3RvcmVT
d2FwID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX2ZsdXNoaW5n
SW5pdGlhbERlZmVycmVkUGFpbnQpIHsKLSAgICAgICAgbV9mbHVzaGluZ0luaXRpYWxEZWZlcnJl
ZFBhaW50ID0gZmFsc2U7CisgICAgaWYgKG1faW5Jbml0aWFsRGVmZXJyZWRSZW5kZXJpbmdVcGRh
dGUpIHsKKyAgICAgICAgbV9pbkluaXRpYWxEZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZSA9IGZhbHNl
OwogICAgICAgICAvLyBSZXNjaGVkdWxlIHRoZSBmbHVzaCB0aW1lciBmb3IgdGhlIHNlY29uZCBw
YWludCBpZiBwYWludGluZyBpcyBiZWluZyB0aHJvdHRsZWQuCi0gICAgICAgIGlmIChtX2lzVGhy
b3R0bGluZ0xheWVyRmx1c2hlcykKLSAgICAgICAgICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXll
ckZsdXNoKCk7CisgICAgICAgIGlmIChtX2lzVGhyb3R0bGluZ1JlbmRlcmluZ1VwZGF0ZXMpCisg
ICAgICAgICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogICAgIH0KIAogICAgIC8vIFRo
aXMgZnVuY3Rpb24gaXMgbm90IHJlZW50cmFudCwgZS5nLiBhIHJBRiBjYWxsYmFjayBtYXkgZm9y
Y2UgcmVwYWludC4KLSAgICBpZiAobV9pbkZsdXNoTGF5ZXJzKQorICAgIGlmIChtX2luVXBkYXRl
UmVuZGVyaW5nKQogICAgICAgICByZXR1cm47CiAKLSAgICBTZXRGb3JTY29wZTxib29sPiBjaGFu
Z2UobV9pbkZsdXNoTGF5ZXJzLCB0cnVlKTsKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2Uo
bV9pblVwZGF0ZVJlbmRlcmluZywgdHJ1ZSk7CiAgICAgbV93ZWJQYWdlLnVwZGF0ZVJlbmRlcmlu
ZygpOwogCiAgICAgRmxvYXRSZWN0IHZpc2libGVSZWN0KEZsb2F0UG9pbnQoKSwgbV92aWV3U2l6
ZSk7CkBAIC0zODYsNyArMzg2LDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6
Zmx1c2hMYXllcnMoKQogCiAgICAgYWRkQ29tbWl0SGFuZGxlcnMoKTsKIAotICAgIGlmIChtX25l
eHRGbHVzaElzRm9ySW1tZWRpYXRlUGFpbnQpCisgICAgaWYgKG1fbmV4dFJlbmRlcmluZ1VwZGF0
ZVJlcXVpcmVzU3luY2hyb25vdXNJbWFnZURlY29kaW5nKQogICAgICAgICBtX3dlYlBhZ2UubWFp
bkZyYW1lVmlldygpLT5pbnZhbGlkYXRlSW1hZ2VzV2l0aEFzeW5jRGVjb2RlcygpOwogCiAgICAg
bV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKS0+Zmx1c2hDb21wb3NpdGluZ1N0YXRlSW5jbHVkaW5n
U3ViZnJhbWVzKCk7CkBAIC00MDYsOSArNDA2LDExIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWE6OmZsdXNoTGF5ZXJzKCkKICAgICBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiBs
YXllclRyYW5zYWN0aW9uOwogICAgIGxheWVyVHJhbnNhY3Rpb24uc2V0VHJhbnNhY3Rpb25JRCh0
YWtlTmV4dFRyYW5zYWN0aW9uSUQoKSk7CiAgICAgbGF5ZXJUcmFuc2FjdGlvbi5zZXRDYWxsYmFj
a0lEcyhXVEZNb3ZlKG1fcGVuZGluZ0NhbGxiYWNrSURzKSk7Ci0gICAgbV9yZW1vdGVMYXllclRy
ZWVDb250ZXh0LT5zZXROZXh0Rmx1c2hJc0ZvckltbWVkaWF0ZVBhaW50KG1fbmV4dEZsdXNoSXNG
b3JJbW1lZGlhdGVQYWludCk7CisKKyAgICBtX3JlbW90ZUxheWVyVHJlZUNvbnRleHQtPnNldE5l
eHRSZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNocm9ub3VzSW1hZ2VEZWNvZGluZyhtX25leHRS
ZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNocm9ub3VzSW1hZ2VEZWNvZGluZyk7CiAgICAgbV9y
ZW1vdGVMYXllclRyZWVDb250ZXh0LT5idWlsZFRyYW5zYWN0aW9uKGxheWVyVHJhbnNhY3Rpb24s
ICpkb3duY2FzdDxHcmFwaGljc0xheWVyQ0FSZW1vdGU+KG1fcm9vdExheWVyLmdldCgpKS5wbGF0
Zm9ybUNBTGF5ZXIoKSk7Ci0gICAgbV9yZW1vdGVMYXllclRyZWVDb250ZXh0LT5zZXROZXh0Rmx1
c2hJc0ZvckltbWVkaWF0ZVBhaW50KGZhbHNlKTsKKyAgICBtX3JlbW90ZUxheWVyVHJlZUNvbnRl
eHQtPnNldE5leHRSZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNocm9ub3VzSW1hZ2VEZWNvZGlu
ZyhmYWxzZSk7CisKICAgICBiYWNraW5nU3RvcmVDb2xsZWN0aW9uLndpbGxDb21taXRMYXllclRy
ZWUobGF5ZXJUcmFuc2FjdGlvbik7CiAgICAgbV93ZWJQYWdlLndpbGxDb21taXRMYXllclRyZWUo
bGF5ZXJUcmFuc2FjdGlvbik7CiAKQEAgLTQyNCw3ICs0MjYsNyBAQCB2b2lkIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhOjpmbHVzaExheWVycygpCiAgICAgICAgIGRvd25jYXN0PFJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yPigqbV93ZWJQYWdlLnNjcm9sbGluZ0Nvb3JkaW5hdG9yKCkpLmJ1
aWxkVHJhbnNhY3Rpb24oc2Nyb2xsaW5nVHJhbnNhY3Rpb24pOwogI2VuZGlmCiAKLSAgICBtX25l
eHRGbHVzaElzRm9ySW1tZWRpYXRlUGFpbnQgPSBmYWxzZTsKKyAgICBtX25leHRSZW5kZXJpbmdV
cGRhdGVSZXF1aXJlc1N5bmNocm9ub3VzSW1hZ2VEZWNvZGluZyA9IGZhbHNlOwogICAgIG1fd2Fp
dGluZ0ZvckJhY2tpbmdTdG9yZVN3YXAgPSB0cnVlOwogCiAgICAgc2VuZChNZXNzYWdlczo6UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6V2lsbENvbW1pdExheWVyVHJlZShsYXllclRy
YW5zYWN0aW9uLnRyYW5zYWN0aW9uSUQoKSkpOwpAQCAtNDc1LDkgKzQ3Nyw5IEBAIHZvaWQgUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmRpZFVwZGF0ZSgpCiAKICAgICBtX3dhaXRpbmdGb3JC
YWNraW5nU3RvcmVTd2FwID0gZmFsc2U7CiAKLSAgICBpZiAobV9oYWRGbHVzaERlZmVycmVkV2hp
bGVXYWl0aW5nRm9yQmFja2luZ1N0b3JlU3dhcCkgewotICAgICAgICBzY2hlZHVsZUNvbXBvc2l0
aW5nTGF5ZXJGbHVzaCgpOwotICAgICAgICBtX2hhZEZsdXNoRGVmZXJyZWRXaGlsZVdhaXRpbmdG
b3JCYWNraW5nU3RvcmVTd2FwID0gZmFsc2U7CisgICAgaWYgKG1fZGVmZXJyZWRSZW5kZXJpbmdV
cGRhdGVXaGlsZVdhaXRpbmdGb3JCYWNraW5nU3RvcmVTd2FwKSB7CisgICAgICAgIHNjaGVkdWxl
UmVuZGVyaW5nVXBkYXRlKCk7CisgICAgICAgIG1fZGVmZXJyZWRSZW5kZXJpbmdVcGRhdGVXaGls
ZVdhaXRpbmdGb3JCYWNraW5nU3RvcmVTd2FwID0gZmFsc2U7CiAgICAgfQogCiAgICAgLy8gVGhp
cyBlbXB0eSB0cmFuc2FjdGlvbiBzZXJ2ZXMgdG8gdHJpZ2dlciBDQSdzIGdhcmJhZ2UgY29sbGVj
dGlvbiBvZiBJT1N1cmZhY2VzLiBTZWUgPHJkYXI6Ly9wcm9ibGVtLzE2MTEwNjg3PgpAQCAtNTMz
LDkgKzUzNSw5IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmFjdGl2aXR5U3Rh
dGVEaWRDaGFuZ2UoT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2CiAgICAgLy8gRklYTUU6IFNob3Vs
ZCB3ZSBzdXNwZW5kIHBhaW50aW5nIHdoaWxlIG5vdCB2aXNpYmxlLCBsaWtlIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhPyBQcm9iYWJseS4KIAogICAgIGlmIChhY3Rpdml0eVN0YXRlQ2hh
bmdlSUQgIT0gQWN0aXZpdHlTdGF0ZUNoYW5nZUFzeW5jaHJvbm91cykgewotICAgICAgICBtX25l
eHRGbHVzaElzRm9ySW1tZWRpYXRlUGFpbnQgPSB0cnVlOworICAgICAgICBtX25leHRSZW5kZXJp
bmdVcGRhdGVSZXF1aXJlc1N5bmNocm9ub3VzSW1hZ2VEZWNvZGluZyA9IHRydWU7CiAgICAgICAg
IG1fYWN0aXZpdHlTdGF0ZUNoYW5nZUlEID0gYWN0aXZpdHlTdGF0ZUNoYW5nZUlEOwotICAgICAg
ICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaEltbWVkaWF0ZWx5KCk7CisgICAgICAgIHNj
aGVkdWxlSW1tZWRpYXRlUmVuZGVyaW5nVXBkYXRlKCk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6
IFdlIG1heSB3YW50IHRvIG1hdGNoIGJlaGF2aW9yIGluIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhIGJ5IGZpcmluZyB0aGVzZSBjYWxsYmFja3MgYWZ0ZXIgdGhlIG5leHQgY29tcG9zaXRp
bmcgZmx1c2gsIHJhdGhlciB0aGFuIGltbWVkaWF0ZWx5IGFmdGVyCkBAIC01NDgsMTAgKzU1MCwx
MCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjphZGRUcmFuc2FjdGlvbkNhbGxi
YWNrSUQoQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIC8vIEFzc3VtZSB0aGF0IGlmIHNv
bWVvbmUgaXMgbGlzdGVuaW5nIGZvciB0aGlzIHRyYW5zYWN0aW9uJ3MgY29tcGxldGlvbiwgdGhh
dCB0aGV5IHdhbnQgaXQgdG8KICAgICAvLyBiZSBhICJjb21wbGV0ZSIgcGFpbnQgKGluY2x1ZGlu
ZyBpbWFnZXMgdGhhdCB3b3VsZCBub3JtYWxseSBiZSBhc3luY2hyb25vdXNseSBkZWNvZGluZyku
Ci0gICAgbV9uZXh0Rmx1c2hJc0ZvckltbWVkaWF0ZVBhaW50ID0gdHJ1ZTsKKyAgICBtX25leHRS
ZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNocm9ub3VzSW1hZ2VEZWNvZGluZyA9IHRydWU7CiAK
ICAgICBtX3BlbmRpbmdDYWxsYmFja0lEcy5hcHBlbmQoc3RhdGljX2Nhc3Q8UmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OlRyYW5zYWN0aW9uQ2FsbGJhY2tJRD4oY2FsbGJhY2tJRCkpOwotICAg
IHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAgc2NoZWR1bGVSZW5kZXJpbmdV
cGRhdGUoKTsKIH0KIAogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6YWRvcHRMYXll
cnNGcm9tRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWEmIG9sZERyYXdpbmdBcmVhKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCmluZGV4IDgz
NTQ0MWQzMTliOTVmNDY2ODc3NTg1Mzg5MDkyYzllZWEyOTM4NjEuLmNiZmEzMWIyN2YxYmQ4YTYy
NjVkYTg3NzY1NDUzOTY5ZTI2Zjc4NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KQEAgLTYxLDcgKzYxLDcgQEAgUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6On5SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvcigpCiAKIHZvaWQg
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCkKIHsK
LSAgICBtX3dlYlBhZ2UtPmRyYXdpbmdBcmVhKCktPnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZs
dXNoKCk7CisgICAgbV93ZWJQYWdlLT5kcmF3aW5nQXJlYSgpLT5zY2hlZHVsZVJlbmRlcmluZ1Vw
ZGF0ZSgpOwogfQogCiBib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpjb29yZGluYXRl
c1Njcm9sbGluZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcmIGZyYW1lVmlldykgY29uc3QK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggODY4
M2MxMDRkYmZhMmMwNWY1ZTg0YjU5NjBmZDY4MmFlMjQ1MWRhZi4uZDFkMmYxYjdhZmNjMDlmYWQx
Yjg5MzFlZDhmODEyZjQ5MGM5NTM3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYyMTgsNyArNjIxOCw3IEBAIHZvaWQgV2ViUGFnZTo6c2No
ZWR1bGVGdWxsRWRpdG9yU3RhdGVVcGRhdGUoKQogICAgIG1faGFzUGVuZGluZ0VkaXRvclN0YXRl
VXBkYXRlID0gdHJ1ZTsKICAgICAvLyBGSVhNRTogU2NoZWR1bGluZyBhIGNvbXBvc2l0aW5nIGxh
eWVyIGZsdXNoIGhlcmUgY2FuIGJlIG1vcmUgZXhwZW5zaXZlIHRoYW4gbmVjZXNzYXJ5LgogICAg
IC8vIEluc3RlYWQsIHdlIHNob3VsZCBqdXN0IGNvbXB1dGUgYW5kIHNlbmQgcG9zdC1sYXlvdXQg
ZWRpdG9yIHN0YXRlIGR1cmluZyB0aGUgbmV4dCBmcmFtZS4KLSAgICBtX2RyYXdpbmdBcmVhLT5z
Y2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIG1fZHJhd2luZ0FyZWEtPnNjaGVk
dWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKICNpZiBIQVZFKFRPVUNIX0JBUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KaW5kZXgg
Yjg1MzliYmM3ZTU2NmEyOTBjZGI0MDljYjI2OGE3MDY3YTI2M2I3MC4uMTAwNmI0OTIyZDIyZmYy
ZTQyNmVlMDEzYWQzNThlOTE0MDlmZWExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTM0MjAsNyArMzQyMCw3IEBAIHZv
aWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShjb25zdCBGbG9hdFNpemUmIHZp
ZXdMYXlvdXRTaXplLCBjb25zdCBXCiAgICAgICAgIHZpZXdwb3J0Q29uZmlndXJhdGlvbkNoYW5n
ZWQoKTsKICNlbmRpZgogCi0gICAgbV9kcmF3aW5nQXJlYS0+c2NoZWR1bGVDb21wb3NpdGluZ0xh
eWVyRmx1c2goKTsKKyAgICBtX2RyYXdpbmdBcmVhLT5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgp
OwogCiAgICAgbV9wZW5kaW5nRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEID0gZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZUlEOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWEuaAppbmRleCBhNzZmMWViYzFjOGYwNGFiOTYzZWEzZjBkNjEyODgxYjY4N2U0NTBiLi43ZWMw
OTAxZmZkNDNhODQxYjFlZTg2OTY0YmFhMzdjODk2M2UyNGVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEuaApAQCAtNjYsOCArNjYsOCBAQCBwcml2YXRlOgogICAgIGJv
b2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc2V0
Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwog
ICAgIHZvaWQgc2NoZWR1bGVJbml0aWFsRGVmZXJyZWRQYWludCgpIG92ZXJyaWRlOwotICAgIHZv
aWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsKLSAgICB2b2lkIHNj
aGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY2hlZHVs
ZUltbWVkaWF0ZVJlbmRlcmluZ1VwZGF0ZSgpIG92ZXJyaWRlOwogCiAgICAgdm9pZCB1cGRhdGVQ
cmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJikgb3ZlcnJpZGU7CiAgICAgdm9p
ZCBtYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92
ZXJyaWRlOwpAQCAtOTIsOCArOTIsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgYWRkTWlsZXN0b25l
c1RvRGlzcGF0Y2goT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4gcGFpbnRNaWxl
c3RvbmVzKSBvdmVycmlkZTsKIAogICAgIHZvaWQgYWRkQ29tbWl0SGFuZGxlcnMoKTsKLSAgICBl
bnVtIGNsYXNzIEZsdXNoVHlwZSB7IE5vcm1hbCwgVHJhbnNpZW50Wm9vbSB9OwotICAgIHZvaWQg
Zmx1c2hMYXllcnMoRmx1c2hUeXBlID0gRmx1c2hUeXBlOjpOb3JtYWwpOworICAgIGVudW0gY2xh
c3MgVXBkYXRlUmVuZGVyaW5nVHlwZSB7IE5vcm1hbCwgVHJhbnNpZW50Wm9vbSB9OworICAgIHZv
aWQgdXBkYXRlUmVuZGVyaW5nKFVwZGF0ZVJlbmRlcmluZ1R5cGUgPSBVcGRhdGVSZW5kZXJpbmdU
eXBlOjpOb3JtYWwpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVycy4KICAgICB2b2lkIHVwZGF0
ZUdlb21ldHJ5KGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHZpZXdTaXplLCBib29sIGZsdXNoU3lu
Y2hyb25vdXNseSwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBmZW5jZVBvcnQpIG92ZXJyaWRl
OwpAQCAtMTMwLDE1ICsxMzAsMTUgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2VuZFBlbmRpbmdO
ZXdseVJlYWNoZWRQYWludGluZ01pbGVzdG9uZXMoKTsKIAotICAgIHZvaWQgbGF5ZXJGbHVzaFJ1
bkxvb3BDYWxsYmFjaygpOwotICAgIHZvaWQgaW52YWxpZGF0ZUxheWVyRmx1c2hSdW5Mb29wT2Jz
ZXJ2ZXIoKTsKLSAgICB2b2lkIHNjaGVkdWxlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOwor
ICAgIHZvaWQgdXBkYXRlUmVuZGVyaW5nUnVuTG9vcENhbGxiYWNrKCk7CisgICAgdm9pZCBpbnZh
bGlkYXRlUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyKCk7CisgICAgdm9pZCBzY2hlZHVs
ZVJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZlcigpOwogCi0gICAgYm9vbCBhZGp1c3RMYXll
ckZsdXNoVGhyb3R0bGluZyhXZWJDb3JlOjpMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RmxhZ3Mp
IG92ZXJyaWRlOwotICAgIGJvb2wgbGF5ZXJGbHVzaFRocm90dGxpbmdJc0FjdGl2ZSgpIGNvbnN0
IG92ZXJyaWRlOworICAgIGJvb2wgYWRqdXN0UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZyhPcHRp
b25TZXQ8V2ViQ29yZTo6UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZT4pIG92ZXJyaWRlOwor
ICAgIGJvb2wgcmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZ0lzQWN0aXZlKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKLSAgICB2b2lkIHN0YXJ0TGF5ZXJGbHVzaFRocm90dGxpbmdUaW1lcigpOwotICAgIHZv
aWQgbGF5ZXJGbHVzaFRocm90dGxpbmdUaW1lckZpcmVkKCk7CisgICAgdm9pZCBzdGFydFJlbmRl
clRocm90dGxpbmdUaW1lcigpOworICAgIHZvaWQgcmVuZGVyVGhyb3R0bGluZ1RpbWVyRmlyZWQo
KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXllckhvc3RpbmdDb250ZXh0PiBtX2xheWVySG9z
dGluZ0NvbnRleHQ7CiAKQEAgLTE1Niw3ICsxNTYsNyBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBt
X3RyYW5zaWVudFpvb21TY2FsZSB7IDEgfTsKICAgICBXZWJDb3JlOjpGbG9hdFBvaW50IG1fdHJh
bnNpZW50Wm9vbU9yaWdpbjsKIAotICAgIFdlYkNvcmU6OlRpbWVyIG1fbGF5ZXJGbHVzaFRocm90
dGxpbmdUaW1lcjsKKyAgICBXZWJDb3JlOjpUaW1lciBtX3JlbmRlclRocm90dGxpbmdUaW1lcjsK
IAogICAgIFJ1bkxvb3A6OlRpbWVyPFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhPiBtX3Nl
bmREaWRVcGRhdGVBY3Rpdml0eVN0YXRlVGltZXI7CiAgICAgVmVjdG9yPENhbGxiYWNrSUQ+IG1f
bmV4dEFjdGl2aXR5U3RhdGVDaGFuZ2VDYWxsYmFja0lEczsKQEAgLTE2NywxNSArMTY3LDE1IEBA
IHByaXZhdGU6CiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4gbV9wZW5k
aW5nTmV3bHlSZWFjaGVkUGFpbnRpbmdNaWxlc3RvbmVzOwogICAgIFZlY3RvcjxDYWxsYmFja0lE
PiBtX3BlbmRpbmdDYWxsYmFja0lEczsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpS
dW5Mb29wT2JzZXJ2ZXI+IG1fbGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcjsKKyAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6UnVuTG9vcE9ic2VydmVyPiBtX3JlbmRlclVwZGF0ZVJ1bkxvb3BP
YnNlcnZlcjsKIAogICAgIGJvb2wgbV9pc1BhaW50aW5nU3VzcGVuZGVkIHsgZmFsc2UgfTsKICAg
ICBib29sIG1faW5VcGRhdGVHZW9tZXRyeSB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2xheWVyVHJl
ZVN0YXRlSXNGcm96ZW4geyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGRTY2FsZVZpZXdUb0Zp
dERvY3VtZW50IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNTY2FsaW5nVmlld1RvRml0RG9jdW1l
bnQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc1Rocm90dGxpbmdMYXllckZsdXNoZXMgeyBmYWxz
ZSB9OwotICAgIGJvb2wgbV9pc0xheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxl
ZEZvckludGVyYWN0aW9uIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNUaHJvdHRsaW5nUmVuZGVy
aW5nVXBkYXRlcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzUmVuZGVyaW5nVXBkYXRlVGhyb3R0
bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbiB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX25lZWRzU2VuZEVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUgeyB0cnVlIH07CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0KaW5kZXggNTZmYTE4
MDMyZjg4NWMyM2Q3YTM0Nzg1NTljMGYwYzYwMzM1N2UwNC4uMjI2NmRiMDk4Y2Q2YzVmM2YyMGFj
ODM2OGMwM2YzMDUzZTgyYTk1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYS5tbQpAQCAtNzIsNyArNzIsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
KFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFt
ZXRlcnMpCiAgICAgOiBEcmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5cGVUaWxlZENvcmVBbmltYXRp
b24sIHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFJZGVudGlmaWVyLCB3ZWJQYWdlKQotICAgICwgbV9s
YXllckZsdXNoVGhyb3R0bGluZ1RpbWVyKCp0aGlzLCAmVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6OmxheWVyRmx1c2hUaHJvdHRsaW5nVGltZXJGaXJlZCkKKyAgICAsIG1fcmVuZGVyVGhy
b3R0bGluZ1RpbWVyKCp0aGlzLCAmVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnJlbmRl
clRocm90dGxpbmdUaW1lckZpcmVkKQogICAgICwgbV9zZW5kRGlkVXBkYXRlQWN0aXZpdHlTdGF0
ZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpkaWRVcGRhdGVBY3Rpdml0eVN0YXRlVGltZXJGaXJlZCkKICAgICAsIG1faXNQYWludGlu
Z1N1c3BlbmRlZCghKHBhcmFtZXRlcnMuYWN0aXZpdHlTdGF0ZSAmIEFjdGl2aXR5U3RhdGU6Oklz
VmlzaWJsZSkpCiB7CkBAIC04NCw4ICs4NCw4IEBAIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYShXZWJQYWdlJiB3ZWJQYWdlLCBjCiAg
ICAgW21faG9zdGluZ0xheWVyIHNldE9wYXF1ZTpZRVNdOwogICAgIFttX2hvc3RpbmdMYXllciBz
ZXRHZW9tZXRyeUZsaXBwZWQ6WUVTXTsKIAotICAgIG1fbGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZl
ciA9IG1ha2VVbmlxdWU8UnVuTG9vcE9ic2VydmVyPihzdGF0aWNfY2FzdDxDRkluZGV4PihSdW5M
b29wT2JzZXJ2ZXI6OldlbGxLbm93blJ1bkxvb3BPcmRlcnM6OkxheWVyRmx1c2gpLCBbdGhpc10o
KSB7Ci0gICAgICAgIHRoaXMtPmxheWVyRmx1c2hSdW5Mb29wQ2FsbGJhY2soKTsKKyAgICBtX3Jl
bmRlclVwZGF0ZVJ1bkxvb3BPYnNlcnZlciA9IG1ha2VVbmlxdWU8UnVuTG9vcE9ic2VydmVyPihz
dGF0aWNfY2FzdDxDRkluZGV4PihSdW5Mb29wT2JzZXJ2ZXI6OldlbGxLbm93blJ1bkxvb3BPcmRl
cnM6OkxheWVyRmx1c2gpLCBbdGhpc10oKSB7CisgICAgICAgIHRoaXMtPnVwZGF0ZVJlbmRlcmlu
Z1J1bkxvb3BDYWxsYmFjaygpOwogICAgIH0pOwogCiAgICAgdXBkYXRlTGF5ZXJIb3N0aW5nQ29u
dGV4dCgpOwpAQCAtOTQsNyArOTQsNyBAQCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEoV2ViUGFnZSYgd2ViUGFnZSwgYwogCiBUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6flRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
KCkKIHsKLSAgICBpbnZhbGlkYXRlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOworICAgIGlu
dmFsaWRhdGVSZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIoKTsKIH0KIAogdm9pZCBUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2VuZEVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGVJZk5lZWRlZCgpCkBAIC0xNTUsNyArMTU1LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYTo6Zm9yY2VSZXBhaW50KCkKICAgICAgICAgZnJhbWVWaWV3LT50aWxlZEJh
Y2tpbmcoKS0+Zm9yY2VSZXBhaW50KCk7CiAgICAgfQogCi0gICAgZmx1c2hMYXllcnMoKTsKKyAg
ICB1cGRhdGVSZW5kZXJpbmcoKTsKICAgICBbQ0FUcmFuc2FjdGlvbiBmbHVzaF07CiAgICAgW0NB
VHJhbnNhY3Rpb24gc3luY2hyb25pemVdOwogfQpAQCAtMTgyLDExICsxODIsMTEgQEAgdm9pZCBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihi
b29sIGxheWVyVHJlZVN0YXQKICAgICBtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4gPSBsYXllclRy
ZWVTdGF0ZUlzRnJvemVuOwogCiAgICAgaWYgKG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbikgewot
ICAgICAgICBpbnZhbGlkYXRlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOwotICAgICAgICBt
X2xheWVyRmx1c2hUaHJvdHRsaW5nVGltZXIuc3RvcCgpOworICAgICAgICBpbnZhbGlkYXRlUmVu
ZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyKCk7CisgICAgICAgIG1fcmVuZGVyVGhyb3R0bGlu
Z1RpbWVyLnN0b3AoKTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBJbW1lZGlhdGUgZmx1c2gg
YXMgYW55IGRlbGF5IGluIHVuZnJlZXppbmcgY2FuIHJlc3VsdCBpbiBmbGFzaGVzLgotICAgICAg
ICBzY2hlZHVsZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIoKTsKKyAgICAgICAgc2NoZWR1bGVS
ZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIoKTsKICAgICB9CiB9CiAKQEAgLTE5OSwzMSAr
MTk5LDMxIEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNjaGVkdWxlSW5p
dGlhbERlZmVycmVkUGFpbnQoKQogewogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhOjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpCit2b2lkIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpCiB7CiAgICAgaWYg
KG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbikgewotICAgICAgICBtX2lzTGF5ZXJGbHVzaFRocm90
dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24gPSBmYWxzZTsKKyAgICAgICAg
bV9pc1JlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJh
Y3Rpb24gPSBmYWxzZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX2lzTGF5
ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24pIHsKLSAg
ICAgICAgbV9pc0xheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVy
YWN0aW9uID0gZmFsc2U7Ci0gICAgICAgIHNjaGVkdWxlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZl
cigpOwotICAgICAgICBtX2xheWVyRmx1c2hUaHJvdHRsaW5nVGltZXIuc3RvcCgpOworICAgIGlm
IChtX2lzUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRl
cmFjdGlvbikgeworICAgICAgICBtX2lzUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZ1RlbXBvcmFy
aWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbiA9IGZhbHNlOworICAgICAgICBzY2hlZHVsZVJlbmRl
cmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZlcigpOworICAgICAgICBtX3JlbmRlclRocm90dGxpbmdU
aW1lci5zdG9wKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAobV9sYXllckZs
dXNoVGhyb3R0bGluZ1RpbWVyLmlzQWN0aXZlKCkpIHsKLSAgICAgICAgQVNTRVJUKG1faXNUaHJv
dHRsaW5nTGF5ZXJGbHVzaGVzKTsKKyAgICBpZiAobV9yZW5kZXJUaHJvdHRsaW5nVGltZXIuaXNB
Y3RpdmUoKSkgeworICAgICAgICBBU1NFUlQobV9pc1Rocm90dGxpbmdSZW5kZXJpbmdVcGRhdGVz
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNjaGVkdWxlTGF5ZXJGbHVzaFJ1bkxv
b3BPYnNlcnZlcigpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVy
KCk7CiB9CiAKLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNjaGVkdWxlQ29t
cG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKQordm9pZCBUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYTo6c2NoZWR1bGVJbW1lZGlhdGVSZW5kZXJpbmdVcGRhdGUoKQogewotICAgIHNj
aGVkdWxlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOworICAgIHNjaGVkdWxlUmVuZGVyaW5n
VXBkYXRlUnVuTG9vcE9ic2VydmVyKCk7CiB9CiAKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWE6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKQpA
QCAtMjcxLDcgKzI3MSw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmF0
dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihHcmFwaGljc0xheWVyCiB7CiAgICAgbV92aWV3
T3ZlcmxheVJvb3RMYXllciA9IHZpZXdPdmVybGF5Um9vdExheWVyOwogICAgIHVwZGF0ZVJvb3RM
YXllcnMoKTsKLSAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIHNjaGVk
dWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6Om1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChjb25zdCBJbnRTaXplJiBzaXplKQpA
QCAtMjg0LDcgKzI4NCw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNl
dFNob3VsZFNjYWxlVmlld1RvRml0RG9jdW1lbnQoYm9vbCBzaG91bGRTCiAgICAgICAgIHJldHVy
bjsKIAogICAgIG1fc2hvdWxkU2NhbGVWaWV3VG9GaXREb2N1bWVudCA9IHNob3VsZFNjYWxlVmll
dzsKLSAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIHNjaGVkdWxlUmVu
ZGVyaW5nVXBkYXRlKCk7CiB9CiAKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OnNjYWxlVmlld1RvRml0RG9jdW1lbnRJZk5lZWRlZCgpCkBAIC0zOTIsNyArMzkyLDcgQEAgdm9p
ZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nVXBk
YXRlZFNjcm9sbFBvc2l0aW9uKFcKICAgICBtX3dlYlBhZ2UuY29yZVBhZ2UoKS0+c2Nyb2xsaW5n
Q29vcmRpbmF0b3IoKS0+Y29tbWl0VHJlZVN0YXRlSWZOZWVkZWQoKTsKIAogICAgIGlmICghbV9s
YXllclRyZWVTdGF0ZUlzRnJvemVuKQotICAgICAgICBpbnZhbGlkYXRlTGF5ZXJGbHVzaFJ1bkxv
b3BPYnNlcnZlcigpOworICAgICAgICBpbnZhbGlkYXRlUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9i
c2VydmVyKCk7CiAKICAgICAvLyBJdCBpcyBwb3NzaWJsZSBmb3IgdGhlIGRyYXdpbmcgYXJlYSB0
byBiZSBkZXN0cm95ZWQgYmVmb3JlIHRoZSBib3VuZCBibG9jawogICAgIC8vIGlzIGludm9rZWQs
IHNvIGdyYWIgYSByZWZlcmVuY2UgdG8gdGhlIHdlYiBwYWdlIGhlcmUgc28gd2UgY2FuIGFjY2Vz
cyB0aGUgZHJhd2luZyBhcmVhIHRocm91Z2ggaXQuCkBAIC00MDcsNyArNDA3LDcgQEAgdm9pZCBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nVXBkYXRl
ZFNjcm9sbFBvc2l0aW9uKFcKICAgICAgICAgZnVuY3Rpb24oKTsKIAogICAgICAgICBpZiAoIW1f
bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbikKLSAgICAgICAgICAgIHNjaGVkdWxlTGF5ZXJGbHVzaFJ1
bkxvb3BPYnNlcnZlcigpOworICAgICAgICAgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVSdW5M
b29wT2JzZXJ2ZXIoKTsKIAogICAgICAgICB3ZWJQYWdlLT5kZXJlZigpOwogICAgIH0pOwpAQCAt
NDI4LDcgKzQyOCw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNlbmRQ
ZW5kaW5nTmV3bHlSZWFjaGVkUGFpbnRpbmdNaWxlc3RvbmVzKCkKIHZvaWQgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OmFkZFRyYW5zYWN0aW9uQ2FsbGJhY2tJRChDYWxsYmFja0lEIGNh
bGxiYWNrSUQpCiB7CiAgICAgbV9wZW5kaW5nQ2FsbGJhY2tJRHMuYXBwZW5kKGNhbGxiYWNrSUQp
OwotICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAgc2NoZWR1bGVSZW5k
ZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
YWRkQ29tbWl0SGFuZGxlcnMoKQpAQCAtNDU2LDcgKzQ1Niw3IEBAIHZvaWQgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OmFkZENvbW1pdEhhbmRsZXJzKCkKICAgICBtX3dlYlBhZ2Uuc2V0
Rmlyc3RGbHVzaEFmdGVyQ29tbWl0KHRydWUpOwogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhOjpmbHVzaExheWVycyhGbHVzaFR5cGUgZmx1c2hUeXBlKQordm9pZCBUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlUmVuZGVyaW5nKFVwZGF0ZVJlbmRlcmlu
Z1R5cGUgZmx1c2hUeXBlKQogewogICAgIGlmIChsYXllclRyZWVTdGF0ZUlzRnJvemVuKCkpCiAg
ICAgICAgIHJldHVybjsKQEAgLTQ4Nyw3ICs0ODcsNyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhOjpmbHVzaExheWVycyhGbHVzaFR5cGUgZmx1c2hUeXBlKQogI2lmIEVOQUJM
RShBU1lOQ19TQ1JPTExJTkcpCiAgICAgICAgIGlmIChhdXRvKiBzY3JvbGxpbmdDb29yZGluYXRv
ciA9IG1fd2ViUGFnZS5jb3JlUGFnZSgpLT5zY3JvbGxpbmdDb29yZGluYXRvcigpKSB7CiAgICAg
ICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+Y29tbWl0VHJlZVN0YXRlSWZOZWVkZWQoKTsK
LSAgICAgICAgICAgIGlmIChmbHVzaFR5cGUgPT0gRmx1c2hUeXBlOjpOb3JtYWwpCisgICAgICAg
ICAgICBpZiAoZmx1c2hUeXBlID09IFVwZGF0ZVJlbmRlcmluZ1R5cGU6Ok5vcm1hbCkKICAgICAg
ICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+YXBwbHlTY3JvbGxpbmdUcmVlTGF5ZXJQ
b3NpdGlvbnMoKTsKICAgICAgICAgfQogI2VuZGlmCkBAIC01MDQsMTMgKzUwNCwxMyBAQCB2b2lk
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmbHVzaExheWVycyhGbHVzaFR5cGUgZmx1
c2hUeXBlKQogCiAgICAgICAgIGlmIChkaWRGbHVzaEFsbEZyYW1lcykgewogICAgICAgICAgICAg
c2VuZEVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVJZk5lZWRlZCgpOwotICAgICAgICAg
ICAgaW52YWxpZGF0ZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIoKTsKKyAgICAgICAgICAgIGlu
dmFsaWRhdGVSZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIoKTsKICAgICAgICAgfQogCi0g
ICAgICAgIGlmIChtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcykKLSAgICAgICAgICAgIHN0YXJ0
TGF5ZXJGbHVzaFRocm90dGxpbmdUaW1lcigpOworICAgICAgICBpZiAobV9pc1Rocm90dGxpbmdS
ZW5kZXJpbmdVcGRhdGVzKQorICAgICAgICAgICAgc3RhcnRSZW5kZXJUaHJvdHRsaW5nVGltZXIo
KTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9sYXllckZsdXNoVGhyb3R0bGluZ1RpbWVy
LnN0b3AoKTsKKyAgICAgICAgICAgIG1fcmVuZGVyVGhyb3R0bGluZ1RpbWVyLnN0b3AoKTsKICAg
ICB9CiB9CiAKQEAgLTU0OSw2ICs1NDksNyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhOjpzdXNwZW5kUGFpbnRpbmcoKQogICAgIEFTU0VSVCghbV9pc1BhaW50aW5nU3VzcGVu
ZGVkKTsKICAgICBtX2lzUGFpbnRpbmdTdXNwZW5kZWQgPSB0cnVlOwogCisgICAgLy8gVGhpcyBp
cyBhIHNpZ25hbCB0byBtZWRpYSBmcmFtZXdvcmtzOyBpdCBkb2VzIG5vdCBhY3RpdmVseSBwYXVz
ZSBhbnl0aGluZy4KICAgICBbbV9ob3N0aW5nTGF5ZXIgc2V0VmFsdWU6QFlFUyBmb3JLZXk6QCJO
U0NBVmlld1JlbmRlclBhdXNlZCJdOwogICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVs
dENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6QCJOU0NBVmlld1JlbmRlckRpZFBhdXNlTm90
aWZpY2F0aW9uIiBvYmplY3Q6bmlsIHVzZXJJbmZvOltOU0RpY3Rpb25hcnkgZGljdGlvbmFyeVdp
dGhPYmplY3Q6bV9ob3N0aW5nTGF5ZXIuZ2V0KCkgZm9yS2V5OkAibGF5ZXIiXV07CiB9CkBAIC02
MjMsNyArNjI0LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRl
R2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGJvb2wKICAgICAgICAgc2l6ZSA9IGNv
bnRlbnRTaXplOwogICAgIH0KIAotICAgIGZsdXNoTGF5ZXJzKCk7CisgICAgdXBkYXRlUmVuZGVy
aW5nKCk7CiAKICAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CiAgICAgW0NBVHJhbnNhY3Rpb24g
c2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKQEAgLTkyOSw3ICs5MzAsNyBAQCB2b2lkIFRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjphcHBseVRyYW5zaWVudFpvb21Ub1BhZ2UoZG91YmxlIHNj
YWxlLCBGbG9hdAogICAgIHVuc2Nyb2xsZWRPcmlnaW4ubW92ZUJ5KC11bm9ic2N1cmVkQ29udGVu
dFJlY3QubG9jYXRpb24oKSk7CiAgICAgbV93ZWJQYWdlLnNjYWxlUGFnZShzY2FsZSAvIG1fd2Vi
UGFnZS52aWV3U2NhbGVGYWN0b3IoKSwgcm91bmRlZEludFBvaW50KC11bnNjcm9sbGVkT3JpZ2lu
KSk7CiAgICAgbV90cmFuc2llbnRab29tU2NhbGUgPSAxOwotICAgIGZsdXNoTGF5ZXJzKEZsdXNo
VHlwZTo6VHJhbnNpZW50Wm9vbSk7CisgICAgdXBkYXRlUmVuZGVyaW5nKFVwZGF0ZVJlbmRlcmlu
Z1R5cGU6OlRyYW5zaWVudFpvb20pOwogfQogCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhOjphZGRGZW5jZShjb25zdCBNYWNoU2VuZFJpZ2h0JiBmZW5jZVBvcnQpCkBAIC05Mzcs
NzEgKzkzOCw3MSBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjphZGRGZW5j
ZShjb25zdCBNYWNoU2VuZFJpZ2h0JiBmZW5jZVBvcnQpCiAgICAgbV9sYXllckhvc3RpbmdDb250
ZXh0LT5zZXRGZW5jZVBvcnQoZmVuY2VQb3J0LnNlbmRSaWdodCgpKTsKIH0KIAotdm9pZCBUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6bGF5ZXJGbHVzaFJ1bkxvb3BDYWxsYmFjaygpCit2
b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVSZW5kZXJpbmdSdW5Mb29w
Q2FsbGJhY2soKQogewotICAgIHRyYWNlUG9pbnQoTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlckVu
ZCwgMCk7CisgICAgdHJhY2VQb2ludChSZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXJFbmQs
IDApOwogCi0gICAgZmx1c2hMYXllcnMoKTsKKyAgICB1cGRhdGVSZW5kZXJpbmcoKTsKIH0KIAot
dm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6aW52YWxpZGF0ZUxheWVyRmx1c2hS
dW5Mb29wT2JzZXJ2ZXIoKQordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6aW52
YWxpZGF0ZVJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZlcigpCiB7Ci0gICAgaWYgKCFtX2xh
eWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXItPmlzU2NoZWR1bGVkKCkpCisgICAgaWYgKCFtX3JlbmRl
clVwZGF0ZVJ1bkxvb3BPYnNlcnZlci0+aXNTY2hlZHVsZWQoKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgdHJhY2VQb2ludChMYXllckZsdXNoUnVuTG9vcE9ic2VydmVyRW5kLCAxKTsKKyAgICB0
cmFjZVBvaW50KFJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZlckVuZCwgMSk7CiAKLSAgICBt
X2xheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXItPmludmFsaWRhdGUoKTsKKyAgICBtX3JlbmRlclVw
ZGF0ZVJ1bkxvb3BPYnNlcnZlci0+aW52YWxpZGF0ZSgpOwogfQogCi12b2lkIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIoKQor
dm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NoZWR1bGVSZW5kZXJpbmdVcGRh
dGVSdW5Mb29wT2JzZXJ2ZXIoKQogewotICAgIHRyYWNlUG9pbnQoTGF5ZXJGbHVzaFJ1bkxvb3BP
YnNlcnZlclN0YXJ0KTsKKyAgICB0cmFjZVBvaW50KFJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNl
cnZlclN0YXJ0KTsKICAgICAKLSAgICBtX2xheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXItPnNjaGVk
dWxlKENGUnVuTG9vcEdldEN1cnJlbnQoKSk7CisgICAgbV9yZW5kZXJVcGRhdGVSdW5Mb29wT2Jz
ZXJ2ZXItPnNjaGVkdWxlKENGUnVuTG9vcEdldEN1cnJlbnQoKSk7CiB9CiAKLWJvb2wgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKExheWVy
Rmx1c2hUaHJvdHRsZVN0YXRlOjpGbGFncyBmbGFncykKK2Jvb2wgVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OmFkanVzdFJlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmcoT3B0aW9uU2V0PFJl
bmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU+IGZsYWdzKQogewotICAgIGJvb2wgd2FzVGhyb3R0
bGluZ0xheWVyRmx1c2hlcyA9IG1faXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzOwotICAgIG1faXNU
aHJvdHRsaW5nTGF5ZXJGbHVzaGVzID0gZmxhZ3MgJiBMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6
RW5hYmxlZDsKLSAgICBtX2lzTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVk
Rm9ySW50ZXJhY3Rpb24gPSBmbGFncyAmIExheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpVc2VySXNJ
bnRlcmFjdGluZzsKKyAgICBib29sIHdhc1Rocm90dGxpbmdSZW5kZXJpbmcgPSBtX2lzVGhyb3R0
bGluZ1JlbmRlcmluZ1VwZGF0ZXM7CisgICAgbV9pc1Rocm90dGxpbmdSZW5kZXJpbmdVcGRhdGVz
ID0gZmxhZ3MuY29udGFpbnMoUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZTo6RW5hYmxlZCk7
CisgICAgbV9pc1JlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9y
SW50ZXJhY3Rpb24gPSBmbGFncy5jb250YWlucyhSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRl
OjpVc2VySXNJbnRlcmFjdGluZyk7CiAKLSAgICBpZiAod2FzVGhyb3R0bGluZ0xheWVyRmx1c2hl
cyA9PSBtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcykKKyAgICBpZiAod2FzVGhyb3R0bGluZ1Jl
bmRlcmluZyA9PSBtX2lzVGhyb3R0bGluZ1JlbmRlcmluZ1VwZGF0ZXMpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCi0gICAgbV9sYXllckZsdXNoVGhyb3R0bGluZ1RpbWVyLnN0b3AoKTsKKyAgICBt
X3JlbmRlclRocm90dGxpbmdUaW1lci5zdG9wKCk7CiAKICAgICBpZiAobV9sYXllclRyZWVTdGF0
ZUlzRnJvemVuKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmIChtX2lzVGhyb3R0bGlu
Z0xheWVyRmx1c2hlcykgewotICAgICAgICBpbnZhbGlkYXRlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNl
cnZlcigpOwotICAgICAgICBzdGFydExheWVyRmx1c2hUaHJvdHRsaW5nVGltZXIoKTsKKyAgICBp
ZiAobV9pc1Rocm90dGxpbmdSZW5kZXJpbmdVcGRhdGVzKSB7CisgICAgICAgIGludmFsaWRhdGVS
ZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIoKTsKKyAgICAgICAgc3RhcnRSZW5kZXJUaHJv
dHRsaW5nVGltZXIoKTsKICAgICB9IGVsc2UKLSAgICAgICAgc2NoZWR1bGVMYXllckZsdXNoUnVu
TG9vcE9ic2VydmVyKCk7CisgICAgICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9i
c2VydmVyKCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYTo6bGF5ZXJGbHVzaFRocm90dGxpbmdJc0FjdGl2ZSgpIGNvbnN0Citib29s
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpyZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5n
SXNBY3RpdmUoKSBjb25zdAogewotICAgIHJldHVybiBtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hl
cyAmJiAhbV9sYXllclRyZWVTdGF0ZUlzRnJvemVuOworICAgIHJldHVybiBtX2lzVGhyb3R0bGlu
Z1JlbmRlcmluZ1VwZGF0ZXMgJiYgIW1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbjsKIH0KIAotdm9p
ZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c3RhcnRMYXllckZsdXNoVGhyb3R0bGlu
Z1RpbWVyKCkKK3ZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnN0YXJ0UmVuZGVy
VGhyb3R0bGluZ1RpbWVyKCkKIHsKLSAgICBBU1NFUlQobV9pc1Rocm90dGxpbmdMYXllckZsdXNo
ZXMpOworICAgIEFTU0VSVChtX2lzVGhyb3R0bGluZ1JlbmRlcmluZ1VwZGF0ZXMpOwogCiAgICAg
Y29uc3QgYXV0byB0aHJvdHRsZWRGbHVzaERlbGF5ID0gNTAwX21zOwotICAgIG1fbGF5ZXJGbHVz
aFRocm90dGxpbmdUaW1lci5zdGFydE9uZVNob3QodGhyb3R0bGVkRmx1c2hEZWxheSk7CisgICAg
bV9yZW5kZXJUaHJvdHRsaW5nVGltZXIuc3RhcnRPbmVTaG90KHRocm90dGxlZEZsdXNoRGVsYXkp
OwogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpsYXllckZsdXNoVGhy
b3R0bGluZ1RpbWVyRmlyZWQoKQordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6
cmVuZGVyVGhyb3R0bGluZ1RpbWVyRmlyZWQoKQogewogICAgIGlmIChtX2xheWVyVHJlZVN0YXRl
SXNGcm96ZW4pCiAgICAgICAgIHJldHVybjsKLSAgICBzY2hlZHVsZUxheWVyRmx1c2hSdW5Mb29w
T2JzZXJ2ZXIoKTsKKyAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZlcigp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktp
dExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNDI1YWJm
YzFhOTE3MTliOGQyNWNkZWI3NTk5NGU1OGUxNjY0ZWE5ZS4uMWJhZmFmMDg0MzUxYjZlNTc0MGQ2
OWJjNWY0OTRiYmMwY2ZhODUxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTE2OSw3ICsxNjksNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJh
bWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBhdHRhY2hW
aWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwog
ICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpIGZpbmFsOwot
ICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBmaW5hbDsKKyAgICB2b2lk
IHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkgZmluYWw7CiAgICAgYm9vbCBuZWVkc0ltbWVkaWF0
ZVJlbmRlcmluZ1VwZGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIENv
bXBvc2l0aW5nVHJpZ2dlckZsYWdzIGFsbG93ZWRDb21wb3NpdGluZ1RyaWdnZXJzKCkgY29uc3Qg
ZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCAzYjVmYjgyZTIwYWVjYzA4MmRhZDdiZTRiOTQx
MDE4Njk2MzFhZmJkLi44OWUwMTQyY2EwMTg2NmNmZmI2NTFjZmRjYjkzOTY0N2ZmYTlkOTNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC05NDIsMTAgKzk0MiwxMCBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigpCiAgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxl
Q29tcG9zaXRpbmdMYXllckZsdXNoKCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZVJl
bmRlcmluZ1VwZGF0ZSgpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwotICAg
IFttX3dlYlZpZXcgX3NjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoXTsKKyAgICBbbV93ZWJW
aWV3IF9zY2hlZHVsZVVwZGF0ZVJlbmRlcmluZ107CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBU
SU9OUzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmlu
ZGV4IGRmZTY2M2ZjOWI1ZWYyODk3YWRkNDg5ZjUyMTM2MDg2YWJmODMyNTkuLjc4NTAxOTBlNDFj
YTAzMDFjZmMzMjRmNWVkMGRiY2U3ZGFiODI0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRM
ZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTkyODgsNyArOTI4OCw3IEBAIGJvb2wgTGF5ZXJGbHVz
aENvbnRyb2xsZXI6OmZsdXNoTGF5ZXJzKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLS0gKHZv
aWQpX3NjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoCistICh2b2lkKV9zY2hlZHVsZVVwZGF0
ZVJlbmRlcmluZwogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgaWYgKF9wcml2YXRl
LT5jbG9zaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9X
ZWJWaWV3RGF0YS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0
YS5oCmluZGV4IDY4MDM3YzA2ZWZiNzg4N2M0YmQ1YzI1M2FhNjlhZDQyZjNkZTZkYWMuLmUyZmRl
NDU2NTYzNjhjZDRkYzJjNmQwZWY0ZmI2NWEyYmEzMjE0MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKQEAgLTEzMCw2ICsxMzAsNyBAQCBwdWJs
aWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IExheWVyRmx1c2hDb250cm9sbGVyKHdl
YlZpZXcpKTsKICAgICB9CiAgICAgCisgICAgLy8gRklYTUU6IFJlbmFtZSB0byB1c2UgJ3VwZGF0
ZVJlbmRlcmluZycgdGVybWlub2xvZ3kuCiAgICAgYm9vbCBmbHVzaExheWVycygpOwogICAgIAog
ICAgIHZvaWQgc2NoZWR1bGVMYXllckZsdXNoKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdExlZ2Fj
eS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAppbmRleCA4ZWM3OTk5OWUzOWFiZTdmODFi
ZjM1NGZmMTkzNzgxYjY5MmU5ZTg2Li41NmM4ZDU2MjkwZGRjZWE0YThjOWMwZGMwMmYwOGZlOWE0
Yjg4ODhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZp
ZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmll
d0ludGVybmFsLmgKQEAgLTEyOCw3ICsxMjgsNyBAQCBPQkpDX0NMQVNTIE5TVGV4dEFsdGVybmF0
aXZlczsKIAogLSAoQk9PTClfbmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbjsKIC0g
KHZvaWQpX3NldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb246KEJPT0wpbmVlZHNT
eW5jaHJvbml6YXRpb247Ci0tICh2b2lkKV9zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaDsK
Ky0gKHZvaWQpX3NjaGVkdWxlVXBkYXRlUmVuZGVyaW5nOwogLSAoQk9PTClfZmx1c2hDb21wb3Np
dGluZ0NoYW5nZXM7CiAKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAppbmRleCBiMTc0MTE0NjRhZGQ1MTMzNTBkNDU1ZGY2YzM0NTQzOGZkZDdmN2I4Li43
MWI0ZWNkMGMwMWFmYTA2NWZkZDMxYzFlMzZhYmY0Y2JlYWFhZjc2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKQEAgLTc0Niw3ICs3NDYsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6YXR0YWNoVmll
d092ZXJsYXlHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXIqKQogICAgIC8vIEZJWE1FOiBJZiB3
ZSB3YW50IHZpZXctcmVsYXRpdmUgcGFnZSBvdmVybGF5cyBpbiBMZWdhY3kgV2ViS2l0IG9uIFdp
bmRvd3MsIHRoaXMgd291bGQgYmUgdGhlIHBsYWNlIHRvIGhvb2sgdGhlbSB1cC4KIH0KIAotdm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkKK3ZvaWQg
V2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpCiB7CiAgICAgbV93ZWJW
aWV3LT5mbHVzaFBlbmRpbmdHcmFwaGljc0xheWVyQ2hhbmdlc1Nvb24oKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKaW5kZXggZWMzZDE3MzE1N2YzN2I2MDFmMjYwOTc0NWFhOTEzNTE5ZjViOGE4Ny4uZWQ1
NjU1ZDBhNGYxNmYzZjc3MzJhZTVjZjdlMTYyZjkzYmQ1Y2VhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
QEAgLTEzMyw3ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3
aW5nU3luY2hyb25pemF0aW9uKCkgZmluYWwgeyB9CiAgICAgLy8gU2V0cyBhIGZsYWcgdG8gc3Bl
Y2lmeSB0aGF0IHRoZSB2aWV3IG5lZWRzIHRvIGJlIHVwZGF0ZWQsIHNvIHdlIG5lZWQKICAgICAv
LyB0byBkbyBhbiBlYWdlciBsYXlvdXQgYmVmb3JlIHRoZSBkcmF3aW5nLgotICAgIHZvaWQgc2No
ZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBmaW5hbDsKKyAgICB2b2lkIHNjaGVkdWxlUmVu
ZGVyaW5nVXBkYXRlKCkgZmluYWw7CiAKICNpZiBQTEFURk9STShXSU4pICYmIFVTRShBVkZPVU5E
QVRJT04pCiAgICAgV2ViQ29yZTo6R3JhcGhpY3NEZXZpY2VBZGFwdGVyKiBncmFwaGljc0Rldmlj
ZUFkYXB0ZXIoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA0NmUxMzQwZDc1YTVjN2Y1NGRkN2E1YjAzNjE0YTQ4NDM2YzJh
OTU4Li5kMGE0MDhjZjQ1OWJhZWI5OWYzNWQwZThmZDQ5ZjdhM2U0NjNmOTIzIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMjAtMDItMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAg
ICAgICAgTW92ZSBmcm9tICJsYXllciBmbHVzaCIgdGVybWlub2xvZ3kgdG8gInJlbmRlcmluZyB1
cGRhdGUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDc4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIFJlbmFt
ZSB2YXJpb3VzIGZ1bmN0aW9ucyBhbmQgbWVtYmVyIHZhcmlhYmxlcyB0byBtb3ZlIGF3YXkgZnJv
bSB0aGUgbGVnYWN5ICJsYXllciBmbHVzaCIKKyAgICAgICAgdGVybWlub2xvZ3kgYW5kIGluc3Rl
YWQgdXNlICJyZW5kZXJpbmcgdXBkYXRlIiwgbWF0Y2hpbmcgUGFnZTo6dXBkYXRlUmVuZGVyaW5n
KCkuIFRoZSBmYWN0CisgICAgICAgIHRoYXQgd2UgaGF2ZSBsYXllcnMgaXMgYW4gaW1wbGVtZW50
YXRpb24gZGV0YWlsLgorICAgICAgICAKKyAgICAgICAgQ2hhbmdlIExheWVyRmx1c2hUaHJvdHRs
aW5nU3RhdGUgdG8gYmUgYW4gT3B0aW9uU2V0PD4uCisKKyAgICAgICAgKiBUcmFjaW5nL1N5c3Rl
bVRyYWNlUG9pbnRzLnBsaXN0OgorCiAyMDIwLTAyLTE3ICBCcmVudCBGdWxnaGFtICA8YmZ1bGdo
YW1AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBXZWJLaXQgVG9vbHMgdG8gaXNzdWUgbWFj
aCBleHRlbnNpb25zIGFzIG5lZWRlZApkaWZmIC0tZ2l0IGEvVG9vbHMvVHJhY2luZy9TeXN0ZW1U
cmFjZVBvaW50cy5wbGlzdCBiL1Rvb2xzL1RyYWNpbmcvU3lzdGVtVHJhY2VQb2ludHMucGxpc3QK
aW5kZXggMWUzYjJiYjI1NDA2OGI2OWM0ZGRmMGNlMDYwNTIxMGFhNWI0ODQ3YS4uMmI1M2I0MmNl
ZWI5YmY3ZDNjNzI5NjZmMmJkYTJiOTMxYjZmZjg0ZiAxMDA2NDQKLS0tIGEvVG9vbHMvVHJhY2lu
Zy9TeXN0ZW1UcmFjZVBvaW50cy5wbGlzdAorKysgYi9Ub29scy9UcmFjaW5nL1N5c3RlbVRyYWNl
UG9pbnRzLnBsaXN0CkBAIC0zNTksNyArMzU5LDcgQEAKICAgICAgICAgICAgICA8L2RpY3Q+CiAg
ICAgICAgICAgICAgPGRpY3Q+CiAgICAgICAgICAgICAgICAgIDxrZXk+TmFtZTwva2V5PgotICAg
ICAgICAgICAgICAgICA8c3RyaW5nPkxheWVyIGZsdXNoIHJ1bmxvb3Agb2JzZXJ2ZXI8L3N0cmlu
Zz4KKyAgICAgICAgICAgICAgICAgPHN0cmluZz5SZW5kZXJpbmcgdXBkYXRlIHJ1bmxvb3Agb2Jz
ZXJ2ZXI8L3N0cmluZz4KICAgICAgICAgICAgICAgICAgPGtleT5UeXBlPC9rZXk+CiAgICAgICAg
ICAgICAgICAgIDxzdHJpbmc+SW50ZXJ2YWw8L3N0cmluZz4KICAgICAgICAgICAgICAgICAgPGtl
eT5Db21wb25lbnQ8L2tleT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391032</attachid>
            <date>2020-02-17 23:01:45 -0800</date>
            <delta_ts>2020-02-18 09:24:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207870-20200217230144.patch</filename>
            <type>text/plain</type>
            <size>82230</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU2ODA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJlMzM1MzljNTExNzY1MWM0NzAyY2I1
ZTg0ZGU3Y2E2YjRjZGEwZjQuLjY3YTJkODU0Yzk2MjUyOWI2MGUxMDI0NGYxZmUwMjVmOWJhODdl
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjAtMDItMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBmcm9tICJsYXllciBmbHVzaCIgdGVy
bWlub2xvZ3kgdG8gInJlbmRlcmluZyB1cGRhdGUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0g
SG9ydG9uLgorCisgICAgICAgICogd3RmL1N5c3RlbVRyYWNpbmcuaDoKKwogMjAyMC0wMi0xNyAg
TWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgZ2V0VlRhYmxlUG9pbnRl
cigpIHNob3VsZCByZXR1cm4gYSBjb25zdCB2b2lkKi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxYTViMGQ0OWU2
MDAyYjNkYTdmMTE4NGY1MTc1MDA1NzUyN2RkM2ZlLi5hZGMwNzI1NzA1Y2E2OGFmYjQwZmJkYjIw
OWYxNWRlZjFjNTBkNzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjAtMDItMTcg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBm
cm9tICJsYXllciBmbHVzaCIgdGVybWlub2xvZ3kgdG8gInJlbmRlcmluZyB1cGRhdGUiCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc4NzAKKworICAg
ICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIFJlbmFtZSB2YXJpb3VzIGZ1
bmN0aW9ucyBhbmQgbWVtYmVyIHZhcmlhYmxlcyB0byBtb3ZlIGF3YXkgZnJvbSB0aGUgbGVnYWN5
ICJsYXllciBmbHVzaCIKKyAgICAgICAgdGVybWlub2xvZ3kgYW5kIGluc3RlYWQgdXNlICJyZW5k
ZXJpbmcgdXBkYXRlIiwgbWF0Y2hpbmcgUGFnZTo6dXBkYXRlUmVuZGVyaW5nKCkuIFRoZSBmYWN0
CisgICAgICAgIHRoYXQgd2UgaGF2ZSBsYXllcnMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWls
LgorICAgICAgICAKKyAgICAgICAgQ2hhbmdlIExheWVyRmx1c2hUaHJvdHRsaW5nU3RhdGUgdG8g
YmUgYW4gT3B0aW9uU2V0PD4uCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNjaGVkdWxlU3R5bGVSZWNhbGMp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNob3VsZFNjaGVkdWxlTGF5b3V0KToKKyAg
ICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGll
bnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6cmVuZGVyaW5nVXBkYXRlVGhy
b3R0bGluZ0lzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6
YWRqdXN0UmVuZGVyVXBkYXRlVGhyb3R0bGluZyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVD
bGllbnQ6OmxheWVyRmx1c2hUaHJvdHRsaW5nSXNBY3RpdmUgY29uc3QpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50OjphZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyk6
IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6ZGV0ZXJtaW5lTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3OjpkaXNhYmxlTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseUZvckludGVy
YWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dXBkYXRlTGF5ZXJGbHVzaFRo
cm90dGxpbmcpOgorICAgICAgICAqIHBhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcjo6c2NoZWR1bGVJbW1l
ZGlhdGVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAqIHBhZ2UvUmVuZGVyaW5nVXBkYXRlVGhy
b3R0bGVTdGF0ZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvcGFnZS9MYXllckZsdXNo
VGhyb3R0bGVTdGF0ZS5oLgorCiAyMDIwLTAyLTE3ICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBs
ZS5jb20+CiAKICAgICAgICAgTWVkaWFTb3VyY2UuaXNUeXBlU3VwcG9ydGVkKCkgc2F5cyAidmlk
ZW8vbXA0O2NvZGVjcz1cImF2YzMuNDJDMDE1XCIiIGlzIG5vdCBzdXBwb3J0ZWQsIGJ1dCBpdCBp
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCAxZDY0NTZlNDBmYjI0ODI3YzVmMWYyY2Y5ZmNiM2VhMDgwYTgyMzgzLi44
NGViMzMxYTc2ZjFiZjU0ZmJjNTFmODU4MDQyNmNmOGI0YzQ3MTUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDk0IEBACisyMDIwLTAyLTE3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIE1vdmUgZnJvbSAibGF5ZXIgZmx1c2giIHRlcm1pbm9sb2d5IHRvICJy
ZW5kZXJpbmcgdXBkYXRlIgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA3ODcwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKyAgICAg
ICAgCisgICAgICAgIFJlbmFtZSB2YXJpb3VzIGZ1bmN0aW9ucyBhbmQgbWVtYmVyIHZhcmlhYmxl
cyB0byBtb3ZlIGF3YXkgZnJvbSB0aGUgbGVnYWN5ICJsYXllciBmbHVzaCIKKyAgICAgICAgdGVy
bWlub2xvZ3kgYW5kIGluc3RlYWQgdXNlICJyZW5kZXJpbmcgdXBkYXRlIiwgbWF0Y2hpbmcgUGFn
ZTo6dXBkYXRlUmVuZGVyaW5nKCkuIFRoZSBmYWN0CisgICAgICAgIHRoYXQgd2UgaGF2ZSBsYXll
cnMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLgorICAgICAgICAKKyAgICAgICAgQ2hhbmdl
IExheWVyRmx1c2hUaHJvdHRsaW5nU3RhdGUgdG8gYmUgYW4gT3B0aW9uU2V0PD4uCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmFkanVzdFJlbmRlclVwZGF0ZVRocm90
dGxpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OnJlbmRlcmluZ1VwZGF0
ZVRocm90dGxpbmdJc0FjdGl2ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2gpOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpXZWJDaHJvbWVDbGllbnQ6OmFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50OjpsYXllckZsdXNoVGhyb3R0
bGluZ0lzQWN0aXZlIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9EcmF3aW5nQXJlYS5oOgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6cmVuZGVyaW5n
VXBkYXRlVGhyb3R0bGluZ0lzQWN0aXZlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6RHJhd2lu
Z0FyZWE6OmFkanVzdFJlbmRlclVwZGF0ZVRocm90dGxpbmcpOgorICAgICAgICAoV2ViS2l0OjpE
cmF3aW5nQXJlYTo6bGF5ZXJGbHVzaFRocm90dGxpbmdJc0FjdGl2ZSBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjphZGp1c3RMYXllckZsdXNoVGhyb3R0bGlu
Zyk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJl
ZS9SZW1vdGVMYXllclRyZWVDb250ZXh0Lmg6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZUNvbnRleHQ6OnNldE5leHRGbHVzaElzRm9ySW1tZWRpYXRlUGFpbnQpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMYXllclRyZWVDb250ZXh0OjpuZXh0Rmx1c2hJc0ZvckltbWVkaWF0ZVBh
aW50IGNvbnN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlRGlzcGxheVJlZnJlc2hNb25pdG9yOjpyZXF1ZXN0UmVmcmVzaENh
bGxiYWNrKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OlJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNl
dFJvb3RDb21wb3NpdGluZ0xheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWE6OnVwZGF0ZUdlb21ldHJ5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWE6OnNldExheWVyVHJlZVN0YXRlSXNGcm96ZW4pOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zm9yY2VSZXBhaW50KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNldEV4cG9zZWRDb250ZW50
UmVjdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpzY2hl
ZHVsZUltbWVkaWF0ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhOjpzY2hlZHVsZUluaXRpYWxEZWZlcnJlZFBhaW50KToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVkdWxlUmVuZGVyaW5n
VXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmFk
anVzdFJlbmRlclVwZGF0ZVRocm90dGxpbmcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYTo6dXBkYXRlUmVuZGVyaW5nKToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmRpZFVwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjphY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmFkZFRyYW5zYWN0aW9uQ2Fs
bGJhY2tJRCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpz
Y2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaEltbWVkaWF0ZWx5KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVkdWxlQ29tcG9zaXRp
bmdMYXllckZsdXNoKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWE6OmFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvcjo6c2NoZWR1bGVUcmVlU3RhdGVDb21taXQpOgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2No
ZWR1bGVGdWxsRWRpdG9yU3RhdGVVcGRhdGUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6
OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYSk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp+
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Zm9yY2VSZXBhaW50KToKKyAgICAgICAgKFdlYktpdDo6
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnNldExheWVyVHJlZVN0YXRlSXNGcm96ZW4p
OgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NoZWR1
bGVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYTo6c2NoZWR1bGVJbW1lZGlhdGVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAo
V2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6YXR0YWNoVmlld092ZXJsYXlH
cmFwaGljc0xheWVyKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6OnNldFNob3VsZFNjYWxlVmlld1RvRml0RG9jdW1lbnQpOgorICAgICAgICAoV2ViS2l0
OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nVXBk
YXRlZFNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OmFkZFRyYW5zYWN0aW9uQ2FsbGJhY2tJRCk6CisgICAgICAgIChXZWJLaXQ6
OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVSZW5kZXJpbmcpOgorICAgICAg
ICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c3VzcGVuZFBhaW50aW5n
KToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0
ZUdlb21ldHJ5KToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWE6OmFwcGx5VHJhbnNpZW50Wm9vbVRvUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRhdGVSZW5kZXJpbmdSdW5Mb29wQ2FsbGJhY2spOgor
ICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6aW52YWxpZGF0
ZVJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BP
YnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
OjphZGp1c3RSZW5kZXJVcGRhdGVUaHJvdHRsaW5nKToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnJlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdJc0FjdGl2
ZSBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
OjpzdGFydFJlbmRlclRocm90dGxpbmdUaW1lcik6CisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpyZW5kZXJUaHJvdHRsaW5nVGltZXJGaXJlZCk6CisgICAg
ICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZUNvbXBv
c2l0aW5nTGF5ZXJGbHVzaCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaEltbWVkaWF0
ZWx5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6OmZsdXNoTGF5ZXJzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWE6OmxheWVyRmx1c2hSdW5Mb29wQ2FsbGJhY2spOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6aW52YWxp
ZGF0ZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NoZWR1bGVMYXllckZsdXNoUnVuTG9v
cE9ic2VydmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OmFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmxheWVyRmx1c2hUaHJv
dHRsaW5nSXNBY3RpdmUgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c3RhcnRMYXllckZsdXNoVGhyb3R0bGluZ1RpbWVyKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6
OmxheWVyRmx1c2hUaHJvdHRsaW5nVGltZXJGaXJlZCk6IERlbGV0ZWQuCisKIDIwMjAtMDItMTcg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4gYW5kIFBhdmVsIEZl
bGRtYW4gPHBhdmVsLmZlbGRtYW5AZ21haWwuY29tPgogCiAgICAgICAgIEVwaGVtZXJhbCBzZXNz
aW9uIGRhdGEgbGVha3MgYmV0d2VlbiBwcm9jZXNzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxv
ZwppbmRleCBjYWMwODcwZGI1MDYzYWM4OTk0NDY4M2I2NmNkMDMwYTk4OTVhYmNhLi4wODZiY2Nh
ZjY0ZDIyZWFkMTE2M2QzMWU1NDQ0OTY3MGFkZGVlY2E3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMDItMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBmcm9tICJsYXllciBmbHVzaCIgdGVy
bWlub2xvZ3kgdG8gInJlbmRlcmluZyB1cGRhdGUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDc4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0g
SG9ydG9uLgorCisgICAgICAgIFJlbmFtZSB2YXJpb3VzIGZ1bmN0aW9ucyBhbmQgbWVtYmVyIHZh
cmlhYmxlcyB0byBtb3ZlIGF3YXkgZnJvbSB0aGUgbGVnYWN5ICJsYXllciBmbHVzaCIKKyAgICAg
ICAgdGVybWlub2xvZ3kgYW5kIGluc3RlYWQgdXNlICJyZW5kZXJpbmcgdXBkYXRlIiwgbWF0Y2hp
bmcgUGFnZTo6dXBkYXRlUmVuZGVyaW5nKCkuIFRoZSBmYWN0CisgICAgICAgIHRoYXQgd2UgaGF2
ZSBsYXllcnMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLgorICAgICAgICAKKyAgICAgICAg
Q2hhbmdlIExheWVyRmx1c2hUaHJvdHRsaW5nU3RhdGUgdG8gYmUgYW4gT3B0aW9uU2V0PD4uCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW06CisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6
c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2gpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlZp
ZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfc2NoZWR1bGVVcGRhdGVSZW5kZXJp
bmddKToKKyAgICAgICAgKC1bV2ViVmlldyBfc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2hd
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6CisgICAgICAgICog
V2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaDoKKwogMjAyMC0wMi0xNCAgSm9uIExlZSAgPGpvbmxl
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFzayBXZWJHTCBzdHJpbmdzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9TeXN0ZW1UcmFjaW5nLmggYi9Tb3VyY2UvV1RGL3d0Zi9TeXN0ZW1UcmFj
aW5nLmgKaW5kZXggZmU3NTJlMmNhZmNkZDA0YzM3Y2EzMDY2NzE4MDFiZmQyZGEwY2U3Ny4uMGJm
NWRkOWQ0MDBlODUwYzQ2NDRiZTEwNGZkMmQyZjI3ZTRiMWRmZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvU3lzdGVtVHJhY2luZy5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1N5c3RlbVRyYWNp
bmcuaApAQCAtMTAyLDggKzEwMiw4IEBAIGVudW0gVHJhY2VQb2ludENvZGUgewogICAgIFN5bmNU
b3VjaEV2ZW50RW5kLAogICAgIEluaXRpYWxpemVXZWJQcm9jZXNzU3RhcnQsCiAgICAgSW5pdGlh
bGl6ZVdlYlByb2Nlc3NFbmQsCi0gICAgTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlclN0YXJ0LAot
ICAgIExheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXJFbmQsCisgICAgUmVuZGVyaW5nVXBkYXRlUnVu
TG9vcE9ic2VydmVyU3RhcnQsCisgICAgUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyRW5k
LAogICAgIExheWVyVHJlZUZyZWV6ZVN0YXJ0LAogICAgIExheWVyVHJlZUZyZWV6ZUVuZCwKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L0hlYWRlcnMuY21ha2UKaW5kZXggZjQ4MzJhYTcxNjM2Nzg1MTFkODZhNDk0MjA3MzM1ZDU3ZWRm
MTYxYS4uNDk5ODU5ZWFjNDFiNGE5NTEwYWEzODJjODczYzg4YTM0ODUxZWNlNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFk
ZXJzLmNtYWtlCkBAIC04MTEsNyArODExLDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdP
UktfSEVBREVSUwogICAgIHBhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCiAgICAgcGFnZS9H
bG9iYWxGcmFtZUlkZW50aWZpZXIuaAogICAgIHBhZ2UvR2xvYmFsV2luZG93SWRlbnRpZmllci5o
Ci0gICAgcGFnZS9MYXllckZsdXNoVGhyb3R0bGVTdGF0ZS5oCiAgICAgcGFnZS9MYXlvdXRNaWxl
c3RvbmUuaAogICAgIHBhZ2UvTWVkaWFDYW5TdGFydExpc3RlbmVyLmgKICAgICBwYWdlL01lZGlh
UHJvZHVjZXIuaApAQCAtODM3LDYgKzgzNiw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfRlJBTUVX
T1JLX0hFQURFUlMKICAgICBwYWdlL1JlbW90ZURPTVdpbmRvdy5oCiAgICAgcGFnZS9SZW1vdGVG
cmFtZS5oCiAgICAgcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuaAorICAgIHBhZ2UvUmVu
ZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZS5oCiAgICAgcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1
cmVzLmgKICAgICBwYWdlL1Njcm9sbEJlaGF2aW9yLmgKICAgICBwYWdlL1Njcm9sbEludG9WaWV3
T3B0aW9ucy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKaW5kZXggM2JjZmRmNDQwNTE5MzBjYTlkMDQ5NTE2YzJkMGUwNGRhOGE1ODhlYy4u
MWY0ZDcyZjc5ZDliOThhNjRhYTlmMTAxMjU5N2MzMDUwNTM2MTYwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDg3NSw3ICs0
ODc1LDcgQEAKIAkJRTQ4NEEzM0UyMzA1NTMyNTAwOUFERTZBIC8qIExpbmVMYXlvdXRUcmF2ZXJz
YWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0ODRB
MzNCMjMwNTUzMDMwMDlBREU2QSAvKiBMaW5lTGF5b3V0VHJhdmVyc2FsLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQ4NjNDRkUyMzg0MkU5RTAw
OTcyMTU4IC8qIFJ1bGVEYXRhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDg2M0NGRDIzODQyRTlFMDA5NzIxNTggLyogUnVsZURhdGEuaCAqLzsgfTsK
IAkJRTQ4OTQ0QTMxODBCNTdEODAwRjE2NUQ4IC8qIFNpbXBsZUxpbmVMYXlvdXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0ODk0NEExMTgwQjU3RDgw
MEYxNjVEOCAvKiBTaW1wbGVMaW5lTGF5b3V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJRTQ5MTZGRjcxOTVERjZBMDAwNUFCMzQ5IC8qIExheWVy
Rmx1c2hUaHJvdHRsZVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFNDkxNkZGNjE5NURGNkEwMDA1QUIzNDkgLyogTGF5ZXJGbHVzaFRocm90dGxl
U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQlFNDkxNkZGNzE5NURGNkEwMDA1QUIzNDkgLyogUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0
ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5MTZG
RjYxOTVERjZBMDAwNUFCMzQ5IC8qIFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlFNDk0NkVBRjE1
NkU2NEREMDBEMzI5N0YgLyogU3R5bGVSdWxlSW1wb3J0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDk0NkVBRDE1NkU2NEREMDBEMzI5N0YgLyogU3R5
bGVSdWxlSW1wb3J0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRTQ5QkQ5RkExMzFGRDJFRDAwM0M1NkYwIC8qIENTU1ZhbHVlUG9vbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ5QkQ5RjkxMzFGRDJF
RDAwM0M1NkYwIC8qIENTU1ZhbHVlUG9vbC5oICovOyB9OwogCQlFNEE3OTk1MjIwRUU0QjE0MDBD
MTk1NjggLyogQ1NTUGFyc2VyQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTRBNzk5NEUyMEVFNEFFMTAwQzE5NTY4IC8qIENTU1BhcnNlckNv
bnRleHQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTUyNjAsNyArMTUyNjAsNyBAQAogCQlFNDg2M0NGRDIzODQyRTlFMDA5NzIxNTggLyogUnVs
ZURhdGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUnVsZURhdGEuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ4OTQ0QTAxODBCNTdEODAwRjE2NUQ4IC8qIFNp
bXBsZUxpbmVMYXlvdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
U2ltcGxlTGluZUxheW91dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU0ODk0
NEExMTgwQjU3RDgwMEYxNjVEOCAvKiBTaW1wbGVMaW5lTGF5b3V0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNpbXBsZUxpbmVMYXlvdXQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKLQkJRTQ5MTZGRjYxOTVERjZBMDAwNUFCMzQ5IC8qIExheWVyRmx1c2hUaHJvdHRs
ZVN0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheWVyRmx1c2hUaHJv
dHRsZVN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU0OTE2RkY2MTk1REY2
QTAwMDVBQjM0OSAvKiBSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTQ5NDZFQUMxNTZFNjRERDAwRDMyOTdGIC8qIFN0
eWxlUnVsZUltcG9ydC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
dHlsZVJ1bGVJbXBvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNDk0NkVB
RDE1NkU2NEREMDBEMzI5N0YgLyogU3R5bGVSdWxlSW1wb3J0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFN0eWxlUnVsZUltcG9ydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFNDlCRDlGOTEzMUZEMkVEMDAzQzU2RjAgLyogQ1NTVmFsdWVQb29sLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU1ZhbHVlUG9vbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMjA2NDQsNyArMjA2NDQsNiBAQAogCQkJCTBGNDcxMEQ4MURCNkZF
MjIwMDJEQ0VDMyAvKiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5LmNwcCAqLywKIAkJCQkwRjQ3
MTBEOTFEQjZGRTIyMDAyRENFQzMgLyogSW50ZXJzZWN0aW9uT2JzZXJ2ZXJFbnRyeS5oICovLAog
CQkJCTBGNDcxMERBMURCNkZFMjIwMDJEQ0VDMyAvKiBJbnRlcnNlY3Rpb25PYnNlcnZlckVudHJ5
LmlkbCAqLywKLQkJCQlFNDkxNkZGNjE5NURGNkEwMDA1QUIzNDkgLyogTGF5ZXJGbHVzaFRocm90
dGxlU3RhdGUuaCAqLywKIAkJCQk5MzFENzJGNTE1RkU2OTUzMDBDNEMwN0UgLyogTGF5b3V0TWls
ZXN0b25lLmggKi8sCiAJCQkJQkNFMUM0MUEwRDk4Mjk4MDAwM0IwMkYyIC8qIExvY2F0aW9uLmNw
cCAqLywKIAkJCQlCQ0UxQzQxOTBEOTgyOTgwMDAzQjAyRjIgLyogTG9jYXRpb24uaCAqLywKQEAg
LTIwNzQ5LDYgKzIwNzQ4LDcgQEAKIAkJCQk0NkI5NTE5MjIwN0Q2MzJFMDBBN0QyREQgLyogUmVt
b3RlRnJhbWUuaCAqLywKIAkJCQk1NTZDN0M0OTIyMTIzOTQzMDA5QjA2Q0EgLyogUmVuZGVyaW5n
VXBkYXRlU2NoZWR1bGVyLmNwcCAqLywKIAkJCQk1NTZDN0M0NzIyMTIzOTQyMDA5QjA2Q0EgLyog
UmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmggKi8sCisJCQkJRTQ5MTZGRjYxOTVERjZBMDAwNUFC
MzQ5IC8qIFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGUuaCAqLywKIAkJCQk1OEIyRjlGMjIy
MzJENDNGMDA5MzhENjMgLyogUmVzaXplT2JzZXJ2YXRpb24uY3BwICovLAogCQkJCTU4QjJGOUYz
MjIzMkQ0M0YwMDkzOEQ2MyAvKiBSZXNpemVPYnNlcnZhdGlvbi5oICovLAogCQkJCTU4QjJGOUVG
MjIzMkQ0M0QwMDkzOEQ2MyAvKiBSZXNpemVPYnNlcnZlci5jcHAgKi8sCkBAIC0zMTI3MCw3ICsz
MTI3MCw2IEBACiAJCQkJNDUwQ0VCRjExNTA3M0JCRTAwMkJCMTQ5IC8qIExhYmVsYWJsZUVsZW1l
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE0NTZGQTI3MTFBRDRBODMwMDIwQjQyMCAvKiBMYWJl
bHNOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzEyMEMyMkJGMkNEMjAwNEU5RDM1
IC8qIExheWVyQW5jZXN0b3JDbGlwcGluZ1N0YWNrLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDkx
NkZGNzE5NURGNkEwMDA1QUIzNDkgLyogTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTU4MDM3MTY0MUE2NkYxRDMwMEJBRjUxOSAvKiBMYXllckZyYWdtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTZBMDE5NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29s
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTMxMENGNzIwQkE0QTYyMDA2NUE4RDAgLyogTGF5b3V0
QW5jZXN0b3JJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCkBAIC0zMTkyOSw2ICszMTkyOCw3IEBA
CiAJCQkJMDg2NDFENDgxMjE0MkY3RDAwOERFOUY2IC8qIFJlbmRlckltYWdlUmVzb3VyY2VTdHls
ZUltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Mjk5QkM2ODIzRDZBNTNFMDBDQzY4ODMgLyog
UmVuZGVyaW5nTW9kZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTU2QzdDNEIyMjEyMzk5NzAwOUIw
NkNBIC8qIFJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ5
MTZGRjcxOTVERjZBMDAwNUFCMzQ5IC8qIFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCUJDRUE0ODc4MDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJJbmxp
bmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUI1OTVGRjQ3MTgyNENFRTMwMEZGNTFDRCAvKiBSZW5k
ZXJJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4N0EwOTdEOTMwMjAwOTRDOUU0
IC8qIFJlbmRlckxheWVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IGJiNDAzOTM4Yzk1NzQ5ZWQ1YjFmNWJiNDRmYzA3MDQzZmE5YTI3NjIuLjgwNzkxOWYyMzhi
NTlkZTliZWUyMWI1ZGViYjQ3MGViZTMwOWQxN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMTg3NSw3ICsxODc1LDcgQEAgdm9pZCBEb2N1bWVudDo6c2NoZWR1bGVTdHlsZVJlY2FsYygp
CiAgICAgYXV0byBzaG91bGRUaHJvdHRsZVN0eWxlUmVjYWxjID0gWyZdIHsKICAgICAgICAgaWYg
KCF2aWV3KCkgfHwgIXZpZXcoKS0+aXNWaXN1YWxseU5vbkVtcHR5KCkpCiAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmICghcGFnZSgpIHx8ICFwYWdlKCktPmNocm9tZSgpLmNs
aWVudCgpLmxheWVyRmx1c2hUaHJvdHRsaW5nSXNBY3RpdmUoKSkKKyAgICAgICAgaWYgKCFwYWdl
KCkgfHwgIXBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkucmVuZGVyaW5nVXBkYXRlVGhyb3R0bGlu
Z0lzQWN0aXZlKCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH07CkBAIC0zMTM1LDcgKzMxMzUsNyBAQCBib29sIERvY3VtZW50OjpzaG91bGRT
Y2hlZHVsZUxheW91dCgpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoc3R5bGVTY29w
ZSgpLmhhc1BlbmRpbmdTaGVldHNCZWZvcmVCb2R5KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBpZiAocGFnZSgpICYmIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkubGF5ZXJGbHVzaFRo
cm90dGxpbmdJc0FjdGl2ZSgpICYmIHZpZXcoKSAmJiB2aWV3KCktPmlzVmlzdWFsbHlOb25FbXB0
eSgpKQorICAgIGlmIChwYWdlKCkgJiYgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5yZW5kZXJp
bmdVcGRhdGVUaHJvdHRsaW5nSXNBY3RpdmUoKSAmJiB2aWV3KCkgJiYgdmlldygpLT5pc1Zpc3Vh
bGx5Tm9uRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5kZXggNzg5NTdiYjBjN2Y4YmVlMjBj
NTcwMDc5MDBhOWY3OGUyZGRlYzcwMS4uYjYwNzRiMTUzMzQ5ODlhNzZlMzViNDU1ODRlODE4MDdl
YTUxODUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTUwLDcgKzE1
MCw3IEBAIGNsYXNzIEVtcHR5Q2hyb21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAg
ICAgdm9pZCBhdHRhY2hSb290R3JhcGhpY3NMYXllcihGcmFtZSYsIEdyYXBoaWNzTGF5ZXIqKSBm
aW5hbCB7IH0KICAgICB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihHcmFwaGlj
c0xheWVyKikgZmluYWwgeyB9CiAgICAgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hy
b25pemF0aW9uKCkgZmluYWwgeyB9Ci0gICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJG
bHVzaCgpIGZpbmFsIHsgfQorICAgIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKSBmaW5h
bCB7IH0KIAogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1
cnJlbnRDdXJzb3IoKSBmaW5hbCB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
Q2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4
IDk4OWJhZjRhN2Q3ZjMzNTQ1OTMyYmQ5MzA0M2VmNDNiYTdhYTUxMmEuLmQyZjQyYTEzYjZhMzQ3
OTk5YzdkNjkwNGI5MDA3Njc4MWU4MTJhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aApAQCAtMzcsMTIgKzM3LDEyIEBACiAjaW5jbHVkZSAiSG9zdFdpbmRvdy5oIgogI2luY2x1ZGUg
Ikljb24uaCIKICNpbmNsdWRlICJJbnB1dE1vZGUuaCIKLSNpbmNsdWRlICJMYXllckZsdXNoVGhy
b3R0bGVTdGF0ZS5oIgogI2luY2x1ZGUgIk1lZGlhUHJvZHVjZXIuaCIKICNpbmNsdWRlICJQb3B1
cE1lbnUuaCIKICNpbmNsdWRlICJQb3B1cE1lbnVDbGllbnQuaCIKICNpbmNsdWRlICJSZWdpc3Ry
YWJsZURvbWFpbi5oIgogI2luY2x1ZGUgIlJlbmRlckVtYmVkZGVkT2JqZWN0LmgiCisjaW5jbHVk
ZSAiUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZS5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVz
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJTZWFyY2hQ
b3B1cE1lbnUuaCIKQEAgLTMxMyw3ICszMTMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKSA9IDA7CiAgICAgLy8gU2V0
cyBhIGZsYWcgdG8gc3BlY2lmeSB0aGF0IHRoZSB2aWV3IG5lZWRzIHRvIGJlIHVwZGF0ZWQsIHNv
IHdlIG5lZWQKICAgICAvLyB0byBkbyBhbiBlYWdlciBsYXlvdXQgYmVmb3JlIHRoZSBkcmF3aW5n
LgotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKSA9IDA7CiAgICAgdmly
dHVhbCBib29sIG5lZWRzSW1tZWRpYXRlUmVuZGVyaW5nVXBkYXRlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KICAgICAvLyBSZXR1cm5zIHdoZXRoZXIgb3Igbm90IHRoZSBjbGllbnQgY2FuIHJl
bmRlciB0aGUgY29tcG9zaXRlZCBsYXllciwKICAgICAvLyByZWdhcmRsZXNzIG9mIHRoZSBzZXR0
aW5ncy4KQEAgLTMzNyw5ICszMzcsOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgLy8gUmV0dXJucyB0
cnVlIGlmIGxheWVyIHRyZWUgdXBkYXRlcyBhcmUgZGlzYWJsZWQuCiAgICAgdmlydHVhbCBib29s
IGxheWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZp
cnR1YWwgYm9vbCBsYXllckZsdXNoVGhyb3R0bGluZ0lzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZ0lzQWN0
aXZlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBhZGp1c3RM
YXllckZsdXNoVGhyb3R0bGluZyhMYXllckZsdXNoVGhyb3R0bGVTdGF0ZTo6RmxhZ3MpIHsgcmV0
dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGFkanVzdFJlbmRlcmluZ1VwZGF0ZVRocm90
dGxpbmcoT3B0aW9uU2V0PFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU+KSB7IHJldHVybiBm
YWxzZTsgfQogCiAgICAgdmlydHVhbCBSZWZQdHI8U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2UmKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBlMDNlNDJiNDkyZWZiN2YzNDgyODNhNWQ0
MWJmZmExMjAzYjI5YzFlLi5jOWYwZDVlY2U5MzFiNTUxZjBiZDZkMmJjZTVkZDJlYWUzYWE3M2Ew
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yODE3LDE5ICsyODE3LDE5IEBAIHZv
aWQgRnJhbWVWaWV3Ojp1bm9ic2N1cmVkQ29udGVudFNpemVDaGFuZ2VkKCkKICNlbmRpZgogfQog
Ci1zdGF0aWMgTGF5ZXJGbHVzaFRocm90dGxlU3RhdGU6OkZsYWdzIGRldGVybWluZUxheWVyRmx1
c2hUaHJvdHRsZVN0YXRlKFBhZ2UmIHBhZ2UpCitzdGF0aWMgT3B0aW9uU2V0PFJlbmRlcmluZ1Vw
ZGF0ZVRocm90dGxlU3RhdGU+IGRldGVybWluZUxheWVyRmx1c2hUaHJvdHRsZVN0YXRlKFBhZ2Um
IHBhZ2UpCiB7CiAgICAgLy8gV2Ugb25seSB0aHJvdHRsZSB3aGVuIGNvbnN0YW50bHkgcmVjZWl2
aW5nIG5ldyBkYXRhIGR1cmluZyB0aGUgaW5pdGFsIHBhZ2UgbG9hZC4KICAgICBpZiAoIXBhZ2Uu
cHJvZ3Jlc3MoKS5pc01haW5Mb2FkUHJvZ3Jlc3NpbmcoKSkKLSAgICAgICAgcmV0dXJuIDA7Cisg
ICAgICAgIHJldHVybiB7IH07CiAgICAgLy8gU2Nyb2xsaW5nIGR1cmluZyBwYWdlIGxvYWRpbmcg
ZGlzYWJsZXMgdGhyb3R0bGluZy4KICAgICBpZiAocGFnZS5tYWluRnJhbWUoKS52aWV3KCktPndh
c1Njcm9sbGVkQnlVc2VyKCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4geyB9
OwogICAgIC8vIERpc2FibGUgZm9yIGltYWdlIGRvY3VtZW50cyBzbyBsYXJnZSBHSUYgYW5pbWF0
aW9ucyBkb24ndCBnZXQgdGhyb3R0bGVkIGR1cmluZyBsb2FkaW5nLgogICAgIGF1dG8qIGRvY3Vt
ZW50ID0gcGFnZS5tYWluRnJhbWUoKS5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQgfHwg
aXM8SW1hZ2VEb2N1bWVudD4oKmRvY3VtZW50KSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0
dXJuIExheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpFbmFibGVkOworICAgICAgICByZXR1cm4geyB9
OworICAgIHJldHVybiB7IFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU6OkVuYWJsZWQgfTsK
IH0KIAogdm9pZCBGcmFtZVZpZXc6OmRpc2FibGVMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFy
aWx5Rm9ySW50ZXJhY3Rpb24oKQpAQCAtMjgzOCw4ICsyODM4LDkgQEAgdm9pZCBGcmFtZVZpZXc6
OmRpc2FibGVMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5Rm9ySW50ZXJhY3Rpb24oKQog
ICAgICAgICByZXR1cm47CiAgICAgYXV0byYgcGFnZSA9ICpmcmFtZSgpLnBhZ2UoKTsKIAotICAg
IExheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpGbGFncyBmbGFncyA9IExheWVyRmx1c2hUaHJvdHRs
ZVN0YXRlOjpVc2VySXNJbnRlcmFjdGluZyB8IGRldGVybWluZUxheWVyRmx1c2hUaHJvdHRsZVN0
YXRlKHBhZ2UpOwotICAgIGlmIChwYWdlLmNocm9tZSgpLmNsaWVudCgpLmFkanVzdExheWVyRmx1
c2hUaHJvdHRsaW5nKGZsYWdzKSkKKyAgICBhdXRvIGZsYWdzID0gZGV0ZXJtaW5lTGF5ZXJGbHVz
aFRocm90dGxlU3RhdGUocGFnZSk7CisgICAgZmxhZ3MuYWRkKFJlbmRlcmluZ1VwZGF0ZVRocm90
dGxlU3RhdGU6OlVzZXJJc0ludGVyYWN0aW5nKTsKKyAgICBpZiAocGFnZS5jaHJvbWUoKS5jbGll
bnQoKS5hZGp1c3RSZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nKGZsYWdzKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgaWYgKFJlbmRlclZpZXcqIHZpZXcgPSByZW5kZXJWaWV3KCkpCkBAIC0yODYy
LDE1ICsyODYzLDE1IEBAIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVMYXllckZsdXNoVGhyb3R0bGlu
ZygpCiAKICAgICBBU1NFUlQoZnJhbWUoKS5pc01haW5GcmFtZSgpKTsKIAotICAgIExheWVyRmx1
c2hUaHJvdHRsZVN0YXRlOjpGbGFncyBmbGFncyA9IGRldGVybWluZUxheWVyRmx1c2hUaHJvdHRs
ZVN0YXRlKCpwYWdlKTsKKyAgICBhdXRvIGZsYWdzID0gZGV0ZXJtaW5lTGF5ZXJGbHVzaFRocm90
dGxlU3RhdGUoKnBhZ2UpOwogCiAgICAgLy8gU2VlIGlmIHRoZSBjbGllbnQgaXMgaGFuZGxpbmcg
dGhyb3R0bGluZy4KLSAgICBpZiAocGFnZS0+Y2hyb21lKCkuY2xpZW50KCkuYWRqdXN0TGF5ZXJG
bHVzaFRocm90dGxpbmcoZmxhZ3MpKQorICAgIGlmIChwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5h
ZGp1c3RSZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nKGZsYWdzKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgZm9yIChhdXRvKiBmcmFtZSA9IG1fZnJhbWUucHRyKCk7IGZyYW1lOyBmcmFtZSA9IGZy
YW1lLT50cmVlKCkudHJhdmVyc2VOZXh0KG1fZnJhbWUucHRyKCkpKSB7CiAgICAgICAgIGlmIChS
ZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gZnJhbWUtPmNvbnRlbnRSZW5kZXJlcigpKQotICAgICAg
ICAgICAgcmVuZGVyVmlldy0+Y29tcG9zaXRvcigpLnNldExheWVyRmx1c2hUaHJvdHRsaW5nRW5h
YmxlZChmbGFncyAmIExheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpFbmFibGVkKTsKKyAgICAgICAg
ICAgIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5zZXRMYXllckZsdXNoVGhyb3R0bGluZ0VuYWJs
ZWQoZmxhZ3MuY29udGFpbnMoUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZTo6RW5hYmxlZCkp
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9MYXllckZsdXNo
VGhyb3R0bGVTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9MYXllckZsdXNoVGhyb3R0bGVT
dGF0ZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3OTZmMjE4ZTFkYjMxYzY2YzQ0
NjRlZmIyOWE2YzM0YTVlYzIzNjk0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTGF5ZXJGbHVzaFRocm90dGxlU3RhdGUu
aAorKysgL2Rldi9udWxsCkBAIC0xLDM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9u
Y2UKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdHJ1Y3QgTGF5ZXJGbHVzaFRocm90dGxlU3Rh
dGUgewotICAgIGVudW0gewotICAgICAgICBFbmFibGVkID0gMSA8PCAwLAotICAgICAgICBVc2Vy
SXNJbnRlcmFjdGluZyA9IDEgPDwgMQotICAgIH07Ci0gICAgdHlwZWRlZiB1bnNpZ25lZCBGbGFn
czsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcAppbmRleCAzYjg4MWRmYmIxNzE3ZjRlNDEx
YTZjNTM0NDU5NWZiZDNhYjQzMDZkLi42ZjMzNzAyZmIzZmM0ODY3NDAwYmI5YmQxZDhlNWI3OTZm
MTFjZGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNj
aGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hl
ZHVsZXIuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgdm9pZCBSZW5kZXJpbmdVcGRhdGVTY2hlZHVs
ZXI6OmRpc3BsYXlSZWZyZXNoRmlyZWQoKQogCiB2b2lkIFJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxl
cjo6c2NoZWR1bGVJbW1lZGlhdGVSZW5kZXJpbmdVcGRhdGUoKQogewotICAgIG1fcGFnZS5jaHJv
bWUoKS5jbGllbnQoKS5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIG1fcGFn
ZS5jaHJvbWUoKS5jbGllbnQoKS5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCiB2b2lk
IFJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlcjo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMWRmNWRkOGQ1YTNkZmMwMTY1MTFlNWMwY2ViM2VkNjE2YjI0YmZkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVUaHJvdHRs
ZVN0YXRlLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZW51bSBjbGFzcyBSZW5kZXJpbmdVcGRhdGVUaHJv
dHRsZVN0YXRlIHsKKyAgICBFbmFibGVkICAgICAgICAgICAgID0gMSA8PCAwLAorICAgIFVzZXJJ
c0ludGVyYWN0aW5nICAgPSAxIDw8IDEKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlM
aW51eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2xpbnV4L1Jlc291cmNlVXNhZ2VPdmVybGF5
TGludXguY3BwCmluZGV4IDY3MDdmNzhmMzJhY2IyYmVmMWE2ZTI0ZTBjNzk1YTM0YzgwNzg3NmYu
LjlmZTI0YzJmNjRkZTM2Y2M1ZGQ3NjY0ZDVlZGZiN2NhZDUxNjI5ZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbGludXgvUmVzb3VyY2VVc2FnZU92ZXJsYXlMaW51eC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9saW51eC9SZXNvdXJjZVVzYWdlT3ZlcmxheUxpbnV4LmNw
cApAQCAtMTI0LDcgKzEyNCw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIG5vdGlmeUZsdXNoUmVx
dWlyZWQoY29uc3QgR3JhcGhpY3NMYXllciopIG92ZXJyaWRlCiAgICAgewotICAgICAgICBtX292
ZXJsYXkub3ZlcmxheSgpLnBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50KCkuc2NoZWR1bGVDb21wb3Np
dGluZ0xheWVyRmx1c2goKTsKKyAgICAgICAgbV9vdmVybGF5Lm92ZXJsYXkoKS5wYWdlKCktPmNo
cm9tZSgpLmNsaWVudCgpLnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAgICAgfQogCiAgICAg
UmVzb3VyY2VVc2FnZU92ZXJsYXkmIG1fb3ZlcmxheTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9yZS5tbSBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllckJhY2tpbmdTdG9y
ZS5tbQppbmRleCA2MmYzMmFkYzdkMjY1MjdlNzY0MDZjYzhmNjc4Y2Q5MjZjMTVmMDNmLi41Mzll
MjNmZDQ2Y2Q0YWRlM2ZiNjkyOThkY2MzNDNiZTM2MTcyZTAyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmUubW0K
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyQmFj
a2luZ1N0b3JlLm1tCkBAIC0zNDMsNyArMzQzLDggQEAgdm9pZCBSZW1vdGVMYXllckJhY2tpbmdT
dG9yZTo6ZHJhd0luQ29udGV4dChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIEMK
IAogICAgIGNvbnRleHQuc2NhbGUobV9zY2FsZSk7CiAgICAgCi0gICAgYXV0byBmbGFncyA9IG1f
bGF5ZXItPmNvbnRleHQoKSAmJiBtX2xheWVyLT5jb250ZXh0KCktPm5leHRGbHVzaElzRm9ySW1t
ZWRpYXRlUGFpbnQoKSA/IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludFNuYXBzaG90dGluZyA6
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludE5vcm1hbDsKKyAgICAvLyBGSVhNRTogQ2xhcmlm
eSB0aGF0IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludFNuYXBzaG90dGluZyBpcyBqdXN0IGFi
b3V0IGltYWdlIGRlY29kaW5nLgorICAgIGF1dG8gZmxhZ3MgPSBtX2xheWVyLT5jb250ZXh0KCkg
JiYgbV9sYXllci0+Y29udGV4dCgpLT5uZXh0UmVuZGVyaW5nVXBkYXRlUmVxdWlyZXNTeW5jaHJv
bm91c0ltYWdlRGVjb2RpbmcoKSA/IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludFNuYXBzaG90
dGluZyA6IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJQYWludE5vcm1hbDsKICAgICAKICAgICAvLyBG
SVhNRTogVGhpcyBzaG91bGQgYmUgbW92ZWQgdG8gUGxhdGZvcm1DQUxheWVyUmVtb3RlIGZvciBi
ZXR0ZXIgbGF5ZXJpbmcuCiAgICAgc3dpdGNoIChtX2xheWVyLT5sYXllclR5cGUoKSkgewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcAppbmRleCA4ZTRjOTM3NWQ3YjhjYzEwZmZhMDA4MDNkNDgyMTczYmU1
YTM1NThhLi44ZjUxMDY3YTM5OThjZmIzYWE1ZmU3MDE0ZjM2YjlhZDY3NTZiMzQ0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcApAQCAtOTEwLDEwICs5MTAsMTAgQEAgdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24oKQogICAgIG5vdEltcGxl
bWVudGVkKCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZUNvbXBvc2l0aW5n
TGF5ZXJGbHVzaCgpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6c2NoZWR1bGVSZW5kZXJpbmdVcGRh
dGUoKQogewogICAgIGlmIChtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKLSAgICAgICAgbV9wYWdlLmRy
YXdpbmdBcmVhKCktPnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAgICAgIG1f
cGFnZS5kcmF3aW5nQXJlYSgpLT5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCiB2b2lk
IFdlYkNocm9tZUNsaWVudDo6Y29udGVudFJ1bGVMaXN0Tm90aWZpY2F0aW9uKGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBDb250ZW50UnVsZUxpc3RSZXN1bHRzJiByZXN1bHRzKQpAQCAtOTI0LDkgKzky
NCw5IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpjb250ZW50UnVsZUxpc3ROb3RpZmljYXRpb24o
Y29uc3QgVVJMJiB1cmwsIGNvbnN0IENvbnRlbnRSCiAjZW5kaWYKIH0KIAotYm9vbCBXZWJDaHJv
bWVDbGllbnQ6OmFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKExheWVyRmx1c2hUaHJvdHRsZVN0
YXRlOjpGbGFncyBmbGFncykKK2Jvb2wgV2ViQ2hyb21lQ2xpZW50OjphZGp1c3RSZW5kZXJpbmdV
cGRhdGVUaHJvdHRsaW5nKE9wdGlvblNldDxSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlPiBm
bGFncykKIHsKLSAgICByZXR1cm4gbV9wYWdlLmRyYXdpbmdBcmVhKCkgJiYgbV9wYWdlLmRyYXdp
bmdBcmVhKCktPmFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKGZsYWdzKTsKKyAgICByZXR1cm4g
bV9wYWdlLmRyYXdpbmdBcmVhKCkgJiYgbV9wYWdlLmRyYXdpbmdBcmVhKCktPmFkanVzdFJlbmRl
cmluZ1VwZGF0ZVRocm90dGxpbmcoZmxhZ3MpOwogfQogCiBib29sIFdlYkNocm9tZUNsaWVudDo6
bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0CkBAIC05MzcsMTAgKzkzNywxMCBAQCBib29s
IFdlYkNocm9tZUNsaWVudDo6bGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0CiAgICAgcmV0
dXJuIGZhbHNlOwogfQogCi1ib29sIFdlYkNocm9tZUNsaWVudDo6bGF5ZXJGbHVzaFRocm90dGxp
bmdJc0FjdGl2ZSgpIGNvbnN0Citib29sIFdlYkNocm9tZUNsaWVudDo6cmVuZGVyaW5nVXBkYXRl
VGhyb3R0bGluZ0lzQWN0aXZlKCkgY29uc3QKIHsKICAgICBpZiAobV9wYWdlLmRyYXdpbmdBcmVh
KCkpCi0gICAgICAgIHJldHVybiBtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+bGF5ZXJGbHVzaFRocm90
dGxpbmdJc0FjdGl2ZSgpOworICAgICAgICByZXR1cm4gbV9wYWdlLmRyYXdpbmdBcmVhKCktPnJl
bmRlcmluZ1VwZGF0ZVRocm90dGxpbmdJc0FjdGl2ZSgpOwogCiAgICAgcmV0dXJuIGZhbHNlOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGE4YTRjY2FjNTdkODA4YWFhNTVkOGQ3OTUxYmM1YzU0
MWM2MGYyYWQuLjdjMWM3ZTA4Y2Y0ZDk0OWU0MGUyMTAzMmUyNDRiYTIxMjEyNWQ4MTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKQEAgLTIxNiw4ICsyMTYsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgYXR0
YWNoUm9vdEdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xh
eWVyKikgZmluYWw7CiAgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopIGZpbmFsOwogICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJh
d2luZ1N5bmNocm9uaXphdGlvbigpIGZpbmFsOwotICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGlu
Z0xheWVyRmx1c2goKSBmaW5hbDsKLSAgICBib29sIGFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5n
KFdlYkNvcmU6OkxheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpGbGFncykgZmluYWw7CisgICAgdm9p
ZCBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpIGZpbmFsOworICAgIGJvb2wgYWRqdXN0UmVuZGVy
aW5nVXBkYXRlVGhyb3R0bGluZyhPcHRpb25TZXQ8V2ViQ29yZTo6UmVuZGVyaW5nVXBkYXRlVGhy
b3R0bGVTdGF0ZT4pIGZpbmFsOwogCiAgICAgdm9pZCBjb250ZW50UnVsZUxpc3ROb3RpZmljYXRp
b24oY29uc3QgVVJMJiwgY29uc3QgV2ViQ29yZTo6Q29udGVudFJ1bGVMaXN0UmVzdWx0cyYpIGZp
bmFsOwogCkBAIC0yNTAsNyArMjUwLDcgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBib29sIGxh
eWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBjb25zdCBmaW5hbDsKLSAgICBib29sIGxheWVyRmx1c2hU
aHJvdHRsaW5nSXNBY3RpdmUoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHJlbmRlcmluZ1VwZGF0
ZVRocm90dGxpbmdJc0FjdGl2ZSgpIGNvbnN0IGZpbmFsOwogCiAjaWYgRU5BQkxFKEFTWU5DX1ND
Uk9MTElORykKICAgICBSZWZQdHI8V2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I+IGNyZWF0
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yKFdlYkNvcmU6OlBhZ2UmKSBjb25zdCBmaW5hbDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvRHJhd2luZ0FyZWFDb29yZGluYXRlZEdyYXBoaWNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFDb29yZGluYXRl
ZEdyYXBoaWNzLmNwcAppbmRleCBmYmRmMjU0ZWM0MmRjNzM2Y2EwYTAwZjUyMWRlODMzOWYwOGZm
YmYyLi4yYzFhMzM2MjMwNGMwYWFiOWVjY2NhNThjM2ZlNjdiNzI1MGQyMjMyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Ry
YXdpbmdBcmVhQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJlYUNvb3JkaW5hdGVk
R3JhcGhpY3MuY3BwCkBAIC0yMDQsOCArMjA0LDEwIEBAIHZvaWQgRHJhd2luZ0FyZWFDb29yZGlu
YXRlZEdyYXBoaWNzOjpmb3JjZVJlcGFpbnQoKQogICAgICAgICAvLyBDYWxsIHNldFNob3VsZE5v
dGlmeUFmdGVyTmV4dFNjaGVkdWxlZExheWVyRmx1c2goZmFsc2UpIGhlcmUgdG8KICAgICAgICAg
Ly8gcHJldmVudCBsYXllckhvc3REaWRGbHVzaExheWVycygpIGZyb20gYmVpbmcgY2FsbGVkIGEg
c2Vjb25kIHRpbWUuCiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0U2hvdWxkTm90aWZ5QWZ0
ZXJOZXh0U2NoZWR1bGVkTGF5ZXJGbHVzaChmYWxzZSk7CisjaWYgVVNFKENPT1JESU5BVEVEX0dS
QVBISUNTKQogICAgICAgICBsYXllckhvc3REaWRGbHVzaExheWVycygpOwotICAgIH0KKyNlbmRp
ZgorICAgICAgICB9CiB9CiAKIGJvb2wgRHJhd2luZ0FyZWFDb29yZGluYXRlZEdyYXBoaWNzOjpm
b3JjZVJlcGFpbnRBc3luYyhDYWxsYmFja0lEIGNhbGxiYWNrSUQpCkBAIC0zMzgsNyArMzQwLDcg
QEAgdm9pZCBEcmF3aW5nQXJlYUNvb3JkaW5hdGVkR3JhcGhpY3M6OnNldFJvb3RDb21wb3NpdGlu
Z0xheWVyKEdyYXBoaWNzTGF5ZXIqIGdyYXAKICAgICBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKGdyYXBoaWNzTGF5ZXIpOwogfQogCi12b2lkIERyYXdpbmdBcmVhQ29vcmRpbmF0ZWRH
cmFwaGljczo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKQordm9pZCBEcmF3aW5nQXJl
YUNvb3JkaW5hdGVkR3JhcGhpY3M6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkKIHsKICAgICBp
ZiAobV9sYXllclRyZWVIb3N0KQogICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNjaGVkdWxlTGF5
ZXJGbHVzaCgpOwpAQCAtMzQ2LDYgKzM0OCw3IEBAIHZvaWQgRHJhd2luZ0FyZWFDb29yZGluYXRl
ZEdyYXBoaWNzOjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpCiAgICAgICAgIHNldE5l
ZWRzRGlzcGxheSgpOwogfQogCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQogdm9pZCBE
cmF3aW5nQXJlYUNvb3JkaW5hdGVkR3JhcGhpY3M6OmxheWVySG9zdERpZEZsdXNoTGF5ZXJzKCkK
IHsKICAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKQEAgLTM2Miw2ICszNjUsNyBAQCB2b2lk
IERyYXdpbmdBcmVhQ29vcmRpbmF0ZWRHcmFwaGljczo6bGF5ZXJIb3N0RGlkRmx1c2hMYXllcnMo
KQogICAgICAgICBtX2NvbXBvc2l0aW5nQWNjb3JkaW5nVG9Qcm94eU1lc3NhZ2VzID0gdHJ1ZTsK
ICAgICB9CiB9CisjZW5kaWYKIAogI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQ
TEFZX01PTklUT1IpCiBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBEcmF3aW5nQXJlYUNv
b3JkaW5hdGVkR3JhcGhpY3M6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURp
c3BsYXlJRCBkaXNwbGF5SUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhQ29vcmRpbmF0ZWRHcmFwaGlj
cy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9EcmF3aW5nQXJlYUNvb3JkaW5hdGVkR3JhcGhpY3MuaAppbmRleCAyNWEwNDVkMTQ2NmEwMDA0
ODQ2ZWJkNTkyODk2YWYxYjRjNDhhYjhlLi43ZjI5YTQ4MTUyNDY0ZDExZDc1MDg2NWMxMTdlMzQ5
YjllNDQ3OWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhQ29vcmRpbmF0ZWRHcmFwaGljcy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJh
d2luZ0FyZWFDb29yZGluYXRlZEdyYXBoaWNzLmgKQEAgLTcwLDEwICs3MCwxMyBAQCBwcml2YXRl
OgogICAgIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9y
eSgpIG92ZXJyaWRlOwogICAgIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6
R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOwogICAgIHZvaWQgc2NoZWR1bGVJbml0aWFsRGVmZXJy
ZWRQYWludCgpIG92ZXJyaWRlIHsgfTsKLSAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXll
ckZsdXNoKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVz
aEltbWVkaWF0ZWx5KCkgb3ZlcnJpZGUgeyBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgp
OyB9OwotICAgIHZvaWQgbGF5ZXJIb3N0RGlkRmx1c2hMYXllcnMoKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzY2hlZHVs
ZUltbWVkaWF0ZVJlbmRlcmluZ1VwZGF0ZSgpIG92ZXJyaWRlIHsgc2NoZWR1bGVSZW5kZXJpbmdV
cGRhdGUoKTsgfTsKIAorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKKyAgICB2b2lkIGxh
eWVySG9zdERpZEZsdXNoTGF5ZXJzKCkgb3ZlcnJpZGU7CisjZW5kaWYKKyAgICAKICNpZiBVU0Uo
UkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQogICAgIFJlZlB0cjxXZWJD
b3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihX
ZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCkgb3ZlcnJpZGU7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmggYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCmluZGV4IGJhYjFkNGJmYmVl
OWU0NTE0ZjNmN2JjNGJjYTVhNTk1ZTU5ODZmMTUuLmY0ZmQ2YjI2NzkzNmYwNTk5MmQ2ZTBiMmE3
MGE5NTI3NDQxMTI4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0RyYXdpbmdBcmVhLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
RHJhd2luZ0FyZWEuaApAQCAtMzMsOSArMzMsOSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZp
dHlTdGF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9JbnRSZWN0Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9MYXllckZsdXNoVGhyb3R0bGVTdGF0
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTGF5b3V0TWlsZXN0b25lLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9QbGF0Zm9ybVNjcmVlbi5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVuZGVyaW5nVXBkYXRl
VGhyb3R0bGVTdGF0ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3Rm
L05vbmNvcHlhYmxlLmg+CiAjaW5jbHVkZSA8d3RmL1R5cGVDYXN0cy5oPgpAQCAtODUsNyArODUs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGZvcmNlUmVwYWludEFzeW5jKENhbGxiYWNr
SUQpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldExheWVyVHJlZVN0YXRl
SXNGcm96ZW4oYm9vbCkgeyB9CiAgICAgdmlydHVhbCBib29sIGxheWVyVHJlZVN0YXRlSXNGcm96
ZW4oKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBsYXllckZsdXNo
VGhyb3R0bGluZ0lzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IGJvb2wgcmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZ0lzQWN0aXZlKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQ
cmVmZXJlbmNlc1N0b3JlJikgeyB9CiAgICAgdmlydHVhbCB2b2lkIGVuYWJsZVBhaW50aW5nKCkg
eyB9CkBAIC0xMTMsOSArMTEzLDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXllckZhY3RvcnkoKSB7IHJldHVybiBudWxs
cHRyOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRp
bmdMYXllckZsdXNoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZVJlbmRlcmluZ1Vw
ZGF0ZSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVJbml0aWFsRGVmZXJyZWRQYWlu
dCgpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2hJ
bW1lZGlhdGVseSgpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVJbW1lZGlhdGVSZW5k
ZXJpbmdVcGRhdGUoKSA9IDA7CiAKICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElT
UExBWV9NT05JVE9SKQogICAgIHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNo
TW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFdlYkNvcmU6OlBsYXRmb3JtRGlz
cGxheUlEKTsKQEAgLTEyOCw3ICsxMjgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wg
bWFya0xheWVyc1ZvbGF0aWxlSW1tZWRpYXRlbHlJZlBvc3NpYmxlKCkgeyByZXR1cm4gdHJ1ZTsg
fQogCi0gICAgdmlydHVhbCBib29sIGFkanVzdExheWVyRmx1c2hUaHJvdHRsaW5nKFdlYkNvcmU6
OkxheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpGbGFncykgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2
aXJ0dWFsIGJvb2wgYWRqdXN0UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZyhPcHRpb25TZXQ8V2Vi
Q29yZTo6UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZT4pIHsgcmV0dXJuIGZhbHNlOyB9CiAK
ICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXIqKSB7IH0KIApAQCAtMTQxLDcgKzE0MSw5IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlR2VvbWV0cnkoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdmlld1Np
emUsIGJvb2wgZmx1c2hTeW5jaHJvbm91c2x5LCBjb25zdCBXVEY6Ok1hY2hTZW5kUmlnaHQmIGZl
bmNlUG9ydCkgeyB9CiAjZW5kaWYKIAorI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKICAg
ICB2aXJ0dWFsIHZvaWQgbGF5ZXJIb3N0RGlkRmx1c2hMYXllcnMoKSB7IH0KKyNlbmRpZgogCiAj
aWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKSB8fCBVU0UoVEVYVFVSRV9NQVBQRVIpCiAgICAg
dmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0QXR0cmlidXRlcyhXZWJDb3JlOjpWaWV3cG9y
dEF0dHJpYnV0ZXMmJikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUNvbnRleHQuaCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVDb250ZXh0LmgKaW5kZXggNTdhMDI1OWIyMjU5NjAwMTUwM2Y2NDZiN2JmNzU0OTg5OTRiZjll
OC4uNGY3Yjk4M2NkODBlYTU1NzVkOGIzOTAzMzI1NmRjMDFhMTdjOWFlMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyVHJlZUNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oCkBAIC03Myw4ICs3Myw4IEBA
IHB1YmxpYzoKIAogICAgIFJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbiYgYmFja2lu
Z1N0b3JlQ29sbGVjdGlvbigpIHsgcmV0dXJuIG1fYmFja2luZ1N0b3JlQ29sbGVjdGlvbjsgfQog
ICAgIAotICAgIHZvaWQgc2V0TmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludChib29sIG5leHRG
bHVzaElzRm9ySW1tZWRpYXRlUGFpbnQpIHsgbV9uZXh0Rmx1c2hJc0ZvckltbWVkaWF0ZVBhaW50
ID0gbmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludDsgfQotICAgIGJvb2wgbmV4dEZsdXNoSXNG
b3JJbW1lZGlhdGVQYWludCgpIGNvbnN0IHsgcmV0dXJuIG1fbmV4dEZsdXNoSXNGb3JJbW1lZGlh
dGVQYWludDsgfQorICAgIHZvaWQgc2V0TmV4dFJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVzU3luY2hy
b25vdXNJbWFnZURlY29kaW5nKGJvb2wgcmVxdWlyZVN5bmNocm9ub3VzRGVjb2RpbmcpIHsgbV9u
ZXh0UmVuZGVyaW5nVXBkYXRlUmVxdWlyZXNTeW5jaHJvbm91c0ltYWdlRGVjb2RpbmcgPSByZXF1
aXJlU3luY2hyb25vdXNEZWNvZGluZzsgfQorICAgIGJvb2wgbmV4dFJlbmRlcmluZ1VwZGF0ZVJl
cXVpcmVzU3luY2hyb25vdXNJbWFnZURlY29kaW5nKCkgY29uc3QgeyByZXR1cm4gbV9uZXh0UmVu
ZGVyaW5nVXBkYXRlUmVxdWlyZXNTeW5jaHJvbm91c0ltYWdlRGVjb2Rpbmc7IH0KIAogICAgIHZv
aWQgYWRvcHRMYXllcnNGcm9tQ29udGV4dChSZW1vdGVMYXllclRyZWVDb250ZXh0Jik7CiAgICAg
CkBAIC0xMDIsNyArMTAyLDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6OkxheWVyUG9vbCBt
X2xheWVyUG9vbDsKICAgICAKLSAgICBib29sIG1fbmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWlu
dCB7IGZhbHNlIH07CisgICAgYm9vbCBtX25leHRSZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNo
cm9ub3VzSW1hZ2VEZWNvZGluZyB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RGlzcGxheVJlZnJlc2hNb25pdG9yLm1tCmluZGV4IDM1YzgxNDFjMDBjMzRiOTk2NjdmMDFlNGMz
MzQ1YzUyOWJkZWU1MWQuLmEyZTZkNDAzMmI0YjZjOTk1MGRkMWE5ODRhY2Y3Zjg3YzIyZjE0Mzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllclRyZWVEaXNwbGF5UmVmcmVzaE1vbml0b3IubW0KKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZURpc3BsYXlSZWZyZXNoTW9uaXRvci5tbQpAQCAtNDksNyArNDksNyBAQCBib29sIFJlbW90ZUxh
eWVyVHJlZURpc3BsYXlSZWZyZXNoTW9uaXRvcjo6cmVxdWVzdFJlZnJlc2hDYWxsYmFjaygpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghaXNTY2hlZHVsZWQoKSkKLSAgICAgICAg
c3RhdGljX2Nhc3Q8RHJhd2luZ0FyZWEmPigqbV9kcmF3aW5nQXJlYS5nZXQoKSkuc2NoZWR1bGVD
b21wb3NpdGluZ0xheWVyRmx1c2goKTsKKyAgICAgICAgc3RhdGljX2Nhc3Q8RHJhd2luZ0FyZWEm
PigqbV9kcmF3aW5nQXJlYS5nZXQoKSkuc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIAogICAg
IHNldElzQWN0aXZlKHRydWUpOwogICAgIHNldElzU2NoZWR1bGVkKHRydWUpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAppbmRleCBmMTEx
NjgzZmJhNzI3OGY4NzI0YmFkZThlODI5ZTJlZGZmYjY1ZGRjLi4xN2U4NmUzN2UwYmNkYTQ3MDY2
YTQyZjhiYWJjM2E2YzBlNGQxZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaApAQCAtNjUsOCArNjUsOCBAQCBwcml2YXRlOgogICAg
IFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIG92
ZXJyaWRlOwogICAgIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIG92ZXJyaWRlOwogICAgIHZvaWQgc2NoZWR1bGVJbml0aWFsRGVmZXJyZWRQYWlu
dCgpIG92ZXJyaWRlOwotICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBv
dmVycmlkZTsKLSAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRl
bHkoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzY2hlZHVsZUltbWVkaWF0ZVJlbmRlcmluZ1VwZGF0ZSgpIG92ZXJyaWRl
OwogICAgIHZvaWQgYXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXIqKSBvdmVycmlkZTsKIAogICAgIHZvaWQgYWRkVHJhbnNhY3Rpb25DYWxsYmFja0lE
KENhbGxiYWNrSUQpIG92ZXJyaWRlOwpAQCAtODMsOCArODMsOCBAQCBwcml2YXRlOgogICAgIGJv
b2wgdXNlc0RlbGVnYXRlZFBhZ2VTY2FsaW5nKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gdHJ1
ZTsgfQogCiAgICAgdm9pZCBzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJvb2wpIG92ZXJyaWRl
OwotICAgIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIG1faXNGbHVzaGluZ1N1c3BlbmRlZDsgfQotICAgIGJvb2wgbGF5ZXJGbHVzaFRocm90dGxp
bmdJc0FjdGl2ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNUaHJvdHRsaW5nTGF5ZXJG
bHVzaGVzICYmIG1fbGF5ZXJGbHVzaFRpbWVyLmlzQWN0aXZlKCk7IH0KKyAgICBib29sIGxheWVy
VHJlZVN0YXRlSXNGcm96ZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lzUmVuZGVyaW5n
U3VzcGVuZGVkOyB9CisgICAgYm9vbCByZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nSXNBY3RpdmUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lzVGhyb3R0bGluZ1JlbmRlcmluZ1VwZGF0ZXMg
JiYgbV91cGRhdGVSZW5kZXJpbmdUaW1lci5pc0FjdGl2ZSgpOyB9CiAKICAgICB2b2lkIGZvcmNl
UmVwYWludCgpIG92ZXJyaWRlOwogICAgIGJvb2wgZm9yY2VSZXBhaW50QXN5bmMoQ2FsbGJhY2tJ
RCkgb3ZlcnJpZGUgeyByZXR1cm4gZmFsc2U7IH0KQEAgLTEwOCw3ICsxMDgsNyBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBhY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKE9wdGlvblNldDxXZWJDb3JlOjpB
Y3Rpdml0eVN0YXRlOjpGbGFnPiBjaGFuZ2VkLCBBY3Rpdml0eVN0YXRlQ2hhbmdlSUQsIGNvbnN0
IFZlY3RvcjxDYWxsYmFja0lEPiYgY2FsbGJhY2tJRHMpIG92ZXJyaWRlOwogCi0gICAgYm9vbCBh
ZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhXZWJDb3JlOjpMYXllckZsdXNoVGhyb3R0bGVTdGF0
ZTo6RmxhZ3MpIG92ZXJyaWRlOworICAgIGJvb2wgYWRqdXN0UmVuZGVyaW5nVXBkYXRlVGhyb3R0
bGluZyhPcHRpb25TZXQ8V2ViQ29yZTo6UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVTdGF0ZT4pIG92
ZXJyaWRlOwogCiAgICAgYm9vbCBhZGRNaWxlc3RvbmVzVG9EaXNwYXRjaChPcHRpb25TZXQ8V2Vi
Q29yZTo6TGF5b3V0TWlsZXN0b25lPikgb3ZlcnJpZGU7CiAKQEAgLTExNiw3ICsxMTYsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgdXBkYXRlUm9vdExheWVycygpOwogCiAgICAgdm9pZCBhZGRDb21t
aXRIYW5kbGVycygpOwotICAgIHZvaWQgZmx1c2hMYXllcnMoKTsKKyAgICB2b2lkIHVwZGF0ZVJl
bmRlcmluZygpOwogCiAgICAgV2ViQ29yZTo6VGlsZWRCYWNraW5nKiBtYWluRnJhbWVUaWxlZEJh
Y2tpbmcoKSBjb25zdDsKIApAQCAtMTUxLDE4ICsxNTEsMTkgQEAgcHJpdmF0ZToKICAgICBPcHRp
b25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IG1fdmlld0V4cG9zZWRSZWN0OwogICAgIE9wdGlvbmFs
PFdlYkNvcmU6OkZsb2F0UmVjdD4gbV9zY3JvbGxlZFZpZXdFeHBvc2VkUmVjdDsKIAotICAgIFdl
YkNvcmU6OlRpbWVyIG1fbGF5ZXJGbHVzaFRpbWVyOwotICAgIGJvb2wgbV9pc0ZsdXNoaW5nU3Vz
cGVuZGVkIHsgZmFsc2UgfTsKLSAgICBib29sIG1faGFzRGVmZXJyZWRGbHVzaCB7IGZhbHNlIH07
Ci0gICAgYm9vbCBtX2ZsdXNoaW5nSW5pdGlhbERlZmVycmVkUGFpbnQgeyBmYWxzZSB9OwotICAg
IGJvb2wgbV9pc1Rocm90dGxpbmdMYXllckZsdXNoZXMgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9p
c0xheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uIHsg
ZmFsc2UgfTsKLSAgICBib29sIG1faXNJbml0aWFsVGhyb3R0bGVkTGF5ZXJGbHVzaCB7IGZhbHNl
IH07CisgICAgV2ViQ29yZTo6VGltZXIgbV91cGRhdGVSZW5kZXJpbmdUaW1lcjsKKyAgICBib29s
IG1faXNSZW5kZXJpbmdTdXNwZW5kZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9oYXNEZWZlcnJl
ZFJlbmRlcmluZ1VwZGF0ZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2luSW5pdGlhbERlZmVycmVk
UmVuZGVyaW5nVXBkYXRlIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNGaXJzdFRocm90dGxlZFJl
bmRlcmluZ1VwZGF0ZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX25leHRSZW5kZXJpbmdVcGRhdGVS
ZXF1aXJlc1N5bmNocm9ub3VzSW1hZ2VEZWNvZGluZyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lu
VXBkYXRlUmVuZGVyaW5nIHsgZmFsc2UgfTsKKworICAgIGJvb2wgbV9pc1Rocm90dGxpbmdSZW5k
ZXJpbmdVcGRhdGVzIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNSZW5kZXJpbmdVcGRhdGVUaHJv
dHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uIHsgZmFsc2UgfTsKIAogICAg
IGJvb2wgbV93YWl0aW5nRm9yQmFja2luZ1N0b3JlU3dhcCB7IGZhbHNlIH07Ci0gICAgYm9vbCBt
X2hhZEZsdXNoRGVmZXJyZWRXaGlsZVdhaXRpbmdGb3JCYWNraW5nU3RvcmVTd2FwIHsgZmFsc2Ug
fTsKLSAgICBib29sIG1fbmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludCB7IGZhbHNlIH07Ci0g
ICAgYm9vbCBtX2luRmx1c2hMYXllcnMgeyBmYWxzZSB9OworICAgIGJvb2wgbV9kZWZlcnJlZFJl
bmRlcmluZ1VwZGF0ZVdoaWxlV2FpdGluZ0ZvckJhY2tpbmdTdG9yZVN3YXAgeyBmYWxzZSB9Owog
CiAgICAgZGlzcGF0Y2hfcXVldWVfdCBtX2NvbW1pdFF1ZXVlOwogICAgIFJlZlB0cjxCYWNraW5n
U3RvcmVGbHVzaGVyPiBtX3BlbmRpbmdCYWNraW5nU3RvcmVGbHVzaGVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCmluZGV4IGQ3MjBi
MmVkOTZjOGI3ZTVmZmE5NjJkYzlkZDVmNzU0OGRjYzVjZDkuLjQ0NTA4OWU1NmNjN2YxMDEyZjc0
NmVhYWExM2IxNjU1MmZhYTJkZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0KQEAgLTYwLDcgKzYwLDcgQEAgUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWE6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhKFdlYlBhZ2UmIHdlYlBh
Z2UsIGNvbnN0IFcKICAgICA6IERyYXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZVJlbW90ZUxheWVy
VHJlZSwgcGFyYW1ldGVycy5kcmF3aW5nQXJlYUlkZW50aWZpZXIsIHdlYlBhZ2UpCiAgICAgLCBt
X3JlbW90ZUxheWVyVHJlZUNvbnRleHQobWFrZVVuaXF1ZTxSZW1vdGVMYXllclRyZWVDb250ZXh0
Pih3ZWJQYWdlKSkKICAgICAsIG1fcm9vdExheWVyKEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZShncmFw
aGljc0xheWVyRmFjdG9yeSgpLCAqdGhpcykpCi0gICAgLCBtX2xheWVyRmx1c2hUaW1lcigqdGhp
cywgJlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExheWVycykKKyAgICAsIG1fdXBk
YXRlUmVuZGVyaW5nVGltZXIoKnRoaXMsICZSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6dXBk
YXRlUmVuZGVyaW5nKQogewogICAgIHdlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5zZXRG
b3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsKICAgICBtX3Jvb3RMYXllci0+c2V0TmFtZSgiZHJh
d2luZyBhcmVhIHJvb3QiKTsKQEAgLTE0NSw3ICsxNDUsNyBAQCB2b2lkIFJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhOjpzZXRSb290Q29tcG9zaXRpbmdMYXllcihHcmFwaGljc0xheWVyKiByb290
TGF5ZQogewogICAgIG1fY29udGVudExheWVyID0gcm9vdExheWVyOwogICAgIHVwZGF0ZVJvb3RM
YXllcnMoKTsKLSAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIHNjaGVk
dWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWE6OnVwZGF0ZUdlb21ldHJ5KGNvbnN0IEludFNpemUmIHZpZXdTaXplLCBib29sIGZsdXNoU3lu
Y2hyb25vdXNseSwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JikKQEAgLTE1Myw3ICsxNTMsNyBA
QCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjp1cGRhdGVHZW9tZXRyeShjb25zdCBJ
bnRTaXplJiB2aWV3U2l6ZSwgYm9vbCBmbAogICAgIG1fdmlld1NpemUgPSB2aWV3U2l6ZTsKICAg
ICBtX3dlYlBhZ2Uuc2V0U2l6ZSh2aWV3U2l6ZSk7CiAKLSAgICBzY2hlZHVsZUNvbXBvc2l0aW5n
TGF5ZXJGbHVzaCgpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAKICAgICBzZW5k
KE1lc3NhZ2VzOjpEcmF3aW5nQXJlYVByb3h5OjpEaWRVcGRhdGVHZW9tZXRyeSgpKTsKIH0KQEAg
LTE4NSwyMiArMTg1LDIyIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNldERl
dmljZVNjYWxlRmFjdG9yKGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQogCiB2b2lkIFJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhOjpzZXRMYXllclRyZWVTdGF0ZUlzRnJvemVuKGJvb2wgaXNGcm96
ZW4pCiB7Ci0gICAgaWYgKG1faXNGbHVzaGluZ1N1c3BlbmRlZCA9PSBpc0Zyb3plbikKKyAgICBp
ZiAobV9pc1JlbmRlcmluZ1N1c3BlbmRlZCA9PSBpc0Zyb3plbikKICAgICAgICAgcmV0dXJuOwog
CiAgICAgdHJhY2VQb2ludChpc0Zyb3plbiA/IExheWVyVHJlZUZyZWV6ZVN0YXJ0IDogTGF5ZXJU
cmVlRnJlZXplRW5kKTsKIAotICAgIG1faXNGbHVzaGluZ1N1c3BlbmRlZCA9IGlzRnJvemVuOwor
ICAgIG1faXNSZW5kZXJpbmdTdXNwZW5kZWQgPSBpc0Zyb3plbjsKIAotICAgIGlmICghbV9pc0Zs
dXNoaW5nU3VzcGVuZGVkICYmIG1faGFzRGVmZXJyZWRGbHVzaCkgewotICAgICAgICBtX2hhc0Rl
ZmVycmVkRmx1c2ggPSBmYWxzZTsKKyAgICBpZiAoIW1faXNSZW5kZXJpbmdTdXNwZW5kZWQgJiYg
bV9oYXNEZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZSkgeworICAgICAgICBtX2hhc0RlZmVycmVkUmVu
ZGVyaW5nVXBkYXRlID0gZmFsc2U7CiAgICAgICAgIHNjaGVkdWxlSW5pdGlhbERlZmVycmVkUGFp
bnQoKTsKICAgICB9CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZvcmNl
UmVwYWludCgpCiB7Ci0gICAgaWYgKG1faXNGbHVzaGluZ1N1c3BlbmRlZCkKKyAgICBpZiAobV9p
c1JlbmRlcmluZ1N1c3BlbmRlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZm9yIChGcmFtZSog
ZnJhbWUgPSAmbV93ZWJQYWdlLmNvcmVQYWdlKCktPm1haW5GcmFtZSgpOyBmcmFtZTsgZnJhbWUg
PSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKSB7CkBAIC0yMTEsNyArMjExLDcgQEAgdm9p
ZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6Zm9yY2VSZXBhaW50KCkKICAgICAgICAgZnJh
bWVWaWV3LT50aWxlZEJhY2tpbmcoKS0+Zm9yY2VSZXBhaW50KCk7CiAgICAgfQogCi0gICAgZmx1
c2hMYXllcnMoKTsKKyAgICB1cGRhdGVSZW5kZXJpbmcoKTsKIH0KIAogdm9pZCBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYTo6YWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydCh1aW50NjRfdCBs
YXllcklELCBjb25zdCBTdHJpbmcmIGtleSwgTW9ub3RvbmljVGltZSBzdGFydFRpbWUpCkBAIC0y
NDgsNyArMjQ4LDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6c2V0RXhwb3Nl
ZENvbnRlbnRSZWN0KGNvbnN0IEZsb2F0UmVjdCYgZXhwb3NlZEMKICAgICAgICAgcmV0dXJuOwog
CiAgICAgZnJhbWVWaWV3LT5zZXRFeHBvc2VkQ29udGVudFJlY3QoZXhwb3NlZENvbnRlbnRSZWN0
KTsKLSAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIHNjaGVkdWxlUmVu
ZGVyaW5nVXBkYXRlKCk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVw
ZGF0ZVNjcm9sbGVkRXhwb3NlZFJlY3QoKQpAQCAtMjczLDYwICsyNzMsNjAgQEAgVGlsZWRCYWNr
aW5nKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYTo6bWFpbkZyYW1lVGlsZWRCYWNraW5nKCkg
Y29uc3QKICAgICByZXR1cm4gZnJhbWVWaWV3ID8gZnJhbWVWaWV3LT50aWxlZEJhY2tpbmcoKSA6
IG51bGxwdHI7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVkdWxl
Q29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKQordm9pZCBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYTo6c2NoZWR1bGVJbW1lZGlhdGVSZW5kZXJpbmdVcGRhdGUoKQogewotICAgIG1f
bGF5ZXJGbHVzaFRpbWVyLnN0YXJ0T25lU2hvdCgwX3MpOworICAgIG1fdXBkYXRlUmVuZGVyaW5n
VGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWE6OnNjaGVkdWxlSW5pdGlhbERlZmVycmVkUGFpbnQoKQogewotICAgIEFTU0VSVCghbV9p
c0ZsdXNoaW5nU3VzcGVuZGVkKTsKLSAgICBtX2ZsdXNoaW5nSW5pdGlhbERlZmVycmVkUGFpbnQg
PSB0cnVlOworICAgIEFTU0VSVCghbV9pc1JlbmRlcmluZ1N1c3BlbmRlZCk7CisgICAgbV9pbklu
aXRpYWxEZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZSA9IHRydWU7CiAKLSAgICBpZiAobV9sYXllckZs
dXNoVGltZXIuaXNBY3RpdmUoKSkKKyAgICBpZiAobV91cGRhdGVSZW5kZXJpbmdUaW1lci5pc0Fj
dGl2ZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1
c2hJbW1lZGlhdGVseSgpOworICAgIHNjaGVkdWxlSW1tZWRpYXRlUmVuZGVyaW5nVXBkYXRlKCk7
CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVkdWxlQ29tcG9zaXRp
bmdMYXllckZsdXNoKCkKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnNjaGVkdWxl
UmVuZGVyaW5nVXBkYXRlKCkKIHsKLSAgICBpZiAobV9pc0ZsdXNoaW5nU3VzcGVuZGVkKSB7Ci0g
ICAgICAgIG1faXNMYXllckZsdXNoVGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRl
cmFjdGlvbiA9IGZhbHNlOwotICAgICAgICBtX2hhc0RlZmVycmVkRmx1c2ggPSB0cnVlOworICAg
IGlmIChtX2lzUmVuZGVyaW5nU3VzcGVuZGVkKSB7CisgICAgICAgIG1faXNSZW5kZXJpbmdVcGRh
dGVUaHJvdHRsaW5nVGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uID0gZmFsc2U7Cisg
ICAgICAgIG1faGFzRGVmZXJyZWRSZW5kZXJpbmdVcGRhdGUgPSB0cnVlOwogICAgICAgICByZXR1
cm47CiAgICAgfQotICAgIGlmIChtX2lzTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURp
c2FibGVkRm9ySW50ZXJhY3Rpb24pIHsKLSAgICAgICAgbV9pc0xheWVyRmx1c2hUaHJvdHRsaW5n
VGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uID0gZmFsc2U7Ci0gICAgICAgIHNjaGVk
dWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKTsKKyAgICBpZiAobV9pc1JlbmRl
cmluZ1VwZGF0ZVRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24pIHsK
KyAgICAgICAgbV9pc1JlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVk
Rm9ySW50ZXJhY3Rpb24gPSBmYWxzZTsKKyAgICAgICAgc2NoZWR1bGVJbW1lZGlhdGVSZW5kZXJp
bmdVcGRhdGUoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmIChtX2xheWVyRmx1
c2hUaW1lci5pc0FjdGl2ZSgpKQorICAgIGlmIChtX3VwZGF0ZVJlbmRlcmluZ1RpbWVyLmlzQWN0
aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGNvbnN0IFNlY29uZHMgaW5pdGlhbEZsdXNo
RGVsYXkgPSA1MDBfbXM7CiAgICAgY29uc3QgU2Vjb25kcyBmbHVzaERlbGF5ID0gMTUwMF9tczsK
LSAgICBTZWNvbmRzIHRocm90dGxlRGVsYXkgPSBtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyA/
IChtX2lzSW5pdGlhbFRocm90dGxlZExheWVyRmx1c2ggPyBpbml0aWFsRmx1c2hEZWxheSA6IGZs
dXNoRGVsYXkpIDogMF9zOwotICAgIG1faXNJbml0aWFsVGhyb3R0bGVkTGF5ZXJGbHVzaCA9IGZh
bHNlOworICAgIFNlY29uZHMgdGhyb3R0bGVEZWxheSA9IG1faXNUaHJvdHRsaW5nUmVuZGVyaW5n
VXBkYXRlcyA/IChtX2lzRmlyc3RUaHJvdHRsZWRSZW5kZXJpbmdVcGRhdGUgPyBpbml0aWFsRmx1
c2hEZWxheSA6IGZsdXNoRGVsYXkpIDogMF9zOworICAgIG1faXNGaXJzdFRocm90dGxlZFJlbmRl
cmluZ1VwZGF0ZSA9IGZhbHNlOwogCi0gICAgbV9sYXllckZsdXNoVGltZXIuc3RhcnRPbmVTaG90
KHRocm90dGxlRGVsYXkpOworICAgIG1fdXBkYXRlUmVuZGVyaW5nVGltZXIuc3RhcnRPbmVTaG90
KHRocm90dGxlRGVsYXkpOwogfQogCi1ib29sIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjph
ZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhXZWJDb3JlOjpMYXllckZsdXNoVGhyb3R0bGVTdGF0
ZTo6RmxhZ3MgZmxhZ3MpCitib29sIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjphZGp1c3RS
ZW5kZXJpbmdVcGRhdGVUaHJvdHRsaW5nKE9wdGlvblNldDxSZW5kZXJpbmdVcGRhdGVUaHJvdHRs
ZVN0YXRlPiBmbGFncykKIHsKLSAgICBpZiAoZmxhZ3MgJiBXZWJDb3JlOjpMYXllckZsdXNoVGhy
b3R0bGVTdGF0ZTo6VXNlcklzSW50ZXJhY3RpbmcpCi0gICAgICAgIG1faXNMYXllckZsdXNoVGhy
b3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbiA9IHRydWU7CisgICAgaWYg
KGZsYWdzLmNvbnRhaW5zKFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU6OlVzZXJJc0ludGVy
YWN0aW5nKSkKKyAgICAgICAgbV9pc1JlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdUZW1wb3Jhcmls
eURpc2FibGVkRm9ySW50ZXJhY3Rpb24gPSB0cnVlOwogCi0gICAgYm9vbCB3YXNUaHJvdHRsaW5n
TGF5ZXJGbHVzaGVzID0gbV9pc1Rocm90dGxpbmdMYXllckZsdXNoZXM7Ci0gICAgbV9pc1Rocm90
dGxpbmdMYXllckZsdXNoZXMgPSBmbGFncyAmIFdlYkNvcmU6OkxheWVyRmx1c2hUaHJvdHRsZVN0
YXRlOjpFbmFibGVkOworICAgIGJvb2wgd2FzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyA9IG1faXNU
aHJvdHRsaW5nUmVuZGVyaW5nVXBkYXRlczsKKyAgICBtX2lzVGhyb3R0bGluZ1JlbmRlcmluZ1Vw
ZGF0ZXMgPSBmbGFncy5jb250YWlucyhSZW5kZXJpbmdVcGRhdGVUaHJvdHRsZVN0YXRlOjpFbmFi
bGVkKTsKIAotICAgIGlmICghd2FzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyAmJiBtX2lzVGhyb3R0
bGluZ0xheWVyRmx1c2hlcykKLSAgICAgICAgbV9pc0luaXRpYWxUaHJvdHRsZWRMYXllckZsdXNo
ID0gdHJ1ZTsKKyAgICBpZiAoIXdhc1Rocm90dGxpbmdMYXllckZsdXNoZXMgJiYgbV9pc1Rocm90
dGxpbmdSZW5kZXJpbmdVcGRhdGVzKQorICAgICAgICBtX2lzRmlyc3RUaHJvdHRsZWRSZW5kZXJp
bmdVcGRhdGUgPSB0cnVlOwogCiAgICAgLy8gUmUtc2NoZWR1bGUgdGhlIGZsdXNoIGlmIHdlIHN0
b3BwZWQgdGhyb3R0bGluZy4KLSAgICBpZiAod2FzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyAmJiAh
bV9pc1Rocm90dGxpbmdMYXllckZsdXNoZXMgJiYgbV9sYXllckZsdXNoVGltZXIuaXNBY3RpdmUo
KSkgewotICAgICAgICBtX2xheWVyRmx1c2hUaW1lci5zdG9wKCk7Ci0gICAgICAgIHNjaGVkdWxl
Q29tcG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAgaWYgKHdhc1Rocm90dGxpbmdMYXllckZsdXNo
ZXMgJiYgIW1faXNUaHJvdHRsaW5nUmVuZGVyaW5nVXBkYXRlcyAmJiBtX3VwZGF0ZVJlbmRlcmlu
Z1RpbWVyLmlzQWN0aXZlKCkpIHsKKyAgICAgICAgbV91cGRhdGVSZW5kZXJpbmdUaW1lci5zdG9w
KCk7CisgICAgICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAgICAgfQogICAgIHJldHVy
biB0cnVlOwogfQpAQCAtMzU0LDMwICszNTQsMzAgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYTo6YWRkQ29tbWl0SGFuZGxlcnMoKQogICAgIG1fd2ViUGFnZS5zZXRGaXJzdEZsdXNo
QWZ0ZXJDb21taXQodHJ1ZSk7CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6
OmZsdXNoTGF5ZXJzKCkKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OnVwZGF0ZVJl
bmRlcmluZygpCiB7Ci0gICAgaWYgKG1faXNGbHVzaGluZ1N1c3BlbmRlZCkgewotICAgICAgICBt
X2hhc0RlZmVycmVkRmx1c2ggPSB0cnVlOworICAgIGlmIChtX2lzUmVuZGVyaW5nU3VzcGVuZGVk
KSB7CisgICAgICAgIG1faGFzRGVmZXJyZWRSZW5kZXJpbmdVcGRhdGUgPSB0cnVlOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKG1fd2FpdGluZ0ZvckJhY2tpbmdTdG9yZVN3YXAp
IHsKLSAgICAgICAgbV9oYWRGbHVzaERlZmVycmVkV2hpbGVXYWl0aW5nRm9yQmFja2luZ1N0b3Jl
U3dhcCA9IHRydWU7CisgICAgICAgIG1fZGVmZXJyZWRSZW5kZXJpbmdVcGRhdGVXaGlsZVdhaXRp
bmdGb3JCYWNraW5nU3RvcmVTd2FwID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGlmIChtX2ZsdXNoaW5nSW5pdGlhbERlZmVycmVkUGFpbnQpIHsKLSAgICAgICAgbV9mbHVz
aGluZ0luaXRpYWxEZWZlcnJlZFBhaW50ID0gZmFsc2U7CisgICAgaWYgKG1faW5Jbml0aWFsRGVm
ZXJyZWRSZW5kZXJpbmdVcGRhdGUpIHsKKyAgICAgICAgbV9pbkluaXRpYWxEZWZlcnJlZFJlbmRl
cmluZ1VwZGF0ZSA9IGZhbHNlOwogICAgICAgICAvLyBSZXNjaGVkdWxlIHRoZSBmbHVzaCB0aW1l
ciBmb3IgdGhlIHNlY29uZCBwYWludCBpZiBwYWludGluZyBpcyBiZWluZyB0aHJvdHRsZWQuCi0g
ICAgICAgIGlmIChtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcykKLSAgICAgICAgICAgIHNjaGVk
dWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAgICAgIGlmIChtX2lzVGhyb3R0bGluZ1Jl
bmRlcmluZ1VwZGF0ZXMpCisgICAgICAgICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwog
ICAgIH0KIAogICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgbm90IHJlZW50cmFudCwgZS5nLiBhIHJB
RiBjYWxsYmFjayBtYXkgZm9yY2UgcmVwYWludC4KLSAgICBpZiAobV9pbkZsdXNoTGF5ZXJzKQor
ICAgIGlmIChtX2luVXBkYXRlUmVuZGVyaW5nKQogICAgICAgICByZXR1cm47CiAKLSAgICBTZXRG
b3JTY29wZTxib29sPiBjaGFuZ2UobV9pbkZsdXNoTGF5ZXJzLCB0cnVlKTsKKyAgICBTZXRGb3JT
Y29wZTxib29sPiBjaGFuZ2UobV9pblVwZGF0ZVJlbmRlcmluZywgdHJ1ZSk7CiAgICAgbV93ZWJQ
YWdlLnVwZGF0ZVJlbmRlcmluZygpOwogCiAgICAgRmxvYXRSZWN0IHZpc2libGVSZWN0KEZsb2F0
UG9pbnQoKSwgbV92aWV3U2l6ZSk7CkBAIC0zODYsNyArMzg2LDcgQEAgdm9pZCBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYTo6Zmx1c2hMYXllcnMoKQogCiAgICAgYWRkQ29tbWl0SGFuZGxlcnMo
KTsKIAotICAgIGlmIChtX25leHRGbHVzaElzRm9ySW1tZWRpYXRlUGFpbnQpCisgICAgaWYgKG1f
bmV4dFJlbmRlcmluZ1VwZGF0ZVJlcXVpcmVzU3luY2hyb25vdXNJbWFnZURlY29kaW5nKQogICAg
ICAgICBtX3dlYlBhZ2UubWFpbkZyYW1lVmlldygpLT5pbnZhbGlkYXRlSW1hZ2VzV2l0aEFzeW5j
RGVjb2RlcygpOwogCiAgICAgbV93ZWJQYWdlLm1haW5GcmFtZVZpZXcoKS0+Zmx1c2hDb21wb3Np
dGluZ1N0YXRlSW5jbHVkaW5nU3ViZnJhbWVzKCk7CkBAIC00MDYsOSArNDA2LDExIEBAIHZvaWQg
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKCkKICAgICBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbiBsYXllclRyYW5zYWN0aW9uOwogICAgIGxheWVyVHJhbnNhY3Rpb24u
c2V0VHJhbnNhY3Rpb25JRCh0YWtlTmV4dFRyYW5zYWN0aW9uSUQoKSk7CiAgICAgbGF5ZXJUcmFu
c2FjdGlvbi5zZXRDYWxsYmFja0lEcyhXVEZNb3ZlKG1fcGVuZGluZ0NhbGxiYWNrSURzKSk7Ci0g
ICAgbV9yZW1vdGVMYXllclRyZWVDb250ZXh0LT5zZXROZXh0Rmx1c2hJc0ZvckltbWVkaWF0ZVBh
aW50KG1fbmV4dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludCk7CisKKyAgICBtX3JlbW90ZUxheWVy
VHJlZUNvbnRleHQtPnNldE5leHRSZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNocm9ub3VzSW1h
Z2VEZWNvZGluZyhtX25leHRSZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNocm9ub3VzSW1hZ2VE
ZWNvZGluZyk7CiAgICAgbV9yZW1vdGVMYXllclRyZWVDb250ZXh0LT5idWlsZFRyYW5zYWN0aW9u
KGxheWVyVHJhbnNhY3Rpb24sICpkb3duY2FzdDxHcmFwaGljc0xheWVyQ0FSZW1vdGU+KG1fcm9v
dExheWVyLmdldCgpKS5wbGF0Zm9ybUNBTGF5ZXIoKSk7Ci0gICAgbV9yZW1vdGVMYXllclRyZWVD
b250ZXh0LT5zZXROZXh0Rmx1c2hJc0ZvckltbWVkaWF0ZVBhaW50KGZhbHNlKTsKKyAgICBtX3Jl
bW90ZUxheWVyVHJlZUNvbnRleHQtPnNldE5leHRSZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNo
cm9ub3VzSW1hZ2VEZWNvZGluZyhmYWxzZSk7CisKICAgICBiYWNraW5nU3RvcmVDb2xsZWN0aW9u
LndpbGxDb21taXRMYXllclRyZWUobGF5ZXJUcmFuc2FjdGlvbik7CiAgICAgbV93ZWJQYWdlLndp
bGxDb21taXRMYXllclRyZWUobGF5ZXJUcmFuc2FjdGlvbik7CiAKQEAgLTQyNCw3ICs0MjYsNyBA
QCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExheWVycygpCiAgICAgICAg
IGRvd25jYXN0PFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yPigqbV93ZWJQYWdlLnNjcm9sbGlu
Z0Nvb3JkaW5hdG9yKCkpLmJ1aWxkVHJhbnNhY3Rpb24oc2Nyb2xsaW5nVHJhbnNhY3Rpb24pOwog
I2VuZGlmCiAKLSAgICBtX25leHRGbHVzaElzRm9ySW1tZWRpYXRlUGFpbnQgPSBmYWxzZTsKKyAg
ICBtX25leHRSZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNocm9ub3VzSW1hZ2VEZWNvZGluZyA9
IGZhbHNlOwogICAgIG1fd2FpdGluZ0ZvckJhY2tpbmdTdG9yZVN3YXAgPSB0cnVlOwogCiAgICAg
c2VuZChNZXNzYWdlczo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6V2lsbENvbW1p
dExheWVyVHJlZShsYXllclRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSUQoKSkpOwpAQCAtNDc1LDkg
KzQ3Nyw5IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmRpZFVwZGF0ZSgpCiAK
ICAgICBtX3dhaXRpbmdGb3JCYWNraW5nU3RvcmVTd2FwID0gZmFsc2U7CiAKLSAgICBpZiAobV9o
YWRGbHVzaERlZmVycmVkV2hpbGVXYWl0aW5nRm9yQmFja2luZ1N0b3JlU3dhcCkgewotICAgICAg
ICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOwotICAgICAgICBtX2hhZEZsdXNoRGVm
ZXJyZWRXaGlsZVdhaXRpbmdGb3JCYWNraW5nU3RvcmVTd2FwID0gZmFsc2U7CisgICAgaWYgKG1f
ZGVmZXJyZWRSZW5kZXJpbmdVcGRhdGVXaGlsZVdhaXRpbmdGb3JCYWNraW5nU3RvcmVTd2FwKSB7
CisgICAgICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgICAgIG1fZGVmZXJyZWRS
ZW5kZXJpbmdVcGRhdGVXaGlsZVdhaXRpbmdGb3JCYWNraW5nU3RvcmVTd2FwID0gZmFsc2U7CiAg
ICAgfQogCiAgICAgLy8gVGhpcyBlbXB0eSB0cmFuc2FjdGlvbiBzZXJ2ZXMgdG8gdHJpZ2dlciBD
QSdzIGdhcmJhZ2UgY29sbGVjdGlvbiBvZiBJT1N1cmZhY2VzLiBTZWUgPHJkYXI6Ly9wcm9ibGVt
LzE2MTEwNjg3PgpAQCAtNTMzLDkgKzUzNSw5IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWE6OmFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2CiAg
ICAgLy8gRklYTUU6IFNob3VsZCB3ZSBzdXNwZW5kIHBhaW50aW5nIHdoaWxlIG5vdCB2aXNpYmxl
LCBsaWtlIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhPyBQcm9iYWJseS4KIAogICAgIGlm
IChhY3Rpdml0eVN0YXRlQ2hhbmdlSUQgIT0gQWN0aXZpdHlTdGF0ZUNoYW5nZUFzeW5jaHJvbm91
cykgewotICAgICAgICBtX25leHRGbHVzaElzRm9ySW1tZWRpYXRlUGFpbnQgPSB0cnVlOworICAg
ICAgICBtX25leHRSZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNocm9ub3VzSW1hZ2VEZWNvZGlu
ZyA9IHRydWU7CiAgICAgICAgIG1fYWN0aXZpdHlTdGF0ZUNoYW5nZUlEID0gYWN0aXZpdHlTdGF0
ZUNoYW5nZUlEOwotICAgICAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaEltbWVkaWF0
ZWx5KCk7CisgICAgICAgIHNjaGVkdWxlSW1tZWRpYXRlUmVuZGVyaW5nVXBkYXRlKCk7CiAgICAg
fQogCiAgICAgLy8gRklYTUU6IFdlIG1heSB3YW50IHRvIG1hdGNoIGJlaGF2aW9yIGluIFRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhIGJ5IGZpcmluZyB0aGVzZSBjYWxsYmFja3MgYWZ0ZXIg
dGhlIG5leHQgY29tcG9zaXRpbmcgZmx1c2gsIHJhdGhlciB0aGFuIGltbWVkaWF0ZWx5IGFmdGVy
CkBAIC01NDgsMTAgKzU1MCwxMCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjph
ZGRUcmFuc2FjdGlvbkNhbGxiYWNrSUQoQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQogewogICAgIC8v
IEFzc3VtZSB0aGF0IGlmIHNvbWVvbmUgaXMgbGlzdGVuaW5nIGZvciB0aGlzIHRyYW5zYWN0aW9u
J3MgY29tcGxldGlvbiwgdGhhdCB0aGV5IHdhbnQgaXQgdG8KICAgICAvLyBiZSBhICJjb21wbGV0
ZSIgcGFpbnQgKGluY2x1ZGluZyBpbWFnZXMgdGhhdCB3b3VsZCBub3JtYWxseSBiZSBhc3luY2hy
b25vdXNseSBkZWNvZGluZykuCi0gICAgbV9uZXh0Rmx1c2hJc0ZvckltbWVkaWF0ZVBhaW50ID0g
dHJ1ZTsKKyAgICBtX25leHRSZW5kZXJpbmdVcGRhdGVSZXF1aXJlc1N5bmNocm9ub3VzSW1hZ2VE
ZWNvZGluZyA9IHRydWU7CiAKICAgICBtX3BlbmRpbmdDYWxsYmFja0lEcy5hcHBlbmQoc3RhdGlj
X2Nhc3Q8UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OlRyYW5zYWN0aW9uQ2FsbGJhY2tJRD4o
Y2FsbGJhY2tJRCkpOwotICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAg
c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYTo6YWRvcHRMYXllcnNGcm9tRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWEmIG9sZERyYXdp
bmdBcmVhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yLm1tCmluZGV4IDgzNTQ0MWQzMTliOTVmNDY2ODc3NTg1Mzg5MDkyYzllZWEyOTM4NjEu
LmNiZmEzMWIyN2YxYmQ4YTYyNjVkYTg3NzY1NDUzOTY5ZTI2Zjc4NGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVTY3Jv
bGxpbmdDb29yZGluYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW0KQEAgLTYxLDcg
KzYxLDcgQEAgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6On5SZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvcigpCiAKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnNjaGVkdWxlVHJl
ZVN0YXRlQ29tbWl0KCkKIHsKLSAgICBtX3dlYlBhZ2UtPmRyYXdpbmdBcmVhKCktPnNjaGVkdWxl
Q29tcG9zaXRpbmdMYXllckZsdXNoKCk7CisgICAgbV93ZWJQYWdlLT5kcmF3aW5nQXJlYSgpLT5z
Y2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCiBib29sIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yOjpjb29yZGluYXRlc1Njcm9sbGluZ0ZvckZyYW1lVmlldyhjb25zdCBGcmFtZVZpZXcm
IGZyYW1lVmlldykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKaW5kZXggODY4M2MxMDRkYmZhMmMwNWY1ZTg0YjU5NjBmZDY4MmFlMjQ1MWRhZi4u
ZDFkMmYxYjdhZmNjMDlmYWQxYjg5MzFlZDhmODEyZjQ5MGM5NTM3OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTYyMTgsNyArNjIxOCw3IEBA
IHZvaWQgV2ViUGFnZTo6c2NoZWR1bGVGdWxsRWRpdG9yU3RhdGVVcGRhdGUoKQogICAgIG1faGFz
UGVuZGluZ0VkaXRvclN0YXRlVXBkYXRlID0gdHJ1ZTsKICAgICAvLyBGSVhNRTogU2NoZWR1bGlu
ZyBhIGNvbXBvc2l0aW5nIGxheWVyIGZsdXNoIGhlcmUgY2FuIGJlIG1vcmUgZXhwZW5zaXZlIHRo
YW4gbmVjZXNzYXJ5LgogICAgIC8vIEluc3RlYWQsIHdlIHNob3VsZCBqdXN0IGNvbXB1dGUgYW5k
IHNlbmQgcG9zdC1sYXlvdXQgZWRpdG9yIHN0YXRlIGR1cmluZyB0aGUgbmV4dCBmcmFtZS4KLSAg
ICBtX2RyYXdpbmdBcmVhLT5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIG1f
ZHJhd2luZ0FyZWEtPnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKICNpZiBIQVZFKFRP
VUNIX0JBUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lv
cy9XZWJQYWdlSU9TLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dl
YlBhZ2VJT1MubW0KaW5kZXggYjg1MzliYmM3ZTU2NmEyOTBjZGI0MDljYjI2OGE3MDY3YTI2M2I3
MC4uMTAwNmI0OTIyZDIyZmYyZTQyNmVlMDEzYWQzNThlOTE0MDlmZWExNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTM0
MjAsNyArMzQyMCw3IEBAIHZvaWQgV2ViUGFnZTo6ZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZShj
b25zdCBGbG9hdFNpemUmIHZpZXdMYXlvdXRTaXplLCBjb25zdCBXCiAgICAgICAgIHZpZXdwb3J0
Q29uZmlndXJhdGlvbkNoYW5nZWQoKTsKICNlbmRpZgogCi0gICAgbV9kcmF3aW5nQXJlYS0+c2No
ZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKKyAgICBtX2RyYXdpbmdBcmVhLT5zY2hlZHVs
ZVJlbmRlcmluZ1VwZGF0ZSgpOwogCiAgICAgbV9wZW5kaW5nRHluYW1pY1ZpZXdwb3J0U2l6ZVVw
ZGF0ZUlEID0gZHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZUlEOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEuaAppbmRleCBhNzZmMWViYzFjOGYwNGFiOTYzZWEzZjBkNjEy
ODgxYjY4N2U0NTBiLi43ZWMwOTAxZmZkNDNhODQxYjFlZTg2OTY0YmFhMzdjODk2M2UyNGVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaApAQCAtNjYsOCArNjYsOCBA
QCBwcml2YXRlOgogICAgIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IG92ZXJy
aWRlOwogICAgIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NM
YXllciopIG92ZXJyaWRlOwogICAgIHZvaWQgc2NoZWR1bGVJbml0aWFsRGVmZXJyZWRQYWludCgp
IG92ZXJyaWRlOwotICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVy
cmlkZTsKLSAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHko
KSBvdmVycmlkZTsKKyAgICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBzY2hlZHVsZUltbWVkaWF0ZVJlbmRlcmluZ1VwZGF0ZSgpIG92ZXJyaWRlOwog
CiAgICAgdm9pZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJikg
b3ZlcnJpZGU7CiAgICAgdm9pZCBtYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOwpAQCAtOTIsOCArOTIsOCBAQCBwcml2YXRlOgogICAg
IGJvb2wgYWRkTWlsZXN0b25lc1RvRGlzcGF0Y2goT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1p
bGVzdG9uZT4gcGFpbnRNaWxlc3RvbmVzKSBvdmVycmlkZTsKIAogICAgIHZvaWQgYWRkQ29tbWl0
SGFuZGxlcnMoKTsKLSAgICBlbnVtIGNsYXNzIEZsdXNoVHlwZSB7IE5vcm1hbCwgVHJhbnNpZW50
Wm9vbSB9OwotICAgIHZvaWQgZmx1c2hMYXllcnMoRmx1c2hUeXBlID0gRmx1c2hUeXBlOjpOb3Jt
YWwpOworICAgIGVudW0gY2xhc3MgVXBkYXRlUmVuZGVyaW5nVHlwZSB7IE5vcm1hbCwgVHJhbnNp
ZW50Wm9vbSB9OworICAgIHZvaWQgdXBkYXRlUmVuZGVyaW5nKFVwZGF0ZVJlbmRlcmluZ1R5cGUg
PSBVcGRhdGVSZW5kZXJpbmdUeXBlOjpOb3JtYWwpOwogCiAgICAgLy8gTWVzc2FnZSBoYW5kbGVy
cy4KICAgICB2b2lkIHVwZGF0ZUdlb21ldHJ5KGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHZpZXdT
aXplLCBib29sIGZsdXNoU3luY2hyb25vdXNseSwgY29uc3QgV1RGOjpNYWNoU2VuZFJpZ2h0JiBm
ZW5jZVBvcnQpIG92ZXJyaWRlOwpAQCAtMTMwLDE1ICsxMzAsMTUgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgc2VuZFBlbmRpbmdOZXdseVJlYWNoZWRQYWludGluZ01pbGVzdG9uZXMoKTsKIAotICAg
IHZvaWQgbGF5ZXJGbHVzaFJ1bkxvb3BDYWxsYmFjaygpOwotICAgIHZvaWQgaW52YWxpZGF0ZUxh
eWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIoKTsKLSAgICB2b2lkIHNjaGVkdWxlTGF5ZXJGbHVzaFJ1
bkxvb3BPYnNlcnZlcigpOworICAgIHZvaWQgdXBkYXRlUmVuZGVyaW5nUnVuTG9vcENhbGxiYWNr
KCk7CisgICAgdm9pZCBpbnZhbGlkYXRlUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyKCk7
CisgICAgdm9pZCBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZlcigpOwogCi0g
ICAgYm9vbCBhZGp1c3RMYXllckZsdXNoVGhyb3R0bGluZyhXZWJDb3JlOjpMYXllckZsdXNoVGhy
b3R0bGVTdGF0ZTo6RmxhZ3MpIG92ZXJyaWRlOwotICAgIGJvb2wgbGF5ZXJGbHVzaFRocm90dGxp
bmdJc0FjdGl2ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGJvb2wgYWRqdXN0UmVuZGVyaW5nVXBk
YXRlVGhyb3R0bGluZyhPcHRpb25TZXQ8V2ViQ29yZTo6UmVuZGVyaW5nVXBkYXRlVGhyb3R0bGVT
dGF0ZT4pIG92ZXJyaWRlOworICAgIGJvb2wgcmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZ0lzQWN0
aXZlKCkgY29uc3Qgb3ZlcnJpZGU7CiAKLSAgICB2b2lkIHN0YXJ0TGF5ZXJGbHVzaFRocm90dGxp
bmdUaW1lcigpOwotICAgIHZvaWQgbGF5ZXJGbHVzaFRocm90dGxpbmdUaW1lckZpcmVkKCk7Cisg
ICAgdm9pZCBzdGFydFJlbmRlclRocm90dGxpbmdUaW1lcigpOworICAgIHZvaWQgcmVuZGVyVGhy
b3R0bGluZ1RpbWVyRmlyZWQoKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxMYXllckhvc3RpbmdD
b250ZXh0PiBtX2xheWVySG9zdGluZ0NvbnRleHQ7CiAKQEAgLTE1Niw3ICsxNTYsNyBAQCBwcml2
YXRlOgogICAgIGRvdWJsZSBtX3RyYW5zaWVudFpvb21TY2FsZSB7IDEgfTsKICAgICBXZWJDb3Jl
OjpGbG9hdFBvaW50IG1fdHJhbnNpZW50Wm9vbU9yaWdpbjsKIAotICAgIFdlYkNvcmU6OlRpbWVy
IG1fbGF5ZXJGbHVzaFRocm90dGxpbmdUaW1lcjsKKyAgICBXZWJDb3JlOjpUaW1lciBtX3JlbmRl
clRocm90dGxpbmdUaW1lcjsKIAogICAgIFJ1bkxvb3A6OlRpbWVyPFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhPiBtX3NlbmREaWRVcGRhdGVBY3Rpdml0eVN0YXRlVGltZXI7CiAgICAgVmVj
dG9yPENhbGxiYWNrSUQ+IG1fbmV4dEFjdGl2aXR5U3RhdGVDaGFuZ2VDYWxsYmFja0lEczsKQEAg
LTE2NywxNSArMTY3LDE1IEBAIHByaXZhdGU6CiAgICAgT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91
dE1pbGVzdG9uZT4gbV9wZW5kaW5nTmV3bHlSZWFjaGVkUGFpbnRpbmdNaWxlc3RvbmVzOwogICAg
IFZlY3RvcjxDYWxsYmFja0lEPiBtX3BlbmRpbmdDYWxsYmFja0lEczsKIAotICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJDb3JlOjpSdW5Mb29wT2JzZXJ2ZXI+IG1fbGF5ZXJGbHVzaFJ1bkxvb3BPYnNl
cnZlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6UnVuTG9vcE9ic2VydmVyPiBtX3Jl
bmRlclVwZGF0ZVJ1bkxvb3BPYnNlcnZlcjsKIAogICAgIGJvb2wgbV9pc1BhaW50aW5nU3VzcGVu
ZGVkIHsgZmFsc2UgfTsKICAgICBib29sIG1faW5VcGRhdGVHZW9tZXRyeSB7IGZhbHNlIH07CiAg
ICAgYm9vbCBtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4geyBmYWxzZSB9OwogICAgIGJvb2wgbV9z
aG91bGRTY2FsZVZpZXdUb0ZpdERvY3VtZW50IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNTY2Fs
aW5nVmlld1RvRml0RG9jdW1lbnQgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc1Rocm90dGxpbmdM
YXllckZsdXNoZXMgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9pc0xheWVyRmx1c2hUaHJvdHRsaW5n
VGVtcG9yYXJpbHlEaXNhYmxlZEZvckludGVyYWN0aW9uIHsgZmFsc2UgfTsKKyAgICBib29sIG1f
aXNUaHJvdHRsaW5nUmVuZGVyaW5nVXBkYXRlcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzUmVu
ZGVyaW5nVXBkYXRlVGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbiB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX25lZWRzU2VuZEVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUgeyB0cnVlIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWEubW0KaW5kZXggNTZmYTE4MDMyZjg4NWMyM2Q3YTM0Nzg1NTljMGYwYzYwMzM1N2UwNC4uMjI2
NmRiMDk4Y2Q2YzVmM2YyMGFjODM2OGMwM2YzMDUzZTgyYTk1MCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQpAQCAtNzIsNyArNzIsNyBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OlRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiAgICAgOiBEcmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5
cGVUaWxlZENvcmVBbmltYXRpb24sIHBhcmFtZXRlcnMuZHJhd2luZ0FyZWFJZGVudGlmaWVyLCB3
ZWJQYWdlKQotICAgICwgbV9sYXllckZsdXNoVGhyb3R0bGluZ1RpbWVyKCp0aGlzLCAmVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmxheWVyRmx1c2hUaHJvdHRsaW5nVGltZXJGaXJlZCkK
KyAgICAsIG1fcmVuZGVyVGhyb3R0bGluZ1RpbWVyKCp0aGlzLCAmVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OnJlbmRlclRocm90dGxpbmdUaW1lckZpcmVkKQogICAgICwgbV9zZW5kRGlk
VXBkYXRlQWN0aXZpdHlTdGF0ZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpkaWRVcGRhdGVBY3Rpdml0eVN0YXRlVGltZXJGaXJlZCkK
ICAgICAsIG1faXNQYWludGluZ1N1c3BlbmRlZCghKHBhcmFtZXRlcnMuYWN0aXZpdHlTdGF0ZSAm
IEFjdGl2aXR5U3RhdGU6OklzVmlzaWJsZSkpCiB7CkBAIC04NCw4ICs4NCw4IEBAIFRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYShXZWJQ
YWdlJiB3ZWJQYWdlLCBjCiAgICAgW21faG9zdGluZ0xheWVyIHNldE9wYXF1ZTpZRVNdOwogICAg
IFttX2hvc3RpbmdMYXllciBzZXRHZW9tZXRyeUZsaXBwZWQ6WUVTXTsKIAotICAgIG1fbGF5ZXJG
bHVzaFJ1bkxvb3BPYnNlcnZlciA9IG1ha2VVbmlxdWU8UnVuTG9vcE9ic2VydmVyPihzdGF0aWNf
Y2FzdDxDRkluZGV4PihSdW5Mb29wT2JzZXJ2ZXI6OldlbGxLbm93blJ1bkxvb3BPcmRlcnM6Okxh
eWVyRmx1c2gpLCBbdGhpc10oKSB7Ci0gICAgICAgIHRoaXMtPmxheWVyRmx1c2hSdW5Mb29wQ2Fs
bGJhY2soKTsKKyAgICBtX3JlbmRlclVwZGF0ZVJ1bkxvb3BPYnNlcnZlciA9IG1ha2VVbmlxdWU8
UnVuTG9vcE9ic2VydmVyPihzdGF0aWNfY2FzdDxDRkluZGV4PihSdW5Mb29wT2JzZXJ2ZXI6Oldl
bGxLbm93blJ1bkxvb3BPcmRlcnM6OkxheWVyRmx1c2gpLCBbdGhpc10oKSB7CisgICAgICAgIHRo
aXMtPnVwZGF0ZVJlbmRlcmluZ1J1bkxvb3BDYWxsYmFjaygpOwogICAgIH0pOwogCiAgICAgdXBk
YXRlTGF5ZXJIb3N0aW5nQ29udGV4dCgpOwpAQCAtOTQsNyArOTQsNyBAQCBUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYTo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEoV2ViUGFnZSYg
d2ViUGFnZSwgYwogCiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6flRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhKCkKIHsKLSAgICBpbnZhbGlkYXRlTGF5ZXJGbHVzaFJ1bkxvb3BP
YnNlcnZlcigpOworICAgIGludmFsaWRhdGVSZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIo
KTsKIH0KIAogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2VuZEVudGVyQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVJZk5lZWRlZCgpCkBAIC0xNTUsNyArMTU1LDcgQEAgdm9p
ZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6Zm9yY2VSZXBhaW50KCkKICAgICAgICAg
ZnJhbWVWaWV3LT50aWxlZEJhY2tpbmcoKS0+Zm9yY2VSZXBhaW50KCk7CiAgICAgfQogCi0gICAg
Zmx1c2hMYXllcnMoKTsKKyAgICB1cGRhdGVSZW5kZXJpbmcoKTsKICAgICBbQ0FUcmFuc2FjdGlv
biBmbHVzaF07CiAgICAgW0NBVHJhbnNhY3Rpb24gc3luY2hyb25pemVdOwogfQpAQCAtMTgyLDEx
ICsxODIsMTEgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2V0TGF5ZXJU
cmVlU3RhdGVJc0Zyb3plbihib29sIGxheWVyVHJlZVN0YXQKICAgICBtX2xheWVyVHJlZVN0YXRl
SXNGcm96ZW4gPSBsYXllclRyZWVTdGF0ZUlzRnJvemVuOwogCiAgICAgaWYgKG1fbGF5ZXJUcmVl
U3RhdGVJc0Zyb3plbikgewotICAgICAgICBpbnZhbGlkYXRlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNl
cnZlcigpOwotICAgICAgICBtX2xheWVyRmx1c2hUaHJvdHRsaW5nVGltZXIuc3RvcCgpOworICAg
ICAgICBpbnZhbGlkYXRlUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyKCk7CisgICAgICAg
IG1fcmVuZGVyVGhyb3R0bGluZ1RpbWVyLnN0b3AoKTsKICAgICB9IGVsc2UgewogICAgICAgICAv
LyBJbW1lZGlhdGUgZmx1c2ggYXMgYW55IGRlbGF5IGluIHVuZnJlZXppbmcgY2FuIHJlc3VsdCBp
biBmbGFzaGVzLgotICAgICAgICBzY2hlZHVsZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIoKTsK
KyAgICAgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIoKTsKICAgICB9
CiB9CiAKQEAgLTE5OSwzMSArMTk5LDMxIEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6OnNjaGVkdWxlSW5pdGlhbERlZmVycmVkUGFpbnQoKQogewogfQogCi12b2lkIFRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgp
Cit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZVJlbmRlcmluZ1Vw
ZGF0ZSgpCiB7CiAgICAgaWYgKG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbikgewotICAgICAgICBt
X2lzTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24g
PSBmYWxzZTsKKyAgICAgICAgbV9pc1JlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdUZW1wb3Jhcmls
eURpc2FibGVkRm9ySW50ZXJhY3Rpb24gPSBmYWxzZTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGlmIChtX2lzTGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2FibGVkRm9y
SW50ZXJhY3Rpb24pIHsKLSAgICAgICAgbV9pc0xheWVyRmx1c2hUaHJvdHRsaW5nVGVtcG9yYXJp
bHlEaXNhYmxlZEZvckludGVyYWN0aW9uID0gZmFsc2U7Ci0gICAgICAgIHNjaGVkdWxlTGF5ZXJG
bHVzaFJ1bkxvb3BPYnNlcnZlcigpOwotICAgICAgICBtX2xheWVyRmx1c2hUaHJvdHRsaW5nVGlt
ZXIuc3RvcCgpOworICAgIGlmIChtX2lzUmVuZGVyaW5nVXBkYXRlVGhyb3R0bGluZ1RlbXBvcmFy
aWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbikgeworICAgICAgICBtX2lzUmVuZGVyaW5nVXBkYXRl
VGhyb3R0bGluZ1RlbXBvcmFyaWx5RGlzYWJsZWRGb3JJbnRlcmFjdGlvbiA9IGZhbHNlOworICAg
ICAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZlcigpOworICAgICAgICBt
X3JlbmRlclRocm90dGxpbmdUaW1lci5zdG9wKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBpZiAobV9sYXllckZsdXNoVGhyb3R0bGluZ1RpbWVyLmlzQWN0aXZlKCkpIHsKLSAgICAg
ICAgQVNTRVJUKG1faXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzKTsKKyAgICBpZiAobV9yZW5kZXJU
aHJvdHRsaW5nVGltZXIuaXNBY3RpdmUoKSkgeworICAgICAgICBBU1NFUlQobV9pc1Rocm90dGxp
bmdSZW5kZXJpbmdVcGRhdGVzKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNjaGVk
dWxlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBk
YXRlUnVuTG9vcE9ic2VydmVyKCk7CiB9CiAKLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKQordm9pZCBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2NoZWR1bGVJbW1lZGlhdGVSZW5kZXJpbmdV
cGRhdGUoKQogewotICAgIHNjaGVkdWxlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOworICAg
IHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyKCk7CiB9CiAKIHZvaWQgVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlBy
ZWZlcmVuY2VzU3RvcmUmKQpAQCAtMjcxLDcgKzI3MSw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWE6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihHcmFwaGljc0xh
eWVyCiB7CiAgICAgbV92aWV3T3ZlcmxheVJvb3RMYXllciA9IHZpZXdPdmVybGF5Um9vdExheWVy
OwogICAgIHVwZGF0ZVJvb3RMYXllcnMoKTsKLSAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJG
bHVzaCgpOworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKIHZvaWQgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6Om1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChjb25z
dCBJbnRTaXplJiBzaXplKQpAQCAtMjg0LDcgKzI4NCw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWE6OnNldFNob3VsZFNjYWxlVmlld1RvRml0RG9jdW1lbnQoYm9vbCBzaG91
bGRTCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fc2hvdWxkU2NhbGVWaWV3VG9GaXREb2N1bWVu
dCA9IHNob3VsZFNjYWxlVmlldzsKLSAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgp
OworICAgIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKIHZvaWQgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OnNjYWxlVmlld1RvRml0RG9jdW1lbnRJZk5lZWRlZCgpCkBAIC0z
OTIsNyArMzkyLDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6ZGlzcGF0
Y2hBZnRlckVuc3VyaW5nVXBkYXRlZFNjcm9sbFBvc2l0aW9uKFcKICAgICBtX3dlYlBhZ2UuY29y
ZVBhZ2UoKS0+c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKS0+Y29tbWl0VHJlZVN0YXRlSWZOZWVkZWQo
KTsKIAogICAgIGlmICghbV9sYXllclRyZWVTdGF0ZUlzRnJvemVuKQotICAgICAgICBpbnZhbGlk
YXRlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOworICAgICAgICBpbnZhbGlkYXRlUmVuZGVy
aW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyKCk7CiAKICAgICAvLyBJdCBpcyBwb3NzaWJsZSBmb3Ig
dGhlIGRyYXdpbmcgYXJlYSB0byBiZSBkZXN0cm95ZWQgYmVmb3JlIHRoZSBib3VuZCBibG9jawog
ICAgIC8vIGlzIGludm9rZWQsIHNvIGdyYWIgYSByZWZlcmVuY2UgdG8gdGhlIHdlYiBwYWdlIGhl
cmUgc28gd2UgY2FuIGFjY2VzcyB0aGUgZHJhd2luZyBhcmVhIHRocm91Z2ggaXQuCkBAIC00MDcs
NyArNDA3LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6ZGlzcGF0Y2hB
ZnRlckVuc3VyaW5nVXBkYXRlZFNjcm9sbFBvc2l0aW9uKFcKICAgICAgICAgZnVuY3Rpb24oKTsK
IAogICAgICAgICBpZiAoIW1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbikKLSAgICAgICAgICAgIHNj
aGVkdWxlTGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOworICAgICAgICAgICAgc2NoZWR1bGVS
ZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIoKTsKIAogICAgICAgICB3ZWJQYWdlLT5kZXJl
ZigpOwogICAgIH0pOwpAQCAtNDI4LDcgKzQyOCw3IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OnNlbmRQZW5kaW5nTmV3bHlSZWFjaGVkUGFpbnRpbmdNaWxlc3RvbmVzKCkK
IHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmFkZFRyYW5zYWN0aW9uQ2FsbGJh
Y2tJRChDYWxsYmFja0lEIGNhbGxiYWNrSUQpCiB7CiAgICAgbV9wZW5kaW5nQ2FsbGJhY2tJRHMu
YXBwZW5kKGNhbGxiYWNrSUQpOwotICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCk7
CisgICAgc2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYTo6YWRkQ29tbWl0SGFuZGxlcnMoKQpAQCAtNDU2LDcgKzQ1Niw3IEBA
IHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmFkZENvbW1pdEhhbmRsZXJzKCkK
ICAgICBtX3dlYlBhZ2Uuc2V0Rmlyc3RGbHVzaEFmdGVyQ29tbWl0KHRydWUpOwogfQogCi12b2lk
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmbHVzaExheWVycyhGbHVzaFR5cGUgZmx1
c2hUeXBlKQordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dXBkYXRlUmVuZGVy
aW5nKFVwZGF0ZVJlbmRlcmluZ1R5cGUgZmx1c2hUeXBlKQogewogICAgIGlmIChsYXllclRyZWVT
dGF0ZUlzRnJvemVuKCkpCiAgICAgICAgIHJldHVybjsKQEAgLTQ4Nyw3ICs0ODcsNyBAQCB2b2lk
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmbHVzaExheWVycyhGbHVzaFR5cGUgZmx1
c2hUeXBlKQogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCiAgICAgICAgIGlmIChhdXRvKiBz
Y3JvbGxpbmdDb29yZGluYXRvciA9IG1fd2ViUGFnZS5jb3JlUGFnZSgpLT5zY3JvbGxpbmdDb29y
ZGluYXRvcigpKSB7CiAgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+Y29tbWl0VHJl
ZVN0YXRlSWZOZWVkZWQoKTsKLSAgICAgICAgICAgIGlmIChmbHVzaFR5cGUgPT0gRmx1c2hUeXBl
OjpOb3JtYWwpCisgICAgICAgICAgICBpZiAoZmx1c2hUeXBlID09IFVwZGF0ZVJlbmRlcmluZ1R5
cGU6Ok5vcm1hbCkKICAgICAgICAgICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+YXBwbHlT
Y3JvbGxpbmdUcmVlTGF5ZXJQb3NpdGlvbnMoKTsKICAgICAgICAgfQogI2VuZGlmCkBAIC01MDQs
MTMgKzUwNCwxMyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpmbHVzaExh
eWVycyhGbHVzaFR5cGUgZmx1c2hUeXBlKQogCiAgICAgICAgIGlmIChkaWRGbHVzaEFsbEZyYW1l
cykgewogICAgICAgICAgICAgc2VuZEVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVJZk5l
ZWRlZCgpOwotICAgICAgICAgICAgaW52YWxpZGF0ZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIo
KTsKKyAgICAgICAgICAgIGludmFsaWRhdGVSZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIo
KTsKICAgICAgICAgfQogCi0gICAgICAgIGlmIChtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcykK
LSAgICAgICAgICAgIHN0YXJ0TGF5ZXJGbHVzaFRocm90dGxpbmdUaW1lcigpOworICAgICAgICBp
ZiAobV9pc1Rocm90dGxpbmdSZW5kZXJpbmdVcGRhdGVzKQorICAgICAgICAgICAgc3RhcnRSZW5k
ZXJUaHJvdHRsaW5nVGltZXIoKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9sYXllckZs
dXNoVGhyb3R0bGluZ1RpbWVyLnN0b3AoKTsKKyAgICAgICAgICAgIG1fcmVuZGVyVGhyb3R0bGlu
Z1RpbWVyLnN0b3AoKTsKICAgICB9CiB9CiAKQEAgLTU0OSw2ICs1NDksNyBAQCB2b2lkIFRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzdXNwZW5kUGFpbnRpbmcoKQogICAgIEFTU0VSVCgh
bV9pc1BhaW50aW5nU3VzcGVuZGVkKTsKICAgICBtX2lzUGFpbnRpbmdTdXNwZW5kZWQgPSB0cnVl
OwogCisgICAgLy8gVGhpcyBpcyBhIHNpZ25hbCB0byBtZWRpYSBmcmFtZXdvcmtzOyBpdCBkb2Vz
IG5vdCBhY3RpdmVseSBwYXVzZSBhbnl0aGluZy4KICAgICBbbV9ob3N0aW5nTGF5ZXIgc2V0VmFs
dWU6QFlFUyBmb3JLZXk6QCJOU0NBVmlld1JlbmRlclBhdXNlZCJdOwogICAgIFtbTlNOb3RpZmlj
YXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcG9zdE5vdGlmaWNhdGlvbk5hbWU6QCJOU0NBVmll
d1JlbmRlckRpZFBhdXNlTm90aWZpY2F0aW9uIiBvYmplY3Q6bmlsIHVzZXJJbmZvOltOU0RpY3Rp
b25hcnkgZGljdGlvbmFyeVdpdGhPYmplY3Q6bV9ob3N0aW5nTGF5ZXIuZ2V0KCkgZm9yS2V5OkAi
bGF5ZXIiXV07CiB9CkBAIC02MjMsNyArNjI0LDcgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYTo6dXBkYXRlR2VvbWV0cnkoY29uc3QgSW50U2l6ZSYgdmlld1NpemUsIGJvb2wK
ICAgICAgICAgc2l6ZSA9IGNvbnRlbnRTaXplOwogICAgIH0KIAotICAgIGZsdXNoTGF5ZXJzKCk7
CisgICAgdXBkYXRlUmVuZGVyaW5nKCk7CiAKICAgICBbQ0FUcmFuc2FjdGlvbiBiZWdpbl07CiAg
ICAgW0NBVHJhbnNhY3Rpb24gc2V0RGlzYWJsZUFjdGlvbnM6WUVTXTsKQEAgLTkyOSw3ICs5MzAs
NyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjphcHBseVRyYW5zaWVudFpv
b21Ub1BhZ2UoZG91YmxlIHNjYWxlLCBGbG9hdAogICAgIHVuc2Nyb2xsZWRPcmlnaW4ubW92ZUJ5
KC11bm9ic2N1cmVkQ29udGVudFJlY3QubG9jYXRpb24oKSk7CiAgICAgbV93ZWJQYWdlLnNjYWxl
UGFnZShzY2FsZSAvIG1fd2ViUGFnZS52aWV3U2NhbGVGYWN0b3IoKSwgcm91bmRlZEludFBvaW50
KC11bnNjcm9sbGVkT3JpZ2luKSk7CiAgICAgbV90cmFuc2llbnRab29tU2NhbGUgPSAxOwotICAg
IGZsdXNoTGF5ZXJzKEZsdXNoVHlwZTo6VHJhbnNpZW50Wm9vbSk7CisgICAgdXBkYXRlUmVuZGVy
aW5nKFVwZGF0ZVJlbmRlcmluZ1R5cGU6OlRyYW5zaWVudFpvb20pOwogfQogCiB2b2lkIFRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjphZGRGZW5jZShjb25zdCBNYWNoU2VuZFJpZ2h0JiBm
ZW5jZVBvcnQpCkBAIC05MzcsNzEgKzkzOCw3MSBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhOjphZGRGZW5jZShjb25zdCBNYWNoU2VuZFJpZ2h0JiBmZW5jZVBvcnQpCiAgICAg
bV9sYXllckhvc3RpbmdDb250ZXh0LT5zZXRGZW5jZVBvcnQoZmVuY2VQb3J0LnNlbmRSaWdodCgp
KTsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6bGF5ZXJGbHVzaFJ1
bkxvb3BDYWxsYmFjaygpCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp1cGRh
dGVSZW5kZXJpbmdSdW5Mb29wQ2FsbGJhY2soKQogewotICAgIHRyYWNlUG9pbnQoTGF5ZXJGbHVz
aFJ1bkxvb3BPYnNlcnZlckVuZCwgMCk7CisgICAgdHJhY2VQb2ludChSZW5kZXJpbmdVcGRhdGVS
dW5Mb29wT2JzZXJ2ZXJFbmQsIDApOwogCi0gICAgZmx1c2hMYXllcnMoKTsKKyAgICB1cGRhdGVS
ZW5kZXJpbmcoKTsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6aW52
YWxpZGF0ZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIoKQordm9pZCBUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYTo6aW52YWxpZGF0ZVJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZlcigp
CiB7Ci0gICAgaWYgKCFtX2xheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXItPmlzU2NoZWR1bGVkKCkp
CisgICAgaWYgKCFtX3JlbmRlclVwZGF0ZVJ1bkxvb3BPYnNlcnZlci0+aXNTY2hlZHVsZWQoKSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgdHJhY2VQb2ludChMYXllckZsdXNoUnVuTG9vcE9ic2Vy
dmVyRW5kLCAxKTsKKyAgICB0cmFjZVBvaW50KFJlbmRlcmluZ1VwZGF0ZVJ1bkxvb3BPYnNlcnZl
ckVuZCwgMSk7CiAKLSAgICBtX2xheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXItPmludmFsaWRhdGUo
KTsKKyAgICBtX3JlbmRlclVwZGF0ZVJ1bkxvb3BPYnNlcnZlci0+aW52YWxpZGF0ZSgpOwogfQog
Ci12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpzY2hlZHVsZUxheWVyRmx1c2hS
dW5Mb29wT2JzZXJ2ZXIoKQordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c2No
ZWR1bGVSZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIoKQogewotICAgIHRyYWNlUG9pbnQo
TGF5ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlclN0YXJ0KTsKKyAgICB0cmFjZVBvaW50KFJlbmRlcmlu
Z1VwZGF0ZVJ1bkxvb3BPYnNlcnZlclN0YXJ0KTsKICAgICAKLSAgICBtX2xheWVyRmx1c2hSdW5M
b29wT2JzZXJ2ZXItPnNjaGVkdWxlKENGUnVuTG9vcEdldEN1cnJlbnQoKSk7CisgICAgbV9yZW5k
ZXJVcGRhdGVSdW5Mb29wT2JzZXJ2ZXItPnNjaGVkdWxlKENGUnVuTG9vcEdldEN1cnJlbnQoKSk7
CiB9CiAKLWJvb2wgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmFkanVzdExheWVyRmx1
c2hUaHJvdHRsaW5nKExheWVyRmx1c2hUaHJvdHRsZVN0YXRlOjpGbGFncyBmbGFncykKK2Jvb2wg
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OmFkanVzdFJlbmRlcmluZ1VwZGF0ZVRocm90
dGxpbmcoT3B0aW9uU2V0PFJlbmRlcmluZ1VwZGF0ZVRocm90dGxlU3RhdGU+IGZsYWdzKQogewot
ICAgIGJvb2wgd2FzVGhyb3R0bGluZ0xheWVyRmx1c2hlcyA9IG1faXNUaHJvdHRsaW5nTGF5ZXJG
bHVzaGVzOwotICAgIG1faXNUaHJvdHRsaW5nTGF5ZXJGbHVzaGVzID0gZmxhZ3MgJiBMYXllckZs
dXNoVGhyb3R0bGVTdGF0ZTo6RW5hYmxlZDsKLSAgICBtX2lzTGF5ZXJGbHVzaFRocm90dGxpbmdU
ZW1wb3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24gPSBmbGFncyAmIExheWVyRmx1c2hUaHJv
dHRsZVN0YXRlOjpVc2VySXNJbnRlcmFjdGluZzsKKyAgICBib29sIHdhc1Rocm90dGxpbmdSZW5k
ZXJpbmcgPSBtX2lzVGhyb3R0bGluZ1JlbmRlcmluZ1VwZGF0ZXM7CisgICAgbV9pc1Rocm90dGxp
bmdSZW5kZXJpbmdVcGRhdGVzID0gZmxhZ3MuY29udGFpbnMoUmVuZGVyaW5nVXBkYXRlVGhyb3R0
bGVTdGF0ZTo6RW5hYmxlZCk7CisgICAgbV9pc1JlbmRlcmluZ1VwZGF0ZVRocm90dGxpbmdUZW1w
b3JhcmlseURpc2FibGVkRm9ySW50ZXJhY3Rpb24gPSBmbGFncy5jb250YWlucyhSZW5kZXJpbmdV
cGRhdGVUaHJvdHRsZVN0YXRlOjpVc2VySXNJbnRlcmFjdGluZyk7CiAKLSAgICBpZiAod2FzVGhy
b3R0bGluZ0xheWVyRmx1c2hlcyA9PSBtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcykKKyAgICBp
ZiAod2FzVGhyb3R0bGluZ1JlbmRlcmluZyA9PSBtX2lzVGhyb3R0bGluZ1JlbmRlcmluZ1VwZGF0
ZXMpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgbV9sYXllckZsdXNoVGhyb3R0bGluZ1Rp
bWVyLnN0b3AoKTsKKyAgICBtX3JlbmRlclRocm90dGxpbmdUaW1lci5zdG9wKCk7CiAKICAgICBp
ZiAobV9sYXllclRyZWVTdGF0ZUlzRnJvemVuKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAg
IGlmIChtX2lzVGhyb3R0bGluZ0xheWVyRmx1c2hlcykgewotICAgICAgICBpbnZhbGlkYXRlTGF5
ZXJGbHVzaFJ1bkxvb3BPYnNlcnZlcigpOwotICAgICAgICBzdGFydExheWVyRmx1c2hUaHJvdHRs
aW5nVGltZXIoKTsKKyAgICBpZiAobV9pc1Rocm90dGxpbmdSZW5kZXJpbmdVcGRhdGVzKSB7Cisg
ICAgICAgIGludmFsaWRhdGVSZW5kZXJpbmdVcGRhdGVSdW5Mb29wT2JzZXJ2ZXIoKTsKKyAgICAg
ICAgc3RhcnRSZW5kZXJUaHJvdHRsaW5nVGltZXIoKTsKICAgICB9IGVsc2UKLSAgICAgICAgc2No
ZWR1bGVMYXllckZsdXNoUnVuTG9vcE9ic2VydmVyKCk7CisgICAgICAgIHNjaGVkdWxlUmVuZGVy
aW5nVXBkYXRlUnVuTG9vcE9ic2VydmVyKCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6bGF5ZXJGbHVzaFRocm90dGxpbmdJc0Fj
dGl2ZSgpIGNvbnN0Citib29sIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjpyZW5kZXJp
bmdVcGRhdGVUaHJvdHRsaW5nSXNBY3RpdmUoKSBjb25zdAogewotICAgIHJldHVybiBtX2lzVGhy
b3R0bGluZ0xheWVyRmx1c2hlcyAmJiAhbV9sYXllclRyZWVTdGF0ZUlzRnJvemVuOworICAgIHJl
dHVybiBtX2lzVGhyb3R0bGluZ1JlbmRlcmluZ1VwZGF0ZXMgJiYgIW1fbGF5ZXJUcmVlU3RhdGVJ
c0Zyb3plbjsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6c3RhcnRM
YXllckZsdXNoVGhyb3R0bGluZ1RpbWVyKCkKK3ZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWE6OnN0YXJ0UmVuZGVyVGhyb3R0bGluZ1RpbWVyKCkKIHsKLSAgICBBU1NFUlQobV9pc1Ro
cm90dGxpbmdMYXllckZsdXNoZXMpOworICAgIEFTU0VSVChtX2lzVGhyb3R0bGluZ1JlbmRlcmlu
Z1VwZGF0ZXMpOwogCiAgICAgY29uc3QgYXV0byB0aHJvdHRsZWRGbHVzaERlbGF5ID0gNTAwX21z
OwotICAgIG1fbGF5ZXJGbHVzaFRocm90dGxpbmdUaW1lci5zdGFydE9uZVNob3QodGhyb3R0bGVk
Rmx1c2hEZWxheSk7CisgICAgbV9yZW5kZXJUaHJvdHRsaW5nVGltZXIuc3RhcnRPbmVTaG90KHRo
cm90dGxlZEZsdXNoRGVsYXkpOwogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhOjpsYXllckZsdXNoVGhyb3R0bGluZ1RpbWVyRmlyZWQoKQordm9pZCBUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYTo6cmVuZGVyVGhyb3R0bGluZ1RpbWVyRmlyZWQoKQogewogICAgIGlm
IChtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4pCiAgICAgICAgIHJldHVybjsKLSAgICBzY2hlZHVs
ZUxheWVyRmx1c2hSdW5Mb29wT2JzZXJ2ZXIoKTsKKyAgICBzY2hlZHVsZVJlbmRlcmluZ1VwZGF0
ZVJ1bkxvb3BPYnNlcnZlcigpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmgKaW5kZXggNDI1YWJmYzFhOTE3MTliOGQyNWNkZWI3NTk5NGU1OGUxNjY0ZWE5ZS4uMWJh
ZmFmMDg0MzUxYjZlNTc0MGQ2OWJjNWY0OTRiYmMwY2ZhODUxZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgK
QEAgLTE2OSw3ICsxNjksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgYXR0YWNoUm9vdEdyYXBoaWNz
TGF5ZXIoV2ViQ29yZTo6RnJhbWUmLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopIGZpbmFsOwogICAgIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9u
aXphdGlvbigpIGZpbmFsOwotICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2go
KSBmaW5hbDsKKyAgICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkgZmluYWw7CiAgICAg
Ym9vbCBuZWVkc0ltbWVkaWF0ZVJlbmRlcmluZ1VwZGF0ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHRydWU7IH0KIAogICAgIENvbXBvc2l0aW5nVHJpZ2dlckZsYWdzIGFsbG93ZWRDb21wb3NpdGlu
Z1RyaWdnZXJzKCkgY29uc3QgZmluYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQppbmRleCAzYjVmYjgyZTIw
YWVjYzA4MmRhZDdiZTRiOTQxMDE4Njk2MzFhZmJkLi44OWUwMTQyY2EwMTg2NmNmZmI2NTFjZmRj
YjkzOTY0N2ZmYTlkOTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC05NDIsMTAgKzk0MiwxMCBA
QCB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXph
dGlvbigpCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIAotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JK
Q19FWENFUFRJT05TOwotICAgIFttX3dlYlZpZXcgX3NjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZs
dXNoXTsKKyAgICBbbV93ZWJWaWV3IF9zY2hlZHVsZVVwZGF0ZVJlbmRlcmluZ107CiAgICAgRU5E
X0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCmluZGV4IGRmZTY2M2ZjOWI1ZWYyODk3YWRkNDg5ZjUyMTM2MDg2YWJm
ODMyNTkuLjc4NTAxOTBlNDFjYTAzMDFjZmMzMjRmNWVkMGRiY2U3ZGFiODI0NTEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTkyODgsNyArOTI4OCw3
IEBAIGJvb2wgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OmZsdXNoTGF5ZXJzKCkKICAgICByZXR1cm4g
ZmFsc2U7CiB9CiAKLS0gKHZvaWQpX3NjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoCistICh2
b2lkKV9zY2hlZHVsZVVwZGF0ZVJlbmRlcmluZwogewogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgaWYgKF9wcml2YXRlLT5jbG9zaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
V2ViVmlldy9XZWJWaWV3RGF0YS5oCmluZGV4IDY4MDM3YzA2ZWZiNzg4N2M0YmQ1YzI1M2FhNjlh
ZDQyZjNkZTZkYWMuLmUyZmRlNDU2NTYzNjhjZDRkYzJjNmQwZWY0ZmI2NWEyYmEzMjE0MTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAor
KysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKQEAgLTEz
MCw2ICsxMzAsNyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IExheWVy
Rmx1c2hDb250cm9sbGVyKHdlYlZpZXcpKTsKICAgICB9CiAgICAgCisgICAgLy8gRklYTUU6IFJl
bmFtZSB0byB1c2UgJ3VwZGF0ZVJlbmRlcmluZycgdGVybWlub2xvZ3kuCiAgICAgYm9vbCBmbHVz
aExheWVycygpOwogICAgIAogICAgIHZvaWQgc2NoZWR1bGVMYXllckZsdXNoKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oIGIv
U291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViVmlldy9XZWJWaWV3SW50ZXJuYWwuaAppbmRleCA4
ZWM3OTk5OWUzOWFiZTdmODFiZjM1NGZmMTkzNzgxYjY5MmU5ZTg2Li41NmM4ZDU2MjkwZGRjZWE0
YThjOWMwZGMwMmYwOGZlOWE0Yjg4ODhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9XZWJWaWV3L1dlYlZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL1dlYlZpZXcvV2ViVmlld0ludGVybmFsLmgKQEAgLTEyOCw3ICsxMjgsNyBAQCBPQkpDX0NM
QVNTIE5TVGV4dEFsdGVybmF0aXZlczsKIAogLSAoQk9PTClfbmVlZHNPbmVTaG90RHJhd2luZ1N5
bmNocm9uaXphdGlvbjsKIC0gKHZvaWQpX3NldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6
YXRpb246KEJPT0wpbmVlZHNTeW5jaHJvbml6YXRpb247Ci0tICh2b2lkKV9zY2hlZHVsZUNvbXBv
c2l0aW5nTGF5ZXJGbHVzaDsKKy0gKHZvaWQpX3NjaGVkdWxlVXBkYXRlUmVuZGVyaW5nOwogLSAo
Qk9PTClfZmx1c2hDb21wb3NpdGluZ0NoYW5nZXM7CiAKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05f
UEFORUwpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBiMTc0MTE0NjRhZGQ1MTMzNTBkNDU1ZGY2
YzM0NTQzOGZkZDdmN2I4Li43MWI0ZWNkMGMwMWFmYTA2NWZkZDMxYzFlMzZhYmY0Y2JlYWFhZjc2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTc0Niw3ICs3NDYsNyBAQCB2b2lkIFdlYkNocm9t
ZUNsaWVudDo6YXR0YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKEdyYXBoaWNzTGF5ZXIqKQog
ICAgIC8vIEZJWE1FOiBJZiB3ZSB3YW50IHZpZXctcmVsYXRpdmUgcGFnZSBvdmVybGF5cyBpbiBM
ZWdhY3kgV2ViS2l0IG9uIFdpbmRvd3MsIHRoaXMgd291bGQgYmUgdGhlIHBsYWNlIHRvIGhvb2sg
dGhlbSB1cC4KIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNjaGVkdWxlQ29tcG9zaXRpbmdM
YXllckZsdXNoKCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0
ZSgpCiB7CiAgICAgbV93ZWJWaWV3LT5mbHVzaFBlbmRpbmdHcmFwaGljc0xheWVyQ2hhbmdlc1Nv
b24oKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZWMzZDE3MzE1N2YzN2I2MDFmMjYwOTc0NWFh
OTEzNTE5ZjViOGE4Ny4uZWQ1NjU1ZDBhNGYxNmYzZjc3MzJhZTVjZjdlMTYyZjkzYmQ1Y2VhMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEzMyw3ICsxMzMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9uKCkgZmluYWwgeyB9CiAgICAgLy8g
U2V0cyBhIGZsYWcgdG8gc3BlY2lmeSB0aGF0IHRoZSB2aWV3IG5lZWRzIHRvIGJlIHVwZGF0ZWQs
IHNvIHdlIG5lZWQKICAgICAvLyB0byBkbyBhbiBlYWdlciBsYXlvdXQgYmVmb3JlIHRoZSBkcmF3
aW5nLgotICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBmaW5hbDsKKyAg
ICB2b2lkIHNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkgZmluYWw7CiAKICNpZiBQTEFURk9STShX
SU4pICYmIFVTRShBVkZPVU5EQVRJT04pCiAgICAgV2ViQ29yZTo6R3JhcGhpY3NEZXZpY2VBZGFw
dGVyKiBncmFwaGljc0RldmljZUFkYXB0ZXIoKSBjb25zdCBmaW5hbDsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0NmUxMzQwZDc1YTVjN2Y1NGRk
N2E1YjAzNjE0YTQ4NDM2YzJhOTU4Li5kMGE0MDhjZjQ1OWJhZWI5OWYzNWQwZThmZDQ5ZjdhM2U0
NjNmOTIzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDItMTcgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNl
ckBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBmcm9tICJsYXllciBmbHVzaCIgdGVybWlub2xv
Z3kgdG8gInJlbmRlcmluZyB1cGRhdGUiCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDc4NzAKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9u
LgorCisgICAgICAgIFJlbmFtZSB2YXJpb3VzIGZ1bmN0aW9ucyBhbmQgbWVtYmVyIHZhcmlhYmxl
cyB0byBtb3ZlIGF3YXkgZnJvbSB0aGUgbGVnYWN5ICJsYXllciBmbHVzaCIKKyAgICAgICAgdGVy
bWlub2xvZ3kgYW5kIGluc3RlYWQgdXNlICJyZW5kZXJpbmcgdXBkYXRlIiwgbWF0Y2hpbmcgUGFn
ZTo6dXBkYXRlUmVuZGVyaW5nKCkuIFRoZSBmYWN0CisgICAgICAgIHRoYXQgd2UgaGF2ZSBsYXll
cnMgaXMgYW4gaW1wbGVtZW50YXRpb24gZGV0YWlsLgorICAgICAgICAKKyAgICAgICAgQ2hhbmdl
IExheWVyRmx1c2hUaHJvdHRsaW5nU3RhdGUgdG8gYmUgYW4gT3B0aW9uU2V0PD4uCisKKyAgICAg
ICAgKiBUcmFjaW5nL1N5c3RlbVRyYWNlUG9pbnRzLnBsaXN0OgorCiAyMDIwLTAyLTE3ICBCcmVu
dCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBXZWJLaXQg
VG9vbHMgdG8gaXNzdWUgbWFjaCBleHRlbnNpb25zIGFzIG5lZWRlZApkaWZmIC0tZ2l0IGEvVG9v
bHMvVHJhY2luZy9TeXN0ZW1UcmFjZVBvaW50cy5wbGlzdCBiL1Rvb2xzL1RyYWNpbmcvU3lzdGVt
VHJhY2VQb2ludHMucGxpc3QKaW5kZXggMWUzYjJiYjI1NDA2OGI2OWM0ZGRmMGNlMDYwNTIxMGFh
NWI0ODQ3YS4uMmI1M2I0MmNlZWI5YmY3ZDNjNzI5NjZmMmJkYTJiOTMxYjZmZjg0ZiAxMDA2NDQK
LS0tIGEvVG9vbHMvVHJhY2luZy9TeXN0ZW1UcmFjZVBvaW50cy5wbGlzdAorKysgYi9Ub29scy9U
cmFjaW5nL1N5c3RlbVRyYWNlUG9pbnRzLnBsaXN0CkBAIC0zNTksNyArMzU5LDcgQEAKICAgICAg
ICAgICAgICA8L2RpY3Q+CiAgICAgICAgICAgICAgPGRpY3Q+CiAgICAgICAgICAgICAgICAgIDxr
ZXk+TmFtZTwva2V5PgotICAgICAgICAgICAgICAgICA8c3RyaW5nPkxheWVyIGZsdXNoIHJ1bmxv
b3Agb2JzZXJ2ZXI8L3N0cmluZz4KKyAgICAgICAgICAgICAgICAgPHN0cmluZz5SZW5kZXJpbmcg
dXBkYXRlIHJ1bmxvb3Agb2JzZXJ2ZXI8L3N0cmluZz4KICAgICAgICAgICAgICAgICAgPGtleT5U
eXBlPC9rZXk+CiAgICAgICAgICAgICAgICAgIDxzdHJpbmc+SW50ZXJ2YWw8L3N0cmluZz4KICAg
ICAgICAgICAgICAgICAgPGtleT5Db21wb25lbnQ8L2tleT4K
</data>

          </attachment>
      

    </bug>

</bugzilla>