<?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>30943</bug_id>
          
          <creation_ts>2009-10-29 19:16:41 -0700</creation_ts>
          <short_desc>[V8] More cleanup after r49949: remove ListenerGuard.</short_desc>
          <delta_ts>2009-10-30 13:13:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dmitry Titov">dimich</reporter>
          <assigned_to name="Dmitry Titov">dimich</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>159188</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-10-29 19:16:41 -0700</bug_when>
    <thetext>This is remaining cleanup after http://trac.webkit.org/changeset/49949. Since EventListeners are now independent of Frame or V8 context, there is no need to have ListenerGuard that was disabling listeners on window close or navigation.

This enables fast/events/add-event-without-document.html for Chromium.
Run the change through Chromium trybots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159189</commentid>
    <comment_count>1</comment_count>
      <attachid>42170</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-10-29 19:21:18 -0700</bug_when>
    <thetext>Created attachment 42170
Proposed patch.

Trybot run completed successfully.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159210</commentid>
    <comment_count>2</comment_count>
      <attachid>42170</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2009-10-29 20:38:22 -0700</bug_when>
    <thetext>Comment on attachment 42170
Proposed patch.

r=me. Gorgeous. Thanks for cleaning up what I should&apos;ve cleaned up in the first place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>159416</commentid>
    <comment_count>3</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-10-30 13:13:57 -0700</bug_when>
    <thetext>Landed: http://trac.webkit.org/changeset/50347</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>42170</attachid>
            <date>2009-10-29 19:21:18 -0700</date>
            <delta_ts>2009-10-29 20:38:21 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>21215</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MGVhYzgxNC4uOGJhOGIwZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAwOS0xMC0yOSAgRG1pdHJ5IFRpdG92
ICA8ZGltaWNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbVjhdIE1vcmUgY2xlYW51cCBhZnRlciByNDk5NDk6IHJlbW92ZSBM
aXN0ZW5lckd1YXJkLgorICAgICAgICBMaXN0ZW5lckd1YXJkIGlzIG5vIGxvbmdlciBuZWVkZWQg
c2luY2UgRXZlbnRMaXN0ZW5lcnMgZG8gbm90IGRlcGVuZCBvbiBmcmFtZSBvciB2OCBjb250ZXh0
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzA5NDMK
KworICAgICAgICBDb3ZlcmVkIGJ5IGZhc3QvZXZlbnRzL2FkZC1ldmVudC13aXRob3V0LWRvY3Vt
ZW50Lmh0bWwgd2hpY2ggd2lsbCBub3cgcGFzcyBpbiBDaHJvbWl1bS4KKworICAgICAgICAqIGJp
bmRpbmdzL3Y4L1Y4QWJzdHJhY3RFdmVudExpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlY4QWJzdHJhY3RFdmVudExpc3RlbmVyOjpWOEFic3RyYWN0RXZlbnRMaXN0ZW5lcik6CisgICAg
ICAgIChXZWJDb3JlOjpWOEFic3RyYWN0RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQpOgorICAg
ICAgICAqIGJpbmRpbmdzL3Y4L1Y4QWJzdHJhY3RFdmVudExpc3RlbmVyLmg6CisgICAgICAgICog
YmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4RE9NV3Jh
cHBlcjo6Z2V0RXZlbnRMaXN0ZW5lcik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhFdmVudExp
c3RlbmVyTGlzdC5oOgorICAgICAgICAoV2ViQ29yZTo6VjhFdmVudExpc3RlbmVyTGlzdDo6Zmlu
ZE9yQ3JlYXRlV3JhcHBlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0
ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOExhenlFdmVudExpc3RlbmVyOjpWOExhenlF
dmVudExpc3RlbmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOFByb3h5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlY4UHJveHk6OlY4UHJveHkpOgorICAgICAgICAoV2ViQ29yZTo6VjhQcm94
eTo6ZGlzY29ubmVjdEZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlY4UHJveHk6OmNsZWFyRm9y
TmF2aWdhdGlvbik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhQcm94eS5oOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VjhXb3JrZXJDb250ZXh0RXZlbnRMaXN0ZW5lcjo6VjhXb3JrZXJDb250ZXh0RXZl
bnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpWOFdvcmtlckNvbnRleHRFdmVudExpc3Rl
bmVyOjpoYW5kbGVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpWOFdvcmtlckNvbnRleHRFdmVu
dExpc3RlbmVyOjpyZXBvcnRFcnJvcik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhXb3JrZXJD
b250ZXh0RXZlbnRMaXN0ZW5lci5oOgorICAgICAgICAoV2ViQ29yZTo6VjhXb3JrZXJDb250ZXh0
RXZlbnRMaXN0ZW5lcjo6Y3JlYXRlKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9Xb3JrZXJDb250
ZXh0RXhlY3V0aW9uUHJveHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29udGV4dEV4
ZWN1dGlvblByb3h5OjpXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5OjpkaXNwb3NlKToKKyAgICAgICAgKFdl
YkNvcmU6OldvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6ZmluZE9yQ3JlYXRlRXZlbnRMaXN0
ZW5lcik6CisgICAgICAgICogYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5
Lmg6CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tRXZlbnRMaXN0ZW5lci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpWOEV2ZW50TGlzdGVuZXI6OlY4RXZlbnRMaXN0ZW5lcik6
CisgICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tRXZlbnRMaXN0ZW5lci5oOgor
ICAgICAgICAoV2ViQ29yZTo6VjhFdmVudExpc3RlbmVyOjpjcmVhdGUpOgorCiAyMDA5LTEwLTI5
ICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgYnVpbGQgZml4LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEFi
c3RyYWN0RXZlbnRMaXN0ZW5lci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QWJzdHJhY3RF
dmVudExpc3RlbmVyLmNwcAppbmRleCBmMjdjNjE5Li4xYWIyZTA0IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4QWJzdHJhY3RFdmVudExpc3RlbmVyLmNwcAorKysgYi9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4QWJzdHJhY3RFdmVudExpc3RlbmVyLmNwcApAQCAtNTAsMTEgKzUwLDEw
IEBAIHN0YXRpYyB2b2lkIHdlYWtFdmVudExpc3RlbmVyQ2FsbGJhY2sodjg6OlBlcnNpc3RlbnQ8
djg6OlZhbHVlPiwgdm9pZCogcGFyYW1ldGVyCiAgICAgbGlzdGVuZXItPmRpc3Bvc2VMaXN0ZW5l
ck9iamVjdCgpOwogfQogCi1WOEFic3RyYWN0RXZlbnRMaXN0ZW5lcjo6VjhBYnN0cmFjdEV2ZW50
TGlzdGVuZXIoUGFzc1JlZlB0cjxWOExpc3RlbmVyR3VhcmQ+IGd1YXJkLCBib29sIGlzQXR0cmli
dXRlKQorVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXI6OlY4QWJzdHJhY3RFdmVudExpc3RlbmVyKGJv
b2wgaXNBdHRyaWJ1dGUpCiAgICAgOiBFdmVudExpc3RlbmVyKEpTRXZlbnRMaXN0ZW5lclR5cGUp
CiAgICAgLCBtX2lzV2Vhayh0cnVlKQogICAgICwgbV9pc0F0dHJpYnV0ZShpc0F0dHJpYnV0ZSkK
LSAgICAsIG1fZ3VhcmQoZ3VhcmQpCiB7CiB9CiAKQEAgLTcwLDEwICs2OSw2IEBAIFY4QWJzdHJh
Y3RFdmVudExpc3RlbmVyOjp+VjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIoKQogCiB2b2lkIFY4QWJz
dHJhY3RFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBFdmVudCogZXZlbnQpCiB7Ci0gICAgLy8gRXZlbnRMaXN0ZW5lciBjb3VsZCBiZSBk
aXNjb25uZWN0ZWQgZnJvbSB0aGUgZnJhbWUuCi0gICAgaWYgKGRpc2Nvbm5lY3RlZCgpKQotICAg
ICAgICByZXR1cm47Ci0KICAgICAvLyBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gb24gWE1MSHR0cFJl
cXVlc3QgY2FuIGNsZWFyIHRoZSBldmVudCBsaXN0ZW5lciBhbmQgZGVzdHJveXMgJ3RoaXMnIG9i
amVjdC4gS2VlcCBhIGxvY2FsIHJlZmVyZW5jZSB0byBpdC4KICAgICAvLyBTZWUgaXNzdWUgODg5
ODI5LgogICAgIFJlZlB0cjxWOEFic3RyYWN0RXZlbnRMaXN0ZW5lcj4gcHJvdGVjdCh0aGlzKTsK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIu
aCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIuaAppbmRleCBj
ZWZmMDAxLi42OTVjNjY3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4QWJzdHJh
Y3RFdmVudExpc3RlbmVyLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOEFic3RyYWN0RXZl
bnRMaXN0ZW5lci5oCkBAIC00NCwyOSArNDQsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
Y2xhc3MgRnJhbWU7CiAgICAgY2xhc3MgVjhQcm94eTsKIAotICAgIC8vIFNoYXJlZCBieSBsaXN0
ZW5lciBvYmplY3RzIGFuZCBWOFByb3h5IHNvIHRoYXQgVjhQcm94eSBjYW4KLSAgICAvLyBzaWxl
bmNlIGxpc3RlbmVycyB3aGVuIG5lZWRlZC4KLSAgICBjbGFzcyBWOExpc3RlbmVyR3VhcmQgOiBw
dWJsaWMgUmVmQ291bnRlZDxWOExpc3RlbmVyR3VhcmQ+IHsKLSAgICAgIHB1YmxpYzoKLSAgICAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8VjhMaXN0ZW5lckd1YXJkPiBjcmVhdGUoKQotICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFY4TGlzdGVuZXJHdWFyZCk7Ci0gICAg
ICAgIH0KLQotICAgICAgICBib29sIGlzRGlzY29ubmVjdGVkKCkgY29uc3QgeyByZXR1cm4gbV9k
aXNjb25uZWN0ZWQ7IH0KLQotICAgICAgICB2b2lkIGRpc2Nvbm5lY3RMaXN0ZW5lcnMoKQotICAg
ICAgICB7Ci0gICAgICAgICAgICBtX2Rpc2Nvbm5lY3RlZCA9IHRydWU7Ci0gICAgICAgIH0KLQot
ICAgICAgcHJpdmF0ZToKLSAgICAgICAgVjhMaXN0ZW5lckd1YXJkKCkKLSAgICAgICAgICAgIDog
bV9kaXNjb25uZWN0ZWQoZmFsc2UpIHsgfQotCi0gICAgICAgIGJvb2wgbV9kaXNjb25uZWN0ZWQ7
Ci0gICAgfTsKLQogICAgIC8vIFRoZXJlIGFyZSB0d28ga2luZHMgb2YgZXZlbnQgbGlzdGVuZXJz
OiBIVE1MIG9yIG5vbi1ITVRMLiBvbmxvYWQsCiAgICAgLy8gb25mb2N1cywgZXRjIChhdHRyaWJ1
dGVzKSBhcmUgYWx3YXlzIEhUTUwgZXZlbnQgaGFuZGxlciB0eXBlOyBFdmVudAogICAgIC8vIGxp
c3RlbmVycyBhZGRlZCBieSBXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lciBvcgpAQCAtMTE5LDEwICs5
Niw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gRGlzcG9zZSBsaXN0ZW5lciBv
YmplY3QgYW5kIGNsZWFyIHRoZSBoYW5kbGUuCiAgICAgICAgIHZvaWQgZGlzcG9zZUxpc3RlbmVy
T2JqZWN0KCk7CiAKLSAgICAgICAgdmlydHVhbCBib29sIGRpc2Nvbm5lY3RlZCgpIGNvbnN0IHsg
cmV0dXJuIG1fZ3VhcmQgJiYgbV9ndWFyZC0+aXNEaXNjb25uZWN0ZWQoKTsgfQotCiAgICAgcHJv
dGVjdGVkOgotICAgICAgICBWOEFic3RyYWN0RXZlbnRMaXN0ZW5lcihQYXNzUmVmUHRyPFY4TGlz
dGVuZXJHdWFyZD4sIGJvb2wgaXNBdHRyaWJ1dGUpOworICAgICAgICBWOEFic3RyYWN0RXZlbnRM
aXN0ZW5lcihib29sIGlzQXR0cmlidXRlKTsKIAogICAgICAgICB2aXJ0dWFsIHZvaWQgcHJlcGFy
ZUxpc3RlbmVyT2JqZWN0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKSB7IH0KIApAQCAtMTQ1LDgg
KzEyMCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICAvLyBJbmRpY2F0ZXMgaWYg
dGhpcyBpcyBhbiBIVE1MIHR5cGUgbGlzdGVuZXIuCiAgICAgICAgIGJvb2wgbV9pc0F0dHJpYnV0
ZTsKLQotICAgICAgICBSZWZQdHI8VjhMaXN0ZW5lckd1YXJkPiBtX2d1YXJkOwogICAgIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhET01XcmFwcGVyLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcApp
bmRleCBjZjA1ZjUzLi4zOWU1OGM3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
RE9NV3JhcHBlci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3Bw
CkBAIC0xNDEyLDIwICsxNDEyLDcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RE9NV3JhcHBl
cjo6Y29udmVydEV2ZW50TGlzdGVuZXJUb1Y4T2JqZWN0KFNjcmlwdEV4ZWN1dGkKIAogUGFzc1Jl
ZlB0cjxFdmVudExpc3RlbmVyPiBWOERPTVdyYXBwZXI6OmdldEV2ZW50TGlzdGVuZXIoTm9kZSog
bm9kZSwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gdmFsdWUsIGJvb2wgaXNBdHRyaWJ1dGUsIExpc3Rl
bmVyTG9va3VwVHlwZSBsb29rdXApCiB7Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCA9IG5vZGUtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKLSAgICBpZiAoIWNvbnRleHQp
Ci0gICAgICAgIHJldHVybiAwOwotCi0gICAgVjhQcm94eSogcHJveHkgPSBWOFByb3h5OjpyZXRy
aWV2ZShjb250ZXh0KTsKLSAgICAvLyBUaGUgZG9jdW1lbnQgbWlnaHQgYmUgY3JlYXRlZCB1c2lu
ZyBjcmVhdGVEb2N1bWVudCwgd2hpY2ggZG9lcwotICAgIC8vIG5vdCBoYXZlIGEgZnJhbWUsIHVz
ZSB0aGUgYWN0aXZlIGZyYW1lLgotICAgIGlmICghcHJveHkpCi0gICAgICAgIHByb3h5ID0gVjhQ
cm94eTo6cmV0cmlldmUoVjhQcm94eTo6cmV0cmlldmVGcmFtZUZvckVudGVyZWRDb250ZXh0KCkp
OwotCi0gICAgaWYgKHByb3h5KQotICAgICAgICByZXR1cm4gKGxvb2t1cCA9PSBMaXN0ZW5lckZp
bmRPbmx5KSA/IFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRXcmFwcGVyKHZhbHVlLCBpc0F0dHJp
YnV0ZSkgOiBWOEV2ZW50TGlzdGVuZXJMaXN0OjpmaW5kT3JDcmVhdGVXcmFwcGVyPFY4RXZlbnRM
aXN0ZW5lcj4ocHJveHktPmxpc3RlbmVyR3VhcmQoKSwgdmFsdWUsIGlzQXR0cmlidXRlKTsKLQot
ICAgIHJldHVybiAwOworICAgIHJldHVybiAobG9va3VwID09IExpc3RlbmVyRmluZE9ubHkpID8g
VjhFdmVudExpc3RlbmVyTGlzdDo6ZmluZFdyYXBwZXIodmFsdWUsIGlzQXR0cmlidXRlKSA6IFY4
RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0ZVdyYXBwZXI8VjhFdmVudExpc3RlbmVyPih2
YWx1ZSwgaXNBdHRyaWJ1dGUpOwogfQogCiBQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+IFY4RE9N
V3JhcHBlcjo6Z2V0RXZlbnRMaXN0ZW5lcihTVkdFbGVtZW50SW5zdGFuY2UqIGVsZW1lbnQsIHY4
OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBib29sIGlzQXR0cmlidXRlLCBMaXN0ZW5lckxvb2t1
cFR5cGUgbG9va3VwKQpAQCAtMTQ0MSwxMSArMTQyOCw3IEBAIFBhc3NSZWZQdHI8RXZlbnRMaXN0
ZW5lcj4gVjhET01XcmFwcGVyOjpnZXRFdmVudExpc3RlbmVyKEFic3RyYWN0V29ya2VyKiB3b3Jr
ZXIsCiAgICAgICAgIHJldHVybiB3b3JrZXJDb250ZXh0UHJveHktPmZpbmRPckNyZWF0ZUV2ZW50
TGlzdGVuZXIodmFsdWUsIGlzQXR0cmlidXRlLCBsb29rdXAgPT0gTGlzdGVuZXJGaW5kT25seSk7
CiAgICAgfQogCi0gICAgVjhQcm94eSogcHJveHkgPSBWOFByb3h5OjpyZXRyaWV2ZSh3b3JrZXIt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgaWYgKHByb3h5KQotICAgICAgICByZXR1
cm4gKGxvb2t1cCA9PSBMaXN0ZW5lckZpbmRPbmx5KSA/IFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZp
bmRXcmFwcGVyKHZhbHVlLCBpc0F0dHJpYnV0ZSkgOiBWOEV2ZW50TGlzdGVuZXJMaXN0OjpmaW5k
T3JDcmVhdGVXcmFwcGVyPFY4RXZlbnRMaXN0ZW5lcj4ocHJveHktPmxpc3RlbmVyR3VhcmQoKSwg
dmFsdWUsIGlzQXR0cmlidXRlKTsKLQotICAgIHJldHVybiAwOworICAgIHJldHVybiAobG9va3Vw
ID09IExpc3RlbmVyRmluZE9ubHkpID8gVjhFdmVudExpc3RlbmVyTGlzdDo6ZmluZFdyYXBwZXIo
dmFsdWUsIGlzQXR0cmlidXRlKSA6IFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0ZVdy
YXBwZXI8VjhFdmVudExpc3RlbmVyPih2YWx1ZSwgaXNBdHRyaWJ1dGUpOwogfQogCiAjaWYgRU5B
QkxFKE5PVElGSUNBVElPTlMpCkBAIC0xNDU3LDExICsxNDQwLDcgQEAgUGFzc1JlZlB0cjxFdmVu
dExpc3RlbmVyPiBWOERPTVdyYXBwZXI6OmdldEV2ZW50TGlzdGVuZXIoTm90aWZpY2F0aW9uKiBu
b3RpZmljYXQKICAgICAgICAgcmV0dXJuIHdvcmtlckNvbnRleHRQcm94eS0+ZmluZE9yQ3JlYXRl
RXZlbnRMaXN0ZW5lcih2YWx1ZSwgaXNBdHRyaWJ1dGUsIGxvb2t1cCA9PSBMaXN0ZW5lckZpbmRP
bmx5KTsKICAgICB9CiAKLSAgICBWOFByb3h5KiBwcm94eSA9IFY4UHJveHk6OnJldHJpZXZlKG5v
dGlmaWNhdGlvbi0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBpZiAocHJveHkpCi0g
ICAgICAgIHJldHVybiAobG9va3VwID09IExpc3RlbmVyRmluZE9ubHkpID8gVjhFdmVudExpc3Rl
bmVyTGlzdDo6ZmluZFdyYXBwZXIodmFsdWUsIGlzQXR0cmlidXRlKSA6IFY4RXZlbnRMaXN0ZW5l
ckxpc3Q6OmZpbmRPckNyZWF0ZVdyYXBwZXI8VjhFdmVudExpc3RlbmVyPihwcm94eS0+bGlzdGVu
ZXJHdWFyZCgpLCB2YWx1ZSwgaXNBdHRyaWJ1dGUpOwotCi0gICAgcmV0dXJuIDA7CisgICAgcmV0
dXJuIChsb29rdXAgPT0gTGlzdGVuZXJGaW5kT25seSkgPyBWOEV2ZW50TGlzdGVuZXJMaXN0Ojpm
aW5kV3JhcHBlcih2YWx1ZSwgaXNBdHRyaWJ1dGUpIDogVjhFdmVudExpc3RlbmVyTGlzdDo6Zmlu
ZE9yQ3JlYXRlV3JhcHBlcjxWOEV2ZW50TGlzdGVuZXI+KHZhbHVlLCBpc0F0dHJpYnV0ZSk7CiB9
CiAjZW5kaWYKIApAQCAtMTQ4MSw5ICsxNDYwLDggQEAgUGFzc1JlZlB0cjxFdmVudExpc3RlbmVy
PiBWOERPTVdyYXBwZXI6OmdldEV2ZW50TGlzdGVuZXIoWE1MSHR0cFJlcXVlc3RVcGxvYWQqIHUK
IAogUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiBWOERPTVdyYXBwZXI6OmdldEV2ZW50TGlzdGVu
ZXIoRXZlbnRUYXJnZXQqIGV2ZW50VGFyZ2V0LCB2ODo6TG9jYWw8djg6OlZhbHVlPiB2YWx1ZSwg
Ym9vbCBpc0F0dHJpYnV0ZSwgTGlzdGVuZXJMb29rdXBUeXBlIGxvb2t1cCkKIHsKLSAgICBWOFBy
b3h5KiBwcm94eSA9IFY4UHJveHk6OnJldHJpZXZlKGV2ZW50VGFyZ2V0LT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpOwotICAgIGlmIChwcm94eSkKLSAgICAgICAgcmV0dXJuIChsb29rdXAgPT0g
TGlzdGVuZXJGaW5kT25seSkgPyBWOEV2ZW50TGlzdGVuZXJMaXN0OjpmaW5kV3JhcHBlcih2YWx1
ZSwgaXNBdHRyaWJ1dGUpIDogVjhFdmVudExpc3RlbmVyTGlzdDo6ZmluZE9yQ3JlYXRlV3JhcHBl
cjxWOEV2ZW50TGlzdGVuZXI+KHByb3h5LT5saXN0ZW5lckd1YXJkKCksIHZhbHVlLCBpc0F0dHJp
YnV0ZSk7CisgICAgaWYgKFY4UHJveHk6OnJldHJpZXZlKGV2ZW50VGFyZ2V0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpKQorICAgICAgICByZXR1cm4gKGxvb2t1cCA9PSBMaXN0ZW5lckZpbmRP
bmx5KSA/IFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRXcmFwcGVyKHZhbHVlLCBpc0F0dHJpYnV0
ZSkgOiBWOEV2ZW50TGlzdGVuZXJMaXN0OjpmaW5kT3JDcmVhdGVXcmFwcGVyPFY4RXZlbnRMaXN0
ZW5lcj4odmFsdWUsIGlzQXR0cmlidXRlKTsKIAogI2lmIEVOQUJMRShXT1JLRVJTKQogICAgIFdv
cmtlckNvbnRleHRFeGVjdXRpb25Qcm94eSogd29ya2VyQ29udGV4dFByb3h5ID0gV29ya2VyQ29u
dGV4dEV4ZWN1dGlvblByb3h5OjpyZXRyaWV2ZSgpOwpAQCAtMTQ5NiwxMCArMTQ3NCw3IEBAIFBh
c3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gVjhET01XcmFwcGVyOjpnZXRFdmVudExpc3RlbmVyKEV2
ZW50VGFyZ2V0KiBldmVudFRhcmdlCiAKIFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gVjhET01X
cmFwcGVyOjpnZXRFdmVudExpc3RlbmVyKFY4UHJveHkqIHByb3h5LCB2ODo6TG9jYWw8djg6OlZh
bHVlPiB2YWx1ZSwgYm9vbCBpc0F0dHJpYnV0ZSwgTGlzdGVuZXJMb29rdXBUeXBlIGxvb2t1cCkK
IHsKLSAgICBpZiAocHJveHkpCi0gICAgICAgIHJldHVybiAobG9va3VwID09IExpc3RlbmVyRmlu
ZE9ubHkpID8gVjhFdmVudExpc3RlbmVyTGlzdDo6ZmluZFdyYXBwZXIodmFsdWUsIGlzQXR0cmli
dXRlKSA6IFY4RXZlbnRMaXN0ZW5lckxpc3Q6OmZpbmRPckNyZWF0ZVdyYXBwZXI8VjhFdmVudExp
c3RlbmVyPihwcm94eS0+bGlzdGVuZXJHdWFyZCgpLCB2YWx1ZSwgaXNBdHRyaWJ1dGUpOwotCi0g
ICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIChsb29rdXAgPT0gTGlzdGVuZXJGaW5kT25seSkgPyBW
OEV2ZW50TGlzdGVuZXJMaXN0OjpmaW5kV3JhcHBlcih2YWx1ZSwgaXNBdHRyaWJ1dGUpIDogVjhF
dmVudExpc3RlbmVyTGlzdDo6ZmluZE9yQ3JlYXRlV3JhcHBlcjxWOEV2ZW50TGlzdGVuZXI+KHZh
bHVlLCBpc0F0dHJpYnV0ZSk7CiB9CiAKIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBWOERPTVdyYXBw
ZXI6OmNvbnZlcnRET01JbXBsZW1lbnRhdGlvblRvVjhPYmplY3QoRE9NSW1wbGVtZW50YXRpb24q
IGltcGwpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RXZlbnRMaXN0ZW5lckxp
c3QuaCBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhFdmVudExpc3RlbmVyTGlzdC5oCmluZGV4IDI5
YjQ4NzQuLjZlNmExZTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhFdmVudExp
c3RlbmVyTGlzdC5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhFdmVudExpc3RlbmVyTGlz
dC5oCkBAIC01NSw3ICs1NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgfQogCiAg
ICAgICAgIHRlbXBsYXRlPHR5cGVuYW1lIFdyYXBwZXJUeXBlPgotICAgICAgICBzdGF0aWMgUGFz
c1JlZlB0cjxWOEV2ZW50TGlzdGVuZXI+IGZpbmRPckNyZWF0ZVdyYXBwZXIoUGFzc1JlZlB0cjxW
OExpc3RlbmVyR3VhcmQ+LCB2ODo6TG9jYWw8djg6OlZhbHVlPiwgYm9vbCBpc0F0dHJpYnV0ZSk7
CisgICAgICAgIHN0YXRpYyBQYXNzUmVmUHRyPFY4RXZlbnRMaXN0ZW5lcj4gZmluZE9yQ3JlYXRl
V3JhcHBlcih2ODo6TG9jYWw8djg6OlZhbHVlPiwgYm9vbCBpc0F0dHJpYnV0ZSk7CiAKICAgICAg
ICAgc3RhdGljIHZvaWQgY2xlYXJXcmFwcGVyKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gbGlzdGVu
ZXJPYmplY3QsIGJvb2wgaXNBdHRyaWJ1dGUpCiAgICAgICAgIHsKQEAgLTgxLDcgKzgxLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIH07CiAKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBXcmFw
cGVyVHlwZT4KLSAgICBQYXNzUmVmUHRyPFY4RXZlbnRMaXN0ZW5lcj4gVjhFdmVudExpc3RlbmVy
TGlzdDo6ZmluZE9yQ3JlYXRlV3JhcHBlcihQYXNzUmVmUHRyPFY4TGlzdGVuZXJHdWFyZD4gZ3Vh
cmQsIHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBib29sIGlzQXR0cmlidXRlKQorICAgIFBh
c3NSZWZQdHI8VjhFdmVudExpc3RlbmVyPiBWOEV2ZW50TGlzdGVuZXJMaXN0OjpmaW5kT3JDcmVh
dGVXcmFwcGVyKHY4OjpMb2NhbDx2ODo6VmFsdWU+IHZhbHVlLCBib29sIGlzQXR0cmlidXRlKQog
ICAgIHsKICAgICAgICAgQVNTRVJUKHY4OjpDb250ZXh0OjpJbkNvbnRleHQoKSk7CiAgICAgICAg
IGlmICghdmFsdWUtPklzT2JqZWN0KCkpCkBAIC05NCw3ICs5NCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgaWYgKHdyYXBwZXIpCiAgICAgICAgICAgICByZXR1cm4gd3JhcHBlcjsK
IAotICAgICAgICBQYXNzUmVmUHRyPFY4RXZlbnRMaXN0ZW5lcj4gd3JhcHBlclB0ciA9IFdyYXBw
ZXJUeXBlOjpjcmVhdGUoZ3VhcmQsIG9iamVjdCwgaXNBdHRyaWJ1dGUpOworICAgICAgICBQYXNz
UmVmUHRyPFY4RXZlbnRMaXN0ZW5lcj4gd3JhcHBlclB0ciA9IFdyYXBwZXJUeXBlOjpjcmVhdGUo
b2JqZWN0LCBpc0F0dHJpYnV0ZSk7CiAgICAgICAgIGlmICh3cmFwcGVyUHRyKQogICAgICAgICAg
ICAgb2JqZWN0LT5TZXRIaWRkZW5WYWx1ZSh3cmFwcGVyUHJvcGVydHksIHY4OjpFeHRlcm5hbDo6
V3JhcCh3cmFwcGVyUHRyLmdldCgpKSk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
djgvVjhMYXp5RXZlbnRMaXN0ZW5lci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4TGF6eUV2
ZW50TGlzdGVuZXIuY3BwCmluZGV4IDU0NzQwYTkuLjg4Yzc1ZDEgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhMYXp5RXZlbnRMaXN0ZW5lci5jcHAKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOExhenlFdmVudExpc3RlbmVyLmNwcApAQCAtNDEsNyArNDEsNyBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBWOExhenlFdmVudExpc3RlbmVyOjpWOExhenlFdmVudExpc3RlbmVy
KGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1lLCBib29sIGlzU1ZHRXZlbnQsIGNvbnN0IFN0cmlu
ZyYgY29kZSwgY29uc3QgU3RyaW5nIHNvdXJjZVVSTCwgaW50IGxpbmVOdW1iZXIsIGludCBjb2x1
bW5OdW1iZXIpCi0gICAgOiBWOEFic3RyYWN0RXZlbnRMaXN0ZW5lcigwLCB0cnVlKQorICAgIDog
VjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIodHJ1ZSkKICAgICAsIG1fZnVuY3Rpb25OYW1lKGZ1bmN0
aW9uTmFtZSkKICAgICAsIG1faXNTVkdFdmVudChpc1NWR0V2ZW50KQogICAgICwgbV9jb2RlKGNv
ZGUpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwIGIvV2ViQ29y
ZS9iaW5kaW5ncy92OC9WOFByb3h5LmNwcAppbmRleCAxZTIxMDBjLi42ODZkYTEwIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuY3BwCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhQcm94eS5jcHAKQEAgLTIwNyw3ICsyMDcsNiBAQCBzdGF0aWMgdm9pZCByZXBvcnRG
YXRhbEVycm9ySW5WOChjb25zdCBjaGFyKiBsb2NhdGlvbiwgY29uc3QgY2hhciogbWVzc2FnZSkK
IAogVjhQcm94eTo6VjhQcm94eShGcmFtZSogZnJhbWUpCiAgICAgOiBtX2ZyYW1lKGZyYW1lKQot
ICAgICwgbV9saXN0ZW5lckd1YXJkKFY4TGlzdGVuZXJHdWFyZDo6Y3JlYXRlKCkpCiAgICAgLCBt
X2lubGluZUNvZGUoZmFsc2UpCiAgICAgLCBtX3RpbWVyQ2FsbGJhY2soZmFsc2UpCiAgICAgLCBt
X3JlY3Vyc2lvbigwKQpAQCAtNTk3LDcgKzU5Niw2IEBAIFY4UHJveHkqIFY4UHJveHk6OnJldHJp
ZXZlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAKIHZvaWQgVjhQcm94eTo6ZGlz
Y29ubmVjdEZyYW1lKCkKIHsKLSAgICBkaXNjb25uZWN0RXZlbnRMaXN0ZW5lcnMoKTsKIH0KIAog
Ym9vbCBWOFByb3h5Ojppc0VuYWJsZWQoKQpAQCAtNzMyLDEyICs3MzAsNiBAQCB2b2lkIFY4UHJv
eHk6OnJlbGVhc2VTdG9yYWdlTXV0ZXgoKQogICAgICAgICBwYWdlLT5ncm91cCgpLmxvY2FsU3Rv
cmFnZSgpLT51bmxvY2soKTsKIH0KIAotdm9pZCBWOFByb3h5OjpkaXNjb25uZWN0RXZlbnRMaXN0
ZW5lcnMoKQotewotICAgIG1fbGlzdGVuZXJHdWFyZC0+ZGlzY29ubmVjdExpc3RlbmVycygpOwot
ICAgIG1fbGlzdGVuZXJHdWFyZCA9IFY4TGlzdGVuZXJHdWFyZDo6Y3JlYXRlKCk7Ci19Ci0gICAg
CiB2b2lkIFY4UHJveHk6OnJlc2V0SXNvbGF0ZWRXb3JsZHMoKQogewogICAgIGZvciAoSXNvbGF0
ZWRXb3JsZE1hcDo6aXRlcmF0b3IgaXRlciA9IG1faXNvbGF0ZWRXb3JsZHMuYmVnaW4oKTsKQEAg
LTc2MSw3ICs3NTMsNiBAQCB2b2lkIFY4UHJveHk6OmNsZWFyRm9yQ2xvc2UoKQogCiB2b2lkIFY4
UHJveHk6OmNsZWFyRm9yTmF2aWdhdGlvbigpCiB7Ci0gICAgZGlzY29ubmVjdEV2ZW50TGlzdGVu
ZXJzKCk7CiAgICAgcmVzZXRJc29sYXRlZFdvcmxkcygpOwogCiAgICAgaWYgKCFtX2NvbnRleHQu
SXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHkuaCBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCmluZGV4IDk0NDNjYTguLjE4NDY4YmMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5oCisrKyBiL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhQcm94eS5oCkBAIC0yOTksMTEgKzI5OSw2IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgICAgICB2ODo6TG9jYWw8djg6OkNvbnRleHQ+IGNvbnRleHQoKTsKIAotICAgICAg
ICBQYXNzUmVmUHRyPFY4TGlzdGVuZXJHdWFyZD4gbGlzdGVuZXJHdWFyZCgpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIHJldHVybiBtX2xpc3RlbmVyR3VhcmQ7Ci0gICAgICAgIH0KLQogICAgICAg
ICBib29sIHNldENvbnRleHREZWJ1Z0lkKGludCBpZCk7CiAgICAgICAgIHN0YXRpYyBpbnQgY29u
dGV4dERlYnVnSWQodjg6OkhhbmRsZTx2ODo6Q29udGV4dD4pOwogCkBAIC0zNDksOCArMzQ0LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyB0aGUgc3RvcmFnZSBtdXRleC4KICAg
ICAgICAgdm9pZCByZWxlYXNlU3RvcmFnZU11dGV4KCk7CiAKLSAgICAgICAgdm9pZCBkaXNjb25u
ZWN0RXZlbnRMaXN0ZW5lcnMoKTsKLSAgICAgICAgCiAgICAgICAgIHZvaWQgcmVzZXRJc29sYXRl
ZFdvcmxkcygpOwogCiAgICAgICAgIHZvaWQgc2V0SW5qZWN0ZWRTY3JpcHRDb250ZXh0RGVidWdJ
ZCh2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiB0YXJnZXRDb250ZXh0KTsKQEAgLTM4OSw4ICszODIs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkNv
bnRleHQ+IG1fY29udGV4dDsKIAotICAgICAgICBSZWZQdHI8VjhMaXN0ZW5lckd1YXJkPiBtX2xp
c3RlbmVyR3VhcmQ7Ci0KICAgICAgICAgLy8gRm9yIGVhY2ggcG9zc2libGUgdHlwZSBvZiB3cmFw
cGVyLCB3ZSBrZWVwIGEgYm9pbGVycGxhdGUgb2JqZWN0LgogICAgICAgICAvLyBUaGUgYm9pbGVy
cGxhdGUgaXMgdXNlZCB0byBjcmVhdGUgYWRkaXRpb25hbCB3cmFwcGVycyBvZiB0aGUgc2FtZQog
ICAgICAgICAvLyB0eXBlLiAgV2Uga2VlcCBhIHNpbmdsZSBwZXJzaXN0ZW50IGhhbmRsZSB0byBh
biBhcnJheSBvZiB0aGUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXb3JrZXJD
b250ZXh0RXZlbnRMaXN0ZW5lci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V29ya2VyQ29u
dGV4dEV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IDhkYzRiOGQuLjhmMTUxNGQgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhXb3JrZXJDb250ZXh0RXZlbnRMaXN0ZW5lci5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdvcmtlckNvbnRleHRFdmVudExpc3RlbmVyLmNwcApA
QCAtNDgsMTUgKzQ4LDE0IEBAIHN0YXRpYyBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkqIHdv
cmtlclByb3h5KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgcmV0dXJuIHdv
cmtlckNvbnRleHQtPnNjcmlwdCgpLT5wcm94eSgpOwogfQogCi1WOFdvcmtlckNvbnRleHRFdmVu
dExpc3RlbmVyOjpWOFdvcmtlckNvbnRleHRFdmVudExpc3RlbmVyKFBhc3NSZWZQdHI8VjhMaXN0
ZW5lckd1YXJkPiBndWFyZCwgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29sIGlz
SW5saW5lKQotICAgIDogVjhFdmVudExpc3RlbmVyKGd1YXJkLCBsaXN0ZW5lciwgaXNJbmxpbmUp
CitWOFdvcmtlckNvbnRleHRFdmVudExpc3RlbmVyOjpWOFdvcmtlckNvbnRleHRFdmVudExpc3Rl
bmVyKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBsaXN0ZW5lciwgYm9vbCBpc0lubGluZSkKKyAgICA6
IFY4RXZlbnRMaXN0ZW5lcihsaXN0ZW5lciwgaXNJbmxpbmUpCiB7CiB9CiAKIHZvaWQgVjhXb3Jr
ZXJDb250ZXh0RXZlbnRMaXN0ZW5lcjo6aGFuZGxlRXZlbnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCogY29udGV4dCwgRXZlbnQqIGV2ZW50KQogewotICAgIC8vIElzIHRoZSBFdmVudExpc3RlbmVy
IGRpc2Nvbm5lY3RlZD8KLSAgICBpZiAoZGlzY29ubmVjdGVkKCkpCisgICAgaWYgKCFjb250ZXh0
KQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gb24gWE1M
SHR0cFJlcXVlc3QgY2FuIGNsZWFyIHRoZSBldmVudCBsaXN0ZW5lciBhbmQgZGVzdHJveXMgJ3Ro
aXMnIG9iamVjdC4gS2VlcCBhIGxvY2FsIHJlZmVyZW5jZSB0byBpdC4KQEAgLTg0LDggKzgzLDcg
QEAgdm9pZCBWOFdvcmtlckNvbnRleHRFdmVudExpc3RlbmVyOjpoYW5kbGVFdmVudChTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LAogCiBib29sIFY4V29ya2VyQ29udGV4dEV2ZW50TGlz
dGVuZXI6OnJlcG9ydEVycm9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbnN0
IFN0cmluZyYgbWVzc2FnZSwgY29uc3QgU3RyaW5nJiB1cmwsIGludCBsaW5lTnVtYmVyKQogewot
ICAgIC8vIElzIHRoZSBFdmVudExpc3RlbmVyIGRpc2Nvbm5lY3RlZD8KLSAgICBpZiAoZGlzY29u
bmVjdGVkKCkpCisgICAgaWYgKCFjb250ZXh0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICAvLyBUaGUgY2FsbGJhY2sgZnVuY3Rpb24gY2FuIGNsZWFyIHRoZSBldmVudCBsaXN0ZW5lciBh
bmQgZGVzdHJveSAndGhpcycgb2JqZWN0LiBLZWVwIGEgbG9jYWwgcmVmZXJlbmNlIHRvIGl0Lgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOFdvcmtlckNvbnRleHRFdmVudExpc3Rl
bmVyLmggYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXIu
aAppbmRleCAzZjlmODYyLi42OGJlMWUzIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1Y4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXIuaApAQCAtNDQsMTYgKzQ0LDE2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIFY4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXIg
OiBwdWJsaWMgVjhFdmVudExpc3RlbmVyIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyBQ
YXNzUmVmUHRyPFY4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXI+IGNyZWF0ZShQYXNzUmVmUHRy
PFY4TGlzdGVuZXJHdWFyZD4gZ3VhcmQsIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBsaXN0ZW5lciwg
Ym9vbCBpc0lubGluZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8VjhXb3JrZXJDb250ZXh0
RXZlbnRMaXN0ZW5lcj4gY3JlYXRlKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBsaXN0ZW5lciwgYm9v
bCBpc0lubGluZSkKICAgICAgICAgewotICAgICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBW
OFdvcmtlckNvbnRleHRFdmVudExpc3RlbmVyKGd1YXJkLCBsaXN0ZW5lciwgaXNJbmxpbmUpKTsK
KyAgICAgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVjhXb3JrZXJDb250ZXh0RXZlbnRMaXN0
ZW5lcihsaXN0ZW5lciwgaXNJbmxpbmUpKTsKICAgICAgICAgfQogCiAgICAgICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVFdmVudChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRXZlbnQqKTsKICAgICAg
ICAgdmlydHVhbCBib29sIHJlcG9ydEVycm9yKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBjb25z
dCBTdHJpbmcmIG1lc3NhZ2UsIGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgbGluZU51bWJlcik7CiAK
ICAgICBwcml2YXRlOgotICAgICAgICBWOFdvcmtlckNvbnRleHRFdmVudExpc3RlbmVyKFBhc3NS
ZWZQdHI8VjhMaXN0ZW5lckd1YXJkPiwgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBi
b29sIGlzSW5saW5lKTsKKyAgICAgICAgVjhXb3JrZXJDb250ZXh0RXZlbnRMaXN0ZW5lcih2ODo6
TG9jYWw8djg6Ok9iamVjdD4gbGlzdGVuZXIsIGJvb2wgaXNJbmxpbmUpOwogCiAgICAgICAgIHZp
cnR1YWwgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gY2FsbExpc3RlbmVyRnVuY3Rpb24oU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBqc0V2ZW50LCBFdmVudCopOwog
ICAgICAgICB2ODo6TG9jYWw8djg6Ok9iamVjdD4gZ2V0UmVjZWl2ZXJPYmplY3QoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCosIEV2ZW50Kik7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4
L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dv
cmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5jcHAKaW5kZXggMjQ3YjAxNi4uYTdhZmIzOCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHku
Y3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5
LmNwcApAQCAtNzIsNyArNzIsNiBAQCBzdGF0aWMgdm9pZCByZXBvcnRGYXRhbEVycm9ySW5WOChj
b25zdCBjaGFyKiBsb2NhdGlvbiwgY29uc3QgY2hhciogbWVzc2FnZSkKIFdvcmtlckNvbnRleHRF
eGVjdXRpb25Qcm94eTo6V29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5KFdvcmtlckNvbnRleHQq
IHdvcmtlckNvbnRleHQpCiAgICAgOiBtX3dvcmtlckNvbnRleHQod29ya2VyQ29udGV4dCkKICAg
ICAsIG1fcmVjdXJzaW9uKDApCi0gICAgLCBtX2xpc3RlbmVyR3VhcmQoVjhMaXN0ZW5lckd1YXJk
OjpjcmVhdGUoKSkKIHsKICAgICBpbml0VjhJZk5lZWRlZCgpOwogfQpAQCAtODQsOCArODMsNiBA
QCBXb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHk6On5Xb3JrZXJDb250ZXh0RXhlY3V0aW9uUHJv
eHkoKQogCiB2b2lkIFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6ZGlzcG9zZSgpCiB7Ci0g
ICAgbV9saXN0ZW5lckd1YXJkLT5kaXNjb25uZWN0TGlzdGVuZXJzKCk7Ci0KICAgICAvLyBEZXRh
Y2ggYWxsIGV2ZW50cyBmcm9tIHRoZWlyIEpTIHdyYXBwZXJzLgogICAgIGZvciAoc2l6ZV90IGV2
ZW50SW5kZXggPSAwOyBldmVudEluZGV4IDwgbV9ldmVudHMuc2l6ZSgpOyArK2V2ZW50SW5kZXgp
IHsKICAgICAgICAgRXZlbnQqIGV2ZW50ID0gbV9ldmVudHNbZXZlbnRJbmRleF07CkBAIC00MDYs
NyArNDAzLDcgQEAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gV29ya2VyQ29udGV4dEV4ZWN1dGlvblBy
b3h5OjpydW5TY3JpcHQodjg6OkhhbmRsZTx2ODo6U2NyaXAKIAogUGFzc1JlZlB0cjxWOEV2ZW50
TGlzdGVuZXI+IFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eTo6ZmluZE9yQ3JlYXRlRXZlbnRM
aXN0ZW5lcih2ODo6TG9jYWw8djg6OlZhbHVlPiBvYmplY3QsIGJvb2wgaXNJbmxpbmUsIGJvb2wg
ZmluZE9ubHkpCiB7Ci0gICAgcmV0dXJuIGZpbmRPbmx5ID8gVjhFdmVudExpc3RlbmVyTGlzdDo6
ZmluZFdyYXBwZXIob2JqZWN0LCBpc0lubGluZSkgOiBWOEV2ZW50TGlzdGVuZXJMaXN0OjpmaW5k
T3JDcmVhdGVXcmFwcGVyPFY4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXI+KG1fbGlzdGVuZXJH
dWFyZCwgb2JqZWN0LCBpc0lubGluZSk7CisgICAgcmV0dXJuIGZpbmRPbmx5ID8gVjhFdmVudExp
c3RlbmVyTGlzdDo6ZmluZFdyYXBwZXIob2JqZWN0LCBpc0lubGluZSkgOiBWOEV2ZW50TGlzdGVu
ZXJMaXN0OjpmaW5kT3JDcmVhdGVXcmFwcGVyPFY4V29ya2VyQ29udGV4dEV2ZW50TGlzdGVuZXI+
KG9iamVjdCwgaXNJbmxpbmUpOwogfQogCiB2b2lkIFdvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94
eTo6dHJhY2tFdmVudChFdmVudCogZXZlbnQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5oIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9X
b3JrZXJDb250ZXh0RXhlY3V0aW9uUHJveHkuaAppbmRleCBlNzIzYmM2Li4zYjhhYjllIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1dvcmtlckNvbnRleHRFeGVjdXRpb25Qcm94eS5o
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvV29ya2VyQ29udGV4dEV4ZWN1dGlvblByb3h5LmgK
QEAgLTExMiw3ICsxMTIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIFdvcmtlckNv
bnRleHQqIG1fd29ya2VyQ29udGV4dDsKICAgICAgICAgdjg6OlBlcnNpc3RlbnQ8djg6OkNvbnRl
eHQ+IG1fY29udGV4dDsKICAgICAgICAgaW50IG1fcmVjdXJzaW9uOwotICAgICAgICBSZWZQdHI8
VjhMaXN0ZW5lckd1YXJkPiBtX2xpc3RlbmVyR3VhcmQ7CiAKICAgICAgICAgVmVjdG9yPEV2ZW50
Kj4gbV9ldmVudHM7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3Vz
dG9tL1Y4Q3VzdG9tRXZlbnRMaXN0ZW5lci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOEN1c3RvbUV2ZW50TGlzdGVuZXIuY3BwCmluZGV4IDE3Yzg2YTMuLjM1MDQyNGYgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4Q3VzdG9tRXZlbnRMaXN0ZW5lci5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21FdmVudExpc3RlbmVy
LmNwcApAQCAtMzUsOCArMzUsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVY4RXZlbnRM
aXN0ZW5lcjo6VjhFdmVudExpc3RlbmVyKFBhc3NSZWZQdHI8VjhMaXN0ZW5lckd1YXJkPiBndWFy
ZCwgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29sIGlzQXR0cmlidXRlKQotICAg
IDogVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIoZ3VhcmQsIGlzQXR0cmlidXRlKQorVjhFdmVudExp
c3RlbmVyOjpWOEV2ZW50TGlzdGVuZXIodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBi
b29sIGlzQXR0cmlidXRlKQorICAgIDogVjhBYnN0cmFjdEV2ZW50TGlzdGVuZXIoaXNBdHRyaWJ1
dGUpCiB7CiAgICAgc2V0TGlzdGVuZXJPYmplY3QobGlzdGVuZXIpOwogfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhDdXN0b21FdmVudExpc3RlbmVyLmggYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1c3RvbUV2ZW50TGlzdGVuZXIuaAppbmRleCBkYzlk
MzNiLi5jYTAyOWExIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1
c3RvbUV2ZW50TGlzdGVuZXIuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEN1
c3RvbUV2ZW50TGlzdGVuZXIuaApAQCAtNDQsMTMgKzQ0LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAvLyB0aGF0IGNhbiBoYW5kbGUgdGhlIGV2ZW50LgogICAgIGNsYXNzIFY4RXZlbnRM
aXN0ZW5lciA6IHB1YmxpYyBWOEFic3RyYWN0RXZlbnRMaXN0ZW5lciB7CiAgICAgcHVibGljOgot
ICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxWOEV2ZW50TGlzdGVuZXI+IGNyZWF0ZShQYXNzUmVm
UHRyPFY4TGlzdGVuZXJHdWFyZD4gZ3VhcmQsIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBsaXN0ZW5l
ciwgYm9vbCBpc0F0dHJpYnV0ZSkKKyAgICAgICAgc3RhdGljIFBhc3NSZWZQdHI8VjhFdmVudExp
c3RlbmVyPiBjcmVhdGUodjg6OkxvY2FsPHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29sIGlzQXR0
cmlidXRlKQogICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFY4RXZl
bnRMaXN0ZW5lcihndWFyZCwgbGlzdGVuZXIsIGlzQXR0cmlidXRlKSk7CisgICAgICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFY4RXZlbnRMaXN0ZW5lcihsaXN0ZW5lciwgaXNBdHRyaWJ1dGUp
KTsKICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBWOEV2ZW50TGlzdGVuZXIo
UGFzc1JlZlB0cjxWOExpc3RlbmVyR3VhcmQ+LCB2ODo6TG9jYWw8djg6Ok9iamVjdD4gbGlzdGVu
ZXIsIGJvb2wgaXNBdHRyaWJ1dGUpOworICAgICAgICBWOEV2ZW50TGlzdGVuZXIodjg6OkxvY2Fs
PHY4OjpPYmplY3Q+IGxpc3RlbmVyLCBib29sIGlzQXR0cmlidXRlKTsKIAogICAgICAgICB2ODo6
TG9jYWw8djg6OkZ1bmN0aW9uPiBnZXRMaXN0ZW5lckZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqKTsKIAo=
</data>
<flag name="review"
          id="23674"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
    <flag name="commit-queue"
          id="23675"
          type_id="3"
          status="-"
          setter="dimich"
    />
          </attachment>
      

    </bug>

</bugzilla>