<?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>180812</bug_id>
          
          <creation_ts>2017-12-14 08:03:31 -0800</creation_ts>
          <short_desc>[WPE][GTK] Sleep inhibitors do not work under Flatpak</short_desc>
          <delta_ts>2018-01-23 08:51:28 -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>WebKitGTK</component>
          <version>Other</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1381613</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-12-14 08:03:31 -0800</bug_when>
    <thetext>Sleep inhibitors don&apos;t work under flatpak. We need to use the flatpak portal D-Bus API directly. We can&apos;t use GtkApplication because this needs to work from the web process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391487</commentid>
    <comment_count>1</comment_count>
      <attachid>331875</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-01-21 12:07:52 -0800</bug_when>
    <thetext>Created attachment 331875
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391488</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-01-21 12:08:57 -0800</bug_when>
    <thetext>(I finally managed to test this using the new flapjack tool from Endless. It works.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391492</commentid>
    <comment_count>3</comment_count>
      <attachid>331879</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-01-21 12:43:50 -0800</bug_when>
    <thetext>Created attachment 331879
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391555</commentid>
    <comment_count>4</comment_count>
      <attachid>331879</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-01-21 23:17:13 -0800</bug_when>
    <thetext>Comment on attachment 331879
Patch

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

&gt; Source/WebCore/PAL/pal/system/glib/SleepDisablerGLib.cpp:95
&gt; +            // It failed. Try to use the Flatpak portal instead.
&gt; +            g_dbus_proxy_new_for_bus(G_BUS_TYPE_SESSION, static_cast&lt;GDBusProxyFlags&gt;(G_DBUS_PROXY_FLAGS_DO_NOT_LOAD_PROPERTIES | G_DBUS_PROXY_FLAGS_DO_NOT_CONNECT_SIGNALS),
&gt; +                nullptr, &quot;org.freedesktop.portal.Desktop&quot;, &quot;/org/freedesktop/portal/desktop&quot;, &quot;org.freedesktop.portal.Inhibit&quot;, self-&gt;m_cancellable.get(),
&gt; +                [](GObject*, GAsyncResult* result, gpointer userData) {
&gt; +                    GUniqueOutPtr&lt;GError&gt; error;
&gt; +                    GRefPtr&lt;GDBusProxy&gt; proxy = adoptGRef(g_dbus_proxy_new_for_bus_finish(result, &amp;error.outPtr()));
&gt; +                    if (g_error_matches(error.get(), G_IO_ERROR, G_IO_ERROR_CANCELLED))
&gt; +                        return;
&gt; +
&gt; +                    auto* self = static_cast&lt;SleepDisablerGLib*&gt;(userData);
&gt; +                    if (proxy) {
&gt; +                        GUniquePtr&lt;char&gt; nameOwner(g_dbus_proxy_get_name_owner(proxy.get()));
&gt; +                        if (nameOwner) {
&gt; +                            self-&gt;m_inhibitPortalProxy = WTFMove(proxy);
&gt; +                            self-&gt;acquireInhibitor();
&gt; +                            return;
&gt; +                        }
&gt; +                    }
&gt; +
&gt; +                    // Give up. Don&apos;t warn the user: this is expected.
&gt; +                    self-&gt;m_cancellable = nullptr;
&gt; +            }, self);

Could we move this to a helper function that receives the DBus names instead of duplicating the code?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391665</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-01-22 09:15:56 -0800</bug_when>
    <thetext>It would be a bit tricky. I guess the helper function would need to take, as parameters:

 * Three different strings (for the name owner, object path, interface name)
 * Pointer to the GRefPtr&lt;GDBusProxy&gt; to WTFMove(proxy) into, since this is different in the two different paths
 * The action to take on completion is different too, so it&apos;d need a pointer to an optional &lt;void (void)&gt; WTF::Function to called on completion in the event of failure; in the second case, that would just be to destroy the cancellable, but in the first case, it would be a lambda to call the helper function itself again with different parameters

That&apos;s my best idea. The helper function, say getDBusProxyIfNameIsOwned, would itself be simple, but the call to it would not be; it would look something like:

getDBusProxyIfNameIsOwned(&quot;org.freedesktop.ScreenSaver&quot;, &quot;/org/freedesktop/ScreenSaver&quot;, &quot;org.freedesktop.ScreenSaver&quot;, &amp;m_screenSaverProxy, [this] {
    getDBusProxyIfNameIsOwned(&quot;org.freedesktop.portal.Desktop&quot;, &quot;/org/freedesktop/portal/desktop&quot;, &quot;org.freedesktop.portal.Inhibit&quot;, &amp;m_inhibitPortalProxy, [this] {
        m_cancellable = nullptr;
    });
});

So it&apos;s certainly possible to reduce the code duplication, but it would be harder to read, so I&apos;m not sure we should. Do you still want me to try it, or do you have a better suggestion?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1391974</commentid>
    <comment_count>6</comment_count>
      <attachid>331879</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-01-22 22:14:32 -0800</bug_when>
    <thetext>Comment on attachment 331879
Patch

Ok, I guess it&apos;s fine as it is then. Thanks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392071</commentid>
    <comment_count>7</comment_count>
      <attachid>331879</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-23 08:51:27 -0800</bug_when>
    <thetext>Comment on attachment 331879
Patch

Clearing flags on attachment: 331879

Committed r227415: &lt;https://trac.webkit.org/changeset/227415&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1392072</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-23 08:51:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331875</attachid>
            <date>2018-01-21 12:07:52 -0800</date>
            <delta_ts>2018-01-21 12:43:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180812-20180121140751.patch</filename>
            <type>text/plain</type>
            <size>9462</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3Mjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBjYzkxYzVl
OGQ4MDdiMmM1MDI1MGFiZDM0MGVjMDYzMjFhN2Y2OTJjLi40NTk1YTUyNWQwNzQ4YzM1MzQxNjIx
MTQwYzE5NjBlNTZhZjU4ODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAor
MjAxOC0wMS0yMSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW1dQRV1bR1RLXSBTbGVlcCBpbmhpYml0b3JzIGRvIG5vdCB3b3JrIHVuZGVyIEZs
YXRwYWsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MDgxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVu
c3VyZSBTbGVlcERpc2FibGVyR0xpYiB3b3JrcyBldmVuIHdoZW4gcnVubmluZyBpbnNpZGUgYSBG
bGF0cGFrIHNhbmRib3ggYnkgdXNpbmcgdGhlCisgICAgICAgIEZyZWVkZXNrdG9wIGluaGliaXQg
cG9ydGFsIEQtQnVzIEFQSS4KKworICAgICAgICBVbmZvcnR1bmF0ZWx5IHRoaXMgaGFzIHRvIGJl
IHRlc3RlZCBtYW51YWxseS4KKworICAgICAgICAqIHBhbC9zeXN0ZW0vZ2xpYi9TbGVlcERpc2Fi
bGVyR0xpYi5jcHA6CisgICAgICAgIChQQUw6OlNsZWVwRGlzYWJsZXJHTGliOjpTbGVlcERpc2Fi
bGVyR0xpYik6CisgICAgICAgIChQQUw6OlNsZWVwRGlzYWJsZXJHTGliOjp+U2xlZXBEaXNhYmxl
ckdMaWIpOgorICAgICAgICAoUEFMOjpTbGVlcERpc2FibGVyR0xpYjo6YWNxdWlyZUluaGliaXRv
cik6CisgICAgICAgIChQQUw6OlNsZWVwRGlzYWJsZXJHTGliOjphY3F1aXJlSW5oaWJpdG9yVmlh
U2NyZWVuU2F2ZXJQcm94eSk6CisgICAgICAgIChQQUw6OlNsZWVwRGlzYWJsZXJHTGliOjphY3F1
aXJlSW5oaWJpdG9yVmlhSW5oaWJpdFBvcnRhbFByb3h5KToKKyAgICAgICAgKFBBTDo6U2xlZXBE
aXNhYmxlckdMaWI6OnJlbGVhc2VJbmhpYml0b3IpOgorICAgICAgICAoUEFMOjpTbGVlcERpc2Fi
bGVyR0xpYjo6cmVsZWFzZUluaGliaXRvclZpYVNjcmVlblNhdmVyUHJveHkpOgorICAgICAgICAo
UEFMOjpTbGVlcERpc2FibGVyR0xpYjo6cmVsZWFzZUluaGliaXRvclZpYUluaGliaXRQb3J0YWxQ
cm94eSk6CisKIDIwMTgtMDEtMTggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBbWGNvZGVdIFN0cmVhbWxpbmUgYW5kIGZ1dHVyZS1wcm9vZiB0YXJnZXQtbWFjT1Mt
dmVyc2lvbi1kZXBlbmRlbnQgYnVpbGQgc2V0dGluZyBkZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vZ2xpYi9TbGVlcERpc2FibGVyR0xpYi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9nbGliL1NsZWVwRGlzYWJsZXJHTGliLmNw
cAppbmRleCBhNWEyYzFjODk0NWY4Yzg5MDc2YzYyMjZkMjMzODkzMDE2MzAyMGJiLi4xZTg3MmZm
NTY4MjlkNTE3YWU4NzhkNTcyNDE2ZDJmNTI0YmZmYjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3N5c3RlbS9nbGliL1NsZWVwRGlzYWJsZXJHTGliLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9nbGliL1NsZWVwRGlzYWJsZXJHTGliLmNwcApAQCAt
NTEsNiArNTEsNyBAQCBTbGVlcERpc2FibGVyR0xpYjo6U2xlZXBEaXNhYmxlckdMaWIoY29uc3Qg
Y2hhciogcmVhc29uLCBUeXBlIHR5cGUpCiAgICAgaWYgKHR5cGUgIT0gU2xlZXBEaXNhYmxlcjo6
VHlwZTo6RGlzcGxheSkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gRmlyc3QsIHRyeSB0byB1
c2UgdGhlIFNjcmVlblNhdmVyIEFQSS4KICAgICBnX2RidXNfcHJveHlfbmV3X2Zvcl9idXMoR19C
VVNfVFlQRV9TRVNTSU9OLCBzdGF0aWNfY2FzdDxHREJ1c1Byb3h5RmxhZ3M+KEdfREJVU19QUk9Y
WV9GTEFHU19ET19OT1RfTE9BRF9QUk9QRVJUSUVTIHwgR19EQlVTX1BST1hZX0ZMQUdTX0RPX05P
VF9DT05ORUNUX1NJR05BTFMpLAogICAgICAgICBudWxscHRyLCAib3JnLmZyZWVkZXNrdG9wLlNj
cmVlblNhdmVyIiwgIi9vcmcvZnJlZWRlc2t0b3AvU2NyZWVuU2F2ZXIiLCAib3JnLmZyZWVkZXNr
dG9wLlNjcmVlblNhdmVyIiwgbV9jYW5jZWxsYWJsZS5nZXQoKSwKICAgICAgICAgW10oR09iamVj
dCosIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBncG9pbnRlciB1c2VyRGF0YSkgewpAQCAtNjEsNiAr
NjIsNyBAQCBTbGVlcERpc2FibGVyR0xpYjo6U2xlZXBEaXNhYmxlckdMaWIoY29uc3QgY2hhciog
cmVhc29uLCBUeXBlIHR5cGUpCiAKICAgICAgICAgICAgIGF1dG8qIHNlbGYgPSBzdGF0aWNfY2Fz
dDxTbGVlcERpc2FibGVyR0xpYio+KHVzZXJEYXRhKTsKICAgICAgICAgICAgIGlmIChwcm94eSkg
eworICAgICAgICAgICAgICAgIC8vIFVuZGVyIEZsYXRwYWssIHdlJ2xsIGdldCBhIHVzZWxlc3Mg
cHJveHkgd2l0aCBubyBuYW1lIG93bmVyLgogICAgICAgICAgICAgICAgIEdVbmlxdWVQdHI8Y2hh
cj4gbmFtZU93bmVyKGdfZGJ1c19wcm94eV9nZXRfbmFtZV9vd25lcihwcm94eS5nZXQoKSkpOwog
ICAgICAgICAgICAgICAgIGlmIChuYW1lT3duZXIpIHsKICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi0+bV9zY3JlZW5TYXZlclByb3h5ID0gV1RGTW92ZShwcm94eSk7CkBAIC02OSw4ICs3MSwyOCBA
QCBTbGVlcERpc2FibGVyR0xpYjo6U2xlZXBEaXNhYmxlckdMaWIoY29uc3QgY2hhciogcmVhc29u
LCBUeXBlIHR5cGUpCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICAvLyBHaXZlIHVwLiBEb24ndCB3YXJuIHRoZSB1c2VyOiB0aGlzIGlzIGV4cGVjdGVkLgot
ICAgICAgICAgICAgc2VsZi0+bV9jYW5jZWxsYWJsZSA9IG51bGxwdHI7CisgICAgICAgICAgICAv
LyBJdCBmYWlsZWQuIFRyeSB0byB1c2UgdGhlIEZsYXRwYWsgcG9ydGFsIGluc3RlYWQuCisgICAg
ICAgICAgICBnX2RidXNfcHJveHlfbmV3X2Zvcl9idXMoR19CVVNfVFlQRV9TRVNTSU9OLCBzdGF0
aWNfY2FzdDxHREJ1c1Byb3h5RmxhZ3M+KEdfREJVU19QUk9YWV9GTEFHU19ET19OT1RfTE9BRF9Q
Uk9QRVJUSUVTIHwgR19EQlVTX1BST1hZX0ZMQUdTX0RPX05PVF9DT05ORUNUX1NJR05BTFMpLAor
ICAgICAgICAgICAgICAgIG51bGxwdHIsICJvcmcuZnJlZWRlc2t0b3AucG9ydGFsLkRlc2t0b3Ai
LCAiL29yZy9mcmVlZGVza3RvcC9wb3J0YWwvZGVza3RvcCIsICJvcmcuZnJlZWRlc2t0b3AucG9y
dGFsLkluaGliaXQiLCBzZWxmLT5tX2NhbmNlbGxhYmxlLmdldCgpLAorICAgICAgICAgICAgICAg
IFtdKEdPYmplY3QqLCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgZ3BvaW50ZXIgdXNlckRhdGEpIHsK
KyAgICAgICAgICAgICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgICAg
ICAgICAgICAgICAgICBHUmVmUHRyPEdEQnVzUHJveHk+IHByb3h5ID0gYWRvcHRHUmVmKGdfZGJ1
c19wcm94eV9uZXdfZm9yX2J1c19maW5pc2gocmVzdWx0LCAmZXJyb3Iub3V0UHRyKCkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGdfZXJyb3JfbWF0Y2hlcyhlcnJvci5nZXQoKSwgR19JT19F
UlJPUiwgR19JT19FUlJPUl9DQU5DRUxMRUQpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgICAgICAgICAgICAgIGF1dG8qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbGVl
cERpc2FibGVyR0xpYio+KHVzZXJEYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHByb3h5
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IG5hbWVPd25lcihn
X2RidXNfcHJveHlfZ2V0X25hbWVfb3duZXIocHJveHkuZ2V0KCkpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChuYW1lT3duZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLT5tX2luaGliaXRQb3J0YWxQcm94eSA9IFdURk1vdmUocHJveHkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYtPmFjcXVpcmVJbmhpYml0b3IoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBHaXZlIHVwLiBEb24ndCB3
YXJuIHRoZSB1c2VyOiB0aGlzIGlzIGV4cGVjdGVkLgorICAgICAgICAgICAgICAgICAgICBzZWxm
LT5tX2NhbmNlbGxhYmxlID0gbnVsbHB0cjsKKyAgICAgICAgICAgIH0sIHNlbGYpOwogICAgICAg
ICB9LCB0aGlzKTsKIH0KIApAQCAtNzgsMTMgKzEwMCwyMyBAQCBTbGVlcERpc2FibGVyR0xpYjo6
flNsZWVwRGlzYWJsZXJHTGliKCkKIHsKICAgICBpZiAobV9jYW5jZWxsYWJsZSkKICAgICAgICAg
Z19jYW5jZWxsYWJsZV9jYW5jZWwobV9jYW5jZWxsYWJsZS5nZXQoKSk7Ci0gICAgZWxzZSBpZiAo
bV9zY3JlZW5TYXZlckNvb2tpZSkKKyAgICBlbHNlIGlmIChtX3NjcmVlblNhdmVyQ29va2llIHx8
IG1faW5oaWJpdFBvcnRhbFJlcXVlc3RPYmplY3RQYXRoKQogICAgICAgICByZWxlYXNlSW5oaWJp
dG9yKCk7CiB9CiAKIHZvaWQgU2xlZXBEaXNhYmxlckdMaWI6OmFjcXVpcmVJbmhpYml0b3IoKQog
ewotICAgIEFTU0VSVChtX3NjcmVlblNhdmVyUHJveHkpOworICAgIGlmIChtX3NjcmVlblNhdmVy
UHJveHkpIHsKKyAgICAgICAgQVNTRVJUKCFtX2luaGliaXRQb3J0YWxQcm94eSk7CisgICAgICAg
IGFjcXVpcmVJbmhpYml0b3JWaWFTY3JlZW5TYXZlclByb3h5KCk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgQVNTRVJUKG1faW5oaWJpdFBvcnRhbFByb3h5KTsKKyAgICAgICAgYWNxdWlyZUluaGli
aXRvclZpYUluaGliaXRQb3J0YWxQcm94eSgpOworICAgIH0KK30KKwordm9pZCBTbGVlcERpc2Fi
bGVyR0xpYjo6YWNxdWlyZUluaGliaXRvclZpYVNjcmVlblNhdmVyUHJveHkoKQorewogICAgIGdf
ZGJ1c19wcm94eV9jYWxsKG1fc2NyZWVuU2F2ZXJQcm94eS5nZXQoKSwgIkluaGliaXQiLCBnX3Zh
cmlhbnRfbmV3KCIoc3MpIiwgZ19nZXRfcHJnbmFtZSgpLCBtX3JlYXNvbi5kYXRhKCkpLAogICAg
ICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLCAtMSwgbV9jYW5jZWxsYWJsZS5nZXQoKSwgW10o
R09iamVjdCogcHJveHksIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBncG9pbnRlciB1c2VyRGF0YSkg
ewogICAgICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOwpAQCAtOTQsNyArMTI2
LDcgQEAgdm9pZCBTbGVlcERpc2FibGVyR0xpYjo6YWNxdWlyZUluaGliaXRvcigpCiAKICAgICAg
ICAgICAgIGF1dG8qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbGVlcERpc2FibGVyR0xpYio+KHVzZXJE
YXRhKTsKICAgICAgICAgICAgIGlmIChlcnJvcikKLSAgICAgICAgICAgICAgICBnX3dhcm5pbmco
IkNhbGxpbmcgJXMuSW5oaWJpdCBmYWlsZWQ6ICVzIiwgZ19kYnVzX3Byb3h5X2dldF9pbnRlcmZh
Y2VfbmFtZShzZWxmLT5tX3NjcmVlblNhdmVyUHJveHkuZ2V0KCkpLCBlcnJvci0+bWVzc2FnZSk7
CisgICAgICAgICAgICAgICAgZ193YXJuaW5nKCJDYWxsaW5nICVzLkluaGliaXQgZmFpbGVkOiAl
cyIsIGdfZGJ1c19wcm94eV9nZXRfaW50ZXJmYWNlX25hbWUoR19EQlVTX1BST1hZKHByb3h5KSks
IGVycm9yLT5tZXNzYWdlKTsKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIEFT
U0VSVChyZXR1cm5WYWx1ZSk7CiAgICAgICAgICAgICAgICAgZ192YXJpYW50X2dldChyZXR1cm5W
YWx1ZS5nZXQoKSwgIih1KSIsICZzZWxmLT5tX3NjcmVlblNhdmVyQ29va2llKTsKQEAgLTEwMywx
MCArMTM1LDQzIEBAIHZvaWQgU2xlZXBEaXNhYmxlckdMaWI6OmFjcXVpcmVJbmhpYml0b3IoKQog
ICAgICAgICB9LCB0aGlzKTsKIH0KIAordm9pZCBTbGVlcERpc2FibGVyR0xpYjo6YWNxdWlyZUlu
aGliaXRvclZpYUluaGliaXRQb3J0YWxQcm94eSgpCit7CisgICAgR1ZhcmlhbnRCdWlsZGVyIGJ1
aWxkZXI7CisgICAgZ192YXJpYW50X2J1aWxkZXJfaW5pdCgmYnVpbGRlciwgR19WQVJJQU5UX1RZ
UEVfVkFSRElDVCk7CisgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIs
ICJyZWFzb24iLCBnX3ZhcmlhbnRfbmV3X3N0cmluZyhtX3JlYXNvbi5kYXRhKCkpKTsKKyAgICBn
X2RidXNfcHJveHlfY2FsbChtX2luaGliaXRQb3J0YWxQcm94eS5nZXQoKSwgIkluaGliaXQiLCBn
X3ZhcmlhbnRfbmV3KCIoc3VAYXtzdn0pIiwgIiIgLyogbm8gd2luZG93ICovLCA4IC8qIGlkbGUg
Ki8sIGdfdmFyaWFudF9idWlsZGVyX2VuZCgmYnVpbGRlcikpLAorICAgICAgICBHX0RCVVNfQ0FM
TF9GTEFHU19OT05FLCAtMSwgbV9jYW5jZWxsYWJsZS5nZXQoKSwgW10oR09iamVjdCogcHJveHks
IEdBc3luY1Jlc3VsdCogcmVzdWx0LCBncG9pbnRlciB1c2VyRGF0YSkgeworICAgICAgICAgICAg
R1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgICAgICAgICAgR1JlZlB0cjxHVmFyaWFu
dD4gcmV0dXJuVmFsdWUgPSBhZG9wdEdSZWYoZ19kYnVzX3Byb3h5X2NhbGxfZmluaXNoKEdfREJV
U19QUk9YWShwcm94eSksIHJlc3VsdCwgJmVycm9yLm91dFB0cigpKSk7CisgICAgICAgICAgICBp
ZiAoZ19lcnJvcl9tYXRjaGVzKGVycm9yLmdldCgpLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NB
TkNFTExFRCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBhdXRvKiBz
ZWxmID0gc3RhdGljX2Nhc3Q8U2xlZXBEaXNhYmxlckdMaWIqPih1c2VyRGF0YSk7CisgICAgICAg
ICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICAgICAgZ193YXJuaW5nKCJDYWxsaW5nICVzLklu
aGliaXQgZmFpbGVkOiAlcyIsIGdfZGJ1c19wcm94eV9nZXRfaW50ZXJmYWNlX25hbWUoR19EQlVT
X1BST1hZKHByb3h5KSksIGVycm9yLT5tZXNzYWdlKTsKKyAgICAgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgICAgIEFTU0VSVChyZXR1cm5WYWx1ZSk7CisgICAgICAgICAgICAgICAgZ192YXJp
YW50X2dldChyZXR1cm5WYWx1ZS5nZXQoKSwgIihvKSIsICZzZWxmLT5tX2luaGliaXRQb3J0YWxS
ZXF1ZXN0T2JqZWN0UGF0aC5vdXRQdHIoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBz
ZWxmLT5tX2NhbmNlbGxhYmxlID0gbnVsbHB0cjsKKyAgICAgICAgfSwgdGhpcyk7Cit9CisKIHZv
aWQgU2xlZXBEaXNhYmxlckdMaWI6OnJlbGVhc2VJbmhpYml0b3IoKQoreworICAgIGlmIChtX3Nj
cmVlblNhdmVyUHJveHkpIHsKKyAgICAgICAgQVNTRVJUKCFtX2luaGliaXRQb3J0YWxQcm94eSk7
CisgICAgICAgIHJlbGVhc2VJbmhpYml0b3JWaWFTY3JlZW5TYXZlclByb3h5KCk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgQVNTRVJUKG1faW5oaWJpdFBvcnRhbFByb3h5KTsKKyAgICAgICAgcmVs
ZWFzZUluaGliaXRvclZpYUluaGliaXRQb3J0YWxQcm94eSgpOworICAgIH0KK30KKwordm9pZCBT
bGVlcERpc2FibGVyR0xpYjo6cmVsZWFzZUluaGliaXRvclZpYVNjcmVlblNhdmVyUHJveHkoKQog
ewogICAgIEFTU0VSVChtX3NjcmVlblNhdmVyQ29va2llKTsKLSAgICBBU1NFUlQobV9zY3JlZW5T
YXZlclByb3h5KTsKIAogICAgIGdfZGJ1c19wcm94eV9jYWxsKG1fc2NyZWVuU2F2ZXJQcm94eS5n
ZXQoKSwgIlVuSW5oaWJpdCIsIGdfdmFyaWFudF9uZXcoIih1KSIsIG1fc2NyZWVuU2F2ZXJDb29r
aWUpLAogICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLCAtMSwgbnVsbHB0ciwgW10oR09i
amVjdCogcHJveHksIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBncG9pbnRlcikgewpAQCAtMTE3LDQg
KzE4MiwyOSBAQCB2b2lkIFNsZWVwRGlzYWJsZXJHTGliOjpyZWxlYXNlSW5oaWJpdG9yKCkKICAg
ICB9LCBudWxscHRyKTsKIH0KIAordm9pZCBTbGVlcERpc2FibGVyR0xpYjo6cmVsZWFzZUluaGli
aXRvclZpYUluaGliaXRQb3J0YWxQcm94eSgpCit7CisgICAgQVNTRVJUKG1faW5oaWJpdFBvcnRh
bFJlcXVlc3RPYmplY3RQYXRoKTsKKworICAgIGdfZGJ1c19wcm94eV9uZXdfZm9yX2J1cyhHX0JV
U19UWVBFX1NFU1NJT04sIHN0YXRpY19jYXN0PEdEQnVzUHJveHlGbGFncz4oR19EQlVTX1BST1hZ
X0ZMQUdTX0RPX05PVF9MT0FEX1BST1BFUlRJRVMgfCBHX0RCVVNfUFJPWFlfRkxBR1NfRE9fTk9U
X0NPTk5FQ1RfU0lHTkFMUyksCisgICAgICAgIG51bGxwdHIsICJvcmcuZnJlZWRlc2t0b3AucG9y
dGFsLkRlc2t0b3AiLCBtX2luaGliaXRQb3J0YWxSZXF1ZXN0T2JqZWN0UGF0aC5nZXQoKSwgIm9y
Zy5mcmVlZGVza3RvcC5wb3J0YWwuUmVxdWVzdCIsIG51bGxwdHIsCisgICAgICAgIFtdKEdPYmpl
Y3QqLCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgZ3BvaW50ZXIpIHsKKyAgICAgICAgICAgIEdVbmlx
dWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKKyAgICAgICAgICAgIEdSZWZQdHI8R0RCdXNQcm94eT4g
cmVxdWVzdFByb3h5ID0gYWRvcHRHUmVmKGdfZGJ1c19wcm94eV9uZXdfZm9yX2J1c19maW5pc2go
cmVzdWx0LCAmZXJyb3Iub3V0UHRyKCkpKTsKKyAgICAgICAgICAgIGlmIChlcnJvcikgeworICAg
ICAgICAgICAgICAgIGdfd2FybmluZygiRmFpbGVkIHRvIGNyZWF0ZSBvcmcuZnJlZWRlc2t0b3Au
cG9ydGFsLlJlcXVlc3QgcHJveHk6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgQVNTRVJUKHJlcXVlc3RQ
cm94eSk7CisgICAgICAgICAgICBnX2RidXNfcHJveHlfY2FsbChyZXF1ZXN0UHJveHkuZ2V0KCks
ICJDbG9zZSIsIGdfdmFyaWFudF9uZXcoIigpIiksIEdfREJVU19DQUxMX0ZMQUdTX05PTkUsIC0x
LCBudWxscHRyLAorICAgICAgICAgICAgICAgIFtdKEdPYmplY3QqIHByb3h5LCBHQXN5bmNSZXN1
bHQqIHJlc3VsdCwgZ3BvaW50ZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgR1VuaXF1ZU91dFB0
cjxHRXJyb3I+IGVycm9yOworICAgICAgICAgICAgICAgICAgICBHUmVmUHRyPEdWYXJpYW50PiBy
ZXR1cm5WYWx1ZSA9IGFkb3B0R1JlZihnX2RidXNfcHJveHlfY2FsbF9maW5pc2goR19EQlVTX1BS
T1hZKHByb3h5KSwgcmVzdWx0LCAmZXJyb3Iub3V0UHRyKCkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGVycm9yKQorICAgICAgICAgICAgICAgICAgICAgICAgZ193YXJuaW5nKCJDYWxsaW5n
ICVzLkNsb3NlIGZhaWxlZDogJXMiLCBnX2RidXNfcHJveHlfZ2V0X2ludGVyZmFjZV9uYW1lKEdf
REJVU19QUk9YWShwcm94eSkpLCBlcnJvci0+bWVzc2FnZSk7CisgICAgICAgICAgICAgICAgfSwg
bnVsbHB0cik7CisgICAgICAgIH0sIG51bGxwdHIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBQQUwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331879</attachid>
            <date>2018-01-21 12:43:50 -0800</date>
            <delta_ts>2018-01-23 08:51:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180812-20180121144349.patch</filename>
            <type>text/plain</type>
            <size>10560</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3Mjc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Q
QUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBjYzkxYzVl
OGQ4MDdiMmM1MDI1MGFiZDM0MGVjMDYzMjFhN2Y2OTJjLi40NTk1YTUyNWQwNzQ4YzM1MzQxNjIx
MTQwYzE5NjBlNTZhZjU4ODNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAor
MjAxOC0wMS0yMSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CisK
KyAgICAgICAgW1dQRV1bR1RLXSBTbGVlcCBpbmhpYml0b3JzIGRvIG5vdCB3b3JrIHVuZGVyIEZs
YXRwYWsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4
MDgxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVu
c3VyZSBTbGVlcERpc2FibGVyR0xpYiB3b3JrcyBldmVuIHdoZW4gcnVubmluZyBpbnNpZGUgYSBG
bGF0cGFrIHNhbmRib3ggYnkgdXNpbmcgdGhlCisgICAgICAgIEZyZWVkZXNrdG9wIGluaGliaXQg
cG9ydGFsIEQtQnVzIEFQSS4KKworICAgICAgICBVbmZvcnR1bmF0ZWx5IHRoaXMgaGFzIHRvIGJl
IHRlc3RlZCBtYW51YWxseS4KKworICAgICAgICAqIHBhbC9zeXN0ZW0vZ2xpYi9TbGVlcERpc2Fi
bGVyR0xpYi5jcHA6CisgICAgICAgIChQQUw6OlNsZWVwRGlzYWJsZXJHTGliOjpTbGVlcERpc2Fi
bGVyR0xpYik6CisgICAgICAgIChQQUw6OlNsZWVwRGlzYWJsZXJHTGliOjp+U2xlZXBEaXNhYmxl
ckdMaWIpOgorICAgICAgICAoUEFMOjpTbGVlcERpc2FibGVyR0xpYjo6YWNxdWlyZUluaGliaXRv
cik6CisgICAgICAgIChQQUw6OlNsZWVwRGlzYWJsZXJHTGliOjphY3F1aXJlSW5oaWJpdG9yVmlh
U2NyZWVuU2F2ZXJQcm94eSk6CisgICAgICAgIChQQUw6OlNsZWVwRGlzYWJsZXJHTGliOjphY3F1
aXJlSW5oaWJpdG9yVmlhSW5oaWJpdFBvcnRhbFByb3h5KToKKyAgICAgICAgKFBBTDo6U2xlZXBE
aXNhYmxlckdMaWI6OnJlbGVhc2VJbmhpYml0b3IpOgorICAgICAgICAoUEFMOjpTbGVlcERpc2Fi
bGVyR0xpYjo6cmVsZWFzZUluaGliaXRvclZpYVNjcmVlblNhdmVyUHJveHkpOgorICAgICAgICAo
UEFMOjpTbGVlcERpc2FibGVyR0xpYjo6cmVsZWFzZUluaGliaXRvclZpYUluaGliaXRQb3J0YWxQ
cm94eSk6CisKIDIwMTgtMDEtMTggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBbWGNvZGVdIFN0cmVhbWxpbmUgYW5kIGZ1dHVyZS1wcm9vZiB0YXJnZXQtbWFjT1Mt
dmVyc2lvbi1kZXBlbmRlbnQgYnVpbGQgc2V0dGluZyBkZWZpbml0aW9ucwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vZ2xpYi9TbGVlcERpc2FibGVyR0xpYi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9nbGliL1NsZWVwRGlzYWJsZXJHTGliLmNw
cAppbmRleCBhNWEyYzFjODk0NWY4Yzg5MDc2YzYyMjZkMjMzODkzMDE2MzAyMGJiLi4xZTg3MmZm
NTY4MjlkNTE3YWU4NzhkNTcyNDE2ZDJmNTI0YmZmYjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL3N5c3RlbS9nbGliL1NsZWVwRGlzYWJsZXJHTGliLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9nbGliL1NsZWVwRGlzYWJsZXJHTGliLmNwcApAQCAt
NTEsNiArNTEsNyBAQCBTbGVlcERpc2FibGVyR0xpYjo6U2xlZXBEaXNhYmxlckdMaWIoY29uc3Qg
Y2hhciogcmVhc29uLCBUeXBlIHR5cGUpCiAgICAgaWYgKHR5cGUgIT0gU2xlZXBEaXNhYmxlcjo6
VHlwZTo6RGlzcGxheSkKICAgICAgICAgcmV0dXJuOwogCisgICAgLy8gRmlyc3QsIHRyeSB0byB1
c2UgdGhlIFNjcmVlblNhdmVyIEFQSS4KICAgICBnX2RidXNfcHJveHlfbmV3X2Zvcl9idXMoR19C
VVNfVFlQRV9TRVNTSU9OLCBzdGF0aWNfY2FzdDxHREJ1c1Byb3h5RmxhZ3M+KEdfREJVU19QUk9Y
WV9GTEFHU19ET19OT1RfTE9BRF9QUk9QRVJUSUVTIHwgR19EQlVTX1BST1hZX0ZMQUdTX0RPX05P
VF9DT05ORUNUX1NJR05BTFMpLAogICAgICAgICBudWxscHRyLCAib3JnLmZyZWVkZXNrdG9wLlNj
cmVlblNhdmVyIiwgIi9vcmcvZnJlZWRlc2t0b3AvU2NyZWVuU2F2ZXIiLCAib3JnLmZyZWVkZXNr
dG9wLlNjcmVlblNhdmVyIiwgbV9jYW5jZWxsYWJsZS5nZXQoKSwKICAgICAgICAgW10oR09iamVj
dCosIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBncG9pbnRlciB1c2VyRGF0YSkgewpAQCAtNjEsNiAr
NjIsNyBAQCBTbGVlcERpc2FibGVyR0xpYjo6U2xlZXBEaXNhYmxlckdMaWIoY29uc3QgY2hhciog
cmVhc29uLCBUeXBlIHR5cGUpCiAKICAgICAgICAgICAgIGF1dG8qIHNlbGYgPSBzdGF0aWNfY2Fz
dDxTbGVlcERpc2FibGVyR0xpYio+KHVzZXJEYXRhKTsKICAgICAgICAgICAgIGlmIChwcm94eSkg
eworICAgICAgICAgICAgICAgIC8vIFVuZGVyIEZsYXRwYWssIHdlJ2xsIGdldCBhIHVzZWxlc3Mg
cHJveHkgd2l0aCBubyBuYW1lIG93bmVyLgogICAgICAgICAgICAgICAgIEdVbmlxdWVQdHI8Y2hh
cj4gbmFtZU93bmVyKGdfZGJ1c19wcm94eV9nZXRfbmFtZV9vd25lcihwcm94eS5nZXQoKSkpOwog
ICAgICAgICAgICAgICAgIGlmIChuYW1lT3duZXIpIHsKICAgICAgICAgICAgICAgICAgICAgc2Vs
Zi0+bV9zY3JlZW5TYXZlclByb3h5ID0gV1RGTW92ZShwcm94eSk7CkBAIC02OSw4ICs3MSwyOCBA
QCBTbGVlcERpc2FibGVyR0xpYjo6U2xlZXBEaXNhYmxlckdMaWIoY29uc3QgY2hhciogcmVhc29u
LCBUeXBlIHR5cGUpCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICAvLyBHaXZlIHVwLiBEb24ndCB3YXJuIHRoZSB1c2VyOiB0aGlzIGlzIGV4cGVjdGVkLgot
ICAgICAgICAgICAgc2VsZi0+bV9jYW5jZWxsYWJsZSA9IG51bGxwdHI7CisgICAgICAgICAgICAv
LyBJdCBmYWlsZWQuIFRyeSB0byB1c2UgdGhlIEZsYXRwYWsgcG9ydGFsIGluc3RlYWQuCisgICAg
ICAgICAgICBnX2RidXNfcHJveHlfbmV3X2Zvcl9idXMoR19CVVNfVFlQRV9TRVNTSU9OLCBzdGF0
aWNfY2FzdDxHREJ1c1Byb3h5RmxhZ3M+KEdfREJVU19QUk9YWV9GTEFHU19ET19OT1RfTE9BRF9Q
Uk9QRVJUSUVTIHwgR19EQlVTX1BST1hZX0ZMQUdTX0RPX05PVF9DT05ORUNUX1NJR05BTFMpLAor
ICAgICAgICAgICAgICAgIG51bGxwdHIsICJvcmcuZnJlZWRlc2t0b3AucG9ydGFsLkRlc2t0b3Ai
LCAiL29yZy9mcmVlZGVza3RvcC9wb3J0YWwvZGVza3RvcCIsICJvcmcuZnJlZWRlc2t0b3AucG9y
dGFsLkluaGliaXQiLCBzZWxmLT5tX2NhbmNlbGxhYmxlLmdldCgpLAorICAgICAgICAgICAgICAg
IFtdKEdPYmplY3QqLCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgZ3BvaW50ZXIgdXNlckRhdGEpIHsK
KyAgICAgICAgICAgICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgICAg
ICAgICAgICAgICAgICBHUmVmUHRyPEdEQnVzUHJveHk+IHByb3h5ID0gYWRvcHRHUmVmKGdfZGJ1
c19wcm94eV9uZXdfZm9yX2J1c19maW5pc2gocmVzdWx0LCAmZXJyb3Iub3V0UHRyKCkpKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGdfZXJyb3JfbWF0Y2hlcyhlcnJvci5nZXQoKSwgR19JT19F
UlJPUiwgR19JT19FUlJPUl9DQU5DRUxMRUQpKQorICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOworCisgICAgICAgICAgICAgICAgICAgIGF1dG8qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbGVl
cERpc2FibGVyR0xpYio+KHVzZXJEYXRhKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHByb3h5
KSB7CisgICAgICAgICAgICAgICAgICAgICAgICBHVW5pcXVlUHRyPGNoYXI+IG5hbWVPd25lcihn
X2RidXNfcHJveHlfZ2V0X25hbWVfb3duZXIocHJveHkuZ2V0KCkpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGlmIChuYW1lT3duZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
ZWxmLT5tX2luaGliaXRQb3J0YWxQcm94eSA9IFdURk1vdmUocHJveHkpOworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNlbGYtPmFjcXVpcmVJbmhpYml0b3IoKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAg
ICAgICAgICAgICAgIH0KKworICAgICAgICAgICAgICAgICAgICAvLyBHaXZlIHVwLiBEb24ndCB3
YXJuIHRoZSB1c2VyOiB0aGlzIGlzIGV4cGVjdGVkLgorICAgICAgICAgICAgICAgICAgICBzZWxm
LT5tX2NhbmNlbGxhYmxlID0gbnVsbHB0cjsKKyAgICAgICAgICAgIH0sIHNlbGYpOwogICAgICAg
ICB9LCB0aGlzKTsKIH0KIApAQCAtNzgsMTMgKzEwMCwyMyBAQCBTbGVlcERpc2FibGVyR0xpYjo6
flNsZWVwRGlzYWJsZXJHTGliKCkKIHsKICAgICBpZiAobV9jYW5jZWxsYWJsZSkKICAgICAgICAg
Z19jYW5jZWxsYWJsZV9jYW5jZWwobV9jYW5jZWxsYWJsZS5nZXQoKSk7Ci0gICAgZWxzZSBpZiAo
bV9zY3JlZW5TYXZlckNvb2tpZSkKKyAgICBlbHNlIGlmIChtX3NjcmVlblNhdmVyQ29va2llIHx8
IG1faW5oaWJpdFBvcnRhbFJlcXVlc3RPYmplY3RQYXRoKQogICAgICAgICByZWxlYXNlSW5oaWJp
dG9yKCk7CiB9CiAKIHZvaWQgU2xlZXBEaXNhYmxlckdMaWI6OmFjcXVpcmVJbmhpYml0b3IoKQog
ewotICAgIEFTU0VSVChtX3NjcmVlblNhdmVyUHJveHkpOworICAgIGlmIChtX3NjcmVlblNhdmVy
UHJveHkpIHsKKyAgICAgICAgQVNTRVJUKCFtX2luaGliaXRQb3J0YWxQcm94eSk7CisgICAgICAg
IGFjcXVpcmVJbmhpYml0b3JWaWFTY3JlZW5TYXZlclByb3h5KCk7CisgICAgfSBlbHNlIHsKKyAg
ICAgICAgQVNTRVJUKG1faW5oaWJpdFBvcnRhbFByb3h5KTsKKyAgICAgICAgYWNxdWlyZUluaGli
aXRvclZpYUluaGliaXRQb3J0YWxQcm94eSgpOworICAgIH0KK30KKwordm9pZCBTbGVlcERpc2Fi
bGVyR0xpYjo6YWNxdWlyZUluaGliaXRvclZpYVNjcmVlblNhdmVyUHJveHkoKQorewogICAgIGdf
ZGJ1c19wcm94eV9jYWxsKG1fc2NyZWVuU2F2ZXJQcm94eS5nZXQoKSwgIkluaGliaXQiLCBnX3Zh
cmlhbnRfbmV3KCIoc3MpIiwgZ19nZXRfcHJnbmFtZSgpLCBtX3JlYXNvbi5kYXRhKCkpLAogICAg
ICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLCAtMSwgbV9jYW5jZWxsYWJsZS5nZXQoKSwgW10o
R09iamVjdCogcHJveHksIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBncG9pbnRlciB1c2VyRGF0YSkg
ewogICAgICAgICAgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOwpAQCAtOTQsNyArMTI2
LDcgQEAgdm9pZCBTbGVlcERpc2FibGVyR0xpYjo6YWNxdWlyZUluaGliaXRvcigpCiAKICAgICAg
ICAgICAgIGF1dG8qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbGVlcERpc2FibGVyR0xpYio+KHVzZXJE
YXRhKTsKICAgICAgICAgICAgIGlmIChlcnJvcikKLSAgICAgICAgICAgICAgICBnX3dhcm5pbmco
IkNhbGxpbmcgJXMuSW5oaWJpdCBmYWlsZWQ6ICVzIiwgZ19kYnVzX3Byb3h5X2dldF9pbnRlcmZh
Y2VfbmFtZShzZWxmLT5tX3NjcmVlblNhdmVyUHJveHkuZ2V0KCkpLCBlcnJvci0+bWVzc2FnZSk7
CisgICAgICAgICAgICAgICAgZ193YXJuaW5nKCJDYWxsaW5nICVzLkluaGliaXQgZmFpbGVkOiAl
cyIsIGdfZGJ1c19wcm94eV9nZXRfaW50ZXJmYWNlX25hbWUoR19EQlVTX1BST1hZKHByb3h5KSks
IGVycm9yLT5tZXNzYWdlKTsKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIEFT
U0VSVChyZXR1cm5WYWx1ZSk7CiAgICAgICAgICAgICAgICAgZ192YXJpYW50X2dldChyZXR1cm5W
YWx1ZS5nZXQoKSwgIih1KSIsICZzZWxmLT5tX3NjcmVlblNhdmVyQ29va2llKTsKQEAgLTEwMywx
MCArMTM1LDQzIEBAIHZvaWQgU2xlZXBEaXNhYmxlckdMaWI6OmFjcXVpcmVJbmhpYml0b3IoKQog
ICAgICAgICB9LCB0aGlzKTsKIH0KIAordm9pZCBTbGVlcERpc2FibGVyR0xpYjo6YWNxdWlyZUlu
aGliaXRvclZpYUluaGliaXRQb3J0YWxQcm94eSgpCit7CisgICAgR1ZhcmlhbnRCdWlsZGVyIGJ1
aWxkZXI7CisgICAgZ192YXJpYW50X2J1aWxkZXJfaW5pdCgmYnVpbGRlciwgR19WQVJJQU5UX1RZ
UEVfVkFSRElDVCk7CisgICAgZ192YXJpYW50X2J1aWxkZXJfYWRkKCZidWlsZGVyLCAie3N2fSIs
ICJyZWFzb24iLCBnX3ZhcmlhbnRfbmV3X3N0cmluZyhtX3JlYXNvbi5kYXRhKCkpKTsKKyAgICBn
X2RidXNfcHJveHlfY2FsbChtX2luaGliaXRQb3J0YWxQcm94eS5nZXQoKSwgIkluaGliaXQiLCBn
X3ZhcmlhbnRfbmV3KCIoc3VAYXtzdn0pIiwgIiIgLyogbm8gd2luZG93ICovLCA4IC8qIGlkbGUg
Ki8sIGdfdmFyaWFudF9idWlsZGVyX2VuZCgmYnVpbGRlcikpLAorICAgICAgICBHX0RCVVNfQ0FM
TF9GTEFHU19OT05FLCAtMSwgbV9jYW5jZWxsYWJsZS5nZXQoKSwgW10oR09iamVjdCogcHJveHks
IEdBc3luY1Jlc3VsdCogcmVzdWx0LCBncG9pbnRlciB1c2VyRGF0YSkgeworICAgICAgICAgICAg
R1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgICAgICAgICAgR1JlZlB0cjxHVmFyaWFu
dD4gcmV0dXJuVmFsdWUgPSBhZG9wdEdSZWYoZ19kYnVzX3Byb3h5X2NhbGxfZmluaXNoKEdfREJV
U19QUk9YWShwcm94eSksIHJlc3VsdCwgJmVycm9yLm91dFB0cigpKSk7CisgICAgICAgICAgICBp
ZiAoZ19lcnJvcl9tYXRjaGVzKGVycm9yLmdldCgpLCBHX0lPX0VSUk9SLCBHX0lPX0VSUk9SX0NB
TkNFTExFRCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICBhdXRvKiBz
ZWxmID0gc3RhdGljX2Nhc3Q8U2xlZXBEaXNhYmxlckdMaWIqPih1c2VyRGF0YSk7CisgICAgICAg
ICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICAgICAgZ193YXJuaW5nKCJDYWxsaW5nICVzLklu
aGliaXQgZmFpbGVkOiAlcyIsIGdfZGJ1c19wcm94eV9nZXRfaW50ZXJmYWNlX25hbWUoR19EQlVT
X1BST1hZKHByb3h5KSksIGVycm9yLT5tZXNzYWdlKTsKKyAgICAgICAgICAgIGVsc2UgeworICAg
ICAgICAgICAgICAgIEFTU0VSVChyZXR1cm5WYWx1ZSk7CisgICAgICAgICAgICAgICAgZ192YXJp
YW50X2dldChyZXR1cm5WYWx1ZS5nZXQoKSwgIihvKSIsICZzZWxmLT5tX2luaGliaXRQb3J0YWxS
ZXF1ZXN0T2JqZWN0UGF0aC5vdXRQdHIoKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBz
ZWxmLT5tX2NhbmNlbGxhYmxlID0gbnVsbHB0cjsKKyAgICAgICAgfSwgdGhpcyk7Cit9CisKIHZv
aWQgU2xlZXBEaXNhYmxlckdMaWI6OnJlbGVhc2VJbmhpYml0b3IoKQoreworICAgIGlmIChtX3Nj
cmVlblNhdmVyUHJveHkpIHsKKyAgICAgICAgQVNTRVJUKCFtX2luaGliaXRQb3J0YWxQcm94eSk7
CisgICAgICAgIHJlbGVhc2VJbmhpYml0b3JWaWFTY3JlZW5TYXZlclByb3h5KCk7CisgICAgfSBl
bHNlIHsKKyAgICAgICAgQVNTRVJUKG1faW5oaWJpdFBvcnRhbFByb3h5KTsKKyAgICAgICAgcmVs
ZWFzZUluaGliaXRvclZpYUluaGliaXRQb3J0YWxQcm94eSgpOworICAgIH0KK30KKwordm9pZCBT
bGVlcERpc2FibGVyR0xpYjo6cmVsZWFzZUluaGliaXRvclZpYVNjcmVlblNhdmVyUHJveHkoKQog
ewogICAgIEFTU0VSVChtX3NjcmVlblNhdmVyQ29va2llKTsKLSAgICBBU1NFUlQobV9zY3JlZW5T
YXZlclByb3h5KTsKIAogICAgIGdfZGJ1c19wcm94eV9jYWxsKG1fc2NyZWVuU2F2ZXJQcm94eS5n
ZXQoKSwgIlVuSW5oaWJpdCIsIGdfdmFyaWFudF9uZXcoIih1KSIsIG1fc2NyZWVuU2F2ZXJDb29r
aWUpLAogICAgICAgICBHX0RCVVNfQ0FMTF9GTEFHU19OT05FLCAtMSwgbnVsbHB0ciwgW10oR09i
amVjdCogcHJveHksIEdBc3luY1Jlc3VsdCogcmVzdWx0LCBncG9pbnRlcikgewpAQCAtMTE3LDQg
KzE4MiwyOSBAQCB2b2lkIFNsZWVwRGlzYWJsZXJHTGliOjpyZWxlYXNlSW5oaWJpdG9yKCkKICAg
ICB9LCBudWxscHRyKTsKIH0KIAordm9pZCBTbGVlcERpc2FibGVyR0xpYjo6cmVsZWFzZUluaGli
aXRvclZpYUluaGliaXRQb3J0YWxQcm94eSgpCit7CisgICAgQVNTRVJUKG1faW5oaWJpdFBvcnRh
bFJlcXVlc3RPYmplY3RQYXRoKTsKKworICAgIGdfZGJ1c19wcm94eV9uZXdfZm9yX2J1cyhHX0JV
U19UWVBFX1NFU1NJT04sIHN0YXRpY19jYXN0PEdEQnVzUHJveHlGbGFncz4oR19EQlVTX1BST1hZ
X0ZMQUdTX0RPX05PVF9MT0FEX1BST1BFUlRJRVMgfCBHX0RCVVNfUFJPWFlfRkxBR1NfRE9fTk9U
X0NPTk5FQ1RfU0lHTkFMUyksCisgICAgICAgIG51bGxwdHIsICJvcmcuZnJlZWRlc2t0b3AucG9y
dGFsLkRlc2t0b3AiLCBtX2luaGliaXRQb3J0YWxSZXF1ZXN0T2JqZWN0UGF0aC5nZXQoKSwgIm9y
Zy5mcmVlZGVza3RvcC5wb3J0YWwuUmVxdWVzdCIsIG51bGxwdHIsCisgICAgICAgIFtdKEdPYmpl
Y3QqLCBHQXN5bmNSZXN1bHQqIHJlc3VsdCwgZ3BvaW50ZXIpIHsKKyAgICAgICAgICAgIEdVbmlx
dWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKKyAgICAgICAgICAgIEdSZWZQdHI8R0RCdXNQcm94eT4g
cmVxdWVzdFByb3h5ID0gYWRvcHRHUmVmKGdfZGJ1c19wcm94eV9uZXdfZm9yX2J1c19maW5pc2go
cmVzdWx0LCAmZXJyb3Iub3V0UHRyKCkpKTsKKyAgICAgICAgICAgIGlmIChlcnJvcikgeworICAg
ICAgICAgICAgICAgIGdfd2FybmluZygiRmFpbGVkIHRvIGNyZWF0ZSBvcmcuZnJlZWRlc2t0b3Au
cG9ydGFsLlJlcXVlc3QgcHJveHk6ICVzIiwgZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgQVNTRVJUKHJlcXVlc3RQ
cm94eSk7CisgICAgICAgICAgICBnX2RidXNfcHJveHlfY2FsbChyZXF1ZXN0UHJveHkuZ2V0KCks
ICJDbG9zZSIsIGdfdmFyaWFudF9uZXcoIigpIiksIEdfREJVU19DQUxMX0ZMQUdTX05PTkUsIC0x
LCBudWxscHRyLAorICAgICAgICAgICAgICAgIFtdKEdPYmplY3QqIHByb3h5LCBHQXN5bmNSZXN1
bHQqIHJlc3VsdCwgZ3BvaW50ZXIpIHsKKyAgICAgICAgICAgICAgICAgICAgR1VuaXF1ZU91dFB0
cjxHRXJyb3I+IGVycm9yOworICAgICAgICAgICAgICAgICAgICBHUmVmUHRyPEdWYXJpYW50PiBy
ZXR1cm5WYWx1ZSA9IGFkb3B0R1JlZihnX2RidXNfcHJveHlfY2FsbF9maW5pc2goR19EQlVTX1BS
T1hZKHByb3h5KSwgcmVzdWx0LCAmZXJyb3Iub3V0UHRyKCkpKTsKKyAgICAgICAgICAgICAgICAg
ICAgaWYgKGVycm9yKQorICAgICAgICAgICAgICAgICAgICAgICAgZ193YXJuaW5nKCJDYWxsaW5n
ICVzLkNsb3NlIGZhaWxlZDogJXMiLCBnX2RidXNfcHJveHlfZ2V0X2ludGVyZmFjZV9uYW1lKEdf
REJVU19QUk9YWShwcm94eSkpLCBlcnJvci0+bWVzc2FnZSk7CisgICAgICAgICAgICAgICAgfSwg
bnVsbHB0cik7CisgICAgICAgIH0sIG51bGxwdHIpOworfQorCiB9IC8vIG5hbWVzcGFjZSBQQUwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL2dsaWIvU2xlZXBEaXNh
YmxlckdMaWIuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3lzdGVtL2dsaWIvU2xlZXBEaXNh
YmxlckdMaWIuaAppbmRleCBhOGUwNTRhYzg4OGNhMjAxMWVkMDQ4OWY3ZjcwNGViYjc0MjYxOTA5
Li5iMTgwZDRkNjdjZGIyYzRiMjg5MGY2MDk5OGZjMDE2MjYwN2FjMThkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3N5c3RlbS9nbGliL1NsZWVwRGlzYWJsZXJHTGliLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zeXN0ZW0vZ2xpYi9TbGVlcERpc2FibGVyR0xpYi5o
CkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiU2xlZXBEaXNhYmxlci5oIgogCiAjaW5jbHVk
ZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CiAKIHR5cGVkZWYgc3RydWN0IF9HREJ1c1By
b3h5IEdEQnVzUHJveHk7CkBAIC00MSwxMSArNDIsMTkgQEAgcHVibGljOgogCiBwcml2YXRlOgog
ICAgIHZvaWQgYWNxdWlyZUluaGliaXRvcigpOworICAgIHZvaWQgYWNxdWlyZUluaGliaXRvclZp
YVNjcmVlblNhdmVyUHJveHkoKTsKKyAgICB2b2lkIGFjcXVpcmVJbmhpYml0b3JWaWFJbmhpYml0
UG9ydGFsUHJveHkoKTsKKwogICAgIHZvaWQgcmVsZWFzZUluaGliaXRvcigpOworICAgIHZvaWQg
cmVsZWFzZUluaGliaXRvclZpYVNjcmVlblNhdmVyUHJveHkoKTsKKyAgICB2b2lkIHJlbGVhc2VJ
bmhpYml0b3JWaWFJbmhpYml0UG9ydGFsUHJveHkoKTsKIAogICAgIEdSZWZQdHI8R0RCdXNQcm94
eT4gbV9zY3JlZW5TYXZlclByb3h5OwogICAgIHVuc2lnbmVkIG1fc2NyZWVuU2F2ZXJDb29raWUg
eyAwIH07CiAKKyAgICBHUmVmUHRyPEdEQnVzUHJveHk+IG1faW5oaWJpdFBvcnRhbFByb3h5Owor
ICAgIEdVbmlxdWVPdXRQdHI8Y2hhcj4gbV9pbmhpYml0UG9ydGFsUmVxdWVzdE9iamVjdFBhdGg7
CisKICAgICBHUmVmUHRyPEdDYW5jZWxsYWJsZT4gbV9jYW5jZWxsYWJsZTsKICAgICBDU3RyaW5n
IG1fcmVhc29uOwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>