<?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>165200</bug_id>
          
          <creation_ts>2016-11-30 08:44:59 -0800</creation_ts>
          <short_desc>[GTK] GLXBadFBConfig error when creating an OpenGL context</short_desc>
          <delta_ts>2016-12-19 07:42:13 -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>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Miguel Gomez">magomez</reporter>
          <assigned_to name="Miguel Gomez">magomez</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fujii</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1254771</commentid>
    <comment_count>0</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2016-11-30 08:44:59 -0800</bug_when>
    <thetext>When the OpenGL extension GLX_ARB_create_context is available, we use it to request a gl context with version 3.2. If the returned context is null, we fall back to use glXCreateContext and get whatever version is available.

But when using the extension, if the OpenGL version is lower than 3.2, not only glXCreateContextAttribsARB returns null, but it also throws a GLXBadFBConfig X error that causes the app to crash instead falling back to the legacy code. We need to handle this GLXBadFBConfig error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255236</commentid>
    <comment_count>1</comment_count>
      <attachid>295847</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2016-12-01 06:51:13 -0800</bug_when>
    <thetext>Created attachment 295847
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1255625</commentid>
    <comment_count>2</comment_count>
      <attachid>295847</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-12-01 23:21:17 -0800</bug_when>
    <thetext>Comment on attachment 295847
Patch

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

&gt; Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:81
&gt; +    // There&apos;s no way to know whether glXCreateContextAttribsARB can provide an OpenGL version &gt;= 3.2 until
&gt; +    // we actually call it and check the return value.
&gt; +    // To make things more fun, if a version &gt;= 3.2 cannot be provided, glXCreateContextAttribsARB will throw
&gt; +    // a GLXBadFBConfig X error, causing the app to crash.
&gt; +    // So, the first time a context is requested, we set a X error trap to disable crashes with GLXBadFBConfig
&gt; +    // and then check whether the return value is a context or not.

I think it&apos;s weird that even when we can use glXCreateContextAttribsARB we still fallback to legacy because the requested version is not supported. I think we should still use glXCreateContextAttribsARB but requesting a lower OpenGL version. Here we have two possibilities, always request 3.2 and fallback to not passing the version to the attribs, which means the driver will use the default (this should always work, but it seems Mesa doesn&apos;t do this). Another possibility is to try to create the highest version context like chromium does. It&apos;s only done for Mesa because context creation is is fast when failing and because it requires a version, for other drivers they only try to create a compatible context (passing no openg version). For mesa they try from 4.5 to 1.0.

&gt; Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:100
&gt; +        // Set an X error trapper that ignores GLXBadFBConfig.
&gt; +        // GLXBadFBConfig doesn&apos;t seem to be defined anywhere. From the source code it&apos;s defined as errorBase + 9.
&gt; +        int GLXErrorBase = 0;
&gt; +        glXQueryExtension(display, &amp;GLXErrorBase, nullptr);
&gt; +        XErrorTrapper trapper(display, XErrorTrapper::Policy::Crash, { (unsigned char)(GLXErrorBase + 9) });

I think it&apos;s safe to ignore all Xerrors here, it makes everything simpler.

&gt; Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:141
&gt; +    if (hasGLXARBCreateContextExtension(display))
&gt; +        context.reset(tryCreateGLXARBContext(display, config, sharingContext));

hasGLXARBCreateContextExtension could be checked by tryCreateGLXARBContext that could return a XUniqueGLXContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1259035</commentid>
    <comment_count>3</comment_count>
      <attachid>296917</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2016-12-12 08:12:17 -0800</bug_when>
    <thetext>Created attachment 296917
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1261095</commentid>
    <comment_count>4</comment_count>
      <attachid>296917</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-12-19 02:05:52 -0800</bug_when>
    <thetext>Comment on attachment 296917
Patch

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

&gt; Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:144
&gt; +        context.reset((createGLXARBContext(display, config, sharingContext)));

I think there are unneeded extra () there.

&gt; Source/WebCore/platform/graphics/glx/GLContextGLX.cpp:184
&gt; +        context.reset((createGLXARBContext(display, configs.get()[0], sharingContext)));

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1261104</commentid>
    <comment_count>5</comment_count>
      <attachid>297456</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2016-12-19 05:17:03 -0800</bug_when>
    <thetext>Created attachment 297456
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1261113</commentid>
    <comment_count>6</comment_count>
      <attachid>297456</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-19 07:42:09 -0800</bug_when>
    <thetext>Comment on attachment 297456
Patch

Clearing flags on attachment: 297456

Committed r209982: &lt;http://trac.webkit.org/changeset/209982&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1261114</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-12-19 07:42:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>295847</attachid>
            <date>2016-12-01 06:51:13 -0800</date>
            <delta_ts>2016-12-12 08:12:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165200-20161201155043.patch</filename>
            <type>text/plain</type>
            <size>5982</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5MTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDUwMmMxMGM0MjZjYTBk
MmExMGU3NjE2ODgwNGNmZDA2MDg4NzE0Mi4uM2MxM2IzNTJmYjAyZmFlYmY0ZWU5Zjc5YWIzZmMx
MzdiYjQ1YzZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE2LTEyLTAxICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gR0xYQmFkRkJD
b25maWcgZXJyb3Igd2hlbiBjcmVhdGluZyBhbiBPcGVuR0wgY29udGV4dAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1MjAwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZ2xYQ3JlYXRlQ29udGV4dEF0dHJp
YnNBUkIgY2F1c2VzIGEgR0xYQmFkRkJDb25maWcgWCBlcnJvciB3aGVuIGl0J3Mgbm90IGFibGUg
dG8gcHJvdmlkZSB0aGUKKyAgICAgICAgT3BlbkdMIHZlcnNpb24gPj0gMy4yIHdlIGFyZSByZXF1
ZXN0aW5nLiBEdWUgdG8gdGhpcywgdGhlIGFwcCBjcmFzaGVzIGluc3RlYWQgb2YgZmFsbGluZyBi
YWNrIHRvCisgICAgICAgIHRoZSBsZWdhY3kgcGF0aC4KKyAgICAgICAgVGhlIHBhdGNoIG1vZGlm
aWVzIEdMWCBjb250ZXh0IGNyZWF0aW9uIHVzaW5nIGEgWEVycm9yVHJhcHBlciwgc28gdGhlIGZp
cnN0IHRpbWUgYSBjb250ZXh0IGlzIGNyZWF0ZWQKKyAgICAgICAgd2UgZG9uJ3QgY3Jhc2ggaWYg
T3BlbkdMID49IDMuMiBpcyBub3QgYXZhaWxhYmxlLgorICAgICAgICBJZiB0aGUgZ290dGVuIGNv
bnRleHQgaXMgbm90IHZhbGlkLCB3ZSBmYWxsIGJhY2sgdG8gdGhlIGxlZ2FjeSBwYXRoIGZvciB0
aGlzIGFuZCBzdWJzZXF1ZW50IGNvbnRleHQKKyAgICAgICAgY3JlYXRpb25zLgorCisgICAgICAg
IENvdmVyZWQgYnkgZXhpc3RlbnQgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9nbHgvR0xDb250ZXh0R0xYLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRyeUNyZWF0ZUdMWEFS
QkNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R0xDb250ZXh0R0xYOjpjcmVhdGVXaW5kb3dD
b250ZXh0KToKKyAgICAgICAgKFdlYkNvcmU6OkdMQ29udGV4dEdMWDo6Y3JlYXRlUGJ1ZmZlckNv
bnRleHQpOgorCiAyMDE2LTExLTMwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjA5MTY4LgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29udGV4dEdMWC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmNwcAppbmRl
eCAwZDNhOTcwMjdlYjk1ZTc0NDk2MTc5MDg4MTAyZjU4ZWQzNDNmMTNiLi4zMmM2NTZjODA0Y2Yw
NjA2YmZhODE2NmI1MTViMTQ1OTA0Nzk2MTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmNwcApAQCAtMjMsNiArMjMsNyBA
QAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVkZSAiT3BlbkdMU2hpbXMu
aCIKICNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlYMTEuaCIKKyNpbmNsdWRlICJYRXJyb3JUcmFw
cGVyLmgiCiAjaW5jbHVkZSA8R0wvZ2x4Lmg+CiAjaW5jbHVkZSA8Y2Fpcm8uaD4KIApAQCAtNzAs
NiArNzEsNDYgQEAgc3RhdGljIGJvb2wgaGFzR0xYQVJCQ3JlYXRlQ29udGV4dEV4dGVuc2lvbihE
aXNwbGF5KiBkaXNwbGF5KQogICAgIHJldHVybiAhIWdsWENyZWF0ZUNvbnRleHRBdHRyaWJzQVJC
OwogfQogCitzdGF0aWMgR0xYQ29udGV4dCB0cnlDcmVhdGVHTFhBUkJDb250ZXh0KERpc3BsYXkq
IGRpc3BsYXksIEdMWEZCQ29uZmlnIGNvbmZpZywgR0xYQ29udGV4dCBzaGFyaW5nQ29udGV4dCkK
K3sKKyAgICAvLyBUaGVyZSdzIG5vIHdheSB0byBrbm93IHdoZXRoZXIgZ2xYQ3JlYXRlQ29udGV4
dEF0dHJpYnNBUkIgY2FuIHByb3ZpZGUgYW4gT3BlbkdMIHZlcnNpb24gPj0gMy4yIHVudGlsCisg
ICAgLy8gd2UgYWN0dWFsbHkgY2FsbCBpdCBhbmQgY2hlY2sgdGhlIHJldHVybiB2YWx1ZS4KKyAg
ICAvLyBUbyBtYWtlIHRoaW5ncyBtb3JlIGZ1biwgaWYgYSB2ZXJzaW9uID49IDMuMiBjYW5ub3Qg
YmUgcHJvdmlkZWQsIGdsWENyZWF0ZUNvbnRleHRBdHRyaWJzQVJCIHdpbGwgdGhyb3cKKyAgICAv
LyBhIEdMWEJhZEZCQ29uZmlnIFggZXJyb3IsIGNhdXNpbmcgdGhlIGFwcCB0byBjcmFzaC4KKyAg
ICAvLyBTbywgdGhlIGZpcnN0IHRpbWUgYSBjb250ZXh0IGlzIHJlcXVlc3RlZCwgd2Ugc2V0IGEg
WCBlcnJvciB0cmFwIHRvIGRpc2FibGUgY3Jhc2hlcyB3aXRoIEdMWEJhZEZCQ29uZmlnCisgICAg
Ly8gYW5kIHRoZW4gY2hlY2sgd2hldGhlciB0aGUgcmV0dXJuIHZhbHVlIGlzIGEgY29udGV4dCBv
ciBub3QuCisKKyAgICBzdGF0aWMgYm9vbCBjYW5Vc2VHTFhBUkJDcmVhdGVDb250ZXh0RXh0ZW5z
aW9uID0gZmFsc2U7CisgICAgc3RhdGljIGJvb2wgY2FuVXNlR0xYQVJCQ3JlYXRlQ29udGV4dEV4
dGVuc2lvbkluaXRpYWxpemVkID0gZmFsc2U7CisKKyAgICAvLyBSZXF1ZXN0IE9wZW5HTCB2ZXJz
aW9uIDMuMiBhbmQgY29yZSBwcm9maWxlLCB3aGljaCBndWFyYW50ZWVzIHRoYXQgdGhlIGk5NjUg
ZHJpdmVyIGRvZXNuJ3QgdXNlIHRoZSBzb2Z0d2FyZSByZW5kZXJlci4KKyAgICBzdGF0aWMgY29u
c3QgaW50IGNvbnRleHRBdHRyaWJ1dGVzW10gPSB7CisgICAgICAgIEdMWF9DT05URVhUX01BSk9S
X1ZFUlNJT05fQVJCLCAzLAorICAgICAgICBHTFhfQ09OVEVYVF9NSU5PUl9WRVJTSU9OX0FSQiwg
MiwKKyAgICAgICAgMAorICAgIH07CisKKyAgICBpZiAoIWNhblVzZUdMWEFSQkNyZWF0ZUNvbnRl
eHRFeHRlbnNpb25Jbml0aWFsaXplZCkgeworICAgICAgICBjYW5Vc2VHTFhBUkJDcmVhdGVDb250
ZXh0RXh0ZW5zaW9uSW5pdGlhbGl6ZWQgPSB0cnVlOworCisgICAgICAgIC8vIFNldCBhbiBYIGVy
cm9yIHRyYXBwZXIgdGhhdCBpZ25vcmVzIEdMWEJhZEZCQ29uZmlnLgorICAgICAgICAvLyBHTFhC
YWRGQkNvbmZpZyBkb2Vzbid0IHNlZW0gdG8gYmUgZGVmaW5lZCBhbnl3aGVyZS4gRnJvbSB0aGUg
c291cmNlIGNvZGUgaXQncyBkZWZpbmVkIGFzIGVycm9yQmFzZSArIDkuCisgICAgICAgIGludCBH
TFhFcnJvckJhc2UgPSAwOworICAgICAgICBnbFhRdWVyeUV4dGVuc2lvbihkaXNwbGF5LCAmR0xY
RXJyb3JCYXNlLCBudWxscHRyKTsKKyAgICAgICAgWEVycm9yVHJhcHBlciB0cmFwcGVyKGRpc3Bs
YXksIFhFcnJvclRyYXBwZXI6OlBvbGljeTo6Q3Jhc2gsIHsgKHVuc2lnbmVkIGNoYXIpKEdMWEVy
cm9yQmFzZSArIDkpIH0pOworCisgICAgICAgIEdMWENvbnRleHQgY29udGV4dCA9IGdsWENyZWF0
ZUNvbnRleHRBdHRyaWJzQVJCKGRpc3BsYXksIGNvbmZpZywgc2hhcmluZ0NvbnRleHQsIEdMX1RS
VUUsIGNvbnRleHRBdHRyaWJ1dGVzKTsKKyAgICAgICAgY2FuVXNlR0xYQVJCQ3JlYXRlQ29udGV4
dEV4dGVuc2lvbiA9ICEhY29udGV4dDsKKworICAgICAgICByZXR1cm4gY29udGV4dDsKKyAgICB9
CisKKyAgICBpZiAoY2FuVXNlR0xYQVJCQ3JlYXRlQ29udGV4dEV4dGVuc2lvbikKKyAgICAgICAg
cmV0dXJuIGdsWENyZWF0ZUNvbnRleHRBdHRyaWJzQVJCKGRpc3BsYXksIGNvbmZpZywgc2hhcmlu
Z0NvbnRleHQsIEdMX1RSVUUsIGNvbnRleHRBdHRyaWJ1dGVzKTsKKworICAgIHJldHVybiBudWxs
cHRyOworfQorCiBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0R0xYPiBHTENvbnRleHRHTFg6OmNy
ZWF0ZVdpbmRvd0NvbnRleHQoR0xOYXRpdmVXaW5kb3dUeXBlIHdpbmRvdywgUGxhdGZvcm1EaXNw
bGF5JiBwbGF0Zm9ybURpc3BsYXksIEdMWENvbnRleHQgc2hhcmluZ0NvbnRleHQpCiB7CiAgICAg
RGlzcGxheSogZGlzcGxheSA9IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVgxMT4ocGxhdGZvcm1E
aXNwbGF5KS5uYXRpdmUoKTsKQEAgLTk2LDE1ICsxMzcsOCBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xD
b250ZXh0R0xYPiBHTENvbnRleHRHTFg6OmNyZWF0ZVdpbmRvd0NvbnRleHQoR0xOYXRpdmVXaW5k
b3dUeQogICAgIEFTU0VSVChjb25maWcpOwogCiAgICAgWFVuaXF1ZUdMWENvbnRleHQgY29udGV4
dDsKLSAgICBpZiAoaGFzR0xYQVJCQ3JlYXRlQ29udGV4dEV4dGVuc2lvbihkaXNwbGF5KSkgewot
ICAgICAgICAvLyBSZXF1ZXN0IE9wZW5HTCB2ZXJzaW9uIDMuMiBhbmQgY29yZSBwcm9maWxlLCB3
aGljaCBndWFyYW50ZWVzIHRoYXQgdGhlIGk5NjUgZHJpdmVyIGRvZXNuJ3QgdXNlIHRoZSBzb2Z0
d2FyZSByZW5kZXJlci4KLSAgICAgICAgc3RhdGljIGNvbnN0IGludCBjb250ZXh0QXR0cmlidXRl
c1tdID0gewotICAgICAgICAgICAgR0xYX0NPTlRFWFRfTUFKT1JfVkVSU0lPTl9BUkIsIDMsCi0g
ICAgICAgICAgICBHTFhfQ09OVEVYVF9NSU5PUl9WRVJTSU9OX0FSQiwgMiwKLSAgICAgICAgICAg
IDAKLSAgICAgICAgfTsKLSAgICAgICAgY29udGV4dC5yZXNldChnbFhDcmVhdGVDb250ZXh0QXR0
cmlic0FSQihkaXNwbGF5LCBjb25maWcsIHNoYXJpbmdDb250ZXh0LCBHTF9UUlVFLCBjb250ZXh0
QXR0cmlidXRlcykpOwotICAgIH0KKyAgICBpZiAoaGFzR0xYQVJCQ3JlYXRlQ29udGV4dEV4dGVu
c2lvbihkaXNwbGF5KSkKKyAgICAgICAgY29udGV4dC5yZXNldCh0cnlDcmVhdGVHTFhBUkJDb250
ZXh0KGRpc3BsYXksIGNvbmZpZywgc2hhcmluZ0NvbnRleHQpKTsKIAogICAgIGlmICghY29udGV4
dCkgewogICAgICAgICAvLyBGYWxsYmFjayB0byBsZWdhY3kgT3BlbkdMIHZlcnNpb24uCkBAIC0x
NDQsMTcgKzE3OCw4IEBAIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRHTFg+IEdMQ29udGV4dEdM
WDo6Y3JlYXRlUGJ1ZmZlckNvbnRleHQoUGxhdGZvcm1EaXNwbGF5CiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgWFVuaXF1ZUdMWENvbnRleHQgY29udGV4dDsKLQotICAgIGlmIChoYXNH
TFhBUkJDcmVhdGVDb250ZXh0RXh0ZW5zaW9uKGRpc3BsYXkpKSB7Ci0gICAgICAgIC8vIFJlcXVl
c3QgT3BlbkdMIHZlcnNpb24gMy4yIGFuZCBjb3JlIHByb2ZpbGUsIHdoaWNoIGd1YXJhbnRlZXMg
dGhhdCB0aGUgaTk2NSBkcml2ZXIgZG9lc24ndCB1c2UgdGhlIHNvZnR3YXJlIHJlbmRlcmVyLgot
ICAgICAgICBzdGF0aWMgY29uc3QgaW50IGNvbnRleHRBdHRyaWJ1dGVzW10gPSB7Ci0gICAgICAg
ICAgICBHTFhfQ09OVEVYVF9NQUpPUl9WRVJTSU9OX0FSQiwgMywKLSAgICAgICAgICAgIEdMWF9D
T05URVhUX01JTk9SX1ZFUlNJT05fQVJCLCAyLAotICAgICAgICAgICAgMAotICAgICAgICB9Owot
ICAgICAgICBjb250ZXh0LnJlc2V0KGdsWENyZWF0ZUNvbnRleHRBdHRyaWJzQVJCKGRpc3BsYXks
IGNvbmZpZ3MuZ2V0KClbMF0sIHNoYXJpbmdDb250ZXh0LCBHTF9UUlVFLCBjb250ZXh0QXR0cmli
dXRlcykpOwotICAgIH0KLQorICAgIGlmIChoYXNHTFhBUkJDcmVhdGVDb250ZXh0RXh0ZW5zaW9u
KGRpc3BsYXkpKQorICAgICAgICBjb250ZXh0LnJlc2V0KHRyeUNyZWF0ZUdMWEFSQkNvbnRleHQo
ZGlzcGxheSwgY29uZmlncy5nZXQoKVswXSwgc2hhcmluZ0NvbnRleHQpKTsKICAgICBpZiAoIWNv
bnRleHQpIHsKICAgICAgICAgLy8gRmFsbGJhY2sgdG8gbGVnYWN5IE9wZW5HTCB2ZXJzaW9uLgog
ICAgICAgICBjb250ZXh0LnJlc2V0KGdsWENyZWF0ZU5ld0NvbnRleHQoZGlzcGxheSwgY29uZmln
cy5nZXQoKVswXSwgR0xYX1JHQkFfVFlQRSwgc2hhcmluZ0NvbnRleHQsIEdMX1RSVUUpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>296917</attachid>
            <date>2016-12-12 08:12:17 -0800</date>
            <delta_ts>2016-12-19 05:16:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165200-20161212171129.patch</filename>
            <type>text/plain</type>
            <size>6667</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5NzA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzZhNDg5OGZhZjQ2YjVm
ZmU1NzQ1MTFlMTBjMDZhNWRiMTlmM2YwZi4uNDY1Yjg5NjYyNDc2YjI4Y2MzNTE1NzY0ZjhjNzUw
NmU0MzM4NjU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE2LTEyLTAxICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gR0xYQmFkRkJD
b25maWcgZXJyb3Igd2hlbiBjcmVhdGluZyBhbiBPcGVuR0wgY29udGV4dAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1MjAwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgZ2xYQ3JlYXRlQ29udGV4dEF0dHJp
YnNBUkIgY2F1c2VzIGEgR0xYQmFkRkJDb25maWcgWCBlcnJvciB3aGVuIGl0J3Mgbm90IGFibGUg
dG8gcHJvdmlkZSB0aGUKKyAgICAgICAgT3BlbkdMIHZlcnNpb24gPj0gMy4yIHdlIGFyZSByZXF1
ZXN0aW5nLiBEdWUgdG8gdGhpcywgdGhlIGFwcCBjcmFzaGVzIGluc3RlYWQgb2YgZmFsbGluZyBi
YWNrIHRvCisgICAgICAgIHRoZSBsZWdhY3kgcGF0aC4KKyAgICAgICAgVGhlIHBhdGNoIG1vZGlm
aWVzIEdMWCBjb250ZXh0IGNyZWF0aW9uIHVzaW5nIGEgWEVycm9yVHJhcHBlciwgc28gdGhlIGZp
cnN0IHRpbWUgYSBjb250ZXh0IGlzIGNyZWF0ZWQKKyAgICAgICAgd2UgZG9uJ3QgY3Jhc2ggaWYg
T3BlbkdMID49IDMuMiBpcyBub3QgYXZhaWxhYmxlLgorICAgICAgICBJZiB0aGUgZ290dGVuIGNv
bnRleHQgaXMgbm90IHZhbGlkLCB3ZSBmYWxsIGJhY2sgdG8gd2hhdGV2ZXIgdmVyc2lvbiBnbFhD
cmVhdGVDb250ZXh0QXR0cmlic0FSQiBpcworICAgICAgICBhYmxlIHRvIHByb3ZpZGUuCisgICAg
ICAgIFRoZSBsZWdhY3kgZ2xYQ3JlYXRlQ29udGV4dCBpcyBvbmx5IHVzZWQgaWYgdGhlIEdMWF9B
UkJfY3JlYXRlX2NvbnRleHQgZXh0ZW5zaW9uIGlzIG5vdCBhdmFpbGFibGUuCisKKyAgICAgICAg
Q292ZXJlZCBieSBleGlzdGVudCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2dseC9HTENvbnRleHRHTFguY3BwOgorICAgICAgICAoV2ViQ29yZTo6dHJ5Q3JlYXRlR0xYQVJC
Q29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRHTFg6OmNyZWF0ZVdpbmRvd0Nv
bnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R0xDb250ZXh0R0xYOjpjcmVhdGVQYnVmZmVyQ29u
dGV4dCk6CisKIDIwMTYtMTItMTEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIwMDI4Myk6IFRyYW5zZm9ybSwgb3ZlcmZsb3cg
aGlkZGVuIGFuZCBmaWx0ZXIgY29tYmluYXRpb24gY29tcGxldGVseSBoaWRlcyB0aGUgZWxlbWVu
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ2x4L0dMQ29u
dGV4dEdMWC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250
ZXh0R0xYLmNwcAppbmRleCAwZDNhOTcwMjdlYjk1ZTc0NDk2MTc5MDg4MTAyZjU4ZWQzNDNmMTNi
Li40ZmQ4MzU0NDZlOTg5M2VmZTFlNjFhYzFlOThhYmFlZjFjNTE0MDFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nbHgvR0xDb250ZXh0R0xYLmNwcApA
QCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCiAjaW5jbHVk
ZSAiT3BlbkdMU2hpbXMuaCIKICNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlYMTEuaCIKKyNpbmNs
dWRlICJYRXJyb3JUcmFwcGVyLmgiCiAjaW5jbHVkZSA8R0wvZ2x4Lmg+CiAjaW5jbHVkZSA8Y2Fp
cm8uaD4KIApAQCAtNzAsNiArNzEsNDkgQEAgc3RhdGljIGJvb2wgaGFzR0xYQVJCQ3JlYXRlQ29u
dGV4dEV4dGVuc2lvbihEaXNwbGF5KiBkaXNwbGF5KQogICAgIHJldHVybiAhIWdsWENyZWF0ZUNv
bnRleHRBdHRyaWJzQVJCOwogfQogCitzdGF0aWMgR0xYQ29udGV4dCBjcmVhdGVHTFhBUkJDb250
ZXh0KERpc3BsYXkqIGRpc3BsYXksIEdMWEZCQ29uZmlnIGNvbmZpZywgR0xYQ29udGV4dCBzaGFy
aW5nQ29udGV4dCkKK3sKKyAgICAvLyBXZSB3YW50IHRvIGNyZWF0ZSBhIGNvbnRleHQgd2l0aCB2
ZXJzaW9uID49IDMuMiBjb3JlIHByb2ZpbGUsIGNhdXNlIHRoYXQgZW5zdXJlcyB0aGF0IHRoZSBp
OTY1IGRyaXZlciB3b24ndAorICAgIC8vIHVzZSB0aGUgc29mdHdhcmUgcmVuZGVyZXIuIElmIHRo
YXQgZG9lc24ndCB3b3JrLCB3ZSB3aWxsIHVzZSB3aGF0ZXZlciB2ZXJzaW9uIGF2YWlsYWJsZS4g
VW5mb3J0dW5hdGVseSwKKyAgICAvLyB0aGVyZSdzIG5vIHdheSB0byBrbm93IHdoZXRoZXIgZ2xY
Q3JlYXRlQ29udGV4dEF0dHJpYnNBUkIgY2FuIHByb3ZpZGUgYW4gT3BlbkdMIHZlcnNpb24gPj0g
My4yIHVudGlsCisgICAgLy8gd2UgYWN0dWFsbHkgY2FsbCBpdCBhbmQgY2hlY2sgdGhlIHJldHVy
biB2YWx1ZS4gVG8gbWFrZSB0aGluZ3MgbW9yZSBmdW4sIGlmIGEgdmVyc2lvbiA+PSAzLjIgY2Fu
bm90IGJlCisgICAgLy8gcHJvdmlkZWQsIGdsWENyZWF0ZUNvbnRleHRBdHRyaWJzQVJCIHdpbGwg
dGhyb3cgYSBHTFhCYWRGQkNvbmZpZyBYIGVycm9yLCBjYXVzaW5nIHRoZSBhcHAgdG8gY3Jhc2gu
CisgICAgLy8gU28sIHRoZSBmaXJzdCB0aW1lIGEgY29udGV4dCBpcyByZXF1ZXN0ZWQsIHdlIHNl
dCBhIFggZXJyb3IgdHJhcCB0byBkaXNhYmxlIGNyYXNoZXMgd2l0aCBHTFhCYWRGQkNvbmZpZwor
ICAgIC8vIGFuZCB0aGVuIGNoZWNrIHdoZXRoZXIgdGhlIHJldHVybiB2YWx1ZSBpcyBhIGNvbnRl
eHQgb3Igbm90LgorCisgICAgc3RhdGljIGJvb2wgY2FuQ3JlYXRlMzIwQ29udGV4dCA9IGZhbHNl
OworICAgIHN0YXRpYyBib29sIGNhbkNyZWF0ZTMyMENvbnRleHRJbml0aWFsaXplZCA9IGZhbHNl
OworCisgICAgc3RhdGljIGNvbnN0IGludCBjb250ZXh0QXR0cmlidXRlc1tdID0geworICAgICAg
ICBHTFhfQ09OVEVYVF9NQUpPUl9WRVJTSU9OX0FSQiwgMywKKyAgICAgICAgR0xYX0NPTlRFWFRf
TUlOT1JfVkVSU0lPTl9BUkIsIDIsCisgICAgICAgIDAKKyAgICB9OworCisgICAgaWYgKCFjYW5D
cmVhdGUzMjBDb250ZXh0SW5pdGlhbGl6ZWQpIHsKKyAgICAgICAgY2FuQ3JlYXRlMzIwQ29udGV4
dEluaXRpYWxpemVkID0gdHJ1ZTsKKworICAgICAgICB7CisgICAgICAgICAgICAvLyBTZXQgYW4g
WCBlcnJvciB0cmFwcGVyIHRoYXQgaWdub3JlcyBlcnJvcnMgdG8gYXZvaWQgY3Jhc2hpbmcgb24g
R0xYQmFkRkJDb25maWcuIFVzZSBhIHNjb3BlCisgICAgICAgICAgICAvLyBoZXJlIHRvIGxpbWl0
IHRoZSBlcnJvciB0cmFwIHRvIGp1c3QgdGhpcyBjb250ZXh0IGNyZWF0aW9uIGNhbGwuCisgICAg
ICAgICAgICBYRXJyb3JUcmFwcGVyIHRyYXBwZXIoZGlzcGxheSwgWEVycm9yVHJhcHBlcjo6UG9s
aWN5OjpJZ25vcmUpOworICAgICAgICAgICAgR0xYQ29udGV4dCBjb250ZXh0ID0gZ2xYQ3JlYXRl
Q29udGV4dEF0dHJpYnNBUkIoZGlzcGxheSwgY29uZmlnLCBzaGFyaW5nQ29udGV4dCwgR0xfVFJV
RSwgY29udGV4dEF0dHJpYnV0ZXMpOworICAgICAgICAgICAgaWYgKGNvbnRleHQpIHsKKyAgICAg
ICAgICAgICAgICBjYW5DcmVhdGUzMjBDb250ZXh0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gY29udGV4dDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorCisgICAgICAgIC8vIENy
ZWF0aW5nIHRoZSAzLjIgY29udGV4dCBmYWlsZWQsIHNvIHVzZSB3aGF0ZXZlciBpcyBhdmFpbGFi
bGUuCisgICAgICAgIHJldHVybiBnbFhDcmVhdGVDb250ZXh0QXR0cmlic0FSQihkaXNwbGF5LCBj
b25maWcsIHNoYXJpbmdDb250ZXh0LCBHTF9UUlVFLCBudWxscHRyKTsKKyAgICB9CisKKyAgICBp
ZiAoY2FuQ3JlYXRlMzIwQ29udGV4dCkKKyAgICAgICAgcmV0dXJuIGdsWENyZWF0ZUNvbnRleHRB
dHRyaWJzQVJCKGRpc3BsYXksIGNvbmZpZywgc2hhcmluZ0NvbnRleHQsIEdMX1RSVUUsIGNvbnRl
eHRBdHRyaWJ1dGVzKTsKKworICAgIHJldHVybiBnbFhDcmVhdGVDb250ZXh0QXR0cmlic0FSQihk
aXNwbGF5LCBjb25maWcsIHNoYXJpbmdDb250ZXh0LCBHTF9UUlVFLCBudWxscHRyKTsKK30KKwog
c3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEdMWD4gR0xDb250ZXh0R0xYOjpjcmVhdGVXaW5kb3dD
b250ZXh0KEdMTmF0aXZlV2luZG93VHlwZSB3aW5kb3csIFBsYXRmb3JtRGlzcGxheSYgcGxhdGZv
cm1EaXNwbGF5LCBHTFhDb250ZXh0IHNoYXJpbmdDb250ZXh0KQogewogICAgIERpc3BsYXkqIGRp
c3BsYXkgPSBkb3duY2FzdDxQbGF0Zm9ybURpc3BsYXlYMTE+KHBsYXRmb3JtRGlzcGxheSkubmF0
aXZlKCk7CkBAIC05NiwxOCArMTQwLDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRHTFg+
IEdMQ29udGV4dEdMWDo6Y3JlYXRlV2luZG93Q29udGV4dChHTE5hdGl2ZVdpbmRvd1R5CiAgICAg
QVNTRVJUKGNvbmZpZyk7CiAKICAgICBYVW5pcXVlR0xYQ29udGV4dCBjb250ZXh0OwotICAgIGlm
IChoYXNHTFhBUkJDcmVhdGVDb250ZXh0RXh0ZW5zaW9uKGRpc3BsYXkpKSB7Ci0gICAgICAgIC8v
IFJlcXVlc3QgT3BlbkdMIHZlcnNpb24gMy4yIGFuZCBjb3JlIHByb2ZpbGUsIHdoaWNoIGd1YXJh
bnRlZXMgdGhhdCB0aGUgaTk2NSBkcml2ZXIgZG9lc24ndCB1c2UgdGhlIHNvZnR3YXJlIHJlbmRl
cmVyLgotICAgICAgICBzdGF0aWMgY29uc3QgaW50IGNvbnRleHRBdHRyaWJ1dGVzW10gPSB7Ci0g
ICAgICAgICAgICBHTFhfQ09OVEVYVF9NQUpPUl9WRVJTSU9OX0FSQiwgMywKLSAgICAgICAgICAg
IEdMWF9DT05URVhUX01JTk9SX1ZFUlNJT05fQVJCLCAyLAotICAgICAgICAgICAgMAotICAgICAg
ICB9OwotICAgICAgICBjb250ZXh0LnJlc2V0KGdsWENyZWF0ZUNvbnRleHRBdHRyaWJzQVJCKGRp
c3BsYXksIGNvbmZpZywgc2hhcmluZ0NvbnRleHQsIEdMX1RSVUUsIGNvbnRleHRBdHRyaWJ1dGVz
KSk7Ci0gICAgfQotCi0gICAgaWYgKCFjb250ZXh0KSB7Ci0gICAgICAgIC8vIEZhbGxiYWNrIHRv
IGxlZ2FjeSBPcGVuR0wgdmVyc2lvbi4KKyAgICBpZiAoaGFzR0xYQVJCQ3JlYXRlQ29udGV4dEV4
dGVuc2lvbihkaXNwbGF5KSkKKyAgICAgICAgY29udGV4dC5yZXNldCgoY3JlYXRlR0xYQVJCQ29u
dGV4dChkaXNwbGF5LCBjb25maWcsIHNoYXJpbmdDb250ZXh0KSkpOworICAgIGVsc2UgeworICAg
ICAgICAvLyBMZWdhY3kgT3BlbkdMIHZlcnNpb24uCiAgICAgICAgIFhVbmlxdWVQdHI8WFZpc3Vh
bEluZm8+IHZpc3VhbEluZm9MaXN0KGdsWEdldFZpc3VhbEZyb21GQkNvbmZpZyhkaXNwbGF5LCBj
b25maWcpKTsKICAgICAgICAgY29udGV4dC5yZXNldChnbFhDcmVhdGVDb250ZXh0KGRpc3BsYXks
IHZpc3VhbEluZm9MaXN0LmdldCgpLCBzaGFyaW5nQ29udGV4dCwgVHJ1ZSkpOwogICAgIH0KQEAg
LTE0NCwxOSArMTgwLDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRHTFg+IEdMQ29udGV4
dEdMWDo6Y3JlYXRlUGJ1ZmZlckNvbnRleHQoUGxhdGZvcm1EaXNwbGF5CiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCiAgICAgWFVuaXF1ZUdMWENvbnRleHQgY29udGV4dDsKLQotICAgIGlmICho
YXNHTFhBUkJDcmVhdGVDb250ZXh0RXh0ZW5zaW9uKGRpc3BsYXkpKSB7Ci0gICAgICAgIC8vIFJl
cXVlc3QgT3BlbkdMIHZlcnNpb24gMy4yIGFuZCBjb3JlIHByb2ZpbGUsIHdoaWNoIGd1YXJhbnRl
ZXMgdGhhdCB0aGUgaTk2NSBkcml2ZXIgZG9lc24ndCB1c2UgdGhlIHNvZnR3YXJlIHJlbmRlcmVy
LgotICAgICAgICBzdGF0aWMgY29uc3QgaW50IGNvbnRleHRBdHRyaWJ1dGVzW10gPSB7Ci0gICAg
ICAgICAgICBHTFhfQ09OVEVYVF9NQUpPUl9WRVJTSU9OX0FSQiwgMywKLSAgICAgICAgICAgIEdM
WF9DT05URVhUX01JTk9SX1ZFUlNJT05fQVJCLCAyLAotICAgICAgICAgICAgMAotICAgICAgICB9
OwotICAgICAgICBjb250ZXh0LnJlc2V0KGdsWENyZWF0ZUNvbnRleHRBdHRyaWJzQVJCKGRpc3Bs
YXksIGNvbmZpZ3MuZ2V0KClbMF0sIHNoYXJpbmdDb250ZXh0LCBHTF9UUlVFLCBjb250ZXh0QXR0
cmlidXRlcykpOwotICAgIH0KLQotICAgIGlmICghY29udGV4dCkgewotICAgICAgICAvLyBGYWxs
YmFjayB0byBsZWdhY3kgT3BlbkdMIHZlcnNpb24uCisgICAgaWYgKGhhc0dMWEFSQkNyZWF0ZUNv
bnRleHRFeHRlbnNpb24oZGlzcGxheSkpCisgICAgICAgIGNvbnRleHQucmVzZXQoKGNyZWF0ZUdM
WEFSQkNvbnRleHQoZGlzcGxheSwgY29uZmlncy5nZXQoKVswXSwgc2hhcmluZ0NvbnRleHQpKSk7
CisgICAgZWxzZSB7CisgICAgICAgIC8vIExlZ2FjeSBPcGVuR0wgdmVyc2lvbi4KICAgICAgICAg
Y29udGV4dC5yZXNldChnbFhDcmVhdGVOZXdDb250ZXh0KGRpc3BsYXksIGNvbmZpZ3MuZ2V0KClb
MF0sIEdMWF9SR0JBX1RZUEUsIHNoYXJpbmdDb250ZXh0LCBHTF9UUlVFKSk7CiAgICAgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297456</attachid>
            <date>2016-12-19 05:17:03 -0800</date>
            <delta_ts>2016-12-19 07:42:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-165200-20161219141604.patch</filename>
            <type>text/plain</type>
            <size>6617</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA5OTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY3ZjY2YTM3MjhlYzQz
ZTk1ZDNhNDMzYTM5YzJmZjk4ZDAwMDhjOC4uZjdkNzAzODAwZGQwZjg0N2U4NWI1NGJhMjRmNzgy
YjM1OTkwMWMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDE2LTEyLTE5ICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gR0xYQmFkRkJD
b25maWcgZXJyb3Igd2hlbiBjcmVhdGluZyBhbiBPcGVuR0wgY29udGV4dAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY1MjAwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgQ2FybG9zIEdhcmNpYSBDYW1wb3MuCisKKyAgICAgICAgZ2xYQ3JlYXRlQ29udGV4
dEF0dHJpYnNBUkIgY2F1c2VzIGEgR0xYQmFkRkJDb25maWcgWCBlcnJvciB3aGVuIGl0J3Mgbm90
IGFibGUgdG8gcHJvdmlkZSB0aGUKKyAgICAgICAgT3BlbkdMIHZlcnNpb24gPj0gMy4yIHdlIGFy
ZSByZXF1ZXN0aW5nLiBEdWUgdG8gdGhpcywgdGhlIGFwcCBjcmFzaGVzIGluc3RlYWQgb2YgZmFs
bGluZyBiYWNrIHRvCisgICAgICAgIHRoZSBsZWdhY3kgcGF0aC4KKyAgICAgICAgVGhlIHBhdGNo
IG1vZGlmaWVzIEdMWCBjb250ZXh0IGNyZWF0aW9uIHVzaW5nIGEgWEVycm9yVHJhcHBlciwgc28g
dGhlIGZpcnN0IHRpbWUgYSBjb250ZXh0IGlzIGNyZWF0ZWQKKyAgICAgICAgd2UgZG9uJ3QgY3Jh
c2ggaWYgT3BlbkdMID49IDMuMiBpcyBub3QgYXZhaWxhYmxlLgorICAgICAgICBJZiB0aGUgZ290
dGVuIGNvbnRleHQgaXMgbm90IHZhbGlkLCB3ZSBmYWxsIGJhY2sgdG8gd2hhdGV2ZXIgdmVyc2lv
biBnbFhDcmVhdGVDb250ZXh0QXR0cmlic0FSQiBpcworICAgICAgICBhYmxlIHRvIHByb3ZpZGUu
CisgICAgICAgIFRoZSBsZWdhY3kgZ2xYQ3JlYXRlQ29udGV4dCBpcyBvbmx5IHVzZWQgaWYgdGhl
IEdMWF9BUkJfY3JlYXRlX2NvbnRleHQgZXh0ZW5zaW9uIGlzIG5vdCBhdmFpbGFibGUuCisKKyAg
ICAgICAgQ292ZXJlZCBieSBleGlzdGVudCB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2dseC9HTENvbnRleHRHTFguY3BwOgorICAgICAgICAoV2ViQ29yZTo6dHJ5Q3JlYXRl
R0xYQVJCQ29udGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpHTENvbnRleHRHTFg6OmNyZWF0ZVdp
bmRvd0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6R0xDb250ZXh0R0xYOjpjcmVhdGVQYnVm
ZmVyQ29udGV4dCk6CisKIDIwMTYtMTItMTggIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUu
Y29tPgogCiAgICAgICAgIEluZGV4ZWREQiAyLjA6IFByZWZldGNoIGN1cnNvciByZWNvcmRzIGlu
IHRoZSBzZXJ2ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9nbHgvR0xDb250ZXh0R0xYLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2dseC9HTENvbnRleHRHTFguY3BwCmluZGV4IDBkM2E5NzAyN2ViOTVlNzQ0OTYxNzkwODgxMDJm
NThlZDM0M2YxM2IuLjkyODdiODVjNWFkNzEyNmM1MDRkNjVmZWQ1MGEzOGRhNDBmMTM4ZDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRleHRH
TFguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dseC9HTENvbnRl
eHRHTFguY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0M0Qu
aCIKICNpbmNsdWRlICJPcGVuR0xTaGltcy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVgx
MS5oIgorI2luY2x1ZGUgIlhFcnJvclRyYXBwZXIuaCIKICNpbmNsdWRlIDxHTC9nbHguaD4KICNp
bmNsdWRlIDxjYWlyby5oPgogCkBAIC03MCw2ICs3MSw0OSBAQCBzdGF0aWMgYm9vbCBoYXNHTFhB
UkJDcmVhdGVDb250ZXh0RXh0ZW5zaW9uKERpc3BsYXkqIGRpc3BsYXkpCiAgICAgcmV0dXJuICEh
Z2xYQ3JlYXRlQ29udGV4dEF0dHJpYnNBUkI7CiB9CiAKK3N0YXRpYyBHTFhDb250ZXh0IGNyZWF0
ZUdMWEFSQkNvbnRleHQoRGlzcGxheSogZGlzcGxheSwgR0xYRkJDb25maWcgY29uZmlnLCBHTFhD
b250ZXh0IHNoYXJpbmdDb250ZXh0KQoreworICAgIC8vIFdlIHdhbnQgdG8gY3JlYXRlIGEgY29u
dGV4dCB3aXRoIHZlcnNpb24gPj0gMy4yIGNvcmUgcHJvZmlsZSwgY2F1c2UgdGhhdCBlbnN1cmVz
IHRoYXQgdGhlIGk5NjUgZHJpdmVyIHdvbid0CisgICAgLy8gdXNlIHRoZSBzb2Z0d2FyZSByZW5k
ZXJlci4gSWYgdGhhdCBkb2Vzbid0IHdvcmssIHdlIHdpbGwgdXNlIHdoYXRldmVyIHZlcnNpb24g
YXZhaWxhYmxlLiBVbmZvcnR1bmF0ZWx5LAorICAgIC8vIHRoZXJlJ3Mgbm8gd2F5IHRvIGtub3cg
d2hldGhlciBnbFhDcmVhdGVDb250ZXh0QXR0cmlic0FSQiBjYW4gcHJvdmlkZSBhbiBPcGVuR0wg
dmVyc2lvbiA+PSAzLjIgdW50aWwKKyAgICAvLyB3ZSBhY3R1YWxseSBjYWxsIGl0IGFuZCBjaGVj
ayB0aGUgcmV0dXJuIHZhbHVlLiBUbyBtYWtlIHRoaW5ncyBtb3JlIGZ1biwgaWYgYSB2ZXJzaW9u
ID49IDMuMiBjYW5ub3QgYmUKKyAgICAvLyBwcm92aWRlZCwgZ2xYQ3JlYXRlQ29udGV4dEF0dHJp
YnNBUkIgd2lsbCB0aHJvdyBhIEdMWEJhZEZCQ29uZmlnIFggZXJyb3IsIGNhdXNpbmcgdGhlIGFw
cCB0byBjcmFzaC4KKyAgICAvLyBTbywgdGhlIGZpcnN0IHRpbWUgYSBjb250ZXh0IGlzIHJlcXVl
c3RlZCwgd2Ugc2V0IGEgWCBlcnJvciB0cmFwIHRvIGRpc2FibGUgY3Jhc2hlcyB3aXRoIEdMWEJh
ZEZCQ29uZmlnCisgICAgLy8gYW5kIHRoZW4gY2hlY2sgd2hldGhlciB0aGUgcmV0dXJuIHZhbHVl
IGlzIGEgY29udGV4dCBvciBub3QuCisKKyAgICBzdGF0aWMgYm9vbCBjYW5DcmVhdGUzMjBDb250
ZXh0ID0gZmFsc2U7CisgICAgc3RhdGljIGJvb2wgY2FuQ3JlYXRlMzIwQ29udGV4dEluaXRpYWxp
emVkID0gZmFsc2U7CisKKyAgICBzdGF0aWMgY29uc3QgaW50IGNvbnRleHRBdHRyaWJ1dGVzW10g
PSB7CisgICAgICAgIEdMWF9DT05URVhUX01BSk9SX1ZFUlNJT05fQVJCLCAzLAorICAgICAgICBH
TFhfQ09OVEVYVF9NSU5PUl9WRVJTSU9OX0FSQiwgMiwKKyAgICAgICAgMAorICAgIH07CisKKyAg
ICBpZiAoIWNhbkNyZWF0ZTMyMENvbnRleHRJbml0aWFsaXplZCkgeworICAgICAgICBjYW5DcmVh
dGUzMjBDb250ZXh0SW5pdGlhbGl6ZWQgPSB0cnVlOworCisgICAgICAgIHsKKyAgICAgICAgICAg
IC8vIFNldCBhbiBYIGVycm9yIHRyYXBwZXIgdGhhdCBpZ25vcmVzIGVycm9ycyB0byBhdm9pZCBj
cmFzaGluZyBvbiBHTFhCYWRGQkNvbmZpZy4gVXNlIGEgc2NvcGUKKyAgICAgICAgICAgIC8vIGhl
cmUgdG8gbGltaXQgdGhlIGVycm9yIHRyYXAgdG8ganVzdCB0aGlzIGNvbnRleHQgY3JlYXRpb24g
Y2FsbC4KKyAgICAgICAgICAgIFhFcnJvclRyYXBwZXIgdHJhcHBlcihkaXNwbGF5LCBYRXJyb3JU
cmFwcGVyOjpQb2xpY3k6Oklnbm9yZSk7CisgICAgICAgICAgICBHTFhDb250ZXh0IGNvbnRleHQg
PSBnbFhDcmVhdGVDb250ZXh0QXR0cmlic0FSQihkaXNwbGF5LCBjb25maWcsIHNoYXJpbmdDb250
ZXh0LCBHTF9UUlVFLCBjb250ZXh0QXR0cmlidXRlcyk7CisgICAgICAgICAgICBpZiAoY29udGV4
dCkgeworICAgICAgICAgICAgICAgIGNhbkNyZWF0ZTMyMENvbnRleHQgPSB0cnVlOworICAgICAg
ICAgICAgICAgIHJldHVybiBjb250ZXh0OworICAgICAgICAgICAgfQorICAgICAgICB9CisKKyAg
ICAgICAgLy8gQ3JlYXRpbmcgdGhlIDMuMiBjb250ZXh0IGZhaWxlZCwgc28gdXNlIHdoYXRldmVy
IGlzIGF2YWlsYWJsZS4KKyAgICAgICAgcmV0dXJuIGdsWENyZWF0ZUNvbnRleHRBdHRyaWJzQVJC
KGRpc3BsYXksIGNvbmZpZywgc2hhcmluZ0NvbnRleHQsIEdMX1RSVUUsIG51bGxwdHIpOworICAg
IH0KKworICAgIGlmIChjYW5DcmVhdGUzMjBDb250ZXh0KQorICAgICAgICByZXR1cm4gZ2xYQ3Jl
YXRlQ29udGV4dEF0dHJpYnNBUkIoZGlzcGxheSwgY29uZmlnLCBzaGFyaW5nQ29udGV4dCwgR0xf
VFJVRSwgY29udGV4dEF0dHJpYnV0ZXMpOworCisgICAgcmV0dXJuIGdsWENyZWF0ZUNvbnRleHRB
dHRyaWJzQVJCKGRpc3BsYXksIGNvbmZpZywgc2hhcmluZ0NvbnRleHQsIEdMX1RSVUUsIG51bGxw
dHIpOworfQorCiBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0R0xYPiBHTENvbnRleHRHTFg6OmNy
ZWF0ZVdpbmRvd0NvbnRleHQoR0xOYXRpdmVXaW5kb3dUeXBlIHdpbmRvdywgUGxhdGZvcm1EaXNw
bGF5JiBwbGF0Zm9ybURpc3BsYXksIEdMWENvbnRleHQgc2hhcmluZ0NvbnRleHQpCiB7CiAgICAg
RGlzcGxheSogZGlzcGxheSA9IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVgxMT4ocGxhdGZvcm1E
aXNwbGF5KS5uYXRpdmUoKTsKQEAgLTk2LDE4ICsxNDAsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPEdM
Q29udGV4dEdMWD4gR0xDb250ZXh0R0xYOjpjcmVhdGVXaW5kb3dDb250ZXh0KEdMTmF0aXZlV2lu
ZG93VHkKICAgICBBU1NFUlQoY29uZmlnKTsKIAogICAgIFhVbmlxdWVHTFhDb250ZXh0IGNvbnRl
eHQ7Ci0gICAgaWYgKGhhc0dMWEFSQkNyZWF0ZUNvbnRleHRFeHRlbnNpb24oZGlzcGxheSkpIHsK
LSAgICAgICAgLy8gUmVxdWVzdCBPcGVuR0wgdmVyc2lvbiAzLjIgYW5kIGNvcmUgcHJvZmlsZSwg
d2hpY2ggZ3VhcmFudGVlcyB0aGF0IHRoZSBpOTY1IGRyaXZlciBkb2Vzbid0IHVzZSB0aGUgc29m
dHdhcmUgcmVuZGVyZXIuCi0gICAgICAgIHN0YXRpYyBjb25zdCBpbnQgY29udGV4dEF0dHJpYnV0
ZXNbXSA9IHsKLSAgICAgICAgICAgIEdMWF9DT05URVhUX01BSk9SX1ZFUlNJT05fQVJCLCAzLAot
ICAgICAgICAgICAgR0xYX0NPTlRFWFRfTUlOT1JfVkVSU0lPTl9BUkIsIDIsCi0gICAgICAgICAg
ICAwCi0gICAgICAgIH07Ci0gICAgICAgIGNvbnRleHQucmVzZXQoZ2xYQ3JlYXRlQ29udGV4dEF0
dHJpYnNBUkIoZGlzcGxheSwgY29uZmlnLCBzaGFyaW5nQ29udGV4dCwgR0xfVFJVRSwgY29udGV4
dEF0dHJpYnV0ZXMpKTsKLSAgICB9Ci0KLSAgICBpZiAoIWNvbnRleHQpIHsKLSAgICAgICAgLy8g
RmFsbGJhY2sgdG8gbGVnYWN5IE9wZW5HTCB2ZXJzaW9uLgorICAgIGlmIChoYXNHTFhBUkJDcmVh
dGVDb250ZXh0RXh0ZW5zaW9uKGRpc3BsYXkpKQorICAgICAgICBjb250ZXh0LnJlc2V0KGNyZWF0
ZUdMWEFSQkNvbnRleHQoZGlzcGxheSwgY29uZmlnLCBzaGFyaW5nQ29udGV4dCkpOworICAgIGVs
c2UgeworICAgICAgICAvLyBMZWdhY3kgT3BlbkdMIHZlcnNpb24uCiAgICAgICAgIFhVbmlxdWVQ
dHI8WFZpc3VhbEluZm8+IHZpc3VhbEluZm9MaXN0KGdsWEdldFZpc3VhbEZyb21GQkNvbmZpZyhk
aXNwbGF5LCBjb25maWcpKTsKICAgICAgICAgY29udGV4dC5yZXNldChnbFhDcmVhdGVDb250ZXh0
KGRpc3BsYXksIHZpc3VhbEluZm9MaXN0LmdldCgpLCBzaGFyaW5nQ29udGV4dCwgVHJ1ZSkpOwog
ICAgIH0KQEAgLTE0NCwxOSArMTgwLDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRHTFg+
IEdMQ29udGV4dEdMWDo6Y3JlYXRlUGJ1ZmZlckNvbnRleHQoUGxhdGZvcm1EaXNwbGF5CiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCiAgICAgWFVuaXF1ZUdMWENvbnRleHQgY29udGV4dDsKLQot
ICAgIGlmIChoYXNHTFhBUkJDcmVhdGVDb250ZXh0RXh0ZW5zaW9uKGRpc3BsYXkpKSB7Ci0gICAg
ICAgIC8vIFJlcXVlc3QgT3BlbkdMIHZlcnNpb24gMy4yIGFuZCBjb3JlIHByb2ZpbGUsIHdoaWNo
IGd1YXJhbnRlZXMgdGhhdCB0aGUgaTk2NSBkcml2ZXIgZG9lc24ndCB1c2UgdGhlIHNvZnR3YXJl
IHJlbmRlcmVyLgotICAgICAgICBzdGF0aWMgY29uc3QgaW50IGNvbnRleHRBdHRyaWJ1dGVzW10g
PSB7Ci0gICAgICAgICAgICBHTFhfQ09OVEVYVF9NQUpPUl9WRVJTSU9OX0FSQiwgMywKLSAgICAg
ICAgICAgIEdMWF9DT05URVhUX01JTk9SX1ZFUlNJT05fQVJCLCAyLAotICAgICAgICAgICAgMAot
ICAgICAgICB9OwotICAgICAgICBjb250ZXh0LnJlc2V0KGdsWENyZWF0ZUNvbnRleHRBdHRyaWJz
QVJCKGRpc3BsYXksIGNvbmZpZ3MuZ2V0KClbMF0sIHNoYXJpbmdDb250ZXh0LCBHTF9UUlVFLCBj
b250ZXh0QXR0cmlidXRlcykpOwotICAgIH0KLQotICAgIGlmICghY29udGV4dCkgewotICAgICAg
ICAvLyBGYWxsYmFjayB0byBsZWdhY3kgT3BlbkdMIHZlcnNpb24uCisgICAgaWYgKGhhc0dMWEFS
QkNyZWF0ZUNvbnRleHRFeHRlbnNpb24oZGlzcGxheSkpCisgICAgICAgIGNvbnRleHQucmVzZXQo
Y3JlYXRlR0xYQVJCQ29udGV4dChkaXNwbGF5LCBjb25maWdzLmdldCgpWzBdLCBzaGFyaW5nQ29u
dGV4dCkpOworICAgIGVsc2UgeworICAgICAgICAvLyBMZWdhY3kgT3BlbkdMIHZlcnNpb24uCiAg
ICAgICAgIGNvbnRleHQucmVzZXQoZ2xYQ3JlYXRlTmV3Q29udGV4dChkaXNwbGF5LCBjb25maWdz
LmdldCgpWzBdLCBHTFhfUkdCQV9UWVBFLCBzaGFyaW5nQ29udGV4dCwgR0xfVFJVRSkpOwogICAg
IH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>