<?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>34513</bug_id>
          
          <creation_ts>2010-02-02 22:33:18 -0800</creation_ts>
          <short_desc>SharedWorkerScriptLoader should not be an ActiveDOMObject</short_desc>
          <delta_ts>2010-02-03 12:14:51 -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>WebCore Misc.</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>1</everconfirmed>
          <reporter name="Andrew Wilson">atwilson</reporter>
          <assigned_to name="Andrew Wilson">atwilson</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>187269</commentid>
    <comment_count>0</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2010-02-02 22:33:18 -0800</bug_when>
    <thetext>SharedWorkerScriptLoader should not be an ActiveDOMObject as it does not have a JS wrapper.

Additionally, the current use of the API is causing a failed assertion in certain cases in the chromium implementation (http://crbug.com/33662).

We need to change the implementation to not derive from ActiveDOMObject, and to use a different mechanism for shutting down pending script loads (waiting until contextDestroyed() is invoked is too late).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187272</commentid>
    <comment_count>1</comment_count>
      <attachid>47995</attachid>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2010-02-02 22:52:55 -0800</bug_when>
    <thetext>Created attachment 47995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187274</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-02 23:00:37 -0800</bug_when>
    <thetext>Attachment 47995 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/chromium/src/SharedWorkerRepository.cpp:116:  One line control clauses should not use braces.  [whitespace/braces] [4]
WebKit/chromium/src/SharedWorkerRepository.cpp:132:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 2


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187275</commentid>
    <comment_count>3</comment_count>
      <attachid>47996</attachid>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2010-02-02 23:02:49 -0800</bug_when>
    <thetext>Created attachment 47996
Fixed style warning</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187393</commentid>
    <comment_count>4</comment_count>
      <attachid>47996</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-03 08:53:51 -0800</bug_when>
    <thetext>Comment on attachment 47996
Fixed style warning

+    // FIXME: This method is not guaranteed to be invoked if we are loading from WorkerContext (see the comment in WorkerScriptLoaderClient).
+    // We need to address this before supporting nested workers.

Instead of calling it &quot;the comment&quot;, I&apos;d say &quot;comment for WorkerScriptLoaderClient::notifyFinished()&quot;.

-    virtual void contextDestroyed();
+    static void contextDetached(ScriptExecutionContext*);

Unlike contextDestroyed(), contextDetached() is called to achieve a specific effect. I&apos;d consider calling it something like stopAllLoadersForContext().

+    const ScriptExecutionContext* parentContext() { return m_worker-&gt;scriptExecutionContext(); }

Is &quot;parent context&quot; appropriate terminology here? In cross-platform code, I&apos;d ask to rename it to workerContext(), but maybe in Chromium parts, this is already used elsewhere.

+    bool m_loadPending;

Doesn&apos;t &quot;pending&quot; mean &quot;about to start&quot;, at least in WebCore parlance? This looks more like &quot;m_loading&quot; to me.

None of my comments necessarily qualify for r-, the patch looks good. Marking r- for you to consider making the changes, but feel free to mark for review again if you like the current version more than any variations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187448</commentid>
    <comment_count>5</comment_count>
      <attachid>48056</attachid>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2010-02-03 11:22:27 -0800</bug_when>
    <thetext>Created attachment 48056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187449</commentid>
    <comment_count>6</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2010-02-03 11:23:14 -0800</bug_when>
    <thetext>Thanks, that was all good feedback. I&apos;ve updated the patch accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187454</commentid>
    <comment_count>7</comment_count>
      <attachid>48056</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2010-02-03 11:33:14 -0800</bug_when>
    <thetext>Comment on attachment 48056
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187465</commentid>
    <comment_count>8</comment_count>
      <attachid>48056</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-03 12:14:43 -0800</bug_when>
    <thetext>Comment on attachment 48056
Patch

Clearing flags on attachment: 48056

Committed r54292: &lt;http://trac.webkit.org/changeset/54292&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187466</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-03 12:14:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47995</attachid>
            <date>2010-02-02 22:52:55 -0800</date>
            <delta_ts>2010-02-02 23:02:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34513-20100202225254.patch</filename>
            <type>text/plain</type>
            <size>10746</size>
            <attacher name="Andrew Wilson">atwilson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDRmZjM5Ni4uOTFmOTA1MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wMi0wMiAgRHJldyBXaWxzb24g
IDxhdHdpbHNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyIHNob3VsZCBub3QgYmUg
YW4gQWN0aXZlRE9NT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNDUxMworCisgICAgICAgIFRlc3Q6IEV4aXN0aW5nIHRlc3RzIHN1ZmZpY2Ug
KGZpeGVzIHRlc3QgZG93bnN0cmVhbSBpbiBDaHJvbWUpLgorCisgICAgICAgICogd29ya2Vycy9E
ZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFy
ZWRXb3JrZXJTY3JpcHRMb2FkZXI6OlNoYXJlZFdvcmtlclNjcmlwdExvYWRlcik6CisgICAgICAg
IENoYW5nZWQgdG8gbm8gbG9uZ2VyIGRlcml2ZSBmcm9tIEFjdGl2ZURPTU9iamVjdCAoaGFuZGxl
cyBpdHMgb3duIHJlZmNvdW50aW5nKS4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclNj
cmlwdExvYWRlcjo6bG9hZCk6CisgICAgICAgIE5vdyBpbmNyZW1lbnRzIG93biByZWZjb3VudCB3
aGVuIGEgbG9hZCBpcyBwZW5kaW5nLgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyU2Ny
aXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgIENoYW5nZWQgdG8gZGVjcmVtZW50
IHJlZmNvdW50IHdoZW4gbG9hZCBpcyBjb21wbGV0ZS4KKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
clNjcmlwdExvYWRlckNsaWVudC5oOgorICAgICAgICBEb2N1bWVudGF0aW9uIGNoYW5nZSBhYm91
dCByZWxpYWJpbGl0eSBvZiBub3RpZnlGaW5pc2hlZCgpIHdoZW4gdXNlZCBmcm9tIHdvcmtlciBj
b250ZXh0LgorCiAyMDEwLTAyLTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KIAogICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBYYW4gTG9wZXouCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwIGIvV2Vi
Q29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCA2NTVi
OTBlLi4wYjg4ZDI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdv
cmtlclJlcG9zaXRvcnkuY3BwCisrKyBiL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29y
a2VyUmVwb3NpdG9yeS5jcHAKQEAgLTI0OCw3ICsyNDgsNyBAQCBwcml2YXRlOgogfTsKIAogLy8g
TG9hZHMgdGhlIHNjcmlwdCBvbiBiZWhhbGYgb2YgYSB3b3JrZXIuCi1jbGFzcyBTaGFyZWRXb3Jr
ZXJTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxTaGFyZWRXb3JrZXJTY3JpcHRMb2Fk
ZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmtlclNjcmlwdExvYWRlckNs
aWVudCB7CitjbGFzcyBTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI+LCBwcml2YXRlIFdvcmtlclNjcmlwdExvYWRlckNs
aWVudCB7CiBwdWJsaWM6CiAgICAgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyKFBhc3NSZWZQdHI8
U2hhcmVkV29ya2VyPiwgUGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5uZWw+LCBQYXNzUmVmUHRy
PFNoYXJlZFdvcmtlclByb3h5Pik7CiAgICAgdm9pZCBsb2FkKGNvbnN0IEtVUkwmKTsKQEAgLTI2
NCw4ICsyNjQsNyBAQCBwcml2YXRlOgogfTsKIAogU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyOjpT
aGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIoUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXI+IHdvcmtlciwg
UGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5uZWw+IHBvcnQsIFBhc3NSZWZQdHI8U2hhcmVkV29y
a2VyUHJveHk+IHByb3h5KQotICAgIDogQWN0aXZlRE9NT2JqZWN0KHdvcmtlci0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLCB0aGlzKQotICAgICwgbV93b3JrZXIod29ya2VyKQorICAgIDogbV93
b3JrZXIod29ya2VyKQogICAgICwgbV9wb3J0KHBvcnQpCiAgICAgLCBtX3Byb3h5KHByb3h5KQog
ewpAQCAtMjc0LDI1ICsyNzMsMjcgQEAgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyOjpTaGFyZWRX
b3JrZXJTY3JpcHRMb2FkZXIoUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXI+IHdvcmsKIHZvaWQgU2hh
cmVkV29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkKGNvbnN0IEtVUkwmIHVybCkKIHsKICAgICAvLyBN
YXJrIHRoaXMgb2JqZWN0IGFzIGFjdGl2ZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBsb2FkLgot
ICAgIEFTU0VSVCghaGFzUGVuZGluZ0FjdGl2aXR5KCkpOwogICAgIG1fc2NyaXB0TG9hZGVyID0g
bmV3IFdvcmtlclNjcmlwdExvYWRlcigpOwotICAgIG1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNo
cm9ub3VzbHkoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB1cmwsIERlbnlDcm9zc09yaWdpblJl
cXVlc3RzLCB0aGlzKTsKKyAgICBtX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KG1f
d29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHVybCwgRGVueUNyb3NzT3JpZ2luUmVx
dWVzdHMsIHRoaXMpOwogCi0gICAgLy8gU3RheSBhbGl2ZSB1bnRpbCB0aGUgbG9hZCBmaW5pc2hl
cy4KLSAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CisgICAgLy8gU3RheSBhbGl2ZSAoYW5k
IGtlZXAgdGhlIFNoYXJlZFdvcmtlciBhbmQgSlMgd3JhcHBlciBhbGl2ZSkgdW50aWwgdGhlIGxv
YWQgZmluaXNoZXMuCisgICAgdGhpcy0+cmVmKCk7CiAgICAgbV93b3JrZXItPnNldFBlbmRpbmdB
Y3Rpdml0eShtX3dvcmtlci5nZXQoKSk7CiB9CiAKIHZvaWQgU2hhcmVkV29ya2VyU2NyaXB0TG9h
ZGVyOjpub3RpZnlGaW5pc2hlZCgpCiB7CisgICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIGlzIG5v
dCBndWFyYW50ZWVkIHRvIGJlIGludm9rZWQgaWYgd2UgYXJlIGxvYWRpbmcgZnJvbSBXb3JrZXJD
b250ZXh0IChzZWUgdGhlIGNvbW1lbnQgaW4gV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50KS4KKyAg
ICAvLyBXZSBuZWVkIHRvIGFkZHJlc3MgdGhpcyBiZWZvcmUgc3VwcG9ydGluZyBuZXN0ZWQgd29y
a2Vycy4KKwogICAgIC8vIEhhbmQgb2ZmIHRoZSBqdXN0LWxvYWRlZCBjb2RlIHRvIHRoZSByZXBv
c2l0b3J5IHRvIHN0YXJ0IHVwIHRoZSB3b3JrZXIgdGhyZWFkLgogICAgIGlmIChtX3NjcmlwdExv
YWRlci0+ZmFpbGVkKCkpCiAgICAgICAgIG1fd29ya2VyLT5kaXNwYXRjaEV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGZhbHNlLCB0cnVlKSk7CiAgICAgZWxzZQot
ICAgICAgICBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6aW5zdGFuY2UoKS53b3JrZXJT
Y3JpcHRMb2FkZWQoKm1fcHJveHksIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXNlckFnZW50
KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgbV9wb3J0
LnJlbGVhc2UoKSk7CisgICAgICAgIERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5OjppbnN0
YW5jZSgpLndvcmtlclNjcmlwdExvYWRlZCgqbV9wcm94eSwgbV93b3JrZXItPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+dXNlckFnZW50KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksIG1fc2NyaXB0
TG9hZGVyLT5zY3JpcHQoKSwgbV9wb3J0LnJlbGVhc2UoKSk7CiAKICAgICBtX3dvcmtlci0+dW5z
ZXRQZW5kaW5nQWN0aXZpdHkobV93b3JrZXIuZ2V0KCkpOwotICAgIHVuc2V0UGVuZGluZ0FjdGl2
aXR5KHRoaXMpOyAvLyBUaGlzIGZyZWVzIHRoaXMgb2JqZWN0IC0gbXVzdCBiZSB0aGUgbGFzdCBh
Y3Rpb24gaW4gdGhpcyBmdW5jdGlvbi4KKyAgICB0aGlzLT5kZXJlZigpOyAvLyBUaGlzIGZyZWVz
IHRoaXMgb2JqZWN0IC0gbXVzdCBiZSB0aGUgbGFzdCBhY3Rpb24gaW4gdGhpcyBmdW5jdGlvbi4K
IH0KIAogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkmIERlZmF1bHRTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5OjppbnN0YW5jZSgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
U2NyaXB0TG9hZGVyQ2xpZW50LmggYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVy
Q2xpZW50LmgKaW5kZXggZTM5MDNjMC4uN2RjM2ExZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclNjcmlwdExvYWRlckNsaWVudC5oCisrKyBiL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJTY3JpcHRMb2FkZXJDbGllbnQuaApAQCAtMzQsOCArMzQsMTAgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKICAgICBwdWJsaWM6
CisgICAgICAgIC8vIEZJWE1FOiBub3RpZnlGaW5pc2hlZCgpIGlzIG5vdCBjdXJyZW50bHkgZ3Vh
cmFudGVlZCB0byBiZSBpbnZva2VkIGlmIHVzZWQgZnJvbSB3b3JrZXIgY29udGV4dCBhbmQgdGhl
IHdvcmtlciBzaHV0cyBkb3duIGluIHRoZSBtaWRkbGUgb2YgYW4gb3BlcmF0aW9uLgorICAgICAg
ICAvLyBUaGlzIHdpbGwgY2F1c2UgbGVha3Mgd2hlbiB3ZSBzdXBwb3J0IG5lc3RlZCB3b3JrZXJz
LgogICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoKSB7IH0KLSAgICAgICAgCisK
ICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgfldvcmtlclNjcmlwdExvYWRlckNsaWVu
dCgpIHsgfQogICAgIH07CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA2YThlNzZhLi5jNjQ5YTViIDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wMi0wMiAgRHJldyBXaWxzb24gIDxhdHdpbHNv
bkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyIHNob3VsZCBub3QgYmUgYW4gQWN0aXZl
RE9NT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNDUxMworCisgICAgICAgICogc3JjL1NoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyOjpTaGFyZWRXb3JrZXJTY3Jp
cHRMb2FkZXIpOgorICAgICAgICBDaGFuZ2VkIFNoYXJlZFdvcmtlclNjcmlwdExvYWRlciB0byBt
YW5hZ2UgaXRzIG93biBsaWZlY3ljbGUgd2l0aG91dCB1c2luZyBBY3RpdmVET01PYmplY3QuCisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI6OnBhcmVudENvbnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6cGVuZGluZ0xvYWRlcnMpOgorICAgICAgICBOb3cgd2UgbWFu
dWFsbHkgdHJhY2sgcGVuZGluZyBsb2FkcyBzbyB3ZSBjYW4gc2h1dCB0aGVtIGRvd24gd2hlbiB0
aGUgcGFyZW50IGNvbnRleHQgc2h1dHMgZG93bi4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdv
cmtlclNjcmlwdExvYWRlcjo6Y29udGV4dERldGFjaGVkKToKKyAgICAgICAgU2h1dHMgZG93bi9m
cmVlcyBhbnkgcGVuZGluZyB3b3JrZXIgbG9hZHMuCisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRX
b3JrZXJTY3JpcHRMb2FkZXI6On5TaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIpOgorICAgICAgICBN
YXJrcyB0aGUgU2hhcmVkV29ya2VyIG9iamVjdCBhcyBub3QgaGF2aW5nIHBlbmRpbmcgYWN0aXZp
dHkgaWYgdGhlcmUgd2FzIGEgbG9hZCBhY3RpdmUgKGhhbmRsZXMgY2FzZSB3aGVyZSBsb2FkIHdh
cyBwZW5kaW5nIHdoZW4gcGFyZW50IGRvY3VtZW50IGV4aXRzKS4KKyAgICAgICAgKFdlYkNvcmU6
OlNoYXJlZFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFy
ZWRXb3JrZXJSZXBvc2l0b3J5Ojpkb2N1bWVudERldGFjaGVkKToKKyAgICAgICAgTm93IGNhbGxz
IFNoYXJlZFdvcmtlclNjcmlwdExvYWRlcjo6Y29udGV4dERldGFjaGVkKCkgdG8gc2h1dGRvd24g
YW55IHBlbmRpbmcgd29ya2VyIGxvYWRzLgorCiAyMDEwLTAxLTMxICBLZW50IFRhbXVyYSAgPHRr
ZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1NoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3Bw
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9TaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCA1
ZTViYzQ2Li42MzFkOGU5IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1NoYXJlZFdv
cmtlclJlcG9zaXRvcnkuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvU2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5jcHAKQEAgLTYxLDI2ICs2MSwzMCBAQCB1c2luZyBXZWJLaXQ6OldlYlNoYXJl
ZFdvcmtlcjsKIHVzaW5nIFdlYktpdDo6V2ViU2hhcmVkV29ya2VyUmVwb3NpdG9yeTsKIAogLy8g
Q2FsbGJhY2sgY2xhc3MgdGhhdCBrZWVwcyB0aGUgU2hhcmVkV29ya2VyIGFuZCBXZWJTaGFyZWRX
b3JrZXIgb2JqZWN0cyBhbGl2ZSB3aGlsZSBsb2FkcyBhcmUgcG90ZW50aWFsbHkgaGFwcGVuaW5n
LCBhbmQgYWxzbyB0cmFuc2xhdGVzIGxvYWQgZXJyb3JzIGludG8gZXJyb3IgZXZlbnRzIG9uIHRo
ZSB3b3JrZXIuCi1jbGFzcyBTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIgOiBwcml2YXRlIFdvcmtl
clNjcmlwdExvYWRlckNsaWVudCwgcHJpdmF0ZSBXZWJTaGFyZWRXb3JrZXI6OkNvbm5lY3RMaXN0
ZW5lciwgcHJpdmF0ZSBBY3RpdmVET01PYmplY3QgeworY2xhc3MgU2hhcmVkV29ya2VyU2NyaXB0
TG9hZGVyIDogcHJpdmF0ZSBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQsIHByaXZhdGUgV2ViU2hh
cmVkV29ya2VyOjpDb25uZWN0TGlzdGVuZXIgewogcHVibGljOgogICAgIFNoYXJlZFdvcmtlclNj
cmlwdExvYWRlcihQYXNzUmVmUHRyPFNoYXJlZFdvcmtlcj4gd29ya2VyLCBjb25zdCBLVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5uZWw+IHBv
cnQsIFBhc3NPd25QdHI8V2ViU2hhcmVkV29ya2VyPiB3ZWJXb3JrZXIpCi0gICAgICAgIDogQWN0
aXZlRE9NT2JqZWN0KHdvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0aGlzKQotICAg
ICAgICAsIG1fd29ya2VyKHdvcmtlcikKKyAgICAgICAgOiBtX3dvcmtlcih3b3JrZXIpCiAgICAg
ICAgICwgbV91cmwodXJsKQogICAgICAgICAsIG1fbmFtZShuYW1lKQogICAgICAgICAsIG1fd2Vi
V29ya2VyKHdlYldvcmtlcikKICAgICAgICAgLCBtX3BvcnQocG9ydCkKKyAgICAgICAgLCBtX2xv
YWRQZW5kaW5nKGZhbHNlKQogICAgIHsKICAgICB9CiAKKyAgICB+U2hhcmVkV29ya2VyU2NyaXB0
TG9hZGVyKCk7CiAgICAgdm9pZCBsb2FkKCk7Ci0gICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0
cm95ZWQoKTsKKyAgICBzdGF0aWMgdm9pZCBjb250ZXh0RGV0YWNoZWQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopOworCiBwcml2YXRlOgogICAgIC8vIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCBj
YWxsYmFjawogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZCgpOwogCiAgICAgdmlydHVh
bCB2b2lkIGNvbm5lY3RlZCgpOwogCisgICAgY29uc3QgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
cGFyZW50Q29udGV4dCgpIHsgcmV0dXJuIG1fd29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7IH0KKwogICAgIHZvaWQgc2VuZENvbm5lY3QoKTsKIAogICAgIFJlZlB0cjxTaGFyZWRXb3Jr
ZXI+IG1fd29ya2VyOwpAQCAtODksMTUgKzkzLDQ4IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFdl
YlNoYXJlZFdvcmtlcj4gbV93ZWJXb3JrZXI7CiAgICAgT3duUHRyPE1lc3NhZ2VQb3J0Q2hhbm5l
bD4gbV9wb3J0OwogICAgIFdvcmtlclNjcmlwdExvYWRlciBtX3NjcmlwdExvYWRlcjsKKyAgICBi
b29sIG1fbG9hZFBlbmRpbmc7CiB9OwogCitzdGF0aWMgVmVjdG9yPFNoYXJlZFdvcmtlclNjcmlw
dExvYWRlcio+JiBwZW5kaW5nTG9hZGVycygpCit7CisgICAgQXRvbWljYWxseUluaXRpYWxpemVk
U3RhdGljKFZlY3RvcjxTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIqPiYsIGxvYWRlcnMgPSAqbmV3
IFZlY3RvcjxTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIqPik7CisgICAgcmV0dXJuIGxvYWRlcnM7
Cit9CisKK3ZvaWQgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyOjpjb250ZXh0RGV0YWNoZWQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK3sKKyAgICAvLyBXYWxrIG91ciBsaXN0IG9m
IHBlbmRpbmcgbG9hZGVycyBhbmQgc2h1dGRvd24gYW55IHRoYXQgYmVsb25nIHRvIHRoaXMgY29u
dGV4dC4KKyAgICBWZWN0b3I8U2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyKj4mIGxvYWRlcnMgPSBw
ZW5kaW5nTG9hZGVycygpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsb2FkZXJzLnNp
emUoKTsgKSB7CisgICAgICAgIFNoYXJlZFdvcmtlclNjcmlwdExvYWRlciogbG9hZGVyID0gbG9h
ZGVyc1tpXTsKKyAgICAgICAgaWYgKGNvbnRleHQgPT0gbG9hZGVyLT5wYXJlbnRDb250ZXh0KCkp
IHsKKyAgICAgICAgICAgIGxvYWRlcnMucmVtb3ZlKGkpOworICAgICAgICAgICAgZGVsZXRlIGxv
YWRlcjsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGkrKzsKKyAgICAgICAgfQorICAg
IH0KK30KKworU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyOjp+U2hhcmVkV29ya2VyU2NyaXB0TG9h
ZGVyKCkKK3sKKyAgICBpZiAobV9sb2FkUGVuZGluZykKKyAgICAgICAgbV93b3JrZXItPnVuc2V0
UGVuZGluZ0FjdGl2aXR5KG1fd29ya2VyLmdldCgpKTsKK30KKwogdm9pZCBTaGFyZWRXb3JrZXJT
Y3JpcHRMb2FkZXI6OmxvYWQoKQogeworICAgIEFTU0VSVCghbV9sb2FkUGVuZGluZyk7CiAgICAg
Ly8gSWYgdGhlIHNoYXJlZCB3b3JrZXIgaXMgbm90IHlldCBydW5uaW5nLCBsb2FkIHRoZSBzY3Jp
cHQgcmVzb3VyY2UgZm9yIGl0LCBvdGhlcndpc2UganVzdCBzZW5kIGl0IGEgY29ubmVjdCBldmVu
dC4KLSAgICBpZiAobV93ZWJXb3JrZXItPmlzU3RhcnRlZCgpKQorICAgIGlmIChtX3dlYldvcmtl
ci0+aXNTdGFydGVkKCkpIHsKICAgICAgICAgc2VuZENvbm5lY3QoKTsKLSAgICBlbHNlCisgICAg
fSBlbHNlIHsKICAgICAgICAgbV9zY3JpcHRMb2FkZXIubG9hZEFzeW5jaHJvbm91c2x5KG1fd29y
a2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1fdXJsLCBEZW55Q3Jvc3NPcmlnaW5SZXF1
ZXN0cywgdGhpcyk7CisgICAgICAgIC8vIEtlZXAgdGhlIHdvcmtlciArIEpTIHdyYXBwZXIgYWxp
dmUgdW50aWwgdGhlIHJlc291cmNlIGxvYWQgaXMgY29tcGxldGUgaW4gY2FzZSB3ZSBuZWVkIHRv
IGRpc3BhdGNoIGFuIGVycm9yIGV2ZW50LgorICAgICAgICBtX3dvcmtlci0+c2V0UGVuZGluZ0Fj
dGl2aXR5KG1fd29ya2VyLmdldCgpKTsKKyAgICAgICAgbV9sb2FkUGVuZGluZyA9IHRydWU7Cisg
ICAgfQogfQogCiAvLyBFeHRyYWN0cyBhIFdlYk1lc3NhZ2VQb3J0Q2hhbm5lbCBmcm9tIGEgTWVz
c2FnZVBvcnRDaGFubmVsLgpAQCAtMTI4LDEyICsxNjUsNiBAQCB2b2lkIFNoYXJlZFdvcmtlclNj
cmlwdExvYWRlcjo6c2VuZENvbm5lY3QoKQogICAgIG1fd2ViV29ya2VyLT5jb25uZWN0KGdldFdl
YlBvcnQobV9wb3J0LnJlbGVhc2UoKSksIHRoaXMpOwogfQogCi12b2lkIFNoYXJlZFdvcmtlclNj
cmlwdExvYWRlcjo6Y29udGV4dERlc3Ryb3llZCgpCi17Ci0gICAgQWN0aXZlRE9NT2JqZWN0Ojpj
b250ZXh0RGVzdHJveWVkKCk7Ci0gICAgZGVsZXRlIHRoaXM7Ci19Ci0KIHZvaWQgU2hhcmVkV29y
a2VyU2NyaXB0TG9hZGVyOjpjb25uZWN0ZWQoKQogewogICAgIC8vIENvbm5lY3QgZXZlbnQgaGFz
IGJlZW4gc2VudCwgc28gZnJlZSBvdXJzZWx2ZXMgKHRoaXMgcmVsZWFzZXMgdGhlIFNoYXJlZFdv
cmtlciBzbyBpdCBjYW4gYmUgZnJlZWQgYXMgd2VsbCBpZiB1bnJlZmVyZW5jZWQpLgpAQCAtMTg1
LDYgKzIxNiwxMCBAQCB2b2lkIFNoYXJlZFdvcmtlclJlcG9zaXRvcnk6OmRvY3VtZW50RGV0YWNo
ZWQoRG9jdW1lbnQqIGRvY3VtZW50KQogICAgIFdlYlNoYXJlZFdvcmtlclJlcG9zaXRvcnkqIHJl
cG8gPSBXZWJLaXQ6OndlYktpdENsaWVudCgpLT5zaGFyZWRXb3JrZXJSZXBvc2l0b3J5KCk7CiAg
ICAgaWYgKHJlcG8pCiAgICAgICAgIHJlcG8tPmRvY3VtZW50RGV0YWNoZWQoZ2V0SWQoZG9jdW1l
bnQpKTsKKworICAgIC8vIFN0b3AgdGhlIGNyZWF0aW9uIG9mIGFueSBwZW5kaW5nIFNoYXJlZFdv
cmtlcnMgZm9yIHRoaXMgY29udGV4dC4KKyAgICAvLyBGSVhNRTogTmVlZCBhIHdheSB0byBpbnZv
a2UgdGhpcyBmb3IgV29ya2VyQ29udGV4dHMgYXMgd2VsbCB3aGVuIHdlIHN1cHBvcnQgZm9yIG5l
c3RlZCB3b3JrZXJzLgorICAgIFNoYXJlZFdvcmtlclNjcmlwdExvYWRlcjo6Y29udGV4dERldGFj
aGVkKGRvY3VtZW50KTsKIH0KIAogYm9vbCBTaGFyZWRXb3JrZXJSZXBvc2l0b3J5OjpoYXNTaGFy
ZWRXb3JrZXJzKERvY3VtZW50KiBkb2N1bWVudCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47996</attachid>
            <date>2010-02-02 23:02:49 -0800</date>
            <delta_ts>2010-02-03 11:22:21 -0800</delta_ts>
            <desc>Fixed style warning</desc>
            <filename>bug-34513-20100202230248.patch</filename>
            <type>text/plain</type>
            <size>10694</size>
            <attacher name="Andrew Wilson">atwilson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDRmZjM5Ni4uOTFmOTA1MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wMi0wMiAgRHJldyBXaWxzb24g
IDxhdHdpbHNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyIHNob3VsZCBub3QgYmUg
YW4gQWN0aXZlRE9NT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNDUxMworCisgICAgICAgIFRlc3Q6IEV4aXN0aW5nIHRlc3RzIHN1ZmZpY2Ug
KGZpeGVzIHRlc3QgZG93bnN0cmVhbSBpbiBDaHJvbWUpLgorCisgICAgICAgICogd29ya2Vycy9E
ZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFy
ZWRXb3JrZXJTY3JpcHRMb2FkZXI6OlNoYXJlZFdvcmtlclNjcmlwdExvYWRlcik6CisgICAgICAg
IENoYW5nZWQgdG8gbm8gbG9uZ2VyIGRlcml2ZSBmcm9tIEFjdGl2ZURPTU9iamVjdCAoaGFuZGxl
cyBpdHMgb3duIHJlZmNvdW50aW5nKS4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclNj
cmlwdExvYWRlcjo6bG9hZCk6CisgICAgICAgIE5vdyBpbmNyZW1lbnRzIG93biByZWZjb3VudCB3
aGVuIGEgbG9hZCBpcyBwZW5kaW5nLgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyU2Ny
aXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgIENoYW5nZWQgdG8gZGVjcmVtZW50
IHJlZmNvdW50IHdoZW4gbG9hZCBpcyBjb21wbGV0ZS4KKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
clNjcmlwdExvYWRlckNsaWVudC5oOgorICAgICAgICBEb2N1bWVudGF0aW9uIGNoYW5nZSBhYm91
dCByZWxpYWJpbGl0eSBvZiBub3RpZnlGaW5pc2hlZCgpIHdoZW4gdXNlZCBmcm9tIHdvcmtlciBj
b250ZXh0LgorCiAyMDEwLTAyLTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KIAogICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBYYW4gTG9wZXouCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwIGIvV2Vi
Q29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCA2NTVi
OTBlLi4wYjg4ZDI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdv
cmtlclJlcG9zaXRvcnkuY3BwCisrKyBiL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29y
a2VyUmVwb3NpdG9yeS5jcHAKQEAgLTI0OCw3ICsyNDgsNyBAQCBwcml2YXRlOgogfTsKIAogLy8g
TG9hZHMgdGhlIHNjcmlwdCBvbiBiZWhhbGYgb2YgYSB3b3JrZXIuCi1jbGFzcyBTaGFyZWRXb3Jr
ZXJTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxTaGFyZWRXb3JrZXJTY3JpcHRMb2Fk
ZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmtlclNjcmlwdExvYWRlckNs
aWVudCB7CitjbGFzcyBTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI+LCBwcml2YXRlIFdvcmtlclNjcmlwdExvYWRlckNs
aWVudCB7CiBwdWJsaWM6CiAgICAgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyKFBhc3NSZWZQdHI8
U2hhcmVkV29ya2VyPiwgUGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5uZWw+LCBQYXNzUmVmUHRy
PFNoYXJlZFdvcmtlclByb3h5Pik7CiAgICAgdm9pZCBsb2FkKGNvbnN0IEtVUkwmKTsKQEAgLTI2
NCw4ICsyNjQsNyBAQCBwcml2YXRlOgogfTsKIAogU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyOjpT
aGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIoUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXI+IHdvcmtlciwg
UGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5uZWw+IHBvcnQsIFBhc3NSZWZQdHI8U2hhcmVkV29y
a2VyUHJveHk+IHByb3h5KQotICAgIDogQWN0aXZlRE9NT2JqZWN0KHdvcmtlci0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLCB0aGlzKQotICAgICwgbV93b3JrZXIod29ya2VyKQorICAgIDogbV93
b3JrZXIod29ya2VyKQogICAgICwgbV9wb3J0KHBvcnQpCiAgICAgLCBtX3Byb3h5KHByb3h5KQog
ewpAQCAtMjc0LDI1ICsyNzMsMjcgQEAgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyOjpTaGFyZWRX
b3JrZXJTY3JpcHRMb2FkZXIoUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXI+IHdvcmsKIHZvaWQgU2hh
cmVkV29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkKGNvbnN0IEtVUkwmIHVybCkKIHsKICAgICAvLyBN
YXJrIHRoaXMgb2JqZWN0IGFzIGFjdGl2ZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBsb2FkLgot
ICAgIEFTU0VSVCghaGFzUGVuZGluZ0FjdGl2aXR5KCkpOwogICAgIG1fc2NyaXB0TG9hZGVyID0g
bmV3IFdvcmtlclNjcmlwdExvYWRlcigpOwotICAgIG1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNo
cm9ub3VzbHkoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB1cmwsIERlbnlDcm9zc09yaWdpblJl
cXVlc3RzLCB0aGlzKTsKKyAgICBtX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KG1f
d29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHVybCwgRGVueUNyb3NzT3JpZ2luUmVx
dWVzdHMsIHRoaXMpOwogCi0gICAgLy8gU3RheSBhbGl2ZSB1bnRpbCB0aGUgbG9hZCBmaW5pc2hl
cy4KLSAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CisgICAgLy8gU3RheSBhbGl2ZSAoYW5k
IGtlZXAgdGhlIFNoYXJlZFdvcmtlciBhbmQgSlMgd3JhcHBlciBhbGl2ZSkgdW50aWwgdGhlIGxv
YWQgZmluaXNoZXMuCisgICAgdGhpcy0+cmVmKCk7CiAgICAgbV93b3JrZXItPnNldFBlbmRpbmdB
Y3Rpdml0eShtX3dvcmtlci5nZXQoKSk7CiB9CiAKIHZvaWQgU2hhcmVkV29ya2VyU2NyaXB0TG9h
ZGVyOjpub3RpZnlGaW5pc2hlZCgpCiB7CisgICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIGlzIG5v
dCBndWFyYW50ZWVkIHRvIGJlIGludm9rZWQgaWYgd2UgYXJlIGxvYWRpbmcgZnJvbSBXb3JrZXJD
b250ZXh0IChzZWUgdGhlIGNvbW1lbnQgaW4gV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50KS4KKyAg
ICAvLyBXZSBuZWVkIHRvIGFkZHJlc3MgdGhpcyBiZWZvcmUgc3VwcG9ydGluZyBuZXN0ZWQgd29y
a2Vycy4KKwogICAgIC8vIEhhbmQgb2ZmIHRoZSBqdXN0LWxvYWRlZCBjb2RlIHRvIHRoZSByZXBv
c2l0b3J5IHRvIHN0YXJ0IHVwIHRoZSB3b3JrZXIgdGhyZWFkLgogICAgIGlmIChtX3NjcmlwdExv
YWRlci0+ZmFpbGVkKCkpCiAgICAgICAgIG1fd29ya2VyLT5kaXNwYXRjaEV2ZW50KEV2ZW50Ojpj
cmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGZhbHNlLCB0cnVlKSk7CiAgICAgZWxzZQot
ICAgICAgICBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6aW5zdGFuY2UoKS53b3JrZXJT
Y3JpcHRMb2FkZWQoKm1fcHJveHksIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXNlckFnZW50
KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgbV9wb3J0
LnJlbGVhc2UoKSk7CisgICAgICAgIERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5OjppbnN0
YW5jZSgpLndvcmtlclNjcmlwdExvYWRlZCgqbV9wcm94eSwgbV93b3JrZXItPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+dXNlckFnZW50KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksIG1fc2NyaXB0
TG9hZGVyLT5zY3JpcHQoKSwgbV9wb3J0LnJlbGVhc2UoKSk7CiAKICAgICBtX3dvcmtlci0+dW5z
ZXRQZW5kaW5nQWN0aXZpdHkobV93b3JrZXIuZ2V0KCkpOwotICAgIHVuc2V0UGVuZGluZ0FjdGl2
aXR5KHRoaXMpOyAvLyBUaGlzIGZyZWVzIHRoaXMgb2JqZWN0IC0gbXVzdCBiZSB0aGUgbGFzdCBh
Y3Rpb24gaW4gdGhpcyBmdW5jdGlvbi4KKyAgICB0aGlzLT5kZXJlZigpOyAvLyBUaGlzIGZyZWVz
IHRoaXMgb2JqZWN0IC0gbXVzdCBiZSB0aGUgbGFzdCBhY3Rpb24gaW4gdGhpcyBmdW5jdGlvbi4K
IH0KIAogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkmIERlZmF1bHRTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5OjppbnN0YW5jZSgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
U2NyaXB0TG9hZGVyQ2xpZW50LmggYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVy
Q2xpZW50LmgKaW5kZXggZTM5MDNjMC4uN2RjM2ExZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclNjcmlwdExvYWRlckNsaWVudC5oCisrKyBiL1dlYkNvcmUvd29ya2Vycy9Xb3Jr
ZXJTY3JpcHRMb2FkZXJDbGllbnQuaApAQCAtMzQsOCArMzQsMTAgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50IHsKICAgICBwdWJsaWM6
CisgICAgICAgIC8vIEZJWE1FOiBub3RpZnlGaW5pc2hlZCgpIGlzIG5vdCBjdXJyZW50bHkgZ3Vh
cmFudGVlZCB0byBiZSBpbnZva2VkIGlmIHVzZWQgZnJvbSB3b3JrZXIgY29udGV4dCBhbmQgdGhl
IHdvcmtlciBzaHV0cyBkb3duIGluIHRoZSBtaWRkbGUgb2YgYW4gb3BlcmF0aW9uLgorICAgICAg
ICAvLyBUaGlzIHdpbGwgY2F1c2UgbGVha3Mgd2hlbiB3ZSBzdXBwb3J0IG5lc3RlZCB3b3JrZXJz
LgogICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoKSB7IH0KLSAgICAgICAgCisK
ICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgfldvcmtlclNjcmlwdExvYWRlckNsaWVu
dCgpIHsgfQogICAgIH07CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA2YThlNzZhLi5jNjQ5YTViIDEwMDY0NAot
LS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wMi0wMiAgRHJldyBXaWxzb24gIDxhdHdpbHNv
bkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyIHNob3VsZCBub3QgYmUgYW4gQWN0aXZl
RE9NT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNDUxMworCisgICAgICAgICogc3JjL1NoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyOjpTaGFyZWRXb3JrZXJTY3Jp
cHRMb2FkZXIpOgorICAgICAgICBDaGFuZ2VkIFNoYXJlZFdvcmtlclNjcmlwdExvYWRlciB0byBt
YW5hZ2UgaXRzIG93biBsaWZlY3ljbGUgd2l0aG91dCB1c2luZyBBY3RpdmVET01PYmplY3QuCisg
ICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI6OnBhcmVudENvbnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6cGVuZGluZ0xvYWRlcnMpOgorICAgICAgICBOb3cgd2UgbWFu
dWFsbHkgdHJhY2sgcGVuZGluZyBsb2FkcyBzbyB3ZSBjYW4gc2h1dCB0aGVtIGRvd24gd2hlbiB0
aGUgcGFyZW50IGNvbnRleHQgc2h1dHMgZG93bi4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdv
cmtlclNjcmlwdExvYWRlcjo6Y29udGV4dERldGFjaGVkKToKKyAgICAgICAgU2h1dHMgZG93bi9m
cmVlcyBhbnkgcGVuZGluZyB3b3JrZXIgbG9hZHMuCisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRX
b3JrZXJTY3JpcHRMb2FkZXI6On5TaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIpOgorICAgICAgICBN
YXJrcyB0aGUgU2hhcmVkV29ya2VyIG9iamVjdCBhcyBub3QgaGF2aW5nIHBlbmRpbmcgYWN0aXZp
dHkgaWYgdGhlcmUgd2FzIGEgbG9hZCBhY3RpdmUgKGhhbmRsZXMgY2FzZSB3aGVyZSBsb2FkIHdh
cyBwZW5kaW5nIHdoZW4gcGFyZW50IGRvY3VtZW50IGV4aXRzKS4KKyAgICAgICAgKFdlYkNvcmU6
OlNoYXJlZFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFy
ZWRXb3JrZXJSZXBvc2l0b3J5Ojpkb2N1bWVudERldGFjaGVkKToKKyAgICAgICAgTm93IGNhbGxz
IFNoYXJlZFdvcmtlclNjcmlwdExvYWRlcjo6Y29udGV4dERldGFjaGVkKCkgdG8gc2h1dGRvd24g
YW55IHBlbmRpbmcgd29ya2VyIGxvYWRzLgorCiAyMDEwLTAxLTMxICBLZW50IFRhbXVyYSAgPHRr
ZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBKZXJlbXkgT3Jsb3cuCmRp
ZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1NoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3Bw
IGIvV2ViS2l0L2Nocm9taXVtL3NyYy9TaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCA1
ZTViYzQ2Li42YjQwYmI5IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1NoYXJlZFdv
cmtlclJlcG9zaXRvcnkuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvU2hhcmVkV29ya2Vy
UmVwb3NpdG9yeS5jcHAKQEAgLTYxLDI2ICs2MSwzMCBAQCB1c2luZyBXZWJLaXQ6OldlYlNoYXJl
ZFdvcmtlcjsKIHVzaW5nIFdlYktpdDo6V2ViU2hhcmVkV29ya2VyUmVwb3NpdG9yeTsKIAogLy8g
Q2FsbGJhY2sgY2xhc3MgdGhhdCBrZWVwcyB0aGUgU2hhcmVkV29ya2VyIGFuZCBXZWJTaGFyZWRX
b3JrZXIgb2JqZWN0cyBhbGl2ZSB3aGlsZSBsb2FkcyBhcmUgcG90ZW50aWFsbHkgaGFwcGVuaW5n
LCBhbmQgYWxzbyB0cmFuc2xhdGVzIGxvYWQgZXJyb3JzIGludG8gZXJyb3IgZXZlbnRzIG9uIHRo
ZSB3b3JrZXIuCi1jbGFzcyBTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIgOiBwcml2YXRlIFdvcmtl
clNjcmlwdExvYWRlckNsaWVudCwgcHJpdmF0ZSBXZWJTaGFyZWRXb3JrZXI6OkNvbm5lY3RMaXN0
ZW5lciwgcHJpdmF0ZSBBY3RpdmVET01PYmplY3QgeworY2xhc3MgU2hhcmVkV29ya2VyU2NyaXB0
TG9hZGVyIDogcHJpdmF0ZSBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQsIHByaXZhdGUgV2ViU2hh
cmVkV29ya2VyOjpDb25uZWN0TGlzdGVuZXIgewogcHVibGljOgogICAgIFNoYXJlZFdvcmtlclNj
cmlwdExvYWRlcihQYXNzUmVmUHRyPFNoYXJlZFdvcmtlcj4gd29ya2VyLCBjb25zdCBLVVJMJiB1
cmwsIGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5uZWw+IHBv
cnQsIFBhc3NPd25QdHI8V2ViU2hhcmVkV29ya2VyPiB3ZWJXb3JrZXIpCi0gICAgICAgIDogQWN0
aXZlRE9NT2JqZWN0KHdvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB0aGlzKQotICAg
ICAgICAsIG1fd29ya2VyKHdvcmtlcikKKyAgICAgICAgOiBtX3dvcmtlcih3b3JrZXIpCiAgICAg
ICAgICwgbV91cmwodXJsKQogICAgICAgICAsIG1fbmFtZShuYW1lKQogICAgICAgICAsIG1fd2Vi
V29ya2VyKHdlYldvcmtlcikKICAgICAgICAgLCBtX3BvcnQocG9ydCkKKyAgICAgICAgLCBtX2xv
YWRQZW5kaW5nKGZhbHNlKQogICAgIHsKICAgICB9CiAKKyAgICB+U2hhcmVkV29ya2VyU2NyaXB0
TG9hZGVyKCk7CiAgICAgdm9pZCBsb2FkKCk7Ci0gICAgdmlydHVhbCB2b2lkIGNvbnRleHREZXN0
cm95ZWQoKTsKKyAgICBzdGF0aWMgdm9pZCBjb250ZXh0RGV0YWNoZWQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCopOworCiBwcml2YXRlOgogICAgIC8vIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCBj
YWxsYmFjawogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlGaW5pc2hlZCgpOwogCiAgICAgdmlydHVh
bCB2b2lkIGNvbm5lY3RlZCgpOwogCisgICAgY29uc3QgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCog
cGFyZW50Q29udGV4dCgpIHsgcmV0dXJuIG1fd29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7IH0KKwogICAgIHZvaWQgc2VuZENvbm5lY3QoKTsKIAogICAgIFJlZlB0cjxTaGFyZWRXb3Jr
ZXI+IG1fd29ya2VyOwpAQCAtODksMTUgKzkzLDQ3IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFdl
YlNoYXJlZFdvcmtlcj4gbV93ZWJXb3JrZXI7CiAgICAgT3duUHRyPE1lc3NhZ2VQb3J0Q2hhbm5l
bD4gbV9wb3J0OwogICAgIFdvcmtlclNjcmlwdExvYWRlciBtX3NjcmlwdExvYWRlcjsKKyAgICBi
b29sIG1fbG9hZFBlbmRpbmc7CiB9OwogCitzdGF0aWMgVmVjdG9yPFNoYXJlZFdvcmtlclNjcmlw
dExvYWRlcio+JiBwZW5kaW5nTG9hZGVycygpCit7CisgICAgQXRvbWljYWxseUluaXRpYWxpemVk
U3RhdGljKFZlY3RvcjxTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIqPiYsIGxvYWRlcnMgPSAqbmV3
IFZlY3RvcjxTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIqPik7CisgICAgcmV0dXJuIGxvYWRlcnM7
Cit9CisKK3ZvaWQgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyOjpjb250ZXh0RGV0YWNoZWQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKK3sKKyAgICAvLyBXYWxrIG91ciBsaXN0IG9m
IHBlbmRpbmcgbG9hZGVycyBhbmQgc2h1dGRvd24gYW55IHRoYXQgYmVsb25nIHRvIHRoaXMgY29u
dGV4dC4KKyAgICBWZWN0b3I8U2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyKj4mIGxvYWRlcnMgPSBw
ZW5kaW5nTG9hZGVycygpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsb2FkZXJzLnNp
emUoKTsgKSB7CisgICAgICAgIFNoYXJlZFdvcmtlclNjcmlwdExvYWRlciogbG9hZGVyID0gbG9h
ZGVyc1tpXTsKKyAgICAgICAgaWYgKGNvbnRleHQgPT0gbG9hZGVyLT5wYXJlbnRDb250ZXh0KCkp
IHsKKyAgICAgICAgICAgIGxvYWRlcnMucmVtb3ZlKGkpOworICAgICAgICAgICAgZGVsZXRlIGxv
YWRlcjsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICBpKys7CisgICAgfQorfQorCitTaGFy
ZWRXb3JrZXJTY3JpcHRMb2FkZXI6On5TaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIoKQoreworICAg
IGlmIChtX2xvYWRQZW5kaW5nKQorICAgICAgICBtX3dvcmtlci0+dW5zZXRQZW5kaW5nQWN0aXZp
dHkobV93b3JrZXIuZ2V0KCkpOworfQorCiB2b2lkIFNoYXJlZFdvcmtlclNjcmlwdExvYWRlcjo6
bG9hZCgpCiB7CisgICAgQVNTRVJUKCFtX2xvYWRQZW5kaW5nKTsKICAgICAvLyBJZiB0aGUgc2hh
cmVkIHdvcmtlciBpcyBub3QgeWV0IHJ1bm5pbmcsIGxvYWQgdGhlIHNjcmlwdCByZXNvdXJjZSBm
b3IgaXQsIG90aGVyd2lzZSBqdXN0IHNlbmQgaXQgYSBjb25uZWN0IGV2ZW50LgogICAgIGlmICht
X3dlYldvcmtlci0+aXNTdGFydGVkKCkpCiAgICAgICAgIHNlbmRDb25uZWN0KCk7Ci0gICAgZWxz
ZQorICAgIGVsc2UgewogICAgICAgICBtX3NjcmlwdExvYWRlci5sb2FkQXN5bmNocm9ub3VzbHko
bV93b3JrZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV91cmwsIERlbnlDcm9zc09yaWdp
blJlcXVlc3RzLCB0aGlzKTsKKyAgICAgICAgLy8gS2VlcCB0aGUgd29ya2VyICsgSlMgd3JhcHBl
ciBhbGl2ZSB1bnRpbCB0aGUgcmVzb3VyY2UgbG9hZCBpcyBjb21wbGV0ZSBpbiBjYXNlIHdlIG5l
ZWQgdG8gZGlzcGF0Y2ggYW4gZXJyb3IgZXZlbnQuCisgICAgICAgIG1fd29ya2VyLT5zZXRQZW5k
aW5nQWN0aXZpdHkobV93b3JrZXIuZ2V0KCkpOworICAgICAgICBtX2xvYWRQZW5kaW5nID0gdHJ1
ZTsKKyAgICB9CiB9CiAKIC8vIEV4dHJhY3RzIGEgV2ViTWVzc2FnZVBvcnRDaGFubmVsIGZyb20g
YSBNZXNzYWdlUG9ydENoYW5uZWwuCkBAIC0xMjgsMTIgKzE2NCw2IEBAIHZvaWQgU2hhcmVkV29y
a2VyU2NyaXB0TG9hZGVyOjpzZW5kQ29ubmVjdCgpCiAgICAgbV93ZWJXb3JrZXItPmNvbm5lY3Qo
Z2V0V2ViUG9ydChtX3BvcnQucmVsZWFzZSgpKSwgdGhpcyk7CiB9CiAKLXZvaWQgU2hhcmVkV29y
a2VyU2NyaXB0TG9hZGVyOjpjb250ZXh0RGVzdHJveWVkKCkKLXsKLSAgICBBY3RpdmVET01PYmpl
Y3Q6OmNvbnRleHREZXN0cm95ZWQoKTsKLSAgICBkZWxldGUgdGhpczsKLX0KLQogdm9pZCBTaGFy
ZWRXb3JrZXJTY3JpcHRMb2FkZXI6OmNvbm5lY3RlZCgpCiB7CiAgICAgLy8gQ29ubmVjdCBldmVu
dCBoYXMgYmVlbiBzZW50LCBzbyBmcmVlIG91cnNlbHZlcyAodGhpcyByZWxlYXNlcyB0aGUgU2hh
cmVkV29ya2VyIHNvIGl0IGNhbiBiZSBmcmVlZCBhcyB3ZWxsIGlmIHVucmVmZXJlbmNlZCkuCkBA
IC0xODUsNiArMjE1LDEwIEBAIHZvaWQgU2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6ZG9jdW1lbnRE
ZXRhY2hlZChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgV2ViU2hhcmVkV29ya2VyUmVwb3NpdG9y
eSogcmVwbyA9IFdlYktpdDo6d2ViS2l0Q2xpZW50KCktPnNoYXJlZFdvcmtlclJlcG9zaXRvcnko
KTsKICAgICBpZiAocmVwbykKICAgICAgICAgcmVwby0+ZG9jdW1lbnREZXRhY2hlZChnZXRJZChk
b2N1bWVudCkpOworCisgICAgLy8gU3RvcCB0aGUgY3JlYXRpb24gb2YgYW55IHBlbmRpbmcgU2hh
cmVkV29ya2VycyBmb3IgdGhpcyBjb250ZXh0LgorICAgIC8vIEZJWE1FOiBOZWVkIGEgd2F5IHRv
IGludm9rZSB0aGlzIGZvciBXb3JrZXJDb250ZXh0cyBhcyB3ZWxsIHdoZW4gd2Ugc3VwcG9ydCBm
b3IgbmVzdGVkIHdvcmtlcnMuCisgICAgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyOjpjb250ZXh0
RGV0YWNoZWQoZG9jdW1lbnQpOwogfQogCiBib29sIFNoYXJlZFdvcmtlclJlcG9zaXRvcnk6Omhh
c1NoYXJlZFdvcmtlcnMoRG9jdW1lbnQqIGRvY3VtZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48056</attachid>
            <date>2010-02-03 11:22:27 -0800</date>
            <delta_ts>2010-02-03 12:14:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34513-20100203112225.patch</filename>
            <type>text/plain</type>
            <size>10718</size>
            <attacher name="Andrew Wilson">atwilson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDRmZjM5Ni4uOTFmOTA1MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMC0wMi0wMiAgRHJldyBXaWxzb24g
IDxhdHdpbHNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyIHNob3VsZCBub3QgYmUg
YW4gQWN0aXZlRE9NT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNDUxMworCisgICAgICAgIFRlc3Q6IEV4aXN0aW5nIHRlc3RzIHN1ZmZpY2Ug
KGZpeGVzIHRlc3QgZG93bnN0cmVhbSBpbiBDaHJvbWUpLgorCisgICAgICAgICogd29ya2Vycy9E
ZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaGFy
ZWRXb3JrZXJTY3JpcHRMb2FkZXI6OlNoYXJlZFdvcmtlclNjcmlwdExvYWRlcik6CisgICAgICAg
IENoYW5nZWQgdG8gbm8gbG9uZ2VyIGRlcml2ZSBmcm9tIEFjdGl2ZURPTU9iamVjdCAoaGFuZGxl
cyBpdHMgb3duIHJlZmNvdW50aW5nKS4KKyAgICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclNj
cmlwdExvYWRlcjo6bG9hZCk6CisgICAgICAgIE5vdyBpbmNyZW1lbnRzIG93biByZWZjb3VudCB3
aGVuIGEgbG9hZCBpcyBwZW5kaW5nLgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyU2Ny
aXB0TG9hZGVyOjpub3RpZnlGaW5pc2hlZCk6CisgICAgICAgIENoYW5nZWQgdG8gZGVjcmVtZW50
IHJlZmNvdW50IHdoZW4gbG9hZCBpcyBjb21wbGV0ZS4KKyAgICAgICAgKiB3b3JrZXJzL1dvcmtl
clNjcmlwdExvYWRlckNsaWVudC5oOgorICAgICAgICBEb2N1bWVudGF0aW9uIGNoYW5nZSBhYm91
dCByZWxpYWJpbGl0eSBvZiBub3RpZnlGaW5pc2hlZCgpIHdoZW4gdXNlZCBmcm9tIHdvcmtlciBj
b250ZXh0LgorCiAyMDEwLTAyLTAxICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlh
LmNvbT4KIAogICAgICAgICBSdWJiZXIgc3RhbXBlZCBieSBYYW4gTG9wZXouCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwIGIvV2Vi
Q29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcAppbmRleCA2NTVi
OTBlLi5lNGZhNWQzIDEwMDY0NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNoYXJlZFdv
cmtlclJlcG9zaXRvcnkuY3BwCisrKyBiL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29y
a2VyUmVwb3NpdG9yeS5jcHAKQEAgLTI0OCw3ICsyNDgsNyBAQCBwcml2YXRlOgogfTsKIAogLy8g
TG9hZHMgdGhlIHNjcmlwdCBvbiBiZWhhbGYgb2YgYSB3b3JrZXIuCi1jbGFzcyBTaGFyZWRXb3Jr
ZXJTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxTaGFyZWRXb3JrZXJTY3JpcHRMb2Fk
ZXI+LCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdvcmtlclNjcmlwdExvYWRlckNs
aWVudCB7CitjbGFzcyBTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIgOiBwdWJsaWMgUmVmQ291bnRl
ZDxTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI+LCBwcml2YXRlIFdvcmtlclNjcmlwdExvYWRlckNs
aWVudCB7CiBwdWJsaWM6CiAgICAgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyKFBhc3NSZWZQdHI8
U2hhcmVkV29ya2VyPiwgUGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5uZWw+LCBQYXNzUmVmUHRy
PFNoYXJlZFdvcmtlclByb3h5Pik7CiAgICAgdm9pZCBsb2FkKGNvbnN0IEtVUkwmKTsKQEAgLTI2
NCw4ICsyNjQsNyBAQCBwcml2YXRlOgogfTsKIAogU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyOjpT
aGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIoUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXI+IHdvcmtlciwg
UGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5uZWw+IHBvcnQsIFBhc3NSZWZQdHI8U2hhcmVkV29y
a2VyUHJveHk+IHByb3h5KQotICAgIDogQWN0aXZlRE9NT2JqZWN0KHdvcmtlci0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLCB0aGlzKQotICAgICwgbV93b3JrZXIod29ya2VyKQorICAgIDogbV93
b3JrZXIod29ya2VyKQogICAgICwgbV9wb3J0KHBvcnQpCiAgICAgLCBtX3Byb3h5KHByb3h5KQog
ewpAQCAtMjc0LDI1ICsyNzMsMjcgQEAgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyOjpTaGFyZWRX
b3JrZXJTY3JpcHRMb2FkZXIoUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXI+IHdvcmsKIHZvaWQgU2hh
cmVkV29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkKGNvbnN0IEtVUkwmIHVybCkKIHsKICAgICAvLyBN
YXJrIHRoaXMgb2JqZWN0IGFzIGFjdGl2ZSBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBsb2FkLgot
ICAgIEFTU0VSVCghaGFzUGVuZGluZ0FjdGl2aXR5KCkpOwogICAgIG1fc2NyaXB0TG9hZGVyID0g
bmV3IFdvcmtlclNjcmlwdExvYWRlcigpOwotICAgIG1fc2NyaXB0TG9hZGVyLT5sb2FkQXN5bmNo
cm9ub3VzbHkoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCB1cmwsIERlbnlDcm9zc09yaWdpblJl
cXVlc3RzLCB0aGlzKTsKKyAgICBtX3NjcmlwdExvYWRlci0+bG9hZEFzeW5jaHJvbm91c2x5KG1f
d29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIHVybCwgRGVueUNyb3NzT3JpZ2luUmVx
dWVzdHMsIHRoaXMpOwogCi0gICAgLy8gU3RheSBhbGl2ZSB1bnRpbCB0aGUgbG9hZCBmaW5pc2hl
cy4KLSAgICBzZXRQZW5kaW5nQWN0aXZpdHkodGhpcyk7CisgICAgLy8gU3RheSBhbGl2ZSAoYW5k
IGtlZXAgdGhlIFNoYXJlZFdvcmtlciBhbmQgSlMgd3JhcHBlciBhbGl2ZSkgdW50aWwgdGhlIGxv
YWQgZmluaXNoZXMuCisgICAgdGhpcy0+cmVmKCk7CiAgICAgbV93b3JrZXItPnNldFBlbmRpbmdB
Y3Rpdml0eShtX3dvcmtlci5nZXQoKSk7CiB9CiAKIHZvaWQgU2hhcmVkV29ya2VyU2NyaXB0TG9h
ZGVyOjpub3RpZnlGaW5pc2hlZCgpCiB7CisgICAgLy8gRklYTUU6IFRoaXMgbWV0aG9kIGlzIG5v
dCBndWFyYW50ZWVkIHRvIGJlIGludm9rZWQgaWYgd2UgYXJlIGxvYWRpbmcgZnJvbSBXb3JrZXJD
b250ZXh0IChzZWUgY29tbWVudCBmb3IgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50Ojpub3RpZnlG
aW5pc2hlZCgpKS4KKyAgICAvLyBXZSBuZWVkIHRvIGFkZHJlc3MgdGhpcyBiZWZvcmUgc3VwcG9y
dGluZyBuZXN0ZWQgd29ya2Vycy4KKwogICAgIC8vIEhhbmQgb2ZmIHRoZSBqdXN0LWxvYWRlZCBj
b2RlIHRvIHRoZSByZXBvc2l0b3J5IHRvIHN0YXJ0IHVwIHRoZSB3b3JrZXIgdGhyZWFkLgogICAg
IGlmIChtX3NjcmlwdExvYWRlci0+ZmFpbGVkKCkpCiAgICAgICAgIG1fd29ya2VyLT5kaXNwYXRj
aEV2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmVycm9yRXZlbnQsIGZhbHNlLCB0cnVl
KSk7CiAgICAgZWxzZQotICAgICAgICBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6aW5z
dGFuY2UoKS53b3JrZXJTY3JpcHRMb2FkZWQoKm1fcHJveHksIHNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+dXNlckFnZW50KG1fc2NyaXB0TG9hZGVyLT51cmwoKSksIG1fc2NyaXB0TG9hZGVyLT5z
Y3JpcHQoKSwgbV9wb3J0LnJlbGVhc2UoKSk7CisgICAgICAgIERlZmF1bHRTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5OjppbnN0YW5jZSgpLndvcmtlclNjcmlwdExvYWRlZCgqbV9wcm94eSwgbV93b3Jr
ZXItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXNlckFnZW50KG1fc2NyaXB0TG9hZGVyLT51
cmwoKSksIG1fc2NyaXB0TG9hZGVyLT5zY3JpcHQoKSwgbV9wb3J0LnJlbGVhc2UoKSk7CiAKICAg
ICBtX3dvcmtlci0+dW5zZXRQZW5kaW5nQWN0aXZpdHkobV93b3JrZXIuZ2V0KCkpOwotICAgIHVu
c2V0UGVuZGluZ0FjdGl2aXR5KHRoaXMpOyAvLyBUaGlzIGZyZWVzIHRoaXMgb2JqZWN0IC0gbXVz
dCBiZSB0aGUgbGFzdCBhY3Rpb24gaW4gdGhpcyBmdW5jdGlvbi4KKyAgICB0aGlzLT5kZXJlZigp
OyAvLyBUaGlzIGZyZWVzIHRoaXMgb2JqZWN0IC0gbXVzdCBiZSB0aGUgbGFzdCBhY3Rpb24gaW4g
dGhpcyBmdW5jdGlvbi4KIH0KIAogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkmIERlZmF1
bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5OjppbnN0YW5jZSgpCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmggYi9XZWJDb3JlL3dvcmtlcnMvV29y
a2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgKaW5kZXggZTM5MDNjMC4uN2RjM2ExZSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlckNsaWVudC5oCisrKyBiL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQuaApAQCAtMzQsOCArMzQsMTAgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50
IHsKICAgICBwdWJsaWM6CisgICAgICAgIC8vIEZJWE1FOiBub3RpZnlGaW5pc2hlZCgpIGlzIG5v
dCBjdXJyZW50bHkgZ3VhcmFudGVlZCB0byBiZSBpbnZva2VkIGlmIHVzZWQgZnJvbSB3b3JrZXIg
Y29udGV4dCBhbmQgdGhlIHdvcmtlciBzaHV0cyBkb3duIGluIHRoZSBtaWRkbGUgb2YgYW4gb3Bl
cmF0aW9uLgorICAgICAgICAvLyBUaGlzIHdpbGwgY2F1c2UgbGVha3Mgd2hlbiB3ZSBzdXBwb3J0
IG5lc3RlZCB3b3JrZXJzLgogICAgICAgICB2aXJ0dWFsIHZvaWQgbm90aWZ5RmluaXNoZWQoKSB7
IH0KLSAgICAgICAgCisKICAgICBwcm90ZWN0ZWQ6CiAgICAgICAgIHZpcnR1YWwgfldvcmtlclNj
cmlwdExvYWRlckNsaWVudCgpIHsgfQogICAgIH07CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA2YThlNzZhLi5j
NjQ5YTViIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMC0wMi0wMiAgRHJldyBX
aWxzb24gIDxhdHdpbHNvbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyIHNob3VsZCBu
b3QgYmUgYW4gQWN0aXZlRE9NT2JqZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0zNDUxMworCisgICAgICAgICogc3JjL1NoYXJlZFdvcmtlclJlcG9z
aXRvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyOjpT
aGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIpOgorICAgICAgICBDaGFuZ2VkIFNoYXJlZFdvcmtlclNj
cmlwdExvYWRlciB0byBtYW5hZ2UgaXRzIG93biBsaWZlY3ljbGUgd2l0aG91dCB1c2luZyBBY3Rp
dmVET01PYmplY3QuCisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI6
OnBhcmVudENvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6cGVuZGluZ0xvYWRlcnMpOgorICAg
ICAgICBOb3cgd2UgbWFudWFsbHkgdHJhY2sgcGVuZGluZyBsb2FkcyBzbyB3ZSBjYW4gc2h1dCB0
aGVtIGRvd24gd2hlbiB0aGUgcGFyZW50IGNvbnRleHQgc2h1dHMgZG93bi4KKyAgICAgICAgKFdl
YkNvcmU6OlNoYXJlZFdvcmtlclNjcmlwdExvYWRlcjo6Y29udGV4dERldGFjaGVkKToKKyAgICAg
ICAgU2h1dHMgZG93bi9mcmVlcyBhbnkgcGVuZGluZyB3b3JrZXIgbG9hZHMuCisgICAgICAgIChX
ZWJDb3JlOjpTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI6On5TaGFyZWRXb3JrZXJTY3JpcHRMb2Fk
ZXIpOgorICAgICAgICBNYXJrcyB0aGUgU2hhcmVkV29ya2VyIG9iamVjdCBhcyBub3QgaGF2aW5n
IHBlbmRpbmcgYWN0aXZpdHkgaWYgdGhlcmUgd2FzIGEgbG9hZCBhY3RpdmUgKGhhbmRsZXMgY2Fz
ZSB3aGVyZSBsb2FkIHdhcyBwZW5kaW5nIHdoZW4gcGFyZW50IGRvY3VtZW50IGV4aXRzKS4KKyAg
ICAgICAgKFdlYkNvcmU6OlNoYXJlZFdvcmtlclNjcmlwdExvYWRlcjo6bG9hZCk6CisgICAgICAg
IChXZWJDb3JlOjpTaGFyZWRXb3JrZXJSZXBvc2l0b3J5Ojpkb2N1bWVudERldGFjaGVkKToKKyAg
ICAgICAgTm93IGNhbGxzIFNoYXJlZFdvcmtlclNjcmlwdExvYWRlcjo6Y29udGV4dERldGFjaGVk
KCkgdG8gc2h1dGRvd24gYW55IHBlbmRpbmcgd29ya2VyIGxvYWRzLgorCiAyMDEwLTAxLTMxICBL
ZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBK
ZXJlbXkgT3Jsb3cuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1NoYXJlZFdvcmtl
clJlcG9zaXRvcnkuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9TaGFyZWRXb3JrZXJSZXBvc2l0
b3J5LmNwcAppbmRleCA1ZTViYzQ2Li5jODAzYWFjIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vc3JjL1NoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9z
cmMvU2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKQEAgLTYxLDI2ICs2MSwzMCBAQCB1c2luZyBX
ZWJLaXQ6OldlYlNoYXJlZFdvcmtlcjsKIHVzaW5nIFdlYktpdDo6V2ViU2hhcmVkV29ya2VyUmVw
b3NpdG9yeTsKIAogLy8gQ2FsbGJhY2sgY2xhc3MgdGhhdCBrZWVwcyB0aGUgU2hhcmVkV29ya2Vy
IGFuZCBXZWJTaGFyZWRXb3JrZXIgb2JqZWN0cyBhbGl2ZSB3aGlsZSBsb2FkcyBhcmUgcG90ZW50
aWFsbHkgaGFwcGVuaW5nLCBhbmQgYWxzbyB0cmFuc2xhdGVzIGxvYWQgZXJyb3JzIGludG8gZXJy
b3IgZXZlbnRzIG9uIHRoZSB3b3JrZXIuCi1jbGFzcyBTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXIg
OiBwcml2YXRlIFdvcmtlclNjcmlwdExvYWRlckNsaWVudCwgcHJpdmF0ZSBXZWJTaGFyZWRXb3Jr
ZXI6OkNvbm5lY3RMaXN0ZW5lciwgcHJpdmF0ZSBBY3RpdmVET01PYmplY3QgeworY2xhc3MgU2hh
cmVkV29ya2VyU2NyaXB0TG9hZGVyIDogcHJpdmF0ZSBXb3JrZXJTY3JpcHRMb2FkZXJDbGllbnQs
IHByaXZhdGUgV2ViU2hhcmVkV29ya2VyOjpDb25uZWN0TGlzdGVuZXIgewogcHVibGljOgogICAg
IFNoYXJlZFdvcmtlclNjcmlwdExvYWRlcihQYXNzUmVmUHRyPFNoYXJlZFdvcmtlcj4gd29ya2Vy
LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgbmFtZSwgUGFzc093blB0cjxNZXNzYWdl
UG9ydENoYW5uZWw+IHBvcnQsIFBhc3NPd25QdHI8V2ViU2hhcmVkV29ya2VyPiB3ZWJXb3JrZXIp
Ci0gICAgICAgIDogQWN0aXZlRE9NT2JqZWN0KHdvcmtlci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLCB0aGlzKQotICAgICAgICAsIG1fd29ya2VyKHdvcmtlcikKKyAgICAgICAgOiBtX3dvcmtl
cih3b3JrZXIpCiAgICAgICAgICwgbV91cmwodXJsKQogICAgICAgICAsIG1fbmFtZShuYW1lKQog
ICAgICAgICAsIG1fd2ViV29ya2VyKHdlYldvcmtlcikKICAgICAgICAgLCBtX3BvcnQocG9ydCkK
KyAgICAgICAgLCBtX2xvYWRpbmcoZmFsc2UpCiAgICAgewogICAgIH0KIAorICAgIH5TaGFyZWRX
b3JrZXJTY3JpcHRMb2FkZXIoKTsKICAgICB2b2lkIGxvYWQoKTsKLSAgICB2aXJ0dWFsIHZvaWQg
Y29udGV4dERlc3Ryb3llZCgpOworICAgIHN0YXRpYyB2b2lkIHN0b3BBbGxMb2FkZXJzRm9yQ29u
dGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kik7CisKIHByaXZhdGU6CiAgICAgLy8gV29ya2Vy
U2NyaXB0TG9hZGVyQ2xpZW50IGNhbGxiYWNrCiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZpbmlz
aGVkKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgY29ubmVjdGVkKCk7CiAKKyAgICBjb25zdCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiBsb2FkaW5nQ29udGV4dCgpIHsgcmV0dXJuIG1fd29ya2VyLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7IH0KKwogICAgIHZvaWQgc2VuZENvbm5lY3QoKTsKIAog
ICAgIFJlZlB0cjxTaGFyZWRXb3JrZXI+IG1fd29ya2VyOwpAQCAtODksMTUgKzkzLDQ3IEBAIHBy
aXZhdGU6CiAgICAgT3duUHRyPFdlYlNoYXJlZFdvcmtlcj4gbV93ZWJXb3JrZXI7CiAgICAgT3du
UHRyPE1lc3NhZ2VQb3J0Q2hhbm5lbD4gbV9wb3J0OwogICAgIFdvcmtlclNjcmlwdExvYWRlciBt
X3NjcmlwdExvYWRlcjsKKyAgICBib29sIG1fbG9hZGluZzsKIH07CiAKK3N0YXRpYyBWZWN0b3I8
U2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyKj4mIHBlbmRpbmdMb2FkZXJzKCkKK3sKKyAgICBBdG9t
aWNhbGx5SW5pdGlhbGl6ZWRTdGF0aWMoVmVjdG9yPFNoYXJlZFdvcmtlclNjcmlwdExvYWRlcio+
JiwgbG9hZGVycyA9ICpuZXcgVmVjdG9yPFNoYXJlZFdvcmtlclNjcmlwdExvYWRlcio+KTsKKyAg
ICByZXR1cm4gbG9hZGVyczsKK30KKwordm9pZCBTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI6OnN0
b3BBbGxMb2FkZXJzRm9yQ29udGV4dChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQor
eworICAgIC8vIFdhbGsgb3VyIGxpc3Qgb2YgcGVuZGluZyBsb2FkZXJzIGFuZCBzaHV0ZG93biBh
bnkgdGhhdCBiZWxvbmcgdG8gdGhpcyBjb250ZXh0LgorICAgIFZlY3RvcjxTaGFyZWRXb3JrZXJT
Y3JpcHRMb2FkZXIqPiYgbG9hZGVycyA9IHBlbmRpbmdMb2FkZXJzKCk7CisgICAgZm9yICh1bnNp
Z25lZCBpID0gMDsgaSA8IGxvYWRlcnMuc2l6ZSgpOyApIHsKKyAgICAgICAgU2hhcmVkV29ya2Vy
U2NyaXB0TG9hZGVyKiBsb2FkZXIgPSBsb2FkZXJzW2ldOworICAgICAgICBpZiAoY29udGV4dCA9
PSBsb2FkZXItPmxvYWRpbmdDb250ZXh0KCkpIHsKKyAgICAgICAgICAgIGxvYWRlcnMucmVtb3Zl
KGkpOworICAgICAgICAgICAgZGVsZXRlIGxvYWRlcjsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICBpKys7CisgICAgfQorfQorCitTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI6On5TaGFyZWRX
b3JrZXJTY3JpcHRMb2FkZXIoKQoreworICAgIGlmIChtX2xvYWRpbmcpCisgICAgICAgIG1fd29y
a2VyLT51bnNldFBlbmRpbmdBY3Rpdml0eShtX3dvcmtlci5nZXQoKSk7Cit9CisKIHZvaWQgU2hh
cmVkV29ya2VyU2NyaXB0TG9hZGVyOjpsb2FkKCkKIHsKKyAgICBBU1NFUlQoIW1fbG9hZGluZyk7
CiAgICAgLy8gSWYgdGhlIHNoYXJlZCB3b3JrZXIgaXMgbm90IHlldCBydW5uaW5nLCBsb2FkIHRo
ZSBzY3JpcHQgcmVzb3VyY2UgZm9yIGl0LCBvdGhlcndpc2UganVzdCBzZW5kIGl0IGEgY29ubmVj
dCBldmVudC4KICAgICBpZiAobV93ZWJXb3JrZXItPmlzU3RhcnRlZCgpKQogICAgICAgICBzZW5k
Q29ubmVjdCgpOwotICAgIGVsc2UKKyAgICBlbHNlIHsKICAgICAgICAgbV9zY3JpcHRMb2FkZXIu
bG9hZEFzeW5jaHJvbm91c2x5KG1fd29ya2VyLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCksIG1f
dXJsLCBEZW55Q3Jvc3NPcmlnaW5SZXF1ZXN0cywgdGhpcyk7CisgICAgICAgIC8vIEtlZXAgdGhl
IHdvcmtlciArIEpTIHdyYXBwZXIgYWxpdmUgdW50aWwgdGhlIHJlc291cmNlIGxvYWQgaXMgY29t
cGxldGUgaW4gY2FzZSB3ZSBuZWVkIHRvIGRpc3BhdGNoIGFuIGVycm9yIGV2ZW50LgorICAgICAg
ICBtX3dvcmtlci0+c2V0UGVuZGluZ0FjdGl2aXR5KG1fd29ya2VyLmdldCgpKTsKKyAgICAgICAg
bV9sb2FkaW5nID0gdHJ1ZTsKKyAgICB9CiB9CiAKIC8vIEV4dHJhY3RzIGEgV2ViTWVzc2FnZVBv
cnRDaGFubmVsIGZyb20gYSBNZXNzYWdlUG9ydENoYW5uZWwuCkBAIC0xMjgsMTIgKzE2NCw2IEBA
IHZvaWQgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyOjpzZW5kQ29ubmVjdCgpCiAgICAgbV93ZWJX
b3JrZXItPmNvbm5lY3QoZ2V0V2ViUG9ydChtX3BvcnQucmVsZWFzZSgpKSwgdGhpcyk7CiB9CiAK
LXZvaWQgU2hhcmVkV29ya2VyU2NyaXB0TG9hZGVyOjpjb250ZXh0RGVzdHJveWVkKCkKLXsKLSAg
ICBBY3RpdmVET01PYmplY3Q6OmNvbnRleHREZXN0cm95ZWQoKTsKLSAgICBkZWxldGUgdGhpczsK
LX0KLQogdm9pZCBTaGFyZWRXb3JrZXJTY3JpcHRMb2FkZXI6OmNvbm5lY3RlZCgpCiB7CiAgICAg
Ly8gQ29ubmVjdCBldmVudCBoYXMgYmVlbiBzZW50LCBzbyBmcmVlIG91cnNlbHZlcyAodGhpcyBy
ZWxlYXNlcyB0aGUgU2hhcmVkV29ya2VyIHNvIGl0IGNhbiBiZSBmcmVlZCBhcyB3ZWxsIGlmIHVu
cmVmZXJlbmNlZCkuCkBAIC0xODUsNiArMjE1LDEwIEBAIHZvaWQgU2hhcmVkV29ya2VyUmVwb3Np
dG9yeTo6ZG9jdW1lbnREZXRhY2hlZChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgV2ViU2hhcmVk
V29ya2VyUmVwb3NpdG9yeSogcmVwbyA9IFdlYktpdDo6d2ViS2l0Q2xpZW50KCktPnNoYXJlZFdv
cmtlclJlcG9zaXRvcnkoKTsKICAgICBpZiAocmVwbykKICAgICAgICAgcmVwby0+ZG9jdW1lbnRE
ZXRhY2hlZChnZXRJZChkb2N1bWVudCkpOworCisgICAgLy8gU3RvcCB0aGUgY3JlYXRpb24gb2Yg
YW55IHBlbmRpbmcgU2hhcmVkV29ya2VycyBmb3IgdGhpcyBjb250ZXh0LgorICAgIC8vIEZJWE1F
OiBOZWVkIGEgd2F5IHRvIGludm9rZSB0aGlzIGZvciBXb3JrZXJDb250ZXh0cyBhcyB3ZWxsIHdo
ZW4gd2Ugc3VwcG9ydCBmb3IgbmVzdGVkIHdvcmtlcnMuCisgICAgU2hhcmVkV29ya2VyU2NyaXB0
TG9hZGVyOjpzdG9wQWxsTG9hZGVyc0ZvckNvbnRleHQoZG9jdW1lbnQpOwogfQogCiBib29sIFNo
YXJlZFdvcmtlclJlcG9zaXRvcnk6Omhhc1NoYXJlZFdvcmtlcnMoRG9jdW1lbnQqIGRvY3VtZW50
KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>