<?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>238801</bug_id>
          
          <creation_ts>2022-04-05 06:06:53 -0700</creation_ts>
          <short_desc>[Unix] Adopt UnixFileDescriptor in IPC::Attachment</short_desc>
          <delta_ts>2022-04-06 04:17: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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=238726</see_also>
          <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="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>aperez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>pangle</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zdobersek</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1858359</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-05 06:06:53 -0700</bug_when>
    <thetext>[Unix] Adopt UnixFileDescriptor in IPC::Attachment</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858360</commentid>
    <comment_count>1</comment_count>
      <attachid>456697</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-05 06:08:16 -0700</bug_when>
    <thetext>Created attachment 456697
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858710</commentid>
    <comment_count>2</comment_count>
      <attachid>456697</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-04-06 00:39:12 -0700</bug_when>
    <thetext>Comment on attachment 456697
Patch

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

It seems there&apos;s a caller missing in GTK.

&gt; Source/WebKit/Platform/IPC/unix/ConnectionUnix.cpp:520
&gt; +                if (!!attachments[i].fd()) {

I think it&apos;s worth adding Attachment::isValid() or isNull() or bool operator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858741</commentid>
    <comment_count>3</comment_count>
      <attachid>456796</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-06 02:42:06 -0700</bug_when>
    <thetext>Created attachment 456796
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858758</commentid>
    <comment_count>4</comment_count>
      <attachid>456796</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2022-04-06 03:35:19 -0700</bug_when>
    <thetext>Comment on attachment 456796
Patch for landing

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

&gt; Source/WebKit/Shared/glib/UserMessage.cpp:94
&gt; -            if (g_unix_fd_list_append(result.fileDescriptors.get(), attachment.releaseFileDescriptor(), nullptr) == -1)
&gt; +            if (g_unix_fd_list_append(result.fileDescriptors.get(), attachment.fd().release(), nullptr) == -1)

Now that I see this again, I find a bit weird that the returned fd that it&apos;s still owned by the attachment can be released. Could we remove the non const getter and make attachment.release().release() instead? or maybe keep the releaseFileDescriptor() method in attachment that returns m_fd.release() instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858764</commentid>
    <comment_count>5</comment_count>
      <attachid>456801</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-06 04:01:01 -0700</bug_when>
    <thetext>Created attachment 456801
Patch for landing

Less getters, more releasing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858774</commentid>
    <comment_count>6</comment_count>
      <attachid>456806</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2022-04-06 04:14:33 -0700</bug_when>
    <thetext>Created attachment 456806
Patch for landing

Fixed the reviewed-by line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858775</commentid>
    <comment_count>7</comment_count>
      <attachid>456806</attachid>
    <who name="Zan Dobersek (Reviews)">zdobersek</who>
    <bug_when>2022-04-06 04:16:38 -0700</bug_when>
    <thetext>Comment on attachment 456806
Patch for landing

Clearing flags on attachment: 456806

Committed r292458 (249309@trunk): &lt;https://commits.webkit.org/249309@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858776</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek (Reviews)">zdobersek</who>
    <bug_when>2022-04-06 04:16:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858777</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-06 04:17:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/91346350&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456697</attachid>
            <date>2022-04-05 06:08:16 -0700</date>
            <delta_ts>2022-04-06 02:42:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238801-20220405150815.patch</filename>
            <type>text/plain</type>
            <size>22671</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMzkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGRhMWQ0M2Y5N2U3MWJhMTdk
NGU3MzE4YTlhYjAxM2YyYTU5ZjUxZTcuLjdmZTQxZmE1NDBmNzgzNjhhNjZiN2JiMGU2OTEwZDQw
YWRiOGExZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMjItMDQtMDUgIFphbiBEb2Jl
cnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtVbml4XSBBZG9wdCBVbml4
RmlsZURlc2NyaXB0b3IgaW4gSVBDOjpBdHRhY2htZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg4MDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZG9wdCBXVEY6OlVuaXhGaWxlRGVzY3JpcHRvciBm
b3IgdXNhZ2UgaW4gSVBDOjpBdHRhY2htZW50LCBpbiBwbGFjZSBvZgorICAgICAgICBhIHJhdyBp
bnRlZ2VyIHZhbHVlLiBUaGlzIHNpbXBsaWZpZXMgbW92ZSBvcGVyYXRpb25zIGFuZCBkZXN0cnVj
dGlvbiBvZgorICAgICAgICB0aGlzIHZhbHVlLgorCisgICAgICAgIFRoZSB0d28gcmVsZXZhbnQg
Y29uc3RydWN0b3JzIGFyZSBjaGFuZ2VkIHRvIGV4cGVjdCBhIFVuaXhGaWxlRGVzY3JpcHRvcgor
ICAgICAgICBydmFsdWUsIGFuZCB0aGV5J3JlIGFsc28gbWFkZSBleHBsaWNpdC4gVGhlIGZpbGUg
ZGVzY3JpcHRvciBvYmplY3QgaXMKKyAgICAgICAgYWNjZXNzaWJsZSB0aHJvdWdoIGJvdGggYSBj
b25zdCBhbmQgYSBub24tY29uc3QgZ2V0dGVyLCB3aGljaCBhbGxvd3MgdGhlCisgICAgICAgIHVz
ZXIgdG8gcmVhZCBvciByZWxlYXNlIHRoZSBmaWxlIGRlc2NyaXB0b3IgY29udGFpbmVkIHRoZXJl
LiBUaGVyZSdzCisgICAgICAgIGFsc28gYSByZWxlYXNlIG1ldGhvZCB0aGF0IHJldHVybnMgdGhl
IGNvbnRhaW5lZCBVbml4RmlsZURlc2NyaXB0b3IuCisKKyAgICAgICAgVGhlIHJlbGVhc2VGaWxl
RGVzY3JpcHRvcigpIGFuZCBmaWxlRGVzY3JpcHRvcigpIG1ldGhvZHMsIHByZXZpb3VzbHkKKyAg
ICAgICAgcmVsZWFzaW5nIG9yIHJldHVybmluZyB0aGUgY29udGFpbmVkIGludGVnZXIgdmFsdWUg
b2YgdGhlIGRlc2NyaXB0b3IuCisgICAgICAgIENhbGwgc2l0ZXMgZm9yIHRoZXNlIG1ldGhvZHMg
YXMgd2VsbCBhcyB0aGUgb2xkLWZvcm0gY29uc3RydWN0b3JzIGFyZQorICAgICAgICBhZGp1c3Rl
ZCB0byB0aGUgbmV3IHZhcmlhbnRzLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0F0dGFjaG1l
bnQuaDoKKyAgICAgICAgKElQQzo6QXR0YWNobWVudDo6ZmQpOgorICAgICAgICAoSVBDOjpBdHRh
Y2htZW50OjpmZCBjb25zdCk6CisgICAgICAgIChJUEM6OkF0dGFjaG1lbnQ6OnJlbGVhc2UpOgor
ICAgICAgICAoSVBDOjpBdHRhY2htZW50OjpyZWxlYXNlRmlsZURlc2NyaXB0b3IpOiBEZWxldGVk
LgorICAgICAgICAoSVBDOjpBdHRhY2htZW50OjpmaWxlRGVzY3JpcHRvciBjb25zdCk6IERlbGV0
ZWQuCisgICAgICAgICogUGxhdGZvcm0vSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwOgorICAg
ICAgICAoSVBDOjpBdHRhY2htZW50OjpBdHRhY2htZW50KToKKyAgICAgICAgKElQQzo6QXR0YWNo
bWVudDo6b3BlcmF0b3I9KToKKyAgICAgICAgKElQQzo6QXR0YWNobWVudDo6fkF0dGFjaG1lbnQp
OiBEZWxldGVkLgorICAgICAgICAqIFBsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNw
cDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6cHJvY2Vzc01lc3NhZ2UpOgorICAgICAgICAo
SVBDOjpDb25uZWN0aW9uOjpzZW5kT3V0cHV0TWVzc2FnZSk6CisgICAgICAgIChJUEM6OkNvbm5l
Y3Rpb246OmNyZWF0ZUNvbm5lY3Rpb25JZGVudGlmaWVyUGFpcik6CisgICAgICAgICogUGxhdGZv
cm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVt
b3J5OjpIYW5kbGU6OmlzTnVsbCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9y
eTo6bWFwKToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpjcmVhdGVIYW5kbGUpOgor
ICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBD
OjpBcmd1bWVudENvZGVyPFVuaXhGaWxlRGVzY3JpcHRvcj46OmVuY29kZSk6CisgICAgICAgIChJ
UEM6OkFyZ3VtZW50Q29kZXI8VW5peEZpbGVEZXNjcmlwdG9yPjo6ZGVjb2RlKToKKyAgICAgICAg
KiBTaGFyZWQvZ2xpYi9Vc2VyTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZXNz
YWdlOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVzc2FnZTo6ZGVjb2Rl
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpob3N0RmlsZURlc2NyaXB0b3IpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbkluZm8uaDoKKyAgICAgICAg
KFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvOjppZGVudGlmaWVyIGNvbnN0KToKKyAg
ICAgICAgKFdlYktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvOjpyZWxlYXNlSWRlbnRpZmll
cik6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yOjpzZXRGcm9udGVuZENvbm5lY3Rpb24pOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm86OmlkZW50aWZp
ZXIgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZv
OjpyZWxlYXNlSWRlbnRpZmllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aG9zdEZpbGVEZXNjcmlwdG9yIGNvbnN0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKwog
MjAyMi0wNC0wNSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW1VuaXhdIEFkZCBVbml4RmlsZURlc2NyaXB0b3IsIHVzZSBpdCBpbiBJUEM6OlNlbWFwaG9y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXR0YWNobWVudC5oIGIv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXR0YWNobWVudC5oCmluZGV4IDkwZTQ3ZjBiZDkx
ODI1NWFmOWEyOTI3NmVmMzVmOGIwZTM3MGE4OWQuLjdhOGNkYmE3MGM4MTVhMDdlNTY3ZjA2ZjQ3
MTdjY2JhNDVmYjllMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0F0
dGFjaG1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9BdHRhY2htZW50LmgK
QEAgLTQwLDYgKzQwLDcgQEAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKICNpbmNsdWRl
IDx2YXJpYW50PgogI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi91bml4
L1VuaXhGaWxlRGVzY3JpcHRvci5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtNjMs
MTAgKzY0LDExIEBAIHB1YmxpYzoKICAgICB9OwogCiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tF
VFMpCisgICAgZXhwbGljaXQgQXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3ImJiwgc2l6ZV90
KTsKKyAgICBleHBsaWNpdCBBdHRhY2htZW50KFVuaXhGaWxlRGVzY3JpcHRvciYmKTsKKwogICAg
IEF0dGFjaG1lbnQoQXR0YWNobWVudCYmKTsKICAgICBBdHRhY2htZW50JiBvcGVyYXRvcj0oQXR0
YWNobWVudCYmKTsKLSAgICBBdHRhY2htZW50KGludCBmaWxlRGVzY3JpcHRvciwgc2l6ZV90KTsK
LSAgICBBdHRhY2htZW50KGludCBmaWxlRGVzY3JpcHRvcik7CiAgICAgfkF0dGFjaG1lbnQoKTsK
IAogICAgIHVzaW5nIFNvY2tldERlc2NyaXB0b3IgPSBpbnQ7CkBAIC04Niw4ICs4OCwxMCBAQCBw
dWJsaWM6CiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCiAgICAgc2l6ZV90IHNpemUoKSBj
b25zdCB7IHJldHVybiBtX3NpemU7IH0KIAotICAgIGludCByZWxlYXNlRmlsZURlc2NyaXB0b3Io
KSB7IGludCB0ZW1wID0gbV9maWxlRGVzY3JpcHRvcjsgbV9maWxlRGVzY3JpcHRvciA9IC0xOyBy
ZXR1cm4gdGVtcDsgfQotICAgIGludCBmaWxlRGVzY3JpcHRvcigpIGNvbnN0IHsgcmV0dXJuIG1f
ZmlsZURlc2NyaXB0b3I7IH0KKyAgICBVbml4RmlsZURlc2NyaXB0b3ImIGZkKCkgeyByZXR1cm4g
bV9mZDsgfQorICAgIGNvbnN0IFVuaXhGaWxlRGVzY3JpcHRvciYgZmQoKSBjb25zdCB7IHJldHVy
biBtX2ZkOyB9CisgICAgVW5peEZpbGVEZXNjcmlwdG9yIHJlbGVhc2UoKSB7IHJldHVybiBzdGQ6
OmV4Y2hhbmdlKG1fZmQsIFVuaXhGaWxlRGVzY3JpcHRvciB7IH0pOyB9CisKICAgICBjb25zdCBD
dXN0b21Xcml0ZXImIGN1c3RvbVdyaXRlcigpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tV3JpdGVy
OyB9CiAjZWxpZiBPUyhEQVJXSU4pCiAgICAgdm9pZCByZWxlYXNlKCk7CkBAIC0xMDYsNyArMTEw
LDcgQEAgcHJpdmF0ZToKICAgICBUeXBlIG1fdHlwZTsKIAogI2lmIFVTRShVTklYX0RPTUFJTl9T
T0NLRVRTKQotICAgIGludCBtX2ZpbGVEZXNjcmlwdG9yIHsgLTEgfTsKKyAgICBVbml4RmlsZURl
c2NyaXB0b3IgbV9mZDsKICAgICBzaXplX3QgbV9zaXplOwogICAgIEN1c3RvbVdyaXRlciBtX2N1
c3RvbVdyaXRlcjsKICNlbGlmIE9TKERBUldJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvdW5peC9BdHRhY2htZW50VW5peC5jcHAKaW5kZXggYmI3OWJmMmIzYWZlNDA3ZDk4
NjdmZDgyNDAxNzc2ZDRkMjliODlmOC4uMGU0NGZhZjliM2ViMGQwODAzMDlhZmI5NjBlZWQ0NjQ0
ZTc1MTJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9BdHRh
Y2htZW50VW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9BdHRh
Y2htZW50VW5peC5jcHAKQEAgLTMxLDM0ICszMSwzMiBAQAogCiBuYW1lc3BhY2UgSVBDIHsKIAot
QXR0YWNobWVudDo6QXR0YWNobWVudChpbnQgZmlsZURlc2NyaXB0b3IsIHNpemVfdCBzaXplKQor
QXR0YWNobWVudDo6QXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3ImJiBmZCwgc2l6ZV90IHNp
emUpCiAgICAgOiBtX3R5cGUoTWFwcGVkTWVtb3J5VHlwZSkKLSAgICAsIG1fZmlsZURlc2NyaXB0
b3IoZmlsZURlc2NyaXB0b3IpCisgICAgLCBtX2ZkKFdURk1vdmUoZmQpKQogICAgICwgbV9zaXpl
KHNpemUpCiB7CiB9CiAKLUF0dGFjaG1lbnQ6OkF0dGFjaG1lbnQoaW50IGZpbGVEZXNjcmlwdG9y
KQorQXR0YWNobWVudDo6QXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3ImJiBmZCkKICAgICA6
IG1fdHlwZShTb2NrZXRUeXBlKQotICAgICwgbV9maWxlRGVzY3JpcHRvcihmaWxlRGVzY3JpcHRv
cikKKyAgICAsIG1fZmQoV1RGTW92ZShmZCkpCiAgICAgLCBtX3NpemUoMCkKIHsKIH0KIAogQXR0
YWNobWVudDo6QXR0YWNobWVudChBdHRhY2htZW50JiYgYXR0YWNobWVudCkKICAgICA6IG1fdHlw
ZShhdHRhY2htZW50Lm1fdHlwZSkKLSAgICAsIG1fZmlsZURlc2NyaXB0b3IoYXR0YWNobWVudC5t
X2ZpbGVEZXNjcmlwdG9yKQorICAgICwgbV9mZChXVEZNb3ZlKGF0dGFjaG1lbnQubV9mZCkpCiAg
ICAgLCBtX3NpemUoYXR0YWNobWVudC5tX3NpemUpCiAgICAgLCBtX2N1c3RvbVdyaXRlcihXVEZN
b3ZlKGF0dGFjaG1lbnQubV9jdXN0b21Xcml0ZXIpKQogewogICAgIGF0dGFjaG1lbnQubV90eXBl
ID0gVW5pbml0aWFsaXplZDsKLSAgICBhdHRhY2htZW50Lm1fZmlsZURlc2NyaXB0b3IgPSAtMTsK
ICAgICBhdHRhY2htZW50Lm1fc2l6ZSA9IDA7CiB9CiAKIEF0dGFjaG1lbnQ6OkF0dGFjaG1lbnQo
Q3VzdG9tV3JpdGVyJiYgd3JpdGVyKQogICAgIDogbV90eXBlKEN1c3RvbVdyaXRlclR5cGUpCi0g
ICAgLCBtX2ZpbGVEZXNjcmlwdG9yKC0xKQogICAgICwgbV9zaXplKDApCiAgICAgLCBtX2N1c3Rv
bVdyaXRlcihXVEZNb3ZlKHdyaXRlcikpCiB7CkBAIC02OCw4ICs2Niw3IEBAIEF0dGFjaG1lbnQm
IEF0dGFjaG1lbnQ6Om9wZXJhdG9yPShBdHRhY2htZW50JiYgYXR0YWNobWVudCkKIHsKICAgICBt
X3R5cGUgPSBhdHRhY2htZW50Lm1fdHlwZTsKICAgICBhdHRhY2htZW50Lm1fdHlwZSA9IFVuaW5p
dGlhbGl6ZWQ7Ci0gICAgbV9maWxlRGVzY3JpcHRvciA9IGF0dGFjaG1lbnQubV9maWxlRGVzY3Jp
cHRvcjsKLSAgICBhdHRhY2htZW50Lm1fZmlsZURlc2NyaXB0b3IgPSAtMTsKKyAgICBtX2ZkID0g
V1RGTW92ZShhdHRhY2htZW50Lm1fZmQpOwogICAgIG1fc2l6ZSA9IGF0dGFjaG1lbnQubV9zaXpl
OwogICAgIGF0dGFjaG1lbnQubV9zaXplID0gMDsKICAgICBtX2N1c3RvbVdyaXRlciA9IFdURk1v
dmUoYXR0YWNobWVudC5tX2N1c3RvbVdyaXRlcik7CkBAIC03NywxMCArNzQsNiBAQCBBdHRhY2ht
ZW50JiBBdHRhY2htZW50OjpvcGVyYXRvcj0oQXR0YWNobWVudCYmIGF0dGFjaG1lbnQpCiAgICAg
cmV0dXJuICp0aGlzOwogfQogCi1BdHRhY2htZW50Ojp+QXR0YWNobWVudCgpCi17Ci0gICAgaWYg
KG1fZmlsZURlc2NyaXB0b3IgIT0gLTEpCi0gICAgICAgIGNsb3NlV2l0aFJldHJ5KG1fZmlsZURl
c2NyaXB0b3IpOwotfQorQXR0YWNobWVudDo6fkF0dGFjaG1lbnQoKSA9IGRlZmF1bHQ7CiAKIH0g
Ly8gbmFtZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMv
dW5peC9Db25uZWN0aW9uVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4
L0Nvbm5lY3Rpb25Vbml4LmNwcAppbmRleCAxODExNjk3NjVkOGI3NTBkZDVlMjQ4NDA2MWU1YTgz
ZDIwZTJhMzhhLi40Y2I0OGIwY2FiYTk0YTdiMTI1OWVkYzczYjNlNzYwN2U3NWVkYzc4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNw
cApAQCAtMjA0LDEyICsyMDQsMTIgQEAgYm9vbCBDb25uZWN0aW9uOjpwcm9jZXNzTWVzc2FnZSgp
CiAgICAgICAgIGNhc2UgQXR0YWNobWVudDo6TWFwcGVkTWVtb3J5VHlwZToKICAgICAgICAgICAg
IGlmICghYXR0YWNobWVudEluZm9baV0uaXNOdWxsKCkpCiAgICAgICAgICAgICAgICAgZmQgPSBt
X2ZpbGVEZXNjcmlwdG9yc1tmZEluZGV4KytdOwotICAgICAgICAgICAgYXR0YWNobWVudHNbYXR0
YWNobWVudENvdW50IC0gaSAtIDFdID0gQXR0YWNobWVudChmZCwgYXR0YWNobWVudEluZm9baV0u
c2l6ZSgpKTsKKyAgICAgICAgICAgIGF0dGFjaG1lbnRzW2F0dGFjaG1lbnRDb3VudCAtIGkgLSAx
XSA9IEF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yKGZkLCBVbml4RmlsZURlc2NyaXB0b3I6
OkFkb3B0KSwgYXR0YWNobWVudEluZm9baV0uc2l6ZSgpKTsKICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICBjYXNlIEF0dGFjaG1lbnQ6OlNvY2tldFR5cGU6CiAgICAgICAgICAgICBpZiAoIWF0
dGFjaG1lbnRJbmZvW2ldLmlzTnVsbCgpKQogICAgICAgICAgICAgICAgIGZkID0gbV9maWxlRGVz
Y3JpcHRvcnNbZmRJbmRleCsrXTsKLSAgICAgICAgICAgIGF0dGFjaG1lbnRzW2F0dGFjaG1lbnRD
b3VudCAtIGkgLSAxXSA9IEF0dGFjaG1lbnQoZmQpOworICAgICAgICAgICAgYXR0YWNobWVudHNb
YXR0YWNobWVudENvdW50IC0gaSAtIDFdID0gQXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3Io
ZmQsIFVuaXhGaWxlRGVzY3JpcHRvcjo6QWRvcHQpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICBjYXNlIEF0dGFjaG1lbnQ6OkN1c3RvbVdyaXRlclR5cGU6CiAgICAgICAgICAgICBhdHRh
Y2htZW50c1thdHRhY2htZW50Q291bnQgLSBpIC0gMV0gPSBBdHRhY2htZW50KEF0dGFjaG1lbnQ6
OkN1c3RvbVdyaXRlcihtX3NvY2tldERlc2NyaXB0b3IpKTsKQEAgLTIzMCw3ICsyMzAsNyBAQCBi
b29sIENvbm5lY3Rpb246OnByb2Nlc3NNZXNzYWdlKCkKICAgICAgICAgfQogCiAgICAgICAgIFdl
YktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOwotICAgICAgICBoYW5kbGUuYWRvcHRB
dHRhY2htZW50KElQQzo6QXR0YWNobWVudChtX2ZpbGVEZXNjcmlwdG9yc1thdHRhY2htZW50Rmls
ZURlc2NyaXB0b3JDb3VudCAtIDFdLCBhdHRhY2htZW50SW5mb1thdHRhY2htZW50Q291bnRdLnNp
emUoKSkpOworICAgICAgICBoYW5kbGUuYWRvcHRBdHRhY2htZW50KEF0dGFjaG1lbnQoVW5peEZp
bGVEZXNjcmlwdG9yKG1fZmlsZURlc2NyaXB0b3JzW2F0dGFjaG1lbnRGaWxlRGVzY3JpcHRvckNv
dW50IC0gMV0sIFVuaXhGaWxlRGVzY3JpcHRvcjo6QWRvcHQpLCBhdHRhY2htZW50SW5mb1thdHRh
Y2htZW50Q291bnRdLnNpemUoKSkpOwogCiAgICAgICAgIG9vbE1lc3NhZ2VCb2R5ID0gV2ViS2l0
OjpTaGFyZWRNZW1vcnk6Om1hcChoYW5kbGUsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpQcm90ZWN0
aW9uOjpSZWFkT25seSk7CiAgICAgICAgIGlmICghb29sTWVzc2FnZUJvZHkpIHsKQEAgLTQ4OSw3
ICs0ODksNyBAQCBib29sIENvbm5lY3Rpb246OnNlbmRPdXRwdXRNZXNzYWdlKFVuaXhNZXNzYWdl
JiBvdXRwdXRNZXNzYWdlKQogCiAgICAgICAgIHNpemVfdCBhdHRhY2htZW50RkRCdWZmZXJMZW5n
dGggPSBzdGQ6OmNvdW50X2lmKGF0dGFjaG1lbnRzLmJlZ2luKCksIGF0dGFjaG1lbnRzLmVuZCgp
LAogICAgICAgICAgICAgW10oY29uc3QgQXR0YWNobWVudCYgYXR0YWNobWVudCkgewotICAgICAg
ICAgICAgICAgIHJldHVybiBhdHRhY2htZW50LmZpbGVEZXNjcmlwdG9yKCkgIT0gLTE7CisgICAg
ICAgICAgICAgICAgcmV0dXJuICEhYXR0YWNobWVudC5mZCgpOwogICAgICAgICAgICAgfSk7CiAK
ICAgICAgICAgaWYgKGF0dGFjaG1lbnRGREJ1ZmZlckxlbmd0aCkgewpAQCAtNTE3LDkgKzUxNyw5
IEBAIGJvb2wgQ29ubmVjdGlvbjo6c2VuZE91dHB1dE1lc3NhZ2UoVW5peE1lc3NhZ2UmIG91dHB1
dE1lc3NhZ2UpCiAgICAgICAgICAgICAgICAgYXR0YWNobWVudEluZm9baV0uc2V0U2l6ZShhdHRh
Y2htZW50c1tpXS5zaXplKCkpOwogICAgICAgICAgICAgICAgIEZBTExUSFJPVUdIOwogICAgICAg
ICAgICAgY2FzZSBBdHRhY2htZW50OjpTb2NrZXRUeXBlOgotICAgICAgICAgICAgICAgIGlmIChh
dHRhY2htZW50c1tpXS5maWxlRGVzY3JpcHRvcigpICE9IC0xKSB7CisgICAgICAgICAgICAgICAg
aWYgKCEhYXR0YWNobWVudHNbaV0uZmQoKSkgewogICAgICAgICAgICAgICAgICAgICBBU1NFUlQo
ZmRQdHIpOwotICAgICAgICAgICAgICAgICAgICBmZFB0cltmZEluZGV4KytdID0gYXR0YWNobWVu
dHNbaV0uZmlsZURlc2NyaXB0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgZmRQdHJbZmRJbmRl
eCsrXSA9IGF0dGFjaG1lbnRzW2ldLmZkKCkudmFsdWUoKTsKICAgICAgICAgICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudEluZm9baV0uc2V0TnVsbCgpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtNjM4LDYgKzYzOCw2IEBAIHZvaWQgQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZVN5bmNSZXBseShPcHRpb25TZXQ8U2VuZFN5bmNPcHRpb24+KQogc3RkOjpvcHRp
b25hbDxDb25uZWN0aW9uOjpDb25uZWN0aW9uSWRlbnRpZmllclBhaXI+IENvbm5lY3Rpb246OmNy
ZWF0ZUNvbm5lY3Rpb25JZGVudGlmaWVyUGFpcigpCiB7CiAgICAgQ29ubmVjdGlvbjo6U29ja2V0
UGFpciBzb2NrZXRQYWlyID0gQ29ubmVjdGlvbjo6Y3JlYXRlUGxhdGZvcm1Db25uZWN0aW9uKCk7
Ci0gICAgcmV0dXJuIENvbm5lY3Rpb25JZGVudGlmaWVyUGFpciB7IHNvY2tldFBhaXIuc2VydmVy
LCBBdHRhY2htZW50IHsgc29ja2V0UGFpci5jbGllbnQgfSB9OworICAgIHJldHVybiBDb25uZWN0
aW9uSWRlbnRpZmllclBhaXIgeyBzb2NrZXRQYWlyLnNlcnZlciwgQXR0YWNobWVudCB7IFVuaXhG
aWxlRGVzY3JpcHRvciB7IHNvY2tldFBhaXIuY2xpZW50LCBVbml4RmlsZURlc2NyaXB0b3I6OkFk
b3B0IH0gfSB9OwogfQogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKaW5kZXggYzkyNDBiOTI0MWIwOTA2OTBl
MGZhY2Q0N2U5MDA0NWIwOGVjMDY3NS4uNWZhMGFiOGYxZWM5NDk0MGQzOTkzMzFlN2I1Yzg3NDIz
YTZkNzM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1l
bW9yeVVuaXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1v
cnlVbml4LmNwcApAQCAtNzUsNyArNzUsNyBAQCB2b2lkIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpj
bGVhcigpCiAKIGJvb2wgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmlzTnVsbCgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fYXR0YWNobWVudC5maWxlRGVzY3JpcHRvcigpID09IC0xOworICAgIHJldHVy
biAhbV9hdHRhY2htZW50LmZkKCk7CiB9CiAKIHZvaWQgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGU6
OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CkBAIC0yMDAsOSArMjAwLDkgQEAg
UmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjptYXAoY29uc3QgSGFuZGxlJiBoYW5k
bGUsIFByb3RlY3Rpb24gcHJvdGVjdGkKIHsKICAgICBBU1NFUlQoIWhhbmRsZS5pc051bGwoKSk7
CiAKLSAgICBpbnQgZmQgPSBoYW5kbGUubV9hdHRhY2htZW50LnJlbGVhc2VGaWxlRGVzY3JpcHRv
cigpOwotICAgIHZvaWQqIGRhdGEgPSBtbWFwKDAsIGhhbmRsZS5tX2F0dGFjaG1lbnQuc2l6ZSgp
LCBhY2Nlc3NNb2RlTU1hcChwcm90ZWN0aW9uKSwgTUFQX1NIQVJFRCwgZmQsIDApOwotICAgIGNs
b3NlV2l0aFJldHJ5KGZkKTsKKyAgICBVbml4RmlsZURlc2NyaXB0b3IgZmQgPSBoYW5kbGUubV9h
dHRhY2htZW50LnJlbGVhc2UoKTsKKyAgICB2b2lkKiBkYXRhID0gbW1hcCgwLCBoYW5kbGUubV9h
dHRhY2htZW50LnNpemUoKSwgYWNjZXNzTW9kZU1NYXAocHJvdGVjdGlvbiksIE1BUF9TSEFSRUQs
IGZkLnZhbHVlKCksIDApOworICAgIGZkID0geyB9OwogICAgIGlmIChkYXRhID09IE1BUF9GQUlM
RUQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC0yNDAsMTIgKzI0MCwxMiBAQCBib29s
IFNoYXJlZE1lbW9yeTo6Y3JlYXRlSGFuZGxlKEhhbmRsZSYgaGFuZGxlLCBQcm90ZWN0aW9uKQog
ICAgIC8vIEZJWE1FOiBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIHBhc3NlZCBQcm90ZWN0aW9u
IGlzIFJlYWRPbmx5LgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTMxNTQyLgogCi0gICAgaW50IGR1cGxpY2F0ZWRIYW5kbGUgPSBkdXBDbG9zZU9u
RXhlYyhtX2ZpbGVEZXNjcmlwdG9yLnZhbHVlKCkpOwotICAgIGlmIChkdXBsaWNhdGVkSGFuZGxl
ID09IC0xKSB7CisgICAgVW5peEZpbGVEZXNjcmlwdG9yIGR1cGxpY2F0ZSB7IG1fZmlsZURlc2Ny
aXB0b3IudmFsdWUoKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpEdXBsaWNhdGUgfTsKKyAgICBpZiAo
IWR1cGxpY2F0ZSkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KLSAgICBoYW5kbGUubV9hdHRhY2htZW50ID0gSVBDOjpBdHRhY2ht
ZW50KGR1cGxpY2F0ZWRIYW5kbGUsIG1fc2l6ZSk7CisgICAgaGFuZGxlLm1fYXR0YWNobWVudCA9
IElQQzo6QXR0YWNobWVudChXVEZNb3ZlKGR1cGxpY2F0ZSksIG1fc2l6ZSk7CiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuY3BwCmluZGV4IDQwOWU5ODEwNWU3ZTEyNTkzYWEzNDAyZDVkOTdmYjgxM2QxMGNlNzIuLmY3
NDhiZGYzNzM2MTgwODNlYWRjOTViZjhhNmJiMzJiNjM3YjBiYWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzI5NSwxMyArMzI5NSwx
MiBAQCBzdGQ6Om9wdGlvbmFsPFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj4gQXJndW1lbnRD
b2RlcjxUZXh0UmVjb2duaXRpb25EYXRhRGV0ZQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8VW5peEZp
bGVEZXNjcmlwdG9yPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFVuaXhGaWxlRGVz
Y3JpcHRvciYgZmQpCiB7Ci0gICAgYXV0byBkdXBsaWNhdGUgPSBmZC5kdXBsaWNhdGUoKTsKLSAg
ICBlbmNvZGVyLmFkZEF0dGFjaG1lbnQoQXR0YWNobWVudChkdXBsaWNhdGUucmVsZWFzZSgpKSk7
CisgICAgZW5jb2Rlci5hZGRBdHRhY2htZW50KEF0dGFjaG1lbnQoZmQuZHVwbGljYXRlKCkpKTsK
IH0KIAogdm9pZCBBcmd1bWVudENvZGVyPFVuaXhGaWxlRGVzY3JpcHRvcj46OmVuY29kZShFbmNv
ZGVyJiBlbmNvZGVyLCBVbml4RmlsZURlc2NyaXB0b3ImJiBmZCkKIHsKLSAgICBlbmNvZGVyLmFk
ZEF0dGFjaG1lbnQoQXR0YWNobWVudChmZC5yZWxlYXNlKCkpKTsKKyAgICBlbmNvZGVyLmFkZEF0
dGFjaG1lbnQoQXR0YWNobWVudChXVEZNb3ZlKGZkKSkpOwogfQogCiBzdGQ6Om9wdGlvbmFsPFVu
aXhGaWxlRGVzY3JpcHRvcj4gQXJndW1lbnRDb2RlcjxVbml4RmlsZURlc2NyaXB0b3I+OjpkZWNv
ZGUoRGVjb2RlciYgZGVjb2RlcikKQEAgLTMzMDksNyArMzMwOCw3IEBAIHN0ZDo6b3B0aW9uYWw8
VW5peEZpbGVEZXNjcmlwdG9yPiBBcmd1bWVudENvZGVyPFVuaXhGaWxlRGVzY3JpcHRvcj46OmRl
Y29kZShEZWNvCiAgICAgYXV0byBhdHRhY2htZW50ID0gZGVjb2Rlci50YWtlTGFzdEF0dGFjaG1l
bnQoKTsKICAgICBpZiAoIWF0dGFjaG1lbnQpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
Ci0gICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8VW5peEZpbGVEZXNjcmlwdG9yPiB7IHN0ZDo6aW5f
cGxhY2UsIGF0dGFjaG1lbnQtPnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpLCBVbml4RmlsZURlc2Ny
aXB0b3I6OkFkb3B0IH07CisgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8VW5peEZpbGVEZXNjcmlw
dG9yPiB7IHN0ZDo6aW5fcGxhY2UsIGF0dGFjaG1lbnQtPnJlbGVhc2UoKSB9OwogfQogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvVXNlck1lc3NhZ2UuY3Bw
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ2xpYi9Vc2VyTWVzc2FnZS5jcHAKaW5kZXggMzBmNjAx
YjQyNGY1MDIxNTRkMTMyOTg5YjM1NGY3ZGMzZDU4MGQzNi4uYTViNDNmNDhkNDk2MzgyMGY3OGVj
YzdiNDUwMmI2YzE0NjU1ZTExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ2xp
Yi9Vc2VyTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ2xpYi9Vc2VyTWVz
c2FnZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgdm9pZCBVc2VyTWVzc2FnZTo6ZW5jb2RlKElQQzo6
RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBpZiAoZmlsZURlc2NyaXB0b3JzKSB7CiAgICAg
ICAgIGludCBsZW5ndGggPSBnX3VuaXhfZmRfbGlzdF9nZXRfbGVuZ3RoKGZpbGVEZXNjcmlwdG9y
cy5nZXQoKSk7CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCi0gICAg
ICAgICAgICBhdHRhY2htZW50cy5hcHBlbmQoSVBDOjpBdHRhY2htZW50KGdfdW5peF9mZF9saXN0
X2dldChmaWxlRGVzY3JpcHRvcnMuZ2V0KCksIGksIG51bGxwdHIpKSk7CisgICAgICAgICAgICBh
dHRhY2htZW50cy5hcHBlbmQoSVBDOjpBdHRhY2htZW50KFVuaXhGaWxlRGVzY3JpcHRvcihnX3Vu
aXhfZmRfbGlzdF9nZXQoZmlsZURlc2NyaXB0b3JzLmdldCgpLCBpLCBudWxscHRyKSwgVW5peEZp
bGVEZXNjcmlwdG9yOjpBZG9wdCkpKTsKICAgICB9CiAgICAgZW5jb2RlciA8PCBhdHRhY2htZW50
czsKIH0KQEAgLTkxLDcgKzkxLDcgQEAgc3RkOjpvcHRpb25hbDxVc2VyTWVzc2FnZT4gVXNlck1l
c3NhZ2U6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFhdHRhY2htZW50
cy0+aXNFbXB0eSgpKSB7CiAgICAgICAgIHJlc3VsdC5maWxlRGVzY3JpcHRvcnMgPSBhZG9wdEdS
ZWYoZ191bml4X2ZkX2xpc3RfbmV3KCkpOwogICAgICAgICBmb3IgKGF1dG8mIGF0dGFjaG1lbnQg
OiAqYXR0YWNobWVudHMpIHsKLSAgICAgICAgICAgIGlmIChnX3VuaXhfZmRfbGlzdF9hcHBlbmQo
cmVzdWx0LmZpbGVEZXNjcmlwdG9ycy5nZXQoKSwgYXR0YWNobWVudC5yZWxlYXNlRmlsZURlc2Ny
aXB0b3IoKSwgbnVsbHB0cikgPT0gLTEpCisgICAgICAgICAgICBpZiAoZ191bml4X2ZkX2xpc3Rf
YXBwZW5kKHJlc3VsdC5maWxlRGVzY3JpcHRvcnMuZ2V0KCksIGF0dGFjaG1lbnQuZmQoKS5yZWxl
YXNlKCksIG51bGxwdHIpID09IC0xKQogICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvUGFnZUNsaWVudEltcGwuY3BwCmluZGV4IDgwNjk5M2NhNzNhOWNjZTM3NzUzZDgwNWE5
YWI5ZjRjYjZiZDFhN2IuLmNmZTM2ODlmMjJjNjY1OWNlYWIzOTUwZTQwYjY4NmU5Yjk3YjQyNTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudElt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudElt
cGwuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBQYWdlQ2xp
ZW50SW1wbDo6dmlld0JhY2tlbmQoKQogCiBJUEM6OkF0dGFjaG1lbnQgUGFnZUNsaWVudEltcGw6
Omhvc3RGaWxlRGVzY3JpcHRvcigpCiB7Ci0gICAgcmV0dXJuIHdwZV92aWV3X2JhY2tlbmRfZ2V0
X3JlbmRlcmVyX2hvc3RfZmQobV92aWV3LmJhY2tlbmQoKSk7CisgICAgcmV0dXJuIElQQzo6QXR0
YWNobWVudChVbml4RmlsZURlc2NyaXB0b3Iod3BlX3ZpZXdfYmFja2VuZF9nZXRfcmVuZGVyZXJf
aG9zdF9mZChtX3ZpZXcuYmFja2VuZCgpKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpBZG9wdCkpOwog
fQogCiBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gUGFnZUNsaWVudEltcGw6OmNy
ZWF0ZURyYXdpbmdBcmVhUHJveHkoV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCmluZGV4
IDBkMWY0MDBlNDQ0MTA4ODdlMjQ2N2Q0MDkyNTM3OWYzODQzZGE2ODcuLmU4NTA0Y2RiNDQyODE1
OTIxNWFjNjEzNGU0MjExYzM3NmI0YjQ5NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgdm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQ
cm9jZXNzUHJveHkmIHByb2Nlc3MKICAgICBwYXJhbWV0ZXJzLmlzU2VydmljZVdvcmtlclByb2Nl
c3MgPSBwcm9jZXNzLmlzUnVubmluZ1NlcnZpY2VXb3JrZXJzKCk7CiAKICAgICBpZiAoIXBhcmFt
ZXRlcnMuaXNTZXJ2aWNlV29ya2VyUHJvY2VzcykgewotICAgICAgICBwYXJhbWV0ZXJzLmhvc3RD
bGllbnRGaWxlRGVzY3JpcHRvciA9IHdwZV9yZW5kZXJlcl9ob3N0X2NyZWF0ZV9jbGllbnQoKTsK
KyAgICAgICAgcGFyYW1ldGVycy5ob3N0Q2xpZW50RmlsZURlc2NyaXB0b3IgPSBJUEM6OkF0dGFj
aG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yKHdwZV9yZW5kZXJlcl9ob3N0X2NyZWF0ZV9jbGllbnQo
KSwgVW5peEZpbGVEZXNjcmlwdG9yOjpBZG9wdCkpOwogICAgICAgICBwYXJhbWV0ZXJzLmltcGxl
bWVudGF0aW9uTGlicmFyeU5hbWUgPSBGaWxlU3lzdGVtOjpmaWxlU3lzdGVtUmVwcmVzZW50YXRp
b24od3BlX2xvYWRlcl9nZXRfbG9hZGVkX2ltcGxlbWVudGF0aW9uX2xpYnJhcnlfbmFtZSgpKTsK
ICAgICB9CiAjZW5kaWYKQEAgLTg4LDcgKzg4LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxh
dGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MK
ICNpZiBVU0UoV1BFX1JFTkRFUkVSKQogICAgICAgICB3cGVfbG9hZGVyX2luaXQoImxpYldQRUJh
Y2tlbmQtZmRvLTEuMC5zby4xIik7CiAgICAgICAgIGlmIChBY2NlbGVyYXRlZEJhY2tpbmdTdG9y
ZVdheWxhbmQ6OmNoZWNrUmVxdWlyZW1lbnRzKCkpIHsKLSAgICAgICAgICAgIHBhcmFtZXRlcnMu
aG9zdENsaWVudEZpbGVEZXNjcmlwdG9yID0gd3BlX3JlbmRlcmVyX2hvc3RfY3JlYXRlX2NsaWVu
dCgpOworICAgICAgICAgICAgcGFyYW1ldGVycy5ob3N0Q2xpZW50RmlsZURlc2NyaXB0b3IgPSBJ
UEM6OkF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yKHdwZV9yZW5kZXJlcl9ob3N0X2NyZWF0
ZV9jbGllbnQoKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpBZG9wdCkpOwogICAgICAgICAgICAgcGFy
YW1ldGVycy5pbXBsZW1lbnRhdGlvbkxpYnJhcnlOYW1lID0gRmlsZVN5c3RlbTo6ZmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKHdwZV9sb2FkZXJfZ2V0X2xvYWRlZF9pbXBsZW1lbnRhdGlvbl9saWJy
YXJ5X25hbWUoKSk7CiAgICAgICAgIH0KICNlbGlmIFVTRShFR0wpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uSW5mby5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbkluZm8uaAppbmRl
eCA5YzgxZGMyNWExZTRmNWI0YjZkYTkxZjAzNGM0MjU4ZGMwNTAxN2ZlLi43YzEwOWI3YjY4OTkw
ZGY5NDJkNTljY2VjN2M2NGUzNTUyYTdkMzc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uSW5mby5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgKQEAgLTQxLDcgKzQx
LDcgQEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9uSW5mbyB7CiAgICAgSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdAogICAgIHsKICNpZiBVU0UoVU5JWF9E
T01BSU5fU09DS0VUUykKLSAgICAgICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
cihjb25uZWN0aW9uLmZpbGVEZXNjcmlwdG9yKCkpOworICAgICAgICByZXR1cm4gSVBDOjpDb25u
ZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rpb24uZmQoKS52YWx1ZSgpKTsKICNlbGlmIE9TKERB
UldJTikKICAgICAgICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihjb25uZWN0
aW9uLnBvcnQoKSk7CiAjZWxpZiBPUyhXSU5ET1dTKQpAQCAtNTUsNyArNTUsNyBAQCBzdHJ1Y3Qg
R1BVUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsKICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIgcmVsZWFzZUlkZW50aWZpZXIoKQogICAgIHsKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VU
UykKLSAgICAgICAgYXV0byByZXR1cm5WYWx1ZSA9IElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmll
cihjb25uZWN0aW9uLnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpKTsKKyAgICAgICAgYXV0byByZXR1
cm5WYWx1ZSA9IElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihjb25uZWN0aW9uLmZkKCkucmVs
ZWFzZSgpKTsKICNlbHNlCiAgICAgICAgIGF1dG8gcmV0dXJuVmFsdWUgPSBpZGVudGlmaWVyKCk7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2Vi
SW5zcGVjdG9yLmNwcAppbmRleCA2MzBlM2Y4M2NhOWI0NDBjM2ZlNjliMDA0YjNmMWY3ZGQ1MWEy
Mjg5Li5lZmQxZDkzMDFiNTAzMTkwYmQ5N2FmOTZkOGVhMDUwZDE2NTMyOTE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuY3BwCkBA
IC04NSw3ICs4NSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yOjpzZXRGcm9udGVuZENvbm5lY3Rpb24o
SVBDOjpBdHRhY2htZW50IGVuY29kZWRDb25uZWN0aW9uSWRlbnRpCiAgICAgfQogCiAjaWYgVVNF
KFVOSVhfRE9NQUlOX1NPQ0tFVFMpCi0gICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNv
bm5lY3Rpb25JZGVudGlmaWVyKGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5yZWxlYXNlRmls
ZURlc2NyaXB0b3IoKSk7CisgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rp
b25JZGVudGlmaWVyKGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5mZCgpLnJlbGVhc2UoKSk7
CiAjZWxpZiBPUyhEQVJXSU4pCiAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGNvbm5l
Y3Rpb25JZGVudGlmaWVyKGVuY29kZWRDb25uZWN0aW9uSWRlbnRpZmllci5wb3J0KCkpOwogI2Vs
aWYgT1MoV0lORE9XUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaAppbmRleCAwMzc2M2Fh
NWZiOGViZDNiYzI0MjRlNzY5OWViMTJiNWY3OGZjNjA5Li5mZTY1N2JjZDhmMTA2YjAzYzhkNmZh
ZDQyYTRmYjJmYmRlNDc4MTU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oCkBAIC00
MCw3ICs0MCw3IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsKICAgICBJ
UEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0CiAgICAgewogI2lm
IFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQotICAgICAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyKGNvbm5lY3Rpb24uZmlsZURlc2NyaXB0b3IoKSk7CisgICAgICAgIHJldHVy
biBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIoY29ubmVjdGlvbi5mZCgpLnZhbHVlKCkpOwog
I2VsaWYgT1MoREFSV0lOKQogICAgICAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyKGNvbm5lY3Rpb24ucG9ydCgpKTsKICNlbGlmIE9TKFdJTkRPV1MpCkBAIC01NCw3ICs1NCw3
IEBAIHN0cnVjdCBOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsKICAgICBJUEM6OkNvbm5l
Y3Rpb246OklkZW50aWZpZXIgcmVsZWFzZUlkZW50aWZpZXIoKQogICAgIHsKICNpZiBVU0UoVU5J
WF9ET01BSU5fU09DS0VUUykKLSAgICAgICAgYXV0byByZXR1cm5WYWx1ZSA9IElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllcihjb25uZWN0aW9uLnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpKTsKKyAg
ICAgICAgYXV0byByZXR1cm5WYWx1ZSA9IElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihjb25u
ZWN0aW9uLmZkKCkucmVsZWFzZSgpKTsKICNlbHNlCiAgICAgICAgIGF1dG8gcmV0dXJuVmFsdWUg
PSBpZGVudGlmaWVyKCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCAxZWU3NGY0ZDkyMzdlYTA4OWMyODlmYzExNGE2MDk3MzhjMzU5MjVj
Li41Y2YyNDUyMzMyMTRhZGJhZTA2Mjg1MWMzZjY4NzljZWIyMjNiNmQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMzM5LDcgKzEzMzksNyBAQCBw
dWJsaWM6CiAjZW5kaWYKIAogI2lmIFVTRShXUEVfUkVOREVSRVIpCi0gICAgaW50IGhvc3RGaWxl
RGVzY3JpcHRvcigpIGNvbnN0IHsgcmV0dXJuIG1faG9zdEZpbGVEZXNjcmlwdG9yLmZpbGVEZXNj
cmlwdG9yKCk7IH0KKyAgICBpbnQgaG9zdEZpbGVEZXNjcmlwdG9yKCkgY29uc3QgeyByZXR1cm4g
bV9ob3N0RmlsZURlc2NyaXB0b3IuZmQoKS52YWx1ZSgpOyB9CiAjZW5kaWYKIAogICAgIHZvaWQg
dXBkYXRlQ3VycmVudE1vZGlmaWVyU3RhdGUoT3B0aW9uU2V0PFdlYkNvcmU6OlBsYXRmb3JtRXZl
bnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwCmluZGV4IGJhYjVkZGYxZGExMGJhN2NiYzVmMWE3NDQz
MDUzYTFjZGU3NGZkYjMuLjIyOWRhNmQzMjhlOTExMzkzNTI3NDkxMzAxYjI3MGRhZWVhN2E1NmUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGli
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzR0xpYi5j
cHAKQEAgLTExNCw3ICsxMTQsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6
ZVdlYlByb2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgICAgICAg
ICAgd3BlX2xvYWRlcl9pbml0KHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZS5k
YXRhKCkpOwogCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzPFBsYXRmb3JtRGlzcGxheUxpYldQ
RT4oUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkpKTsKLSAgICAgICAgZG93bmNhc3Q8
UGxhdGZvcm1EaXNwbGF5TGliV1BFPihQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKSku
aW5pdGlhbGl6ZShwYXJhbWV0ZXJzLmhvc3RDbGllbnRGaWxlRGVzY3JpcHRvci5yZWxlYXNlRmls
ZURlc2NyaXB0b3IoKSk7CisgICAgICAgIGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheUxpYldQRT4o
UGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkpLmluaXRpYWxpemUocGFyYW1ldGVycy5o
b3N0Q2xpZW50RmlsZURlc2NyaXB0b3IuZmQoKS5yZWxlYXNlKCkpOwogICAgIH0KICNlbmRpZgog
CkBAIC0xMjIsNyArMTIyLDcgQEAgdm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVX
ZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmEKICAgICBpZiAoUGxh
dGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkudHlwZSgpID09IFBsYXRmb3JtRGlzcGxheTo6
VHlwZTo6V2F5bGFuZCkgewogI2lmIFVTRShXUEVfUkVOREVSRVIpCiAgICAgICAgIGlmICghcGFy
YW1ldGVycy5pc1NlcnZpY2VXb3JrZXJQcm9jZXNzKSB7Ci0gICAgICAgICAgICBhdXRvIGhvc3RD
bGllbnRGaWxlRGVzY3JpcHRvciA9IHBhcmFtZXRlcnMuaG9zdENsaWVudEZpbGVEZXNjcmlwdG9y
LnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpOworICAgICAgICAgICAgYXV0byBob3N0Q2xpZW50Rmls
ZURlc2NyaXB0b3IgPSBwYXJhbWV0ZXJzLmhvc3RDbGllbnRGaWxlRGVzY3JpcHRvci5mZCgpLnJl
bGVhc2UoKTsKICAgICAgICAgICAgIGlmIChob3N0Q2xpZW50RmlsZURlc2NyaXB0b3IgIT0gLTEp
IHsKICAgICAgICAgICAgICAgICB3cGVfbG9hZGVyX2luaXQocGFyYW1ldGVycy5pbXBsZW1lbnRh
dGlvbkxpYnJhcnlOYW1lLmRhdGEoKSk7CiAgICAgICAgICAgICAgICAgbV93cGVEaXNwbGF5ID0g
V2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5TGliV1BFOjpjcmVhdGUoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456796</attachid>
            <date>2022-04-06 02:42:06 -0700</date>
            <delta_ts>2022-04-06 04:00:56 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-238801-20220406114205.patch</filename>
            <type>text/plain</type>
            <size>22832</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNDUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0Mzc1MDhhYWYzOGI1ZmU0
YTEzOTk4ZTlhNThhMmIzYjNmYmUxMzAuLmEyMDhiNzgwYWNiMDZhNzZiODNmMTJjOTRjMTIyZjVl
YjVjNzAwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjcgQEAKKzIwMjItMDQtMDYgIFphbiBEb2Jl
cnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtVbml4XSBBZG9wdCBVbml4
RmlsZURlc2NyaXB0b3IgaW4gSVBDOjpBdHRhY2htZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg4MDEKKworICAgICAgICBSZXZpZXdlZCBieSBD
YXJsb3MgR2FyY2lhIENhbXBvcy4KKworICAgICAgICBBZG9wdCBXVEY6OlVuaXhGaWxlRGVzY3Jp
cHRvciBmb3IgdXNhZ2UgaW4gSVBDOjpBdHRhY2htZW50LCBpbiBwbGFjZSBvZgorICAgICAgICBh
IHJhdyBpbnRlZ2VyIHZhbHVlLiBUaGlzIHNpbXBsaWZpZXMgbW92ZSBvcGVyYXRpb25zIGFuZCBk
ZXN0cnVjdGlvbiBvZgorICAgICAgICB0aGlzIHZhbHVlLgorCisgICAgICAgIFRoZSB0d28gcmVs
ZXZhbnQgY29uc3RydWN0b3JzIGFyZSBjaGFuZ2VkIHRvIGV4cGVjdCBhIFVuaXhGaWxlRGVzY3Jp
cHRvcgorICAgICAgICBydmFsdWUsIGFuZCB0aGV5J3JlIGFsc28gbWFkZSBleHBsaWNpdC4gVGhl
IGZpbGUgZGVzY3JpcHRvciBvYmplY3QgaXMKKyAgICAgICAgYWNjZXNzaWJsZSB0aHJvdWdoIGJv
dGggYSBjb25zdCBhbmQgYSBub24tY29uc3QgZ2V0dGVyLCB3aGljaCBhbGxvd3MgdGhlCisgICAg
ICAgIHVzZXIgdG8gcmVhZCBvciByZWxlYXNlIHRoZSBmaWxlIGRlc2NyaXB0b3IgY29udGFpbmVk
IHRoZXJlLiBUaGVyZSdzCisgICAgICAgIGFsc28gYSByZWxlYXNlIG1ldGhvZCB0aGF0IHJldHVy
bnMgdGhlIGNvbnRhaW5lZCBVbml4RmlsZURlc2NyaXB0b3IuCisKKyAgICAgICAgVGhlIHJlbGVh
c2VGaWxlRGVzY3JpcHRvcigpIGFuZCBmaWxlRGVzY3JpcHRvcigpIG1ldGhvZHMsIHByZXZpb3Vz
bHkKKyAgICAgICAgcmVsZWFzaW5nIG9yIHJldHVybmluZyB0aGUgY29udGFpbmVkIGludGVnZXIg
dmFsdWUgb2YgdGhlIGRlc2NyaXB0b3IuCisgICAgICAgIENhbGwgc2l0ZXMgZm9yIHRoZXNlIG1l
dGhvZHMgYXMgd2VsbCBhcyB0aGUgb2xkLWZvcm0gY29uc3RydWN0b3JzIGFyZQorICAgICAgICBh
ZGp1c3RlZCB0byB0aGUgbmV3IHZhcmlhbnRzLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0F0
dGFjaG1lbnQuaDoKKyAgICAgICAgKElQQzo6QXR0YWNobWVudDo6aXNOdWxsIGNvbnN0KToKKyAg
ICAgICAgKElQQzo6QXR0YWNobWVudDo6ZmQpOgorICAgICAgICAoSVBDOjpBdHRhY2htZW50Ojpm
ZCBjb25zdCk6CisgICAgICAgIChJUEM6OkF0dGFjaG1lbnQ6OnJlbGVhc2UpOgorICAgICAgICAo
SVBDOjpBdHRhY2htZW50OjpyZWxlYXNlRmlsZURlc2NyaXB0b3IpOiBEZWxldGVkLgorICAgICAg
ICAoSVBDOjpBdHRhY2htZW50OjpmaWxlRGVzY3JpcHRvciBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgICogUGxhdGZvcm0vSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwOgorICAgICAgICAoSVBD
OjpBdHRhY2htZW50OjpBdHRhY2htZW50KToKKyAgICAgICAgKElQQzo6QXR0YWNobWVudDo6b3Bl
cmF0b3I9KToKKyAgICAgICAgKElQQzo6QXR0YWNobWVudDo6fkF0dGFjaG1lbnQpOiBEZWxldGVk
LgorICAgICAgICAqIFBsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcDoKKyAgICAg
ICAgKElQQzo6Q29ubmVjdGlvbjo6cHJvY2Vzc01lc3NhZ2UpOgorICAgICAgICAoSVBDOjpDb25u
ZWN0aW9uOjpzZW5kT3V0cHV0TWVzc2FnZSk6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OmNy
ZWF0ZUNvbm5lY3Rpb25JZGVudGlmaWVyUGFpcik6CisgICAgICAgICogUGxhdGZvcm0vdW5peC9T
aGFyZWRNZW1vcnlVbml4LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5k
bGU6OmlzTnVsbCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6bWFwKToK
KyAgICAgICAgKFdlYktpdDo6U2hhcmVkTWVtb3J5OjpjcmVhdGVIYW5kbGUpOgorICAgICAgICAq
IFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAoSVBDOjpBcmd1bWVu
dENvZGVyPFVuaXhGaWxlRGVzY3JpcHRvcj46OmVuY29kZSk6CisgICAgICAgIChJUEM6OkFyZ3Vt
ZW50Q29kZXI8VW5peEZpbGVEZXNjcmlwdG9yPjo6ZGVjb2RlKToKKyAgICAgICAgKiBTaGFyZWQv
Z2xpYi9Vc2VyTWVzc2FnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZXNzYWdlOjplbmNv
ZGUgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVzc2FnZTo6ZGVjb2RlKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjpob3N0RmlsZURlc2NyaXB0b3IpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBy
b2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbkluZm8uaDoKKyAgICAgICAgKFdlYktpdDo6
R1BVUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdl
YktpdDo6R1BVUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvOjpyZWxlYXNlSWRlbnRpZmllcik6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViSW5zcGVjdG9yOjpzZXRGcm9udGVuZENvbm5lY3Rpb24pOgorICAgICAgICAqIFdl
YlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm86OmlkZW50aWZpZXIgY29uc3Qp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvOjpyZWxlYXNl
SWRlbnRpZmllcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6aG9zdEZpbGVEZXNjcmlwdG9yIGNvbnN0KToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKToKKwogMjAyMi0wNC0w
NiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIE5v
dGlmaWNhdGlvbjo6bV9yZWxhdGVkTm90aWZpY2F0aW9uSWRlbnRpZmllcgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXR0YWNobWVudC5oIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvQXR0YWNobWVudC5oCmluZGV4IDkwZTQ3ZjBiZDkxODI1NWFmOWEyOTI3NmVm
MzVmOGIwZTM3MGE4OWQuLmI0YTlhNDg0NDI1ODA5MjdiZWI0MjlmMGUwZjk3OGVlMGI2OTNjZjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0F0dGFjaG1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9BdHRhY2htZW50LmgKQEAgLTQwLDYgKzQwLDcg
QEAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKICNpbmNsdWRlIDx2YXJpYW50PgogI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0Zi91bml4L1VuaXhGaWxlRGVzY3Jp
cHRvci5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtNjMsMTAgKzY0LDExIEBAIHB1
YmxpYzoKICAgICB9OwogCiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCisgICAgZXhwbGlj
aXQgQXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3ImJiwgc2l6ZV90KTsKKyAgICBleHBsaWNp
dCBBdHRhY2htZW50KFVuaXhGaWxlRGVzY3JpcHRvciYmKTsKKwogICAgIEF0dGFjaG1lbnQoQXR0
YWNobWVudCYmKTsKICAgICBBdHRhY2htZW50JiBvcGVyYXRvcj0oQXR0YWNobWVudCYmKTsKLSAg
ICBBdHRhY2htZW50KGludCBmaWxlRGVzY3JpcHRvciwgc2l6ZV90KTsKLSAgICBBdHRhY2htZW50
KGludCBmaWxlRGVzY3JpcHRvcik7CiAgICAgfkF0dGFjaG1lbnQoKTsKIAogICAgIHVzaW5nIFNv
Y2tldERlc2NyaXB0b3IgPSBpbnQ7CkBAIC04NCwxMCArODYsMTMgQEAgcHVibGljOgogICAgIFR5
cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCiAjaWYgVVNFKFVOSVhfRE9NQUlO
X1NPQ0tFVFMpCisgICAgYm9vbCBpc051bGwoKSBjb25zdCB7IHJldHVybiAhbV9mZDsgfQogICAg
IHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CiAKLSAgICBpbnQgcmVsZWFz
ZUZpbGVEZXNjcmlwdG9yKCkgeyBpbnQgdGVtcCA9IG1fZmlsZURlc2NyaXB0b3I7IG1fZmlsZURl
c2NyaXB0b3IgPSAtMTsgcmV0dXJuIHRlbXA7IH0KLSAgICBpbnQgZmlsZURlc2NyaXB0b3IoKSBj
b25zdCB7IHJldHVybiBtX2ZpbGVEZXNjcmlwdG9yOyB9CisgICAgVW5peEZpbGVEZXNjcmlwdG9y
JiBmZCgpIHsgcmV0dXJuIG1fZmQ7IH0KKyAgICBjb25zdCBVbml4RmlsZURlc2NyaXB0b3ImIGZk
KCkgY29uc3QgeyByZXR1cm4gbV9mZDsgfQorICAgIFVuaXhGaWxlRGVzY3JpcHRvciByZWxlYXNl
KCkgeyByZXR1cm4gc3RkOjpleGNoYW5nZShtX2ZkLCBVbml4RmlsZURlc2NyaXB0b3IgeyB9KTsg
fQorCiAgICAgY29uc3QgQ3VzdG9tV3JpdGVyJiBjdXN0b21Xcml0ZXIoKSBjb25zdCB7IHJldHVy
biBtX2N1c3RvbVdyaXRlcjsgfQogI2VsaWYgT1MoREFSV0lOKQogICAgIHZvaWQgcmVsZWFzZSgp
OwpAQCAtMTA2LDcgKzExMSw3IEBAIHByaXZhdGU6CiAgICAgVHlwZSBtX3R5cGU7CiAKICNpZiBV
U0UoVU5JWF9ET01BSU5fU09DS0VUUykKLSAgICBpbnQgbV9maWxlRGVzY3JpcHRvciB7IC0xIH07
CisgICAgVW5peEZpbGVEZXNjcmlwdG9yIG1fZmQ7CiAgICAgc2l6ZV90IG1fc2l6ZTsKICAgICBD
dXN0b21Xcml0ZXIgbV9jdXN0b21Xcml0ZXI7CiAjZWxpZiBPUyhEQVJXSU4pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0F0dGFjaG1lbnRVbml4LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwCmluZGV4IGJi
NzliZjJiM2FmZTQwN2Q5ODY3ZmQ4MjQwMTc3NmQ0ZDI5Yjg5ZjguLjBlNDRmYWY5YjNlYjBkMDgw
MzA5YWZiOTYwZWVkNDY0NGU3NTEyYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwCkBAIC0zMSwzNCArMzEsMzIgQEAKIAogbmFt
ZXNwYWNlIElQQyB7CiAKLUF0dGFjaG1lbnQ6OkF0dGFjaG1lbnQoaW50IGZpbGVEZXNjcmlwdG9y
LCBzaXplX3Qgc2l6ZSkKK0F0dGFjaG1lbnQ6OkF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9y
JiYgZmQsIHNpemVfdCBzaXplKQogICAgIDogbV90eXBlKE1hcHBlZE1lbW9yeVR5cGUpCi0gICAg
LCBtX2ZpbGVEZXNjcmlwdG9yKGZpbGVEZXNjcmlwdG9yKQorICAgICwgbV9mZChXVEZNb3ZlKGZk
KSkKICAgICAsIG1fc2l6ZShzaXplKQogewogfQogCi1BdHRhY2htZW50OjpBdHRhY2htZW50KGlu
dCBmaWxlRGVzY3JpcHRvcikKK0F0dGFjaG1lbnQ6OkF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlw
dG9yJiYgZmQpCiAgICAgOiBtX3R5cGUoU29ja2V0VHlwZSkKLSAgICAsIG1fZmlsZURlc2NyaXB0
b3IoZmlsZURlc2NyaXB0b3IpCisgICAgLCBtX2ZkKFdURk1vdmUoZmQpKQogICAgICwgbV9zaXpl
KDApCiB7CiB9CiAKIEF0dGFjaG1lbnQ6OkF0dGFjaG1lbnQoQXR0YWNobWVudCYmIGF0dGFjaG1l
bnQpCiAgICAgOiBtX3R5cGUoYXR0YWNobWVudC5tX3R5cGUpCi0gICAgLCBtX2ZpbGVEZXNjcmlw
dG9yKGF0dGFjaG1lbnQubV9maWxlRGVzY3JpcHRvcikKKyAgICAsIG1fZmQoV1RGTW92ZShhdHRh
Y2htZW50Lm1fZmQpKQogICAgICwgbV9zaXplKGF0dGFjaG1lbnQubV9zaXplKQogICAgICwgbV9j
dXN0b21Xcml0ZXIoV1RGTW92ZShhdHRhY2htZW50Lm1fY3VzdG9tV3JpdGVyKSkKIHsKICAgICBh
dHRhY2htZW50Lm1fdHlwZSA9IFVuaW5pdGlhbGl6ZWQ7Ci0gICAgYXR0YWNobWVudC5tX2ZpbGVE
ZXNjcmlwdG9yID0gLTE7CiAgICAgYXR0YWNobWVudC5tX3NpemUgPSAwOwogfQogCiBBdHRhY2ht
ZW50OjpBdHRhY2htZW50KEN1c3RvbVdyaXRlciYmIHdyaXRlcikKICAgICA6IG1fdHlwZShDdXN0
b21Xcml0ZXJUeXBlKQotICAgICwgbV9maWxlRGVzY3JpcHRvcigtMSkKICAgICAsIG1fc2l6ZSgw
KQogICAgICwgbV9jdXN0b21Xcml0ZXIoV1RGTW92ZSh3cml0ZXIpKQogewpAQCAtNjgsOCArNjYs
NyBAQCBBdHRhY2htZW50JiBBdHRhY2htZW50OjpvcGVyYXRvcj0oQXR0YWNobWVudCYmIGF0dGFj
aG1lbnQpCiB7CiAgICAgbV90eXBlID0gYXR0YWNobWVudC5tX3R5cGU7CiAgICAgYXR0YWNobWVu
dC5tX3R5cGUgPSBVbmluaXRpYWxpemVkOwotICAgIG1fZmlsZURlc2NyaXB0b3IgPSBhdHRhY2ht
ZW50Lm1fZmlsZURlc2NyaXB0b3I7Ci0gICAgYXR0YWNobWVudC5tX2ZpbGVEZXNjcmlwdG9yID0g
LTE7CisgICAgbV9mZCA9IFdURk1vdmUoYXR0YWNobWVudC5tX2ZkKTsKICAgICBtX3NpemUgPSBh
dHRhY2htZW50Lm1fc2l6ZTsKICAgICBhdHRhY2htZW50Lm1fc2l6ZSA9IDA7CiAgICAgbV9jdXN0
b21Xcml0ZXIgPSBXVEZNb3ZlKGF0dGFjaG1lbnQubV9jdXN0b21Xcml0ZXIpOwpAQCAtNzcsMTAg
Kzc0LDYgQEAgQXR0YWNobWVudCYgQXR0YWNobWVudDo6b3BlcmF0b3I9KEF0dGFjaG1lbnQmJiBh
dHRhY2htZW50KQogICAgIHJldHVybiAqdGhpczsKIH0KIAotQXR0YWNobWVudDo6fkF0dGFjaG1l
bnQoKQotewotICAgIGlmIChtX2ZpbGVEZXNjcmlwdG9yICE9IC0xKQotICAgICAgICBjbG9zZVdp
dGhSZXRyeShtX2ZpbGVEZXNjcmlwdG9yKTsKLX0KK0F0dGFjaG1lbnQ6On5BdHRhY2htZW50KCkg
PSBkZWZhdWx0OwogCiB9IC8vIG5hbWVzcGFjZSBJUEMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0aW9uVW5peC5jcHAKaW5kZXggMTgxMTY5NzY1ZDhiNzUw
ZGQ1ZTI0ODQwNjFlNWE4M2QyMGUyYTM4YS4uNDIxODVmMjliZGFkMjA5MDllOTgyNzNmYjMzNjQ1
ZjI2MjkxNmVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9D
b25uZWN0aW9uVW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9D
b25uZWN0aW9uVW5peC5jcHAKQEAgLTIwNCwxMiArMjA0LDEyIEBAIGJvb2wgQ29ubmVjdGlvbjo6
cHJvY2Vzc01lc3NhZ2UoKQogICAgICAgICBjYXNlIEF0dGFjaG1lbnQ6Ok1hcHBlZE1lbW9yeVR5
cGU6CiAgICAgICAgICAgICBpZiAoIWF0dGFjaG1lbnRJbmZvW2ldLmlzTnVsbCgpKQogICAgICAg
ICAgICAgICAgIGZkID0gbV9maWxlRGVzY3JpcHRvcnNbZmRJbmRleCsrXTsKLSAgICAgICAgICAg
IGF0dGFjaG1lbnRzW2F0dGFjaG1lbnRDb3VudCAtIGkgLSAxXSA9IEF0dGFjaG1lbnQoZmQsIGF0
dGFjaG1lbnRJbmZvW2ldLnNpemUoKSk7CisgICAgICAgICAgICBhdHRhY2htZW50c1thdHRhY2ht
ZW50Q291bnQgLSBpIC0gMV0gPSBBdHRhY2htZW50KFVuaXhGaWxlRGVzY3JpcHRvcihmZCwgVW5p
eEZpbGVEZXNjcmlwdG9yOjpBZG9wdCksIGF0dGFjaG1lbnRJbmZvW2ldLnNpemUoKSk7CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBdHRhY2htZW50OjpTb2NrZXRUeXBlOgogICAg
ICAgICAgICAgaWYgKCFhdHRhY2htZW50SW5mb1tpXS5pc051bGwoKSkKICAgICAgICAgICAgICAg
ICBmZCA9IG1fZmlsZURlc2NyaXB0b3JzW2ZkSW5kZXgrK107Ci0gICAgICAgICAgICBhdHRhY2ht
ZW50c1thdHRhY2htZW50Q291bnQgLSBpIC0gMV0gPSBBdHRhY2htZW50KGZkKTsKKyAgICAgICAg
ICAgIGF0dGFjaG1lbnRzW2F0dGFjaG1lbnRDb3VudCAtIGkgLSAxXSA9IEF0dGFjaG1lbnQoVW5p
eEZpbGVEZXNjcmlwdG9yKGZkLCBVbml4RmlsZURlc2NyaXB0b3I6OkFkb3B0KSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgY2FzZSBBdHRhY2htZW50OjpDdXN0b21Xcml0ZXJUeXBlOgog
ICAgICAgICAgICAgYXR0YWNobWVudHNbYXR0YWNobWVudENvdW50IC0gaSAtIDFdID0gQXR0YWNo
bWVudChBdHRhY2htZW50OjpDdXN0b21Xcml0ZXIobV9zb2NrZXREZXNjcmlwdG9yKSk7CkBAIC0y
MzAsNyArMjMwLDcgQEAgYm9vbCBDb25uZWN0aW9uOjpwcm9jZXNzTWVzc2FnZSgpCiAgICAgICAg
IH0KIAogICAgICAgICBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKLSAgICAg
ICAgaGFuZGxlLmFkb3B0QXR0YWNobWVudChJUEM6OkF0dGFjaG1lbnQobV9maWxlRGVzY3JpcHRv
cnNbYXR0YWNobWVudEZpbGVEZXNjcmlwdG9yQ291bnQgLSAxXSwgYXR0YWNobWVudEluZm9bYXR0
YWNobWVudENvdW50XS5zaXplKCkpKTsKKyAgICAgICAgaGFuZGxlLmFkb3B0QXR0YWNobWVudChB
dHRhY2htZW50KFVuaXhGaWxlRGVzY3JpcHRvcihtX2ZpbGVEZXNjcmlwdG9yc1thdHRhY2htZW50
RmlsZURlc2NyaXB0b3JDb3VudCAtIDFdLCBVbml4RmlsZURlc2NyaXB0b3I6OkFkb3B0KSwgYXR0
YWNobWVudEluZm9bYXR0YWNobWVudENvdW50XS5zaXplKCkpKTsKIAogICAgICAgICBvb2xNZXNz
YWdlQm9keSA9IFdlYktpdDo6U2hhcmVkTWVtb3J5OjptYXAoaGFuZGxlLCBXZWJLaXQ6OlNoYXJl
ZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOwogICAgICAgICBpZiAoIW9vbE1lc3NhZ2VC
b2R5KSB7CkBAIC00ODksNyArNDg5LDcgQEAgYm9vbCBDb25uZWN0aW9uOjpzZW5kT3V0cHV0TWVz
c2FnZShVbml4TWVzc2FnZSYgb3V0cHV0TWVzc2FnZSkKIAogICAgICAgICBzaXplX3QgYXR0YWNo
bWVudEZEQnVmZmVyTGVuZ3RoID0gc3RkOjpjb3VudF9pZihhdHRhY2htZW50cy5iZWdpbigpLCBh
dHRhY2htZW50cy5lbmQoKSwKICAgICAgICAgICAgIFtdKGNvbnN0IEF0dGFjaG1lbnQmIGF0dGFj
aG1lbnQpIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gYXR0YWNobWVudC5maWxlRGVzY3JpcHRv
cigpICE9IC0xOworICAgICAgICAgICAgICAgIHJldHVybiAhYXR0YWNobWVudC5pc051bGwoKTsK
ICAgICAgICAgICAgIH0pOwogCiAgICAgICAgIGlmIChhdHRhY2htZW50RkRCdWZmZXJMZW5ndGgp
IHsKQEAgLTUxNyw5ICs1MTcsOSBAQCBib29sIENvbm5lY3Rpb246OnNlbmRPdXRwdXRNZXNzYWdl
KFVuaXhNZXNzYWdlJiBvdXRwdXRNZXNzYWdlKQogICAgICAgICAgICAgICAgIGF0dGFjaG1lbnRJ
bmZvW2ldLnNldFNpemUoYXR0YWNobWVudHNbaV0uc2l6ZSgpKTsKICAgICAgICAgICAgICAgICBG
QUxMVEhST1VHSDsKICAgICAgICAgICAgIGNhc2UgQXR0YWNobWVudDo6U29ja2V0VHlwZToKLSAg
ICAgICAgICAgICAgICBpZiAoYXR0YWNobWVudHNbaV0uZmlsZURlc2NyaXB0b3IoKSAhPSAtMSkg
eworICAgICAgICAgICAgICAgIGlmICghYXR0YWNobWVudHNbaV0uaXNOdWxsKCkpIHsKICAgICAg
ICAgICAgICAgICAgICAgQVNTRVJUKGZkUHRyKTsKLSAgICAgICAgICAgICAgICAgICAgZmRQdHJb
ZmRJbmRleCsrXSA9IGF0dGFjaG1lbnRzW2ldLmZpbGVEZXNjcmlwdG9yKCk7CisgICAgICAgICAg
ICAgICAgICAgIGZkUHRyW2ZkSW5kZXgrK10gPSBhdHRhY2htZW50c1tpXS5mZCgpLnZhbHVlKCk7
CiAgICAgICAgICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnRJ
bmZvW2ldLnNldE51bGwoKTsKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTYzOCw2ICs2Mzgs
NiBAQCB2b2lkIENvbm5lY3Rpb246OmRpZFJlY2VpdmVTeW5jUmVwbHkoT3B0aW9uU2V0PFNlbmRT
eW5jT3B0aW9uPikKIHN0ZDo6b3B0aW9uYWw8Q29ubmVjdGlvbjo6Q29ubmVjdGlvbklkZW50aWZp
ZXJQYWlyPiBDb25uZWN0aW9uOjpjcmVhdGVDb25uZWN0aW9uSWRlbnRpZmllclBhaXIoKQogewog
ICAgIENvbm5lY3Rpb246OlNvY2tldFBhaXIgc29ja2V0UGFpciA9IENvbm5lY3Rpb246OmNyZWF0
ZVBsYXRmb3JtQ29ubmVjdGlvbigpOwotICAgIHJldHVybiBDb25uZWN0aW9uSWRlbnRpZmllclBh
aXIgeyBzb2NrZXRQYWlyLnNlcnZlciwgQXR0YWNobWVudCB7IHNvY2tldFBhaXIuY2xpZW50IH0g
fTsKKyAgICByZXR1cm4gQ29ubmVjdGlvbklkZW50aWZpZXJQYWlyIHsgc29ja2V0UGFpci5zZXJ2
ZXIsIEF0dGFjaG1lbnQgeyBVbml4RmlsZURlc2NyaXB0b3IgeyBzb2NrZXRQYWlyLmNsaWVudCwg
VW5peEZpbGVEZXNjcmlwdG9yOjpBZG9wdCB9IH0gfTsKIH0KIH0gLy8gbmFtZXNwYWNlIElQQwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXgu
Y3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCmlu
ZGV4IGM5MjQwYjkyNDFiMDkwNjkwZTBmYWNkNDdlOTAwNDViMDhlYzA2NzUuLmZlOWI3ODAyNjA5
M2U2ODJjMTY5MTM1YTBmMDAwNzNmODRjZDg2MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgdm9pZCBT
aGFyZWRNZW1vcnk6OkhhbmRsZTo6Y2xlYXIoKQogCiBib29sIFNoYXJlZE1lbW9yeTo6SGFuZGxl
Ojppc051bGwoKSBjb25zdAogewotICAgIHJldHVybiBtX2F0dGFjaG1lbnQuZmlsZURlc2NyaXB0
b3IoKSA9PSAtMTsKKyAgICByZXR1cm4gbV9hdHRhY2htZW50LmlzTnVsbCgpOwogfQogCiB2b2lk
IFNoYXJlZE1lbW9yeTo6SVBDSGFuZGxlOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdApAQCAtMjAwLDkgKzIwMCw5IEBAIFJlZlB0cjxTaGFyZWRNZW1vcnk+IFNoYXJlZE1lbW9y
eTo6bWFwKGNvbnN0IEhhbmRsZSYgaGFuZGxlLCBQcm90ZWN0aW9uIHByb3RlY3RpCiB7CiAgICAg
QVNTRVJUKCFoYW5kbGUuaXNOdWxsKCkpOwogCi0gICAgaW50IGZkID0gaGFuZGxlLm1fYXR0YWNo
bWVudC5yZWxlYXNlRmlsZURlc2NyaXB0b3IoKTsKLSAgICB2b2lkKiBkYXRhID0gbW1hcCgwLCBo
YW5kbGUubV9hdHRhY2htZW50LnNpemUoKSwgYWNjZXNzTW9kZU1NYXAocHJvdGVjdGlvbiksIE1B
UF9TSEFSRUQsIGZkLCAwKTsKLSAgICBjbG9zZVdpdGhSZXRyeShmZCk7CisgICAgVW5peEZpbGVE
ZXNjcmlwdG9yIGZkID0gaGFuZGxlLm1fYXR0YWNobWVudC5yZWxlYXNlKCk7CisgICAgdm9pZCog
ZGF0YSA9IG1tYXAoMCwgaGFuZGxlLm1fYXR0YWNobWVudC5zaXplKCksIGFjY2Vzc01vZGVNTWFw
KHByb3RlY3Rpb24pLCBNQVBfU0hBUkVELCBmZC52YWx1ZSgpLCAwKTsKKyAgICBmZCA9IHsgfTsK
ICAgICBpZiAoZGF0YSA9PSBNQVBfRkFJTEVEKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApA
QCAtMjQwLDEyICsyNDAsMTIgQEAgYm9vbCBTaGFyZWRNZW1vcnk6OmNyZWF0ZUhhbmRsZShIYW5k
bGUmIGhhbmRsZSwgUHJvdGVjdGlvbikKICAgICAvLyBGSVhNRTogSGFuZGxlIHRoZSBjYXNlIHdo
ZXJlIHRoZSBwYXNzZWQgUHJvdGVjdGlvbiBpcyBSZWFkT25seS4KICAgICAvLyBTZWUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTU0Mi4KIAotICAgIGludCBkdXBs
aWNhdGVkSGFuZGxlID0gZHVwQ2xvc2VPbkV4ZWMobV9maWxlRGVzY3JpcHRvci52YWx1ZSgpKTsK
LSAgICBpZiAoZHVwbGljYXRlZEhhbmRsZSA9PSAtMSkgeworICAgIFVuaXhGaWxlRGVzY3JpcHRv
ciBkdXBsaWNhdGUgeyBtX2ZpbGVEZXNjcmlwdG9yLnZhbHVlKCksIFVuaXhGaWxlRGVzY3JpcHRv
cjo6RHVwbGljYXRlIH07CisgICAgaWYgKCFkdXBsaWNhdGUpIHsKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9Ci0gICAgaGFuZGxlLm1f
YXR0YWNobWVudCA9IElQQzo6QXR0YWNobWVudChkdXBsaWNhdGVkSGFuZGxlLCBtX3NpemUpOwor
ICAgIGhhbmRsZS5tX2F0dGFjaG1lbnQgPSBJUEM6OkF0dGFjaG1lbnQoV1RGTW92ZShkdXBsaWNh
dGUpLCBtX3NpemUpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA0MDllOTgxMDVlN2UxMjU5M2Fh
MzQwMmQ1ZDk3ZmI4MTNkMTBjZTcyLi5mNzQ4YmRmMzczNjE4MDgzZWFkYzk1YmY4YTZiYjMyYjYz
N2IwYmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVy
cy5jcHAKQEAgLTMyOTUsMTMgKzMyOTUsMTIgQEAgc3RkOjpvcHRpb25hbDxUZXh0UmVjb2duaXRp
b25EYXRhRGV0ZWN0b3I+IEFyZ3VtZW50Q29kZXI8VGV4dFJlY29nbml0aW9uRGF0YURldGUKIAog
dm9pZCBBcmd1bWVudENvZGVyPFVuaXhGaWxlRGVzY3JpcHRvcj46OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBVbml4RmlsZURlc2NyaXB0b3ImIGZkKQogewotICAgIGF1dG8gZHVwbGlj
YXRlID0gZmQuZHVwbGljYXRlKCk7Ci0gICAgZW5jb2Rlci5hZGRBdHRhY2htZW50KEF0dGFjaG1l
bnQoZHVwbGljYXRlLnJlbGVhc2UoKSkpOworICAgIGVuY29kZXIuYWRkQXR0YWNobWVudChBdHRh
Y2htZW50KGZkLmR1cGxpY2F0ZSgpKSk7CiB9CiAKIHZvaWQgQXJndW1lbnRDb2RlcjxVbml4Rmls
ZURlc2NyaXB0b3I+OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlciwgVW5peEZpbGVEZXNjcmlwdG9y
JiYgZmQpCiB7Ci0gICAgZW5jb2Rlci5hZGRBdHRhY2htZW50KEF0dGFjaG1lbnQoZmQucmVsZWFz
ZSgpKSk7CisgICAgZW5jb2Rlci5hZGRBdHRhY2htZW50KEF0dGFjaG1lbnQoV1RGTW92ZShmZCkp
KTsKIH0KIAogc3RkOjpvcHRpb25hbDxVbml4RmlsZURlc2NyaXB0b3I+IEFyZ3VtZW50Q29kZXI8
VW5peEZpbGVEZXNjcmlwdG9yPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCkBAIC0zMzA5LDcg
KzMzMDgsNyBAQCBzdGQ6Om9wdGlvbmFsPFVuaXhGaWxlRGVzY3JpcHRvcj4gQXJndW1lbnRDb2Rl
cjxVbml4RmlsZURlc2NyaXB0b3I+OjpkZWNvZGUoRGVjbwogICAgIGF1dG8gYXR0YWNobWVudCA9
IGRlY29kZXIudGFrZUxhc3RBdHRhY2htZW50KCk7CiAgICAgaWYgKCFhdHRhY2htZW50KQogICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJldHVybiBzdGQ6Om9wdGlvbmFsPFVuaXhG
aWxlRGVzY3JpcHRvcj4geyBzdGQ6OmluX3BsYWNlLCBhdHRhY2htZW50LT5yZWxlYXNlRmlsZURl
c2NyaXB0b3IoKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpBZG9wdCB9OworICAgIHJldHVybiBzdGQ6
Om9wdGlvbmFsPFVuaXhGaWxlRGVzY3JpcHRvcj4geyBzdGQ6OmluX3BsYWNlLCBhdHRhY2htZW50
LT5yZWxlYXNlKCkgfTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9nbGliL1VzZXJNZXNzYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvVXNl
ck1lc3NhZ2UuY3BwCmluZGV4IDMwZjYwMWI0MjRmNTAyMTU0ZDEzMjk4OWIzNTRmN2RjM2Q1ODBk
MzYuLmE1YjQzZjQ4ZDQ5NjM4MjBmNzhlY2M3YjQ1MDJiNmMxNDY1NWUxMTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvVXNlck1lc3NhZ2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL2dsaWIvVXNlck1lc3NhZ2UuY3BwCkBAIC01MSw3ICs1MSw3IEBAIHZvaWQg
VXNlck1lc3NhZ2U6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAgICAgaWYg
KGZpbGVEZXNjcmlwdG9ycykgewogICAgICAgICBpbnQgbGVuZ3RoID0gZ191bml4X2ZkX2xpc3Rf
Z2V0X2xlbmd0aChmaWxlRGVzY3JpcHRvcnMuZ2V0KCkpOwogICAgICAgICBmb3IgKGludCBpID0g
MDsgaSA8IGxlbmd0aDsgKytpKQotICAgICAgICAgICAgYXR0YWNobWVudHMuYXBwZW5kKElQQzo6
QXR0YWNobWVudChnX3VuaXhfZmRfbGlzdF9nZXQoZmlsZURlc2NyaXB0b3JzLmdldCgpLCBpLCBu
dWxscHRyKSkpOworICAgICAgICAgICAgYXR0YWNobWVudHMuYXBwZW5kKElQQzo6QXR0YWNobWVu
dChVbml4RmlsZURlc2NyaXB0b3IoZ191bml4X2ZkX2xpc3RfZ2V0KGZpbGVEZXNjcmlwdG9ycy5n
ZXQoKSwgaSwgbnVsbHB0ciksIFVuaXhGaWxlRGVzY3JpcHRvcjo6QWRvcHQpKSk7CiAgICAgfQog
ICAgIGVuY29kZXIgPDwgYXR0YWNobWVudHM7CiB9CkBAIC05MSw3ICs5MSw3IEBAIHN0ZDo6b3B0
aW9uYWw8VXNlck1lc3NhZ2U+IFVzZXJNZXNzYWdlOjpkZWNvZGUoSVBDOjpEZWNvZGVyJiBkZWNv
ZGVyKQogICAgIGlmICghYXR0YWNobWVudHMtPmlzRW1wdHkoKSkgewogICAgICAgICByZXN1bHQu
ZmlsZURlc2NyaXB0b3JzID0gYWRvcHRHUmVmKGdfdW5peF9mZF9saXN0X25ldygpKTsKICAgICAg
ICAgZm9yIChhdXRvJiBhdHRhY2htZW50IDogKmF0dGFjaG1lbnRzKSB7Ci0gICAgICAgICAgICBp
ZiAoZ191bml4X2ZkX2xpc3RfYXBwZW5kKHJlc3VsdC5maWxlRGVzY3JpcHRvcnMuZ2V0KCksIGF0
dGFjaG1lbnQucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCksIG51bGxwdHIpID09IC0xKQorICAgICAg
ICAgICAgaWYgKGdfdW5peF9mZF9saXN0X2FwcGVuZChyZXN1bHQuZmlsZURlc2NyaXB0b3JzLmdl
dCgpLCBhdHRhY2htZW50LmZkKCkucmVsZWFzZSgpLCBudWxscHRyKSA9PSAtMSkKICAgICAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcAppbmRleCA4
MDY5OTNjYTczYTljY2UzNzc1M2Q4MDVhOWFiOWY0Y2I2YmQxYTdiLi5jZmUzNjg5ZjIyYzY2NTlj
ZWFiMzk1MGU0MGI2ODZlOWI5N2I0MjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtNTksNyArNTksNyBAQCBzdHJ1Y3Qg
d3BlX3ZpZXdfYmFja2VuZCogUGFnZUNsaWVudEltcGw6OnZpZXdCYWNrZW5kKCkKIAogSVBDOjpB
dHRhY2htZW50IFBhZ2VDbGllbnRJbXBsOjpob3N0RmlsZURlc2NyaXB0b3IoKQogewotICAgIHJl
dHVybiB3cGVfdmlld19iYWNrZW5kX2dldF9yZW5kZXJlcl9ob3N0X2ZkKG1fdmlldy5iYWNrZW5k
KCkpOworICAgIHJldHVybiBJUEM6OkF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yKHdwZV92
aWV3X2JhY2tlbmRfZ2V0X3JlbmRlcmVyX2hvc3RfZmQobV92aWV3LmJhY2tlbmQoKSksIFVuaXhG
aWxlRGVzY3JpcHRvcjo6QWRvcHQpKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVh
UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KFdlYlByb2Nlc3NQ
cm94eSYgcHJvY2VzcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIv
V2ViUHJvY2Vzc1Bvb2xHTGliLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2Vi
UHJvY2Vzc1Bvb2xHTGliLmNwcAppbmRleCBjZmU3YTBlYjNiZWMwMDk3NDU0MTY3NGI1YzQxNGU1
MTI3NGIxYzhhLi45MzMyMzJlMmY2ODRlZDNjMmIzNWVlODIwMGMwYzY3OTgzZGVkYmY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIu
Y3BwCkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlh
bGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzCiAgICAgcGFyYW1l
dGVycy5pc1NlcnZpY2VXb3JrZXJQcm9jZXNzID0gcHJvY2Vzcy5pc1J1bm5pbmdTZXJ2aWNlV29y
a2VycygpOwogCiAgICAgaWYgKCFwYXJhbWV0ZXJzLmlzU2VydmljZVdvcmtlclByb2Nlc3MpIHsK
LSAgICAgICAgcGFyYW1ldGVycy5ob3N0Q2xpZW50RmlsZURlc2NyaXB0b3IgPSB3cGVfcmVuZGVy
ZXJfaG9zdF9jcmVhdGVfY2xpZW50KCk7CisgICAgICAgIHBhcmFtZXRlcnMuaG9zdENsaWVudEZp
bGVEZXNjcmlwdG9yID0gSVBDOjpBdHRhY2htZW50KFVuaXhGaWxlRGVzY3JpcHRvcih3cGVfcmVu
ZGVyZXJfaG9zdF9jcmVhdGVfY2xpZW50KCksIFVuaXhGaWxlRGVzY3JpcHRvcjo6QWRvcHQpKTsK
ICAgICAgICAgcGFyYW1ldGVycy5pbXBsZW1lbnRhdGlvbkxpYnJhcnlOYW1lID0gRmlsZVN5c3Rl
bTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKFN0cmluZyB7IHdwZV9sb2FkZXJfZ2V0X2xvYWRl
ZF9pbXBsZW1lbnRhdGlvbl9saWJyYXJ5X25hbWUoKSB9KTsKICAgICB9CiAjZW5kaWYKQEAgLTg4
LDcgKzg4LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJv
Y2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MKICNpZiBVU0UoV1BFX1JFTkRFUkVS
KQogICAgICAgICB3cGVfbG9hZGVyX2luaXQoImxpYldQRUJhY2tlbmQtZmRvLTEuMC5zby4xIik7
CiAgICAgICAgIGlmIChBY2NlbGVyYXRlZEJhY2tpbmdTdG9yZVdheWxhbmQ6OmNoZWNrUmVxdWly
ZW1lbnRzKCkpIHsKLSAgICAgICAgICAgIHBhcmFtZXRlcnMuaG9zdENsaWVudEZpbGVEZXNjcmlw
dG9yID0gd3BlX3JlbmRlcmVyX2hvc3RfY3JlYXRlX2NsaWVudCgpOworICAgICAgICAgICAgcGFy
YW1ldGVycy5ob3N0Q2xpZW50RmlsZURlc2NyaXB0b3IgPSBJUEM6OkF0dGFjaG1lbnQoVW5peEZp
bGVEZXNjcmlwdG9yKHdwZV9yZW5kZXJlcl9ob3N0X2NyZWF0ZV9jbGllbnQoKSwgVW5peEZpbGVE
ZXNjcmlwdG9yOjpBZG9wdCkpOwogICAgICAgICAgICAgcGFyYW1ldGVycy5pbXBsZW1lbnRhdGlv
bkxpYnJhcnlOYW1lID0gRmlsZVN5c3RlbTo6ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKFN0cmlu
ZyB7IHdwZV9sb2FkZXJfZ2V0X2xvYWRlZF9pbXBsZW1lbnRhdGlvbl9saWJyYXJ5X25hbWUoKSB9
KTsKICAgICAgICAgfQogI2VsaWYgVVNFKEVHTCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9uSW5mby5oCmluZGV4IDljODFkYzI1
YTFlNGY1YjRiNmRhOTFmMDM0YzQyNThkYzA1MDE3ZmUuLjdjMTA5YjdiNjg5OTBkZjk0MmQ1OWNj
ZWM3YzY0ZTM1NTJhN2QzNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9HUFVQcm9jZXNzQ29ubmVjdGlvbkluZm8uaApAQCAtNDEsNyArNDEsNyBAQCBzdHJ1
Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsKICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50
aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0CiAgICAgewogI2lmIFVTRShVTklYX0RPTUFJTl9TT0NL
RVRTKQotICAgICAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rp
b24uZmlsZURlc2NyaXB0b3IoKSk7CisgICAgICAgIHJldHVybiBJUEM6OkNvbm5lY3Rpb246Oklk
ZW50aWZpZXIoY29ubmVjdGlvbi5mZCgpLnZhbHVlKCkpOwogI2VsaWYgT1MoREFSV0lOKQogICAg
ICAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rpb24ucG9ydCgp
KTsKICNlbGlmIE9TKFdJTkRPV1MpCkBAIC01NSw3ICs1NSw3IEBAIHN0cnVjdCBHUFVQcm9jZXNz
Q29ubmVjdGlvbkluZm8gewogICAgIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciByZWxlYXNl
SWRlbnRpZmllcigpCiAgICAgewogI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQotICAgICAg
ICBhdXRvIHJldHVyblZhbHVlID0gSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rp
b24ucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCkpOworICAgICAgICBhdXRvIHJldHVyblZhbHVlID0g
SVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rpb24uZmQoKS5yZWxlYXNlKCkpOwog
I2Vsc2UKICAgICAgICAgYXV0byByZXR1cm5WYWx1ZSA9IGlkZW50aWZpZXIoKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0
b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3Iu
Y3BwCmluZGV4IDYzMGUzZjgzY2E5YjQ0MGMzZmU2OWIwMDRiM2YxZjdkZDUxYTIyODkuLmVmZDFk
OTMwMWI1MDMxOTBiZDk3YWY5NmQ4ZWEwNTBkMTY1MzI5MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5jcHAKQEAgLTg1LDcgKzg1
LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3I6OnNldEZyb250ZW5kQ29ubmVjdGlvbihJUEM6OkF0dGFj
aG1lbnQgZW5jb2RlZENvbm5lY3Rpb25JZGVudGkKICAgICB9CiAKICNpZiBVU0UoVU5JWF9ET01B
SU5fU09DS0VUUykKLSAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklk
ZW50aWZpZXIoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLnJlbGVhc2VGaWxlRGVzY3JpcHRv
cigpKTsKKyAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXIoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLmZkKCkucmVsZWFzZSgpKTsKICNlbGlmIE9T
KERBUldJTikKICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50
aWZpZXIoZW5jb2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLnBvcnQoKSk7CiAjZWxpZiBPUyhXSU5E
T1dTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdv
cmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mby5oCmluZGV4IDAzNzYzYWE1ZmI4ZWJkM2Jj
MjQyNGU3Njk5ZWIxMmI1Zjc4ZmM2MDkuLmZlNjU3YmNkOGYxMDZiMDNjOGQ2ZmFkNDJhNGZiMmZi
ZGU0NzgxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgKQEAgLTQwLDcgKzQwLDcg
QEAgc3RydWN0IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8gewogICAgIElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QKICAgICB7CiAjaWYgVVNFKFVOSVhf
RE9NQUlOX1NPQ0tFVFMpCi0gICAgICAgIHJldHVybiBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZp
ZXIoY29ubmVjdGlvbi5maWxlRGVzY3JpcHRvcigpKTsKKyAgICAgICAgcmV0dXJuIElQQzo6Q29u
bmVjdGlvbjo6SWRlbnRpZmllcihjb25uZWN0aW9uLmZkKCkudmFsdWUoKSk7CiAjZWxpZiBPUyhE
QVJXSU4pCiAgICAgICAgIHJldHVybiBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIoY29ubmVj
dGlvbi5wb3J0KCkpOwogI2VsaWYgT1MoV0lORE9XUykKQEAgLTU0LDcgKzU0LDcgQEAgc3RydWN0
IE5ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8gewogICAgIElQQzo6Q29ubmVjdGlvbjo6SWRl
bnRpZmllciByZWxlYXNlSWRlbnRpZmllcigpCiAgICAgewogI2lmIFVTRShVTklYX0RPTUFJTl9T
T0NLRVRTKQotICAgICAgICBhdXRvIHJldHVyblZhbHVlID0gSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyKGNvbm5lY3Rpb24ucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCkpOworICAgICAgICBhdXRv
IHJldHVyblZhbHVlID0gSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rpb24uZmQo
KS5yZWxlYXNlKCkpOwogI2Vsc2UKICAgICAgICAgYXV0byByZXR1cm5WYWx1ZSA9IGlkZW50aWZp
ZXIoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CmluZGV4IDFlZTc0ZjRkOTIzN2VhMDg5YzI4OWZjMTE0YTYwOTczOGMzNTkyNWMuLjVjZjI0NTIz
MzIxNGFkYmFlMDYyODUxYzNmNjg3OWNlYjIyM2I2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEzMzksNyArMTMzOSw3IEBAIHB1YmxpYzoKICNl
bmRpZgogCiAjaWYgVVNFKFdQRV9SRU5ERVJFUikKLSAgICBpbnQgaG9zdEZpbGVEZXNjcmlwdG9y
KCkgY29uc3QgeyByZXR1cm4gbV9ob3N0RmlsZURlc2NyaXB0b3IuZmlsZURlc2NyaXB0b3IoKTsg
fQorICAgIGludCBob3N0RmlsZURlc2NyaXB0b3IoKSBjb25zdCB7IHJldHVybiBtX2hvc3RGaWxl
RGVzY3JpcHRvci5mZCgpLnZhbHVlKCk7IH0KICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVDdXJy
ZW50TW9kaWZpZXJTdGF0ZShPcHRpb25TZXQ8V2ViQ29yZTo6UGxhdGZvcm1FdmVudDo6TW9kaWZp
ZXI+IG1vZGlmaWVycyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xp
Yi9XZWJQcm9jZXNzR0xpYi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9XZWJQ
cm9jZXNzR0xpYi5jcHAKaW5kZXggYmFiNWRkZjFkYTEwYmE3Y2JjNWYxYTc0NDMwNTNhMWNkZTc0
ZmRiMy4uMjI5ZGE2ZDMyOGU5MTEzOTM1Mjc0OTEzMDFiMjcwZGFlZWE3YTU2ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dMaWIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcApAQCAtMTE0
LDcgKzExNCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vz
cyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhCiAgICAgICAgICAgICB3cGVfbG9h
ZGVyX2luaXQocGFyYW1ldGVycy5pbXBsZW1lbnRhdGlvbkxpYnJhcnlOYW1lLmRhdGEoKSk7CiAK
ICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXM8UGxhdGZvcm1EaXNwbGF5TGliV1BFPihQbGF0Zm9y
bURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKSkpOwotICAgICAgICBkb3duY2FzdDxQbGF0Zm9ybURp
c3BsYXlMaWJXUEU+KFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpKS5pbml0aWFsaXpl
KHBhcmFtZXRlcnMuaG9zdENsaWVudEZpbGVEZXNjcmlwdG9yLnJlbGVhc2VGaWxlRGVzY3JpcHRv
cigpKTsKKyAgICAgICAgZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5TGliV1BFPihQbGF0Zm9ybURp
c3BsYXk6OnNoYXJlZERpc3BsYXkoKSkuaW5pdGlhbGl6ZShwYXJhbWV0ZXJzLmhvc3RDbGllbnRG
aWxlRGVzY3JpcHRvci5mZCgpLnJlbGVhc2UoKSk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTEyMiw3
ICsxMjIsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3Mo
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgIGlmIChQbGF0Zm9ybURpc3Bs
YXk6OnNoYXJlZERpc3BsYXkoKS50eXBlKCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpXYXls
YW5kKSB7CiAjaWYgVVNFKFdQRV9SRU5ERVJFUikKICAgICAgICAgaWYgKCFwYXJhbWV0ZXJzLmlz
U2VydmljZVdvcmtlclByb2Nlc3MpIHsKLSAgICAgICAgICAgIGF1dG8gaG9zdENsaWVudEZpbGVE
ZXNjcmlwdG9yID0gcGFyYW1ldGVycy5ob3N0Q2xpZW50RmlsZURlc2NyaXB0b3IucmVsZWFzZUZp
bGVEZXNjcmlwdG9yKCk7CisgICAgICAgICAgICBhdXRvIGhvc3RDbGllbnRGaWxlRGVzY3JpcHRv
ciA9IHBhcmFtZXRlcnMuaG9zdENsaWVudEZpbGVEZXNjcmlwdG9yLmZkKCkucmVsZWFzZSgpOwog
ICAgICAgICAgICAgaWYgKGhvc3RDbGllbnRGaWxlRGVzY3JpcHRvciAhPSAtMSkgewogICAgICAg
ICAgICAgICAgIHdwZV9sb2FkZXJfaW5pdChwYXJhbWV0ZXJzLmltcGxlbWVudGF0aW9uTGlicmFy
eU5hbWUuZGF0YSgpKTsKICAgICAgICAgICAgICAgICBtX3dwZURpc3BsYXkgPSBXZWJDb3JlOjpQ
bGF0Zm9ybURpc3BsYXlMaWJXUEU6OmNyZWF0ZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456801</attachid>
            <date>2022-04-06 04:01:01 -0700</date>
            <delta_ts>2022-04-06 04:14:28 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-238801-20220406130059.patch</filename>
            <type>text/plain</type>
            <size>22777</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNDUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0Mzc1MDhhYWYzOGI1ZmU0
YTEzOTk4ZTlhNThhMmIzYjNmYmUxMzAuLmFkOTMyMmYwNDMyNDA5MjZhZjFmNjMwNmY4YWM1Mjg4
YmU0NzA5MGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMjItMDQtMDYgIFphbiBEb2Jl
cnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtVbml4XSBBZG9wdCBVbml4
RmlsZURlc2NyaXB0b3IgaW4gSVBDOjpBdHRhY2htZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg4MDEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZG9wdCBXVEY6OlVuaXhGaWxlRGVzY3JpcHRvciBm
b3IgdXNhZ2UgaW4gSVBDOjpBdHRhY2htZW50LCBpbiBwbGFjZSBvZgorICAgICAgICBhIHJhdyBp
bnRlZ2VyIHZhbHVlLiBUaGlzIHNpbXBsaWZpZXMgbW92ZSBvcGVyYXRpb25zIGFuZCBkZXN0cnVj
dGlvbiBvZgorICAgICAgICB0aGlzIHZhbHVlLgorCisgICAgICAgIFRoZSB0d28gcmVsZXZhbnQg
Y29uc3RydWN0b3JzIGFyZSBjaGFuZ2VkIHRvIGV4cGVjdCBhIFVuaXhGaWxlRGVzY3JpcHRvcgor
ICAgICAgICBydmFsdWUsIGFuZCB0aGV5J3JlIGFsc28gbWFkZSBleHBsaWNpdC4gVGhlIGZpbGUg
ZGVzY3JpcHRvciBvYmplY3QgaXMKKyAgICAgICAgYWNjZXNzaWJsZSB0aHJvdWdoIGJvdGggYSBj
b25zdCBhbmQgYSBub24tY29uc3QgZ2V0dGVyLCB3aGljaCBhbGxvd3MgdGhlCisgICAgICAgIHVz
ZXIgdG8gcmVhZCBvciByZWxlYXNlIHRoZSBmaWxlIGRlc2NyaXB0b3IgY29udGFpbmVkIHRoZXJl
LiBUaGVyZSdzCisgICAgICAgIGFsc28gYSByZWxlYXNlIG1ldGhvZCB0aGF0IHJldHVybnMgdGhl
IGNvbnRhaW5lZCBVbml4RmlsZURlc2NyaXB0b3IuCisKKyAgICAgICAgVGhlIHJlbGVhc2VGaWxl
RGVzY3JpcHRvcigpIGFuZCBmaWxlRGVzY3JpcHRvcigpIG1ldGhvZHMsIHByZXZpb3VzbHkKKyAg
ICAgICAgcmVsZWFzaW5nIG9yIHJldHVybmluZyB0aGUgY29udGFpbmVkIGludGVnZXIgdmFsdWUg
b2YgdGhlIGRlc2NyaXB0b3IuCisgICAgICAgIENhbGwgc2l0ZXMgZm9yIHRoZXNlIG1ldGhvZHMg
YXMgd2VsbCBhcyB0aGUgb2xkLWZvcm0gY29uc3RydWN0b3JzIGFyZQorICAgICAgICBhZGp1c3Rl
ZCB0byB0aGUgbmV3IHZhcmlhbnRzLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0F0dGFjaG1l
bnQuaDoKKyAgICAgICAgKElQQzo6QXR0YWNobWVudDo6aXNOdWxsIGNvbnN0KToKKyAgICAgICAg
KElQQzo6QXR0YWNobWVudDo6ZmQgY29uc3QpOgorICAgICAgICAoSVBDOjpBdHRhY2htZW50Ojpy
ZWxlYXNlKToKKyAgICAgICAgKElQQzo6QXR0YWNobWVudDo6cmVsZWFzZUZpbGVEZXNjcmlwdG9y
KTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXR0YWNobWVudDo6ZmlsZURlc2NyaXB0b3IgY29u
c3QpOiBEZWxldGVkLgorICAgICAgICAqIFBsYXRmb3JtL0lQQy91bml4L0F0dGFjaG1lbnRVbml4
LmNwcDoKKyAgICAgICAgKElQQzo6QXR0YWNobWVudDo6QXR0YWNobWVudCk6CisgICAgICAgIChJ
UEM6OkF0dGFjaG1lbnQ6Om9wZXJhdG9yPSk6CisgICAgICAgIChJUEM6OkF0dGFjaG1lbnQ6On5B
dHRhY2htZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0
aW9uVW5peC5jcHA6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnByb2Nlc3NNZXNzYWdlKToK
KyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZE91dHB1dE1lc3NhZ2UpOgorICAgICAgICAo
SVBDOjpDb25uZWN0aW9uOjpjcmVhdGVDb25uZWN0aW9uSWRlbnRpZmllclBhaXIpOgorICAgICAg
ICAqIFBsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjppc051bGwgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpT
aGFyZWRNZW1vcnk6Om1hcCk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6Y3JlYXRl
SGFuZGxlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoKKyAg
ICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxVbml4RmlsZURlc2NyaXB0b3I+OjplbmNvZGUpOgor
ICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFVuaXhGaWxlRGVzY3JpcHRvcj46OmRlY29kZSk6
CisgICAgICAgICogU2hhcmVkL2dsaWIvVXNlck1lc3NhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpVc2VyTWVzc2FnZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lc3Nh
Z2U6OmRlY29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6aG9zdEZpbGVEZXNjcmlwdG9y
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2Vz
cyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmg6
CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uSW5mbzo6aWRlbnRpZmllciBj
b25zdCk6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uSW5mbzo6cmVsZWFz
ZUlkZW50aWZpZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rv
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rvcjo6c2V0RnJvbnRlbmRDb25uZWN0
aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NDb25uZWN0
aW9uSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZv
OjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NDb25u
ZWN0aW9uSW5mbzo6cmVsZWFzZUlkZW50aWZpZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omhvc3RGaWxlRGVzY3Jp
cHRvciBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJv
Y2Vzcyk6CisKIDIwMjItMDQtMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbW92ZSBOb3RpZmljYXRpb246Om1fcmVsYXRlZE5vdGlmaWNhdGlvbklkZW50
aWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0F0dGFjaG1lbnQu
aCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0F0dGFjaG1lbnQuaAppbmRleCA5MGU0N2Yw
YmQ5MTgyNTVhZjlhMjkyNzZlZjM1ZjhiMGUzNzBhODlkLi40ZTRiZGVlYTE3NThmY2M0M2I3MzUw
MmIzMGRhYTYxMzAyYWZlODQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQ
Qy9BdHRhY2htZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXR0YWNobWVu
dC5oCkBAIC00MCw2ICs0MCw3IEBACiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCiAjaW5j
bHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRlIDx3dGYv
dW5peC9Vbml4RmlsZURlc2NyaXB0b3IuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgSVBDIHsKQEAg
LTYzLDEwICs2NCwxMSBAQCBwdWJsaWM6CiAgICAgfTsKIAogI2lmIFVTRShVTklYX0RPTUFJTl9T
T0NLRVRTKQorICAgIGV4cGxpY2l0IEF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yJiYsIHNp
emVfdCk7CisgICAgZXhwbGljaXQgQXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3ImJik7CisK
ICAgICBBdHRhY2htZW50KEF0dGFjaG1lbnQmJik7CiAgICAgQXR0YWNobWVudCYgb3BlcmF0b3I9
KEF0dGFjaG1lbnQmJik7Ci0gICAgQXR0YWNobWVudChpbnQgZmlsZURlc2NyaXB0b3IsIHNpemVf
dCk7Ci0gICAgQXR0YWNobWVudChpbnQgZmlsZURlc2NyaXB0b3IpOwogICAgIH5BdHRhY2htZW50
KCk7CiAKICAgICB1c2luZyBTb2NrZXREZXNjcmlwdG9yID0gaW50OwpAQCAtODQsMTAgKzg2LDEy
IEBAIHB1YmxpYzoKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAog
I2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgIGJvb2wgaXNOdWxsKCkgY29uc3QgeyBy
ZXR1cm4gIW1fZmQ7IH0KICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6ZTsg
fQogCi0gICAgaW50IHJlbGVhc2VGaWxlRGVzY3JpcHRvcigpIHsgaW50IHRlbXAgPSBtX2ZpbGVE
ZXNjcmlwdG9yOyBtX2ZpbGVEZXNjcmlwdG9yID0gLTE7IHJldHVybiB0ZW1wOyB9Ci0gICAgaW50
IGZpbGVEZXNjcmlwdG9yKCkgY29uc3QgeyByZXR1cm4gbV9maWxlRGVzY3JpcHRvcjsgfQorICAg
IGNvbnN0IFVuaXhGaWxlRGVzY3JpcHRvciYgZmQoKSBjb25zdCB7IHJldHVybiBtX2ZkOyB9Cisg
ICAgVW5peEZpbGVEZXNjcmlwdG9yIHJlbGVhc2UoKSB7IHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1f
ZmQsIFVuaXhGaWxlRGVzY3JpcHRvciB7IH0pOyB9CisKICAgICBjb25zdCBDdXN0b21Xcml0ZXIm
IGN1c3RvbVdyaXRlcigpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tV3JpdGVyOyB9CiAjZWxpZiBP
UyhEQVJXSU4pCiAgICAgdm9pZCByZWxlYXNlKCk7CkBAIC0xMDYsNyArMTEwLDcgQEAgcHJpdmF0
ZToKICAgICBUeXBlIG1fdHlwZTsKIAogI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQotICAg
IGludCBtX2ZpbGVEZXNjcmlwdG9yIHsgLTEgfTsKKyAgICBVbml4RmlsZURlc2NyaXB0b3IgbV9m
ZDsKICAgICBzaXplX3QgbV9zaXplOwogICAgIEN1c3RvbVdyaXRlciBtX2N1c3RvbVdyaXRlcjsK
ICNlbGlmIE9TKERBUldJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L3VuaXgvQXR0YWNobWVudFVuaXguY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5p
eC9BdHRhY2htZW50VW5peC5jcHAKaW5kZXggYmI3OWJmMmIzYWZlNDA3ZDk4NjdmZDgyNDAxNzc2
ZDRkMjliODlmOC4uMGU0NGZhZjliM2ViMGQwODAzMDlhZmI5NjBlZWQ0NjQ0ZTc1MTJiNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9BdHRhY2htZW50VW5peC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9BdHRhY2htZW50VW5peC5j
cHAKQEAgLTMxLDM0ICszMSwzMiBAQAogCiBuYW1lc3BhY2UgSVBDIHsKIAotQXR0YWNobWVudDo6
QXR0YWNobWVudChpbnQgZmlsZURlc2NyaXB0b3IsIHNpemVfdCBzaXplKQorQXR0YWNobWVudDo6
QXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3ImJiBmZCwgc2l6ZV90IHNpemUpCiAgICAgOiBt
X3R5cGUoTWFwcGVkTWVtb3J5VHlwZSkKLSAgICAsIG1fZmlsZURlc2NyaXB0b3IoZmlsZURlc2Ny
aXB0b3IpCisgICAgLCBtX2ZkKFdURk1vdmUoZmQpKQogICAgICwgbV9zaXplKHNpemUpCiB7CiB9
CiAKLUF0dGFjaG1lbnQ6OkF0dGFjaG1lbnQoaW50IGZpbGVEZXNjcmlwdG9yKQorQXR0YWNobWVu
dDo6QXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3ImJiBmZCkKICAgICA6IG1fdHlwZShTb2Nr
ZXRUeXBlKQotICAgICwgbV9maWxlRGVzY3JpcHRvcihmaWxlRGVzY3JpcHRvcikKKyAgICAsIG1f
ZmQoV1RGTW92ZShmZCkpCiAgICAgLCBtX3NpemUoMCkKIHsKIH0KIAogQXR0YWNobWVudDo6QXR0
YWNobWVudChBdHRhY2htZW50JiYgYXR0YWNobWVudCkKICAgICA6IG1fdHlwZShhdHRhY2htZW50
Lm1fdHlwZSkKLSAgICAsIG1fZmlsZURlc2NyaXB0b3IoYXR0YWNobWVudC5tX2ZpbGVEZXNjcmlw
dG9yKQorICAgICwgbV9mZChXVEZNb3ZlKGF0dGFjaG1lbnQubV9mZCkpCiAgICAgLCBtX3NpemUo
YXR0YWNobWVudC5tX3NpemUpCiAgICAgLCBtX2N1c3RvbVdyaXRlcihXVEZNb3ZlKGF0dGFjaG1l
bnQubV9jdXN0b21Xcml0ZXIpKQogewogICAgIGF0dGFjaG1lbnQubV90eXBlID0gVW5pbml0aWFs
aXplZDsKLSAgICBhdHRhY2htZW50Lm1fZmlsZURlc2NyaXB0b3IgPSAtMTsKICAgICBhdHRhY2ht
ZW50Lm1fc2l6ZSA9IDA7CiB9CiAKIEF0dGFjaG1lbnQ6OkF0dGFjaG1lbnQoQ3VzdG9tV3JpdGVy
JiYgd3JpdGVyKQogICAgIDogbV90eXBlKEN1c3RvbVdyaXRlclR5cGUpCi0gICAgLCBtX2ZpbGVE
ZXNjcmlwdG9yKC0xKQogICAgICwgbV9zaXplKDApCiAgICAgLCBtX2N1c3RvbVdyaXRlcihXVEZN
b3ZlKHdyaXRlcikpCiB7CkBAIC02OCw4ICs2Niw3IEBAIEF0dGFjaG1lbnQmIEF0dGFjaG1lbnQ6
Om9wZXJhdG9yPShBdHRhY2htZW50JiYgYXR0YWNobWVudCkKIHsKICAgICBtX3R5cGUgPSBhdHRh
Y2htZW50Lm1fdHlwZTsKICAgICBhdHRhY2htZW50Lm1fdHlwZSA9IFVuaW5pdGlhbGl6ZWQ7Ci0g
ICAgbV9maWxlRGVzY3JpcHRvciA9IGF0dGFjaG1lbnQubV9maWxlRGVzY3JpcHRvcjsKLSAgICBh
dHRhY2htZW50Lm1fZmlsZURlc2NyaXB0b3IgPSAtMTsKKyAgICBtX2ZkID0gV1RGTW92ZShhdHRh
Y2htZW50Lm1fZmQpOwogICAgIG1fc2l6ZSA9IGF0dGFjaG1lbnQubV9zaXplOwogICAgIGF0dGFj
aG1lbnQubV9zaXplID0gMDsKICAgICBtX2N1c3RvbVdyaXRlciA9IFdURk1vdmUoYXR0YWNobWVu
dC5tX2N1c3RvbVdyaXRlcik7CkBAIC03NywxMCArNzQsNiBAQCBBdHRhY2htZW50JiBBdHRhY2ht
ZW50OjpvcGVyYXRvcj0oQXR0YWNobWVudCYmIGF0dGFjaG1lbnQpCiAgICAgcmV0dXJuICp0aGlz
OwogfQogCi1BdHRhY2htZW50Ojp+QXR0YWNobWVudCgpCi17Ci0gICAgaWYgKG1fZmlsZURlc2Ny
aXB0b3IgIT0gLTEpCi0gICAgICAgIGNsb3NlV2l0aFJldHJ5KG1fZmlsZURlc2NyaXB0b3IpOwot
fQorQXR0YWNobWVudDo6fkF0dGFjaG1lbnQoKSA9IGRlZmF1bHQ7CiAKIH0gLy8gbmFtZXNwYWNl
IElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9Db25uZWN0
aW9uVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25V
bml4LmNwcAppbmRleCAxODExNjk3NjVkOGI3NTBkZDVlMjQ4NDA2MWU1YTgzZDIwZTJhMzhhLi40
MjE4NWYyOWJkYWQyMDkwOWU5ODI3M2ZiMzM2NDVmMjYyOTE2ZWZhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcApAQCAtMjA0LDEy
ICsyMDQsMTIgQEAgYm9vbCBDb25uZWN0aW9uOjpwcm9jZXNzTWVzc2FnZSgpCiAgICAgICAgIGNh
c2UgQXR0YWNobWVudDo6TWFwcGVkTWVtb3J5VHlwZToKICAgICAgICAgICAgIGlmICghYXR0YWNo
bWVudEluZm9baV0uaXNOdWxsKCkpCiAgICAgICAgICAgICAgICAgZmQgPSBtX2ZpbGVEZXNjcmlw
dG9yc1tmZEluZGV4KytdOwotICAgICAgICAgICAgYXR0YWNobWVudHNbYXR0YWNobWVudENvdW50
IC0gaSAtIDFdID0gQXR0YWNobWVudChmZCwgYXR0YWNobWVudEluZm9baV0uc2l6ZSgpKTsKKyAg
ICAgICAgICAgIGF0dGFjaG1lbnRzW2F0dGFjaG1lbnRDb3VudCAtIGkgLSAxXSA9IEF0dGFjaG1l
bnQoVW5peEZpbGVEZXNjcmlwdG9yKGZkLCBVbml4RmlsZURlc2NyaXB0b3I6OkFkb3B0KSwgYXR0
YWNobWVudEluZm9baV0uc2l6ZSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IEF0dGFjaG1lbnQ6OlNvY2tldFR5cGU6CiAgICAgICAgICAgICBpZiAoIWF0dGFjaG1lbnRJbmZv
W2ldLmlzTnVsbCgpKQogICAgICAgICAgICAgICAgIGZkID0gbV9maWxlRGVzY3JpcHRvcnNbZmRJ
bmRleCsrXTsKLSAgICAgICAgICAgIGF0dGFjaG1lbnRzW2F0dGFjaG1lbnRDb3VudCAtIGkgLSAx
XSA9IEF0dGFjaG1lbnQoZmQpOworICAgICAgICAgICAgYXR0YWNobWVudHNbYXR0YWNobWVudENv
dW50IC0gaSAtIDFdID0gQXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3IoZmQsIFVuaXhGaWxl
RGVzY3JpcHRvcjo6QWRvcHQpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEF0
dGFjaG1lbnQ6OkN1c3RvbVdyaXRlclR5cGU6CiAgICAgICAgICAgICBhdHRhY2htZW50c1thdHRh
Y2htZW50Q291bnQgLSBpIC0gMV0gPSBBdHRhY2htZW50KEF0dGFjaG1lbnQ6OkN1c3RvbVdyaXRl
cihtX3NvY2tldERlc2NyaXB0b3IpKTsKQEAgLTIzMCw3ICsyMzAsNyBAQCBib29sIENvbm5lY3Rp
b246OnByb2Nlc3NNZXNzYWdlKCkKICAgICAgICAgfQogCiAgICAgICAgIFdlYktpdDo6U2hhcmVk
TWVtb3J5OjpIYW5kbGUgaGFuZGxlOwotICAgICAgICBoYW5kbGUuYWRvcHRBdHRhY2htZW50KElQ
Qzo6QXR0YWNobWVudChtX2ZpbGVEZXNjcmlwdG9yc1thdHRhY2htZW50RmlsZURlc2NyaXB0b3JD
b3VudCAtIDFdLCBhdHRhY2htZW50SW5mb1thdHRhY2htZW50Q291bnRdLnNpemUoKSkpOworICAg
ICAgICBoYW5kbGUuYWRvcHRBdHRhY2htZW50KEF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9y
KG1fZmlsZURlc2NyaXB0b3JzW2F0dGFjaG1lbnRGaWxlRGVzY3JpcHRvckNvdW50IC0gMV0sIFVu
aXhGaWxlRGVzY3JpcHRvcjo6QWRvcHQpLCBhdHRhY2htZW50SW5mb1thdHRhY2htZW50Q291bnRd
LnNpemUoKSkpOwogCiAgICAgICAgIG9vbE1lc3NhZ2VCb2R5ID0gV2ViS2l0OjpTaGFyZWRNZW1v
cnk6Om1hcChoYW5kbGUsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25s
eSk7CiAgICAgICAgIGlmICghb29sTWVzc2FnZUJvZHkpIHsKQEAgLTQ4OSw3ICs0ODksNyBAQCBi
b29sIENvbm5lY3Rpb246OnNlbmRPdXRwdXRNZXNzYWdlKFVuaXhNZXNzYWdlJiBvdXRwdXRNZXNz
YWdlKQogCiAgICAgICAgIHNpemVfdCBhdHRhY2htZW50RkRCdWZmZXJMZW5ndGggPSBzdGQ6OmNv
dW50X2lmKGF0dGFjaG1lbnRzLmJlZ2luKCksIGF0dGFjaG1lbnRzLmVuZCgpLAogICAgICAgICAg
ICAgW10oY29uc3QgQXR0YWNobWVudCYgYXR0YWNobWVudCkgewotICAgICAgICAgICAgICAgIHJl
dHVybiBhdHRhY2htZW50LmZpbGVEZXNjcmlwdG9yKCkgIT0gLTE7CisgICAgICAgICAgICAgICAg
cmV0dXJuICFhdHRhY2htZW50LmlzTnVsbCgpOwogICAgICAgICAgICAgfSk7CiAKICAgICAgICAg
aWYgKGF0dGFjaG1lbnRGREJ1ZmZlckxlbmd0aCkgewpAQCAtNTE3LDkgKzUxNyw5IEBAIGJvb2wg
Q29ubmVjdGlvbjo6c2VuZE91dHB1dE1lc3NhZ2UoVW5peE1lc3NhZ2UmIG91dHB1dE1lc3NhZ2Up
CiAgICAgICAgICAgICAgICAgYXR0YWNobWVudEluZm9baV0uc2V0U2l6ZShhdHRhY2htZW50c1tp
XS5zaXplKCkpOwogICAgICAgICAgICAgICAgIEZBTExUSFJPVUdIOwogICAgICAgICAgICAgY2Fz
ZSBBdHRhY2htZW50OjpTb2NrZXRUeXBlOgotICAgICAgICAgICAgICAgIGlmIChhdHRhY2htZW50
c1tpXS5maWxlRGVzY3JpcHRvcigpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgaWYgKCFhdHRh
Y2htZW50c1tpXS5pc051bGwoKSkgewogICAgICAgICAgICAgICAgICAgICBBU1NFUlQoZmRQdHIp
OwotICAgICAgICAgICAgICAgICAgICBmZFB0cltmZEluZGV4KytdID0gYXR0YWNobWVudHNbaV0u
ZmlsZURlc2NyaXB0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgZmRQdHJbZmRJbmRleCsrXSA9
IGF0dGFjaG1lbnRzW2ldLmZkKCkudmFsdWUoKTsKICAgICAgICAgICAgICAgICB9IGVsc2UKICAg
ICAgICAgICAgICAgICAgICAgYXR0YWNobWVudEluZm9baV0uc2V0TnVsbCgpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwpAQCAtNjM4LDYgKzYzOCw2IEBAIHZvaWQgQ29ubmVjdGlvbjo6ZGlkUmVj
ZWl2ZVN5bmNSZXBseShPcHRpb25TZXQ8U2VuZFN5bmNPcHRpb24+KQogc3RkOjpvcHRpb25hbDxD
b25uZWN0aW9uOjpDb25uZWN0aW9uSWRlbnRpZmllclBhaXI+IENvbm5lY3Rpb246OmNyZWF0ZUNv
bm5lY3Rpb25JZGVudGlmaWVyUGFpcigpCiB7CiAgICAgQ29ubmVjdGlvbjo6U29ja2V0UGFpciBz
b2NrZXRQYWlyID0gQ29ubmVjdGlvbjo6Y3JlYXRlUGxhdGZvcm1Db25uZWN0aW9uKCk7Ci0gICAg
cmV0dXJuIENvbm5lY3Rpb25JZGVudGlmaWVyUGFpciB7IHNvY2tldFBhaXIuc2VydmVyLCBBdHRh
Y2htZW50IHsgc29ja2V0UGFpci5jbGllbnQgfSB9OworICAgIHJldHVybiBDb25uZWN0aW9uSWRl
bnRpZmllclBhaXIgeyBzb2NrZXRQYWlyLnNlcnZlciwgQXR0YWNobWVudCB7IFVuaXhGaWxlRGVz
Y3JpcHRvciB7IHNvY2tldFBhaXIuY2xpZW50LCBVbml4RmlsZURlc2NyaXB0b3I6OkFkb3B0IH0g
fSB9OwogfQogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKaW5kZXggYzkyNDBiOTI0MWIwOTA2OTBlMGZhY2Q0
N2U5MDA0NWIwOGVjMDY3NS4uZmU5Yjc4MDI2MDkzZTY4MmMxNjkxMzVhMGYwMDA3M2Y4NGNkODYz
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVu
aXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1vcnlVbml4
LmNwcApAQCAtNzUsNyArNzUsNyBAQCB2b2lkIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpjbGVhcigp
CiAKIGJvb2wgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmlzTnVsbCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIG1fYXR0YWNobWVudC5maWxlRGVzY3JpcHRvcigpID09IC0xOworICAgIHJldHVybiBtX2F0
dGFjaG1lbnQuaXNOdWxsKCk7CiB9CiAKIHZvaWQgU2hhcmVkTWVtb3J5OjpJUENIYW5kbGU6OmVu
Y29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CkBAIC0yMDAsOSArMjAwLDkgQEAgUmVm
UHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjptYXAoY29uc3QgSGFuZGxlJiBoYW5kbGUs
IFByb3RlY3Rpb24gcHJvdGVjdGkKIHsKICAgICBBU1NFUlQoIWhhbmRsZS5pc051bGwoKSk7CiAK
LSAgICBpbnQgZmQgPSBoYW5kbGUubV9hdHRhY2htZW50LnJlbGVhc2VGaWxlRGVzY3JpcHRvcigp
OwotICAgIHZvaWQqIGRhdGEgPSBtbWFwKDAsIGhhbmRsZS5tX2F0dGFjaG1lbnQuc2l6ZSgpLCBh
Y2Nlc3NNb2RlTU1hcChwcm90ZWN0aW9uKSwgTUFQX1NIQVJFRCwgZmQsIDApOwotICAgIGNsb3Nl
V2l0aFJldHJ5KGZkKTsKKyAgICBVbml4RmlsZURlc2NyaXB0b3IgZmQgPSBoYW5kbGUubV9hdHRh
Y2htZW50LnJlbGVhc2UoKTsKKyAgICB2b2lkKiBkYXRhID0gbW1hcCgwLCBoYW5kbGUubV9hdHRh
Y2htZW50LnNpemUoKSwgYWNjZXNzTW9kZU1NYXAocHJvdGVjdGlvbiksIE1BUF9TSEFSRUQsIGZk
LnZhbHVlKCksIDApOworICAgIGZkID0geyB9OwogICAgIGlmIChkYXRhID09IE1BUF9GQUlMRUQp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC0yNDAsMTIgKzI0MCwxMiBAQCBib29sIFNo
YXJlZE1lbW9yeTo6Y3JlYXRlSGFuZGxlKEhhbmRsZSYgaGFuZGxlLCBQcm90ZWN0aW9uKQogICAg
IC8vIEZJWE1FOiBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIHBhc3NlZCBQcm90ZWN0aW9uIGlz
IFJlYWRPbmx5LgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTMxNTQyLgogCi0gICAgaW50IGR1cGxpY2F0ZWRIYW5kbGUgPSBkdXBDbG9zZU9uRXhl
YyhtX2ZpbGVEZXNjcmlwdG9yLnZhbHVlKCkpOwotICAgIGlmIChkdXBsaWNhdGVkSGFuZGxlID09
IC0xKSB7CisgICAgVW5peEZpbGVEZXNjcmlwdG9yIGR1cGxpY2F0ZSB7IG1fZmlsZURlc2NyaXB0
b3IudmFsdWUoKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpEdXBsaWNhdGUgfTsKKyAgICBpZiAoIWR1
cGxpY2F0ZSkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KLSAgICBoYW5kbGUubV9hdHRhY2htZW50ID0gSVBDOjpBdHRhY2htZW50
KGR1cGxpY2F0ZWRIYW5kbGUsIG1fc2l6ZSk7CisgICAgaGFuZGxlLm1fYXR0YWNobWVudCA9IElQ
Qzo6QXR0YWNobWVudChXVEZNb3ZlKGR1cGxpY2F0ZSksIG1fc2l6ZSk7CiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCmluZGV4IDQwOWU5ODEwNWU3ZTEyNTkzYWEzNDAyZDVkOTdmYjgxM2QxMGNlNzIuLmY3NDhi
ZGYzNzM2MTgwODNlYWRjOTViZjhhNmJiMzJiNjM3YjBiYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzI5NSwxMyArMzI5NSwxMiBA
QCBzdGQ6Om9wdGlvbmFsPFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj4gQXJndW1lbnRDb2Rl
cjxUZXh0UmVjb2duaXRpb25EYXRhRGV0ZQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8VW5peEZpbGVE
ZXNjcmlwdG9yPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFVuaXhGaWxlRGVzY3Jp
cHRvciYgZmQpCiB7Ci0gICAgYXV0byBkdXBsaWNhdGUgPSBmZC5kdXBsaWNhdGUoKTsKLSAgICBl
bmNvZGVyLmFkZEF0dGFjaG1lbnQoQXR0YWNobWVudChkdXBsaWNhdGUucmVsZWFzZSgpKSk7Cisg
ICAgZW5jb2Rlci5hZGRBdHRhY2htZW50KEF0dGFjaG1lbnQoZmQuZHVwbGljYXRlKCkpKTsKIH0K
IAogdm9pZCBBcmd1bWVudENvZGVyPFVuaXhGaWxlRGVzY3JpcHRvcj46OmVuY29kZShFbmNvZGVy
JiBlbmNvZGVyLCBVbml4RmlsZURlc2NyaXB0b3ImJiBmZCkKIHsKLSAgICBlbmNvZGVyLmFkZEF0
dGFjaG1lbnQoQXR0YWNobWVudChmZC5yZWxlYXNlKCkpKTsKKyAgICBlbmNvZGVyLmFkZEF0dGFj
aG1lbnQoQXR0YWNobWVudChXVEZNb3ZlKGZkKSkpOwogfQogCiBzdGQ6Om9wdGlvbmFsPFVuaXhG
aWxlRGVzY3JpcHRvcj4gQXJndW1lbnRDb2RlcjxVbml4RmlsZURlc2NyaXB0b3I+OjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKQEAgLTMzMDksNyArMzMwOCw3IEBAIHN0ZDo6b3B0aW9uYWw8VW5p
eEZpbGVEZXNjcmlwdG9yPiBBcmd1bWVudENvZGVyPFVuaXhGaWxlRGVzY3JpcHRvcj46OmRlY29k
ZShEZWNvCiAgICAgYXV0byBhdHRhY2htZW50ID0gZGVjb2Rlci50YWtlTGFzdEF0dGFjaG1lbnQo
KTsKICAgICBpZiAoIWF0dGFjaG1lbnQpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0g
ICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8VW5peEZpbGVEZXNjcmlwdG9yPiB7IHN0ZDo6aW5fcGxh
Y2UsIGF0dGFjaG1lbnQtPnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpLCBVbml4RmlsZURlc2NyaXB0
b3I6OkFkb3B0IH07CisgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8VW5peEZpbGVEZXNjcmlwdG9y
PiB7IHN0ZDo6aW5fcGxhY2UsIGF0dGFjaG1lbnQtPnJlbGVhc2UoKSB9OwogfQogCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvVXNlck1lc3NhZ2UuY3BwIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvZ2xpYi9Vc2VyTWVzc2FnZS5jcHAKaW5kZXggMzBmNjAxYjQy
NGY1MDIxNTRkMTMyOTg5YjM1NGY3ZGMzZDU4MGQzNi4uYjk2YTFkN2Y2OWNiY2UwZDViNzczMjAz
MThhMmFmMGI2MzQ3NGNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvZ2xpYi9V
c2VyTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ2xpYi9Vc2VyTWVzc2Fn
ZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgdm9pZCBVc2VyTWVzc2FnZTo6ZW5jb2RlKElQQzo6RW5j
b2RlciYgZW5jb2RlcikgY29uc3QKICAgICBpZiAoZmlsZURlc2NyaXB0b3JzKSB7CiAgICAgICAg
IGludCBsZW5ndGggPSBnX3VuaXhfZmRfbGlzdF9nZXRfbGVuZ3RoKGZpbGVEZXNjcmlwdG9ycy5n
ZXQoKSk7CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCi0gICAgICAg
ICAgICBhdHRhY2htZW50cy5hcHBlbmQoSVBDOjpBdHRhY2htZW50KGdfdW5peF9mZF9saXN0X2dl
dChmaWxlRGVzY3JpcHRvcnMuZ2V0KCksIGksIG51bGxwdHIpKSk7CisgICAgICAgICAgICBhdHRh
Y2htZW50cy5hcHBlbmQoSVBDOjpBdHRhY2htZW50KFVuaXhGaWxlRGVzY3JpcHRvcihnX3VuaXhf
ZmRfbGlzdF9nZXQoZmlsZURlc2NyaXB0b3JzLmdldCgpLCBpLCBudWxscHRyKSwgVW5peEZpbGVE
ZXNjcmlwdG9yOjpBZG9wdCkpKTsKICAgICB9CiAgICAgZW5jb2RlciA8PCBhdHRhY2htZW50czsK
IH0KQEAgLTkxLDcgKzkxLDcgQEAgc3RkOjpvcHRpb25hbDxVc2VyTWVzc2FnZT4gVXNlck1lc3Nh
Z2U6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFhdHRhY2htZW50cy0+
aXNFbXB0eSgpKSB7CiAgICAgICAgIHJlc3VsdC5maWxlRGVzY3JpcHRvcnMgPSBhZG9wdEdSZWYo
Z191bml4X2ZkX2xpc3RfbmV3KCkpOwogICAgICAgICBmb3IgKGF1dG8mIGF0dGFjaG1lbnQgOiAq
YXR0YWNobWVudHMpIHsKLSAgICAgICAgICAgIGlmIChnX3VuaXhfZmRfbGlzdF9hcHBlbmQocmVz
dWx0LmZpbGVEZXNjcmlwdG9ycy5nZXQoKSwgYXR0YWNobWVudC5yZWxlYXNlRmlsZURlc2NyaXB0
b3IoKSwgbnVsbHB0cikgPT0gLTEpCisgICAgICAgICAgICBpZiAoZ191bml4X2ZkX2xpc3RfYXBw
ZW5kKHJlc3VsdC5maWxlRGVzY3JpcHRvcnMuZ2V0KCksIGF0dGFjaG1lbnQucmVsZWFzZSgpLnJl
bGVhc2UoKSwgbnVsbHB0cikgPT0gLTEpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggODA2OTkzY2E3M2E5Y2NlMzc3NTNkODA1
YTlhYjlmNGNiNmJkMWE3Yi4uY2ZlMzY4OWYyMmM2NjU5Y2VhYjM5NTBlNDBiNjg2ZTliOTdiNDI1
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50
SW1wbC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIFBhZ2VD
bGllbnRJbXBsOjp2aWV3QmFja2VuZCgpCiAKIElQQzo6QXR0YWNobWVudCBQYWdlQ2xpZW50SW1w
bDo6aG9zdEZpbGVEZXNjcmlwdG9yKCkKIHsKLSAgICByZXR1cm4gd3BlX3ZpZXdfYmFja2VuZF9n
ZXRfcmVuZGVyZXJfaG9zdF9mZChtX3ZpZXcuYmFja2VuZCgpKTsKKyAgICByZXR1cm4gSVBDOjpB
dHRhY2htZW50KFVuaXhGaWxlRGVzY3JpcHRvcih3cGVfdmlld19iYWNrZW5kX2dldF9yZW5kZXJl
cl9ob3N0X2ZkKG1fdmlldy5iYWNrZW5kKCkpLCBVbml4RmlsZURlc2NyaXB0b3I6OkFkb3B0KSk7
CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6
Y3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5jcHAKaW5k
ZXggY2ZlN2EwZWIzYmVjMDA5NzQ1NDE2NzRiNWM0MTRlNTEyNzRiMWM4YS4uOTMzMjMyZTJmNjg0
ZWQzYzJiMzVlZTgyMDBjMGM2Nzk4M2RlZGJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcApAQCAtNzgsNyArNzgsNyBAQCB2
b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNvbnN0IFdl
YlByb2Nlc3NQcm94eSYgcHJvY2VzcwogICAgIHBhcmFtZXRlcnMuaXNTZXJ2aWNlV29ya2VyUHJv
Y2VzcyA9IHByb2Nlc3MuaXNSdW5uaW5nU2VydmljZVdvcmtlcnMoKTsKIAogICAgIGlmICghcGFy
YW1ldGVycy5pc1NlcnZpY2VXb3JrZXJQcm9jZXNzKSB7Ci0gICAgICAgIHBhcmFtZXRlcnMuaG9z
dENsaWVudEZpbGVEZXNjcmlwdG9yID0gd3BlX3JlbmRlcmVyX2hvc3RfY3JlYXRlX2NsaWVudCgp
OworICAgICAgICBwYXJhbWV0ZXJzLmhvc3RDbGllbnRGaWxlRGVzY3JpcHRvciA9IElQQzo6QXR0
YWNobWVudChVbml4RmlsZURlc2NyaXB0b3Iod3BlX3JlbmRlcmVyX2hvc3RfY3JlYXRlX2NsaWVu
dCgpLCBVbml4RmlsZURlc2NyaXB0b3I6OkFkb3B0KSk7CiAgICAgICAgIHBhcmFtZXRlcnMuaW1w
bGVtZW50YXRpb25MaWJyYXJ5TmFtZSA9IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRh
dGlvbihTdHJpbmcgeyB3cGVfbG9hZGVyX2dldF9sb2FkZWRfaW1wbGVtZW50YXRpb25fbGlicmFy
eV9uYW1lKCkgfSk7CiAgICAgfQogI2VuZGlmCkBAIC04OCw3ICs4OCw3IEBAIHZvaWQgV2ViUHJv
Y2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJvY2Vzc1By
b3h5JiBwcm9jZXNzCiAjaWYgVVNFKFdQRV9SRU5ERVJFUikKICAgICAgICAgd3BlX2xvYWRlcl9p
bml0KCJsaWJXUEVCYWNrZW5kLWZkby0xLjAuc28uMSIpOwogICAgICAgICBpZiAoQWNjZWxlcmF0
ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjpjaGVja1JlcXVpcmVtZW50cygpKSB7Ci0gICAgICAgICAg
ICBwYXJhbWV0ZXJzLmhvc3RDbGllbnRGaWxlRGVzY3JpcHRvciA9IHdwZV9yZW5kZXJlcl9ob3N0
X2NyZWF0ZV9jbGllbnQoKTsKKyAgICAgICAgICAgIHBhcmFtZXRlcnMuaG9zdENsaWVudEZpbGVE
ZXNjcmlwdG9yID0gSVBDOjpBdHRhY2htZW50KFVuaXhGaWxlRGVzY3JpcHRvcih3cGVfcmVuZGVy
ZXJfaG9zdF9jcmVhdGVfY2xpZW50KCksIFVuaXhGaWxlRGVzY3JpcHRvcjo6QWRvcHQpKTsKICAg
ICAgICAgICAgIHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZSA9IEZpbGVTeXN0
ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihTdHJpbmcgeyB3cGVfbG9hZGVyX2dldF9sb2Fk
ZWRfaW1wbGVtZW50YXRpb25fbGlicmFyeV9uYW1lKCkgfSk7CiAgICAgICAgIH0KICNlbGlmIFVT
RShFR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nl
c3NDb25uZWN0aW9uSW5mby5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9HUFVQcm9j
ZXNzQ29ubmVjdGlvbkluZm8uaAppbmRleCA5YzgxZGMyNWExZTRmNWI0YjZkYTkxZjAzNGM0MjU4
ZGMwNTAxN2ZlLi5lMmQwMjlmNjE4MjZiMDVmN2M0NzUzZjMzYTZkMGNhMzg3YTYzNGNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25uZWN0aW9u
SW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5l
Y3Rpb25JbmZvLmgKQEAgLTQxLDcgKzQxLDcgQEAgc3RydWN0IEdQVVByb2Nlc3NDb25uZWN0aW9u
SW5mbyB7CiAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25z
dAogICAgIHsKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKLSAgICAgICAgcmV0dXJuIElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihjb25uZWN0aW9uLmZpbGVEZXNjcmlwdG9yKCkpOwor
ICAgICAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rpb24uZmQo
KS52YWx1ZSgpKTsKICNlbGlmIE9TKERBUldJTikKICAgICAgICAgcmV0dXJuIElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllcihjb25uZWN0aW9uLnBvcnQoKSk7CiAjZWxpZiBPUyhXSU5ET1dTKQpA
QCAtNTUsNyArNTUsNyBAQCBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsKICAgICBJ
UEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgcmVsZWFzZUlkZW50aWZpZXIoKQogICAgIHsKICNp
ZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKLSAgICAgICAgYXV0byByZXR1cm5WYWx1ZSA9IElQ
Qzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihjb25uZWN0aW9uLnJlbGVhc2VGaWxlRGVzY3JpcHRv
cigpKTsKKyAgICAgICAgYXV0byByZXR1cm5WYWx1ZSA9IElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
Zmllcihjb25uZWN0aW9uLnJlbGVhc2UoKS5yZWxlYXNlKCkpOwogI2Vsc2UKICAgICAgICAgYXV0
byByZXR1cm5WYWx1ZSA9IGlkZW50aWZpZXIoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IDYzMGUzZjgz
Y2E5YjQ0MGMzZmU2OWIwMDRiM2YxZjdkZDUxYTIyODkuLmJiNzg3ZGRmMzNmNTM4OGFkM2RlZDAw
NTcxNDM4MmFhZTM5OWIwNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3Rvci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBXZWJJbnNw
ZWN0b3I6OnNldEZyb250ZW5kQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQgZW5jb2RlZENvbm5l
Y3Rpb25JZGVudGkKICAgICB9CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKLSAgICBJ
UEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIoZW5jb2RlZENv
bm5lY3Rpb25JZGVudGlmaWVyLnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpKTsKKyAgICBJUEM6OkNv
bm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIoZW5jb2RlZENvbm5lY3Rp
b25JZGVudGlmaWVyLnJlbGVhc2UoKS5yZWxlYXNlKCkpOwogI2VsaWYgT1MoREFSV0lOKQogICAg
IElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcihlbmNvZGVk
Q29ubmVjdGlvbklkZW50aWZpZXIucG9ydCgpKTsKICNlbGlmIE9TKFdJTkRPV1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb25JbmZvLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJv
Y2Vzc0Nvbm5lY3Rpb25JbmZvLmgKaW5kZXggMDM3NjNhYTVmYjhlYmQzYmMyNDI0ZTc2OTllYjEy
YjVmNzhmYzYwOS4uMTIyNzU1Y2JjYzE1YTdjOWJlY2MxZjgzZjMyNTkyNjRmMmNlYTQ0YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaApAQCAtNDAsNyArNDAsNyBAQCBzdHJ1Y3QgTmV0
d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7CiAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlm
aWVyIGlkZW50aWZpZXIoKSBjb25zdAogICAgIHsKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VU
UykKLSAgICAgICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihjb25uZWN0aW9u
LmZpbGVEZXNjcmlwdG9yKCkpOworICAgICAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyKGNvbm5lY3Rpb24uZmQoKS52YWx1ZSgpKTsKICNlbGlmIE9TKERBUldJTikKICAgICAg
ICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihjb25uZWN0aW9uLnBvcnQoKSk7
CiAjZWxpZiBPUyhXSU5ET1dTKQpAQCAtNTQsNyArNTQsNyBAQCBzdHJ1Y3QgTmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uSW5mbyB7CiAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIHJlbGVh
c2VJZGVudGlmaWVyKCkKICAgICB7CiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMpCi0gICAg
ICAgIGF1dG8gcmV0dXJuVmFsdWUgPSBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIoY29ubmVj
dGlvbi5yZWxlYXNlRmlsZURlc2NyaXB0b3IoKSk7CisgICAgICAgIGF1dG8gcmV0dXJuVmFsdWUg
PSBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIoY29ubmVjdGlvbi5yZWxlYXNlKCkucmVsZWFz
ZSgpKTsKICNlbHNlCiAgICAgICAgIGF1dG8gcmV0dXJuVmFsdWUgPSBpZGVudGlmaWVyKCk7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAx
ZWU3NGY0ZDkyMzdlYTA4OWMyODlmYzExNGE2MDk3MzhjMzU5MjVjLi41Y2YyNDUyMzMyMTRhZGJh
ZTA2Mjg1MWMzZjY4NzljZWIyMjNiNmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC0xMzM5LDcgKzEzMzksNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAog
I2lmIFVTRShXUEVfUkVOREVSRVIpCi0gICAgaW50IGhvc3RGaWxlRGVzY3JpcHRvcigpIGNvbnN0
IHsgcmV0dXJuIG1faG9zdEZpbGVEZXNjcmlwdG9yLmZpbGVEZXNjcmlwdG9yKCk7IH0KKyAgICBp
bnQgaG9zdEZpbGVEZXNjcmlwdG9yKCkgY29uc3QgeyByZXR1cm4gbV9ob3N0RmlsZURlc2NyaXB0
b3IuZmQoKS52YWx1ZSgpOyB9CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlQ3VycmVudE1vZGlm
aWVyU3RhdGUoT3B0aW9uU2V0PFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBtb2Rp
ZmllcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJv
Y2Vzc0dMaWIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc0dM
aWIuY3BwCmluZGV4IGJhYjVkZGYxZGExMGJhN2NiYzVmMWE3NDQzMDUzYTFjZGU3NGZkYjMuLmYy
ZTAzOTE2ZWNjZWM4YjgwZTI1Yzg1Zjk5NjIyMTRmMWNlZGY4MTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzR0xpYi5jcHAKQEAgLTExNCw3ICsxMTQs
NyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2ViUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgICAgICAgICAgd3BlX2xvYWRlcl9pbml0
KHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZS5kYXRhKCkpOwogCiAgICAgICAg
IFJFTEVBU0VfQVNTRVJUKGlzPFBsYXRmb3JtRGlzcGxheUxpYldQRT4oUGxhdGZvcm1EaXNwbGF5
OjpzaGFyZWREaXNwbGF5KCkpKTsKLSAgICAgICAgZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5TGli
V1BFPihQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKSkuaW5pdGlhbGl6ZShwYXJhbWV0
ZXJzLmhvc3RDbGllbnRGaWxlRGVzY3JpcHRvci5yZWxlYXNlRmlsZURlc2NyaXB0b3IoKSk7Cisg
ICAgICAgIGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheUxpYldQRT4oUGxhdGZvcm1EaXNwbGF5Ojpz
aGFyZWREaXNwbGF5KCkpLmluaXRpYWxpemUocGFyYW1ldGVycy5ob3N0Q2xpZW50RmlsZURlc2Ny
aXB0b3IucmVsZWFzZSgpLnJlbGVhc2UoKSk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTEyMiw3ICsx
MjIsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoV2Vi
UHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgIGlmIChQbGF0Zm9ybURpc3BsYXk6
OnNoYXJlZERpc3BsYXkoKS50eXBlKCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpXYXlsYW5k
KSB7CiAjaWYgVVNFKFdQRV9SRU5ERVJFUikKICAgICAgICAgaWYgKCFwYXJhbWV0ZXJzLmlzU2Vy
dmljZVdvcmtlclByb2Nlc3MpIHsKLSAgICAgICAgICAgIGF1dG8gaG9zdENsaWVudEZpbGVEZXNj
cmlwdG9yID0gcGFyYW1ldGVycy5ob3N0Q2xpZW50RmlsZURlc2NyaXB0b3IucmVsZWFzZUZpbGVE
ZXNjcmlwdG9yKCk7CisgICAgICAgICAgICBhdXRvIGhvc3RDbGllbnRGaWxlRGVzY3JpcHRvciA9
IHBhcmFtZXRlcnMuaG9zdENsaWVudEZpbGVEZXNjcmlwdG9yLnJlbGVhc2UoKS5yZWxlYXNlKCk7
CiAgICAgICAgICAgICBpZiAoaG9zdENsaWVudEZpbGVEZXNjcmlwdG9yICE9IC0xKSB7CiAgICAg
ICAgICAgICAgICAgd3BlX2xvYWRlcl9pbml0KHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJy
YXJ5TmFtZS5kYXRhKCkpOwogICAgICAgICAgICAgICAgIG1fd3BlRGlzcGxheSA9IFdlYkNvcmU6
OlBsYXRmb3JtRGlzcGxheUxpYldQRTo6Y3JlYXRlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456806</attachid>
            <date>2022-04-06 04:14:33 -0700</date>
            <delta_ts>2022-04-06 04:14:33 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-238801-20220406131431.patch</filename>
            <type>text/plain</type>
            <size>22783</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyNDUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU0Mzc1MDhhYWYzOGI1ZmU0
YTEzOTk4ZTlhNThhMmIzYjNmYmUxMzAuLjJiZWZlYTcwMWU4MDE4ZDhhMDM0MWMzNGU1MzIwZDZh
OGQyYjk5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjYgQEAKKzIwMjItMDQtMDYgIFphbiBEb2Jl
cnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtVbml4XSBBZG9wdCBVbml4
RmlsZURlc2NyaXB0b3IgaW4gSVBDOjpBdHRhY2htZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg4MDEKKworICAgICAgICBSZXZpZXdlZCBieSBD
YXJsb3MgR2FyY2lhIENhbXBvcy4KKworICAgICAgICBBZG9wdCBXVEY6OlVuaXhGaWxlRGVzY3Jp
cHRvciBmb3IgdXNhZ2UgaW4gSVBDOjpBdHRhY2htZW50LCBpbiBwbGFjZSBvZgorICAgICAgICBh
IHJhdyBpbnRlZ2VyIHZhbHVlLiBUaGlzIHNpbXBsaWZpZXMgbW92ZSBvcGVyYXRpb25zIGFuZCBk
ZXN0cnVjdGlvbiBvZgorICAgICAgICB0aGlzIHZhbHVlLgorCisgICAgICAgIFRoZSB0d28gcmVs
ZXZhbnQgY29uc3RydWN0b3JzIGFyZSBjaGFuZ2VkIHRvIGV4cGVjdCBhIFVuaXhGaWxlRGVzY3Jp
cHRvcgorICAgICAgICBydmFsdWUsIGFuZCB0aGV5J3JlIGFsc28gbWFkZSBleHBsaWNpdC4gVGhl
IGZpbGUgZGVzY3JpcHRvciBvYmplY3QgaXMKKyAgICAgICAgYWNjZXNzaWJsZSB0aHJvdWdoIGJv
dGggYSBjb25zdCBhbmQgYSBub24tY29uc3QgZ2V0dGVyLCB3aGljaCBhbGxvd3MgdGhlCisgICAg
ICAgIHVzZXIgdG8gcmVhZCBvciByZWxlYXNlIHRoZSBmaWxlIGRlc2NyaXB0b3IgY29udGFpbmVk
IHRoZXJlLiBUaGVyZSdzCisgICAgICAgIGFsc28gYSByZWxlYXNlIG1ldGhvZCB0aGF0IHJldHVy
bnMgdGhlIGNvbnRhaW5lZCBVbml4RmlsZURlc2NyaXB0b3IuCisKKyAgICAgICAgVGhlIHJlbGVh
c2VGaWxlRGVzY3JpcHRvcigpIGFuZCBmaWxlRGVzY3JpcHRvcigpIG1ldGhvZHMsIHByZXZpb3Vz
bHkKKyAgICAgICAgcmVsZWFzaW5nIG9yIHJldHVybmluZyB0aGUgY29udGFpbmVkIGludGVnZXIg
dmFsdWUgb2YgdGhlIGRlc2NyaXB0b3IuCisgICAgICAgIENhbGwgc2l0ZXMgZm9yIHRoZXNlIG1l
dGhvZHMgYXMgd2VsbCBhcyB0aGUgb2xkLWZvcm0gY29uc3RydWN0b3JzIGFyZQorICAgICAgICBh
ZGp1c3RlZCB0byB0aGUgbmV3IHZhcmlhbnRzLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0F0
dGFjaG1lbnQuaDoKKyAgICAgICAgKElQQzo6QXR0YWNobWVudDo6aXNOdWxsIGNvbnN0KToKKyAg
ICAgICAgKElQQzo6QXR0YWNobWVudDo6ZmQgY29uc3QpOgorICAgICAgICAoSVBDOjpBdHRhY2ht
ZW50OjpyZWxlYXNlKToKKyAgICAgICAgKElQQzo6QXR0YWNobWVudDo6cmVsZWFzZUZpbGVEZXNj
cmlwdG9yKTogRGVsZXRlZC4KKyAgICAgICAgKElQQzo6QXR0YWNobWVudDo6ZmlsZURlc2NyaXB0
b3IgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFBsYXRmb3JtL0lQQy91bml4L0F0dGFjaG1l
bnRVbml4LmNwcDoKKyAgICAgICAgKElQQzo6QXR0YWNobWVudDo6QXR0YWNobWVudCk6CisgICAg
ICAgIChJUEM6OkF0dGFjaG1lbnQ6Om9wZXJhdG9yPSk6CisgICAgICAgIChJUEM6OkF0dGFjaG1l
bnQ6On5BdHRhY2htZW50KTogRGVsZXRlZC4KKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvdW5peC9D
b25uZWN0aW9uVW5peC5jcHA6CisgICAgICAgIChJUEM6OkNvbm5lY3Rpb246OnByb2Nlc3NNZXNz
YWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZE91dHB1dE1lc3NhZ2UpOgorICAg
ICAgICAoSVBDOjpDb25uZWN0aW9uOjpjcmVhdGVDb25uZWN0aW9uSWRlbnRpZmllclBhaXIpOgor
ICAgICAgICAqIFBsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SGFuZGxlOjppc051bGwgY29uc3QpOgorICAgICAgICAoV2Vi
S2l0OjpTaGFyZWRNZW1vcnk6Om1hcCk6CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6
Y3JlYXRlSGFuZGxlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cDoKKyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxVbml4RmlsZURlc2NyaXB0b3I+OjplbmNv
ZGUpOgorICAgICAgICAoSVBDOjpBcmd1bWVudENvZGVyPFVuaXhGaWxlRGVzY3JpcHRvcj46OmRl
Y29kZSk6CisgICAgICAgICogU2hhcmVkL2dsaWIvVXNlck1lc3NhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVzc2FnZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lc3NhZ2U6OmRlY29kZSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVu
dEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6aG9zdEZpbGVEZXNj
cmlwdG9yKToKKyAgICAgICAgKiBVSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2Vi
UHJvY2Vzcyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vzc0Nvbm5lY3Rpb25J
bmZvLmg6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uSW5mbzo6aWRlbnRp
ZmllciBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OkdQVVByb2Nlc3NDb25uZWN0aW9uSW5mbzo6
cmVsZWFzZUlkZW50aWZpZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5zcGVjdG9yL1dlYklu
c3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rvcjo6c2V0RnJvbnRlbmRD
b25uZWN0aW9uKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3ND
b25uZWN0aW9uSW5mby5oOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rp
b25JbmZvOjppZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NDb25uZWN0aW9uSW5mbzo6cmVsZWFzZUlkZW50aWZpZXIpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6Omhvc3RGaWxl
RGVzY3JpcHRvciBjb25zdCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NH
TGliLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2Vzcyk6CisKIDIwMjItMDQtMDYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlbW92ZSBOb3RpZmljYXRpb246Om1fcmVsYXRlZE5vdGlmaWNhdGlv
bklkZW50aWZpZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0F0dGFj
aG1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0F0dGFjaG1lbnQuaAppbmRleCA5
MGU0N2YwYmQ5MTgyNTVhZjlhMjkyNzZlZjM1ZjhiMGUzNzBhODlkLi40ZTRiZGVlYTE3NThmY2M0
M2I3MzUwMmIzMGRhYTYxMzAyYWZlODQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9BdHRhY2htZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQXR0
YWNobWVudC5oCkBAIC00MCw2ICs0MCw3IEBACiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMp
CiAjaW5jbHVkZSA8dmFyaWFudD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKyNpbmNsdWRl
IDx3dGYvdW5peC9Vbml4RmlsZURlc2NyaXB0b3IuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgSVBD
IHsKQEAgLTYzLDEwICs2NCwxMSBAQCBwdWJsaWM6CiAgICAgfTsKIAogI2lmIFVTRShVTklYX0RP
TUFJTl9TT0NLRVRTKQorICAgIGV4cGxpY2l0IEF0dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9y
JiYsIHNpemVfdCk7CisgICAgZXhwbGljaXQgQXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3Im
Jik7CisKICAgICBBdHRhY2htZW50KEF0dGFjaG1lbnQmJik7CiAgICAgQXR0YWNobWVudCYgb3Bl
cmF0b3I9KEF0dGFjaG1lbnQmJik7Ci0gICAgQXR0YWNobWVudChpbnQgZmlsZURlc2NyaXB0b3Is
IHNpemVfdCk7Ci0gICAgQXR0YWNobWVudChpbnQgZmlsZURlc2NyaXB0b3IpOwogICAgIH5BdHRh
Y2htZW50KCk7CiAKICAgICB1c2luZyBTb2NrZXREZXNjcmlwdG9yID0gaW50OwpAQCAtODQsMTAg
Kzg2LDEyIEBAIHB1YmxpYzoKICAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7
IH0KIAogI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgIGJvb2wgaXNOdWxsKCkgY29u
c3QgeyByZXR1cm4gIW1fZmQ7IH0KICAgICBzaXplX3Qgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2l6ZTsgfQogCi0gICAgaW50IHJlbGVhc2VGaWxlRGVzY3JpcHRvcigpIHsgaW50IHRlbXAgPSBt
X2ZpbGVEZXNjcmlwdG9yOyBtX2ZpbGVEZXNjcmlwdG9yID0gLTE7IHJldHVybiB0ZW1wOyB9Ci0g
ICAgaW50IGZpbGVEZXNjcmlwdG9yKCkgY29uc3QgeyByZXR1cm4gbV9maWxlRGVzY3JpcHRvcjsg
fQorICAgIGNvbnN0IFVuaXhGaWxlRGVzY3JpcHRvciYgZmQoKSBjb25zdCB7IHJldHVybiBtX2Zk
OyB9CisgICAgVW5peEZpbGVEZXNjcmlwdG9yIHJlbGVhc2UoKSB7IHJldHVybiBzdGQ6OmV4Y2hh
bmdlKG1fZmQsIFVuaXhGaWxlRGVzY3JpcHRvciB7IH0pOyB9CisKICAgICBjb25zdCBDdXN0b21X
cml0ZXImIGN1c3RvbVdyaXRlcigpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tV3JpdGVyOyB9CiAj
ZWxpZiBPUyhEQVJXSU4pCiAgICAgdm9pZCByZWxlYXNlKCk7CkBAIC0xMDYsNyArMTEwLDcgQEAg
cHJpdmF0ZToKICAgICBUeXBlIG1fdHlwZTsKIAogI2lmIFVTRShVTklYX0RPTUFJTl9TT0NLRVRT
KQotICAgIGludCBtX2ZpbGVEZXNjcmlwdG9yIHsgLTEgfTsKKyAgICBVbml4RmlsZURlc2NyaXB0
b3IgbV9mZDsKICAgICBzaXplX3QgbV9zaXplOwogICAgIEN1c3RvbVdyaXRlciBtX2N1c3RvbVdy
aXRlcjsKICNlbGlmIE9TKERBUldJTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9J
UEMvdW5peC9BdHRhY2htZW50VW5peC5jcHAKaW5kZXggYmI3OWJmMmIzYWZlNDA3ZDk4NjdmZDgy
NDAxNzc2ZDRkMjliODlmOC4uMGU0NGZhZjliM2ViMGQwODAzMDlhZmI5NjBlZWQ0NjQ0ZTc1MTJi
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9BdHRhY2htZW50
VW5peC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9BdHRhY2htZW50
VW5peC5jcHAKQEAgLTMxLDM0ICszMSwzMiBAQAogCiBuYW1lc3BhY2UgSVBDIHsKIAotQXR0YWNo
bWVudDo6QXR0YWNobWVudChpbnQgZmlsZURlc2NyaXB0b3IsIHNpemVfdCBzaXplKQorQXR0YWNo
bWVudDo6QXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3ImJiBmZCwgc2l6ZV90IHNpemUpCiAg
ICAgOiBtX3R5cGUoTWFwcGVkTWVtb3J5VHlwZSkKLSAgICAsIG1fZmlsZURlc2NyaXB0b3IoZmls
ZURlc2NyaXB0b3IpCisgICAgLCBtX2ZkKFdURk1vdmUoZmQpKQogICAgICwgbV9zaXplKHNpemUp
CiB7CiB9CiAKLUF0dGFjaG1lbnQ6OkF0dGFjaG1lbnQoaW50IGZpbGVEZXNjcmlwdG9yKQorQXR0
YWNobWVudDo6QXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3ImJiBmZCkKICAgICA6IG1fdHlw
ZShTb2NrZXRUeXBlKQotICAgICwgbV9maWxlRGVzY3JpcHRvcihmaWxlRGVzY3JpcHRvcikKKyAg
ICAsIG1fZmQoV1RGTW92ZShmZCkpCiAgICAgLCBtX3NpemUoMCkKIHsKIH0KIAogQXR0YWNobWVu
dDo6QXR0YWNobWVudChBdHRhY2htZW50JiYgYXR0YWNobWVudCkKICAgICA6IG1fdHlwZShhdHRh
Y2htZW50Lm1fdHlwZSkKLSAgICAsIG1fZmlsZURlc2NyaXB0b3IoYXR0YWNobWVudC5tX2ZpbGVE
ZXNjcmlwdG9yKQorICAgICwgbV9mZChXVEZNb3ZlKGF0dGFjaG1lbnQubV9mZCkpCiAgICAgLCBt
X3NpemUoYXR0YWNobWVudC5tX3NpemUpCiAgICAgLCBtX2N1c3RvbVdyaXRlcihXVEZNb3ZlKGF0
dGFjaG1lbnQubV9jdXN0b21Xcml0ZXIpKQogewogICAgIGF0dGFjaG1lbnQubV90eXBlID0gVW5p
bml0aWFsaXplZDsKLSAgICBhdHRhY2htZW50Lm1fZmlsZURlc2NyaXB0b3IgPSAtMTsKICAgICBh
dHRhY2htZW50Lm1fc2l6ZSA9IDA7CiB9CiAKIEF0dGFjaG1lbnQ6OkF0dGFjaG1lbnQoQ3VzdG9t
V3JpdGVyJiYgd3JpdGVyKQogICAgIDogbV90eXBlKEN1c3RvbVdyaXRlclR5cGUpCi0gICAgLCBt
X2ZpbGVEZXNjcmlwdG9yKC0xKQogICAgICwgbV9zaXplKDApCiAgICAgLCBtX2N1c3RvbVdyaXRl
cihXVEZNb3ZlKHdyaXRlcikpCiB7CkBAIC02OCw4ICs2Niw3IEBAIEF0dGFjaG1lbnQmIEF0dGFj
aG1lbnQ6Om9wZXJhdG9yPShBdHRhY2htZW50JiYgYXR0YWNobWVudCkKIHsKICAgICBtX3R5cGUg
PSBhdHRhY2htZW50Lm1fdHlwZTsKICAgICBhdHRhY2htZW50Lm1fdHlwZSA9IFVuaW5pdGlhbGl6
ZWQ7Ci0gICAgbV9maWxlRGVzY3JpcHRvciA9IGF0dGFjaG1lbnQubV9maWxlRGVzY3JpcHRvcjsK
LSAgICBhdHRhY2htZW50Lm1fZmlsZURlc2NyaXB0b3IgPSAtMTsKKyAgICBtX2ZkID0gV1RGTW92
ZShhdHRhY2htZW50Lm1fZmQpOwogICAgIG1fc2l6ZSA9IGF0dGFjaG1lbnQubV9zaXplOwogICAg
IGF0dGFjaG1lbnQubV9zaXplID0gMDsKICAgICBtX2N1c3RvbVdyaXRlciA9IFdURk1vdmUoYXR0
YWNobWVudC5tX2N1c3RvbVdyaXRlcik7CkBAIC03NywxMCArNzQsNiBAQCBBdHRhY2htZW50JiBB
dHRhY2htZW50OjpvcGVyYXRvcj0oQXR0YWNobWVudCYmIGF0dGFjaG1lbnQpCiAgICAgcmV0dXJu
ICp0aGlzOwogfQogCi1BdHRhY2htZW50Ojp+QXR0YWNobWVudCgpCi17Ci0gICAgaWYgKG1fZmls
ZURlc2NyaXB0b3IgIT0gLTEpCi0gICAgICAgIGNsb3NlV2l0aFJldHJ5KG1fZmlsZURlc2NyaXB0
b3IpOwotfQorQXR0YWNobWVudDo6fkF0dGFjaG1lbnQoKSA9IGRlZmF1bHQ7CiAKIH0gLy8gbmFt
ZXNwYWNlIElQQwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvdW5peC9D
b25uZWN0aW9uVW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0Nvbm5l
Y3Rpb25Vbml4LmNwcAppbmRleCAxODExNjk3NjVkOGI3NTBkZDVlMjQ4NDA2MWU1YTgzZDIwZTJh
MzhhLi40MjE4NWYyOWJkYWQyMDkwOWU5ODI3M2ZiMzM2NDVmMjYyOTE2ZWZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcApAQCAt
MjA0LDEyICsyMDQsMTIgQEAgYm9vbCBDb25uZWN0aW9uOjpwcm9jZXNzTWVzc2FnZSgpCiAgICAg
ICAgIGNhc2UgQXR0YWNobWVudDo6TWFwcGVkTWVtb3J5VHlwZToKICAgICAgICAgICAgIGlmICgh
YXR0YWNobWVudEluZm9baV0uaXNOdWxsKCkpCiAgICAgICAgICAgICAgICAgZmQgPSBtX2ZpbGVE
ZXNjcmlwdG9yc1tmZEluZGV4KytdOwotICAgICAgICAgICAgYXR0YWNobWVudHNbYXR0YWNobWVu
dENvdW50IC0gaSAtIDFdID0gQXR0YWNobWVudChmZCwgYXR0YWNobWVudEluZm9baV0uc2l6ZSgp
KTsKKyAgICAgICAgICAgIGF0dGFjaG1lbnRzW2F0dGFjaG1lbnRDb3VudCAtIGkgLSAxXSA9IEF0
dGFjaG1lbnQoVW5peEZpbGVEZXNjcmlwdG9yKGZkLCBVbml4RmlsZURlc2NyaXB0b3I6OkFkb3B0
KSwgYXR0YWNobWVudEluZm9baV0uc2l6ZSgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEF0dGFjaG1lbnQ6OlNvY2tldFR5cGU6CiAgICAgICAgICAgICBpZiAoIWF0dGFjaG1l
bnRJbmZvW2ldLmlzTnVsbCgpKQogICAgICAgICAgICAgICAgIGZkID0gbV9maWxlRGVzY3JpcHRv
cnNbZmRJbmRleCsrXTsKLSAgICAgICAgICAgIGF0dGFjaG1lbnRzW2F0dGFjaG1lbnRDb3VudCAt
IGkgLSAxXSA9IEF0dGFjaG1lbnQoZmQpOworICAgICAgICAgICAgYXR0YWNobWVudHNbYXR0YWNo
bWVudENvdW50IC0gaSAtIDFdID0gQXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3IoZmQsIFVu
aXhGaWxlRGVzY3JpcHRvcjo6QWRvcHQpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIEF0dGFjaG1lbnQ6OkN1c3RvbVdyaXRlclR5cGU6CiAgICAgICAgICAgICBhdHRhY2htZW50
c1thdHRhY2htZW50Q291bnQgLSBpIC0gMV0gPSBBdHRhY2htZW50KEF0dGFjaG1lbnQ6OkN1c3Rv
bVdyaXRlcihtX3NvY2tldERlc2NyaXB0b3IpKTsKQEAgLTIzMCw3ICsyMzAsNyBAQCBib29sIENv
bm5lY3Rpb246OnByb2Nlc3NNZXNzYWdlKCkKICAgICAgICAgfQogCiAgICAgICAgIFdlYktpdDo6
U2hhcmVkTWVtb3J5OjpIYW5kbGUgaGFuZGxlOwotICAgICAgICBoYW5kbGUuYWRvcHRBdHRhY2ht
ZW50KElQQzo6QXR0YWNobWVudChtX2ZpbGVEZXNjcmlwdG9yc1thdHRhY2htZW50RmlsZURlc2Ny
aXB0b3JDb3VudCAtIDFdLCBhdHRhY2htZW50SW5mb1thdHRhY2htZW50Q291bnRdLnNpemUoKSkp
OworICAgICAgICBoYW5kbGUuYWRvcHRBdHRhY2htZW50KEF0dGFjaG1lbnQoVW5peEZpbGVEZXNj
cmlwdG9yKG1fZmlsZURlc2NyaXB0b3JzW2F0dGFjaG1lbnRGaWxlRGVzY3JpcHRvckNvdW50IC0g
MV0sIFVuaXhGaWxlRGVzY3JpcHRvcjo6QWRvcHQpLCBhdHRhY2htZW50SW5mb1thdHRhY2htZW50
Q291bnRdLnNpemUoKSkpOwogCiAgICAgICAgIG9vbE1lc3NhZ2VCb2R5ID0gV2ViS2l0OjpTaGFy
ZWRNZW1vcnk6Om1hcChoYW5kbGUsIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpS
ZWFkT25seSk7CiAgICAgICAgIGlmICghb29sTWVzc2FnZUJvZHkpIHsKQEAgLTQ4OSw3ICs0ODks
NyBAQCBib29sIENvbm5lY3Rpb246OnNlbmRPdXRwdXRNZXNzYWdlKFVuaXhNZXNzYWdlJiBvdXRw
dXRNZXNzYWdlKQogCiAgICAgICAgIHNpemVfdCBhdHRhY2htZW50RkRCdWZmZXJMZW5ndGggPSBz
dGQ6OmNvdW50X2lmKGF0dGFjaG1lbnRzLmJlZ2luKCksIGF0dGFjaG1lbnRzLmVuZCgpLAogICAg
ICAgICAgICAgW10oY29uc3QgQXR0YWNobWVudCYgYXR0YWNobWVudCkgewotICAgICAgICAgICAg
ICAgIHJldHVybiBhdHRhY2htZW50LmZpbGVEZXNjcmlwdG9yKCkgIT0gLTE7CisgICAgICAgICAg
ICAgICAgcmV0dXJuICFhdHRhY2htZW50LmlzTnVsbCgpOwogICAgICAgICAgICAgfSk7CiAKICAg
ICAgICAgaWYgKGF0dGFjaG1lbnRGREJ1ZmZlckxlbmd0aCkgewpAQCAtNTE3LDkgKzUxNyw5IEBA
IGJvb2wgQ29ubmVjdGlvbjo6c2VuZE91dHB1dE1lc3NhZ2UoVW5peE1lc3NhZ2UmIG91dHB1dE1l
c3NhZ2UpCiAgICAgICAgICAgICAgICAgYXR0YWNobWVudEluZm9baV0uc2V0U2l6ZShhdHRhY2ht
ZW50c1tpXS5zaXplKCkpOwogICAgICAgICAgICAgICAgIEZBTExUSFJPVUdIOwogICAgICAgICAg
ICAgY2FzZSBBdHRhY2htZW50OjpTb2NrZXRUeXBlOgotICAgICAgICAgICAgICAgIGlmIChhdHRh
Y2htZW50c1tpXS5maWxlRGVzY3JpcHRvcigpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgaWYg
KCFhdHRhY2htZW50c1tpXS5pc051bGwoKSkgewogICAgICAgICAgICAgICAgICAgICBBU1NFUlQo
ZmRQdHIpOwotICAgICAgICAgICAgICAgICAgICBmZFB0cltmZEluZGV4KytdID0gYXR0YWNobWVu
dHNbaV0uZmlsZURlc2NyaXB0b3IoKTsKKyAgICAgICAgICAgICAgICAgICAgZmRQdHJbZmRJbmRl
eCsrXSA9IGF0dGFjaG1lbnRzW2ldLmZkKCkudmFsdWUoKTsKICAgICAgICAgICAgICAgICB9IGVs
c2UKICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudEluZm9baV0uc2V0TnVsbCgpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwpAQCAtNjM4LDYgKzYzOCw2IEBAIHZvaWQgQ29ubmVjdGlvbjo6
ZGlkUmVjZWl2ZVN5bmNSZXBseShPcHRpb25TZXQ8U2VuZFN5bmNPcHRpb24+KQogc3RkOjpvcHRp
b25hbDxDb25uZWN0aW9uOjpDb25uZWN0aW9uSWRlbnRpZmllclBhaXI+IENvbm5lY3Rpb246OmNy
ZWF0ZUNvbm5lY3Rpb25JZGVudGlmaWVyUGFpcigpCiB7CiAgICAgQ29ubmVjdGlvbjo6U29ja2V0
UGFpciBzb2NrZXRQYWlyID0gQ29ubmVjdGlvbjo6Y3JlYXRlUGxhdGZvcm1Db25uZWN0aW9uKCk7
Ci0gICAgcmV0dXJuIENvbm5lY3Rpb25JZGVudGlmaWVyUGFpciB7IHNvY2tldFBhaXIuc2VydmVy
LCBBdHRhY2htZW50IHsgc29ja2V0UGFpci5jbGllbnQgfSB9OworICAgIHJldHVybiBDb25uZWN0
aW9uSWRlbnRpZmllclBhaXIgeyBzb2NrZXRQYWlyLnNlcnZlciwgQXR0YWNobWVudCB7IFVuaXhG
aWxlRGVzY3JpcHRvciB7IHNvY2tldFBhaXIuY2xpZW50LCBVbml4RmlsZURlc2NyaXB0b3I6OkFk
b3B0IH0gfSB9OwogfQogfSAvLyBuYW1lc3BhY2UgSVBDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKaW5kZXggYzkyNDBiOTI0MWIwOTA2OTBl
MGZhY2Q0N2U5MDA0NWIwOGVjMDY3NS4uZmU5Yjc4MDI2MDkzZTY4MmMxNjkxMzVhMGYwMDA3M2Y4
NGNkODYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS91bml4L1NoYXJlZE1l
bW9yeVVuaXguY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vdW5peC9TaGFyZWRNZW1v
cnlVbml4LmNwcApAQCAtNzUsNyArNzUsNyBAQCB2b2lkIFNoYXJlZE1lbW9yeTo6SGFuZGxlOjpj
bGVhcigpCiAKIGJvb2wgU2hhcmVkTWVtb3J5OjpIYW5kbGU6OmlzTnVsbCgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIG1fYXR0YWNobWVudC5maWxlRGVzY3JpcHRvcigpID09IC0xOworICAgIHJldHVy
biBtX2F0dGFjaG1lbnQuaXNOdWxsKCk7CiB9CiAKIHZvaWQgU2hhcmVkTWVtb3J5OjpJUENIYW5k
bGU6OmVuY29kZShJUEM6OkVuY29kZXImIGVuY29kZXIpIGNvbnN0CkBAIC0yMDAsOSArMjAwLDkg
QEAgUmVmUHRyPFNoYXJlZE1lbW9yeT4gU2hhcmVkTWVtb3J5OjptYXAoY29uc3QgSGFuZGxlJiBo
YW5kbGUsIFByb3RlY3Rpb24gcHJvdGVjdGkKIHsKICAgICBBU1NFUlQoIWhhbmRsZS5pc051bGwo
KSk7CiAKLSAgICBpbnQgZmQgPSBoYW5kbGUubV9hdHRhY2htZW50LnJlbGVhc2VGaWxlRGVzY3Jp
cHRvcigpOwotICAgIHZvaWQqIGRhdGEgPSBtbWFwKDAsIGhhbmRsZS5tX2F0dGFjaG1lbnQuc2l6
ZSgpLCBhY2Nlc3NNb2RlTU1hcChwcm90ZWN0aW9uKSwgTUFQX1NIQVJFRCwgZmQsIDApOwotICAg
IGNsb3NlV2l0aFJldHJ5KGZkKTsKKyAgICBVbml4RmlsZURlc2NyaXB0b3IgZmQgPSBoYW5kbGUu
bV9hdHRhY2htZW50LnJlbGVhc2UoKTsKKyAgICB2b2lkKiBkYXRhID0gbW1hcCgwLCBoYW5kbGUu
bV9hdHRhY2htZW50LnNpemUoKSwgYWNjZXNzTW9kZU1NYXAocHJvdGVjdGlvbiksIE1BUF9TSEFS
RUQsIGZkLnZhbHVlKCksIDApOworICAgIGZkID0geyB9OwogICAgIGlmIChkYXRhID09IE1BUF9G
QUlMRUQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCkBAIC0yNDAsMTIgKzI0MCwxMiBAQCBi
b29sIFNoYXJlZE1lbW9yeTo6Y3JlYXRlSGFuZGxlKEhhbmRsZSYgaGFuZGxlLCBQcm90ZWN0aW9u
KQogICAgIC8vIEZJWE1FOiBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIHBhc3NlZCBQcm90ZWN0
aW9uIGlzIFJlYWRPbmx5LgogICAgIC8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTMxNTQyLgogCi0gICAgaW50IGR1cGxpY2F0ZWRIYW5kbGUgPSBkdXBDbG9z
ZU9uRXhlYyhtX2ZpbGVEZXNjcmlwdG9yLnZhbHVlKCkpOwotICAgIGlmIChkdXBsaWNhdGVkSGFu
ZGxlID09IC0xKSB7CisgICAgVW5peEZpbGVEZXNjcmlwdG9yIGR1cGxpY2F0ZSB7IG1fZmlsZURl
c2NyaXB0b3IudmFsdWUoKSwgVW5peEZpbGVEZXNjcmlwdG9yOjpEdXBsaWNhdGUgfTsKKyAgICBp
ZiAoIWR1cGxpY2F0ZSkgewogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KLSAgICBoYW5kbGUubV9hdHRhY2htZW50ID0gSVBDOjpBdHRh
Y2htZW50KGR1cGxpY2F0ZWRIYW5kbGUsIG1fc2l6ZSk7CisgICAgaGFuZGxlLm1fYXR0YWNobWVu
dCA9IElQQzo6QXR0YWNobWVudChXVEZNb3ZlKGR1cGxpY2F0ZSksIG1fc2l6ZSk7CiAgICAgcmV0
dXJuIHRydWU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVB
cmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuY3BwCmluZGV4IDQwOWU5ODEwNWU3ZTEyNTkzYWEzNDAyZDVkOTdmYjgxM2QxMGNlNzIu
LmY3NDhiZGYzNzM2MTgwODNlYWRjOTViZjhhNmJiMzJiNjM3YjBiYWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMzI5NSwxMyArMzI5
NSwxMiBAQCBzdGQ6Om9wdGlvbmFsPFRleHRSZWNvZ25pdGlvbkRhdGFEZXRlY3Rvcj4gQXJndW1l
bnRDb2RlcjxUZXh0UmVjb2duaXRpb25EYXRhRGV0ZQogCiB2b2lkIEFyZ3VtZW50Q29kZXI8VW5p
eEZpbGVEZXNjcmlwdG9yPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFVuaXhGaWxl
RGVzY3JpcHRvciYgZmQpCiB7Ci0gICAgYXV0byBkdXBsaWNhdGUgPSBmZC5kdXBsaWNhdGUoKTsK
LSAgICBlbmNvZGVyLmFkZEF0dGFjaG1lbnQoQXR0YWNobWVudChkdXBsaWNhdGUucmVsZWFzZSgp
KSk7CisgICAgZW5jb2Rlci5hZGRBdHRhY2htZW50KEF0dGFjaG1lbnQoZmQuZHVwbGljYXRlKCkp
KTsKIH0KIAogdm9pZCBBcmd1bWVudENvZGVyPFVuaXhGaWxlRGVzY3JpcHRvcj46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBVbml4RmlsZURlc2NyaXB0b3ImJiBmZCkKIHsKLSAgICBlbmNvZGVy
LmFkZEF0dGFjaG1lbnQoQXR0YWNobWVudChmZC5yZWxlYXNlKCkpKTsKKyAgICBlbmNvZGVyLmFk
ZEF0dGFjaG1lbnQoQXR0YWNobWVudChXVEZNb3ZlKGZkKSkpOwogfQogCiBzdGQ6Om9wdGlvbmFs
PFVuaXhGaWxlRGVzY3JpcHRvcj4gQXJndW1lbnRDb2RlcjxVbml4RmlsZURlc2NyaXB0b3I+Ojpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKQEAgLTMzMDksNyArMzMwOCw3IEBAIHN0ZDo6b3B0aW9u
YWw8VW5peEZpbGVEZXNjcmlwdG9yPiBBcmd1bWVudENvZGVyPFVuaXhGaWxlRGVzY3JpcHRvcj46
OmRlY29kZShEZWNvCiAgICAgYXV0byBhdHRhY2htZW50ID0gZGVjb2Rlci50YWtlTGFzdEF0dGFj
aG1lbnQoKTsKICAgICBpZiAoIWF0dGFjaG1lbnQpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7Ci0gICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8VW5peEZpbGVEZXNjcmlwdG9yPiB7IHN0ZDo6
aW5fcGxhY2UsIGF0dGFjaG1lbnQtPnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpLCBVbml4RmlsZURl
c2NyaXB0b3I6OkFkb3B0IH07CisgICAgcmV0dXJuIHN0ZDo6b3B0aW9uYWw8VW5peEZpbGVEZXNj
cmlwdG9yPiB7IHN0ZDo6aW5fcGxhY2UsIGF0dGFjaG1lbnQtPnJlbGVhc2UoKSB9OwogfQogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL2dsaWIvVXNlck1lc3NhZ2Uu
Y3BwIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ2xpYi9Vc2VyTWVzc2FnZS5jcHAKaW5kZXggMzBm
NjAxYjQyNGY1MDIxNTRkMTMyOTg5YjM1NGY3ZGMzZDU4MGQzNi4uYjk2YTFkN2Y2OWNiY2UwZDVi
NzczMjAzMThhMmFmMGI2MzQ3NGNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Z2xpYi9Vc2VyTWVzc2FnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvZ2xpYi9Vc2Vy
TWVzc2FnZS5jcHAKQEAgLTUxLDcgKzUxLDcgQEAgdm9pZCBVc2VyTWVzc2FnZTo6ZW5jb2RlKElQ
Qzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBpZiAoZmlsZURlc2NyaXB0b3JzKSB7CiAg
ICAgICAgIGludCBsZW5ndGggPSBnX3VuaXhfZmRfbGlzdF9nZXRfbGVuZ3RoKGZpbGVEZXNjcmlw
dG9ycy5nZXQoKSk7CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpCi0g
ICAgICAgICAgICBhdHRhY2htZW50cy5hcHBlbmQoSVBDOjpBdHRhY2htZW50KGdfdW5peF9mZF9s
aXN0X2dldChmaWxlRGVzY3JpcHRvcnMuZ2V0KCksIGksIG51bGxwdHIpKSk7CisgICAgICAgICAg
ICBhdHRhY2htZW50cy5hcHBlbmQoSVBDOjpBdHRhY2htZW50KFVuaXhGaWxlRGVzY3JpcHRvcihn
X3VuaXhfZmRfbGlzdF9nZXQoZmlsZURlc2NyaXB0b3JzLmdldCgpLCBpLCBudWxscHRyKSwgVW5p
eEZpbGVEZXNjcmlwdG9yOjpBZG9wdCkpKTsKICAgICB9CiAgICAgZW5jb2RlciA8PCBhdHRhY2ht
ZW50czsKIH0KQEAgLTkxLDcgKzkxLDcgQEAgc3RkOjpvcHRpb25hbDxVc2VyTWVzc2FnZT4gVXNl
ck1lc3NhZ2U6OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIpCiAgICAgaWYgKCFhdHRhY2ht
ZW50cy0+aXNFbXB0eSgpKSB7CiAgICAgICAgIHJlc3VsdC5maWxlRGVzY3JpcHRvcnMgPSBhZG9w
dEdSZWYoZ191bml4X2ZkX2xpc3RfbmV3KCkpOwogICAgICAgICBmb3IgKGF1dG8mIGF0dGFjaG1l
bnQgOiAqYXR0YWNobWVudHMpIHsKLSAgICAgICAgICAgIGlmIChnX3VuaXhfZmRfbGlzdF9hcHBl
bmQocmVzdWx0LmZpbGVEZXNjcmlwdG9ycy5nZXQoKSwgYXR0YWNobWVudC5yZWxlYXNlRmlsZURl
c2NyaXB0b3IoKSwgbnVsbHB0cikgPT0gLTEpCisgICAgICAgICAgICBpZiAoZ191bml4X2ZkX2xp
c3RfYXBwZW5kKHJlc3VsdC5maWxlRGVzY3JpcHRvcnMuZ2V0KCksIGF0dGFjaG1lbnQucmVsZWFz
ZSgpLnJlbGVhc2UoKSwgbnVsbHB0cikgPT0gLTEpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKaW5kZXggODA2OTkzY2E3M2E5Y2NlMzc3
NTNkODA1YTlhYjlmNGNiNmJkMWE3Yi4uY2ZlMzY4OWYyMmM2NjU5Y2VhYjM5NTBlNDBiNjg2ZTli
OTdiNDI1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdl
Q2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9QYWdl
Q2xpZW50SW1wbC5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmQq
IFBhZ2VDbGllbnRJbXBsOjp2aWV3QmFja2VuZCgpCiAKIElQQzo6QXR0YWNobWVudCBQYWdlQ2xp
ZW50SW1wbDo6aG9zdEZpbGVEZXNjcmlwdG9yKCkKIHsKLSAgICByZXR1cm4gd3BlX3ZpZXdfYmFj
a2VuZF9nZXRfcmVuZGVyZXJfaG9zdF9mZChtX3ZpZXcuYmFja2VuZCgpKTsKKyAgICByZXR1cm4g
SVBDOjpBdHRhY2htZW50KFVuaXhGaWxlRGVzY3JpcHRvcih3cGVfdmlld19iYWNrZW5kX2dldF9y
ZW5kZXJlcl9ob3N0X2ZkKG1fdmlldy5iYWNrZW5kKCkpLCBVbml4RmlsZURlc2NyaXB0b3I6OkFk
b3B0KSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiBQYWdlQ2xpZW50
SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eShXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xp
Yi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NQb29sR0xpYi5j
cHAKaW5kZXggY2ZlN2EwZWIzYmVjMDA5NzQ1NDE2NzRiNWM0MTRlNTEyNzRiMWM4YS4uOTMzMjMy
ZTJmNjg0ZWQzYzJiMzVlZTgyMDBjMGM2Nzk4M2RlZGJmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzUG9vbEdMaWIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2dsaWIvV2ViUHJvY2Vzc1Bvb2xHTGliLmNwcApAQCAtNzgsNyArNzgs
NyBAQCB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKGNv
bnN0IFdlYlByb2Nlc3NQcm94eSYgcHJvY2VzcwogICAgIHBhcmFtZXRlcnMuaXNTZXJ2aWNlV29y
a2VyUHJvY2VzcyA9IHByb2Nlc3MuaXNSdW5uaW5nU2VydmljZVdvcmtlcnMoKTsKIAogICAgIGlm
ICghcGFyYW1ldGVycy5pc1NlcnZpY2VXb3JrZXJQcm9jZXNzKSB7Ci0gICAgICAgIHBhcmFtZXRl
cnMuaG9zdENsaWVudEZpbGVEZXNjcmlwdG9yID0gd3BlX3JlbmRlcmVyX2hvc3RfY3JlYXRlX2Ns
aWVudCgpOworICAgICAgICBwYXJhbWV0ZXJzLmhvc3RDbGllbnRGaWxlRGVzY3JpcHRvciA9IElQ
Qzo6QXR0YWNobWVudChVbml4RmlsZURlc2NyaXB0b3Iod3BlX3JlbmRlcmVyX2hvc3RfY3JlYXRl
X2NsaWVudCgpLCBVbml4RmlsZURlc2NyaXB0b3I6OkFkb3B0KSk7CiAgICAgICAgIHBhcmFtZXRl
cnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZSA9IEZpbGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbihTdHJpbmcgeyB3cGVfbG9hZGVyX2dldF9sb2FkZWRfaW1wbGVtZW50YXRpb25f
bGlicmFyeV9uYW1lKCkgfSk7CiAgICAgfQogI2VuZGlmCkBAIC04OCw3ICs4OCw3IEBAIHZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3MoY29uc3QgV2ViUHJv
Y2Vzc1Byb3h5JiBwcm9jZXNzCiAjaWYgVVNFKFdQRV9SRU5ERVJFUikKICAgICAgICAgd3BlX2xv
YWRlcl9pbml0KCJsaWJXUEVCYWNrZW5kLWZkby0xLjAuc28uMSIpOwogICAgICAgICBpZiAoQWNj
ZWxlcmF0ZWRCYWNraW5nU3RvcmVXYXlsYW5kOjpjaGVja1JlcXVpcmVtZW50cygpKSB7Ci0gICAg
ICAgICAgICBwYXJhbWV0ZXJzLmhvc3RDbGllbnRGaWxlRGVzY3JpcHRvciA9IHdwZV9yZW5kZXJl
cl9ob3N0X2NyZWF0ZV9jbGllbnQoKTsKKyAgICAgICAgICAgIHBhcmFtZXRlcnMuaG9zdENsaWVu
dEZpbGVEZXNjcmlwdG9yID0gSVBDOjpBdHRhY2htZW50KFVuaXhGaWxlRGVzY3JpcHRvcih3cGVf
cmVuZGVyZXJfaG9zdF9jcmVhdGVfY2xpZW50KCksIFVuaXhGaWxlRGVzY3JpcHRvcjo6QWRvcHQp
KTsKICAgICAgICAgICAgIHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZSA9IEZp
bGVTeXN0ZW06OmZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihTdHJpbmcgeyB3cGVfbG9hZGVyX2dl
dF9sb2FkZWRfaW1wbGVtZW50YXRpb25fbGlicmFyeV9uYW1lKCkgfSk7CiAgICAgICAgIH0KICNl
bGlmIFVTRShFR0wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQ
VVByb2Nlc3NDb25uZWN0aW9uSW5mby5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9H
UFVQcm9jZXNzQ29ubmVjdGlvbkluZm8uaAppbmRleCA5YzgxZGMyNWExZTRmNWI0YjZkYTkxZjAz
NGM0MjU4ZGMwNTAxN2ZlLi5lMmQwMjlmNjE4MjZiMDVmN2M0NzUzZjMzYTZkMGNhMzg3YTYzNGNl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL0dQVVByb2Nlc3NDb25u
ZWN0aW9uSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvR1BVUHJvY2Vz
c0Nvbm5lY3Rpb25JbmZvLmgKQEAgLTQxLDcgKzQxLDcgQEAgc3RydWN0IEdQVVByb2Nlc3NDb25u
ZWN0aW9uSW5mbyB7CiAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIGlkZW50aWZpZXIo
KSBjb25zdAogICAgIHsKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKLSAgICAgICAgcmV0
dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihjb25uZWN0aW9uLmZpbGVEZXNjcmlwdG9y
KCkpOworICAgICAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyKGNvbm5lY3Rp
b24uZmQoKS52YWx1ZSgpKTsKICNlbGlmIE9TKERBUldJTikKICAgICAgICAgcmV0dXJuIElQQzo6
Q29ubmVjdGlvbjo6SWRlbnRpZmllcihjb25uZWN0aW9uLnBvcnQoKSk7CiAjZWxpZiBPUyhXSU5E
T1dTKQpAQCAtNTUsNyArNTUsNyBAQCBzdHJ1Y3QgR1BVUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvIHsK
ICAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgcmVsZWFzZUlkZW50aWZpZXIoKQogICAg
IHsKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykKLSAgICAgICAgYXV0byByZXR1cm5WYWx1
ZSA9IElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihjb25uZWN0aW9uLnJlbGVhc2VGaWxlRGVz
Y3JpcHRvcigpKTsKKyAgICAgICAgYXV0byByZXR1cm5WYWx1ZSA9IElQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllcihjb25uZWN0aW9uLnJlbGVhc2UoKS5yZWxlYXNlKCkpOwogI2Vsc2UKICAgICAg
ICAgYXV0byByZXR1cm5WYWx1ZSA9IGlkZW50aWZpZXIoKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3IuY3BwCmluZGV4IDYz
MGUzZjgzY2E5YjQ0MGMzZmU2OWIwMDRiM2YxZjdkZDUxYTIyODkuLmJiNzg3ZGRmMzNmNTM4OGFk
M2RlZDAwNTcxNDM4MmFhZTM5OWIwNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3Rvci5jcHAKQEAgLTg1LDcgKzg1LDcgQEAgdm9pZCBX
ZWJJbnNwZWN0b3I6OnNldEZyb250ZW5kQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQgZW5jb2Rl
ZENvbm5lY3Rpb25JZGVudGkKICAgICB9CiAKICNpZiBVU0UoVU5JWF9ET01BSU5fU09DS0VUUykK
LSAgICBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIoZW5j
b2RlZENvbm5lY3Rpb25JZGVudGlmaWVyLnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpKTsKKyAgICBJ
UEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIoZW5jb2RlZENv
bm5lY3Rpb25JZGVudGlmaWVyLnJlbGVhc2UoKS5yZWxlYXNlKCkpOwogI2VsaWYgT1MoREFSV0lO
KQogICAgIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllcihl
bmNvZGVkQ29ubmVjdGlvbklkZW50aWZpZXIucG9ydCgpKTsKICNlbGlmIE9TKFdJTkRPV1MpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vz
c0Nvbm5lY3Rpb25JbmZvLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc0Nvbm5lY3Rpb25JbmZvLmgKaW5kZXggMDM3NjNhYTVmYjhlYmQzYmMyNDI0ZTc2
OTllYjEyYjVmNzhmYzYwOS4uMTIyNzU1Y2JjYzE1YTdjOWJlY2MxZjgzZjMyNTkyNjRmMmNlYTQ0
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvTmV0d29ya1By
b2Nlc3NDb25uZWN0aW9uSW5mby5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzQ29ubmVjdGlvbkluZm8uaApAQCAtNDAsNyArNDAsNyBAQCBzdHJ1
Y3QgTmV0d29ya1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7CiAgICAgSVBDOjpDb25uZWN0aW9uOjpJ
ZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdAogICAgIHsKICNpZiBVU0UoVU5JWF9ET01BSU5f
U09DS0VUUykKLSAgICAgICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihjb25u
ZWN0aW9uLmZpbGVEZXNjcmlwdG9yKCkpOworICAgICAgICByZXR1cm4gSVBDOjpDb25uZWN0aW9u
OjpJZGVudGlmaWVyKGNvbm5lY3Rpb24uZmQoKS52YWx1ZSgpKTsKICNlbGlmIE9TKERBUldJTikK
ICAgICAgICAgcmV0dXJuIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllcihjb25uZWN0aW9uLnBv
cnQoKSk7CiAjZWxpZiBPUyhXSU5ET1dTKQpAQCAtNTQsNyArNTQsNyBAQCBzdHJ1Y3QgTmV0d29y
a1Byb2Nlc3NDb25uZWN0aW9uSW5mbyB7CiAgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVy
IHJlbGVhc2VJZGVudGlmaWVyKCkKICAgICB7CiAjaWYgVVNFKFVOSVhfRE9NQUlOX1NPQ0tFVFMp
Ci0gICAgICAgIGF1dG8gcmV0dXJuVmFsdWUgPSBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIo
Y29ubmVjdGlvbi5yZWxlYXNlRmlsZURlc2NyaXB0b3IoKSk7CisgICAgICAgIGF1dG8gcmV0dXJu
VmFsdWUgPSBJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIoY29ubmVjdGlvbi5yZWxlYXNlKCku
cmVsZWFzZSgpKTsKICNlbHNlCiAgICAgICAgIGF1dG8gcmV0dXJuVmFsdWUgPSBpZGVudGlmaWVy
KCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCAxZWU3NGY0ZDkyMzdlYTA4OWMyODlmYzExNGE2MDk3MzhjMzU5MjVjLi41Y2YyNDUyMzMy
MTRhZGJhZTA2Mjg1MWMzZjY4NzljZWIyMjNiNmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMzM5LDcgKzEzMzksNyBAQCBwdWJsaWM6CiAjZW5k
aWYKIAogI2lmIFVTRShXUEVfUkVOREVSRVIpCi0gICAgaW50IGhvc3RGaWxlRGVzY3JpcHRvcigp
IGNvbnN0IHsgcmV0dXJuIG1faG9zdEZpbGVEZXNjcmlwdG9yLmZpbGVEZXNjcmlwdG9yKCk7IH0K
KyAgICBpbnQgaG9zdEZpbGVEZXNjcmlwdG9yKCkgY29uc3QgeyByZXR1cm4gbV9ob3N0RmlsZURl
c2NyaXB0b3IuZmQoKS52YWx1ZSgpOyB9CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlQ3VycmVu
dE1vZGlmaWVyU3RhdGUoT3B0aW9uU2V0PFdlYkNvcmU6OlBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVy
PiBtb2RpZmllcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIv
V2ViUHJvY2Vzc0dMaWIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2dsaWIvV2ViUHJv
Y2Vzc0dMaWIuY3BwCmluZGV4IGJhYjVkZGYxZGExMGJhN2NiYzVmMWE3NDQzMDUzYTFjZGU3NGZk
YjMuLmYyZTAzOTE2ZWNjZWM4YjgwZTI1Yzg1Zjk5NjIyMTRmMWNlZGY4MTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9nbGliL1dlYlByb2Nlc3NHTGliLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvZ2xpYi9XZWJQcm9jZXNzR0xpYi5jcHAKQEAgLTExNCw3
ICsxMTQsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nlc3Mo
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgICAgICAgICAgd3BlX2xvYWRl
cl9pbml0KHBhcmFtZXRlcnMuaW1wbGVtZW50YXRpb25MaWJyYXJ5TmFtZS5kYXRhKCkpOwogCiAg
ICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzPFBsYXRmb3JtRGlzcGxheUxpYldQRT4oUGxhdGZvcm1E
aXNwbGF5OjpzaGFyZWREaXNwbGF5KCkpKTsKLSAgICAgICAgZG93bmNhc3Q8UGxhdGZvcm1EaXNw
bGF5TGliV1BFPihQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKSkuaW5pdGlhbGl6ZShw
YXJhbWV0ZXJzLmhvc3RDbGllbnRGaWxlRGVzY3JpcHRvci5yZWxlYXNlRmlsZURlc2NyaXB0b3Io
KSk7CisgICAgICAgIGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheUxpYldQRT4oUGxhdGZvcm1EaXNw
bGF5OjpzaGFyZWREaXNwbGF5KCkpLmluaXRpYWxpemUocGFyYW1ldGVycy5ob3N0Q2xpZW50Rmls
ZURlc2NyaXB0b3IucmVsZWFzZSgpLnJlbGVhc2UoKSk7CiAgICAgfQogI2VuZGlmCiAKQEAgLTEy
Miw3ICsxMjIsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlByb2Nl
c3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYQogICAgIGlmIChQbGF0Zm9ybURp
c3BsYXk6OnNoYXJlZERpc3BsYXkoKS50eXBlKCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpX
YXlsYW5kKSB7CiAjaWYgVVNFKFdQRV9SRU5ERVJFUikKICAgICAgICAgaWYgKCFwYXJhbWV0ZXJz
LmlzU2VydmljZVdvcmtlclByb2Nlc3MpIHsKLSAgICAgICAgICAgIGF1dG8gaG9zdENsaWVudEZp
bGVEZXNjcmlwdG9yID0gcGFyYW1ldGVycy5ob3N0Q2xpZW50RmlsZURlc2NyaXB0b3IucmVsZWFz
ZUZpbGVEZXNjcmlwdG9yKCk7CisgICAgICAgICAgICBhdXRvIGhvc3RDbGllbnRGaWxlRGVzY3Jp
cHRvciA9IHBhcmFtZXRlcnMuaG9zdENsaWVudEZpbGVEZXNjcmlwdG9yLnJlbGVhc2UoKS5yZWxl
YXNlKCk7CiAgICAgICAgICAgICBpZiAoaG9zdENsaWVudEZpbGVEZXNjcmlwdG9yICE9IC0xKSB7
CiAgICAgICAgICAgICAgICAgd3BlX2xvYWRlcl9pbml0KHBhcmFtZXRlcnMuaW1wbGVtZW50YXRp
b25MaWJyYXJ5TmFtZS5kYXRhKCkpOwogICAgICAgICAgICAgICAgIG1fd3BlRGlzcGxheSA9IFdl
YkNvcmU6OlBsYXRmb3JtRGlzcGxheUxpYldQRTo6Y3JlYXRlKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>