<?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>222064</bug_id>
          
          <creation_ts>2021-02-17 12:47:49 -0800</creation_ts>
          <short_desc>Add SPI for getting size of PDF document during printing</short_desc>
          <delta_ts>2021-03-18 01:45:29 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>berto</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>gustavo</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1730461</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-02-17 12:47:49 -0800</bug_when>
    <thetext>Add SPI for getting size of PDF document during printing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730463</commentid>
    <comment_count>1</comment_count>
      <attachid>420697</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-02-17 12:52:12 -0800</bug_when>
    <thetext>Created attachment 420697
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730464</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-02-17 12:52:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/73634206&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730465</commentid>
    <comment_count>3</comment_count>
      <attachid>420698</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-02-17 12:54:58 -0800</bug_when>
    <thetext>Created attachment 420698
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730467</commentid>
    <comment_count>4</comment_count>
      <attachid>420698</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-02-17 13:03:14 -0800</bug_when>
    <thetext>Comment on attachment 420698
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730473</commentid>
    <comment_count>5</comment_count>
      <attachid>420699</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-02-17 13:09:36 -0800</bug_when>
    <thetext>Created attachment 420699
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730490</commentid>
    <comment_count>6</comment_count>
      <attachid>420703</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-02-17 13:23:12 -0800</bug_when>
    <thetext>Created attachment 420703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730535</commentid>
    <comment_count>7</comment_count>
      <attachid>420717</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-02-17 14:25:21 -0800</bug_when>
    <thetext>Created attachment 420717
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730554</commentid>
    <comment_count>8</comment_count>
      <attachid>420722</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-02-17 14:49:54 -0800</bug_when>
    <thetext>Created attachment 420722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730555</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-02-17 14:51:21 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730727</commentid>
    <comment_count>10</comment_count>
      <attachid>420791</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-02-17 20:37:03 -0800</bug_when>
    <thetext>Created attachment 420791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1730851</commentid>
    <comment_count>11</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-02-18 08:07:05 -0800</bug_when>
    <thetext>http://trac.webkit.org/r273075</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420697</attachid>
            <date>2021-02-17 12:52:12 -0800</date>
            <delta_ts>2021-02-17 12:54:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222064-20210217125211.patch</filename>
            <type>text/plain</type>
            <size>37967</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyOTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGViYjNkMzE1ODA5OTc2Yzhk
Y2JkNDZjYzBhNDAwOTM4M2Q1NjNjM2EuLjcwYmY0ODkwNWMyYThmNTNkZTJmZTljZmIzNDhmMjA2
ZWI1YzE5NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjEtMDItMTcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgU1BJIGZv
ciBnZXR0aW5nIHNpemUgb2YgUERGIGRvY3VtZW50IGR1cmluZyBwcmludGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMDY0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83MzYzNDIwNj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaGVuIHByaW50aW5nIGEgUERGLCB3ZSB3YW50IHRvIGtub3cgaXRz
IHBhZ2Ugc2l6ZS4gIElmIHRoZSBwcmludCBpcyBpbml0aWF0ZWQgYnkgdGhlIHdlYiBwcm9jZXNz
IChzdWNoIGFzIHdoZW4gd2luZG93LnByaW50IGlzIGNhbGxlZAorICAgICAgICBvciBpZiB0aGUg
UERGIGNvbnRhaW5zIEphdmFTY3JpcHQgdGhhdCB0ZWxscyB0aGUgYnJvd3NlciB0byBwcmludCBp
dCkgdGhlbiB3ZSB3b3VsZCBsaWtlIHRoYXQgaW5mb3JtYXRpb24gd2l0aCB0aGUgcHJpbnQgcmVx
dWVzdCBzbyB3ZQorICAgICAgICBkb24ndCBoYXZlIHRvIGFzayB0aGUgd2ViIHByb2Nlc3MsIHdo
aWNoIGlzIGh1bmcgd2FpdGluZyBmb3IgYSBzeW5jaHJvbm91cyBtZXNzYWdlIHJlcGx5LiAgSWYg
dGhlIHByaW50IGlzIGluaXRpYXRlZCBieSB0aGUgVUkgcHJvY2VzcworICAgICAgICAoc3VjaCBh
cyBpZiB0aGUgdXNlciBwcmludHMgZnJvbSBhIG1lbnUgb3Iga2V5Ym9hcmQgc2hvcnRjdXQpIHRo
ZW4gd2UgbmVlZCBhIHdheSB0byBhc2sgd2hhdCB0aGUgc2l6ZSBvZiBhIFBERiBpcy4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJ
VUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OnByaW50RnJhbWUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UGFnZVVJ
Q2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9nZXRQREZGaXJzdFBhZ2VTaXplSW5GcmFtZTpjb21wbGV0aW9uSGFu
ZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRl
OjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpw
cmludEZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpwcmludEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpnZXRQREZGaXJzdFBhZ2VTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAoV2Vi
S2l0OjpQREZQbHVnaW46OnBkZkRvY3VtZW50U2l6ZUZvclByaW50aW5nIGNvbnN0KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1
Z2luOjpwZGZEb2N1bWVudFNpemVGb3JQcmludGluZyBjb25zdCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
OjpwcmludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0UERGRmlyc3RQYWdlU2l6ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpnZXRQREZGaXJzdFBhZ2VTaXplKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluOgorCiAyMDIxLTAyLTE2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIEFQSSB0byBkaXNhYmxlIEhUVFBTIHVwZ3JhZGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggMTYzNjdlNmNh
YzgyNWFhOWM3NGZiNGM0ODQzZGQyZjFmZjFkYWQzOC4uN2NlYmUyZmFiYWQ1YjMzNWViMzYyYTMy
N2ViMzQ0YWU4MmRiZTY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xp
ZW50LmgKQEAgLTE0NSw3ICsxNDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBmbG9hdCBmb290
ZXJIZWlnaHQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmKSB7
IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIGRyYXdIZWFkZXIoV2ViS2l0OjpXZWJQYWdl
UHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3QmJikgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGRyYXdGb290ZXIoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJL
aXQ6OldlYkZyYW1lUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3QmJikgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHByaW50RnJhbWUoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1l
UHJveHkmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsg
Y29tcGxldGlvbkhhbmRsZXIoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBwcmludEZyYW1lKFdlYktp
dDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBwZGZGaXJzdFBhZ2VTaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoKTsgfQogCiAgICAgdmlydHVh
bCBib29sIGNhblJ1bk1vZGFsKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IHZvaWQgcnVuTW9kYWwoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDYyYTU0Yjc0NmMzYWIyZjFhYjMyY2VkNzE0
NjRjNGM0ZGRmMWU5ZDYuLjQ2YWU3OTYxMDZkYTI3YjJlYjFiY2Y1ZGIzZTdiZjJiOTQ4MTE3OWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMTk3MSw3ICsx
OTcxLDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNv
bnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgICAgIG1fY2xpZW50LmRy
YXdGb290ZXIodG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSShyZWN0KSwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgcHJpbnRGcmFt
ZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgICAgIHZvaWQgcHJp
bnRGcmFtZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChtX2NsaWVudC5wcmlu
dEZyYW1lKQogICAgICAgICAgICAgICAgIG1fY2xpZW50LnByaW50RnJhbWUodG9BUEkoJnBhZ2Up
LCB0b0FQSSgmZnJhbWUpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgK
aW5kZXggOTFiZWUzNGVkMGI2Mzk4MGI1NWExYWFiYWFhODhiOTI4MDQzM2M0NC4uNmI2MmU5MDg2
N2M2NjM3NjI4M2Q5N2ExNDE0YzM1N2RjNDYxMGExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xMDcs
NyArMTA3LDcgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgZGVjaWRlV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhRm9yU2VjdXJpdHlP
cmlnaW46KFdLU2VjdXJpdHlPcmlnaW4gKilzZWN1cml0eU9yaWdpbiBjdXJyZW50UXVvdGE6KHVu
c2lnbmVkIGxvbmcgbG9uZyljdXJyZW50UXVvdGEgdG90YWxCeXRlc05lZWRlZDoodW5zaWduZWQg
bG9uZyBsb25nKXRvdGFsQnl0ZXNOZWVkZWQgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKSh1bnNp
Z25lZCBsb25nIGxvbmcgbmV3UXVvdGEpKWRlY2lzaW9uSGFuZGxlcjsKIAogLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZy
YW1lOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1lOihf
V0tGcmFtZUhhbmRsZSAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSlj
b21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkp
OworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1lOihfV0tG
cmFtZUhhbmRsZSAqKWZyYW1lIHBkZkZpcnN0UGFnZVNpemU6KE5TU2l6ZSlzaXplIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAtICh2b2lkKV93ZWJW
aWV3Q2xvc2U6KFdLV2ViVmlldyAqKXdlYlZpZXc7CiAtICh2b2lkKV93ZWJWaWV3RnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lOihXS1dlYlZpZXcgKil3ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNDk0NjE2ZTkyNjA0ZmRj
NjkzZDQ1YTFiOWZmYmViOWExYWRmYmUzNC4uMjkxYjlmNTM0NGUyYmQyZjdmYTVmYzM0MmIwNjMw
YTU0OTgzOGYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCkBAIC0yMjM5LDYgKzIyMzksMTMgQEAgc3RhdGljIFJldGFpblB0cjxOU0FycmF5
PiB3a1RleHRNYW5pcHVsYXRpb25FcnJvcnMoTlNBcnJheTxfV0tUZXh0TWFuaXB1bGF0aW9uSXQK
ICAgICBbc2VsZiBjcmVhdGVQREZXaXRoQ29uZmlndXJhdGlvbjpwZGZDb25maWd1cmF0aW9uIGNv
bXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAorLSAodm9pZClfZ2V0UERG
Rmlyc3RQYWdlU2l6ZUluRnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWUgY29tcGxldGlvbkhh
bmRsZXI6KHZvaWQoXikoTlNTaXplKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIF9wYWdlLT5n
ZXRQREZGaXJzdFBhZ2VTaXplKGZyYW1lLT5fZnJhbWVIYW5kbGUtPmZyYW1lSUQoKSwgW2NvbXBs
ZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oV2ViQ29yZTo6
RmxvYXRTaXplIHNpemUpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RhdGljX2Nhc3Q8
TlNTaXplPihzaXplKSk7CisgICAgfSk7Cit9CisKIC0gKE5TRGF0YSAqKV9zZXNzaW9uU3RhdGVE
YXRhCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCB1c2UgdGhlIGxlZ2FjeSBzZXNz
aW9uIHN0YXRlIGVuY29kZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCA5MjYyMzhhZWEwYTE0NzYxMThlNWE2OTA4
NTQ3YWQ3OWMzZjQ1NGQxLi4wODRiZjM0ZjAxMGM1MTRkYzMzMGIzMDZhYmE0YzE1YjZlNzc1Nzlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmgKQEAgLTM1MCw2ICszNTAsNyBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIC0gKHZv
aWQpX2Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zOwogCiAtICh2b2lkKV90YWtlUERGU25hcHNo
b3RXaXRoQ29uZmlndXJhdGlvbjooV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gKilzbmFwc2hvdENv
bmZpZ3VyYXRpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRGF0YSAqcGRmU25hcHNo
b3REYXRhLCBOU0Vycm9yICplcnJvcikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsKKy0gKHZvaWQpX2dldFBERkZpcnN0UGFnZVNp
emVJbkZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
KF4pKE5TU2l6ZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfZ2V0UHJvY2Vzc0Rpc3BsYXlO
YW1lV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqKSljb21wbGV0aW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggODU5NWYyMGU0MWM2
ZmMzMTNhNDNmYjgyY2QwOWJmOTJlNWFlNjk1Yi4uOTA5ZDkyMDA1ODBjZTU1MWUzNmM3MTk5N2Nl
YzcyY2EzODQ0NjU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaApAQCAtMTM3LDcgKzEzNyw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgZGVjaWRlUG9s
aWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQ
cm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpIGZpbmFsOwogICAgICAgICB2b2lkIGNoZWNrVXNl
ck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5Jiwg
QVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tQcm94eSYpIGZpbmFsOwogICAgICAgICB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRl
RGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgZmluYWw7
Ci0gICAgICAgIHZvaWQgcHJpbnRGcmFtZShXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5Jiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKKyAgICAgICAgdm9pZCBwcmludEZy
YW1lKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIHBkZkZpcnN0UGFnZVNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpZiBIQVZFKEFQUF9MSU5LUykKICAgICAgICAg
Ym9vbCBzaG91bGRJbmNsdWRlQXBwTGlua0FjdGlvbnNGb3JFbGVtZW50KF9XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvICopIGZpbmFsOwpAQCAtMjE3LDcgKzIxNyw3IEBAIHByaXZhdGU6CiAgICAgICAg
IGJvb2wgd2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkRhdGFiYXNl
TmFtZURpc3BsYXlOYW1lQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFi
YXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9vbCB3
ZWJWaWV3RGVjaWRlV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5DdXJy
ZW50UXVvdGFUb3RhbEJ5dGVzTmVlZGVkIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3UHJpbnRG
cmFtZSA6IDE7Ci0gICAgICAgIGJvb2wgd2ViVmlld1ByaW50RnJhbWVDb21wbGV0aW9uSGFuZGxl
ciA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld1ByaW50RnJhbWVQREZGaXJzdFBhZ2VTaXplQ29t
cGxldGlvbkhhbmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRDbG9zZSA6IDE7CiAg
ICAgICAgIGJvb2wgd2ViVmlld0Nsb3NlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RnVsbHNj
cmVlbk1heVJldHVyblRvSW5saW5lIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tCmluZGV4IDkxMTk1NjAzNjg2OWFkOWUzZTY4Yjg5YzFjMmVjMzk2YTJj
YzI5NzQuLjkxYzIwNzY1MjNmM2ZmYTc5NWM5NzM2ZmVlYjg1MGY4MTRjOTA5MmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTQ0LDcgKzE0NCw3
IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdh
dGUpCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JT
ZWN1cml0eU9yaWdpbkRhdGFiYXNlTmFtZURpc3BsYXlOYW1lQ3VycmVudFF1b3RhQ3VycmVudE9y
aWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVy
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRl
RGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmRhdGFiYXNlTmFtZTpkaXNwbGF5TmFtZTpj
dXJyZW50UXVvdGE6Y3VycmVudE9yaWdpblVzYWdlOmN1cnJlbnREYXRhYmFzZVVzYWdlOmV4cGVj
dGVkVXNhZ2U6ZGVjaXNpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdEZWNpZGVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkN1cnJlbnRR
dW90YVRvdGFsQnl0ZXNOZWVkZWQgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3Rvcihfd2ViVmlldzpkZWNpZGVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFGb3JTZWN1cml0eU9y
aWdpbjpjdXJyZW50UXVvdGE6dG90YWxCeXRlc05lZWRlZDpkZWNpc2lvbkhhbmRsZXI6KV07CiAg
ICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1ByaW50RnJhbWUgPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOildOwotICAgIG1fZGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdQcmludEZyYW1lQ29tcGxldGlvbkhhbmRsZXIgPSBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOmNvbXBs
ZXRpb25IYW5kbGVyOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdQcmludEZyYW1l
UERGRmlyc3RQYWdlU2l6ZUNvbXBsZXRpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cHJpbnRGcmFtZTpwZGZGaXJzdFBhZ2VTaXplOmNv
bXBsZXRpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDbG9z
ZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXdEaWRDbG9z
ZTopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q2xvc2UgPSBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0Nsb3NlOildOwogICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5U
b0lubGluZTopXTsKQEAgLTExOTMsNyArMTE5Myw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViUGFnZVByb3h5KiwgY29u
CiAgICAgfSkuZ2V0KCldOwogfQogCi12b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpwcmludEZy
YW1lKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmIHdlYkZyYW1lUHJveHksIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgVUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OnByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYgd2ViRnJh
bWVQcm94eSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBwZGZGaXJzdFBhZ2VTaXplLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFt
X3VpRGVsZWdhdGUpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwpAQCAtMTIw
Myw5ICsxMjAzLDkgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cHJpbnRGcmFtZShXZWJQ
YWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiB3ZWJGcmFtZVByb3gKICAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKCk7CiAKICAgICBhdXRvIGhhbmRsZSA9IEFQSTo6RnJhbWVIYW5kbGU6
OmNyZWF0ZSh3ZWJGcmFtZVByb3h5LmZyYW1lSUQoKSk7Ci0gICAgaWYgKG1fdWlEZWxlZ2F0ZS0+
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1ByaW50RnJhbWVDb21wbGV0aW9uSGFuZGxlcikgewot
ICAgICAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVh
dGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOmNvbXBsZXRp
b25IYW5kbGVyOikpOwotICAgICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0
ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKSBwcmludEZyYW1l
OndyYXBwZXIoaGFuZGxlKSBjb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NoZWNrZXIg
PSBXVEZNb3ZlKGNoZWNrZXIpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKKyAgICBpZiAobV91aURlbGVnYXRlLT5tX2RlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3UHJpbnRGcmFtZVBERkZpcnN0UGFnZVNpemVDb21wbGV0aW9uSGFuZGxl
cikgeworICAgICAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
OjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOnBk
ZkZpcnN0UGFnZVNpemU6Y29tcGxldGlvbkhhbmRsZXI6KSk7CisgICAgICAgIFsoaWQgPFdLVUlE
ZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3
LmdldCgpLmdldCgpIHByaW50RnJhbWU6d3JhcHBlcihoYW5kbGUpIHBkZkZpcnN0UGFnZVNpemU6
c3RhdGljX2Nhc3Q8TlNTaXplPihwZGZGaXJzdFBhZ2VTaXplKSBjb21wbGV0aW9uSGFuZGxlcjpt
YWtlQmxvY2tQdHIoW2NoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAg
IGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKICAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhh
bmRsZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDk3
NGZhYTA4ODcwNjNmNWQxN2ZkMjhkMzliODU2N2YxMDVmZTEwNjIuLjUxZTljYjM0MTBlMTQ3Yjdk
Nzc3ZDZmNjk5YjE0MjM0MjUyNTMyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtNTg2OSw3ICs1ODY5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dD
b250YWN0UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmIHJlcXVlc3QK
ICAgICBwYWdlQ2xpZW50KCkuc2hvd0NvbnRhY3RQaWNrZXIocmVxdWVzdERhdGEsIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKIH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5OjpwcmludEZy
YW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94
eTo6cHJpbnRGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRs
ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBwZGZGaXJzdFBhZ2VTaXplLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFtX2lz
UGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9uKTsKICAgICBtX2lzUGVyZm9ybWluZ0RPTVByaW50
T3BlcmF0aW9uID0gdHJ1ZTsKQEAgLTU4NzksNyArNTg3OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpwcmludEZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBDb21wCiAKICAgICBmcmFtZS0+ZGlkQ2hhbmdlVGl0bGUodGl0bGUpOwogCi0gICAgbV91aUNs
aWVudC0+cHJpbnRGcmFtZSgqdGhpcywgKmZyYW1lLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSAoKSBtdXRhYmxlIHsKKyAgICBtX3VpQ2xpZW50LT5wcmludEZyYW1lKCp0aGlzLCAqZnJh
bWUsIHBkZkZpcnN0UGFnZVNpemUsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11
dGFibGUgewogICAgICAgICBlbmRQcmludGluZygpOyAvLyBTZW5kIGEgbWVzc2FnZSBzeW5jaHJv
bm91c2x5IHdoaWxlIG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24gaXMgc3RpbGwgdHJ1
ZS4KICAgICAgICAgbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbiA9IGZhbHNlOwogICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwpAQCAtODQ0MSw2ICs4NDQxLDExIEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpkcmF3VG9QREYoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IE9wdGlv
bmFsPEZsb2F0UmVjdD4mCiB9CiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpnZXRQREZGaXJzdFBhZ2VTaXplKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkZsb2F0U2l6ZSk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQ
YWdlOjpHZXRQREZGaXJzdFBhZ2VTaXplKGZyYW1lSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVCYWNraW5nU3RvcmVEaXNjYXJk
YWJsZVN0YXRlKCkKIHsKICAgICBBU1NFUlQoaGFzUnVubmluZ1Byb2Nlc3MoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDMxNGRhMzU0YTc0Y2IxOWVjYTQxN2M0
NGU2ODk0OGQ5MGRiYWI3MzguLjMxMTY0MDIwMzI1N2NlMzIwM2UzY2ZkOGQ0NjkxMDdiOGJmY2My
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjg3LDYgKzEy
ODcsNyBAQCBwdWJsaWM6CiAgICAgdWludDY0X3QgZHJhd1JlY3RUb0ltYWdlKFdlYkZyYW1lUHJv
eHkqLCBjb25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViS2l0OjpTaGFy
ZWFibGVCaXRtYXA6OkhhbmRsZSYpPiYmKTsKICAgICB1aW50NjRfdCBkcmF3UGFnZXNUb1BERihX
ZWJGcmFtZVByb3h5KiwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90
IGNvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEFQSTo6RGF0YSopPiYmKTsKICAgICB2b2lk
IGRyYXdUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPFdlYkNv
cmU6OkZsb2F0UmVjdD4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYpPiYmKTsKKyAgICB2b2lkIGdldFBERkZpcnN0UGFnZVNpemUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkZsb2F0U2l6ZSk+
JiYpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgc3RkOjpwYWlyPHNpemVfdCwgdWlu
dDY0X3Q+IGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmKT4mJik7CiAjZW5kaWYKQEAgLTE5NzgsNyArMTk3OSw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBkaWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbFdpdGhJbWFnZVRy
YW5zY29kaW5nKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlVVJMcywgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGFsbG93ZWRNSU1FVHlwZXMpOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoY29uc3Qg
V2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwogICAgIHZvaWQgc2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29u
dGFjdHNSZXF1ZXN0RGF0YSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9y
PFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4mJik+JiYpOwotICAgIHZvaWQgcHJpbnRGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CisgICAgdm9pZCBwcmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBj
dXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVu
dERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YURlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIHJl
YWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVu
dGlmaWVyLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGFEZWxheWVkUmVwbHkmJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAwNWJmMjFiZmZiN2Q3Y2U5ZDBiMTA0MjAyNzllNzll
OGUxODBlNWQ0Li5jMTQwYzM4ZGY5YjQ5YmJjNjgyYmRjY2FkNGIxMzk4OTJiOGE1NDk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBA
IC03MCw3ICs3MCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgUnVuT3BlblBh
bmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFt
ZUluZm9EYXRhIGZyYW1lSW5mbywgc3RydWN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3Mg
cGFyYW1ldGVycykKICAgICBTaG93U2hhcmVTaGVldChzdHJ1Y3QgV2ViQ29yZTo6U2hhcmVEYXRh
V2l0aFBhcnNlZFVSTCBzaGFyZURhdGEpIC0+IChib29sIGdyYW50ZWQpIEFzeW5jCiAgICAgU2hv
d0NvbnRhY3RQaWNrZXIoc3RydWN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEgcmVxdWVz
dERhdGEpIC0+IChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiBpbmZvKSBB
c3luYwotICAgIFByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0
cmluZyB0aXRsZSkgLT4gKCkgU3luY2hyb25vdXMKKyAgICBQcmludEZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgdGl0bGUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBw
ZGZGaXJzdFBhZ2VTaXplKSAtPiAoKSBTeW5jaHJvbm91cwogICAgIFJ1bk1vZGFsKCkKICAgICBO
b3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KFdlYkNvcmU6OkludFJlY3Qgc2Nyb2xs
ZXJUaHVtYikKICAgICBSZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludDMyX3Qg
bmV3U3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLmgKaW5kZXggYmE3YTE4NzZiMWZiMDYzOTI1YTQwYmE3ZWQwYjNhZDY5NWFmNGYzYy4u
ZjA3Yjc4ZWVlODhkYjQwMWVjMDc5MjcyNzk0ZmE1NmFlZjJjNTUyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaApAQCAtMjEzLDYgKzIx
Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwbHVnaW5IYW5kbGVzQ29udGVudE9mZnNldEZvckFj
Y2Vzc2liaWxpdHlIaXRUZXN0KCkgY29uc3QgZmluYWw7CiAgICAgCiAgICAgUmV0YWluUHRyPFBE
RkRvY3VtZW50PiBwZGZEb2N1bWVudEZvclByaW50aW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9wZGZEb2N1bWVudDsgfQorICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBwZGZEb2N1bWVudFNpemVG
b3JQcmludGluZygpIGNvbnN0IGZpbmFsOwogICAgIE5TT2JqZWN0ICphY2Nlc3NpYmlsaXR5T2Jq
ZWN0KCkgY29uc3QgZmluYWw7CiAgICAgaWQgYWNjZXNzaWJpbGl0eUFzc29jaWF0ZWRQbHVnaW5Q
YXJlbnRGb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBjb25zdCBmaW5hbDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXgg
MmFkNDVjNTFjMjE0YTM5YzRmZmI3N2M2YzliOGJiMzQyZmM2YWJmNC4uMjQ4MDBmNmM1OTM1NGVh
NWY1YWI1ODRkOTZiODE2YTc0ZGU2Y2MwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0xNTUwLDYgKzE1NTAsMTEgQEAgSlNW
YWx1ZVJlZiBQREZQbHVnaW46OmpzUERGRG9jUHJpbnQoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmpl
Y3RSZWYgZnVuY3Rpb24sIEpTT2IKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY3R4
KTsKIH0KIAorRmxvYXRTaXplIFBERlBsdWdpbjo6cGRmRG9jdW1lbnRTaXplRm9yUHJpbnRpbmco
KSBjb25zdAoreworICAgIHJldHVybiBGbG9hdFNpemUoW1ttX3BkZkRvY3VtZW50IHBhZ2VBdElu
ZGV4OjBdIGJvdW5kc0ZvckJveDprUERGRGlzcGxheUJveENyb3BCb3hdLnNpemUpOworfQorCiBK
U09iamVjdFJlZiBQREZQbHVnaW46Om1ha2VKU1BERkRvYyhKU0NvbnRleHRSZWYgY3R4KQogewog
ICAgIHN0YXRpYyBKU1N0YXRpY0Z1bmN0aW9uIGpzUERGRG9jU3RhdGljRnVuY3Rpb25zW10gPSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcAppbmRleCBiNzZk
MzQ0OGYyMGFjYmQ5OTgzNzBkNGI5ZjQ4M2RmZDcxNzQwNjhjLi40YmE2NWMwZmY4OGVkMTk1ZjI3
N2Y0Nzk1N2UyODMwNDZkYWNmMzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpbi5jcHAKQEAgLTEyNyw0ICsxMjcsOSBAQCBjb25zdCBQbHVnaW5Db250cm9sbGVy
KiBQbHVnaW46OmNvbnRyb2xsZXIoKSBjb25zdAogICAgIHJldHVybiBtX3BsdWdpbkNvbnRyb2xs
ZXIuZ2V0KCk7CiB9CiAKK1dlYkNvcmU6OkZsb2F0U2l6ZSBQbHVnaW46OnBkZkRvY3VtZW50U2l6
ZUZvclByaW50aW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyB9OworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKaW5k
ZXggZGM1NTc5ZmQzMTk1MjQ4Y2RlZTliMDE1NmFmNzgwOTdmOGVhYWY3MC4uZDNjN2FjNzA1MTFm
YzcyYzg3MDg0YjhhMzc0ZjlkNmM3MjY4NTliMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luLmgKQEAgLTU1LDYgKzU1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZsb2F0UG9pbnQ7
CitjbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBJbnRQb2lu
dDsKIGNsYXNzIEludFJlY3Q7CkBAIC0yNzUsNiArMjc2LDcgQEAgcHVibGljOgogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCBSZXRhaW5QdHI8UERGRG9jdW1lbnQ+IHBkZkRvY3Vt
ZW50Rm9yUHJpbnRpbmcoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpGbG9hdFNpemUgcGRmRG9jdW1lbnRTaXplRm9yUHJpbnRpbmcoKSBjb25zdDsKICAgICB2aXJ0
dWFsIE5TT2JqZWN0ICphY2Nlc3NpYmlsaXR5T2JqZWN0KCkgY29uc3QgeyByZXR1cm4gMDsgfQog
ICAgIHZpcnR1YWwgaWQgYWNjZXNzaWJpbGl0eUFzc29jaWF0ZWRQbHVnaW5QYXJlbnRGb3JFbGVt
ZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggYzA5YTI3YjdlN2Y1M2ZiNDQyNDQ0NzFhNmQ2Yjc0
ZmNlMDVkNDNhMC4uMzIwOTdjMzBiNDY2YWU3NGQ3ODUzZDBlODdkMDFjMTIwMzYyNzhmYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUGFnZUJhbm5lci5oIgorI2luY2x1ZGUgIlBsdWdp
blZpZXcuaCIKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCIKICNpbmNs
dWRlICJTaGFyZWRCdWZmZXJDb3B5LmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKQEAgLTczNSw4
ICs3MzYsMTQgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lJiBmcmFtZSwgY29u
c3QgU3RyaW5nV2l0aERpcmVjdGlvbiYgdGl0bGUpCiAgICAgfQogI2VuZGlmCiAKKyAgICBXZWJD
b3JlOjpGbG9hdFNpemUgcGRmRmlyc3RQYWdlU2l6ZTsKKyAgICBpZiAoYXV0byogcGx1Z2luVmll
dyA9IFdlYlBhZ2U6OnBsdWdpblZpZXdGb3JGcmFtZSgmZnJhbWUpKSB7CisgICAgICAgIGlmIChh
dXRvKiBwbHVnaW4gPSBwbHVnaW5WaWV3LT5wbHVnaW4oKSkKKyAgICAgICAgICAgIHBkZkZpcnN0
UGFnZVNpemUgPSBwbHVnaW4tPnBkZkRvY3VtZW50U2l6ZUZvclByaW50aW5nKCk7CisgICAgfQor
CiAgICAgYXV0byB0cnVuY2F0ZWRUaXRsZSA9IHRydW5jYXRlRnJvbUVuZCh0aXRsZSwgbWF4VGl0
bGVMZW5ndGgpOwotICAgIG1fcGFnZS5zZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6UHJpbnRGcmFtZSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCB0cnVuY2F0ZWRU
aXRsZS5zdHJpbmcpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQcmludEZyYW1lOjpSZXBseSgp
KTsKKyAgICBtX3BhZ2Uuc2VuZFN5bmNXaXRoRGVsYXllZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlByaW50RnJhbWUod2ViRnJhbWUtPmZyYW1lSUQoKSwgdHJ1bmNhdGVkVGl0bGUuc3Ry
aW5nLCBwZGZGaXJzdFBhZ2VTaXplKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UHJpbnRGcmFt
ZTo6UmVwbHkoKSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNl
UXVvdGEoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VE
ZXRhaWxzIGRldGFpbHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KaW5kZXggZjU3ZDg0OWE2MjAxMTQ0YzU3Mzc3ZWNj
MzcxMTZhMjE4ZGYxM2E4ZS4uY2ZiNTVhYTJkYjA4ZDVjZDI3YmIxYTQ1YWViZjlhNzAzOTdjOWM3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2Vi
UGFnZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29h
L1dlYlBhZ2VDb2NvYS5tbQpAQCAtNDE2LDYgKzQxNiwyNyBAQCB2b2lkIFdlYlBhZ2U6OmNvbnN1
bWVOZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEV4dGVuc2lvbnMoY29uc3QgU2FuZGJveEV4dGVuc2lv
bjo6SAogI2VuZGlmCiB9CiAKK3ZvaWQgV2ViUGFnZTo6Z2V0UERGRmlyc3RQYWdlU2l6ZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpGbG9hdFNpemUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8qIHdlYkZy
YW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CisgICAgaWYg
KCF3ZWJGcmFtZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisKKyAg
ICBhdXRvKiBjb3JlRnJhbWUgPSB3ZWJGcmFtZS0+Y29yZUZyYW1lKCk7CisgICAgaWYgKCFjb3Jl
RnJhbWUpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworCisgICAgYXV0
byogcGx1Z2luVmlldyA9IHBsdWdpblZpZXdGb3JGcmFtZShjb3JlRnJhbWUpOworICAgIGlmICgh
cGx1Z2luVmlldykKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAg
CisgICAgYXV0byogcGx1Z2luID0gcGx1Z2luVmlldy0+cGx1Z2luKCk7CisgICAgaWYgKCFwbHVn
aW4pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworCisgICAgY29tcGxl
dGlvbkhhbmRsZXIoRmxvYXRTaXplKHBsdWdpbi0+cGRmRG9jdW1lbnRTaXplRm9yUHJpbnRpbmco
KSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENP
Q09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCBiNzk0NzE4YmMwOWFmOTNmYzQxZDZjNGJlZTI4MzA0OTI4ZDIxNjNlLi4zZTM4MTMyMTVjNTAw
OGNiMDhlNzIzYTliMzU5MDdlNzU2YWRkODczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzA4OSw2ICs3MDg5LDExIEBAIHZvaWQgV2ViUGFn
ZTo6Y29uZmlndXJlTG9nZ2luZ0NoYW5uZWwoY29uc3QgU3RyaW5nJiBjaGFubmVsTmFtZSwgV1RG
TG9nQ2hhbm5lbFN0CiB9CiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCit2b2lkIFdlYlBhZ2U6Omdl
dFBERkZpcnN0UGFnZVNpemUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OkZsb2F0U2l6ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKK30KKwogdm9pZCBXZWJQYWdlOjpnZXRQcm9jZXNz
RGlzcGxheU5hbWUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA5NDYyZWI0NGJiYWIyMTI5YmVhNjdh
NTVkZDc4N2Q1NDVlYzgwZjI4Li43ZDU0MWRkZjcwNGE2NzA0YjE5ZmFkMjkzZTE2NWYwNDc2OWJj
MDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0x
NTA3LDYgKzE1MDcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9hZERhdGEoTG9hZFBhcmFtZXRl
cnMmJik7CiAgICAgdm9pZCBsb2FkQWx0ZXJuYXRlSFRNTChMb2FkUGFyYW1ldGVycyYmKTsKICAg
ICB2b2lkIG5hdmlnYXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKGNvbnN0IFN0cmluZyYg
dXJsLCBXZWJDb3JlOjpJbnRQb2ludCBkb2N1bWVudFBvaW50LCBXZWJDb3JlOjpJbnRQb2ludCBz
Y3JlZW5Qb2ludCk7CisgICAgdm9pZCBnZXRQREZGaXJzdFBhZ2VTaXplKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpGbG9hdFNpemUpPiYm
KTsKICAgICB2b2lkIHJlbG9hZCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IHJlbG9h
ZE9wdGlvbnMsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKTsKICAgICB2b2lkIGdvVG9CYWNr
Rm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpCYWNrRm9y
d2FyZEl0ZW1JZGVudGlmaWVyJiwgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSwgV2ViQ29yZTo6U2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYm
KTsKICAgICB2b2lkIHRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMzRi
MTJjNDY0NDRmZjE1NWE1ZTE0MzIxOTlhZDhhMTc4OTkxNTgyYi4uNTI4NjAxYzYxMDEyZmFmZWVl
ODYxOWE1MzE4NzhmMWUxNDlkYzhjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xODIsNiArMTgyLDcgQEAgR2Vu
ZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBMb2FkQWx0ZXJuYXRlSFRNTChzdHJ1Y3QgV2ViS2l0
OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKIAogICAgIE5hdmlnYXRlVG9QREZMaW5r
V2l0aFNpbXVsYXRlZENsaWNrKFN0cmluZyB1cmwsIFdlYkNvcmU6OkludFBvaW50IGRvY3VtZW50
UG9pbnQsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblBvaW50KQorICAgIEdldFBERkZpcnN0UGFn
ZVNpemUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+IChXZWJDb3JlOjpGbG9h
dFNpemUgc2l6ZSkgQXN5bmMKIAogICAgIFJlbG9hZCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVp
bnQzMl90IHJlbG9hZE9wdGlvbnMsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNh
bmRib3hFeHRlbnNpb25IYW5kbGUpCiAgICAgU3RvcExvYWRpbmcoKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDE3OGI1MjEyODQ0MWY3ZWMzZWM3
MTVkMmM4NWE4ZWYyZDU2N2ZkMWYuLjZlYzA0YjI4NmVjZTk0MmI5MWJjOGYyODQ2YmEzZTkzNDBh
N2I4MjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOSBAQAorMjAyMS0wMi0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBTUEkgZm9yIGdldHRpbmcgc2l6ZSBvZiBQ
REYgZG9jdW1lbnQgZHVyaW5nIHByaW50aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwNjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzczNjM0
MjA2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvdGVzdF9wcmludC5wZGY6IEFkZGVk
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1t
OgorICAgICAgICAoLVtQcmludFVJRGVsZWdhdGUgX3dlYlZpZXc6cHJpbnRGcmFtZTpwZGZGaXJz
dFBhZ2VTaXplOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtQcmludFVJRGVsZWdh
dGUgd2FpdEZvclBhZ2VTaXplXSk6CisgICAgICAgICgtW1ByaW50VUlEZWxlZ2F0ZSBsYXN0UHJp
bnRlZEZyYW1lXSk6CisgICAgICAgIChURVNUKToKKwogMjAyMS0wMi0xNiAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBBUEkgdG8gZGlz
YWJsZSBIVFRQUyB1cGdyYWRlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJkMmY5ZTYyNzY5
MDZlNWY1NDBhZjQ5MTI4ODU2MzYzMjY1YjVjOWUuLjhjNDU3ZjkxYmM1ZTVhMzIzMWY2NTNjM2Nl
OWU1MmFmMmFhODEyNjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NjEsNiArNDYxLDcg
QEAKIAkJNUM0QTg0OTUxRjdFRUZGQzAwQUNGQzU0IC8qIENvbmZpZ3VyYXRpb24ubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRBODQ5NDFGN0VFRkQ0
MDBBQ0ZDNTQgLyogQ29uZmlndXJhdGlvbi5tbSAqLzsgfTsKIAkJNUM2OUJERDUxRjgyQTdFRjAw
MEY0RjRCIC8qIEphdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM2OUJERDQxRjgyQTdFQjAwMEY0RjRCIC8q
IEphdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tICovOyB9OwogCQk1QzZFMjdBNzIyNEVFQkVB
MDAxMjg3MzYgLyogVVJMQ2Fub25pY2FsaXphdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNkUyN0E2MjI0RUVCRUEwMDEyODczNiAvKiBVUkxD
YW5vbmljYWxpemF0aW9uLm1tICovOyB9OworCQk1QzcxMDFDNzI1REQ5OEI2MDA2ODYyMDAgLyog
dGVzdF9wcmludC5wZGYgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUM3MTAxQzYyNUREOTg4NzAwNjg2MjAwIC8qIHRlc3RfcHJpbnQucGRmICov
OyB9OwogCQk1QzcxNDg5NTIxMjNBNDBBMDBGREUzQzUgLyogV0tXZWJzaXRlRGF0YXN0b3JlLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3MTQ4OTQy
MTIzQTQwNzAwRkRFM0M1IC8qIFdLV2Vic2l0ZURhdGFzdG9yZS5tbSAqLzsgfTsKIAkJNUM3NTcx
NjEyMjEyNEM1MjAwQjlFNUFDIC8qIEJ1bmRsZVJldGFpblBhZ2VQbHVnSW4ubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Qzc1NzE1RjIyMTI0OUJEMDBC
OUU1QUMgLyogQnVuZGxlUmV0YWluUGFnZVBsdWdJbi5tbSAqLzsgfTsKIAkJNUM3OTY0MTAxRUIw
Mjc4RDAwNzVENzRDIC8qIEV2ZW50TW9kaWZpZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNzk2NDBGMUVCMDI2OUIwMDc1RDc0QyAvKiBFdmVu
dE1vZGlmaWVycy5jcHAgKi87IH07CkBAIC0xNjQ5LDYgKzE2NTAsNyBAQAogCQkJCUM5NTk4NEY3
MUUzNkJDRUYwMDJDMEQ0NSAvKiB0ZXN0LXdpdGhvdXQtYXVkaW8tdHJhY2subXA0IGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCTUyNEJCQ0ExMTlFMzBDNzcwMDJGMUFGMSAvKiB0ZXN0Lm1wNCBp
biBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk3QUU5RTUwOTFBRTVBRThCMDBDRjg3NEIgLyogdGVz
dC5wZGYgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNUM3MTAxQzcyNUREOThCNjAwNjg2MjAw
IC8qIHRlc3RfcHJpbnQucGRmIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJFOTg5NjE1MUQ4
RjA5MzgwMDczOTg5MiAvKiB0ZXh0LWFuZC1wYXNzd29yZC1pbnB1dHMuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQlGNENENzRDNjIwRkRBQ0ZBMDBERTM3OTQgLyogdGV4dC13aXRoLWFz
eW5jLXNjcmlwdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0NEM3QTA1MjBGQUFF
M0MwMDE0NDc4QyAvKiB0ZXh0LXdpdGgtZGVmZXJyZWQtc2NyaXB0Lmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCkBAIC0yMjQ3LDYgKzIyNDksNyBAQAogCQk1QzY4MzQ3MTIzNUFDQzdDMDA0MUU2
QjEgLyogU2VydmljZVdvcmtlclRDUFNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTZXJ2aWNlV29ya2VyVENQU2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTVDNjlCREQ0MUY4MkE3RUIwMDBGNEY0QiAvKiBKYXZhU2NyaXB0RHVyaW5nTmF2aWdh
dGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEphdmFTY3Jp
cHREdXJpbmdOYXZpZ2F0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzZF
MjdBNjIyNEVFQkVBMDAxMjg3MzYgLyogVVJMQ2Fub25pY2FsaXphdGlvbi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVSTENhbm9uaWNhbGl6YXRpb24ubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNzEwMUM2MjVERDk4ODcwMDY4NjIwMCAvKiB0
ZXN0X3ByaW50LnBkZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IGltYWdlLnBkZjsgcGF0aCA9IHRlc3RfcHJpbnQucGRmOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1QzcxNDg5NDIxMjNBNDA3MDBGREUzQzUgLyogV0tXZWJzaXRlRGF0YXN0
b3JlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJzaXRl
RGF0YXN0b3JlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzcyRThDRDI0NEZG
Q0UzMDAzODFFQjcgLyogVGVzdExlZ2FjeURvd25sb2FkRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gVGVzdExlZ2FjeURvd25sb2FkRGVsZWdhdGUuaDsgcGF0aCA9
IGNvY29hL1Rlc3RMZWdhY3lEb3dubG9hZERlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTVDNzJFOENFMjQ0RkZDRTQwMDM4MUVCNyAvKiBUZXN0TGVnYWN5RG93bmxvYWRE
ZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRlc3RM
ZWdhY3lEb3dubG9hZERlbGVnYXRlLm1tOyBwYXRoID0gY29jb2EvVGVzdExlZ2FjeURvd25sb2Fk
RGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MjI4LDYgKzQyMzEs
NyBAQAogCQkJCTc2NzM0OTk3MTkzMDE2REMwMEU0NERGOSAvKiBTdG9wTG9hZGluZ0R1cmluZ0Rp
ZEZhaWxQcm92aXNpb25hbExvYWQuY3BwICovLAogCQkJCTc2NzM0OTlBMTkzMDE4MkUwMEU0NERG
OSAvKiBTdG9wTG9hZGluZ0R1cmluZ0RpZEZhaWxQcm92aXNpb25hbExvYWRfYnVuZGxlLmNwcCAq
LywKIAkJCQkxQUU3MkY0NzE3M0VCMjE0MDA2MzYyRjAgLyogVGVybWluYXRlVHdpY2UuY3BwICov
LAorCQkJCTVDNzEwMUM2MjVERDk4ODcwMDY4NjIwMCAvKiB0ZXN0X3ByaW50LnBkZiAqLywKIAkJ
CQlDRTM1MjRGMTFCMTQyQjhEMDAyOEE3QzUgLyogVGV4dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0
aW5nLmNwcCAqLywKIAkJCQlDRTM1MjRGMjFCMTQyQjhEMDAyOEE3QzUgLyogVGV4dEZpZWxkRGlk
QmVnaW5BbmRFbmRFZGl0aW5nX0J1bmRsZS5jcHAgKi8sCiAJCQkJNEE0MTBGNEIxOUFGN0JENjAw
MkVCQUI1IC8qIFVzZXJNZWRpYS5jcHAgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC90ZXN0X3ByaW50LnBkZiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L3Rlc3RfcHJpbnQucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzMmVmOTAwY2NjNGYwOGNkMGM2
MTFlY2YxYWVhMDVkYmZjZjY4Y2MKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDIzNzcKemNtYlZP
WkV3PnM1YXRpfktsc1o4MnI8N1RhYXZVTSEmKExkIz0zU0FORUlLbClFUGwteWR+fjVgMTVkUUN1
XkU/CnoyJDMhP3pQc24lZTBTY19ZPGxgeTkwJW0rSCh0LStCNyQ7aXU3OGx4aF9HMntSQCtwVWJq
MUpyOFdUMXRieipaPAp6T2NTZj1pfEhINXJRa3h1SlBkaW5VdmQ3Tl5PdUMzbzdMWVgjJCUkMzYq
QDtgJWdke3V4MDxwXlZ3MUpHMGpIQjIKelVDe154PTdmRHRIbjBmWHE2SjRuNlFxWWJMQmMqSF9z
SnFIXklKPVc+WX5DUDNUK1dLKk9sM3BESHk3Z21NKmxWCnpPOXQ3Yz5gRmdhJUZaPypjflpZOF81
MTdfVlA3dzxmOVRYWTxlOHd0YHdnemJBRGZ1TT5jVW9aSVllS21lK3UtWQp6UytwNmtxWUtfKjNs
fTtTbjZDeVJhRXNeRU9hSUdyUG9wPERfXlMkK0lTQjR0dWt6JT9Ka1RaanE9WT0/RyMqT2UKeiUj
c29VdDlQbGpGJk9eLSM8PWFvUkJTPEI1Y1YtJkt8V2p4ekcwR0BpYT90VUB7PXhaPzAzcU1VczxU
VzRNRG0zCnp2cTUwITlmVzhoRSlQSTM+QEd4d0V6bGlkUSs9UE9kajlUJnJXRndvYWRUSGBLeyV9
Tzled08xMG5idkNqNkBQWQp6NHteTD9GYVVOS3BpbVN4QWpkKz9LfUhhd3Z9WHk5Y3hVUElQJTNh
IXlLKEpCKXo2K1FpVmh9ZFZKXnd0ZmRzblIKej4hOEI4MS1tMUZsWTs9PCNtSFFBQjhJUTFVWm9x
dHBpIW9WVCpCez1pU30lJEQ8TSNPQ1NjfXkpdnI7JVRna3lMCnohKGlmJi11QlM9WFQ1JEd7UHNT
Znc+PyVHeT5pZHJNPXUre2s+SVE2MzchMnVzc3t+V2l8d15fNlZ1SGshcnRycgp6PH55e088amBH
VEApYjFCZk9FbzVhJEMpR0lXZTFDUSgmX0tkdCVuNlQtK3VwM3x3RjVANTx5U1ZVRz5SUFY9PmUK
ejE3cGNmKkQmcDtJeUVafHtxOEBZPm8/SDZlb0RlQE5VYlNoPGtmbUJ3RDUlMD9XVS1sVGpSMG9g
ZHVzVXpPYnhfCnpvN3pvKmBSVHRMZ0BNWXtOPVk/VFQxNjNASkU0bFFmVlh+UE9vZnw7ZHFjJk04
Zl4+T0l2KEp0U2tPX1h2eUFnTgp6PFhsMHspRFhTeyZaVU1vOUdKMjZHPSohQmtzeU9fcXtrOFA7
RmQhLT5ZSkpMUTBrMXAkUVkyX2ZsSTtWQWZnJDQKenEpRGg9eWxDLUE2OVg4NDlod1pHdVJBbWR4
a3BuRyUoYWVPakVVXmhSRyY3JDZ6JDZpOWB0TyQwRD5+XyRjZG41CnpTSUQ1UkZPWDJxOWMranZU
YkROTVZ1Y0tReGRQZy1XIUlLVHpTZ0R0ZWBqdXRyUzdQTkhwemMhK3l7MTZXUU12VQpWKUF3WGpU
RE1DPURqfj94KGM2bnRAJn1xe09oXkMjCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tCmluZGV4
IDcwZmNkN2FlYjA4MTI1N2U0NmFhYjkyYWQxOGZlMjE5NjNmYWEwYWYuLjczMWQxZWNjNWE1MmJh
ODVlNThiZjViZTZiNDJlMjFlYTFiOTIyN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tCkBAIC00Myw3ICs0Myw3IEBACiAjaW1w
b3J0IDxDYXJib24vQ2FyYm9uLmg+CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykgfHwgRU5B
QkxFKFVJX1BST0NFU1NfUERGX0hVRCkKKyNpZiBQTEFURk9STShJT1MpIHx8IEVOQUJMRShVSV9Q
Uk9DRVNTX1BERl9IVUQpIHx8IFBMQVRGT1JNKE1BQykKIHN0YXRpYyBOU0RhdGEgKnBkZkRhdGEo
KQogewogICAgIHJldHVybiBbTlNEYXRhIGRhdGFXaXRoQ29udGVudHNPZlVSTDpbW05TQnVuZGxl
IG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAidGVzdCIgd2l0aEV4dGVuc2lvbjpAInBkZiIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CkBAIC0zNzIsNCArMzcy
LDExNyBAQCBURVNUKFBERkhVRCwgTG9hZFBERlR5cGVXaXRoUGx1Z2luc0Jsb2NrZWQpCiAgICAg
Y2hlY2tGcmFtZSh3ZWJWaWV3Ll9wZGZIVURzLmFueU9iamVjdC5mcmFtZSwgMCwgMCwgODAwLCA2
MDApOwogfQogCisjZW5kaWYgLy8gRU5BQkxFKFVJX1BST0NFU1NfUERGX0hVRCkKKworI2lmIFBM
QVRGT1JNKE1BQykKKworQGludGVyZmFjZSBQcmludFVJRGVsZWdhdGUgOiBOU09iamVjdCA8V0tV
SURlbGVnYXRlPgorCistIChOU1NpemUpd2FpdEZvclBhZ2VTaXplOworLSAoX1dLRnJhbWVIYW5k
bGUgKilsYXN0UHJpbnRlZEZyYW1lOworCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBQcmludFVJ
RGVsZWdhdGUgeworICAgIE5TU2l6ZSBfcGFnZVNpemU7CisgICAgYm9vbCBfcmVjZWl2ZWRTaXpl
OworICAgIFJldGFpblB0cjxfV0tGcmFtZUhhbmRsZT4gX2xhc3RQcmludGVkRnJhbWU7Cit9CisK
Ky0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJpbnRGcmFtZTooX1dLRnJh
bWVIYW5kbGUgKilmcmFtZSBwZGZGaXJzdFBhZ2VTaXplOihOU1NpemUpc2l6ZSBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfcGFnZVNp
emUgPSBzaXplOworICAgIF9yZWNlaXZlZFNpemUgPSB0cnVlOworICAgIF9sYXN0UHJpbnRlZEZy
YW1lID0gZnJhbWU7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKworLSAoTlNTaXplKXdh
aXRGb3JQYWdlU2l6ZQoreworICAgIF9yZWNlaXZlZFNpemUgPSBmYWxzZTsKKyAgICB3aGlsZSAo
IV9yZWNlaXZlZFNpemUpCisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNwaW5SdW5Mb29w
KCk7CisgICAgcmV0dXJuIF9wYWdlU2l6ZTsKK30KKworLSAoX1dLRnJhbWVIYW5kbGUgKilsYXN0
UHJpbnRlZEZyYW1lCit7CisgICAgcmV0dXJuIF9sYXN0UHJpbnRlZEZyYW1lLmdldCgpOworfQor
CitAZW5kCisKK1RFU1QoUERGLCBQcmludFNpemUpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9u
ID0gW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10gYXV0b3JlbGVhc2VdOworICAgIGF1dG8g
c2NoZW1lSGFuZGxlciA9IFtbVGVzdFVSTFNjaGVtZUhhbmRsZXIgbmV3XSBhdXRvcmVsZWFzZV07
CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpzY2hlbWVIYW5kbGVyIGZv
clVSTFNjaGVtZTpAInRlc3QiXTsKKyAgICBhdXRvIHdlYlZpZXcgPSBbW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbl0gYXV0b3JlbGVhc2VdOworICAgIGF1dG8gZGVsZWdhdGUgPSBb
W1ByaW50VUlEZWxlZ2F0ZSBuZXddIGF1dG9yZWxlYXNlXTsKKyAgICB3ZWJWaWV3LlVJRGVsZWdh
dGUgPSBkZWxlZ2F0ZTsKKworICAgIHNjaGVtZUhhbmRsZXIuc3RhcnRVUkxTY2hlbWVUYXNrSGFu
ZGxlciA9IF4oV0tXZWJWaWV3ICosIGlkPFdLVVJMU2NoZW1lVGFzaz4gdGFzaykgeworICAgICAg
ICBhdXRvIHVybCA9IHRhc2sucmVxdWVzdC5VUkw7CisgICAgICAgIE5TRGF0YSAqZGF0YTsKKyAg
ICAgICAgTlNTdHJpbmcgKm1pbWVUeXBlOworICAgICAgICBpZiAoW3VybC5wYXRoIGlzRXF1YWxU
b1N0cmluZzpAIi9tYWluLmh0bWwiXSkgeworICAgICAgICAgICAgbWltZVR5cGUgPSBAInRleHQv
aHRtbCI7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBodG1sID0gIjxici8+PGlmcmFtZSBzcmM9
J3Rlc3QucGRmJyBpZD0ncGRmZnJhbWUnPjwvaWZyYW1lPiI7CisgICAgICAgICAgICBkYXRhID0g
W05TRGF0YSBkYXRhV2l0aEJ5dGVzOmh0bWwgbGVuZ3RoOnN0cmxlbihodG1sKV07CisgICAgICAg
IH0gZWxzZSBpZiAoW3VybC5wYXRoIGlzRXF1YWxUb1N0cmluZzpAIi90ZXN0LnBkZiJdKSB7Cisg
ICAgICAgICAgICBtaW1lVHlwZSA9IEAiYXBwbGljYXRpb24vcGRmIjsKKyAgICAgICAgICAgIGRh
dGEgPSBwZGZEYXRhKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBFWFBFQ1RfV0tf
U1RSRVEodXJsLnBhdGgsICIvdGVzdF9wcmludC5wZGYiKTsKKyAgICAgICAgICAgIG1pbWVUeXBl
ID0gQCJhcHBsaWNhdGlvbi9wZGYiOworICAgICAgICAgICAgZGF0YSA9IFtOU0RhdGEgZGF0YVdp
dGhDb250ZW50c09mVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ0
ZXN0X3ByaW50IiB3aXRoRXh0ZW5zaW9uOkAicGRmIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdXTsKKyAgICAgICAgfQorICAgICAgICBOU1VSTFJlc3BvbnNlICpyZXNw
b25zZSA9IFtbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnVybCBNSU1FVHlwZTpt
aW1lVHlwZSBleHBlY3RlZENvbnRlbnRMZW5ndGg6ZGF0YS5sZW5ndGggdGV4dEVuY29kaW5nTmFt
ZTpuaWxdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOnJl
c3BvbnNlXTsKKyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZURhdGE6ZGF0YV07CisgICAgICAgIFt0
YXNrIGRpZEZpbmlzaF07CisgICAgfTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0Oi8vL3Rl
c3RfcHJpbnQucGRmIl1dXTsKKyAgICBhdXRvIHNpemUgPSBbZGVsZWdhdGUgd2FpdEZvclBhZ2VT
aXplXTsKKyAgICBFWFBFQ1RfRVEoc2l6ZS5oZWlnaHQsIDc5Mi4wKTsKKyAgICBFWFBFQ1RfRVEo
c2l6ZS53aWR0aCwgNjEyLjApOworCisgICAgX19ibG9jayBib29sIHJlY2VpdmVkU2l6ZSA9IGZh
bHNlOworICAgIFt3ZWJWaWV3IF9nZXRQREZGaXJzdFBhZ2VTaXplSW5GcmFtZTp3ZWJWaWV3Ll9t
YWluRnJhbWUgY29tcGxldGlvbkhhbmRsZXI6XihOU1NpemUgcmVxdWVzdGVkU2l6ZSkgeworICAg
ICAgICBFWFBFQ1RfRVEocmVxdWVzdGVkU2l6ZS5oZWlnaHQsIDc5Mi4wKTsKKyAgICAgICAgRVhQ
RUNUX0VRKHJlcXVlc3RlZFNpemUud2lkdGgsIDYxMi4wKTsKKyAgICAgICAgcmVjZWl2ZWRTaXpl
ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVk
U2l6ZSk7CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDovLy9tYWluLmh0bWwiXV1dOworICAg
IFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKyAgICBbd2ViVmll
dyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cucHJpbnQoKSIgY29tcGxldGlvbkhhbmRsZXI6
bmlsXTsKKyAgICBhdXRvIG1haW5GcmFtZVNpemUgPSBbZGVsZWdhdGUgd2FpdEZvclBhZ2VTaXpl
XTsKKyAgICBFWFBFQ1RfRVEobWFpbkZyYW1lU2l6ZS5oZWlnaHQsIDAuMCk7CisgICAgRVhQRUNU
X0VRKG1haW5GcmFtZVNpemUud2lkdGgsIDAuMCk7CisgICAgCisgICAgcmVjZWl2ZWRTaXplID0g
ZmFsc2U7CisgICAgW3dlYlZpZXcgX2dldFBERkZpcnN0UGFnZVNpemVJbkZyYW1lOndlYlZpZXcu
X21haW5GcmFtZSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TU2l6ZSByZXF1ZXN0ZWRTaXplKSB7Cisg
ICAgICAgIEVYUEVDVF9FUShyZXF1ZXN0ZWRTaXplLmhlaWdodCwgMC4wKTsKKyAgICAgICAgRVhQ
RUNUX0VRKHJlcXVlc3RlZFNpemUud2lkdGgsIDAuMCk7CisgICAgICAgIHJlY2VpdmVkU2l6ZSA9
IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNp
emUpOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAicGRmZnJhbWUuY29udGVu
dFdpbmRvdy5wcmludCgpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIGF1dG8gcGRmRnJh
bWVTaXplID0gW2RlbGVnYXRlIHdhaXRGb3JQYWdlU2l6ZV07CisgICAgRVhQRUNUX05FQVIocGRm
RnJhbWVTaXplLmhlaWdodCwgMjguNzk5OTk5LCAuMDAwMDEpOworICAgIEVYUEVDVF9ORUFSKHBk
ZkZyYW1lU2l6ZS53aWR0aCwgMTI5LjYwMDAwNiwgLjAwMDAxKTsKKworICAgIHJlY2VpdmVkU2l6
ZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IF9nZXRQREZGaXJzdFBhZ2VTaXplSW5GcmFtZTpkZWxl
Z2F0ZS5sYXN0UHJpbnRlZEZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNTaXplIHJlcXVlc3Rl
ZFNpemUpIHsKKyAgICAgICAgRVhQRUNUX05FQVIocmVxdWVzdGVkU2l6ZS5oZWlnaHQsIDI4Ljc5
OTk5OSwgLjAwMDAxKTsKKyAgICAgICAgRVhQRUNUX05FQVIocmVxdWVzdGVkU2l6ZS53aWR0aCwg
MTI5LjYwMDAwNiwgLjAwMDAxKTsKKyAgICAgICAgcmVjZWl2ZWRTaXplID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2l6ZSk7Cit9CisKICNl
bmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420698</attachid>
            <date>2021-02-17 12:54:58 -0800</date>
            <delta_ts>2021-02-17 13:11:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222064-20210217125457.patch</filename>
            <type>text/plain</type>
            <size>37967</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyOTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGViYjNkMzE1ODA5OTc2Yzhk
Y2JkNDZjYzBhNDAwOTM4M2Q1NjNjM2EuLmQ5MTQ3NDY4YWY1YWFiNmI4YTVlNTlhN2E2NGUxZWUy
MzYzYzg0ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjEtMDItMTcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgU1BJIGZv
ciBnZXR0aW5nIHNpemUgb2YgUERGIGRvY3VtZW50IGR1cmluZyBwcmludGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMDY0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83NDM3MDg5MT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBXaGVuIHByaW50aW5nIGEgUERGLCB3ZSB3YW50IHRvIGtub3cgaXRz
IHBhZ2Ugc2l6ZS4gIElmIHRoZSBwcmludCBpcyBpbml0aWF0ZWQgYnkgdGhlIHdlYiBwcm9jZXNz
IChzdWNoIGFzIHdoZW4gd2luZG93LnByaW50IGlzIGNhbGxlZAorICAgICAgICBvciBpZiB0aGUg
UERGIGNvbnRhaW5zIEphdmFTY3JpcHQgdGhhdCB0ZWxscyB0aGUgYnJvd3NlciB0byBwcmludCBp
dCkgdGhlbiB3ZSB3b3VsZCBsaWtlIHRoYXQgaW5mb3JtYXRpb24gd2l0aCB0aGUgcHJpbnQgcmVx
dWVzdCBzbyB3ZQorICAgICAgICBkb24ndCBoYXZlIHRvIGFzayB0aGUgd2ViIHByb2Nlc3MsIHdo
aWNoIGlzIGh1bmcgd2FpdGluZyBmb3IgYSBzeW5jaHJvbm91cyBtZXNzYWdlIHJlcGx5LiAgSWYg
dGhlIHByaW50IGlzIGluaXRpYXRlZCBieSB0aGUgVUkgcHJvY2VzcworICAgICAgICAoc3VjaCBh
cyBpZiB0aGUgdXNlciBwcmludHMgZnJvbSBhIG1lbnUgb3Iga2V5Ym9hcmQgc2hvcnRjdXQpIHRo
ZW4gd2UgbmVlZCBhIHdheSB0byBhc2sgd2hhdCB0aGUgc2l6ZSBvZiBhIFBERiBpcy4KKworICAg
ICAgICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJ
VUlDbGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OnByaW50RnJhbWUpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UGFnZVVJ
Q2xpZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9nZXRQREZGaXJzdFBhZ2VTaXplSW5GcmFtZTpjb21wbGV0aW9uSGFu
ZGxlcjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRl
OjpzZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpw
cmludEZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpwcmludEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpnZXRQREZGaXJzdFBhZ2VTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAoV2Vi
S2l0OjpQREZQbHVnaW46OnBkZkRvY3VtZW50U2l6ZUZvclByaW50aW5nIGNvbnN0KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1
Z2luOjpwZGZEb2N1bWVudFNpemVGb3JQcmludGluZyBjb25zdCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50
OjpwcmludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0UERGRmlyc3RQYWdlU2l6ZSk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjpnZXRQREZGaXJzdFBhZ2VTaXplKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1l
c3NhZ2VzLmluOgorCiAyMDIxLTAyLTE2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIEFQSSB0byBkaXNhYmxlIEhUVFBTIHVwZ3JhZGUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggMTYzNjdlNmNh
YzgyNWFhOWM3NGZiNGM0ODQzZGQyZjFmZjFkYWQzOC4uN2NlYmUyZmFiYWQ1YjMzNWViMzYyYTMy
N2ViMzQ0YWU4MmRiZTY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xp
ZW50LmgKQEAgLTE0NSw3ICsxNDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBmbG9hdCBmb290
ZXJIZWlnaHQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmKSB7
IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIGRyYXdIZWFkZXIoV2ViS2l0OjpXZWJQYWdl
UHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3QmJikgeyB9
CiAgICAgdmlydHVhbCB2b2lkIGRyYXdGb290ZXIoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJL
aXQ6OldlYkZyYW1lUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3QmJikgeyB9Ci0gICAgdmlydHVh
bCB2b2lkIHByaW50RnJhbWUoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1l
UHJveHkmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsg
Y29tcGxldGlvbkhhbmRsZXIoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBwcmludEZyYW1lKFdlYktp
dDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiBwZGZGaXJzdFBhZ2VTaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoKTsgfQogCiAgICAgdmlydHVh
bCBib29sIGNhblJ1bk1vZGFsKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFs
IHZvaWQgcnVuTW9kYWwoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDYyYTU0Yjc0NmMzYWIyZjFhYjMyY2VkNzE0
NjRjNGM0ZGRmMWU5ZDYuLjQ2YWU3OTYxMDZkYTI3YjJlYjFiY2Y1ZGIzZTdiZjJiOTQ4MTE3OWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMTk3MSw3ICsx
OTcxLDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNv
bnN0IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgICAgIG1fY2xpZW50LmRy
YXdGb290ZXIodG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSShyZWN0KSwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgcHJpbnRGcmFt
ZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgICAgIHZvaWQgcHJp
bnRGcmFtZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBX
ZWJDb3JlOjpGbG9hdFNpemUmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChtX2NsaWVudC5wcmlu
dEZyYW1lKQogICAgICAgICAgICAgICAgIG1fY2xpZW50LnByaW50RnJhbWUodG9BUEkoJnBhZ2Up
LCB0b0FQSSgmZnJhbWUpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgK
aW5kZXggOTFiZWUzNGVkMGI2Mzk4MGI1NWExYWFiYWFhODhiOTI4MDQzM2M0NC4uNmI2MmU5MDg2
N2M2NjM3NjI4M2Q5N2ExNDE0YzM1N2RjNDYxMGExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xMDcs
NyArMTA3LDcgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgZGVjaWRlV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhRm9yU2VjdXJpdHlP
cmlnaW46KFdLU2VjdXJpdHlPcmlnaW4gKilzZWN1cml0eU9yaWdpbiBjdXJyZW50UXVvdGE6KHVu
c2lnbmVkIGxvbmcgbG9uZyljdXJyZW50UXVvdGEgdG90YWxCeXRlc05lZWRlZDoodW5zaWduZWQg
bG9uZyBsb25nKXRvdGFsQnl0ZXNOZWVkZWQgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKSh1bnNp
Z25lZCBsb25nIGxvbmcgbmV3UXVvdGEpKWRlY2lzaW9uSGFuZGxlcjsKIAogLSAodm9pZClfd2Vi
VmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZy
YW1lOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1lOihf
V0tGcmFtZUhhbmRsZSAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSlj
b21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkp
OworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1lOihfV0tG
cmFtZUhhbmRsZSAqKWZyYW1lIHBkZkZpcnN0UGFnZVNpemU6KE5TU2l6ZSlzaXplIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxB
QkxFKG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAtICh2b2lkKV93ZWJW
aWV3Q2xvc2U6KFdLV2ViVmlldyAqKXdlYlZpZXc7CiAtICh2b2lkKV93ZWJWaWV3RnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lOihXS1dlYlZpZXcgKil3ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNDk0NjE2ZTkyNjA0ZmRj
NjkzZDQ1YTFiOWZmYmViOWExYWRmYmUzNC4uMjkxYjlmNTM0NGUyYmQyZjdmYTVmYzM0MmIwNjMw
YTU0OTgzOGYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tCkBAIC0yMjM5LDYgKzIyMzksMTMgQEAgc3RhdGljIFJldGFpblB0cjxOU0FycmF5
PiB3a1RleHRNYW5pcHVsYXRpb25FcnJvcnMoTlNBcnJheTxfV0tUZXh0TWFuaXB1bGF0aW9uSXQK
ICAgICBbc2VsZiBjcmVhdGVQREZXaXRoQ29uZmlndXJhdGlvbjpwZGZDb25maWd1cmF0aW9uIGNv
bXBsZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAorLSAodm9pZClfZ2V0UERG
Rmlyc3RQYWdlU2l6ZUluRnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWUgY29tcGxldGlvbkhh
bmRsZXI6KHZvaWQoXikoTlNTaXplKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIF9wYWdlLT5n
ZXRQREZGaXJzdFBhZ2VTaXplKGZyYW1lLT5fZnJhbWVIYW5kbGUtPmZyYW1lSUQoKSwgW2NvbXBs
ZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oV2ViQ29yZTo6
RmxvYXRTaXplIHNpemUpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RhdGljX2Nhc3Q8
TlNTaXplPihzaXplKSk7CisgICAgfSk7Cit9CisKIC0gKE5TRGF0YSAqKV9zZXNzaW9uU3RhdGVE
YXRhCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCB1c2UgdGhlIGxlZ2FjeSBzZXNz
aW9uIHN0YXRlIGVuY29kZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCA5MjYyMzhhZWEwYTE0NzYxMThlNWE2OTA4
NTQ3YWQ3OWMzZjQ1NGQxLi4wODRiZjM0ZjAxMGM1MTRkYzMzMGIzMDZhYmE0YzE1YjZlNzc1Nzlh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmgKQEAgLTM1MCw2ICszNTAsNyBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIC0gKHZv
aWQpX2Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zOwogCiAtICh2b2lkKV90YWtlUERGU25hcHNo
b3RXaXRoQ29uZmlndXJhdGlvbjooV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gKilzbmFwc2hvdENv
bmZpZ3VyYXRpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRGF0YSAqcGRmU25hcHNo
b3REYXRhLCBOU0Vycm9yICplcnJvcikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJM
RShtYWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsKKy0gKHZvaWQpX2dldFBERkZpcnN0UGFnZVNp
emVJbkZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
KF4pKE5TU2l6ZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19N
QUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfZ2V0UHJvY2Vzc0Rpc3BsYXlO
YW1lV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqKSljb21wbGV0aW9u
SGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggODU5NWYyMGU0MWM2
ZmMzMTNhNDNmYjgyY2QwOWJmOTJlNWFlNjk1Yi4uOTA5ZDkyMDA1ODBjZTU1MWUzNmM3MTk5N2Nl
YzcyY2EzODQ0NjU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VUlEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaApAQCAtMTM3LDcgKzEzNyw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgZGVjaWRlUG9s
aWN5Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQ
cm94eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYpIGZpbmFsOwogICAgICAgICB2b2lkIGNoZWNrVXNl
ck1lZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5Jiwg
QVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tQcm94eSYpIGZpbmFsOwogICAgICAgICB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRl
RGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgZmluYWw7
Ci0gICAgICAgIHZvaWQgcHJpbnRGcmFtZShXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5Jiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKKyAgICAgICAgdm9pZCBwcmludEZy
YW1lKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNp
emUmIHBkZkZpcnN0UGFnZVNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7
CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpZiBIQVZFKEFQUF9MSU5LUykKICAgICAgICAg
Ym9vbCBzaG91bGRJbmNsdWRlQXBwTGlua0FjdGlvbnNGb3JFbGVtZW50KF9XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvICopIGZpbmFsOwpAQCAtMjE3LDcgKzIxNyw3IEBAIHByaXZhdGU6CiAgICAgICAg
IGJvb2wgd2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkRhdGFiYXNl
TmFtZURpc3BsYXlOYW1lQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFi
YXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9vbCB3
ZWJWaWV3RGVjaWRlV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5DdXJy
ZW50UXVvdGFUb3RhbEJ5dGVzTmVlZGVkIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3UHJpbnRG
cmFtZSA6IDE7Ci0gICAgICAgIGJvb2wgd2ViVmlld1ByaW50RnJhbWVDb21wbGV0aW9uSGFuZGxl
ciA6IDE7CisgICAgICAgIGJvb2wgd2ViVmlld1ByaW50RnJhbWVQREZGaXJzdFBhZ2VTaXplQ29t
cGxldGlvbkhhbmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRDbG9zZSA6IDE7CiAg
ICAgICAgIGJvb2wgd2ViVmlld0Nsb3NlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RnVsbHNj
cmVlbk1heVJldHVyblRvSW5saW5lIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tCmluZGV4IDkxMTk1NjAzNjg2OWFkOWUzZTY4Yjg5YzFjMmVjMzk2YTJj
YzI5NzQuLjkxYzIwNzY1MjNmM2ZmYTc5NWM5NzM2ZmVlYjg1MGY4MTRjOTA5MmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTQ0LDcgKzE0NCw3
IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdh
dGUpCiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JT
ZWN1cml0eU9yaWdpbkRhdGFiYXNlTmFtZURpc3BsYXlOYW1lQ3VycmVudFF1b3RhQ3VycmVudE9y
aWdpblVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVy
ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRl
RGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmRhdGFiYXNlTmFtZTpkaXNwbGF5TmFtZTpj
dXJyZW50UXVvdGE6Y3VycmVudE9yaWdpblVzYWdlOmN1cnJlbnREYXRhYmFzZVVzYWdlOmV4cGVj
dGVkVXNhZ2U6ZGVjaXNpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdEZWNpZGVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkN1cnJlbnRR
dW90YVRvdGFsQnl0ZXNOZWVkZWQgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3Rvcihfd2ViVmlldzpkZWNpZGVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFGb3JTZWN1cml0eU9y
aWdpbjpjdXJyZW50UXVvdGE6dG90YWxCeXRlc05lZWRlZDpkZWNpc2lvbkhhbmRsZXI6KV07CiAg
ICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1ByaW50RnJhbWUgPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOildOwotICAgIG1fZGVs
ZWdhdGVNZXRob2RzLndlYlZpZXdQcmludEZyYW1lQ29tcGxldGlvbkhhbmRsZXIgPSBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOmNvbXBs
ZXRpb25IYW5kbGVyOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdQcmludEZyYW1l
UERGRmlyc3RQYWdlU2l6ZUNvbXBsZXRpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cHJpbnRGcmFtZTpwZGZGaXJzdFBhZ2VTaXplOmNv
bXBsZXRpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDbG9z
ZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXdEaWRDbG9z
ZTopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q2xvc2UgPSBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0Nsb3NlOildOwogICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5U
b0lubGluZTopXTsKQEAgLTExOTMsNyArMTE5Myw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViUGFnZVByb3h5KiwgY29u
CiAgICAgfSkuZ2V0KCldOwogfQogCi12b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpwcmludEZy
YW1lKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmIHdlYkZyYW1lUHJveHksIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgVUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OnByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYgd2ViRnJh
bWVQcm94eSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBwZGZGaXJzdFBhZ2VTaXplLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFt
X3VpRGVsZWdhdGUpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwpAQCAtMTIw
Myw5ICsxMjAzLDkgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cHJpbnRGcmFtZShXZWJQ
YWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiB3ZWJGcmFtZVByb3gKICAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKCk7CiAKICAgICBhdXRvIGhhbmRsZSA9IEFQSTo6RnJhbWVIYW5kbGU6
OmNyZWF0ZSh3ZWJGcmFtZVByb3h5LmZyYW1lSUQoKSk7Ci0gICAgaWYgKG1fdWlEZWxlZ2F0ZS0+
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1ByaW50RnJhbWVDb21wbGV0aW9uSGFuZGxlcikgewot
ICAgICAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVh
dGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOmNvbXBsZXRp
b25IYW5kbGVyOikpOwotICAgICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0
ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKSBwcmludEZyYW1l
OndyYXBwZXIoaGFuZGxlKSBjb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NoZWNrZXIg
PSBXVEZNb3ZlKGNoZWNrZXIpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKKyAgICBpZiAobV91aURlbGVnYXRlLT5tX2RlbGVnYXRl
TWV0aG9kcy53ZWJWaWV3UHJpbnRGcmFtZVBERkZpcnN0UGFnZVNpemVDb21wbGV0aW9uSGFuZGxl
cikgeworICAgICAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2Vy
OjpjcmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOnBk
ZkZpcnN0UGFnZVNpemU6Y29tcGxldGlvbkhhbmRsZXI6KSk7CisgICAgICAgIFsoaWQgPFdLVUlE
ZWxlZ2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3
LmdldCgpLmdldCgpIHByaW50RnJhbWU6d3JhcHBlcihoYW5kbGUpIHBkZkZpcnN0UGFnZVNpemU6
c3RhdGljX2Nhc3Q8TlNTaXplPihwZGZGaXJzdFBhZ2VTaXplKSBjb21wbGV0aW9uSGFuZGxlcjpt
YWtlQmxvY2tQdHIoW2NoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAg
IGlmIChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKICAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhh
bmRsZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDk3
NGZhYTA4ODcwNjNmNWQxN2ZkMjhkMzliODU2N2YxMDVmZTEwNjIuLjUxZTljYjM0MTBlMTQ3Yjdk
Nzc3ZDZmNjk5YjE0MjM0MjUyNTMyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcApAQCAtNTg2OSw3ICs1ODY5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dD
b250YWN0UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmIHJlcXVlc3QK
ICAgICBwYWdlQ2xpZW50KCkuc2hvd0NvbnRhY3RQaWNrZXIocmVxdWVzdERhdGEsIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKIH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5OjpwcmludEZy
YW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94
eTo6cHJpbnRGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRs
ZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBwZGZGaXJzdFBhZ2VTaXplLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFtX2lz
UGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9uKTsKICAgICBtX2lzUGVyZm9ybWluZ0RPTVByaW50
T3BlcmF0aW9uID0gdHJ1ZTsKQEAgLTU4NzksNyArNTg3OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpwcmludEZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxl
LCBDb21wCiAKICAgICBmcmFtZS0+ZGlkQ2hhbmdlVGl0bGUodGl0bGUpOwogCi0gICAgbV91aUNs
aWVudC0+cHJpbnRGcmFtZSgqdGhpcywgKmZyYW1lLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSAoKSBtdXRhYmxlIHsKKyAgICBtX3VpQ2xpZW50LT5wcmludEZyYW1lKCp0aGlzLCAqZnJh
bWUsIHBkZkZpcnN0UGFnZVNpemUsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11
dGFibGUgewogICAgICAgICBlbmRQcmludGluZygpOyAvLyBTZW5kIGEgbWVzc2FnZSBzeW5jaHJv
bm91c2x5IHdoaWxlIG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24gaXMgc3RpbGwgdHJ1
ZS4KICAgICAgICAgbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbiA9IGZhbHNlOwogICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwpAQCAtODQ0MSw2ICs4NDQxLDExIEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpkcmF3VG9QREYoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IE9wdGlv
bmFsPEZsb2F0UmVjdD4mCiB9CiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpnZXRQREZGaXJzdFBhZ2VTaXplKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkZsb2F0U2l6ZSk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQ
YWdlOjpHZXRQREZGaXJzdFBhZ2VTaXplKGZyYW1lSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVCYWNraW5nU3RvcmVEaXNjYXJk
YWJsZVN0YXRlKCkKIHsKICAgICBBU1NFUlQoaGFzUnVubmluZ1Byb2Nlc3MoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDMxNGRhMzU0YTc0Y2IxOWVjYTQxN2M0
NGU2ODk0OGQ5MGRiYWI3MzguLjMxMTY0MDIwMzI1N2NlMzIwM2UzY2ZkOGQ0NjkxMDdiOGJmY2My
ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjg3LDYgKzEy
ODcsNyBAQCBwdWJsaWM6CiAgICAgdWludDY0X3QgZHJhd1JlY3RUb0ltYWdlKFdlYkZyYW1lUHJv
eHkqLCBjb25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViS2l0OjpTaGFy
ZWFibGVCaXRtYXA6OkhhbmRsZSYpPiYmKTsKICAgICB1aW50NjRfdCBkcmF3UGFnZXNUb1BERihX
ZWJGcmFtZVByb3h5KiwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90
IGNvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEFQSTo6RGF0YSopPiYmKTsKICAgICB2b2lk
IGRyYXdUb1BERihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IE9wdGlvbmFsPFdlYkNv
cmU6OkZsb2F0UmVjdD4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYpPiYmKTsKKyAgICB2b2lkIGdldFBERkZpcnN0UGFnZVNpemUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkZsb2F0U2l6ZSk+
JiYpOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgc3RkOjpwYWlyPHNpemVfdCwgdWlu
dDY0X3Q+IGNvbXB1dGVQYWdlc0ZvclByaW50aW5nQW5kRHJhd1RvUERGKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgY29uc3QgUHJpbnRJbmZvJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmKT4mJik7CiAjZW5kaWYKQEAgLTE5NzgsNyArMTk3OSw3IEBA
IHByaXZhdGU6CiAgICAgYm9vbCBkaWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbFdpdGhJbWFnZVRy
YW5zY29kaW5nKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlVVJMcywgY29uc3QgVmVjdG9yPFN0
cmluZz4mIGFsbG93ZWRNSU1FVHlwZXMpOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQoY29uc3Qg
V2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwogICAgIHZvaWQgc2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29u
dGFjdHNSZXF1ZXN0RGF0YSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8VmVjdG9y
PFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4mJik+JiYpOwotICAgIHZvaWQgcHJpbnRGcmFtZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CisgICAgdm9pZCBwcmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50NjRfdCBj
dXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3QgY3VycmVu
dERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YURlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIHJl
YWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVu
dGlmaWVyLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNOZWVkZWQs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVv
dGFEZWxheWVkUmVwbHkmJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAwNWJmMjFiZmZiN2Q3Y2U5ZDBiMTA0MjAyNzllNzll
OGUxODBlNWQ0Li5jMTQwYzM4ZGY5YjQ5YmJjNjgyYmRjY2FkNGIxMzk4OTJiOGE1NDk3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBA
IC03MCw3ICs3MCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgUnVuT3BlblBh
bmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFt
ZUluZm9EYXRhIGZyYW1lSW5mbywgc3RydWN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0dGluZ3Mg
cGFyYW1ldGVycykKICAgICBTaG93U2hhcmVTaGVldChzdHJ1Y3QgV2ViQ29yZTo6U2hhcmVEYXRh
V2l0aFBhcnNlZFVSTCBzaGFyZURhdGEpIC0+IChib29sIGdyYW50ZWQpIEFzeW5jCiAgICAgU2hv
d0NvbnRhY3RQaWNrZXIoc3RydWN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEgcmVxdWVz
dERhdGEpIC0+IChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiBpbmZvKSBB
c3luYwotICAgIFByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIFN0
cmluZyB0aXRsZSkgLT4gKCkgU3luY2hyb25vdXMKKyAgICBQcmludEZyYW1lKFdlYkNvcmU6OkZy
YW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgdGl0bGUsIFdlYkNvcmU6OkZsb2F0U2l6ZSBw
ZGZGaXJzdFBhZ2VTaXplKSAtPiAoKSBTeW5jaHJvbm91cwogICAgIFJ1bk1vZGFsKCkKICAgICBO
b3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KFdlYkNvcmU6OkludFJlY3Qgc2Nyb2xs
ZXJUaHVtYikKICAgICBSZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKGludDMyX3Qg
bmV3U3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERG
UGx1Z2luLmgKaW5kZXggYmE3YTE4NzZiMWZiMDYzOTI1YTQwYmE3ZWQwYjNhZDY5NWFmNGYzYy4u
ZjA3Yjc4ZWVlODhkYjQwMWVjMDc5MjcyNzk0ZmE1NmFlZjJjNTUyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaApAQCAtMjEzLDYgKzIx
Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwbHVnaW5IYW5kbGVzQ29udGVudE9mZnNldEZvckFj
Y2Vzc2liaWxpdHlIaXRUZXN0KCkgY29uc3QgZmluYWw7CiAgICAgCiAgICAgUmV0YWluUHRyPFBE
RkRvY3VtZW50PiBwZGZEb2N1bWVudEZvclByaW50aW5nKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9wZGZEb2N1bWVudDsgfQorICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBwZGZEb2N1bWVudFNpemVG
b3JQcmludGluZygpIGNvbnN0IGZpbmFsOwogICAgIE5TT2JqZWN0ICphY2Nlc3NpYmlsaXR5T2Jq
ZWN0KCkgY29uc3QgZmluYWw7CiAgICAgaWQgYWNjZXNzaWJpbGl0eUFzc29jaWF0ZWRQbHVnaW5Q
YXJlbnRGb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBjb25zdCBmaW5hbDsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbSBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0KaW5kZXgg
MmFkNDVjNTFjMjE0YTM5YzRmZmI3N2M2YzliOGJiMzQyZmM2YWJmNC4uMjQ4MDBmNmM1OTM1NGVh
NWY1YWI1ODRkOTZiODE2YTc0ZGU2Y2MwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0xNTUwLDYgKzE1NTAsMTEgQEAgSlNW
YWx1ZVJlZiBQREZQbHVnaW46OmpzUERGRG9jUHJpbnQoSlNDb250ZXh0UmVmIGN0eCwgSlNPYmpl
Y3RSZWYgZnVuY3Rpb24sIEpTT2IKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY3R4
KTsKIH0KIAorRmxvYXRTaXplIFBERlBsdWdpbjo6cGRmRG9jdW1lbnRTaXplRm9yUHJpbnRpbmco
KSBjb25zdAoreworICAgIHJldHVybiBGbG9hdFNpemUoW1ttX3BkZkRvY3VtZW50IHBhZ2VBdElu
ZGV4OjBdIGJvdW5kc0ZvckJveDprUERGRGlzcGxheUJveENyb3BCb3hdLnNpemUpOworfQorCiBK
U09iamVjdFJlZiBQREZQbHVnaW46Om1ha2VKU1BERkRvYyhKU0NvbnRleHRSZWYgY3R4KQogewog
ICAgIHN0YXRpYyBKU1N0YXRpY0Z1bmN0aW9uIGpzUERGRG9jU3RhdGljRnVuY3Rpb25zW10gPSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3Bw
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcAppbmRleCBiNzZk
MzQ0OGYyMGFjYmQ5OTgzNzBkNGI5ZjQ4M2RmZDcxNzQwNjhjLi40YmE2NWMwZmY4OGVkMTk1ZjI3
N2Y0Nzk1N2UyODMwNDZkYWNmMzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpbi5jcHAKQEAgLTEyNyw0ICsxMjcsOSBAQCBjb25zdCBQbHVnaW5Db250cm9sbGVy
KiBQbHVnaW46OmNvbnRyb2xsZXIoKSBjb25zdAogICAgIHJldHVybiBtX3BsdWdpbkNvbnRyb2xs
ZXIuZ2V0KCk7CiB9CiAKK1dlYkNvcmU6OkZsb2F0U2l6ZSBQbHVnaW46OnBkZkRvY3VtZW50U2l6
ZUZvclByaW50aW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyB9OworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKaW5k
ZXggZGM1NTc5ZmQzMTk1MjQ4Y2RlZTliMDE1NmFmNzgwOTdmOGVhYWY3MC4uZDNjN2FjNzA1MTFm
YzcyYzg3MDg0YjhhMzc0ZjlkNmM3MjY4NTliMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luLmgKQEAgLTU1LDYgKzU1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgQWZmaW5lVHJhbnNmb3JtOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZsb2F0UG9pbnQ7
CitjbGFzcyBGbG9hdFNpemU7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBJbnRQb2lu
dDsKIGNsYXNzIEludFJlY3Q7CkBAIC0yNzUsNiArMjc2LDcgQEAgcHVibGljOgogCiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgdmlydHVhbCBSZXRhaW5QdHI8UERGRG9jdW1lbnQ+IHBkZkRvY3Vt
ZW50Rm9yUHJpbnRpbmcoKSBjb25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpGbG9hdFNpemUgcGRmRG9jdW1lbnRTaXplRm9yUHJpbnRpbmcoKSBjb25zdDsKICAgICB2aXJ0
dWFsIE5TT2JqZWN0ICphY2Nlc3NpYmlsaXR5T2JqZWN0KCkgY29uc3QgeyByZXR1cm4gMDsgfQog
ICAgIHZpcnR1YWwgaWQgYWNjZXNzaWJpbGl0eUFzc29jaWF0ZWRQbHVnaW5QYXJlbnRGb3JFbGVt
ZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggYzA5YTI3YjdlN2Y1M2ZiNDQyNDQ0NzFhNmQ2Yjc0
ZmNlMDVkNDNhMC4uMzIwOTdjMzBiNDY2YWU3NGQ3ODUzZDBlODdkMDFjMTIwMzYyNzhmYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiUGFnZUJhbm5lci5oIgorI2luY2x1ZGUgIlBsdWdp
blZpZXcuaCIKICNpbmNsdWRlICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCIKICNpbmNs
dWRlICJTaGFyZWRCdWZmZXJDb3B5LmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKQEAgLTczNSw4
ICs3MzYsMTQgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lJiBmcmFtZSwgY29u
c3QgU3RyaW5nV2l0aERpcmVjdGlvbiYgdGl0bGUpCiAgICAgfQogI2VuZGlmCiAKKyAgICBXZWJD
b3JlOjpGbG9hdFNpemUgcGRmRmlyc3RQYWdlU2l6ZTsKKyAgICBpZiAoYXV0byogcGx1Z2luVmll
dyA9IFdlYlBhZ2U6OnBsdWdpblZpZXdGb3JGcmFtZSgmZnJhbWUpKSB7CisgICAgICAgIGlmIChh
dXRvKiBwbHVnaW4gPSBwbHVnaW5WaWV3LT5wbHVnaW4oKSkKKyAgICAgICAgICAgIHBkZkZpcnN0
UGFnZVNpemUgPSBwbHVnaW4tPnBkZkRvY3VtZW50U2l6ZUZvclByaW50aW5nKCk7CisgICAgfQor
CiAgICAgYXV0byB0cnVuY2F0ZWRUaXRsZSA9IHRydW5jYXRlRnJvbUVuZCh0aXRsZSwgbWF4VGl0
bGVMZW5ndGgpOwotICAgIG1fcGFnZS5zZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6UHJpbnRGcmFtZSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCB0cnVuY2F0ZWRU
aXRsZS5zdHJpbmcpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQcmludEZyYW1lOjpSZXBseSgp
KTsKKyAgICBtX3BhZ2Uuc2VuZFN5bmNXaXRoRGVsYXllZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlByaW50RnJhbWUod2ViRnJhbWUtPmZyYW1lSUQoKSwgdHJ1bmNhdGVkVGl0bGUuc3Ry
aW5nLCBwZGZGaXJzdFBhZ2VTaXplKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UHJpbnRGcmFt
ZTo6UmVwbHkoKSk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpleGNlZWRlZERhdGFiYXNl
UXVvdGEoRnJhbWUmIGZyYW1lLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgRGF0YWJhc2VE
ZXRhaWxzIGRldGFpbHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KaW5kZXggZjU3ZDg0OWE2MjAxMTQ0YzU3Mzc3ZWNj
MzcxMTZhMjE4ZGYxM2E4ZS4uY2ZiNTVhYTJkYjA4ZDVjZDI3YmIxYTQ1YWViZjlhNzAzOTdjOWM3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2Vi
UGFnZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29h
L1dlYlBhZ2VDb2NvYS5tbQpAQCAtNDE2LDYgKzQxNiwyNyBAQCB2b2lkIFdlYlBhZ2U6OmNvbnN1
bWVOZXR3b3JrRXh0ZW5zaW9uU2FuZGJveEV4dGVuc2lvbnMoY29uc3QgU2FuZGJveEV4dGVuc2lv
bjo6SAogI2VuZGlmCiB9CiAKK3ZvaWQgV2ViUGFnZTo6Z2V0UERGRmlyc3RQYWdlU2l6ZShXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpGbG9hdFNpemUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGF1dG8qIHdlYkZy
YW1lID0gV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkud2ViRnJhbWUoZnJhbWVJRCk7CisgICAgaWYg
KCF3ZWJGcmFtZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisKKyAg
ICBhdXRvKiBjb3JlRnJhbWUgPSB3ZWJGcmFtZS0+Y29yZUZyYW1lKCk7CisgICAgaWYgKCFjb3Jl
RnJhbWUpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworCisgICAgYXV0
byogcGx1Z2luVmlldyA9IHBsdWdpblZpZXdGb3JGcmFtZShjb3JlRnJhbWUpOworICAgIGlmICgh
cGx1Z2luVmlldykKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisgICAg
CisgICAgYXV0byogcGx1Z2luID0gcGx1Z2luVmlldy0+cGx1Z2luKCk7CisgICAgaWYgKCFwbHVn
aW4pCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworCisgICAgY29tcGxl
dGlvbkhhbmRsZXIoRmxvYXRTaXplKHBsdWdpbi0+cGRmRG9jdW1lbnRTaXplRm9yUHJpbnRpbmco
KSkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENP
Q09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRl
eCBiNzk0NzE4YmMwOWFmOTNmYzQxZDZjNGJlZTI4MzA0OTI4ZDIxNjNlLi4zZTM4MTMyMTVjNTAw
OGNiMDhlNzIzYTliMzU5MDdlNzU2YWRkODczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNzA4OSw2ICs3MDg5LDExIEBAIHZvaWQgV2ViUGFn
ZTo6Y29uZmlndXJlTG9nZ2luZ0NoYW5uZWwoY29uc3QgU3RyaW5nJiBjaGFubmVsTmFtZSwgV1RG
TG9nQ2hhbm5lbFN0CiB9CiAKICNpZiAhUExBVEZPUk0oQ09DT0EpCit2b2lkIFdlYlBhZ2U6Omdl
dFBERkZpcnN0UGFnZVNpemUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFdlYkNvcmU6OkZsb2F0U2l6ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7Cisg
ICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKK30KKwogdm9pZCBXZWJQYWdlOjpnZXRQcm9jZXNz
RGlzcGxheU5hbWUoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcmJik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCA5NDYyZWI0NGJiYWIyMTI5YmVhNjdh
NTVkZDc4N2Q1NDVlYzgwZjI4Li43ZDU0MWRkZjcwNGE2NzA0YjE5ZmFkMjkzZTE2NWYwNDc2OWJj
MDkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0x
NTA3LDYgKzE1MDcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgbG9hZERhdGEoTG9hZFBhcmFtZXRl
cnMmJik7CiAgICAgdm9pZCBsb2FkQWx0ZXJuYXRlSFRNTChMb2FkUGFyYW1ldGVycyYmKTsKICAg
ICB2b2lkIG5hdmlnYXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKGNvbnN0IFN0cmluZyYg
dXJsLCBXZWJDb3JlOjpJbnRQb2ludCBkb2N1bWVudFBvaW50LCBXZWJDb3JlOjpJbnRQb2ludCBz
Y3JlZW5Qb2ludCk7CisgICAgdm9pZCBnZXRQREZGaXJzdFBhZ2VTaXplKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpGbG9hdFNpemUpPiYm
KTsKICAgICB2b2lkIHJlbG9hZCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90IHJlbG9h
ZE9wdGlvbnMsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKTsKICAgICB2b2lkIGdvVG9CYWNr
Rm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpCYWNrRm9y
d2FyZEl0ZW1JZGVudGlmaWVyJiwgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSwgV2ViQ29yZTo6U2hv
dWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNEYXRhPiYm
KTsKICAgICB2b2lkIHRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggMzRi
MTJjNDY0NDRmZjE1NWE1ZTE0MzIxOTlhZDhhMTc4OTkxNTgyYi4uNTI4NjAxYzYxMDEyZmFmZWVl
ODYxOWE1MzE4NzhmMWUxNDlkYzhjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xODIsNiArMTgyLDcgQEAgR2Vu
ZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpTeW50aGV0
aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBMb2FkQWx0ZXJuYXRlSFRNTChzdHJ1Y3QgV2ViS2l0
OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKIAogICAgIE5hdmlnYXRlVG9QREZMaW5r
V2l0aFNpbXVsYXRlZENsaWNrKFN0cmluZyB1cmwsIFdlYkNvcmU6OkludFBvaW50IGRvY3VtZW50
UG9pbnQsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblBvaW50KQorICAgIEdldFBERkZpcnN0UGFn
ZVNpemUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+IChXZWJDb3JlOjpGbG9h
dFNpemUgc2l6ZSkgQXN5bmMKIAogICAgIFJlbG9hZCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVp
bnQzMl90IHJlbG9hZE9wdGlvbnMsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNh
bmRib3hFeHRlbnNpb25IYW5kbGUpCiAgICAgU3RvcExvYWRpbmcoKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDE3OGI1MjEyODQ0MWY3ZWMzZWM3
MTVkMmM4NWE4ZWYyZDU2N2ZkMWYuLjhlOWM1OWRiYWExMWEzNTIzZjE5OTAyNjAyNWRjNThmN2Fi
NzBjMDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOSBAQAorMjAyMS0wMi0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBTUEkgZm9yIGdldHRpbmcgc2l6ZSBvZiBQ
REYgZG9jdW1lbnQgZHVyaW5nIHByaW50aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwNjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc0Mzcw
ODkxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvdGVzdF9wcmludC5wZGY6IEFkZGVk
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1t
OgorICAgICAgICAoLVtQcmludFVJRGVsZWdhdGUgX3dlYlZpZXc6cHJpbnRGcmFtZTpwZGZGaXJz
dFBhZ2VTaXplOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtQcmludFVJRGVsZWdh
dGUgd2FpdEZvclBhZ2VTaXplXSk6CisgICAgICAgICgtW1ByaW50VUlEZWxlZ2F0ZSBsYXN0UHJp
bnRlZEZyYW1lXSk6CisgICAgICAgIChURVNUKToKKwogMjAyMS0wMi0xNiAgQWxleCBDaHJpc3Rl
bnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEFkZCBBUEkgdG8gZGlz
YWJsZSBIVFRQUyB1cGdyYWRlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJkMmY5ZTYyNzY5
MDZlNWY1NDBhZjQ5MTI4ODU2MzYzMjY1YjVjOWUuLjhjNDU3ZjkxYmM1ZTVhMzIzMWY2NTNjM2Nl
OWU1MmFmMmFhODEyNjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktp
dEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00NjEsNiArNDYxLDcg
QEAKIAkJNUM0QTg0OTUxRjdFRUZGQzAwQUNGQzU0IC8qIENvbmZpZ3VyYXRpb24ubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRBODQ5NDFGN0VFRkQ0
MDBBQ0ZDNTQgLyogQ29uZmlndXJhdGlvbi5tbSAqLzsgfTsKIAkJNUM2OUJERDUxRjgyQTdFRjAw
MEY0RjRCIC8qIEphdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM2OUJERDQxRjgyQTdFQjAwMEY0RjRCIC8q
IEphdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tICovOyB9OwogCQk1QzZFMjdBNzIyNEVFQkVB
MDAxMjg3MzYgLyogVVJMQ2Fub25pY2FsaXphdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNkUyN0E2MjI0RUVCRUEwMDEyODczNiAvKiBVUkxD
YW5vbmljYWxpemF0aW9uLm1tICovOyB9OworCQk1QzcxMDFDNzI1REQ5OEI2MDA2ODYyMDAgLyog
dGVzdF9wcmludC5wZGYgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUM3MTAxQzYyNUREOTg4NzAwNjg2MjAwIC8qIHRlc3RfcHJpbnQucGRmICov
OyB9OwogCQk1QzcxNDg5NTIxMjNBNDBBMDBGREUzQzUgLyogV0tXZWJzaXRlRGF0YXN0b3JlLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3MTQ4OTQy
MTIzQTQwNzAwRkRFM0M1IC8qIFdLV2Vic2l0ZURhdGFzdG9yZS5tbSAqLzsgfTsKIAkJNUM3NTcx
NjEyMjEyNEM1MjAwQjlFNUFDIC8qIEJ1bmRsZVJldGFpblBhZ2VQbHVnSW4ubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Qzc1NzE1RjIyMTI0OUJEMDBC
OUU1QUMgLyogQnVuZGxlUmV0YWluUGFnZVBsdWdJbi5tbSAqLzsgfTsKIAkJNUM3OTY0MTAxRUIw
Mjc4RDAwNzVENzRDIC8qIEV2ZW50TW9kaWZpZXJzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNzk2NDBGMUVCMDI2OUIwMDc1RDc0QyAvKiBFdmVu
dE1vZGlmaWVycy5jcHAgKi87IH07CkBAIC0xNjQ5LDYgKzE2NTAsNyBAQAogCQkJCUM5NTk4NEY3
MUUzNkJDRUYwMDJDMEQ0NSAvKiB0ZXN0LXdpdGhvdXQtYXVkaW8tdHJhY2subXA0IGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCTUyNEJCQ0ExMTlFMzBDNzcwMDJGMUFGMSAvKiB0ZXN0Lm1wNCBp
biBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk3QUU5RTUwOTFBRTVBRThCMDBDRjg3NEIgLyogdGVz
dC5wZGYgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNUM3MTAxQzcyNUREOThCNjAwNjg2MjAw
IC8qIHRlc3RfcHJpbnQucGRmIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTJFOTg5NjE1MUQ4
RjA5MzgwMDczOTg5MiAvKiB0ZXh0LWFuZC1wYXNzd29yZC1pbnB1dHMuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQlGNENENzRDNjIwRkRBQ0ZBMDBERTM3OTQgLyogdGV4dC13aXRoLWFz
eW5jLXNjcmlwdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0NEM3QTA1MjBGQUFF
M0MwMDE0NDc4QyAvKiB0ZXh0LXdpdGgtZGVmZXJyZWQtc2NyaXB0Lmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCkBAIC0yMjQ3LDYgKzIyNDksNyBAQAogCQk1QzY4MzQ3MTIzNUFDQzdDMDA0MUU2
QjEgLyogU2VydmljZVdvcmtlclRDUFNlcnZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTZXJ2aWNlV29ya2VyVENQU2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTVDNjlCREQ0MUY4MkE3RUIwMDBGNEY0QiAvKiBKYXZhU2NyaXB0RHVyaW5nTmF2aWdh
dGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEphdmFTY3Jp
cHREdXJpbmdOYXZpZ2F0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzZF
MjdBNjIyNEVFQkVBMDAxMjg3MzYgLyogVVJMQ2Fub25pY2FsaXphdGlvbi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVSTENhbm9uaWNhbGl6YXRpb24ubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNzEwMUM2MjVERDk4ODcwMDY4NjIwMCAvKiB0
ZXN0X3ByaW50LnBkZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IGltYWdlLnBkZjsgcGF0aCA9IHRlc3RfcHJpbnQucGRmOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1QzcxNDg5NDIxMjNBNDA3MDBGREUzQzUgLyogV0tXZWJzaXRlRGF0YXN0
b3JlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tXZWJzaXRl
RGF0YXN0b3JlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzcyRThDRDI0NEZG
Q0UzMDAzODFFQjcgLyogVGVzdExlZ2FjeURvd25sb2FkRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBuYW1lID0gVGVzdExlZ2FjeURvd25sb2FkRGVsZWdhdGUuaDsgcGF0aCA9
IGNvY29hL1Rlc3RMZWdhY3lEb3dubG9hZERlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTVDNzJFOENFMjQ0RkZDRTQwMDM4MUVCNyAvKiBUZXN0TGVnYWN5RG93bmxvYWRE
ZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFRlc3RM
ZWdhY3lEb3dubG9hZERlbGVnYXRlLm1tOyBwYXRoID0gY29jb2EvVGVzdExlZ2FjeURvd25sb2Fk
RGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00MjI4LDYgKzQyMzEs
NyBAQAogCQkJCTc2NzM0OTk3MTkzMDE2REMwMEU0NERGOSAvKiBTdG9wTG9hZGluZ0R1cmluZ0Rp
ZEZhaWxQcm92aXNpb25hbExvYWQuY3BwICovLAogCQkJCTc2NzM0OTlBMTkzMDE4MkUwMEU0NERG
OSAvKiBTdG9wTG9hZGluZ0R1cmluZ0RpZEZhaWxQcm92aXNpb25hbExvYWRfYnVuZGxlLmNwcCAq
LywKIAkJCQkxQUU3MkY0NzE3M0VCMjE0MDA2MzYyRjAgLyogVGVybWluYXRlVHdpY2UuY3BwICov
LAorCQkJCTVDNzEwMUM2MjVERDk4ODcwMDY4NjIwMCAvKiB0ZXN0X3ByaW50LnBkZiAqLywKIAkJ
CQlDRTM1MjRGMTFCMTQyQjhEMDAyOEE3QzUgLyogVGV4dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0
aW5nLmNwcCAqLywKIAkJCQlDRTM1MjRGMjFCMTQyQjhEMDAyOEE3QzUgLyogVGV4dEZpZWxkRGlk
QmVnaW5BbmRFbmRFZGl0aW5nX0J1bmRsZS5jcHAgKi8sCiAJCQkJNEE0MTBGNEIxOUFGN0JENjAw
MkVCQUI1IC8qIFVzZXJNZWRpYS5jcHAgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC90ZXN0X3ByaW50LnBkZiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L3Rlc3RfcHJpbnQucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzMmVmOTAwY2NjNGYwOGNkMGM2
MTFlY2YxYWVhMDVkYmZjZjY4Y2MKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDIzNzcKemNtYlZP
WkV3PnM1YXRpfktsc1o4MnI8N1RhYXZVTSEmKExkIz0zU0FORUlLbClFUGwteWR+fjVgMTVkUUN1
XkU/CnoyJDMhP3pQc24lZTBTY19ZPGxgeTkwJW0rSCh0LStCNyQ7aXU3OGx4aF9HMntSQCtwVWJq
MUpyOFdUMXRieipaPAp6T2NTZj1pfEhINXJRa3h1SlBkaW5VdmQ3Tl5PdUMzbzdMWVgjJCUkMzYq
QDtgJWdke3V4MDxwXlZ3MUpHMGpIQjIKelVDe154PTdmRHRIbjBmWHE2SjRuNlFxWWJMQmMqSF9z
SnFIXklKPVc+WX5DUDNUK1dLKk9sM3BESHk3Z21NKmxWCnpPOXQ3Yz5gRmdhJUZaPypjflpZOF81
MTdfVlA3dzxmOVRYWTxlOHd0YHdnemJBRGZ1TT5jVW9aSVllS21lK3UtWQp6UytwNmtxWUtfKjNs
fTtTbjZDeVJhRXNeRU9hSUdyUG9wPERfXlMkK0lTQjR0dWt6JT9Ka1RaanE9WT0/RyMqT2UKeiUj
c29VdDlQbGpGJk9eLSM8PWFvUkJTPEI1Y1YtJkt8V2p4ekcwR0BpYT90VUB7PXhaPzAzcU1VczxU
VzRNRG0zCnp2cTUwITlmVzhoRSlQSTM+QEd4d0V6bGlkUSs9UE9kajlUJnJXRndvYWRUSGBLeyV9
Tzled08xMG5idkNqNkBQWQp6NHteTD9GYVVOS3BpbVN4QWpkKz9LfUhhd3Z9WHk5Y3hVUElQJTNh
IXlLKEpCKXo2K1FpVmh9ZFZKXnd0ZmRzblIKej4hOEI4MS1tMUZsWTs9PCNtSFFBQjhJUTFVWm9x
dHBpIW9WVCpCez1pU30lJEQ8TSNPQ1NjfXkpdnI7JVRna3lMCnohKGlmJi11QlM9WFQ1JEd7UHNT
Znc+PyVHeT5pZHJNPXUre2s+SVE2MzchMnVzc3t+V2l8d15fNlZ1SGshcnRycgp6PH55e088amBH
VEApYjFCZk9FbzVhJEMpR0lXZTFDUSgmX0tkdCVuNlQtK3VwM3x3RjVANTx5U1ZVRz5SUFY9PmUK
ejE3cGNmKkQmcDtJeUVafHtxOEBZPm8/SDZlb0RlQE5VYlNoPGtmbUJ3RDUlMD9XVS1sVGpSMG9g
ZHVzVXpPYnhfCnpvN3pvKmBSVHRMZ0BNWXtOPVk/VFQxNjNASkU0bFFmVlh+UE9vZnw7ZHFjJk04
Zl4+T0l2KEp0U2tPX1h2eUFnTgp6PFhsMHspRFhTeyZaVU1vOUdKMjZHPSohQmtzeU9fcXtrOFA7
RmQhLT5ZSkpMUTBrMXAkUVkyX2ZsSTtWQWZnJDQKenEpRGg9eWxDLUE2OVg4NDlod1pHdVJBbWR4
a3BuRyUoYWVPakVVXmhSRyY3JDZ6JDZpOWB0TyQwRD5+XyRjZG41CnpTSUQ1UkZPWDJxOWMranZU
YkROTVZ1Y0tReGRQZy1XIUlLVHpTZ0R0ZWBqdXRyUzdQTkhwemMhK3l7MTZXUU12VQpWKUF3WGpU
RE1DPURqfj94KGM2bnRAJn1xe09oXkMjCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tCmluZGV4
IDcwZmNkN2FlYjA4MTI1N2U0NmFhYjkyYWQxOGZlMjE5NjNmYWEwYWYuLjczMWQxZWNjNWE1MmJh
ODVlNThiZjViZTZiNDJlMjFlYTFiOTIyN2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tQREZWaWV3Lm1tCkBAIC00Myw3ICs0Myw3IEBACiAjaW1w
b3J0IDxDYXJib24vQ2FyYm9uLmg+CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKElPUykgfHwgRU5B
QkxFKFVJX1BST0NFU1NfUERGX0hVRCkKKyNpZiBQTEFURk9STShJT1MpIHx8IEVOQUJMRShVSV9Q
Uk9DRVNTX1BERl9IVUQpIHx8IFBMQVRGT1JNKE1BQykKIHN0YXRpYyBOU0RhdGEgKnBkZkRhdGEo
KQogewogICAgIHJldHVybiBbTlNEYXRhIGRhdGFXaXRoQ29udGVudHNPZlVSTDpbW05TQnVuZGxl
IG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAidGVzdCIgd2l0aEV4dGVuc2lvbjpAInBkZiIg
c3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CkBAIC0zNzIsNCArMzcy
LDExNyBAQCBURVNUKFBERkhVRCwgTG9hZFBERlR5cGVXaXRoUGx1Z2luc0Jsb2NrZWQpCiAgICAg
Y2hlY2tGcmFtZSh3ZWJWaWV3Ll9wZGZIVURzLmFueU9iamVjdC5mcmFtZSwgMCwgMCwgODAwLCA2
MDApOwogfQogCisjZW5kaWYgLy8gRU5BQkxFKFVJX1BST0NFU1NfUERGX0hVRCkKKworI2lmIFBM
QVRGT1JNKE1BQykKKworQGludGVyZmFjZSBQcmludFVJRGVsZWdhdGUgOiBOU09iamVjdCA8V0tV
SURlbGVnYXRlPgorCistIChOU1NpemUpd2FpdEZvclBhZ2VTaXplOworLSAoX1dLRnJhbWVIYW5k
bGUgKilsYXN0UHJpbnRlZEZyYW1lOworCitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBQcmludFVJ
RGVsZWdhdGUgeworICAgIE5TU2l6ZSBfcGFnZVNpemU7CisgICAgYm9vbCBfcmVjZWl2ZWRTaXpl
OworICAgIFJldGFpblB0cjxfV0tGcmFtZUhhbmRsZT4gX2xhc3RQcmludGVkRnJhbWU7Cit9CisK
Ky0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJpbnRGcmFtZTooX1dLRnJh
bWVIYW5kbGUgKilmcmFtZSBwZGZGaXJzdFBhZ2VTaXplOihOU1NpemUpc2l6ZSBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfcGFnZVNp
emUgPSBzaXplOworICAgIF9yZWNlaXZlZFNpemUgPSB0cnVlOworICAgIF9sYXN0UHJpbnRlZEZy
YW1lID0gZnJhbWU7CisgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKK30KKworLSAoTlNTaXplKXdh
aXRGb3JQYWdlU2l6ZQoreworICAgIF9yZWNlaXZlZFNpemUgPSBmYWxzZTsKKyAgICB3aGlsZSAo
IV9yZWNlaXZlZFNpemUpCisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnNwaW5SdW5Mb29w
KCk7CisgICAgcmV0dXJuIF9wYWdlU2l6ZTsKK30KKworLSAoX1dLRnJhbWVIYW5kbGUgKilsYXN0
UHJpbnRlZEZyYW1lCit7CisgICAgcmV0dXJuIF9sYXN0UHJpbnRlZEZyYW1lLmdldCgpOworfQor
CitAZW5kCisKK1RFU1QoUERGLCBQcmludFNpemUpCit7CisgICAgYXV0byBjb25maWd1cmF0aW9u
ID0gW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10gYXV0b3JlbGVhc2VdOworICAgIGF1dG8g
c2NoZW1lSGFuZGxlciA9IFtbVGVzdFVSTFNjaGVtZUhhbmRsZXIgbmV3XSBhdXRvcmVsZWFzZV07
CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0VVJMU2NoZW1lSGFuZGxlcjpzY2hlbWVIYW5kbGVyIGZv
clVSTFNjaGVtZTpAInRlc3QiXTsKKyAgICBhdXRvIHdlYlZpZXcgPSBbW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbl0gYXV0b3JlbGVhc2VdOworICAgIGF1dG8gZGVsZWdhdGUgPSBb
W1ByaW50VUlEZWxlZ2F0ZSBuZXddIGF1dG9yZWxlYXNlXTsKKyAgICB3ZWJWaWV3LlVJRGVsZWdh
dGUgPSBkZWxlZ2F0ZTsKKworICAgIHNjaGVtZUhhbmRsZXIuc3RhcnRVUkxTY2hlbWVUYXNrSGFu
ZGxlciA9IF4oV0tXZWJWaWV3ICosIGlkPFdLVVJMU2NoZW1lVGFzaz4gdGFzaykgeworICAgICAg
ICBhdXRvIHVybCA9IHRhc2sucmVxdWVzdC5VUkw7CisgICAgICAgIE5TRGF0YSAqZGF0YTsKKyAg
ICAgICAgTlNTdHJpbmcgKm1pbWVUeXBlOworICAgICAgICBpZiAoW3VybC5wYXRoIGlzRXF1YWxU
b1N0cmluZzpAIi9tYWluLmh0bWwiXSkgeworICAgICAgICAgICAgbWltZVR5cGUgPSBAInRleHQv
aHRtbCI7CisgICAgICAgICAgICBjb25zdCBjaGFyKiBodG1sID0gIjxici8+PGlmcmFtZSBzcmM9
J3Rlc3QucGRmJyBpZD0ncGRmZnJhbWUnPjwvaWZyYW1lPiI7CisgICAgICAgICAgICBkYXRhID0g
W05TRGF0YSBkYXRhV2l0aEJ5dGVzOmh0bWwgbGVuZ3RoOnN0cmxlbihodG1sKV07CisgICAgICAg
IH0gZWxzZSBpZiAoW3VybC5wYXRoIGlzRXF1YWxUb1N0cmluZzpAIi90ZXN0LnBkZiJdKSB7Cisg
ICAgICAgICAgICBtaW1lVHlwZSA9IEAiYXBwbGljYXRpb24vcGRmIjsKKyAgICAgICAgICAgIGRh
dGEgPSBwZGZEYXRhKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBFWFBFQ1RfV0tf
U1RSRVEodXJsLnBhdGgsICIvdGVzdF9wcmludC5wZGYiKTsKKyAgICAgICAgICAgIG1pbWVUeXBl
ID0gQCJhcHBsaWNhdGlvbi9wZGYiOworICAgICAgICAgICAgZGF0YSA9IFtOU0RhdGEgZGF0YVdp
dGhDb250ZW50c09mVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ0
ZXN0X3ByaW50IiB3aXRoRXh0ZW5zaW9uOkAicGRmIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0
QVBJLnJlc291cmNlcyJdXTsKKyAgICAgICAgfQorICAgICAgICBOU1VSTFJlc3BvbnNlICpyZXNw
b25zZSA9IFtbW05TVVJMUmVzcG9uc2UgYWxsb2NdIGluaXRXaXRoVVJMOnVybCBNSU1FVHlwZTpt
aW1lVHlwZSBleHBlY3RlZENvbnRlbnRMZW5ndGg6ZGF0YS5sZW5ndGggdGV4dEVuY29kaW5nTmFt
ZTpuaWxdIGF1dG9yZWxlYXNlXTsKKyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOnJl
c3BvbnNlXTsKKyAgICAgICAgW3Rhc2sgZGlkUmVjZWl2ZURhdGE6ZGF0YV07CisgICAgICAgIFt0
YXNrIGRpZEZpbmlzaF07CisgICAgfTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VS
TFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0Oi8vL3Rl
c3RfcHJpbnQucGRmIl1dXTsKKyAgICBhdXRvIHNpemUgPSBbZGVsZWdhdGUgd2FpdEZvclBhZ2VT
aXplXTsKKyAgICBFWFBFQ1RfRVEoc2l6ZS5oZWlnaHQsIDc5Mi4wKTsKKyAgICBFWFBFQ1RfRVEo
c2l6ZS53aWR0aCwgNjEyLjApOworCisgICAgX19ibG9jayBib29sIHJlY2VpdmVkU2l6ZSA9IGZh
bHNlOworICAgIFt3ZWJWaWV3IF9nZXRQREZGaXJzdFBhZ2VTaXplSW5GcmFtZTp3ZWJWaWV3Ll9t
YWluRnJhbWUgY29tcGxldGlvbkhhbmRsZXI6XihOU1NpemUgcmVxdWVzdGVkU2l6ZSkgeworICAg
ICAgICBFWFBFQ1RfRVEocmVxdWVzdGVkU2l6ZS5oZWlnaHQsIDc5Mi4wKTsKKyAgICAgICAgRVhQ
RUNUX0VRKHJlcXVlc3RlZFNpemUud2lkdGgsIDYxMi4wKTsKKyAgICAgICAgcmVjZWl2ZWRTaXpl
ID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVk
U2l6ZSk7CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RX
aXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDovLy9tYWluLmh0bWwiXV1dOworICAg
IFt3ZWJWaWV3IF90ZXN0X3dhaXRGb3JEaWRGaW5pc2hOYXZpZ2F0aW9uXTsKKyAgICBbd2ViVmll
dyBldmFsdWF0ZUphdmFTY3JpcHQ6QCJ3aW5kb3cucHJpbnQoKSIgY29tcGxldGlvbkhhbmRsZXI6
bmlsXTsKKyAgICBhdXRvIG1haW5GcmFtZVNpemUgPSBbZGVsZWdhdGUgd2FpdEZvclBhZ2VTaXpl
XTsKKyAgICBFWFBFQ1RfRVEobWFpbkZyYW1lU2l6ZS5oZWlnaHQsIDAuMCk7CisgICAgRVhQRUNU
X0VRKG1haW5GcmFtZVNpemUud2lkdGgsIDAuMCk7CisgICAgCisgICAgcmVjZWl2ZWRTaXplID0g
ZmFsc2U7CisgICAgW3dlYlZpZXcgX2dldFBERkZpcnN0UGFnZVNpemVJbkZyYW1lOndlYlZpZXcu
X21haW5GcmFtZSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TU2l6ZSByZXF1ZXN0ZWRTaXplKSB7Cisg
ICAgICAgIEVYUEVDVF9FUShyZXF1ZXN0ZWRTaXplLmhlaWdodCwgMC4wKTsKKyAgICAgICAgRVhQ
RUNUX0VRKHJlcXVlc3RlZFNpemUud2lkdGgsIDAuMCk7CisgICAgICAgIHJlY2VpdmVkU2l6ZSA9
IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNp
emUpOworCisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAicGRmZnJhbWUuY29udGVu
dFdpbmRvdy5wcmludCgpIiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIGF1dG8gcGRmRnJh
bWVTaXplID0gW2RlbGVnYXRlIHdhaXRGb3JQYWdlU2l6ZV07CisgICAgRVhQRUNUX05FQVIocGRm
RnJhbWVTaXplLmhlaWdodCwgMjguNzk5OTk5LCAuMDAwMDEpOworICAgIEVYUEVDVF9ORUFSKHBk
ZkZyYW1lU2l6ZS53aWR0aCwgMTI5LjYwMDAwNiwgLjAwMDAxKTsKKworICAgIHJlY2VpdmVkU2l6
ZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IF9nZXRQREZGaXJzdFBhZ2VTaXplSW5GcmFtZTpkZWxl
Z2F0ZS5sYXN0UHJpbnRlZEZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNTaXplIHJlcXVlc3Rl
ZFNpemUpIHsKKyAgICAgICAgRVhQRUNUX05FQVIocmVxdWVzdGVkU2l6ZS5oZWlnaHQsIDI4Ljc5
OTk5OSwgLjAwMDAxKTsKKyAgICAgICAgRVhQRUNUX05FQVIocmVxdWVzdGVkU2l6ZS53aWR0aCwg
MTI5LjYwMDAwNiwgLjAwMDAxKTsKKyAgICAgICAgcmVjZWl2ZWRTaXplID0gdHJ1ZTsKKyAgICB9
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkU2l6ZSk7Cit9CisKICNl
bmRpZgo=
</data>
<flag name="commit-queue"
          id="439317"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420699</attachid>
            <date>2021-02-17 13:09:36 -0800</date>
            <delta_ts>2021-02-17 13:23:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222064-20210217130935.patch</filename>
            <type>text/plain</type>
            <size>37899</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyOTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGViYjNkMzE1ODA5OTc2Yzhk
Y2JkNDZjYzBhNDAwOTM4M2Q1NjNjM2EuLmRmYjlkZWU5Y2Q3ZDJlZmE1NDM3NWEwMjJlMWQzZGE3
YjQ5NjllYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjEtMDItMTcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgU1BJIGZv
ciBnZXR0aW5nIHNpemUgb2YgUERGIGRvY3VtZW50IGR1cmluZyBwcmludGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMDY0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83NDM3MDg5MT4KKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJl
bi4KKworICAgICAgICBXaGVuIHByaW50aW5nIGEgUERGLCB3ZSB3YW50IHRvIGtub3cgaXRzIHBh
Z2Ugc2l6ZS4gIElmIHRoZSBwcmludCBpcyBpbml0aWF0ZWQgYnkgdGhlIHdlYiBwcm9jZXNzIChz
dWNoIGFzIHdoZW4gd2luZG93LnByaW50IGlzIGNhbGxlZAorICAgICAgICBvciBpZiB0aGUgUERG
IGNvbnRhaW5zIEphdmFTY3JpcHQgdGhhdCB0ZWxscyB0aGUgYnJvd3NlciB0byBwcmludCBpdCkg
dGhlbiB3ZSB3b3VsZCBsaWtlIHRoYXQgaW5mb3JtYXRpb24gd2l0aCB0aGUgcHJpbnQgcmVxdWVz
dCBzbyB3ZQorICAgICAgICBkb24ndCBoYXZlIHRvIGFzayB0aGUgd2ViIHByb2Nlc3MsIHdoaWNo
IGlzIGh1bmcgd2FpdGluZyBmb3IgYSBzeW5jaHJvbm91cyBtZXNzYWdlIHJlcGx5LiAgSWYgdGhl
IHByaW50IGlzIGluaXRpYXRlZCBieSB0aGUgVUkgcHJvY2VzcworICAgICAgICAoc3VjaCBhcyBp
ZiB0aGUgdXNlciBwcmludHMgZnJvbSBhIG1lbnUgb3Iga2V5Ym9hcmQgc2hvcnRjdXQpIHRoZW4g
d2UgbmVlZCBhIHdheSB0byBhc2sgd2hhdCB0aGUgc2l6ZSBvZiBhIFBERiBpcy4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVUlD
bGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OnByaW50RnJhbWUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xp
ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9nZXRQREZGaXJzdFBhZ2VTaXplSW5GcmFtZTpjb21wbGV0aW9uSGFuZGxl
cjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpz
ZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpwcmlu
dEZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpwcmludEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpnZXRQREZGaXJzdFBhZ2VTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAoV2ViS2l0
OjpQREZQbHVnaW46OnBkZkRvY3VtZW50U2l6ZUZvclByaW50aW5nIGNvbnN0KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2lu
OjpwZGZEb2N1bWVudFNpemVGb3JQcmludGluZyBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpw
cmludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0UERGRmlyc3RQYWdlU2l6ZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpnZXRQREZGaXJzdFBhZ2VTaXplKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluOgorCiAyMDIxLTAyLTE2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgQWRkIEFQSSB0byBkaXNhYmxlIEhUVFBTIHVwZ3JhZGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggMTYzNjdlNmNhYzgy
NWFhOWM3NGZiNGM0ODQzZGQyZjFmZjFkYWQzOC4uN2NlYmUyZmFiYWQ1YjMzNWViMzYyYTMyN2Vi
MzQ0YWU4MmRiZTY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
LmgKQEAgLTE0NSw3ICsxNDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBmbG9hdCBmb290ZXJI
ZWlnaHQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmKSB7IHJl
dHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIGRyYXdIZWFkZXIoV2ViS2l0OjpXZWJQYWdlUHJv
eHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3QmJikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRyYXdGb290ZXIoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6
OldlYkZyYW1lUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3QmJikgeyB9Ci0gICAgdmlydHVhbCB2
b2lkIHByaW50RnJhbWUoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJv
eHkmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29t
cGxldGlvbkhhbmRsZXIoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBwcmludEZyYW1lKFdlYktpdDo6
V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBwZGZGaXJzdFBhZ2VTaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoKTsgfQogCiAgICAgdmlydHVhbCBi
b29sIGNhblJ1bk1vZGFsKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZv
aWQgcnVuTW9kYWwoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDYyYTU0Yjc0NmMzYWIyZjFhYjMyY2VkNzE0NjRj
NGM0ZGRmMWU5ZDYuLjQ2YWU3OTYxMDZkYTI3YjJlYjFiY2Y1ZGIzZTdiZjJiOTQ4MTE3OWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMTk3MSw3ICsxOTcx
LDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0
IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgICAgIG1fY2xpZW50LmRyYXdG
b290ZXIodG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSShyZWN0KSwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgcHJpbnRGcmFtZShX
ZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgICAgIHZvaWQgcHJpbnRG
cmFtZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChtX2NsaWVudC5wcmludEZy
YW1lKQogICAgICAgICAgICAgICAgIG1fY2xpZW50LnByaW50RnJhbWUodG9BUEkoJnBhZ2UpLCB0
b0FQSSgmZnJhbWUpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5k
ZXggOTFiZWUzNGVkMGI2Mzk4MGI1NWExYWFiYWFhODhiOTI4MDQzM2M0NC4uNmI2MmU5MDg2N2M2
NjM3NjI4M2Q5N2ExNDE0YzM1N2RjNDYxMGExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xMDcsNyAr
MTA3LDcgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgZGVjaWRlV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhRm9yU2VjdXJpdHlPcmln
aW46KFdLU2VjdXJpdHlPcmlnaW4gKilzZWN1cml0eU9yaWdpbiBjdXJyZW50UXVvdGE6KHVuc2ln
bmVkIGxvbmcgbG9uZyljdXJyZW50UXVvdGEgdG90YWxCeXRlc05lZWRlZDoodW5zaWduZWQgbG9u
ZyBsb25nKXRvdGFsQnl0ZXNOZWVkZWQgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKSh1bnNpZ25l
ZCBsb25nIGxvbmcgbmV3UXVvdGEpKWRlY2lzaW9uSGFuZGxlcjsKIAogLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1l
OwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1lOihfV0tG
cmFtZUhhbmRsZSAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1lOihfV0tGcmFt
ZUhhbmRsZSAqKWZyYW1lIHBkZkZpcnN0UGFnZVNpemU6KE5TU2l6ZSlzaXplIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAtICh2b2lkKV93ZWJWaWV3
Q2xvc2U6KFdLV2ViVmlldyAqKXdlYlZpZXc7CiAtICh2b2lkKV93ZWJWaWV3RnVsbHNjcmVlbk1h
eVJldHVyblRvSW5saW5lOihXS1dlYlZpZXcgKil3ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNDk0NjE2ZTkyNjA0ZmRjNjkz
ZDQ1YTFiOWZmYmViOWExYWRmYmUzNC4uMjkxYjlmNTM0NGUyYmQyZjdmYTVmYzM0MmIwNjMwYTU0
OTgzOGYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCkBAIC0yMjM5LDYgKzIyMzksMTMgQEAgc3RhdGljIFJldGFpblB0cjxOU0FycmF5PiB3
a1RleHRNYW5pcHVsYXRpb25FcnJvcnMoTlNBcnJheTxfV0tUZXh0TWFuaXB1bGF0aW9uSXQKICAg
ICBbc2VsZiBjcmVhdGVQREZXaXRoQ29uZmlndXJhdGlvbjpwZGZDb25maWd1cmF0aW9uIGNvbXBs
ZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAorLSAodm9pZClfZ2V0UERGRmly
c3RQYWdlU2l6ZUluRnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWUgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQoXikoTlNTaXplKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIF9wYWdlLT5nZXRQ
REZGaXJzdFBhZ2VTaXplKGZyYW1lLT5fZnJhbWVIYW5kbGUtPmZyYW1lSUQoKSwgW2NvbXBsZXRp
b25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oV2ViQ29yZTo6Rmxv
YXRTaXplIHNpemUpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RhdGljX2Nhc3Q8TlNT
aXplPihzaXplKSk7CisgICAgfSk7Cit9CisKIC0gKE5TRGF0YSAqKV9zZXNzaW9uU3RhdGVEYXRh
CiB7CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCB1c2UgdGhlIGxlZ2FjeSBzZXNzaW9u
IHN0YXRlIGVuY29kZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCA5MjYyMzhhZWEwYTE0NzYxMThlNWE2OTA4NTQ3
YWQ3OWMzZjQ1NGQxLi4wODRiZjM0ZjAxMGM1MTRkYzMzMGIzMDZhYmE0YzE1YjZlNzc1NzlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmgKQEAgLTM1MCw2ICszNTAsNyBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIC0gKHZvaWQp
X2Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zOwogCiAtICh2b2lkKV90YWtlUERGU25hcHNob3RX
aXRoQ29uZmlndXJhdGlvbjooV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gKilzbmFwc2hvdENvbmZp
Z3VyYXRpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRGF0YSAqcGRmU25hcHNob3RE
YXRhLCBOU0Vycm9yICplcnJvcikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsKKy0gKHZvaWQpX2dldFBERkZpcnN0UGFnZVNpemVJ
bkZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4p
KE5TU2l6ZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfZ2V0UHJvY2Vzc0Rpc3BsYXlOYW1l
V2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqKSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggODU5NWYyMGU0MWM2ZmMz
MTNhNDNmYjgyY2QwOWJmOTJlNWFlNjk1Yi4uOTA5ZDkyMDA1ODBjZTU1MWUzNmM3MTk5N2NlYzcy
Y2EzODQ0NjU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aApAQCAtMTM3LDcgKzEzNyw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94
eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eSYpIGZpbmFsOwogICAgICAgICB2b2lkIGNoZWNrVXNlck1l
ZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJ
OjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eSYpIGZpbmFsOwogICAgICAgICB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlk
Q2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgZmluYWw7Ci0g
ICAgICAgIHZvaWQgcHJpbnRGcmFtZShXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKKyAgICAgICAgdm9pZCBwcmludEZyYW1l
KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IHBkZkZpcnN0UGFnZVNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpZiBIQVZFKEFQUF9MSU5LUykKICAgICAgICAgYm9v
bCBzaG91bGRJbmNsdWRlQXBwTGlua0FjdGlvbnNGb3JFbGVtZW50KF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvICopIGZpbmFsOwpAQCAtMjE3LDcgKzIxNyw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJv
b2wgd2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkRhdGFiYXNlTmFt
ZURpc3BsYXlOYW1lQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNl
VXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9vbCB3ZWJW
aWV3RGVjaWRlV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5DdXJyZW50
UXVvdGFUb3RhbEJ5dGVzTmVlZGVkIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3UHJpbnRGcmFt
ZSA6IDE7Ci0gICAgICAgIGJvb2wgd2ViVmlld1ByaW50RnJhbWVDb21wbGV0aW9uSGFuZGxlciA6
IDE7CisgICAgICAgIGJvb2wgd2ViVmlld1ByaW50RnJhbWVQREZGaXJzdFBhZ2VTaXplQ29tcGxl
dGlvbkhhbmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRDbG9zZSA6IDE7CiAgICAg
ICAgIGJvb2wgd2ViVmlld0Nsb3NlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
SURlbGVnYXRlLm1tCmluZGV4IDkxMTk1NjAzNjg2OWFkOWUzZTY4Yjg5YzFjMmVjMzk2YTJjYzI5
NzQuLjkxYzIwNzY1MjNmM2ZmYTc5NWM5NzM2ZmVlYjg1MGY4MTRjOTA5MmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTQ0LDcgKzE0NCw3IEBA
IHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdhdGUp
CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1
cml0eU9yaWdpbkRhdGFiYXNlTmFtZURpc3BsYXlOYW1lQ3VycmVudFF1b3RhQ3VycmVudE9yaWdp
blVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlRGF0
YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmRhdGFiYXNlTmFtZTpkaXNwbGF5TmFtZTpjdXJy
ZW50UXVvdGE6Y3VycmVudE9yaWdpblVzYWdlOmN1cnJlbnREYXRhYmFzZVVzYWdlOmV4cGVjdGVk
VXNhZ2U6ZGVjaXNpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdE
ZWNpZGVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkN1cnJlbnRRdW90
YVRvdGFsQnl0ZXNOZWVkZWQgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfd2ViVmlldzpkZWNpZGVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFGb3JTZWN1cml0eU9yaWdp
bjpjdXJyZW50UXVvdGE6dG90YWxCeXRlc05lZWRlZDpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAg
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1ByaW50RnJhbWUgPSBbZGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOildOwotICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdQcmludEZyYW1lQ29tcGxldGlvbkhhbmRsZXIgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOmNvbXBsZXRp
b25IYW5kbGVyOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdQcmludEZyYW1lUERG
Rmlyc3RQYWdlU2l6ZUNvbXBsZXRpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cHJpbnRGcmFtZTpwZGZGaXJzdFBhZ2VTaXplOmNvbXBs
ZXRpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDbG9zZSA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXdEaWRDbG9zZTop
XTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q2xvc2UgPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0Nsb3NlOildOwogICAgIG1fZGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUgPSBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lu
bGluZTopXTsKQEAgLTExOTMsNyArMTE5Myw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6
OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViUGFnZVByb3h5KiwgY29uCiAg
ICAgfSkuZ2V0KCldOwogfQogCi12b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpwcmludEZyYW1l
KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmIHdlYkZyYW1lUHJveHksIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlD
bGllbnQ6OnByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQ
cm94eSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBwZGZGaXJzdFBhZ2VTaXplLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX3Vp
RGVsZWdhdGUpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwpAQCAtMTIwMyw5
ICsxMjAzLDkgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cHJpbnRGcmFtZShXZWJQYWdl
UHJveHkmLCBXZWJGcmFtZVByb3h5JiB3ZWJGcmFtZVByb3gKICAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKCk7CiAKICAgICBhdXRvIGhhbmRsZSA9IEFQSTo6RnJhbWVIYW5kbGU6OmNy
ZWF0ZSh3ZWJGcmFtZVByb3h5LmZyYW1lSUQoKSk7Ci0gICAgaWYgKG1fdWlEZWxlZ2F0ZS0+bV9k
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1ByaW50RnJhbWVDb21wbGV0aW9uSGFuZGxlcikgewotICAg
ICAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUo
ZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOmNvbXBsZXRpb25I
YW5kbGVyOikpOwotICAgICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBf
d2ViVmlldzptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKSBwcmludEZyYW1lOndy
YXBwZXIoaGFuZGxlKSBjb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NoZWNrZXIgPSBX
VEZNb3ZlKGNoZWNrZXIpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSAoKSBtdXRhYmxlIHsKKyAgICBpZiAobV91aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3UHJpbnRGcmFtZVBERkZpcnN0UGFnZVNpemVDb21wbGV0aW9uSGFuZGxlcikg
eworICAgICAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpj
cmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOnBkZkZp
cnN0UGFnZVNpemU6Y29tcGxldGlvbkhhbmRsZXI6KSk7CisgICAgICAgIFsoaWQgPFdLVUlEZWxl
Z2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3Lmdl
dCgpLmdldCgpIHByaW50RnJhbWU6d3JhcHBlcihoYW5kbGUpIHBkZkZpcnN0UGFnZVNpemU6c3Rh
dGljX2Nhc3Q8TlNTaXplPihwZGZGaXJzdFBhZ2VTaXplKSBjb21wbGV0aW9uSGFuZGxlcjptYWtl
QmxvY2tQdHIoW2NoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlm
IChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRs
ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDk3NGZh
YTA4ODcwNjNmNWQxN2ZkMjhkMzliODU2N2YxMDVmZTEwNjIuLjUxZTljYjM0MTBlMTQ3YjdkNzc3
ZDZmNjk5YjE0MjM0MjUyNTMyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtNTg2OSw3ICs1ODY5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dDb250
YWN0UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmIHJlcXVlc3QKICAg
ICBwYWdlQ2xpZW50KCkuc2hvd0NvbnRhY3RQaWNrZXIocmVxdWVzdERhdGEsIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKIH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5OjpwcmludEZyYW1l
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6
cHJpbnRGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBwZGZGaXJzdFBhZ2VTaXplLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFtX2lzUGVy
Zm9ybWluZ0RPTVByaW50T3BlcmF0aW9uKTsKICAgICBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3Bl
cmF0aW9uID0gdHJ1ZTsKQEAgLTU4NzksNyArNTg3OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpw
cmludEZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBD
b21wCiAKICAgICBmcmFtZS0+ZGlkQ2hhbmdlVGl0bGUodGl0bGUpOwogCi0gICAgbV91aUNsaWVu
dC0+cHJpbnRGcmFtZSgqdGhpcywgKmZyYW1lLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSAoKSBtdXRhYmxlIHsKKyAgICBtX3VpQ2xpZW50LT5wcmludEZyYW1lKCp0aGlzLCAqZnJhbWUs
IHBkZkZpcnN0UGFnZVNpemUsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFi
bGUgewogICAgICAgICBlbmRQcmludGluZygpOyAvLyBTZW5kIGEgbWVzc2FnZSBzeW5jaHJvbm91
c2x5IHdoaWxlIG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24gaXMgc3RpbGwgdHJ1ZS4K
ICAgICAgICAgbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbiA9IGZhbHNlOwogICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcigpOwpAQCAtODQ0MSw2ICs4NDQxLDExIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkcmF3VG9QREYoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFs
PEZsb2F0UmVjdD4mCiB9CiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpnZXRQREZGaXJzdFBhZ2VTaXplKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkZsb2F0U2l6ZSk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdl
OjpHZXRQREZGaXJzdFBhZ2VTaXplKGZyYW1lSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVCYWNraW5nU3RvcmVEaXNjYXJkYWJs
ZVN0YXRlKCkKIHsKICAgICBBU1NFUlQoaGFzUnVubmluZ1Byb2Nlc3MoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDMxNGRhMzU0YTc0Y2IxOWVjYTQxN2M0NGU2
ODk0OGQ5MGRiYWI3MzguLjhhZDEzYjYzODc0ZTQ5NGRlZmY0NWE5ZTY4M2IxOTMyZTEwMmIzOGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjgzLDYgKzEyODMs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBiZWdpblByaW50aW5nKFdlYkZyYW1lUHJveHkqLCBjb25z
dCBQcmludEluZm8mKTsKICAgICB2b2lkIGVuZFByaW50aW5nKCk7CiAgICAgdWludDY0X3QgY29t
cHV0ZVBhZ2VzRm9yUHJpbnRpbmcoV2ViRnJhbWVQcm94eSosIGNvbnN0IFByaW50SW5mbyYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiwgZG91
YmxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpPiYmKTsKKyAgICB2b2lkIGdldFBE
RkZpcnN0UGFnZVNpemUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6OkZsb2F0U2l6ZSk+JiYpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IHVpbnQ2NF90IGRyYXdSZWN0VG9JbWFnZShXZWJGcmFtZVByb3h5KiwgY29uc3QgUHJpbnRJbmZv
JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUm
KT4mJik7CiAgICAgdWludDY0X3QgZHJhd1BhZ2VzVG9QREYoV2ViRnJhbWVQcm94eSosIGNvbnN0
IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChBUEk6OkRhdGEqKT4mJik7CkBAIC0xOTc4LDcgKzE5NzksNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWxXaXRoSW1hZ2VUcmFuc2NvZGlu
Zyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZVVSTHMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBh
bGxvd2VkTUlNRVR5cGVzKTsKICAgICB2b2lkIHNob3dTaGFyZVNoZWV0KGNvbnN0IFdlYkNvcmU6
OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKICAgICB2b2lkIHNob3dDb250YWN0UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVx
dWVzdERhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxXZWJDb3Jl
OjpDb250YWN0SW5mbz4+JiYpPiYmKTsKLSAgICB2b2lkIHByaW50RnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OworICAgIHZvaWQgcHJpbnRGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsICBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRh
dGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1
b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFz
ZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpF
eGNlZWRlZERhdGFiYXNlUXVvdGFEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCByZWFjaGVkQXBw
bGljYXRpb25DYWNoZU9yaWdpblF1b3RhKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwg
dWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhRGVsYXll
ZFJlcGx5JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KaW5kZXggMDViZjIxYmZmYjdkN2NlOWQwYjEwNDIwMjc5ZTc5ZThlMTgwZTVk
NC4uYzE0MGMzOGRmOWI0OWJiYzY4MmJkY2NhZDRiMTM5ODkyYjhhNTQ5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNzAsNyAr
NzAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFJ1bk9wZW5QYW5lbChXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0
YSBmcmFtZUluZm8sIHN0cnVjdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzIHBhcmFtZXRl
cnMpCiAgICAgU2hvd1NoYXJlU2hlZXQoc3RydWN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJz
ZWRVUkwgc2hhcmVEYXRhKSAtPiAoYm9vbCBncmFudGVkKSBBc3luYwogICAgIFNob3dDb250YWN0
UGlja2VyKHN0cnVjdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhIHJlcXVlc3REYXRhKSAt
PiAoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4gaW5mbykgQXN5bmMKLSAg
ICBQcmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgdGl0
bGUpIC0+ICgpIFN5bmNocm9ub3VzCisgICAgUHJpbnRGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHRpdGxlLCBXZWJDb3JlOjpGbG9hdFNpemUgcGRmRmlyc3RQ
YWdlU2l6ZSkgLT4gKCkgU3luY2hyb25vdXMKICAgICBSdW5Nb2RhbCgpCiAgICAgTm90aWZ5U2Ny
b2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChXZWJDb3JlOjpJbnRSZWN0IHNjcm9sbGVyVGh1bWIp
CiAgICAgUmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5o
CmluZGV4IGJhN2ExODc2YjFmYjA2MzkyNWE0MGJhN2VkMGIzYWQ2OTVhZjRmM2MuLmYwN2I3OGVl
ZTg4ZGI0MDFlYzA3OTI3Mjc5NGZhNTZhZWYyYzU1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKQEAgLTIxMyw2ICsyMTMsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgcGx1Z2luSGFuZGxlc0NvbnRlbnRPZmZzZXRGb3JBY2Nlc3NpYmls
aXR5SGl0VGVzdCgpIGNvbnN0IGZpbmFsOwogICAgIAogICAgIFJldGFpblB0cjxQREZEb2N1bWVu
dD4gcGRmRG9jdW1lbnRGb3JQcmludGluZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcGRmRG9j
dW1lbnQ7IH0KKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgcGRmRG9jdW1lbnRTaXplRm9yUHJpbnRp
bmcoKSBjb25zdCBmaW5hbDsKICAgICBOU09iamVjdCAqYWNjZXNzaWJpbGl0eU9iamVjdCgpIGNv
bnN0IGZpbmFsOwogICAgIGlkIGFjY2Vzc2liaWxpdHlBc3NvY2lhdGVkUGx1Z2luUGFyZW50Rm9y
RWxlbWVudChXZWJDb3JlOjpFbGVtZW50KikgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IDJhZDQ1YzUx
YzIxNGEzOWM0ZmZiNzdjNmM5YjhiYjM0MmZjNmFiZjQuLjI0ODAwZjZjNTkzNTRlYTVmNWFiNTg0
ZDk2YjgxNmE3NGRlNmNjMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtMTU1MCw2ICsxNTUwLDExIEBAIEpTVmFsdWVSZWYg
UERGUGx1Z2luOjpqc1BERkRvY1ByaW50KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIGZ1
bmN0aW9uLCBKU09iCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGN0eCk7CiB9CiAK
K0Zsb2F0U2l6ZSBQREZQbHVnaW46OnBkZkRvY3VtZW50U2l6ZUZvclByaW50aW5nKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gRmxvYXRTaXplKFtbbV9wZGZEb2N1bWVudCBwYWdlQXRJbmRleDowXSBi
b3VuZHNGb3JCb3g6a1BERkRpc3BsYXlCb3hDcm9wQm94XS5zaXplKTsKK30KKwogSlNPYmplY3RS
ZWYgUERGUGx1Z2luOjptYWtlSlNQREZEb2MoSlNDb250ZXh0UmVmIGN0eCkKIHsKICAgICBzdGF0
aWMgSlNTdGF0aWNGdW5jdGlvbiBqc1BERkRvY1N0YXRpY0Z1bmN0aW9uc1tdID0gewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAKaW5kZXggYjc2ZDM0NDhmMjBh
Y2JkOTk4MzcwZDRiOWY0ODNkZmQ3MTc0MDY4Yy4uNGJhNjVjMGZmODhlZDE5NWYyNzdmNDc5NTdl
MjgzMDQ2ZGFjZjM5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW4uY3BwCkBAIC0xMjcsNCArMTI3LDkgQEAgY29uc3QgUGx1Z2luQ29udHJvbGxlciogUGx1Z2lu
Ojpjb250cm9sbGVyKCkgY29uc3QKICAgICByZXR1cm4gbV9wbHVnaW5Db250cm9sbGVyLmdldCgp
OwogfQogCitXZWJDb3JlOjpGbG9hdFNpemUgUGx1Z2luOjpwZGZEb2N1bWVudFNpemVGb3JQcmlu
dGluZygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHsgfTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4u
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCmluZGV4IGRjNTU3
OWZkMzE5NTI0OGNkZWU5YjAxNTZhZjc4MDk3ZjhlYWFmNzAuLmQzYzdhYzcwNTExZmM3MmM4NzA4
NGI4YTM3NGY5ZDZjNzI2ODU5YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpbi5oCkBAIC01NSw2ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFm
ZmluZVRyYW5zZm9ybTsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBGbG9hdFBvaW50OworY2xhc3Mg
RmxvYXRTaXplOwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgSW50UG9pbnQ7CiBjbGFz
cyBJbnRSZWN0OwpAQCAtMjc1LDYgKzI3Niw3IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKENP
Q09BKQogICAgIHZpcnR1YWwgUmV0YWluUHRyPFBERkRvY3VtZW50PiBwZGZEb2N1bWVudEZvclBy
aW50aW5nKCkgY29uc3QgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRT
aXplIHBkZkRvY3VtZW50U2l6ZUZvclByaW50aW5nKCkgY29uc3Q7CiAgICAgdmlydHVhbCBOU09i
amVjdCAqYWNjZXNzaWJpbGl0eU9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0
dWFsIGlkIGFjY2Vzc2liaWxpdHlBc3NvY2lhdGVkUGx1Z2luUGFyZW50Rm9yRWxlbWVudChXZWJD
b3JlOjpFbGVtZW50KikgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCmluZGV4IGMwOWEyN2I3ZTdmNTNmYjQ0MjQ0NDcxYTZkNmI3NGZjZTA1ZDQz
YTAuLjMyMDk3YzMwYjQ2NmFlNzRkNzg1M2QwZTg3ZDAxYzEyMDM2Mjc4ZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIlBhZ2VCYW5uZXIuaCIKKyNpbmNsdWRlICJQbHVnaW5WaWV3Lmgi
CiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiU2hh
cmVkQnVmZmVyQ29weS5oIgogI2luY2x1ZGUgIlVzZXJEYXRhLmgiCkBAIC03MzUsOCArNzM2LDE0
IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmlu
Z1dpdGhEaXJlY3Rpb24mIHRpdGxlKQogICAgIH0KICNlbmRpZgogCisgICAgV2ViQ29yZTo6Rmxv
YXRTaXplIHBkZkZpcnN0UGFnZVNpemU7CisgICAgaWYgKGF1dG8qIHBsdWdpblZpZXcgPSBXZWJQ
YWdlOjpwbHVnaW5WaWV3Rm9yRnJhbWUoJmZyYW1lKSkgeworICAgICAgICBpZiAoYXV0byogcGx1
Z2luID0gcGx1Z2luVmlldy0+cGx1Z2luKCkpCisgICAgICAgICAgICBwZGZGaXJzdFBhZ2VTaXpl
ID0gcGx1Z2luLT5wZGZEb2N1bWVudFNpemVGb3JQcmludGluZygpOworICAgIH0KKwogICAgIGF1
dG8gdHJ1bmNhdGVkVGl0bGUgPSB0cnVuY2F0ZUZyb21FbmQodGl0bGUsIG1heFRpdGxlTGVuZ3Ro
KTsKLSAgICBtX3BhZ2Uuc2VuZFN5bmNXaXRoRGVsYXllZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OlByaW50RnJhbWUod2ViRnJhbWUtPmZyYW1lSUQoKSwgdHJ1bmNhdGVkVGl0bGUuc3Ry
aW5nKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UHJpbnRGcmFtZTo6UmVwbHkoKSk7CisgICAg
bV9wYWdlLnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQ
cmludEZyYW1lKHdlYkZyYW1lLT5mcmFtZUlEKCksIHRydW5jYXRlZFRpdGxlLnN0cmluZywgcGRm
Rmlyc3RQYWdlU2l6ZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlByaW50RnJhbWU6OlJlcGx5
KCkpOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZy
YW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscyBk
ZXRhaWxzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29j
b2EvV2ViUGFnZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29j
b2EvV2ViUGFnZUNvY29hLm1tCmluZGV4IGY1N2Q4NDlhNjIwMTE0NGM1NzM3N2VjYzM3MTE2YTIx
OGRmMTNhOGUuLmNmYjU1YWEyZGIwOGQ1Y2QyN2JiMWE0NWFlYmY5YTcwMzk3YzljN2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdl
Q29jb2EubW0KQEAgLTQxNiw2ICs0MTYsMjcgQEAgdm9pZCBXZWJQYWdlOjpjb25zdW1lTmV0d29y
a0V4dGVuc2lvblNhbmRib3hFeHRlbnNpb25zKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkgKICNl
bmRpZgogfQogCit2b2lkIFdlYlBhZ2U6OmdldFBERkZpcnN0UGFnZVNpemUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6Rmxv
YXRTaXplKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvKiB3ZWJGcmFtZSA9IFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOworICAgIGlmICghd2ViRnJh
bWUpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworCisgICAgYXV0byog
Y29yZUZyYW1lID0gd2ViRnJhbWUtPmNvcmVGcmFtZSgpOworICAgIGlmICghY29yZUZyYW1lKQor
ICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKworICAgIGF1dG8qIHBsdWdp
blZpZXcgPSBwbHVnaW5WaWV3Rm9yRnJhbWUoY29yZUZyYW1lKTsKKyAgICBpZiAoIXBsdWdpblZp
ZXcpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgIAorICAgIGF1
dG8qIHBsdWdpbiA9IHBsdWdpblZpZXctPnBsdWdpbigpOworICAgIGlmICghcGx1Z2luKQorICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKworICAgIGNvbXBsZXRpb25IYW5k
bGVyKEZsb2F0U2l6ZShwbHVnaW4tPnBkZkRvY3VtZW50U2l6ZUZvclByaW50aW5nKCkpKTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYjc5NDcx
OGJjMDlhZjkzZmM0MWQ2YzRiZWUyODMwNDkyOGQyMTYzZS4uM2UzODEzMjE1YzUwMDhjYjA4ZTcy
M2E5YjM1OTA3ZTc1NmFkZDg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKQEAgLTcwODksNiArNzA4OSwxMSBAQCB2b2lkIFdlYlBhZ2U6OmNvbmZp
Z3VyZUxvZ2dpbmdDaGFubmVsKGNvbnN0IFN0cmluZyYgY2hhbm5lbE5hbWUsIFdURkxvZ0NoYW5u
ZWxTdAogfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQordm9pZCBXZWJQYWdlOjpnZXRQREZGaXJz
dFBhZ2VTaXplKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpGbG9hdFNpemUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbXBs
ZXRpb25IYW5kbGVyKHsgfSk7Cit9CisKIHZvaWQgV2ViUGFnZTo6Z2V0UHJvY2Vzc0Rpc3BsYXlO
YW1lKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggOTQ2MmViNDRiYmFiMjEyOWJlYTY3YTU1ZGQ3ODdk
NTQ1ZWM4MGYyOC4uN2Q1NDFkZGY3MDRhNjcwNGIxOWZhZDI5M2UxNjVmMDQ3NjliYzA5MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTUwNyw2ICsx
NTA3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGxvYWREYXRhKExvYWRQYXJhbWV0ZXJzJiYpOwog
ICAgIHZvaWQgbG9hZEFsdGVybmF0ZUhUTUwoTG9hZFBhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBu
YXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayhjb25zdCBTdHJpbmcmIHVybCwgV2Vi
Q29yZTo6SW50UG9pbnQgZG9jdW1lbnRQb2ludCwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuUG9p
bnQpOworICAgIHZvaWQgZ2V0UERGRmlyc3RQYWdlU2l6ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RmxvYXRTaXplKT4mJik7CiAgICAg
dm9pZCByZWxvYWQodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCByZWxvYWRPcHRpb25z
LCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJik7CiAgICAgdm9pZCBnb1RvQmFja0ZvcndhcmRJ
dGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVt
SWRlbnRpZmllciYsIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUsIFdlYkNvcmU6OlNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJik7CiAgICAg
dm9pZCB0cnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDM0YjEyYzQ2NDQ0
ZmYxNTVhNWUxNDMyMTk5YWQ4YTE3ODk5MTU4MmIuLjUyODYwMWM2MTAxMmZhZmVlZTg2MTlhNTMx
ODc4ZjFlMTQ5ZGM4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTgyLDYgKzE4Miw3IEBAIEdlbmVyYXRlU3lu
dGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGlu
Z0NvbW1hbmRUeXBlCiAgICAgTG9hZEFsdGVybmF0ZUhUTUwoc3RydWN0IFdlYktpdDo6TG9hZFBh
cmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMpCiAKICAgICBOYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11
bGF0ZWRDbGljayhTdHJpbmcgdXJsLCBXZWJDb3JlOjpJbnRQb2ludCBkb2N1bWVudFBvaW50LCBX
ZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Qb2ludCkKKyAgICBHZXRQREZGaXJzdFBhZ2VTaXplKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSAtPiAoV2ViQ29yZTo6RmxvYXRTaXplIHNp
emUpIEFzeW5jCiAKICAgICBSZWxvYWQodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCBy
ZWxvYWRPcHRpb25zLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0
ZW5zaW9uSGFuZGxlKQogICAgIFN0b3BMb2FkaW5nKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNzhiNTIxMjg0NDFmN2VjM2VjNzE1ZDJjODVh
OGVmMmQ1NjdmZDFmLi5hZTg4MDE5ODI5MGMwZWZhOTlmNGYwZDA3ZmFmMDYyYTE4MGFmMGExIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTkgQEAKKzIwMjEtMDItMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KKworICAgICAgICBBZGQgU1BJIGZvciBnZXR0aW5nIHNpemUgb2YgUERGIGRvY3Vt
ZW50IGR1cmluZyBwcmludGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIyMDY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDM3MDg5MT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbi4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L3Rlc3RfcHJpbnQucGRmOiBBZGRlZC4KKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbToKKyAgICAgICAg
KC1bUHJpbnRVSURlbGVnYXRlIF93ZWJWaWV3OnByaW50RnJhbWU6cGRmRmlyc3RQYWdlU2l6ZTpj
b21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bUHJpbnRVSURlbGVnYXRlIHdhaXRGb3JQ
YWdlU2l6ZV0pOgorICAgICAgICAoLVtQcmludFVJRGVsZWdhdGUgbGFzdFByaW50ZWRGcmFtZV0p
OgorICAgICAgICAoVEVTVCk6CisKIDIwMjEtMDItMTYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hy
aXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgQVBJIHRvIGRpc2FibGUgSFRUUFMg
dXBncmFkZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZDJmOWU2Mjc2OTA2ZTVmNTQwYWY0
OTEyODg1NjM2MzI2NWI1YzllLi44YzQ1N2Y5MWJjNWU1YTMyMzFmNjUzYzNjZTllNTJhZjJhYTgx
MjY1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDYxLDYgKzQ2MSw3IEBACiAJCTVDNEE4
NDk1MUY3RUVGRkMwMEFDRkM1NCAvKiBDb25maWd1cmF0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0QTg0OTQxRjdFRUZENDAwQUNGQzU0IC8q
IENvbmZpZ3VyYXRpb24ubW0gKi87IH07CiAJCTVDNjlCREQ1MUY4MkE3RUYwMDBGNEY0QiAvKiBK
YXZhU2NyaXB0RHVyaW5nTmF2aWdhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVDNjlCREQ0MUY4MkE3RUIwMDBGNEY0QiAvKiBKYXZhU2NyaXB0
RHVyaW5nTmF2aWdhdGlvbi5tbSAqLzsgfTsKIAkJNUM2RTI3QTcyMjRFRUJFQTAwMTI4NzM2IC8q
IFVSTENhbm9uaWNhbGl6YXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1QzZFMjdBNjIyNEVFQkVBMDAxMjg3MzYgLyogVVJMQ2Fub25pY2FsaXph
dGlvbi5tbSAqLzsgfTsKKwkJNUM3MTAxQzcyNUREOThCNjAwNjg2MjAwIC8qIHRlc3RfcHJpbnQu
cGRmIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDNzEwMUM2MjVERDk4ODcwMDY4NjIwMCAvKiB0ZXN0X3ByaW50LnBkZiAqLzsgfTsKIAkJNUM3
MTQ4OTUyMTIzQTQwQTAwRkRFM0M1IC8qIFdLV2Vic2l0ZURhdGFzdG9yZS5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNzE0ODk0MjEyM0E0MDcwMEZE
RTNDNSAvKiBXS1dlYnNpdGVEYXRhc3RvcmUubW0gKi87IH07CiAJCTVDNzU3MTYxMjIxMjRDNTIw
MEI5RTVBQyAvKiBCdW5kbGVSZXRhaW5QYWdlUGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3NTcxNUYyMjEyNDlCRDAwQjlFNUFDIC8qIEJ1
bmRsZVJldGFpblBhZ2VQbHVnSW4ubW0gKi87IH07CiAJCTVDNzk2NDEwMUVCMDI3OEQwMDc1RDc0
QyAvKiBFdmVudE1vZGlmaWVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1Qzc5NjQwRjFFQjAyNjlCMDA3NUQ3NEMgLyogRXZlbnRNb2RpZmllcnMu
Y3BwICovOyB9OwpAQCAtMTY0OSw2ICsxNjUwLDcgQEAKIAkJCQlDOTU5ODRGNzFFMzZCQ0VGMDAy
QzBENDUgLyogdGVzdC13aXRob3V0LWF1ZGlvLXRyYWNrLm1wNCBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQk1MjRCQkNBMTE5RTMwQzc3MDAyRjFBRjEgLyogdGVzdC5tcDQgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJN0FFOUU1MDkxQUU1QUU4QjAwQ0Y4NzRCIC8qIHRlc3QucGRmIGluIENv
cHkgUmVzb3VyY2VzICovLAorCQkJCTVDNzEwMUM3MjVERDk4QjYwMDY4NjIwMCAvKiB0ZXN0X3By
aW50LnBkZiBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyRTk4OTYxNTFEOEYwOTM4MDA3Mzk4
OTIgLyogdGV4dC1hbmQtcGFzc3dvcmQtaW5wdXRzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJRjRDRDc0QzYyMEZEQUNGQTAwREUzNzk0IC8qIHRleHQtd2l0aC1hc3luYy1zY3JpcHQu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDRDN0EwNTIwRkFBRTNDMDAxNDQ3OEMg
LyogdGV4dC13aXRoLWRlZmVycmVkLXNjcmlwdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApA
QCAtMjI0Nyw2ICsyMjQ5LDcgQEAKIAkJNUM2ODM0NzEyMzVBQ0M3QzAwNDFFNkIxIC8qIFNlcnZp
Y2VXb3JrZXJUQ1BTZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2Vy
dmljZVdvcmtlclRDUFNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzY5
QkRENDFGODJBN0VCMDAwRjRGNEIgLyogSmF2YVNjcmlwdER1cmluZ05hdmlnYXRpb24ubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBKYXZhU2NyaXB0RHVyaW5nTmF2
aWdhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM2RTI3QTYyMjRFRUJF
QTAwMTI4NzM2IC8qIFVSTENhbm9uaWNhbGl6YXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IHBhdGggPSBVUkxDYW5vbmljYWxpemF0aW9uLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk1QzcxMDFDNjI1REQ5ODg3MDA2ODYyMDAgLyogdGVzdF9wcmludC5w
ZGYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFn
ZS5wZGY7IHBhdGggPSB0ZXN0X3ByaW50LnBkZjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNUM3MTQ4OTQyMTIzQTQwNzAwRkRFM0M1IC8qIFdLV2Vic2l0ZURhdGFzdG9yZS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2Vic2l0ZURhdGFzdG9yZS5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3MkU4Q0QyNDRGRkNFMzAwMzgxRUI3
IC8qIFRlc3RMZWdhY3lEb3dubG9hZERlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbmFtZSA9IFRlc3RMZWdhY3lEb3dubG9hZERlbGVnYXRlLmg7IHBhdGggPSBjb2NvYS9UZXN0
TGVnYWN5RG93bmxvYWREZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
QzcyRThDRTI0NEZGQ0U0MDAzODFFQjcgLyogVGVzdExlZ2FjeURvd25sb2FkRGVsZWdhdGUubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBUZXN0TGVnYWN5RG93bmxv
YWREZWxlZ2F0ZS5tbTsgcGF0aCA9IGNvY29hL1Rlc3RMZWdhY3lEb3dubG9hZERlbGVnYXRlLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDIyOCw2ICs0MjMxLDcgQEAKIAkJCQk3
NjczNDk5NzE5MzAxNkRDMDBFNDRERjkgLyogU3RvcExvYWRpbmdEdXJpbmdEaWRGYWlsUHJvdmlz
aW9uYWxMb2FkLmNwcCAqLywKIAkJCQk3NjczNDk5QTE5MzAxODJFMDBFNDRERjkgLyogU3RvcExv
YWRpbmdEdXJpbmdEaWRGYWlsUHJvdmlzaW9uYWxMb2FkX2J1bmRsZS5jcHAgKi8sCiAJCQkJMUFF
NzJGNDcxNzNFQjIxNDAwNjM2MkYwIC8qIFRlcm1pbmF0ZVR3aWNlLmNwcCAqLywKKwkJCQk1Qzcx
MDFDNjI1REQ5ODg3MDA2ODYyMDAgLyogdGVzdF9wcmludC5wZGYgKi8sCiAJCQkJQ0UzNTI0RjEx
QjE0MkI4RDAwMjhBN0M1IC8qIFRleHRGaWVsZERpZEJlZ2luQW5kRW5kRWRpdGluZy5jcHAgKi8s
CiAJCQkJQ0UzNTI0RjIxQjE0MkI4RDAwMjhBN0M1IC8qIFRleHRGaWVsZERpZEJlZ2luQW5kRW5k
RWRpdGluZ19CdW5kbGUuY3BwICovLAogCQkJCTRBNDEwRjRCMTlBRjdCRDYwMDJFQkFCNSAvKiBV
c2VyTWVkaWEuY3BwICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvdGVzdF9wcmludC5wZGYgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC90
ZXN0X3ByaW50LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzJlZjkwMGNjYzRmMDhjZDBjNjExZWNmMWFlYTA1
ZGJmY2Y2OGNjCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyMzc3CnpjbWJWT1pFdz5zNWF0aX5L
bHNaODJyPDdUYWF2VU0hJihMZCM9M1NBTkVJS2wpRVBsLXlkfn41YDE1ZFFDdV5FPwp6MiQzIT96
UHNuJWUwU2NfWTxsYHk5MCVtK0godC0rQjckO2l1NzhseGhfRzJ7UkArcFViajFKcjhXVDF0Ynoq
WjwKek9jU2Y9aXxISDVyUWt4dUpQZGluVXZkN05eT3VDM283TFlYIyQlJDM2KkA7YCVnZHt1eDA8
cF5WdzFKRzBqSEIyCnpVQ3teeD03ZkR0SG4wZlhxNko0bjZRcVliTEJjKkhfc0pxSF5JSj1XPll+
Q1AzVCtXSypPbDNwREh5N2dtTSpsVgp6Tzl0N2M+YEZnYSVGWj8qY35aWThfNTE3X1ZQN3c8ZjlU
WFk8ZTh3dGB3Z3piQURmdU0+Y1VvWklZZUttZSt1LVkKelMrcDZrcVlLXyozbH07U242Q3lSYUVz
XkVPYUlHclBvcDxEX15TJCtJU0I0dHVreiU/SmtUWmpxPVk9P0cjKk9lCnolI3NvVXQ5UGxqRiZP
Xi0jPD1hb1JCUzxCNWNWLSZLfFdqeHpHMEdAaWE/dFVAez14Wj8wM3FNVXM8VFc0TURtMwp6dnE1
MCE5Zlc4aEUpUEkzPkBHeHdFemxpZFErPVBPZGo5VCZyV0Z3b2FkVEhgS3slfU85XndPMTBuYnZD
ajZAUFkKejR7Xkw/RmFVTktwaW1TeEFqZCs/S31IYXd2fVh5OWN4VVBJUCUzYSF5SyhKQil6NitR
aVZofWRWSl53dGZkc25SCno+IThCODEtbTFGbFk7PTwjbUhRQUI4SVExVVpvcXRwaSFvVlQqQns9
aVN9JSREPE0jT0NTY315KXZyOyVUZ2t5TAp6IShpZiYtdUJTPVhUNSRHe1BzU2Z3Pj8lR3k+aWRy
TT11K3trPklRNjM3ITJ1c3N7fldpfHdeXzZWdUhrIXJ0cnIKejx+eXtPPGpgR1RAKWIxQmZPRW81
YSRDKUdJV2UxQ1EoJl9LZHQlbjZULSt1cDN8d0Y1QDU8eVNWVUc+UlBWPT5lCnoxN3BjZipEJnA7
SXlFWnx7cThAWT5vP0g2ZW9EZUBOVWJTaDxrZm1Cd0Q1JTA/V1UtbFRqUjBvYGR1c1V6T2J4Xwp6
bzd6bypgUlR0TGdATVl7Tj1ZP1RUMTYzQEpFNGxRZlZYflBPb2Z8O2RxYyZNOGZePk9JdihKdFNr
T19YdnlBZ04KejxYbDB7KURYU3smWlVNbzlHSjI2Rz0qIUJrc3lPX3F7azhQO0ZkIS0+WUpKTFEw
azFwJFFZMl9mbEk7VkFmZyQ0CnpxKURoPXlsQy1BNjlYODQ5aHdaR3VSQW1keGtwbkclKGFlT2pF
VV5oUkcmNyQ2eiQ2aTlgdE8kMEQ+fl8kY2RuNQp6U0lENVJGT1gycTljK2p2VGJETk1WdWNLUXhk
UGctVyFJS1R6U2dEdGVganV0clM3UE5IcHpjISt5ezE2V1FNdlUKVilBd1hqVERNQz1Ean4/eChj
Nm50QCZ9cXtPaF5DIwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQppbmRleCA3MGZjZDdhZWIw
ODEyNTdlNDZhYWI5MmFkMThmZTIxOTYzZmFhMGFmLi43MzFkMWVjYzVhNTJiYTg1ZTU4YmY1YmU2
YjQyZTIxZWExYjkyMjdkIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLUERGVmlldy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1dLUERGVmlldy5tbQpAQCAtNDMsNyArNDMsNyBAQAogI2ltcG9ydCA8Q2FyYm9u
L0NhcmJvbi5oPgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpIHx8IEVOQUJMRShVSV9QUk9D
RVNTX1BERl9IVUQpCisjaWYgUExBVEZPUk0oSU9TKSB8fCBFTkFCTEUoVUlfUFJPQ0VTU19QREZf
SFVEKSB8fCBQTEFURk9STShNQUMpCiBzdGF0aWMgTlNEYXRhICpwZGZEYXRhKCkKIHsKICAgICBy
ZXR1cm4gW05TRGF0YSBkYXRhV2l0aENvbnRlbnRzT2ZVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAInRlc3QiIHdpdGhFeHRlbnNpb246QCJwZGYiIHN1YmRpcmVjdG9y
eTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwpAQCAtMzcyLDQgKzM3MiwxMTcgQEAgVEVT
VChQREZIVUQsIExvYWRQREZUeXBlV2l0aFBsdWdpbnNCbG9ja2VkKQogICAgIGNoZWNrRnJhbWUo
d2ViVmlldy5fcGRmSFVEcy5hbnlPYmplY3QuZnJhbWUsIDAsIDAsIDgwMCwgNjAwKTsKIH0KIAor
I2VuZGlmIC8vIEVOQUJMRShVSV9QUk9DRVNTX1BERl9IVUQpCisKKyNpZiBQTEFURk9STShNQUMp
CisKK0BpbnRlcmZhY2UgUHJpbnRVSURlbGVnYXRlIDogTlNPYmplY3QgPFdLVUlEZWxlZ2F0ZT4K
KworLSAoTlNTaXplKXdhaXRGb3JQYWdlU2l6ZTsKKy0gKF9XS0ZyYW1lSGFuZGxlICopbGFzdFBy
aW50ZWRGcmFtZTsKKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gUHJpbnRVSURlbGVnYXRlIHsK
KyAgICBOU1NpemUgX3BhZ2VTaXplOworICAgIGJvb2wgX3JlY2VpdmVkU2l6ZTsKKyAgICBSZXRh
aW5QdHI8X1dLRnJhbWVIYW5kbGU+IF9sYXN0UHJpbnRlZEZyYW1lOworfQorCistICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByaW50RnJhbWU6KF9XS0ZyYW1lSGFuZGxlICop
ZnJhbWUgcGRmRmlyc3RQYWdlU2l6ZTooTlNTaXplKXNpemUgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgX3BhZ2VTaXplID0gc2l6ZTsK
KyAgICBfcmVjZWl2ZWRTaXplID0gdHJ1ZTsKKyAgICBfbGFzdFByaW50ZWRGcmFtZSA9IGZyYW1l
OworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKKy0gKE5TU2l6ZSl3YWl0Rm9yUGFnZVNp
emUKK3sKKyAgICBfcmVjZWl2ZWRTaXplID0gZmFsc2U7CisgICAgd2hpbGUgKCFfcmVjZWl2ZWRT
aXplKQorICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzcGluUnVuTG9vcCgpOworICAgIHJl
dHVybiBfcGFnZVNpemU7Cit9CisKKy0gKF9XS0ZyYW1lSGFuZGxlICopbGFzdFByaW50ZWRGcmFt
ZQoreworICAgIHJldHVybiBfbGFzdFByaW50ZWRGcmFtZS5nZXQoKTsKK30KKworQGVuZAorCitU
RVNUKFBERiwgUHJpbnRTaXplKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IFtbV0tXZWJW
aWV3Q29uZmlndXJhdGlvbiBuZXddIGF1dG9yZWxlYXNlXTsKKyAgICBhdXRvIHNjaGVtZUhhbmRs
ZXIgPSBbW1Rlc3RVUkxTY2hlbWVIYW5kbGVyIG5ld10gYXV0b3JlbGVhc2VdOworICAgIFtjb25m
aWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6c2NoZW1lSGFuZGxlciBmb3JVUkxTY2hlbWU6
QCJ0ZXN0Il07CisgICAgYXV0byB3ZWJWaWV3ID0gW1tbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5p
dFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZp
Z3VyYXRpb25dIGF1dG9yZWxlYXNlXTsKKyAgICBhdXRvIGRlbGVnYXRlID0gW1tQcmludFVJRGVs
ZWdhdGUgbmV3XSBhdXRvcmVsZWFzZV07CisgICAgd2ViVmlldy5VSURlbGVnYXRlID0gZGVsZWdh
dGU7CisKKyAgICBzY2hlbWVIYW5kbGVyLnN0YXJ0VVJMU2NoZW1lVGFza0hhbmRsZXIgPSBeKFdL
V2ViVmlldyAqLCBpZDxXS1VSTFNjaGVtZVRhc2s+IHRhc2spIHsKKyAgICAgICAgYXV0byB1cmwg
PSB0YXNrLnJlcXVlc3QuVVJMOworICAgICAgICBOU0RhdGEgKmRhdGE7CisgICAgICAgIE5TU3Ry
aW5nICptaW1lVHlwZTsKKyAgICAgICAgaWYgKFt1cmwucGF0aCBpc0VxdWFsVG9TdHJpbmc6QCIv
bWFpbi5odG1sIl0pIHsKKyAgICAgICAgICAgIG1pbWVUeXBlID0gQCJ0ZXh0L2h0bWwiOworICAg
ICAgICAgICAgY29uc3QgY2hhciogaHRtbCA9ICI8YnIvPjxpZnJhbWUgc3JjPSd0ZXN0LnBkZicg
aWQ9J3BkZmZyYW1lJz48L2lmcmFtZT4iOworICAgICAgICAgICAgZGF0YSA9IFtOU0RhdGEgZGF0
YVdpdGhCeXRlczpodG1sIGxlbmd0aDpzdHJsZW4oaHRtbCldOworICAgICAgICB9IGVsc2UgaWYg
KFt1cmwucGF0aCBpc0VxdWFsVG9TdHJpbmc6QCIvdGVzdC5wZGYiXSkgeworICAgICAgICAgICAg
bWltZVR5cGUgPSBAImFwcGxpY2F0aW9uL3BkZiI7CisgICAgICAgICAgICBkYXRhID0gcGRmRGF0
YSgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKHVybC5w
YXRoLCAiL3Rlc3RfcHJpbnQucGRmIik7CisgICAgICAgICAgICBtaW1lVHlwZSA9IEAiYXBwbGlj
YXRpb24vcGRmIjsKKyAgICAgICAgICAgIGRhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQ29udGVudHNP
ZlVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAidGVzdF9wcmludCIg
d2l0aEV4dGVuc2lvbjpAInBkZiIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXV07CisgICAgICAgIH0KKyAgICAgICAgTlNVUkxSZXNwb25zZSAqcmVzcG9uc2UgPSBbW1tO
U1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDp1cmwgTUlNRVR5cGU6bWltZVR5cGUgZXhw
ZWN0ZWRDb250ZW50TGVuZ3RoOmRhdGEubGVuZ3RoIHRleHRFbmNvZGluZ05hbWU6bmlsXSBhdXRv
cmVsZWFzZV07CisgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZV07Cisg
ICAgICAgIFt0YXNrIGRpZFJlY2VpdmVEYXRhOmRhdGFdOworICAgICAgICBbdGFzayBkaWRGaW5p
c2hdOworICAgIH07CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJl
cXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDovLy90ZXN0X3ByaW50LnBk
ZiJdXV07CisgICAgYXV0byBzaXplID0gW2RlbGVnYXRlIHdhaXRGb3JQYWdlU2l6ZV07CisgICAg
RVhQRUNUX0VRKHNpemUuaGVpZ2h0LCA3OTIuMCk7CisgICAgRVhQRUNUX0VRKHNpemUud2lkdGgs
IDYxMi4wKTsKKworICAgIF9fYmxvY2sgYm9vbCByZWNlaXZlZFNpemUgPSBmYWxzZTsKKyAgICBb
d2ViVmlldyBfZ2V0UERGRmlyc3RQYWdlU2l6ZUluRnJhbWU6d2ViVmlldy5fbWFpbkZyYW1lIGNv
bXBsZXRpb25IYW5kbGVyOl4oTlNTaXplIHJlcXVlc3RlZFNpemUpIHsKKyAgICAgICAgRVhQRUNU
X0VRKHJlcXVlc3RlZFNpemUuaGVpZ2h0LCA3OTIuMCk7CisgICAgICAgIEVYUEVDVF9FUShyZXF1
ZXN0ZWRTaXplLndpZHRoLCA2MTIuMCk7CisgICAgICAgIHJlY2VpdmVkU2l6ZSA9IHRydWU7Cisg
ICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNpemUpOworCisg
ICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNV
UkwgVVJMV2l0aFN0cmluZzpAInRlc3Q6Ly8vbWFpbi5odG1sIl1dXTsKKyAgICBbd2ViVmlldyBf
dGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVK
YXZhU2NyaXB0OkAid2luZG93LnByaW50KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAg
YXV0byBtYWluRnJhbWVTaXplID0gW2RlbGVnYXRlIHdhaXRGb3JQYWdlU2l6ZV07CisgICAgRVhQ
RUNUX0VRKG1haW5GcmFtZVNpemUuaGVpZ2h0LCAwLjApOworICAgIEVYUEVDVF9FUShtYWluRnJh
bWVTaXplLndpZHRoLCAwLjApOworICAgIAorICAgIHJlY2VpdmVkU2l6ZSA9IGZhbHNlOworICAg
IFt3ZWJWaWV3IF9nZXRQREZGaXJzdFBhZ2VTaXplSW5GcmFtZTp3ZWJWaWV3Ll9tYWluRnJhbWUg
Y29tcGxldGlvbkhhbmRsZXI6XihOU1NpemUgcmVxdWVzdGVkU2l6ZSkgeworICAgICAgICBFWFBF
Q1RfRVEocmVxdWVzdGVkU2l6ZS5oZWlnaHQsIDAuMCk7CisgICAgICAgIEVYUEVDVF9FUShyZXF1
ZXN0ZWRTaXplLndpZHRoLCAwLjApOworICAgICAgICByZWNlaXZlZFNpemUgPSB0cnVlOworICAg
IH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTaXplKTsKKworICAg
IFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInBkZmZyYW1lLmNvbnRlbnRXaW5kb3cucHJp
bnQoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBhdXRvIHBkZkZyYW1lU2l6ZSA9IFtk
ZWxlZ2F0ZSB3YWl0Rm9yUGFnZVNpemVdOworICAgIEVYUEVDVF9ORUFSKHBkZkZyYW1lU2l6ZS5o
ZWlnaHQsIDI4Ljc5OTk5OSwgLjAwMDAxKTsKKyAgICBFWFBFQ1RfTkVBUihwZGZGcmFtZVNpemUu
d2lkdGgsIDEyOS42MDAwMDYsIC4wMDAwMSk7CisKKyAgICByZWNlaXZlZFNpemUgPSBmYWxzZTsK
KyAgICBbd2ViVmlldyBfZ2V0UERGRmlyc3RQYWdlU2l6ZUluRnJhbWU6ZGVsZWdhdGUubGFzdFBy
aW50ZWRGcmFtZSBjb21wbGV0aW9uSGFuZGxlcjpeKE5TU2l6ZSByZXF1ZXN0ZWRTaXplKSB7Cisg
ICAgICAgIEVYUEVDVF9ORUFSKHJlcXVlc3RlZFNpemUuaGVpZ2h0LCAyOC43OTk5OTksIC4wMDAw
MSk7CisgICAgICAgIEVYUEVDVF9ORUFSKHJlcXVlc3RlZFNpemUud2lkdGgsIDEyOS42MDAwMDYs
IC4wMDAwMSk7CisgICAgICAgIHJlY2VpdmVkU2l6ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNpemUpOworfQorCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420703</attachid>
            <date>2021-02-17 13:23:12 -0800</date>
            <delta_ts>2021-02-17 15:01:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222064-20210217132311.patch</filename>
            <type>text/plain</type>
            <size>37929</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyOTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGViYjNkMzE1ODA5OTc2Yzhk
Y2JkNDZjYzBhNDAwOTM4M2Q1NjNjM2EuLmRmYjlkZWU5Y2Q3ZDJlZmE1NDM3NWEwMjJlMWQzZGE3
YjQ5NjllYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMjEtMDItMTcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgU1BJIGZv
ciBnZXR0aW5nIHNpemUgb2YgUERGIGRvY3VtZW50IGR1cmluZyBwcmludGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMDY0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83NDM3MDg5MT4KKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJl
bi4KKworICAgICAgICBXaGVuIHByaW50aW5nIGEgUERGLCB3ZSB3YW50IHRvIGtub3cgaXRzIHBh
Z2Ugc2l6ZS4gIElmIHRoZSBwcmludCBpcyBpbml0aWF0ZWQgYnkgdGhlIHdlYiBwcm9jZXNzIChz
dWNoIGFzIHdoZW4gd2luZG93LnByaW50IGlzIGNhbGxlZAorICAgICAgICBvciBpZiB0aGUgUERG
IGNvbnRhaW5zIEphdmFTY3JpcHQgdGhhdCB0ZWxscyB0aGUgYnJvd3NlciB0byBwcmludCBpdCkg
dGhlbiB3ZSB3b3VsZCBsaWtlIHRoYXQgaW5mb3JtYXRpb24gd2l0aCB0aGUgcHJpbnQgcmVxdWVz
dCBzbyB3ZQorICAgICAgICBkb24ndCBoYXZlIHRvIGFzayB0aGUgd2ViIHByb2Nlc3MsIHdoaWNo
IGlzIGh1bmcgd2FpdGluZyBmb3IgYSBzeW5jaHJvbm91cyBtZXNzYWdlIHJlcGx5LiAgSWYgdGhl
IHByaW50IGlzIGluaXRpYXRlZCBieSB0aGUgVUkgcHJvY2VzcworICAgICAgICAoc3VjaCBhcyBp
ZiB0aGUgdXNlciBwcmludHMgZnJvbSBhIG1lbnUgb3Iga2V5Ym9hcmQgc2hvcnRjdXQpIHRoZW4g
d2UgbmVlZCBhIHdheSB0byBhc2sgd2hhdCB0aGUgc2l6ZSBvZiBhIFBERiBpcy4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IEFQSSB0ZXN0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVUlD
bGllbnQuaDoKKyAgICAgICAgKEFQSTo6VUlDbGllbnQ6OnByaW50RnJhbWUpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwOgorICAgICAgICAoV0tQYWdlU2V0UGFnZVVJQ2xp
ZW50KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9nZXRQREZGaXJzdFBhZ2VTaXplSW5GcmFtZTpjb21wbGV0aW9uSGFuZGxl
cjpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpz
ZXREZWxlZ2F0ZSk6CisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpwcmlu
dEZyYW1lKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpwcmludEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpnZXRQREZGaXJzdFBhZ2VTaXplKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tOgorICAgICAgICAoV2ViS2l0
OjpQREZQbHVnaW46OnBkZkRvY3VtZW50U2l6ZUZvclByaW50aW5nIGNvbnN0KToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2lu
OjpwZGZEb2N1bWVudFNpemVGb3JQcmludGluZyBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojpw
cmludCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6Z2V0UERGRmlyc3RQYWdlU2l6ZSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpnZXRQREZGaXJzdFBhZ2VTaXplKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3Nh
Z2VzLmluOgorCiAyMDIxLTAyLTE2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgQWRkIEFQSSB0byBkaXNhYmxlIEhUVFBTIHVwZ3JhZGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggMTYzNjdlNmNhYzgy
NWFhOWM3NGZiNGM0ODQzZGQyZjFmZjFkYWQzOC4uN2NlYmUyZmFiYWQ1YjMzNWViMzYyYTMyN2Vi
MzQ0YWU4MmRiZTY2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
LmgKQEAgLTE0NSw3ICsxNDUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBmbG9hdCBmb290ZXJI
ZWlnaHQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmKSB7IHJl
dHVybiAwOyB9CiAgICAgdmlydHVhbCB2b2lkIGRyYXdIZWFkZXIoV2ViS2l0OjpXZWJQYWdlUHJv
eHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3QmJikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRyYXdGb290ZXIoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6
OldlYkZyYW1lUHJveHkmLCBXZWJDb3JlOjpGbG9hdFJlY3QmJikgeyB9Ci0gICAgdmlydHVhbCB2
b2lkIHByaW50RnJhbWUoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYkZyYW1lUHJv
eHkmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29t
cGxldGlvbkhhbmRsZXIoKTsgfQorICAgIHZpcnR1YWwgdm9pZCBwcmludEZyYW1lKFdlYktpdDo6
V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRTaXplJiBwZGZGaXJzdFBhZ2VTaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpIHsgY29tcGxldGlvbkhhbmRsZXIoKTsgfQogCiAgICAgdmlydHVhbCBi
b29sIGNhblJ1bk1vZGFsKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIHZv
aWQgcnVuTW9kYWwoV2ViS2l0OjpXZWJQYWdlUHJveHkmKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDYyYTU0Yjc0NmMzYWIyZjFhYjMyY2VkNzE0NjRj
NGM0ZGRmMWU5ZDYuLjQ2YWU3OTYxMDZkYTI3YjJlYjFiY2Y1ZGIzZTdiZjJiOTQ4MTE3OWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtMTk3MSw3ICsxOTcx
LDcgQEAgdm9pZCBXS1BhZ2VTZXRQYWdlVUlDbGllbnQoV0tQYWdlUmVmIHBhZ2VSZWYsIGNvbnN0
IFdLUGFnZVVJQ2xpZW50QmFzZSogd2tDbGllbnQKICAgICAgICAgICAgIG1fY2xpZW50LmRyYXdG
b290ZXIodG9BUEkoJnBhZ2UpLCB0b0FQSSgmZnJhbWUpLCB0b0FQSShyZWN0KSwgbV9jbGllbnQu
YmFzZS5jbGllbnRJbmZvKTsKICAgICAgICAgfQogCi0gICAgICAgIHZvaWQgcHJpbnRGcmFtZShX
ZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCisgICAgICAgIHZvaWQgcHJpbnRG
cmFtZShXZWJQYWdlUHJveHkmIHBhZ2UsIFdlYkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFNpemUmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpIGZpbmFsCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmIChtX2NsaWVudC5wcmludEZy
YW1lKQogICAgICAgICAgICAgICAgIG1fY2xpZW50LnByaW50RnJhbWUodG9BUEkoJnBhZ2UpLCB0
b0FQSSgmZnJhbWUpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKaW5k
ZXggOTFiZWUzNGVkMGI2Mzk4MGI1NWExYWFiYWFhODhiOTI4MDQzM2M0NC4uNmI2MmU5MDg2N2M2
NjM3NjI4M2Q5N2ExNDE0YzM1N2RjNDYxMGExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCkBAIC0xMDcsNyAr
MTA3LDcgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgZGVjaWRlV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhRm9yU2VjdXJpdHlPcmln
aW46KFdLU2VjdXJpdHlPcmlnaW4gKilzZWN1cml0eU9yaWdpbiBjdXJyZW50UXVvdGE6KHVuc2ln
bmVkIGxvbmcgbG9uZyljdXJyZW50UXVvdGEgdG90YWxCeXRlc05lZWRlZDoodW5zaWduZWQgbG9u
ZyBsb25nKXRvdGFsQnl0ZXNOZWVkZWQgZGVjaXNpb25IYW5kbGVyOih2b2lkICheKSh1bnNpZ25l
ZCBsb25nIGxvbmcgbmV3UXVvdGEpKWRlY2lzaW9uSGFuZGxlcjsKIAogLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1l
OwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1lOihfV0tG
cmFtZUhhbmRsZSAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21w
bGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwor
LSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1lOihfV0tGcmFt
ZUhhbmRsZSAqKWZyYW1lIHBkZkZpcnN0UGFnZVNpemU6KE5TU2l6ZSlzaXplIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiAtICh2b2lkKV93ZWJWaWV3
Q2xvc2U6KFdLV2ViVmlldyAqKXdlYlZpZXc7CiAtICh2b2lkKV93ZWJWaWV3RnVsbHNjcmVlbk1h
eVJldHVyblRvSW5saW5lOihXS1dlYlZpZXcgKil3ZWJWaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggNDk0NjE2ZTkyNjA0ZmRjNjkz
ZDQ1YTFiOWZmYmViOWExYWRmYmUzNC4uMjkxYjlmNTM0NGUyYmQyZjdmYTVmYzM0MmIwNjMwYTU0
OTgzOGYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCkBAIC0yMjM5LDYgKzIyMzksMTMgQEAgc3RhdGljIFJldGFpblB0cjxOU0FycmF5PiB3
a1RleHRNYW5pcHVsYXRpb25FcnJvcnMoTlNBcnJheTxfV0tUZXh0TWFuaXB1bGF0aW9uSXQKICAg
ICBbc2VsZiBjcmVhdGVQREZXaXRoQ29uZmlndXJhdGlvbjpwZGZDb25maWd1cmF0aW9uIGNvbXBs
ZXRpb25IYW5kbGVyOmNvbXBsZXRpb25IYW5kbGVyXTsKIH0KIAorLSAodm9pZClfZ2V0UERGRmly
c3RQYWdlU2l6ZUluRnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWUgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQoXikoTlNTaXplKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIF9wYWdlLT5nZXRQ
REZGaXJzdFBhZ2VTaXplKGZyYW1lLT5fZnJhbWVIYW5kbGUtPmZyYW1lSUQoKSwgW2NvbXBsZXRp
b25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNvbXBsZXRpb25IYW5kbGVyKV0oV2ViQ29yZTo6Rmxv
YXRTaXplIHNpemUpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoc3RhdGljX2Nhc3Q8TlNT
aXplPihzaXplKSk7CisgICAgfSk7Cit9CisKIC0gKE5TRGF0YSAqKV9zZXNzaW9uU3RhdGVEYXRh
CiB7CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIG5vdCB1c2UgdGhlIGxlZ2FjeSBzZXNzaW9u
IHN0YXRlIGVuY29kZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCA5MjYyMzhhZWEwYTE0NzYxMThlNWE2OTA4NTQ3
YWQ3OWMzZjQ1NGQxLi4wODRiZjM0ZjAxMGM1MTRkYzMzMGIzMDZhYmE0YzE1YjZlNzc1NzlhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQ
cml2YXRlLmgKQEAgLTM1MCw2ICszNTAsNyBAQCBmb3IgdGhpcyBwcm9wZXJ0eS4KIC0gKHZvaWQp
X2Nsb3NlQWxsTWVkaWFQcmVzZW50YXRpb25zOwogCiAtICh2b2lkKV90YWtlUERGU25hcHNob3RX
aXRoQ29uZmlndXJhdGlvbjooV0tTbmFwc2hvdENvbmZpZ3VyYXRpb24gKilzbmFwc2hvdENvbmZp
Z3VyYXRpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TRGF0YSAqcGRmU25hcHNob3RE
YXRhLCBOU0Vycm9yICplcnJvcikpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xNS40KSwgaW9zKDEzLjQpKTsKKy0gKHZvaWQpX2dldFBERkZpcnN0UGFnZVNpemVJ
bkZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4p
KE5TU2l6ZSkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNf
VEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfZ2V0UHJvY2Vzc0Rpc3BsYXlOYW1l
V2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU1N0cmluZyAqKSljb21wbGV0aW9uSGFu
ZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBpb3MoMTQuMCkpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKaW5kZXggODU5NWYyMGU0MWM2ZmMz
MTNhNDNmYjgyY2QwOWJmOTJlNWFlNjk1Yi4uOTA5ZDkyMDA1ODBjZTU1MWUzNmM3MTk5N2NlYzcy
Y2EzODQ0NjU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlE
ZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aApAQCAtMTM3LDcgKzEzNyw3IEBAIHByaXZhdGU6CiAgICAgICAgIHZvaWQgZGVjaWRlUG9saWN5
Rm9yVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94
eSYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlh
UGVybWlzc2lvblJlcXVlc3RQcm94eSYpIGZpbmFsOwogICAgICAgICB2b2lkIGNoZWNrVXNlck1l
ZGlhUGVybWlzc2lvbkZvck9yaWdpbihXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJ
OjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eSYpIGZpbmFsOwogICAgICAgICB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlk
Q2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgZmluYWw7Ci0g
ICAgICAgIHZvaWQgcHJpbnRGcmFtZShXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVByb3h5JiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBmaW5hbDsKKyAgICAgICAgdm9pZCBwcmludEZyYW1l
KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUm
IHBkZkZpcnN0UGFnZVNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpZiBIQVZFKEFQUF9MSU5LUykKICAgICAgICAgYm9v
bCBzaG91bGRJbmNsdWRlQXBwTGlua0FjdGlvbnNGb3JFbGVtZW50KF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvICopIGZpbmFsOwpAQCAtMjE3LDcgKzIxNyw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJv
b2wgd2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkRhdGFiYXNlTmFt
ZURpc3BsYXlOYW1lQ3VycmVudFF1b3RhQ3VycmVudE9yaWdpblVzYWdlQ3VycmVudERhdGFiYXNl
VXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyIDogMTsKICAgICAgICAgYm9vbCB3ZWJW
aWV3RGVjaWRlV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5DdXJyZW50
UXVvdGFUb3RhbEJ5dGVzTmVlZGVkIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3UHJpbnRGcmFt
ZSA6IDE7Ci0gICAgICAgIGJvb2wgd2ViVmlld1ByaW50RnJhbWVDb21wbGV0aW9uSGFuZGxlciA6
IDE7CisgICAgICAgIGJvb2wgd2ViVmlld1ByaW50RnJhbWVQREZGaXJzdFBhZ2VTaXplQ29tcGxl
dGlvbkhhbmRsZXIgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEaWRDbG9zZSA6IDE7CiAgICAg
ICAgIGJvb2wgd2ViVmlld0Nsb3NlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1VJRGVsZWdhdGUubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
SURlbGVnYXRlLm1tCmluZGV4IDkxMTk1NjAzNjg2OWFkOWUzZTY4Yjg5YzFjMmVjMzk2YTJjYzI5
NzQuLjkxYzIwNzY1MjNmM2ZmYTc5NWM5NzM2ZmVlYjg1MGY4MTRjOTA5MmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtMTQ0LDcgKzE0NCw3IEBA
IHZvaWQgVUlEZWxlZ2F0ZTo6c2V0RGVsZWdhdGUoaWQgPFdLVUlEZWxlZ2F0ZT4gZGVsZWdhdGUp
CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZURhdGFiYXNlUXVvdGFGb3JTZWN1
cml0eU9yaWdpbkRhdGFiYXNlTmFtZURpc3BsYXlOYW1lQ3VycmVudFF1b3RhQ3VycmVudE9yaWdp
blVzYWdlQ3VycmVudERhdGFiYXNlVXNhZ2VFeHBlY3RlZFVzYWdlRGVjaXNpb25IYW5kbGVyID0g
W2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlRGF0
YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luOmRhdGFiYXNlTmFtZTpkaXNwbGF5TmFtZTpjdXJy
ZW50UXVvdGE6Y3VycmVudE9yaWdpblVzYWdlOmN1cnJlbnREYXRhYmFzZVVzYWdlOmV4cGVjdGVk
VXNhZ2U6ZGVjaXNpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdE
ZWNpZGVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFGb3JTZWN1cml0eU9yaWdpbkN1cnJlbnRRdW90
YVRvdGFsQnl0ZXNOZWVkZWQgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfd2ViVmlldzpkZWNpZGVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFGb3JTZWN1cml0eU9yaWdp
bjpjdXJyZW50UXVvdGE6dG90YWxCeXRlc05lZWRlZDpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAg
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1ByaW50RnJhbWUgPSBbZGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOildOwotICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdQcmludEZyYW1lQ29tcGxldGlvbkhhbmRsZXIgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOmNvbXBsZXRp
b25IYW5kbGVyOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdQcmludEZyYW1lUERG
Rmlyc3RQYWdlU2l6ZUNvbXBsZXRpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cHJpbnRGcmFtZTpwZGZGaXJzdFBhZ2VTaXplOmNvbXBs
ZXRpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRDbG9zZSA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHdlYlZpZXdEaWRDbG9zZTop
XTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3Q2xvc2UgPSBbZGVsZWdhdGUgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0Nsb3NlOildOwogICAgIG1fZGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUgPSBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lu
bGluZTopXTsKQEAgLTExOTMsNyArMTE5Myw3IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6
OnJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoV2ViUGFnZVByb3h5KiwgY29uCiAg
ICAgfSkuZ2V0KCldOwogfQogCi12b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpwcmludEZyYW1l
KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmIHdlYkZyYW1lUHJveHksIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgVUlEZWxlZ2F0ZTo6VUlD
bGllbnQ6OnByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQ
cm94eSwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBwZGZGaXJzdFBhZ2VTaXplLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX3Vp
RGVsZWdhdGUpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcigpOwpAQCAtMTIwMyw5
ICsxMjAzLDkgQEAgdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cHJpbnRGcmFtZShXZWJQYWdl
UHJveHkmLCBXZWJGcmFtZVByb3h5JiB3ZWJGcmFtZVByb3gKICAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKCk7CiAKICAgICBhdXRvIGhhbmRsZSA9IEFQSTo6RnJhbWVIYW5kbGU6OmNy
ZWF0ZSh3ZWJGcmFtZVByb3h5LmZyYW1lSUQoKSk7Ci0gICAgaWYgKG1fdWlEZWxlZ2F0ZS0+bV9k
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1ByaW50RnJhbWVDb21wbGV0aW9uSGFuZGxlcikgewotICAg
ICAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUo
ZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOmNvbXBsZXRpb25I
YW5kbGVyOikpOwotICAgICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPilkZWxlZ2F0ZSBf
d2ViVmlldzptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQoKSBwcmludEZyYW1lOndy
YXBwZXIoaGFuZGxlKSBjb21wbGV0aW9uSGFuZGxlcjptYWtlQmxvY2tQdHIoW2NoZWNrZXIgPSBX
VEZNb3ZlKGNoZWNrZXIpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSAoKSBtdXRhYmxlIHsKKyAgICBpZiAobV91aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0
aG9kcy53ZWJWaWV3UHJpbnRGcmFtZVBERkZpcnN0UGFnZVNpemVDb21wbGV0aW9uSGFuZGxlcikg
eworICAgICAgICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpj
cmVhdGUoZGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOnBkZkZp
cnN0UGFnZVNpemU6Y29tcGxldGlvbkhhbmRsZXI6KSk7CisgICAgICAgIFsoaWQgPFdLVUlEZWxl
Z2F0ZVByaXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3Lmdl
dCgpLmdldCgpIHByaW50RnJhbWU6d3JhcHBlcihoYW5kbGUpIHBkZkZpcnN0UGFnZVNpemU6c3Rh
dGljX2Nhc3Q8TlNTaXplPihwZGZGaXJzdFBhZ2VTaXplKSBjb21wbGV0aW9uSGFuZGxlcjptYWtl
QmxvY2tQdHIoW2NoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlm
IChjaGVja2VyLT5jb21wbGV0aW9uSGFuZGxlckhhc0JlZW5DYWxsZWQoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRs
ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDk3NGZh
YTA4ODcwNjNmNWQxN2ZkMjhkMzliODU2N2YxMDVmZTEwNjIuLjUxZTljYjM0MTBlMTQ3YjdkNzc3
ZDZmNjk5YjE0MjM0MjUyNTMyMjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcApAQCAtNTg2OSw3ICs1ODY5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNob3dDb250
YWN0UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEmIHJlcXVlc3QKICAg
ICBwYWdlQ2xpZW50KCkuc2hvd0NvbnRhY3RQaWNrZXIocmVxdWVzdERhdGEsIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKIH0KICAgICAKLXZvaWQgV2ViUGFnZVByb3h5OjpwcmludEZyYW1l
KEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYlBhZ2VQcm94eTo6
cHJpbnRGcmFtZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwg
Y29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBwZGZGaXJzdFBhZ2VTaXplLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFtX2lzUGVy
Zm9ybWluZ0RPTVByaW50T3BlcmF0aW9uKTsKICAgICBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3Bl
cmF0aW9uID0gdHJ1ZTsKQEAgLTU4NzksNyArNTg3OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpw
cmludEZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBTdHJpbmcmIHRpdGxlLCBD
b21wCiAKICAgICBmcmFtZS0+ZGlkQ2hhbmdlVGl0bGUodGl0bGUpOwogCi0gICAgbV91aUNsaWVu
dC0+cHJpbnRGcmFtZSgqdGhpcywgKmZyYW1lLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
XSAoKSBtdXRhYmxlIHsKKyAgICBtX3VpQ2xpZW50LT5wcmludEZyYW1lKCp0aGlzLCAqZnJhbWUs
IHBkZkZpcnN0UGFnZVNpemUsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyks
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFi
bGUgewogICAgICAgICBlbmRQcmludGluZygpOyAvLyBTZW5kIGEgbWVzc2FnZSBzeW5jaHJvbm91
c2x5IHdoaWxlIG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24gaXMgc3RpbGwgdHJ1ZS4K
ICAgICAgICAgbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbiA9IGZhbHNlOwogICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcigpOwpAQCAtODQ0MSw2ICs4NDQxLDExIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpkcmF3VG9QREYoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IE9wdGlvbmFs
PEZsb2F0UmVjdD4mCiB9CiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCiAKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpnZXRQREZGaXJzdFBhZ2VTaXplKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkZsb2F0U2l6ZSk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdl
OjpHZXRQREZGaXJzdFBhZ2VTaXplKGZyYW1lSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVCYWNraW5nU3RvcmVEaXNjYXJkYWJs
ZVN0YXRlKCkKIHsKICAgICBBU1NFUlQoaGFzUnVubmluZ1Byb2Nlc3MoKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDMxNGRhMzU0YTc0Y2IxOWVjYTQxN2M0NGU2
ODk0OGQ5MGRiYWI3MzguLjhhZDEzYjYzODc0ZTQ5NGRlZmY0NWE5ZTY4M2IxOTMyZTEwMmIzOGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjgzLDYgKzEyODMs
NyBAQCBwdWJsaWM6CiAgICAgdm9pZCBiZWdpblByaW50aW5nKFdlYkZyYW1lUHJveHkqLCBjb25z
dCBQcmludEluZm8mKTsKICAgICB2b2lkIGVuZFByaW50aW5nKCk7CiAgICAgdWludDY0X3QgY29t
cHV0ZVBhZ2VzRm9yUHJpbnRpbmcoV2ViRnJhbWVQcm94eSosIGNvbnN0IFByaW50SW5mbyYsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkludFJlY3Q+JiwgZG91
YmxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdEJveEV4dGVudCYpPiYmKTsKKyAgICB2b2lkIGdldFBE
RkZpcnN0UGFnZVNpemUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6OkZsb2F0U2l6ZSk+JiYpOwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAg
IHVpbnQ2NF90IGRyYXdSZWN0VG9JbWFnZShXZWJGcmFtZVByb3h5KiwgY29uc3QgUHJpbnRJbmZv
JiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFdlYktpdDo6U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUm
KT4mJik7CiAgICAgdWludDY0X3QgZHJhd1BhZ2VzVG9QREYoV2ViRnJhbWVQcm94eSosIGNvbnN0
IFByaW50SW5mbyYsIHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBjb3VudCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChBUEk6OkRhdGEqKT4mJik7CkBAIC0xOTc4LDcgKzE5NzksNyBAQCBwcml2YXRl
OgogICAgIGJvb2wgZGlkQ2hvb3NlRmlsZXNGb3JPcGVuUGFuZWxXaXRoSW1hZ2VUcmFuc2NvZGlu
Zyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgZmlsZVVSTHMsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBh
bGxvd2VkTUlNRVR5cGVzKTsKICAgICB2b2lkIHNob3dTaGFyZVNoZWV0KGNvbnN0IFdlYkNvcmU6
OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKICAgICB2b2lkIHNob3dDb250YWN0UGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbnRhY3RzUmVx
dWVzdERhdGEmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPFZlY3RvcjxXZWJDb3Jl
OjpDb250YWN0SW5mbz4+JiYpPiYmKTsKLSAgICB2b2lkIHByaW50RnJhbWUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OworICAgIHZvaWQgcHJpbnRGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsICBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogICAgIHZvaWQgZXhjZWVkZWREYXRhYmFzZVF1b3RhKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBvcmlnaW5JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGRh
dGFiYXNlTmFtZSwgY29uc3QgU3RyaW5nJiBkaXNwbGF5TmFtZSwgdWludDY0X3QgY3VycmVudFF1
b3RhLCB1aW50NjRfdCBjdXJyZW50T3JpZ2luVXNhZ2UsIHVpbnQ2NF90IGN1cnJlbnREYXRhYmFz
ZVVzYWdlLCB1aW50NjRfdCBleHBlY3RlZFVzYWdlLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpF
eGNlZWRlZERhdGFiYXNlUXVvdGFEZWxheWVkUmVwbHkmJik7CiAgICAgdm9pZCByZWFjaGVkQXBw
bGljYXRpb25DYWNoZU9yaWdpblF1b3RhKGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwg
dWludDY0X3QgY3VycmVudFF1b3RhLCB1aW50NjRfdCB0b3RhbEJ5dGVzTmVlZGVkLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpSZWFjaGVkQXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhRGVsYXll
ZFJlcGx5JiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4KaW5kZXggMDViZjIxYmZmYjdkN2NlOWQwYjEwNDIwMjc5ZTc5ZThlMTgwZTVk
NC4uYzE0MGMzOGRmOWI0OWJiYzY4MmJkY2NhZDRiMTM5ODkyYjhhNTQ5NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNzAsNyAr
NzAsNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFJ1bk9wZW5QYW5lbChXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0
YSBmcmFtZUluZm8sIHN0cnVjdCBXZWJDb3JlOjpGaWxlQ2hvb3NlclNldHRpbmdzIHBhcmFtZXRl
cnMpCiAgICAgU2hvd1NoYXJlU2hlZXQoc3RydWN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJz
ZWRVUkwgc2hhcmVEYXRhKSAtPiAoYm9vbCBncmFudGVkKSBBc3luYwogICAgIFNob3dDb250YWN0
UGlja2VyKHN0cnVjdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhIHJlcXVlc3REYXRhKSAt
PiAoT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4gaW5mbykgQXN5bmMKLSAg
ICBQcmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgdGl0
bGUpIC0+ICgpIFN5bmNocm9ub3VzCisgICAgUHJpbnRGcmFtZShXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHRpdGxlLCBXZWJDb3JlOjpGbG9hdFNpemUgcGRmRmlyc3RQ
YWdlU2l6ZSkgLT4gKCkgU3luY2hyb25vdXMKICAgICBSdW5Nb2RhbCgpCiAgICAgTm90aWZ5U2Ny
b2xsZXJUaHVtYklzVmlzaWJsZUluUmVjdChXZWJDb3JlOjpJbnRSZWN0IHNjcm9sbGVyVGh1bWIp
CiAgICAgUmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShpbnQzMl90IG5ld1N0eWxl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5o
CmluZGV4IGJhN2ExODc2YjFmYjA2MzkyNWE0MGJhN2VkMGIzYWQ2OTVhZjRmM2MuLmYwN2I3OGVl
ZTg4ZGI0MDFlYzA3OTI3Mjc5NGZhNTZhZWYyYzU1MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKQEAgLTIxMyw2ICsyMTMsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgcGx1Z2luSGFuZGxlc0NvbnRlbnRPZmZzZXRGb3JBY2Nlc3NpYmls
aXR5SGl0VGVzdCgpIGNvbnN0IGZpbmFsOwogICAgIAogICAgIFJldGFpblB0cjxQREZEb2N1bWVu
dD4gcGRmRG9jdW1lbnRGb3JQcmludGluZygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcGRmRG9j
dW1lbnQ7IH0KKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgcGRmRG9jdW1lbnRTaXplRm9yUHJpbnRp
bmcoKSBjb25zdCBmaW5hbDsKICAgICBOU09iamVjdCAqYWNjZXNzaWJpbGl0eU9iamVjdCgpIGNv
bnN0IGZpbmFsOwogICAgIGlkIGFjY2Vzc2liaWxpdHlBc3NvY2lhdGVkUGx1Z2luUGFyZW50Rm9y
RWxlbWVudChXZWJDb3JlOjpFbGVtZW50KikgY29uc3QgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0gYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCmluZGV4IDJhZDQ1YzUx
YzIxNGEzOWM0ZmZiNzdjNmM5YjhiYjM0MmZjNmFiZjQuLjI0ODAwZjZjNTkzNTRlYTVmNWFiNTg0
ZDk2YjgxNmE3NGRlNmNjMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BERi9QREZQbHVnaW4ubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1Bs
dWdpbnMvUERGL1BERlBsdWdpbi5tbQpAQCAtMTU1MCw2ICsxNTUwLDExIEBAIEpTVmFsdWVSZWYg
UERGUGx1Z2luOjpqc1BERkRvY1ByaW50KEpTQ29udGV4dFJlZiBjdHgsIEpTT2JqZWN0UmVmIGZ1
bmN0aW9uLCBKU09iCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGN0eCk7CiB9CiAK
K0Zsb2F0U2l6ZSBQREZQbHVnaW46OnBkZkRvY3VtZW50U2l6ZUZvclByaW50aW5nKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gRmxvYXRTaXplKFtbbV9wZGZEb2N1bWVudCBwYWdlQXRJbmRleDowXSBi
b3VuZHNGb3JCb3g6a1BERkRpc3BsYXlCb3hDcm9wQm94XS5zaXplKTsKK30KKwogSlNPYmplY3RS
ZWYgUERGUGx1Z2luOjptYWtlSlNQREZEb2MoSlNDb250ZXh0UmVmIGN0eCkKIHsKICAgICBzdGF0
aWMgSlNTdGF0aWNGdW5jdGlvbiBqc1BERkRvY1N0YXRpY0Z1bmN0aW9uc1tdID0gewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAKaW5kZXggYjc2ZDM0NDhmMjBh
Y2JkOTk4MzcwZDRiOWY0ODNkZmQ3MTc0MDY4Yy4uMGZhZWZmMWZiODQ1ZTI1NGQ5OTYzZTM1NjBl
ZTk0ODk4MmM3OTNkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW4uY3BwCkBAIC0xMjcsNCArMTI3LDExIEBAIGNvbnN0IFBsdWdpbkNvbnRyb2xsZXIqIFBsdWdp
bjo6Y29udHJvbGxlcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGx1Z2luQ29udHJvbGxlci5nZXQo
KTsKIH0KIAorI2lmIFBMQVRGT1JNKENPQ09BKQorV2ViQ29yZTo6RmxvYXRTaXplIFBsdWdpbjo6
cGRmRG9jdW1lbnRTaXplRm9yUHJpbnRpbmcoKSBjb25zdAoreworICAgIHJldHVybiB7IH07Cit9
CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpbi5oCmluZGV4IGRjNTU3OWZkMzE5NTI0OGNkZWU5YjAxNTZhZjc4MDk3
ZjhlYWFmNzAuLmQzYzdhYzcwNTExZmM3MmM4NzA4NGI4YTM3NGY5ZDZjNzI2ODU5YjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oCkBAIC01NSw2ICs1NSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEFmZmluZVRyYW5zZm9ybTsKIGNsYXNzIEVsZW1l
bnQ7CiBjbGFzcyBGbG9hdFBvaW50OworY2xhc3MgRmxvYXRTaXplOwogY2xhc3MgR3JhcGhpY3ND
b250ZXh0OwogY2xhc3MgSW50UG9pbnQ7CiBjbGFzcyBJbnRSZWN0OwpAQCAtMjc1LDYgKzI3Niw3
IEBAIHB1YmxpYzoKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIHZpcnR1YWwgUmV0YWluUHRy
PFBERkRvY3VtZW50PiBwZGZEb2N1bWVudEZvclByaW50aW5nKCkgY29uc3QgeyByZXR1cm4gMDsg
fQorICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRTaXplIHBkZkRvY3VtZW50U2l6ZUZvclByaW50
aW5nKCkgY29uc3Q7CiAgICAgdmlydHVhbCBOU09iamVjdCAqYWNjZXNzaWJpbGl0eU9iamVjdCgp
IGNvbnN0IHsgcmV0dXJuIDA7IH0KICAgICB2aXJ0dWFsIGlkIGFjY2Vzc2liaWxpdHlBc3NvY2lh
dGVkUGx1Z2luUGFyZW50Rm9yRWxlbWVudChXZWJDb3JlOjpFbGVtZW50KikgY29uc3QgeyByZXR1
cm4gbnVsbHB0cjsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IGMwOWEyN2I3
ZTdmNTNmYjQ0MjQ0NDcxYTZkNmI3NGZjZTA1ZDQzYTAuLjMyMDk3YzMwYjQ2NmFlNzRkNzg1M2Qw
ZTg3ZDAxYzEyMDM2Mjc4ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC0zOSw2ICszOSw3
IEBACiAjaW5jbHVkZSAiTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3NNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlBhZ2VCYW5u
ZXIuaCIKKyNpbmNsdWRlICJQbHVnaW5WaWV3LmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVuZGVyaW5n
QmFja2VuZFByb3h5LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyQ29weS5oIgogI2luY2x1ZGUg
IlVzZXJEYXRhLmgiCkBAIC03MzUsOCArNzM2LDE0IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpw
cmludChGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZ1dpdGhEaXJlY3Rpb24mIHRpdGxlKQogICAg
IH0KICNlbmRpZgogCisgICAgV2ViQ29yZTo6RmxvYXRTaXplIHBkZkZpcnN0UGFnZVNpemU7Cisg
ICAgaWYgKGF1dG8qIHBsdWdpblZpZXcgPSBXZWJQYWdlOjpwbHVnaW5WaWV3Rm9yRnJhbWUoJmZy
YW1lKSkgeworICAgICAgICBpZiAoYXV0byogcGx1Z2luID0gcGx1Z2luVmlldy0+cGx1Z2luKCkp
CisgICAgICAgICAgICBwZGZGaXJzdFBhZ2VTaXplID0gcGx1Z2luLT5wZGZEb2N1bWVudFNpemVG
b3JQcmludGluZygpOworICAgIH0KKwogICAgIGF1dG8gdHJ1bmNhdGVkVGl0bGUgPSB0cnVuY2F0
ZUZyb21FbmQodGl0bGUsIG1heFRpdGxlTGVuZ3RoKTsKLSAgICBtX3BhZ2Uuc2VuZFN5bmNXaXRo
RGVsYXllZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlByaW50RnJhbWUod2ViRnJhbWUt
PmZyYW1lSUQoKSwgdHJ1bmNhdGVkVGl0bGUuc3RyaW5nKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6UHJpbnRGcmFtZTo6UmVwbHkoKSk7CisgICAgbV9wYWdlLnNlbmRTeW5jV2l0aERlbGF5ZWRS
ZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQcmludEZyYW1lKHdlYkZyYW1lLT5mcmFtZUlE
KCksIHRydW5jYXRlZFRpdGxlLnN0cmluZywgcGRmRmlyc3RQYWdlU2l6ZSksIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OlByaW50RnJhbWU6OlJlcGx5KCkpOwogfQogCiB2b2lkIFdlYkNocm9tZUNs
aWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nJiBk
YXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscyBkZXRhaWxzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCmluZGV4IGY1
N2Q4NDlhNjIwMTE0NGM1NzM3N2VjYzM3MTE2YTIxOGRmMTNhOGUuLmNmYjU1YWEyZGIwOGQ1Y2Qy
N2JiMWE0NWFlYmY5YTcwMzk3YzljN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KQEAgLTQxNiw2ICs0MTYsMjcg
QEAgdm9pZCBXZWJQYWdlOjpjb25zdW1lTmV0d29ya0V4dGVuc2lvblNhbmRib3hFeHRlbnNpb25z
KGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkgKICNlbmRpZgogfQogCit2b2lkIFdlYlBhZ2U6Omdl
dFBERkZpcnN0UGFnZVNpemUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RmxvYXRTaXplKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBhdXRvKiB3ZWJGcmFtZSA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLndlYkZy
YW1lKGZyYW1lSUQpOworICAgIGlmICghd2ViRnJhbWUpCisgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcih7IH0pOworCisgICAgYXV0byogY29yZUZyYW1lID0gd2ViRnJhbWUtPmNvcmVG
cmFtZSgpOworICAgIGlmICghY29yZUZyYW1lKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhh
bmRsZXIoeyB9KTsKKworICAgIGF1dG8qIHBsdWdpblZpZXcgPSBwbHVnaW5WaWV3Rm9yRnJhbWUo
Y29yZUZyYW1lKTsKKyAgICBpZiAoIXBsdWdpblZpZXcpCisgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcih7IH0pOworICAgIAorICAgIGF1dG8qIHBsdWdpbiA9IHBsdWdpblZpZXctPnBs
dWdpbigpOworICAgIGlmICghcGx1Z2luKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRs
ZXIoeyB9KTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKEZsb2F0U2l6ZShwbHVnaW4tPnBkZkRv
Y3VtZW50U2l6ZUZvclByaW50aW5nKCkpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAK
ICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYjc5NDcxOGJjMDlhZjkzZmM0MWQ2YzRiZWUyODMwNDky
OGQyMTYzZS4uM2UzODEzMjE1YzUwMDhjYjA4ZTcyM2E5YjM1OTA3ZTc1NmFkZDg3MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTcwODksNiAr
NzA4OSwxMSBAQCB2b2lkIFdlYlBhZ2U6OmNvbmZpZ3VyZUxvZ2dpbmdDaGFubmVsKGNvbnN0IFN0
cmluZyYgY2hhbm5lbE5hbWUsIFdURkxvZ0NoYW5uZWxTdAogfQogCiAjaWYgIVBMQVRGT1JNKENP
Q09BKQordm9pZCBXZWJQYWdlOjpnZXRQREZGaXJzdFBhZ2VTaXplKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpGbG9hdFNpemUpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Cit9CisKIHZv
aWQgV2ViUGFnZTo6Z2V0UHJvY2Vzc0Rpc3BsYXlOYW1lKENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
U3RyaW5nJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGNvbXBsZXRpb25IYW5kbGVy
KHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
OTQ2MmViNDRiYmFiMjEyOWJlYTY3YTU1ZGQ3ODdkNTQ1ZWM4MGYyOC4uN2Q1NDFkZGY3MDRhNjcw
NGIxOWZhZDI5M2UxNjVmMDQ3NjliYzA5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTUwNyw2ICsxNTA3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGxvYWREYXRhKExvYWRQYXJhbWV0ZXJzJiYpOwogICAgIHZvaWQgbG9hZEFsdGVybmF0ZUhUTUwo
TG9hZFBhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBuYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0
ZWRDbGljayhjb25zdCBTdHJpbmcmIHVybCwgV2ViQ29yZTo6SW50UG9pbnQgZG9jdW1lbnRQb2lu
dCwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuUG9pbnQpOworICAgIHZvaWQgZ2V0UERGRmlyc3RQ
YWdlU2l6ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
V2ViQ29yZTo6RmxvYXRTaXplKT4mJik7CiAgICAgdm9pZCByZWxvYWQodWludDY0X3QgbmF2aWdh
dGlvbklELCB1aW50MzJfdCByZWxvYWRPcHRpb25zLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUm
Jik7CiAgICAgdm9pZCBnb1RvQmFja0ZvcndhcmRJdGVtKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
Y29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRpZmllciYsIFdlYkNvcmU6OkZyYW1l
TG9hZFR5cGUsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCwgT3B0aW9uYWw8
V2Vic2l0ZVBvbGljaWVzRGF0YT4mJik7CiAgICAgdm9pZCB0cnlSZXN0b3JlU2Nyb2xsUG9zaXRp
b24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCmluZGV4IDM0YjEyYzQ2NDQ0ZmYxNTVhNWUxNDMyMTk5YWQ4YTE3ODk5MTU4
MmIuLjUyODYwMWM2MTAxMmZhZmVlZTg2MTlhNTMxODc4ZjFlMTQ5ZGM4YzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpA
QCAtMTgyLDYgKzE4Miw3IEBAIEdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoZW51bTp1
aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1hbmRUeXBlCiAgICAgTG9hZEFsdGVy
bmF0ZUhUTUwoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMpCiAK
ICAgICBOYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayhTdHJpbmcgdXJsLCBXZWJD
b3JlOjpJbnRQb2ludCBkb2N1bWVudFBvaW50LCBXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Qb2lu
dCkKKyAgICBHZXRQREZGaXJzdFBhZ2VTaXplKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFt
ZUlEKSAtPiAoV2ViQ29yZTo6RmxvYXRTaXplIHNpemUpIEFzeW5jCiAKICAgICBSZWxvYWQodWlu
dDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCByZWxvYWRPcHRpb25zLCBXZWJLaXQ6OlNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKQogICAgIFN0b3BMb2Fk
aW5nKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCAxNzhiNTIxMjg0NDFmN2VjM2VjNzE1ZDJjODVhOGVmMmQ1NjdmZDFmLi5hZTg4MDE5ODI5MGMw
ZWZhOTlmNGYwZDA3ZmFmMDYyYTE4MGFmMGExIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjEtMDItMTcgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgU1BJ
IGZvciBnZXR0aW5nIHNpemUgb2YgUERGIGRvY3VtZW50IGR1cmluZyBwcmludGluZworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMDY0CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS83NDM3MDg5MT4KKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBH
YXJlbi4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L3Rl
c3RfcHJpbnQucGRmOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1dLUERGVmlldy5tbToKKyAgICAgICAgKC1bUHJpbnRVSURlbGVnYXRlIF93ZWJWaWV3
OnByaW50RnJhbWU6cGRmRmlyc3RQYWdlU2l6ZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAg
ICAgKC1bUHJpbnRVSURlbGVnYXRlIHdhaXRGb3JQYWdlU2l6ZV0pOgorICAgICAgICAoLVtQcmlu
dFVJRGVsZWdhdGUgbGFzdFByaW50ZWRGcmFtZV0pOgorICAgICAgICAoVEVTVCk6CisKIDIwMjEt
MDItMTYgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBBZGQgQVBJIHRvIGRpc2FibGUgSFRUUFMgdXBncmFkZQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAyZDJmOWU2Mjc2OTA2ZTVmNTQwYWY0OTEyODg1NjM2MzI2NWI1YzllLi44YzQ1N2Y5
MWJjNWU1YTMyMzFmNjUzYzNjZTllNTJhZjJhYTgxMjY1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtNDYxLDYgKzQ2MSw3IEBACiAJCTVDNEE4NDk1MUY3RUVGRkMwMEFDRkM1NCAvKiBDb25m
aWd1cmF0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUM0QTg0OTQxRjdFRUZENDAwQUNGQzU0IC8qIENvbmZpZ3VyYXRpb24ubW0gKi87IH07CiAJ
CTVDNjlCREQ1MUY4MkE3RUYwMDBGNEY0QiAvKiBKYXZhU2NyaXB0RHVyaW5nTmF2aWdhdGlvbi5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNjlCREQ0
MUY4MkE3RUIwMDBGNEY0QiAvKiBKYXZhU2NyaXB0RHVyaW5nTmF2aWdhdGlvbi5tbSAqLzsgfTsK
IAkJNUM2RTI3QTcyMjRFRUJFQTAwMTI4NzM2IC8qIFVSTENhbm9uaWNhbGl6YXRpb24ubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzZFMjdBNjIyNEVF
QkVBMDAxMjg3MzYgLyogVVJMQ2Fub25pY2FsaXphdGlvbi5tbSAqLzsgfTsKKwkJNUM3MTAxQzcy
NUREOThCNjAwNjg2MjAwIC8qIHRlc3RfcHJpbnQucGRmIGluIENvcHkgUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNzEwMUM2MjVERDk4ODcwMDY4NjIwMCAv
KiB0ZXN0X3ByaW50LnBkZiAqLzsgfTsKIAkJNUM3MTQ4OTUyMTIzQTQwQTAwRkRFM0M1IC8qIFdL
V2Vic2l0ZURhdGFzdG9yZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDNzE0ODk0MjEyM0E0MDcwMEZERTNDNSAvKiBXS1dlYnNpdGVEYXRhc3RvcmUu
bW0gKi87IH07CiAJCTVDNzU3MTYxMjIxMjRDNTIwMEI5RTVBQyAvKiBCdW5kbGVSZXRhaW5QYWdl
UGx1Z0luLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUM3NTcxNUYyMjEyNDlCRDAwQjlFNUFDIC8qIEJ1bmRsZVJldGFpblBhZ2VQbHVnSW4ubW0gKi87
IH07CiAJCTVDNzk2NDEwMUVCMDI3OEQwMDc1RDc0QyAvKiBFdmVudE1vZGlmaWVycy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Qzc5NjQwRjFFQjAy
NjlCMDA3NUQ3NEMgLyogRXZlbnRNb2RpZmllcnMuY3BwICovOyB9OwpAQCAtMTY0OSw2ICsxNjUw
LDcgQEAKIAkJCQlDOTU5ODRGNzFFMzZCQ0VGMDAyQzBENDUgLyogdGVzdC13aXRob3V0LWF1ZGlv
LXRyYWNrLm1wNCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk1MjRCQkNBMTE5RTMwQzc3MDAy
RjFBRjEgLyogdGVzdC5tcDQgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJN0FFOUU1MDkxQUU1
QUU4QjAwQ0Y4NzRCIC8qIHRlc3QucGRmIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTVDNzEw
MUM3MjVERDk4QjYwMDY4NjIwMCAvKiB0ZXN0X3ByaW50LnBkZiBpbiBDb3B5IFJlc291cmNlcyAq
LywKIAkJCQkyRTk4OTYxNTFEOEYwOTM4MDA3Mzk4OTIgLyogdGV4dC1hbmQtcGFzc3dvcmQtaW5w
dXRzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjRDRDc0QzYyMEZEQUNGQTAwREUz
Nzk0IC8qIHRleHQtd2l0aC1hc3luYy1zY3JpcHQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywK
IAkJCQlGNDRDN0EwNTIwRkFBRTNDMDAxNDQ3OEMgLyogdGV4dC13aXRoLWRlZmVycmVkLXNjcmlw
dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMjI0Nyw2ICsyMjQ5LDcgQEAKIAkJNUM2
ODM0NzEyMzVBQ0M3QzAwNDFFNkIxIC8qIFNlcnZpY2VXb3JrZXJUQ1BTZXJ2ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VydmljZVdvcmtlclRDUFNlcnZlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzY5QkRENDFGODJBN0VCMDAwRjRGNEIgLyogSmF2
YVNjcmlwdER1cmluZ05hdmlnYXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBKYXZhU2NyaXB0RHVyaW5nTmF2aWdhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNUM2RTI3QTYyMjRFRUJFQTAwMTI4NzM2IC8qIFVSTENhbm9uaWNhbGl6
YXRpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVUkxDYW5v
bmljYWxpemF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzcxMDFDNjI1
REQ5ODg3MDA2ODYyMDAgLyogdGVzdF9wcmludC5wZGYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBpbWFnZS5wZGY7IHBhdGggPSB0ZXN0X3ByaW50LnBk
Zjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3MTQ4OTQyMTIzQTQwNzAwRkRFM0M1
IC8qIFdLV2Vic2l0ZURhdGFzdG9yZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdLV2Vic2l0ZURhdGFzdG9yZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNUM3MkU4Q0QyNDRGRkNFMzAwMzgxRUI3IC8qIFRlc3RMZWdhY3lEb3dubG9hZERlbGVn
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFRlc3RMZWdhY3lEb3dubG9h
ZERlbGVnYXRlLmg7IHBhdGggPSBjb2NvYS9UZXN0TGVnYWN5RG93bmxvYWREZWxlZ2F0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzcyRThDRTI0NEZGQ0U0MDAzODFFQjcgLyog
VGVzdExlZ2FjeURvd25sb2FkRGVsZWdhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IG5hbWUgPSBUZXN0TGVnYWN5RG93bmxvYWREZWxlZ2F0ZS5tbTsgcGF0aCA9IGNvY29h
L1Rlc3RMZWdhY3lEb3dubG9hZERlbGVnYXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtNDIyOCw2ICs0MjMxLDcgQEAKIAkJCQk3NjczNDk5NzE5MzAxNkRDMDBFNDRERjkgLyog
U3RvcExvYWRpbmdEdXJpbmdEaWRGYWlsUHJvdmlzaW9uYWxMb2FkLmNwcCAqLywKIAkJCQk3Njcz
NDk5QTE5MzAxODJFMDBFNDRERjkgLyogU3RvcExvYWRpbmdEdXJpbmdEaWRGYWlsUHJvdmlzaW9u
YWxMb2FkX2J1bmRsZS5jcHAgKi8sCiAJCQkJMUFFNzJGNDcxNzNFQjIxNDAwNjM2MkYwIC8qIFRl
cm1pbmF0ZVR3aWNlLmNwcCAqLywKKwkJCQk1QzcxMDFDNjI1REQ5ODg3MDA2ODYyMDAgLyogdGVz
dF9wcmludC5wZGYgKi8sCiAJCQkJQ0UzNTI0RjExQjE0MkI4RDAwMjhBN0M1IC8qIFRleHRGaWVs
ZERpZEJlZ2luQW5kRW5kRWRpdGluZy5jcHAgKi8sCiAJCQkJQ0UzNTI0RjIxQjE0MkI4RDAwMjhB
N0M1IC8qIFRleHRGaWVsZERpZEJlZ2luQW5kRW5kRWRpdGluZ19CdW5kbGUuY3BwICovLAogCQkJ
CTRBNDEwRjRCMTlBRjdCRDYwMDJFQkFCNSAvKiBVc2VyTWVkaWEuY3BwICovLApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvdGVzdF9wcmludC5wZGYgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC90ZXN0X3ByaW50LnBkZgpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
MzJlZjkwMGNjYzRmMDhjZDBjNjExZWNmMWFlYTA1ZGJmY2Y2OGNjCkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCAyMzc3CnpjbWJWT1pFdz5zNWF0aX5LbHNaODJyPDdUYWF2VU0hJihMZCM9M1NBTkVJ
S2wpRVBsLXlkfn41YDE1ZFFDdV5FPwp6MiQzIT96UHNuJWUwU2NfWTxsYHk5MCVtK0godC0rQjck
O2l1NzhseGhfRzJ7UkArcFViajFKcjhXVDF0YnoqWjwKek9jU2Y9aXxISDVyUWt4dUpQZGluVXZk
N05eT3VDM283TFlYIyQlJDM2KkA7YCVnZHt1eDA8cF5WdzFKRzBqSEIyCnpVQ3teeD03ZkR0SG4w
ZlhxNko0bjZRcVliTEJjKkhfc0pxSF5JSj1XPll+Q1AzVCtXSypPbDNwREh5N2dtTSpsVgp6Tzl0
N2M+YEZnYSVGWj8qY35aWThfNTE3X1ZQN3c8ZjlUWFk8ZTh3dGB3Z3piQURmdU0+Y1VvWklZZUtt
ZSt1LVkKelMrcDZrcVlLXyozbH07U242Q3lSYUVzXkVPYUlHclBvcDxEX15TJCtJU0I0dHVreiU/
SmtUWmpxPVk9P0cjKk9lCnolI3NvVXQ5UGxqRiZPXi0jPD1hb1JCUzxCNWNWLSZLfFdqeHpHMEdA
aWE/dFVAez14Wj8wM3FNVXM8VFc0TURtMwp6dnE1MCE5Zlc4aEUpUEkzPkBHeHdFemxpZFErPVBP
ZGo5VCZyV0Z3b2FkVEhgS3slfU85XndPMTBuYnZDajZAUFkKejR7Xkw/RmFVTktwaW1TeEFqZCs/
S31IYXd2fVh5OWN4VVBJUCUzYSF5SyhKQil6NitRaVZofWRWSl53dGZkc25SCno+IThCODEtbTFG
bFk7PTwjbUhRQUI4SVExVVpvcXRwaSFvVlQqQns9aVN9JSREPE0jT0NTY315KXZyOyVUZ2t5TAp6
IShpZiYtdUJTPVhUNSRHe1BzU2Z3Pj8lR3k+aWRyTT11K3trPklRNjM3ITJ1c3N7fldpfHdeXzZW
dUhrIXJ0cnIKejx+eXtPPGpgR1RAKWIxQmZPRW81YSRDKUdJV2UxQ1EoJl9LZHQlbjZULSt1cDN8
d0Y1QDU8eVNWVUc+UlBWPT5lCnoxN3BjZipEJnA7SXlFWnx7cThAWT5vP0g2ZW9EZUBOVWJTaDxr
Zm1Cd0Q1JTA/V1UtbFRqUjBvYGR1c1V6T2J4Xwp6bzd6bypgUlR0TGdATVl7Tj1ZP1RUMTYzQEpF
NGxRZlZYflBPb2Z8O2RxYyZNOGZePk9JdihKdFNrT19YdnlBZ04KejxYbDB7KURYU3smWlVNbzlH
SjI2Rz0qIUJrc3lPX3F7azhQO0ZkIS0+WUpKTFEwazFwJFFZMl9mbEk7VkFmZyQ0CnpxKURoPXls
Qy1BNjlYODQ5aHdaR3VSQW1keGtwbkclKGFlT2pFVV5oUkcmNyQ2eiQ2aTlgdE8kMEQ+fl8kY2Ru
NQp6U0lENVJGT1gycTljK2p2VGJETk1WdWNLUXhkUGctVyFJS1R6U2dEdGVganV0clM3UE5IcHpj
ISt5ezE2V1FNdlUKVilBd1hqVERNQz1Ean4/eChjNm50QCZ9cXtPaF5DIwoKbGl0ZXJhbCAwCkhj
bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9XS1BERlZpZXcubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29h
L1dLUERGVmlldy5tbQppbmRleCA3MGZjZDdhZWIwODEyNTdlNDZhYWI5MmFkMThmZTIxOTYzZmFh
MGFmLi43MzFkMWVjYzVhNTJiYTg1ZTU4YmY1YmU2YjQyZTIxZWExYjkyMjdkIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQpAQCAt
NDMsNyArNDMsNyBAQAogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShJT1MpIHx8IEVOQUJMRShVSV9QUk9DRVNTX1BERl9IVUQpCisjaWYgUExBVEZPUk0o
SU9TKSB8fCBFTkFCTEUoVUlfUFJPQ0VTU19QREZfSFVEKSB8fCBQTEFURk9STShNQUMpCiBzdGF0
aWMgTlNEYXRhICpwZGZEYXRhKCkKIHsKICAgICByZXR1cm4gW05TRGF0YSBkYXRhV2l0aENvbnRl
bnRzT2ZVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInRlc3QiIHdp
dGhFeHRlbnNpb246QCJwZGYiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2Vz
Il1dOwpAQCAtMzcyLDQgKzM3MiwxMTcgQEAgVEVTVChQREZIVUQsIExvYWRQREZUeXBlV2l0aFBs
dWdpbnNCbG9ja2VkKQogICAgIGNoZWNrRnJhbWUod2ViVmlldy5fcGRmSFVEcy5hbnlPYmplY3Qu
ZnJhbWUsIDAsIDAsIDgwMCwgNjAwKTsKIH0KIAorI2VuZGlmIC8vIEVOQUJMRShVSV9QUk9DRVNT
X1BERl9IVUQpCisKKyNpZiBQTEFURk9STShNQUMpCisKK0BpbnRlcmZhY2UgUHJpbnRVSURlbGVn
YXRlIDogTlNPYmplY3QgPFdLVUlEZWxlZ2F0ZT4KKworLSAoTlNTaXplKXdhaXRGb3JQYWdlU2l6
ZTsKKy0gKF9XS0ZyYW1lSGFuZGxlICopbGFzdFByaW50ZWRGcmFtZTsKKworQGVuZAorCitAaW1w
bGVtZW50YXRpb24gUHJpbnRVSURlbGVnYXRlIHsKKyAgICBOU1NpemUgX3BhZ2VTaXplOworICAg
IGJvb2wgX3JlY2VpdmVkU2l6ZTsKKyAgICBSZXRhaW5QdHI8X1dLRnJhbWVIYW5kbGU+IF9sYXN0
UHJpbnRlZEZyYW1lOworfQorCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHByaW50RnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWUgcGRmRmlyc3RQYWdlU2l6ZTooTlNT
aXplKXNpemUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5k
bGVyCit7CisgICAgX3BhZ2VTaXplID0gc2l6ZTsKKyAgICBfcmVjZWl2ZWRTaXplID0gdHJ1ZTsK
KyAgICBfbGFzdFByaW50ZWRGcmFtZSA9IGZyYW1lOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
Cit9CisKKy0gKE5TU2l6ZSl3YWl0Rm9yUGFnZVNpemUKK3sKKyAgICBfcmVjZWl2ZWRTaXplID0g
ZmFsc2U7CisgICAgd2hpbGUgKCFfcmVjZWl2ZWRTaXplKQorICAgICAgICBUZXN0V2ViS2l0QVBJ
OjpVdGlsOjpzcGluUnVuTG9vcCgpOworICAgIHJldHVybiBfcGFnZVNpemU7Cit9CisKKy0gKF9X
S0ZyYW1lSGFuZGxlICopbGFzdFByaW50ZWRGcmFtZQoreworICAgIHJldHVybiBfbGFzdFByaW50
ZWRGcmFtZS5nZXQoKTsKK30KKworQGVuZAorCitURVNUKFBERiwgUHJpbnRTaXplKQoreworICAg
IGF1dG8gY29uZmlndXJhdGlvbiA9IFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddIGF1dG9y
ZWxlYXNlXTsKKyAgICBhdXRvIHNjaGVtZUhhbmRsZXIgPSBbW1Rlc3RVUkxTY2hlbWVIYW5kbGVy
IG5ld10gYXV0b3JlbGVhc2VdOworICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRs
ZXI6c2NoZW1lSGFuZGxlciBmb3JVUkxTY2hlbWU6QCJ0ZXN0Il07CisgICAgYXV0byB3ZWJWaWV3
ID0gW1tbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAs
IDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb25dIGF1dG9yZWxlYXNlXTsKKyAg
ICBhdXRvIGRlbGVnYXRlID0gW1tQcmludFVJRGVsZWdhdGUgbmV3XSBhdXRvcmVsZWFzZV07Cisg
ICAgd2ViVmlldy5VSURlbGVnYXRlID0gZGVsZWdhdGU7CisKKyAgICBzY2hlbWVIYW5kbGVyLnN0
YXJ0VVJMU2NoZW1lVGFza0hhbmRsZXIgPSBeKFdLV2ViVmlldyAqLCBpZDxXS1VSTFNjaGVtZVRh
c2s+IHRhc2spIHsKKyAgICAgICAgYXV0byB1cmwgPSB0YXNrLnJlcXVlc3QuVVJMOworICAgICAg
ICBOU0RhdGEgKmRhdGE7CisgICAgICAgIE5TU3RyaW5nICptaW1lVHlwZTsKKyAgICAgICAgaWYg
KFt1cmwucGF0aCBpc0VxdWFsVG9TdHJpbmc6QCIvbWFpbi5odG1sIl0pIHsKKyAgICAgICAgICAg
IG1pbWVUeXBlID0gQCJ0ZXh0L2h0bWwiOworICAgICAgICAgICAgY29uc3QgY2hhciogaHRtbCA9
ICI8YnIvPjxpZnJhbWUgc3JjPSd0ZXN0LnBkZicgaWQ9J3BkZmZyYW1lJz48L2lmcmFtZT4iOwor
ICAgICAgICAgICAgZGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhCeXRlczpodG1sIGxlbmd0aDpzdHJs
ZW4oaHRtbCldOworICAgICAgICB9IGVsc2UgaWYgKFt1cmwucGF0aCBpc0VxdWFsVG9TdHJpbmc6
QCIvdGVzdC5wZGYiXSkgeworICAgICAgICAgICAgbWltZVR5cGUgPSBAImFwcGxpY2F0aW9uL3Bk
ZiI7CisgICAgICAgICAgICBkYXRhID0gcGRmRGF0YSgpOworICAgICAgICB9IGVsc2UgeworICAg
ICAgICAgICAgRVhQRUNUX1dLX1NUUkVRKHVybC5wYXRoLCAiL3Rlc3RfcHJpbnQucGRmIik7Cisg
ICAgICAgICAgICBtaW1lVHlwZSA9IEAiYXBwbGljYXRpb24vcGRmIjsKKyAgICAgICAgICAgIGRh
dGEgPSBbTlNEYXRhIGRhdGFXaXRoQ29udGVudHNPZlVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVd
IFVSTEZvclJlc291cmNlOkAidGVzdF9wcmludCIgd2l0aEV4dGVuc2lvbjpAInBkZiIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgICAgIH0KKyAgICAgICAg
TlNVUkxSZXNwb25zZSAqcmVzcG9uc2UgPSBbW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0
aFVSTDp1cmwgTUlNRVR5cGU6bWltZVR5cGUgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOmRhdGEubGVu
Z3RoIHRleHRFbmNvZGluZ05hbWU6bmlsXSBhdXRvcmVsZWFzZV07CisgICAgICAgIFt0YXNrIGRp
ZFJlY2VpdmVSZXNwb25zZTpyZXNwb25zZV07CisgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVEYXRh
OmRhdGFdOworICAgICAgICBbdGFzayBkaWRGaW5pc2hdOworICAgIH07CisKKyAgICBbd2ViVmll
dyBsb2FkUmVxdWVzdDpbTlNVUkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRo
U3RyaW5nOkAidGVzdDovLy90ZXN0X3ByaW50LnBkZiJdXV07CisgICAgYXV0byBzaXplID0gW2Rl
bGVnYXRlIHdhaXRGb3JQYWdlU2l6ZV07CisgICAgRVhQRUNUX0VRKHNpemUuaGVpZ2h0LCA3OTIu
MCk7CisgICAgRVhQRUNUX0VRKHNpemUud2lkdGgsIDYxMi4wKTsKKworICAgIF9fYmxvY2sgYm9v
bCByZWNlaXZlZFNpemUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBfZ2V0UERGRmlyc3RQYWdlU2l6
ZUluRnJhbWU6d2ViVmlldy5fbWFpbkZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOl4oTlNTaXplIHJl
cXVlc3RlZFNpemUpIHsKKyAgICAgICAgRVhQRUNUX0VRKHJlcXVlc3RlZFNpemUuaGVpZ2h0LCA3
OTIuMCk7CisgICAgICAgIEVYUEVDVF9FUShyZXF1ZXN0ZWRTaXplLndpZHRoLCA2MTIuMCk7Cisg
ICAgICAgIHJlY2VpdmVkU2l6ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZyZWNlaXZlZFNpemUpOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Q6Ly8v
bWFpbi5odG1sIl1dXTsKKyAgICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdh
dGlvbl07CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93LnByaW50KCki
IGNvbXBsZXRpb25IYW5kbGVyOm5pbF07CisgICAgYXV0byBtYWluRnJhbWVTaXplID0gW2RlbGVn
YXRlIHdhaXRGb3JQYWdlU2l6ZV07CisgICAgRVhQRUNUX0VRKG1haW5GcmFtZVNpemUuaGVpZ2h0
LCAwLjApOworICAgIEVYUEVDVF9FUShtYWluRnJhbWVTaXplLndpZHRoLCAwLjApOworICAgIAor
ICAgIHJlY2VpdmVkU2l6ZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IF9nZXRQREZGaXJzdFBhZ2VT
aXplSW5GcmFtZTp3ZWJWaWV3Ll9tYWluRnJhbWUgY29tcGxldGlvbkhhbmRsZXI6XihOU1NpemUg
cmVxdWVzdGVkU2l6ZSkgeworICAgICAgICBFWFBFQ1RfRVEocmVxdWVzdGVkU2l6ZS5oZWlnaHQs
IDAuMCk7CisgICAgICAgIEVYUEVDVF9FUShyZXF1ZXN0ZWRTaXplLndpZHRoLCAwLjApOworICAg
ICAgICByZWNlaXZlZFNpemUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmcmVjZWl2ZWRTaXplKTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlw
dDpAInBkZmZyYW1lLmNvbnRlbnRXaW5kb3cucHJpbnQoKSIgY29tcGxldGlvbkhhbmRsZXI6bmls
XTsKKyAgICBhdXRvIHBkZkZyYW1lU2l6ZSA9IFtkZWxlZ2F0ZSB3YWl0Rm9yUGFnZVNpemVdOwor
ICAgIEVYUEVDVF9ORUFSKHBkZkZyYW1lU2l6ZS5oZWlnaHQsIDI4Ljc5OTk5OSwgLjAwMDAxKTsK
KyAgICBFWFBFQ1RfTkVBUihwZGZGcmFtZVNpemUud2lkdGgsIDEyOS42MDAwMDYsIC4wMDAwMSk7
CisKKyAgICByZWNlaXZlZFNpemUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBfZ2V0UERGRmlyc3RQ
YWdlU2l6ZUluRnJhbWU6ZGVsZWdhdGUubGFzdFByaW50ZWRGcmFtZSBjb21wbGV0aW9uSGFuZGxl
cjpeKE5TU2l6ZSByZXF1ZXN0ZWRTaXplKSB7CisgICAgICAgIEVYUEVDVF9ORUFSKHJlcXVlc3Rl
ZFNpemUuaGVpZ2h0LCAyOC43OTk5OTksIC4wMDAwMSk7CisgICAgICAgIEVYUEVDVF9ORUFSKHJl
cXVlc3RlZFNpemUud2lkdGgsIDEyOS42MDAwMDYsIC4wMDAwMSk7CisgICAgICAgIHJlY2VpdmVk
U2l6ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNl
aXZlZFNpemUpOworfQorCiAjZW5kaWYK
</data>
<flag name="commit-queue"
          id="439347"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420717</attachid>
            <date>2021-02-17 14:25:21 -0800</date>
            <delta_ts>2021-02-17 14:54:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222064-20210217142520.patch</filename>
            <type>text/plain</type>
            <size>40245</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyOTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGViYjNkMzE1ODA5OTc2Yzhk
Y2JkNDZjYzBhNDAwOTM4M2Q1NjNjM2EuLmM2NmI4OWU4M2NjY2FiMGI1ZDI2MDlmMmRlY2UxYjNi
MzIxNmNiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjEtMDItMTcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgU1BJIGZv
ciBnZXR0aW5nIHNpemUgb2YgUERGIGRvY3VtZW50IGR1cmluZyBwcmludGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMDY0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83NDM3MDg5MT4KKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJl
biBhbmQgVGltIEhvcnRvbi4KKworICAgICAgICBXaGVuIHByaW50aW5nIGEgUERGLCB3ZSB3YW50
IHRvIGtub3cgaXRzIHBhZ2Ugc2l6ZS4gIElmIHRoZSBwcmludCBpcyBpbml0aWF0ZWQgYnkgdGhl
IHdlYiBwcm9jZXNzIChzdWNoIGFzIHdoZW4gd2luZG93LnByaW50IGlzIGNhbGxlZAorICAgICAg
ICBvciBpZiB0aGUgUERGIGNvbnRhaW5zIEphdmFTY3JpcHQgdGhhdCB0ZWxscyB0aGUgYnJvd3Nl
ciB0byBwcmludCBpdCkgdGhlbiB3ZSB3b3VsZCBsaWtlIHRoYXQgaW5mb3JtYXRpb24gd2l0aCB0
aGUgcHJpbnQgcmVxdWVzdCBzbyB3ZQorICAgICAgICBkb24ndCBoYXZlIHRvIGFzayB0aGUgd2Vi
IHByb2Nlc3MsIHdoaWNoIGlzIGh1bmcgd2FpdGluZyBmb3IgYSBzeW5jaHJvbm91cyBtZXNzYWdl
IHJlcGx5LiAgSWYgdGhlIHByaW50IGlzIGluaXRpYXRlZCBieSB0aGUgVUkgcHJvY2VzcworICAg
ICAgICAoc3VjaCBhcyBpZiB0aGUgdXNlciBwcmludHMgZnJvbSBhIG1lbnUgb3Iga2V5Ym9hcmQg
c2hvcnRjdXQpIHRoZW4gd2UgbmVlZCBhIHdheSB0byBhc2sgd2hhdCB0aGUgc2l6ZSBvZiBhIFBE
RiBpcy4KKworICAgICAgICBJIHJldXNlZCB0aGUgU1BJIGluIFdLVUlEZWxlZ2F0ZVByaXZhdGUg
YmVjYXVzZSBpdCB3YXMgb25seSBicmllZmx5IGFkb3B0ZWQgYmVmb3JlIHdlIGtuZXcgd2UgbmVl
ZGVkIHRoaXMgYW5kIHRoZW4gcmV2ZXJ0ZWQuCisgICAgICAgIEknbSBhbHNvIGFkZGluZyBhbiBT
UEkgd2F5IHRvIGdldCBmcm9tIGEgV0tQYWdlUmVmIHRvIGEgV0tXZWJWaWV3IHNvIHRoaXMgY2Fu
IGJlIGFkb3B0ZWQgd2l0aG91dCByZWRvaW5nIGFsbCBvZiBTYWZhcmkuCisKKyAgICAgICAgQ292
ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpwcmludEZyYW1lKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dL
V2ViVmlldyBfZ2V0UERGRmlyc3RQYWdlU2l6ZUluRnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6XSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6c2V0RGVs
ZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6cHJpbnRGcmFt
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cHJpbnRGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6Z2V0UERGRmlyc3RQYWdlU2l6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERG
UGx1Z2luOjpwZGZEb2N1bWVudFNpemVGb3JQcmludGluZyBjb25zdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbjo6cGRm
RG9jdW1lbnRTaXplRm9yUHJpbnRpbmcgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW4uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cHJpbnQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFBERkZpcnN0UGFnZVNpemUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6Z2V0UERGRmlyc3RQYWdlU2l6ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bjoKKwogMjAyMS0wMi0xNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIEFkZCBBUEkgdG8gZGlzYWJsZSBIVFRQUyB1cGdyYWRlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDE2MzY3ZTZjYWM4MjVhYTlj
NzRmYjRjNDg0M2RkMmYxZmYxZGFkMzguLjdjZWJlMmZhYmFkNWIzMzVlYjM2MmEzMjdlYjM0NGFl
ODJkYmU2NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBA
IC0xNDUsNyArMTQ1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgZmxvYXQgZm9vdGVySGVpZ2h0
KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JikgeyByZXR1cm4g
MDsgfQogICAgIHZpcnR1YWwgdm9pZCBkcmF3SGVhZGVyKFdlYktpdDo6V2ViUGFnZVByb3h5Jiwg
V2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgV2ViQ29yZTo6RmxvYXRSZWN0JiYpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBkcmF3Rm9vdGVyKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJG
cmFtZVByb3h5JiwgV2ViQ29yZTo6RmxvYXRSZWN0JiYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBw
cmludEZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5Jiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRp
b25IYW5kbGVyKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcHJpbnRGcmFtZShXZWJLaXQ6OldlYlBh
Z2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgcGRmRmlyc3RQYWdlU2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKCk7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBj
YW5SdW5Nb2RhbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHJ1
bk1vZGFsKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcAppbmRleCA2MmE1NGI3NDZjM2FiMmYxYWIzMmNlZDcxNDY0YzRjNGRk
ZjFlOWQ2Li40NmFlNzk2MTA2ZGEyN2IyZWIxYmNmNWRiM2U3YmYyYjk0ODExNzlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTE5NzEsNyArMTk3MSw3IEBA
IHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1Bh
Z2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAgICAgICAgICAgICBtX2NsaWVudC5kcmF3Rm9vdGVy
KHRvQVBJKCZwYWdlKSwgdG9BUEkoJmZyYW1lKSwgdG9BUEkocmVjdCksIG1fY2xpZW50LmJhc2Uu
Y2xpZW50SW5mbyk7CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIHByaW50RnJhbWUoV2ViUGFn
ZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgICAgICB2b2lkIHByaW50RnJhbWUo
V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAobV9jbGllbnQucHJpbnRGcmFtZSkK
ICAgICAgICAgICAgICAgICBtX2NsaWVudC5wcmludEZyYW1lKHRvQVBJKCZwYWdlKSwgdG9BUEko
JmZyYW1lKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5oCmluZGV4IGM4M2EyMGQz
ODAxN2NlODE0Y2FmMmQzYWEzMTk0NTk2OThjZTcxMDAuLjQ4ODljYmQ2MDUyOGZkOTVmOGUyZTNl
NzNkNWM5Mzk2YmVlZGU5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaApAQCAtMzUsNiArMzUsNyBAQCBleHRlcm4gIkMi
IHsKIAogI2lmZGVmIF9fT0JKQ19fCiAKK0BjbGFzcyBXS1dlYlZpZXc7CiBAY2xhc3MgX1dLUmVt
b3RlT2JqZWN0UmVnaXN0cnk7CiAKIEBwcm90b2NvbCBfV0tPYnNlcnZhYmxlUGFnZVN0YXRlCkBA
IC02Myw2ICs2NCw4IEBAIFdLX0VYUE9SVCBpZCA8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBXS1Bh
Z2VHZXRGdWxsc2NyZWVuRGVsZWdhdGUoV0tQYWdlUmVmIHBhZ2UpCiBXS19FWFBPUlQgV0tOYXZp
Z2F0aW9uICpXS1BhZ2VMb2FkVVJMUmVxdWVzdFJldHVybmluZ05hdmlnYXRpb24oV0tQYWdlUmVm
IHBhZ2UsIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0KTsKIFdLX0VYUE9SVCBXS05hdmlnYXRpb24g
KldLUGFnZUxvYWRGaWxlUmV0dXJuaW5nTmF2aWdhdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tVUkxS
ZWYgZmlsZVVSTCwgV0tVUkxSZWYgcmVzb3VyY2VEaXJlY3RvcnlVUkwpOwogCitXS19FWFBPUlQg
V0tXZWJWaWV3ICpXS1BhZ2VHZXRXZWJWaWV3KFdLUGFnZVJlZiBwYWdlKTsKKwogI2VuZGlmIC8v
IF9fT0JKQ19fCiAKIFdLX0VYUE9SVCBib29sIFdLUGFnZUlzVVJMS25vd25IU1RTSG9zdChXS1Bh
Z2VSZWYgcGFnZSwgV0tVUkxSZWYgdXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMubW0KaW5kZXggMTczOThlY2U4MjJlY2Zk
YmQwMWZjMjEzMTYwNWU1MzNhNzg3NzNmMi4uOWJlMzAyZGQyN2UxZTUzZjI0YzI1ZGZjOTViMjUx
MDAyZThmNGY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvbWFj
L1dLUGFnZVByaXZhdGVNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
bWFjL1dLUGFnZVByaXZhdGVNYWMubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIldLTlNV
UkxFeHRyYXMuaCIKICNpbXBvcnQgIldLTmF2aWdhdGlvbkludGVybmFsLmgiCiAjaW1wb3J0ICJX
S1ZpZXdJbnRlcm5hbC5oIgorI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQg
IldlYlBhZ2VHcm91cC5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQ
cmVmZXJlbmNlcy5oIgpAQCAtMTQ3LDYgKzE0OCwxMyBAQCBXS05hdmlnYXRpb24gKldLUGFnZUxv
YWRGaWxlUmV0dXJuaW5nTmF2aWdhdGlvbihXS1BhZ2VSZWYgcGFnZVJlZiwgV0tVUkxSZWYgZmls
ZQogICAgIHJldHVybiBXZWJLaXQ6OndyYXBwZXIoV2ViS2l0Ojp0b0ltcGwocGFnZVJlZiktPmxv
YWRGaWxlKFdlYktpdDo6dG9XVEZTdHJpbmcoZmlsZVVSTCksIFdlYktpdDo6dG9XVEZTdHJpbmco
cmVzb3VyY2VEaXJlY3RvcnlVUkwpKSk7CiB9CiAKK1dLV2ViVmlldyAqV0tQYWdlR2V0V2ViVmll
dyhXS1BhZ2VSZWYgcGFnZSkKK3sKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBuaWw7
CisgICAgcmV0dXJuIGZyb21XZWJQYWdlUHJveHkoKldlYktpdDo6dG9JbXBsKHBhZ2UpKTsKK30K
KwogI2lmIFBMQVRGT1JNKE1BQykKIGJvb2wgV0tQYWdlSXNQbGF5aW5nVmlkZW9JbkVuaGFuY2Vk
RnVsbHNjcmVlbihXS1BhZ2VSZWYgcGFnZVJlZikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDkxYmVl
MzRlZDBiNjM5ODBiNTVhMWFhYmFhYTg4YjkyODA0MzNjNDQuLjBjM2U1OGQ1MDMzODNiZGNhNzRl
NGQ3N2UwM2RhOTgzNTQzZGYwZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtMTA3LDcgKzEwNyw3IEBA
IHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGRlY2lkZVdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YUZvclNlY3VyaXR5T3JpZ2luOihXS1Nl
Y3VyaXR5T3JpZ2luICopc2VjdXJpdHlPcmlnaW4gY3VycmVudFF1b3RhOih1bnNpZ25lZCBsb25n
IGxvbmcpY3VycmVudFF1b3RhIHRvdGFsQnl0ZXNOZWVkZWQ6KHVuc2lnbmVkIGxvbmcgbG9uZyl0
b3RhbEJ5dGVzTmVlZGVkIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikodW5zaWduZWQgbG9uZyBs
b25nIG5ld1F1b3RhKSlkZWNpc2lvbkhhbmRsZXI7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgcHJpbnRGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZTsKLS0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJpbnRGcmFtZTooX1dLRnJhbWVIYW5k
bGUgKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKKy0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJpbnRGcmFtZTooX1dLRnJhbWVIYW5kbGUg
KilmcmFtZSBwZGZGaXJzdFBhZ2VTaXplOihDR1NpemUpc2l6ZSBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfd2ViVmlld0Nsb3NlOihX
S1dlYlZpZXcgKil3ZWJWaWV3OwogLSAodm9pZClfd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5U
b0lubGluZTooV0tXZWJWaWV3ICopd2ViVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDQ5NDYxNmU5MjYwNGZkYzY5M2Q0NWExYjlm
ZmJlYjlhMWFkZmJlMzQuLjg0ZTMwN2VhZDlkNTRlMDg1NWE1OWQ3N2U3N2RjZDNhN2I4OWI5YWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpA
QCAtMjIzOSw2ICsyMjM5LDEzIEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gd2tUZXh0TWFu
aXB1bGF0aW9uRXJyb3JzKE5TQXJyYXk8X1dLVGV4dE1hbmlwdWxhdGlvbkl0CiAgICAgW3NlbGYg
Y3JlYXRlUERGV2l0aENvbmZpZ3VyYXRpb246cGRmQ29uZmlndXJhdGlvbiBjb21wbGV0aW9uSGFu
ZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAKKy0gKHZvaWQpX2dldFBERkZpcnN0UGFnZVNp
emVJbkZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
KF4pKENHU2l6ZSkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfcGFnZS0+Z2V0UERGRmlyc3RQ
YWdlU2l6ZShmcmFtZS0+X2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCksIFtjb21wbGV0aW9uSGFuZGxl
ciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKFdlYkNvcmU6OkZsb2F0U2l6ZSBz
aXplKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0YXRpY19jYXN0PENHU2l6ZT4oc2l6
ZSkpOworICAgIH0pOworfQorCiAtIChOU0RhdGEgKilfc2Vzc2lvblN0YXRlRGF0YQogewogICAg
IC8vIEZJWE1FOiBUaGlzIHNob3VsZCBub3QgdXNlIHRoZSBsZWdhY3kgc2Vzc2lvbiBzdGF0ZSBl
bmNvZGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmgKaW5kZXggOTI2MjM4YWVhMGExNDc2MTE4ZTVhNjkwODU0N2FkNzljM2Y0
NTRkMS4uYzc4Y2E4ZWQ2NTZhOGU4NzFkZDZjMDM1NDAwMjk3MTU1YzVhN2UxNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
CkBAIC0zNTAsNiArMzUwLDcgQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAtICh2b2lkKV9jbG9zZUFs
bE1lZGlhUHJlc2VudGF0aW9uczsKIAogLSAodm9pZClfdGFrZVBERlNuYXBzaG90V2l0aENvbmZp
Z3VyYXRpb246KFdLU25hcHNob3RDb25maWd1cmF0aW9uICopc25hcHNob3RDb25maWd1cmF0aW9u
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0RhdGEgKnBkZlNuYXBzaG90RGF0YSwgTlNF
cnJvciAqZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTUuNCksIGlvcygxMy40KSk7CistICh2b2lkKV9nZXRQREZGaXJzdFBhZ2VTaXplSW5GcmFtZToo
X1dLRnJhbWVIYW5kbGUgKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShDR1NpemUp
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX2dldFByb2Nlc3NEaXNwbGF5TmFtZVdpdGhDb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKikpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5oCmluZGV4IDg1OTVmMjBlNDFjNmZjMzEzYTQzZmI4
MmNkMDliZjkyZTVhZTY5NWIuLjkwOWQ5MjAwNTgwY2U1NTFlMzZjNzE5OTdjZWM3MmNhMzg0NDY1
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKQEAgLTEz
Nyw3ICsxMzcsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmLCBBUEk6
OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0UHJveHkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBjaGVja1VzZXJNZWRpYVBlcm1p
c3Npb25Gb3JPcmlnaW4oV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIEFQSTo6U2VjdXJp
dHlPcmlnaW4mLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNr
UHJveHkmKSBmaW5hbDsKICAgICAgICAgdm9pZCBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShX
ZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIGZpbmFsOwotICAgICAgICB2
b2lkIHByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJikgZmluYWw7CisgICAgICAgIHZvaWQgcHJpbnRGcmFtZShXZWJQYWdl
UHJveHkmLCBXZWJGcmFtZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiBwZGZGaXJz
dFBhZ2VTaXplLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOwogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAjaWYgSEFWRShBUFBfTElOS1MpCiAgICAgICAgIGJvb2wgc2hvdWxk
SW5jbHVkZUFwcExpbmtBY3Rpb25zRm9yRWxlbWVudChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAq
KSBmaW5hbDsKQEAgLTIxNyw3ICsyMTcsNyBAQCBwcml2YXRlOgogICAgICAgICBib29sIHdlYlZp
ZXdEZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5EYXRhYmFzZU5hbWVEaXNwbGF5
TmFtZUN1cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5Vc2FnZUN1cnJlbnREYXRhYmFzZVVzYWdlRXhw
ZWN0ZWRVc2FnZURlY2lzaW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RlY2lk
ZVdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YUZvclNlY3VyaXR5T3JpZ2luQ3VycmVudFF1b3RhVG90
YWxCeXRlc05lZWRlZCA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld1ByaW50RnJhbWUgOiAxOwot
ICAgICAgICBib29sIHdlYlZpZXdQcmludEZyYW1lQ29tcGxldGlvbkhhbmRsZXIgOiAxOworICAg
ICAgICBib29sIHdlYlZpZXdQcmludEZyYW1lUERGRmlyc3RQYWdlU2l6ZUNvbXBsZXRpb25IYW5k
bGVyIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3RGlkQ2xvc2UgOiAxOwogICAgICAgICBib29s
IHdlYlZpZXdDbG9zZSA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1
cm5Ub0lubGluZSA6IDE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9VSURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbQppbmRleCA5MTE5NTYwMzY4NjlhZDllM2U2OGI4OWMxYzJlYzM5NmEyY2MyOTc0Li4yZWI0
NjVmZGZkMTUyNjRlMjkyNzA5MjYwMjQ3YTMzNzA3ZDRmNjMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTE0NCw3ICsxNDQsNyBAQCB2b2lkIFVJ
RGVsZWdhdGU6OnNldERlbGVnYXRlKGlkIDxXS1VJRGVsZWdhdGU+IGRlbGVnYXRlKQogICAgIG1f
ZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmln
aW5EYXRhYmFzZU5hbWVEaXNwbGF5TmFtZUN1cnJlbnRRdW90YUN1cnJlbnRPcmlnaW5Vc2FnZUN1
cnJlbnREYXRhYmFzZVVzYWdlRXhwZWN0ZWRVc2FnZURlY2lzaW9uSGFuZGxlciA9IFtkZWxlZ2F0
ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZURhdGFiYXNlUXVv
dGFGb3JTZWN1cml0eU9yaWdpbjpkYXRhYmFzZU5hbWU6ZGlzcGxheU5hbWU6Y3VycmVudFF1b3Rh
OmN1cnJlbnRPcmlnaW5Vc2FnZTpjdXJyZW50RGF0YWJhc2VVc2FnZTpleHBlY3RlZFVzYWdlOmRl
Y2lzaW9uSGFuZGxlcjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlV2Vi
QXBwbGljYXRpb25DYWNoZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW5DdXJyZW50UXVvdGFUb3RhbEJ5
dGVzTmVlZGVkID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZp
ZXc6ZGVjaWRlV2ViQXBwbGljYXRpb25DYWNoZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46Y3VycmVu
dFF1b3RhOnRvdGFsQnl0ZXNOZWVkZWQ6ZGVjaXNpb25IYW5kbGVyOildOwogICAgIG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdQcmludEZyYW1lID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3dlYlZpZXc6cHJpbnRGcmFtZTopXTsKLSAgICBtX2RlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3UHJpbnRGcmFtZUNvbXBsZXRpb25IYW5kbGVyID0gW2RlbGVnYXRlIHJlc3BvbmRz
VG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cHJpbnRGcmFtZTpjb21wbGV0aW9uSGFuZGxl
cjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UHJpbnRGcmFtZVBERkZpcnN0UGFn
ZVNpemVDb21wbGV0aW9uSGFuZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OnByaW50RnJhbWU6cGRmRmlyc3RQYWdlU2l6ZTpjb21wbGV0aW9uSGFu
ZGxlcjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkQ2xvc2UgPSBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3RGlkQ2xvc2U6KV07CiAgICAg
bV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Nsb3NlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdDbG9zZTopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53
ZWJWaWV3RnVsbHNjcmVlbk1heVJldHVyblRvSW5saW5lID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU6KV07
CkBAIC0xMTkzLDcgKzExOTMsNyBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50OjpyZWFjaGVk
QXBwbGljYXRpb25DYWNoZU9yaWdpblF1b3RhKFdlYlBhZ2VQcm94eSosIGNvbgogICAgIH0pLmdl
dCgpXTsKIH0KIAotdm9pZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cHJpbnRGcmFtZShXZWJQYWdl
UHJveHkmLCBXZWJGcmFtZVByb3h5JiB3ZWJGcmFtZVByb3h5LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpw
cmludEZyYW1lKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmIHdlYkZyYW1lUHJveHksIGNv
bnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYgcGRmRmlyc3RQYWdlU2l6ZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV91aURlbGVnYXRl
KQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKQEAgLTEyMDMsOSArMTIwMyw5
IEBAIHZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OnByaW50RnJhbWUoV2ViUGFnZVByb3h5Jiwg
V2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQcm94CiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcigpOwogCiAgICAgYXV0byBoYW5kbGUgPSBBUEk6OkZyYW1lSGFuZGxlOjpjcmVhdGUod2Vi
RnJhbWVQcm94eS5mcmFtZUlEKCkpOwotICAgIGlmIChtX3VpRGVsZWdhdGUtPm1fZGVsZWdhdGVN
ZXRob2RzLndlYlZpZXdQcmludEZyYW1lQ29tcGxldGlvbkhhbmRsZXIpIHsKLSAgICAgICAgYXV0
byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRlbGVnYXRl
LmdldCgpLCBAc2VsZWN0b3IoX3dlYlZpZXc6cHJpbnRGcmFtZTpjb21wbGV0aW9uSGFuZGxlcjop
KTsKLSAgICAgICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6
bV91aURlbGVnYXRlLT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCkgcHJpbnRGcmFtZTp3cmFwcGVyKGhh
bmRsZSkgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtjaGVja2VyID0gV1RGTW92ZShj
aGVja2VyKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0g
KCkgbXV0YWJsZSB7CisgICAgaWYgKG1fdWlEZWxlZ2F0ZS0+bV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld1ByaW50RnJhbWVQREZGaXJzdFBhZ2VTaXplQ29tcGxldGlvbkhhbmRsZXIpIHsKKyAgICAg
ICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlcjo6Y3JlYXRlKGRl
bGVnYXRlLmdldCgpLCBAc2VsZWN0b3IoX3dlYlZpZXc6cHJpbnRGcmFtZTpwZGZGaXJzdFBhZ2VT
aXplOmNvbXBsZXRpb25IYW5kbGVyOikpOworICAgICAgICBbKGlkIDxXS1VJRGVsZWdhdGVQcml2
YXRlPilkZWxlZ2F0ZSBfd2ViVmlldzptX3VpRGVsZWdhdGUtPm1fd2ViVmlldy5nZXQoKS5nZXQo
KSBwcmludEZyYW1lOndyYXBwZXIoaGFuZGxlKSBwZGZGaXJzdFBhZ2VTaXplOnN0YXRpY19jYXN0
PENHU2l6ZT4ocGRmRmlyc3RQYWdlU2l6ZSkgY29tcGxldGlvbkhhbmRsZXI6bWFrZUJsb2NrUHRy
KFtjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoY2hlY2tl
ci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCiAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA5NzRmYWEwODg3MDYz
ZjVkMTdmZDI4ZDM5Yjg1NjdmMTA1ZmUxMDYyLi41MWU5Y2IzNDEwZTE0N2I3ZDc3N2Q2ZjY5OWIx
NDIzNDI1MjUzMjIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTU4NjksNyArNTg2OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93Q29udGFjdFBpY2tl
cihjb25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJiByZXF1ZXN0CiAgICAgcGFnZUNs
aWVudCgpLnNob3dDb250YWN0UGlja2VyKHJlcXVlc3REYXRhLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CiB9CiAgICAgCi12b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGcmFtZShGcmFtZUlk
ZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJQYWdlUHJveHk6OnByaW50RnJh
bWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0bGUsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYgcGRmRmlyc3RQYWdlU2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghbV9pc1BlcmZvcm1pbmdE
T01QcmludE9wZXJhdGlvbik7CiAgICAgbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbiA9
IHRydWU7CkBAIC01ODc5LDcgKzU4NzksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cHJpbnRGcmFt
ZShGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiB0aXRsZSwgQ29tcAogCiAg
ICAgZnJhbWUtPmRpZENoYW5nZVRpdGxlKHRpdGxlKTsKIAotICAgIG1fdWlDbGllbnQtPnByaW50
RnJhbWUoKnRoaXMsICpmcmFtZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKCkgbXV0
YWJsZSB7CisgICAgbV91aUNsaWVudC0+cHJpbnRGcmFtZSgqdGhpcywgKmZyYW1lLCBwZGZGaXJz
dFBhZ2VTaXplLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAg
ICAgICAgZW5kUHJpbnRpbmcoKTsgLy8gU2VuZCBhIG1lc3NhZ2Ugc3luY2hyb25vdXNseSB3aGls
ZSBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9uIGlzIHN0aWxsIHRydWUuCiAgICAgICAg
IG1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24gPSBmYWxzZTsKICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKQEAgLTg0NDEsNiArODQ0MSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZHJhd1RvUERGKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBPcHRpb25hbDxGbG9hdFJl
Y3Q+JgogfQogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCit2b2lkIFdlYlBhZ2VQcm94eTo6
Z2V0UERGRmlyc3RQYWdlU2l6ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpGbG9hdFNpemUpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6R2V0UERG
Rmlyc3RQYWdlU2l6ZShmcmFtZUlEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworfQor
CiB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlQmFja2luZ1N0b3JlRGlzY2FyZGFibGVTdGF0ZSgp
CiB7CiAgICAgQVNTRVJUKGhhc1J1bm5pbmdQcm9jZXNzKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAppbmRleCAzMTRkYTM1NGE3NGNiMTllY2E0MTdjNDRlNjg5NDhkOTBk
YmFiNzM4Li44YWQxM2I2Mzg3NGU0OTRkZWZmNDVhOWU2ODNiMTkzMmUxMDJiMzhmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTI4Myw2ICsxMjgzLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgYmVnaW5QcmludGluZyhXZWJGcmFtZVByb3h5KiwgY29uc3QgUHJpbnRJ
bmZvJik7CiAgICAgdm9pZCBlbmRQcmludGluZygpOwogICAgIHVpbnQ2NF90IGNvbXB1dGVQYWdl
c0ZvclByaW50aW5nKFdlYkZyYW1lUHJveHkqLCBjb25zdCBQcmludEluZm8mLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpJbnRSZWN0PiYsIGRvdWJsZSwgY29u
c3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmKT4mJik7CisgICAgdm9pZCBnZXRQREZGaXJzdFBh
Z2VTaXplKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChX
ZWJDb3JlOjpGbG9hdFNpemUpPiYmKTsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB1aW50NjRf
dCBkcmF3UmVjdFRvSW1hZ2UoV2ViRnJhbWVQcm94eSosIGNvbnN0IFByaW50SW5mbyYsIGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChjb25zdCBXZWJLaXQ6OlNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJik+JiYpOwog
ICAgIHVpbnQ2NF90IGRyYXdQYWdlc1RvUERGKFdlYkZyYW1lUHJveHkqLCBjb25zdCBQcmludElu
Zm8mLCB1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgY291bnQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoQVBJOjpEYXRhKik+JiYpOwpAQCAtMTk3OCw3ICsxOTc5LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIGRpZENob29zZUZpbGVzRm9yT3BlblBhbmVsV2l0aEltYWdlVHJhbnNjb2RpbmcoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGZpbGVVUkxzLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWxsb3dlZE1J
TUVUeXBlcyk7CiAgICAgdm9pZCBzaG93U2hhcmVTaGVldChjb25zdCBXZWJDb3JlOjpTaGFyZURh
dGFXaXRoUGFyc2VkVVJMJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAg
dm9pZCBzaG93Q29udGFjdFBpY2tlcihjb25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRh
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFj
dEluZm8+PiYmKT4mJik7Ci0gICAgdm9pZCBwcmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2
b2lkIHByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmLCBj
b25zdCBXZWJDb3JlOjpGbG9hdFNpemUmLCAgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgb3JpZ2luSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5h
bWUsIGNvbnN0IFN0cmluZyYgZGlzcGxheU5hbWUsIHVpbnQ2NF90IGN1cnJlbnRRdW90YSwgdWlu
dDY0X3QgY3VycmVudE9yaWdpblVzYWdlLCB1aW50NjRfdCBjdXJyZW50RGF0YWJhc2VVc2FnZSwg
dWludDY0X3QgZXhwZWN0ZWRVc2FnZSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhjZWVkZWRE
YXRhYmFzZVF1b3RhRGVsYXllZFJlcGx5JiYpOwogICAgIHZvaWQgcmVhY2hlZEFwcGxpY2F0aW9u
Q2FjaGVPcmlnaW5RdW90YShjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIHVpbnQ2NF90
IGN1cnJlbnRRdW90YSwgdWludDY0X3QgdG90YWxCeXRlc05lZWRlZCwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6UmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YURlbGF5ZWRSZXBseSYm
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IDA1YmYyMWJmZmI3ZDdjZTlkMGIxMDQyMDI3OWU3OWU4ZTE4MGU1ZDQuLmMxNDBj
MzhkZjliNDliYmM2ODJiZGNjYWQ0YjEzOTg5MmI4YTU0OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTcwLDcgKzcwLDcgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBSdW5PcGVuUGFuZWwoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJ
bmZvLCBzdHJ1Y3QgV2ViQ29yZTo6RmlsZUNob29zZXJTZXR0aW5ncyBwYXJhbWV0ZXJzKQogICAg
IFNob3dTaGFyZVNoZWV0KHN0cnVjdCBXZWJDb3JlOjpTaGFyZURhdGFXaXRoUGFyc2VkVVJMIHNo
YXJlRGF0YSkgLT4gKGJvb2wgZ3JhbnRlZCkgQXN5bmMKICAgICBTaG93Q29udGFjdFBpY2tlcihz
dHJ1Y3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSByZXF1ZXN0RGF0YSkgLT4gKE9wdGlv
bmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+IGluZm8pIEFzeW5jCi0gICAgUHJpbnRG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgU3RyaW5nIHRpdGxlKSAtPiAo
KSBTeW5jaHJvbm91cworICAgIFByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFN0cmluZyB0aXRsZSwgV2ViQ29yZTo6RmxvYXRTaXplIHBkZkZpcnN0UGFnZVNpemUp
IC0+ICgpIFN5bmNocm9ub3VzCiAgICAgUnVuTW9kYWwoKQogICAgIE5vdGlmeVNjcm9sbGVyVGh1
bWJJc1Zpc2libGVJblJlY3QoV2ViQ29yZTo6SW50UmVjdCBzY3JvbGxlclRodW1iKQogICAgIFJl
Y29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UoaW50MzJfdCBuZXdTdHlsZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaAppbmRleCBi
YTdhMTg3NmIxZmIwNjM5MjVhNDBiYTdlZDBiM2FkNjk1YWY0ZjNjLi5mMDdiNzhlZWU4OGRiNDAx
ZWMwNzkyNzI3OTRmYTU2YWVmMmM1NTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCkBAIC0yMTMsNiArMjEzLDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIHBsdWdpbkhhbmRsZXNDb250ZW50T2Zmc2V0Rm9yQWNjZXNzaWJpbGl0eUhpdFRl
c3QoKSBjb25zdCBmaW5hbDsKICAgICAKICAgICBSZXRhaW5QdHI8UERGRG9jdW1lbnQ+IHBkZkRv
Y3VtZW50Rm9yUHJpbnRpbmcoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3BkZkRvY3VtZW50OyB9
CisgICAgV2ViQ29yZTo6RmxvYXRTaXplIHBkZkRvY3VtZW50U2l6ZUZvclByaW50aW5nKCkgY29u
c3QgZmluYWw7CiAgICAgTlNPYmplY3QgKmFjY2Vzc2liaWxpdHlPYmplY3QoKSBjb25zdCBmaW5h
bDsKICAgICBpZCBhY2Nlc3NpYmlsaXR5QXNzb2NpYXRlZFBsdWdpblBhcmVudEZvckVsZW1lbnQo
V2ViQ29yZTo6RWxlbWVudCopIGNvbnN0IGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQppbmRleCAyYWQ0NWM1MWMyMTRhMzlj
NGZmYjc3YzZjOWI4YmIzNDJmYzZhYmY0Li4yNDgwMGY2YzU5MzU0ZWE1ZjVhYjU4NGQ5NmI4MTZh
NzRkZTZjYzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BE
Ri9QREZQbHVnaW4ubW0KQEAgLTE1NTAsNiArMTU1MCwxMSBAQCBKU1ZhbHVlUmVmIFBERlBsdWdp
bjo6anNQREZEb2NQcmludChKU0NvbnRleHRSZWYgY3R4LCBKU09iamVjdFJlZiBmdW5jdGlvbiwg
SlNPYgogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjdHgpOwogfQogCitGbG9hdFNp
emUgUERGUGx1Z2luOjpwZGZEb2N1bWVudFNpemVGb3JQcmludGluZygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIEZsb2F0U2l6ZShbW21fcGRmRG9jdW1lbnQgcGFnZUF0SW5kZXg6MF0gYm91bmRzRm9y
Qm94OmtQREZEaXNwbGF5Qm94Q3JvcEJveF0uc2l6ZSk7Cit9CisKIEpTT2JqZWN0UmVmIFBERlBs
dWdpbjo6bWFrZUpTUERGRG9jKEpTQ29udGV4dFJlZiBjdHgpCiB7CiAgICAgc3RhdGljIEpTU3Rh
dGljRnVuY3Rpb24ganNQREZEb2NTdGF0aWNGdW5jdGlvbnNbXSA9IHsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCmluZGV4IGI3NmQzNDQ4ZjIwYWNiZDk5ODM3
MGQ0YjlmNDgzZGZkNzE3NDA2OGMuLjBmYWVmZjFmYjg0NWUyNTRkOTk2M2UzNTYwZWU5NDg5ODJj
NzkzZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcApA
QCAtMTI3LDQgKzEyNywxMSBAQCBjb25zdCBQbHVnaW5Db250cm9sbGVyKiBQbHVnaW46OmNvbnRy
b2xsZXIoKSBjb25zdAogICAgIHJldHVybiBtX3BsdWdpbkNvbnRyb2xsZXIuZ2V0KCk7CiB9CiAK
KyNpZiBQTEFURk9STShDT0NPQSkKK1dlYkNvcmU6OkZsb2F0U2l6ZSBQbHVnaW46OnBkZkRvY3Vt
ZW50U2l6ZUZvclByaW50aW5nKCkgY29uc3QKK3sKKyAgICByZXR1cm4geyB9OworfQorI2VuZGlm
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW4uaAppbmRleCBkYzU1NzlmZDMxOTUyNDhjZGVlOWIwMTU2YWY3ODA5N2Y4ZWFhZjcw
Li5kM2M3YWM3MDUxMWZjNzJjODcwODRiOGEzNzRmOWQ2YzcyNjg1OWIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uaApAQCAtNTUsNiArNTUsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBBZmZpbmVUcmFuc2Zvcm07CiBjbGFzcyBFbGVtZW50OwogY2xh
c3MgRmxvYXRQb2ludDsKK2NsYXNzIEZsb2F0U2l6ZTsKIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsK
IGNsYXNzIEludFBvaW50OwogY2xhc3MgSW50UmVjdDsKQEAgLTI3NSw2ICsyNzYsNyBAQCBwdWJs
aWM6CiAKICNpZiBQTEFURk9STShDT0NPQSkKICAgICB2aXJ0dWFsIFJldGFpblB0cjxQREZEb2N1
bWVudD4gcGRmRG9jdW1lbnRGb3JQcmludGluZygpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2
aXJ0dWFsIFdlYkNvcmU6OkZsb2F0U2l6ZSBwZGZEb2N1bWVudFNpemVGb3JQcmludGluZygpIGNv
bnN0OwogICAgIHZpcnR1YWwgTlNPYmplY3QgKmFjY2Vzc2liaWxpdHlPYmplY3QoKSBjb25zdCB7
IHJldHVybiAwOyB9CiAgICAgdmlydHVhbCBpZCBhY2Nlc3NpYmlsaXR5QXNzb2NpYXRlZFBsdWdp
blBhcmVudEZvckVsZW1lbnQoV2ViQ29yZTo6RWxlbWVudCopIGNvbnN0IHsgcmV0dXJuIG51bGxw
dHI7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBjMDlhMjdiN2U3ZjUzZmI0
NDI0NDQ3MWE2ZDZiNzRmY2UwNWQ0M2EwLi5kOTkzMDkxYTgxMDNmOGQwOGY3MzJmOGE5ZmQ1NTUw
NjI4MGM5ZGQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMzksNiArMzksNyBAQAogI2lu
Y2x1ZGUgIk5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJQYWdlQmFubmVyLmgiCisj
aW5jbHVkZSAiUGx1Z2luVmlldy5oIgogI2luY2x1ZGUgIlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlckNvcHkuaCIKICNpbmNsdWRlICJVc2VyRGF0
YS5oIgpAQCAtNzM1LDggKzczNiwxNiBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6cHJpbnQoRnJh
bWUmIGZyYW1lLCBjb25zdCBTdHJpbmdXaXRoRGlyZWN0aW9uJiB0aXRsZSkKICAgICB9CiAjZW5k
aWYKIAorICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBwZGZGaXJzdFBhZ2VTaXplOworI2lmIFBMQVRG
T1JNKENPQ09BKQorICAgIGlmIChhdXRvKiBwbHVnaW5WaWV3ID0gV2ViUGFnZTo6cGx1Z2luVmll
d0ZvckZyYW1lKCZmcmFtZSkpIHsKKyAgICAgICAgaWYgKGF1dG8qIHBsdWdpbiA9IHBsdWdpblZp
ZXctPnBsdWdpbigpKQorICAgICAgICAgICAgcGRmRmlyc3RQYWdlU2l6ZSA9IHBsdWdpbi0+cGRm
RG9jdW1lbnRTaXplRm9yUHJpbnRpbmcoKTsKKyAgICB9CisjZW5kaWYKKwogICAgIGF1dG8gdHJ1
bmNhdGVkVGl0bGUgPSB0cnVuY2F0ZUZyb21FbmQodGl0bGUsIG1heFRpdGxlTGVuZ3RoKTsKLSAg
ICBtX3BhZ2Uuc2VuZFN5bmNXaXRoRGVsYXllZFJlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OlByaW50RnJhbWUod2ViRnJhbWUtPmZyYW1lSUQoKSwgdHJ1bmNhdGVkVGl0bGUuc3RyaW5nKSwg
TWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6UHJpbnRGcmFtZTo6UmVwbHkoKSk7CisgICAgbV9wYWdl
LnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQcmludEZy
YW1lKHdlYkZyYW1lLT5mcmFtZUlEKCksIHRydW5jYXRlZFRpdGxlLnN0cmluZywgcGRmRmlyc3RQ
YWdlU2l6ZSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlByaW50RnJhbWU6OlJlcGx5KCkpOwog
fQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6ZXhjZWVkZWREYXRhYmFzZVF1b3RhKEZyYW1lJiBm
cmFtZSwgY29uc3QgU3RyaW5nJiBkYXRhYmFzZU5hbWUsIERhdGFiYXNlRGV0YWlscyBkZXRhaWxz
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2Vi
UGFnZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2Vi
UGFnZUNvY29hLm1tCmluZGV4IGY1N2Q4NDlhNjIwMTE0NGM1NzM3N2VjYzM3MTE2YTIxOGRmMTNh
OGUuLmNmYjU1YWEyZGIwOGQ1Y2QyN2JiMWE0NWFlYmY5YTcwMzk3YzljN2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2Eu
bW0KQEAgLTQxNiw2ICs0MTYsMjcgQEAgdm9pZCBXZWJQYWdlOjpjb25zdW1lTmV0d29ya0V4dGVu
c2lvblNhbmRib3hFeHRlbnNpb25zKGNvbnN0IFNhbmRib3hFeHRlbnNpb246OkgKICNlbmRpZgog
fQogCit2b2lkIFdlYlBhZ2U6OmdldFBERkZpcnN0UGFnZVNpemUoV2ViQ29yZTo6RnJhbWVJZGVu
dGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RmxvYXRTaXpl
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvKiB3ZWJGcmFtZSA9IFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLndlYkZyYW1lKGZyYW1lSUQpOworICAgIGlmICghd2ViRnJhbWUpCisg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworCisgICAgYXV0byogY29yZUZy
YW1lID0gd2ViRnJhbWUtPmNvcmVGcmFtZSgpOworICAgIGlmICghY29yZUZyYW1lKQorICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKworICAgIGF1dG8qIHBsdWdpblZpZXcg
PSBwbHVnaW5WaWV3Rm9yRnJhbWUoY29yZUZyYW1lKTsKKyAgICBpZiAoIXBsdWdpblZpZXcpCisg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworICAgIAorICAgIGF1dG8qIHBs
dWdpbiA9IHBsdWdpblZpZXctPnBsdWdpbigpOworICAgIGlmICghcGx1Z2luKQorICAgICAgICBy
ZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKEZs
b2F0U2l6ZShwbHVnaW4tPnBkZkRvY3VtZW50U2l6ZUZvclByaW50aW5nKCkpKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYjc5NDcxOGJjMDlh
ZjkzZmM0MWQ2YzRiZWUyODMwNDkyOGQyMTYzZS4uM2UzODEzMjE1YzUwMDhjYjA4ZTcyM2E5YjM1
OTA3ZTc1NmFkZDg3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTcwODksNiArNzA4OSwxMSBAQCB2b2lkIFdlYlBhZ2U6OmNvbmZpZ3VyZUxv
Z2dpbmdDaGFubmVsKGNvbnN0IFN0cmluZyYgY2hhbm5lbE5hbWUsIFdURkxvZ0NoYW5uZWxTdAog
fQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQordm9pZCBXZWJQYWdlOjpnZXRQREZGaXJzdFBhZ2VT
aXplKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpGbG9hdFNpemUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGNvbXBsZXRpb25I
YW5kbGVyKHsgfSk7Cit9CisKIHZvaWQgV2ViUGFnZTo6Z2V0UHJvY2Vzc0Rpc3BsYXlOYW1lKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewog
ICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmgKaW5kZXggOTQ2MmViNDRiYmFiMjEyOWJlYTY3YTU1ZGQ3ODdkNTQ1ZWM4
MGYyOC4uN2Q1NDFkZGY3MDRhNjcwNGIxOWZhZDI5M2UxNjVmMDQ3NjliYzA5MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTUwNyw2ICsxNTA3LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGxvYWREYXRhKExvYWRQYXJhbWV0ZXJzJiYpOwogICAgIHZv
aWQgbG9hZEFsdGVybmF0ZUhUTUwoTG9hZFBhcmFtZXRlcnMmJik7CiAgICAgdm9pZCBuYXZpZ2F0
ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRDbGljayhjb25zdCBTdHJpbmcmIHVybCwgV2ViQ29yZTo6
SW50UG9pbnQgZG9jdW1lbnRQb2ludCwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuUG9pbnQpOwor
ICAgIHZvaWQgZ2V0UERGRmlyc3RQYWdlU2l6ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RmxvYXRTaXplKT4mJik7CiAgICAgdm9pZCBy
ZWxvYWQodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCByZWxvYWRPcHRpb25zLCBTYW5k
Ym94RXh0ZW5zaW9uOjpIYW5kbGUmJik7CiAgICAgdm9pZCBnb1RvQmFja0ZvcndhcmRJdGVtKHVp
bnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgV2ViQ29yZTo6QmFja0ZvcndhcmRJdGVtSWRlbnRp
ZmllciYsIFdlYkNvcmU6OkZyYW1lTG9hZFR5cGUsIFdlYkNvcmU6OlNob3VsZFRyZWF0QXNDb250
aW51aW5nTG9hZCwgT3B0aW9uYWw8V2Vic2l0ZVBvbGljaWVzRGF0YT4mJik7CiAgICAgdm9pZCB0
cnlSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4IDM0YjEyYzQ2NDQ0ZmYxNTVh
NWUxNDMyMTk5YWQ4YTE3ODk5MTU4MmIuLjUyODYwMWM2MTAxMmZhZmVlZTg2MTlhNTMxODc4ZjFl
MTQ5ZGM4YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5tZXNzYWdlcy5pbgpAQCAtMTgyLDYgKzE4Miw3IEBAIEdlbmVyYXRlU3ludGhldGlj
RWRpdGluZ0NvbW1hbmQoZW51bTp1aW50OF90IFdlYktpdDo6U3ludGhldGljRWRpdGluZ0NvbW1h
bmRUeXBlCiAgICAgTG9hZEFsdGVybmF0ZUhUTUwoc3RydWN0IFdlYktpdDo6TG9hZFBhcmFtZXRl
cnMgbG9hZFBhcmFtZXRlcnMpCiAKICAgICBOYXZpZ2F0ZVRvUERGTGlua1dpdGhTaW11bGF0ZWRD
bGljayhTdHJpbmcgdXJsLCBXZWJDb3JlOjpJbnRQb2ludCBkb2N1bWVudFBvaW50LCBXZWJDb3Jl
OjpJbnRQb2ludCBzY3JlZW5Qb2ludCkKKyAgICBHZXRQREZGaXJzdFBhZ2VTaXplKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciBmcmFtZUlEKSAtPiAoV2ViQ29yZTo6RmxvYXRTaXplIHNpemUpIEFz
eW5jCiAKICAgICBSZWxvYWQodWludDY0X3QgbmF2aWdhdGlvbklELCB1aW50MzJfdCByZWxvYWRP
cHRpb25zLCBXZWJLaXQ6OlNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9u
SGFuZGxlKQogICAgIFN0b3BMb2FkaW5nKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAxNzhiNTIxMjg0NDFmN2VjM2VjNzE1ZDJjODVhOGVmMmQ1
NjdmZDFmLi44YjI4OTRlYzVlZDk1Mjc1MTViNzA0ODZhNWY0NWQzNDQ4NDg4ZDE2IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkg
QEAKKzIwMjEtMDItMTcgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBBZGQgU1BJIGZvciBnZXR0aW5nIHNpemUgb2YgUERGIGRvY3VtZW50IGR1
cmluZyBwcmludGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjIyMDY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NDM3MDg5MT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBHZW9mZiBHYXJlbiBhbmQgVGltIEhvcnRvbi4KKworICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L3Rlc3RfcHJpbnQucGRmOiBBZGRlZC4K
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbToK
KyAgICAgICAgKC1bUHJpbnRVSURlbGVnYXRlIF93ZWJWaWV3OnByaW50RnJhbWU6cGRmRmlyc3RQ
YWdlU2l6ZTpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bUHJpbnRVSURlbGVnYXRl
IHdhaXRGb3JQYWdlU2l6ZV0pOgorICAgICAgICAoLVtQcmludFVJRGVsZWdhdGUgbGFzdFByaW50
ZWRGcmFtZV0pOgorICAgICAgICAoVEVTVCk6CisKIDIwMjEtMDItMTYgIEFsZXggQ2hyaXN0ZW5z
ZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBBZGQgQVBJIHRvIGRpc2Fi
bGUgSFRUUFMgdXBncmFkZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAyZDJmOWU2Mjc2OTA2
ZTVmNTQwYWY0OTEyODg1NjM2MzI2NWI1YzllLi44YzQ1N2Y5MWJjNWU1YTMyMzFmNjUzYzNjZTll
NTJhZjJhYTgxMjY1IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRB
UEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDYxLDYgKzQ2MSw3IEBA
CiAJCTVDNEE4NDk1MUY3RUVGRkMwMEFDRkM1NCAvKiBDb25maWd1cmF0aW9uLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0QTg0OTQxRjdFRUZENDAw
QUNGQzU0IC8qIENvbmZpZ3VyYXRpb24ubW0gKi87IH07CiAJCTVDNjlCREQ1MUY4MkE3RUYwMDBG
NEY0QiAvKiBKYXZhU2NyaXB0RHVyaW5nTmF2aWdhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNjlCREQ0MUY4MkE3RUIwMDBGNEY0QiAvKiBK
YXZhU2NyaXB0RHVyaW5nTmF2aWdhdGlvbi5tbSAqLzsgfTsKIAkJNUM2RTI3QTcyMjRFRUJFQTAw
MTI4NzM2IC8qIFVSTENhbm9uaWNhbGl6YXRpb24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzZFMjdBNjIyNEVFQkVBMDAxMjg3MzYgLyogVVJMQ2Fu
b25pY2FsaXphdGlvbi5tbSAqLzsgfTsKKwkJNUM3MTAxQzcyNUREOThCNjAwNjg2MjAwIC8qIHRl
c3RfcHJpbnQucGRmIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDNzEwMUM2MjVERDk4ODcwMDY4NjIwMCAvKiB0ZXN0X3ByaW50LnBkZiAqLzsg
fTsKIAkJNUM3MTQ4OTUyMTIzQTQwQTAwRkRFM0M1IC8qIFdLV2Vic2l0ZURhdGFzdG9yZS5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNzE0ODk0MjEy
M0E0MDcwMEZERTNDNSAvKiBXS1dlYnNpdGVEYXRhc3RvcmUubW0gKi87IH07CiAJCTVDNzU3MTYx
MjIxMjRDNTIwMEI5RTVBQyAvKiBCdW5kbGVSZXRhaW5QYWdlUGx1Z0luLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3NTcxNUYyMjEyNDlCRDAwQjlF
NUFDIC8qIEJ1bmRsZVJldGFpblBhZ2VQbHVnSW4ubW0gKi87IH07CiAJCTVDNzk2NDEwMUVCMDI3
OEQwMDc1RDc0QyAvKiBFdmVudE1vZGlmaWVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Qzc5NjQwRjFFQjAyNjlCMDA3NUQ3NEMgLyogRXZlbnRN
b2RpZmllcnMuY3BwICovOyB9OwpAQCAtMTY0OSw2ICsxNjUwLDcgQEAKIAkJCQlDOTU5ODRGNzFF
MzZCQ0VGMDAyQzBENDUgLyogdGVzdC13aXRob3V0LWF1ZGlvLXRyYWNrLm1wNCBpbiBDb3B5IFJl
c291cmNlcyAqLywKIAkJCQk1MjRCQkNBMTE5RTMwQzc3MDAyRjFBRjEgLyogdGVzdC5tcDQgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJN0FFOUU1MDkxQUU1QUU4QjAwQ0Y4NzRCIC8qIHRlc3Qu
cGRmIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCTVDNzEwMUM3MjVERDk4QjYwMDY4NjIwMCAv
KiB0ZXN0X3ByaW50LnBkZiBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyRTk4OTYxNTFEOEYw
OTM4MDA3Mzk4OTIgLyogdGV4dC1hbmQtcGFzc3dvcmQtaW5wdXRzLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJRjRDRDc0QzYyMEZEQUNGQTAwREUzNzk0IC8qIHRleHQtd2l0aC1hc3lu
Yy1zY3JpcHQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDRDN0EwNTIwRkFBRTND
MDAxNDQ3OEMgLyogdGV4dC13aXRoLWRlZmVycmVkLXNjcmlwdC5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLApAQCAtMjI0Nyw2ICsyMjQ5LDcgQEAKIAkJNUM2ODM0NzEyMzVBQ0M3QzAwNDFFNkIx
IC8qIFNlcnZpY2VXb3JrZXJUQ1BTZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2VydmljZVdvcmtlclRDUFNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1QzY5QkRENDFGODJBN0VCMDAwRjRGNEIgLyogSmF2YVNjcmlwdER1cmluZ05hdmlnYXRp
b24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBKYXZhU2NyaXB0
RHVyaW5nTmF2aWdhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM2RTI3
QTYyMjRFRUJFQTAwMTI4NzM2IC8qIFVSTENhbm9uaWNhbGl6YXRpb24ubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVUkxDYW5vbmljYWxpemF0aW9uLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzcxMDFDNjI1REQ5ODg3MDA2ODYyMDAgLyogdGVz
dF9wcmludC5wZGYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBpbWFnZS5wZGY7IHBhdGggPSB0ZXN0X3ByaW50LnBkZjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUM3MTQ4OTQyMTIzQTQwNzAwRkRFM0M1IC8qIFdLV2Vic2l0ZURhdGFzdG9y
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLV2Vic2l0ZURh
dGFzdG9yZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3MkU4Q0QyNDRGRkNF
MzAwMzgxRUI3IC8qIFRlc3RMZWdhY3lEb3dubG9hZERlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IFRlc3RMZWdhY3lEb3dubG9hZERlbGVnYXRlLmg7IHBhdGggPSBj
b2NvYS9UZXN0TGVnYWN5RG93bmxvYWREZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1QzcyRThDRTI0NEZGQ0U0MDAzODFFQjcgLyogVGVzdExlZ2FjeURvd25sb2FkRGVs
ZWdhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBUZXN0TGVn
YWN5RG93bmxvYWREZWxlZ2F0ZS5tbTsgcGF0aCA9IGNvY29hL1Rlc3RMZWdhY3lEb3dubG9hZERl
bGVnYXRlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDIyOCw2ICs0MjMxLDcg
QEAKIAkJCQk3NjczNDk5NzE5MzAxNkRDMDBFNDRERjkgLyogU3RvcExvYWRpbmdEdXJpbmdEaWRG
YWlsUHJvdmlzaW9uYWxMb2FkLmNwcCAqLywKIAkJCQk3NjczNDk5QTE5MzAxODJFMDBFNDRERjkg
LyogU3RvcExvYWRpbmdEdXJpbmdEaWRGYWlsUHJvdmlzaW9uYWxMb2FkX2J1bmRsZS5jcHAgKi8s
CiAJCQkJMUFFNzJGNDcxNzNFQjIxNDAwNjM2MkYwIC8qIFRlcm1pbmF0ZVR3aWNlLmNwcCAqLywK
KwkJCQk1QzcxMDFDNjI1REQ5ODg3MDA2ODYyMDAgLyogdGVzdF9wcmludC5wZGYgKi8sCiAJCQkJ
Q0UzNTI0RjExQjE0MkI4RDAwMjhBN0M1IC8qIFRleHRGaWVsZERpZEJlZ2luQW5kRW5kRWRpdGlu
Zy5jcHAgKi8sCiAJCQkJQ0UzNTI0RjIxQjE0MkI4RDAwMjhBN0M1IC8qIFRleHRGaWVsZERpZEJl
Z2luQW5kRW5kRWRpdGluZ19CdW5kbGUuY3BwICovLAogCQkJCTRBNDEwRjRCMTlBRjdCRDYwMDJF
QkFCNSAvKiBVc2VyTWVkaWEuY3BwICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvdGVzdF9wcmludC5wZGYgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdC90ZXN0X3ByaW50LnBkZgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzJlZjkwMGNjYzRmMDhjZDBjNjEx
ZWNmMWFlYTA1ZGJmY2Y2OGNjCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyMzc3CnpjbWJWT1pF
dz5zNWF0aX5LbHNaODJyPDdUYWF2VU0hJihMZCM9M1NBTkVJS2wpRVBsLXlkfn41YDE1ZFFDdV5F
Pwp6MiQzIT96UHNuJWUwU2NfWTxsYHk5MCVtK0godC0rQjckO2l1NzhseGhfRzJ7UkArcFViajFK
cjhXVDF0YnoqWjwKek9jU2Y9aXxISDVyUWt4dUpQZGluVXZkN05eT3VDM283TFlYIyQlJDM2KkA7
YCVnZHt1eDA8cF5WdzFKRzBqSEIyCnpVQ3teeD03ZkR0SG4wZlhxNko0bjZRcVliTEJjKkhfc0px
SF5JSj1XPll+Q1AzVCtXSypPbDNwREh5N2dtTSpsVgp6Tzl0N2M+YEZnYSVGWj8qY35aWThfNTE3
X1ZQN3c8ZjlUWFk8ZTh3dGB3Z3piQURmdU0+Y1VvWklZZUttZSt1LVkKelMrcDZrcVlLXyozbH07
U242Q3lSYUVzXkVPYUlHclBvcDxEX15TJCtJU0I0dHVreiU/SmtUWmpxPVk9P0cjKk9lCnolI3Nv
VXQ5UGxqRiZPXi0jPD1hb1JCUzxCNWNWLSZLfFdqeHpHMEdAaWE/dFVAez14Wj8wM3FNVXM8VFc0
TURtMwp6dnE1MCE5Zlc4aEUpUEkzPkBHeHdFemxpZFErPVBPZGo5VCZyV0Z3b2FkVEhgS3slfU85
XndPMTBuYnZDajZAUFkKejR7Xkw/RmFVTktwaW1TeEFqZCs/S31IYXd2fVh5OWN4VVBJUCUzYSF5
SyhKQil6NitRaVZofWRWSl53dGZkc25SCno+IThCODEtbTFGbFk7PTwjbUhRQUI4SVExVVpvcXRw
aSFvVlQqQns9aVN9JSREPE0jT0NTY315KXZyOyVUZ2t5TAp6IShpZiYtdUJTPVhUNSRHe1BzU2Z3
Pj8lR3k+aWRyTT11K3trPklRNjM3ITJ1c3N7fldpfHdeXzZWdUhrIXJ0cnIKejx+eXtPPGpgR1RA
KWIxQmZPRW81YSRDKUdJV2UxQ1EoJl9LZHQlbjZULSt1cDN8d0Y1QDU8eVNWVUc+UlBWPT5lCnox
N3BjZipEJnA7SXlFWnx7cThAWT5vP0g2ZW9EZUBOVWJTaDxrZm1Cd0Q1JTA/V1UtbFRqUjBvYGR1
c1V6T2J4Xwp6bzd6bypgUlR0TGdATVl7Tj1ZP1RUMTYzQEpFNGxRZlZYflBPb2Z8O2RxYyZNOGZe
Pk9JdihKdFNrT19YdnlBZ04KejxYbDB7KURYU3smWlVNbzlHSjI2Rz0qIUJrc3lPX3F7azhQO0Zk
IS0+WUpKTFEwazFwJFFZMl9mbEk7VkFmZyQ0CnpxKURoPXlsQy1BNjlYODQ5aHdaR3VSQW1keGtw
bkclKGFlT2pFVV5oUkcmNyQ2eiQ2aTlgdE8kMEQ+fl8kY2RuNQp6U0lENVJGT1gycTljK2p2VGJE
Tk1WdWNLUXhkUGctVyFJS1R6U2dEdGVganV0clM3UE5IcHpjISt5ezE2V1FNdlUKVilBd1hqVERN
Qz1Ean4/eChjNm50QCZ9cXtPaF5DIwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQppbmRleCA3
MGZjZDdhZWIwODEyNTdlNDZhYWI5MmFkMThmZTIxOTYzZmFhMGFmLi4zYjFjNGYxYWFkMzcwMGRm
OGYyZTg0MTAzZTJlMGJiNGVjMzRlNDM4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQpAQCAtNDMsNyArNDMsNyBAQAogI2ltcG9y
dCA8Q2FyYm9uL0NhcmJvbi5oPgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpIHx8IEVOQUJM
RShVSV9QUk9DRVNTX1BERl9IVUQpCisjaWYgUExBVEZPUk0oSU9TKSB8fCBFTkFCTEUoVUlfUFJP
Q0VTU19QREZfSFVEKSB8fCBQTEFURk9STShNQUMpCiBzdGF0aWMgTlNEYXRhICpwZGZEYXRhKCkK
IHsKICAgICByZXR1cm4gW05TRGF0YSBkYXRhV2l0aENvbnRlbnRzT2ZVUkw6W1tOU0J1bmRsZSBt
YWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInRlc3QiIHdpdGhFeHRlbnNpb246QCJwZGYiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwpAQCAtMzcyLDQgKzM3Miwx
MTcgQEAgVEVTVChQREZIVUQsIExvYWRQREZUeXBlV2l0aFBsdWdpbnNCbG9ja2VkKQogICAgIGNo
ZWNrRnJhbWUod2ViVmlldy5fcGRmSFVEcy5hbnlPYmplY3QuZnJhbWUsIDAsIDAsIDgwMCwgNjAw
KTsKIH0KIAorI2VuZGlmIC8vIEVOQUJMRShVSV9QUk9DRVNTX1BERl9IVUQpCisKKyNpZiBQTEFU
Rk9STShNQUMpCisKK0BpbnRlcmZhY2UgUHJpbnRVSURlbGVnYXRlIDogTlNPYmplY3QgPFdLVUlE
ZWxlZ2F0ZT4KKworLSAoTlNTaXplKXdhaXRGb3JQYWdlU2l6ZTsKKy0gKF9XS0ZyYW1lSGFuZGxl
ICopbGFzdFByaW50ZWRGcmFtZTsKKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gUHJpbnRVSURl
bGVnYXRlIHsKKyAgICBOU1NpemUgX3BhZ2VTaXplOworICAgIGJvb2wgX3JlY2VpdmVkU2l6ZTsK
KyAgICBSZXRhaW5QdHI8X1dLRnJhbWVIYW5kbGU+IF9sYXN0UHJpbnRlZEZyYW1lOworfQorCist
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByaW50RnJhbWU6KF9XS0ZyYW1l
SGFuZGxlICopZnJhbWUgcGRmRmlyc3RQYWdlU2l6ZTooQ0dTaXplKXNpemUgY29tcGxldGlvbkhh
bmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgX3BhZ2VTaXpl
ID0gc2l6ZTsKKyAgICBfcmVjZWl2ZWRTaXplID0gdHJ1ZTsKKyAgICBfbGFzdFByaW50ZWRGcmFt
ZSA9IGZyYW1lOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKKy0gKE5TU2l6ZSl3YWl0
Rm9yUGFnZVNpemUKK3sKKyAgICBfcmVjZWl2ZWRTaXplID0gZmFsc2U7CisgICAgd2hpbGUgKCFf
cmVjZWl2ZWRTaXplKQorICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzcGluUnVuTG9vcCgp
OworICAgIHJldHVybiBfcGFnZVNpemU7Cit9CisKKy0gKF9XS0ZyYW1lSGFuZGxlICopbGFzdFBy
aW50ZWRGcmFtZQoreworICAgIHJldHVybiBfbGFzdFByaW50ZWRGcmFtZS5nZXQoKTsKK30KKwor
QGVuZAorCitURVNUKFBERiwgUHJpbnRTaXplKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9
IFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddIGF1dG9yZWxlYXNlXTsKKyAgICBhdXRvIHNj
aGVtZUhhbmRsZXIgPSBbW1Rlc3RVUkxTY2hlbWVIYW5kbGVyIG5ld10gYXV0b3JlbGVhc2VdOwor
ICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6c2NoZW1lSGFuZGxlciBmb3JV
UkxTY2hlbWU6QCJ0ZXN0Il07CisgICAgYXV0byB3ZWJWaWV3ID0gW1tbVGVzdFdLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0
aW9uOmNvbmZpZ3VyYXRpb25dIGF1dG9yZWxlYXNlXTsKKyAgICBhdXRvIGRlbGVnYXRlID0gW1tQ
cmludFVJRGVsZWdhdGUgbmV3XSBhdXRvcmVsZWFzZV07CisgICAgd2ViVmlldy5VSURlbGVnYXRl
ID0gZGVsZWdhdGU7CisKKyAgICBzY2hlbWVIYW5kbGVyLnN0YXJ0VVJMU2NoZW1lVGFza0hhbmRs
ZXIgPSBeKFdLV2ViVmlldyAqLCBpZDxXS1VSTFNjaGVtZVRhc2s+IHRhc2spIHsKKyAgICAgICAg
YXV0byB1cmwgPSB0YXNrLnJlcXVlc3QuVVJMOworICAgICAgICBOU0RhdGEgKmRhdGE7CisgICAg
ICAgIE5TU3RyaW5nICptaW1lVHlwZTsKKyAgICAgICAgaWYgKFt1cmwucGF0aCBpc0VxdWFsVG9T
dHJpbmc6QCIvbWFpbi5odG1sIl0pIHsKKyAgICAgICAgICAgIG1pbWVUeXBlID0gQCJ0ZXh0L2h0
bWwiOworICAgICAgICAgICAgY29uc3QgY2hhciogaHRtbCA9ICI8YnIvPjxpZnJhbWUgc3JjPSd0
ZXN0LnBkZicgaWQ9J3BkZmZyYW1lJz48L2lmcmFtZT4iOworICAgICAgICAgICAgZGF0YSA9IFtO
U0RhdGEgZGF0YVdpdGhCeXRlczpodG1sIGxlbmd0aDpzdHJsZW4oaHRtbCldOworICAgICAgICB9
IGVsc2UgaWYgKFt1cmwucGF0aCBpc0VxdWFsVG9TdHJpbmc6QCIvdGVzdC5wZGYiXSkgeworICAg
ICAgICAgICAgbWltZVR5cGUgPSBAImFwcGxpY2F0aW9uL3BkZiI7CisgICAgICAgICAgICBkYXRh
ID0gcGRmRGF0YSgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgRVhQRUNUX1dLX1NU
UkVRKHVybC5wYXRoLCAiL3Rlc3RfcHJpbnQucGRmIik7CisgICAgICAgICAgICBtaW1lVHlwZSA9
IEAiYXBwbGljYXRpb24vcGRmIjsKKyAgICAgICAgICAgIGRhdGEgPSBbTlNEYXRhIGRhdGFXaXRo
Q29udGVudHNPZlVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAidGVz
dF9wcmludCIgd2l0aEV4dGVuc2lvbjpAInBkZiIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQ
SS5yZXNvdXJjZXMiXV07CisgICAgICAgIH0KKyAgICAgICAgTlNVUkxSZXNwb25zZSAqcmVzcG9u
c2UgPSBbW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDp1cmwgTUlNRVR5cGU6bWlt
ZVR5cGUgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOmRhdGEubGVuZ3RoIHRleHRFbmNvZGluZ05hbWU6
bmlsXSBhdXRvcmVsZWFzZV07CisgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpyZXNw
b25zZV07CisgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVEYXRhOmRhdGFdOworICAgICAgICBbdGFz
ayBkaWRGaW5pc2hdOworICAgIH07CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNVUkxS
ZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDovLy90ZXN0
X3ByaW50LnBkZiJdXV07CisgICAgYXV0byBzaXplID0gW2RlbGVnYXRlIHdhaXRGb3JQYWdlU2l6
ZV07CisgICAgRVhQRUNUX0VRKHNpemUuaGVpZ2h0LCA3OTIuMCk7CisgICAgRVhQRUNUX0VRKHNp
emUud2lkdGgsIDYxMi4wKTsKKworICAgIF9fYmxvY2sgYm9vbCByZWNlaXZlZFNpemUgPSBmYWxz
ZTsKKyAgICBbd2ViVmlldyBfZ2V0UERGRmlyc3RQYWdlU2l6ZUluRnJhbWU6d2ViVmlldy5fbWFp
bkZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOl4oQ0dTaXplIHJlcXVlc3RlZFNpemUpIHsKKyAgICAg
ICAgRVhQRUNUX0VRKHJlcXVlc3RlZFNpemUuaGVpZ2h0LCA3OTIuMCk7CisgICAgICAgIEVYUEVD
VF9FUShyZXF1ZXN0ZWRTaXplLndpZHRoLCA2MTIuMCk7CisgICAgICAgIHJlY2VpdmVkU2l6ZSA9
IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNp
emUpOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0
aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Q6Ly8vbWFpbi5odG1sIl1dXTsKKyAgICBb
d2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisgICAgW3dlYlZpZXcg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93LnByaW50KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5p
bF07CisgICAgYXV0byBtYWluRnJhbWVTaXplID0gW2RlbGVnYXRlIHdhaXRGb3JQYWdlU2l6ZV07
CisgICAgRVhQRUNUX0VRKG1haW5GcmFtZVNpemUuaGVpZ2h0LCAwLjApOworICAgIEVYUEVDVF9F
UShtYWluRnJhbWVTaXplLndpZHRoLCAwLjApOworICAgIAorICAgIHJlY2VpdmVkU2l6ZSA9IGZh
bHNlOworICAgIFt3ZWJWaWV3IF9nZXRQREZGaXJzdFBhZ2VTaXplSW5GcmFtZTp3ZWJWaWV3Ll9t
YWluRnJhbWUgY29tcGxldGlvbkhhbmRsZXI6XihDR1NpemUgcmVxdWVzdGVkU2l6ZSkgeworICAg
ICAgICBFWFBFQ1RfRVEocmVxdWVzdGVkU2l6ZS5oZWlnaHQsIDAuMCk7CisgICAgICAgIEVYUEVD
VF9FUShyZXF1ZXN0ZWRTaXplLndpZHRoLCAwLjApOworICAgICAgICByZWNlaXZlZFNpemUgPSB0
cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRTaXpl
KTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInBkZmZyYW1lLmNvbnRlbnRX
aW5kb3cucHJpbnQoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBhdXRvIHBkZkZyYW1l
U2l6ZSA9IFtkZWxlZ2F0ZSB3YWl0Rm9yUGFnZVNpemVdOworICAgIEVYUEVDVF9ORUFSKHBkZkZy
YW1lU2l6ZS5oZWlnaHQsIDI4Ljc5OTk5OSwgLjAwMDAxKTsKKyAgICBFWFBFQ1RfTkVBUihwZGZG
cmFtZVNpemUud2lkdGgsIDEyOS42MDAwMDYsIC4wMDAwMSk7CisKKyAgICByZWNlaXZlZFNpemUg
PSBmYWxzZTsKKyAgICBbd2ViVmlldyBfZ2V0UERGRmlyc3RQYWdlU2l6ZUluRnJhbWU6ZGVsZWdh
dGUubGFzdFByaW50ZWRGcmFtZSBjb21wbGV0aW9uSGFuZGxlcjpeKENHU2l6ZSByZXF1ZXN0ZWRT
aXplKSB7CisgICAgICAgIEVYUEVDVF9ORUFSKHJlcXVlc3RlZFNpemUuaGVpZ2h0LCAyOC43OTk5
OTksIC4wMDAwMSk7CisgICAgICAgIEVYUEVDVF9ORUFSKHJlcXVlc3RlZFNpemUud2lkdGgsIDEy
OS42MDAwMDYsIC4wMDAwMSk7CisgICAgICAgIHJlY2VpdmVkU2l6ZSA9IHRydWU7CisgICAgfV07
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNpemUpOworfQorCiAjZW5k
aWYK
</data>
<flag name="commit-queue"
          id="439343"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420722</attachid>
            <date>2021-02-17 14:49:54 -0800</date>
            <delta_ts>2021-02-17 20:37:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222064-20210217144953.patch</filename>
            <type>text/plain</type>
            <size>41008</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyOTIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGViYjNkMzE1ODA5OTc2Yzhk
Y2JkNDZjYzBhNDAwOTM4M2Q1NjNjM2EuLmM2NmI4OWU4M2NjY2FiMGI1ZDI2MDlmMmRlY2UxYjNi
MzIxNmNiMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjEtMDItMTcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgU1BJIGZv
ciBnZXR0aW5nIHNpemUgb2YgUERGIGRvY3VtZW50IGR1cmluZyBwcmludGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMDY0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83NDM3MDg5MT4KKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJl
biBhbmQgVGltIEhvcnRvbi4KKworICAgICAgICBXaGVuIHByaW50aW5nIGEgUERGLCB3ZSB3YW50
IHRvIGtub3cgaXRzIHBhZ2Ugc2l6ZS4gIElmIHRoZSBwcmludCBpcyBpbml0aWF0ZWQgYnkgdGhl
IHdlYiBwcm9jZXNzIChzdWNoIGFzIHdoZW4gd2luZG93LnByaW50IGlzIGNhbGxlZAorICAgICAg
ICBvciBpZiB0aGUgUERGIGNvbnRhaW5zIEphdmFTY3JpcHQgdGhhdCB0ZWxscyB0aGUgYnJvd3Nl
ciB0byBwcmludCBpdCkgdGhlbiB3ZSB3b3VsZCBsaWtlIHRoYXQgaW5mb3JtYXRpb24gd2l0aCB0
aGUgcHJpbnQgcmVxdWVzdCBzbyB3ZQorICAgICAgICBkb24ndCBoYXZlIHRvIGFzayB0aGUgd2Vi
IHByb2Nlc3MsIHdoaWNoIGlzIGh1bmcgd2FpdGluZyBmb3IgYSBzeW5jaHJvbm91cyBtZXNzYWdl
IHJlcGx5LiAgSWYgdGhlIHByaW50IGlzIGluaXRpYXRlZCBieSB0aGUgVUkgcHJvY2VzcworICAg
ICAgICAoc3VjaCBhcyBpZiB0aGUgdXNlciBwcmludHMgZnJvbSBhIG1lbnUgb3Iga2V5Ym9hcmQg
c2hvcnRjdXQpIHRoZW4gd2UgbmVlZCBhIHdheSB0byBhc2sgd2hhdCB0aGUgc2l6ZSBvZiBhIFBE
RiBpcy4KKworICAgICAgICBJIHJldXNlZCB0aGUgU1BJIGluIFdLVUlEZWxlZ2F0ZVByaXZhdGUg
YmVjYXVzZSBpdCB3YXMgb25seSBicmllZmx5IGFkb3B0ZWQgYmVmb3JlIHdlIGtuZXcgd2UgbmVl
ZGVkIHRoaXMgYW5kIHRoZW4gcmV2ZXJ0ZWQuCisgICAgICAgIEknbSBhbHNvIGFkZGluZyBhbiBT
UEkgd2F5IHRvIGdldCBmcm9tIGEgV0tQYWdlUmVmIHRvIGEgV0tXZWJWaWV3IHNvIHRoaXMgY2Fu
IGJlIGFkb3B0ZWQgd2l0aG91dCByZWRvaW5nIGFsbCBvZiBTYWZhcmkuCisKKyAgICAgICAgQ292
ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpwcmludEZyYW1lKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dL
V2ViVmlldyBfZ2V0UERGRmlyc3RQYWdlU2l6ZUluRnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6XSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6c2V0RGVs
ZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6cHJpbnRGcmFt
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cHJpbnRGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6Z2V0UERGRmlyc3RQYWdlU2l6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERG
UGx1Z2luOjpwZGZEb2N1bWVudFNpemVGb3JQcmludGluZyBjb25zdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbjo6cGRm
RG9jdW1lbnRTaXplRm9yUHJpbnRpbmcgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW4uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cHJpbnQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFBERkZpcnN0UGFnZVNpemUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6Z2V0UERGRmlyc3RQYWdlU2l6ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bjoKKwogMjAyMS0wMi0xNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIEFkZCBBUEkgdG8gZGlzYWJsZSBIVFRQUyB1cGdyYWRlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDE2MzY3ZTZjYWM4MjVhYTlj
NzRmYjRjNDg0M2RkMmYxZmYxZGFkMzguLjdjZWJlMmZhYmFkNWIzMzVlYjM2MmEzMjdlYjM0NGFl
ODJkYmU2NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBA
IC0xNDUsNyArMTQ1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgZmxvYXQgZm9vdGVySGVpZ2h0
KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5JikgeyByZXR1cm4g
MDsgfQogICAgIHZpcnR1YWwgdm9pZCBkcmF3SGVhZGVyKFdlYktpdDo6V2ViUGFnZVByb3h5Jiwg
V2ViS2l0OjpXZWJGcmFtZVByb3h5JiwgV2ViQ29yZTo6RmxvYXRSZWN0JiYpIHsgfQogICAgIHZp
cnR1YWwgdm9pZCBkcmF3Rm9vdGVyKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJG
cmFtZVByb3h5JiwgV2ViQ29yZTo6RmxvYXRSZWN0JiYpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBw
cmludEZyYW1lKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0OjpXZWJGcmFtZVByb3h5Jiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSB7IGNvbXBsZXRp
b25IYW5kbGVyKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcHJpbnRGcmFtZShXZWJLaXQ6OldlYlBh
Z2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6
ZSYgcGRmRmlyc3RQYWdlU2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKSB7IGNvbXBsZXRpb25IYW5kbGVyKCk7IH0KIAogICAgIHZpcnR1YWwgYm9vbCBj
YW5SdW5Nb2RhbCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCB2b2lkIHJ1
bk1vZGFsKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlLmNwcAppbmRleCA2MmE1NGI3NDZjM2FiMmYxYWIzMmNlZDcxNDY0YzRjNGRk
ZjFlOWQ2Li40NmFlNzk2MTA2ZGEyN2IyZWIxYmNmNWRiM2U3YmYyYjk0ODExNzlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKQEAgLTE5NzEsNyArMTk3MSw3IEBA
IHZvaWQgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KFdLUGFnZVJlZiBwYWdlUmVmLCBjb25zdCBXS1Bh
Z2VVSUNsaWVudEJhc2UqIHdrQ2xpZW50CiAgICAgICAgICAgICBtX2NsaWVudC5kcmF3Rm9vdGVy
KHRvQVBJKCZwYWdlKSwgdG9BUEkoJmZyYW1lKSwgdG9BUEkocmVjdCksIG1fY2xpZW50LmJhc2Uu
Y2xpZW50SW5mbyk7CiAgICAgICAgIH0KIAotICAgICAgICB2b2lkIHByaW50RnJhbWUoV2ViUGFn
ZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAorICAgICAgICB2b2lkIHByaW50RnJhbWUo
V2ViUGFnZVByb3h5JiBwYWdlLCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgY29uc3QgV2ViQ29yZTo6
RmxvYXRTaXplJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KSBmaW5hbAogICAgICAgICB7CiAgICAgICAgICAgICBpZiAobV9jbGllbnQucHJpbnRGcmFtZSkK
ICAgICAgICAgICAgICAgICBtX2NsaWVudC5wcmludEZyYW1lKHRvQVBJKCZwYWdlKSwgdG9BUEko
JmZyYW1lKSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5oCmluZGV4IGM4M2EyMGQz
ODAxN2NlODE0Y2FmMmQzYWEzMTk0NTk2OThjZTcxMDAuLjQ4ODljYmQ2MDUyOGZkOTVmOGUyZTNl
NzNkNWM5Mzk2YmVlZGU5NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaApAQCAtMzUsNiArMzUsNyBAQCBleHRlcm4gIkMi
IHsKIAogI2lmZGVmIF9fT0JKQ19fCiAKK0BjbGFzcyBXS1dlYlZpZXc7CiBAY2xhc3MgX1dLUmVt
b3RlT2JqZWN0UmVnaXN0cnk7CiAKIEBwcm90b2NvbCBfV0tPYnNlcnZhYmxlUGFnZVN0YXRlCkBA
IC02Myw2ICs2NCw4IEBAIFdLX0VYUE9SVCBpZCA8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBXS1Bh
Z2VHZXRGdWxsc2NyZWVuRGVsZWdhdGUoV0tQYWdlUmVmIHBhZ2UpCiBXS19FWFBPUlQgV0tOYXZp
Z2F0aW9uICpXS1BhZ2VMb2FkVVJMUmVxdWVzdFJldHVybmluZ05hdmlnYXRpb24oV0tQYWdlUmVm
IHBhZ2UsIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0KTsKIFdLX0VYUE9SVCBXS05hdmlnYXRpb24g
KldLUGFnZUxvYWRGaWxlUmV0dXJuaW5nTmF2aWdhdGlvbihXS1BhZ2VSZWYgcGFnZSwgV0tVUkxS
ZWYgZmlsZVVSTCwgV0tVUkxSZWYgcmVzb3VyY2VEaXJlY3RvcnlVUkwpOwogCitXS19FWFBPUlQg
V0tXZWJWaWV3ICpXS1BhZ2VHZXRXZWJWaWV3KFdLUGFnZVJlZiBwYWdlKTsKKwogI2VuZGlmIC8v
IF9fT0JKQ19fCiAKIFdLX0VYUE9SVCBib29sIFdLUGFnZUlzVVJMS25vd25IU1RTSG9zdChXS1Bh
Z2VSZWYgcGFnZSwgV0tVUkxSZWYgdXJsKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2YXRlTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMubW0KaW5kZXggMTczOThlY2U4MjJlY2Zk
YmQwMWZjMjEzMTYwNWU1MzNhNzg3NzNmMi4uOWJlMzAyZGQyN2UxZTUzZjI0YzI1ZGZjOTViMjUx
MDAyZThmNGY5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvbWFj
L1dLUGFnZVByaXZhdGVNYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
bWFjL1dLUGFnZVByaXZhdGVNYWMubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIldLTlNV
UkxFeHRyYXMuaCIKICNpbXBvcnQgIldLTmF2aWdhdGlvbkludGVybmFsLmgiCiAjaW1wb3J0ICJX
S1ZpZXdJbnRlcm5hbC5oIgorI2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQg
IldlYlBhZ2VHcm91cC5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQ
cmVmZXJlbmNlcy5oIgpAQCAtMTQ3LDYgKzE0OCwxMyBAQCBXS05hdmlnYXRpb24gKldLUGFnZUxv
YWRGaWxlUmV0dXJuaW5nTmF2aWdhdGlvbihXS1BhZ2VSZWYgcGFnZVJlZiwgV0tVUkxSZWYgZmls
ZQogICAgIHJldHVybiBXZWJLaXQ6OndyYXBwZXIoV2ViS2l0Ojp0b0ltcGwocGFnZVJlZiktPmxv
YWRGaWxlKFdlYktpdDo6dG9XVEZTdHJpbmcoZmlsZVVSTCksIFdlYktpdDo6dG9XVEZTdHJpbmco
cmVzb3VyY2VEaXJlY3RvcnlVUkwpKSk7CiB9CiAKK1dLV2ViVmlldyAqV0tQYWdlR2V0V2ViVmll
dyhXS1BhZ2VSZWYgcGFnZSkKK3sKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBuaWw7
CisgICAgcmV0dXJuIGZyb21XZWJQYWdlUHJveHkoKldlYktpdDo6dG9JbXBsKHBhZ2UpKTsKK30K
KwogI2lmIFBMQVRGT1JNKE1BQykKIGJvb2wgV0tQYWdlSXNQbGF5aW5nVmlkZW9JbkVuaGFuY2Vk
RnVsbHNjcmVlbihXS1BhZ2VSZWYgcGFnZVJlZikKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IDkxYmVl
MzRlZDBiNjM5ODBiNTVhMWFhYmFhYTg4YjkyODA0MzNjNDQuLjBjM2U1OGQ1MDMzODNiZGNhNzRl
NGQ3N2UwM2RhOTgzNTQzZGYwZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtMTA3LDcgKzEwNyw3IEBA
IHN0cnVjdCBVSUVkZ2VJbnNldHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGRlY2lkZVdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YUZvclNlY3VyaXR5T3JpZ2luOihXS1Nl
Y3VyaXR5T3JpZ2luICopc2VjdXJpdHlPcmlnaW4gY3VycmVudFF1b3RhOih1bnNpZ25lZCBsb25n
IGxvbmcpY3VycmVudFF1b3RhIHRvdGFsQnl0ZXNOZWVkZWQ6KHVuc2lnbmVkIGxvbmcgbG9uZyl0
b3RhbEJ5dGVzTmVlZGVkIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikodW5zaWduZWQgbG9uZyBs
b25nIG5ld1F1b3RhKSlkZWNpc2lvbkhhbmRsZXI7CiAKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgcHJpbnRGcmFtZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZTsKLS0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJpbnRGcmFtZTooX1dLRnJhbWVIYW5k
bGUgKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhh
bmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKKy0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJpbnRGcmFtZTooX1dLRnJhbWVIYW5kbGUg
KilmcmFtZSBwZGZGaXJzdFBhZ2VTaXplOihDR1NpemUpc2l6ZSBjb21wbGV0aW9uSGFuZGxlcjoo
dm9pZCAoXikodm9pZCkpY29tcGxldGlvbkhhbmRsZXIgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhX
S19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIAogLSAodm9pZClfd2ViVmlld0Nsb3NlOihX
S1dlYlZpZXcgKil3ZWJWaWV3OwogLSAodm9pZClfd2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5U
b0lubGluZTooV0tXZWJWaWV3ICopd2ViVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDQ5NDYxNmU5MjYwNGZkYzY5M2Q0NWExYjlm
ZmJlYjlhMWFkZmJlMzQuLjg0ZTMwN2VhZDlkNTRlMDg1NWE1OWQ3N2U3N2RjZDNhN2I4OWI5YWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpA
QCAtMjIzOSw2ICsyMjM5LDEzIEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNBcnJheT4gd2tUZXh0TWFu
aXB1bGF0aW9uRXJyb3JzKE5TQXJyYXk8X1dLVGV4dE1hbmlwdWxhdGlvbkl0CiAgICAgW3NlbGYg
Y3JlYXRlUERGV2l0aENvbmZpZ3VyYXRpb246cGRmQ29uZmlndXJhdGlvbiBjb21wbGV0aW9uSGFu
ZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAKKy0gKHZvaWQpX2dldFBERkZpcnN0UGFnZVNp
emVJbkZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lk
KF4pKENHU2l6ZSkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfcGFnZS0+Z2V0UERGRmlyc3RQ
YWdlU2l6ZShmcmFtZS0+X2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCksIFtjb21wbGV0aW9uSGFuZGxl
ciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKFdlYkNvcmU6OkZsb2F0U2l6ZSBz
aXplKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0YXRpY19jYXN0PENHU2l6ZT4oc2l6
ZSkpOworICAgIH0pOworfQorCiAtIChOU0RhdGEgKilfc2Vzc2lvblN0YXRlRGF0YQogewogICAg
IC8vIEZJWE1FOiBUaGlzIHNob3VsZCBub3QgdXNlIHRoZSBsZWdhY3kgc2Vzc2lvbiBzdGF0ZSBl
bmNvZGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmgKaW5kZXggOTI2MjM4YWVhMGExNDc2MTE4ZTVhNjkwODU0N2FkNzljM2Y0
NTRkMS4uYzc4Y2E4ZWQ2NTZhOGU4NzFkZDZjMDM1NDAwMjk3MTU1YzVhN2UxNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
CkBAIC0zNTAsNiArMzUwLDcgQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAtICh2b2lkKV9jbG9zZUFs
bE1lZGlhUHJlc2VudGF0aW9uczsKIAogLSAodm9pZClfdGFrZVBERlNuYXBzaG90V2l0aENvbmZp
Z3VyYXRpb246KFdLU25hcHNob3RDb25maWd1cmF0aW9uICopc25hcHNob3RDb25maWd1cmF0aW9u
IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0RhdGEgKnBkZlNuYXBzaG90RGF0YSwgTlNF
cnJvciAqZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTUuNCksIGlvcygxMy40KSk7CistICh2b2lkKV9nZXRQREZGaXJzdFBhZ2VTaXplSW5GcmFtZToo
X1dLRnJhbWVIYW5kbGUgKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShDR1NpemUp
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX2dldFByb2Nlc3NEaXNwbGF5TmFtZVdpdGhDb21w
bGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKikpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCmluZGV4IDVlMTc4
NzE3YzM5ODI2Y2NhOWY5Y2YzYmI5YjlkM2RiMTgyNDk2ZjkuLjhkMTNlYTQxOGRmNDgzZjA3MjQ1
MjVlZDRkMjNjY2U1YWFkODAyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKQEAgLTMyOSw3ICszMjksNyBAQCBwcml2YXRl
OgogICAgICAgICBndGtfd2lkZ2V0X2dyYWJfZm9jdXMoR1RLX1dJREdFVChtX3dlYlZpZXcpKTsK
ICAgICB9CiAKLSAgICB2b2lkIHByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94
eSYgZnJhbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikg
ZmluYWwKKyAgICB2b2lkIHByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYg
ZnJhbWUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKICAgICB7CiAgICAgICAgIHdlYmtpdFdlYlZp
ZXdQcmludEZyYW1lKG1fd2ViVmlldywgJmZyYW1lKTsKICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRleCA4
NTk1ZjIwZTQxYzZmYzMxM2E0M2ZiODJjZDA5YmY5MmU1YWU2OTViLi45MDlkOTIwMDU4MGNlNTUx
ZTM2YzcxOTk3Y2VjNzJjYTM4NDQ2NTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVUlEZWxlZ2F0ZS5oCkBAIC0xMzcsNyArMTM3LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJveHkm
LCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlPcmln
aW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JikgZmluYWw7CiAgICAgICAgIHZv
aWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYsIFdlYkZy
YW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIFVz
ZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JikgZmluYWw7CiAgICAgICAgIHZvaWQgbWVkaWFD
YXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZs
YWdzKSBmaW5hbDsKLSAgICAgICAgdm9pZCBwcmludEZyYW1lKFdlYlBhZ2VQcm94eSYsIFdlYkZy
YW1lUHJveHkmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOworICAgICAgICB2
b2lkIHByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0U2l6ZSYgcGRmRmlyc3RQYWdlU2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKSBmaW5hbDsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2lmIEhBVkUoQVBQX0xJTktT
KQogICAgICAgICBib29sIHNob3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQoX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8gKikgZmluYWw7CkBAIC0yMTcsNyArMjE3LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5T3Jp
Z2luRGF0YWJhc2VOYW1lRGlzcGxheU5hbWVDdXJyZW50UXVvdGFDdXJyZW50T3JpZ2luVXNhZ2VD
dXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNpc2lvbkhhbmRsZXIgOiAxOwogICAg
ICAgICBib29sIHdlYlZpZXdEZWNpZGVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFGb3JTZWN1cml0
eU9yaWdpbkN1cnJlbnRRdW90YVRvdGFsQnl0ZXNOZWVkZWQgOiAxOwogICAgICAgICBib29sIHdl
YlZpZXdQcmludEZyYW1lIDogMTsKLSAgICAgICAgYm9vbCB3ZWJWaWV3UHJpbnRGcmFtZUNvbXBs
ZXRpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3UHJpbnRGcmFtZVBERkZpcnN0
UGFnZVNpemVDb21wbGV0aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0RpZENs
b3NlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3Q2xvc2UgOiAxOwogICAgICAgICBib29sIHdl
YlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUgOiAxOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggOTExOTU2MDM2ODY5YWQ5ZTNlNjhiODlj
MWMyZWMzOTZhMmNjMjk3NC4uMmViNDY1ZmRmZDE1MjY0ZTI5MjcwOTI2MDI0N2EzMzcwN2Q0ZjYz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBAIC0x
NDQsNyArMTQ0LDcgQEAgdm9pZCBVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURlbGVn
YXRlPiBkZWxlZ2F0ZSkKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlRGF0YWJh
c2VRdW90YUZvclNlY3VyaXR5T3JpZ2luRGF0YWJhc2VOYW1lRGlzcGxheU5hbWVDdXJyZW50UXVv
dGFDdXJyZW50T3JpZ2luVXNhZ2VDdXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNp
c2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
VmlldzpkZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46ZGF0YWJhc2VOYW1lOmRp
c3BsYXlOYW1lOmN1cnJlbnRRdW90YTpjdXJyZW50T3JpZ2luVXNhZ2U6Y3VycmVudERhdGFiYXNl
VXNhZ2U6ZXhwZWN0ZWRVc2FnZTpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1l
dGhvZHMud2ViVmlld0RlY2lkZVdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YUZvclNlY3VyaXR5T3Jp
Z2luQ3VycmVudFF1b3RhVG90YWxCeXRlc05lZWRlZCA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZVdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YUZv
clNlY3VyaXR5T3JpZ2luOmN1cnJlbnRRdW90YTp0b3RhbEJ5dGVzTmVlZGVkOmRlY2lzaW9uSGFu
ZGxlcjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UHJpbnRGcmFtZSA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnByaW50RnJhbWU6KV07
Ci0gICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1ByaW50RnJhbWVDb21wbGV0aW9uSGFuZGxl
ciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnByaW50
RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmll
d1ByaW50RnJhbWVQREZGaXJzdFBhZ2VTaXplQ29tcGxldGlvbkhhbmRsZXIgPSBbZGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOnBkZkZpcnN0
UGFnZVNpemU6Y29tcGxldGlvbkhhbmRsZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld0RpZENsb3NlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Iod2Vi
Vmlld0RpZENsb3NlOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdDbG9zZSA9IFtk
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3Q2xvc2U6KV07CiAg
ICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGluZSA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3RnVsbHNjcmVl
bk1heVJldHVyblRvSW5saW5lOildOwpAQCAtMTE5Myw3ICsxMTkzLDcgQEAgdm9pZCBVSURlbGVn
YXRlOjpVSUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJQYWdl
UHJveHkqLCBjb24KICAgICB9KS5nZXQoKV07CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlDbGll
bnQ6OnByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQcm94
eSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBV
SURlbGVnYXRlOjpVSUNsaWVudDo6cHJpbnRGcmFtZShXZWJQYWdlUHJveHkmLCBXZWJGcmFtZVBy
b3h5JiB3ZWJGcmFtZVByb3h5LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHBkZkZpcnN0UGFn
ZVNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
ICAgICBpZiAoIW1fdWlEZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KCk7CkBAIC0xMjAzLDkgKzEyMDMsOSBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpwcmlu
dEZyYW1lKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmIHdlYkZyYW1lUHJveAogICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKIAogICAgIGF1dG8gaGFuZGxlID0gQVBJOjpG
cmFtZUhhbmRsZTo6Y3JlYXRlKHdlYkZyYW1lUHJveHkuZnJhbWVJRCgpKTsKLSAgICBpZiAobV91
aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UHJpbnRGcmFtZUNvbXBsZXRpb25I
YW5kbGVyKSB7Ci0gICAgICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2FsbENo
ZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3OnByaW50RnJh
bWU6Y29tcGxldGlvbkhhbmRsZXI6KSk7Ci0gICAgICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVByaXZh
dGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdldCgp
IHByaW50RnJhbWU6d3JhcHBlcihoYW5kbGUpIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0
cihbY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlciksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgeworICAgIGlmIChtX3VpRGVsZWdhdGUt
Pm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdQcmludEZyYW1lUERGRmlyc3RQYWdlU2l6ZUNvbXBs
ZXRpb25IYW5kbGVyKSB7CisgICAgICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVy
Q2FsbENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3OnBy
aW50RnJhbWU6cGRmRmlyc3RQYWdlU2l6ZTpjb21wbGV0aW9uSGFuZGxlcjopKTsKKyAgICAgICAg
WyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVnYXRl
LT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCkgcHJpbnRGcmFtZTp3cmFwcGVyKGhhbmRsZSkgcGRmRmly
c3RQYWdlU2l6ZTpzdGF0aWNfY2FzdDxDR1NpemU+KHBkZkZpcnN0UGFnZVNpemUpIGNvbXBsZXRp
b25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlciksIGNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgewog
ICAgICAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgp
KQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGNoZWNrZXItPmRpZENhbGxD
b21wbGV0aW9uSGFuZGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKaW5kZXggOTc0ZmFhMDg4NzA2M2Y1ZDE3ZmQyOGQzOWI4NTY3ZjEwNWZlMTA2Mi4uNTFlOWNi
MzQxMGUxNDdiN2Q3NzdkNmY2OTliMTQyMzQyNTI1MzIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01ODY5LDcgKzU4NjksNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6c2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0
YSYgcmVxdWVzdAogICAgIHBhZ2VDbGllbnQoKS5zaG93Q29udGFjdFBpY2tlcihyZXF1ZXN0RGF0
YSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogICAgIAotdm9pZCBXZWJQYWdlUHJv
eHk6OnByaW50RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgdGl0
bGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQg
V2ViUGFnZVByb3h5OjpwcmludEZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25zdCBT
dHJpbmcmIHRpdGxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHBkZkZpcnN0UGFnZVNpemUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBB
U1NFUlQoIW1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24pOwogICAgIG1faXNQZXJmb3Jt
aW5nRE9NUHJpbnRPcGVyYXRpb24gPSB0cnVlOwpAQCAtNTg3OSw3ICs1ODc5LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnByaW50RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgdGl0bGUsIENvbXAKIAogICAgIGZyYW1lLT5kaWRDaGFuZ2VUaXRsZSh0aXRsZSk7CiAK
LSAgICBtX3VpQ2xpZW50LT5wcmludEZyYW1lKCp0aGlzLCAqZnJhbWUsIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgeworICAgIG1fdWlDbGllbnQtPnByaW50RnJhbWUo
KnRoaXMsICpmcmFtZSwgcGRmRmlyc3RQYWdlU2l6ZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGVuZFByaW50aW5nKCk7IC8vIFNlbmQgYSBtZXNz
YWdlIHN5bmNocm9ub3VzbHkgd2hpbGUgbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlvbiBp
cyBzdGlsbCB0cnVlLgogICAgICAgICBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9uID0g
ZmFsc2U7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC04NDQxLDYgKzg0NDEsMTEg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmRyYXdUb1BERihGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
Y29uc3QgT3B0aW9uYWw8RmxvYXRSZWN0PiYKIH0KICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkK
IAordm9pZCBXZWJQYWdlUHJveHk6OmdldFBERkZpcnN0UGFnZVNpemUoV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RmxvYXRT
aXplKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlBhZ2U6OkdldFBERkZpcnN0UGFnZVNpemUoZnJhbWVJRCksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZUJhY2tpbmdT
dG9yZURpc2NhcmRhYmxlU3RhdGUoKQogewogICAgIEFTU0VSVChoYXNSdW5uaW5nUHJvY2Vzcygp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMzE0ZGEzNTRhNzRj
YjE5ZWNhNDE3YzQ0ZTY4OTQ4ZDkwZGJhYjczOC4uOGFkMTNiNjM4NzRlNDk0ZGVmZjQ1YTllNjgz
YjE5MzJlMTAyYjM4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAg
LTEyODMsNiArMTI4Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGJlZ2luUHJpbnRpbmcoV2ViRnJh
bWVQcm94eSosIGNvbnN0IFByaW50SW5mbyYpOwogICAgIHZvaWQgZW5kUHJpbnRpbmcoKTsKICAg
ICB1aW50NjRfdCBjb21wdXRlUGFnZXNGb3JQcmludGluZyhXZWJGcmFtZVByb3h5KiwgY29uc3Qg
UHJpbnRJbmZvJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6
SW50UmVjdD4mLCBkb3VibGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50Jik+JiYpOwor
ICAgIHZvaWQgZ2V0UERGRmlyc3RQYWdlU2l6ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RmxvYXRTaXplKT4mJik7CiAjaWYgUExBVEZP
Uk0oQ09DT0EpCiAgICAgdWludDY0X3QgZHJhd1JlY3RUb0ltYWdlKFdlYkZyYW1lUHJveHkqLCBj
b25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViS2l0OjpTaGFyZWFibGVC
aXRtYXA6OkhhbmRsZSYpPiYmKTsKICAgICB1aW50NjRfdCBkcmF3UGFnZXNUb1BERihXZWJGcmFt
ZVByb3h5KiwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNvdW50
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEFQSTo6RGF0YSopPiYmKTsKQEAgLTE5NzgsNyArMTk3
OSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBkaWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbFdpdGhJ
bWFnZVRyYW5zY29kaW5nKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlVVJMcywgY29uc3QgVmVj
dG9yPFN0cmluZz4mIGFsbG93ZWRNSU1FVHlwZXMpOwogICAgIHZvaWQgc2hvd1NoYXJlU2hlZXQo
Y29uc3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgV2ViQ29y
ZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9uYWw8
VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4mJik+JiYpOwotICAgIHZvaWQgcHJpbnRGcmFt
ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBwcmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1aW50
NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0X3Qg
Y3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YURlbGF5ZWRSZXBseSYmKTsKICAgICB2
b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5nJiBvcmln
aW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0ZXNO
ZWVkZWQsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3Jp
Z2luUXVvdGFEZWxheWVkUmVwbHkmJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCAwNWJmMjFiZmZiN2Q3Y2U5ZDBiMTA0MjAy
NzllNzllOGUxODBlNWQ0Li5jMTQwYzM4ZGY5YjQ5YmJjNjgyYmRjY2FkNGIxMzk4OTJiOGE1NDk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2Fn
ZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2Vz
LmluCkBAIC03MCw3ICs3MCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAgUnVu
T3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0
OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgc3RydWN0IFdlYkNvcmU6OkZpbGVDaG9vc2VyU2V0
dGluZ3MgcGFyYW1ldGVycykKICAgICBTaG93U2hhcmVTaGVldChzdHJ1Y3QgV2ViQ29yZTo6U2hh
cmVEYXRhV2l0aFBhcnNlZFVSTCBzaGFyZURhdGEpIC0+IChib29sIGdyYW50ZWQpIEFzeW5jCiAg
ICAgU2hvd0NvbnRhY3RQaWNrZXIoc3RydWN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERhdGEg
cmVxdWVzdERhdGEpIC0+IChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+PiBp
bmZvKSBBc3luYwotICAgIFByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIFN0cmluZyB0aXRsZSkgLT4gKCkgU3luY2hyb25vdXMKKyAgICBQcmludEZyYW1lKFdlYkNv
cmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgdGl0bGUsIFdlYkNvcmU6OkZsb2F0
U2l6ZSBwZGZGaXJzdFBhZ2VTaXplKSAtPiAoKSBTeW5jaHJvbm91cwogICAgIFJ1bk1vZGFsKCkK
ICAgICBOb3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KFdlYkNvcmU6OkludFJlY3Qg
c2Nyb2xsZXJUaHVtYikKICAgICBSZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKGlu
dDMyX3QgbmV3U3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1
Z2lucy9QREYvUERGUGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
REYvUERGUGx1Z2luLmgKaW5kZXggYmE3YTE4NzZiMWZiMDYzOTI1YTQwYmE3ZWQwYjNhZDY5NWFm
NGYzYy4uZjA3Yjc4ZWVlODhkYjQwMWVjMDc5MjcyNzk0ZmE1NmFlZjJjNTUyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaApAQCAtMjEz
LDYgKzIxMyw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwbHVnaW5IYW5kbGVzQ29udGVudE9mZnNl
dEZvckFjY2Vzc2liaWxpdHlIaXRUZXN0KCkgY29uc3QgZmluYWw7CiAgICAgCiAgICAgUmV0YWlu
UHRyPFBERkRvY3VtZW50PiBwZGZEb2N1bWVudEZvclByaW50aW5nKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9wZGZEb2N1bWVudDsgfQorICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBwZGZEb2N1bWVu
dFNpemVGb3JQcmludGluZygpIGNvbnN0IGZpbmFsOwogICAgIE5TT2JqZWN0ICphY2Nlc3NpYmls
aXR5T2JqZWN0KCkgY29uc3QgZmluYWw7CiAgICAgaWQgYWNjZXNzaWJpbGl0eUFzc29jaWF0ZWRQ
bHVnaW5QYXJlbnRGb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBjb25zdCBmaW5hbDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdp
bi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4ubW0K
aW5kZXggMmFkNDVjNTFjMjE0YTM5YzRmZmI3N2M2YzliOGJiMzQyZmM2YWJmNC4uMjQ4MDBmNmM1
OTM1NGVhNWY1YWI1ODRkOTZiODE2YTc0ZGU2Y2MwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0xNTUwLDYgKzE1NTAsMTEg
QEAgSlNWYWx1ZVJlZiBQREZQbHVnaW46OmpzUERGRG9jUHJpbnQoSlNDb250ZXh0UmVmIGN0eCwg
SlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2IKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoY3R4KTsKIH0KIAorRmxvYXRTaXplIFBERlBsdWdpbjo6cGRmRG9jdW1lbnRTaXplRm9yUHJp
bnRpbmcoKSBjb25zdAoreworICAgIHJldHVybiBGbG9hdFNpemUoW1ttX3BkZkRvY3VtZW50IHBh
Z2VBdEluZGV4OjBdIGJvdW5kc0ZvckJveDprUERGRGlzcGxheUJveENyb3BCb3hdLnNpemUpOwor
fQorCiBKU09iamVjdFJlZiBQREZQbHVnaW46Om1ha2VKU1BERkRvYyhKU0NvbnRleHRSZWYgY3R4
KQogewogICAgIHN0YXRpYyBKU1N0YXRpY0Z1bmN0aW9uIGpzUERGRG9jU3RhdGljRnVuY3Rpb25z
W10gPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW4uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcAppbmRl
eCBiNzZkMzQ0OGYyMGFjYmQ5OTgzNzBkNGI5ZjQ4M2RmZDcxNzQwNjhjLi4wZmFlZmYxZmI4NDVl
MjU0ZDk5NjNlMzU2MGVlOTQ4OTgyYzc5M2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpbi5jcHAKQEAgLTEyNyw0ICsxMjcsMTEgQEAgY29uc3QgUGx1Z2luQ29u
dHJvbGxlciogUGx1Z2luOjpjb250cm9sbGVyKCkgY29uc3QKICAgICByZXR1cm4gbV9wbHVnaW5D
b250cm9sbGVyLmdldCgpOwogfQogCisjaWYgUExBVEZPUk0oQ09DT0EpCitXZWJDb3JlOjpGbG9h
dFNpemUgUGx1Z2luOjpwZGZEb2N1bWVudFNpemVGb3JQcmludGluZygpIGNvbnN0Cit7CisgICAg
cmV0dXJuIHsgfTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKaW5kZXggZGM1NTc5ZmQzMTk1MjQ4Y2Rl
ZTliMDE1NmFmNzgwOTdmOGVhYWY3MC4uZDNjN2FjNzA1MTFmYzcyYzg3MDg0YjhhMzc0ZjlkNmM3
MjY4NTliMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKQEAg
LTU1LDYgKzU1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWZmaW5lVHJhbnNmb3Jt
OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZsb2F0UG9pbnQ7CitjbGFzcyBGbG9hdFNpemU7CiBj
bGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEludFJlY3Q7CkBA
IC0yNzUsNiArMjc2LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdmly
dHVhbCBSZXRhaW5QdHI8UERGRG9jdW1lbnQ+IHBkZkRvY3VtZW50Rm9yUHJpbnRpbmcoKSBjb25z
dCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFNpemUgcGRmRG9jdW1l
bnRTaXplRm9yUHJpbnRpbmcoKSBjb25zdDsKICAgICB2aXJ0dWFsIE5TT2JqZWN0ICphY2Nlc3Np
YmlsaXR5T2JqZWN0KCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgaWQgYWNjZXNz
aWJpbGl0eUFzc29jaWF0ZWRQbHVnaW5QYXJlbnRGb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQq
KSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
aW5kZXggYzA5YTI3YjdlN2Y1M2ZiNDQyNDQ0NzFhNmQ2Yjc0ZmNlMDVkNDNhMC4uZDk5MzA5MWE4
MTAzZjhkMDhmNzMyZjhhOWZkNTU1MDYyODBjOWRkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAK
QEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
c01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCiAjaW5j
bHVkZSAiUGFnZUJhbm5lci5oIgorI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNpbmNsdWRlICJS
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXJDb3B5
LmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKQEAgLTczNSw4ICs3MzYsMTYgQEAgdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OnByaW50KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nV2l0aERpcmVjdGlv
biYgdGl0bGUpCiAgICAgfQogI2VuZGlmCiAKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgcGRmRmly
c3RQYWdlU2l6ZTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAoYXV0byogcGx1Z2luVmll
dyA9IFdlYlBhZ2U6OnBsdWdpblZpZXdGb3JGcmFtZSgmZnJhbWUpKSB7CisgICAgICAgIGlmIChh
dXRvKiBwbHVnaW4gPSBwbHVnaW5WaWV3LT5wbHVnaW4oKSkKKyAgICAgICAgICAgIHBkZkZpcnN0
UGFnZVNpemUgPSBwbHVnaW4tPnBkZkRvY3VtZW50U2l6ZUZvclByaW50aW5nKCk7CisgICAgfQor
I2VuZGlmCisKICAgICBhdXRvIHRydW5jYXRlZFRpdGxlID0gdHJ1bmNhdGVGcm9tRW5kKHRpdGxl
LCBtYXhUaXRsZUxlbmd0aCk7Ci0gICAgbV9wYWdlLnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBseShN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQcmludEZyYW1lKHdlYkZyYW1lLT5mcmFtZUlEKCksIHRy
dW5jYXRlZFRpdGxlLnN0cmluZyksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlByaW50RnJhbWU6
OlJlcGx5KCkpOworICAgIG1fcGFnZS5zZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6UHJpbnRGcmFtZSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCB0cnVuY2F0ZWRU
aXRsZS5zdHJpbmcsIHBkZkZpcnN0UGFnZVNpemUpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQ
cmludEZyYW1lOjpSZXBseSgpKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2VlZGVk
RGF0YWJhc2VRdW90YShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBE
YXRhYmFzZURldGFpbHMgZGV0YWlscykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQppbmRleCBmNTdkODQ5YTYyMDExNDRj
NTczNzdlY2MzNzExNmEyMThkZjEzYThlLi5jZmI1NWFhMmRiMDhkNWNkMjdiYjFhNDVhZWJmOWE3
MDM5N2M5YzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9D
b2NvYS9XZWJQYWdlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCkBAIC00MTYsNiArNDE2LDI3IEBAIHZvaWQgV2ViUGFn
ZTo6Y29uc3VtZU5ldHdvcmtFeHRlbnNpb25TYW5kYm94RXh0ZW5zaW9ucyhjb25zdCBTYW5kYm94
RXh0ZW5zaW9uOjpICiAjZW5kaWYKIH0KIAordm9pZCBXZWJQYWdlOjpnZXRQREZGaXJzdFBhZ2VT
aXplKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFdlYkNvcmU6OkZsb2F0U2l6ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgYXV0
byogd2ViRnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlEKTsK
KyAgICBpZiAoIXdlYkZyYW1lKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9
KTsKKworICAgIGF1dG8qIGNvcmVGcmFtZSA9IHdlYkZyYW1lLT5jb3JlRnJhbWUoKTsKKyAgICBp
ZiAoIWNvcmVGcmFtZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisK
KyAgICBhdXRvKiBwbHVnaW5WaWV3ID0gcGx1Z2luVmlld0ZvckZyYW1lKGNvcmVGcmFtZSk7Cisg
ICAgaWYgKCFwbHVnaW5WaWV3KQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoeyB9
KTsKKyAgICAKKyAgICBhdXRvKiBwbHVnaW4gPSBwbHVnaW5WaWV3LT5wbHVnaW4oKTsKKyAgICBp
ZiAoIXBsdWdpbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisKKyAg
ICBjb21wbGV0aW9uSGFuZGxlcihGbG9hdFNpemUocGx1Z2luLT5wZGZEb2N1bWVudFNpemVGb3JQ
cmludGluZygpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExB
VEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IGI3OTQ3MThiYzA5YWY5M2ZjNDFkNmM0YmVlMjgzMDQ5MjhkMjE2M2UuLjNlMzgx
MzIxNWM1MDA4Y2IwOGU3MjNhOWIzNTkwN2U3NTZhZGQ4NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC03MDg5LDYgKzcwODksMTEgQEAgdm9p
ZCBXZWJQYWdlOjpjb25maWd1cmVMb2dnaW5nQ2hhbm5lbChjb25zdCBTdHJpbmcmIGNoYW5uZWxO
YW1lLCBXVEZMb2dDaGFubmVsU3QKIH0KIAogI2lmICFQTEFURk9STShDT0NPQSkKK3ZvaWQgV2Vi
UGFnZTo6Z2V0UERGRmlyc3RQYWdlU2l6ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RmxvYXRTaXplKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworfQorCiB2b2lkIFdlYlBhZ2U6Omdl
dFByb2Nlc3NEaXNwbGF5TmFtZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDk0NjJlYjQ0YmJhYjIx
MjliZWE2N2E1NWRkNzg3ZDU0NWVjODBmMjguLjdkNTQxZGRmNzA0YTY3MDRiMTlmYWQyOTNlMTY1
ZjA0NzY5YmMwOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKQEAgLTE1MDcsNiArMTUwNyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2FkRGF0YShMb2Fk
UGFyYW1ldGVycyYmKTsKICAgICB2b2lkIGxvYWRBbHRlcm5hdGVIVE1MKExvYWRQYXJhbWV0ZXJz
JiYpOwogICAgIHZvaWQgbmF2aWdhdGVUb1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soY29uc3Qg
U3RyaW5nJiB1cmwsIFdlYkNvcmU6OkludFBvaW50IGRvY3VtZW50UG9pbnQsIFdlYkNvcmU6Oklu
dFBvaW50IHNjcmVlblBvaW50KTsKKyAgICB2b2lkIGdldFBERkZpcnN0UGFnZVNpemUoV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkZsb2F0
U2l6ZSk+JiYpOwogICAgIHZvaWQgcmVsb2FkKHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgdWludDMy
X3QgcmVsb2FkT3B0aW9ucywgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlJiYpOwogICAgIHZvaWQg
Z29Ub0JhY2tGb3J3YXJkSXRlbSh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIGNvbnN0IFdlYkNvcmU6
OkJhY2tGb3J3YXJkSXRlbUlkZW50aWZpZXImLCBXZWJDb3JlOjpGcmFtZUxvYWRUeXBlLCBXZWJD
b3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2ll
c0RhdGE+JiYpOwogICAgIHZvaWQgdHJ5UmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgpp
bmRleCAzNGIxMmM0NjQ0NGZmMTU1YTVlMTQzMjE5OWFkOGExNzg5OTE1ODJiLi41Mjg2MDFjNjEw
MTJmYWZlZWU4NjE5YTUzMTg3OGYxZTE0OWRjOGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KQEAgLTE4Miw2ICsxODIs
NyBAQCBHZW5lcmF0ZVN5bnRoZXRpY0VkaXRpbmdDb21tYW5kKGVudW06dWludDhfdCBXZWJLaXQ6
OlN5bnRoZXRpY0VkaXRpbmdDb21tYW5kVHlwZQogICAgIExvYWRBbHRlcm5hdGVIVE1MKHN0cnVj
dCBXZWJLaXQ6OkxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKQogCiAgICAgTmF2aWdhdGVU
b1BERkxpbmtXaXRoU2ltdWxhdGVkQ2xpY2soU3RyaW5nIHVybCwgV2ViQ29yZTo6SW50UG9pbnQg
ZG9jdW1lbnRQb2ludCwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuUG9pbnQpCisgICAgR2V0UERG
Rmlyc3RQYWdlU2l6ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCkgLT4gKFdlYkNv
cmU6OkZsb2F0U2l6ZSBzaXplKSBBc3luYwogCiAgICAgUmVsb2FkKHVpbnQ2NF90IG5hdmlnYXRp
b25JRCwgdWludDMyX3QgcmVsb2FkT3B0aW9ucywgV2ViS2l0OjpTYW5kYm94RXh0ZW5zaW9uOjpI
YW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSkKICAgICBTdG9wTG9hZGluZygpCmRpZmYgLS1n
aXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTc4YjUyMTI4NDQx
ZjdlYzNlYzcxNWQyYzg1YThlZjJkNTY3ZmQxZi4uOGIyODk0ZWM1ZWQ5NTI3NTE1YjcwNDg2YTVm
NDVkMzQ0ODQ4OGQxNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTAyLTE3ICBBbGV4IENocmlzdGVuc2VuICA8
YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFNQSSBmb3IgZ2V0dGluZyBz
aXplIG9mIFBERiBkb2N1bWVudCBkdXJpbmcgcHJpbnRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjA2NAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzQzNzA4OTE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgR2VvZmYgR2FyZW4gYW5kIFRpbSBI
b3J0b24uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC90
ZXN0X3ByaW50LnBkZjogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9XS1BERlZpZXcubW06CisgICAgICAgICgtW1ByaW50VUlEZWxlZ2F0ZSBfd2ViVmll
dzpwcmludEZyYW1lOnBkZkZpcnN0UGFnZVNpemU6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAg
ICAgICgtW1ByaW50VUlEZWxlZ2F0ZSB3YWl0Rm9yUGFnZVNpemVdKToKKyAgICAgICAgKC1bUHJp
bnRVSURlbGVnYXRlIGxhc3RQcmludGVkRnJhbWVdKToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIx
LTAyLTE2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgQWRkIEFQSSB0byBkaXNhYmxlIEhUVFBTIHVwZ3JhZGUKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMmQyZjllNjI3NjkwNmU1ZjU0MGFmNDkxMjg4NTYzNjMyNjViNWM5ZS4uOGM0NTdm
OTFiYzVlNWEzMjMxZjY1M2MzY2U5ZTUyYWYyYWE4MTI2NSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTQ2MSw2ICs0NjEsNyBAQAogCQk1QzRBODQ5NTFGN0VFRkZDMDBBQ0ZDNTQgLyogQ29u
ZmlndXJhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVDNEE4NDk0MUY3RUVGRDQwMEFDRkM1NCAvKiBDb25maWd1cmF0aW9uLm1tICovOyB9Owog
CQk1QzY5QkRENTFGODJBN0VGMDAwRjRGNEIgLyogSmF2YVNjcmlwdER1cmluZ05hdmlnYXRpb24u
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzY5QkRE
NDFGODJBN0VCMDAwRjRGNEIgLyogSmF2YVNjcmlwdER1cmluZ05hdmlnYXRpb24ubW0gKi87IH07
CiAJCTVDNkUyN0E3MjI0RUVCRUEwMDEyODczNiAvKiBVUkxDYW5vbmljYWxpemF0aW9uLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM2RTI3QTYyMjRF
RUJFQTAwMTI4NzM2IC8qIFVSTENhbm9uaWNhbGl6YXRpb24ubW0gKi87IH07CisJCTVDNzEwMUM3
MjVERDk4QjYwMDY4NjIwMCAvKiB0ZXN0X3ByaW50LnBkZiBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzcxMDFDNjI1REQ5ODg3MDA2ODYyMDAg
LyogdGVzdF9wcmludC5wZGYgKi87IH07CiAJCTVDNzE0ODk1MjEyM0E0MEEwMEZERTNDNSAvKiBX
S1dlYnNpdGVEYXRhc3RvcmUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1QzcxNDg5NDIxMjNBNDA3MDBGREUzQzUgLyogV0tXZWJzaXRlRGF0YXN0b3Jl
Lm1tICovOyB9OwogCQk1Qzc1NzE2MTIyMTI0QzUyMDBCOUU1QUMgLyogQnVuZGxlUmV0YWluUGFn
ZVBsdWdJbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDNzU3MTVGMjIxMjQ5QkQwMEI5RTVBQyAvKiBCdW5kbGVSZXRhaW5QYWdlUGx1Z0luLm1tICov
OyB9OwogCQk1Qzc5NjQxMDFFQjAyNzhEMDA3NUQ3NEMgLyogRXZlbnRNb2RpZmllcnMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3OTY0MEYxRUIw
MjY5QjAwNzVENzRDIC8qIEV2ZW50TW9kaWZpZXJzLmNwcCAqLzsgfTsKQEAgLTE2NDksNiArMTY1
MCw3IEBACiAJCQkJQzk1OTg0RjcxRTM2QkNFRjAwMkMwRDQ1IC8qIHRlc3Qtd2l0aG91dC1hdWRp
by10cmFjay5tcDQgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJNTI0QkJDQTExOUUzMEM3NzAw
MkYxQUYxIC8qIHRlc3QubXA0IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTdBRTlFNTA5MUFF
NUFFOEIwMENGODc0QiAvKiB0ZXN0LnBkZiBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQk1Qzcx
MDFDNzI1REQ5OEI2MDA2ODYyMDAgLyogdGVzdF9wcmludC5wZGYgaW4gQ29weSBSZXNvdXJjZXMg
Ki8sCiAJCQkJMkU5ODk2MTUxRDhGMDkzODAwNzM5ODkyIC8qIHRleHQtYW5kLXBhc3N3b3JkLWlu
cHV0cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0Q0Q3NEM2MjBGREFDRkEwMERF
Mzc5NCAvKiB0ZXh0LXdpdGgtYXN5bmMtc2NyaXB0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CiAJCQkJRjQ0QzdBMDUyMEZBQUUzQzAwMTQ0NzhDIC8qIHRleHQtd2l0aC1kZWZlcnJlZC1zY3Jp
cHQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKQEAgLTIyNDcsNiArMjI0OSw3IEBACiAJCTVD
NjgzNDcxMjM1QUNDN0MwMDQxRTZCMSAvKiBTZXJ2aWNlV29ya2VyVENQU2VydmVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcnZpY2VXb3JrZXJUQ1BTZXJ2ZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM2OUJERDQxRjgyQTdFQjAwMEY0RjRCIC8qIEph
dmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gSmF2YVNjcmlwdER1cmluZ05hdmlnYXRpb24ubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVDNkUyN0E2MjI0RUVCRUEwMDEyODczNiAvKiBVUkxDYW5vbmljYWxp
emF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVVJMQ2Fu
b25pY2FsaXphdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM3MTAxQzYy
NUREOTg4NzAwNjg2MjAwIC8qIHRlc3RfcHJpbnQucGRmICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gaW1hZ2UucGRmOyBwYXRoID0gdGVzdF9wcmludC5w
ZGY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNzE0ODk0MjEyM0E0MDcwMEZERTND
NSAvKiBXS1dlYnNpdGVEYXRhc3RvcmUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXS1dlYnNpdGVEYXRhc3RvcmUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTVDNzJFOENEMjQ0RkZDRTMwMDM4MUVCNyAvKiBUZXN0TGVnYWN5RG93bmxvYWREZWxl
Z2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBUZXN0TGVnYWN5RG93bmxv
YWREZWxlZ2F0ZS5oOyBwYXRoID0gY29jb2EvVGVzdExlZ2FjeURvd25sb2FkRGVsZWdhdGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUM3MkU4Q0UyNDRGRkNFNDAwMzgxRUI3IC8q
IFRlc3RMZWdhY3lEb3dubG9hZERlbGVnYXRlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBuYW1lID0gVGVzdExlZ2FjeURvd25sb2FkRGVsZWdhdGUubW07IHBhdGggPSBjb2Nv
YS9UZXN0TGVnYWN5RG93bmxvYWREZWxlZ2F0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTQyMjgsNiArNDIzMSw3IEBACiAJCQkJNzY3MzQ5OTcxOTMwMTZEQzAwRTQ0REY5IC8q
IFN0b3BMb2FkaW5nRHVyaW5nRGlkRmFpbFByb3Zpc2lvbmFsTG9hZC5jcHAgKi8sCiAJCQkJNzY3
MzQ5OUExOTMwMTgyRTAwRTQ0REY5IC8qIFN0b3BMb2FkaW5nRHVyaW5nRGlkRmFpbFByb3Zpc2lv
bmFsTG9hZF9idW5kbGUuY3BwICovLAogCQkJCTFBRTcyRjQ3MTczRUIyMTQwMDYzNjJGMCAvKiBU
ZXJtaW5hdGVUd2ljZS5jcHAgKi8sCisJCQkJNUM3MTAxQzYyNUREOTg4NzAwNjg2MjAwIC8qIHRl
c3RfcHJpbnQucGRmICovLAogCQkJCUNFMzUyNEYxMUIxNDJCOEQwMDI4QTdDNSAvKiBUZXh0Rmll
bGREaWRCZWdpbkFuZEVuZEVkaXRpbmcuY3BwICovLAogCQkJCUNFMzUyNEYyMUIxNDJCOEQwMDI4
QTdDNSAvKiBUZXh0RmllbGREaWRCZWdpbkFuZEVuZEVkaXRpbmdfQnVuZGxlLmNwcCAqLywKIAkJ
CQk0QTQxMEY0QjE5QUY3QkQ2MDAyRUJBQjUgLyogVXNlck1lZGlhLmNwcCAqLywKZGlmZiAtLWdp
dCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L3Rlc3RfcHJpbnQucGRmIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvdGVzdF9wcmludC5wZGYKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDMyZWY5MDBjY2M0ZjA4Y2QwYzYxMWVjZjFhZWEwNWRiZmNmNjhjYwpHSVQgYmluYXJ5IHBhdGNo
CmxpdGVyYWwgMjM3Nwp6Y21iVk9aRXc+czVhdGl+S2xzWjgycjw3VGFhdlVNISYoTGQjPTNTQU5F
SUtsKUVQbC15ZH5+NWAxNWRRQ3VeRT8KejIkMyE/elBzbiVlMFNjX1k8bGB5OTAlbStIKHQtK0I3
JDtpdTc4bHhoX0cye1JAK3BVYmoxSnI4V1QxdGJ6Klo8CnpPY1NmPWl8SEg1clFreHVKUGRpblV2
ZDdOXk91QzNvN0xZWCMkJSQzNipAO2AlZ2R7dXgwPHBeVncxSkcwakhCMgp6VUN7Xng9N2ZEdEhu
MGZYcTZKNG42UXFZYkxCYypIX3NKcUheSUo9Vz5ZfkNQM1QrV0sqT2wzcERIeTdnbU0qbFYKek85
dDdjPmBGZ2ElRlo/KmN+Wlk4XzUxN19WUDd3PGY5VFhZPGU4d3Rgd2d6YkFEZnVNPmNVb1pJWWVL
bWUrdS1ZCnpTK3A2a3FZS18qM2x9O1NuNkN5UmFFc15FT2FJR3JQb3A8RF9eUyQrSVNCNHR1a3ol
P0prVFpqcT1ZPT9HIypPZQp6JSNzb1V0OVBsakYmT14tIzw9YW9SQlM8QjVjVi0mS3xXanh6RzBH
QGlhP3RVQHs9eFo/MDNxTVVzPFRXNE1EbTMKenZxNTAhOWZXOGhFKVBJMz5AR3h3RXpsaWRRKz1Q
T2RqOVQmcldGd29hZFRIYEt7JX1POV53TzEwbmJ2Q2o2QFBZCno0e15MP0ZhVU5LcGltU3hBamQr
P0t9SGF3dn1YeTljeFVQSVAlM2EheUsoSkIpejYrUWlWaH1kVkped3RmZHNuUgp6PiE4QjgxLW0x
RmxZOz08I21IUUFCOElRMVVab3F0cGkhb1ZUKkJ7PWlTfSUkRDxNI09DU2N9eSl2cjslVGdreUwK
eiEoaWYmLXVCUz1YVDUkR3tQc1Nmdz4/JUd5Pmlkck09dSt7az5JUTYzNyEydXNze35XaXx3Xl82
VnVIayFydHJyCno8fnl7TzxqYEdUQCliMUJmT0VvNWEkQylHSVdlMUNRKCZfS2R0JW42VC0rdXAz
fHdGNUA1PHlTVlVHPlJQVj0+ZQp6MTdwY2YqRCZwO0l5RVp8e3E4QFk+bz9INmVvRGVATlViU2g8
a2ZtQndENSUwP1dVLWxUalIwb2BkdXNVek9ieF8Kem83em8qYFJUdExnQE1Ze049WT9UVDE2M0BK
RTRsUWZWWH5QT29mfDtkcWMmTThmXj5PSXYoSnRTa09fWHZ5QWdOCno8WGwweylEWFN7JlpVTW85
R0oyNkc9KiFCa3N5T19xe2s4UDtGZCEtPllKSkxRMGsxcCRRWTJfZmxJO1ZBZmckNAp6cSlEaD15
bEMtQTY5WDg0OWh3Wkd1UkFtZHhrcG5HJShhZU9qRVVeaFJHJjckNnokNmk5YHRPJDBEPn5fJGNk
bjUKelNJRDVSRk9YMnE5YytqdlRiRE5NVnVjS1F4ZFBnLVchSUtUelNnRHRlYGp1dHJTN1BOSHB6
YyEreXsxNldRTXZVClYpQXdYalRETUM9RGp+P3goYzZudEAmfXF7T2heQyMKCmxpdGVyYWwgMApI
Y21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV0tQREZWaWV3Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9XS1BERlZpZXcubW0KaW5kZXggNzBmY2Q3YWViMDgxMjU3ZTQ2YWFiOTJhZDE4ZmUyMTk2M2Zh
YTBhZi4uM2IxYzRmMWFhZDM3MDBkZjhmMmU4NDEwM2UyZTBiYjRlYzM0ZTQzOCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW0KQEAg
LTQzLDcgKzQzLDcgQEAKICNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KICNlbmRpZgogCi0jaWYg
UExBVEZPUk0oSU9TKSB8fCBFTkFCTEUoVUlfUFJPQ0VTU19QREZfSFVEKQorI2lmIFBMQVRGT1JN
KElPUykgfHwgRU5BQkxFKFVJX1BST0NFU1NfUERGX0hVRCkgfHwgUExBVEZPUk0oTUFDKQogc3Rh
dGljIE5TRGF0YSAqcGRmRGF0YSgpCiB7CiAgICAgcmV0dXJuIFtOU0RhdGEgZGF0YVdpdGhDb250
ZW50c09mVVJMOltbTlNCdW5kbGUgbWFpbkJ1bmRsZV0gVVJMRm9yUmVzb3VyY2U6QCJ0ZXN0IiB3
aXRoRXh0ZW5zaW9uOkAicGRmIiBzdWJkaXJlY3Rvcnk6QCJUZXN0V2ViS2l0QVBJLnJlc291cmNl
cyJdXTsKQEAgLTM3Miw0ICszNzIsMTE3IEBAIFRFU1QoUERGSFVELCBMb2FkUERGVHlwZVdpdGhQ
bHVnaW5zQmxvY2tlZCkKICAgICBjaGVja0ZyYW1lKHdlYlZpZXcuX3BkZkhVRHMuYW55T2JqZWN0
LmZyYW1lLCAwLCAwLCA4MDAsIDYwMCk7CiB9CiAKKyNlbmRpZiAvLyBFTkFCTEUoVUlfUFJPQ0VT
U19QREZfSFVEKQorCisjaWYgUExBVEZPUk0oTUFDKQorCitAaW50ZXJmYWNlIFByaW50VUlEZWxl
Z2F0ZSA6IE5TT2JqZWN0IDxXS1VJRGVsZWdhdGU+CisKKy0gKE5TU2l6ZSl3YWl0Rm9yUGFnZVNp
emU7CistIChfV0tGcmFtZUhhbmRsZSAqKWxhc3RQcmludGVkRnJhbWU7CisKK0BlbmQKKworQGlt
cGxlbWVudGF0aW9uIFByaW50VUlEZWxlZ2F0ZSB7CisgICAgTlNTaXplIF9wYWdlU2l6ZTsKKyAg
ICBib29sIF9yZWNlaXZlZFNpemU7CisgICAgUmV0YWluUHRyPF9XS0ZyYW1lSGFuZGxlPiBfbGFz
dFByaW50ZWRGcmFtZTsKK30KKworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBwcmludEZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lIHBkZkZpcnN0UGFnZVNpemU6KENH
U2l6ZSlzaXplIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFu
ZGxlcgoreworICAgIF9wYWdlU2l6ZSA9IHNpemU7CisgICAgX3JlY2VpdmVkU2l6ZSA9IHRydWU7
CisgICAgX2xhc3RQcmludGVkRnJhbWUgPSBmcmFtZTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcigp
OworfQorCistIChOU1NpemUpd2FpdEZvclBhZ2VTaXplCit7CisgICAgX3JlY2VpdmVkU2l6ZSA9
IGZhbHNlOworICAgIHdoaWxlICghX3JlY2VpdmVkU2l6ZSkKKyAgICAgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6c3BpblJ1bkxvb3AoKTsKKyAgICByZXR1cm4gX3BhZ2VTaXplOworfQorCistIChf
V0tGcmFtZUhhbmRsZSAqKWxhc3RQcmludGVkRnJhbWUKK3sKKyAgICByZXR1cm4gX2xhc3RQcmlu
dGVkRnJhbWUuZ2V0KCk7Cit9CisKK0BlbmQKKworVEVTVChQREYsIFByaW50U2l6ZSkKK3sKKyAg
ICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSBhdXRv
cmVsZWFzZV07CisgICAgYXV0byBzY2hlbWVIYW5kbGVyID0gW1tUZXN0VVJMU2NoZW1lSGFuZGxl
ciBuZXddIGF1dG9yZWxlYXNlXTsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVIYW5k
bGVyOnNjaGVtZUhhbmRsZXIgZm9yVVJMU2NoZW1lOkAidGVzdCJdOworICAgIGF1dG8gd2ViVmll
dyA9IFtbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uXSBhdXRvcmVsZWFzZV07Cisg
ICAgYXV0byBkZWxlZ2F0ZSA9IFtbUHJpbnRVSURlbGVnYXRlIG5ld10gYXV0b3JlbGVhc2VdOwor
ICAgIHdlYlZpZXcuVUlEZWxlZ2F0ZSA9IGRlbGVnYXRlOworCisgICAgc2NoZW1lSGFuZGxlci5z
dGFydFVSTFNjaGVtZVRhc2tIYW5kbGVyID0gXihXS1dlYlZpZXcgKiwgaWQ8V0tVUkxTY2hlbWVU
YXNrPiB0YXNrKSB7CisgICAgICAgIGF1dG8gdXJsID0gdGFzay5yZXF1ZXN0LlVSTDsKKyAgICAg
ICAgTlNEYXRhICpkYXRhOworICAgICAgICBOU1N0cmluZyAqbWltZVR5cGU7CisgICAgICAgIGlm
IChbdXJsLnBhdGggaXNFcXVhbFRvU3RyaW5nOkAiL21haW4uaHRtbCJdKSB7CisgICAgICAgICAg
ICBtaW1lVHlwZSA9IEAidGV4dC9odG1sIjsKKyAgICAgICAgICAgIGNvbnN0IGNoYXIqIGh0bWwg
PSAiPGJyLz48aWZyYW1lIHNyYz0ndGVzdC5wZGYnIGlkPSdwZGZmcmFtZSc+PC9pZnJhbWU+IjsK
KyAgICAgICAgICAgIGRhdGEgPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6aHRtbCBsZW5ndGg6c3Ry
bGVuKGh0bWwpXTsKKyAgICAgICAgfSBlbHNlIGlmIChbdXJsLnBhdGggaXNFcXVhbFRvU3RyaW5n
OkAiL3Rlc3QucGRmIl0pIHsKKyAgICAgICAgICAgIG1pbWVUeXBlID0gQCJhcHBsaWNhdGlvbi9w
ZGYiOworICAgICAgICAgICAgZGF0YSA9IHBkZkRhdGEoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIEVYUEVDVF9XS19TVFJFUSh1cmwucGF0aCwgIi90ZXN0X3ByaW50LnBkZiIpOwor
ICAgICAgICAgICAgbWltZVR5cGUgPSBAImFwcGxpY2F0aW9uL3BkZiI7CisgICAgICAgICAgICBk
YXRhID0gW05TRGF0YSBkYXRhV2l0aENvbnRlbnRzT2ZVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAInRlc3RfcHJpbnQiIHdpdGhFeHRlbnNpb246QCJwZGYiIHN1YmRp
cmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgICAgICB9CisgICAgICAg
IE5TVVJMUmVzcG9uc2UgKnJlc3BvbnNlID0gW1tbTlNVUkxSZXNwb25zZSBhbGxvY10gaW5pdFdp
dGhVUkw6dXJsIE1JTUVUeXBlOm1pbWVUeXBlIGV4cGVjdGVkQ29udGVudExlbmd0aDpkYXRhLmxl
bmd0aCB0ZXh0RW5jb2RpbmdOYW1lOm5pbF0gYXV0b3JlbGVhc2VdOworICAgICAgICBbdGFzayBk
aWRSZWNlaXZlUmVzcG9uc2U6cmVzcG9uc2VdOworICAgICAgICBbdGFzayBkaWRSZWNlaXZlRGF0
YTpkYXRhXTsKKyAgICAgICAgW3Rhc2sgZGlkRmluaXNoXTsKKyAgICB9OworCisgICAgW3dlYlZp
ZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbTlNVUkwgVVJMV2l0
aFN0cmluZzpAInRlc3Q6Ly8vdGVzdF9wcmludC5wZGYiXV1dOworICAgIGF1dG8gc2l6ZSA9IFtk
ZWxlZ2F0ZSB3YWl0Rm9yUGFnZVNpemVdOworICAgIEVYUEVDVF9FUShzaXplLmhlaWdodCwgNzky
LjApOworICAgIEVYUEVDVF9FUShzaXplLndpZHRoLCA2MTIuMCk7CisKKyAgICBfX2Jsb2NrIGJv
b2wgcmVjZWl2ZWRTaXplID0gZmFsc2U7CisgICAgW3dlYlZpZXcgX2dldFBERkZpcnN0UGFnZVNp
emVJbkZyYW1lOndlYlZpZXcuX21haW5GcmFtZSBjb21wbGV0aW9uSGFuZGxlcjpeKENHU2l6ZSBy
ZXF1ZXN0ZWRTaXplKSB7CisgICAgICAgIEVYUEVDVF9FUShyZXF1ZXN0ZWRTaXplLmhlaWdodCwg
NzkyLjApOworICAgICAgICBFWFBFQ1RfRVEocmVxdWVzdGVkU2l6ZS53aWR0aCwgNjEyLjApOwor
ICAgICAgICByZWNlaXZlZFNpemUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmcmVjZWl2ZWRTaXplKTsKKworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJ0ZXN0Oi8v
L21haW4uaHRtbCJdXV07CisgICAgW3dlYlZpZXcgX3Rlc3Rfd2FpdEZvckRpZEZpbmlzaE5hdmln
YXRpb25dOworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAIndpbmRvdy5wcmludCgp
IiBjb21wbGV0aW9uSGFuZGxlcjpuaWxdOworICAgIGF1dG8gbWFpbkZyYW1lU2l6ZSA9IFtkZWxl
Z2F0ZSB3YWl0Rm9yUGFnZVNpemVdOworICAgIEVYUEVDVF9FUShtYWluRnJhbWVTaXplLmhlaWdo
dCwgMC4wKTsKKyAgICBFWFBFQ1RfRVEobWFpbkZyYW1lU2l6ZS53aWR0aCwgMC4wKTsKKyAgICAK
KyAgICByZWNlaXZlZFNpemUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBfZ2V0UERGRmlyc3RQYWdl
U2l6ZUluRnJhbWU6d2ViVmlldy5fbWFpbkZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOl4oQ0dTaXpl
IHJlcXVlc3RlZFNpemUpIHsKKyAgICAgICAgRVhQRUNUX0VRKHJlcXVlc3RlZFNpemUuaGVpZ2h0
LCAwLjApOworICAgICAgICBFWFBFQ1RfRVEocmVxdWVzdGVkU2l6ZS53aWR0aCwgMC4wKTsKKyAg
ICAgICAgcmVjZWl2ZWRTaXplID0gdHJ1ZTsKKyAgICB9XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpV
dGlsOjpydW4oJnJlY2VpdmVkU2l6ZSk7CisKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3Jp
cHQ6QCJwZGZmcmFtZS5jb250ZW50V2luZG93LnByaW50KCkiIGNvbXBsZXRpb25IYW5kbGVyOm5p
bF07CisgICAgYXV0byBwZGZGcmFtZVNpemUgPSBbZGVsZWdhdGUgd2FpdEZvclBhZ2VTaXplXTsK
KyAgICBFWFBFQ1RfTkVBUihwZGZGcmFtZVNpemUuaGVpZ2h0LCAyOC43OTk5OTksIC4wMDAwMSk7
CisgICAgRVhQRUNUX05FQVIocGRmRnJhbWVTaXplLndpZHRoLCAxMjkuNjAwMDA2LCAuMDAwMDEp
OworCisgICAgcmVjZWl2ZWRTaXplID0gZmFsc2U7CisgICAgW3dlYlZpZXcgX2dldFBERkZpcnN0
UGFnZVNpemVJbkZyYW1lOmRlbGVnYXRlLmxhc3RQcmludGVkRnJhbWUgY29tcGxldGlvbkhhbmRs
ZXI6XihDR1NpemUgcmVxdWVzdGVkU2l6ZSkgeworICAgICAgICBFWFBFQ1RfTkVBUihyZXF1ZXN0
ZWRTaXplLmhlaWdodCwgMjguNzk5OTk5LCAuMDAwMDEpOworICAgICAgICBFWFBFQ1RfTkVBUihy
ZXF1ZXN0ZWRTaXplLndpZHRoLCAxMjkuNjAwMDA2LCAuMDAwMDEpOworICAgICAgICByZWNlaXZl
ZFNpemUgPSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRTaXplKTsKK30KKwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420791</attachid>
            <date>2021-02-17 20:37:03 -0800</date>
            <delta_ts>2021-02-18 02:13:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222064-20210217203703.patch</filename>
            <type>text/plain</type>
            <size>41787</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNhN2MzNTg3OWFhYWVkMmZm
NWZiZmY2MTcyNjM0MzA2NjY0YmY4MWUuLmEwNDZmZmM1Y2IxNWI3NjZmYTY0ZGE4MjU5YWRjN2Yz
Y2ViZWMyMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjEtMDItMTcgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBBZGQgU1BJIGZv
ciBnZXR0aW5nIHNpemUgb2YgUERGIGRvY3VtZW50IGR1cmluZyBwcmludGluZworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMDY0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS83NDM3MDg5MT4KKworICAgICAgICBSZXZpZXdlZCBieSBHZW9mZiBHYXJl
biBhbmQgVGltIEhvcnRvbi4KKworICAgICAgICBXaGVuIHByaW50aW5nIGEgUERGLCB3ZSB3YW50
IHRvIGtub3cgaXRzIHBhZ2Ugc2l6ZS4gIElmIHRoZSBwcmludCBpcyBpbml0aWF0ZWQgYnkgdGhl
IHdlYiBwcm9jZXNzIChzdWNoIGFzIHdoZW4gd2luZG93LnByaW50IGlzIGNhbGxlZAorICAgICAg
ICBvciBpZiB0aGUgUERGIGNvbnRhaW5zIEphdmFTY3JpcHQgdGhhdCB0ZWxscyB0aGUgYnJvd3Nl
ciB0byBwcmludCBpdCkgdGhlbiB3ZSB3b3VsZCBsaWtlIHRoYXQgaW5mb3JtYXRpb24gd2l0aCB0
aGUgcHJpbnQgcmVxdWVzdCBzbyB3ZQorICAgICAgICBkb24ndCBoYXZlIHRvIGFzayB0aGUgd2Vi
IHByb2Nlc3MsIHdoaWNoIGlzIGh1bmcgd2FpdGluZyBmb3IgYSBzeW5jaHJvbm91cyBtZXNzYWdl
IHJlcGx5LiAgSWYgdGhlIHByaW50IGlzIGluaXRpYXRlZCBieSB0aGUgVUkgcHJvY2VzcworICAg
ICAgICAoc3VjaCBhcyBpZiB0aGUgdXNlciBwcmludHMgZnJvbSBhIG1lbnUgb3Iga2V5Ym9hcmQg
c2hvcnRjdXQpIHRoZW4gd2UgbmVlZCBhIHdheSB0byBhc2sgd2hhdCB0aGUgc2l6ZSBvZiBhIFBE
RiBpcy4KKworICAgICAgICBJIHJldXNlZCB0aGUgU1BJIGluIFdLVUlEZWxlZ2F0ZVByaXZhdGUg
YmVjYXVzZSBpdCB3YXMgb25seSBicmllZmx5IGFkb3B0ZWQgYmVmb3JlIHdlIGtuZXcgd2UgbmVl
ZGVkIHRoaXMgYW5kIHRoZW4gcmV2ZXJ0ZWQuCisgICAgICAgIEknbSBhbHNvIGFkZGluZyBhbiBT
UEkgd2F5IHRvIGdldCBmcm9tIGEgV0tQYWdlUmVmIHRvIGEgV0tXZWJWaWV3IHNvIHRoaXMgY2Fu
IGJlIGFkb3B0ZWQgd2l0aG91dCByZWRvaW5nIGFsbCBvZiBTYWZhcmkuCisKKyAgICAgICAgQ292
ZXJlZCBieSBBUEkgdGVzdHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
Lmg6CisgICAgICAgIChBUEk6OlVJQ2xpZW50OjpwcmludEZyYW1lKToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlLmNwcDoKKyAgICAgICAgKFdLUGFnZVNldFBhZ2VVSUNsaWVudCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dL
V2ViVmlldyBfZ2V0UERGRmlyc3RQYWdlU2l6ZUluRnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6XSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6VUlEZWxlZ2F0ZTo6c2V0RGVs
ZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpVSURlbGVnYXRlOjpVSUNsaWVudDo6cHJpbnRGcmFt
ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cHJpbnRGcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6Z2V0UERGRmlyc3RQYWdlU2l6ZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbToKKyAgICAgICAgKFdlYktpdDo6UERG
UGx1Z2luOjpwZGZEb2N1bWVudFNpemVGb3JQcmludGluZyBjb25zdCk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbjo6cGRm
RG9jdW1lbnRTaXplRm9yUHJpbnRpbmcgY29uc3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW4uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6cHJpbnQp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFBERkZpcnN0UGFnZVNpemUpOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZTo6Z2V0UERGRmlyc3RQYWdlU2l6ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bjoKKwogMjAyMS0wMi0xNyAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjcyOTA1LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJVUlDbGllbnQuaAppbmRleCAxNjM2N2U2Y2FjODI1YWE5Yzc0ZmI0YzQ4NDNk
ZDJmMWZmMWRhZDM4Li43Y2ViZTJmYWJhZDViMzM1ZWIzNjJhMzI3ZWIzNDRhZTgyZGJlNjZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaApAQCAtMTQ1LDcgKzE0
NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGZsb2F0IGZvb3RlckhlaWdodChXZWJLaXQ6Oldl
YlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYpIHsgcmV0dXJuIDA7IH0KICAgICB2
aXJ0dWFsIHZvaWQgZHJhd0hlYWRlcihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2Vi
RnJhbWVQcm94eSYsIFdlYkNvcmU6OkZsb2F0UmVjdCYmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQg
ZHJhd0Zvb3RlcihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYs
IFdlYkNvcmU6OkZsb2F0UmVjdCYmKSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcHJpbnRGcmFtZShX
ZWJLaXQ6OldlYlBhZ2VQcm94eSYsIFdlYktpdDo6V2ViRnJhbWVQcm94eSYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21wbGV0aW9uSGFuZGxlcigp
OyB9CisgICAgdmlydHVhbCB2b2lkIHByaW50RnJhbWUoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBX
ZWJLaXQ6OldlYkZyYW1lUHJveHkmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHBkZkZpcnN0
UGFnZVNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikg
eyBjb21wbGV0aW9uSGFuZGxlcigpOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wgY2FuUnVuTW9kYWwo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgdm9pZCBydW5Nb2RhbChXZWJL
aXQ6OldlYlBhZ2VQcm94eSYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5jcHAKaW5kZXggNjJhNTRiNzQ2YzNhYjJmMWFiMzJjZWQ3MTQ2NGM0YzRkZGYxZTlkNi4uNDZh
ZTc5NjEwNmRhMjdiMmViMWJjZjVkYjNlN2JmMmI5NDgxMTc5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCkBAIC0xOTcxLDcgKzE5NzEsNyBAQCB2b2lkIFdLUGFn
ZVNldFBhZ2VVSUNsaWVudChXS1BhZ2VSZWYgcGFnZVJlZiwgY29uc3QgV0tQYWdlVUlDbGllbnRC
YXNlKiB3a0NsaWVudAogICAgICAgICAgICAgbV9jbGllbnQuZHJhd0Zvb3Rlcih0b0FQSSgmcGFn
ZSksIHRvQVBJKCZmcmFtZSksIHRvQVBJKHJlY3QpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OwogICAgICAgICB9CiAKLSAgICAgICAgdm9pZCBwcmludEZyYW1lKFdlYlBhZ2VQcm94eSYgcGFn
ZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikgZmluYWwKKyAgICAgICAgdm9pZCBwcmludEZyYW1lKFdlYlBhZ2VQcm94
eSYgcGFnZSwgV2ViRnJhbWVQcm94eSYgZnJhbWUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKICAg
ICAgICAgewogICAgICAgICAgICAgaWYgKG1fY2xpZW50LnByaW50RnJhbWUpCiAgICAgICAgICAg
ICAgICAgbV9jbGllbnQucHJpbnRGcmFtZSh0b0FQSSgmcGFnZSksIHRvQVBJKCZmcmFtZSksIG1f
Y2xpZW50LmJhc2UuY2xpZW50SW5mbyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMuaAppbmRleCBjODNhMjBkMzgwMTdjZTgxNGNh
ZjJkM2FhMzE5NDU5Njk4Y2U3MTAwLi40ODg5Y2JkNjA1MjhmZDk1ZjhlMmUzZTczZDVjOTM5NmJl
ZWRlOTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQ
YWdlUHJpdmF0ZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL21hYy9X
S1BhZ2VQcml2YXRlTWFjLmgKQEAgLTM1LDYgKzM1LDcgQEAgZXh0ZXJuICJDIiB7CiAKICNpZmRl
ZiBfX09CSkNfXwogCitAY2xhc3MgV0tXZWJWaWV3OwogQGNsYXNzIF9XS1JlbW90ZU9iamVjdFJl
Z2lzdHJ5OwogCiBAcHJvdG9jb2wgX1dLT2JzZXJ2YWJsZVBhZ2VTdGF0ZQpAQCAtNjMsNiArNjQs
OCBAQCBXS19FWFBPUlQgaWQgPF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4gV0tQYWdlR2V0RnVsbHNj
cmVlbkRlbGVnYXRlKFdLUGFnZVJlZiBwYWdlKQogV0tfRVhQT1JUIFdLTmF2aWdhdGlvbiAqV0tQ
YWdlTG9hZFVSTFJlcXVlc3RSZXR1cm5pbmdOYXZpZ2F0aW9uKFdLUGFnZVJlZiBwYWdlLCBXS1VS
TFJlcXVlc3RSZWYgcmVxdWVzdCk7CiBXS19FWFBPUlQgV0tOYXZpZ2F0aW9uICpXS1BhZ2VMb2Fk
RmlsZVJldHVybmluZ05hdmlnYXRpb24oV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVmIGZpbGVVUkws
IFdLVVJMUmVmIHJlc291cmNlRGlyZWN0b3J5VVJMKTsKIAorV0tfRVhQT1JUIFdLV2ViVmlldyAq
V0tQYWdlR2V0V2ViVmlldyhXS1BhZ2VSZWYgcGFnZSk7CisKICNlbmRpZiAvLyBfX09CSkNfXwog
CiBXS19FWFBPUlQgYm9vbCBXS1BhZ2VJc1VSTEtub3duSFNUU0hvc3QoV0tQYWdlUmVmIHBhZ2Us
IFdLVVJMUmVmIHVybCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Qy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
L21hYy9XS1BhZ2VQcml2YXRlTWFjLm1tCmluZGV4IDE3Mzk4ZWNlODIyZWNmZGJkMDFmYzIxMzE2
MDVlNTMzYTc4NzczZjIuLjliZTMwMmRkMjdlMWU1M2YyNGMyNWRmYzk1YjI1MTAwMmU4ZjRmOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQcml2
YXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQ
cml2YXRlTWFjLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJXS05TVVJMRXh0cmFzLmgi
CiAjaW1wb3J0ICJXS05hdmlnYXRpb25JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tWaWV3SW50ZXJu
YWwuaCIKKyNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJQYWdlR3Jv
dXAuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJlZmVyZW5jZXMu
aCIKQEAgLTE0Nyw2ICsxNDgsMTMgQEAgV0tOYXZpZ2F0aW9uICpXS1BhZ2VMb2FkRmlsZVJldHVy
bmluZ05hdmlnYXRpb24oV0tQYWdlUmVmIHBhZ2VSZWYsIFdLVVJMUmVmIGZpbGUKICAgICByZXR1
cm4gV2ViS2l0Ojp3cmFwcGVyKFdlYktpdDo6dG9JbXBsKHBhZ2VSZWYpLT5sb2FkRmlsZShXZWJL
aXQ6OnRvV1RGU3RyaW5nKGZpbGVVUkwpLCBXZWJLaXQ6OnRvV1RGU3RyaW5nKHJlc291cmNlRGly
ZWN0b3J5VVJMKSkpOwogfQogCitXS1dlYlZpZXcgKldLUGFnZUdldFdlYlZpZXcoV0tQYWdlUmVm
IHBhZ2UpCit7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gbmlsOworICAgIHJldHVy
biBmcm9tV2ViUGFnZVByb3h5KCpXZWJLaXQ6OnRvSW1wbChwYWdlKSk7Cit9CisKICNpZiBQTEFU
Rk9STShNQUMpCiBib29sIFdLUGFnZUlzUGxheWluZ1ZpZGVvSW5FbmhhbmNlZEZ1bGxzY3JlZW4o
V0tQYWdlUmVmIHBhZ2VSZWYpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAppbmRleCA5MWJlZTM0ZWQwYjYzOTgw
YjU1YTFhYWJhYWE4OGI5MjgwNDMzYzQ0Li4wYzNlNThkNTAzMzgzYmRjYTc0ZTRkNzdlMDNkYTk4
MzU0M2RmMGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tVSURlbGVnYXRlUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKQEAgLTEwNyw3ICsxMDcsNyBAQCBzdHJ1Y3QgVUlF
ZGdlSW5zZXRzOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVX
ZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFGb3JTZWN1cml0eU9yaWdpbjooV0tTZWN1cml0eU9yaWdp
biAqKXNlY3VyaXR5T3JpZ2luIGN1cnJlbnRRdW90YToodW5zaWduZWQgbG9uZyBsb25nKWN1cnJl
bnRRdW90YSB0b3RhbEJ5dGVzTmVlZGVkOih1bnNpZ25lZCBsb25nIGxvbmcpdG90YWxCeXRlc05l
ZWRlZCBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKHVuc2lnbmVkIGxvbmcgbG9uZyBuZXdRdW90
YSkpZGVjaXNpb25IYW5kbGVyOwogCiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IHByaW50RnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWU7Ci0tICh2b2lkKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByaW50RnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWUg
Y29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHByaW50RnJhbWU6KF9XS0ZyYW1lSGFuZGxlICopZnJhbWUgcGRm
Rmlyc3RQYWdlU2l6ZTooQ0dTaXplKXNpemUgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKHZv
aWQpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX3dlYlZpZXdDbG9zZTooV0tXZWJWaWV3ICop
d2ViVmlldzsKIC0gKHZvaWQpX3dlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmU6KFdL
V2ViVmlldyAqKXdlYlZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQppbmRleCBiYThkMzU0NDVjZGIxZmQ1MmIyZmFhMjRlNzU0YjQ4MDI2ZmRj
ZDZlLi4wZmU3NzRlMzlhNmQ5MGE0OWQ1NGNlY2JlOTEzZmYxMWJhNTZiY2ExIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTIyNTIsNiAr
MjI1MiwxMyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TQXJyYXk+IHdrVGV4dE1hbmlwdWxhdGlvbkVy
cm9ycyhOU0FycmF5PF9XS1RleHRNYW5pcHVsYXRpb25JdAogICAgIFtzZWxmIGNyZWF0ZVBERldp
dGhDb25maWd1cmF0aW9uOnBkZkNvbmZpZ3VyYXRpb24uYXV0b3JlbGVhc2UoKSBjb21wbGV0aW9u
SGFuZGxlcjpjb21wbGV0aW9uSGFuZGxlcl07CiB9CiAKKy0gKHZvaWQpX2dldFBERkZpcnN0UGFn
ZVNpemVJbkZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2
b2lkKF4pKENHU2l6ZSkpY29tcGxldGlvbkhhbmRsZXIKK3sKKyAgICBfcGFnZS0+Z2V0UERGRmly
c3RQYWdlU2l6ZShmcmFtZS0+X2ZyYW1lSGFuZGxlLT5mcmFtZUlEKCksIFtjb21wbGV0aW9uSGFu
ZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcildKFdlYkNvcmU6OkZsb2F0U2l6
ZSBzaXplKSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHN0YXRpY19jYXN0PENHU2l6ZT4o
c2l6ZSkpOworICAgIH0pOworfQorCiAtIChOU0RhdGEgKilfc2Vzc2lvblN0YXRlRGF0YQogewog
ICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBub3QgdXNlIHRoZSBsZWdhY3kgc2Vzc2lvbiBzdGF0
ZSBlbmNvZGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXdQcml2YXRlLmgKaW5kZXggZTQ1Y2IxYmJiYmViYTBiMWE3OTU1NmI4ZDQzMTBjNzc4
MjU1NWJmZC4uZGZlMmVlMjc3NTZmOGY1YjU1ODM1Mjk0YjhlM2VhNzkxMDMxZGU2ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0
ZS5oCkBAIC0zNTAsNiArMzUwLDcgQEAgZm9yIHRoaXMgcHJvcGVydHkuCiAtICh2b2lkKV9jbG9z
ZUFsbE1lZGlhUHJlc2VudGF0aW9uczsKIAogLSAodm9pZClfdGFrZVBERlNuYXBzaG90V2l0aENv
bmZpZ3VyYXRpb246KFdLU25hcHNob3RDb25maWd1cmF0aW9uICopc25hcHNob3RDb25maWd1cmF0
aW9uIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0RhdGEgKnBkZlNuYXBzaG90RGF0YSwg
TlNFcnJvciAqZXJyb3IpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3Mo
MTAuMTUuNCksIGlvcygxMy40KSk7CistICh2b2lkKV9nZXRQREZGaXJzdFBhZ2VTaXplSW5GcmFt
ZTooX1dLRnJhbWVIYW5kbGUgKilmcmFtZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShDR1Np
emUpKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSks
IGlvcyhXS19JT1NfVEJBKSk7CiAKIC0gKHZvaWQpX2dldFByb2Nlc3NEaXNwbGF5TmFtZVdpdGhD
b21wbGV0aW9uSGFuZGxlcjoodm9pZCAoXikoTlNTdHJpbmcgKikpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMS4wKSwgaW9zKDE0LjApKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCmluZGV4IDVl
MTc4NzE3YzM5ODI2Y2NhOWY5Y2YzYmI5YjlkM2RiMTgyNDk2ZjkuLjhkMTNlYTQxOGRmNDgzZjA3
MjQ1MjVlZDRkMjNjY2U1YWFkODAyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKQEAgLTMyOSw3ICszMjksNyBAQCBwcml2
YXRlOgogICAgICAgICBndGtfd2lkZ2V0X2dyYWJfZm9jdXMoR1RLX1dJREdFVChtX3dlYlZpZXcp
KTsKICAgICB9CiAKLSAgICB2b2lkIHByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQ
cm94eSYgZnJhbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikgZmluYWwKKyAgICB2b2lkIHByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94
eSYgZnJhbWUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0U2l6ZSYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgZmluYWwKICAgICB7CiAgICAgICAgIHdlYmtpdFdl
YlZpZXdQcmludEZyYW1lKG1fd2ViVmlldywgJmZyYW1lKTsKICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVs
ZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUuaAppbmRl
eCA4NTk1ZjIwZTQxYzZmYzMxM2E0M2ZiODJjZDA5YmY5MmU1YWU2OTViLi45MDlkOTIwMDU4MGNl
NTUxZTM2YzcxOTk3Y2VjNzJjYTM4NDQ2NTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVUlEZWxlZ2F0ZS5oCkBAIC0xMzcsNyArMTM3LDcgQEAgcHJpdmF0ZToKICAgICAgICAg
dm9pZCBkZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdChXZWJQYWdlUHJv
eHkmLCBXZWJGcmFtZVByb3h5JiwgQVBJOjpTZWN1cml0eU9yaWdpbiYsIEFQSTo6U2VjdXJpdHlP
cmlnaW4mLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JikgZmluYWw7CiAgICAgICAg
IHZvaWQgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKFdlYlBhZ2VQcm94eSYsIFdl
YkZyYW1lUHJveHkmLCBBUEk6OlNlY3VyaXR5T3JpZ2luJiwgQVBJOjpTZWN1cml0eU9yaWdpbiYs
IFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5JikgZmluYWw7CiAgICAgICAgIHZvaWQgbWVk
aWFDYXB0dXJlU3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0
ZUZsYWdzKSBmaW5hbDsKLSAgICAgICAgdm9pZCBwcmludEZyYW1lKFdlYlBhZ2VQcm94eSYsIFdl
YkZyYW1lUHJveHkmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIGZpbmFsOworICAgICAg
ICB2b2lkIHByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYsIGNvbnN0IFdl
YkNvcmU6OkZsb2F0U2l6ZSYgcGRmRmlyc3RQYWdlU2l6ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKSBmaW5hbDsKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogI2lmIEhBVkUoQVBQX0xJ
TktTKQogICAgICAgICBib29sIHNob3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQo
X1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKikgZmluYWw7CkBAIC0yMTcsNyArMjE3LDcgQEAgcHJp
dmF0ZToKICAgICAgICAgYm9vbCB3ZWJWaWV3RGVjaWRlRGF0YWJhc2VRdW90YUZvclNlY3VyaXR5
T3JpZ2luRGF0YWJhc2VOYW1lRGlzcGxheU5hbWVDdXJyZW50UXVvdGFDdXJyZW50T3JpZ2luVXNh
Z2VDdXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VEZWNpc2lvbkhhbmRsZXIgOiAxOwog
ICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVXZWJBcHBsaWNhdGlvbkNhY2hlUXVvdGFGb3JTZWN1
cml0eU9yaWdpbkN1cnJlbnRRdW90YVRvdGFsQnl0ZXNOZWVkZWQgOiAxOwogICAgICAgICBib29s
IHdlYlZpZXdQcmludEZyYW1lIDogMTsKLSAgICAgICAgYm9vbCB3ZWJWaWV3UHJpbnRGcmFtZUNv
bXBsZXRpb25IYW5kbGVyIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3UHJpbnRGcmFtZVBERkZp
cnN0UGFnZVNpemVDb21wbGV0aW9uSGFuZGxlciA6IDE7CiAgICAgICAgIGJvb2wgd2ViVmlld0Rp
ZENsb3NlIDogMTsKICAgICAgICAgYm9vbCB3ZWJWaWV3Q2xvc2UgOiAxOwogICAgICAgICBib29s
IHdlYlZpZXdGdWxsc2NyZWVuTWF5UmV0dXJuVG9JbmxpbmUgOiAxOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KaW5kZXggOTExOTU2MDM2ODY5YWQ5ZTNlNjhi
ODljMWMyZWMzOTZhMmNjMjk3NC4uMmViNDY1ZmRmZDE1MjY0ZTI5MjcwOTI2MDI0N2EzMzcwN2Q0
ZjYzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0
ZS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCkBA
IC0xNDQsNyArMTQ0LDcgQEAgdm9pZCBVSURlbGVnYXRlOjpzZXREZWxlZ2F0ZShpZCA8V0tVSURl
bGVnYXRlPiBkZWxlZ2F0ZSkKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlRGF0
YWJhc2VRdW90YUZvclNlY3VyaXR5T3JpZ2luRGF0YWJhc2VOYW1lRGlzcGxheU5hbWVDdXJyZW50
UXVvdGFDdXJyZW50T3JpZ2luVXNhZ2VDdXJyZW50RGF0YWJhc2VVc2FnZUV4cGVjdGVkVXNhZ2VE
ZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihf
d2ViVmlldzpkZWNpZGVEYXRhYmFzZVF1b3RhRm9yU2VjdXJpdHlPcmlnaW46ZGF0YWJhc2VOYW1l
OmRpc3BsYXlOYW1lOmN1cnJlbnRRdW90YTpjdXJyZW50T3JpZ2luVXNhZ2U6Y3VycmVudERhdGFi
YXNlVXNhZ2U6ZXhwZWN0ZWRVc2FnZTpkZWNpc2lvbkhhbmRsZXI6KV07CiAgICAgbV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld0RlY2lkZVdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90YUZvclNlY3VyaXR5
T3JpZ2luQ3VycmVudFF1b3RhVG90YWxCeXRlc05lZWRlZCA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmRlY2lkZVdlYkFwcGxpY2F0aW9uQ2FjaGVRdW90
YUZvclNlY3VyaXR5T3JpZ2luOmN1cnJlbnRRdW90YTp0b3RhbEJ5dGVzTmVlZGVkOmRlY2lzaW9u
SGFuZGxlcjopXTsKICAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UHJpbnRGcmFtZSA9IFtk
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnByaW50RnJhbWU6
KV07Ci0gICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1ByaW50RnJhbWVDb21wbGV0aW9uSGFu
ZGxlciA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnBy
aW50RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2Vi
Vmlld1ByaW50RnJhbWVQREZGaXJzdFBhZ2VTaXplQ29tcGxldGlvbkhhbmRsZXIgPSBbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmludEZyYW1lOnBkZkZp
cnN0UGFnZVNpemU6Y29tcGxldGlvbkhhbmRsZXI6KV07CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMu
d2ViVmlld0RpZENsb3NlID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
d2ViVmlld0RpZENsb3NlOildOwogICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdDbG9zZSA9
IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3Q2xvc2U6KV07
CiAgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0Z1bGxzY3JlZW5NYXlSZXR1cm5Ub0lubGlu
ZSA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3RnVsbHNj
cmVlbk1heVJldHVyblRvSW5saW5lOildOwpAQCAtMTE5Myw3ICsxMTkzLDcgQEAgdm9pZCBVSURl
bGVnYXRlOjpVSUNsaWVudDo6cmVhY2hlZEFwcGxpY2F0aW9uQ2FjaGVPcmlnaW5RdW90YShXZWJQ
YWdlUHJveHkqLCBjb24KICAgICB9KS5nZXQoKV07CiB9CiAKLXZvaWQgVUlEZWxlZ2F0ZTo6VUlD
bGllbnQ6OnByaW50RnJhbWUoV2ViUGFnZVByb3h5JiwgV2ViRnJhbWVQcm94eSYgd2ViRnJhbWVQ
cm94eSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBVSURlbGVnYXRlOjpVSUNsaWVudDo6cHJpbnRGcmFtZShXZWJQYWdlUHJveHkmLCBXZWJGcmFt
ZVByb3h5JiB3ZWJGcmFtZVByb3h5LCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHBkZkZpcnN0
UGFnZVNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKICAgICBpZiAoIW1fdWlEZWxlZ2F0ZSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKCk7CkBAIC0xMjAzLDkgKzEyMDMsOSBAQCB2b2lkIFVJRGVsZWdhdGU6OlVJQ2xpZW50Ojpw
cmludEZyYW1lKFdlYlBhZ2VQcm94eSYsIFdlYkZyYW1lUHJveHkmIHdlYkZyYW1lUHJveAogICAg
ICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKIAogICAgIGF1dG8gaGFuZGxlID0gQVBJ
OjpGcmFtZUhhbmRsZTo6Y3JlYXRlKHdlYkZyYW1lUHJveHkuZnJhbWVJRCgpKTsKLSAgICBpZiAo
bV91aURlbGVnYXRlLT5tX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3UHJpbnRGcmFtZUNvbXBsZXRp
b25IYW5kbGVyKSB7Ci0gICAgICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2Fs
bENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3OnByaW50
RnJhbWU6Y29tcGxldGlvbkhhbmRsZXI6KSk7Ci0gICAgICAgIFsoaWQgPFdLVUlEZWxlZ2F0ZVBy
aXZhdGU+KWRlbGVnYXRlIF93ZWJWaWV3Om1fdWlEZWxlZ2F0ZS0+bV93ZWJWaWV3LmdldCgpLmdl
dCgpIHByaW50RnJhbWU6d3JhcHBlcihoYW5kbGUpIGNvbXBsZXRpb25IYW5kbGVyOm1ha2VCbG9j
a1B0cihbY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlciksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgeworICAgIGlmIChtX3VpRGVsZWdh
dGUtPm1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdQcmludEZyYW1lUERGRmlyc3RQYWdlU2l6ZUNv
bXBsZXRpb25IYW5kbGVyKSB7CisgICAgICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5k
bGVyQ2FsbENoZWNrZXI6OmNyZWF0ZShkZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKF93ZWJWaWV3
OnByaW50RnJhbWU6cGRmRmlyc3RQYWdlU2l6ZTpjb21wbGV0aW9uSGFuZGxlcjopKTsKKyAgICAg
ICAgWyhpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pZGVsZWdhdGUgX3dlYlZpZXc6bV91aURlbGVn
YXRlLT5tX3dlYlZpZXcuZ2V0KCkuZ2V0KCkgcHJpbnRGcmFtZTp3cmFwcGVyKGhhbmRsZSkgcGRm
Rmlyc3RQYWdlU2l6ZTpzdGF0aWNfY2FzdDxDR1NpemU+KHBkZkZpcnN0UGFnZVNpemUpIGNvbXBs
ZXRpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbY2hlY2tlciA9IFdURk1vdmUoY2hlY2tlciksIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUg
ewogICAgICAgICAgICAgaWYgKGNoZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxl
ZCgpKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIGNoZWNrZXItPmRpZENh
bGxDb21wbGV0aW9uSGFuZGxlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggZjk2M2M4NjlkYTdlMzY3MmQzN2FkNjViMzcwZmVjYzg2N2MyYjJiOS4uNGVk
ODBiMDQ5ODAxYTgwZDBlM2Q4OGU2YjlhYTlmNjlmYWI0NzJkNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01OTIzLDcgKzU5MjMsNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6c2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0
RGF0YSYgcmVxdWVzdAogICAgIHBhZ2VDbGllbnQoKS5zaG93Q29udGFjdFBpY2tlcihyZXF1ZXN0
RGF0YSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogICAgIAotdm9pZCBXZWJQYWdl
UHJveHk6OnByaW50RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFN0cmluZyYg
dGl0bGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgV2ViUGFnZVByb3h5OjpwcmludEZyYW1lKEZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBjb25z
dCBTdHJpbmcmIHRpdGxlLCBjb25zdCBXZWJDb3JlOjpGbG9hdFNpemUmIHBkZkZpcnN0UGFnZVNp
emUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAg
ICBBU1NFUlQoIW1faXNQZXJmb3JtaW5nRE9NUHJpbnRPcGVyYXRpb24pOwogICAgIG1faXNQZXJm
b3JtaW5nRE9NUHJpbnRPcGVyYXRpb24gPSB0cnVlOwpAQCAtNTkzMyw3ICs1OTMzLDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnByaW50RnJhbWUoRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0
IFN0cmluZyYgdGl0bGUsIENvbXAKIAogICAgIGZyYW1lLT5kaWRDaGFuZ2VUaXRsZSh0aXRsZSk7
CiAKLSAgICBtX3VpQ2xpZW50LT5wcmludEZyYW1lKCp0aGlzLCAqZnJhbWUsIFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildICgpIG11dGFibGUgeworICAgIG1fdWlDbGllbnQtPnByaW50RnJh
bWUoKnRoaXMsICpmcmFtZSwgcGRmRmlyc3RQYWdlU2l6ZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGVuZFByaW50aW5nKCk7IC8vIFNlbmQgYSBt
ZXNzYWdlIHN5bmNocm9ub3VzbHkgd2hpbGUgbV9pc1BlcmZvcm1pbmdET01QcmludE9wZXJhdGlv
biBpcyBzdGlsbCB0cnVlLgogICAgICAgICBtX2lzUGVyZm9ybWluZ0RPTVByaW50T3BlcmF0aW9u
ID0gZmFsc2U7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CkBAIC04NTQ0LDYgKzg1NDQs
MTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRyYXdUb1BERihGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgY29uc3QgT3B0aW9uYWw8RmxvYXRSZWN0PiYKIH0KICNlbmRpZiAvLyBQTEFURk9STShDT0NP
QSkKIAordm9pZCBXZWJQYWdlUHJveHk6OmdldFBERkZpcnN0UGFnZVNpemUoV2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyIGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6Rmxv
YXRTaXplKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlBhZ2U6OkdldFBERkZpcnN0UGFnZVNpemUoZnJhbWVJRCksIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKK30KKwogdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZUJhY2tp
bmdTdG9yZURpc2NhcmRhYmxlU3RhdGUoKQogewogICAgIEFTU0VSVChoYXNSdW5uaW5nUHJvY2Vz
cygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMjkyNDA2Yzli
ZjZjYWU3NzFiZGQxYzI5MWE2NWIzZWQxMzBmYzBlYS4uNTJmZjdiM2EzOWI4OWRkYzExZTljZjQ3
NGNjYmIzZjViMDQxZjQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTEyODksNiArMTI4OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGJlZ2luUHJpbnRpbmcoV2Vi
RnJhbWVQcm94eSosIGNvbnN0IFByaW50SW5mbyYpOwogICAgIHZvaWQgZW5kUHJpbnRpbmcoKTsK
ICAgICB1aW50NjRfdCBjb21wdXRlUGFnZXNGb3JQcmludGluZyhXZWJGcmFtZVByb3h5KiwgY29u
c3QgUHJpbnRJbmZvJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6SW50UmVjdD4mLCBkb3VibGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0Qm94RXh0ZW50Jik+JiYp
OworICAgIHZvaWQgZ2V0UERGRmlyc3RQYWdlU2l6ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RmxvYXRTaXplKT4mJik7CiAjaWYgUExB
VEZPUk0oQ09DT0EpCiAgICAgdWludDY0X3QgZHJhd1JlY3RUb0ltYWdlKFdlYkZyYW1lUHJveHkq
LCBjb25zdCBQcmludEluZm8mLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgV2ViS2l0OjpTaGFyZWFi
bGVCaXRtYXA6OkhhbmRsZSYpPiYmKTsKICAgICB1aW50NjRfdCBkcmF3UGFnZXNUb1BERihXZWJG
cmFtZVByb3h5KiwgY29uc3QgUHJpbnRJbmZvJiwgdWludDMyX3QgZmlyc3QsIHVpbnQzMl90IGNv
dW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEFQSTo6RGF0YSopPiYmKTsKQEAgLTE5ODksNyAr
MTk5MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBkaWRDaG9vc2VGaWxlc0Zvck9wZW5QYW5lbFdp
dGhJbWFnZVRyYW5zY29kaW5nKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBmaWxlVVJMcywgY29uc3Qg
VmVjdG9yPFN0cmluZz4mIGFsbG93ZWRNSU1FVHlwZXMpOwogICAgIHZvaWQgc2hvd1NoYXJlU2hl
ZXQoY29uc3QgV2ViQ29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgV2Vi
Q29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoT3B0aW9u
YWw8VmVjdG9yPFdlYkNvcmU6OkNvbnRhY3RJbmZvPj4mJik+JiYpOwotICAgIHZvaWQgcHJpbnRG
cmFtZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBwcmludEZyYW1lKFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiwgY29uc3QgV2ViQ29yZTo6RmxvYXRTaXplJiwgIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEo
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG9yaWdpbklkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lLCBjb25zdCBTdHJpbmcmIGRpc3BsYXlOYW1lLCB1
aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IGN1cnJlbnRPcmlnaW5Vc2FnZSwgdWludDY0
X3QgY3VycmVudERhdGFiYXNlVXNhZ2UsIHVpbnQ2NF90IGV4cGVjdGVkVXNhZ2UsIE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkV4Y2VlZGVkRGF0YWJhc2VRdW90YURlbGF5ZWRSZXBseSYmKTsKICAg
ICB2b2lkIHJlYWNoZWRBcHBsaWNhdGlvbkNhY2hlT3JpZ2luUXVvdGEoY29uc3QgU3RyaW5nJiBv
cmlnaW5JZGVudGlmaWVyLCB1aW50NjRfdCBjdXJyZW50UXVvdGEsIHVpbnQ2NF90IHRvdGFsQnl0
ZXNOZWVkZWQsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlJlYWNoZWRBcHBsaWNhdGlvbkNhY2hl
T3JpZ2luUXVvdGFEZWxheWVkUmVwbHkmJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA0M2Y3OTA0ODQwZmI1NmZjYTg5YjZh
NWM1ZDQzMDY2N2U0YjMxMWYwLi45MDU5M2FkNGFlY2U1N2ZkYTVhY2RiYTE4MWQ1YjQ4NmVlNmZm
MTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCkBAIC03MCw3ICs3MCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94eSB7CiAgICAg
UnVuT3BlblBhbmVsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2Vi
S2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgc3RydWN0IFdlYkNvcmU6OkZpbGVDaG9vc2Vy
U2V0dGluZ3MgcGFyYW1ldGVycykKICAgICBTaG93U2hhcmVTaGVldChzdHJ1Y3QgV2ViQ29yZTo6
U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCBzaGFyZURhdGEpIC0+IChib29sIGdyYW50ZWQpIEFzeW5j
CiAgICAgU2hvd0NvbnRhY3RQaWNrZXIoc3RydWN0IFdlYkNvcmU6OkNvbnRhY3RzUmVxdWVzdERh
dGEgcmVxdWVzdERhdGEpIC0+IChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+
PiBpbmZvKSBBc3luYwotICAgIFByaW50RnJhbWUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIFN0cmluZyB0aXRsZSkgLT4gKCkgU3luY2hyb25vdXMKKyAgICBQcmludEZyYW1lKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBTdHJpbmcgdGl0bGUsIFdlYkNvcmU6OkZs
b2F0U2l6ZSBwZGZGaXJzdFBhZ2VTaXplKSAtPiAoKSBTeW5jaHJvbm91cwogICAgIFJ1bk1vZGFs
KCkKICAgICBOb3RpZnlTY3JvbGxlclRodW1iSXNWaXNpYmxlSW5SZWN0KFdlYkNvcmU6OkludFJl
Y3Qgc2Nyb2xsZXJUaHVtYikKICAgICBSZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdl
KGludDMyX3QgbmV3U3R5bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
UGx1Z2lucy9QREYvUERGUGx1Z2luLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lu
cy9QREYvUERGUGx1Z2luLmgKaW5kZXggYmE3YTE4NzZiMWZiMDYzOTI1YTQwYmE3ZWQwYjNhZDY5
NWFmNGYzYy4uZjA3Yjc4ZWVlODhkYjQwMWVjMDc5MjcyNzk0ZmE1NmFlZjJjNTUyNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4uaApAQCAt
MjEzLDYgKzIxMyw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBwbHVnaW5IYW5kbGVzQ29udGVudE9m
ZnNldEZvckFjY2Vzc2liaWxpdHlIaXRUZXN0KCkgY29uc3QgZmluYWw7CiAgICAgCiAgICAgUmV0
YWluUHRyPFBERkRvY3VtZW50PiBwZGZEb2N1bWVudEZvclByaW50aW5nKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gbV9wZGZEb2N1bWVudDsgfQorICAgIFdlYkNvcmU6OkZsb2F0U2l6ZSBwZGZEb2N1
bWVudFNpemVGb3JQcmludGluZygpIGNvbnN0IGZpbmFsOwogICAgIE5TT2JqZWN0ICphY2Nlc3Np
YmlsaXR5T2JqZWN0KCkgY29uc3QgZmluYWw7CiAgICAgaWQgYWNjZXNzaWJpbGl0eUFzc29jaWF0
ZWRQbHVnaW5QYXJlbnRGb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1lbnQqKSBjb25zdCBmaW5hbDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBs
dWdpbi5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BERi9QREZQbHVnaW4u
bW0KaW5kZXggMmFkNDVjNTFjMjE0YTM5YzRmZmI3N2M2YzliOGJiMzQyZmM2YWJmNC4uMjQ4MDBm
NmM1OTM1NGVhNWY1YWI1ODRkOTZiODE2YTc0ZGU2Y2MwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUERGL1BERlBsdWdpbi5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9QREYvUERGUGx1Z2luLm1tCkBAIC0xNTUwLDYgKzE1NTAs
MTEgQEAgSlNWYWx1ZVJlZiBQREZQbHVnaW46OmpzUERGRG9jUHJpbnQoSlNDb250ZXh0UmVmIGN0
eCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2IKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY3R4KTsKIH0KIAorRmxvYXRTaXplIFBERlBsdWdpbjo6cGRmRG9jdW1lbnRTaXplRm9y
UHJpbnRpbmcoKSBjb25zdAoreworICAgIHJldHVybiBGbG9hdFNpemUoW1ttX3BkZkRvY3VtZW50
IHBhZ2VBdEluZGV4OjBdIGJvdW5kc0ZvckJveDprUERGRGlzcGxheUJveENyb3BCb3hdLnNpemUp
OworfQorCiBKU09iamVjdFJlZiBQREZQbHVnaW46Om1ha2VKU1BERkRvYyhKU0NvbnRleHRSZWYg
Y3R4KQogewogICAgIHN0YXRpYyBKU1N0YXRpY0Z1bmN0aW9uIGpzUERGRG9jU3RhdGljRnVuY3Rp
b25zW10gPSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvUGx1Z2lucy9Q
bHVnaW4uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmNwcApp
bmRleCBiNzZkMzQ0OGYyMGFjYmQ5OTgzNzBkNGI5ZjQ4M2RmZDcxNzQwNjhjLi4wZmFlZmYxZmI4
NDVlMjU0ZDk5NjNlMzU2MGVlOTQ4OTgyYzc5M2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpbi5jcHAKQEAgLTEyNyw0ICsxMjcsMTEgQEAgY29uc3QgUGx1Z2lu
Q29udHJvbGxlciogUGx1Z2luOjpjb250cm9sbGVyKCkgY29uc3QKICAgICByZXR1cm4gbV9wbHVn
aW5Db250cm9sbGVyLmdldCgpOwogfQogCisjaWYgUExBVEZPUk0oQ09DT0EpCitXZWJDb3JlOjpG
bG9hdFNpemUgUGx1Z2luOjpwZGZEb2N1bWVudFNpemVGb3JQcmludGluZygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHsgfTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbi5oIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgKaW5kZXggZGM1NTc5ZmQzMTk1MjQ4
Y2RlZTliMDE1NmFmNzgwOTdmOGVhYWY3MC4uZDNjN2FjNzA1MTFmYzcyYzg3MDg0YjhhMzc0Zjlk
NmM3MjY4NTliMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luLmgK
QEAgLTU1LDYgKzU1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQWZmaW5lVHJhbnNm
b3JtOwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIEZsb2F0UG9pbnQ7CitjbGFzcyBGbG9hdFNpemU7
CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBJbnRQb2ludDsKIGNsYXNzIEludFJlY3Q7
CkBAIC0yNzUsNiArMjc2LDcgQEAgcHVibGljOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAg
dmlydHVhbCBSZXRhaW5QdHI8UERGRG9jdW1lbnQ+IHBkZkRvY3VtZW50Rm9yUHJpbnRpbmcoKSBj
b25zdCB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFNpemUgcGRmRG9j
dW1lbnRTaXplRm9yUHJpbnRpbmcoKSBjb25zdDsKICAgICB2aXJ0dWFsIE5TT2JqZWN0ICphY2Nl
c3NpYmlsaXR5T2JqZWN0KCkgY29uc3QgeyByZXR1cm4gMDsgfQogICAgIHZpcnR1YWwgaWQgYWNj
ZXNzaWJpbGl0eUFzc29jaWF0ZWRQbHVnaW5QYXJlbnRGb3JFbGVtZW50KFdlYkNvcmU6OkVsZW1l
bnQqKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKaW5kZXggZmE4NGVmYWQzYzMzMGZiMWQxYmIxNzk0OTBhM2ViZWQ3OWNmMWJiZS4uYzZhMDBi
ODhkZGZkOWJiNzdiMDFiYzQyNjhlNGE5ZmFmNDFmZjVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUGFnZUJhbm5lci5oIgorI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNpbmNsdWRl
ICJSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXJD
b3B5LmgiCiAjaW5jbHVkZSAiVXNlckRhdGEuaCIKQEAgLTczNiw4ICs3MzcsMTYgQEAgdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lJiBmcmFtZSwgY29uc3QgU3RyaW5nV2l0aERpcmVj
dGlvbiYgdGl0bGUpCiAgICAgfQogI2VuZGlmCiAKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgcGRm
Rmlyc3RQYWdlU2l6ZTsKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBpZiAoYXV0byogcGx1Z2lu
VmlldyA9IFdlYlBhZ2U6OnBsdWdpblZpZXdGb3JGcmFtZSgmZnJhbWUpKSB7CisgICAgICAgIGlm
IChhdXRvKiBwbHVnaW4gPSBwbHVnaW5WaWV3LT5wbHVnaW4oKSkKKyAgICAgICAgICAgIHBkZkZp
cnN0UGFnZVNpemUgPSBwbHVnaW4tPnBkZkRvY3VtZW50U2l6ZUZvclByaW50aW5nKCk7CisgICAg
fQorI2VuZGlmCisKICAgICBhdXRvIHRydW5jYXRlZFRpdGxlID0gdHJ1bmNhdGVGcm9tRW5kKHRp
dGxlLCBtYXhUaXRsZUxlbmd0aCk7Ci0gICAgbV9wYWdlLnNlbmRTeW5jV2l0aERlbGF5ZWRSZXBs
eShNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpQcmludEZyYW1lKHdlYkZyYW1lLT5mcmFtZUlEKCks
IHRydW5jYXRlZFRpdGxlLnN0cmluZyksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlByaW50RnJh
bWU6OlJlcGx5KCkpOworICAgIG1fcGFnZS5zZW5kU3luY1dpdGhEZWxheWVkUmVwbHkoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6UHJpbnRGcmFtZSh3ZWJGcmFtZS0+ZnJhbWVJRCgpLCB0cnVuY2F0
ZWRUaXRsZS5zdHJpbmcsIHBkZkZpcnN0UGFnZVNpemUpLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpQcmludEZyYW1lOjpSZXBseSgpKTsKIH0KIAogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmV4Y2Vl
ZGVkRGF0YWJhc2VRdW90YShGcmFtZSYgZnJhbWUsIGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1l
LCBEYXRhYmFzZURldGFpbHMgZGV0YWlscykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQppbmRleCBmNTdkODQ5YTYyMDEx
NDRjNTczNzdlY2MzNzExNmEyMThkZjEzYThlLi5jZmI1NWFhMmRiMDhkNWNkMjdiYjFhNDVhZWJm
OWE3MDM5N2M5YzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCkBAIC00MTYsNiArNDE2LDI3IEBAIHZvaWQgV2Vi
UGFnZTo6Y29uc3VtZU5ldHdvcmtFeHRlbnNpb25TYW5kYm94RXh0ZW5zaW9ucyhjb25zdCBTYW5k
Ym94RXh0ZW5zaW9uOjpICiAjZW5kaWYKIH0KIAordm9pZCBXZWJQYWdlOjpnZXRQREZGaXJzdFBh
Z2VTaXplKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFdlYkNvcmU6OkZsb2F0U2l6ZSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAg
YXV0byogd2ViRnJhbWUgPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS53ZWJGcmFtZShmcmFtZUlE
KTsKKyAgICBpZiAoIXdlYkZyYW1lKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
eyB9KTsKKworICAgIGF1dG8qIGNvcmVGcmFtZSA9IHdlYkZyYW1lLT5jb3JlRnJhbWUoKTsKKyAg
ICBpZiAoIWNvcmVGcmFtZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7
CisKKyAgICBhdXRvKiBwbHVnaW5WaWV3ID0gcGx1Z2luVmlld0ZvckZyYW1lKGNvcmVGcmFtZSk7
CisgICAgaWYgKCFwbHVnaW5WaWV3KQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
eyB9KTsKKyAgICAKKyAgICBhdXRvKiBwbHVnaW4gPSBwbHVnaW5WaWV3LT5wbHVnaW4oKTsKKyAg
ICBpZiAoIXBsdWdpbikKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CisK
KyAgICBjb21wbGV0aW9uSGFuZGxlcihGbG9hdFNpemUocGx1Z2luLT5wZGZEb2N1bWVudFNpemVG
b3JQcmludGluZygpKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8g
UExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCmluZGV4IDlmNmViNmNkZTY4NzMzNDQ1OTA0ZGU3N2M1Yjc3ZTk5ZWM1YTIzMjEuLjhi
YzQ0MWZiMmI2YWRjOWE1MTAzZjBmMDYzNjYxMzk0MjcxOTllYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC03MTQyLDYgKzcxNDIsMTEgQEAg
dm9pZCBXZWJQYWdlOjpjb25maWd1cmVMb2dnaW5nQ2hhbm5lbChjb25zdCBTdHJpbmcmIGNoYW5u
ZWxOYW1lLCBXVEZMb2dDaGFubmVsU3QKIH0KIAogI2lmICFQTEFURk9STShDT0NPQSkKK3ZvaWQg
V2ViUGFnZTo6Z2V0UERGRmlyc3RQYWdlU2l6ZShXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6RmxvYXRTaXplKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3sKKyAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOworfQorCiB2b2lkIFdlYlBhZ2U6
OmdldFByb2Nlc3NEaXNwbGF5TmFtZShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGYzZWI3MmQyZGU5
OGYwMDJhNmZmNzg5ZDJkYTMyZmFiYTk0MDVmYmIuLjg0ZWRkMWJlNjViZjBlNTM5ZDllYjZkMjU0
NDM0MDUyMDE3N2Q4MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmgKQEAgLTE1MDgsNiArMTUwOCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2FkQWx0ZXJu
YXRlSFRNTChMb2FkUGFyYW1ldGVycyYmKTsKICAgICB2b2lkIGxvYWRTaW11bGF0ZWRSZXF1ZXN0
QW5kUmVzcG9uc2UoTG9hZFBhcmFtZXRlcnMmJiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYm
KTsKICAgICB2b2lkIG5hdmlnYXRlVG9QREZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKGNvbnN0IFN0
cmluZyYgdXJsLCBXZWJDb3JlOjpJbnRQb2ludCBkb2N1bWVudFBvaW50LCBXZWJDb3JlOjpJbnRQ
b2ludCBzY3JlZW5Qb2ludCk7CisgICAgdm9pZCBnZXRQREZGaXJzdFBhZ2VTaXplKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpGbG9hdFNp
emUpPiYmKTsKICAgICB2b2lkIHJlbG9hZCh1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIHVpbnQzMl90
IHJlbG9hZE9wdGlvbnMsIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSYmKTsKICAgICB2b2lkIGdv
VG9CYWNrRm9yd2FyZEl0ZW0odWludDY0X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpC
YWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgV2ViQ29yZTo6RnJhbWVMb2FkVHlwZSwgV2ViQ29y
ZTo6U2hvdWxkVHJlYXRBc0NvbnRpbnVpbmdMb2FkLCBPcHRpb25hbDxXZWJzaXRlUG9saWNpZXNE
YXRhPiYmKTsKICAgICB2b2lkIHRyeVJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5k
ZXggMDg3YzkwYTEzNGNiNGU2MThjM2Q3ZDI0ODEyOGRkOWMxNGM0ZjQ5YS4uODI5ZDg2NDRjNjgx
YjViYmM2MTI5NzcyNTk5NGZhZTQyMjI1ODgzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0xODMsNiArMTgzLDcg
QEAgR2VuZXJhdGVTeW50aGV0aWNFZGl0aW5nQ29tbWFuZChlbnVtOnVpbnQ4X3QgV2ViS2l0OjpT
eW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUKICAgICBMb2FkQWx0ZXJuYXRlSFRNTChzdHJ1Y3Qg
V2ViS2l0OjpMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycykKIAogICAgIE5hdmlnYXRlVG9Q
REZMaW5rV2l0aFNpbXVsYXRlZENsaWNrKFN0cmluZyB1cmwsIFdlYkNvcmU6OkludFBvaW50IGRv
Y3VtZW50UG9pbnQsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblBvaW50KQorICAgIEdldFBERkZp
cnN0UGFnZVNpemUoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQpIC0+IChXZWJDb3Jl
OjpGbG9hdFNpemUgc2l6ZSkgQXN5bmMKIAogICAgIFJlbG9hZCh1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIHVpbnQzMl90IHJlbG9hZE9wdGlvbnMsIFdlYktpdDo6U2FuZGJveEV4dGVuc2lvbjo6SGFu
ZGxlIHNhbmRib3hFeHRlbnNpb25IYW5kbGUpCiAgICAgU3RvcExvYWRpbmcoKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDAzMjRhYjdmNjA1Mzk3
MWI0MzcwMjI3MzU5ODRkNGZkNzMyMDFjZWEuLmEyY2MyMWQwZmYwOTNkZDY1MDcxODU1ZGViZjll
YjE2MWQ4ZDNlOWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wMi0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFj
aHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIEFkZCBTUEkgZm9yIGdldHRpbmcgc2l6
ZSBvZiBQREYgZG9jdW1lbnQgZHVyaW5nIHByaW50aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIwNjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
Lzc0MzcwODkxPgorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuIGFuZCBUaW0gSG9y
dG9uLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvdGVz
dF9wcmludC5wZGY6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvV0tQREZWaWV3Lm1tOgorICAgICAgICAoLVtQcmludFVJRGVsZWdhdGUgX3dlYlZpZXc6
cHJpbnRGcmFtZTpwZGZGaXJzdFBhZ2VTaXplOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAg
ICAoLVtQcmludFVJRGVsZWdhdGUgd2FpdEZvclBhZ2VTaXplXSk6CisgICAgICAgICgtW1ByaW50
VUlEZWxlZ2F0ZSBsYXN0UHJpbnRlZEZyYW1lXSk6CisgICAgICAgIChURVNUKToKKwogMjAyMS0w
Mi0xNyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIEVmZmVjdGl2ZWx5IHJldmVydCByMjcyOTA4CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDJkMmY5ZTYyNzY5MDZlNWY1NDBhZjQ5MTI4ODU2MzYzMjY1YjVjOWUuLjhjNDU3ZjkxYmM1ZTVh
MzIzMWY2NTNjM2NlOWU1MmFmMmFhODEyNjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC00
NjEsNiArNDYxLDcgQEAKIAkJNUM0QTg0OTUxRjdFRUZGQzAwQUNGQzU0IC8qIENvbmZpZ3VyYXRp
b24ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzRB
ODQ5NDFGN0VFRkQ0MDBBQ0ZDNTQgLyogQ29uZmlndXJhdGlvbi5tbSAqLzsgfTsKIAkJNUM2OUJE
RDUxRjgyQTdFRjAwMEY0RjRCIC8qIEphdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM2OUJERDQxRjgyQTdF
QjAwMEY0RjRCIC8qIEphdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tICovOyB9OwogCQk1QzZF
MjdBNzIyNEVFQkVBMDAxMjg3MzYgLyogVVJMQ2Fub25pY2FsaXphdGlvbi5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNkUyN0E2MjI0RUVCRUEwMDEy
ODczNiAvKiBVUkxDYW5vbmljYWxpemF0aW9uLm1tICovOyB9OworCQk1QzcxMDFDNzI1REQ5OEI2
MDA2ODYyMDAgLyogdGVzdF9wcmludC5wZGYgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM3MTAxQzYyNUREOTg4NzAwNjg2MjAwIC8qIHRlc3Rf
cHJpbnQucGRmICovOyB9OwogCQk1QzcxNDg5NTIxMjNBNDBBMDBGREUzQzUgLyogV0tXZWJzaXRl
RGF0YXN0b3JlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUM3MTQ4OTQyMTIzQTQwNzAwRkRFM0M1IC8qIFdLV2Vic2l0ZURhdGFzdG9yZS5tbSAqLzsg
fTsKIAkJNUM3NTcxNjEyMjEyNEM1MjAwQjlFNUFDIC8qIEJ1bmRsZVJldGFpblBhZ2VQbHVnSW4u
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Qzc1NzE1
RjIyMTI0OUJEMDBCOUU1QUMgLyogQnVuZGxlUmV0YWluUGFnZVBsdWdJbi5tbSAqLzsgfTsKIAkJ
NUM3OTY0MTAxRUIwMjc4RDAwNzVENzRDIC8qIEV2ZW50TW9kaWZpZXJzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNzk2NDBGMUVCMDI2OUIwMDc1
RDc0QyAvKiBFdmVudE1vZGlmaWVycy5jcHAgKi87IH07CkBAIC0xNjQ5LDYgKzE2NTAsNyBAQAog
CQkJCUM5NTk4NEY3MUUzNkJDRUYwMDJDMEQ0NSAvKiB0ZXN0LXdpdGhvdXQtYXVkaW8tdHJhY2su
bXA0IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTUyNEJCQ0ExMTlFMzBDNzcwMDJGMUFGMSAv
KiB0ZXN0Lm1wNCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQk3QUU5RTUwOTFBRTVBRThCMDBD
Rjg3NEIgLyogdGVzdC5wZGYgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJNUM3MTAxQzcyNURE
OThCNjAwNjg2MjAwIC8qIHRlc3RfcHJpbnQucGRmIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CTJFOTg5NjE1MUQ4RjA5MzgwMDczOTg5MiAvKiB0ZXh0LWFuZC1wYXNzd29yZC1pbnB1dHMuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNENENzRDNjIwRkRBQ0ZBMDBERTM3OTQgLyog
dGV4dC13aXRoLWFzeW5jLXNjcmlwdC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0
NEM3QTA1MjBGQUFFM0MwMDE0NDc4QyAvKiB0ZXh0LXdpdGgtZGVmZXJyZWQtc2NyaXB0Lmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0yMjQ3LDYgKzIyNDksNyBAQAogCQk1QzY4MzQ3MTIz
NUFDQzdDMDA0MUU2QjEgLyogU2VydmljZVdvcmtlclRDUFNlcnZlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTZXJ2aWNlV29ya2VyVENQU2VydmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTVDNjlCREQ0MUY4MkE3RUIwMDBGNEY0QiAvKiBKYXZhU2NyaXB0
RHVyaW5nTmF2aWdhdGlvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEphdmFTY3JpcHREdXJpbmdOYXZpZ2F0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1QzZFMjdBNjIyNEVFQkVBMDAxMjg3MzYgLyogVVJMQ2Fub25pY2FsaXphdGlvbi5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFVSTENhbm9uaWNhbGl6
YXRpb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDNzEwMUM2MjVERDk4ODcw
MDY4NjIwMCAvKiB0ZXN0X3ByaW50LnBkZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IGltYWdlLnBkZjsgcGF0aCA9IHRlc3RfcHJpbnQucGRmOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1QzcxNDg5NDIxMjNBNDA3MDBGREUzQzUgLyogV0tX
ZWJzaXRlRGF0YXN0b3JlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV0tXZWJzaXRlRGF0YXN0b3JlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
QzcyRThDRDI0NEZGQ0UzMDAzODFFQjcgLyogVGVzdExlZ2FjeURvd25sb2FkRGVsZWdhdGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gVGVzdExlZ2FjeURvd25sb2FkRGVsZWdh
dGUuaDsgcGF0aCA9IGNvY29hL1Rlc3RMZWdhY3lEb3dubG9hZERlbGVnYXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDNzJFOENFMjQ0RkZDRTQwMDM4MUVCNyAvKiBUZXN0TGVn
YWN5RG93bmxvYWREZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
bmFtZSA9IFRlc3RMZWdhY3lEb3dubG9hZERlbGVnYXRlLm1tOyBwYXRoID0gY29jb2EvVGVzdExl
Z2FjeURvd25sb2FkRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00
MjI4LDYgKzQyMzEsNyBAQAogCQkJCTc2NzM0OTk3MTkzMDE2REMwMEU0NERGOSAvKiBTdG9wTG9h
ZGluZ0R1cmluZ0RpZEZhaWxQcm92aXNpb25hbExvYWQuY3BwICovLAogCQkJCTc2NzM0OTlBMTkz
MDE4MkUwMEU0NERGOSAvKiBTdG9wTG9hZGluZ0R1cmluZ0RpZEZhaWxQcm92aXNpb25hbExvYWRf
YnVuZGxlLmNwcCAqLywKIAkJCQkxQUU3MkY0NzE3M0VCMjE0MDA2MzYyRjAgLyogVGVybWluYXRl
VHdpY2UuY3BwICovLAorCQkJCTVDNzEwMUM2MjVERDk4ODcwMDY4NjIwMCAvKiB0ZXN0X3ByaW50
LnBkZiAqLywKIAkJCQlDRTM1MjRGMTFCMTQyQjhEMDAyOEE3QzUgLyogVGV4dEZpZWxkRGlkQmVn
aW5BbmRFbmRFZGl0aW5nLmNwcCAqLywKIAkJCQlDRTM1MjRGMjFCMTQyQjhEMDAyOEE3QzUgLyog
VGV4dEZpZWxkRGlkQmVnaW5BbmRFbmRFZGl0aW5nX0J1bmRsZS5jcHAgKi8sCiAJCQkJNEE0MTBG
NEIxOUFGN0JENjAwMkVCQUI1IC8qIFVzZXJNZWRpYS5jcHAgKi8sCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC90ZXN0X3ByaW50LnBkZiBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0L3Rlc3RfcHJpbnQucGRmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzMmVmOTAw
Y2NjNGYwOGNkMGM2MTFlY2YxYWVhMDVkYmZjZjY4Y2MKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFs
IDIzNzcKemNtYlZPWkV3PnM1YXRpfktsc1o4MnI8N1RhYXZVTSEmKExkIz0zU0FORUlLbClFUGwt
eWR+fjVgMTVkUUN1XkU/CnoyJDMhP3pQc24lZTBTY19ZPGxgeTkwJW0rSCh0LStCNyQ7aXU3OGx4
aF9HMntSQCtwVWJqMUpyOFdUMXRieipaPAp6T2NTZj1pfEhINXJRa3h1SlBkaW5VdmQ3Tl5PdUMz
bzdMWVgjJCUkMzYqQDtgJWdke3V4MDxwXlZ3MUpHMGpIQjIKelVDe154PTdmRHRIbjBmWHE2SjRu
NlFxWWJMQmMqSF9zSnFIXklKPVc+WX5DUDNUK1dLKk9sM3BESHk3Z21NKmxWCnpPOXQ3Yz5gRmdh
JUZaPypjflpZOF81MTdfVlA3dzxmOVRYWTxlOHd0YHdnemJBRGZ1TT5jVW9aSVllS21lK3UtWQp6
UytwNmtxWUtfKjNsfTtTbjZDeVJhRXNeRU9hSUdyUG9wPERfXlMkK0lTQjR0dWt6JT9Ka1RaanE9
WT0/RyMqT2UKeiUjc29VdDlQbGpGJk9eLSM8PWFvUkJTPEI1Y1YtJkt8V2p4ekcwR0BpYT90VUB7
PXhaPzAzcU1VczxUVzRNRG0zCnp2cTUwITlmVzhoRSlQSTM+QEd4d0V6bGlkUSs9UE9kajlUJnJX
RndvYWRUSGBLeyV9Tzled08xMG5idkNqNkBQWQp6NHteTD9GYVVOS3BpbVN4QWpkKz9LfUhhd3Z9
WHk5Y3hVUElQJTNhIXlLKEpCKXo2K1FpVmh9ZFZKXnd0ZmRzblIKej4hOEI4MS1tMUZsWTs9PCNt
SFFBQjhJUTFVWm9xdHBpIW9WVCpCez1pU30lJEQ8TSNPQ1NjfXkpdnI7JVRna3lMCnohKGlmJi11
QlM9WFQ1JEd7UHNTZnc+PyVHeT5pZHJNPXUre2s+SVE2MzchMnVzc3t+V2l8d15fNlZ1SGshcnRy
cgp6PH55e088amBHVEApYjFCZk9FbzVhJEMpR0lXZTFDUSgmX0tkdCVuNlQtK3VwM3x3RjVANTx5
U1ZVRz5SUFY9PmUKejE3cGNmKkQmcDtJeUVafHtxOEBZPm8/SDZlb0RlQE5VYlNoPGtmbUJ3RDUl
MD9XVS1sVGpSMG9gZHVzVXpPYnhfCnpvN3pvKmBSVHRMZ0BNWXtOPVk/VFQxNjNASkU0bFFmVlh+
UE9vZnw7ZHFjJk04Zl4+T0l2KEp0U2tPX1h2eUFnTgp6PFhsMHspRFhTeyZaVU1vOUdKMjZHPSoh
QmtzeU9fcXtrOFA7RmQhLT5ZSkpMUTBrMXAkUVkyX2ZsSTtWQWZnJDQKenEpRGg9eWxDLUE2OVg4
NDlod1pHdVJBbWR4a3BuRyUoYWVPakVVXmhSRyY3JDZ6JDZpOWB0TyQwRD5+XyRjZG41CnpTSUQ1
UkZPWDJxOWMranZUYkROTVZ1Y0tReGRQZy1XIUlLVHpTZ0R0ZWBqdXRyUzdQTkhwemMhK3l7MTZX
UU12VQpWKUF3WGpURE1DPURqfj94KGM2bnRAJn1xe09oXkMjCgpsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJ
RGVsZWdhdGUubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1VJRGVs
ZWdhdGUubW0KaW5kZXggMGViNDU5ZjMxZTQzZGU5NzhiYzZiZDZjOTFhY2YxYTcwNjE2ZThjZC4u
NTUzNjc0YTFmN2QzYWNhMWNkYTM4YzM3OTM5ZDljMTU0ZmY5MmM2MCAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvVUlEZWxlZ2F0ZS5tbQpAQCAtNDQ5
LDcgKzQ0OSw3IEBAIFRFU1QoV2ViS2l0LCBQcmludFByZXZpZXcpCiAgICAgYm9vbCBfZG9uZTsK
IH0KIAotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmludEZyYW1lOihf
V0tGcmFtZUhhbmRsZSAqKWZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSlj
b21wbGV0aW9uSGFuZGxlcgorLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBw
cmludEZyYW1lOihfV0tGcmFtZUhhbmRsZSAqKWZyYW1lIHBkZkZpcnN0UGFnZVNpemU6KENHU2l6
ZSlzaXplIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxl
cgogewogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAgICAgX2RvbmUgPSB0cnVlOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS1BERlZpZXcubW0g
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQppbmRl
eCA3MGZjZDdhZWIwODEyNTdlNDZhYWI5MmFkMThmZTIxOTYzZmFhMGFmLi4zYjFjNGYxYWFkMzcw
MGRmOGYyZTg0MTAzZTJlMGJiNGVjMzRlNDM4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLUERGVmlldy5tbQpAQCAtNDMsNyArNDMsNyBAQAogI2lt
cG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShJT1MpIHx8IEVO
QUJMRShVSV9QUk9DRVNTX1BERl9IVUQpCisjaWYgUExBVEZPUk0oSU9TKSB8fCBFTkFCTEUoVUlf
UFJPQ0VTU19QREZfSFVEKSB8fCBQTEFURk9STShNQUMpCiBzdGF0aWMgTlNEYXRhICpwZGZEYXRh
KCkKIHsKICAgICByZXR1cm4gW05TRGF0YSBkYXRhV2l0aENvbnRlbnRzT2ZVUkw6W1tOU0J1bmRs
ZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInRlc3QiIHdpdGhFeHRlbnNpb246QCJwZGYi
IHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOwpAQCAtMzcyLDQgKzM3
MiwxMTcgQEAgVEVTVChQREZIVUQsIExvYWRQREZUeXBlV2l0aFBsdWdpbnNCbG9ja2VkKQogICAg
IGNoZWNrRnJhbWUod2ViVmlldy5fcGRmSFVEcy5hbnlPYmplY3QuZnJhbWUsIDAsIDAsIDgwMCwg
NjAwKTsKIH0KIAorI2VuZGlmIC8vIEVOQUJMRShVSV9QUk9DRVNTX1BERl9IVUQpCisKKyNpZiBQ
TEFURk9STShNQUMpCisKK0BpbnRlcmZhY2UgUHJpbnRVSURlbGVnYXRlIDogTlNPYmplY3QgPFdL
VUlEZWxlZ2F0ZT4KKworLSAoTlNTaXplKXdhaXRGb3JQYWdlU2l6ZTsKKy0gKF9XS0ZyYW1lSGFu
ZGxlICopbGFzdFByaW50ZWRGcmFtZTsKKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gUHJpbnRV
SURlbGVnYXRlIHsKKyAgICBOU1NpemUgX3BhZ2VTaXplOworICAgIGJvb2wgX3JlY2VpdmVkU2l6
ZTsKKyAgICBSZXRhaW5QdHI8X1dLRnJhbWVIYW5kbGU+IF9sYXN0UHJpbnRlZEZyYW1lOworfQor
CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByaW50RnJhbWU6KF9XS0Zy
YW1lSGFuZGxlICopZnJhbWUgcGRmRmlyc3RQYWdlU2l6ZTooQ0dTaXplKXNpemUgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQgKF4pKHZvaWQpKWNvbXBsZXRpb25IYW5kbGVyCit7CisgICAgX3BhZ2VT
aXplID0gc2l6ZTsKKyAgICBfcmVjZWl2ZWRTaXplID0gdHJ1ZTsKKyAgICBfbGFzdFByaW50ZWRG
cmFtZSA9IGZyYW1lOworICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Cit9CisKKy0gKE5TU2l6ZSl3
YWl0Rm9yUGFnZVNpemUKK3sKKyAgICBfcmVjZWl2ZWRTaXplID0gZmFsc2U7CisgICAgd2hpbGUg
KCFfcmVjZWl2ZWRTaXplKQorICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpzcGluUnVuTG9v
cCgpOworICAgIHJldHVybiBfcGFnZVNpemU7Cit9CisKKy0gKF9XS0ZyYW1lSGFuZGxlICopbGFz
dFByaW50ZWRGcmFtZQoreworICAgIHJldHVybiBfbGFzdFByaW50ZWRGcmFtZS5nZXQoKTsKK30K
KworQGVuZAorCitURVNUKFBERiwgUHJpbnRTaXplKQoreworICAgIGF1dG8gY29uZmlndXJhdGlv
biA9IFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBuZXddIGF1dG9yZWxlYXNlXTsKKyAgICBhdXRv
IHNjaGVtZUhhbmRsZXIgPSBbW1Rlc3RVUkxTY2hlbWVIYW5kbGVyIG5ld10gYXV0b3JlbGVhc2Vd
OworICAgIFtjb25maWd1cmF0aW9uIHNldFVSTFNjaGVtZUhhbmRsZXI6c2NoZW1lSGFuZGxlciBm
b3JVUkxTY2hlbWU6QCJ0ZXN0Il07CisgICAgYXV0byB3ZWJWaWV3ID0gW1tbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb25dIGF1dG9yZWxlYXNlXTsKKyAgICBhdXRvIGRlbGVnYXRlID0g
W1tQcmludFVJRGVsZWdhdGUgbmV3XSBhdXRvcmVsZWFzZV07CisgICAgd2ViVmlldy5VSURlbGVn
YXRlID0gZGVsZWdhdGU7CisKKyAgICBzY2hlbWVIYW5kbGVyLnN0YXJ0VVJMU2NoZW1lVGFza0hh
bmRsZXIgPSBeKFdLV2ViVmlldyAqLCBpZDxXS1VSTFNjaGVtZVRhc2s+IHRhc2spIHsKKyAgICAg
ICAgYXV0byB1cmwgPSB0YXNrLnJlcXVlc3QuVVJMOworICAgICAgICBOU0RhdGEgKmRhdGE7Cisg
ICAgICAgIE5TU3RyaW5nICptaW1lVHlwZTsKKyAgICAgICAgaWYgKFt1cmwucGF0aCBpc0VxdWFs
VG9TdHJpbmc6QCIvbWFpbi5odG1sIl0pIHsKKyAgICAgICAgICAgIG1pbWVUeXBlID0gQCJ0ZXh0
L2h0bWwiOworICAgICAgICAgICAgY29uc3QgY2hhciogaHRtbCA9ICI8YnIvPjxpZnJhbWUgc3Jj
PSd0ZXN0LnBkZicgaWQ9J3BkZmZyYW1lJz48L2lmcmFtZT4iOworICAgICAgICAgICAgZGF0YSA9
IFtOU0RhdGEgZGF0YVdpdGhCeXRlczpodG1sIGxlbmd0aDpzdHJsZW4oaHRtbCldOworICAgICAg
ICB9IGVsc2UgaWYgKFt1cmwucGF0aCBpc0VxdWFsVG9TdHJpbmc6QCIvdGVzdC5wZGYiXSkgewor
ICAgICAgICAgICAgbWltZVR5cGUgPSBAImFwcGxpY2F0aW9uL3BkZiI7CisgICAgICAgICAgICBk
YXRhID0gcGRmRGF0YSgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgRVhQRUNUX1dL
X1NUUkVRKHVybC5wYXRoLCAiL3Rlc3RfcHJpbnQucGRmIik7CisgICAgICAgICAgICBtaW1lVHlw
ZSA9IEAiYXBwbGljYXRpb24vcGRmIjsKKyAgICAgICAgICAgIGRhdGEgPSBbTlNEYXRhIGRhdGFX
aXRoQ29udGVudHNPZlVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAi
dGVzdF9wcmludCIgd2l0aEV4dGVuc2lvbjpAInBkZiIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktp
dEFQSS5yZXNvdXJjZXMiXV07CisgICAgICAgIH0KKyAgICAgICAgTlNVUkxSZXNwb25zZSAqcmVz
cG9uc2UgPSBbW1tOU1VSTFJlc3BvbnNlIGFsbG9jXSBpbml0V2l0aFVSTDp1cmwgTUlNRVR5cGU6
bWltZVR5cGUgZXhwZWN0ZWRDb250ZW50TGVuZ3RoOmRhdGEubGVuZ3RoIHRleHRFbmNvZGluZ05h
bWU6bmlsXSBhdXRvcmVsZWFzZV07CisgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVSZXNwb25zZTpy
ZXNwb25zZV07CisgICAgICAgIFt0YXNrIGRpZFJlY2VpdmVEYXRhOmRhdGFdOworICAgICAgICBb
dGFzayBkaWRGaW5pc2hdOworICAgIH07CisKKyAgICBbd2ViVmlldyBsb2FkUmVxdWVzdDpbTlNV
UkxSZXF1ZXN0IHJlcXVlc3RXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOkAidGVzdDovLy90
ZXN0X3ByaW50LnBkZiJdXV07CisgICAgYXV0byBzaXplID0gW2RlbGVnYXRlIHdhaXRGb3JQYWdl
U2l6ZV07CisgICAgRVhQRUNUX0VRKHNpemUuaGVpZ2h0LCA3OTIuMCk7CisgICAgRVhQRUNUX0VR
KHNpemUud2lkdGgsIDYxMi4wKTsKKworICAgIF9fYmxvY2sgYm9vbCByZWNlaXZlZFNpemUgPSBm
YWxzZTsKKyAgICBbd2ViVmlldyBfZ2V0UERGRmlyc3RQYWdlU2l6ZUluRnJhbWU6d2ViVmlldy5f
bWFpbkZyYW1lIGNvbXBsZXRpb25IYW5kbGVyOl4oQ0dTaXplIHJlcXVlc3RlZFNpemUpIHsKKyAg
ICAgICAgRVhQRUNUX0VRKHJlcXVlc3RlZFNpemUuaGVpZ2h0LCA3OTIuMCk7CisgICAgICAgIEVY
UEVDVF9FUShyZXF1ZXN0ZWRTaXplLndpZHRoLCA2MTIuMCk7CisgICAgICAgIHJlY2VpdmVkU2l6
ZSA9IHRydWU7CisgICAgfV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZl
ZFNpemUpOworCisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6W05TVVJMUmVxdWVzdCByZXF1ZXN0
V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzpAInRlc3Q6Ly8vbWFpbi5odG1sIl1dXTsKKyAg
ICBbd2ViVmlldyBfdGVzdF93YWl0Rm9yRGlkRmluaXNoTmF2aWdhdGlvbl07CisgICAgW3dlYlZp
ZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAid2luZG93LnByaW50KCkiIGNvbXBsZXRpb25IYW5kbGVy
Om5pbF07CisgICAgYXV0byBtYWluRnJhbWVTaXplID0gW2RlbGVnYXRlIHdhaXRGb3JQYWdlU2l6
ZV07CisgICAgRVhQRUNUX0VRKG1haW5GcmFtZVNpemUuaGVpZ2h0LCAwLjApOworICAgIEVYUEVD
VF9FUShtYWluRnJhbWVTaXplLndpZHRoLCAwLjApOworICAgIAorICAgIHJlY2VpdmVkU2l6ZSA9
IGZhbHNlOworICAgIFt3ZWJWaWV3IF9nZXRQREZGaXJzdFBhZ2VTaXplSW5GcmFtZTp3ZWJWaWV3
Ll9tYWluRnJhbWUgY29tcGxldGlvbkhhbmRsZXI6XihDR1NpemUgcmVxdWVzdGVkU2l6ZSkgewor
ICAgICAgICBFWFBFQ1RfRVEocmVxdWVzdGVkU2l6ZS5oZWlnaHQsIDAuMCk7CisgICAgICAgIEVY
UEVDVF9FUShyZXF1ZXN0ZWRTaXplLndpZHRoLCAwLjApOworICAgICAgICByZWNlaXZlZFNpemUg
PSB0cnVlOworICAgIH1dOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRT
aXplKTsKKworICAgIFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdDpAInBkZmZyYW1lLmNvbnRl
bnRXaW5kb3cucHJpbnQoKSIgY29tcGxldGlvbkhhbmRsZXI6bmlsXTsKKyAgICBhdXRvIHBkZkZy
YW1lU2l6ZSA9IFtkZWxlZ2F0ZSB3YWl0Rm9yUGFnZVNpemVdOworICAgIEVYUEVDVF9ORUFSKHBk
ZkZyYW1lU2l6ZS5oZWlnaHQsIDI4Ljc5OTk5OSwgLjAwMDAxKTsKKyAgICBFWFBFQ1RfTkVBUihw
ZGZGcmFtZVNpemUud2lkdGgsIDEyOS42MDAwMDYsIC4wMDAwMSk7CisKKyAgICByZWNlaXZlZFNp
emUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyBfZ2V0UERGRmlyc3RQYWdlU2l6ZUluRnJhbWU6ZGVs
ZWdhdGUubGFzdFByaW50ZWRGcmFtZSBjb21wbGV0aW9uSGFuZGxlcjpeKENHU2l6ZSByZXF1ZXN0
ZWRTaXplKSB7CisgICAgICAgIEVYUEVDVF9ORUFSKHJlcXVlc3RlZFNpemUuaGVpZ2h0LCAyOC43
OTk5OTksIC4wMDAwMSk7CisgICAgICAgIEVYUEVDVF9ORUFSKHJlcXVlc3RlZFNpemUud2lkdGgs
IDEyOS42MDAwMDYsIC4wMDAwMSk7CisgICAgICAgIHJlY2VpdmVkU2l6ZSA9IHRydWU7CisgICAg
fV07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFNpemUpOworfQorCiAj
ZW5kaWYK
</data>
<flag name="commit-queue"
          id="439462"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>