<?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>172563</bug_id>
          
          <creation_ts>2017-05-24 17:30:20 -0700</creation_ts>
          <short_desc>Ensure ImageFrameCache does not access its BitmapImage after it is deleted</short_desc>
          <delta_ts>2017-05-25 11:22:52 -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>
          
          
          <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="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</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>1312457</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-24 17:30:20 -0700</bug_when>
    <thetext>ImageFrameCache keeps a raw pointer to its container BitmapImage named m_image. The reason for not making m_image a RefPtr is we do not want to create a cyclic reference: BitmapImage -&gt; ImageSource - &gt; ImageFrameCache -&gt; BitmapImage. But because we allow the decoding thread to continue after the BitmapImage is deleted, we need to ensure the ImageFrameCache does not keep a pointer to the BitmapImage after it is deleted. We can do that by adding a function named ImageFrameCache::clearImage() which will set m_image to null and call it from the BitmapImage destructor via the ImageSource.

This bug can cause the following crash:

WebCore::ImageFrameCache::decodedSizeChanged(long long) + 20 at ImageFrameCache.cpp:127:31
{
       124 	    if (!decodedSize || !m_image || !m_image-&gt;imageObserver())
       125 	        return;
       126 	    
    -&gt; 127 	    m_image-&gt;imageObserver()-&gt;decodedSizeChanged(*m_image, decodedSize);
       128 
}

WebCore::ImageFrameCache::decodedSizeChanged(long long) + 20 at ImageFrameCache.cpp:127:31
WebCore::ImageFrameCache::decodedSizeIncreased(unsigned decodedSize) at ImageFrameCache.cpp:246
WebCore::ImageFrameCache::cacheNativeImageAtIndex(WTF::RetainPtr&lt;CGImage*&gt;&amp;&amp;, unsigned long, WebCore::SubsamplingLevel, WebCore::DecodingOptions const&amp;, WebCore::ImageFrame::DecodingStatus) at ImageFrameCache.cpp:141
WebCore::ImageFrameCache::cacheNativeImageAtIndex(WTF::RetainPtr&lt;CGImage*&gt;&amp;&amp;, unsigned long, WebCore::SubsamplingLevel, WebCore::DecodingOptions const&amp;, WebCore::ImageFrame::DecodingStatus) at ImageFrameCache.cpp:245
WTF::Function&lt;void ()&gt;::CallableWrapper&lt;WebCore::ImageFrameCache::startAsyncDecodingQueue()::$_0::operator()() const::&apos;lambda&apos;()&gt;::call() at ImageFrameCache.cpp:256:5
WTF::Function&lt;void ()&gt;::CallableWrapper&lt;WebCore::ImageFrameCache::startAsyncDecodingQueue()::$_0::operator()() const::&apos;lambda&apos;()&gt;::call() at ImageFrameCache.cpp:305
WTF::Function&lt;void ()&gt;::CallableWrapper&lt;WebCore::ImageFrameCache::startAsyncDecodingQueue()::$_0::operator()() const::&apos;lambda&apos;()&gt;::call() at Function.h:89</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1312458</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-24 17:30:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/32385552&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1312465</commentid>
    <comment_count>2</comment_count>
      <attachid>311172</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-24 17:47:08 -0700</bug_when>
    <thetext>Created attachment 311172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1312474</commentid>
    <comment_count>3</comment_count>
      <attachid>311176</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-24 18:34:45 -0700</bug_when>
    <thetext>Created attachment 311176
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1312736</commentid>
    <comment_count>4</comment_count>
      <attachid>311247</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2017-05-25 10:59:32 -0700</bug_when>
    <thetext>Created attachment 311247
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1312751</commentid>
    <comment_count>5</comment_count>
      <attachid>311247</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-25 11:22:51 -0700</bug_when>
    <thetext>Comment on attachment 311247
Patch

Clearing flags on attachment: 311247

Committed r217437: &lt;http://trac.webkit.org/changeset/217437&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1312752</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-05-25 11:22:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311172</attachid>
            <date>2017-05-24 17:47:08 -0700</date>
            <delta_ts>2017-05-24 18:34:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172563-20170524174737.patch</filename>
            <type>text/plain</type>
            <size>5977</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzM5OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDE3LTA1LTI0ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5zdXJlIElt
YWdlRnJhbWVDYWNoZSBkb2VzIG5vdCBhY2Nlc3MgaXRzIEJpdG1hcEltYWdlIGFmdGVyIGl0IGlz
IGRlbGV0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MjU2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEEgY3Jhc2ggbWF5IGhhcHBlbiBpZiB0aGUgQml0bWFwSW1hZ2UgaXMgZGVsZXRlZCB3aGlsZSB0
aGUgZGVjb2RpbmcgdGhyZWFkCisgICAgICAgIGlzIHN0aWxsIGFjdGl2ZS4gT25jZSB0aGUgY3Vy
cmVudCBmcmFtZSBmaW5pc2hlcyBkZWNvZGluZywgdGhlIGRlY29kaW5nCisgICAgICAgIHRocmVh
ZCB3aWxsIG1ha2UgYSBjYWxsT25NYWluVGhyZWFkKCkgd2hpY2ggd2lsbCBhY2Nlc3MgdGhlIGRl
bGV0ZWQgQml0bWFwSW1hZ2UuCisKKyAgICAgICAgV2UgbmVlZCB0byBlbnN1cmUgaWYgQml0bWFw
SW1hZ2UgaXMgZGVsZXRlZCwgdGhlIHJhdyBwb2ludGVyIHdoaWNoIHJlZmVyZW5jZXMKKyAgICAg
ICAgaXQgaW4gSW1hZ2VGcmFtZUNhY2hlIGlzIGNsZWFyZWQuIElmIHRoaXMgaXMgZG9uZSwgbm90
aGluZyBlbHNlIGlzIG5lZWRlZC4KKyAgICAgICAgQWxsIGFsbCB0aGUgYWNjZXNzZXMgdG8gY29u
dGFpbmVyIEJpdG1hcEltYWdlIGluIEltYWdlRnJhbWVDYWNoZSBhcmUgZ3VhcmRlZAorICAgICAg
ICBieSBjaGVja2luZyBtX2ltYWdlIGlzIG5vdCBudWxsLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6
On5CaXRtYXBJbWFnZSk6IE1ha2Ugc3VyZSB0aGUgZGVjb2RpbmcgdGhyZWFkIHdpbGwKKyAgICAg
ICAgbm90IGhhdmUgYWNjZXNzIHRvIHRoZSBkZWxldGVkIEJpdG1hcEltYWdlIHdoZW4gaXQgZmlu
aXNoZXMgZGVjb2RpbmcgYW5kCisgICAgICAgIG1ha2UgaXRzIGNhbGxPbk1haW5UaHJlYWQoKS4K
KyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkZXN0cm95RGVjb2RlZERhdGEpOiBVc2Ug
dGhlIGZ1bmN0aW9uIG5ldyBuYW1lLgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6Omlu
dGVybmFsU3RhcnRBbmltYXRpb24pOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUZyYW1lQ2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRnJhbWVDYWNoZTo6
Y2xlYXJJbWFnZSk6IEFkZCBhIG5ldyBmdW5jdGlvbiB0byBjbGVhciB0aGUgCisgICAgICAgIHJh
dyBwb2ludGVyIG1faW1hZ2Ugd2hlbiBpdHMgaXMgZGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJj
ZTo6cmVzZXREYXRhKTogUmVuYW1lIGNsZWFyKCkgdG8gcmVzZXREYXRhKCkgZm9yIGJldHRlcgor
ICAgICAgICBjb2RlIHJlYWRhYmlsaXR5LiBUaGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlIEltYWdl
RGVjb2RlciBhbmQgY3JlYXRlcyBhIG5ldworICAgICAgICBvbmUgaWYgZGF0YSBpcyBub3QgbnVs
bC4gVGhlIHB1cnBvc2UgaXMgdG8gZGVsZXRlIHRoZSBkZWNvZGVyIHJhc3RlciBkYXRhLgorICAg
ICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmNsZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VT
b3VyY2U6OmNsZWFySW1hZ2UpOiBXcmFwcGVyIGZvciB0aGUgSW1hZ2VGcmFtZUNhY2hlIGZ1bmN0
aW9uLgorCiAyMDE3LTA1LTI0ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjIwNjQ4MSk6IERvbid0IGFzc3VtZSBmcmFt
ZUNvdW50KCkgaXMgbGFyZ2VyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNpemUgb2YgdGhlIGltYWdl
IGZyYW1lIGNhY2hlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQml0bWFwSW1hZ2UuY3BwCShyZXZpc2lvbiAyMTczMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYg
KzYyLDcgQEAgQml0bWFwSW1hZ2U6On5CaXRtYXBJbWFnZSgpCiB7CiAgICAgaW52YWxpZGF0ZVBs
YXRmb3JtRGF0YSgpOwogICAgIGNsZWFyVGltZXIoKTsKKyAgICBtX3NvdXJjZS5jbGVhckltYWdl
KCk7CiAgICAgbV9zb3VyY2Uuc3RvcEFzeW5jRGVjb2RpbmdRdWV1ZSgpOwogfQogCkBAIC05MSw3
ICs5Miw3IEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YShib28KICAgICBp
ZiAoIWRlc3Ryb3lBbGwgfHwgbV9zb3VyY2UuaGFzQXN5bmNEZWNvZGluZ1F1ZXVlKCkpCiAgICAg
ICAgIG1fc291cmNlLmNsZWFyRnJhbWVCdWZmZXJDYWNoZShtX2N1cnJlbnRGcmFtZSk7CiAgICAg
ZWxzZQotICAgICAgICBtX3NvdXJjZS5jbGVhcihkYXRhKCkpOworICAgICAgICBtX3NvdXJjZS5y
ZXNldERhdGEoZGF0YSgpKTsKIAogICAgIGludmFsaWRhdGVQbGF0Zm9ybURhdGEoKTsKIH0KQEAg
LTM5MSw3ICszOTIsNyBAQCBCaXRtYXBJbWFnZTo6U3RhcnRBbmltYXRpb25TdGF0dXMgQml0bWFw
CiAKICAgICAgICAgbV9kZXNpcmVkRnJhbWVEZWNvZGVUaW1lRm9yVGVzdGluZyA9IHRpbWUgKyBz
dGQ6Om1heChtX2ZyYW1lRGVjb2RpbmdEdXJhdGlvbkZvclRlc3RpbmcsIDBfcyk7CiAgICAgICAg
IGlmIChtX2NsZWFyRGVjb2RlckFmdGVyQXN5bmNGcmFtZVJlcXVlc3RGb3JUZXN0aW5nKQotICAg
ICAgICAgICAgbV9zb3VyY2UuY2xlYXIoZGF0YSgpKTsKKyAgICAgICAgICAgIG1fc291cmNlLnJl
c2V0RGF0YShkYXRhKCkpOwogICAgIH0KIAogICAgIEFTU0VSVCghbV9mcmFtZVRpbWVyKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVD
YWNoZS5oCShyZXZpc2lvbiAyMTczMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUZyYW1lQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBncm93RnJhbWVzKCk7CiAgICAgdm9pZCBjbGVhck1ldGFkYXRhKCk7
CiAgICAgVVJMIHNvdXJjZVVSTCgpIGNvbnN0OworICAgIHZvaWQgY2xlYXJJbWFnZSgpIHsgbV9p
bWFnZSA9IG51bGxwdHI7IH0KICAgICAKICAgICAvLyBBc3luY2hyb25vdXMgaW1hZ2UgZGVjb2Rp
bmcKICAgICB2b2lkIHN0YXJ0QXN5bmNEZWNvZGluZ1F1ZXVlKCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCShyZXZpc2lvbiAy
MTczMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTcwLDEzICs3MCw2IEBAIHZvaWQgSW1hZ2VTb3VyY2U6OmNs
ZWFyRnJhbWVCdWZmZXJDYWNoZSgKICAgICBtX2RlY29kZXItPmNsZWFyRnJhbWVCdWZmZXJDYWNo
ZShjbGVhckJlZm9yZUZyYW1lKTsKIH0KIAotdm9pZCBJbWFnZVNvdXJjZTo6Y2xlYXIoU2hhcmVk
QnVmZmVyKiBkYXRhKQotewotICAgIG1fZGVjb2RlciA9IG51bGxwdHI7Ci0gICAgbV9mcmFtZUNh
Y2hlLT5zZXREZWNvZGVyKG51bGxwdHIpOwotICAgIHNldERhdGEoZGF0YSwgaXNBbGxEYXRhUmVj
ZWl2ZWQoKSk7Ci19Ci0KIGJvb2wgSW1hZ2VTb3VyY2U6OmVuc3VyZURlY29kZXJBdmFpbGFibGUo
U2hhcmVkQnVmZmVyKiBkYXRhKQogewogICAgIGlmICghZGF0YSB8fCBpc0RlY29kZXJBdmFpbGFi
bGUoKSkKQEAgLTExMSw2ICsxMDQsMTMgQEAgdm9pZCBJbWFnZVNvdXJjZTo6c2V0RGF0YShTaGFy
ZWRCdWZmZXIqIAogICAgIG1fZGVjb2Rlci0+c2V0RGF0YSgqZGF0YSwgYWxsRGF0YVJlY2VpdmVk
KTsKIH0KIAordm9pZCBJbWFnZVNvdXJjZTo6cmVzZXREYXRhKFNoYXJlZEJ1ZmZlciogZGF0YSkK
K3sKKyAgICBtX2RlY29kZXIgPSBudWxscHRyOworICAgIG1fZnJhbWVDYWNoZS0+c2V0RGVjb2Rl
cihudWxscHRyKTsKKyAgICBzZXREYXRhKGRhdGEsIGlzQWxsRGF0YVJlY2VpdmVkKCkpOworfQor
CiBFbmNvZGVkRGF0YVN0YXR1cyBJbWFnZVNvdXJjZTo6ZGF0YUNoYW5nZWQoU2hhcmVkQnVmZmVy
KiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKIHsKICNpZiBQTEFURk9STShJT1MpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmgJKHJl
dmlzaW9uIDIxNzMwMykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
U291cmNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDEzICs1OCwxNCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkZXN0cm95QWxsRGVjb2RlZERhdGFFeGNsdWRlRnJhbWUoc2l6ZV90IGV4Y2x1ZGVGcmFt
ZSkgeyBtX2ZyYW1lQ2FjaGUtPmRlc3Ryb3lBbGxEZWNvZGVkRGF0YUV4Y2x1ZGVGcmFtZShleGNs
dWRlRnJhbWUpOyB9CiAgICAgdm9pZCBkZXN0cm95RGVjb2RlZERhdGFCZWZvcmVGcmFtZShzaXpl
X3QgYmVmb3JlRnJhbWUpIHsgbV9mcmFtZUNhY2hlLT5kZXN0cm95RGVjb2RlZERhdGFCZWZvcmVG
cmFtZShiZWZvcmVGcmFtZSk7IH0KICAgICB2b2lkIGRlc3Ryb3lJbmNvbXBsZXRlRGVjb2RlZERh
dGEoKSB7IG1fZnJhbWVDYWNoZS0+ZGVzdHJveUluY29tcGxldGVEZWNvZGVkRGF0YSgpOyB9Cisg
ICAgdm9pZCBjbGVhckltYWdlKCkgeyBtX2ZyYW1lQ2FjaGUtPmNsZWFySW1hZ2UoKTsgfQogICAg
IHZvaWQgY2xlYXJGcmFtZUJ1ZmZlckNhY2hlKHNpemVfdCk7Ci0gICAgdm9pZCBjbGVhcihTaGFy
ZWRCdWZmZXIqIGRhdGEpOwogCiAgICAgYm9vbCBlbnN1cmVEZWNvZGVyQXZhaWxhYmxlKFNoYXJl
ZEJ1ZmZlciopOwogICAgIGJvb2wgaXNEZWNvZGVyQXZhaWxhYmxlKCkgY29uc3QgeyByZXR1cm4g
bV9kZWNvZGVyLmdldCgpOyB9CiAKICAgICB2b2lkIHNldERhdGEoU2hhcmVkQnVmZmVyKiBkYXRh
LCBib29sIGFsbERhdGFSZWNlaXZlZCk7CisgICAgdm9pZCByZXNldERhdGEoU2hhcmVkQnVmZmVy
KiBkYXRhKTsKICAgICBFbmNvZGVkRGF0YVN0YXR1cyBkYXRhQ2hhbmdlZChTaGFyZWRCdWZmZXIq
IGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKTsKIAogICAgIHVuc2lnbmVkIGRlY29kZWRTaXpl
KCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUNhY2hlLT5kZWNvZGVkU2l6ZSgpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311176</attachid>
            <date>2017-05-24 18:34:45 -0700</date>
            <delta_ts>2017-05-25 10:59:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172563-20170524183513.patch</filename>
            <type>text/plain</type>
            <size>10392</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzQwMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE3LTA1LTI0ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5zdXJlIElt
YWdlRnJhbWVDYWNoZSBkb2VzIG5vdCBhY2Nlc3MgaXRzIEJpdG1hcEltYWdlIGFmdGVyIGl0IGlz
IGRlbGV0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MjU2MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEEgY3Jhc2ggbWF5IGhhcHBlbiBpZiB0aGUgQml0bWFwSW1hZ2UgaXMgZGVsZXRlZCB3aGlsZSB0
aGUgZGVjb2RpbmcgdGhyZWFkCisgICAgICAgIGlzIHN0aWxsIGFjdGl2ZS4gT25jZSB0aGUgY3Vy
cmVudCBmcmFtZSBmaW5pc2hlcyBkZWNvZGluZywgdGhlIGRlY29kaW5nCisgICAgICAgIHRocmVh
ZCB3aWxsIG1ha2UgYSBjYWxsT25NYWluVGhyZWFkKCkgd2hpY2ggd2lsbCBhY2Nlc3MgdGhlIGRl
bGV0ZWQgQml0bWFwSW1hZ2UuCisKKyAgICAgICAgV2UgbmVlZCB0byBlbnN1cmUgaWYgQml0bWFw
SW1hZ2UgaXMgZGVsZXRlZCwgdGhlIHJhdyBwb2ludGVyIHdoaWNoIHJlZmVyZW5jZXMKKyAgICAg
ICAgaXQgaW4gSW1hZ2VGcmFtZUNhY2hlIGlzIGNsZWFyZWQuIElmIHRoaXMgaXMgZG9uZSwgbm90
aGluZyBlbHNlIGlzIG5lZWRlZC4KKyAgICAgICAgQWxsIGFsbCB0aGUgYWNjZXNzZXMgdG8gY29u
dGFpbmVyIEJpdG1hcEltYWdlIGluIEltYWdlRnJhbWVDYWNoZSBhcmUgZ3VhcmRlZAorICAgICAg
ICBieSBjaGVja2luZyBtX2ltYWdlIGlzIG5vdCBudWxsLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6
On5CaXRtYXBJbWFnZSk6IE1ha2Ugc3VyZSB0aGUgZGVjb2RpbmcgdGhyZWFkIHdpbGwKKyAgICAg
ICAgbm90IGhhdmUgYWNjZXNzIHRvIHRoZSBkZWxldGVkIEJpdG1hcEltYWdlIHdoZW4gaXQgZmlu
aXNoZXMgZGVjb2RpbmcgYW5kCisgICAgICAgIG1ha2UgaXRzIGNhbGxPbk1haW5UaHJlYWQoKS4K
KyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkZXN0cm95RGVjb2RlZERhdGEpOiBVc2Ug
dGhlIGZ1bmN0aW9uIG5ldyBuYW1lLgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6Omlu
dGVybmFsU3RhcnRBbmltYXRpb24pOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9JbWFnZUZyYW1lQ2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFtZUNhY2hl
OjpzdGFydEFzeW5jRGVjb2RpbmdRdWV1ZSk6IFByb3RlY3QgdGhlIHNvdXJjZVVSTAorICAgICAg
ICBmb3IgdGhlIGRlY29kaW5nIHRocmVhZC4gSW1hZ2VGcmFtZUNhY2hlOjpzb3VyY2VVUkwoKSBj
aGVja3MgZm9yIHRoZSB2YWx1ZQorICAgICAgICBvZiBtX2ltYWdlIHdoaWNoIG5vdyBtYXkgY2hh
bmdlIGZyb20gdGhlIG1haW4gdGhyZWFkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlRnJhbWVDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VGcmFtZUNhY2hlOjpjbGVh
ckltYWdlKTogQWRkIGEgbmV3IGZ1bmN0aW9uIHRvIGNsZWFyIHRoZSAKKyAgICAgICAgcmF3IHBv
aW50ZXIgbV9pbWFnZSB3aGVuIGl0cyBpcyBkZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ltYWdlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpy
ZXNldERhdGEpOiBSZW5hbWUgY2xlYXIoKSB0byByZXNldERhdGEoKSBmb3IgYmV0dGVyCisgICAg
ICAgIGNvZGUgcmVhZGFiaWxpdHkuIFRoaXMgZnVuY3Rpb24gZGVsZXRlcyB0aGUgSW1hZ2VEZWNv
ZGVyIGFuZCBjcmVhdGVzIGEgbmV3CisgICAgICAgIG9uZSBpZiBkYXRhIGlzIG5vdCBudWxsLiBU
aGUgcHVycG9zZSBpcyB0byBkZWxldGUgdGhlIGRlY29kZXIgcmFzdGVyIGRhdGEuCisgICAgICAg
IChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6Y2xlYXIpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJj
ZTo6Y2xlYXJJbWFnZSk6IFdyYXBwZXIgZm9yIHRoZSBJbWFnZUZyYW1lQ2FjaGUgZnVuY3Rpb24u
CisKIDIwMTctMDUtMjQgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjA2NDgxKTogRG9uJ3QgYXNzdW1lIGZyYW1lQ291
bnQoKSBpcyBsYXJnZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgc2l6ZSBvZiB0aGUgaW1hZ2UgZnJh
bWUgY2FjaGUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcElt
YWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9C
aXRtYXBJbWFnZS5jcHAJKHJldmlzaW9uIDIxNzMwMykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiArNjIs
NyBAQCBCaXRtYXBJbWFnZTo6fkJpdG1hcEltYWdlKCkKIHsKICAgICBpbnZhbGlkYXRlUGxhdGZv
cm1EYXRhKCk7CiAgICAgY2xlYXJUaW1lcigpOworICAgIG1fc291cmNlLmNsZWFySW1hZ2UoKTsK
ICAgICBtX3NvdXJjZS5zdG9wQXN5bmNEZWNvZGluZ1F1ZXVlKCk7CiB9CiAKQEAgLTkxLDcgKzky
LDcgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZGVzdHJveURlY29kZWREYXRhKGJvbwogICAgIGlmICgh
ZGVzdHJveUFsbCB8fCBtX3NvdXJjZS5oYXNBc3luY0RlY29kaW5nUXVldWUoKSkKICAgICAgICAg
bV9zb3VyY2UuY2xlYXJGcmFtZUJ1ZmZlckNhY2hlKG1fY3VycmVudEZyYW1lKTsKICAgICBlbHNl
Ci0gICAgICAgIG1fc291cmNlLmNsZWFyKGRhdGEoKSk7CisgICAgICAgIG1fc291cmNlLnJlc2V0
RGF0YShkYXRhKCkpOwogCiAgICAgaW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpOwogfQpAQCAtMzkx
LDcgKzM5Miw3IEBAIEJpdG1hcEltYWdlOjpTdGFydEFuaW1hdGlvblN0YXR1cyBCaXRtYXAKIAog
ICAgICAgICBtX2Rlc2lyZWRGcmFtZURlY29kZVRpbWVGb3JUZXN0aW5nID0gdGltZSArIHN0ZDo6
bWF4KG1fZnJhbWVEZWNvZGluZ0R1cmF0aW9uRm9yVGVzdGluZywgMF9zKTsKICAgICAgICAgaWYg
KG1fY2xlYXJEZWNvZGVyQWZ0ZXJBc3luY0ZyYW1lUmVxdWVzdEZvclRlc3RpbmcpCi0gICAgICAg
ICAgICBtX3NvdXJjZS5jbGVhcihkYXRhKCkpOworICAgICAgICAgICAgbV9zb3VyY2UucmVzZXRE
YXRhKGRhdGEoKSk7CiAgICAgfQogCiAgICAgQVNTRVJUKCFtX2ZyYW1lVGltZXIpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUZyYW1lQ2Fj
aGUuY3BwCShyZXZpc2lvbiAyMTczMDMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZUZyYW1lQ2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzksOSArMjc5LDEw
IEBAIHZvaWQgSW1hZ2VGcmFtZUNhY2hlOjpzdGFydEFzeW5jRGVjb2RpbmcKICAgICBSZWY8SW1h
Z2VGcmFtZUNhY2hlPiBwcm90ZWN0ZWRUaGlzID0gUmVmPEltYWdlRnJhbWVDYWNoZT4oKnRoaXMp
OwogICAgIFJlZjxXb3JrUXVldWU+IHByb3RlY3RlZFF1ZXVlID0gZGVjb2RpbmdRdWV1ZSgpOwog
ICAgIFJlZjxJbWFnZURlY29kZXI+IHByb3RlY3RlZERlY29kZXIgPSBSZWY8SW1hZ2VEZWNvZGVy
PigqbV9kZWNvZGVyKTsKKyAgICBTdHJpbmcgcHJvdGVjdGVkU291cmNlVVJMID0gcHJvdGVjdGVk
VGhpcy0+c291cmNlVVJMKCkuc3RyaW5nKCk7CiAKICAgICAvLyBXZSBuZWVkIHRvIHByb3RlY3Qg
dGhpcywgbV9kZWNvZGluZ1F1ZXVlIGFuZCBtX2RlY29kZXIgZnJvbSBiZWluZyBkZWxldGVkIHdo
aWxlIHdlIGFyZSBpbiB0aGUgZGVjb2RpbmcgbG9vcC4KLSAgICBkZWNvZGluZ1F1ZXVlKCktPmRp
c3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgcHJvdGVjdGVk
UXVldWUgPSBXVEZNb3ZlKHByb3RlY3RlZFF1ZXVlKSwgcHJvdGVjdGVkRGVjb2RlciA9IFdURk1v
dmUocHJvdGVjdGVkRGVjb2RlcildIHsKKyAgICBkZWNvZGluZ1F1ZXVlKCktPmRpc3BhdGNoKFtw
cm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlzKSwgcHJvdGVjdGVkUXVldWUgPSBX
VEZNb3ZlKHByb3RlY3RlZFF1ZXVlKSwgcHJvdGVjdGVkRGVjb2RlciA9IFdURk1vdmUocHJvdGVj
dGVkRGVjb2RlciksIHByb3RlY3RlZFNvdXJjZVVSTF0gewogICAgICAgICBJbWFnZUZyYW1lUmVx
dWVzdCBmcmFtZVJlcXVlc3Q7CiAKICAgICAgICAgd2hpbGUgKHByb3RlY3RlZFRoaXMtPm1fZnJh
bWVSZXF1ZXN0UXVldWUuZGVxdWV1ZShmcmFtZVJlcXVlc3QpKSB7CkBAIC0yOTAsMjEgKzI5MSwy
MSBAQCB2b2lkIEltYWdlRnJhbWVDYWNoZTo6c3RhcnRBc3luY0RlY29kaW5nCiAgICAgICAgICAg
ICAvLyBHZXQgdGhlIGZyYW1lIE5hdGl2ZUltYWdlIG9uIHRoZSBkZWNvZGluZyB0aHJlYWQuCiAg
ICAgICAgICAgICBOYXRpdmVJbWFnZVB0ciBuYXRpdmVJbWFnZSA9IHByb3RlY3RlZERlY29kZXIt
PmNyZWF0ZUZyYW1lSW1hZ2VBdEluZGV4KGZyYW1lUmVxdWVzdC5pbmRleCwgZnJhbWVSZXF1ZXN0
LnN1YnNhbXBsaW5nTGV2ZWwsIGZyYW1lUmVxdWVzdC5kZWNvZGluZ09wdGlvbnMpOwogICAgICAg
ICAgICAgaWYgKG5hdGl2ZUltYWdlKQotICAgICAgICAgICAgICAgIExPRyhJbWFnZXMsICJJbWFn
ZUZyYW1lQ2FjaGU6OiVzIC0gJXAgLSB1cmw6ICVzIFtmcmFtZSAlbGQgaGFzIGJlZW4gZGVjb2Rl
ZF0iLCBfX0ZVTkNUSU9OX18sIHByb3RlY3RlZFRoaXMucHRyKCksIHByb3RlY3RlZFRoaXMtPnNv
dXJjZVVSTCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGZyYW1lUmVxdWVzdC5pbmRleCk7Cisg
ICAgICAgICAgICAgICAgTE9HKEltYWdlcywgIkltYWdlRnJhbWVDYWNoZTo6JXMgLSAlcCAtIHVy
bDogJXMgW2ZyYW1lICVsZCBoYXMgYmVlbiBkZWNvZGVkXSIsIF9fRlVOQ1RJT05fXywgcHJvdGVj
dGVkVGhpcy5wdHIoKSwgcHJvdGVjdGVkU291cmNlVVJMLnV0ZjgoKS5kYXRhKCksIGZyYW1lUmVx
dWVzdC5pbmRleCk7CiAgICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICBMT0coSW1h
Z2VzLCAiSW1hZ2VGcmFtZUNhY2hlOjolcyAtICVwIC0gdXJsOiAlcyBbZGVjb2RpbmcgZm9yIGZy
YW1lICVsZCBoYXMgZmFpbGVkXSIsIF9fRlVOQ1RJT05fXywgcHJvdGVjdGVkVGhpcy5wdHIoKSwg
cHJvdGVjdGVkVGhpcy0+c291cmNlVVJMKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgZnJhbWVS
ZXF1ZXN0LmluZGV4KTsKKyAgICAgICAgICAgICAgICBMT0coSW1hZ2VzLCAiSW1hZ2VGcmFtZUNh
Y2hlOjolcyAtICVwIC0gdXJsOiAlcyBbZGVjb2RpbmcgZm9yIGZyYW1lICVsZCBoYXMgZmFpbGVk
XSIsIF9fRlVOQ1RJT05fXywgcHJvdGVjdGVkVGhpcy5wdHIoKSwgcHJvdGVjdGVkU291cmNlVVJM
LnV0ZjgoKS5kYXRhKCksIGZyYW1lUmVxdWVzdC5pbmRleCk7CiAgICAgICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIC8vIFVwZGF0ZSB0aGUgY2FjaGVk
IGZyYW1lcyBvbiB0aGUgbWFpbiB0aHJlYWQgdG8gYXZvaWQgdXBkYXRpbmcgdGhlIE1lbW9yeUNh
Y2hlIGZyb20gYSBkaWZmZXJlbnQgdGhyZWFkLgotICAgICAgICAgICAgY2FsbE9uTWFpblRocmVh
ZChbcHJvdGVjdGVkVGhpcyA9IHByb3RlY3RlZFRoaXMuY29weVJlZigpLCBwcm90ZWN0ZWRRdWV1
ZSA9IHByb3RlY3RlZFF1ZXVlLmNvcHlSZWYoKSwgcHJvdGVjdGVkRGVjb2RlciA9IHByb3RlY3Rl
ZERlY29kZXIuY29weVJlZigpLCBuYXRpdmVJbWFnZSA9IFdURk1vdmUobmF0aXZlSW1hZ2UpLCBm
cmFtZVJlcXVlc3RdICgpIG11dGFibGUgeworICAgICAgICAgICAgY2FsbE9uTWFpblRocmVhZChb
cHJvdGVjdGVkVGhpcyA9IHByb3RlY3RlZFRoaXMuY29weVJlZigpLCBwcm90ZWN0ZWRRdWV1ZSA9
IHByb3RlY3RlZFF1ZXVlLmNvcHlSZWYoKSwgcHJvdGVjdGVkRGVjb2RlciA9IHByb3RlY3RlZERl
Y29kZXIuY29weVJlZigpLCBuYXRpdmVJbWFnZSA9IFdURk1vdmUobmF0aXZlSW1hZ2UpLCBwcm90
ZWN0ZWRTb3VyY2VVUkwsIGZyYW1lUmVxdWVzdF0gKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICAg
ICAgLy8gVGhlIHF1ZXVlIG1heSBoYXZlIGJlZW4gY2xvc2VkIGlmIGFmdGVyIHdlIGdvdCB0aGUg
ZnJhbWUgTmF0aXZlSW1hZ2UsIHN0b3BBc3luY0RlY29kaW5nUXVldWUoKSB3YXMgY2FsbGVkLgog
ICAgICAgICAgICAgICAgIGlmIChwcm90ZWN0ZWRRdWV1ZS5wdHIoKSA9PSBwcm90ZWN0ZWRUaGlz
LT5tX2RlY29kaW5nUXVldWUgJiYgcHJvdGVjdGVkRGVjb2Rlci5wdHIoKSA9PSBwcm90ZWN0ZWRU
aGlzLT5tX2RlY29kZXIpIHsKICAgICAgICAgICAgICAgICAgICAgQVNTRVJUKHByb3RlY3RlZFRo
aXMtPm1fZnJhbWVDb21taXRRdWV1ZS5maXJzdCgpID09IGZyYW1lUmVxdWVzdCk7CiAgICAgICAg
ICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fZnJhbWVDb21taXRRdWV1ZS5yZW1vdmVGaXJz
dCgpOwogICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5jYWNoZU5hdGl2ZUltYWdl
QXRJbmRleEFzeW5jKFdURk1vdmUobmF0aXZlSW1hZ2UpLCBmcmFtZVJlcXVlc3QuaW5kZXgsIGZy
YW1lUmVxdWVzdC5zdWJzYW1wbGluZ0xldmVsLCBmcmFtZVJlcXVlc3QuZGVjb2RpbmdPcHRpb25z
LCBmcmFtZVJlcXVlc3QuZGVjb2RpbmdTdGF0dXMpOwogICAgICAgICAgICAgICAgIH0gZWxzZQot
ICAgICAgICAgICAgICAgICAgICBMT0coSW1hZ2VzLCAiSW1hZ2VGcmFtZUNhY2hlOjolcyAtICVw
IC0gdXJsOiAlcyBbZnJhbWUgJWxkIHdpbGwgbm90IGNhY2hlZF0iLCBfX0ZVTkNUSU9OX18sIHBy
b3RlY3RlZFRoaXMucHRyKCksIHByb3RlY3RlZFRoaXMtPnNvdXJjZVVSTCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCksIGZyYW1lUmVxdWVzdC5pbmRleCk7CisgICAgICAgICAgICAgICAgICAgIExP
RyhJbWFnZXMsICJJbWFnZUZyYW1lQ2FjaGU6OiVzIC0gJXAgLSB1cmw6ICVzIFtmcmFtZSAlbGQg
d2lsbCBub3QgY2FjaGVkXSIsIF9fRlVOQ1RJT05fXywgcHJvdGVjdGVkVGhpcy5wdHIoKSwgcHJv
dGVjdGVkU291cmNlVVJMLnV0ZjgoKS5kYXRhKCksIGZyYW1lUmVxdWVzdC5pbmRleCk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgfQogICAgIH0pOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmgJKHJldmlzaW9uIDIxNzMw
MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC02Nyw4ICs2Nyw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZ3Jv
d0ZyYW1lcygpOwogICAgIHZvaWQgY2xlYXJNZXRhZGF0YSgpOworICAgIHZvaWQgY2xlYXJJbWFn
ZSgpIHsgbV9pbWFnZSA9IG51bGxwdHI7IH0KICAgICBVUkwgc291cmNlVVJMKCkgY29uc3Q7Ci0g
ICAgCisKICAgICAvLyBBc3luY2hyb25vdXMgaW1hZ2UgZGVjb2RpbmcKICAgICB2b2lkIHN0YXJ0
QXN5bmNEZWNvZGluZ1F1ZXVlKCk7CiAgICAgdm9pZCByZXF1ZXN0RnJhbWVBc3luY0RlY29kaW5n
QXRJbmRleChzaXplX3QsIFN1YnNhbXBsaW5nTGV2ZWwsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8SW50
U2l6ZT4mKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291
cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVNvdXJjZS5jcHAJKHJldmlzaW9uIDIxNzMwMykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzAsMTMgKzcw
LDYgQEAgdm9pZCBJbWFnZVNvdXJjZTo6Y2xlYXJGcmFtZUJ1ZmZlckNhY2hlKAogICAgIG1fZGVj
b2Rlci0+Y2xlYXJGcmFtZUJ1ZmZlckNhY2hlKGNsZWFyQmVmb3JlRnJhbWUpOwogfQogCi12b2lk
IEltYWdlU291cmNlOjpjbGVhcihTaGFyZWRCdWZmZXIqIGRhdGEpCi17Ci0gICAgbV9kZWNvZGVy
ID0gbnVsbHB0cjsKLSAgICBtX2ZyYW1lQ2FjaGUtPnNldERlY29kZXIobnVsbHB0cik7Ci0gICAg
c2V0RGF0YShkYXRhLCBpc0FsbERhdGFSZWNlaXZlZCgpKTsKLX0KLQogYm9vbCBJbWFnZVNvdXJj
ZTo6ZW5zdXJlRGVjb2RlckF2YWlsYWJsZShTaGFyZWRCdWZmZXIqIGRhdGEpCiB7CiAgICAgaWYg
KCFkYXRhIHx8IGlzRGVjb2RlckF2YWlsYWJsZSgpKQpAQCAtMTExLDYgKzEwNCwxMyBAQCB2b2lk
IEltYWdlU291cmNlOjpzZXREYXRhKFNoYXJlZEJ1ZmZlciogCiAgICAgbV9kZWNvZGVyLT5zZXRE
YXRhKCpkYXRhLCBhbGxEYXRhUmVjZWl2ZWQpOwogfQogCit2b2lkIEltYWdlU291cmNlOjpyZXNl
dERhdGEoU2hhcmVkQnVmZmVyKiBkYXRhKQoreworICAgIG1fZGVjb2RlciA9IG51bGxwdHI7Cisg
ICAgbV9mcmFtZUNhY2hlLT5zZXREZWNvZGVyKG51bGxwdHIpOworICAgIHNldERhdGEoZGF0YSwg
aXNBbGxEYXRhUmVjZWl2ZWQoKSk7Cit9CisKIEVuY29kZWREYXRhU3RhdHVzIEltYWdlU291cmNl
OjpkYXRhQ2hhbmdlZChTaGFyZWRCdWZmZXIqIGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKQog
ewogI2lmIFBMQVRGT1JNKElPUykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ltYWdlU291cmNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAkocmV2aXNpb24gMjE3MzAzKQorKysgU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNTgs
MTMgKzU4LDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIGRlc3Ryb3lBbGxEZWNvZGVkRGF0YUV4Y2x1
ZGVGcmFtZShzaXplX3QgZXhjbHVkZUZyYW1lKSB7IG1fZnJhbWVDYWNoZS0+ZGVzdHJveUFsbERl
Y29kZWREYXRhRXhjbHVkZUZyYW1lKGV4Y2x1ZGVGcmFtZSk7IH0KICAgICB2b2lkIGRlc3Ryb3lE
ZWNvZGVkRGF0YUJlZm9yZUZyYW1lKHNpemVfdCBiZWZvcmVGcmFtZSkgeyBtX2ZyYW1lQ2FjaGUt
PmRlc3Ryb3lEZWNvZGVkRGF0YUJlZm9yZUZyYW1lKGJlZm9yZUZyYW1lKTsgfQogICAgIHZvaWQg
ZGVzdHJveUluY29tcGxldGVEZWNvZGVkRGF0YSgpIHsgbV9mcmFtZUNhY2hlLT5kZXN0cm95SW5j
b21wbGV0ZURlY29kZWREYXRhKCk7IH0KKyAgICB2b2lkIGNsZWFySW1hZ2UoKSB7IG1fZnJhbWVD
YWNoZS0+Y2xlYXJJbWFnZSgpOyB9CiAgICAgdm9pZCBjbGVhckZyYW1lQnVmZmVyQ2FjaGUoc2l6
ZV90KTsKLSAgICB2b2lkIGNsZWFyKFNoYXJlZEJ1ZmZlciogZGF0YSk7CiAKICAgICBib29sIGVu
c3VyZURlY29kZXJBdmFpbGFibGUoU2hhcmVkQnVmZmVyKik7CiAgICAgYm9vbCBpc0RlY29kZXJB
dmFpbGFibGUoKSBjb25zdCB7IHJldHVybiBtX2RlY29kZXIuZ2V0KCk7IH0KIAogICAgIHZvaWQg
c2V0RGF0YShTaGFyZWRCdWZmZXIqIGRhdGEsIGJvb2wgYWxsRGF0YVJlY2VpdmVkKTsKKyAgICB2
b2lkIHJlc2V0RGF0YShTaGFyZWRCdWZmZXIqIGRhdGEpOwogICAgIEVuY29kZWREYXRhU3RhdHVz
IGRhdGFDaGFuZ2VkKFNoYXJlZEJ1ZmZlciogZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpOwog
CiAgICAgdW5zaWduZWQgZGVjb2RlZFNpemUoKSBjb25zdCB7IHJldHVybiBtX2ZyYW1lQ2FjaGUt
PmRlY29kZWRTaXplKCk7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>311247</attachid>
            <date>2017-05-25 10:59:32 -0700</date>
            <delta_ts>2017-05-25 11:22:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172563-20170525110001.patch</filename>
            <type>text/plain</type>
            <size>10562</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxNzQzMikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQwIEBACisyMDE3LTA1LTI1ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgRW5zdXJlIElt
YWdlRnJhbWVDYWNoZSBkb2VzIG5vdCBhY2Nlc3MgaXRzIEJpdG1hcEltYWdlIGFmdGVyIGl0IGlz
IGRlbGV0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3MjU2MworCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBB
IGNyYXNoIG1heSBoYXBwZW4gaWYgdGhlIEJpdG1hcEltYWdlIGlzIGRlbGV0ZWQgd2hpbGUgdGhl
IGRlY29kaW5nIHRocmVhZAorICAgICAgICBpcyBzdGlsbCBhY3RpdmUuIE9uY2UgdGhlIGN1cnJl
bnQgZnJhbWUgZmluaXNoZXMgZGVjb2RpbmcsIHRoZSBkZWNvZGluZworICAgICAgICB0aHJlYWQg
d2lsbCBtYWtlIGEgY2FsbE9uTWFpblRocmVhZCgpIHdoaWNoIHdpbGwgYWNjZXNzIHRoZSBkZWxl
dGVkIEJpdG1hcEltYWdlLgorCisgICAgICAgIFdlIG5lZWQgdG8gZW5zdXJlIGlmIEJpdG1hcElt
YWdlIGlzIGRlbGV0ZWQsIHRoZSByYXcgcG9pbnRlciB3aGljaCByZWZlcmVuY2VzCisgICAgICAg
IGl0IGluIEltYWdlRnJhbWVDYWNoZSBpcyBjbGVhcmVkLiBJZiB0aGlzIGlzIGRvbmUsIG5vdGhp
bmcgZWxzZSBpcyBuZWVkZWQuCisgICAgICAgIEFsbCBhbGwgdGhlIGFjY2Vzc2VzIHRvIGNvbnRh
aW5lciBCaXRtYXBJbWFnZSBpbiBJbWFnZUZyYW1lQ2FjaGUgYXJlIGd1YXJkZWQKKyAgICAgICAg
YnkgY2hlY2tpbmcgbV9pbWFnZSBpcyBub3QgbnVsbC4KKworICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0JpdG1hcEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjp+
Qml0bWFwSW1hZ2UpOiBNYWtlIHN1cmUgdGhlIGRlY29kaW5nIHRocmVhZCB3aWxsCisgICAgICAg
IG5vdCBoYXZlIGFjY2VzcyB0byB0aGUgZGVsZXRlZCBCaXRtYXBJbWFnZSB3aGVuIGl0IGZpbmlz
aGVzIGRlY29kaW5nIGFuZAorICAgICAgICBtYWtlIGl0cyBjYWxsT25NYWluVGhyZWFkKCkuCisg
ICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZGVzdHJveURlY29kZWREYXRhKTogVXNlIHRo
ZSBmdW5jdGlvbiBuZXcgbmFtZS4KKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjppbnRl
cm5hbFN0YXJ0QW5pbWF0aW9uKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VGcmFtZUNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRnJhbWVDYWNoZTo6
c3RhcnRBc3luY0RlY29kaW5nUXVldWUpOiBQcm90ZWN0IHRoZSBzb3VyY2VVUkwKKyAgICAgICAg
Zm9yIHRoZSBkZWNvZGluZyB0aHJlYWQuIEltYWdlRnJhbWVDYWNoZTo6c291cmNlVVJMKCkgY2hl
Y2tzIGZvciB0aGUgdmFsdWUKKyAgICAgICAgb2YgbV9pbWFnZSB3aGljaCBub3cgbWF5IGNoYW5n
ZSBmcm9tIHRoZSBtYWluIHRocmVhZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUZyYW1lQ2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRnJhbWVDYWNoZTo6Y2xlYXJJ
bWFnZSk6IEFkZCBhIG5ldyBmdW5jdGlvbiB0byBjbGVhciB0aGUgCisgICAgICAgIHJhdyBwb2lu
dGVyIG1faW1hZ2Ugd2hlbiBpdHMgaXMgZGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6cmVz
ZXREYXRhKTogUmVuYW1lIGNsZWFyKCkgdG8gcmVzZXREYXRhKCkgZm9yIGJldHRlcgorICAgICAg
ICBjb2RlIHJlYWRhYmlsaXR5LiBUaGlzIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlIEltYWdlRGVjb2Rl
ciBhbmQgY3JlYXRlcyBhIG5ldworICAgICAgICBvbmUgaWYgZGF0YSBpcyBub3QgbnVsbC4gVGhl
IHB1cnBvc2UgaXMgdG8gZGVsZXRlIHRoZSBkZWNvZGVyIHJhc3RlciBkYXRhLgorICAgICAgICAo
V2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmNsZWFyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6
OmNsZWFySW1hZ2UpOiBXcmFwcGVyIGZvciB0aGUgSW1hZ2VGcmFtZUNhY2hlIGZ1bmN0aW9uLgor
CiAyMDE3LTA1LTI1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFNvbWUgPGNocm9ubz4gYW5kIFByb2dyZXNzVHJhY2tlciBjbGVhbnVwCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCShy
ZXZpc2lvbiAyMTc0MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRt
YXBJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyLDYgKzYyLDcgQEAgQml0bWFwSW1hZ2U6
On5CaXRtYXBJbWFnZSgpCiB7CiAgICAgaW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpOwogICAgIGNs
ZWFyVGltZXIoKTsKKyAgICBtX3NvdXJjZS5jbGVhckltYWdlKCk7CiAgICAgbV9zb3VyY2Uuc3Rv
cEFzeW5jRGVjb2RpbmdRdWV1ZSgpOwogfQogCkBAIC05MSw3ICs5Miw3IEBAIHZvaWQgQml0bWFw
SW1hZ2U6OmRlc3Ryb3lEZWNvZGVkRGF0YShib28KICAgICBpZiAoIWRlc3Ryb3lBbGwgfHwgbV9z
b3VyY2UuaGFzQXN5bmNEZWNvZGluZ1F1ZXVlKCkpCiAgICAgICAgIG1fc291cmNlLmNsZWFyRnJh
bWVCdWZmZXJDYWNoZShtX2N1cnJlbnRGcmFtZSk7CiAgICAgZWxzZQotICAgICAgICBtX3NvdXJj
ZS5jbGVhcihkYXRhKCkpOworICAgICAgICBtX3NvdXJjZS5yZXNldERhdGEoZGF0YSgpKTsKIAog
ICAgIGludmFsaWRhdGVQbGF0Zm9ybURhdGEoKTsKIH0KQEAgLTM5MSw3ICszOTIsNyBAQCBCaXRt
YXBJbWFnZTo6U3RhcnRBbmltYXRpb25TdGF0dXMgQml0bWFwCiAKICAgICAgICAgbV9kZXNpcmVk
RnJhbWVEZWNvZGVUaW1lRm9yVGVzdGluZyA9IHRpbWUgKyBzdGQ6Om1heChtX2ZyYW1lRGVjb2Rp
bmdEdXJhdGlvbkZvclRlc3RpbmcsIDBfcyk7CiAgICAgICAgIGlmIChtX2NsZWFyRGVjb2RlckFm
dGVyQXN5bmNGcmFtZVJlcXVlc3RGb3JUZXN0aW5nKQotICAgICAgICAgICAgbV9zb3VyY2UuY2xl
YXIoZGF0YSgpKTsKKyAgICAgICAgICAgIG1fc291cmNlLnJlc2V0RGF0YShkYXRhKCkpOwogICAg
IH0KIAogICAgIEFTU0VSVCghbV9mcmFtZVRpbWVyKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNhY2hlLmNwcAkocmV2aXNpb24g
MjE3NDMyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VGcmFtZUNh
Y2hlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgwLDkgKzI4MCwxMCBAQCB2b2lkIEltYWdlRnJh
bWVDYWNoZTo6c3RhcnRBc3luY0RlY29kaW5nCiAgICAgUmVmPEltYWdlRnJhbWVDYWNoZT4gcHJv
dGVjdGVkVGhpcyA9IFJlZjxJbWFnZUZyYW1lQ2FjaGU+KCp0aGlzKTsKICAgICBSZWY8V29ya1F1
ZXVlPiBwcm90ZWN0ZWRRdWV1ZSA9IGRlY29kaW5nUXVldWUoKTsKICAgICBSZWY8SW1hZ2VEZWNv
ZGVyPiBwcm90ZWN0ZWREZWNvZGVyID0gUmVmPEltYWdlRGVjb2Rlcj4oKm1fZGVjb2Rlcik7Cisg
ICAgU3RyaW5nIHByb3RlY3RlZFNvdXJjZVVSTCA9IHNvdXJjZVVSTCgpLnN0cmluZygpOwogCiAg
ICAgLy8gV2UgbmVlZCB0byBwcm90ZWN0IHRoaXMsIG1fZGVjb2RpbmdRdWV1ZSBhbmQgbV9kZWNv
ZGVyIGZyb20gYmVpbmcgZGVsZXRlZCB3aGlsZSB3ZSBhcmUgaW4gdGhlIGRlY29kaW5nIGxvb3Au
Ci0gICAgZGVjb2RpbmdRdWV1ZSgpLT5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUo
cHJvdGVjdGVkVGhpcyksIHByb3RlY3RlZFF1ZXVlID0gV1RGTW92ZShwcm90ZWN0ZWRRdWV1ZSks
IHByb3RlY3RlZERlY29kZXIgPSBXVEZNb3ZlKHByb3RlY3RlZERlY29kZXIpXSB7CisgICAgZGVj
b2RpbmdRdWV1ZSgpLT5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVk
VGhpcyksIHByb3RlY3RlZFF1ZXVlID0gV1RGTW92ZShwcm90ZWN0ZWRRdWV1ZSksIHByb3RlY3Rl
ZERlY29kZXIgPSBXVEZNb3ZlKHByb3RlY3RlZERlY29kZXIpLCBwcm90ZWN0ZWRTb3VyY2VVUkxd
IHsKICAgICAgICAgSW1hZ2VGcmFtZVJlcXVlc3QgZnJhbWVSZXF1ZXN0OwogCiAgICAgICAgIHdo
aWxlIChwcm90ZWN0ZWRUaGlzLT5tX2ZyYW1lUmVxdWVzdFF1ZXVlLmRlcXVldWUoZnJhbWVSZXF1
ZXN0KSkgewpAQCAtMjkxLDIxICsyOTIsMjEgQEAgdm9pZCBJbWFnZUZyYW1lQ2FjaGU6OnN0YXJ0
QXN5bmNEZWNvZGluZwogICAgICAgICAgICAgLy8gR2V0IHRoZSBmcmFtZSBOYXRpdmVJbWFnZSBv
biB0aGUgZGVjb2RpbmcgdGhyZWFkLgogICAgICAgICAgICAgTmF0aXZlSW1hZ2VQdHIgbmF0aXZl
SW1hZ2UgPSBwcm90ZWN0ZWREZWNvZGVyLT5jcmVhdGVGcmFtZUltYWdlQXRJbmRleChmcmFtZVJl
cXVlc3QuaW5kZXgsIGZyYW1lUmVxdWVzdC5zdWJzYW1wbGluZ0xldmVsLCBmcmFtZVJlcXVlc3Qu
ZGVjb2RpbmdPcHRpb25zKTsKICAgICAgICAgICAgIGlmIChuYXRpdmVJbWFnZSkKLSAgICAgICAg
ICAgICAgICBMT0coSW1hZ2VzLCAiSW1hZ2VGcmFtZUNhY2hlOjolcyAtICVwIC0gdXJsOiAlcyBb
ZnJhbWUgJWxkIGhhcyBiZWVuIGRlY29kZWRdIiwgX19GVU5DVElPTl9fLCBwcm90ZWN0ZWRUaGlz
LnB0cigpLCBwcm90ZWN0ZWRUaGlzLT5zb3VyY2VVUkwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
LCBmcmFtZVJlcXVlc3QuaW5kZXgpOworICAgICAgICAgICAgICAgIExPRyhJbWFnZXMsICJJbWFn
ZUZyYW1lQ2FjaGU6OiVzIC0gJXAgLSB1cmw6ICVzIFtmcmFtZSAlbGQgaGFzIGJlZW4gZGVjb2Rl
ZF0iLCBfX0ZVTkNUSU9OX18sIHByb3RlY3RlZFRoaXMucHRyKCksIHByb3RlY3RlZFNvdXJjZVVS
TC51dGY4KCkuZGF0YSgpLCBmcmFtZVJlcXVlc3QuaW5kZXgpOwogICAgICAgICAgICAgZWxzZSB7
Ci0gICAgICAgICAgICAgICAgTE9HKEltYWdlcywgIkltYWdlRnJhbWVDYWNoZTo6JXMgLSAlcCAt
IHVybDogJXMgW2RlY29kaW5nIGZvciBmcmFtZSAlbGQgaGFzIGZhaWxlZF0iLCBfX0ZVTkNUSU9O
X18sIHByb3RlY3RlZFRoaXMucHRyKCksIHByb3RlY3RlZFRoaXMtPnNvdXJjZVVSTCgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCksIGZyYW1lUmVxdWVzdC5pbmRleCk7CisgICAgICAgICAgICAgICAg
TE9HKEltYWdlcywgIkltYWdlRnJhbWVDYWNoZTo6JXMgLSAlcCAtIHVybDogJXMgW2RlY29kaW5n
IGZvciBmcmFtZSAlbGQgaGFzIGZhaWxlZF0iLCBfX0ZVTkNUSU9OX18sIHByb3RlY3RlZFRoaXMu
cHRyKCksIHByb3RlY3RlZFNvdXJjZVVSTC51dGY4KCkuZGF0YSgpLCBmcmFtZVJlcXVlc3QuaW5k
ZXgpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICAvLyBVcGRhdGUgdGhlIGNhY2hlZCBmcmFtZXMgb24gdGhlIG1haW4gdGhyZWFkIHRvIGF2
b2lkIHVwZGF0aW5nIHRoZSBNZW1vcnlDYWNoZSBmcm9tIGEgZGlmZmVyZW50IHRocmVhZC4KLSAg
ICAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBwcm90ZWN0ZWRUaGlz
LmNvcHlSZWYoKSwgcHJvdGVjdGVkUXVldWUgPSBwcm90ZWN0ZWRRdWV1ZS5jb3B5UmVmKCksIHBy
b3RlY3RlZERlY29kZXIgPSBwcm90ZWN0ZWREZWNvZGVyLmNvcHlSZWYoKSwgbmF0aXZlSW1hZ2Ug
PSBXVEZNb3ZlKG5hdGl2ZUltYWdlKSwgZnJhbWVSZXF1ZXN0XSAoKSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFRoaXMgPSBwcm90ZWN0ZWRUaGlzLmNv
cHlSZWYoKSwgcHJvdGVjdGVkUXVldWUgPSBwcm90ZWN0ZWRRdWV1ZS5jb3B5UmVmKCksIHByb3Rl
Y3RlZERlY29kZXIgPSBwcm90ZWN0ZWREZWNvZGVyLmNvcHlSZWYoKSwgcHJvdGVjdGVkU291cmNl
VVJMLCBuYXRpdmVJbWFnZSA9IFdURk1vdmUobmF0aXZlSW1hZ2UpLCBmcmFtZVJlcXVlc3RdICgp
IG11dGFibGUgewogICAgICAgICAgICAgICAgIC8vIFRoZSBxdWV1ZSBtYXkgaGF2ZSBiZWVuIGNs
b3NlZCBpZiBhZnRlciB3ZSBnb3QgdGhlIGZyYW1lIE5hdGl2ZUltYWdlLCBzdG9wQXN5bmNEZWNv
ZGluZ1F1ZXVlKCkgd2FzIGNhbGxlZC4KICAgICAgICAgICAgICAgICBpZiAocHJvdGVjdGVkUXVl
dWUucHRyKCkgPT0gcHJvdGVjdGVkVGhpcy0+bV9kZWNvZGluZ1F1ZXVlICYmIHByb3RlY3RlZERl
Y29kZXIucHRyKCkgPT0gcHJvdGVjdGVkVGhpcy0+bV9kZWNvZGVyKSB7CiAgICAgICAgICAgICAg
ICAgICAgIEFTU0VSVChwcm90ZWN0ZWRUaGlzLT5tX2ZyYW1lQ29tbWl0UXVldWUuZmlyc3QoKSA9
PSBmcmFtZVJlcXVlc3QpOwogICAgICAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX2Zy
YW1lQ29tbWl0UXVldWUucmVtb3ZlRmlyc3QoKTsKICAgICAgICAgICAgICAgICAgICAgcHJvdGVj
dGVkVGhpcy0+Y2FjaGVOYXRpdmVJbWFnZUF0SW5kZXhBc3luYyhXVEZNb3ZlKG5hdGl2ZUltYWdl
KSwgZnJhbWVSZXF1ZXN0LmluZGV4LCBmcmFtZVJlcXVlc3Quc3Vic2FtcGxpbmdMZXZlbCwgZnJh
bWVSZXF1ZXN0LmRlY29kaW5nT3B0aW9ucywgZnJhbWVSZXF1ZXN0LmRlY29kaW5nU3RhdHVzKTsK
ICAgICAgICAgICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgICAgICAgICAgTE9HKEltYWdlcywg
IkltYWdlRnJhbWVDYWNoZTo6JXMgLSAlcCAtIHVybDogJXMgW2ZyYW1lICVsZCB3aWxsIG5vdCBj
YWNoZWRdIiwgX19GVU5DVElPTl9fLCBwcm90ZWN0ZWRUaGlzLnB0cigpLCBwcm90ZWN0ZWRUaGlz
LT5zb3VyY2VVUkwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBmcmFtZVJlcXVlc3QuaW5kZXgp
OworICAgICAgICAgICAgICAgICAgICBMT0coSW1hZ2VzLCAiSW1hZ2VGcmFtZUNhY2hlOjolcyAt
ICVwIC0gdXJsOiAlcyBbZnJhbWUgJWxkIHdpbGwgbm90IGNhY2hlZF0iLCBfX0ZVTkNUSU9OX18s
IHByb3RlY3RlZFRoaXMucHRyKCksIHByb3RlY3RlZFNvdXJjZVVSTC51dGY4KCkuZGF0YSgpLCBm
cmFtZVJlcXVlc3QuaW5kZXgpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KICAgICB9KTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJhbWVDYWNoZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlRnJh
bWVDYWNoZS5oCShyZXZpc2lvbiAyMTc0MzIpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZUZyYW1lQ2FjaGUuaAkod29ya2luZyBjb3B5KQpAQCAtNjcsOCArNjcsOSBA
QCBwdWJsaWM6CiAKICAgICB2b2lkIGdyb3dGcmFtZXMoKTsKICAgICB2b2lkIGNsZWFyTWV0YWRh
dGEoKTsKKyAgICB2b2lkIGNsZWFySW1hZ2UoKSB7IG1faW1hZ2UgPSBudWxscHRyOyB9CiAgICAg
VVJMIHNvdXJjZVVSTCgpIGNvbnN0OwotICAgIAorCiAgICAgLy8gQXN5bmNocm9ub3VzIGltYWdl
IGRlY29kaW5nCiAgICAgdm9pZCBzdGFydEFzeW5jRGVjb2RpbmdRdWV1ZSgpOwogICAgIHZvaWQg
cmVxdWVzdEZyYW1lQXN5bmNEZWNvZGluZ0F0SW5kZXgoc2l6ZV90LCBTdWJzYW1wbGluZ0xldmVs
LCBjb25zdCBzdGQ6Om9wdGlvbmFsPEludFNpemU+Jik7CkBAIC04NSw3ICs4Niw3IEBAIHB1Ymxp
YzoKICAgICBTdHJpbmcgdXRpKCk7CiAgICAgU3RyaW5nIGZpbGVuYW1lRXh0ZW5zaW9uKCk7CiAg
ICAgc3RkOjpvcHRpb25hbDxJbnRQb2ludD4gaG90U3BvdCgpOwotICAgIAorCiAgICAgLy8gSW1h
Z2UgbWV0YWRhdGEgd2hpY2ggaXMgY2FsY3VsYXRlZCBmcm9tIHRoZSBmaXJzdCBJbWFnZUZyYW1l
LgogICAgIEludFNpemUgc2l6ZSgpOwogICAgIEludFNpemUgc2l6ZVJlc3BlY3RpbmdPcmllbnRh
dGlvbigpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0lt
YWdlU291cmNlLmNwcAkocmV2aXNpb24gMjE3NDMyKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MCwxMyArNzAs
NiBAQCB2b2lkIEltYWdlU291cmNlOjpjbGVhckZyYW1lQnVmZmVyQ2FjaGUoCiAgICAgbV9kZWNv
ZGVyLT5jbGVhckZyYW1lQnVmZmVyQ2FjaGUoY2xlYXJCZWZvcmVGcmFtZSk7CiB9CiAKLXZvaWQg
SW1hZ2VTb3VyY2U6OmNsZWFyKFNoYXJlZEJ1ZmZlciogZGF0YSkKLXsKLSAgICBtX2RlY29kZXIg
PSBudWxscHRyOwotICAgIG1fZnJhbWVDYWNoZS0+c2V0RGVjb2RlcihudWxscHRyKTsKLSAgICBz
ZXREYXRhKGRhdGEsIGlzQWxsRGF0YVJlY2VpdmVkKCkpOwotfQotCiBib29sIEltYWdlU291cmNl
OjplbnN1cmVEZWNvZGVyQXZhaWxhYmxlKFNoYXJlZEJ1ZmZlciogZGF0YSkKIHsKICAgICBpZiAo
IWRhdGEgfHwgaXNEZWNvZGVyQXZhaWxhYmxlKCkpCkBAIC0xMTEsNiArMTA0LDEzIEBAIHZvaWQg
SW1hZ2VTb3VyY2U6OnNldERhdGEoU2hhcmVkQnVmZmVyKiAKICAgICBtX2RlY29kZXItPnNldERh
dGEoKmRhdGEsIGFsbERhdGFSZWNlaXZlZCk7CiB9CiAKK3ZvaWQgSW1hZ2VTb3VyY2U6OnJlc2V0
RGF0YShTaGFyZWRCdWZmZXIqIGRhdGEpCit7CisgICAgbV9kZWNvZGVyID0gbnVsbHB0cjsKKyAg
ICBtX2ZyYW1lQ2FjaGUtPnNldERlY29kZXIobnVsbHB0cik7CisgICAgc2V0RGF0YShkYXRhLCBp
c0FsbERhdGFSZWNlaXZlZCgpKTsKK30KKwogRW5jb2RlZERhdGFTdGF0dXMgSW1hZ2VTb3VyY2U6
OmRhdGFDaGFuZ2VkKFNoYXJlZEJ1ZmZlciogZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCiB7
CiAjaWYgUExBVEZPUk0oSU9TKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VTb3VyY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9JbWFnZVNvdXJjZS5oCShyZXZpc2lvbiAyMTc0MzIpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC01OCwx
MyArNTgsMTQgQEAgcHVibGljOgogICAgIHZvaWQgZGVzdHJveUFsbERlY29kZWREYXRhRXhjbHVk
ZUZyYW1lKHNpemVfdCBleGNsdWRlRnJhbWUpIHsgbV9mcmFtZUNhY2hlLT5kZXN0cm95QWxsRGVj
b2RlZERhdGFFeGNsdWRlRnJhbWUoZXhjbHVkZUZyYW1lKTsgfQogICAgIHZvaWQgZGVzdHJveURl
Y29kZWREYXRhQmVmb3JlRnJhbWUoc2l6ZV90IGJlZm9yZUZyYW1lKSB7IG1fZnJhbWVDYWNoZS0+
ZGVzdHJveURlY29kZWREYXRhQmVmb3JlRnJhbWUoYmVmb3JlRnJhbWUpOyB9CiAgICAgdm9pZCBk
ZXN0cm95SW5jb21wbGV0ZURlY29kZWREYXRhKCkgeyBtX2ZyYW1lQ2FjaGUtPmRlc3Ryb3lJbmNv
bXBsZXRlRGVjb2RlZERhdGEoKTsgfQorICAgIHZvaWQgY2xlYXJJbWFnZSgpIHsgbV9mcmFtZUNh
Y2hlLT5jbGVhckltYWdlKCk7IH0KICAgICB2b2lkIGNsZWFyRnJhbWVCdWZmZXJDYWNoZShzaXpl
X3QpOwotICAgIHZvaWQgY2xlYXIoU2hhcmVkQnVmZmVyKiBkYXRhKTsKIAogICAgIGJvb2wgZW5z
dXJlRGVjb2RlckF2YWlsYWJsZShTaGFyZWRCdWZmZXIqKTsKICAgICBib29sIGlzRGVjb2RlckF2
YWlsYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVjb2Rlci5nZXQoKTsgfQogCiAgICAgdm9pZCBz
ZXREYXRhKFNoYXJlZEJ1ZmZlciogZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpOworICAgIHZv
aWQgcmVzZXREYXRhKFNoYXJlZEJ1ZmZlciogZGF0YSk7CiAgICAgRW5jb2RlZERhdGFTdGF0dXMg
ZGF0YUNoYW5nZWQoU2hhcmVkQnVmZmVyKiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCk7CiAK
ICAgICB1bnNpZ25lZCBkZWNvZGVkU2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZnJhbWVDYWNoZS0+
ZGVjb2RlZFNpemUoKTsgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>