<?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>169576</bug_id>
          
          <creation_ts>2017-03-13 17:01:46 -0700</creation_ts>
          <short_desc>Follow-up (r213833): write a layout test for 169199</short_desc>
          <delta_ts>2017-03-17 05:22:22 -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>Images</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=169199</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Miguel Gomez">magomez</assigned_to>
          <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>magomez</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1287427</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-03-13 17:01:46 -0700</bug_when>
    <thetext>A new internal API is needed to force the ImageDecoder to be deleted. A function like this needs to be called from the internal API.

void BitmapImage::clearDecoder()
{
    m_source.clear(data());
}

When new an image frame is requested and without r213833, a crash should occur. To expose a BitmapImage function through Internals, have look at Internals::imageFrameIndex(). And to write a test for animated images, have a look fast/images/animated-image-loop-count.html.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287428</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-03-13 17:03:49 -0700</bug_when>
    <thetext>&lt;rdar://problem/31024766&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287659</commentid>
    <comment_count>2</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-03-14 10:31:11 -0700</bug_when>
    <thetext>I&apos;m working on this.

I have the test that deletes the decoder and works fine. But without r213833 it doesn&apos;t necessarily cause a crash, as it&apos;s a race condition.

With the implementation of BitmapImage::clearDecoder() you suggest, ImageSource::clear() calls setData() just after setting the ImageFrameCache decoder to nullptr, and that setData() creates a new decoder that the decoding thread will use without crashing.

The crash happens only when the decoding thread is using the decoder exactly between its destruction and the creation of the new one, which is pretty hard to reproduce. I could force it though, using an implementation of BitmapImage::clearDecoder() that just deletes the decoder and doesn&apos;t cause setData() to be called.

Should I do that? Or should I use the implementation you suggest, even if the crash is not easily reproducible without r213833?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1287672</commentid>
    <comment_count>3</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-03-14 10:45:59 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I&apos;m working on this.
&gt; 
&gt; I have the test that deletes the decoder and works fine. But without r213833
&gt; it doesn&apos;t necessarily cause a crash, as it&apos;s a race condition.
&gt; 
&gt; With the implementation of BitmapImage::clearDecoder() you suggest,
&gt; ImageSource::clear() calls setData() just after setting the ImageFrameCache
&gt; decoder to nullptr, and that setData() creates a new decoder that the
&gt; decoding thread will use without crashing.
&gt; 
&gt; The crash happens only when the decoding thread is using the decoder exactly
&gt; between its destruction and the creation of the new one, which is pretty
&gt; hard to reproduce. I could force it though, using an implementation of
&gt; BitmapImage::clearDecoder() that just deletes the decoder and doesn&apos;t cause
&gt; setData() to be called.
&gt; 
&gt; Should I do that? Or should I use the implementation you suggest, even if
&gt; the crash is not easily reproducible without r213833?

I think you are right. You can instead add a setting flag which clears the decoder immediately  after requesting a new frame in BitmapImage::internalStartAnimation(). You can do something similar to Internals::setImageFrameDecodingDuration().

You can also try run-webkit-tests with --repeat-each=100 for example. This might cause the crash to happen with scenarios like this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288514</commentid>
    <comment_count>4</comment_count>
      <attachid>304630</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-03-16 04:17:39 -0700</bug_when>
    <thetext>Created attachment 304630
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288562</commentid>
    <comment_count>5</comment_count>
      <attachid>304630</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-03-16 08:53:28 -0700</bug_when>
    <thetext>Comment on attachment 304630
Patch

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

I assume you tried this test without r213833 and it crashed.

&gt; Source/WebCore/ChangeLog:10
&gt; +        requesting de async decoding of a frame, and implement that behaviour in BitmapImage.

de =&gt; an (maybe)

&gt; Source/WebCore/testing/Internals.cpp:747
&gt; +void Internals::clearDecoderAfterAsyncFrameRequestForTesting(HTMLImageElement&amp; element)

This name does not reveal what this function is actually doing. Since it is just setting a flag, I would suggest the renaming it to be setClearDecoderAfterAsyncFrameRequestForTesting() or enableClearDecoderAfterAsyncFrameRequestForTesting(). I would suggest also adding a bool flag to enable/disable m_clearDecoderAfterAsyncFrameRequestForTesting instead of enabling it only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288568</commentid>
    <comment_count>6</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-03-16 09:13:56 -0700</bug_when>
    <thetext>&gt; I assume you tried this test without r213833 and it crashed.

I tried, and it crashes most of the times. There&apos;s still some probability of it not crashing, but seems to be quite small with this approach.

As long as ImageSource::clear is used to clear the decoder (which destroys the decoder and instantly creates a new one due to the call to ImageSource::setData), the crash cannot be guaranteed 100% of the times.

In order to guarantee it we would need to clear the decoder in ImageSource without calling ImageSource::setData. But this would mean adding a new function to do so and create a situation that cannot happen in the normal execution of the code. I didn&apos;t do so because I&apos;m not sure that&apos;s expected from a test, but I&apos;ll be happy to do it if you prefer it that way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288592</commentid>
    <comment_count>7</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-03-16 10:10:47 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; &gt; I assume you tried this test without r213833 and it crashed.
&gt; 
&gt; I tried, and it crashes most of the times. There&apos;s still some probability of
&gt; it not crashing, but seems to be quite small with this approach.
&gt; 
&gt; As long as ImageSource::clear is used to clear the decoder (which destroys
&gt; the decoder and instantly creates a new one due to the call to
&gt; ImageSource::setData), the crash cannot be guaranteed 100% of the times.
&gt; 
&gt; In order to guarantee it we would need to clear the decoder in ImageSource
&gt; without calling ImageSource::setData. But this would mean adding a new
&gt; function to do so and create a situation that cannot happen in the normal
&gt; execution of the code. I didn&apos;t do so because I&apos;m not sure that&apos;s expected
&gt; from a test, but I&apos;ll be happy to do it if you prefer it that way.

If you run-webkit-tests --repeat-each=100 for your test and without r213833 and the test crashes only once that would be enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288973</commentid>
    <comment_count>8</comment_count>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-03-17 03:21:12 -0700</bug_when>
    <thetext>&gt; If you run-webkit-tests --repeat-each=100 for your test and without r213833
&gt; and the test crashes only once that would be enough.

Sure. It crashes more than 50% of the times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288974</commentid>
    <comment_count>9</comment_count>
      <attachid>304770</attachid>
    <who name="Miguel Gomez">magomez</who>
    <bug_when>2017-03-17 03:24:41 -0700</bug_when>
    <thetext>Created attachment 304770
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288977</commentid>
    <comment_count>10</comment_count>
      <attachid>304770</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-17 05:22:14 -0700</bug_when>
    <thetext>Comment on attachment 304770
Patch

Clearing flags on attachment: 304770

Committed r214103: &lt;http://trac.webkit.org/changeset/214103&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1288978</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-03-17 05:22:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304630</attachid>
            <date>2017-03-16 04:17:39 -0700</date>
            <delta_ts>2017-03-17 03:24:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169576-20170316121737.patch</filename>
            <type>text/plain</type>
            <size>8260</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MDM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGZkNzIzNDhkZjUyNWU0
OWUyYTgwZjQyNzhmMzFlY2E1ZjUwNTg2My4uZGRmYWZmNjgxMjE4ZWUzZGE1NWE4ZGIxOGEyNmY2
MzViNGUzYWYwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE3LTAzLTE2ICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgRm9sbG93LXVwIChyMjEz
ODMzKTogd3JpdGUgYSBsYXlvdXQgdGVzdCBmb3IgMTY5MTk5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk1NzYKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzMxMDI0NzY2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEFkZCBhIGZ1bmN0aW9uIHRvIEludGVybmFscyB0byBmb3JjZSB0aGUgZGVsZXRpb24g
b2YgdGhlIEltYWdlRGVjb2RlciBqdXN0IGFmdGVyCisgICAgICAgIHJlcXVlc3RpbmcgZGUgYXN5
bmMgZGVjb2Rpbmcgb2YgYSBmcmFtZSwgYW5kIGltcGxlbWVudCB0aGF0IGJlaGF2aW91ciBpbiBC
aXRtYXBJbWFnZS4KKworICAgICAgICBUZXN0OiBmYXN0L2ltYWdlcy9jbGVhci1hbmltYXRpb24t
ZGVjb2Rlci5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6aW50ZXJuYWxTdGFydEFuaW1hdGlv
bik6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaDoKKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OmNs
ZWFyRGVjb2RlckFmdGVyQXN5bmNGcmFtZVJlcXVlc3RGb3JUZXN0aW5nKToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwog
MjAxNy0wMy0xNSAgSm9uIExlZSAgPGpvbmxlZUBhcHBsZS5jb20+CiAKICAgICAgICAgRmxhdHRl
biBSVEMgZW51bSBuYW1pbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0JpdG1hcEltYWdlLmNwcAppbmRleCBmODY2ZGY2ODI0NGNkY2VhZjQ1MzFhOWMyNWU1OGI3YjUz
ZjA5NGRjLi4xMmNiZDA5YzQ3ZmQxZWU1YzExNTM0YTUyOWQzOTlkNDc4YmNjYWRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCkBAIC0z
NTIsNiArMzUyLDggQEAgQml0bWFwSW1hZ2U6OlN0YXJ0QW5pbWF0aW9uUmVzdWx0IEJpdG1hcElt
YWdlOjppbnRlcm5hbFN0YXJ0QW5pbWF0aW9uKCkKICNlbmRpZgogCiAgICAgICAgIG1fZGVzaXJl
ZEZyYW1lRGVjb2RlVGltZUZvclRlc3RpbmcgPSB0aW1lICsgc3RkOjptYXgobV9mcmFtZURlY29k
aW5nRHVyYXRpb25Gb3JUZXN0aW5nLCAwLjBmKTsKKyAgICAgICAgaWYgKG1fY2xlYXJEZWNvZGVy
QWZ0ZXJBc3luY0ZyYW1lUmVxdWVzdEZvclRlc3RpbmcpCisgICAgICAgICAgICBtX3NvdXJjZS5j
bGVhcihkYXRhKCkpOwogICAgIH0KIAogICAgIEFTU0VSVCghbV9mcmFtZVRpbWVyKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IDFiZTEz
MDE2YTQ1NGQ3YjVlNzFkODBhNjg5ZDllMTM5Mjg3NDExMmMuLmNkNjA0NjY5MGI1NDk1ZDFlNjNj
Y2ZjOTY5MjJkZjEwNGE1ZjRmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtMTAwLDYgKzEwMCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldEZyYW1lRGVjb2RpbmdEdXJhdGlvbkZvclRlc3RpbmcoZmxvYXQgZHVyYXRpb24pIHsgbV9m
cmFtZURlY29kaW5nRHVyYXRpb25Gb3JUZXN0aW5nID0gZHVyYXRpb247IH0KICAgICBib29sIHNo
b3VsZFVzZUFzeW5jRGVjb2RpbmdGb3JMYXJnZUltYWdlKCk7CiAgICAgYm9vbCBzaG91bGRVc2VB
c3luY0RlY29kaW5nRm9yQW5pbWF0ZWRJbWFnZSgpOworICAgIHZvaWQgY2xlYXJEZWNvZGVyQWZ0
ZXJBc3luY0ZyYW1lUmVxdWVzdEZvclRlc3RpbmcoKSB7IG1fY2xlYXJEZWNvZGVyQWZ0ZXJBc3lu
Y0ZyYW1lUmVxdWVzdEZvclRlc3RpbmcgPSB0cnVlOyB9CiAKICAgICAvLyBBY2Nlc3NvcnMgZm9y
IG5hdGl2ZSBpbWFnZSBmb3JtYXRzLgogI2lmIFVTRShBUFBLSVQpCkBAIC0yMTAsNiArMjExLDcg
QEAgcHJpdmF0ZToKIAogICAgIGZsb2F0IG1fZnJhbWVEZWNvZGluZ0R1cmF0aW9uRm9yVGVzdGlu
ZyB7IDAgfTsKICAgICBkb3VibGUgbV9kZXNpcmVkRnJhbWVEZWNvZGVUaW1lRm9yVGVzdGluZyB7
IDAgfTsKKyAgICBib29sIG1fY2xlYXJEZWNvZGVyQWZ0ZXJBc3luY0ZyYW1lUmVxdWVzdEZvclRl
c3RpbmcgeyBmYWxzZSB9OwogI2lmICFMT0dfRElTQUJMRUQKICAgICBzaXplX3QgbV9sYXRlRnJh
bWVDb3VudCB7IDAgfTsKICAgICBzaXplX3QgbV9lYXJseUZyYW1lQ291bnQgeyAwIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggMDliYWI0ODgxYTFjZDBiMjRiOTZiN2Jj
ZmUyY2M2Yjc0MTY5ZmNhNy4uMGJlYzliZWY4NTAwNWY3MmFiNTMzYTgwYTljYjE5ZjY2MWIzYmNj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtNzQ0LDYgKzc0NCwxOSBA
QCB2b2lkIEludGVybmFsczo6cmVzZXRJbWFnZUFuaW1hdGlvbihIVE1MSW1hZ2VFbGVtZW50JiBl
bGVtZW50KQogICAgIGltYWdlLT5yZXNldEFuaW1hdGlvbigpOwogfQogCit2b2lkIEludGVybmFs
czo6Y2xlYXJEZWNvZGVyQWZ0ZXJBc3luY0ZyYW1lUmVxdWVzdEZvclRlc3RpbmcoSFRNTEltYWdl
RWxlbWVudCYgZWxlbWVudCkKK3sKKyAgICBhdXRvKiBjYWNoZWRJbWFnZSA9IGVsZW1lbnQuY2Fj
aGVkSW1hZ2UoKTsKKyAgICBpZiAoIWNhY2hlZEltYWdlKQorICAgICAgICByZXR1cm47CisKKyAg
ICBhdXRvKiBpbWFnZSA9IGNhY2hlZEltYWdlLT5pbWFnZSgpOworICAgIGlmICghaXM8Qml0bWFw
SW1hZ2U+KGltYWdlKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgZG93bmNhc3Q8Qml0bWFwSW1h
Z2U+KCppbWFnZSkuY2xlYXJEZWNvZGVyQWZ0ZXJBc3luY0ZyYW1lUmVxdWVzdEZvclRlc3Rpbmco
KTsKK30KKwogdm9pZCBJbnRlcm5hbHM6OmNsZWFyUGFnZUNhY2hlKCkKIHsKICAgICBQYWdlQ2Fj
aGU6OnNpbmdsZXRvbigpLnBydW5lVG9TaXplTm93KDAsIFBydW5pbmdSZWFzb246Ok5vbmUpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggMDAwOWZhNWFhMmYwZWU0NDVjYWNkNDEz
ZDgwZTk1NmMzNjgwMjQxNy4uZTZiN2Q5NGRiZDlhZmQ2NzU0ZjAzYjhmYzYyMzU2OTdjZjFiODkz
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xMTUsNiArMTE1LDcgQEAgcHVi
bGljOgogICAgIHVuc2lnbmVkIGltYWdlRnJhbWVJbmRleChIVE1MSW1hZ2VFbGVtZW50Jik7CiAg
ICAgdm9pZCBzZXRJbWFnZUZyYW1lRGVjb2RpbmdEdXJhdGlvbihIVE1MSW1hZ2VFbGVtZW50Jiwg
ZmxvYXQgZHVyYXRpb24pOwogICAgIHZvaWQgcmVzZXRJbWFnZUFuaW1hdGlvbihIVE1MSW1hZ2VF
bGVtZW50Jik7CisgICAgdm9pZCBjbGVhckRlY29kZXJBZnRlckFzeW5jRnJhbWVSZXF1ZXN0Rm9y
VGVzdGluZyhIVE1MSW1hZ2VFbGVtZW50Jik7CiAKICAgICB2b2lkIGNsZWFyUGFnZUNhY2hlKCk7
CiAgICAgdW5zaWduZWQgcGFnZUNhY2hlU2l6ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaWRsCmluZGV4IDNhNTAzNDU2NmYxNTJlMTdiMGExNGFlOTNiZjhkOTBlNWIzMGE3
YTYuLjY5ZmU1ODBhYmZiYzk3Yzc5NjU5N2I5ZWVjZDZiZjBhYWIzYTI2NTcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTI0NCw2ICsyNDQsNyBAQCBlbnVtIEV2ZW50VGhy
b3R0bGluZ0JlaGF2aW9yIHsKICAgICB1bnNpZ25lZCBsb25nIGltYWdlRnJhbWVJbmRleChIVE1M
SW1hZ2VFbGVtZW50IGVsZW1lbnQpOwogICAgIHZvaWQgc2V0SW1hZ2VGcmFtZURlY29kaW5nRHVy
YXRpb24oSFRNTEltYWdlRWxlbWVudCBlbGVtZW50LCB1bnJlc3RyaWN0ZWQgZmxvYXQgZHVyYXRp
b24pOwogICAgIHZvaWQgcmVzZXRJbWFnZUFuaW1hdGlvbihIVE1MSW1hZ2VFbGVtZW50IGVsZW1l
bnQpOworICAgIHZvaWQgY2xlYXJEZWNvZGVyQWZ0ZXJBc3luY0ZyYW1lUmVxdWVzdEZvclRlc3Rp
bmcoSFRNTEltYWdlRWxlbWVudCBlbGVtZW50KTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBJ
bnRlcm5hbFNldHRpbmdzIHNldHRpbmdzOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25l
ZCBsb25nIHdvcmtlclRocmVhZENvdW50OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDlkZTdhYjQ4MGRlMGFlZWNmNTE1NTU4
ODdlYzBjNDIwMWZmMGI2ODcuLjlhYjFhNDhiY2JjZWNiZWY5ZjJiNjI2MTdjMzU1YjEyZGFmZjIz
M2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0wMy0xNiAgTWlndWVsIEdvbWV6ICA8bWFn
b21lekBpZ2FsaWEuY29tPgorCisgICAgICAgIEZvbGxvdy11cCAocjIxMzgzMyk6IHdyaXRlIGEg
bGF5b3V0IHRlc3QgZm9yIDE2OTE5OQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTY5NTc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTAyNDc2Nj4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0
ZXN0IHRoYXQgZW5zdXJlcyB0aGVyZSdzIG5vIGNyYXNoIHdoZW4gZGVsZXRpbmcgdGhlIEltYWdl
RGVjb2RlciBhZnRlciByZXF1ZXN0aW5nCisgICAgICAgIGFuIGFzeW5jIGRlY29kaW5nIG9wZXJh
dGlvbi4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL2NsZWFyLWFuaW1hdGlvbi1kZWNvZGVyLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9pbWFnZXMvY2xlYXItYW5pbWF0aW9u
LWRlY29kZXIuaHRtbDogQWRkZWQuCisKIDIwMTctMDMtMTUgIFphbGFuIEJ1anRhcyAgPHphbGFu
QGFwcGxlLmNvbT4KIAogICAgICAgICBEbyBub3QgcmVwYXJlbnQgZmxvYXRpbmcgb2JqZWN0IHVu
dGlsIGFmdGVyIGludHJ1ZGluZy9vdmVyaGFuZ2luZyBkZXBlbmRlbmN5IGlzIGNsZWFyZWQuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9jbGVhci1hbmltYXRpb24tZGVjb2Rl
ci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9jbGVhci1hbmltYXRpb24t
ZGVjb2Rlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjdlMTYzY2RiMzE0ZDFmYzUwOWY3YTcw
N2YxZDZjNDM5ZWIxODQ1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1h
Z2VzL2NsZWFyLWFuaW1hdGlvbi1kZWNvZGVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDkgQEAK
K0Vuc3VyZSB0aGF0IGNsZWFyaW5nIHRoZSBpbWFnZSBkZWNvZGVyIHdoaWxlIGRlY29kaW5nIGFu
IGFuaW1hdGlvbiBkb2Vzbid0IGNyYXNoLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2NsZWFyLWFuaW1hdGlvbi1kZWNvZGVy
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9jbGVhci1hbmltYXRpb24tZGVjb2Rlci5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjQxZGEwNmM3MDZlNmRhNzNhMWYzZmYzZmJlZDY1NTIwMTYwZTI5NTQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9jbGVhci1hbmltYXRp
b24tZGVjb2Rlci5odG1sCkBAIC0wLDAgKzEsNDkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxjYW52YXMgaWQ9ImNhbnZhcyI+PC9j
YW52YXM+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZGVzY3JpcHRpb24oIkVuc3VyZSB0aGF0IGNs
ZWFyaW5nIHRoZSBpbWFnZSBkZWNvZGVyIHdoaWxlIGRlY29kaW5nIGFuIGFuaW1hdGlvbiBkb2Vz
bid0IGNyYXNoLiIpOworICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICBp
bnRlcm5hbHMuY2xlYXJNZW1vcnlDYWNoZSgpOworCisgICAgICAgIHZhciBpbWFnZSA9IG5ldyBJ
bWFnZTsKKyAgICAgICAgaW1hZ2Uub25sb2FkID0gaW1hZ2VMb2FkZWQ7CisgICAgICAgIGltYWdl
LnNyYyA9ICJyZXNvdXJjZXMvYW5pbWF0ZWQtMTBjb2xvci5naWYiOworCisgICAgICAgIGZ1bmN0
aW9uIGltYWdlTG9hZGVkKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKCF3aW5kb3cuaW50
ZXJuYWxzKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGludGVybmFscy5z
ZXRJbWFnZUZyYW1lRGVjb2RpbmdEdXJhdGlvbihpbWFnZSwgMC4wNDApOworICAgICAgICAgICAg
aW50ZXJuYWxzLmNsZWFyRGVjb2RlckFmdGVyQXN5bmNGcmFtZVJlcXVlc3RGb3JUZXN0aW5nKGlt
YWdlKTsKKyAgICAgICAgICAgIGRyYXdJbWFnZSgpOworICAgICAgICAgICAgZHJhd0xvb3AoKTsK
KyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRyYXdJbWFnZSgpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGlmIChkcmF3SW1hZ2UuY291bnQgPT0gdW5kZWZpbmVkKQorICAgICAgICAgICAg
ICAgIGRyYXdJbWFnZS5jb3VudCA9IDA7CisgICAgICAgICAgICB2YXIgY2FudmFzID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoImNhbnZhcyIpOworICAgICAgICAgICAgdmFyIGN0eCA9IGNhbnZh
cy5nZXRDb250ZXh0KCIyZCIpOworICAgICAgICAgICAgY3R4LmRyYXdJbWFnZShpbWFnZSwgMCwg
MCwgY2FudmFzLndpZHRoLCBjYW52YXMuaGVpZ2h0KTsKKyAgICAgICAgICAgIHJldHVybiArK2Ry
YXdJbWFnZS5jb3VudDsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGRyYXdMb29wKCkK
KyAgICAgICAgeworICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoZHJhd0ltYWdlKCkgPT0gMTApCisgICAgICAgICAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICAgICAgICAgIGRyYXdMb29wKCk7CisgICAgICAgICAgICB9LCA1
MCk7CisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVz
b3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>304770</attachid>
            <date>2017-03-17 03:24:41 -0700</date>
            <delta_ts>2017-03-17 05:22:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-169576-20170317112439.patch</filename>
            <type>text/plain</type>
            <size>8387</size>
            <attacher name="Miguel Gomez">magomez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE0MTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDM2ZDdkZmY3YzAxOWI3
NzJjMjBhZDc4ODMwOGUxYTEyMTVjN2UxMC4uMjRlOWViNzNlOTJmY2YzNzhkOTA1ZDZjYjkyNjk3
ODIyNjViNzY2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDE3LTAzLTE3ICBNaWd1
ZWwgR29tZXogIDxtYWdvbWV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgRm9sbG93LXVwIChyMjEz
ODMzKTogd3JpdGUgYSBsYXlvdXQgdGVzdCBmb3IgMTY5MTk5CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjk1NzYKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzMxMDI0NzY2PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNhaWQgQWJvdS1IYWxsYXdhLgor
CisgICAgICAgIEFkZCBhIGZ1bmN0aW9uIHRvIEludGVybmFscyB0byBmb3JjZSB0aGUgZGVsZXRp
b24gb2YgdGhlIEltYWdlRGVjb2RlciBqdXN0IGFmdGVyCisgICAgICAgIHJlcXVlc3RpbmcgdGhl
IGFzeW5jIGRlY29kaW5nIG9mIGEgZnJhbWUsIGFuZCBpbXBsZW1lbnQgdGhhdCBiZWhhdmlvdXIg
aW4gQml0bWFwSW1hZ2UuCisKKyAgICAgICAgVGVzdDogZmFzdC9pbWFnZXMvY2xlYXItYW5pbWF0
aW9uLWRlY29kZXIuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmludGVybmFsU3RhcnRBbmlt
YXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmg6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
OjpzZXRDbGVhckRlY29kZXJBZnRlckFzeW5jRnJhbWVSZXF1ZXN0Rm9yVGVzdGluZyk6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6CisKIDIwMTctMDMtMTcgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtDYWlyb10gSGFuZGxlIHRoZSBibGVuZCBtb2RlIGluIEdyYXBoaWNz
Q29udGV4dDo6ZHJhd1BhdHRlcm4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0JpdG1hcEltYWdlLmNwcAppbmRleCBmODY2ZGY2ODI0NGNkY2VhZjQ1MzFhOWMyNWU1OGI3
YjUzZjA5NGRjLi4xMmNiZDA5YzQ3ZmQxZWU1YzExNTM0YTUyOWQzOTlkNDc4YmNjYWRlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCkBA
IC0zNTIsNiArMzUyLDggQEAgQml0bWFwSW1hZ2U6OlN0YXJ0QW5pbWF0aW9uUmVzdWx0IEJpdG1h
cEltYWdlOjppbnRlcm5hbFN0YXJ0QW5pbWF0aW9uKCkKICNlbmRpZgogCiAgICAgICAgIG1fZGVz
aXJlZEZyYW1lRGVjb2RlVGltZUZvclRlc3RpbmcgPSB0aW1lICsgc3RkOjptYXgobV9mcmFtZURl
Y29kaW5nRHVyYXRpb25Gb3JUZXN0aW5nLCAwLjBmKTsKKyAgICAgICAgaWYgKG1fY2xlYXJEZWNv
ZGVyQWZ0ZXJBc3luY0ZyYW1lUmVxdWVzdEZvclRlc3RpbmcpCisgICAgICAgICAgICBtX3NvdXJj
ZS5jbGVhcihkYXRhKCkpOwogICAgIH0KIAogICAgIEFTU0VSVCghbV9mcmFtZVRpbWVyKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oCmluZGV4IDFi
ZTEzMDE2YTQ1NGQ3YjVlNzFkODBhNjg5ZDllMTM5Mjg3NDExMmMuLjJlMDhjNGQ2NzgwNjBjYjc5
MzI3OTZhMDc5NjNlNTA3NzYwNTk1NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuaApAQCAtMTAwLDYgKzEwMCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldEZyYW1lRGVjb2RpbmdEdXJhdGlvbkZvclRlc3RpbmcoZmxvYXQgZHVyYXRpb24pIHsg
bV9mcmFtZURlY29kaW5nRHVyYXRpb25Gb3JUZXN0aW5nID0gZHVyYXRpb247IH0KICAgICBib29s
IHNob3VsZFVzZUFzeW5jRGVjb2RpbmdGb3JMYXJnZUltYWdlKCk7CiAgICAgYm9vbCBzaG91bGRV
c2VBc3luY0RlY29kaW5nRm9yQW5pbWF0ZWRJbWFnZSgpOworICAgIHZvaWQgc2V0Q2xlYXJEZWNv
ZGVyQWZ0ZXJBc3luY0ZyYW1lUmVxdWVzdEZvclRlc3RpbmcoYm9vbCB2YWx1ZSkgeyBtX2NsZWFy
RGVjb2RlckFmdGVyQXN5bmNGcmFtZVJlcXVlc3RGb3JUZXN0aW5nID0gdmFsdWU7IH0KIAogICAg
IC8vIEFjY2Vzc29ycyBmb3IgbmF0aXZlIGltYWdlIGZvcm1hdHMuCiAjaWYgVVNFKEFQUEtJVCkK
QEAgLTIxMCw2ICsyMTEsNyBAQCBwcml2YXRlOgogCiAgICAgZmxvYXQgbV9mcmFtZURlY29kaW5n
RHVyYXRpb25Gb3JUZXN0aW5nIHsgMCB9OwogICAgIGRvdWJsZSBtX2Rlc2lyZWRGcmFtZURlY29k
ZVRpbWVGb3JUZXN0aW5nIHsgMCB9OworICAgIGJvb2wgbV9jbGVhckRlY29kZXJBZnRlckFzeW5j
RnJhbWVSZXF1ZXN0Rm9yVGVzdGluZyB7IGZhbHNlIH07CiAjaWYgIUxPR19ESVNBQkxFRAogICAg
IHNpemVfdCBtX2xhdGVGcmFtZUNvdW50IHsgMCB9OwogICAgIHNpemVfdCBtX2Vhcmx5RnJhbWVD
b3VudCB7IDAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCAwOWJhYjQ4
ODFhMWNkMGIyNGI5NmI3YmNmZTJjYzZiNzQxNjlmY2E3Li4xMjZkZmM0OGMxYTI0Mjc4ZTcwZjI3
ZTUyYzAyOGIzOWU1MmJhOGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBA
IC03NDQsNiArNzQ0LDE5IEBAIHZvaWQgSW50ZXJuYWxzOjpyZXNldEltYWdlQW5pbWF0aW9uKEhU
TUxJbWFnZUVsZW1lbnQmIGVsZW1lbnQpCiAgICAgaW1hZ2UtPnJlc2V0QW5pbWF0aW9uKCk7CiB9
CiAKK3ZvaWQgSW50ZXJuYWxzOjpzZXRDbGVhckRlY29kZXJBZnRlckFzeW5jRnJhbWVSZXF1ZXN0
Rm9yVGVzdGluZyhIVE1MSW1hZ2VFbGVtZW50JiBlbGVtZW50LCBib29sIHZhbHVlKQoreworICAg
IGF1dG8qIGNhY2hlZEltYWdlID0gZWxlbWVudC5jYWNoZWRJbWFnZSgpOworICAgIGlmICghY2Fj
aGVkSW1hZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGltYWdlID0gY2FjaGVkSW1h
Z2UtPmltYWdlKCk7CisgICAgaWYgKCFpczxCaXRtYXBJbWFnZT4oaW1hZ2UpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBkb3duY2FzdDxCaXRtYXBJbWFnZT4oKmltYWdlKS5zZXRDbGVhckRlY29k
ZXJBZnRlckFzeW5jRnJhbWVSZXF1ZXN0Rm9yVGVzdGluZyh2YWx1ZSk7Cit9CisKIHZvaWQgSW50
ZXJuYWxzOjpjbGVhclBhZ2VDYWNoZSgpCiB7CiAgICAgUGFnZUNhY2hlOjpzaW5nbGV0b24oKS5w
cnVuZVRvU2l6ZU5vdygwLCBQcnVuaW5nUmVhc29uOjpOb25lKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCmluZGV4IDAwMDlmYTVhYTJmMGVlNDQ1Y2FjZDQxM2Q4MGU5NTZjMzY4MDI0MTcu
LjY4NTQ1YTQ5ZjAzOGNjMDAwYzUzMDM1ZWU2NWEwY2I0OGUzYzdiYzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaApAQCAtMTE1LDYgKzExNSw3IEBAIHB1YmxpYzoKICAgICB1bnNpZ25l
ZCBpbWFnZUZyYW1lSW5kZXgoSFRNTEltYWdlRWxlbWVudCYpOwogICAgIHZvaWQgc2V0SW1hZ2VG
cmFtZURlY29kaW5nRHVyYXRpb24oSFRNTEltYWdlRWxlbWVudCYsIGZsb2F0IGR1cmF0aW9uKTsK
ICAgICB2b2lkIHJlc2V0SW1hZ2VBbmltYXRpb24oSFRNTEltYWdlRWxlbWVudCYpOworICAgIHZv
aWQgc2V0Q2xlYXJEZWNvZGVyQWZ0ZXJBc3luY0ZyYW1lUmVxdWVzdEZvclRlc3RpbmcoSFRNTElt
YWdlRWxlbWVudCYsIGJvb2wpOwogCiAgICAgdm9pZCBjbGVhclBhZ2VDYWNoZSgpOwogICAgIHVu
c2lnbmVkIHBhZ2VDYWNoZVNpemUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAppbmRleCAzYTUwMzQ1NjZmMTUyZTE3YjBhMTRhZTkzYmY4ZDkwZTViMzBhN2E2Li41ZGMx
YjM1MGIxYWQ5ZDIwYzQzOTg0NzcyMjYyNzUyYjE0Mjg3ODgxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuaWRsCkBAIC0yNDQsNiArMjQ0LDcgQEAgZW51bSBFdmVudFRocm90dGxpbmdC
ZWhhdmlvciB7CiAgICAgdW5zaWduZWQgbG9uZyBpbWFnZUZyYW1lSW5kZXgoSFRNTEltYWdlRWxl
bWVudCBlbGVtZW50KTsKICAgICB2b2lkIHNldEltYWdlRnJhbWVEZWNvZGluZ0R1cmF0aW9uKEhU
TUxJbWFnZUVsZW1lbnQgZWxlbWVudCwgdW5yZXN0cmljdGVkIGZsb2F0IGR1cmF0aW9uKTsKICAg
ICB2b2lkIHJlc2V0SW1hZ2VBbmltYXRpb24oSFRNTEltYWdlRWxlbWVudCBlbGVtZW50KTsKKyAg
ICB2b2lkIHNldENsZWFyRGVjb2RlckFmdGVyQXN5bmNGcmFtZVJlcXVlc3RGb3JUZXN0aW5nKEhU
TUxJbWFnZUVsZW1lbnQgZWxlbWVudCwgYm9vbGVhbiB2YWx1ZSk7CiAKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgSW50ZXJuYWxTZXR0aW5ncyBzZXR0aW5nczsKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgdW5zaWduZWQgbG9uZyB3b3JrZXJUaHJlYWRDb3VudDsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0ODY3MTc1MTIxNGJj
MTNmNjdiNmFlOGIxN2YyMzM1MGJjZTZmOGQ0Li5iMjY0YTEyNmY0N2I0OTNiODM2M2VjMGJkMzVk
ZjFhMzUyMTEzY2NlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTctMDMtMTcgIE1pZ3VlbCBH
b21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBGb2xsb3ctdXAgKHIyMTM4MzMp
OiB3cml0ZSBhIGxheW91dCB0ZXN0IGZvciAxNjkxOTkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2OTU3NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MzEwMjQ3NjY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FpZCBBYm91LUhhbGxhd2EuCisKKyAg
ICAgICAgQWRkIGEgdGVzdCB0aGF0IGVuc3VyZXMgdGhlcmUncyBubyBjcmFzaCB3aGVuIGRlbGV0
aW5nIHRoZSBJbWFnZURlY29kZXIgYWZ0ZXIgcmVxdWVzdGluZworICAgICAgICBhbiBhc3luYyBk
ZWNvZGluZyBvcGVyYXRpb24uCisKKyAgICAgICAgKiBmYXN0L2ltYWdlcy9jbGVhci1hbmltYXRp
b24tZGVjb2Rlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2Ns
ZWFyLWFuaW1hdGlvbi1kZWNvZGVyLmh0bWw6IEFkZGVkLgorCiAyMDE3LTAzLTE3ICBDYXJsb3Mg
R2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
IEdUSysgZ2FyZGVuaW5nLiBNYXJrIG1lZGlhc3RyZWFtIGFuZCB3ZWJydGMgbmV3IGZhaWx1cmVz
LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvY2xlYXItYW5pbWF0aW9uLWRl
Y29kZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvY2xlYXItYW5pbWF0
aW9uLWRlY29kZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ZTE2M2NkYjMxNGQxZmM1MDlm
N2E3MDdmMWQ2YzQzOWViMTg0NTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2ltYWdlcy9jbGVhci1hbmltYXRpb24tZGVjb2Rlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw5
IEBACitFbnN1cmUgdGhhdCBjbGVhcmluZyB0aGUgaW1hZ2UgZGVjb2RlciB3aGlsZSBkZWNvZGlu
ZyBhbiBhbmltYXRpb24gZG9lc24ndCBjcmFzaC4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9jbGVhci1hbmltYXRpb24tZGVj
b2Rlci5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvY2xlYXItYW5pbWF0aW9uLWRlY29k
ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wYzE0NDVjMDgwZjU1MWJlZmUxMjgzYzQ5OWRiMmE0Y2I4YTk3
MWM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvY2xlYXItYW5p
bWF0aW9uLWRlY29kZXIuaHRtbApAQCAtMCwwICsxLDQ5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8Y2FudmFzIGlkPSJjYW52YXMi
PjwvY2FudmFzPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJFbnN1cmUgdGhh
dCBjbGVhcmluZyB0aGUgaW1hZ2UgZGVjb2RlciB3aGlsZSBkZWNvZGluZyBhbiBhbmltYXRpb24g
ZG9lc24ndCBjcmFzaC4iKTsKKyAgICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAg
ICAgaW50ZXJuYWxzLmNsZWFyTWVtb3J5Q2FjaGUoKTsKKworICAgICAgICB2YXIgaW1hZ2UgPSBu
ZXcgSW1hZ2U7CisgICAgICAgIGltYWdlLm9ubG9hZCA9IGltYWdlTG9hZGVkOworICAgICAgICBp
bWFnZS5zcmMgPSAicmVzb3VyY2VzL2FuaW1hdGVkLTEwY29sb3IuZ2lmIjsKKworICAgICAgICBm
dW5jdGlvbiBpbWFnZUxvYWRlZCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghd2luZG93
LmludGVybmFscykKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBpbnRlcm5h
bHMuc2V0SW1hZ2VGcmFtZURlY29kaW5nRHVyYXRpb24oaW1hZ2UsIDAuMDQwKTsKKyAgICAgICAg
ICAgIGludGVybmFscy5zZXRDbGVhckRlY29kZXJBZnRlckFzeW5jRnJhbWVSZXF1ZXN0Rm9yVGVz
dGluZyhpbWFnZSwgdHJ1ZSk7CisgICAgICAgICAgICBkcmF3SW1hZ2UoKTsKKyAgICAgICAgICAg
IGRyYXdMb29wKCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBkcmF3SW1hZ2UoKQor
ICAgICAgICB7CisgICAgICAgICAgICBpZiAoZHJhd0ltYWdlLmNvdW50ID09IHVuZGVmaW5lZCkK
KyAgICAgICAgICAgICAgICBkcmF3SW1hZ2UuY291bnQgPSAwOworICAgICAgICAgICAgdmFyIGNh
bnZhcyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjYW52YXMiKTsKKyAgICAgICAgICAgIHZh
ciBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgiMmQiKTsKKyAgICAgICAgICAgIGN0eC5kcmF3SW1h
Z2UoaW1hZ2UsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7CisgICAgICAgICAg
ICByZXR1cm4gKytkcmF3SW1hZ2UuY291bnQ7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlv
biBkcmF3TG9vcCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CisgICAgICAgICAgICAgICAgaWYgKGRyYXdJbWFnZSgpID09IDEwKQorICAgICAgICAgICAg
ICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgICAgICBkcmF3TG9vcCgpOworICAg
ICAgICAgICAgfSwgNTApOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>