<?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>201074</bug_id>
          
          <creation_ts>2019-08-23 05:31:04 -0700</creation_ts>
          <short_desc>CacheStorageConnection::computeRealBodySize is not thread-safe</short_desc>
          <delta_ts>2019-08-26 10:52:18 -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>Service Workers</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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1564437</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-23 05:31:04 -0700</bug_when>
    <thetext>CacheStorageConnection::computeRealBodySize is not thread-safe</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564438</commentid>
    <comment_count>1</comment_count>
      <attachid>377122</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-23 05:34:07 -0700</bug_when>
    <thetext>Created attachment 377122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564501</commentid>
    <comment_count>2</comment_count>
      <attachid>377122</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-08-23 10:40:12 -0700</bug_when>
    <thetext>Comment on attachment 377122
Patch

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

&gt; Source/WebCore/Modules/cache/CacheStorageConnection.cpp:48
&gt; +    uint64_t resultSize;
&gt; +    BinarySemaphore semaphore;
&gt; +    callOnMainThread([sessionID, formData = formData.isolatedCopy(), &amp;semaphore, &amp;resultSize] {
&gt; +        resultSize = formData-&gt;lengthInBytes(sessionID);
&gt; +        semaphore.signal();
&gt; +    });
&gt; +    semaphore.wait();

Why is the semaphore needed? Doesn’t callOnMainThread, which is synchronous, already contain enough synchronization to guarantee the correct value for resultSize? If not, it seems really hard to program with callOnMainThread correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564898</commentid>
    <comment_count>3</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-26 01:55:17 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #2)
&gt; Comment on attachment 377122 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=377122&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/cache/CacheStorageConnection.cpp:48
&gt; &gt; +    uint64_t resultSize;
&gt; &gt; +    BinarySemaphore semaphore;
&gt; &gt; +    callOnMainThread([sessionID, formData = formData.isolatedCopy(), &amp;semaphore, &amp;resultSize] {
&gt; &gt; +        resultSize = formData-&gt;lengthInBytes(sessionID);
&gt; &gt; +        semaphore.signal();
&gt; &gt; +    });
&gt; &gt; +    semaphore.wait();
&gt; 
&gt; Why is the semaphore needed? Doesn’t callOnMainThread, which is synchronous,
&gt; already contain enough synchronization to guarantee the correct value for
&gt; resultSize? If not, it seems really hard to program with callOnMainThread
&gt; correctly.

Using callOnMainThread does not wait, but I should replace the semaphore with a call to callOnMainThreadAndWait.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564899</commentid>
    <comment_count>4</comment_count>
      <attachid>377236</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-26 01:57:46 -0700</bug_when>
    <thetext>Created attachment 377236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564959</commentid>
    <comment_count>5</comment_count>
      <attachid>377236</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-08-26 09:11:27 -0700</bug_when>
    <thetext>Comment on attachment 377236
Patch

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

&gt; Source/WebCore/Modules/cache/CacheStorageConnection.cpp:38
&gt; +    if (isMainThread())

This branch is not really needed, callOnMainThreadAndWait() already does the right thing for you. Or are you doing this as an optimization to avoid the isolatedCopy() of the FormData? I guess that&apos;s fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1564985</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-08-26 10:13:27 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; Comment on attachment 377236 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=377236&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/Modules/cache/CacheStorageConnection.cpp:38
&gt; &gt; +    if (isMainThread())
&gt; 
&gt; This branch is not really needed, callOnMainThreadAndWait() already does the
&gt; right thing for you. Or are you doing this as an optimization to avoid the
&gt; isolatedCopy() of the FormData? I guess that&apos;s fine.

Yes, there is no way we could optimise this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565008</commentid>
    <comment_count>7</comment_count>
      <attachid>377236</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-26 10:51:24 -0700</bug_when>
    <thetext>Comment on attachment 377236
Patch

Clearing flags on attachment: 377236

Committed r249105: &lt;https://trac.webkit.org/changeset/249105&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565009</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-26 10:51:26 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1565010</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-08-26 10:52:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/54713221&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377122</attachid>
            <date>2019-08-23 05:34:07 -0700</date>
            <delta_ts>2019-08-26 01:57:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201074-20190823143405.patch</filename>
            <type>text/plain</type>
            <size>2641</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzcwZWMwZjNhODI1OGQ4
YmVjNjE0ZWNjYTY3YjhmNmRmNDgyMDdmOC4uZjU2YWE2MmYxM2VmNGUxMmZhZTlmYjIxMzJlMTAx
YTY1MzU0NTAzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTA4LTIzICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uOjpjb21wdXRlUmVhbEJvZHlTaXplIGlzIG5vdCB0aHJlYWQtc2FmZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMDc0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gY2FzZSBvZiBhIGZvcm0g
ZGF0YSwgdGhlIHNpemUgY29tcHV0YXRpb24gbWlnaHQgcmVxdWlyZSBzeW5jIElQQyB0byB0aGUg
bmV0d29yayBwcm9jZXNzIHdoaWNoIGlzIG5vdCB0aHJlYWQtc2FmZQorICAgICAgICBJbiB0aGF0
IGNhc2UsIGhvcCB0byB0aGUgbWFpbiB0aHJlYWQgdG8gY29tcHV0ZSB0aGUgc2l6ZSBvZiB0aGUg
Ym9keS4KKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBzZXJ2aWNlIHdvcmtlciB0ZXN0cyBp
biBEZWJ1ZyBtb2RlLgorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1EYXRhU2l6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wdXRlUmVhbEJvZHlTaXplKToKKwog
MjAxOS0wOC0yMiAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255LmNvbT4KIAog
ICAgICAgICBbU1ZHXSAtd2Via2l0LWNsaXAtcGF0aCB0cmVhdHMgdXJsKGFiYyN4eXopIGFzIHVy
bCgjeHl6KSBiZWNhdXNlIGl0IGNoZWNrcyBvbmx5IFVSTCBmcmFnbWVudCBwYXJ0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9u
LmNwcAppbmRleCA0YzA0ZDI0Zjc0NWJmN2E0MjM3YzM4ZTU3YWRlYThlOGRkYTFiNDg1Li42Y2Y0
ODFlNDY1MTBiMGQ4YjgwZGYwNmNiZjNjMmMxZTE1M2I2ZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAg
LTI5LDE2ICsyOSwzMiBAQAogCiAjaW5jbHVkZSAiRmV0Y2hSZXNwb25zZS5oIgogI2luY2x1ZGUg
PHd0Zi9SYW5kb21OdW1iZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGhyZWFkcy9CaW5hcnlTZW1hcGhv
cmUuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU6OkRP
TUNhY2hlRW5naW5lOwogCitzdGF0aWMgaW5saW5lIHVpbnQ2NF90IGZvcm1EYXRhU2l6ZShjb25z
dCBGb3JtRGF0YSYgZm9ybURhdGEsIFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkKK3sKKyAgICBp
ZiAoaXNNYWluVGhyZWFkKCkpCisgICAgICAgIHJldHVybiBmb3JtRGF0YS5sZW5ndGhJbkJ5dGVz
KHNlc3Npb25JRCk7CisKKyAgICB1aW50NjRfdCByZXN1bHRTaXplOworICAgIEJpbmFyeVNlbWFw
aG9yZSBzZW1hcGhvcmU7CisgICAgY2FsbE9uTWFpblRocmVhZChbc2Vzc2lvbklELCBmb3JtRGF0
YSA9IGZvcm1EYXRhLmlzb2xhdGVkQ29weSgpLCAmc2VtYXBob3JlLCAmcmVzdWx0U2l6ZV0gewor
ICAgICAgICByZXN1bHRTaXplID0gZm9ybURhdGEtPmxlbmd0aEluQnl0ZXMoc2Vzc2lvbklEKTsK
KyAgICAgICAgc2VtYXBob3JlLnNpZ25hbCgpOworICAgIH0pOworICAgIHNlbWFwaG9yZS53YWl0
KCk7CisgICAgcmV0dXJuIHJlc3VsdFNpemU7Cit9CisKIHVpbnQ2NF90IENhY2hlU3RvcmFnZUNv
bm5lY3Rpb246OmNvbXB1dGVSZWFsQm9keVNpemUoY29uc3QgRE9NQ2FjaGVFbmdpbmU6OlJlc3Bv
bnNlQm9keSYgYm9keSkKIHsKICAgICB1aW50NjRfdCByZXN1bHQgPSAwOwotICAgIFdURjo6c3dp
dGNoT24oYm9keSwgWyZdIChjb25zdCBSZWY8V2ViQ29yZTo6Rm9ybURhdGE+JiBmb3JtRGF0YSkg
ewotICAgICAgICByZXN1bHQgPSBmb3JtRGF0YS0+bGVuZ3RoSW5CeXRlcyhzZXNzaW9uSUQoKSk7
Ci0gICAgfSwgWyZdIChjb25zdCBSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYgYnVmZmVyKSB7
CisgICAgV1RGOjpzd2l0Y2hPbihib2R5LCBbJl0gKGNvbnN0IFJlZjxGb3JtRGF0YT4mIGZvcm1E
YXRhKSB7CisgICAgICAgIHJlc3VsdCA9IGZvcm1EYXRhU2l6ZShmb3JtRGF0YSwgc2Vzc2lvbklE
KCkpOworICAgIH0sIFsmXSAoY29uc3QgUmVmPFNoYXJlZEJ1ZmZlcj4mIGJ1ZmZlcikgewogICAg
ICAgICByZXN1bHQgPSBidWZmZXItPnNpemUoKTsKICAgICB9LCBbXSAoY29uc3Qgc3RkOjpudWxs
cHRyX3QmKSB7CiAgICAgfSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>377236</attachid>
            <date>2019-08-26 01:57:46 -0700</date>
            <delta_ts>2019-08-26 10:51:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-201074-20190826105745.patch</filename>
            <type>text/plain</type>
            <size>2389</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ5MDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWYzZTE4MTI1NzdlZTZi
YTI5ZDdjNDc3ZDI1OGJkZGE3Yzc2NDVjNy4uOTJmOTQzYWE4ZDMxYTA1MGRjYmJhMjQzZDI3MGZk
ODg5YTY1OTNkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5LTA4LTI2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBDYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uOjpjb21wdXRlUmVhbEJvZHlTaXplIGlzIG5vdCB0aHJlYWQtc2FmZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAxMDc0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gY2FzZSBvZiBhIGZvcm0g
ZGF0YSwgdGhlIHNpemUgY29tcHV0YXRpb24gbWlnaHQgcmVxdWlyZSBzeW5jIElQQyB0byB0aGUg
bmV0d29yayBwcm9jZXNzIHdoaWNoIGlzIG5vdCB0aHJlYWQtc2FmZQorICAgICAgICBJbiB0aGF0
IGNhc2UsIGhvcCB0byB0aGUgbWFpbiB0aHJlYWQgdG8gY29tcHV0ZSB0aGUgc2l6ZSBvZiB0aGUg
Ym9keS4KKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBzZXJ2aWNlIHdvcmtlciB0ZXN0cyBp
biBEZWJ1ZyBtb2RlLgorCisgICAgICAgICogTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1EYXRhU2l6ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpDYWNoZVN0b3JhZ2VDb25uZWN0aW9uOjpjb21wdXRlUmVhbEJvZHlTaXplKToKKwog
MjAxOS0wOC0yMyAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAg
UmVtb3ZlIE1lZGlhU3RyZWFtUHJpdmF0ZTo6c2NoZWR1bGVEZWZlcnJlZFRhc2sKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0NhY2hlU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwCmluZGV4IDRjMDRkMjRmNzQ1YmY3YTQyMzdjMzhlNTdhZGVhOGU4ZGRhMWI0ODUuLjlhYTY3
Yzc4NWNhODkwMDAwMDFjMmQ2ZGM4YzYyYTlmYzA0ZmFlZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvY2FjaGUvQ2FjaGVTdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9DYWNoZVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAt
MzMsMTIgKzMzLDI0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTo6RE9NQ2FjaGVFbmdpbmU7CiAKK3N0YXRpYyBpbmxpbmUgdWludDY0X3QgZm9ybURhdGFT
aXplKGNvbnN0IEZvcm1EYXRhJiBmb3JtRGF0YSwgUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQor
eworICAgIGlmIChpc01haW5UaHJlYWQoKSkKKyAgICAgICAgcmV0dXJuIGZvcm1EYXRhLmxlbmd0
aEluQnl0ZXMoc2Vzc2lvbklEKTsKKworICAgIHVpbnQ2NF90IHJlc3VsdFNpemU7CisgICAgY2Fs
bE9uTWFpblRocmVhZEFuZFdhaXQoW3Nlc3Npb25JRCwgZm9ybURhdGEgPSBmb3JtRGF0YS5pc29s
YXRlZENvcHkoKSwgJnJlc3VsdFNpemVdIHsKKyAgICAgICAgcmVzdWx0U2l6ZSA9IGZvcm1EYXRh
LT5sZW5ndGhJbkJ5dGVzKHNlc3Npb25JRCk7CisgICAgfSk7CisgICAgcmV0dXJuIHJlc3VsdFNp
emU7Cit9CisKIHVpbnQ2NF90IENhY2hlU3RvcmFnZUNvbm5lY3Rpb246OmNvbXB1dGVSZWFsQm9k
eVNpemUoY29uc3QgRE9NQ2FjaGVFbmdpbmU6OlJlc3BvbnNlQm9keSYgYm9keSkKIHsKICAgICB1
aW50NjRfdCByZXN1bHQgPSAwOwotICAgIFdURjo6c3dpdGNoT24oYm9keSwgWyZdIChjb25zdCBS
ZWY8V2ViQ29yZTo6Rm9ybURhdGE+JiBmb3JtRGF0YSkgewotICAgICAgICByZXN1bHQgPSBmb3Jt
RGF0YS0+bGVuZ3RoSW5CeXRlcyhzZXNzaW9uSUQoKSk7Ci0gICAgfSwgWyZdIChjb25zdCBSZWY8
V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYgYnVmZmVyKSB7CisgICAgV1RGOjpzd2l0Y2hPbihib2R5
LCBbJl0gKGNvbnN0IFJlZjxGb3JtRGF0YT4mIGZvcm1EYXRhKSB7CisgICAgICAgIHJlc3VsdCA9
IGZvcm1EYXRhU2l6ZShmb3JtRGF0YSwgc2Vzc2lvbklEKCkpOworICAgIH0sIFsmXSAoY29uc3Qg
UmVmPFNoYXJlZEJ1ZmZlcj4mIGJ1ZmZlcikgewogICAgICAgICByZXN1bHQgPSBidWZmZXItPnNp
emUoKTsKICAgICB9LCBbXSAoY29uc3Qgc3RkOjpudWxscHRyX3QmKSB7CiAgICAgfSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>