<?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>118788</bug_id>
          
          <creation_ts>2013-07-17 04:18:38 -0700</creation_ts>
          <short_desc>[GTK] WebKitDOM objects leaking</short_desc>
          <delta_ts>2015-04-08 07:12:33 -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>WebKitGTK</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Tomas Popela">tpopela</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mcrha</cc>
    
    <cc>mrobinson</cc>
    
    <cc>svillar</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>909296</commentid>
    <comment_count>0</comment_count>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2013-07-17 04:18:38 -0700</bug_when>
    <thetext>On recent trunk I noticed that we are leaking some WebKitDOM objects like Range or Node. 

tpopela  ~/dev/webkitgtk3/webkitgtk-2.0.3/Programs/unittests  &gt;  13:09  [f19]  
$ ./testdomnode 
/webkit/domnode/test_hierarchy_navigation: OK
/webkit/domnode/test_insertion: OK

tpopela  ~/dev/WebKit/WebKitBuild/Debug/Programs/unittests  &gt;  13:06  [master]  
$ ./testdomnode 
/webkit/domnode/test_hierarchy_navigation: OK
/webkit/domnode/test_insertion: OK
LEAK: 5 WebCoreNode

It is even bigger, when testing WebKit based composer for Evolution (4 lines email written in composer):

tpopela  ~/dev/evolution/build/test/bin  &gt;  13:04   
$ ./evolution 
LEAK: 20 CachedResource
LEAK: 7191 Range
LEAK: 4155 WebCoreNode</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909333</commentid>
    <comment_count>1</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2013-07-17 08:16:18 -0700</bug_when>
    <thetext>DOM nodes are cached and released after a short timeout. Can you verify that after spinning the main loop for a while this doesn&apos;t happen automatically?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909647</commentid>
    <comment_count>2</comment_count>
    <who name="Tomas Popela">tpopela</who>
    <bug_when>2013-07-18 01:21:41 -0700</bug_when>
    <thetext>No, it does not help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909665</commentid>
    <comment_count>3</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2013-07-18 01:54:13 -0700</bug_when>
    <thetext>(In reply to comment #0)

&gt; tpopela  ~/dev/evolution/build/test/bin  &gt;  13:04   
&gt; $ ./evolution 
&gt; LEAK: 20 CachedResource
&gt; LEAK: 7191 Range
&gt; LEAK: 4155 WebCoreNode

Don&apos;t know exactly about DOM objects, but note that the &quot;leaks&quot; in CachedResources are not really leaks. WebKit does not free cached resources on program exit on purpose, because the program is actually finishing so they&apos;ll be eventually released anyway and we&apos;re speeding up the exit process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909750</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2013-07-18 07:38:09 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #0)
&gt; 
&gt; &gt; tpopela  ~/dev/evolution/build/test/bin  &gt;  13:04   
&gt; &gt; $ ./evolution 
&gt; &gt; LEAK: 20 CachedResource
&gt; &gt; LEAK: 7191 Range
&gt; &gt; LEAK: 4155 WebCoreNode
&gt; 
&gt; Don&apos;t know exactly about DOM objects, but note that the &quot;leaks&quot; in CachedResources are not really leaks. WebKit does not free cached resources on program exit on purpose, because the program is actually finishing so they&apos;ll be eventually released anyway and we&apos;re speeding up the exit process.

This number might be lower after r152340.
http://trac.webkit.org/changeset/152340</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1068888</commentid>
    <comment_count>5</comment_count>
      <attachid>246517</attachid>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2015-02-13 04:50:02 -0800</bug_when>
    <thetext>Created attachment 246517
wk-leaks.c

Test application (first line shows how to compile &amp; run it), which makes it easier to reproduce the leaks. Similar code (update_styles()) is used in Evolution and called to quite few times on various occasions.

The thing is that objects like WebKitDOMCSSRuleList (returned from webkit_dom_css_style_sheet_get_css_rules()) and WebKitDOMCSSRule (returned from webkit_dom_css_rule_list_item()) are not freed on frame reload, but a new objects are returned anyway.

The reason is that DOMObjectCache::clearByFrame() is called with a valid frame, but these objkects (and many other DOM objects) are stored in the cache with NULL data-&gt;frame.

My opinion: It won&apos;t work to always remove objects which has data-&gt;frame == NULL in the cache on any frame cleanup, because that would influence (invalidate) GObject-s from other web views (if there are more instances).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069421</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-02-16 06:37:37 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created attachment 246517 [details]
&gt; wk-leaks.c
&gt; 
&gt; Test application (first line shows how to compile &amp; run it), which makes it
&gt; easier to reproduce the leaks. Similar code (update_styles()) is used in
&gt; Evolution and called to quite few times on various occasions.
&gt; 
&gt; The thing is that objects like WebKitDOMCSSRuleList (returned from
&gt; webkit_dom_css_style_sheet_get_css_rules()) and WebKitDOMCSSRule (returned
&gt; from webkit_dom_css_rule_list_item()) are not freed on frame reload, but a
&gt; new objects are returned anyway.
&gt; 
&gt; The reason is that DOMObjectCache::clearByFrame() is called with a valid
&gt; frame, but these objkects (and many other DOM objects) are stored in the
&gt; cache with NULL data-&gt;frame.
&gt; 
&gt; My opinion: It won&apos;t work to always remove objects which has data-&gt;frame ==
&gt; NULL in the cache on any frame cleanup, because that would influence
&gt; (invalidate) GObject-s from other web views (if there are more instances).

I think the actual bug are the gtk-doc tags used, because not all GObject DOM bindings are supposed to be returned as transfer-none. See the original bug #40302 and the commits message:

&quot;Manual management (calling g_object_unref on them) is also allowed, and is required for objects that are not in the DOM tree (eg NodeLists).&quot;

I forgot about those when I added the transfer annotations to the gtk-doc :-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069469</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-02-16 09:51:30 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; Created attachment 246517 [details]
&gt; &gt; wk-leaks.c
&gt; &gt; 
&gt; &gt; Test application (first line shows how to compile &amp; run it), which makes it
&gt; &gt; easier to reproduce the leaks. Similar code (update_styles()) is used in
&gt; &gt; Evolution and called to quite few times on various occasions.
&gt; &gt; 
&gt; &gt; The thing is that objects like WebKitDOMCSSRuleList (returned from
&gt; &gt; webkit_dom_css_style_sheet_get_css_rules()) and WebKitDOMCSSRule (returned
&gt; &gt; from webkit_dom_css_rule_list_item()) are not freed on frame reload, but a
&gt; &gt; new objects are returned anyway.
&gt; &gt; 
&gt; &gt; The reason is that DOMObjectCache::clearByFrame() is called with a valid
&gt; &gt; frame, but these objkects (and many other DOM objects) are stored in the
&gt; &gt; cache with NULL data-&gt;frame.
&gt; &gt; 
&gt; &gt; My opinion: It won&apos;t work to always remove objects which has data-&gt;frame ==
&gt; &gt; NULL in the cache on any frame cleanup, because that would influence
&gt; &gt; (invalidate) GObject-s from other web views (if there are more instances).
&gt; 
&gt; I think the actual bug are the gtk-doc tags used, because not all GObject
&gt; DOM bindings are supposed to be returned as transfer-none. See the original
&gt; bug #40302 and the commits message:
&gt; 
&gt; &quot;Manual management (calling g_object_unref on them) is also allowed, and is
&gt; required for objects that are not in the DOM tree (eg NodeLists).&quot;
&gt; 
&gt; I forgot about those when I added the transfer annotations to the gtk-doc :-(

But there&apos;s still a problem. A lot of DOM objects are initially created and then added to a container, so they are not initially in document and we don&apos;t track their frame. I wonder if we should simply remove the inDocument check and always track the frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1069514</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-02-16 11:29:17 -0800</bug_when>
    <thetext>I have reworked the DOMObjectCache in bug #141558, removing the inDocument condition and it seems to work for all the WebKit2 unit tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070126</commentid>
    <comment_count>9</comment_count>
      <attachid>246821</attachid>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2015-02-18 09:21:47 -0800</bug_when>
    <thetext>Created attachment 246821
wk-leaks.c ][

Updated test program. It also checks when the returned pointers are freed and which are eventually leaked and prints that on console. The memory-related lines start with &quot;\t#&quot; in the debug output.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070131</commentid>
    <comment_count>10</comment_count>
      <attachid>246823</attachid>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2015-02-18 09:40:38 -0800</bug_when>
    <thetext>Created attachment 246823
wk-leaks.c ]I[

I&apos;m sorry, one mo update, to not leak the object in the code as such, at the end of add_css_rule_into_style_sheet(). Tomas pointed it out on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072669</commentid>
    <comment_count>11</comment_count>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2015-02-26 23:24:01 -0800</bug_when>
    <thetext>Few more observations found (by Tomas). When using
   webkit_dom_event_target_add_event_listener()
on a webkit GObject, then this object cannot be unreffed, because that will cause the listener die as well. That&apos;s pretty unfortunate. I know the idea is to have the object alive as long as the associated frame is alive, and keep all the memory management fully up to the WebKit, but that doesn&apos;t work in Evolution, where we have one WebView for a whole lifetime of the application.

I know there is an option to destroy &amp; create the WebView whenever a new message is selected or such, but it has UI impact, which I&apos;d like to avoid (UI flickering is not good).

Thus, apart of fixing the DOMObjecCache, could you add also a function for webkit_web_view to cleanup all objects from the DOMObjectCache associated for that WebView (its frame)? If would be like if the WebView&apos;s frame was destroyed, except it will not. That will mean than any GObject-s created for that view will be invalidated. It&apos;ll help to keep the memory usage low without constant recreation of the widgets.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1073016</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-02-28 02:46:53 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; Few more observations found (by Tomas). When using
&gt;    webkit_dom_event_target_add_event_listener()
&gt; on a webkit GObject, then this object cannot be unreffed, because that will
&gt; cause the listener die as well. That&apos;s pretty unfortunate.

The thing is that the event listener object doesn&apos;t exist in DOM bindings, it&apos;s an internal object that is created on demand, and destroyed when the target object is destroyed, or when the event listener is removed.

&gt; I know the idea
&gt; is to have the object alive as long as the associated frame is alive, and
&gt; keep all the memory management fully up to the WebKit, but that doesn&apos;t work
&gt; in Evolution, where we have one WebView for a whole lifetime of the
&gt; application.
&gt; 
&gt; I know there is an option to destroy &amp; create the WebView whenever a new
&gt; message is selected or such, but it has UI impact, which I&apos;d like to avoid
&gt; (UI flickering is not good).

Yes, I agree that&apos;s not an option, it doesn&apos;t make sense to destroiy and create web views for this. I think the problem is that we have always made the DOM objects depend on its frame, when what we should probably be monitoring is the document instead of (or in addition to) the frame.

&gt; Thus, apart of fixing the DOMObjecCache, could you add also a function for
&gt; webkit_web_view to cleanup all objects from the DOMObjectCache associated
&gt; for that WebView (its frame)? If would be like if the WebView&apos;s frame was
&gt; destroyed, except it will not. That will mean than any GObject-s created for
&gt; that view will be invalidated. It&apos;ll help to keep the memory usage low
&gt; without constant recreation of the widgets.

We are not going to add new API to WebKit1, but I think it can be fixed internally without any new API, by clearing the objects when the document is detached from the frame or when the document is destroyed or the render tree is destroyed, I don&apos;t know exactly how to do it yet, but it could be something in that direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076354</commentid>
    <comment_count>13</comment_count>
      <attachid>248428</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-03-11 10:11:09 -0700</bug_when>
    <thetext>Created attachment 248428
Patch

I think this patch solves the problems Milan is having. It also clears the DOM objects when the document is detached from the frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076358</commentid>
    <comment_count>14</comment_count>
      <attachid>248431</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-03-11 10:20:57 -0700</bug_when>
    <thetext>Created attachment 248431
Updated patch

Made a mistake in the unit test, it should be fine now</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076584</commentid>
    <comment_count>15</comment_count>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2015-03-12 01:24:42 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; I think this patch solves the problems Milan is having. It also clears the
&gt; DOM objects when the document is detached from the frame.

This is not for WebKit1, or the 2.4.8 misses some changeset, because there is no DOMObjectCacheFrameObserver. My problem is currently with WebKit1, thus I cannot test this change to know whether it&apos;ll really fix my issue or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076587</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-03-12 01:42:27 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #13)
&gt; &gt; I think this patch solves the problems Milan is having. It also clears the
&gt; &gt; DOM objects when the document is detached from the frame.
&gt; 
&gt; This is not for WebKit1, or the 2.4.8 misses some changeset, because there
&gt; is no DOMObjectCacheFrameObserver. My problem is currently with WebKit1,
&gt; thus I cannot test this change to know whether it&apos;ll really fix my issue or
&gt; not.

Yes, I know, I&apos;ll backport this and the other patches to 2.4 branch as soon as I find the time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076616</commentid>
    <comment_count>17</comment_count>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2015-03-12 05:46:59 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Yes, I know, I&apos;ll backport this and the other patches to 2.4 branch as soon
&gt; as I find the time.

Thanks. Once you have it done, and give me the pointers to relevant changes, I&apos;ll be able to test it in the &quot;real life&quot; of the Evolution use case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077136</commentid>
    <comment_count>18</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-03-14 01:51:55 -0700</bug_when>
    <thetext>I&apos;ve realized the patch doesn&apos;t always work. It only works the first time the document is detached from the frame, but when a new document is created we no longer track its DOM Window. We need to use a different class for the DOM Window observer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077138</commentid>
    <comment_count>19</comment_count>
      <attachid>248646</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-03-14 01:56:39 -0700</bug_when>
    <thetext>Created attachment 248646
New patch

Instead of making DOMObjectCacheFrameObserver inherit from DOMWindowProperty, use a helper class DOMWindowObserver used as a member of DOMObjectCacheFrameObserver and created/destroyed on demand to track the document when it&apos;s detached form the frame, but also when a new document is created. I&apos;ve updated the unit test to run 3 times, because when run twice, the first time objects were correctly cleared when the document was detached from frame, but the second time it was the frame destruction what caused the objects to be cleared.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077827</commentid>
    <comment_count>20</comment_count>
      <attachid>248646</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2015-03-17 02:26:16 -0700</bug_when>
    <thetext>Comment on attachment 248646
New patch

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

Looks good

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNode.cpp:73
&gt; +    }

I think it&apos;s worth also to try to load some external resource and reload it multiple times as the code paths are different that starting new loads.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp:67
&gt; +    // Test /WebKitDOMNode/dom-cache is an exception, because it&apos;s called twice, so

trice right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077856</commentid>
    <comment_count>21</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-03-17 04:09:30 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; Comment on attachment 248646 [details]
&gt; New patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=248646&amp;action=review
&gt; 
&gt; Looks good

Thanks.

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestDOMNode.cpp:73
&gt; &gt; +    }
&gt; 
&gt; I think it&apos;s worth also to try to load some external resource and reload it
&gt; multiple times as the code paths are different that starting new loads.

Not easy in this case, but even if the code path is not exactly the same, the global object is detached from frame on reload as well, so there&apos;s no difference.

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/WebProcessTest.cpp:67
&gt; &gt; +    // Test /WebKitDOMNode/dom-cache is an exception, because it&apos;s called twice, so
&gt; 
&gt; trice right?

Right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1077857</commentid>
    <comment_count>22</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-03-17 04:10:57 -0700</bug_when>
    <thetext>Committed r181631: &lt;http://trac.webkit.org/changeset/181631&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083343</commentid>
    <comment_count>23</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-04-07 10:46:12 -0700</bug_when>
    <thetext>Milan, I&apos;ve just backported this to 2.4 branch, see http://trac.webkit.org/changeset/182479. With a slightly modified version of your test case (manually unreffing the transfer full objects) I get no leaks:

# dump_leaked_pointers: leaked 0 pointers

Please, try it out to confirm it works as expected for you in evolution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083349</commentid>
    <comment_count>24</comment_count>
      <attachid>250277</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2015-04-07 10:54:01 -0700</bug_when>
    <thetext>Created attachment 250277
Fix test case

This is the patch required for wk-leaks.c, FWIW.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083581</commentid>
    <comment_count>25</comment_count>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2015-04-08 02:30:07 -0700</bug_when>
    <thetext>Thanks. I&apos;ve got webkitgtk3 2.4.8 as patched in Fedora [1] and applied on top of it your changeset. When I run cvurrent git master of evolution (at git commit 6668154), then it crashes with this backtrace: 

#0  0x00007ffff1018668 in g_type_check_instance_is_fundamentally_a (type_instance=0x5337f20, fundamental_type=80) at gtype.c:4029
#1  0x00007ffff0ffebc4 in g_object_unref (_object=0x5337f20) at gobject.c:3067
#2  0x00007ffff4ad3de8 in WebKit::DOMObjectCacheFrameObserver::DOMWindowObserver::willDetachGlobalObjectFromFrame() () from /build/local/lib/libwebkitgtk-3.0.so.0
#3  0x00007ffff42e1db2 in WebCore::DOMWindow::willDetachDocumentFromFrame() () from /build/local/lib/libwebkitgtk-3.0.so.0
#4  0x00007ffff3ef307e in WebCore::Document::prepareForDestruction() () from /build/local/lib/libwebkitgtk-3.0.so.0
#5  0x00007ffff43021cd in WebCore::Frame::setView(WTF::PassRefPtr&lt;WebCore::FrameView&gt;) () from /build/local/lib/libwebkitgtk-3.0.so.0
#6  0x00007ffff4304fdb in WebCore::Frame::createView(WebCore::IntSize const&amp;, WebCore::Color const&amp;, bool, WebCore::IntSize const&amp;, WebCore::IntRect const&amp;, bool, WebCore::ScrollbarMode, bool, WebCore::ScrollbarMode, bool) ()
   from /build/local/lib/libwebkitgtk-3.0.so.0
#7  0x00007ffff3bccf81 in WebKit::FrameLoaderClient::transitionToCommittedForNewPage() () from /build/local/lib/libwebkitgtk-3.0.so.0
#8  0x00007ffff4261359 in WebCore::FrameLoader::transitionToCommitted(WebCore::CachedPage*) () from /build/local/lib/libwebkitgtk-3.0.so.0
#9  0x00007ffff4262ee7 in WebCore::FrameLoader::commitProvisionalLoad() () from /build/local/lib/libwebkitgtk-3.0.so.0
#10 0x00007ffff424a75a in WebCore::DocumentLoader::commitLoad(char const*, int) () from /build/local/lib/libwebkitgtk-3.0.so.0
#11 0x00007ffff424b810 in WebCore::DocumentLoader::continueAfterContentPolicy(WebCore::PolicyAction) () from /build/local/lib/libwebkitgtk-3.0.so.0
#12 0x00007ffff424ea07 in WebCore::DocumentLoader::responseReceived(WebCore::CachedResource*, WebCore::ResourceResponse const&amp;) () from /build/local/lib/libwebkitgtk-3.0.so.0
#13 0x00007ffff4247ed7 in WebCore::DocumentLoader::handleSubstituteDataLoadNow(WebCore::Timer&lt;WebCore::DocumentLoader&gt;*) () from /build/local/lib/libwebkitgtk-3.0.so.0
#14 0x00007ffff3cd8a09 in WebCore::ThreadTimers::sharedTimerFiredInternal() () from /build/local/lib/libwebkitgtk-3.0.so.0
#15 0x00007ffff3cf8682 in WebCore::sharedTimerTimeoutCallback(void*) () from /build/local/lib/libwebkitgtk-3.0.so.0
#16 0x00007ffff0cd5451 in g_timeout_dispatch (source=0x575bce0, callback=0x7ffff3cf8670 &lt;WebCore::sharedTimerTimeoutCallback(void*)&gt;, user_data=0x0) at gmain.c:4545
#17 0x00007ffff0cd3656 in g_main_dispatch (context=0x674460) at gmain.c:3122
#18 0x00007ffff0cd4491 in g_main_context_dispatch (context=0x674460) at gmain.c:3737
#19 0x00007ffff0cd4676 in g_main_context_iterate (context=0x674460, block=1, dispatch=1, self=0x6746d0) at gmain.c:3808
#20 0x00007ffff0cd4a9d in g_main_loop_run (loop=0x4b087f0) at gmain.c:4002
#21 0x00007ffff252cd4c in gtk_main () at gtkmain.c:1219
#22 0x0000000000404f14 in main (argc=1, argv=0x7fffffffdd88) at main.c:638

It also prints runtime warnings right after start at the very same place. We made some leak-hunting fixes on WebKit objects, as it used to be safe to unref (almost) any webkit-returned object and it took care of the DOMObjectCache properly, but it doesn&apos;t seem to be related to this crash, because when I involve valgrind, I get this:

==15478== Invalid read of size 4
==15478==    at 0x86C5DE8: WebKit::DOMObjectCacheFrameObserver::DOMWindowObserver::willDetachGlobalObjectFromFrame() (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x7ED3DB1: WebCore::DOMWindow::willDetachDocumentFromFrame() (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x7AE507D: WebCore::Document::prepareForDestruction() (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x7EF41CC: WebCore::Frame::setView(WTF::PassRefPtr&lt;WebCore::FrameView&gt;) (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x7EF6FDA: WebCore::Frame::createView(WebCore::IntSize const&amp;, WebCore::Color const&amp;, bool, WebCore::IntSize const&amp;, WebCore::IntRect const&amp;, bool, WebCore::ScrollbarMode, bool, WebCore::ScrollbarMode, bool) (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x77BEF80: WebKit::FrameLoaderClient::transitionToCommittedForNewPage() (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x7E53358: WebCore::FrameLoader::transitionToCommitted(WebCore::CachedPage*) (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x7E54EE6: WebCore::FrameLoader::commitProvisionalLoad() (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x7E3C759: WebCore::DocumentLoader::commitLoad(char const*, int) (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x7E3D80F: WebCore::DocumentLoader::continueAfterContentPolicy(WebCore::PolicyAction) (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x7E40A06: WebCore::DocumentLoader::responseReceived(WebCore::CachedResource*, WebCore::ResourceResponse const&amp;) (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x7E39ED6: WebCore::DocumentLoader::handleSubstituteDataLoadNow(WebCore::Timer&lt;WebCore::DocumentLoader&gt;*) (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==  Address 0x150c63f8 is 8 bytes inside a block of size 16 free&apos;d
==15478==    at 0x4A08103: operator delete(void*) (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==15478==    by 0x86C4538: WebKit::DOMObjectCache::forget(void*) (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x875CD24: webkit_dom_node_finalize(_GObject*) (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0xB9EFE87: g_object_unref (gobject.c:3170)
==15478==    by 0x86C5DE7: WebKit::DOMObjectCacheFrameObserver::DOMWindowObserver::willDetachGlobalObjectFromFrame() (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x7ED3DB1: WebCore::DOMWindow::willDetachDocumentFromFrame() (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x7AE507D: WebCore::Document::prepareForDestruction() (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x7EF41CC: WebCore::Frame::setView(WTF::PassRefPtr&lt;WebCore::FrameView&gt;) (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x7EF6FDA: WebCore::Frame::createView(WebCore::IntSize const&amp;, WebCore::Color const&amp;, bool, WebCore::IntSize const&amp;, WebCore::IntRect const&amp;, bool, WebCore::ScrollbarMode, bool, WebCore::ScrollbarMode, bool) (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x77BEF80: WebKit::FrameLoaderClient::transitionToCommittedForNewPage() (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x7E53358: WebCore::FrameLoader::transitionToCommitted(WebCore::CachedPage*) (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)
==15478==    by 0x7E54EE6: WebCore::FrameLoader::commitProvisionalLoad() (in /build/local/lib/libwebkitgtk-3.0.so.0.22.14)

From that I guess I need more than just that single changeset to get &quot;working webkit1&quot; here. Is there a way I can get a pre-release tarball or anything like that, with all the applied fixes, please?

[1] http://pkgs.fedoraproject.org/cgit/webkitgtk3.git/tree/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083582</commentid>
    <comment_count>26</comment_count>
    <who name="Milan Crha">mcrha</who>
    <bug_when>2015-04-08 02:37:44 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; This is the patch required for wk-leaks.c, FWIW.

The patched wk-leaks.c works fine, it&apos;s only the evolution, which crashes and shows the critical warnings as stated in the previous comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1083602</commentid>
    <comment_count>27</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-04-08 07:12:33 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Thanks. I&apos;ve got webkitgtk3 2.4.8 as patched in Fedora [1] and applied on
&gt; top of it your changeset. When I run cvurrent git master of evolution (at
&gt; git commit 6668154), then it crashes with this backtrace: 

See bug #143521</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>246517</attachid>
            <date>2015-02-13 04:50:02 -0800</date>
            <delta_ts>2015-02-18 09:21:47 -0800</delta_ts>
            <desc>wk-leaks.c</desc>
            <filename>wk-leaks.c</filename>
            <type>text/plain</type>
            <size>10075</size>
            <attacher name="Milan Crha">mcrha</attacher>
            
              <data encoding="base64">LyogZ2NjIHdrLWxlYWtzLmMgLWcgLU8wIC1vIHdrLWxlYWtzIGBwa2ctY29uZmlnIC0tY2ZsYWdz
IC0tbGlicyBndGsrLTMuMCB3ZWJraXRndGstMy4wYCAmJiAuL3drLWxlYWtzICovCgojaW5jbHVk
ZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNs
dWRlIDxndGsvZ3RrLmg+CiNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+CgpzdGF0aWMgdm9pZApj
cmVhdGVfYW5kX2FkZF9jc3Nfc3R5bGVfc2hlZXQgKFdlYktpdERPTURvY3VtZW50ICpkb2N1bWVu
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqc3R5bGVfc2hl
ZXRfaWQpCnsKCVdlYktpdERPTUVsZW1lbnQgKnN0eWxlX2VsZW1lbnQ7CgoJc3R5bGVfZWxlbWVu
dCA9IHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0X2VsZW1lbnRfYnlfaWQgKGRvY3VtZW50LCBzdHls
ZV9zaGVldF9pZCk7CgoJaWYgKCFzdHlsZV9lbGVtZW50KSB7CgkJLyogQ3JlYXRlIG5ldyA8c3R5
bGU+IGVsZW1lbnQgKi8KCQlzdHlsZV9lbGVtZW50ID0gd2Via2l0X2RvbV9kb2N1bWVudF9jcmVh
dGVfZWxlbWVudCAoZG9jdW1lbnQsICJzdHlsZSIsIE5VTEwpOwojaWYgV0VCS0lUX0NIRUNLX1ZF
UlNJT04oMiwyLDApICAvKiBYWFggc2hvdWxkIHJlYWxseSBiZSAoMiwxLHNvbWV0aGluZykgKi8K
CQl3ZWJraXRfZG9tX2VsZW1lbnRfc2V0X2lkICgKCQkJV0VCS0lUX0RPTV9FTEVNRU5UIChzdHls
ZV9lbGVtZW50KSwKCQkJc3R5bGVfc2hlZXRfaWQpOwojZWxzZQoJCXdlYmtpdF9kb21faHRtbF9l
bGVtZW50X3NldF9pZCAoCgkJCVdFQktJVF9ET01fSFRNTF9FTEVNRU5UIChzdHlsZV9lbGVtZW50
KSwKCQkJc3R5bGVfc2hlZXRfaWQpOwojZW5kaWYKCQl3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxl
bWVudF9zZXRfbWVkaWEgKAoJCQlXRUJLSVRfRE9NX0hUTUxfU1RZTEVfRUxFTUVOVCAoc3R5bGVf
ZWxlbWVudCksCgkJCSJzY3JlZW4iKTsKCQl3ZWJraXRfZG9tX25vZGVfYXBwZW5kX2NoaWxkICgK
CQkJV0VCS0lUX0RPTV9OT0RFIChzdHlsZV9lbGVtZW50KSwKCQkJLyogV2ViS2l0IGhhY2sgLSB3
ZSBoYXZlIHRvIGluc2VydCBlbXB0eSBUZXh0Tm9kZSBpbnRvIHN0eWxlIGVsZW1lbnQgKi8KCQkJ
V0VCS0lUX0RPTV9OT0RFICh3ZWJraXRfZG9tX2RvY3VtZW50X2NyZWF0ZV90ZXh0X25vZGUgKGRv
Y3VtZW50LCAiIikpLAoJCQlOVUxMKTsKCgkJd2Via2l0X2RvbV9ub2RlX2FwcGVuZF9jaGlsZCAo
CgkJCVdFQktJVF9ET01fTk9ERSAod2Via2l0X2RvbV9kb2N1bWVudF9nZXRfaGVhZCAoZG9jdW1l
bnQpKSwKCQkJV0VCS0lUX0RPTV9OT0RFIChzdHlsZV9lbGVtZW50KSwKCQkJTlVMTCk7Cgl9Cn0K
CnN0YXRpYyB2b2lkCmFkZF9jc3NfcnVsZV9pbnRvX3N0eWxlX3NoZWV0IChXZWJLaXRET01Eb2N1
bWVudCAqZG9jdW1lbnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hh
ciAqc3R5bGVfc2hlZXRfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn
Y2hhciAqc2VsZWN0b3IsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hh
ciAqc3R5bGUpCnsKCVdlYktpdERPTUVsZW1lbnQgKnN0eWxlX2VsZW1lbnQ7CglXZWJLaXRET01T
dHlsZVNoZWV0ICpzaGVldDsKCVdlYktpdERPTUNTU1J1bGVMaXN0ICpydWxlc19saXN0OwoJZ2lu
dCBsZW5ndGgsIGlpOwoKCXN0eWxlX2VsZW1lbnQgPSB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9l
bGVtZW50X2J5X2lkIChkb2N1bWVudCwgc3R5bGVfc2hlZXRfaWQpOwoKCWlmICghc3R5bGVfZWxl
bWVudCkgewoJCWNyZWF0ZV9hbmRfYWRkX2Nzc19zdHlsZV9zaGVldCAoZG9jdW1lbnQsIHN0eWxl
X3NoZWV0X2lkKTsKCQlzdHlsZV9lbGVtZW50ID0gd2Via2l0X2RvbV9kb2N1bWVudF9nZXRfZWxl
bWVudF9ieV9pZCAoZG9jdW1lbnQsIHN0eWxlX3NoZWV0X2lkKTsKCX0KCgkvKiBHZXQgc2hlZXQg
dGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggc3R5bGUgZWxlbWVudCAqLwoJc2hlZXQgPSB3ZWJraXRf
ZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9nZXRfc2hlZXQgKFdFQktJVF9ET01fSFRNTF9TVFlMRV9F
TEVNRU5UIChzdHlsZV9lbGVtZW50KSk7CgoJcnVsZXNfbGlzdCA9IHdlYmtpdF9kb21fY3NzX3N0
eWxlX3NoZWV0X2dldF9jc3NfcnVsZXMgKFdFQktJVF9ET01fQ1NTX1NUWUxFX1NIRUVUIChzaGVl
dCkpOwoJbGVuZ3RoID0gd2Via2l0X2RvbV9jc3NfcnVsZV9saXN0X2dldF9sZW5ndGggKHJ1bGVz
X2xpc3QpOwoKCXByaW50ZiAoIiVzOiBydWxlcyBsaXN0OiVwIHJlZnM6JWQgbGVuZ3RoOiVkXG4i
LCBfX0ZVTkNUSU9OX18sIHJ1bGVzX2xpc3QsICgoR09iamVjdCAqKSBydWxlc19saXN0KS0+cmVm
X2NvdW50LCBsZW5ndGgpOwoKCS8qIENoZWNrIGlmIHJ1bGUgZXhpc3RzICovCglmb3IgKGlpID0g
bGVuZ3RoIC0gMTsgaWkgPj0gMDsgaWktLSkgewoJCVdlYktpdERPTUNTU1J1bGUgKnJ1bGU7CgkJ
Z2NoYXIgKnJ1bGVfdGV4dDsKCQlnY2hhciAqcnVsZV9zZWxlY3RvciwgKnNlbGVjdG9yX2VuZDsK
CgkJcnVsZSA9IHdlYmtpdF9kb21fY3NzX3J1bGVfbGlzdF9pdGVtIChydWxlc19saXN0LCBpaSk7
CgkJcHJpbnRmICgiICAgJXM6IFslZF0gJXAgcmVmczolZFxuIiwgX19GVU5DVElPTl9fLCBpaSwg
cnVsZSwgcnVsZSA/ICgoR09iamVjdCAqKSBydWxlKS0+cmVmX2NvdW50IDogLTEpOwoKCQlpZiAo
IVdFQktJVF9ET01fSVNfQ1NTX1JVTEUgKHJ1bGUpKQoJCQljb250aW51ZTsKCgkJcnVsZV90ZXh0
ID0gd2Via2l0X2RvbV9jc3NfcnVsZV9nZXRfY3NzX3RleHQgKHJ1bGUpOwoKCQkvKiBGaW5kIHRo
ZSBzdGFydCBvZiB0aGUgc3R5bGUgPT4gZW5kIG9mIHRoZSBzZWxlY3RvciAqLwoJCXNlbGVjdG9y
X2VuZCA9IGdfc3Ryc3RyX2xlbiAocnVsZV90ZXh0LCAtMSwgIiB7Iik7CgkJaWYgKCFzZWxlY3Rv
cl9lbmQpIHsKCQkJZ19mcmVlIChydWxlX3RleHQpOwoJCQljb250aW51ZTsKCQl9CgoJCXJ1bGVf
c2VsZWN0b3IgPQoJCQlnX3V0Zjhfc3Vic3RyaW5nICgKCQkJCXJ1bGVfdGV4dCwKCQkJCTAsCgkJ
CQlnX3V0ZjhfcG9pbnRlcl90b19vZmZzZXQgKHJ1bGVfdGV4dCwgc2VsZWN0b3JfZW5kKSk7CgoJ
CWlmIChnX3N0cmNtcDAgKHJ1bGVfc2VsZWN0b3IsIHNlbGVjdG9yKSA9PSAwKSB7CgkJCS8vcHJp
bnRmICgiJXM6IHJlbW92aW5nICclcycvJyVzJ1xuIiwgX19GVU5DVElPTl9fLCBydWxlX3NlbGVj
dG9yLCBydWxlX3RleHQpOwoJCQkvKiBJZiBleGlzdHMgcmVtb3ZlIGl0ICovCgkJCXdlYmtpdF9k
b21fY3NzX3N0eWxlX3NoZWV0X3JlbW92ZV9ydWxlICgKCQkJCVdFQktJVF9ET01fQ1NTX1NUWUxF
X1NIRUVUIChzaGVldCksCgkJCQlpaSwgTlVMTCk7CgkJfQoKCQlnX2ZyZWUgKHJ1bGVfc2VsZWN0
b3IpOwoJCWdfZnJlZSAocnVsZV90ZXh0KTsKCX0KCgkvL3ByaW50ZiAoIiVzOiBhZGRpbmcgJXNc
biIsIF9fRlVOQ1RJT05fXywgc2VsZWN0b3IpOwoJLyogSW5zZXJ0IHRoZSBydWxlIGF0IHRoZSBl
bmQsIHNvIGl0IHdpbGwgb3ZlcnJpZGUgcHJldmlvdXNseSBpbnNlcnRlZCAqLwoJd2Via2l0X2Rv
bV9jc3Nfc3R5bGVfc2hlZXRfYWRkX3J1bGUgKAoJCVdFQktJVF9ET01fQ1NTX1NUWUxFX1NIRUVU
IChzaGVldCksCgkJc2VsZWN0b3IsCgkJc3R5bGUsCgkJd2Via2l0X2RvbV9jc3NfcnVsZV9saXN0
X2dldF9sZW5ndGggKAoJCQl3ZWJraXRfZG9tX2Nzc19zdHlsZV9zaGVldF9nZXRfY3NzX3J1bGVz
ICgKCQkJCVdFQktJVF9ET01fQ1NTX1NUWUxFX1NIRUVUIChzaGVldCkpKSwgLyogSW5kZXggKi8K
CQlOVUxMKTsKfQoKc3RhdGljIHZvaWQKYWRkX2Nzc19ydWxlX2ludG9fc3R5bGVfc2hlZXRfcmVj
dXJzaXZlIChXZWJLaXRET01Eb2N1bWVudCAqZG9jdW1lbnQsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKnN0eWxlX3NoZWV0X2lkLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpzZWxlY3RvciwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqc3R5
bGUpCnsKCVdlYktpdERPTU5vZGVMaXN0ICpmcmFtZXM7CglnaW50IGlpLCBsZW5ndGg7CgoJLyog
QWRkIHJ1bGUgdG8gZG9jdW1lbnQgKi8KCWFkZF9jc3NfcnVsZV9pbnRvX3N0eWxlX3NoZWV0ICgK
CQlkb2N1bWVudCwKCQlzdHlsZV9zaGVldF9pZCwKCQlzZWxlY3RvciwKCQlzdHlsZSk7CgoJZnJh
bWVzID0gd2Via2l0X2RvbV9kb2N1bWVudF9xdWVyeV9zZWxlY3Rvcl9hbGwgKGRvY3VtZW50LCAi
aWZyYW1lIiwgTlVMTCk7CglsZW5ndGggPSB3ZWJraXRfZG9tX25vZGVfbGlzdF9nZXRfbGVuZ3Ro
IChmcmFtZXMpOwoKCS8qIEFkZCBydWxlcyB0byBldmVyeSBzdWIgZG9jdW1lbnQgKi8KCWZvciAo
aWkgPSAwOyBpaSA8IGxlbmd0aDsgaWkrKykgewoJCVdlYktpdERPTURvY3VtZW50ICppZnJhbWVf
ZG9jdW1lbnQ7CgkJV2ViS2l0RE9NTm9kZSAqbm9kZTsKCgkJbm9kZSA9IHdlYmtpdF9kb21fbm9k
ZV9saXN0X2l0ZW0gKGZyYW1lcywgaWkpOwoJCWlmcmFtZV9kb2N1bWVudCA9IHdlYmtpdF9kb21f
aHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfY29udGVudF9kb2N1bWVudCAoCgkJCVdFQktJVF9ET01f
SFRNTF9JRlJBTUVfRUxFTUVOVCAobm9kZSkpOwoKCQlhZGRfY3NzX3J1bGVfaW50b19zdHlsZV9z
aGVldF9yZWN1cnNpdmUgKAoJCQlpZnJhbWVfZG9jdW1lbnQsCgkJCXN0eWxlX3NoZWV0X2lkLAoJ
CQlzZWxlY3RvciwKCQkJc3R5bGUpOwoJfQp9Cgp2b2lkCmVfd2ViX3ZpZXdfYWRkX2Nzc19ydWxl
X2ludG9fc3R5bGVfc2hlZXQgKFdlYktpdFdlYlZpZXcgKnZpZXcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpzdHlsZV9zaGVldF9pZCwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKnNlbGVj
dG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hh
ciAqc3R5bGUpCnsKCWdfcmV0dXJuX2lmX2ZhaWwgKFdFQktJVF9JU19XRUJfVklFVyAodmlldykp
OwoJZ19yZXR1cm5faWZfZmFpbCAoc3R5bGVfc2hlZXRfaWQgJiYgKnN0eWxlX3NoZWV0X2lkKTsK
CWdfcmV0dXJuX2lmX2ZhaWwgKHNlbGVjdG9yICYmICpzZWxlY3Rvcik7CglnX3JldHVybl9pZl9m
YWlsIChzdHlsZSAmJiAqc3R5bGUpOwoKCWFkZF9jc3NfcnVsZV9pbnRvX3N0eWxlX3NoZWV0X3Jl
Y3Vyc2l2ZSAoCgkJd2Via2l0X3dlYl92aWV3X2dldF9kb21fZG9jdW1lbnQgKFdFQktJVF9XRUJf
VklFVyAodmlldykpLAoJCXN0eWxlX3NoZWV0X2lkLAoJCXNlbGVjdG9yLAoJCXN0eWxlKTsKfQoK
c3RhdGljIHZvaWQKdXBkYXRlX3N0eWxlcyAoV2ViS2l0V2ViVmlldyAqd2ViX3ZpZXcpCnsKCS8v
cHJpbnRmICgiJXM6IGJlZm9yZSAtLS0lcy0tLVxuIiwgX19GVU5DVElPTl9fLCB3ZWJraXRfZG9t
X2h0bWxfZWxlbWVudF9nZXRfb3V0ZXJfaHRtbCAoV0VCS0lUX0RPTV9IVE1MX0VMRU1FTlQgKHdl
YmtpdF9kb21fZG9jdW1lbnRfZ2V0X2RvY3VtZW50X2VsZW1lbnQgKHdlYmtpdF93ZWJfdmlld19n
ZXRfZG9tX2RvY3VtZW50ICh3ZWJfdmlldykpKSkpOwoJZV93ZWJfdmlld19hZGRfY3NzX3J1bGVf
aW50b19zdHlsZV9zaGVldCAoCgkJd2ViX3ZpZXcsCgkJIi1lLXdlYi12aWV3LWNzcy1zaGVldCIs
CgkJIi4tZS13ZWItdmlldy1iYWNrZ3JvdW5kLWNvbG9yIiwKCQkiYmFja2dyb3VuZC1jb2xvcjog
I0FBQUFBQTsiKTsKCWVfd2ViX3ZpZXdfYWRkX2Nzc19ydWxlX2ludG9fc3R5bGVfc2hlZXQgKAoJ
CXdlYl92aWV3LAoJCSItZS13ZWItdmlldy1jc3Mtc2hlZXQiLAoJCSIuLWUtd2ViLXZpZXctdGV4
dC1jb2xvciIsCgkJImNvbG9yOiAjRUVEREFBOyIpOwoJLy9wcmludGYgKCIlczogYWZ0ZXIgLS0t
JXMtLS1cblxuIiwgX19GVU5DVElPTl9fLCB3ZWJraXRfZG9tX2h0bWxfZWxlbWVudF9nZXRfb3V0
ZXJfaHRtbCAoV0VCS0lUX0RPTV9IVE1MX0VMRU1FTlQgKHdlYmtpdF9kb21fZG9jdW1lbnRfZ2V0
X2RvY3VtZW50X2VsZW1lbnQgKHdlYmtpdF93ZWJfdmlld19nZXRfZG9tX2RvY3VtZW50ICh3ZWJf
dmlldykpKSkpOwp9CgpzdGF0aWMgdm9pZApub3RpZnlfbG9hZF9zdGF0dXNfY2IgKFdlYktpdFdl
YlZpZXcgKndlYl92aWV3LAoJCSAgICAgICBHUGFyYW1TcGVjICpwYXJhbSwKCQkgICAgICAgZ3Bv
aW50ZXIgdXNlcl9kYXRhKQp7Cgljb25zdCBnY2hhciAqc3RhdHVzOwoJV2ViS2l0TG9hZFN0YXR1
cyBsb2FkX3N0YXR1cyA9IHdlYmtpdF93ZWJfdmlld19nZXRfbG9hZF9zdGF0dXMgKHdlYl92aWV3
KTsKCglpZiAobG9hZF9zdGF0dXMgPT0gV0VCS0lUX0xPQURfUFJPVklTSU9OQUwpCgkJc3RhdHVz
ID0gIldFQktJVF9MT0FEX1BST1ZJU0lPTkFMIjsKCWVsc2UgaWYgKGxvYWRfc3RhdHVzID09IFdF
QktJVF9MT0FEX0NPTU1JVFRFRCkKCQlzdGF0dXMgPSAiV0VCS0lUX0xPQURfQ09NTUlUVEVEIjsK
CWVsc2UgaWYgKGxvYWRfc3RhdHVzID09IFdFQktJVF9MT0FEX0ZJTklTSEVEKQoJCXN0YXR1cyA9
ICJXRUJLSVRfTE9BRF9GSU5JU0hFRCI7CgllbHNlIGlmIChsb2FkX3N0YXR1cyA9PSBXRUJLSVRf
TE9BRF9GSVJTVF9WSVNVQUxMWV9OT05fRU1QVFlfTEFZT1VUKQoJCXN0YXR1cyA9ICJXRUJLSVRf
TE9BRF9GSVJTVF9WSVNVQUxMWV9OT05fRU1QVFlfTEFZT1VUIjsKCWVsc2UgaWYgKGxvYWRfc3Rh
dHVzID09IFdFQktJVF9MT0FEX0ZBSUxFRCkKCQlzdGF0dXMgPSAiV0VCS0lUX0xPQURfRkFJTEVE
IjsKCWVsc2UKCQlzdGF0dXMgPSAiPz8iOwoKCXByaW50ZiAoIiVzOiB3ZWJ2aWV3OiVwIHN0YXR1
czolc1xuIiwgX19GVU5DVElPTl9fLCB3ZWJfdmlldywgc3RhdHVzKTsKCglpZiAobG9hZF9zdGF0
dXMgPT0gV0VCS0lUX0xPQURfRklOSVNIRUQpIHsKCQllX3dlYl92aWV3X2FkZF9jc3NfcnVsZV9p
bnRvX3N0eWxlX3NoZWV0ICgKCQkJd2ViX3ZpZXcsCgkJCSItZS13ZWItdmlldy1jc3Mtc2hlZXQi
LAoJCQkiLi1YWFgiLAoJCQkiY29sb3I6ICMwMEREQUE7Iik7CgkJdXBkYXRlX3N0eWxlcyAod2Vi
X3ZpZXcpOwoJfQp9CgpzdGF0aWMgdm9pZAp3ZWJfdmlld19pbml0X3dlYl9zZXR0aW5ncyAoV2Vi
S2l0V2ViVmlldyAqd2ViX3ZpZXcpCnsKCVdlYktpdFdlYlNldHRpbmdzICp3ZWJfc2V0dGluZ3M7
CglHT2JqZWN0Q2xhc3MgKmNsYXNzOwoJR1BhcmFtU3BlYyAqcHNwZWM7CgoJd2ViX3NldHRpbmdz
ID0gd2Via2l0X3dlYl9zZXR0aW5nc19uZXcgKCk7CgoJZ19vYmplY3Rfc2V0ICgKCQlHX09CSkVD
VCAod2ViX3NldHRpbmdzKSwKCQkiZW5hYmxlLWZyYW1lLWZsYXR0ZW5pbmciLCBUUlVFLAoJCSJl
bmFibGUtamF2YS1hcHBsZXQiLCBGQUxTRSwKCQkiZW5hYmxlLWh0bWw1LWRhdGFiYXNlIiwgRkFM
U0UsCgkJImVuYWJsZS1odG1sNS1sb2NhbC1zdG9yYWdlIiwgRkFMU0UsCgkJImVuYWJsZS1vZmZs
aW5lLXdlYi1hcHBsaWNhdGlvbi1jYWNoZSIsIEZBTFNFLAoJCSJlbmFibGUtc2l0ZS1zcGVjaWZp
Yy1xdWlya3MiLCBUUlVFLAoJCSJlbmFibGUtc2NyaXB0cyIsIEZBTFNFLAoJCU5VTEwpOwoKCS8q
IFRoaXMgcHJvcGVydHkgd2FzIGludHJvZHVjZWQgaW4gV2ViS2l0R1RLIDIuMCwKCSAqIHNvIGNo
ZWNrIGZvciBpdCBhbmQgZW5hYmxlIGl0IGlmIGl0J3MgcHJlc2VudC4gKi8KCWNsYXNzID0gR19P
QkpFQ1RfR0VUX0NMQVNTICh3ZWJfc2V0dGluZ3MpOwoJcHNwZWMgPSBnX29iamVjdF9jbGFzc19m
aW5kX3Byb3BlcnR5ICgKCQljbGFzcywgInJlc3BlY3QtaW1hZ2Utb3JpZW50YXRpb24iKTsKCWlm
IChwc3BlYyAhPSBOVUxMKSB7CgkJZ19vYmplY3Rfc2V0ICgKCQkJR19PQkpFQ1QgKHdlYl9zZXR0
aW5ncyksCgkJCXBzcGVjLT5uYW1lLCBUUlVFLCBOVUxMKTsKCX0KCglnX29iamVjdF9iaW5kX3By
b3BlcnR5ICgKCQl3ZWJfc2V0dGluZ3MsICJlbmFibGUtY2FyZXQtYnJvd3NpbmciLAoJCXdlYl92
aWV3LCAiY2FyZXQtbW9kZSIsCgkJR19CSU5ESU5HX0JJRElSRUNUSU9OQUwgfAoJCUdfQklORElO
R19TWU5DX0NSRUFURSk7CgoJd2Via2l0X3dlYl92aWV3X3NldF9zZXR0aW5ncyAod2ViX3ZpZXcs
IHdlYl9zZXR0aW5ncyk7CgoJZ19vYmplY3RfdW5yZWYgKHdlYl9zZXR0aW5ncyk7Cn0KCnN0YXRp
YyB2b2lkCmxvYWRfcGFnZSAoV2ViS2l0V2ViVmlldyAqd2ViX3ZpZXcpCnsKCXN0YXRpYyBpbnQg
Y291bnRlciA9IDA7CglnY2hhciAqaHRtbDsKCglodG1sID0gZ19zdHJkdXBfcHJpbnRmICgiPGh0
bWw+IgoJCSI8aGVhZD48L2hlYWQ+IgoJCSI8Ym9keSBjbGFzcz1cIi1lLXdlYi12aWV3LWJhY2tn
cm91bmQtY29sb3IgLWUtd2ViLXZpZXctdGV4dC1jb2xvclwiPjxkaXYgY2xhc3M9XCJoZWFkZXJz
IC1lLW1haWwtZm9ybWF0dGVyLWJvZHktY29sb3JcIiBpZD1cIi5tZXNzYWdlLmhlYWRlcnNcIj4i
CgkJIjxkaXYgY2xhc3M9XCJfX2V2by1oaWdobGlnaHRcIj5bJWRdIEJvZHkuLi48L2Rpdj4gYW5k
IGEgc3RhbmRhcmQgPHNwYW4gY2xhc3M9XCItWFhYXCI+dGV4dDwvc3Bhbj4uLi48YnI+PGJyPiIK
CQkiPC9ib2R5PjwvaHRtbD4iLCBjb3VudGVyKyspOwoKCXdlYmtpdF93ZWJfdmlld19sb2FkX3N0
cmluZyAod2ViX3ZpZXcsIGh0bWwsICJ0ZXh0L2h0bWwiLCAidXRmLTgiLCAibG9jYWw6Ly8iKTsK
CglnX2ZyZWUgKGh0bWwpOwp9CgppbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKewoJ
R3RrV2lkZ2V0ICpkaWFsb2csICpjb250YWluZXIsICp3aywgKmJ1dHRvbjsKCVdlYktpdFdlYlZp
ZXcgKndlYl92aWV3OwoKCWd0a19pbml0ICgmYXJnYywgJmFyZ3YpOwoKCWRpYWxvZyA9IGd0a19k
aWFsb2dfbmV3X3dpdGhfYnV0dG9ucyAoInRlc3Qtd2syIiwgTlVMTCwgMCwgIl9DYW5jZWwiLCBH
VEtfUkVTUE9OU0VfQ0FOQ0VMLCBOVUxMKTsKCgljb250YWluZXIgPSBndGtfZGlhbG9nX2dldF9j
b250ZW50X2FyZWEgKEdUS19ESUFMT0cgKGRpYWxvZykpOwoKCXdrID0gd2Via2l0X3dlYl92aWV3
X25ldyAoKTsKCXdlYl92aWV3ID0gV0VCS0lUX1dFQl9WSUVXICh3ayk7Cgl3ZWJfdmlld19pbml0
X3dlYl9zZXR0aW5ncyAod2ViX3ZpZXcpOwoJLy91cGRhdGVfc3R5bGVzICh3ZWJfdmlldyk7CgoJ
Z3RrX2NvbnRhaW5lcl9hZGQgKEdUS19DT05UQUlORVIgKGNvbnRhaW5lciksIHdrKTsKCWdfb2Jq
ZWN0X3NldCAoR19PQkpFQ1QgKHdrKSwKCQkiaGV4cGFuZCIsIFRSVUUsCgkJImhhbGlnbiIsIEdU
S19BTElHTl9GSUxMLAoJCSJ2ZXhwYW5kIiwgVFJVRSwKCQkidmFsaWduIiwgR1RLX0FMSUdOX0ZJ
TEwsCgkJImhlaWdodC1yZXF1ZXN0IiwgMzAsCgkJIndpZHRoLXJlcXVlc3QiLCAzMCwKCQlOVUxM
KTsKCglnX3NpZ25hbF9jb25uZWN0ICh3aywgIm5vdGlmeTo6bG9hZC1zdGF0dXMiLCBHX0NBTExC
QUNLIChub3RpZnlfbG9hZF9zdGF0dXNfY2IpLCBOVUxMKTsKCglsb2FkX3BhZ2UgKHdlYl92aWV3
KTsKCglidXR0b24gPSBndGtfYnV0dG9uX25ld193aXRoX21uZW1vbmljICgiX1VwZGF0ZSBzdHls
ZXMiKTsKCWdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZCAoYnV0dG9uLCAiY2xpY2tlZCIsIEdfQ0FM
TEJBQ0sgKHVwZGF0ZV9zdHlsZXMpLCB3ZWJfdmlldyk7CglndGtfY29udGFpbmVyX2FkZCAoR1RL
X0NPTlRBSU5FUiAoY29udGFpbmVyKSwgYnV0dG9uKTsKCglidXR0b24gPSBndGtfYnV0dG9uX25l
d193aXRoX21uZW1vbmljICgiX0xvYWQgcGFnZSIpOwoJZ19zaWduYWxfY29ubmVjdF9zd2FwcGVk
IChidXR0b24sICJjbGlja2VkIiwgR19DQUxMQkFDSyAobG9hZF9wYWdlKSwgd2ViX3ZpZXcpOwoJ
Z3RrX2NvbnRhaW5lcl9hZGQgKEdUS19DT05UQUlORVIgKGNvbnRhaW5lciksIGJ1dHRvbik7CgoJ
Z3RrX3dpZGdldF9zaG93X2FsbCAoZ3RrX2RpYWxvZ19nZXRfY29udGVudF9hcmVhIChHVEtfRElB
TE9HIChkaWFsb2cpKSk7CglndGtfZGlhbG9nX3J1biAoR1RLX0RJQUxPRyAoZGlhbG9nKSk7CgoJ
Z3RrX3dpZGdldF9kZXN0cm95IChkaWFsb2cpOwoKCXJldHVybiAwOwp9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>246821</attachid>
            <date>2015-02-18 09:21:47 -0800</date>
            <delta_ts>2015-02-18 09:40:38 -0800</delta_ts>
            <desc>wk-leaks.c ][</desc>
            <filename>wk-leaks.c</filename>
            <type>text/plain</type>
            <size>12444</size>
            <attacher name="Milan Crha">mcrha</attacher>
            
              <data encoding="base64">LyogZ2NjIHdrLWxlYWtzLmMgLWcgLU8wIC1vIHdrLWxlYWtzIGBwa2ctY29uZmlnIC0tY2ZsYWdz
IC0tbGlicyBndGsrLTMuMCB3ZWJraXRndGstMy4wYCAmJiAuL3drLWxlYWtzICovCgojaW5jbHVk
ZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNs
dWRlIDxndGsvZ3RrLmg+CiNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+CgpzdGF0aWMgR0hhc2hU
YWJsZSAqa25vd25fcG9pbnRlcnMgPSBOVUxMOwoKc3RhdGljIHZvaWQKa25vd25fcG9pbnRlcl9n
b25lIChncG9pbnRlciB1c2VyX2RhdGEsCgkJICAgIEdPYmplY3QgKm9iamVjdCkKewoJcHJpbnRm
ICgiXHQjICVzOiAlcyAoJXApXG4iLCBfX0ZVTkNUSU9OX18sIChnY2hhciAqKSB1c2VyX2RhdGEs
IG9iamVjdCk7CglnX2hhc2hfdGFibGVfcmVtb3ZlIChrbm93bl9wb2ludGVycywgb2JqZWN0KTsK
fQoKI2RlZmluZSB0cmFja19wb2ludGVyKHB0cikgdHJhY2tfcG9pbnRlcl9mbihwdHIsICNwdHIp
CnN0YXRpYyB2b2lkCnRyYWNrX3BvaW50ZXJfZm4gKGdwb2ludGVyIHB0ciwKCQkgIGNvbnN0IGdj
aGFyICp3aG8pCnsKCWlmICghcHRyKQoJCXJldHVybjsKCglpZiAoIWtub3duX3BvaW50ZXJzKQoJ
CWtub3duX3BvaW50ZXJzID0gZ19oYXNoX3RhYmxlX25ldyAoZ19kaXJlY3RfaGFzaCwgZ19kaXJl
Y3RfZXF1YWwpOwoKCWlmICghZ19oYXNoX3RhYmxlX2NvbnRhaW5zIChrbm93bl9wb2ludGVycywg
cHRyKSkgewoJCWdfaGFzaF90YWJsZV9pbnNlcnQgKGtub3duX3BvaW50ZXJzLCBwdHIsIChncG9p
bnRlcikgd2hvKTsKCQlnX29iamVjdF93ZWFrX3JlZiAocHRyLCBrbm93bl9wb2ludGVyX2dvbmUs
IChncG9pbnRlcikgd2hvKTsKCX0KfQoKc3RhdGljIHZvaWQKZHVtcF9wb2ludGVyX2NiIChncG9p
bnRlciBrZXksCgkJIGdwb2ludGVyIHZhbHVlLAoJCSBncG9pbnRlciB1c2VyX2RhdGEpCnsKCXBy
aW50ZiAoIlx0IyAgICVzICglcCkgcmVmczolZFxuIiwgKGdjaGFyICopIHZhbHVlLCBrZXksICgo
R09iamVjdCAqKSBrZXkpLT5yZWZfY291bnQpOwp9CgpzdGF0aWMgdm9pZApkdW1wX2xlYWtlZF9w
b2ludGVycyAodm9pZCkKewoJaWYgKCFrbm93bl9wb2ludGVycykKCQlyZXR1cm47CgoJcHJpbnRm
ICgiXHQjICVzOiBsZWFrZWQgJWQgcG9pbnRlcnNcbiIsIF9fRlVOQ1RJT05fXywgZ19oYXNoX3Rh
YmxlX3NpemUgKGtub3duX3BvaW50ZXJzKSk7CglnX2hhc2hfdGFibGVfZm9yZWFjaCAoa25vd25f
cG9pbnRlcnMsIGR1bXBfcG9pbnRlcl9jYiwgTlVMTCk7CglnX2hhc2hfdGFibGVfZGVzdHJveSAo
a25vd25fcG9pbnRlcnMpOwp9CgpzdGF0aWMgdm9pZApjcmVhdGVfYW5kX2FkZF9jc3Nfc3R5bGVf
c2hlZXQgKFdlYktpdERPTURvY3VtZW50ICpkb2N1bWVudCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAqc3R5bGVfc2hlZXRfaWQpCnsKCVdlYktpdERPTUVsZW1l
bnQgKnN0eWxlX2VsZW1lbnQ7CgoJc3R5bGVfZWxlbWVudCA9IHdlYmtpdF9kb21fZG9jdW1lbnRf
Z2V0X2VsZW1lbnRfYnlfaWQgKGRvY3VtZW50LCBzdHlsZV9zaGVldF9pZCk7CgoJaWYgKCFzdHls
ZV9lbGVtZW50KSB7CgkJLyogQ3JlYXRlIG5ldyA8c3R5bGU+IGVsZW1lbnQgKi8KCQlzdHlsZV9l
bGVtZW50ID0gd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZWxlbWVudCAoZG9jdW1lbnQsICJz
dHlsZSIsIE5VTEwpOwojaWYgV0VCS0lUX0NIRUNLX1ZFUlNJT04oMiwyLDApICAvKiBYWFggc2hv
dWxkIHJlYWxseSBiZSAoMiwxLHNvbWV0aGluZykgKi8KCQl3ZWJraXRfZG9tX2VsZW1lbnRfc2V0
X2lkICgKCQkJV0VCS0lUX0RPTV9FTEVNRU5UIChzdHlsZV9lbGVtZW50KSwKCQkJc3R5bGVfc2hl
ZXRfaWQpOwojZWxzZQoJCXdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9pZCAoCgkJCVdFQktJ
VF9ET01fSFRNTF9FTEVNRU5UIChzdHlsZV9lbGVtZW50KSwKCQkJc3R5bGVfc2hlZXRfaWQpOwoj
ZW5kaWYKCQl3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9zZXRfbWVkaWEgKAoJCQlXRUJL
SVRfRE9NX0hUTUxfU1RZTEVfRUxFTUVOVCAoc3R5bGVfZWxlbWVudCksCgkJCSJzY3JlZW4iKTsK
CQl3ZWJraXRfZG9tX25vZGVfYXBwZW5kX2NoaWxkICgKCQkJV0VCS0lUX0RPTV9OT0RFIChzdHls
ZV9lbGVtZW50KSwKCQkJLyogV2ViS2l0IGhhY2sgLSB3ZSBoYXZlIHRvIGluc2VydCBlbXB0eSBU
ZXh0Tm9kZSBpbnRvIHN0eWxlIGVsZW1lbnQgKi8KCQkJV0VCS0lUX0RPTV9OT0RFICh3ZWJraXRf
ZG9tX2RvY3VtZW50X2NyZWF0ZV90ZXh0X25vZGUgKGRvY3VtZW50LCAiIikpLAoJCQlOVUxMKTsK
CgkJd2Via2l0X2RvbV9ub2RlX2FwcGVuZF9jaGlsZCAoCgkJCVdFQktJVF9ET01fTk9ERSAod2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfaGVhZCAoZG9jdW1lbnQpKSwKCQkJV0VCS0lUX0RPTV9OT0RF
IChzdHlsZV9lbGVtZW50KSwKCQkJTlVMTCk7Cgl9Cn0KCnN0YXRpYyB2b2lkCmFkZF9jc3NfcnVs
ZV9pbnRvX3N0eWxlX3NoZWV0IChXZWJLaXRET01Eb2N1bWVudCAqZG9jdW1lbnQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqc3R5bGVfc2hlZXRfaWQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqc2VsZWN0b3IsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqc3R5bGUpCnsKCVdlYktpdERPTUVs
ZW1lbnQgKnN0eWxlX2VsZW1lbnQ7CglXZWJLaXRET01TdHlsZVNoZWV0ICpzaGVldDsKCVdlYktp
dERPTUNTU1J1bGVMaXN0ICpydWxlc19saXN0OwoJZ2ludCBsZW5ndGgsIGlpOwoKCXN0eWxlX2Vs
ZW1lbnQgPSB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50X2J5X2lkIChkb2N1bWVudCwg
c3R5bGVfc2hlZXRfaWQpOwoJdHJhY2tfcG9pbnRlciAoc3R5bGVfZWxlbWVudCk7CgoJaWYgKCFz
dHlsZV9lbGVtZW50KSB7CgkJY3JlYXRlX2FuZF9hZGRfY3NzX3N0eWxlX3NoZWV0IChkb2N1bWVu
dCwgc3R5bGVfc2hlZXRfaWQpOwoJCXN0eWxlX2VsZW1lbnQgPSB3ZWJraXRfZG9tX2RvY3VtZW50
X2dldF9lbGVtZW50X2J5X2lkIChkb2N1bWVudCwgc3R5bGVfc2hlZXRfaWQpOwoJfQoKCS8qIEdl
dCBzaGVldCB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCBzdHlsZSBlbGVtZW50ICovCglzaGVldCA9
IHdlYmtpdF9kb21faHRtbF9zdHlsZV9lbGVtZW50X2dldF9zaGVldCAoV0VCS0lUX0RPTV9IVE1M
X1NUWUxFX0VMRU1FTlQgKHN0eWxlX2VsZW1lbnQpKTsKCXRyYWNrX3BvaW50ZXIgKHNoZWV0KTsK
CglydWxlc19saXN0ID0gd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfZ2V0X2Nzc19ydWxlcyAo
V0VCS0lUX0RPTV9DU1NfU1RZTEVfU0hFRVQgKHNoZWV0KSk7Cgl0cmFja19wb2ludGVyIChydWxl
c19saXN0KTsKCWxlbmd0aCA9IHdlYmtpdF9kb21fY3NzX3J1bGVfbGlzdF9nZXRfbGVuZ3RoIChy
dWxlc19saXN0KTsKCglwcmludGYgKCIlczogcnVsZXMgbGlzdDolcCByZWZzOiVkIGxlbmd0aDol
ZFxuIiwgX19GVU5DVElPTl9fLCBydWxlc19saXN0LCAoKEdPYmplY3QgKikgcnVsZXNfbGlzdCkt
PnJlZl9jb3VudCwgbGVuZ3RoKTsKCgkvKiBDaGVjayBpZiBydWxlIGV4aXN0cyAqLwoJZm9yIChp
aSA9IGxlbmd0aCAtIDE7IGlpID49IDA7IGlpLS0pIHsKCQlXZWJLaXRET01DU1NSdWxlICpydWxl
OwoJCWdjaGFyICpydWxlX3RleHQ7CgkJZ2NoYXIgKnJ1bGVfc2VsZWN0b3IsICpzZWxlY3Rvcl9l
bmQ7CgoJCXJ1bGUgPSB3ZWJraXRfZG9tX2Nzc19ydWxlX2xpc3RfaXRlbSAocnVsZXNfbGlzdCwg
aWkpOwoJCXRyYWNrX3BvaW50ZXIgKHJ1bGUpOwoJCXByaW50ZiAoIiAgICVzOiBbJWRdICVwIHJl
ZnM6JWRcbiIsIF9fRlVOQ1RJT05fXywgaWksIHJ1bGUsIHJ1bGUgPyAoKEdPYmplY3QgKikgcnVs
ZSktPnJlZl9jb3VudCA6IC0xKTsKCgkJaWYgKCFXRUJLSVRfRE9NX0lTX0NTU19SVUxFIChydWxl
KSkKCQkJY29udGludWU7CgoJCXJ1bGVfdGV4dCA9IHdlYmtpdF9kb21fY3NzX3J1bGVfZ2V0X2Nz
c190ZXh0IChydWxlKTsKCgkJLyogRmluZCB0aGUgc3RhcnQgb2YgdGhlIHN0eWxlID0+IGVuZCBv
ZiB0aGUgc2VsZWN0b3IgKi8KCQlzZWxlY3Rvcl9lbmQgPSBnX3N0cnN0cl9sZW4gKHJ1bGVfdGV4
dCwgLTEsICIgeyIpOwoJCWlmICghc2VsZWN0b3JfZW5kKSB7CgkJCWdfZnJlZSAocnVsZV90ZXh0
KTsKCQkJY29udGludWU7CgkJfQoKCQlydWxlX3NlbGVjdG9yID0KCQkJZ191dGY4X3N1YnN0cmlu
ZyAoCgkJCQlydWxlX3RleHQsCgkJCQkwLAoJCQkJZ191dGY4X3BvaW50ZXJfdG9fb2Zmc2V0IChy
dWxlX3RleHQsIHNlbGVjdG9yX2VuZCkpOwoKCQlpZiAoZ19zdHJjbXAwIChydWxlX3NlbGVjdG9y
LCBzZWxlY3RvcikgPT0gMCkgewoJCQkvL3ByaW50ZiAoIiVzOiByZW1vdmluZyAnJXMnLyclcydc
biIsIF9fRlVOQ1RJT05fXywgcnVsZV9zZWxlY3RvciwgcnVsZV90ZXh0KTsKCQkJLyogSWYgZXhp
c3RzIHJlbW92ZSBpdCAqLwoJCQl3ZWJraXRfZG9tX2Nzc19zdHlsZV9zaGVldF9yZW1vdmVfcnVs
ZSAoCgkJCQlXRUJLSVRfRE9NX0NTU19TVFlMRV9TSEVFVCAoc2hlZXQpLAoJCQkJaWksIE5VTEwp
OwoJCX0KCgkJZ19mcmVlIChydWxlX3NlbGVjdG9yKTsKCQlnX2ZyZWUgKHJ1bGVfdGV4dCk7Cgl9
CgoJZ19vYmplY3RfdW5yZWYgKHJ1bGVzX2xpc3QpOwoKCS8vcHJpbnRmICgiJXM6IGFkZGluZyAl
c1xuIiwgX19GVU5DVElPTl9fLCBzZWxlY3Rvcik7CgkvKiBJbnNlcnQgdGhlIHJ1bGUgYXQgdGhl
IGVuZCwgc28gaXQgd2lsbCBvdmVycmlkZSBwcmV2aW91c2x5IGluc2VydGVkICovCgl3ZWJraXRf
ZG9tX2Nzc19zdHlsZV9zaGVldF9hZGRfcnVsZSAoCgkJV0VCS0lUX0RPTV9DU1NfU1RZTEVfU0hF
RVQgKHNoZWV0KSwKCQlzZWxlY3RvciwKCQlzdHlsZSwKCQl3ZWJraXRfZG9tX2Nzc19ydWxlX2xp
c3RfZ2V0X2xlbmd0aCAoCgkJCXdlYmtpdF9kb21fY3NzX3N0eWxlX3NoZWV0X2dldF9jc3NfcnVs
ZXMgKAoJCQkJV0VCS0lUX0RPTV9DU1NfU1RZTEVfU0hFRVQgKHNoZWV0KSkpLCAvKiBJbmRleCAq
LwoJCU5VTEwpOwp9CgpzdGF0aWMgdm9pZAphZGRfY3NzX3J1bGVfaW50b19zdHlsZV9zaGVldF9y
ZWN1cnNpdmUgKFdlYktpdERPTURvY3VtZW50ICpkb2N1bWVudCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqc3R5bGVfc2hlZXRfaWQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKnNlbGVjdG9y
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpz
dHlsZSkKewoJV2ViS2l0RE9NTm9kZUxpc3QgKmZyYW1lczsKCWdpbnQgaWksIGxlbmd0aDsKCgkv
KiBBZGQgcnVsZSB0byBkb2N1bWVudCAqLwoJYWRkX2Nzc19ydWxlX2ludG9fc3R5bGVfc2hlZXQg
KAoJCWRvY3VtZW50LAoJCXN0eWxlX3NoZWV0X2lkLAoJCXNlbGVjdG9yLAoJCXN0eWxlKTsKCglm
cmFtZXMgPSB3ZWJraXRfZG9tX2RvY3VtZW50X3F1ZXJ5X3NlbGVjdG9yX2FsbCAoZG9jdW1lbnQs
ICJpZnJhbWUiLCBOVUxMKTsKCXRyYWNrX3BvaW50ZXIgKGZyYW1lcyk7CglsZW5ndGggPSB3ZWJr
aXRfZG9tX25vZGVfbGlzdF9nZXRfbGVuZ3RoIChmcmFtZXMpOwoKCS8qIEFkZCBydWxlcyB0byBl
dmVyeSBzdWIgZG9jdW1lbnQgKi8KCWZvciAoaWkgPSAwOyBpaSA8IGxlbmd0aDsgaWkrKykgewoJ
CVdlYktpdERPTURvY3VtZW50ICppZnJhbWVfZG9jdW1lbnQ7CgkJV2ViS2l0RE9NTm9kZSAqbm9k
ZTsKCgkJbm9kZSA9IHdlYmtpdF9kb21fbm9kZV9saXN0X2l0ZW0gKGZyYW1lcywgaWkpOwoJCXRy
YWNrX3BvaW50ZXIgKG5vZGUpOwoJCWlmcmFtZV9kb2N1bWVudCA9IHdlYmtpdF9kb21faHRtbF9p
ZnJhbWVfZWxlbWVudF9nZXRfY29udGVudF9kb2N1bWVudCAoCgkJCVdFQktJVF9ET01fSFRNTF9J
RlJBTUVfRUxFTUVOVCAobm9kZSkpOwoJCXRyYWNrX3BvaW50ZXIgKGlmcmFtZV9kb2N1bWVudCk7
CgoJCWFkZF9jc3NfcnVsZV9pbnRvX3N0eWxlX3NoZWV0X3JlY3Vyc2l2ZSAoCgkJCWlmcmFtZV9k
b2N1bWVudCwKCQkJc3R5bGVfc2hlZXRfaWQsCgkJCXNlbGVjdG9yLAoJCQlzdHlsZSk7Cgl9Cn0K
CnZvaWQKZV93ZWJfdmlld19hZGRfY3NzX3J1bGVfaW50b19zdHlsZV9zaGVldCAoV2ViS2l0V2Vi
VmlldyAqdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgZ2NoYXIgKnN0eWxlX3NoZWV0X2lkLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAqc2VsZWN0b3IsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpzdHlsZSkKewoJZ3BvaW50ZXIgZG9tX2Rv
Y3VtZW50OwoKCWdfcmV0dXJuX2lmX2ZhaWwgKFdFQktJVF9JU19XRUJfVklFVyAodmlldykpOwoJ
Z19yZXR1cm5faWZfZmFpbCAoc3R5bGVfc2hlZXRfaWQgJiYgKnN0eWxlX3NoZWV0X2lkKTsKCWdf
cmV0dXJuX2lmX2ZhaWwgKHNlbGVjdG9yICYmICpzZWxlY3Rvcik7CglnX3JldHVybl9pZl9mYWls
IChzdHlsZSAmJiAqc3R5bGUpOwoKCWRvbV9kb2N1bWVudCA9IHdlYmtpdF93ZWJfdmlld19nZXRf
ZG9tX2RvY3VtZW50IChXRUJLSVRfV0VCX1ZJRVcgKHZpZXcpKTsKCXRyYWNrX3BvaW50ZXIgKGRv
bV9kb2N1bWVudCk7CglhZGRfY3NzX3J1bGVfaW50b19zdHlsZV9zaGVldF9yZWN1cnNpdmUgKAoJ
CWRvbV9kb2N1bWVudCwKCQlzdHlsZV9zaGVldF9pZCwKCQlzZWxlY3RvciwKCQlzdHlsZSk7Cn0K
CnN0YXRpYyB2b2lkCnVwZGF0ZV9zdHlsZXMgKFdlYktpdFdlYlZpZXcgKndlYl92aWV3KQp7Cgkv
L3ByaW50ZiAoIiVzOiBiZWZvcmUgLS0tJXMtLS1cbiIsIF9fRlVOQ1RJT05fXywgd2Via2l0X2Rv
bV9odG1sX2VsZW1lbnRfZ2V0X291dGVyX2h0bWwgKFdFQktJVF9ET01fSFRNTF9FTEVNRU5UICh3
ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kb2N1bWVudF9lbGVtZW50ICh3ZWJraXRfd2ViX3ZpZXdf
Z2V0X2RvbV9kb2N1bWVudCAod2ViX3ZpZXcpKSkpKTsKCWVfd2ViX3ZpZXdfYWRkX2Nzc19ydWxl
X2ludG9fc3R5bGVfc2hlZXQgKAoJCXdlYl92aWV3LAoJCSItZS13ZWItdmlldy1jc3Mtc2hlZXQi
LAoJCSIuLWUtd2ViLXZpZXctYmFja2dyb3VuZC1jb2xvciIsCgkJImJhY2tncm91bmQtY29sb3I6
ICNBQUFBQUE7Iik7CgllX3dlYl92aWV3X2FkZF9jc3NfcnVsZV9pbnRvX3N0eWxlX3NoZWV0ICgK
CQl3ZWJfdmlldywKCQkiLWUtd2ViLXZpZXctY3NzLXNoZWV0IiwKCQkiLi1lLXdlYi12aWV3LXRl
eHQtY29sb3IiLAoJCSJjb2xvcjogI0VFRERBQTsiKTsKCS8vcHJpbnRmICgiJXM6IGFmdGVyIC0t
LSVzLS0tXG5cbiIsIF9fRlVOQ1RJT05fXywgd2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X291
dGVyX2h0bWwgKFdFQktJVF9ET01fSFRNTF9FTEVNRU5UICh3ZWJraXRfZG9tX2RvY3VtZW50X2dl
dF9kb2N1bWVudF9lbGVtZW50ICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2RvbV9kb2N1bWVudCAod2Vi
X3ZpZXcpKSkpKTsKfQoKc3RhdGljIHZvaWQKbm90aWZ5X2xvYWRfc3RhdHVzX2NiIChXZWJLaXRX
ZWJWaWV3ICp3ZWJfdmlldywKCQkgICAgICAgR1BhcmFtU3BlYyAqcGFyYW0sCgkJICAgICAgIGdw
b2ludGVyIHVzZXJfZGF0YSkKewoJc3RhdGljIEdUaW1lciAqdGltZXIgPSBOVUxMOwoJY29uc3Qg
Z2NoYXIgKnN0YXR1czsKCVdlYktpdExvYWRTdGF0dXMgbG9hZF9zdGF0dXMgPSB3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X2xvYWRfc3RhdHVzICh3ZWJfdmlldyk7CgoJaWYgKCF0aW1lcikKCQl0aW1lciA9
IGdfdGltZXJfbmV3ICgpOwoKCWlmIChsb2FkX3N0YXR1cyA9PSBXRUJLSVRfTE9BRF9QUk9WSVNJ
T05BTCkgewoJCXN0YXR1cyA9ICJXRUJLSVRfTE9BRF9QUk9WSVNJT05BTCI7CgkJZ190aW1lcl9z
dGFydCAodGltZXIpOwoJfSBlbHNlIGlmIChsb2FkX3N0YXR1cyA9PSBXRUJLSVRfTE9BRF9DT01N
SVRURUQpCgkJc3RhdHVzID0gIldFQktJVF9MT0FEX0NPTU1JVFRFRCI7CgllbHNlIGlmIChsb2Fk
X3N0YXR1cyA9PSBXRUJLSVRfTE9BRF9GSU5JU0hFRCkKCQlzdGF0dXMgPSAiV0VCS0lUX0xPQURf
RklOSVNIRUQiOwoJZWxzZSBpZiAobG9hZF9zdGF0dXMgPT0gV0VCS0lUX0xPQURfRklSU1RfVklT
VUFMTFlfTk9OX0VNUFRZX0xBWU9VVCkKCQlzdGF0dXMgPSAiV0VCS0lUX0xPQURfRklSU1RfVklT
VUFMTFlfTk9OX0VNUFRZX0xBWU9VVCI7CgllbHNlIGlmIChsb2FkX3N0YXR1cyA9PSBXRUJLSVRf
TE9BRF9GQUlMRUQpCgkJc3RhdHVzID0gIldFQktJVF9MT0FEX0ZBSUxFRCI7CgllbHNlCgkJc3Rh
dHVzID0gIj8/IjsKCglpZiAobG9hZF9zdGF0dXMgPT0gV0VCS0lUX0xPQURfRklOSVNIRUQgJiYg
dGltZXIpIHsKCQlwcmludGYgKCIlczogd2VidmlldzolcCBzdGF0dXM6JXMgZWxhcHNlZDolZlxu
IiwgX19GVU5DVElPTl9fLCB3ZWJfdmlldywgc3RhdHVzLCBnX3RpbWVyX2VsYXBzZWQgKHRpbWVy
LCBOVUxMKSk7CgkJZ190aW1lcl9kZXN0cm95ICh0aW1lcik7CgkJdGltZXIgPSBOVUxMOwoJfSBl
bHNlIHsKCQlwcmludGYgKCIlczogd2VidmlldzolcCBzdGF0dXM6JXNcbiIsIF9fRlVOQ1RJT05f
Xywgd2ViX3ZpZXcsIHN0YXR1cyk7Cgl9CgoJaWYgKGxvYWRfc3RhdHVzID09IFdFQktJVF9MT0FE
X0ZJTklTSEVEKSB7CgkJZV93ZWJfdmlld19hZGRfY3NzX3J1bGVfaW50b19zdHlsZV9zaGVldCAo
CgkJCXdlYl92aWV3LAoJCQkiLWUtd2ViLXZpZXctY3NzLXNoZWV0IiwKCQkJIi4tWFhYIiwKCQkJ
ImNvbG9yOiAjMDBEREFBOyIpOwoJCXVwZGF0ZV9zdHlsZXMgKHdlYl92aWV3KTsKCX0KfQoKc3Rh
dGljIHZvaWQKd2ViX3ZpZXdfaW5pdF93ZWJfc2V0dGluZ3MgKFdlYktpdFdlYlZpZXcgKndlYl92
aWV3KQp7CglXZWJLaXRXZWJTZXR0aW5ncyAqd2ViX3NldHRpbmdzOwoJR09iamVjdENsYXNzICpj
bGFzczsKCUdQYXJhbVNwZWMgKnBzcGVjOwoKCXdlYl9zZXR0aW5ncyA9IHdlYmtpdF93ZWJfc2V0
dGluZ3NfbmV3ICgpOwoKCWdfb2JqZWN0X3NldCAoCgkJR19PQkpFQ1QgKHdlYl9zZXR0aW5ncyks
CgkJImVuYWJsZS1mcmFtZS1mbGF0dGVuaW5nIiwgVFJVRSwKCQkiZW5hYmxlLWphdmEtYXBwbGV0
IiwgRkFMU0UsCgkJImVuYWJsZS1odG1sNS1kYXRhYmFzZSIsIEZBTFNFLAoJCSJlbmFibGUtaHRt
bDUtbG9jYWwtc3RvcmFnZSIsIEZBTFNFLAoJCSJlbmFibGUtb2ZmbGluZS13ZWItYXBwbGljYXRp
b24tY2FjaGUiLCBGQUxTRSwKCQkiZW5hYmxlLXNpdGUtc3BlY2lmaWMtcXVpcmtzIiwgVFJVRSwK
CQkiZW5hYmxlLXNjcmlwdHMiLCBGQUxTRSwKCQlOVUxMKTsKCgkvKiBUaGlzIHByb3BlcnR5IHdh
cyBpbnRyb2R1Y2VkIGluIFdlYktpdEdUSyAyLjAsCgkgKiBzbyBjaGVjayBmb3IgaXQgYW5kIGVu
YWJsZSBpdCBpZiBpdCdzIHByZXNlbnQuICovCgljbGFzcyA9IEdfT0JKRUNUX0dFVF9DTEFTUyAo
d2ViX3NldHRpbmdzKTsKCXBzcGVjID0gZ19vYmplY3RfY2xhc3NfZmluZF9wcm9wZXJ0eSAoCgkJ
Y2xhc3MsICJyZXNwZWN0LWltYWdlLW9yaWVudGF0aW9uIik7CglpZiAocHNwZWMgIT0gTlVMTCkg
ewoJCWdfb2JqZWN0X3NldCAoCgkJCUdfT0JKRUNUICh3ZWJfc2V0dGluZ3MpLAoJCQlwc3BlYy0+
bmFtZSwgVFJVRSwgTlVMTCk7Cgl9CgoJZ19vYmplY3RfYmluZF9wcm9wZXJ0eSAoCgkJd2ViX3Nl
dHRpbmdzLCAiZW5hYmxlLWNhcmV0LWJyb3dzaW5nIiwKCQl3ZWJfdmlldywgImNhcmV0LW1vZGUi
LAoJCUdfQklORElOR19CSURJUkVDVElPTkFMIHwKCQlHX0JJTkRJTkdfU1lOQ19DUkVBVEUpOwoK
CXdlYmtpdF93ZWJfdmlld19zZXRfc2V0dGluZ3MgKHdlYl92aWV3LCB3ZWJfc2V0dGluZ3MpOwoK
CWdfb2JqZWN0X3VucmVmICh3ZWJfc2V0dGluZ3MpOwp9CgpzdGF0aWMgdm9pZApsb2FkX3BhZ2Ug
KFdlYktpdFdlYlZpZXcgKndlYl92aWV3KQp7CglzdGF0aWMgaW50IGNvdW50ZXIgPSAwOwoJZ2No
YXIgKmh0bWw7CgoJaHRtbCA9IGdfc3RyZHVwX3ByaW50ZiAoIjxodG1sPiIKCQkiPGhlYWQ+PC9o
ZWFkPiIKCQkiPGJvZHkgY2xhc3M9XCItZS13ZWItdmlldy1iYWNrZ3JvdW5kLWNvbG9yIC1lLXdl
Yi12aWV3LXRleHQtY29sb3JcIj48ZGl2IGNsYXNzPVwiaGVhZGVycyAtZS1tYWlsLWZvcm1hdHRl
ci1ib2R5LWNvbG9yXCIgaWQ9XCIubWVzc2FnZS5oZWFkZXJzXCI+IgoJCSI8ZGl2IGNsYXNzPVwi
X19ldm8taGlnaGxpZ2h0XCI+WyVkXSBCb2R5Li4uPC9kaXY+IGFuZCBhIHN0YW5kYXJkIDxzcGFu
IGNsYXNzPVwiLVhYWFwiPnRleHQ8L3NwYW4+Li4uPGJyPjxicj4iCgkJIjwvYm9keT48L2h0bWw+
IiwgY291bnRlcisrKTsKCgl3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcgKHdlYl92aWV3LCBo
dG1sLCAidGV4dC9odG1sIiwgInV0Zi04IiwgImxvY2FsOi8vIik7CgoJZ19mcmVlIChodG1sKTsK
fQoKc3RhdGljIHZvaWQKbG9hZF9hX2h0bWxfY2IgKFdlYktpdFdlYlZpZXcgKndlYl92aWV3KQp7
CglnY2hhciAqaHRtbCA9IE5VTEw7CgoJZ19yZXR1cm5faWZfZmFpbCAoZ19maWxlX2dldF9jb250
ZW50cyAoIi9kYXRhL2RldmVsb3AvbG9jYWwvYS5odG1sIiwgJmh0bWwsIE5VTEwsIE5VTEwpKTsK
Cgl3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcgKHdlYl92aWV3LCBodG1sLCAidGV4dC9odG1s
IiwgInV0Zi04IiwgImxvY2FsOi8vIik7CgoJZ19mcmVlIChodG1sKTsKfQoKaW50IG1haW4gKGlu
dCBhcmdjLCBjaGFyICphcmd2W10pCnsKCUd0a1dpZGdldCAqZGlhbG9nLCAqY29udGFpbmVyLCAq
d2ssICpidXR0b24sICpzdzsKCVdlYktpdFdlYlZpZXcgKndlYl92aWV3OwoKCWd0a19pbml0ICgm
YXJnYywgJmFyZ3YpOwoKCWRpYWxvZyA9IGd0a19kaWFsb2dfbmV3X3dpdGhfYnV0dG9ucyAoIndr
LWxlYWtzIiwgTlVMTCwgMCwgIl9DbG9zZSIsIEdUS19SRVNQT05TRV9DQU5DRUwsIE5VTEwpOwoK
CWNvbnRhaW5lciA9IGd0a19kaWFsb2dfZ2V0X2NvbnRlbnRfYXJlYSAoR1RLX0RJQUxPRyAoZGlh
bG9nKSk7CgoJd2sgPSB3ZWJraXRfd2ViX3ZpZXdfbmV3ICgpOwoJd2ViX3ZpZXcgPSBXRUJLSVRf
V0VCX1ZJRVcgKHdrKTsKCgl0cmFja19wb2ludGVyICh3ZWJfdmlldyk7CgoJd2ViX3ZpZXdfaW5p
dF93ZWJfc2V0dGluZ3MgKHdlYl92aWV3KTsKCS8vdXBkYXRlX3N0eWxlcyAod2ViX3ZpZXcpOwoK
CXN3ID0gZ3RrX3Njcm9sbGVkX3dpbmRvd19uZXcgKE5VTEwsIE5VTEwpOwoJZ3RrX2NvbnRhaW5l
cl9hZGQgKEdUS19DT05UQUlORVIgKHN3KSwgd2spOwoKCWd0a19jb250YWluZXJfYWRkIChHVEtf
Q09OVEFJTkVSIChjb250YWluZXIpLCBzdyk7CglnX29iamVjdF9zZXQgKEdfT0JKRUNUICh3ayks
CgkJImhleHBhbmQiLCBUUlVFLAoJCSJoYWxpZ24iLCBHVEtfQUxJR05fRklMTCwKCQkidmV4cGFu
ZCIsIFRSVUUsCgkJInZhbGlnbiIsIEdUS19BTElHTl9GSUxMLAoJCSJoZWlnaHQtcmVxdWVzdCIs
IDMwLAoJCSJ3aWR0aC1yZXF1ZXN0IiwgMzAsCgkJTlVMTCk7CgoJZ19zaWduYWxfY29ubmVjdCAo
d2ssICJub3RpZnk6OmxvYWQtc3RhdHVzIiwgR19DQUxMQkFDSyAobm90aWZ5X2xvYWRfc3RhdHVz
X2NiKSwgTlVMTCk7CgoJbG9hZF9wYWdlICh3ZWJfdmlldyk7CgoJYnV0dG9uID0gZ3RrX2J1dHRv
bl9uZXdfd2l0aF9tbmVtb25pYyAoIl9VcGRhdGUgc3R5bGVzIik7CglnX3NpZ25hbF9jb25uZWN0
X3N3YXBwZWQgKGJ1dHRvbiwgImNsaWNrZWQiLCBHX0NBTExCQUNLICh1cGRhdGVfc3R5bGVzKSwg
d2ViX3ZpZXcpOwoJZ3RrX2NvbnRhaW5lcl9hZGQgKEdUS19DT05UQUlORVIgKGNvbnRhaW5lciks
IGJ1dHRvbik7CgoJYnV0dG9uID0gZ3RrX2J1dHRvbl9uZXdfd2l0aF9tbmVtb25pYyAoIl9Mb2Fk
IHBhZ2UiKTsKCWdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZCAoYnV0dG9uLCAiY2xpY2tlZCIsIEdf
Q0FMTEJBQ0sgKGxvYWRfcGFnZSksIHdlYl92aWV3KTsKCWd0a19jb250YWluZXJfYWRkIChHVEtf
Q09OVEFJTkVSIChjb250YWluZXIpLCBidXR0b24pOwoKCWJ1dHRvbiA9IGd0a19idXR0b25fbmV3
X3dpdGhfbW5lbW9uaWMgKCJfTG9hZCBhLmh0bWwiKTsKCWdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBl
ZCAoYnV0dG9uLCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0sgKGxvYWRfYV9odG1sX2NiKSwgd2ViX3Zp
ZXcpOwoJZ3RrX2NvbnRhaW5lcl9hZGQgKEdUS19DT05UQUlORVIgKGNvbnRhaW5lciksIGJ1dHRv
bik7CgoJZ3RrX3dpZGdldF9zaG93X2FsbCAoZ3RrX2RpYWxvZ19nZXRfY29udGVudF9hcmVhIChH
VEtfRElBTE9HIChkaWFsb2cpKSk7CglndGtfZGlhbG9nX3J1biAoR1RLX0RJQUxPRyAoZGlhbG9n
KSk7CgoJZ3RrX3dpZGdldF9kZXN0cm95IChkaWFsb2cpOwoJZHVtcF9sZWFrZWRfcG9pbnRlcnMg
KCk7CgoJcmV0dXJuIDA7Cn0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>246823</attachid>
            <date>2015-02-18 09:40:38 -0800</date>
            <delta_ts>2015-02-18 09:40:38 -0800</delta_ts>
            <desc>wk-leaks.c ]I[</desc>
            <filename>wk-leaks.c</filename>
            <type>text/plain</type>
            <size>12339</size>
            <attacher name="Milan Crha">mcrha</attacher>
            
              <data encoding="base64">LyogZ2NjIHdrLWxlYWtzLmMgLWcgLU8wIC1vIHdrLWxlYWtzIGBwa2ctY29uZmlnIC0tY2ZsYWdz
IC0tbGlicyBndGsrLTMuMCB3ZWJraXRndGstMy4wYCAmJiAuL3drLWxlYWtzICovCgojaW5jbHVk
ZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CiNpbmNs
dWRlIDxndGsvZ3RrLmg+CiNpbmNsdWRlIDx3ZWJraXQvd2Via2l0Lmg+CgpzdGF0aWMgR0hhc2hU
YWJsZSAqa25vd25fcG9pbnRlcnMgPSBOVUxMOwoKc3RhdGljIHZvaWQKa25vd25fcG9pbnRlcl9n
b25lIChncG9pbnRlciB1c2VyX2RhdGEsCgkJICAgIEdPYmplY3QgKm9iamVjdCkKewoJcHJpbnRm
ICgiXHQjICVzOiAlcyAoJXApXG4iLCBfX0ZVTkNUSU9OX18sIChnY2hhciAqKSB1c2VyX2RhdGEs
IG9iamVjdCk7CglnX2hhc2hfdGFibGVfcmVtb3ZlIChrbm93bl9wb2ludGVycywgb2JqZWN0KTsK
fQoKI2RlZmluZSB0cmFja19wb2ludGVyKHB0cikgdHJhY2tfcG9pbnRlcl9mbihwdHIsICNwdHIp
CnN0YXRpYyB2b2lkCnRyYWNrX3BvaW50ZXJfZm4gKGdwb2ludGVyIHB0ciwKCQkgIGNvbnN0IGdj
aGFyICp3aG8pCnsKCWlmICghcHRyKQoJCXJldHVybjsKCglpZiAoIWtub3duX3BvaW50ZXJzKQoJ
CWtub3duX3BvaW50ZXJzID0gZ19oYXNoX3RhYmxlX25ldyAoZ19kaXJlY3RfaGFzaCwgZ19kaXJl
Y3RfZXF1YWwpOwoKCWlmICghZ19oYXNoX3RhYmxlX2NvbnRhaW5zIChrbm93bl9wb2ludGVycywg
cHRyKSkgewoJCWdfaGFzaF90YWJsZV9pbnNlcnQgKGtub3duX3BvaW50ZXJzLCBwdHIsIChncG9p
bnRlcikgd2hvKTsKCQlnX29iamVjdF93ZWFrX3JlZiAocHRyLCBrbm93bl9wb2ludGVyX2dvbmUs
IChncG9pbnRlcikgd2hvKTsKCX0KfQoKc3RhdGljIHZvaWQKZHVtcF9wb2ludGVyX2NiIChncG9p
bnRlciBrZXksCgkJIGdwb2ludGVyIHZhbHVlLAoJCSBncG9pbnRlciB1c2VyX2RhdGEpCnsKCXBy
aW50ZiAoIlx0IyAgICVzICglcCkgcmVmczolZFxuIiwgKGdjaGFyICopIHZhbHVlLCBrZXksICgo
R09iamVjdCAqKSBrZXkpLT5yZWZfY291bnQpOwp9CgpzdGF0aWMgdm9pZApkdW1wX2xlYWtlZF9w
b2ludGVycyAodm9pZCkKewoJaWYgKCFrbm93bl9wb2ludGVycykKCQlyZXR1cm47CgoJcHJpbnRm
ICgiXHQjICVzOiBsZWFrZWQgJWQgcG9pbnRlcnNcbiIsIF9fRlVOQ1RJT05fXywgZ19oYXNoX3Rh
YmxlX3NpemUgKGtub3duX3BvaW50ZXJzKSk7CglnX2hhc2hfdGFibGVfZm9yZWFjaCAoa25vd25f
cG9pbnRlcnMsIGR1bXBfcG9pbnRlcl9jYiwgTlVMTCk7CglnX2hhc2hfdGFibGVfZGVzdHJveSAo
a25vd25fcG9pbnRlcnMpOwp9CgpzdGF0aWMgdm9pZApjcmVhdGVfYW5kX2FkZF9jc3Nfc3R5bGVf
c2hlZXQgKFdlYktpdERPTURvY3VtZW50ICpkb2N1bWVudCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAqc3R5bGVfc2hlZXRfaWQpCnsKCVdlYktpdERPTUVsZW1l
bnQgKnN0eWxlX2VsZW1lbnQ7CgoJc3R5bGVfZWxlbWVudCA9IHdlYmtpdF9kb21fZG9jdW1lbnRf
Z2V0X2VsZW1lbnRfYnlfaWQgKGRvY3VtZW50LCBzdHlsZV9zaGVldF9pZCk7CgoJaWYgKCFzdHls
ZV9lbGVtZW50KSB7CgkJLyogQ3JlYXRlIG5ldyA8c3R5bGU+IGVsZW1lbnQgKi8KCQlzdHlsZV9l
bGVtZW50ID0gd2Via2l0X2RvbV9kb2N1bWVudF9jcmVhdGVfZWxlbWVudCAoZG9jdW1lbnQsICJz
dHlsZSIsIE5VTEwpOwojaWYgV0VCS0lUX0NIRUNLX1ZFUlNJT04oMiwyLDApICAvKiBYWFggc2hv
dWxkIHJlYWxseSBiZSAoMiwxLHNvbWV0aGluZykgKi8KCQl3ZWJraXRfZG9tX2VsZW1lbnRfc2V0
X2lkICgKCQkJV0VCS0lUX0RPTV9FTEVNRU5UIChzdHlsZV9lbGVtZW50KSwKCQkJc3R5bGVfc2hl
ZXRfaWQpOwojZWxzZQoJCXdlYmtpdF9kb21faHRtbF9lbGVtZW50X3NldF9pZCAoCgkJCVdFQktJ
VF9ET01fSFRNTF9FTEVNRU5UIChzdHlsZV9lbGVtZW50KSwKCQkJc3R5bGVfc2hlZXRfaWQpOwoj
ZW5kaWYKCQl3ZWJraXRfZG9tX2h0bWxfc3R5bGVfZWxlbWVudF9zZXRfbWVkaWEgKAoJCQlXRUJL
SVRfRE9NX0hUTUxfU1RZTEVfRUxFTUVOVCAoc3R5bGVfZWxlbWVudCksCgkJCSJzY3JlZW4iKTsK
CQl3ZWJraXRfZG9tX25vZGVfYXBwZW5kX2NoaWxkICgKCQkJV0VCS0lUX0RPTV9OT0RFIChzdHls
ZV9lbGVtZW50KSwKCQkJLyogV2ViS2l0IGhhY2sgLSB3ZSBoYXZlIHRvIGluc2VydCBlbXB0eSBU
ZXh0Tm9kZSBpbnRvIHN0eWxlIGVsZW1lbnQgKi8KCQkJV0VCS0lUX0RPTV9OT0RFICh3ZWJraXRf
ZG9tX2RvY3VtZW50X2NyZWF0ZV90ZXh0X25vZGUgKGRvY3VtZW50LCAiIikpLAoJCQlOVUxMKTsK
CgkJd2Via2l0X2RvbV9ub2RlX2FwcGVuZF9jaGlsZCAoCgkJCVdFQktJVF9ET01fTk9ERSAod2Vi
a2l0X2RvbV9kb2N1bWVudF9nZXRfaGVhZCAoZG9jdW1lbnQpKSwKCQkJV0VCS0lUX0RPTV9OT0RF
IChzdHlsZV9lbGVtZW50KSwKCQkJTlVMTCk7Cgl9Cn0KCnN0YXRpYyB2b2lkCmFkZF9jc3NfcnVs
ZV9pbnRvX3N0eWxlX3NoZWV0IChXZWJLaXRET01Eb2N1bWVudCAqZG9jdW1lbnQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqc3R5bGVfc2hlZXRfaWQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqc2VsZWN0b3IsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqc3R5bGUpCnsKCVdlYktpdERPTUVs
ZW1lbnQgKnN0eWxlX2VsZW1lbnQ7CglXZWJLaXRET01TdHlsZVNoZWV0ICpzaGVldDsKCVdlYktp
dERPTUNTU1J1bGVMaXN0ICpydWxlc19saXN0OwoJZ2ludCBsZW5ndGgsIGlpOwoKCXN0eWxlX2Vs
ZW1lbnQgPSB3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9lbGVtZW50X2J5X2lkIChkb2N1bWVudCwg
c3R5bGVfc2hlZXRfaWQpOwoJdHJhY2tfcG9pbnRlciAoc3R5bGVfZWxlbWVudCk7CgoJaWYgKCFz
dHlsZV9lbGVtZW50KSB7CgkJY3JlYXRlX2FuZF9hZGRfY3NzX3N0eWxlX3NoZWV0IChkb2N1bWVu
dCwgc3R5bGVfc2hlZXRfaWQpOwoJCXN0eWxlX2VsZW1lbnQgPSB3ZWJraXRfZG9tX2RvY3VtZW50
X2dldF9lbGVtZW50X2J5X2lkIChkb2N1bWVudCwgc3R5bGVfc2hlZXRfaWQpOwoJfQoKCS8qIEdl
dCBzaGVldCB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCBzdHlsZSBlbGVtZW50ICovCglzaGVldCA9
IHdlYmtpdF9kb21faHRtbF9zdHlsZV9lbGVtZW50X2dldF9zaGVldCAoV0VCS0lUX0RPTV9IVE1M
X1NUWUxFX0VMRU1FTlQgKHN0eWxlX2VsZW1lbnQpKTsKCXRyYWNrX3BvaW50ZXIgKHNoZWV0KTsK
CglydWxlc19saXN0ID0gd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfZ2V0X2Nzc19ydWxlcyAo
V0VCS0lUX0RPTV9DU1NfU1RZTEVfU0hFRVQgKHNoZWV0KSk7Cgl0cmFja19wb2ludGVyIChydWxl
c19saXN0KTsKCWxlbmd0aCA9IHdlYmtpdF9kb21fY3NzX3J1bGVfbGlzdF9nZXRfbGVuZ3RoIChy
dWxlc19saXN0KTsKCglwcmludGYgKCIlczogcnVsZXMgbGlzdDolcCByZWZzOiVkIGxlbmd0aDol
ZFxuIiwgX19GVU5DVElPTl9fLCBydWxlc19saXN0LCAoKEdPYmplY3QgKikgcnVsZXNfbGlzdCkt
PnJlZl9jb3VudCwgbGVuZ3RoKTsKCgkvKiBDaGVjayBpZiBydWxlIGV4aXN0cyAqLwoJZm9yIChp
aSA9IGxlbmd0aCAtIDE7IGlpID49IDA7IGlpLS0pIHsKCQlXZWJLaXRET01DU1NSdWxlICpydWxl
OwoJCWdjaGFyICpydWxlX3RleHQ7CgkJZ2NoYXIgKnJ1bGVfc2VsZWN0b3IsICpzZWxlY3Rvcl9l
bmQ7CgoJCXJ1bGUgPSB3ZWJraXRfZG9tX2Nzc19ydWxlX2xpc3RfaXRlbSAocnVsZXNfbGlzdCwg
aWkpOwoJCXRyYWNrX3BvaW50ZXIgKHJ1bGUpOwoJCXByaW50ZiAoIiAgICVzOiBbJWRdICVwIHJl
ZnM6JWRcbiIsIF9fRlVOQ1RJT05fXywgaWksIHJ1bGUsIHJ1bGUgPyAoKEdPYmplY3QgKikgcnVs
ZSktPnJlZl9jb3VudCA6IC0xKTsKCgkJaWYgKCFXRUJLSVRfRE9NX0lTX0NTU19SVUxFIChydWxl
KSkKCQkJY29udGludWU7CgoJCXJ1bGVfdGV4dCA9IHdlYmtpdF9kb21fY3NzX3J1bGVfZ2V0X2Nz
c190ZXh0IChydWxlKTsKCgkJLyogRmluZCB0aGUgc3RhcnQgb2YgdGhlIHN0eWxlID0+IGVuZCBv
ZiB0aGUgc2VsZWN0b3IgKi8KCQlzZWxlY3Rvcl9lbmQgPSBnX3N0cnN0cl9sZW4gKHJ1bGVfdGV4
dCwgLTEsICIgeyIpOwoJCWlmICghc2VsZWN0b3JfZW5kKSB7CgkJCWdfZnJlZSAocnVsZV90ZXh0
KTsKCQkJY29udGludWU7CgkJfQoKCQlydWxlX3NlbGVjdG9yID0KCQkJZ191dGY4X3N1YnN0cmlu
ZyAoCgkJCQlydWxlX3RleHQsCgkJCQkwLAoJCQkJZ191dGY4X3BvaW50ZXJfdG9fb2Zmc2V0IChy
dWxlX3RleHQsIHNlbGVjdG9yX2VuZCkpOwoKCQlpZiAoZ19zdHJjbXAwIChydWxlX3NlbGVjdG9y
LCBzZWxlY3RvcikgPT0gMCkgewoJCQkvL3ByaW50ZiAoIiVzOiByZW1vdmluZyAnJXMnLyclcydc
biIsIF9fRlVOQ1RJT05fXywgcnVsZV9zZWxlY3RvciwgcnVsZV90ZXh0KTsKCQkJLyogSWYgZXhp
c3RzIHJlbW92ZSBpdCAqLwoJCQl3ZWJraXRfZG9tX2Nzc19zdHlsZV9zaGVldF9yZW1vdmVfcnVs
ZSAoCgkJCQlXRUJLSVRfRE9NX0NTU19TVFlMRV9TSEVFVCAoc2hlZXQpLAoJCQkJaWksIE5VTEwp
OwoJCQlsZW5ndGgtLTsKCQl9CgoJCWdfZnJlZSAocnVsZV9zZWxlY3Rvcik7CgkJZ19mcmVlIChy
dWxlX3RleHQpOwoJfQoKCWdfb2JqZWN0X3VucmVmIChydWxlc19saXN0KTsKCgkvL3ByaW50ZiAo
IiVzOiBhZGRpbmcgJXNcbiIsIF9fRlVOQ1RJT05fXywgc2VsZWN0b3IpOwoJLyogSW5zZXJ0IHRo
ZSBydWxlIGF0IHRoZSBlbmQsIHNvIGl0IHdpbGwgb3ZlcnJpZGUgcHJldmlvdXNseSBpbnNlcnRl
ZCAqLwoJd2Via2l0X2RvbV9jc3Nfc3R5bGVfc2hlZXRfYWRkX3J1bGUgKAoJCVdFQktJVF9ET01f
Q1NTX1NUWUxFX1NIRUVUIChzaGVldCksCgkJc2VsZWN0b3IsCgkJc3R5bGUsCgkJbGVuZ3RoLCAv
KiBJbmRleCAqLwoJCU5VTEwpOwp9CgpzdGF0aWMgdm9pZAphZGRfY3NzX3J1bGVfaW50b19zdHls
ZV9zaGVldF9yZWN1cnNpdmUgKFdlYktpdERPTURvY3VtZW50ICpkb2N1bWVudCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqc3R5bGVfc2hlZXRf
aWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIg
KnNlbGVjdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
IGdjaGFyICpzdHlsZSkKewoJV2ViS2l0RE9NTm9kZUxpc3QgKmZyYW1lczsKCWdpbnQgaWksIGxl
bmd0aDsKCgkvKiBBZGQgcnVsZSB0byBkb2N1bWVudCAqLwoJYWRkX2Nzc19ydWxlX2ludG9fc3R5
bGVfc2hlZXQgKAoJCWRvY3VtZW50LAoJCXN0eWxlX3NoZWV0X2lkLAoJCXNlbGVjdG9yLAoJCXN0
eWxlKTsKCglmcmFtZXMgPSB3ZWJraXRfZG9tX2RvY3VtZW50X3F1ZXJ5X3NlbGVjdG9yX2FsbCAo
ZG9jdW1lbnQsICJpZnJhbWUiLCBOVUxMKTsKCXRyYWNrX3BvaW50ZXIgKGZyYW1lcyk7CglsZW5n
dGggPSB3ZWJraXRfZG9tX25vZGVfbGlzdF9nZXRfbGVuZ3RoIChmcmFtZXMpOwoKCS8qIEFkZCBy
dWxlcyB0byBldmVyeSBzdWIgZG9jdW1lbnQgKi8KCWZvciAoaWkgPSAwOyBpaSA8IGxlbmd0aDsg
aWkrKykgewoJCVdlYktpdERPTURvY3VtZW50ICppZnJhbWVfZG9jdW1lbnQ7CgkJV2ViS2l0RE9N
Tm9kZSAqbm9kZTsKCgkJbm9kZSA9IHdlYmtpdF9kb21fbm9kZV9saXN0X2l0ZW0gKGZyYW1lcywg
aWkpOwoJCXRyYWNrX3BvaW50ZXIgKG5vZGUpOwoJCWlmcmFtZV9kb2N1bWVudCA9IHdlYmtpdF9k
b21faHRtbF9pZnJhbWVfZWxlbWVudF9nZXRfY29udGVudF9kb2N1bWVudCAoCgkJCVdFQktJVF9E
T01fSFRNTF9JRlJBTUVfRUxFTUVOVCAobm9kZSkpOwoJCXRyYWNrX3BvaW50ZXIgKGlmcmFtZV9k
b2N1bWVudCk7CgoJCWFkZF9jc3NfcnVsZV9pbnRvX3N0eWxlX3NoZWV0X3JlY3Vyc2l2ZSAoCgkJ
CWlmcmFtZV9kb2N1bWVudCwKCQkJc3R5bGVfc2hlZXRfaWQsCgkJCXNlbGVjdG9yLAoJCQlzdHls
ZSk7Cgl9Cn0KCnZvaWQKZV93ZWJfdmlld19hZGRfY3NzX3J1bGVfaW50b19zdHlsZV9zaGVldCAo
V2ViS2l0V2ViVmlldyAqdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgZ2NoYXIgKnN0eWxlX3NoZWV0X2lkLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqc2VsZWN0b3IsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpzdHlsZSkKewoJZ3BvaW50
ZXIgZG9tX2RvY3VtZW50OwoKCWdfcmV0dXJuX2lmX2ZhaWwgKFdFQktJVF9JU19XRUJfVklFVyAo
dmlldykpOwoJZ19yZXR1cm5faWZfZmFpbCAoc3R5bGVfc2hlZXRfaWQgJiYgKnN0eWxlX3NoZWV0
X2lkKTsKCWdfcmV0dXJuX2lmX2ZhaWwgKHNlbGVjdG9yICYmICpzZWxlY3Rvcik7CglnX3JldHVy
bl9pZl9mYWlsIChzdHlsZSAmJiAqc3R5bGUpOwoKCWRvbV9kb2N1bWVudCA9IHdlYmtpdF93ZWJf
dmlld19nZXRfZG9tX2RvY3VtZW50IChXRUJLSVRfV0VCX1ZJRVcgKHZpZXcpKTsKCXRyYWNrX3Bv
aW50ZXIgKGRvbV9kb2N1bWVudCk7CglhZGRfY3NzX3J1bGVfaW50b19zdHlsZV9zaGVldF9yZWN1
cnNpdmUgKAoJCWRvbV9kb2N1bWVudCwKCQlzdHlsZV9zaGVldF9pZCwKCQlzZWxlY3RvciwKCQlz
dHlsZSk7Cn0KCnN0YXRpYyB2b2lkCnVwZGF0ZV9zdHlsZXMgKFdlYktpdFdlYlZpZXcgKndlYl92
aWV3KQp7CgkvL3ByaW50ZiAoIiVzOiBiZWZvcmUgLS0tJXMtLS1cbiIsIF9fRlVOQ1RJT05fXywg
d2Via2l0X2RvbV9odG1sX2VsZW1lbnRfZ2V0X291dGVyX2h0bWwgKFdFQktJVF9ET01fSFRNTF9F
TEVNRU5UICh3ZWJraXRfZG9tX2RvY3VtZW50X2dldF9kb2N1bWVudF9lbGVtZW50ICh3ZWJraXRf
d2ViX3ZpZXdfZ2V0X2RvbV9kb2N1bWVudCAod2ViX3ZpZXcpKSkpKTsKCWVfd2ViX3ZpZXdfYWRk
X2Nzc19ydWxlX2ludG9fc3R5bGVfc2hlZXQgKAoJCXdlYl92aWV3LAoJCSItZS13ZWItdmlldy1j
c3Mtc2hlZXQiLAoJCSIuLWUtd2ViLXZpZXctYmFja2dyb3VuZC1jb2xvciIsCgkJImJhY2tncm91
bmQtY29sb3I6ICNBQUFBQUE7Iik7CgllX3dlYl92aWV3X2FkZF9jc3NfcnVsZV9pbnRvX3N0eWxl
X3NoZWV0ICgKCQl3ZWJfdmlldywKCQkiLWUtd2ViLXZpZXctY3NzLXNoZWV0IiwKCQkiLi1lLXdl
Yi12aWV3LXRleHQtY29sb3IiLAoJCSJjb2xvcjogI0VFRERBQTsiKTsKCS8vcHJpbnRmICgiJXM6
IGFmdGVyIC0tLSVzLS0tXG5cbiIsIF9fRlVOQ1RJT05fXywgd2Via2l0X2RvbV9odG1sX2VsZW1l
bnRfZ2V0X291dGVyX2h0bWwgKFdFQktJVF9ET01fSFRNTF9FTEVNRU5UICh3ZWJraXRfZG9tX2Rv
Y3VtZW50X2dldF9kb2N1bWVudF9lbGVtZW50ICh3ZWJraXRfd2ViX3ZpZXdfZ2V0X2RvbV9kb2N1
bWVudCAod2ViX3ZpZXcpKSkpKTsKfQoKc3RhdGljIHZvaWQKbm90aWZ5X2xvYWRfc3RhdHVzX2Ni
IChXZWJLaXRXZWJWaWV3ICp3ZWJfdmlldywKCQkgICAgICAgR1BhcmFtU3BlYyAqcGFyYW0sCgkJ
ICAgICAgIGdwb2ludGVyIHVzZXJfZGF0YSkKewoJc3RhdGljIEdUaW1lciAqdGltZXIgPSBOVUxM
OwoJY29uc3QgZ2NoYXIgKnN0YXR1czsKCVdlYktpdExvYWRTdGF0dXMgbG9hZF9zdGF0dXMgPSB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X2xvYWRfc3RhdHVzICh3ZWJfdmlldyk7CgoJaWYgKCF0aW1lcikK
CQl0aW1lciA9IGdfdGltZXJfbmV3ICgpOwoKCWlmIChsb2FkX3N0YXR1cyA9PSBXRUJLSVRfTE9B
RF9QUk9WSVNJT05BTCkgewoJCXN0YXR1cyA9ICJXRUJLSVRfTE9BRF9QUk9WSVNJT05BTCI7CgkJ
Z190aW1lcl9zdGFydCAodGltZXIpOwoJfSBlbHNlIGlmIChsb2FkX3N0YXR1cyA9PSBXRUJLSVRf
TE9BRF9DT01NSVRURUQpCgkJc3RhdHVzID0gIldFQktJVF9MT0FEX0NPTU1JVFRFRCI7CgllbHNl
IGlmIChsb2FkX3N0YXR1cyA9PSBXRUJLSVRfTE9BRF9GSU5JU0hFRCkKCQlzdGF0dXMgPSAiV0VC
S0lUX0xPQURfRklOSVNIRUQiOwoJZWxzZSBpZiAobG9hZF9zdGF0dXMgPT0gV0VCS0lUX0xPQURf
RklSU1RfVklTVUFMTFlfTk9OX0VNUFRZX0xBWU9VVCkKCQlzdGF0dXMgPSAiV0VCS0lUX0xPQURf
RklSU1RfVklTVUFMTFlfTk9OX0VNUFRZX0xBWU9VVCI7CgllbHNlIGlmIChsb2FkX3N0YXR1cyA9
PSBXRUJLSVRfTE9BRF9GQUlMRUQpCgkJc3RhdHVzID0gIldFQktJVF9MT0FEX0ZBSUxFRCI7Cgll
bHNlCgkJc3RhdHVzID0gIj8/IjsKCglpZiAobG9hZF9zdGF0dXMgPT0gV0VCS0lUX0xPQURfRklO
SVNIRUQgJiYgdGltZXIpIHsKCQlwcmludGYgKCIlczogd2VidmlldzolcCBzdGF0dXM6JXMgZWxh
cHNlZDolZlxuIiwgX19GVU5DVElPTl9fLCB3ZWJfdmlldywgc3RhdHVzLCBnX3RpbWVyX2VsYXBz
ZWQgKHRpbWVyLCBOVUxMKSk7CgkJZ190aW1lcl9kZXN0cm95ICh0aW1lcik7CgkJdGltZXIgPSBO
VUxMOwoJfSBlbHNlIHsKCQlwcmludGYgKCIlczogd2VidmlldzolcCBzdGF0dXM6JXNcbiIsIF9f
RlVOQ1RJT05fXywgd2ViX3ZpZXcsIHN0YXR1cyk7Cgl9CgoJaWYgKGxvYWRfc3RhdHVzID09IFdF
QktJVF9MT0FEX0ZJTklTSEVEKSB7CgkJZV93ZWJfdmlld19hZGRfY3NzX3J1bGVfaW50b19zdHls
ZV9zaGVldCAoCgkJCXdlYl92aWV3LAoJCQkiLWUtd2ViLXZpZXctY3NzLXNoZWV0IiwKCQkJIi4t
WFhYIiwKCQkJImNvbG9yOiAjMDBEREFBOyIpOwoJCXVwZGF0ZV9zdHlsZXMgKHdlYl92aWV3KTsK
CX0KfQoKc3RhdGljIHZvaWQKd2ViX3ZpZXdfaW5pdF93ZWJfc2V0dGluZ3MgKFdlYktpdFdlYlZp
ZXcgKndlYl92aWV3KQp7CglXZWJLaXRXZWJTZXR0aW5ncyAqd2ViX3NldHRpbmdzOwoJR09iamVj
dENsYXNzICpjbGFzczsKCUdQYXJhbVNwZWMgKnBzcGVjOwoKCXdlYl9zZXR0aW5ncyA9IHdlYmtp
dF93ZWJfc2V0dGluZ3NfbmV3ICgpOwoKCWdfb2JqZWN0X3NldCAoCgkJR19PQkpFQ1QgKHdlYl9z
ZXR0aW5ncyksCgkJImVuYWJsZS1mcmFtZS1mbGF0dGVuaW5nIiwgVFJVRSwKCQkiZW5hYmxlLWph
dmEtYXBwbGV0IiwgRkFMU0UsCgkJImVuYWJsZS1odG1sNS1kYXRhYmFzZSIsIEZBTFNFLAoJCSJl
bmFibGUtaHRtbDUtbG9jYWwtc3RvcmFnZSIsIEZBTFNFLAoJCSJlbmFibGUtb2ZmbGluZS13ZWIt
YXBwbGljYXRpb24tY2FjaGUiLCBGQUxTRSwKCQkiZW5hYmxlLXNpdGUtc3BlY2lmaWMtcXVpcmtz
IiwgVFJVRSwKCQkiZW5hYmxlLXNjcmlwdHMiLCBGQUxTRSwKCQlOVUxMKTsKCgkvKiBUaGlzIHBy
b3BlcnR5IHdhcyBpbnRyb2R1Y2VkIGluIFdlYktpdEdUSyAyLjAsCgkgKiBzbyBjaGVjayBmb3Ig
aXQgYW5kIGVuYWJsZSBpdCBpZiBpdCdzIHByZXNlbnQuICovCgljbGFzcyA9IEdfT0JKRUNUX0dF
VF9DTEFTUyAod2ViX3NldHRpbmdzKTsKCXBzcGVjID0gZ19vYmplY3RfY2xhc3NfZmluZF9wcm9w
ZXJ0eSAoCgkJY2xhc3MsICJyZXNwZWN0LWltYWdlLW9yaWVudGF0aW9uIik7CglpZiAocHNwZWMg
IT0gTlVMTCkgewoJCWdfb2JqZWN0X3NldCAoCgkJCUdfT0JKRUNUICh3ZWJfc2V0dGluZ3MpLAoJ
CQlwc3BlYy0+bmFtZSwgVFJVRSwgTlVMTCk7Cgl9CgoJZ19vYmplY3RfYmluZF9wcm9wZXJ0eSAo
CgkJd2ViX3NldHRpbmdzLCAiZW5hYmxlLWNhcmV0LWJyb3dzaW5nIiwKCQl3ZWJfdmlldywgImNh
cmV0LW1vZGUiLAoJCUdfQklORElOR19CSURJUkVDVElPTkFMIHwKCQlHX0JJTkRJTkdfU1lOQ19D
UkVBVEUpOwoKCXdlYmtpdF93ZWJfdmlld19zZXRfc2V0dGluZ3MgKHdlYl92aWV3LCB3ZWJfc2V0
dGluZ3MpOwoKCWdfb2JqZWN0X3VucmVmICh3ZWJfc2V0dGluZ3MpOwp9CgpzdGF0aWMgdm9pZAps
b2FkX3BhZ2UgKFdlYktpdFdlYlZpZXcgKndlYl92aWV3KQp7CglzdGF0aWMgaW50IGNvdW50ZXIg
PSAwOwoJZ2NoYXIgKmh0bWw7CgoJaHRtbCA9IGdfc3RyZHVwX3ByaW50ZiAoIjxodG1sPiIKCQki
PGhlYWQ+PC9oZWFkPiIKCQkiPGJvZHkgY2xhc3M9XCItZS13ZWItdmlldy1iYWNrZ3JvdW5kLWNv
bG9yIC1lLXdlYi12aWV3LXRleHQtY29sb3JcIj48ZGl2IGNsYXNzPVwiaGVhZGVycyAtZS1tYWls
LWZvcm1hdHRlci1ib2R5LWNvbG9yXCIgaWQ9XCIubWVzc2FnZS5oZWFkZXJzXCI+IgoJCSI8ZGl2
IGNsYXNzPVwiX19ldm8taGlnaGxpZ2h0XCI+WyVkXSBCb2R5Li4uPC9kaXY+IGFuZCBhIHN0YW5k
YXJkIDxzcGFuIGNsYXNzPVwiLVhYWFwiPnRleHQ8L3NwYW4+Li4uPGJyPjxicj4iCgkJIjwvYm9k
eT48L2h0bWw+IiwgY291bnRlcisrKTsKCgl3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcgKHdl
Yl92aWV3LCBodG1sLCAidGV4dC9odG1sIiwgInV0Zi04IiwgImxvY2FsOi8vIik7CgoJZ19mcmVl
IChodG1sKTsKfQoKc3RhdGljIHZvaWQKbG9hZF9hX2h0bWxfY2IgKFdlYktpdFdlYlZpZXcgKndl
Yl92aWV3KQp7CglnY2hhciAqaHRtbCA9IE5VTEw7CgoJZ19yZXR1cm5faWZfZmFpbCAoZ19maWxl
X2dldF9jb250ZW50cyAoIi9kYXRhL2RldmVsb3AvbG9jYWwvYS5odG1sIiwgJmh0bWwsIE5VTEws
IE5VTEwpKTsKCgl3ZWJraXRfd2ViX3ZpZXdfbG9hZF9zdHJpbmcgKHdlYl92aWV3LCBodG1sLCAi
dGV4dC9odG1sIiwgInV0Zi04IiwgImxvY2FsOi8vIik7CgoJZ19mcmVlIChodG1sKTsKfQoKaW50
IG1haW4gKGludCBhcmdjLCBjaGFyICphcmd2W10pCnsKCUd0a1dpZGdldCAqZGlhbG9nLCAqY29u
dGFpbmVyLCAqd2ssICpidXR0b24sICpzdzsKCVdlYktpdFdlYlZpZXcgKndlYl92aWV3OwoKCWd0
a19pbml0ICgmYXJnYywgJmFyZ3YpOwoKCWRpYWxvZyA9IGd0a19kaWFsb2dfbmV3X3dpdGhfYnV0
dG9ucyAoIndrLWxlYWtzIiwgTlVMTCwgMCwgIl9DbG9zZSIsIEdUS19SRVNQT05TRV9DQU5DRUws
IE5VTEwpOwoKCWNvbnRhaW5lciA9IGd0a19kaWFsb2dfZ2V0X2NvbnRlbnRfYXJlYSAoR1RLX0RJ
QUxPRyAoZGlhbG9nKSk7CgoJd2sgPSB3ZWJraXRfd2ViX3ZpZXdfbmV3ICgpOwoJd2ViX3ZpZXcg
PSBXRUJLSVRfV0VCX1ZJRVcgKHdrKTsKCgl0cmFja19wb2ludGVyICh3ZWJfdmlldyk7CgoJd2Vi
X3ZpZXdfaW5pdF93ZWJfc2V0dGluZ3MgKHdlYl92aWV3KTsKCS8vdXBkYXRlX3N0eWxlcyAod2Vi
X3ZpZXcpOwoKCXN3ID0gZ3RrX3Njcm9sbGVkX3dpbmRvd19uZXcgKE5VTEwsIE5VTEwpOwoJZ3Rr
X2NvbnRhaW5lcl9hZGQgKEdUS19DT05UQUlORVIgKHN3KSwgd2spOwoKCWd0a19jb250YWluZXJf
YWRkIChHVEtfQ09OVEFJTkVSIChjb250YWluZXIpLCBzdyk7CglnX29iamVjdF9zZXQgKEdfT0JK
RUNUICh3ayksCgkJImhleHBhbmQiLCBUUlVFLAoJCSJoYWxpZ24iLCBHVEtfQUxJR05fRklMTCwK
CQkidmV4cGFuZCIsIFRSVUUsCgkJInZhbGlnbiIsIEdUS19BTElHTl9GSUxMLAoJCSJoZWlnaHQt
cmVxdWVzdCIsIDMwLAoJCSJ3aWR0aC1yZXF1ZXN0IiwgMzAsCgkJTlVMTCk7CgoJZ19zaWduYWxf
Y29ubmVjdCAod2ssICJub3RpZnk6OmxvYWQtc3RhdHVzIiwgR19DQUxMQkFDSyAobm90aWZ5X2xv
YWRfc3RhdHVzX2NiKSwgTlVMTCk7CgoJbG9hZF9wYWdlICh3ZWJfdmlldyk7CgoJYnV0dG9uID0g
Z3RrX2J1dHRvbl9uZXdfd2l0aF9tbmVtb25pYyAoIl9VcGRhdGUgc3R5bGVzIik7CglnX3NpZ25h
bF9jb25uZWN0X3N3YXBwZWQgKGJ1dHRvbiwgImNsaWNrZWQiLCBHX0NBTExCQUNLICh1cGRhdGVf
c3R5bGVzKSwgd2ViX3ZpZXcpOwoJZ3RrX2NvbnRhaW5lcl9hZGQgKEdUS19DT05UQUlORVIgKGNv
bnRhaW5lciksIGJ1dHRvbik7CgoJYnV0dG9uID0gZ3RrX2J1dHRvbl9uZXdfd2l0aF9tbmVtb25p
YyAoIl9Mb2FkIHBhZ2UiKTsKCWdfc2lnbmFsX2Nvbm5lY3Rfc3dhcHBlZCAoYnV0dG9uLCAiY2xp
Y2tlZCIsIEdfQ0FMTEJBQ0sgKGxvYWRfcGFnZSksIHdlYl92aWV3KTsKCWd0a19jb250YWluZXJf
YWRkIChHVEtfQ09OVEFJTkVSIChjb250YWluZXIpLCBidXR0b24pOwoKCWJ1dHRvbiA9IGd0a19i
dXR0b25fbmV3X3dpdGhfbW5lbW9uaWMgKCJfTG9hZCBhLmh0bWwiKTsKCWdfc2lnbmFsX2Nvbm5l
Y3Rfc3dhcHBlZCAoYnV0dG9uLCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0sgKGxvYWRfYV9odG1sX2Ni
KSwgd2ViX3ZpZXcpOwoJZ3RrX2NvbnRhaW5lcl9hZGQgKEdUS19DT05UQUlORVIgKGNvbnRhaW5l
ciksIGJ1dHRvbik7CgoJZ3RrX3dpZGdldF9zaG93X2FsbCAoZ3RrX2RpYWxvZ19nZXRfY29udGVu
dF9hcmVhIChHVEtfRElBTE9HIChkaWFsb2cpKSk7CglndGtfZGlhbG9nX3J1biAoR1RLX0RJQUxP
RyAoZGlhbG9nKSk7CgoJZ3RrX3dpZGdldF9kZXN0cm95IChkaWFsb2cpOwoJZHVtcF9sZWFrZWRf
cG9pbnRlcnMgKCk7CgoJcmV0dXJuIDA7Cn0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248428</attachid>
            <date>2015-03-11 10:11:09 -0700</date>
            <delta_ts>2015-03-11 10:20:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-dom-objects-leaked.diff</filename>
            <type>text/plain</type>
            <size>4981</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NmQ1OTIyLi4zNjcxODJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTUtMDMtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIFdlYktpdERPTSBvYmplY3RzIGxlYWtpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODc4OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgRE9NT2JqZWN0Q2FjaGVG
cmFtZU9ic2VydmVyIGFsc28gaW5oZXJpdCBmcm9tCisgICAgICAgIERPTVdpbmRvd1Byb3BlcnR5
IHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIHdpbmRvdyBvYmplY3QgaXMKKyAgICAgICAgZGV0YWNo
ZWQgZnJvbSB0aGUgZnJhbWUgdG8gY2xlYXIgdGhlIERPTSBvYmplY3RzIGFzc29jaWF0ZWQgdG8K
KyAgICAgICAgdGhhdCBmcmFtZSBpbiB0aGF0IGNhc2UgdG9vLgorCisgICAgICAgICogYmluZGlu
Z3MvZ29iamVjdC9ET01PYmplY3RDYWNoZS5jcHA6CisKIDIwMTUtMDMtMTAgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEdMX01BWF9W
QVJZSU5HX0ZMT0FUUyBpcyBub3QgZGVmaW5lZCBpbiBPcGVuR0wgRVMgMgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9ET01PYmplY3RDYWNoZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0RPTU9iamVjdENhY2hlLmNwcAppbmRleCBiN2Jm
M2U1Li43M2MzZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0
L0RPTU9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0
L0RPTU9iamVjdENhY2hlLmNwcApAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkRPTU9iamVjdENhY2hlLmgiCiAKKyNpbmNsdWRlICJET01XaW5kb3dQcm9w
ZXJ0eS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVEZXN0cnVjdGlv
bk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgpAQCAtNzgsMTAgKzc5LDExIEBAIHN0YXRp
YyBET01PYmplY3RDYWNoZUZyYW1lT2JzZXJ2ZXImIGdldE9yQ3JlYXRlRE9NT2JqZWN0Q2FjaGVG
cmFtZU9ic2VydmVyKFdlYkNvCiAgICAgcmV0dXJuICpyZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwog
fQogCi1jbGFzcyBET01PYmplY3RDYWNoZUZyYW1lT2JzZXJ2ZXIgZmluYWw6IHB1YmxpYyBXZWJD
b3JlOjpGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIgeworY2xhc3MgRE9NT2JqZWN0Q2FjaGVGcmFt
ZU9ic2VydmVyIGZpbmFsOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVy
LCBwdWJsaWMgV2ViQ29yZTo6RE9NV2luZG93UHJvcGVydHkgewogcHVibGljOgogICAgIERPTU9i
amVjdENhY2hlRnJhbWVPYnNlcnZlcihXZWJDb3JlOjpGcmFtZSYgZnJhbWUpCiAgICAgICAgIDog
RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKCZmcmFtZSkKKyAgICAgICAgLCBET01XaW5kb3dQcm9w
ZXJ0eSgmZnJhbWUpCiAgICAgewogICAgIH0KIApAQCAtMTI3LDExICsxMjksMTcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZnJhbWVEZXN0cm95ZWQoKSBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgY2xlYXIoKTsKLSAgICAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gbV9mcmFtZTsK
KyAgICAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVy
OjptX2ZyYW1lOwogICAgICAgICBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXI6OmZyYW1lRGVzdHJv
eWVkKCk7CiAgICAgICAgIGRvbU9iamVjdENhY2hlRnJhbWVPYnNlcnZlcnMoKS5yZW1vdmUoZnJh
bWUpOwogICAgIH0KIAorICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNoR2xvYmFsT2JqZWN0RnJv
bUZyYW1lKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGNsZWFyKCk7CisgICAgICAgIERPTVdp
bmRvd1Byb3BlcnR5Ojp3aWxsRGV0YWNoR2xvYmFsT2JqZWN0RnJvbUZyYW1lKCk7CisgICAgfQor
CiAgICAgVmVjdG9yPERPTU9iamVjdENhY2hlRGF0YSosIDg+IG1fb2JqZWN0czsKIH07CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1OTRkM2Yz
Li5jYzc5MDBkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDUgKzEsMjEgQEAKIDIwMTUtMDMtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgogCisgICAgICAgIFtHVEtdIFdlYktpdERPTSBvYmplY3RzIGxl
YWtpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
ODc4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVw
ZGF0ZSBET01PYmplY3RDYWNoZSB1bml0IHRlc3QgdG8gY2hlY2sgdGhhdCBET00gb2JqZWN0cyBh
cmUgYWxzbworICAgICAgICByZWxlYXNlZCB3aGVuIG5ldyBjb250ZW50cyBhcmUgbG9hZGVkIGlu
IHRoZSB3ZWIgdmlldywgYW5kIHRoZSBvbGQKKyAgICAgICAgZG9jdW1lbnQgaXMgZGV0YWNoZWQg
ZnJvbSB0aGUgZnJhbWUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJH
dGsvVGVzdERPTU5vZGUuY3BwOgorICAgICAgICAodGVzdFdlYktpdERPTU9iamVjdENhY2hlKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3Qu
Y3BwOgorICAgICAgICAocnVuVGVzdCk6CisKKzIwMTUtMDMtMTEgIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCiAgICAgICAgIFtHVEtdIEFkZCBzdXBwb3J0IGZv
ciBoYW5kbGluZyBUTFMgZXJyb3JzIHRvIE1pbmlCcm93c2VyCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI1NzYKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RET01Ob2RlLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0RE9NTm9kZS5jcHAKaW5kZXggMjRkMGMw
MC4uNGZkMDNkNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
R3RrL1Rlc3RET01Ob2RlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJHdGsvVGVzdERPTU5vZGUuY3BwCkBAIC02Niw2ICs2NiwxMCBAQCBzdGF0aWMgdm9pZCB0ZXN0
V2ViS2l0RE9NT2JqZWN0Q2FjaGUoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAg
ICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CiAKICAgICBnX2Fzc2VydCh0ZXN0LT5y
dW5XZWJQcm9jZXNzVGVzdCgiV2ViS2l0RE9NTm9kZSIsICJkb20tY2FjaGUiKSk7CisKKyAgICB0
ZXN0LT5sb2FkSHRtbCh0ZXN0SFRNTCwgbnVsbHB0cik7CisgICAgdGVzdC0+d2FpdFVudGlsTG9h
ZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnQodGVzdC0+cnVuV2ViUHJvY2Vzc1Rlc3QoIldlYktp
dERPTU5vZGUiLCAiZG9tLWNhY2hlIikpOwogfQogCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJQcm9jZXNzVGVzdC5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3QuY3BwCmluZGV4IDY0M2I1
NDkuLmU5ZjhhNzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mkd0ay9XZWJQcm9jZXNzVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyR3RrL1dlYlByb2Nlc3NUZXN0LmNwcApAQCAtNjQsNyArNjQsMTMgQEAgc3RhdGljIEpT
VmFsdWVSZWYgcnVuVGVzdChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rp
b24sIEpTT2JqZWN0UmUKIAogICAgIFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UgPSBXRUJLSVRfV0VC
X1BBR0UoSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKICAgICBnX2Fzc2VydChXRUJL
SVRfSVNfV0VCX1BBR0Uod2ViUGFnZSkpOwotICAgIFdlYlByb2Nlc3NUZXN0Ojphc3NlcnRPYmpl
Y3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKHdlYlBhZ2UpKTsKKyAgICAvLyBU
ZXN0IC9XZWJLaXRET01Ob2RlL2RvbS1jYWNoZSBpcyBhbiBleGNlcHRpb24sIGJlY2F1c2UgaXQn
cyBjYWxsZWQgdHdpY2UsIHNvCisgICAgLy8gdGhlIFdlYlBhZ2UgaXMgZGVzdHJveWVkIGFmdGVy
IHRoZSBzZWNvbmQgdGltZS4KKyAgICBpZiAoZ19zdHJfZXF1YWwodGVzdFBhdGguZ2V0KCksICIv
V2ViS2l0RE9NTm9kZS9kb20tY2FjaGUiKSkgeworICAgICAgICBzdGF0aWMgdW5zaWduZWQgZG9t
Q2FjaGVUZXN0UnVuQ291bnQgPSAxOworICAgICAgICBpZiAoKytkb21DYWNoZVRlc3RSdW5Db3Vu
dCA9PSAyKQorICAgICAgICAgICAgV2ViUHJvY2Vzc1Rlc3Q6OmFzc2VydE9iamVjdElzRGVsZXRl
ZFdoZW5UZXN0RmluaXNoZXMoR19PQkpFQ1Qod2ViUGFnZSkpOworICAgIH0KIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4gdGVzdCA9IFdlYlByb2Nlc3NUZXN0OjpjcmVhdGUo
U3RyaW5nOjpmcm9tVVRGOCh0ZXN0UGF0aC5nZXQoKSkpOwogICAgIHJldHVybiBKU1ZhbHVlTWFr
ZUJvb2xlYW4oY29udGV4dCwgdGVzdC0+cnVuVGVzdChnX3N0cnJzdHIodGVzdFBhdGguZ2V0KCks
ICIvIikgKyAxLCB3ZWJQYWdlKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248431</attachid>
            <date>2015-03-11 10:20:57 -0700</date>
            <delta_ts>2015-03-14 01:56:39 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>wk-dom-objects-leaked.diff</filename>
            <type>text/plain</type>
            <size>5068</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA3NmQ1OTIyLi4zNjcxODJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTUtMDMtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIFdlYktpdERPTSBvYmplY3RzIGxlYWtpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODc4OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgRE9NT2JqZWN0Q2FjaGVG
cmFtZU9ic2VydmVyIGFsc28gaW5oZXJpdCBmcm9tCisgICAgICAgIERPTVdpbmRvd1Byb3BlcnR5
IHRvIGJlIG5vdGlmaWVkIHdoZW4gdGhlIHdpbmRvdyBvYmplY3QgaXMKKyAgICAgICAgZGV0YWNo
ZWQgZnJvbSB0aGUgZnJhbWUgdG8gY2xlYXIgdGhlIERPTSBvYmplY3RzIGFzc29jaWF0ZWQgdG8K
KyAgICAgICAgdGhhdCBmcmFtZSBpbiB0aGF0IGNhc2UgdG9vLgorCisgICAgICAgICogYmluZGlu
Z3MvZ29iamVjdC9ET01PYmplY3RDYWNoZS5jcHA6CisKIDIwMTUtMDMtMTAgIENhcmxvcyBHYXJj
aWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIEdMX01BWF9W
QVJZSU5HX0ZMT0FUUyBpcyBub3QgZGVmaW5lZCBpbiBPcGVuR0wgRVMgMgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9ET01PYmplY3RDYWNoZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0RPTU9iamVjdENhY2hlLmNwcAppbmRleCBiN2Jm
M2U1Li43M2MzZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0
L0RPTU9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0
L0RPTU9iamVjdENhY2hlLmNwcApAQCAtMTksNiArMTksNyBAQAogI2luY2x1ZGUgImNvbmZpZy5o
IgogI2luY2x1ZGUgIkRPTU9iamVjdENhY2hlLmgiCiAKKyNpbmNsdWRlICJET01XaW5kb3dQcm9w
ZXJ0eS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVEZXN0cnVjdGlv
bk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiTm9kZS5oIgpAQCAtNzgsMTAgKzc5LDExIEBAIHN0YXRp
YyBET01PYmplY3RDYWNoZUZyYW1lT2JzZXJ2ZXImIGdldE9yQ3JlYXRlRE9NT2JqZWN0Q2FjaGVG
cmFtZU9ic2VydmVyKFdlYkNvCiAgICAgcmV0dXJuICpyZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwog
fQogCi1jbGFzcyBET01PYmplY3RDYWNoZUZyYW1lT2JzZXJ2ZXIgZmluYWw6IHB1YmxpYyBXZWJD
b3JlOjpGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIgeworY2xhc3MgRE9NT2JqZWN0Q2FjaGVGcmFt
ZU9ic2VydmVyIGZpbmFsOiBwdWJsaWMgV2ViQ29yZTo6RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVy
LCBwdWJsaWMgV2ViQ29yZTo6RE9NV2luZG93UHJvcGVydHkgewogcHVibGljOgogICAgIERPTU9i
amVjdENhY2hlRnJhbWVPYnNlcnZlcihXZWJDb3JlOjpGcmFtZSYgZnJhbWUpCiAgICAgICAgIDog
RnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyKCZmcmFtZSkKKyAgICAgICAgLCBET01XaW5kb3dQcm9w
ZXJ0eSgmZnJhbWUpCiAgICAgewogICAgIH0KIApAQCAtMTI3LDExICsxMjksMTcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgZnJhbWVEZXN0cm95ZWQoKSBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgY2xlYXIoKTsKLSAgICAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gbV9mcmFtZTsK
KyAgICAgICAgV2ViQ29yZTo6RnJhbWUqIGZyYW1lID0gRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVy
OjptX2ZyYW1lOwogICAgICAgICBGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXI6OmZyYW1lRGVzdHJv
eWVkKCk7CiAgICAgICAgIGRvbU9iamVjdENhY2hlRnJhbWVPYnNlcnZlcnMoKS5yZW1vdmUoZnJh
bWUpOwogICAgIH0KIAorICAgIHZpcnR1YWwgdm9pZCB3aWxsRGV0YWNoR2xvYmFsT2JqZWN0RnJv
bUZyYW1lKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIGNsZWFyKCk7CisgICAgICAgIERPTVdp
bmRvd1Byb3BlcnR5Ojp3aWxsRGV0YWNoR2xvYmFsT2JqZWN0RnJvbUZyYW1lKCk7CisgICAgfQor
CiAgICAgVmVjdG9yPERPTU9iamVjdENhY2hlRGF0YSosIDg+IG1fb2JqZWN0czsKIH07CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA1OTRkM2Yz
Li5jYzc5MDBkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDUgKzEsMjEgQEAKIDIwMTUtMDMtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgogCisgICAgICAgIFtHVEtdIFdlYktpdERPTSBvYmplY3RzIGxl
YWtpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
ODc4OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVw
ZGF0ZSBET01PYmplY3RDYWNoZSB1bml0IHRlc3QgdG8gY2hlY2sgdGhhdCBET00gb2JqZWN0cyBh
cmUgYWxzbworICAgICAgICByZWxlYXNlZCB3aGVuIG5ldyBjb250ZW50cyBhcmUgbG9hZGVkIGlu
IHRoZSB3ZWIgdmlldywgYW5kIHRoZSBvbGQKKyAgICAgICAgZG9jdW1lbnQgaXMgZGV0YWNoZWQg
ZnJvbSB0aGUgZnJhbWUuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJH
dGsvVGVzdERPTU5vZGUuY3BwOgorICAgICAgICAodGVzdFdlYktpdERPTU9iamVjdENhY2hlKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3Qu
Y3BwOgorICAgICAgICAocnVuVGVzdCk6CisKKzIwMTUtMDMtMTEgIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCiAgICAgICAgIFtHVEtdIEFkZCBzdXBwb3J0IGZv
ciBoYW5kbGluZyBUTFMgZXJyb3JzIHRvIE1pbmlCcm93c2VyCiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDI1NzYKIApkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RET01Ob2RlLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0RE9NTm9kZS5jcHAKaW5kZXggMjRkMGMw
MC4uNGZkMDNkNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
R3RrL1Rlc3RET01Ob2RlLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dDJHdGsvVGVzdERPTU5vZGUuY3BwCkBAIC02Niw2ICs2NiwxMCBAQCBzdGF0aWMgdm9pZCB0ZXN0
V2ViS2l0RE9NT2JqZWN0Q2FjaGUoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAg
ICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CiAKICAgICBnX2Fzc2VydCh0ZXN0LT5y
dW5XZWJQcm9jZXNzVGVzdCgiV2ViS2l0RE9NTm9kZSIsICJkb20tY2FjaGUiKSk7CisKKyAgICB0
ZXN0LT5sb2FkSHRtbCh0ZXN0SFRNTCwgbnVsbHB0cik7CisgICAgdGVzdC0+d2FpdFVudGlsTG9h
ZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnQodGVzdC0+cnVuV2ViUHJvY2Vzc1Rlc3QoIldlYktp
dERPTU5vZGUiLCAiZG9tLWNhY2hlIikpOwogfQogCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJQcm9jZXNzVGVzdC5jcHAgYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3QuY3BwCmluZGV4IDY0M2I1
NDkuLmFhYzFmMDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mkd0ay9XZWJQcm9jZXNzVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQyR3RrL1dlYlByb2Nlc3NUZXN0LmNwcApAQCAtNjQsNyArNjQsMTQgQEAgc3RhdGljIEpT
VmFsdWVSZWYgcnVuVGVzdChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rp
b24sIEpTT2JqZWN0UmUKIAogICAgIFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UgPSBXRUJLSVRfV0VC
X1BBR0UoSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKICAgICBnX2Fzc2VydChXRUJL
SVRfSVNfV0VCX1BBR0Uod2ViUGFnZSkpOwotICAgIFdlYlByb2Nlc3NUZXN0Ojphc3NlcnRPYmpl
Y3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKHdlYlBhZ2UpKTsKKyAgICAvLyBU
ZXN0IC9XZWJLaXRET01Ob2RlL2RvbS1jYWNoZSBpcyBhbiBleGNlcHRpb24sIGJlY2F1c2UgaXQn
cyBjYWxsZWQgdHdpY2UsIHNvCisgICAgLy8gdGhlIFdlYlBhZ2UgaXMgZGVzdHJveWVkIGFmdGVy
IHRoZSBzZWNvbmQgdGltZS4KKyAgICBpZiAoZ19zdHJfZXF1YWwodGVzdFBhdGguZ2V0KCksICJX
ZWJLaXRET01Ob2RlL2RvbS1jYWNoZSIpKSB7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBkb21D
YWNoZVRlc3RSdW5Db3VudCA9IDA7CisgICAgICAgIGlmICgrK2RvbUNhY2hlVGVzdFJ1bkNvdW50
ID09IDIpCisgICAgICAgICAgICBXZWJQcm9jZXNzVGVzdDo6YXNzZXJ0T2JqZWN0SXNEZWxldGVk
V2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVCh3ZWJQYWdlKSk7CisgICAgfSBlbHNlCisgICAgICAg
IFdlYlByb2Nlc3NUZXN0Ojphc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdf
T0JKRUNUKHdlYlBhZ2UpKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVzdD4g
dGVzdCA9IFdlYlByb2Nlc3NUZXN0OjpjcmVhdGUoU3RyaW5nOjpmcm9tVVRGOCh0ZXN0UGF0aC5n
ZXQoKSkpOwogICAgIHJldHVybiBKU1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4dCwgdGVzdC0+cnVu
VGVzdChnX3N0cnJzdHIodGVzdFBhdGguZ2V0KCksICIvIikgKyAxLCB3ZWJQYWdlKSk7Cg==
</data>
<flag name="review"
          id="273321"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248646</attachid>
            <date>2015-03-14 01:56:39 -0700</date>
            <delta_ts>2015-03-17 02:26:16 -0700</delta_ts>
            <desc>New patch</desc>
            <filename>wk-dom-objects-leaks.diff</filename>
            <type>text/plain</type>
            <size>6268</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwNTlkNjJiLi4xODkxZDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYg
QEAKKzIwMTUtMDMtMTQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIFdlYktpdERPTSBvYmplY3RzIGxlYWtpbmcKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExODc4OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBhIERPTXdpbmRvd09ic2Vy
dmVyIGNsYXNzLCBkZXJpdmVkIGZyb20gRE9NV2luZG93UHJvcGVydHkgdG8KKyAgICAgICAgYmUg
bm90aWZpZWQgd2hlbiB0aGUgd2luZG93IG9iamVjdCBpcyBkZXRhY2hlZCBmcm9tIHRoZSBmcmFt
ZSB0bworICAgICAgICBjbGVhciB0aGUgRE9NIG9iamVjdHMgYXNzb2NpYXRlZCB0byB0aGF0IGZy
YW1lIGluIHRoYXQgY2FzZSB0b28uCisKKyAgICAgICAgKiBiaW5kaW5ncy9nb2JqZWN0L0RPTU9i
amVjdENhY2hlLmNwcDoKKwogMjAxNS0wMy0xMyAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3Rl
bnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFByb2dyZXNzIHRvd2FyZHMgQ01ha2Ugb24gTWFj
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvZ29iamVjdC9ET01PYmplY3RD
YWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nb2JqZWN0L0RPTU9iamVjdENhY2hl
LmNwcAppbmRleCBiN2JmM2U1Li40NzEwNzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nb2JqZWN0L0RPTU9iamVjdENhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9nb2JqZWN0L0RPTU9iamVjdENhY2hlLmNwcApAQCAtMTksNyArMTksOSBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkRPTU9iamVjdENhY2hlLmgiCiAKKyNpbmNsdWRl
ICJET01XaW5kb3dQcm9wZXJ0eS5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRl
ICJOb2RlLmgiCiAjaW5jbHVkZSA8Z2xpYi1vYmplY3QuaD4KQEAgLTk0LDExICs5NiwzOCBAQCBw
dWJsaWM6CiAgICAgewogICAgICAgICBBU1NFUlQoIW1fb2JqZWN0cy5jb250YWlucygmZGF0YSkp
OwogCisgICAgICAgIGlmICghbV9kb21XaW5kb3dPYnNlcnZlciAmJiBtX2ZyYW1lLT5kb2N1bWVu
dCgpLT5kb21XaW5kb3coKSkKKyAgICAgICAgICAgIG1fZG9tV2luZG93T2JzZXJ2ZXIgPSBzdGQ6
Om1ha2VfdW5pcXVlPERPTVdpbmRvd09ic2VydmVyPigqbV9mcmFtZSwgKnRoaXMpOworCiAgICAg
ICAgIG1fb2JqZWN0cy5hcHBlbmQoJmRhdGEpOwogICAgICAgICBnX29iamVjdF93ZWFrX3JlZihk
YXRhLm9iamVjdCwgRE9NT2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVyOjpvYmplY3RGaW5hbGl6ZWRD
YWxsYmFjaywgdGhpcyk7CiAgICAgfQogCiBwcml2YXRlOgorICAgIGNsYXNzIERPTVdpbmRvd09i
c2VydmVyIGZpbmFsOiBwdWJsaWMgV2ViQ29yZTo6RE9NV2luZG93UHJvcGVydHkgeworICAgICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBwdWJsaWM6CisgICAgICAgIERPTVdpbmRv
d09ic2VydmVyKFdlYkNvcmU6OkZyYW1lJiBmcmFtZSwgRE9NT2JqZWN0Q2FjaGVGcmFtZU9ic2Vy
dmVyJiBmcmFtZU9ic2VydmVyKQorICAgICAgICAgICAgOiBET01XaW5kb3dQcm9wZXJ0eSgmZnJh
bWUpCisgICAgICAgICAgICAsIG1fZnJhbWVPYnNlcnZlcihmcmFtZU9ic2VydmVyKQorICAgICAg
ICB7CisgICAgICAgIH0KKworICAgICAgICB2aXJ0dWFsIH5ET01XaW5kb3dPYnNlcnZlcigpCisg
ICAgICAgIHsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgdmlydHVhbCB2b2lk
IHdpbGxEZXRhY2hHbG9iYWxPYmplY3RGcm9tRnJhbWUoKSBvdmVycmlkZQorICAgICAgICB7Cisg
ICAgICAgICAgICAvLyBDbGVhciB0aGUgRE9NV2luZG93UHJvcGVydHkgZmlyc3QsIGFuZCB0aGVu
IG5vdGlmeSB0aGUgRnJhbWUgb2JzZXJ2ZXIuCisgICAgICAgICAgICBET01XaW5kb3dQcm9wZXJ0
eTo6d2lsbERldGFjaEdsb2JhbE9iamVjdEZyb21GcmFtZSgpOworICAgICAgICAgICAgbV9mcmFt
ZU9ic2VydmVyLndpbGxEZXRhY2hHbG9iYWxPYmplY3RGcm9tRnJhbWUoKTsKKyAgICAgICAgfQor
CisgICAgICAgIERPTU9iamVjdENhY2hlRnJhbWVPYnNlcnZlciYgbV9mcmFtZU9ic2VydmVyOwor
ICAgIH07CisKICAgICBzdGF0aWMgdm9pZCBvYmplY3RGaW5hbGl6ZWRDYWxsYmFjayhncG9pbnRl
ciB1c2VyRGF0YSwgR09iamVjdCogZmluYWxpemVkT2JqZWN0KQogICAgIHsKICAgICAgICAgRE9N
T2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVyKiBvYnNlcnZlciA9IHN0YXRpY19jYXN0PERPTU9iamVj
dENhY2hlRnJhbWVPYnNlcnZlcio+KHVzZXJEYXRhKTsKQEAgLTEzMiw3ICsxNjEsMTQgQEAgcHJp
dmF0ZToKICAgICAgICAgZG9tT2JqZWN0Q2FjaGVGcmFtZU9ic2VydmVycygpLnJlbW92ZShmcmFt
ZSk7CiAgICAgfQogCisgICAgdm9pZCB3aWxsRGV0YWNoR2xvYmFsT2JqZWN0RnJvbUZyYW1lKCkK
KyAgICB7CisgICAgICAgIGNsZWFyKCk7CisgICAgICAgIG1fZG9tV2luZG93T2JzZXJ2ZXIgPSBu
dWxscHRyOworICAgIH0KKwogICAgIFZlY3RvcjxET01PYmplY3RDYWNoZURhdGEqLCA4PiBtX29i
amVjdHM7CisgICAgc3RkOjp1bmlxdWVfcHRyPERPTVdpbmRvd09ic2VydmVyPiBtX2RvbVdpbmRv
d09ic2VydmVyOwogfTsKIAogdHlwZWRlZiBIYXNoTWFwPHZvaWQqLCBzdGQ6OnVuaXF1ZV9wdHI8
RE9NT2JqZWN0Q2FjaGVEYXRhPj4gRE9NT2JqZWN0TWFwOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGY0Zjg2NTMuLjQ4Mzc5YWQgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBA
QAorMjAxNS0wMy0xNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+
CisKKyAgICAgICAgW0dUS10gV2ViS2l0RE9NIG9iamVjdHMgbGVha2luZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4Nzg4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIERPTU9iamVjdENhY2hl
IHVuaXQgdGVzdCB0byBjaGVjayB0aGF0IERPTSBvYmplY3RzIGFyZSBhbHNvCisgICAgICAgIHJl
bGVhc2VkIHdoZW4gbmV3IGNvbnRlbnRzIGFyZSBsb2FkZWQgaW4gdGhlIHdlYiB2aWV3LCBhbmQg
dGhlIG9sZAorICAgICAgICBkb2N1bWVudCBpcyBkZXRhY2hlZCBmcm9tIHRoZSBmcmFtZS4KKwor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0RE9NTm9kZS5jcHA6
CisgICAgICAgICh0ZXN0V2ViS2l0RE9NT2JqZWN0Q2FjaGUpOgorICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJQcm9jZXNzVGVzdC5jcHA6CisgICAgICAgIChydW5U
ZXN0KToKKwogMjAxNS0wMy0xMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubi5mYWJsZXRAY3JmLmNh
bm9uLmZyPgogCiAgICAgICAgIFdlYktpdCB0ZXN0IGluZnJhc3RydWN0dXJlIHNob3VsZCBhdXRv
bWF0ZSB0aGUgcHJvY2VzcyBvZiBjbG9uaW5nIFczQyB0ZXN0IHN1aXRlIGFuZCBpbXBvcnRpbmcg
dGVzdHMgZnJvbSBpdApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyR3RrL1Rlc3RET01Ob2RlLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mkd0ay9UZXN0RE9NTm9kZS5jcHAKaW5kZXggMjRkMGMwMC4uNGIyODA0MiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RET01Ob2RlLmNwcAorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdERPTU5vZGUuY3BwCkBA
IC02MiwxMCArNjIsMTUgQEAgc3RhdGljIHZvaWQgdGVzdFdlYktpdERPTU5vZGVUYWdOYW1lcyhX
ZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHN0YXRpYyB2b2lkIHRlc3RXZWJLaXRE
T01PYmplY3RDYWNoZShXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKICAgICBz
dGF0aWMgY29uc3QgY2hhciogdGVzdEhUTUwgPSAiPGh0bWw+PGJvZHk+PGRpdiBpZD0nY29udGFp
bmVyJz48cD5ET00gQ2FjaGUgdGVzdDwvcD48YSBpZD0nbGluayBocmVmPScjJz5saW5rPC9hPjwv
ZGl2PjwvYm9keT48L2h0bWw+IjsKLSAgICB0ZXN0LT5sb2FkSHRtbCh0ZXN0SFRNTCwgbnVsbHB0
cik7Ci0gICAgdGVzdC0+d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CiAKLSAgICBnX2Fzc2VydCh0
ZXN0LT5ydW5XZWJQcm9jZXNzVGVzdCgiV2ViS2l0RE9NTm9kZSIsICJkb20tY2FjaGUiKSk7Cisg
ICAgLy8gUnVuIHRoZSB0ZXN0IDMgdGltZXMgdG8gbWFrZSBzdXJlIHRoZSBET00gb2JqZWN0cyBh
cmUgY29ycmVjdGx5IHJlbGVhc2VkIHdoZW4gdGhlCisgICAgLy8gZG9jdW1lbnQgaXMgZGV0YWNo
ZWQgZnJvbSB0aGUgZnJhbWUgZm9yIGV2ZXJ5IG5ldyBkb2N1bWVudCBjcmVhdGVkLgorICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCAzOyArK2kpIHsKKyAgICAgICAgdGVzdC0+bG9hZEh0bWwo
dGVzdEhUTUwsIG51bGxwdHIpOworICAgICAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQo
KTsKKworICAgICAgICBnX2Fzc2VydCh0ZXN0LT5ydW5XZWJQcm9jZXNzVGVzdCgiV2ViS2l0RE9N
Tm9kZSIsICJkb20tY2FjaGUiKSk7CisgICAgfQogfQogCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9XZWJQcm9jZXNzVGVzdC5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvV2ViUHJvY2Vzc1Rlc3QuY3BwCmluZGV4IDY0
M2I1NDkuLjBkMWUxMjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0Mkd0ay9XZWJQcm9jZXNzVGVzdC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQyR3RrL1dlYlByb2Nlc3NUZXN0LmNwcApAQCAtNjQsNyArNjQsMTQgQEAgc3RhdGlj
IEpTVmFsdWVSZWYgcnVuVGVzdChKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVu
Y3Rpb24sIEpTT2JqZWN0UmUKIAogICAgIFdlYktpdFdlYlBhZ2UqIHdlYlBhZ2UgPSBXRUJLSVRf
V0VCX1BBR0UoSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKICAgICBnX2Fzc2VydChX
RUJLSVRfSVNfV0VCX1BBR0Uod2ViUGFnZSkpOwotICAgIFdlYlByb2Nlc3NUZXN0Ojphc3NlcnRP
YmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVzKEdfT0JKRUNUKHdlYlBhZ2UpKTsKKyAgICAv
LyBUZXN0IC9XZWJLaXRET01Ob2RlL2RvbS1jYWNoZSBpcyBhbiBleGNlcHRpb24sIGJlY2F1c2Ug
aXQncyBjYWxsZWQgdHdpY2UsIHNvCisgICAgLy8gdGhlIFdlYlBhZ2UgaXMgZGVzdHJveWVkIGFm
dGVyIHRoZSBzZWNvbmQgdGltZS4KKyAgICBpZiAoZ19zdHJfZXF1YWwodGVzdFBhdGguZ2V0KCks
ICJXZWJLaXRET01Ob2RlL2RvbS1jYWNoZSIpKSB7CisgICAgICAgIHN0YXRpYyB1bnNpZ25lZCBk
b21DYWNoZVRlc3RSdW5Db3VudCA9IDA7CisgICAgICAgIGlmICgrK2RvbUNhY2hlVGVzdFJ1bkNv
dW50ID09IDMpCisgICAgICAgICAgICBXZWJQcm9jZXNzVGVzdDo6YXNzZXJ0T2JqZWN0SXNEZWxl
dGVkV2hlblRlc3RGaW5pc2hlcyhHX09CSkVDVCh3ZWJQYWdlKSk7CisgICAgfSBlbHNlCisgICAg
ICAgIFdlYlByb2Nlc3NUZXN0Ojphc3NlcnRPYmplY3RJc0RlbGV0ZWRXaGVuVGVzdEZpbmlzaGVz
KEdfT0JKRUNUKHdlYlBhZ2UpKTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJQcm9jZXNzVGVz
dD4gdGVzdCA9IFdlYlByb2Nlc3NUZXN0OjpjcmVhdGUoU3RyaW5nOjpmcm9tVVRGOCh0ZXN0UGF0
aC5nZXQoKSkpOwogICAgIHJldHVybiBKU1ZhbHVlTWFrZUJvb2xlYW4oY29udGV4dCwgdGVzdC0+
cnVuVGVzdChnX3N0cnJzdHIodGVzdFBhdGguZ2V0KCksICIvIikgKyAxLCB3ZWJQYWdlKSk7Cg==
</data>
<flag name="review"
          id="273520"
          type_id="1"
          status="+"
          setter="svillar"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>250277</attachid>
            <date>2015-04-07 10:54:01 -0700</date>
            <delta_ts>2015-04-07 10:54:54 -0700</delta_ts>
            <desc>Fix test case</desc>
            <filename>domcacheleaks.c.diff</filename>
            <type>text/plain</type>
            <size>567</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">LS0tIC90bXAvdGVzdC5jCTIwMTUtMDQtMDcgMTk6MTE6MzguNjgyMzQyMzExICswMjAwCisrKyBk
b21jYWNoZWxlYWtzLmMJMjAxNS0wNC0wNyAxOTozMzoxMy4zMzY3NzgwMzUgKzAyMDAKQEAgLTEz
MSw2ICsxMzEsNyBAQAogCQkJY29udGludWU7CiAKIAkJcnVsZV90ZXh0ID0gd2Via2l0X2RvbV9j
c3NfcnVsZV9nZXRfY3NzX3RleHQgKHJ1bGUpOworICAgICAgICAgICAgICAgIGdfb2JqZWN0X3Vu
cmVmIChydWxlKTsKIAogCQkvKiBGaW5kIHRoZSBzdGFydCBvZiB0aGUgc3R5bGUgPT4gZW5kIG9m
IHRoZSBzZWxlY3RvciAqLwogCQlzZWxlY3Rvcl9lbmQgPSBnX3N0cnN0cl9sZW4gKHJ1bGVfdGV4
dCwgLTEsICIgeyIpOwpAQCAtMTY4LDYgKzE2OSw3IEBACiAJCXN0eWxlLAogCQlsZW5ndGgsIC8q
IEluZGV4ICovCiAJCU5VTEwpOworICAgICAgICBnX29iamVjdF91bnJlZiAoc2hlZXQpOwogfQog
CiBzdGF0aWMgdm9pZApAQCAtMjA3LDYgKzIwOSw4IEBACiAJCQlzZWxlY3RvciwKIAkJCXN0eWxl
KTsKIAl9CisKKyAgICAgICAgZ19vYmplY3RfdW5yZWYgKGZyYW1lcyk7CiB9CiAKIHZvaWQK
</data>

          </attachment>
      

    </bug>

</bugzilla>