<?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>182809</bug_id>
          
          <creation_ts>2018-02-14 14:45:52 -0800</creation_ts>
          <short_desc>Do sibling invalidation on mutation</short_desc>
          <delta_ts>2018-02-14 17:28:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kangil.han</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1399260</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-02-14 14:45:52 -0800</bug_when>
    <thetext>It invalidates too much with accurate class/attribute invalidation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399275</commentid>
    <comment_count>1</comment_count>
      <attachid>333847</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-02-14 14:54:51 -0800</bug_when>
    <thetext>Created attachment 333847
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399303</commentid>
    <comment_count>2</comment_count>
      <attachid>333854</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-02-14 15:57:17 -0800</bug_when>
    <thetext>Created attachment 333854
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399311</commentid>
    <comment_count>3</comment_count>
      <attachid>333857</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-02-14 16:26:16 -0800</bug_when>
    <thetext>Created attachment 333857
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399334</commentid>
    <comment_count>4</comment_count>
      <attachid>333857</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-14 17:27:57 -0800</bug_when>
    <thetext>Comment on attachment 333857
patch

Clearing flags on attachment: 333857

Committed r228497: &lt;https://trac.webkit.org/changeset/228497&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399335</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-02-14 17:27:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1399336</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-02-14 17:28:35 -0800</bug_when>
    <thetext>&lt;rdar://problem/37554910&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333847</attachid>
            <date>2018-02-14 14:54:51 -0800</date>
            <delta_ts>2018-02-14 15:57:17 -0800</delta_ts>
            <desc>patch</desc>
            <filename>sibling-invalidation-outside-resolve-3.patch</filename>
            <type>text/plain</type>
            <size>17765</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAJKHJldmlzaW9uIDIyODQ3MCkKKysrIFNvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQ4MSwyNCArMTQ4MSw1
NCBAQCBFbGVtZW50U3R5bGUgRWxlbWVudDo6cmVzb2x2ZVN0eWxlKGNvbnN0CiAgICAgcmV0dXJu
IHN0eWxlUmVzb2x2ZXIoKS5zdHlsZUZvckVsZW1lbnQoKnRoaXMsIHBhcmVudFN0eWxlKTsKIH0K
IAorc3RhdGljIHZvaWQgaW52YWxpZGF0ZVNpYmxpbmdzSWZOZWVkZWQoRWxlbWVudCYgZWxlbWVu
dCkKK3sKKyAgICBpZiAoIWVsZW1lbnQuYWZmZWN0c05leHRTaWJsaW5nRWxlbWVudFN0eWxlKCkp
CisgICAgICAgIHJldHVybjsKKyAgICBhdXRvKiBwYXJlbnQgPSBlbGVtZW50LnBhcmVudEVsZW1l
bnQoKTsKKyAgICBpZiAocGFyZW50ICYmIHBhcmVudC0+c3R5bGVWYWxpZGl0eSgpID49IFN0eWxl
OjpWYWxpZGl0eTo6U3VidHJlZUludmFsaWQpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAo
YXV0byogc2libGluZyA9IGVsZW1lbnQubmV4dEVsZW1lbnRTaWJsaW5nKCk7IHNpYmxpbmc7IHNp
YmxpbmcgPSBzaWJsaW5nLT5uZXh0RWxlbWVudFNpYmxpbmcoKSkgeworICAgICAgICBpZiAoc2li
bGluZy0+c3R5bGVJc0FmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmcoKSkKKyAgICAgICAgICAgIHNp
YmxpbmctPmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWVJbnRlcm5hbCgpOworICAgICAgICBpZiAo
IXNpYmxpbmctPmFmZmVjdHNOZXh0U2libGluZ0VsZW1lbnRTdHlsZSgpKQorICAgICAgICAgICAg
cmV0dXJuOworICAgIH0KK30KKwogdm9pZCBFbGVtZW50OjppbnZhbGlkYXRlU3R5bGUoKQogewog
ICAgIE5vZGU6OmludmFsaWRhdGVTdHlsZShTdHlsZTo6VmFsaWRpdHk6OkVsZW1lbnRJbnZhbGlk
KTsKKyAgICBpbnZhbGlkYXRlU2libGluZ3NJZk5lZWRlZCgqdGhpcyk7CiB9CiAKIHZvaWQgRWxl
bWVudDo6aW52YWxpZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbigpCiB7CiAgICAgTm9kZTo6
aW52YWxpZGF0ZVN0eWxlKFN0eWxlOjpWYWxpZGl0eTo6RWxlbWVudEludmFsaWQsIFN0eWxlOjpJ
bnZhbGlkYXRpb25Nb2RlOjpSZWNvbXBvc2l0ZUxheWVyKTsKKyAgICBpbnZhbGlkYXRlU2libGlu
Z3NJZk5lZWRlZCgqdGhpcyk7CiB9CiAKIHZvaWQgRWxlbWVudDo6aW52YWxpZGF0ZVN0eWxlRm9y
U3VidHJlZSgpCiB7CiAgICAgTm9kZTo6aW52YWxpZGF0ZVN0eWxlKFN0eWxlOjpWYWxpZGl0eTo6
U3VidHJlZUludmFsaWQpOworICAgIGludmFsaWRhdGVTaWJsaW5nc0lmTmVlZGVkKCp0aGlzKTsK
IH0KIAogdm9pZCBFbGVtZW50OjppbnZhbGlkYXRlU3R5bGVBbmRSZW5kZXJlcnNGb3JTdWJ0cmVl
KCkKIHsKICAgICBOb2RlOjppbnZhbGlkYXRlU3R5bGUoU3R5bGU6OlZhbGlkaXR5OjpTdWJ0cmVl
QW5kUmVuZGVyZXJzSW52YWxpZCk7CisgICAgaW52YWxpZGF0ZVNpYmxpbmdzSWZOZWVkZWQoKnRo
aXMpOworfQorCit2b2lkIEVsZW1lbnQ6OmludmFsaWRhdGVTdHlsZUludGVybmFsKCkKK3sKKyAg
ICBOb2RlOjppbnZhbGlkYXRlU3R5bGUoU3R5bGU6OlZhbGlkaXR5OjpFbGVtZW50SW52YWxpZCk7
Cit9CisKK3ZvaWQgRWxlbWVudDo6aW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZUludGVybmFsKCkK
K3sKKyAgICBOb2RlOjppbnZhbGlkYXRlU3R5bGUoU3R5bGU6OlZhbGlkaXR5OjpTdWJ0cmVlSW52
YWxpZCk7CiB9CiAKIGJvb2wgRWxlbWVudDo6aGFzRGlzcGxheUNvbnRlbnRzKCkgY29uc3QKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuaAkocmV2aXNpb24gMjI4NDcwKQorKysgU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTQ1LDYgKzU0NSw5IEBAIHB1YmxpYzoK
ICAgICAvLyBFbGVtZW50cyBuZXdseSBhZGRlZCB0byB0aGUgdHJlZSBhcmUgYWxzbyBpbiB0aGlz
IHN0YXRlLgogICAgIHZvaWQgaW52YWxpZGF0ZVN0eWxlQW5kUmVuZGVyZXJzRm9yU3VidHJlZSgp
OwogCisgICAgdm9pZCBpbnZhbGlkYXRlU3R5bGVJbnRlcm5hbCgpOworICAgIHZvaWQgaW52YWxp
ZGF0ZVN0eWxlRm9yU3VidHJlZUludGVybmFsKCk7CisKICAgICBib29sIGhhc0Rpc3BsYXlDb250
ZW50cygpIGNvbnN0OwogICAgIHZvaWQgc3RvcmVEaXNwbGF5Q29udGVudHNTdHlsZShzdGQ6OnVu
aXF1ZV9wdHI8UmVuZGVyU3R5bGU+KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVJbnZhbGlkYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVJbnZhbGlkYXRvci5jcHAJKHJldmlzaW9uIDIyODQ3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlSW52YWxpZGF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsNyArMTAzLDcg
QEAgSW52YWxpZGF0b3I6OkNoZWNrRGVzY2VuZGFudHMgSW52YWxpZGF0bwogICAgIGlmIChtX2hh
c1NoYWRvd1BzZXVkb0VsZW1lbnRSdWxlc0luQXV0aG9yU2hlZXQpIHsKICAgICAgICAgLy8gRklY
TUU6IFRoaXMgY291bGQgZG8gYWN0dWFsIHJ1bGUgbWF0Y2hpbmcgdG9vLgogICAgICAgICBpZiAo
ZWxlbWVudC5zaGFkb3dSb290KCkpCi0gICAgICAgICAgICBlbGVtZW50LmludmFsaWRhdGVTdHls
ZUZvclN1YnRyZWUoKTsKKyAgICAgICAgICAgIGVsZW1lbnQuaW52YWxpZGF0ZVN0eWxlRm9yU3Vi
dHJlZUludGVybmFsKCk7CiAgICAgfQogCiAgICAgYm9vbCBzaG91bGRDaGVja0ZvclNsb3RzID0g
IW1fcnVsZVNldC5zbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKCkuaXNFbXB0eSgpICYmICFtX2Rp
ZEludmFsaWRhdGVIb3N0Q2hpbGRyZW47CkBAIC0xMTEsNyArMTExLDcgQEAgSW52YWxpZGF0b3I6
OkNoZWNrRGVzY2VuZGFudHMgSW52YWxpZGF0bwogICAgICAgICBhdXRvKiBjb250YWluaW5nU2hh
ZG93Um9vdCA9IGVsZW1lbnQuY29udGFpbmluZ1NoYWRvd1Jvb3QoKTsKICAgICAgICAgaWYgKGNv
bnRhaW5pbmdTaGFkb3dSb290ICYmIGNvbnRhaW5pbmdTaGFkb3dSb290LT5ob3N0KCkpIHsKICAg
ICAgICAgICAgIGZvciAoYXV0byYgcG9zc2libHlTbG90dGVkIDogY2hpbGRyZW5PZlR5cGU8RWxl
bWVudD4oKmNvbnRhaW5pbmdTaGFkb3dSb290LT5ob3N0KCkpKQotICAgICAgICAgICAgICAgIHBv
c3NpYmx5U2xvdHRlZC5pbnZhbGlkYXRlU3R5bGUoKTsKKyAgICAgICAgICAgICAgICBwb3NzaWJs
eVNsb3R0ZWQuaW52YWxpZGF0ZVN0eWxlSW50ZXJuYWwoKTsKICAgICAgICAgfQogICAgICAgICAv
LyBObyBuZWVkIHRvIGRvIHRoaXMgYWdhaW4uCiAgICAgICAgIG1fZGlkSW52YWxpZGF0ZUhvc3RD
aGlsZHJlbiA9IHRydWU7CkBAIC0xMjQsNyArMTI0LDcgQEAgSW52YWxpZGF0b3I6OkNoZWNrRGVz
Y2VuZGFudHMgSW52YWxpZGF0bwogICAgICAgICBydWxlQ29sbGVjdG9yLm1hdGNoQXV0aG9yUnVs
ZXMoZmFsc2UpOwogCiAgICAgICAgIGlmIChydWxlQ29sbGVjdG9yLmhhc01hdGNoZWRSdWxlcygp
KQotICAgICAgICAgICAgZWxlbWVudC5pbnZhbGlkYXRlU3R5bGUoKTsKKyAgICAgICAgICAgIGVs
ZW1lbnQuaW52YWxpZGF0ZVN0eWxlSW50ZXJuYWwoKTsKICAgICAgICAgcmV0dXJuIENoZWNrRGVz
Y2VuZGFudHM6OlllczsKICAgICB9CiAgICAgY2FzZSBTdHlsZTo6VmFsaWRpdHk6OkVsZW1lbnRJ
bnZhbGlkOgpAQCAtMTkzLDcgKzE5Myw3IEBAIHZvaWQgSW52YWxpZGF0b3I6OmludmFsaWRhdGVT
dHlsZShTaGFkb3cKICAgICBBU1NFUlQoIW1fZGlydGllc0FsbFN0eWxlKTsKIAogICAgIGlmICgh
bV9ydWxlU2V0Lmhvc3RQc2V1ZG9DbGFzc1J1bGVzKCkuaXNFbXB0eSgpICYmIHNoYWRvd1Jvb3Qu
aG9zdCgpKQotICAgICAgICBzaGFkb3dSb290Lmhvc3QoKS0+aW52YWxpZGF0ZVN0eWxlKCk7Cisg
ICAgICAgIHNoYWRvd1Jvb3QuaG9zdCgpLT5pbnZhbGlkYXRlU3R5bGVJbnRlcm5hbCgpOwogCiAg
ICAgZm9yIChhdXRvJiBjaGlsZCA6IGNoaWxkcmVuT2ZUeXBlPEVsZW1lbnQ+KHNoYWRvd1Jvb3Qp
KSB7CiAgICAgICAgIFNlbGVjdG9yRmlsdGVyIGZpbHRlcjsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAJKHJldmlzaW9uIDIyODQ3MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTM3LDE0ICsxMzcsOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IFRyZWVSZXNvbHZl
CiAKIHN0YXRpYyB2b2lkIHJlc2V0U3R5bGVGb3JOb25SZW5kZXJlZERlc2NlbmRhbnRzKEVsZW1l
bnQmIGN1cnJlbnQpCiB7Ci0gICAgLy8gRklYTUU6IFRoaXMgaXMgbm90IGNvcnJlY3Qgd2l0aCBz
aGFkb3cgdHJlZXMuIFRoaXMgc2hvdWxkIGJlIGRvbmUgd2l0aCBDb21wb3NlZFRyZWVJdGVyYXRv
ci4KLSAgICBib29sIGVsZW1lbnROZWVkaW5nU3R5bGVSZWNhbGNBZmZlY3RzTmV4dFNpYmxpbmdF
bGVtZW50U3R5bGUgPSBmYWxzZTsKICAgICBmb3IgKGF1dG8mIGNoaWxkIDogY2hpbGRyZW5PZlR5
cGU8RWxlbWVudD4oY3VycmVudCkpIHsKLSAgICAgICAgYm9vbCBhZmZlY3RlZEJ5UHJldmlvdXNT
aWJsaW5nID0gY2hpbGQuc3R5bGVJc0FmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmcoKSAmJiBlbGVt
ZW50TmVlZGluZ1N0eWxlUmVjYWxjQWZmZWN0c05leHRTaWJsaW5nRWxlbWVudFN0eWxlOwotICAg
ICAgICBpZiAoY2hpbGQubmVlZHNTdHlsZVJlY2FsYygpIHx8IGVsZW1lbnROZWVkaW5nU3R5bGVS
ZWNhbGNBZmZlY3RzTmV4dFNpYmxpbmdFbGVtZW50U3R5bGUpCi0gICAgICAgICAgICBlbGVtZW50
TmVlZGluZ1N0eWxlUmVjYWxjQWZmZWN0c05leHRTaWJsaW5nRWxlbWVudFN0eWxlID0gY2hpbGQu
YWZmZWN0c05leHRTaWJsaW5nRWxlbWVudFN0eWxlKCk7Ci0KLSAgICAgICAgaWYgKGNoaWxkLm5l
ZWRzU3R5bGVSZWNhbGMoKSB8fCBhZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nKSB7CisgICAgICAg
IGlmIChjaGlsZC5uZWVkc1N0eWxlUmVjYWxjKCkpIHsKICAgICAgICAgICAgIGNoaWxkLnJlc2V0
Q29tcHV0ZWRTdHlsZSgpOwogICAgICAgICAgICAgY2hpbGQucmVzZXRTdHlsZVJlbGF0aW9ucygp
OwogICAgICAgICAgICAgY2hpbGQuc2V0SGFzVmFsaWRTdHlsZSgpOwpAQCAtNDcxLDE2ICs0NjUs
MTEgQEAgdm9pZCBUcmVlUmVzb2x2ZXI6OnJlc29sdmVDb21wb3NlZFRyZWUoKQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIH0KIAotICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGRl
YWwgd2l0aCB0aGlzIGR1cmluZyBzdHlsZSBpbnZhbGlkYXRpb24uCi0gICAgICAgIGJvb2wgYWZm
ZWN0ZWRCeVByZXZpb3VzU2libGluZyA9IGVsZW1lbnQuc3R5bGVJc0FmZmVjdGVkQnlQcmV2aW91
c1NpYmxpbmcoKSAmJiBwYXJlbnQuZWxlbWVudE5lZWRpbmdTdHlsZVJlY2FsY0FmZmVjdHNOZXh0
U2libGluZ0VsZW1lbnRTdHlsZTsKLSAgICAgICAgaWYgKGVsZW1lbnQubmVlZHNTdHlsZVJlY2Fs
YygpIHx8IHBhcmVudC5lbGVtZW50TmVlZGluZ1N0eWxlUmVjYWxjQWZmZWN0c05leHRTaWJsaW5n
RWxlbWVudFN0eWxlKQotICAgICAgICAgICAgcGFyZW50LmVsZW1lbnROZWVkaW5nU3R5bGVSZWNh
bGNBZmZlY3RzTmV4dFNpYmxpbmdFbGVtZW50U3R5bGUgPSBlbGVtZW50LmFmZmVjdHNOZXh0U2li
bGluZ0VsZW1lbnRTdHlsZSgpOwotCiAgICAgICAgIGF1dG8qIHN0eWxlID0gcmVuZGVyT3JEaXNw
bGF5Q29udGVudHNTdHlsZShlbGVtZW50KTsKICAgICAgICAgYXV0byBjaGFuZ2UgPSBOb0NoYW5n
ZTsKICAgICAgICAgYXV0byBkZXNjZW5kYW50c1RvUmVzb2x2ZSA9IERlc2NlbmRhbnRzVG9SZXNv
bHZlOjpOb25lOwogCi0gICAgICAgIGJvb2wgc2hvdWxkUmVzb2x2ZSA9IHNob3VsZFJlc29sdmVF
bGVtZW50KGVsZW1lbnQsIHBhcmVudC5kZXNjZW5kYW50c1RvUmVzb2x2ZSkgfHwgYWZmZWN0ZWRC
eVByZXZpb3VzU2libGluZzsKKyAgICAgICAgYm9vbCBzaG91bGRSZXNvbHZlID0gc2hvdWxkUmVz
b2x2ZUVsZW1lbnQoZWxlbWVudCwgcGFyZW50LmRlc2NlbmRhbnRzVG9SZXNvbHZlKTsKICAgICAg
ICAgaWYgKHNob3VsZFJlc29sdmUpIHsKICAgICAgICAgICAgIGlmICghZWxlbWVudC5oYXNEaXNw
bGF5Q29udGVudHMoKSkKICAgICAgICAgICAgICAgICBlbGVtZW50LnJlc2V0Q29tcHV0ZWRTdHls
ZSgpOwpAQCAtNDk4LDkgKzQ4Nyw2IEBAIHZvaWQgVHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9z
ZWRUcmVlKCkKICAgICAgICAgICAgIGNoYW5nZSA9IGVsZW1lbnRVcGRhdGVzLnVwZGF0ZS5jaGFu
Z2U7CiAgICAgICAgICAgICBkZXNjZW5kYW50c1RvUmVzb2x2ZSA9IGVsZW1lbnRVcGRhdGVzLmRl
c2NlbmRhbnRzVG9SZXNvbHZlOwogCi0gICAgICAgICAgICBpZiAoYWZmZWN0ZWRCeVByZXZpb3Vz
U2libGluZykKLSAgICAgICAgICAgICAgICBkZXNjZW5kYW50c1RvUmVzb2x2ZSA9IERlc2NlbmRh
bnRzVG9SZXNvbHZlOjpBbGw7Ci0KICAgICAgICAgICAgIGlmIChlbGVtZW50VXBkYXRlcy51cGRh
dGUuc3R5bGUpCiAgICAgICAgICAgICAgICAgbV91cGRhdGUtPmFkZEVsZW1lbnQoZWxlbWVudCwg
cGFyZW50LmVsZW1lbnQsIFdURk1vdmUoZWxlbWVudFVwZGF0ZXMpKTsKIApJbmRleDogU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oCShyZXZpc2lvbiAyMjg0NzApCisrKyBT
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oCSh3b3JraW5nIGNvcHkpCkBA
IC03OSw3ICs3OSw2IEBAIHByaXZhdGU6CiAgICAgICAgIENoYW5nZSBjaGFuZ2UgeyBOb0NoYW5n
ZSB9OwogICAgICAgICBEZXNjZW5kYW50c1RvUmVzb2x2ZSBkZXNjZW5kYW50c1RvUmVzb2x2ZSB7
IERlc2NlbmRhbnRzVG9SZXNvbHZlOjpOb25lIH07CiAgICAgICAgIGJvb2wgZGlkUHVzaFNjb3Bl
IHsgZmFsc2UgfTsKLSAgICAgICAgYm9vbCBlbGVtZW50TmVlZGluZ1N0eWxlUmVjYWxjQWZmZWN0
c05leHRTaWJsaW5nRWxlbWVudFN0eWxlIHsgZmFsc2UgfTsKIAogICAgICAgICBQYXJlbnQoRG9j
dW1lbnQmKTsKICAgICAgICAgUGFyZW50KEVsZW1lbnQmLCBjb25zdCBSZW5kZXJTdHlsZSYsIENo
YW5nZSwgRGVzY2VuZGFudHNUb1Jlc29sdmUpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
aW5kaXJlY3QtYWRqYWNlbnQtc3R5bGUtaW52YWxpZGF0aW9uLTEtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2luZGlyZWN0LWFkamFjZW50LXN0eWxlLWlu
dmFsaWRhdGlvbi0xLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjI4NDcwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9jc3MvaW5kaXJlY3QtYWRqYWNlbnQtc3R5bGUtaW52YWxpZGF0aW9uLTEtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMSw4ICsxMSw4IEBAIFBBU1MgZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5xdWVyeVNlbGUKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVsxXSkuY29sb3IgaXMgInJnYigwLCAwLCAwKSIKIFBB
U1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCIuYWN0aXZhdG9yIilbMF0pIGlzIHRydWUKIFBBU1Mgd2luZG93LmludGVybmFs
cy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYWN0aXZh
dG9yIilbMV0pIGlzIHRydWUKLVBBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJl
Y2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVswXSkgaXMgZmFsc2UKLVBB
U1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCJ0YXJnZXQiKVsxXSkgaXMgZmFsc2UKK1BBU1Mgd2luZG93LmludGVybmFscy5u
b2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVsw
XSkgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzFdKSBpcyB0cnVlCiBQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMF0pLmNvbG9y
IGlzICJyZ2IoMCwgMSwgMikiCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgidGFyZ2V0IilbMV0pLmNvbG9yIGlzICJyZ2IoMCwgMSwgMikiCiBQQVNTIHdp
bmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgiLmFjdGl2YXRvciIpWzBdKSBpcyBmYWxzZQpAQCAtMjEsOCArMjEsOCBAQCBQQVNTIHdp
bmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhCiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMu
bm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0Iilb
MV0pIGlzIGZhbHNlCiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMo
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFjdGl2YXRvciIpWzBdKSBpcyB0cnVlCiBQQVNT
IHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiLmFjdGl2YXRvciIpWzFdKSBpcyB0cnVlCi1QQVNTIHdpbmRvdy5pbnRlcm5hbHMu
bm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0Iilb
MF0pIGlzIGZhbHNlCi1QQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMo
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMV0pIGlzIGZhbHNlCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgidGFyZ2V0IilbMF0pIGlzIHRydWUKK1BBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVl
ZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVsxXSkgaXMg
dHJ1ZQogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRh
cmdldCIpWzBdKS5jb2xvciBpcyAicmdiKDAsIDAsIDApIgogUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzFdKS5jb2xvciBpcyAicmdiKDAs
IDAsIDApIgogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hY3RpdmF0b3IiKVswXSkgaXMgZmFsc2UKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvY3NzL2luZGlyZWN0LWFkamFjZW50LXN0eWxlLWludmFsaWRhdGlvbi0x
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW5kaXJlY3QtYWRqYWNl
bnQtc3R5bGUtaW52YWxpZGF0aW9uLTEuaHRtbAkocmV2aXNpb24gMjI4NDcwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9jc3MvaW5kaXJlY3QtYWRqYWNlbnQtc3R5bGUtaW52YWxpZGF0aW9uLTEuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNDksOCArNDksOCBAQCBmdW5jdGlvbiBzaG91bGROZWVkU3R5
bGVSZWNhbGMoZXhwZWN0ZWQpCiAgICAgdmFyIHRlc3RGdW5jdGlvbiA9IGV4cGVjdGVkID8gc2hv
dWxkQmVUcnVlIDogc2hvdWxkQmVGYWxzZTsKICAgICB0ZXN0RnVuY3Rpb24oIndpbmRvdy5pbnRl
cm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5h
Y3RpdmF0b3JcIilbMF0pIik7CiAgICAgdGVzdEZ1bmN0aW9uKCJ3aW5kb3cuaW50ZXJuYWxzLm5v
ZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuYWN0aXZhdG9y
XCIpWzFdKSIpOwotICAgIHNob3VsZEJlRmFsc2UoIndpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRz
U3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInRhcmdldFwiKVswXSkiKTsK
LSAgICBzaG91bGRCZUZhbHNlKCJ3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxj
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJ0YXJnZXRcIilbMV0pIik7CisgICAgdGVzdEZ1
bmN0aW9uKCJ3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoXCJ0YXJnZXRcIilbMF0pIik7CisgICAgdGVzdEZ1bmN0aW9uKCJ3aW5k
b3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoXCJ0YXJnZXRcIilbMV0pIik7CiB9CiAKIGZ1bmN0aW9uIHNldElkKG5hbWUpIHsKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvY3NzL2luZGlyZWN0LWFkamFjZW50LXN0eWxlLWludmFsaWRhdGlv
bi0yLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbmRp
cmVjdC1hZGphY2VudC1zdHlsZS1pbnZhbGlkYXRpb24tMi1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDIyODQ3MCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2luZGlyZWN0LWFkamFjZW50LXN0eWxl
LWludmFsaWRhdGlvbi0yLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTEsOCArMTEs
OCBAQCBQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlCiBQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMV0pLmNvbG9y
IGlzICJyZ2IoMCwgMCwgMCkiCiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVS
ZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFjdGl2YXRvciIpWzBdKSBpcyB0cnVl
CiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiLmFjdGl2YXRvciIpWzFdKSBpcyB0cnVlCi1QQVNTIHdpbmRvdy5pbnRl
cm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFy
Z2V0IilbMF0pIGlzIGZhbHNlCi1QQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVS
ZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMV0pIGlzIGZhbHNlCitQ
QVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgidGFyZ2V0IilbMF0pIGlzIHRydWUKK1BBU1Mgd2luZG93LmludGVybmFscy5u
b2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVsx
XSkgaXMgdHJ1ZQogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoInRhcmdldCIpWzBdKS5jb2xvciBpcyAicmdiKDAsIDEsIDIpIgogUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzFdKS5jb2xvciBpcyAi
cmdiKDAsIDEsIDIpIgogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxj
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hY3RpdmF0b3IiKVswXSkgaXMgZmFsc2UKQEAg
LTIxLDggKzIxLDggQEAgUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYQog
UEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoInRhcmdldCIpWzFdKSBpcyBmYWxzZQogUEFTUyB3aW5kb3cuaW50ZXJuYWxz
Lm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hY3RpdmF0
b3IiKVswXSkgaXMgdHJ1ZQogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVj
YWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hY3RpdmF0b3IiKVsxXSkgaXMgdHJ1ZQot
UEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5
U2VsZWN0b3JBbGwoInRhcmdldCIpWzBdKSBpcyBmYWxzZQotUEFTUyB3aW5kb3cuaW50ZXJuYWxz
Lm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIp
WzFdKSBpcyBmYWxzZQorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxj
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzBdKSBpcyB0cnVlCitQQVNTIHdp
bmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgidGFyZ2V0IilbMV0pIGlzIHRydWUKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVswXSkuY29sb3IgaXMgInJnYigwLCAwLCAwKSIK
IFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQi
KVsxXSkuY29sb3IgaXMgInJnYigwLCAwLCAwKSIKIFBBU1Mgd2luZG93LmludGVybmFscy5ub2Rl
TmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYWN0aXZhdG9yIilb
MF0pIGlzIGZhbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbmRpcmVjdC1hZGphY2Vu
dC1zdHlsZS1pbnZhbGlkYXRpb24tMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvY3NzL2luZGlyZWN0LWFkamFjZW50LXN0eWxlLWludmFsaWRhdGlvbi0yLmh0bWwJKHJldmlz
aW9uIDIyODQ3MCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2luZGlyZWN0LWFkamFjZW50LXN0
eWxlLWludmFsaWRhdGlvbi0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDggKzQ5LDggQEAg
ZnVuY3Rpb24gc2hvdWxkTmVlZFN0eWxlUmVjYWxjKGV4cGVjdGVkKQogICAgIHZhciB0ZXN0RnVu
Y3Rpb24gPSBleHBlY3RlZCA/IHNob3VsZEJlVHJ1ZSA6IHNob3VsZEJlRmFsc2U7CiAgICAgdGVz
dEZ1bmN0aW9uKCJ3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuYWN0aXZhdG9yXCIpWzBdKSIpOwogICAgIHRlc3RGdW5jdGlv
bigid2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKFwiLmFjdGl2YXRvclwiKVsxXSkiKTsKLSAgICBzaG91bGRCZUZhbHNlKCJ3aW5k
b3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoXCJ0YXJnZXRcIilbMF0pIik7Ci0gICAgc2hvdWxkQmVGYWxzZSgid2luZG93LmludGVybmFs
cy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwidGFyZ2V0
XCIpWzFdKSIpOworICAgIHRlc3RGdW5jdGlvbigid2luZG93LmludGVybmFscy5ub2RlTmVlZHNT
dHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwidGFyZ2V0XCIpWzBdKSIpOwor
ICAgIHRlc3RGdW5jdGlvbigid2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwidGFyZ2V0XCIpWzFdKSIpOwogfQogCiBmdW5jdGlv
biBzZXRJZChuYW1lKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbmRpcmVjdC1hZGph
Y2VudC1zdHlsZS1pbnZhbGlkYXRpb24tMy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jc3MvaW5kaXJlY3QtYWRqYWNlbnQtc3R5bGUtaW52YWxpZGF0aW9uLTMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjg0NzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9p
bmRpcmVjdC1hZGphY2VudC1zdHlsZS1pbnZhbGlkYXRpb24tMy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTExLDggKzExLDggQEAgUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50
LnF1ZXJ5U2VsZQogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoInRhcmdldCIpWzFdKS5jb2xvciBpcyAicmdiKDAsIDAsIDApIgogUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5h
Y3RpdmF0b3IiKVswXSkgaXMgdHJ1ZQogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0
eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hY3RpdmF0b3IiKVsxXSkgaXMg
dHJ1ZQotUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzBdKSBpcyBmYWxzZQotUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRh
cmdldCIpWzFdKSBpcyBmYWxzZQorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxl
UmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzBdKSBpcyB0cnVlCitQ
QVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgidGFyZ2V0IilbMV0pIGlzIHRydWUKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVswXSkuY29sb3IgaXMgInJnYigwLCAx
LCAyKSIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0
YXJnZXQiKVsxXSkuY29sb3IgaXMgInJnYigwLCAxLCAyKSIKIFBBU1Mgd2luZG93LmludGVybmFs
cy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYWN0aXZh
dG9yIilbMF0pIGlzIGZhbHNlCkBAIC0yMSw4ICsyMSw4IEBAIFBBU1Mgd2luZG93LmludGVybmFs
cy5ub2RlTmVlZHNTdHlsZVJlY2EKIFBBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHls
ZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVsxXSkgaXMgZmFsc2UK
IFBBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCIuYWN0aXZhdG9yIilbMF0pIGlzIHRydWUKIFBBU1Mgd2luZG93LmludGVy
bmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYWN0
aXZhdG9yIilbMV0pIGlzIHRydWUKLVBBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHls
ZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVswXSkgaXMgZmFsc2UK
LVBBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVsxXSkgaXMgZmFsc2UKK1BBU1Mgd2luZG93LmludGVybmFs
cy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQi
KVswXSkgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxj
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzFdKSBpcyB0cnVlCiBQQVNTIGdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMF0pLmNv
bG9yIGlzICJyZ2IoMCwgMCwgMCkiCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMV0pLmNvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCiBQQVNT
IHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgiLmFjdGl2YXRvciIpWzBdKSBpcyBmYWxzZQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jc3MvaW5kaXJlY3QtYWRqYWNlbnQtc3R5bGUtaW52YWxpZGF0aW9uLTMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbmRpcmVjdC1hZGphY2VudC1zdHlsZS1pbnZh
bGlkYXRpb24tMy5odG1sCShyZXZpc2lvbiAyMjg0NzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9pbmRpcmVjdC1hZGphY2VudC1zdHlsZS1pbnZhbGlkYXRpb24tMy5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC00OSw4ICs0OSw4IEBAIGZ1bmN0aW9uIHNob3VsZE5lZWRTdHlsZVJlY2FsYyhleHBl
Y3RlZCkKICAgICB2YXIgdGVzdEZ1bmN0aW9uID0gZXhwZWN0ZWQgPyBzaG91bGRCZVRydWUgOiBz
aG91bGRCZUZhbHNlOwogICAgIHRlc3RGdW5jdGlvbigid2luZG93LmludGVybmFscy5ub2RlTmVl
ZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmFjdGl2YXRvclwiKVsw
XSkiKTsKICAgICB0ZXN0RnVuY3Rpb24oIndpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVS
ZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5hY3RpdmF0b3JcIilbMV0pIik7Ci0g
ICAgc2hvdWxkQmVGYWxzZSgid2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwidGFyZ2V0XCIpWzBdKSIpOwotICAgIHNob3VsZEJl
RmFsc2UoIndpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbChcInRhcmdldFwiKVsxXSkiKTsKKyAgICB0ZXN0RnVuY3Rpb24oIndpbmRv
dy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bChcInRhcmdldFwiKVswXSkiKTsKKyAgICB0ZXN0RnVuY3Rpb24oIndpbmRvdy5pbnRlcm5hbHMu
bm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInRhcmdldFwi
KVsxXSkiKTsKIH0KIAogZnVuY3Rpb24gc2V0SWQobmFtZSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333854</attachid>
            <date>2018-02-14 15:57:17 -0800</date>
            <delta_ts>2018-02-14 16:26:16 -0800</delta_ts>
            <desc>patch</desc>
            <filename>sibling-invalidation-outside-resolve-4.patch</filename>
            <type>text/plain</type>
            <size>20946</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyODQ5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDE4LTAyLTE0ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBEbyBzaWJsaW5nIGludmFsaWRh
dGlvbiBvbiBtdXRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgyODA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2UgdXNlZCB0byBpbnZhbGlkYXRlIHNpYmxpbmdzIGZvciBzaWJsaW5nIGNvbWJp
bmF0b3JzIGFuZCBudGgtcHNldWRvIGNsYXNzZXMgZHVyaW5nIHN0eWxlIHJlc29sdXRpb24gdHJl
ZSB3YWxrLgorICAgICAgICBUaGlzIHdvdWxkIGNvbnNpZGVyIGFueSBlbGVtZW50IHdpdGggaW52
YWxpZCBzdHlsZSBhIHJlYXNvbiB0byBpbnZhbGlkYXRlIHNpYmxpbmdzIHRvby4gSG93ZXZlciB3
ZSBub3cgdG9vCisgICAgICAgIGFjY3VyYXRlIGludmFsaWRhdGlvbiBvbiBjbGFzcyBhbmQgYXR0
cmlidXRlIGNoYW5nZXMgYW5kIHRoaXMgYXBwcm9hY2ggZW5kcyB1cCBpbnZhbGlkYXRpbmcgdG9v
IG11Y2guCisKKyAgICAgICAgVGhpcyBwYXRjaCBzaWJsaW5nIHN0eWxlIGludmFsaWRhdGlvbiB0
byBtdXRhdGlvbiB0aW1lIGFuZCByZW1vdmVzIGludmFsaWRhdGlvbiBjb2RlIGZyb20gc3R5bGUg
cmVzb2x1dGlvbiB0cmVlIHdhbGsuCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjppbnZhbGlkYXRlU2libGluZ3NJZk5lZWRlZCk6CisKKyAgICAgICAgICAg
IEhlbHBlciB0byBpbnZhbGlkYXRlIHNpYmxpbmdzLgorCisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjppbnZhbGlkYXRlU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aW52YWxp
ZGF0ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjppbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OmludmFsaWRhdGVTdHlsZUFuZFJlbmRlcmVyc0ZvclN1YnRyZWUpOgorCisgICAgICAgICAgICBJ
bnZhbGlkYXRlIHNpYmxpbmdzIGlmIG5lZWRlZCBiYXNlZCBvbiBhZmZlY3RzTmV4dFNpYmxpbmcv
YWZmZWN0ZWRCeVByZXZpb3VzU2libGluZyBiaXRzLgorCisgICAgICAgIChXZWJDb3JlOjpFbGVt
ZW50OjppbnZhbGlkYXRlU3R5bGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjppbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50ZXJuYWwpOgorCisgICAgICAgICAgICBBZGQg
ImludGVybmFsIiB2ZXJzaW9ucyB0aGF0IGRvbid0IGludmFsaWRhdGUgc2libGluZ3MuIFRoZXNl
IGFyZSB1c2VkIGJ5IFN0eWxlSW52YWxpZGF0b3IgZm9yIGFjY3VyYXRlIGludmFsaWRhdGlvbi4K
KworICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogc3R5bGUvU3R5bGVJbnZhbGlk
YXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6SW52YWxpZGF0b3I6OmludmFsaWRh
dGVJZk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6SW52YWxpZGF0b3I6OmludmFs
aWRhdGVTdHlsZSk6CisKKyAgICAgICAgICAgIFVzZSBpbnRlcm5hbCBpbnZhbGlkYXRpb24gZnVu
Y3Rpb25zLgorCisgICAgICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6OnJlc2V0U3R5bGVGb3JOb25SZW5kZXJlZERlc2NlbmRhbnRzKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVDb21wb3NlZFRy
ZWUpOgorCisgICAgICAgICAgICBSZW1vdmUgc2libGluZyBpbnZhbGlkYXRpb24uCisKKyAgICAg
ICAgKiBzdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oOgorCiAyMDE4LTAyLTE0ICBEYW5pZWwgQmF0
ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhbGxvdyBjcm9zcy1vcmlnaW4g
c3VicmVzb3VyY2VzIGZyb20gYXNraW5nIGZvciBjcmVkZW50aWFscwpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAkocmV2aXNpb24gMjI4NDcwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDgxLDI0ICsxNDgxLDU0IEBAIEVsZW1lbnRTdHls
ZSBFbGVtZW50OjpyZXNvbHZlU3R5bGUoY29uc3QKICAgICByZXR1cm4gc3R5bGVSZXNvbHZlcigp
LnN0eWxlRm9yRWxlbWVudCgqdGhpcywgcGFyZW50U3R5bGUpOwogfQogCitzdGF0aWMgdm9pZCBp
bnZhbGlkYXRlU2libGluZ3NJZk5lZWRlZChFbGVtZW50JiBlbGVtZW50KQoreworICAgIGlmICgh
ZWxlbWVudC5hZmZlY3RzTmV4dFNpYmxpbmdFbGVtZW50U3R5bGUoKSkKKyAgICAgICAgcmV0dXJu
OworICAgIGF1dG8qIHBhcmVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudCgpOworICAgIGlmIChw
YXJlbnQgJiYgcGFyZW50LT5zdHlsZVZhbGlkaXR5KCkgPj0gU3R5bGU6OlZhbGlkaXR5OjpTdWJ0
cmVlSW52YWxpZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvKiBzaWJsaW5nID0g
ZWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmcoKTsgc2libGluZzsgc2libGluZyA9IHNpYmxpbmct
Pm5leHRFbGVtZW50U2libGluZygpKSB7CisgICAgICAgIGlmIChzaWJsaW5nLT5zdHlsZUlzQWZm
ZWN0ZWRCeVByZXZpb3VzU2libGluZygpKQorICAgICAgICAgICAgc2libGluZy0+aW52YWxpZGF0
ZVN0eWxlRm9yU3VidHJlZUludGVybmFsKCk7CisgICAgICAgIGlmICghc2libGluZy0+YWZmZWN0
c05leHRTaWJsaW5nRWxlbWVudFN0eWxlKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQor
fQorCiB2b2lkIEVsZW1lbnQ6OmludmFsaWRhdGVTdHlsZSgpCiB7CiAgICAgTm9kZTo6aW52YWxp
ZGF0ZVN0eWxlKFN0eWxlOjpWYWxpZGl0eTo6RWxlbWVudEludmFsaWQpOworICAgIGludmFsaWRh
dGVTaWJsaW5nc0lmTmVlZGVkKCp0aGlzKTsKIH0KIAogdm9pZCBFbGVtZW50OjppbnZhbGlkYXRl
U3R5bGVBbmRMYXllckNvbXBvc2l0aW9uKCkKIHsKICAgICBOb2RlOjppbnZhbGlkYXRlU3R5bGUo
U3R5bGU6OlZhbGlkaXR5OjpFbGVtZW50SW52YWxpZCwgU3R5bGU6OkludmFsaWRhdGlvbk1vZGU6
OlJlY29tcG9zaXRlTGF5ZXIpOworICAgIGludmFsaWRhdGVTaWJsaW5nc0lmTmVlZGVkKCp0aGlz
KTsKIH0KIAogdm9pZCBFbGVtZW50OjppbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCkKIHsKICAg
ICBOb2RlOjppbnZhbGlkYXRlU3R5bGUoU3R5bGU6OlZhbGlkaXR5OjpTdWJ0cmVlSW52YWxpZCk7
CisgICAgaW52YWxpZGF0ZVNpYmxpbmdzSWZOZWVkZWQoKnRoaXMpOwogfQogCiB2b2lkIEVsZW1l
bnQ6OmludmFsaWRhdGVTdHlsZUFuZFJlbmRlcmVyc0ZvclN1YnRyZWUoKQogewogICAgIE5vZGU6
OmludmFsaWRhdGVTdHlsZShTdHlsZTo6VmFsaWRpdHk6OlN1YnRyZWVBbmRSZW5kZXJlcnNJbnZh
bGlkKTsKKyAgICBpbnZhbGlkYXRlU2libGluZ3NJZk5lZWRlZCgqdGhpcyk7Cit9CisKK3ZvaWQg
RWxlbWVudDo6aW52YWxpZGF0ZVN0eWxlSW50ZXJuYWwoKQoreworICAgIE5vZGU6OmludmFsaWRh
dGVTdHlsZShTdHlsZTo6VmFsaWRpdHk6OkVsZW1lbnRJbnZhbGlkKTsKK30KKwordm9pZCBFbGVt
ZW50OjppbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50ZXJuYWwoKQoreworICAgIE5vZGU6Omlu
dmFsaWRhdGVTdHlsZShTdHlsZTo6VmFsaWRpdHk6OlN1YnRyZWVJbnZhbGlkKTsKIH0KIAogYm9v
bCBFbGVtZW50OjpoYXNEaXNwbGF5Q29udGVudHMoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5oCShyZXZpc2lvbiAyMjg0NzApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC01NDUsNiArNTQ1LDkgQEAgcHVibGljOgogICAgIC8vIEVsZW1lbnRz
IG5ld2x5IGFkZGVkIHRvIHRoZSB0cmVlIGFyZSBhbHNvIGluIHRoaXMgc3RhdGUuCiAgICAgdm9p
ZCBpbnZhbGlkYXRlU3R5bGVBbmRSZW5kZXJlcnNGb3JTdWJ0cmVlKCk7CiAKKyAgICB2b2lkIGlu
dmFsaWRhdGVTdHlsZUludGVybmFsKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlU3R5bGVGb3JTdWJ0
cmVlSW50ZXJuYWwoKTsKKwogICAgIGJvb2wgaGFzRGlzcGxheUNvbnRlbnRzKCkgY29uc3Q7CiAg
ICAgdm9pZCBzdG9yZURpc3BsYXlDb250ZW50c1N0eWxlKHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJT
dHlsZT4pOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmNw
cAkocmV2aXNpb24gMjI4NDcwKQorKysgU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlk
YXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsxMDMsNyBAQCBJbnZhbGlkYXRvcjo6
Q2hlY2tEZXNjZW5kYW50cyBJbnZhbGlkYXRvCiAgICAgaWYgKG1faGFzU2hhZG93UHNldWRvRWxl
bWVudFJ1bGVzSW5BdXRob3JTaGVldCkgewogICAgICAgICAvLyBGSVhNRTogVGhpcyBjb3VsZCBk
byBhY3R1YWwgcnVsZSBtYXRjaGluZyB0b28uCiAgICAgICAgIGlmIChlbGVtZW50LnNoYWRvd1Jv
b3QoKSkKLSAgICAgICAgICAgIGVsZW1lbnQuaW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOwor
ICAgICAgICAgICAgZWxlbWVudC5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50ZXJuYWwoKTsK
ICAgICB9CiAKICAgICBib29sIHNob3VsZENoZWNrRm9yU2xvdHMgPSAhbV9ydWxlU2V0LnNsb3R0
ZWRQc2V1ZG9FbGVtZW50UnVsZXMoKS5pc0VtcHR5KCkgJiYgIW1fZGlkSW52YWxpZGF0ZUhvc3RD
aGlsZHJlbjsKQEAgLTExMSw3ICsxMTEsNyBAQCBJbnZhbGlkYXRvcjo6Q2hlY2tEZXNjZW5kYW50
cyBJbnZhbGlkYXRvCiAgICAgICAgIGF1dG8qIGNvbnRhaW5pbmdTaGFkb3dSb290ID0gZWxlbWVu
dC5jb250YWluaW5nU2hhZG93Um9vdCgpOwogICAgICAgICBpZiAoY29udGFpbmluZ1NoYWRvd1Jv
b3QgJiYgY29udGFpbmluZ1NoYWRvd1Jvb3QtPmhvc3QoKSkgewogICAgICAgICAgICAgZm9yIChh
dXRvJiBwb3NzaWJseVNsb3R0ZWQgOiBjaGlsZHJlbk9mVHlwZTxFbGVtZW50PigqY29udGFpbmlu
Z1NoYWRvd1Jvb3QtPmhvc3QoKSkpCi0gICAgICAgICAgICAgICAgcG9zc2libHlTbG90dGVkLmlu
dmFsaWRhdGVTdHlsZSgpOworICAgICAgICAgICAgICAgIHBvc3NpYmx5U2xvdHRlZC5pbnZhbGlk
YXRlU3R5bGVJbnRlcm5hbCgpOwogICAgICAgICB9CiAgICAgICAgIC8vIE5vIG5lZWQgdG8gZG8g
dGhpcyBhZ2Fpbi4KICAgICAgICAgbV9kaWRJbnZhbGlkYXRlSG9zdENoaWxkcmVuID0gdHJ1ZTsK
QEAgLTEyNCw3ICsxMjQsNyBAQCBJbnZhbGlkYXRvcjo6Q2hlY2tEZXNjZW5kYW50cyBJbnZhbGlk
YXRvCiAgICAgICAgIHJ1bGVDb2xsZWN0b3IubWF0Y2hBdXRob3JSdWxlcyhmYWxzZSk7CiAKICAg
ICAgICAgaWYgKHJ1bGVDb2xsZWN0b3IuaGFzTWF0Y2hlZFJ1bGVzKCkpCi0gICAgICAgICAgICBl
bGVtZW50LmludmFsaWRhdGVTdHlsZSgpOworICAgICAgICAgICAgZWxlbWVudC5pbnZhbGlkYXRl
U3R5bGVJbnRlcm5hbCgpOwogICAgICAgICByZXR1cm4gQ2hlY2tEZXNjZW5kYW50czo6WWVzOwog
ICAgIH0KICAgICBjYXNlIFN0eWxlOjpWYWxpZGl0eTo6RWxlbWVudEludmFsaWQ6CkBAIC0xOTMs
NyArMTkzLDcgQEAgdm9pZCBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZVN0eWxlKFNoYWRvdwogICAg
IEFTU0VSVCghbV9kaXJ0aWVzQWxsU3R5bGUpOwogCiAgICAgaWYgKCFtX3J1bGVTZXQuaG9zdFBz
ZXVkb0NsYXNzUnVsZXMoKS5pc0VtcHR5KCkgJiYgc2hhZG93Um9vdC5ob3N0KCkpCi0gICAgICAg
IHNoYWRvd1Jvb3QuaG9zdCgpLT5pbnZhbGlkYXRlU3R5bGUoKTsKKyAgICAgICAgc2hhZG93Um9v
dC5ob3N0KCktPmludmFsaWRhdGVTdHlsZUludGVybmFsKCk7CiAKICAgICBmb3IgKGF1dG8mIGNo
aWxkIDogY2hpbGRyZW5PZlR5cGU8RWxlbWVudD4oc2hhZG93Um9vdCkpIHsKICAgICAgICAgU2Vs
ZWN0b3JGaWx0ZXIgZmlsdGVyOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVl
UmVzb2x2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJl
ZVJlc29sdmVyLmNwcAkocmV2aXNpb24gMjI4NDcwKQorKysgU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVUcmVlUmVzb2x2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsMTQgKzEzNyw4IEBA
IHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gVHJlZVJlc29sdmUKIAogc3RhdGljIHZvaWQg
cmVzZXRTdHlsZUZvck5vblJlbmRlcmVkRGVzY2VuZGFudHMoRWxlbWVudCYgY3VycmVudCkKIHsK
LSAgICAvLyBGSVhNRTogVGhpcyBpcyBub3QgY29ycmVjdCB3aXRoIHNoYWRvdyB0cmVlcy4gVGhp
cyBzaG91bGQgYmUgZG9uZSB3aXRoIENvbXBvc2VkVHJlZUl0ZXJhdG9yLgotICAgIGJvb2wgZWxl
bWVudE5lZWRpbmdTdHlsZVJlY2FsY0FmZmVjdHNOZXh0U2libGluZ0VsZW1lbnRTdHlsZSA9IGZh
bHNlOwogICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxFbGVtZW50PihjdXJy
ZW50KSkgewotICAgICAgICBib29sIGFmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmcgPSBjaGlsZC5z
dHlsZUlzQWZmZWN0ZWRCeVByZXZpb3VzU2libGluZygpICYmIGVsZW1lbnROZWVkaW5nU3R5bGVS
ZWNhbGNBZmZlY3RzTmV4dFNpYmxpbmdFbGVtZW50U3R5bGU7Ci0gICAgICAgIGlmIChjaGlsZC5u
ZWVkc1N0eWxlUmVjYWxjKCkgfHwgZWxlbWVudE5lZWRpbmdTdHlsZVJlY2FsY0FmZmVjdHNOZXh0
U2libGluZ0VsZW1lbnRTdHlsZSkKLSAgICAgICAgICAgIGVsZW1lbnROZWVkaW5nU3R5bGVSZWNh
bGNBZmZlY3RzTmV4dFNpYmxpbmdFbGVtZW50U3R5bGUgPSBjaGlsZC5hZmZlY3RzTmV4dFNpYmxp
bmdFbGVtZW50U3R5bGUoKTsKLQotICAgICAgICBpZiAoY2hpbGQubmVlZHNTdHlsZVJlY2FsYygp
IHx8IGFmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmcpIHsKKyAgICAgICAgaWYgKGNoaWxkLm5lZWRz
U3R5bGVSZWNhbGMoKSkgewogICAgICAgICAgICAgY2hpbGQucmVzZXRDb21wdXRlZFN0eWxlKCk7
CiAgICAgICAgICAgICBjaGlsZC5yZXNldFN0eWxlUmVsYXRpb25zKCk7CiAgICAgICAgICAgICBj
aGlsZC5zZXRIYXNWYWxpZFN0eWxlKCk7CkBAIC00NzEsMTYgKzQ2NSwxMSBAQCB2b2lkIFRyZWVS
ZXNvbHZlcjo6cmVzb2x2ZUNvbXBvc2VkVHJlZSgpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgfQogCi0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZGVhbCB3aXRoIHRoaXMgZHVy
aW5nIHN0eWxlIGludmFsaWRhdGlvbi4KLSAgICAgICAgYm9vbCBhZmZlY3RlZEJ5UHJldmlvdXNT
aWJsaW5nID0gZWxlbWVudC5zdHlsZUlzQWZmZWN0ZWRCeVByZXZpb3VzU2libGluZygpICYmIHBh
cmVudC5lbGVtZW50TmVlZGluZ1N0eWxlUmVjYWxjQWZmZWN0c05leHRTaWJsaW5nRWxlbWVudFN0
eWxlOwotICAgICAgICBpZiAoZWxlbWVudC5uZWVkc1N0eWxlUmVjYWxjKCkgfHwgcGFyZW50LmVs
ZW1lbnROZWVkaW5nU3R5bGVSZWNhbGNBZmZlY3RzTmV4dFNpYmxpbmdFbGVtZW50U3R5bGUpCi0g
ICAgICAgICAgICBwYXJlbnQuZWxlbWVudE5lZWRpbmdTdHlsZVJlY2FsY0FmZmVjdHNOZXh0U2li
bGluZ0VsZW1lbnRTdHlsZSA9IGVsZW1lbnQuYWZmZWN0c05leHRTaWJsaW5nRWxlbWVudFN0eWxl
KCk7Ci0KICAgICAgICAgYXV0byogc3R5bGUgPSByZW5kZXJPckRpc3BsYXlDb250ZW50c1N0eWxl
KGVsZW1lbnQpOwogICAgICAgICBhdXRvIGNoYW5nZSA9IE5vQ2hhbmdlOwogICAgICAgICBhdXRv
IGRlc2NlbmRhbnRzVG9SZXNvbHZlID0gRGVzY2VuZGFudHNUb1Jlc29sdmU6Ok5vbmU7CiAKLSAg
ICAgICAgYm9vbCBzaG91bGRSZXNvbHZlID0gc2hvdWxkUmVzb2x2ZUVsZW1lbnQoZWxlbWVudCwg
cGFyZW50LmRlc2NlbmRhbnRzVG9SZXNvbHZlKSB8fCBhZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5n
OworICAgICAgICBib29sIHNob3VsZFJlc29sdmUgPSBzaG91bGRSZXNvbHZlRWxlbWVudChlbGVt
ZW50LCBwYXJlbnQuZGVzY2VuZGFudHNUb1Jlc29sdmUpOwogICAgICAgICBpZiAoc2hvdWxkUmVz
b2x2ZSkgewogICAgICAgICAgICAgaWYgKCFlbGVtZW50Lmhhc0Rpc3BsYXlDb250ZW50cygpKQog
ICAgICAgICAgICAgICAgIGVsZW1lbnQucmVzZXRDb21wdXRlZFN0eWxlKCk7CkBAIC00OTgsOSAr
NDg3LDYgQEAgdm9pZCBUcmVlUmVzb2x2ZXI6OnJlc29sdmVDb21wb3NlZFRyZWUoKQogICAgICAg
ICAgICAgY2hhbmdlID0gZWxlbWVudFVwZGF0ZXMudXBkYXRlLmNoYW5nZTsKICAgICAgICAgICAg
IGRlc2NlbmRhbnRzVG9SZXNvbHZlID0gZWxlbWVudFVwZGF0ZXMuZGVzY2VuZGFudHNUb1Jlc29s
dmU7CiAKLSAgICAgICAgICAgIGlmIChhZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nKQotICAgICAg
ICAgICAgICAgIGRlc2NlbmRhbnRzVG9SZXNvbHZlID0gRGVzY2VuZGFudHNUb1Jlc29sdmU6OkFs
bDsKLQogICAgICAgICAgICAgaWYgKGVsZW1lbnRVcGRhdGVzLnVwZGF0ZS5zdHlsZSkKICAgICAg
ICAgICAgICAgICBtX3VwZGF0ZS0+YWRkRWxlbWVudChlbGVtZW50LCBwYXJlbnQuZWxlbWVudCwg
V1RGTW92ZShlbGVtZW50VXBkYXRlcykpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVRyZWVSZXNvbHZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlVHJlZVJlc29sdmVyLmgJKHJldmlzaW9uIDIyODQ3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDYgQEAg
cHJpdmF0ZToKICAgICAgICAgQ2hhbmdlIGNoYW5nZSB7IE5vQ2hhbmdlIH07CiAgICAgICAgIERl
c2NlbmRhbnRzVG9SZXNvbHZlIGRlc2NlbmRhbnRzVG9SZXNvbHZlIHsgRGVzY2VuZGFudHNUb1Jl
c29sdmU6Ok5vbmUgfTsKICAgICAgICAgYm9vbCBkaWRQdXNoU2NvcGUgeyBmYWxzZSB9OwotICAg
ICAgICBib29sIGVsZW1lbnROZWVkaW5nU3R5bGVSZWNhbGNBZmZlY3RzTmV4dFNpYmxpbmdFbGVt
ZW50U3R5bGUgeyBmYWxzZSB9OwogCiAgICAgICAgIFBhcmVudChEb2N1bWVudCYpOwogICAgICAg
ICBQYXJlbnQoRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgQ2hhbmdlLCBEZXNjZW5kYW50
c1RvUmVzb2x2ZSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjg0NzApCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxOC0wMi0xNCAgQW50
dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgRG8gc2libGluZyBpbnZh
bGlkYXRpb24gb24gbXV0YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4MjgwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFNpYmxpbmcgaW52YWxpZGF0aW9uIG5vdyBoYXBwZW5zIG9uIG11dGF0aW9u
LiBVcGRhdGUgdGhlIHRlc3RzLgorCisgICAgICAgICogZmFzdC9jc3MvaW5kaXJlY3QtYWRqYWNl
bnQtc3R5bGUtaW52YWxpZGF0aW9uLTEtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3Nz
L2luZGlyZWN0LWFkamFjZW50LXN0eWxlLWludmFsaWRhdGlvbi0xLmh0bWw6CisgICAgICAgICog
ZmFzdC9jc3MvaW5kaXJlY3QtYWRqYWNlbnQtc3R5bGUtaW52YWxpZGF0aW9uLTItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGZhc3QvY3NzL2luZGlyZWN0LWFkamFjZW50LXN0eWxlLWludmFsaWRh
dGlvbi0yLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvaW5kaXJlY3QtYWRqYWNlbnQtc3R5bGUt
aW52YWxpZGF0aW9uLTMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY3NzL2luZGlyZWN0
LWFkamFjZW50LXN0eWxlLWludmFsaWRhdGlvbi0zLmh0bWw6CisKIDIwMTgtMDItMTQgIFJ5YW4g
SGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9s
bGluZyBvdXQgcjIyODQ0NC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2luZGlyZWN0LWFk
amFjZW50LXN0eWxlLWludmFsaWRhdGlvbi0xLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2Nzcy9pbmRpcmVjdC1hZGphY2VudC1zdHlsZS1pbnZhbGlkYXRpb24t
MS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIyODQ3MCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3Nz
L2luZGlyZWN0LWFkamFjZW50LXN0eWxlLWludmFsaWRhdGlvbi0xLWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMTEsOCArMTEsOCBAQCBQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1l
bnQucXVlcnlTZWxlCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgidGFyZ2V0IilbMV0pLmNvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCiBQQVNTIHdpbmRvdy5p
bnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
LmFjdGl2YXRvciIpWzBdKSBpcyB0cnVlCiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRz
U3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFjdGl2YXRvciIpWzFdKSBp
cyB0cnVlCi1QQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMF0pIGlzIGZhbHNlCi1QQVNTIHdpbmRvdy5p
bnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgi
dGFyZ2V0IilbMV0pIGlzIGZhbHNlCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5
bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMF0pIGlzIHRydWUK
K1BBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVy
eVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVsxXSkgaXMgdHJ1ZQogUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzBdKS5jb2xvciBpcyAicmdiKDAs
IDEsIDIpIgogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
InRhcmdldCIpWzFdKS5jb2xvciBpcyAicmdiKDAsIDEsIDIpIgogUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hY3Rp
dmF0b3IiKVswXSkgaXMgZmFsc2UKQEAgLTIxLDggKzIxLDggQEAgUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLm5vZGVOZWVkc1N0eWxlUmVjYQogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0
eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzFdKSBpcyBmYWxz
ZQogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoIi5hY3RpdmF0b3IiKVswXSkgaXMgdHJ1ZQogUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5h
Y3RpdmF0b3IiKVsxXSkgaXMgdHJ1ZQotUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0
eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzBdKSBpcyBmYWxz
ZQotUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzFdKSBpcyBmYWxzZQorUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdl
dCIpWzBdKSBpcyB0cnVlCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNh
bGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMV0pIGlzIHRydWUKIFBBU1Mg
Z2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVswXSku
Y29sb3IgaXMgInJnYigwLCAwLCAwKSIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVsxXSkuY29sb3IgaXMgInJnYigwLCAwLCAwKSIKIFBB
U1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCIuYWN0aXZhdG9yIilbMF0pIGlzIGZhbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy9pbmRpcmVjdC1hZGphY2VudC1zdHlsZS1pbnZhbGlkYXRpb24tMS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2luZGlyZWN0LWFkamFjZW50LXN0eWxlLWlu
dmFsaWRhdGlvbi0xLmh0bWwJKHJldmlzaW9uIDIyODQ3MCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
Y3NzL2luZGlyZWN0LWFkamFjZW50LXN0eWxlLWludmFsaWRhdGlvbi0xLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTQ5LDggKzQ5LDggQEAgZnVuY3Rpb24gc2hvdWxkTmVlZFN0eWxlUmVjYWxjKGV4
cGVjdGVkKQogICAgIHZhciB0ZXN0RnVuY3Rpb24gPSBleHBlY3RlZCA/IHNob3VsZEJlVHJ1ZSA6
IHNob3VsZEJlRmFsc2U7CiAgICAgdGVzdEZ1bmN0aW9uKCJ3aW5kb3cuaW50ZXJuYWxzLm5vZGVO
ZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuYWN0aXZhdG9yXCIp
WzBdKSIpOwogICAgIHRlc3RGdW5jdGlvbigid2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHls
ZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmFjdGl2YXRvclwiKVsxXSkiKTsK
LSAgICBzaG91bGRCZUZhbHNlKCJ3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxj
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJ0YXJnZXRcIilbMF0pIik7Ci0gICAgc2hvdWxk
QmVGYWxzZSgid2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKFwidGFyZ2V0XCIpWzFdKSIpOworICAgIHRlc3RGdW5jdGlvbigid2lu
ZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9y
QWxsKFwidGFyZ2V0XCIpWzBdKSIpOworICAgIHRlc3RGdW5jdGlvbigid2luZG93LmludGVybmFs
cy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwidGFyZ2V0
XCIpWzFdKSIpOwogfQogCiBmdW5jdGlvbiBzZXRJZChuYW1lKSB7CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2Nzcy9pbmRpcmVjdC1hZGphY2VudC1zdHlsZS1pbnZhbGlkYXRpb24tMi1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW5kaXJlY3QtYWRqYWNl
bnQtc3R5bGUtaW52YWxpZGF0aW9uLTItZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMjg0NzApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbmRpcmVjdC1hZGphY2VudC1zdHlsZS1pbnZhbGlkYXRp
b24tMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTExLDggKzExLDggQEAgUEFTUyBn
ZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZQogUEFTUyBnZXRDb21wdXRlZFN0eWxl
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzFdKS5jb2xvciBpcyAicmdiKDAs
IDAsIDApIgogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hY3RpdmF0b3IiKVswXSkgaXMgdHJ1ZQogUEFTUyB3aW5k
b3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoIi5hY3RpdmF0b3IiKVsxXSkgaXMgdHJ1ZQotUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVO
ZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzBdKSBp
cyBmYWxzZQotUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzFdKSBpcyBmYWxzZQorUEFTUyB3aW5kb3cu
aW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
InRhcmdldCIpWzBdKSBpcyB0cnVlCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5
bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMV0pIGlzIHRydWUK
IFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQi
KVswXSkuY29sb3IgaXMgInJnYigwLCAxLCAyKSIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVsxXSkuY29sb3IgaXMgInJnYigwLCAxLCAy
KSIKIFBBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCIuYWN0aXZhdG9yIilbMF0pIGlzIGZhbHNlCkBAIC0yMSw4ICsyMSw4
IEBAIFBBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2EKIFBBU1Mgd2luZG93
LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCJ0YXJnZXQiKVsxXSkgaXMgZmFsc2UKIFBBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNT
dHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYWN0aXZhdG9yIilbMF0pIGlz
IHRydWUKIFBBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yQWxsKCIuYWN0aXZhdG9yIilbMV0pIGlzIHRydWUKLVBBU1Mgd2luZG93
LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxs
KCJ0YXJnZXQiKVswXSkgaXMgZmFsc2UKLVBBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNT
dHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVsxXSkgaXMgZmFs
c2UKK1BBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVswXSkgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdl
dCIpWzFdKSBpcyB0cnVlCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgidGFyZ2V0IilbMF0pLmNvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCiBQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMV0pLmNvbG9y
IGlzICJyZ2IoMCwgMCwgMCkiCiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVS
ZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFjdGl2YXRvciIpWzBdKSBpcyBmYWxz
ZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW5kaXJlY3QtYWRqYWNlbnQtc3R5bGUtaW52
YWxpZGF0aW9uLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbmRp
cmVjdC1hZGphY2VudC1zdHlsZS1pbnZhbGlkYXRpb24tMi5odG1sCShyZXZpc2lvbiAyMjg0NzAp
CisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbmRpcmVjdC1hZGphY2VudC1zdHlsZS1pbnZhbGlk
YXRpb24tMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00OSw4ICs0OSw4IEBAIGZ1bmN0aW9uIHNo
b3VsZE5lZWRTdHlsZVJlY2FsYyhleHBlY3RlZCkKICAgICB2YXIgdGVzdEZ1bmN0aW9uID0gZXhw
ZWN0ZWQgPyBzaG91bGRCZVRydWUgOiBzaG91bGRCZUZhbHNlOwogICAgIHRlc3RGdW5jdGlvbigi
d2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKFwiLmFjdGl2YXRvclwiKVswXSkiKTsKICAgICB0ZXN0RnVuY3Rpb24oIndpbmRvdy5p
bnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChc
Ii5hY3RpdmF0b3JcIilbMV0pIik7Ci0gICAgc2hvdWxkQmVGYWxzZSgid2luZG93LmludGVybmFs
cy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwidGFyZ2V0
XCIpWzBdKSIpOwotICAgIHNob3VsZEJlRmFsc2UoIndpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRz
U3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInRhcmdldFwiKVsxXSkiKTsK
KyAgICB0ZXN0RnVuY3Rpb24oIndpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMo
ZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInRhcmdldFwiKVswXSkiKTsKKyAgICB0ZXN0RnVu
Y3Rpb24oIndpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbChcInRhcmdldFwiKVsxXSkiKTsKIH0KIAogZnVuY3Rpb24gc2V0SWQobmFt
ZSkgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW5kaXJlY3QtYWRqYWNlbnQtc3R5bGUt
aW52YWxpZGF0aW9uLTMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvY3NzL2luZGlyZWN0LWFkamFjZW50LXN0eWxlLWludmFsaWRhdGlvbi0zLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMjI4NDcwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW5kaXJlY3QtYWRq
YWNlbnQtc3R5bGUtaW52YWxpZGF0aW9uLTMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xMSw4ICsxMSw4IEBAIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGUK
IFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQi
KVsxXSkuY29sb3IgaXMgInJnYigwLCAwLCAwKSIKIFBBU1Mgd2luZG93LmludGVybmFscy5ub2Rl
TmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYWN0aXZhdG9yIilb
MF0pIGlzIHRydWUKIFBBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYWN0aXZhdG9yIilbMV0pIGlzIHRydWUKLVBBU1Mg
d2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVj
dG9yQWxsKCJ0YXJnZXQiKVswXSkgaXMgZmFsc2UKLVBBU1Mgd2luZG93LmludGVybmFscy5ub2Rl
TmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVsxXSkg
aXMgZmFsc2UKK1BBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVswXSkgaXMgdHJ1ZQorUEFTUyB3aW5kb3cu
aW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
InRhcmdldCIpWzFdKSBpcyB0cnVlCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMF0pLmNvbG9yIGlzICJyZ2IoMCwgMSwgMikiCiBQQVNT
IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMV0p
LmNvbG9yIGlzICJyZ2IoMCwgMSwgMikiCiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRz
U3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFjdGl2YXRvciIpWzBdKSBp
cyBmYWxzZQpAQCAtMjEsOCArMjEsOCBAQCBQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRz
U3R5bGVSZWNhCiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMV0pIGlzIGZhbHNlCiBQQVNTIHdpbmRv
dy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgiLmFjdGl2YXRvciIpWzBdKSBpcyB0cnVlCiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5l
ZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFjdGl2YXRvciIpWzFd
KSBpcyB0cnVlCi1QQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9j
dW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMF0pIGlzIGZhbHNlCi1QQVNTIHdpbmRv
dy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgidGFyZ2V0IilbMV0pIGlzIGZhbHNlCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRz
U3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMF0pIGlzIHRy
dWUKK1BBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVsxXSkgaXMgdHJ1ZQogUEFTUyBnZXRDb21wdXRlZFN0
eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzBdKS5jb2xvciBpcyAicmdi
KDAsIDAsIDApIgogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoInRhcmdldCIpWzFdKS5jb2xvciBpcyAicmdiKDAsIDAsIDApIgogUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5h
Y3RpdmF0b3IiKVswXSkgaXMgZmFsc2UKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2luZGly
ZWN0LWFkamFjZW50LXN0eWxlLWludmFsaWRhdGlvbi0zLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9jc3MvaW5kaXJlY3QtYWRqYWNlbnQtc3R5bGUtaW52YWxpZGF0aW9uLTMu
aHRtbAkocmV2aXNpb24gMjI4NDcwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW5kaXJlY3Qt
YWRqYWNlbnQtc3R5bGUtaW52YWxpZGF0aW9uLTMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDks
OCArNDksOCBAQCBmdW5jdGlvbiBzaG91bGROZWVkU3R5bGVSZWNhbGMoZXhwZWN0ZWQpCiAgICAg
dmFyIHRlc3RGdW5jdGlvbiA9IGV4cGVjdGVkID8gc2hvdWxkQmVUcnVlIDogc2hvdWxkQmVGYWxz
ZTsKICAgICB0ZXN0RnVuY3Rpb24oIndpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNh
bGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5hY3RpdmF0b3JcIilbMF0pIik7CiAgICAg
dGVzdEZ1bmN0aW9uKCJ3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuYWN0aXZhdG9yXCIpWzFdKSIpOwotICAgIHNob3VsZEJl
RmFsc2UoIndpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbChcInRhcmdldFwiKVswXSkiKTsKLSAgICBzaG91bGRCZUZhbHNlKCJ3aW5k
b3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoXCJ0YXJnZXRcIilbMV0pIik7CisgICAgdGVzdEZ1bmN0aW9uKCJ3aW5kb3cuaW50ZXJuYWxz
Lm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJ0YXJnZXRc
IilbMF0pIik7CisgICAgdGVzdEZ1bmN0aW9uKCJ3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0
eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJ0YXJnZXRcIilbMV0pIik7CiB9
CiAKIGZ1bmN0aW9uIHNldElkKG5hbWUpIHsK
</data>
<flag name="review"
          id="352699"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>333857</attachid>
            <date>2018-02-14 16:26:16 -0800</date>
            <delta_ts>2018-02-14 17:27:57 -0800</delta_ts>
            <desc>patch</desc>
            <filename>sibling-invalidation-outside-resolve-5.patch</filename>
            <type>text/plain</type>
            <size>20941</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyODQ5MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDE4LTAyLTE0ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBEbyBzaWJsaW5nIGludmFsaWRh
dGlvbiBvbiBtdXRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgyODA5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgWmFsYW4gQnVqdGFzLgorCisg
ICAgICAgIFdlIHVzZWQgdG8gaW52YWxpZGF0ZSBzaWJsaW5ncyBmb3Igc2libGluZyBjb21iaW5h
dG9ycyBhbmQgbnRoLXBzZXVkbyBjbGFzc2VzIGR1cmluZyBzdHlsZSByZXNvbHV0aW9uIHRyZWUg
d2Fsay4KKyAgICAgICAgVGhpcyB3b3VsZCBjb25zaWRlciBhbnkgZWxlbWVudCB3aXRoIGludmFs
aWQgc3R5bGUgYSByZWFzb24gdG8gaW52YWxpZGF0ZSBzaWJsaW5ncyB0b28uIEhvd2V2ZXIgd2Ug
bm93IGRvCisgICAgICAgIGFjY3VyYXRlIGludmFsaWRhdGlvbiBvbiBjbGFzcyBhbmQgYXR0cmli
dXRlIGNoYW5nZXMgYW5kIHRoaXMgYXBwcm9hY2ggZW5kcyB1cCBpbnZhbGlkYXRpbmcgdG9vIG11
Y2guCisKKyAgICAgICAgVGhpcyBwYXRjaCBzaWJsaW5nIHN0eWxlIGludmFsaWRhdGlvbiB0byBt
dXRhdGlvbiB0aW1lIGFuZCByZW1vdmVzIGludmFsaWRhdGlvbiBjb2RlIGZyb20gc3R5bGUgcmVz
b2x1dGlvbiB0cmVlIHdhbGsuCisKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjppbnZhbGlkYXRlU2libGluZ3NJZk5lZWRlZCk6CisKKyAgICAgICAgICAgIEhl
bHBlciB0byBpbnZhbGlkYXRlIHNpYmxpbmdzLgorCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjppbnZhbGlkYXRlU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6aW52YWxpZGF0
ZVN0eWxlQW5kTGF5ZXJDb21wb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpp
bnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omlu
dmFsaWRhdGVTdHlsZUFuZFJlbmRlcmVyc0ZvclN1YnRyZWUpOgorCisgICAgICAgICAgICBJbnZh
bGlkYXRlIHNpYmxpbmdzIGlmIG5lZWRlZCBiYXNlZCBvbiBhZmZlY3RzTmV4dFNpYmxpbmcvYWZm
ZWN0ZWRCeVByZXZpb3VzU2libGluZyBiaXRzLgorCisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50
OjppbnZhbGlkYXRlU3R5bGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpp
bnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50ZXJuYWwpOgorCisgICAgICAgICAgICBBZGQgImlu
dGVybmFsIiB2ZXJzaW9ucyB0aGF0IGRvbid0IGludmFsaWRhdGUgc2libGluZ3MuIFRoZXNlIGFy
ZSB1c2VkIGJ5IFN0eWxlSW52YWxpZGF0b3IgZm9yIGFjY3VyYXRlIGludmFsaWRhdGlvbi4KKwor
ICAgICAgICAqIGRvbS9FbGVtZW50Lmg6CisgICAgICAgICogc3R5bGUvU3R5bGVJbnZhbGlkYXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6SW52YWxpZGF0b3I6OmludmFsaWRhdGVJ
Zk5lZWRlZCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6SW52YWxpZGF0b3I6OmludmFsaWRh
dGVTdHlsZSk6CisKKyAgICAgICAgICAgIFVzZSBpbnRlcm5hbCBpbnZhbGlkYXRpb24gZnVuY3Rp
b25zLgorCisgICAgICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OnJlc2V0U3R5bGVGb3JOb25SZW5kZXJlZERlc2NlbmRhbnRzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVDb21wb3NlZFRyZWUp
OgorCisgICAgICAgICAgICBSZW1vdmUgc2libGluZyBpbnZhbGlkYXRpb24uCisKKyAgICAgICAg
KiBzdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oOgorCiAyMDE4LTAyLTE0ICBEYW5pZWwgQmF0ZXMg
IDxkYWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhbGxvdyBjcm9zcy1vcmlnaW4gc3Vi
cmVzb3VyY2VzIGZyb20gYXNraW5nIGZvciBjcmVkZW50aWFscwpJbmRleDogU291cmNlL1dlYkNv
cmUvZG9tL0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcAkocmV2aXNpb24gMjI4NDcwKQorKysgU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDgxLDI0ICsxNDgxLDU0IEBAIEVsZW1lbnRTdHlsZSBF
bGVtZW50OjpyZXNvbHZlU3R5bGUoY29uc3QKICAgICByZXR1cm4gc3R5bGVSZXNvbHZlcigpLnN0
eWxlRm9yRWxlbWVudCgqdGhpcywgcGFyZW50U3R5bGUpOwogfQogCitzdGF0aWMgdm9pZCBpbnZh
bGlkYXRlU2libGluZ3NJZk5lZWRlZChFbGVtZW50JiBlbGVtZW50KQoreworICAgIGlmICghZWxl
bWVudC5hZmZlY3RzTmV4dFNpYmxpbmdFbGVtZW50U3R5bGUoKSkKKyAgICAgICAgcmV0dXJuOwor
ICAgIGF1dG8qIHBhcmVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudCgpOworICAgIGlmIChwYXJl
bnQgJiYgcGFyZW50LT5zdHlsZVZhbGlkaXR5KCkgPj0gU3R5bGU6OlZhbGlkaXR5OjpTdWJ0cmVl
SW52YWxpZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgZm9yIChhdXRvKiBzaWJsaW5nID0gZWxl
bWVudC5uZXh0RWxlbWVudFNpYmxpbmcoKTsgc2libGluZzsgc2libGluZyA9IHNpYmxpbmctPm5l
eHRFbGVtZW50U2libGluZygpKSB7CisgICAgICAgIGlmIChzaWJsaW5nLT5zdHlsZUlzQWZmZWN0
ZWRCeVByZXZpb3VzU2libGluZygpKQorICAgICAgICAgICAgc2libGluZy0+aW52YWxpZGF0ZVN0
eWxlRm9yU3VidHJlZUludGVybmFsKCk7CisgICAgICAgIGlmICghc2libGluZy0+YWZmZWN0c05l
eHRTaWJsaW5nRWxlbWVudFN0eWxlKCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgfQorfQor
CiB2b2lkIEVsZW1lbnQ6OmludmFsaWRhdGVTdHlsZSgpCiB7CiAgICAgTm9kZTo6aW52YWxpZGF0
ZVN0eWxlKFN0eWxlOjpWYWxpZGl0eTo6RWxlbWVudEludmFsaWQpOworICAgIGludmFsaWRhdGVT
aWJsaW5nc0lmTmVlZGVkKCp0aGlzKTsKIH0KIAogdm9pZCBFbGVtZW50OjppbnZhbGlkYXRlU3R5
bGVBbmRMYXllckNvbXBvc2l0aW9uKCkKIHsKICAgICBOb2RlOjppbnZhbGlkYXRlU3R5bGUoU3R5
bGU6OlZhbGlkaXR5OjpFbGVtZW50SW52YWxpZCwgU3R5bGU6OkludmFsaWRhdGlvbk1vZGU6OlJl
Y29tcG9zaXRlTGF5ZXIpOworICAgIGludmFsaWRhdGVTaWJsaW5nc0lmTmVlZGVkKCp0aGlzKTsK
IH0KIAogdm9pZCBFbGVtZW50OjppbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCkKIHsKICAgICBO
b2RlOjppbnZhbGlkYXRlU3R5bGUoU3R5bGU6OlZhbGlkaXR5OjpTdWJ0cmVlSW52YWxpZCk7Cisg
ICAgaW52YWxpZGF0ZVNpYmxpbmdzSWZOZWVkZWQoKnRoaXMpOwogfQogCiB2b2lkIEVsZW1lbnQ6
OmludmFsaWRhdGVTdHlsZUFuZFJlbmRlcmVyc0ZvclN1YnRyZWUoKQogewogICAgIE5vZGU6Omlu
dmFsaWRhdGVTdHlsZShTdHlsZTo6VmFsaWRpdHk6OlN1YnRyZWVBbmRSZW5kZXJlcnNJbnZhbGlk
KTsKKyAgICBpbnZhbGlkYXRlU2libGluZ3NJZk5lZWRlZCgqdGhpcyk7Cit9CisKK3ZvaWQgRWxl
bWVudDo6aW52YWxpZGF0ZVN0eWxlSW50ZXJuYWwoKQoreworICAgIE5vZGU6OmludmFsaWRhdGVT
dHlsZShTdHlsZTo6VmFsaWRpdHk6OkVsZW1lbnRJbnZhbGlkKTsKK30KKwordm9pZCBFbGVtZW50
OjppbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50ZXJuYWwoKQoreworICAgIE5vZGU6OmludmFs
aWRhdGVTdHlsZShTdHlsZTo6VmFsaWRpdHk6OlN1YnRyZWVJbnZhbGlkKTsKIH0KIAogYm9vbCBF
bGVtZW50OjpoYXNEaXNwbGF5Q29udGVudHMoKSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5o
CShyZXZpc2lvbiAyMjg0NzApCisrKyBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NDUsNiArNTQ1LDkgQEAgcHVibGljOgogICAgIC8vIEVsZW1lbnRzIG5l
d2x5IGFkZGVkIHRvIHRoZSB0cmVlIGFyZSBhbHNvIGluIHRoaXMgc3RhdGUuCiAgICAgdm9pZCBp
bnZhbGlkYXRlU3R5bGVBbmRSZW5kZXJlcnNGb3JTdWJ0cmVlKCk7CiAKKyAgICB2b2lkIGludmFs
aWRhdGVTdHlsZUludGVybmFsKCk7CisgICAgdm9pZCBpbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVl
SW50ZXJuYWwoKTsKKwogICAgIGJvb2wgaGFzRGlzcGxheUNvbnRlbnRzKCkgY29uc3Q7CiAgICAg
dm9pZCBzdG9yZURpc3BsYXlDb250ZW50c1N0eWxlKHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHls
ZT4pOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmNwcAko
cmV2aXNpb24gMjI4NDcwKQorKysgU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw3ICsxMDMsNyBAQCBJbnZhbGlkYXRvcjo6Q2hl
Y2tEZXNjZW5kYW50cyBJbnZhbGlkYXRvCiAgICAgaWYgKG1faGFzU2hhZG93UHNldWRvRWxlbWVu
dFJ1bGVzSW5BdXRob3JTaGVldCkgewogICAgICAgICAvLyBGSVhNRTogVGhpcyBjb3VsZCBkbyBh
Y3R1YWwgcnVsZSBtYXRjaGluZyB0b28uCiAgICAgICAgIGlmIChlbGVtZW50LnNoYWRvd1Jvb3Qo
KSkKLSAgICAgICAgICAgIGVsZW1lbnQuaW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOworICAg
ICAgICAgICAgZWxlbWVudC5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50ZXJuYWwoKTsKICAg
ICB9CiAKICAgICBib29sIHNob3VsZENoZWNrRm9yU2xvdHMgPSAhbV9ydWxlU2V0LnNsb3R0ZWRQ
c2V1ZG9FbGVtZW50UnVsZXMoKS5pc0VtcHR5KCkgJiYgIW1fZGlkSW52YWxpZGF0ZUhvc3RDaGls
ZHJlbjsKQEAgLTExMSw3ICsxMTEsNyBAQCBJbnZhbGlkYXRvcjo6Q2hlY2tEZXNjZW5kYW50cyBJ
bnZhbGlkYXRvCiAgICAgICAgIGF1dG8qIGNvbnRhaW5pbmdTaGFkb3dSb290ID0gZWxlbWVudC5j
b250YWluaW5nU2hhZG93Um9vdCgpOwogICAgICAgICBpZiAoY29udGFpbmluZ1NoYWRvd1Jvb3Qg
JiYgY29udGFpbmluZ1NoYWRvd1Jvb3QtPmhvc3QoKSkgewogICAgICAgICAgICAgZm9yIChhdXRv
JiBwb3NzaWJseVNsb3R0ZWQgOiBjaGlsZHJlbk9mVHlwZTxFbGVtZW50PigqY29udGFpbmluZ1No
YWRvd1Jvb3QtPmhvc3QoKSkpCi0gICAgICAgICAgICAgICAgcG9zc2libHlTbG90dGVkLmludmFs
aWRhdGVTdHlsZSgpOworICAgICAgICAgICAgICAgIHBvc3NpYmx5U2xvdHRlZC5pbnZhbGlkYXRl
U3R5bGVJbnRlcm5hbCgpOwogICAgICAgICB9CiAgICAgICAgIC8vIE5vIG5lZWQgdG8gZG8gdGhp
cyBhZ2Fpbi4KICAgICAgICAgbV9kaWRJbnZhbGlkYXRlSG9zdENoaWxkcmVuID0gdHJ1ZTsKQEAg
LTEyNCw3ICsxMjQsNyBAQCBJbnZhbGlkYXRvcjo6Q2hlY2tEZXNjZW5kYW50cyBJbnZhbGlkYXRv
CiAgICAgICAgIHJ1bGVDb2xsZWN0b3IubWF0Y2hBdXRob3JSdWxlcyhmYWxzZSk7CiAKICAgICAg
ICAgaWYgKHJ1bGVDb2xsZWN0b3IuaGFzTWF0Y2hlZFJ1bGVzKCkpCi0gICAgICAgICAgICBlbGVt
ZW50LmludmFsaWRhdGVTdHlsZSgpOworICAgICAgICAgICAgZWxlbWVudC5pbnZhbGlkYXRlU3R5
bGVJbnRlcm5hbCgpOwogICAgICAgICByZXR1cm4gQ2hlY2tEZXNjZW5kYW50czo6WWVzOwogICAg
IH0KICAgICBjYXNlIFN0eWxlOjpWYWxpZGl0eTo6RWxlbWVudEludmFsaWQ6CkBAIC0xOTMsNyAr
MTkzLDcgQEAgdm9pZCBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZVN0eWxlKFNoYWRvdwogICAgIEFT
U0VSVCghbV9kaXJ0aWVzQWxsU3R5bGUpOwogCiAgICAgaWYgKCFtX3J1bGVTZXQuaG9zdFBzZXVk
b0NsYXNzUnVsZXMoKS5pc0VtcHR5KCkgJiYgc2hhZG93Um9vdC5ob3N0KCkpCi0gICAgICAgIHNo
YWRvd1Jvb3QuaG9zdCgpLT5pbnZhbGlkYXRlU3R5bGUoKTsKKyAgICAgICAgc2hhZG93Um9vdC5o
b3N0KCktPmludmFsaWRhdGVTdHlsZUludGVybmFsKCk7CiAKICAgICBmb3IgKGF1dG8mIGNoaWxk
IDogY2hpbGRyZW5PZlR5cGU8RWxlbWVudD4oc2hhZG93Um9vdCkpIHsKICAgICAgICAgU2VsZWN0
b3JGaWx0ZXIgZmlsdGVyOwpJbmRleDogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVz
b2x2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJl
c29sdmVyLmNwcAkocmV2aXNpb24gMjI4NDcwKQorKysgU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVUcmVlUmVzb2x2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsMTQgKzEzNyw4IEBAIHN0
ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gVHJlZVJlc29sdmUKIAogc3RhdGljIHZvaWQgcmVz
ZXRTdHlsZUZvck5vblJlbmRlcmVkRGVzY2VuZGFudHMoRWxlbWVudCYgY3VycmVudCkKIHsKLSAg
ICAvLyBGSVhNRTogVGhpcyBpcyBub3QgY29ycmVjdCB3aXRoIHNoYWRvdyB0cmVlcy4gVGhpcyBz
aG91bGQgYmUgZG9uZSB3aXRoIENvbXBvc2VkVHJlZUl0ZXJhdG9yLgotICAgIGJvb2wgZWxlbWVu
dE5lZWRpbmdTdHlsZVJlY2FsY0FmZmVjdHNOZXh0U2libGluZ0VsZW1lbnRTdHlsZSA9IGZhbHNl
OwogICAgIGZvciAoYXV0byYgY2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxFbGVtZW50PihjdXJyZW50
KSkgewotICAgICAgICBib29sIGFmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmcgPSBjaGlsZC5zdHls
ZUlzQWZmZWN0ZWRCeVByZXZpb3VzU2libGluZygpICYmIGVsZW1lbnROZWVkaW5nU3R5bGVSZWNh
bGNBZmZlY3RzTmV4dFNpYmxpbmdFbGVtZW50U3R5bGU7Ci0gICAgICAgIGlmIChjaGlsZC5uZWVk
c1N0eWxlUmVjYWxjKCkgfHwgZWxlbWVudE5lZWRpbmdTdHlsZVJlY2FsY0FmZmVjdHNOZXh0U2li
bGluZ0VsZW1lbnRTdHlsZSkKLSAgICAgICAgICAgIGVsZW1lbnROZWVkaW5nU3R5bGVSZWNhbGNB
ZmZlY3RzTmV4dFNpYmxpbmdFbGVtZW50U3R5bGUgPSBjaGlsZC5hZmZlY3RzTmV4dFNpYmxpbmdF
bGVtZW50U3R5bGUoKTsKLQotICAgICAgICBpZiAoY2hpbGQubmVlZHNTdHlsZVJlY2FsYygpIHx8
IGFmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmcpIHsKKyAgICAgICAgaWYgKGNoaWxkLm5lZWRzU3R5
bGVSZWNhbGMoKSkgewogICAgICAgICAgICAgY2hpbGQucmVzZXRDb21wdXRlZFN0eWxlKCk7CiAg
ICAgICAgICAgICBjaGlsZC5yZXNldFN0eWxlUmVsYXRpb25zKCk7CiAgICAgICAgICAgICBjaGls
ZC5zZXRIYXNWYWxpZFN0eWxlKCk7CkBAIC00NzEsMTYgKzQ2NSwxMSBAQCB2b2lkIFRyZWVSZXNv
bHZlcjo6cmVzb2x2ZUNvbXBvc2VkVHJlZSgpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgfQogCi0gICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgZGVhbCB3aXRoIHRoaXMgZHVyaW5n
IHN0eWxlIGludmFsaWRhdGlvbi4KLSAgICAgICAgYm9vbCBhZmZlY3RlZEJ5UHJldmlvdXNTaWJs
aW5nID0gZWxlbWVudC5zdHlsZUlzQWZmZWN0ZWRCeVByZXZpb3VzU2libGluZygpICYmIHBhcmVu
dC5lbGVtZW50TmVlZGluZ1N0eWxlUmVjYWxjQWZmZWN0c05leHRTaWJsaW5nRWxlbWVudFN0eWxl
OwotICAgICAgICBpZiAoZWxlbWVudC5uZWVkc1N0eWxlUmVjYWxjKCkgfHwgcGFyZW50LmVsZW1l
bnROZWVkaW5nU3R5bGVSZWNhbGNBZmZlY3RzTmV4dFNpYmxpbmdFbGVtZW50U3R5bGUpCi0gICAg
ICAgICAgICBwYXJlbnQuZWxlbWVudE5lZWRpbmdTdHlsZVJlY2FsY0FmZmVjdHNOZXh0U2libGlu
Z0VsZW1lbnRTdHlsZSA9IGVsZW1lbnQuYWZmZWN0c05leHRTaWJsaW5nRWxlbWVudFN0eWxlKCk7
Ci0KICAgICAgICAgYXV0byogc3R5bGUgPSByZW5kZXJPckRpc3BsYXlDb250ZW50c1N0eWxlKGVs
ZW1lbnQpOwogICAgICAgICBhdXRvIGNoYW5nZSA9IE5vQ2hhbmdlOwogICAgICAgICBhdXRvIGRl
c2NlbmRhbnRzVG9SZXNvbHZlID0gRGVzY2VuZGFudHNUb1Jlc29sdmU6Ok5vbmU7CiAKLSAgICAg
ICAgYm9vbCBzaG91bGRSZXNvbHZlID0gc2hvdWxkUmVzb2x2ZUVsZW1lbnQoZWxlbWVudCwgcGFy
ZW50LmRlc2NlbmRhbnRzVG9SZXNvbHZlKSB8fCBhZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nOwor
ICAgICAgICBib29sIHNob3VsZFJlc29sdmUgPSBzaG91bGRSZXNvbHZlRWxlbWVudChlbGVtZW50
LCBwYXJlbnQuZGVzY2VuZGFudHNUb1Jlc29sdmUpOwogICAgICAgICBpZiAoc2hvdWxkUmVzb2x2
ZSkgewogICAgICAgICAgICAgaWYgKCFlbGVtZW50Lmhhc0Rpc3BsYXlDb250ZW50cygpKQogICAg
ICAgICAgICAgICAgIGVsZW1lbnQucmVzZXRDb21wdXRlZFN0eWxlKCk7CkBAIC00OTgsOSArNDg3
LDYgQEAgdm9pZCBUcmVlUmVzb2x2ZXI6OnJlc29sdmVDb21wb3NlZFRyZWUoKQogICAgICAgICAg
ICAgY2hhbmdlID0gZWxlbWVudFVwZGF0ZXMudXBkYXRlLmNoYW5nZTsKICAgICAgICAgICAgIGRl
c2NlbmRhbnRzVG9SZXNvbHZlID0gZWxlbWVudFVwZGF0ZXMuZGVzY2VuZGFudHNUb1Jlc29sdmU7
CiAKLSAgICAgICAgICAgIGlmIChhZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nKQotICAgICAgICAg
ICAgICAgIGRlc2NlbmRhbnRzVG9SZXNvbHZlID0gRGVzY2VuZGFudHNUb1Jlc29sdmU6OkFsbDsK
LQogICAgICAgICAgICAgaWYgKGVsZW1lbnRVcGRhdGVzLnVwZGF0ZS5zdHlsZSkKICAgICAgICAg
ICAgICAgICBtX3VwZGF0ZS0+YWRkRWxlbWVudChlbGVtZW50LCBwYXJlbnQuZWxlbWVudCwgV1RG
TW92ZShlbGVtZW50VXBkYXRlcykpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVRyZWVSZXNvbHZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
VHJlZVJlc29sdmVyLmgJKHJldmlzaW9uIDIyODQ3MCkKKysrIFNvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlVHJlZVJlc29sdmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDcgKzc5LDYgQEAgcHJp
dmF0ZToKICAgICAgICAgQ2hhbmdlIGNoYW5nZSB7IE5vQ2hhbmdlIH07CiAgICAgICAgIERlc2Nl
bmRhbnRzVG9SZXNvbHZlIGRlc2NlbmRhbnRzVG9SZXNvbHZlIHsgRGVzY2VuZGFudHNUb1Jlc29s
dmU6Ok5vbmUgfTsKICAgICAgICAgYm9vbCBkaWRQdXNoU2NvcGUgeyBmYWxzZSB9OwotICAgICAg
ICBib29sIGVsZW1lbnROZWVkaW5nU3R5bGVSZWNhbGNBZmZlY3RzTmV4dFNpYmxpbmdFbGVtZW50
U3R5bGUgeyBmYWxzZSB9OwogCiAgICAgICAgIFBhcmVudChEb2N1bWVudCYpOwogICAgICAgICBQ
YXJlbnQoRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgQ2hhbmdlLCBEZXNjZW5kYW50c1Rv
UmVzb2x2ZSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjg0NzApCisrKyBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAorMjAxOC0wMi0xNCAgQW50dGkg
S29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAgICAgICAgRG8gc2libGluZyBpbnZhbGlk
YXRpb24gb24gbXV0YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE4MjgwOQorCisgICAgICAgIFJldmlld2VkIGJ5IFphbGFuIEJ1anRhcy4KKwor
ICAgICAgICBTaWJsaW5nIGludmFsaWRhdGlvbiBub3cgaGFwcGVucyBvbiBtdXRhdGlvbi4gVXBk
YXRlIHRoZSB0ZXN0cy4KKworICAgICAgICAqIGZhc3QvY3NzL2luZGlyZWN0LWFkamFjZW50LXN0
eWxlLWludmFsaWRhdGlvbi0xLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9pbmRp
cmVjdC1hZGphY2VudC1zdHlsZS1pbnZhbGlkYXRpb24tMS5odG1sOgorICAgICAgICAqIGZhc3Qv
Y3NzL2luZGlyZWN0LWFkamFjZW50LXN0eWxlLWludmFsaWRhdGlvbi0yLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBmYXN0L2Nzcy9pbmRpcmVjdC1hZGphY2VudC1zdHlsZS1pbnZhbGlkYXRpb24t
Mi5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL2luZGlyZWN0LWFkamFjZW50LXN0eWxlLWludmFs
aWRhdGlvbi0zLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9pbmRpcmVjdC1hZGph
Y2VudC1zdHlsZS1pbnZhbGlkYXRpb24tMy5odG1sOgorCiAyMDE4LTAyLTE0ICBSeWFuIEhhZGRh
ZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIyMjg0NDQuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbmRpcmVjdC1hZGphY2Vu
dC1zdHlsZS1pbnZhbGlkYXRpb24tMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9jc3MvaW5kaXJlY3QtYWRqYWNlbnQtc3R5bGUtaW52YWxpZGF0aW9uLTEtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAyMjg0NzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbmRp
cmVjdC1hZGphY2VudC1zdHlsZS1pbnZhbGlkYXRpb24tMS1leHBlY3RlZC50eHQJKHdvcmtpbmcg
Y29weSkKQEAgLTExLDggKzExLDggQEAgUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1
ZXJ5U2VsZQogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwo
InRhcmdldCIpWzFdKS5jb2xvciBpcyAicmdiKDAsIDAsIDApIgogUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hY3Rp
dmF0b3IiKVswXSkgaXMgdHJ1ZQogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxl
UmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hY3RpdmF0b3IiKVsxXSkgaXMgdHJ1
ZQotUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzBdKSBpcyBmYWxzZQotUEFTUyB3aW5kb3cuaW50ZXJu
YWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdl
dCIpWzFdKSBpcyBmYWxzZQorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVj
YWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzBdKSBpcyB0cnVlCitQQVNT
IHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxl
Y3RvckFsbCgidGFyZ2V0IilbMV0pIGlzIHRydWUKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVswXSkuY29sb3IgaXMgInJnYigwLCAxLCAy
KSIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJn
ZXQiKVsxXSkuY29sb3IgaXMgInJnYigwLCAxLCAyKSIKIFBBU1Mgd2luZG93LmludGVybmFscy5u
b2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYWN0aXZhdG9y
IilbMF0pIGlzIGZhbHNlCkBAIC0yMSw4ICsyMSw4IEBAIFBBU1Mgd2luZG93LmludGVybmFscy5u
b2RlTmVlZHNTdHlsZVJlY2EKIFBBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJl
Y2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVsxXSkgaXMgZmFsc2UKIFBB
U1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCIuYWN0aXZhdG9yIilbMF0pIGlzIHRydWUKIFBBU1Mgd2luZG93LmludGVybmFs
cy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYWN0aXZh
dG9yIilbMV0pIGlzIHRydWUKLVBBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJl
Y2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVswXSkgaXMgZmFsc2UKLVBB
U1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNl
bGVjdG9yQWxsKCJ0YXJnZXQiKVsxXSkgaXMgZmFsc2UKK1BBU1Mgd2luZG93LmludGVybmFscy5u
b2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVsw
XSkgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzFdKSBpcyB0cnVlCiBQQVNTIGdldENv
bXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMF0pLmNvbG9y
IGlzICJyZ2IoMCwgMCwgMCkiCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgidGFyZ2V0IilbMV0pLmNvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCiBQQVNTIHdp
bmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3Rv
ckFsbCgiLmFjdGl2YXRvciIpWzBdKSBpcyBmYWxzZQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9j
c3MvaW5kaXJlY3QtYWRqYWNlbnQtc3R5bGUtaW52YWxpZGF0aW9uLTEuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbmRpcmVjdC1hZGphY2VudC1zdHlsZS1pbnZhbGlk
YXRpb24tMS5odG1sCShyZXZpc2lvbiAyMjg0NzApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9p
bmRpcmVjdC1hZGphY2VudC1zdHlsZS1pbnZhbGlkYXRpb24tMS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC00OSw4ICs0OSw4IEBAIGZ1bmN0aW9uIHNob3VsZE5lZWRTdHlsZVJlY2FsYyhleHBlY3Rl
ZCkKICAgICB2YXIgdGVzdEZ1bmN0aW9uID0gZXhwZWN0ZWQgPyBzaG91bGRCZVRydWUgOiBzaG91
bGRCZUZhbHNlOwogICAgIHRlc3RGdW5jdGlvbigid2luZG93LmludGVybmFscy5ub2RlTmVlZHNT
dHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLmFjdGl2YXRvclwiKVswXSki
KTsKICAgICB0ZXN0RnVuY3Rpb24oIndpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNh
bGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcIi5hY3RpdmF0b3JcIilbMV0pIik7Ci0gICAg
c2hvdWxkQmVGYWxzZSgid2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwidGFyZ2V0XCIpWzBdKSIpOwotICAgIHNob3VsZEJlRmFs
c2UoIndpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbChcInRhcmdldFwiKVsxXSkiKTsKKyAgICB0ZXN0RnVuY3Rpb24oIndpbmRvdy5p
bnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChc
InRhcmdldFwiKVswXSkiKTsKKyAgICB0ZXN0RnVuY3Rpb24oIndpbmRvdy5pbnRlcm5hbHMubm9k
ZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInRhcmdldFwiKVsx
XSkiKTsKIH0KIAogZnVuY3Rpb24gc2V0SWQobmFtZSkgewpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9jc3MvaW5kaXJlY3QtYWRqYWNlbnQtc3R5bGUtaW52YWxpZGF0aW9uLTItZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY3NzL2luZGlyZWN0LWFkamFjZW50LXN0
eWxlLWludmFsaWRhdGlvbi0yLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjI4NDcwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9jc3MvaW5kaXJlY3QtYWRqYWNlbnQtc3R5bGUtaW52YWxpZGF0aW9uLTIt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMSw4ICsxMSw4IEBAIFBBU1MgZ2V0Q29t
cHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGUKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVsxXSkuY29sb3IgaXMgInJnYigwLCAwLCAw
KSIKIFBBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCIuYWN0aXZhdG9yIilbMF0pIGlzIHRydWUKIFBBU1Mgd2luZG93Lmlu
dGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIu
YWN0aXZhdG9yIilbMV0pIGlzIHRydWUKLVBBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNT
dHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVswXSkgaXMgZmFs
c2UKLVBBU1Mgd2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVsxXSkgaXMgZmFsc2UKK1BBU1Mgd2luZG93LmludGVy
bmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJn
ZXQiKVswXSkgaXMgdHJ1ZQorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVj
YWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzFdKSBpcyB0cnVlCiBQQVNT
IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMF0p
LmNvbG9yIGlzICJyZ2IoMCwgMSwgMikiCiBQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMV0pLmNvbG9yIGlzICJyZ2IoMCwgMSwgMikiCiBQ
QVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgiLmFjdGl2YXRvciIpWzBdKSBpcyBmYWxzZQpAQCAtMjEsOCArMjEsOCBAQCBQ
QVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhCiBQQVNTIHdpbmRvdy5pbnRl
cm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFy
Z2V0IilbMV0pIGlzIGZhbHNlCiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVS
ZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFjdGl2YXRvciIpWzBdKSBpcyB0cnVl
CiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVl
cnlTZWxlY3RvckFsbCgiLmFjdGl2YXRvciIpWzFdKSBpcyB0cnVlCi1QQVNTIHdpbmRvdy5pbnRl
cm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFy
Z2V0IilbMF0pIGlzIGZhbHNlCi1QQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVS
ZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMV0pIGlzIGZhbHNlCitQ
QVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgidGFyZ2V0IilbMF0pIGlzIHRydWUKK1BBU1Mgd2luZG93LmludGVybmFscy5u
b2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVsx
XSkgaXMgdHJ1ZQogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JB
bGwoInRhcmdldCIpWzBdKS5jb2xvciBpcyAicmdiKDAsIDAsIDApIgogUEFTUyBnZXRDb21wdXRl
ZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzFdKS5jb2xvciBpcyAi
cmdiKDAsIDAsIDApIgogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxj
KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hY3RpdmF0b3IiKVswXSkgaXMgZmFsc2UKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2luZGlyZWN0LWFkamFjZW50LXN0eWxlLWludmFsaWRh
dGlvbi0yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW5kaXJlY3Qt
YWRqYWNlbnQtc3R5bGUtaW52YWxpZGF0aW9uLTIuaHRtbAkocmV2aXNpb24gMjI4NDcwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9jc3MvaW5kaXJlY3QtYWRqYWNlbnQtc3R5bGUtaW52YWxpZGF0aW9u
LTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDksOCArNDksOCBAQCBmdW5jdGlvbiBzaG91bGRO
ZWVkU3R5bGVSZWNhbGMoZXhwZWN0ZWQpCiAgICAgdmFyIHRlc3RGdW5jdGlvbiA9IGV4cGVjdGVk
ID8gc2hvdWxkQmVUcnVlIDogc2hvdWxkQmVGYWxzZTsKICAgICB0ZXN0RnVuY3Rpb24oIndpbmRv
dy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bChcIi5hY3RpdmF0b3JcIilbMF0pIik7CiAgICAgdGVzdEZ1bmN0aW9uKCJ3aW5kb3cuaW50ZXJu
YWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuYWN0
aXZhdG9yXCIpWzFdKSIpOwotICAgIHNob3VsZEJlRmFsc2UoIndpbmRvdy5pbnRlcm5hbHMubm9k
ZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcInRhcmdldFwiKVsw
XSkiKTsKLSAgICBzaG91bGRCZUZhbHNlKCJ3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxl
UmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJ0YXJnZXRcIilbMV0pIik7CisgICAg
dGVzdEZ1bmN0aW9uKCJ3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJ0YXJnZXRcIilbMF0pIik7CisgICAgdGVzdEZ1bmN0aW9u
KCJ3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoXCJ0YXJnZXRcIilbMV0pIik7CiB9CiAKIGZ1bmN0aW9uIHNldElkKG5hbWUpIHsK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvY3NzL2luZGlyZWN0LWFkamFjZW50LXN0eWxlLWludmFs
aWRhdGlvbi0zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9pbmRpcmVjdC1hZGphY2VudC1zdHlsZS1pbnZhbGlkYXRpb24tMy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDIyODQ3MCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2luZGlyZWN0LWFkamFjZW50
LXN0eWxlLWludmFsaWRhdGlvbi0zLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTEs
OCArMTEsOCBAQCBQQVNTIGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlCiBQQVNT
IGdldENvbXB1dGVkU3R5bGUoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMV0p
LmNvbG9yIGlzICJyZ2IoMCwgMCwgMCkiCiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRz
U3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmFjdGl2YXRvciIpWzBdKSBp
cyB0cnVlCiBQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1l
bnQucXVlcnlTZWxlY3RvckFsbCgiLmFjdGl2YXRvciIpWzFdKSBpcyB0cnVlCi1QQVNTIHdpbmRv
dy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFs
bCgidGFyZ2V0IilbMF0pIGlzIGZhbHNlCi1QQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRz
U3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMV0pIGlzIGZh
bHNlCitQQVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQu
cXVlcnlTZWxlY3RvckFsbCgidGFyZ2V0IilbMF0pIGlzIHRydWUKK1BBU1Mgd2luZG93LmludGVy
bmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJn
ZXQiKVsxXSkgaXMgdHJ1ZQogUEFTUyBnZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoInRhcmdldCIpWzBdKS5jb2xvciBpcyAicmdiKDAsIDEsIDIpIgogUEFTUyBnZXRD
b21wdXRlZFN0eWxlKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzFdKS5jb2xv
ciBpcyAicmdiKDAsIDEsIDIpIgogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxl
UmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hY3RpdmF0b3IiKVswXSkgaXMgZmFs
c2UKQEAgLTIxLDggKzIxLDggQEAgUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxl
UmVjYQogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzFdKSBpcyBmYWxzZQogUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5h
Y3RpdmF0b3IiKVswXSkgaXMgdHJ1ZQogUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0
eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5hY3RpdmF0b3IiKVsxXSkgaXMg
dHJ1ZQotUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzBdKSBpcyBmYWxzZQotUEFTUyB3aW5kb3cuaW50
ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRh
cmdldCIpWzFdKSBpcyBmYWxzZQorUEFTUyB3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxl
UmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoInRhcmdldCIpWzBdKSBpcyB0cnVlCitQ
QVNTIHdpbmRvdy5pbnRlcm5hbHMubm9kZU5lZWRzU3R5bGVSZWNhbGMoZG9jdW1lbnQucXVlcnlT
ZWxlY3RvckFsbCgidGFyZ2V0IilbMV0pIGlzIHRydWUKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShk
b2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0YXJnZXQiKVswXSkuY29sb3IgaXMgInJnYigwLCAw
LCAwKSIKIFBBU1MgZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCJ0
YXJnZXQiKVsxXSkuY29sb3IgaXMgInJnYigwLCAwLCAwKSIKIFBBU1Mgd2luZG93LmludGVybmFs
cy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYWN0aXZh
dG9yIilbMF0pIGlzIGZhbHNlCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbmRpcmVjdC1h
ZGphY2VudC1zdHlsZS1pbnZhbGlkYXRpb24tMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvY3NzL2luZGlyZWN0LWFkamFjZW50LXN0eWxlLWludmFsaWRhdGlvbi0zLmh0bWwJ
KHJldmlzaW9uIDIyODQ3MCkKKysrIExheW91dFRlc3RzL2Zhc3QvY3NzL2luZGlyZWN0LWFkamFj
ZW50LXN0eWxlLWludmFsaWRhdGlvbi0zLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDggKzQ5
LDggQEAgZnVuY3Rpb24gc2hvdWxkTmVlZFN0eWxlUmVjYWxjKGV4cGVjdGVkKQogICAgIHZhciB0
ZXN0RnVuY3Rpb24gPSBleHBlY3RlZCA/IHNob3VsZEJlVHJ1ZSA6IHNob3VsZEJlRmFsc2U7CiAg
ICAgdGVzdEZ1bmN0aW9uKCJ3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIuYWN0aXZhdG9yXCIpWzBdKSIpOwogICAgIHRlc3RG
dW5jdGlvbigid2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5x
dWVyeVNlbGVjdG9yQWxsKFwiLmFjdGl2YXRvclwiKVsxXSkiKTsKLSAgICBzaG91bGRCZUZhbHNl
KCJ3aW5kb3cuaW50ZXJuYWxzLm5vZGVOZWVkc1N0eWxlUmVjYWxjKGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3JBbGwoXCJ0YXJnZXRcIilbMF0pIik7Ci0gICAgc2hvdWxkQmVGYWxzZSgid2luZG93Lmlu
dGVybmFscy5ub2RlTmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwi
dGFyZ2V0XCIpWzFdKSIpOworICAgIHRlc3RGdW5jdGlvbigid2luZG93LmludGVybmFscy5ub2Rl
TmVlZHNTdHlsZVJlY2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwidGFyZ2V0XCIpWzBd
KSIpOworICAgIHRlc3RGdW5jdGlvbigid2luZG93LmludGVybmFscy5ub2RlTmVlZHNTdHlsZVJl
Y2FsYyhkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwidGFyZ2V0XCIpWzFdKSIpOwogfQogCiBm
dW5jdGlvbiBzZXRJZChuYW1lKSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>