<?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>44077</bug_id>
          
          <creation_ts>2010-08-16 15:14:52 -0700</creation_ts>
          <short_desc>[chromium] Prepare to rename WebFileSystem interface to WebFileUtilities</short_desc>
          <delta_ts>2010-08-16 21:37:30 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Kinuko Yasuda">kinuko</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ericu</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>jianli</cc>
    
    <cc>kkanetkar</cc>
    
    <cc>michaeln</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>265254</commentid>
    <comment_count>0</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-16 15:14:52 -0700</bug_when>
    <thetext>Now that we&apos;re going to implement HTML5 FileSystem API, it&apos;d be natural to have WebFileSystem as a WebKit API for HTML5 FileSystem and to rename current WebFileSystem (that implements platform/FileSystem methods) to something like WebFileUtilities.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265267</commentid>
    <comment_count>1</comment_count>
      <attachid>64528</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-16 15:40:14 -0700</bug_when>
    <thetext>Created attachment 64528
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265273</commentid>
    <comment_count>2</comment_count>
      <attachid>64528</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-08-16 15:55:27 -0700</bug_when>
    <thetext>Comment on attachment 64528
Patch

Please add &quot;[chromium]&quot; prefix to the bug title and ChangeLog description. Please also mention why we need to rename WebFileSystem to WebFileUtilities (probably same thing as you put in the bug detail).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265290</commentid>
    <comment_count>3</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-16 16:24:27 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 64528 [details])
&gt; Please add &quot;[chromium]&quot; prefix to the bug title and ChangeLog description. Please also mention why we need to rename WebFileSystem to WebFileUtilities (probably same thing as you put in the bug detail).

Sorry for lack of description/discussion, there was a discussion about how the new API for the HTML5 FileSystem should be named/defined (you can see some of the discussion at https://bugs.webkit.org/show_bug.cgi?id=43151).

Basically why this patch tries to rename WebFileSystem to WebFileUtilities is that we thought it would be less confusing (for external API users - which happen to be chromium only) to make &quot;WebFileSystem&quot; a corresponding API of HTML5 FileSystem.   (Internally WebFileSystem implements platform/FileSystem so renaming it to another has some side effect too.)   How do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265291</commentid>
    <comment_count>4</comment_count>
      <attachid>64535</attachid>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-16 16:27:31 -0700</bug_when>
    <thetext>Created attachment 64535
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265313</commentid>
    <comment_count>5</comment_count>
      <attachid>64535</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2010-08-16 17:34:11 -0700</bug_when>
    <thetext>Comment on attachment 64535
Patch

Looks good except minor issues. Please fix them before you land the patch.

WebKit/chromium/public/WebFileSystem.h:38
 +  // FIXME: Clean up this class once the renaming to WebFileUtilities has done.
has done =&gt; is done

Please also change all other occurrences.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265351</commentid>
    <comment_count>6</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-16 20:53:59 -0700</bug_when>
    <thetext>Committed r65482: &lt;http://trac.webkit.org/changeset/65482&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265354</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-16 21:08:53 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/65482 might have broken Chromium Win Release</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>265356</commentid>
    <comment_count>8</comment_count>
    <who name="Kinuko Yasuda">kinuko</who>
    <bug_when>2010-08-16 21:37:30 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; http://trac.webkit.org/changeset/65482 might have broken Chromium Win Release

This has been fixed in http://trac.webkit.org/changeset/65485.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64528</attachid>
            <date>2010-08-16 15:40:14 -0700</date>
            <delta_ts>2010-08-16 16:27:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44077-20100816154012.patch</filename>
            <type>text/plain</type>
            <size>14283</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGE0Yzg0NWNhNzJmZmM1ODgzODM2MDc2OTNkNGE5YjhhOTVjNTI2MzAu
LjQwOTlmNDExNmE2MmE0OGVmMGRjZWY1MjY3ZmE3NzQwOWI4NDgyNGMgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDM3IEBACisyMDEwLTA4LTE2ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBQcmVwYXJlIHRvIHJlbmFtZSBXZWJGaWxlU3lzdGVtIGludGVyZmFjZSB0byBXZWJGaWxlVXRp
bGl0aWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00
NDA3NworCisgICAgICAgIEFkZCBXZWJGaWxlVXRpbGl0aWVzIEFQSSAodGhhdCBpcyBnb2luZyB0
byBiZSBhIHJlcGxhY2VtZW50IG9mIGN1cnJlbnQKKyAgICAgICAgV2ViRmlsZVN5c3RlbSkgYW5k
IFdlYktpdENsaWVudDo6ZmlsZVV0aWxpdGllcygpIG1ldGhvZC4KKworICAgICAgICAqIFdlYktp
dC5neXA6CisgICAgICAgICogcHVibGljL1dlYkZpbGVTeXN0ZW0uaDoKKyAgICAgICAgKiBwdWJs
aWMvV2ViRmlsZVV0aWxpdGllcy5oOiBBZGRlZC4KKyAgICAgICAgKiBwdWJsaWMvV2ViS2l0Q2xp
ZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYktpdENsaWVudDo6ZmlsZVV0aWxpdGllcyk6IEFk
ZGVkLgorICAgICAgICAqIHNyYy9DaHJvbWl1bUJyaWRnZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWl1bUJyaWRnZTo6ZmlsZUV4aXN0cyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1
bUJyaWRnZTo6ZGVsZXRlRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6
ZGVsZXRlRW1wdHlEaXJlY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6
OmdldEZpbGVTaXplKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpnZXRGaWxl
TW9kaWZpY2F0aW9uVGltZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6ZGly
ZWN0b3J5TmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6cGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjptYWtl
QWxsRGlyZWN0b3JpZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OmdldEFi
c29sdXRlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6aXNEaXJlY3Rv
cnkpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OmZpbGVQYXRoVG9VUkwpOgor
ICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6Om9wZW5GaWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9taXVtQnJpZGdlOjpjbG9zZUZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21pdW1CcmlkZ2U6OnNlZWtGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdl
Ojp0cnVuY2F0ZUZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OnJlYWRG
cm9tRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6d3JpdGVUb0ZpbGUp
OgorCiAyMDEwLTA4LTA3ICBKYXkgQ2l2ZWxsaSAgPGpjaXZlbGxpQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKaW5kZXggMDZmZDgy
Y2JiOWJlOTAwMWNjNjdmYzg0NzA0YTA2YjYzMzk4ZDljMy4uYjkxODM3MWMxYWYzY2JjNzIzZWNi
MWUyODIxNmFlYzhiNDZkZTI2MCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXAKKysrIGIvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKQEAgLTE1Myw2ICsxNTMsNyBAQAog
ICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRmlsZUNob29zZXJQYXJhbXMuaCcsCiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJGaWxlSW5mby5oJywKICAgICAgICAgICAgICAgICAncHVibGlj
L1dlYkZpbGVTeXN0ZW0uaCcsCisgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJGaWxlVXRpbGl0
aWVzLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRmluZE9wdGlvbnMuaCcsCiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJGbG9hdFBvaW50LmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViRmxvYXRSZWN0LmgnLApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJGaWxlU3lzdGVtLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZpbGVTeXN0ZW0u
aAppbmRleCBmYzZlNmRkNjBiZmMxMjk4ZWUwNDA1MjJkNTg3ZTQ3ODc0NjlmN2Y5Li44OTYwZDg5
NzYzMmIyY2U2YjRjZjQ4MzQ0Yjg0ZGI5MzI1ZmJmMDYzIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkZpbGVTeXN0ZW0uaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYkZpbGVTeXN0ZW0uaApAQCAtMzEsNDEgKzMxLDEyIEBACiAjaWZuZGVmIFdlYkZpbGVTeXN0
ZW1faAogI2RlZmluZSBXZWJGaWxlU3lzdGVtX2gKIAotI2luY2x1ZGUgIldlYkNvbW1vbi5oIgot
I2luY2x1ZGUgIldlYlN0cmluZy5oIgotI2luY2x1ZGUgIldlYlVSTC5oIgorI2luY2x1ZGUgIldl
YkZpbGVVdGlsaXRpZXMuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYkZpbGVT
eXN0ZW0gewotcHVibGljOgotI2lmZGVmIFdJTjMyCi0gICAgdHlwZWRlZiBIQU5ETEUgRmlsZUhh
bmRsZTsKLSNlbHNlCi0gICAgdHlwZWRlZiBpbnQgRmlsZUhhbmRsZTsKLSNlbmRpZgotCi0gICAg
dmlydHVhbCBib29sIGZpbGVFeGlzdHMoY29uc3QgV2ViU3RyaW5nJiBwYXRoKSB7IHJldHVybiBm
YWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBkZWxldGVGaWxlKGNvbnN0IFdlYlN0cmluZyYgcGF0
aCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlRW1wdHlEaXJlY3Rv
cnkoY29uc3QgV2ViU3RyaW5nJiBwYXRoKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwg
Ym9vbCBnZXRGaWxlU2l6ZShjb25zdCBXZWJTdHJpbmcmIHBhdGgsIGxvbmcgbG9uZyYgcmVzdWx0
KSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBnZXRGaWxlTW9kaWZpY2F0aW9u
VGltZShjb25zdCBXZWJTdHJpbmcmIHBhdGgsIGRvdWJsZSYgcmVzdWx0KSB7IHJldHVybiBmYWxz
ZTsgfQotICAgIHZpcnR1YWwgV2ViU3RyaW5nIGRpcmVjdG9yeU5hbWUoY29uc3QgV2ViU3RyaW5n
JiBwYXRoKSAgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KLSAgICB2aXJ0dWFsIFdlYlN0cmluZyBw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnQoY29uc3QgV2ViU3RyaW5nJiBwYXRoLCBjb25zdCBXZWJT
dHJpbmcmIGNvbXBvbmVudCkgIHsgcmV0dXJuIFdlYlN0cmluZygpOyB9Ci0gICAgdmlydHVhbCBi
b29sIG1ha2VBbGxEaXJlY3Rvcmllcyhjb25zdCBXZWJTdHJpbmcmIHBhdGgpIHsgcmV0dXJuIGZh
bHNlOyB9Ci0gICAgdmlydHVhbCBXZWJTdHJpbmcgZ2V0QWJzb2x1dGVQYXRoKGNvbnN0IFdlYlN0
cmluZyYgcGF0aCkgIHsgcmV0dXJuIFdlYlN0cmluZygpOyB9Ci0gICAgdmlydHVhbCBib29sIGlz
RGlyZWN0b3J5KGNvbnN0IFdlYlN0cmluZyYgcGF0aCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2
aXJ0dWFsIFdlYlVSTCBmaWxlUGF0aFRvVVJMKGNvbnN0IFdlYlN0cmluZyYgcGF0aCkgIHsgcmV0
dXJuIFdlYlVSTCgpOyB9Ci0gICAgdmlydHVhbCBGaWxlSGFuZGxlIG9wZW5GaWxlKGNvbnN0IFdl
YlN0cmluZyYgcGF0aCwgaW50IG1vZGUpICB7IHJldHVybiBGaWxlSGFuZGxlKCk7IH0KLSAgICAv
LyBTaG91bGQgc2V0IHRoZSBGaWxlSGFuZGxlIHRvIGEgaW52YWxpZCB2YWx1ZSBpZiB0aGUgZmls
ZSBpcyBjbG9zZWQgc3VjY2Vzc2Z1bGx5LgotICAgIHZpcnR1YWwgdm9pZCBjbG9zZUZpbGUoRmls
ZUhhbmRsZSYpIHsgfQotICAgIHZpcnR1YWwgbG9uZyBsb25nIHNlZWtGaWxlKEZpbGVIYW5kbGUs
IGxvbmcgbG9uZyBvZmZzZXQsIGludCBvcmlnaW4pIHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFs
IGJvb2wgdHJ1bmNhdGVGaWxlKEZpbGVIYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQpIHsgcmV0dXJu
IGZhbHNlOyB9Ci0gICAgdmlydHVhbCBpbnQgcmVhZEZyb21GaWxlKEZpbGVIYW5kbGUsIGNoYXIq
IGRhdGEsIGludCBsZW5ndGgpIHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGludCB3cml0ZVRv
RmlsZShGaWxlSGFuZGxlLCBjb25zdCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKSB7IHJldHVybiAw
OyB9Ci0KLXByb3RlY3RlZDoKLSAgICB+V2ViRmlsZVN5c3RlbSgpIHt9CisvLyBGSVhNRTogQ2xl
YW4gdXAgdGhpcyBjbGFzcyBvbmNlIHRoZSByZW5hbWluZyB0byBXZWJGaWxlVXRpbGl0aWVzIGhh
cyBkb25lLgorY2xhc3MgV2ViRmlsZVN5c3RlbSA6IHB1YmxpYyBXZWJGaWxlVXRpbGl0aWVzIHsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJGaWxlVXRpbGl0aWVzLmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkZp
bGVVdGlsaXRpZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNGQwMTNjZmY0ZGVkMWI4MTM5MWMxNDYzMTJkYzJj
MWY1MjM2OWFlCi0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJG
aWxlVXRpbGl0aWVzLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAg
ICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAg
KiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisg
KiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdy
aXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRI
RSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElN
SVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisg
KiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViRmlsZVV0aWxpdGllc19o
CisjZGVmaW5lIFdlYkZpbGVVdGlsaXRpZXNfaAorCisjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisj
aW5jbHVkZSAiV2ViU3RyaW5nLmgiCisjaW5jbHVkZSAiV2ViVVJMLmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBXZWJGaWxlVXRpbGl0aWVzIHsKK3B1YmxpYzoKKyNpZmRlZiBXSU4z
MgorICAgIHR5cGVkZWYgSEFORExFIEZpbGVIYW5kbGU7CisjZWxzZQorICAgIHR5cGVkZWYgaW50
IEZpbGVIYW5kbGU7CisjZW5kaWYKKworICAgIHZpcnR1YWwgYm9vbCBmaWxlRXhpc3RzKGNvbnN0
IFdlYlN0cmluZyYgcGF0aCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgZGVs
ZXRlRmlsZShjb25zdCBXZWJTdHJpbmcmIHBhdGgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmly
dHVhbCBib29sIGRlbGV0ZUVtcHR5RGlyZWN0b3J5KGNvbnN0IFdlYlN0cmluZyYgcGF0aCkgeyBy
ZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgZ2V0RmlsZVNpemUoY29uc3QgV2ViU3Ry
aW5nJiBwYXRoLCBsb25nIGxvbmcmIHJlc3VsdCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIGJvb2wgZ2V0RmlsZU1vZGlmaWNhdGlvblRpbWUoY29uc3QgV2ViU3RyaW5nJiBwYXRoLCBk
b3VibGUmIHJlc3VsdCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIFdlYlN0cmluZyBk
aXJlY3RvcnlOYW1lKGNvbnN0IFdlYlN0cmluZyYgcGF0aCkgIHsgcmV0dXJuIFdlYlN0cmluZygp
OyB9CisgICAgdmlydHVhbCBXZWJTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNvbnN0
IFdlYlN0cmluZyYgcGF0aCwgY29uc3QgV2ViU3RyaW5nJiBjb21wb25lbnQpICB7IHJldHVybiBX
ZWJTdHJpbmcoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3Qg
V2ViU3RyaW5nJiBwYXRoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgV2ViU3RyaW5n
IGdldEFic29sdXRlUGF0aChjb25zdCBXZWJTdHJpbmcmIHBhdGgpICB7IHJldHVybiBXZWJTdHJp
bmcoKTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc0RpcmVjdG9yeShjb25zdCBXZWJTdHJpbmcmIHBh
dGgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBXZWJVUkwgZmlsZVBhdGhUb1VSTChj
b25zdCBXZWJTdHJpbmcmIHBhdGgpICB7IHJldHVybiBXZWJVUkwoKTsgfQorICAgIHZpcnR1YWwg
RmlsZUhhbmRsZSBvcGVuRmlsZShjb25zdCBXZWJTdHJpbmcmIHBhdGgsIGludCBtb2RlKSAgeyBy
ZXR1cm4gRmlsZUhhbmRsZSgpOyB9CisgICAgLy8gU2hvdWxkIHNldCB0aGUgRmlsZUhhbmRsZSB0
byBhIGludmFsaWQgdmFsdWUgaWYgdGhlIGZpbGUgaXMgY2xvc2VkIHN1Y2Nlc3NmdWxseS4KKyAg
ICB2aXJ0dWFsIHZvaWQgY2xvc2VGaWxlKEZpbGVIYW5kbGUmKSB7IH0KKyAgICB2aXJ0dWFsIGxv
bmcgbG9uZyBzZWVrRmlsZShGaWxlSGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0LCBpbnQgb3JpZ2lu
KSB7IHJldHVybiAwOyB9CisgICAgdmlydHVhbCBib29sIHRydW5jYXRlRmlsZShGaWxlSGFuZGxl
LCBsb25nIGxvbmcgb2Zmc2V0KSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgaW50IHJl
YWRGcm9tRmlsZShGaWxlSGFuZGxlLCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKSB7IHJldHVybiAw
OyB9CisgICAgdmlydHVhbCBpbnQgd3JpdGVUb0ZpbGUoRmlsZUhhbmRsZSwgY29uc3QgY2hhciog
ZGF0YSwgaW50IGxlbmd0aCkgeyByZXR1cm4gMDsgfQorCitwcm90ZWN0ZWQ6CisgICAgfldlYkZp
bGVVdGlsaXRpZXMoKSB7fQorfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRDbGllbnQuaCBiL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViS2l0Q2xpZW50LmgKaW5kZXggNTk1OWExYzgxM2NjNGIzOTZk
MWVlOWYwM2NjZTJkZjg1NWYxYTk2NS4uMDA1MGY4MWViMjI1MGRiZGE5NTY4ZjE4ZTI3MDdkZDJm
MDZmZGY5NCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRDbGllbnQu
aAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdENsaWVudC5oCkBAIC0zMyw2ICsz
Myw3IEBACiAKICNpbmNsdWRlICJXZWJDb21tb24uaCIKICNpbmNsdWRlICJXZWJEYXRhLmgiCisj
aW5jbHVkZSAiV2ViRmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIldlYkxvY2FsaXplZFN0cmluZy5o
IgogI2luY2x1ZGUgIldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlVSTC5oIgpAQCAtNDksNyAr
NTAsNyBAQCBjbGFzcyBXZWJBcHBsaWNhdGlvbkNhY2hlSG9zdDsKIGNsYXNzIFdlYkFwcGxpY2F0
aW9uQ2FjaGVIb3N0Q2xpZW50OwogY2xhc3MgV2ViQ2xpcGJvYXJkOwogY2xhc3MgV2ViQ29va2ll
SmFyOwotY2xhc3MgV2ViRmlsZVN5c3RlbTsKK2NsYXNzIFdlYkZpbGVVdGlsaXRpZXM7CiBjbGFz
cyBXZWJHTEVTMkNvbnRleHQ7CiBjbGFzcyBXZWJHcmFwaGljc0NvbnRleHQzRDsKIGNsYXNzIFdl
YklEQkZhY3Rvcnk7CkBAIC03Miw4ICs3MywxMyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBXZWJN
aW1lUmVnaXN0cnkqIG1pbWVSZWdpc3RyeSgpIHsgcmV0dXJuIDA7IH0KIAogICAgIC8vIE11c3Qg
cmV0dXJuIG5vbi1udWxsLgorICAgIC8vIEZJWE1FOiBDbGVhbiB1cCB0aGlzIG9uZSBvbmNlIHRo
ZSByZW5hbWluZyB0byBXZWJGaWxlVXRpbGl0aWVzIGhhcyBkb25lLgogICAgIHZpcnR1YWwgV2Vi
RmlsZVN5c3RlbSogZmlsZVN5c3RlbSgpIHsgcmV0dXJuIDA7IH0KIAorICAgIC8vIE11c3QgcmV0
dXJuIG5vbi1udWxsLgorICAgIC8vIEZJWE1FOiBDbGVhbiB1cCB0aGlzIG9uZSBvbmNlIHRoZSBy
ZW5hbWluZyBmcm9tIFdlYkZpbGVTeXN0ZW0gaGFzIGRvbmUuCisgICAgdmlydHVhbCBXZWJGaWxl
VXRpbGl0aWVzKiBmaWxlVXRpbGl0aWVzKCkgeyByZXR1cm4gZmlsZVN5c3RlbSgpOyB9CisKICAg
ICAvLyBNYXkgcmV0dXJuIG51bGwgaWYgc2FuZGJveCBzdXBwb3J0IGlzIG5vdCBuZWNlc3NhcnkK
ICAgICB2aXJ0dWFsIFdlYlNhbmRib3hTdXBwb3J0KiBzYW5kYm94U3VwcG9ydCgpIHsgcmV0dXJu
IDA7IH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5j
cHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9taXVtQnJpZGdlLmNwcAppbmRleCBhNDMxMDlj
ZjQ2MzdhOWRlODU1ZTgzODAzNTU2ODQ1Zjg5ZWQwNWY3Li41YjE4ZTgyOWIzMjZjZjVlYTBkYzI3
ZDc0MTMxZWVlMjZkZDE5NTVhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
aXVtQnJpZGdlLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9taXVtQnJpZGdlLmNw
cApAQCAtNDEsNyArNDEsNyBAQAogI2luY2x1ZGUgIldlYkN1cnNvckluZm8uaCIKICNpbmNsdWRl
ICJXZWJEYXRhLmgiCiAjaW5jbHVkZSAiV2ViRHJhZ0RhdGEuaCIKLSNpbmNsdWRlICJXZWJGaWxl
U3lzdGVtLmgiCisjaW5jbHVkZSAiV2ViRmlsZVV0aWxpdGllcy5oIgogI2luY2x1ZGUgIldlYkZy
YW1lQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVJbXBsLmgiCiAjaW5jbHVkZSAiV2ViSW1h
Z2UuaCIKQEAgLTMyMCwyOCArMzIwLDI4IEBAIHZvaWQgQ2hyb21pdW1CcmlkZ2U6OnByZWZldGNo
RE5TKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUpCiAKIGJvb2wgQ2hyb21pdW1CcmlkZ2U6OmZpbGVF
eGlzdHMoY29uc3QgU3RyaW5nJiBwYXRoKQogewotICAgIHJldHVybiB3ZWJLaXRDbGllbnQoKS0+
ZmlsZVN5c3RlbSgpLT5maWxlRXhpc3RzKHBhdGgpOworICAgIHJldHVybiB3ZWJLaXRDbGllbnQo
KS0+ZmlsZVV0aWxpdGllcygpLT5maWxlRXhpc3RzKHBhdGgpOwogfQogCiBib29sIENocm9taXVt
QnJpZGdlOjpkZWxldGVGaWxlKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICByZXR1cm4gd2Vi
S2l0Q2xpZW50KCktPmZpbGVTeXN0ZW0oKS0+ZGVsZXRlRmlsZShwYXRoKTsKKyAgICByZXR1cm4g
d2ViS2l0Q2xpZW50KCktPmZpbGVVdGlsaXRpZXMoKS0+ZGVsZXRlRmlsZShwYXRoKTsKIH0KIAog
Ym9vbCBDaHJvbWl1bUJyaWRnZTo6ZGVsZXRlRW1wdHlEaXJlY3RvcnkoY29uc3QgU3RyaW5nJiBw
YXRoKQogewotICAgIHJldHVybiB3ZWJLaXRDbGllbnQoKS0+ZmlsZVN5c3RlbSgpLT5kZWxldGVF
bXB0eURpcmVjdG9yeShwYXRoKTsKKyAgICByZXR1cm4gd2ViS2l0Q2xpZW50KCktPmZpbGVVdGls
aXRpZXMoKS0+ZGVsZXRlRW1wdHlEaXJlY3RvcnkocGF0aCk7CiB9CiAKIGJvb2wgQ2hyb21pdW1C
cmlkZ2U6OmdldEZpbGVTaXplKGNvbnN0IFN0cmluZyYgcGF0aCwgbG9uZyBsb25nJiByZXN1bHQp
CiB7Ci0gICAgcmV0dXJuIHdlYktpdENsaWVudCgpLT5maWxlU3lzdGVtKCktPmdldEZpbGVTaXpl
KHBhdGgsIHJlc3VsdCk7CisgICAgcmV0dXJuIHdlYktpdENsaWVudCgpLT5maWxlVXRpbGl0aWVz
KCktPmdldEZpbGVTaXplKHBhdGgsIHJlc3VsdCk7CiB9CiAKIGJvb2wgQ2hyb21pdW1CcmlkZ2U6
OmdldEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCwgdGltZV90JiByZXN1
bHQpCiB7CiAgICAgZG91YmxlIG1vZGlmaWNhdGlvblRpbWU7Ci0gICAgaWYgKCF3ZWJLaXRDbGll
bnQoKS0+ZmlsZVN5c3RlbSgpLT5nZXRGaWxlTW9kaWZpY2F0aW9uVGltZShwYXRoLCBtb2RpZmlj
YXRpb25UaW1lKSkKKyAgICBpZiAoIXdlYktpdENsaWVudCgpLT5maWxlVXRpbGl0aWVzKCktPmdl
dEZpbGVNb2RpZmljYXRpb25UaW1lKHBhdGgsIG1vZGlmaWNhdGlvblRpbWUpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgcmVzdWx0ID0gc3RhdGljX2Nhc3Q8dGltZV90Pihtb2RpZmljYXRp
b25UaW1lKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTM0OSw2MiArMzQ5LDYyIEBAIGJvb2wgQ2hy
b21pdW1CcmlkZ2U6OmdldEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFN0cmluZyYgcGF0aCwg
dGltZV90JiByZXN1bHQpCiAKIFN0cmluZyBDaHJvbWl1bUJyaWRnZTo6ZGlyZWN0b3J5TmFtZShj
b25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAgcmV0dXJuIHdlYktpdENsaWVudCgpLT5maWxlU3lz
dGVtKCktPmRpcmVjdG9yeU5hbWUocGF0aCk7CisgICAgcmV0dXJuIHdlYktpdENsaWVudCgpLT5m
aWxlVXRpbGl0aWVzKCktPmRpcmVjdG9yeU5hbWUocGF0aCk7CiB9CiAKIFN0cmluZyBDaHJvbWl1
bUJyaWRnZTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNvbnN0IFN0cmluZyYgcGF0aCwgY29u
c3QgU3RyaW5nJiBjb21wb25lbnQpCiB7Ci0gICAgcmV0dXJuIHdlYktpdENsaWVudCgpLT5maWxl
U3lzdGVtKCktPnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChwYXRoLCBjb21wb25lbnQpOworICAg
IHJldHVybiB3ZWJLaXRDbGllbnQoKS0+ZmlsZVV0aWxpdGllcygpLT5wYXRoQnlBcHBlbmRpbmdD
b21wb25lbnQocGF0aCwgY29tcG9uZW50KTsKIH0KIAogYm9vbCBDaHJvbWl1bUJyaWRnZTo6bWFr
ZUFsbERpcmVjdG9yaWVzKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICByZXR1cm4gd2ViS2l0
Q2xpZW50KCktPmZpbGVTeXN0ZW0oKS0+bWFrZUFsbERpcmVjdG9yaWVzKHBhdGgpOworICAgIHJl
dHVybiB3ZWJLaXRDbGllbnQoKS0+ZmlsZVV0aWxpdGllcygpLT5tYWtlQWxsRGlyZWN0b3JpZXMo
cGF0aCk7CiB9CiAKIFN0cmluZyBDaHJvbWl1bUJyaWRnZTo6Z2V0QWJzb2x1dGVQYXRoKGNvbnN0
IFN0cmluZyYgcGF0aCkKIHsKLSAgICByZXR1cm4gd2ViS2l0Q2xpZW50KCktPmZpbGVTeXN0ZW0o
KS0+Z2V0QWJzb2x1dGVQYXRoKHBhdGgpOworICAgIHJldHVybiB3ZWJLaXRDbGllbnQoKS0+Zmls
ZVV0aWxpdGllcygpLT5nZXRBYnNvbHV0ZVBhdGgocGF0aCk7CiB9CiAKIGJvb2wgQ2hyb21pdW1C
cmlkZ2U6OmlzRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICByZXR1cm4gd2Vi
S2l0Q2xpZW50KCktPmZpbGVTeXN0ZW0oKS0+aXNEaXJlY3RvcnkocGF0aCk7CisgICAgcmV0dXJu
IHdlYktpdENsaWVudCgpLT5maWxlVXRpbGl0aWVzKCktPmlzRGlyZWN0b3J5KHBhdGgpOwogfQog
CiBLVVJMIENocm9taXVtQnJpZGdlOjpmaWxlUGF0aFRvVVJMKGNvbnN0IFN0cmluZyYgcGF0aCkK
IHsKLSAgICByZXR1cm4gd2ViS2l0Q2xpZW50KCktPmZpbGVTeXN0ZW0oKS0+ZmlsZVBhdGhUb1VS
TChwYXRoKTsKKyAgICByZXR1cm4gd2ViS2l0Q2xpZW50KCktPmZpbGVVdGlsaXRpZXMoKS0+Zmls
ZVBhdGhUb1VSTChwYXRoKTsKIH0KIAogUGxhdGZvcm1GaWxlSGFuZGxlIENocm9taXVtQnJpZGdl
OjpvcGVuRmlsZShjb25zdCBTdHJpbmcmIHBhdGgsIEZpbGVPcGVuTW9kZSBtb2RlKQogewotICAg
IHJldHVybiB3ZWJLaXRDbGllbnQoKS0+ZmlsZVN5c3RlbSgpLT5vcGVuRmlsZShwYXRoLCBtb2Rl
KTsKKyAgICByZXR1cm4gd2ViS2l0Q2xpZW50KCktPmZpbGVVdGlsaXRpZXMoKS0+b3BlbkZpbGUo
cGF0aCwgbW9kZSk7CiB9CiAKIHZvaWQgQ2hyb21pdW1CcmlkZ2U6OmNsb3NlRmlsZShQbGF0Zm9y
bUZpbGVIYW5kbGUmIGhhbmRsZSkKIHsKLSAgICB3ZWJLaXRDbGllbnQoKS0+ZmlsZVN5c3RlbSgp
LT5jbG9zZUZpbGUoaGFuZGxlKTsKKyAgICB3ZWJLaXRDbGllbnQoKS0+ZmlsZVV0aWxpdGllcygp
LT5jbG9zZUZpbGUoaGFuZGxlKTsKIH0KIAogbG9uZyBsb25nIENocm9taXVtQnJpZGdlOjpzZWVr
RmlsZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0LCBGaWxlU2Vl
a09yaWdpbiBvcmlnaW4pCiB7Ci0gICAgcmV0dXJuIHdlYktpdENsaWVudCgpLT5maWxlU3lzdGVt
KCktPnNlZWtGaWxlKGhhbmRsZSwgb2Zmc2V0LCBvcmlnaW4pOworICAgIHJldHVybiB3ZWJLaXRD
bGllbnQoKS0+ZmlsZVV0aWxpdGllcygpLT5zZWVrRmlsZShoYW5kbGUsIG9mZnNldCwgb3JpZ2lu
KTsKIH0KIAogYm9vbCBDaHJvbWl1bUJyaWRnZTo6dHJ1bmNhdGVGaWxlKFBsYXRmb3JtRmlsZUhh
bmRsZSBoYW5kbGUsIGxvbmcgbG9uZyBvZmZzZXQpCiB7Ci0gICAgcmV0dXJuIHdlYktpdENsaWVu
dCgpLT5maWxlU3lzdGVtKCktPnRydW5jYXRlRmlsZShoYW5kbGUsIG9mZnNldCk7CisgICAgcmV0
dXJuIHdlYktpdENsaWVudCgpLT5maWxlVXRpbGl0aWVzKCktPnRydW5jYXRlRmlsZShoYW5kbGUs
IG9mZnNldCk7CiB9CiAKIGludCBDaHJvbWl1bUJyaWRnZTo6cmVhZEZyb21GaWxlKFBsYXRmb3Jt
RmlsZUhhbmRsZSBoYW5kbGUsIGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiB7Ci0gICAgcmV0dXJu
IHdlYktpdENsaWVudCgpLT5maWxlU3lzdGVtKCktPnJlYWRGcm9tRmlsZShoYW5kbGUsIGRhdGEs
IGxlbmd0aCk7CisgICAgcmV0dXJuIHdlYktpdENsaWVudCgpLT5maWxlVXRpbGl0aWVzKCktPnJl
YWRGcm9tRmlsZShoYW5kbGUsIGRhdGEsIGxlbmd0aCk7CiB9CiAKIGludCBDaHJvbWl1bUJyaWRn
ZTo6d3JpdGVUb0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgY29uc3QgY2hhciogZGF0
YSwgaW50IGxlbmd0aCkKIHsKLSAgICByZXR1cm4gd2ViS2l0Q2xpZW50KCktPmZpbGVTeXN0ZW0o
KS0+d3JpdGVUb0ZpbGUoaGFuZGxlLCBkYXRhLCBsZW5ndGgpOworICAgIHJldHVybiB3ZWJLaXRD
bGllbnQoKS0+ZmlsZVV0aWxpdGllcygpLT53cml0ZVRvRmlsZShoYW5kbGUsIGRhdGEsIGxlbmd0
aCk7CiB9CiAKIC8vIEZvbnQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64535</attachid>
            <date>2010-08-16 16:27:31 -0700</date>
            <delta_ts>2010-08-16 17:34:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-44077-20100816162730.patch</filename>
            <type>text/plain</type>
            <size>14464</size>
            <attacher name="Kinuko Yasuda">kinuko</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IGE0Yzg0NWNhNzJmZmM1ODgzODM2MDc2OTNkNGE5YjhhOTVjNTI2MzAu
LjVkOWE5OWUxYTcyM2M4MmRiNjQ2YTAzNTNkNGU2OTdiYjk4ODQ0Y2MgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQxIEBACisyMDEwLTA4LTE2ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBbY2hyb21pdW1dIFByZXBhcmUgdG8gcmVuYW1lIFdlYkZpbGVTeXN0ZW0gaW50ZXJmYWNlIHRv
IFdlYkZpbGVVdGlsaXRpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ0MDc3CisKKyAgICAgICAgV2UgYXJlIGdvaW5nIHRvIGhhdmUgYW4gaW1wbGVt
ZW50YXRpb24gZm9yIEhUTUw1IEZpbGVTeXN0ZW0gQVBJIGFuZAorICAgICAgICBpdCB3b3VsZCBw
cm9iYWJseSBiZSBsZXNzIGNvbmZ1c2luZyB0byB1c2UgdGhlIG5hbWUgIldlYkZpbGVTeXN0ZW0i
CisgICAgICAgIGZvciBhbiBXZWJLaXQgQVBJIGZvciB0aGUgSFRNTDUgQVBJLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggYWRkcyBXZWJGaWxlVXRpbGl0aWVzIGludGVyZmFjZSB0aGF0IGlzIG1lYW50
IHRvIHJlcGxhY2UKKyAgICAgICAgdGhlIGV4aXN0aW5nIFdlYkZpbGVTeXN0ZW0uCisKKyAgICAg
ICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIHB1YmxpYy9XZWJGaWxlU3lzdGVtLmg6CisgICAg
ICAgICogcHVibGljL1dlYkZpbGVVdGlsaXRpZXMuaDogQWRkZWQuCisgICAgICAgICogcHVibGlj
L1dlYktpdENsaWVudC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJLaXRDbGllbnQ6OmZpbGVVdGls
aXRpZXMpOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvQ2hyb21pdW1CcmlkZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6OmZpbGVFeGlzdHMpOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hyb21pdW1CcmlkZ2U6OmRlbGV0ZUZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21p
dW1CcmlkZ2U6OmRlbGV0ZUVtcHR5RGlyZWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9t
aXVtQnJpZGdlOjpnZXRGaWxlU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRn
ZTo6Z2V0RmlsZU1vZGlmaWNhdGlvblRpbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1C
cmlkZ2U6OmRpcmVjdG9yeU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJy
aWRnZTo6bWFrZUFsbERpcmVjdG9yaWVzKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJp
ZGdlOjpnZXRBYnNvbHV0ZVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6
OmlzRGlyZWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpmaWxlUGF0
aFRvVVJMKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJpZGdlOjpvcGVuRmlsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bUJyaWRnZTo6Y2xvc2VGaWxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9taXVtQnJpZGdlOjpzZWVrRmlsZSk6CisgICAgICAgIChXZWJDb3JlOjpDaHJv
bWl1bUJyaWRnZTo6dHJ1bmNhdGVGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtQnJp
ZGdlOjpyZWFkRnJvbUZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1CcmlkZ2U6Ondy
aXRlVG9GaWxlKToKKwogMjAxMC0wOC0wNyAgSmF5IENpdmVsbGkgIDxqY2l2ZWxsaUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmlu
ZGV4IDA2ZmQ4MmNiYjliZTkwMDFjYzY3ZmM4NDcwNGEwNmI2MzM5OGQ5YzMuLmI5MTgzNzFjMWFm
M2NiYzcyM2VjYjFlMjgyMTZhZWM4YjQ2ZGUyNjAgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xNTMsNiAr
MTUzLDcgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkZpbGVDaG9vc2VyUGFyYW1zLmgn
LAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRmlsZUluZm8uaCcsCiAgICAgICAgICAgICAg
ICAgJ3B1YmxpYy9XZWJGaWxlU3lzdGVtLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMvV2Vi
RmlsZVV0aWxpdGllcy5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkZpbmRPcHRpb25z
LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViRmxvYXRQb2ludC5oJywKICAgICAgICAg
ICAgICAgICAncHVibGljL1dlYkZsb2F0UmVjdC5oJywKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViRmlsZVN5c3RlbS5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJG
aWxlU3lzdGVtLmgKaW5kZXggZmM2ZTZkZDYwYmZjMTI5OGVlMDQwNTIyZDU4N2U0Nzg3NDY5Zjdm
OS4uODk2MGQ4OTc2MzJiMmNlNmI0Y2Y0ODM0NGI4NGRiOTMyNWZiZjA2MyAxMDA2NDQKLS0tIGEv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJGaWxlU3lzdGVtLmgKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJGaWxlU3lzdGVtLmgKQEAgLTMxLDQxICszMSwxMiBAQAogI2lmbmRlZiBX
ZWJGaWxlU3lzdGVtX2gKICNkZWZpbmUgV2ViRmlsZVN5c3RlbV9oCiAKLSNpbmNsdWRlICJXZWJD
b21tb24uaCIKLSNpbmNsdWRlICJXZWJTdHJpbmcuaCIKLSNpbmNsdWRlICJXZWJVUkwuaCIKKyNp
bmNsdWRlICJXZWJGaWxlVXRpbGl0aWVzLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1jbGFz
cyBXZWJGaWxlU3lzdGVtIHsKLXB1YmxpYzoKLSNpZmRlZiBXSU4zMgotICAgIHR5cGVkZWYgSEFO
RExFIEZpbGVIYW5kbGU7Ci0jZWxzZQotICAgIHR5cGVkZWYgaW50IEZpbGVIYW5kbGU7Ci0jZW5k
aWYKLQotICAgIHZpcnR1YWwgYm9vbCBmaWxlRXhpc3RzKGNvbnN0IFdlYlN0cmluZyYgcGF0aCkg
eyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgZGVsZXRlRmlsZShjb25zdCBXZWJT
dHJpbmcmIHBhdGgpIHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIGRlbGV0ZUVt
cHR5RGlyZWN0b3J5KGNvbnN0IFdlYlN0cmluZyYgcGF0aCkgeyByZXR1cm4gZmFsc2U7IH0KLSAg
ICB2aXJ0dWFsIGJvb2wgZ2V0RmlsZVNpemUoY29uc3QgV2ViU3RyaW5nJiBwYXRoLCBsb25nIGxv
bmcmIHJlc3VsdCkgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgZ2V0RmlsZU1v
ZGlmaWNhdGlvblRpbWUoY29uc3QgV2ViU3RyaW5nJiBwYXRoLCBkb3VibGUmIHJlc3VsdCkgeyBy
ZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIFdlYlN0cmluZyBkaXJlY3RvcnlOYW1lKGNvbnN0
IFdlYlN0cmluZyYgcGF0aCkgIHsgcmV0dXJuIFdlYlN0cmluZygpOyB9Ci0gICAgdmlydHVhbCBX
ZWJTdHJpbmcgcGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGNvbnN0IFdlYlN0cmluZyYgcGF0aCwg
Y29uc3QgV2ViU3RyaW5nJiBjb21wb25lbnQpICB7IHJldHVybiBXZWJTdHJpbmcoKTsgfQotICAg
IHZpcnR1YWwgYm9vbCBtYWtlQWxsRGlyZWN0b3JpZXMoY29uc3QgV2ViU3RyaW5nJiBwYXRoKSB7
IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgV2ViU3RyaW5nIGdldEFic29sdXRlUGF0aChj
b25zdCBXZWJTdHJpbmcmIHBhdGgpICB7IHJldHVybiBXZWJTdHJpbmcoKTsgfQotICAgIHZpcnR1
YWwgYm9vbCBpc0RpcmVjdG9yeShjb25zdCBXZWJTdHJpbmcmIHBhdGgpIHsgcmV0dXJuIGZhbHNl
OyB9Ci0gICAgdmlydHVhbCBXZWJVUkwgZmlsZVBhdGhUb1VSTChjb25zdCBXZWJTdHJpbmcmIHBh
dGgpICB7IHJldHVybiBXZWJVUkwoKTsgfQotICAgIHZpcnR1YWwgRmlsZUhhbmRsZSBvcGVuRmls
ZShjb25zdCBXZWJTdHJpbmcmIHBhdGgsIGludCBtb2RlKSAgeyByZXR1cm4gRmlsZUhhbmRsZSgp
OyB9Ci0gICAgLy8gU2hvdWxkIHNldCB0aGUgRmlsZUhhbmRsZSB0byBhIGludmFsaWQgdmFsdWUg
aWYgdGhlIGZpbGUgaXMgY2xvc2VkIHN1Y2Nlc3NmdWxseS4KLSAgICB2aXJ0dWFsIHZvaWQgY2xv
c2VGaWxlKEZpbGVIYW5kbGUmKSB7IH0KLSAgICB2aXJ0dWFsIGxvbmcgbG9uZyBzZWVrRmlsZShG
aWxlSGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0LCBpbnQgb3JpZ2luKSB7IHJldHVybiAwOyB9Ci0g
ICAgdmlydHVhbCBib29sIHRydW5jYXRlRmlsZShGaWxlSGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0
KSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgaW50IHJlYWRGcm9tRmlsZShGaWxlSGFu
ZGxlLCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKSB7IHJldHVybiAwOyB9Ci0gICAgdmlydHVhbCBp
bnQgd3JpdGVUb0ZpbGUoRmlsZUhhbmRsZSwgY29uc3QgY2hhciogZGF0YSwgaW50IGxlbmd0aCkg
eyByZXR1cm4gMDsgfQotCi1wcm90ZWN0ZWQ6Ci0gICAgfldlYkZpbGVTeXN0ZW0oKSB7fQorLy8g
RklYTUU6IENsZWFuIHVwIHRoaXMgY2xhc3Mgb25jZSB0aGUgcmVuYW1pbmcgdG8gV2ViRmlsZVV0
aWxpdGllcyBoYXMgZG9uZS4KK2NsYXNzIFdlYkZpbGVTeXN0ZW0gOiBwdWJsaWMgV2ViRmlsZVV0
aWxpdGllcyB7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViRmlsZVV0aWxpdGllcy5oIGIvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJGaWxlVXRpbGl0aWVzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzRkMDEzY2ZmNGRlZDFiODEzOTFj
MTQ2MzEyZGMyYzFmNTIzNjlhZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViRmlsZVV0aWxpdGllcy5oCkBAIC0wLDAgKzEsNzMgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTAgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVz
IG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90
ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZp
YyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElT
IiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICog
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdlYkZpbGVV
dGlsaXRpZXNfaAorI2RlZmluZSBXZWJGaWxlVXRpbGl0aWVzX2gKKworI2luY2x1ZGUgIldlYkNv
bW1vbi5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgorI2luY2x1ZGUgIldlYlVSTC5oIgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRmlsZVV0aWxpdGllcyB7CitwdWJsaWM6Cisj
aWZkZWYgV0lOMzIKKyAgICB0eXBlZGVmIEhBTkRMRSBGaWxlSGFuZGxlOworI2Vsc2UKKyAgICB0
eXBlZGVmIGludCBGaWxlSGFuZGxlOworI2VuZGlmCisKKyAgICB2aXJ0dWFsIGJvb2wgZmlsZUV4
aXN0cyhjb25zdCBXZWJTdHJpbmcmIHBhdGgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVh
bCBib29sIGRlbGV0ZUZpbGUoY29uc3QgV2ViU3RyaW5nJiBwYXRoKSB7IHJldHVybiBmYWxzZTsg
fQorICAgIHZpcnR1YWwgYm9vbCBkZWxldGVFbXB0eURpcmVjdG9yeShjb25zdCBXZWJTdHJpbmcm
IHBhdGgpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGdldEZpbGVTaXplKGNv
bnN0IFdlYlN0cmluZyYgcGF0aCwgbG9uZyBsb25nJiByZXN1bHQpIHsgcmV0dXJuIGZhbHNlOyB9
CisgICAgdmlydHVhbCBib29sIGdldEZpbGVNb2RpZmljYXRpb25UaW1lKGNvbnN0IFdlYlN0cmlu
ZyYgcGF0aCwgZG91YmxlJiByZXN1bHQpIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBX
ZWJTdHJpbmcgZGlyZWN0b3J5TmFtZShjb25zdCBXZWJTdHJpbmcmIHBhdGgpICB7IHJldHVybiBX
ZWJTdHJpbmcoKTsgfQorICAgIHZpcnR1YWwgV2ViU3RyaW5nIHBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChjb25zdCBXZWJTdHJpbmcmIHBhdGgsIGNvbnN0IFdlYlN0cmluZyYgY29tcG9uZW50KSAg
eyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgbWFrZUFsbERpcmVjdG9y
aWVzKGNvbnN0IFdlYlN0cmluZyYgcGF0aCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFs
IFdlYlN0cmluZyBnZXRBYnNvbHV0ZVBhdGgoY29uc3QgV2ViU3RyaW5nJiBwYXRoKSAgeyByZXR1
cm4gV2ViU3RyaW5nKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNEaXJlY3RvcnkoY29uc3QgV2Vi
U3RyaW5nJiBwYXRoKSB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgV2ViVVJMIGZpbGVQ
YXRoVG9VUkwoY29uc3QgV2ViU3RyaW5nJiBwYXRoKSAgeyByZXR1cm4gV2ViVVJMKCk7IH0KKyAg
ICB2aXJ0dWFsIEZpbGVIYW5kbGUgb3BlbkZpbGUoY29uc3QgV2ViU3RyaW5nJiBwYXRoLCBpbnQg
bW9kZSkgIHsgcmV0dXJuIEZpbGVIYW5kbGUoKTsgfQorICAgIC8vIFNob3VsZCBzZXQgdGhlIEZp
bGVIYW5kbGUgdG8gYSBpbnZhbGlkIHZhbHVlIGlmIHRoZSBmaWxlIGlzIGNsb3NlZCBzdWNjZXNz
ZnVsbHkuCisgICAgdmlydHVhbCB2b2lkIGNsb3NlRmlsZShGaWxlSGFuZGxlJikgeyB9CisgICAg
dmlydHVhbCBsb25nIGxvbmcgc2Vla0ZpbGUoRmlsZUhhbmRsZSwgbG9uZyBsb25nIG9mZnNldCwg
aW50IG9yaWdpbikgeyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgYm9vbCB0cnVuY2F0ZUZpbGUo
RmlsZUhhbmRsZSwgbG9uZyBsb25nIG9mZnNldCkgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0
dWFsIGludCByZWFkRnJvbUZpbGUoRmlsZUhhbmRsZSwgY2hhciogZGF0YSwgaW50IGxlbmd0aCkg
eyByZXR1cm4gMDsgfQorICAgIHZpcnR1YWwgaW50IHdyaXRlVG9GaWxlKEZpbGVIYW5kbGUsIGNv
bnN0IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpIHsgcmV0dXJuIDA7IH0KKworcHJvdGVjdGVkOgor
ICAgIH5XZWJGaWxlVXRpbGl0aWVzKCkge30KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViS2l0Q2xpZW50
LmggYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYktpdENsaWVudC5oCmluZGV4IDU5NTlhMWM4
MTNjYzRiMzk2ZDFlZTlmMDNjY2UyZGY4NTVmMWE5NjUuLjAwNTBmODFlYjIyNTBkYmRhOTU2OGYx
OGUyNzA3ZGQyZjA2ZmRmOTQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
S2l0Q2xpZW50LmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJLaXRDbGllbnQuaApA
QCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCiAjaW5jbHVkZSAiV2Vi
RGF0YS5oIgorI2luY2x1ZGUgIldlYkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJXZWJMb2NhbGl6
ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJVUkwuaCIK
QEAgLTQ5LDcgKzUwLDcgQEAgY2xhc3MgV2ViQXBwbGljYXRpb25DYWNoZUhvc3Q7CiBjbGFzcyBX
ZWJBcHBsaWNhdGlvbkNhY2hlSG9zdENsaWVudDsKIGNsYXNzIFdlYkNsaXBib2FyZDsKIGNsYXNz
IFdlYkNvb2tpZUphcjsKLWNsYXNzIFdlYkZpbGVTeXN0ZW07CitjbGFzcyBXZWJGaWxlVXRpbGl0
aWVzOwogY2xhc3MgV2ViR0xFUzJDb250ZXh0OwogY2xhc3MgV2ViR3JhcGhpY3NDb250ZXh0M0Q7
CiBjbGFzcyBXZWJJREJGYWN0b3J5OwpAQCAtNzIsOCArNzMsMTMgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgV2ViTWltZVJlZ2lzdHJ5KiBtaW1lUmVnaXN0cnkoKSB7IHJldHVybiAwOyB9CiAKICAg
ICAvLyBNdXN0IHJldHVybiBub24tbnVsbC4KKyAgICAvLyBGSVhNRTogQ2xlYW4gdXAgdGhpcyBv
bmUgb25jZSB0aGUgcmVuYW1pbmcgdG8gV2ViRmlsZVV0aWxpdGllcyBoYXMgZG9uZS4KICAgICB2
aXJ0dWFsIFdlYkZpbGVTeXN0ZW0qIGZpbGVTeXN0ZW0oKSB7IHJldHVybiAwOyB9CiAKKyAgICAv
LyBNdXN0IHJldHVybiBub24tbnVsbC4KKyAgICAvLyBGSVhNRTogQ2xlYW4gdXAgdGhpcyBvbmUg
b25jZSB0aGUgcmVuYW1pbmcgZnJvbSBXZWJGaWxlU3lzdGVtIGhhcyBkb25lLgorICAgIHZpcnR1
YWwgV2ViRmlsZVV0aWxpdGllcyogZmlsZVV0aWxpdGllcygpIHsgcmV0dXJuIGZpbGVTeXN0ZW0o
KTsgfQorCiAgICAgLy8gTWF5IHJldHVybiBudWxsIGlmIHNhbmRib3ggc3VwcG9ydCBpcyBub3Qg
bmVjZXNzYXJ5CiAgICAgdmlydHVhbCBXZWJTYW5kYm94U3VwcG9ydCogc2FuZGJveFN1cHBvcnQo
KSB7IHJldHVybiAwOyB9CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21p
dW1CcmlkZ2UuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAKaW5k
ZXggYTQzMTA5Y2Y0NjM3YTlkZTg1NWU4MzgwMzU1Njg0NWY4OWVkMDVmNy4uNWIxOGU4MjliMzI2
Y2Y1ZWEwZGMyN2Q3NDEzMWVlZTI2ZGQxOTU1YSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWl1bUJyaWRnZS5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWl1
bUJyaWRnZS5jcHAKQEAgLTQxLDcgKzQxLDcgQEAKICNpbmNsdWRlICJXZWJDdXJzb3JJbmZvLmgi
CiAjaW5jbHVkZSAiV2ViRGF0YS5oIgogI2luY2x1ZGUgIldlYkRyYWdEYXRhLmgiCi0jaW5jbHVk
ZSAiV2ViRmlsZVN5c3RlbS5oIgorI2luY2x1ZGUgIldlYkZpbGVVdGlsaXRpZXMuaCIKICNpbmNs
dWRlICJXZWJGcmFtZUNsaWVudC5oIgogI2luY2x1ZGUgIldlYkZyYW1lSW1wbC5oIgogI2luY2x1
ZGUgIldlYkltYWdlLmgiCkBAIC0zMjAsMjggKzMyMCwyOCBAQCB2b2lkIENocm9taXVtQnJpZGdl
OjpwcmVmZXRjaEROUyhjb25zdCBTdHJpbmcmIGhvc3RuYW1lKQogCiBib29sIENocm9taXVtQnJp
ZGdlOjpmaWxlRXhpc3RzKGNvbnN0IFN0cmluZyYgcGF0aCkKIHsKLSAgICByZXR1cm4gd2ViS2l0
Q2xpZW50KCktPmZpbGVTeXN0ZW0oKS0+ZmlsZUV4aXN0cyhwYXRoKTsKKyAgICByZXR1cm4gd2Vi
S2l0Q2xpZW50KCktPmZpbGVVdGlsaXRpZXMoKS0+ZmlsZUV4aXN0cyhwYXRoKTsKIH0KIAogYm9v
bCBDaHJvbWl1bUJyaWRnZTo6ZGVsZXRlRmlsZShjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAg
cmV0dXJuIHdlYktpdENsaWVudCgpLT5maWxlU3lzdGVtKCktPmRlbGV0ZUZpbGUocGF0aCk7Cisg
ICAgcmV0dXJuIHdlYktpdENsaWVudCgpLT5maWxlVXRpbGl0aWVzKCktPmRlbGV0ZUZpbGUocGF0
aCk7CiB9CiAKIGJvb2wgQ2hyb21pdW1CcmlkZ2U6OmRlbGV0ZUVtcHR5RGlyZWN0b3J5KGNvbnN0
IFN0cmluZyYgcGF0aCkKIHsKLSAgICByZXR1cm4gd2ViS2l0Q2xpZW50KCktPmZpbGVTeXN0ZW0o
KS0+ZGVsZXRlRW1wdHlEaXJlY3RvcnkocGF0aCk7CisgICAgcmV0dXJuIHdlYktpdENsaWVudCgp
LT5maWxlVXRpbGl0aWVzKCktPmRlbGV0ZUVtcHR5RGlyZWN0b3J5KHBhdGgpOwogfQogCiBib29s
IENocm9taXVtQnJpZGdlOjpnZXRGaWxlU2l6ZShjb25zdCBTdHJpbmcmIHBhdGgsIGxvbmcgbG9u
ZyYgcmVzdWx0KQogewotICAgIHJldHVybiB3ZWJLaXRDbGllbnQoKS0+ZmlsZVN5c3RlbSgpLT5n
ZXRGaWxlU2l6ZShwYXRoLCByZXN1bHQpOworICAgIHJldHVybiB3ZWJLaXRDbGllbnQoKS0+Zmls
ZVV0aWxpdGllcygpLT5nZXRGaWxlU2l6ZShwYXRoLCByZXN1bHQpOwogfQogCiBib29sIENocm9t
aXVtQnJpZGdlOjpnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShjb25zdCBTdHJpbmcmIHBhdGgsIHRp
bWVfdCYgcmVzdWx0KQogewogICAgIGRvdWJsZSBtb2RpZmljYXRpb25UaW1lOwotICAgIGlmICgh
d2ViS2l0Q2xpZW50KCktPmZpbGVTeXN0ZW0oKS0+Z2V0RmlsZU1vZGlmaWNhdGlvblRpbWUocGF0
aCwgbW9kaWZpY2F0aW9uVGltZSkpCisgICAgaWYgKCF3ZWJLaXRDbGllbnQoKS0+ZmlsZVV0aWxp
dGllcygpLT5nZXRGaWxlTW9kaWZpY2F0aW9uVGltZShwYXRoLCBtb2RpZmljYXRpb25UaW1lKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJlc3VsdCA9IHN0YXRpY19jYXN0PHRpbWVfdD4o
bW9kaWZpY2F0aW9uVGltZSk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0zNDksNjIgKzM0OSw2MiBA
QCBib29sIENocm9taXVtQnJpZGdlOjpnZXRGaWxlTW9kaWZpY2F0aW9uVGltZShjb25zdCBTdHJp
bmcmIHBhdGgsIHRpbWVfdCYgcmVzdWx0KQogCiBTdHJpbmcgQ2hyb21pdW1CcmlkZ2U6OmRpcmVj
dG9yeU5hbWUoY29uc3QgU3RyaW5nJiBwYXRoKQogewotICAgIHJldHVybiB3ZWJLaXRDbGllbnQo
KS0+ZmlsZVN5c3RlbSgpLT5kaXJlY3RvcnlOYW1lKHBhdGgpOworICAgIHJldHVybiB3ZWJLaXRD
bGllbnQoKS0+ZmlsZVV0aWxpdGllcygpLT5kaXJlY3RvcnlOYW1lKHBhdGgpOwogfQogCiBTdHJp
bmcgQ2hyb21pdW1CcmlkZ2U6OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChjb25zdCBTdHJpbmcm
IHBhdGgsIGNvbnN0IFN0cmluZyYgY29tcG9uZW50KQogewotICAgIHJldHVybiB3ZWJLaXRDbGll
bnQoKS0+ZmlsZVN5c3RlbSgpLT5wYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwgY29tcG9u
ZW50KTsKKyAgICByZXR1cm4gd2ViS2l0Q2xpZW50KCktPmZpbGVVdGlsaXRpZXMoKS0+cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KHBhdGgsIGNvbXBvbmVudCk7CiB9CiAKIGJvb2wgQ2hyb21pdW1C
cmlkZ2U6Om1ha2VBbGxEaXJlY3Rvcmllcyhjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAgcmV0
dXJuIHdlYktpdENsaWVudCgpLT5maWxlU3lzdGVtKCktPm1ha2VBbGxEaXJlY3RvcmllcyhwYXRo
KTsKKyAgICByZXR1cm4gd2ViS2l0Q2xpZW50KCktPmZpbGVVdGlsaXRpZXMoKS0+bWFrZUFsbERp
cmVjdG9yaWVzKHBhdGgpOwogfQogCiBTdHJpbmcgQ2hyb21pdW1CcmlkZ2U6OmdldEFic29sdXRl
UGF0aChjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAgcmV0dXJuIHdlYktpdENsaWVudCgpLT5m
aWxlU3lzdGVtKCktPmdldEFic29sdXRlUGF0aChwYXRoKTsKKyAgICByZXR1cm4gd2ViS2l0Q2xp
ZW50KCktPmZpbGVVdGlsaXRpZXMoKS0+Z2V0QWJzb2x1dGVQYXRoKHBhdGgpOwogfQogCiBib29s
IENocm9taXVtQnJpZGdlOjppc0RpcmVjdG9yeShjb25zdCBTdHJpbmcmIHBhdGgpCiB7Ci0gICAg
cmV0dXJuIHdlYktpdENsaWVudCgpLT5maWxlU3lzdGVtKCktPmlzRGlyZWN0b3J5KHBhdGgpOwor
ICAgIHJldHVybiB3ZWJLaXRDbGllbnQoKS0+ZmlsZVV0aWxpdGllcygpLT5pc0RpcmVjdG9yeShw
YXRoKTsKIH0KIAogS1VSTCBDaHJvbWl1bUJyaWRnZTo6ZmlsZVBhdGhUb1VSTChjb25zdCBTdHJp
bmcmIHBhdGgpCiB7Ci0gICAgcmV0dXJuIHdlYktpdENsaWVudCgpLT5maWxlU3lzdGVtKCktPmZp
bGVQYXRoVG9VUkwocGF0aCk7CisgICAgcmV0dXJuIHdlYktpdENsaWVudCgpLT5maWxlVXRpbGl0
aWVzKCktPmZpbGVQYXRoVG9VUkwocGF0aCk7CiB9CiAKIFBsYXRmb3JtRmlsZUhhbmRsZSBDaHJv
bWl1bUJyaWRnZTo6b3BlbkZpbGUoY29uc3QgU3RyaW5nJiBwYXRoLCBGaWxlT3Blbk1vZGUgbW9k
ZSkKIHsKLSAgICByZXR1cm4gd2ViS2l0Q2xpZW50KCktPmZpbGVTeXN0ZW0oKS0+b3BlbkZpbGUo
cGF0aCwgbW9kZSk7CisgICAgcmV0dXJuIHdlYktpdENsaWVudCgpLT5maWxlVXRpbGl0aWVzKCkt
Pm9wZW5GaWxlKHBhdGgsIG1vZGUpOwogfQogCiB2b2lkIENocm9taXVtQnJpZGdlOjpjbG9zZUZp
bGUoUGxhdGZvcm1GaWxlSGFuZGxlJiBoYW5kbGUpCiB7Ci0gICAgd2ViS2l0Q2xpZW50KCktPmZp
bGVTeXN0ZW0oKS0+Y2xvc2VGaWxlKGhhbmRsZSk7CisgICAgd2ViS2l0Q2xpZW50KCktPmZpbGVV
dGlsaXRpZXMoKS0+Y2xvc2VGaWxlKGhhbmRsZSk7CiB9CiAKIGxvbmcgbG9uZyBDaHJvbWl1bUJy
aWRnZTo6c2Vla0ZpbGUoUGxhdGZvcm1GaWxlSGFuZGxlIGhhbmRsZSwgbG9uZyBsb25nIG9mZnNl
dCwgRmlsZVNlZWtPcmlnaW4gb3JpZ2luKQogewotICAgIHJldHVybiB3ZWJLaXRDbGllbnQoKS0+
ZmlsZVN5c3RlbSgpLT5zZWVrRmlsZShoYW5kbGUsIG9mZnNldCwgb3JpZ2luKTsKKyAgICByZXR1
cm4gd2ViS2l0Q2xpZW50KCktPmZpbGVVdGlsaXRpZXMoKS0+c2Vla0ZpbGUoaGFuZGxlLCBvZmZz
ZXQsIG9yaWdpbik7CiB9CiAKIGJvb2wgQ2hyb21pdW1CcmlkZ2U6OnRydW5jYXRlRmlsZShQbGF0
Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBsb25nIGxvbmcgb2Zmc2V0KQogewotICAgIHJldHVybiB3
ZWJLaXRDbGllbnQoKS0+ZmlsZVN5c3RlbSgpLT50cnVuY2F0ZUZpbGUoaGFuZGxlLCBvZmZzZXQp
OworICAgIHJldHVybiB3ZWJLaXRDbGllbnQoKS0+ZmlsZVV0aWxpdGllcygpLT50cnVuY2F0ZUZp
bGUoaGFuZGxlLCBvZmZzZXQpOwogfQogCiBpbnQgQ2hyb21pdW1CcmlkZ2U6OnJlYWRGcm9tRmls
ZShQbGF0Zm9ybUZpbGVIYW5kbGUgaGFuZGxlLCBjaGFyKiBkYXRhLCBpbnQgbGVuZ3RoKQogewot
ICAgIHJldHVybiB3ZWJLaXRDbGllbnQoKS0+ZmlsZVN5c3RlbSgpLT5yZWFkRnJvbUZpbGUoaGFu
ZGxlLCBkYXRhLCBsZW5ndGgpOworICAgIHJldHVybiB3ZWJLaXRDbGllbnQoKS0+ZmlsZVV0aWxp
dGllcygpLT5yZWFkRnJvbUZpbGUoaGFuZGxlLCBkYXRhLCBsZW5ndGgpOwogfQogCiBpbnQgQ2hy
b21pdW1CcmlkZ2U6OndyaXRlVG9GaWxlKFBsYXRmb3JtRmlsZUhhbmRsZSBoYW5kbGUsIGNvbnN0
IGNoYXIqIGRhdGEsIGludCBsZW5ndGgpCiB7Ci0gICAgcmV0dXJuIHdlYktpdENsaWVudCgpLT5m
aWxlU3lzdGVtKCktPndyaXRlVG9GaWxlKGhhbmRsZSwgZGF0YSwgbGVuZ3RoKTsKKyAgICByZXR1
cm4gd2ViS2l0Q2xpZW50KCktPmZpbGVVdGlsaXRpZXMoKS0+d3JpdGVUb0ZpbGUoaGFuZGxlLCBk
YXRhLCBsZW5ndGgpOwogfQogCiAvLyBGb250IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCg==
</data>
<flag name="review"
          id="53121"
          type_id="1"
          status="+"
          setter="jianli"
    />
          </attachment>
      

    </bug>

</bugzilla>