<?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>103296</bug_id>
          
          <creation_ts>2012-11-26 14:17:05 -0800</creation_ts>
          <short_desc>remove unused PlatformGestureCurve code</short_desc>
          <delta_ts>2012-11-28 14:57:16 -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>Platform</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Robert Kroeger">rjkroege</reporter>
          <assigned_to name="Robert Kroeger">rjkroege</assigned_to>
          <cc>abarth</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>rakuco</cc>
    
    <cc>rjkroege</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>775883</commentid>
    <comment_count>0</comment_count>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2012-11-26 14:17:05 -0800</bug_when>
    <thetext>Chromium now uses embedder-provided gesture animation curves. As a PlatformGestureCurve interfaces and implementations are not required.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776749</commentid>
    <comment_count>1</comment_count>
      <attachid>176268</attachid>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2012-11-27 07:58:59 -0800</bug_when>
    <thetext>Created attachment 176268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777084</commentid>
    <comment_count>2</comment_count>
      <attachid>176268</attachid>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2012-11-27 12:04:28 -0800</bug_when>
    <thetext>Comment on attachment 176268
Patch

abarth: could you take a look please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778249</commentid>
    <comment_count>3</comment_count>
      <attachid>176268</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-28 13:05:02 -0800</bug_when>
    <thetext>Comment on attachment 176268
Patch

Rejecting attachment 176268 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
s/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 154.

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;, &apos;--chromium&apos;, &apos;--force-update&apos;]&quot; exit_code: 9
resolved this problem run &quot;git rebase --continue&quot;.
If you would prefer to skip this patch, instead run &quot;git rebase --skip&quot;.
To restore the original branch and stop rebasing run &quot;git rebase --abort&quot;.

rebase refs/remotes/origin/master: command returned error: 1

Died at Tools/Scripts/update-webkit line 154.

Full output: http://queues.webkit.org/results/15028539</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778388</commentid>
    <comment_count>4</comment_count>
      <attachid>176268</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-28 14:57:12 -0800</bug_when>
    <thetext>Comment on attachment 176268
Patch

Clearing flags on attachment: 176268

Committed r136063: &lt;http://trac.webkit.org/changeset/136063&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778389</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-28 14:57:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176268</attachid>
            <date>2012-11-27 07:58:59 -0800</date>
            <delta_ts>2012-11-28 14:57:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-103296-20121127105636.patch</filename>
            <type>text/plain</type>
            <size>52532</size>
            <attacher name="Robert Kroeger">rjkroege</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NzIxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGM5MmVmNDJkYTJhNDA2
ZDg3MmE5YTBjMzdiYjgxYWVlNDNmOWQ1NS4uODg4NzFkNmIwNmIyMmI4ZWNlOTk5ZDAzY2IyODQ5
NzBlOGRkZDEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTExLTI3ICBSb2Jl
cnQgS3JvZWdlciAgPHJqa3JvZWdlQGNocm9taXVtLm9yZz4KKworICAgICAgICByZW1vdmUgdW51
c2VkIFBsYXRmb3JtR2VzdHVyZUN1cnZlIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzI5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzIENMcyBoYXZlIG1hZGUgdGhlIENocm9taXVt
IGVtYmVkZGVyIHByb3ZpZGUgZ2VzdHVyZSBmbGluZworICAgICAgICBjdXJ2ZSBpbXBsZW1lbnRh
dGlvbiB0byBXZWJLaXQuIENvbnNlcXVlbnRseSBubyBwbGF0Zm9ybSB1c2VzIHRoZQorICAgICAg
ICBnZXN0dXJhbCBmbGluZyBjb2RlIGN1cnJlbnRseSBmb3VuZCBpbiBXZWJLaXQuIFRoaXMgQ0wg
cmVtb3ZlcyB0aGlzIGNvZGUuCisKKyAgICAgICAgQ29kZSByZW1vdmFsIG9ubHk6IGNvdmVyZWQg
YnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAg
KiBwbGF0Zm9ybS9BY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb24uY3BwOiBSZW1vdmVkLgor
ICAgICAgICAqIHBsYXRmb3JtL0FjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbi5oOiBSZW1v
dmVkLgorICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtR2VzdHVyZUN1cnZlLmg6IFJlbW92ZWQu
CisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXQuaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwOiBSZWZlcmVuY2Vz
IHRvIHJlbW92ZWQgY29kZSByZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1h
dG9yTm9uZS5oOgorICAgICAgICAqIHBsYXRmb3JtL1RvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVD
dXJ2ZS5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vVG91Y2hGbGluZ1BsYXRmb3Jt
R2VzdHVyZUN1cnZlLmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vV2hlZWxGbGluZ1Bs
YXRmb3JtR2VzdHVyZUN1cnZlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9XaGVl
bEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9jaHJvbWl1bS9zdXBwb3J0L1BsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeS5jcHA6IFJlbW92
ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9QbGF0Zm9ybUdlc3R1cmVD
dXJ2ZUZhY3RvcnkuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9zdXBw
b3J0L1dlYkZsaW5nQW5pbWF0b3JUb0dlc3R1cmVDdXJ2ZUFkYXB0ZXIuaDogUmVtb3ZlZC4KKwog
MjAxMi0xMS0yNiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkLiBGaXggUXQgbWluaW1hbCBjb21waWxhdGlvbiBhZnRlciByMTM1NzEz
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAzZWJkOTdjZDU5OGU5ZDhiYWMyMWE2ODZm
NWRhNzYyOGU4ZGExOGE5Li4yNzlkYzBiNzdiNjVkZDRlMWFkMGI2ZDU1MzA4Yzk3NjQ2YjExYzQ1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTExLTI3
ICBSb2JlcnQgS3JvZWdlciAgPHJqa3JvZWdlQGNocm9taXVtLm9yZz4KKworICAgICAgICByZW1v
dmUgdW51c2VkIFBsYXRmb3JtR2VzdHVyZUN1cnZlIGNvZGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMzI5NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFByZXZpb3VzIENMcyBoYXZlIG1hZGUgdGhlIENo
cm9taXVtIGVtYmVkZGVyIHByb3ZpZGUgZ2VzdHVyZSBmbGluZworICAgICAgICBjdXJ2ZSBpbXBs
ZW1lbnRhdGlvbiB0byBXZWJLaXQuIENvbnNlcXVlbnRseSBubyBwbGF0Zm9ybSB1c2VzIHRoZQor
ICAgICAgICBnZXN0dXJhbCBmbGluZyBjb2RlIGN1cnJlbnRseSBmb3VuZCBpbiBXZWJLaXQuIFRo
aXMgQ0wgcmVtb3ZlcyB0aGlzIGNvZGUuCisKKyAgICAgICAgQ29kZSByZW1vdmFsIG9ubHk6IGNv
dmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwaToKKyAgICAg
ICAgKiB0ZXN0cy9QbGF0Zm9ybUdlc3R1cmVDdXJ2ZVRlc3QuY3BwOiBSZW1vdmVkLgorCiAyMDEy
LTExLTI2ICBTY290dCBWaW9sZXQgIDxza3lAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJv
bWl1bV0gTWFrZSB1c2VfZGVmYXVsdF9yZW5kZXJfdGhlbWUgY29tcGlsZSB0aGUgcmlnaHQgc2V0
IG9mIGZpbGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDZhOTlmYTI2YjA2NWFkNDRmZjY1Y2Rh
MDVkN2IwMWI0YjhjNmQ4OWYuLjVhNzdlMGIxOTUwYzY0NzMzMGZlOTY1OGFlNDcyYWRhNzI1YmEx
MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0yNTQ5LDkgKzI1NDksNyBAQCBFTkRJRigpCiAK
IElGIChFTkFCTEVfU01PT1RIX1NDUk9MTElORykKICAgICBMSVNUKEFQUEVORCBXZWJDb3JlX1NP
VVJDRVMKLSAgICAgICAgcGxhdGZvcm0vQWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uLmNw
cAogICAgICAgICBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCi0gICAgICAgIHBsYXRm
b3JtL1RvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5jcHAKICAgICApCiBFTkRJRiAoKQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtIGIvU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCA3MGUxMDg3MzBkNzJhNzExM2Q0MmYw
OWZjYjkyZTFjMzAzNTBjYzIyLi5mNDMwOTM0OTY0ODI2YTIyZGU0Mjg2MDQyMzJiMTEzYWY1MjA3
Mzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTUyMjcsMTAgKzUyMjcsNiBA
QCB3ZWJjb3JlX3BsYXRmb3JtX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL1ZlY3Rvck1hdGguaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vWmVy
b1BvbGUuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9aZXJvUG9sZS5oIFwK
LQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9BY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb24u
Y3BwIFwKLQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9BY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmlt
YXRpb24uaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1HZXN0dXJlQ3VydmUu
aCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXQu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQXJlbmEuY3BwIFwKIAlTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9BcmVuYS5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Bc3luY0ZpbGVT
eXN0ZW0uY3BwIFwKQEAgLTU3NTgsOCArNTc1NCw2IEBAIHdlYmNvcmVfcGxhdGZvcm1fc291cmNl
cyArPSBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1FdmVudC5jcHAgXAogCVNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtRXZlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGxhdGZvcm1FeHBvcnRNYWNyb3MuaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1HZXN0dXJlQ3VydmUuaCBcCi0JU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1HZXN0dXJlRXZlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1L
ZXlib2FyZEV2ZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5
SW5zdHJ1bWVudGF0aW9uLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1N
ZW1vcnlJbnN0cnVtZW50YXRpb24uaCBcCkBAIC01ODkwLDggKzU4ODQsNiBAQCB3ZWJjb3JlX3Bs
YXRmb3JtX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVW5pY29k
ZVJhbmdlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Vbmljb2RlUmFuZ2Uu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Xcml0aW5nTW9kZS5oIFwKLQlTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuY3BwIFwK
LQlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUu
aCBcCiAJU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGhlbWVUeXBlcy5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9UaHJlYWRDaGVjay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9U
aHJlYWRHbG9iYWxEYXRhLmNwcCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMjk0ODg1Y2RlYzAxNjhj
MWI5NjIwM2M3NjY1Y2FhMjIzOTVmY2RmZS4uODRlYWMxYWJhN2RlZWNkZWVjMDA1YWU5YmZhYTNi
Mjk2OTc5ZmI5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNDQ0Niw4ICs0NDQ2LDYgQEAKICAgICAg
ICAgICAgICdodG1sL3RyYWNrL1dlYlZUVFRva2VuaXplci5oJywKICAgICAgICAgXSwKICAgICAg
ICAgJ3dlYmNvcmVfcGxhdGZvcm1fZmlsZXMnOiBbCi0gICAgICAgICAgICAncGxhdGZvcm0vQWN0
aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uLmNwcCcsCi0gICAgICAgICAgICAncGxhdGZvcm0v
QWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3Jt
L0FyZW5hLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vQXJlbmEuaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vQXN5bmNGaWxlU3lzdGVtLmNwcCcsCkBAIC00NDkzLDcgKzQ0OTEsNiBAQAog
ICAgICAgICAgICAgJ3BsYXRmb3JtL01lbW9yeVByZXNzdXJlSGFuZGxlci5jcHAnLAogICAgICAg
ICAgICAgJ3BsYXRmb3JtL01JTUVUeXBlUmVnaXN0cnkuY3BwJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9QYXN0ZWJvYXJkLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL1BsYXRmb3JtR2VzdHVy
ZUN1cnZlLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1BsYXRmb3JtTWVtb3J5SW5zdHJ1bWVu
dGF0aW9uLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1NZW1vcnlJbnN0cnVt
ZW50YXRpb24uaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cCcsCkBAIC00NTI5LDEyICs0NTI2LDggQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS9UaHJlYWRU
aW1lcnMuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9UaHJlYWRUaW1lcnMuaCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vVGltZXIuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9Ub3Vj
aEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9U
b3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0v
VVVJRC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL1VVSUQuaCcsCi0gICAgICAgICAgICAn
cGxhdGZvcm0vV2hlZWxGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmNwcCcsCi0gICAgICAgICAg
ICAncGxhdGZvcm0vV2hlZWxGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL1dpZGdldC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2FuaW1hdGlv
bi9BbmltYXRpb24uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9hbmltYXRpb24vQW5pbWF0
aW9uTGlzdC5jcHAnLApAQCAtODExNSwxMSArODEwOCw4IEBACiAgICAgICAgICAgICAncGxhdGZv
cm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRENocm9taXVtLmNwcCcsCiAgICAg
ICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9HcmFwaGljc0NvbnRleHQzRFByaXZh
dGUuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L0dyYXBoaWNz
Q29udGV4dDNEUHJpdmF0ZS5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBw
b3J0L1BsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeS5jcHAnLAotICAgICAgICAgICAgJ3BsYXRm
b3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5LmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViQXVkaW9CdXMuY3BwJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYkRhdGEuY3BwJywKLSAgICAg
ICAgICAgICdwbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYkZsaW5nQW5pbWF0b3JUb0dlc3R1
cmVDdXJ2ZUFkYXB0ZXIuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0vc3VwcG9y
dC9XZWJIVFRQQm9keS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2Nocm9taXVtL3N1cHBv
cnQvV2ViSFRUUExvYWRJbmZvLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vY2hyb21pdW0v
c3VwcG9ydC9XZWJNZWRpYUNvbnN0cmFpbnRzLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9BY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uLmNwcApkZWxl
dGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWE5MzMyNjg2YTA3OTU1YmRiNDI5NGQ5ODE5YWE4
NzMxY2NjYTY4ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9BY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb24u
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsODkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklC
VVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLQotI2luY2x1ZGUgIkFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbi5oIgotCi0j
aW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlQ3VydmUuaCIKLSNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1
cmVDdXJ2ZVRhcmdldC5oIgotCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSAiVHJh
Y2VFdmVudC5oIgotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUGFzc093blB0cjxB
Y3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb24+IEFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1h
dGlvbjo6Y3JlYXRlKFBhc3NPd25QdHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+IGN1cnZlLCBQbGF0
Zm9ybUdlc3R1cmVDdXJ2ZVRhcmdldCogdGFyZ2V0KQotewotICAgIHJldHVybiBhZG9wdFB0cihu
ZXcgQWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uKGN1cnZlLCB0YXJnZXQpKTsKLX0KLQot
UGFzc093blB0cjxBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb24+IEFjdGl2ZVBsYXRmb3Jt
R2VzdHVyZUFuaW1hdGlvbjo6Y3JlYXRlKFBhc3NPd25QdHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+
IGN1cnZlLCBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZVRhcmdldCogdGFyZ2V0LCBkb3VibGUgc3RhcnRU
aW1lKQotewotICAgIHJldHVybiBhZG9wdFB0cihuZXcgQWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5p
bWF0aW9uKGN1cnZlLCB0YXJnZXQsIHN0YXJ0VGltZSkpOwotfQotCi1BY3RpdmVQbGF0Zm9ybUdl
c3R1cmVBbmltYXRpb246On5BY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb24oKQotewotI2lm
IFBMQVRGT1JNKENIUk9NSVVNKQotICAgIFRSQUNFX0VWRU5UX0FTWU5DX0VORDAoImlucHV0Iiwg
Ikdlc3R1cmVBbmltYXRpb24iLCB0aGlzKTsKLSNlbmRpZgotfQotCi1BY3RpdmVQbGF0Zm9ybUdl
c3R1cmVBbmltYXRpb246OkFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbihQYXNzT3duUHRy
PFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBjdXJ2ZSwgUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXQq
IHRhcmdldCkKLSAgICA6IG1fc3RhcnRUaW1lKDApCi0gICAgLCBtX3dhaXRpbmdGb3JGaXJzdFRp
Y2sodHJ1ZSkKLSAgICAsIG1fY3VydmUoY3VydmUpCi0gICAgLCBtX3RhcmdldCh0YXJnZXQpCi17
Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0gICAgVFJBQ0VfRVZFTlRfQVNZTkNfQkVHSU4xKCJp
bnB1dCIsICJHZXN0dXJlQW5pbWF0aW9uIiwgdGhpcywgImN1cnZlIiwgbV9jdXJ2ZS0+ZGVidWdO
YW1lKCkpOwotI2VuZGlmCi19Ci0KLUFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbjo6QWN0
aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uKFBhc3NPd25QdHI8UGxhdGZvcm1HZXN0dXJlQ3Vy
dmU+IGN1cnZlLCBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZVRhcmdldCogdGFyZ2V0LCBkb3VibGUgc3Rh
cnRUaW1lKQotICAgIDogbV9zdGFydFRpbWUoc3RhcnRUaW1lKQotICAgICwgbV93YWl0aW5nRm9y
Rmlyc3RUaWNrKGZhbHNlKQotICAgICwgbV9jdXJ2ZShjdXJ2ZSkKLSAgICAsIG1fdGFyZ2V0KHRh
cmdldCkKLXsKLSNpZiBQTEFURk9STShDSFJPTUlVTSkKLSAgICBUUkFDRV9FVkVOVF9BU1lOQ19C
RUdJTjEoImlucHV0IiwgIkdlc3R1cmVBbmltYXRpb24iLCB0aGlzLCAiY3VydmUiLCBtX2N1cnZl
LT5kZWJ1Z05hbWUoKSk7Ci0jZW5kaWYKLX0KLQotYm9vbCBBY3RpdmVQbGF0Zm9ybUdlc3R1cmVB
bmltYXRpb246OmFuaW1hdGUoZG91YmxlIHRpbWUpCi17Ci0gICAgaWYgKG1fd2FpdGluZ0ZvckZp
cnN0VGljaykgewotICAgICAgICBtX3N0YXJ0VGltZSA9IHRpbWU7Ci0gICAgICAgIG1fd2FpdGlu
Z0ZvckZpcnN0VGljayA9IGZhbHNlOwotICAgIH0KLSAgICAvLyBBbGwgUGxhdGZvcm1HZXN0dXJl
Q3VydmVzIGFzc3VtZSB6ZXJvLWJhc2VkIHRpbWUsIHNvIHdlIHN1YnRyYWN0Ci0gICAgLy8gdGhl
IGFuaW1hdGlvbiBzdGFydCB0aW1lIGJlZm9yZSBwYXNzaW5nIHRvIHRoZSBjdXJ2ZS4KLSAgICBy
ZXR1cm4gbV9jdXJ2ZS0+YXBwbHkodGltZSAtIG1fc3RhcnRUaW1lLCBtX3RhcmdldCk7Ci19Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0FjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vQWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDIxZjE5OWMwN2ExZmNmMzRjNThjMTI0OWYyYjg0ZTRjNTcxMWJjYTQuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vQWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uLmgKKysrIC9kZXYvbnVs
bApAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0g
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBBY3RpdmVQbGF0Zm9ybUdlc3R1cmVB
bmltYXRpb25faAotI2RlZmluZSBBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb25faAotCi0j
aW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3Mg
UGxhdGZvcm1HZXN0dXJlQ3VydmU7Ci1jbGFzcyBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZVRhcmdldDsK
LQotLy8gSW1wbGVtZW50cyBhIGdlc3R1cmUgYW5pbWF0aW9uIChmbGluZyBzY3JvbGwsIGV0Yy4p
IHVzaW5nIGEgY3VydmUgd2l0aCBhIGdlbmVyaWMgaW50ZXJmYWNlCi0vLyB0byBkZWZpbmUgdGhl
IGFuaW1hdGlvbiBwYXJhbWV0ZXJzIGFzIGEgZnVuY3Rpb24gb2YgdGltZSwgYW5kIGFwcGxpZXMg
dGhlIGFuaW1hdGlvbgotLy8gdG8gYSB0YXJnZXQsIGFnYWluIHZpYSBhIGdlbmVyaWMgaW50ZXJm
YWNlLiBJdCBpcyBhc3N1bWVkIHRoYXQgYW5pbWF0ZSgpIGlzIGNhbGxlZAotLy8gb24gYSBtb3Jl
LW9yLWxlc3MgcmVndWxhciBiYXNpcyBieSB0aGUgb3duZXIuCi1jbGFzcyBBY3RpdmVQbGF0Zm9y
bUdlc3R1cmVBbmltYXRpb24gewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEFjdGl2ZVBsYXRm
b3JtR2VzdHVyZUFuaW1hdGlvbik7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8QWN0
aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uPiBjcmVhdGUoUGFzc093blB0cjxQbGF0Zm9ybUdl
c3R1cmVDdXJ2ZT4sIFBsYXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0Kik7Ci0gICAgc3RhdGljIFBh
c3NPd25QdHI8QWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uPiBjcmVhdGUoUGFzc093blB0
cjxQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4sIFBsYXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0KiwgZG91
YmxlIHN0YXJ0VGltZSk7Ci0gICAgfkFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbigpOwot
Ci0gICAgYm9vbCBhbmltYXRlKGRvdWJsZSB0aW1lKTsKLQotcHJpdmF0ZToKLSAgICAvLyBBc3N1
bWVzIGEgdmFsaWQgUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXQgdGhhdCBvdXRsaXZlcyB0aGUg
YW5pbWF0aW9uLgotICAgIEFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFuaW1hdGlvbihQYXNzT3duUHRy
PFBsYXRmb3JtR2VzdHVyZUN1cnZlPiwgUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXQqKTsKLSAg
ICBBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb24oUGFzc093blB0cjxQbGF0Zm9ybUdlc3R1
cmVDdXJ2ZT4sIFBsYXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0KiwgZG91YmxlIHN0YXJ0VGltZSk7
Ci0KLSAgICBkb3VibGUgbV9zdGFydFRpbWU7Ci0gICAgYm9vbCBtX3dhaXRpbmdGb3JGaXJzdFRp
Y2s7Ci0gICAgT3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBtX2N1cnZlOwotICAgIFBsYXRm
b3JtR2VzdHVyZUN1cnZlVGFyZ2V0KiBtX3RhcmdldDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybUdlc3R1cmVDdXJ2ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1HZXN0
dXJlQ3VydmUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDYxMjRkODYwMDllYzY5
ZGRiYThiNTRiZDFhNzAzMDMwODJiNmJlMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUdlc3R1cmVD
dXJ2ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
Ci0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lm
bmRlZiBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZV9oCi0jZGVmaW5lIFBsYXRmb3JtR2VzdHVyZUN1cnZl
X2gKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZVRh
cmdldDsKLQotLy8gQWJzdHJhY3QgaW50ZXJmYWNlIGZvciBjdXJ2ZXMgdXNlZCBieSBBY3RpdmVQ
bGF0Zm9ybUdlc3R1cmVBbmltYXRpb24uIEEKLS8vIFBsYXRmb3JtR2VzdHVyZUN1cnZlIGRlZmlu
ZXMgdGhlIGFuaW1hdGlvbiBwYXJhbWV0ZXJzIGFzIGEgZnVuY3Rpb24gb2YgdGltZQotLy8gKHpl
cm8tYmFzZWQpLCBhbmQgYXBwbGllcyB0aGUgcGFyYW1ldGVycyBkaXJlY3RseSB0byB0aGUgdGFy
Z2V0IG9mIHRoZQotLy8gYW5pbWF0aW9uLgotY2xhc3MgUGxhdGZvcm1HZXN0dXJlQ3VydmUgewot
cHVibGljOgotICAgIHZpcnR1YWwgflBsYXRmb3JtR2VzdHVyZUN1cnZlKCkgeyB9Ci0KLSAgICAv
LyBSZXR1cm5zIGEgbmFtZSBvZiB0aGUgY3VydmUgZm9yIHVzZSBpbiBkZWJ1Z2dpbmcuCi0gICAg
dmlydHVhbCBjb25zdCBjaGFyKiBkZWJ1Z05hbWUoKSBjb25zdCA9IDA7Ci0KLSAgICAvLyBSZXR1
cm5zIGZhbHNlIGlmIGN1cnZlIGhhcyBmaW5pc2hlZCBhbmQgY2FuIG5vIGxvbmdlciBiZSBhcHBs
aWVkLgotICAgIHZpcnR1YWwgYm9vbCBhcHBseShkb3VibGUgdGltZSwgUGxhdGZvcm1HZXN0dXJl
Q3VydmVUYXJnZXQqKSA9IDA7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1HZXN0dXJlQ3Vy
dmVUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtR2VzdHVyZUN1cnZl
VGFyZ2V0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyOGIyOTJjMThkZjA0OGUz
YzMwYTFkZjQ5NTMwNDJmYmVjMzA0NDkuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1HZXN0dXJlQ3Vy
dmVUYXJnZXQuaAorKysgL2Rldi9udWxsCkBAIC0xLDQzICswLDAgQEAKLS8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCi0g
KiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKLSAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpZm5kZWYgUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXRfaAotI2RlZmluZSBQbGF0Zm9ybUdl
c3R1cmVDdXJ2ZVRhcmdldF9oCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSW50UG9p
bnQ7Ci0KLWNsYXNzIFBsYXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0IHsKLXB1YmxpYzoKLSAgICB2
aXJ0dWFsIHZvaWQgc2Nyb2xsQnkoY29uc3QgSW50UG9pbnQmKSA9IDA7Ci0gICAgLy8gRklYTUU6
IGFkZCBpbnRlcmZhY2VzIGZvciBzY3JvbGwoKSwgZXRjLgotCi1wcm90ZWN0ZWQ6Ci0gICAgdmly
dHVhbCB+UGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXQoKSB7IH0KLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxBbmltYXRvck5vbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0b3JOb25lLmNwcAppbmRleCA2MGJhYzg0NjRiZGJiMTUzOWQ1MjQyOTk1NjgyMTQwYmE4
NDNmYTJmLi4xMjhhNTJjMjQ2OWM5NjZjZDY3MDM4MTEzMTQ2NTZlYzcxOTgzNTFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvck5vbmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5jcHAKQEAgLTU5MCwx
MiArNTkwLDYgQEAgdm9pZCBTY3JvbGxBbmltYXRvck5vbmU6OnN0b3BBbmltYXRpb25UaW1lcklm
TmVlZGVkKCkKICNlbmRpZgogfQogCi12b2lkIFNjcm9sbEFuaW1hdG9yTm9uZTo6c2Nyb2xsQnko
Y29uc3QgSW50UG9pbnQmIGxvY2F0aW9uKQotewotICAgIG1fY3VycmVudFBvc1ggKz0gbG9jYXRp
b24ueCgpOwotICAgIG1fY3VycmVudFBvc1kgKz0gbG9jYXRpb24ueSgpOwotfQotCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU01PT1RIX1NDUk9MTElORykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yTm9uZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3JOb25lLmgKaW5kZXggMzBmYTFj
N2ZhNzUxN2VmODcyNDQ2ZmRkNmM4NWViNDI5N2RlOThkYS4uYjM4ZGExNmE4NzI2MjI2NzY2NmU1
NmM0MTZmNjAwOTQ1ZWQ5ZGVlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0b3JOb25lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
QW5pbWF0b3JOb25lLmgKQEAgLTk2LDkgKzk2LDYgQEAgcHVibGljOgogICAgICAgICBkb3VibGUg
bV9tYXhpbXVtQ29hc3RUaW1lOwogICAgIH07CiAKLSAgICAvLyBQbGF0Zm9ybUdlc3R1cmVDdXJ2
ZVRhcmdldCBpbXBsZW1lbnRhdGlvbi4KLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsQnkoY29uc3Qg
SW50UG9pbnQmKTsKLQogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgdm9pZCBhbmltYXRpb25XaWxs
U3RhcnQoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgYW5pbWF0aW9uRGlkRmluaXNoKCkgeyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaEZsaW5nUGxhdGZvcm1HZXN0
dXJlQ3VydmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVG91Y2hGbGluZ1BsYXRmb3Jt
R2VzdHVyZUN1cnZlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWQzN2NmMWQ5
MTJlNzhiYTI4MmZkZmM1ZmRjM2Y3N2RjNTRhMzM1ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ub3VjaEZsaW5n
UGxhdGZvcm1HZXN0dXJlQ3VydmUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTYyICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0g
KiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OCi0gKiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMK
LSAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQotI2luY2x1ZGUgIlRvdWNoRmxp
bmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oIgotCi0jaW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlQ3Vy
dmVUYXJnZXQuaCIKLSNpbmNsdWRlIDxtYXRoLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQot
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKLQotLy8gVGhpcyBjdXJ2ZSBpbXBsZW1lbnRhdGlvbiBpcyBi
YXNlZCBvbiB0aGUgbm90aW9uIG9mIGEgc2luZ2xlLCBhYnNvbHV0ZSBjdXJ2ZSwgd2hpY2ggc3Rh
cnRzIGF0Ci0vLyBhIGxhcmdlIHZlbG9jaXR5IGFuZCBzbW9vdGhseSBkZWNyZWFzZXMgdG8gemVy
by4gRm9yIGEgZ2l2ZW4gaW5wdXQgdmVsb2NpdHksIHdlIGZpbmQgd2hlcmUgb24KLS8vIHRoZSBj
dXJ2ZSB0aGlzIHZlbG9jaXR5IG9jY3VycywgYW5kIHN0YXJ0IHRoZSBhbmltYXRpb24gYXQgdGhp
cyBwb2ludC0tLWRlbm90ZWQgYnkgKG1fdGltZU9mZnNldCwKLS8vIG1fcG9zaXRpb25PZmZzZXQp
LgotLy8KLS8vIFRoaXMgaGFzIHRoZSBlZmZlY3Qgb2YgYXV0b21hdGljYWxseSBkZXRlcm1pbmlu
ZyBhbiBhbmltYXRpb24gZHVyYXRpb24gdGhhdCBzY2FsZXMgd2l0aCBpbnB1dAotLy8gdmVsb2Np
dHksIGFzIGZhc3RlciBpbml0aWFsIHZlbG9jaXRpZXMgc3RhcnQgZWFybGllciBvbiB0aGUgY3Vy
dmUgYW5kIHRodXMgdGFrZSBsb25nZXIgdG8gcmVhY2ggdGhlIGVuZC4KLS8vIE5vIGNvbXBsaWNh
dGVkIHRpbWUgc2NhbGluZyBpcyByZXF1aXJlZC4KLS8vCi0vLyBTaW5jZSB0aGUgc3RhcnRpbmcg
dmVsb2NpdHkgaXMgaW1wbGljaXRseSBkZXRlcm1pbmVkIGJ5IG91ciBzdGFydGluZyBwb2ludCwg
d2Ugb25seSBzdG9yZSB0aGUKLS8vIHJlbGF0aXZlIG1hZ25pdHVkZSBhbmQgZGlyZWN0aW9uIG9m
IGJvdGggaW5pdGlhbCB4LSBhbmQgeS12ZWxvY2l0aWVzLCBhbmQgdXNlIHRoaXMgdG8gc2NhbGUg
dGhlCi0vLyBjb21wdXRlZCBkaXNwbGFjZW1lbnQgYXQgYW55IHBvaW50IGluIHRpbWUuIFRoaXMg
Z3VhcmFudGVlcyB0aGF0IGZsaW5nIHRyYWplY3RvcmllcyBhcmUgc3RyYWlnaHQKLS8vIGxpbmVz
IHdoZW4gdmlld2VkIGluIHgteSBzcGFjZS4gSW5pdGlhbCB2ZWxvY2l0aWVzIHRoYXQgbGllIG91
dHNpZGUgdGhlIG1heCB2ZWxvY2l0eSBhcmUgY29uc3RyYWluZWQKLS8vIHRvIHN0YXJ0IGF0IHpl
cm8gKGFuZCB0aHVzIGFyZSBpbXBsaWNpdGx5IHNjYWxlZCkuCi0vLwotLy8gVGhlIGN1cnZlIGlz
IG1vZGVsbGVkIGFzIGEgNHRoIG9yZGVyIHBvbHlub21pYWwsIHN0YXJ0aW5nIGF0IHQgPSAwLCBh
bmQgZW5kaW5nIGF0IHQgPSBtX2N1cnZlRHVyYXRpb24uCi0vLyBBdHRlbXB0cyB0byBnZW5lcmF0
ZSBwb3NpdGlvbi92ZWxvY2l0eSBlc3RpbWF0ZXMgb3V0c2lkZSB0aGlzIHJhbmdlIGFyZSB1bmRl
ZmluZWQuCi0KLXN0YXRpYyBjb25zdCBpbnQgY01heFNlYXJjaEl0ZXJhdGlvbnMgPSAyMDsKLQot
UGFzc093blB0cjxQbGF0Zm9ybUdlc3R1cmVDdXJ2ZT4gVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVy
ZUN1cnZlOjpjcmVhdGVGb3JUb3VjaFBhZChjb25zdCBGbG9hdFBvaW50JiB2ZWxvY2l0eSwgSW50
UG9pbnQgY3VtdWxhdGl2ZVNjcm9sbCkKLXsKLSAgICAvLyBUaGUgZGVmYXVsdCBwYXJhbWV0ZXJz
IGxpc3RlZCBiZWxvdyBhcmUgYSBtYXRjaGVkIHNldCwgYW5kIHNob3VsZCBub3QgYmUgY2hhbmdl
ZCBpbmRlcGVuZGVudGx5IG9mIG9uZSBhbm90aGVyLgotICAgIHJldHVybiBjcmVhdGUodmVsb2Np
dHksIC01LjcwNzYyZSswMywgMS43MmUrMDIsIDMuN2UrMDAsIDEuMywgY3VtdWxhdGl2ZVNjcm9s
bCk7Ci19Ci0KLVBhc3NPd25QdHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+IFRvdWNoRmxpbmdQbGF0
Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlRm9yVG91Y2hTY3JlZW4oY29uc3QgRmxvYXRQb2ludCYg
dmVsb2NpdHksIEludFBvaW50IGN1bXVsYXRpdmVTY3JvbGwpCi17Ci0gICAgLy8gVGhlIHRvdWNo
c2NyZWVuLXNwZWNpZmljIHBhcmFtZXRlcnMgbGlzdGVkIGJlbG93IGFyZSBhIG1hdGNoZWQgc2V0
LCBhbmQgc2hvdWxkIG5vdCBiZSBjaGFuZ2VkIGluZGVwZW5kZW50bHkgb2Ygb25lIGFub3RoZXIu
Ci0gICAgcmV0dXJuIGNyZWF0ZSh2ZWxvY2l0eSwgLTUuNzA3NjJlKzAzLCAxLjcyZSswMiwgMy43
ZSswMCwgMS4zLCBjdW11bGF0aXZlU2Nyb2xsKTsKLX0KLQotUGFzc093blB0cjxQbGF0Zm9ybUdl
c3R1cmVDdXJ2ZT4gVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlOjpjcmVhdGUoY29uc3Qg
RmxvYXRQb2ludCYgdmVsb2NpdHksIGZsb2F0IHAwLCBmbG9hdCBwMSwgZmxvYXQgcDIsIGZsb2F0
IGN1cnZlRHVyYXRpb24sIEludFBvaW50IGN1bXVsYXRpdmVTY3JvbGwpCi17Ci0gICAgcmV0dXJu
IGFkb3B0UHRyKG5ldyBUb3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUodmVsb2NpdHksIHAw
LCBwMSwgcDIsIGN1cnZlRHVyYXRpb24sIGN1bXVsYXRpdmVTY3JvbGwpKTsKLX0KLQotaW5saW5l
IGRvdWJsZSBwb3NpdGlvbihkb3VibGUgdCwgZmxvYXQqIHApCi17Ci0gICAgcmV0dXJuIHBbMF0g
KiBleHAoLXBbMl0gKiB0KSAtIHBbMV0gKiB0IC0gcFswXTsKLX0KLQotaW5saW5lIGRvdWJsZSB2
ZWxvY2l0eShkb3VibGUgdCwgZmxvYXQqIHApCi17Ci0gICAgcmV0dXJuIC1wWzBdICogcFsyXSAq
IGV4cCgtcFsyXSAqIHQpIC0gcFsxXTsKLX0KLQotVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1
cnZlOjpUb3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUoY29uc3QgRmxvYXRQb2ludCYgaW5p
dGlhbFZlbG9jaXR5LCBmbG9hdCBwMCwgZmxvYXQgcDEsIGZsb2F0IHAyLCBmbG9hdCBjdXJ2ZUR1
cmF0aW9uLCBjb25zdCBJbnRQb2ludCYgY3VtdWxhdGl2ZVNjcm9sbCkKLSAgICA6IG1fY3VtdWxh
dGl2ZVNjcm9sbChjdW11bGF0aXZlU2Nyb2xsKQotICAgICwgbV9jdXJ2ZUR1cmF0aW9uKGN1cnZl
RHVyYXRpb24pCi17Ci0gICAgQVNTRVJUKGluaXRpYWxWZWxvY2l0eSAhPSBGbG9hdFBvaW50Ojp6
ZXJvKCkpOwotCi0gICAgbV9jb2VmZmljaWVudHNbMF0gPSBwMDsgLy8gYWxwaGEKLSAgICBtX2Nv
ZWZmaWNpZW50c1sxXSA9IHAxOyAvLyBiZXRhCi0gICAgbV9jb2VmZmljaWVudHNbMl0gPSBwMjsg
Ly8gZ2FtbWEKLQotICAgIGZsb2F0IG1heEluaXRpYWxWZWxvY2l0eSA9IG1heChmYWJzKGluaXRp
YWxWZWxvY2l0eS54KCkpLCBmYWJzKGluaXRpYWxWZWxvY2l0eS55KCkpKTsKLQotICAgIC8vIEZv
cmNlIG1heEluaXRpYWxWZWxvY2l0eSB0byBsaWUgaW4gdGhlIHJhbmdlIHYoMCkgdG8gdihjdXJ2
ZUR1cmF0aW9uKSwgYW5kIGFzc3VtZSB0aGF0Ci0gICAgLy8gdGhlIGN1cnZlIHBhcmFtZXRlcnMg
ZGVmaW5lIGEgbW9ub3RvbmljYWxseSBkZWNyZWFzaW5nIHZlbG9jaXR5LCBvciBlbHNlIGJpc2Vj
dGlvbiBzZWFyY2ggbWF5Ci0gICAgLy8gZmFpbC4KLSAgICBpZiAobWF4SW5pdGlhbFZlbG9jaXR5
ID4gdmVsb2NpdHkoMCwgbV9jb2VmZmljaWVudHMpKQotICAgICAgICBtYXhJbml0aWFsVmVsb2Np
dHkgPSB2ZWxvY2l0eSgwLCBtX2NvZWZmaWNpZW50cyk7Ci0KLSAgICBpZiAobWF4SW5pdGlhbFZl
bG9jaXR5IDwgdmVsb2NpdHkobV9jdXJ2ZUR1cmF0aW9uLCBtX2NvZWZmaWNpZW50cykpCi0gICAg
ICAgIG1heEluaXRpYWxWZWxvY2l0eSA9IHZlbG9jaXR5KG1fY3VydmVEdXJhdGlvbiwgbV9jb2Vm
ZmljaWVudHMpOwotCi0gICAgLy8gV2Uga2VlcCB0cmFjayBvZiByZWxhdGl2ZSBtYWduaXR1ZGVz
IGFuZCBkaXJlY3Rpb25zIG9mIHRoZSB2ZWxvY2l0eS9kaXNwbGFjZW1lbnQgY29tcG9uZW50cyBo
ZXJlLgotICAgIG1fZGlzcGxhY2VtZW50UmF0aW8gPSBGbG9hdFBvaW50KGluaXRpYWxWZWxvY2l0
eS54KCkgLyBtYXhJbml0aWFsVmVsb2NpdHksIGluaXRpYWxWZWxvY2l0eS55KCkgLyBtYXhJbml0
aWFsVmVsb2NpdHkpOwotCi0gICAgLy8gVXNlIGJhc2ljIGJpc2VjdGlvbiB0byBlc3RpbWF0ZSB3
aGVyZSB3ZSBzaG91bGQgc3RhcnQgb24gdGhlIGN1cnZlLgotICAgIC8vIEZJWE1FOiBXb3VsZCBO
ZXd0b24ncyBtZXRob2QgYmUgYmV0dGVyPwotICAgIGNvbnN0IGRvdWJsZSBlcHNpbG9uID0gMTsg
Ly8gSXQgaXMgcHJvYmFibHkgZ29vZCBlbm91Z2ggdG8gZ2V0IHRoZSBzdGFydCBwb2ludCB0byB3
aXRoaW4gMSBwaXhlbC9zZWMuCi0gICAgZG91YmxlIHQwID0gMDsKLSAgICBkb3VibGUgdDEgPSBj
dXJ2ZUR1cmF0aW9uOwotICAgIGludCBudW1JdGVyYXRpb25zID0gMDsKLSAgICB3aGlsZSAodDAg
PCB0MSAmJiBudW1JdGVyYXRpb25zIDwgY01heFNlYXJjaEl0ZXJhdGlvbnMpIHsKLSAgICAgICAg
bnVtSXRlcmF0aW9ucysrOwotICAgICAgICBtX3RpbWVPZmZzZXQgPSAodDAgKyB0MSkgKiAwLjU7
Ci0gICAgICAgIGRvdWJsZSB2T2Zmc2V0ID0gdmVsb2NpdHkobV90aW1lT2Zmc2V0LCBtX2NvZWZm
aWNpZW50cyk7Ci0gICAgICAgIGlmIChmYWJzKG1heEluaXRpYWxWZWxvY2l0eSAtIHZPZmZzZXQp
IDwgZXBzaWxvbikKLSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGlmICh2T2Zmc2V0ID4g
bWF4SW5pdGlhbFZlbG9jaXR5KQotICAgICAgICAgICAgdDAgPSBtX3RpbWVPZmZzZXQ7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIHQxID0gbV90aW1lT2Zmc2V0OwotICAgIH0KLQotICAgIC8v
IENvbXB1dGUgY3VydmUgcG9zaXRpb24gYXQgb2Zmc2V0IHRpbWUKLSAgICBtX3Bvc2l0aW9uT2Zm
c2V0ID0gcG9zaXRpb24obV90aW1lT2Zmc2V0LCBtX2NvZWZmaWNpZW50cyk7Ci19Ci0KLVRvdWNo
RmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6flRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2
ZSgpCi17Ci19Ci0KLWNvbnN0IGNoYXIqIFRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6
ZGVidWdOYW1lKCkgY29uc3QKLXsKLSAgICByZXR1cm4gIlRvdWNocGFkRmxpbmciOwotfQotCi1i
b29sIFRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6YXBwbHkoZG91YmxlIHRpbWUsIFBs
YXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0KiB0YXJnZXQpCi17Ci0gICAgZmxvYXQgZGlzcGxhY2Vt
ZW50OwotICAgIGlmICh0aW1lIDwgMCkKLSAgICAgICAgZGlzcGxhY2VtZW50ID0gMDsKLSAgICBl
bHNlIGlmICh0aW1lICsgbV90aW1lT2Zmc2V0IDwgbV9jdXJ2ZUR1cmF0aW9uKQotICAgICAgICBk
aXNwbGFjZW1lbnQgPSBwb3NpdGlvbih0aW1lICsgbV90aW1lT2Zmc2V0LCBtX2NvZWZmaWNpZW50
cykgLSBtX3Bvc2l0aW9uT2Zmc2V0OwotICAgIGVsc2UKLSAgICAgICAgZGlzcGxhY2VtZW50ID0g
cG9zaXRpb24obV9jdXJ2ZUR1cmF0aW9uLCBtX2NvZWZmaWNpZW50cykgLSBtX3Bvc2l0aW9uT2Zm
c2V0OwotCi0gICAgLy8gS2VlcCB0cmFjayBvZiBpbnRlZ2VyIHBvcnRpb24gb2Ygc2Nyb2xsIHRo
dXMgZmFyLCBhbmQgcHJlcGFyZSBpbmNyZW1lbnQuCi0gICAgSW50UG9pbnQgc2Nyb2xsKGRpc3Bs
YWNlbWVudCAqIG1fZGlzcGxhY2VtZW50UmF0aW8ueCgpLCBkaXNwbGFjZW1lbnQgKiBtX2Rpc3Bs
YWNlbWVudFJhdGlvLnkoKSk7Ci0gICAgSW50UG9pbnQgc2Nyb2xsSW5jcmVtZW50KHNjcm9sbCAt
IG1fY3VtdWxhdGl2ZVNjcm9sbCk7Ci0gICAgbV9jdW11bGF0aXZlU2Nyb2xsID0gc2Nyb2xsOwot
Ci0gICAgaWYgKHRpbWUgKyBtX3RpbWVPZmZzZXQgPCBtX2N1cnZlRHVyYXRpb24gfHwgc2Nyb2xs
SW5jcmVtZW50ICE9IEludFBvaW50Ojp6ZXJvKCkpIHsKLSAgICAgICAgdGFyZ2V0LT5zY3JvbGxC
eShzY3JvbGxJbmNyZW1lbnQpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGYyMzhhNzE3ZDIxOWM5MGUzNjFjMzAyNmY5
MzdkNjllMDYyNDYxYmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1
cnZlLmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0g
KiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAq
Ci0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMK
LSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgotICogQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCi0gKiBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZu
ZGVmIFRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZV9oCi0jZGVmaW5lIFRvdWNoRmxpbmdQ
bGF0Zm9ybUdlc3R1cmVDdXJ2ZV9oCi0KLSNpbmNsdWRlICJGbG9hdFBvaW50LmgiCi0jaW5jbHVk
ZSAiUGxhdGZvcm1HZXN0dXJlQ3VydmUuaCIKLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5j
bHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBQ
bGF0Zm9ybUdlc3R1cmVDdXJ2ZVRhcmdldDsKLQotLy8gSW1wbGVtZW50YXRpb24gb2YgUGxhdGZv
cm1HZXN0dXJlQ3VydmUgc3VpdGFibGUgZm9yIHRvdWNoIHBhZC9zY3JlZW4tYmFzZWQKLS8vIGZs
aW5nIHNjcm9sbC4gU3RhcnRzIHdpdGggYSBmbGF0IHZlbG9jaXR5IHByb2ZpbGUgYmFzZWQgb24g
J3ZlbG9jaXR5Jywgd2hpY2gKLS8vIHRhaWxzIG9mZiB0byB6ZXJvLiBUaW1lIGlzIHNjYWxlZCB0
byB0aGF0IGR1cmF0aW9uIG9mIHRoZSBmbGluZyBpcyBwcm9wb3J0aW9uYWwKLS8vIHRoZSBpbml0
aWFsIHZlbG9jaXR5LgotY2xhc3MgVG91Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlICA6IHB1
YmxpYyBQbGF0Zm9ybUdlc3R1cmVDdXJ2ZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NPd25Q
dHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+IGNyZWF0ZUZvclRvdWNoUGFkKGNvbnN0IEZsb2F0UG9p
bnQmIHZlbG9jaXR5LCBJbnRQb2ludCBjdW11bGF0aXZlU2Nyb2xsID0gSW50UG9pbnQoKSk7Ci0g
ICAgc3RhdGljIFBhc3NPd25QdHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+IGNyZWF0ZUZvclRvdWNo
U2NyZWVuKGNvbnN0IEZsb2F0UG9pbnQmIHZlbG9jaXR5LCBJbnRQb2ludCBjdW11bGF0aXZlU2Ny
b2xsID0gSW50UG9pbnQoKSk7Ci0gICAgc3RhdGljIFBhc3NPd25QdHI8UGxhdGZvcm1HZXN0dXJl
Q3VydmU+IGNyZWF0ZShjb25zdCBGbG9hdFBvaW50JiB2ZWxvY2l0eSwgZmxvYXQgcDAsIGZsb2F0
IHAxLCBmbG9hdCBwMiwgZmxvYXQgY3VydmVEdXJhdGlvbiwgSW50UG9pbnQgY3VtdWxhdGl2ZVNj
cm9sbCA9IEludFBvaW50KCkpOwotICAgIHZpcnR1YWwgflRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1
cmVDdXJ2ZSgpOwotCi0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBkZWJ1Z05hbWUoKSBjb25zdCBP
VkVSUklERTsKLSAgICB2aXJ0dWFsIGJvb2wgYXBwbHkoZG91YmxlIG1vbm90b25pY1RpbWUsIFBs
YXRmb3JtR2VzdHVyZUN1cnZlVGFyZ2V0KikgT1ZFUlJJREU7Ci0KLXByaXZhdGU6Ci0gICAgVG91
Y2hGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlKGNvbnN0IEZsb2F0UG9pbnQmIHZlbG9jaXR5LCBm
bG9hdCBwMCwgZmxvYXQgcDEsIGZsb2F0IHAyLCBmbG9hdCBjdXJ2ZUR1cmF0aW9uLCBjb25zdCBJ
bnRQb2ludCYgY3VtdWxhdGl2ZVNjcm9sbCk7Ci0KLSAgICBGbG9hdFBvaW50IG1fZGlzcGxhY2Vt
ZW50UmF0aW87Ci0gICAgSW50UG9pbnQgbV9jdW11bGF0aXZlU2Nyb2xsOwotICAgIGZsb2F0IG1f
Y29lZmZpY2llbnRzWzNdOwotICAgIGZsb2F0IG1fdGltZU9mZnNldDsKLSAgICBmbG9hdCBtX2N1
cnZlRHVyYXRpb247Ci0gICAgZmxvYXQgbV9wb3NpdGlvbk9mZnNldDsKLX07Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9XaGVlbEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vV2hlZWxGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNzNmZmMzODFkODUxZDY0NGM2MzBjYTI4ZGU2NGNmOTkxMTI2ZTMw
Yi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9XaGVlbEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsNzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0g
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
Ci0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZp
Zy5oIgotCi0jaW5jbHVkZSAiV2hlZWxGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlLmgiCi0KLSNp
bmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVDdXJ2ZVRhcmdldC5oIgotI2luY2x1ZGUgPG1hdGguaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXNzT3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZl
PiBXaGVlbEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShjb25zdCBGbG9hdFBvaW50
JiB2ZWxvY2l0eSkKLXsKLSAgICByZXR1cm4gYWRvcHRQdHIobmV3IFdoZWVsRmxpbmdQbGF0Zm9y
bUdlc3R1cmVDdXJ2ZSh2ZWxvY2l0eSkpOwotfQotCi1XaGVlbEZsaW5nUGxhdGZvcm1HZXN0dXJl
Q3VydmU6OldoZWVsRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZShjb25zdCBGbG9hdFBvaW50JiB2
ZWxvY2l0eSkKLSAgICA6IG1fdmVsb2NpdHkodmVsb2NpdHkpCi17Ci0gICAgQVNTRVJUKHZlbG9j
aXR5ICE9IEZsb2F0UG9pbnQ6Onplcm8oKSk7Ci19Ci0KLVdoZWVsRmxpbmdQbGF0Zm9ybUdlc3R1
cmVDdXJ2ZTo6fldoZWVsRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZSgpCi17Ci19Ci0KLWNvbnN0
IGNoYXIqIFdoZWVsRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6ZGVidWdOYW1lKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gIldoZWVsRmxpbmciOwotfQotCi1ib29sIFdoZWVsRmxpbmdQbGF0Zm9y
bUdlc3R1cmVDdXJ2ZTo6YXBwbHkoZG91YmxlIHRpbWUsIFBsYXRmb3JtR2VzdHVyZUN1cnZlVGFy
Z2V0KiB0YXJnZXQpCi17Ci0gICAgLy8gVXNlIGEgUmF5bGVpZ2ggZGlzdHJpYnV0aW9uIGZvciB0
aGUgY3VydmUuIFRoaXMgc2ltdWxhdGVzIGEgdmVsb2NpdHkgcHJvZmlsZQotICAgIC8vIHRoYXQg
c3RhcnRzIGF0IDAsIGluY3JlYXNlcyB0byBhIG1heGltdW0sIHRoZW4gZGVjcmVhc2VzIGFnYWlu
IHNtb290aGx5LiBCeQotICAgIC8vIHVzaW5nIHRoZSBjdW11bGF0aXZlIGRpc3RyaWJ1dGlvbiBm
dW5jdGlvbiAoQ0RGKSBpbnN0ZWFkIG9mIHRoZSBwb2ludC1tYXNzIGZ1bmN0aW9uLAotICAgIC8v
IHdlIGNhbiBpc29sYXRlIHRpbWluZyBqaXR0ZXIgYnkgcmVtZW1iZXJpbmcgdGhlIENERiB2YWx1
ZSBhdCB0aGUgbGFzdCB0aWNrLiBTaW5jZQotICAgIC8vIHRoZSBDREYgbWF4ZXMgb3V0IGF0IDEs
IHNjYWxlIGl0IGJ5IHRoZSBpbnB1dCB2ZWxvY2l0eS4KLSAgICAvLwotICAgIC8vIENERiAtPiBG
KHg7IHNpZ21hKSA9IDEgLSBleHB7LXheMi8yXHNpZ21hXjJ9Ci0gICAgLy8gcmVmOiBodHRwOi8v
ZW4ud2lraXBlZGlhLm9yZy93aWtpL1JheWxlaWdoX2Rpc3RyaWJ1dGlvbgotICAgIC8vIEZJWE1F
OiBjb25zaWRlciBtYWtpbmcgdGhlIHZhbHVlIG9mIHNpZ21hIHNldHRhYmxlIGluIHRoZSBjb25z
dHJ1Y3Rvci4KLSAgICBzdGF0aWMgZG91YmxlIHR3b1NpZ21hU3F1YXJlZEludmVyc2UgPSAxNjsg
Ly8gc2lnbWEgPSAwLjI1Ci0gICAgZmxvYXQgY2RmID0gMSAtIGV4cCgtdGltZSAqIHRpbWUgKiB0
d29TaWdtYVNxdWFyZWRJbnZlcnNlKTsKLSAgICBJbnRQb2ludCBzY3JvbGwoY2RmICogbV92ZWxv
Y2l0eS54KCksIGNkZiAqIG1fdmVsb2NpdHkueSgpKTsKLSAgICBJbnRQb2ludCBzY3JvbGxJbmNy
ZW1lbnQoc2Nyb2xsIC0gbV9jdW11bGF0aXZlU2Nyb2xsKTsKLSAgICBtX2N1bXVsYXRpdmVTY3Jv
bGwgPSBzY3JvbGw7Ci0KLSAgICBpZiAoY2RmIDwgMC41IHx8IHNjcm9sbEluY3JlbWVudCAhPSBJ
bnRQb2ludDo6emVybygpKSB7Ci0gICAgICAgIHRhcmdldC0+c2Nyb2xsQnkoc2Nyb2xsSW5jcmVt
ZW50KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOwot
fQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9XaGVlbEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1doZWVsRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA5NmNmYWNhMWExZWVkZjJkNjU2YjEzN2VhMDBlN2NmYzY0ZWViMTYy
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1doZWVsRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oCisrKyAvZGV2
L251bGwKQEAgLTEsNTggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KLSAqIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUwotICogU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBXaGVlbEZsaW5n
UGxhdGZvcm1HZXN0dXJlQ3VydmVfaAotI2RlZmluZSBXaGVlbEZsaW5nUGxhdGZvcm1HZXN0dXJl
Q3VydmVfaAotCi0jaW5jbHVkZSAiRmxvYXRQb2ludC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtR2Vz
dHVyZUN1cnZlLmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotI2luY2x1ZGUgPHd0Zi9QYXNz
T3duUHRyLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUGxhdGZvcm1HZXN0dXJl
Q3VydmVUYXJnZXQ7Ci0KLS8vIEltcGxlbWVudGF0aW9uIG9mIFBsYXRmb3JtR2VzdHVyZUN1cnZl
IHN1aXRhYmxlIGZvciBtb3VzZSB3aGVlbC1iYXNlZCBmbGluZwotLy8gc2Nyb2xsLiBBIFJheWxl
aWdoIGRpc3RyaWJ0dXRpb24gY3VydmUgaXMgdXNlZCB0byBkZWZpbmUgdGhlIHZlbG9jaXR5IHBy
b2ZpbGUsCi0vLyBzbyB2ZWxvY2l0eSBzdGFydHMgYXQgemVybywgYWNjZWxlcmF0ZXMgdG8gYSBt
YXhpbXVtIHByb3BvcnRpb25hbCB0byAndmVsb2NpdHknLAotLy8gdGhlbiBnZW50bHkgdGFpbHMg
b2ZmIHRvIHplcm8gYWdhaW4uCi1jbGFzcyBXaGVlbEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmUg
OiBwdWJsaWMgUGxhdGZvcm1HZXN0dXJlQ3VydmUgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNz
T3duUHRyPFBsYXRmb3JtR2VzdHVyZUN1cnZlPiBjcmVhdGUoY29uc3QgRmxvYXRQb2ludCYgdmVs
b2NpdHkpOwotICAgIHZpcnR1YWwgfldoZWVsRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZSgpOwot
Ci0gICAgdmlydHVhbCBjb25zdCBjaGFyKiBkZWJ1Z05hbWUoKSBjb25zdCBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIGJvb2wgYXBwbHkoZG91YmxlIHRpbWUsIFBsYXRmb3JtR2VzdHVyZUN1cnZlVGFy
Z2V0KikgT1ZFUlJJREU7Ci0KLXByaXZhdGU6Ci0gICAgZXhwbGljaXQgV2hlZWxGbGluZ1BsYXRm
b3JtR2VzdHVyZUN1cnZlKGNvbnN0IEZsb2F0UG9pbnQmIHZlbG9jaXR5KTsKLQotICAgIEZsb2F0
UG9pbnQgbV92ZWxvY2l0eTsKLSAgICBJbnRQb2ludCBtX2N1bXVsYXRpdmVTY3JvbGw7Ci19Owot
Ci19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9QbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3Rv
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9QbGF0Zm9y
bUdlc3R1cmVDdXJ2ZUZhY3RvcnkuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAy
MDNmMzljZTk5ZjQyNThiNGFmMDZkYzU0MWM4YWU4YTIwNDdhYzQzLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2No
cm9taXVtL3N1cHBvcnQvUGxhdGZvcm1HZXN0dXJlQ3VydmVGYWN0b3J5LmNwcAorKysgL2Rldi9u
dWxsCkBAIC0xLDY0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsK
LSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNs
dWRlICJQbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkuaCIKLQotI2luY2x1ZGUgIkZsb2F0UG9p
bnQuaCIKLSNpbmNsdWRlICJJbnRSZWN0LmgiCi0jaW5jbHVkZSAiVG91Y2hGbGluZ1BsYXRmb3Jt
R2VzdHVyZUN1cnZlLmgiCi0jaW5jbHVkZSAiV2ViRmxpbmdBbmltYXRvclRvR2VzdHVyZUN1cnZl
QWRhcHRlci5oIgotI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIKLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci0KLVBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeSogUGxhdGZvcm1HZXN0dXJlQ3VydmVG
YWN0b3J5OjpnZXQoKQotewotICAgIERFRklORV9TVEFUSUNfTE9DQUwoUGxhdGZvcm1HZXN0dXJl
Q3VydmVGYWN0b3J5LCBmYWN0b3J5LCAoKSk7Ci0gICAgcmV0dXJuICZmYWN0b3J5OwotfQotCi1Q
YXNzT3duUHRyPFdlYkNvcmU6OlBsYXRmb3JtR2VzdHVyZUN1cnZlPiBQbGF0Zm9ybUdlc3R1cmVD
dXJ2ZUZhY3Rvcnk6OmNyZWF0ZUN1cnZlKGludCBkZXZpY2VTb3VyY2UsIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQmIHBvaW50LCBXZWJDb3JlOjpJbnRQb2ludCBjdW11bGF0aXZlU2Nyb2xsKQot
ewotICAgIE93blB0cjxXZWJGbGluZ0FuaW1hdG9yPiBmbGluZ0FuaW1hdG9yID0gbV9tb2NrRmxp
bmdBbmltYXRvci5yZWxlYXNlKCk7Ci0gICAgaWYgKCFmbGluZ0FuaW1hdG9yKQotICAgICAgICBm
bGluZ0FuaW1hdG9yID0gYWRvcHRQdHIoUGxhdGZvcm06OmN1cnJlbnQoKS0+Y3JlYXRlRmxpbmdB
bmltYXRvcigpKTsKLQotICAgIGlmIChmbGluZ0FuaW1hdG9yKQotICAgICAgICByZXR1cm4gV2Vi
RmxpbmdBbmltYXRvclRvR2VzdHVyZUN1cnZlQWRhcHRlcjo6Y3JlYXRlKHBvaW50LCBXZWJDb3Jl
OjpJbnRSZWN0KCksIGZsaW5nQW5pbWF0b3IucmVsZWFzZSgpKTsKLQotICAgIGlmIChkZXZpY2VT
b3VyY2UgPT0gV2ViR2VzdHVyZUV2ZW50OjpUb3VjaHNjcmVlbikKLSAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OlRvdWNoRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlRm9yVG91Y2hTY3Jl
ZW4ocG9pbnQsIGN1bXVsYXRpdmVTY3JvbGwpOwotCi0gICAgcmV0dXJuIFdlYkNvcmU6OlRvdWNo
RmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlRm9yVG91Y2hQYWQocG9pbnQsIGN1bXVs
YXRpdmVTY3JvbGwpOwotfQotCi12b2lkIFBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeTo6c2V0
V2ViRmxpbmdBbmltYXRvckZvclRlc3QoUGFzc093blB0cjxXZWJGbGluZ0FuaW1hdG9yPiBtb2Nr
RmxpbmdBbmltYXRvcikKLXsKLSAgICBtX21vY2tGbGluZ0FuaW1hdG9yID0gbW9ja0ZsaW5nQW5p
bWF0b3I7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vc3VwcG9ydC9QbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3Rv
cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvUGxhdGZvcm1H
ZXN0dXJlQ3VydmVGYWN0b3J5LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDFhYjNi
ZjQ0MWE5MzU5M2I3NDRiZGIyYzA1MjI1NDU0ODRhY2JhM2UuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vc3VwcG9ydC9QbGF0Zm9ybUdlc3R1cmVDdXJ2ZUZhY3RvcnkuaAorKysgL2Rldi9udWxsCkBA
IC0xLDUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJl
IG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9y
eV9oCi0jZGVmaW5lIFBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeV9oCi0KLSNpbmNsdWRlICJQ
bGF0Zm9ybUdlc3R1cmVDdXJ2ZS5oIgotI2luY2x1ZGUgPHB1YmxpYy9XZWJGbGluZ0FuaW1hdG9y
Lmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0K
LWNsYXNzIFBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGlj
IFBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeSogZ2V0KCk7Ci0KLSAgICBQYXNzT3duUHRyPFdl
YkNvcmU6OlBsYXRmb3JtR2VzdHVyZUN1cnZlPiBjcmVhdGVDdXJ2ZShpbnQgZGV2aWNlU291cmNl
LCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgV2ViQ29yZTo6SW50UG9pbnQgY3VtdWxhdGl2
ZVNjcm9sbCA9IFdlYkNvcmU6OkludFBvaW50KCkpOwotICAgIHZvaWQgc2V0V2ViRmxpbmdBbmlt
YXRvckZvclRlc3QoUGFzc093blB0cjxXZWJGbGluZ0FuaW1hdG9yPik7Ci0KLXByaXZhdGU6Ci0g
ICAgflBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeSgpOwotCi0gICAgT3duUHRyPFdlYkZsaW5n
QW5pbWF0b3I+IG1fbW9ja0ZsaW5nQW5pbWF0b3I7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJL
aXQKLQotI2VuZGlmIC8vIFBsYXRmb3JtR2VzdHVyZUN1cnZlRmFjdG9yeV9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9zdXBwb3J0L1dlYkZsaW5nQW5pbWF0
b3JUb0dlc3R1cmVDdXJ2ZUFkYXB0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL3N1cHBvcnQvV2ViRmxpbmdBbmltYXRvclRvR2VzdHVyZUN1cnZlQWRhcHRlci5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NmY4M2JkMmEwZTI4MjJkNDQyMWUzZGQzYzIyYWZm
OTE3NzJiZjM0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL3N1cHBvcnQvV2ViRmxpbmdBbmltYXRv
clRvR2VzdHVyZUN1cnZlQWRhcHRlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNzIgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
Ci0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgV2ViRmxpbmdBbmltYXRvclRvR2VzdHVyZUN1cnZlQWRhcHRlcl9oCi0j
ZGVmaW5lIFdlYkZsaW5nQW5pbWF0b3JUb0dlc3R1cmVDdXJ2ZUFkYXB0ZXJfaAotCi0jaW5jbHVk
ZSAiRmxvYXRQb2ludC5oIgotI2luY2x1ZGUgIkludFBvaW50LmgiCi0jaW5jbHVkZSAiSW50UmVj
dC5oIgotI2luY2x1ZGUgIlBsYXRmb3JtR2VzdHVyZUN1cnZlLmgiCi0jaW5jbHVkZSAiUGxhdGZv
cm1HZXN0dXJlQ3VydmVUYXJnZXQuaCIKLSNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KLSNp
bmNsdWRlIDxwdWJsaWMvV2ViRmxpbmdBbmltYXRvci5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsK
LQotY2xhc3MgV2ViRmxpbmdBbmltYXRvclRvR2VzdHVyZUN1cnZlQWRhcHRlciA6IHB1YmxpYyBX
ZWJDb3JlOjpQbGF0Zm9ybUdlc3R1cmVDdXJ2ZSB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NP
d25QdHI8UGxhdGZvcm1HZXN0dXJlQ3VydmU+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpGbG9hdFBv
aW50JiB2ZWxvY2l0eSwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmFuZ2UsIFBhc3NPd25QdHI8
V2ViRmxpbmdBbmltYXRvcj4gYW5pbWF0b3IpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRQ
dHIobmV3IFdlYkZsaW5nQW5pbWF0b3JUb0dlc3R1cmVDdXJ2ZUFkYXB0ZXIodmVsb2NpdHksIHJh
bmdlLCBhbmltYXRvcikpOwotICAgIH0KLQotICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtR2VzdHVy
ZUN1cnZlIGltcGxlbWVudGF0aW9uOgotICAgIHZpcnR1YWwgY29uc3QgY2hhciogZGVidWdOYW1l
KCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIldlYkZsaW5nQW5pbWF0b3JUb0dlc3R1cmVDdXJ2
ZUFkYXB0ZXIiOyB9Ci0gICAgdmlydHVhbCBib29sIGFwcGx5KGRvdWJsZSB0aW1lLCBXZWJDb3Jl
OjpQbGF0Zm9ybUdlc3R1cmVDdXJ2ZVRhcmdldCogdGFyZ2V0KSBPVkVSUklERQotICAgIHsKLSAg
ICAgICAgaWYgKCFtX2FuaW1hdG9yLT51cGRhdGVQb3NpdGlvbigpKQotICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgICAgIFdlYkNvcmU6OkludFBvaW50IGN1cnJlbnRQb3NpdGlvbiA9
IG1fYW5pbWF0b3ItPmdldEN1cnJlbnRQb3NpdGlvbigpOwotICAgICAgICB0YXJnZXQtPnNjcm9s
bEJ5KFdlYkNvcmU6OkludFBvaW50KGN1cnJlbnRQb3NpdGlvbiAtIG1fbGFzdFBvc2l0aW9uKSk7
Ci0gICAgICAgIG1fbGFzdFBvc2l0aW9uID0gY3VycmVudFBvc2l0aW9uOwotICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgV2ViRmxpbmdBbmltYXRvclRvR2VzdHVy
ZUN1cnZlQWRhcHRlcihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiB2ZWxvY2l0eSwgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgcmFuZ2UsIFBhc3NPd25QdHI8V2ViRmxpbmdBbmltYXRvcj4gYW5p
bWF0b3IpCi0gICAgICAgIDogbV9hbmltYXRvcihhbmltYXRvcikKLSAgICB7Ci0gICAgICAgIG1f
YW5pbWF0b3ItPnN0YXJ0RmxpbmcodmVsb2NpdHksIHJhbmdlKTsKLSAgICB9Ci0KLSAgICBPd25Q
dHI8V2ViRmxpbmdBbmltYXRvcj4gbV9hbmltYXRvcjsKLSAgICBXZWJDb3JlOjpJbnRQb2ludCBt
X2xhc3RQb3NpdGlvbjsKLX07Ci0KLX0KLQotI2VuZGlmIC8vIFdlYkZsaW5nQW5pbWF0b3JUb0dl
c3R1cmVDdXJ2ZUFkYXB0ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggZGQ1
ZDZjZjFiNmJlOGIwY2IwOTdlZjBlMjU0ZmQwMTAzZWYzZDA3ZC4uMDNiZGEzNTExYzc2ZDliYjQ3
NmQ4MGU1NzgzM2MwYTE3ZGMzNmQ2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBA
IC05NSw3ICs5NSw2IEBACiAgICAgICAgICAgICAndGVzdHMvUE9EUmVkQmxhY2tUcmVlVGVzdC5j
cHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1BhaW50QWdncmVnYXRvclRlc3QuY3BwJywKICAgICAg
ICAgICAgICd0ZXN0cy9QbGF0Zm9ybUNvbnRleHRTa2lhVGVzdC5jcHAnLAotICAgICAgICAgICAg
J3Rlc3RzL1BsYXRmb3JtR2VzdHVyZUN1cnZlVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3Rz
L1BvcHVwQ29udGFpbmVyVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1JlZ2lvblRlc3Qu
Y3BwJywKICAgICAgICAgICAgICd0ZXN0cy9SZW5kZXJUYWJsZUNlbGxUZXN0LmNwcCcsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BsYXRmb3JtR2VzdHVyZUN1cnZl
VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BsYXRmb3JtR2VzdHVyZUN1
cnZlVGVzdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDBlODNhODRlMTE5NTY3
NTI1ZGQ5YzVmZDA4MWExYjlhMjY0NWFhNTYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9QbGF0Zm9ybUdl
c3R1cmVDdXJ2ZVRlc3QuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTE3ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICog
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVDdXJ2ZS5o
IgotCi0jaW5jbHVkZSAiQWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uLmgiCi0jaW5jbHVk
ZSAiUGxhdGZvcm1HZXN0dXJlQ3VydmVUYXJnZXQuaCIKLSNpbmNsdWRlICJUb3VjaEZsaW5nUGxh
dGZvcm1HZXN0dXJlQ3VydmUuaCIKLSNpbmNsdWRlICJXaGVlbEZsaW5nUGxhdGZvcm1HZXN0dXJl
Q3VydmUuaCIKLSNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIu
aD4KLQotbmFtZXNwYWNlIHsKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLWNsYXNzIE1v
Y2tQbGF0Zm9ybUdlc3R1cmVDdXJ2ZVRhcmdldCA6IHB1YmxpYyBQbGF0Zm9ybUdlc3R1cmVDdXJ2
ZVRhcmdldCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB2b2lkIHNjcm9sbEJ5KGNvbnN0IEludFBv
aW50JiBkZWx0YSkKLSAgICB7Ci0gICAgICAgIG1fY3VtdWxhdGl2ZURlbHRhID0gbV9jdW11bGF0
aXZlRGVsdGEgKyBkZWx0YTsKLSAgICB9Ci0KLSAgICBJbnRQb2ludCBjdW11bGF0aXZlRGVsdGEo
KSBjb25zdCB7IHJldHVybiAgbV9jdW11bGF0aXZlRGVsdGE7IH0KLSAgICB2b2lkIHJlc2V0Q3Vt
dWxhdGl2ZURlbHRhKCkgeyBtX2N1bXVsYXRpdmVEZWx0YSA9IEludFBvaW50KCk7IH0KLQotcHJp
dmF0ZToKLSAgICBJbnRQb2ludCBtX2N1bXVsYXRpdmVEZWx0YTsKLX07Ci0KLVRFU1QoUGxhdGZv
cm1HZXN0dXJlQ3VydmUsIGZsaW5nQ3VydmUpCi17Ci0gICAgTW9ja1BsYXRmb3JtR2VzdHVyZUN1
cnZlVGFyZ2V0IHRhcmdldDsKLSAgICBPd25QdHI8QWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0
aW9uPiBhbmltYXRpb24gPSBBY3RpdmVQbGF0Zm9ybUdlc3R1cmVBbmltYXRpb246OmNyZWF0ZShX
aGVlbEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3VydmU6OmNyZWF0ZShGbG9hdFBvaW50KDEwMCwgMCkp
LCAmdGFyZ2V0KTsKLQotICAgIC8vIE5vdGU6IHRoZSBleHBlY3RhdGlvbnMgYmVsb3cgYXJlIGRl
cGVuZGVudCBvbiB0aGUgdmFsdWUgb2Ygc2lnbWEgaGFyZC1jb2RlZCBpbiB0aGUgUmF5bGVpZ2gK
LSAgICAvLyAgICAgICBjdXJ2ZS4gSWYgc2lnbWEgY2hhbmdlcywgdGhlc2UgdGVzdCBleHBlY3Rh
dGlvbnMgd2lsbCBhbHNvIGNoYW5nZS4KLSAgICBFWFBFQ1RfVFJVRShhbmltYXRpb24tPmFuaW1h
dGUoMCkpOwotICAgIEVYUEVDVF9UUlVFKGFuaW1hdGlvbi0+YW5pbWF0ZSgwLjI1KSk7Ci0gICAg
RVhQRUNUX1RSVUUoYW5pbWF0aW9uLT5hbmltYXRlKDAuNDUpKTsgLy8gVXNlIG5vbi11bmlmb3Jt
IHRpY2sgc3BhY2luZy4KLSAgICBFWFBFQ1RfVFJVRShhbmltYXRpb24tPmFuaW1hdGUoMC43NSkp
OwotICAgIEVYUEVDVF9UUlVFKGFuaW1hdGlvbi0+YW5pbWF0ZSgxMDAwKSk7Ci0gICAgRVhQRUNU
X0ZBTFNFKGFuaW1hdGlvbi0+YW5pbWF0ZSgxMDAxKSk7Ci0gICAgLy8gU2luY2UgdGhlIFJheWxl
aWdoIENERiBtYXhlcyBvdXQgYXQgMSwgd2UgZXhwZWN0IHRoZSBjdW11bGF0aXZlIHNjcm9sbCBp
bmNyZW1lbnRzIHRvCi0gICAgLy8gbWF0Y2ggdGhlIGlucHV0IHZlbG9jaXR5IHBhcmFtZXRlci4K
LSAgICBFWFBFQ1RfTkVBUih0YXJnZXQuY3VtdWxhdGl2ZURlbHRhKCkueCgpLCAxMDAsIDEpOwot
ICAgIEVYUEVDVF9FUSh0YXJnZXQuY3VtdWxhdGl2ZURlbHRhKCkueSgpLCAwKTsKLQotICAgIC8v
IFRlc3QgYW5pbWF0aW9uIHdoZW4gbm90IHN0YXJ0aW5nIGF0IHQgPSAwLgotICAgIGRvdWJsZSBi
YXNlVGltZSA9IDQyLjQyOwotICAgIGFuaW1hdGlvbiA9IEFjdGl2ZVBsYXRmb3JtR2VzdHVyZUFu
aW1hdGlvbjo6Y3JlYXRlKFdoZWVsRmxpbmdQbGF0Zm9ybUdlc3R1cmVDdXJ2ZTo6Y3JlYXRlKEZs
b2F0UG9pbnQoMTAwLCAwKSksICZ0YXJnZXQpOwotICAgIHRhcmdldC5yZXNldEN1bXVsYXRpdmVE
ZWx0YSgpOwotCi0gICAgRVhQRUNUX1RSVUUoYW5pbWF0aW9uLT5hbmltYXRlKGJhc2VUaW1lICsg
MC4zNSkpOwotICAgIEVYUEVDVF9UUlVFKGFuaW1hdGlvbi0+YW5pbWF0ZShiYXNlVGltZSArIDEu
MzUpKTsKLSAgICBFWFBFQ1RfVFJVRShhbmltYXRpb24tPmFuaW1hdGUoYmFzZVRpbWUgKyAxMDAw
KSk7Ci0gICAgRVhQRUNUX0ZBTFNFKGFuaW1hdGlvbi0+YW5pbWF0ZShiYXNlVGltZSArIDEwMDEp
KTsKLSAgICBFWFBFQ1RfTkVBUih0YXJnZXQuY3VtdWxhdGl2ZURlbHRhKCkueCgpLCAxMDAsIDEp
OwotCi0gICAgYW5pbWF0aW9uID0gQWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uOjpjcmVh
dGUoV2hlZWxGbGluZ1BsYXRmb3JtR2VzdHVyZUN1cnZlOjpjcmVhdGUoRmxvYXRQb2ludCg1MCwg
MTUwKSksICZ0YXJnZXQpOwotICAgIHRhcmdldC5yZXNldEN1bXVsYXRpdmVEZWx0YSgpOwotCi0g
ICAgLy8gVGVzdCBhbmltYXRpb24gd2l0aCBib3RoIGhvcml6b250YWwgYW5kIHZlcnRpY2FsIHNj
cm9sbCB2ZWxvY2l0aWVzLgotICAgIEVYUEVDVF9UUlVFKGFuaW1hdGlvbi0+YW5pbWF0ZSgwKSk7
Ci0gICAgRVhQRUNUX1RSVUUoYW5pbWF0aW9uLT5hbmltYXRlKDAuMjUpKTsKLSAgICBFWFBFQ1Rf
VFJVRShhbmltYXRpb24tPmFuaW1hdGUoMC40NSkpOwotICAgIEVYUEVDVF9UUlVFKGFuaW1hdGlv
bi0+YW5pbWF0ZSgwLjc1KSk7Ci0gICAgRVhQRUNUX1RSVUUoYW5pbWF0aW9uLT5hbmltYXRlKDEw
MDApKTsKLSAgICBFWFBFQ1RfRkFMU0UoYW5pbWF0aW9uLT5hbmltYXRlKDEwMDEpKTsKLSAgICBF
WFBFQ1RfTkVBUih0YXJnZXQuY3VtdWxhdGl2ZURlbHRhKCkueCgpLCA1MCwgMSk7Ci0gICAgRVhQ
RUNUX05FQVIodGFyZ2V0LmN1bXVsYXRpdmVEZWx0YSgpLnkoKSwgMTUwLCAxKTsKLX0KLQotVEVT
VChQbGF0Zm9ybUdlc3R1cmVDdXJ2ZSwgZmxpbmdDdXJ2ZVRvdWNoKQotewotICAgIGRvdWJsZSBp
bml0aWFsVmVsb2NpdHkgPSA1MDAwOwotICAgIE1vY2tQbGF0Zm9ybUdlc3R1cmVDdXJ2ZVRhcmdl
dCB0YXJnZXQ7Ci0gICAgLy8gRXhwbGljaXRseSBwYXJhbWV0cml6ZWQgdG8gbWFrZSB0ZXN0IG5v
bi1icml0dGxlIGluIGZhY2Ugb2YKLSAgICAvLyBwYXJhbWV0ZXIgY2hhbmdlcy4KLSAgICBPd25Q
dHI8QWN0aXZlUGxhdGZvcm1HZXN0dXJlQW5pbWF0aW9uPiBhbmltYXRpb24gPSBBY3RpdmVQbGF0
Zm9ybUdlc3R1cmVBbmltYXRpb246OmNyZWF0ZShUb3VjaEZsaW5nUGxhdGZvcm1HZXN0dXJlQ3Vy
dmU6OmNyZWF0ZShGbG9hdFBvaW50KGluaXRpYWxWZWxvY2l0eSwgMCksIC01LjcwNzYyZSswM2Ys
IDEuNzJlKzAyZiwgMy43ZSswMGYsIDEuM2YpLCAmdGFyZ2V0KTsKLQotICAgIC8vIE5vdGU6IHRo
ZSBleHBlY3RhdGlvbnMgYmVsb3cgYXJlIGRlcGVuZGVudCBvbiB0aGUgY3VydmUgcGFyYW1ldGVy
cyBoYXJkCi0gICAgLy8gY29kZWQgaW50byB0aGUgY3JlYXRlIGNhbGwgYWJvdmUuCi0gICAgRVhQ
RUNUX1RSVUUoYW5pbWF0aW9uLT5hbmltYXRlKDApKTsKLSAgICBFWFBFQ1RfVFJVRShhbmltYXRp
b24tPmFuaW1hdGUoMC4yNSkpOwotICAgIEVYUEVDVF9UUlVFKGFuaW1hdGlvbi0+YW5pbWF0ZSgw
LjQ1ZikpOyAvLyBVc2Ugbm9uLXVuaWZvcm0gdGljayBzcGFjaW5nLgotICAgIEVYUEVDVF9UUlVF
KGFuaW1hdGlvbi0+YW5pbWF0ZSgxKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKGFuaW1hdGlvbi0+YW5p
bWF0ZSgxLjUpKTsKLSAgICBFWFBFQ1RfTkVBUih0YXJnZXQuY3VtdWxhdGl2ZURlbHRhKCkueCgp
LCAxMTkzLCAxKTsKLSAgICBFWFBFQ1RfRVEodGFyZ2V0LmN1bXVsYXRpdmVEZWx0YSgpLnkoKSwg
MCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIGFub255bW91cwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>