<?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>56274</bug_id>
          
          <creation_ts>2011-03-13 15:23:58 -0700</creation_ts>
          <short_desc>Delegate some read-only DOM properties to FrameLoaderClient and ChromeClient</short_desc>
          <delta_ts>2012-12-26 07:04:57 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>
          
          <blocked>41801</blocked>
    
    <blocked>56678</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Robert Hogan">robert</reporter>
          <assigned_to name="Robert Hogan">robert</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>mikeperry-webkit</cc>
    
    <cc>morrita</cc>
    
    <cc>robert</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>366739</commentid>
    <comment_count>0</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-03-13 15:23:58 -0700</bug_when>
    <thetext>Delegate some read-only DOM properties to FrameLoaderClient and ChromeClient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366740</commentid>
    <comment_count>1</comment_count>
      <attachid>85625</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-03-13 15:28:53 -0700</bug_when>
    <thetext>Created attachment 85625
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366741</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-03-13 15:40:25 -0700</bug_when>
    <thetext>Attachment 85625 did not build on qt:
Build output: http://queues.webkit.org/results/8176088</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366742</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-13 15:50:32 -0700</bug_when>
    <thetext>Attachment 85625 did not build on chromium:
Build output: http://queues.webkit.org/results/8181018</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366743</commentid>
    <comment_count>4</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-03-13 15:55:27 -0700</bug_when>
    <thetext>Attachment 85625 did not build on win:
Build output: http://queues.webkit.org/results/8176093</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366747</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-13 16:37:52 -0700</bug_when>
    <thetext>Attachment 85625 did not build on chromium:
Build output: http://queues.webkit.org/results/8176104</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366749</commentid>
    <comment_count>6</comment_count>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-03-13 16:57:18 -0700</bug_when>
    <thetext>Attachment 85625 did not build on gtk:
Build output: http://queues.webkit.org/results/8176106</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366753</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-13 17:12:55 -0700</bug_when>
    <thetext>Attachment 85625 did not build on mac:
Build output: http://queues.webkit.org/results/8175109</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>366839</commentid>
    <comment_count>8</comment_count>
      <attachid>85625</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-03-13 22:34:41 -0700</bug_when>
    <thetext>Comment on attachment 85625
Patch

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

&gt; Source/WebCore/loader/FrameLoaderClient.h:235
&gt; +        virtual String referrer(const String&amp; referrer) {return referrer;};
&gt; +        virtual String windowName(const String&amp; name) {return name;};
&gt; +        virtual unsigned historyLength(unsigned length) {return length;};

No need for ; after these lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367154</commentid>
    <comment_count>9</comment_count>
      <attachid>85705</attachid>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-03-14 13:04:08 -0700</bug_when>
    <thetext>Created attachment 85705
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383515</commentid>
    <comment_count>10</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-04-11 14:19:59 -0700</bug_when>
    <thetext>&gt; Created an attachment (id=85705) [details]
&gt; Patch

Just for curious, is it possible to have &quot;drop in&quot; support for fingerprint prevention?
It would be great if we can share the mechanism between ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>383545</commentid>
    <comment_count>11</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-04-11 14:39:29 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt; Created an attachment (id=85705) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; Just for curious, is it possible to have &quot;drop in&quot; support for fingerprint prevention?
&gt; It would be great if we can share the mechanism between ports.

Hi Morita,

If there are items for which the &apos;right thing to do&apos; can be agreed on then there&apos;s no reason why WebKit couldn&apos;t implement them.

I&apos;m trying to build up a picture of what those might be at:

https://trac.webkit.org/wiki/Fingerprinting</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>391918</commentid>
    <comment_count>12</comment_count>
      <attachid>85705</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2011-04-25 15:07:59 -0700</bug_when>
    <thetext>Comment on attachment 85705
Patch

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

Drive-by comment:

&gt; Source/WebCore/loader/FrameLoader.cpp:3365
&gt;  String FrameLoader::referrer() const
&gt;  {
&gt; -    return m_documentLoader ? m_documentLoader-&gt;request().httpReferrer() : &quot;&quot;;
&gt; +    return m_documentLoader ? m_client-&gt;referrer(m_documentLoader-&gt;request().httpReferrer()) : &quot;&quot;;
&gt; +}

I&apos;m pretty sure that this will only change the referrer as displayed to javascript, not what is sent over the network.

Is that intentional?  I feel like if we&apos;re going to hide referrers, we should hide it in both HTTP and JS, not just one or the other.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392407</commentid>
    <comment_count>13</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2011-04-26 05:21:16 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 85705 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=85705&amp;action=review
&gt; 
&gt; Drive-by comment:
&gt; 
&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:3365
&gt; &gt;  String FrameLoader::referrer() const
&gt; &gt;  {
&gt; &gt; -    return m_documentLoader ? m_documentLoader-&gt;request().httpReferrer() : &quot;&quot;;
&gt; &gt; +    return m_documentLoader ? m_client-&gt;referrer(m_documentLoader-&gt;request().httpReferrer()) : &quot;&quot;;
&gt; &gt; +}
&gt; 
&gt; I&apos;m pretty sure that this will only change the referrer as displayed to javascript, not what is sent over the network.

That&apos;s correct, yes.

&gt; 
&gt; Is that intentional?  I feel like if we&apos;re going to hide referrers, we should hide it in both HTTP and JS, not just one or the other.

It&apos;s intentional insofar as there is already a mechanism, in some ports at least, for the client to manipulate HTTP headers. In Qt, this is QNetworkAccessManager::createRequest() - which admittedly sits outside WebKit in Qt&apos;s case.

The other factor is that there may be a better &apos;generic&apos; rule for making the referrer header more privacy-sensitive in all cases. This is tracked at https://bugs.webkit.org/show_bug.cgi?id=51638</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>392498</commentid>
    <comment_count>14</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-26 09:15:41 -0700</bug_when>
    <thetext>It would probably be quite confusing that this client call only affects DOM APIs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396002</commentid>
    <comment_count>15</comment_count>
      <attachid>85705</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-01 12:36:00 -0700</bug_when>
    <thetext>Comment on attachment 85705
Patch

I really don&apos;t like this design.

I think we should have a new AntiFingerprinting class or something that we can optionally pass these values to and have it reply with lies.

I don&apos;t want to plumb all of these up through the client in every different callsite.  Instead, it would be better to plumb through this lier class, which can plumb through the client on ports which care.  Then all the anti-fingerprinting logic can be implemented inside WebCore too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>396003</commentid>
    <comment_count>16</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-01 12:37:21 -0700</bug_when>
    <thetext>What I dislike so much about this design is that previously all these simple data values are self-contained inside WebCore.  Now they&apos;re needlessly piping up through WebKit, which is bad.  Only in the anti-fingerprinting case do we need to ask WebKIt.  And even then we only need to ask it if we&apos;ve turne don the anti-fingerprinting stuff, and then the anti-fingerprinting code (which should be inside WebCore) can do the lying.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85625</attachid>
            <date>2011-03-13 15:28:53 -0700</date>
            <delta_ts>2011-03-14 13:04:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56274-20110313222847.patch</filename>
            <type>text/plain</type>
            <size>9972</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODA3NDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzYzMwNWRlMjc0ZWNhZDBk
NzFkZWNkMmFlN2M4N2U0MzRiMmVlMTU1Li5mYjUwZjRmYTJkMjEzOWQ2YTZmZDU5N2UwMTgzNjA0
OGQ4ZWI1MzE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTEtMDMtMTMgIFJvYmVy
dCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERlbGVnYXRlIHNvbWUgcmVhZC1vbmx5IERPTSBwcm9wZXJ0
aWVzIHRvIEZyYW1lTG9hZGVyQ2xpZW50IGFuZCBDaHJvbWVDbGllbnQKKworICAgICAgICBBbGxv
dyBGcmFtZUxvYWRlckNsaWVudCB0byBkZXRlcm1pbmUgdGhlIHZhbHVlcyBmb3IgdGhlCisgICAg
ICAgIHJlYWQtb25seSBwcm9wZXJ0aWVzIGRvY3VtZW50LnJlZmVycmVyLCB3aW5kb3cubmFtZSwg
YW5kCisgICAgICAgIGhpc3RvcnkubGVuZ3RoLgorICAgICAgICBBbGxvdyBDaHJvbWVDbGllbnQg
dG8gZGV0ZXJtaW5lIHRoZSB2YWx1ZXMgZm9yIHRoZSByZWFkLW9ubHkKKyAgICAgICAgcHJvcGVy
dGllczogd2luZG93LmlubmVySGVpZ2h0KCksIHdpbmRvdy5pbm5lcldpZHRoLAorICAgICAgICB3
aW5kb3cuc2Nyb2xsWCBhbmQgd2luZG93LnNjcm9sbFkuIChOb3RlIHRoYXQgb3V0ZXJIZWlnaHQs
CisgICAgICAgIG91dGVyV2lkdGgsIHNjcmVlblggYW5kIHNjcmVlblkgYXJlIGFscmVhZHkgZGVs
ZWdhdGVkIHRvCisgICAgICAgIENocm9tZUNsaWVudCkuCisgICAgCisgICAgICAgIFRoZSBwdXJw
b3NlIG9mIGRlZmVycmluZyBvbiB0aGVzZSB2YWx1ZXMgdG8gdGhlIGNsaWVudHMgaXMgdG8KKyAg
ICAgICAgYWxsb3cgcG9ydHMgdG8gZGVsZWdhdGUgdGhlbSBvbiB0byB1c2Vycy4KKyAgICAKKyAg
ICAgICAgU2VlIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL3dpa2kvRmluZ2VycHJpbnRpbmcjYTEu
SmF2YXNjcmlwdE9iamVjdHMKKyAgICAgICAgZm9yIGRpc2N1c3Npb24gb2YgdGhlIG1vdGl2YXRp
b24gYmVoaW5kIHRoaXMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU2Mjc0CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBUaGlzIGFkZHMgbm8gbmV3
IGJlaGF2aW91ci4KKworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmVmZXJyZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXI6OndpbmRvd05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Omhp
c3RvcnlMZW5ndGgpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXJDbGllbnQ6OnJlZmVycmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
Ojp3aW5kb3dOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50OjpoaXN0
b3J5TGVuZ3RoKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWU6OmlubmVySGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6aW5uZXJX
aWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnNjcm9sbFgpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21lOjpzY3JvbGxZKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAg
ICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6
OmlubmVySGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aW5uZXJXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnNjcm9sbFgpOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpzY3JvbGxZKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmlubmVySGVpZ2h0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6aW5uZXJXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3c6OnNjcm9sbFgpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzY3JvbGxZ
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6bmFtZSk6CisgICAgICAgICogcGFnZS9I
aXN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3Rvcnk6Omxlbmd0aCk6CisKIDIwMTEt
MDMtMTAgIFRvbnkgR2VudGlsY29yZSAgPHRvbnlnQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CmluZGV4IDYyMjE1OWRjYTg3M2VjNDNiYTRiNGUzMDdlNDlmOTg4OGMzNmZjYWIuLmE3ZDkxNTU1
ZTU1NGZjNTFiYWNmMzY0ODIzMjgxNGRmMmYwMjc5NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcApAQCAtMzM2MCw3ICszMzYwLDE3IEBAIEtVUkwgRnJhbWVMb2FkZXI6Om9y
aWdpbmFsUmVxdWVzdFVSTCgpIGNvbnN0CiAKIFN0cmluZyBGcmFtZUxvYWRlcjo6cmVmZXJyZXIo
KSBjb25zdAogewotICAgIHJldHVybiBtX2RvY3VtZW50TG9hZGVyID8gbV9kb2N1bWVudExvYWRl
ci0+cmVxdWVzdCgpLmh0dHBSZWZlcnJlcigpIDogIiI7CisgICAgcmV0dXJuIG1fZG9jdW1lbnRM
b2FkZXIgPyBtX2NsaWVudC0+cmVmZXJyZXIobV9kb2N1bWVudExvYWRlci0+cmVxdWVzdCgpLmh0
dHBSZWZlcnJlcigpKSA6ICIiOworfQorCitTdHJpbmcgRnJhbWVMb2FkZXI6OndpbmRvd05hbWUo
Y29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudC0+d2luZG93
TmFtZShuYW1lKTsKK30KKwordW5zaWduZWQgRnJhbWVMb2FkZXI6Omhpc3RvcnlMZW5ndGgodW5z
aWduZWQgbGVuZ3RoKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudC0+aGlzdG9yeUxlbmd0
aChsZW5ndGgpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpkaXNwYXRjaERvY3VtZW50RWxlbWVu
dEF2YWlsYWJsZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGQ1OWViMTY1
YzUxMmZlNjU0ZjA0ZjI5ZjQwNDljZmZlNDIzNWU4OGUuLjhiZjBjNDQ0YWM3YjkwNTMxMWQxNzQ1
MzJkZTY1N2FjMjEwMzk3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0x
NDEsNiArMTQxLDggQEAgcHVibGljOgogICAgIFN0cmluZyByZWZlcnJlcigpIGNvbnN0OwogICAg
IFN0cmluZyBvdXRnb2luZ1JlZmVycmVyKCkgY29uc3Q7CiAgICAgU3RyaW5nIG91dGdvaW5nT3Jp
Z2luKCkgY29uc3Q7CisgICAgU3RyaW5nIHdpbmRvd05hbWUoY29uc3QgU3RyaW5nJikgY29uc3Q7
CisgICAgdW5zaWduZWQgaGlzdG9yeUxlbmd0aCh1bnNpZ25lZCkgY29uc3Q7CiAKICAgICBEb2N1
bWVudExvYWRlciogYWN0aXZlRG9jdW1lbnRMb2FkZXIoKSBjb25zdDsKICAgICBEb2N1bWVudExv
YWRlciogZG9jdW1lbnRMb2FkZXIoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50TG9hZGVyLmdl
dCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDhk
YmE1OWNkOWM2Y2VhZWYxNzZiNzVjMTMxMjk4N2ZiMDUzNDhjYjQuLjdjM2FmZjFhZjc3OWFlNjM2
MWY0NDAxYjM1NmZmY2I4YjA2YjBhMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oCkBAIC0yMzAsNiArMjMwLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VGl0bGUoY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgS1VS
TCYpID0gMDsKIAogICAgICAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdlbnQoY29uc3QgS1VSTCYp
ID0gMDsKKyAgICAgICAgdmlydHVhbCBTdHJpbmcgcmVmZXJyZXIoY29uc3QgU3RyaW5nJiByZWZl
cnJlcikge3JldHVybiByZWZlcnJlcjt9OworICAgICAgICB2aXJ0dWFsIFN0cmluZyB3aW5kb3dO
YW1lKGNvbnN0IFN0cmluZyYgbmFtZSkge3JldHVybiBuYW1lO307CisgICAgICAgIHZpcnR1YWwg
dW5zaWduZWQgaGlzdG9yeUxlbmd0aCh1bnNpZ25lZCBsZW5ndGgpIHtyZXR1cm4gbGVuZ3RoO307
CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIHZvaWQgc2F2ZVBsYXRmb3JtRGF0YVRvQ2FjaGVk
RnJhbWUoQ2FjaGVkRnJhbWUqKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9pZCB0cmFuc2l0aW9u
VG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUoQ2FjaGVkRnJhbWUqKSA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0No
cm9tZS5jcHAKaW5kZXggNTg4MWQ1ZWE0NTg3MTg1MGZmYWFkMzMxNDMxNDc3YzUwNzhjYWZmNy4u
YmQyOTQwMmIxODIwM2I1ZmFlZTg5N2YyYmViZDUwYmQ3NjlkZDhhMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmNwcApAQCAtMTQwLDYgKzE0MCwyNiBAQCBGbG9hdFJlY3QgQ2hyb21lOjpwYWdlUmVjdCgp
IGNvbnN0CiAgICAgcmV0dXJuIG1fY2xpZW50LT5wYWdlUmVjdCgpOwogfQogCitpbnQgQ2hyb21l
Ojppbm5lckhlaWdodChpbnQgaGVpZ2h0LCBpbnQgem9vbUZhY3RvcikgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9jbGllbnQtPmlubmVySGVpZ2h0KGhlaWdodCwgem9vbUZhY3Rvcik7Cit9CisKK2lu
dCBDaHJvbWU6OmlubmVyV2lkdGgoaW50IHdpZHRoLCBpbnQgem9vbUZhY3RvcikgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9jbGllbnQtPmlubmVyV2lkdGgod2lkdGgsIHpvb21GYWN0b3IpOworfQor
CitpbnQgQ2hyb21lOjpzY3JvbGxYKGludCBzY3JvbGxYLCBpbnQgem9vbUZhY3RvcikgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9jbGllbnQtPnNjcm9sbFgoc2Nyb2xsWCwgem9vbUZhY3Rvcik7Cit9
CisKK2ludCBDaHJvbWU6OnNjcm9sbFkoaW50IHNjcm9sbFksIGludCB6b29tRmFjdG9yKSBjb25z
dAoreworICAgIHJldHVybiBtX2NsaWVudC0+c2Nyb2xsWShzY3JvbGxZLCB6b29tRmFjdG9yKTsK
K30KKwogZmxvYXQgQ2hyb21lOjpzY2FsZUZhY3RvcigpCiB7CiAgICAgcmV0dXJuIG1fY2xpZW50
LT5zY2FsZUZhY3RvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggOTk4NGE3Y2I5ODFlYjE0NmRm
MGM4ZjY1MGFiNTdhYzIzYjBkYTUwMy4uN2Y4MDc1NTBjYjhlMjliZDFiNDJlMTkyMWI2NDRjZjY5
OWU5NGJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC05Myw2ICs5MywxMSBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIAogICAgICAgICBmbG9hdCBzY2FsZUZhY3RvcigpOwogCisgICAg
ICAgIGludCBpbm5lckhlaWdodChpbnQsIGludCkgY29uc3Q7CisgICAgICAgIGludCBpbm5lcldp
ZHRoKGludCwgaW50KSBjb25zdDsKKyAgICAgICAgaW50IHNjcm9sbFgoaW50LCBpbnQpIGNvbnN0
OworICAgICAgICBpbnQgc2Nyb2xsWShpbnQsIGludCkgY29uc3Q7CisKICAgICAgICAgdm9pZCBm
b2N1cygpIGNvbnN0OwogICAgICAgICB2b2lkIHVuZm9jdXMoKSBjb25zdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggMzNiOGY3YWY4ZDhlOTI3OGQ5ZWRiM2NhNzJjYTAwODdl
Yzg4MmUyNy4uNDI2ZWRmNmU0MmY0OGYwOTgyNDc4ZmQ5MTYwYmJhYTQ0OGI2NmQ1ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC05MSw2ICs5MSwxMSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkTm9kZUNoYW5nZWQoTm9kZSopID0g
MDsKICAgICAgICAgdmlydHVhbCB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQoRnJhbWUqKSA9IDA7
CiAKKyAgICAgICAgdmlydHVhbCBpbnQgaW5uZXJIZWlnaHQoaW50IGhlaWdodCwgaW50IHpvb21G
YWN0b3IpIHsgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oaGVpZ2h0IC8gem9vbUZhY3Rvcik7IH07
CisgICAgICAgIHZpcnR1YWwgaW50IGlubmVyV2lkdGgoaW50IHdpZHRoLCBpbnQgem9vbUZhY3Rv
cikgICB7IHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHdpZHRoIC8gem9vbUZhY3Rvcik7IH07Cisg
ICAgICAgIHZpcnR1YWwgaW50IHNjcm9sbFgoaW50IHNjcm9sbFgsIGludCB6b29tRmFjdG9yKSAg
IHsgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oc2Nyb2xsWCAvIHpvb21GYWN0b3IpOyB9OworICAg
ICAgICB2aXJ0dWFsIGludCBzY3JvbGxZKGludCBzY3JvbGxZLCBpbnQgem9vbUZhY3RvcikgICB7
IHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHNjcm9sbFkgLyB6b29tRmFjdG9yKTsgfTsKKwogICAg
ICAgICAvLyBUaGUgRnJhbWUgcG9pbnRlciBwcm92aWRlcyB0aGUgQ2hyb21lQ2xpZW50IHdpdGgg
Y29udGV4dCBhYm91dCB3aGljaAogICAgICAgICAvLyBGcmFtZSB3YW50cyB0byBjcmVhdGUgdGhl
IG5ldyBQYWdlLiAgQWxzbywgdGhlIG5ld2x5IGNyZWF0ZWQgd2luZG93CiAgICAgICAgIC8vIHNo
b3VsZCBub3QgYmUgc2hvd24gdG8gdGhlIHVzZXIgdW50aWwgdGhlIENocm9tZUNsaWVudCBvZiB0
aGUgbmV3bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCAyMmVjMGNjOTcyODVhZDBl
ODFkODY1ODAxNmRjNjAwMWI2YWEzYmY3Li5lMmUwZjI5MzgxOGI1ZmI4ZTliYzk5YWJhODJjMDIw
YzFiZjljNzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0xMDc3LDggKzEwNzcs
MTIgQEAgaW50IERPTVdpbmRvdzo6aW5uZXJIZWlnaHQoKSBjb25zdAogICAgIEZyYW1lVmlldyog
dmlldyA9IG1fZnJhbWUtPnZpZXcoKTsKICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybiAw
OwotICAgIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHZpZXctPmhlaWdodCgpIC8gbV9m
cmFtZS0+cGFnZVpvb21GYWN0b3IoKSk7CisKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFn
ZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gcGFn
ZS0+Y2hyb21lKCktPmlubmVySGVpZ2h0KHZpZXctPmhlaWdodCgpLCBtX2ZyYW1lLT5wYWdlWm9v
bUZhY3RvcigpKTsKIH0KIAogaW50IERPTVdpbmRvdzo6aW5uZXJXaWR0aCgpIGNvbnN0CkBAIC0x
MDkwLDcgKzEwOTQsMTEgQEAgaW50IERPTVdpbmRvdzo6aW5uZXJXaWR0aCgpIGNvbnN0CiAgICAg
aWYgKCF2aWV3KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxp
bnQ+KHZpZXctPndpZHRoKCkgLyBtX2ZyYW1lLT5wYWdlWm9vbUZhY3RvcigpKTsKKyAgICBQYWdl
KiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJu
IDA7CisKKyAgICByZXR1cm4gcGFnZS0+Y2hyb21lKCktPmlubmVyV2lkdGgodmlldy0+d2lkdGgo
KSwgbV9mcmFtZS0+cGFnZVpvb21GYWN0b3IoKSk7CiB9CiAKIGludCBET01XaW5kb3c6OnNjcmVl
blgoKSBjb25zdApAQCAtMTEyNiw5ICsxMTM0LDEzIEBAIGludCBET01XaW5kb3c6OnNjcm9sbFgo
KSBjb25zdAogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuIDA7CiAKKyAgICBQYWdlKiBw
YWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIDA7
CisKICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHMoKTsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHZpZXctPnNjcm9sbFgo
KSAvIG1fZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkpOworICAgIHJldHVybiBwYWdlLT5jaHJvbWUo
KS0+c2Nyb2xsWCh2aWV3LT5zY3JvbGxYKCksIG1fZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkpOwog
fQogCiBpbnQgRE9NV2luZG93OjpzY3JvbGxZKCkgY29uc3QKQEAgLTExNDAsOSArMTE1MiwxMyBA
QCBpbnQgRE9NV2luZG93OjpzY3JvbGxZKCkgY29uc3QKICAgICBpZiAoIXZpZXcpCiAgICAgICAg
IHJldHVybiAwOwogCisgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKTsKKyAgICBpZiAo
IXBhZ2UpCisgICAgICAgIHJldHVybiAwOworCiAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXBk
YXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKLSAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8aW50Pih2aWV3LT5zY3JvbGxZKCkgLyBtX2ZyYW1lLT5wYWdlWm9vbUZhY3RvcigpKTsK
KyAgICByZXR1cm4gcGFnZS0+Y2hyb21lKCktPnNjcm9sbFkodmlldy0+c2Nyb2xsWSgpLCBtX2Zy
YW1lLT5wYWdlWm9vbUZhY3RvcigpKTsKIH0KIAogYm9vbCBET01XaW5kb3c6OmNsb3NlZCgpIGNv
bnN0CkBAIC0xMTYzLDcgKzExNzksNyBAQCBTdHJpbmcgRE9NV2luZG93OjpuYW1lKCkgY29uc3QK
ICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAotICAgIHJldHVy
biBtX2ZyYW1lLT50cmVlKCktPm5hbWUoKTsKKyAgICByZXR1cm4gZnJhbWUoKS0+bG9hZGVyKCkt
PndpbmRvd05hbWUobV9mcmFtZS0+dHJlZSgpLT5uYW1lKCkpOwogfQogCiB2b2lkIERPTVdpbmRv
dzo6c2V0TmFtZShjb25zdCBTdHJpbmcmIHN0cmluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvSGlzdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hpc3RvcnkuY3BwCmlu
ZGV4IDFkMWU3N2E0NjZmOTM3ZGJiYjg5M2Y3MTg2OWY1ODhhNjIxZWNlMWUuLmJjYjFiNGVhZDVm
ZjM4ZmZlYjg2MzQwMDQ1YTAxOGI4MTg2NjE1NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvSGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9IaXN0b3J5LmNwcApA
QCAtNTgsNyArNTgsNyBAQCB1bnNpZ25lZCBIaXN0b3J5OjpsZW5ndGgoKSBjb25zdAogICAgICAg
ICByZXR1cm4gMDsKICAgICBpZiAoIW1fZnJhbWUtPnBhZ2UoKSkKICAgICAgICAgcmV0dXJuIDA7
Ci0gICAgcmV0dXJuIG1fZnJhbWUtPnBhZ2UoKS0+YmFja0ZvcndhcmQoKS0+Y291bnQoKTsKKyAg
ICByZXR1cm4gbV9mcmFtZS0+bG9hZGVyKCktPmhpc3RvcnlMZW5ndGgobV9mcmFtZS0+cGFnZSgp
LT5iYWNrRm9yd2FyZCgpLT5jb3VudCgpKTsKIH0KIAogdm9pZCBIaXN0b3J5OjpiYWNrKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85705</attachid>
            <date>2011-03-14 13:04:08 -0700</date>
            <delta_ts>2011-05-01 12:36:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56274-20110314200405.patch</filename>
            <type>text/plain</type>
            <size>10155</size>
            <attacher name="Robert Hogan">robert</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODEwNDEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OTM4ZmQ1MGM4YWJkODhi
MmFmNzFlZWJhMTliNzM3ZDAwNWVkMzZmLi5kZTM5MjhhNDE5YWU1MzJlOTA5MWNmMDIxYmY5Mjg3
NmFlYTQxOWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMTEtMDMtMTMgIFJvYmVy
dCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIERlbGVnYXRlIHNvbWUgcmVhZC1vbmx5IERPTSBwcm9wZXJ0
aWVzIHRvIEZyYW1lTG9hZGVyQ2xpZW50IGFuZCBDaHJvbWVDbGllbnQKKworICAgICAgICBBbGxv
dyBGcmFtZUxvYWRlckNsaWVudCB0byBkZXRlcm1pbmUgdGhlIHZhbHVlcyBmb3IgdGhlCisgICAg
ICAgIHJlYWQtb25seSBwcm9wZXJ0aWVzIGRvY3VtZW50LnJlZmVycmVyLCB3aW5kb3cubmFtZSwg
YW5kCisgICAgICAgIGhpc3RvcnkubGVuZ3RoLgorICAgICAgICBBbGxvdyBDaHJvbWVDbGllbnQg
dG8gZGV0ZXJtaW5lIHRoZSB2YWx1ZXMgZm9yIHRoZSByZWFkLW9ubHkKKyAgICAgICAgcHJvcGVy
dGllczogd2luZG93LmlubmVySGVpZ2h0KCksIHdpbmRvdy5pbm5lcldpZHRoLAorICAgICAgICB3
aW5kb3cuc2Nyb2xsWCBhbmQgd2luZG93LnNjcm9sbFkuIChOb3RlIHRoYXQgb3V0ZXJIZWlnaHQs
CisgICAgICAgIG91dGVyV2lkdGgsIHNjcmVlblggYW5kIHNjcmVlblkgYXJlIGFscmVhZHkgZGVs
ZWdhdGVkIHRvCisgICAgICAgIENocm9tZUNsaWVudCkuCisgICAgCisgICAgICAgIFRoZSBwdXJw
b3NlIG9mIGRlZmVycmluZyBvbiB0aGVzZSB2YWx1ZXMgdG8gdGhlIGNsaWVudHMgaXMgdG8KKyAg
ICAgICAgYWxsb3cgcG9ydHMgdG8gZGVsZWdhdGUgdGhlbSBvbiB0byB1c2Vycy4KKyAgICAKKyAg
ICAgICAgU2VlIGh0dHBzOi8vdHJhYy53ZWJraXQub3JnL3dpa2kvRmluZ2VycHJpbnRpbmcjYTEu
SmF2YXNjcmlwdE9iamVjdHMKKyAgICAgICAgZm9yIGRpc2N1c3Npb24gb2YgdGhlIG1vdGl2YXRp
b24gYmVoaW5kIHRoaXMuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTU2Mjc0CisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiBUaGlzIGFkZHMgbm8gbmV3
IGJlaGF2aW91ci4KKworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGcmFtZUxvYWRlcjo6cmVmZXJyZXIpOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVMb2FkZXI6OndpbmRvd05hbWUpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXI6Omhp
c3RvcnlMZW5ndGgpOgorICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5oOgorICAgICAgICAq
IGxvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXJDbGllbnQ6OnJlZmVycmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
Ojp3aW5kb3dOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50OjpoaXN0
b3J5TGVuZ3RoKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDaHJvbWU6OmlubmVySGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6aW5uZXJX
aWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OnNjcm9sbFgpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21lOjpzY3JvbGxZKToKKyAgICAgICAgKiBwYWdlL0Nocm9tZS5oOgorICAgICAg
ICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6
OmlubmVySGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudDo6aW5uZXJXaWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OnNjcm9sbFgpOgorICAgICAgICAo
V2ViQ29yZTo6Q2hyb21lQ2xpZW50OjpzY3JvbGxZKToKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRv
dy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OmlubmVySGVpZ2h0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6aW5uZXJXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpE
T01XaW5kb3c6OnNjcm9sbFgpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzY3JvbGxZ
KToKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvdzo6bmFtZSk6CisgICAgICAgICogcGFnZS9I
aXN0b3J5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okhpc3Rvcnk6Omxlbmd0aCk6CisKIDIwMTEt
MDMtMTEgIE9saXZlciBIdW50ICA8b2xpdmVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdl
ZCBieSBHYXZpbiBCYXJyYWNsb3VnaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3Bw
CmluZGV4IDU2ODcyZDEwOTc5NzM1NmJkM2U2NWVjYmQzMmU3NTJmMzM4Y2NjZWEuLmY5YTkwNDBh
OGNjNTU0M2ZjOGI2YWExY2RhNjFkYjRjMDRmOTBlYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTG9hZGVyLmNwcApAQCAtMzM2MSw3ICszMzYxLDE3IEBAIEtVUkwgRnJhbWVMb2FkZXI6Om9y
aWdpbmFsUmVxdWVzdFVSTCgpIGNvbnN0CiAKIFN0cmluZyBGcmFtZUxvYWRlcjo6cmVmZXJyZXIo
KSBjb25zdAogewotICAgIHJldHVybiBtX2RvY3VtZW50TG9hZGVyID8gbV9kb2N1bWVudExvYWRl
ci0+cmVxdWVzdCgpLmh0dHBSZWZlcnJlcigpIDogIiI7CisgICAgcmV0dXJuIG1fZG9jdW1lbnRM
b2FkZXIgPyBtX2NsaWVudC0+cmVmZXJyZXIobV9kb2N1bWVudExvYWRlci0+cmVxdWVzdCgpLmh0
dHBSZWZlcnJlcigpKSA6ICIiOworfQorCitTdHJpbmcgRnJhbWVMb2FkZXI6OndpbmRvd05hbWUo
Y29uc3QgU3RyaW5nJiBuYW1lKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudC0+d2luZG93
TmFtZShuYW1lKTsKK30KKwordW5zaWduZWQgRnJhbWVMb2FkZXI6Omhpc3RvcnlMZW5ndGgodW5z
aWduZWQgbGVuZ3RoKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudC0+aGlzdG9yeUxlbmd0
aChsZW5ndGgpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyOjpkaXNwYXRjaERvY3VtZW50RWxlbWVu
dEF2YWlsYWJsZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCmluZGV4IGQ1OWViMTY1
YzUxMmZlNjU0ZjA0ZjI5ZjQwNDljZmZlNDIzNWU4OGUuLjhiZjBjNDQ0YWM3YjkwNTMxMWQxNzQ1
MzJkZTY1N2FjMjEwMzk3OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFt
ZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5oCkBAIC0x
NDEsNiArMTQxLDggQEAgcHVibGljOgogICAgIFN0cmluZyByZWZlcnJlcigpIGNvbnN0OwogICAg
IFN0cmluZyBvdXRnb2luZ1JlZmVycmVyKCkgY29uc3Q7CiAgICAgU3RyaW5nIG91dGdvaW5nT3Jp
Z2luKCkgY29uc3Q7CisgICAgU3RyaW5nIHdpbmRvd05hbWUoY29uc3QgU3RyaW5nJikgY29uc3Q7
CisgICAgdW5zaWduZWQgaGlzdG9yeUxlbmd0aCh1bnNpZ25lZCkgY29uc3Q7CiAKICAgICBEb2N1
bWVudExvYWRlciogYWN0aXZlRG9jdW1lbnRMb2FkZXIoKSBjb25zdDsKICAgICBEb2N1bWVudExv
YWRlciogZG9jdW1lbnRMb2FkZXIoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50TG9hZGVyLmdl
dCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGll
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDhk
YmE1OWNkOWM2Y2VhZWYxNzZiNzVjMTMxMjk4N2ZiMDUzNDhjYjQuLjY0MmRmZjk1NDM5YjM4N2Fi
ZTQzZmMyNDUzNzZhYzI1ODkwMmVkNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlckNsaWVudC5oCkBAIC0zMCw2ICszMCw3IEBACiAjZGVmaW5lIEZyYW1lTG9hZGVyQ2xpZW50
X2gKIAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyVHlwZXMuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0
cmluZy5oIgogI2luY2x1ZGUgIlNjcm9sbFR5cGVzLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CkBAIC0yMzAsNiArMjMxLDkgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIHZvaWQgc2V0VGl0bGUoY29uc3QgU3RyaW5nJiB0
aXRsZSwgY29uc3QgS1VSTCYpID0gMDsKIAogICAgICAgICB2aXJ0dWFsIFN0cmluZyB1c2VyQWdl
bnQoY29uc3QgS1VSTCYpID0gMDsKKyAgICAgICAgdmlydHVhbCBTdHJpbmcgcmVmZXJyZXIoY29u
c3QgU3RyaW5nJiByZWZlcnJlcikge3JldHVybiByZWZlcnJlcjt9CisgICAgICAgIHZpcnR1YWwg
U3RyaW5nIHdpbmRvd05hbWUoY29uc3QgU3RyaW5nJiBuYW1lKSB7cmV0dXJuIG5hbWU7fQorICAg
ICAgICB2aXJ0dWFsIHVuc2lnbmVkIGhpc3RvcnlMZW5ndGgodW5zaWduZWQgbGVuZ3RoKSB7cmV0
dXJuIGxlbmd0aDt9CiAgICAgICAgIAogICAgICAgICB2aXJ0dWFsIHZvaWQgc2F2ZVBsYXRmb3Jt
RGF0YVRvQ2FjaGVkRnJhbWUoQ2FjaGVkRnJhbWUqKSA9IDA7CiAgICAgICAgIHZpcnR1YWwgdm9p
ZCB0cmFuc2l0aW9uVG9Db21taXR0ZWRGcm9tQ2FjaGVkRnJhbWUoQ2FjaGVkRnJhbWUqKSA9IDA7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggNTg4MWQ1ZWE0NTg3MTg1MGZmYWFkMzMxNDMxNDc3
YzUwNzhjYWZmNy4uYmQyOTQwMmIxODIwM2I1ZmFlZTg5N2YyYmViZDUwYmQ3NjlkZDhhMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtMTQwLDYgKzE0MCwyNiBAQCBGbG9hdFJlY3QgQ2hyb21l
OjpwYWdlUmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fY2xpZW50LT5wYWdlUmVjdCgpOwogfQog
CitpbnQgQ2hyb21lOjppbm5lckhlaWdodChpbnQgaGVpZ2h0LCBpbnQgem9vbUZhY3RvcikgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQtPmlubmVySGVpZ2h0KGhlaWdodCwgem9vbUZhY3Rv
cik7Cit9CisKK2ludCBDaHJvbWU6OmlubmVyV2lkdGgoaW50IHdpZHRoLCBpbnQgem9vbUZhY3Rv
cikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQtPmlubmVyV2lkdGgod2lkdGgsIHpvb21G
YWN0b3IpOworfQorCitpbnQgQ2hyb21lOjpzY3JvbGxYKGludCBzY3JvbGxYLCBpbnQgem9vbUZh
Y3RvcikgY29uc3QKK3sKKyAgICByZXR1cm4gbV9jbGllbnQtPnNjcm9sbFgoc2Nyb2xsWCwgem9v
bUZhY3Rvcik7Cit9CisKK2ludCBDaHJvbWU6OnNjcm9sbFkoaW50IHNjcm9sbFksIGludCB6b29t
RmFjdG9yKSBjb25zdAoreworICAgIHJldHVybiBtX2NsaWVudC0+c2Nyb2xsWShzY3JvbGxZLCB6
b29tRmFjdG9yKTsKK30KKwogZmxvYXQgQ2hyb21lOjpzY2FsZUZhY3RvcigpCiB7CiAgICAgcmV0
dXJuIG1fY2xpZW50LT5zY2FsZUZhY3RvcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXggOTk4NGE3
Y2I5ODFlYjE0NmRmMGM4ZjY1MGFiNTdhYzIzYjBkYTUwMy4uN2Y4MDc1NTBjYjhlMjliZDFiNDJl
MTkyMWI2NDRjZjY5OWU5NGJhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC05Myw2ICs5MywxMSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIAogICAgICAgICBmbG9hdCBzY2FsZUZhY3Rv
cigpOwogCisgICAgICAgIGludCBpbm5lckhlaWdodChpbnQsIGludCkgY29uc3Q7CisgICAgICAg
IGludCBpbm5lcldpZHRoKGludCwgaW50KSBjb25zdDsKKyAgICAgICAgaW50IHNjcm9sbFgoaW50
LCBpbnQpIGNvbnN0OworICAgICAgICBpbnQgc2Nyb2xsWShpbnQsIGludCkgY29uc3Q7CisKICAg
ICAgICAgdm9pZCBmb2N1cygpIGNvbnN0OwogICAgICAgICB2b2lkIHVuZm9jdXMoKSBjb25zdDsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggZmNjZTY5M2Q2Yjg4ZjhhZjFhNDQ0
MTc1NDEzZmZhOTUzMzJjYjNlOC4uMTZhNjAyMTQ3NmZlNTM0NjZhMDcxMzhkMjY5OWFhM2ViMmZl
YTYxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC05Miw2ICs5MiwxMSBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBmb2N1c2VkTm9kZUNoYW5n
ZWQoTm9kZSopID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIGZvY3VzZWRGcmFtZUNoYW5nZWQo
RnJhbWUqKSA9IDA7CiAKKyAgICAgICAgdmlydHVhbCBpbnQgaW5uZXJIZWlnaHQoaW50IGhlaWdo
dCwgaW50IHpvb21GYWN0b3IpIHsgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oaGVpZ2h0IC8gem9v
bUZhY3Rvcik7IH07CisgICAgICAgIHZpcnR1YWwgaW50IGlubmVyV2lkdGgoaW50IHdpZHRoLCBp
bnQgem9vbUZhY3RvcikgICB7IHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHdpZHRoIC8gem9vbUZh
Y3Rvcik7IH07CisgICAgICAgIHZpcnR1YWwgaW50IHNjcm9sbFgoaW50IHNjcm9sbFgsIGludCB6
b29tRmFjdG9yKSAgIHsgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oc2Nyb2xsWCAvIHpvb21GYWN0
b3IpOyB9OworICAgICAgICB2aXJ0dWFsIGludCBzY3JvbGxZKGludCBzY3JvbGxZLCBpbnQgem9v
bUZhY3RvcikgICB7IHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHNjcm9sbFkgLyB6b29tRmFjdG9y
KTsgfTsKKwogICAgICAgICAvLyBUaGUgRnJhbWUgcG9pbnRlciBwcm92aWRlcyB0aGUgQ2hyb21l
Q2xpZW50IHdpdGggY29udGV4dCBhYm91dCB3aGljaAogICAgICAgICAvLyBGcmFtZSB3YW50cyB0
byBjcmVhdGUgdGhlIG5ldyBQYWdlLiAgQWxzbywgdGhlIG5ld2x5IGNyZWF0ZWQgd2luZG93CiAg
ICAgICAgIC8vIHNob3VsZCBub3QgYmUgc2hvd24gdG8gdGhlIHVzZXIgdW50aWwgdGhlIENocm9t
ZUNsaWVudCBvZiB0aGUgbmV3bHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9N
V2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAppbmRleCBiNGM1
MzkwNTg0MjkyOWMyN2E4ZTVlNDlmMzg4ZTVlNGFhNmU1NDY3Li44NWE2YWNmYWFlZWQ1YzU3ZWVh
MzczMzI3YWNiODZiZDhhZTNkZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwCkBAIC0x
MDkxLDggKzEwOTEsMTIgQEAgaW50IERPTVdpbmRvdzo6aW5uZXJIZWlnaHQoKSBjb25zdAogICAg
IEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKTsKICAgICBpZiAoIXZpZXcpCiAgICAg
ICAgIHJldHVybiAwOwotICAgIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHZpZXctPmhl
aWdodCgpIC8gbV9mcmFtZS0+cGFnZVpvb21GYWN0b3IoKSk7CisKKyAgICBQYWdlKiBwYWdlID0g
bV9mcmFtZS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAg
ICByZXR1cm4gcGFnZS0+Y2hyb21lKCktPmlubmVySGVpZ2h0KHZpZXctPmhlaWdodCgpLCBtX2Zy
YW1lLT5wYWdlWm9vbUZhY3RvcigpKTsKIH0KIAogaW50IERPTVdpbmRvdzo6aW5uZXJXaWR0aCgp
IGNvbnN0CkBAIC0xMTA0LDcgKzExMDgsMTEgQEAgaW50IERPTVdpbmRvdzo6aW5uZXJXaWR0aCgp
IGNvbnN0CiAgICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1cm4gMDsKIAotICAgIHJldHVybiBz
dGF0aWNfY2FzdDxpbnQ+KHZpZXctPndpZHRoKCkgLyBtX2ZyYW1lLT5wYWdlWm9vbUZhY3Rvcigp
KTsKKyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAg
ICAgICAgcmV0dXJuIDA7CisKKyAgICByZXR1cm4gcGFnZS0+Y2hyb21lKCktPmlubmVyV2lkdGgo
dmlldy0+d2lkdGgoKSwgbV9mcmFtZS0+cGFnZVpvb21GYWN0b3IoKSk7CiB9CiAKIGludCBET01X
aW5kb3c6OnNjcmVlblgoKSBjb25zdApAQCAtMTE0MCw5ICsxMTQ4LDEzIEBAIGludCBET01XaW5k
b3c6OnNjcm9sbFgoKSBjb25zdAogICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuIDA7CiAK
KyAgICBQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAg
ICAgcmV0dXJuIDA7CisKICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAotICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHZp
ZXctPnNjcm9sbFgoKSAvIG1fZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkpOworICAgIHJldHVybiBw
YWdlLT5jaHJvbWUoKS0+c2Nyb2xsWCh2aWV3LT5zY3JvbGxYKCksIG1fZnJhbWUtPnBhZ2Vab29t
RmFjdG9yKCkpOwogfQogCiBpbnQgRE9NV2luZG93OjpzY3JvbGxZKCkgY29uc3QKQEAgLTExNTQs
OSArMTE2NiwxMyBAQCBpbnQgRE9NV2luZG93OjpzY3JvbGxZKCkgY29uc3QKICAgICBpZiAoIXZp
ZXcpCiAgICAgICAgIHJldHVybiAwOwogCisgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2Uo
KTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiAwOworCiAgICAgbV9mcmFtZS0+ZG9j
dW1lbnQoKS0+dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKLSAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pih2aWV3LT5zY3JvbGxZKCkgLyBtX2ZyYW1lLT5wYWdlWm9v
bUZhY3RvcigpKTsKKyAgICByZXR1cm4gcGFnZS0+Y2hyb21lKCktPnNjcm9sbFkodmlldy0+c2Ny
b2xsWSgpLCBtX2ZyYW1lLT5wYWdlWm9vbUZhY3RvcigpKTsKIH0KIAogYm9vbCBET01XaW5kb3c6
OmNsb3NlZCgpIGNvbnN0CkBAIC0xMTc3LDcgKzExOTMsNyBAQCBTdHJpbmcgRE9NV2luZG93Ojpu
YW1lKCkgY29uc3QKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
IAotICAgIHJldHVybiBtX2ZyYW1lLT50cmVlKCktPm5hbWUoKTsKKyAgICByZXR1cm4gZnJhbWUo
KS0+bG9hZGVyKCktPndpbmRvd05hbWUobV9mcmFtZS0+dHJlZSgpLT5uYW1lKCkpOwogfQogCiB2
b2lkIERPTVdpbmRvdzo6c2V0TmFtZShjb25zdCBTdHJpbmcmIHN0cmluZykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0hp
c3RvcnkuY3BwCmluZGV4IDFkMWU3N2E0NjZmOTM3ZGJiYjg5M2Y3MTg2OWY1ODhhNjIxZWNlMWUu
LmJjYjFiNGVhZDVmZjM4ZmZlYjg2MzQwMDQ1YTAxOGI4MTg2NjE1NmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvSGlzdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9I
aXN0b3J5LmNwcApAQCAtNTgsNyArNTgsNyBAQCB1bnNpZ25lZCBIaXN0b3J5OjpsZW5ndGgoKSBj
b25zdAogICAgICAgICByZXR1cm4gMDsKICAgICBpZiAoIW1fZnJhbWUtPnBhZ2UoKSkKICAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIG1fZnJhbWUtPnBhZ2UoKS0+YmFja0ZvcndhcmQoKS0+
Y291bnQoKTsKKyAgICByZXR1cm4gbV9mcmFtZS0+bG9hZGVyKCktPmhpc3RvcnlMZW5ndGgobV9m
cmFtZS0+cGFnZSgpLT5iYWNrRm9yd2FyZCgpLT5jb3VudCgpKTsKIH0KIAogdm9pZCBIaXN0b3J5
OjpiYWNrKCkK
</data>
<flag name="review"
          id="77876"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>