<?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>180503</bug_id>
          
          <creation_ts>2017-12-06 14:02:33 -0800</creation_ts>
          <short_desc>Remove nodes from AXObjectCache when the associated subframe document is getting destroyed.</short_desc>
          <delta_ts>2017-12-06 16:55:06 -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>Accessibility</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>
          
          <blocked>173540</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cdumez</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>kangil.han</cc>
    
    <cc>n_wang</cc>
    
    <cc>samuel_white</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1378798</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2017-12-06 14:02:33 -0800</bug_when>
    <thetext>rdar://problem/35891328</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378826</commentid>
    <comment_count>1</comment_count>
      <attachid>328632</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-12-06 14:37:52 -0800</bug_when>
    <thetext>Created attachment 328632
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378830</commentid>
    <comment_count>2</comment_count>
      <attachid>328632</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2017-12-06 14:45:24 -0800</bug_when>
    <thetext>Comment on attachment 328632
Patch

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

&gt; Source/WebCore/ChangeLog:25
&gt; +        lists are tend to stay small.

those lists tend (strikeout are)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378832</commentid>
    <comment_count>3</comment_count>
      <attachid>328634</attachid>
    <who name="alan">zalan</who>
    <bug_when>2017-12-06 14:49:19 -0800</bug_when>
    <thetext>Created attachment 328634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378838</commentid>
    <comment_count>4</comment_count>
      <attachid>328634</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2017-12-06 15:04:02 -0800</bug_when>
    <thetext>Comment on attachment 328634
Patch

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

&gt; Source/WebCore/accessibility/AXObjectCache.cpp:2729
&gt; +static void filterForRemoval(const ListHashSet&lt;T&gt;&amp; list, const Document&amp; document, HashSet&lt;Node*&gt;&amp; nodesToRemove)

Why do we have a typename here for *list* but *nodesToRemove* is limited to &lt;Node*&gt;? 
This won&apos;t work if T is not a derived class of Node, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378852</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2017-12-06 15:56:25 -0800</bug_when>
    <thetext>(In reply to Nan Wang from comment #4)
&gt; Comment on attachment 328634 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=328634&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AXObjectCache.cpp:2729
&gt; &gt; +static void filterForRemoval(const ListHashSet&lt;T&gt;&amp; list, const Document&amp; document, HashSet&lt;Node*&gt;&amp; nodesToRemove)
&gt; 
&gt; Why do we have a typename here for *list* but *nodesToRemove* is limited to
&gt; &lt;Node*&gt;? 
&gt; This won&apos;t work if T is not a derived class of Node, right?
::remove() takes a Node&amp; so nodesToRemove can&apos;t have non-Node based objects.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378858</commentid>
    <comment_count>6</comment_count>
      <attachid>328634</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2017-12-06 16:04:35 -0800</bug_when>
    <thetext>Comment on attachment 328634
Patch

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

&gt;&gt;&gt; Source/WebCore/accessibility/AXObjectCache.cpp:2729
&gt;&gt;&gt; +static void filterForRemoval(const ListHashSet&lt;T&gt;&amp; list, const Document&amp; document, HashSet&lt;Node*&gt;&amp; nodesToRemove)
&gt;&gt; 
&gt;&gt; Why do we have a typename here for *list* but *nodesToRemove* is limited to &lt;Node*&gt;? 
&gt;&gt; This won&apos;t work if T is not a derived class of Node, right?
&gt; 
&gt; ::remove() takes a Node&amp; so nodesToRemove can&apos;t have non-Node based objects.

I see. But list has to contain only node based objects right? Why is the template necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378894</commentid>
    <comment_count>7</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2017-12-06 16:27:01 -0800</bug_when>
    <thetext>(In reply to Nan Wang from comment #6)
&gt; Comment on attachment 328634 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=328634&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/accessibility/AXObjectCache.cpp:2729
&gt; &gt;&gt;&gt; +static void filterForRemoval(const ListHashSet&lt;T&gt;&amp; list, const Document&amp; document, HashSet&lt;Node*&gt;&amp; nodesToRemove)
&gt; &gt;&gt; 
&gt; &gt;&gt; Why do we have a typename here for *list* but *nodesToRemove* is limited to &lt;Node*&gt;? 
&gt; &gt;&gt; This won&apos;t work if T is not a derived class of Node, right?
&gt; &gt; 
&gt; &gt; ::remove() takes a Node&amp; so nodesToRemove can&apos;t have non-Node based objects.
&gt; 
&gt; I see. But list has to contain only node based objects right? Why is the
&gt; template necessary?
Correct. All incoming lists have to contain Node based object. However, while you can pass in an Element* when the function expects Node*, you can&apos;t pass in ListHashSet&lt;Element*&gt; for const ListHashSet&lt;Node*&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378906</commentid>
    <comment_count>8</comment_count>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2017-12-06 16:31:50 -0800</bug_when>
    <thetext>(In reply to zalan from comment #7)
&gt; (In reply to Nan Wang from comment #6)
&gt; &gt; Comment on attachment 328634 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=328634&amp;action=review
&gt; &gt; 
&gt; &gt; &gt;&gt;&gt; Source/WebCore/accessibility/AXObjectCache.cpp:2729
&gt; &gt; &gt;&gt;&gt; +static void filterForRemoval(const ListHashSet&lt;T&gt;&amp; list, const Document&amp; document, HashSet&lt;Node*&gt;&amp; nodesToRemove)
&gt; &gt; &gt;&gt; 
&gt; &gt; &gt;&gt; Why do we have a typename here for *list* but *nodesToRemove* is limited to &lt;Node*&gt;? 
&gt; &gt; &gt;&gt; This won&apos;t work if T is not a derived class of Node, right?
&gt; &gt; &gt; 
&gt; &gt; &gt; ::remove() takes a Node&amp; so nodesToRemove can&apos;t have non-Node based objects.
&gt; &gt; 
&gt; &gt; I see. But list has to contain only node based objects right? Why is the
&gt; &gt; template necessary?
&gt; Correct. All incoming lists have to contain Node based object. However,
&gt; while you can pass in an Element* when the function expects Node*, you can&apos;t
&gt; pass in ListHashSet&lt;Element*&gt; for const ListHashSet&lt;Node*&gt;.

I thought it&apos;s possible to pass in ListHashSet that holds the derived class objects. But ok then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378931</commentid>
    <comment_count>9</comment_count>
      <attachid>328634</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-06 16:55:05 -0800</bug_when>
    <thetext>Comment on attachment 328634
Patch

Clearing flags on attachment: 328634

Committed r225613: &lt;https://trac.webkit.org/changeset/225613&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1378932</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-06 16:55:06 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328632</attachid>
            <date>2017-12-06 14:37:52 -0800</date>
            <delta_ts>2017-12-06 14:49:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180503-20171206143751.patch</filename>
            <type>text/plain</type>
            <size>9368</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FmZDcwMjBkZTVjOWYx
OGU4MmJjYzZlYzNkOTBkNWUyNzM1ZDliMy4uZjhjNjdlZWNkMjkxMzZhNGQwNTUwODA5OGUwN2Ew
MDUyMjAxZDU1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTEyLTA2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIG5vZGVzIGZyb20g
QVhPYmplY3RDYWNoZSB3aGVuIHRoZSBhc3NvY2lhdGVkIHN1YmZyYW1lIGRvY3VtZW50IGlzIGdl
dHRpbmcgZGVzdHJveWVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgwNTAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTg5MTMyOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdoaWxlIEFYT2JqZWN0
Q2FjaGUgbGl2ZXMgb24gdGhlIG1haW5mcmFtZSdzIGRvY3VtZW50LCBpdCBjYWNoZXMgbm9kZXMg
ZnJvbSBldmVyeSBzdWJmcmFtZSBkb2N1bWVudC4KKyAgICAgICAgV2hlbiBhIG5vZGUgaXMgYmVp
bmcgZGVzdHJveWVkLCB3ZSBkZXJlZ2lzdGVyIGl0IGZyb20gdGhlIEFYIGNhY2hlIHRocm91Z2gg
dGhlIE5vZGUncyBkZXN0cnVjdG9yLgorICAgICAgICBTb29uIGFmdGVyIHRoZSBkb2N1bWVudCBp
cyBkZXRhY2hlZCBmcm9tIHRoZSBmcmFtZS9mcmFtZSBpcyBkZXRhY2hlZCBmcm9tIHRoZSBmcmFt
ZSB0cmVlLCB0aGlzIGNvZGVwYXRoCisgICAgICAgIGlzIG5vIGxvbmdlciBhdmFpbGFibGUgKG5v
IGFjY2VzcyB0byB0aGUgQVhPYmplY3RDYWNoZSBvYmplY3QpIGFuZCBmcm9tIHRoaXMgcG9pbnQg
d2UgYXJlIHVuYWJsZSB0byBkZXJlZ2lzdGVyCisgICAgICAgIG5vZGVzIGFzc29jaWF0ZWQgd2l0
aCB0aGUgY3VycmVudCBkb2N1bWVudC4KKyAgICAgICAgSW4gQVhPYmplY3RDYWNoZTo6cHJlcGFy
ZUZvckRvY3VtZW50RGVzdHJ1Y3Rpb24oKSwgd2UgcHJlZW1wdGl2ZWx5IHJlbW92ZSBhbGwgdGhl
IGNhY2hlZCBub2RlcyBhc3NvY2lhdGVkCisgICAgICAgIHdpdGggdGhlIGFib3V0LXRvLWJlLWRl
c3Ryb3llZCBkb2N1bWVudC4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgor
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpmaWx0ZXJG
b3JSZW1vdmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnByZXBhcmVGb3JE
b2N1bWVudERlc3RydWN0aW9uKTogQ29sbGVjdGluZyB0aGUgbm9kZXMgYW5kIHJlbW92aW5nIHRo
ZW0gbGF0ZXIgaXMKKyAgICAgICAgbm90IHRoZSBtb3N0IHBlcmZvcm1hbnQgd2F5IGJ1dCBpbiBv
cmRlciB0byBoYXZlIGEgc2luZ2xlIGNvZGUgcGF0aCBmb3IgdGhlIGRlLXJlZ2lzdHJhdGlvbiAo
QVhPYmplY3RDYWNoZTo6cmVtb3ZlKQorICAgICAgICBJIHRoaW5rIGl0J3Mgd29ydGggZ29pbmcg
ZG93biB0aGUgc2xvd2VyIHBhdGggLXdoaWNoIHNob3VsZCBub3QgcmVhbGx5IGJlIHRoYXQgc2xv
d2VyIGFueXdheSBzaW5jZSB0aG9zZQorICAgICAgICBsaXN0cyBhcmUgdGVuZCB0byBzdGF5IHNt
YWxsLgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Y2xlYXJUZXh0TWFya2VyTm9k
ZXNJblVzZSk6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hl
Lmg6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyZW1vdmVOb2RlRm9yVXNlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJlbW92ZSk6CisgICAgICAgICogZG9t
L0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpwcmVwYXJlRm9yRGVz
dHJ1Y3Rpb24pOgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok5v
ZGU6OndpbGxCZURlbGV0ZWRGcm9tKToKKyAgICAgICAgKFdlYkNvcmU6Ok5vZGU6Om1vdmVOb2Rl
VG9OZXdEb2N1bWVudCk6CisKIDIwMTctMTItMDUgIEJhc3VrZSBTdXp1a2kgIDxCYXN1a2UuU3V6
dWtpQHNvbnkuY29tPgogCiAgICAgICAgIEZhc3QgYmluZGluZyBnZW5lcmF0aW9uIGJ5IGJhdGNo
aW5nIHNldmVyYWwgZmlsZXMgYXQgb25jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhPYmplY3RDYWNoZS5jcHAKaW5kZXggNmVhZGFmNGUxMzM0N2QxNmEzYmQ1Zjc3Yzg3OTky
ZDYzMzg5NGI2Zi4uYzZiM2NmODhlNGZhOTJhNjZmZDY2OGY3ODNmMjRiYzQyY2ZmZDBiNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC03
MTYsMjUgKzcxNiwyMiBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShSZW5kZXJPYmplY3Qq
IHJlbmRlcmVyKQogICAgIHJlbW92ZShtX3JlbmRlck9iamVjdE1hcHBpbmcudGFrZShyZW5kZXJl
cikpOwogfQogCi12b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShOb2RlKiBub2RlKQordm9pZCBB
WE9iamVjdENhY2hlOjpyZW1vdmUoTm9kZSYgbm9kZSkKIHsKLSAgICBpZiAoIW5vZGUpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGlmIChpczxFbGVtZW50Pigqbm9kZSkpIHsKLSAgICAgICAgbV9k
ZWZlcnJlZFJlY29tcHV0ZUlzSWdub3JlZExpc3QucmVtb3ZlKGRvd25jYXN0PEVsZW1lbnQ+KG5v
ZGUpKTsKLSAgICAgICAgbV9kZWZlcnJlZFNlbGVjdGVkQ2hpbGRyZWRDaGFuZ2VkTGlzdC5yZW1v
dmUoZG93bmNhc3Q8RWxlbWVudD4obm9kZSkpOworICAgIGlmIChpczxFbGVtZW50Pihub2RlKSkg
eworICAgICAgICBtX2RlZmVycmVkUmVjb21wdXRlSXNJZ25vcmVkTGlzdC5yZW1vdmUoZG93bmNh
c3Q8RWxlbWVudD4oJm5vZGUpKTsKKyAgICAgICAgbV9kZWZlcnJlZFNlbGVjdGVkQ2hpbGRyZWRD
aGFuZ2VkTGlzdC5yZW1vdmUoZG93bmNhc3Q8RWxlbWVudD4oJm5vZGUpKTsKICAgICB9Ci0gICAg
bV9kZWZlcnJlZFRleHRDaGFuZ2VkTGlzdC5yZW1vdmUobm9kZSk7CisgICAgbV9kZWZlcnJlZFRl
eHRDaGFuZ2VkTGlzdC5yZW1vdmUoJm5vZGUpOwogICAgIHJlbW92ZU5vZGVGb3JVc2Uobm9kZSk7
CiAKLSAgICByZW1vdmUobV9ub2RlT2JqZWN0TWFwcGluZy50YWtlKG5vZGUpKTsKKyAgICByZW1v
dmUobV9ub2RlT2JqZWN0TWFwcGluZy50YWtlKCZub2RlKSk7CiAKLSAgICBpZiAobV9jdXJyZW50
TW9kYWxOb2RlID09IG5vZGUpCisgICAgaWYgKG1fY3VycmVudE1vZGFsTm9kZSA9PSAmbm9kZSkK
ICAgICAgICAgbV9jdXJyZW50TW9kYWxOb2RlID0gbnVsbHB0cjsKLSAgICBtX21vZGFsTm9kZXNT
ZXQucmVtb3ZlKG5vZGUpOworICAgIG1fbW9kYWxOb2Rlc1NldC5yZW1vdmUoJm5vZGUpOwogCi0g
ICAgcmVtb3ZlKG5vZGUtPnJlbmRlcmVyKCkpOworICAgIHJlbW92ZShub2RlLnJlbmRlcmVyKCkp
OwogfQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShXaWRnZXQqIHZpZXcpCkBAIC0yNzI4
LDIwICsyNzI1LDI3IEBAIGNvbnN0IEVsZW1lbnQqIEFYT2JqZWN0Q2FjaGU6OnJvb3RBWEVkaXRh
YmxlRWxlbWVudChjb25zdCBOb2RlKiBub2RlKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZv
aWQgQVhPYmplY3RDYWNoZTo6Y2xlYXJUZXh0TWFya2VyTm9kZXNJblVzZShEb2N1bWVudCogZG9j
dW1lbnQpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorc3RhdGljIHZvaWQgZmlsdGVyRm9yUmVtb3Zh
bChjb25zdCBMaXN0SGFzaFNldDxUPiYgbGlzdCwgY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBI
YXNoU2V0PE5vZGUqPiYgbm9kZXNUb1JlbW92ZSkKIHsKLSAgICBpZiAoIWRvY3VtZW50KQotICAg
ICAgICByZXR1cm47Ci0gICAgCi0gICAgLy8gQ2hlY2sgZWFjaCBub2RlIHRvIHNlZSBpZiBpdCdz
IGluc2lkZSB0aGUgZG9jdW1lbnQgYmVpbmcgZGVsZXRlZCwgb2YgaWYgaXQgbm8gbG9uZ2VyIGJl
bG9uZ3MgdG8gYSBkb2N1bWVudC4KLSAgICBIYXNoU2V0PE5vZGUqPiBub2Rlc1RvRGVsZXRlOwot
ICAgIGZvciAoY29uc3QgYXV0byYgbm9kZSA6IG1fdGV4dE1hcmtlck5vZGVzKSB7Ci0gICAgICAg
IGlmICghbm9kZS0+aXNDb25uZWN0ZWQoKSB8fCAmKG5vZGUpLT5kb2N1bWVudCgpID09IGRvY3Vt
ZW50KQotICAgICAgICAgICAgbm9kZXNUb0RlbGV0ZS5hZGQobm9kZSk7CisgICAgZm9yIChhdXRv
KiBub2RlIDogbGlzdCkgeworICAgICAgICBpZiAobm9kZS0+aXNDb25uZWN0ZWQoKSAmJiAmbm9k
ZS0+ZG9jdW1lbnQoKSAhPSAmZG9jdW1lbnQpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgbm9kZXNUb1JlbW92ZS5hZGQobm9kZSk7CiAgICAgfQotICAgIAotICAgIGZvciAoY29uc3Qg
YXV0byYgbm9kZSA6IG5vZGVzVG9EZWxldGUpCi0gICAgICAgIG1fdGV4dE1hcmtlck5vZGVzLnJl
bW92ZShub2RlKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwcmVwYXJlRm9yRG9jdW1lbnRE
ZXN0cnVjdGlvbihjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQpCit7CisgICAgSGFzaFNldDxOb2Rl
Kj4gbm9kZXNUb1JlbW92ZTsKKyAgICBmaWx0ZXJGb3JSZW1vdmFsKG1fdGV4dE1hcmtlck5vZGVz
LCBkb2N1bWVudCwgbm9kZXNUb1JlbW92ZSk7CisgICAgZmlsdGVyRm9yUmVtb3ZhbChtX21vZGFs
Tm9kZXNTZXQsIGRvY3VtZW50LCBub2Rlc1RvUmVtb3ZlKTsKKyAgICBmaWx0ZXJGb3JSZW1vdmFs
KG1fZGVmZXJyZWRSZWNvbXB1dGVJc0lnbm9yZWRMaXN0LCBkb2N1bWVudCwgbm9kZXNUb1JlbW92
ZSk7CisgICAgZmlsdGVyRm9yUmVtb3ZhbChtX2RlZmVycmVkVGV4dENoYW5nZWRMaXN0LCBkb2N1
bWVudCwgbm9kZXNUb1JlbW92ZSk7CisgICAgZmlsdGVyRm9yUmVtb3ZhbChtX2RlZmVycmVkU2Vs
ZWN0ZWRDaGlsZHJlZENoYW5nZWRMaXN0LCBkb2N1bWVudCwgbm9kZXNUb1JlbW92ZSk7CisKKyAg
ICBmb3IgKGF1dG8qIG5vZGUgOiBub2Rlc1RvUmVtb3ZlKQorICAgICAgICByZW1vdmUoKm5vZGUp
OwogfQogICAgIAogYm9vbCBBWE9iamVjdENhY2hlOjpub2RlSXNUZXh0Q29udHJvbChjb25zdCBO
b2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9i
amVjdENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
aAppbmRleCAxYTYwODgyMjUzZTMyNjU5NGEwNjRlNWQ5ZTFhODkzNzY0M2M0M2M3Li45MzU4MGE4
OTc2MTY2Mjg3MjA4ODI4N2I2NGQ3M2Y0M2Q0NzFlMDM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaApAQCAtMTU4LDcgKzE1OCw3IEBAIHB1YmxpYzoK
ICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBnZXQoTm9kZSopOwogICAgIAogICAgIHZvaWQgcmVt
b3ZlKFJlbmRlck9iamVjdCopOwotICAgIHZvaWQgcmVtb3ZlKE5vZGUqKTsKKyAgICB2b2lkIHJl
bW92ZShOb2RlJik7CiAgICAgdm9pZCByZW1vdmUoV2lkZ2V0Kik7CiAgICAgdm9pZCByZW1vdmUo
QVhJRCk7CiAKQEAgLTMyMCw3ICszMjAsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZyYW1lTG9h
ZGluZ0V2ZW50Tm90aWZpY2F0aW9uKEZyYW1lKiwgQVhMb2FkaW5nRXZlbnQpOwogCi0gICAgdm9p
ZCBjbGVhclRleHRNYXJrZXJOb2Rlc0luVXNlKERvY3VtZW50Kik7CisgICAgdm9pZCBwcmVwYXJl
Rm9yRG9jdW1lbnREZXN0cnVjdGlvbihjb25zdCBEb2N1bWVudCYpOwogCiAgICAgdm9pZCBzdGFy
dENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXNVbnRpbFRyZWVNdXRhdGVzKCk7CiAgICAg
dm9pZCBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwpAQCAtMzYxLDcgKzM2
MSw3IEBAIHByb3RlY3RlZDoKIAogICAgIC8vIFRoaXMgaXMgYSB3ZWFrIHJlZmVyZW5jZSBjYWNo
ZSBmb3Iga25vd2luZyBpZiBOb2RlcyB1c2VkIGJ5IFRleHRNYXJrZXJzIGFyZSB2YWxpZC4KICAg
ICB2b2lkIHNldE5vZGVJblVzZShOb2RlKiBuKSB7IG1fdGV4dE1hcmtlck5vZGVzLmFkZChuKTsg
fQotICAgIHZvaWQgcmVtb3ZlTm9kZUZvclVzZShOb2RlKiBuKSB7IG1fdGV4dE1hcmtlck5vZGVz
LnJlbW92ZShuKTsgfQorICAgIHZvaWQgcmVtb3ZlTm9kZUZvclVzZShOb2RlJiBuKSB7IG1fdGV4
dE1hcmtlck5vZGVzLnJlbW92ZSgmbik7IH0KICAgICBib29sIGlzTm9kZUluVXNlKE5vZGUqIG4p
IHsgcmV0dXJuIG1fdGV4dE1hcmtlck5vZGVzLmNvbnRhaW5zKG4pOyB9CiAgICAgCiAgICAgLy8g
Q2hhcmFjdGVyT2Zmc2V0IGZ1bmN0aW9ucy4KQEAgLTQxOSw3ICs0MTksNyBAQCBwcml2YXRlOgog
ICAgIEhhc2hNYXA8UmVuZGVyT2JqZWN0KiwgQVhJRD4gbV9yZW5kZXJPYmplY3RNYXBwaW5nOwog
ICAgIEhhc2hNYXA8V2lkZ2V0KiwgQVhJRD4gbV93aWRnZXRPYmplY3RNYXBwaW5nOwogICAgIEhh
c2hNYXA8Tm9kZSosIEFYSUQ+IG1fbm9kZU9iamVjdE1hcHBpbmc7Ci0gICAgSGFzaFNldDxOb2Rl
Kj4gbV90ZXh0TWFya2VyTm9kZXM7CisgICAgTGlzdEhhc2hTZXQ8Tm9kZSo+IG1fdGV4dE1hcmtl
ck5vZGVzOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxBWENvbXB1dGVkT2JqZWN0QXR0cmlidXRlQ2Fj
aGU+IG1fY29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZTsKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgYm9vbCBnQWNjZXNzaWJpbGl0eUVuYWJsZWQ7CiAgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIGJvb2wgZ0FjY2Vzc2liaWxpdHlFbmhhbmNlZFVzZXJJbnRlcmZhY2VFbmFibGVkOwpAQCAt
NTI4LDcgKzUyOCw3IEBAIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUNhY2hlQWZ0
ZXJOb2RlSXNBdHRhY2hlZChOb2RlKikgeyB9CiBpbmxpbmUgUmVmUHRyPFJhbmdlPiBBWE9iamVj
dENhY2hlOjpyYW5nZUZvck5vZGVDb250ZW50cyhOb2RlKikgeyByZXR1cm4gbnVsbHB0cjsgfQog
aW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVtb3ZlKEFYSUQpIHsgfQogaW5saW5lIHZvaWQg
QVhPYmplY3RDYWNoZTo6cmVtb3ZlKFJlbmRlck9iamVjdCopIHsgfQotaW5saW5lIHZvaWQgQVhP
YmplY3RDYWNoZTo6cmVtb3ZlKE5vZGUqKSB7IH0KK2lubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnJlbW92ZShOb2RlJikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoV2lk
Z2V0KikgeyB9CiBpbmxpbmUgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZENoaWxkcmVuQ2hh
bmdlZChSZW5kZXJPYmplY3QqKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVj
dGVkQ2hpbGRyZW5DaGFuZ2VkKE5vZGUqKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4
IGYzNTBkYmE4YjlhYTE4MzI3YTI5MDgzY2MxNGI4ZGRkOTEyMmYxN2YuLjRlNGFjNzY5MjIxMGZm
MGU3NzBhMzc4ZjRjMTdkZWM0ZGM2MjJmNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
MjMzOSwxMCArMjMzOSwxMCBAQCB2b2lkIERvY3VtZW50OjpwcmVwYXJlRm9yRGVzdHJ1Y3Rpb24o
KQogI2VuZGlmCiAKICNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCi0gICAgLy8gU3ViLWZyYW1lcyBu
ZWVkIHRvIGNsZWFudXAgTm9kZXMgaW4gdGhlIHRleHQgbWFya2VyIGNhY2hlIHdoZW4gdGhlIERv
Y3VtZW50IGRpc2FwcGVhcnMuCiAgICAgaWYgKHRoaXMgIT0gJnRvcERvY3VtZW50KCkpIHsKLSAg
ICAgICAgaWYgKEFYT2JqZWN0Q2FjaGUqIGNhY2hlID0gZXhpc3RpbmdBWE9iamVjdENhY2hlKCkp
Ci0gICAgICAgICAgICBjYWNoZS0+Y2xlYXJUZXh0TWFya2VyTm9kZXNJblVzZSh0aGlzKTsKKyAg
ICAgICAgLy8gTGV0IHRoZSBheCBjYWNoZSBrbm93IHRoYXQgdGhpcyBzdWJmcmFtZSBnb2VzIG91
dCBvZiBzY29wZS4KKyAgICAgICAgaWYgKGF1dG8qIGNhY2hlID0gZXhpc3RpbmdBWE9iamVjdENh
Y2hlKCkpCisgICAgICAgICAgICBjYWNoZS0+cHJlcGFyZUZvckRvY3VtZW50RGVzdHJ1Y3Rpb24o
KnRoaXMpOwogICAgIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKaW5kZXggZTNhNjE1YmM4OTky
YjYxYmJkNjUwNjZjNDJiNmU5MDkzYTc4ODZiYi4uZTA4NmM5ZmVkZTRiMTg4MGNlNDM4NDRiZWQ2
ZTQzNGI4YTJmNzNmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcApAQCAtMzI2LDggKzMyNiw4IEBAIHZvaWQg
Tm9kZTo6d2lsbEJlRGVsZXRlZEZyb20oRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIGRvY3VtZW50
LnJlbW92ZVRvdWNoRXZlbnRIYW5kbGVyKCp0aGlzLCBFdmVudEhhbmRsZXJSZW1vdmFsOjpBbGwp
OwogI2VuZGlmCiAKLSAgICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBkb2N1bWVudC5leGlz
dGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAgICAgICAgY2FjaGUtPnJlbW92ZSh0aGlzKTsKKyAgICBp
ZiAoYXV0byogY2FjaGUgPSBkb2N1bWVudC5leGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKKyAgICAg
ICAgY2FjaGUtPnJlbW92ZSgqdGhpcyk7CiB9CiAKIHZvaWQgTm9kZTo6bWF0ZXJpYWxpemVSYXJl
RGF0YSgpCkBAIC0yMDA5LDcgKzIwMDksNyBAQCB2b2lkIE5vZGU6Om1vdmVOb2RlVG9OZXdEb2N1
bWVudChEb2N1bWVudCYgb2xkRG9jdW1lbnQsIERvY3VtZW50JiBuZXdEb2N1bWVudCkKIAogICAg
IGlmIChBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKSB7CiAgICAgICAgIGlm
IChhdXRvKiBjYWNoZSA9IG9sZERvY3VtZW50LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQotICAg
ICAgICAgICAgY2FjaGUtPnJlbW92ZSh0aGlzKTsKKyAgICAgICAgICAgIGNhY2hlLT5yZW1vdmUo
KnRoaXMpOwogICAgIH0KIAogICAgIGlmIChhdXRvKiBldmVudFRhcmdldERhdGEgPSB0aGlzLT5l
dmVudFRhcmdldERhdGEoKSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>328634</attachid>
            <date>2017-12-06 14:49:19 -0800</date>
            <delta_ts>2017-12-06 16:55:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180503-20171206144918.patch</filename>
            <type>text/plain</type>
            <size>9364</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI1NTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2FmZDcwMjBkZTVjOWYx
OGU4MmJjYzZlYzNkOTBkNWUyNzM1ZDliMy4uMmVmZDQzMGIxMjNhMWY1OTM2ZGU5Yjk1OGYzNjAx
MTYxZjZlYWVhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE3LTEyLTA2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIG5vZGVzIGZyb20g
QVhPYmplY3RDYWNoZSB3aGVuIHRoZSBhc3NvY2lhdGVkIHN1YmZyYW1lIGRvY3VtZW50IGlzIGdl
dHRpbmcgZGVzdHJveWVkLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgwNTAzCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNTg5MTMyOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IENocmlzIEZsZWl6YWNoLgorCisgICAgICAgIFdoaWxlIEFYT2JqZWN0
Q2FjaGUgbGl2ZXMgb24gdGhlIG1haW5mcmFtZSdzIGRvY3VtZW50LCBpdCBjYWNoZXMgbm9kZXMg
ZnJvbSBldmVyeSBzdWJmcmFtZSBkb2N1bWVudC4KKyAgICAgICAgV2hlbiBhIG5vZGUgaXMgYmVp
bmcgZGVzdHJveWVkLCB3ZSBkZXJlZ2lzdGVyIGl0IGZyb20gdGhlIEFYIGNhY2hlIHRocm91Z2gg
dGhlIE5vZGUncyBkZXN0cnVjdG9yLgorICAgICAgICBTb29uIGFmdGVyIHRoZSBkb2N1bWVudCBp
cyBkZXRhY2hlZCBmcm9tIHRoZSBmcmFtZS9mcmFtZSBpcyBkZXRhY2hlZCBmcm9tIHRoZSBmcmFt
ZSB0cmVlLCB0aGlzIGNvZGVwYXRoCisgICAgICAgIGlzIG5vIGxvbmdlciBhdmFpbGFibGUgKG5v
IGFjY2VzcyB0byB0aGUgQVhPYmplY3RDYWNoZSBvYmplY3QpIGFuZCBmcm9tIHRoaXMgcG9pbnQg
d2UgYXJlIHVuYWJsZSB0byBkZXJlZ2lzdGVyCisgICAgICAgIG5vZGVzIGFzc29jaWF0ZWQgd2l0
aCB0aGUgY3VycmVudCBkb2N1bWVudC4KKyAgICAgICAgSW4gQVhPYmplY3RDYWNoZTo6cHJlcGFy
ZUZvckRvY3VtZW50RGVzdHJ1Y3Rpb24oKSwgd2UgcHJlZW1wdGl2ZWx5IHJlbW92ZSBhbGwgdGhl
IGNhY2hlZCBub2RlcyBhc3NvY2lhdGVkCisgICAgICAgIHdpdGggdGhlIGFib3V0LXRvLWJlLWRl
c3Ryb3llZCBkb2N1bWVudC4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3RzLgor
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpmaWx0ZXJG
b3JSZW1vdmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnByZXBhcmVGb3JE
b2N1bWVudERlc3RydWN0aW9uKTogQ29sbGVjdGluZyB0aGUgbm9kZXMgYW5kIHJlbW92aW5nIHRo
ZW0gbGF0ZXIgaXMKKyAgICAgICAgbm90IHRoZSBtb3N0IHBlcmZvcm1hbnQgd2F5IGJ1dCBpbiBv
cmRlciB0byBoYXZlIGEgc2luZ2xlIGNvZGUgcGF0aCBmb3IgdGhlIGRlLXJlZ2lzdHJhdGlvbiAo
QVhPYmplY3RDYWNoZTo6cmVtb3ZlKQorICAgICAgICBJIHRoaW5rIGl0J3Mgd29ydGggZ29pbmcg
ZG93biB0aGUgc2xvd2VyIHBhdGggLXdoaWNoIHNob3VsZCBub3QgcmVhbGx5IGJlIHRoYXQgc2xv
d2VyIGFueXdheSBzaW5jZSB0aG9zZQorICAgICAgICBsaXN0cyB0ZW5kIHRvIHN0YXkgc21hbGwu
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpjbGVhclRleHRNYXJrZXJOb2Rlc0lu
VXNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnJlbW92ZU5vZGVGb3JVc2UpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cmVtb3ZlKToKKyAgICAgICAgKiBkb20vRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnByZXBhcmVGb3JEZXN0cnVj
dGlvbik6CisgICAgICAgICogZG9tL05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6
d2lsbEJlRGVsZXRlZEZyb20pOgorICAgICAgICAoV2ViQ29yZTo6Tm9kZTo6bW92ZU5vZGVUb05l
d0RvY3VtZW50KToKKwogMjAxNy0xMi0wNSAgQmFzdWtlIFN1enVraSAgPEJhc3VrZS5TdXp1a2lA
c29ueS5jb20+CiAKICAgICAgICAgRmFzdCBiaW5kaW5nIGdlbmVyYXRpb24gYnkgYmF0Y2hpbmcg
c2V2ZXJhbCBmaWxlcyBhdCBvbmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WE9iamVjdENhY2hlLmNwcAppbmRleCA2ZWFkYWY0ZTEzMzQ3ZDE2YTNiZDVmNzdjODc5OTJkNjMz
ODk0YjZmLi5jNmIzY2Y4OGU0ZmE5MmE2NmZkNjY4Zjc4M2YyNGJjNDJjZmZkMGI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTcxNiwy
NSArNzE2LDIyIEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVtb3ZlKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIpCiAgICAgcmVtb3ZlKG1fcmVuZGVyT2JqZWN0TWFwcGluZy50YWtlKHJlbmRlcmVyKSk7
CiB9CiAKLXZvaWQgQVhPYmplY3RDYWNoZTo6cmVtb3ZlKE5vZGUqIG5vZGUpCit2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnJlbW92ZShOb2RlJiBub2RlKQogewotICAgIGlmICghbm9kZSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgaWYgKGlzPEVsZW1lbnQ+KCpub2RlKSkgewotICAgICAgICBtX2RlZmVy
cmVkUmVjb21wdXRlSXNJZ25vcmVkTGlzdC5yZW1vdmUoZG93bmNhc3Q8RWxlbWVudD4obm9kZSkp
OwotICAgICAgICBtX2RlZmVycmVkU2VsZWN0ZWRDaGlsZHJlZENoYW5nZWRMaXN0LnJlbW92ZShk
b3duY2FzdDxFbGVtZW50Pihub2RlKSk7CisgICAgaWYgKGlzPEVsZW1lbnQ+KG5vZGUpKSB7Cisg
ICAgICAgIG1fZGVmZXJyZWRSZWNvbXB1dGVJc0lnbm9yZWRMaXN0LnJlbW92ZShkb3duY2FzdDxF
bGVtZW50Pigmbm9kZSkpOworICAgICAgICBtX2RlZmVycmVkU2VsZWN0ZWRDaGlsZHJlZENoYW5n
ZWRMaXN0LnJlbW92ZShkb3duY2FzdDxFbGVtZW50Pigmbm9kZSkpOwogICAgIH0KLSAgICBtX2Rl
ZmVycmVkVGV4dENoYW5nZWRMaXN0LnJlbW92ZShub2RlKTsKKyAgICBtX2RlZmVycmVkVGV4dENo
YW5nZWRMaXN0LnJlbW92ZSgmbm9kZSk7CiAgICAgcmVtb3ZlTm9kZUZvclVzZShub2RlKTsKIAot
ICAgIHJlbW92ZShtX25vZGVPYmplY3RNYXBwaW5nLnRha2Uobm9kZSkpOworICAgIHJlbW92ZSht
X25vZGVPYmplY3RNYXBwaW5nLnRha2UoJm5vZGUpKTsKIAotICAgIGlmIChtX2N1cnJlbnRNb2Rh
bE5vZGUgPT0gbm9kZSkKKyAgICBpZiAobV9jdXJyZW50TW9kYWxOb2RlID09ICZub2RlKQogICAg
ICAgICBtX2N1cnJlbnRNb2RhbE5vZGUgPSBudWxscHRyOwotICAgIG1fbW9kYWxOb2Rlc1NldC5y
ZW1vdmUobm9kZSk7CisgICAgbV9tb2RhbE5vZGVzU2V0LnJlbW92ZSgmbm9kZSk7CiAKLSAgICBy
ZW1vdmUobm9kZS0+cmVuZGVyZXIoKSk7CisgICAgcmVtb3ZlKG5vZGUucmVuZGVyZXIoKSk7CiB9
CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVtb3ZlKFdpZGdldCogdmlldykKQEAgLTI3MjgsMjAg
KzI3MjUsMjcgQEAgY29uc3QgRWxlbWVudCogQVhPYmplY3RDYWNoZTo6cm9vdEFYRWRpdGFibGVF
bGVtZW50KGNvbnN0IE5vZGUqIG5vZGUpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBB
WE9iamVjdENhY2hlOjpjbGVhclRleHRNYXJrZXJOb2Rlc0luVXNlKERvY3VtZW50KiBkb2N1bWVu
dCkKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitzdGF0aWMgdm9pZCBmaWx0ZXJGb3JSZW1vdmFsKGNv
bnN0IExpc3RIYXNoU2V0PFQ+JiBsaXN0LCBjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIEhhc2hT
ZXQ8Tm9kZSo+JiBub2Rlc1RvUmVtb3ZlKQogewotICAgIGlmICghZG9jdW1lbnQpCi0gICAgICAg
IHJldHVybjsKLSAgICAKLSAgICAvLyBDaGVjayBlYWNoIG5vZGUgdG8gc2VlIGlmIGl0J3MgaW5z
aWRlIHRoZSBkb2N1bWVudCBiZWluZyBkZWxldGVkLCBvZiBpZiBpdCBubyBsb25nZXIgYmVsb25n
cyB0byBhIGRvY3VtZW50LgotICAgIEhhc2hTZXQ8Tm9kZSo+IG5vZGVzVG9EZWxldGU7Ci0gICAg
Zm9yIChjb25zdCBhdXRvJiBub2RlIDogbV90ZXh0TWFya2VyTm9kZXMpIHsKLSAgICAgICAgaWYg
KCFub2RlLT5pc0Nvbm5lY3RlZCgpIHx8ICYobm9kZSktPmRvY3VtZW50KCkgPT0gZG9jdW1lbnQp
Ci0gICAgICAgICAgICBub2Rlc1RvRGVsZXRlLmFkZChub2RlKTsKKyAgICBmb3IgKGF1dG8qIG5v
ZGUgOiBsaXN0KSB7CisgICAgICAgIGlmIChub2RlLT5pc0Nvbm5lY3RlZCgpICYmICZub2RlLT5k
b2N1bWVudCgpICE9ICZkb2N1bWVudCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBu
b2Rlc1RvUmVtb3ZlLmFkZChub2RlKTsKICAgICB9Ci0gICAgCi0gICAgZm9yIChjb25zdCBhdXRv
JiBub2RlIDogbm9kZXNUb0RlbGV0ZSkKLSAgICAgICAgbV90ZXh0TWFya2VyTm9kZXMucmVtb3Zl
KG5vZGUpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnByZXBhcmVGb3JEb2N1bWVudERlc3Ry
dWN0aW9uKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKK3sKKyAgICBIYXNoU2V0PE5vZGUqPiBu
b2Rlc1RvUmVtb3ZlOworICAgIGZpbHRlckZvclJlbW92YWwobV90ZXh0TWFya2VyTm9kZXMsIGRv
Y3VtZW50LCBub2Rlc1RvUmVtb3ZlKTsKKyAgICBmaWx0ZXJGb3JSZW1vdmFsKG1fbW9kYWxOb2Rl
c1NldCwgZG9jdW1lbnQsIG5vZGVzVG9SZW1vdmUpOworICAgIGZpbHRlckZvclJlbW92YWwobV9k
ZWZlcnJlZFJlY29tcHV0ZUlzSWdub3JlZExpc3QsIGRvY3VtZW50LCBub2Rlc1RvUmVtb3ZlKTsK
KyAgICBmaWx0ZXJGb3JSZW1vdmFsKG1fZGVmZXJyZWRUZXh0Q2hhbmdlZExpc3QsIGRvY3VtZW50
LCBub2Rlc1RvUmVtb3ZlKTsKKyAgICBmaWx0ZXJGb3JSZW1vdmFsKG1fZGVmZXJyZWRTZWxlY3Rl
ZENoaWxkcmVkQ2hhbmdlZExpc3QsIGRvY3VtZW50LCBub2Rlc1RvUmVtb3ZlKTsKKworICAgIGZv
ciAoYXV0byogbm9kZSA6IG5vZGVzVG9SZW1vdmUpCisgICAgICAgIHJlbW92ZSgqbm9kZSk7CiB9
CiAgICAgCiBib29sIEFYT2JqZWN0Q2FjaGU6Om5vZGVJc1RleHRDb250cm9sKGNvbnN0IE5vZGUq
IG5vZGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCmlu
ZGV4IDFhNjA4ODIyNTNlMzI2NTk0YTA2NGU1ZDllMWE4OTM3NjQzYzQzYzcuLjkzNTgwYTg5NzYx
NjYyODcyMDg4Mjg3YjY0ZDczZjQzZDQ3MWUwMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5oCkBAIC0xNTgsNyArMTU4LDcgQEAgcHVibGljOgogICAg
IEFjY2Vzc2liaWxpdHlPYmplY3QqIGdldChOb2RlKik7CiAgICAgCiAgICAgdm9pZCByZW1vdmUo
UmVuZGVyT2JqZWN0Kik7Ci0gICAgdm9pZCByZW1vdmUoTm9kZSopOworICAgIHZvaWQgcmVtb3Zl
KE5vZGUmKTsKICAgICB2b2lkIHJlbW92ZShXaWRnZXQqKTsKICAgICB2b2lkIHJlbW92ZShBWElE
KTsKIApAQCAtMzIwLDcgKzMyMCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZnJhbWVMb2FkaW5n
RXZlbnROb3RpZmljYXRpb24oRnJhbWUqLCBBWExvYWRpbmdFdmVudCk7CiAKLSAgICB2b2lkIGNs
ZWFyVGV4dE1hcmtlck5vZGVzSW5Vc2UoRG9jdW1lbnQqKTsKKyAgICB2b2lkIHByZXBhcmVGb3JE
b2N1bWVudERlc3RydWN0aW9uKGNvbnN0IERvY3VtZW50Jik7CiAKICAgICB2b2lkIHN0YXJ0Q2Fj
aGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlc1VudGlsVHJlZU11dGF0ZXMoKTsKICAgICB2b2lk
IHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CkBAIC0zNjEsNyArMzYxLDcg
QEAgcHJvdGVjdGVkOgogCiAgICAgLy8gVGhpcyBpcyBhIHdlYWsgcmVmZXJlbmNlIGNhY2hlIGZv
ciBrbm93aW5nIGlmIE5vZGVzIHVzZWQgYnkgVGV4dE1hcmtlcnMgYXJlIHZhbGlkLgogICAgIHZv
aWQgc2V0Tm9kZUluVXNlKE5vZGUqIG4pIHsgbV90ZXh0TWFya2VyTm9kZXMuYWRkKG4pOyB9Ci0g
ICAgdm9pZCByZW1vdmVOb2RlRm9yVXNlKE5vZGUqIG4pIHsgbV90ZXh0TWFya2VyTm9kZXMucmVt
b3ZlKG4pOyB9CisgICAgdm9pZCByZW1vdmVOb2RlRm9yVXNlKE5vZGUmIG4pIHsgbV90ZXh0TWFy
a2VyTm9kZXMucmVtb3ZlKCZuKTsgfQogICAgIGJvb2wgaXNOb2RlSW5Vc2UoTm9kZSogbikgeyBy
ZXR1cm4gbV90ZXh0TWFya2VyTm9kZXMuY29udGFpbnMobik7IH0KICAgICAKICAgICAvLyBDaGFy
YWN0ZXJPZmZzZXQgZnVuY3Rpb25zLgpAQCAtNDE5LDcgKzQxOSw3IEBAIHByaXZhdGU6CiAgICAg
SGFzaE1hcDxSZW5kZXJPYmplY3QqLCBBWElEPiBtX3JlbmRlck9iamVjdE1hcHBpbmc7CiAgICAg
SGFzaE1hcDxXaWRnZXQqLCBBWElEPiBtX3dpZGdldE9iamVjdE1hcHBpbmc7CiAgICAgSGFzaE1h
cDxOb2RlKiwgQVhJRD4gbV9ub2RlT2JqZWN0TWFwcGluZzsKLSAgICBIYXNoU2V0PE5vZGUqPiBt
X3RleHRNYXJrZXJOb2RlczsKKyAgICBMaXN0SGFzaFNldDxOb2RlKj4gbV90ZXh0TWFya2VyTm9k
ZXM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEFYQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVDYWNoZT4g
bV9jb21wdXRlZE9iamVjdEF0dHJpYnV0ZUNhY2hlOwogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBib29sIGdBY2Nlc3NpYmlsaXR5RW5hYmxlZDsKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
Ym9vbCBnQWNjZXNzaWJpbGl0eUVuaGFuY2VkVXNlckludGVyZmFjZUVuYWJsZWQ7CkBAIC01Mjgs
NyArNTI4LDcgQEAgaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlQ2FjaGVBZnRlck5v
ZGVJc0F0dGFjaGVkKE5vZGUqKSB7IH0KIGlubGluZSBSZWZQdHI8UmFuZ2U+IEFYT2JqZWN0Q2Fj
aGU6OnJhbmdlRm9yTm9kZUNvbnRlbnRzKE5vZGUqKSB7IHJldHVybiBudWxscHRyOyB9CiBpbmxp
bmUgdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoQVhJRCkgeyB9CiBpbmxpbmUgdm9pZCBBWE9i
amVjdENhY2hlOjpyZW1vdmUoUmVuZGVyT2JqZWN0KikgeyB9Ci1pbmxpbmUgdm9pZCBBWE9iamVj
dENhY2hlOjpyZW1vdmUoTm9kZSopIHsgfQoraW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6cmVt
b3ZlKE5vZGUmKSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShXaWRnZXQq
KSB7IH0KIGlubGluZSB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2Vk
KFJlbmRlck9iamVjdCopIHsgfQogaW5saW5lIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRD
aGlsZHJlbkNoYW5nZWQoTm9kZSopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZjM1
MGRiYThiOWFhMTgzMjdhMjkwODNjYzE0YjhkZGQ5MTIyZjE3Zi4uNGU0YWM3NjkyMjEwZmYwZTc3
MGEzNzhmNGMxN2RlYzRkYzYyMmY2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yMzM5
LDEwICsyMzM5LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OnByZXBhcmVGb3JEZXN0cnVjdGlvbigpCiAj
ZW5kaWYKIAogI2lmIEhBVkUoQUNDRVNTSUJJTElUWSkKLSAgICAvLyBTdWItZnJhbWVzIG5lZWQg
dG8gY2xlYW51cCBOb2RlcyBpbiB0aGUgdGV4dCBtYXJrZXIgY2FjaGUgd2hlbiB0aGUgRG9jdW1l
bnQgZGlzYXBwZWFycy4KICAgICBpZiAodGhpcyAhPSAmdG9wRG9jdW1lbnQoKSkgewotICAgICAg
ICBpZiAoQVhPYmplY3RDYWNoZSogY2FjaGUgPSBleGlzdGluZ0FYT2JqZWN0Q2FjaGUoKSkKLSAg
ICAgICAgICAgIGNhY2hlLT5jbGVhclRleHRNYXJrZXJOb2Rlc0luVXNlKHRoaXMpOworICAgICAg
ICAvLyBMZXQgdGhlIGF4IGNhY2hlIGtub3cgdGhhdCB0aGlzIHN1YmZyYW1lIGdvZXMgb3V0IG9m
IHNjb3BlLgorICAgICAgICBpZiAoYXV0byogY2FjaGUgPSBleGlzdGluZ0FYT2JqZWN0Q2FjaGUo
KSkKKyAgICAgICAgICAgIGNhY2hlLT5wcmVwYXJlRm9yRG9jdW1lbnREZXN0cnVjdGlvbigqdGhp
cyk7CiAgICAgfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmNwcAppbmRleCBlM2E2MTViYzg5OTJiNjFi
YmQ2NTA2NmM0MmI2ZTkwOTNhNzg4NmJiLi5lMDg2YzlmZWRlNGIxODgwY2U0Mzg0NGJlZDZlNDM0
YjhhMmY3M2Y1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vTm9kZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL05vZGUuY3BwCkBAIC0zMjYsOCArMzI2LDggQEAgdm9pZCBOb2Rl
Ojp3aWxsQmVEZWxldGVkRnJvbShEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgZG9jdW1lbnQucmVt
b3ZlVG91Y2hFdmVudEhhbmRsZXIoKnRoaXMsIEV2ZW50SGFuZGxlclJlbW92YWw6OkFsbCk7CiAj
ZW5kaWYKIAotICAgIGlmIChBWE9iamVjdENhY2hlKiBjYWNoZSA9IGRvY3VtZW50LmV4aXN0aW5n
QVhPYmplY3RDYWNoZSgpKQotICAgICAgICBjYWNoZS0+cmVtb3ZlKHRoaXMpOworICAgIGlmIChh
dXRvKiBjYWNoZSA9IGRvY3VtZW50LmV4aXN0aW5nQVhPYmplY3RDYWNoZSgpKQorICAgICAgICBj
YWNoZS0+cmVtb3ZlKCp0aGlzKTsKIH0KIAogdm9pZCBOb2RlOjptYXRlcmlhbGl6ZVJhcmVEYXRh
KCkKQEAgLTIwMDksNyArMjAwOSw3IEBAIHZvaWQgTm9kZTo6bW92ZU5vZGVUb05ld0RvY3VtZW50
KERvY3VtZW50JiBvbGREb2N1bWVudCwgRG9jdW1lbnQmIG5ld0RvY3VtZW50KQogCiAgICAgaWYg
KEFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpIHsKICAgICAgICAgaWYgKGF1
dG8qIGNhY2hlID0gb2xkRG9jdW1lbnQuZXhpc3RpbmdBWE9iamVjdENhY2hlKCkpCi0gICAgICAg
ICAgICBjYWNoZS0+cmVtb3ZlKHRoaXMpOworICAgICAgICAgICAgY2FjaGUtPnJlbW92ZSgqdGhp
cyk7CiAgICAgfQogCiAgICAgaWYgKGF1dG8qIGV2ZW50VGFyZ2V0RGF0YSA9IHRoaXMtPmV2ZW50
VGFyZ2V0RGF0YSgpKSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>