<?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>123672</bug_id>
          
          <creation_ts>2013-11-02 10:45:55 -0700</creation_ts>
          <short_desc>Add OVERRIDE keyword to WebCoreSupport classes</short_desc>
          <delta_ts>2013-11-02 14:54:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>946240</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-11-02 10:45:55 -0700</bug_when>
    <thetext>Add OVERRIDE keyword to WebCoreSupport classes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946242</commentid>
    <comment_count>1</comment_count>
      <attachid>215814</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2013-11-02 10:48:55 -0700</bug_when>
    <thetext>Created attachment 215814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946315</commentid>
    <comment_count>2</comment_count>
      <attachid>215814</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-02 14:54:38 -0700</bug_when>
    <thetext>Comment on attachment 215814
Patch

Clearing flags on attachment: 215814

Committed r158501: &lt;http://trac.webkit.org/changeset/158501&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946316</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-02 14:54:40 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215814</attachid>
            <date>2013-11-02 10:48:55 -0700</date>
            <delta_ts>2013-11-02 14:54:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123672-20131102184855.patch</filename>
            <type>text/plain</type>
            <size>57224</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU4NDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDhlZDkx
MzVkMDQxNDgwMWQyNmU3OTM5N2RlZTVmODc1NjA5OThlOGMuLmQyMDA4M2U0Nzc0ZDkyOGNmZDE0
ODFjYmFlZDM3ZmNiMDE4MDMzZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzcg
QEAKIDIwMTMtMTEtMDIgIFBhdHJpY2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAK
KyAgICAgICAgQWRkIE9WRVJSSURFIGtleXdvcmQgdG8gV2ViQ29yZVN1cHBvcnQgY2xhc3Nlcwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIzNjcyCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxzbyBhbGln
biB0aGUgZnVuY3Rpb24gcGFyYW1ldGVycyB3aXRoIHRoZSBiYXNlIGNsYXNzZXMKKyAgICAgICAg
YW5kIHJlbW92ZSB1c2VsZXNzIGZ1bmN0aW9ucy4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRXaW5DRS5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50
V2luQ0UuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50V2lu
Q0UuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50V2luQ0UuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpEcmFnQ2xpZW50V2luQ0U6OndpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6RHJhZ0NsaWVudFdpbkNFOjp3aWxsUGVyZm9ybURy
YWdTb3VyY2VBY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpEcmFnQ2xpZW50V2luQ0U6OmFjdGlv
bk1hc2tGb3JEcmFnKToKKyAgICAgICAgKFdlYktpdDo6RHJhZ0NsaWVudFdpbkNFOjpzdGFydERy
YWcpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRXaW5DRS5oOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmg6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZy
YW1lTG9hZGVyQ2xpZW50V2luQ0U6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UpOgor
ICAgICAgICAoV2ViS2l0OjpGcmFtZUxvYWRlckNsaWVudFdpbkNFOjpkaXNwYXRjaERlY2lkZVBv
bGljeUZvck5ld1dpbmRvd0FjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xp
ZW50V2luQ0U6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6OmRpc3BhdGNoV2lsbFN1Ym1pdEZv
cm0pOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuaDoK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0V2luQ0UuaDoK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRXaW5DRS5jcHA6CisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50V2luQ0UuaDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oOgorCisyMDEzLTExLTAyICBQ
YXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgorCiAgICAgICAgIFZhcmlvdXMg
c21hbGwgV2luQ0UgYnVpbGQgZml4ZXMKIAogICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50V2luQ0UuY3BwOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcAppbmRleCBjZDg0ODc5NDE5MGZj
Y2M4ODY4M2Y3YmJjNjZjMzBlYTg1MTdlMGIwLi45ZWFkNDUxYTU2NDAzOGNmZDE3ZWUzN2RlOGMw
OGU3MDM5YTJlZGVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBw
b3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcApAQCAtMjczLDExICsyNzMsNiBAQCB2b2lk
IENocm9tZUNsaWVudFdpbkNFOjpjb250ZW50c1NpemVDaGFuZ2VkKEZyYW1lKiwgY29uc3QgSW50
U2l6ZSYpIGNvbnN0CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGll
bnRXaW5DRTo6c2Nyb2xsUmVjdEludG9WaWV3KGNvbnN0IEludFJlY3QmKSBjb25zdAotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIHZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OnNjcm9sbGJh
cnNNb2RlRGlkQ2hhbmdlKCkgY29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5D
RS5oIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5D
RS5oCmluZGV4IDJjZDY5YWQyYzVhNDRjZWMzNWZiZjY3ZmIwYzYyZjkyZDgxZTdhNTYuLjM0ZTJh
NzFmYzllZjlhYWY1N2U0ZmQ0Mjc0MTIwNWQwN2Q0ZmMzNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKQEAgLTM1
LDg1ICszNSw4NCBAQCBjbGFzcyBDaHJvbWVDbGllbnRXaW5DRSA6IHB1YmxpYyBXZWJDb3JlOjpD
aHJvbWVDbGllbnQgewogcHVibGljOgogICAgIENocm9tZUNsaWVudFdpbkNFKFdlYlZpZXcqIHdl
YlZpZXcpOwogCi0gICAgdmlydHVhbCB2b2lkIGNocm9tZURlc3Ryb3llZCgpOworICAgIHZpcnR1
YWwgdm9pZCBjaHJvbWVEZXN0cm95ZWQoKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBz
ZXRXaW5kb3dSZWN0KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpOwotICAgIHZpcnR1YWwgV2Vi
Q29yZTo6RmxvYXRSZWN0IHdpbmRvd1JlY3QoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0V2luZG93
UmVjdChjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdl
YkNvcmU6OkZsb2F0UmVjdCB3aW5kb3dSZWN0KCkgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIFdl
YkNvcmU6OkZsb2F0UmVjdCBwYWdlUmVjdCgpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRS
ZWN0IHBhZ2VSZWN0KCkgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZm9jdXMoKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgdW5mb2N1cygpOworICAgIHZpcnR1YWwgdm9pZCBmb2N1cygpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCB1bmZvY3VzKCkgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFs
IGJvb2wgY2FuVGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsKLSAgICB2aXJ0dWFs
IHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKTsKKyAgICB2aXJ0dWFsIGJv
b2wgY2FuVGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKSBPVkVSUklERTsKKyAgICB2
aXJ0dWFsIHZvaWQgdGFrZUZvY3VzKFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9uKSBPVkVSUklERTsK
IAotICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkRWxlbWVudENoYW5nZWQoV2ViQ29yZTo6RWxlbWVu
dCopOwotICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkRnJhbWVDaGFuZ2VkKFdlYkNvcmU6OkZyYW1l
Kik7CisgICAgdmlydHVhbCB2b2lkIGZvY3VzZWRFbGVtZW50Q2hhbmdlZChXZWJDb3JlOjpFbGVt
ZW50KikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoV2Vi
Q29yZTo6RnJhbWUqKSBPVkVSUklERTsKIAogICAgIC8vIFRoZSBGcmFtZSBwb2ludGVyIHByb3Zp
ZGVzIHRoZSBDaHJvbWVDbGllbnQgd2l0aCBjb250ZXh0IGFib3V0IHdoaWNoCiAgICAgLy8gRnJh
bWUgd2FudHMgdG8gY3JlYXRlIHRoZSBuZXcgUGFnZS4gIEFsc28sIHRoZSBuZXdseSBjcmVhdGVk
IHdpbmRvdwogICAgIC8vIHNob3VsZCBub3QgYmUgc2hvd24gdG8gdGhlIHVzZXIgdW50aWwgdGhl
IENocm9tZUNsaWVudCBvZiB0aGUgbmV3bHkKICAgICAvLyBjcmVhdGVkIFBhZ2UgaGFzIGl0cyBz
aG93IG1ldGhvZCBjYWxsZWQuCi0gICAgdmlydHVhbCBXZWJDb3JlOjpQYWdlKiBjcmVhdGVXaW5k
b3coV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0JiwgY29u
c3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0
aW9uJik7Ci0gICAgdmlydHVhbCB2b2lkIHNob3coKTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlBh
Z2UqIGNyZWF0ZVdpbmRvdyhXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkZyYW1lTG9h
ZFJlcXVlc3QmLCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyYsIGNvbnN0IFdlYkNvcmU6
Ok5hdmlnYXRpb25BY3Rpb24mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2hvdygpIE9W
RVJSSURFOwogCi0gICAgdmlydHVhbCBib29sIGNhblJ1bk1vZGFsKCk7Ci0gICAgdmlydHVhbCB2
b2lkIHJ1bk1vZGFsKCk7CisgICAgdmlydHVhbCBib29sIGNhblJ1bk1vZGFsKCkgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsKCkgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgc2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wpOwotICAgIHZpcnR1YWwgYm9vbCB0b29sYmFyc1Zp
c2libGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbGJhcnNWaXNpYmxlKGJvb2wpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgYm9vbCB0b29sYmFyc1Zpc2libGUoKSBPVkVSUklERTsKIAotICAg
IHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJWaXNpYmxlKGJvb2wpOwotICAgIHZpcnR1YWwgYm9v
bCBzdGF0dXNiYXJWaXNpYmxlKCk7CisgICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclZpc2li
bGUoYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHN0YXR1c2JhclZpc2libGUoKSBP
VkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxiYXJzVmlzaWJsZShib29sKTsK
LSAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFyc1Zpc2libGUoKTsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0U2Nyb2xsYmFyc1Zpc2libGUoYm9vbCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNj
cm9sbGJhcnNWaXNpYmxlKCkgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TWVudWJh
clZpc2libGUoYm9vbCk7Ci0gICAgdmlydHVhbCBib29sIG1lbnViYXJWaXNpYmxlKCk7CisgICAg
dmlydHVhbCB2b2lkIHNldE1lbnViYXJWaXNpYmxlKGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgYm9vbCBtZW51YmFyVmlzaWJsZSgpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIHNl
dFJlc2l6YWJsZShib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0UmVzaXphYmxlKGJvb2wpIE9W
RVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2VUb0NvbnNvbGUoV2ViQ29yZTo6
TWVzc2FnZVNvdXJjZSwgV2ViQ29yZTo6TWVzc2FnZUxldmVsLCBjb25zdCBXVEY6OlN0cmluZyYg
bWVzc2FnZSwgdW5zaWduZWQgbGluZU51bWJlciwgdW5zaWduZWQgY29sdW1uTnVtYmVyLCBjb25z
dCBXVEY6OlN0cmluZyYgc291cmNlSUQpOworICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlVG9D
b25zb2xlKFdlYkNvcmU6Ok1lc3NhZ2VTb3VyY2UsIFdlYkNvcmU6Ok1lc3NhZ2VMZXZlbCwgY29u
c3QgV1RGOjpTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIHVuc2lnbmVkIGNv
bHVtbk51bWJlciwgY29uc3QgV1RGOjpTdHJpbmcmIHNvdXJjZUlEKSBPVkVSUklERTsKIAotICAg
IHZpcnR1YWwgYm9vbCBjYW5SdW5CZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKTsKLSAgICB2aXJ0
dWFsIGJvb2wgcnVuQmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFdURjo6U3RyaW5nJiBt
ZXNzYWdlLCBXZWJDb3JlOjpGcmFtZSogZnJhbWUpOworICAgIHZpcnR1YWwgYm9vbCBjYW5SdW5C
ZWZvcmVVbmxvYWRDb25maXJtUGFuZWwoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgcnVu
QmVmb3JlVW5sb2FkQ29uZmlybVBhbmVsKGNvbnN0IFdURjo6U3RyaW5nJiBtZXNzYWdlLCBXZWJD
b3JlOjpGcmFtZSopIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIGNsb3NlV2luZG93U29v
bigpOworICAgIHZpcnR1YWwgdm9pZCBjbG9zZVdpbmRvd1Nvb24oKSBPVkVSUklERTsKIAotICAg
IHZpcnR1YWwgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBX
VEY6OlN0cmluZyYpOwotICAgIHZpcnR1YWwgYm9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShXZWJD
b3JlOjpGcmFtZSosIGNvbnN0IFdURjo6U3RyaW5nJik7Ci0gICAgdmlydHVhbCBib29sIHJ1bkph
dmFTY3JpcHRQcm9tcHQoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYgbWVzc2Fn
ZSwgY29uc3QgV1RGOjpTdHJpbmcmIGRlZmF1bHRWYWx1ZSwgV1RGOjpTdHJpbmcmIHJlc3VsdCk7
Ci0gICAgdmlydHVhbCB2b2lkIHNldFN0YXR1c2JhclRleHQoY29uc3QgV1RGOjpTdHJpbmcmKTsK
LSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW50ZXJydXB0SmF2YVNjcmlwdCgpOwotICAgIHZpcnR1
YWwgV2ViQ29yZTo6S2V5Ym9hcmRVSU1vZGUga2V5Ym9hcmRVSU1vZGUoKTsKKyAgICB2aXJ0dWFs
IHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJp
bmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oV2Vi
Q29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
Ym9vbCBydW5KYXZhU2NyaXB0UHJvbXB0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgV1RGOjpTdHJp
bmcmIG1lc3NhZ2UsIGNvbnN0IFdURjo6U3RyaW5nJiBkZWZhdWx0VmFsdWUsIFdURjo6U3RyaW5n
JiByZXN1bHQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRTdGF0dXNiYXJUZXh0KGNv
bnN0IFdURjo6U3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3VsZEludGVy
cnVwdEphdmFTY3JpcHQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OktleWJvYXJk
VUlNb2RlIGtleWJvYXJkVUlNb2RlKCkgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6
OkludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6
OkludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdCBPVkVSUklERTsKIAogICAgIC8vIE1l
dGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9v
dFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCBp
bnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9v
bCk7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29u
c3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0Jik7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Ub1Jv
b3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Q7Ci0gICAgdmlydHVhbCBXZWJD
b3JlOjpJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNv
bnN0OwotICAgIHZpcnR1YWwgUGxhdGZvcm1QYWdlQ2xpZW50IHBsYXRmb3JtUGFnZUNsaWVudCgp
IGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1NpemVDaGFuZ2VkKFdlYkNvcmU6OkZy
YW1lKiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGxSZWN0SW50b1ZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0OyAvLyBDdXJy
ZW50bHkgb25seSBNYWMgaGFzIGEgbm9uIGVtcHR5IGltcGxlbWVudGF0aW9uLgotICAgIHZpcnR1
YWwgdm9pZCBzY3JvbGxiYXJzTW9kZURpZENoYW5nZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJik7Ci0gICAgdmlydHVhbCB2b2lkIHNl
dEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKSBPVkVSUklERTsK
KyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYsIGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlk
YXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUm
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29y
ZTo6SW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBjb25z
dCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBsYXRmb3JtUGFnZUNsaWVudCBwbGF0Zm9ybVBhZ2VD
bGllbnQoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNTaXplQ2hh
bmdlZChXZWJDb3JlOjpGcmFtZSosIGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBjb25zdCBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsYmFyc01vZGVEaWRDaGFuZ2UoKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNv
ciYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNl
TW92ZXMoYm9vbCkgT1ZFUlJJREU7CiAgICAgLy8gRW5kIG1ldGhvZHMgdXNlZCBieSBIb3N0V2lu
ZG93LgogCi0gICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdl
YkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKKyAgICB2aXJ0
dWFsIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJl
c3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2
b2lkIHNldFRvb2xUaXAoY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9u
KTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VG9vbFRpcChjb25zdCBXVEY6OlN0cmluZyYsIFdlYkNv
cmU6OlRleHREaXJlY3Rpb24pIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIHByaW50KFdl
YkNvcmU6OkZyYW1lKik7CisgICAgdmlydHVhbCB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lKikg
T1ZFUlJJREU7CiAKICNpZiBFTkFCTEUoU1FMX0RBVEFCQVNFKQotICAgIHZpcnR1YWwgdm9pZCBl
eGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmluZyYg
ZGF0YWJhc2VOYW1lLCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMpOworICAgIHZpcnR1YWwgdm9p
ZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUqLCBjb25zdCBXVEY6OlN0cmlu
ZyYgZGF0YWJhc2VOYW1lLCBXZWJDb3JlOjpEYXRhYmFzZURldGFpbHMpIE9WRVJSSURFOwogI2Vu
ZGlmCiAKICAgICAvLyBDYWxsYmFjayBpbnZva2VkIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGNhY2hl
IGZhaWxzIHRvIHNhdmUgYSBjYWNoZSBvYmplY3QKQEAgLTEyMSw1MyArMTIwLDQ5IEBAIHB1Ymxp
YzoKICAgICAvLyBzaXplIG9yIHBhc3QgdGhlIGFtb3VudCBvZiBmcmVlIHNwYWNlIG9uIHRoZSBk
ZXZpY2UuCiAgICAgLy8gVGhlIGNocm9tZSBjbGllbnQgd291bGQgbmVlZCB0byB0YWtlIHNvbWUg
YWN0aW9uIHN1Y2ggYXMgZXZpY3Rpbmcgc29tZQogICAgIC8vIG9sZCBjYWNoZXMuCi0gICAgdmly
dHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRlZCk7Cisg
ICAgdmlydHVhbCB2b2lkIHJlYWNoZWRNYXhBcHBDYWNoZVNpemUoaW50NjRfdCBzcGFjZU5lZWRl
ZCkgT1ZFUlJJREU7CiAKICAgICAvLyBDYWxsYmFjayBpbnZva2VkIHdoZW4gdGhlIGFwcGxpY2F0
aW9uIGNhY2hlIG9yaWdpbiBxdW90YSBpcyByZWFjaGVkLiBUaGlzCiAgICAgLy8gbWVhbnMgdGhh
dCB0aGUgcmVzb3VyY2VzIGF0dGVtcHRpbmcgdG8gYmUgY2FjaGVkIHZpYSB0aGUgbWFuaWZlc3Qg
YXJlCiAgICAgLy8gbW9yZSB0aGFuIGFsbG93ZWQgb24gdGhpcyBvcmlnaW4uIFRoaXMgY2FsbGJh
Y2sgYWxsb3dzIHRoZSBjaHJvbWUgY2xpZW50CiAgICAgLy8gdG8gdGFrZSBhY3Rpb24sIHN1Y2gg
YXMgcHJvbXB0aW5nIHRoZSB1c2VyIHRvIGFzayB0byBpbmNyZWFzZSB0aGUgcXVvdGEKICAgICAv
LyBmb3IgdGhpcyBvcmlnaW4uCi0gICAgdmlydHVhbCB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNh
Y2hlT3JpZ2luUXVvdGEoV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4qLCBpbnQ2NF90IHRvdGFsU3Bh
Y2VOZWVkZWQpOworICAgIHZpcnR1YWwgdm9pZCByZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdp
blF1b3RhKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgaW50NjRfdCB0b3RhbFNwYWNlTmVlZGVk
KSBPVkVSUklERTsKIAotI2lmIEVOQUJMRShOT1RJRklDQVRJT05TKSB8fCBFTkFCTEUoTEVHQUNZ
X05PVElGSUNBVElPTlMpCi0gICAgdmlydHVhbCBXZWJDb3JlOjpOb3RpZmljYXRpb25DbGllbnQq
IG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0OwotI2VuZGlmCi0KLSAgICB2aXJ0dWFsIHZv
aWQgcnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lKiwgUGFzc1JlZlB0cjxXZWJDb3JlOjpGaWxl
Q2hvb3Nlcj4pOworICAgIHZpcnR1YWwgdm9pZCBydW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJhbWUq
LCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZpbGVDaG9vc2VyPikgT1ZFUlJJREU7CiAgICAgLy8gQXN5
bmNocm9ub3VzIHJlcXVlc3QgdG8gbG9hZCBhbiBpY29uIGZvciBzcGVjaWZpZWQgZmlsZW5hbWVz
LgotICAgIHZpcnR1YWwgdm9pZCBsb2FkSWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0
cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNvbkxvYWRlciopOworICAgIHZpcnR1YWwgdm9pZCBsb2Fk
SWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxXVEY6OlN0cmluZz4mLCBXZWJDb3JlOjpGaWxlSWNv
bkxvYWRlciopIE9WRVJSSURFOwogCiAgICAgLy8gTm90aWZpY2F0aW9uIHRoYXQgdGhlIGdpdmVu
IGZvcm0gZWxlbWVudCBoYXMgY2hhbmdlZC4gVGhpcyBmdW5jdGlvbgogICAgIC8vIHdpbGwgYmUg
Y2FsbGVkIGZyZXF1ZW50bHksIHNvIGhhbmRsaW5nIHNob3VsZCBiZSB2ZXJ5IGZhc3QuCi0gICAg
dmlydHVhbCB2b2lkIGZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpOb2RlKik7Cisg
ICAgdmlydHVhbCB2b2lkIGZvcm1TdGF0ZURpZENoYW5nZShjb25zdCBXZWJDb3JlOjpOb2RlKikg
T1ZFUlJJREU7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiAgICAgLy8gUGFz
cyAwIGFzIHRoZSBHcmFwaGljc0xheWVyIHRvIGRldGF0Y2ggdGhlIHJvb3QgbGF5ZXIuCi0gICAg
dmlydHVhbCB2b2lkIGF0dGFjaFJvb3RHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopOworICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hSb290R3JhcGhp
Y3NMYXllcihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBPVkVSUklE
RTsKICAgICAvLyBTZXRzIGEgZmxhZyB0byBzcGVjaWZ5IHRoYXQgdGhlIG5leHQgdGltZSBjb250
ZW50IGlzIGRyYXduIHRvIHRoZSB3aW5kb3csCiAgICAgLy8gdGhlIGNoYW5nZXMgYXBwZWFyIG9u
IHRoZSBzY3JlZW4gaW4gc3luY2hyb255IHdpdGggdXBkYXRlcyB0byBHcmFwaGljc0xheWVycy4K
LSAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbigp
OworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc09uZVNob3REcmF3aW5nU3luY2hyb25pemF0aW9u
KCkgT1ZFUlJJREU7CiAgICAgLy8gU2V0cyBhIGZsYWcgdG8gc3BlY2lmeSB0aGF0IHRoZSB2aWV3
IG5lZWRzIHRvIGJlIHVwZGF0ZWQsIHNvIHdlIG5lZWQKICAgICAvLyB0byBkbyBhbiBlYWdlciBs
YXlvdXQgYmVmb3JlIHRoZSBkcmF3aW5nLgotICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBv
c2l0aW5nTGF5ZXJGbHVzaCgpOworICAgIHZpcnR1YWwgdm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5n
TGF5ZXJGbHVzaCgpIE9WRVJSSURFOwogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQgc2V0TGFz
dFNldEN1cnNvclRvQ3VycmVudEN1cnNvcigpOwotICAgIHZpcnR1YWwgdm9pZCBBWFN0YXJ0RnJh
bWVMb2FkKCk7Ci0gICAgdmlydHVhbCB2b2lkIEFYRmluaXNoRnJhbWVMb2FkKCk7CisgICAgdmly
dHVhbCB2b2lkIHNldExhc3RTZXRDdXJzb3JUb0N1cnJlbnRDdXJzb3IoKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgQVhTdGFydEZyYW1lTG9hZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBBWEZpbmlzaEZyYW1lTG9hZCgpIE9WRVJSSURFOwogCiAjaWYgRU5BQkxFKFRPVUNIX0VW
RU5UUykKLSAgICB2aXJ0dWFsIHZvaWQgbmVlZFRvdWNoRXZlbnRzKGJvb2wpOworICAgIHZpcnR1
YWwgdm9pZCBuZWVkVG91Y2hFdmVudHMoYm9vbCkgT1ZFUlJJREU7CiAjZW5kaWYKIAotICAgIHZp
cnR1YWwgYm9vbCBzZWxlY3RJdGVtV3JpdGluZ0RpcmVjdGlvbklzTmF0dXJhbCgpOwotICAgIHZp
cnR1YWwgYm9vbCBzZWxlY3RJdGVtQWxpZ25tZW50Rm9sbG93c01lbnVXcml0aW5nRGlyZWN0aW9u
KCk7Ci0gICAgdmlydHVhbCBib29sIGhhc09wZW5lZFBvcHVwKCkgY29uc3Q7Ci0gICAgdmlydHVh
bCBQYXNzUmVmUHRyPFdlYkNvcmU6OlBvcHVwTWVudT4gY3JlYXRlUG9wdXBNZW51KFdlYkNvcmU6
OlBvcHVwTWVudUNsaWVudCopIGNvbnN0OwotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpTZWFyY2hQb3B1cE1lbnU+IGNyZWF0ZVNlYXJjaFBvcHVwTWVudShXZWJDb3JlOjpQb3B1cE1l
bnVDbGllbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbVdyaXRpbmdEaXJl
Y3Rpb25Jc05hdHVyYWwoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2VsZWN0SXRlbUFs
aWdubWVudEZvbGxvd3NNZW51V3JpdGluZ0RpcmVjdGlvbigpIE9WRVJSSURFOworICAgIHZpcnR1
YWwgYm9vbCBoYXNPcGVuZWRQb3B1cCgpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFz
c1JlZlB0cjxXZWJDb3JlOjpQb3B1cE1lbnU+IGNyZWF0ZVBvcHVwTWVudShXZWJDb3JlOjpQb3B1
cE1lbnVDbGllbnQqKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6U2VhcmNoUG9wdXBNZW51PiBjcmVhdGVTZWFyY2hQb3B1cE1lbnUoV2ViQ29yZTo6UG9w
dXBNZW51Q2xpZW50KikgY29uc3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgbnVtV2hl
ZWxFdmVudEhhbmRsZXJzQ2hhbmdlZCh1bnNpZ25lZCkgeyB9CisgICAgdmlydHVhbCB2b2lkIG51
bVdoZWVsRXZlbnRIYW5kbGVyc0NoYW5nZWQodW5zaWduZWQpIE9WRVJSSURFIHsgfQogCiBwcml2
YXRlOgogICAgIFdlYlZpZXcqIG1fd2ViVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luY2UvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRXaW5DRS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0NvbnRleHRNZW51Q2xpZW50V2luQ0UuY3BwCmlu
ZGV4IDdiNWQ2MWYwY2Q0ZjQyYTViZTc3ZjcxMzUxODZhMmQ1MDY0Yjk5MmUuLmRmY2U3ZjM1ZTA1
ZjlmMzE5ODJiNzliMzJmZjhiMzI1MmQxNWMyNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2luY2UvV2ViQ29yZVN1cHBvcnQvQ29udGV4dE1lbnVDbGllbnRXaW5DRS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9Db250ZXh0TWVudUNsaWVudFdpbkNFLmNw
cApAQCAtNTcsMTEgKzU3LDYgQEAgdm9pZCBDb250ZXh0TWVudUNsaWVudFdpbkNFOjpkb3dubG9h
ZFVSTChjb25zdCBVUkwmIHVybCkKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIENv
bnRleHRNZW51Q2xpZW50V2luQ0U6OmNvcHlJbWFnZVRvQ2xpcGJvYXJkKGNvbnN0IEhpdFRlc3RS
ZXN1bHQmKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIHZvaWQgQ29udGV4dE1lbnVD
bGllbnRXaW5DRTo6c2VhcmNoV2l0aEdvb2dsZShjb25zdCBGcmFtZSopCiB7CiAgICAgbm90SW1w
bGVtZW50ZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvQ29udGV4dE1lbnVDbGllbnRXaW5DRS5oIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3Jl
U3VwcG9ydC9Db250ZXh0TWVudUNsaWVudFdpbkNFLmgKaW5kZXggZGI3NTZmM2QyZTVhZTUzOGYy
MTZiYzYxODQxMzU5NzkyOWIyOWQzYy4uMTFlOTZmODE5ZDVhNGE2ZWU3MWE5MTE5YjkzMzQ5NTQx
MmRiMzY4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9D
b250ZXh0TWVudUNsaWVudFdpbkNFLmgKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3Jl
U3VwcG9ydC9Db250ZXh0TWVudUNsaWVudFdpbkNFLmgKQEAgLTM1LDE4ICszNSwxNyBAQCBjbGFz
cyBDb250ZXh0TWVudUNsaWVudFdpbkNFIDogcHVibGljIFdlYkNvcmU6OkNvbnRleHRNZW51Q2xp
ZW50IHsKIHB1YmxpYzoKICAgICBDb250ZXh0TWVudUNsaWVudFdpbkNFKFdlYlZpZXcqKTsKIAot
ICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0TWVudURlc3Ryb3llZCgpOwotCi0gICAgdmlydHVhbCBQ
YXNzT3duUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51PiBjdXN0b21pemVNZW51KFBhc3NPd25QdHI8
V2ViQ29yZTo6Q29udGV4dE1lbnU+KTsKLSAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVJdGVt
U2VsZWN0ZWQoV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtKiwgY29uc3QgV2ViQ29yZTo6Q29udGV4
dE1lbnUqKTsKLQotICAgIHZpcnR1YWwgdm9pZCBkb3dubG9hZFVSTChjb25zdCBXZWJDb3JlOjpV
UkwmKTsKLSAgICB2aXJ0dWFsIHZvaWQgY29weUltYWdlVG9DbGlwYm9hcmQoY29uc3QgV2ViQ29y
ZTo6SGl0VGVzdFJlc3VsdCYpOwotICAgIHZpcnR1YWwgdm9pZCBzZWFyY2hXaXRoR29vZ2xlKGNv
bnN0IFdlYkNvcmU6OkZyYW1lKik7Ci0gICAgdmlydHVhbCB2b2lkIGxvb2tVcEluRGljdGlvbmFy
eShXZWJDb3JlOjpGcmFtZSopOwotICAgIHZpcnR1YWwgdm9pZCBzcGVhayhjb25zdCBXVEY6OlN0
cmluZyYpOwotICAgIHZpcnR1YWwgdm9pZCBzdG9wU3BlYWtpbmcoKTsKLSAgICB2aXJ0dWFsIGJv
b2wgaXNTcGVha2luZygpOworICAgIHZpcnR1YWwgdm9pZCBjb250ZXh0TWVudURlc3Ryb3llZCgp
IE9WRVJSSURFOworCisgICAgdmlydHVhbCBQYXNzT3duUHRyPFdlYkNvcmU6OkNvbnRleHRNZW51
PiBjdXN0b21pemVNZW51KFBhc3NPd25QdHI8V2ViQ29yZTo6Q29udGV4dE1lbnU+KSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoV2ViQ29yZTo6Q29u
dGV4dE1lbnVJdGVtKiwgY29uc3QgV2ViQ29yZTo6Q29udGV4dE1lbnUqKSBPVkVSUklERTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBkb3dubG9hZFVSTChjb25zdCBXZWJDb3JlOjpVUkwmKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgc2VhcmNoV2l0aEdvb2dsZShjb25zdCBXZWJDb3JlOjpGcmFt
ZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBsb29rVXBJbkRpY3Rpb25hcnkoV2ViQ29y
ZTo6RnJhbWUqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3BlYWsoY29uc3QgV1RGOjpT
dHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc3RvcFNwZWFraW5nKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBib29sIGlzU3BlYWtpbmcoKSBPVkVSUklERTsKIAogcHJpdmF0ZToK
ICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRXaW5DRS5jcHAKaW5kZXggOTA0YzYxYWU4MTk4OTI2
YmNmNmQ0NTRiODAxYzNjODcwMzI0ZGI4Zi4uYmI0MzkxOGFhOTAxNjljMzVlMWNhZDBjMjBiN2Zm
OWVkZTgyOTU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9y
dC9EcmFnQ2xpZW50V2luQ0UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1
cHBvcnQvRHJhZ0NsaWVudFdpbkNFLmNwcApAQCAtMzEsMTcgKzMxLDE3IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBEcmFnQ2xpZW50V2lu
Q0U6OndpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFjdGlv
biwgRHJhZ0RhdGEqKQordm9pZCBEcmFnQ2xpZW50V2luQ0U6OndpbGxQZXJmb3JtRHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFjdGlvbiwgRHJhZ0RhdGEmKQogewogICAgIG5v
dEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgRHJhZ0NsaWVudFdpbkNFOjp3aWxsUGVyZm9ybURy
YWdTb3VyY2VBY3Rpb24oRHJhZ1NvdXJjZUFjdGlvbiwgY29uc3QgSW50UG9pbnQmLCBDbGlwYm9h
cmQqKQordm9pZCBEcmFnQ2xpZW50V2luQ0U6OndpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihE
cmFnU291cmNlQWN0aW9uLCBjb25zdCBJbnRQb2ludCYsIENsaXBib2FyZCYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAotRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIERyYWdDbGllbnRXaW5D
RTo6YWN0aW9uTWFza0ZvckRyYWcoRHJhZ0RhdGEqKQorRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIERy
YWdDbGllbnRXaW5DRTo6YWN0aW9uTWFza0ZvckRyYWcoRHJhZ0RhdGEmKQogewogICAgIG5vdElt
cGxlbWVudGVkKCk7CiAgICAgcmV0dXJuIERyYWdEZXN0aW5hdGlvbkFjdGlvbkFueTsKQEAgLTUz
LDcgKzUzLDcgQEAgRHJhZ1NvdXJjZUFjdGlvbiBEcmFnQ2xpZW50V2luQ0U6OmRyYWdTb3VyY2VB
Y3Rpb25NYXNrRm9yUG9pbnQoY29uc3QgSW50UG9pbnQmKQogICAgIHJldHVybiBEcmFnU291cmNl
QWN0aW9uQW55OwogfQogCi12b2lkIERyYWdDbGllbnRXaW5DRTo6c3RhcnREcmFnKERyYWdJbWFn
ZVJlZiwgY29uc3QgSW50UG9pbnQmLCBjb25zdCBJbnRQb2ludCYsIENsaXBib2FyZCosIEZyYW1l
KiwgYm9vbCkKK3ZvaWQgRHJhZ0NsaWVudFdpbkNFOjpzdGFydERyYWcoRHJhZ0ltYWdlUmVmLCBj
b25zdCBJbnRQb2ludCYsIGNvbnN0IEludFBvaW50JiwgQ2xpcGJvYXJkJiwgRnJhbWUmLCBib29s
KQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0RyYWdDbGllbnRXaW5DRS5oIGIvU291cmNlL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9EcmFnQ2xpZW50V2luQ0UuaAppbmRleCBlYzgxZjMwNWJiYzA4
NjIxOTExYzRlZTRhZDE4NGRjZmMzOTkyMThlLi5hNDg1OTQyZTg5OTdiYzE4YTkxOWI4ZGNlYTBl
ZjY4ZWI1OTllNmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBw
b3J0L0RyYWdDbGllbnRXaW5DRS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1
cHBvcnQvRHJhZ0NsaWVudFdpbkNFLmgKQEAgLTMxLDE1ICszMSwxNSBAQCBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgRHJhZ0NsaWVudFdpbkNFIDogcHVibGljIFdlYkNvcmU6OkRyYWdDbGll
bnQgewogcHVibGljOgotICAgIHZpcnR1YWwgdm9pZCB3aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlv
bkFjdGlvbihXZWJDb3JlOjpEcmFnRGVzdGluYXRpb25BY3Rpb24sIFdlYkNvcmU6OkRyYWdEYXRh
Kik7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxQZXJmb3JtRHJhZ1NvdXJjZUFjdGlvbihXZWJDb3Jl
OjpEcmFnU291cmNlQWN0aW9uLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIFdlYkNvcmU6OkNs
aXBib2FyZCopOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6RHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIGFj
dGlvbk1hc2tGb3JEcmFnKFdlYkNvcmU6OkRyYWdEYXRhKik7CisgICAgdmlydHVhbCB2b2lkIHdp
bGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKFdlYkNvcmU6OkRyYWdEZXN0aW5hdGlvbkFj
dGlvbiwgV2ViQ29yZTo6RHJhZ0RhdGEmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd2ls
bFBlcmZvcm1EcmFnU291cmNlQWN0aW9uKFdlYkNvcmU6OkRyYWdTb3VyY2VBY3Rpb24sIGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiwgV2ViQ29yZTo6Q2xpcGJvYXJkJikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBXZWJDb3JlOjpEcmFnRGVzdGluYXRpb25BY3Rpb24gYWN0aW9uTWFza0ZvckRyYWco
V2ViQ29yZTo6RHJhZ0RhdGEmKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6RHJh
Z1NvdXJjZUFjdGlvbiBkcmFnU291cmNlQWN0aW9uTWFza0ZvclBvaW50KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50Jik7CisgICAgdmlydHVhbCBXZWJDb3JlOjpEcmFnU291cmNlQWN0aW9uIGRyYWdT
b3VyY2VBY3Rpb25NYXNrRm9yUG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBPVkVSUklE
RTsKIAotICAgIHZpcnR1YWwgdm9pZCBzdGFydERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdlUmVmLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgV2ViQ29y
ZTo6Q2xpcGJvYXJkKiwgV2ViQ29yZTo6RnJhbWUqLCBib29sID0gZmFsc2UpOworICAgIHZpcnR1
YWwgdm9pZCBzdGFydERyYWcoV2ViQ29yZTo6RHJhZ0ltYWdlUmVmLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgV2ViQ29yZTo6Q2xpcGJvYXJkJiwg
V2ViQ29yZTo6RnJhbWUmLCBib29sID0gZmFsc2UpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2
b2lkIGRyYWdDb250cm9sbGVyRGVzdHJveWVkKCk7CisgICAgdmlydHVhbCB2b2lkIGRyYWdDb250
cm9sbGVyRGVzdHJveWVkKCkgT1ZFUlJJREU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50V2luQ0UuaCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50V2luQ0UuaAppbmRleCA5ZDMyZWE2ZGY3OTY5Mjc3OWQwNTZjNWM0M2E5ZGI5NmNmMjA3NmIx
Li4zNDExNDY1ZDk5YzM1MTVjMjUxZGJmNTFkNDA5MjQ2YzQ0ODQ4ZjA4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmgKKysr
IGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5o
CkBAIC0zNyw3NSArMzcsNzYgQEAgcHVibGljOgogICAgIEVkaXRvckNsaWVudFdpbkNFKFdlYlZp
ZXcqKTsKICAgICB+RWRpdG9yQ2xpZW50V2luQ0UoKTsKIAotICAgIHZpcnR1YWwgdm9pZCBwYWdl
RGVzdHJveWVkKCk7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoV2ViQ29y
ZTo6UmFuZ2UqKTsKLSAgICB2aXJ0dWFsIGJvb2wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7
Ci0gICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwot
ICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOwotICAg
IHZpcnR1YWwgdm9pZCB0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpOwotICAgIHZpcnR1
YWwgYm9vbCBpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgdG9n
Z2xlR3JhbW1hckNoZWNraW5nKCk7Ci0gICAgdmlydHVhbCBpbnQgc3BlbGxDaGVja2VyRG9jdW1l
bnRUYWcoKTsKLQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRCZWdpbkVkaXRpbmcoV2ViQ29yZTo6
UmFuZ2UqKTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRW5kRWRpdGluZyhXZWJDb3JlOjpSYW5n
ZSopOwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnROb2RlKFdlYkNvcmU6Ok5vZGUqLCBX
ZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OkVkaXRvckluc2VydEFjdGlvbik7Ci0gICAgdmlydHVh
bCBib29sIHNob3VsZEluc2VydFRleHQoY29uc3QgV1RGOjpTdHJpbmcmLCBXZWJDb3JlOjpSYW5n
ZSosIFdlYkNvcmU6OkVkaXRvckluc2VydEFjdGlvbik7Ci0gICAgdmlydHVhbCBib29sIHNob3Vs
ZENoYW5nZVNlbGVjdGVkUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpSYW5nZSosIFdl
YkNvcmU6OkVBZmZpbml0eSwgYm9vbCk7Ci0KLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlT
dHlsZShXZWJDb3JlOjpTdHlsZVByb3BlcnR5U2V0KiwgV2ViQ29yZTo6UmFuZ2UqKTsKLSAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkTW92ZVJhbmdlQWZ0ZXJEZWxldGUoV2ViQ29yZTo6UmFuZ2UqLCBX
ZWJDb3JlOjpSYW5nZSopOwotCi0gICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRpdGluZygpOwot
ICAgIHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFuZ2VkQ29udGVudHMoKTsKLSAgICB2aXJ0dWFs
IHZvaWQgcmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihXZWJDb3JlOjpGcmFtZSopOwotICAgIHZp
cnR1YWwgdm9pZCBkaWRFbmRFZGl0aW5nKCk7Ci0gICAgdmlydHVhbCB2b2lkIHdpbGxXcml0ZVNl
bGVjdGlvblRvUGFzdGVib2FyZChXZWJDb3JlOjpSYW5nZSopOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgpOwotICAgIHZpcnR1YWwgdm9pZCBnZXRDbGll
bnRQYXN0ZWJvYXJkRGF0YUZvclJhbmdlKFdlYkNvcmU6OlJhbmdlKiwgVmVjdG9yPFN0cmluZz4m
IHBhc3RlYm9hcmRUeXBlcywgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+ID4m
IHBhc3RlYm9hcmREYXRhKTsKLQotICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclVuZG9TdGVwKFdU
Rjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpVbmRvU3RlcD4pOwotICAgIHZpcnR1YWwgdm9pZCByZWdp
c3RlclJlZG9TdGVwKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpVbmRvU3RlcD4pOwotICAgIHZp
cnR1YWwgdm9pZCBjbGVhclVuZG9SZWRvT3BlcmF0aW9ucygpOwotCi0gICAgdmlydHVhbCBib29s
IGNhbkNvcHlDdXQoV2ViQ29yZTo6RnJhbWUqLCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3Q7Ci0g
ICAgdmlydHVhbCBib29sIGNhblBhc3RlKFdlYkNvcmU6OkZyYW1lKiwgYm9vbCBkZWZhdWx0VmFs
dWUpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBjYW5VbmRvKCkgY29uc3Q7Ci0gICAgdmlydHVh
bCBib29sIGNhblJlZG8oKSBjb25zdDsKLQotICAgIHZpcnR1YWwgdm9pZCB1bmRvKCk7Ci0gICAg
dmlydHVhbCB2b2lkIHJlZG8oKTsKLQotICAgIHZpcnR1YWwgY29uc3QgY2hhciogaW50ZXJwcmV0
S2V5RXZlbnQoY29uc3QgV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopOwotICAgIHZpcnR1YWwgYm9v
bCBoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7Ci0g
ICAgdmlydHVhbCB2b2lkIGhhbmRsZUtleWJvYXJkRXZlbnQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVu
dCopOwotICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24oV2ViQ29yZTo6
S2V5Ym9hcmRFdmVudCopOwotCi0gICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERpZEJlZ2luRWRp
dGluZyhXZWJDb3JlOjpFbGVtZW50Kik7Ci0gICAgdmlydHVhbCB2b2lkIHRleHRGaWVsZERpZEVu
ZEVkaXRpbmcoV2ViQ29yZTo6RWxlbWVudCopOwotICAgIHZpcnR1YWwgdm9pZCB0ZXh0RGlkQ2hh
bmdlSW5UZXh0RmllbGQoV2ViQ29yZTo6RWxlbWVudCopOwotICAgIHZpcnR1YWwgYm9vbCBkb1Rl
eHRGaWVsZENvbW1hbmRGcm9tRXZlbnQoV2ViQ29yZTo6RWxlbWVudCosIFdlYkNvcmU6OktleWJv
YXJkRXZlbnQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgdGV4dFdpbGxCZURlbGV0ZWRJblRleHRGaWVs
ZChXZWJDb3JlOjpFbGVtZW50Kik7Ci0gICAgdmlydHVhbCB2b2lkIHRleHREaWRDaGFuZ2VJblRl
eHRBcmVhKFdlYkNvcmU6OkVsZW1lbnQqKTsKLQotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRFcmFz
ZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVjdGlvbihXZWJDb3JlOjpUZXh0Q2hlY2tpbmdUeXBlKSBj
b25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgaWdub3JlV29yZEluU3BlbGxEb2N1bWVudChjb25zdCBX
VEY6OlN0cmluZyYpOwotICAgIHZpcnR1YWwgdm9pZCBsZWFybldvcmQoY29uc3QgV1RGOjpTdHJp
bmcmKTsKLSAgICB2aXJ0dWFsIHZvaWQgY2hlY2tTcGVsbGluZ09mU3RyaW5nKGNvbnN0IFVDaGFy
KiwgaW50LCBpbnQqLCBpbnQqKTsKLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGdldEF1dG9Db3Jy
ZWN0U3VnZ2VzdGlvbkZvck1pc3NwZWxsZWRXb3JkKGNvbnN0IFdURjo6U3RyaW5nJik7Ci0gICAg
dmlydHVhbCB2b2lkIGNoZWNrR3JhbW1hck9mU3RyaW5nKGNvbnN0IFVDaGFyKiwgaW50LCBXVEY6
OlZlY3RvcjxXZWJDb3JlOjpHcmFtbWFyRGV0YWlsPiYsIGludCosIGludCopOwotICAgIHZpcnR1
YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcoY29uc3QgV1RGOjpTdHJp
bmcmLCBjb25zdCBXZWJDb3JlOjpHcmFtbWFyRGV0YWlsJik7Ci0gICAgdmlydHVhbCB2b2lkIHVw
ZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoY29uc3QgV1RGOjpTdHJpbmcmKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgc2hvd1NwZWxsaW5nVUkoYm9vbCk7Ci0gICAgdmlydHVhbCBib29sIHNw
ZWxsaW5nVUlJc1Nob3dpbmcoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0R3Vlc3Nlc0ZvcldvcmQo
Y29uc3QgV1RGOjpTdHJpbmcmIHdvcmQsIGNvbnN0IFdURjo6U3RyaW5nJiBjb250ZXh0LCBXVEY6
OlZlY3RvcjxXVEY6OlN0cmluZz4mIGd1ZXNzZXMpOwotICAgIHZpcnR1YWwgdm9pZCB3aWxsU2V0
SW5wdXRNZXRob2RTdGF0ZSgpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRJbnB1dE1ldGhvZFN0YXRl
KGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhXVEY6OlBh
c3NSZWZQdHI8V2ViQ29yZTo6VGV4dENoZWNraW5nUmVxdWVzdD4pIHsgfQotICAgIHZpcnR1YWwg
V2ViQ29yZTo6VGV4dENoZWNrZXJDbGllbnQqIHRleHRDaGVja2VyKCkgeyByZXR1cm4gdGhpczsg
fQorICAgIHZpcnR1YWwgdm9pZCBwYWdlRGVzdHJveWVkKCkgT1ZFUlJJREU7CisKKyAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIGJvb2wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQoKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlR3JhbW1hckNoZWNraW5nKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBpbnQgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKSBPVkVSUklERTsK
KworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRCZWdpbkVkaXRpbmcoV2ViQ29yZTo6UmFuZ2UqKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRW5kRWRpdGluZyhXZWJDb3JlOjpSYW5n
ZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnROb2RlKFdlYkNvcmU6
Ok5vZGUqLCBXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OkVkaXRvckluc2VydEFjdGlvbikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydFRleHQoY29uc3QgV1RGOjpTdHJp
bmcmLCBXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OkVkaXRvckluc2VydEFjdGlvbikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoV2ViQ29yZTo6
UmFuZ2UqLCBXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OkVBZmZpbml0eSwgYm9vbCkgT1ZFUlJJ
REU7CisKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShXZWJDb3JlOjpTdHlsZVBy
b3BlcnR5U2V0KiwgV2ViQ29yZTo6UmFuZ2UqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkTW92ZVJhbmdlQWZ0ZXJEZWxldGUoV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpSYW5n
ZSopIE9WRVJSSURFOworCisgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRpdGluZygpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCByZXNwb25kVG9DaGFuZ2VkQ29udGVudHMoKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzcG9uZFRvQ2hhbmdlZFNlbGVjdGlvbihXZWJDb3JlOjpG
cmFtZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRFbmRFZGl0aW5nKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHdpbGxXcml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChXZWJD
b3JlOjpSYW5nZSopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRXcml0ZVNlbGVjdGlv
blRvUGFzdGVib2FyZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBnZXRDbGllbnRQYXN0
ZWJvYXJkRGF0YUZvclJhbmdlKFdlYkNvcmU6OlJhbmdlKiwgVmVjdG9yPFN0cmluZz4mIHBhc3Rl
Ym9hcmRUeXBlcywgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+ID4mIHBhc3Rl
Ym9hcmREYXRhKSBPVkVSUklERTsKKworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclVuZG9TdGVw
KFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpVbmRvU3RlcD4pIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCByZWdpc3RlclJlZG9TdGVwKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpVbmRvU3Rl
cD4pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBjbGVhclVuZG9SZWRvT3BlcmF0aW9ucygp
IE9WRVJSSURFOworCisgICAgdmlydHVhbCBib29sIGNhbkNvcHlDdXQoV2ViQ29yZTo6RnJhbWUq
LCBib29sIGRlZmF1bHRWYWx1ZSkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGNh
blBhc3RlKFdlYkNvcmU6OkZyYW1lKiwgYm9vbCBkZWZhdWx0VmFsdWUpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgYm9vbCBjYW5VbmRvKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVh
bCBib29sIGNhblJlZG8oKSBjb25zdCBPVkVSUklERTsKKworICAgIHZpcnR1YWwgdm9pZCB1bmRv
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlZG8oKSBPVkVSUklERTsKKworICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVLZXlib2FyZEV2ZW50KFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlSW5wdXRNZXRob2RLZXlkb3duKFdlYkNv
cmU6OktleWJvYXJkRXZlbnQqKSBPVkVSUklERTsKKworICAgIHZpcnR1YWwgdm9pZCB0ZXh0Rmll
bGREaWRCZWdpbkVkaXRpbmcoV2ViQ29yZTo6RWxlbWVudCopIE9WRVJSSURFOworICAgIHZpcnR1
YWwgdm9pZCB0ZXh0RmllbGREaWRFbmRFZGl0aW5nKFdlYkNvcmU6OkVsZW1lbnQqKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgdGV4dERpZENoYW5nZUluVGV4dEZpZWxkKFdlYkNvcmU6OkVs
ZW1lbnQqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgZG9UZXh0RmllbGRDb21tYW5kRnJv
bUV2ZW50KFdlYkNvcmU6OkVsZW1lbnQqLCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50KikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHRleHRXaWxsQmVEZWxldGVkSW5UZXh0RmllbGQoV2ViQ29y
ZTo6RWxlbWVudCopIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB0ZXh0RGlkQ2hhbmdlSW5U
ZXh0QXJlYShXZWJDb3JlOjpFbGVtZW50KikgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIGJvb2wg
c2hvdWxkRXJhc2VNYXJrZXJzQWZ0ZXJDaGFuZ2VTZWxlY3Rpb24oV2ViQ29yZTo6VGV4dENoZWNr
aW5nVHlwZSkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGlnbm9yZVdvcmRJblNw
ZWxsRG9jdW1lbnQoY29uc3QgV1RGOjpTdHJpbmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgbGVhcm5Xb3JkKGNvbnN0IFdURjo6U3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGNoZWNrU3BlbGxpbmdPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCwgaW50KiwgaW50Kikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBnZXRBdXRvQ29ycmVjdFN1Z2dlc3Rp
b25Gb3JNaXNzcGVsbGVkV29yZChjb25zdCBXVEY6OlN0cmluZyYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBjaGVja0dyYW1tYXJPZlN0cmluZyhjb25zdCBVQ2hhciosIGludCwgV1RGOjpW
ZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRldGFpbD4mLCBpbnQqLCBpbnQqKSBPVkVSUklERTsKKyAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3BlbGxpbmdVSVdpdGhHcmFtbWFyU3RyaW5nKGNvbnN0IFdU
Rjo6U3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6R3JhbW1hckRldGFpbCYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCB1cGRhdGVTcGVsbGluZ1VJV2l0aE1pc3NwZWxsZWRXb3JkKGNvbnN0IFdU
Rjo6U3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHNob3dTcGVsbGluZ1VJKGJv
b2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBzcGVsbGluZ1VJSXNTaG93aW5nKCkgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGdldEd1ZXNzZXNGb3JXb3JkKGNvbnN0IFdURjo6U3Ry
aW5nJiB3b3JkLCBjb25zdCBXVEY6OlN0cmluZyYgY29udGV4dCwgV1RGOjpWZWN0b3I8V1RGOjpT
dHJpbmc+JiBndWVzc2VzKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFNldElucHV0
TWV0aG9kU3RhdGUoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0SW5wdXRNZXRob2RT
dGF0ZShib29sKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdENoZWNraW5nT2ZT
dHJpbmcoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlRleHRDaGVja2luZ1JlcXVlc3Q+KSBPVkVS
UklERSB7IH0KKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlRleHRDaGVja2VyQ2xpZW50KiB0ZXh0Q2hl
Y2tlcigpIE9WRVJSSURFIHsgcmV0dXJuIHRoaXM7IH0KIAogcHJpdmF0ZToKKyAgICBjb25zdCBj
aGFyKiBpbnRlcnByZXRLZXlFdmVudChjb25zdCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7Cisg
ICAgYm9vbCBoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChXZWJDb3JlOjpLZXlib2FyZEV2ZW50
Kik7CisKICAgICBXZWJWaWV3KiBtX3dlYlZpZXc7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwIGIv
U291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFdpbkNF
LmNwcAppbmRleCA0ZmQ2NGVjM2U5Y2RiM2E3MDA0ODNiYTYwMjcyMWVhYjU2MzQ2ZDhiLi5lYTIy
ODVjMTM0MDJkZGVmNjU4YzYyNzQyOTE4ZmU1ZDFhMThhNjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRX
aW5DRS5jcHAKQEAgLTE0MCwyNyArMTQwLDI3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW5D
RTo6ZGlzcGF0Y2hEaWRSZWNlaXZlUmVzcG9uc2UoRG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lCiAg
ICAgbV9yZXNwb25zZSA9IHJlc3BvbnNlOwogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2lu
Q0U6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoRnJhbWVQb2xpY3lGdW5jdGlvbiBw
b2xpY3lGdW5jdGlvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpCit2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
V2luQ0U6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IEZyYW1lUG9saWN5RnVuY3Rpb24gcG9saWN5RnVuY3Rpb24pCiB7CiAgICAgaWYgKGNhblNob3dN
SU1FVHlwZShyZXNwb25zZS5taW1lVHlwZSgpKSkKLSAgICAgICAgKG1fZnJhbWUtPmxvYWRlcigp
LnBvbGljeUNoZWNrZXIoKS4qcG9saWN5RnVuY3Rpb24pKFBvbGljeVVzZSk7CisgICAgICAgIHBv
bGljeUZ1bmN0aW9uKFBvbGljeVVzZSk7CiAgICAgZWxzZQotICAgICAgICAobV9mcmFtZS0+bG9h
ZGVyKCkucG9saWN5Q2hlY2tlcigpLipwb2xpY3lGdW5jdGlvbikoUG9saWN5RG93bmxvYWQpOwor
ICAgICAgICBwb2xpY3lGdW5jdGlvbihQb2xpY3lEb3dubG9hZCk7CiB9CiAKLXZvaWQgRnJhbWVM
b2FkZXJDbGllbnRXaW5DRTo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24o
RnJhbWVQb2xpY3lGdW5jdGlvbiBwb2xpY3lGdW5jdGlvbiwgY29uc3QgTmF2aWdhdGlvbkFjdGlv
biYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRl
PiwgY29uc3QgU3RyaW5nJikKK3ZvaWQgRnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgY29u
c3QgU3RyaW5nJiwgRnJhbWVQb2xpY3lGdW5jdGlvbiBwb2xpY3lGdW5jdGlvbikKIHsKLSAgICAo
bV9mcmFtZS0+bG9hZGVyKCkucG9saWN5Q2hlY2tlcigpLipwb2xpY3lGdW5jdGlvbikoUG9saWN5
VXNlKTsKKyAgICBwb2xpY3lGdW5jdGlvbihQb2xpY3lVc2UpOwogfQogCi12b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50V2luQ0U6OmRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihG
cmFtZVBvbGljeUZ1bmN0aW9uIHBvbGljeUZ1bmN0aW9uLCBjb25zdCBOYXZpZ2F0aW9uQWN0aW9u
JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgUGFzc1JlZlB0cjxGb3JtU3RhdGU+
KQordm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbkNFOjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24oY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgRnJhbWVQb2xpY3lGdW5jdGlv
biBwb2xpY3lGdW5jdGlvbikKIHsKLSAgICAobV9mcmFtZS0+bG9hZGVyKCkucG9saWN5Q2hlY2tl
cigpLipwb2xpY3lGdW5jdGlvbikoUG9saWN5VXNlKTsKKyAgICBwb2xpY3lGdW5jdGlvbihQb2xp
Y3lVc2UpOwogfQogCi12b2lkIEZyYW1lTG9hZGVyQ2xpZW50V2luQ0U6OmRpc3BhdGNoV2lsbFN1
Ym1pdEZvcm0oRnJhbWVQb2xpY3lGdW5jdGlvbiBwb2xpY3lGdW5jdGlvbiwgUGFzc1JlZlB0cjxG
b3JtU3RhdGU+KQordm9pZCBGcmFtZUxvYWRlckNsaWVudFdpbkNFOjpkaXNwYXRjaFdpbGxTdWJt
aXRGb3JtKFBhc3NSZWZQdHI8Rm9ybVN0YXRlPiwgRnJhbWVQb2xpY3lGdW5jdGlvbiBwb2xpY3lG
dW5jdGlvbikKIHsKLSAgICAobV9mcmFtZS0+bG9hZGVyKCkucG9saWN5Q2hlY2tlcigpLipwb2xp
Y3lGdW5jdGlvbikoUG9saWN5VXNlKTsKKyAgICBwb2xpY3lGdW5jdGlvbihQb2xpY3lVc2UpOwog
fQogCiBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRXaW5DRTo6Y3JlYXRlUGx1
Z2luKGNvbnN0IEludFNpemUmLCBIVE1MUGx1Z0luRWxlbWVudCosIGNvbnN0IFVSTCYsIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmLCBi
b29sKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFdpbkNFLmggYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuaAppbmRleCA3NWU0ZTVhNWI5YWEzMmY5Y2ExNmUwY2Zl
MDdlZDVmOGZkY2FmMzI0Li5kYmFmOWI3ZmNiZDM0MThjNjg2OGFlYWVjMmVkMGMwNDhjN2Y1NGNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50V2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0
L0ZyYW1lTG9hZGVyQ2xpZW50V2luQ0UuaApAQCAtMzgsMTQ4ICszOCwxNDggQEAgY2xhc3MgRnJh
bWVMb2FkZXJDbGllbnRXaW5DRSA6IHB1YmxpYyBXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudCB7
CiBwdWJsaWM6CiAgICAgRnJhbWVMb2FkZXJDbGllbnRXaW5DRShXZWJWaWV3Kik7CiAgICAgdmly
dHVhbCB+RnJhbWVMb2FkZXJDbGllbnRXaW5DRSgpOwotICAgIHZpcnR1YWwgdm9pZCBmcmFtZUxv
YWRlckRlc3Ryb3llZCgpOworICAgIHZpcnR1YWwgdm9pZCBmcmFtZUxvYWRlckRlc3Ryb3llZCgp
IE9WRVJSSURFOwogCiAgICAgV2ViVmlldyogd2ViVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fd2Vi
VmlldzsgfQogCi0gICAgdmlydHVhbCBib29sIGhhc1dlYlZpZXcoKSBjb25zdDsKLQotICAgIHZp
cnR1YWwgdm9pZCBtYWtlUmVwcmVzZW50YXRpb24oV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKTsK
LSAgICB2aXJ0dWFsIHZvaWQgZm9yY2VMYXlvdXQoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZm9yY2VM
YXlvdXRGb3JOb25IVE1MKCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q29waWVzT25TY3JvbGwo
KTsKLQotICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hlZEZyb21QYXJlbnQyKCk7Ci0gICAgdmlydHVh
bCB2b2lkIGRldGFjaGVkRnJvbVBhcmVudDMoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBhc3NpZ25J
ZGVudGlmaWVyVG9Jbml0aWFsUmVxdWVzdCh1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIsIFdlYkNv
cmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7Ci0K
LSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3QoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nICBpZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZWRpcmVjdFJlc3BvbnNl
KTsKLSAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOwotICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpE
b2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRD
YW5jZWxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVu
c2lnbmVkIGxvbmcgIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlJik7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVJlc3BvbnNlKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAgaWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERp
ZFJlY2VpdmVDb250ZW50TGVuZ3RoKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQg
bG9uZyBpZGVudGlmaWVyLCBpbnQgZGF0YUxlbmd0aCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3Bh
dGNoRGlkRmluaXNoTG9hZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxv
bmcgIGlkZW50aWZpZXIpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZhaWxMb2FkaW5n
KFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAgaWRlbnRpZmllciwgY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwotICAgIHZpcnR1YWwgYm9vbCBkaXNwYXRjaERp
ZExvYWRSZXNvdXJjZUZyb21NZW1vcnlDYWNoZShXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmLCBpbnQgbGVuZ3RoKTsKLQotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEhhbmRs
ZU9ubG9hZEV2ZW50cygpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVTZXJ2
ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCgpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRj
aERpZENhbmNlbENsaWVudFJlZGlyZWN0KCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2ls
bFBlcmZvcm1DbGllbnRSZWRpcmVjdChjb25zdCBXZWJDb3JlOjpVUkwmLCBkb3VibGUsIGRvdWJs
ZSk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdlTG9jYXRpb25XaXRoaW5QYWdl
KCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUHVzaFN0YXRlV2l0aGluUGFnZSgpOwot
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlcGxhY2VTdGF0ZVdpdGhpblBhZ2UoKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRQb3BTdGF0ZVdpdGhpblBhZ2UoKTsKLSAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hXaWxsQ2xvc2UoKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hE
aWRSZWNlaXZlSWNvbigpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkKCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZVRpdGxlKGNv
bnN0IFdlYkNvcmU6OlN0cmluZ1dpdGhEaXJlY3Rpb24mKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEaWRDaGFuZ2VJY29ucyhXZWJDb3JlOjpJY29uVHlwZSk7Ci0gICAgdmlydHVhbCB2b2lk
IGRpc3BhdGNoRGlkQ29tbWl0TG9hZCgpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZEZh
aWxQcm92aXNpb25hbExvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwotICAgIHZp
cnR1YWwgdm9pZCBkaXNwYXRjaERpZEZhaWxMb2FkKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hEb2N1bWVudExvYWQoKTsK
LSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCk7Ci0gICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGlkTGF5b3V0KFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZXMpOworICAgIHZp
cnR1YWwgYm9vbCBoYXNXZWJWaWV3KCkgY29uc3QgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIHZv
aWQgbWFrZVJlcHJlc2VudGF0aW9uKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGZvcmNlTGF5b3V0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2
b2lkIGZvcmNlTGF5b3V0Rm9yTm9uSFRNTCgpIE9WRVJSSURFOworCisgICAgdmlydHVhbCB2b2lk
IHNldENvcGllc09uU2Nyb2xsKCkgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGV0YWNo
ZWRGcm9tUGFyZW50MigpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkZXRhY2hlZEZyb21Q
YXJlbnQzKCkgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIHZvaWQgYXNzaWduSWRlbnRpZmllclRv
SW5pdGlhbFJlcXVlc3QodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyLCBXZWJDb3JlOjpEb2N1bWVu
dExvYWRlciosIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIE9WRVJSSURFOworCisg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2lsbFNlbmRSZXF1ZXN0KFdlYkNvcmU6OkRvY3VtZW50
TG9hZGVyKiwgdW5zaWduZWQgbG9uZyAgaWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkg
T1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKFdl
YkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgdW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFs
bGVuZ2UoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2Vi
Q29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nICBpZGVudGlmaWVyLCBjb25zdCBX
ZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwg
dm9pZCBkaXNwYXRjaERpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpEb2N1bWVudExvYWRlcios
IHVuc2lnbmVkIGxvbmcgIGlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9u
c2UmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlQ29udGVu
dExlbmd0aChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgaWRlbnRpZmll
ciwgaW50IGRhdGFMZW5ndGgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERp
ZEZpbmlzaExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqLCB1bnNpZ25lZCBsb25nICBp
ZGVudGlmaWVyKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGYWlsTG9h
ZGluZyhXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIHVuc2lnbmVkIGxvbmcgIGlkZW50aWZpZXIs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJv
b2wgZGlzcGF0Y2hEaWRMb2FkUmVzb3VyY2VGcm9tTWVtb3J5Q2FjaGUoV2ViQ29yZTo6RG9jdW1l
bnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiwgaW50IGxlbmd0aCkgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hEaWRIYW5kbGVPbmxvYWRFdmVudHMoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQcm92aXNpb25hbExv
YWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRDYW5jZWxDbGllbnRS
ZWRpcmVjdCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxQZXJmb3Jt
Q2xpZW50UmVkaXJlY3QoY29uc3QgV2ViQ29yZTo6VVJMJiwgZG91YmxlLCBkb3VibGUpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENoYW5nZUxvY2F0aW9uV2l0aGluUGFn
ZSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFB1c2hTdGF0ZVdpdGhp
blBhZ2UoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRSZXBsYWNlU3Rh
dGVXaXRoaW5QYWdlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUG9w
U3RhdGVXaXRoaW5QYWdlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoV2ls
bENsb3NlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkUmVjZWl2ZUlj
b24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lv
bmFsTG9hZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZFJlY2VpdmVU
aXRsZShjb25zdCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJikgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMoV2ViQ29yZTo6SWNvblR5cGUpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENvbW1pdExvYWQoKSBPVkVSUklE
RTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlz
cGF0Y2hEaWRGYWlsTG9hZChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7
CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmluaXNoRG9jdW1lbnRMb2FkKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGlkRmluaXNoTG9hZCgpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZExheW91dChXZWJDb3JlOjpMYXlvdXRNaWxlc3Rv
bmVzKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6RnJhbWUqIGRpc3BhdGNoQ3Jl
YXRlUGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJik7Ci0gICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoU2hvdygpOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RnJhbWUqIGRpc3BhdGNo
Q3JlYXRlUGFnZShjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoU2hvdygpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2
b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UoV2ViQ29yZTo6RnJhbWVQb2xpY3lG
dW5jdGlvbiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGlj
eUZvck5ld1dpbmRvd0FjdGlvbihXZWJDb3JlOjpGcmFtZVBvbGljeUZ1bmN0aW9uLCBjb25zdCBX
ZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIGNvbnN0IFdURjo6U3RyaW5n
JiBmcmFtZU5hbWUpOwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb24oV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbiwgY29uc3QgV2ViQ29y
ZTo6TmF2aWdhdGlvbkFjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdU
Rjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+KTsKLSAgICB2aXJ0dWFsIHZvaWQgY2Fu
Y2VsUG9saWN5Q2hlY2soKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEZWNpZGVQb2xpY3lG
b3JSZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbikgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0
aW9uKGNvbnN0IFdlYkNvcmU6Ok5hdmlnYXRpb25BY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmLCBXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0YXRlPiwgY29uc3Qg
V1RGOjpTdHJpbmcmIGZyYW1lTmFtZSwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbihjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uQWN0aW9uJiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0ZT4sIFdl
YkNvcmU6OkZyYW1lUG9saWN5RnVuY3Rpb24pIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBj
YW5jZWxQb2xpY3lDaGVjaygpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIGRpc3BhdGNo
VW5hYmxlVG9JbXBsZW1lbnRQb2xpY3koY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOwor
ICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFVuYWJsZVRvSW1wbGVtZW50UG9saWN5KGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlRXJyb3ImKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaXNw
YXRjaFdpbGxTZW5kU3VibWl0RXZlbnQoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkZvcm1TdGF0
ZT4pIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaFdpbGxTdWJtaXRGb3JtKFdlYkNvcmU6
OkZyYW1lUG9saWN5RnVuY3Rpb24sIFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+
KTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hXaWxsU2VuZFN1Ym1pdEV2ZW50KFdURjo6UGFz
c1JlZlB0cjxXZWJDb3JlOjpGb3JtU3RhdGU+KSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hXaWxsU3VibWl0Rm9ybShXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6Rm9ybVN0
YXRlPiwgV2ViQ29yZTo6RnJhbWVQb2xpY3lGdW5jdGlvbikgT1ZFUlJJREU7CiAKLSAgICB2aXJ0
dWFsIHZvaWQgcmV2ZXJ0VG9Qcm92aXNpb25hbFN0YXRlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
Kik7Ci0gICAgdmlydHVhbCB2b2lkIHNldE1haW5Eb2N1bWVudEVycm9yKFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpOworICAgIHZpcnR1YWwg
dm9pZCByZXZlcnRUb1Byb3Zpc2lvbmFsU3RhdGUoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWFpbkRvY3VtZW50RXJyb3IoV2ViQ29yZTo6
RG9jdW1lbnRMb2FkZXIqLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdFByb2dyZXNzU3RhcnRlZE5vdGlmaWNhdGlvbigpOwot
ICAgIHZpcnR1YWwgdm9pZCBwb3N0UHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWROb3RpZmljYXRpb24o
KTsKLSAgICB2aXJ0dWFsIHZvaWQgcG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24oKTsK
KyAgICB2aXJ0dWFsIHZvaWQgcG9zdFByb2dyZXNzU3RhcnRlZE5vdGlmaWNhdGlvbigpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgdm9pZCBwb3N0UHJvZ3Jlc3NFc3RpbWF0ZUNoYW5nZWROb3RpZmlj
YXRpb24oKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcG9zdFByb2dyZXNzRmluaXNoZWRO
b3RpZmljYXRpb24oKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3Jl
OjpGcmFtZT4gY3JlYXRlRnJhbWUoY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgV1RGOjpTdHJp
bmcmIG5hbWUsIFdlYkNvcmU6OkhUTUxGcmFtZU93bmVyRWxlbWVudCosIGNvbnN0IFdURjo6U3Ry
aW5nJiByZWZlcnJlciwgYm9vbCBhbGxvd3NTY3JvbGxpbmcsIGludCBtYXJnaW5XaWR0aCwgaW50
IG1hcmdpbkhlaWdodCk7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OldpZGdldD4g
Y3JlYXRlUGx1Z2luKGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBXZWJDb3JlOjpIVE1MUGx1Z0lu
RWxlbWVudCosIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3Ry
aW5nPiYsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYsIGNvbnN0IFdURjo6U3RyaW5n
JiwgYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIHJlY3JlYXRlUGx1Z2luKFdlYkNvcmU6OldpZGdl
dCopIHsgfQotICAgIHZpcnR1YWwgdm9pZCByZWRpcmVjdERhdGFUb1BsdWdpbihXZWJDb3JlOjpX
aWRnZXQqIHBsdWdpbldpZGdldCk7Ci0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6Oldp
ZGdldD4gY3JlYXRlSmF2YUFwcGxldFdpZGdldChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgV2Vi
Q29yZTo6SFRNTEFwcGxldEVsZW1lbnQqLCBjb25zdCBXZWJDb3JlOjpVUkwmIGJhc2VVUkwsIGNv
bnN0IFdURjo6VmVjdG9yPFdURjo6U3RyaW5nPiYgcGFyYW1OYW1lcywgY29uc3QgV1RGOjpWZWN0
b3I8V1RGOjpTdHJpbmc+JiBwYXJhbVZhbHVlcyk7Ci0gICAgdmlydHVhbCBXVEY6OlN0cmluZyBv
dmVycmlkZU1lZGlhVHlwZSgpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaERpZENs
ZWFyV2luZG93T2JqZWN0SW5Xb3JsZChXZWJDb3JlOjpET01XcmFwcGVyV29ybGQmKTsKLSAgICB2
aXJ0dWFsIHZvaWQgZG9jdW1lbnRFbGVtZW50QXZhaWxhYmxlKCk7Ci0gICAgdmlydHVhbCB2b2lk
IGRpZFBlcmZvcm1GaXJzdE5hdmlnYXRpb24oKSBjb25zdDsKKyAgICB2aXJ0dWFsIFBhc3NSZWZQ
dHI8V2ViQ29yZTo6RnJhbWU+IGNyZWF0ZUZyYW1lKGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0
IFdURjo6U3RyaW5nJiBuYW1lLCBXZWJDb3JlOjpIVE1MRnJhbWVPd25lckVsZW1lbnQqLCBjb25z
dCBXVEY6OlN0cmluZyYgcmVmZXJyZXIsIGJvb2wgYWxsb3dzU2Nyb2xsaW5nLCBpbnQgbWFyZ2lu
V2lkdGgsIGludCBtYXJnaW5IZWlnaHQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0ZVBsdWdpbihjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwg
V2ViQ29yZTo6SFRNTFBsdWdJbkVsZW1lbnQqLCBjb25zdCBXZWJDb3JlOjpVUkwmLCBjb25zdCBX
VEY6OlZlY3RvcjxXVEY6OlN0cmluZz4mLCBjb25zdCBXVEY6OlZlY3RvcjxXVEY6OlN0cmluZz4m
LCBjb25zdCBXVEY6OlN0cmluZyYsIGJvb2wpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBy
ZWNyZWF0ZVBsdWdpbihXZWJDb3JlOjpXaWRnZXQqKSBPVkVSUklERSB7IH0KKyAgICB2aXJ0dWFs
IHZvaWQgcmVkaXJlY3REYXRhVG9QbHVnaW4oV2ViQ29yZTo6V2lkZ2V0KiBwbHVnaW5XaWRnZXQp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxXZWJDb3JlOjpXaWRnZXQ+IGNyZWF0
ZUphdmFBcHBsZXRXaWRnZXQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIFdlYkNvcmU6OkhUTUxB
cHBsZXRFbGVtZW50KiwgY29uc3QgV2ViQ29yZTo6VVJMJiBiYXNlVVJMLCBjb25zdCBXVEY6OlZl
Y3RvcjxXVEY6OlN0cmluZz4mIHBhcmFtTmFtZXMsIGNvbnN0IFdURjo6VmVjdG9yPFdURjo6U3Ry
aW5nPiYgcGFyYW1WYWx1ZXMpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgb3Zl
cnJpZGVNZWRpYVR5cGUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEaWRDbGVhcldpbmRvd09iamVjdEluV29ybGQoV2ViQ29yZTo6RE9NV3JhcHBlcldvcmxkJikg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRvY3VtZW50RWxlbWVudEF2YWlsYWJsZSgpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkaWRQZXJmb3JtRmlyc3ROYXZpZ2F0aW9uKCkgY29u
c3QgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJGb3JJY29uTm90aWZpY2F0
aW9uKGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckZvckljb25Ob3RpZmljYXRpb24o
Ym9vbCkgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIFdlYkNvcmU6Ok9iamVjdENvbnRlbnRUeXBl
IG9iamVjdENvbnRlbnRUeXBlKGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFdURjo6U3RyaW5n
JiBtaW1lVHlwZSwgYm9vbCBzaG91bGRQcmVmZXJQbHVnSW5zRm9ySW1hZ2VzKTsKKyAgICB2aXJ0
dWFsIFdlYkNvcmU6Ok9iamVjdENvbnRlbnRUeXBlIG9iamVjdENvbnRlbnRUeXBlKGNvbnN0IFdl
YkNvcmU6OlVSTCYsIGNvbnN0IFdURjo6U3RyaW5nJiBtaW1lVHlwZSwgYm9vbCBzaG91bGRQcmVm
ZXJQbHVnSW5zRm9ySW1hZ2VzKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBzZXRNYWlu
RnJhbWVEb2N1bWVudFJlYWR5KGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBzZXRNYWluRnJhbWVE
b2N1bWVudFJlYWR5KGJvb2wpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCB2b2lkIHN0YXJ0RG93
bmxvYWQoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJiBzdWdn
ZXN0ZWROYW1lID0gU3RyaW5nKCkpOworICAgIHZpcnR1YWwgdm9pZCBzdGFydERvd25sb2FkKGNv
bnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkTmFt
ZSA9IFN0cmluZygpKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlVGl0
bGUoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKTsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdl
VGl0bGUoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbENo
YW5nZVRpdGxlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGRpZENoYW5nZVRpdGxlKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKikgT1ZFUlJJREU7
CiAKLSAgICB2aXJ0dWFsIHZvaWQgY29tbWl0dGVkTG9hZChXZWJDb3JlOjpEb2N1bWVudExvYWRl
ciosIGNvbnN0IGNoYXIqLCBpbnQpOwotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hlZExvYWRpbmco
V2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIqKTsKKyAgICB2aXJ0dWFsIHZvaWQgY29tbWl0dGVkTG9h
ZChXZWJDb3JlOjpEb2N1bWVudExvYWRlciosIGNvbnN0IGNoYXIqLCBpbnQpIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCBmaW5pc2hlZExvYWRpbmcoV2ViQ29yZTo6RG9jdW1lbnRMb2FkZXIq
KSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0b3J5KCk7Ci0g
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdsb2JhbEhpc3RvcnlSZWRpcmVjdExpbmtzKCk7Ci0gICAg
dmlydHVhbCBib29sIHNob3VsZEdvVG9IaXN0b3J5SXRlbShXZWJDb3JlOjpIaXN0b3J5SXRlbSop
IGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBzaG91bGRTdG9wTG9hZGluZ0Zvckhpc3RvcnlJdGVt
KFdlYkNvcmU6Okhpc3RvcnlJdGVtKikgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUds
b2JhbEhpc3RvcnkoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlR2xvYmFsSGlz
dG9yeVJlZGlyZWN0TGlua3MoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkR29U
b0hpc3RvcnlJdGVtKFdlYkNvcmU6Okhpc3RvcnlJdGVtKikgY29uc3QgT1ZFUlJJREU7CisgICAg
dmlydHVhbCBib29sIHNob3VsZFN0b3BMb2FkaW5nRm9ySGlzdG9yeUl0ZW0oV2ViQ29yZTo6SGlz
dG9yeUl0ZW0qKSBjb25zdCBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWREaXNwbGF5
SW5zZWN1cmVDb250ZW50KCk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVu
dChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdlYkNvcmU6OlVSTCYpOwotICAgIHZp
cnR1YWwgdm9pZCBkaWREZXRlY3RYU1MoY29uc3QgV2ViQ29yZTo6VVJMJiwgYm9vbCBkaWRCbG9j
a0VudGlyZVBhZ2UpOworICAgIHZpcnR1YWwgdm9pZCBkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJ1bkluc2VjdXJlQ29udGVudChXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiosIGNvbnN0IFdlYkNvcmU6OlVSTCYpIE9WRVJSSURFOworICAg
IHZpcnR1YWwgdm9pZCBkaWREZXRlY3RYU1MoY29uc3QgV2ViQ29yZTo6VVJMJiwgYm9vbCBkaWRC
bG9ja0VudGlyZVBhZ2UpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yIGNhbmNlbGxlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwot
ICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBibG9ja2VkRXJyb3IoY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVy
cm9yIGNhbm5vdFNob3dVUkxFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsK
LSAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgaW50ZXJydXB0ZWRGb3JQb2xpY3lD
aGFuZ2VFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKLQotICAgIHZpcnR1
YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93TUlNRVR5cGVFcnJvcihjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yIGZpbGVEb2VzTm90RXhpc3RFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJik7Ci0gICAgdmlydHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIHBsdWdpbldpbGxIYW5k
bGVMb2FkRXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOwotCi0gICAgdmly
dHVhbCBib29sIHNob3VsZEZhbGxCYWNrKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsK
LQotICAgIHZpcnR1YWwgYm9vbCBjYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBjYW5TaG93TUlNRVR5cGUoY29u
c3QgV1RGOjpTdHJpbmcmKSBjb25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgY2FuU2hvd01JTUVUeXBl
QXNIVE1MKGNvbnN0IFdURjo6U3RyaW5nJikgY29uc3Q7Ci0gICAgdmlydHVhbCBib29sIHJlcHJl
c2VudGF0aW9uRXhpc3RzRm9yVVJMU2NoZW1lKGNvbnN0IFdURjo6U3RyaW5nJikgY29uc3Q7Ci0g
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBnZW5lcmF0ZWRNSU1FVHlwZUZvclVSTFNjaGVtZShjb25z
dCBXVEY6OlN0cmluZyYpIGNvbnN0OwotCi0gICAgdmlydHVhbCB2b2lkIGZyYW1lTG9hZENvbXBs
ZXRlZCgpOwotICAgIHZpcnR1YWwgdm9pZCBzYXZlVmlld1N0YXRlVG9JdGVtKFdlYkNvcmU6Okhp
c3RvcnlJdGVtKik7Ci0gICAgdmlydHVhbCB2b2lkIHJlc3RvcmVWaWV3U3RhdGUoKTsKLSAgICB2
aXJ0dWFsIHZvaWQgcHJvdmlzaW9uYWxMb2FkU3RhcnRlZCgpOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRGaW5pc2hMb2FkKCk7Ci0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVGb3JEYXRhU291cmNlUmVw
bGFjZW1lbnQoKTsKLQotICAgIHZpcnR1YWwgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkRvY3Vt
ZW50TG9hZGVyPiBjcmVhdGVEb2N1bWVudExvYWRlcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBXZWJDb3JlOjpTdWJzdGl0dXRlRGF0YSYpOwotICAgIHZpcnR1YWwgdm9p
ZCBzZXRUaXRsZShjb25zdCBXZWJDb3JlOjpTdHJpbmdXaXRoRGlyZWN0aW9uJiwgY29uc3QgV2Vi
Q29yZTo6VVJMJik7Ci0KLSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHVzZXJBZ2VudChjb25zdCBX
ZWJDb3JlOjpVUkwmKTsKLQotICAgIHZpcnR1YWwgdm9pZCBzYXZlUGxhdGZvcm1EYXRhVG9DYWNo
ZWRGcmFtZShXZWJDb3JlOjpDYWNoZWRGcmFtZSopOwotICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0
aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUoV2ViQ29yZTo6Q2FjaGVkRnJhbWUqKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgdHJhbnNpdGlvblRvQ29tbWl0dGVkRm9yTmV3UGFnZSgpOworICAgIHZp
cnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5jZWxsZWRFcnJvcihjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291
cmNlRXJyb3IgYmxvY2tlZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIE9W
RVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBjYW5ub3RTaG93VVJM
RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgT1ZFUlJJREU7CisgICAgdmly
dHVhbCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yIGludGVycnVwdGVkRm9yUG9saWN5Q2hhbmdlRXJy
b3IoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JikgT1ZFUlJJREU7CisKKyAgICB2aXJ0
dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgY2Fubm90U2hvd01JTUVUeXBlRXJyb3IoY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29y
ZTo6UmVzb3VyY2VFcnJvciBmaWxlRG9lc05vdEV4aXN0RXJyb3IoY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXNwb25zZSYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciBwbHVnaW5XaWxsSGFuZGxlTG9hZEVycm9yKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmKSBPVkVSUklERTsKKworICAgIHZpcnR1YWwgYm9vbCBzaG91bGRGYWxsQmFjayhjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJikgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIGJvb2wg
Y2FuSGFuZGxlUmVxdWVzdChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuU2hvd01JTUVUeXBlKGNvbnN0IFdURjo6U3Ry
aW5nJikgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGNhblNob3dNSU1FVHlwZUFz
SFRNTChjb25zdCBXVEY6OlN0cmluZyYpIGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9v
bCByZXByZXNlbnRhdGlvbkV4aXN0c0ZvclVSTFNjaGVtZShjb25zdCBXVEY6OlN0cmluZyYpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgZ2VuZXJhdGVkTUlNRVR5cGVG
b3JVUkxTY2hlbWUoY29uc3QgV1RGOjpTdHJpbmcmKSBjb25zdCBPVkVSUklERTsKKworICAgIHZp
cnR1YWwgdm9pZCBmcmFtZUxvYWRDb21wbGV0ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgc2F2ZVZpZXdTdGF0ZVRvSXRlbShXZWJDb3JlOjpIaXN0b3J5SXRlbSopIE9WRVJSSURFOwor
ICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlVmlld1N0YXRlKCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHByb3Zpc2lvbmFsTG9hZFN0YXJ0ZWQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTG9hZCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlRm9y
RGF0YVNvdXJjZVJlcGxhY2VtZW50KCkgT1ZFUlJJREU7CisKKyAgICB2aXJ0dWFsIFdURjo6UGFz
c1JlZlB0cjxXZWJDb3JlOjpEb2N1bWVudExvYWRlcj4gY3JlYXRlRG9jdW1lbnRMb2FkZXIoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6U3Vic3RpdHV0ZURh
dGEmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VGl0bGUoY29uc3QgV2ViQ29yZTo6
U3RyaW5nV2l0aERpcmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYpIE9WRVJSSURFOworCisg
ICAgdmlydHVhbCBXVEY6OlN0cmluZyB1c2VyQWdlbnQoY29uc3QgV2ViQ29yZTo6VVJMJikgT1ZF
UlJJREU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2F2ZVBsYXRmb3JtRGF0YVRvQ2FjaGVkRnJhbWUo
V2ViQ29yZTo6Q2FjaGVkRnJhbWUqKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdHJhbnNp
dGlvblRvQ29tbWl0dGVkRnJvbUNhY2hlZEZyYW1lKFdlYkNvcmU6OkNhY2hlZEZyYW1lKikgT1ZF
UlJJREU7CisgICAgdmlydHVhbCB2b2lkIHRyYW5zaXRpb25Ub0NvbW1pdHRlZEZvck5ld1BhZ2Uo
KSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBkaWRTYXZlVG9QYWdlQ2FjaGUoKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVzdG9yZUZyb21QYWdlQ2FjaGUoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkU2F2ZVRvUGFnZUNhY2hlKCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJl
c3RvcmVGcm9tUGFnZUNhY2hlKCkgT1ZFUlJJREU7CiAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0
Y2hEaWRCZWNvbWVGcmFtZXNldChib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hEaWRC
ZWNvbWVGcmFtZXNldChib29sKSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgYm9vbCBjYW5DYWNo
ZVBhZ2UoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgY29udmVydE1haW5SZXNvdXJjZUxvYWRU
b0Rvd25sb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVyKiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYpOworICAgIHZpcnR1
YWwgYm9vbCBjYW5DYWNoZVBhZ2UoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
Y29udmVydE1haW5SZXNvdXJjZUxvYWRUb0Rvd25sb2FkKFdlYkNvcmU6OkRvY3VtZW50TG9hZGVy
KiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXNwb25zZSYpIE9WRVJSSURFOwogCi0gICAgdmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6
OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZU5ldHdvcmtpbmdDb250ZXh0KCk7CisgICAg
dmlydHVhbCBQYXNzUmVmUHRyPFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0
ZU5ldHdvcmtpbmdDb250ZXh0KCkgT1ZFUlJJREU7CiAKICAgICB2b2lkIHNldEZyYW1lKFdlYkNv
cmU6OkZyYW1lICpmcmFtZSkgeyBtX2ZyYW1lID0gZnJhbWU7IH0KICAgICBXZWJDb3JlOjpGcmFt
ZSAqZnJhbWUoKSB7IHJldHVybiBtX2ZyYW1lOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRXaW5DRS5oIGIvU291
cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9GcmFtZU5ldHdvcmtpbmdDb250ZXh0V2lu
Q0UuaAppbmRleCA0MzZhZmY3ZDRiNzJjNzQyOWU4YzkzYzhiYTc1Y2JlZjhiNmExN2FmLi42Nzdh
YWY5NTU0OTY3N2IyYzg2MjUyMDA5NzUxMmRmZjRmM2Y5ZDQxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTmV0d29ya2luZ0NvbnRleHRXaW5DRS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRnJhbWVOZXR3b3JraW5n
Q29udGV4dFdpbkNFLmgKQEAgLTM2LDkgKzM2LDkgQEAgcHVibGljOgogICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IEZyYW1lTmV0d29ya2luZ0NvbnRleHRXaW5DRShmcmFtZSwgdXNlckFnZW50
KSk7CiAgICAgfQogCi0gICAgdmlydHVhbCBXVEY6OlN0cmluZyB1c2VyQWdlbnQoKSBjb25zdDsK
LSAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHJlZmVycmVyKCkgY29uc3Q7Ci0gICAgdmlydHVhbCBX
ZWJDb3JlOjpSZXNvdXJjZUVycm9yIGJsb2NrZWRFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmKSBjb25zdDsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHVzZXJBZ2VudCgpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgcmVmZXJyZXIoKSBjb25zdCBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlJlc291cmNlRXJyb3IgYmxvY2tlZEVycm9y
KGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpIGNvbnN0IE9WRVJSSURFOwogCiBwcml2
YXRlOgogICAgIEZyYW1lTmV0d29ya2luZ0NvbnRleHRXaW5DRShXZWJDb3JlOjpGcmFtZSogZnJh
bWUsIGNvbnN0IFdURjo6U3RyaW5nJiB1c2VyQWdlbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRXaW5DRS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFdpbkNFLmNwcApp
bmRleCAzNjBmNjFhMTczMmI5ZWVkNWE1NzFlZjIxN2IxYmRkYjIxNDY1Yjk1Li5jYTcwYjkyMmVk
MjhmODI4YWFjNGIzOTlhZjkzZDA0Y2E3ZDkxMTdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFdpbkNFLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFdpbkNFLmNwcApA
QCAtNjEsMTEgKzYxLDYgQEAgdm9pZCBJbnNwZWN0b3JDbGllbnRXaW5DRTo6YnJpbmdGcm9udGVu
ZFRvRnJvbnQoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQ2xp
ZW50V2luQ0U6OnJlbGVhc2VGcm9udGVuZFBhZ2UoKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci19Ci0KIHZvaWQgSW5zcGVjdG9yQ2xpZW50V2luQ0U6OmhpZ2hsaWdodCgpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKQEAgLTc2LDE2ICs3MSw2IEBAIHZvaWQgSW5zcGVjdG9yQ2xpZW50V2lu
Q0U6OmhpZGVIaWdobGlnaHQoKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgSW5z
cGVjdG9yQ2xpZW50V2luQ0U6OnBvcHVsYXRlU2V0dGluZyhjb25zdCBTdHJpbmcmIGtleSwgU3Ry
aW5nKiB2YWx1ZSkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi12b2lkIEluc3BlY3Rv
ckNsaWVudFdpbkNFOjpzdG9yZVNldHRpbmcoY29uc3QgU3RyaW5nJiBrZXksIGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogYm9vbCBJbnNwZWN0b3JD
bGllbnRXaW5DRTo6c2VuZE1lc3NhZ2VUb0Zyb250ZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkK
IHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5j
ZS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRXaW5DRS5oIGIvU291cmNlL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9JbnNwZWN0b3JDbGllbnRXaW5DRS5oCmluZGV4IDllZGViNTkw
ZDY2Y2NhYzg1NjJiYzQ0MjFiYzM1YmRhOTg4MzExNzIuLjJhZjI2Yzg1OWZiZmQ4NzQ5MWNkNGIw
MWJkNjkzMzE0NjY4ZjZiMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29y
ZVN1cHBvcnQvSW5zcGVjdG9yQ2xpZW50V2luQ0UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L0luc3BlY3RvckNsaWVudFdpbkNFLmgKQEAgLTM3LDIxICszNywxNiBA
QCBwdWJsaWM6CiAgICAgZXhwbGljaXQgSW5zcGVjdG9yQ2xpZW50V2luQ0UoV2ViVmlldyopOwog
ICAgIH5JbnNwZWN0b3JDbGllbnRXaW5DRSgpOwogCi0gICAgdmlydHVhbCB2b2lkIGluc3BlY3Rv
ckRlc3Ryb3llZCgpOworICAgIHZpcnR1YWwgdm9pZCBpbnNwZWN0b3JEZXN0cm95ZWQoKSBPVkVS
UklERTsKIAotICAgIHZpcnR1YWwgV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDaGFubmVsKiBv
cGVuSW5zcGVjdG9yRnJvbnRlbmQoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlciopOwotICAg
IHZpcnR1YWwgdm9pZCBjbG9zZUluc3BlY3RvckZyb250ZW5kKCk7Ci0gICAgdmlydHVhbCB2b2lk
IGJyaW5nRnJvbnRlbmRUb0Zyb250KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpJbnNwZWN0b3JG
cm9udGVuZENoYW5uZWwqIG9wZW5JbnNwZWN0b3JGcm9udGVuZChXZWJDb3JlOjpJbnNwZWN0b3JD
b250cm9sbGVyKikgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlSW5zcGVjdG9yRnJv
bnRlbmQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgYnJpbmdGcm9udGVuZFRvRnJvbnQo
KSBPVkVSUklERTsKIAotICAgIHZpcnR1YWwgdm9pZCBoaWdobGlnaHQoKTsKLSAgICB2aXJ0dWFs
IHZvaWQgaGlkZUhpZ2hsaWdodCgpOworICAgIHZpcnR1YWwgdm9pZCBoaWdobGlnaHQoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgaGlkZUhpZ2hsaWdodCgpIE9WRVJSSURFOwogCi0gICAg
dmlydHVhbCB2b2lkIHBvcHVsYXRlU2V0dGluZyhjb25zdCBXVEY6OlN0cmluZyYga2V5LCBXVEY6
OlN0cmluZyogdmFsdWUpOwotICAgIHZpcnR1YWwgdm9pZCBzdG9yZVNldHRpbmcoY29uc3QgV1RG
OjpTdHJpbmcmIGtleSwgY29uc3QgV1RGOjpTdHJpbmcmIHZhbHVlKTsKLQotICAgIHZpcnR1YWwg
Ym9vbCBzZW5kTWVzc2FnZVRvRnJvbnRlbmQoY29uc3QgV1RGOjpTdHJpbmcmKTsKLQotICAgIHZv
aWQgcmVsZWFzZUZyb250ZW5kUGFnZSgpOworICAgIHZpcnR1YWwgYm9vbCBzZW5kTWVzc2FnZVRv
RnJvbnRlbmQoY29uc3QgV1RGOjpTdHJpbmcmKSBPVkVSUklERTsKIAogcHJpdmF0ZToKICAgICBX
ZWJWaWV3KiBtX2luc3BlY3RlZFdlYlZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmggYi9Tb3VyY2UvV2Vi
S2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmgKaW5kZXgg
OTI1ZjBlODExZTIyZjA1MzEyZjJkNjI0MmFjODgxMGNiMzliZTI1NC4uNGIwZWQxZWYwOTgzNjIz
NWZhMTQzMjc3M2M3MDQxOTE1ZDJmNjQ1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5j
ZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaApAQCAt
NDIsMzMgKzQyLDMzIEBAIHByaXZhdGU6CiAgICAgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UoKTsK
IAogICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcwotICAgIHZpcnR1YWwgV2ViQ29y
ZTo6Q29va2llc1N0cmF0ZWd5KiBjcmVhdGVDb29raWVzU3RyYXRlZ3koKTsKLSAgICB2aXJ0dWFs
IFdlYkNvcmU6OkRhdGFiYXNlU3RyYXRlZ3kqIGNyZWF0ZURhdGFiYXNlU3RyYXRlZ3koKTsKLSAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgp
OwotICAgIHZpcnR1YWwgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJv
YXJkU3RyYXRlZ3koKTsKLSAgICB2aXJ0dWFsIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5KiBjcmVh
dGVQbHVnaW5TdHJhdGVneSgpOwotICAgIHZpcnR1YWwgV2ViQ29yZTo6U2hhcmVkV29ya2VyU3Ry
YXRlZ3kqIGNyZWF0ZVNoYXJlZFdvcmtlclN0cmF0ZWd5KCk7Ci0gICAgdmlydHVhbCBXZWJDb3Jl
OjpTdG9yYWdlU3RyYXRlZ3kqIGNyZWF0ZVN0b3JhZ2VTdHJhdGVneSgpOwotICAgIHZpcnR1YWwg
V2ViQ29yZTo6VmlzaXRlZExpbmtTdHJhdGVneSogY3JlYXRlVmlzaXRlZExpbmtTdHJhdGVneSgp
OworICAgIHZpcnR1YWwgV2ViQ29yZTo6Q29va2llc1N0cmF0ZWd5KiBjcmVhdGVDb29raWVzU3Ry
YXRlZ3koKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkRhdGFiYXNlU3RyYXRlZ3kq
IGNyZWF0ZURhdGFiYXNlU3RyYXRlZ3koKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6
OkxvYWRlclN0cmF0ZWd5KiBjcmVhdGVMb2FkZXJTdHJhdGVneSgpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgV2ViQ29yZTo6UGFzdGVib2FyZFN0cmF0ZWd5KiBjcmVhdGVQYXN0ZWJvYXJkU3RyYXRl
Z3koKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5KiBjcmVh
dGVQbHVnaW5TdHJhdGVneSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6U2hhcmVk
V29ya2VyU3RyYXRlZ3kqIGNyZWF0ZVNoYXJlZFdvcmtlclN0cmF0ZWd5KCkgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCBXZWJDb3JlOjpTdG9yYWdlU3RyYXRlZ3kqIGNyZWF0ZVN0b3JhZ2VTdHJhdGVn
eSgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgV2ViQ29yZTo6VmlzaXRlZExpbmtTdHJhdGVneSog
Y3JlYXRlVmlzaXRlZExpbmtTdHJhdGVneSgpIE9WRVJSSURFOwogCiAgICAgLy8gV2ViQ29yZTo6
Q29va2llc1N0cmF0ZWd5Ci0gICAgdmlydHVhbCBTdHJpbmcgY29va2llc0ZvckRPTShjb25zdCBX
ZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpOwotICAgIHZpcnR1YWwgdm9pZCBzZXRDb29raWVz
RnJvbURPTShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJD
b3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0IFN0cmluZyYp
OwotICAgIHZpcnR1YWwgYm9vbCBjb29raWVzRW5hYmxlZChjb25zdCBXZWJDb3JlOjpOZXR3b3Jr
U3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdl
YkNvcmU6OlVSTCYpOwotICAgIHZpcnR1YWwgU3RyaW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFZhbHVlKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNv
cmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2ViQ29yZTo6VVJMJik7Ci0gICAgdmlydHVhbCBi
b29sIGdldFJhd0Nvb2tpZXMoY29uc3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwg
Y29uc3QgV2ViQ29yZTo6VVJMJiBmaXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBWZWN0
b3I8V2ViQ29yZTo6Q29va2llPiYpOwotICAgIHZpcnR1YWwgdm9pZCBkZWxldGVDb29raWUoY29u
c3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiwg
Y29uc3QgU3RyaW5nJik7CisgICAgdmlydHVhbCBTdHJpbmcgY29va2llc0ZvckRPTShjb25zdCBX
ZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0
UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBz
ZXRDb29raWVzRnJvbURPTShjb25zdCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBj
b25zdCBXZWJDb3JlOjpVUkwmIGZpcnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYsIGNvbnN0
IFN0cmluZyYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgYm9vbCBjb29raWVzRW5hYmxlZChjb25z
dCBXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb24mLCBjb25zdCBXZWJDb3JlOjpVUkwmIGZp
cnN0UGFydHksIGNvbnN0IFdlYkNvcmU6OlVSTCYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgU3Ry
aW5nIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFdlYkNvcmU6OlVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2Vi
Q29yZTo6VVJMJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBib29sIGdldFJhd0Nvb2tpZXMoY29u
c3QgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiBm
aXJzdFBhcnR5LCBjb25zdCBXZWJDb3JlOjpVUkwmLCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiYp
IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBkZWxldGVDb29raWUoY29uc3QgV2ViQ29yZTo6
TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29uc3QgU3RyaW5n
JikgT1ZFUlJJREU7CiAKICAgICAvLyBXZWJDb3JlOjpEYXRhYmFzZVN0cmF0ZWd5CiAgICAgLy8g
LSBVc2luZyBkZWZhdWx0IGltcGxlbWVudGF0aW9uLgogCiAgICAgLy8gV2ViQ29yZTo6UGx1Z2lu
U3RyYXRlZ3kKLSAgICB2aXJ0dWFsIHZvaWQgcmVmcmVzaFBsdWdpbnMoKTsKLSAgICB2aXJ0dWFs
IHZvaWQgZ2V0UGx1Z2luSW5mbyhjb25zdCBXZWJDb3JlOjpQYWdlKiwgVmVjdG9yPFdlYkNvcmU6
OlBsdWdpbkluZm8+Jik7CisgICAgdmlydHVhbCB2b2lkIHJlZnJlc2hQbHVnaW5zKCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIGdldFBsdWdpbkluZm8oY29uc3QgV2ViQ29yZTo6UGFnZSos
IFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYpIE9WRVJSSURFOwogCiAgICAgLy8gV2ViQ29y
ZTo6VmlzaXRlZExpbmtTdHJhdGVneQotICAgIHZpcnR1YWwgYm9vbCBpc0xpbmtWaXNpdGVkKFdl
YkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpMaW5rSGFzaCwgY29uc3QgV2ViQ29yZTo6VVJMJiwgY29u
c3QgV1RGOjpBdG9taWNTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIHZvaWQgYWRkVmlzaXRlZExpbmso
V2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OkxpbmtIYXNoKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNM
aW5rVmlzaXRlZChXZWJDb3JlOjpQYWdlKiwgV2ViQ29yZTo6TGlua0hhc2gsIGNvbnN0IFdlYkNv
cmU6OlVSTCYsIGNvbnN0IFdURjo6QXRvbWljU3RyaW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIGFkZFZpc2l0ZWRMaW5rKFdlYkNvcmU6OlBhZ2UqLCBXZWJDb3JlOjpMaW5rSGFzaCkg
T1ZFUlJJREU7CiB9OwogCiAjZW5kaWYgLy8gUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0VfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>