<?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>147588</bug_id>
          
          <creation_ts>2015-08-03 13:46:49 -0700</creation_ts>
          <short_desc>Media Session: let UI clients query whether a media element is paused</short_desc>
          <delta_ts>2015-08-04 10:10:59 -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>Media</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>145411</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Matt Rajca">mrajca</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>conrad_shultz</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>mrajca</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1114336</commentid>
    <comment_count>0</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-03 13:46:49 -0700</bug_when>
    <thetext>As part of implementing support for keeping track of the focused &apos;Content&apos; media element, we need to be able to query whether a given element is paused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114340</commentid>
    <comment_count>1</comment_count>
      <attachid>258107</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-03 13:52:45 -0700</bug_when>
    <thetext>Created attachment 258107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114345</commentid>
    <comment_count>2</comment_count>
      <attachid>258107</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-08-03 14:03:05 -0700</bug_when>
    <thetext>Comment on attachment 258107
Patch

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

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:3895
&gt; +    m_process-&gt;sendSync(Messages::WebPage::IsMediaElementPaused(elementID), Messages::WebPage::IsMediaElementPaused::Reply(paused), m_pageID);

Let&apos;s try to come up with a plan that doesn&apos;t involve sync IPC. Can you have a callback that is called once the reply comes in?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114435</commentid>
    <comment_count>3</comment_count>
      <attachid>258134</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-03 16:39:47 -0700</bug_when>
    <thetext>Created attachment 258134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114438</commentid>
    <comment_count>4</comment_count>
      <attachid>258134</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-08-03 16:46:48 -0700</bug_when>
    <thetext>Comment on attachment 258134
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:4072
&gt; +    send(Messages::WebPageProxy::DidGetIsMediaElementPaused(callbackID, paused));

You could/should use the GenericCallback (specifically UnsignedCallback) mechanism here. Look around for examples. And probably your API (which oddly, I don&apos;t see here) should let people provide a block/function to call back (look at WKPageForceRepaint for an example, though that one doesn&apos;t return a value).

&gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:753
&gt; +    void getIsMediaElementPaused(uint64_t, uint64_t);

No &quot;get&quot; here; we usually reserve that for functions with out arguments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114447</commentid>
    <comment_count>5</comment_count>
      <attachid>258136</attachid>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-03 17:18:11 -0700</bug_when>
    <thetext>Created attachment 258136
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114450</commentid>
    <comment_count>6</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-03 17:19:56 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Comment on attachment 258134 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=258134&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.cpp:4072
&gt; &gt; +    send(Messages::WebPageProxy::DidGetIsMediaElementPaused(callbackID, paused));
&gt; 
&gt; You could/should use the GenericCallback (specifically UnsignedCallback)
&gt; mechanism here. Look around for examples. And probably your API (which
&gt; oddly, I don&apos;t see here) should let people provide a block/function to call
&gt; back (look at WKPageForceRepaint for an example, though that one doesn&apos;t
&gt; return a value).

I do use GenericCallback. I didn&apos;t realize I could just use UnsignedCallback instead of writing custom callbacks. Sending out a new revision.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebPage.h:753
&gt; &gt; +    void getIsMediaElementPaused(uint64_t, uint64_t);
&gt; 
&gt; No &quot;get&quot; here; we usually reserve that for functions with out arguments.

Renamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114452</commentid>
    <comment_count>7</comment_count>
      <attachid>258136</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-08-03 17:22:51 -0700</bug_when>
    <thetext>Comment on attachment 258136
Patch

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

&gt; Source/WebCore/page/Page.cpp:1233
&gt; +    return true;

This might deserve some sort of assert? Is there any reasonable way to get here? Is true-by-default right?

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:3889
&gt; +void WebPageProxy::isMediaElementPaused(uint64_t elementID, uint64_t callbackID)

This patch is maybe a smaller than expected slice of the real patch, because nothing calls this, but OK!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114456</commentid>
    <comment_count>8</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-03 17:28:06 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Comment on attachment 258136 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=258136&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Page.cpp:1233
&gt; &gt; +    return true;
&gt; 
&gt; This might deserve some sort of assert? Is there any reasonable way to get
&gt; here? Is true-by-default right?

Yup, I added a ASSERT_NOT_REACHED.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:3889
&gt; &gt; +void WebPageProxy::isMediaElementPaused(uint64_t elementID, uint64_t callbackID)
&gt; 
&gt; This patch is maybe a smaller than expected slice of the real patch, because
&gt; nothing calls this, but OK!

That&apos;s coming soon. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114459</commentid>
    <comment_count>9</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-03 17:31:15 -0700</bug_when>
    <thetext>Committed r187790: &lt;http://trac.webkit.org/changeset/187790&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114616</commentid>
    <comment_count>10</comment_count>
      <attachid>258136</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2015-08-04 09:13:12 -0700</bug_when>
    <thetext>Comment on attachment 258136
Patch

If you push media element state changes from the web process when they happen, the UI process won&apos;t have to query at all. We already do this for AirPlay and we *need* to consolidate that code with this, so I would prefer if you use that approach here as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1114629</commentid>
    <comment_count>11</comment_count>
    <who name="Matt Rajca">mrajca</who>
    <bug_when>2015-08-04 10:10:59 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Comment on attachment 258136 [details]
&gt; Patch
&gt; 
&gt; If you push media element state changes from the web process when they
&gt; happen, the UI process won&apos;t have to query at all. We already do this for
&gt; AirPlay and we *need* to consolidate that code with this, so I would prefer
&gt; if you use that approach here as well.

I&apos;ll send out a separate patch that pushes the paused state rather than polls.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258107</attachid>
            <date>2015-08-03 13:52:45 -0700</date>
            <delta_ts>2015-08-03 16:39:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147588-20150803135240.patch</filename>
            <type>text/plain</type>
            <size>6061</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBjNGU4MTNlZWNmOWM4
MjVhMWFhYWEwMTA2NDZiNDU0ZGZlNTgyMS4uODFjYzEyNzJiMjAzMWY2OGY4OWY3ZmI5MDdjNjk4
YmY5NzE4ZTIxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTA4LTAzICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiBsZXQg
VUkgY2xpZW50cyBxdWVyeSB3aGV0aGVyIGEgbWVkaWEgZWxlbWVudCBpcyBwYXVzZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzU4OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFnZS9QYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzTWVkaWFFbGVtZW50UGF1c2VkKTogUmVwb3J0
IHdoZXRoZXIgdGhlIGdpdmVuIGVsZW1lbnQgaXMgcGF1c2VkLgorICAgICAgICAqIHBhZ2UvUGFn
ZS5oOgorCiAyMDE1LTA3LTI3ICBNYXR0IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBNZWRpYSBTZXNzaW9uOiBpbmZvcm0gdGhlIFVJIHByb2Nlc3Mgd2hlbiB0aGUgZm9jdXNl
ZCBDb250ZW50IG1lZGlhIGVsZW1lbnQgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDNhYzJiNzAxNWM3
NDQxNGQ2NDlkOGVlNWYwMTlkYWVjOWY3OGUyNDkuLjZkNGE3ZTU4NzA1MmQ5NWE2ODM5Y2M4NWQz
MzU2N2I0ZjA4ZDA4MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNS0wOC0wMyAg
TWF0dCBSYWpjYSAgPG1yYWpjYUBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWEgU2Vzc2lvbjog
bGV0IFVJIGNsaWVudHMgcXVlcnkgd2hldGhlciBhIG1lZGlhIGVsZW1lbnQgaXMgcGF1c2VkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc1ODgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRlZCBwbHVt
YmluZyBmb3IgcXVlcnlpbmcgd2hldGhlciBhIG1lZGlhIGVsZW1lbnQgaXMgcGF1c2VkLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6aXNNZWRpYUVsZW1lbnRQYXVzZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmlzTWVkaWFFbGVtZW50UGF1c2VkKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDE1LTA3LTI3ICBNYXR0IFJhamNhICA8
bXJhamNhQGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYSBTZXNzaW9uOiBpbmZvcm0gdGhlIFVJ
IHByb2Nlc3Mgd2hlbiB0aGUgZm9jdXNlZCBDb250ZW50IG1lZGlhIGVsZW1lbnQgY2hhbmdlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKaW5kZXggMTYwNjM5MGMxYjAzMWMzM2M3ZTBkMzU0NTkwZWE5ZDUzMjIz
YWUzNi4uYjU5OWJkZjhmMDE1OGUyZjFjOTgxZGEyN2E5NzMzYWE1YWFhNjliMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCkBAIC0xMjI0LDYgKzEyMjQsMTQgQEAgdm9pZCBQYWdlOjpoYW5kbGVNZWRpYUV2
ZW50KE1lZGlhRXZlbnRUeXBlIGV2ZW50VHlwZSkKICAgICAgICAgYnJlYWs7CiAgICAgfQogfQor
Citib29sIFBhZ2U6OmlzTWVkaWFFbGVtZW50UGF1c2VkKHVpbnQ2NF90IGVsZW1lbnRJRCkKK3sK
KyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCA9IEhUTUxNZWRpYUVsZW1lbnQ6OmVs
ZW1lbnRXaXRoSUQoZWxlbWVudElEKSkKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQtPnBhdXNlZCgp
OworCisgICAgcmV0dXJuIHRydWU7Cit9CiAjZW5kaWYKIAogI2lmICFBU1NFUlRfRElTQUJMRUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5oIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9QYWdlLmgKaW5kZXggMDJiMjAxMDE5MDVmYjRkMGNhYjZhNjNhZTFiYWMxODg0YjFiZGI2
NS4uMTg4ZWI0ZDI3YzBkNDg4MDgxOTI0MWFkMDhlMmZmNDRlNTkwZWIxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmgKQEAgLTQ0Miw2ICs0NDIsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lP
TikKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGhhbmRsZU1lZGlhRXZlbnQoTWVkaWFFdmVudFR5
cGUpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNNZWRpYUVsZW1lbnRQYXVzZWQodWludDY0
X3QpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA1OTljOWE3ZWY3ZjQ4
ZDA2M2IyNzc0ZDI2ZTNiMWI4Yjk1MmU5NGM5Li43YTBjNDBjMjcxNjQxYmNkYzBiODEyNDA4ZWI5
MTg2MWFiMjhhNDg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtMzg4NSw2ICszODg1LDE2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVNZWRpYUV2
ZW50KE1lZGlhRXZlbnRUeXBlIGV2ZW50VHlwZSkKICAgICAKICAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OkhhbmRsZU1lZGlhRXZlbnQoZXZlbnRUeXBlKSwgbV9wYWdlSUQp
OwogfQorCitib29sIFdlYlBhZ2VQcm94eTo6aXNNZWRpYUVsZW1lbnRQYXVzZWQodWludDY0X3Qg
ZWxlbWVudElEKQoreworICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KworICAgIGJvb2wgcGF1c2VkID0gdHJ1ZTsKKyAgICBtX3Byb2Nlc3MtPnNlbmRTeW5jKE1lc3Nh
Z2VzOjpXZWJQYWdlOjpJc01lZGlhRWxlbWVudFBhdXNlZChlbGVtZW50SUQpLCBNZXNzYWdlczo6
V2ViUGFnZTo6SXNNZWRpYUVsZW1lbnRQYXVzZWQ6OlJlcGx5KHBhdXNlZCksIG1fcGFnZUlEKTsK
KyAgICByZXR1cm4gcGF1c2VkOworfQogI2VuZGlmCiAKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRN
YXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wgbWF5U3RhcnRNZWRpYSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBlMmVjMDIzMWZmZTlhYmQ4MDUzZDc0Yjkz
ZWVjMzg5ODM2ZDQwOGY0Li4xMjY1MGY1ZDU4MjcyOWQ0OGY5ZjM1N2I5YWU0MDFkNGYxODNmNThi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC05NDYsNiArOTQ2
LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShNRURJQV9TRVNTSU9OKQogICAgIGJvb2wgaGFzTWVk
aWFTZXNzaW9uV2l0aEFjdGl2ZU1lZGlhRWxlbWVudHMoKSBjb25zdCB7IHJldHVybiBtX2hhc01l
ZGlhU2Vzc2lvbldpdGhBY3RpdmVNZWRpYUVsZW1lbnRzOyB9CiAgICAgdm9pZCBoYW5kbGVNZWRp
YUV2ZW50KFdlYkNvcmU6Ok1lZGlhRXZlbnRUeXBlKTsKKyAgICBib29sIGlzTWVkaWFFbGVtZW50
UGF1c2VkKHVpbnQ2NF90KTsKICNlbmRpZgogCiAgICAgLy8gV2ViUG9wdXBNZW51UHJveHk6OkNs
aWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmlu
ZGV4IGFhMjBkYzRjN2Q4NzQ0ODA3OTlhYTc2MDRkMGExZTg1NWExOTM0NjcuLjQ3MjA5YmM3NWZi
YTcwNGNmMzk1NGNjNzc4MjQ5ODI4ODQ0ODlkNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTQwNjUsNiArNDA2NSwxMSBAQCB2b2lkIFdl
YlBhZ2U6OmhhbmRsZU1lZGlhRXZlbnQodWludDMyX3QgZXZlbnRUeXBlKQogewogICAgIG1fcGFn
ZS0+aGFuZGxlTWVkaWFFdmVudChzdGF0aWNfY2FzdDxNZWRpYUV2ZW50VHlwZT4oZXZlbnRUeXBl
KSk7CiB9CisKK3ZvaWQgV2ViUGFnZTo6aXNNZWRpYUVsZW1lbnRQYXVzZWQodWludDY0X3QgZWxl
bWVudElELCBib29sJiBpc1BhdXNlZCkKK3sKKyAgICBpc1BhdXNlZCA9IG1fcGFnZS0+aXNNZWRp
YUVsZW1lbnRQYXVzZWQoZWxlbWVudElEKTsKK30KICNlbmRpZgogCiB2b2lkIFdlYlBhZ2U6OnNl
dE1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3coYm9vbCBtYXlTdGFydE1lZGlhKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXggM2NiNjI2NjM2NzBiMDMz
NGZkMDY0MTcxMzM5MWQ0OGRkNTYyNzg2ZC4uYTZiMWQ5ZmE0NWFmODFjMWFhY2Y0NmU1OGU2YWFj
ZTUyM2IyNzI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5oCkBAIC03NTAsNiArNzUwLDcgQEAgcHVibGljOgogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJ
T04pCiAgICAgdm9pZCBoYW5kbGVNZWRpYUV2ZW50KHVpbnQzMl90IC8qIFdlYkNvcmU6Ok1lZGlh
RXZlbnRUeXBlICovKTsKKyAgICB2b2lkIGlzTWVkaWFFbGVtZW50UGF1c2VkKHVpbnQ2NF90LCBi
b29sJik7CiAjZW5kaWYKIAogICAgIHZvaWQgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsT2Zmc2V0UGlu
bmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5tZXNzYWdlcy5pbgppbmRleCAwMGFiNGZkNWFjM2EzZTNmNWM3ZDQ0YzU5OTZhZTIxNTNm
YWJlNGQ1Li45ZmRiNmM4OTAzMGUxMTllMDJhZTIwNzVjOTQ2ZjExOWE2MTZjNDE4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdl
cy5pbgpAQCAtMzE2LDYgKzMxNiw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2
ZXIgewogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAgICAgSGFuZGxlTWVkaWFFdmVudCh1
aW50MzJfdCBldmVudFR5cGUpCisgICAgSXNNZWRpYUVsZW1lbnRQYXVzZWQodWludDY0X3QgZWxl
bWVudElEKSAtPiAoYm9vbCBwYXVzZWQpCiAjZW5kaWYKIAogICAgIC8vIEZJWE1FOiBUaGlzIGEg
ZHVtbXkgbWVzc2FnZSwgdG8gYXZvaWQgYnJlYWtpbmcgdGhlIGJ1aWxkIGZvciBwbGF0Zm9ybXMg
dGhhdCBkb24ndCByZXF1aXJlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258134</attachid>
            <date>2015-08-03 16:39:47 -0700</date>
            <delta_ts>2015-08-03 17:18:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147588-20150803163941.patch</filename>
            <type>text/plain</type>
            <size>7489</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBjNGU4MTNlZWNmOWM4
MjVhMWFhYWEwMTA2NDZiNDU0ZGZlNTgyMS4uMDZlNWU5MDg5MzU5ZjlmMDk1MjI3MzA4NzIxNWFl
N2YyYzYyNmI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTA4LTAzICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiBsZXQg
VUkgY2xpZW50cyBxdWVyeSB3aGV0aGVyIGEgbWVkaWEgZWxlbWVudCBpcyBwYXVzZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzU4OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFnZS9QYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzTWVkaWFFbGVtZW50UGF1c2VkKTogRGV0ZXJt
aW5lIGlmIHRoZSBtZWRpYSBlbGVtZW50IHdpdGggdGhlIGdpdmVuIElEIGlzIHBhdXNlZC4KKyAg
ICAgICAgKiBwYWdlL1BhZ2UuaDoKKwogMjAxNS0wNy0yNyAgTWF0dCBSYWpjYSAgPG1yYWpjYUBh
cHBsZS5jb20+CiAKICAgICAgICAgTWVkaWEgU2Vzc2lvbjogaW5mb3JtIHRoZSBVSSBwcm9jZXNz
IHdoZW4gdGhlIGZvY3VzZWQgQ29udGVudCBtZWRpYSBlbGVtZW50IGNoYW5nZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCAzYWMyYjcwMTVjNzQ0MTRkNjQ5ZDhlZTVmMDE5ZGFlYzlmNzhlMjQ5Li5hOTk1ODEzOTg3
MjA5ZWMwODVjMTc4NGRhNTQ1MGEyM2FhMGYxOTFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTUtMDgtMDMgIE1hdHQgUmFqY2EgIDxtcmFqY2FAYXBwbGUuY29tPgorCisgICAgICAg
IE1lZGlhIFNlc3Npb246IGxldCBVSSBjbGllbnRzIHF1ZXJ5IHdoZXRoZXIgYSBtZWRpYSBlbGVt
ZW50IGlzIHBhdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ3NTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgcGx1bWJpbmcgdG8gZGV0ZXJtaW5lIGlmIGEgcGFnZSdzIG1lZGlhIGVsZW1l
bnQgaXMgcGF1c2VkLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z2V0SXNNZWRpYUVsZW1lbnRQYXVzZWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEdldElzTWVkaWFFbGVtZW50UGF1c2Vk
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldElzTWVkaWFFbGVt
ZW50UGF1c2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDE1LTA3
LTI3ICBNYXR0IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYSBTZXNz
aW9uOiBpbmZvcm0gdGhlIFVJIHByb2Nlc3Mgd2hlbiB0aGUgZm9jdXNlZCBDb250ZW50IG1lZGlh
IGVsZW1lbnQgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMTYwNjM5MGMxYjAzMWMzM2M3
ZTBkMzU0NTkwZWE5ZDUzMjIzYWUzNi4uYjU5OWJkZjhmMDE1OGUyZjFjOTgxZGEyN2E5NzMzYWE1
YWFhNjliMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMjI0LDYgKzEyMjQsMTQgQEAgdm9pZCBQ
YWdlOjpoYW5kbGVNZWRpYUV2ZW50KE1lZGlhRXZlbnRUeXBlIGV2ZW50VHlwZSkKICAgICAgICAg
YnJlYWs7CiAgICAgfQogfQorCitib29sIFBhZ2U6OmlzTWVkaWFFbGVtZW50UGF1c2VkKHVpbnQ2
NF90IGVsZW1lbnRJRCkKK3sKKyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCA9IEhU
TUxNZWRpYUVsZW1lbnQ6OmVsZW1lbnRXaXRoSUQoZWxlbWVudElEKSkKKyAgICAgICAgcmV0dXJu
IGVsZW1lbnQtPnBhdXNlZCgpOworCisgICAgcmV0dXJuIHRydWU7Cit9CiAjZW5kaWYKIAogI2lm
ICFBU1NFUlRfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMDJiMjAxMDE5MDVmYjRkMGNhYjZh
NjNhZTFiYWMxODg0YjFiZGI2NS4uMTg4ZWI0ZDI3YzBkNDg4MDgxOTI0MWFkMDhlMmZmNDRlNTkw
ZWIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTQ0Miw2ICs0NDIsNyBAQCBwdWJsaWM6CiAKICNpZiBF
TkFCTEUoTUVESUFfU0VTU0lPTikKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGhhbmRsZU1lZGlh
RXZlbnQoTWVkaWFFdmVudFR5cGUpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNNZWRpYUVs
ZW1lbnRQYXVzZWQodWludDY0X3QpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExB
WUJBQ0tfVEFSR0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCA1OTljOWE3ZWY3ZjQ4ZDA2M2IyNzc0ZDI2ZTNiMWI4Yjk1MmU5NGM5Li41N2IwMWU0YjY3
ZjRmOGFiODA5NTAyZGU0MjRjYTEyNjI4ZDAzYzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzg4NSw2ICszODg1LDE0IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpoYW5kbGVNZWRpYUV2ZW50KE1lZGlhRXZlbnRUeXBlIGV2ZW50VHlwZSkKICAgICAKICAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkhhbmRsZU1lZGlhRXZlbnQoZXZl
bnRUeXBlKSwgbV9wYWdlSUQpOwogfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6Z2V0SXNNZWRpYUVs
ZW1lbnRQYXVzZWQodWludDY0X3QgZWxlbWVudElELCB1aW50NjRfdCBjYWxsYmFja0lEKQorewor
ICAgIGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OkdldElzTWVkaWFFbGVtZW50UGF1c2VkKGVsZW1lbnRJRCwg
Y2FsbGJhY2tJRCksIG1fcGFnZUlEKTsKK30KICNlbmRpZgogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
c2V0TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhib29sIG1heVN0YXJ0TWVkaWEpCkBAIC01OTcw
LDYgKzU5NzgsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmZvY3VzZWRDb250ZW50TWVkaWFFbGVt
ZW50RGlkQ2hhbmdlKHVpbnQ2NF90IGVsZW1lbnRJRCkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgp
OwogfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkR2V0SXNNZWRpYUVsZW1lbnRQYXVzZWQodWlu
dDY0X3QgZWxlbWVudElELCBib29sIHBhdXNlZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKaW5kZXggZTJlYzAyMzFmZmU5YWJkODA1M2Q3NGI5M2VlYzM4OTgzNmQ0MDhm
NC4uMTg4YzM3ZjYyMzgzNjM4MTliZmVlNGRiMjhmMDlkM2I3MWRmYjZlYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtOTQ2LDYgKzk0Niw3IEBAIHB1YmxpYzoK
ICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICBib29sIGhhc01lZGlhU2Vzc2lvbldpdGhB
Y3RpdmVNZWRpYUVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNNZWRpYVNlc3Npb25XaXRo
QWN0aXZlTWVkaWFFbGVtZW50czsgfQogICAgIHZvaWQgaGFuZGxlTWVkaWFFdmVudChXZWJDb3Jl
OjpNZWRpYUV2ZW50VHlwZSk7CisgICAgdm9pZCBnZXRJc01lZGlhRWxlbWVudFBhdXNlZCh1aW50
NjRfdCwgdWludDY0X3QpOwogI2VuZGlmCiAKICAgICAvLyBXZWJQb3B1cE1lbnVQcm94eTo6Q2xp
ZW50CkBAIC0xMDMzLDYgKzEwMzQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBoYXNNZWRpYVNlc3Np
b25XaXRoQWN0aXZlTWVkaWFFbGVtZW50c0RpZENoYW5nZShib29sKTsKICAgICB2b2lkIG1lZGlh
U2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKGNvbnN0IFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1ldGFk
YXRhJik7CiAgICAgdm9pZCBmb2N1c2VkQ29udGVudE1lZGlhRWxlbWVudERpZENoYW5nZSh1aW50
NjRfdCk7CisgICAgdm9pZCBkaWRHZXRJc01lZGlhRWxlbWVudFBhdXNlZCh1aW50NjRfdCwgYm9v
bCk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGVkMDdjOTNiNTEwMWMyNDUy
MDYxZWUyNDM2YTllN2RjMGUxYzczNTIuLjQ0NjFhZTBhYTNlNzk1OGI0NDkyNzc1YTBmYThiZDRi
OGI4YzJlNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbgpAQCAtNDI4LDYgKzQyOCw3IEBAIG1lc3NhZ2VzIC0+IFdlYlBhZ2VQcm94
eSB7CiAgICAgSGFzTWVkaWFTZXNzaW9uV2l0aEFjdGl2ZU1lZGlhRWxlbWVudHNEaWRDaGFuZ2Uo
Ym9vbCBzdGF0ZSkKICAgICBNZWRpYVNlc3Npb25NZXRhZGF0YURpZENoYW5nZShXZWJDb3JlOjpN
ZWRpYVNlc3Npb25NZXRhZGF0YSBtZXRhZGF0YSk7CiAgICAgRm9jdXNlZENvbnRlbnRNZWRpYUVs
ZW1lbnREaWRDaGFuZ2UodWludDY0X3QgZWxlbWVudElEKQorICAgIERpZEdldElzTWVkaWFFbGVt
ZW50UGF1c2VkKHVpbnQ2NF90IGVsZW1lbnRJRCwgYm9vbCBwYXVzZWQpCiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCBhYTIwZGM0YzdkODc0NDgwNzk5YWE3NjA0ZDBhMWU4NTVhMTkzNDY3Li45
Mjc0ZDBkYjZjMzM3OWMwM2EzNzg0NWZlM2FmNGRmZTM4Yjk5NzMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC00MDY1LDYgKzQwNjUsMTIg
QEAgdm9pZCBXZWJQYWdlOjpoYW5kbGVNZWRpYUV2ZW50KHVpbnQzMl90IGV2ZW50VHlwZSkKIHsK
ICAgICBtX3BhZ2UtPmhhbmRsZU1lZGlhRXZlbnQoc3RhdGljX2Nhc3Q8TWVkaWFFdmVudFR5cGU+
KGV2ZW50VHlwZSkpOwogfQorCit2b2lkIFdlYlBhZ2U6OmdldElzTWVkaWFFbGVtZW50UGF1c2Vk
KHVpbnQ2NF90IGVsZW1lbnRJRCwgdWludDY0X3QgY2FsbGJhY2tJRCkKK3sKKyAgICBib29sIHBh
dXNlZCA9IG1fcGFnZS0+aXNNZWRpYUVsZW1lbnRQYXVzZWQoZWxlbWVudElEKTsKKyAgICBzZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEdldElzTWVkaWFFbGVtZW50UGF1c2VkKGNhbGxi
YWNrSUQsIHBhdXNlZCkpOworfQogI2VuZGlmCiAKIHZvaWQgV2ViUGFnZTo6c2V0TWF5U3RhcnRN
ZWRpYVdoZW5JbldpbmRvdyhib29sIG1heVN0YXJ0TWVkaWEpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAzY2I2MjY2MzY3MGIwMzM0ZmQwNjQxNzEz
MzkxZDQ4ZGQ1NjI3ODZkLi5lYjI1MWVmMzA1MDljOWMzOWFjZGQ0ODNkZTJiZGQyODU2ZDJkMWJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTc1
MCw2ICs3NTAsNyBAQCBwdWJsaWM6CiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICB2
b2lkIGhhbmRsZU1lZGlhRXZlbnQodWludDMyX3QgLyogV2ViQ29yZTo6TWVkaWFFdmVudFR5cGUg
Ki8pOworICAgIHZvaWQgZ2V0SXNNZWRpYUVsZW1lbnRQYXVzZWQodWludDY0X3QsIHVpbnQ2NF90
KTsKICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVNYWluRnJhbWVTY3JvbGxPZmZzZXRQaW5uaW5n
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
Lm1lc3NhZ2VzLmluCmluZGV4IDAwYWI0ZmQ1YWMzYTNlM2Y1YzdkNDRjNTk5NmFlMjE1M2ZhYmU0
ZDUuLmYyOWViNmY4MjZhNTRkM2I0N2Y0ZWVlZTVkMTE2Y2I4ZWEyNzIyOTggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmlu
CkBAIC0zMTYsNiArMzE2LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7
CiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICBIYW5kbGVNZWRpYUV2ZW50KHVpbnQz
Ml90IGV2ZW50VHlwZSkKKyAgICBHZXRJc01lZGlhRWxlbWVudFBhdXNlZCh1aW50NjRfdCBlbGVt
ZW50SUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCiAjZW5kaWYKIAogICAgIC8vIEZJWE1FOiBUaGlz
IGEgZHVtbXkgbWVzc2FnZSwgdG8gYXZvaWQgYnJlYWtpbmcgdGhlIGJ1aWxkIGZvciBwbGF0Zm9y
bXMgdGhhdCBkb24ndCByZXF1aXJlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>258136</attachid>
            <date>2015-08-03 17:18:11 -0700</date>
            <delta_ts>2015-08-03 17:22:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-147588-20150803171805.patch</filename>
            <type>text/plain</type>
            <size>6100</size>
            <attacher name="Matt Rajca">mrajca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg3NzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjBjNGU4MTNlZWNmOWM4
MjVhMWFhYWEwMTA2NDZiNDU0ZGZlNTgyMS4uMDZlNWU5MDg5MzU5ZjlmMDk1MjI3MzA4NzIxNWFl
N2YyYzYyNmI2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE1LTA4LTAzICBNYXR0
IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYSBTZXNzaW9uOiBsZXQg
VUkgY2xpZW50cyBxdWVyeSB3aGV0aGVyIGEgbWVkaWEgZWxlbWVudCBpcyBwYXVzZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NzU4OAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFnZS9QYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmlzTWVkaWFFbGVtZW50UGF1c2VkKTogRGV0ZXJt
aW5lIGlmIHRoZSBtZWRpYSBlbGVtZW50IHdpdGggdGhlIGdpdmVuIElEIGlzIHBhdXNlZC4KKyAg
ICAgICAgKiBwYWdlL1BhZ2UuaDoKKwogMjAxNS0wNy0yNyAgTWF0dCBSYWpjYSAgPG1yYWpjYUBh
cHBsZS5jb20+CiAKICAgICAgICAgTWVkaWEgU2Vzc2lvbjogaW5mb3JtIHRoZSBVSSBwcm9jZXNz
IHdoZW4gdGhlIGZvY3VzZWQgQ29udGVudCBtZWRpYSBlbGVtZW50IGNoYW5nZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCAzYWMyYjcwMTVjNzQ0MTRkNjQ5ZDhlZTVmMDE5ZGFlYzlmNzhlMjQ5Li42ZjdhOTU4OGIw
YTA4NmM0ZjFkYTcwYThhMmIzYThiMDM4MjZkNGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTUtMDgtMDMgIE1hdHQgUmFqY2EgIDxtcmFqY2FAYXBwbGUuY29tPgorCisgICAgICAg
IE1lZGlhIFNlc3Npb246IGxldCBVSSBjbGllbnRzIHF1ZXJ5IHdoZXRoZXIgYSBtZWRpYSBlbGVt
ZW50IGlzIHBhdXNlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ3NTg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkZWQgcGx1bWJpbmcgdG8gZGV0ZXJtaW5lIGlmIGEgcGFnZSdzIG1lZGlhIGVsZW1l
bnQgaXMgcGF1c2VkLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aXNNZWRpYUVsZW1lbnRQYXVzZWQpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmlzTWVkaWFFbGVt
ZW50UGF1c2VkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluOgorCiAyMDE1LTA3
LTI3ICBNYXR0IFJhamNhICA8bXJhamNhQGFwcGxlLmNvbT4KIAogICAgICAgICBNZWRpYSBTZXNz
aW9uOiBpbmZvcm0gdGhlIFVJIHByb2Nlc3Mgd2hlbiB0aGUgZm9jdXNlZCBDb250ZW50IG1lZGlh
IGVsZW1lbnQgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggMTYwNjM5MGMxYjAzMWMzM2M3
ZTBkMzU0NTkwZWE5ZDUzMjIzYWUzNi4uYjU5OWJkZjhmMDE1OGUyZjFjOTgxZGEyN2E5NzMzYWE1
YWFhNjliMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMjI0LDYgKzEyMjQsMTQgQEAgdm9pZCBQ
YWdlOjpoYW5kbGVNZWRpYUV2ZW50KE1lZGlhRXZlbnRUeXBlIGV2ZW50VHlwZSkKICAgICAgICAg
YnJlYWs7CiAgICAgfQogfQorCitib29sIFBhZ2U6OmlzTWVkaWFFbGVtZW50UGF1c2VkKHVpbnQ2
NF90IGVsZW1lbnRJRCkKK3sKKyAgICBpZiAoSFRNTE1lZGlhRWxlbWVudCogZWxlbWVudCA9IEhU
TUxNZWRpYUVsZW1lbnQ6OmVsZW1lbnRXaXRoSUQoZWxlbWVudElEKSkKKyAgICAgICAgcmV0dXJu
IGVsZW1lbnQtPnBhdXNlZCgpOworCisgICAgcmV0dXJuIHRydWU7Cit9CiAjZW5kaWYKIAogI2lm
ICFBU1NFUlRfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5o
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKaW5kZXggMDJiMjAxMDE5MDVmYjRkMGNhYjZh
NjNhZTFiYWMxODg0YjFiZGI2NS4uMTg4ZWI0ZDI3YzBkNDg4MDgxOTI0MWFkMDhlMmZmNDRlNTkw
ZWIxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9QYWdlLmgKQEAgLTQ0Miw2ICs0NDIsNyBAQCBwdWJsaWM6CiAKICNpZiBF
TkFCTEUoTUVESUFfU0VTU0lPTikKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGhhbmRsZU1lZGlh
RXZlbnQoTWVkaWFFdmVudFR5cGUpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaXNNZWRpYUVs
ZW1lbnRQYXVzZWQodWludDY0X3QpOwogI2VuZGlmCiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExB
WUJBQ0tfVEFSR0VUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApp
bmRleCA1OTljOWE3ZWY3ZjQ4ZDA2M2IyNzc0ZDI2ZTNiMWI4Yjk1MmU5NGM5Li4wMjhiNTQwZDE2
ZjdhZWMxZjVkZTUwMDJhNWRkZjM2ZTdiZWRmNmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMzg4NSw2ICszODg1LDE0IEBAIHZvaWQgV2ViUGFnZVBy
b3h5OjpoYW5kbGVNZWRpYUV2ZW50KE1lZGlhRXZlbnRUeXBlIGV2ZW50VHlwZSkKICAgICAKICAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkhhbmRsZU1lZGlhRXZlbnQoZXZl
bnRUeXBlKSwgbV9wYWdlSUQpOwogfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6aXNNZWRpYUVsZW1l
bnRQYXVzZWQodWludDY0X3QgZWxlbWVudElELCB1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAg
IGlmICghaXNWYWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Byb2Nlc3MtPnNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OklzTWVkaWFFbGVtZW50UGF1c2VkKGVsZW1lbnRJRCwgY2FsbGJh
Y2tJRCksIG1fcGFnZUlEKTsKK30KICNlbmRpZgogCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWF5
U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhib29sIG1heVN0YXJ0TWVkaWEpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggZTJlYzAyMzFmZmU5YWJkODA1M2Q3NGI5M2Vl
YzM4OTgzNmQ0MDhmNC4uMWViY2UxZWQ2YTU3MGU5YTc3ZDE2ZWYyYTlhZTI1OTdhNmY0ZmJhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtOTQ2LDYgKzk0Niw3
IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICBib29sIGhhc01lZGlh
U2Vzc2lvbldpdGhBY3RpdmVNZWRpYUVsZW1lbnRzKCkgY29uc3QgeyByZXR1cm4gbV9oYXNNZWRp
YVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50czsgfQogICAgIHZvaWQgaGFuZGxlTWVkaWFF
dmVudChXZWJDb3JlOjpNZWRpYUV2ZW50VHlwZSk7CisgICAgdm9pZCBpc01lZGlhRWxlbWVudFBh
dXNlZCh1aW50NjRfdCwgdWludDY0X3QpOwogI2VuZGlmCiAKICAgICAvLyBXZWJQb3B1cE1lbnVQ
cm94eTo6Q2xpZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggYWEyMGRjNGM3ZDg3NDQ4MDc5OWFhNzYwNGQwYTFlODU1YTE5MzQ2Ny4uMzJm
NjJlNmNmNjA2ODg0MTU2MzNiYzAxYmRlMGNjY2VjMjg4MDUyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDA2NSw2ICs0MDY1LDEyIEBA
IHZvaWQgV2ViUGFnZTo6aGFuZGxlTWVkaWFFdmVudCh1aW50MzJfdCBldmVudFR5cGUpCiB7CiAg
ICAgbV9wYWdlLT5oYW5kbGVNZWRpYUV2ZW50KHN0YXRpY19jYXN0PE1lZGlhRXZlbnRUeXBlPihl
dmVudFR5cGUpKTsKIH0KKwordm9pZCBXZWJQYWdlOjppc01lZGlhRWxlbWVudFBhdXNlZCh1aW50
NjRfdCBlbGVtZW50SUQsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgYm9vbCBwYXVzZWQg
PSBtX3BhZ2UtPmlzTWVkaWFFbGVtZW50UGF1c2VkKGVsZW1lbnRJRCk7CisgICAgc2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpVbnNpZ25lZENhbGxiYWNrKHBhdXNlZCwgY2FsbGJhY2tJRCkp
OworfQogI2VuZGlmCiAKIHZvaWQgV2ViUGFnZTo6c2V0TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRv
dyhib29sIG1heVN0YXJ0TWVkaWEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCAzY2I2MjY2MzY3MGIwMzM0ZmQwNjQxNzEzMzkxZDQ4ZGQ1NjI3ODZk
Li4xNTlhODBjNmU5ZmUyMzBlNDI3OWIzZmQyODE5YjYzZWYwMWVlNzA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTc1MCw2ICs3NTAsNyBAQCBw
dWJsaWM6CiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICB2b2lkIGhhbmRsZU1lZGlh
RXZlbnQodWludDMyX3QgLyogV2ViQ29yZTo6TWVkaWFFdmVudFR5cGUgKi8pOworICAgIHZvaWQg
aXNNZWRpYUVsZW1lbnRQYXVzZWQodWludDY0X3QsIHVpbnQ2NF90KTsKICNlbmRpZgogCiAgICAg
dm9pZCB1cGRhdGVNYWluRnJhbWVTY3JvbGxPZmZzZXRQaW5uaW5nKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCmluZGV4
IDAwYWI0ZmQ1YWMzYTNlM2Y1YzdkNDRjNTk5NmFlMjE1M2ZhYmU0ZDUuLjdjYjcwMWQxYTk0NmRl
NzBjNWIzYzkyNzBhM2M0MzkzZDc1ZmY5YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC0zMTYsNiArMzE2LDcg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAKICNpZiBFTkFCTEUoTUVE
SUFfU0VTU0lPTikKICAgICBIYW5kbGVNZWRpYUV2ZW50KHVpbnQzMl90IGV2ZW50VHlwZSkKKyAg
ICBJc01lZGlhRWxlbWVudFBhdXNlZCh1aW50NjRfdCBlbGVtZW50SUQsIHVpbnQ2NF90IGNhbGxi
YWNrSUQpCiAjZW5kaWYKIAogICAgIC8vIEZJWE1FOiBUaGlzIGEgZHVtbXkgbWVzc2FnZSwgdG8g
YXZvaWQgYnJlYWtpbmcgdGhlIGJ1aWxkIGZvciBwbGF0Zm9ybXMgdGhhdCBkb24ndCByZXF1aXJl
Cg==
</data>
<flag name="review"
          id="283305"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>