<?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>207185</bug_id>
          
          <creation_ts>2020-02-03 22:25:33 -0800</creation_ts>
          <short_desc>_WKDownload should expose the originating FrameInfo</short_desc>
          <delta_ts>2020-02-05 13:05:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1614420</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-03 22:25:33 -0800</bug_when>
    <thetext>_WKDownload should expose the originating FrameInfo

&lt;rdar://problem/58022576&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614427</commentid>
    <comment_count>1</comment_count>
      <attachid>389633</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-03 22:44:22 -0800</bug_when>
    <thetext>Created attachment 389633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614428</commentid>
    <comment_count>2</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-03 22:44:55 -0800</bug_when>
    <thetext>API test to come, but just wanted EWS to check the build, existing API tests, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614823</commentid>
    <comment_count>3</comment_count>
      <attachid>389731</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-04 16:15:12 -0800</bug_when>
    <thetext>Created attachment 389731
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614828</commentid>
    <comment_count>4</comment_count>
      <attachid>389731</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-02-04 16:22:56 -0800</bug_when>
    <thetext>Comment on attachment 389731
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKDownload.mm:91
&gt; +    if (frameInfo.page() == nullptr)
&gt; +        frameInfo.setPage(_download-&gt;originatingPage());

Under what conditions will a FrameInfo lack a page, and why is it correct under those conditions to claim that its page was the page that originated the download? (Does the API test demonstrate this case?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614837</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-04 16:37:32 -0800</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #4)
&gt; Comment on attachment 389731 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=389731&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/_WKDownload.mm:91
&gt; &gt; +    if (frameInfo.page() == nullptr)
&gt; &gt; +        frameInfo.setPage(_download-&gt;originatingPage());
&gt; 
&gt; Under what conditions will a FrameInfo lack a page,

Most callers of DownloadProxy::create don&apos;t have a page available, so they are never created with a page, so the answer is &quot;always&quot;

&gt; Does the API test demonstrate this case?

It does.

That said, I&apos;ll just go rework the DownloadProxy c&apos;tor some more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1614854</commentid>
    <comment_count>6</comment_count>
      <attachid>389745</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-04 16:54:32 -0800</bug_when>
    <thetext>Created attachment 389745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615140</commentid>
    <comment_count>7</comment_count>
      <attachid>389745</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-02-05 11:15:18 -0800</bug_when>
    <thetext>Comment on attachment 389745
Patch

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

r=me

&gt; Source/WebKit/UIProcess/API/APIFrameInfo.h:57
&gt; +    void setPage(WebKit::WebPageProxy* page) { m_page = page; }

You can remove this setter now.

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKDownload.h:45
&gt; +@property (nonatomic, readonly) WKFrameInfo *originatingFrameInfo WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));

Let&apos;s call this &quot;originatingFrame&quot;. Even though the data type is WKFrameInfo, I think &quot;frame&quot; reads better, and it appears to be more consistent with our other WKFrameInfo APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615198</commentid>
    <comment_count>8</comment_count>
      <attachid>389849</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-05 12:46:24 -0800</bug_when>
    <thetext>Created attachment 389849
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615200</commentid>
    <comment_count>9</comment_count>
      <attachid>389851</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2020-02-05 12:49:43 -0800</bug_when>
    <thetext>Created attachment 389851
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1615217</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-02-05 13:05:47 -0800</bug_when>
    <thetext>http://trac.webkit.org/r255845</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389633</attachid>
            <date>2020-02-03 22:44:22 -0800</date>
            <delta_ts>2020-02-04 16:15:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207185-20200203224421.patch</filename>
            <type>text/plain</type>
            <size>16689</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRjMzAxMjg1MDZiMzYxM2Q0
MzBkN2JlZmQ5ZWE1YTY0YTA3NDcyMzIuLmNmZGMyODg2MTE5ODgxYTE4YTg2YWEzYTVjMGY5ODRj
YzAzY2NlNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjAtMDItMDMgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIF9XS0Rvd25sb2FkIHNob3VsZCBl
eHBvc2UgdGhlIG9yaWdpbmF0aW5nIEZyYW1lSW5mbworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0FQSUZyYW1lSW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRG93bmxvYWQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rv
d25sb2FkLm1tOgorICAgICAgICAoLVtfV0tEb3dubG9hZCBvcmlnaW5hdGluZ0ZyYW1lSW5mb10p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OmdlbmVyYXRlRG93bmxvYWRJRCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25s
b2FkUHJveHk6OkRvd25sb2FkUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5
OjpjcmVhdGUpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxv
YWRQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5OjpjcmVhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpEb3dubG9hZFByb3h5OjpmcmFtZUluZm8pOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRv
d25sb2FkUHJveHlNYXA6OmNyZWF0ZURvd25sb2FkUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpjcmVhdGVEb3dubG9hZFByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xpY3lE
ZWNpc2lvbik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmRvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnJlc3VtZURvd25sb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJv
Y2Vzc1Bvb2w6OmNyZWF0ZURvd25sb2FkUHJveHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5oOgorCiAyMDIwLTAyLTAzICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCB0aGUgaW50ZXJuYWwgYnVpbGQg
YWZ0ZXIgPHJkYXI6Ly9wcm9ibGVtLzU5MTMyOTQ0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSUZyYW1lSW5mby5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSUZyYW1lSW5mby5oCmluZGV4IDdkMDg3OWRiZTc5MTg2ZDhjZDZjNzdiZDY4ZGQ3NGMx
MDVjMDY0ODcuLjdjMTBmODZhOWY4MjJhMzMxMDU1ZmUzYjc0ZWQyNDM0MGZmOTlkYTcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElGcmFtZUluZm8uaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCisjaW5jbHVkZSAiV2Vi
UGFnZVByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewpAQCAtMzQsNyArMzUsNiBAQCBzdHJ1Y3QgU2VjdXJpdHlPcmlnaW5E
YXRhOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkZyYW1lUHJveHk7Ci1jbGFzcyBX
ZWJQYWdlUHJveHk7CiBzdHJ1Y3QgRnJhbWVJbmZvRGF0YTsKIH0KIApAQCAtNTQsNiArNTQsNyBA
QCBwdWJsaWM6CiAgICAgU2VjdXJpdHlPcmlnaW4mIHNlY3VyaXR5T3JpZ2luKCkgeyByZXR1cm4g
bV9zZWN1cml0eU9yaWdpbi5nZXQoKTsgfQogICAgIEFQSTo6RnJhbWVIYW5kbGUmIGhhbmRsZSgp
IHsgcmV0dXJuIG1faGFuZGxlLmdldCgpOyB9CiAgICAgV2ViS2l0OjpXZWJQYWdlUHJveHkqIHBh
Z2UoKSB7IHJldHVybiBtX3BhZ2UuZ2V0KCk7IH0KKyAgICB2b2lkIHNldFBhZ2UoV2ViS2l0OjpX
ZWJQYWdlUHJveHkqIHBhZ2UpIHsgbV9wYWdlID0gcGFnZTsgfQogCiBwcml2YXRlOgogICAgIEZy
YW1lSW5mbyhjb25zdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEmLCBXZWJLaXQ6OldlYlBhZ2VQcm94
eSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rv
d25sb2FkLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQu
aAppbmRleCBlZWE5OWJiZGQ0M2M5YWNiNGE5YjQ4N2M5ZDAwM2Y2MTFjZGFmOTg1Li4wMDE1M2Q5
NGYyZTJkN2QxZDFlNzMyMzVhMzYzODkyYTQ0NjgyNjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQuaApAQCAtMjcsNiArMjcsNyBAQAogCiAj
aW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KIAorQGNsYXNzIFdLRnJhbWVJbmZvOwog
QGNsYXNzIFdLV2ViVmlldzsKIAogV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9z
KDguMCkpCkBAIC00MSw1ICs0Miw2IEBAIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvcygxMC4xMCks
IGlvcyg4LjApKQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5
PE5TVVJMICo+ICpyZWRpcmVjdENoYWluIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCks
IGlvcygxMS4zKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgd2FzVXNl
ckluaXRpYXRlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQpLCBpb3MoMTEuMykpOwog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0RhdGEgKnJlc3VtZURhdGEgV0tfQVBJ
X0FWQUlMQUJMRShtYWNvcygxMC4xNC40KSwgaW9zKDEyLjIpKTsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSkgV0tGcmFtZUluZm8gKm9yaWdpbmF0aW5nRnJhbWVJbmZvIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIEBlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5tbQppbmRl
eCA2NTNmZDExZDE3NjU0NDU0MDBiZjNiN2Q3NzZlMjUwNzAzNzI3M2Y0Li5iY2E0ZThlMjcxZTVi
YTc5MWNkYWZiNTg4Y2ExNzYyM2ZjNTE2YTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0Rvd25sb2FkLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0
ICJfV0tEb3dubG9hZEludGVybmFsLmgiCiAKICNpbXBvcnQgIkRvd25sb2FkUHJveHkuaCIKKyNp
bXBvcnQgIldLRnJhbWVJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLTlNEYXRhLmgiCiAjaW1w
b3J0ICJXS1dlYlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CkBA
IC04Myw2ICs4NCwxNSBAQCAtIChOU0RhdGEgKilyZXN1bWVEYXRhCiAgICAgcmV0dXJuIFdlYktp
dDo6d3JhcHBlcihfZG93bmxvYWQtPnJlc3VtZURhdGEoKSk7CiB9CiAKKy0gKFdLRnJhbWVJbmZv
ICopb3JpZ2luYXRpbmdGcmFtZUluZm8KK3sKKyAgICBhdXRvJiBmcmFtZUluZm8gPSBfZG93bmxv
YWQtPmZyYW1lSW5mbygpOworICAgIGlmIChmcmFtZUluZm8ucGFnZSgpID09IG51bGxwdHIpCisg
ICAgICAgIGZyYW1lSW5mby5zZXRQYWdlKF9kb3dubG9hZC0+b3JpZ2luYXRpbmdQYWdlKCkpOwor
CisgICAgcmV0dXJuIFdlYktpdDo6d3JhcHBlcigmZnJhbWVJbmZvKTsKK30KKwogLSAoaWQpY29w
eVdpdGhab25lOihOU1pvbmUgKil6b25lCiB7CiAgICAgcmV0dXJuIFtzZWxmIHJldGFpbl07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5j
cHAKaW5kZXggNjYzZWE1MjZlZDgwMjI2YmExM2JlMjMzOTUxMmM4MmYxZDVmMjE1YS4uNTU4YzFm
ZjIyM2E0YjQzMzA4M2RiZTRlYjgyOTY4MDkxMTUwOTgyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmNwcApAQCAtMjgsOSArMjgs
MTEgQEAKIAogI2luY2x1ZGUgIkFQSURhdGEuaCIKICNpbmNsdWRlICJBUElEb3dubG9hZENsaWVu
dC5oIgorI2luY2x1ZGUgIkFQSUZyYW1lSW5mby5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlUHJveHkuaCIKICNpbmNsdWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAi
RG93bmxvYWRQcm94eU1hcC5oIgorI2luY2x1ZGUgIkZyYW1lSW5mb0RhdGEuaCIKICNpbmNsdWRl
ICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94
eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgpAQCAtNTAsMTggKzUyLDE0IEBAIHN0YXRp
YyB1aW50NjRfdCBnZW5lcmF0ZURvd25sb2FkSUQoKQogICAgIHN0YXRpYyB1aW50NjRfdCB1bmlx
dWVEb3dubG9hZElEID0gMDsKICAgICByZXR1cm4gKyt1bmlxdWVEb3dubG9hZElEOwogfQotICAg
IAotUmVmPERvd25sb2FkUHJveHk+IERvd25sb2FkUHJveHk6OmNyZWF0ZShEb3dubG9hZFByb3h5
TWFwJiBkb3dubG9hZFByb3h5TWFwLCBXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUsIFdlYlBy
b2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJl
cXVlc3QpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRG93bmxvYWRQcm94eShkb3dubG9h
ZFByb3h5TWFwLCBkYXRhU3RvcmUsIHByb2Nlc3NQb29sLCByZXNvdXJjZVJlcXVlc3QpKTsKLX0K
IAotRG93bmxvYWRQcm94eTo6RG93bmxvYWRQcm94eShEb3dubG9hZFByb3h5TWFwJiBkb3dubG9h
ZFByb3h5TWFwLCBXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUsIFdlYlByb2Nlc3NQb29sJiBw
cm9jZXNzUG9vbCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCitEb3du
bG9hZFByb3h5OjpEb3dubG9hZFByb3h5KERvd25sb2FkUHJveHlNYXAmIGRvd25sb2FkUHJveHlN
YXAsIFdlYnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9yZSwgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQ
b29sLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCwgY29uc3QgRnJhbWVJ
bmZvRGF0YSYgZnJhbWVJbmZvRGF0YSkKICAgICA6IG1fZG93bmxvYWRQcm94eU1hcChkb3dubG9h
ZFByb3h5TWFwKQogICAgICwgbV9kYXRhU3RvcmUoJmRhdGFTdG9yZSkKICAgICAsIG1fcHJvY2Vz
c1Bvb2woJnByb2Nlc3NQb29sKQogICAgICwgbV9kb3dubG9hZElEKGdlbmVyYXRlRG93bmxvYWRJ
RCgpKQogICAgICwgbV9yZXF1ZXN0KHJlc291cmNlUmVxdWVzdCkKKyAgICAsIG1fZnJhbWVJbmZv
KEFQSTo6RnJhbWVJbmZvOjpjcmVhdGUoRnJhbWVJbmZvRGF0YSB7IGZyYW1lSW5mb0RhdGEgfSwg
bnVsbHB0cikpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWRQcm94eS5oCmluZGV4IGNkMGIwMGU1NzMxMTRlNzc5MzZjYjc4ZDcxODVjNTYw
OTdjZWU4M2UuLmMxMDU1ODc3MWY2NjQ3MWM5OWNiYzFkZWU2NDMyNDc4Y2EwODU2MGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaApA
QCAtMzYsNiArMzYsNyBAQAogCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIERhdGE7CitjbGFzcyBG
cmFtZUluZm87CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTU0LDkgKzU1LDE1IEBAIGNs
YXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xhc3MgV2Vic2l0ZURh
dGFTdG9yZTsKIAorc3RydWN0IEZyYW1lSW5mb0RhdGE7CisKIGNsYXNzIERvd25sb2FkUHJveHkg
OiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpEb3dubG9hZD4sIHB1
YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxEb3du
bG9hZFByb3h5PiBjcmVhdGUoRG93bmxvYWRQcm94eU1hcCYsIFdlYnNpdGVEYXRhU3RvcmUmLCBX
ZWJQcm9jZXNzUG9vbCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOworCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4gc3RhdGljIFJlZjxEb3dubG9hZFByb3h5PiBjcmVh
dGUoQXJncyYmLi4uIGFyZ3MpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBE
b3dubG9hZFByb3h5KHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLikpOworICAgIH0KICAgICB+
RG93bmxvYWRQcm94eSgpOwogCiAgICAgRG93bmxvYWRJRCBkb3dubG9hZElEKCkgY29uc3QgeyBy
ZXR1cm4gbV9kb3dubG9hZElEOyB9CkBAIC05OCw4ICsxMDUsMTAgQEAgcHVibGljOgogICAgIHZv
aWQgcHVibGlzaFByb2dyZXNzKGNvbnN0IFVSTCYpOwogI2VuZGlmCiAKKyAgICBBUEk6OkZyYW1l
SW5mbyYgZnJhbWVJbmZvKCkgeyByZXR1cm4gbV9mcmFtZUluZm8uZ2V0KCk7IH0KKwogcHJpdmF0
ZToKLSAgICBleHBsaWNpdCBEb3dubG9hZFByb3h5KERvd25sb2FkUHJveHlNYXAmLCBXZWJzaXRl
RGF0YVN0b3JlJiwgV2ViUHJvY2Vzc1Bvb2wmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmKTsKKyAgICBleHBsaWNpdCBEb3dubG9hZFByb3h5KERvd25sb2FkUHJveHlNYXAmLCBXZWJz
aXRlRGF0YVN0b3JlJiwgV2ViUHJvY2Vzc1Bvb2wmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmLCBjb25zdCBGcmFtZUluZm9EYXRhJik7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpE
ZWNvZGVyJikgb3ZlcnJpZGU7CkBAIC0xMzIsNiArMTQxLDcgQEAgcHJpdmF0ZToKICAgICBXZWFr
UHRyPFdlYlBhZ2VQcm94eT4gbV9vcmlnaW5hdGluZ1BhZ2U7CiAgICAgVmVjdG9yPFVSTD4gbV9y
ZWRpcmVjdENoYWluOwogICAgIGJvb2wgbV93YXNVc2VySW5pdGlhdGVkIHsgdHJ1ZSB9OworICAg
IFJlZjxBUEk6OkZyYW1lSW5mbz4gbV9mcmFtZUluZm87CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZFByb3h5TWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZFByb3h5TWFwLmNwcAppbmRleCA0OTJkNTUwMDJkMDQ0MjUxYjZjMTRiYWFlMGI4MGJmMTM1
YmUyYzQzLi42NmUzODE3NzM5MmRkNjQyMGExMTM3M2FmMDA2OWY3NGZmMTBmNzc4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlN
YXAuY3BwCkBAIC04MCw5ICs4MCw5IEBAIHZvaWQgRG93bmxvYWRQcm94eU1hcDo6YXBwbGljYXRp
b25XaWxsRW50ZXJGb3JlZ3JvdW5kKCkKICAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6QXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCksIDApOwog
fQogCi1Eb3dubG9hZFByb3h5JiBEb3dubG9hZFByb3h5TWFwOjpjcmVhdGVEb3dubG9hZFByb3h5
KFdlYnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9yZSwgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29s
LCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKK0Rvd25s
b2FkUHJveHkmIERvd25sb2FkUHJveHlNYXA6OmNyZWF0ZURvd25sb2FkUHJveHkoV2Vic2l0ZURh
dGFTdG9yZSYgZGF0YVN0b3JlLCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBGcmFtZUluZm9E
YXRhJiBmcmFtZUluZm8pCiB7Ci0gICAgYXV0byBkb3dubG9hZFByb3h5ID0gRG93bmxvYWRQcm94
eTo6Y3JlYXRlKCp0aGlzLCBkYXRhU3RvcmUsIHByb2Nlc3NQb29sLCByZXNvdXJjZVJlcXVlc3Qp
OworICAgIGF1dG8gZG93bmxvYWRQcm94eSA9IERvd25sb2FkUHJveHk6OmNyZWF0ZSgqdGhpcywg
ZGF0YVN0b3JlLCBwcm9jZXNzUG9vbCwgcmVzb3VyY2VSZXF1ZXN0LCBmcmFtZUluZm8pOwogICAg
IG1fZG93bmxvYWRzLnNldChkb3dubG9hZFByb3h5LT5kb3dubG9hZElEKCksIGRvd25sb2FkUHJv
eHkuY29weVJlZigpKTsKIAogICAgIFJFTEVBU0VfTE9HKExvYWRpbmcsICJBZGRpbmcgZG93bmxv
YWQgJSIgUFJJdTY0ICIgdG8gVUlQcm9jZXNzIERvd25sb2FkUHJveHlNYXAiLCBkb3dubG9hZFBy
b3h5LT5kb3dubG9hZElEKCkuZG93bmxvYWRJRCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5oCmluZGV4IDNmNTA1YjEwNjM5
ZjVkMGYzNTI1ODY3YjZiNmE5M2IzN2FlODVlZjYuLmJmOWJkMTRkNGFlNThjNjVhY2Y0ZmI2Mjlm
ZTFhY2U3ZWJjZjkxMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZFByb3h5TWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuaApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgRG93bmxvYWRQcm94eU1hcChOZXR3b3JrUHJvY2Vzc1Byb3h5Jik7CiAgICAgfkRv
d25sb2FkUHJveHlNYXAoKTsKIAotICAgIERvd25sb2FkUHJveHkmIGNyZWF0ZURvd25sb2FkUHJv
eHkoV2Vic2l0ZURhdGFTdG9yZSYsIFdlYlByb2Nlc3NQb29sJiwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0Jik7CisgICAgRG93bmxvYWRQcm94eSYgY3JlYXRlRG93bmxvYWRQcm94eShX
ZWJzaXRlRGF0YVN0b3JlJiwgV2ViUHJvY2Vzc1Bvb2wmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBjb25zdCBGcmFtZUluZm9EYXRhJik7CiAgICAgdm9pZCBkb3dubG9hZEZpbmlz
aGVkKERvd25sb2FkUHJveHkmKTsKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJu
IG1fZG93bmxvYWRzLmlzRW1wdHkoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggMDk4YmQ1YWRhN2Vj
YWJlY2FlNDQ2ZDE1NDViMmZmZTkzNGM1ZGEwZi4uZGVhZTg5MDc3Mjg3Y2ZiZjM0MjU3ZTJiYjYw
YTJkNWM0ZjEzMDdhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xODIsMTIgKzE4MiwxMiBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OnN5bnRoZXNpemVBcHBJc0JhY2tncm91bmQoYm9vbCBiYWNr
Z3JvdW5kKQogICAgIH0KIH0KIAotRG93bmxvYWRQcm94eSYgTmV0d29ya1Byb2Nlc3NQcm94eTo6
Y3JlYXRlRG93bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQorRG93bmxvYWRQcm94eSYgTmV0d29ya1By
b2Nlc3NQcm94eTo6Y3JlYXRlRG93bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3Rv
cmUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBGcmFtZUlu
Zm9EYXRhJiBmcmFtZUluZm8pCiB7CiAgICAgaWYgKCFtX2Rvd25sb2FkUHJveHlNYXApCiAgICAg
ICAgIG1fZG93bmxvYWRQcm94eU1hcCA9IG1ha2VVbmlxdWU8RG93bmxvYWRQcm94eU1hcD4oKnRo
aXMpOwogCi0gICAgcmV0dXJuIG1fZG93bmxvYWRQcm94eU1hcC0+Y3JlYXRlRG93bmxvYWRQcm94
eShkYXRhU3RvcmUsIG1fcHJvY2Vzc1Bvb2wsIHJlc291cmNlUmVxdWVzdCk7CisgICAgcmV0dXJu
IG1fZG93bmxvYWRQcm94eU1hcC0+Y3JlYXRlRG93bmxvYWRQcm94eShkYXRhU3RvcmUsIG1fcHJv
Y2Vzc1Bvb2wsIHJlc291cmNlUmVxdWVzdCwgZnJhbWVJbmZvKTsKIH0KIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
T3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBPcHRpb25TZXQ8V2Vic2l0ZURh
dGFGZXRjaE9wdGlvbj4gZmV0Y2hPcHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChXZWJz
aXRlRGF0YSk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IGEwMjIyMjljYjdk
YTEyODlkMTk3M2Q5NDhiZDNhNDBhZDNkYjZjOTcuLmFkMWFmNjk2MjE2ZGM4YjNiM2FkMDgxZTU0
MmExMjUwOGI0ZDA5OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC03MSw2ICs3MSw3IEBAIGVudW0gY2xhc3Mg
U3RvcmFnZUFjY2Vzc1N0YXR1cyA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhRmV0
Y2hPcHRpb247CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIAorc3RydWN0IEZyYW1lSW5m
b0RhdGE7CiBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3Qg
UmVzb3VyY2VMb2FkSW5mbzsKIHN0cnVjdCBXZWJzaXRlRGF0YTsKQEAgLTk1LDcgKzk2LDcgQEAg
cHVibGljOgogCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24oV2ViUHJvY2Vz
c1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uRGVsYXllZFJlcGx5JiYpOwogCi0gICAgRG93bmxvYWRQcm94eSYgY3JlYXRlRG93bmxv
YWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
Jik7CisgICAgRG93bmxvYWRQcm94eSYgY3JlYXRlRG93bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0
b3JlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29uc3QgRnJhbWVJbmZvRGF0
YSYpOwogCiAgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25T
ZXQ8V2Vic2l0ZURhdGFUeXBlPiwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYnNpdGVEYXRhKT4mJik7CiAgICAgdm9pZCBkZWxldGVX
ZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIFdh
bGxUaW1lIG1vZGlmaWVkU2luY2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRl
eCAzMTUyZTEyOTdjNjAyYWMxNGVkZWFmZDcwNGE5ZmZhMDg1YWIxZTEzLi4yNmFjYjU4YmEwNjEx
MmZhNWFlNjc0YzU0OTRiNmE2MjMyMzYzNzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKQEAgLTMxNDcsNyArMzE0Nyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpy
ZWNlaXZlZFBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBhY3Rpb24sIEFQSTo6TmF2aWdhdGlv
bioKICAgICBEb3dubG9hZElEIGRvd25sb2FkSUQgPSB7IH07CiAgICAgaWYgKGFjdGlvbiA9PSBQ
b2xpY3lBY3Rpb246OkRvd25sb2FkKSB7CiAgICAgICAgIC8vIENyZWF0ZSBhIGRvd25sb2FkIHBy
b3h5LgotICAgICAgICBhdXRvJiBkb3dubG9hZCA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5j
cmVhdGVEb3dubG9hZFByb3h5KG1fd2Vic2l0ZURhdGFTdG9yZSwgbV9kZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZVJlcXVlc3QsIHRoaXMpOworICAgICAgICBhdXRvJiBkb3dubG9hZCA9IG1fcHJvY2Vz
cy0+cHJvY2Vzc1Bvb2woKS5jcmVhdGVEb3dubG9hZFByb3h5KG1fd2Vic2l0ZURhdGFTdG9yZSwg
bV9kZWNpZGVQb2xpY3lGb3JSZXNwb25zZVJlcXVlc3QsIHRoaXMsIG5hdmlnYXRpb24gPyBuYXZp
Z2F0aW9uLT5vcmlnaW5hdGluZ0ZyYW1lSW5mbygpIDogRnJhbWVJbmZvRGF0YSB7IH0pOwogICAg
ICAgICBpZiAobmF2aWdhdGlvbikgewogICAgICAgICAgICAgZG93bmxvYWQuc2V0V2FzVXNlcklu
aXRpYXRlZChuYXZpZ2F0aW9uLT53YXNVc2VySW5pdGlhdGVkKCkpOwogICAgICAgICAgICAgZG93
bmxvYWQuc2V0UmVkaXJlY3RDaGFpbihuYXZpZ2F0aW9uLT50YWtlUmVkaXJlY3RDaGFpbigpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBlMWNlM2Ex
N2Q1YzZkMzhhMTJlNTRjYzFmNDVmOTUxYzE2YjI5MGQ2Li43MjVlZmNmZDViZDk5ZTI2NGI2OTJj
NjhhMWYwZWY1YmQ4YTU1MDMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCkBAIC0xMzUwLDcgKzEzNTAsNyBAQCBib29sIFdlYlByb2Nlc3NQb29sOjpoYXNQ
YWdlc1VzaW5nV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUpCiAK
IERvd25sb2FkUHJveHkmIFdlYlByb2Nlc3NQb29sOjpkb3dubG9hZChXZWJzaXRlRGF0YVN0b3Jl
JiBkYXRhU3RvcmUsIFdlYlBhZ2VQcm94eSogaW5pdGlhdGluZ1BhZ2UsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFtZSkKIHsKLSAg
ICBhdXRvJiBkb3dubG9hZFByb3h5ID0gY3JlYXRlRG93bmxvYWRQcm94eShkYXRhU3RvcmUsIHJl
cXVlc3QsIGluaXRpYXRpbmdQYWdlKTsKKyAgICBhdXRvJiBkb3dubG9hZFByb3h5ID0gY3JlYXRl
RG93bmxvYWRQcm94eShkYXRhU3RvcmUsIHJlcXVlc3QsIGluaXRpYXRpbmdQYWdlLCB7IH0pOwog
ICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCA9IGRhdGFTdG9yZS5zZXNzaW9uSUQoKTsKIAog
ICAgIGlmIChpbml0aWF0aW5nUGFnZSkKQEAgLTEzODIsNyArMTM4Miw3IEBAIERvd25sb2FkUHJv
eHkmIFdlYlByb2Nlc3NQb29sOjpkb3dubG9hZChXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUs
IFdlYlBhZ2VQcm94CiAKIERvd25sb2FkUHJveHkmIFdlYlByb2Nlc3NQb29sOjpyZXN1bWVEb3du
bG9hZChXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUsIFdlYlBhZ2VQcm94eSogaW5pdGlhdGlu
Z1BhZ2UsIGNvbnN0IEFQSTo6RGF0YSYgcmVzdW1lRGF0YSwgY29uc3QgU3RyaW5nJiBwYXRoKQog
ewotICAgIGF1dG8mIGRvd25sb2FkUHJveHkgPSBjcmVhdGVEb3dubG9hZFByb3h5KGRhdGFTdG9y
ZSwgUmVzb3VyY2VSZXF1ZXN0KCksIGluaXRpYXRpbmdQYWdlKTsKKyAgICBhdXRvJiBkb3dubG9h
ZFByb3h5ID0gY3JlYXRlRG93bmxvYWRQcm94eShkYXRhU3RvcmUsIFJlc291cmNlUmVxdWVzdCgp
LCBpbml0aWF0aW5nUGFnZSwgeyB9KTsKICAgICBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQgPSBk
YXRhU3RvcmUuc2Vzc2lvbklEKCk7CiAKICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZTsKQEAgLTE2MzIsOSArMTYzMiw5IEBAIHZvaWQgV2ViUHJvY2Vz
c1Bvb2w6OnNldERlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsKGRvdWJsZSB0aW1lb3V0SW50
ZXJ2YWwpCiAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRE
ZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRlcnZhbCh0aW1lb3V0SW50ZXJ2YWwpKTsKIH0KIAotRG93
bmxvYWRQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZURvd25sb2FkUHJveHkoV2Vic2l0ZURh
dGFTdG9yZSYgZGF0YVN0b3JlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYlBh
Z2VQcm94eSogb3JpZ2luYXRpbmdQYWdlKQorRG93bmxvYWRQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6
OmNyZWF0ZURvd25sb2FkUHJveHkoV2Vic2l0ZURhdGFTdG9yZSYgZGF0YVN0b3JlLCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFdlYlBhZ2VQcm94eSogb3JpZ2luYXRpbmdQYWdlLCBj
b25zdCBGcmFtZUluZm9EYXRhJiBmcmFtZUluZm8pCiB7Ci0gICAgYXV0byYgZG93bmxvYWRQcm94
eSA9IGVuc3VyZU5ldHdvcmtQcm9jZXNzKCkuY3JlYXRlRG93bmxvYWRQcm94eShkYXRhU3RvcmUs
IHJlcXVlc3QpOworICAgIGF1dG8mIGRvd25sb2FkUHJveHkgPSBlbnN1cmVOZXR3b3JrUHJvY2Vz
cygpLmNyZWF0ZURvd25sb2FkUHJveHkoZGF0YVN0b3JlLCByZXF1ZXN0LCBmcmFtZUluZm8pOwog
ICAgIGRvd25sb2FkUHJveHkuc2V0T3JpZ2luYXRpbmdQYWdlKG9yaWdpbmF0aW5nUGFnZSk7CiAg
ICAgcmV0dXJuIGRvd25sb2FkUHJveHk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuaAppbmRleCA2NGIxZGJjZTRjOTA3NTM2OTk5YjFjMmE1ZWIzMTQ2NzBmNDIzZTFl
Li41NjIyZmM1NzRmNjJjNDgyZGVhYmNjNTIzNDIxY2UyNzJjYzcxZWIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTMwMCw3ICszMDAsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRFbmhhbmNlZEFjY2Vzc2liaWxpdHkoYm9vbCk7CiAgICAgCiAgICAgLy8g
RG93bmxvYWRzLgotICAgIERvd25sb2FkUHJveHkmIGNyZWF0ZURvd25sb2FkUHJveHkoV2Vic2l0
ZURhdGFTdG9yZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYlBhZ2VQcm94
eSogb3JpZ2luYXRpbmdQYWdlKTsKKyAgICBEb3dubG9hZFByb3h5JiBjcmVhdGVEb3dubG9hZFBy
b3h5KFdlYnNpdGVEYXRhU3RvcmUmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBX
ZWJQYWdlUHJveHkqIG9yaWdpbmF0aW5nUGFnZSwgY29uc3QgRnJhbWVJbmZvRGF0YSYpOwogICAg
IEFQSTo6RG93bmxvYWRDbGllbnQmIGRvd25sb2FkQ2xpZW50KCkgeyByZXR1cm4gbV9kb3dubG9h
ZENsaWVudC5nZXQoKTsgfQogCiAgICAgQVBJOjpMZWdhY3lDb250ZXh0SGlzdG9yeUNsaWVudCYg
aGlzdG9yeUNsaWVudCgpIHsgcmV0dXJuICptX2hpc3RvcnlDbGllbnQ7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389731</attachid>
            <date>2020-02-04 16:15:12 -0800</date>
            <delta_ts>2020-02-04 16:54:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207185-20200204161512.patch</filename>
            <type>text/plain</type>
            <size>21745</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRjMzAxMjg1MDZiMzYxM2Q0
MzBkN2JlZmQ5ZWE1YTY0YTA3NDcyMzIuLjM0YWQ3M2JiZmQ5Y2U1NjBiYmNkYjIxMWY4NDNmM2Nm
Zjg1NGFhZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjAtMDItMDQgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIF9XS0Rvd25sb2FkIHNob3VsZCBl
eHBvc2UgdGhlIG9yaWdpbmF0aW5nIEZyYW1lSW5mby4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU4MDIyNTc2PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NzE4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENv
dmVyZWQgYnkgbmV3IEFQSSB0ZXN0LgorICAgICAgICAKKyAgICAgICAgRm9yIHRoZSBjYXNlcyB3
aGVyZSBhIG5hdmlnYXRpb24gaXMgY29udmVydGVkIGludG8gYSBkb3dubG9hZCwgaW5jbHVkZSB0
aGUgcmVsZXZhbnQKKyAgICAgICAgV0tGcmFtZUluZm8gb24gdGhlIF9XS0Rvd25sb2FkIG9iamVj
dC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRG93bmxvYWQubW06CisgICAgICAgICgtW19XS0Rvd25sb2FkIG9yaWdpbmF0
aW5nRnJhbWVJbmZvXSk6CisgICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVEb3dubG9hZElEKToKKyAgICAgICAg
KFdlYktpdDo6RG93bmxvYWRQcm94eTo6RG93bmxvYWRQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OkRvd25sb2FkUHJveHk6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZFByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkUHJveHk6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkUHJveHk6OmZyYW1lSW5mbyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6RG93bmxvYWRQcm94eU1hcDo6Y3JlYXRlRG93bmxvYWRQcm94eSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmg6CisgICAgICAgICog
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmNyZWF0ZURvd25sb2FkUHJveHkpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpy
ZWNlaXZlZFBvbGljeURlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZG93bmxvYWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVzdW1lRG93bmxvYWQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlRG93bmxvYWRQcm94eSk6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisKIDIwMjAtMDItMDMgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRoZSBp
bnRlcm5hbCBidWlsZCBhZnRlciA8cmRhcjovL3Byb2JsZW0vNTkxMzI5NDQ+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmgKaW5kZXggN2QwODc5ZGJlNzkxODZkOGNk
NmM3N2JkNjhkZDc0YzEwNWMwNjQ4Ny4uN2MxMGY4NmE5ZjgyMmEzMzEwNTVmZTNiNzRlZDI0MzQw
ZmY5OWRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUZyYW1l
SW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElGcmFtZUluZm8uaApA
QCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIK
KyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVx
dWVzdC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNCw3ICszNSw2IEBAIHN0cnVjdCBT
ZWN1cml0eU9yaWdpbkRhdGE7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViRnJhbWVQ
cm94eTsKLWNsYXNzIFdlYlBhZ2VQcm94eTsKIHN0cnVjdCBGcmFtZUluZm9EYXRhOwogfQogCkBA
IC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICBTZWN1cml0eU9yaWdpbiYgc2VjdXJpdHlPcmln
aW4oKSB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAgICAgQVBJOjpGcmFtZUhh
bmRsZSYgaGFuZGxlKCkgeyByZXR1cm4gbV9oYW5kbGUuZ2V0KCk7IH0KICAgICBXZWJLaXQ6Oldl
YlBhZ2VQcm94eSogcGFnZSgpIHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQorICAgIHZvaWQgc2V0
UGFnZShXZWJLaXQ6OldlYlBhZ2VQcm94eSogcGFnZSkgeyBtX3BhZ2UgPSBwYWdlOyB9CiAKIHBy
aXZhdGU6CiAgICAgRnJhbWVJbmZvKGNvbnN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSYsIFdlYktp
dDo6V2ViUGFnZVByb3h5Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRG93bmxvYWQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tEb3dubG9hZC5oCmluZGV4IGVlYTk5YmJkZDQzYzlhY2I0YTliNDg3YzlkMDAzZjYxMWNk
YWY5ODUuLjAwMTUzZDk0ZjJlMmQ3ZDFkMWU3MzIzNWEzNjM4OTJhNDQ2ODI2OWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCkBAIC0yNyw2
ICsyNyw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCitAY2xhc3Mg
V0tGcmFtZUluZm87CiBAY2xhc3MgV0tXZWJWaWV3OwogCiBXS19DTEFTU19BVkFJTEFCTEUobWFj
b3MoMTAuMTApLCBpb3MoOC4wKSkKQEAgLTQxLDUgKzQyLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxF
KG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHks
IGNvcHkpIE5TQXJyYXk8TlNVUkwgKj4gKnJlZGlyZWN0Q2hhaW4gV0tfQVBJX0FWQUlMQUJMRSht
YWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgQk9PTCB3YXNVc2VySW5pdGlhdGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCks
IGlvcygxMS4zKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TRGF0YSAqcmVz
dW1lRGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS0ZyYW1lSW5mbyAqb3JpZ2luYXRpbmdGcmFt
ZUluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEp
KTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0Rvd25sb2FkLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Rv
d25sb2FkLm1tCmluZGV4IDY1M2ZkMTFkMTc2NTQ0NTQwMGJmM2I3ZDc3NmUyNTA3MDM3MjczZjQu
LmJjYTRlOGUyNzFlNWJhNzkxY2RhZmI1ODhjYTE3NjIzZmM1MTZhOWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQubW0KQEAgLTI3LDYgKzI3
LDcgQEAKICNpbXBvcnQgIl9XS0Rvd25sb2FkSW50ZXJuYWwuaCIKIAogI2ltcG9ydCAiRG93bmxv
YWRQcm94eS5oIgorI2ltcG9ydCAiV0tGcmFtZUluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tO
U0RhdGEuaCIKICNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCiAjaW1wb3J0IDx3dGYvV2Vh
a09iakNQdHIuaD4KQEAgLTgzLDYgKzg0LDE1IEBAIC0gKE5TRGF0YSAqKXJlc3VtZURhdGEKICAg
ICByZXR1cm4gV2ViS2l0Ojp3cmFwcGVyKF9kb3dubG9hZC0+cmVzdW1lRGF0YSgpKTsKIH0KIAor
LSAoV0tGcmFtZUluZm8gKilvcmlnaW5hdGluZ0ZyYW1lSW5mbworeworICAgIGF1dG8mIGZyYW1l
SW5mbyA9IF9kb3dubG9hZC0+ZnJhbWVJbmZvKCk7CisgICAgaWYgKGZyYW1lSW5mby5wYWdlKCkg
PT0gbnVsbHB0cikKKyAgICAgICAgZnJhbWVJbmZvLnNldFBhZ2UoX2Rvd25sb2FkLT5vcmlnaW5h
dGluZ1BhZ2UoKSk7CisKKyAgICByZXR1cm4gV2ViS2l0Ojp3cmFwcGVyKCZmcmFtZUluZm8pOwor
fQorCiAtIChpZCljb3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpvbmUKIHsKICAgICByZXR1cm4gW3Nl
bGYgcmV0YWluXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fk
cy9Eb3dubG9hZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZFByb3h5LmNwcAppbmRleCA2NjNlYTUyNmVkODAyMjZiYTEzYmUyMzM5NTEyYzgyZjFk
NWYyMTVhLi41NThjMWZmMjIzYTRiNDMzMDgzZGJlNGViODI5NjgwOTExNTA5ODIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3Bw
CkBAIC0yOCw5ICsyOCwxMSBAQAogCiAjaW5jbHVkZSAiQVBJRGF0YS5oIgogI2luY2x1ZGUgIkFQ
SURvd25sb2FkQ2xpZW50LmgiCisjaW5jbHVkZSAiQVBJRnJhbWVJbmZvLmgiCiAjaW5jbHVkZSAi
QXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eS5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2Uu
aCIKICNpbmNsdWRlICJEb3dubG9hZFByb3h5TWFwLmgiCisjaW5jbHVkZSAiRnJhbWVJbmZvRGF0
YS5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3
b3JrUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCkBAIC01MCwxOCAr
NTIsMTQgQEAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlRG93bmxvYWRJRCgpCiAgICAgc3RhdGlj
IHVpbnQ2NF90IHVuaXF1ZURvd25sb2FkSUQgPSAwOwogICAgIHJldHVybiArK3VuaXF1ZURvd25s
b2FkSUQ7CiB9Ci0gICAgCi1SZWY8RG93bmxvYWRQcm94eT4gRG93bmxvYWRQcm94eTo6Y3JlYXRl
KERvd25sb2FkUHJveHlNYXAmIGRvd25sb2FkUHJveHlNYXAsIFdlYnNpdGVEYXRhU3RvcmUmIGRh
dGFTdG9yZSwgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmIHJlc291cmNlUmVxdWVzdCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEb3dubG9h
ZFByb3h5KGRvd25sb2FkUHJveHlNYXAsIGRhdGFTdG9yZSwgcHJvY2Vzc1Bvb2wsIHJlc291cmNl
UmVxdWVzdCkpOwotfQogCi1Eb3dubG9hZFByb3h5OjpEb3dubG9hZFByb3h5KERvd25sb2FkUHJv
eHlNYXAmIGRvd25sb2FkUHJveHlNYXAsIFdlYnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9yZSwgV2Vi
UHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNl
UmVxdWVzdCkKK0Rvd25sb2FkUHJveHk6OkRvd25sb2FkUHJveHkoRG93bmxvYWRQcm94eU1hcCYg
ZG93bmxvYWRQcm94eU1hcCwgV2Vic2l0ZURhdGFTdG9yZSYgZGF0YVN0b3JlLCBXZWJQcm9jZXNz
UG9vbCYgcHJvY2Vzc1Bvb2wsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0
LCBjb25zdCBGcmFtZUluZm9EYXRhJiBmcmFtZUluZm9EYXRhKQogICAgIDogbV9kb3dubG9hZFBy
b3h5TWFwKGRvd25sb2FkUHJveHlNYXApCiAgICAgLCBtX2RhdGFTdG9yZSgmZGF0YVN0b3JlKQog
ICAgICwgbV9wcm9jZXNzUG9vbCgmcHJvY2Vzc1Bvb2wpCiAgICAgLCBtX2Rvd25sb2FkSUQoZ2Vu
ZXJhdGVEb3dubG9hZElEKCkpCiAgICAgLCBtX3JlcXVlc3QocmVzb3VyY2VSZXF1ZXN0KQorICAg
ICwgbV9mcmFtZUluZm8oQVBJOjpGcmFtZUluZm86OmNyZWF0ZShGcmFtZUluZm9EYXRhIHsgZnJh
bWVJbmZvRGF0YSB9LCBudWxscHRyKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKaW5kZXggY2QwYjAwZTU3MzExNGU3Nzkz
NmNiNzhkNzE4NWM1NjA5N2NlZTgzZS4uYzEwNTU4NzcxZjY2NDcxYzk5Y2JjMWRlZTY0MzI0Nzhj
YTA4NTYwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rv
d25sb2FkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93
bmxvYWRQcm94eS5oCkBAIC0zNiw2ICszNiw3IEBACiAKIG5hbWVzcGFjZSBBUEkgewogY2xhc3Mg
RGF0YTsKK2NsYXNzIEZyYW1lSW5mbzsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNTQs
OSArNTUsMTUgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBj
bGFzcyBXZWJzaXRlRGF0YVN0b3JlOwogCitzdHJ1Y3QgRnJhbWVJbmZvRGF0YTsKKwogY2xhc3Mg
RG93bmxvYWRQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5cGU6
OkRvd25sb2FkPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgUmVmPERvd25sb2FkUHJveHk+IGNyZWF0ZShEb3dubG9hZFByb3h5TWFwJiwgV2Vic2l0
ZURhdGFTdG9yZSYsIFdlYlByb2Nlc3NQb29sJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0Jik7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPiBzdGF0aWMgUmVmPERvd25s
b2FkUHJveHk+IGNyZWF0ZShBcmdzJiYuLi4gYXJncykKKyAgICB7CisgICAgICAgIHJldHVybiBh
ZG9wdFJlZigqbmV3IERvd25sb2FkUHJveHkoc3RkOjpmb3J3YXJkPEFyZ3M+KGFyZ3MpLi4uKSk7
CisgICAgfQogICAgIH5Eb3dubG9hZFByb3h5KCk7CiAKICAgICBEb3dubG9hZElEIGRvd25sb2Fk
SUQoKSBjb25zdCB7IHJldHVybiBtX2Rvd25sb2FkSUQ7IH0KQEAgLTk4LDggKzEwNSwxMCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBwdWJsaXNoUHJvZ3Jlc3MoY29uc3QgVVJMJik7CiAjZW5kaWYKIAor
ICAgIEFQSTo6RnJhbWVJbmZvJiBmcmFtZUluZm8oKSB7IHJldHVybiBtX2ZyYW1lSW5mby5nZXQo
KTsgfQorCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IERvd25sb2FkUHJveHkoRG93bmxvYWRQcm94
eU1hcCYsIFdlYnNpdGVEYXRhU3RvcmUmLCBXZWJQcm9jZXNzUG9vbCYsIGNvbnN0IFdlYkNvcmU6
OlJlc291cmNlUmVxdWVzdCYpOworICAgIGV4cGxpY2l0IERvd25sb2FkUHJveHkoRG93bmxvYWRQ
cm94eU1hcCYsIFdlYnNpdGVEYXRhU3RvcmUmLCBXZWJQcm9jZXNzUG9vbCYsIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IEZyYW1lSW5mb0RhdGEmKTsKIAogICAgIC8vIElQ
Qzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKQEAgLTEzMiw2ICsxNDEsNyBAQCBwcml2
YXRlOgogICAgIFdlYWtQdHI8V2ViUGFnZVByb3h5PiBtX29yaWdpbmF0aW5nUGFnZTsKICAgICBW
ZWN0b3I8VVJMPiBtX3JlZGlyZWN0Q2hhaW47CiAgICAgYm9vbCBtX3dhc1VzZXJJbml0aWF0ZWQg
eyB0cnVlIH07CisgICAgUmVmPEFQSTo6RnJhbWVJbmZvPiBtX2ZyYW1lSW5mbzsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwCmluZGV4IDQ5MmQ1NTAwMmQwNDQyNTFiNmMx
NGJhYWUwYjgwYmYxMzViZTJjNDMuLjY2ZTM4MTc3MzkyZGQ2NDIwYTExMzczYWYwMDY5Zjc0ZmYx
MGY3NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZFByb3h5TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMv
RG93bmxvYWRQcm94eU1hcC5jcHAKQEAgLTgwLDkgKzgwLDkgQEAgdm9pZCBEb3dubG9hZFByb3h5
TWFwOjphcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKQogICAgICAgICBtX3Byb2Nlc3Mt
PnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBcHBsaWNhdGlvbldpbGxFbnRlckZvcmVn
cm91bmQoKSwgMCk7CiB9CiAKLURvd25sb2FkUHJveHkmIERvd25sb2FkUHJveHlNYXA6OmNyZWF0
ZURvd25sb2FkUHJveHkoV2Vic2l0ZURhdGFTdG9yZSYgZGF0YVN0b3JlLCBXZWJQcm9jZXNzUG9v
bCYgcHJvY2Vzc1Bvb2wsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VS
ZXF1ZXN0KQorRG93bmxvYWRQcm94eSYgRG93bmxvYWRQcm94eU1hcDo6Y3JlYXRlRG93bmxvYWRQ
cm94eShXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUsIFdlYlByb2Nlc3NQb29sJiBwcm9jZXNz
UG9vbCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QsIGNv
bnN0IEZyYW1lSW5mb0RhdGEmIGZyYW1lSW5mbykKIHsKLSAgICBhdXRvIGRvd25sb2FkUHJveHkg
PSBEb3dubG9hZFByb3h5OjpjcmVhdGUoKnRoaXMsIGRhdGFTdG9yZSwgcHJvY2Vzc1Bvb2wsIHJl
c291cmNlUmVxdWVzdCk7CisgICAgYXV0byBkb3dubG9hZFByb3h5ID0gRG93bmxvYWRQcm94eTo6
Y3JlYXRlKCp0aGlzLCBkYXRhU3RvcmUsIHByb2Nlc3NQb29sLCByZXNvdXJjZVJlcXVlc3QsIGZy
YW1lSW5mbyk7CiAgICAgbV9kb3dubG9hZHMuc2V0KGRvd25sb2FkUHJveHktPmRvd25sb2FkSUQo
KSwgZG93bmxvYWRQcm94eS5jb3B5UmVmKCkpOwogCiAgICAgUkVMRUFTRV9MT0coTG9hZGluZywg
IkFkZGluZyBkb3dubG9hZCAlIiBQUkl1NjQgIiB0byBVSVByb2Nlc3MgRG93bmxvYWRQcm94eU1h
cCIsIGRvd25sb2FkUHJveHktPmRvd25sb2FkSUQoKS5kb3dubG9hZElEKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmgKaW5k
ZXggM2Y1MDViMTA2MzlmNWQwZjM1MjU4NjdiNmI2YTkzYjM3YWU4NWVmNi4uYmY5YmQxNGQ0YWU1
OGM2NWFjZjRmYjYyOWZlMWFjZTdlYmNmOTEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5oCkBAIC01NSw3ICs1NSw3IEBA
IHB1YmxpYzoKICAgICBleHBsaWNpdCBEb3dubG9hZFByb3h5TWFwKE5ldHdvcmtQcm9jZXNzUHJv
eHkmKTsKICAgICB+RG93bmxvYWRQcm94eU1hcCgpOwogCi0gICAgRG93bmxvYWRQcm94eSYgY3Jl
YXRlRG93bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiwgV2ViUHJvY2Vzc1Bvb2wmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBEb3dubG9hZFByb3h5JiBjcmVhdGVE
b3dubG9hZFByb3h5KFdlYnNpdGVEYXRhU3RvcmUmLCBXZWJQcm9jZXNzUG9vbCYsIGNvbnN0IFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IEZyYW1lSW5mb0RhdGEmKTsKICAgICB2b2lk
IGRvd25sb2FkRmluaXNoZWQoRG93bmxvYWRQcm94eSYpOwogCiAgICAgYm9vbCBpc0VtcHR5KCkg
Y29uc3QgeyByZXR1cm4gbV9kb3dubG9hZHMuaXNFbXB0eSgpOyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCAwOThiZDVhZGE3ZWNhYmVjYWU0NDZkMTU0NWIyZmZlOTM0YzVkYTBmLi5kZWFlODkwNzcyODdj
ZmJmMzQyNTdlMmJiNjBhMmQ1YzRmMTMwN2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAgLTE4MiwxMiAr
MTgyLDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c3ludGhlc2l6ZUFwcElzQmFja2dy
b3VuZChib29sIGJhY2tncm91bmQpCiAgICAgfQogfQogCi1Eb3dubG9hZFByb3h5JiBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpjcmVhdGVEb3dubG9hZFByb3h5KFdlYnNpdGVEYXRhU3RvcmUmIGRhdGFT
dG9yZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCitEb3dubG9hZFBy
b3h5JiBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjcmVhdGVEb3dubG9hZFByb3h5KFdlYnNpdGVEYXRh
U3RvcmUmIGRhdGFTdG9yZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3Qs
IGNvbnN0IEZyYW1lSW5mb0RhdGEmIGZyYW1lSW5mbykKIHsKICAgICBpZiAoIW1fZG93bmxvYWRQ
cm94eU1hcCkKICAgICAgICAgbV9kb3dubG9hZFByb3h5TWFwID0gbWFrZVVuaXF1ZTxEb3dubG9h
ZFByb3h5TWFwPigqdGhpcyk7CiAKLSAgICByZXR1cm4gbV9kb3dubG9hZFByb3h5TWFwLT5jcmVh
dGVEb3dubG9hZFByb3h5KGRhdGFTdG9yZSwgbV9wcm9jZXNzUG9vbCwgcmVzb3VyY2VSZXF1ZXN0
KTsKKyAgICByZXR1cm4gbV9kb3dubG9hZFByb3h5TWFwLT5jcmVhdGVEb3dubG9hZFByb3h5KGRh
dGFTdG9yZSwgbV9wcm9jZXNzUG9vbCwgcmVzb3VyY2VSZXF1ZXN0LCBmcmFtZUluZm8pOwogfQog
CiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiBkYXRhVHlwZXMsIE9wdGlv
blNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiBmZXRjaE9wdGlvbnMsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQgKFdlYnNpdGVEYXRhKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggYTAyMjIyOWNiN2RhMTI4OWQxOTczZDk0OGJkM2E0MGFkM2RiNmM5Ny4uYWQxYWY2OTYyMTZk
YzhiM2IzYWQwODFlNTQyYTEyNTA4YjRkMDk5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTcxLDYgKzcxLDcg
QEAgZW51bSBjbGFzcyBTdG9yYWdlQWNjZXNzU3RhdHVzIDogdWludDhfdDsKIGVudW0gY2xhc3Mg
V2Vic2l0ZURhdGFGZXRjaE9wdGlvbjsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOwogCitz
dHJ1Y3QgRnJhbWVJbmZvRGF0YTsKIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVyczsKIHN0cnVjdCBSZXNvdXJjZUxvYWRJbmZvOwogc3RydWN0IFdlYnNpdGVEYXRhOwpAQCAt
OTUsNyArOTYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVj
dGlvbihXZWJQcm9jZXNzUHJveHkmLCBNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb25EZWxheWVkUmVwbHkmJik7CiAKLSAgICBEb3dubG9hZFByb3h5
JiBjcmVhdGVEb3dubG9hZFByb3h5KFdlYnNpdGVEYXRhU3RvcmUmLCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBEb3dubG9hZFByb3h5JiBjcmVhdGVEb3dubG9hZFByb3h5
KFdlYnNpdGVEYXRhU3RvcmUmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25z
dCBGcmFtZUluZm9EYXRhJik7CiAKICAgICB2b2lkIGZldGNoV2Vic2l0ZURhdGEoUEFMOjpTZXNz
aW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFG
ZXRjaE9wdGlvbj4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vic2l0ZURhdGEpPiYmKTsKICAg
ICB2b2lkIGRlbGV0ZVdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0
ZURhdGFUeXBlPiwgV2FsbFRpbWUgbW9kaWZpZWRTaW5jZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCmluZGV4IDMxNTJlMTI5N2M2MDJhYzE0ZWRlYWZkNzA0YTlmZmEwODVhYjFlMTMu
LjI2YWNiNThiYTA2MTEyZmE1YWU2NzRjNTQ5NGI2YTYyMzIzNjM3MzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzE0Nyw3ICszMTQ3LDcgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6OnJlY2VpdmVkUG9saWN5RGVjaXNpb24oUG9saWN5QWN0aW9uIGFjdGlvbiwg
QVBJOjpOYXZpZ2F0aW9uKgogICAgIERvd25sb2FkSUQgZG93bmxvYWRJRCA9IHsgfTsKICAgICBp
ZiAoYWN0aW9uID09IFBvbGljeUFjdGlvbjo6RG93bmxvYWQpIHsKICAgICAgICAgLy8gQ3JlYXRl
IGEgZG93bmxvYWQgcHJveHkuCi0gICAgICAgIGF1dG8mIGRvd25sb2FkID0gbV9wcm9jZXNzLT5w
cm9jZXNzUG9vbCgpLmNyZWF0ZURvd25sb2FkUHJveHkobV93ZWJzaXRlRGF0YVN0b3JlLCBtX2Rl
Y2lkZVBvbGljeUZvclJlc3BvbnNlUmVxdWVzdCwgdGhpcyk7CisgICAgICAgIGF1dG8mIGRvd25s
b2FkID0gbV9wcm9jZXNzLT5wcm9jZXNzUG9vbCgpLmNyZWF0ZURvd25sb2FkUHJveHkobV93ZWJz
aXRlRGF0YVN0b3JlLCBtX2RlY2lkZVBvbGljeUZvclJlc3BvbnNlUmVxdWVzdCwgdGhpcywgbmF2
aWdhdGlvbiA/IG5hdmlnYXRpb24tPm9yaWdpbmF0aW5nRnJhbWVJbmZvKCkgOiBGcmFtZUluZm9E
YXRhIHsgfSk7CiAgICAgICAgIGlmIChuYXZpZ2F0aW9uKSB7CiAgICAgICAgICAgICBkb3dubG9h
ZC5zZXRXYXNVc2VySW5pdGlhdGVkKG5hdmlnYXRpb24tPndhc1VzZXJJbml0aWF0ZWQoKSk7CiAg
ICAgICAgICAgICBkb3dubG9hZC5zZXRSZWRpcmVjdENoYWluKG5hdmlnYXRpb24tPnRha2VSZWRp
cmVjdENoYWluKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CmluZGV4IGUxY2UzYTE3ZDVjNmQzOGExMmU1NGNjMWY0NWY5NTFjMTZiMjkwZDYuLjcyNWVmY2Zk
NWJkOTllMjY0YjY5MmM2OGExZjBlZjViZDhhNTUwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTEzNTAsNyArMTM1MCw3IEBAIGJvb2wgV2ViUHJv
Y2Vzc1Bvb2w6Omhhc1BhZ2VzVXNpbmdXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmUm
IGRhdGFTdG9yZSkKIAogRG93bmxvYWRQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmRvd25sb2FkKFdl
YnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9yZSwgV2ViUGFnZVByb3h5KiBpbml0aWF0aW5nUGFnZSwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZp
bGVuYW1lKQogewotICAgIGF1dG8mIGRvd25sb2FkUHJveHkgPSBjcmVhdGVEb3dubG9hZFByb3h5
KGRhdGFTdG9yZSwgcmVxdWVzdCwgaW5pdGlhdGluZ1BhZ2UpOworICAgIGF1dG8mIGRvd25sb2Fk
UHJveHkgPSBjcmVhdGVEb3dubG9hZFByb3h5KGRhdGFTdG9yZSwgcmVxdWVzdCwgaW5pdGlhdGlu
Z1BhZ2UsIHsgfSk7CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEID0gZGF0YVN0b3JlLnNl
c3Npb25JRCgpOwogCiAgICAgaWYgKGluaXRpYXRpbmdQYWdlKQpAQCAtMTM4Miw3ICsxMzgyLDcg
QEAgRG93bmxvYWRQcm94eSYgV2ViUHJvY2Vzc1Bvb2w6OmRvd25sb2FkKFdlYnNpdGVEYXRhU3Rv
cmUmIGRhdGFTdG9yZSwgV2ViUGFnZVByb3gKIAogRG93bmxvYWRQcm94eSYgV2ViUHJvY2Vzc1Bv
b2w6OnJlc3VtZURvd25sb2FkKFdlYnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9yZSwgV2ViUGFnZVBy
b3h5KiBpbml0aWF0aW5nUGFnZSwgY29uc3QgQVBJOjpEYXRhJiByZXN1bWVEYXRhLCBjb25zdCBT
dHJpbmcmIHBhdGgpCiB7Ci0gICAgYXV0byYgZG93bmxvYWRQcm94eSA9IGNyZWF0ZURvd25sb2Fk
UHJveHkoZGF0YVN0b3JlLCBSZXNvdXJjZVJlcXVlc3QoKSwgaW5pdGlhdGluZ1BhZ2UpOworICAg
IGF1dG8mIGRvd25sb2FkUHJveHkgPSBjcmVhdGVEb3dubG9hZFByb3h5KGRhdGFTdG9yZSwgUmVz
b3VyY2VSZXF1ZXN0KCksIGluaXRpYXRpbmdQYWdlLCB7IH0pOwogICAgIFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCA9IGRhdGFTdG9yZS5zZXNzaW9uSUQoKTsKIAogICAgIFNhbmRib3hFeHRlbnNp
b246OkhhbmRsZSBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlOwpAQCAtMTYzMiw5ICsxNjMyLDkgQEAg
dm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0RGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwoZG91
YmxlIHRpbWVvdXRJbnRlcnZhbCkKICAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6Oldl
YlByb2Nlc3M6OlNldERlZmF1bHRSZXF1ZXN0VGltZW91dEludGVydmFsKHRpbWVvdXRJbnRlcnZh
bCkpOwogfQogCi1Eb3dubG9hZFByb3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlRG93bmxvYWRQ
cm94eShXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
cmVxdWVzdCwgV2ViUGFnZVByb3h5KiBvcmlnaW5hdGluZ1BhZ2UpCitEb3dubG9hZFByb3h5JiBX
ZWJQcm9jZXNzUG9vbDo6Y3JlYXRlRG93bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiBkYXRh
U3RvcmUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViUGFnZVByb3h5KiBvcmln
aW5hdGluZ1BhZ2UsIGNvbnN0IEZyYW1lSW5mb0RhdGEmIGZyYW1lSW5mbykKIHsKLSAgICBhdXRv
JiBkb3dubG9hZFByb3h5ID0gZW5zdXJlTmV0d29ya1Byb2Nlc3MoKS5jcmVhdGVEb3dubG9hZFBy
b3h5KGRhdGFTdG9yZSwgcmVxdWVzdCk7CisgICAgYXV0byYgZG93bmxvYWRQcm94eSA9IGVuc3Vy
ZU5ldHdvcmtQcm9jZXNzKCkuY3JlYXRlRG93bmxvYWRQcm94eShkYXRhU3RvcmUsIHJlcXVlc3Qs
IGZyYW1lSW5mbyk7CiAgICAgZG93bmxvYWRQcm94eS5zZXRPcmlnaW5hdGluZ1BhZ2Uob3JpZ2lu
YXRpbmdQYWdlKTsKICAgICByZXR1cm4gZG93bmxvYWRQcm94eTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDY0YjFkYmNlNGM5MDc1MzY5OTliMWMyYTVl
YjMxNDY3MGY0MjNlMWUuLjU2MjJmYzU3NGY2MmM0ODJkZWFiY2M1MjM0MjFjZTI3MmNjNzFlYjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMzAwLDcgKzMw
MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sKTsK
ICAgICAKICAgICAvLyBEb3dubG9hZHMuCi0gICAgRG93bmxvYWRQcm94eSYgY3JlYXRlRG93bmxv
YWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgV2ViUGFnZVByb3h5KiBvcmlnaW5hdGluZ1BhZ2UpOworICAgIERvd25sb2FkUHJveHkmIGNy
ZWF0ZURvd25sb2FkUHJveHkoV2Vic2l0ZURhdGFTdG9yZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYsIFdlYlBhZ2VQcm94eSogb3JpZ2luYXRpbmdQYWdlLCBjb25zdCBGcmFtZUlu
Zm9EYXRhJik7CiAgICAgQVBJOjpEb3dubG9hZENsaWVudCYgZG93bmxvYWRDbGllbnQoKSB7IHJl
dHVybiBtX2Rvd25sb2FkQ2xpZW50LmdldCgpOyB9CiAKICAgICBBUEk6OkxlZ2FjeUNvbnRleHRI
aXN0b3J5Q2xpZW50JiBoaXN0b3J5Q2xpZW50KCkgeyByZXR1cm4gKm1faGlzdG9yeUNsaWVudDsg
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc0
OTM3YjA3ZTRkMjY2ZWNjODQ5MWY3OGIzMTJhYmVkYTQyMTBlODUuLmY2NzNiYTFkODFiODIxZjk1
ZjBlOTllOGEzNjZiNzFhYzc5YzgyNmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMi0wNCAgQnJhZHkgRWlk
c29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgX1dLRG93bmxvYWQgc2hvdWxkIGV4
cG9zZSB0aGUgb3JpZ2luYXRpbmcgRnJhbWVJbmZvLgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NTgwMjI1NzY+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3
MTg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tOgorICAgICAgICAoLVtE
b3dubG9hZFRlc3RTY2hlbWVEZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25SZXNwb25zZTpkZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW0Rvd25sb2FkU2VjdXJp
dHlPcmlnaW5EZWxlZ2F0ZSBfZG93bmxvYWREaWRTdGFydDpdKToKKyAgICAgICAgKGxvYWRlZCk6
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tOgorCiAyMDIwLTAy
LTAzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICByZXN1
bHRzLndlYmtpdC5vcmc6IFN1cHBvcnQganNjIHN0cmVzcyB0ZXN0cwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW0KaW5kZXggYmFiOTY1YjA3
MDQ1MWQ5M2VkZGJiY2JmNGRlOWUwOTg2MjIyYTdhOC4uNDZmNDQzM2M4Zjc4NGJmMzMxNmFhOTc2
YzkxYjRlMjUzMzRjYzFmOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9Eb3dubG9hZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0Rvd25sb2FkLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBQTEFURk9STShN
QUMpIHx8IFBMQVRGT1JNKElPUykKIAorI2ltcG9ydCAiSFRUUFNlcnZlci5oIgogI2ltcG9ydCAi
UGxhdGZvcm1VdGlsaXRpZXMuaCIKICNpbXBvcnQgIlRDUFNlcnZlci5oIgogI2ltcG9ydCAiVGVz
dC5oIgpAQCAtMTE0Nyw0ICsxMTQ4LDcwIEBAIFRFU1QoX1dLRG93bmxvYWQsIFJlc3VtZWREb3du
bG9hZENhbkhhbmRsZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQogICAgIFV0aWw6OnJ1bigmaXNE
b25lKTsKIH0KIAorQGludGVyZmFjZSBEb3dubG9hZFRlc3RTY2hlbWVEZWxlZ2F0ZSA6IE5TT2Jq
ZWN0IDxXS05hdmlnYXRpb25EZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIERvd25s
b2FkVGVzdFNjaGVtZURlbGVnYXRlCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOihXS05hdmlnYXRpb25SZXNwb25z
ZSAqKW5hdmlnYXRpb25SZXNwb25zZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdh
dGlvblJlc3BvbnNlUG9saWN5KSlkZWNpc2lvbkhhbmRsZXIKK3sKKyAgICBpZiAoW25hdmlnYXRp
b25SZXNwb25zZS5yZXNwb25zZS5VUkwuYWJzb2x1dGVTdHJpbmcgaGFzU3VmZml4OkAiL2Rvd25s
b2FkIl0pIHsKKyAgICAgICAgZGVjaXNpb25IYW5kbGVyKF9XS05hdmlnYXRpb25SZXNwb25zZVBv
bGljeUJlY29tZURvd25sb2FkKTsKKyAgICB9IGVsc2UKKyAgICAgICAgZGVjaXNpb25IYW5kbGVy
KFdLTmF2aWdhdGlvblJlc3BvbnNlUG9saWN5QWxsb3cpOworfQorQGVuZAorCitAaW50ZXJmYWNl
IERvd25sb2FkU2VjdXJpdHlPcmlnaW5EZWxlZ2F0ZSA6IE5TT2JqZWN0IDxfV0tEb3dubG9hZERl
bGVnYXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gRG93bmxvYWRTZWN1cml0eU9yaWdpbkRl
bGVnYXRlIHsKK0BwdWJsaWMKKyAgICB1aW50MTZfdCBfc2VydmVyUG9ydDsKKyAgICBXS1dlYlZp
ZXcgKl93ZWJWaWV3OworfQorCistICh2b2lkKV9kb3dubG9hZERpZFN0YXJ0OihfV0tEb3dubG9h
ZCAqKWRvd25sb2FkCit7CisgICAgRVhQRUNUX1RSVUUoW2Rvd25sb2FkLm9yaWdpbmF0aW5nRnJh
bWVJbmZvLnNlY3VyaXR5T3JpZ2luLnByb3RvY29sIGlzRXF1YWxUb1N0cmluZzpAImh0dHAiXSk7
CisgICAgRVhQRUNUX1RSVUUoW2Rvd25sb2FkLm9yaWdpbmF0aW5nRnJhbWVJbmZvLnNlY3VyaXR5
T3JpZ2luLmhvc3QgaXNFcXVhbFRvU3RyaW5nOkAiMTI3LjAuMC4xIl0pOworICAgIEVYUEVDVF9F
UShkb3dubG9hZC5vcmlnaW5hdGluZ0ZyYW1lSW5mby5zZWN1cml0eU9yaWdpbi5wb3J0LCBfc2Vy
dmVyUG9ydCk7CisgICAgRVhQRUNUX0ZBTFNFKGRvd25sb2FkLm9yaWdpbmF0aW5nRnJhbWVJbmZv
Lm1haW5GcmFtZSk7CisgICAgRVhQRUNUX0VRKGRvd25sb2FkLm9yaWdpbmF0aW5nRnJhbWVJbmZv
LndlYlZpZXcsIF93ZWJWaWV3KTsKKyAgICBpc0RvbmUgPSB0cnVlOworfQorCitAZW5kCisKK3N0
YXRpYyBjb25zdCBjaGFyKiBkb2N1bWVudFRleHQgPSBSIkRPQ0RPQ0RPQygKKzxzY3JpcHQ+Citm
dW5jdGlvbiBsb2FkZWQoKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0aGVsaW5r
IikuY2xpY2soKTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2FkPSJsb2FkZWQoKTsiPgorPGEg
aWQ9InRoZWxpbmsiIGhyZWY9ImRvd25sb2FkIj5DbGljayBtZTwvYT4KKzwvYm9keT4KKylET0NE
T0NET0MiOworCitURVNUKF9XS0Rvd25sb2FkLCBTdWJmcmFtZVNlY3VyaXR5T3JpZ2luKQorewor
ICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhbW0Rvd25sb2FkVGVzdFNjaGVt
ZURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBkb3dubG9hZERlbGVnYXRlID0gYWRv
cHROUyhbW0Rvd25sb2FkU2VjdXJpdHlPcmlnaW5EZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworCisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRp
b25EZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOworICAgIFtbW3dlYlZpZXcgY29u
ZmlndXJhdGlvbl0gcHJvY2Vzc1Bvb2xdIF9zZXREb3dubG9hZERlbGVnYXRlOmRvd25sb2FkRGVs
ZWdhdGUuZ2V0KCldOworCisgICAgVGVzdFdlYktpdEFQSTo6SFRUUFNlcnZlciBzZXJ2ZXIoewor
ICAgICAgICB7ICIvcGFnZSIsIHsgZG9jdW1lbnRUZXh0IH0gfSwKKyAgICAgICAgeyAiL2Rvd25s
b2FkIiwgeyBkb2N1bWVudFRleHQgfSB9LAorICAgIH0pOworICAgIGRvd25sb2FkRGVsZWdhdGUt
Pl9zZXJ2ZXJQb3J0ID0gc2VydmVyLnBvcnQoKTsKKyAgICBkb3dubG9hZERlbGVnYXRlLT5fd2Vi
VmlldyA9IHdlYlZpZXcuZ2V0KCk7CisKKyAgICBpc0RvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmll
dyBsb2FkSFRNTFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIjxib2R5PjxpZnJh
bWUgc3JjPSdodHRwOi8vMTI3LjAuMC4xOiVkL3BhZ2UnPjwvaWZyYW1lPjwvYm9keT4iLCBzZXJ2
ZXIucG9ydCgpXSBiYXNlVVJMOm5pbF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZp
c0RvbmUpOworfQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCmluZGV4IDNjYjMyOTA0NmM1YzVmYTQ1
NmI1Nzk1ZGEyZjg1ZjUzZGRmMjI2YWMuLjBmNGIwM2VhYTE0YWZjM2EzZGE3NDk5ZjZjNWEyOWYx
M2RhZTExYjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZl
ci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0KQEAgLTI4
LDYgKzI4LDcgQEAKIAogI2lmIEhBVkUoTkVUV09SS19GUkFNRVdPUkspCiAKKyNpbXBvcnQgIlV0
aWxpdGllcy5oIgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgogI2ltcG9ydCA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ5LDcgKzUwLDE0IEBAIEhUVFBTZXJ2ZXI6OkhU
VFBTZXJ2ZXIoc3RkOjppbml0aWFsaXplcl9saXN0PHN0ZDo6cGFpcjxTdHJpbmcsIEhUVFBSZXNw
b25zZT4+IHJlCiAgICAgICAgIG53X2Nvbm5lY3Rpb25fc3RhcnQoY29ubmVjdGlvbik7CiAgICAg
ICAgIHJlc3BvbmRUb1JlcXVlc3RzKGNvbm5lY3Rpb24pOwogICAgIH0pOworICAgIF9fYmxvY2sg
Ym9vbCByZWFkeSA9IGZhbHNlOworICAgIG53X2xpc3RlbmVyX3NldF9zdGF0ZV9jaGFuZ2VkX2hh
bmRsZXIobV9saXN0ZW5lci5nZXQoKSwgXihud19saXN0ZW5lcl9zdGF0ZV90IHN0YXRlLCBud19l
cnJvcl90IGVycm9yKSB7CisgICAgICAgIEFTU0VSVF9VTlVTRUQoZXJyb3IsICFlcnJvcik7Cisg
ICAgICAgIGlmIChzdGF0ZSA9PSBud19saXN0ZW5lcl9zdGF0ZV9yZWFkeSkKKyAgICAgICAgICAg
IHJlYWR5ID0gdHJ1ZTsKKyAgICB9KTsKICAgICBud19saXN0ZW5lcl9zdGFydChtX2xpc3RlbmVy
LmdldCgpKTsKKyAgICBVdGlsOjpydW4oJnJlYWR5KTsKIH0KIAogc3RhdGljIFN0cmluZyBzdGF0
dXNUZXh0KHVuc2lnbmVkIHN0YXR1c0NvZGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389745</attachid>
            <date>2020-02-04 16:54:32 -0800</date>
            <delta_ts>2020-02-05 12:46:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207185-20200204165431.patch</filename>
            <type>text/plain</type>
            <size>23072</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRjMzAxMjg1MDZiMzYxM2Q0
MzBkN2JlZmQ5ZWE1YTY0YTA3NDcyMzIuLmVlNjA1ZmE4NTVhNTYyNmNkMTZhMzA3Y2I1YmQ5ODA0
MWU1NTk4NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjAtMDItMDQgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIF9XS0Rvd25sb2FkIHNob3VsZCBl
eHBvc2UgdGhlIG9yaWdpbmF0aW5nIEZyYW1lSW5mby4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU4MDIyNTc2PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NzE4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENv
dmVyZWQgYnkgbmV3IEFQSSB0ZXN0LgorICAgICAgICAKKyAgICAgICAgRm9yIHRoZSBjYXNlcyB3
aGVyZSBhIG5hdmlnYXRpb24gaXMgY29udmVydGVkIGludG8gYSBkb3dubG9hZCwgaW5jbHVkZSB0
aGUgcmVsZXZhbnQKKyAgICAgICAgV0tGcmFtZUluZm8gb24gdGhlIF9XS0Rvd25sb2FkIG9iamVj
dC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLRG93bmxvYWQubW06CisgICAgICAgICgtW19XS0Rvd25sb2FkIG9yaWdpbmF0
aW5nRnJhbWVJbmZvXSk6CisgICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVEb3dubG9hZElEKToKKyAgICAgICAg
KFdlYktpdDo6RG93bmxvYWRQcm94eTo6RG93bmxvYWRQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OkRvd25sb2FkUHJveHk6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkRvd25s
b2FkUHJveHk6OnNldE9yaWdpbmF0aW5nUGFnZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2Fk
UHJveHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkUHJveHk6OmZyYW1lSW5m
byk6CisgICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6RG93bmxvYWRQcm94eU1hcDo6Y3JlYXRlRG93bmxvYWRQcm94eSk6
CisgICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmNyZWF0ZURvd25sb2FkUHJveHkpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZG93bmxvYWQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVzdW1lRG93bmxvYWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlRG93bmxvYWRQcm94eSk6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisKIDIwMjAtMDItMDMgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4
IHRoZSBpbnRlcm5hbCBidWlsZCBhZnRlciA8cmRhcjovL3Byb2JsZW0vNTkxMzI5NDQ+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmgKaW5kZXggN2QwODc5ZGJlNzkx
ODZkOGNkNmM3N2JkNjhkZDc0YzEwNWMwNjQ4Ny4uN2MxMGY4NmE5ZjgyMmEzMzEwNTVmZTNiNzRl
ZDI0MzQwZmY5OWRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUZyYW1lSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElGcmFtZUlu
Zm8uaApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElPYmpl
Y3QuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlUmVxdWVzdC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNCw3ICszNSw2IEBAIHN0
cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2Vi
RnJhbWVQcm94eTsKLWNsYXNzIFdlYlBhZ2VQcm94eTsKIHN0cnVjdCBGcmFtZUluZm9EYXRhOwog
fQogCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICBTZWN1cml0eU9yaWdpbiYgc2VjdXJp
dHlPcmlnaW4oKSB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLmdldCgpOyB9CiAgICAgQVBJOjpG
cmFtZUhhbmRsZSYgaGFuZGxlKCkgeyByZXR1cm4gbV9oYW5kbGUuZ2V0KCk7IH0KICAgICBXZWJL
aXQ6OldlYlBhZ2VQcm94eSogcGFnZSgpIHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQorICAgIHZv
aWQgc2V0UGFnZShXZWJLaXQ6OldlYlBhZ2VQcm94eSogcGFnZSkgeyBtX3BhZ2UgPSBwYWdlOyB9
CiAKIHByaXZhdGU6CiAgICAgRnJhbWVJbmZvKGNvbnN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSYs
IFdlYktpdDo6V2ViUGFnZVByb3h5Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tEb3dubG9hZC5oCmluZGV4IGVlYTk5YmJkZDQzYzlhY2I0YTliNDg3YzlkMDAz
ZjYxMWNkYWY5ODUuLjAwMTUzZDk0ZjJlMmQ3ZDFkMWU3MzIzNWEzNjM4OTJhNDQ2ODI2OWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCkBA
IC0yNyw2ICsyNyw3IEBACiAKICNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCitA
Y2xhc3MgV0tGcmFtZUluZm87CiBAY2xhc3MgV0tXZWJWaWV3OwogCiBXS19DTEFTU19BVkFJTEFC
TEUobWFjb3MoMTAuMTApLCBpb3MoOC4wKSkKQEAgLTQxLDUgKzQyLDYgQEAgV0tfQ0xBU1NfQVZB
SUxBQkxFKG1hY29zKDEwLjEwKSwgaW9zKDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHksIGNvcHkpIE5TQXJyYXk8TlNVUkwgKj4gKnJlZGlyZWN0Q2hhaW4gV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMC4xMy40KSwgaW9zKDExLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBy
ZWFkb25seSkgQk9PTCB3YXNVc2VySW5pdGlhdGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAu
MTMuNCksIGlvcygxMS4zKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TRGF0
YSAqcmVzdW1lRGF0YSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikp
OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXS0ZyYW1lSW5mbyAqb3JpZ2luYXRp
bmdGcmFtZUluZm8gV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lP
U19UQkEpKTsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL19XS0Rvd25sb2FkLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0Rvd25sb2FkLm1tCmluZGV4IDY1M2ZkMTFkMTc2NTQ0NTQwMGJmM2I3ZDc3NmUyNTA3MDM3
MjczZjQuLjU3YzFhMjdlMDIxNzBjZjU5OWEyNTEzNDIyYzJkZTlkNzM4NWM0MmMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQubW0KQEAgLTI3
LDYgKzI3LDcgQEAKICNpbXBvcnQgIl9XS0Rvd25sb2FkSW50ZXJuYWwuaCIKIAogI2ltcG9ydCAi
RG93bmxvYWRQcm94eS5oIgorI2ltcG9ydCAiV0tGcmFtZUluZm9JbnRlcm5hbC5oIgogI2ltcG9y
dCAiV0tOU0RhdGEuaCIKICNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCiAjaW1wb3J0IDx3
dGYvV2Vha09iakNQdHIuaD4KQEAgLTgzLDYgKzg0LDExIEBAIC0gKE5TRGF0YSAqKXJlc3VtZURh
dGEKICAgICByZXR1cm4gV2ViS2l0Ojp3cmFwcGVyKF9kb3dubG9hZC0+cmVzdW1lRGF0YSgpKTsK
IH0KIAorLSAoV0tGcmFtZUluZm8gKilvcmlnaW5hdGluZ0ZyYW1lSW5mbworeworICAgIHJldHVy
biBXZWJLaXQ6OndyYXBwZXIoJl9kb3dubG9hZC0+ZnJhbWVJbmZvKCkpOworfQorCiAtIChpZClj
b3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpvbmUKIHsKICAgICByZXR1cm4gW3NlbGYgcmV0YWluXTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5
LmNwcAppbmRleCA2NjNlYTUyNmVkODAyMjZiYTEzYmUyMzM5NTEyYzgyZjFkNWYyMTVhLi42NWVk
MzAwNGFhMGIwZGQ1MDExZmE5YjY2ZTgyZDY2Yzg4NjExMGU0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuY3BwCkBAIC0yOCw5ICsy
OCwxMSBAQAogCiAjaW5jbHVkZSAiQVBJRGF0YS5oIgogI2luY2x1ZGUgIkFQSURvd25sb2FkQ2xp
ZW50LmgiCisjaW5jbHVkZSAiQVBJRnJhbWVJbmZvLmgiCiAjaW5jbHVkZSAiQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VQcm94eS5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRl
ICJEb3dubG9hZFByb3h5TWFwLmgiCisjaW5jbHVkZSAiRnJhbWVJbmZvRGF0YS5oIgogI2luY2x1
ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc1By
b3h5LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCkBAIC01MCwxOCArNTIsMTUgQEAgc3Rh
dGljIHVpbnQ2NF90IGdlbmVyYXRlRG93bmxvYWRJRCgpCiAgICAgc3RhdGljIHVpbnQ2NF90IHVu
aXF1ZURvd25sb2FkSUQgPSAwOwogICAgIHJldHVybiArK3VuaXF1ZURvd25sb2FkSUQ7CiB9Ci0g
ICAgCi1SZWY8RG93bmxvYWRQcm94eT4gRG93bmxvYWRQcm94eTo6Y3JlYXRlKERvd25sb2FkUHJv
eHlNYXAmIGRvd25sb2FkUHJveHlNYXAsIFdlYnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9yZSwgV2Vi
UHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNl
UmVxdWVzdCkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEb3dubG9hZFByb3h5KGRvd25s
b2FkUHJveHlNYXAsIGRhdGFTdG9yZSwgcHJvY2Vzc1Bvb2wsIHJlc291cmNlUmVxdWVzdCkpOwot
fQogCi1Eb3dubG9hZFByb3h5OjpEb3dubG9hZFByb3h5KERvd25sb2FkUHJveHlNYXAmIGRvd25s
b2FkUHJveHlNYXAsIFdlYnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9yZSwgV2ViUHJvY2Vzc1Bvb2wm
IHByb2Nlc3NQb29sLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKK0Rv
d25sb2FkUHJveHk6OkRvd25sb2FkUHJveHkoRG93bmxvYWRQcm94eU1hcCYgZG93bmxvYWRQcm94
eU1hcCwgV2Vic2l0ZURhdGFTdG9yZSYgZGF0YVN0b3JlLCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vz
c1Bvb2wsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBGcmFt
ZUluZm9EYXRhJiBmcmFtZUluZm9EYXRhLCBXZWJQYWdlUHJveHkqIG9yaWdpbmF0aW5nUGFnZSkK
ICAgICA6IG1fZG93bmxvYWRQcm94eU1hcChkb3dubG9hZFByb3h5TWFwKQogICAgICwgbV9kYXRh
U3RvcmUoJmRhdGFTdG9yZSkKICAgICAsIG1fcHJvY2Vzc1Bvb2woJnByb2Nlc3NQb29sKQogICAg
ICwgbV9kb3dubG9hZElEKGdlbmVyYXRlRG93bmxvYWRJRCgpKQogICAgICwgbV9yZXF1ZXN0KHJl
c291cmNlUmVxdWVzdCkKKyAgICAsIG1fb3JpZ2luYXRpbmdQYWdlKG1ha2VXZWFrUHRyKG9yaWdp
bmF0aW5nUGFnZSkpCisgICAgLCBtX2ZyYW1lSW5mbyhBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKEZy
YW1lSW5mb0RhdGEgeyBmcmFtZUluZm9EYXRhIH0sIG9yaWdpbmF0aW5nUGFnZSkpCiB7CiB9CiAK
QEAgLTEwMCwxMSArOTksNiBAQCBXZWJQYWdlUHJveHkqIERvd25sb2FkUHJveHk6Om9yaWdpbmF0
aW5nUGFnZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fb3JpZ2luYXRpbmdQYWdlLmdldCgpOwogfQog
Ci12b2lkIERvd25sb2FkUHJveHk6OnNldE9yaWdpbmF0aW5nUGFnZShXZWJQYWdlUHJveHkqIHBh
Z2UpCi17Ci0gICAgbV9vcmlnaW5hdGluZ1BhZ2UgPSBtYWtlV2Vha1B0cihwYWdlKTsKLX0KLQog
I2lmIFBMQVRGT1JNKENPQ09BKQogdm9pZCBEb3dubG9hZFByb3h5OjpwdWJsaXNoUHJvZ3Jlc3Mo
Y29uc3QgVVJMJiBVUkwpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWRQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxv
YWRzL0Rvd25sb2FkUHJveHkuaAppbmRleCBjZDBiMDBlNTczMTE0ZTc3OTM2Y2I3OGQ3MTg1YzU2
MDk3Y2VlODNlLi5hMGNjYmUwNjYzYzNjMTI2NDM3NzA0YmNjOGY5MWI0NzI0Y2NjYTlmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgK
QEAgLTM2LDYgKzM2LDcgQEAKIAogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBEYXRhOworY2xhc3Mg
RnJhbWVJbmZvOwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC01NCw5ICs1NSwxNSBAQCBj
bGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKIGNsYXNzIFdlYnNpdGVE
YXRhU3RvcmU7CiAKK3N0cnVjdCBGcmFtZUluZm9EYXRhOworCiBjbGFzcyBEb3dubG9hZFByb3h5
IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6RG93bmxvYWQ+LCBw
dWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RG93
bmxvYWRQcm94eT4gY3JlYXRlKERvd25sb2FkUHJveHlNYXAmLCBXZWJzaXRlRGF0YVN0b3JlJiwg
V2ViUHJvY2Vzc1Bvb2wmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKKworICAg
IHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IHN0YXRpYyBSZWY8RG93bmxvYWRQcm94eT4gY3Jl
YXRlKEFyZ3MmJi4uLiBhcmdzKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
RG93bmxvYWRQcm94eShzdGQ6OmZvcndhcmQ8QXJncz4oYXJncykuLi4pKTsKKyAgICB9CiAgICAg
fkRvd25sb2FkUHJveHkoKTsKIAogICAgIERvd25sb2FkSUQgZG93bmxvYWRJRCgpIGNvbnN0IHsg
cmV0dXJuIG1fZG93bmxvYWRJRDsgfQpAQCAtNzIsNyArNzksNiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBkaWRSZWNlaXZlU3luY0Rvd25sb2FkUHJveHlNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQ
Qzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jik7CiAKICAgICBXZWJQ
YWdlUHJveHkqIG9yaWdpbmF0aW5nUGFnZSgpIGNvbnN0OwotICAgIHZvaWQgc2V0T3JpZ2luYXRp
bmdQYWdlKFdlYlBhZ2VQcm94eSopOwogCiAgICAgdm9pZCBzZXRSZWRpcmVjdENoYWluKFZlY3Rv
cjxVUkw+JiYgcmVkaXJlY3RDaGFpbikgeyBtX3JlZGlyZWN0Q2hhaW4gPSBXVEZNb3ZlKHJlZGly
ZWN0Q2hhaW4pOyB9CiAgICAgY29uc3QgVmVjdG9yPFVSTD4mIHJlZGlyZWN0Q2hhaW4oKSBjb25z
dCB7IHJldHVybiBtX3JlZGlyZWN0Q2hhaW47IH0KQEAgLTk4LDggKzEwNCwxMCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBwdWJsaXNoUHJvZ3Jlc3MoY29uc3QgVVJMJik7CiAjZW5kaWYKIAorICAgIEFQ
STo6RnJhbWVJbmZvJiBmcmFtZUluZm8oKSB7IHJldHVybiBtX2ZyYW1lSW5mby5nZXQoKTsgfQor
CiBwcml2YXRlOgotICAgIGV4cGxpY2l0IERvd25sb2FkUHJveHkoRG93bmxvYWRQcm94eU1hcCYs
IFdlYnNpdGVEYXRhU3RvcmUmLCBXZWJQcm9jZXNzUG9vbCYsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYpOworICAgIGV4cGxpY2l0IERvd25sb2FkUHJveHkoRG93bmxvYWRQcm94eU1h
cCYsIFdlYnNpdGVEYXRhU3RvcmUmLCBXZWJQcm9jZXNzUG9vbCYsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYsIGNvbnN0IEZyYW1lSW5mb0RhdGEmLCBXZWJQYWdlUHJveHkqKTsKIAog
ICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJ
UEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKQEAgLTEzMiw2ICsxNDAs
NyBAQCBwcml2YXRlOgogICAgIFdlYWtQdHI8V2ViUGFnZVByb3h5PiBtX29yaWdpbmF0aW5nUGFn
ZTsKICAgICBWZWN0b3I8VVJMPiBtX3JlZGlyZWN0Q2hhaW47CiAgICAgYm9vbCBtX3dhc1VzZXJJ
bml0aWF0ZWQgeyB0cnVlIH07CisgICAgUmVmPEFQSTo6RnJhbWVJbmZvPiBtX2ZyYW1lSW5mbzsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwCmluZGV4IDQ5MmQ1NTAwMmQw
NDQyNTFiNmMxNGJhYWUwYjgwYmYxMzViZTJjNDMuLjcwYzRiNmNlZjNlYzc4MzNhODBhNWViYzNh
YjgyODU0MjQzZjBlMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZFByb3h5TWFwLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHAKQEAgLTgwLDkgKzgwLDkgQEAgdm9pZCBEb3du
bG9hZFByb3h5TWFwOjphcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKQogICAgICAgICBt
X3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpBcHBsaWNhdGlvbldpbGxF
bnRlckZvcmVncm91bmQoKSwgMCk7CiB9CiAKLURvd25sb2FkUHJveHkmIERvd25sb2FkUHJveHlN
YXA6OmNyZWF0ZURvd25sb2FkUHJveHkoV2Vic2l0ZURhdGFTdG9yZSYgZGF0YVN0b3JlLCBXZWJQ
cm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYg
cmVzb3VyY2VSZXF1ZXN0KQorRG93bmxvYWRQcm94eSYgRG93bmxvYWRQcm94eU1hcDo6Y3JlYXRl
RG93bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUsIFdlYlByb2Nlc3NQb29s
JiBwcm9jZXNzUG9vbCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJl
cXVlc3QsIGNvbnN0IEZyYW1lSW5mb0RhdGEmIGZyYW1lSW5mbywgV2ViUGFnZVByb3h5KiBvcmln
aW5hdGluZ1BhZ2UpCiB7Ci0gICAgYXV0byBkb3dubG9hZFByb3h5ID0gRG93bmxvYWRQcm94eTo6
Y3JlYXRlKCp0aGlzLCBkYXRhU3RvcmUsIHByb2Nlc3NQb29sLCByZXNvdXJjZVJlcXVlc3QpOwor
ICAgIGF1dG8gZG93bmxvYWRQcm94eSA9IERvd25sb2FkUHJveHk6OmNyZWF0ZSgqdGhpcywgZGF0
YVN0b3JlLCBwcm9jZXNzUG9vbCwgcmVzb3VyY2VSZXF1ZXN0LCBmcmFtZUluZm8sIG9yaWdpbmF0
aW5nUGFnZSk7CiAgICAgbV9kb3dubG9hZHMuc2V0KGRvd25sb2FkUHJveHktPmRvd25sb2FkSUQo
KSwgZG93bmxvYWRQcm94eS5jb3B5UmVmKCkpOwogCiAgICAgUkVMRUFTRV9MT0coTG9hZGluZywg
IkFkZGluZyBkb3dubG9hZCAlIiBQUkl1NjQgIiB0byBVSVByb2Nlc3MgRG93bmxvYWRQcm94eU1h
cCIsIGRvd25sb2FkUHJveHktPmRvd25sb2FkSUQoKS5kb3dubG9hZElEKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmgKaW5k
ZXggM2Y1MDViMTA2MzlmNWQwZjM1MjU4NjdiNmI2YTkzYjM3YWU4NWVmNi4uNDUyMzViMmMxYzdm
NjNhN2Y3YmQxMWI5N2RmY2VjMWVjMjAxMzBiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5oCkBAIC00NCw2ICs0NCw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIE5ldHdvcmtQ
cm9jZXNzUHJveHk7CiBjbGFzcyBQcm9jZXNzQXNzZXJ0aW9uOworY2xhc3MgV2ViUGFnZVByb3h5
OwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBjbGFzcyBXZWJzaXRlRGF0YVN0b3JlOwogCkBAIC01
NSw3ICs1Niw3IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBEb3dubG9hZFByb3h5TWFwKE5ldHdv
cmtQcm9jZXNzUHJveHkmKTsKICAgICB+RG93bmxvYWRQcm94eU1hcCgpOwogCi0gICAgRG93bmxv
YWRQcm94eSYgY3JlYXRlRG93bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiwgV2ViUHJvY2Vz
c1Bvb2wmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBEb3dubG9hZFBy
b3h5JiBjcmVhdGVEb3dubG9hZFByb3h5KFdlYnNpdGVEYXRhU3RvcmUmLCBXZWJQcm9jZXNzUG9v
bCYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIGNvbnN0IEZyYW1lSW5mb0RhdGEm
LCBXZWJQYWdlUHJveHkqIG9yaWdpbmF0aW5nUGFnZSk7CiAgICAgdm9pZCBkb3dubG9hZEZpbmlz
aGVkKERvd25sb2FkUHJveHkmKTsKIAogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJu
IG1fZG93bmxvYWRzLmlzRW1wdHkoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggMDk4YmQ1YWRhN2Vj
YWJlY2FlNDQ2ZDE1NDViMmZmZTkzNGM1ZGEwZi4uY2YyNzQ0YjUwNTJmNzU3YWFiOWIxZWJhZDIy
ZDg3MzViNDdlZGMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xODIsMTIgKzE4MiwxMiBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OnN5bnRoZXNpemVBcHBJc0JhY2tncm91bmQoYm9vbCBiYWNr
Z3JvdW5kKQogICAgIH0KIH0KIAotRG93bmxvYWRQcm94eSYgTmV0d29ya1Byb2Nlc3NQcm94eTo6
Y3JlYXRlRG93bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUsIGNvbnN0IFJl
c291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQorRG93bmxvYWRQcm94eSYgTmV0d29ya1By
b2Nlc3NQcm94eTo6Y3JlYXRlRG93bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3Rv
cmUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBGcmFtZUlu
Zm9EYXRhJiBmcmFtZUluZm8sIFdlYlBhZ2VQcm94eSogb3JpZ2luYXRpbmdQYWdlKQogewogICAg
IGlmICghbV9kb3dubG9hZFByb3h5TWFwKQogICAgICAgICBtX2Rvd25sb2FkUHJveHlNYXAgPSBt
YWtlVW5pcXVlPERvd25sb2FkUHJveHlNYXA+KCp0aGlzKTsKIAotICAgIHJldHVybiBtX2Rvd25s
b2FkUHJveHlNYXAtPmNyZWF0ZURvd25sb2FkUHJveHkoZGF0YVN0b3JlLCBtX3Byb2Nlc3NQb29s
LCByZXNvdXJjZVJlcXVlc3QpOworICAgIHJldHVybiBtX2Rvd25sb2FkUHJveHlNYXAtPmNyZWF0
ZURvd25sb2FkUHJveHkoZGF0YVN0b3JlLCBtX3Byb2Nlc3NQb29sLCByZXNvdXJjZVJlcXVlc3Qs
IGZyYW1lSW5mbywgb3JpZ2luYXRpbmdQYWdlKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpmZXRjaFdlYnNpdGVEYXRhKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFGZXRjaE9w
dGlvbj4gZmV0Y2hPcHRpb25zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkIChXZWJzaXRlRGF0YSk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IGEwMjIyMjljYjdkYTEyODlkMTk3
M2Q5NDhiZDNhNDBhZDNkYjZjOTcuLjYyYTZkMzg0MjY0ZjliYjA2YzM2YzM0YWY5ZjhlMmUzMWI2
OTMzYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCkBAIC02Myw2ICs2Myw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgRG93bmxvYWRQcm94eU1hcDsKK2NsYXNzIFdl
YlBhZ2VQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xhc3MgV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyUHJveHk7CiAKQEAgLTcxLDYgKzcyLDcgQEAgZW51bSBjbGFzcyBTdG9yYWdlQWNj
ZXNzU3RhdHVzIDogdWludDhfdDsKIGVudW0gY2xhc3MgV2Vic2l0ZURhdGFGZXRjaE9wdGlvbjsK
IGVudW0gY2xhc3MgV2Vic2l0ZURhdGFUeXBlOwogCitzdHJ1Y3QgRnJhbWVJbmZvRGF0YTsKIHN0
cnVjdCBOZXR3b3JrUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVyczsKIHN0cnVjdCBSZXNvdXJjZUxv
YWRJbmZvOwogc3RydWN0IFdlYnNpdGVEYXRhOwpAQCAtOTUsNyArOTcsNyBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGdldE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkmLCBN
ZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXROZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25EZWxh
eWVkUmVwbHkmJik7CiAKLSAgICBEb3dubG9hZFByb3h5JiBjcmVhdGVEb3dubG9hZFByb3h5KFdl
YnNpdGVEYXRhU3RvcmUmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBE
b3dubG9hZFByb3h5JiBjcmVhdGVEb3dubG9hZFByb3h5KFdlYnNpdGVEYXRhU3RvcmUmLCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBGcmFtZUluZm9EYXRhJiwgV2ViUGFn
ZVByb3h5KiBvcmlnaW5hdGluZ1BhZ2UpOwogCiAgICAgdm9pZCBmZXRjaFdlYnNpdGVEYXRhKFBB
TDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgT3B0aW9uU2V0PFdlYnNp
dGVEYXRhRmV0Y2hPcHRpb24+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYnNpdGVEYXRhKT4m
Jik7CiAgICAgdm9pZCBkZWxldGVXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0
PFdlYnNpdGVEYXRhVHlwZT4sIFdhbGxUaW1lIG1vZGlmaWVkU2luY2UsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCAzMTUyZTEyOTdjNjAyYWMxNGVkZWFmZDcwNGE5ZmZhMDg1
YWIxZTEzLi4yNmFjYjU4YmEwNjExMmZhNWFlNjc0YzU0OTRiNmE2MjMyMzYzNzM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTMxNDcsNyArMzE0Nyw3IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlvbiBh
Y3Rpb24sIEFQSTo6TmF2aWdhdGlvbioKICAgICBEb3dubG9hZElEIGRvd25sb2FkSUQgPSB7IH07
CiAgICAgaWYgKGFjdGlvbiA9PSBQb2xpY3lBY3Rpb246OkRvd25sb2FkKSB7CiAgICAgICAgIC8v
IENyZWF0ZSBhIGRvd25sb2FkIHByb3h5LgotICAgICAgICBhdXRvJiBkb3dubG9hZCA9IG1fcHJv
Y2Vzcy0+cHJvY2Vzc1Bvb2woKS5jcmVhdGVEb3dubG9hZFByb3h5KG1fd2Vic2l0ZURhdGFTdG9y
ZSwgbV9kZWNpZGVQb2xpY3lGb3JSZXNwb25zZVJlcXVlc3QsIHRoaXMpOworICAgICAgICBhdXRv
JiBkb3dubG9hZCA9IG1fcHJvY2Vzcy0+cHJvY2Vzc1Bvb2woKS5jcmVhdGVEb3dubG9hZFByb3h5
KG1fd2Vic2l0ZURhdGFTdG9yZSwgbV9kZWNpZGVQb2xpY3lGb3JSZXNwb25zZVJlcXVlc3QsIHRo
aXMsIG5hdmlnYXRpb24gPyBuYXZpZ2F0aW9uLT5vcmlnaW5hdGluZ0ZyYW1lSW5mbygpIDogRnJh
bWVJbmZvRGF0YSB7IH0pOwogICAgICAgICBpZiAobmF2aWdhdGlvbikgewogICAgICAgICAgICAg
ZG93bmxvYWQuc2V0V2FzVXNlckluaXRpYXRlZChuYXZpZ2F0aW9uLT53YXNVc2VySW5pdGlhdGVk
KCkpOwogICAgICAgICAgICAgZG93bmxvYWQuc2V0UmVkaXJlY3RDaGFpbihuYXZpZ2F0aW9uLT50
YWtlUmVkaXJlY3RDaGFpbigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
b29sLmNwcAppbmRleCBlMWNlM2ExN2Q1YzZkMzhhMTJlNTRjYzFmNDVmOTUxYzE2YjI5MGQ2Li4z
YWE1N2E5NTU5NDU1NTllZTMzOTM2OThkMDdhMjA2N2JmMGVhNWJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0xMzUwLDcgKzEzNTAsNyBAQCBib29s
IFdlYlByb2Nlc3NQb29sOjpoYXNQYWdlc1VzaW5nV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0
YVN0b3JlJiBkYXRhU3RvcmUpCiAKIERvd25sb2FkUHJveHkmIFdlYlByb2Nlc3NQb29sOjpkb3du
bG9hZChXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUsIFdlYlBhZ2VQcm94eSogaW5pdGlhdGlu
Z1BhZ2UsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBzdWdn
ZXN0ZWRGaWxlbmFtZSkKIHsKLSAgICBhdXRvJiBkb3dubG9hZFByb3h5ID0gY3JlYXRlRG93bmxv
YWRQcm94eShkYXRhU3RvcmUsIHJlcXVlc3QsIGluaXRpYXRpbmdQYWdlKTsKKyAgICBhdXRvJiBk
b3dubG9hZFByb3h5ID0gY3JlYXRlRG93bmxvYWRQcm94eShkYXRhU3RvcmUsIHJlcXVlc3QsIGlu
aXRpYXRpbmdQYWdlLCB7IH0pOwogICAgIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCA9IGRhdGFT
dG9yZS5zZXNzaW9uSUQoKTsKIAogICAgIGlmIChpbml0aWF0aW5nUGFnZSkKQEAgLTEzODIsNyAr
MTM4Miw3IEBAIERvd25sb2FkUHJveHkmIFdlYlByb2Nlc3NQb29sOjpkb3dubG9hZChXZWJzaXRl
RGF0YVN0b3JlJiBkYXRhU3RvcmUsIFdlYlBhZ2VQcm94CiAKIERvd25sb2FkUHJveHkmIFdlYlBy
b2Nlc3NQb29sOjpyZXN1bWVEb3dubG9hZChXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUsIFdl
YlBhZ2VQcm94eSogaW5pdGlhdGluZ1BhZ2UsIGNvbnN0IEFQSTo6RGF0YSYgcmVzdW1lRGF0YSwg
Y29uc3QgU3RyaW5nJiBwYXRoKQogewotICAgIGF1dG8mIGRvd25sb2FkUHJveHkgPSBjcmVhdGVE
b3dubG9hZFByb3h5KGRhdGFTdG9yZSwgUmVzb3VyY2VSZXF1ZXN0KCksIGluaXRpYXRpbmdQYWdl
KTsKKyAgICBhdXRvJiBkb3dubG9hZFByb3h5ID0gY3JlYXRlRG93bmxvYWRQcm94eShkYXRhU3Rv
cmUsIFJlc291cmNlUmVxdWVzdCgpLCBpbml0aWF0aW5nUGFnZSwgeyB9KTsKICAgICBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQgPSBkYXRhU3RvcmUuc2Vzc2lvbklEKCk7CiAKICAgICBTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKQEAgLTE2MzIsMTEgKzE2
MzIsOSBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpzZXREZWZhdWx0UmVxdWVzdFRpbWVvdXRJbnRl
cnZhbChkb3VibGUgdGltZW91dEludGVydmFsKQogICAgIHNlbmRUb0FsbFByb2Nlc3NlcyhNZXNz
YWdlczo6V2ViUHJvY2Vzczo6U2V0RGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwodGltZW91
dEludGVydmFsKSk7CiB9CiAKLURvd25sb2FkUHJveHkmIFdlYlByb2Nlc3NQb29sOjpjcmVhdGVE
b3dubG9hZFByb3h5KFdlYnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9yZSwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBXZWJQYWdlUHJveHkqIG9yaWdpbmF0aW5nUGFnZSkKK0Rvd25sb2Fk
UHJveHkmIFdlYlByb2Nlc3NQb29sOjpjcmVhdGVEb3dubG9hZFByb3h5KFdlYnNpdGVEYXRhU3Rv
cmUmIGRhdGFTdG9yZSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBXZWJQYWdlUHJv
eHkqIG9yaWdpbmF0aW5nUGFnZSwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvKQogewot
ICAgIGF1dG8mIGRvd25sb2FkUHJveHkgPSBlbnN1cmVOZXR3b3JrUHJvY2VzcygpLmNyZWF0ZURv
d25sb2FkUHJveHkoZGF0YVN0b3JlLCByZXF1ZXN0KTsKLSAgICBkb3dubG9hZFByb3h5LnNldE9y
aWdpbmF0aW5nUGFnZShvcmlnaW5hdGluZ1BhZ2UpOwotICAgIHJldHVybiBkb3dubG9hZFByb3h5
OworICAgIHJldHVybiBlbnN1cmVOZXR3b3JrUHJvY2VzcygpLmNyZWF0ZURvd25sb2FkUHJveHko
ZGF0YVN0b3JlLCByZXF1ZXN0LCBmcmFtZUluZm8sIG9yaWdpbmF0aW5nUGFnZSk7CiB9CiAKIHZv
aWQgV2ViUHJvY2Vzc1Bvb2w6OnN5bnRoZXNpemVBcHBJc0JhY2tncm91bmQoYm9vbCBiYWNrZ3Jv
dW5kKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggNjRiMWRi
Y2U0YzkwNzUzNjk5OWIxYzJhNWViMzE0NjcwZjQyM2UxZS4uNTYyMmZjNTc0ZjYyYzQ4MmRlYWJj
YzUyMzQyMWNlMjcyY2M3MWViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UG9vbC5oCkBAIC0zMDAsNyArMzAwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RW5oYW5jZWRB
Y2Nlc3NpYmlsaXR5KGJvb2wpOwogICAgIAogICAgIC8vIERvd25sb2Fkcy4KLSAgICBEb3dubG9h
ZFByb3h5JiBjcmVhdGVEb3dubG9hZFByb3h5KFdlYnNpdGVEYXRhU3RvcmUmLCBjb25zdCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJQYWdlUHJveHkqIG9yaWdpbmF0aW5nUGFnZSk7Cisg
ICAgRG93bmxvYWRQcm94eSYgY3JlYXRlRG93bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiwg
Y29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViUGFnZVByb3h5KiBvcmlnaW5hdGlu
Z1BhZ2UsIGNvbnN0IEZyYW1lSW5mb0RhdGEmKTsKICAgICBBUEk6OkRvd25sb2FkQ2xpZW50JiBk
b3dubG9hZENsaWVudCgpIHsgcmV0dXJuIG1fZG93bmxvYWRDbGllbnQuZ2V0KCk7IH0KIAogICAg
IEFQSTo6TGVnYWN5Q29udGV4dEhpc3RvcnlDbGllbnQmIGhpc3RvcnlDbGllbnQoKSB7IHJldHVy
biAqbV9oaXN0b3J5Q2xpZW50OyB9CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29s
cy9DaGFuZ2VMb2cKaW5kZXggNzQ5MzdiMDdlNGQyNjZlY2M4NDkxZjc4YjMxMmFiZWRhNDIxMGU4
NS4uZjY3M2JhMWQ4MWI4MjFmOTVmMGU5OWU4YTM2NmI3MWFjNzljODI2YiAxMDA2NDQKLS0tIGEv
VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisy
MDIwLTAyLTA0ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KKworICAgICAgICBf
V0tEb3dubG9hZCBzaG91bGQgZXhwb3NlIHRoZSBvcmlnaW5hdGluZyBGcmFtZUluZm8uCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81ODAyMjU3Nj4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDcxODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxv
YWQubW06CisgICAgICAgICgtW0Rvd25sb2FkVGVzdFNjaGVtZURlbGVnYXRlIHdlYlZpZXc6ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOmRlY2lzaW9uSGFuZGxlcjpdKToKKyAgICAg
ICAgKC1bRG93bmxvYWRTZWN1cml0eU9yaWdpbkRlbGVnYXRlIF9kb3dubG9hZERpZFN0YXJ0Ol0p
OgorICAgICAgICAobG9hZGVkKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2NvY29hL0hUVFBT
ZXJ2ZXIubW06CisKIDIwMjAtMDItMDMgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUu
Y29tPgogCiAgICAgICAgIHJlc3VsdHMud2Via2l0Lm9yZzogU3VwcG9ydCBqc2Mgc3RyZXNzIHRl
c3RzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rv
d25sb2FkLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9h
ZC5tbQppbmRleCBiYWI5NjViMDcwNDUxZDkzZWRkYmJjYmY0ZGU5ZTA5ODYyMjJhN2E4Li4zNDMy
NzczMGJmNWE0NzBlMGFmMzNjNGQyMjZmNWQ5Nzc0MzljNzk5IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW0KQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKQogCisjaW1wb3J0ICJIVFRQ
U2VydmVyLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgogI2ltcG9ydCAiVENQU2Vy
dmVyLmgiCiAjaW1wb3J0ICJUZXN0LmgiCkBAIC0xMTQ3LDQgKzExNDgsNzAgQEAgVEVTVChfV0tE
b3dubG9hZCwgUmVzdW1lZERvd25sb2FkQ2FuSGFuZGxlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Up
CiAgICAgVXRpbDo6cnVuKCZpc0RvbmUpOwogfQogCitAaW50ZXJmYWNlIERvd25sb2FkVGVzdFNj
aGVtZURlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRlbGVnYXRlPgorQGVuZAorCitA
aW1wbGVtZW50YXRpb24gRG93bmxvYWRUZXN0U2NoZW1lRGVsZWdhdGUKKy0gKHZvaWQpd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2U6
KFdLTmF2aWdhdGlvblJlc3BvbnNlICopbmF2aWdhdGlvblJlc3BvbnNlIGRlY2lzaW9uSGFuZGxl
cjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kpKWRlY2lzaW9uSGFuZGxlcgor
eworICAgIGlmIChbbmF2aWdhdGlvblJlc3BvbnNlLnJlc3BvbnNlLlVSTC5hYnNvbHV0ZVN0cmlu
ZyBoYXNTdWZmaXg6QCIvZG93bmxvYWQiXSkKKyAgICAgICAgZGVjaXNpb25IYW5kbGVyKF9XS05h
dmlnYXRpb25SZXNwb25zZVBvbGljeUJlY29tZURvd25sb2FkKTsKKyAgICBlbHNlCisgICAgICAg
IGRlY2lzaW9uSGFuZGxlcihXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUFsbG93KTsKK30KK0Bl
bmQKKworQGludGVyZmFjZSBEb3dubG9hZFNlY3VyaXR5T3JpZ2luRGVsZWdhdGUgOiBOU09iamVj
dCA8X1dLRG93bmxvYWREZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIERvd25sb2Fk
U2VjdXJpdHlPcmlnaW5EZWxlZ2F0ZSB7CitAcHVibGljCisgICAgdWludDE2X3QgX3NlcnZlclBv
cnQ7CisgICAgV0tXZWJWaWV3ICpfd2ViVmlldzsKK30KKworLSAodm9pZClfZG93bmxvYWREaWRT
dGFydDooX1dLRG93bmxvYWQgKilkb3dubG9hZAoreworICAgIEVYUEVDVF9UUlVFKFtkb3dubG9h
ZC5vcmlnaW5hdGluZ0ZyYW1lSW5mby5zZWN1cml0eU9yaWdpbi5wcm90b2NvbCBpc0VxdWFsVG9T
dHJpbmc6QCJodHRwIl0pOworICAgIEVYUEVDVF9UUlVFKFtkb3dubG9hZC5vcmlnaW5hdGluZ0Zy
YW1lSW5mby5zZWN1cml0eU9yaWdpbi5ob3N0IGlzRXF1YWxUb1N0cmluZzpAIjEyNy4wLjAuMSJd
KTsKKyAgICBFWFBFQ1RfRVEoZG93bmxvYWQub3JpZ2luYXRpbmdGcmFtZUluZm8uc2VjdXJpdHlP
cmlnaW4ucG9ydCwgX3NlcnZlclBvcnQpOworICAgIEVYUEVDVF9GQUxTRShkb3dubG9hZC5vcmln
aW5hdGluZ0ZyYW1lSW5mby5tYWluRnJhbWUpOworICAgIEVYUEVDVF9FUShkb3dubG9hZC5vcmln
aW5hdGluZ0ZyYW1lSW5mby53ZWJWaWV3LCBfd2ViVmlldyk7CisgICAgaXNEb25lID0gdHJ1ZTsK
K30KKworQGVuZAorCitzdGF0aWMgY29uc3QgY2hhciogZG9jdW1lbnRUZXh0ID0gUiJET0NET0NE
T0MoCis8c2NyaXB0PgorZnVuY3Rpb24gbG9hZGVkKCkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGhlbGluayIpLmNsaWNrKCk7Cit9Cis8L3NjcmlwdD4KKzxib2R5IG9ubG9hZD0i
bG9hZGVkKCk7Ij4KKzxhIGlkPSJ0aGVsaW5rIiBocmVmPSJkb3dubG9hZCI+Q2xpY2sgbWU8L2E+
Cis8L2JvZHk+CispRE9DRE9DRE9DIjsKKworVEVTVChfV0tEb3dubG9hZCwgU3ViZnJhbWVTZWN1
cml0eU9yaWdpbikKK3sKKyAgICBhdXRvIG5hdmlnYXRpb25EZWxlZ2F0ZSA9IGFkb3B0TlMoW1tE
b3dubG9hZFRlc3RTY2hlbWVEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIGF1dG8gZG93bmxv
YWREZWxlZ2F0ZSA9IGFkb3B0TlMoW1tEb3dubG9hZFNlY3VyaXR5T3JpZ2luRGVsZWdhdGUgYWxs
b2NdIGluaXRdKTsKKworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tXS1dlYlZpZXcgYWxs
b2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCldKTsKKyAgICBbd2Vi
VmlldyBzZXROYXZpZ2F0aW9uRGVsZWdhdGU6bmF2aWdhdGlvbkRlbGVnYXRlLmdldCgpXTsKKyAg
ICBbW1t3ZWJWaWV3IGNvbmZpZ3VyYXRpb25dIHByb2Nlc3NQb29sXSBfc2V0RG93bmxvYWREZWxl
Z2F0ZTpkb3dubG9hZERlbGVnYXRlLmdldCgpXTsKKworICAgIFRlc3RXZWJLaXRBUEk6OkhUVFBT
ZXJ2ZXIgc2VydmVyKHsKKyAgICAgICAgeyAiL3BhZ2UiLCB7IGRvY3VtZW50VGV4dCB9IH0sCisg
ICAgICAgIHsgIi9kb3dubG9hZCIsIHsgZG9jdW1lbnRUZXh0IH0gfSwKKyAgICB9KTsKKyAgICBk
b3dubG9hZERlbGVnYXRlLT5fc2VydmVyUG9ydCA9IHNlcnZlci5wb3J0KCk7CisgICAgZG93bmxv
YWREZWxlZ2F0ZS0+X3dlYlZpZXcgPSB3ZWJWaWV3LmdldCgpOworCisgICAgaXNEb25lID0gZmFs
c2U7CisgICAgW3dlYlZpZXcgbG9hZEhUTUxTdHJpbmc6W05TU3RyaW5nIHN0cmluZ1dpdGhGb3Jt
YXQ6QCI8Ym9keT48aWZyYW1lIHNyYz0naHR0cDovLzEyNy4wLjAuMTolZC9wYWdlJz48L2lmcmFt
ZT48L2JvZHk+Iiwgc2VydmVyLnBvcnQoKV0gYmFzZVVSTDpuaWxdOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKK30KICNlbmRpZiAvLyBQTEFURk9STShNQUMpIHx8IFBM
QVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNl
cnZlci5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQppbmRleCAz
Y2IzMjkwNDZjNWM1ZmE0NTZiNTc5NWRhMmY4NWY1M2RkZjIyNmFjLi4wZjRiMDNlYWExNGFmYzNh
M2RhNzQ5OWY2YzVhMjlmMTNkYWUxMWI2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L2NvY29hL0hUVFBTZXJ2ZXIubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQ
U2VydmVyLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBIQVZFKE5FVFdPUktfRlJBTUVXT1JL
KQogCisjaW1wb3J0ICJVdGlsaXRpZXMuaCIKICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0J1aWxk
ZXIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00OSw3ICs1MCwxNCBA
QCBIVFRQU2VydmVyOjpIVFRQU2VydmVyKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxzdGQ6OnBhaXI8
U3RyaW5nLCBIVFRQUmVzcG9uc2U+PiByZQogICAgICAgICBud19jb25uZWN0aW9uX3N0YXJ0KGNv
bm5lY3Rpb24pOwogICAgICAgICByZXNwb25kVG9SZXF1ZXN0cyhjb25uZWN0aW9uKTsKICAgICB9
KTsKKyAgICBfX2Jsb2NrIGJvb2wgcmVhZHkgPSBmYWxzZTsKKyAgICBud19saXN0ZW5lcl9zZXRf
c3RhdGVfY2hhbmdlZF9oYW5kbGVyKG1fbGlzdGVuZXIuZ2V0KCksIF4obndfbGlzdGVuZXJfc3Rh
dGVfdCBzdGF0ZSwgbndfZXJyb3JfdCBlcnJvcikgeworICAgICAgICBBU1NFUlRfVU5VU0VEKGVy
cm9yLCAhZXJyb3IpOworICAgICAgICBpZiAoc3RhdGUgPT0gbndfbGlzdGVuZXJfc3RhdGVfcmVh
ZHkpCisgICAgICAgICAgICByZWFkeSA9IHRydWU7CisgICAgfSk7CiAgICAgbndfbGlzdGVuZXJf
c3RhcnQobV9saXN0ZW5lci5nZXQoKSk7CisgICAgVXRpbDo6cnVuKCZyZWFkeSk7CiB9CiAKIHN0
YXRpYyBTdHJpbmcgc3RhdHVzVGV4dCh1bnNpZ25lZCBzdGF0dXNDb2RlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389849</attachid>
            <date>2020-02-05 12:46:24 -0800</date>
            <delta_ts>2020-02-05 12:49:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207185-20200205124623.patch</filename>
            <type>text/plain</type>
            <size>22695</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRjMzAxMjg1MDZiMzYxM2Q0
MzBkN2JlZmQ5ZWE1YTY0YTA3NDcyMzIuLjMyOTc1OTU5ODBhZjNmODcxNjlhNjRiZmQ0YmRkNjBj
NGM3NWY3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjAtMDItMDUgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIF9XS0Rvd25sb2FkIHNob3VsZCBl
eHBvc2UgdGhlIG9yaWdpbmF0aW5nIEZyYW1lSW5mby4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU4MDIyNTc2PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NzE4NQorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuLgorCisgICAgICAgIENvdmVy
ZWQgYnkgbmV3IEFQSSB0ZXN0LgorICAgICAgICAKKyAgICAgICAgRm9yIHRoZSBjYXNlcyB3aGVy
ZSBhIG5hdmlnYXRpb24gaXMgY29udmVydGVkIGludG8gYSBkb3dubG9hZCwgaW5jbHVkZSB0aGUg
cmVsZXZhbnQKKyAgICAgICAgV0tGcmFtZUluZm8gb24gdGhlIF9XS0Rvd25sb2FkIG9iamVjdC4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRG93bmxvYWQubW06CisgICAgICAgICgtW19XS0Rvd25sb2FkIG9yaWdpbmF0aW5n
RnJhbWVJbmZvXSk6CisgICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVEb3dubG9hZElEKToKKyAgICAgICAgKFdl
YktpdDo6RG93bmxvYWRQcm94eTo6RG93bmxvYWRQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkRv
d25sb2FkUHJveHk6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkRvd25sb2Fk
UHJveHk6OnNldE9yaWdpbmF0aW5nUGFnZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkUHJv
eHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkUHJveHk6OmZyYW1lSW5mbyk6
CisgICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6RG93bmxvYWRQcm94eU1hcDo6Y3JlYXRlRG93bmxvYWRQcm94eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmNyZWF0ZURvd25sb2FkUHJveHkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZG93bmxvYWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVzdW1lRG93bmxvYWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlRG93bmxvYWRQcm94eSk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisKIDIwMjAtMDItMDMgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRo
ZSBpbnRlcm5hbCBidWlsZCBhZnRlciA8cmRhcjovL3Byb2JsZW0vNTkxMzI5NDQ+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmgKaW5kZXggN2QwODc5ZGJlNzkxODZk
OGNkNmM3N2JkNjhkZDc0YzEwNWMwNjQ4Ny4uMGVhMWJkNDljZWZlMjVjMDY0ODg1MWFiM2MwZDE4
NzRkZDc2MTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUZy
YW1lSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElGcmFtZUluZm8u
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElPYmplY3Qu
aCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNCw3ICszNSw2IEBAIHN0cnVj
dCBTZWN1cml0eU9yaWdpbkRhdGE7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViRnJh
bWVQcm94eTsKLWNsYXNzIFdlYlBhZ2VQcm94eTsKIHN0cnVjdCBGcmFtZUluZm9EYXRhOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxv
YWQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCmlu
ZGV4IGVlYTk5YmJkZDQzYzlhY2I0YTliNDg3YzlkMDAzZjYxMWNkYWY5ODUuLjgzMWU2MjU2MTYy
MWM2YTE5ZmUyZTMwNDkxNWI2NzNhZDFmNWNjMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbXBv
cnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCitAY2xhc3MgV0tGcmFtZUluZm87CiBAY2xh
c3MgV0tXZWJWaWV3OwogCiBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4w
KSkKQEAgLTQxLDUgKzQyLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9z
KDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TQXJyYXk8TlNV
UkwgKj4gKnJlZGlyZWN0Q2hhaW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9z
KDExLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCB3YXNVc2VySW5p
dGlhdGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TRGF0YSAqcmVzdW1lRGF0YSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBXS0ZyYW1lSW5mbyAqb3JpZ2luYXRpbmdGcmFtZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQubW0KaW5kZXggNjUzZmQx
MWQxNzY1NDQ1NDAwYmYzYjdkNzc2ZTI1MDcwMzcyNzNmNC4uZDFhNjgzZGQyZTY4ZTk5NjNkZWM5
ZjI4ZmY2ODBlOGI0MTJjYzM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0Rvd25sb2FkLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tEb3dubG9hZC5tbQpAQCAtMjcsNiArMjcsNyBAQAogI2ltcG9ydCAiX1dLRG93
bmxvYWRJbnRlcm5hbC5oIgogCiAjaW1wb3J0ICJEb3dubG9hZFByb3h5LmgiCisjaW1wb3J0ICJX
S0ZyYW1lSW5mb0ludGVybmFsLmgiCiAjaW1wb3J0ICJXS05TRGF0YS5oIgogI2ltcG9ydCAiV0tX
ZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgpAQCAtODMsNiAr
ODQsMTEgQEAgLSAoTlNEYXRhICopcmVzdW1lRGF0YQogICAgIHJldHVybiBXZWJLaXQ6OndyYXBw
ZXIoX2Rvd25sb2FkLT5yZXN1bWVEYXRhKCkpOwogfQogCistIChXS0ZyYW1lSW5mbyAqKW9yaWdp
bmF0aW5nRnJhbWUKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojp3cmFwcGVyKCZfZG93bmxvYWQtPmZy
YW1lSW5mbygpKTsKK30KKwogLSAoaWQpY29weVdpdGhab25lOihOU1pvbmUgKil6b25lCiB7CiAg
ICAgcmV0dXJuIFtzZWxmIHJldGFpbl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAKaW5kZXggNjYzZWE1MjZlZDgwMjI2YmExM2Jl
MjMzOTUxMmM4MmYxZDVmMjE1YS4uNjVlZDMwMDRhYTBiMGRkNTAxMWZhOWI2NmU4MmQ2NmM4ODYx
MTBlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZFByb3h5LmNwcApAQCAtMjgsOSArMjgsMTEgQEAKIAogI2luY2x1ZGUgIkFQSURhdGEuaCIK
ICNpbmNsdWRlICJBUElEb3dubG9hZENsaWVudC5oIgorI2luY2x1ZGUgIkFQSUZyYW1lSW5mby5o
IgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCIKICNpbmNsdWRlICJE
YXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1hcC5oIgorI2luY2x1ZGUg
IkZyYW1lSW5mb0RhdGEuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5o
IgpAQCAtNTAsMTggKzUyLDE1IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZURvd25sb2FkSUQo
KQogICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVEb3dubG9hZElEID0gMDsKICAgICByZXR1cm4g
Kyt1bmlxdWVEb3dubG9hZElEOwogfQotICAgIAotUmVmPERvd25sb2FkUHJveHk+IERvd25sb2Fk
UHJveHk6OmNyZWF0ZShEb3dubG9hZFByb3h5TWFwJiBkb3dubG9hZFByb3h5TWFwLCBXZWJzaXRl
RGF0YVN0b3JlJiBkYXRhU3RvcmUsIFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRG93bmxvYWRQcm94eShkb3dubG9hZFByb3h5TWFwLCBkYXRhU3RvcmUsIHByb2Nlc3NQ
b29sLCByZXNvdXJjZVJlcXVlc3QpKTsKLX0KIAotRG93bmxvYWRQcm94eTo6RG93bmxvYWRQcm94
eShEb3dubG9hZFByb3h5TWFwJiBkb3dubG9hZFByb3h5TWFwLCBXZWJzaXRlRGF0YVN0b3JlJiBk
YXRhU3RvcmUsIFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXNvdXJjZVJlcXVlc3QpCitEb3dubG9hZFByb3h5OjpEb3dubG9hZFByb3h5KERvd25s
b2FkUHJveHlNYXAmIGRvd25sb2FkUHJveHlNYXAsIFdlYnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9y
ZSwgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
c291cmNlUmVxdWVzdCwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvRGF0YSwgV2ViUGFn
ZVByb3h5KiBvcmlnaW5hdGluZ1BhZ2UpCiAgICAgOiBtX2Rvd25sb2FkUHJveHlNYXAoZG93bmxv
YWRQcm94eU1hcCkKICAgICAsIG1fZGF0YVN0b3JlKCZkYXRhU3RvcmUpCiAgICAgLCBtX3Byb2Nl
c3NQb29sKCZwcm9jZXNzUG9vbCkKICAgICAsIG1fZG93bmxvYWRJRChnZW5lcmF0ZURvd25sb2Fk
SUQoKSkKICAgICAsIG1fcmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAgLCBtX29yaWdpbmF0
aW5nUGFnZShtYWtlV2Vha1B0cihvcmlnaW5hdGluZ1BhZ2UpKQorICAgICwgbV9mcmFtZUluZm8o
QVBJOjpGcmFtZUluZm86OmNyZWF0ZShGcmFtZUluZm9EYXRhIHsgZnJhbWVJbmZvRGF0YSB9LCBv
cmlnaW5hdGluZ1BhZ2UpKQogewogfQogCkBAIC0xMDAsMTEgKzk5LDYgQEAgV2ViUGFnZVByb3h5
KiBEb3dubG9hZFByb3h5OjpvcmlnaW5hdGluZ1BhZ2UoKSBjb25zdAogICAgIHJldHVybiBtX29y
aWdpbmF0aW5nUGFnZS5nZXQoKTsKIH0KIAotdm9pZCBEb3dubG9hZFByb3h5OjpzZXRPcmlnaW5h
dGluZ1BhZ2UoV2ViUGFnZVByb3h5KiBwYWdlKQotewotICAgIG1fb3JpZ2luYXRpbmdQYWdlID0g
bWFrZVdlYWtQdHIocGFnZSk7Ci19Ci0KICNpZiBQTEFURk9STShDT0NPQSkKIHZvaWQgRG93bmxv
YWRQcm94eTo6cHVibGlzaFByb2dyZXNzKGNvbnN0IFVSTCYgVVJMKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKaW5kZXggY2QwYjAw
ZTU3MzExNGU3NzkzNmNiNzhkNzE4NWM1NjA5N2NlZTgzZS4uYTBjY2JlMDY2M2MzYzEyNjQzNzcw
NGJjYzhmOTFiNDcyNGNjY2E5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWRQcm94eS5oCkBAIC0zNiw2ICszNiw3IEBACiAKIG5hbWVzcGFjZSBB
UEkgewogY2xhc3MgRGF0YTsKK2NsYXNzIEZyYW1lSW5mbzsKIH0KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNTQsOSArNTUsMTUgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUHJv
Y2Vzc1Bvb2w7CiBjbGFzcyBXZWJzaXRlRGF0YVN0b3JlOwogCitzdHJ1Y3QgRnJhbWVJbmZvRGF0
YTsKKwogY2xhc3MgRG93bmxvYWRQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpP
YmplY3Q6OlR5cGU6OkRvd25sb2FkPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPERvd25sb2FkUHJveHk+IGNyZWF0ZShEb3dubG9hZFByb3h5
TWFwJiwgV2Vic2l0ZURhdGFTdG9yZSYsIFdlYlByb2Nlc3NQb29sJiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0Jik7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPiBzdGF0
aWMgUmVmPERvd25sb2FkUHJveHk+IGNyZWF0ZShBcmdzJiYuLi4gYXJncykKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERvd25sb2FkUHJveHkoc3RkOjpmb3J3YXJkPEFyZ3M+
KGFyZ3MpLi4uKSk7CisgICAgfQogICAgIH5Eb3dubG9hZFByb3h5KCk7CiAKICAgICBEb3dubG9h
ZElEIGRvd25sb2FkSUQoKSBjb25zdCB7IHJldHVybiBtX2Rvd25sb2FkSUQ7IH0KQEAgLTcyLDcg
Kzc5LDYgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNEb3dubG9hZFByb3h5TWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpFbmNvZGVyPiYpOwogCiAgICAgV2ViUGFnZVByb3h5KiBvcmlnaW5hdGluZ1BhZ2UoKSBjb25z
dDsKLSAgICB2b2lkIHNldE9yaWdpbmF0aW5nUGFnZShXZWJQYWdlUHJveHkqKTsKIAogICAgIHZv
aWQgc2V0UmVkaXJlY3RDaGFpbihWZWN0b3I8VVJMPiYmIHJlZGlyZWN0Q2hhaW4pIHsgbV9yZWRp
cmVjdENoYWluID0gV1RGTW92ZShyZWRpcmVjdENoYWluKTsgfQogICAgIGNvbnN0IFZlY3RvcjxV
Ukw+JiByZWRpcmVjdENoYWluKCkgY29uc3QgeyByZXR1cm4gbV9yZWRpcmVjdENoYWluOyB9CkBA
IC05OCw4ICsxMDQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcHVibGlzaFByb2dyZXNzKGNvbnN0
IFVSTCYpOwogI2VuZGlmCiAKKyAgICBBUEk6OkZyYW1lSW5mbyYgZnJhbWVJbmZvKCkgeyByZXR1
cm4gbV9mcmFtZUluZm8uZ2V0KCk7IH0KKwogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBEb3dubG9h
ZFByb3h5KERvd25sb2FkUHJveHlNYXAmLCBXZWJzaXRlRGF0YVN0b3JlJiwgV2ViUHJvY2Vzc1Bv
b2wmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBleHBsaWNpdCBEb3du
bG9hZFByb3h5KERvd25sb2FkUHJveHlNYXAmLCBXZWJzaXRlRGF0YVN0b3JlJiwgV2ViUHJvY2Vz
c1Bvb2wmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBGcmFtZUluZm9E
YXRhJiwgV2ViUGFnZVByb3h5Kik7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikg
b3ZlcnJpZGU7CkBAIC0xMzIsNiArMTQwLDcgQEAgcHJpdmF0ZToKICAgICBXZWFrUHRyPFdlYlBh
Z2VQcm94eT4gbV9vcmlnaW5hdGluZ1BhZ2U7CiAgICAgVmVjdG9yPFVSTD4gbV9yZWRpcmVjdENo
YWluOwogICAgIGJvb2wgbV93YXNVc2VySW5pdGlhdGVkIHsgdHJ1ZSB9OworICAgIFJlZjxBUEk6
OkZyYW1lSW5mbz4gbV9mcmFtZUluZm87CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5
TWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5
TWFwLmNwcAppbmRleCA0OTJkNTUwMDJkMDQ0MjUxYjZjMTRiYWFlMGI4MGJmMTM1YmUyYzQzLi43
MGM0YjZjZWYzZWM3ODMzYTgwYTVlYmMzYWI4Mjg1NDI0M2YwZTAwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwCkBA
IC04MCw5ICs4MCw5IEBAIHZvaWQgRG93bmxvYWRQcm94eU1hcDo6YXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kKCkKICAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6QXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCksIDApOwogfQogCi1Eb3du
bG9hZFByb3h5JiBEb3dubG9hZFByb3h5TWFwOjpjcmVhdGVEb3dubG9hZFByb3h5KFdlYnNpdGVE
YXRhU3RvcmUmIGRhdGFTdG9yZSwgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKK0Rvd25sb2FkUHJveHkm
IERvd25sb2FkUHJveHlNYXA6OmNyZWF0ZURvd25sb2FkUHJveHkoV2Vic2l0ZURhdGFTdG9yZSYg
ZGF0YVN0b3JlLCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBGcmFtZUluZm9EYXRhJiBmcmFt
ZUluZm8sIFdlYlBhZ2VQcm94eSogb3JpZ2luYXRpbmdQYWdlKQogewotICAgIGF1dG8gZG93bmxv
YWRQcm94eSA9IERvd25sb2FkUHJveHk6OmNyZWF0ZSgqdGhpcywgZGF0YVN0b3JlLCBwcm9jZXNz
UG9vbCwgcmVzb3VyY2VSZXF1ZXN0KTsKKyAgICBhdXRvIGRvd25sb2FkUHJveHkgPSBEb3dubG9h
ZFByb3h5OjpjcmVhdGUoKnRoaXMsIGRhdGFTdG9yZSwgcHJvY2Vzc1Bvb2wsIHJlc291cmNlUmVx
dWVzdCwgZnJhbWVJbmZvLCBvcmlnaW5hdGluZ1BhZ2UpOwogICAgIG1fZG93bmxvYWRzLnNldChk
b3dubG9hZFByb3h5LT5kb3dubG9hZElEKCksIGRvd25sb2FkUHJveHkuY29weVJlZigpKTsKIAog
ICAgIFJFTEVBU0VfTE9HKExvYWRpbmcsICJBZGRpbmcgZG93bmxvYWQgJSIgUFJJdTY0ICIgdG8g
VUlQcm9jZXNzIERvd25sb2FkUHJveHlNYXAiLCBkb3dubG9hZFByb3h5LT5kb3dubG9hZElEKCku
ZG93bmxvYWRJRCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZFByb3h5TWFwLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWRQcm94eU1hcC5oCmluZGV4IDNmNTA1YjEwNjM5ZjVkMGYzNTI1ODY3YjZiNmE5
M2IzN2FlODVlZjYuLjQ1MjM1YjJjMWM3ZjYzYTdmN2JkMTFiOTdkZmNlYzFlYzIwMTMwYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5
TWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJv
eHlNYXAuaApAQCAtNDQsNiArNDQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIERvd25s
b2FkUHJveHk7CiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5OwogY2xhc3MgUHJvY2Vzc0Fzc2Vy
dGlvbjsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xhc3Mg
V2Vic2l0ZURhdGFTdG9yZTsKIApAQCAtNTUsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgRG93bmxvYWRQcm94eU1hcChOZXR3b3JrUHJvY2Vzc1Byb3h5Jik7CiAgICAgfkRvd25sb2Fk
UHJveHlNYXAoKTsKIAotICAgIERvd25sb2FkUHJveHkmIGNyZWF0ZURvd25sb2FkUHJveHkoV2Vi
c2l0ZURhdGFTdG9yZSYsIFdlYlByb2Nlc3NQb29sJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0Jik7CisgICAgRG93bmxvYWRQcm94eSYgY3JlYXRlRG93bmxvYWRQcm94eShXZWJzaXRl
RGF0YVN0b3JlJiwgV2ViUHJvY2Vzc1Bvb2wmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBGcmFtZUluZm9EYXRhJiwgV2ViUGFnZVByb3h5KiBvcmlnaW5hdGluZ1BhZ2Up
OwogICAgIHZvaWQgZG93bmxvYWRGaW5pc2hlZChEb3dubG9hZFByb3h5Jik7CiAKICAgICBib29s
IGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2Rvd25sb2Fkcy5pc0VtcHR5KCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwCmluZGV4IDA5OGJkNWFkYTdlY2FiZWNhZTQ0NmQxNTQ1YjJmZmU5MzRjNWRhMGYuLmNm
Mjc0NGI1MDUyZjc1N2FhYjliMWViYWQyMmQ4NzM1YjQ3ZWRjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApA
QCAtMTgyLDEyICsxODIsMTIgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzeW50aGVzaXpl
QXBwSXNCYWNrZ3JvdW5kKGJvb2wgYmFja2dyb3VuZCkKICAgICB9CiB9CiAKLURvd25sb2FkUHJv
eHkmIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNyZWF0ZURvd25sb2FkUHJveHkoV2Vic2l0ZURhdGFT
dG9yZSYgZGF0YVN0b3JlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkK
K0Rvd25sb2FkUHJveHkmIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNyZWF0ZURvd25sb2FkUHJveHko
V2Vic2l0ZURhdGFTdG9yZSYgZGF0YVN0b3JlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291
cmNlUmVxdWVzdCwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvLCBXZWJQYWdlUHJveHkq
IG9yaWdpbmF0aW5nUGFnZSkKIHsKICAgICBpZiAoIW1fZG93bmxvYWRQcm94eU1hcCkKICAgICAg
ICAgbV9kb3dubG9hZFByb3h5TWFwID0gbWFrZVVuaXF1ZTxEb3dubG9hZFByb3h5TWFwPigqdGhp
cyk7CiAKLSAgICByZXR1cm4gbV9kb3dubG9hZFByb3h5TWFwLT5jcmVhdGVEb3dubG9hZFByb3h5
KGRhdGFTdG9yZSwgbV9wcm9jZXNzUG9vbCwgcmVzb3VyY2VSZXF1ZXN0KTsKKyAgICByZXR1cm4g
bV9kb3dubG9hZFByb3h5TWFwLT5jcmVhdGVEb3dubG9hZFByb3h5KGRhdGFTdG9yZSwgbV9wcm9j
ZXNzUG9vbCwgcmVzb3VyY2VSZXF1ZXN0LCBmcmFtZUluZm8sIG9yaWdpbmF0aW5nUGFnZSk7CiB9
CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgT3B0
aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCAoV2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApp
bmRleCBhMDIyMjI5Y2I3ZGExMjg5ZDE5NzNkOTQ4YmQzYTQwYWQzZGI2Yzk3Li42MmE2ZDM4NDI2
NGY5YmIwNmMzNmMzNGFmOWY4ZTJlMzFiNjkzM2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtNjMsNiArNjMs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIERv
d25sb2FkUHJveHlNYXA7CitjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzUG9v
bDsKIGNsYXNzIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OwogCkBAIC03MSw2ICs3Miw3
IEBAIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1N0YXR1cyA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNz
IFdlYnNpdGVEYXRhRmV0Y2hPcHRpb247CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIAor
c3RydWN0IEZyYW1lSW5mb0RhdGE7CiBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM7CiBzdHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbzsKIHN0cnVjdCBXZWJzaXRlRGF0YTsKQEAg
LTk1LDcgKzk3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOwogCi0gICAgRG93bmxvYWRQcm94
eSYgY3JlYXRlRG93bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgRG93bmxvYWRQcm94eSYgY3JlYXRlRG93bmxvYWRQcm94
eShXZWJzaXRlRGF0YVN0b3JlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgRnJhbWVJbmZvRGF0YSYsIFdlYlBhZ2VQcm94eSogb3JpZ2luYXRpbmdQYWdlKTsKIAogICAg
IHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4sIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJzaXRlRGF0YSk+JiYpOwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEo
UEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBXYWxsVGltZSBtb2Rp
ZmllZFNpbmNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMzE1MmUxMjk3
YzYwMmFjMTRlZGVhZmQ3MDRhOWZmYTA4NWFiMWUxMy4uMjZhY2I1OGJhMDYxMTJmYTVhZTY3NGM1
NDk0YjZhNjIzMjM2MzczNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC0zMTQ3LDcgKzMxNDcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xp
Y3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gYWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qCiAgICAgRG93
bmxvYWRJRCBkb3dubG9hZElEID0geyB9OwogICAgIGlmIChhY3Rpb24gPT0gUG9saWN5QWN0aW9u
OjpEb3dubG9hZCkgewogICAgICAgICAvLyBDcmVhdGUgYSBkb3dubG9hZCBwcm94eS4KLSAgICAg
ICAgYXV0byYgZG93bmxvYWQgPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuY3JlYXRlRG93bmxv
YWRQcm94eShtX3dlYnNpdGVEYXRhU3RvcmUsIG1fZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VSZXF1
ZXN0LCB0aGlzKTsKKyAgICAgICAgYXV0byYgZG93bmxvYWQgPSBtX3Byb2Nlc3MtPnByb2Nlc3NQ
b29sKCkuY3JlYXRlRG93bmxvYWRQcm94eShtX3dlYnNpdGVEYXRhU3RvcmUsIG1fZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VSZXF1ZXN0LCB0aGlzLCBuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+b3Jp
Z2luYXRpbmdGcmFtZUluZm8oKSA6IEZyYW1lSW5mb0RhdGEgeyB9KTsKICAgICAgICAgaWYgKG5h
dmlnYXRpb24pIHsKICAgICAgICAgICAgIGRvd25sb2FkLnNldFdhc1VzZXJJbml0aWF0ZWQobmF2
aWdhdGlvbi0+d2FzVXNlckluaXRpYXRlZCgpKTsKICAgICAgICAgICAgIGRvd25sb2FkLnNldFJl
ZGlyZWN0Q2hhaW4obmF2aWdhdGlvbi0+dGFrZVJlZGlyZWN0Q2hhaW4oKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggZTFjZTNhMTdkNWM2ZDM4YTEy
ZTU0Y2MxZjQ1Zjk1MWMxNmIyOTBkNi4uM2FhNTdhOTU1OTQ1NTU5ZWUzMzkzNjk4ZDA3YTIwNjdi
ZjBlYTViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApA
QCAtMTM1MCw3ICsxMzUwLDcgQEAgYm9vbCBXZWJQcm9jZXNzUG9vbDo6aGFzUGFnZXNVc2luZ1dl
YnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZSYgZGF0YVN0b3JlKQogCiBEb3dubG9hZFBy
b3h5JiBXZWJQcm9jZXNzUG9vbDo6ZG93bmxvYWQoV2Vic2l0ZURhdGFTdG9yZSYgZGF0YVN0b3Jl
LCBXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUpCiB7Ci0gICAgYXV0byYgZG93
bmxvYWRQcm94eSA9IGNyZWF0ZURvd25sb2FkUHJveHkoZGF0YVN0b3JlLCByZXF1ZXN0LCBpbml0
aWF0aW5nUGFnZSk7CisgICAgYXV0byYgZG93bmxvYWRQcm94eSA9IGNyZWF0ZURvd25sb2FkUHJv
eHkoZGF0YVN0b3JlLCByZXF1ZXN0LCBpbml0aWF0aW5nUGFnZSwgeyB9KTsKICAgICBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQgPSBkYXRhU3RvcmUuc2Vzc2lvbklEKCk7CiAKICAgICBpZiAoaW5p
dGlhdGluZ1BhZ2UpCkBAIC0xMzgyLDcgKzEzODIsNyBAQCBEb3dubG9hZFByb3h5JiBXZWJQcm9j
ZXNzUG9vbDo6ZG93bmxvYWQoV2Vic2l0ZURhdGFTdG9yZSYgZGF0YVN0b3JlLCBXZWJQYWdlUHJv
eAogCiBEb3dubG9hZFByb3h5JiBXZWJQcm9jZXNzUG9vbDo6cmVzdW1lRG93bmxvYWQoV2Vic2l0
ZURhdGFTdG9yZSYgZGF0YVN0b3JlLCBXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25z
dCBBUEk6OkRhdGEmIHJlc3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICBhdXRv
JiBkb3dubG9hZFByb3h5ID0gY3JlYXRlRG93bmxvYWRQcm94eShkYXRhU3RvcmUsIFJlc291cmNl
UmVxdWVzdCgpLCBpbml0aWF0aW5nUGFnZSk7CisgICAgYXV0byYgZG93bmxvYWRQcm94eSA9IGNy
ZWF0ZURvd25sb2FkUHJveHkoZGF0YVN0b3JlLCBSZXNvdXJjZVJlcXVlc3QoKSwgaW5pdGlhdGlu
Z1BhZ2UsIHsgfSk7CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEID0gZGF0YVN0b3JlLnNl
c3Npb25JRCgpOwogCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNp
b25IYW5kbGU7CkBAIC0xNjMyLDExICsxNjMyLDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0
RGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwoZG91YmxlIHRpbWVvdXRJbnRlcnZhbCkKICAg
ICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldERlZmF1bHRSZXF1
ZXN0VGltZW91dEludGVydmFsKHRpbWVvdXRJbnRlcnZhbCkpOwogfQogCi1Eb3dubG9hZFByb3h5
JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlRG93bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiBk
YXRhU3RvcmUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViUGFnZVByb3h5KiBv
cmlnaW5hdGluZ1BhZ2UpCitEb3dubG9hZFByb3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlRG93
bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgV2ViUGFnZVByb3h5KiBvcmlnaW5hdGluZ1BhZ2UsIGNvbnN0IEZyYW1l
SW5mb0RhdGEmIGZyYW1lSW5mbykKIHsKLSAgICBhdXRvJiBkb3dubG9hZFByb3h5ID0gZW5zdXJl
TmV0d29ya1Byb2Nlc3MoKS5jcmVhdGVEb3dubG9hZFByb3h5KGRhdGFTdG9yZSwgcmVxdWVzdCk7
Ci0gICAgZG93bmxvYWRQcm94eS5zZXRPcmlnaW5hdGluZ1BhZ2Uob3JpZ2luYXRpbmdQYWdlKTsK
LSAgICByZXR1cm4gZG93bmxvYWRQcm94eTsKKyAgICByZXR1cm4gZW5zdXJlTmV0d29ya1Byb2Nl
c3MoKS5jcmVhdGVEb3dubG9hZFByb3h5KGRhdGFTdG9yZSwgcmVxdWVzdCwgZnJhbWVJbmZvLCBv
cmlnaW5hdGluZ1BhZ2UpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpzeW50aGVzaXplQXBw
SXNCYWNrZ3JvdW5kKGJvb2wgYmFja2dyb3VuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5oCmluZGV4IDY0YjFkYmNlNGM5MDc1MzY5OTliMWMyYTVlYjMxNDY3MGY0MjNl
MWUuLjU2MjJmYzU3NGY2MmM0ODJkZWFiY2M1MjM0MjFjZTI3MmNjNzFlYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMzAwLDcgKzMwMCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sKTsKICAgICAKICAgICAv
LyBEb3dubG9hZHMuCi0gICAgRG93bmxvYWRQcm94eSYgY3JlYXRlRG93bmxvYWRQcm94eShXZWJz
aXRlRGF0YVN0b3JlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViUGFnZVBy
b3h5KiBvcmlnaW5hdGluZ1BhZ2UpOworICAgIERvd25sb2FkUHJveHkmIGNyZWF0ZURvd25sb2Fk
UHJveHkoV2Vic2l0ZURhdGFTdG9yZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IFdlYlBhZ2VQcm94eSogb3JpZ2luYXRpbmdQYWdlLCBjb25zdCBGcmFtZUluZm9EYXRhJik7CiAg
ICAgQVBJOjpEb3dubG9hZENsaWVudCYgZG93bmxvYWRDbGllbnQoKSB7IHJldHVybiBtX2Rvd25s
b2FkQ2xpZW50LmdldCgpOyB9CiAKICAgICBBUEk6OkxlZ2FjeUNvbnRleHRIaXN0b3J5Q2xpZW50
JiBoaXN0b3J5Q2xpZW50KCkgeyByZXR1cm4gKm1faGlzdG9yeUNsaWVudDsgfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc0OTM3YjA3ZTRkMjY2
ZWNjODQ5MWY3OGIzMTJhYmVkYTQyMTBlODUuLmQwNjBkZWVkMGI4ODYyYWQ5MGJhMzUyZWRhNzA0
ZTNlNThkNzQyYzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMi0wNSAgQnJhZHkgRWlkc29uICA8YmVpZHNv
bkBhcHBsZS5jb20+CisKKyAgICAgICAgX1dLRG93bmxvYWQgc2hvdWxkIGV4cG9zZSB0aGUgb3Jp
Z2luYXRpbmcgRnJhbWVJbmZvLgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgwMjI1NzY+IGFu
ZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MTg1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgR2VvZmYgR2FyZW4uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tOgorICAgICAgICAoLVtEb3dubG9hZFRlc3RTY2hl
bWVEZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZTpkZWNp
c2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW0Rvd25sb2FkU2VjdXJpdHlPcmlnaW5EZWxlZ2F0
ZSBfZG93bmxvYWREaWRTdGFydDpdKToKKyAgICAgICAgKGxvYWRlZCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tOgorCiAyMDIwLTAyLTAzICBKb25hdGhhbiBC
ZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICByZXN1bHRzLndlYmtpdC5vcmc6
IFN1cHBvcnQganNjIHN0cmVzcyB0ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW0KaW5kZXggYmFiOTY1YjA3MDQ1MWQ5M2VkZGJiY2Jm
NGRlOWUwOTg2MjIyYTdhOC4uMzQzMjc3MzBiZjVhNDcwZTBhZjMzYzRkMjI2ZjVkOTc3NDM5Yzc5
OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3du
bG9hZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25s
b2FkLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JN
KElPUykKIAorI2ltcG9ydCAiSFRUUFNlcnZlci5oIgogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKICNpbXBvcnQgIlRDUFNlcnZlci5oIgogI2ltcG9ydCAiVGVzdC5oIgpAQCAtMTE0Nyw0
ICsxMTQ4LDcwIEBAIFRFU1QoX1dLRG93bmxvYWQsIFJlc3VtZWREb3dubG9hZENhbkhhbmRsZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQogICAgIFV0aWw6OnJ1bigmaXNEb25lKTsKIH0KIAorQGlu
dGVyZmFjZSBEb3dubG9hZFRlc3RTY2hlbWVEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRp
b25EZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIERvd25sb2FkVGVzdFNjaGVtZURl
bGVnYXRlCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvblJlc3BvbnNlOihXS05hdmlnYXRpb25SZXNwb25zZSAqKW5hdmlnYXRpb25S
ZXNwb25zZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvblJlc3BvbnNlUG9s
aWN5KSlkZWNpc2lvbkhhbmRsZXIKK3sKKyAgICBpZiAoW25hdmlnYXRpb25SZXNwb25zZS5yZXNw
b25zZS5VUkwuYWJzb2x1dGVTdHJpbmcgaGFzU3VmZml4OkAiL2Rvd25sb2FkIl0pCisgICAgICAg
IGRlY2lzaW9uSGFuZGxlcihfV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lCZWNvbWVEb3dubG9h
ZCk7CisgICAgZWxzZQorICAgICAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uUmVzcG9u
c2VQb2xpY3lBbGxvdyk7Cit9CitAZW5kCisKK0BpbnRlcmZhY2UgRG93bmxvYWRTZWN1cml0eU9y
aWdpbkRlbGVnYXRlIDogTlNPYmplY3QgPF9XS0Rvd25sb2FkRGVsZWdhdGU+CitAZW5kCisKK0Bp
bXBsZW1lbnRhdGlvbiBEb3dubG9hZFNlY3VyaXR5T3JpZ2luRGVsZWdhdGUgeworQHB1YmxpYwor
ICAgIHVpbnQxNl90IF9zZXJ2ZXJQb3J0OworICAgIFdLV2ViVmlldyAqX3dlYlZpZXc7Cit9CisK
Ky0gKHZvaWQpX2Rvd25sb2FkRGlkU3RhcnQ6KF9XS0Rvd25sb2FkICopZG93bmxvYWQKK3sKKyAg
ICBFWFBFQ1RfVFJVRShbZG93bmxvYWQub3JpZ2luYXRpbmdGcmFtZUluZm8uc2VjdXJpdHlPcmln
aW4ucHJvdG9jb2wgaXNFcXVhbFRvU3RyaW5nOkAiaHR0cCJdKTsKKyAgICBFWFBFQ1RfVFJVRShb
ZG93bmxvYWQub3JpZ2luYXRpbmdGcmFtZUluZm8uc2VjdXJpdHlPcmlnaW4uaG9zdCBpc0VxdWFs
VG9TdHJpbmc6QCIxMjcuMC4wLjEiXSk7CisgICAgRVhQRUNUX0VRKGRvd25sb2FkLm9yaWdpbmF0
aW5nRnJhbWVJbmZvLnNlY3VyaXR5T3JpZ2luLnBvcnQsIF9zZXJ2ZXJQb3J0KTsKKyAgICBFWFBF
Q1RfRkFMU0UoZG93bmxvYWQub3JpZ2luYXRpbmdGcmFtZUluZm8ubWFpbkZyYW1lKTsKKyAgICBF
WFBFQ1RfRVEoZG93bmxvYWQub3JpZ2luYXRpbmdGcmFtZUluZm8ud2ViVmlldywgX3dlYlZpZXcp
OworICAgIGlzRG9uZSA9IHRydWU7Cit9CisKK0BlbmQKKworc3RhdGljIGNvbnN0IGNoYXIqIGRv
Y3VtZW50VGV4dCA9IFIiRE9DRE9DRE9DKAorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvYWRlZCgpCit7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRoZWxpbmsiKS5jbGljaygpOworfQorPC9z
Y3JpcHQ+Cis8Ym9keSBvbmxvYWQ9ImxvYWRlZCgpOyI+Cis8YSBpZD0idGhlbGluayIgaHJlZj0i
ZG93bmxvYWQiPkNsaWNrIG1lPC9hPgorPC9ib2R5PgorKURPQ0RPQ0RPQyI7CisKK1RFU1QoX1dL
RG93bmxvYWQsIFN1YmZyYW1lU2VjdXJpdHlPcmlnaW4pCit7CisgICAgYXV0byBuYXZpZ2F0aW9u
RGVsZWdhdGUgPSBhZG9wdE5TKFtbRG93bmxvYWRUZXN0U2NoZW1lRGVsZWdhdGUgYWxsb2NdIGlu
aXRdKTsKKyAgICBhdXRvIGRvd25sb2FkRGVsZWdhdGUgPSBhZG9wdE5TKFtbRG93bmxvYWRTZWN1
cml0eU9yaWdpbkRlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisKKyAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
ODAwLCA2MDApXSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOm5hdmlnYXRp
b25EZWxlZ2F0ZS5nZXQoKV07CisgICAgW1tbd2ViVmlldyBjb25maWd1cmF0aW9uXSBwcm9jZXNz
UG9vbF0gX3NldERvd25sb2FkRGVsZWdhdGU6ZG93bmxvYWREZWxlZ2F0ZS5nZXQoKV07CisKKyAg
ICBUZXN0V2ViS2l0QVBJOjpIVFRQU2VydmVyIHNlcnZlcih7CisgICAgICAgIHsgIi9wYWdlIiwg
eyBkb2N1bWVudFRleHQgfSB9LAorICAgICAgICB7ICIvZG93bmxvYWQiLCB7IGRvY3VtZW50VGV4
dCB9IH0sCisgICAgfSk7CisgICAgZG93bmxvYWREZWxlZ2F0ZS0+X3NlcnZlclBvcnQgPSBzZXJ2
ZXIucG9ydCgpOworICAgIGRvd25sb2FkRGVsZWdhdGUtPl93ZWJWaWV3ID0gd2ViVmlldy5nZXQo
KTsKKworICAgIGlzRG9uZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IGxvYWRIVE1MU3RyaW5nOltO
U1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiPGJvZHk+PGlmcmFtZSBzcmM9J2h0dHA6Ly8xMjcu
MC4wLjE6JWQvcGFnZSc+PC9pZnJhbWU+PC9ib2R5PiIsIHNlcnZlci5wb3J0KCldIGJhc2VVUkw6
bmlsXTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Cit9CiAjZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL2NvY29hL0hUVFBTZXJ2ZXIubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29h
L0hUVFBTZXJ2ZXIubW0KaW5kZXggM2NiMzI5MDQ2YzVjNWZhNDU2YjU3OTVkYTJmODVmNTNkZGYy
MjZhYy4uMGY0YjAzZWFhMTRhZmMzYTNkYTc0OTlmNmM1YTI5ZjEzZGFlMTFiNiAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvY29jb2EvSFRUUFNlcnZlci5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYg
SEFWRShORVRXT1JLX0ZSQU1FV09SSykKIAorI2ltcG9ydCAiVXRpbGl0aWVzLmgiCiAjaW1wb3J0
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIApAQCAtNDksNyArNTAsMTQgQEAgSFRUUFNlcnZlcjo6SFRUUFNlcnZlcihzdGQ6OmluaXRp
YWxpemVyX2xpc3Q8c3RkOjpwYWlyPFN0cmluZywgSFRUUFJlc3BvbnNlPj4gcmUKICAgICAgICAg
bndfY29ubmVjdGlvbl9zdGFydChjb25uZWN0aW9uKTsKICAgICAgICAgcmVzcG9uZFRvUmVxdWVz
dHMoY29ubmVjdGlvbik7CiAgICAgfSk7CisgICAgX19ibG9jayBib29sIHJlYWR5ID0gZmFsc2U7
CisgICAgbndfbGlzdGVuZXJfc2V0X3N0YXRlX2NoYW5nZWRfaGFuZGxlcihtX2xpc3RlbmVyLmdl
dCgpLCBeKG53X2xpc3RlbmVyX3N0YXRlX3Qgc3RhdGUsIG53X2Vycm9yX3QgZXJyb3IpIHsKKyAg
ICAgICAgQVNTRVJUX1VOVVNFRChlcnJvciwgIWVycm9yKTsKKyAgICAgICAgaWYgKHN0YXRlID09
IG53X2xpc3RlbmVyX3N0YXRlX3JlYWR5KQorICAgICAgICAgICAgcmVhZHkgPSB0cnVlOworICAg
IH0pOwogICAgIG53X2xpc3RlbmVyX3N0YXJ0KG1fbGlzdGVuZXIuZ2V0KCkpOworICAgIFV0aWw6
OnJ1bigmcmVhZHkpOwogfQogCiBzdGF0aWMgU3RyaW5nIHN0YXR1c1RleHQodW5zaWduZWQgc3Rh
dHVzQ29kZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>389851</attachid>
            <date>2020-02-05 12:49:43 -0800</date>
            <delta_ts>2020-02-05 13:05:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-207185-20200205124943.patch</filename>
            <type>text/plain</type>
            <size>22675</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU1NjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDRjMzAxMjg1MDZiMzYxM2Q0
MzBkN2JlZmQ5ZWE1YTY0YTA3NDcyMzIuLjMyOTc1OTU5ODBhZjNmODcxNjlhNjRiZmQ0YmRkNjBj
NGM3NWY3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjAtMDItMDUgIEJyYWR5IEVp
ZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIF9XS0Rvd25sb2FkIHNob3VsZCBl
eHBvc2UgdGhlIG9yaWdpbmF0aW5nIEZyYW1lSW5mby4KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzU4MDIyNTc2PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIw
NzE4NQorCisgICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmIEdhcmVuLgorCisgICAgICAgIENvdmVy
ZWQgYnkgbmV3IEFQSSB0ZXN0LgorICAgICAgICAKKyAgICAgICAgRm9yIHRoZSBjYXNlcyB3aGVy
ZSBhIG5hdmlnYXRpb24gaXMgY29udmVydGVkIGludG8gYSBkb3dubG9hZCwgaW5jbHVkZSB0aGUg
cmVsZXZhbnQKKyAgICAgICAgV0tGcmFtZUluZm8gb24gdGhlIF9XS0Rvd25sb2FkIG9iamVjdC4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRG93bmxvYWQubW06CisgICAgICAgICgtW19XS0Rvd25sb2FkIG9yaWdpbmF0aW5n
RnJhbWVJbmZvXSk6CisgICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6Z2VuZXJhdGVEb3dubG9hZElEKToKKyAgICAgICAgKFdl
YktpdDo6RG93bmxvYWRQcm94eTo6RG93bmxvYWRQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OkRv
d25sb2FkUHJveHk6OmNyZWF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkRvd25sb2Fk
UHJveHk6OnNldE9yaWdpbmF0aW5nUGFnZSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkUHJv
eHk6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkUHJveHk6OmZyYW1lSW5mbyk6
CisgICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6RG93bmxvYWRQcm94eU1hcDo6Y3JlYXRlRG93bmxvYWRQcm94eSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5TWFwLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmNyZWF0ZURvd25sb2FkUHJveHkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
OjpyZWNlaXZlZFBvbGljeURlY2lzaW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6ZG93bmxvYWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cmVzdW1lRG93bmxvYWQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlRG93bmxvYWRQcm94eSk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmg6CisKIDIwMjAtMDItMDMgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRo
ZSBpbnRlcm5hbCBidWlsZCBhZnRlciA8cmRhcjovL3Byb2JsZW0vNTkxMzI5NDQ+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJRnJhbWVJbmZvLmgKaW5kZXggN2QwODc5ZGJlNzkxODZk
OGNkNmM3N2JkNjhkZDc0YzEwNWMwNjQ4Ny4uMGVhMWJkNDljZWZlMjVjMDY0ODg1MWFiM2MwZDE4
NzRkZDc2MTI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUZy
YW1lSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElGcmFtZUluZm8u
aApAQCAtMjYsNiArMjYsNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElPYmplY3Qu
aCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
UmVxdWVzdC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zNCw3ICszNSw2IEBAIHN0cnVj
dCBTZWN1cml0eU9yaWdpbkRhdGE7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgV2ViRnJh
bWVQcm94eTsKLWNsYXNzIFdlYlBhZ2VQcm94eTsKIHN0cnVjdCBGcmFtZUluZm9EYXRhOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxv
YWQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCmlu
ZGV4IGVlYTk5YmJkZDQzYzlhY2I0YTliNDg3YzlkMDAzZjYxMWNkYWY5ODUuLjgzMWU2MjU2MTYy
MWM2YTE5ZmUyZTMwNDkxNWI2NzNhZDFmNWNjMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tEb3dubG9hZC5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbXBv
cnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgogCitAY2xhc3MgV0tGcmFtZUluZm87CiBAY2xh
c3MgV0tXZWJWaWV3OwogCiBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4w
KSkKQEAgLTQxLDUgKzQyLDYgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zKDEwLjEwKSwgaW9z
KDguMCkpCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGNvcHkpIE5TQXJyYXk8TlNV
UkwgKj4gKnJlZGlyZWN0Q2hhaW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMy40KSwgaW9z
KDExLjMpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCB3YXNVc2VySW5p
dGlhdGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TRGF0YSAqcmVzdW1lRGF0YSBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjE0LjQpLCBpb3MoMTIuMikpOworQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5KSBXS0ZyYW1lSW5mbyAqb3JpZ2luYXRpbmdGcmFtZSBXS19BUElfQVZBSUxBQkxF
KG1hY29zKFdLX01BQ19UQkEpLCBpb3MoV0tfSU9TX1RCQSkpOwogCiBAZW5kCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRG93bmxvYWQubW0KaW5kZXggNjUzZmQx
MWQxNzY1NDQ1NDAwYmYzYjdkNzc2ZTI1MDcwMzcyNzNmNC4uZDFhNjgzZGQyZTY4ZTk5NjNkZWM5
ZjI4ZmY2ODBlOGI0MTJjYzM0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0Rvd25sb2FkLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tEb3dubG9hZC5tbQpAQCAtMjcsNiArMjcsNyBAQAogI2ltcG9ydCAiX1dLRG93
bmxvYWRJbnRlcm5hbC5oIgogCiAjaW1wb3J0ICJEb3dubG9hZFByb3h5LmgiCisjaW1wb3J0ICJX
S0ZyYW1lSW5mb0ludGVybmFsLmgiCiAjaW1wb3J0ICJXS05TRGF0YS5oIgogI2ltcG9ydCAiV0tX
ZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgPHd0Zi9XZWFrT2JqQ1B0ci5oPgpAQCAtODMsNiAr
ODQsMTEgQEAgLSAoTlNEYXRhICopcmVzdW1lRGF0YQogICAgIHJldHVybiBXZWJLaXQ6OndyYXBw
ZXIoX2Rvd25sb2FkLT5yZXN1bWVEYXRhKCkpOwogfQogCistIChXS0ZyYW1lSW5mbyAqKW9yaWdp
bmF0aW5nRnJhbWUKK3sKKyAgICByZXR1cm4gV2ViS2l0Ojp3cmFwcGVyKCZfZG93bmxvYWQtPmZy
YW1lSW5mbygpKTsKK30KKwogLSAoaWQpY29weVdpdGhab25lOihOU1pvbmUgKil6b25lCiB7CiAg
ICAgcmV0dXJuIFtzZWxmIHJldGFpbl07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eS5jcHAKaW5kZXggNjYzZWE1MjZlZDgwMjI2YmExM2Jl
MjMzOTUxMmM4MmYxZDVmMjE1YS4uNjVlZDMwMDRhYTBiMGRkNTAxMWZhOWI2NmU4MmQ2NmM4ODYx
MTBlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZFByb3h5LmNwcApAQCAtMjgsOSArMjgsMTEgQEAKIAogI2luY2x1ZGUgIkFQSURhdGEuaCIK
ICNpbmNsdWRlICJBUElEb3dubG9hZENsaWVudC5oIgorI2luY2x1ZGUgIkFQSUZyYW1lSW5mby5o
IgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkuaCIKICNpbmNsdWRlICJE
YXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1hcC5oIgorI2luY2x1ZGUg
IkZyYW1lSW5mb0RhdGEuaCIKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5o
IgpAQCAtNTAsMTggKzUyLDE1IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZURvd25sb2FkSUQo
KQogICAgIHN0YXRpYyB1aW50NjRfdCB1bmlxdWVEb3dubG9hZElEID0gMDsKICAgICByZXR1cm4g
Kyt1bmlxdWVEb3dubG9hZElEOwogfQotICAgIAotUmVmPERvd25sb2FkUHJveHk+IERvd25sb2Fk
UHJveHk6OmNyZWF0ZShEb3dubG9hZFByb3h5TWFwJiBkb3dubG9hZFByb3h5TWFwLCBXZWJzaXRl
RGF0YVN0b3JlJiBkYXRhU3RvcmUsIFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXNvdXJjZVJlcXVlc3QpCi17Ci0gICAgcmV0dXJuIGFkb3B0UmVm
KCpuZXcgRG93bmxvYWRQcm94eShkb3dubG9hZFByb3h5TWFwLCBkYXRhU3RvcmUsIHByb2Nlc3NQ
b29sLCByZXNvdXJjZVJlcXVlc3QpKTsKLX0KIAotRG93bmxvYWRQcm94eTo6RG93bmxvYWRQcm94
eShEb3dubG9hZFByb3h5TWFwJiBkb3dubG9hZFByb3h5TWFwLCBXZWJzaXRlRGF0YVN0b3JlJiBk
YXRhU3RvcmUsIFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXNvdXJjZVJlcXVlc3QpCitEb3dubG9hZFByb3h5OjpEb3dubG9hZFByb3h5KERvd25s
b2FkUHJveHlNYXAmIGRvd25sb2FkUHJveHlNYXAsIFdlYnNpdGVEYXRhU3RvcmUmIGRhdGFTdG9y
ZSwgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
c291cmNlUmVxdWVzdCwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvRGF0YSwgV2ViUGFn
ZVByb3h5KiBvcmlnaW5hdGluZ1BhZ2UpCiAgICAgOiBtX2Rvd25sb2FkUHJveHlNYXAoZG93bmxv
YWRQcm94eU1hcCkKICAgICAsIG1fZGF0YVN0b3JlKCZkYXRhU3RvcmUpCiAgICAgLCBtX3Byb2Nl
c3NQb29sKCZwcm9jZXNzUG9vbCkKICAgICAsIG1fZG93bmxvYWRJRChnZW5lcmF0ZURvd25sb2Fk
SUQoKSkKICAgICAsIG1fcmVxdWVzdChyZXNvdXJjZVJlcXVlc3QpCisgICAgLCBtX29yaWdpbmF0
aW5nUGFnZShtYWtlV2Vha1B0cihvcmlnaW5hdGluZ1BhZ2UpKQorICAgICwgbV9mcmFtZUluZm8o
QVBJOjpGcmFtZUluZm86OmNyZWF0ZShGcmFtZUluZm9EYXRhIHsgZnJhbWVJbmZvRGF0YSB9LCBv
cmlnaW5hdGluZ1BhZ2UpKQogewogfQogCkBAIC0xMDAsMTEgKzk5LDYgQEAgV2ViUGFnZVByb3h5
KiBEb3dubG9hZFByb3h5OjpvcmlnaW5hdGluZ1BhZ2UoKSBjb25zdAogICAgIHJldHVybiBtX29y
aWdpbmF0aW5nUGFnZS5nZXQoKTsKIH0KIAotdm9pZCBEb3dubG9hZFByb3h5OjpzZXRPcmlnaW5h
dGluZ1BhZ2UoV2ViUGFnZVByb3h5KiBwYWdlKQotewotICAgIG1fb3JpZ2luYXRpbmdQYWdlID0g
bWFrZVdlYWtQdHIocGFnZSk7Ci19Ci0KICNpZiBQTEFURk9STShDT0NPQSkKIHZvaWQgRG93bmxv
YWRQcm94eTo6cHVibGlzaFByb2dyZXNzKGNvbnN0IFVSTCYgVVJMKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5LmgKaW5kZXggY2QwYjAw
ZTU3MzExNGU3NzkzNmNiNzhkNzE4NWM1NjA5N2NlZTgzZS4uYTBjY2JlMDY2M2MzYzEyNjQzNzcw
NGJjYzhmOTFiNDcyNGNjY2E5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
RG93bmxvYWRzL0Rvd25sb2FkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9E
b3dubG9hZHMvRG93bmxvYWRQcm94eS5oCkBAIC0zNiw2ICszNiw3IEBACiAKIG5hbWVzcGFjZSBB
UEkgewogY2xhc3MgRGF0YTsKK2NsYXNzIEZyYW1lSW5mbzsKIH0KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpAQCAtNTQsOSArNTUsMTUgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgV2ViUHJv
Y2Vzc1Bvb2w7CiBjbGFzcyBXZWJzaXRlRGF0YVN0b3JlOwogCitzdHJ1Y3QgRnJhbWVJbmZvRGF0
YTsKKwogY2xhc3MgRG93bmxvYWRQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpP
YmplY3Q6OlR5cGU6OkRvd25sb2FkPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgUmVmPERvd25sb2FkUHJveHk+IGNyZWF0ZShEb3dubG9hZFByb3h5
TWFwJiwgV2Vic2l0ZURhdGFTdG9yZSYsIFdlYlByb2Nlc3NQb29sJiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0Jik7CisKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBBcmdzPiBzdGF0
aWMgUmVmPERvd25sb2FkUHJveHk+IGNyZWF0ZShBcmdzJiYuLi4gYXJncykKKyAgICB7CisgICAg
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERvd25sb2FkUHJveHkoc3RkOjpmb3J3YXJkPEFyZ3M+
KGFyZ3MpLi4uKSk7CisgICAgfQogICAgIH5Eb3dubG9hZFByb3h5KCk7CiAKICAgICBEb3dubG9h
ZElEIGRvd25sb2FkSUQoKSBjb25zdCB7IHJldHVybiBtX2Rvd25sb2FkSUQ7IH0KQEAgLTcyLDcg
Kzc5LDYgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNEb3dubG9hZFByb3h5TWVz
c2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBD
OjpFbmNvZGVyPiYpOwogCiAgICAgV2ViUGFnZVByb3h5KiBvcmlnaW5hdGluZ1BhZ2UoKSBjb25z
dDsKLSAgICB2b2lkIHNldE9yaWdpbmF0aW5nUGFnZShXZWJQYWdlUHJveHkqKTsKIAogICAgIHZv
aWQgc2V0UmVkaXJlY3RDaGFpbihWZWN0b3I8VVJMPiYmIHJlZGlyZWN0Q2hhaW4pIHsgbV9yZWRp
cmVjdENoYWluID0gV1RGTW92ZShyZWRpcmVjdENoYWluKTsgfQogICAgIGNvbnN0IFZlY3RvcjxV
Ukw+JiByZWRpcmVjdENoYWluKCkgY29uc3QgeyByZXR1cm4gbV9yZWRpcmVjdENoYWluOyB9CkBA
IC05OCw4ICsxMDQsMTAgQEAgcHVibGljOgogICAgIHZvaWQgcHVibGlzaFByb2dyZXNzKGNvbnN0
IFVSTCYpOwogI2VuZGlmCiAKKyAgICBBUEk6OkZyYW1lSW5mbyYgZnJhbWVJbmZvKCkgeyByZXR1
cm4gbV9mcmFtZUluZm8uZ2V0KCk7IH0KKwogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBEb3dubG9h
ZFByb3h5KERvd25sb2FkUHJveHlNYXAmLCBXZWJzaXRlRGF0YVN0b3JlJiwgV2ViUHJvY2Vzc1Bv
b2wmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKKyAgICBleHBsaWNpdCBEb3du
bG9hZFByb3h5KERvd25sb2FkUHJveHlNYXAmLCBXZWJzaXRlRGF0YVN0b3JlJiwgV2ViUHJvY2Vz
c1Bvb2wmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBjb25zdCBGcmFtZUluZm9E
YXRhJiwgV2ViUGFnZVByb3h5Kik7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAg
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikg
b3ZlcnJpZGU7CkBAIC0xMzIsNiArMTQwLDcgQEAgcHJpdmF0ZToKICAgICBXZWFrUHRyPFdlYlBh
Z2VQcm94eT4gbV9vcmlnaW5hdGluZ1BhZ2U7CiAgICAgVmVjdG9yPFVSTD4gbV9yZWRpcmVjdENo
YWluOwogICAgIGJvb2wgbV93YXNVc2VySW5pdGlhdGVkIHsgdHJ1ZSB9OworICAgIFJlZjxBUEk6
OkZyYW1lSW5mbz4gbV9mcmFtZUluZm87CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5
TWFwLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5
TWFwLmNwcAppbmRleCA0OTJkNTUwMDJkMDQ0MjUxYjZjMTRiYWFlMGI4MGJmMTM1YmUyYzQzLi43
MGM0YjZjZWYzZWM3ODMzYTgwYTVlYmMzYWI4Mjg1NDI0M2YwZTAwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWRQcm94eU1hcC5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJveHlNYXAuY3BwCkBA
IC04MCw5ICs4MCw5IEBAIHZvaWQgRG93bmxvYWRQcm94eU1hcDo6YXBwbGljYXRpb25XaWxsRW50
ZXJGb3JlZ3JvdW5kKCkKICAgICAgICAgbV9wcm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6QXBwbGljYXRpb25XaWxsRW50ZXJGb3JlZ3JvdW5kKCksIDApOwogfQogCi1Eb3du
bG9hZFByb3h5JiBEb3dubG9hZFByb3h5TWFwOjpjcmVhdGVEb3dubG9hZFByb3h5KFdlYnNpdGVE
YXRhU3RvcmUmIGRhdGFTdG9yZSwgV2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sLCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkKK0Rvd25sb2FkUHJveHkm
IERvd25sb2FkUHJveHlNYXA6OmNyZWF0ZURvd25sb2FkUHJveHkoV2Vic2l0ZURhdGFTdG9yZSYg
ZGF0YVN0b3JlLCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0LCBjb25zdCBGcmFtZUluZm9EYXRhJiBmcmFt
ZUluZm8sIFdlYlBhZ2VQcm94eSogb3JpZ2luYXRpbmdQYWdlKQogewotICAgIGF1dG8gZG93bmxv
YWRQcm94eSA9IERvd25sb2FkUHJveHk6OmNyZWF0ZSgqdGhpcywgZGF0YVN0b3JlLCBwcm9jZXNz
UG9vbCwgcmVzb3VyY2VSZXF1ZXN0KTsKKyAgICBhdXRvIGRvd25sb2FkUHJveHkgPSBEb3dubG9h
ZFByb3h5OjpjcmVhdGUoKnRoaXMsIGRhdGFTdG9yZSwgcHJvY2Vzc1Bvb2wsIHJlc291cmNlUmVx
dWVzdCwgZnJhbWVJbmZvLCBvcmlnaW5hdGluZ1BhZ2UpOwogICAgIG1fZG93bmxvYWRzLnNldChk
b3dubG9hZFByb3h5LT5kb3dubG9hZElEKCksIGRvd25sb2FkUHJveHkuY29weVJlZigpKTsKIAog
ICAgIFJFTEVBU0VfTE9HKExvYWRpbmcsICJBZGRpbmcgZG93bmxvYWQgJSIgUFJJdTY0ICIgdG8g
VUlQcm9jZXNzIERvd25sb2FkUHJveHlNYXAiLCBkb3dubG9hZFByb3h5LT5kb3dubG9hZElEKCku
ZG93bmxvYWRJRCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25s
b2Fkcy9Eb3dubG9hZFByb3h5TWFwLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Eb3dubG9h
ZHMvRG93bmxvYWRQcm94eU1hcC5oCmluZGV4IDNmNTA1YjEwNjM5ZjVkMGYzNTI1ODY3YjZiNmE5
M2IzN2FlODVlZjYuLjQ1MjM1YjJjMWM3ZjYzYTdmN2JkMTFiOTdkZmNlYzFlYzIwMTMwYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZFByb3h5
TWFwLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2FkUHJv
eHlNYXAuaApAQCAtNDQsNiArNDQsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIERvd25s
b2FkUHJveHk7CiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5OwogY2xhc3MgUHJvY2Vzc0Fzc2Vy
dGlvbjsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xhc3Mg
V2Vic2l0ZURhdGFTdG9yZTsKIApAQCAtNTUsNyArNTYsNyBAQCBwdWJsaWM6CiAgICAgZXhwbGlj
aXQgRG93bmxvYWRQcm94eU1hcChOZXR3b3JrUHJvY2Vzc1Byb3h5Jik7CiAgICAgfkRvd25sb2Fk
UHJveHlNYXAoKTsKIAotICAgIERvd25sb2FkUHJveHkmIGNyZWF0ZURvd25sb2FkUHJveHkoV2Vi
c2l0ZURhdGFTdG9yZSYsIFdlYlByb2Nlc3NQb29sJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VS
ZXF1ZXN0Jik7CisgICAgRG93bmxvYWRQcm94eSYgY3JlYXRlRG93bmxvYWRQcm94eShXZWJzaXRl
RGF0YVN0b3JlJiwgV2ViUHJvY2Vzc1Bvb2wmLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmLCBjb25zdCBGcmFtZUluZm9EYXRhJiwgV2ViUGFnZVByb3h5KiBvcmlnaW5hdGluZ1BhZ2Up
OwogICAgIHZvaWQgZG93bmxvYWRGaW5pc2hlZChEb3dubG9hZFByb3h5Jik7CiAKICAgICBib29s
IGlzRW1wdHkoKSBjb25zdCB7IHJldHVybiBtX2Rvd25sb2Fkcy5pc0VtcHR5KCk7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94
eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJv
eHkuY3BwCmluZGV4IDA5OGJkNWFkYTdlY2FiZWNhZTQ0NmQxNTQ1YjJmZmU5MzRjNWRhMGYuLmNm
Mjc0NGI1MDUyZjc1N2FhYjliMWViYWQyMmQ4NzM1YjQ3ZWRjMWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApA
QCAtMTgyLDEyICsxODIsMTIgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzeW50aGVzaXpl
QXBwSXNCYWNrZ3JvdW5kKGJvb2wgYmFja2dyb3VuZCkKICAgICB9CiB9CiAKLURvd25sb2FkUHJv
eHkmIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNyZWF0ZURvd25sb2FkUHJveHkoV2Vic2l0ZURhdGFT
dG9yZSYgZGF0YVN0b3JlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkK
K0Rvd25sb2FkUHJveHkmIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNyZWF0ZURvd25sb2FkUHJveHko
V2Vic2l0ZURhdGFTdG9yZSYgZGF0YVN0b3JlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291
cmNlUmVxdWVzdCwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvLCBXZWJQYWdlUHJveHkq
IG9yaWdpbmF0aW5nUGFnZSkKIHsKICAgICBpZiAoIW1fZG93bmxvYWRQcm94eU1hcCkKICAgICAg
ICAgbV9kb3dubG9hZFByb3h5TWFwID0gbWFrZVVuaXF1ZTxEb3dubG9hZFByb3h5TWFwPigqdGhp
cyk7CiAKLSAgICByZXR1cm4gbV9kb3dubG9hZFByb3h5TWFwLT5jcmVhdGVEb3dubG9hZFByb3h5
KGRhdGFTdG9yZSwgbV9wcm9jZXNzUG9vbCwgcmVzb3VyY2VSZXF1ZXN0KTsKKyAgICByZXR1cm4g
bV9kb3dubG9hZFByb3h5TWFwLT5jcmVhdGVEb3dubG9hZFByb3h5KGRhdGFTdG9yZSwgbV9wcm9j
ZXNzUG9vbCwgcmVzb3VyY2VSZXF1ZXN0LCBmcmFtZUluZm8sIG9yaWdpbmF0aW5nUGFnZSk7CiB9
CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgT3B0
aW9uU2V0PFdlYnNpdGVEYXRhRmV0Y2hPcHRpb24+IGZldGNoT3B0aW9ucywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCAoV2Vic2l0ZURhdGEpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApp
bmRleCBhMDIyMjI5Y2I3ZGExMjg5ZDE5NzNkOTQ4YmQzYTQwYWQzZGI2Yzk3Li42MmE2ZDM4NDI2
NGY5YmIwNmMzNmMzNGFmOWY4ZTJlMzFiNjkzM2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtNjMsNiArNjMs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIERv
d25sb2FkUHJveHlNYXA7CitjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzUG9v
bDsKIGNsYXNzIFdlYlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OwogCkBAIC03MSw2ICs3Miw3
IEBAIGVudW0gY2xhc3MgU3RvcmFnZUFjY2Vzc1N0YXR1cyA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNz
IFdlYnNpdGVEYXRhRmV0Y2hPcHRpb247CiBlbnVtIGNsYXNzIFdlYnNpdGVEYXRhVHlwZTsKIAor
c3RydWN0IEZyYW1lSW5mb0RhdGE7CiBzdHJ1Y3QgTmV0d29ya1Byb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM7CiBzdHJ1Y3QgUmVzb3VyY2VMb2FkSW5mbzsKIHN0cnVjdCBXZWJzaXRlRGF0YTsKQEAg
LTk1LDcgKzk3LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBnZXROZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb24oV2ViUHJvY2Vzc1Byb3h5JiwgTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0TmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uRGVsYXllZFJlcGx5JiYpOwogCi0gICAgRG93bmxvYWRQcm94
eSYgY3JlYXRlRG93bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0Jik7CisgICAgRG93bmxvYWRQcm94eSYgY3JlYXRlRG93bmxvYWRQcm94
eShXZWJzaXRlRGF0YVN0b3JlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgRnJhbWVJbmZvRGF0YSYsIFdlYlBhZ2VQcm94eSogb3JpZ2luYXRpbmdQYWdlKTsKIAogICAg
IHZvaWQgZmV0Y2hXZWJzaXRlRGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVE
YXRhVHlwZT4sIE9wdGlvblNldDxXZWJzaXRlRGF0YUZldGNoT3B0aW9uPiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChXZWJzaXRlRGF0YSk+JiYpOwogICAgIHZvaWQgZGVsZXRlV2Vic2l0ZURhdGEo
UEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBXYWxsVGltZSBtb2Rp
ZmllZFNpbmNlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggMzE1MmUxMjk3
YzYwMmFjMTRlZGVhZmQ3MDRhOWZmYTA4NWFiMWUxMy4uMjZhY2I1OGJhMDYxMTJmYTVhZTY3NGM1
NDk0YjZhNjIzMjM2MzczNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC0zMTQ3LDcgKzMxNDcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6cmVjZWl2ZWRQb2xp
Y3lEZWNpc2lvbihQb2xpY3lBY3Rpb24gYWN0aW9uLCBBUEk6Ok5hdmlnYXRpb24qCiAgICAgRG93
bmxvYWRJRCBkb3dubG9hZElEID0geyB9OwogICAgIGlmIChhY3Rpb24gPT0gUG9saWN5QWN0aW9u
OjpEb3dubG9hZCkgewogICAgICAgICAvLyBDcmVhdGUgYSBkb3dubG9hZCBwcm94eS4KLSAgICAg
ICAgYXV0byYgZG93bmxvYWQgPSBtX3Byb2Nlc3MtPnByb2Nlc3NQb29sKCkuY3JlYXRlRG93bmxv
YWRQcm94eShtX3dlYnNpdGVEYXRhU3RvcmUsIG1fZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VSZXF1
ZXN0LCB0aGlzKTsKKyAgICAgICAgYXV0byYgZG93bmxvYWQgPSBtX3Byb2Nlc3MtPnByb2Nlc3NQ
b29sKCkuY3JlYXRlRG93bmxvYWRQcm94eShtX3dlYnNpdGVEYXRhU3RvcmUsIG1fZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VSZXF1ZXN0LCB0aGlzLCBuYXZpZ2F0aW9uID8gbmF2aWdhdGlvbi0+b3Jp
Z2luYXRpbmdGcmFtZUluZm8oKSA6IEZyYW1lSW5mb0RhdGEgeyB9KTsKICAgICAgICAgaWYgKG5h
dmlnYXRpb24pIHsKICAgICAgICAgICAgIGRvd25sb2FkLnNldFdhc1VzZXJJbml0aWF0ZWQobmF2
aWdhdGlvbi0+d2FzVXNlckluaXRpYXRlZCgpKTsKICAgICAgICAgICAgIGRvd25sb2FkLnNldFJl
ZGlyZWN0Q2hhaW4obmF2aWdhdGlvbi0+dGFrZVJlZGlyZWN0Q2hhaW4oKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggZTFjZTNhMTdkNWM2ZDM4YTEy
ZTU0Y2MxZjQ1Zjk1MWMxNmIyOTBkNi4uM2FhNTdhOTU1OTQ1NTU5ZWUzMzkzNjk4ZDA3YTIwNjdi
ZjBlYTViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApA
QCAtMTM1MCw3ICsxMzUwLDcgQEAgYm9vbCBXZWJQcm9jZXNzUG9vbDo6aGFzUGFnZXNVc2luZ1dl
YnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZSYgZGF0YVN0b3JlKQogCiBEb3dubG9hZFBy
b3h5JiBXZWJQcm9jZXNzUG9vbDo6ZG93bmxvYWQoV2Vic2l0ZURhdGFTdG9yZSYgZGF0YVN0b3Jl
LCBXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUpCiB7Ci0gICAgYXV0byYgZG93
bmxvYWRQcm94eSA9IGNyZWF0ZURvd25sb2FkUHJveHkoZGF0YVN0b3JlLCByZXF1ZXN0LCBpbml0
aWF0aW5nUGFnZSk7CisgICAgYXV0byYgZG93bmxvYWRQcm94eSA9IGNyZWF0ZURvd25sb2FkUHJv
eHkoZGF0YVN0b3JlLCByZXF1ZXN0LCBpbml0aWF0aW5nUGFnZSwgeyB9KTsKICAgICBQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQgPSBkYXRhU3RvcmUuc2Vzc2lvbklEKCk7CiAKICAgICBpZiAoaW5p
dGlhdGluZ1BhZ2UpCkBAIC0xMzgyLDcgKzEzODIsNyBAQCBEb3dubG9hZFByb3h5JiBXZWJQcm9j
ZXNzUG9vbDo6ZG93bmxvYWQoV2Vic2l0ZURhdGFTdG9yZSYgZGF0YVN0b3JlLCBXZWJQYWdlUHJv
eAogCiBEb3dubG9hZFByb3h5JiBXZWJQcm9jZXNzUG9vbDo6cmVzdW1lRG93bmxvYWQoV2Vic2l0
ZURhdGFTdG9yZSYgZGF0YVN0b3JlLCBXZWJQYWdlUHJveHkqIGluaXRpYXRpbmdQYWdlLCBjb25z
dCBBUEk6OkRhdGEmIHJlc3VtZURhdGEsIGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICBhdXRv
JiBkb3dubG9hZFByb3h5ID0gY3JlYXRlRG93bmxvYWRQcm94eShkYXRhU3RvcmUsIFJlc291cmNl
UmVxdWVzdCgpLCBpbml0aWF0aW5nUGFnZSk7CisgICAgYXV0byYgZG93bmxvYWRQcm94eSA9IGNy
ZWF0ZURvd25sb2FkUHJveHkoZGF0YVN0b3JlLCBSZXNvdXJjZVJlcXVlc3QoKSwgaW5pdGlhdGlu
Z1BhZ2UsIHsgfSk7CiAgICAgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEID0gZGF0YVN0b3JlLnNl
c3Npb25JRCgpOwogCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNp
b25IYW5kbGU7CkBAIC0xNjMyLDExICsxNjMyLDkgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c2V0
RGVmYXVsdFJlcXVlc3RUaW1lb3V0SW50ZXJ2YWwoZG91YmxlIHRpbWVvdXRJbnRlcnZhbCkKICAg
ICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldERlZmF1bHRSZXF1
ZXN0VGltZW91dEludGVydmFsKHRpbWVvdXRJbnRlcnZhbCkpOwogfQogCi1Eb3dubG9hZFByb3h5
JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlRG93bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiBk
YXRhU3RvcmUsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgV2ViUGFnZVByb3h5KiBv
cmlnaW5hdGluZ1BhZ2UpCitEb3dubG9hZFByb3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlRG93
bmxvYWRQcm94eShXZWJzaXRlRGF0YVN0b3JlJiBkYXRhU3RvcmUsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgV2ViUGFnZVByb3h5KiBvcmlnaW5hdGluZ1BhZ2UsIGNvbnN0IEZyYW1l
SW5mb0RhdGEmIGZyYW1lSW5mbykKIHsKLSAgICBhdXRvJiBkb3dubG9hZFByb3h5ID0gZW5zdXJl
TmV0d29ya1Byb2Nlc3MoKS5jcmVhdGVEb3dubG9hZFByb3h5KGRhdGFTdG9yZSwgcmVxdWVzdCk7
Ci0gICAgZG93bmxvYWRQcm94eS5zZXRPcmlnaW5hdGluZ1BhZ2Uob3JpZ2luYXRpbmdQYWdlKTsK
LSAgICByZXR1cm4gZG93bmxvYWRQcm94eTsKKyAgICByZXR1cm4gZW5zdXJlTmV0d29ya1Byb2Nl
c3MoKS5jcmVhdGVEb3dubG9hZFByb3h5KGRhdGFTdG9yZSwgcmVxdWVzdCwgZnJhbWVJbmZvLCBv
cmlnaW5hdGluZ1BhZ2UpOwogfQogCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpzeW50aGVzaXplQXBw
SXNCYWNrZ3JvdW5kKGJvb2wgYmFja2dyb3VuZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5oCmluZGV4IDY0YjFkYmNlNGM5MDc1MzY5OTliMWMyYTVlYjMxNDY3MGY0MjNl
MWUuLjU2MjJmYzU3NGY2MmM0ODJkZWFiY2M1MjM0MjFjZTI3MmNjNzFlYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMzAwLDcgKzMwMCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldEVuaGFuY2VkQWNjZXNzaWJpbGl0eShib29sKTsKICAgICAKICAgICAv
LyBEb3dubG9hZHMuCi0gICAgRG93bmxvYWRQcm94eSYgY3JlYXRlRG93bmxvYWRQcm94eShXZWJz
aXRlRGF0YVN0b3JlJiwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViUGFnZVBy
b3h5KiBvcmlnaW5hdGluZ1BhZ2UpOworICAgIERvd25sb2FkUHJveHkmIGNyZWF0ZURvd25sb2Fk
UHJveHkoV2Vic2l0ZURhdGFTdG9yZSYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IFdlYlBhZ2VQcm94eSogb3JpZ2luYXRpbmdQYWdlLCBjb25zdCBGcmFtZUluZm9EYXRhJik7CiAg
ICAgQVBJOjpEb3dubG9hZENsaWVudCYgZG93bmxvYWRDbGllbnQoKSB7IHJldHVybiBtX2Rvd25s
b2FkQ2xpZW50LmdldCgpOyB9CiAKICAgICBBUEk6OkxlZ2FjeUNvbnRleHRIaXN0b3J5Q2xpZW50
JiBoaXN0b3J5Q2xpZW50KCkgeyByZXR1cm4gKm1faGlzdG9yeUNsaWVudDsgfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc0OTM3YjA3ZTRkMjY2
ZWNjODQ5MWY3OGIzMTJhYmVkYTQyMTBlODUuLmQwNjBkZWVkMGI4ODYyYWQ5MGJhMzUyZWRhNzA0
ZTNlNThkNzQyYzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wMi0wNSAgQnJhZHkgRWlkc29uICA8YmVpZHNv
bkBhcHBsZS5jb20+CisKKyAgICAgICAgX1dLRG93bmxvYWQgc2hvdWxkIGV4cG9zZSB0aGUgb3Jp
Z2luYXRpbmcgRnJhbWVJbmZvLgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgwMjI1NzY+IGFu
ZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA3MTg1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgR2VvZmYgR2FyZW4uCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0Rvd25sb2FkLm1tOgorICAgICAgICAoLVtEb3dubG9hZFRlc3RTY2hl
bWVEZWxlZ2F0ZSB3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZTpkZWNp
c2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW0Rvd25sb2FkU2VjdXJpdHlPcmlnaW5EZWxlZ2F0
ZSBfZG93bmxvYWREaWRTdGFydDpdKToKKyAgICAgICAgKGxvYWRlZCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tOgorCiAyMDIwLTAyLTAzICBKb25hdGhhbiBC
ZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICByZXN1bHRzLndlYmtpdC5vcmc6
IFN1cHBvcnQganNjIHN0cmVzcyB0ZXN0cwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3dubG9hZC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvRG93bmxvYWQubW0KaW5kZXggYmFiOTY1YjA3MDQ1MWQ5M2VkZGJiY2Jm
NGRlOWUwOTg2MjIyYTdhOC4uZWE5YzYwNmNmNWE2ZDg3YTUxODYwZjEzNzc5MDU0ZGVlNmYwYzYz
NCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Eb3du
bG9hZC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0Rvd25s
b2FkLm1tCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JN
KElPUykKIAorI2ltcG9ydCAiSFRUUFNlcnZlci5oIgogI2ltcG9ydCAiUGxhdGZvcm1VdGlsaXRp
ZXMuaCIKICNpbXBvcnQgIlRDUFNlcnZlci5oIgogI2ltcG9ydCAiVGVzdC5oIgpAQCAtMTE0Nyw0
ICsxMTQ4LDcwIEBAIFRFU1QoX1dLRG93bmxvYWQsIFJlc3VtZWREb3dubG9hZENhbkhhbmRsZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKQogICAgIFV0aWw6OnJ1bigmaXNEb25lKTsKIH0KIAorQGlu
dGVyZmFjZSBEb3dubG9hZFRlc3RTY2hlbWVEZWxlZ2F0ZSA6IE5TT2JqZWN0IDxXS05hdmlnYXRp
b25EZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIERvd25sb2FkVGVzdFNjaGVtZURl
bGVnYXRlCistICh2b2lkKXdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5
Rm9yTmF2aWdhdGlvblJlc3BvbnNlOihXS05hdmlnYXRpb25SZXNwb25zZSAqKW5hdmlnYXRpb25S
ZXNwb25zZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvblJlc3BvbnNlUG9s
aWN5KSlkZWNpc2lvbkhhbmRsZXIKK3sKKyAgICBpZiAoW25hdmlnYXRpb25SZXNwb25zZS5yZXNw
b25zZS5VUkwuYWJzb2x1dGVTdHJpbmcgaGFzU3VmZml4OkAiL2Rvd25sb2FkIl0pCisgICAgICAg
IGRlY2lzaW9uSGFuZGxlcihfV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lCZWNvbWVEb3dubG9h
ZCk7CisgICAgZWxzZQorICAgICAgICBkZWNpc2lvbkhhbmRsZXIoV0tOYXZpZ2F0aW9uUmVzcG9u
c2VQb2xpY3lBbGxvdyk7Cit9CitAZW5kCisKK0BpbnRlcmZhY2UgRG93bmxvYWRTZWN1cml0eU9y
aWdpbkRlbGVnYXRlIDogTlNPYmplY3QgPF9XS0Rvd25sb2FkRGVsZWdhdGU+CitAZW5kCisKK0Bp
bXBsZW1lbnRhdGlvbiBEb3dubG9hZFNlY3VyaXR5T3JpZ2luRGVsZWdhdGUgeworQHB1YmxpYwor
ICAgIHVpbnQxNl90IF9zZXJ2ZXJQb3J0OworICAgIFdLV2ViVmlldyAqX3dlYlZpZXc7Cit9CisK
Ky0gKHZvaWQpX2Rvd25sb2FkRGlkU3RhcnQ6KF9XS0Rvd25sb2FkICopZG93bmxvYWQKK3sKKyAg
ICBFWFBFQ1RfVFJVRShbZG93bmxvYWQub3JpZ2luYXRpbmdGcmFtZS5zZWN1cml0eU9yaWdpbi5w
cm90b2NvbCBpc0VxdWFsVG9TdHJpbmc6QCJodHRwIl0pOworICAgIEVYUEVDVF9UUlVFKFtkb3du
bG9hZC5vcmlnaW5hdGluZ0ZyYW1lLnNlY3VyaXR5T3JpZ2luLmhvc3QgaXNFcXVhbFRvU3RyaW5n
OkAiMTI3LjAuMC4xIl0pOworICAgIEVYUEVDVF9FUShkb3dubG9hZC5vcmlnaW5hdGluZ0ZyYW1l
LnNlY3VyaXR5T3JpZ2luLnBvcnQsIF9zZXJ2ZXJQb3J0KTsKKyAgICBFWFBFQ1RfRkFMU0UoZG93
bmxvYWQub3JpZ2luYXRpbmdGcmFtZS5tYWluRnJhbWUpOworICAgIEVYUEVDVF9FUShkb3dubG9h
ZC5vcmlnaW5hdGluZ0ZyYW1lLndlYlZpZXcsIF93ZWJWaWV3KTsKKyAgICBpc0RvbmUgPSB0cnVl
OworfQorCitAZW5kCisKK3N0YXRpYyBjb25zdCBjaGFyKiBkb2N1bWVudFRleHQgPSBSIkRPQ0RP
Q0RPQygKKzxzY3JpcHQ+CitmdW5jdGlvbiBsb2FkZWQoKQoreworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0aGVsaW5rIikuY2xpY2soKTsKK30KKzwvc2NyaXB0PgorPGJvZHkgb25sb2Fk
PSJsb2FkZWQoKTsiPgorPGEgaWQ9InRoZWxpbmsiIGhyZWY9ImRvd25sb2FkIj5DbGljayBtZTwv
YT4KKzwvYm9keT4KKylET0NET0NET0MiOworCitURVNUKF9XS0Rvd25sb2FkLCBTdWJmcmFtZVNl
Y3VyaXR5T3JpZ2luKQoreworICAgIGF1dG8gbmF2aWdhdGlvbkRlbGVnYXRlID0gYWRvcHROUyhb
W0Rvd25sb2FkVGVzdFNjaGVtZURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgYXV0byBkb3du
bG9hZERlbGVnYXRlID0gYWRvcHROUyhbW0Rvd25sb2FkU2VjdXJpdHlPcmlnaW5EZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pOworCisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBh
bGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKV0pOworICAgIFt3
ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCldOwor
ICAgIFtbW3dlYlZpZXcgY29uZmlndXJhdGlvbl0gcHJvY2Vzc1Bvb2xdIF9zZXREb3dubG9hZERl
bGVnYXRlOmRvd25sb2FkRGVsZWdhdGUuZ2V0KCldOworCisgICAgVGVzdFdlYktpdEFQSTo6SFRU
UFNlcnZlciBzZXJ2ZXIoeworICAgICAgICB7ICIvcGFnZSIsIHsgZG9jdW1lbnRUZXh0IH0gfSwK
KyAgICAgICAgeyAiL2Rvd25sb2FkIiwgeyBkb2N1bWVudFRleHQgfSB9LAorICAgIH0pOworICAg
IGRvd25sb2FkRGVsZWdhdGUtPl9zZXJ2ZXJQb3J0ID0gc2VydmVyLnBvcnQoKTsKKyAgICBkb3du
bG9hZERlbGVnYXRlLT5fd2ViVmlldyA9IHdlYlZpZXcuZ2V0KCk7CisKKyAgICBpc0RvbmUgPSBm
YWxzZTsKKyAgICBbd2ViVmlldyBsb2FkSFRNTFN0cmluZzpbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAIjxib2R5PjxpZnJhbWUgc3JjPSdodHRwOi8vMTI3LjAuMC4xOiVkL3BhZ2UnPjwvaWZy
YW1lPjwvYm9keT4iLCBzZXJ2ZXIucG9ydCgpXSBiYXNlVVJMOm5pbF07CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworfQogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQ
U2VydmVyLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9jb2NvYS9IVFRQU2VydmVyLm1tCmluZGV4
IDNjYjMyOTA0NmM1YzVmYTQ1NmI1Nzk1ZGEyZjg1ZjUzZGRmMjI2YWMuLjBmNGIwM2VhYTE0YWZj
M2EzZGE3NDk5ZjZjNWEyOWYxM2RhZTExYjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvY29jb2EvSFRUUFNlcnZlci5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2NvY29hL0hU
VFBTZXJ2ZXIubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEhBVkUoTkVUV09SS19GUkFNRVdP
UkspCiAKKyNpbXBvcnQgIlV0aWxpdGllcy5oIgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nQnVp
bGRlci5oPgogI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQ5LDcgKzUwLDE0
IEBAIEhUVFBTZXJ2ZXI6OkhUVFBTZXJ2ZXIoc3RkOjppbml0aWFsaXplcl9saXN0PHN0ZDo6cGFp
cjxTdHJpbmcsIEhUVFBSZXNwb25zZT4+IHJlCiAgICAgICAgIG53X2Nvbm5lY3Rpb25fc3RhcnQo
Y29ubmVjdGlvbik7CiAgICAgICAgIHJlc3BvbmRUb1JlcXVlc3RzKGNvbm5lY3Rpb24pOwogICAg
IH0pOworICAgIF9fYmxvY2sgYm9vbCByZWFkeSA9IGZhbHNlOworICAgIG53X2xpc3RlbmVyX3Nl
dF9zdGF0ZV9jaGFuZ2VkX2hhbmRsZXIobV9saXN0ZW5lci5nZXQoKSwgXihud19saXN0ZW5lcl9z
dGF0ZV90IHN0YXRlLCBud19lcnJvcl90IGVycm9yKSB7CisgICAgICAgIEFTU0VSVF9VTlVTRUQo
ZXJyb3IsICFlcnJvcik7CisgICAgICAgIGlmIChzdGF0ZSA9PSBud19saXN0ZW5lcl9zdGF0ZV9y
ZWFkeSkKKyAgICAgICAgICAgIHJlYWR5ID0gdHJ1ZTsKKyAgICB9KTsKICAgICBud19saXN0ZW5l
cl9zdGFydChtX2xpc3RlbmVyLmdldCgpKTsKKyAgICBVdGlsOjpydW4oJnJlYWR5KTsKIH0KIAog
c3RhdGljIFN0cmluZyBzdGF0dXNUZXh0KHVuc2lnbmVkIHN0YXR1c0NvZGUpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>