<?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>124747</bug_id>
          
          <creation_ts>2013-11-21 14:49:00 -0800</creation_ts>
          <short_desc>Web Inspector: Allow showing a context menu on all mouse events.</short_desc>
          <delta_ts>2013-11-26 00:26:39 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>124363</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>953310</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-11-21 14:49:00 -0800</bug_when>
    <thetext>Right now trying to show a context menu on an event other than a contextmenu event will fail. In order to support https://bugs.webkit.org/show_bug.cgi?id=124363, and other UI refinements where we would like to show a context menu with submenus rather than pop-up a hidden &lt;select&gt;, we need to be able to show a context menu from any mouse event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953313</commentid>
    <comment_count>1</comment_count>
      <attachid>217619</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-11-21 15:08:47 -0800</bug_when>
    <thetext>Created attachment 217619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953325</commentid>
    <comment_count>2</comment_count>
      <attachid>217619</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-11-21 15:49:40 -0800</bug_when>
    <thetext>Comment on attachment 217619
Patch

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

There are a lot of layering violations here. r- for this patch because I&apos;d like to see a new patch with them addressed.

Source/WebCore/platform is special. It is supposed to be a base platform layer. Files in that directory should not know about anything else inside of Source/WebCore.

Also after digging around in WebCore more I see ContextMenuController which seems to do a lot of what you want.

Sorry if I was misleading you before, I wasn&apos;t really familiar with the ContextMenu handling in WebCore.

&gt; Source/WebCore/ChangeLog:19
&gt; +        * platform/ContextMenu.h:
&gt; +        Add Mac-specific members and Objective-C class to handle the display of an
&gt; +        NSMenu and act as the target of its NSMenuItems.

I think making this Mac-specific is unnecessarily ignoring other ports that share the Inspector.

I don&apos;t yet know how this will be used by the inspector, but I would like to avoid seeing code in the Inspector that looks like:

    #if PLATFORM(MAC)
    // Do something really cool
    #else
    // Fallback to something less cool
    #endif

For something like this you can define the interface for everyone, and put stub notImplemented(); impls in other Platform ContextMenu* implementation files, along with a // FIXME: Bug(foo) bugzilla bug for each port.

If the feature is something we can&apos;t do in the Inspector without implementation support, then we can make runtime check functions &quot;canShowContextMenuAtAnyTime()&quot; and return true on ports that support the feature and false on others. Eventually when all ports support the feature we could remove the if check. I don&apos;t think that would really be needed here though.

So, worst case, the inspector code would end up looking like:

    if (hasCapability(...)) {
      // Do something really cool
    } else {
      // Do something less cool, or nothing at all. This port should really implement capability(...)!
    }

&gt; Source/WebCore/platform/ContextMenu.h:35
&gt; +#include &quot;Event.h&quot;
&gt; +#include &quot;Page.h&quot;

Layering violation.

&gt; Source/WebCore/platform/ContextMenu.h:49
&gt; +#ifdef __OBJC__
&gt; +@class WebContextMenuTarget;
&gt; +#else
&gt; +class WebContextMenuTarget;
&gt; +#endif

Ugly pattern eh? We have macros for this! You should be able to do:

    OBJC_CLASS WebContextMenuTarget;

&gt; Source/WebCore/platform/ContextMenu.h:102
&gt; +        WebContextMenuTarget* m_contextMenuTarget;

Nit: RetainPtr

&gt; Source/WebCore/platform/ContextMenu.h:103
&gt; +        Page* m_page;

m_page is no longer used.

&gt; Source/WebCore/platform/mac/ContextMenuMac.mm:35
&gt; +#include &quot;Document.h&quot;
&gt; +#include &quot;DOMWrapperWorld.h&quot;
&gt; +#include &quot;EventTarget.h&quot;
&gt; +#include &quot;FrameView.h&quot;
&gt; +#include &quot;Node.h&quot;
&gt; +#include &quot;MouseEvent.h&quot;
&gt; +#include &quot;ScriptFunctionCall.h&quot;
&gt; +#include &quot;UserGestureIndicator.h&quot;

Here are a lot of layering violations that would need to be addressed.

&gt; Source/WebCore/platform/mac/ContextMenuMac.mm:50
&gt; +    m_contextMenuTarget = [[WebContextMenuTarget alloc] init];

This would be leaked as written because m_contextMenuTarget is never deallocated. Also, the existing NSMutableArray allocation is sub-optimal. Using RetainPtr would be better, less error prone. I&apos;d much rather see m_contextMenuTarget be a RetainPtr and this kind of constructor be rewritten as:

    ContextMenu::ContextMenu()
        : m_platformDescription(adoptNS([[NSMutableArray alloc] init]))
        , m_contextMenuTarget(adoptNS([[WebContextMenuTarget alloc] init]))
    {
    }

Less retain/release churn, and now you don&apos;t need to worry about releasing the ivars.

&gt; Source/WebCore/platform/mac/ContextMenuMac.mm:182
&gt; +@implementation WebContextMenuTarget
&gt; +
&gt; +- (void)menuSelection:(NSMenuItem *)menuItem
&gt; +{
&gt; +    JSC::ExecState* frontendExecState = execStateFromPage(WebCore::debuggerWorld(), self.page);
&gt; +    WebCore::ScriptObject frontendApiObject;
&gt; +    if (!WebCore::ScriptGlobalObject::get(frontendExecState, &quot;InspectorFrontendAPI&quot;, frontendApiObject)) {
&gt; +        ASSERT_NOT_REACHED();
&gt; +        return;
&gt; +    }
&gt; +
&gt; +    WebCore::UserGestureIndicator gestureIndicator(WebCore::DefinitelyProcessingUserGesture);
&gt; +    WebCore::ScriptFunctionCall function(frontendApiObject, &quot;contextMenuItemSelected&quot;);
&gt; +    function.appendArgument([menuItem tag] - WebCore::ContextMenuItemBaseCustomTag);
&gt; +    function.call();
&gt; +}
&gt; +
&gt; +@end

WebCore/platform/ContextMenu should certainly not be running JavaScript on a page!

A better API model would be to give the ContextMenu a ContextMenuClient. And that ContextMenuClient, presumably in the Inspector would be told of the menu selection and maybe also if the menu was dismissed without a selection.

In fact, I think that is what WebCore/page/ContextMenuController.h already provides.

    • ContextMenuController contains a platform ContextMenu
    • ContextMenuController takes in a Page and Client: ContextMenuController(Page&amp;, ContextMenuClient&amp;);
    • ContextMenuController&apos;s API has: void showContextMenu(Event*, PassRefPtr&lt;ContextMenuProvider&gt;);
    • ContextMenuClient has methods for a selection and when the menu is destroyed (maybe that means dismissed):
        virtual void contextMenuDestroyed() = 0;
        virtual void contextMenuItemSelected(ContextMenuItem*, const ContextMenu*) = 0;

It looks like ContextMenuController is already a platform abstraction over &quot;show a context menu&quot;. I think Inspector code should be able to create and use your own ContextMenuController in Inspector code.

Some notes about ContextMenuController. It looks like is geared specifically toward being a &quot;Page&quot; right click context menu. For example it has:

    #if ENABLE(INSPECTOR)
        if (m_page.inspectorController()-&gt;enabled())
            addInspectElementItem();
    #endif

And a populate method with all kinds of page specific stuff.

I think you might want to abstract ContextMenuController to be more generic, and make a PageContextMenuController for WebCore::Page, and use the newly clean base ContextMenuController for the inspector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953515</commentid>
    <comment_count>3</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-11-22 06:01:04 -0800</bug_when>
    <thetext>Thanks for the thorough review Joe. There&apos;s actually another approach that we could take that appears to be simpler. We could &quot;simply&quot; call ContextMenuController::showContextMenuAt() when we&apos;re asked to show a context menu in something other than a contextmenu event handler. This would generate a contextmenu event at the same location as the mouse event and let the regular context menu behaviour operate. This adds fairly little code to ContextMenuController::showContextMenu(Event* event):

#if USE(ACCESSIBILITY_CONTEXT_MENUS)
    if (event-&gt;type() != eventNames().contextmenuEvent &amp;&amp; event-&gt;isMouseEvent()) {
        Frame* frame = event-&gt;target()-&gt;toNode()-&gt;document().frame();
        MouseEvent* mouseEvent = toMouseEvent(event);
        IntPoint mousePoint = IntPoint(mouseEvent-&gt;clientX(), mouseEvent-&gt;clientY());
        showContextMenuAt(frame, mousePoint);
    }
#endif

Maybe we should do something like this. Perhaps we could add a new             InspectorFrontendHost.dispatchContextMenuEvent that would automatically be called from WebInspector.ContextMenu.prototype.show() in the cases where the event that was passed in was not a mouse event.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953524</commentid>
    <comment_count>4</comment_count>
      <attachid>217678</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-11-22 07:14:02 -0800</bug_when>
    <thetext>Created attachment 217678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953696</commentid>
    <comment_count>5</comment_count>
      <attachid>217678</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-11-22 15:21:31 -0800</bug_when>
    <thetext>Comment on attachment 217678
Patch

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

r=me, but I do have enough questions that I&apos;d be happy to look at an updated patch if you have enough changes.

&gt; Source/WebCore/inspector/InspectorFrontendHost.cpp:295
&gt; +    m_frontendPage-&gt;contextMenuController().showContextMenuAt(frame, mousePoint);

By using Page&apos;s ContextMenuController, does that mean you get things like &quot;Inspect Element&quot; added to the context menu? Or is the accessibility context menu path special?

&gt; Source/WebCore/inspector/InspectorFrontendHost.idl:65
&gt; +    [Custom] void simulateContextmenuEvent(MouseEvent event);

Does this need to be custom because of MouseEvent? I think showContextMenu needed to be custom because of &quot;any&quot;.

I&apos;m not sure about the name, but I could live with it. I&apos;d rather see correct camel casing though. Here are some suggestions:

    void simulateContextMenuEvent(...)
    void simulateContextMenuEventAndShowContextMenu(...)
    void dispatchContextMenuEventWithEvent(...)
    void showContextMenuWithoutEvent(...)
    void showContextMenuAtLocation(x, y)

Will this be difficult to implement in RWIInspectorFrontendHost? Should that provide a slightly different API?

&gt; Source/WebInspectorUI/UserInterface/ContextMenu.js:199
&gt; +        this._menuObject = this._buildDescriptor();

I&apos;d like to see:

    console.assert(!this._menuObject);

And the menuObject is deleted when it it no longer needed.

&gt; Source/WebInspectorUI/UserInterface/ContextMenu.js:205
&gt; +            if (this._event.type !== &quot;contextmenu&quot; &amp;&amp; typeof InspectorFrontendHost.simulateContextmenuEvent === &quot;function&quot;) {
&gt; +                this._event.target.addEventListener(&quot;contextmenu&quot;, this, true);
&gt; +                InspectorFrontendHost.simulateContextmenuEvent(this._event);

Seeing as this only works with a MouseEvent, we should test and ensure that the event is a context event or a mouse event. Perhaps an assert. You might be able to just check &quot;instanceof MouseEvent&quot;.

&gt; Source/WebInspectorUI/UserInterface/ContextMenu.js:207
&gt; +                InspectorFrontendHost.showContextMenu(this._event, this._menuObject);

this can delete this._menuObject because it is done with it.

&gt; Source/WebInspectorUI/UserInterface/ContextMenu.js:218
&gt; +        InspectorFrontendHost.showContextMenu(event, this._menuObject);

And this can delete this._menuObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953980</commentid>
    <comment_count>6</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-11-25 05:53:18 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 217678 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=217678&amp;action=review
&gt; 
&gt; r=me, but I do have enough questions that I&apos;d be happy to look at an updated patch if you have enough changes.

I&apos;ll have an updated patch shortly for you to look at.

&gt; &gt; Source/WebCore/inspector/InspectorFrontendHost.cpp:295
&gt; &gt; +    m_frontendPage-&gt;contextMenuController().showContextMenuAt(frame, mousePoint);
&gt; 
&gt; By using Page&apos;s ContextMenuController, does that mean you get things like &quot;Inspect Element&quot; added to the context menu? Or is the accessibility context menu path special?

&quot;Inspect Element&quot; is indeed added.

&gt; &gt; Source/WebCore/inspector/InspectorFrontendHost.idl:65
&gt; &gt; +    [Custom] void simulateContextmenuEvent(MouseEvent event);
&gt; 
&gt; Does this need to be custom because of MouseEvent? I think showContextMenu needed to be custom because of &quot;any&quot;.

Yes, it was the MouseEvent. I&apos;ll change it to Event which removes the requires for the [Custom].

&gt; I&apos;m not sure about the name, but I could live with it. I&apos;d rather see correct camel casing though. Here are some suggestions:
&gt; 
&gt;     void simulateContextMenuEvent(...)
&gt;     void simulateContextMenuEventAndShowContextMenu(...)
&gt;     void dispatchContextMenuEventWithEvent(...)
&gt;     void showContextMenuWithoutEvent(...)
&gt;     void showContextMenuAtLocation(x, y)

I actually went with dispatchEventAsContextMenuEvent(…).

&gt; Will this be difficult to implement in RWIInspectorFrontendHost? Should that provide a slightly different API?

There is nothing to be done with the RWIInspectorFrontendHost, showing a contextual menu outside of a contextmenu event has always worked in the RWI because the host provides a very different handling of the context menu.

&gt; &gt; Source/WebInspectorUI/UserInterface/ContextMenu.js:199
&gt; &gt; +        this._menuObject = this._buildDescriptor();
&gt; 
&gt; I&apos;d like to see:
&gt; 
&gt;     console.assert(!this._menuObject);
&gt; 
&gt; And the menuObject is deleted when it it no longer needed.

I&apos;m actually reverting to only setting this._contextMenu in the code branch where we end up using InspectorFrontendHost.dispatchEventAsContextMenuEvent.

&gt; &gt; Source/WebInspectorUI/UserInterface/ContextMenu.js:205
&gt; &gt; +            if (this._event.type !== &quot;contextmenu&quot; &amp;&amp; typeof InspectorFrontendHost.simulateContextmenuEvent === &quot;function&quot;) {
&gt; &gt; +                this._event.target.addEventListener(&quot;contextmenu&quot;, this, true);
&gt; &gt; +                InspectorFrontendHost.simulateContextmenuEvent(this._event);
&gt; 
&gt; Seeing as this only works with a MouseEvent, we should test and ensure that the event is a context event or a mouse event. Perhaps an assert. You might be able to just check &quot;instanceof MouseEvent&quot;.

I&apos;m adding this assert at the top of the function:

        console.assert(this._event instanceof MouseEvent);

&gt; &gt; Source/WebInspectorUI/UserInterface/ContextMenu.js:207
&gt; &gt; +                InspectorFrontendHost.showContextMenu(this._event, this._menuObject);
&gt; 
&gt; this can delete this._menuObject because it is done with it.

I&apos;ll be deleting this._menuObject in handleEvent.

&gt; &gt; Source/WebInspectorUI/UserInterface/ContextMenu.js:218
&gt; &gt; +        InspectorFrontendHost.showContextMenu(event, this._menuObject);
&gt; 
&gt; And this can delete this._menuObject.

Right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>953983</commentid>
    <comment_count>7</comment_count>
      <attachid>217800</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-11-25 05:59:21 -0800</bug_when>
    <thetext>Created attachment 217800
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954102</commentid>
    <comment_count>8</comment_count>
      <attachid>217800</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-11-25 14:23:17 -0800</bug_when>
    <thetext>Comment on attachment 217800
Patch

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

r=me, thanks

&gt; Source/WebCore/inspector/InspectorFrontendHost.cpp:296
&gt; +#endif

You should add the follow for non-ACCESSIBILITY_CONTEXT_MENUS compiles:

    #else
        UNUSED_PARAM(event);
    #endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954225</commentid>
    <comment_count>9</comment_count>
      <attachid>217866</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-11-25 23:50:51 -0800</bug_when>
    <thetext>Created attachment 217866
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954231</commentid>
    <comment_count>10</comment_count>
      <attachid>217866</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-26 00:26:36 -0800</bug_when>
    <thetext>Comment on attachment 217866
Patch for landing

Clearing flags on attachment: 217866

Committed r159780: &lt;http://trac.webkit.org/changeset/159780&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>954232</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-11-26 00:26:39 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217619</attachid>
            <date>2013-11-21 15:08:47 -0800</date>
            <delta_ts>2013-11-22 07:13:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124747-20131122000844.patch</filename>
            <type>text/plain</type>
            <size>7743</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU1NDI2ZTgxODc5ZmY0
MjcyYWZjOWZjZDhmZTE0OTU0ZWQ3ZWE3Yi4uNDg0ZDBiYTllOWYxMDM4NTIzMTZiNzlkYmEzMTZl
YTE5NjM0YmE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEzLTExLTIxICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
QWxsb3cgc2hvd2luZyBhIGNvbnRleHQgbWVudSBvbiBhbGwgbW91c2UgZXZlbnRzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzQ3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgQ29udGV4dE1l
bnU6OnNob3coRXZlbnQqKSBtZXRob2QgdGhhdCBjYW4gYmUgY2FsbGVkIG1hbnVhbGx5IGluIFdl
YkNvcmUKKyAgICAgICAgdG8gc2hvdyBhIGNvbnRleHQgbWVudSBvdXRzaWRlIG9mIGEgY29udGV4
dG1lbnUgZXZlbnQgaGFuZGxlci4gVGhlIGNvZGUgaXMKKyAgICAgICAgTWFjLXNwZWNpZmljIGZv
ciB0aGUgbW9tZW50LiAKKworICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0NvbnRleHRN
ZW51KToKKyAgICAgICAgQ2hlY2sgaWYgd2UncmUgcHJvY2Vzc2luZyBhIGNvbnRleHRtZW51IGV2
ZW50LCBhbmQgaWYgbm90IG1hbnVhbGx5IHNob3cgdGhlCisgICAgICAgIGNvbnRleHQgbWVudSB2
aWEgYSBjYWxsIHRvIHRoZSBuZXcgQ29udGV4dE1lbnU6OnNob3coRXZlbnQqKSBtZXRob2QuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9Db250ZXh0TWVudS5oOgorICAgICAgICBBZGQgTWFjLXNwZWNp
ZmljIG1lbWJlcnMgYW5kIE9iamVjdGl2ZS1DIGNsYXNzIHRvIGhhbmRsZSB0aGUgZGlzcGxheSBv
ZiBhbgorICAgICAgICBOU01lbnUgYW5kIGFjdCBhcyB0aGUgdGFyZ2V0IG9mIGl0cyBOU01lbnVJ
dGVtcy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9Db250ZXh0TWVudU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRleHRNZW51OjpDb250ZXh0TWVudSk6CisgICAgICAgIENyZWF0ZSBh
biBpbnN0YW5jZSBvZiBvdXIgbmV3IE9iamVjdGl2ZS1DIGNsYXNzIFdlYkNvbnRleHRNZW51VGFy
Z2V0IGFuZCBzYXZlCisgICAgICAgIGl0IHRvIGFuIGl2YXIgdGhhdCB3ZSdsbCB1c2UgbGF0ZXIg
dG8gcmVnaXN0ZXIgYXMgdGhlIHRhcmdldCBvZiBOU01lbnVJdGVtcworICAgICAgICBiZWluZyBk
aXNwbGF5ZWQgaW4gdGhlIG1lbnUuCisKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Ojpz
aG93KToKKyAgICAgICAgUmVqZWN0IGFueSBldmVudCB0aGF0IGlzbid0IGEgbW91c2UgZXZlbnQs
IGNyZWF0ZSBhbiBOU01lbnUgdG8gaG9sZCB0aGUgTlNNZW51SXRlbXMKKyAgICAgICAgdGhhdCB3
ZXJlIGFkZGVkIHRvIHRoaXMgQ29udGV4dE1lbnUgYW5kIHByb2Nlc3MgZWFjaCBvZiB0aG9zZSBO
U01lbnVJdGVtcyB0aG91Z2gKKyAgICAgICAgQ29udGV4dE1lbnU6OnByb2Nlc3NNZW51SXRlbSgp
LiBGaW5hbGx5LCBjb252ZXJ0IHRoZSBjb29yZGluYXRlcyBvZiB0aGUgZXZlbnQgZnJvbQorICAg
ICAgICBwYWdlIGNvb3JkaW5hdGVzIHRvIHNjcmVlbiBjb29yZGluYXRlcyB0byBjYWxsIC1wb3BV
cE1lbnVQb3NpdGlvbmluZ0l0ZW06YXRMb2NhdGlvbjppblZpZXc6LgorCisgICAgICAgIChXZWJD
b3JlOjpDb250ZXh0TWVudTo6cHJvY2Vzc01lbnVJdGVtKToKKyAgICAgICAgUmVnaXN0ZXIgb3Vy
IFdlYkNvbnRleHRNZW51VGFyZ2V0IGl2YXIgYXMgdGhlIE5TTWVudUl0ZW0gdGFyZ2V0IGFuZCBw
cm9jZXNzIGl0ZW1zCisgICAgICAgIGluIGEgcG90ZW50aWFsIHN1Ym1lbnUuCisKKyAgICAgICAg
KC1bV2ViQ29udGV4dE1lbnVUYXJnZXQgbWVudVNlbGVjdGlvbjpdKToKKyAgICAgICAgQ2FsbGVk
IHVwb24gc2VsZWN0aW9uIG9mIG9uZSB0aGUgcHJvY2Vzc2VkIE5TTWVudUl0ZW1zIHdoZXJlIHdl
IHBhc3MgdGhlIG1lbnUgaXRlbSdzCisgICAgICAgIHRhZyBiYWNrIHRvIHRoZSBmcm9udC1lbmQn
cyBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZCgpLgorCiAyMDEzLTExLTIwICBIYW5zIE11bGxlciAg
PGhtdWxsZXJAYWRvYmUuY29tPgogCiAgICAgICAgIFtDU1MgU2hhcGVzXSBBZGQgQm94U2hhcGUg
YW5kIEZsb2F0Um91bmRpbmdSZWN0IGNsYXNzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmNwcAppbmRleCBjN2EzY2QyMGE4YjUzNmI1MWQ2Yzg0ZDcwNWVh
Y2I5ZmIzZThjOWQ2Li40ZGFlN2ZkZDI0MzFlOGVkYWIzNjQzZTAxNjc0OGJlY2I4NjI1MGI5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC0x
NjYsNiArMTY2LDkgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnNob3dDb250ZXh0TWVu
dShFdmVudCogZXZlbnQpCiAjZWxzZQogICAgIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIGN1c3Rv
bU1lbnUgPSBtX2NsaWVudC5nZXRDdXN0b21NZW51RnJvbURlZmF1bHRJdGVtcyhtX2NvbnRleHRN
ZW51LmdldCgpKTsKICAgICBtX2NvbnRleHRNZW51LT5zZXRQbGF0Zm9ybURlc2NyaXB0aW9uKGN1
c3RvbU1lbnUpOworCisgICAgaWYgKGV2ZW50LT50eXBlKCkgIT0gZXZlbnROYW1lcygpLmNvbnRl
eHRtZW51RXZlbnQpCisgICAgICAgIG1fY29udGV4dE1lbnUtPnNob3coZXZlbnQpOwogI2VuZGlm
CiAgICAgZXZlbnQtPnNldERlZmF1bHRIYW5kbGVkKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Q29udGV4dE1lbnUuaAppbmRleCBlNzZkMzJkMTJjOTE3YTM3MGQ3MzVmZmUxODFkOGVlOWRkNDZj
ZjNhLi42ZmRiM2M3NWE4OTgyZWMxOTJhZjQ1ZmFlM2ZkOWY5Zjc3OGFmMjQ4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL0NvbnRleHRNZW51LmgKQEAgLTMxLDYgKzMxLDggQEAKICNpbmNsdWRlIDx3
dGYvTm9uY29weWFibGUuaD4KIAogI2luY2x1ZGUgIkNvbnRleHRNZW51SXRlbS5oIgorI2luY2x1
ZGUgIkV2ZW50LmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTWVudURl
c2NyaXB0aW9uLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKQEAgLTQwLDYg
KzQyLDEyIEBACiAjaW5jbHVkZSA8d2luZG93cy5oPgogI2VuZGlmCiAKKyNpZmRlZiBfX09CSkNf
XworQGNsYXNzIFdlYkNvbnRleHRNZW51VGFyZ2V0OworI2Vsc2UKK2NsYXNzIFdlYkNvbnRleHRN
ZW51VGFyZ2V0OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIENv
bnRleHRNZW51Q29udHJvbGxlcjsKQEAgLTcyLDYgKzgwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiAgICAgICAgIHZvaWQgaW5zZXJ0SXRlbSh1bnNpZ25lZCBwb3NpdGlvbiwgQ29udGV4dE1l
bnVJdGVtJik7CiAgICAgICAgIHZvaWQgYXBwZW5kSXRlbShDb250ZXh0TWVudUl0ZW0mKTsKKyAg
ICAgICAgdm9pZCBzaG93KEV2ZW50Kik7CiAKICAgICAgICAgQ29udGV4dE1lbnVJdGVtKiBpdGVt
QXRJbmRleCh1bnNpZ25lZCwgY29uc3QgUGxhdGZvcm1NZW51RGVzY3JpcHRpb24pOwogCkBAIC05
MCw2ICs5OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiBQTEFURk9STShNQUMpCiAgICAg
ICAgIC8vIEtlZXAgdGhpcyBpbiBzeW5jIHdpdGggdGhlIFBsYXRmb3JtTWVudURlc2NyaXB0aW9u
IHR5cGVkZWYKICAgICAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiBtX3BsYXRmb3JtRGVz
Y3JpcHRpb247CisgICAgICAgIFdlYkNvbnRleHRNZW51VGFyZ2V0KiBtX2NvbnRleHRNZW51VGFy
Z2V0OworICAgICAgICBQYWdlKiBtX3BhZ2U7CisgICAgICAgIHZvaWQgcHJvY2Vzc01lbnVJdGVt
KE5TTWVudUl0ZW0qKTsKICNlbHNlCiAgICAgICAgIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIG1f
cGxhdGZvcm1EZXNjcmlwdGlvbjsKICNpZiBPUyhXSU5DRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9Db250ZXh0TWVudU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9Db250ZXh0TWVudU1hYy5tbQppbmRleCAwNWMwYTNkZDk1NWFmMjdhNjU4MTdj
Y2ZlMDUxYTU1ZmUxODAyNjNmLi4wMmRjZTY0YjcyZTFhNmMzMmViNWQ5NmY3NTRjNDZmOTQxOWE1
NzBmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvQ29udGV4dE1lbnVN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0NvbnRleHRNZW51TWFjLm1t
CkBAIC0yNSwxNSArMjUsMjkgQEAKIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkNv
bnRleHRNZW51LmgiCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJET01XcmFwcGVy
V29ybGQuaCIKKyNpbmNsdWRlICJFdmVudFRhcmdldC5oIgorI2luY2x1ZGUgIkZyYW1lVmlldy5o
IgorI2luY2x1ZGUgIk5vZGUuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAi
U2NyaXB0RnVuY3Rpb25DYWxsLmgiCisjaW5jbHVkZSAiVXNlckdlc3R1cmVJbmRpY2F0b3IuaCIK
IAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogCitAaW50ZXJmYWNlIFdlYkNvbnRleHRNZW51
VGFyZ2V0IDogTlNPYmplY3QKKy0gKHZvaWQpbWVudVNlbGVjdGlvbjooTlNNZW51SXRlbSAqKW1l
bnVJdGVtOworQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV2ViQ29yZTo6UGFnZSogcGFn
ZTsKK0BlbmQKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBDb250ZXh0TWVudTo6Q29udGV4dE1l
bnUoKQogewogICAgIE5TTXV0YWJsZUFycmF5KiBhcnJheSA9IFtbTlNNdXRhYmxlQXJyYXkgYWxs
b2NdIGluaXRdOwogICAgIG1fcGxhdGZvcm1EZXNjcmlwdGlvbiA9IGFycmF5OworICAgIG1fY29u
dGV4dE1lbnVUYXJnZXQgPSBbW1dlYkNvbnRleHRNZW51VGFyZ2V0IGFsbG9jXSBpbml0XTsKICAg
ICBbYXJyYXkgcmVsZWFzZV07CiB9CiAKQEAgLTYyLDYgKzc2LDQ0IEBAIHZvaWQgQ29udGV4dE1l
bnU6Omluc2VydEl0ZW0odW5zaWduZWQgcG9zaXRpb24sIENvbnRleHRNZW51SXRlbSYgaXRlbSkK
ICAgICBbcGxhdGZvcm1JdGVtIHJlbGVhc2VdOwogfQogCit2b2lkIENvbnRleHRNZW51OjpzaG93
KEV2ZW50KiBldmVudCkKK3sKKyAgICBpZiAoIWV2ZW50LT5pc01vdXNlRXZlbnQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgTW91c2VFdmVudCogbW91c2VFdmVudCA9IHRvTW91c2VFdmVudChl
dmVudCk7CisKKyAgICBOU01lbnUqIG1lbnUgPSBbW1tOU01lbnUgYWxsb2NdIGluaXRdIGF1dG9y
ZWxlYXNlXTsKKyAgICBbbWVudSBzZXRBdXRvZW5hYmxlc0l0ZW1zOk5PXTsKKyAgICAKKyAgICBO
U0FycmF5KiBtZW51SXRlbXMgPSBtX3BsYXRmb3JtRGVzY3JpcHRpb24uZ2V0KCk7CisgICAgZm9y
IChOU01lbnVJdGVtKiBtZW51SXRlbSBpbiBtZW51SXRlbXMpIHsKKyAgICAgICAgcHJvY2Vzc01l
bnVJdGVtKG1lbnVJdGVtKTsKKyAgICAgICAgW21lbnUgaW5zZXJ0SXRlbTptZW51SXRlbSBhdElu
ZGV4OlttZW51IG51bWJlck9mSXRlbXNdXTsKKyAgICB9CisKKyAgICBEb2N1bWVudCYgZG9jdW1l
bnQgPSBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpLT5kb2N1bWVudCgpOworICAgIG1fY29udGV4
dE1lbnVUYXJnZXQucGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKKworICAgIEZyYW1lVmlldyogZnJh
bWVWaWV3ID0gZG9jdW1lbnQudmlldygpOworICAgIEludFBvaW50IG1vdXNlUG9pbnQgPSBJbnRQ
b2ludChtb3VzZUV2ZW50LT5jbGllbnRYKCksIG1vdXNlRXZlbnQtPmNsaWVudFkoKSk7CisgICAg
SW50UG9pbnQgc2NyZWVuUG9pbnQgPSBmcmFtZVZpZXctPmNvbnRlbnRzVG9TY3JlZW4oSW50UmVj
dChmcmFtZVZpZXctPndpbmRvd1RvQ29udGVudHMobW91c2VQb2ludCksIEludFNpemUoKSkpLmxv
Y2F0aW9uKCk7CisgICAgCisgICAgW21lbnUgcG9wVXBNZW51UG9zaXRpb25pbmdJdGVtOm5pbCBh
dExvY2F0aW9uOk5TTWFrZVBvaW50KHNjcmVlblBvaW50LngoKSwgc2NyZWVuUG9pbnQueSgpKSBp
blZpZXc6bmlsXTsKK30KKwordm9pZCBDb250ZXh0TWVudTo6cHJvY2Vzc01lbnVJdGVtKE5TTWVu
dUl0ZW0qIG1lbnVJdGVtKQoreworICAgIFttZW51SXRlbSBzZXRUYXJnZXQ6bV9jb250ZXh0TWVu
dVRhcmdldF07CisgICAgW21lbnVJdGVtIHNldEFjdGlvbjpAc2VsZWN0b3IobWVudVNlbGVjdGlv
bjopXTsKKworICAgIGlmICghW21lbnVJdGVtIGhhc1N1Ym1lbnVdKQorICAgICAgICByZXR1cm47
CisKKyAgICBmb3IgKE5TTWVudUl0ZW0qIHN1Yk1lbnVJdGVtIGluIFtbbWVudUl0ZW0gc3VibWVu
dV0gaXRlbUFycmF5XSkKKyAgICAgICAgcHJvY2Vzc01lbnVJdGVtKHN1Yk1lbnVJdGVtKTsKK30K
KwogdW5zaWduZWQgQ29udGV4dE1lbnU6Oml0ZW1Db3VudCgpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IFttX3BsYXRmb3JtRGVzY3JpcHRpb24uZ2V0KCkgY291bnRdOwpAQCAtMTEwLDQgKzE2MiwyMyBA
QCBQbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbiBwbGF0Zm9ybU1lbnVEZXNjcmlwdGlvbihWZWN0b3I8
Q29udGV4dE1lbnVJdGVtPiYgbWVudUl0ZQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKK0Bp
bXBsZW1lbnRhdGlvbiBXZWJDb250ZXh0TWVudVRhcmdldAorCistICh2b2lkKW1lbnVTZWxlY3Rp
b246KE5TTWVudUl0ZW0gKiltZW51SXRlbQoreworICAgIEpTQzo6RXhlY1N0YXRlKiBmcm9udGVu
ZEV4ZWNTdGF0ZSA9IGV4ZWNTdGF0ZUZyb21QYWdlKFdlYkNvcmU6OmRlYnVnZ2VyV29ybGQoKSwg
c2VsZi5wYWdlKTsKKyAgICBXZWJDb3JlOjpTY3JpcHRPYmplY3QgZnJvbnRlbmRBcGlPYmplY3Q7
CisgICAgaWYgKCFXZWJDb3JlOjpTY3JpcHRHbG9iYWxPYmplY3Q6OmdldChmcm9udGVuZEV4ZWNT
dGF0ZSwgIkluc3BlY3RvckZyb250ZW5kQVBJIiwgZnJvbnRlbmRBcGlPYmplY3QpKSB7CisgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
V2ViQ29yZTo6VXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGljYXRvcihXZWJDb3JlOjpE
ZWZpbml0ZWx5UHJvY2Vzc2luZ1VzZXJHZXN0dXJlKTsKKyAgICBXZWJDb3JlOjpTY3JpcHRGdW5j
dGlvbkNhbGwgZnVuY3Rpb24oZnJvbnRlbmRBcGlPYmplY3QsICJjb250ZXh0TWVudUl0ZW1TZWxl
Y3RlZCIpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KFttZW51SXRlbSB0YWddIC0gV2Vi
Q29yZTo6Q29udGV4dE1lbnVJdGVtQmFzZUN1c3RvbVRhZyk7CisgICAgZnVuY3Rpb24uY2FsbCgp
OworfQorCitAZW5kCisKICNlbmRpZiAvLyBFTkFCTEUoQ09OVEVYVF9NRU5VUykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217678</attachid>
            <date>2013-11-22 07:14:02 -0800</date>
            <delta_ts>2013-11-25 05:59:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124747-20131122161400.patch</filename>
            <type>text/plain</type>
            <size>8762</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU1NDI2ZTgxODc5ZmY0
MjcyYWZjOWZjZDhmZTE0OTU0ZWQ3ZWE3Yi4uZGM4NzM4MjFmZDc3MjNiNTFhN2YzMGI0ZWI5NmEw
Zjc5ZmUxNWY5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTExLTIyICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
QWxsb3cgc2hvd2luZyBhIGNvbnRleHQgbWVudSBvbiBhbGwgbW91c2UgZXZlbnRzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzQ3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IEluc3Bl
Y3RvckZyb250ZW5kSG9zdDo6c2ltdWxhdGVDb250ZXh0bWVudUV2ZW50KEV2ZW50KikgbWV0aG9k
IHRvIGxldAorICAgICAgICB0aGUgaW5zcGVjdG9yIGZyb250LWVuZCBzaW11bGF0ZSBhIG5hdGl2
ZSBjb250ZXh0bWVudSBldmVudCB0aGF0IHdpbGwgYWxsb3cgZm9yCisgICAgICAgIGEgY29udGV4
dCBtZW51IHRvIGJlIHNob3duIGZyb20gd2l0aGluIGEgbm9uLWNvbnRleHRtZW51IGV2ZW50IGhh
bmRsZXIuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6c2lt
dWxhdGVDb250ZXh0bWVudUV2ZW50KToKKyAgICAgICAgR2V0IHRoZSBzb2xlIEV2ZW50KiBhcmd1
bWVudCBmcm9tIHRoZSBKUyBjYWxsIGFuZCB1c2UgaXQgdG8gY2FsbCB0aGUgaW1wbGVtZW50YXRp
b24uICAKKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpzaW11bGF0ZUNvbnRleHRt
ZW51RXZlbnQpOgorICAgICAgICBDaGVjayB0aGF0IHdlJ3JlIGRlYWxpbmcgd2l0aCBhIG1vdXNl
IGV2ZW50LCBnZXQgdGhlIGZyYW1lIGZvciB0aGUgZXZlbnQgdGFyZ2V0CisgICAgICAgIGFuZCB0
aGUgZXZlbnQncyBsb2NhdGlvbiB0byBjYWxsIENvbnRleHRNZW51Q29udHJvbGxlcjo6c2hvd0Nv
bnRleHRNZW51QXQoKQorICAgICAgICB3aGljaCB3aWxsIGhhbmRsZSB0aGUgbmV3IGNvbnRleHRt
ZW51IGV2ZW50IGRpc3BhdGNoIHRvIHRoZSBvcmlnaW5hbCBldmVudCB0YXJnZXQuCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmg6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGw6CisKIDIwMTMtMTEtMjAgIEhhbnMgTXVsbGVy
ICA8aG11bGxlckBhZG9iZS5jb20+CiAKICAgICAgICAgW0NTUyBTaGFwZXNdIEFkZCBCb3hTaGFw
ZSBhbmQgRmxvYXRSb3VuZGluZ1JlY3QgY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYklu
c3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5k
ZXggZjk4YTMwNDA1ZWViMjcxNWIyZmRjNWQzNTA3NTFiYzE4Njk1ZTYwYy4uYzEzZjRjMDc4NmI3
M2ViODI4ODQxM2MwZmI0YTJlYmY2N2Y0MzhlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMTMtMTEtMjIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxl
LmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBBbGxvdyBzaG93aW5nIGEgY29udGV4dCBt
ZW51IG9uIGFsbCBtb3VzZSBldmVudHMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMjQ3NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBdXRvbWF0aWNhbGx5IHNpbXVsYXRlIGEgY29udGV4dG1lbnUgZXZl
bnQgaW4gY2FzZSBXZWJJbnNwZWN0b3IuQ29udGV4dE1lbnUucHJvdG90eXBlLnNob3coKQorICAg
ICAgICBpcyBjYWxsZWQgb3V0c2lkZSBvZiBhIGNvbnRleHRtZW51IGV2ZW50IGhhbmRsZXIgYW5k
IHdvdWxkIHRoZXJlZm9yZSBub3Qgc2hvdyB0aGUgZXhwZWN0ZWQKKyAgICAgICAgY29udGV4dCBt
ZW51IChleGNlcHQgaW4gdGhlIFJlbW90ZSBXZWIgSW5zcGVjdG9yIHdoZXJlIHRoaXMgYWxyZWFk
eSB3b3JrcykuIAorCisgICAgICAgICogVXNlckludGVyZmFjZS9Db250ZXh0TWVudS5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db250ZXh0TWVudSk6CisgICAgICAgIEFkZCBhbiBpdmFyIGZv
ciB0aGUgbWVudSBvYmplY3Qgd2UncmUgYnVpbGRpbmcgc28gdGhhdCB3ZSBtYXkgYWNjZXNzIGl0
IGluIHRoZSBjb250ZXh0bWVudQorICAgICAgICBldmVudCBoYW5kbGVyLgorICAgICAgICAKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5Db250ZXh0TWVudS5wcm90b3R5cGUuc2hvdyk6CisgICAgICAg
IENoZWNrIHdoZXRoZXIgdGhlIGV2ZW50IGlzIGEgY29udGV4dG1lbnUgZXZlbnQsIGFuZCBpZiBu
b3QsIGFkZCBhbiBldmVudCBsaXN0ZW5lciBmb3IgYQorICAgICAgICBzaW11bGF0ZWQgY29udGV4
dG1lbnUgZXZlbnQgc3VjaCB0aGF0IHdlIG1heSB0aGVuIGNhbGwgSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LnNob3dDb250ZXh0TWVudSgpCisgICAgICAgIGluIGEgY29udGV4dG1lbnUgZXZlbnQgaGFu
ZGxlci4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRleHRNZW51LnByb3RvdHlwZS5oYW5k
bGVFdmVudCk6CisgICAgICAgIENhbGwgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNob3dDb250ZXh0
TWVudSgpIG5vdyB0aGF0IHdlIHJlY2VpdmVkIHRoZSBzaW11bGF0ZWQgY29udGV4dG1lbnUgZXZl
bnQuCisKIDIwMTMtMTEtMTkgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAog
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBsYXllciBpbmZvIHNpZGViYXIgc2hvdWxkIGNvbnZlcnQg
dG8gTUIgZm9yIHZlcnkgbGFyZ2UgbGF5ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3RvbS5jcHAKaW5kZXgg
MjE3NTE4MWQxOGZiZjA3MmU4MGJkNTAwNTBlZTJiZTJiMWJkZGJhMC4uOGIyYzc0MzU0NTI3YzFl
ODIxZWY1YmM3ODQ4MGI1YWEyMzE4YjFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9tLmNwcApAQCAt
MTQ4LDYgKzE0OCwyMCBAQCBKU1ZhbHVlIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpzaG93Q29u
dGV4dE1lbnUoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQog
CitKU1ZhbHVlIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpzaW11bGF0ZUNvbnRleHRtZW51RXZl
bnQoRXhlY1N0YXRlKiBleGVjKQoreworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorICAgIGlm
IChleGVjLT5hcmd1bWVudENvdW50KCkgPCAxKQorICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKKyAgICBFdmVudCogZXZlbnQgPSB0b0V2ZW50KGV4ZWMtPmFyZ3VtZW50KDApKTsKKworICAg
IGltcGwoKS5zaW11bGF0ZUNvbnRleHRtZW51RXZlbnQoZXZlbnQpOworI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0oZXhlYyk7CisjZW5kaWYKKyAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKK30KKwog
SlNWYWx1ZSBKU0luc3BlY3RvckZyb250ZW5kSG9zdDo6cmVjb3JkQWN0aW9uVGFrZW4oRXhlY1N0
YXRlKikKIHsKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKaW5kZXggZGIyMjczNDQ5ZGNh
MDg2OTc1MjIwMWUxYjViMGUwOTIyNmFhYTRhMy4uMjNlOGMxOTQzN2M4MGQ0ODMzYjUyY2U3Yzcy
ZTkyMzlhMzYxMmJiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kSG9zdC5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlICJDb250ZXh0
TWVudVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiRE9NV3JhcHBlcldvcmxkLmgiCiAjaW5jbHVkZSAi
RWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIK
ICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVt
ZW50LmgiCkBAIC00Niw2ICs0Nyw3IEBACiAjaW5jbHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5kQ2xpZW50LmgiCiAjaW5jbHVkZSAiTWFpbkZy
YW1lLmgiCisjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNs
dWRlICJQYXN0ZWJvYXJkLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJvci5oIgpAQCAtMjc5LDYg
KzI4MSwyMCBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kSG9zdDo6c2hvd0NvbnRleHRNZW51KEV2
ZW50KiBldmVudCwgY29uc3QgVmVjdG9yPENvbnRleHRNZQogICAgIG1fZnJvbnRlbmRQYWdlLT5j
b250ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnUoZXZlbnQsIG1lbnVQcm92aWRl
cik7CiAgICAgbV9tZW51UHJvdmlkZXIgPSBtZW51UHJvdmlkZXIuZ2V0KCk7CiB9CisKK3ZvaWQg
SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpzaW11bGF0ZUNvbnRleHRtZW51RXZlbnQoRXZlbnQqIGV2
ZW50KQoreworI2lmIFVTRShBQ0NFU1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCisgICAgaWYgKCFl
dmVudCB8fCAhZXZlbnQtPmlzTW91c2VFdmVudCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBG
cmFtZSogZnJhbWUgPSBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpLT5kb2N1bWVudCgpLmZyYW1l
KCk7CisgICAgTW91c2VFdmVudCogbW91c2VFdmVudCA9IHRvTW91c2VFdmVudChldmVudCk7Cisg
ICAgSW50UG9pbnQgbW91c2VQb2ludCA9IEludFBvaW50KG1vdXNlRXZlbnQtPmNsaWVudFgoKSwg
bW91c2VFdmVudC0+Y2xpZW50WSgpKTsKKworICAgIG1fZnJvbnRlbmRQYWdlLT5jb250ZXh0TWVu
dUNvbnRyb2xsZXIoKS5zaG93Q29udGV4dE1lbnVBdChmcmFtZSwgbW91c2VQb2ludCk7CisjZW5k
aWYKK30KICNlbmRpZgogCiBTdHJpbmcgSW5zcGVjdG9yRnJvbnRlbmRIb3N0Ojpsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KGNvbnN0IFN0cmluZyYgdXJsKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oCmluZGV4IGQ4YzQ3ZjEwYWJhYWEwYmMw
Y2IyYjI4ZWQwMzZmOGQ3NGEzZDE2NDkuLjdmYjQ0ZDUyNzBjN2ZiYWNmMGUxNWQ4NjVlYjZjMDNm
Yjk4YWMzYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZEhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJv
bnRlbmRIb3N0LmgKQEAgLTgwLDYgKzgwLDcgQEAgcHVibGljOgogICAgIC8vIENhbGxlZCBmcm9t
IFtDdXN0b21dIGltcGxlbWVudGF0aW9ucy4KICAgICB2b2lkIHNob3dDb250ZXh0TWVudShFdmVu
dCosIGNvbnN0IFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBpdGVtcyk7CiAgICAgdm9pZCBzZW5k
TWVzc2FnZVRvQmFja2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAgIHZvaWQgc2ltdWxh
dGVDb250ZXh0bWVudUV2ZW50KEV2ZW50Kik7CiAKICAgICBTdHJpbmcgbG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseShjb25zdCBTdHJpbmcmIHVybCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGwKaW5kZXggMjY5ODA5OTYyZThmZGUy
OWM2ZWJhMTQ0M2EwOThjYjRiNDEyNmNiYi4uYWM5ZmY5M2YyZDY5OTY3YjRmZTZhZGFlZDYxZWUx
OTljMTJjYjI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckZyb250ZW5kSG9zdC5pZGwKQEAgLTYyLDYgKzYyLDcgQEAKICAgICBbQ3VzdG9tXSBET01TdHJp
bmcgcGxhdGZvcm0oKTsKICAgICBbQ3VzdG9tXSBET01TdHJpbmcgcG9ydCgpOwogICAgIFtDdXN0
b21dIHZvaWQgc2hvd0NvbnRleHRNZW51KE1vdXNlRXZlbnQgZXZlbnQsIGFueSBpdGVtcyk7Cisg
ICAgW0N1c3RvbV0gdm9pZCBzaW11bGF0ZUNvbnRleHRtZW51RXZlbnQoTW91c2VFdmVudCBldmVu
dCk7CiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvQmFja2VuZChET01TdHJpbmcgbWVzc2FnZSk7CiAK
ICAgICBbQ3VzdG9tXSB2b2lkIHJlY29yZEFjdGlvblRha2VuKHVuc2lnbmVkIGxvbmcgYWN0aW9u
Q29kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9D
b250ZXh0TWVudS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRl
eHRNZW51LmpzCmluZGV4IGUwNGIzNzhjOTYxNDY4MTc4M2I5OTQyMWU2MTUzNDRlZTkxYjEwNzku
LjhhYjdjZjM2ZjZlYzkwYjY1ODk5YzZhYTE1ZmM2MWNkMGM5ZDI0ZDAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRleHRNZW51LmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRleHRNZW51LmpzCkBAIC0xODIs
OSArMTgyLDEzIEBAIFdlYkluc3BlY3Rvci5Db250ZXh0TWVudSA9IGZ1bmN0aW9uKGV2ZW50KSB7
CiAgICAgdGhpcy5fZXZlbnQgPSBldmVudDsKICAgICB0aGlzLl9oYW5kbGVycyA9IHt9OwogICAg
IHRoaXMuX2lkID0gMDsKKyAgICB0aGlzLl9tZW51T2JqZWN0ID0gbnVsbDsKIH0KIAogV2ViSW5z
cGVjdG9yLkNvbnRleHRNZW51LnByb3RvdHlwZSA9IHsKKworICAgIC8vIFB1YmxpYworCiAgICAg
bmV4dElkOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICByZXR1cm4gdGhpcy5faWQrKzsKQEAg
LTE5MiwxNiArMTk2LDMyIEBAIFdlYkluc3BlY3Rvci5Db250ZXh0TWVudS5wcm90b3R5cGUgPSB7
CiAKICAgICBzaG93OiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB2YXIgbWVudU9iamVjdCA9
IHRoaXMuX2J1aWxkRGVzY3JpcHRvcigpOworICAgICAgICB0aGlzLl9tZW51T2JqZWN0ID0gdGhp
cy5fYnVpbGREZXNjcmlwdG9yKCk7CiAKLSAgICAgICAgaWYgKG1lbnVPYmplY3QubGVuZ3RoKSB7
CisgICAgICAgIGlmICh0aGlzLl9tZW51T2JqZWN0Lmxlbmd0aCkgewogICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLl9jb250ZXh0TWVudSA9IHRoaXM7Ci0gICAgICAgICAgICBJbnNwZWN0b3JGcm9u
dGVuZEhvc3Quc2hvd0NvbnRleHRNZW51KHRoaXMuX2V2ZW50LCBtZW51T2JqZWN0KTsKKyAgICAg
ICAgICAgIGlmICh0aGlzLl9ldmVudC50eXBlICE9PSAiY29udGV4dG1lbnUiICYmIHR5cGVvZiBJ
bnNwZWN0b3JGcm9udGVuZEhvc3Quc2ltdWxhdGVDb250ZXh0bWVudUV2ZW50ID09PSAiZnVuY3Rp
b24iKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fZXZlbnQudGFyZ2V0LmFkZEV2ZW50TGlzdGVu
ZXIoImNvbnRleHRtZW51IiwgdGhpcywgdHJ1ZSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9y
RnJvbnRlbmRIb3N0LnNpbXVsYXRlQ29udGV4dG1lbnVFdmVudCh0aGlzLl9ldmVudCk7CisgICAg
ICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3Quc2hv
d0NvbnRleHRNZW51KHRoaXMuX2V2ZW50LCB0aGlzLl9tZW51T2JqZWN0KTsKICAgICAgICAgfQog
ICAgICAgICBpZiAodGhpcy5fZXZlbnQpCiAgICAgICAgICAgICB0aGlzLl9ldmVudC5zdG9wSW1t
ZWRpYXRlUHJvcGFnYXRpb24oKTsKICAgICB9LAogCisgICAgLy8gUHJvdGVjdGVkCisKKyAgICBo
YW5kbGVFdmVudDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLl9ldmVudC50
YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigiY29udGV4dG1lbnUiLCB0aGlzLCB0cnVlKTsKKyAg
ICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNob3dDb250ZXh0TWVudShldmVudCwgdGhpcy5f
bWVudU9iamVjdCk7CisKKyAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7
CisgICAgfSwKKworICAgIC8vIFByaXZhdGUKKwogICAgIF9zZXRIYW5kbGVyOiBmdW5jdGlvbihp
ZCwgaGFuZGxlcikKICAgICB7CiAgICAgICAgIGlmIChoYW5kbGVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217800</attachid>
            <date>2013-11-25 05:59:21 -0800</date>
            <delta_ts>2013-11-25 23:50:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-124747-20131125145920.patch</filename>
            <type>text/plain</type>
            <size>7442</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRhZjM2YjIxY2RjYmJm
ZmYxMmM2MjRjYzFlZWFlMTkzNWQyMmQ5ZC4uNGI5ZWQyNDdhMmE5YTQwNjg1YjYxNDVlY2M2OTUy
ZjM0OGNlZTE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTExLTI1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
QWxsb3cgc2hvd2luZyBhIGNvbnRleHQgbWVudSBvbiBhbGwgbW91c2UgZXZlbnRzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzQ3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IEluc3Bl
Y3RvckZyb250ZW5kSG9zdDo6ZGlzcGF0Y2hFdmVudEFzQ29udGV4dE1lbnVFdmVudChFdmVudCop
IG1ldGhvZAorICAgICAgICB0byBsZXQgdGhlIGluc3BlY3RvciBmcm9udC1lbmQgZGlzcGF0Y2gg
YSBuYXRpdmUgY29udGV4dG1lbnUgZXZlbnQgdGhhdCB3aWxsIGFsbG93CisgICAgICAgIGZvciBh
IGNvbnRleHQgbWVudSB0byBiZSBzaG93biBmcm9tIHdpdGhpbiBhIG5vbi1jb250ZXh0bWVudSBl
dmVudCBoYW5kbGVyLgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9z
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OmRpc3BhdGNo
RXZlbnRBc0NvbnRleHRNZW51RXZlbnQpOgorICAgICAgICBDaGVjayB0aGF0IHdlJ3JlIGRlYWxp
bmcgd2l0aCBhIG1vdXNlIGV2ZW50LCBnZXQgdGhlIGZyYW1lIGZvciB0aGUgZXZlbnQgdGFyZ2V0
CisgICAgICAgIGFuZCB0aGUgZXZlbnQncyBsb2NhdGlvbiB0byBjYWxsIENvbnRleHRNZW51Q29u
dHJvbGxlcjo6c2hvd0NvbnRleHRNZW51QXQoKQorICAgICAgICB3aGljaCB3aWxsIGhhbmRsZSB0
aGUgbmV3IGNvbnRleHRtZW51IGV2ZW50IGRpc3BhdGNoIHRvIHRoZSBvcmlnaW5hbCBldmVudCB0
YXJnZXQuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmg6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5pZGw6CisKIDIwMTMtMTEt
MjQgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBH
ZW5lcmF0ZSB0b0hUTUxNYXJxdWVlfE9MaXN0RWxlbWVudCgpIHRvIGNsZWFudXAgc3RhdGljX2Nh
c3Q8PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKaW5kZXggNzQ4ODI1NTlmYzFjNzVhYmY1M2I3ZDc2
ZGYxZDIyOGQxN2Y1YWEwNi4uYmIzOGI0MDdkOTEwNzRkNmZkMWVmYmQzYWYyYTlkYTQ2OGU5NGY2
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTMtMTEtMjUg
IEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBBbGxvdyBzaG93aW5nIGEgY29udGV4dCBtZW51IG9uIGFsbCBtb3VzZSBldmVudHMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjQ3NDcKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBdXRvbWF0aWNh
bGx5IGRpc3BhdGNoIGEgY29udGV4dG1lbnUgZXZlbnQgaW4gY2FzZSBXZWJJbnNwZWN0b3IuQ29u
dGV4dE1lbnUucHJvdG90eXBlLnNob3coKQorICAgICAgICBpcyBjYWxsZWQgb3V0c2lkZSBvZiBh
IGNvbnRleHRtZW51IGV2ZW50IGhhbmRsZXIgYW5kIHdvdWxkIHRoZXJlZm9yZSBub3Qgc2hvdyB0
aGUgZXhwZWN0ZWQKKyAgICAgICAgY29udGV4dCBtZW51IChleGNlcHQgaW4gdGhlIFJlbW90ZSBX
ZWIgSW5zcGVjdG9yIHdoZXJlIHRoaXMgYWxyZWFkeSB3b3JrcykuIAorCisgICAgICAgICogVXNl
ckludGVyZmFjZS9Db250ZXh0TWVudS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db250ZXh0
TWVudS5wcm90b3R5cGUuc2hvdyk6CisgICAgICAgIENoZWNrIHdoZXRoZXIgdGhlIGV2ZW50IGlz
IGEgY29udGV4dG1lbnUgZXZlbnQsIGFuZCBpZiBub3QsIGFkZCBhbiBldmVudCBsaXN0ZW5lciBm
b3IgYSBtYW51YWxseQorICAgICAgICBkaXNwYXRjaGVkIGNvbnRleHRtZW51IGV2ZW50IHN1Y2gg
dGhhdCB3ZSBtYXkgdGhlbiBjYWxsIEluc3BlY3RvckZyb250ZW5kSG9zdC5zaG93Q29udGV4dE1l
bnUoKQorICAgICAgICBpbiBhIGNvbnRleHRtZW51IGV2ZW50IGhhbmRsZXIuCisKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Db250ZXh0TWVudS5wcm90b3R5cGUuaGFuZGxlRXZlbnQpOgorICAgICAg
ICBDYWxsIEluc3BlY3RvckZyb250ZW5kSG9zdC5zaG93Q29udGV4dE1lbnUoKSBub3cgdGhhdCB3
ZSByZWNlaXZlZCB0aGUgbWFudWFsbHkgZGlzcGF0Y2hlZAorICAgICAgICBjb250ZXh0bWVudSBl
dmVudC4KKwogMjAxMy0xMS0yMSAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAg
ICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMjQ3MDI+IFN0b3Agb3ZlcnJpZGluZyBWQUxJRF9B
UkNIUy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZEhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
SG9zdC5jcHAKaW5kZXggZGIyMjczNDQ5ZGNhMDg2OTc1MjIwMWUxYjViMGUwOTIyNmFhYTRhMy4u
NWM2OTA2OTIzMjc0NDAxMzhjOGU3OWJhOTViYmYyMzhiM2Q5NTBmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAKQEAgLTM5LDYg
KzM5LDcgQEAKICNpbmNsdWRlICJDb250ZXh0TWVudVByb3ZpZGVyLmgiCiAjaW5jbHVkZSAiRE9N
V3JhcHBlcldvcmxkLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIkV2ZW50Lmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJIaXRUZXN0UmVzdWx0LmgiCiAj
aW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50LmgiCkBAIC00Niw2ICs0Nyw3IEBACiAjaW5j
bHVkZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkluc3BlY3RvckZyb250ZW5k
Q2xpZW50LmgiCiAjaW5jbHVkZSAiTWFpbkZyYW1lLmgiCisjaW5jbHVkZSAiTW91c2VFdmVudC5o
IgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCiAjaW5jbHVkZSAi
UmVzb3VyY2VFcnJvci5oIgpAQCAtMjc5LDYgKzI4MSwyMCBAQCB2b2lkIEluc3BlY3RvckZyb250
ZW5kSG9zdDo6c2hvd0NvbnRleHRNZW51KEV2ZW50KiBldmVudCwgY29uc3QgVmVjdG9yPENvbnRl
eHRNZQogICAgIG1fZnJvbnRlbmRQYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93Q29u
dGV4dE1lbnUoZXZlbnQsIG1lbnVQcm92aWRlcik7CiAgICAgbV9tZW51UHJvdmlkZXIgPSBtZW51
UHJvdmlkZXIuZ2V0KCk7CiB9CisKK3ZvaWQgSW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpkaXNwYXRj
aEV2ZW50QXNDb250ZXh0TWVudUV2ZW50KEV2ZW50KiBldmVudCkKK3sKKyNpZiBVU0UoQUNDRVNT
SUJJTElUWV9DT05URVhUX01FTlVTKQorICAgIGlmICghZXZlbnQgfHwgIWV2ZW50LT5pc01vdXNl
RXZlbnQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRnJhbWUqIGZyYW1lID0gZXZlbnQtPnRh
cmdldCgpLT50b05vZGUoKS0+ZG9jdW1lbnQoKS5mcmFtZSgpOworICAgIE1vdXNlRXZlbnQqIG1v
dXNlRXZlbnQgPSB0b01vdXNlRXZlbnQoZXZlbnQpOworICAgIEludFBvaW50IG1vdXNlUG9pbnQg
PSBJbnRQb2ludChtb3VzZUV2ZW50LT5jbGllbnRYKCksIG1vdXNlRXZlbnQtPmNsaWVudFkoKSk7
CisKKyAgICBtX2Zyb250ZW5kUGFnZS0+Y29udGV4dE1lbnVDb250cm9sbGVyKCkuc2hvd0NvbnRl
eHRNZW51QXQoZnJhbWUsIG1vdXNlUG9pbnQpOworI2VuZGlmCit9CiAjZW5kaWYKIAogU3RyaW5n
IEluc3BlY3RvckZyb250ZW5kSG9zdDo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShjb25zdCBT
dHJpbmcmIHVybCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JGcm9udGVuZEhvc3QuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZEhvc3QuaAppbmRleCBkOGM0N2YxMGFiYWFhMGJjMGNiMmIyOGVkMDM2ZjhkNzRhM2QxNjQ5
Li5hNjExMjZhNDk4ZDI3MzdlZDNhZTc5OTEyMzIxMjQ4Zjk4MTBhNDhhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oCkBAIC04MCw2ICs4
MCw3IEBAIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgZnJvbSBbQ3VzdG9tXSBpbXBsZW1lbnRhdGlv
bnMuCiAgICAgdm9pZCBzaG93Q29udGV4dE1lbnUoRXZlbnQqLCBjb25zdCBWZWN0b3I8Q29udGV4
dE1lbnVJdGVtPiYgaXRlbXMpOwogICAgIHZvaWQgc2VuZE1lc3NhZ2VUb0JhY2tlbmQoY29uc3Qg
U3RyaW5nJiBtZXNzYWdlKTsKKyAgICB2b2lkIGRpc3BhdGNoRXZlbnRBc0NvbnRleHRNZW51RXZl
bnQoRXZlbnQqKTsKIAogICAgIFN0cmluZyBsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0
IFN0cmluZyYgdXJsKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckZyb250ZW5kSG9zdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmRIb3N0LmlkbAppbmRleCAyNjk4MDk5NjJlOGZkZTI5YzZlYmExNDQzYTA5OGNi
NGI0MTI2Y2JiLi45YTI3YjQyYTY3OGE0NDFlMTMyZDZlZWQ0MzEzOTM4NzVhMGIxMzcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmlk
bApAQCAtNjIsNiArNjIsNyBAQAogICAgIFtDdXN0b21dIERPTVN0cmluZyBwbGF0Zm9ybSgpOwog
ICAgIFtDdXN0b21dIERPTVN0cmluZyBwb3J0KCk7CiAgICAgW0N1c3RvbV0gdm9pZCBzaG93Q29u
dGV4dE1lbnUoTW91c2VFdmVudCBldmVudCwgYW55IGl0ZW1zKTsKKyAgICB2b2lkIGRpc3BhdGNo
RXZlbnRBc0NvbnRleHRNZW51RXZlbnQoRXZlbnQgZXZlbnQpOwogICAgIHZvaWQgc2VuZE1lc3Nh
Z2VUb0JhY2tlbmQoRE9NU3RyaW5nIG1lc3NhZ2UpOwogCiAgICAgW0N1c3RvbV0gdm9pZCByZWNv
cmRBY3Rpb25UYWtlbih1bnNpZ25lZCBsb25nIGFjdGlvbkNvZGUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udGV4dE1lbnUuanMgYi9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250ZXh0TWVudS5qcwppbmRleCBlMDRiMzc4
Yzk2MTQ2ODE3ODNiOTk0MjFlNjE1MzQ0ZWU5MWIxMDc5Li4xNmM4NjJjYWQ5OWVlZTY2YzJlM2Y5
ZDBiNGRiNGRkZjc3ZjNjMjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250ZXh0TWVudS5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250ZXh0TWVudS5qcwpAQCAtMTg1LDYgKzE4NSw5IEBAIFdlYkluc3BlY3Rv
ci5Db250ZXh0TWVudSA9IGZ1bmN0aW9uKGV2ZW50KSB7CiB9CiAKIFdlYkluc3BlY3Rvci5Db250
ZXh0TWVudS5wcm90b3R5cGUgPSB7CisKKyAgICAvLyBQdWJsaWMKKwogICAgIG5leHRJZDogZnVu
Y3Rpb24oKQogICAgIHsKICAgICAgICAgcmV0dXJuIHRoaXMuX2lkKys7CkBAIC0xOTIsMTYgKzE5
NSwzNiBAQCBXZWJJbnNwZWN0b3IuQ29udGV4dE1lbnUucHJvdG90eXBlID0gewogCiAgICAgc2hv
dzogZnVuY3Rpb24oKQogICAgIHsKKyAgICAgICAgY29uc29sZS5hc3NlcnQodGhpcy5fZXZlbnQg
aW5zdGFuY2VvZiBNb3VzZUV2ZW50KTsKKwogICAgICAgICB2YXIgbWVudU9iamVjdCA9IHRoaXMu
X2J1aWxkRGVzY3JpcHRvcigpOwogCiAgICAgICAgIGlmIChtZW51T2JqZWN0Lmxlbmd0aCkgewog
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLl9jb250ZXh0TWVudSA9IHRoaXM7Ci0gICAgICAgICAg
ICBJbnNwZWN0b3JGcm9udGVuZEhvc3Quc2hvd0NvbnRleHRNZW51KHRoaXMuX2V2ZW50LCBtZW51
T2JqZWN0KTsKKyAgICAgICAgICAgIGlmICh0aGlzLl9ldmVudC50eXBlICE9PSAiY29udGV4dG1l
bnUiICYmIHR5cGVvZiBJbnNwZWN0b3JGcm9udGVuZEhvc3QuZGlzcGF0Y2hFdmVudEFzQ29udGV4
dE1lbnVFdmVudCA9PT0gImZ1bmN0aW9uIikgeworICAgICAgICAgICAgICAgIHRoaXMuX21lbnVP
YmplY3QgPSBtZW51T2JqZWN0OworICAgICAgICAgICAgICAgIHRoaXMuX2V2ZW50LnRhcmdldC5h
ZGRFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRoaXMsIHRydWUpOworICAgICAgICAgICAg
ICAgIEluc3BlY3RvckZyb250ZW5kSG9zdC5kaXNwYXRjaEV2ZW50QXNDb250ZXh0TWVudUV2ZW50
KHRoaXMuX2V2ZW50KTsKKyAgICAgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgICAgIEluc3Bl
Y3RvckZyb250ZW5kSG9zdC5zaG93Q29udGV4dE1lbnUodGhpcy5fZXZlbnQsIG1lbnVPYmplY3Qp
OwogICAgICAgICB9CiAgICAgICAgIGlmICh0aGlzLl9ldmVudCkKICAgICAgICAgICAgIHRoaXMu
X2V2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpOwogICAgIH0sCiAKKyAgICAvLyBQcm90
ZWN0ZWQKKworICAgIGhhbmRsZUV2ZW50OiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAg
IHRoaXMuX2V2ZW50LnRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKCJjb250ZXh0bWVudSIsIHRo
aXMsIHRydWUpOworICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3Quc2hvd0NvbnRleHRNZW51
KGV2ZW50LCB0aGlzLl9tZW51T2JqZWN0KTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX21lbnVPYmpl
Y3Q7CisKKyAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7CisgICAgfSwK
KworICAgIC8vIFByaXZhdGUKKwogICAgIF9zZXRIYW5kbGVyOiBmdW5jdGlvbihpZCwgaGFuZGxl
cikKICAgICB7CiAgICAgICAgIGlmIChoYW5kbGVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>217866</attachid>
            <date>2013-11-25 23:50:51 -0800</date>
            <delta_ts>2013-11-26 00:26:36 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-124747-20131126085050.patch</filename>
            <type>text/plain</type>
            <size>7477</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU5NzM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGRhZjM2YjIxY2RjYmJm
ZmYxMmM2MjRjYzFlZWFlMTkzNWQyMmQ5ZC4uODNlZDE5ZjE4MWJjOTFlNjNlNjYwZWI0ODI2ODc3
ODU0YjZmZGJiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEzLTExLTI1ICBBbnRv
aW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3Rvcjog
QWxsb3cgc2hvd2luZyBhIGNvbnRleHQgbWVudSBvbiBhbGwgbW91c2UgZXZlbnRzLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzQ3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgIEFkZCBhIG5ldyBJbnNw
ZWN0b3JGcm9udGVuZEhvc3Q6OmRpc3BhdGNoRXZlbnRBc0NvbnRleHRNZW51RXZlbnQoRXZlbnQq
KSBtZXRob2QKKyAgICAgICAgdG8gbGV0IHRoZSBpbnNwZWN0b3IgZnJvbnQtZW5kIGRpc3BhdGNo
IGEgbmF0aXZlIGNvbnRleHRtZW51IGV2ZW50IHRoYXQgd2lsbCBhbGxvdworICAgICAgICBmb3Ig
YSBjb250ZXh0IG1lbnUgdG8gYmUgc2hvd24gZnJvbSB3aXRoaW4gYSBub24tY29udGV4dG1lbnUg
ZXZlbnQgaGFuZGxlci4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhv
c3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRIb3N0OjpkaXNwYXRj
aEV2ZW50QXNDb250ZXh0TWVudUV2ZW50KToKKyAgICAgICAgQ2hlY2sgdGhhdCB3ZSdyZSBkZWFs
aW5nIHdpdGggYSBtb3VzZSBldmVudCwgZ2V0IHRoZSBmcmFtZSBmb3IgdGhlIGV2ZW50IHRhcmdl
dAorICAgICAgICBhbmQgdGhlIGV2ZW50J3MgbG9jYXRpb24gdG8gY2FsbCBDb250ZXh0TWVudUNv
bnRyb2xsZXI6OnNob3dDb250ZXh0TWVudUF0KCkKKyAgICAgICAgd2hpY2ggd2lsbCBoYW5kbGUg
dGhlIG5ldyBjb250ZXh0bWVudSBldmVudCBkaXNwYXRjaCB0byB0aGUgb3JpZ2luYWwgZXZlbnQg
dGFyZ2V0LgorCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsOgorCiAyMDEzLTEx
LTI0ICBHeXV5b3VuZyBLaW0gIDxneXV5b3VuZy5raW1Ac2Ftc3VuZy5jb20+CiAKICAgICAgICAg
R2VuZXJhdGUgdG9IVE1MTWFycXVlZXxPTGlzdEVsZW1lbnQoKSB0byBjbGVhbnVwIHN0YXRpY19j
YXN0PD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvQ2hhbmdlTG9nCmluZGV4IDc0ODgyNTU5ZmMxYzc1YWJmNTNiN2Q3
NmRmMWQyMjhkMTdmNWFhMDYuLjFjMTE3YzgzNWRkMzQ0YzYyZGJjMDU3NDBiMzBmYjVmN2MyMTE1
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTExLTI1
ICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CisKKyAgICAgICAgV2ViIEluc3Bl
Y3RvcjogQWxsb3cgc2hvd2luZyBhIGNvbnRleHQgbWVudSBvbiBhbGwgbW91c2UgZXZlbnRzLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI0NzQ3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgSm9zZXBoIFBlY29yYXJvLgorCisgICAgICAgIEF1dG9tYXRp
Y2FsbHkgZGlzcGF0Y2ggYSBjb250ZXh0bWVudSBldmVudCBpbiBjYXNlIFdlYkluc3BlY3Rvci5D
b250ZXh0TWVudS5wcm90b3R5cGUuc2hvdygpCisgICAgICAgIGlzIGNhbGxlZCBvdXRzaWRlIG9m
IGEgY29udGV4dG1lbnUgZXZlbnQgaGFuZGxlciBhbmQgd291bGQgdGhlcmVmb3JlIG5vdCBzaG93
IHRoZSBleHBlY3RlZAorICAgICAgICBjb250ZXh0IG1lbnUgKGV4Y2VwdCBpbiB0aGUgUmVtb3Rl
IFdlYiBJbnNwZWN0b3Igd2hlcmUgdGhpcyBhbHJlYWR5IHdvcmtzKS4gCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL0NvbnRleHRNZW51LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvbnRl
eHRNZW51LnByb3RvdHlwZS5zaG93KToKKyAgICAgICAgQ2hlY2sgd2hldGhlciB0aGUgZXZlbnQg
aXMgYSBjb250ZXh0bWVudSBldmVudCwgYW5kIGlmIG5vdCwgYWRkIGFuIGV2ZW50IGxpc3RlbmVy
IGZvciBhIG1hbnVhbGx5CisgICAgICAgIGRpc3BhdGNoZWQgY29udGV4dG1lbnUgZXZlbnQgc3Vj
aCB0aGF0IHdlIG1heSB0aGVuIGNhbGwgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNob3dDb250ZXh0
TWVudSgpCisgICAgICAgIGluIGEgY29udGV4dG1lbnUgZXZlbnQgaGFuZGxlci4KKworICAgICAg
ICAoV2ViSW5zcGVjdG9yLkNvbnRleHRNZW51LnByb3RvdHlwZS5oYW5kbGVFdmVudCk6CisgICAg
ICAgIENhbGwgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNob3dDb250ZXh0TWVudSgpIG5vdyB0aGF0
IHdlIHJlY2VpdmVkIHRoZSBtYW51YWxseSBkaXNwYXRjaGVkCisgICAgICAgIGNvbnRleHRtZW51
IGV2ZW50LgorCiAyMDEzLTExLTIxICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgPGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEyNDcwMj4gU3RvcCBvdmVycmlkaW5nIFZBTElE
X0FSQ0hTLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZy
b250ZW5kSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRIb3N0LmNwcAppbmRleCBkYjIyNzM0NDlkY2EwODY5NzUyMjAxZTFiNWIwZTA5MjI2YWFhNGEz
Li5iZTI0ZTFlMzY2NDVkYjkxODk3YjY2MTdkNGIwNjRkZTZhNTI4YmFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcApAQCAtMzks
NiArMzksNyBAQAogI2luY2x1ZGUgIkNvbnRleHRNZW51UHJvdmlkZXIuaCIKICNpbmNsdWRlICJE
T01XcmFwcGVyV29ybGQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRXZlbnQu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIK
ICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKQEAgLTQ2LDYgKzQ3LDcgQEAKICNp
bmNsdWRlICJJbnNwZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnQuaCIKICNpbmNsdWRlICJNYWluRnJhbWUuaCIKKyNpbmNsdWRlICJNb3VzZUV2ZW50
LmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKICNpbmNsdWRl
ICJSZXNvdXJjZUVycm9yLmgiCkBAIC0yNzksNiArMjgxLDIyIEBAIHZvaWQgSW5zcGVjdG9yRnJv
bnRlbmRIb3N0OjpzaG93Q29udGV4dE1lbnUoRXZlbnQqIGV2ZW50LCBjb25zdCBWZWN0b3I8Q29u
dGV4dE1lCiAgICAgbV9mcm9udGVuZFBhZ2UtPmNvbnRleHRNZW51Q29udHJvbGxlcigpLnNob3dD
b250ZXh0TWVudShldmVudCwgbWVudVByb3ZpZGVyKTsKICAgICBtX21lbnVQcm92aWRlciA9IG1l
bnVQcm92aWRlci5nZXQoKTsKIH0KKwordm9pZCBJbnNwZWN0b3JGcm9udGVuZEhvc3Q6OmRpc3Bh
dGNoRXZlbnRBc0NvbnRleHRNZW51RXZlbnQoRXZlbnQqIGV2ZW50KQoreworI2lmIFVTRShBQ0NF
U1NJQklMSVRZX0NPTlRFWFRfTUVOVVMpCisgICAgaWYgKCFldmVudCB8fCAhZXZlbnQtPmlzTW91
c2VFdmVudCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBGcmFtZSogZnJhbWUgPSBldmVudC0+
dGFyZ2V0KCktPnRvTm9kZSgpLT5kb2N1bWVudCgpLmZyYW1lKCk7CisgICAgTW91c2VFdmVudCog
bW91c2VFdmVudCA9IHRvTW91c2VFdmVudChldmVudCk7CisgICAgSW50UG9pbnQgbW91c2VQb2lu
dCA9IEludFBvaW50KG1vdXNlRXZlbnQtPmNsaWVudFgoKSwgbW91c2VFdmVudC0+Y2xpZW50WSgp
KTsKKworICAgIG1fZnJvbnRlbmRQYWdlLT5jb250ZXh0TWVudUNvbnRyb2xsZXIoKS5zaG93Q29u
dGV4dE1lbnVBdChmcmFtZSwgbW91c2VQb2ludCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShl
dmVudCk7CisjZW5kaWYKK30KICNlbmRpZgogCiBTdHJpbmcgSW5zcGVjdG9yRnJvbnRlbmRIb3N0
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KGNvbnN0IFN0cmluZyYgdXJsKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kSG9zdC5oCmluZGV4IGQ4YzQ3
ZjEwYWJhYWEwYmMwY2IyYjI4ZWQwMzZmOGQ3NGEzZDE2NDkuLmE2MTEyNmE0OThkMjczN2VkM2Fl
Nzk5MTIzMjEyNDhmOTgxMGE0OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRIb3N0LmgKQEAgLTgwLDYgKzgwLDcgQEAgcHVibGljOgogICAgIC8v
IENhbGxlZCBmcm9tIFtDdXN0b21dIGltcGxlbWVudGF0aW9ucy4KICAgICB2b2lkIHNob3dDb250
ZXh0TWVudShFdmVudCosIGNvbnN0IFZlY3RvcjxDb250ZXh0TWVudUl0ZW0+JiBpdGVtcyk7CiAg
ICAgdm9pZCBzZW5kTWVzc2FnZVRvQmFja2VuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOworICAg
IHZvaWQgZGlzcGF0Y2hFdmVudEFzQ29udGV4dE1lbnVFdmVudChFdmVudCopOwogCiAgICAgU3Ry
aW5nIGxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoY29uc3QgU3RyaW5nJiB1cmwpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRIb3N0Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsCmlu
ZGV4IDI2OTgwOTk2MmU4ZmRlMjljNmViYTE0NDNhMDk4Y2I0YjQxMjZjYmIuLjlhMjdiNDJhNjc4
YTQ0MWUxMzJkNmVlZDQzMTM5Mzg3NWEwYjEzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZEhvc3QuaWRsCkBAIC02Miw2ICs2Miw3IEBACiAg
ICAgW0N1c3RvbV0gRE9NU3RyaW5nIHBsYXRmb3JtKCk7CiAgICAgW0N1c3RvbV0gRE9NU3RyaW5n
IHBvcnQoKTsKICAgICBbQ3VzdG9tXSB2b2lkIHNob3dDb250ZXh0TWVudShNb3VzZUV2ZW50IGV2
ZW50LCBhbnkgaXRlbXMpOworICAgIHZvaWQgZGlzcGF0Y2hFdmVudEFzQ29udGV4dE1lbnVFdmVu
dChFdmVudCBldmVudCk7CiAgICAgdm9pZCBzZW5kTWVzc2FnZVRvQmFja2VuZChET01TdHJpbmcg
bWVzc2FnZSk7CiAKICAgICBbQ3VzdG9tXSB2b2lkIHJlY29yZEFjdGlvblRha2VuKHVuc2lnbmVk
IGxvbmcgYWN0aW9uQ29kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db250ZXh0TWVudS5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvbnRleHRNZW51LmpzCmluZGV4IGUwNGIzNzhjOTYxNDY4MTc4M2I5OTQyMWU2MTUz
NDRlZTkxYjEwNzkuLjE2Yzg2MmNhZDk5ZWVlNjZjMmUzZjlkMGI0ZGI0ZGRmNzdmM2MyOGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRleHRNZW51
LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRleHRNZW51
LmpzCkBAIC0xODUsNiArMTg1LDkgQEAgV2ViSW5zcGVjdG9yLkNvbnRleHRNZW51ID0gZnVuY3Rp
b24oZXZlbnQpIHsKIH0KIAogV2ViSW5zcGVjdG9yLkNvbnRleHRNZW51LnByb3RvdHlwZSA9IHsK
KworICAgIC8vIFB1YmxpYworCiAgICAgbmV4dElkOiBmdW5jdGlvbigpCiAgICAgewogICAgICAg
ICByZXR1cm4gdGhpcy5faWQrKzsKQEAgLTE5MiwxNiArMTk1LDM2IEBAIFdlYkluc3BlY3Rvci5D
b250ZXh0TWVudS5wcm90b3R5cGUgPSB7CiAKICAgICBzaG93OiBmdW5jdGlvbigpCiAgICAgewor
ICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9ldmVudCBpbnN0YW5jZW9mIE1vdXNlRXZlbnQp
OworCiAgICAgICAgIHZhciBtZW51T2JqZWN0ID0gdGhpcy5fYnVpbGREZXNjcmlwdG9yKCk7CiAK
ICAgICAgICAgaWYgKG1lbnVPYmplY3QubGVuZ3RoKSB7CiAgICAgICAgICAgICBXZWJJbnNwZWN0
b3IuX2NvbnRleHRNZW51ID0gdGhpczsKLSAgICAgICAgICAgIEluc3BlY3RvckZyb250ZW5kSG9z
dC5zaG93Q29udGV4dE1lbnUodGhpcy5fZXZlbnQsIG1lbnVPYmplY3QpOworICAgICAgICAgICAg
aWYgKHRoaXMuX2V2ZW50LnR5cGUgIT09ICJjb250ZXh0bWVudSIgJiYgdHlwZW9mIEluc3BlY3Rv
ckZyb250ZW5kSG9zdC5kaXNwYXRjaEV2ZW50QXNDb250ZXh0TWVudUV2ZW50ID09PSAiZnVuY3Rp
b24iKSB7CisgICAgICAgICAgICAgICAgdGhpcy5fbWVudU9iamVjdCA9IG1lbnVPYmplY3Q7Cisg
ICAgICAgICAgICAgICAgdGhpcy5fZXZlbnQudGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoImNvbnRl
eHRtZW51IiwgdGhpcywgdHJ1ZSk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRI
b3N0LmRpc3BhdGNoRXZlbnRBc0NvbnRleHRNZW51RXZlbnQodGhpcy5fZXZlbnQpOworICAgICAg
ICAgICAgfSBlbHNlCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNob3dD
b250ZXh0TWVudSh0aGlzLl9ldmVudCwgbWVudU9iamVjdCk7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKHRoaXMuX2V2ZW50KQogICAgICAgICAgICAgdGhpcy5fZXZlbnQuc3RvcEltbWVkaWF0ZVBy
b3BhZ2F0aW9uKCk7CiAgICAgfSwKIAorICAgIC8vIFByb3RlY3RlZAorCisgICAgaGFuZGxlRXZl
bnQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5fZXZlbnQudGFyZ2V0LnJl
bW92ZUV2ZW50TGlzdGVuZXIoImNvbnRleHRtZW51IiwgdGhpcywgdHJ1ZSk7CisgICAgICAgIElu
c3BlY3RvckZyb250ZW5kSG9zdC5zaG93Q29udGV4dE1lbnUoZXZlbnQsIHRoaXMuX21lbnVPYmpl
Y3QpOworICAgICAgICBkZWxldGUgdGhpcy5fbWVudU9iamVjdDsKKworICAgICAgICBldmVudC5z
dG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsKKyAgICB9LAorCisgICAgLy8gUHJpdmF0ZQorCiAg
ICAgX3NldEhhbmRsZXI6IGZ1bmN0aW9uKGlkLCBoYW5kbGVyKQogICAgIHsKICAgICAgICAgaWYg
KGhhbmRsZXIpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>