<?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>210170</bug_id>
          
          <creation_ts>2020-04-07 18:59:47 -0700</creation_ts>
          <short_desc>ASSERTION FAILED: selection.isRange() in InsertListCommand::doApply</short_desc>
          <delta_ts>2020-04-10 13:44: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>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="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>ews-feeder</cc>
    
    <cc>product-security</cc>
    
    <cc>rniwa</cc>
    
    <cc>shihchieh_lee</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1638912</commentid>
    <comment_count>0</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-04-07 18:59:47 -0700</bug_when>
    <thetext>ASSERTION FAILED: selection.isRange()
./editing/InsertListCommand.cpp(138) : virtual void WebCore::InsertListCommand::doApply()
1   0x14b9ac639 WTFCrash
2   0x122494150 PAL::SOAuthorizationHintsFunction()
3   0x12931161f WebCore::InsertListCommand::doApply()
4   0x1291bfc5b WebCore::CompositeEditCommand::apply()
5   0x1292e81a8 WebCore::executeInsertUnorderedList(WebCore::Frame&amp;, WebCore::Event*, WebCore::EditorCommandSource, WTF::String const&amp;)
6   0x12927c105 WebCore::Editor::Command::execute(WTF::String const&amp;, WebCore::Event*) const
7   0x128bf577a WebCore::Document::execCommand(WTF::String const&amp;, bool, WTF::String const&amp;)
8   0x123b24782 WebCore::jsDocumentPrototypeFunctionExecCommandBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSDocument*, JSC::ThrowScope&amp;)
9   0x1237fce2e long long WebCore::IDLOperation&lt;WebCore::JSDocument&gt;::call&lt;&amp;(WebCore::jsDocumentPrototypeFunctionExecCommandBody(JSC::JSGlobalObject*, JSC::CallFrame*, WebCore::JSDocument*, JSC::ThrowScope&amp;)), (WebCore::CastedThisErrorBehavior)0&gt;(JSC::JSGlobalObject&amp;, JSC::CallFrame&amp;, char const*)
10  0x1237fc984 WebCore::jsDocumentPrototypeFunctionExecCommand(JSC::JSGlobalObject*, JSC::CallFrame*)
11  0x52978d801178
12  0x14ca0f31b llint_entry
13  0x14ca0f31b llint_entry
14  0x14c9f1ef2 vmEntryToJavaScript
15  0x14f01e630 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
16  0x14f01f8ed JSC::Interpreter::executeCall(JSC::JSGlobalObject*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;)
17  0x14f8ddb79 JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;)
18  0x14f8de0bd JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
19  0x14f8dee03 JSC::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
20  0x127f06427 WebCore::JSExecState::profiledCall(JSC::JSGlobalObject*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
21  0x127f54809 WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&amp;, WebCore::Event&amp;)
22  0x128e3c14b WebCore::EventTarget::innerInvokeEventListeners(WebCore::Event&amp;, WTF::Vector&lt;WTF::RefPtr&lt;WebCore::RegisteredEventListener, WTF::DumbPtrTraits&lt;WebCore::RegisteredEventListener&gt; &gt;, 1ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;, WebCore::EventTarget::EventInvokePhase)
23  0x128e32b95 WebCore::EventTarget::fireEventListeners(WebCore::Event&amp;, WebCore::EventTarget::EventInvokePhase)
24  0x128f3bc26 WebCore::Node::handleLocalEvents(WebCore::Event&amp;, WebCore::EventTarget::EventInvokePhase)
25  0x128e0974f WebCore::EventContext::handleLocalEvents(WebCore::Event&amp;, WebCore::EventTarget::EventInvokePhase) const
26  0x128e09ad4 WebCore::MouseOrFocusEventContext::handleLocalEvents(WebCore::Event&amp;, WebCore::EventTarget::EventInvokePhase) const
27  0x128e0ac3e WebCore::dispatchEventInDOM(WebCore::Event&amp;, WebCore::EventPath const&amp;)
28  0x128e0a47b WebCore::EventDispatcher::dispatchEvent(WebCore::Node&amp;, WebCore::Event&amp;)
29  0x128f3bc7d WebCore::Node::dispatchEvent(WebCore::Event&amp;)
30  0x128d8ea03 WebCore::Element::dispatchFocusEvent(WTF::RefPtr&lt;WebCore::Element, WTF::DumbPtrTraits&lt;WebCore::Element&gt; &gt;&amp;&amp;, WebCore::FocusDirection)
31  0x12985e379 WebCore::HTMLSelectElement::dispatchFocusEvent(WTF::RefPtr&lt;WebCore::Element, WTF::DumbPtrTraits&lt;WebCore::Element&gt; &gt;&amp;&amp;, WebCore::FocusDirection)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638913</commentid>
    <comment_count>1</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-04-07 18:59:58 -0700</bug_when>
    <thetext>&lt;rdar://problem/61410397&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638939</commentid>
    <comment_count>2</comment_count>
      <attachid>395771</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-04-07 22:32:52 -0700</bug_when>
    <thetext>Created attachment 395771
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638940</commentid>
    <comment_count>3</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-04-07 22:33:15 -0700</bug_when>
    <thetext>Root cause for the assertion crash:
1. The code is executing command “insertUnorderedList”.
2. Because the original selected range for insertion is inside the table, in function selectionForParagraphIteration we try to move the position to the end of the table.
3. The end happens to be a text node, so the returned selection becomes “CaretSelection” and fails the assertion.

BODY	0x60c00006c280 (renderer 0x6120000634c0) 
	LABEL	0x60c00006c340 (renderer 0x6110000c3cc0) 
		#text	0x60800004fea0 &quot;\n&quot;
		UL	0x60c00006c400 (renderer 0x612000063640) 
			#text	0x60800004ff20 &quot;\n&quot;
			SELECT	0x613000063a80 (renderer 0x615000083980) 
				#text	0x6080000540a0 &quot;\n&quot;
			IFRAME	0x613000063c40 (renderer 0x612000063dc0) 
*			TABLE	0x60e0000597c0 (renderer 0x61400003ae40) 
				#text	0x60800004ffa0 &quot;\n&quot;
				TBODY	0x60c00006c4c0 (renderer 0x61300006c680) 
					TR	0x60c00006c580 (renderer 0x6110000c4080) 
						TH	0x60c00006c640 (renderer 0x6120000640c0) 
							#text	0x608000054120 &quot;a&quot;
						#text	0x6080000541a0 &quot;\n\n&quot;
						STYLE	0x61000002dd40 (renderer 0x0) 
						#text	0x608000056ca0 &quot;\n&quot;
after, offset:0</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638941</commentid>
    <comment_count>4</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-04-07 22:35:58 -0700</bug_when>
    <thetext>Test case:

&lt;script&gt;
    window.onload = () =&gt; {
        window.getSelection().setBaseAndExtent(TH,1,STYLE,1);
        document.execCommand(&quot;insertUnorderedList&quot;, false);
    }
&lt;/script&gt;
&lt;body contenteditable=&quot;true&quot;&gt;&lt;table&gt;&lt;th id=TH&gt;a&lt;/th&gt;&lt;style id=STYLE&gt;&lt;/style&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640269</commentid>
    <comment_count>5</comment_count>
      <attachid>395771</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-04-10 11:11:57 -0700</bug_when>
    <thetext>Comment on attachment 395771
Patch

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

&gt; LayoutTests/editing/inserting/insert-list-in-table-assert.html:13
&gt; +            if (window.testRunner) {

Nit - no braces around the single line if statement.

&gt; LayoutTests/editing/inserting/insert-list-in-table-assert.html:15
&gt; +            }

Ditto.

&gt; LayoutTests/editing/inserting/insert-list-in-table-assert.html:19
&gt; +&lt;body contenteditable=&quot;true&quot;&gt;&lt;table&gt;&lt;th id=TH&gt;a&lt;/th&gt;&lt;style id=STYLE&gt;&lt;/style&gt;

Nit - let’s add some closing tags to clean up the markup a bit.

I’m also curious why (or if) the style element is needed in the repro case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640329</commentid>
    <comment_count>6</comment_count>
      <attachid>396115</attachid>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-04-10 13:24:22 -0700</bug_when>
    <thetext>Created attachment 396115
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640337</commentid>
    <comment_count>7</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-04-10 13:30:09 -0700</bug_when>
    <thetext>Thanks Wenson. As you mentioned, I tried replacing &lt;style&gt; with &lt;p&gt; or &lt;span&gt;, the issue doesn&apos;t reproduce. However, with &lt;script&gt; it crashes.

And sorry somehow land-safely didn&apos;t work, so could you please review again?

(In reply to Wenson Hsieh from comment #5)
&gt; Comment on attachment 395771 [details]
&gt; Patch
&gt; 
&gt; I’m also curious why (or if) the style element is needed in the repro case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640340</commentid>
    <comment_count>8</comment_count>
    <who name="Jack">shihchieh_lee</who>
    <bug_when>2020-04-10 13:31:36 -0700</bug_when>
    <thetext>Wait, it seems to work. It is in the commit queue now.
(In reply to Jack from comment #7)
&gt; And sorry somehow land-safely didn&apos;t work, so could you please review again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640345</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-10 13:44:57 -0700</bug_when>
    <thetext>Committed r259899: &lt;https://trac.webkit.org/changeset/259899&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396115.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395771</attachid>
            <date>2020-04-07 22:32:52 -0700</date>
            <delta_ts>2020-04-10 13:26:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210170-20200407223251.patch</filename>
            <type>text/plain</type>
            <size>12023</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYyMmQ0OTMyZTNhZjE3
ODliZmQ1M2RlM2UzZTQ5YjI4MzgzZmVlOS4uYjhjOThiY2U5ZGQ5MGZkOGRmNzk0ZjIyYzNjOTQy
Y2RlMDI2MDI5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA0LTA3ICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlM
RUQ6IHNlbGVjdGlvbi5pc1JhbmdlKCkgaW4gSW5zZXJ0TGlzdENvbW1hbmQ6OmRvQXBwbHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDE3MAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNjE0MTAzOTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgSWYgc2VsZWN0aW9uRm9yUGFyYWdyYXBoSXRlcmF0aW9u
IHJldHVybnMgYSBub24tcmFuZ2Ugc2VsZWN0aW9uLCB0aGVyZSBpcyBubyBuZWVkIGZvciBmaW5k
aW5nCisgICAgICAgIG11bHRpcGxlIHBhcmFncmFwaHMuIEFuZCBzaW5jZSBub24tcmFuZ2Ugc2Vs
ZWN0aW9uIGlzIGhhbmRsZWQsIHRoZSBhc3NlcnRpb24gY2FuIGJlIHJlbW92ZWQuCisKKyAgICAg
ICAgVGVzdDogZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0LWxpc3QtaW4tdGFibGUtYXNzZXJ0Lmh0
bWwKKworICAgICAgICAqIGVkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zZXJ0TGlzdENvbW1hbmQ6OmRvQXBwbHkpOgorCiAyMDIwLTA0LTAxICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDog
bV93cmFwcGVyIG9uIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZW1iZWRkZWQtY29udGVudC9tZWRpYS1lbGVtZW50cy9yZWFkeS1zdGF0ZXMvYXV0b3BsYXku
aHRtbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcAppbmRl
eCAzZWZmNmY1N2IxMDUxNWQ4OTI1NWRiZDY3OWMwZjEyZmE3MjRhYjljLi4xYzg5M2ZjMzRlMzA0
MWNlZmMwMDA0ZDYxNDRiNTkyNmU1ZmVjYWQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0luc2VydExpc3RDb21tYW5kLmNwcApAQCAtMTM1LDU5ICsxMzUsNjAgQEAgdm9pZCBJbnNlcnRM
aXN0Q29tbWFuZDo6ZG9BcHBseSgpCiAgICAgYXV0byYgbGlzdFRhZyA9IChtX3R5cGUgPT0gVHlw
ZTo6T3JkZXJlZExpc3QpID8gb2xUYWcgOiB1bFRhZzsKICAgICBpZiAoZW5kaW5nU2VsZWN0aW9u
KCkuaXNSYW5nZSgpKSB7CiAgICAgICAgIFZpc2libGVTZWxlY3Rpb24gc2VsZWN0aW9uID0gc2Vs
ZWN0aW9uRm9yUGFyYWdyYXBoSXRlcmF0aW9uKGVuZGluZ1NlbGVjdGlvbigpKTsKLSAgICAgICAg
QVNTRVJUKHNlbGVjdGlvbi5pc1JhbmdlKCkpOwotICAgICAgICBWaXNpYmxlUG9zaXRpb24gc3Rh
cnRPZlNlbGVjdGlvbiA9IHNlbGVjdGlvbi52aXNpYmxlU3RhcnQoKTsKLSAgICAgICAgVmlzaWJs
ZVBvc2l0aW9uIGVuZE9mU2VsZWN0aW9uID0gc2VsZWN0aW9uLnZpc2libGVFbmQoKTsKLSAgICAg
ICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZMYXN0UGFyYWdyYXBoID0gc3RhcnRPZlBhcmFncmFw
aChlbmRPZlNlbGVjdGlvbiwgQ2FuU2tpcE92ZXJFZGl0aW5nQm91bmRhcnkpOwotCi0gICAgICAg
IGlmIChzdGFydE9mUGFyYWdyYXBoKHN0YXJ0T2ZTZWxlY3Rpb24sIENhblNraXBPdmVyRWRpdGlu
Z0JvdW5kYXJ5KSAhPSBzdGFydE9mTGFzdFBhcmFncmFwaCkgewotICAgICAgICAgICAgYm9vbCBm
b3JjZUNyZWF0ZUxpc3QgPSAhc2VsZWN0aW9uSGFzTGlzdE9mVHlwZShzZWxlY3Rpb24sIGxpc3RU
YWcpOwotCi0gICAgICAgICAgICBSZWZQdHI8UmFuZ2U+IGN1cnJlbnRTZWxlY3Rpb24gPSBlbmRp
bmdTZWxlY3Rpb24oKS5maXJzdFJhbmdlKCk7Ci0gICAgICAgICAgICBWaXNpYmxlUG9zaXRpb24g
c3RhcnRPZkN1cnJlbnRQYXJhZ3JhcGggPSBzdGFydE9mU2VsZWN0aW9uOwotICAgICAgICAgICAg
d2hpbGUgKCFpblNhbWVQYXJhZ3JhcGgoc3RhcnRPZkN1cnJlbnRQYXJhZ3JhcGgsIHN0YXJ0T2ZM
YXN0UGFyYWdyYXBoLCBDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkpIHsKLSAgICAgICAgICAgICAg
ICAvLyBkb0FwcGx5KCkgbWF5IG9wZXJhdGUgb24gYW5kIHJlbW92ZSB0aGUgbGFzdCBwYXJhZ3Jh
cGggb2YgdGhlIHNlbGVjdGlvbiBmcm9tIHRoZSBkb2N1bWVudCAKLSAgICAgICAgICAgICAgICAv
LyBpZiBpdCdzIGluIHRoZSBzYW1lIGxpc3QgaXRlbSBhcyBzdGFydE9mQ3VycmVudFBhcmFncmFw
aC4gIFJldHVybiBlYXJseSB0byBhdm9pZCBhbiAKLSAgICAgICAgICAgICAgICAvLyBpbmZpbml0
ZSBsb29wIGFuZCBiZWNhdXNlIHRoZXJlIGlzIG5vIG1vcmUgd29yayB0byBiZSBkb25lLgotICAg
ICAgICAgICAgICAgIC8vIEZJWE1FKDxyZGFyOi8vcHJvYmxlbS81OTgzOTc0Pik6IFRoZSBlbmRp
bmdTZWxlY3Rpb24oKSBtYXkgYmUgaW5jb3JyZWN0IGhlcmUuICBDb21wdXRlIAotICAgICAgICAg
ICAgICAgIC8vIHRoZSBuZXcgbG9jYXRpb24gb2YgZW5kT2ZTZWxlY3Rpb24gYW5kIHVzZSBpdCBh
cyB0aGUgZW5kIG9mIHRoZSBuZXcgc2VsZWN0aW9uLgotICAgICAgICAgICAgICAgIGlmICghc3Rh
cnRPZkxhc3RQYXJhZ3JhcGguZGVlcEVxdWl2YWxlbnQoKS5hbmNob3JOb2RlKCktPmlzQ29ubmVj
dGVkKCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICBzZXRF
bmRpbmdTZWxlY3Rpb24oc3RhcnRPZkN1cnJlbnRQYXJhZ3JhcGgpOwotCi0gICAgICAgICAgICAg
ICAgLy8gU2F2ZSBhbmQgcmVzdG9yZSBlbmRPZlNlbGVjdGlvbiBhbmQgc3RhcnRPZkxhc3RQYXJh
Z3JhcGggd2hlbiBuZWNlc3NhcnkKLSAgICAgICAgICAgICAgICAvLyBzaW5jZSBtb3ZlUGFyYWdy
YXBoIGFuZCBtb3ZlUHJhZ3JhcGhXaXRoQ2xvbmVzIGNhbiByZW1vdmUgbm9kZXMuCi0gICAgICAg
ICAgICAgICAgLy8gRklYTUU6IFRoaXMgaXMgYW4gaW5lZmZpY2llbnQgd2F5IHRvIGtlZXAgc2Vs
ZWN0aW9uIGFsaXZlIGJlY2F1c2UgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24gd2Fsa3MgZnJvbQot
ICAgICAgICAgICAgICAgIC8vIHRoZSBiZWdpbm5pbmcgb2YgdGhlIGRvY3VtZW50IHRvIHRoZSBl
bmRPZlNlbGVjdGlvbiBldmVyeXRpbWUgdGhpcyBjb2RlIGlzIGV4ZWN1dGVkLgotICAgICAgICAg
ICAgICAgIC8vIEJ1dCBub3QgdXNpbmcgaW5kZXggaXMgaGFyZCBiZWNhdXNlIHRoZXJlIGFyZSBz
byBtYW55IHdheXMgd2UgY2FuIGxvc2Ugc2VsZWN0aW9uIGluc2lkZSBkb0FwcGx5Rm9yU2luZ2xl
UGFyYWdyYXBoLgotICAgICAgICAgICAgICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBzY29wZTsK
LSAgICAgICAgICAgICAgICBpbnQgaW5kZXhGb3JFbmRPZlNlbGVjdGlvbiA9IGluZGV4Rm9yVmlz
aWJsZVBvc2l0aW9uKGVuZE9mU2VsZWN0aW9uLCBzY29wZSk7Ci0gICAgICAgICAgICAgICAgZG9B
cHBseUZvclNpbmdsZVBhcmFncmFwaChmb3JjZUNyZWF0ZUxpc3QsIGxpc3RUYWcsIGN1cnJlbnRT
ZWxlY3Rpb24uZ2V0KCkpOwotICAgICAgICAgICAgICAgIGlmIChlbmRPZlNlbGVjdGlvbi5pc051
bGwoKSB8fCBlbmRPZlNlbGVjdGlvbi5pc09ycGhhbigpIHx8IHN0YXJ0T2ZMYXN0UGFyYWdyYXBo
LmlzTnVsbCgpIHx8IHN0YXJ0T2ZMYXN0UGFyYWdyYXBoLmlzT3JwaGFuKCkpIHsKLSAgICAgICAg
ICAgICAgICAgICAgZW5kT2ZTZWxlY3Rpb24gPSB2aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbmRl
eEZvckVuZE9mU2VsZWN0aW9uLCBzY29wZS5nZXQoKSk7Ci0gICAgICAgICAgICAgICAgICAgIC8v
IElmIGVuZE9mU2VsZWN0aW9uIGlzIG51bGwsIHRoZW4gc29tZSBjb250ZW50cyBoYXZlIGJlZW4g
ZGVsZXRlZCBmcm9tIHRoZSBkb2N1bWVudC4KLSAgICAgICAgICAgICAgICAgICAgLy8gVGhpcyBz
aG91bGQgbmV2ZXIgaGFwcGVuIGFuZCBpZiBpdCBkaWQsIGV4aXQgZWFybHkgaW1tZWRpYXRlbHkg
YmVjYXVzZSB3ZSd2ZSBsb3N0IHRoZSBsb29wIGludmFyaWFudC4KLSAgICAgICAgICAgICAgICAg
ICAgQVNTRVJUKGVuZE9mU2VsZWN0aW9uLmlzTm90TnVsbCgpKTsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKGVuZE9mU2VsZWN0aW9uLmlzTnVsbCgpKQorICAgICAgICBpZiAoc2VsZWN0aW9uLmlz
UmFuZ2UoKSkgeworICAgICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0T2ZTZWxlY3Rpb24g
PSBzZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCk7CisgICAgICAgICAgICBWaXNpYmxlUG9zaXRpb24g
ZW5kT2ZTZWxlY3Rpb24gPSBzZWxlY3Rpb24udmlzaWJsZUVuZCgpOworICAgICAgICAgICAgVmlz
aWJsZVBvc2l0aW9uIHN0YXJ0T2ZMYXN0UGFyYWdyYXBoID0gc3RhcnRPZlBhcmFncmFwaChlbmRP
ZlNlbGVjdGlvbiwgQ2FuU2tpcE92ZXJFZGl0aW5nQm91bmRhcnkpOworCisgICAgICAgICAgICBp
ZiAoc3RhcnRPZlBhcmFncmFwaChzdGFydE9mU2VsZWN0aW9uLCBDYW5Ta2lwT3ZlckVkaXRpbmdC
b3VuZGFyeSkgIT0gc3RhcnRPZkxhc3RQYXJhZ3JhcGgpIHsKKyAgICAgICAgICAgICAgICBib29s
IGZvcmNlQ3JlYXRlTGlzdCA9ICFzZWxlY3Rpb25IYXNMaXN0T2ZUeXBlKHNlbGVjdGlvbiwgbGlz
dFRhZyk7CisKKyAgICAgICAgICAgICAgICBSZWZQdHI8UmFuZ2U+IGN1cnJlbnRTZWxlY3Rpb24g
PSBlbmRpbmdTZWxlY3Rpb24oKS5maXJzdFJhbmdlKCk7CisgICAgICAgICAgICAgICAgVmlzaWJs
ZVBvc2l0aW9uIHN0YXJ0T2ZDdXJyZW50UGFyYWdyYXBoID0gc3RhcnRPZlNlbGVjdGlvbjsKKyAg
ICAgICAgICAgICAgICB3aGlsZSAoIWluU2FtZVBhcmFncmFwaChzdGFydE9mQ3VycmVudFBhcmFn
cmFwaCwgc3RhcnRPZkxhc3RQYXJhZ3JhcGgsIENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5KSkgewor
ICAgICAgICAgICAgICAgICAgICAvLyBkb0FwcGx5KCkgbWF5IG9wZXJhdGUgb24gYW5kIHJlbW92
ZSB0aGUgbGFzdCBwYXJhZ3JhcGggb2YgdGhlIHNlbGVjdGlvbiBmcm9tIHRoZSBkb2N1bWVudAor
ICAgICAgICAgICAgICAgICAgICAvLyBpZiBpdCdzIGluIHRoZSBzYW1lIGxpc3QgaXRlbSBhcyBz
dGFydE9mQ3VycmVudFBhcmFncmFwaC4gUmV0dXJuIGVhcmx5IHRvIGF2b2lkIGFuCisgICAgICAg
ICAgICAgICAgICAgIC8vIGluZmluaXRlIGxvb3AgYW5kIGJlY2F1c2UgdGhlcmUgaXMgbm8gbW9y
ZSB3b3JrIHRvIGJlIGRvbmUuCisgICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FKDxyZGFyOi8v
cHJvYmxlbS81OTgzOTc0Pik6IFRoZSBlbmRpbmdTZWxlY3Rpb24oKSBtYXkgYmUgaW5jb3JyZWN0
IGhlcmUuIENvbXB1dGUKKyAgICAgICAgICAgICAgICAgICAgLy8gdGhlIG5ldyBsb2NhdGlvbiBv
ZiBlbmRPZlNlbGVjdGlvbiBhbmQgdXNlIGl0IGFzIHRoZSBlbmQgb2YgdGhlIG5ldyBzZWxlY3Rp
b24uCisgICAgICAgICAgICAgICAgICAgIGlmICghc3RhcnRPZkxhc3RQYXJhZ3JhcGguZGVlcEVx
dWl2YWxlbnQoKS5hbmNob3JOb2RlKCktPmlzQ29ubmVjdGVkKCkpCiAgICAgICAgICAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgICAgIHN0YXJ0T2ZMYXN0UGFyYWdyYXBo
ID0gc3RhcnRPZlBhcmFncmFwaChlbmRPZlNlbGVjdGlvbiwgQ2FuU2tpcE92ZXJFZGl0aW5nQm91
bmRhcnkpOworICAgICAgICAgICAgICAgICAgICBzZXRFbmRpbmdTZWxlY3Rpb24oc3RhcnRPZkN1
cnJlbnRQYXJhZ3JhcGgpOworCisgICAgICAgICAgICAgICAgICAgIC8vIFNhdmUgYW5kIHJlc3Rv
cmUgZW5kT2ZTZWxlY3Rpb24gYW5kIHN0YXJ0T2ZMYXN0UGFyYWdyYXBoIHdoZW4gbmVjZXNzYXJ5
CisgICAgICAgICAgICAgICAgICAgIC8vIHNpbmNlIG1vdmVQYXJhZ3JhcGggYW5kIG1vdmVQcmFn
cmFwaFdpdGhDbG9uZXMgY2FuIHJlbW92ZSBub2Rlcy4KKyAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IFRoaXMgaXMgYW4gaW5lZmZpY2llbnQgd2F5IHRvIGtlZXAgc2VsZWN0aW9uIGFsaXZl
IGJlY2F1c2UgaW5kZXhGb3JWaXNpYmxlUG9zaXRpb24gd2Fsa3MgZnJvbQorICAgICAgICAgICAg
ICAgICAgICAvLyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBkb2N1bWVudCB0byB0aGUgZW5kT2ZTZWxl
Y3Rpb24gZXZlcnl0aW1lIHRoaXMgY29kZSBpcyBleGVjdXRlZC4KKyAgICAgICAgICAgICAgICAg
ICAgLy8gQnV0IG5vdCB1c2luZyBpbmRleCBpcyBoYXJkIGJlY2F1c2UgdGhlcmUgYXJlIHNvIG1h
bnkgd2F5cyB3ZSBjYW4gbG9zZSBzZWxlY3Rpb24gaW5zaWRlIGRvQXBwbHlGb3JTaW5nbGVQYXJh
Z3JhcGguCisgICAgICAgICAgICAgICAgICAgIFJlZlB0cjxDb250YWluZXJOb2RlPiBzY29wZTsK
KyAgICAgICAgICAgICAgICAgICAgaW50IGluZGV4Rm9yRW5kT2ZTZWxlY3Rpb24gPSBpbmRleEZv
clZpc2libGVQb3NpdGlvbihlbmRPZlNlbGVjdGlvbiwgc2NvcGUpOworICAgICAgICAgICAgICAg
ICAgICBkb0FwcGx5Rm9yU2luZ2xlUGFyYWdyYXBoKGZvcmNlQ3JlYXRlTGlzdCwgbGlzdFRhZywg
Y3VycmVudFNlbGVjdGlvbi5nZXQoKSk7CisgICAgICAgICAgICAgICAgICAgIGlmIChlbmRPZlNl
bGVjdGlvbi5pc051bGwoKSB8fCBlbmRPZlNlbGVjdGlvbi5pc09ycGhhbigpIHx8IHN0YXJ0T2ZM
YXN0UGFyYWdyYXBoLmlzTnVsbCgpIHx8IHN0YXJ0T2ZMYXN0UGFyYWdyYXBoLmlzT3JwaGFuKCkp
IHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGVuZE9mU2VsZWN0aW9uID0gdmlzaWJsZVBvc2l0
aW9uRm9ySW5kZXgoaW5kZXhGb3JFbmRPZlNlbGVjdGlvbiwgc2NvcGUuZ2V0KCkpOworICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gSWYgZW5kT2ZTZWxlY3Rpb24gaXMgbnVsbCwgdGhlbiBzb21l
IGNvbnRlbnRzIGhhdmUgYmVlbiBkZWxldGVkIGZyb20gdGhlIGRvY3VtZW50LgorICAgICAgICAg
ICAgICAgICAgICAgICAgLy8gVGhpcyBzaG91bGQgbmV2ZXIgaGFwcGVuIGFuZCBpZiBpdCBkaWQs
IGV4aXQgZWFybHkgaW1tZWRpYXRlbHkgYmVjYXVzZSB3ZSd2ZSBsb3N0IHRoZSBsb29wIGludmFy
aWFudC4KKyAgICAgICAgICAgICAgICAgICAgICAgIEFTU0VSVChlbmRPZlNlbGVjdGlvbi5pc05v
dE51bGwoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZW5kT2ZTZWxlY3Rpb24uaXNO
dWxsKCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAg
ICAgICAgICAgICAgc3RhcnRPZkxhc3RQYXJhZ3JhcGggPSBzdGFydE9mUGFyYWdyYXBoKGVuZE9m
U2VsZWN0aW9uLCBDYW5Ta2lwT3ZlckVkaXRpbmdCb3VuZGFyeSk7CisgICAgICAgICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBGZXRjaCB0aGUgc3RhcnQgb2YgdGhlIHNl
bGVjdGlvbiBhZnRlciBtb3ZpbmcgdGhlIGZpcnN0IHBhcmFncmFwaCwKKyAgICAgICAgICAgICAg
ICAgICAgLy8gYmVjYXVzZSBtb3ZpbmcgdGhlIHBhcmFncmFwaCB3aWxsIGludmFsaWRhdGUgdGhl
IG9yaWdpbmFsIHN0YXJ0LgorICAgICAgICAgICAgICAgICAgICAvLyBXZSdsbCB1c2UgdGhlIG5l
dyBzdGFydCB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBzZWxlY3Rpb24gYWZ0ZXIKKyAgICAgICAg
ICAgICAgICAgICAgLy8gd2UgbW9kaWZpZWQgYWxsIHNlbGVjdGVkIHBhcmFncmFwaHMuCisgICAg
ICAgICAgICAgICAgICAgIGlmIChzdGFydE9mQ3VycmVudFBhcmFncmFwaCA9PSBzdGFydE9mU2Vs
ZWN0aW9uKQorICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRPZlNlbGVjdGlvbiA9IGVuZGlu
Z1NlbGVjdGlvbigpLnZpc2libGVTdGFydCgpOworCisgICAgICAgICAgICAgICAgICAgIHN0YXJ0
T2ZDdXJyZW50UGFyYWdyYXBoID0gc3RhcnRPZk5leHRQYXJhZ3JhcGgoZW5kaW5nU2VsZWN0aW9u
KCkudmlzaWJsZVN0YXJ0KCkpOwogICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAg
IC8vIEZldGNoIHRoZSBzdGFydCBvZiB0aGUgc2VsZWN0aW9uIGFmdGVyIG1vdmluZyB0aGUgZmly
c3QgcGFyYWdyYXBoLAotICAgICAgICAgICAgICAgIC8vIGJlY2F1c2UgbW92aW5nIHRoZSBwYXJh
Z3JhcGggd2lsbCBpbnZhbGlkYXRlIHRoZSBvcmlnaW5hbCBzdGFydC4gIAotICAgICAgICAgICAg
ICAgIC8vIFdlJ2xsIHVzZSB0aGUgbmV3IHN0YXJ0IHRvIHJlc3RvcmUgdGhlIG9yaWdpbmFsIHNl
bGVjdGlvbiBhZnRlciAKLSAgICAgICAgICAgICAgICAvLyB3ZSBtb2RpZmllZCBhbGwgc2VsZWN0
ZWQgcGFyYWdyYXBocy4KLSAgICAgICAgICAgICAgICBpZiAoc3RhcnRPZkN1cnJlbnRQYXJhZ3Jh
cGggPT0gc3RhcnRPZlNlbGVjdGlvbikKLSAgICAgICAgICAgICAgICAgICAgc3RhcnRPZlNlbGVj
dGlvbiA9IGVuZGluZ1NlbGVjdGlvbigpLnZpc2libGVTdGFydCgpOwotCi0gICAgICAgICAgICAg
ICAgc3RhcnRPZkN1cnJlbnRQYXJhZ3JhcGggPSBzdGFydE9mTmV4dFBhcmFncmFwaChlbmRpbmdT
ZWxlY3Rpb24oKS52aXNpYmxlU3RhcnQoKSk7CisgICAgICAgICAgICAgICAgc2V0RW5kaW5nU2Vs
ZWN0aW9uKGVuZE9mU2VsZWN0aW9uKTsKKyAgICAgICAgICAgICAgICBkb0FwcGx5Rm9yU2luZ2xl
UGFyYWdyYXBoKGZvcmNlQ3JlYXRlTGlzdCwgbGlzdFRhZywgY3VycmVudFNlbGVjdGlvbi5nZXQo
KSk7CisgICAgICAgICAgICAgICAgLy8gRmV0Y2ggdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uLCBm
b3IgdGhlIHJlYXNvbiBtZW50aW9uZWQgYWJvdmUuCisgICAgICAgICAgICAgICAgZW5kT2ZTZWxl
Y3Rpb24gPSBlbmRpbmdTZWxlY3Rpb24oKS52aXNpYmxlRW5kKCk7CisgICAgICAgICAgICAgICAg
c2V0RW5kaW5nU2VsZWN0aW9uKFZpc2libGVTZWxlY3Rpb24oc3RhcnRPZlNlbGVjdGlvbiwgZW5k
T2ZTZWxlY3Rpb24sIGVuZGluZ1NlbGVjdGlvbigpLmlzRGlyZWN0aW9uYWwoKSkpOworICAgICAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHNldEVuZGluZ1Nl
bGVjdGlvbihlbmRPZlNlbGVjdGlvbik7Ci0gICAgICAgICAgICBkb0FwcGx5Rm9yU2luZ2xlUGFy
YWdyYXBoKGZvcmNlQ3JlYXRlTGlzdCwgbGlzdFRhZywgY3VycmVudFNlbGVjdGlvbi5nZXQoKSk7
Ci0gICAgICAgICAgICAvLyBGZXRjaCB0aGUgZW5kIG9mIHRoZSBzZWxlY3Rpb24sIGZvciB0aGUg
cmVhc29uIG1lbnRpb25lZCBhYm92ZS4KLSAgICAgICAgICAgIGVuZE9mU2VsZWN0aW9uID0gZW5k
aW5nU2VsZWN0aW9uKCkudmlzaWJsZUVuZCgpOwotICAgICAgICAgICAgc2V0RW5kaW5nU2VsZWN0
aW9uKFZpc2libGVTZWxlY3Rpb24oc3RhcnRPZlNlbGVjdGlvbiwgZW5kT2ZTZWxlY3Rpb24sIGVu
ZGluZ1NlbGVjdGlvbigpLmlzRGlyZWN0aW9uYWwoKSkpOwotICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZGIzNmI4N2RlNmQ1ODM3Y2ZjNmE0MjY2YzVjOTEy
ZjRlNDFkMmIzZi4uODg5ODM0ODBkMWRlMTc2NDExMzQ1YzI5NDAyZmFkNGQ3NmM1OTgxYyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTA0LTA3ICBKYWNrIExlZSAgPHNoaWhjaGllaF9sZWVA
YXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IHNlbGVjdGlvbi5pc1Jhbmdl
KCkgaW4gSW5zZXJ0TGlzdENvbW1hbmQ6OmRvQXBwbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDE3MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjE0MTAzOTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgYSByZWdyZXNzaW9uIHRlc3QgZm9yIHRoZSBjcmFzaC4KKworICAgICAgICAqIGVk
aXRpbmcvaW5zZXJ0aW5nL2luc2VydC1saXN0LWluLXRhYmxlLWFzc2VydC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGVkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1saXN0LWluLXRhYmxl
LWFzc2VydC5odG1sOiBBZGRlZC4KKwogMjAyMC0wNC0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IG1fd3JhcHBlciBvbiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2VtYmVkZGVkLWNvbnRl
bnQvbWVkaWEtZWxlbWVudHMvcmVhZHktc3RhdGVzL2F1dG9wbGF5Lmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1saXN0LWluLXRhYmxlLWFzc2Vy
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtbGlz
dC1pbi10YWJsZS1hc3NlcnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwMDY4ODA2OTAwNGE5
ZDQzM2IxOWUzY2M2MDA3OTk1NDZkNjZiMDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtbGlzdC1pbi10YWJsZS1hc3NlcnQtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEgQEAKK1Rlc3RzIGluc2VydGluZyBsaXN0IGluIHRhYmxlLiBUaGUgdGVz
dCBwYXNzZXMgaWYgV2ViS2l0IGRvZXNuJ3QgY3Jhc2ggb3IgaGl0IGFuIGFzc2VydGlvbi4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1saXN0LWluLXRh
YmxlLWFzc2VydC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0LWxp
c3QtaW4tdGFibGUtYXNzZXJ0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2FmNWMyNzZjNDBhMDBhYmRhNTlm
Nzc3OTU5ZmRiM2Q3YWRjMWRkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvaW5zZXJ0aW5nL2luc2VydC1saXN0LWluLXRhYmxlLWFzc2VydC5odG1sCkBAIC0wLDAgKzEs
MTkgQEAKKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKKyAgICB9CisKKyAgICB3aW5kb3cub25sb2FkID0gKCkgPT4geworICAgICAgICB3aW5kb3cu
Z2V0U2VsZWN0aW9uKCkuc2V0QmFzZUFuZEV4dGVudChUSCwxLFNUWUxFLDEpOworICAgICAgICBk
b2N1bWVudC5leGVjQ29tbWFuZCgiaW5zZXJ0VW5vcmRlcmVkTGlzdCIsIGZhbHNlKTsKKyAgICAg
ICAgCisgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7CisgICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9ICI8cD4gVGVzdHMgaW5zZXJ0aW5nIGxpc3Qg
aW4gdGFibGUuIFRoZSB0ZXN0IHBhc3NlcyBpZiBXZWJLaXQgZG9lc24ndCBjcmFzaCBvciBoaXQg
YW4gYXNzZXJ0aW9uLjwvcD4iOworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9
CisgICAgICAgIH0pOworICAgIH0KKzwvc2NyaXB0PgorPGJvZHkgY29udGVudGVkaXRhYmxlPSJ0
cnVlIj48dGFibGU+PHRoIGlkPVRIPmE8L3RoPjxzdHlsZSBpZD1TVFlMRT48L3N0eWxlPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396115</attachid>
            <date>2020-04-10 13:24:22 -0700</date>
            <delta_ts>2020-04-10 13:44:57 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-210170-20200410132422.patch</filename>
            <type>text/plain</type>
            <size>12017</size>
            <attacher name="Jack">shihchieh_lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MzU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmYyMmQ0OTMyZTNhZjE3
ODliZmQ1M2RlM2UzZTQ5YjI4MzgzZmVlOS4uODVhMWZlN2JkYTZjYmEyZGQwMjdlNmU0Nzg5YmMz
MDk4M2E3MTJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIwLTA0LTA3ICBKYWNr
IExlZSAgPHNoaWhjaGllaF9sZWVAYXBwbGUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlM
RUQ6IHNlbGVjdGlvbi5pc1JhbmdlKCkgaW4gSW5zZXJ0TGlzdENvbW1hbmQ6OmRvQXBwbHkKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDE3MAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNjE0MTAzOTc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vu
c29uIEhzaWVoLgorCisgICAgICAgIElmIHNlbGVjdGlvbkZvclBhcmFncmFwaEl0ZXJhdGlvbiBy
ZXR1cm5zIGEgbm9uLXJhbmdlIHNlbGVjdGlvbiwgdGhlcmUgaXMgbm8gbmVlZCBmb3IgZmluZGlu
ZworICAgICAgICBtdWx0aXBsZSBwYXJhZ3JhcGhzLiBBbmQgc2luY2Ugbm9uLXJhbmdlIHNlbGVj
dGlvbiBpcyBoYW5kbGVkLCB0aGUgYXNzZXJ0aW9uIGNhbiBiZSByZW1vdmVkLgorCisgICAgICAg
IFRlc3Q6IGVkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1saXN0LWluLXRhYmxlLWFzc2VydC5odG1s
CisKKyAgICAgICAgKiBlZGl0aW5nL0luc2VydExpc3RDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Okluc2VydExpc3RDb21tYW5kOjpkb0FwcGx5KToKKwogMjAyMC0wNC0wMSAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFTU0VSVElPTiBGQUlMRUQ6IG1f
d3JhcHBlciBvbiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2VtYmVkZGVkLWNvbnRlbnQvbWVkaWEtZWxlbWVudHMvcmVhZHktc3RhdGVzL2F1dG9wbGF5Lmh0
bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvSW5zZXJ0TGlzdENvbW1hbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHAKaW5kZXgg
M2VmZjZmNTdiMTA1MTVkODkyNTVkYmQ2NzljMGYxMmZhNzI0YWI5Yy4uMWM4OTNmYzM0ZTMwNDFj
ZWZjMDAwNGQ2MTQ0YjU5MjZlNWZlY2FkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9JbnNlcnRMaXN0Q29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9J
bnNlcnRMaXN0Q29tbWFuZC5jcHAKQEAgLTEzNSw1OSArMTM1LDYwIEBAIHZvaWQgSW5zZXJ0TGlz
dENvbW1hbmQ6OmRvQXBwbHkoKQogICAgIGF1dG8mIGxpc3RUYWcgPSAobV90eXBlID09IFR5cGU6
Ok9yZGVyZWRMaXN0KSA/IG9sVGFnIDogdWxUYWc7CiAgICAgaWYgKGVuZGluZ1NlbGVjdGlvbigp
LmlzUmFuZ2UoKSkgewogICAgICAgICBWaXNpYmxlU2VsZWN0aW9uIHNlbGVjdGlvbiA9IHNlbGVj
dGlvbkZvclBhcmFncmFwaEl0ZXJhdGlvbihlbmRpbmdTZWxlY3Rpb24oKSk7Ci0gICAgICAgIEFT
U0VSVChzZWxlY3Rpb24uaXNSYW5nZSgpKTsKLSAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHN0YXJ0
T2ZTZWxlY3Rpb24gPSBzZWxlY3Rpb24udmlzaWJsZVN0YXJ0KCk7Ci0gICAgICAgIFZpc2libGVQ
b3NpdGlvbiBlbmRPZlNlbGVjdGlvbiA9IHNlbGVjdGlvbi52aXNpYmxlRW5kKCk7Ci0gICAgICAg
IFZpc2libGVQb3NpdGlvbiBzdGFydE9mTGFzdFBhcmFncmFwaCA9IHN0YXJ0T2ZQYXJhZ3JhcGgo
ZW5kT2ZTZWxlY3Rpb24sIENhblNraXBPdmVyRWRpdGluZ0JvdW5kYXJ5KTsKLQotICAgICAgICBp
ZiAoc3RhcnRPZlBhcmFncmFwaChzdGFydE9mU2VsZWN0aW9uLCBDYW5Ta2lwT3ZlckVkaXRpbmdC
b3VuZGFyeSkgIT0gc3RhcnRPZkxhc3RQYXJhZ3JhcGgpIHsKLSAgICAgICAgICAgIGJvb2wgZm9y
Y2VDcmVhdGVMaXN0ID0gIXNlbGVjdGlvbkhhc0xpc3RPZlR5cGUoc2VsZWN0aW9uLCBsaXN0VGFn
KTsKLQotICAgICAgICAgICAgUmVmUHRyPFJhbmdlPiBjdXJyZW50U2VsZWN0aW9uID0gZW5kaW5n
U2VsZWN0aW9uKCkuZmlyc3RSYW5nZSgpOwotICAgICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIHN0
YXJ0T2ZDdXJyZW50UGFyYWdyYXBoID0gc3RhcnRPZlNlbGVjdGlvbjsKLSAgICAgICAgICAgIHdo
aWxlICghaW5TYW1lUGFyYWdyYXBoKHN0YXJ0T2ZDdXJyZW50UGFyYWdyYXBoLCBzdGFydE9mTGFz
dFBhcmFncmFwaCwgQ2FuQ3Jvc3NFZGl0aW5nQm91bmRhcnkpKSB7Ci0gICAgICAgICAgICAgICAg
Ly8gZG9BcHBseSgpIG1heSBvcGVyYXRlIG9uIGFuZCByZW1vdmUgdGhlIGxhc3QgcGFyYWdyYXBo
IG9mIHRoZSBzZWxlY3Rpb24gZnJvbSB0aGUgZG9jdW1lbnQgCi0gICAgICAgICAgICAgICAgLy8g
aWYgaXQncyBpbiB0aGUgc2FtZSBsaXN0IGl0ZW0gYXMgc3RhcnRPZkN1cnJlbnRQYXJhZ3JhcGgu
ICBSZXR1cm4gZWFybHkgdG8gYXZvaWQgYW4gCi0gICAgICAgICAgICAgICAgLy8gaW5maW5pdGUg
bG9vcCBhbmQgYmVjYXVzZSB0aGVyZSBpcyBubyBtb3JlIHdvcmsgdG8gYmUgZG9uZS4KLSAgICAg
ICAgICAgICAgICAvLyBGSVhNRSg8cmRhcjovL3Byb2JsZW0vNTk4Mzk3ND4pOiBUaGUgZW5kaW5n
U2VsZWN0aW9uKCkgbWF5IGJlIGluY29ycmVjdCBoZXJlLiAgQ29tcHV0ZSAKLSAgICAgICAgICAg
ICAgICAvLyB0aGUgbmV3IGxvY2F0aW9uIG9mIGVuZE9mU2VsZWN0aW9uIGFuZCB1c2UgaXQgYXMg
dGhlIGVuZCBvZiB0aGUgbmV3IHNlbGVjdGlvbi4KLSAgICAgICAgICAgICAgICBpZiAoIXN0YXJ0
T2ZMYXN0UGFyYWdyYXBoLmRlZXBFcXVpdmFsZW50KCkuYW5jaG9yTm9kZSgpLT5pc0Nvbm5lY3Rl
ZCgpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgc2V0RW5k
aW5nU2VsZWN0aW9uKHN0YXJ0T2ZDdXJyZW50UGFyYWdyYXBoKTsKLQotICAgICAgICAgICAgICAg
IC8vIFNhdmUgYW5kIHJlc3RvcmUgZW5kT2ZTZWxlY3Rpb24gYW5kIHN0YXJ0T2ZMYXN0UGFyYWdy
YXBoIHdoZW4gbmVjZXNzYXJ5Ci0gICAgICAgICAgICAgICAgLy8gc2luY2UgbW92ZVBhcmFncmFw
aCBhbmQgbW92ZVByYWdyYXBoV2l0aENsb25lcyBjYW4gcmVtb3ZlIG5vZGVzLgotICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIGFuIGluZWZmaWNpZW50IHdheSB0byBrZWVwIHNlbGVj
dGlvbiBhbGl2ZSBiZWNhdXNlIGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uIHdhbGtzIGZyb20KLSAg
ICAgICAgICAgICAgICAvLyB0aGUgYmVnaW5uaW5nIG9mIHRoZSBkb2N1bWVudCB0byB0aGUgZW5k
T2ZTZWxlY3Rpb24gZXZlcnl0aW1lIHRoaXMgY29kZSBpcyBleGVjdXRlZC4KLSAgICAgICAgICAg
ICAgICAvLyBCdXQgbm90IHVzaW5nIGluZGV4IGlzIGhhcmQgYmVjYXVzZSB0aGVyZSBhcmUgc28g
bWFueSB3YXlzIHdlIGNhbiBsb3NlIHNlbGVjdGlvbiBpbnNpZGUgZG9BcHBseUZvclNpbmdsZVBh
cmFncmFwaC4KLSAgICAgICAgICAgICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gc2NvcGU7Ci0g
ICAgICAgICAgICAgICAgaW50IGluZGV4Rm9yRW5kT2ZTZWxlY3Rpb24gPSBpbmRleEZvclZpc2li
bGVQb3NpdGlvbihlbmRPZlNlbGVjdGlvbiwgc2NvcGUpOwotICAgICAgICAgICAgICAgIGRvQXBw
bHlGb3JTaW5nbGVQYXJhZ3JhcGgoZm9yY2VDcmVhdGVMaXN0LCBsaXN0VGFnLCBjdXJyZW50U2Vs
ZWN0aW9uLmdldCgpKTsKLSAgICAgICAgICAgICAgICBpZiAoZW5kT2ZTZWxlY3Rpb24uaXNOdWxs
KCkgfHwgZW5kT2ZTZWxlY3Rpb24uaXNPcnBoYW4oKSB8fCBzdGFydE9mTGFzdFBhcmFncmFwaC5p
c051bGwoKSB8fCBzdGFydE9mTGFzdFBhcmFncmFwaC5pc09ycGhhbigpKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGVuZE9mU2VsZWN0aW9uID0gdmlzaWJsZVBvc2l0aW9uRm9ySW5kZXgoaW5kZXhG
b3JFbmRPZlNlbGVjdGlvbiwgc2NvcGUuZ2V0KCkpOwotICAgICAgICAgICAgICAgICAgICAvLyBJ
ZiBlbmRPZlNlbGVjdGlvbiBpcyBudWxsLCB0aGVuIHNvbWUgY29udGVudHMgaGF2ZSBiZWVuIGRl
bGV0ZWQgZnJvbSB0aGUgZG9jdW1lbnQuCi0gICAgICAgICAgICAgICAgICAgIC8vIFRoaXMgc2hv
dWxkIG5ldmVyIGhhcHBlbiBhbmQgaWYgaXQgZGlkLCBleGl0IGVhcmx5IGltbWVkaWF0ZWx5IGJl
Y2F1c2Ugd2UndmUgbG9zdCB0aGUgbG9vcCBpbnZhcmlhbnQuCi0gICAgICAgICAgICAgICAgICAg
IEFTU0VSVChlbmRPZlNlbGVjdGlvbi5pc05vdE51bGwoKSk7Ci0gICAgICAgICAgICAgICAgICAg
IGlmIChlbmRPZlNlbGVjdGlvbi5pc051bGwoKSkKKyAgICAgICAgaWYgKHNlbGVjdGlvbi5pc1Jh
bmdlKCkpIHsKKyAgICAgICAgICAgIFZpc2libGVQb3NpdGlvbiBzdGFydE9mU2VsZWN0aW9uID0g
c2VsZWN0aW9uLnZpc2libGVTdGFydCgpOworICAgICAgICAgICAgVmlzaWJsZVBvc2l0aW9uIGVu
ZE9mU2VsZWN0aW9uID0gc2VsZWN0aW9uLnZpc2libGVFbmQoKTsKKyAgICAgICAgICAgIFZpc2li
bGVQb3NpdGlvbiBzdGFydE9mTGFzdFBhcmFncmFwaCA9IHN0YXJ0T2ZQYXJhZ3JhcGgoZW5kT2ZT
ZWxlY3Rpb24sIENhblNraXBPdmVyRWRpdGluZ0JvdW5kYXJ5KTsKKworICAgICAgICAgICAgaWYg
KHN0YXJ0T2ZQYXJhZ3JhcGgoc3RhcnRPZlNlbGVjdGlvbiwgQ2FuU2tpcE92ZXJFZGl0aW5nQm91
bmRhcnkpICE9IHN0YXJ0T2ZMYXN0UGFyYWdyYXBoKSB7CisgICAgICAgICAgICAgICAgYm9vbCBm
b3JjZUNyZWF0ZUxpc3QgPSAhc2VsZWN0aW9uSGFzTGlzdE9mVHlwZShzZWxlY3Rpb24sIGxpc3RU
YWcpOworCisgICAgICAgICAgICAgICAgUmVmUHRyPFJhbmdlPiBjdXJyZW50U2VsZWN0aW9uID0g
ZW5kaW5nU2VsZWN0aW9uKCkuZmlyc3RSYW5nZSgpOworICAgICAgICAgICAgICAgIFZpc2libGVQ
b3NpdGlvbiBzdGFydE9mQ3VycmVudFBhcmFncmFwaCA9IHN0YXJ0T2ZTZWxlY3Rpb247CisgICAg
ICAgICAgICAgICAgd2hpbGUgKCFpblNhbWVQYXJhZ3JhcGgoc3RhcnRPZkN1cnJlbnRQYXJhZ3Jh
cGgsIHN0YXJ0T2ZMYXN0UGFyYWdyYXBoLCBDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSkpIHsKKyAg
ICAgICAgICAgICAgICAgICAgLy8gZG9BcHBseSgpIG1heSBvcGVyYXRlIG9uIGFuZCByZW1vdmUg
dGhlIGxhc3QgcGFyYWdyYXBoIG9mIHRoZSBzZWxlY3Rpb24gZnJvbSB0aGUgZG9jdW1lbnQKKyAg
ICAgICAgICAgICAgICAgICAgLy8gaWYgaXQncyBpbiB0aGUgc2FtZSBsaXN0IGl0ZW0gYXMgc3Rh
cnRPZkN1cnJlbnRQYXJhZ3JhcGguIFJldHVybiBlYXJseSB0byBhdm9pZCBhbgorICAgICAgICAg
ICAgICAgICAgICAvLyBpbmZpbml0ZSBsb29wIGFuZCBiZWNhdXNlIHRoZXJlIGlzIG5vIG1vcmUg
d29yayB0byBiZSBkb25lLgorICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRSg8cmRhcjovL3By
b2JsZW0vNTk4Mzk3ND4pOiBUaGUgZW5kaW5nU2VsZWN0aW9uKCkgbWF5IGJlIGluY29ycmVjdCBo
ZXJlLiBDb21wdXRlCisgICAgICAgICAgICAgICAgICAgIC8vIHRoZSBuZXcgbG9jYXRpb24gb2Yg
ZW5kT2ZTZWxlY3Rpb24gYW5kIHVzZSBpdCBhcyB0aGUgZW5kIG9mIHRoZSBuZXcgc2VsZWN0aW9u
LgorICAgICAgICAgICAgICAgICAgICBpZiAoIXN0YXJ0T2ZMYXN0UGFyYWdyYXBoLmRlZXBFcXVp
dmFsZW50KCkuYW5jaG9yTm9kZSgpLT5pc0Nvbm5lY3RlZCgpKQogICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICAgICAgICAgICAgICBzdGFydE9mTGFzdFBhcmFncmFwaCA9
IHN0YXJ0T2ZQYXJhZ3JhcGgoZW5kT2ZTZWxlY3Rpb24sIENhblNraXBPdmVyRWRpdGluZ0JvdW5k
YXJ5KTsKKyAgICAgICAgICAgICAgICAgICAgc2V0RW5kaW5nU2VsZWN0aW9uKHN0YXJ0T2ZDdXJy
ZW50UGFyYWdyYXBoKTsKKworICAgICAgICAgICAgICAgICAgICAvLyBTYXZlIGFuZCByZXN0b3Jl
IGVuZE9mU2VsZWN0aW9uIGFuZCBzdGFydE9mTGFzdFBhcmFncmFwaCB3aGVuIG5lY2Vzc2FyeQor
ICAgICAgICAgICAgICAgICAgICAvLyBzaW5jZSBtb3ZlUGFyYWdyYXBoIGFuZCBtb3ZlUHJhZ3Jh
cGhXaXRoQ2xvbmVzIGNhbiByZW1vdmUgbm9kZXMuCisgICAgICAgICAgICAgICAgICAgIC8vIEZJ
WE1FOiBUaGlzIGlzIGFuIGluZWZmaWNpZW50IHdheSB0byBrZWVwIHNlbGVjdGlvbiBhbGl2ZSBi
ZWNhdXNlIGluZGV4Rm9yVmlzaWJsZVBvc2l0aW9uIHdhbGtzIGZyb20KKyAgICAgICAgICAgICAg
ICAgICAgLy8gdGhlIGJlZ2lubmluZyBvZiB0aGUgZG9jdW1lbnQgdG8gdGhlIGVuZE9mU2VsZWN0
aW9uIGV2ZXJ5dGltZSB0aGlzIGNvZGUgaXMgZXhlY3V0ZWQuCisgICAgICAgICAgICAgICAgICAg
IC8vIEJ1dCBub3QgdXNpbmcgaW5kZXggaXMgaGFyZCBiZWNhdXNlIHRoZXJlIGFyZSBzbyBtYW55
IHdheXMgd2UgY2FuIGxvc2Ugc2VsZWN0aW9uIGluc2lkZSBkb0FwcGx5Rm9yU2luZ2xlUGFyYWdy
YXBoLgorICAgICAgICAgICAgICAgICAgICBSZWZQdHI8Q29udGFpbmVyTm9kZT4gc2NvcGU7Cisg
ICAgICAgICAgICAgICAgICAgIGludCBpbmRleEZvckVuZE9mU2VsZWN0aW9uID0gaW5kZXhGb3JW
aXNpYmxlUG9zaXRpb24oZW5kT2ZTZWxlY3Rpb24sIHNjb3BlKTsKKyAgICAgICAgICAgICAgICAg
ICAgZG9BcHBseUZvclNpbmdsZVBhcmFncmFwaChmb3JjZUNyZWF0ZUxpc3QsIGxpc3RUYWcsIGN1
cnJlbnRTZWxlY3Rpb24uZ2V0KCkpOworICAgICAgICAgICAgICAgICAgICBpZiAoZW5kT2ZTZWxl
Y3Rpb24uaXNOdWxsKCkgfHwgZW5kT2ZTZWxlY3Rpb24uaXNPcnBoYW4oKSB8fCBzdGFydE9mTGFz
dFBhcmFncmFwaC5pc051bGwoKSB8fCBzdGFydE9mTGFzdFBhcmFncmFwaC5pc09ycGhhbigpKSB7
CisgICAgICAgICAgICAgICAgICAgICAgICBlbmRPZlNlbGVjdGlvbiA9IHZpc2libGVQb3NpdGlv
bkZvckluZGV4KGluZGV4Rm9yRW5kT2ZTZWxlY3Rpb24sIHNjb3BlLmdldCgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIC8vIElmIGVuZE9mU2VsZWN0aW9uIGlzIG51bGwsIHRoZW4gc29tZSBj
b250ZW50cyBoYXZlIGJlZW4gZGVsZXRlZCBmcm9tIHRoZSBkb2N1bWVudC4KKyAgICAgICAgICAg
ICAgICAgICAgICAgIC8vIFRoaXMgc2hvdWxkIG5ldmVyIGhhcHBlbiBhbmQgaWYgaXQgZGlkLCBl
eGl0IGVhcmx5IGltbWVkaWF0ZWx5IGJlY2F1c2Ugd2UndmUgbG9zdCB0aGUgbG9vcCBpbnZhcmlh
bnQuCisgICAgICAgICAgICAgICAgICAgICAgICBBU1NFUlQoZW5kT2ZTZWxlY3Rpb24uaXNOb3RO
dWxsKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVuZE9mU2VsZWN0aW9uLmlzTnVs
bCgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHN0YXJ0T2ZMYXN0UGFyYWdyYXBoID0gc3RhcnRPZlBhcmFncmFwaChlbmRPZlNl
bGVjdGlvbiwgQ2FuU2tpcE92ZXJFZGl0aW5nQm91bmRhcnkpOworICAgICAgICAgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgICAgICAgICAgLy8gRmV0Y2ggdGhlIHN0YXJ0IG9mIHRoZSBzZWxl
Y3Rpb24gYWZ0ZXIgbW92aW5nIHRoZSBmaXJzdCBwYXJhZ3JhcGgsCisgICAgICAgICAgICAgICAg
ICAgIC8vIGJlY2F1c2UgbW92aW5nIHRoZSBwYXJhZ3JhcGggd2lsbCBpbnZhbGlkYXRlIHRoZSBv
cmlnaW5hbCBzdGFydC4KKyAgICAgICAgICAgICAgICAgICAgLy8gV2UnbGwgdXNlIHRoZSBuZXcg
c3RhcnQgdG8gcmVzdG9yZSB0aGUgb3JpZ2luYWwgc2VsZWN0aW9uIGFmdGVyCisgICAgICAgICAg
ICAgICAgICAgIC8vIHdlIG1vZGlmaWVkIGFsbCBzZWxlY3RlZCBwYXJhZ3JhcGhzLgorICAgICAg
ICAgICAgICAgICAgICBpZiAoc3RhcnRPZkN1cnJlbnRQYXJhZ3JhcGggPT0gc3RhcnRPZlNlbGVj
dGlvbikKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0T2ZTZWxlY3Rpb24gPSBlbmRpbmdT
ZWxlY3Rpb24oKS52aXNpYmxlU3RhcnQoKTsKKworICAgICAgICAgICAgICAgICAgICBzdGFydE9m
Q3VycmVudFBhcmFncmFwaCA9IHN0YXJ0T2ZOZXh0UGFyYWdyYXBoKGVuZGluZ1NlbGVjdGlvbigp
LnZpc2libGVTdGFydCgpKTsKICAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAv
LyBGZXRjaCB0aGUgc3RhcnQgb2YgdGhlIHNlbGVjdGlvbiBhZnRlciBtb3ZpbmcgdGhlIGZpcnN0
IHBhcmFncmFwaCwKLSAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIG1vdmluZyB0aGUgcGFyYWdy
YXBoIHdpbGwgaW52YWxpZGF0ZSB0aGUgb3JpZ2luYWwgc3RhcnQuICAKLSAgICAgICAgICAgICAg
ICAvLyBXZSdsbCB1c2UgdGhlIG5ldyBzdGFydCB0byByZXN0b3JlIHRoZSBvcmlnaW5hbCBzZWxl
Y3Rpb24gYWZ0ZXIgCi0gICAgICAgICAgICAgICAgLy8gd2UgbW9kaWZpZWQgYWxsIHNlbGVjdGVk
IHBhcmFncmFwaHMuCi0gICAgICAgICAgICAgICAgaWYgKHN0YXJ0T2ZDdXJyZW50UGFyYWdyYXBo
ID09IHN0YXJ0T2ZTZWxlY3Rpb24pCi0gICAgICAgICAgICAgICAgICAgIHN0YXJ0T2ZTZWxlY3Rp
b24gPSBlbmRpbmdTZWxlY3Rpb24oKS52aXNpYmxlU3RhcnQoKTsKLQotICAgICAgICAgICAgICAg
IHN0YXJ0T2ZDdXJyZW50UGFyYWdyYXBoID0gc3RhcnRPZk5leHRQYXJhZ3JhcGgoZW5kaW5nU2Vs
ZWN0aW9uKCkudmlzaWJsZVN0YXJ0KCkpOworICAgICAgICAgICAgICAgIHNldEVuZGluZ1NlbGVj
dGlvbihlbmRPZlNlbGVjdGlvbik7CisgICAgICAgICAgICAgICAgZG9BcHBseUZvclNpbmdsZVBh
cmFncmFwaChmb3JjZUNyZWF0ZUxpc3QsIGxpc3RUYWcsIGN1cnJlbnRTZWxlY3Rpb24uZ2V0KCkp
OworICAgICAgICAgICAgICAgIC8vIEZldGNoIHRoZSBlbmQgb2YgdGhlIHNlbGVjdGlvbiwgZm9y
IHRoZSByZWFzb24gbWVudGlvbmVkIGFib3ZlLgorICAgICAgICAgICAgICAgIGVuZE9mU2VsZWN0
aW9uID0gZW5kaW5nU2VsZWN0aW9uKCkudmlzaWJsZUVuZCgpOworICAgICAgICAgICAgICAgIHNl
dEVuZGluZ1NlbGVjdGlvbihWaXNpYmxlU2VsZWN0aW9uKHN0YXJ0T2ZTZWxlY3Rpb24sIGVuZE9m
U2VsZWN0aW9uLCBlbmRpbmdTZWxlY3Rpb24oKS5pc0RpcmVjdGlvbmFsKCkpKTsKKyAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9Ci0gICAgICAgICAgICBzZXRFbmRpbmdTZWxl
Y3Rpb24oZW5kT2ZTZWxlY3Rpb24pOwotICAgICAgICAgICAgZG9BcHBseUZvclNpbmdsZVBhcmFn
cmFwaChmb3JjZUNyZWF0ZUxpc3QsIGxpc3RUYWcsIGN1cnJlbnRTZWxlY3Rpb24uZ2V0KCkpOwot
ICAgICAgICAgICAgLy8gRmV0Y2ggdGhlIGVuZCBvZiB0aGUgc2VsZWN0aW9uLCBmb3IgdGhlIHJl
YXNvbiBtZW50aW9uZWQgYWJvdmUuCi0gICAgICAgICAgICBlbmRPZlNlbGVjdGlvbiA9IGVuZGlu
Z1NlbGVjdGlvbigpLnZpc2libGVFbmQoKTsKLSAgICAgICAgICAgIHNldEVuZGluZ1NlbGVjdGlv
bihWaXNpYmxlU2VsZWN0aW9uKHN0YXJ0T2ZTZWxlY3Rpb24sIGVuZE9mU2VsZWN0aW9uLCBlbmRp
bmdTZWxlY3Rpb24oKS5pc0RpcmVjdGlvbmFsKCkpKTsKLSAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRiMzZiODdkZTZkNTgzN2NmYzZhNDI2NmM1YzkxMmY0
ZTQxZDJiM2YuLmNkODY2NzQ4OTNkYmJiZWRhNWMwNGEwOTdjZDJiYWYzZTZlZDM0MjUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAyMC0wNC0wNyAgSmFjayBMZWUgIDxzaGloY2hpZWhfbGVlQGFw
cGxlLmNvbT4KKworICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiBzZWxlY3Rpb24uaXNSYW5nZSgp
IGluIEluc2VydExpc3RDb21tYW5kOjpkb0FwcGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTAxNzAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYx
NDEwMzk3PgorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBB
ZGRlZCBhIHJlZ3Jlc3Npb24gdGVzdCBmb3IgdGhlIGNyYXNoLgorCisgICAgICAgICogZWRpdGlu
Zy9pbnNlcnRpbmcvaW5zZXJ0LWxpc3QtaW4tdGFibGUtYXNzZXJ0LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0LWxpc3QtaW4tdGFibGUtYXNz
ZXJ0Lmh0bWw6IEFkZGVkLgorCiAyMDIwLTA0LTAxICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogbV93cmFwcGVyIG9uIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29udGVudC9t
ZWRpYS1lbGVtZW50cy9yZWFkeS1zdGF0ZXMvYXV0b3BsYXkuaHRtbApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0LWxpc3QtaW4tdGFibGUtYXNzZXJ0LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvaW5zZXJ0aW5nL2luc2VydC1saXN0LWlu
LXRhYmxlLWFzc2VydC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODAwNjg4MDY5MDA0YTlkNDMz
YjE5ZTNjYzYwMDc5OTU0NmQ2NmIwNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvaW5zZXJ0aW5nL2luc2VydC1saXN0LWluLXRhYmxlLWFzc2VydC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSBAQAorVGVzdHMgaW5zZXJ0aW5nIGxpc3QgaW4gdGFibGUuIFRoZSB0ZXN0IHBh
c3NlcyBpZiBXZWJLaXQgZG9lc24ndCBjcmFzaCBvciBoaXQgYW4gYXNzZXJ0aW9uLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9pbnNlcnRpbmcvaW5zZXJ0LWxpc3QtaW4tdGFibGUt
YXNzZXJ0Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2luc2VydGluZy9pbnNlcnQtbGlzdC1p
bi10YWJsZS1hc3NlcnQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjM2NGYyOTg0ZWVkZGU4MGRjOWJhZDU4
OTgwODAxZGQyOWQ2OTZiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9p
bnNlcnRpbmcvaW5zZXJ0LWxpc3QtaW4tdGFibGUtYXNzZXJ0Lmh0bWwKQEAgLTAsMCArMSwxOCBA
QAorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIH0KKworICAgIHdpbmRvdy5vbmxvYWQgPSAoKSA9PiB7CisgICAgICAgIHdpbmRvdy5nZXRT
ZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KFRILDEsU1RZTEUsMSk7CisgICAgICAgIGRvY3Vt
ZW50LmV4ZWNDb21tYW5kKCJpbnNlcnRVbm9yZGVyZWRMaXN0IiwgZmFsc2UpOworICAgICAgICAK
KyAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uICgpIHsKKyAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0gIjxwPiBUZXN0cyBpbnNlcnRpbmcgbGlzdCBpbiB0
YWJsZS4gVGhlIHRlc3QgcGFzc2VzIGlmIFdlYktpdCBkb2Vzbid0IGNyYXNoIG9yIGhpdCBhbiBh
c3NlcnRpb24uPC9wPiI7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0pOworICAgIH0K
Kzwvc2NyaXB0PgorPGJvZHkgY29udGVudGVkaXRhYmxlPSJ0cnVlIj48dGFibGU+PHRoIGlkPVRI
PmE8L3RoPjxzdHlsZSBpZD1TVFlMRT48L3N0eWxlPjwvdGFibGU+PC9ib2R5Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>