<?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>209655</bug_id>
          
          <creation_ts>2020-03-27 09:12:14 -0700</creation_ts>
          <short_desc>[StressGC] ASSERTION FAILED: m_wrapper under WebCore::MainThreadGenericEventQueue::dispatchOneEvent</short_desc>
          <delta_ts>2020-03-27 09:53:46 -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>Bindings</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>rniwa</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1634819</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-27 09:12:14 -0700</bug_when>
    <thetext>[StressGC] ASSERTION FAILED: m_wrapper under WebCore::MainThreadGenericEventQueue::dispatchOneEvent:
ASSERTION FAILED: m_wrapper
./bindings/js/JSEventListener.h(123) : JSC::JSObject *WebCore::JSEventListener::jsFunction(WebCore::ScriptExecutionContext &amp;) const
1   0x1091b70b9 WTFCrash
2   0x11ee6388b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x12101e9f8 WebCore::JSEventListener::jsFunction(WebCore::ScriptExecutionContext&amp;) const
4   0x12101dd1b WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext&amp;, WebCore::Event&amp;)
5   0x12166b87c 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)
6   0x121667b12 WebCore::EventTarget::fireEventListeners(WebCore::Event&amp;, WebCore::EventTarget::EventInvokePhase)
7   0x12166b45d WebCore::EventTarget::dispatchEvent(WebCore::Event&amp;)
8   0x1216865f0 WebCore::MainThreadGenericEventQueue::dispatchOneEvent()
9   0x12168b8a1 decltype(*(std::__1::forward&lt;WebCore::MainThreadGenericEventQueue*&amp;&gt;(fp0)).*fp()) std::__1::__invoke&lt;void (WebCore::MainThreadGenericEventQueue::*&amp;)(), WebCore::MainThreadGenericEventQueue*&amp;, void&gt;(void (WebCore::MainThreadGenericEventQueue::*&amp;&amp;&amp;)(), WebCore::MainThreadGenericEventQueue*&amp;&amp;&amp;)
10  0x12168b820 std::__1::__bind_return&lt;void (WebCore::MainThreadGenericEventQueue::*)(), std::__1::tuple&lt;WebCore::MainThreadGenericEventQueue*&gt;, std::__1::tuple&lt;&gt;, __is_valid_bind_return&lt;void (WebCore::MainThreadGenericEventQueue::*)(), std::__1::tuple&lt;WebCore::MainThreadGenericEventQueue*&gt;, std::__1::tuple&lt;&gt; &gt;::value&gt;::type std::__1::__apply_functor&lt;void (WebCore::MainThreadGenericEventQueue::*)(), std::__1::tuple&lt;WebCore::MainThreadGenericEventQueue*&gt;, 0ul, std::__1::tuple&lt;&gt; &gt;(void (WebCore::MainThreadGenericEventQueue::*&amp;)(), std::__1::tuple&lt;WebCore::MainThreadGenericEventQueue*&gt;&amp;, std::__1::__tuple_indices&lt;0ul&gt;, std::__1::tuple&lt;&gt;&amp;&amp;)
11  0x12168b7cc std::__1::__bind_return&lt;void (WebCore::MainThreadGenericEventQueue::*)(), std::__1::tuple&lt;WebCore::MainThreadGenericEventQueue*&gt;, std::__1::tuple&lt;&gt;, __is_valid_bind_return&lt;void (WebCore::MainThreadGenericEventQueue::*)(), std::__1::tuple&lt;WebCore::MainThreadGenericEventQueue*&gt;, std::__1::tuple&lt;&gt; &gt;::value&gt;::type std::__1::__bind&lt;void (WebCore::MainThreadGenericEventQueue::*)(), WebCore::MainThreadGenericEventQueue*&gt;::operator()&lt;&gt;()
12  0x12168b769 WTF::Detail::CallableWrapper&lt;std::__1::__bind&lt;void (WebCore::MainThreadGenericEventQueue::*)(), WebCore::MainThreadGenericEventQueue*&gt;, void&gt;::call()
13  0x11ee710fa WTF::Function&lt;void ()&gt;::operator()() const
14  0x11f133a20 WebCore::GenericTaskQueue&lt;WebCore::Timer&gt;::enqueueTask(WTF::Function&lt;void ()&gt;&amp;&amp;)::&apos;lambda&apos;()::operator()() const
15  0x11f133869 WTF::Detail::CallableWrapper&lt;WebCore::GenericTaskQueue&lt;WebCore::Timer&gt;::enqueueTask(WTF::Function&lt;void ()&gt;&amp;&amp;)::&apos;lambda&apos;(), void&gt;::call()
16  0x11ee710fa WTF::Function&lt;void ()&gt;::operator()() const
17  0x12242071e WebCore::TaskDispatcher&lt;WebCore::Timer&gt;::dispatchOneTask()
18  0x1224203c5 WebCore::TaskDispatcher&lt;WebCore::Timer&gt;::sharedTimerFired()
19  0x122424c61 WebCore::TaskDispatcher&lt;WebCore::Timer&gt;::sharedTimer()::$_1::operator()() const
20  0x122424c29 WTF::Detail::CallableWrapper&lt;WebCore::TaskDispatcher&lt;WebCore::Timer&gt;::sharedTimer()::$_1, void&gt;::call()
21  0x11ee710fa WTF::Function&lt;void ()&gt;::operator()() const
22  0x11ef29ee9 WebCore::Timer::fired()
23  0x1224682ea WebCore::ThreadTimers::sharedTimerFiredInternal()
24  0x12246fec1 WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0::operator()() const
25  0x12246fe79 WTF::Detail::CallableWrapper&lt;WebCore::ThreadTimers::setSharedTimer(WebCore::SharedTimer*)::$_0, void&gt;::call()
26  0x11ee710fa WTF::Function&lt;void ()&gt;::operator()() const
27  0x122435ff7 WebCore::MainThreadSharedTimer::fired()
28  0x1224ca486 WebCore::timerFired(__CFRunLoopTimer*, void*)
29  0x7fff4f3805d5 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__
30  0x7fff4f380181 __CFRunLoopDoTimer
31  0x7fff4f37fcba __CFRunLoopDoTimers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634820</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-27 09:12:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/60541442&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634824</commentid>
    <comment_count>2</comment_count>
      <attachid>394721</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-27 09:15:20 -0700</bug_when>
    <thetext>Created attachment 394721
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634828</commentid>
    <comment_count>3</comment_count>
      <attachid>394721</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-03-27 09:19:32 -0700</bug_when>
    <thetext>Comment on attachment 394721
Patch

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

r=me

&gt; Source/WebCore/html/track/VideoTrackList.h:41
&gt; +        list-&gt;suspendIfNeeded();

Can these suspend calls happen in the constructors instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634829</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-27 09:23:42 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #3)
&gt; Comment on attachment 394721 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=394721&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebCore/html/track/VideoTrackList.h:41
&gt; &gt; +        list-&gt;suspendIfNeeded();
&gt; 
&gt; Can these suspend calls happen in the constructors instead?

I am trying to remember why but I am 100% sure that what you are suggesting is bad practice because it does not work in all cases and leads to assertions. The good practice is definitely to do it in the factory like I did. I definitely had to write patches to move the suspendIfNeeded() calls to the constructor call site to address crashes in the past.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634830</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-03-27 09:25:24 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #4)
&gt; (In reply to Geoffrey Garen from comment #3)
&gt; &gt; Comment on attachment 394721 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=394721&amp;action=review
&gt; &gt; 
&gt; &gt; r=me
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/html/track/VideoTrackList.h:41
&gt; &gt; &gt; +        list-&gt;suspendIfNeeded();
&gt; &gt; 
&gt; &gt; Can these suspend calls happen in the constructors instead?
&gt; 
&gt; I am trying to remember why but I am 100% sure that what you are suggesting
&gt; is bad practice because it does not work in all cases and leads to
&gt; assertions. The good practice is definitely to do it in the factory like I
&gt; did. I definitely had to write patches to move the suspendIfNeeded() calls
&gt; to the constructor call site to address crashes in the past.

Ok, found an example:
http://trac.webkit.org/r252497

From my changelog:
&quot;&quot;&quot;
    Call suspendIfNeeded() in the factory and not in the constructor. It is never safe to call
    suspendIfNeeded() from inside the constructor because it may call the suspend() method, which
    may ref |this|.
&quot;&quot;&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634834</commentid>
    <comment_count>6</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2020-03-27 09:33:46 -0700</bug_when>
    <thetext>Okeedokee.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1634840</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-27 09:53:45 -0700</bug_when>
    <thetext>Committed r259122: &lt;https://trac.webkit.org/changeset/259122&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394721.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394721</attachid>
            <date>2020-03-27 09:15:20 -0700</date>
            <delta_ts>2020-03-27 09:53:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209655-20200327091519.patch</filename>
            <type>text/plain</type>
            <size>9657</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5MTE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjZmMTE4ZGI2OGU5MzE2
ZDlkNjA4YjliOGFmODY0NzJkYjFlZTc4My4uYWRjZjY2N2I5Y2IyZWUyODc1ZmM3ZGI4MmE0NzI2
MDI3M2UyNGFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTAzLTI3ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgW1N0cmVzc0dDXSBBU1NFUlRJ
T04gRkFJTEVEOiBtX3dyYXBwZXIgdW5kZXIgV2ViQ29yZTo6TWFpblRocmVhZEdlbmVyaWNFdmVu
dFF1ZXVlOjpkaXNwYXRjaE9uZUV2ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDk2NTUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYwNTQxNDQy
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRyYWNr
TGlzdEJhc2Ugc2hvdWxkIHN1YmNsYXNzIEFjdGl2ZURPTU9iamVjdCBhbmQga2VlcCBpdHMgd3Jh
cHBlciBhbGl2ZSB3aGVuIHRoZXJlIGFyZSBwZW5kaW5nCisgICAgICAgIGV2ZW50cyB0byBiZSBk
aXNwYXRjaGVkLiBUcmFja0xpc3RCYXNlIGhhcyBhIHF1ZXVlIHRvIGRpc3BhdGNoIGV2ZW50cyBh
c3luY2hyb25vdXNseS4KKworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgbWVkaWEv
dHJhY2svdHJhY2stcmVtb3ZlLXRyYWNrLmh0bWwuCisKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1
ZGlvVHJhY2tMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvVHJhY2tMaXN0OjphY3Rp
dmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAgICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2tM
aXN0Lmg6CisgICAgICAgICogaHRtbC90cmFjay9BdWRpb1RyYWNrTGlzdC5pZGw6CisgICAgICAg
ICogaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRleHRU
cmFja0xpc3Q6OmFjdGl2ZURPTU9iamVjdE5hbWUgY29uc3QpOgorICAgICAgICAqIGh0bWwvdHJh
Y2svVGV4dFRyYWNrTGlzdC5oOgorICAgICAgICAqIGh0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5p
ZGw6CisgICAgICAgICogaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlRyYWNrTGlzdEJhc2U6OlRyYWNrTGlzdEJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6
VHJhY2tMaXN0QmFzZTo6aGFzUGVuZGluZ0FjdGl2aXR5IGNvbnN0KToKKyAgICAgICAgKiBodG1s
L3RyYWNrL1RyYWNrTGlzdEJhc2UuaDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2tM
aXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlZpZGVvVHJhY2tMaXN0OjphY3RpdmVET01PYmpl
Y3ROYW1lIGNvbnN0KToKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2tMaXN0Lmg6Cisg
ICAgICAgICogaHRtbC90cmFjay9WaWRlb1RyYWNrTGlzdC5pZGw6CisKIDIwMjAtMDMtMjcgIE1p
Z3VlbCBHb21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBVbm5lY2Vz
c2FyeSBnbCBzeW5jaHJvbml6YXRpb24gd2hlbiB1c2luZyBhbiBPcGVuTUFYIHZpZGVvIGRlY29k
ZXIgYW5kIEdMRVMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlv
VHJhY2tMaXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0xpc3Qu
Y3BwCmluZGV4IDEwZGVhNTQxNmM2ZjY4YzFiMTYzZmNmMzkwOWJiYWQ4ZmI4NzkxYjMuLjU4NzVm
ZDVlNDJkMGUxNWI0NTI1NjIwZjdmZDM4YmI0MWE3OTljZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0xpc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvdHJhY2svQXVkaW9UcmFja0xpc3QuY3BwCkBAIC04Miw1ICs4MiwxMCBAQCBFdmVudFRh
cmdldEludGVyZmFjZSBBdWRpb1RyYWNrTGlzdDo6ZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBjb25z
dAogICAgIHJldHVybiBBdWRpb1RyYWNrTGlzdEV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsKIH0K
IAorY29uc3QgY2hhciogQXVkaW9UcmFja0xpc3Q6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dAoreworICAgIHJldHVybiAiQXVkaW9UcmFja0xpc3QiOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVk
aW9UcmFja0xpc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0xpc3Qu
aAppbmRleCAzNjg2NWUyYjlmZjI1ODYxMjAzNmEzZjFiN2U2YjMyOGZjMmIzZGVmLi5mY2RjOTM0
OWJiZjhkYjdhOTVkMzhjYTgxNzhiN2NiNWU2MmJjNWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL0F1ZGlvVHJhY2tMaXN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9BdWRpb1RyYWNrTGlzdC5oCkBAIC0zNyw3ICszNyw5IEBAIGNsYXNzIEF1ZGlvVHJh
Y2tMaXN0IGZpbmFsIDogcHVibGljIFRyYWNrTGlzdEJhc2UgewogcHVibGljOgogICAgIHN0YXRp
YyBSZWY8QXVkaW9UcmFja0xpc3Q+IGNyZWF0ZShXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IG93
bmVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQXVkaW9UcmFja0xpc3Qob3duZXIsIGNvbnRleHQpKTsKKyAgICAg
ICAgYXV0byBsaXN0ID0gYWRvcHRSZWYoKm5ldyBBdWRpb1RyYWNrTGlzdChvd25lciwgY29udGV4
dCkpOworICAgICAgICBsaXN0LT5zdXNwZW5kSWZOZWVkZWQoKTsKKyAgICAgICAgcmV0dXJuIGxp
c3Q7CiAgICAgfQogICAgIHZpcnR1YWwgfkF1ZGlvVHJhY2tMaXN0KCk7CiAKQEAgLTUyLDYgKzU0
LDggQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEF1ZGlvVHJhY2tMaXN0KFdlYWtQdHI8SFRN
TE1lZGlhRWxlbWVudD4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKKworICAgIGNvbnN0IGNo
YXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKIH07CiBzdGF0aWNfYXNzZXJ0
KHNpemVvZihBdWRpb1RyYWNrTGlzdCkgPT0gc2l6ZW9mKFRyYWNrTGlzdEJhc2UpLCAiIik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svQXVkaW9UcmFja0xpc3QuaWRs
IGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1RyYWNrTGlzdC5pZGwKaW5kZXggY2Rl
NzNmNDBhOTE2OTJhYTJkM2RjMjQxNzIyYjc3ZWRhMTk3N2M1Yy4uNzc4MWMwOTQ5MTg4MjBlYTZl
NzZiM2JmZDI0NzU3NDc0MTc0NjkzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90
cmFjay9BdWRpb1RyYWNrTGlzdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9B
dWRpb1RyYWNrTGlzdC5pZGwKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiBbCisgICAgQWN0aXZl
RE9NT2JqZWN0LAogICAgIENvbmRpdGlvbmFsPVZJREVPX1RSQUNLLAogICAgIEdlbmVyYXRlSXNS
ZWFjaGFibGU9SW1wbEVsZW1lbnRSb290LAogICAgIEpTQ3VzdG9tTWFya0Z1bmN0aW9uLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5jcHAKaW5kZXggNDg2Y2VjNzY0
ZGIwNzc2NzFkMTZjMmQ4NDVjYWIwNzk4MGE3NGRiMS4uOTUzMmQ0ZDM2ZjM0ZTBhYWMwZWFmZjU5
YTQxYWJkNTc5Y2ZlMmMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9U
ZXh0VHJhY2tMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFj
a0xpc3QuY3BwCkBAIC0yNjgsNSArMjY4LDEwIEBAIEV2ZW50VGFyZ2V0SW50ZXJmYWNlIFRleHRU
cmFja0xpc3Q6OmV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QKICAgICByZXR1cm4gVGV4dFRy
YWNrTGlzdEV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlwZTsKIH0KIAorY29uc3QgY2hhciogVGV4dFRy
YWNrTGlzdDo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJUZXh0
VHJhY2tMaXN0IjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFja0xpc3QuaCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5oCmluZGV4IGY4NTc0N2YwM2UwNjk2ZWYz
N2YyZjhlNjE2MmM3OGNmOTMyODgxNjQuLjAyODFiYWUyZTQ3YWE2NTc5MWYzNjU0MWU4MmE0MzRi
Mzc0ZTE1MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNr
TGlzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5oCkBA
IC0zOCw3ICszOCw5IEBAIGNsYXNzIFRleHRUcmFja0xpc3QgZmluYWwgOiBwdWJsaWMgVHJhY2tM
aXN0QmFzZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxUZXh0VHJhY2tMaXN0PiBjcmVhdGUo
V2Vha1B0cjxIVE1MTWVkaWFFbGVtZW50PiBlbGVtZW50LCBTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0KQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGV4dFRyYWNr
TGlzdChlbGVtZW50LCBjb250ZXh0KSk7CisgICAgICAgIGF1dG8gbGlzdCA9IGFkb3B0UmVmKCpu
ZXcgVGV4dFRyYWNrTGlzdChlbGVtZW50LCBjb250ZXh0KSk7CisgICAgICAgIGxpc3QtPnN1c3Bl
bmRJZk5lZWRlZCgpOworICAgICAgICByZXR1cm4gbGlzdDsKICAgICB9CiAgICAgdmlydHVhbCB+
VGV4dFRyYWNrTGlzdCgpOwogCkBAIC02MSw2ICs2Myw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToK
ICAgICBUZXh0VHJhY2tMaXN0KFdlYWtQdHI8SFRNTE1lZGlhRWxlbWVudD4sIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqKTsKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3QgZmluYWw7CiAKICAgICB2b2lkIGludmFsaWRhdGVUcmFja0luZGV4ZXNBZnRlclRyYWNrKFRl
eHRUcmFjayYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRU
cmFja0xpc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UZXh0VHJhY2tMaXN0Lmlk
bAppbmRleCBmZWRkNzNiNTVjMjY4NzBiNWYzMzg2NTExYjA1YTdhMWE0M2Q2MDFmLi4zNTgyMGE1
ZGFiOGQ1ZDI3OTFkNWIxNDNhMTBkZDRjMmM4NTc2NTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3RyYWNrL1RleHRUcmFja0xpc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvdHJhY2svVGV4dFRyYWNrTGlzdC5pZGwKQEAgLTI0LDYgKzI0LDcgQEAKICAqLwogCiBbCisg
ICAgQWN0aXZlRE9NT2JqZWN0LAogICAgIENvbmRpdGlvbmFsPVZJREVPX1RSQUNLLAogICAgIEdl
bmVyYXRlSXNSZWFjaGFibGU9SW1wbEVsZW1lbnRSb290LAogICAgIEpTQ3VzdG9tTWFya0Z1bmN0
aW9uLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVHJhY2tMaXN0QmFzZS5jcHAKaW5kZXgg
NjM0NGUwNWM3N2VmNTRjZmQ0NTIxOGNhNGRmZDMyNDJmMzBiNjJkNi4uNTg1OGNmM2FmMGIyMTc4
ZGVkMDhmMzIzYzRmMmYyNmE2YWI0NTA2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRt
bC90cmFjay9UcmFja0xpc3RCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1RyYWNrTGlzdEJhc2UuY3BwCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChUcmFja0xpc3RCYXNlKTsKIAogVHJhY2tMaXN0
QmFzZTo6VHJhY2tMaXN0QmFzZShXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+IGVsZW1lbnQsIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCi0gICAgOiBDb250ZXh0RGVzdHJ1Y3Rpb25P
YnNlcnZlcihjb250ZXh0KQorICAgIDogQWN0aXZlRE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBt
X2VsZW1lbnQoZWxlbWVudCkKICAgICAsIG1fYXN5bmNFdmVudFF1ZXVlKE1haW5UaHJlYWRHZW5l
cmljRXZlbnRRdWV1ZTo6Y3JlYXRlKCp0aGlzKSkKIHsKQEAgLTE3Nyw2ICsxNzcsMTEgQEAgYm9v
bCBUcmFja0xpc3RCYXNlOjppc0FueVRyYWNrRW5hYmxlZCgpIGNvbnN0CiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCitib29sIFRyYWNrTGlzdEJhc2U6Omhhc1BlbmRpbmdBY3Rpdml0eSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIEFjdGl2ZURPTU9iamVjdDo6aGFzUGVuZGluZ0FjdGl2aXR5KCkgfHwg
bV9hc3luY0V2ZW50UXVldWUtPmhhc1BlbmRpbmdFdmVudHMoKTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJh
Y2svVHJhY2tMaXN0QmFzZS5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RC
YXNlLmgKaW5kZXggZmYzY2Q3OWYwMGQzMDEyNWVmOWIwYTQzMzdhMzhkNGY5MDYwY2E0Mi4uYTVj
ODg3ODFkYzljNDI2NzcxNmVlZDYxNmQ5MWFhNmY5NDdhZDQxYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC90cmFjay9UcmFja0xpc3RCYXNlLmgKQEAgLTI3LDcgKzI3LDcgQEAKIAogI2lmIEVOQUJM
RShWSURFT19UUkFDSykKIAotI2luY2x1ZGUgIkNvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyLmgi
CisjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIK
ICNpbmNsdWRlICJHZW5lcmljRXZlbnRRdWV1ZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVk
Lmg+CkBAIC00MCw3ICs0MCw3IEBAIGNsYXNzIEhUTUxNZWRpYUVsZW1lbnQ7CiBjbGFzcyBFbGVt
ZW50OwogY2xhc3MgVHJhY2tCYXNlOwogCi1jbGFzcyBUcmFja0xpc3RCYXNlIDogcHVibGljIFJl
ZkNvdW50ZWQ8VHJhY2tMaXN0QmFzZT4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRh
LCBwdWJsaWMgQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXIgeworY2xhc3MgVHJhY2tMaXN0QmFz
ZSA6IHB1YmxpYyBSZWZDb3VudGVkPFRyYWNrTGlzdEJhc2U+LCBwdWJsaWMgRXZlbnRUYXJnZXRX
aXRoSW5saW5lRGF0YSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CiAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRChUcmFja0xpc3RCYXNlKTsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5UcmFja0xp
c3RCYXNlKCk7CkBAIC02NSw2ICs2NSw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNBbnlUcmFj
a0VuYWJsZWQoKSBjb25zdDsKIAorICAgIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3Qg
b3ZlcnJpZGU7CisKIHByb3RlY3RlZDoKICAgICBUcmFja0xpc3RCYXNlKFdlYWtQdHI8SFRNTE1l
ZGlhRWxlbWVudD4sIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tMaXN0LmNwcAppbmRleCAwZDFlMDkwZjU2YTNjNjE3NTZh
N2Q4NDhmOTJkMjQwYmJjOTFiYTRlLi5mNDAyOGVlMzc1NGIyZWJjMjVkYTJjZmJmNTkxNjMxZGZl
NzU0YmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tM
aXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tMaXN0LmNw
cApAQCAtOTUsNSArOTUsMTAgQEAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgVmlkZW9UcmFja0xpc3Q6
OmV2ZW50VGFyZ2V0SW50ZXJmYWNlKCkgY29uc3QKICAgICByZXR1cm4gVmlkZW9UcmFja0xpc3RF
dmVudFRhcmdldEludGVyZmFjZVR5cGU7CiB9CiAKK2NvbnN0IGNoYXIqIFZpZGVvVHJhY2tMaXN0
OjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gIlZpZGVvVHJhY2tM
aXN0IjsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tMaXN0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2tMaXN0LmgKaW5kZXggY2JmZGQxMmJkNzE3MmMwYjZlNDc1
OTk3MDAwNmFhOGYzMzE3ZmE4MC4uOTBlYmU3OGFkYTZhZGUxNzVmNzBjNTQyYjhlYzFmMDE0ZGY4
YWFiYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9WaWRlb1RyYWNrTGlz
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0xpc3QuaApAQCAt
MzcsNyArMzcsOSBAQCBjbGFzcyBWaWRlb1RyYWNrTGlzdCBmaW5hbCA6IHB1YmxpYyBUcmFja0xp
c3RCYXNlIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFZpZGVvVHJhY2tMaXN0PiBjcmVhdGUo
V2Vha1B0cjxIVE1MTWVkaWFFbGVtZW50PiBvd25lciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
Y29udGV4dCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFZpZGVvVHJhY2tM
aXN0KG93bmVyLCBjb250ZXh0KSk7CisgICAgICAgIGF1dG8gbGlzdCA9IGFkb3B0UmVmKCpuZXcg
VmlkZW9UcmFja0xpc3Qob3duZXIsIGNvbnRleHQpKTsKKyAgICAgICAgbGlzdC0+c3VzcGVuZElm
TmVlZGVkKCk7CisgICAgICAgIHJldHVybiBsaXN0OwogICAgIH0KICAgICB2aXJ0dWFsIH5WaWRl
b1RyYWNrTGlzdCgpOwogCkBAIC01Myw2ICs1NSw4IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAg
ICBWaWRlb1RyYWNrTGlzdChXZWFrUHRyPEhUTUxNZWRpYUVsZW1lbnQ+LCBTY3JpcHRFeGVjdXRp
b25Db250ZXh0Kik7CisKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3QgZmluYWw7CiB9Owogc3RhdGljX2Fzc2VydChzaXplb2YoVmlkZW9UcmFja0xpc3QpID09IHNp
emVvZihUcmFja0xpc3RCYXNlKSwgIiIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL3RyYWNrL1ZpZGVvVHJhY2tMaXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2sv
VmlkZW9UcmFja0xpc3QuaWRsCmluZGV4IDljNDNmY2QxODFkZjU2YzA3NTJkMTc2ZTE4MDA2OTQ1
YjlhZTAzNDcuLjE4ZjQwZWQyMjY2MGYyZjQ4NDNiMzYyZGZmY2U5ZTk3YzFlNDFhNjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0xpc3QuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVmlkZW9UcmFja0xpc3QuaWRsCkBAIC0yNCw2ICsy
NCw3IEBACiAgKi8KIAogWworICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBDb25kaXRpb25hbD1W
SURFT19UUkFDSywKICAgICBHZW5lcmF0ZUlzUmVhY2hhYmxlPUltcGxFbGVtZW50Um9vdCwKICAg
ICBKU0N1c3RvbU1hcmtGdW5jdGlvbiwK
</data>

          </attachment>
      

    </bug>

</bugzilla>