<?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>225768</bug_id>
          
          <creation_ts>2021-05-13 09:23:24 -0700</creation_ts>
          <short_desc>Rename FileSystem::directoryName() to FileSystem::parentPath()</short_desc>
          <delta_ts>2021-05-13 13:48:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</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="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>berto</cc>
    
    <cc>calvaris</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>galpeter</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>jer.noble</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>menard</cc>
    
    <cc>msaboff</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>sergio</cc>
    
    <cc>tzagallo</cc>
    
    <cc>vjaquez</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1759712</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-13 09:23:24 -0700</bug_when>
    <thetext>Rename FileSystem::directoryName() to FileSystem::parentPath() for clarity and consistency with std::filesystem::parent_path() which is used internally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759715</commentid>
    <comment_count>1</comment_count>
      <attachid>428523</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-13 09:55:00 -0700</bug_when>
    <thetext>Created attachment 428523
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759717</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-05-13 09:56:26 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759777</commentid>
    <comment_count>3</comment_count>
      <attachid>428523</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-13 12:21:48 -0700</bug_when>
    <thetext>Comment on attachment 428523
Patch

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

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:505
&gt; +        m_queue-&gt;dispatch([fetchOptions, applicationCacheDirectory = m_configuration-&gt;applicationCacheDirectory().isolatedCopy(), applicationCacheFlatFileSubdirectoryName = m_configuration-&gt;applicationCacheFlatFileSubparentPath().isolatedCopy(), callbackAggregator] {

We shouldn&apos;t do this one.

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:730
&gt; +        m_queue-&gt;dispatch([applicationCacheDirectory = m_configuration-&gt;applicationCacheDirectory().isolatedCopy(), applicationCacheFlatFileSubdirectoryName = m_configuration-&gt;applicationCacheFlatFileSubparentPath().isolatedCopy(), callbackAggregator] {

Ditto.

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.cpp:901
&gt; +        m_queue-&gt;dispatch([origins = WTFMove(origins), applicationCacheDirectory = m_configuration-&gt;applicationCacheDirectory().isolatedCopy(), applicationCacheFlatFileSubdirectoryName = m_configuration-&gt;applicationCacheFlatFileSubparentPath().isolatedCopy(), callbackAggregator] {

Ditto.

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStore.h:242
&gt; +    const String&amp; applicationCacheFlatFileSubparentPath() const { return m_configuration-&gt;applicationCacheFlatFileSubparentPath(); }

Ditto.

&gt; Source/WebKit/UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:122
&gt; +    const String&amp; applicationCacheFlatFileSubparentPath() const { return m_applicationCacheFlatFileSubdirectoryName; }
&gt; +    void setApplicationCacheFlatFileSubparentPath(String&amp;&amp; directory) { m_applicationCacheFlatFileSubdirectoryName = WTFMove(directory); }

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759783</commentid>
    <comment_count>4</comment_count>
      <attachid>428546</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-13 12:40:47 -0700</bug_when>
    <thetext>Created attachment 428546
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759784</commentid>
    <comment_count>5</comment_count>
      <attachid>428546</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-05-13 12:41:53 -0700</bug_when>
    <thetext>Comment on attachment 428546
Patch

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

&gt; Source/WebKit/ChangeLog:41
&gt; +        * UIProcess/WebsiteData/WebsiteDataStore.h:
&gt; +        (WebKit::WebsiteDataStore::applicationCacheFlatFileSubparentPath const):
&gt; +        (WebKit::WebsiteDataStore::applicationCacheFlatFileSubdirectoryName const): Deleted.
&gt; +        * UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
&gt; +        (WebKit::WebsiteDataStoreConfiguration::applicationCacheFlatFileSubparentPath const):
&gt; +        (WebKit::WebsiteDataStoreConfiguration::setApplicationCacheFlatFileSubparentPath):
&gt; +        (WebKit::WebsiteDataStoreConfiguration::applicationCacheFlatFileSubdirectoryName const): Deleted.
&gt; +        (WebKit::WebsiteDataStoreConfiguration::setApplicationCacheFlatFileSubdirectoryName): Deleted.

Left over from the old version of the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759790</commentid>
    <comment_count>6</comment_count>
      <attachid>428548</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-13 12:45:36 -0700</bug_when>
    <thetext>Created attachment 428548
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759819</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-13 13:47:46 -0700</bug_when>
    <thetext>Committed r277449 (237697@main): &lt;https://commits.webkit.org/237697@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428548.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759820</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-13 13:48:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/77984809&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428523</attachid>
            <date>2021-05-13 09:55:00 -0700</date>
            <delta_ts>2021-05-13 12:40:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225768-20210513095459.patch</filename>
            <type>text/plain</type>
            <size>39811</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBi
NDE2YmQyMzUwYzJjYTI3YTM2MGZlNmQ3MDcyNDEwODJiOGNjM2ZkLi5iMmM1MGIyOGU1MTFjZTk1
NDVhYTE2N2NmZmU3M2M5ZmQxM2Q1YjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMS0wNS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKCkgdG8gRmlsZVN5c3Rl
bTo6cGFyZW50UGF0aCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjU3NjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBSZW5hbWUgRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSgpIHRvIEZpbGVTeXN0ZW06
OnBhcmVudFBhdGgoKSBmb3IgY2xhcml0eSBhbmQKKyAgICAgICAgY29uc2lzdGVuY3kgd2l0aCBz
dGQ6OmZpbGVzeXN0ZW06OnBhcmVudF9wYXRoKCkgd2hpY2ggaXMgdXNlZCBpbnRlcm5hbGx5Lgor
CisgICAgICAgICogQVBJL0pTU2NyaXB0Lm1tOgorICAgICAgICAodmFsaWRhdGVCeXRlY29kZUNh
Y2hlUGF0aCk6CisKIDIwMjEtMDUtMTIgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNv
bT4KIAogICAgICAgICBDb25zZXJ2YXRpdmVSb290cyB0cmlnZ2VycyBwYWdlIGRlbWFuZCBvbiBT
cGVlZG9tZXRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RG
L0NoYW5nZUxvZwppbmRleCA2YTQyMjg0YzFmNWQ5YTkyMjg5ZDNiYTgzZTBlOGZhNTUwZTcwMmZl
Li5jMmRhZTE2ODYwMTA5ZTUzYjMyNTFhNDQ3YTgzY2I5OTIxYzhiZDY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE5IEBACisyMDIxLTA1LTEzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmVuYW1lIEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUoKSB0byBGaWxlU3lzdGVtOjpw
YXJlbnRQYXRoKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIyNTc2OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbmFtZSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKCkgdG8gRmlsZVN5c3RlbTo6cGFy
ZW50UGF0aCgpIGZvciBjbGFyaXR5IGFuZAorICAgICAgICBjb25zaXN0ZW5jeSB3aXRoIHN0ZDo6
ZmlsZXN5c3RlbTo6cGFyZW50X3BhdGgoKSB3aGljaCBpcyB1c2VkIGludGVybmFsbHkuCisKKyAg
ICAgICAgKiB3dGYvRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBs
OjpyZWFkT3JNYWtlU2FsdCk6CisgICAgICAgIChXVEY6OkZpbGVTeXN0ZW1JbXBsOjpwYXJlbnRQ
YXRoKToKKyAgICAgICAgKFdURjo6RmlsZVN5c3RlbUltcGw6OmRpcmVjdG9yeU5hbWUpOiBEZWxl
dGVkLgorICAgICAgICAqIHd0Zi9GaWxlU3lzdGVtLmg6CisKIDIwMjEtMDUtMTIgIE1hcmsgTGFt
ICA8bWFyay5sYW1AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBzb21lIGNvbW1vbiBC
YXNlbGluZSBKSVQgc2xvdyBwYXRocyB1c2luZyBKSVQgdGh1bmtzLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGE1
MjQ2MzQ3YzQyOThmYmJmOGYyZjA0ZDUzYzg2ZWUwN2ZjMDU1NzguLjkyMDAyMmEwNGQ4ZmRmNDk0
OTI2OTcxZTdkNGVhY2YyNThjYWFhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAy
MS0wNS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFt
ZSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKCkgdG8gRmlsZVN5c3RlbTo6cGFyZW50UGF0aCgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3NjgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUg
RmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSgpIHRvIEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoKSBm
b3IgY2xhcml0eSBhbmQKKyAgICAgICAgY29uc2lzdGVuY3kgd2l0aCBzdGQ6OmZpbGVzeXN0ZW06
OnBhcmVudF9wYXRoKCkgd2hpY2ggaXMgdXNlZCBpbnRlcm5hbGx5LgorCisgICAgICAgICogTW9k
dWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6RE9N
RmlsZVN5c3RlbTo6RE9NRmlsZVN5c3RlbSk6CisgICAgICAgICogbG9hZGVyL2FwcGNhY2hlL0Fw
cGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9u
Q2FjaGVTdG9yYWdlOjp3cml0ZURhdGFUb1VuaXF1ZUZpbGVJbkRpcmVjdG9yeSk6CisgICAgICAg
IChXZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6Y2hlY2tGb3JEZWxldGVkUmVzb3Vy
Y2VzKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpBcHBsaWNh
dGlvbkNhY2hlU3RvcmFnZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL29iamMvQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb24ubW06CisgICAgICAgIChXZWJD
b3JlOjpDRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbjo6Y29udGVudEtleVNlc3Npb24pOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVH
U3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyOjpwdXJnZU9sZERvd25sb2FkRmlsZXMpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
Y3VybC9Db29raWVKYXJEQi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXJEQjo6b3Bl
bkRhdGFiYXNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRmlsZVN5c3RlbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVGaWxlU3lzdGVtOjplbnN1cmVEYXRhYmFzZUZpbGVF
eGlzdHMpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVEQi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVEQjo6b3BlbkRhdGFiYXNlKToKKyAgICAg
ICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2NyaXB0U3RvcmFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTV1NjcmlwdFN0b3JhZ2U6OnN0b3JlKToKKwogMjAyMS0wNS0xMyAgQ2hyaXMg
RmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIEFYOiBDcmFzaCBhdCBX
ZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlTGF5b3V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNmOTA3MDM1MWIxZWFm
MWI5ZGE1MzE2YWZlN2ZhMGUzNWViZjAxMDguLjViOTI4ZGU0OWNmYTM4NDcxMjJmNGVjNDIzOGEw
MTkzZTg0NTk4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMjEtMDUtMTMgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgRmlsZVN5c3RlbTo6
ZGlyZWN0b3J5TmFtZSgpIHRvIEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzY4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIEZpbGVTeXN0ZW06OmRp
cmVjdG9yeU5hbWUoKSB0byBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKCkgZm9yIGNsYXJpdHkgYW5k
CisgICAgICAgIGNvbnNpc3RlbmN5IHdpdGggc3RkOjpmaWxlc3lzdGVtOjpwYXJlbnRfcGF0aCgp
IHdoaWNoIGlzIHVzZWQgaW50ZXJuYWxseS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Ns
YXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6b3BlbklUUERh
dGFiYXNlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdp
bmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6d3JpdGVGaWxl
KToKKyAgICAgICAgKiBTaGFyZWQvZ2xpYi9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhHTGliLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6Z2V0RXhlY3V0YWJsZVBhdGgpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24ubW06CisgICAgICAg
ICgtW19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uIGFwcGxpY2F0aW9uQ2FjaGVGbGF0
RmlsZVN1YmRpcmVjdG9yeU5hbWVdKToKKyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24gc2V0QXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZTpd
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6SWNvbkRhdGFiYXNlOjpJY29uRGF0YWJhc2UpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwOgorICAgICAgICAod2Vi
a2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2VyX2dldF9kaXNrX2NhY2hlX2RpcmVjdG9yeSk6CisgICAg
ICAgICogVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvQnViYmxld3JhcExhdW5jaGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6YnViYmxld3JhcFNwYXduKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6d2ViUHJv
Y2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYnNp
dGVEYXRhU3RvcmU6OnBsYXRmb3JtU2V0TmV0d29ya1BhcmFtZXRlcnMpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2Vic2l0ZURhdGFTdG9yZTo6cmVzb2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpmZXRjaERhdGFBbmRBcHBseSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnJlbW92ZURhdGEpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYnNpdGVEYXRhU3RvcmU6OmFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YnBhcmVudFBhdGgg
Y29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjphcHBsaWNhdGlvbkNh
Y2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoKKyAg
ICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OmFwcGxpY2F0aW9u
Q2FjaGVGbGF0RmlsZVN1YnBhcmVudFBhdGggY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbjo6c2V0QXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3Vi
cGFyZW50UGF0aCk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0
aW9uOjphcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OnNl
dEFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUpOiBEZWxldGVkLgorCiAy
MDIxLTA1LTEzICBQZW5nIExpdSAgPHBlbmcubGl1NkBhcHBsZS5jb20+CiAKICAgICAgICAgU3Vi
dGl0bGVzIGluIFNhZmFyaSBmYWlsIHRvIGFwcGVhciBhZnRlciBzd2l0Y2hpbmcgbGFuZ3VhZ2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktp
dExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggZmJiNDFlMjZhYTAxZTA2YjM0OGIyZmUzOTg3OWVhY2Yz
NzQwZDI3YS4uYTY2ZmJhN2U0NzMzM2I5ZDE1OWM4NzEzZTNjNTJkNGRlOWNjNTg5YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExl
Z2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wNS0xMyAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBGaWxlU3lzdGVtOjpkaXJlY3Rv
cnlOYW1lKCkgdG8gRmlsZVN5c3RlbTo6cGFyZW50UGF0aCgpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3NjgKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgRmlsZVN5c3RlbTo6ZGlyZWN0b3J5
TmFtZSgpIHRvIEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoKSBmb3IgY2xhcml0eSBhbmQKKyAgICAg
ICAgY29uc2lzdGVuY3kgd2l0aCBzdGQ6OmZpbGVzeXN0ZW06OnBhcmVudF9wYXRoKCkgd2hpY2gg
aXMgdXNlZCBpbnRlcm5hbGx5LgorCisgICAgICAgICogU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OmVuc3VyZURhdGFiYXNlRmlsZUV4aXN0cyk6CisKIDIwMjEt
MDUtMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBQb3J0IFdU
Rjo6RmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeSB0byBzdGQ6OmZpbGVzeXN0ZW0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvd2luL0NoYW5nZUxvZwppbmRleCAzMGU4YzFjZmQ1NDY5NGU1NzRkZGZmMWYwZWVjZjE2YzY0
MmEzNjAxLi4wYzZjZWFlNTRiYzc0MjUzMmUzZWM5ZmY3ZDkwNWVmZjhmM2VhMzFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMDUtMTMgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgRmlsZVN5c3RlbTo6
ZGlyZWN0b3J5TmFtZSgpIHRvIEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzY4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1lIEZpbGVTeXN0ZW06OmRp
cmVjdG9yeU5hbWUoKSB0byBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKCkgZm9yIGNsYXJpdHkgYW5k
CisgICAgICAgIGNvbnNpc3RlbmN5IHdpdGggc3RkOjpmaWxlc3lzdGVtOjpwYXJlbnRfcGF0aCgp
IHdoaWNoIGlzIHVzZWQgaW50ZXJuYWxseS4KKworICAgICAgICAqIFBsdWdpbnMvUGx1Z2luRGF0
YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRGF0YWJhc2U6OmxvYWRQZXJzaXN0
ZW50TWV0YWRhdGFDYWNoZSk6CisKIDIwMjEtMDUtMTIgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFw
cGxlLmNvbT4KIAogICAgICAgICBOb3RpZmljYXRpb24ucmVxdWVzdFBlcm1pc3Npb24oKSBzaG91
bGQgcmV0dXJuIGEgUHJvbWlzZQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQ
SS9KU1NjcmlwdC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3JpcHQubW0KaW5k
ZXggMjNmNTkxNDMzZWI3ZTIyNzgwOTEyYzQ4MGM0NDg2YjYzNDc5YzNkMC4uOTY2ZGUzNWVhOWQz
NjQzNjU5NDRlNzI4Y2Y5OGMwZWQ2OTAwZTFmNiAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1NjcmlwdC5tbQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
U2NyaXB0Lm1tCkBAIC04NCw3ICs4NCw3IEBAIHN0YXRpYyBib29sIHZhbGlkYXRlQnl0ZWNvZGVD
YWNoZVBhdGgoTlNVUkwqIGNhY2hlUGF0aCwgTlNFcnJvcioqIGVycm9yKQogICAgICAgICB9CiAg
ICAgfQogCi0gICAgU3RyaW5nIGRpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUo
c3lzdGVtUGF0aCk7CisgICAgU3RyaW5nIGRpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OnBhcmVudFBh
dGgoc3lzdGVtUGF0aCk7CiAgICAgaWYgKGRpcmVjdG9yeS5pc051bGwoKSkgewogICAgICAgICBj
cmVhdGVFcnJvcihbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1hdDpAIkNhY2hlIHBhdGggYCVAYCBk
b2VzIG5vdCBjb250YWluIGluIGEgdmFsaWQgZGlyZWN0b3J5Iiwgc3RhdGljX2Nhc3Q8TlNTdHJp
bmcgKj4oc3lzdGVtUGF0aCldLCBlcnJvcik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dURi93dGYvRmls
ZVN5c3RlbS5jcHAKaW5kZXggMjU2MmFhOWU0ZDI0ZjI2NDY3ZDJlNTA3MzAwMzhiMjljNGVhODJk
NS4uOTE5ZGM1Y2I0OTRmZDdlNzI1ZGJmM2YxMTBlOGJiNzFjODQxYjNhMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dURi93dGYvRmlsZVN5
c3RlbS5jcHAKQEAgLTUxOCw3ICs1MTgsNyBAQCBPcHRpb25hbDxTYWx0PiByZWFkT3JNYWtlU2Fs
dChjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgfQogCiAgICAgU2FsdCBzYWx0ID0gbWFrZVNhbHQo
KTsKLSAgICBGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMoRmlsZVN5c3RlbTo6ZGlyZWN0
b3J5TmFtZShwYXRoKSk7CisgICAgRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKEZpbGVT
eXN0ZW06OnBhcmVudFBhdGgocGF0aCkpOwogICAgIGF1dG8gZmlsZSA9IEZpbGVTeXN0ZW06Om9w
ZW5GaWxlKHBhdGgsIEZpbGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6V3JpdGUsIEZpbGVTeXN0ZW06
OkZpbGVBY2Nlc3NQZXJtaXNzaW9uOjpVc2VyKTsKICAgICBpZiAoIUZpbGVTeXN0ZW06OmlzSGFu
ZGxlVmFsaWQoZmlsZSkpCiAgICAgICAgIHJldHVybiB7IH07CkBAIC03MzUsNyArNzM1LDcgQEAg
U3RyaW5nIHBhdGhHZXRGaWxlTmFtZShjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgcmV0dXJuIGZy
b21TdGRGaWxlU3lzdGVtUGF0aCh0b1N0ZEZpbGVTeXN0ZW1QYXRoKHBhdGgpLmZpbGVuYW1lKCkp
OwogfQogCi1TdHJpbmcgZGlyZWN0b3J5TmFtZShjb25zdCBTdHJpbmcmIHBhdGgpCitTdHJpbmcg
cGFyZW50UGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCiB7CiAgICAgcmV0dXJuIGZyb21TdGRGaWxl
U3lzdGVtUGF0aCh0b1N0ZEZpbGVTeXN0ZW1QYXRoKHBhdGgpLnBhcmVudF9wYXRoKCkpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oIGIvU291cmNlL1dURi93dGYv
RmlsZVN5c3RlbS5oCmluZGV4IDk2NWNjMzU3NDRhZWZmMTcwMjA1YWMxNzE2OTc4YmM3OTYxODY1
MjMuLjcxMzUwMGU4ODcxMmVjNDNjMzU2YzJjNmRiZTFjODAxMmI4N2E1OTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GaWxlU3lz
dGVtLmgKQEAgLTEyNiw3ICsxMjYsNyBAQCBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIGxhc3RD
b21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2goY29uc3QgU3RyaW5nJgogV1RGX0VY
UE9SVF9QUklWQVRFIGJvb2wgbWFrZUFsbERpcmVjdG9yaWVzKGNvbnN0IFN0cmluZyYgcGF0aCk7
CiBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIGhvbWVEaXJlY3RvcnlQYXRoKCk7CiBXVEZfRVhQ
T1JUX1BSSVZBVEUgU3RyaW5nIHBhdGhHZXRGaWxlTmFtZShjb25zdCBTdHJpbmcmKTsKLVdURl9F
WFBPUlRfUFJJVkFURSBTdHJpbmcgZGlyZWN0b3J5TmFtZShjb25zdCBTdHJpbmcmKTsKK1dURl9F
WFBPUlRfUFJJVkFURSBTdHJpbmcgcGFyZW50UGF0aChjb25zdCBTdHJpbmcmKTsKIFdURl9FWFBP
UlRfUFJJVkFURSBib29sIGdldFZvbHVtZUZyZWVTcGFjZShjb25zdCBTdHJpbmcmLCB1aW50NjRf
dCYpOwogV1RGX0VYUE9SVF9QUklWQVRFIE9wdGlvbmFsPGludDMyX3Q+IGdldEZpbGVEZXZpY2VJ
ZChjb25zdCBDU3RyaW5nJik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9vbCBjcmVhdGVTeW1ib2xp
Y0xpbmsoY29uc3QgU3RyaW5nJiB0YXJnZXRQYXRoLCBjb25zdCBTdHJpbmcmIHN5bWJvbGljTGlu
a1BhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RP
TUZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZp
bGVTeXN0ZW0uY3BwCmluZGV4IDdhOGE4YWFhMDI3ZGY4YzJmM2U0NDYzNTZmODI4MTI5YjhjOTM0
ZTEuLjQ1M2FmMGE3M2I3NzJhZTUwZWUzNmNlZGIwYzc4ZmQ4MjQwMzA0N2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKQEAg
LTE0Niw3ICsxNDYsNyBAQCBzdGF0aWMgYm9vbCBpc1ZhbGlkVmlydHVhbFBhdGgoU3RyaW5nVmll
dyB2aXJ0dWFsUGF0aCkKIERPTUZpbGVTeXN0ZW06OkRPTUZpbGVTeXN0ZW0oUmVmPEZpbGU+JiYg
ZmlsZSkKICAgICA6IG1fbmFtZShjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCkpCiAgICAgLCBt
X2ZpbGUoV1RGTW92ZShmaWxlKSkKLSAgICAsIG1fcm9vdFBhdGgoRmlsZVN5c3RlbTo6ZGlyZWN0
b3J5TmFtZShtX2ZpbGUtPnBhdGgoKSkpCisgICAgLCBtX3Jvb3RQYXRoKEZpbGVTeXN0ZW06OnBh
cmVudFBhdGgobV9maWxlLT5wYXRoKCkpKQogICAgICwgbV93b3JrUXVldWUoV29ya1F1ZXVlOjpj
cmVhdGUoIkRPTUZpbGVTeXN0ZW0gd29yayBxdWV1ZSIpKQogewogICAgIEFTU0VSVCghbV9yb290
UGF0aC5lbmRzV2l0aCgnLycpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9h
cHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwCmluZGV4IGIwODAzMGM5YjQx
ZjI3MWU3YWEzMjdjM2FlNGVjNGY2MzBhNzA3MjEuLjE3NGNkZDExZGMyZTZjMDgxZjY2ZjU4YzAw
MTE4NjdkNDYwMmFiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcApAQCAtMTI5MSw3ICsxMjkxLDcg
QEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6d3JpdGVEYXRhVG9VbmlxdWVGaWxlSW5E
aXJlY3RvcnkoU2hhcmVkQnVmZmVyJiBkYXQKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgCiAgICAgICAgIGZ1bGxQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KGRpcmVjdG9yeSwgcGF0aCk7Ci0gICAgfSB3aGlsZSAoRmlsZVN5c3RlbTo6ZGlyZWN0
b3J5TmFtZShmdWxsUGF0aCkgIT0gZGlyZWN0b3J5IHx8IEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMo
ZnVsbFBhdGgpKTsKKyAgICB9IHdoaWxlIChGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKGZ1bGxQYXRo
KSAhPSBkaXJlY3RvcnkgfHwgRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhmdWxsUGF0aCkpOwogICAg
IAogICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUgPSBGaWxlU3lzdGVt
OjpvcGVuRmlsZShmdWxsUGF0aCwgRmlsZVN5c3RlbTo6RmlsZU9wZW5Nb2RlOjpXcml0ZSk7CiAg
ICAgaWYgKCFoYW5kbGUpCkBAIC0xNDMxLDcgKzE0MzEsNyBAQCB2b2lkIEFwcGxpY2F0aW9uQ2Fj
aGVTdG9yYWdlOjpjaGVja0ZvckRlbGV0ZWRSZXNvdXJjZXMoKQogICAgICAgICAKICAgICAgICAg
Ly8gRG9uJ3QgZXhpdCB0aGUgZmxhdEZpbGVEaXJlY3RvcnkhIFRoaXMgc2hvdWxkIG9ubHkgaGFw
cGVuIGlmIHRoZSAicGF0aCIgZW50cnkgY29udGFpbnMgYSBkaXJlY3RvcnkgCiAgICAgICAgIC8v
IGNvbXBvbmVudCwgYnV0IHByb3RlY3QgYWdhaW5zdCBpdCByZWdhcmRsZXNzLgotICAgICAgICBp
ZiAoRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShmdWxsUGF0aCkgIT0gZmxhdEZpbGVEaXJlY3Rv
cnkpCisgICAgICAgIGlmIChGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKGZ1bGxQYXRoKSAhPSBmbGF0
RmlsZURpcmVjdG9yeSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAKICAgICAgICAg
RmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShmdWxsUGF0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZDb250
ZW50S2V5U2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uLm1tCmluZGV4IGViNzgz
ZjhhNjVlNjVmODA1M2E0OTI5NjM1MmZiMzBjZWY4NjU4N2IuLmNlODBiNDI1ZGRlZGU3NGUzYmM5
M2QwY2FlNTIzNTEyNDgxOGRlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9u
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uLm1tCkBAIC0zNzksNyArMzc5LDcgQEAg
QVZDb250ZW50S2V5U2Vzc2lvbiogQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb246OmNvbnRl
bnRLZXlTZXNzaW9uKCkKIAogICAgICAgICBtX2NvbnRlbnRLZXlTZXNzaW9uID0gW1BBTDo6Z2V0
QVZDb250ZW50S2V5U2Vzc2lvbkNsYXNzKCkgY29udGVudEtleVNlc3Npb25XaXRoS2V5U3lzdGVt
OkFWQ29udGVudEtleVN5c3RlbUZhaXJQbGF5U3RyZWFtaW5nXTsKICAgICB9IGVsc2UgewotICAg
ICAgICBTdHJpbmcgc3RvcmFnZURpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUo
c3RvcmFnZVBhdGgpOworICAgICAgICBTdHJpbmcgc3RvcmFnZURpcmVjdG9yeSA9IEZpbGVTeXN0
ZW06OnBhcmVudFBhdGgoc3RvcmFnZVBhdGgpOwogCiAgICAgICAgIGlmICghRmlsZVN5c3RlbTo6
ZmlsZUV4aXN0cyhzdG9yYWdlRGlyZWN0b3J5KSkgewogICAgICAgICAgICAgaWYgKCFGaWxlU3lz
dGVtOjptYWtlQWxsRGlyZWN0b3JpZXMoc3RvcmFnZURpcmVjdG9yeSkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2
YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJl
YW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IDBlN2ZhNmFiNGUzNGRj
ZjlmN2Y4NzM2NzUzOGI2YzRjNjcwZDg5MmIuLjAyYzJjMzBhN2QxOTRlZjA5MmU4OTkwYjE1ZjIy
YmJlNGE4NzBlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuY3BwCkBAIC0yMjA4LDcgKzIyMDgsNyBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lcjo6cHVyZ2VPbGREb3dubG9hZEZpbGVzKGNvbnN0IFN0cmluZyYgZG93bmxvYWRGaQog
ICAgIGlmIChkb3dubG9hZEZpbGVQcmVmaXhQYXRoLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgYXV0byB0ZW1wbGF0ZURpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5h
bWUoZG93bmxvYWRGaWxlUHJlZml4UGF0aCk7CisgICAgYXV0byB0ZW1wbGF0ZURpcmVjdG9yeSA9
IEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoZG93bmxvYWRGaWxlUHJlZml4UGF0aCk7CiAgICAgYXV0
byB0ZW1wbGF0ZVByZWZpeCA9IEZpbGVTeXN0ZW06OnBhdGhHZXRGaWxlTmFtZShkb3dubG9hZEZp
bGVQcmVmaXhQYXRoKTsKICAgICBmb3IgKGF1dG8mIGZpbGVOYW1lIDogRmlsZVN5c3RlbTo6bGlz
dERpcmVjdG9yeSh0ZW1wbGF0ZURpcmVjdG9yeSkpIHsKICAgICAgICAgaWYgKCFmaWxlTmFtZS5z
dGFydHNXaXRoKHRlbXBsYXRlUHJlZml4KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIuY3BwCmluZGV4IDI0MjVmODNkNzI2MjZlMGU1
MGRmYzZjNmNiOTUwNjdmMDZmNTc1ZjUuLmY4ZWM5Y2Y0N2Q0YzFmYjAzOGZmNTc3NjNjMTJhZGJi
ODc5NTIwZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9Db29raWVKYXJEQi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9j
dXJsL0Nvb2tpZUphckRCLmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIGJvb2wgQ29va2llSmFyREI6
Om9wZW5EYXRhYmFzZSgpCiAgICAgfQogCiAgICAgaWYgKCFleGlzdHNEYXRhYmFzZUZpbGUpIHsK
LSAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMoRmlsZVN5c3RlbTo6
ZGlyZWN0b3J5TmFtZShtX2RhdGFiYXNlUGF0aCkpKQorICAgICAgICBpZiAoIUZpbGVTeXN0ZW06
Om1ha2VBbGxEaXJlY3RvcmllcyhGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKG1fZGF0YWJhc2VQYXRo
KSkpCiAgICAgICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBjcmVhdGUgdGhlIENvb2tpZSBE
YXRhYmFzZSBwYXRoICVzIiwgbV9kYXRhYmFzZVBhdGgudXRmOCgpLmRhdGEoKSk7CiAKICAgICAg
ICAgbV9kYXRhYmFzZS5vcGVuKG1fZGF0YWJhc2VQYXRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVGaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NxbC9TUUxpdGVGaWxlU3lzdGVtLmNwcAppbmRleCBjMjRkMjExZTVlYjBiODdm
OTI0YzM2YTEzMTZjYmMzYmViMmJjOGE5Li42MDk1OWExOTQwMjA4ZGNjMjg1YmZmMTY2NDExZTBm
ZDgwNGQ1YWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRl
RmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZUZp
bGVTeXN0ZW0uY3BwCkBAIC02NSw3ICs2NSw3IEBAIGJvb2wgU1FMaXRlRmlsZVN5c3RlbTo6ZW5z
dXJlRGF0YWJhc2VGaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGJvb2wgY2hlCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChjaGVja1BhdGhPbmx5KSB7Ci0gICAgICAg
IFN0cmluZyBkaXIgPSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKGZpbGVOYW1lKTsKKyAgICAg
ICAgU3RyaW5nIGRpciA9IEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoZmlsZU5hbWUpOwogICAgICAg
ICByZXR1cm4gZW5zdXJlRGF0YWJhc2VEaXJlY3RvcnlFeGlzdHMoZGlyKTsKICAgICB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVEQi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51REIuY3BwCmlu
ZGV4IDZmN2Y0YmExNjYwYjRmN2E5NzcyMTJjODU2M2E0M2M2NjVlMzBiNTQuLmY5YzI0YjhlZDU3
MTgyZWE1Nzg4N2EwMDMwN2VkOGRiOGEzZDBmZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVEQi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudURCLmNwcApAQCAtMTg4LDcgKzE4OCw3IEBAIGJv
b2wgU2VhcmNoUG9wdXBNZW51REI6Om9wZW5EYXRhYmFzZSgpCiAgICAgfQogCiAgICAgaWYgKCFl
eGlzdHNEYXRhYmFzZUZpbGUpIHsKLSAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjptYWtlQWxsRGly
ZWN0b3JpZXMoRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShtX2RhdGFiYXNlRmlsZW5hbWUpKSkK
KyAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMoRmlsZVN5c3RlbTo6
cGFyZW50UGF0aChtX2RhdGFiYXNlRmlsZW5hbWUpKSkKICAgICAgICAgICAgIExPR19FUlJPUigi
RmFpbGVkIHRvIGNyZWF0ZSB0aGUgc2VhcmNoIGF1dG9zYXZlIGRhdGFiYXNlIHBhdGggJXMiLCBt
X2RhdGFiYXNlRmlsZW5hbWUudXRmOCgpLmRhdGEoKSk7CiAKICAgICAgICAgbV9kYXRhYmFzZS5v
cGVuKG1fZGF0YWJhc2VGaWxlbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2NyaXB0U3RvcmFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2NyaXB0U3RvcmFnZS5jcHAKaW5kZXggZGZjNWQwYjZl
MGQ5ODE4OGQ5MTQxMGUxOGIyNjRkMzlkZGJlMjFlYi4uNTk4MWJiN2VjNTkxOTQ4MTE0MDViZjk4
MDQ5YmMzMzVjMzBhMDYxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NjcmlwdFN0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTY3JpcHRTdG9yYWdlLmNwcApAQCAtODQsNyArODQsNyBAQCBT
Y3JpcHRCdWZmZXIgU1dTY3JpcHRTdG9yYWdlOjpzdG9yZShjb25zdCBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uS2V5JiByZWdpc3RyYQogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogCiAg
ICAgYXV0byBzY3JpcHRQYXRoID0gdGhpcy0+c2NyaXB0UGF0aChyZWdpc3RyYXRpb25LZXksIHNj
cmlwdFVSTCk7Ci0gICAgRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKEZpbGVTeXN0ZW06
OmRpcmVjdG9yeU5hbWUoc2NyaXB0UGF0aCkpOworICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJl
Y3RvcmllcyhGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKHNjcmlwdFBhdGgpKTsKIAogICAgIGF1dG8g
aXRlcmF0ZU92ZXJCdWZmZXJBbmRXcml0ZURhdGEgPSBbJl0oY29uc3QgRnVuY3Rpb248Ym9vbChj
b25zdCB1aW50OF90Kiwgc2l6ZV90KT4mIHdyaXRlRGF0YSkgewogICAgICAgICBmb3IgKGF1dG8g
aXQgPSBzY3JpcHQuYnVmZmVyKCktPmJlZ2luKCk7IGl0ICE9IHNjcmlwdC5idWZmZXIoKS0+ZW5k
KCk7ICsraXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlLmNwcAppbmRleCBiOWNiMmRjOTQ4ZjNjODk0YjQ3Y2U1YTc5ZWRhMmY1MWJkNWI4
ZGIwLi4wZjM2OGQ5ZjJlY2FjMTIyYTQ3NDg3YzFkNWI3NDA5OTkyNzZmNzRmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZS5jcHAKQEAg
LTM2OSw3ICszNjksNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3Jl
OjpjbG9zZSgpCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpvcGVu
SVRQRGF0YWJhc2UoKQogewogICAgIGlmICghRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhtX3N0b3Jh
Z2VEaXJlY3RvcnlQYXRoKSkgewotICAgICAgICBpZiAoIUZpbGVTeXN0ZW06Om1ha2VBbGxEaXJl
Y3RvcmllcyhGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKG1fc3RvcmFnZURpcmVjdG9yeVBhdGgp
KSkgeworICAgICAgICBpZiAoIUZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhGaWxlU3lz
dGVtOjpwYXJlbnRQYXRoKG1fc3RvcmFnZURpcmVjdG9yeVBhdGgpKSkgewogICAgICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rh
dGFiYXNlU3RvcmU6Om9wZW4gZmFpbGVkLCBlcnJvciBtZXNzYWdlOiBGYWlsZWQgdG8gY3JlYXRl
IGRpcmVjdG9yeSBkYXRhYmFzZSBwYXRoOiAlIiBQVUJMSUNfTE9HX1NUUklORywgdGhpcywgbV9z
dG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNo
ZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
YWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4IGU4ZGI5NTJlMTA0NjRiYTdlNGNlOWZi
Y2NlODI1ZjVkNDMzNTE4ZWYuLjFkMDViNWQ1NjYyNDdlODdkMTIxYzc4MzM0NDA1MzM2ZGRiZmZl
ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVT
dG9yYWdlRW5naW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKQEAgLTQ2Myw3ICs0NjMsNyBAQCB2b2lkIEVuZ2luZTo6
d3JpdGVGaWxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIE5ldHdvcmtDYWNoZTo6RGF0YSYmIGRh
dGEsIFdlYkNvcgogICAgIG1fcGVuZGluZ1dyaXRlQ2FsbGJhY2tzLmFkZCgrK21fcGVuZGluZ0Nh
bGxiYWNrc0NvdW50ZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKICAgICBtX2lvUXVldWUtPmRpc3Bh
dGNoKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpLCBpZGVudGlmaWVyID0gbV9w
ZW5kaW5nQ2FsbGJhY2tzQ291bnRlciwgZGF0YSA9IFdURk1vdmUoZGF0YSksIGZpbGVuYW1lID0g
ZmlsZW5hbWUuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CiAKLSAgICAgICAgU3RyaW5nIGRp
cmVjdG9yeVBhdGggPSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKGZpbGVuYW1lKTsKKyAgICAg
ICAgU3RyaW5nIGRpcmVjdG9yeVBhdGggPSBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKGZpbGVuYW1l
KTsKICAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKGRpcmVjdG9yeVBhdGgpKQog
ICAgICAgICAgICAgRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKGRpcmVjdG9yeVBhdGgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9nbGliL1Byb2Nlc3NFeGVjdXRh
YmxlUGF0aEdMaWIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ2xpYi9Qcm9jZXNzRXhlY3V0
YWJsZVBhdGhHTGliLmNwcAppbmRleCBhMWUwNWY1MmNjMmY1M2M5MjQwZmEyYzc0Zjc4N2JkN2Jl
Yjc2NDYxLi44NjJmODM3ODNjNDFjNmMzNzIwYWJiM2Y5YmM2NDNhZDg2ZjdiOTU2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9nbGliL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEdMaWIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvUHJvY2Vzc0V4ZWN1dGFibGVQYXRo
R0xpYi5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgc3RhdGljIFN0cmluZyBnZXRFeGVjdXRhYmxlUGF0
aCgpCiB7CiAgICAgQ1N0cmluZyBleGVjdXRhYmxlUGF0aCA9IGdldEN1cnJlbnRFeGVjdXRhYmxl
UGF0aCgpOwogICAgIGlmICghZXhlY3V0YWJsZVBhdGguaXNOdWxsKCkpCi0gICAgICAgIHJldHVy
biBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKEZpbGVTeXN0ZW06OnN0cmluZ0Zyb21GaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24oZXhlY3V0YWJsZVBhdGguZGF0YSgpKSk7CisgICAgICAgIHJldHVy
biBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKEZpbGVTeXN0ZW06OnN0cmluZ0Zyb21GaWxlU3lzdGVt
UmVwcmVzZW50YXRpb24oZXhlY3V0YWJsZVBhdGguZGF0YSgpKSk7CiAgICAgcmV0dXJuIHsgfTsK
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL19XS1dlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLm1tCmluZGV4
IGQwOWRkMDc4MDk5Y2Q5M2VlN2VjZTg0Mzk2ZWVhMzI0OTVlNzUyMjUuLmQwZmEzYWI4ODNmNTI5
ZjdkMjQ0NTJmN2QwYWYzZDZkMjkyYmFjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24ubW0KQEAgLTI2NywxNCArMjY3LDE0IEBAIC0gKHZvaWQpc2V0QXBwbGljYXRp
b25DYWNoZURpcmVjdG9yeTooTlNVUkwgKil1cmwKIAogLSAoTlNTdHJpbmcgKilhcHBsaWNhdGlv
bkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lCiB7Ci0gICAgcmV0dXJuIF9jb25maWd1cmF0
aW9uLT5hcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lKCk7CisgICAgcmV0
dXJuIF9jb25maWd1cmF0aW9uLT5hcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJwYXJlbnRQYXRo
KCk7CiB9CiAKIC0gKHZvaWQpc2V0QXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5
TmFtZTooTlNTdHJpbmcgKiluYW1lCiB7CiAgICAgaWYgKCFfY29uZmlndXJhdGlvbi0+aXNQZXJz
aXN0ZW50KCkpCiAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4
Y2VwdGlvbiBmb3JtYXQ6QCJDYW5ub3Qgc2V0IGFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRp
cmVjdG9yeU5hbWUgb24gYSBub24tcGVyc2lzdGVudCBfV0tXZWJzaXRlRGF0YVN0b3JlQ29uZmln
dXJhdGlvbi4iXTsKLSAgICBfY29uZmlndXJhdGlvbi0+c2V0QXBwbGljYXRpb25DYWNoZUZsYXRG
aWxlU3ViZGlyZWN0b3J5TmFtZShuYW1lKTsKKyAgICBfY29uZmlndXJhdGlvbi0+c2V0QXBwbGlj
YXRpb25DYWNoZUZsYXRGaWxlU3VicGFyZW50UGF0aChuYW1lKTsKIH0KIAogLSAoTlNVUkwgKilt
ZWRpYUNhY2hlRGlyZWN0b3J5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9JY29uRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvSWNvbkRhdGFiYXNlLmNwcAppbmRleCBmNDUwNmY4YmQxNDBmZDQ5NGMxMTAwYWNmYTQ0NTM0
ZDA0YTFlN2RiLi4zMzk2MDJhNDlmMTE0M2Q5ZmZlNDYzMDVhYjFhZDk5YTY4NzRjYjYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5jcHAK
QEAgLTU5LDcgKzU5LDcgQEAgSWNvbkRhdGFiYXNlOjpJY29uRGF0YWJhc2UoY29uc3QgU3RyaW5n
JiBwYXRoLCBBbGxvd0RhdGFiYXNlV3JpdGUgYWxsb3dEYXRhYmFzZVcKICAgICAgICAgaWYgKGFs
bG93RGF0YWJhc2VXcml0ZSA9PSBBbGxvd0RhdGFiYXNlV3JpdGU6Ok5vICYmICFGaWxlU3lzdGVt
OjpmaWxlRXhpc3RzKHBhdGgpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGF1dG8g
ZGF0YWJhc2VEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKHBhdGgpOworICAg
ICAgICBhdXRvIGRhdGFiYXNlRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6cGFyZW50UGF0aChwYXRo
KTsKICAgICAgICAgRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKGRhdGFiYXNlRGlyZWN0
b3J5KTsKICAgICAgICAgaWYgKCFtX2RiLm9wZW4ocGF0aCkpIHsKICAgICAgICAgICAgIExPR19F
UlJPUigiVW5hYmxlIHRvIG9wZW4gZmF2aWNvbiBkYXRhYmFzZSBhdCBwYXRoICVzIC0gJXMiLCBw
YXRoLnV0ZjgoKS5kYXRhKCksIG1fZGIubGFzdEVycm9yTXNnKCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhTWFu
YWdlci5jcHAKaW5kZXggNGM0ZWY1ZDY4YWMzYTFiNWNiNmFjYjk1NTlhOGZkNTNmYWJkMThlNy4u
YTMzOWFjMDliNGFhMWU4N2MzZjhhNWRkZTM5ZTZmMjc0Y2QyZmRjYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0
YU1hbmFnZXIuY3BwCkBAIC02MzMsNyArNjMzLDcgQEAgY29uc3QgZ2NoYXIqIHdlYmtpdF93ZWJz
aXRlX2RhdGFfbWFuYWdlcl9nZXRfZGlza19jYWNoZV9kaXJlY3RvcnkoV2ViS2l0V2Vic2l0ZUQK
IAogICAgIGlmICghcHJpdi0+ZGlza0NhY2hlRGlyZWN0b3J5KSB7CiAgICAgICAgIC8vIFRoZSBk
ZWZhdWx0IGRpcmVjdG9yeSBhbHJlYWR5IGhhcyB0aGUgc3ViZGlyZWN0b3J5LgotICAgICAgICBw
cml2LT5kaXNrQ2FjaGVEaXJlY3RvcnkucmVzZXQoZ19zdHJkdXAoRmlsZVN5c3RlbTo6ZGlyZWN0
b3J5TmFtZShXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmRlZmF1bHROZXR3b3JrQ2FjaGVEaXJl
Y3RvcnkoKSkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBwcml2LT5kaXNrQ2FjaGVEaXJlY3Rv
cnkucmVzZXQoZ19zdHJkdXAoRmlsZVN5c3RlbTo6cGFyZW50UGF0aChXZWJLaXQ6OldlYnNpdGVE
YXRhU3RvcmU6OmRlZmF1bHROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKSkudXRmOCgpLmRhdGEoKSkp
OwogICAgIH0KICAgICByZXR1cm4gcHJpdi0+ZGlza0NhY2hlRGlyZWN0b3J5LmdldCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9CdWJibGV3
cmFwTGF1bmNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9C
dWJibGV3cmFwTGF1bmNoZXIuY3BwCmluZGV4IGUxODMwMTI5ZTQ1YTQ0ODAyZjRjNjliYTk4ODlm
MmRjMmU5MzkwMWUuLjg1MDg5NTFmNTQ2MmFkM2M4ZjllNTljZjk5NWZkM2JhZmQ5MGU3YWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvQnViYmxld3Jh
cExhdW5jaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGli
L0J1YmJsZXdyYXBMYXVuY2hlci5jcHAKQEAgLTkwMCwxNCArOTAwLDE0IEBAIEdSZWZQdHI8R1N1
YnByb2Nlc3M+IGJ1YmJsZXdyYXBTcGF3bihHU3VicHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hlciwg
Y29uc3QgUHJvY2VzCiAjaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKQogICAgIGNvbnN0IGNoYXIq
IGV4ZWNEaXJlY3RvcnkgPSBnX2dldGVudigiV0VCS0lUX0VYRUNfUEFUSCIpOwogICAgIGlmIChl
eGVjRGlyZWN0b3J5KSB7Ci0gICAgICAgIFN0cmluZyBwYXJlbnREaXIgPSBGaWxlU3lzdGVtOjpk
aXJlY3RvcnlOYW1lKEZpbGVTeXN0ZW06OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRp
b24oZXhlY0RpcmVjdG9yeSkpOworICAgICAgICBTdHJpbmcgcGFyZW50RGlyID0gRmlsZVN5c3Rl
bTo6cGFyZW50UGF0aChGaWxlU3lzdGVtOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0
aW9uKGV4ZWNEaXJlY3RvcnkpKTsKICAgICAgICAgYmluZElmRXhpc3RzKHNhbmRib3hBcmdzLCBw
YXJlbnREaXIudXRmOCgpLmRhdGEoKSk7CiAgICAgfQogCiAgICAgQ1N0cmluZyBleGVjdXRhYmxl
UGF0aCA9IGdldEN1cnJlbnRFeGVjdXRhYmxlUGF0aCgpOwogICAgIGlmICghZXhlY3V0YWJsZVBh
dGguaXNOdWxsKCkpIHsKICAgICAgICAgLy8gT3VyIGV4ZWN1dGFibGUgaXMgYC9mb28vYmFyL2Jp
bi9Qcm9jZXNzYCwgd2Ugd2FudCBgL2Zvby9iYXJgIGFzIGEgdXNhYmxlIHByZWZpeAotICAgICAg
ICBTdHJpbmcgcGFyZW50RGlyID0gRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShGaWxlU3lzdGVt
OjpkaXJlY3RvcnlOYW1lKEZpbGVTeXN0ZW06OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50
YXRpb24oZXhlY3V0YWJsZVBhdGguZGF0YSgpKSkpOworICAgICAgICBTdHJpbmcgcGFyZW50RGly
ID0gRmlsZVN5c3RlbTo6cGFyZW50UGF0aChGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKEZpbGVTeXN0
ZW06OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZXhlY3V0YWJsZVBhdGguZGF0
YSgpKSkpOwogICAgICAgICBiaW5kSWZFeGlzdHMoc2FuZGJveEFyZ3MsIHBhcmVudERpci51dGY4
KCkuZGF0YSgpKTsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcAppbmRleCAzNDIwMGNjNTY2Y2Q5NmQwMzQxZTI4ZGI0NjY4NGVlMDhkMDU3
ZDQzLi44MzY1ZjE4NmIzZGM4MzMwY2RlNGQ4NWZhNDk4NDQ0ZmFmMDA2MTJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC03MzUsNyArNzM1LDcgQEAg
V2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMgV2ViUHJvY2Vzc1Bvb2w6OndlYlByb2Nlc3NE
YXRhU3RvcmVQYXJhbWV0ZXJzKFdlYlAKICAgICBpZiAoIWFwcGxpY2F0aW9uQ2FjaGVEaXJlY3Rv
cnkuaXNFbXB0eSgpKQogICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVXaXRo
b3V0UmVzb2x2aW5nUGF0aChhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5LCBTYW5kYm94RXh0ZW5z
aW9uOjpUeXBlOjpSZWFkV3JpdGUsIGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnlFeHRlbnNpb25I
YW5kbGUpOwogCi0gICAgU3RyaW5nIGFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9y
eU5hbWUgPSB3ZWJzaXRlRGF0YVN0b3JlLmFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVj
dG9yeU5hbWUoKTsKKyAgICBTdHJpbmcgYXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0
b3J5TmFtZSA9IHdlYnNpdGVEYXRhU3RvcmUuYXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3VicGFy
ZW50UGF0aCgpOwogCiAgICAgU3RyaW5nIHdlYlNRTERhdGFiYXNlRGlyZWN0b3J5ID0gd2Vic2l0
ZURhdGFTdG9yZS5yZXNvbHZlZERhdGFiYXNlRGlyZWN0b3J5KCk7CiAgICAgU2FuZGJveEV4dGVu
c2lvbjo6SGFuZGxlIHdlYlNRTERhdGFiYXNlRGlyZWN0b3J5RXh0ZW5zaW9uSGFuZGxlOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0
ZURhdGFTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEv
Q29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCmluZGV4IGM0MTk3NWZlYThhODZjNzRlNjZj
OTIwMDU3ZDYxYzdmNThmZjEyYjUuLmYyZDkyZjE5N2QxN2NhMjk3MGQwN2RjMTQwYWIwMGE2MWMx
MzU4ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL0Nv
Y29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2EubW0KQEAgLTE5Miw3ICsx
OTIsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnBsYXRmb3JtU2V0TmV0d29ya1BhcmFtZXRl
cnMoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmCiAgICAgcGFyYW1ldGVycy51aVByb2Nlc3ND
b29raWVTdG9yYWdlSWRlbnRpZmllciA9IG1fdWlQcm9jZXNzQ29va2llU3RvcmFnZUlkZW50aWZp
ZXI7CiAKICAgICBpZiAoIWNvb2tpZUZpbGUuaXNFbXB0eSgpKQotICAgICAgICBTYW5kYm94RXh0
ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3RvcnkoRmlsZVN5c3RlbTo6ZGly
ZWN0b3J5TmFtZShjb29raWVGaWxlKSwgcGFyYW1ldGVycy5jb29raWVTdG9yYWdlUGF0aEV4dGVu
c2lvbkhhbmRsZSk7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclJl
YWRXcml0ZURpcmVjdG9yeShGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKGNvb2tpZUZpbGUpLCBwYXJh
bWV0ZXJzLmNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxlKTsKIH0KIAogI2lmIEhBVkUo
Q0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpIHx8IEhBVkUoTkVUV09SS19MT0FERVIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0
YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuY3BwCmluZGV4IDk2Zjc4ZmNlNmM2YWM1Y2IyODBhMTMyNWM2MmUxYmNiYzIwZDg3
YTYuLjE0NmNmYTMzNjJjNmIxNWMyYTY4NDQ4YjUxNDBhNDE2ZjRjNTBkMGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCkBAIC0yNjgsNyArMjY4LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZl
RGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSgpCiAKICAgICAvLyBSZXNvbHZlIGRpcmVjdG9yaWVzIGZv
ciBmaWxlIHBhdGhzLgogICAgIGlmICghbV9jb25maWd1cmF0aW9uLT5jb29raWVTdG9yYWdlRmls
ZSgpLmlzRW1wdHkoKSkgewotICAgICAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2V0Q29v
a2llU3RvcmFnZUZpbGUocmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURpcmVjdG9yeUZvclNhbmRi
b3hFeHRlbnNpb24oRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShtX2NvbmZpZ3VyYXRpb24tPmNv
b2tpZVN0b3JhZ2VGaWxlKCkpKSk7CisgICAgICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5z
ZXRDb29raWVTdG9yYWdlRmlsZShyZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9y
U2FuZGJveEV4dGVuc2lvbihGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKG1fY29uZmlndXJhdGlvbi0+
Y29va2llU3RvcmFnZUZpbGUoKSkpKTsKICAgICAgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24t
PnNldENvb2tpZVN0b3JhZ2VGaWxlKEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVu
dChtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+Y29va2llU3RvcmFnZUZpbGUoKSwgRmlsZVN5c3Rl
bTo6cGF0aEdldEZpbGVOYW1lKG1fY29uZmlndXJhdGlvbi0+Y29va2llU3RvcmFnZUZpbGUoKSkp
KTsKICAgICB9CiB9CkBAIC01MDIsNyArNTAyLDcgQEAgcHJpdmF0ZToKICAgICB9CiAKICAgICBp
ZiAoZGF0YVR5cGVzLmNvbnRhaW5zKFdlYnNpdGVEYXRhVHlwZTo6T2ZmbGluZVdlYkFwcGxpY2F0
aW9uQ2FjaGUpICYmIGlzUGVyc2lzdGVudCgpKSB7Ci0gICAgICAgIG1fcXVldWUtPmRpc3BhdGNo
KFtmZXRjaE9wdGlvbnMsIGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkgPSBtX2NvbmZpZ3VyYXRp
b24tPmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKS5pc29sYXRlZENvcHkoKSwgYXBwbGljYXRp
b25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSA9IG1fY29uZmlndXJhdGlvbi0+YXBwbGlj
YXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSgpLmlzb2xhdGVkQ29weSgpLCBjYWxs
YmFja0FnZ3JlZ2F0b3JdIHsKKyAgICAgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW2ZldGNoT3B0aW9u
cywgYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSA9IG1fY29uZmlndXJhdGlvbi0+YXBwbGljYXRp
b25DYWNoZURpcmVjdG9yeSgpLmlzb2xhdGVkQ29weSgpLCBhcHBsaWNhdGlvbkNhY2hlRmxhdEZp
bGVTdWJkaXJlY3RvcnlOYW1lID0gbV9jb25maWd1cmF0aW9uLT5hcHBsaWNhdGlvbkNhY2hlRmxh
dEZpbGVTdWJwYXJlbnRQYXRoKCkuaXNvbGF0ZWRDb3B5KCksIGNhbGxiYWNrQWdncmVnYXRvcl0g
ewogICAgICAgICAgICAgYXV0byBzdG9yYWdlID0gV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0
b3JhZ2U6OmNyZWF0ZShhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5LCBhcHBsaWNhdGlvbkNhY2hl
RmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lKTsKICAgICAgICAgICAgIFdlYnNpdGVEYXRhIHdlYnNp
dGVEYXRhOwogICAgICAgICAgICAgZm9yIChhdXRvJiBvcmlnaW4gOiBzdG9yYWdlLT5vcmlnaW5z
V2l0aENhY2hlKCkpIHsKQEAgLTcyNyw3ICs3MjcsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6
OnJlbW92ZURhdGEoT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4gZGF0YVR5cGVzLCBXYWxsVGlt
ZQogICAgICAgICBtX2RldmljZUlkSGFzaFNhbHRTdG9yYWdlLT5kZWxldGVEZXZpY2VJZEhhc2hT
YWx0T3JpZ2luc01vZGlmaWVkU2luY2UobW9kaWZpZWRTaW5jZSwgW2NhbGxiYWNrQWdncmVnYXRv
cl0geyB9KTsKIAogICAgIGlmIChkYXRhVHlwZXMuY29udGFpbnMoV2Vic2l0ZURhdGFUeXBlOjpP
ZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZSkgJiYgaXNQZXJzaXN0ZW50KCkpIHsKLSAgICAgICAg
bV9xdWV1ZS0+ZGlzcGF0Y2goW2FwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkgPSBtX2NvbmZpZ3Vy
YXRpb24tPmFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKS5pc29sYXRlZENvcHkoKSwgYXBwbGlj
YXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSA9IG1fY29uZmlndXJhdGlvbi0+YXBw
bGljYXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSgpLmlzb2xhdGVkQ29weSgpLCBj
YWxsYmFja0FnZ3JlZ2F0b3JdIHsKKyAgICAgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW2FwcGxpY2F0
aW9uQ2FjaGVEaXJlY3RvcnkgPSBtX2NvbmZpZ3VyYXRpb24tPmFwcGxpY2F0aW9uQ2FjaGVEaXJl
Y3RvcnkoKS5pc29sYXRlZENvcHkoKSwgYXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0
b3J5TmFtZSA9IG1fY29uZmlndXJhdGlvbi0+YXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3VicGFy
ZW50UGF0aCgpLmlzb2xhdGVkQ29weSgpLCBjYWxsYmFja0FnZ3JlZ2F0b3JdIHsKICAgICAgICAg
ICAgIGF1dG8gc3RvcmFnZSA9IFdlYkNvcmU6OkFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjcmVh
dGUoYXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSwgYXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3Vi
ZGlyZWN0b3J5TmFtZSk7CiAgICAgICAgICAgICBzdG9yYWdlLT5kZWxldGVBbGxDYWNoZXMoKTsK
ICAgICAgICAgfSk7CkBAIC04OTgsNyArODk4LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpy
ZW1vdmVEYXRhKE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+IGRhdGFUeXBlcywgY29uc3QgVmUK
ICAgICAgICAgICAgICAgICBvcmlnaW5zLmFkZChjcm9zc1RocmVhZENvcHkob3JpZ2luKSk7CiAg
ICAgICAgIH0KIAotICAgICAgICBtX3F1ZXVlLT5kaXNwYXRjaChbb3JpZ2lucyA9IFdURk1vdmUo
b3JpZ2lucyksIGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkgPSBtX2NvbmZpZ3VyYXRpb24tPmFw
cGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnkoKS5pc29sYXRlZENvcHkoKSwgYXBwbGljYXRpb25DYWNo
ZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSA9IG1fY29uZmlndXJhdGlvbi0+YXBwbGljYXRpb25D
YWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSgpLmlzb2xhdGVkQ29weSgpLCBjYWxsYmFja0Fn
Z3JlZ2F0b3JdIHsKKyAgICAgICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW29yaWdpbnMgPSBXVEZNb3Zl
KG9yaWdpbnMpLCBhcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5ID0gbV9jb25maWd1cmF0aW9uLT5h
cHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCkuaXNvbGF0ZWRDb3B5KCksIGFwcGxpY2F0aW9uQ2Fj
aGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUgPSBtX2NvbmZpZ3VyYXRpb24tPmFwcGxpY2F0aW9u
Q2FjaGVGbGF0RmlsZVN1YnBhcmVudFBhdGgoKS5pc29sYXRlZENvcHkoKSwgY2FsbGJhY2tBZ2dy
ZWdhdG9yXSB7CiAgICAgICAgICAgICBhdXRvIHN0b3JhZ2UgPSBXZWJDb3JlOjpBcHBsaWNhdGlv
bkNhY2hlU3RvcmFnZTo6Y3JlYXRlKGFwcGxpY2F0aW9uQ2FjaGVEaXJlY3RvcnksIGFwcGxpY2F0
aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUpOwogICAgICAgICAgICAgZm9yIChjb25z
dCBhdXRvJiBvcmlnaW4gOiBvcmlnaW5zKQogICAgICAgICAgICAgICAgIHN0b3JhZ2UtPmRlbGV0
ZUNhY2hlRm9yT3JpZ2luKG9yaWdpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggMDM0YmNhNTQyOTkxNTU3
ZmQ3NjBhYmEyMDUyYzg2NzgyNWFlNmY1ZC4uM2E2NTQ0NWY4YzE5ZTQ1MWUyMjBkYmEwZGE2MmRm
YzMzOTljOTQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvV2Vic2l0ZURhdGFTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaApAQCAtMjM5LDcgKzIzOSw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFNlY29uZHMsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZXNldENhY2hlTWF4QWdlQ2Fw
Rm9yUHJldmFsZW50UmVzb3VyY2VzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCByZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSgpOwotICAgIGNvbnN0IFN0cmluZyYg
YXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSgpIGNvbnN0IHsgcmV0dXJu
IG1fY29uZmlndXJhdGlvbi0+YXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFt
ZSgpOyB9CisgICAgY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJwYXJl
bnRQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLT5hcHBsaWNhdGlvbkNhY2hl
RmxhdEZpbGVTdWJwYXJlbnRQYXRoKCk7IH0KICAgICBjb25zdCBTdHJpbmcmIHJlc29sdmVkQXBw
bGljYXRpb25DYWNoZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb2x2ZWRDb25maWd1
cmF0aW9uLT5hcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCk7IH0KICAgICBjb25zdCBTdHJpbmcm
IHJlc29sdmVkTG9jYWxTdG9yYWdlRGlyZWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9yZXNvbHZl
ZENvbmZpZ3VyYXRpb24tPmxvY2FsU3RvcmFnZURpcmVjdG9yeSgpOyB9CiAgICAgY29uc3QgU3Ry
aW5nJiByZXNvbHZlZE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVz
b2x2ZWRDb25maWd1cmF0aW9uLT5uZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZUNv
bmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmVDb25maWd1cmF0aW9uLmgKaW5kZXggMDFlYmIxZDcwODNkZmZlYTViNjQyODBh
MDc4Mjg3ZGZiZGIyZmRlZC4uYTJjMjNmMjRmZmU0ODBlZWY5NjM5ZDVmM2E2NWVkYWRjYWM2OGI1
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0
ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbi5oCkBAIC0xMTgsOCArMTE4
LDggQEAgcHVibGljOgogICAgIGNvbnN0IFN0cmluZyYgY2FjaGVTdG9yYWdlRGlyZWN0b3J5KCkg
Y29uc3QgeyByZXR1cm4gbV9jYWNoZVN0b3JhZ2VEaXJlY3Rvcnk7IH0KICAgICB2b2lkIHNldENh
Y2hlU3RvcmFnZURpcmVjdG9yeShTdHJpbmcmJiBkaXJlY3RvcnkpIHsgbV9jYWNoZVN0b3JhZ2VE
aXJlY3RvcnkgPSBXVEZNb3ZlKGRpcmVjdG9yeSk7IH0KICAgICAKLSAgICBjb25zdCBTdHJpbmcm
IGFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUoKSBjb25zdCB7IHJldHVy
biBtX2FwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWU7IH0KLSAgICB2b2lk
IHNldEFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWUoU3RyaW5nJiYgZGly
ZWN0b3J5KSB7IG1fYXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZSA9IFdU
Rk1vdmUoZGlyZWN0b3J5KTsgfQorICAgIGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25DYWNoZUZs
YXRGaWxlU3VicGFyZW50UGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fYXBwbGljYXRpb25DYWNoZUZs
YXRGaWxlU3ViZGlyZWN0b3J5TmFtZTsgfQorICAgIHZvaWQgc2V0QXBwbGljYXRpb25DYWNoZUZs
YXRGaWxlU3VicGFyZW50UGF0aChTdHJpbmcmJiBkaXJlY3RvcnkpIHsgbV9hcHBsaWNhdGlvbkNh
Y2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlOYW1lID0gV1RGTW92ZShkaXJlY3RvcnkpOyB9CiAgICAg
CiAgICAgY29uc3QgU3RyaW5nJiBzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KCkg
Y29uc3QgeyByZXR1cm4gbV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5OyB9CiAg
ICAgdm9pZCBzZXRTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGlyZWN0b3J5KFN0cmluZyYmIGRp
cmVjdG9yeSkgeyBtX3NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EaXJlY3RvcnkgPSBXVEZNb3Zl
KGRpcmVjdG9yeSk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9T
dG9yYWdlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFnZVRy
YWNrZXIuY3BwCmluZGV4IDA2MTBjOTQ2ZjJlZGY5ODZlYmNhOThiNmE3ZDIxYmYwYTkzMzk2NDYu
LjgzNjA0NzFiZTNlNDE3YWE1MDc2NWQ5YTY5Y2Q2NGExZTc2YmJiYmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9TdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcApAQCAtMTEzLDcgKzExMyw3
IEBAIFN0cmluZyBTdG9yYWdlVHJhY2tlcjo6dHJhY2tlckRhdGFiYXNlUGF0aCgpCiBzdGF0aWMg
Ym9vbCBlbnN1cmVEYXRhYmFzZUZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgYm9v
bCBjcmVhdGVJZkRvZXNOb3RFeGlzdCkKIHsKICAgICBpZiAoY3JlYXRlSWZEb2VzTm90RXhpc3Qp
Ci0gICAgICAgIHJldHVybiBGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMoRmlsZVN5c3Rl
bTo6ZGlyZWN0b3J5TmFtZShmaWxlTmFtZSkpOworICAgICAgICByZXR1cm4gRmlsZVN5c3RlbTo6
bWFrZUFsbERpcmVjdG9yaWVzKEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoZmlsZU5hbWUpKTsKIAog
ICAgIHJldHVybiBGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKGZpbGVOYW1lKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwIGIv
U291cmNlL1dlYktpdExlZ2FjeS93aW4vUGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAKaW5kZXgg
OWQ0MmNkNWM4OThhODFhZGZkYmM2YjRlMWMzMTZmNWIzZDZhZDA3NC4uZDJmYjc1ZjY1Y2U0NjFm
OGUwYWQ3NGY4NjRmYzBhZWQzYmNmYjU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vUGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2Fj
eS93aW4vUGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAKQEAgLTUxNSw3ICs1MTUsNyBAQCB2b2lk
IFBsdWdpbkRhdGFiYXNlOjpsb2FkUGVyc2lzdGVudE1ldGFkYXRhQ2FjaGUoKQogCiAgICAgICAg
IC8vIFNraXAgbWV0YWRhdGEgdGhhdCBwb2ludHMgdG8gcGx1Z2lucyBmcm9tIGRpcmVjdG9yaWVz
IHRoYXQKICAgICAgICAgLy8gYXJlIG5vdCBwYXJ0IG9mIHBsdWdpbiBkaXJlY3RvcnkgbGlzdCBh
bnltb3JlLgotICAgICAgICBTdHJpbmcgcGx1Z2luRGlyZWN0b3J5TmFtZSA9IEZpbGVTeXN0ZW06
OmRpcmVjdG9yeU5hbWUocGF0aCk7CisgICAgICAgIFN0cmluZyBwbHVnaW5EaXJlY3RvcnlOYW1l
ID0gRmlsZVN5c3RlbTo6cGFyZW50UGF0aChwYXRoKTsKICAgICAgICAgaWYgKG1fcGx1Z2luRGly
ZWN0b3JpZXMuZmluZChwbHVnaW5EaXJlY3RvcnlOYW1lKSA9PSBXVEY6Om5vdEZvdW5kKQogICAg
ICAgICAgICAgY29udGludWU7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCBlZTEyNDIwMDQyOTkyZmE3YWE0ZDdiNDY4ODZiMWE5MGMxYzk1NjM2
Li4wYjVjNWQ1NGM4MDM4OWQ4MDFjYTY2NmZhNDY2M2I2N2MwZjI3NDI2IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MjEtMDUtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZW5h
bWUgRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSgpIHRvIEZpbGVTeXN0ZW06OnBhcmVudFBhdGgo
KQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzY4
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1l
IEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUoKSB0byBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKCkg
Zm9yIGNsYXJpdHkgYW5kCisgICAgICAgIGNvbnNpc3RlbmN5IHdpdGggc3RkOjpmaWxlc3lzdGVt
OjpwYXJlbnRfcGF0aCgpIHdoaWNoIGlzIHVzZWQgaW50ZXJuYWxseS4KKworICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChmaW5kRm9udEZh
bGxiYWNrKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNw
cDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktp
dEFQSS93aW4vUGxhdGZvcm1VdGlsaXRpZXNXaW4uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VXRpbDo6bW9kdWxlRGlyZWN0b3J5KToKKwogMjAyMS0wNS0xMyAgRG1pdHJ5IEJlemhldHNr
b3YgIDxkYmV6aGV0c2tvdkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCBkYmV6aGV0c2tvdiBh
cyBhIGNvbW1pdGVyCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJl
bmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNw
cAppbmRleCBjNmZjZDYxODc0ZjBhMGM1OGIzNTdjOTM2MGVkNmFjNjlhMGM3Y2YxLi5hOGM2NjBj
Zjg3MTE0ZWQ1ZTNkMTE3MDEwNmIwZTEzZWNjMDE4YTFkIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTExMDYsNyArMTEwNiw3IEBAIHN0YXRpYyB2
b2lkIHNpemVXZWJWaWV3Rm9yQ3VycmVudFRlc3QoKQogCiBzdGF0aWMgU3RyaW5nIGZpbmRGb250
RmFsbGJhY2soY29uc3QgY2hhciogcGF0aE9yVXJsKQogewotICAgIFN0cmluZyBwYXRoVG9Gb250
RmFsbGJhY2sgPSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKHBhdGhPclVybCk7CisgICAgU3Ry
aW5nIHBhdGhUb0ZvbnRGYWxsYmFjayA9IEZpbGVTeXN0ZW06OnBhcmVudFBhdGgocGF0aE9yVXJs
KTsKIAogICAgIHdjaGFyX3QgZnVsbFBhdGhbX01BWF9QQVRIXTsKICAgICBpZiAoIV93ZnVsbHBh
dGgoZnVsbFBhdGgsIHBhdGhUb0ZvbnRGYWxsYmFjay53aWRlQ2hhcmFjdGVycygpLmRhdGEoKSwg
X01BWF9QQVRIKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Zp
bGVTeXN0ZW0uY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5j
cHAKaW5kZXggMTM3YTAxNzkwMzVlYzgwMzVlMTc0NjY2YWQyMzc2NDhjNDBjYzVlMy4uZDVkODY0
ZmRiNDFiMzEyMjQxMDJiMmQ2ZjBiNjI3NmM1OTQ4ZTQ1OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAKQEAgLTI0NCw3ICsyNDQsNyBAQCBURVNUX0Yo
RmlsZVN5c3RlbVRlc3QsIEdldEZpbGVNZXRhZGF0YUhpZGRlbkZpbGUpCiBURVNUX0YoRmlsZVN5
c3RlbVRlc3QsIFVuaWNvZGVEaXJlY3RvcnlOYW1lKQogewogICAgIFN0cmluZyBwYXRoID0gU3Ry
aW5nOjpmcm9tVVRGOCgiL3Rlc3QvYVx1MDMwOGxvL3Rlc3QudHh0Iik7Ci0gICAgU3RyaW5nIGRp
cmVjdG9yeU5hbWUgPSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKHBhdGgpOworICAgIFN0cmlu
ZyBkaXJlY3RvcnlOYW1lID0gRmlsZVN5c3RlbTo6cGFyZW50UGF0aChwYXRoKTsKICAgICBTdHJp
bmcgZXhwZWN0ZWREaXJlY3RvcnlOYW1lID0gU3RyaW5nOjpmcm9tVVRGOCgiL3Rlc3QvYVx1MDMw
OGxvIik7CiAgICAgRVhQRUNUX1RSVUUoZXhwZWN0ZWREaXJlY3RvcnlOYW1lID09IGRpcmVjdG9y
eU5hbWUpOwogfQpAQCAtNzI5LDE5ICs3MjksMTkgQEAgVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBw
YXRoR2V0RmlsZU5hbWUpCiAjZW5kaWYKIH0KIAotVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBkaXJl
Y3RvcnlOYW1lKQorVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBwYXJlbnRQYXRoKQogewogICAgIGF1
dG8gdGVzdFBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnRzKHRlbXBF
bXB0eUZvbGRlclBhdGgoKSwgeyAic3ViZm9sZGVyIiwgImZpbGVuYW1lLnR4dCIgfSk7Ci0gICAg
RVhQRUNUX1NUUkVRKEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1w
dHlGb2xkZXJQYXRoKCksICJzdWJmb2xkZXIiKS51dGY4KCkuZGF0YSgpLCBGaWxlU3lzdGVtOjpk
aXJlY3RvcnlOYW1lKHRlc3RQYXRoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEo
RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHRlbXBFbXB0eUZvbGRlclBhdGgo
KSwgInN1YmZvbGRlciIpLnV0ZjgoKS5kYXRhKCksIEZpbGVTeXN0ZW06OnBhcmVudFBhdGgodGVz
dFBhdGgpLnV0ZjgoKS5kYXRhKCkpOwogI2lmIE9TKFVOSVgpCi0gICAgRVhQRUNUX1NUUkVRKCIv
dmFyL3RtcCIsIEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUoIi92YXIvdG1wL2V4YW1wbGUudHh0
IikudXRmOCgpLmRhdGEoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCIvdmFyL3RtcCIsIEZpbGVTeXN0
ZW06OmRpcmVjdG9yeU5hbWUoIi92YXIvdG1wLyIpLnV0ZjgoKS5kYXRhKCkpOwotICAgIEVYUEVD
VF9TVFJFUSgiL3Zhci90bXAiLCBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKCIvdmFyL3RtcC8u
IikudXRmOCgpLmRhdGEoKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCIvIiwgRmlsZVN5c3RlbTo6ZGly
ZWN0b3J5TmFtZSgiLyIpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiL3Zhci90
bXAiLCBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKCIvdmFyL3RtcC9leGFtcGxlLnR4dCIpLnV0Zjgo
KS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiL3Zhci90bXAiLCBGaWxlU3lzdGVtOjpwYXJl
bnRQYXRoKCIvdmFyL3RtcC8iKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIi92
YXIvdG1wIiwgRmlsZVN5c3RlbTo6cGFyZW50UGF0aCgiL3Zhci90bXAvLiIpLnV0ZjgoKS5kYXRh
KCkpOworICAgIEVYUEVDVF9TVFJFUSgiLyIsIEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoIi8iKS51
dGY4KCkuZGF0YSgpKTsKICNlbmRpZgogI2lmIE9TKFdJTkRPV1MpCi0gICAgRVhQRUNUX1NUUkVR
KCJDOlxcZm9vIiwgRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSgiQzpcXGZvb1xcZXhhbXBsZS50
eHQiKS51dGY4KCkuZGF0YSgpKTsKLSAgICBFWFBFQ1RfU1RSRVEoIkM6XFwiLCBGaWxlU3lzdGVt
OjpkaXJlY3RvcnlOYW1lKCJDOlxcIikudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVR
KCJDOlxcZm9vIiwgRmlsZVN5c3RlbTo6cGFyZW50UGF0aCgiQzpcXGZvb1xcZXhhbXBsZS50eHQi
KS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIkM6XFwiLCBGaWxlU3lzdGVtOjpw
YXJlbnRQYXRoKCJDOlxcIikudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vUGxhdGZvcm1VdGlsaXRpZXNXaW4uY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS93aW4vUGxhdGZvcm1VdGlsaXRpZXNXaW4uY3BwCmluZGV4IDNkNTlk
MjU1MDI3Zjk0ZDQzOWM4NzhkOTFlZWFhMjY4OThmMzM0ZmQuLjUwOGZlODJlMjdiMDBiZjEyMWRk
NTUyYWE0YmViYmU5MmEwYzIyNWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2lu
L1BsYXRmb3JtVXRpbGl0aWVzV2luLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9Q
bGF0Zm9ybVV0aWxpdGllc1dpbi5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgc3RhdGljIFN0cmluZyBt
b2R1bGVEaXJlY3RvcnkoKQogICAgIHdjaGFyX3QgZmlsZW5hbWVbYnVmZmVyTGVuZ3RoXTsKICAg
ICBhdXRvIGxlbiA9IEdldE1vZHVsZUZpbGVOYW1lKG51bGxwdHIsIGZpbGVuYW1lLCBidWZmZXJM
ZW5ndGgpOwogICAgIEFTU0VSVChsZW4gPiAwKTsKLSAgICByZXR1cm4gRmlsZVN5c3RlbTo6ZGly
ZWN0b3J5TmFtZShTdHJpbmcoZmlsZW5hbWUsIGxlbikpOworICAgIHJldHVybiBGaWxlU3lzdGVt
OjpwYXJlbnRQYXRoKFN0cmluZyhmaWxlbmFtZSwgbGVuKSk7CiB9CiAKIFdLU3RyaW5nUmVmIGNy
ZWF0ZUluamVjdGVkQnVuZGxlUGF0aCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428546</attachid>
            <date>2021-05-13 12:40:47 -0700</date>
            <delta_ts>2021-05-13 12:45:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225768-20210513124046.patch</filename>
            <type>text/plain</type>
            <size>32070</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
Njk5YzY2OTIxODg5NTU3ODhlMDc5MmQzMjUzNjM5NTNkNThlMjgyLi5mMTAwMjJjNTNjNzNjZWZi
OWU5NTQwNjFlZTdhYzk5ZjIzNmU3N2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMS0wNS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKCkgdG8gRmlsZVN5c3Rl
bTo6cGFyZW50UGF0aCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjU3NjgKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBSZW5hbWUgRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSgpIHRvIEZpbGVTeXN0ZW06OnBh
cmVudFBhdGgoKSBmb3IgY2xhcml0eSBhbmQKKyAgICAgICAgY29uc2lzdGVuY3kgd2l0aCBzdGQ6
OmZpbGVzeXN0ZW06OnBhcmVudF9wYXRoKCkgd2hpY2ggaXMgdXNlZCBpbnRlcm5hbGx5LgorCisg
ICAgICAgICogQVBJL0pTU2NyaXB0Lm1tOgorICAgICAgICAodmFsaWRhdGVCeXRlY29kZUNhY2hl
UGF0aCk6CisKIDIwMjEtMDUtMTMgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYWUwOGQwN2E0
ZThmNWQ2ZGE0ZTc1OGY1ZDM3NTRlNGFhZWFjOWI3MC4uMmIzODBkZGEzYmUxODIzZDM0ZmIwZmNk
ZmIxY2JkM2M4N2MwZTdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wNS0xMyAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBGaWxlU3lzdGVtOjpk
aXJlY3RvcnlOYW1lKCkgdG8gRmlsZVN5c3RlbTo6cGFyZW50UGF0aCgpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3NjgKKworICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBSZW5hbWUgRmlsZVN5c3RlbTo6ZGlyZWN0
b3J5TmFtZSgpIHRvIEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoKSBmb3IgY2xhcml0eSBhbmQKKyAg
ICAgICAgY29uc2lzdGVuY3kgd2l0aCBzdGQ6OmZpbGVzeXN0ZW06OnBhcmVudF9wYXRoKCkgd2hp
Y2ggaXMgdXNlZCBpbnRlcm5hbGx5LgorCisgICAgICAgICogd3RmL0ZpbGVTeXN0ZW0uY3BwOgor
ICAgICAgICAoV1RGOjpGaWxlU3lzdGVtSW1wbDo6cmVhZE9yTWFrZVNhbHQpOgorICAgICAgICAo
V1RGOjpGaWxlU3lzdGVtSW1wbDo6cGFyZW50UGF0aCk6CisgICAgICAgIChXVEY6OkZpbGVTeXN0
ZW1JbXBsOjpkaXJlY3RvcnlOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvRmlsZVN5c3Rl
bS5oOgorCiAyMDIxLTA1LTEzICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbV1RGXSBBZGQgaG9sZExvY2soKSBvdmVybG9hZCBmb3IgV1RGOjpEYXRh
TXV0ZXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA2NDZkN2Q2NTdmOWExNmUzYmRhOWUwYmU0MDQ1NGI3ZGIxODE4
NDcxLi4xOTNlY2FmMjI3NThmNDBlYjBkOTFkMmYzNzU0OWE5NmZlOTExZjllIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzIgQEAKKzIwMjEtMDUtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBSZW5hbWUgRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSgpIHRvIEZp
bGVTeXN0ZW06OnBhcmVudFBhdGgoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI1NzY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CisKKyAgICAgICAgUmVuYW1lIEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUoKSB0byBGaWxlU3lz
dGVtOjpwYXJlbnRQYXRoKCkgZm9yIGNsYXJpdHkgYW5kCisgICAgICAgIGNvbnNpc3RlbmN5IHdp
dGggc3RkOjpmaWxlc3lzdGVtOjpwYXJlbnRfcGF0aCgpIHdoaWNoIGlzIHVzZWQgaW50ZXJuYWxs
eS4KKworICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06OkRPTUZpbGVTeXN0ZW0pOgorICAgICAgICAq
IGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6d3JpdGVEYXRhVG9VbmlxdWVGaWxlSW5E
aXJlY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNo
ZWNrRm9yRGVsZXRlZFJlc291cmNlcyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbkNh
Y2hlU3RvcmFnZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2UpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9u
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb246OmNv
bnRlbnRLZXlTZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHVyZ2VPbGREb3dubG9hZEZpbGVzKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q29va2llSmFyREI6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NR
TGl0ZUZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMaXRlRmlsZVN5c3RlbTo6
ZW5zdXJlRGF0YWJhc2VGaWxlRXhpc3RzKToKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2VhcmNo
UG9wdXBNZW51REIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VhcmNoUG9wdXBNZW51REI6Om9w
ZW5EYXRhYmFzZSk6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NjcmlwdFN0
b3JhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1dTY3JpcHRTdG9yYWdlOjpzdG9yZSk6CisK
IDIwMjEtMDUtMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAgICAgICAg
WyBtYWNPUyBXazIgXSBtZWRpYS9tZWRpYS1mcmFnbWVudHMvVEMwMDUxLmh0bWwgaXMgZmxha2V5
IGNyYXNoaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM4MTBkNTYyZmI5MDk3MDkwNTQxOWFiYTI4MjgxN2NhZTFl
YzdmZTYuLmU3ZmY0YjE2OTVkYmJhYTNlOWUyN2I1ZGYzMWQ2YmRhNjIyOWM5MGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNDUgQEAKKzIwMjEtMDUtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBSZW5hbWUgRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSgpIHRvIEZp
bGVTeXN0ZW06OnBhcmVudFBhdGgoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI1NzY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CisKKyAgICAgICAgUmVuYW1lIEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUoKSB0byBGaWxlU3lz
dGVtOjpwYXJlbnRQYXRoKCkgZm9yIGNsYXJpdHkgYW5kCisgICAgICAgIGNvbnNpc3RlbmN5IHdp
dGggc3RkOjpmaWxlc3lzdGVtOjpwYXJlbnRfcGF0aCgpIHdoaWNoIGlzIHVzZWQgaW50ZXJuYWxs
eS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6b3BlbklUUERhdGFiYXNlKToKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwOgorICAgICAgICAoV2ViS2l0
OjpDYWNoZVN0b3JhZ2U6OkVuZ2luZTo6d3JpdGVGaWxlKToKKyAgICAgICAgKiBTaGFyZWQvZ2xp
Yi9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhHTGliLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Z2V0RXhl
Y3V0YWJsZVBhdGgpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgtW19XS1dlYnNpdGVEYXRhU3RvcmVD
b25maWd1cmF0aW9uIGFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YmRpcmVjdG9yeU5hbWVdKToK
KyAgICAgICAgKC1bX1dLV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24gc2V0QXBwbGljYXRp
b25DYWNoZUZsYXRGaWxlU3ViZGlyZWN0b3J5TmFtZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6SWNvbkRhdGFiYXNl
OjpJY29uRGF0YWJhc2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJz
aXRlRGF0YU1hbmFnZXIuY3BwOgorICAgICAgICAod2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2Vy
X2dldF9kaXNrX2NhY2hlX2RpcmVjdG9yeSk6CisgICAgICAgICogVUlQcm9jZXNzL0xhdW5jaGVy
L2dsaWIvQnViYmxld3JhcExhdW5jaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6YnViYmxld3Jh
cFNwYXduKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6d2ViUHJvY2Vzc0RhdGFTdG9yZVBhcmFtZXRlcnMp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3Jl
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnBsYXRmb3JtU2V0
TmV0d29ya1BhcmFtZXRlcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6cmVz
b2x2ZURpcmVjdG9yaWVzSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0
YVN0b3JlOjpmZXRjaERhdGFBbmRBcHBseSk6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRh
U3RvcmU6OnJlbW92ZURhdGEpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJz
aXRlRGF0YVN0b3JlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OmFwcGxp
Y2F0aW9uQ2FjaGVGbGF0RmlsZVN1YnBhcmVudFBhdGggY29uc3QpOgorICAgICAgICAoV2ViS2l0
OjpXZWJzaXRlRGF0YVN0b3JlOjphcHBsaWNhdGlvbkNhY2hlRmxhdEZpbGVTdWJkaXJlY3RvcnlO
YW1lIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vi
c2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURh
dGFTdG9yZUNvbmZpZ3VyYXRpb246OmFwcGxpY2F0aW9uQ2FjaGVGbGF0RmlsZVN1YnBhcmVudFBh
dGggY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlQ29uZmlndXJhdGlv
bjo6c2V0QXBwbGljYXRpb25DYWNoZUZsYXRGaWxlU3VicGFyZW50UGF0aCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uOjphcHBsaWNhdGlvbkNhY2hlRmxh
dEZpbGVTdWJkaXJlY3RvcnlOYW1lIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
V2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb246OnNldEFwcGxpY2F0aW9uQ2FjaGVGbGF0Rmls
ZVN1YmRpcmVjdG9yeU5hbWUpOiBEZWxldGVkLgorCiAyMDIxLTA1LTEzICBTYW0gV2VpbmlnICA8
d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBDR0Rpc3BsYXlMaXN0IGRlYnVnIGNvbmZpZ3Vy
YXRpb24gZmFpbHMgdG8gYnVpbGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKaW5kZXggZmJiNDFlMjZhYTAx
ZTA2YjM0OGIyZmUzOTg3OWVhY2YzNzQwZDI3YS4uZTE4YzMwZjllNzExMDc1YzllMWNlZjFmODk0
MjY5MjNhZjg3OGJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAy
MS0wNS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFt
ZSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKCkgdG8gRmlsZVN5c3RlbTo6cGFyZW50UGF0aCgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3NjgK
KworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBSZW5hbWUgRmls
ZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSgpIHRvIEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoKSBmb3Ig
Y2xhcml0eSBhbmQKKyAgICAgICAgY29uc2lzdGVuY3kgd2l0aCBzdGQ6OmZpbGVzeXN0ZW06OnBh
cmVudF9wYXRoKCkgd2hpY2ggaXMgdXNlZCBpbnRlcm5hbGx5LgorCisgICAgICAgICogU3RvcmFn
ZS9TdG9yYWdlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OmVuc3VyZURhdGFiYXNlRmls
ZUV4aXN0cyk6CisKIDIwMjEtMDUtMTEgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBQb3J0IFdURjo6RmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeSB0byBzdGQ6OmZp
bGVzeXN0ZW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCBkYWYxM2YzOTUzMjhiYmFi
ZjY5ZjhhM2JhZDYwODA2ZWY2MDdlOTU0Li41NDY3NzhhYWEwNDBlYzg2YTE0ZDZiZWMzMWE0MjU3
YWM2NDZiMTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMjEtMDUtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBS
ZW5hbWUgRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSgpIHRvIEZpbGVTeXN0ZW06OnBhcmVudFBh
dGgoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1
NzY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgUmVuYW1l
IEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUoKSB0byBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKCkg
Zm9yIGNsYXJpdHkgYW5kCisgICAgICAgIGNvbnNpc3RlbmN5IHdpdGggc3RkOjpmaWxlc3lzdGVt
OjpwYXJlbnRfcGF0aCgpIHdoaWNoIGlzIHVzZWQgaW50ZXJuYWxseS4KKworICAgICAgICAqIFBs
dWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luRGF0YWJh
c2U6OmxvYWRQZXJzaXN0ZW50TWV0YWRhdGFDYWNoZSk6CisKIDIwMjEtMDUtMTMgIERhcmluIEFk
bGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBTdHJpbmdCdWlsZGVyOjph
cHBlbmROdW1iZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNTY3Jp
cHQubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0Lm1tCmluZGV4IDIzZjU5
MTQzM2ViN2UyMjc4MDkxMmM0ODBjNDQ4NmI2MzQ3OWMzZDAuLjk2NmRlMzVlYTlkMzY0MzY1OTQ0
ZTcyOGNmOThjMGVkNjkwMGUxZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNTY3JpcHQubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdC5t
bQpAQCAtODQsNyArODQsNyBAQCBzdGF0aWMgYm9vbCB2YWxpZGF0ZUJ5dGVjb2RlQ2FjaGVQYXRo
KE5TVVJMKiBjYWNoZVBhdGgsIE5TRXJyb3IqKiBlcnJvcikKICAgICAgICAgfQogICAgIH0KIAot
ICAgIFN0cmluZyBkaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKHN5c3RlbVBh
dGgpOworICAgIFN0cmluZyBkaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKHN5c3Rl
bVBhdGgpOwogICAgIGlmIChkaXJlY3RvcnkuaXNOdWxsKCkpIHsKICAgICAgICAgY3JlYXRlRXJy
b3IoW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6QCJDYWNoZSBwYXRoIGAlQGAgZG9lcyBub3Qg
Y29udGFpbiBpbiBhIHZhbGlkIGRpcmVjdG9yeSIsIHN0YXRpY19jYXN0PE5TU3RyaW5nICo+KHN5
c3RlbVBhdGgpXSwgZXJyb3IpOwogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0u
Y3BwCmluZGV4IDI1NjJhYTllNGQyNGYyNjQ2N2QyZTUwNzMwMDM4YjI5YzRlYTgyZDUuLjkxOWRj
NWNiNDk0ZmQ3ZTcyNWRiZjNmMTEwZThiYjcxYzg0MWIzYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3Bw
CkBAIC01MTgsNyArNTE4LDcgQEAgT3B0aW9uYWw8U2FsdD4gcmVhZE9yTWFrZVNhbHQoY29uc3Qg
U3RyaW5nJiBwYXRoKQogICAgIH0KIAogICAgIFNhbHQgc2FsdCA9IG1ha2VTYWx0KCk7Ci0gICAg
RmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUo
cGF0aCkpOworICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhGaWxlU3lzdGVtOjpw
YXJlbnRQYXRoKHBhdGgpKTsKICAgICBhdXRvIGZpbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShw
YXRoLCBGaWxlU3lzdGVtOjpGaWxlT3Blbk1vZGU6OldyaXRlLCBGaWxlU3lzdGVtOjpGaWxlQWNj
ZXNzUGVybWlzc2lvbjo6VXNlcik7CiAgICAgaWYgKCFGaWxlU3lzdGVtOjppc0hhbmRsZVZhbGlk
KGZpbGUpKQogICAgICAgICByZXR1cm4geyB9OwpAQCAtNzM1LDcgKzczNSw3IEBAIFN0cmluZyBw
YXRoR2V0RmlsZU5hbWUoY29uc3QgU3RyaW5nJiBwYXRoKQogICAgIHJldHVybiBmcm9tU3RkRmls
ZVN5c3RlbVBhdGgodG9TdGRGaWxlU3lzdGVtUGF0aChwYXRoKS5maWxlbmFtZSgpKTsKIH0KIAot
U3RyaW5nIGRpcmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJiBwYXRoKQorU3RyaW5nIHBhcmVudFBh
dGgoY29uc3QgU3RyaW5nJiBwYXRoKQogewogICAgIHJldHVybiBmcm9tU3RkRmlsZVN5c3RlbVBh
dGgodG9TdGRGaWxlU3lzdGVtUGF0aChwYXRoKS5wYXJlbnRfcGF0aCgpKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaCBiL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0
ZW0uaAppbmRleCA5NjVjYzM1NzQ0YWVmZjE3MDIwNWFjMTcxNjk3OGJjNzk2MTg2NTIzLi43MTM1
MDBlODg3MTJlYzQzYzM1NmMyYzZkYmUxYzgwMTJiODdhNTk1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCkBA
IC0xMjYsNyArMTI2LDcgQEAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyBsYXN0Q29tcG9uZW50
T2ZQYXRoSWdub3JpbmdUcmFpbGluZ1NsYXNoKGNvbnN0IFN0cmluZyYKIFdURl9FWFBPUlRfUFJJ
VkFURSBib29sIG1ha2VBbGxEaXJlY3Rvcmllcyhjb25zdCBTdHJpbmcmIHBhdGgpOwogV1RGX0VY
UE9SVF9QUklWQVRFIFN0cmluZyBob21lRGlyZWN0b3J5UGF0aCgpOwogV1RGX0VYUE9SVF9QUklW
QVRFIFN0cmluZyBwYXRoR2V0RmlsZU5hbWUoY29uc3QgU3RyaW5nJik7Ci1XVEZfRVhQT1JUX1BS
SVZBVEUgU3RyaW5nIGRpcmVjdG9yeU5hbWUoY29uc3QgU3RyaW5nJik7CitXVEZfRVhQT1JUX1BS
SVZBVEUgU3RyaW5nIHBhcmVudFBhdGgoY29uc3QgU3RyaW5nJik7CiBXVEZfRVhQT1JUX1BSSVZB
VEUgYm9vbCBnZXRWb2x1bWVGcmVlU3BhY2UoY29uc3QgU3RyaW5nJiwgdWludDY0X3QmKTsKIFdU
Rl9FWFBPUlRfUFJJVkFURSBPcHRpb25hbDxpbnQzMl90PiBnZXRGaWxlRGV2aWNlSWQoY29uc3Qg
Q1N0cmluZyYpOwogV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgY3JlYXRlU3ltYm9saWNMaW5rKGNv
bnN0IFN0cmluZyYgdGFyZ2V0UGF0aCwgY29uc3QgU3RyaW5nJiBzeW1ib2xpY0xpbmtQYXRoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lz
dGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVt
LmNwcAppbmRleCA3YThhOGFhYTAyN2RmOGMyZjNlNDQ2MzU2ZjgyODEyOWI4YzkzNGUxLi40NTNh
ZjBhNzNiNzcyYWU1MGVlMzZjZWRiMGM3OGZkODI0MDMwNDdmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC0xNDYsNyAr
MTQ2LDcgQEAgc3RhdGljIGJvb2wgaXNWYWxpZFZpcnR1YWxQYXRoKFN0cmluZ1ZpZXcgdmlydHVh
bFBhdGgpCiBET01GaWxlU3lzdGVtOjpET01GaWxlU3lzdGVtKFJlZjxGaWxlPiYmIGZpbGUpCiAg
ICAgOiBtX25hbWUoY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpKQogICAgICwgbV9maWxlKFdU
Rk1vdmUoZmlsZSkpCi0gICAgLCBtX3Jvb3RQYXRoKEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUo
bV9maWxlLT5wYXRoKCkpKQorICAgICwgbV9yb290UGF0aChGaWxlU3lzdGVtOjpwYXJlbnRQYXRo
KG1fZmlsZS0+cGF0aCgpKSkKICAgICAsIG1fd29ya1F1ZXVlKFdvcmtRdWV1ZTo6Y3JlYXRlKCJE
T01GaWxlU3lzdGVtIHdvcmsgcXVldWUiKSkKIHsKICAgICBBU1NFUlQoIW1fcm9vdFBhdGguZW5k
c1dpdGgoJy8nKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUv
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNh
Y2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNwcAppbmRleCBiMDgwMzBjOWI0MWYyNzFlN2Fh
MzI3YzNhZTRlYzRmNjMwYTcwNzIxLi4xNzRjZGQxMWRjMmU2YzA4MWY2NmY1OGMwMDExODY3ZDQ2
MDJhYmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGlj
YXRpb25DYWNoZVN0b3JhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNo
ZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKQEAgLTEyOTEsNyArMTI5MSw3IEBAIGJvb2wg
QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OndyaXRlRGF0YVRvVW5pcXVlRmlsZUluRGlyZWN0b3J5
KFNoYXJlZEJ1ZmZlciYgZGF0CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIAog
ICAgICAgICBmdWxsUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChk
aXJlY3RvcnksIHBhdGgpOwotICAgIH0gd2hpbGUgKEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUo
ZnVsbFBhdGgpICE9IGRpcmVjdG9yeSB8fCBGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKGZ1bGxQYXRo
KSk7CisgICAgfSB3aGlsZSAoRmlsZVN5c3RlbTo6cGFyZW50UGF0aChmdWxsUGF0aCkgIT0gZGly
ZWN0b3J5IHx8IEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoZnVsbFBhdGgpKTsKICAgICAKICAgICBG
aWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlID0gRmlsZVN5c3RlbTo6b3BlbkZp
bGUoZnVsbFBhdGgsIEZpbGVTeXN0ZW06OkZpbGVPcGVuTW9kZTo6V3JpdGUpOwogICAgIGlmICgh
aGFuZGxlKQpAQCAtMTQzMSw3ICsxNDMxLDcgQEAgdm9pZCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFn
ZTo6Y2hlY2tGb3JEZWxldGVkUmVzb3VyY2VzKCkKICAgICAgICAgCiAgICAgICAgIC8vIERvbid0
IGV4aXQgdGhlIGZsYXRGaWxlRGlyZWN0b3J5ISBUaGlzIHNob3VsZCBvbmx5IGhhcHBlbiBpZiB0
aGUgInBhdGgiIGVudHJ5IGNvbnRhaW5zIGEgZGlyZWN0b3J5IAogICAgICAgICAvLyBjb21wb25l
bnQsIGJ1dCBwcm90ZWN0IGFnYWluc3QgaXQgcmVnYXJkbGVzcy4KLSAgICAgICAgaWYgKEZpbGVT
eXN0ZW06OmRpcmVjdG9yeU5hbWUoZnVsbFBhdGgpICE9IGZsYXRGaWxlRGlyZWN0b3J5KQorICAg
ICAgICBpZiAoRmlsZVN5c3RlbTo6cGFyZW50UGF0aChmdWxsUGF0aCkgIT0gZmxhdEZpbGVEaXJl
Y3RvcnkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgCiAgICAgICAgIEZpbGVTeXN0
ZW06OmRlbGV0ZUZpbGUoZnVsbFBhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNl
c3Npb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9DRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbi5tbQppbmRleCBlYjc4M2Y4YTY1ZTY1
ZjgwNTNhNDkyOTYzNTJmYjMwY2VmODY1ODdiLi5jZTgwYjQyNWRkZWRlNzRlM2JjOTNkMGNhZTUy
MzUxMjQ4MThkZWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbi5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1T
ZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbi5tbQpAQCAtMzc5LDcgKzM3OSw3IEBAIEFWQ29udGVu
dEtleVNlc3Npb24qIENETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uOjpjb250ZW50S2V5U2Vz
c2lvbigpCiAKICAgICAgICAgbV9jb250ZW50S2V5U2Vzc2lvbiA9IFtQQUw6OmdldEFWQ29udGVu
dEtleVNlc3Npb25DbGFzcygpIGNvbnRlbnRLZXlTZXNzaW9uV2l0aEtleVN5c3RlbTpBVkNvbnRl
bnRLZXlTeXN0ZW1GYWlyUGxheVN0cmVhbWluZ107CiAgICAgfSBlbHNlIHsKLSAgICAgICAgU3Ry
aW5nIHN0b3JhZ2VEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKHN0b3JhZ2VQ
YXRoKTsKKyAgICAgICAgU3RyaW5nIHN0b3JhZ2VEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXJl
bnRQYXRoKHN0b3JhZ2VQYXRoKTsKIAogICAgICAgICBpZiAoIUZpbGVTeXN0ZW06OmZpbGVFeGlz
dHMoc3RvcmFnZURpcmVjdG9yeSkpIHsKICAgICAgICAgICAgIGlmICghRmlsZVN5c3RlbTo6bWFr
ZUFsbERpcmVjdG9yaWVzKHN0b3JhZ2VEaXJlY3RvcnkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJl
YW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVk
aWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCAwZTdmYTZhYjRlMzRkY2Y5ZjdmODcz
Njc1MzhiNmM0YzY3MGQ4OTJiLi4wMmMyYzMwYTdkMTk0ZWYwOTJlODk5MGIxNWYyMmJiZTRhODcw
ZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFt
ZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNw
cApAQCAtMjIwOCw3ICsyMjA4LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXI6
OnB1cmdlT2xkRG93bmxvYWRGaWxlcyhjb25zdCBTdHJpbmcmIGRvd25sb2FkRmkKICAgICBpZiAo
ZG93bmxvYWRGaWxlUHJlZml4UGF0aC5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybjsKIAotICAg
IGF1dG8gdGVtcGxhdGVEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKGRvd25s
b2FkRmlsZVByZWZpeFBhdGgpOworICAgIGF1dG8gdGVtcGxhdGVEaXJlY3RvcnkgPSBGaWxlU3lz
dGVtOjpwYXJlbnRQYXRoKGRvd25sb2FkRmlsZVByZWZpeFBhdGgpOwogICAgIGF1dG8gdGVtcGxh
dGVQcmVmaXggPSBGaWxlU3lzdGVtOjpwYXRoR2V0RmlsZU5hbWUoZG93bmxvYWRGaWxlUHJlZml4
UGF0aCk7CiAgICAgZm9yIChhdXRvJiBmaWxlTmFtZSA6IEZpbGVTeXN0ZW06Omxpc3REaXJlY3Rv
cnkodGVtcGxhdGVEaXJlY3RvcnkpKSB7CiAgICAgICAgIGlmICghZmlsZU5hbWUuc3RhcnRzV2l0
aCh0ZW1wbGF0ZVByZWZpeCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvQ29va2llSmFyREIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jdXJsL0Nvb2tpZUphckRCLmNwcAppbmRleCAyNDI1ZjgzZDcyNjI2ZTBlNTBkZmM2YzZj
Yjk1MDY3ZjA2ZjU3NWY1Li5mOGVjOWNmNDdkNGMxZmIwMzhmZjU3NzYzYzEyYWRiYjg3OTUyMGQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2ll
SmFyREIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29r
aWVKYXJEQi5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBib29sIENvb2tpZUphckRCOjpvcGVuRGF0
YWJhc2UoKQogICAgIH0KIAogICAgIGlmICghZXhpc3RzRGF0YWJhc2VGaWxlKSB7Ci0gICAgICAg
IGlmICghRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKEZpbGVTeXN0ZW06OmRpcmVjdG9y
eU5hbWUobV9kYXRhYmFzZVBhdGgpKSkKKyAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjptYWtlQWxs
RGlyZWN0b3JpZXMoRmlsZVN5c3RlbTo6cGFyZW50UGF0aChtX2RhdGFiYXNlUGF0aCkpKQogICAg
ICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8gY3JlYXRlIHRoZSBDb29raWUgRGF0YWJhc2Ug
cGF0aCAlcyIsIG1fZGF0YWJhc2VQYXRoLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgICAgIG1fZGF0
YWJhc2Uub3BlbihtX2RhdGFiYXNlUGF0aCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9zcWwvU1FMaXRlRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9zcWwvU1FMaXRlRmlsZVN5c3RlbS5jcHAKaW5kZXggYzI0ZDIxMWU1ZWIwYjg3ZjkyNGMzNmEx
MzE2Y2JjM2JlYjJiYzhhOS4uNjA5NTlhMTk0MDIwOGRjYzI4NWJmZjE2NjQxMWUwZmQ4MDRkNWFj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZUZpbGVTeXN0
ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVGaWxlU3lzdGVt
LmNwcApAQCAtNjUsNyArNjUsNyBAQCBib29sIFNRTGl0ZUZpbGVTeXN0ZW06OmVuc3VyZURhdGFi
YXNlRmlsZUV4aXN0cyhjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBib29sIGNoZQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoY2hlY2tQYXRoT25seSkgewotICAgICAgICBTdHJpbmcg
ZGlyID0gRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShmaWxlTmFtZSk7CisgICAgICAgIFN0cmlu
ZyBkaXIgPSBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKGZpbGVOYW1lKTsKICAgICAgICAgcmV0dXJu
IGVuc3VyZURhdGFiYXNlRGlyZWN0b3J5RXhpc3RzKGRpcik7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2VhcmNoUG9wdXBNZW51REIuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudURCLmNwcAppbmRleCA2Zjdm
NGJhMTY2MGI0ZjdhOTc3MjEyYzg1NjNhNDNjNjY1ZTMwYjU0Li5mOWMyNGI4ZWQ1NzE4MmVhNTc4
ODdhMDAzMDdlZDhkYjhhM2QwZmZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93aW4vU2VhcmNoUG9wdXBNZW51REIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dpbi9TZWFyY2hQb3B1cE1lbnVEQi5jcHAKQEAgLTE4OCw3ICsxODgsNyBAQCBib29sIFNlYXJj
aFBvcHVwTWVudURCOjpvcGVuRGF0YWJhc2UoKQogICAgIH0KIAogICAgIGlmICghZXhpc3RzRGF0
YWJhc2VGaWxlKSB7Ci0gICAgICAgIGlmICghRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVz
KEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUobV9kYXRhYmFzZUZpbGVuYW1lKSkpCisgICAgICAg
IGlmICghRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKEZpbGVTeXN0ZW06OnBhcmVudFBh
dGgobV9kYXRhYmFzZUZpbGVuYW1lKSkpCiAgICAgICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0
byBjcmVhdGUgdGhlIHNlYXJjaCBhdXRvc2F2ZSBkYXRhYmFzZSBwYXRoICVzIiwgbV9kYXRhYmFz
ZUZpbGVuYW1lLnV0ZjgoKS5kYXRhKCkpOwogCiAgICAgICAgIG1fZGF0YWJhc2Uub3BlbihtX2Rh
dGFiYXNlRmlsZW5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NjcmlwdFN0b3JhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL3NlcnZlci9TV1NjcmlwdFN0b3JhZ2UuY3BwCmluZGV4IGRmYzVkMGI2ZTBkOTgxODhk
OTE0MTBlMThiMjY0ZDM5ZGRiZTIxZWIuLjU5ODFiYjdlYzU5MTk0ODExNDA1YmY5ODA0OWJjMzM1
YzMwYTA2MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTY3JpcHRTdG9yYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2NyaXB0U3RvcmFnZS5jcHAKQEAgLTg0LDcgKzg0LDcgQEAgU2NyaXB0QnVm
ZmVyIFNXU2NyaXB0U3RvcmFnZTo6c3RvcmUoY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bktleSYgcmVnaXN0cmEKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKIAogICAgIGF1dG8g
c2NyaXB0UGF0aCA9IHRoaXMtPnNjcmlwdFBhdGgocmVnaXN0cmF0aW9uS2V5LCBzY3JpcHRVUkwp
OwotICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhGaWxlU3lzdGVtOjpkaXJlY3Rv
cnlOYW1lKHNjcmlwdFBhdGgpKTsKKyAgICBGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMo
RmlsZVN5c3RlbTo6cGFyZW50UGF0aChzY3JpcHRQYXRoKSk7CiAKICAgICBhdXRvIGl0ZXJhdGVP
dmVyQnVmZmVyQW5kV3JpdGVEYXRhID0gWyZdKGNvbnN0IEZ1bmN0aW9uPGJvb2woY29uc3QgdWlu
dDhfdCosIHNpemVfdCk+JiB3cml0ZURhdGEpIHsKICAgICAgICAgZm9yIChhdXRvIGl0ID0gc2Ny
aXB0LmJ1ZmZlcigpLT5iZWdpbigpOyBpdCAhPSBzY3JpcHQuYnVmZmVyKCktPmVuZCgpOyArK2l0
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9y
ZS5jcHAKaW5kZXggMGQ3MjUyYjUzNWNhMmY3ZDA4OGVkOTRlYTI2NGM5NzZjNWQ0MzVjZC4uZTJj
NzcxNWEzMTU2YTBmZjY5NjJhZGVmM2Q5ZmZhYTYwYjFlMDc2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NE
YXRhYmFzZVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCkBAIC0zNjksNyAr
MzY5LDcgQEAgdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6Y2xvc2Uo
KQogdm9pZCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJhc2VTdG9yZTo6b3BlbklUUERhdGFi
YXNlKCkKIHsKICAgICBpZiAoIUZpbGVTeXN0ZW06OmZpbGVFeGlzdHMobV9zdG9yYWdlRGlyZWN0
b3J5UGF0aCkpIHsKLSAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMo
RmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoKSkpIHsKKyAg
ICAgICAgaWYgKCFGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMoRmlsZVN5c3RlbTo6cGFy
ZW50UGF0aChtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoKSkpIHsKICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKE5ldHdvcmssICIlcCAtIFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0
b3JlOjpvcGVuIGZhaWxlZCwgZXJyb3IgbWVzc2FnZTogRmFpbGVkIHRvIGNyZWF0ZSBkaXJlY3Rv
cnkgZGF0YWJhc2UgcGF0aDogJSIgUFVCTElDX0xPR19TVFJJTkcsIHRoaXMsIG1fc3RvcmFnZURp
cmVjdG9yeVBhdGgudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVT
dG9yYWdlRW5naW5lLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2Fj
aGVTdG9yYWdlRW5naW5lLmNwcAppbmRleCBlOGRiOTUyZTEwNDY0YmE3ZTRjZTlmYmNjZTgyNWY1
ZDQzMzUxOGVmLi4xZDA1YjVkNTY2MjQ3ZTg3ZDEyMWM3ODMzNDQwNTMzNmRkYmZmZWRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVu
Z2luZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0
b3JhZ2VFbmdpbmUuY3BwCkBAIC00NjMsNyArNDYzLDcgQEAgdm9pZCBFbmdpbmU6OndyaXRlRmls
ZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBOZXR3b3JrQ2FjaGU6OkRhdGEmJiBkYXRhLCBXZWJD
b3IKICAgICBtX3BlbmRpbmdXcml0ZUNhbGxiYWNrcy5hZGQoKyttX3BlbmRpbmdDYWxsYmFja3ND
b3VudGVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAgICAgbV9pb1F1ZXVlLT5kaXNwYXRjaChbdGhp
cywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cih0aGlzKSwgaWRlbnRpZmllciA9IG1fcGVuZGluZ0Nh
bGxiYWNrc0NvdW50ZXIsIGRhdGEgPSBXVEZNb3ZlKGRhdGEpLCBmaWxlbmFtZSA9IGZpbGVuYW1l
Lmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgewogCi0gICAgICAgIFN0cmluZyBkaXJlY3RvcnlQ
YXRoID0gRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShmaWxlbmFtZSk7CisgICAgICAgIFN0cmlu
ZyBkaXJlY3RvcnlQYXRoID0gRmlsZVN5c3RlbTo6cGFyZW50UGF0aChmaWxlbmFtZSk7CiAgICAg
ICAgIGlmICghRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhkaXJlY3RvcnlQYXRoKSkKICAgICAgICAg
ICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhkaXJlY3RvcnlQYXRoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ2xpYi9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhH
TGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvUHJvY2Vzc0V4ZWN1dGFibGVQYXRo
R0xpYi5jcHAKaW5kZXggYTFlMDVmNTJjYzJmNTNjOTI0MGZhMmM3NGY3ODdiZDdiZWI3NjQ2MS4u
ODYyZjgzNzgzYzQxYzZjMzcyMGFiYjNmOWJjNjQzYWQ4NmY3Yjk1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9TaGFyZWQvZ2xpYi9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhHTGliLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9nbGliL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEdMaWIuY3Bw
CkBAIC0zOCw3ICszOCw3IEBAIHN0YXRpYyBTdHJpbmcgZ2V0RXhlY3V0YWJsZVBhdGgoKQogewog
ICAgIENTdHJpbmcgZXhlY3V0YWJsZVBhdGggPSBnZXRDdXJyZW50RXhlY3V0YWJsZVBhdGgoKTsK
ICAgICBpZiAoIWV4ZWN1dGFibGVQYXRoLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gRmlsZVN5
c3RlbTo6ZGlyZWN0b3J5TmFtZShGaWxlU3lzdGVtOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJl
c2VudGF0aW9uKGV4ZWN1dGFibGVQYXRoLmRhdGEoKSkpOworICAgICAgICByZXR1cm4gRmlsZVN5
c3RlbTo6cGFyZW50UGF0aChGaWxlU3lzdGVtOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uKGV4ZWN1dGFibGVQYXRoLmRhdGEoKSkpOwogICAgIHJldHVybiB7IH07CiB9CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRh
YmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29uRGF0YWJhc2Uu
Y3BwCmluZGV4IGY0NTA2ZjhiZDE0MGZkNDk0YzExMDBhY2ZhNDQ1MzRkMDRhMWU3ZGIuLjMzOTYw
MmE0OWYxMTQzZDlmZmU0NjMwNWFiMWFkOTlhNjg3NGNiNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcApAQCAtNTksNyArNTksNyBA
QCBJY29uRGF0YWJhc2U6Okljb25EYXRhYmFzZShjb25zdCBTdHJpbmcmIHBhdGgsIEFsbG93RGF0
YWJhc2VXcml0ZSBhbGxvd0RhdGFiYXNlVwogICAgICAgICBpZiAoYWxsb3dEYXRhYmFzZVdyaXRl
ID09IEFsbG93RGF0YWJhc2VXcml0ZTo6Tm8gJiYgIUZpbGVTeXN0ZW06OmZpbGVFeGlzdHMocGF0
aCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYXV0byBkYXRhYmFzZURpcmVjdG9y
eSA9IEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUocGF0aCk7CisgICAgICAgIGF1dG8gZGF0YWJh
c2VEaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKHBhdGgpOwogICAgICAgICBGaWxl
U3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMoZGF0YWJhc2VEaXJlY3RvcnkpOwogICAgICAgICBp
ZiAoIW1fZGIub3BlbihwYXRoKSkgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJVbmFibGUgdG8g
b3BlbiBmYXZpY29uIGRhdGFiYXNlIGF0IHBhdGggJXMgLSAlcyIsIHBhdGgudXRmOCgpLmRhdGEo
KSwgbV9kYi5sYXN0RXJyb3JNc2coKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcAppbmRleCA0
YzRlZjVkNjhhYzNhMWI1Y2I2YWNiOTU1OWE4ZmQ1M2ZhYmQxOGU3Li5hMzM5YWMwOWI0YWExZTg3
YzNmOGE1ZGRlMzllNmYyNzRjZDJmZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJzaXRlRGF0YU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVEYXRhTWFuYWdlci5jcHAKQEAg
LTYzMyw3ICs2MzMsNyBAQCBjb25zdCBnY2hhciogd2Via2l0X3dlYnNpdGVfZGF0YV9tYW5hZ2Vy
X2dldF9kaXNrX2NhY2hlX2RpcmVjdG9yeShXZWJLaXRXZWJzaXRlRAogCiAgICAgaWYgKCFwcml2
LT5kaXNrQ2FjaGVEaXJlY3RvcnkpIHsKICAgICAgICAgLy8gVGhlIGRlZmF1bHQgZGlyZWN0b3J5
IGFscmVhZHkgaGFzIHRoZSBzdWJkaXJlY3RvcnkuCi0gICAgICAgIHByaXYtPmRpc2tDYWNoZURp
cmVjdG9yeS5yZXNldChnX3N0cmR1cChGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKFdlYktpdDo6
V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVsdE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpKS51dGY4KCku
ZGF0YSgpKSk7CisgICAgICAgIHByaXYtPmRpc2tDYWNoZURpcmVjdG9yeS5yZXNldChnX3N0cmR1
cChGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6ZGVmYXVs
dE5ldHdvcmtDYWNoZURpcmVjdG9yeSgpKS51dGY4KCkuZGF0YSgpKSk7CiAgICAgfQogICAgIHJl
dHVybiBwcml2LT5kaXNrQ2FjaGVEaXJlY3RvcnkuZ2V0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0J1YmJsZXdyYXBMYXVuY2hlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0J1YmJsZXdyYXBMYXVuY2hl
ci5jcHAKaW5kZXggZTE4MzAxMjllNDVhNDQ4MDJmNGM2OWJhOTg4OWYyZGMyZTkzOTAxZS4uODUw
ODk1MWY1NDYyYWQzYzhmOWU1OWNmOTk1ZmQzYmFmZDkwZTdhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTGF1bmNoZXIvZ2xpYi9CdWJibGV3cmFwTGF1bmNoZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVyL2dsaWIvQnViYmxld3JhcExhdW5j
aGVyLmNwcApAQCAtOTAwLDE0ICs5MDAsMTQgQEAgR1JlZlB0cjxHU3VicHJvY2Vzcz4gYnViYmxl
d3JhcFNwYXduKEdTdWJwcm9jZXNzTGF1bmNoZXIqIGxhdW5jaGVyLCBjb25zdCBQcm9jZXMKICNp
ZiBFTkFCTEUoREVWRUxPUEVSX01PREUpCiAgICAgY29uc3QgY2hhciogZXhlY0RpcmVjdG9yeSA9
IGdfZ2V0ZW52KCJXRUJLSVRfRVhFQ19QQVRIIik7CiAgICAgaWYgKGV4ZWNEaXJlY3RvcnkpIHsK
LSAgICAgICAgU3RyaW5nIHBhcmVudERpciA9IEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUoRmls
ZVN5c3RlbTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihleGVjRGlyZWN0b3J5
KSk7CisgICAgICAgIFN0cmluZyBwYXJlbnREaXIgPSBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKEZp
bGVTeXN0ZW06OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZXhlY0RpcmVjdG9y
eSkpOwogICAgICAgICBiaW5kSWZFeGlzdHMoc2FuZGJveEFyZ3MsIHBhcmVudERpci51dGY4KCku
ZGF0YSgpKTsKICAgICB9CiAKICAgICBDU3RyaW5nIGV4ZWN1dGFibGVQYXRoID0gZ2V0Q3VycmVu
dEV4ZWN1dGFibGVQYXRoKCk7CiAgICAgaWYgKCFleGVjdXRhYmxlUGF0aC5pc051bGwoKSkgewog
ICAgICAgICAvLyBPdXIgZXhlY3V0YWJsZSBpcyBgL2Zvby9iYXIvYmluL1Byb2Nlc3NgLCB3ZSB3
YW50IGAvZm9vL2JhcmAgYXMgYSB1c2FibGUgcHJlZml4Ci0gICAgICAgIFN0cmluZyBwYXJlbnRE
aXIgPSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUo
RmlsZVN5c3RlbTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihleGVjdXRhYmxl
UGF0aC5kYXRhKCkpKSk7CisgICAgICAgIFN0cmluZyBwYXJlbnREaXIgPSBGaWxlU3lzdGVtOjpw
YXJlbnRQYXRoKEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoRmlsZVN5c3RlbTo6c3RyaW5nRnJvbUZp
bGVTeXN0ZW1SZXByZXNlbnRhdGlvbihleGVjdXRhYmxlUGF0aC5kYXRhKCkpKSk7CiAgICAgICAg
IGJpbmRJZkV4aXN0cyhzYW5kYm94QXJncywgcGFyZW50RGlyLnV0ZjgoKS5kYXRhKCkpOwogICAg
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURh
dGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURhdGFTdG9yZUNvY29hLm1tCmluZGV4IGM0MTk3
NWZlYThhODZjNzRlNjZjOTIwMDU3ZDYxYzdmNThmZjEyYjUuLmYyZDkyZjE5N2QxN2NhMjk3MGQw
N2RjMTQwYWIwMGE2MWMxMzU4ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29jb2Eu
bW0KQEAgLTE5Miw3ICsxOTIsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnBsYXRmb3JtU2V0
TmV0d29ya1BhcmFtZXRlcnMoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmCiAgICAgcGFyYW1l
dGVycy51aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllciA9IG1fdWlQcm9jZXNzQ29va2ll
U3RvcmFnZUlkZW50aWZpZXI7CiAKICAgICBpZiAoIWNvb2tpZUZpbGUuaXNFbXB0eSgpKQotICAg
ICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JSZWFkV3JpdGVEaXJlY3Rvcnko
RmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShjb29raWVGaWxlKSwgcGFyYW1ldGVycy5jb29raWVT
dG9yYWdlUGF0aEV4dGVuc2lvbkhhbmRsZSk7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNy
ZWF0ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKGNv
b2tpZUZpbGUpLCBwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxlKTsK
IH0KIAogI2lmIEhBVkUoQ0ZORVRXT1JLX0FMVEVSTkFUSVZFX1NFUlZJQ0UpIHx8IEhBVkUoTkVU
V09SS19MT0FERVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRl
RGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDk2Zjc4ZmNlNmM2YWM1Y2IyODBhMTMy
NWM2MmUxYmNiYzIwZDg3YTYuLjMxMTcwMTQyOWNlZTg4OWYzOWRlZjM5ZWQ2NjBlNGQyOGRjOTk5
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNp
dGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC0yNjgsNyArMjY4LDcgQEAgdm9pZCBXZWJzaXRlRGF0
YVN0b3JlOjpyZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSgpCiAKICAgICAvLyBSZXNvbHZl
IGRpcmVjdG9yaWVzIGZvciBmaWxlIHBhdGhzLgogICAgIGlmICghbV9jb25maWd1cmF0aW9uLT5j
b29raWVTdG9yYWdlRmlsZSgpLmlzRW1wdHkoKSkgewotICAgICAgICBtX3Jlc29sdmVkQ29uZmln
dXJhdGlvbi0+c2V0Q29va2llU3RvcmFnZUZpbGUocmVzb2x2ZUFuZENyZWF0ZVJlYWRXcml0ZURp
cmVjdG9yeUZvclNhbmRib3hFeHRlbnNpb24oRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShtX2Nv
bmZpZ3VyYXRpb24tPmNvb2tpZVN0b3JhZ2VGaWxlKCkpKSk7CisgICAgICAgIG1fcmVzb2x2ZWRD
b25maWd1cmF0aW9uLT5zZXRDb29raWVTdG9yYWdlRmlsZShyZXNvbHZlQW5kQ3JlYXRlUmVhZFdy
aXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKG1f
Y29uZmlndXJhdGlvbi0+Y29va2llU3RvcmFnZUZpbGUoKSkpKTsKICAgICAgICAgbV9yZXNvbHZl
ZENvbmZpZ3VyYXRpb24tPnNldENvb2tpZVN0b3JhZ2VGaWxlKEZpbGVTeXN0ZW06OnBhdGhCeUFw
cGVuZGluZ0NvbXBvbmVudChtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+Y29va2llU3RvcmFnZUZp
bGUoKSwgRmlsZVN5c3RlbTo6cGF0aEdldEZpbGVOYW1lKG1fY29uZmlndXJhdGlvbi0+Y29va2ll
U3RvcmFnZUZpbGUoKSkpKTsKICAgICB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYktpdExlZ2FjeS9TdG9y
YWdlL1N0b3JhZ2VUcmFja2VyLmNwcAppbmRleCAwNjEwYzk0NmYyZWRmOTg2ZWJjYTk4YjZhN2Qy
MWJmMGE5MzM5NjQ2Li44MzYwNDcxYmUzZTQxN2FhNTA3NjVkOWE2OWNkNjRhMWU3NmJiYmJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKQEAg
LTExMyw3ICsxMTMsNyBAQCBTdHJpbmcgU3RvcmFnZVRyYWNrZXI6OnRyYWNrZXJEYXRhYmFzZVBh
dGgoKQogc3RhdGljIGJvb2wgZW5zdXJlRGF0YWJhc2VGaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYg
ZmlsZU5hbWUsIGJvb2wgY3JlYXRlSWZEb2VzTm90RXhpc3QpCiB7CiAgICAgaWYgKGNyZWF0ZUlm
RG9lc05vdEV4aXN0KQotICAgICAgICByZXR1cm4gRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9y
aWVzKEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUoZmlsZU5hbWUpKTsKKyAgICAgICAgcmV0dXJu
IEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKGZp
bGVOYW1lKSk7CiAKICAgICByZXR1cm4gRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhmaWxlTmFtZSk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9QbHVnaW5zL1BsdWdpbkRh
dGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1BsdWdpbnMvUGx1Z2luRGF0YWJh
c2UuY3BwCmluZGV4IDlkNDJjZDVjODk4YTgxYWRmZGJjNmI0ZTFjMzE2ZjViM2Q2YWQwNzQuLmQy
ZmI3NWY2NWNlNDYxZjhlMGFkNzRmODY0ZmMwYWVkM2JjZmI1OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL1BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwCkBAIC01MTUsNyAr
NTE1LDcgQEAgdm9pZCBQbHVnaW5EYXRhYmFzZTo6bG9hZFBlcnNpc3RlbnRNZXRhZGF0YUNhY2hl
KCkKIAogICAgICAgICAvLyBTa2lwIG1ldGFkYXRhIHRoYXQgcG9pbnRzIHRvIHBsdWdpbnMgZnJv
bSBkaXJlY3RvcmllcyB0aGF0CiAgICAgICAgIC8vIGFyZSBub3QgcGFydCBvZiBwbHVnaW4gZGly
ZWN0b3J5IGxpc3QgYW55bW9yZS4KLSAgICAgICAgU3RyaW5nIHBsdWdpbkRpcmVjdG9yeU5hbWUg
PSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKHBhdGgpOworICAgICAgICBTdHJpbmcgcGx1Z2lu
RGlyZWN0b3J5TmFtZSA9IEZpbGVTeXN0ZW06OnBhcmVudFBhdGgocGF0aCk7CiAgICAgICAgIGlm
IChtX3BsdWdpbkRpcmVjdG9yaWVzLmZpbmQocGx1Z2luRGlyZWN0b3J5TmFtZSkgPT0gV1RGOjpu
b3RGb3VuZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMzhiMjFkNTg3NjdiZDlkODliMDAzYmY3NWYx
Nzg4YzM1ZTU5N2E0Zi4uZThjZmM5ZTQwYmRkN2U1YjNmNjVlMTk0ZmY4YTQxZGVmYmJjNTBkNiAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIwIEBACisyMDIxLTA1LTEzICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVuYW1lIEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUoKSB0byBGaWxlU3lzdGVt
OjpwYXJlbnRQYXRoKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyNTc2OAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAg
ICAgIFJlbmFtZSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKCkgdG8gRmlsZVN5c3RlbTo6cGFy
ZW50UGF0aCgpIGZvciBjbGFyaXR5IGFuZAorICAgICAgICBjb25zaXN0ZW5jeSB3aXRoIHN0ZDo6
ZmlsZXN5c3RlbTo6cGFyZW50X3BhdGgoKSB3aGljaCBpcyB1c2VkIGludGVybmFsbHkuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAo
ZmluZEZvbnRGYWxsYmFjayk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYvRmls
ZVN5c3RlbS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUX0YpOgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvd2luL1BsYXRmb3JtVXRpbGl0aWVzV2luLmNwcDoKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlV0aWw6Om1vZHVsZURpcmVjdG9yeSk6CisKIDIwMjEtMDUtMTMgIEpvbmF0
aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtydW4tYXBpLXRlc3Rz
XSBVc2UgUHl0aG9uIDMgKFBhcnQgMSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJl
bmRlclRyZWUuY3BwCmluZGV4IGM2ZmNkNjE4NzRmMGEwYzU4YjM1N2M5MzYwZWQ2YWM2OWEwYzdj
ZjEuLmE4YzY2MGNmODcxMTRlZDVlM2QxMTcwMTA2YjBlMTNlY2MwMThhMWQgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMTEwNiw3ICsxMTA2LDcg
QEAgc3RhdGljIHZvaWQgc2l6ZVdlYlZpZXdGb3JDdXJyZW50VGVzdCgpCiAKIHN0YXRpYyBTdHJp
bmcgZmluZEZvbnRGYWxsYmFjayhjb25zdCBjaGFyKiBwYXRoT3JVcmwpCiB7Ci0gICAgU3RyaW5n
IHBhdGhUb0ZvbnRGYWxsYmFjayA9IEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUocGF0aE9yVXJs
KTsKKyAgICBTdHJpbmcgcGF0aFRvRm9udEZhbGxiYWNrID0gRmlsZVN5c3RlbTo6cGFyZW50UGF0
aChwYXRoT3JVcmwpOwogCiAgICAgd2NoYXJfdCBmdWxsUGF0aFtfTUFYX1BBVEhdOwogICAgIGlm
ICghX3dmdWxscGF0aChmdWxsUGF0aCwgcGF0aFRvRm9udEZhbGxiYWNrLndpZGVDaGFyYWN0ZXJz
KCkuZGF0YSgpLCBfTUFYX1BBVEgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XVEYvRmlsZVN5c3RlbS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9G
aWxlU3lzdGVtLmNwcAppbmRleCAxMzdhMDE3OTAzNWVjODAzNWUxNzQ2NjZhZDIzNzY0OGM0MGNj
NWUzLi5kNWQ4NjRmZGI0MWIzMTIyNDEwMmIyZDZmMGI2Mjc2YzU5NDhlNDU4IDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcApAQCAtMjQ0LDcgKzI0NCw3
IEBAIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgR2V0RmlsZU1ldGFkYXRhSGlkZGVuRmlsZSkKIFRF
U1RfRihGaWxlU3lzdGVtVGVzdCwgVW5pY29kZURpcmVjdG9yeU5hbWUpCiB7CiAgICAgU3RyaW5n
IHBhdGggPSBTdHJpbmc6OmZyb21VVEY4KCIvdGVzdC9hXHUwMzA4bG8vdGVzdC50eHQiKTsKLSAg
ICBTdHJpbmcgZGlyZWN0b3J5TmFtZSA9IEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUocGF0aCk7
CisgICAgU3RyaW5nIGRpcmVjdG9yeU5hbWUgPSBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKHBhdGgp
OwogICAgIFN0cmluZyBleHBlY3RlZERpcmVjdG9yeU5hbWUgPSBTdHJpbmc6OmZyb21VVEY4KCIv
dGVzdC9hXHUwMzA4bG8iKTsKICAgICBFWFBFQ1RfVFJVRShleHBlY3RlZERpcmVjdG9yeU5hbWUg
PT0gZGlyZWN0b3J5TmFtZSk7CiB9CkBAIC03MjksMTkgKzcyOSwxOSBAQCBURVNUX0YoRmlsZVN5
c3RlbVRlc3QsIHBhdGhHZXRGaWxlTmFtZSkKICNlbmRpZgogfQogCi1URVNUX0YoRmlsZVN5c3Rl
bVRlc3QsIGRpcmVjdG9yeU5hbWUpCitURVNUX0YoRmlsZVN5c3RlbVRlc3QsIHBhcmVudFBhdGgp
CiB7CiAgICAgYXV0byB0ZXN0UGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudHModGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCB7ICJzdWJmb2xkZXIiLCAiZmlsZW5hbWUudHh0
IiB9KTsKLSAgICBFWFBFQ1RfU1RSRVEoRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KHRlbXBFbXB0eUZvbGRlclBhdGgoKSwgInN1YmZvbGRlciIpLnV0ZjgoKS5kYXRhKCksIEZp
bGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUodGVzdFBhdGgpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVY
UEVDVF9TVFJFUShGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVtcHR5
Rm9sZGVyUGF0aCgpLCAic3ViZm9sZGVyIikudXRmOCgpLmRhdGEoKSwgRmlsZVN5c3RlbTo6cGFy
ZW50UGF0aCh0ZXN0UGF0aCkudXRmOCgpLmRhdGEoKSk7CiAjaWYgT1MoVU5JWCkKLSAgICBFWFBF
Q1RfU1RSRVEoIi92YXIvdG1wIiwgRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSgiL3Zhci90bXAv
ZXhhbXBsZS50eHQiKS51dGY4KCkuZGF0YSgpKTsKLSAgICBFWFBFQ1RfU1RSRVEoIi92YXIvdG1w
IiwgRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSgiL3Zhci90bXAvIikudXRmOCgpLmRhdGEoKSk7
Ci0gICAgRVhQRUNUX1NUUkVRKCIvdmFyL3RtcCIsIEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUo
Ii92YXIvdG1wLy4iKS51dGY4KCkuZGF0YSgpKTsKLSAgICBFWFBFQ1RfU1RSRVEoIi8iLCBGaWxl
U3lzdGVtOjpkaXJlY3RvcnlOYW1lKCIvIikudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NU
UkVRKCIvdmFyL3RtcCIsIEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoIi92YXIvdG1wL2V4YW1wbGUu
dHh0IikudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCIvdmFyL3RtcCIsIEZpbGVT
eXN0ZW06OnBhcmVudFBhdGgoIi92YXIvdG1wLyIpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVD
VF9TVFJFUSgiL3Zhci90bXAiLCBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKCIvdmFyL3RtcC8uIiku
dXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCIvIiwgRmlsZVN5c3RlbTo6cGFyZW50
UGF0aCgiLyIpLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAjaWYgT1MoV0lORE9XUykKLSAgICBF
WFBFQ1RfU1RSRVEoIkM6XFxmb28iLCBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKCJDOlxcZm9v
XFxleGFtcGxlLnR4dCIpLnV0ZjgoKS5kYXRhKCkpOwotICAgIEVYUEVDVF9TVFJFUSgiQzpcXCIs
IEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUoIkM6XFwiKS51dGY4KCkuZGF0YSgpKTsKKyAgICBF
WFBFQ1RfU1RSRVEoIkM6XFxmb28iLCBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKCJDOlxcZm9vXFxl
eGFtcGxlLnR4dCIpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiQzpcXCIsIEZp
bGVTeXN0ZW06OnBhcmVudFBhdGgoIkM6XFwiKS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgogfQog
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9QbGF0Zm9ybVV0aWxpdGllc1dp
bi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9QbGF0Zm9ybVV0aWxpdGllc1dpbi5jcHAK
aW5kZXggM2Q1OWQyNTUwMjdmOTRkNDM5Yzg3OGQ5MWVlYWEyNjg5OGYzMzRmZC4uNTA4ZmU4MmUy
N2IwMGJmMTIxZGQ1NTJhYTRiZWJiZTkyYTBjMjI1YSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdl
YktpdEFQSS93aW4vUGxhdGZvcm1VdGlsaXRpZXNXaW4uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvd2luL1BsYXRmb3JtVXRpbGl0aWVzV2luLmNwcApAQCAtMzksNyArMzksNyBAQCBzdGF0
aWMgU3RyaW5nIG1vZHVsZURpcmVjdG9yeSgpCiAgICAgd2NoYXJfdCBmaWxlbmFtZVtidWZmZXJM
ZW5ndGhdOwogICAgIGF1dG8gbGVuID0gR2V0TW9kdWxlRmlsZU5hbWUobnVsbHB0ciwgZmlsZW5h
bWUsIGJ1ZmZlckxlbmd0aCk7CiAgICAgQVNTRVJUKGxlbiA+IDApOwotICAgIHJldHVybiBGaWxl
U3lzdGVtOjpkaXJlY3RvcnlOYW1lKFN0cmluZyhmaWxlbmFtZSwgbGVuKSk7CisgICAgcmV0dXJu
IEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoU3RyaW5nKGZpbGVuYW1lLCBsZW4pKTsKIH0KIAogV0tT
dHJpbmdSZWYgY3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428548</attachid>
            <date>2021-05-13 12:45:36 -0700</date>
            <delta_ts>2021-05-13 13:47:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225768-20210513124535.patch</filename>
            <type>text/plain</type>
            <size>30845</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NDQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBm
Njk5YzY2OTIxODg5NTU3ODhlMDc5MmQzMjUzNjM5NTNkNThlMjgyLi5mMTAwMjJjNTNjNzNjZWZi
OWU5NTQwNjFlZTdhYzk5ZjIzNmU3N2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAyMS0wNS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFJlbmFtZSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKCkgdG8gRmlsZVN5c3Rl
bTo6cGFyZW50UGF0aCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjU3NjgKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBSZW5hbWUgRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSgpIHRvIEZpbGVTeXN0ZW06OnBh
cmVudFBhdGgoKSBmb3IgY2xhcml0eSBhbmQKKyAgICAgICAgY29uc2lzdGVuY3kgd2l0aCBzdGQ6
OmZpbGVzeXN0ZW06OnBhcmVudF9wYXRoKCkgd2hpY2ggaXMgdXNlZCBpbnRlcm5hbGx5LgorCisg
ICAgICAgICogQVBJL0pTU2NyaXB0Lm1tOgorICAgICAgICAodmFsaWRhdGVCeXRlY29kZUNhY2hl
UGF0aCk6CisKIDIwMjEtMDUtMTMgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJlbW92ZSBTdHJpbmdCdWlsZGVyOjphcHBlbmROdW1iZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggYWUwOGQwN2E0
ZThmNWQ2ZGE0ZTc1OGY1ZDM3NTRlNGFhZWFjOWI3MC4uMmIzODBkZGEzYmUxODIzZDM0ZmIwZmNk
ZmIxY2JkM2M4N2MwZTdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMS0wNS0xMyAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBGaWxlU3lzdGVtOjpk
aXJlY3RvcnlOYW1lKCkgdG8gRmlsZVN5c3RlbTo6cGFyZW50UGF0aCgpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3NjgKKworICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBSZW5hbWUgRmlsZVN5c3RlbTo6ZGlyZWN0
b3J5TmFtZSgpIHRvIEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoKSBmb3IgY2xhcml0eSBhbmQKKyAg
ICAgICAgY29uc2lzdGVuY3kgd2l0aCBzdGQ6OmZpbGVzeXN0ZW06OnBhcmVudF9wYXRoKCkgd2hp
Y2ggaXMgdXNlZCBpbnRlcm5hbGx5LgorCisgICAgICAgICogd3RmL0ZpbGVTeXN0ZW0uY3BwOgor
ICAgICAgICAoV1RGOjpGaWxlU3lzdGVtSW1wbDo6cmVhZE9yTWFrZVNhbHQpOgorICAgICAgICAo
V1RGOjpGaWxlU3lzdGVtSW1wbDo6cGFyZW50UGF0aCk6CisgICAgICAgIChXVEY6OkZpbGVTeXN0
ZW1JbXBsOjpkaXJlY3RvcnlOYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKiB3dGYvRmlsZVN5c3Rl
bS5oOgorCiAyMDIxLTA1LTEzICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbV1RGXSBBZGQgaG9sZExvY2soKSBvdmVybG9hZCBmb3IgV1RGOjpEYXRh
TXV0ZXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZwppbmRleCA2NDZkN2Q2NTdmOWExNmUzYmRhOWUwYmU0MDQ1NGI3ZGIxODE4
NDcxLi40ZGI2YjE0MjRjMzNhOGFkY2JkMDIwMmVmZjYzNDdjZTE4Njc1YjQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMDUtMTMgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBSZW5hbWUgRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSgpIHRvIEZp
bGVTeXN0ZW06OnBhcmVudFBhdGgoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjI1NzY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CisKKyAgICAgICAgUmVuYW1lIEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUoKSB0byBGaWxlU3lz
dGVtOjpwYXJlbnRQYXRoKCkgZm9yIGNsYXJpdHkgYW5kCisgICAgICAgIGNvbnNpc3RlbmN5IHdp
dGggc3RkOjpmaWxlc3lzdGVtOjpwYXJlbnRfcGF0aCgpIHdoaWNoIGlzIHVzZWQgaW50ZXJuYWxs
eS4KKworICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRPTUZpbGVTeXN0ZW06OkRPTUZpbGVTeXN0ZW0pOgorICAgICAgICAq
IGxvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6d3JpdGVEYXRhVG9VbmlxdWVGaWxlSW5E
aXJlY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25DYWNoZVN0b3JhZ2U6OmNo
ZWNrRm9yRGVsZXRlZFJlc291cmNlcyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbkFWQ29udGVudEtleVNlc3Npb24ubW06CisgICAgICAg
IChXZWJDb3JlOjpDRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbjo6Y29udGVudEtleVNlc3Np
b24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyOjpwdXJnZU9sZERvd25sb2FkRmlsZXMpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvY3VybC9Db29raWVKYXJEQi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb29raWVKYXJE
Qjo6b3BlbkRhdGFiYXNlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRmlsZVN5c3Rl
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVGaWxlU3lzdGVtOjplbnN1cmVEYXRhYmFz
ZUZpbGVFeGlzdHMpOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVEQi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTZWFyY2hQb3B1cE1lbnVEQjo6b3BlbkRhdGFiYXNlKToK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2NyaXB0U3RvcmFnZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTV1NjcmlwdFN0b3JhZ2U6OnN0b3JlKToKKwogMjAyMS0wNS0xMyAg
SmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbIG1hY09TIFdrMiBd
IG1lZGlhL21lZGlhLWZyYWdtZW50cy9UQzAwNTEuaHRtbCBpcyBmbGFrZXkgY3Jhc2hpbmcKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggYzgxMGQ1NjJmYjkwOTcwOTA1NDE5YWJhMjgyODE3Y2FlMWVjN2ZlNi4uMGE5MjE3
YTliNTBiNzhiMWNiMTg2NjJlNmQxZWYzOWQyYTFhOTA3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
MCBAQAorMjAyMS0wNS0xMyAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFJlbmFtZSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKCkgdG8gRmlsZVN5c3RlbTo6cGFy
ZW50UGF0aCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjU3NjgKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBS
ZW5hbWUgRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSgpIHRvIEZpbGVTeXN0ZW06OnBhcmVudFBh
dGgoKSBmb3IgY2xhcml0eSBhbmQKKyAgICAgICAgY29uc2lzdGVuY3kgd2l0aCBzdGQ6OmZpbGVz
eXN0ZW06OnBhcmVudF9wYXRoKCkgd2hpY2ggaXMgdXNlZCBpbnRlcm5hbGx5LgorCisgICAgICAg
ICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YWJh
c2VTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRh
YmFzZVN0b3JlOjpvcGVuSVRQRGF0YWJhc2UpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2Nh
Y2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFn
ZTo6RW5naW5lOjp3cml0ZUZpbGUpOgorICAgICAgICAqIFNoYXJlZC9nbGliL1Byb2Nlc3NFeGVj
dXRhYmxlUGF0aEdMaWIuY3BwOgorICAgICAgICAoV2ViS2l0OjpnZXRFeGVjdXRhYmxlUGF0aCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6Okljb25EYXRhYmFzZTo6SWNvbkRhdGFiYXNlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcDoKKyAgICAgICAgKHdlYmtp
dF93ZWJzaXRlX2RhdGFfbWFuYWdlcl9nZXRfZGlza19jYWNoZV9kaXJlY3RvcnkpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9nbGliL0J1YmJsZXdyYXBMYXVuY2hlci5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OmJ1YmJsZXdyYXBTcGF3bik6CisgICAgICAgICogVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6
V2Vic2l0ZURhdGFTdG9yZTo6cGxhdGZvcm1TZXROZXR3b3JrUGFyYW1ldGVycyk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpyZXNvbHZlRGlyZWN0b3JpZXNJZk5lY2Vzc2FyeSk6
CisKIDIwMjEtMDUtMTMgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAg
IENHRGlzcGxheUxpc3QgZGVidWcgY29uZmlndXJhdGlvbiBmYWlscyB0byBidWlsZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L0NoYW5nZUxvZwppbmRleCBmYmI0MWUyNmFhMDFlMDZiMzQ4YjJmZTM5ODc5ZWFjZjM3NDBkMjdh
Li5lMThjMzBmOWU3MTEwNzVjOWUxY2VmMWY4OTQyNjkyM2FmODc4YmFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0No
YW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIxLTA1LTEzICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CisKKyAgICAgICAgUmVuYW1lIEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUo
KSB0byBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTc2OAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgorCisgICAgICAgIFJlbmFtZSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKCkgdG8g
RmlsZVN5c3RlbTo6cGFyZW50UGF0aCgpIGZvciBjbGFyaXR5IGFuZAorICAgICAgICBjb25zaXN0
ZW5jeSB3aXRoIHN0ZDo6ZmlsZXN5c3RlbTo6cGFyZW50X3BhdGgoKSB3aGljaCBpcyB1c2VkIGlu
dGVybmFsbHkuCisKKyAgICAgICAgKiBTdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6ZW5zdXJlRGF0YWJhc2VGaWxlRXhpc3RzKToKKwogMjAyMS0wNS0xMSAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFBvcnQgV1RGOjpGaWxlU3lz
dGVtOjpsaXN0RGlyZWN0b3J5IHRvIHN0ZDo6ZmlsZXN5c3RlbQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hh
bmdlTG9nCmluZGV4IGRhZjEzZjM5NTMyOGJiYWJmNjlmOGEzYmFkNjA4MDZlZjYwN2U5NTQuLjU0
Njc3OGFhYTA0MGVjODZhMTRkNmJlYzMxYTQyNTdhYzY0NmIxODkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0wNS0xMyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFJlbmFtZSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlO
YW1lKCkgdG8gRmlsZVN5c3RlbTo6cGFyZW50UGF0aCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU3NjgKKworICAgICAgICBSZXZpZXdlZCBieSBE
YXJpbiBBZGxlci4KKworICAgICAgICBSZW5hbWUgRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSgp
IHRvIEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoKSBmb3IgY2xhcml0eSBhbmQKKyAgICAgICAgY29u
c2lzdGVuY3kgd2l0aCBzdGQ6OmZpbGVzeXN0ZW06OnBhcmVudF9wYXRoKCkgd2hpY2ggaXMgdXNl
ZCBpbnRlcm5hbGx5LgorCisgICAgICAgICogUGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpQbHVnaW5EYXRhYmFzZTo6bG9hZFBlcnNpc3RlbnRNZXRhZGF0YUNh
Y2hlKToKKwogMjAyMS0wNS0xMyAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVtb3ZlIFN0cmluZ0J1aWxkZXI6OmFwcGVuZE51bWJlcgpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNTY3JpcHQubW0KaW5kZXggMjNmNTkxNDMzZWI3ZTIyNzgwOTEyYzQ4MGM0NDg2YjYz
NDc5YzNkMC4uOTY2ZGUzNWVhOWQzNjQzNjU5NDRlNzI4Y2Y5OGMwZWQ2OTAwZTFmNiAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1NjcmlwdC5tbQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTU2NyaXB0Lm1tCkBAIC04NCw3ICs4NCw3IEBAIHN0YXRpYyBi
b29sIHZhbGlkYXRlQnl0ZWNvZGVDYWNoZVBhdGgoTlNVUkwqIGNhY2hlUGF0aCwgTlNFcnJvcioq
IGVycm9yKQogICAgICAgICB9CiAgICAgfQogCi0gICAgU3RyaW5nIGRpcmVjdG9yeSA9IEZpbGVT
eXN0ZW06OmRpcmVjdG9yeU5hbWUoc3lzdGVtUGF0aCk7CisgICAgU3RyaW5nIGRpcmVjdG9yeSA9
IEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoc3lzdGVtUGF0aCk7CiAgICAgaWYgKGRpcmVjdG9yeS5p
c051bGwoKSkgewogICAgICAgICBjcmVhdGVFcnJvcihbTlNTdHJpbmcgc3RyaW5nV2l0aEZvcm1h
dDpAIkNhY2hlIHBhdGggYCVAYCBkb2VzIG5vdCBjb250YWluIGluIGEgdmFsaWQgZGlyZWN0b3J5
Iiwgc3RhdGljX2Nhc3Q8TlNTdHJpbmcgKj4oc3lzdGVtUGF0aCldLCBlcnJvcik7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uY3Bw
IGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKaW5kZXggMjU2MmFhOWU0ZDI0ZjI2NDY3
ZDJlNTA3MzAwMzhiMjljNGVhODJkNS4uOTE5ZGM1Y2I0OTRmZDdlNzI1ZGJmM2YxMTBlOGJiNzFj
ODQxYjNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKKysrIGIv
U291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5jcHAKQEAgLTUxOCw3ICs1MTgsNyBAQCBPcHRpb25h
bDxTYWx0PiByZWFkT3JNYWtlU2FsdChjb25zdCBTdHJpbmcmIHBhdGgpCiAgICAgfQogCiAgICAg
U2FsdCBzYWx0ID0gbWFrZVNhbHQoKTsKLSAgICBGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3Jp
ZXMoRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShwYXRoKSk7CisgICAgRmlsZVN5c3RlbTo6bWFr
ZUFsbERpcmVjdG9yaWVzKEZpbGVTeXN0ZW06OnBhcmVudFBhdGgocGF0aCkpOwogICAgIGF1dG8g
ZmlsZSA9IEZpbGVTeXN0ZW06Om9wZW5GaWxlKHBhdGgsIEZpbGVTeXN0ZW06OkZpbGVPcGVuTW9k
ZTo6V3JpdGUsIEZpbGVTeXN0ZW06OkZpbGVBY2Nlc3NQZXJtaXNzaW9uOjpVc2VyKTsKICAgICBp
ZiAoIUZpbGVTeXN0ZW06OmlzSGFuZGxlVmFsaWQoZmlsZSkpCiAgICAgICAgIHJldHVybiB7IH07
CkBAIC03MzUsNyArNzM1LDcgQEAgU3RyaW5nIHBhdGhHZXRGaWxlTmFtZShjb25zdCBTdHJpbmcm
IHBhdGgpCiAgICAgcmV0dXJuIGZyb21TdGRGaWxlU3lzdGVtUGF0aCh0b1N0ZEZpbGVTeXN0ZW1Q
YXRoKHBhdGgpLmZpbGVuYW1lKCkpOwogfQogCi1TdHJpbmcgZGlyZWN0b3J5TmFtZShjb25zdCBT
dHJpbmcmIHBhdGgpCitTdHJpbmcgcGFyZW50UGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCiB7CiAg
ICAgcmV0dXJuIGZyb21TdGRGaWxlU3lzdGVtUGF0aCh0b1N0ZEZpbGVTeXN0ZW1QYXRoKHBhdGgp
LnBhcmVudF9wYXRoKCkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmlsZVN5c3Rl
bS5oIGIvU291cmNlL1dURi93dGYvRmlsZVN5c3RlbS5oCmluZGV4IDk2NWNjMzU3NDRhZWZmMTcw
MjA1YWMxNzE2OTc4YmM3OTYxODY1MjMuLjcxMzUwMGU4ODcxMmVjNDNjMzU2YzJjNmRiZTFjODAx
MmI4N2E1OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0ZpbGVTeXN0ZW0uaAorKysgYi9T
b3VyY2UvV1RGL3d0Zi9GaWxlU3lzdGVtLmgKQEAgLTEyNiw3ICsxMjYsNyBAQCBXVEZfRVhQT1JU
X1BSSVZBVEUgU3RyaW5nIGxhc3RDb21wb25lbnRPZlBhdGhJZ25vcmluZ1RyYWlsaW5nU2xhc2go
Y29uc3QgU3RyaW5nJgogV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgbWFrZUFsbERpcmVjdG9yaWVz
KGNvbnN0IFN0cmluZyYgcGF0aCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIGhvbWVEaXJl
Y3RvcnlQYXRoKCk7CiBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHBhdGhHZXRGaWxlTmFtZShj
b25zdCBTdHJpbmcmKTsKLVdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgZGlyZWN0b3J5TmFtZShj
b25zdCBTdHJpbmcmKTsKK1dURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgcGFyZW50UGF0aChjb25z
dCBTdHJpbmcmKTsKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGdldFZvbHVtZUZyZWVTcGFjZShj
b25zdCBTdHJpbmcmLCB1aW50NjRfdCYpOwogV1RGX0VYUE9SVF9QUklWQVRFIE9wdGlvbmFsPGlu
dDMyX3Q+IGdldEZpbGVEZXZpY2VJZChjb25zdCBDU3RyaW5nJik7CiBXVEZfRVhQT1JUX1BSSVZB
VEUgYm9vbCBjcmVhdGVTeW1ib2xpY0xpbmsoY29uc3QgU3RyaW5nJiB0YXJnZXRQYXRoLCBjb25z
dCBTdHJpbmcmIHN5bWJvbGljTGlua1BhdGgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCmluZGV4IDdhOGE4YWFhMDI3ZGY4YzJm
M2U0NDYzNTZmODI4MTI5YjhjOTM0ZTEuLjQ1M2FmMGE3M2I3NzJhZTUwZWUzNmNlZGIwYzc4ZmQ4
MjQwMzA0N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9E
T01GaWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkv
RE9NRmlsZVN5c3RlbS5jcHAKQEAgLTE0Niw3ICsxNDYsNyBAQCBzdGF0aWMgYm9vbCBpc1ZhbGlk
VmlydHVhbFBhdGgoU3RyaW5nVmlldyB2aXJ0dWFsUGF0aCkKIERPTUZpbGVTeXN0ZW06OkRPTUZp
bGVTeXN0ZW0oUmVmPEZpbGU+JiYgZmlsZSkKICAgICA6IG1fbmFtZShjcmVhdGVDYW5vbmljYWxV
VUlEU3RyaW5nKCkpCiAgICAgLCBtX2ZpbGUoV1RGTW92ZShmaWxlKSkKLSAgICAsIG1fcm9vdFBh
dGgoRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShtX2ZpbGUtPnBhdGgoKSkpCisgICAgLCBtX3Jv
b3RQYXRoKEZpbGVTeXN0ZW06OnBhcmVudFBhdGgobV9maWxlLT5wYXRoKCkpKQogICAgICwgbV93
b3JrUXVldWUoV29ya1F1ZXVlOjpjcmVhdGUoIkRPTUZpbGVTeXN0ZW0gd29yayBxdWV1ZSIpKQog
ewogICAgIEFTU0VSVCghbV9yb290UGF0aC5lbmRzV2l0aCgnLycpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvQXBwbGljYXRpb25DYWNoZVN0b3JhZ2Uu
Y3BwCmluZGV4IGIwODAzMGM5YjQxZjI3MWU3YWEzMjdjM2FlNGVjNGY2MzBhNzA3MjEuLjE3NGNk
ZDExZGMyZTZjMDgxZjY2ZjU4YzAwMTE4NjdkNDYwMmFiZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9BcHBsaWNhdGlvbkNhY2hlU3RvcmFnZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0FwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlLmNw
cApAQCAtMTI5MSw3ICsxMjkxLDcgQEAgYm9vbCBBcHBsaWNhdGlvbkNhY2hlU3RvcmFnZTo6d3Jp
dGVEYXRhVG9VbmlxdWVGaWxlSW5EaXJlY3RvcnkoU2hhcmVkQnVmZmVyJiBkYXQKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCiAgICAgICAgIGZ1bGxQYXRoID0gRmlsZVN5c3Rl
bTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRpcmVjdG9yeSwgcGF0aCk7Ci0gICAgfSB3aGls
ZSAoRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShmdWxsUGF0aCkgIT0gZGlyZWN0b3J5IHx8IEZp
bGVTeXN0ZW06OmZpbGVFeGlzdHMoZnVsbFBhdGgpKTsKKyAgICB9IHdoaWxlIChGaWxlU3lzdGVt
OjpwYXJlbnRQYXRoKGZ1bGxQYXRoKSAhPSBkaXJlY3RvcnkgfHwgRmlsZVN5c3RlbTo6ZmlsZUV4
aXN0cyhmdWxsUGF0aCkpOwogICAgIAogICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRs
ZSBoYW5kbGUgPSBGaWxlU3lzdGVtOjpvcGVuRmlsZShmdWxsUGF0aCwgRmlsZVN5c3RlbTo6Rmls
ZU9wZW5Nb2RlOjpXcml0ZSk7CiAgICAgaWYgKCFoYW5kbGUpCkBAIC0xNDMxLDcgKzE0MzEsNyBA
QCB2b2lkIEFwcGxpY2F0aW9uQ2FjaGVTdG9yYWdlOjpjaGVja0ZvckRlbGV0ZWRSZXNvdXJjZXMo
KQogICAgICAgICAKICAgICAgICAgLy8gRG9uJ3QgZXhpdCB0aGUgZmxhdEZpbGVEaXJlY3Rvcnkh
IFRoaXMgc2hvdWxkIG9ubHkgaGFwcGVuIGlmIHRoZSAicGF0aCIgZW50cnkgY29udGFpbnMgYSBk
aXJlY3RvcnkgCiAgICAgICAgIC8vIGNvbXBvbmVudCwgYnV0IHByb3RlY3QgYWdhaW5zdCBpdCBy
ZWdhcmRsZXNzLgotICAgICAgICBpZiAoRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShmdWxsUGF0
aCkgIT0gZmxhdEZpbGVEaXJlY3RvcnkpCisgICAgICAgIGlmIChGaWxlU3lzdGVtOjpwYXJlbnRQ
YXRoKGZ1bGxQYXRoKSAhPSBmbGF0RmlsZURpcmVjdG9yeSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAKICAgICAgICAgRmlsZVN5c3RlbTo6ZGVsZXRlRmlsZShmdWxsUGF0aCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9DRE1TZXNzaW9uQVZDb250ZW50S2V5U2Vzc2lvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkNvbnRlbnRLZXlT
ZXNzaW9uLm1tCmluZGV4IGViNzgzZjhhNjVlNjVmODA1M2E0OTI5NjM1MmZiMzBjZWY4NjU4N2Iu
LmNlODBiNDI1ZGRlZGU3NGUzYmM5M2QwY2FlNTIzNTEyNDgxOGRlYmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Np
b25BVkNvbnRlbnRLZXlTZXNzaW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25BVkNvbnRlbnRLZXlTZXNzaW9uLm1t
CkBAIC0zNzksNyArMzc5LDcgQEAgQVZDb250ZW50S2V5U2Vzc2lvbiogQ0RNU2Vzc2lvbkFWQ29u
dGVudEtleVNlc3Npb246OmNvbnRlbnRLZXlTZXNzaW9uKCkKIAogICAgICAgICBtX2NvbnRlbnRL
ZXlTZXNzaW9uID0gW1BBTDo6Z2V0QVZDb250ZW50S2V5U2Vzc2lvbkNsYXNzKCkgY29udGVudEtl
eVNlc3Npb25XaXRoS2V5U3lzdGVtOkFWQ29udGVudEtleVN5c3RlbUZhaXJQbGF5U3RyZWFtaW5n
XTsKICAgICB9IGVsc2UgewotICAgICAgICBTdHJpbmcgc3RvcmFnZURpcmVjdG9yeSA9IEZpbGVT
eXN0ZW06OmRpcmVjdG9yeU5hbWUoc3RvcmFnZVBhdGgpOworICAgICAgICBTdHJpbmcgc3RvcmFn
ZURpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoc3RvcmFnZVBhdGgpOwogCiAgICAg
ICAgIGlmICghRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhzdG9yYWdlRGlyZWN0b3J5KSkgewogICAg
ICAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMoc3RvcmFnZURpcmVj
dG9yeSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3Ry
ZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3Bw
CmluZGV4IDBlN2ZhNmFiNGUzNGRjZjlmN2Y4NzM2NzUzOGI2YzRjNjcwZDg5MmIuLjAyYzJjMzBh
N2QxOTRlZjA5MmU4OTkwYjE1ZjIyYmJlNGE4NzBlNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCkBAIC0yMjA4LDcgKzIyMDgsNyBAQCB2b2lk
IE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lcjo6cHVyZ2VPbGREb3dubG9hZEZpbGVzKGNvbnN0
IFN0cmluZyYgZG93bmxvYWRGaQogICAgIGlmIChkb3dubG9hZEZpbGVQcmVmaXhQYXRoLmlzRW1w
dHkoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byB0ZW1wbGF0ZURpcmVjdG9yeSA9IEZp
bGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUoZG93bmxvYWRGaWxlUHJlZml4UGF0aCk7CisgICAgYXV0
byB0ZW1wbGF0ZURpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoZG93bmxvYWRGaWxl
UHJlZml4UGF0aCk7CiAgICAgYXV0byB0ZW1wbGF0ZVByZWZpeCA9IEZpbGVTeXN0ZW06OnBhdGhH
ZXRGaWxlTmFtZShkb3dubG9hZEZpbGVQcmVmaXhQYXRoKTsKICAgICBmb3IgKGF1dG8mIGZpbGVO
YW1lIDogRmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeSh0ZW1wbGF0ZURpcmVjdG9yeSkpIHsKICAg
ICAgICAgaWYgKCFmaWxlTmFtZS5zdGFydHNXaXRoKHRlbXBsYXRlUHJlZml4KSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ29va2llSmFyREIuY3BwCmlu
ZGV4IDI0MjVmODNkNzI2MjZlMGU1MGRmYzZjNmNiOTUwNjdmMDZmNTc1ZjUuLmY4ZWM5Y2Y0N2Q0
YzFmYjAzOGZmNTc3NjNjMTJhZGJiODc5NTIwZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9Db29raWVKYXJEQi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0Nvb2tpZUphckRCLmNwcApAQCAtMTM5LDcgKzEzOSw3
IEBAIGJvb2wgQ29va2llSmFyREI6Om9wZW5EYXRhYmFzZSgpCiAgICAgfQogCiAgICAgaWYgKCFl
eGlzdHNEYXRhYmFzZUZpbGUpIHsKLSAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjptYWtlQWxsRGly
ZWN0b3JpZXMoRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShtX2RhdGFiYXNlUGF0aCkpKQorICAg
ICAgICBpZiAoIUZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhGaWxlU3lzdGVtOjpwYXJl
bnRQYXRoKG1fZGF0YWJhc2VQYXRoKSkpCiAgICAgICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0
byBjcmVhdGUgdGhlIENvb2tpZSBEYXRhYmFzZSBwYXRoICVzIiwgbV9kYXRhYmFzZVBhdGgudXRm
OCgpLmRhdGEoKSk7CiAKICAgICAgICAgbV9kYXRhYmFzZS5vcGVuKG1fZGF0YWJhc2VQYXRoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVGaWxlU3lzdGVt
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVGaWxlU3lzdGVtLmNwcApp
bmRleCBjMjRkMjExZTVlYjBiODdmOTI0YzM2YTEzMTZjYmMzYmViMmJjOGE5Li42MDk1OWExOTQw
MjA4ZGNjMjg1YmZmMTY2NDExZTBmZDgwNGQ1YWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3FsL1NRTGl0ZUZpbGVTeXN0ZW0uY3BwCkBAIC02NSw3ICs2NSw3IEBAIGJvb2wg
U1FMaXRlRmlsZVN5c3RlbTo6ZW5zdXJlRGF0YWJhc2VGaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYg
ZmlsZU5hbWUsIGJvb2wgY2hlCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChjaGVj
a1BhdGhPbmx5KSB7Ci0gICAgICAgIFN0cmluZyBkaXIgPSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlO
YW1lKGZpbGVOYW1lKTsKKyAgICAgICAgU3RyaW5nIGRpciA9IEZpbGVTeXN0ZW06OnBhcmVudFBh
dGgoZmlsZU5hbWUpOwogICAgICAgICByZXR1cm4gZW5zdXJlRGF0YWJhc2VEaXJlY3RvcnlFeGlz
dHMoZGlyKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dp
bi9TZWFyY2hQb3B1cE1lbnVEQi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93aW4vU2Vh
cmNoUG9wdXBNZW51REIuY3BwCmluZGV4IDZmN2Y0YmExNjYwYjRmN2E5NzcyMTJjODU2M2E0M2M2
NjVlMzBiNTQuLmY5YzI0YjhlZDU3MTgyZWE1Nzg4N2EwMDMwN2VkOGRiOGEzZDBmZmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dpbi9TZWFyY2hQb3B1cE1lbnVEQi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NlYXJjaFBvcHVwTWVudURCLmNwcApA
QCAtMTg4LDcgKzE4OCw3IEBAIGJvb2wgU2VhcmNoUG9wdXBNZW51REI6Om9wZW5EYXRhYmFzZSgp
CiAgICAgfQogCiAgICAgaWYgKCFleGlzdHNEYXRhYmFzZUZpbGUpIHsKLSAgICAgICAgaWYgKCFG
aWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMoRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSht
X2RhdGFiYXNlRmlsZW5hbWUpKSkKKyAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjptYWtlQWxsRGly
ZWN0b3JpZXMoRmlsZVN5c3RlbTo6cGFyZW50UGF0aChtX2RhdGFiYXNlRmlsZW5hbWUpKSkKICAg
ICAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSB0aGUgc2VhcmNoIGF1dG9zYXZl
IGRhdGFiYXNlIHBhdGggJXMiLCBtX2RhdGFiYXNlRmlsZW5hbWUudXRmOCgpLmRhdGEoKSk7CiAK
ICAgICAgICAgbV9kYXRhYmFzZS5vcGVuKG1fZGF0YWJhc2VGaWxlbmFtZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2NyaXB0U3RvcmFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2NyaXB0U3RvcmFn
ZS5jcHAKaW5kZXggZGZjNWQwYjZlMGQ5ODE4OGQ5MTQxMGUxOGIyNjRkMzlkZGJlMjFlYi4uNTk4
MWJiN2VjNTkxOTQ4MTE0MDViZjk4MDQ5YmMzMzVjMzBhMDYxZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NjcmlwdFN0b3JhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTY3JpcHRTdG9yYWdlLmNw
cApAQCAtODQsNyArODQsNyBAQCBTY3JpcHRCdWZmZXIgU1dTY3JpcHRTdG9yYWdlOjpzdG9yZShj
b25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JiByZWdpc3RyYQogICAgIEFTU0VSVCgh
aXNNYWluVGhyZWFkKCkpOwogCiAgICAgYXV0byBzY3JpcHRQYXRoID0gdGhpcy0+c2NyaXB0UGF0
aChyZWdpc3RyYXRpb25LZXksIHNjcmlwdFVSTCk7Ci0gICAgRmlsZVN5c3RlbTo6bWFrZUFsbERp
cmVjdG9yaWVzKEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUoc2NyaXB0UGF0aCkpOworICAgIEZp
bGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKHNjcmlw
dFBhdGgpKTsKIAogICAgIGF1dG8gaXRlcmF0ZU92ZXJCdWZmZXJBbmRXcml0ZURhdGEgPSBbJl0o
Y29uc3QgRnVuY3Rpb248Ym9vbChjb25zdCB1aW50OF90Kiwgc2l6ZV90KT4mIHdyaXRlRGF0YSkg
ewogICAgICAgICBmb3IgKGF1dG8gaXQgPSBzY3JpcHQuYnVmZmVyKCktPmJlZ2luKCk7IGl0ICE9
IHNjcmlwdC5idWZmZXIoKS0+ZW5kKCk7ICsraXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNl
U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NEYXRhYmFzZVN0b3JlLmNwcAppbmRleCAwZDcyNTJiNTM1Y2EyZjdk
MDg4ZWQ5NGVhMjY0Yzk3NmM1ZDQzNWNkLi5lMmM3NzE1YTMxNTZhMGZmNjk2MmFkZWYzZDlmZmFh
NjBiMWUwNzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNz
aWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YWJhc2VTdG9yZS5jcHAKQEAgLTM2OSw3ICszNjksNyBAQCB2b2lkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhYmFzZVN0b3JlOjpjbG9zZSgpCiB2b2lkIFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEYXRhYmFzZVN0b3JlOjpvcGVuSVRQRGF0YWJhc2UoKQogewogICAgIGlmICghRmlsZVN5c3Rl
bTo6ZmlsZUV4aXN0cyhtX3N0b3JhZ2VEaXJlY3RvcnlQYXRoKSkgewotICAgICAgICBpZiAoIUZp
bGVTeXN0ZW06Om1ha2VBbGxEaXJlY3RvcmllcyhGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKG1f
c3RvcmFnZURpcmVjdG9yeVBhdGgpKSkgeworICAgICAgICBpZiAoIUZpbGVTeXN0ZW06Om1ha2VB
bGxEaXJlY3RvcmllcyhGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKG1fc3RvcmFnZURpcmVjdG9yeVBh
dGgpKSkgewogICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTmV0d29yaywgIiVwIC0gUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFiYXNlU3RvcmU6Om9wZW4gZmFpbGVkLCBlcnJvciBtZXNz
YWdlOiBGYWlsZWQgdG8gY3JlYXRlIGRpcmVjdG9yeSBkYXRhYmFzZSBwYXRoOiAlIiBQVUJMSUNf
TE9HX1NUUklORywgdGhpcywgbV9zdG9yYWdlRGlyZWN0b3J5UGF0aC51dGY4KCkuZGF0YSgpKTsK
ICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmUuY3BwCmluZGV4IGU4
ZGI5NTJlMTA0NjRiYTdlNGNlOWZiY2NlODI1ZjVkNDMzNTE4ZWYuLjFkMDViNWQ1NjYyNDdlODdk
MTIxYzc4MzM0NDA1MzM2ZGRiZmZlZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdlRW5naW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3RvcmFnZUVuZ2luZS5jcHAKQEAgLTQ2Myw3ICs0
NjMsNyBAQCB2b2lkIEVuZ2luZTo6d3JpdGVGaWxlKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIE5l
dHdvcmtDYWNoZTo6RGF0YSYmIGRhdGEsIFdlYkNvcgogICAgIG1fcGVuZGluZ1dyaXRlQ2FsbGJh
Y2tzLmFkZCgrK21fcGVuZGluZ0NhbGxiYWNrc0NvdW50ZXIsIFdURk1vdmUoY2FsbGJhY2spKTsK
ICAgICBtX2lvUXVldWUtPmRpc3BhdGNoKFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRo
aXMpLCBpZGVudGlmaWVyID0gbV9wZW5kaW5nQ2FsbGJhY2tzQ291bnRlciwgZGF0YSA9IFdURk1v
dmUoZGF0YSksIGZpbGVuYW1lID0gZmlsZW5hbWUuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7
CiAKLSAgICAgICAgU3RyaW5nIGRpcmVjdG9yeVBhdGggPSBGaWxlU3lzdGVtOjpkaXJlY3RvcnlO
YW1lKGZpbGVuYW1lKTsKKyAgICAgICAgU3RyaW5nIGRpcmVjdG9yeVBhdGggPSBGaWxlU3lzdGVt
OjpwYXJlbnRQYXRoKGZpbGVuYW1lKTsKICAgICAgICAgaWYgKCFGaWxlU3lzdGVtOjpmaWxlRXhp
c3RzKGRpcmVjdG9yeVBhdGgpKQogICAgICAgICAgICAgRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVj
dG9yaWVzKGRpcmVjdG9yeVBhdGgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9nbGliL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEdMaWIuY3BwIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvZ2xpYi9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhHTGliLmNwcAppbmRleCBhMWUwNWY1MmNjMmY1
M2M5MjQwZmEyYzc0Zjc4N2JkN2JlYjc2NDYxLi44NjJmODM3ODNjNDFjNmMzNzIwYWJiM2Y5YmM2
NDNhZDg2ZjdiOTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9nbGliL1Byb2Nl
c3NFeGVjdXRhYmxlUGF0aEdMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIv
UHJvY2Vzc0V4ZWN1dGFibGVQYXRoR0xpYi5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgc3RhdGljIFN0
cmluZyBnZXRFeGVjdXRhYmxlUGF0aCgpCiB7CiAgICAgQ1N0cmluZyBleGVjdXRhYmxlUGF0aCA9
IGdldEN1cnJlbnRFeGVjdXRhYmxlUGF0aCgpOwogICAgIGlmICghZXhlY3V0YWJsZVBhdGguaXNO
dWxsKCkpCi0gICAgICAgIHJldHVybiBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKEZpbGVTeXN0
ZW06OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZXhlY3V0YWJsZVBhdGguZGF0
YSgpKSk7CisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKEZpbGVTeXN0ZW06
OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZXhlY3V0YWJsZVBhdGguZGF0YSgp
KSk7CiAgICAgcmV0dXJuIHsgfTsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNvbkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL0ljb25EYXRhYmFzZS5jcHAKaW5kZXggZjQ1MDZmOGJkMTQwZmQ0OTRj
MTEwMGFjZmE0NDUzNGQwNGExZTdkYi4uMzM5NjAyYTQ5ZjExNDNkOWZmZTQ2MzA1YWIxYWQ5OWE2
ODc0Y2I2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvSWNv
bkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9JY29u
RGF0YWJhc2UuY3BwCkBAIC01OSw3ICs1OSw3IEBAIEljb25EYXRhYmFzZTo6SWNvbkRhdGFiYXNl
KGNvbnN0IFN0cmluZyYgcGF0aCwgQWxsb3dEYXRhYmFzZVdyaXRlIGFsbG93RGF0YWJhc2VXCiAg
ICAgICAgIGlmIChhbGxvd0RhdGFiYXNlV3JpdGUgPT0gQWxsb3dEYXRhYmFzZVdyaXRlOjpObyAm
JiAhRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhwYXRoKSkKICAgICAgICAgICAgIHJldHVybjsKIAot
ICAgICAgICBhdXRvIGRhdGFiYXNlRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFt
ZShwYXRoKTsKKyAgICAgICAgYXV0byBkYXRhYmFzZURpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OnBh
cmVudFBhdGgocGF0aCk7CiAgICAgICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3Rvcmllcyhk
YXRhYmFzZURpcmVjdG9yeSk7CiAgICAgICAgIGlmICghbV9kYi5vcGVuKHBhdGgpKSB7CiAgICAg
ICAgICAgICBMT0dfRVJST1IoIlVuYWJsZSB0byBvcGVuIGZhdmljb24gZGF0YWJhc2UgYXQgcGF0
aCAlcyAtICVzIiwgcGF0aC51dGY4KCkuZGF0YSgpLCBtX2RiLmxhc3RFcnJvck1zZygpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVE
YXRhTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRX
ZWJzaXRlRGF0YU1hbmFnZXIuY3BwCmluZGV4IDRjNGVmNWQ2OGFjM2ExYjVjYjZhY2I5NTU5YThm
ZDUzZmFiZDE4ZTcuLmEzMzlhYzA5YjRhYTFlODdjM2Y4YTVkZGUzOWU2ZjI3NGNkMmZkY2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYnNpdGVE
YXRhTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2Vic2l0ZURhdGFNYW5hZ2VyLmNwcApAQCAtNjMzLDcgKzYzMyw3IEBAIGNvbnN0IGdjaGFy
KiB3ZWJraXRfd2Vic2l0ZV9kYXRhX21hbmFnZXJfZ2V0X2Rpc2tfY2FjaGVfZGlyZWN0b3J5KFdl
YktpdFdlYnNpdGVECiAKICAgICBpZiAoIXByaXYtPmRpc2tDYWNoZURpcmVjdG9yeSkgewogICAg
ICAgICAvLyBUaGUgZGVmYXVsdCBkaXJlY3RvcnkgYWxyZWFkeSBoYXMgdGhlIHN1YmRpcmVjdG9y
eS4KLSAgICAgICAgcHJpdi0+ZGlza0NhY2hlRGlyZWN0b3J5LnJlc2V0KGdfc3RyZHVwKEZpbGVT
eXN0ZW06OmRpcmVjdG9yeU5hbWUoV2ViS2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0TmV0
d29ya0NhY2hlRGlyZWN0b3J5KCkpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgcHJpdi0+ZGlz
a0NhY2hlRGlyZWN0b3J5LnJlc2V0KGdfc3RyZHVwKEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoV2Vi
S2l0OjpXZWJzaXRlRGF0YVN0b3JlOjpkZWZhdWx0TmV0d29ya0NhY2hlRGlyZWN0b3J5KCkpLnV0
ZjgoKS5kYXRhKCkpKTsKICAgICB9CiAgICAgcmV0dXJuIHByaXYtPmRpc2tDYWNoZURpcmVjdG9y
eS5nZXQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xhdW5jaGVy
L2dsaWIvQnViYmxld3JhcExhdW5jaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0xh
dW5jaGVyL2dsaWIvQnViYmxld3JhcExhdW5jaGVyLmNwcAppbmRleCBlMTgzMDEyOWU0NWE0NDgw
MmY0YzY5YmE5ODg5ZjJkYzJlOTM5MDFlLi44NTA4OTUxZjU0NjJhZDNjOGY5ZTU5Y2Y5OTVmZDNi
YWZkOTBlN2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9MYXVuY2hlci9n
bGliL0J1YmJsZXdyYXBMYXVuY2hlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
TGF1bmNoZXIvZ2xpYi9CdWJibGV3cmFwTGF1bmNoZXIuY3BwCkBAIC05MDAsMTQgKzkwMCwxNCBA
QCBHUmVmUHRyPEdTdWJwcm9jZXNzPiBidWJibGV3cmFwU3Bhd24oR1N1YnByb2Nlc3NMYXVuY2hl
ciogbGF1bmNoZXIsIGNvbnN0IFByb2NlcwogI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkKICAg
ICBjb25zdCBjaGFyKiBleGVjRGlyZWN0b3J5ID0gZ19nZXRlbnYoIldFQktJVF9FWEVDX1BBVEgi
KTsKICAgICBpZiAoZXhlY0RpcmVjdG9yeSkgewotICAgICAgICBTdHJpbmcgcGFyZW50RGlyID0g
RmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShGaWxlU3lzdGVtOjpzdHJpbmdGcm9tRmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKGV4ZWNEaXJlY3RvcnkpKTsKKyAgICAgICAgU3RyaW5nIHBhcmVudERp
ciA9IEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoRmlsZVN5c3RlbTo6c3RyaW5nRnJvbUZpbGVTeXN0
ZW1SZXByZXNlbnRhdGlvbihleGVjRGlyZWN0b3J5KSk7CiAgICAgICAgIGJpbmRJZkV4aXN0cyhz
YW5kYm94QXJncywgcGFyZW50RGlyLnV0ZjgoKS5kYXRhKCkpOwogICAgIH0KIAogICAgIENTdHJp
bmcgZXhlY3V0YWJsZVBhdGggPSBnZXRDdXJyZW50RXhlY3V0YWJsZVBhdGgoKTsKICAgICBpZiAo
IWV4ZWN1dGFibGVQYXRoLmlzTnVsbCgpKSB7CiAgICAgICAgIC8vIE91ciBleGVjdXRhYmxlIGlz
IGAvZm9vL2Jhci9iaW4vUHJvY2Vzc2AsIHdlIHdhbnQgYC9mb28vYmFyYCBhcyBhIHVzYWJsZSBw
cmVmaXgKLSAgICAgICAgU3RyaW5nIHBhcmVudERpciA9IEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5h
bWUoRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShGaWxlU3lzdGVtOjpzdHJpbmdGcm9tRmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uKGV4ZWN1dGFibGVQYXRoLmRhdGEoKSkpKTsKKyAgICAgICAgU3Ry
aW5nIHBhcmVudERpciA9IEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoRmlsZVN5c3RlbTo6cGFyZW50
UGF0aChGaWxlU3lzdGVtOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGV4ZWN1
dGFibGVQYXRoLmRhdGEoKSkpKTsKICAgICAgICAgYmluZElmRXhpc3RzKHNhbmRib3hBcmdzLCBw
YXJlbnREaXIudXRmOCgpLmRhdGEoKSk7CiAgICAgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRlRGF0YVN0b3JlQ29j
b2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9Db2NvYS9XZWJzaXRl
RGF0YVN0b3JlQ29jb2EubW0KaW5kZXggYzQxOTc1ZmVhOGE4NmM3NGU2NmM5MjAwNTdkNjFjN2Y1
OGZmMTJiNS4uZjJkOTJmMTk3ZDE3Y2EyOTcwZDA3ZGMxNDBhYjAwYTYxYzEzNThmYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvQ29jb2EvV2Vic2l0ZURh
dGFTdG9yZUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRh
L0NvY29hL1dlYnNpdGVEYXRhU3RvcmVDb2NvYS5tbQpAQCAtMTkyLDcgKzE5Miw3IEBAIHZvaWQg
V2Vic2l0ZURhdGFTdG9yZTo6cGxhdGZvcm1TZXROZXR3b3JrUGFyYW1ldGVycyhXZWJzaXRlRGF0
YVN0b3JlUGFyYW1ldGVycyYKICAgICBwYXJhbWV0ZXJzLnVpUHJvY2Vzc0Nvb2tpZVN0b3JhZ2VJ
ZGVudGlmaWVyID0gbV91aVByb2Nlc3NDb29raWVTdG9yYWdlSWRlbnRpZmllcjsKIAogICAgIGlm
ICghY29va2llRmlsZS5pc0VtcHR5KCkpCi0gICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0
ZUhhbmRsZUZvclJlYWRXcml0ZURpcmVjdG9yeShGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKGNv
b2tpZUZpbGUpLCBwYXJhbWV0ZXJzLmNvb2tpZVN0b3JhZ2VQYXRoRXh0ZW5zaW9uSGFuZGxlKTsK
KyAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6Y3JlYXRlSGFuZGxlRm9yUmVhZFdyaXRlRGlyZWN0
b3J5KEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoY29va2llRmlsZSksIHBhcmFtZXRlcnMuY29va2ll
U3RvcmFnZVBhdGhFeHRlbnNpb25IYW5kbGUpOwogfQogCiAjaWYgSEFWRShDRk5FVFdPUktfQUxU
RVJOQVRJVkVfU0VSVklDRSkgfHwgSEFWRShORVRXT1JLX0xPQURFUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAK
aW5kZXggOTZmNzhmY2U2YzZhYzVjYjI4MGExMzI1YzYyZTFiY2JjMjBkODdhNi4uMzExNzAxNDI5
Y2VlODg5ZjM5ZGVmMzllZDY2MGU0ZDI4ZGM5OTliNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTI2
OCw3ICsyNjgsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnJlc29sdmVEaXJlY3Rvcmllc0lm
TmVjZXNzYXJ5KCkKIAogICAgIC8vIFJlc29sdmUgZGlyZWN0b3JpZXMgZm9yIGZpbGUgcGF0aHMu
CiAgICAgaWYgKCFtX2NvbmZpZ3VyYXRpb24tPmNvb2tpZVN0b3JhZ2VGaWxlKCkuaXNFbXB0eSgp
KSB7Ci0gICAgICAgIG1fcmVzb2x2ZWRDb25maWd1cmF0aW9uLT5zZXRDb29raWVTdG9yYWdlRmls
ZShyZXNvbHZlQW5kQ3JlYXRlUmVhZFdyaXRlRGlyZWN0b3J5Rm9yU2FuZGJveEV4dGVuc2lvbihG
aWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1lKG1fY29uZmlndXJhdGlvbi0+Y29va2llU3RvcmFnZUZp
bGUoKSkpKTsKKyAgICAgICAgbV9yZXNvbHZlZENvbmZpZ3VyYXRpb24tPnNldENvb2tpZVN0b3Jh
Z2VGaWxlKHJlc29sdmVBbmRDcmVhdGVSZWFkV3JpdGVEaXJlY3RvcnlGb3JTYW5kYm94RXh0ZW5z
aW9uKEZpbGVTeXN0ZW06OnBhcmVudFBhdGgobV9jb25maWd1cmF0aW9uLT5jb29raWVTdG9yYWdl
RmlsZSgpKSkpOwogICAgICAgICBtX3Jlc29sdmVkQ29uZmlndXJhdGlvbi0+c2V0Q29va2llU3Rv
cmFnZUZpbGUoRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fcmVzb2x2ZWRD
b25maWd1cmF0aW9uLT5jb29raWVTdG9yYWdlRmlsZSgpLCBGaWxlU3lzdGVtOjpwYXRoR2V0Rmls
ZU5hbWUobV9jb25maWd1cmF0aW9uLT5jb29raWVTdG9yYWdlRmlsZSgpKSkpOwogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1N0b3JhZ2UvU3RvcmFnZVRyYWNrZXIuY3BwCmluZGV4
IDA2MTBjOTQ2ZjJlZGY5ODZlYmNhOThiNmE3ZDIxYmYwYTkzMzk2NDYuLjgzNjA0NzFiZTNlNDE3
YWE1MDc2NWQ5YTY5Y2Q2NGExZTc2YmJiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvU3RvcmFnZS9TdG9yYWdlVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9T
dG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNwcApAQCAtMTEzLDcgKzExMyw3IEBAIFN0cmluZyBTdG9y
YWdlVHJhY2tlcjo6dHJhY2tlckRhdGFiYXNlUGF0aCgpCiBzdGF0aWMgYm9vbCBlbnN1cmVEYXRh
YmFzZUZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgYm9vbCBjcmVhdGVJZkRvZXNO
b3RFeGlzdCkKIHsKICAgICBpZiAoY3JlYXRlSWZEb2VzTm90RXhpc3QpCi0gICAgICAgIHJldHVy
biBGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3JpZXMoRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFt
ZShmaWxlTmFtZSkpOworICAgICAgICByZXR1cm4gRmlsZVN5c3RlbTo6bWFrZUFsbERpcmVjdG9y
aWVzKEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoZmlsZU5hbWUpKTsKIAogICAgIHJldHVybiBGaWxl
U3lzdGVtOjpmaWxlRXhpc3RzKGZpbGVOYW1lKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXRMZWdhY3kvd2luL1BsdWdpbnMvUGx1Z2luRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdExl
Z2FjeS93aW4vUGx1Z2lucy9QbHVnaW5EYXRhYmFzZS5jcHAKaW5kZXggOWQ0MmNkNWM4OThhODFh
ZGZkYmM2YjRlMWMzMTZmNWIzZDZhZDA3NC4uZDJmYjc1ZjY1Y2U0NjFmOGUwYWQ3NGY4NjRmYzBh
ZWQzYmNmYjU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vUGx1Z2lucy9Q
bHVnaW5EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vUGx1Z2lucy9Q
bHVnaW5EYXRhYmFzZS5jcHAKQEAgLTUxNSw3ICs1MTUsNyBAQCB2b2lkIFBsdWdpbkRhdGFiYXNl
Ojpsb2FkUGVyc2lzdGVudE1ldGFkYXRhQ2FjaGUoKQogCiAgICAgICAgIC8vIFNraXAgbWV0YWRh
dGEgdGhhdCBwb2ludHMgdG8gcGx1Z2lucyBmcm9tIGRpcmVjdG9yaWVzIHRoYXQKICAgICAgICAg
Ly8gYXJlIG5vdCBwYXJ0IG9mIHBsdWdpbiBkaXJlY3RvcnkgbGlzdCBhbnltb3JlLgotICAgICAg
ICBTdHJpbmcgcGx1Z2luRGlyZWN0b3J5TmFtZSA9IEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUo
cGF0aCk7CisgICAgICAgIFN0cmluZyBwbHVnaW5EaXJlY3RvcnlOYW1lID0gRmlsZVN5c3RlbTo6
cGFyZW50UGF0aChwYXRoKTsKICAgICAgICAgaWYgKG1fcGx1Z2luRGlyZWN0b3JpZXMuZmluZChw
bHVnaW5EaXJlY3RvcnlOYW1lKSA9PSBXVEY6Om5vdEZvdW5kKQogICAgICAgICAgICAgY29udGlu
dWU7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCAzOGIyMWQ1ODc2N2JkOWQ4OWIwMDNiZjc1ZjE3ODhjMzVlNTk3YTRmLi5lOGNmYzllNDBiZGQ3
ZTViM2Y2NWUxOTRmZjhhNDFkZWZiYmM1MGQ2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDUtMTMgIENocmlz
IER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgRmlsZVN5c3RlbTo6
ZGlyZWN0b3J5TmFtZSgpIHRvIEZpbGVTeXN0ZW06OnBhcmVudFBhdGgoKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzY4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgUmVuYW1lIEZpbGVTeXN0ZW06OmRpcmVj
dG9yeU5hbWUoKSB0byBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKCkgZm9yIGNsYXJpdHkgYW5kCisg
ICAgICAgIGNvbnNpc3RlbmN5IHdpdGggc3RkOjpmaWxlc3lzdGVtOjpwYXJlbnRfcGF0aCgpIHdo
aWNoIGlzIHVzZWQgaW50ZXJuYWxseS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9E
dW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChmaW5kRm9udEZhbGxiYWNrKToKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OlRFU1RfRik6CisgICAgICAgICogVGVzdFdlYktpdEFQSS93aW4vUGxhdGZvcm1V
dGlsaXRpZXNXaW4uY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VXRpbDo6bW9kdWxlRGly
ZWN0b3J5KToKKwogMjAyMS0wNS0xMyAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBhcHBsZS5j
b20+CiAKICAgICAgICAgW3J1bi1hcGktdGVzdHNdIFVzZSBQeXRob24gMyAoUGFydCAxKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggYzZmY2Q2MTg3
NGYwYTBjNThiMzU3YzkzNjBlZDZhYzY5YTBjN2NmMS4uYThjNjYwY2Y4NzExNGVkNWUzZDExNzAx
MDZiMGUxM2VjYzAxOGExZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1
bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRl
clRyZWUuY3BwCkBAIC0xMTA2LDcgKzExMDYsNyBAQCBzdGF0aWMgdm9pZCBzaXplV2ViVmlld0Zv
ckN1cnJlbnRUZXN0KCkKIAogc3RhdGljIFN0cmluZyBmaW5kRm9udEZhbGxiYWNrKGNvbnN0IGNo
YXIqIHBhdGhPclVybCkKIHsKLSAgICBTdHJpbmcgcGF0aFRvRm9udEZhbGxiYWNrID0gRmlsZVN5
c3RlbTo6ZGlyZWN0b3J5TmFtZShwYXRoT3JVcmwpOworICAgIFN0cmluZyBwYXRoVG9Gb250RmFs
bGJhY2sgPSBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKHBhdGhPclVybCk7CiAKICAgICB3Y2hhcl90
IGZ1bGxQYXRoW19NQVhfUEFUSF07CiAgICAgaWYgKCFfd2Z1bGxwYXRoKGZ1bGxQYXRoLCBwYXRo
VG9Gb250RmFsbGJhY2sud2lkZUNoYXJhY3RlcnMoKS5kYXRhKCksIF9NQVhfUEFUSCkpCmRpZmYg
LS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dURi9GaWxlU3lzdGVtLmNwcCBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0ZpbGVTeXN0ZW0uY3BwCmluZGV4IDEzN2EwMTc5
MDM1ZWM4MDM1ZTE3NDY2NmFkMjM3NjQ4YzQwY2M1ZTMuLmQ1ZDg2NGZkYjQxYjMxMjI0MTAyYjJk
NmYwYjYyNzZjNTk0OGU0NTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V1RGL0ZpbGVTeXN0ZW0uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV1RGL0Zp
bGVTeXN0ZW0uY3BwCkBAIC0yNDQsNyArMjQ0LDcgQEAgVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBH
ZXRGaWxlTWV0YWRhdGFIaWRkZW5GaWxlKQogVEVTVF9GKEZpbGVTeXN0ZW1UZXN0LCBVbmljb2Rl
RGlyZWN0b3J5TmFtZSkKIHsKICAgICBTdHJpbmcgcGF0aCA9IFN0cmluZzo6ZnJvbVVURjgoIi90
ZXN0L2FcdTAzMDhsby90ZXN0LnR4dCIpOwotICAgIFN0cmluZyBkaXJlY3RvcnlOYW1lID0gRmls
ZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZShwYXRoKTsKKyAgICBTdHJpbmcgZGlyZWN0b3J5TmFtZSA9
IEZpbGVTeXN0ZW06OnBhcmVudFBhdGgocGF0aCk7CiAgICAgU3RyaW5nIGV4cGVjdGVkRGlyZWN0
b3J5TmFtZSA9IFN0cmluZzo6ZnJvbVVURjgoIi90ZXN0L2FcdTAzMDhsbyIpOwogICAgIEVYUEVD
VF9UUlVFKGV4cGVjdGVkRGlyZWN0b3J5TmFtZSA9PSBkaXJlY3RvcnlOYW1lKTsKIH0KQEAgLTcy
OSwxOSArNzI5LDE5IEBAIFRFU1RfRihGaWxlU3lzdGVtVGVzdCwgcGF0aEdldEZpbGVOYW1lKQog
I2VuZGlmCiB9CiAKLVRFU1RfRihGaWxlU3lzdGVtVGVzdCwgZGlyZWN0b3J5TmFtZSkKK1RFU1Rf
RihGaWxlU3lzdGVtVGVzdCwgcGFyZW50UGF0aCkKIHsKICAgICBhdXRvIHRlc3RQYXRoID0gRmls
ZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50cyh0ZW1wRW1wdHlGb2xkZXJQYXRoKCks
IHsgInN1YmZvbGRlciIsICJmaWxlbmFtZS50eHQiIH0pOwotICAgIEVYUEVDVF9TVFJFUShGaWxl
U3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQodGVtcEVtcHR5Rm9sZGVyUGF0aCgpLCAi
c3ViZm9sZGVyIikudXRmOCgpLmRhdGEoKSwgRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSh0ZXN0
UGF0aCkudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKEZpbGVTeXN0ZW06OnBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudCh0ZW1wRW1wdHlGb2xkZXJQYXRoKCksICJzdWJmb2xkZXIiKS51
dGY4KCkuZGF0YSgpLCBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKHRlc3RQYXRoKS51dGY4KCkuZGF0
YSgpKTsKICNpZiBPUyhVTklYKQotICAgIEVYUEVDVF9TVFJFUSgiL3Zhci90bXAiLCBGaWxlU3lz
dGVtOjpkaXJlY3RvcnlOYW1lKCIvdmFyL3RtcC9leGFtcGxlLnR4dCIpLnV0ZjgoKS5kYXRhKCkp
OwotICAgIEVYUEVDVF9TVFJFUSgiL3Zhci90bXAiLCBGaWxlU3lzdGVtOjpkaXJlY3RvcnlOYW1l
KCIvdmFyL3RtcC8iKS51dGY4KCkuZGF0YSgpKTsKLSAgICBFWFBFQ1RfU1RSRVEoIi92YXIvdG1w
IiwgRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSgiL3Zhci90bXAvLiIpLnV0ZjgoKS5kYXRhKCkp
OwotICAgIEVYUEVDVF9TVFJFUSgiLyIsIEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUoIi8iKS51
dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1RfU1RSRVEoIi92YXIvdG1wIiwgRmlsZVN5c3RlbTo6
cGFyZW50UGF0aCgiL3Zhci90bXAvZXhhbXBsZS50eHQiKS51dGY4KCkuZGF0YSgpKTsKKyAgICBF
WFBFQ1RfU1RSRVEoIi92YXIvdG1wIiwgRmlsZVN5c3RlbTo6cGFyZW50UGF0aCgiL3Zhci90bXAv
IikudXRmOCgpLmRhdGEoKSk7CisgICAgRVhQRUNUX1NUUkVRKCIvdmFyL3RtcCIsIEZpbGVTeXN0
ZW06OnBhcmVudFBhdGgoIi92YXIvdG1wLy4iKS51dGY4KCkuZGF0YSgpKTsKKyAgICBFWFBFQ1Rf
U1RSRVEoIi8iLCBGaWxlU3lzdGVtOjpwYXJlbnRQYXRoKCIvIikudXRmOCgpLmRhdGEoKSk7CiAj
ZW5kaWYKICNpZiBPUyhXSU5ET1dTKQotICAgIEVYUEVDVF9TVFJFUSgiQzpcXGZvbyIsIEZpbGVT
eXN0ZW06OmRpcmVjdG9yeU5hbWUoIkM6XFxmb29cXGV4YW1wbGUudHh0IikudXRmOCgpLmRhdGEo
KSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJDOlxcIiwgRmlsZVN5c3RlbTo6ZGlyZWN0b3J5TmFtZSgi
QzpcXCIpLnV0ZjgoKS5kYXRhKCkpOworICAgIEVYUEVDVF9TVFJFUSgiQzpcXGZvbyIsIEZpbGVT
eXN0ZW06OnBhcmVudFBhdGgoIkM6XFxmb29cXGV4YW1wbGUudHh0IikudXRmOCgpLmRhdGEoKSk7
CisgICAgRVhQRUNUX1NUUkVRKCJDOlxcIiwgRmlsZVN5c3RlbTo6cGFyZW50UGF0aCgiQzpcXCIp
LnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvd2luL1BsYXRmb3JtVXRpbGl0aWVzV2luLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
d2luL1BsYXRmb3JtVXRpbGl0aWVzV2luLmNwcAppbmRleCAzZDU5ZDI1NTAyN2Y5NGQ0MzljODc4
ZDkxZWVhYTI2ODk4ZjMzNGZkLi41MDhmZTgyZTI3YjAwYmYxMjFkZDU1MmFhNGJlYmJlOTJhMGMy
MjVhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9QbGF0Zm9ybVV0aWxpdGll
c1dpbi5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93aW4vUGxhdGZvcm1VdGlsaXRpZXNX
aW4uY3BwCkBAIC0zOSw3ICszOSw3IEBAIHN0YXRpYyBTdHJpbmcgbW9kdWxlRGlyZWN0b3J5KCkK
ICAgICB3Y2hhcl90IGZpbGVuYW1lW2J1ZmZlckxlbmd0aF07CiAgICAgYXV0byBsZW4gPSBHZXRN
b2R1bGVGaWxlTmFtZShudWxscHRyLCBmaWxlbmFtZSwgYnVmZmVyTGVuZ3RoKTsKICAgICBBU1NF
UlQobGVuID4gMCk7Ci0gICAgcmV0dXJuIEZpbGVTeXN0ZW06OmRpcmVjdG9yeU5hbWUoU3RyaW5n
KGZpbGVuYW1lLCBsZW4pKTsKKyAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGFyZW50UGF0aChTdHJp
bmcoZmlsZW5hbWUsIGxlbikpOwogfQogCiBXS1N0cmluZ1JlZiBjcmVhdGVJbmplY3RlZEJ1bmRs
ZVBhdGgoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>