<?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>51723</bug_id>
          
          <creation_ts>2010-12-29 14:03:01 -0800</creation_ts>
          <short_desc>Avoid manual ref/deref in AsyncScriptRunner by using PendingScript</short_desc>
          <delta_ts>2011-01-04 22:42:31 -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>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>1</everconfirmed>
          <reporter name="Tony Gentilcore">tonyg</reporter>
          <assigned_to name="Tony Gentilcore">tonyg</assigned_to>
          <cc>abarth</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>327689</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-29 14:03:01 -0800</bug_when>
    <thetext>Avoid manual ref/deref in AsyncScriptRunner by using PendingScript</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327691</commentid>
    <comment_count>1</comment_count>
      <attachid>77642</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2010-12-29 14:06:57 -0800</bug_when>
    <thetext>Created attachment 77642
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327789</commentid>
    <comment_count>2</comment_count>
      <attachid>77642</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-12-29 18:32:33 -0800</bug_when>
    <thetext>Comment on attachment 77642
Patch

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

I’m going to say review+ but I do wonder why the PendingScript changes here were needed at all.

&gt; WebCore/ChangeLog:23
&gt; +        * dom/PendingScript.cpp:
&gt; +        (WebCore::PendingScript::PendingScript):
&gt; +        * dom/PendingScript.h:

No explanation of why you changed this class to no longer inline its constructors. It doesn’t seem required by the rest of the patch. And you didn’t touch the assignment operator. I’m a bit puzzled. Why?

&gt; WebCore/dom/AsyncScriptRunner.cpp:48
&gt;      for (size_t i = 0; i &lt; m_scriptsToExecuteSoon.size(); ++i) {
&gt; -        m_scriptsToExecuteSoon[i].first-&gt;element()-&gt;deref(); // Balances ref() in executeScriptSoon().
&gt;          m_document-&gt;decrementLoadEventDelayCount();
&gt;      }

No braces needed now that this is a 1-line for loop body.

&gt; WebCore/dom/AsyncScriptRunner.cpp:61
&gt; +    PendingScript pendingScript;
&gt; +    pendingScript.adoptElement(element);

Should we make a suitable constructor. It seems it would be better to construct the PendingScript ready to go rather than empty-constructing it and then setting the two pieces separately.

Also, the function name adoptElement is not good! This function doesn’t “adopt” an element. In WebKit we call a function “adopt” when it takes ownership of something in a unusual way, such as when a String takes over storage formerly owned by a Vector or a smart pointer takes a reference in the function adoptRef.

&gt; WebCore/dom/PendingScript.h:44
&gt;  class PendingScript : public CachedResourceClient {

The dual nature of the PendingScript class is not great. We treat these as data objects that we can copy around, but they are also CachedResourceClient objects that can perform loading. It seems impossible to correctly copy one while its loading.

&gt; WebCore/dom/PendingScript.h:47
&gt; +    PendingScript(const PendingScript&amp; other);

No need for the argument name “other” here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327944</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-30 09:24:19 -0800</bug_when>
    <thetext>I would suggest running WebCore/benchmarks/parser/ before landing just to make sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329080</commentid>
    <comment_count>4</comment_count>
      <attachid>77908</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-01-04 10:54:58 -0800</bug_when>
    <thetext>Created attachment 77908
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329082</commentid>
    <comment_count>5</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-01-04 10:55:41 -0800</bug_when>
    <thetext>&gt; No explanation of why you changed this class to no longer inline its constructors. It doesn’t seem required by the rest of the patch. And you didn’t touch the assignment operator. I’m a bit puzzled. Why?
Reverted.

&gt; No braces needed now that this is a 1-line for loop body.
Done.

&gt; Should we make a suitable constructor. It seems it would be better to construct the PendingScript ready to go rather than empty-constructing it and then setting the two pieces separately.
Agreed. Done.

&gt; Also, the function name adoptElement is not good! This function doesn’t “adopt” an element. In WebKit we call a function “adopt” when it takes ownership of something in a unusual way, such as when a String takes over storage formerly owned by a Vector or a smart pointer takes a reference in the function adoptRef.
Renamed to setElement().

&gt; The dual nature of the PendingScript class is not great. We treat these as data objects that we can copy around, but they are also CachedResourceClient objects that can perform loading. It seems impossible to correctly copy one while its loading.
It is quite possible I am missing something, so please explain if I am. But the CachedResourceClient here is never actually used. It only exist to keep a reference so that the CachedResource&apos;s buffer isn&apos;t purged. This allows the owner of a PendingScript to not have to worry about the data being purged out from under it.

&gt; No need for the argument name “other” here.
Moot now that it is inlined again.

&gt; I would suggest running WebCore/benchmarks/parser/ before landing just to make sure.
I take it this is moot now that the inlining in PendingScript isn&apos;t changed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329109</commentid>
    <comment_count>6</comment_count>
      <attachid>77908</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-04 11:45:29 -0800</bug_when>
    <thetext>Comment on attachment 77908
Patch

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

&gt; WebCore/dom/AsyncScriptRunner.cpp:87
&gt; +        CachedScript* cachedScript = scripts[i].cachedScript();
&gt; +        RefPtr&lt;Element&gt; element = scripts[i].releaseElementAndClear();
&gt; +        toScriptElement(element.get())-&gt;execute(cachedScript);

releaseElementAndClear and ScriptElement::execute BOTH calls m_cachedScript-&gt;removeClient().  Are you sure we want to do this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329147</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-01-04 12:49:12 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 77908 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=77908&amp;action=review
&gt; 
&gt; &gt; WebCore/dom/AsyncScriptRunner.cpp:87
&gt; &gt; +        CachedScript* cachedScript = scripts[i].cachedScript();
&gt; &gt; +        RefPtr&lt;Element&gt; element = scripts[i].releaseElementAndClear();
&gt; &gt; +        toScriptElement(element.get())-&gt;execute(cachedScript);
&gt; 
&gt; releaseElementAndClear and ScriptElement::execute BOTH calls m_cachedScript-&gt;removeClient().  Are you sure we want to do this?

Yes, they are different clients. releaseElementAndClear removes the PendingScript client and execute removes the ScriptElement client.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329152</commentid>
    <comment_count>8</comment_count>
      <attachid>77908</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-01-04 12:59:44 -0800</bug_when>
    <thetext>Comment on attachment 77908
Patch

(In reply to comment #7)
&gt; &gt; releaseElementAndClear and ScriptElement::execute BOTH calls m_cachedScript-&gt;removeClient().  Are you sure we want to do this?
&gt; 
&gt; Yes, they are different clients. releaseElementAndClear removes the PendingScript client and execute removes the ScriptElement client.

OK, now I see it. r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329166</commentid>
    <comment_count>9</comment_count>
      <attachid>77908</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-04 13:21:02 -0800</bug_when>
    <thetext>Comment on attachment 77908
Patch

Rejecting attachment 77908 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=eseidel-sf-cq&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=both&apos;]&quot; exit_code: 2
Last 500 characters of output:
hbc/WebCorePrefix.h -c /Projects/CommitQueue/WebCore/html/HTMLVideoElement.cpp -o /Projects/CommitQueue/WebKitBuild/WebCore.build/Debug/WebCore.build/Objects-normal/x86_64/HTMLVideoElement.o

** BUILD FAILED **


The following build commands failed:
WebCore:
	CompileC /Projects/CommitQueue/WebKitBuild/WebCore.build/Debug/WebCore.build/Objects-normal/x86_64/HTMLScriptRunner.o /Projects/CommitQueue/WebCore/html/parser/HTMLScriptRunner.cpp normal x86_64 c++ com.apple.compilers.gcc.4_2
(1 failure)


Full output: http://queues.webkit.org/results/7345060</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329172</commentid>
    <comment_count>10</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-01-04 13:28:17 -0800</bug_when>
    <thetext>Attachment 77908 did not build on win:
Build output: http://queues.webkit.org/results/7266406</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329176</commentid>
    <comment_count>11</comment_count>
      <attachid>77924</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-01-04 13:32:43 -0800</bug_when>
    <thetext>Created attachment 77924
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329179</commentid>
    <comment_count>12</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-01-04 13:36:52 -0800</bug_when>
    <thetext>&gt; ** BUILD FAILED **

Was a merge error with http://trac.webkit.org/changeset/74995. Just needed to rename a new call to setElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329413</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-04 21:29:10 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 77924:

http/tests/xmlhttprequest/basic-auth.html bug 51613 (author: ap@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329414</commentid>
    <comment_count>14</comment_count>
      <attachid>77924</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-04 21:30:17 -0800</bug_when>
    <thetext>Comment on attachment 77924
Patch for landing

Clearing flags on attachment: 77924

Committed r75045: &lt;http://trac.webkit.org/changeset/75045&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329415</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-04 21:30:24 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329431</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-04 22:42:31 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/75045 might have broken Leopard Intel Debug (Tests)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77642</attachid>
            <date>2010-12-29 14:06:57 -0800</date>
            <delta_ts>2011-01-04 10:54:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51723-20101229140656.patch</filename>
            <type>text/plain</type>
            <size>6179</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZmVmM2I0NWQ3OTVkYzE0NjA2MTkzZjk3MGEwZGRkMWY3MTZlZTIzYS4uYjE4MzQ3ZTljZjA2ODQ1
YjZlNWQ3ZDQ0N2I2Y2QzMzkwNGQ2NTdjYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0xMi0yOSAgVG9u
eSBHZW50aWxjb3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEF2b2lkIG1hbnVhbCByZWYvZGVyZWYgaW4gQXN5
bmNTY3JpcHRSdW5uZXIgYnkgdXNpbmcgUGVuZGluZ1NjcmlwdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE3MjMKKworICAgICAgICBTY3JpcHRFbGVt
ZW50IHNob3VsZCBhbHNvIGJlIGFibGUgdG8ga2VlcCBpdHMgRWxlbWVudCtDYWNoZWRTY3JpcHQg
aW4KKyAgICAgICAgYSBQZW5kaW5nU2NyaXB0LCBhbmQgdGhlbiBleGVjdXRlU2NyaXB0U29vbiBj
YW4gYWNjZXB0IGEgUGVuZGluZ1NjcmlwdC4KKyAgICAgICAgT25jZSBIVE1MU2NyaXB0UnVubmVy
LCBTY3JpcHRFbGVtZW50LCBhbmQgQXN5bmNTY3JpcHRSdW5uZXIgYWxsIHVzZQorICAgICAgICBQ
ZW5kaW5nU2NyaXB0cywgdGhlbiBnZW5lcmljIHJlcXVlc3QgYW5kIGV4ZWN1dGUgd2hpY2ggb3Bl
cmF0ZSBvbgorICAgICAgICBQZW5kaW5nU2NyaXB0cyBjYW4gYmUgZmFjdG9yZWQgb3V0IHRvIGF2
b2lkIGNvZGUgZHVwbGljYXRlIHRoYXQgd2UgaGF2ZS4KKworICAgICAgICBObyBuZXcgdGVzdHMg
YmVjYXVzZSBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIGRvbS9Bc3luY1Njcmlw
dFJ1bm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1NjcmlwdFJ1bm5lcjo6fkFzeW5j
U2NyaXB0UnVubmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2NyaXB0UnVubmVyOjpleGVj
dXRlU2NyaXB0U29vbik6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1NjcmlwdFJ1bm5lcjo6dGlt
ZXJGaXJlZCk6CisgICAgICAgICogZG9tL0FzeW5jU2NyaXB0UnVubmVyLmg6CisgICAgICAgICog
ZG9tL1BlbmRpbmdTY3JpcHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGVuZGluZ1NjcmlwdDo6
UGVuZGluZ1NjcmlwdCk6CisgICAgICAgICogZG9tL1BlbmRpbmdTY3JpcHQuaDoKKwogMjAxMC0x
Mi0yOSAgQWxleGFuZGVyIFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFl1cnkgU2VtaWtoYXRza3kuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9B
c3luY1NjcmlwdFJ1bm5lci5jcHAgYi9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAK
aW5kZXggN2Y1ZjFiNmI5ZDY2NzcyMDNlMTk0MjFjYjM1OWRiMjdjMzUyZDY2OS4uZDdjMWUxZGUx
YWVhNDkxNzc4ZjExODg4NWVkNTRmYWUyYTRkNjdkMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
QXN5bmNTY3JpcHRSdW5uZXIuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVy
LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNhY2hlZFNjcmlwdC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIlBlbmRpbmdT
Y3JpcHQuaCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKQEAgLTQzLDIyICs0NCwyMyBAQCBBc3luY1NjcmlwdFJ1bm5lcjo6QXN5bmNTY3JpcHRSdW5u
ZXIoRG9jdW1lbnQqIGRvY3VtZW50KQogQXN5bmNTY3JpcHRSdW5uZXI6On5Bc3luY1NjcmlwdFJ1
bm5lcigpCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBtX3NjcmlwdHNUb0V4ZWN1dGVT
b29uLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIG1fc2NyaXB0c1RvRXhlY3V0ZVNvb25baV0uZmly
c3QtPmVsZW1lbnQoKS0+ZGVyZWYoKTsgLy8gQmFsYW5jZXMgcmVmKCkgaW4gZXhlY3V0ZVNjcmlw
dFNvb24oKS4KICAgICAgICAgbV9kb2N1bWVudC0+ZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3Vu
dCgpOwogICAgIH0KIH0KIAotdm9pZCBBc3luY1NjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdFNv
b24oU2NyaXB0RWxlbWVudCogZGF0YSwgQ2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0
PiBjYWNoZWRTY3JpcHQpCit2b2lkIEFzeW5jU2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0U29v
bihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNo
ZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCkKIHsKLSAgICBBU1NFUlRfQVJHKGRhdGEsIGRhdGEpOwor
ICAgIEFTU0VSVF9BUkcoc2NyaXB0RWxlbWVudCwgc2NyaXB0RWxlbWVudCk7CiAKLSAgICBFbGVt
ZW50KiBlbGVtZW50ID0gZGF0YS0+ZWxlbWVudCgpOworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBz
Y3JpcHRFbGVtZW50LT5lbGVtZW50KCk7CiAgICAgQVNTRVJUKGVsZW1lbnQpOwogICAgIEFTU0VS
VChlbGVtZW50LT5pbkRvY3VtZW50KCkpOwogCiAgICAgbV9kb2N1bWVudC0+aW5jcmVtZW50TG9h
ZEV2ZW50RGVsYXlDb3VudCgpOwotICAgIG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uYXBwZW5kKG1h
a2VfcGFpcihkYXRhLCBjYWNoZWRTY3JpcHQpKTsKLSAgICBlbGVtZW50LT5yZWYoKTsgLy8gQmFs
YW5jZWQgYnkgZGVyZWYoKXMgaW4gdGltZXJGaXJlZCgpIGFuZCBkdG9yLgorICAgIFBlbmRpbmdT
Y3JpcHQgcGVuZGluZ1NjcmlwdDsKKyAgICBwZW5kaW5nU2NyaXB0LmFkb3B0RWxlbWVudChlbGVt
ZW50KTsKKyAgICBwZW5kaW5nU2NyaXB0LnNldENhY2hlZFNjcmlwdChjYWNoZWRTY3JpcHQuZ2V0
KCkpOworICAgIG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uYXBwZW5kKHBlbmRpbmdTY3JpcHQpOwog
ICAgIGlmICghbV90aW1lci5pc0FjdGl2ZSgpKQogICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hv
dCgwKTsKIH0KQEAgLTgwLDEyICs4MiwxMyBAQCB2b2lkIEFzeW5jU2NyaXB0UnVubmVyOjp0aW1l
ckZpcmVkKFRpbWVyPEFzeW5jU2NyaXB0UnVubmVyPiogdGltZXIpCiAKICAgICBSZWZQdHI8RG9j
dW1lbnQ+IHByb3RlY3QobV9kb2N1bWVudCk7CiAgICAgCi0gICAgVmVjdG9yPHBhaXI8U2NyaXB0
RWxlbWVudCosIENhY2hlZFJlc291cmNlSGFuZGxlPENhY2hlZFNjcmlwdD4gPiA+IHNjcmlwdHM7
CisgICAgVmVjdG9yPFBlbmRpbmdTY3JpcHQ+IHNjcmlwdHM7CiAgICAgc2NyaXB0cy5zd2FwKG1f
c2NyaXB0c1RvRXhlY3V0ZVNvb24pOwogICAgIHNpemVfdCBzaXplID0gc2NyaXB0cy5zaXplKCk7
CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgc2NyaXB0
c1tpXS5maXJzdC0+ZXhlY3V0ZShzY3JpcHRzW2ldLnNlY29uZC5nZXQoKSk7Ci0gICAgICAgIHNj
cmlwdHNbaV0uZmlyc3QtPmVsZW1lbnQoKS0+ZGVyZWYoKTsgLy8gQmFsYW5jZXMgcmVmKCkgaW4g
ZXhlY3V0ZVNjcmlwdFNvb24oKS4KKyAgICAgICAgQ2FjaGVkU2NyaXB0KiBjYWNoZWRTY3JpcHQg
PSBzY3JpcHRzW2ldLmNhY2hlZFNjcmlwdCgpOworICAgICAgICBSZWZQdHI8RWxlbWVudD4gZWxl
bWVudCA9IHNjcmlwdHNbaV0ucmVsZWFzZUVsZW1lbnRBbmRDbGVhcigpOworICAgICAgICB0b1Nj
cmlwdEVsZW1lbnQoZWxlbWVudC5nZXQoKSktPmV4ZWN1dGUoY2FjaGVkU2NyaXB0KTsKICAgICAg
ICAgbV9kb2N1bWVudC0+ZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwogICAgIH0KIH0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmggYi9XZWJDb3JlL2Rv
bS9Bc3luY1NjcmlwdFJ1bm5lci5oCmluZGV4IDFhMDUxYTg1YjdiMjQxZGY2ZDc1MjAxYTljYzRm
MDc3MWI4NzhkYTIuLjIzMjZmNjdkYWZiODJhOGYwNmVkMTlmMWQzODU2NTg0NjcyZjczZmEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmgKKysrIGIvV2ViQ29yZS9k
b20vQXN5bmNTY3JpcHRSdW5uZXIuaApAQCAtMzYsNiArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIENhY2hlZFNjcmlwdDsKIGNsYXNzIERvY3VtZW50OworY2xhc3MgUGVuZGlu
Z1NjcmlwdDsKIGNsYXNzIFNjcmlwdEVsZW1lbnQ7CiAgICAgCiBjbGFzcyBBc3luY1NjcmlwdFJ1
bm5lciA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CkBAIC01NCw3ICs1NSw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCB0aW1lckZpcmVkKFRpbWVyPEFzeW5jU2NyaXB0UnVubmVyPiopOwogCiAgICAgRG9j
dW1lbnQqIG1fZG9jdW1lbnQ7Ci0gICAgVmVjdG9yPHN0ZDo6cGFpcjxTY3JpcHRFbGVtZW50Kiwg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiA+ID4gbV9zY3JpcHRzVG9FeGVjdXRl
U29vbjsKKyAgICBWZWN0b3I8UGVuZGluZ1NjcmlwdD4gbV9zY3JpcHRzVG9FeGVjdXRlU29vbjsg
Ly8gaHR0cDovL3d3dy53aGF0d2cub3JnL3NwZWNzL3dlYi1hcHBzL2N1cnJlbnQtd29yay8jc2V0
LW9mLXNjcmlwdHMtdGhhdC13aWxsLWV4ZWN1dGUtYXMtc29vbi1hcy1wb3NzaWJsZQogICAgIFRp
bWVyPEFzeW5jU2NyaXB0UnVubmVyPiBtX3RpbWVyOwogfTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9kb20vUGVuZGluZ1NjcmlwdC5jcHAgYi9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcApp
bmRleCAxMGI4MTM3ZjY5MTUwM2EyYjE4ZjRjYzFmNDYxOGJjOGMxMmYzMGQ3Li42ZjhiMzkyNWRk
OGRlZGE0MmQ2ZDQ5NjAyZDljYzY0YjUyMTdjZDlhIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9Q
ZW5kaW5nU2NyaXB0LmNwcAorKysgYi9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmNwcApAQCAt
MzEsNiArMzEsMTkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitQZW5kaW5nU2NyaXB0OjpQ
ZW5kaW5nU2NyaXB0KCkKKyAgICA6IG1fd2F0Y2hpbmdGb3JMb2FkKGZhbHNlKQoreworfQorCitQ
ZW5kaW5nU2NyaXB0OjpQZW5kaW5nU2NyaXB0KGNvbnN0IFBlbmRpbmdTY3JpcHQmIG90aGVyKQor
ICAgIDogQ2FjaGVkUmVzb3VyY2VDbGllbnQob3RoZXIpCisgICAgLCBtX3dhdGNoaW5nRm9yTG9h
ZChvdGhlci5tX3dhdGNoaW5nRm9yTG9hZCkKKyAgICAsIG1fZWxlbWVudChvdGhlci5tX2VsZW1l
bnQpCit7CisgICAgc2V0Q2FjaGVkU2NyaXB0KG90aGVyLmNhY2hlZFNjcmlwdCgpKTsKK30KKwog
UGVuZGluZ1NjcmlwdDo6flBlbmRpbmdTY3JpcHQoKQogewogICAgIGlmIChtX2NhY2hlZFNjcmlw
dCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaCBiL1dlYkNvcmUvZG9t
L1BlbmRpbmdTY3JpcHQuaAppbmRleCBmNjc5ZDVkOGIyYzgzMGNhMDFjMDVmNzIyMTY5Zjk4M2Ri
MzA5MTUwLi41YzVkOTIwOGQ4ZmU1NDM4ZWVhMWU5ZTlkNTZlMmExNWM4ODYxOWFhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKKysrIGIvV2ViQ29yZS9kb20vUGVuZGlu
Z1NjcmlwdC5oCkBAIC00MywxOSArNDMsOCBAQCBjbGFzcyBFbGVtZW50OwogLy8gbGlmZXRpbWUg
aW4gb3JkZXIgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIGRhdGEgYnVmZmVyIHdpbGwgbm90IGJlIHB1
cmdlZC4KIGNsYXNzIFBlbmRpbmdTY3JpcHQgOiBwdWJsaWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQg
ewogcHVibGljOgotICAgIFBlbmRpbmdTY3JpcHQoKQotICAgICAgICA6IG1fd2F0Y2hpbmdGb3JM
b2FkKGZhbHNlKQotICAgIHsKLSAgICB9Ci0KLSAgICBQZW5kaW5nU2NyaXB0KGNvbnN0IFBlbmRp
bmdTY3JpcHQmIG90aGVyKQotICAgICAgICA6IENhY2hlZFJlc291cmNlQ2xpZW50KG90aGVyKQot
ICAgICAgICAsIG1fd2F0Y2hpbmdGb3JMb2FkKG90aGVyLm1fd2F0Y2hpbmdGb3JMb2FkKQotICAg
ICAgICAsIG1fZWxlbWVudChvdGhlci5tX2VsZW1lbnQpCi0gICAgewotICAgICAgICBzZXRDYWNo
ZWRTY3JpcHQob3RoZXIuY2FjaGVkU2NyaXB0KCkpOwotICAgIH0KLQorICAgIFBlbmRpbmdTY3Jp
cHQoKTsKKyAgICBQZW5kaW5nU2NyaXB0KGNvbnN0IFBlbmRpbmdTY3JpcHQmIG90aGVyKTsKICAg
ICB+UGVuZGluZ1NjcmlwdCgpOwogCiAgICAgUGVuZGluZ1NjcmlwdCYgb3BlcmF0b3I9KGNvbnN0
IFBlbmRpbmdTY3JpcHQmIG90aGVyKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77908</attachid>
            <date>2011-01-04 10:54:58 -0800</date>
            <delta_ts>2011-01-04 13:32:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51723-20110104105456.patch</filename>
            <type>text/plain</type>
            <size>6523</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OTVmMjkxMzMwYmJmMWU0NTE3NDAyZGNkMDdmNGQzMjM1NThhOWJlZC4uYjc0M2UyZmEzNWExYWEw
ZmJjZTgwYjI3ZjFlNWJlYmU4NzU0ZjgxYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0xMi0yOSAgVG9u
eSBHZW50aWxjb3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEF2b2lkIG1hbnVhbCByZWYvZGVyZWYgaW4gQXN5
bmNTY3JpcHRSdW5uZXIgYnkgdXNpbmcgUGVuZGluZ1NjcmlwdAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE3MjMKKworICAgICAgICBTY3JpcHRFbGVt
ZW50IHNob3VsZCBhbHNvIGJlIGFibGUgdG8ga2VlcCBpdHMgRWxlbWVudCtDYWNoZWRTY3JpcHQg
aW4KKyAgICAgICAgYSBQZW5kaW5nU2NyaXB0LCBhbmQgdGhlbiBleGVjdXRlU2NyaXB0U29vbiBj
YW4gYWNjZXB0IGEgUGVuZGluZ1NjcmlwdC4KKyAgICAgICAgT25jZSBIVE1MU2NyaXB0UnVubmVy
LCBTY3JpcHRFbGVtZW50LCBhbmQgQXN5bmNTY3JpcHRSdW5uZXIgYWxsIHVzZQorICAgICAgICBQ
ZW5kaW5nU2NyaXB0cywgdGhlbiBnZW5lcmljIHJlcXVlc3QgYW5kIGV4ZWN1dGUgd2hpY2ggb3Bl
cmF0ZSBvbgorICAgICAgICBQZW5kaW5nU2NyaXB0cyBjYW4gYmUgZmFjdG9yZWQgb3V0IHRvIGF2
b2lkIGNvZGUgZHVwbGljYXRlIHRoYXQgd2UgaGF2ZS4KKworICAgICAgICBObyBuZXcgdGVzdHMg
YmVjYXVzZSBubyBuZXcgZnVuY3Rpb25hbGl0eS4KKworICAgICAgICAqIGRvbS9Bc3luY1Njcmlw
dFJ1bm5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1NjcmlwdFJ1bm5lcjo6fkFzeW5j
U2NyaXB0UnVubmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2NyaXB0UnVubmVyOjpleGVj
dXRlU2NyaXB0U29vbik6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1NjcmlwdFJ1bm5lcjo6dGlt
ZXJGaXJlZCk6CisgICAgICAgICogZG9tL0FzeW5jU2NyaXB0UnVubmVyLmg6CisgICAgICAgICog
ZG9tL1BlbmRpbmdTY3JpcHQuaDogQWRkIGN0b3Igd2hpY2ggc2V0cyBlbGVtZW50IGFuZCBjYWNo
ZWRTY3JpcHQuIFJlbmFtZSBhZG9wdEVsZW1lbnQtPnNldEVsZW1lbnQuCisgICAgICAgICogZG9t
L0hUTUxTY3JpcHRSdW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNjcmlwdFJ1bm5l
cjo6cmVxdWVzdFBlbmRpbmdTY3JpcHQpOgorCiAyMDExLTAxLTA0ICBUb255IEdlbnRpbGNvcmUg
IDx0b255Z0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXguCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAgYi9XZWJDb3JlL2Rv
bS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAKaW5kZXggN2Y1ZjFiNmI5ZDY2NzcyMDNlMTk0MjFjYjM1
OWRiMjdjMzUyZDY2OS4uMjhiMWIzMWJmYTFlNDBmODJjNjQyMTdjNjBiMWRkZjBkMTg4ZWJhNyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwCisrKyBiL1dlYkNv
cmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IkNhY2hlZFNjcmlwdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVu
dC5oIgorI2luY2x1ZGUgIlBlbmRpbmdTY3JpcHQuaCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50
LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQyLDIzICs0MywyMCBAQCBBc3luY1Njcmlw
dFJ1bm5lcjo6QXN5bmNTY3JpcHRSdW5uZXIoRG9jdW1lbnQqIGRvY3VtZW50KQogCiBBc3luY1Nj
cmlwdFJ1bm5lcjo6fkFzeW5jU2NyaXB0UnVubmVyKCkKIHsKLSAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgbV9z
Y3JpcHRzVG9FeGVjdXRlU29vbltpXS5maXJzdC0+ZWxlbWVudCgpLT5kZXJlZigpOyAvLyBCYWxh
bmNlcyByZWYoKSBpbiBleGVjdXRlU2NyaXB0U29vbigpLgorICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgbV9zY3JpcHRzVG9FeGVjdXRlU29vbi5zaXplKCk7ICsraSkKICAgICAgICAgbV9kb2N1
bWVudC0+ZGVjcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwotICAgIH0KIH0KIAotdm9pZCBB
c3luY1NjcmlwdFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudCogZGF0YSwg
Q2FjaGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQpCit2b2lkIEFz
eW5jU2NyaXB0UnVubmVyOjpleGVjdXRlU2NyaXB0U29vbihTY3JpcHRFbGVtZW50KiBzY3JpcHRF
bGVtZW50LCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCkK
IHsKLSAgICBBU1NFUlRfQVJHKGRhdGEsIGRhdGEpOworICAgIEFTU0VSVF9BUkcoc2NyaXB0RWxl
bWVudCwgc2NyaXB0RWxlbWVudCk7CiAKLSAgICBFbGVtZW50KiBlbGVtZW50ID0gZGF0YS0+ZWxl
bWVudCgpOworICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBzY3JpcHRFbGVtZW50LT5lbGVtZW50KCk7
CiAgICAgQVNTRVJUKGVsZW1lbnQpOwogICAgIEFTU0VSVChlbGVtZW50LT5pbkRvY3VtZW50KCkp
OwogCiAgICAgbV9kb2N1bWVudC0+aW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwotICAg
IG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uYXBwZW5kKG1ha2VfcGFpcihkYXRhLCBjYWNoZWRTY3Jp
cHQpKTsKLSAgICBlbGVtZW50LT5yZWYoKTsgLy8gQmFsYW5jZWQgYnkgZGVyZWYoKXMgaW4gdGlt
ZXJGaXJlZCgpIGFuZCBkdG9yLgorICAgIG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uYXBwZW5kKFBl
bmRpbmdTY3JpcHQoZWxlbWVudCwgY2FjaGVkU2NyaXB0LmdldCgpKSk7CiAgICAgaWYgKCFtX3Rp
bWVyLmlzQWN0aXZlKCkpCiAgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwogfQpAQCAt
ODAsMTIgKzc4LDEzIEBAIHZvaWQgQXN5bmNTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoVGltZXI8
QXN5bmNTY3JpcHRSdW5uZXI+KiB0aW1lcikKIAogICAgIFJlZlB0cjxEb2N1bWVudD4gcHJvdGVj
dChtX2RvY3VtZW50KTsKICAgICAKLSAgICBWZWN0b3I8cGFpcjxTY3JpcHRFbGVtZW50KiwgQ2Fj
aGVkUmVzb3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiA+ID4gc2NyaXB0czsKKyAgICBWZWN0b3I8
UGVuZGluZ1NjcmlwdD4gc2NyaXB0czsKICAgICBzY3JpcHRzLnN3YXAobV9zY3JpcHRzVG9FeGVj
dXRlU29vbik7CiAgICAgc2l6ZV90IHNpemUgPSBzY3JpcHRzLnNpemUoKTsKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICBzY3JpcHRzW2ldLmZpcnN0LT5l
eGVjdXRlKHNjcmlwdHNbaV0uc2Vjb25kLmdldCgpKTsKLSAgICAgICAgc2NyaXB0c1tpXS5maXJz
dC0+ZWxlbWVudCgpLT5kZXJlZigpOyAvLyBCYWxhbmNlcyByZWYoKSBpbiBleGVjdXRlU2NyaXB0
U29vbigpLgorICAgICAgICBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCA9IHNjcmlwdHNbaV0u
Y2FjaGVkU2NyaXB0KCk7CisgICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gc2NyaXB0
c1tpXS5yZWxlYXNlRWxlbWVudEFuZENsZWFyKCk7CisgICAgICAgIHRvU2NyaXB0RWxlbWVudChl
bGVtZW50LmdldCgpKS0+ZXhlY3V0ZShjYWNoZWRTY3JpcHQpOwogICAgICAgICBtX2RvY3VtZW50
LT5kZWNyZW1lbnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuaCBiL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0
UnVubmVyLmgKaW5kZXggMWEwNTFhODViN2IyNDFkZjZkNzUyMDFhOWNjNGYwNzcxYjg3OGRhMi4u
MjMyNmY2N2RhZmI4MmE4ZjA2ZWQxOWYxZDM4NTY1ODQ2NzJmNzNmYSAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuaAorKysgYi9XZWJDb3JlL2RvbS9Bc3luY1Njcmlw
dFJ1bm5lci5oCkBAIC0zNiw2ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
Q2FjaGVkU2NyaXB0OwogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQZW5kaW5nU2NyaXB0OwogY2xh
c3MgU2NyaXB0RWxlbWVudDsKICAgICAKIGNsYXNzIEFzeW5jU2NyaXB0UnVubmVyIDogcHVibGlj
IE5vbmNvcHlhYmxlIHsKQEAgLTU0LDcgKzU1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHRpbWVy
RmlyZWQoVGltZXI8QXN5bmNTY3JpcHRSdW5uZXI+Kik7CiAKICAgICBEb2N1bWVudCogbV9kb2N1
bWVudDsKLSAgICBWZWN0b3I8c3RkOjpwYWlyPFNjcmlwdEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJj
ZUhhbmRsZTxDYWNoZWRTY3JpcHQ+ID4gPiBtX3NjcmlwdHNUb0V4ZWN1dGVTb29uOworICAgIFZl
Y3RvcjxQZW5kaW5nU2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVTb29uOyAvLyBodHRwOi8vd3d3
LndoYXR3Zy5vcmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNzZXQtb2Ytc2NyaXB0cy10
aGF0LXdpbGwtZXhlY3V0ZS1hcy1zb29uLWFzLXBvc3NpYmxlCiAgICAgVGltZXI8QXN5bmNTY3Jp
cHRSdW5uZXI+IG1fdGltZXI7CiB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9QZW5kaW5n
U2NyaXB0LmggYi9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKaW5kZXggZjY3OWQ1ZDhiMmM4
MzBjYTAxYzA1ZjcyMjE2OWY5ODNkYjMwOTE1MC4uNTRjZDQyMzc0OWU0OTQ3OTAxMWJiYzk0Y2Yx
ODI1Nzg0NzVlY2VkYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5oCisr
KyBiL1dlYkNvcmUvZG9tL1BlbmRpbmdTY3JpcHQuaApAQCAtNDgsNiArNDgsMTMgQEAgcHVibGlj
OgogICAgIHsKICAgICB9CiAKKyAgICBQZW5kaW5nU2NyaXB0KEVsZW1lbnQqIGVsZW1lbnQsIENh
Y2hlZFNjcmlwdCogY2FjaGVkU2NyaXB0KQorICAgICAgICA6IG1fd2F0Y2hpbmdGb3JMb2FkKGZh
bHNlKQorICAgICAgICAsIG1fZWxlbWVudChlbGVtZW50KQorICAgIHsKKyAgICAgICAgc2V0Q2Fj
aGVkU2NyaXB0KGNhY2hlZFNjcmlwdCk7CisgICAgfQorCiAgICAgUGVuZGluZ1NjcmlwdChjb25z
dCBQZW5kaW5nU2NyaXB0JiBvdGhlcikKICAgICAgICAgOiBDYWNoZWRSZXNvdXJjZUNsaWVudChv
dGhlcikKICAgICAgICAgLCBtX3dhdGNoaW5nRm9yTG9hZChvdGhlci5tX3dhdGNoaW5nRm9yTG9h
ZCkKQEAgLTc0LDcgKzgxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0V2F0Y2hpbmdGb3JMb2Fk
KGJvb2wgYikgeyBtX3dhdGNoaW5nRm9yTG9hZCA9IGI7IH0KIAogICAgIEVsZW1lbnQqIGVsZW1l
bnQoKSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0KLSAgICB2b2lkIGFkb3B0RWxl
bWVudChFbGVtZW50KiBlbGVtZW50KSB7IG1fZWxlbWVudCA9IGVsZW1lbnQ7IH0KKyAgICB2b2lk
IHNldEVsZW1lbnQoRWxlbWVudCogZWxlbWVudCkgeyBtX2VsZW1lbnQgPSBlbGVtZW50OyB9CiAg
ICAgUGFzc1JlZlB0cjxFbGVtZW50PiByZWxlYXNlRWxlbWVudEFuZENsZWFyKCk7CiAKICAgICBD
YWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcCBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFNjcmlwdFJ1bm5lci5jcHAKaW5kZXggMjY3MmYzOWMwNDRjZWZhMTBmMDllNTA2YTBmODczZDUy
YjdjZjI5MS4uMGU3MDYwZTA4YmE0MDcxMmMzZWJmMmIxZGJkNThjNjk5ZmM2NjZiNyAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcAorKysgYi9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwCkBAIC0yNjksNyArMjY5LDcgQEAg
Ym9vbCBIVE1MU2NyaXB0UnVubmVyOjpyZXF1ZXN0UGVuZGluZ1NjcmlwdChQZW5kaW5nU2NyaXB0
JiBwZW5kaW5nU2NyaXB0LCBFbGVtZW4KICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byByZXNvbHZl
IHRoZSB1cmwgcmVsYXRpdmUgdG8gdGhlIGVsZW1lbnQuCiAgICAgaWYgKCFzY3JpcHQtPmRpc3Bh
dGNoQmVmb3JlTG9hZEV2ZW50KHNyY1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IHBlbmRpbmdTY3JpcHQuYWRvcHRFbGVtZW50KHNjcmlwdCk7CisgICAgcGVuZGluZ1NjcmlwdC5z
ZXRFbGVtZW50KHNjcmlwdCk7CiAgICAgLy8gVGhpcyBzaG91bGQgY29ycmVjdGx5IHJldHVybiAw
IGZvciBlbXB0eSBvciBpbnZhbGlkIHNyY1ZhbHVlcy4KICAgICBDYWNoZWRTY3JpcHQqIGNhY2hl
ZFNjcmlwdCA9IG1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RTY3Jp
cHQoc3JjVmFsdWUsIHRvU2NyaXB0RWxlbWVudChzY3JpcHQpLT5zY3JpcHRDaGFyc2V0KCkpOwog
ICAgIGlmICghY2FjaGVkU2NyaXB0KSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77924</attachid>
            <date>2011-01-04 13:32:43 -0800</date>
            <delta_ts>2011-01-04 21:30:17 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-51723-20110104133242.patch</filename>
            <type>text/plain</type>
            <size>7184</size>
            <attacher name="Tony Gentilcore">tonyg</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OWY4ZDk3MjU3YzY2M2UwOGQxOWE1MjEzZDY1NTkzNGE1YWEzZWE1YS4uNWExMjNlMjlkMDFjMmJi
NDg1ZjJlZTMwZmM0MmI5OTE0ZWY2MWM5YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0xMi0yOSAgVG9u
eSBHZW50aWxjb3JlICA8dG9ueWdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBBdm9pZCBtYW51YWwgcmVmL2RlcmVmIGluIEFzeW5j
U2NyaXB0UnVubmVyIGJ5IHVzaW5nIFBlbmRpbmdTY3JpcHQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxNzIzCisKKyAgICAgICAgU2NyaXB0RWxlbWVu
dCBzaG91bGQgYWxzbyBiZSBhYmxlIHRvIGtlZXAgaXRzIEVsZW1lbnQrQ2FjaGVkU2NyaXB0IGlu
CisgICAgICAgIGEgUGVuZGluZ1NjcmlwdCwgYW5kIHRoZW4gZXhlY3V0ZVNjcmlwdFNvb24gY2Fu
IGFjY2VwdCBhIFBlbmRpbmdTY3JpcHQuCisgICAgICAgIE9uY2UgSFRNTFNjcmlwdFJ1bm5lciwg
U2NyaXB0RWxlbWVudCwgYW5kIEFzeW5jU2NyaXB0UnVubmVyIGFsbCB1c2UKKyAgICAgICAgUGVu
ZGluZ1NjcmlwdHMsIHRoZW4gZ2VuZXJpYyByZXF1ZXN0IGFuZCBleGVjdXRlIHdoaWNoIG9wZXJh
dGUgb24KKyAgICAgICAgUGVuZGluZ1NjcmlwdHMgY2FuIGJlIGZhY3RvcmVkIG91dCB0byBhdm9p
ZCBjb2RlIGR1cGxpY2F0ZSB0aGF0IHdlIGhhdmUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJl
Y2F1c2Ugbm8gbmV3IGZ1bmN0aW9uYWxpdHkuCisKKyAgICAgICAgKiBkb20vQXN5bmNTY3JpcHRS
dW5uZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JpcHRSdW5uZXI6On5Bc3luY1Nj
cmlwdFJ1bm5lcik6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1NjcmlwdFJ1bm5lcjo6ZXhlY3V0
ZVNjcmlwdFNvb24pOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNTY3JpcHRSdW5uZXI6OnRpbWVy
RmlyZWQpOgorICAgICAgICAqIGRvbS9Bc3luY1NjcmlwdFJ1bm5lci5oOgorICAgICAgICAqIGRv
bS9QZW5kaW5nU2NyaXB0Lmg6IEFkZCBjdG9yIHdoaWNoIHNldHMgZWxlbWVudCBhbmQgY2FjaGVk
U2NyaXB0LiBSZW5hbWUgYWRvcHRFbGVtZW50LT5zZXRFbGVtZW50LgorICAgICAgICAqIGRvbS9I
VE1MU2NyaXB0UnVubmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTY3JpcHRSdW5uZXI6
OnJlcXVlc3RQZW5kaW5nU2NyaXB0KToKKwogMjAxMS0wMS0wNCAgQ2FybG9zIEdhcmNpYSBDYW1w
b3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+IGFuZCBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25A
aWdhbGlhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBYYW4gTG9wZXouCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5jcHAgYi9XZWJDb3JlL2RvbS9Bc3luY1Nj
cmlwdFJ1bm5lci5jcHAKaW5kZXggN2Y1ZjFiNmI5ZDY2NzcyMDNlMTk0MjFjYjM1OWRiMjdjMzUy
ZDY2OS4uMjhiMWIzMWJmYTFlNDBmODJjNjQyMTdjNjBiMWRkZjBkMTg4ZWJhNyAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9kb20vQXN5bmNTY3JpcHRSdW5uZXIuY3BwCisrKyBiL1dlYkNvcmUvZG9tL0Fz
eW5jU2NyaXB0UnVubmVyLmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNhY2hlZFNj
cmlwdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2lu
Y2x1ZGUgIlBlbmRpbmdTY3JpcHQuaCIKICNpbmNsdWRlICJTY3JpcHRFbGVtZW50LmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQyLDIzICs0MywyMCBAQCBBc3luY1NjcmlwdFJ1bm5lcjo6
QXN5bmNTY3JpcHRSdW5uZXIoRG9jdW1lbnQqIGRvY3VtZW50KQogCiBBc3luY1NjcmlwdFJ1bm5l
cjo6fkFzeW5jU2NyaXB0UnVubmVyKCkKIHsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1f
c2NyaXB0c1RvRXhlY3V0ZVNvb24uc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgbV9zY3JpcHRzVG9F
eGVjdXRlU29vbltpXS5maXJzdC0+ZWxlbWVudCgpLT5kZXJlZigpOyAvLyBCYWxhbmNlcyByZWYo
KSBpbiBleGVjdXRlU2NyaXB0U29vbigpLgorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9z
Y3JpcHRzVG9FeGVjdXRlU29vbi5zaXplKCk7ICsraSkKICAgICAgICAgbV9kb2N1bWVudC0+ZGVj
cmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwotICAgIH0KIH0KIAotdm9pZCBBc3luY1Njcmlw
dFJ1bm5lcjo6ZXhlY3V0ZVNjcmlwdFNvb24oU2NyaXB0RWxlbWVudCogZGF0YSwgQ2FjaGVkUmVz
b3VyY2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiBjYWNoZWRTY3JpcHQpCit2b2lkIEFzeW5jU2NyaXB0
UnVubmVyOjpleGVjdXRlU2NyaXB0U29vbihTY3JpcHRFbGVtZW50KiBzY3JpcHRFbGVtZW50LCBD
YWNoZWRSZXNvdXJjZUhhbmRsZTxDYWNoZWRTY3JpcHQ+IGNhY2hlZFNjcmlwdCkKIHsKLSAgICBB
U1NFUlRfQVJHKGRhdGEsIGRhdGEpOworICAgIEFTU0VSVF9BUkcoc2NyaXB0RWxlbWVudCwgc2Ny
aXB0RWxlbWVudCk7CiAKLSAgICBFbGVtZW50KiBlbGVtZW50ID0gZGF0YS0+ZWxlbWVudCgpOwor
ICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBzY3JpcHRFbGVtZW50LT5lbGVtZW50KCk7CiAgICAgQVNT
RVJUKGVsZW1lbnQpOwogICAgIEFTU0VSVChlbGVtZW50LT5pbkRvY3VtZW50KCkpOwogCiAgICAg
bV9kb2N1bWVudC0+aW5jcmVtZW50TG9hZEV2ZW50RGVsYXlDb3VudCgpOwotICAgIG1fc2NyaXB0
c1RvRXhlY3V0ZVNvb24uYXBwZW5kKG1ha2VfcGFpcihkYXRhLCBjYWNoZWRTY3JpcHQpKTsKLSAg
ICBlbGVtZW50LT5yZWYoKTsgLy8gQmFsYW5jZWQgYnkgZGVyZWYoKXMgaW4gdGltZXJGaXJlZCgp
IGFuZCBkdG9yLgorICAgIG1fc2NyaXB0c1RvRXhlY3V0ZVNvb24uYXBwZW5kKFBlbmRpbmdTY3Jp
cHQoZWxlbWVudCwgY2FjaGVkU2NyaXB0LmdldCgpKSk7CiAgICAgaWYgKCFtX3RpbWVyLmlzQWN0
aXZlKCkpCiAgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDApOwogfQpAQCAtODAsMTIgKzc4
LDEzIEBAIHZvaWQgQXN5bmNTY3JpcHRSdW5uZXI6OnRpbWVyRmlyZWQoVGltZXI8QXN5bmNTY3Jp
cHRSdW5uZXI+KiB0aW1lcikKIAogICAgIFJlZlB0cjxEb2N1bWVudD4gcHJvdGVjdChtX2RvY3Vt
ZW50KTsKICAgICAKLSAgICBWZWN0b3I8cGFpcjxTY3JpcHRFbGVtZW50KiwgQ2FjaGVkUmVzb3Vy
Y2VIYW5kbGU8Q2FjaGVkU2NyaXB0PiA+ID4gc2NyaXB0czsKKyAgICBWZWN0b3I8UGVuZGluZ1Nj
cmlwdD4gc2NyaXB0czsKICAgICBzY3JpcHRzLnN3YXAobV9zY3JpcHRzVG9FeGVjdXRlU29vbik7
CiAgICAgc2l6ZV90IHNpemUgPSBzY3JpcHRzLnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICBzY3JpcHRzW2ldLmZpcnN0LT5leGVjdXRlKHNj
cmlwdHNbaV0uc2Vjb25kLmdldCgpKTsKLSAgICAgICAgc2NyaXB0c1tpXS5maXJzdC0+ZWxlbWVu
dCgpLT5kZXJlZigpOyAvLyBCYWxhbmNlcyByZWYoKSBpbiBleGVjdXRlU2NyaXB0U29vbigpLgor
ICAgICAgICBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCA9IHNjcmlwdHNbaV0uY2FjaGVkU2Ny
aXB0KCk7CisgICAgICAgIFJlZlB0cjxFbGVtZW50PiBlbGVtZW50ID0gc2NyaXB0c1tpXS5yZWxl
YXNlRWxlbWVudEFuZENsZWFyKCk7CisgICAgICAgIHRvU2NyaXB0RWxlbWVudChlbGVtZW50Lmdl
dCgpKS0+ZXhlY3V0ZShjYWNoZWRTY3JpcHQpOwogICAgICAgICBtX2RvY3VtZW50LT5kZWNyZW1l
bnRMb2FkRXZlbnREZWxheUNvdW50KCk7CiAgICAgfQogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9k
b20vQXN5bmNTY3JpcHRSdW5uZXIuaCBiL1dlYkNvcmUvZG9tL0FzeW5jU2NyaXB0UnVubmVyLmgK
aW5kZXggMWEwNTFhODViN2IyNDFkZjZkNzUyMDFhOWNjNGYwNzcxYjg3OGRhMi4uMjMyNmY2N2Rh
ZmI4MmE4ZjA2ZWQxOWYxZDM4NTY1ODQ2NzJmNzNmYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20v
QXN5bmNTY3JpcHRSdW5uZXIuaAorKysgYi9XZWJDb3JlL2RvbS9Bc3luY1NjcmlwdFJ1bm5lci5o
CkBAIC0zNiw2ICszNiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ2FjaGVkU2Ny
aXB0OwogY2xhc3MgRG9jdW1lbnQ7CitjbGFzcyBQZW5kaW5nU2NyaXB0OwogY2xhc3MgU2NyaXB0
RWxlbWVudDsKICAgICAKIGNsYXNzIEFzeW5jU2NyaXB0UnVubmVyIDogcHVibGljIE5vbmNvcHlh
YmxlIHsKQEAgLTU0LDcgKzU1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHRpbWVyRmlyZWQoVGlt
ZXI8QXN5bmNTY3JpcHRSdW5uZXI+Kik7CiAKICAgICBEb2N1bWVudCogbV9kb2N1bWVudDsKLSAg
ICBWZWN0b3I8c3RkOjpwYWlyPFNjcmlwdEVsZW1lbnQqLCBDYWNoZWRSZXNvdXJjZUhhbmRsZTxD
YWNoZWRTY3JpcHQ+ID4gPiBtX3NjcmlwdHNUb0V4ZWN1dGVTb29uOworICAgIFZlY3RvcjxQZW5k
aW5nU2NyaXB0PiBtX3NjcmlwdHNUb0V4ZWN1dGVTb29uOyAvLyBodHRwOi8vd3d3LndoYXR3Zy5v
cmcvc3BlY3Mvd2ViLWFwcHMvY3VycmVudC13b3JrLyNzZXQtb2Ytc2NyaXB0cy10aGF0LXdpbGwt
ZXhlY3V0ZS1hcy1zb29uLWFzLXBvc3NpYmxlCiAgICAgVGltZXI8QXN5bmNTY3JpcHRSdW5uZXI+
IG1fdGltZXI7CiB9OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0Lmgg
Yi9XZWJDb3JlL2RvbS9QZW5kaW5nU2NyaXB0LmgKaW5kZXggOWM0YzQ4YjczMjVkNTA0MzEwYTE5
NWQ1YmFhYmQ5NDkyNzc2ZGM1Ni4uZmNiZTA2ZWU3OGVkNmI5ZDY0ZGJiZDBkNWQ3YzM5M2Q5ZDc3
ODAzZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vUGVuZGluZ1NjcmlwdC5oCisrKyBiL1dlYkNv
cmUvZG9tL1BlbmRpbmdTY3JpcHQuaApAQCAtNDksNiArNDksMTMgQEAgcHVibGljOgogICAgIHsK
ICAgICB9CiAKKyAgICBQZW5kaW5nU2NyaXB0KEVsZW1lbnQqIGVsZW1lbnQsIENhY2hlZFNjcmlw
dCogY2FjaGVkU2NyaXB0KQorICAgICAgICA6IG1fd2F0Y2hpbmdGb3JMb2FkKGZhbHNlKQorICAg
ICAgICAsIG1fZWxlbWVudChlbGVtZW50KQorICAgIHsKKyAgICAgICAgc2V0Q2FjaGVkU2NyaXB0
KGNhY2hlZFNjcmlwdCk7CisgICAgfQorCiAgICAgUGVuZGluZ1NjcmlwdChjb25zdCBQZW5kaW5n
U2NyaXB0JiBvdGhlcikKICAgICAgICAgOiBDYWNoZWRSZXNvdXJjZUNsaWVudChvdGhlcikKICAg
ICAgICAgLCBtX3dhdGNoaW5nRm9yTG9hZChvdGhlci5tX3dhdGNoaW5nRm9yTG9hZCkKQEAgLTgw
LDcgKzg3LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0V2F0Y2hpbmdGb3JMb2FkKGJvb2wgYikg
eyBtX3dhdGNoaW5nRm9yTG9hZCA9IGI7IH0KIAogICAgIEVsZW1lbnQqIGVsZW1lbnQoKSBjb25z
dCB7IHJldHVybiBtX2VsZW1lbnQuZ2V0KCk7IH0KLSAgICB2b2lkIGFkb3B0RWxlbWVudChFbGVt
ZW50KiBlbGVtZW50KSB7IG1fZWxlbWVudCA9IGVsZW1lbnQ7IH0KKyAgICB2b2lkIHNldEVsZW1l
bnQoRWxlbWVudCogZWxlbWVudCkgeyBtX2VsZW1lbnQgPSBlbGVtZW50OyB9CiAgICAgUGFzc1Jl
ZlB0cjxFbGVtZW50PiByZWxlYXNlRWxlbWVudEFuZENsZWFyKCk7CiAKICAgICBDYWNoZWRTY3Jp
cHQqIGNhY2hlZFNjcmlwdCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MU2NyaXB0UnVubmVyLmNwcCBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFNjcmlwdFJ1
bm5lci5jcHAKaW5kZXggNWU3MDU0NjI4ZjAxZjhiNDBlZmQ0MTE1MjUwMDEwOTUxY2MxYWNkZS4u
MmZlMWQzMDViYTA5MTY3Y2JmOTY4NDY3ZTIzOTI3NWNiYmUyZDQzNiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL3BhcnNlci9IVE1MU2NyaXB0UnVubmVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxTY3JpcHRSdW5uZXIuY3BwCkBAIC0yNjksNyArMjY5LDcgQEAgYm9vbCBIVE1M
U2NyaXB0UnVubmVyOjpyZXF1ZXN0UGVuZGluZ1NjcmlwdChQZW5kaW5nU2NyaXB0JiBwZW5kaW5n
U2NyaXB0LCBFbGVtZW4KICAgICAvLyBGSVhNRTogV2UgbmVlZCB0byByZXNvbHZlIHRoZSB1cmwg
cmVsYXRpdmUgdG8gdGhlIGVsZW1lbnQuCiAgICAgaWYgKCFzY3JpcHQtPmRpc3BhdGNoQmVmb3Jl
TG9hZEV2ZW50KHNyY1ZhbHVlKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHBlbmRpbmdT
Y3JpcHQuYWRvcHRFbGVtZW50KHNjcmlwdCk7CisgICAgcGVuZGluZ1NjcmlwdC5zZXRFbGVtZW50
KHNjcmlwdCk7CiAgICAgLy8gVGhpcyBzaG91bGQgY29ycmVjdGx5IHJldHVybiAwIGZvciBlbXB0
eSBvciBpbnZhbGlkIHNyY1ZhbHVlcy4KICAgICBDYWNoZWRTY3JpcHQqIGNhY2hlZFNjcmlwdCA9
IG1fZG9jdW1lbnQtPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RTY3JpcHQoc3JjVmFs
dWUsIHRvU2NyaXB0RWxlbWVudChzY3JpcHQpLT5zY3JpcHRDaGFyc2V0KCkpOwogICAgIGlmICgh
Y2FjaGVkU2NyaXB0KSB7CkBAIC0zMDgsNyArMzA4LDcgQEAgdm9pZCBIVE1MU2NyaXB0UnVubmVy
OjpydW5TY3JpcHQoRWxlbWVudCogc2NyaXB0LCBjb25zdCBUZXh0UG9zaXRpb24xJiBzY3JpcHRT
dGEKICAgICAgICAgICAgIC8vIFRoZSBsYXR0ZXIgY2FzZSBjYW4gb25seSBoYXBwZW4gaWYgYSBz
Y3JpcHQgYm90aCB0cmlnZ2VycyBhIHN0eWxlc2hlZXQgbG9hZAogICAgICAgICAgICAgLy8gYW5k
IHdyaXRlcyBhbiBpbmxpbmUgc2NyaXB0LiBTaW5jZSB3cml0ZSBpcyBibG9ja2luZyB3ZSBoYXZl
IHRvIGV4ZWN1dGUgdGhlCiAgICAgICAgICAgICAvLyB3cml0dGVuIHNjcmlwdCBpbW1lZGlhdGVs
eSwgaWdub3JpbmcgdGhlIHBlbmRpbmcgc2hlZXRzLgotICAgICAgICAgICAgbV9wYXJzaW5nQmxv
Y2tpbmdTY3JpcHQuYWRvcHRFbGVtZW50KHNjcmlwdCk7CisgICAgICAgICAgICBtX3BhcnNpbmdC
bG9ja2luZ1NjcmlwdC5zZXRFbGVtZW50KHNjcmlwdCk7CiAgICAgICAgICAgICBtX3BhcnNpbmdC
bG9ja2luZ1NjcmlwdC5zZXRTdGFydGluZ1Bvc2l0aW9uKHNjcmlwdFN0YXJ0UG9zaXRpb24pOwog
ICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgQVNTRVJUKGlzRXhlY3V0aW5nU2NyaXB0KCkp
Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>