<?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>18231</bug_id>
          
          <creation_ts>2008-03-30 23:55:33 -0700</creation_ts>
          <short_desc>Improve support for function call nodes in SquirrelFish</short_desc>
          <delta_ts>2008-04-11 03:26:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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="Cameron Zwarich (cpst)">zwarich</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ggaren</cc>
    
    <cc>mjs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>75907</commentid>
    <comment_count>0</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-03-30 23:55:33 -0700</bug_when>
    <thetext>I have a patch that implements FunctionCallValueNode and corrects the handling of &apos;this&apos;. I&apos;ll upload it in the next post.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75908</commentid>
    <comment_count>1</comment_count>
      <attachid>20231</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-03-31 00:02:29 -0700</bug_when>
    <thetext>Created attachment 20231
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75909</commentid>
    <comment_count>2</comment_count>
      <attachid>20232</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-03-31 00:06:44 -0700</bug_when>
    <thetext>Created attachment 20232
Proposed patch (now with email!)

When I made a new ChangeLog after Geoff&apos;s latest patch I forgot to add my email address.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75911</commentid>
    <comment_count>3</comment_count>
      <attachid>20232</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-03-31 00:42:48 -0700</bug_when>
    <thetext>Comment on attachment 20232
Proposed patch (now with email!)

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75917</commentid>
    <comment_count>4</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-03-31 01:36:18 -0700</bug_when>
    <thetext>After r31455, I hit a SquirrelSpider regression of about 3%. I&apos;ll try to work it out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75918</commentid>
    <comment_count>5</comment_count>
      <attachid>20234</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-03-31 01:45:41 -0700</bug_when>
    <thetext>Created attachment 20234
Revised proposed patch

Here is a fairly trivial patch containing only the support for FunctionCallValueNode. This doesn&apos;t regress SunSpider.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>75919</commentid>
    <comment_count>6</comment_count>
      <attachid>20234</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-03-31 01:46:16 -0700</bug_when>
    <thetext>Comment on attachment 20234
Revised proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76005</commentid>
    <comment_count>7</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-03-31 15:18:14 -0700</bug_when>
    <thetext>Committed in revision 31456.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76013</commentid>
    <comment_count>8</comment_count>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-03-31 15:44:28 -0700</bug_when>
    <thetext>This isn&apos;t actually fixed, because I had to remove part of the patch due to a performance regression. It is required functionality, so hopefully I can find a way to avoid the performance problems by permuting the code a bit to make GCC happy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77234</commentid>
    <comment_count>9</comment_count>
      <attachid>20469</attachid>
    <who name="Cameron Zwarich (cpst)">zwarich</who>
    <bug_when>2008-04-10 20:54:14 -0700</bug_when>
    <thetext>Created attachment 20469
Proposed patch

I figured I would revisit this, and it turned out to be a SunSpider progression. What a strange world we live in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77235</commentid>
    <comment_count>10</comment_count>
      <attachid>20469</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-04-10 20:57:47 -0700</bug_when>
    <thetext>Comment on attachment 20469
Proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77267</commentid>
    <comment_count>11</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2008-04-11 03:26:34 -0700</bug_when>
    <thetext>Committed r31810</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20231</attachid>
            <date>2008-03-31 00:02:29 -0700</date>
            <delta_ts>2008-03-31 00:06:44 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>functions2.diff</filename>
            <type>text/plain</type>
            <size>8310</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMxNDUz
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMDgtMDMt
MzAgIENhbWVyb24gIDxzZXQgRU1BSUxfQUREUkVTUyBlbnZpcm9ubWVudCB2YXJpYWJsZT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc3VwcG9y
dCBmb3IgRnVuY3Rpb25DYWxsVmFsdWVOb2RlIGFuZCBjb3JyZWN0IHRoZSBoYW5kbGluZyBvZiB0
aGUgJ3RoaXMnIG9iamVjdC4KKworICAgICAgICAqIFZNL0NvZGVCbG9jay5jcHA6CisgICAgICAg
IChLSlM6OkNvZGVCbG9jazo6ZHVtcCk6CisgICAgICAgICogVk0vQ29kZUdlbmVyYXRvci5jcHA6
CisgICAgICAgIChLSlM6OkNvZGVHZW5lcmF0b3I6OmVtaXRSZXNvbHZlQmFzZUFuZEZ1bmMpOgor
ICAgICAgICAqIFZNL0NvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBWTS9NYWNoaW5lLmNwcDoK
KyAgICAgICAgKEtKUzo6cmVzb2x2ZUJhc2VBbmRGdW5jKToKKyAgICAgICAgKEtKUzo6TWFjaGlu
ZTo6cHJpdmF0ZUV4ZWN1dGUpOgorICAgICAgICAqIFZNL09wY29kZS5oOgorICAgICAgICAqIGtq
cy9ub2Rlcy5jcHA6CisgICAgICAgIChLSlM6OkZ1bmN0aW9uQ2FsbFZhbHVlTm9kZTo6ZW1pdENv
ZGUpOgorICAgICAgICAoS0pTOjpGdW5jdGlvbkNhbGxSZXNvbHZlTm9kZTo6ZW1pdENvZGUpOgor
ICAgICAgICAqIGtqcy9ub2Rlcy5oOgorCiAyMDA4LTAzLTMwICBHZW9mZnJleSBHYXJlbiAgPGdn
YXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCkluZGV4
OiBWTS9Db2RlQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFZNL0NvZGVCbG9jay5jcHAJKHJldmlz
aW9uIDMxNDUzKQorKysgVk0vQ29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ4LDYg
KzI0OCwxMyBAQCB2b2lkIENvZGVCbG9jazo6ZHVtcChFeGVjU3RhdGUqIGV4ZWMsIGNvCiAgICAg
ICAgICAgICBwcmludGYoIlslNGRdIHJlc29sdmVfYmFzZVx0JXMsICVzXG4iLCBsb2NhdGlvbiwg
cmVnaXN0ZXJOYW1lKHIwKS5jX3N0cigpLCBpZE5hbWUoaWQwLCBpZGVudGlmaWVyc1tpZDBdKS5j
X3N0cigpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CisgICAgICAgIGNhc2Ugb3Bf
cmVzb2x2ZV9iYXNlX2FuZF9mdW5jOiB7CisgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCktPnUu
b3BlcmFuZDsKKyAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAg
ICAgICAgaW50IGlkMCA9ICgrK2l0KS0+dS5vcGVyYW5kOworICAgICAgICAgICAgcHJpbnRmKCJb
JTRkXSByZXNvbHZlX2Jhc2VfYW5kX2Z1bmNcdCVzLCAlcywgJXNcbiIsIGxvY2F0aW9uLCByZWdp
c3Rlck5hbWUocjApLmNfc3RyKCksIHJlZ2lzdGVyTmFtZShyMSkuY19zdHIoKSwgaWROYW1lKGlk
MCwgaWRlbnRpZmllcnNbaWQwXSkuY19zdHIoKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQogICAgICAgICBjYXNlIG9wX29iamVjdF9nZXQ6IHsKICAgICAgICAgICAgIGludCByMCA9
ICgrK2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJh
bmQ7CkluZGV4OiBWTS9Db2RlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9Db2RlR2Vu
ZXJhdG9yLmNwcAkocmV2aXNpb24gMzE0NTMpCisrKyBWTS9Db2RlR2VuZXJhdG9yLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTEyLDYgKzUxMiwxNSBAQCBSZWdpc3RlcklEKiBDb2RlR2VuZXJhdG9y
OjplbWl0UmVzb2x2ZUJhCiAgICAgcmV0dXJuIHIwOwogfQogCitSZWdpc3RlcklEKiBDb2RlR2Vu
ZXJhdG9yOjplbWl0UmVzb2x2ZUJhc2VBbmRGdW5jKFJlZ2lzdGVySUQqIHIwLCBSZWdpc3RlcklE
KiByMSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQpCit7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBw
ZW5kKG1hY2hpbmUoKS5nZXRPcGNvZGUob3BfcmVzb2x2ZV9iYXNlX2FuZF9mdW5jKSk7CisgICAg
aW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHIwLT5pbmRleCgpKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5h
cHBlbmQocjEtPmluZGV4KCkpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhZGRDb25zdGFu
dChpZGVudCkpOworICAgIHJldHVybiByMDsKK30KKwogUmVnaXN0ZXJJRCogQ29kZUdlbmVyYXRv
cjo6ZW1pdE9iamVjdEdldChSZWdpc3RlcklEKiByMCwgUmVnaXN0ZXJJRCogcjEsIGNvbnN0IElk
ZW50aWZpZXImIGlkZW50KQogewogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChtYWNoaW5lKCku
Z2V0T3Bjb2RlKG9wX29iamVjdF9nZXQpKTsKSW5kZXg6IFZNL0NvZGVHZW5lcmF0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBWTS9Db2RlR2VuZXJhdG9yLmgJKHJldmlzaW9uIDMxNDUzKQorKysgVk0vQ29k
ZUdlbmVyYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNTksNiArMTU5LDggQEAgbmFtZXNwYWNl
IEtKUyB7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRSZXNvbHZlQmFzZShSZWdpc3RlcklEKiwg
aW50KTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFJlc29sdmVCYXNlKFJlZ2lzdGVySUQqLCBp
bnQsIGludCk7CiAgICAgICAgIAorICAgICAgICBSZWdpc3RlcklEKiBlbWl0UmVzb2x2ZUJhc2VB
bmRGdW5jKFJlZ2lzdGVySUQqLCBSZWdpc3RlcklEKiwgY29uc3QgSWRlbnRpZmllciYpOworCiAg
ICAgICAgIFJlZ2lzdGVySUQqIGVtaXRPYmplY3RHZXQoUmVnaXN0ZXJJRCosIFJlZ2lzdGVySUQq
LCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCk7CiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRPYmpl
Y3RQdXQoUmVnaXN0ZXJJRCosIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBSZWdpc3RlcklEKik7
CiAKSW5kZXg6IFZNL01hY2hpbmUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFZNL01hY2hpbmUuY3BwCShy
ZXZpc2lvbiAzMTQ1MykKKysrIFZNL01hY2hpbmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTks
NiArMTk5LDQ1IEBAIHN0YXRpYyB2b2lkIE5FVkVSX0lOTElORSByZXNvbHZlQmFzZShFeGUKICAg
ICByW3IwXS51LmpzVmFsdWUgPSBiYXNlOwogfQogCitzdGF0aWMgdm9pZCBORVZFUl9JTkxJTkUg
cmVzb2x2ZUJhc2VBbmRGdW5jKEV4ZWNTdGF0ZSogZXhlYywgSW5zdHJ1Y3Rpb24qIHZQQywgUmVn
aXN0ZXIqIHIsIFNjb3BlQ2hhaW4qIHNjb3BlQ2hhaW4sIENvZGVCbG9jayogY29kZUJsb2NrKQor
eworICAgIGludCByMCA9ICh2UEMgKyAxKS0+dS5vcGVyYW5kOworICAgIGludCByMSA9ICh2UEMg
KyAyKS0+dS5vcGVyYW5kOworICAgIGludCBpZDAgPSAodlBDICsgMyktPnUub3BlcmFuZDsKKwor
ICAgIFNjb3BlQ2hhaW5JdGVyYXRvciBpdGVyID0gc2NvcGVDaGFpbi0+YmVnaW4oKTsKKyAgICBT
Y29wZUNoYWluSXRlcmF0b3IgZW5kID0gc2NvcGVDaGFpbi0+ZW5kKCk7CisgICAgCisgICAgLy8g
RklYTUU6IGFkZCBzY29wZURlcHRoSXNaZXJvIG9wdGltaXphdGlvbgorICAgIAorICAgIEFTU0VS
VChpdGVyICE9IGVuZCk7CisgICAgCisgICAgUHJvcGVydHlTbG90IHNsb3Q7CisgICAgSWRlbnRp
ZmllciYgaWRlbnQgPSBjb2RlQmxvY2stPmlkZW50aWZpZXJzW2lkMF07CisgICAgSlNPYmplY3Qq
IGJhc2U7CisgICAgZG8geworICAgICAgICBiYXNlID0gKml0ZXI7CisgICAgICAgIGlmIChiYXNl
LT5nZXRQcm9wZXJ0eVNsb3QoZXhlYywgaWRlbnQsIHNsb3QpKSB7ICAgICAgICAgICAgCisgICAg
ICAgICAgICBKU09iamVjdCogdGhpc09iaiA9IGJhc2U7CisgICAgICAgICAgICAvLyBFQ01BIDEx
LjIuMyBzYXlzIHRoYXQgaW4gdGhpcyBzaXR1YXRpb24gdGhlIHRoaXMgdmFsdWUgc2hvdWxkIGJl
IG51bGwuCisgICAgICAgICAgICAvLyBIb3dldmVyLCBzZWN0aW9uIDEwLjIuMyBzYXlzIHRoYXQg
aW4gdGhlIGNhc2Ugd2hlcmUgdGhlIHZhbHVlIHByb3ZpZGVkCisgICAgICAgICAgICAvLyBieSB0
aGUgY2FsbGVyIGlzIG51bGwsIHRoZSBnbG9iYWwgb2JqZWN0IHNob3VsZCBiZSB1c2VkLiBJdCBh
bHNvIHNheXMKKyAgICAgICAgICAgIC8vIHRoYXQgdGhlIHNlY3Rpb24gZG9lcyBub3QgYXBwbHkg
dG8gaW50ZXJuYWwgZnVuY3Rpb25zLCBidXQgZm9yIHNpbXBsaWNpdHkKKyAgICAgICAgICAgIC8v
IG9mIGltcGxlbWVudGF0aW9uIHdlIHVzZSB0aGUgZ2xvYmFsIG9iamVjdCBhbnl3YXkgaGVyZS4g
VGhpcyBndWFyYW50ZWVzCisgICAgICAgICAgICAvLyB0aGF0IGluIGhvc3Qgb2JqZWN0cyB5b3Ug
YWx3YXlzIGdldCBhIHZhbGlkIG9iamVjdCBmb3IgdGhpcy4KKyAgICAgICAgICAgIGlmICh0aGlz
T2JqLT5pc0FjdGl2YXRpb25PYmplY3QoKSkKKyAgICAgICAgICAgICAgICB0aGlzT2JqID0gZXhl
Yy0+ZHluYW1pY0dsb2JhbE9iamVjdCgpOworICAgICAgICAgICAgCisgICAgICAgICAgICByW3Iw
XS51LmpzVmFsdWUgPSB0aGlzT2JqOworICAgICAgICAgICAgcltyMV0udS5qc1ZhbHVlID0gc2xv
dC5nZXRWYWx1ZShleGVjLCBiYXNlLCBpZGVudCk7CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICAgICAgKytpdGVyOworICAgIH0gd2hpbGUgKGl0ZXIgIT0gZW5kKTsKKyAgICAK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgLy8gRklYTUU6IHRocm93IGFuIHVuZGVmaW5lZCB2
YXJpYWJsZSBleGNlcHRpb24KK30KKwogdm9pZCBNYWNoaW5lOjpwcml2YXRlRXhlY3V0ZShFeGVj
dXRpb25GbGFnIGZsYWcsIEV4ZWNTdGF0ZSogZXhlYywgVmVjdG9yPFJlZ2lzdGVyPiogcmVnaXN0
ZXJzLCBTY29wZUNoYWluKiBzY29wZUNoYWluLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsKICAg
ICAvLyBPbmUtdGltZSBpbml0aWFsaXphdGlvbiBvZiBvdXIgYWRkcmVzcyB0YWJsZXMuIFdlIGhh
dmUgdG8gcHV0IHRoaXMgY29kZQpAQCAtNDkxLDYgKzUzMCwxMiBAQCB2b2lkIE1hY2hpbmU6OnBy
aXZhdGVFeGVjdXRlKEV4ZWN1dGlvbkZsCiAKICAgICAgICAgTkVYVF9PUENPREU7CiAgICAgfQor
ICAgIEJFR0lOX09QQ09ERShvcF9yZXNvbHZlX2Jhc2VfYW5kX2Z1bmMpIHsKKyAgICAgICAgcmVz
b2x2ZUJhc2VBbmRGdW5jKGV4ZWMsIHZQQywgciwgc2NvcGVDaGFpbiwgY29kZUJsb2NrKTsKKyAg
ICAgICAgdlBDICs9IDQ7CisKKyAgICAgICAgTkVYVF9PUENPREU7CisgICAgfQogICAgIEJFR0lO
X09QQ09ERShvcF9vYmplY3RfZ2V0KSB7CiAgICAgICAgIGludCByMCA9ICgrK3ZQQyktPnUub3Bl
cmFuZDsKICAgICAgICAgaW50IHIxID0gKCsrdlBDKS0+dS5vcGVyYW5kOwpJbmRleDogVk0vT3Bj
b2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVk0vT3Bjb2RlLmgJKHJldmlzaW9uIDMxNDUzKQorKysgVk0v
T3Bjb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTcwLDYgKzcwLDcgQEAgbmFtZXNwYWNlIEtKUyB7
CiAgICAgICAgIFwKICAgICAgICAgbWFjcm8ob3BfcmVzb2x2ZSkgXAogICAgICAgICBtYWNybyhv
cF9yZXNvbHZlX2Jhc2UpIFwKKyAgICAgICAgbWFjcm8ob3BfcmVzb2x2ZV9iYXNlX2FuZF9mdW5j
KSBcCiAgICAgICAgIG1hY3JvKG9wX29iamVjdF9nZXQpIFwKICAgICAgICAgbWFjcm8ob3Bfb2Jq
ZWN0X3B1dCkgXAogICAgICAgICBcCkluZGV4OiBranMvbm9kZXMuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IGtqcy9ub2Rlcy5jcHAJKHJldmlzaW9uIDMxNDUzKQorKysga2pzL25vZGVzLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTI0NSw2ICsxMjQ1LDEyIEBAIEpTVmFsdWUqIEV2YWxGdW5jdGlvbkNhbGxO
b2RlOjpldmFsdWF0ZSgKICAgICByZXR1cm4gcmVzb2x2ZUFuZENhbGw8RXZhbE9wZXJhdG9yLCB0
cnVlPihleGVjLCBleGVjLT5wcm9wZXJ0eU5hbWVzKCkuZXZhbCwgbV9hcmdzLmdldCgpKTsKIH0K
IAorUmVnaXN0ZXJJRCogRnVuY3Rpb25DYWxsVmFsdWVOb2RlOjplbWl0Q29kZShDb2RlR2VuZXJh
dG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKK3sKKyAgICBSZWdpc3RlcklEKiByMCA9
IGdlbmVyYXRvci5lbWl0Tm9kZShtX2V4cHIuZ2V0KCkpOworICAgIHJldHVybiBnZW5lcmF0b3Iu
ZW1pdENhbGwoZHN0ID8gZHN0IDogZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCByMCwgMCwgbV9h
cmdzLmdldCgpKTsKK30KKwogdm9pZCBGdW5jdGlvbkNhbGxWYWx1ZU5vZGU6Om9wdGltaXplVmFy
aWFibGVBY2Nlc3MoRXhlY1N0YXRlKiwgY29uc3QgU3ltYm9sVGFibGUmLCBjb25zdCBMb2NhbFN0
b3JhZ2UmLCBOb2RlU3RhY2smIG5vZGVTdGFjaykKIHsKICAgICBub2RlU3RhY2suYXBwZW5kKG1f
YXJncy5nZXQoKSk7CkBAIC0xMjc4LDExICsxMjg0LDEzIEBAIEpTVmFsdWUqIEZ1bmN0aW9uQ2Fs
bFZhbHVlTm9kZTo6ZXZhbHVhdGUKIAogUmVnaXN0ZXJJRCogRnVuY3Rpb25DYWxsUmVzb2x2ZU5v
ZGU6OmVtaXRDb2RlKENvZGVHZW5lcmF0b3ImIGdlbmVyYXRvciwgUmVnaXN0ZXJJRCogZHN0KQog
ewotICAgIGlmIChSZWdpc3RlcklEKiByMCA9IGdlbmVyYXRvci5yZWdpc3RlckZvckxvY2FsKG1f
aWRlbnQpKQotICAgICAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRDYWxsKGRzdCA/IGRzdCA6IGdl
bmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgcjAsIDAsIG1fYXJncy5nZXQoKSk7Ci0gCi0gICAgUmVm
UHRyPFJlZ2lzdGVySUQ+IHIwID0gZ2VuZXJhdG9yLmVtaXRSZXNvbHZlKGdlbmVyYXRvci5uZXdU
ZW1wb3JhcnkoKSwgbV9pZGVudCk7Ci0gICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0Q2FsbChkc3Qg
PyBkc3QgOiBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5T3IocjAuZ2V0KCkpLCByMC5nZXQoKSwgMCwg
bV9hcmdzLmdldCgpKTsKKyAgICBpZiAoUmVnaXN0ZXJJRCogcjEgPSBnZW5lcmF0b3IucmVnaXN0
ZXJGb3JMb2NhbChtX2lkZW50KSkKKyAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0Q2FsbChk
c3QgPyBkc3QgOiBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCksIHIxLCAwLCBtX2FyZ3MuZ2V0KCkp
OworICAgIAorICAgIFJlZlB0cjxSZWdpc3RlcklEPiByMCA9IGRzdCA/IGRzdCA6IGdlbmVyYXRv
ci5uZXdUZW1wb3JhcnkoKTsKKyAgICBSZWdpc3RlcklEKiByMSA9IGdlbmVyYXRvci5uZXdUZW1w
b3JhcnkoKTsKKyAgICBnZW5lcmF0b3IuZW1pdFJlc29sdmVCYXNlQW5kRnVuYyhyMC5nZXQoKSwg
cjEsIG1faWRlbnQpOworICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdENhbGwocjAuZ2V0KCksIHIx
LCByMC5nZXQoKSwgbV9hcmdzLmdldCgpKTsKIH0KIAogdm9pZCBGdW5jdGlvbkNhbGxSZXNvbHZl
Tm9kZTo6b3B0aW1pemVWYXJpYWJsZUFjY2VzcyhFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IFN5bWJv
bFRhYmxlJiBzeW1ib2xUYWJsZSwgY29uc3QgTG9jYWxTdG9yYWdlJiwgTm9kZVN0YWNrJiBub2Rl
U3RhY2spCkluZGV4OiBranMvbm9kZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvbm9kZXMuaAkocmV2
aXNpb24gMzE0NTMpCisrKyBranMvbm9kZXMuaAkod29ya2luZyBjb3B5KQpAQCAtODA2LDYgKzgw
Niw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAgICB7CiAgICAgICAgIH0KIAorICAgICAgICB2
aXJ0dWFsIFJlZ2lzdGVySUQqIGVtaXRDb2RlKENvZGVHZW5lcmF0b3ImLCBSZWdpc3RlcklEKiA9
IDApIEtKU19GQVNUX0NBTEw7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBvcHRpbWl6ZVZhcmlhYmxl
QWNjZXNzKEV4ZWNTdGF0ZSosIGNvbnN0IFN5bWJvbFRhYmxlJiwgY29uc3QgTG9jYWxTdG9yYWdl
JiwgTm9kZVN0YWNrJikgS0pTX0ZBU1RfQ0FMTDsKICAgICAgICAgdmlydHVhbCBKU1ZhbHVlKiBl
dmFsdWF0ZShFeGVjU3RhdGUqKSBLSlNfRkFTVF9DQUxMOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
c3RyZWFtVG8oU291cmNlU3RyZWFtJikgY29uc3QgS0pTX0ZBU1RfQ0FMTDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20232</attachid>
            <date>2008-03-31 00:06:44 -0700</date>
            <delta_ts>2008-03-31 01:45:41 -0700</delta_ts>
            <desc>Proposed patch (now with email!)</desc>
            <filename>functions2.diff</filename>
            <type>text/plain</type>
            <size>8302</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMxNDUz
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMDgtMDMt
MzAgIENhbWVyb24gWndhcmljaCAgPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZ1
bmN0aW9uQ2FsbFZhbHVlTm9kZSBhbmQgY29ycmVjdCB0aGUgaGFuZGxpbmcgb2YgdGhlICd0aGlz
JyBvYmplY3QuCisKKyAgICAgICAgKiBWTS9Db2RlQmxvY2suY3BwOgorICAgICAgICAoS0pTOjpD
b2RlQmxvY2s6OmR1bXApOgorICAgICAgICAqIFZNL0NvZGVHZW5lcmF0b3IuY3BwOgorICAgICAg
ICAoS0pTOjpDb2RlR2VuZXJhdG9yOjplbWl0UmVzb2x2ZUJhc2VBbmRGdW5jKToKKyAgICAgICAg
KiBWTS9Db2RlR2VuZXJhdG9yLmg6CisgICAgICAgICogVk0vTWFjaGluZS5jcHA6CisgICAgICAg
IChLSlM6OnJlc29sdmVCYXNlQW5kRnVuYyk6CisgICAgICAgIChLSlM6Ok1hY2hpbmU6OnByaXZh
dGVFeGVjdXRlKToKKyAgICAgICAgKiBWTS9PcGNvZGUuaDoKKyAgICAgICAgKiBranMvbm9kZXMu
Y3BwOgorICAgICAgICAoS0pTOjpGdW5jdGlvbkNhbGxWYWx1ZU5vZGU6OmVtaXRDb2RlKToKKyAg
ICAgICAgKEtKUzo6RnVuY3Rpb25DYWxsUmVzb2x2ZU5vZGU6OmVtaXRDb2RlKToKKyAgICAgICAg
KiBranMvbm9kZXMuaDoKKwogMjAwOC0wMy0zMCAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpJbmRleDogVk0vQ29k
ZUJsb2NrLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9Db2RlQmxvY2suY3BwCShyZXZpc2lvbiAzMTQ1
MykKKysrIFZNL0NvZGVCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0OCw2ICsyNDgsMTMg
QEAgdm9pZCBDb2RlQmxvY2s6OmR1bXAoRXhlY1N0YXRlKiBleGVjLCBjbwogICAgICAgICAgICAg
cHJpbnRmKCJbJTRkXSByZXNvbHZlX2Jhc2VcdCVzLCAlc1xuIiwgbG9jYXRpb24sIHJlZ2lzdGVy
TmFtZShyMCkuY19zdHIoKSwgaWROYW1lKGlkMCwgaWRlbnRpZmllcnNbaWQwXSkuY19zdHIoKSk7
CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQorICAgICAgICBjYXNlIG9wX3Jlc29sdmVf
YmFzZV9hbmRfZnVuYzogeworICAgICAgICAgICAgaW50IHIwID0gKCsraXQpLT51Lm9wZXJhbmQ7
CisgICAgICAgICAgICBpbnQgcjEgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgICAgIGlu
dCBpZDAgPSAoKytpdCktPnUub3BlcmFuZDsKKyAgICAgICAgICAgIHByaW50ZigiWyU0ZF0gcmVz
b2x2ZV9iYXNlX2FuZF9mdW5jXHQlcywgJXMsICVzXG4iLCBsb2NhdGlvbiwgcmVnaXN0ZXJOYW1l
KHIwKS5jX3N0cigpLCByZWdpc3Rlck5hbWUocjEpLmNfc3RyKCksIGlkTmFtZShpZDAsIGlkZW50
aWZpZXJzW2lkMF0pLmNfc3RyKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAg
ICAgICAgY2FzZSBvcF9vYmplY3RfZ2V0OiB7CiAgICAgICAgICAgICBpbnQgcjAgPSAoKytpdCkt
PnUub3BlcmFuZDsKICAgICAgICAgICAgIGludCByMSA9ICgrK2l0KS0+dS5vcGVyYW5kOwpJbmRl
eDogVk0vQ29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVk0vQ29kZUdlbmVyYXRvci5j
cHAJKHJldmlzaW9uIDMxNDUzKQorKysgVk0vQ29kZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTUxMiw2ICs1MTIsMTUgQEAgUmVnaXN0ZXJJRCogQ29kZUdlbmVyYXRvcjo6ZW1pdFJl
c29sdmVCYQogICAgIHJldHVybiByMDsKIH0KIAorUmVnaXN0ZXJJRCogQ29kZUdlbmVyYXRvcjo6
ZW1pdFJlc29sdmVCYXNlQW5kRnVuYyhSZWdpc3RlcklEKiByMCwgUmVnaXN0ZXJJRCogcjEsIGNv
bnN0IElkZW50aWZpZXImIGlkZW50KQoreworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChtYWNo
aW5lKCkuZ2V0T3Bjb2RlKG9wX3Jlc29sdmVfYmFzZV9hbmRfZnVuYykpOworICAgIGluc3RydWN0
aW9ucygpLmFwcGVuZChyMC0+aW5kZXgoKSk7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5kKHIx
LT5pbmRleCgpKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQoYWRkQ29uc3RhbnQoaWRlbnQp
KTsKKyAgICByZXR1cm4gcjA7Cit9CisKIFJlZ2lzdGVySUQqIENvZGVHZW5lcmF0b3I6OmVtaXRP
YmplY3RHZXQoUmVnaXN0ZXJJRCogcjAsIFJlZ2lzdGVySUQqIHIxLCBjb25zdCBJZGVudGlmaWVy
JiBpZGVudCkKIHsKICAgICBpbnN0cnVjdGlvbnMoKS5hcHBlbmQobWFjaGluZSgpLmdldE9wY29k
ZShvcF9vYmplY3RfZ2V0KSk7CkluZGV4OiBWTS9Db2RlR2VuZXJhdG9yLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVk0vQ29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAzMTQ1MykKKysrIFZNL0NvZGVHZW5lcmF0
b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMTU5LDYgKzE1OSw4IEBAIG5hbWVzcGFjZSBLSlMgewog
ICAgICAgICBSZWdpc3RlcklEKiBlbWl0UmVzb2x2ZUJhc2UoUmVnaXN0ZXJJRCosIGludCk7CiAg
ICAgICAgIFJlZ2lzdGVySUQqIGVtaXRSZXNvbHZlQmFzZShSZWdpc3RlcklEKiwgaW50LCBpbnQp
OwogICAgICAgICAKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFJlc29sdmVCYXNlQW5kRnVuYyhS
ZWdpc3RlcklEKiwgUmVnaXN0ZXJJRCosIGNvbnN0IElkZW50aWZpZXImKTsKKwogICAgICAgICBS
ZWdpc3RlcklEKiBlbWl0T2JqZWN0R2V0KFJlZ2lzdGVySUQqLCBSZWdpc3RlcklEKiwgY29uc3Qg
SWRlbnRpZmllciYgaWRlbnQpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0T2JqZWN0UHV0KFJl
Z2lzdGVySUQqLCBjb25zdCBJZGVudGlmaWVyJiBpZGVudCwgUmVnaXN0ZXJJRCopOwogCkluZGV4
OiBWTS9NYWNoaW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9NYWNoaW5lLmNwcAkocmV2aXNpb24g
MzE0NTMpCisrKyBWTS9NYWNoaW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk5LDYgKzE5OSw0
NSBAQCBzdGF0aWMgdm9pZCBORVZFUl9JTkxJTkUgcmVzb2x2ZUJhc2UoRXhlCiAgICAgcltyMF0u
dS5qc1ZhbHVlID0gYmFzZTsKIH0KIAorc3RhdGljIHZvaWQgTkVWRVJfSU5MSU5FIHJlc29sdmVC
YXNlQW5kRnVuYyhFeGVjU3RhdGUqIGV4ZWMsIEluc3RydWN0aW9uKiB2UEMsIFJlZ2lzdGVyKiBy
LCBTY29wZUNoYWluKiBzY29wZUNoYWluLCBDb2RlQmxvY2sqIGNvZGVCbG9jaykKK3sKKyAgICBp
bnQgcjAgPSAodlBDICsgMSktPnUub3BlcmFuZDsKKyAgICBpbnQgcjEgPSAodlBDICsgMiktPnUu
b3BlcmFuZDsKKyAgICBpbnQgaWQwID0gKHZQQyArIDMpLT51Lm9wZXJhbmQ7CisKKyAgICBTY29w
ZUNoYWluSXRlcmF0b3IgaXRlciA9IHNjb3BlQ2hhaW4tPmJlZ2luKCk7CisgICAgU2NvcGVDaGFp
bkl0ZXJhdG9yIGVuZCA9IHNjb3BlQ2hhaW4tPmVuZCgpOworICAgIAorICAgIC8vIEZJWE1FOiBh
ZGQgc2NvcGVEZXB0aElzWmVybyBvcHRpbWl6YXRpb24KKyAgICAKKyAgICBBU1NFUlQoaXRlciAh
PSBlbmQpOworICAgIAorICAgIFByb3BlcnR5U2xvdCBzbG90OworICAgIElkZW50aWZpZXImIGlk
ZW50ID0gY29kZUJsb2NrLT5pZGVudGlmaWVyc1tpZDBdOworICAgIEpTT2JqZWN0KiBiYXNlOwor
ICAgIGRvIHsKKyAgICAgICAgYmFzZSA9ICppdGVyOworICAgICAgICBpZiAoYmFzZS0+Z2V0UHJv
cGVydHlTbG90KGV4ZWMsIGlkZW50LCBzbG90KSkgeyAgICAgICAgICAgIAorICAgICAgICAgICAg
SlNPYmplY3QqIHRoaXNPYmogPSBiYXNlOworICAgICAgICAgICAgLy8gRUNNQSAxMS4yLjMgc2F5
cyB0aGF0IGluIHRoaXMgc2l0dWF0aW9uIHRoZSB0aGlzIHZhbHVlIHNob3VsZCBiZSBudWxsLgor
ICAgICAgICAgICAgLy8gSG93ZXZlciwgc2VjdGlvbiAxMC4yLjMgc2F5cyB0aGF0IGluIHRoZSBj
YXNlIHdoZXJlIHRoZSB2YWx1ZSBwcm92aWRlZAorICAgICAgICAgICAgLy8gYnkgdGhlIGNhbGxl
ciBpcyBudWxsLCB0aGUgZ2xvYmFsIG9iamVjdCBzaG91bGQgYmUgdXNlZC4gSXQgYWxzbyBzYXlz
CisgICAgICAgICAgICAvLyB0aGF0IHRoZSBzZWN0aW9uIGRvZXMgbm90IGFwcGx5IHRvIGludGVy
bmFsIGZ1bmN0aW9ucywgYnV0IGZvciBzaW1wbGljaXR5CisgICAgICAgICAgICAvLyBvZiBpbXBs
ZW1lbnRhdGlvbiB3ZSB1c2UgdGhlIGdsb2JhbCBvYmplY3QgYW55d2F5IGhlcmUuIFRoaXMgZ3Vh
cmFudGVlcworICAgICAgICAgICAgLy8gdGhhdCBpbiBob3N0IG9iamVjdHMgeW91IGFsd2F5cyBn
ZXQgYSB2YWxpZCBvYmplY3QgZm9yIHRoaXMuCisgICAgICAgICAgICBpZiAodGhpc09iai0+aXNB
Y3RpdmF0aW9uT2JqZWN0KCkpCisgICAgICAgICAgICAgICAgdGhpc09iaiA9IGV4ZWMtPmR5bmFt
aWNHbG9iYWxPYmplY3QoKTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgcltyMF0udS5qc1Zh
bHVlID0gdGhpc09iajsKKyAgICAgICAgICAgIHJbcjFdLnUuanNWYWx1ZSA9IHNsb3QuZ2V0VmFs
dWUoZXhlYywgYmFzZSwgaWRlbnQpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgICsraXRlcjsKKyAgICB9IHdoaWxlIChpdGVyICE9IGVuZCk7CisgICAgCisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7IC8vIEZJWE1FOiB0aHJvdyBhbiB1bmRlZmluZWQgdmFyaWFibGUg
ZXhjZXB0aW9uCit9CisKIHZvaWQgTWFjaGluZTo6cHJpdmF0ZUV4ZWN1dGUoRXhlY3V0aW9uRmxh
ZyBmbGFnLCBFeGVjU3RhdGUqIGV4ZWMsIFZlY3RvcjxSZWdpc3Rlcj4qIHJlZ2lzdGVycywgU2Nv
cGVDaGFpbiogc2NvcGVDaGFpbiwgQ29kZUJsb2NrKiBjb2RlQmxvY2spCiB7CiAgICAgLy8gT25l
LXRpbWUgaW5pdGlhbGl6YXRpb24gb2Ygb3VyIGFkZHJlc3MgdGFibGVzLiBXZSBoYXZlIHRvIHB1
dCB0aGlzIGNvZGUKQEAgLTQ5MSw2ICs1MzAsMTIgQEAgdm9pZCBNYWNoaW5lOjpwcml2YXRlRXhl
Y3V0ZShFeGVjdXRpb25GbAogCiAgICAgICAgIE5FWFRfT1BDT0RFOwogICAgIH0KKyAgICBCRUdJ
Tl9PUENPREUob3BfcmVzb2x2ZV9iYXNlX2FuZF9mdW5jKSB7CisgICAgICAgIHJlc29sdmVCYXNl
QW5kRnVuYyhleGVjLCB2UEMsIHIsIHNjb3BlQ2hhaW4sIGNvZGVCbG9jayk7CisgICAgICAgIHZQ
QyArPSA0OworCisgICAgICAgIE5FWFRfT1BDT0RFOworICAgIH0KICAgICBCRUdJTl9PUENPREUo
b3Bfb2JqZWN0X2dldCkgewogICAgICAgICBpbnQgcjAgPSAoKyt2UEMpLT51Lm9wZXJhbmQ7CiAg
ICAgICAgIGludCByMSA9ICgrK3ZQQyktPnUub3BlcmFuZDsKSW5kZXg6IFZNL09wY29kZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFZNL09wY29kZS5oCShyZXZpc2lvbiAzMTQ1MykKKysrIFZNL09wY29kZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC03MCw2ICs3MCw3IEBAIG5hbWVzcGFjZSBLSlMgewogICAgICAg
ICBcCiAgICAgICAgIG1hY3JvKG9wX3Jlc29sdmUpIFwKICAgICAgICAgbWFjcm8ob3BfcmVzb2x2
ZV9iYXNlKSBcCisgICAgICAgIG1hY3JvKG9wX3Jlc29sdmVfYmFzZV9hbmRfZnVuYykgXAogICAg
ICAgICBtYWNybyhvcF9vYmplY3RfZ2V0KSBcCiAgICAgICAgIG1hY3JvKG9wX29iamVjdF9wdXQp
IFwKICAgICAgICAgXApJbmRleDoga2pzL25vZGVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvbm9k
ZXMuY3BwCShyZXZpc2lvbiAzMTQ1MykKKysrIGtqcy9ub2Rlcy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEyNDUsNiArMTI0NSwxMiBAQCBKU1ZhbHVlKiBFdmFsRnVuY3Rpb25DYWxsTm9kZTo6ZXZh
bHVhdGUoCiAgICAgcmV0dXJuIHJlc29sdmVBbmRDYWxsPEV2YWxPcGVyYXRvciwgdHJ1ZT4oZXhl
YywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmV2YWwsIG1fYXJncy5nZXQoKSk7CiB9CiAKK1JlZ2lz
dGVySUQqIEZ1bmN0aW9uQ2FsbFZhbHVlTm9kZTo6ZW1pdENvZGUoQ29kZUdlbmVyYXRvciYgZ2Vu
ZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgUmVnaXN0ZXJJRCogcjAgPSBnZW5lcmF0
b3IuZW1pdE5vZGUobV9leHByLmdldCgpKTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRDYWxs
KGRzdCA/IGRzdCA6IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgcjAsIDAsIG1fYXJncy5nZXQo
KSk7Cit9CisKIHZvaWQgRnVuY3Rpb25DYWxsVmFsdWVOb2RlOjpvcHRpbWl6ZVZhcmlhYmxlQWNj
ZXNzKEV4ZWNTdGF0ZSosIGNvbnN0IFN5bWJvbFRhYmxlJiwgY29uc3QgTG9jYWxTdG9yYWdlJiwg
Tm9kZVN0YWNrJiBub2RlU3RhY2spCiB7CiAgICAgbm9kZVN0YWNrLmFwcGVuZChtX2FyZ3MuZ2V0
KCkpOwpAQCAtMTI3OCwxMSArMTI4NCwxMyBAQCBKU1ZhbHVlKiBGdW5jdGlvbkNhbGxWYWx1ZU5v
ZGU6OmV2YWx1YXRlCiAKIFJlZ2lzdGVySUQqIEZ1bmN0aW9uQ2FsbFJlc29sdmVOb2RlOjplbWl0
Q29kZShDb2RlR2VuZXJhdG9yJiBnZW5lcmF0b3IsIFJlZ2lzdGVySUQqIGRzdCkKIHsKLSAgICBp
ZiAoUmVnaXN0ZXJJRCogcjAgPSBnZW5lcmF0b3IucmVnaXN0ZXJGb3JMb2NhbChtX2lkZW50KSkK
LSAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0Q2FsbChkc3QgPyBkc3QgOiBnZW5lcmF0b3Iu
bmV3VGVtcG9yYXJ5KCksIHIwLCAwLCBtX2FyZ3MuZ2V0KCkpOwotIAotICAgIFJlZlB0cjxSZWdp
c3RlcklEPiByMCA9IGdlbmVyYXRvci5lbWl0UmVzb2x2ZShnZW5lcmF0b3IubmV3VGVtcG9yYXJ5
KCksIG1faWRlbnQpOwotICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdENhbGwoZHN0ID8gZHN0IDog
Z2VuZXJhdG9yLm5ld1RlbXBvcmFyeU9yKHIwLmdldCgpKSwgcjAuZ2V0KCksIDAsIG1fYXJncy5n
ZXQoKSk7CisgICAgaWYgKFJlZ2lzdGVySUQqIHIxID0gZ2VuZXJhdG9yLnJlZ2lzdGVyRm9yTG9j
YWwobV9pZGVudCkpCisgICAgICAgIHJldHVybiBnZW5lcmF0b3IuZW1pdENhbGwoZHN0ID8gZHN0
IDogZ2VuZXJhdG9yLm5ld1RlbXBvcmFyeSgpLCByMSwgMCwgbV9hcmdzLmdldCgpKTsKKyAgICAK
KyAgICBSZWZQdHI8UmVnaXN0ZXJJRD4gcjAgPSBkc3QgPyBkc3QgOiBnZW5lcmF0b3IubmV3VGVt
cG9yYXJ5KCk7CisgICAgUmVnaXN0ZXJJRCogcjEgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7
CisgICAgZ2VuZXJhdG9yLmVtaXRSZXNvbHZlQmFzZUFuZEZ1bmMocjAuZ2V0KCksIHIxLCBtX2lk
ZW50KTsKKyAgICByZXR1cm4gZ2VuZXJhdG9yLmVtaXRDYWxsKHIwLmdldCgpLCByMSwgcjAuZ2V0
KCksIG1fYXJncy5nZXQoKSk7CiB9CiAKIHZvaWQgRnVuY3Rpb25DYWxsUmVzb2x2ZU5vZGU6Om9w
dGltaXplVmFyaWFibGVBY2Nlc3MoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTeW1ib2xUYWJsZSYg
c3ltYm9sVGFibGUsIGNvbnN0IExvY2FsU3RvcmFnZSYsIE5vZGVTdGFjayYgbm9kZVN0YWNrKQpJ
bmRleDoga2pzL25vZGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2pzL25vZGVzLmgJKHJldmlzaW9uIDMx
NDUzKQorKysga2pzL25vZGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTgwNiw2ICs4MDYsNyBAQCBu
YW1lc3BhY2UgS0pTIHsKICAgICAgICAgewogICAgICAgICB9CiAKKyAgICAgICAgdmlydHVhbCBS
ZWdpc3RlcklEKiBlbWl0Q29kZShDb2RlR2VuZXJhdG9yJiwgUmVnaXN0ZXJJRCogPSAwKSBLSlNf
RkFTVF9DQUxMOwogICAgICAgICB2aXJ0dWFsIHZvaWQgb3B0aW1pemVWYXJpYWJsZUFjY2VzcyhF
eGVjU3RhdGUqLCBjb25zdCBTeW1ib2xUYWJsZSYsIGNvbnN0IExvY2FsU3RvcmFnZSYsIE5vZGVT
dGFjayYpIEtKU19GQVNUX0NBTEw7CiAgICAgICAgIHZpcnR1YWwgSlNWYWx1ZSogZXZhbHVhdGUo
RXhlY1N0YXRlKikgS0pTX0ZBU1RfQ0FMTDsKICAgICAgICAgdmlydHVhbCB2b2lkIHN0cmVhbVRv
KFNvdXJjZVN0cmVhbSYpIGNvbnN0IEtKU19GQVNUX0NBTEw7Cg==
</data>
<flag name="review"
          id="8826"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20234</attachid>
            <date>2008-03-31 01:45:41 -0700</date>
            <delta_ts>2008-03-31 01:46:16 -0700</delta_ts>
            <desc>Revised proposed patch</desc>
            <filename>function4.diff</filename>
            <type>text/plain</type>
            <size>1771</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMxNDU1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDgtMDMt
MzEgIENhbWVyb24gWndhcmljaCAgPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIEZ1
bmN0aW9uQ2FsbFZhbHVlTm9kZS4KKworICAgICAgICAqIGtqcy9ub2Rlcy5jcHA6CisgICAgICAg
IChLSlM6OkZ1bmN0aW9uQ2FsbFZhbHVlTm9kZTo6ZW1pdENvZGUpOgorICAgICAgICAqIGtqcy9u
b2Rlcy5oOgorCiAyMDA4LTAzLTMxICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+
CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyLgpJbmRleDoga2pzL25vZGVzLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBranMvbm9kZXMuY3BwCShyZXZpc2lvbiAzMTQ1NSkKKysrIGtqcy9ub2Rlcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNjQsNiArMTI2NCwxMiBAQCBKU1ZhbHVlKiBFdmFsRnVu
Y3Rpb25DYWxsTm9kZTo6ZXZhbHVhdGUoCiAgICAgcmV0dXJuIHJlc29sdmVBbmRDYWxsPEV2YWxP
cGVyYXRvciwgdHJ1ZT4oZXhlYywgZXhlYy0+cHJvcGVydHlOYW1lcygpLmV2YWwsIG1fYXJncy5n
ZXQoKSk7CiB9CiAKK1JlZ2lzdGVySUQqIEZ1bmN0aW9uQ2FsbFZhbHVlTm9kZTo6ZW1pdENvZGUo
Q29kZUdlbmVyYXRvciYgZ2VuZXJhdG9yLCBSZWdpc3RlcklEKiBkc3QpCit7CisgICAgUmVnaXN0
ZXJJRCogcjAgPSBnZW5lcmF0b3IuZW1pdE5vZGUobV9leHByLmdldCgpKTsKKyAgICByZXR1cm4g
Z2VuZXJhdG9yLmVtaXRDYWxsKGRzdCA/IGRzdCA6IGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwg
cjAsIDAsIG1fYXJncy5nZXQoKSk7Cit9CisKIHZvaWQgRnVuY3Rpb25DYWxsVmFsdWVOb2RlOjpv
cHRpbWl6ZVZhcmlhYmxlQWNjZXNzKEV4ZWNTdGF0ZSosIGNvbnN0IFN5bWJvbFRhYmxlJiwgY29u
c3QgTG9jYWxTdG9yYWdlJiwgTm9kZVN0YWNrJiBub2RlU3RhY2spCiB7CiAgICAgbm9kZVN0YWNr
LmFwcGVuZChtX2FyZ3MuZ2V0KCkpOwpJbmRleDoga2pzL25vZGVzLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a2pzL25vZGVzLmgJKHJldmlzaW9uIDMxNDU1KQorKysga2pzL25vZGVzLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTgwOCw2ICs4MDgsNyBAQCBuYW1lc3BhY2UgS0pTIHsKICAgICAgICAgewogICAgICAg
ICB9CiAKKyAgICAgICAgdmlydHVhbCBSZWdpc3RlcklEKiBlbWl0Q29kZShDb2RlR2VuZXJhdG9y
JiwgUmVnaXN0ZXJJRCogPSAwKSBLSlNfRkFTVF9DQUxMOwogICAgICAgICB2aXJ0dWFsIHZvaWQg
b3B0aW1pemVWYXJpYWJsZUFjY2VzcyhFeGVjU3RhdGUqLCBjb25zdCBTeW1ib2xUYWJsZSYsIGNv
bnN0IExvY2FsU3RvcmFnZSYsIE5vZGVTdGFjayYpIEtKU19GQVNUX0NBTEw7CiAgICAgICAgIHZp
cnR1YWwgSlNWYWx1ZSogZXZhbHVhdGUoRXhlY1N0YXRlKikgS0pTX0ZBU1RfQ0FMTDsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHN0cmVhbVRvKFNvdXJjZVN0cmVhbSYpIGNvbnN0IEtKU19GQVNUX0NB
TEw7Cg==
</data>
<flag name="review"
          id="8827"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>20469</attachid>
            <date>2008-04-10 20:54:14 -0700</date>
            <delta_ts>2008-04-10 20:57:47 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>this.diff</filename>
            <type>text/plain</type>
            <size>6941</size>
            <attacher name="Cameron Zwarich (cpst)">zwarich</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDMxNzk1
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDgtMDQt
MTAgIENhbWVyb24gWndhcmljaCAgPGN3endhcmljaEB1d2F0ZXJsb28uY2E+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIGNvcnJlY3QgdmFsdWUg
b2YgJ3RoaXMnIGZvciBmdW5jdGlvbiBjYWxscy4KKworICAgICAgICAqIFZNL0NvZGVCbG9jay5j
cHA6CisgICAgICAgIChLSlM6OkNvZGVCbG9jazo6ZHVtcCk6CisgICAgICAgICogVk0vQ29kZUdl
bmVyYXRvci5jcHA6CisgICAgICAgIChLSlM6OkNvZGVHZW5lcmF0b3I6OmVtaXRSZXNvbHZlQmFz
ZUFuZEZ1bmMpOgorICAgICAgICAqIFZNL0NvZGVHZW5lcmF0b3IuaDoKKyAgICAgICAgKiBWTS9N
YWNoaW5lLmNwcDoKKyAgICAgICAgKEtKUzo6cmVzb2x2ZUJhc2VBbmRGdW5jKToKKyAgICAgICAg
KEtKUzo6TWFjaGluZTo6cHJpdmF0ZUV4ZWN1dGUpOgorICAgICAgICAqIFZNL09wY29kZS5oOgor
ICAgICAgICAqIGtqcy9ub2Rlcy5jcHA6CisgICAgICAgIChLSlM6OkZ1bmN0aW9uQ2FsbFJlc29s
dmVOb2RlOjplbWl0Q29kZSk6CisKIDIwMDgtMDQtMTAgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVu
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KSW5kZXg6IFZN
L0NvZGVCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVk0vQ29kZUJsb2NrLmNwcAkocmV2aXNpb24g
MzE3OTUpCisrKyBWTS9Db2RlQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzMsNiArMzMz
LDEzIEBAIHZvaWQgQ29kZUJsb2NrOjpkdW1wKEV4ZWNTdGF0ZSogZXhlYywgY28KICAgICAgICAg
ICAgIHByaW50ZigiWyU0ZF0gcmVzb2x2ZV9iYXNlXHQlcywgJXNcbiIsIGxvY2F0aW9uLCByZWdp
c3Rlck5hbWUocjApLmNfc3RyKCksIGlkTmFtZShpZDAsIGlkZW50aWZpZXJzW2lkMF0pLmNfc3Ry
KCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KKyAgICAgICAgY2FzZSBvcF9yZXNv
bHZlX2Jhc2VfYW5kX2Z1bmM6IHsKKyAgICAgICAgICAgIGludCByMCA9ICgrK2l0KS0+dS5vcGVy
YW5kOworICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgICAg
ICBpbnQgaWQwID0gKCsraXQpLT51Lm9wZXJhbmQ7CisgICAgICAgICAgICBwcmludGYoIlslNGRd
IHJlc29sdmVfYmFzZV9hbmRfZnVuY1x0JXMsICVzLCAlc1xuIiwgbG9jYXRpb24sIHJlZ2lzdGVy
TmFtZShyMCkuY19zdHIoKSwgcmVnaXN0ZXJOYW1lKHIxKS5jX3N0cigpLCBpZE5hbWUoaWQwLCBp
ZGVudGlmaWVyc1tpZDBdKS5jX3N0cigpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9
CiAgICAgICAgIGNhc2Ugb3BfZ2V0X3Byb3BfaWQ6IHsKICAgICAgICAgICAgIGludCByMCA9ICgr
K2l0KS0+dS5vcGVyYW5kOwogICAgICAgICAgICAgaW50IHIxID0gKCsraXQpLT51Lm9wZXJhbmQ7
CkluZGV4OiBWTS9Db2RlR2VuZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBWTS9Db2RlR2VuZXJh
dG9yLmNwcAkocmV2aXNpb24gMzE3OTUpCisrKyBWTS9Db2RlR2VuZXJhdG9yLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNjU0LDYgKzY1NCwxNSBAQCBSZWdpc3RlcklEKiBDb2RlR2VuZXJhdG9yOjpl
bWl0UmVzb2x2ZUJhCiAgICAgcmV0dXJuIHIwOwogfQogCitSZWdpc3RlcklEKiBDb2RlR2VuZXJh
dG9yOjplbWl0UmVzb2x2ZUJhc2VBbmRGdW5jKFJlZ2lzdGVySUQqIHIwLCBSZWdpc3RlcklEKiBy
MSwgY29uc3QgSWRlbnRpZmllciYgaWRlbnQpCit7CisgICAgaW5zdHJ1Y3Rpb25zKCkuYXBwZW5k
KG1hY2hpbmUoKS5nZXRPcGNvZGUob3BfcmVzb2x2ZV9iYXNlX2FuZF9mdW5jKSk7CisgICAgaW5z
dHJ1Y3Rpb25zKCkuYXBwZW5kKHIwLT5pbmRleCgpKTsKKyAgICBpbnN0cnVjdGlvbnMoKS5hcHBl
bmQocjEtPmluZGV4KCkpOworICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChhZGRDb25zdGFudChp
ZGVudCkpOworICAgIHJldHVybiByMDsKK30KKwogUmVnaXN0ZXJJRCogQ29kZUdlbmVyYXRvcjo6
ZW1pdEdldFByb3BJZChSZWdpc3RlcklEKiBkc3QsIFJlZ2lzdGVySUQqIGJhc2UsIGNvbnN0IElk
ZW50aWZpZXImIGlkZW50KQogewogICAgIGluc3RydWN0aW9ucygpLmFwcGVuZChtYWNoaW5lKCku
Z2V0T3Bjb2RlKG9wX2dldF9wcm9wX2lkKSk7CkluZGV4OiBWTS9Db2RlR2VuZXJhdG9yLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVk0vQ29kZUdlbmVyYXRvci5oCShyZXZpc2lvbiAzMTc5NSkKKysrIFZNL0Nv
ZGVHZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMTQ3LDYgKzE0Nyw3IEBAIG5hbWVzcGFj
ZSBLSlMgewogICAgICAgICBSZWdpc3RlcklEKiBlbWl0UmVzb2x2ZUJhc2UoUmVnaXN0ZXJJRCos
IGNvbnN0IElkZW50aWZpZXImKTsKICAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFJlc29sdmVCYXNl
KFJlZ2lzdGVySUQqLCBpbnQpOwogICAgICAgICBSZWdpc3RlcklEKiBlbWl0UmVzb2x2ZUJhc2Uo
UmVnaXN0ZXJJRCosIGludCwgaW50KTsKKyAgICAgICAgUmVnaXN0ZXJJRCogZW1pdFJlc29sdmVC
YXNlQW5kRnVuYyhSZWdpc3RlcklEKiwgUmVnaXN0ZXJJRCosIGNvbnN0IElkZW50aWZpZXImKTsK
ICAgICAgICAgCiAgICAgICAgIFJlZ2lzdGVySUQqIGVtaXRHZXRQcm9wSWQoUmVnaXN0ZXJJRCog
ZHN0LCBSZWdpc3RlcklEKiBiYXNlLCBjb25zdCBJZGVudGlmaWVyJik7CiAgICAgICAgIFJlZ2lz
dGVySUQqIGVtaXRQdXRQcm9wSWQoUmVnaXN0ZXJJRCogYmFzZSwgY29uc3QgSWRlbnRpZmllciYs
IFJlZ2lzdGVySUQqIHZhbCk7CkluZGV4OiBWTS9NYWNoaW5lLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBW
TS9NYWNoaW5lLmNwcAkocmV2aXNpb24gMzE3OTUpCisrKyBWTS9NYWNoaW5lLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjcwLDYgKzI3MCw0NSBAQCBzdGF0aWMgdm9pZCBORVZFUl9JTkxJTkUgcmVz
b2x2ZUJhc2UoRXhlCiAgICAgcltyMF0udS5qc1ZhbHVlID0gYmFzZTsKIH0KIAorc3RhdGljIHZv
aWQgTkVWRVJfSU5MSU5FIHJlc29sdmVCYXNlQW5kRnVuYyhFeGVjU3RhdGUqIGV4ZWMsIEluc3Ry
dWN0aW9uKiB2UEMsIFJlZ2lzdGVyKiByLCBTY29wZUNoYWluKiBzY29wZUNoYWluLCBDb2RlQmxv
Y2sqIGNvZGVCbG9jaykKK3sKKyAgICBpbnQgcjAgPSAodlBDICsgMSktPnUub3BlcmFuZDsKKyAg
ICBpbnQgcjEgPSAodlBDICsgMiktPnUub3BlcmFuZDsKKyAgICBpbnQgaWQwID0gKHZQQyArIDMp
LT51Lm9wZXJhbmQ7CisKKyAgICBTY29wZUNoYWluSXRlcmF0b3IgaXRlciA9IHNjb3BlQ2hhaW4t
PmJlZ2luKCk7CisgICAgU2NvcGVDaGFpbkl0ZXJhdG9yIGVuZCA9IHNjb3BlQ2hhaW4tPmVuZCgp
OworICAgIAorICAgIC8vIEZJWE1FOiBhZGQgc2NvcGVEZXB0aElzWmVybyBvcHRpbWl6YXRpb24K
KyAgICAKKyAgICBBU1NFUlQoaXRlciAhPSBlbmQpOworICAgIAorICAgIFByb3BlcnR5U2xvdCBz
bG90OworICAgIElkZW50aWZpZXImIGlkZW50ID0gY29kZUJsb2NrLT5pZGVudGlmaWVyc1tpZDBd
OworICAgIEpTT2JqZWN0KiBiYXNlOworICAgIGRvIHsKKyAgICAgICAgYmFzZSA9ICppdGVyOwor
ICAgICAgICBpZiAoYmFzZS0+Z2V0UHJvcGVydHlTbG90KGV4ZWMsIGlkZW50LCBzbG90KSkgeyAg
ICAgICAgICAgIAorICAgICAgICAgICAgSlNPYmplY3QqIHRoaXNPYmogPSBiYXNlOworICAgICAg
ICAgICAgLy8gRUNNQSAxMS4yLjMgc2F5cyB0aGF0IGluIHRoaXMgc2l0dWF0aW9uIHRoZSB0aGlz
IHZhbHVlIHNob3VsZCBiZSBudWxsLgorICAgICAgICAgICAgLy8gSG93ZXZlciwgc2VjdGlvbiAx
MC4yLjMgc2F5cyB0aGF0IGluIHRoZSBjYXNlIHdoZXJlIHRoZSB2YWx1ZSBwcm92aWRlZAorICAg
ICAgICAgICAgLy8gYnkgdGhlIGNhbGxlciBpcyBudWxsLCB0aGUgZ2xvYmFsIG9iamVjdCBzaG91
bGQgYmUgdXNlZC4gSXQgYWxzbyBzYXlzCisgICAgICAgICAgICAvLyB0aGF0IHRoZSBzZWN0aW9u
IGRvZXMgbm90IGFwcGx5IHRvIGludGVybmFsIGZ1bmN0aW9ucywgYnV0IGZvciBzaW1wbGljaXR5
CisgICAgICAgICAgICAvLyBvZiBpbXBsZW1lbnRhdGlvbiB3ZSB1c2UgdGhlIGdsb2JhbCBvYmpl
Y3QgYW55d2F5IGhlcmUuIFRoaXMgZ3VhcmFudGVlcworICAgICAgICAgICAgLy8gdGhhdCBpbiBo
b3N0IG9iamVjdHMgeW91IGFsd2F5cyBnZXQgYSB2YWxpZCBvYmplY3QgZm9yIHRoaXMuCisgICAg
ICAgICAgICBpZiAodGhpc09iai0+aXNBY3RpdmF0aW9uT2JqZWN0KCkpCisgICAgICAgICAgICAg
ICAgdGhpc09iaiA9IGV4ZWMtPmR5bmFtaWNHbG9iYWxPYmplY3QoKTsKKyAgICAgICAgICAgIAor
ICAgICAgICAgICAgcltyMF0udS5qc1ZhbHVlID0gdGhpc09iajsKKyAgICAgICAgICAgIHJbcjFd
LnUuanNWYWx1ZSA9IHNsb3QuZ2V0VmFsdWUoZXhlYywgYmFzZSwgaWRlbnQpOworICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgICsraXRlcjsKKyAgICB9IHdoaWxlIChpdGVy
ICE9IGVuZCk7CisgICAgCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7IC8vIEZJWE1FOiB0aHJv
dyBhbiB1bmRlZmluZWQgdmFyaWFibGUgZXhjZXB0aW9uCit9CisKIEFMV0FZU19JTkxJTkUgdm9p
ZCBpbml0aWFsaXplQ2FsbEZyYW1lKFJlZ2lzdGVyKiBjYWxsRnJhbWUsIENvZGVCbG9jayogY29k
ZUJsb2NrLCBJbnN0cnVjdGlvbiogdlBDLCBTY29wZUNoYWluKiBzY29wZUNoYWluLCBpbnQgcmVn
aXN0ZXJPZmZzZXQsIGludCByZXR1cm5WYWx1ZVJlZ2lzdGVyLCBpbnQgYXJndiwgaW50IGNhbGxl
ZEFzQ29uc3RydWN0b3IpCiB7CiAgICAgY2FsbEZyYW1lW01hY2hpbmU6OkNhbGxlckNvZGVCbG9j
a10udS5jb2RlQmxvY2sgPSBjb2RlQmxvY2s7CkBAIC03OTgsNiArODM3LDEyIEBAIEpTVmFsdWUq
IE1hY2hpbmU6OnByaXZhdGVFeGVjdXRlKEV4ZWN1dGkKIAogICAgICAgICBORVhUX09QQ09ERTsK
ICAgICB9CisgICAgQkVHSU5fT1BDT0RFKG9wX3Jlc29sdmVfYmFzZV9hbmRfZnVuYykgeworICAg
ICAgICByZXNvbHZlQmFzZUFuZEZ1bmMoZXhlYywgdlBDLCByLCBzY29wZUNoYWluLCBjb2RlQmxv
Y2spOworICAgICAgICB2UEMgKz0gNDsKKworICAgICAgICBORVhUX09QQ09ERTsKKyAgICB9CiAg
ICAgQkVHSU5fT1BDT0RFKG9wX2dldF9wcm9wX2lkKSB7CiAgICAgICAgIGludCByMCA9ICgrK3ZQ
QyktPnUub3BlcmFuZDsKICAgICAgICAgaW50IHIxID0gKCsrdlBDKS0+dS5vcGVyYW5kOwpJbmRl
eDogVk0vT3Bjb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVk0vT3Bjb2RlLmgJKHJldmlzaW9uIDMxNzk1
KQorKysgVk0vT3Bjb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc3LDYgKzc3LDcgQEAgbmFtZXNw
YWNlIEtKUyB7CiAgICAgICAgIFwKICAgICAgICAgbWFjcm8ob3BfcmVzb2x2ZSkgXAogICAgICAg
ICBtYWNybyhvcF9yZXNvbHZlX2Jhc2UpIFwKKyAgICAgICAgbWFjcm8ob3BfcmVzb2x2ZV9iYXNl
X2FuZF9mdW5jKSBcCiAgICAgICAgIG1hY3JvKG9wX2dldF9wcm9wX2lkKSBcCiAgICAgICAgIG1h
Y3JvKG9wX3B1dF9wcm9wX2lkKSBcCiAgICAgICAgIG1hY3JvKG9wX2RlbGV0ZV9wcm9wX2lkKSBc
CkluZGV4OiBranMvbm9kZXMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtqcy9ub2Rlcy5jcHAJKHJldmlz
aW9uIDMxNzk1KQorKysga2pzL25vZGVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTMyNyw4ICsx
MzI3LDEwIEBAIFJlZ2lzdGVySUQqIEZ1bmN0aW9uQ2FsbFJlc29sdmVOb2RlOjplbWkKICAgICBp
ZiAoUmVnaXN0ZXJJRCogcjAgPSBnZW5lcmF0b3IucmVnaXN0ZXJGb3JMb2NhbChtX2lkZW50KSkK
ICAgICAgICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0Q2FsbChkc3QgPyBkc3QgOiBnZW5lcmF0b3Iu
bmV3VGVtcG9yYXJ5KCksIHIwLCAwLCBtX2FyZ3MuZ2V0KCkpOwogIAotICAgIFJlZ2lzdGVySUQq
IHIwID0gZ2VuZXJhdG9yLmVtaXRSZXNvbHZlKGdlbmVyYXRvci5uZXdUZW1wb3JhcnkoKSwgbV9p
ZGVudCk7Ci0gICAgcmV0dXJuIGdlbmVyYXRvci5lbWl0Q2FsbChkc3QgPyBkc3QgOiBnZW5lcmF0
b3IubmV3VGVtcG9yYXJ5T3IocjApLCByMCwgMCwgbV9hcmdzLmdldCgpKTsKKyAgICBSZWZQdHI8
UmVnaXN0ZXJJRD4gcjAgPSBkc3QgPyBkc3QgOiBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7Cisg
ICAgUmVnaXN0ZXJJRCogcjEgPSBnZW5lcmF0b3IubmV3VGVtcG9yYXJ5KCk7CisgICAgZ2VuZXJh
dG9yLmVtaXRSZXNvbHZlQmFzZUFuZEZ1bmMocjAuZ2V0KCksIHIxLCBtX2lkZW50KTsKKyAgICBy
ZXR1cm4gZ2VuZXJhdG9yLmVtaXRDYWxsKHIwLmdldCgpLCByMSwgcjAuZ2V0KCksIG1fYXJncy5n
ZXQoKSk7CiB9CiAKIHZvaWQgRnVuY3Rpb25DYWxsUmVzb2x2ZU5vZGU6Om9wdGltaXplVmFyaWFi
bGVBY2Nlc3MoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBTeW1ib2xUYWJsZSYgc3ltYm9sVGFibGUs
IGNvbnN0IExvY2FsU3RvcmFnZSYsIE5vZGVTdGFjayYgbm9kZVN0YWNrKQo=
</data>
<flag name="review"
          id="8917"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>