<?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>205644</bug_id>
          
          <creation_ts>2019-12-30 06:30:56 -0800</creation_ts>
          <short_desc>Style invalidation cleanups</short_desc>
          <delta_ts>2019-12-30 12:21:55 -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>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1601858</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-30 06:30:56 -0800</bug_when>
    <thetext>Move invalidation code from Style::Scope to Invalidator.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601859</commentid>
    <comment_count>1</comment_count>
      <attachid>386528</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-30 06:31:18 -0800</bug_when>
    <thetext>Created attachment 386528
wip</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601869</commentid>
    <comment_count>2</comment_count>
      <attachid>386532</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-30 07:08:41 -0800</bug_when>
    <thetext>Created attachment 386532
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601870</commentid>
    <comment_count>3</comment_count>
      <attachid>386533</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-30 07:20:00 -0800</bug_when>
    <thetext>Created attachment 386533
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601905</commentid>
    <comment_count>4</comment_count>
      <attachid>386533</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-30 12:17:02 -0800</bug_when>
    <thetext>Comment on attachment 386533
patch

Clearing flags on attachment: 386533

Committed r253949: &lt;https://trac.webkit.org/changeset/253949&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601906</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-30 12:17:03 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601907</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-30 12:21:55 -0800</bug_when>
    <thetext>&lt;rdar://problem/58245831&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386528</attachid>
            <date>2019-12-30 06:31:18 -0800</date>
            <delta_ts>2019-12-30 07:08:41 -0800</delta_ts>
            <desc>wip</desc>
            <filename>scope-invalidation.patch</filename>
            <type>text/plain</type>
            <size>11848</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0b3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHAKaW5kZXggZDY3MjU2ODgw
NTIuLmYyZThiNjAxYzVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUlu
dmFsaWRhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9y
LmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlNoYWRvd1Jvb3QuaCIKICNpbmNsdWRl
ICJTdHlsZVJlc29sdmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVSdWxlSW1wb3J0LmgiCisjaW5jbHVk
ZSAiU3R5bGVTY29wZS5oIgogI2luY2x1ZGUgIlN0eWxlU2NvcGVSdWxlU2V0cy5oIgogI2luY2x1
ZGUgIlN0eWxlU2hlZXRDb250ZW50cy5oIgogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgpA
QCAtMjEyLDYgKzIxMywyMSBAQCB2b2lkIEludmFsaWRhdG9yOjppbnZhbGlkYXRlU3R5bGUoRG9j
dW1lbnQmIGRvY3VtZW50KQogICAgIGludmFsaWRhdGVTdHlsZUZvclRyZWUoKmRvY3VtZW50RWxl
bWVudCwgJmZpbHRlcik7CiB9CiAKK3ZvaWQgSW52YWxpZGF0b3I6OmludmFsaWRhdGVTdHlsZShT
Y29wZSYgc2NvcGUpCit7CisgICAgaWYgKG1fZGlydGllc0FsbFN0eWxlKSB7CisgICAgICAgIGlu
dmFsaWRhdGVBbGxTdHlsZShzY29wZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBp
ZiAoYXV0byogc2hhZG93Um9vdCA9IHNjb3BlLnNoYWRvd1Jvb3QoKSkgeworICAgICAgICBpbnZh
bGlkYXRlU3R5bGUoKnNoYWRvd1Jvb3QpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
aW52YWxpZGF0ZVN0eWxlKHNjb3BlLmRvY3VtZW50KCkpOworfQorCiB2b2lkIEludmFsaWRhdG9y
OjppbnZhbGlkYXRlU3R5bGUoU2hhZG93Um9vdCYgc2hhZG93Um9vdCkKIHsKICAgICBBU1NFUlQo
IW1fZGlydGllc0FsbFN0eWxlKTsKQEAgLTMzNyw1ICszNTMsMzQgQEAgdm9pZCBJbnZhbGlkYXRv
cjo6aW52YWxpZGF0ZVdpdGhNYXRjaEVsZW1lbnRSdWxlU2V0cyhFbGVtZW50JiBlbGVtZW50LCBj
b25zdCBNYXQKICAgICB9CiB9CiAKK3ZvaWQgSW52YWxpZGF0b3I6OmludmFsaWRhdGVBbGxTdHls
ZShTY29wZSYgc2NvcGUpCit7CisgICAgaWYgKGF1dG8qIHNoYWRvd1Jvb3QgPSBzY29wZS5zaGFk
b3dSb290KCkpIHsKKyAgICAgICAgZm9yIChhdXRvJiBzaGFkb3dDaGlsZCA6IGNoaWxkcmVuT2ZU
eXBlPEVsZW1lbnQ+KCpzaGFkb3dSb290KSkKKyAgICAgICAgICAgIHNoYWRvd0NoaWxkLmludmFs
aWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKKyAgICAgICAgaW52YWxpZGF0ZUhvc3RBbmRTbG90dGVk
U3R5bGVJZk5lZWRlZCgqc2hhZG93Um9vdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBzY29wZS5kb2N1bWVudCgpLnNjaGVkdWxlRnVsbFN0eWxlUmVidWlsZCgpOworfQorCit2b2lk
IEludmFsaWRhdG9yOjppbnZhbGlkYXRlSG9zdEFuZFNsb3R0ZWRTdHlsZUlmTmVlZGVkKFNoYWRv
d1Jvb3QmIHNoYWRvd1Jvb3QpCit7CisgICAgYXV0byYgaG9zdCA9ICpzaGFkb3dSb290Lmhvc3Qo
KTsKKyAgICBhdXRvKiByZXNvbHZlciA9IHNoYWRvd1Jvb3Quc3R5bGVTY29wZSgpLnJlc29sdmVy
SWZFeGlzdHMoKTsKKyAgICBpZiAoIXJlc29sdmVyKQorICAgICAgICByZXR1cm47CisgICAgYXV0
byYgYXV0aG9yU3R5bGUgPSByZXNvbHZlci0+cnVsZVNldHMoKS5hdXRob3JTdHlsZSgpOworCisg
ICAgaWYgKCFhdXRob3JTdHlsZS5ob3N0UHNldWRvQ2xhc3NSdWxlcygpLmlzRW1wdHkoKSkKKyAg
ICAgICAgaG9zdC5pbnZhbGlkYXRlU3R5bGUoKTsKKworICAgIGlmICghYXV0aG9yU3R5bGUuc2xv
dHRlZFBzZXVkb0VsZW1lbnRSdWxlcygpLmlzRW1wdHkoKSkgeworICAgICAgICBmb3IgKGF1dG8m
IHNoYWRvd0NoaWxkIDogY2hpbGRyZW5PZlR5cGU8RWxlbWVudD4oaG9zdCkpCisgICAgICAgICAg
ICBzaGFkb3dDaGlsZC5pbnZhbGlkYXRlU3R5bGUoKTsKKyAgICB9Cit9CisKIH0KIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0b3IuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0b3IuaAppbmRleCBlODc1ZWE2NmY4OS4uMTZmODBk
ZmJlOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmgKQEAgLTM1LDYg
KzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRG9jdW1lbnQ7CiBjbGFzcyBFbGVt
ZW50OwogY2xhc3MgTWVkaWFRdWVyeUV2YWx1YXRvcjsKK2NsYXNzIFNjb3BlOwogY2xhc3MgU2Vs
ZWN0b3JGaWx0ZXI7CiBjbGFzcyBTaGFkb3dSb290OwogY2xhc3MgU3R5bGVTaGVldENvbnRlbnRz
OwpAQCAtNTIsNiArNTMsNyBAQCBwdWJsaWM6CiAKICAgICBib29sIGRpcnRpZXNBbGxTdHlsZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZGlydGllc0FsbFN0eWxlOyB9CiAgICAgdm9pZCBpbnZhbGlkYXRl
U3R5bGUoRG9jdW1lbnQmKTsKKyAgICB2b2lkIGludmFsaWRhdGVTdHlsZShTY29wZSYpOwogICAg
IHZvaWQgaW52YWxpZGF0ZVN0eWxlKFNoYWRvd1Jvb3QmKTsKICAgICB2b2lkIGludmFsaWRhdGVT
dHlsZShFbGVtZW50Jik7CiAKQEAgLTYwLDYgKzYyLDggQEAgcHVibGljOgogICAgIHVzaW5nIE1h
dGNoRWxlbWVudFJ1bGVTZXRzID0gSGFzaE1hcDxNYXRjaEVsZW1lbnQsIEludmFsaWRhdGlvblJ1
bGVTZXRWZWN0b3IsIFdURjo6SW50SGFzaDxNYXRjaEVsZW1lbnQ+LCBXVEY6OlN0cm9uZ0VudW1I
YXNoVHJhaXRzPE1hdGNoRWxlbWVudD4+OwogICAgIHN0YXRpYyB2b2lkIGFkZFRvTWF0Y2hFbGVt
ZW50UnVsZVNldHMoSW52YWxpZGF0b3I6Ok1hdGNoRWxlbWVudFJ1bGVTZXRzJiwgY29uc3QgSW52
YWxpZGF0aW9uUnVsZVNldCYpOwogICAgIHN0YXRpYyB2b2lkIGludmFsaWRhdGVXaXRoTWF0Y2hF
bGVtZW50UnVsZVNldHMoRWxlbWVudCYsIGNvbnN0IE1hdGNoRWxlbWVudFJ1bGVTZXRzJik7Cisg
ICAgc3RhdGljIHZvaWQgaW52YWxpZGF0ZUFsbFN0eWxlKFNjb3BlJik7CisgICAgc3RhdGljIHZv
aWQgaW52YWxpZGF0ZUhvc3RBbmRTbG90dGVkU3R5bGVJZk5lZWRlZChTaGFkb3dSb290Jik7CiAK
IHByaXZhdGU6CiAgICAgZW51bSBjbGFzcyBDaGVja0Rlc2NlbmRhbnRzIHsgWWVzLCBObyB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcAppbmRleCA5YWIyZGIwZjZiNy4uZjc0ZTgyMWM3
MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwCkBAIC0zODEsMzIgKzM4MSwyOSBA
QCB2b2lkIFNjb3BlOjpjb2xsZWN0QWN0aXZlU3R5bGVTaGVldHMoVmVjdG9yPFJlZlB0cjxTdHls
ZVNoZWV0Pj4mIHNoZWV0cykKICAgICB9CiB9CiAKLVNjb3BlOjpSZXNvbHZlclVwZGF0ZVR5cGUg
U2NvcGU6OmFuYWx5emVTdHlsZVNoZWV0Q2hhbmdlKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5
bGVTaGVldD4+JiBuZXdTdHlsZXNoZWV0cywgYm9vbCYgcmVxdWlyZXNGdWxsU3R5bGVSZWNhbGMp
CitTY29wZTo6U3R5bGVTaGVldENoYW5nZSBTY29wZTo6YW5hbHl6ZVN0eWxlU2hlZXRDaGFuZ2Uo
Y29uc3QgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4mIG5ld1N0eWxlc2hlZXRzKQogewot
ICAgIHJlcXVpcmVzRnVsbFN0eWxlUmVjYWxjID0gdHJ1ZTsKLSAgICAKICAgICB1bnNpZ25lZCBu
ZXdTdHlsZXNoZWV0Q291bnQgPSBuZXdTdHlsZXNoZWV0cy5zaXplKCk7CiAKICAgICBpZiAoIXJl
c29sdmVySWZFeGlzdHMoKSkKLSAgICAgICAgcmV0dXJuIFJlY29uc3RydWN0OwotCi0gICAgYXV0
byYgc3R5bGVSZXNvbHZlciA9ICpyZXNvbHZlcklmRXhpc3RzKCk7CisgICAgICAgIHJldHVybiB7
IFJlY29uc3RydWN0IH07CiAKICAgICAvLyBGaW5kIG91dCB3aGljaCBzdHlsZXNoZWV0cyBhcmUg
bmV3LgogICAgIHVuc2lnbmVkIG9sZFN0eWxlc2hlZXRDb3VudCA9IG1fYWN0aXZlU3R5bGVTaGVl
dHMuc2l6ZSgpOwogICAgIGlmIChuZXdTdHlsZXNoZWV0Q291bnQgPCBvbGRTdHlsZXNoZWV0Q291
bnQpCi0gICAgICAgIHJldHVybiBSZWNvbnN0cnVjdDsKKyAgICAgICAgcmV0dXJuIHsgUmVjb25z
dHJ1Y3QgfTsKIAogICAgIFZlY3RvcjxTdHlsZVNoZWV0Q29udGVudHMqPiBhZGRlZFNoZWV0czsK
ICAgICB1bnNpZ25lZCBuZXdJbmRleCA9IDA7CiAgICAgZm9yICh1bnNpZ25lZCBvbGRJbmRleCA9
IDA7IG9sZEluZGV4IDwgb2xkU3R5bGVzaGVldENvdW50OyArK29sZEluZGV4KSB7CiAgICAgICAg
IGlmIChuZXdJbmRleCA+PSBuZXdTdHlsZXNoZWV0Q291bnQpCi0gICAgICAgICAgICByZXR1cm4g
UmVjb25zdHJ1Y3Q7CisgICAgICAgICAgICByZXR1cm4geyBSZWNvbnN0cnVjdCB9OworCiAgICAg
ICAgIHdoaWxlIChtX2FjdGl2ZVN0eWxlU2hlZXRzW29sZEluZGV4XSAhPSBuZXdTdHlsZXNoZWV0
c1tuZXdJbmRleF0pIHsKICAgICAgICAgICAgIGFkZGVkU2hlZXRzLmFwcGVuZCgmbmV3U3R5bGVz
aGVldHNbbmV3SW5kZXhdLT5jb250ZW50cygpKTsKICAgICAgICAgICAgICsrbmV3SW5kZXg7CiAg
ICAgICAgICAgICBpZiAobmV3SW5kZXggPT0gbmV3U3R5bGVzaGVldENvdW50KQotICAgICAgICAg
ICAgICAgIHJldHVybiBSZWNvbnN0cnVjdDsKKyAgICAgICAgICAgICAgICByZXR1cm4geyBSZWNv
bnN0cnVjdCB9OwogICAgICAgICB9CiAgICAgICAgICsrbmV3SW5kZXg7CiAgICAgfQpAQCAtNDE1
LDI2ICs0MTIsOCBAQCBTY29wZTo6UmVzb2x2ZXJVcGRhdGVUeXBlIFNjb3BlOjphbmFseXplU3R5
bGVTaGVldENoYW5nZShjb25zdCBWZWN0b3I8UmVmUHRyPENTUwogICAgICAgICBhZGRlZFNoZWV0
cy5hcHBlbmQoJm5ld1N0eWxlc2hlZXRzW25ld0luZGV4XS0+Y29udGVudHMoKSk7CiAgICAgICAg
ICsrbmV3SW5kZXg7CiAgICAgfQotICAgIC8vIElmIGFsbCBuZXcgc2hlZXRzIHdlcmUgYWRkZWQg
YXQgdGhlIGVuZCBvZiB0aGUgbGlzdCB3ZSBjYW4ganVzdCBhZGQgdGhlbSB0byBleGlzdGluZyBS
ZXNvbHZlci4KLSAgICAvLyBJZiB0aGVyZSB3ZXJlIGluc2VydGlvbnMgd2UgbmVlZCB0byByZS1h
ZGQgYWxsIHRoZSBzdHlsZXNoZWV0cyBzbyBydWxlcyBhcmUgb3JkZXJlZCBjb3JyZWN0bHkuCi0g
ICAgYXV0byBSZXNvbHZlclVwZGF0ZVR5cGUgPSBoYXNJbnNlcnRpb25zID8gUmVzZXQgOiBBZGRp
dGl2ZTsKLQotICAgIC8vIElmIHdlIGFyZSBhbHJlYWR5IHBhcnNpbmcgdGhlIGJvZHkgYW5kIHNv
IG1heSBoYXZlIHNpZ25pZmljYW50IGFtb3VudCBvZiBlbGVtZW50cywgcHV0IHNvbWUgZWZmb3J0
IGludG8gdHJ5aW5nIHRvIGF2b2lkIHN0eWxlIHJlY2FsY3MuCi0gICAgaWYgKCFtX2RvY3VtZW50
LmJvZHlPckZyYW1lc2V0KCkgfHwgbV9kb2N1bWVudC5oYXNOb2Rlc1dpdGhOb25GaW5hbFN0eWxl
KCkgfHwgbV9kb2N1bWVudC5oYXNOb2Rlc1dpdGhNaXNzaW5nU3R5bGUoKSkKLSAgICAgICAgcmV0
dXJuIFJlc29sdmVyVXBkYXRlVHlwZTsKLQotICAgIEludmFsaWRhdG9yIGludmFsaWRhdG9yKGFk
ZGVkU2hlZXRzLCBzdHlsZVJlc29sdmVyLm1lZGlhUXVlcnlFdmFsdWF0b3IoKSk7Ci0gICAgaWYg
KGludmFsaWRhdG9yLmRpcnRpZXNBbGxTdHlsZSgpKQotICAgICAgICByZXR1cm4gUmVzb2x2ZXJV
cGRhdGVUeXBlOwogCi0gICAgaWYgKG1fc2hhZG93Um9vdCkKLSAgICAgICAgaW52YWxpZGF0b3Iu
aW52YWxpZGF0ZVN0eWxlKCptX3NoYWRvd1Jvb3QpOwotICAgIGVsc2UKLSAgICAgICAgaW52YWxp
ZGF0b3IuaW52YWxpZGF0ZVN0eWxlKG1fZG9jdW1lbnQpOwotCi0gICAgcmVxdWlyZXNGdWxsU3R5
bGVSZWNhbGMgPSBmYWxzZTsKLQotICAgIHJldHVybiBSZXNvbHZlclVwZGF0ZVR5cGU7CisgICAg
cmV0dXJuIHsgaGFzSW5zZXJ0aW9ucyA/IFJlc2V0IDogQWRkaXRpdmUsIFdURk1vdmUoYWRkZWRT
aGVldHMpIH07CiB9CiAKIHN0YXRpYyB2b2lkIGZpbHRlckVuYWJsZWROb25lbXB0eUNTU1N0eWxl
U2hlZXRzKFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4+JiByZXN1bHQsIGNvbnN0IFZlY3Rv
cjxSZWZQdHI8U3R5bGVTaGVldD4+JiBzaGVldHMpCkBAIC00NTMsMTggKzQzMiw2IEBAIHN0YXRp
YyB2b2lkIGZpbHRlckVuYWJsZWROb25lbXB0eUNTU1N0eWxlU2hlZXRzKFZlY3RvcjxSZWZQdHI8
Q1NTU3R5bGVTaGVldD4+JiByCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCBpbnZhbGlkYXRlSG9z
dEFuZFNsb3R0ZWRTdHlsZUlmTmVlZGVkKFNoYWRvd1Jvb3QmIHNoYWRvd1Jvb3QsIFJlc29sdmVy
JiByZXNvbHZlcikKLXsKLSAgICBhdXRvJiBob3N0ID0gKnNoYWRvd1Jvb3QuaG9zdCgpOwotICAg
IGlmICghcmVzb2x2ZXIucnVsZVNldHMoKS5hdXRob3JTdHlsZSgpLmhvc3RQc2V1ZG9DbGFzc1J1
bGVzKCkuaXNFbXB0eSgpKQotICAgICAgICBob3N0LmludmFsaWRhdGVTdHlsZSgpOwotCi0gICAg
aWYgKCFyZXNvbHZlci5ydWxlU2V0cygpLmF1dGhvclN0eWxlKCkuc2xvdHRlZFBzZXVkb0VsZW1l
bnRSdWxlcygpLmlzRW1wdHkoKSkgewotICAgICAgICBmb3IgKGF1dG8mIHNoYWRvd0NoaWxkIDog
Y2hpbGRyZW5PZlR5cGU8RWxlbWVudD4oaG9zdCkpCi0gICAgICAgICAgICBzaGFkb3dDaGlsZC5p
bnZhbGlkYXRlU3R5bGUoKTsKLSAgICB9Ci19Ci0KIHZvaWQgU2NvcGU6OnVwZGF0ZUFjdGl2ZVN0
eWxlU2hlZXRzKFVwZGF0ZVR5cGUgdXBkYXRlVHlwZSkKIHsKICAgICBBU1NFUlQoIW1fcGVuZGlu
Z1VwZGF0ZSk7CkBAIC00ODksMTIgKzQ1NiwxMSBAQCB2b2lkIFNjb3BlOjp1cGRhdGVBY3RpdmVT
dHlsZVNoZWV0cyhVcGRhdGVUeXBlIHVwZGF0ZVR5cGUpCiAgICAgYWN0aXZlQ1NTU3R5bGVTaGVl
dHMuYXBwZW5kVmVjdG9yKG1fZG9jdW1lbnQuZXh0ZW5zaW9uU3R5bGVTaGVldHMoKS5hdXRob3JT
dHlsZVNoZWV0c0ZvclRlc3RpbmcoKSk7CiAgICAgZmlsdGVyRW5hYmxlZE5vbmVtcHR5Q1NTU3R5
bGVTaGVldHMoYWN0aXZlQ1NTU3R5bGVTaGVldHMsIGFjdGl2ZVN0eWxlU2hlZXRzKTsKIAotICAg
IGJvb2wgcmVxdWlyZXNGdWxsU3R5bGVSZWNhbGMgPSB0cnVlOwotICAgIFJlc29sdmVyVXBkYXRl
VHlwZSBSZXNvbHZlclVwZGF0ZVR5cGUgPSBSZWNvbnN0cnVjdDsKKyAgICBhdXRvIHN0eWxlU2hl
ZXRDaGFuZ2UgPSBTdHlsZVNoZWV0Q2hhbmdlIHsgUmVjb25zdHJ1Y3QgfTsKICAgICBpZiAodXBk
YXRlVHlwZSA9PSBVcGRhdGVUeXBlOjpBY3RpdmVTZXQpCi0gICAgICAgIFJlc29sdmVyVXBkYXRl
VHlwZSA9IGFuYWx5emVTdHlsZVNoZWV0Q2hhbmdlKGFjdGl2ZUNTU1N0eWxlU2hlZXRzLCByZXF1
aXJlc0Z1bGxTdHlsZVJlY2FsYyk7CisgICAgICAgIHN0eWxlU2hlZXRDaGFuZ2UgPSBhbmFseXpl
U3R5bGVTaGVldENoYW5nZShhY3RpdmVDU1NTdHlsZVNoZWV0cyk7CiAKLSAgICB1cGRhdGVSZXNv
bHZlcihhY3RpdmVDU1NTdHlsZVNoZWV0cywgUmVzb2x2ZXJVcGRhdGVUeXBlKTsKKyAgICB1cGRh
dGVSZXNvbHZlcihhY3RpdmVDU1NTdHlsZVNoZWV0cywgc3R5bGVTaGVldENoYW5nZS5yZXNvbHZl
clVwZGF0ZVR5cGUpOwogCiAgICAgbV93ZWFrQ29weU9mQWN0aXZlU3R5bGVTaGVldExpc3RGb3JG
YXN0TG9va3VwID0gbnVsbHB0cjsKICAgICBtX2FjdGl2ZVN0eWxlU2hlZXRzLnN3YXAoYWN0aXZl
Q1NTU3R5bGVTaGVldHMpOwpAQCAtNTA3LDE1ICs0NzMsMjEgQEAgdm9pZCBTY29wZTo6dXBkYXRl
QWN0aXZlU3R5bGVTaGVldHMoVXBkYXRlVHlwZSB1cGRhdGVUeXBlKQogICAgICAgICAgICAgbV91
c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5ID0gdHJ1ZTsKICAgICB9CiAKLSAgICAvLyBGSVhNRTog
TW92ZSB0aGlzIGNvZGUgc29tZXdoZXJlIGVsc2UuCi0gICAgaWYgKHJlcXVpcmVzRnVsbFN0eWxl
UmVjYWxjKSB7Ci0gICAgICAgIGlmIChtX3NoYWRvd1Jvb3QpIHsKLSAgICAgICAgICAgIGZvciAo
YXV0byYgc2hhZG93Q2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxFbGVtZW50PigqbV9zaGFkb3dSb290
KSkKLSAgICAgICAgICAgICAgICBzaGFkb3dDaGlsZC5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVl
KCk7Ci0gICAgICAgICAgICBpbnZhbGlkYXRlSG9zdEFuZFNsb3R0ZWRTdHlsZUlmTmVlZGVkKCpt
X3NoYWRvd1Jvb3QsIHJlc29sdmVyKCkpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1f
ZG9jdW1lbnQuc2NoZWR1bGVGdWxsU3R5bGVSZWJ1aWxkKCk7CisgICAgaW52YWxpZGF0ZVN0eWxl
QWZ0ZXJTdHlsZVNoZWV0Q2hhbmdlKHN0eWxlU2hlZXRDaGFuZ2UpOworfQorCit2b2lkIFNjb3Bl
OjppbnZhbGlkYXRlU3R5bGVBZnRlclN0eWxlU2hlZXRDaGFuZ2UoY29uc3QgU3R5bGVTaGVldENo
YW5nZSYgc3R5bGVTaGVldENoYW5nZSkKK3sKKyAgICAvLyBJZiB3ZSBhcmUgYWxyZWFkeSBwYXJz
aW5nIHRoZSBib2R5IGFuZCBzbyBtYXkgaGF2ZSBzaWduaWZpY2FudCBhbW91bnQgb2YgZWxlbWVu
dHMsIHB1dCBzb21lIGVmZm9ydCBpbnRvIHRyeWluZyB0byBhdm9pZCBzdHlsZSByZWNhbGNzLgor
ICAgIGJvb2wgaW52YWxpZGF0ZUFsbCA9ICFtX2RvY3VtZW50LmJvZHlPckZyYW1lc2V0KCkgfHwg
bV9kb2N1bWVudC5oYXNOb2Rlc1dpdGhOb25GaW5hbFN0eWxlKCkgfHwgbV9kb2N1bWVudC5oYXNO
b2Rlc1dpdGhNaXNzaW5nU3R5bGUoKTsKKworICAgIGlmIChzdHlsZVNoZWV0Q2hhbmdlLnJlc29s
dmVyVXBkYXRlVHlwZSA9PSBSZWNvbnN0cnVjdCB8fCBpbnZhbGlkYXRlQWxsKSB7CisgICAgICAg
IEludmFsaWRhdG9yOjppbnZhbGlkYXRlQWxsU3R5bGUoKnRoaXMpOworICAgICAgICByZXR1cm47
CiAgICAgfQorCisgICAgSW52YWxpZGF0b3IgaW52YWxpZGF0b3Ioc3R5bGVTaGVldENoYW5nZS5h
ZGRlZFNoZWV0cywgbV9yZXNvbHZlci0+bWVkaWFRdWVyeUV2YWx1YXRvcigpKTsKKyAgICBpbnZh
bGlkYXRvci5pbnZhbGlkYXRlU3R5bGUoKnRoaXMpOwogfQogCiB2b2lkIFNjb3BlOjp1cGRhdGVS
ZXNvbHZlcihWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+PiYgYWN0aXZlU3R5bGVTaGVldHMs
IFJlc29sdmVyVXBkYXRlVHlwZSB1cGRhdGVUeXBlKQpAQCAtNTk5LDggKzU3MSw4IEBAIHZvaWQg
U2NvcGU6OnNjaGVkdWxlVXBkYXRlKFVwZGF0ZVR5cGUgdXBkYXRlKQogewogICAgIGlmICh1cGRh
dGUgPT0gVXBkYXRlVHlwZTo6Q29udGVudHNPckludGVycHJldGF0aW9uKSB7CiAgICAgICAgIC8v
IDpob3N0IGFuZCA6OnNsb3R0ZWQgcnVsZXMgbWlnaHQgZ28gYXdheS4KLSAgICAgICAgaWYgKG1f
c2hhZG93Um9vdCAmJiBtX3Jlc29sdmVyKQotICAgICAgICAgICAgaW52YWxpZGF0ZUhvc3RBbmRT
bG90dGVkU3R5bGVJZk5lZWRlZCgqbV9zaGFkb3dSb290LCAqbV9yZXNvbHZlcik7CisgICAgICAg
IGlmIChtX3NoYWRvd1Jvb3QpCisgICAgICAgICAgICBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZUhv
c3RBbmRTbG90dGVkU3R5bGVJZk5lZWRlZCgqbV9zaGFkb3dSb290KTsKICAgICAgICAgLy8gRklY
TUU6IEFuaW1hdGlvbiBjb2RlIG1heSB0cmlnZ2VyIHJlc291cmNlIGxvYWQgaW4gbWlkZGxlIG9m
IHN0eWxlIHJlY2FsYyBhbmQgdGhhdCBjYW4gYWRkIGEgcnVsZSB0byBhIGNvbnRlbnQgZXh0ZW5z
aW9uIHN0eWxlc2hlZXQuCiAgICAgICAgIC8vICAgICAgICBGaXggYW5kIHJlbW92ZSBpc1Jlc29s
dmluZ1RyZWVTdHlsZSgpIHRlc3QgYmVsb3csIHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTk0MzM1CiAgICAgICAgIC8vIEZJWE1FOiBUaGUgbV9pc1VwZGF0aW5n
U3R5bGVSZXNvbHZlciB0ZXN0IGlzIGhlcmUgYmVjYXVzZSBleHRlbnNpb24gc3R5bGVzaGVldHMg
Y2FuIGdldCB1cyBoZXJlIGZyb20gUmVzb2x2ZXI6OmFwcGVuZEF1dGhvclN0eWxlU2hlZXRzLgpA
QCAtNjUyLDEwICs2MjQsNyBAQCB2b2lkIFNjb3BlOjpldmFsdWF0ZU1lZGlhUXVlcmllcyhUZXN0
RnVuY3Rpb24mJiB0ZXN0RnVuY3Rpb24pCiAgICAgICAgIHN3aXRjaCAoZXZhbHVhdGlvbkNoYW5n
ZXMtPnR5cGUpIHsKICAgICAgICAgY2FzZSBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFu
Z2VzOjpUeXBlOjpJbnZhbGlkYXRlU3R5bGU6IHsKICAgICAgICAgICAgIEludmFsaWRhdG9yIGlu
dmFsaWRhdG9yKGV2YWx1YXRpb25DaGFuZ2VzLT5pbnZhbGlkYXRpb25SdWxlU2V0cyk7Ci0gICAg
ICAgICAgICBpZiAobV9zaGFkb3dSb290KQotICAgICAgICAgICAgICAgIGludmFsaWRhdG9yLmlu
dmFsaWRhdGVTdHlsZSgqbV9zaGFkb3dSb290KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAg
ICAgICAgICBpbnZhbGlkYXRvci5pbnZhbGlkYXRlU3R5bGUobV9kb2N1bWVudCk7CisgICAgICAg
ICAgICBpbnZhbGlkYXRvci5pbnZhbGlkYXRlU3R5bGUoKnRoaXMpOwogICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25D
aGFuZ2VzOjpUeXBlOjpSZXNldFN0eWxlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oCmluZGV4
IDNiMzNhYTlkYWFjLi5iZmE4NGIyOGRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5
bGUvU3R5bGVTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuaApA
QCAtMTIzLDYgKzEyMyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbGVhc2VNZW1vcnkoKTsKIAog
ICAgIGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7
IH0KKyAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSB7IHJldHVybiBtX2RvY3VtZW50OyB9CisgICAg
Y29uc3QgU2hhZG93Um9vdCogc2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhZG93Um9v
dDsgfQorICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QoKSB7IHJldHVybiBtX3NoYWRvd1Jvb3Q7
IH0KIAogICAgIHN0YXRpYyBTY29wZSYgZm9yTm9kZShOb2RlJik7CiAgICAgc3RhdGljIFNjb3Bl
KiBmb3JPcmRpbmFsKEVsZW1lbnQmLCBTY29wZU9yZGluYWwpOwpAQCAtMTQ4LDcgKzE1MSwxMyBA
QCBwcml2YXRlOgogICAgICAgICBSZXNldCwKICAgICAgICAgQWRkaXRpdmUKICAgICB9OwotICAg
IFJlc29sdmVyVXBkYXRlVHlwZSBhbmFseXplU3R5bGVTaGVldENoYW5nZShjb25zdCBWZWN0b3I8
UmVmUHRyPENTU1N0eWxlU2hlZXQ+PiYgbmV3U3R5bGVzaGVldHMsIGJvb2wmIHJlcXVpcmVzRnVs
bFN0eWxlUmVjYWxjKTsKKyAgICBzdHJ1Y3QgU3R5bGVTaGVldENoYW5nZSB7CisgICAgICAgIFJl
c29sdmVyVXBkYXRlVHlwZSByZXNvbHZlclVwZGF0ZVR5cGU7CisgICAgICAgIFZlY3RvcjxTdHls
ZVNoZWV0Q29udGVudHMqPiBhZGRlZFNoZWV0cyB7IH07CisgICAgfTsKKyAgICBTdHlsZVNoZWV0
Q2hhbmdlIGFuYWx5emVTdHlsZVNoZWV0Q2hhbmdlKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5
bGVTaGVldD4+JiBuZXdTdHlsZXNoZWV0cyk7CisgICAgdm9pZCBpbnZhbGlkYXRlU3R5bGVBZnRl
clN0eWxlU2hlZXRDaGFuZ2UoY29uc3QgU3R5bGVTaGVldENoYW5nZSYpOworCiAgICAgdm9pZCB1
cGRhdGVSZXNvbHZlcihWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+PiYsIFJlc29sdmVyVXBk
YXRlVHlwZSk7CiAKICAgICB2b2lkIHBlbmRpbmdVcGRhdGVUaW1lckZpcmVkKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386532</attachid>
            <date>2019-12-30 07:08:41 -0800</date>
            <delta_ts>2019-12-30 07:20:00 -0800</delta_ts>
            <desc>patch</desc>
            <filename>scope-invalidation-2.patch</filename>
            <type>text/plain</type>
            <size>14540</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2YzM2OGI1YTU2OC4uNDkxNWU2M2Y5Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxOS0xMi0zMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgU3R5bGUgaW52YWxpZGF0aW9uIGNsZWFudXBzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NDQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIG1vcmUgb2YgdGhlIGludmFsaWRh
dGlvbiBjb2RlIGZyb20gU3R5bGU6OlNjb3BlIHRvIFN0eWxlOjpJbnZhbGlkYXRvci4KKworICAg
ICAgICAqIHN0eWxlL1N0eWxlSW52YWxpZGF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlQWxsU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlSG9zdEFuZFNsb3R0ZWRTdHlsZUlmTmVlZGVk
KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZUludmFsaWRhdG9yLmg6CisgICAgICAgICogc3R5bGUv
U3R5bGVTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2NvcGU6OmFuYWx5emVT
dHlsZVNoZWV0Q2hhbmdlKToKKworICAgICAgICBSZXR1cm4gU3R5bGVTaGVldENoYW5nZSBzdHJ1
Y3QuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZTo6dXBkYXRlQWN0aXZlU3R5bGVT
aGVldHMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNjb3BlOjppbnZhbGlkYXRlU3R5bGVB
ZnRlclN0eWxlU2hlZXRDaGFuZ2UpOgorCisgICAgICAgIFVzZSBTdHlsZVNoZWV0Q2hhbmdlIHRv
IGludmFsaWRhdGUgdGhlIHN0eWxlLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2NvcGU6
OnVwZGF0ZVJlc29sdmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZTo6c2NoZWR1
bGVVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNjb3BlOjpldmFsdWF0ZU1lZGlh
UXVlcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6aW52YWxpZGF0ZUhvc3RBbmRTbG90
dGVkU3R5bGVJZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgICogc3R5bGUvU3R5bGVTY29wZS5o
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNjb3BlOjpkb2N1bWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZTo6U2NvcGU6OnNoYWRvd1Jvb3QgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OlNjb3BlOjpzaGFkb3dSb290KToKKwogMjAxOS0xMi0yOSAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGJ1aWxkIGZpeCBh
ZnRlciByMjUzOTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFs
aWRhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0b3IuY3BwCmlu
ZGV4IGQ2NzI1Njg4MDUyLi5mMmU4YjYwMWM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVJbnZhbGlkYXRvci5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJTaGFkb3dSb290
LmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZUltcG9y
dC5oIgorI2luY2x1ZGUgIlN0eWxlU2NvcGUuaCIKICNpbmNsdWRlICJTdHlsZVNjb3BlUnVsZVNl
dHMuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0Q29udGVudHMuaCIKICNpbmNsdWRlIDx3dGYvU2V0
Rm9yU2NvcGUuaD4KQEAgLTIxMiw2ICsyMTMsMjEgQEAgdm9pZCBJbnZhbGlkYXRvcjo6aW52YWxp
ZGF0ZVN0eWxlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICBpbnZhbGlkYXRlU3R5bGVGb3JUcmVl
KCpkb2N1bWVudEVsZW1lbnQsICZmaWx0ZXIpOwogfQogCit2b2lkIEludmFsaWRhdG9yOjppbnZh
bGlkYXRlU3R5bGUoU2NvcGUmIHNjb3BlKQoreworICAgIGlmIChtX2RpcnRpZXNBbGxTdHlsZSkg
eworICAgICAgICBpbnZhbGlkYXRlQWxsU3R5bGUoc2NvcGUpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKGF1dG8qIHNoYWRvd1Jvb3QgPSBzY29wZS5zaGFkb3dSb290KCkpIHsK
KyAgICAgICAgaW52YWxpZGF0ZVN0eWxlKCpzaGFkb3dSb290KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGludmFsaWRhdGVTdHlsZShzY29wZS5kb2N1bWVudCgpKTsKK30KKwogdm9p
ZCBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZVN0eWxlKFNoYWRvd1Jvb3QmIHNoYWRvd1Jvb3QpCiB7
CiAgICAgQVNTRVJUKCFtX2RpcnRpZXNBbGxTdHlsZSk7CkBAIC0zMzcsNSArMzUzLDM0IEBAIHZv
aWQgSW52YWxpZGF0b3I6OmludmFsaWRhdGVXaXRoTWF0Y2hFbGVtZW50UnVsZVNldHMoRWxlbWVu
dCYgZWxlbWVudCwgY29uc3QgTWF0CiAgICAgfQogfQogCit2b2lkIEludmFsaWRhdG9yOjppbnZh
bGlkYXRlQWxsU3R5bGUoU2NvcGUmIHNjb3BlKQoreworICAgIGlmIChhdXRvKiBzaGFkb3dSb290
ID0gc2NvcGUuc2hhZG93Um9vdCgpKSB7CisgICAgICAgIGZvciAoYXV0byYgc2hhZG93Q2hpbGQg
OiBjaGlsZHJlbk9mVHlwZTxFbGVtZW50Pigqc2hhZG93Um9vdCkpCisgICAgICAgICAgICBzaGFk
b3dDaGlsZC5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7CisgICAgICAgIGludmFsaWRhdGVI
b3N0QW5kU2xvdHRlZFN0eWxlSWZOZWVkZWQoKnNoYWRvd1Jvb3QpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgc2NvcGUuZG9jdW1lbnQoKS5zY2hlZHVsZUZ1bGxTdHlsZVJlYnVpbGQo
KTsKK30KKwordm9pZCBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZUhvc3RBbmRTbG90dGVkU3R5bGVJ
Zk5lZWRlZChTaGFkb3dSb290JiBzaGFkb3dSb290KQoreworICAgIGF1dG8mIGhvc3QgPSAqc2hh
ZG93Um9vdC5ob3N0KCk7CisgICAgYXV0byogcmVzb2x2ZXIgPSBzaGFkb3dSb290LnN0eWxlU2Nv
cGUoKS5yZXNvbHZlcklmRXhpc3RzKCk7CisgICAgaWYgKCFyZXNvbHZlcikKKyAgICAgICAgcmV0
dXJuOworICAgIGF1dG8mIGF1dGhvclN0eWxlID0gcmVzb2x2ZXItPnJ1bGVTZXRzKCkuYXV0aG9y
U3R5bGUoKTsKKworICAgIGlmICghYXV0aG9yU3R5bGUuaG9zdFBzZXVkb0NsYXNzUnVsZXMoKS5p
c0VtcHR5KCkpCisgICAgICAgIGhvc3QuaW52YWxpZGF0ZVN0eWxlKCk7CisKKyAgICBpZiAoIWF1
dGhvclN0eWxlLnNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMoKS5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgZm9yIChhdXRvJiBzaGFkb3dDaGlsZCA6IGNoaWxkcmVuT2ZUeXBlPEVsZW1lbnQ+KGhvc3Qp
KQorICAgICAgICAgICAgc2hhZG93Q2hpbGQuaW52YWxpZGF0ZVN0eWxlKCk7CisgICAgfQorfQor
CiB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmgKaW5kZXggZTg3NWVh
NjZmODkuLjE2ZjgwZGZiZTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZUludmFsaWRhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRv
ci5oCkBAIC0zNSw2ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERvY3VtZW50
OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIE1lZGlhUXVlcnlFdmFsdWF0b3I7CitjbGFzcyBTY29w
ZTsKIGNsYXNzIFNlbGVjdG9yRmlsdGVyOwogY2xhc3MgU2hhZG93Um9vdDsKIGNsYXNzIFN0eWxl
U2hlZXRDb250ZW50czsKQEAgLTUyLDYgKzUzLDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBkaXJ0
aWVzQWxsU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX2RpcnRpZXNBbGxTdHlsZTsgfQogICAgIHZv
aWQgaW52YWxpZGF0ZVN0eWxlKERvY3VtZW50Jik7CisgICAgdm9pZCBpbnZhbGlkYXRlU3R5bGUo
U2NvcGUmKTsKICAgICB2b2lkIGludmFsaWRhdGVTdHlsZShTaGFkb3dSb290Jik7CiAgICAgdm9p
ZCBpbnZhbGlkYXRlU3R5bGUoRWxlbWVudCYpOwogCkBAIC02MCw2ICs2Miw4IEBAIHB1YmxpYzoK
ICAgICB1c2luZyBNYXRjaEVsZW1lbnRSdWxlU2V0cyA9IEhhc2hNYXA8TWF0Y2hFbGVtZW50LCBJ
bnZhbGlkYXRpb25SdWxlU2V0VmVjdG9yLCBXVEY6OkludEhhc2g8TWF0Y2hFbGVtZW50PiwgV1RG
OjpTdHJvbmdFbnVtSGFzaFRyYWl0czxNYXRjaEVsZW1lbnQ+PjsKICAgICBzdGF0aWMgdm9pZCBh
ZGRUb01hdGNoRWxlbWVudFJ1bGVTZXRzKEludmFsaWRhdG9yOjpNYXRjaEVsZW1lbnRSdWxlU2V0
cyYsIGNvbnN0IEludmFsaWRhdGlvblJ1bGVTZXQmKTsKICAgICBzdGF0aWMgdm9pZCBpbnZhbGlk
YXRlV2l0aE1hdGNoRWxlbWVudFJ1bGVTZXRzKEVsZW1lbnQmLCBjb25zdCBNYXRjaEVsZW1lbnRS
dWxlU2V0cyYpOworICAgIHN0YXRpYyB2b2lkIGludmFsaWRhdGVBbGxTdHlsZShTY29wZSYpOwor
ICAgIHN0YXRpYyB2b2lkIGludmFsaWRhdGVIb3N0QW5kU2xvdHRlZFN0eWxlSWZOZWVkZWQoU2hh
ZG93Um9vdCYpOwogCiBwcml2YXRlOgogICAgIGVudW0gY2xhc3MgQ2hlY2tEZXNjZW5kYW50cyB7
IFllcywgTm8gfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5jcHAKaW5kZXggOWFiMmRiMGY2
YjcuLmQ3ZjhjNDUwOTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNj
b3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcApAQCAtMzgx
LDMyICszODEsMjkgQEAgdm9pZCBTY29wZTo6Y29sbGVjdEFjdGl2ZVN0eWxlU2hlZXRzKFZlY3Rv
cjxSZWZQdHI8U3R5bGVTaGVldD4+JiBzaGVldHMpCiAgICAgfQogfQogCi1TY29wZTo6UmVzb2x2
ZXJVcGRhdGVUeXBlIFNjb3BlOjphbmFseXplU3R5bGVTaGVldENoYW5nZShjb25zdCBWZWN0b3I8
UmVmUHRyPENTU1N0eWxlU2hlZXQ+PiYgbmV3U3R5bGVzaGVldHMsIGJvb2wmIHJlcXVpcmVzRnVs
bFN0eWxlUmVjYWxjKQorU2NvcGU6OlN0eWxlU2hlZXRDaGFuZ2UgU2NvcGU6OmFuYWx5emVTdHls
ZVNoZWV0Q2hhbmdlKGNvbnN0IFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4+JiBuZXdTdHls
ZXNoZWV0cykKIHsKLSAgICByZXF1aXJlc0Z1bGxTdHlsZVJlY2FsYyA9IHRydWU7Ci0gICAgCiAg
ICAgdW5zaWduZWQgbmV3U3R5bGVzaGVldENvdW50ID0gbmV3U3R5bGVzaGVldHMuc2l6ZSgpOwog
CiAgICAgaWYgKCFyZXNvbHZlcklmRXhpc3RzKCkpCi0gICAgICAgIHJldHVybiBSZWNvbnN0cnVj
dDsKLQotICAgIGF1dG8mIHN0eWxlUmVzb2x2ZXIgPSAqcmVzb2x2ZXJJZkV4aXN0cygpOworICAg
ICAgICByZXR1cm4geyBSZXNvbHZlclVwZGF0ZVR5cGU6OlJlY29uc3RydWN0IH07CiAKICAgICAv
LyBGaW5kIG91dCB3aGljaCBzdHlsZXNoZWV0cyBhcmUgbmV3LgogICAgIHVuc2lnbmVkIG9sZFN0
eWxlc2hlZXRDb3VudCA9IG1fYWN0aXZlU3R5bGVTaGVldHMuc2l6ZSgpOwogICAgIGlmIChuZXdT
dHlsZXNoZWV0Q291bnQgPCBvbGRTdHlsZXNoZWV0Q291bnQpCi0gICAgICAgIHJldHVybiBSZWNv
bnN0cnVjdDsKKyAgICAgICAgcmV0dXJuIHsgUmVzb2x2ZXJVcGRhdGVUeXBlOjpSZWNvbnN0cnVj
dCB9OwogCiAgICAgVmVjdG9yPFN0eWxlU2hlZXRDb250ZW50cyo+IGFkZGVkU2hlZXRzOwogICAg
IHVuc2lnbmVkIG5ld0luZGV4ID0gMDsKICAgICBmb3IgKHVuc2lnbmVkIG9sZEluZGV4ID0gMDsg
b2xkSW5kZXggPCBvbGRTdHlsZXNoZWV0Q291bnQ7ICsrb2xkSW5kZXgpIHsKICAgICAgICAgaWYg
KG5ld0luZGV4ID49IG5ld1N0eWxlc2hlZXRDb3VudCkKLSAgICAgICAgICAgIHJldHVybiBSZWNv
bnN0cnVjdDsKKyAgICAgICAgICAgIHJldHVybiB7IFJlc29sdmVyVXBkYXRlVHlwZTo6UmVjb25z
dHJ1Y3QgfTsKKwogICAgICAgICB3aGlsZSAobV9hY3RpdmVTdHlsZVNoZWV0c1tvbGRJbmRleF0g
IT0gbmV3U3R5bGVzaGVldHNbbmV3SW5kZXhdKSB7CiAgICAgICAgICAgICBhZGRlZFNoZWV0cy5h
cHBlbmQoJm5ld1N0eWxlc2hlZXRzW25ld0luZGV4XS0+Y29udGVudHMoKSk7CiAgICAgICAgICAg
ICArK25ld0luZGV4OwogICAgICAgICAgICAgaWYgKG5ld0luZGV4ID09IG5ld1N0eWxlc2hlZXRD
b3VudCkKLSAgICAgICAgICAgICAgICByZXR1cm4gUmVjb25zdHJ1Y3Q7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIHsgUmVzb2x2ZXJVcGRhdGVUeXBlOjpSZWNvbnN0cnVjdCB9OwogICAgICAgICB9
CiAgICAgICAgICsrbmV3SW5kZXg7CiAgICAgfQpAQCAtNDE1LDI2ICs0MTIsMTAgQEAgU2NvcGU6
OlJlc29sdmVyVXBkYXRlVHlwZSBTY29wZTo6YW5hbHl6ZVN0eWxlU2hlZXRDaGFuZ2UoY29uc3Qg
VmVjdG9yPFJlZlB0cjxDU1MKICAgICAgICAgYWRkZWRTaGVldHMuYXBwZW5kKCZuZXdTdHlsZXNo
ZWV0c1tuZXdJbmRleF0tPmNvbnRlbnRzKCkpOwogICAgICAgICArK25ld0luZGV4OwogICAgIH0K
KwogICAgIC8vIElmIGFsbCBuZXcgc2hlZXRzIHdlcmUgYWRkZWQgYXQgdGhlIGVuZCBvZiB0aGUg
bGlzdCB3ZSBjYW4ganVzdCBhZGQgdGhlbSB0byBleGlzdGluZyBSZXNvbHZlci4KICAgICAvLyBJ
ZiB0aGVyZSB3ZXJlIGluc2VydGlvbnMgd2UgbmVlZCB0byByZS1hZGQgYWxsIHRoZSBzdHlsZXNo
ZWV0cyBzbyBydWxlcyBhcmUgb3JkZXJlZCBjb3JyZWN0bHkuCi0gICAgYXV0byBSZXNvbHZlclVw
ZGF0ZVR5cGUgPSBoYXNJbnNlcnRpb25zID8gUmVzZXQgOiBBZGRpdGl2ZTsKLQotICAgIC8vIElm
IHdlIGFyZSBhbHJlYWR5IHBhcnNpbmcgdGhlIGJvZHkgYW5kIHNvIG1heSBoYXZlIHNpZ25pZmlj
YW50IGFtb3VudCBvZiBlbGVtZW50cywgcHV0IHNvbWUgZWZmb3J0IGludG8gdHJ5aW5nIHRvIGF2
b2lkIHN0eWxlIHJlY2FsY3MuCi0gICAgaWYgKCFtX2RvY3VtZW50LmJvZHlPckZyYW1lc2V0KCkg
fHwgbV9kb2N1bWVudC5oYXNOb2Rlc1dpdGhOb25GaW5hbFN0eWxlKCkgfHwgbV9kb2N1bWVudC5o
YXNOb2Rlc1dpdGhNaXNzaW5nU3R5bGUoKSkKLSAgICAgICAgcmV0dXJuIFJlc29sdmVyVXBkYXRl
VHlwZTsKLQotICAgIEludmFsaWRhdG9yIGludmFsaWRhdG9yKGFkZGVkU2hlZXRzLCBzdHlsZVJl
c29sdmVyLm1lZGlhUXVlcnlFdmFsdWF0b3IoKSk7Ci0gICAgaWYgKGludmFsaWRhdG9yLmRpcnRp
ZXNBbGxTdHlsZSgpKQotICAgICAgICByZXR1cm4gUmVzb2x2ZXJVcGRhdGVUeXBlOwotCi0gICAg
aWYgKG1fc2hhZG93Um9vdCkKLSAgICAgICAgaW52YWxpZGF0b3IuaW52YWxpZGF0ZVN0eWxlKCpt
X3NoYWRvd1Jvb3QpOwotICAgIGVsc2UKLSAgICAgICAgaW52YWxpZGF0b3IuaW52YWxpZGF0ZVN0
eWxlKG1fZG9jdW1lbnQpOwotCi0gICAgcmVxdWlyZXNGdWxsU3R5bGVSZWNhbGMgPSBmYWxzZTsK
LQotICAgIHJldHVybiBSZXNvbHZlclVwZGF0ZVR5cGU7CisgICAgcmV0dXJuIHsgaGFzSW5zZXJ0
aW9ucyA/IFJlc29sdmVyVXBkYXRlVHlwZTo6UmVzZXQgOiBSZXNvbHZlclVwZGF0ZVR5cGU6OkFk
ZGl0aXZlLCBXVEZNb3ZlKGFkZGVkU2hlZXRzKSB9OwogfQogCiBzdGF0aWMgdm9pZCBmaWx0ZXJF
bmFibGVkTm9uZW1wdHlDU1NTdHlsZVNoZWV0cyhWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+
PiYgcmVzdWx0LCBjb25zdCBWZWN0b3I8UmVmUHRyPFN0eWxlU2hlZXQ+PiYgc2hlZXRzKQpAQCAt
NDUzLDE4ICs0MzQsNiBAQCBzdGF0aWMgdm9pZCBmaWx0ZXJFbmFibGVkTm9uZW1wdHlDU1NTdHls
ZVNoZWV0cyhWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+PiYgcgogICAgIH0KIH0KIAotc3Rh
dGljIHZvaWQgaW52YWxpZGF0ZUhvc3RBbmRTbG90dGVkU3R5bGVJZk5lZWRlZChTaGFkb3dSb290
JiBzaGFkb3dSb290LCBSZXNvbHZlciYgcmVzb2x2ZXIpCi17Ci0gICAgYXV0byYgaG9zdCA9ICpz
aGFkb3dSb290Lmhvc3QoKTsKLSAgICBpZiAoIXJlc29sdmVyLnJ1bGVTZXRzKCkuYXV0aG9yU3R5
bGUoKS5ob3N0UHNldWRvQ2xhc3NSdWxlcygpLmlzRW1wdHkoKSkKLSAgICAgICAgaG9zdC5pbnZh
bGlkYXRlU3R5bGUoKTsKLQotICAgIGlmICghcmVzb2x2ZXIucnVsZVNldHMoKS5hdXRob3JTdHls
ZSgpLnNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgZm9y
IChhdXRvJiBzaGFkb3dDaGlsZCA6IGNoaWxkcmVuT2ZUeXBlPEVsZW1lbnQ+KGhvc3QpKQotICAg
ICAgICAgICAgc2hhZG93Q2hpbGQuaW52YWxpZGF0ZVN0eWxlKCk7Ci0gICAgfQotfQotCiB2b2lk
IFNjb3BlOjp1cGRhdGVBY3RpdmVTdHlsZVNoZWV0cyhVcGRhdGVUeXBlIHVwZGF0ZVR5cGUpCiB7
CiAgICAgQVNTRVJUKCFtX3BlbmRpbmdVcGRhdGUpOwpAQCAtNDg5LDEyICs0NTgsMTEgQEAgdm9p
ZCBTY29wZTo6dXBkYXRlQWN0aXZlU3R5bGVTaGVldHMoVXBkYXRlVHlwZSB1cGRhdGVUeXBlKQog
ICAgIGFjdGl2ZUNTU1N0eWxlU2hlZXRzLmFwcGVuZFZlY3RvcihtX2RvY3VtZW50LmV4dGVuc2lv
blN0eWxlU2hlZXRzKCkuYXV0aG9yU3R5bGVTaGVldHNGb3JUZXN0aW5nKCkpOwogICAgIGZpbHRl
ckVuYWJsZWROb25lbXB0eUNTU1N0eWxlU2hlZXRzKGFjdGl2ZUNTU1N0eWxlU2hlZXRzLCBhY3Rp
dmVTdHlsZVNoZWV0cyk7CiAKLSAgICBib29sIHJlcXVpcmVzRnVsbFN0eWxlUmVjYWxjID0gdHJ1
ZTsKLSAgICBSZXNvbHZlclVwZGF0ZVR5cGUgUmVzb2x2ZXJVcGRhdGVUeXBlID0gUmVjb25zdHJ1
Y3Q7CisgICAgYXV0byBzdHlsZVNoZWV0Q2hhbmdlID0gU3R5bGVTaGVldENoYW5nZSB7IFJlc29s
dmVyVXBkYXRlVHlwZTo6UmVjb25zdHJ1Y3QgfTsKICAgICBpZiAodXBkYXRlVHlwZSA9PSBVcGRh
dGVUeXBlOjpBY3RpdmVTZXQpCi0gICAgICAgIFJlc29sdmVyVXBkYXRlVHlwZSA9IGFuYWx5emVT
dHlsZVNoZWV0Q2hhbmdlKGFjdGl2ZUNTU1N0eWxlU2hlZXRzLCByZXF1aXJlc0Z1bGxTdHlsZVJl
Y2FsYyk7CisgICAgICAgIHN0eWxlU2hlZXRDaGFuZ2UgPSBhbmFseXplU3R5bGVTaGVldENoYW5n
ZShhY3RpdmVDU1NTdHlsZVNoZWV0cyk7CiAKLSAgICB1cGRhdGVSZXNvbHZlcihhY3RpdmVDU1NT
dHlsZVNoZWV0cywgUmVzb2x2ZXJVcGRhdGVUeXBlKTsKKyAgICB1cGRhdGVSZXNvbHZlcihhY3Rp
dmVDU1NTdHlsZVNoZWV0cywgc3R5bGVTaGVldENoYW5nZS5yZXNvbHZlclVwZGF0ZVR5cGUpOwog
CiAgICAgbV93ZWFrQ29weU9mQWN0aXZlU3R5bGVTaGVldExpc3RGb3JGYXN0TG9va3VwID0gbnVs
bHB0cjsKICAgICBtX2FjdGl2ZVN0eWxlU2hlZXRzLnN3YXAoYWN0aXZlQ1NTU3R5bGVTaGVldHMp
OwpAQCAtNTA3LDMxICs0NzUsMzcgQEAgdm9pZCBTY29wZTo6dXBkYXRlQWN0aXZlU3R5bGVTaGVl
dHMoVXBkYXRlVHlwZSB1cGRhdGVUeXBlKQogICAgICAgICAgICAgbV91c2VzU3R5bGVCYXNlZEVk
aXRhYmlsaXR5ID0gdHJ1ZTsKICAgICB9CiAKLSAgICAvLyBGSVhNRTogTW92ZSB0aGlzIGNvZGUg
c29tZXdoZXJlIGVsc2UuCi0gICAgaWYgKHJlcXVpcmVzRnVsbFN0eWxlUmVjYWxjKSB7Ci0gICAg
ICAgIGlmIChtX3NoYWRvd1Jvb3QpIHsKLSAgICAgICAgICAgIGZvciAoYXV0byYgc2hhZG93Q2hp
bGQgOiBjaGlsZHJlbk9mVHlwZTxFbGVtZW50PigqbV9zaGFkb3dSb290KSkKLSAgICAgICAgICAg
ICAgICBzaGFkb3dDaGlsZC5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlKCk7Ci0gICAgICAgICAg
ICBpbnZhbGlkYXRlSG9zdEFuZFNsb3R0ZWRTdHlsZUlmTmVlZGVkKCptX3NoYWRvd1Jvb3QsIHJl
c29sdmVyKCkpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIG1fZG9jdW1lbnQuc2NoZWR1
bGVGdWxsU3R5bGVSZWJ1aWxkKCk7CisgICAgaW52YWxpZGF0ZVN0eWxlQWZ0ZXJTdHlsZVNoZWV0
Q2hhbmdlKHN0eWxlU2hlZXRDaGFuZ2UpOworfQorCit2b2lkIFNjb3BlOjppbnZhbGlkYXRlU3R5
bGVBZnRlclN0eWxlU2hlZXRDaGFuZ2UoY29uc3QgU3R5bGVTaGVldENoYW5nZSYgc3R5bGVTaGVl
dENoYW5nZSkKK3sKKyAgICAvLyBJZiB3ZSBhcmUgYWxyZWFkeSBwYXJzaW5nIHRoZSBib2R5IGFu
ZCBzbyBtYXkgaGF2ZSBzaWduaWZpY2FudCBhbW91bnQgb2YgZWxlbWVudHMsIHB1dCBzb21lIGVm
Zm9ydCBpbnRvIHRyeWluZyB0byBhdm9pZCBzdHlsZSByZWNhbGNzLgorICAgIGJvb2wgaW52YWxp
ZGF0ZUFsbCA9ICFtX2RvY3VtZW50LmJvZHlPckZyYW1lc2V0KCkgfHwgbV9kb2N1bWVudC5oYXNO
b2Rlc1dpdGhOb25GaW5hbFN0eWxlKCkgfHwgbV9kb2N1bWVudC5oYXNOb2Rlc1dpdGhNaXNzaW5n
U3R5bGUoKTsKKworICAgIGlmIChzdHlsZVNoZWV0Q2hhbmdlLnJlc29sdmVyVXBkYXRlVHlwZSA9
PSBSZXNvbHZlclVwZGF0ZVR5cGU6OlJlY29uc3RydWN0IHx8IGludmFsaWRhdGVBbGwpIHsKKyAg
ICAgICAgSW52YWxpZGF0b3I6OmludmFsaWRhdGVBbGxTdHlsZSgqdGhpcyk7CisgICAgICAgIHJl
dHVybjsKICAgICB9CisKKyAgICBJbnZhbGlkYXRvciBpbnZhbGlkYXRvcihzdHlsZVNoZWV0Q2hh
bmdlLmFkZGVkU2hlZXRzLCBtX3Jlc29sdmVyLT5tZWRpYVF1ZXJ5RXZhbHVhdG9yKCkpOworICAg
IGludmFsaWRhdG9yLmludmFsaWRhdGVTdHlsZSgqdGhpcyk7CiB9CiAKIHZvaWQgU2NvcGU6OnVw
ZGF0ZVJlc29sdmVyKFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4+JiBhY3RpdmVTdHlsZVNo
ZWV0cywgUmVzb2x2ZXJVcGRhdGVUeXBlIHVwZGF0ZVR5cGUpCiB7Ci0gICAgaWYgKHVwZGF0ZVR5
cGUgPT0gUmVjb25zdHJ1Y3QpIHsKKyAgICBpZiAodXBkYXRlVHlwZSA9PSBSZXNvbHZlclVwZGF0
ZVR5cGU6OlJlY29uc3RydWN0KSB7CiAgICAgICAgIGNsZWFyUmVzb2x2ZXIoKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICBhdXRvJiBzdHlsZVJlc29sdmVyID0gcmVzb2x2ZXIoKTsKIAog
ICAgIFNldEZvclNjb3BlPGJvb2w+IGlzVXBkYXRpbmdTdHlsZVJlc29sdmVyIHsgbV9pc1VwZGF0
aW5nU3R5bGVSZXNvbHZlciwgdHJ1ZSB9OwotICAgIGlmICh1cGRhdGVUeXBlID09IFJlc2V0KSB7
CisgICAgaWYgKHVwZGF0ZVR5cGUgPT0gUmVzb2x2ZXJVcGRhdGVUeXBlOjpSZXNldCkgewogICAg
ICAgICBzdHlsZVJlc29sdmVyLnJ1bGVTZXRzKCkucmVzZXRBdXRob3JTdHlsZSgpOwogICAgICAg
ICBzdHlsZVJlc29sdmVyLmFwcGVuZEF1dGhvclN0eWxlU2hlZXRzKGFjdGl2ZVN0eWxlU2hlZXRz
KTsKICAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlQodXBkYXRlVHlwZSA9PSBBZGRpdGl2ZSk7
CisgICAgICAgIEFTU0VSVCh1cGRhdGVUeXBlID09IFJlc29sdmVyVXBkYXRlVHlwZTo6QWRkaXRp
dmUpOwogICAgICAgICB1bnNpZ25lZCBmaXJzdE5ld0luZGV4ID0gbV9hY3RpdmVTdHlsZVNoZWV0
cy5zaXplKCk7CiAgICAgICAgIFZlY3RvcjxSZWZQdHI8Q1NTU3R5bGVTaGVldD4+IG5ld1N0eWxl
U2hlZXRzOwogICAgICAgICBuZXdTdHlsZVNoZWV0cy5hcHBlbmRSYW5nZShhY3RpdmVTdHlsZVNo
ZWV0cy5iZWdpbigpICsgZmlyc3ROZXdJbmRleCwgYWN0aXZlU3R5bGVTaGVldHMuZW5kKCkpOwpA
QCAtNTk5LDggKzU3Myw4IEBAIHZvaWQgU2NvcGU6OnNjaGVkdWxlVXBkYXRlKFVwZGF0ZVR5cGUg
dXBkYXRlKQogewogICAgIGlmICh1cGRhdGUgPT0gVXBkYXRlVHlwZTo6Q29udGVudHNPckludGVy
cHJldGF0aW9uKSB7CiAgICAgICAgIC8vIDpob3N0IGFuZCA6OnNsb3R0ZWQgcnVsZXMgbWlnaHQg
Z28gYXdheS4KLSAgICAgICAgaWYgKG1fc2hhZG93Um9vdCAmJiBtX3Jlc29sdmVyKQotICAgICAg
ICAgICAgaW52YWxpZGF0ZUhvc3RBbmRTbG90dGVkU3R5bGVJZk5lZWRlZCgqbV9zaGFkb3dSb290
LCAqbV9yZXNvbHZlcik7CisgICAgICAgIGlmIChtX3NoYWRvd1Jvb3QpCisgICAgICAgICAgICBJ
bnZhbGlkYXRvcjo6aW52YWxpZGF0ZUhvc3RBbmRTbG90dGVkU3R5bGVJZk5lZWRlZCgqbV9zaGFk
b3dSb290KTsKICAgICAgICAgLy8gRklYTUU6IEFuaW1hdGlvbiBjb2RlIG1heSB0cmlnZ2VyIHJl
c291cmNlIGxvYWQgaW4gbWlkZGxlIG9mIHN0eWxlIHJlY2FsYyBhbmQgdGhhdCBjYW4gYWRkIGEg
cnVsZSB0byBhIGNvbnRlbnQgZXh0ZW5zaW9uIHN0eWxlc2hlZXQuCiAgICAgICAgIC8vICAgICAg
ICBGaXggYW5kIHJlbW92ZSBpc1Jlc29sdmluZ1RyZWVTdHlsZSgpIHRlc3QgYmVsb3csIHNlZSBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MzM1CiAgICAgICAgIC8v
IEZJWE1FOiBUaGUgbV9pc1VwZGF0aW5nU3R5bGVSZXNvbHZlciB0ZXN0IGlzIGhlcmUgYmVjYXVz
ZSBleHRlbnNpb24gc3R5bGVzaGVldHMgY2FuIGdldCB1cyBoZXJlIGZyb20gUmVzb2x2ZXI6OmFw
cGVuZEF1dGhvclN0eWxlU2hlZXRzLgpAQCAtNjUyLDEwICs2MjYsNyBAQCB2b2lkIFNjb3BlOjpl
dmFsdWF0ZU1lZGlhUXVlcmllcyhUZXN0RnVuY3Rpb24mJiB0ZXN0RnVuY3Rpb24pCiAgICAgICAg
IHN3aXRjaCAoZXZhbHVhdGlvbkNoYW5nZXMtPnR5cGUpIHsKICAgICAgICAgY2FzZSBEeW5hbWlj
TWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzOjpUeXBlOjpJbnZhbGlkYXRlU3R5bGU6IHsKICAg
ICAgICAgICAgIEludmFsaWRhdG9yIGludmFsaWRhdG9yKGV2YWx1YXRpb25DaGFuZ2VzLT5pbnZh
bGlkYXRpb25SdWxlU2V0cyk7Ci0gICAgICAgICAgICBpZiAobV9zaGFkb3dSb290KQotICAgICAg
ICAgICAgICAgIGludmFsaWRhdG9yLmludmFsaWRhdGVTdHlsZSgqbV9zaGFkb3dSb290KTsKLSAg
ICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBpbnZhbGlkYXRvci5pbnZhbGlkYXRlU3R5
bGUobV9kb2N1bWVudCk7CisgICAgICAgICAgICBpbnZhbGlkYXRvci5pbnZhbGlkYXRlU3R5bGUo
KnRoaXMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KICAgICAgICAgY2FzZSBEeW5h
bWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzOjpUeXBlOjpSZXNldFN0eWxlOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVTY29wZS5oCmluZGV4IDNiMzNhYTlkYWFjLi40NzRhMDhhNjI1NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlU2NvcGUuaApAQCAtMTIzLDYgKzEyMyw5IEBAIHB1YmxpYzoKICAgICB2
b2lkIHJlbGVhc2VNZW1vcnkoKTsKIAogICAgIGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KKyAgICBEb2N1bWVudCYgZG9jdW1lbnQoKSB7IHJl
dHVybiBtX2RvY3VtZW50OyB9CisgICAgY29uc3QgU2hhZG93Um9vdCogc2hhZG93Um9vdCgpIGNv
bnN0IHsgcmV0dXJuIG1fc2hhZG93Um9vdDsgfQorICAgIFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3Qo
KSB7IHJldHVybiBtX3NoYWRvd1Jvb3Q7IH0KIAogICAgIHN0YXRpYyBTY29wZSYgZm9yTm9kZShO
b2RlJik7CiAgICAgc3RhdGljIFNjb3BlKiBmb3JPcmRpbmFsKEVsZW1lbnQmLCBTY29wZU9yZGlu
YWwpOwpAQCAtMTQzLDEyICsxNDYsMTggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgY29sbGVjdEFj
dGl2ZVN0eWxlU2hlZXRzKFZlY3RvcjxSZWZQdHI8U3R5bGVTaGVldD4+Jik7CiAKLSAgICBlbnVt
IFJlc29sdmVyVXBkYXRlVHlwZSB7CisgICAgZW51bSBjbGFzcyBSZXNvbHZlclVwZGF0ZVR5cGUg
ewogICAgICAgICBSZWNvbnN0cnVjdCwKICAgICAgICAgUmVzZXQsCiAgICAgICAgIEFkZGl0aXZl
CiAgICAgfTsKLSAgICBSZXNvbHZlclVwZGF0ZVR5cGUgYW5hbHl6ZVN0eWxlU2hlZXRDaGFuZ2Uo
Y29uc3QgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4mIG5ld1N0eWxlc2hlZXRzLCBib29s
JiByZXF1aXJlc0Z1bGxTdHlsZVJlY2FsYyk7CisgICAgc3RydWN0IFN0eWxlU2hlZXRDaGFuZ2Ug
eworICAgICAgICBSZXNvbHZlclVwZGF0ZVR5cGUgcmVzb2x2ZXJVcGRhdGVUeXBlOworICAgICAg
ICBWZWN0b3I8U3R5bGVTaGVldENvbnRlbnRzKj4gYWRkZWRTaGVldHMgeyB9OworICAgIH07Cisg
ICAgU3R5bGVTaGVldENoYW5nZSBhbmFseXplU3R5bGVTaGVldENoYW5nZShjb25zdCBWZWN0b3I8
UmVmUHRyPENTU1N0eWxlU2hlZXQ+PiYgbmV3U3R5bGVzaGVldHMpOworICAgIHZvaWQgaW52YWxp
ZGF0ZVN0eWxlQWZ0ZXJTdHlsZVNoZWV0Q2hhbmdlKGNvbnN0IFN0eWxlU2hlZXRDaGFuZ2UmKTsK
KwogICAgIHZvaWQgdXBkYXRlUmVzb2x2ZXIoVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4m
LCBSZXNvbHZlclVwZGF0ZVR5cGUpOwogCiAgICAgdm9pZCBwZW5kaW5nVXBkYXRlVGltZXJGaXJl
ZCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386533</attachid>
            <date>2019-12-30 07:20:00 -0800</date>
            <delta_ts>2019-12-30 12:17:02 -0800</delta_ts>
            <desc>patch</desc>
            <filename>scope-invalidation-3.patch</filename>
            <type>text/plain</type>
            <size>14564</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2YzM2OGI1YTU2OC4uNDkxNWU2M2Y5Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNiBAQAorMjAxOS0xMi0zMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgU3R5bGUgaW52YWxpZGF0aW9uIGNsZWFudXBzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDU2NDQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIG1vcmUgb2YgdGhlIGludmFsaWRh
dGlvbiBjb2RlIGZyb20gU3R5bGU6OlNjb3BlIHRvIFN0eWxlOjpJbnZhbGlkYXRvci4KKworICAg
ICAgICAqIHN0eWxlL1N0eWxlSW52YWxpZGF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlQWxsU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OkludmFsaWRhdG9yOjppbnZhbGlkYXRlSG9zdEFuZFNsb3R0ZWRTdHlsZUlmTmVlZGVk
KToKKyAgICAgICAgKiBzdHlsZS9TdHlsZUludmFsaWRhdG9yLmg6CisgICAgICAgICogc3R5bGUv
U3R5bGVTY29wZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2NvcGU6OmFuYWx5emVT
dHlsZVNoZWV0Q2hhbmdlKToKKworICAgICAgICBSZXR1cm4gU3R5bGVTaGVldENoYW5nZSBzdHJ1
Y3QuCisKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZTo6dXBkYXRlQWN0aXZlU3R5bGVT
aGVldHMpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNjb3BlOjppbnZhbGlkYXRlU3R5bGVB
ZnRlclN0eWxlU2hlZXRDaGFuZ2UpOgorCisgICAgICAgIFVzZSBTdHlsZVNoZWV0Q2hhbmdlIHRv
IGludmFsaWRhdGUgdGhlIHN0eWxlLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2NvcGU6
OnVwZGF0ZVJlc29sdmVyKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpTY29wZTo6c2NoZWR1
bGVVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNjb3BlOjpldmFsdWF0ZU1lZGlh
UXVlcmllcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6aW52YWxpZGF0ZUhvc3RBbmRTbG90
dGVkU3R5bGVJZk5lZWRlZCk6IERlbGV0ZWQuCisgICAgICAgICogc3R5bGUvU3R5bGVTY29wZS5o
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlNjb3BlOjpkb2N1bWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZTo6U2NvcGU6OnNoYWRvd1Jvb3QgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6U3R5bGU6OlNjb3BlOjpzaGFkb3dSb290KToKKwogMjAxOS0xMi0yOSAgWXVzdWtlIFN1enVr
aSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGJ1aWxkIGZpeCBh
ZnRlciByMjUzOTM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFs
aWRhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlSW52YWxpZGF0b3IuY3BwCmlu
ZGV4IGQ2NzI1Njg4MDUyLi41ZTk5ZmJiZDJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVJbnZhbGlkYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVJbnZhbGlkYXRvci5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJTaGFkb3dSb290
LmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgogI2luY2x1ZGUgIlN0eWxlUnVsZUltcG9y
dC5oIgorI2luY2x1ZGUgIlN0eWxlU2NvcGUuaCIKICNpbmNsdWRlICJTdHlsZVNjb3BlUnVsZVNl
dHMuaCIKICNpbmNsdWRlICJTdHlsZVNoZWV0Q29udGVudHMuaCIKICNpbmNsdWRlIDx3dGYvU2V0
Rm9yU2NvcGUuaD4KQEAgLTIxMiw2ICsyMTMsMjEgQEAgdm9pZCBJbnZhbGlkYXRvcjo6aW52YWxp
ZGF0ZVN0eWxlKERvY3VtZW50JiBkb2N1bWVudCkKICAgICBpbnZhbGlkYXRlU3R5bGVGb3JUcmVl
KCpkb2N1bWVudEVsZW1lbnQsICZmaWx0ZXIpOwogfQogCit2b2lkIEludmFsaWRhdG9yOjppbnZh
bGlkYXRlU3R5bGUoU2NvcGUmIHNjb3BlKQoreworICAgIGlmIChtX2RpcnRpZXNBbGxTdHlsZSkg
eworICAgICAgICBpbnZhbGlkYXRlQWxsU3R5bGUoc2NvcGUpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgaWYgKGF1dG8qIHNoYWRvd1Jvb3QgPSBzY29wZS5zaGFkb3dSb290KCkpIHsK
KyAgICAgICAgaW52YWxpZGF0ZVN0eWxlKCpzaGFkb3dSb290KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGludmFsaWRhdGVTdHlsZShzY29wZS5kb2N1bWVudCgpKTsKK30KKwogdm9p
ZCBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZVN0eWxlKFNoYWRvd1Jvb3QmIHNoYWRvd1Jvb3QpCiB7
CiAgICAgQVNTRVJUKCFtX2RpcnRpZXNBbGxTdHlsZSk7CkBAIC0zMzcsNSArMzUzLDM0IEBAIHZv
aWQgSW52YWxpZGF0b3I6OmludmFsaWRhdGVXaXRoTWF0Y2hFbGVtZW50UnVsZVNldHMoRWxlbWVu
dCYgZWxlbWVudCwgY29uc3QgTWF0CiAgICAgfQogfQogCit2b2lkIEludmFsaWRhdG9yOjppbnZh
bGlkYXRlQWxsU3R5bGUoU2NvcGUmIHNjb3BlKQoreworICAgIGlmIChhdXRvKiBzaGFkb3dSb290
ID0gc2NvcGUuc2hhZG93Um9vdCgpKSB7CisgICAgICAgIGZvciAoYXV0byYgc2hhZG93Q2hpbGQg
OiBjaGlsZHJlbk9mVHlwZTxFbGVtZW50Pigqc2hhZG93Um9vdCkpCisgICAgICAgICAgICBzaGFk
b3dDaGlsZC5pbnZhbGlkYXRlU3R5bGVGb3JTdWJ0cmVlSW50ZXJuYWwoKTsKKyAgICAgICAgaW52
YWxpZGF0ZUhvc3RBbmRTbG90dGVkU3R5bGVJZk5lZWRlZCgqc2hhZG93Um9vdCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBzY29wZS5kb2N1bWVudCgpLnNjaGVkdWxlRnVsbFN0eWxl
UmVidWlsZCgpOworfQorCit2b2lkIEludmFsaWRhdG9yOjppbnZhbGlkYXRlSG9zdEFuZFNsb3R0
ZWRTdHlsZUlmTmVlZGVkKFNoYWRvd1Jvb3QmIHNoYWRvd1Jvb3QpCit7CisgICAgYXV0byYgaG9z
dCA9ICpzaGFkb3dSb290Lmhvc3QoKTsKKyAgICBhdXRvKiByZXNvbHZlciA9IHNoYWRvd1Jvb3Qu
c3R5bGVTY29wZSgpLnJlc29sdmVySWZFeGlzdHMoKTsKKyAgICBpZiAoIXJlc29sdmVyKQorICAg
ICAgICByZXR1cm47CisgICAgYXV0byYgYXV0aG9yU3R5bGUgPSByZXNvbHZlci0+cnVsZVNldHMo
KS5hdXRob3JTdHlsZSgpOworCisgICAgaWYgKCFhdXRob3JTdHlsZS5ob3N0UHNldWRvQ2xhc3NS
dWxlcygpLmlzRW1wdHkoKSkKKyAgICAgICAgaG9zdC5pbnZhbGlkYXRlU3R5bGVJbnRlcm5hbCgp
OworCisgICAgaWYgKCFhdXRob3JTdHlsZS5zbG90dGVkUHNldWRvRWxlbWVudFJ1bGVzKCkuaXNF
bXB0eSgpKSB7CisgICAgICAgIGZvciAoYXV0byYgc2hhZG93Q2hpbGQgOiBjaGlsZHJlbk9mVHlw
ZTxFbGVtZW50Pihob3N0KSkKKyAgICAgICAgICAgIHNoYWRvd0NoaWxkLmludmFsaWRhdGVTdHls
ZUludGVybmFsKCk7CisgICAgfQorfQorCiB9CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUlu
dmFsaWRhdG9yLmgKaW5kZXggZTg3NWVhNjZmODkuLjE2ZjgwZGZiZTk3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUludmFsaWRhdG9yLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVJbnZhbGlkYXRvci5oCkBAIC0zNSw2ICszNSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIGNsYXNzIERvY3VtZW50OwogY2xhc3MgRWxlbWVudDsKIGNsYXNzIE1lZGlhUXVl
cnlFdmFsdWF0b3I7CitjbGFzcyBTY29wZTsKIGNsYXNzIFNlbGVjdG9yRmlsdGVyOwogY2xhc3Mg
U2hhZG93Um9vdDsKIGNsYXNzIFN0eWxlU2hlZXRDb250ZW50czsKQEAgLTUyLDYgKzUzLDcgQEAg
cHVibGljOgogCiAgICAgYm9vbCBkaXJ0aWVzQWxsU3R5bGUoKSBjb25zdCB7IHJldHVybiBtX2Rp
cnRpZXNBbGxTdHlsZTsgfQogICAgIHZvaWQgaW52YWxpZGF0ZVN0eWxlKERvY3VtZW50Jik7Cisg
ICAgdm9pZCBpbnZhbGlkYXRlU3R5bGUoU2NvcGUmKTsKICAgICB2b2lkIGludmFsaWRhdGVTdHls
ZShTaGFkb3dSb290Jik7CiAgICAgdm9pZCBpbnZhbGlkYXRlU3R5bGUoRWxlbWVudCYpOwogCkBA
IC02MCw2ICs2Miw4IEBAIHB1YmxpYzoKICAgICB1c2luZyBNYXRjaEVsZW1lbnRSdWxlU2V0cyA9
IEhhc2hNYXA8TWF0Y2hFbGVtZW50LCBJbnZhbGlkYXRpb25SdWxlU2V0VmVjdG9yLCBXVEY6Oklu
dEhhc2g8TWF0Y2hFbGVtZW50PiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxNYXRjaEVsZW1l
bnQ+PjsKICAgICBzdGF0aWMgdm9pZCBhZGRUb01hdGNoRWxlbWVudFJ1bGVTZXRzKEludmFsaWRh
dG9yOjpNYXRjaEVsZW1lbnRSdWxlU2V0cyYsIGNvbnN0IEludmFsaWRhdGlvblJ1bGVTZXQmKTsK
ICAgICBzdGF0aWMgdm9pZCBpbnZhbGlkYXRlV2l0aE1hdGNoRWxlbWVudFJ1bGVTZXRzKEVsZW1l
bnQmLCBjb25zdCBNYXRjaEVsZW1lbnRSdWxlU2V0cyYpOworICAgIHN0YXRpYyB2b2lkIGludmFs
aWRhdGVBbGxTdHlsZShTY29wZSYpOworICAgIHN0YXRpYyB2b2lkIGludmFsaWRhdGVIb3N0QW5k
U2xvdHRlZFN0eWxlSWZOZWVkZWQoU2hhZG93Um9vdCYpOwogCiBwcml2YXRlOgogICAgIGVudW0g
Y2xhc3MgQ2hlY2tEZXNjZW5kYW50cyB7IFllcywgTm8gfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVT
Y29wZS5jcHAKaW5kZXggOWFiMmRiMGY2YjcuLmQ3ZjhjNDUwOTBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVNjb3BlLmNwcApAQCAtMzgxLDMyICszODEsMjkgQEAgdm9pZCBTY29wZTo6Y29sbGVj
dEFjdGl2ZVN0eWxlU2hlZXRzKFZlY3RvcjxSZWZQdHI8U3R5bGVTaGVldD4+JiBzaGVldHMpCiAg
ICAgfQogfQogCi1TY29wZTo6UmVzb2x2ZXJVcGRhdGVUeXBlIFNjb3BlOjphbmFseXplU3R5bGVT
aGVldENoYW5nZShjb25zdCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+PiYgbmV3U3R5bGVz
aGVldHMsIGJvb2wmIHJlcXVpcmVzRnVsbFN0eWxlUmVjYWxjKQorU2NvcGU6OlN0eWxlU2hlZXRD
aGFuZ2UgU2NvcGU6OmFuYWx5emVTdHlsZVNoZWV0Q2hhbmdlKGNvbnN0IFZlY3RvcjxSZWZQdHI8
Q1NTU3R5bGVTaGVldD4+JiBuZXdTdHlsZXNoZWV0cykKIHsKLSAgICByZXF1aXJlc0Z1bGxTdHls
ZVJlY2FsYyA9IHRydWU7Ci0gICAgCiAgICAgdW5zaWduZWQgbmV3U3R5bGVzaGVldENvdW50ID0g
bmV3U3R5bGVzaGVldHMuc2l6ZSgpOwogCiAgICAgaWYgKCFyZXNvbHZlcklmRXhpc3RzKCkpCi0g
ICAgICAgIHJldHVybiBSZWNvbnN0cnVjdDsKLQotICAgIGF1dG8mIHN0eWxlUmVzb2x2ZXIgPSAq
cmVzb2x2ZXJJZkV4aXN0cygpOworICAgICAgICByZXR1cm4geyBSZXNvbHZlclVwZGF0ZVR5cGU6
OlJlY29uc3RydWN0IH07CiAKICAgICAvLyBGaW5kIG91dCB3aGljaCBzdHlsZXNoZWV0cyBhcmUg
bmV3LgogICAgIHVuc2lnbmVkIG9sZFN0eWxlc2hlZXRDb3VudCA9IG1fYWN0aXZlU3R5bGVTaGVl
dHMuc2l6ZSgpOwogICAgIGlmIChuZXdTdHlsZXNoZWV0Q291bnQgPCBvbGRTdHlsZXNoZWV0Q291
bnQpCi0gICAgICAgIHJldHVybiBSZWNvbnN0cnVjdDsKKyAgICAgICAgcmV0dXJuIHsgUmVzb2x2
ZXJVcGRhdGVUeXBlOjpSZWNvbnN0cnVjdCB9OwogCiAgICAgVmVjdG9yPFN0eWxlU2hlZXRDb250
ZW50cyo+IGFkZGVkU2hlZXRzOwogICAgIHVuc2lnbmVkIG5ld0luZGV4ID0gMDsKICAgICBmb3Ig
KHVuc2lnbmVkIG9sZEluZGV4ID0gMDsgb2xkSW5kZXggPCBvbGRTdHlsZXNoZWV0Q291bnQ7ICsr
b2xkSW5kZXgpIHsKICAgICAgICAgaWYgKG5ld0luZGV4ID49IG5ld1N0eWxlc2hlZXRDb3VudCkK
LSAgICAgICAgICAgIHJldHVybiBSZWNvbnN0cnVjdDsKKyAgICAgICAgICAgIHJldHVybiB7IFJl
c29sdmVyVXBkYXRlVHlwZTo6UmVjb25zdHJ1Y3QgfTsKKwogICAgICAgICB3aGlsZSAobV9hY3Rp
dmVTdHlsZVNoZWV0c1tvbGRJbmRleF0gIT0gbmV3U3R5bGVzaGVldHNbbmV3SW5kZXhdKSB7CiAg
ICAgICAgICAgICBhZGRlZFNoZWV0cy5hcHBlbmQoJm5ld1N0eWxlc2hlZXRzW25ld0luZGV4XS0+
Y29udGVudHMoKSk7CiAgICAgICAgICAgICArK25ld0luZGV4OwogICAgICAgICAgICAgaWYgKG5l
d0luZGV4ID09IG5ld1N0eWxlc2hlZXRDb3VudCkKLSAgICAgICAgICAgICAgICByZXR1cm4gUmVj
b25zdHJ1Y3Q7CisgICAgICAgICAgICAgICAgcmV0dXJuIHsgUmVzb2x2ZXJVcGRhdGVUeXBlOjpS
ZWNvbnN0cnVjdCB9OwogICAgICAgICB9CiAgICAgICAgICsrbmV3SW5kZXg7CiAgICAgfQpAQCAt
NDE1LDI2ICs0MTIsMTAgQEAgU2NvcGU6OlJlc29sdmVyVXBkYXRlVHlwZSBTY29wZTo6YW5hbHl6
ZVN0eWxlU2hlZXRDaGFuZ2UoY29uc3QgVmVjdG9yPFJlZlB0cjxDU1MKICAgICAgICAgYWRkZWRT
aGVldHMuYXBwZW5kKCZuZXdTdHlsZXNoZWV0c1tuZXdJbmRleF0tPmNvbnRlbnRzKCkpOwogICAg
ICAgICArK25ld0luZGV4OwogICAgIH0KKwogICAgIC8vIElmIGFsbCBuZXcgc2hlZXRzIHdlcmUg
YWRkZWQgYXQgdGhlIGVuZCBvZiB0aGUgbGlzdCB3ZSBjYW4ganVzdCBhZGQgdGhlbSB0byBleGlz
dGluZyBSZXNvbHZlci4KICAgICAvLyBJZiB0aGVyZSB3ZXJlIGluc2VydGlvbnMgd2UgbmVlZCB0
byByZS1hZGQgYWxsIHRoZSBzdHlsZXNoZWV0cyBzbyBydWxlcyBhcmUgb3JkZXJlZCBjb3JyZWN0
bHkuCi0gICAgYXV0byBSZXNvbHZlclVwZGF0ZVR5cGUgPSBoYXNJbnNlcnRpb25zID8gUmVzZXQg
OiBBZGRpdGl2ZTsKLQotICAgIC8vIElmIHdlIGFyZSBhbHJlYWR5IHBhcnNpbmcgdGhlIGJvZHkg
YW5kIHNvIG1heSBoYXZlIHNpZ25pZmljYW50IGFtb3VudCBvZiBlbGVtZW50cywgcHV0IHNvbWUg
ZWZmb3J0IGludG8gdHJ5aW5nIHRvIGF2b2lkIHN0eWxlIHJlY2FsY3MuCi0gICAgaWYgKCFtX2Rv
Y3VtZW50LmJvZHlPckZyYW1lc2V0KCkgfHwgbV9kb2N1bWVudC5oYXNOb2Rlc1dpdGhOb25GaW5h
bFN0eWxlKCkgfHwgbV9kb2N1bWVudC5oYXNOb2Rlc1dpdGhNaXNzaW5nU3R5bGUoKSkKLSAgICAg
ICAgcmV0dXJuIFJlc29sdmVyVXBkYXRlVHlwZTsKLQotICAgIEludmFsaWRhdG9yIGludmFsaWRh
dG9yKGFkZGVkU2hlZXRzLCBzdHlsZVJlc29sdmVyLm1lZGlhUXVlcnlFdmFsdWF0b3IoKSk7Ci0g
ICAgaWYgKGludmFsaWRhdG9yLmRpcnRpZXNBbGxTdHlsZSgpKQotICAgICAgICByZXR1cm4gUmVz
b2x2ZXJVcGRhdGVUeXBlOwotCi0gICAgaWYgKG1fc2hhZG93Um9vdCkKLSAgICAgICAgaW52YWxp
ZGF0b3IuaW52YWxpZGF0ZVN0eWxlKCptX3NoYWRvd1Jvb3QpOwotICAgIGVsc2UKLSAgICAgICAg
aW52YWxpZGF0b3IuaW52YWxpZGF0ZVN0eWxlKG1fZG9jdW1lbnQpOwotCi0gICAgcmVxdWlyZXNG
dWxsU3R5bGVSZWNhbGMgPSBmYWxzZTsKLQotICAgIHJldHVybiBSZXNvbHZlclVwZGF0ZVR5cGU7
CisgICAgcmV0dXJuIHsgaGFzSW5zZXJ0aW9ucyA/IFJlc29sdmVyVXBkYXRlVHlwZTo6UmVzZXQg
OiBSZXNvbHZlclVwZGF0ZVR5cGU6OkFkZGl0aXZlLCBXVEZNb3ZlKGFkZGVkU2hlZXRzKSB9Owog
fQogCiBzdGF0aWMgdm9pZCBmaWx0ZXJFbmFibGVkTm9uZW1wdHlDU1NTdHlsZVNoZWV0cyhWZWN0
b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+PiYgcmVzdWx0LCBjb25zdCBWZWN0b3I8UmVmUHRyPFN0
eWxlU2hlZXQ+PiYgc2hlZXRzKQpAQCAtNDUzLDE4ICs0MzQsNiBAQCBzdGF0aWMgdm9pZCBmaWx0
ZXJFbmFibGVkTm9uZW1wdHlDU1NTdHlsZVNoZWV0cyhWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hl
ZXQ+PiYgcgogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgaW52YWxpZGF0ZUhvc3RBbmRTbG90dGVk
U3R5bGVJZk5lZWRlZChTaGFkb3dSb290JiBzaGFkb3dSb290LCBSZXNvbHZlciYgcmVzb2x2ZXIp
Ci17Ci0gICAgYXV0byYgaG9zdCA9ICpzaGFkb3dSb290Lmhvc3QoKTsKLSAgICBpZiAoIXJlc29s
dmVyLnJ1bGVTZXRzKCkuYXV0aG9yU3R5bGUoKS5ob3N0UHNldWRvQ2xhc3NSdWxlcygpLmlzRW1w
dHkoKSkKLSAgICAgICAgaG9zdC5pbnZhbGlkYXRlU3R5bGUoKTsKLQotICAgIGlmICghcmVzb2x2
ZXIucnVsZVNldHMoKS5hdXRob3JTdHlsZSgpLnNsb3R0ZWRQc2V1ZG9FbGVtZW50UnVsZXMoKS5p
c0VtcHR5KCkpIHsKLSAgICAgICAgZm9yIChhdXRvJiBzaGFkb3dDaGlsZCA6IGNoaWxkcmVuT2ZU
eXBlPEVsZW1lbnQ+KGhvc3QpKQotICAgICAgICAgICAgc2hhZG93Q2hpbGQuaW52YWxpZGF0ZVN0
eWxlKCk7Ci0gICAgfQotfQotCiB2b2lkIFNjb3BlOjp1cGRhdGVBY3RpdmVTdHlsZVNoZWV0cyhV
cGRhdGVUeXBlIHVwZGF0ZVR5cGUpCiB7CiAgICAgQVNTRVJUKCFtX3BlbmRpbmdVcGRhdGUpOwpA
QCAtNDg5LDEyICs0NTgsMTEgQEAgdm9pZCBTY29wZTo6dXBkYXRlQWN0aXZlU3R5bGVTaGVldHMo
VXBkYXRlVHlwZSB1cGRhdGVUeXBlKQogICAgIGFjdGl2ZUNTU1N0eWxlU2hlZXRzLmFwcGVuZFZl
Y3RvcihtX2RvY3VtZW50LmV4dGVuc2lvblN0eWxlU2hlZXRzKCkuYXV0aG9yU3R5bGVTaGVldHNG
b3JUZXN0aW5nKCkpOwogICAgIGZpbHRlckVuYWJsZWROb25lbXB0eUNTU1N0eWxlU2hlZXRzKGFj
dGl2ZUNTU1N0eWxlU2hlZXRzLCBhY3RpdmVTdHlsZVNoZWV0cyk7CiAKLSAgICBib29sIHJlcXVp
cmVzRnVsbFN0eWxlUmVjYWxjID0gdHJ1ZTsKLSAgICBSZXNvbHZlclVwZGF0ZVR5cGUgUmVzb2x2
ZXJVcGRhdGVUeXBlID0gUmVjb25zdHJ1Y3Q7CisgICAgYXV0byBzdHlsZVNoZWV0Q2hhbmdlID0g
U3R5bGVTaGVldENoYW5nZSB7IFJlc29sdmVyVXBkYXRlVHlwZTo6UmVjb25zdHJ1Y3QgfTsKICAg
ICBpZiAodXBkYXRlVHlwZSA9PSBVcGRhdGVUeXBlOjpBY3RpdmVTZXQpCi0gICAgICAgIFJlc29s
dmVyVXBkYXRlVHlwZSA9IGFuYWx5emVTdHlsZVNoZWV0Q2hhbmdlKGFjdGl2ZUNTU1N0eWxlU2hl
ZXRzLCByZXF1aXJlc0Z1bGxTdHlsZVJlY2FsYyk7CisgICAgICAgIHN0eWxlU2hlZXRDaGFuZ2Ug
PSBhbmFseXplU3R5bGVTaGVldENoYW5nZShhY3RpdmVDU1NTdHlsZVNoZWV0cyk7CiAKLSAgICB1
cGRhdGVSZXNvbHZlcihhY3RpdmVDU1NTdHlsZVNoZWV0cywgUmVzb2x2ZXJVcGRhdGVUeXBlKTsK
KyAgICB1cGRhdGVSZXNvbHZlcihhY3RpdmVDU1NTdHlsZVNoZWV0cywgc3R5bGVTaGVldENoYW5n
ZS5yZXNvbHZlclVwZGF0ZVR5cGUpOwogCiAgICAgbV93ZWFrQ29weU9mQWN0aXZlU3R5bGVTaGVl
dExpc3RGb3JGYXN0TG9va3VwID0gbnVsbHB0cjsKICAgICBtX2FjdGl2ZVN0eWxlU2hlZXRzLnN3
YXAoYWN0aXZlQ1NTU3R5bGVTaGVldHMpOwpAQCAtNTA3LDMxICs0NzUsMzcgQEAgdm9pZCBTY29w
ZTo6dXBkYXRlQWN0aXZlU3R5bGVTaGVldHMoVXBkYXRlVHlwZSB1cGRhdGVUeXBlKQogICAgICAg
ICAgICAgbV91c2VzU3R5bGVCYXNlZEVkaXRhYmlsaXR5ID0gdHJ1ZTsKICAgICB9CiAKLSAgICAv
LyBGSVhNRTogTW92ZSB0aGlzIGNvZGUgc29tZXdoZXJlIGVsc2UuCi0gICAgaWYgKHJlcXVpcmVz
RnVsbFN0eWxlUmVjYWxjKSB7Ci0gICAgICAgIGlmIChtX3NoYWRvd1Jvb3QpIHsKLSAgICAgICAg
ICAgIGZvciAoYXV0byYgc2hhZG93Q2hpbGQgOiBjaGlsZHJlbk9mVHlwZTxFbGVtZW50PigqbV9z
aGFkb3dSb290KSkKLSAgICAgICAgICAgICAgICBzaGFkb3dDaGlsZC5pbnZhbGlkYXRlU3R5bGVG
b3JTdWJ0cmVlKCk7Ci0gICAgICAgICAgICBpbnZhbGlkYXRlSG9zdEFuZFNsb3R0ZWRTdHlsZUlm
TmVlZGVkKCptX3NoYWRvd1Jvb3QsIHJlc29sdmVyKCkpOwotICAgICAgICB9IGVsc2UKLSAgICAg
ICAgICAgIG1fZG9jdW1lbnQuc2NoZWR1bGVGdWxsU3R5bGVSZWJ1aWxkKCk7CisgICAgaW52YWxp
ZGF0ZVN0eWxlQWZ0ZXJTdHlsZVNoZWV0Q2hhbmdlKHN0eWxlU2hlZXRDaGFuZ2UpOworfQorCit2
b2lkIFNjb3BlOjppbnZhbGlkYXRlU3R5bGVBZnRlclN0eWxlU2hlZXRDaGFuZ2UoY29uc3QgU3R5
bGVTaGVldENoYW5nZSYgc3R5bGVTaGVldENoYW5nZSkKK3sKKyAgICAvLyBJZiB3ZSBhcmUgYWxy
ZWFkeSBwYXJzaW5nIHRoZSBib2R5IGFuZCBzbyBtYXkgaGF2ZSBzaWduaWZpY2FudCBhbW91bnQg
b2YgZWxlbWVudHMsIHB1dCBzb21lIGVmZm9ydCBpbnRvIHRyeWluZyB0byBhdm9pZCBzdHlsZSBy
ZWNhbGNzLgorICAgIGJvb2wgaW52YWxpZGF0ZUFsbCA9ICFtX2RvY3VtZW50LmJvZHlPckZyYW1l
c2V0KCkgfHwgbV9kb2N1bWVudC5oYXNOb2Rlc1dpdGhOb25GaW5hbFN0eWxlKCkgfHwgbV9kb2N1
bWVudC5oYXNOb2Rlc1dpdGhNaXNzaW5nU3R5bGUoKTsKKworICAgIGlmIChzdHlsZVNoZWV0Q2hh
bmdlLnJlc29sdmVyVXBkYXRlVHlwZSA9PSBSZXNvbHZlclVwZGF0ZVR5cGU6OlJlY29uc3RydWN0
IHx8IGludmFsaWRhdGVBbGwpIHsKKyAgICAgICAgSW52YWxpZGF0b3I6OmludmFsaWRhdGVBbGxT
dHlsZSgqdGhpcyk7CisgICAgICAgIHJldHVybjsKICAgICB9CisKKyAgICBJbnZhbGlkYXRvciBp
bnZhbGlkYXRvcihzdHlsZVNoZWV0Q2hhbmdlLmFkZGVkU2hlZXRzLCBtX3Jlc29sdmVyLT5tZWRp
YVF1ZXJ5RXZhbHVhdG9yKCkpOworICAgIGludmFsaWRhdG9yLmludmFsaWRhdGVTdHlsZSgqdGhp
cyk7CiB9CiAKIHZvaWQgU2NvcGU6OnVwZGF0ZVJlc29sdmVyKFZlY3RvcjxSZWZQdHI8Q1NTU3R5
bGVTaGVldD4+JiBhY3RpdmVTdHlsZVNoZWV0cywgUmVzb2x2ZXJVcGRhdGVUeXBlIHVwZGF0ZVR5
cGUpCiB7Ci0gICAgaWYgKHVwZGF0ZVR5cGUgPT0gUmVjb25zdHJ1Y3QpIHsKKyAgICBpZiAodXBk
YXRlVHlwZSA9PSBSZXNvbHZlclVwZGF0ZVR5cGU6OlJlY29uc3RydWN0KSB7CiAgICAgICAgIGNs
ZWFyUmVzb2x2ZXIoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBhdXRvJiBzdHlsZVJl
c29sdmVyID0gcmVzb2x2ZXIoKTsKIAogICAgIFNldEZvclNjb3BlPGJvb2w+IGlzVXBkYXRpbmdT
dHlsZVJlc29sdmVyIHsgbV9pc1VwZGF0aW5nU3R5bGVSZXNvbHZlciwgdHJ1ZSB9OwotICAgIGlm
ICh1cGRhdGVUeXBlID09IFJlc2V0KSB7CisgICAgaWYgKHVwZGF0ZVR5cGUgPT0gUmVzb2x2ZXJV
cGRhdGVUeXBlOjpSZXNldCkgewogICAgICAgICBzdHlsZVJlc29sdmVyLnJ1bGVTZXRzKCkucmVz
ZXRBdXRob3JTdHlsZSgpOwogICAgICAgICBzdHlsZVJlc29sdmVyLmFwcGVuZEF1dGhvclN0eWxl
U2hlZXRzKGFjdGl2ZVN0eWxlU2hlZXRzKTsKICAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlQo
dXBkYXRlVHlwZSA9PSBBZGRpdGl2ZSk7CisgICAgICAgIEFTU0VSVCh1cGRhdGVUeXBlID09IFJl
c29sdmVyVXBkYXRlVHlwZTo6QWRkaXRpdmUpOwogICAgICAgICB1bnNpZ25lZCBmaXJzdE5ld0lu
ZGV4ID0gbV9hY3RpdmVTdHlsZVNoZWV0cy5zaXplKCk7CiAgICAgICAgIFZlY3RvcjxSZWZQdHI8
Q1NTU3R5bGVTaGVldD4+IG5ld1N0eWxlU2hlZXRzOwogICAgICAgICBuZXdTdHlsZVNoZWV0cy5h
cHBlbmRSYW5nZShhY3RpdmVTdHlsZVNoZWV0cy5iZWdpbigpICsgZmlyc3ROZXdJbmRleCwgYWN0
aXZlU3R5bGVTaGVldHMuZW5kKCkpOwpAQCAtNTk5LDggKzU3Myw4IEBAIHZvaWQgU2NvcGU6OnNj
aGVkdWxlVXBkYXRlKFVwZGF0ZVR5cGUgdXBkYXRlKQogewogICAgIGlmICh1cGRhdGUgPT0gVXBk
YXRlVHlwZTo6Q29udGVudHNPckludGVycHJldGF0aW9uKSB7CiAgICAgICAgIC8vIDpob3N0IGFu
ZCA6OnNsb3R0ZWQgcnVsZXMgbWlnaHQgZ28gYXdheS4KLSAgICAgICAgaWYgKG1fc2hhZG93Um9v
dCAmJiBtX3Jlc29sdmVyKQotICAgICAgICAgICAgaW52YWxpZGF0ZUhvc3RBbmRTbG90dGVkU3R5
bGVJZk5lZWRlZCgqbV9zaGFkb3dSb290LCAqbV9yZXNvbHZlcik7CisgICAgICAgIGlmIChtX3No
YWRvd1Jvb3QpCisgICAgICAgICAgICBJbnZhbGlkYXRvcjo6aW52YWxpZGF0ZUhvc3RBbmRTbG90
dGVkU3R5bGVJZk5lZWRlZCgqbV9zaGFkb3dSb290KTsKICAgICAgICAgLy8gRklYTUU6IEFuaW1h
dGlvbiBjb2RlIG1heSB0cmlnZ2VyIHJlc291cmNlIGxvYWQgaW4gbWlkZGxlIG9mIHN0eWxlIHJl
Y2FsYyBhbmQgdGhhdCBjYW4gYWRkIGEgcnVsZSB0byBhIGNvbnRlbnQgZXh0ZW5zaW9uIHN0eWxl
c2hlZXQuCiAgICAgICAgIC8vICAgICAgICBGaXggYW5kIHJlbW92ZSBpc1Jlc29sdmluZ1RyZWVT
dHlsZSgpIHRlc3QgYmVsb3csIHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk0MzM1CiAgICAgICAgIC8vIEZJWE1FOiBUaGUgbV9pc1VwZGF0aW5nU3R5bGVSZXNv
bHZlciB0ZXN0IGlzIGhlcmUgYmVjYXVzZSBleHRlbnNpb24gc3R5bGVzaGVldHMgY2FuIGdldCB1
cyBoZXJlIGZyb20gUmVzb2x2ZXI6OmFwcGVuZEF1dGhvclN0eWxlU2hlZXRzLgpAQCAtNjUyLDEw
ICs2MjYsNyBAQCB2b2lkIFNjb3BlOjpldmFsdWF0ZU1lZGlhUXVlcmllcyhUZXN0RnVuY3Rpb24m
JiB0ZXN0RnVuY3Rpb24pCiAgICAgICAgIHN3aXRjaCAoZXZhbHVhdGlvbkNoYW5nZXMtPnR5cGUp
IHsKICAgICAgICAgY2FzZSBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzOjpUeXBl
OjpJbnZhbGlkYXRlU3R5bGU6IHsKICAgICAgICAgICAgIEludmFsaWRhdG9yIGludmFsaWRhdG9y
KGV2YWx1YXRpb25DaGFuZ2VzLT5pbnZhbGlkYXRpb25SdWxlU2V0cyk7Ci0gICAgICAgICAgICBp
ZiAobV9zaGFkb3dSb290KQotICAgICAgICAgICAgICAgIGludmFsaWRhdG9yLmludmFsaWRhdGVT
dHlsZSgqbV9zaGFkb3dSb290KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBp
bnZhbGlkYXRvci5pbnZhbGlkYXRlU3R5bGUobV9kb2N1bWVudCk7CisgICAgICAgICAgICBpbnZh
bGlkYXRvci5pbnZhbGlkYXRlU3R5bGUoKnRoaXMpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBEeW5hbWljTWVkaWFRdWVyeUV2YWx1YXRpb25DaGFuZ2VzOjpU
eXBlOjpSZXNldFN0eWxlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVT
Y29wZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZS5oCmluZGV4IDNiMzNhYTlk
YWFjLi40NzRhMDhhNjI1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVT
Y29wZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGUuaApAQCAtMTIzLDYg
KzEyMyw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbGVhc2VNZW1vcnkoKTsKIAogICAgIGNvbnN0
IERvY3VtZW50JiBkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KKyAgICBE
b2N1bWVudCYgZG9jdW1lbnQoKSB7IHJldHVybiBtX2RvY3VtZW50OyB9CisgICAgY29uc3QgU2hh
ZG93Um9vdCogc2hhZG93Um9vdCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hhZG93Um9vdDsgfQorICAg
IFNoYWRvd1Jvb3QqIHNoYWRvd1Jvb3QoKSB7IHJldHVybiBtX3NoYWRvd1Jvb3Q7IH0KIAogICAg
IHN0YXRpYyBTY29wZSYgZm9yTm9kZShOb2RlJik7CiAgICAgc3RhdGljIFNjb3BlKiBmb3JPcmRp
bmFsKEVsZW1lbnQmLCBTY29wZU9yZGluYWwpOwpAQCAtMTQzLDEyICsxNDYsMTggQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgY29sbGVjdEFjdGl2ZVN0eWxlU2hlZXRzKFZlY3RvcjxSZWZQdHI8U3R5
bGVTaGVldD4+Jik7CiAKLSAgICBlbnVtIFJlc29sdmVyVXBkYXRlVHlwZSB7CisgICAgZW51bSBj
bGFzcyBSZXNvbHZlclVwZGF0ZVR5cGUgewogICAgICAgICBSZWNvbnN0cnVjdCwKICAgICAgICAg
UmVzZXQsCiAgICAgICAgIEFkZGl0aXZlCiAgICAgfTsKLSAgICBSZXNvbHZlclVwZGF0ZVR5cGUg
YW5hbHl6ZVN0eWxlU2hlZXRDaGFuZ2UoY29uc3QgVmVjdG9yPFJlZlB0cjxDU1NTdHlsZVNoZWV0
Pj4mIG5ld1N0eWxlc2hlZXRzLCBib29sJiByZXF1aXJlc0Z1bGxTdHlsZVJlY2FsYyk7CisgICAg
c3RydWN0IFN0eWxlU2hlZXRDaGFuZ2UgeworICAgICAgICBSZXNvbHZlclVwZGF0ZVR5cGUgcmVz
b2x2ZXJVcGRhdGVUeXBlOworICAgICAgICBWZWN0b3I8U3R5bGVTaGVldENvbnRlbnRzKj4gYWRk
ZWRTaGVldHMgeyB9OworICAgIH07CisgICAgU3R5bGVTaGVldENoYW5nZSBhbmFseXplU3R5bGVT
aGVldENoYW5nZShjb25zdCBWZWN0b3I8UmVmUHRyPENTU1N0eWxlU2hlZXQ+PiYgbmV3U3R5bGVz
aGVldHMpOworICAgIHZvaWQgaW52YWxpZGF0ZVN0eWxlQWZ0ZXJTdHlsZVNoZWV0Q2hhbmdlKGNv
bnN0IFN0eWxlU2hlZXRDaGFuZ2UmKTsKKwogICAgIHZvaWQgdXBkYXRlUmVzb2x2ZXIoVmVjdG9y
PFJlZlB0cjxDU1NTdHlsZVNoZWV0Pj4mLCBSZXNvbHZlclVwZGF0ZVR5cGUpOwogCiAgICAgdm9p
ZCBwZW5kaW5nVXBkYXRlVGltZXJGaXJlZCgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>