<?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>127469</bug_id>
          
          <creation_ts>2014-01-23 00:58:56 -0800</creation_ts>
          <short_desc>[GTK] Avoid unnecessary string duplications in FileSystemGtk</short_desc>
          <delta_ts>2014-01-28 00:11:13 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (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>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>gustavo</cc>
    
    <cc>pnormand</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>971067</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-23 00:58:56 -0800</bug_when>
    <thetext>We are using fileSystemRepresentation() everywhere internally which returns a CString that always duplicates the string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971068</commentid>
    <comment_count>1</comment_count>
      <attachid>221956</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-23 01:01:29 -0800</bug_when>
    <thetext>Created attachment 221956
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971079</commentid>
    <comment_count>2</comment_count>
      <attachid>221956</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2014-01-23 01:28:37 -0800</bug_when>
    <thetext>Comment on attachment 221956
Patch

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

Looks good to me but your changes unveil an already existing bug. See inline...

&gt; Source/WebCore/platform/gtk/FileSystemGtk.cpp:84
&gt; +    GUniquePtr&lt;gchar&gt; display(g_filename_to_utf8(filename.get(), 0, nullptr, nullptr, nullptr));

This definitely sounds like a bug to me. We&apos;re passing 0 as the string length. We should either use -1 if null terminated or the actual string length if known.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971086</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-23 02:22:32 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 221956 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=221956&amp;action=review
&gt; 
&gt; Looks good to me but your changes unveil an already existing bug. See inline...
&gt; 
&gt; &gt; Source/WebCore/platform/gtk/FileSystemGtk.cpp:84
&gt; &gt; +    GUniquePtr&lt;gchar&gt; display(g_filename_to_utf8(filename.get(), 0, nullptr, nullptr, nullptr));
&gt; 
&gt; This definitely sounds like a bug to me. We&apos;re passing 0 as the string length. We should either use -1 if null terminated or the actual string length if known.

You are right, that should be -1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971087</commentid>
    <comment_count>4</comment_count>
      <attachid>221964</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-23 02:23:51 -0800</bug_when>
    <thetext>Created attachment 221964
Patch

Good catch Sergio! Patch updated</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971113</commentid>
    <comment_count>5</comment_count>
      <attachid>221956</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-01-23 06:14:47 -0800</bug_when>
    <thetext>Comment on attachment 221956
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        We are using fileSystemRepresentation() everywhere internally
&gt; +        which returns a CString that always duplicates the string.
&gt; +        Add unescapedFilename() internal helper function that returns a
&gt; +        GUniquePtr and used it everywhere instead of fileSystemRepresentation().

I&apos;m not sure this is true. CStrings contain a reference-counted internal buffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971116</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-23 06:28:27 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 221956 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=221956&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        We are using fileSystemRepresentation() everywhere internally
&gt; &gt; +        which returns a CString that always duplicates the string.
&gt; &gt; +        Add unescapedFilename() internal helper function that returns a
&gt; &gt; +        GUniquePtr and used it everywhere instead of fileSystemRepresentation().
&gt; 
&gt; I&apos;m not sure this is true. CStrings contain a reference-counted internal buffer.

The constructor always allocates memory and copies the given string.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971118</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-23 06:32:08 -0800</bug_when>
    <thetext>Check it yourself:

http://trac.webkit.org/browser/trunk/Source/WTF/wtf/text/CString.cpp#L63</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971162</commentid>
    <comment_count>8</comment_count>
      <attachid>221964</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2014-01-23 09:12:23 -0800</bug_when>
    <thetext>Comment on attachment 221964
Patch

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

You&apos;re right. I neglected to notice that fileSystemRepresentation was converting from a c string into a CString.

&gt; Source/WebCore/platform/gtk/FileSystemGtk.cpp:62
&gt; +    if (path.isEmpty())
&gt; +        return nullptr;
&gt; +    return GUniquePtr&lt;char&gt;(g_uri_unescape_string(path.utf8().data(), nullptr));
&gt; +}

This doesn&apos;t appear to be doing the right thing for Windows. In Windows we just need to return path.utf8() to maintain the current behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971181</commentid>
    <comment_count>9</comment_count>
      <attachid>221964</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-23 09:28:12 -0800</bug_when>
    <thetext>Comment on attachment 221964
Patch

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

&gt;&gt; Source/WebCore/platform/gtk/FileSystemGtk.cpp:62
&gt;&gt; +}
&gt; 
&gt; This doesn&apos;t appear to be doing the right thing for Windows. In Windows we just need to return path.utf8() to maintain the current behavior.

You are right, I forgot the windows ifdef. Will update the patch, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>971224</commentid>
    <comment_count>10</comment_count>
      <attachid>221998</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-23 10:35:04 -0800</bug_when>
    <thetext>Created attachment 221998
Updated patch

Fixed the windows behaviour.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>972813</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-28 00:11:13 -0800</bug_when>
    <thetext>Committed r162921: &lt;http://trac.webkit.org/changeset/162921&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221956</attachid>
            <date>2014-01-23 01:01:29 -0800</date>
            <delta_ts>2014-01-23 06:14:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-file-system-gtk.diff</filename>
            <type>text/plain</type>
            <size>9262</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxNmZhMTE1Li40YzYwMmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMTQtMDEtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEF2b2lkIHVubmVjZXNzYXJ5IHN0cmluZyBkdXBsaWNhdGlvbnMg
aW4gRmlsZVN5c3RlbUd0aworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI3NDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2UgYXJlIHVzaW5nIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbigpIGV2ZXJ5d2hl
cmUgaW50ZXJuYWxseQorICAgICAgICB3aGljaCByZXR1cm5zIGEgQ1N0cmluZyB0aGF0IGFsd2F5
cyBkdXBsaWNhdGVzIHRoZSBzdHJpbmcuCisgICAgICAgIEFkZCB1bmVzY2FwZWRGaWxlbmFtZSgp
IGludGVybmFsIGhlbHBlciBmdW5jdGlvbiB0aGF0IHJldHVybnMgYQorICAgICAgICBHVW5pcXVl
UHRyIGFuZCB1c2VkIGl0IGV2ZXJ5d2hlcmUgaW5zdGVhZCBvZiBmaWxlU3lzdGVtUmVwcmVzZW50
YXRpb24oKS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnVuZXNjYXBlZEZpbGVuYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmZp
bGVTeXN0ZW1SZXByZXNlbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpmaWxlbmFtZUZvckRp
c3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUV4aXN0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpkZWxldGVGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmRlbGV0ZUVtcHR5RGlyZWN0b3J5KToK
KyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVTdGF0KToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZp
bGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVNb2RpZmljYXRpb25UaW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OmdldEZpbGVNZXRhZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQpOgorICAgICAgICAoV2ViQ29yZTo6bWFrZUFsbERpcmVjdG9y
aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OnBhdGhHZXRGaWxlTmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjpkaXJlY3RvcnlOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Omxpc3REaXJlY3RvcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6b3BlbkZpbGUpOgorCiAyMDE0LTAxLTIyICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR0xJQl0gVXNlIEdVbmlx
dWVQdHIgaW5zdGVhZCBvZiBHT3duUHRyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvRmlsZVN5c3RlbUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
RmlsZVN5c3RlbUd0ay5jcHAKaW5kZXggN2ZjNDk0Ny4uMTBmZDM2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcApAQCAtNTQsMTIgKzU0LDE5IEBA
IFN0cmluZyBmaWxlbmFtZVRvU3RyaW5nKGNvbnN0IGNoYXIqIGZpbGVuYW1lKQogI2VuZGlmCiB9
CiAKK3N0YXRpYyBHVW5pcXVlUHRyPGNoYXI+IHVuZXNjYXBlZEZpbGVuYW1lKGNvbnN0IFN0cmlu
ZyYgcGF0aCkKK3sKKyAgICBpZiAocGF0aC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiBHVW5pcXVlUHRyPGNoYXI+KGdfdXJpX3VuZXNjYXBlX3N0cmluZyhw
YXRoLnV0ZjgoKS5kYXRhKCksIG51bGxwdHIpKTsKK30KKwogQ1N0cmluZyBmaWxlU3lzdGVtUmVw
cmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiBwYXRoKQogewogI2lmIE9TKFdJTkRPV1MpCiAgICAg
cmV0dXJuIHBhdGgudXRmOCgpOwogI2Vsc2UKLSAgICBHVW5pcXVlUHRyPGdjaGFyPiBmaWxlbmFt
ZShnX3VyaV91bmVzY2FwZV9zdHJpbmcocGF0aC51dGY4KCkuZGF0YSgpLCAwKSk7CisgICAgR1Vu
aXF1ZVB0cjxnY2hhcj4gZmlsZW5hbWUgPSB1bmVzY2FwZWRGaWxlbmFtZShwYXRoKTsKICAgICBy
ZXR1cm4gZmlsZW5hbWUuZ2V0KCk7CiAjZW5kaWYKIH0KQEAgLTcwLDggKzc3LDExIEBAIFN0cmlu
ZyBmaWxlbmFtZUZvckRpc3BsYXkoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAjaWYgT1MoV0lORE9X
UykKICAgICByZXR1cm4gc3RyaW5nOwogI2Vsc2UKLSAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmls
ZVN5c3RlbVJlcHJlc2VudGF0aW9uKHN0cmluZyk7Ci0gICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGlz
cGxheShnX2ZpbGVuYW1lX3RvX3V0ZjgoZmlsZW5hbWUuZGF0YSgpLCAwLCAwLCAwLCAwKSk7Cisg
ICAgR1VuaXF1ZVB0cjxnY2hhcj4gZmlsZW5hbWUgPSB1bmVzY2FwZWRGaWxlbmFtZShzdHJpbmcp
OworICAgIGlmICghZmlsZW5hbWUpCisgICAgICAgIHJldHVybiBzdHJpbmc7CisKKyAgICBHVW5p
cXVlUHRyPGdjaGFyPiBkaXNwbGF5KGdfZmlsZW5hbWVfdG9fdXRmOChmaWxlbmFtZS5nZXQoKSwg
MCwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0cikpOwogICAgIGlmICghZGlzcGxheSkKICAgICAg
ICAgcmV0dXJuIHN0cmluZzsKIApAQCAtODEsNDYgKzkxLDM1IEBAIFN0cmluZyBmaWxlbmFtZUZv
ckRpc3BsYXkoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAKIGJvb2wgZmlsZUV4aXN0cyhjb25zdCBT
dHJpbmcmIHBhdGgpCiB7Ci0gICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBDU3RyaW5nIGZp
bGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOwotCi0gICAgaWYgKCFmaWxl
bmFtZS5pc051bGwoKSkKLSAgICAgICAgcmVzdWx0ID0gZ19maWxlX3Rlc3QoZmlsZW5hbWUuZGF0
YSgpLCBHX0ZJTEVfVEVTVF9FWElTVFMpOwotCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICBHVW5p
cXVlUHRyPGdjaGFyPiBmaWxlbmFtZSA9IHVuZXNjYXBlZEZpbGVuYW1lKHBhdGgpOworICAgIHJl
dHVybiBmaWxlbmFtZSA/IGdfZmlsZV90ZXN0KGZpbGVuYW1lLmdldCgpLCBHX0ZJTEVfVEVTVF9F
WElTVFMpIDogZmFsc2U7CiB9CiAKIGJvb2wgZGVsZXRlRmlsZShjb25zdCBTdHJpbmcmIHBhdGgp
CiB7Ci0gICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmls
ZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOwotCi0gICAgaWYgKCFmaWxlbmFtZS5pc051bGwo
KSkKLSAgICAgICAgcmVzdWx0ID0gZ19yZW1vdmUoZmlsZW5hbWUuZGF0YSgpKSA9PSAwOwotCi0g
ICAgcmV0dXJuIHJlc3VsdDsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBmaWxlbmFtZSA9IHVuZXNj
YXBlZEZpbGVuYW1lKHBhdGgpOworICAgIHJldHVybiBmaWxlbmFtZSA/IGdfcmVtb3ZlKGZpbGVu
YW1lLmdldCgpKSAhPSAtMSA6IGZhbHNlOwogfQogCiBib29sIGRlbGV0ZUVtcHR5RGlyZWN0b3J5
KGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICBib29sIHJlc3VsdCA9IGZhbHNlOwotICAgIENT
dHJpbmcgZmlsZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7CisgICAgR1Vu
aXF1ZVB0cjxnY2hhcj4gZmlsZW5hbWUgPSB1bmVzY2FwZWRGaWxlbmFtZShwYXRoKTsKKyAgICBy
ZXR1cm4gZmlsZW5hbWUgPyBnX3JtZGlyKGZpbGVuYW1lLmdldCgpKSAhPSAtMSA6IGZhbHNlOwor
fQogCi0gICAgaWYgKCFmaWxlbmFtZS5pc051bGwoKSkKLSAgICAgICAgcmVzdWx0ID0gZ19ybWRp
cihmaWxlbmFtZS5kYXRhKCkpID09IDA7CitzdGF0aWMgYm9vbCBnZXRGaWxlU3RhdChjb25zdCBT
dHJpbmcmIHBhdGgsIEdTdGF0QnVmKiBzdGF0QnVmZmVyKQoreworICAgIEdVbmlxdWVQdHI8Z2No
YXI+IGZpbGVuYW1lID0gdW5lc2NhcGVkRmlsZW5hbWUocGF0aCk7CisgICAgaWYgKCFmaWxlbmFt
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1
cm4gZ19zdGF0KGZpbGVuYW1lLmdldCgpLCBzdGF0QnVmZmVyKSAhPSAtMTsKIH0KIAogYm9vbCBn
ZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcmIHBhdGgsIGxvbmcgbG9uZyYgcmVzdWx0U2l6ZSkKIHsK
LSAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOwot
ICAgIGlmIChmaWxlbmFtZS5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAg
R1N0YXRCdWYgc3RhdFJlc3VsdDsKLSAgICBnaW50IHJlc3VsdCA9IGdfc3RhdChmaWxlbmFtZS5k
YXRhKCksICZzdGF0UmVzdWx0KTsKLSAgICBpZiAocmVzdWx0ICE9IDApCisgICAgaWYgKCFnZXRG
aWxlU3RhdChwYXRoLCAmc3RhdFJlc3VsdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAg
IHJlc3VsdFNpemUgPSBzdGF0UmVzdWx0LnN0X3NpemU7CkBAIC0xMjksNTUgKzEyOCwzNyBAQCBi
b29sIGdldEZpbGVTaXplKGNvbnN0IFN0cmluZyYgcGF0aCwgbG9uZyBsb25nJiByZXN1bHRTaXpl
KQogCiBib29sIGdldEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCwgdGlt
ZV90JiBtb2RpZmllZFRpbWUpCiB7Ci0gICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1S
ZXByZXNlbnRhdGlvbihwYXRoKTsKLSAgICBpZiAoZmlsZW5hbWUuaXNOdWxsKCkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQogICAgIEdTdGF0QnVmIHN0YXRSZXN1bHQ7Ci0gICAgZ2ludCByZXN1
bHQgPSBnX3N0YXQoZmlsZW5hbWUuZGF0YSgpLCAmc3RhdFJlc3VsdCk7Ci0gICAgaWYgKHJlc3Vs
dCAhPSAwKQorICAgIGlmICghZ2V0RmlsZVN0YXQocGF0aCwgJnN0YXRSZXN1bHQpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBtb2RpZmllZFRpbWUgPSBzdGF0UmVzdWx0LnN0X210aW1l
OwogICAgIHJldHVybiB0cnVlOwotCiB9CiAKIGJvb2wgZ2V0RmlsZU1ldGFkYXRhKGNvbnN0IFN0
cmluZyYgcGF0aCwgRmlsZU1ldGFkYXRhJiBtZXRhZGF0YSkKIHsKLSAgICBDU3RyaW5nIGZpbGVu
YW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOwotICAgIGlmIChmaWxlbmFtZS5p
c051bGwoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgc3RydWN0IHN0YXQgc3RhdFJl
c3VsdDsKLSAgICBnaW50IHJlc3VsdCA9IGdfc3RhdChmaWxlbmFtZS5kYXRhKCksICZzdGF0UmVz
dWx0KTsKLSAgICBpZiAocmVzdWx0KQorICAgIEdTdGF0QnVmIHN0YXRSZXN1bHQ7CisgICAgaWYg
KCFnZXRGaWxlU3RhdChwYXRoLCAmc3RhdFJlc3VsdCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIG1ldGFkYXRhLm1vZGlmaWNhdGlvblRpbWUgPSBzdGF0UmVzdWx0LnN0X210aW1lOwog
ICAgIG1ldGFkYXRhLmxlbmd0aCA9IHN0YXRSZXN1bHQuc3Rfc2l6ZTsKICAgICBtZXRhZGF0YS50
eXBlID0gU19JU0RJUihzdGF0UmVzdWx0LnN0X21vZGUpID8gRmlsZU1ldGFkYXRhOjpUeXBlRGly
ZWN0b3J5IDogRmlsZU1ldGFkYXRhOjpUeXBlRmlsZTsKICAgICByZXR1cm4gdHJ1ZTsKLQogfQog
CiBTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNvbnN0IFN0cmluZyYgcGF0aCwgY29u
c3QgU3RyaW5nJiBjb21wb25lbnQpCiB7CiAgICAgaWYgKHBhdGguZW5kc1dpdGgoR19ESVJfU0VQ
QVJBVE9SX1MpKQogICAgICAgICByZXR1cm4gcGF0aCArIGNvbXBvbmVudDsKLSAgICBlbHNlCi0g
ICAgICAgIHJldHVybiBwYXRoICsgR19ESVJfU0VQQVJBVE9SX1MgKyBjb21wb25lbnQ7CisgICAg
cmV0dXJuIHBhdGggKyBHX0RJUl9TRVBBUkFUT1JfUyArIGNvbXBvbmVudDsKIH0KIAogYm9vbCBt
YWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgU3RyaW5nJiBwYXRoKQogewotICAgIENTdHJpbmcgZmls
ZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7Ci0gICAgaWYgKGZpbGVuYW1l
LmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBnaW50IHJlc3VsdCA9IGdf
bWtkaXJfd2l0aF9wYXJlbnRzKGZpbGVuYW1lLmRhdGEoKSwgU19JUldYVSk7Ci0KLSAgICByZXR1
cm4gcmVzdWx0ID09IDA7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZmlsZW5hbWUgPSB1bmVzY2Fw
ZWRGaWxlbmFtZShwYXRoKTsKKyAgICByZXR1cm4gZmlsZW5hbWUgPyBnX21rZGlyX3dpdGhfcGFy
ZW50cyhmaWxlbmFtZS5nZXQoKSwgU19JUldYVSkgIT0gLTEgOiBmYWxzZTsKIH0KIAogU3RyaW5n
IGhvbWVEaXJlY3RvcnlQYXRoKCkKQEAgLTE4NywxMSArMTY4LDExIEBAIFN0cmluZyBob21lRGly
ZWN0b3J5UGF0aCgpCiAKIFN0cmluZyBwYXRoR2V0RmlsZU5hbWUoY29uc3QgU3RyaW5nJiBwYXRo
TmFtZSkKIHsKLSAgICBpZiAocGF0aE5hbWUuaXNFbXB0eSgpKQorICAgIEdVbmlxdWVQdHI8Z2No
YXI+IHRtcEZpbGVuYW1lID0gdW5lc2NhcGVkRmlsZW5hbWUocGF0aE5hbWUpOworICAgIGlmICgh
dG1wRmlsZW5hbWUpCiAgICAgICAgIHJldHVybiBwYXRoTmFtZTsKIAotICAgIENTdHJpbmcgdG1w
RmlsZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aE5hbWUpOwotICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IGJhc2VOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodG1wRmlsZW5hbWUuZGF0
YSgpKSk7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gYmFzZU5hbWUoZ19wYXRoX2dldF9iYXNlbmFt
ZSh0bXBGaWxlbmFtZS5nZXQoKSkpOwogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGJhc2VO
YW1lLmdldCgpKTsKIH0KIApAQCAtMjQyLDggKzIyMywxMSBAQCB1aW50NjRfdCBnZXRWb2x1bWVG
cmVlU2l6ZUZvclBhdGgoY29uc3QgY2hhciogcGF0aCkKIAogU3RyaW5nIGRpcmVjdG9yeU5hbWUo
Y29uc3QgU3RyaW5nJiBwYXRoKQogewotICAgIC8qIE5vIG51bGwgY2hlY2tpbmcgbmVlZGVkICov
Ci0gICAgR1VuaXF1ZVB0cjxjaGFyPiBkaXJuYW1lKGdfcGF0aF9nZXRfZGlybmFtZShmaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24ocGF0aCkuZGF0YSgpKSk7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4g
ZmlsZW5hbWUgPSB1bmVzY2FwZWRGaWxlbmFtZShwYXRoKTsKKyAgICBpZiAoIWZpbGVuYW1lKQor
ICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGRpcm5hbWUo
Z19wYXRoX2dldF9kaXJuYW1lKGZpbGVuYW1lLmdldCgpKSk7CiAgICAgcmV0dXJuIFN0cmluZzo6
ZnJvbVVURjgoZGlybmFtZS5nZXQoKSk7CiB9CiAKQEAgLTI1MSw4ICsyMzUsMTEgQEAgVmVjdG9y
PFN0cmluZz4gbGlzdERpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYg
ZmlsdGVyKQogewogICAgIFZlY3RvcjxTdHJpbmc+IGVudHJpZXM7CiAKLSAgICBDU3RyaW5nIGZp
bGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOwotICAgIEdVbmlxdWVQdHI8
R0Rpcj4gZGlyKGdfZGlyX29wZW4oZmlsZW5hbWUuZGF0YSgpLCAwLCBudWxscHRyKSk7CisgICAg
R1VuaXF1ZVB0cjxnY2hhcj4gZmlsZW5hbWUgPSB1bmVzY2FwZWRGaWxlbmFtZShwYXRoKTsKKyAg
ICBpZiAoIWZpbGVuYW1lKQorICAgICAgICByZXR1cm4gZW50cmllczsKKworICAgIEdVbmlxdWVQ
dHI8R0Rpcj4gZGlyKGdfZGlyX29wZW4oZmlsZW5hbWUuZ2V0KCksIDAsIG51bGxwdHIpKTsKICAg
ICBpZiAoIWRpcikKICAgICAgICAgcmV0dXJuIGVudHJpZXM7CiAKQEAgLTI2MSw3ICsyNDgsNyBA
QCBWZWN0b3I8U3RyaW5nPiBsaXN0RGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCwgY29uc3Qg
U3RyaW5nJiBmaWx0ZXIpCiAgICAgICAgIGlmICghZ19wYXR0ZXJuX21hdGNoX3N0cmluZyhwc3Bl
Yy5nZXQoKSwgbmFtZSkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBHVW5pcXVl
UHRyPGdjaGFyPiBlbnRyeShnX2J1aWxkX2ZpbGVuYW1lKGZpbGVuYW1lLmRhdGEoKSwgbmFtZSwg
TlVMTCkpOworICAgICAgICBHVW5pcXVlUHRyPGdjaGFyPiBlbnRyeShnX2J1aWxkX2ZpbGVuYW1l
KGZpbGVuYW1lLmdldCgpLCBuYW1lLCBudWxscHRyKSk7CiAgICAgICAgIGVudHJpZXMuYXBwZW5k
KGZpbGVuYW1lVG9TdHJpbmcoZW50cnkuZ2V0KCkpKTsKICAgICB9CiAKQEAgLTI4MiwxNiArMjY5
LDE2IEBAIFN0cmluZyBvcGVuVGVtcG9yYXJ5RmlsZShjb25zdCBTdHJpbmcmIHByZWZpeCwgUGxh
dGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCiAKIFBsYXRmb3JtRmlsZUhhbmRsZSBvcGVuRmlsZShj
b25zdCBTdHJpbmcmIHBhdGgsIEZpbGVPcGVuTW9kZSBtb2RlKQogewotICAgIENTdHJpbmcgZnNS
ZXAgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0aCk7Ci0gICAgaWYgKGZzUmVwLmlzTnVs
bCgpKQorICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZpbGVuYW1lID0gdW5lc2NhcGVkRmlsZW5hbWUo
cGF0aCk7CisgICAgaWYgKCFmaWxlbmFtZSkKICAgICAgICAgcmV0dXJuIGludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGU7CiAKLSAgICBHUmVmUHRyPEdGaWxlPiBmaWxlID0gYWRvcHRHUmVmKGdfZmls
ZV9uZXdfZm9yX3BhdGgoZnNSZXAuZGF0YSgpKSk7CisgICAgR1JlZlB0cjxHRmlsZT4gZmlsZSA9
IGFkb3B0R1JlZihnX2ZpbGVfbmV3X2Zvcl9wYXRoKGZpbGVuYW1lLmdldCgpKSk7CiAgICAgR0Zp
bGVJT1N0cmVhbSogaW9TdHJlYW0gPSAwOwogICAgIGlmIChtb2RlID09IE9wZW5Gb3JSZWFkKQog
ICAgICAgICBpb1N0cmVhbSA9IGdfZmlsZV9vcGVuX3JlYWR3cml0ZShmaWxlLmdldCgpLCAwLCAw
KTsKICAgICBlbHNlIGlmIChtb2RlID09IE9wZW5Gb3JXcml0ZSkgewotICAgICAgICBpZiAoZ19m
aWxlX3Rlc3QoZnNSZXAuZGF0YSgpLCBzdGF0aWNfY2FzdDxHRmlsZVRlc3Q+KEdfRklMRV9URVNU
X0VYSVNUUyB8IEdfRklMRV9URVNUX0lTX1JFR1VMQVIpKSkKKyAgICAgICAgaWYgKGdfZmlsZV90
ZXN0KGZpbGVuYW1lLmdldCgpLCBzdGF0aWNfY2FzdDxHRmlsZVRlc3Q+KEdfRklMRV9URVNUX0VY
SVNUUyB8IEdfRklMRV9URVNUX0lTX1JFR1VMQVIpKSkKICAgICAgICAgICAgIGlvU3RyZWFtID0g
Z19maWxlX29wZW5fcmVhZHdyaXRlKGZpbGUuZ2V0KCksIDAsIDApOwogICAgICAgICBlbHNlCiAg
ICAgICAgICAgICBpb1N0cmVhbSA9IGdfZmlsZV9jcmVhdGVfcmVhZHdyaXRlKGZpbGUuZ2V0KCks
IEdfRklMRV9DUkVBVEVfTk9ORSwgMCwgMCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221964</attachid>
            <date>2014-01-23 02:23:51 -0800</date>
            <delta_ts>2014-01-23 10:35:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-file-system-gtk2.diff</filename>
            <type>text/plain</type>
            <size>9263</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxNmZhMTE1Li40YzYwMmQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMTQtMDEtMjMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFtHVEtdIEF2b2lkIHVubmVjZXNzYXJ5IHN0cmluZyBkdXBsaWNhdGlvbnMg
aW4gRmlsZVN5c3RlbUd0aworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI3NDY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2UgYXJlIHVzaW5nIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbigpIGV2ZXJ5d2hl
cmUgaW50ZXJuYWxseQorICAgICAgICB3aGljaCByZXR1cm5zIGEgQ1N0cmluZyB0aGF0IGFsd2F5
cyBkdXBsaWNhdGVzIHRoZSBzdHJpbmcuCisgICAgICAgIEFkZCB1bmVzY2FwZWRGaWxlbmFtZSgp
IGludGVybmFsIGhlbHBlciBmdW5jdGlvbiB0aGF0IHJldHVybnMgYQorICAgICAgICBHVW5pcXVl
UHRyIGFuZCB1c2VkIGl0IGV2ZXJ5d2hlcmUgaW5zdGVhZCBvZiBmaWxlU3lzdGVtUmVwcmVzZW50
YXRpb24oKS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnVuZXNjYXBlZEZpbGVuYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmZp
bGVTeXN0ZW1SZXByZXNlbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpmaWxlbmFtZUZvckRp
c3BsYXkpOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZUV4aXN0cyk6CisgICAgICAgIChXZWJDb3Jl
OjpkZWxldGVGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmRlbGV0ZUVtcHR5RGlyZWN0b3J5KToK
KyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVTdGF0KToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZp
bGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OmdldEZpbGVNb2RpZmljYXRpb25UaW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OmdldEZpbGVNZXRhZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQpOgorICAgICAgICAoV2ViQ29yZTo6bWFrZUFsbERpcmVjdG9y
aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OnBhdGhHZXRGaWxlTmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjpkaXJlY3RvcnlOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6Omxpc3REaXJlY3RvcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6b3BlbkZpbGUpOgorCiAyMDE0LTAxLTIyICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR0xJQl0gVXNlIEdVbmlx
dWVQdHIgaW5zdGVhZCBvZiBHT3duUHRyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvRmlsZVN5c3RlbUd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
RmlsZVN5c3RlbUd0ay5jcHAKaW5kZXggN2ZjNDk0Ny4uOTBlMTRjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcApAQCAtNTQsMTIgKzU0LDE5IEBA
IFN0cmluZyBmaWxlbmFtZVRvU3RyaW5nKGNvbnN0IGNoYXIqIGZpbGVuYW1lKQogI2VuZGlmCiB9
CiAKK3N0YXRpYyBHVW5pcXVlUHRyPGNoYXI+IHVuZXNjYXBlZEZpbGVuYW1lKGNvbnN0IFN0cmlu
ZyYgcGF0aCkKK3sKKyAgICBpZiAocGF0aC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIHJldHVybiBHVW5pcXVlUHRyPGNoYXI+KGdfdXJpX3VuZXNjYXBlX3N0cmluZyhw
YXRoLnV0ZjgoKS5kYXRhKCksIG51bGxwdHIpKTsKK30KKwogQ1N0cmluZyBmaWxlU3lzdGVtUmVw
cmVzZW50YXRpb24oY29uc3QgU3RyaW5nJiBwYXRoKQogewogI2lmIE9TKFdJTkRPV1MpCiAgICAg
cmV0dXJuIHBhdGgudXRmOCgpOwogI2Vsc2UKLSAgICBHVW5pcXVlUHRyPGdjaGFyPiBmaWxlbmFt
ZShnX3VyaV91bmVzY2FwZV9zdHJpbmcocGF0aC51dGY4KCkuZGF0YSgpLCAwKSk7CisgICAgR1Vu
aXF1ZVB0cjxnY2hhcj4gZmlsZW5hbWUgPSB1bmVzY2FwZWRGaWxlbmFtZShwYXRoKTsKICAgICBy
ZXR1cm4gZmlsZW5hbWUuZ2V0KCk7CiAjZW5kaWYKIH0KQEAgLTcwLDggKzc3LDExIEBAIFN0cmlu
ZyBmaWxlbmFtZUZvckRpc3BsYXkoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAjaWYgT1MoV0lORE9X
UykKICAgICByZXR1cm4gc3RyaW5nOwogI2Vsc2UKLSAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmls
ZVN5c3RlbVJlcHJlc2VudGF0aW9uKHN0cmluZyk7Ci0gICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGlz
cGxheShnX2ZpbGVuYW1lX3RvX3V0ZjgoZmlsZW5hbWUuZGF0YSgpLCAwLCAwLCAwLCAwKSk7Cisg
ICAgR1VuaXF1ZVB0cjxnY2hhcj4gZmlsZW5hbWUgPSB1bmVzY2FwZWRGaWxlbmFtZShzdHJpbmcp
OworICAgIGlmICghZmlsZW5hbWUpCisgICAgICAgIHJldHVybiBzdHJpbmc7CisKKyAgICBHVW5p
cXVlUHRyPGdjaGFyPiBkaXNwbGF5KGdfZmlsZW5hbWVfdG9fdXRmOChmaWxlbmFtZS5nZXQoKSwg
LTEsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIpKTsKICAgICBpZiAoIWRpc3BsYXkpCiAgICAg
ICAgIHJldHVybiBzdHJpbmc7CiAKQEAgLTgxLDQ2ICs5MSwzNSBAQCBTdHJpbmcgZmlsZW5hbWVG
b3JEaXNwbGF5KGNvbnN0IFN0cmluZyYgc3RyaW5nKQogCiBib29sIGZpbGVFeGlzdHMoY29uc3Qg
U3RyaW5nJiBwYXRoKQogewotICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAgQ1N0cmluZyBm
aWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKLQotICAgIGlmICghZmls
ZW5hbWUuaXNOdWxsKCkpCi0gICAgICAgIHJlc3VsdCA9IGdfZmlsZV90ZXN0KGZpbGVuYW1lLmRh
dGEoKSwgR19GSUxFX1RFU1RfRVhJU1RTKTsKLQotICAgIHJldHVybiByZXN1bHQ7CisgICAgR1Vu
aXF1ZVB0cjxnY2hhcj4gZmlsZW5hbWUgPSB1bmVzY2FwZWRGaWxlbmFtZShwYXRoKTsKKyAgICBy
ZXR1cm4gZmlsZW5hbWUgPyBnX2ZpbGVfdGVzdChmaWxlbmFtZS5nZXQoKSwgR19GSUxFX1RFU1Rf
RVhJU1RTKSA6IGZhbHNlOwogfQogCiBib29sIGRlbGV0ZUZpbGUoY29uc3QgU3RyaW5nJiBwYXRo
KQogewotICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZp
bGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKLQotICAgIGlmICghZmlsZW5hbWUuaXNOdWxs
KCkpCi0gICAgICAgIHJlc3VsdCA9IGdfcmVtb3ZlKGZpbGVuYW1lLmRhdGEoKSkgPT0gMDsKLQot
ICAgIHJldHVybiByZXN1bHQ7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZmlsZW5hbWUgPSB1bmVz
Y2FwZWRGaWxlbmFtZShwYXRoKTsKKyAgICByZXR1cm4gZmlsZW5hbWUgPyBnX3JlbW92ZShmaWxl
bmFtZS5nZXQoKSkgIT0gLTEgOiBmYWxzZTsKIH0KIAogYm9vbCBkZWxldGVFbXB0eURpcmVjdG9y
eShjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBD
U3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOworICAgIEdV
bmlxdWVQdHI8Z2NoYXI+IGZpbGVuYW1lID0gdW5lc2NhcGVkRmlsZW5hbWUocGF0aCk7CisgICAg
cmV0dXJuIGZpbGVuYW1lID8gZ19ybWRpcihmaWxlbmFtZS5nZXQoKSkgIT0gLTEgOiBmYWxzZTsK
K30KIAotICAgIGlmICghZmlsZW5hbWUuaXNOdWxsKCkpCi0gICAgICAgIHJlc3VsdCA9IGdfcm1k
aXIoZmlsZW5hbWUuZGF0YSgpKSA9PSAwOworc3RhdGljIGJvb2wgZ2V0RmlsZVN0YXQoY29uc3Qg
U3RyaW5nJiBwYXRoLCBHU3RhdEJ1Ziogc3RhdEJ1ZmZlcikKK3sKKyAgICBHVW5pcXVlUHRyPGdj
aGFyPiBmaWxlbmFtZSA9IHVuZXNjYXBlZEZpbGVuYW1lKHBhdGgpOworICAgIGlmICghZmlsZW5h
bWUpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0
dXJuIGdfc3RhdChmaWxlbmFtZS5nZXQoKSwgc3RhdEJ1ZmZlcikgIT0gLTE7CiB9CiAKIGJvb2wg
Z2V0RmlsZVNpemUoY29uc3QgU3RyaW5nJiBwYXRoLCBsb25nIGxvbmcmIHJlc3VsdFNpemUpCiB7
Ci0gICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsK
LSAgICBpZiAoZmlsZW5hbWUuaXNOdWxsKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAg
IEdTdGF0QnVmIHN0YXRSZXN1bHQ7Ci0gICAgZ2ludCByZXN1bHQgPSBnX3N0YXQoZmlsZW5hbWUu
ZGF0YSgpLCAmc3RhdFJlc3VsdCk7Ci0gICAgaWYgKHJlc3VsdCAhPSAwKQorICAgIGlmICghZ2V0
RmlsZVN0YXQocGF0aCwgJnN0YXRSZXN1bHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICByZXN1bHRTaXplID0gc3RhdFJlc3VsdC5zdF9zaXplOwpAQCAtMTI5LDU1ICsxMjgsMzcgQEAg
Ym9vbCBnZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcmIHBhdGgsIGxvbmcgbG9uZyYgcmVzdWx0U2l6
ZSkKIAogYm9vbCBnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgsIHRp
bWVfdCYgbW9kaWZpZWRUaW1lKQogewotICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlU3lzdGVt
UmVwcmVzZW50YXRpb24ocGF0aCk7Ci0gICAgaWYgKGZpbGVuYW1lLmlzTnVsbCgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KICAgICBHU3RhdEJ1ZiBzdGF0UmVzdWx0OwotICAgIGdpbnQgcmVz
dWx0ID0gZ19zdGF0KGZpbGVuYW1lLmRhdGEoKSwgJnN0YXRSZXN1bHQpOwotICAgIGlmIChyZXN1
bHQgIT0gMCkKKyAgICBpZiAoIWdldEZpbGVTdGF0KHBhdGgsICZzdGF0UmVzdWx0KSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgbW9kaWZpZWRUaW1lID0gc3RhdFJlc3VsdC5zdF9tdGlt
ZTsKICAgICByZXR1cm4gdHJ1ZTsKLQogfQogCiBib29sIGdldEZpbGVNZXRhZGF0YShjb25zdCBT
dHJpbmcmIHBhdGgsIEZpbGVNZXRhZGF0YSYgbWV0YWRhdGEpCiB7Ci0gICAgQ1N0cmluZyBmaWxl
bmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKLSAgICBpZiAoZmlsZW5hbWUu
aXNOdWxsKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIHN0cnVjdCBzdGF0IHN0YXRS
ZXN1bHQ7Ci0gICAgZ2ludCByZXN1bHQgPSBnX3N0YXQoZmlsZW5hbWUuZGF0YSgpLCAmc3RhdFJl
c3VsdCk7Ci0gICAgaWYgKHJlc3VsdCkKKyAgICBHU3RhdEJ1ZiBzdGF0UmVzdWx0OworICAgIGlm
ICghZ2V0RmlsZVN0YXQocGF0aCwgJnN0YXRSZXN1bHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICBtZXRhZGF0YS5tb2RpZmljYXRpb25UaW1lID0gc3RhdFJlc3VsdC5zdF9tdGltZTsK
ICAgICBtZXRhZGF0YS5sZW5ndGggPSBzdGF0UmVzdWx0LnN0X3NpemU7CiAgICAgbWV0YWRhdGEu
dHlwZSA9IFNfSVNESVIoc3RhdFJlc3VsdC5zdF9tb2RlKSA/IEZpbGVNZXRhZGF0YTo6VHlwZURp
cmVjdG9yeSA6IEZpbGVNZXRhZGF0YTo6VHlwZUZpbGU7CiAgICAgcmV0dXJuIHRydWU7Ci0KIH0K
IAogU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgsIGNv
bnN0IFN0cmluZyYgY29tcG9uZW50KQogewogICAgIGlmIChwYXRoLmVuZHNXaXRoKEdfRElSX1NF
UEFSQVRPUl9TKSkKICAgICAgICAgcmV0dXJuIHBhdGggKyBjb21wb25lbnQ7Ci0gICAgZWxzZQot
ICAgICAgICByZXR1cm4gcGF0aCArIEdfRElSX1NFUEFSQVRPUl9TICsgY29tcG9uZW50OworICAg
IHJldHVybiBwYXRoICsgR19ESVJfU0VQQVJBVE9SX1MgKyBjb21wb25lbnQ7CiB9CiAKIGJvb2wg
bWFrZUFsbERpcmVjdG9yaWVzKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICBDU3RyaW5nIGZp
bGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOwotICAgIGlmIChmaWxlbmFt
ZS5pc051bGwoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgZ2ludCByZXN1bHQgPSBn
X21rZGlyX3dpdGhfcGFyZW50cyhmaWxlbmFtZS5kYXRhKCksIFNfSVJXWFUpOwotCi0gICAgcmV0
dXJuIHJlc3VsdCA9PSAwOworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZpbGVuYW1lID0gdW5lc2Nh
cGVkRmlsZW5hbWUocGF0aCk7CisgICAgcmV0dXJuIGZpbGVuYW1lID8gZ19ta2Rpcl93aXRoX3Bh
cmVudHMoZmlsZW5hbWUuZ2V0KCksIFNfSVJXWFUpICE9IC0xIDogZmFsc2U7CiB9CiAKIFN0cmlu
ZyBob21lRGlyZWN0b3J5UGF0aCgpCkBAIC0xODcsMTEgKzE2OCwxMSBAQCBTdHJpbmcgaG9tZURp
cmVjdG9yeVBhdGgoKQogCiBTdHJpbmcgcGF0aEdldEZpbGVOYW1lKGNvbnN0IFN0cmluZyYgcGF0
aE5hbWUpCiB7Ci0gICAgaWYgKHBhdGhOYW1lLmlzRW1wdHkoKSkKKyAgICBHVW5pcXVlUHRyPGdj
aGFyPiB0bXBGaWxlbmFtZSA9IHVuZXNjYXBlZEZpbGVuYW1lKHBhdGhOYW1lKTsKKyAgICBpZiAo
IXRtcEZpbGVuYW1lKQogICAgICAgICByZXR1cm4gcGF0aE5hbWU7CiAKLSAgICBDU3RyaW5nIHRt
cEZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGhOYW1lKTsKLSAgICBHVW5p
cXVlUHRyPGdjaGFyPiBiYXNlTmFtZShnX3BhdGhfZ2V0X2Jhc2VuYW1lKHRtcEZpbGVuYW1lLmRh
dGEoKSkpOworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGJhc2VOYW1lKGdfcGF0aF9nZXRfYmFzZW5h
bWUodG1wRmlsZW5hbWUuZ2V0KCkpKTsKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChiYXNl
TmFtZS5nZXQoKSk7CiB9CiAKQEAgLTI0Miw4ICsyMjMsMTEgQEAgdWludDY0X3QgZ2V0Vm9sdW1l
RnJlZVNpemVGb3JQYXRoKGNvbnN0IGNoYXIqIHBhdGgpCiAKIFN0cmluZyBkaXJlY3RvcnlOYW1l
KGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICAvKiBObyBudWxsIGNoZWNraW5nIG5lZWRlZCAq
LwotICAgIEdVbmlxdWVQdHI8Y2hhcj4gZGlybmFtZShnX3BhdGhfZ2V0X2Rpcm5hbWUoZmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpLmRhdGEoKSkpOworICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IGZpbGVuYW1lID0gdW5lc2NhcGVkRmlsZW5hbWUocGF0aCk7CisgICAgaWYgKCFmaWxlbmFtZSkK
KyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAgR1VuaXF1ZVB0cjxjaGFyPiBkaXJuYW1l
KGdfcGF0aF9nZXRfZGlybmFtZShmaWxlbmFtZS5nZXQoKSkpOwogICAgIHJldHVybiBTdHJpbmc6
OmZyb21VVEY4KGRpcm5hbWUuZ2V0KCkpOwogfQogCkBAIC0yNTEsOCArMjM1LDExIEBAIFZlY3Rv
cjxTdHJpbmc+IGxpc3REaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcm
IGZpbHRlcikKIHsKICAgICBWZWN0b3I8U3RyaW5nPiBlbnRyaWVzOwogCi0gICAgQ1N0cmluZyBm
aWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKLSAgICBHVW5pcXVlUHRy
PEdEaXI+IGRpcihnX2Rpcl9vcGVuKGZpbGVuYW1lLmRhdGEoKSwgMCwgbnVsbHB0cikpOworICAg
IEdVbmlxdWVQdHI8Z2NoYXI+IGZpbGVuYW1lID0gdW5lc2NhcGVkRmlsZW5hbWUocGF0aCk7Cisg
ICAgaWYgKCFmaWxlbmFtZSkKKyAgICAgICAgcmV0dXJuIGVudHJpZXM7CisKKyAgICBHVW5pcXVl
UHRyPEdEaXI+IGRpcihnX2Rpcl9vcGVuKGZpbGVuYW1lLmdldCgpLCAwLCBudWxscHRyKSk7CiAg
ICAgaWYgKCFkaXIpCiAgICAgICAgIHJldHVybiBlbnRyaWVzOwogCkBAIC0yNjEsNyArMjQ4LDcg
QEAgVmVjdG9yPFN0cmluZz4gbGlzdERpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0
IFN0cmluZyYgZmlsdGVyKQogICAgICAgICBpZiAoIWdfcGF0dGVybl9tYXRjaF9zdHJpbmcocHNw
ZWMuZ2V0KCksIG5hbWUpKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgR1VuaXF1
ZVB0cjxnY2hhcj4gZW50cnkoZ19idWlsZF9maWxlbmFtZShmaWxlbmFtZS5kYXRhKCksIG5hbWUs
IE5VTEwpKTsKKyAgICAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZW50cnkoZ19idWlsZF9maWxlbmFt
ZShmaWxlbmFtZS5nZXQoKSwgbmFtZSwgbnVsbHB0cikpOwogICAgICAgICBlbnRyaWVzLmFwcGVu
ZChmaWxlbmFtZVRvU3RyaW5nKGVudHJ5LmdldCgpKSk7CiAgICAgfQogCkBAIC0yODIsMTYgKzI2
OSwxNiBAQCBTdHJpbmcgb3BlblRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiBwcmVmaXgsIFBs
YXRmb3JtRmlsZUhhbmRsZSYgaGFuZGxlKQogCiBQbGF0Zm9ybUZpbGVIYW5kbGUgb3BlbkZpbGUo
Y29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlT3Blbk1vZGUgbW9kZSkKIHsKLSAgICBDU3RyaW5nIGZz
UmVwID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOwotICAgIGlmIChmc1JlcC5pc051
bGwoKSkKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBmaWxlbmFtZSA9IHVuZXNjYXBlZEZpbGVuYW1l
KHBhdGgpOworICAgIGlmICghZmlsZW5hbWUpCiAgICAgICAgIHJldHVybiBpbnZhbGlkUGxhdGZv
cm1GaWxlSGFuZGxlOwogCi0gICAgR1JlZlB0cjxHRmlsZT4gZmlsZSA9IGFkb3B0R1JlZihnX2Zp
bGVfbmV3X2Zvcl9wYXRoKGZzUmVwLmRhdGEoKSkpOworICAgIEdSZWZQdHI8R0ZpbGU+IGZpbGUg
PSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0aChmaWxlbmFtZS5nZXQoKSkpOwogICAgIEdG
aWxlSU9TdHJlYW0qIGlvU3RyZWFtID0gMDsKICAgICBpZiAobW9kZSA9PSBPcGVuRm9yUmVhZCkK
ICAgICAgICAgaW9TdHJlYW0gPSBnX2ZpbGVfb3Blbl9yZWFkd3JpdGUoZmlsZS5nZXQoKSwgMCwg
MCk7CiAgICAgZWxzZSBpZiAobW9kZSA9PSBPcGVuRm9yV3JpdGUpIHsKLSAgICAgICAgaWYgKGdf
ZmlsZV90ZXN0KGZzUmVwLmRhdGEoKSwgc3RhdGljX2Nhc3Q8R0ZpbGVUZXN0PihHX0ZJTEVfVEVT
VF9FWElTVFMgfCBHX0ZJTEVfVEVTVF9JU19SRUdVTEFSKSkpCisgICAgICAgIGlmIChnX2ZpbGVf
dGVzdChmaWxlbmFtZS5nZXQoKSwgc3RhdGljX2Nhc3Q8R0ZpbGVUZXN0PihHX0ZJTEVfVEVTVF9F
WElTVFMgfCBHX0ZJTEVfVEVTVF9JU19SRUdVTEFSKSkpCiAgICAgICAgICAgICBpb1N0cmVhbSA9
IGdfZmlsZV9vcGVuX3JlYWR3cml0ZShmaWxlLmdldCgpLCAwLCAwKTsKICAgICAgICAgZWxzZQog
ICAgICAgICAgICAgaW9TdHJlYW0gPSBnX2ZpbGVfY3JlYXRlX3JlYWR3cml0ZShmaWxlLmdldCgp
LCBHX0ZJTEVfQ1JFQVRFX05PTkUsIDAsIDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>221998</attachid>
            <date>2014-01-23 10:35:04 -0800</date>
            <delta_ts>2014-01-27 10:12:59 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>wcore-file-system-gtk3.diff</filename>
            <type>text/plain</type>
            <size>9359</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5ZjVkNmQzLi5iNWUyYTc2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMz
IEBACisyMDE0LTAxLTIzICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KKworICAgICAgICBbR1RLXSBBdm9pZCB1bm5lY2Vzc2FyeSBzdHJpbmcgZHVwbGljYXRpb25z
IGluIEZpbGVTeXN0ZW1HdGsKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTEyNzQ2OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFdlIGFyZSB1c2luZyBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oKSBldmVyeXdo
ZXJlIGludGVybmFsbHkKKyAgICAgICAgd2hpY2ggcmV0dXJucyBhIENTdHJpbmcgdGhhdCBhbHdh
eXMgZHVwbGljYXRlcyB0aGUgc3RyaW5nLgorICAgICAgICBBZGQgdW5lc2NhcGVkRmlsZW5hbWUo
KSBpbnRlcm5hbCBoZWxwZXIgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGEKKyAgICAgICAgR1VuaXF1
ZVB0ciBhbmQgdXNlZCBpdCBldmVyeXdoZXJlIGluc3RlYWQgb2YgZmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uKCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvRmlsZVN5c3RlbUd0ay5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjp1bmVzY2FwZWRGaWxlbmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpm
aWxlU3lzdGVtUmVwcmVzZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6ZmlsZW5hbWVGb3JE
aXNwbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OmZpbGVFeGlzdHMpOgorICAgICAgICAoV2ViQ29y
ZTo6ZGVsZXRlRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpkZWxldGVFbXB0eURpcmVjdG9yeSk6
CisgICAgICAgIChXZWJDb3JlOjpnZXRGaWxlU3RhdCk6CisgICAgICAgIChXZWJDb3JlOjpnZXRG
aWxlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpnZXRGaWxlTW9kaWZpY2F0aW9uVGltZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpnZXRGaWxlTWV0YWRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6cGF0
aEJ5QXBwZW5kaW5nQ29tcG9uZW50KToKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VBbGxEaXJlY3Rv
cmllcyk6CisgICAgICAgIChXZWJDb3JlOjpwYXRoR2V0RmlsZU5hbWUpOgorICAgICAgICAoV2Vi
Q29yZTo6ZGlyZWN0b3J5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpsaXN0RGlyZWN0b3J5KToK
KyAgICAgICAgKFdlYkNvcmU6Om9wZW5GaWxlKToKKwogMjAxNC0wMS0yMyAgcGVhdm9Ab3V0bG9v
ay5jb20gIDxwZWF2b0BvdXRsb29rLmNvbT4KIAogICAgICAgICBbQ3VybF0gVGhlcmUgaXMgbm8g
d2F5IHRvIHNwZWNpZnkgY2FjaGUgZm9sZGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3RrL0ZpbGVTeXN0ZW1HdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3RrL0ZpbGVTeXN0ZW1HdGsuY3BwCmluZGV4IDdmYzQ5NDcuLjdmYjAwNjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9GaWxlU3lzdGVtR3RrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvRmlsZVN5c3RlbUd0ay5jcHAKQEAgLTU0LDEyICs1NCwy
MyBAQCBTdHJpbmcgZmlsZW5hbWVUb1N0cmluZyhjb25zdCBjaGFyKiBmaWxlbmFtZSkKICNlbmRp
ZgogfQogCitzdGF0aWMgR1VuaXF1ZVB0cjxjaGFyPiB1bmVzY2FwZWRGaWxlbmFtZShjb25zdCBT
dHJpbmcmIHBhdGgpCit7CisgICAgaWYgKHBhdGguaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyNpZiBPUyhXSU5ET1dTKQorICAgIHJldHVybiBHVW5pcXVlUHRyPGNoYXI+KGdf
c3RyZHVwKHBhdGgudXRmOCgpLmRhdGEoKSkpOworI2Vsc2UKKyAgICByZXR1cm4gR1VuaXF1ZVB0
cjxjaGFyPihnX3VyaV91bmVzY2FwZV9zdHJpbmcocGF0aC51dGY4KCkuZGF0YSgpLCBudWxscHRy
KSk7CisjZW5kaWYKK30KKwogQ1N0cmluZyBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oY29uc3Qg
U3RyaW5nJiBwYXRoKQogewogI2lmIE9TKFdJTkRPV1MpCiAgICAgcmV0dXJuIHBhdGgudXRmOCgp
OwogI2Vsc2UKLSAgICBHVW5pcXVlUHRyPGdjaGFyPiBmaWxlbmFtZShnX3VyaV91bmVzY2FwZV9z
dHJpbmcocGF0aC51dGY4KCkuZGF0YSgpLCAwKSk7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZmls
ZW5hbWUgPSB1bmVzY2FwZWRGaWxlbmFtZShwYXRoKTsKICAgICByZXR1cm4gZmlsZW5hbWUuZ2V0
KCk7CiAjZW5kaWYKIH0KQEAgLTcwLDggKzgxLDExIEBAIFN0cmluZyBmaWxlbmFtZUZvckRpc3Bs
YXkoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAjaWYgT1MoV0lORE9XUykKICAgICByZXR1cm4gc3Ry
aW5nOwogI2Vsc2UKLSAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0
aW9uKHN0cmluZyk7Ci0gICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGlzcGxheShnX2ZpbGVuYW1lX3Rv
X3V0ZjgoZmlsZW5hbWUuZGF0YSgpLCAwLCAwLCAwLCAwKSk7CisgICAgR1VuaXF1ZVB0cjxnY2hh
cj4gZmlsZW5hbWUgPSB1bmVzY2FwZWRGaWxlbmFtZShzdHJpbmcpOworICAgIGlmICghZmlsZW5h
bWUpCisgICAgICAgIHJldHVybiBzdHJpbmc7CisKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBkaXNw
bGF5KGdfZmlsZW5hbWVfdG9fdXRmOChmaWxlbmFtZS5nZXQoKSwgLTEsIG51bGxwdHIsIG51bGxw
dHIsIG51bGxwdHIpKTsKICAgICBpZiAoIWRpc3BsYXkpCiAgICAgICAgIHJldHVybiBzdHJpbmc7
CiAKQEAgLTgxLDQ2ICs5NSwzNSBAQCBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0
cmluZyYgc3RyaW5nKQogCiBib29sIGZpbGVFeGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoKQogewot
ICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7Ci0gICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0
ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKLQotICAgIGlmICghZmlsZW5hbWUuaXNOdWxsKCkpCi0g
ICAgICAgIHJlc3VsdCA9IGdfZmlsZV90ZXN0KGZpbGVuYW1lLmRhdGEoKSwgR19GSUxFX1RFU1Rf
RVhJU1RTKTsKLQotICAgIHJldHVybiByZXN1bHQ7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZmls
ZW5hbWUgPSB1bmVzY2FwZWRGaWxlbmFtZShwYXRoKTsKKyAgICByZXR1cm4gZmlsZW5hbWUgPyBn
X2ZpbGVfdGVzdChmaWxlbmFtZS5nZXQoKSwgR19GSUxFX1RFU1RfRVhJU1RTKSA6IGZhbHNlOwog
fQogCiBib29sIGRlbGV0ZUZpbGUoY29uc3QgU3RyaW5nJiBwYXRoKQogewotICAgIGJvb2wgcmVz
dWx0ID0gZmFsc2U7Ci0gICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRh
dGlvbihwYXRoKTsKLQotICAgIGlmICghZmlsZW5hbWUuaXNOdWxsKCkpCi0gICAgICAgIHJlc3Vs
dCA9IGdfcmVtb3ZlKGZpbGVuYW1lLmRhdGEoKSkgPT0gMDsKLQotICAgIHJldHVybiByZXN1bHQ7
CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZmlsZW5hbWUgPSB1bmVzY2FwZWRGaWxlbmFtZShwYXRo
KTsKKyAgICByZXR1cm4gZmlsZW5hbWUgPyBnX3JlbW92ZShmaWxlbmFtZS5nZXQoKSkgIT0gLTEg
OiBmYWxzZTsKIH0KIAogYm9vbCBkZWxldGVFbXB0eURpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBh
dGgpCiB7Ci0gICAgYm9vbCByZXN1bHQgPSBmYWxzZTsKLSAgICBDU3RyaW5nIGZpbGVuYW1lID0g
ZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHBhdGgpOworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZp
bGVuYW1lID0gdW5lc2NhcGVkRmlsZW5hbWUocGF0aCk7CisgICAgcmV0dXJuIGZpbGVuYW1lID8g
Z19ybWRpcihmaWxlbmFtZS5nZXQoKSkgIT0gLTEgOiBmYWxzZTsKK30KIAotICAgIGlmICghZmls
ZW5hbWUuaXNOdWxsKCkpCi0gICAgICAgIHJlc3VsdCA9IGdfcm1kaXIoZmlsZW5hbWUuZGF0YSgp
KSA9PSAwOworc3RhdGljIGJvb2wgZ2V0RmlsZVN0YXQoY29uc3QgU3RyaW5nJiBwYXRoLCBHU3Rh
dEJ1Ziogc3RhdEJ1ZmZlcikKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBmaWxlbmFtZSA9IHVu
ZXNjYXBlZEZpbGVuYW1lKHBhdGgpOworICAgIGlmICghZmlsZW5hbWUpCisgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIGdfc3RhdChmaWxlbmFt
ZS5nZXQoKSwgc3RhdEJ1ZmZlcikgIT0gLTE7CiB9CiAKIGJvb2wgZ2V0RmlsZVNpemUoY29uc3Qg
U3RyaW5nJiBwYXRoLCBsb25nIGxvbmcmIHJlc3VsdFNpemUpCiB7Ci0gICAgQ1N0cmluZyBmaWxl
bmFtZSA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKLSAgICBpZiAoZmlsZW5hbWUu
aXNOdWxsKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQogICAgIEdTdGF0QnVmIHN0YXRSZXN1
bHQ7Ci0gICAgZ2ludCByZXN1bHQgPSBnX3N0YXQoZmlsZW5hbWUuZGF0YSgpLCAmc3RhdFJlc3Vs
dCk7Ci0gICAgaWYgKHJlc3VsdCAhPSAwKQorICAgIGlmICghZ2V0RmlsZVN0YXQocGF0aCwgJnN0
YXRSZXN1bHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXN1bHRTaXplID0gc3Rh
dFJlc3VsdC5zdF9zaXplOwpAQCAtMTI5LDU1ICsxMzIsMzcgQEAgYm9vbCBnZXRGaWxlU2l6ZShj
b25zdCBTdHJpbmcmIHBhdGgsIGxvbmcgbG9uZyYgcmVzdWx0U2l6ZSkKIAogYm9vbCBnZXRGaWxl
TW9kaWZpY2F0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgsIHRpbWVfdCYgbW9kaWZpZWRUaW1l
KQogewotICAgIENTdHJpbmcgZmlsZW5hbWUgPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24ocGF0
aCk7Ci0gICAgaWYgKGZpbGVuYW1lLmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
ICAgICBHU3RhdEJ1ZiBzdGF0UmVzdWx0OwotICAgIGdpbnQgcmVzdWx0ID0gZ19zdGF0KGZpbGVu
YW1lLmRhdGEoKSwgJnN0YXRSZXN1bHQpOwotICAgIGlmIChyZXN1bHQgIT0gMCkKKyAgICBpZiAo
IWdldEZpbGVTdGF0KHBhdGgsICZzdGF0UmVzdWx0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgbW9kaWZpZWRUaW1lID0gc3RhdFJlc3VsdC5zdF9tdGltZTsKICAgICByZXR1cm4gdHJ1
ZTsKLQogfQogCiBib29sIGdldEZpbGVNZXRhZGF0YShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVN
ZXRhZGF0YSYgbWV0YWRhdGEpCiB7Ci0gICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0ZW1S
ZXByZXNlbnRhdGlvbihwYXRoKTsKLSAgICBpZiAoZmlsZW5hbWUuaXNOdWxsKCkpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIHN0cnVjdCBzdGF0IHN0YXRSZXN1bHQ7Ci0gICAgZ2ludCBy
ZXN1bHQgPSBnX3N0YXQoZmlsZW5hbWUuZGF0YSgpLCAmc3RhdFJlc3VsdCk7Ci0gICAgaWYgKHJl
c3VsdCkKKyAgICBHU3RhdEJ1ZiBzdGF0UmVzdWx0OworICAgIGlmICghZ2V0RmlsZVN0YXQocGF0
aCwgJnN0YXRSZXN1bHQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBtZXRhZGF0YS5t
b2RpZmljYXRpb25UaW1lID0gc3RhdFJlc3VsdC5zdF9tdGltZTsKICAgICBtZXRhZGF0YS5sZW5n
dGggPSBzdGF0UmVzdWx0LnN0X3NpemU7CiAgICAgbWV0YWRhdGEudHlwZSA9IFNfSVNESVIoc3Rh
dFJlc3VsdC5zdF9tb2RlKSA/IEZpbGVNZXRhZGF0YTo6VHlwZURpcmVjdG9yeSA6IEZpbGVNZXRh
ZGF0YTo6VHlwZUZpbGU7CiAgICAgcmV0dXJuIHRydWU7Ci0KIH0KIAogU3RyaW5nIHBhdGhCeUFw
cGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgY29tcG9u
ZW50KQogewogICAgIGlmIChwYXRoLmVuZHNXaXRoKEdfRElSX1NFUEFSQVRPUl9TKSkKICAgICAg
ICAgcmV0dXJuIHBhdGggKyBjb21wb25lbnQ7Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gcGF0
aCArIEdfRElSX1NFUEFSQVRPUl9TICsgY29tcG9uZW50OworICAgIHJldHVybiBwYXRoICsgR19E
SVJfU0VQQVJBVE9SX1MgKyBjb21wb25lbnQ7CiB9CiAKIGJvb2wgbWFrZUFsbERpcmVjdG9yaWVz
KGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICBDU3RyaW5nIGZpbGVuYW1lID0gZmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKHBhdGgpOwotICAgIGlmIChmaWxlbmFtZS5pc051bGwoKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgZ2ludCByZXN1bHQgPSBnX21rZGlyX3dpdGhfcGFyZW50
cyhmaWxlbmFtZS5kYXRhKCksIFNfSVJXWFUpOwotCi0gICAgcmV0dXJuIHJlc3VsdCA9PSAwOwor
ICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZpbGVuYW1lID0gdW5lc2NhcGVkRmlsZW5hbWUocGF0aCk7
CisgICAgcmV0dXJuIGZpbGVuYW1lID8gZ19ta2Rpcl93aXRoX3BhcmVudHMoZmlsZW5hbWUuZ2V0
KCksIFNfSVJXWFUpICE9IC0xIDogZmFsc2U7CiB9CiAKIFN0cmluZyBob21lRGlyZWN0b3J5UGF0
aCgpCkBAIC0xODcsMTEgKzE3MiwxMSBAQCBTdHJpbmcgaG9tZURpcmVjdG9yeVBhdGgoKQogCiBT
dHJpbmcgcGF0aEdldEZpbGVOYW1lKGNvbnN0IFN0cmluZyYgcGF0aE5hbWUpCiB7Ci0gICAgaWYg
KHBhdGhOYW1lLmlzRW1wdHkoKSkKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiB0bXBGaWxlbmFtZSA9
IHVuZXNjYXBlZEZpbGVuYW1lKHBhdGhOYW1lKTsKKyAgICBpZiAoIXRtcEZpbGVuYW1lKQogICAg
ICAgICByZXR1cm4gcGF0aE5hbWU7CiAKLSAgICBDU3RyaW5nIHRtcEZpbGVuYW1lID0gZmlsZVN5
c3RlbVJlcHJlc2VudGF0aW9uKHBhdGhOYW1lKTsKLSAgICBHVW5pcXVlUHRyPGdjaGFyPiBiYXNl
TmFtZShnX3BhdGhfZ2V0X2Jhc2VuYW1lKHRtcEZpbGVuYW1lLmRhdGEoKSkpOworICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IGJhc2VOYW1lKGdfcGF0aF9nZXRfYmFzZW5hbWUodG1wRmlsZW5hbWUuZ2V0
KCkpKTsKICAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChiYXNlTmFtZS5nZXQoKSk7CiB9CiAK
QEAgLTI0Miw4ICsyMjcsMTEgQEAgdWludDY0X3QgZ2V0Vm9sdW1lRnJlZVNpemVGb3JQYXRoKGNv
bnN0IGNoYXIqIHBhdGgpCiAKIFN0cmluZyBkaXJlY3RvcnlOYW1lKGNvbnN0IFN0cmluZyYgcGF0
aCkKIHsKLSAgICAvKiBObyBudWxsIGNoZWNraW5nIG5lZWRlZCAqLwotICAgIEdVbmlxdWVQdHI8
Y2hhcj4gZGlybmFtZShnX3BhdGhfZ2V0X2Rpcm5hbWUoZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
KHBhdGgpLmRhdGEoKSkpOworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZpbGVuYW1lID0gdW5lc2Nh
cGVkRmlsZW5hbWUocGF0aCk7CisgICAgaWYgKCFmaWxlbmFtZSkKKyAgICAgICAgcmV0dXJuIFN0
cmluZygpOworCisgICAgR1VuaXF1ZVB0cjxjaGFyPiBkaXJuYW1lKGdfcGF0aF9nZXRfZGlybmFt
ZShmaWxlbmFtZS5nZXQoKSkpOwogICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGRpcm5hbWUu
Z2V0KCkpOwogfQogCkBAIC0yNTEsOCArMjM5LDExIEBAIFZlY3RvcjxTdHJpbmc+IGxpc3REaXJl
Y3RvcnkoY29uc3QgU3RyaW5nJiBwYXRoLCBjb25zdCBTdHJpbmcmIGZpbHRlcikKIHsKICAgICBW
ZWN0b3I8U3RyaW5nPiBlbnRyaWVzOwogCi0gICAgQ1N0cmluZyBmaWxlbmFtZSA9IGZpbGVTeXN0
ZW1SZXByZXNlbnRhdGlvbihwYXRoKTsKLSAgICBHVW5pcXVlUHRyPEdEaXI+IGRpcihnX2Rpcl9v
cGVuKGZpbGVuYW1lLmRhdGEoKSwgMCwgbnVsbHB0cikpOworICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IGZpbGVuYW1lID0gdW5lc2NhcGVkRmlsZW5hbWUocGF0aCk7CisgICAgaWYgKCFmaWxlbmFtZSkK
KyAgICAgICAgcmV0dXJuIGVudHJpZXM7CisKKyAgICBHVW5pcXVlUHRyPEdEaXI+IGRpcihnX2Rp
cl9vcGVuKGZpbGVuYW1lLmdldCgpLCAwLCBudWxscHRyKSk7CiAgICAgaWYgKCFkaXIpCiAgICAg
ICAgIHJldHVybiBlbnRyaWVzOwogCkBAIC0yNjEsNyArMjUyLDcgQEAgVmVjdG9yPFN0cmluZz4g
bGlzdERpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgsIGNvbnN0IFN0cmluZyYgZmlsdGVyKQog
ICAgICAgICBpZiAoIWdfcGF0dGVybl9tYXRjaF9zdHJpbmcocHNwZWMuZ2V0KCksIG5hbWUpKQog
ICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZW50cnko
Z19idWlsZF9maWxlbmFtZShmaWxlbmFtZS5kYXRhKCksIG5hbWUsIE5VTEwpKTsKKyAgICAgICAg
R1VuaXF1ZVB0cjxnY2hhcj4gZW50cnkoZ19idWlsZF9maWxlbmFtZShmaWxlbmFtZS5nZXQoKSwg
bmFtZSwgbnVsbHB0cikpOwogICAgICAgICBlbnRyaWVzLmFwcGVuZChmaWxlbmFtZVRvU3RyaW5n
KGVudHJ5LmdldCgpKSk7CiAgICAgfQogCkBAIC0yODIsMTYgKzI3MywxNiBAQCBTdHJpbmcgb3Bl
blRlbXBvcmFyeUZpbGUoY29uc3QgU3RyaW5nJiBwcmVmaXgsIFBsYXRmb3JtRmlsZUhhbmRsZSYg
aGFuZGxlKQogCiBQbGF0Zm9ybUZpbGVIYW5kbGUgb3BlbkZpbGUoY29uc3QgU3RyaW5nJiBwYXRo
LCBGaWxlT3Blbk1vZGUgbW9kZSkKIHsKLSAgICBDU3RyaW5nIGZzUmVwID0gZmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uKHBhdGgpOwotICAgIGlmIChmc1JlcC5pc051bGwoKSkKKyAgICBHVW5pcXVl
UHRyPGdjaGFyPiBmaWxlbmFtZSA9IHVuZXNjYXBlZEZpbGVuYW1lKHBhdGgpOworICAgIGlmICgh
ZmlsZW5hbWUpCiAgICAgICAgIHJldHVybiBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOwogCi0g
ICAgR1JlZlB0cjxHRmlsZT4gZmlsZSA9IGFkb3B0R1JlZihnX2ZpbGVfbmV3X2Zvcl9wYXRoKGZz
UmVwLmRhdGEoKSkpOworICAgIEdSZWZQdHI8R0ZpbGU+IGZpbGUgPSBhZG9wdEdSZWYoZ19maWxl
X25ld19mb3JfcGF0aChmaWxlbmFtZS5nZXQoKSkpOwogICAgIEdGaWxlSU9TdHJlYW0qIGlvU3Ry
ZWFtID0gMDsKICAgICBpZiAobW9kZSA9PSBPcGVuRm9yUmVhZCkKICAgICAgICAgaW9TdHJlYW0g
PSBnX2ZpbGVfb3Blbl9yZWFkd3JpdGUoZmlsZS5nZXQoKSwgMCwgMCk7CiAgICAgZWxzZSBpZiAo
bW9kZSA9PSBPcGVuRm9yV3JpdGUpIHsKLSAgICAgICAgaWYgKGdfZmlsZV90ZXN0KGZzUmVwLmRh
dGEoKSwgc3RhdGljX2Nhc3Q8R0ZpbGVUZXN0PihHX0ZJTEVfVEVTVF9FWElTVFMgfCBHX0ZJTEVf
VEVTVF9JU19SRUdVTEFSKSkpCisgICAgICAgIGlmIChnX2ZpbGVfdGVzdChmaWxlbmFtZS5nZXQo
KSwgc3RhdGljX2Nhc3Q8R0ZpbGVUZXN0PihHX0ZJTEVfVEVTVF9FWElTVFMgfCBHX0ZJTEVfVEVT
VF9JU19SRUdVTEFSKSkpCiAgICAgICAgICAgICBpb1N0cmVhbSA9IGdfZmlsZV9vcGVuX3JlYWR3
cml0ZShmaWxlLmdldCgpLCAwLCAwKTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgaW9TdHJl
YW0gPSBnX2ZpbGVfY3JlYXRlX3JlYWR3cml0ZShmaWxlLmdldCgpLCBHX0ZJTEVfQ1JFQVRFX05P
TkUsIDAsIDApOwo=
</data>
<flag name="review"
          id="245981"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>