<?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>209641</bug_id>
          
          <creation_ts>2020-03-26 21:10:11 -0700</creation_ts>
          <short_desc>Nullptr crash in CompositeEditCommand::moveParagraphs when inserting OL into uneditable parent.</short_desc>
          <delta_ts>2020-03-27 21:17:06 -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>HTML Editing</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jack">shihchieh_lee</reporter>
          <assigned_to name="Jack">shihchieh_lee</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>ews-feeder</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mifenton</cc>
    
    <cc>product-security</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1634725</commentid>
    <comment_count>0</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-03-26 21:10:11 -0700</bug_when>
    <thetext>&lt;rdar://60915598&gt;

0   com.apple.WebCore             	0x0000000113bfdf6d WTF::Optional&lt;WebCore::BoundaryPoint&gt;::operator*() &amp;&amp; + 45
1   com.apple.WebCore             	0x00000001162fb268 WebCore::CompositeEditCommand::moveParagraphs(WebCore::VisiblePosition const&amp;, WebCore::VisiblePosition const&amp;, WebCore::VisiblePosition const&amp;, bool, bool) + 4616
2   com.apple.WebCore             	0x00000001163a7fc4 WebCore::InsertListCommand::unlistifyParagraph(WebCore::VisiblePosition const&amp;, WebCore::HTMLElement*, WebCore::Node*) + 1860
3   com.apple.WebCore             	0x00000001163a73e1 WebCore::InsertListCommand::doApplyForSingleParagraph(bool, WebCore::HTMLQualifiedName const&amp;, WebCore::Range*) + 2977
4   com.apple.WebCore             	0x00000001163a6510 WebCore::InsertListCommand::doApply() + 2624
5   com.apple.WebCore             	0x00000001162d7957 WebCore::CompositeEditCommand::apply() + 439
6   com.apple.WebCore             	0x000000011638dd19 WebCore::executeInsertOrderedList(WebCore::Frame&amp;, WebCore::Event*, WebCore::EditorCommandSource, WTF::String const&amp;) + 201
7   com.apple.WebCore             	0x0000000116007e88 WebCore::Document::execCommand(WTF::String const&amp;, bool, WTF::String const&amp;) + 248</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634729</commentid>
    <comment_count>1</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-03-26 21:23:08 -0700</bug_when>
    <thetext>In this case we try to insert ol at the position of li. Because li is originally in un-ordered list, we call unlistifyParagraph to move li into a BR element. Since BR needs to be inserted in body, but body is not editable, the insertion fails and leave BR parentless. The next call in moveParagraphs deref the parent of BR and crashed. 

&lt;/style&gt;
&lt;script&gt;
    window.onload = () =&gt; {
        document.getSelection().setPosition(LI);
        document.execCommand(&quot;insertOrderedList&quot;, false);
    }
&lt;/script&gt;
&lt;body&gt;&lt;ul&gt;&lt;li id=LI contenteditable=&quot;true&quot;&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634734</commentid>
    <comment_count>2</comment_count>
      <attachid>394702</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-03-26 21:44:45 -0700</bug_when>
    <thetext>Created attachment 394702
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634736</commentid>
    <comment_count>3</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-03-26 21:56:11 -0700</bug_when>
    <thetext>This is a conservative patch. We are checking parentless node after insertion. In debug build, a lot of assertions for editable content trigger before and during insertion.

I was wondering if checking parent of container node of the visible position for edibility is okay? Is it too aggressive and may find false positive? I roughly checked all the insertion calls and each of them eventually checks parent or ancestor for editability.

Something like this:

if (!start.deepEquivalent().containerNode()-&gt;hasEditableStyle() || !start.deepEquivalent().containerNode()-&gt;parentNode()-&gt;hasEditableStyle())
  return;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634739</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-03-26 22:06:28 -0700</bug_when>
    <thetext>(In reply to Jack from comment #3)
&gt; This is a conservative patch. We are checking parentless node after
&gt; insertion. In debug build, a lot of assertions for editable content trigger
&gt; before and during insertion.

Hm... we probably need to fix that because we can&apos;t land a test which hits assertions in debug builds.

&gt; I was wondering if checking parent of container node of the visible position
&gt; for edibility is okay? Is it too aggressive and may find false positive? I
&gt; roughly checked all the insertion calls and each of them eventually checks
&gt; parent or ancestor for editability.
&gt; 
&gt; Something like this:
&gt; 
&gt; if (!start.deepEquivalent().containerNode()-&gt;hasEditableStyle() ||
&gt; !start.deepEquivalent().containerNode()-&gt;parentNode()-&gt;hasEditableStyle())
&gt;   return;

At where? That doesn&apos;t seem right if container node itself is editable. Why does the parent of the container node needs to be also editable?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634740</commentid>
    <comment_count>5</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-03-26 22:12:54 -0700</bug_when>
    <thetext>(In reply to Ryosuke Niwa from comment #4)
&gt; (In reply to Jack from comment #3)
&gt; &gt; This is a conservative patch. We are checking parentless node after
&gt; &gt; insertion. In debug build, a lot of assertions for editable content trigger
&gt; &gt; before and during insertion.
&gt; 
&gt; Hm... we probably need to fix that because we can&apos;t land a test which hits
&gt; assertions in debug builds.
I see.

&gt; &gt; if (!start.deepEquivalent().containerNode()-&gt;hasEditableStyle() ||
&gt; &gt; !start.deepEquivalent().containerNode()-&gt;parentNode()-&gt;hasEditableStyle())
&gt; &gt;   return;
&gt; 
&gt; At where? That doesn&apos;t seem right if container node itself is editable. Why
&gt; does the parent of the container node needs to be also editable?
In the beginning of the function.

It&apos;s because the function insertNodeAfter or insertNodeBefore eventually append or insert to the parent, for example:

void CompositeEditCommand::insertNodeAfter(Ref&lt;Node&gt;&amp;&amp; insertChild, Node&amp; refChild)
{
    ContainerNode* parent = refChild.parentNode();
...
    if (parent-&gt;lastChild() == &amp;refChild)
        appendNode(WTFMove(insertChild), *parent);
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634742</commentid>
    <comment_count>6</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-03-26 22:17:21 -0700</bug_when>
    <thetext>And InsertNodeBefore also checks parent for editability.

void InsertNodeBeforeCommand::doApply()
{
    ContainerNode* parent = m_refChild-&gt;parentNode();
    if (!parent || (m_shouldAssumeContentIsAlwaysEditable == DoNotAssumeContentIsAlwaysEditable &amp;&amp; !isEditableNode(*parent)))
        return;
    ASSERT(isEditableNode(*parent));

    parent-&gt;insertBefore(m_insertChild, m_refChild.ptr());
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634743</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-03-26 22:20:59 -0700</bug_when>
    <thetext>(In reply to Jack from comment #5)
&gt; (In reply to Ryosuke Niwa from comment #4)
&gt; &gt; (In reply to Jack from comment #3)
&gt; &gt; &gt; This is a conservative patch. We are checking parentless node after
&gt; &gt; &gt; insertion. In debug build, a lot of assertions for editable content trigger
&gt; &gt; &gt; before and during insertion.
&gt; &gt; 
&gt; &gt; Hm... we probably need to fix that because we can&apos;t land a test which hits
&gt; &gt; assertions in debug builds.
&gt; I see.
&gt; 
&gt; &gt; &gt; if (!start.deepEquivalent().containerNode()-&gt;hasEditableStyle() ||
&gt; &gt; &gt; !start.deepEquivalent().containerNode()-&gt;parentNode()-&gt;hasEditableStyle())
&gt; &gt; &gt;   return;
&gt; &gt; 
&gt; &gt; At where? That doesn&apos;t seem right if container node itself is editable. Why
&gt; &gt; does the parent of the container node needs to be also editable?
&gt; In the beginning of the function.

The beginning of which function? InsertListCommand::unlistifyParagraph?

&gt; It&apos;s because the function insertNodeAfter or insertNodeBefore eventually
&gt; append or insert to the parent, for example:

In which function? It&apos;s unclear what code of which function you&apos;re talking about.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634744</commentid>
    <comment_count>8</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-03-26 22:24:31 -0700</bug_when>
    <thetext> &gt; In which function? It&apos;s unclear what code of which function you&apos;re talking
&gt; about.
Oh sorry, the changes are in unlistifyParagraph and listifyParagraph.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634748</commentid>
    <comment_count>9</comment_count>
      <attachid>394706</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-03-26 23:09:28 -0700</bug_when>
    <thetext>Created attachment 394706
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634749</commentid>
    <comment_count>10</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-03-26 23:13:32 -0700</bug_when>
    <thetext>Thanks to Ryosuke for discussion. We use more aggressive editability check in unlistifyParagraph because the insertion position is always the listNode.

Try this patch on EWS tests.
(In reply to Jack from comment #9)
&gt; Created attachment 394706 [details]
&gt; Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634758</commentid>
    <comment_count>11</comment_count>
      <attachid>394706</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-03-26 23:58:51 -0700</bug_when>
    <thetext>Comment on attachment 394706
Patch

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

&gt; Source/WebCore/editing/InsertListCommand.cpp:277
&gt; +    

Nit: whitespace.

&gt; Source/WebCore/editing/InsertListCommand.cpp:280
&gt; +    

Nit: whitespace.

&gt; Source/WebCore/editing/InsertListCommand.cpp:398
&gt; +        

Nit: whitespace.

&gt; LayoutTests/editing/inserting/insert-ol-uneditable-parent.html:1
&gt; +&lt;/style&gt;

Do we really need this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634759</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-03-26 23:59:59 -0700</bug_when>
    <thetext>There is no security implication here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634865</commentid>
    <comment_count>13</comment_count>
      <attachid>394728</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-03-27 10:36:16 -0700</bug_when>
    <thetext>Created attachment 394728
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634866</commentid>
    <comment_count>14</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-03-27 10:38:12 -0700</bug_when>
    <thetext>Thanks for the good catches! It&apos;s in the original test case, somehow my eyes automatically skip that...   :-)
(In reply to Ryosuke Niwa from comment #11)
&gt; Comment on attachment 394706 [details]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635120</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-27 21:17:05 -0700</bug_when>
    <thetext>Committed r259153: &lt;https://trac.webkit.org/changeset/259153&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394728.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394702</attachid>
            <date>2020-03-26 21:44:45 -0700</date>
            <delta_ts>2020-03-26 22:37:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209641-20200326214444.patch</filename>
            <type>text/plain</type>
            <size>4618</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTE5ZmJjOTMyM2JmOTVj
NzAxNzBmZmZmODdkNTU1MjNjOGU0YjIwYS4uZWFjOWYxYTVlOGE1NjEyNGY2YzZkM2QzZmJlZjdl
NWEyODgwZTVhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTAzLTI2ICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIE51bGxwdHIgY3Jhc2gg
aW4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzIHdoZW4gaW5zZXJ0aW5nIE9M
IGludG8gdW5lZGl0YWJsZSBwYXJlbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDk2NDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwOTE1NTk4
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluc2Vy
dGluZyBCUiBpbiB1bmxpc3RpZnlQYXJhZ3JhcGggb3IgT0wvVUwgbGlzdCBpbiBsaXN0aWZ5UGFy
YWdyYXBoIHdvdWxkIGZhaWwgYmVjYXVzZSBpbnNlcnRpb24gcG9zaXRpb24gaXMgdW5lZGl0YWJs
ZS4KKyAgICAgICAgSW4gdGhpcyBjYXNlIEJSL09ML1VMIGJlY29tZSBwYXJlbnRsZXNzIGFuZCB0
aGUgY29kZSBjcmFzaGVzIGxhdGVyIHdoZW4gcGFyZW50IGlzIGRlcmVmZXJlbmNlZC4gCisgICAg
ICAgIEl04oCZcyBoYXJkIHRvIHByZWRpY3Qgd2hlcmUgQlIvT0wvVUwgd2lsbCBiZSBpbnNlcnRl
ZCwgc28gd2UgY2hlY2sgaWYgdGhleSBhcmUgcGFyZW50bGVzcyBhZnRlciB0aGUgaW5zZXJ0aW9u
LCBhbmQgcmV0dXJuIGltbWVkaWF0ZWx5IGlmIHNvLgorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcv
aW5zZXJ0aW5nL2luc2VydC1vbC11bmVkaXRhYmxlLXBhcmVudC5odG1sCisKKyAgICAgICAgKiBl
ZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc2VydExp
c3RDb21tYW5kOjp1bmxpc3RpZnlQYXJhZ3JhcGgpOgorICAgICAgICAoV2ViQ29yZTo6SW5zZXJ0
TGlzdENvbW1hbmQ6Omxpc3RpZnlQYXJhZ3JhcGgpOgorCiAyMDIwLTAzLTIzICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIGNvbnNvbGUg
bWVzc2FnZSB3aGVuIGxlZ2FjeSBUTFMgaXMgdXNlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydExpc3RDb21tYW5kLmNwcAppbmRleCAzYzc3YzFlMGRlN2I4YzBlMzQwODJlZDQxNWQw
MGJjZDg3ZDlmNWQ2Li42NDk5OTFjOGI5NTExYWExNTZjZTM4YmRkMWI2ODVkYjQwNDUzOTE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcApAQCAtMzIw
LDYgKzMyMCw5IEBAIHZvaWQgSW5zZXJ0TGlzdENvbW1hbmQ6OnVubGlzdGlmeVBhcmFncmFwaChj
b25zdCBWaXNpYmxlUG9zaXRpb24mIG9yaWdpbmFsU3RhcnQsCiAgICAgfSBlbHNlCiAgICAgICAg
IGluc2VydE5vZGVBZnRlcihub2RlVG9JbnNlcnQucmVsZWFzZU5vbk51bGwoKSwgKmxpc3ROb2Rl
KTsKIAorICAgIGlmICghcGxhY2Vob2xkZXIucHRyKCktPmlzQ29ubmVjdGVkKCkpCisgICAgICAg
IHJldHVybjsKKwogICAgIFZpc2libGVQb3NpdGlvbiBpbnNlcnRpb25Qb2ludCA9IFZpc2libGVQ
b3NpdGlvbihwb3NpdGlvbkJlZm9yZU5vZGUocGxhY2Vob2xkZXIucHRyKCkpKTsKICAgICBtb3Zl
UGFyYWdyYXBocyhzdGFydCwgZW5kLCBpbnNlcnRpb25Qb2ludCwgdHJ1ZSk7CiB9CkBAIC0zOTEs
NiArMzk0LDkgQEAgUmVmUHRyPEhUTUxFbGVtZW50PiBJbnNlcnRMaXN0Q29tbWFuZDo6bGlzdGlm
eVBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mIG8KIAogICAgICAgICBpbnNlcnROb2Rl
QXQoKmxpc3RFbGVtZW50LCBpbnNlcnRpb25Qb3MpOwogCisgICAgICAgIGlmICghbGlzdEVsZW1l
bnQtPmlzQ29ubmVjdGVkKCkpCisgICAgICAgICAgICByZXR1cm4gMDsKKwogICAgICAgICAvLyBX
ZSBpbnNlcnRlZCB0aGUgbGlzdCBhdCB0aGUgc3RhcnQgb2YgdGhlIGNvbnRlbnQgd2UncmUgYWJv
dXQgdG8gbW92ZQogICAgICAgICAvLyBVcGRhdGUgdGhlIHN0YXJ0IG9mIGNvbnRlbnQsIHNvIHdl
IGRvbid0IHRyeSB0byBtb3ZlIHRoZSBsaXN0IGludG8gaXRzZWxmLiAgYnVnIDE5MDY2CiAgICAg
ICAgIC8vIExheW91dCBpcyBuZWNlc3Nhcnkgc2luY2Ugc3RhcnQncyBub2RlJ3MgaW5saW5lIHJl
bmRlcmVycyBtYXkgaGF2ZSBiZWVuIGRlc3Ryb3llZCBieSB0aGUgaW5zZXJ0aW9uCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MjE4YjQzZjI4ZDVmZTFjYmFmZDJjOTAyODIzZGE3NmY0NDM3NmJhMy4uOThlNzgzNThmYTM1NWQ1
YzA1OTEwODBjYWQ5ZDY4YjYzYTI0MmVmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTAz
LTI2ICBKYWNrIExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIE51bGxw
dHIgY3Jhc2ggaW4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzIHdoZW4gaW5z
ZXJ0aW5nIE9MIGludG8gdW5lZGl0YWJsZSBwYXJlbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzYwOTE1NTk4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGVkIGEgcmVncmVzc2lvbiB0ZXN0IGZvciB0aGUgY3Jhc2guCisgICAgICAgIAorICAg
ICAgICAqIGVkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1vbC11bmVkaXRhYmxlLXBhcmVudC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1vbC11
bmVkaXRhYmxlLXBhcmVudC5odG1sOiBBZGRlZC4KKwogMjAyMC0wMy0yMyAgSmFzb24gTGF3cmVu
Y2UgIDxsYXdyZW5jZS5qQGFwcGxlLmNvbT4KIAogICAgICAgICBbIGlPUyB3azIgRGVidWcgXSBm
YXN0L3RleHQvY29udHJvbC1jaGFyYWN0ZXJzL3Zpc2libGUtY29udHJvbC1jaGFyYWN0ZXJzLTEu
aHRtbCBpcyBmbGFreSBjcmFzaGluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
aW5zZXJ0aW5nL2luc2VydC1vbC11bmVkaXRhYmxlLXBhcmVudC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtb2wtdW5lZGl0YWJsZS1wYXJlbnQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyZmJlOWUyODUzZGRlMzg1YWJjZWI3NzFmNTM1YzkxYmM1
MDMwMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2luc2VydGluZy9p
bnNlcnQtb2wtdW5lZGl0YWJsZS1wYXJlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK1Rl
c3QgaW5zZXJpbmcgYW4gb2wgaW50byB1bmVkaXRhYmxlIHBhcmVudC4gVGhlIHRlc3QgcGFzc2Vz
IGlmIFdlYktpdCBkb2Vzbid0IGNyYXNoIG9yIGhpdCBhbiBhc3NlcnRpb24uCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtb2wtdW5lZGl0YWJsZS1wYXJl
bnQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1vbC11bmVkaXRh
YmxlLXBhcmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyYjFhNjNkN2IwOTZkMDkyOTVkNDZiYjg1OWFi
ODExNGIyNDkxYWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2luc2Vy
dGluZy9pbnNlcnQtb2wtdW5lZGl0YWJsZS1wYXJlbnQuaHRtbApAQCAtMCwwICsxLDExIEBACis8
L3N0eWxlPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgd2luZG93Lm9ubG9hZCA9ICgpID0+IHsKKyAg
ICAgICAgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oTEkpOworICAgICAgICBk
b2N1bWVudC5leGVjQ29tbWFuZCgiaW5zZXJ0T3JkZXJlZExpc3QiLCBmYWxzZSk7CisgICAgfQor
PC9zY3JpcHQ+Cis8Ym9keT48dWw+PGxpIGlkPUxJIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+PHNw
YW4+VGVzdCBpbnNlcmluZyBhbiBvbCBpbnRvIHVuZWRpdGFibGUgcGFyZW50LiBUaGUgdGVzdCBw
YXNzZXMgaWYgV2ViS2l0IGRvZXNuJ3QgY3Jhc2ggb3IgaGl0IGFuIGFzc2VydGlvbi48L3NwYW4+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394706</attachid>
            <date>2020-03-26 23:09:28 -0700</date>
            <delta_ts>2020-03-27 10:36:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209641-20200326230927.patch</filename>
            <type>text/plain</type>
            <size>4918</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTE5ZmJjOTMyM2JmOTVj
NzAxNzBmZmZmODdkNTU1MjNjOGU0YjIwYS4uMWNhZmFiYjA2OGNhMjMxYzM3NjI1MDUxNDQ2Zjc5
MWNmODY1Y2ZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAzLTI2ICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIE51bGxwdHIgY3Jhc2gg
aW4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzIHdoZW4gaW5zZXJ0aW5nIE9M
IGludG8gdW5lZGl0YWJsZSBwYXJlbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDk2NDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwOTE1NTk4
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluc2Vy
dGluZyBCUiBpbiB1bmxpc3RpZnlQYXJhZ3JhcGgoKSBvciBPTC9VTCBpbiBsaXN0aWZ5UGFyYWdy
YXBoKCkgd291bGQgZmFpbAorICAgICAgICBiZWNhdXNlIHRoZWlyIGluc2VydGlvbiBwb3NpdGlv
biBpcyB1bmVkaXRhYmxlLiBJbiB0aGlzIGNhc2UgQlIvT0wvVUwgYmVjb21lcworICAgICAgICBw
YXJlbnRsZXNzIGFuZCB0aGUgY29kZSBjcmFzaGVzIGxhdGVyIHdoZW4gdGhlaXIgcGFyZW50IGlz
IGRlcmVmZXJlbmNlZCBpbiAKKyAgICAgICAgbW92ZVBhcmFncmFwaHMoKS4gCisgICAgICAgIElu
IHVubGlzdGlmeVBhcmFncmFwaCgpLCBvbmx5IGluc2VydE5vZGVCZWZvcmUoKSBhbmQgaW5zZXJ0
Tm9kZUFmdGVyKCkgYXJlIHVzZWQKKyAgICAgICAgYW5kIGJvdGggY2hlY2sgcGFyZW50IG9mIGxp
c3ROb2RlIGZvciBlZGl0YWJpbGl0eSwgc28gaW4gb3JkZXIgdG8gYXZvaWQgYXNzZXJ0aW9uIAor
ICAgICAgICBpbiB0aGUgYWJvdmUgZnVuY3Rpb25zLCB3ZSBjaGVjayB0aGUgZWRpdGFiaWxpdHkg
b2YgbGlzdE5vZGUgYmVmb3JlIGluc2VydGlvbi4KKyAgICAgICAgSW4gbGlzdGlmeVBhcmFncmFw
aCgpIGl0IGlzIGhhcmQgdG8gcHJlZGljdCB3aGVyZSB0aGUgZmluYWwgaW5zZXJ0aW9uIHBvc2l0
aW9uIHdvdWxkIGJlLAorICAgICAgICBzbyB3ZSBjaGVjayB0aGUgZWRpdGFiaWxpdHkgb2YgdGhl
IGluc2VydGlvbiBwb3NpdGlvbiBhZnRlciBpdCBpcyBmaW5hbGl6ZWQuCisKKyAgICAgICAgVGVz
dDogZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0LW9sLXVuZWRpdGFibGUtcGFyZW50Lmh0bWwKKwor
ICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zZXJ0TGlzdENvbW1hbmQ6OnVubGlzdGlmeVBhcmFncmFwaCk6CisgICAgICAgIChXZWJD
b3JlOjpJbnNlcnRMaXN0Q29tbWFuZDo6bGlzdGlmeVBhcmFncmFwaCk6CisKIDIwMjAtMDMtMjMg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBB
ZGQgY29uc29sZSBtZXNzYWdlIHdoZW4gbGVnYWN5IFRMUyBpcyB1c2VkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwCmluZGV4IDNjNzdjMWUwZGU3YjhjMGUz
NDA4MmVkNDE1ZDAwYmNkODdkOWY1ZDYuLmQ1YzA0ZWNiOTZiYjBhZTkwZjkyNjUyYjY0MTkzN2Y0
Y2Q2MDMwM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGlzdENv
bW1hbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQu
Y3BwCkBAIC0yNzQsNiArMjc0LDEwIEBAIHZvaWQgSW5zZXJ0TGlzdENvbW1hbmQ6OnVubGlzdGlm
eVBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9zaXRpb24mIG9yaWdpbmFsU3RhcnQsCiAgICAgTm9k
ZSogcHJldmlvdXNMaXN0Q2hpbGQ7CiAgICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0OwogICAgIFZp
c2libGVQb3NpdGlvbiBlbmQ7CisgICAgCisgICAgaWYgKCFsaXN0Tm9kZS0+cGFyZW50Tm9kZSgp
LT5oYXNFZGl0YWJsZVN0eWxlKCkpCisgICAgICAgIHJldHVybjsKKyAgICAKICAgICBpZiAobGlz
dENoaWxkTm9kZS0+aGFzVGFnTmFtZShsaVRhZykpIHsKICAgICAgICAgc3RhcnQgPSBmaXJzdFBv
c2l0aW9uSW5Ob2RlKGxpc3RDaGlsZE5vZGUpOwogICAgICAgICBlbmQgPSBsYXN0UG9zaXRpb25J
bk5vZGUobGlzdENoaWxkTm9kZSk7CkBAIC0zODksNiArMzkzLDkgQEAgUmVmUHRyPEhUTUxFbGVt
ZW50PiBJbnNlcnRMaXN0Q29tbWFuZDo6bGlzdGlmeVBhcmFncmFwaChjb25zdCBWaXNpYmxlUG9z
aXRpb24mIG8KICAgICAgICAgaWYgKGxpc3RDaGlsZCAmJiBsaXN0Q2hpbGQtPmhhc1RhZ05hbWUo
bGlUYWcpKQogICAgICAgICAgICAgaW5zZXJ0aW9uUG9zID0gcG9zaXRpb25JblBhcmVudEJlZm9y
ZU5vZGUobGlzdENoaWxkKTsKIAorICAgICAgICBpZiAoIWlzRWRpdGFibGVQb3NpdGlvbihpbnNl
cnRpb25Qb3MpKQorICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIAogICAgICAgICBpbnNl
cnROb2RlQXQoKmxpc3RFbGVtZW50LCBpbnNlcnRpb25Qb3MpOwogCiAgICAgICAgIC8vIFdlIGlu
c2VydGVkIHRoZSBsaXN0IGF0IHRoZSBzdGFydCBvZiB0aGUgY29udGVudCB3ZSdyZSBhYm91dCB0
byBtb3ZlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMjE4YjQzZjI4ZDVmZTFjYmFmZDJjOTAyODIzZGE3NmY0NDM3NmJhMy4u
OThlNzgzNThmYTM1NWQ1YzA1OTEwODBjYWQ5ZDY4YjYzYTI0MmVmNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE2IEBACisyMDIwLTAzLTI2ICBKYWNrIExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgor
CisgICAgICAgIE51bGxwdHIgY3Jhc2ggaW4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJh
Z3JhcGhzIHdoZW4gaW5zZXJ0aW5nIE9MIGludG8gdW5lZGl0YWJsZSBwYXJlbnQuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NDEKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzYwOTE1NTk4PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgcmVncmVzc2lvbiB0ZXN0IGZvciB0aGUgY3Jhc2gu
CisgICAgICAgIAorICAgICAgICAqIGVkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1vbC11bmVkaXRh
YmxlLXBhcmVudC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvaW5zZXJ0
aW5nL2luc2VydC1vbC11bmVkaXRhYmxlLXBhcmVudC5odG1sOiBBZGRlZC4KKwogMjAyMC0wMy0y
MyAgSmFzb24gTGF3cmVuY2UgIDxsYXdyZW5jZS5qQGFwcGxlLmNvbT4KIAogICAgICAgICBbIGlP
UyB3azIgRGVidWcgXSBmYXN0L3RleHQvY29udHJvbC1jaGFyYWN0ZXJzL3Zpc2libGUtY29udHJv
bC1jaGFyYWN0ZXJzLTEuaHRtbCBpcyBmbGFreSBjcmFzaGluZy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1vbC11bmVkaXRhYmxlLXBhcmVudC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtb2wtdW5lZGl0
YWJsZS1wYXJlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyZmJlOWUyODUzZGRlMzg1YWJj
ZWI3NzFmNTM1YzkxYmM1MDMwMDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL2luc2VydGluZy9pbnNlcnQtb2wtdW5lZGl0YWJsZS1wYXJlbnQtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEgQEAKK1Rlc3QgaW5zZXJpbmcgYW4gb2wgaW50byB1bmVkaXRhYmxlIHBhcmVudC4g
VGhlIHRlc3QgcGFzc2VzIGlmIFdlYktpdCBkb2Vzbid0IGNyYXNoIG9yIGhpdCBhbiBhc3NlcnRp
b24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtb2wt
dW5lZGl0YWJsZS1wYXJlbnQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL2lu
c2VydC1vbC11bmVkaXRhYmxlLXBhcmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYyYjFhNjNkN2IwOTZk
MDkyOTVkNDZiYjg1OWFiODExNGIyNDkxYWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtb2wtdW5lZGl0YWJsZS1wYXJlbnQuaHRtbApAQCAt
MCwwICsxLDExIEBACis8L3N0eWxlPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAgd2luZG93Lm9ubG9h
ZCA9ICgpID0+IHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24o
TEkpOworICAgICAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgiaW5zZXJ0T3JkZXJlZExpc3QiLCBm
YWxzZSk7CisgICAgfQorPC9zY3JpcHQ+Cis8Ym9keT48dWw+PGxpIGlkPUxJIGNvbnRlbnRlZGl0
YWJsZT0idHJ1ZSI+PHNwYW4+VGVzdCBpbnNlcmluZyBhbiBvbCBpbnRvIHVuZWRpdGFibGUgcGFy
ZW50LiBUaGUgdGVzdCBwYXNzZXMgaWYgV2ViS2l0IGRvZXNuJ3QgY3Jhc2ggb3IgaGl0IGFuIGFz
c2VydGlvbi48L3NwYW4+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394728</attachid>
            <date>2020-03-27 10:36:16 -0700</date>
            <delta_ts>2020-03-27 21:17:06 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-209641-20200327103615.patch</filename>
            <type>text/plain</type>
            <size>4888</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4ODkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTE5ZmJjOTMyM2JmOTVj
NzAxNzBmZmZmODdkNTU1MjNjOGU0YjIwYS4uODMxNTdkYmU1MmRiODM5YjNhMmIzNWVlZjBjYmQ5
NTQyODM3NTc1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAzLTI2ICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIE51bGxwdHIgY3Jhc2gg
aW4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzIHdoZW4gaW5zZXJ0aW5nIE9M
IGludG8gdW5lZGl0YWJsZSBwYXJlbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDk2NDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwOTE1NTk4
PgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBJbnNlcnRp
bmcgQlIgaW4gdW5saXN0aWZ5UGFyYWdyYXBoKCkgb3IgT0wvVUwgaW4gbGlzdGlmeVBhcmFncmFw
aCgpIHdvdWxkIGZhaWwKKyAgICAgICAgYmVjYXVzZSB0aGVpciBpbnNlcnRpb24gcG9zaXRpb24g
aXMgdW5lZGl0YWJsZS4gSW4gdGhpcyBjYXNlIEJSL09ML1VMIGJlY29tZXMKKyAgICAgICAgcGFy
ZW50bGVzcyBhbmQgdGhlIGNvZGUgY3Jhc2hlcyBsYXRlciB3aGVuIHRoZWlyIHBhcmVudCBpcyBk
ZXJlZmVyZW5jZWQgaW4gCisgICAgICAgIG1vdmVQYXJhZ3JhcGhzKCkuIAorICAgICAgICBJbiB1
bmxpc3RpZnlQYXJhZ3JhcGgoKSwgb25seSBpbnNlcnROb2RlQmVmb3JlKCkgYW5kIGluc2VydE5v
ZGVBZnRlcigpIGFyZSB1c2VkCisgICAgICAgIGFuZCBib3RoIGNoZWNrIHBhcmVudCBvZiBsaXN0
Tm9kZSBmb3IgZWRpdGFiaWxpdHksIHNvIGluIG9yZGVyIHRvIGF2b2lkIGFzc2VydGlvbiAKKyAg
ICAgICAgaW4gdGhlIGFib3ZlIGZ1bmN0aW9ucywgd2UgY2hlY2sgdGhlIGVkaXRhYmlsaXR5IG9m
IGxpc3ROb2RlIGJlZm9yZSBpbnNlcnRpb24uCisgICAgICAgIEluIGxpc3RpZnlQYXJhZ3JhcGgo
KSBpdCBpcyBoYXJkIHRvIHByZWRpY3Qgd2hlcmUgdGhlIGZpbmFsIGluc2VydGlvbiBwb3NpdGlv
biB3b3VsZCBiZSwKKyAgICAgICAgc28gd2UgY2hlY2sgdGhlIGVkaXRhYmlsaXR5IG9mIHRoZSBp
bnNlcnRpb24gcG9zaXRpb24gYWZ0ZXIgaXQgaXMgZmluYWxpemVkLgorCisgICAgICAgIFRlc3Q6
IGVkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1vbC11bmVkaXRhYmxlLXBhcmVudC5odG1sCisKKyAg
ICAgICAgKiBlZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Okluc2VydExpc3RDb21tYW5kOjp1bmxpc3RpZnlQYXJhZ3JhcGgpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zZXJ0TGlzdENvbW1hbmQ6Omxpc3RpZnlQYXJhZ3JhcGgpOgorCiAyMDIwLTAzLTIzICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRk
IGNvbnNvbGUgbWVzc2FnZSB3aGVuIGxlZ2FjeSBUTFMgaXMgdXNlZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcAppbmRleCAzYzc3YzFlMGRlN2I4YzBlMzQw
ODJlZDQxNWQwMGJjZDg3ZDlmNWQ2Li44YzY4YzFlN2Y5ZGViNjRlNjVmYmVjODE1NjMxZDcwYjQw
ZTFmMzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21t
YW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNw
cApAQCAtMjc0LDYgKzI3NCwxMCBAQCB2b2lkIEluc2VydExpc3RDb21tYW5kOjp1bmxpc3RpZnlQ
YXJhZ3JhcGgoY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBvcmlnaW5hbFN0YXJ0LAogICAgIE5vZGUq
IHByZXZpb3VzTGlzdENoaWxkOwogICAgIFZpc2libGVQb3NpdGlvbiBzdGFydDsKICAgICBWaXNp
YmxlUG9zaXRpb24gZW5kOworCisgICAgaWYgKCFsaXN0Tm9kZS0+cGFyZW50Tm9kZSgpLT5oYXNF
ZGl0YWJsZVN0eWxlKCkpCisgICAgICAgIHJldHVybjsKKwogICAgIGlmIChsaXN0Q2hpbGROb2Rl
LT5oYXNUYWdOYW1lKGxpVGFnKSkgewogICAgICAgICBzdGFydCA9IGZpcnN0UG9zaXRpb25Jbk5v
ZGUobGlzdENoaWxkTm9kZSk7CiAgICAgICAgIGVuZCA9IGxhc3RQb3NpdGlvbkluTm9kZShsaXN0
Q2hpbGROb2RlKTsKQEAgLTM4OSw2ICszOTMsOSBAQCBSZWZQdHI8SFRNTEVsZW1lbnQ+IEluc2Vy
dExpc3RDb21tYW5kOjpsaXN0aWZ5UGFyYWdyYXBoKGNvbnN0IFZpc2libGVQb3NpdGlvbiYgbwog
ICAgICAgICBpZiAobGlzdENoaWxkICYmIGxpc3RDaGlsZC0+aGFzVGFnTmFtZShsaVRhZykpCiAg
ICAgICAgICAgICBpbnNlcnRpb25Qb3MgPSBwb3NpdGlvbkluUGFyZW50QmVmb3JlTm9kZShsaXN0
Q2hpbGQpOwogCisgICAgICAgIGlmICghaXNFZGl0YWJsZVBvc2l0aW9uKGluc2VydGlvblBvcykp
CisgICAgICAgICAgICByZXR1cm4gMDsKKwogICAgICAgICBpbnNlcnROb2RlQXQoKmxpc3RFbGVt
ZW50LCBpbnNlcnRpb25Qb3MpOwogCiAgICAgICAgIC8vIFdlIGluc2VydGVkIHRoZSBsaXN0IGF0
IHRoZSBzdGFydCBvZiB0aGUgY29udGVudCB3ZSdyZSBhYm91dCB0byBtb3ZlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjE4
YjQzZjI4ZDVmZTFjYmFmZDJjOTAyODIzZGE3NmY0NDM3NmJhMy4uMWViYzUxYzVmYmZiYjRiM2Qw
MTRkZmNmOGNkZDI2NDg5YWU5ZTA2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTAzLTI2
ICBKYWNrIExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIE51bGxwdHIg
Y3Jhc2ggaW4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6Om1vdmVQYXJhZ3JhcGhzIHdoZW4gaW5zZXJ0
aW5nIE9MIGludG8gdW5lZGl0YWJsZSBwYXJlbnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk2NDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYw
OTE1NTk4PgorCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBB
ZGRlZCBhIHJlZ3Jlc3Npb24gdGVzdCBmb3IgdGhlIGNyYXNoLgorICAgICAgICAKKyAgICAgICAg
KiBlZGl0aW5nL2luc2VydGluZy9pbnNlcnQtb2wtdW5lZGl0YWJsZS1wYXJlbnQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2luc2VydGluZy9pbnNlcnQtb2wtdW5lZGl0
YWJsZS1wYXJlbnQuaHRtbDogQWRkZWQuCisKIDIwMjAtMDMtMjMgIEphc29uIExhd3JlbmNlICA8
bGF3cmVuY2UuakBhcHBsZS5jb20+CiAKICAgICAgICAgWyBpT1Mgd2syIERlYnVnIF0gZmFzdC90
ZXh0L2NvbnRyb2wtY2hhcmFjdGVycy92aXNpYmxlLWNvbnRyb2wtY2hhcmFjdGVycy0xLmh0bWwg
aXMgZmxha3kgY3Jhc2hpbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2luc2Vy
dGluZy9pbnNlcnQtb2wtdW5lZGl0YWJsZS1wYXJlbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0LW9sLXVuZWRpdGFibGUtcGFyZW50LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jMmZiZTllMjg1M2RkZTM4NWFiY2ViNzcxZjUzNWM5MWJjNTAzMDA3
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0
LW9sLXVuZWRpdGFibGUtcGFyZW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitUZXN0IGlu
c2VyaW5nIGFuIG9sIGludG8gdW5lZGl0YWJsZSBwYXJlbnQuIFRoZSB0ZXN0IHBhc3NlcyBpZiBX
ZWJLaXQgZG9lc24ndCBjcmFzaCBvciBoaXQgYW4gYXNzZXJ0aW9uLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0LW9sLXVuZWRpdGFibGUtcGFyZW50Lmh0
bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtb2wtdW5lZGl0YWJsZS1w
YXJlbnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OWE3YzY4Njg3MjJjMzk2OGMyYjE5OTM4YmI3NzQ0MTFm
NzFhODI5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9pbnNlcnRpbmcv
aW5zZXJ0LW9sLXVuZWRpdGFibGUtcGFyZW50Lmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPHNjcmlw
dD4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworCisgICAgd2luZG93Lm9ubG9hZCA9ICgpID0+IHsKKyAgICAgICAgZG9jdW1lbnQu
Z2V0U2VsZWN0aW9uKCkuc2V0UG9zaXRpb24oTEkpOworICAgICAgICBkb2N1bWVudC5leGVjQ29t
bWFuZCgiaW5zZXJ0T3JkZXJlZExpc3QiLCBmYWxzZSk7CisgICAgfQorPC9zY3JpcHQ+Cis8Ym9k
eT48dWw+PGxpIGlkPUxJIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+PHNwYW4+VGVzdCBpbnNlcmlu
ZyBhbiBvbCBpbnRvIHVuZWRpdGFibGUgcGFyZW50LiBUaGUgdGVzdCBwYXNzZXMgaWYgV2ViS2l0
IGRvZXNuJ3QgY3Jhc2ggb3IgaGl0IGFuIGFzc2VydGlvbi48L3NwYW4+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>